Every API maps one on one to a public method on the PlayerInstanceAAMP class declared in main_aamp.h in Aamp source code.
JSON-RPC method | Aamp Player Instance Method | Parameter | Result | Summary | Jsonrpc Request example | Jsonrpc response example |
|---|
org.rdk.player.openSession |
| sessionId: stringappName : stringtraceUUID : string | sessionId : stringsuccess : boolean | Open a new player session | {
"jsonrpc": "2.0",
"id": 1,
"method": "org.rdk.player.openSession",
"params": {
"sessionId": "sess-abc-001",
"appName": "MyStreamingApp",
"traceUUID": "550e8400-e29b-41d4-a716-446655440000"
}
} | { "jsonrpc": "2.0", "id": 1, "result": { "sessionId": "sess-abc-001", "success": true } } |
org.rdk.player.configureSession |
| sessionId : stringconfig : object | sessionId : stringsuccess : boolean | Apply configuration to an open session | {
"jsonrpc": "2.0",
"id": 2,
"method": "org.rdk.player.configureSession",
"params": {
"sessionId": "sess-abc-001",
"config": {
"networkTimeout": 10,
"downloadBuffer": 30,
"preferredDRM": "widevine",
"initialBitrate": 2000000
}
}
} | { "jsonrpc": "2.0", "id": 2, "result": { "sessionId": "sess-abc-001", "success": true } } |
org.dk.player.closeSession |
| sessionId : stringsuccess : boolean | sessionId: Stringsuccess : boolean | Close and release a player session | {
"jsonrpc": "2.0",
"id": 3,
"method": "org.rdk.player.closeSession",
"params": {
"sessionId": "sess-abc-001"
}
} | { "jsonrpc": "2.0", "id": 3, "result": { "sessionId": "sess-abc-001", "success": true } } |
org.rdk.player.tune | Tune | url : StringautoPlay : booleancontentType : StringtraceUUID : String | success : boolean | Instructs the AAMP to tune to the given URL. | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.tune","params":{"url":"https://dash.akamaized.net/akamai/bbb_30fps/bbb_30fps.mpd","autoPlay":true,"contentType":"VOD"}} | {"jsonrpc":"2.0","id":4,"result":{"success":true}} |
org.rdk.player.stop | Stop | None | success :boolean | Stops the current playback and releases decoder resources. The player returns to the idle state. | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.stop"} | {"jsonrpc":"2.0","id":5,"result":{"success":true}} |
org.rdk.player.seek | Seek | position : numberkeepPaused : boolean | success : boolean | Seeks to an absolute position in the stream | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.seek","params":{"position":120.0,"keepPaused":false}} | {"jsonrpc":"2.0","id":5,"result":{"success":true}} |
org.rdk.player.seekToLive | SeekToLive | keepPaused : boolean | success : boolean | Seek to the live edge | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.seekToLive","params":{"keepPaused":false}} | {"jsonrpc":"2.0","id":1,"result":{"success":true}} |
org.rdk.player.setRate | SetRate | rate : number overshootCorrection : integer | success: boolean | Set playback rate / trick-play speed | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.setRate","params":{"rate":2,"overshootCorrection":0}} | {"jsonrpc":"2.0","id":1,"result":{"success":true}} |
org.rdk.player.setPlaybackSpeed | SetPlaybackSpeed | speed : number | success: boolean | Sets the playback speed directly | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.setPlaybackSpeed","params":{"speed":0.5}} | {"jsonrpc":"2.0","id":1,"result":{"success":true}} |
org.rdk.player.pauseAt | PauseAt | position : number | success : boolean | Schedule a pause at a future position | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.pauseAt","params":{"position":300.0}} | {"jsonrpc":"2.0","id":1,"result":{"success":true}} |
org.rdk.player.setRateAndSeek | SetRateAndSeek | rate : integer position : number | success:boolean | Atomically set rate and seek | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.setRateAndSeek","params":{"rate":1,"position":60.0}} | {"jsonrpc":"2.0","id":1,"result":{"success":true}} |
org.rdk.player.getState | GetState | None | state : PlayerState | Get current player state | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.getState"} | {"jsonrpc":"2.0","id":1,"result":{"state":"playing"}} |
org.rdk.player.getPlaybackPosition | GetPlaybackPosition | None | position : Number | Get current playback position | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.getPlaybackPosition"} | {"jsonrpc":"2.0","id":1,"result":{"position":120.5}} |
org.rdk.player.getPlaybackDuration | GetPlaybackDuration | None | duration : Number | Get total stream duration | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.getPlaybackDuration"} | {"jsonrpc":"2.0","id":1,"result":{"duration":3600.0}} |
org.rdk.player.getPlaybackRate | GetPlaybackRate | None | rate : Number | Get current playback rate | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.getPlaybackRate"} | {"jsonrpc":"2.0","id":1,"result":{"rate":1.0}} |
org.rdk.player.isLive | IsLive | None | isLive :Boolean | Check if stream is live | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.isLive"} | {"jsonrpc":"2.0","id":1,"result":{"isLive":false}} |
org.rdk.player.setVideoMute | SetVideoMute | muted : boolean | success :
Boolean | Mute or unmute the video plane | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.setVideoMute","params":{"muted":true}} | {"jsonrpc":"2.0","id":1,"result":{"success":true}} |
org.rdk.player.getVideoMute | GetVideoMute | None | muted :
Boolean | Get video mute state | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.getVideoMute"} | {"jsonrpc":"2.0","id":1,"result":{"muted":false}} |
org.rdk.player.setAudioVolume | SetAudioVolume | volume : integer | success :
Boolean | Set audio volume | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.setAudioVolume","params":{"volume":80}} | {"jsonrpc":"2.0","id":1,"result":{"success":true}} |
org.rdk.player.getAudioVolume | GetAudioVolume | None | volume :
Integer | Get audio volume | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.getAudioVolume"} | {"jsonrpc":"2.0","id":1,"result":{"volume":80}} |
org.rdk.player.getAudioLanguage | GetAudioLanguage | None | language : string |
| {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.getAudioLanguage"} | {"jsonrpc":"2.0","id":1,"result":{"language":"en"}} |
org.rdk.player.getAvailableAudioTracks | GetAvailableAudioTracks | allTracks boolean | tracks :AudioTrack[] | List available audio tracks | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.getAvailableAudioTracks","params":{"allTracks":false}} | {"jsonrpc":"2.0","id":1,"result":{"tracks":[{"index":0,"language":"en","rendition":"main","label":"English","codec":"mp4a.40.2","type":"AUDIO_STEREO","channels":2,"bitrate":128000},{"index":1,"language":"fra","rendition":"main","label":"French","codec":"mp4a.40.2","type":"AUDIO_STEREO","channels":2,"bitrate":128000}]}} |
org.rdk.player.setAudioTrack | SetAudioTrack | trackId : integer | success :
Boolean | Select an audio track by index | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.setAudioTrack","params":{"trackId":1}} | {"jsonrpc":"2.0","id":1,"result":{"success":true}} |
org.rdk.player.getAudioTrack | GetAudioTrack | None | trackId:integer | Get index of active audio track | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.getAudioTrack"} | {"jsonrpc":"2.0","id":1,"result":{"trackId":0}} |
org.rdk.player.getAudioTrackInfo | GetAudioTrackInfo | None | trackInfo:AudioTrack | Get details of active audio track | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.getAudioTrackInfo"} | {"jsonrpc":"2.0","id":1,"result":{"trackInfo":{"index":0,"language":"en","rendition":"main","label":"English","codec":"mp4a.40.2","type":"AUDIO_STEREO","channels":2,"bitrate":128000}}} |
org.rdk.player.setSubtitleMute | SetSubtitleMute | muted: boolean | success: boolean | Mute or unmute subtitles | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.setSubtitleMute","params":{"muted":true}} | {"jsonrpc":"2.0","id":1,"result":{"success":true}} |
org.rdk.player.getAvailableTextTracks | GetAvailableTextTracks | allTracks : boolean
| tracks :
TextTrack[] | List available text/subtitle tracks | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.getAvailableTextTracks","params":{"allTracks":false}} | {"jsonrpc":"2.0","id":1,"result":{"tracks":[{"index":0,"language":"en","rendition":"main","label":"English","type":"SUBTITLES"},{"index":1,"language":"spa","rendition":"main","label":"Spanish","type":"SUBTITLES"}]}} |
org.rdk.player.setTextTrack | SetTextTrack | trackId : integer | success : boolean | Select a text track by index | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.setTextTrack","params":{"trackId":0}} | {"jsonrpc":"2.0","id":1,"result":{"success":true}} |
org.rdk.player.getTextTrack | GetTextTrack | None | trackId : integer | Get index of active text track | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.getTextTrack"} | {"jsonrpc":"2.0","id":1,"result":{"trackId":0}} |
org.rdk.player.getVideoBitrate | GetVideoBitrate | None | bitrate : integer | Get current video bitrate | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.getVideoBitrate"} | {"jsonrpc":"2.0","id":1,"result":{"bitrate":4000000}} |
org.rdk.player.setVideoBitrate | SetVideoBitrate | bitrate : integer | success : boolean | Lock the video bitrate | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.setVideoBitrate","params":{"bitrate":2000000}} | {"jsonrpc":"2.0","id":1,"result":{"success":true}} |
org.rdk.player.getVideoBitrates | GetVideoBitrates | None | bitrates :
integer[] | List all available video bitrates | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.getVideoBitrates"} | {"jsonrpc":"2.0","id":1,"result":{"bitrates":[800000,2000000,4000000,8000000]}} |
org.rdk.player.setInitialBitrate | SetInitialBitrate | bitrate : integer | success : boolean | Set the startup bitrate hint | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.setInitialBitrate","params":{"bitrate":2000000}} | {"jsonrpc":"2.0","id":1,"result":{"success":true}} |
org.rdk.player.getInitialBitrate | getInitialBitrat |
None | bitrate : integer | Set the startup bitrate hint | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.getInitialBitrate"} | {"jsonrpc":"2.0","id":1,"result":{"bitrate":2000000}} |
org.rdk.player.setMinimumBitrate | SetMinimumBitrate | bitrate : integer | success : boolean | Set the ABR minimum bitrate floor | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.setMinimumBitrate","params":{"bitrate":800000}} | {"jsonrpc":"2.0","id":1,"result":{"success":true}} |
org.rdk.player.getMinimumBitrate | GetMinimumBitrate | None | bitrate : integer | Get the ABR minimum bitrate floor | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.getMinimumBitrate"} | {"jsonrpc":"2.0","id":1,"result":{"bitrate":800000}} |
org.rdk.player.setMaximumBitrate | SetMaximumBitrate | bitrate : integer | success : boolean | Set the ABR maximum bitrate ceiling | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.setMaximumBitrate","params":{"bitrate":8000000}} | {"jsonrpc":"2.0","id":1,"result":{"success":true}} |
org.rdk.player.getMaximumBitrate | getMaximumBitrate | None | bitrate : integer | Get the ABR maximum bitrate ceiling | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.getMaximumBitrate"} |
{"jsonrpc":"2.0","id":1,"result":{"bitrate":8000000}} |
rg.rdk.player.setLicenseServerURL | SetLicenseServerURL | url :
string | success : boolean | Set the DRM license server URL | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.setLicenseServerURL","params":{"url":"https://license.example.com/widevine"}} | {"jsonrpc":"2.0","id":1,"result":{"success":true}} |
org.rdk.player.getDRM | GetDRM | None | drm : string | Get active DRM system | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.getDRM"} | {"jsonrpc":"2.0","id":1,"result":{"drm":"widevine"}} |
org.rdk.player.setPreferredDRM | SetPreferredDRM | drmType : string
| success : boolean | Set the preferred DRM system | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.setPreferredDRM","params":{"drmType":"widevine"}} | {"jsonrpc":"2.0","id":1,"result":{"success":true}} |
rg.rdk.player.getAAMPConfig | GetAAMPConfig | None | config : object | Get current AAMP configuration | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.getAAMPConfig"} | {"jsonrpc":"2.0","id":1,"result":{"config":{"networkTimeout":10,"downloadBuffer":30}}} |
org.rdk.player.setAppName | SetAppName | name : string
| success : boolean | Set the application name | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.setAppName","params":{"name":"MyStreamingApp"}} | {"jsonrpc":"2.0","id":1,"result":{"success":true}} |
org.rdk.player.setPreferredLanguages | SetPreferredLanguages | languageList : string
rendition : string
codecList : string
labelList : string | success : boolean | Set preferred audio/text language preferences | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.setPreferredLanguages","params":{"languageList":"en,fra,spa","rendition":"main","type":"AUDIO_STEREO","codecList":"mp4a.40.2"}} | {"jsonrpc":"2.0","id":1,"result":{"success":true}} |
org.rdk.player.getPreferredLanguages | GetPreferredLanguages | None
| languageList : sting
| Get the preferred language list | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.getPreferredLanguages"} | {"jsonrpc":"2.0","id":1,"result":{"languageList":"en,fra"}} |
JTNDZGl2JTIwY2xhc3MlM0QlMjJ0YWJsZS13cmFwJTIyJTNFJTNDdGFibGUlMjBjbGFzcyUzRCUyMndyYXBwZWQlMjBjb25mbHVlbmNlVGFibGUlMjIlM0UlM0Njb2xncm91cCUzRSUzQ2NvbCUyRiUzRSUzQ2NvbCUyRiUzRSUzQ2NvbCUyRiUzRSUzQ2NvbCUyRiUzRSUzQ2NvbCUyRiUzRSUzQ2NvbCUyRiUzRSUzQ2NvbCUyRiUzRSUzQyUyRmNvbGdyb3VwJTNFJTNDdGJvZHklM0UlM0N0ciUzRSUzQ3RoJTIwc2NvcGUlM0QlMjJjb2wlMjIlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUaCUyMiUzRSUzQ3ByZSUzRUpTT04tUlBDJTIwbWV0aG9kJTNDJTJGcHJlJTNFJTNDJTJGdGglM0UlM0N0aCUyMHNjb3BlJTNEJTIyY29sJTIyJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGglMjIlM0UlM0NwcmUlM0VBYW1wJTIwUGxheWVyJTIwSW5zdGFuY2UlMjBNZXRob2QlM0MlMkZwcmUlM0UlM0MlMkZ0aCUzRSUzQ3RoJTIwc2NvcGUlM0QlMjJjb2wlMjIlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUaCUyMiUzRSUzQ3ByZSUzRVBhcmFtZXRlciUzQyUyRnByZSUzRSUzQyUyRnRoJTNFJTNDdGglMjBzY29wZSUzRCUyMmNvbCUyMiUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRoJTIyJTNFJTNDcHJlJTNFUmVzdWx0JTNDJTJGcHJlJTNFJTNDJTJGdGglM0UlM0N0aCUyMHNjb3BlJTNEJTIyY29sJTIyJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGglMjIlM0UlM0NwcmUlM0VTdW1tYXJ5JTNDJTJGcHJlJTNFJTNDJTJGdGglM0UlM0N0aCUyMHNjb3BlJTNEJTIyY29sJTIyJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGglMjIlM0UlM0NwcmUlM0VKc29ucnBjJTIwUmVxdWVzdCUyMGV4YW1wbGUlM0MlMkZwcmUlM0UlM0MlMkZ0aCUzRSUzQ3RoJTIwc2NvcGUlM0QlMjJjb2wlMjIlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUaCUyMiUzRUpzb25ycGMlMjByZXNwb25zZSUyMGV4YW1wbGUlM0MlMkZ0aCUzRSUzQyUyRnRyJTNFJTNDdHIlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFb3JnLnJkay5wbGF5ZXIub3BlblNlc3Npb24lM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NiciUyRiUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRXNlc3Npb25JZCUzQSUyMHN0cmluZ2FwcE5hbWUlMjAlM0ElMjBzdHJpbmd0cmFjZVVVSUQlMjAlM0ElMjBzdHJpbmclM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VzZXNzaW9uSWQlMjAlM0ElMjBzdHJpbmdzdWNjZXNzJTIwJTNBJTIwYm9vbGVhbiUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRU9wZW4lMjBhJTIwbmV3JTIwcGxheWVyJTIwc2Vzc2lvbiUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRSU3QiUzQ2JyJTJGJTNFJTNDYnIlMkYlM0UlQzIlQTAlMjAlMjZxdW90JTNCanNvbnJwYyUyNnF1b3QlM0IlM0ElMjAlMjZxdW90JTNCMi4wJTI2cXVvdCUzQiUyQyUzQ2JyJTJGJTNFJTNDYnIlMkYlM0UlQzIlQTAlMjAlMjZxdW90JTNCaWQlMjZxdW90JTNCJTNBJTIwMSUyQyUzQ2JyJTJGJTNFJTNDYnIlMkYlM0UlQzIlQTAlMjAlMjZxdW90JTNCbWV0aG9kJTI2cXVvdCUzQiUzQSUyMCUyNnF1b3QlM0JvcmcucmRrLnBsYXllci5vcGVuU2Vzc2lvbiUyNnF1b3QlM0IlMkMlM0NiciUyRiUzRSUzQ2JyJTJGJTNFJUMyJUEwJTIwJTI2cXVvdCUzQnBhcmFtcyUyNnF1b3QlM0IlM0ElMjAlN0IlM0NiciUyRiUzRSUzQ2JyJTJGJTNFJUMyJUEwJTIwJUMyJUEwJTIwJTI2cXVvdCUzQnNlc3Npb25JZCUyNnF1b3QlM0IlM0ElMjAlMjZxdW90JTNCc2Vzcy1hYmMtMDAxJTI2cXVvdCUzQiUyQyUzQ2JyJTJGJTNFJTNDYnIlMkYlM0UlQzIlQTAlMjAlQzIlQTAlMjAlMjZxdW90JTNCYXBwTmFtZSUyNnF1b3QlM0IlM0ElMjAlMjZxdW90JTNCTXlTdHJlYW1pbmdBcHAlMjZxdW90JTNCJTJDJTNDYnIlMkYlM0UlM0NiciUyRiUzRSVDMiVBMCUyMCVDMiVBMCUyMCUyNnF1b3QlM0J0cmFjZVVVSUQlMjZxdW90JTNCJTNBJTIwJTI2cXVvdCUzQjU1MGU4NDAwLWUyOWItNDFkNC1hNzE2LTQ0NjY1NTQ0MDAwMCUyNnF1b3QlM0IlM0NiciUyRiUzRSUzQ2JyJTJGJTNFJUMyJUEwJTIwJTdEJTNDYnIlMkYlM0UlM0NiciUyRiUzRSU3RCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRSU3QiUzQ2JyJTJGJTNFJUMyJUEwJTIwJTI2cXVvdCUzQmpzb25ycGMlMjZxdW90JTNCJTNBJTIwJTI2cXVvdCUzQjIuMCUyNnF1b3QlM0IlMkMlM0NiciUyRiUzRSVDMiVBMCUyMCUyNnF1b3QlM0JpZCUyNnF1b3QlM0IlM0ElMjAxJTJDJTNDYnIlMkYlM0UlQzIlQTAlMjAlMjZxdW90JTNCcmVzdWx0JTI2cXVvdCUzQiUzQSUyMCU3QiUzQ2JyJTJGJTNFJUMyJUEwJTIwJUMyJUEwJTIwJTI2cXVvdCUzQnNlc3Npb25JZCUyNnF1b3QlM0IlM0ElMjAlMjZxdW90JTNCc2Vzcy1hYmMtMDAxJTI2cXVvdCUzQiUyQyUzQ2JyJTJGJTNFJUMyJUEwJTIwJUMyJUEwJTIwJTI2cXVvdCUzQnN1Y2Nlc3MlMjZxdW90JTNCJTNBJTIwdHJ1ZSUzQ2JyJTJGJTNFJUMyJUEwJTIwJTdEJTNDYnIlMkYlM0UlN0QlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQyUyRnRyJTNFJTNDdHIlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFb3JnLnJkay5wbGF5ZXIuY29uZmlndXJlU2Vzc2lvbiUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ2JyJTJGJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFc2Vzc2lvbklkJTIwJTNBJTIwc3RyaW5nY29uZmlnJTIwJTNBJTIwb2JqZWN0JTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFc2Vzc2lvbklkJTIwJTNBJTIwc3RyaW5nc3VjY2VzcyUyMCUzQSUyMGJvb2xlYW4lM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VBcHBseSUyMGNvbmZpZ3VyYXRpb24lMjB0byUyMGFuJTIwb3BlbiUyMHNlc3Npb24lM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0UlN0IlM0NiciUyRiUzRSUzQ2JyJTJGJTNFJUMyJUEwJTIwJTI2cXVvdCUzQmpzb25ycGMlMjZxdW90JTNCJTNBJTIwJTI2cXVvdCUzQjIuMCUyNnF1b3QlM0IlMkMlM0NiciUyRiUzRSUzQ2JyJTJGJTNFJUMyJUEwJTIwJTI2cXVvdCUzQmlkJTI2cXVvdCUzQiUzQSUyMDIlMkMlM0NiciUyRiUzRSUzQ2JyJTJGJTNFJUMyJUEwJTIwJTI2cXVvdCUzQm1ldGhvZCUyNnF1b3QlM0IlM0ElMjAlMjZxdW90JTNCb3JnLnJkay5wbGF5ZXIuY29uZmlndXJlU2Vzc2lvbiUyNnF1b3QlM0IlMkMlM0NiciUyRiUzRSUzQ2JyJTJGJTNFJUMyJUEwJTIwJTI2cXVvdCUzQnBhcmFtcyUyNnF1b3QlM0IlM0ElMjAlN0IlM0NiciUyRiUzRSUzQ2JyJTJGJTNFJUMyJUEwJTIwJUMyJUEwJTIwJTI2cXVvdCUzQnNlc3Npb25JZCUyNnF1b3QlM0IlM0ElMjAlMjZxdW90JTNCc2Vzcy1hYmMtMDAxJTI2cXVvdCUzQiUyQyUzQ2JyJTJGJTNFJTNDYnIlMkYlM0UlQzIlQTAlMjAlQzIlQTAlMjAlMjZxdW90JTNCY29uZmlnJTI2cXVvdCUzQiUzQSUyMCU3QiUzQ2JyJTJGJTNFJTNDYnIlMkYlM0UlQzIlQTAlMjAlQzIlQTAlMjAlQzIlQTAlMjAlMjZxdW90JTNCbmV0d29ya1RpbWVvdXQlMjZxdW90JTNCJTNBJTIwMTAlMkMlM0NiciUyRiUzRSUzQ2JyJTJGJTNFJUMyJUEwJTIwJUMyJUEwJTIwJUMyJUEwJTIwJTI2cXVvdCUzQmRvd25sb2FkQnVmZmVyJTI2cXVvdCUzQiUzQSUyMDMwJTJDJTNDYnIlMkYlM0UlM0NiciUyRiUzRSVDMiVBMCUyMCVDMiVBMCUyMCVDMiVBMCUyMCUyNnF1b3QlM0JwcmVmZXJyZWREUk0lMjZxdW90JTNCJTNBJTIwJTI2cXVvdCUzQndpZGV2aW5lJTI2cXVvdCUzQiUyQyUzQ2JyJTJGJTNFJTNDYnIlMkYlM0UlQzIlQTAlMjAlQzIlQTAlMjAlQzIlQTAlMjAlMjZxdW90JTNCaW5pdGlhbEJpdHJhdGUlMjZxdW90JTNCJTNBJTIwMjAwMDAwMCUzQ2JyJTJGJTNFJTNDYnIlMkYlM0UlQzIlQTAlMjAlQzIlQTAlMjAlN0QlM0NiciUyRiUzRSUzQ2JyJTJGJTNFJUMyJUEwJTIwJTdEJTNDYnIlMkYlM0UlM0NiciUyRiUzRSU3RCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRSU3QiUzQ2JyJTJGJTNFJUMyJUEwJTIwJTI2cXVvdCUzQmpzb25ycGMlMjZxdW90JTNCJTNBJTIwJTI2cXVvdCUzQjIuMCUyNnF1b3QlM0IlMkMlM0NiciUyRiUzRSVDMiVBMCUyMCUyNnF1b3QlM0JpZCUyNnF1b3QlM0IlM0ElMjAyJTJDJTNDYnIlMkYlM0UlQzIlQTAlMjAlMjZxdW90JTNCcmVzdWx0JTI2cXVvdCUzQiUzQSUyMCU3QiUzQ2JyJTJGJTNFJUMyJUEwJTIwJUMyJUEwJTIwJTI2cXVvdCUzQnNlc3Npb25JZCUyNnF1b3QlM0IlM0ElMjAlMjZxdW90JTNCc2Vzcy1hYmMtMDAxJTI2cXVvdCUzQiUyQyUzQ2JyJTJGJTNFJUMyJUEwJTIwJUMyJUEwJTIwJTI2cXVvdCUzQnN1Y2Nlc3MlMjZxdW90JTNCJTNBJTIwdHJ1ZSUzQ2JyJTJGJTNFJUMyJUEwJTIwJTdEJTNDYnIlMkYlM0UlN0QlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQyUyRnRyJTNFJTNDdHIlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFb3JnLmRrLnBsYXllci5jbG9zZVNlc3Npb24lM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NiciUyRiUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRXNlc3Npb25JZCUyMCUzQSUyMHN0cmluZ3N1Y2Nlc3MlMjAlM0ElMjBib29sZWFuJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFc2Vzc2lvbklkJTNBJTIwU3RyaW5nc3VjY2VzcyUyMCUzQSUyMGJvb2xlYW4lM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VDbG9zZSUyMGFuZCUyMHJlbGVhc2UlMjBhJTIwcGxheWVyJTIwc2Vzc2lvbiUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRSU3QiUzQ2JyJTJGJTNFJTNDYnIlMkYlM0UlQzIlQTAlMjAlMjZxdW90JTNCanNvbnJwYyUyNnF1b3QlM0IlM0ElMjAlMjZxdW90JTNCMi4wJTI2cXVvdCUzQiUyQyUzQ2JyJTJGJTNFJTNDYnIlMkYlM0UlQzIlQTAlMjAlMjZxdW90JTNCaWQlMjZxdW90JTNCJTNBJTIwMyUyQyUzQ2JyJTJGJTNFJTNDYnIlMkYlM0UlQzIlQTAlMjAlMjZxdW90JTNCbWV0aG9kJTI2cXVvdCUzQiUzQSUyMCUyNnF1b3QlM0JvcmcucmRrLnBsYXllci5jbG9zZVNlc3Npb24lMjZxdW90JTNCJTJDJTNDYnIlMkYlM0UlM0NiciUyRiUzRSVDMiVBMCUyMCUyNnF1b3QlM0JwYXJhbXMlMjZxdW90JTNCJTNBJTIwJTdCJTNDYnIlMkYlM0UlM0NiciUyRiUzRSVDMiVBMCUyMCVDMiVBMCUyMCUyNnF1b3QlM0JzZXNzaW9uSWQlMjZxdW90JTNCJTNBJTIwJTI2cXVvdCUzQnNlc3MtYWJjLTAwMSUyNnF1b3QlM0IlM0NiciUyRiUzRSUzQ2JyJTJGJTNFJUMyJUEwJTIwJTdEJTNDYnIlMkYlM0UlM0NiciUyRiUzRSU3RCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRSU3QiUzQ2JyJTJGJTNFJUMyJUEwJTIwJTI2cXVvdCUzQmpzb25ycGMlMjZxdW90JTNCJTNBJTIwJTI2cXVvdCUzQjIuMCUyNnF1b3QlM0IlMkMlM0NiciUyRiUzRSVDMiVBMCUyMCUyNnF1b3QlM0JpZCUyNnF1b3QlM0IlM0ElMjAzJTJDJTNDYnIlMkYlM0UlQzIlQTAlMjAlMjZxdW90JTNCcmVzdWx0JTI2cXVvdCUzQiUzQSUyMCU3QiUzQ2JyJTJGJTNFJUMyJUEwJTIwJUMyJUEwJTIwJTI2cXVvdCUzQnNlc3Npb25JZCUyNnF1b3QlM0IlM0ElMjAlMjZxdW90JTNCc2Vzcy1hYmMtMDAxJTI2cXVvdCUzQiUyQyUzQ2JyJTJGJTNFJUMyJUEwJTIwJUMyJUEwJTIwJTI2cXVvdCUzQnN1Y2Nlc3MlMjZxdW90JTNCJTNBJTIwdHJ1ZSUzQ2JyJTJGJTNFJUMyJUEwJTIwJTdEJTNDYnIlMkYlM0UlN0QlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQyUyRnRyJTNFJTNDdHIlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFb3JnLnJkay5wbGF5ZXIudHVuZSUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRVR1bmUlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0V1cmwlMjAlM0ElMjBTdHJpbmdhdXRvUGxheSUyMCUzQSUyMGJvb2xlYW5jb250ZW50VHlwZSUyMCUzQSUyMFN0cmluZ3RyYWNlVVVJRCUyMCUzQSUyMFN0cmluZyUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRXN1Y2Nlc3MlMjAlM0ElMjBib29sZWFuJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFSW5zdHJ1Y3RzJTIwdGhlJTIwQUFNUCVDMiVBMCUyMHRvJTIwdHVuZSUyMHRvJTIwdGhlJTIwZ2l2ZW4lMjBVUkwuJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFJTdCJTI2cXVvdCUzQmpzb25ycGMlMjZxdW90JTNCJTNBJTI2cXVvdCUzQjIuMCUyNnF1b3QlM0IlMkMlMjZxdW90JTNCaWQlMjZxdW90JTNCJTNBMSUyQyUyNnF1b3QlM0JtZXRob2QlMjZxdW90JTNCJTNBJTI2cXVvdCUzQm9yZy5yZGsucGxheWVyLnR1bmUlMjZxdW90JTNCJTJDJTI2cXVvdCUzQnBhcmFtcyUyNnF1b3QlM0IlM0ElN0IlMjZxdW90JTNCdXJsJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0IlM0NhJTIwaHJlZiUzRCUyMmh0dHBzJTNBJTJGJTJGZGFzaC5ha2FtYWl6ZWQubmV0JTJGYWthbWFpJTJGYmJiXzMwZnBzJTJGYmJiXzMwZnBzLm1wZCUyMiUyMGNsYXNzJTNEJTIyZXh0ZXJuYWwtbGluayUyMiUyMHJlbCUzRCUyMm5vZm9sbG93JTIyJTNFaHR0cHMlM0ElMkYlMkZkYXNoLmFrYW1haXplZC5uZXQlMkZha2FtYWklMkZiYmJfMzBmcHMlMkZiYmJfMzBmcHMubXBkJTNDJTJGYSUzRSUyNnF1b3QlM0IlMkMlMjZxdW90JTNCYXV0b1BsYXklMjZxdW90JTNCJTNBdHJ1ZSUyQyUyNnF1b3QlM0Jjb250ZW50VHlwZSUyNnF1b3QlM0IlM0ElMjZxdW90JTNCVk9EJTI2cXVvdCUzQiU3RCU3RCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3AlM0UlM0NzcGFuJTIwc3R5bGUlM0QlMjJjb2xvciUzQXZhcigtLWRzLXRleHQlMkMlMjM3MDcwNzApJTNCJTIyJTNFJTdCJTI2cXVvdCUzQmpzb25ycGMlMjZxdW90JTNCJTNBJTI2cXVvdCUzQjIuMCUyNnF1b3QlM0IlMkMlMjZxdW90JTNCaWQlMjZxdW90JTNCJTNBNCUyQyUyNnF1b3QlM0JyZXN1bHQlMjZxdW90JTNCJTNBJTdCJTI2cXVvdCUzQnN1Y2Nlc3MlMjZxdW90JTNCJTNBdHJ1ZSU3RCU3RCUzQyUyRnNwYW4lM0UlM0MlMkZwJTNFJTNDJTJGdGQlM0UlM0MlMkZ0ciUzRSUzQ3RyJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRW9yZy5yZGsucGxheWVyLnN0b3AlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VTdG9wJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFTm9uZSUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRXN1Y2Nlc3MlMjAlM0Fib29sZWFuJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFU3RvcHMlMjB0aGUlMjBjdXJyZW50JTIwcGxheWJhY2slMjBhbmQlMjByZWxlYXNlcyUyMGRlY29kZXIlMjByZXNvdXJjZXMuJTIwVGhlJTIwcGxheWVyJTIwcmV0dXJucyUyMHRvJTIwdGhlJTIwaWRsZSUyMHN0YXRlLiUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRSU3QiUyNnF1b3QlM0Jqc29ucnBjJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0IyLjAlMjZxdW90JTNCJTJDJTI2cXVvdCUzQmlkJTI2cXVvdCUzQiUzQTElMkMlMjZxdW90JTNCbWV0aG9kJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0JvcmcucmRrLnBsYXllci5zdG9wJTI2cXVvdCUzQiU3RCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3AlM0UlM0NzcGFuJTIwc3R5bGUlM0QlMjJjb2xvciUzQXZhcigtLWRzLXRleHQlMkMlMjM3MDcwNzApJTNCJTIyJTNFJTdCJTI2cXVvdCUzQmpzb25ycGMlMjZxdW90JTNCJTNBJTI2cXVvdCUzQjIuMCUyNnF1b3QlM0IlMkMlMjZxdW90JTNCaWQlMjZxdW90JTNCJTNBNSUyQyUyNnF1b3QlM0JyZXN1bHQlMjZxdW90JTNCJTNBJTdCJTI2cXVvdCUzQnN1Y2Nlc3MlMjZxdW90JTNCJTNBdHJ1ZSU3RCU3RCUzQyUyRnNwYW4lM0UlM0MlMkZwJTNFJTNDJTJGdGQlM0UlM0MlMkZ0ciUzRSUzQ3RyJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRW9yZy5yZGsucGxheWVyLnNlZWslM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VTZWVrJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFcG9zaXRpb24lMjAlM0ElMjBudW1iZXJrZWVwUGF1c2VkJTIwJTNBJTIwYm9vbGVhbiUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRXN1Y2Nlc3MlMjAlM0ElQzIlQTBib29sZWFuJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFU2Vla3MlMjB0byUyMGFuJTIwYWJzb2x1dGUlMjBwb3NpdGlvbiUyMGluJTIwdGhlJTIwc3RyZWFtJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFJTdCJTI2cXVvdCUzQmpzb25ycGMlMjZxdW90JTNCJTNBJTI2cXVvdCUzQjIuMCUyNnF1b3QlM0IlMkMlMjZxdW90JTNCaWQlMjZxdW90JTNCJTNBMSUyQyUyNnF1b3QlM0JtZXRob2QlMjZxdW90JTNCJTNBJTI2cXVvdCUzQm9yZy5yZGsucGxheWVyLnNlZWslMjZxdW90JTNCJTJDJTI2cXVvdCUzQnBhcmFtcyUyNnF1b3QlM0IlM0ElN0IlMjZxdW90JTNCcG9zaXRpb24lMjZxdW90JTNCJTNBMTIwLjAlMkMlMjZxdW90JTNCa2VlcFBhdXNlZCUyNnF1b3QlM0IlM0FmYWxzZSU3RCU3RCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3AlM0UlM0NzcGFuJTIwc3R5bGUlM0QlMjJjb2xvciUzQXZhcigtLWRzLXRleHQlMkMlMjM3MDcwNzApJTNCJTIyJTNFJTdCJTI2cXVvdCUzQmpzb25ycGMlMjZxdW90JTNCJTNBJTI2cXVvdCUzQjIuMCUyNnF1b3QlM0IlMkMlMjZxdW90JTNCaWQlMjZxdW90JTNCJTNBNSUyQyUyNnF1b3QlM0JyZXN1bHQlMjZxdW90JTNCJTNBJTdCJTI2cXVvdCUzQnN1Y2Nlc3MlMjZxdW90JTNCJTNBdHJ1ZSU3RCU3RCUzQyUyRnNwYW4lM0UlM0MlMkZwJTNFJTNDJTJGdGQlM0UlM0MlMkZ0ciUzRSUzQ3RyJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRW9yZy5yZGsucGxheWVyLnNlZWtUb0xpdmUlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VTZWVrVG9MaXZlJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFa2VlcFBhdXNlZCUyMCUzQSUyMGJvb2xlYW4lM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VzdWNjZXNzJTIwJTNBJUMyJUEwYm9vbGVhbiUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRVNlZWslMjB0byUyMHRoZSUyMGxpdmUlMjBlZGdlJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFJTdCJTI2cXVvdCUzQmpzb25ycGMlMjZxdW90JTNCJTNBJTI2cXVvdCUzQjIuMCUyNnF1b3QlM0IlMkMlMjZxdW90JTNCaWQlMjZxdW90JTNCJTNBMSUyQyUyNnF1b3QlM0JtZXRob2QlMjZxdW90JTNCJTNBJTI2cXVvdCUzQm9yZy5yZGsucGxheWVyLnNlZWtUb0xpdmUlMjZxdW90JTNCJTJDJTI2cXVvdCUzQnBhcmFtcyUyNnF1b3QlM0IlM0ElN0IlMjZxdW90JTNCa2VlcFBhdXNlZCUyNnF1b3QlM0IlM0FmYWxzZSU3RCU3RCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRSU3QiUyNnF1b3QlM0Jqc29ucnBjJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0IyLjAlMjZxdW90JTNCJTJDJTI2cXVvdCUzQmlkJTI2cXVvdCUzQiUzQTElMkMlMjZxdW90JTNCcmVzdWx0JTI2cXVvdCUzQiUzQSU3QiUyNnF1b3QlM0JzdWNjZXNzJTI2cXVvdCUzQiUzQXRydWUlN0QlN0QlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQyUyRnRyJTNFJTNDdHIlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFb3JnLnJkay5wbGF5ZXIuc2V0UmF0ZSUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRVNldFJhdGUlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VyYXRlJTIwJTNBJTIwbnVtYmVyJTIwb3ZlcnNob290Q29ycmVjdGlvbiUyMCUzQSUyMGludGVnZXIlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VzdWNjZXNzJTNBJUMyJUEwYm9vbGVhbiUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRVNldCUyMHBsYXliYWNrJTIwcmF0ZSUyMCUyRiUyMHRyaWNrLXBsYXklMjBzcGVlZCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRSU3QiUyNnF1b3QlM0Jqc29ucnBjJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0IyLjAlMjZxdW90JTNCJTJDJTI2cXVvdCUzQmlkJTI2cXVvdCUzQiUzQTElMkMlMjZxdW90JTNCbWV0aG9kJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0JvcmcucmRrLnBsYXllci5zZXRSYXRlJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0JwYXJhbXMlMjZxdW90JTNCJTNBJTdCJTI2cXVvdCUzQnJhdGUlMjZxdW90JTNCJTNBMiUyQyUyNnF1b3QlM0JvdmVyc2hvb3RDb3JyZWN0aW9uJTI2cXVvdCUzQiUzQTAlN0QlN0QlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0UlN0IlMjZxdW90JTNCanNvbnJwYyUyNnF1b3QlM0IlM0ElMjZxdW90JTNCMi4wJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0JpZCUyNnF1b3QlM0IlM0ExJTJDJTI2cXVvdCUzQnJlc3VsdCUyNnF1b3QlM0IlM0ElN0IlMjZxdW90JTNCc3VjY2VzcyUyNnF1b3QlM0IlM0F0cnVlJTdEJTdEJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0MlMkZ0ciUzRSUzQ3RyJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRW9yZy5yZGsucGxheWVyLnNldFBsYXliYWNrU3BlZWQlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VTZXRQbGF5YmFja1NwZWVkJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFc3BlZWQlMjAlM0ElMjBudW1iZXIlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VzdWNjZXNzJTNBJUMyJUEwYm9vbGVhbiUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRVNldHMlMjB0aGUlMjBwbGF5YmFjayUyMHNwZWVkJTIwZGlyZWN0bHklMjAlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0UlN0IlMjZxdW90JTNCanNvbnJwYyUyNnF1b3QlM0IlM0ElMjZxdW90JTNCMi4wJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0JpZCUyNnF1b3QlM0IlM0ExJTJDJTI2cXVvdCUzQm1ldGhvZCUyNnF1b3QlM0IlM0ElMjZxdW90JTNCb3JnLnJkay5wbGF5ZXIuc2V0UGxheWJhY2tTcGVlZCUyNnF1b3QlM0IlMkMlMjZxdW90JTNCcGFyYW1zJTI2cXVvdCUzQiUzQSU3QiUyNnF1b3QlM0JzcGVlZCUyNnF1b3QlM0IlM0EwLjUlN0QlN0QlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0UlN0IlMjZxdW90JTNCanNvbnJwYyUyNnF1b3QlM0IlM0ElMjZxdW90JTNCMi4wJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0JpZCUyNnF1b3QlM0IlM0ExJTJDJTI2cXVvdCUzQnJlc3VsdCUyNnF1b3QlM0IlM0ElN0IlMjZxdW90JTNCc3VjY2VzcyUyNnF1b3QlM0IlM0F0cnVlJTdEJTdEJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0MlMkZ0ciUzRSUzQ3RyJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRW9yZy5yZGsucGxheWVyLnBhdXNlQXQlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VQYXVzZUF0JTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFcG9zaXRpb24lMjAlM0ElMjBudW1iZXIlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VzdWNjZXNzJTIwJTNBJUMyJUEwYm9vbGVhbiUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRVNjaGVkdWxlJTIwYSUyMHBhdXNlJTIwYXQlMjBhJTIwZnV0dXJlJTIwcG9zaXRpb24lM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0UlN0IlMjZxdW90JTNCanNvbnJwYyUyNnF1b3QlM0IlM0ElMjZxdW90JTNCMi4wJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0JpZCUyNnF1b3QlM0IlM0ExJTJDJTI2cXVvdCUzQm1ldGhvZCUyNnF1b3QlM0IlM0ElMjZxdW90JTNCb3JnLnJkay5wbGF5ZXIucGF1c2VBdCUyNnF1b3QlM0IlMkMlMjZxdW90JTNCcGFyYW1zJTI2cXVvdCUzQiUzQSU3QiUyNnF1b3QlM0Jwb3NpdGlvbiUyNnF1b3QlM0IlM0EzMDAuMCU3RCU3RCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRSU3QiUyNnF1b3QlM0Jqc29ucnBjJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0IyLjAlMjZxdW90JTNCJTJDJTI2cXVvdCUzQmlkJTI2cXVvdCUzQiUzQTElMkMlMjZxdW90JTNCcmVzdWx0JTI2cXVvdCUzQiUzQSU3QiUyNnF1b3QlM0JzdWNjZXNzJTI2cXVvdCUzQiUzQXRydWUlN0QlN0QlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQyUyRnRyJTNFJTNDdHIlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFb3JnLnJkay5wbGF5ZXIuc2V0UmF0ZUFuZFNlZWslM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VTZXRSYXRlQW5kU2VlayUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRXJhdGUlMjAlM0ElMjBpbnRlZ2VyJTIwcG9zaXRpb24lMjAlM0ElMjBudW1iZXIlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VzdWNjZXNzJTNBYm9vbGVhbiUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRUF0b21pY2FsbHklMjBzZXQlMjByYXRlJTIwYW5kJTIwc2VlayUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRSU3QiUyNnF1b3QlM0Jqc29ucnBjJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0IyLjAlMjZxdW90JTNCJTJDJTI2cXVvdCUzQmlkJTI2cXVvdCUzQiUzQTElMkMlMjZxdW90JTNCbWV0aG9kJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0JvcmcucmRrLnBsYXllci5zZXRSYXRlQW5kU2VlayUyNnF1b3QlM0IlMkMlMjZxdW90JTNCcGFyYW1zJTI2cXVvdCUzQiUzQSU3QiUyNnF1b3QlM0JyYXRlJTI2cXVvdCUzQiUzQTElMkMlMjZxdW90JTNCcG9zaXRpb24lMjZxdW90JTNCJTNBNjAuMCU3RCU3RCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRSU3QiUyNnF1b3QlM0Jqc29ucnBjJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0IyLjAlMjZxdW90JTNCJTJDJTI2cXVvdCUzQmlkJTI2cXVvdCUzQiUzQTElMkMlMjZxdW90JTNCcmVzdWx0JTI2cXVvdCUzQiUzQSU3QiUyNnF1b3QlM0JzdWNjZXNzJTI2cXVvdCUzQiUzQXRydWUlN0QlN0QlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQyUyRnRyJTNFJTNDdHIlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFb3JnLnJkay5wbGF5ZXIuZ2V0U3RhdGUlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VHZXRTdGF0ZSUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRU5vbmUlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VzdGF0ZSUyMCUzQSVDMiVBMFBsYXllclN0YXRlJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFR2V0JTIwY3VycmVudCUyMHBsYXllciUyMHN0YXRlJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFJTdCJTI2cXVvdCUzQmpzb25ycGMlMjZxdW90JTNCJTNBJTI2cXVvdCUzQjIuMCUyNnF1b3QlM0IlMkMlMjZxdW90JTNCaWQlMjZxdW90JTNCJTNBMSUyQyUyNnF1b3QlM0JtZXRob2QlMjZxdW90JTNCJTNBJTI2cXVvdCUzQm9yZy5yZGsucGxheWVyLmdldFN0YXRlJTI2cXVvdCUzQiU3RCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRSU3QiUyNnF1b3QlM0Jqc29ucnBjJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0IyLjAlMjZxdW90JTNCJTJDJTI2cXVvdCUzQmlkJTI2cXVvdCUzQiUzQTElMkMlMjZxdW90JTNCcmVzdWx0JTI2cXVvdCUzQiUzQSU3QiUyNnF1b3QlM0JzdGF0ZSUyNnF1b3QlM0IlM0ElMjZxdW90JTNCcGxheWluZyUyNnF1b3QlM0IlN0QlN0QlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQyUyRnRyJTNFJTNDdHIlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFb3JnLnJkay5wbGF5ZXIuZ2V0UGxheWJhY2tQb3NpdGlvbiUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRUdldFBsYXliYWNrUG9zaXRpb24lM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VOb25lJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFcG9zaXRpb24lMjAlM0ElQzIlQTBOdW1iZXIlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VHZXQlMjBjdXJyZW50JTIwcGxheWJhY2slMjBwb3NpdGlvbiUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRSU3QiUyNnF1b3QlM0Jqc29ucnBjJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0IyLjAlMjZxdW90JTNCJTJDJTI2cXVvdCUzQmlkJTI2cXVvdCUzQiUzQTElMkMlMjZxdW90JTNCbWV0aG9kJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0JvcmcucmRrLnBsYXllci5nZXRQbGF5YmFja1Bvc2l0aW9uJTI2cXVvdCUzQiU3RCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRSU3QiUyNnF1b3QlM0Jqc29ucnBjJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0IyLjAlMjZxdW90JTNCJTJDJTI2cXVvdCUzQmlkJTI2cXVvdCUzQiUzQTElMkMlMjZxdW90JTNCcmVzdWx0JTI2cXVvdCUzQiUzQSU3QiUyNnF1b3QlM0Jwb3NpdGlvbiUyNnF1b3QlM0IlM0ExMjAuNSU3RCU3RCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDJTJGdHIlM0UlM0N0ciUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VvcmcucmRrLnBsYXllci5nZXRQbGF5YmFja0R1cmF0aW9uJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFR2V0UGxheWJhY2tEdXJhdGlvbiUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRU5vbmUlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VkdXJhdGlvbiUyMCUzQSVDMiVBME51bWJlciUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRUdldCUyMHRvdGFsJTIwc3RyZWFtJTIwZHVyYXRpb24lM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0UlN0IlMjZxdW90JTNCanNvbnJwYyUyNnF1b3QlM0IlM0ElMjZxdW90JTNCMi4wJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0JpZCUyNnF1b3QlM0IlM0ExJTJDJTI2cXVvdCUzQm1ldGhvZCUyNnF1b3QlM0IlM0ElMjZxdW90JTNCb3JnLnJkay5wbGF5ZXIuZ2V0UGxheWJhY2tEdXJhdGlvbiUyNnF1b3QlM0IlN0QlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0UlN0IlMjZxdW90JTNCanNvbnJwYyUyNnF1b3QlM0IlM0ElMjZxdW90JTNCMi4wJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0JpZCUyNnF1b3QlM0IlM0ExJTJDJTI2cXVvdCUzQnJlc3VsdCUyNnF1b3QlM0IlM0ElN0IlMjZxdW90JTNCZHVyYXRpb24lMjZxdW90JTNCJTNBMzYwMC4wJTdEJTdEJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0MlMkZ0ciUzRSUzQ3RyJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRW9yZy5yZGsucGxheWVyLmdldFBsYXliYWNrUmF0ZSUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRUdldFBsYXliYWNrUmF0ZSUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRU5vbmUlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VyYXRlJTIwJUMyJUEwJTNBJUMyJUEwTnVtYmVyJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFR2V0JTIwY3VycmVudCUyMHBsYXliYWNrJTIwcmF0ZSUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRSU3QiUyNnF1b3QlM0Jqc29ucnBjJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0IyLjAlMjZxdW90JTNCJTJDJTI2cXVvdCUzQmlkJTI2cXVvdCUzQiUzQTElMkMlMjZxdW90JTNCbWV0aG9kJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0JvcmcucmRrLnBsYXllci5nZXRQbGF5YmFja1JhdGUlMjZxdW90JTNCJTdEJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFJTdCJTI2cXVvdCUzQmpzb25ycGMlMjZxdW90JTNCJTNBJTI2cXVvdCUzQjIuMCUyNnF1b3QlM0IlMkMlMjZxdW90JTNCaWQlMjZxdW90JTNCJTNBMSUyQyUyNnF1b3QlM0JyZXN1bHQlMjZxdW90JTNCJTNBJTdCJTI2cXVvdCUzQnJhdGUlMjZxdW90JTNCJTNBMS4wJTdEJTdEJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0MlMkZ0ciUzRSUzQ3RyJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRW9yZy5yZGsucGxheWVyLmlzTGl2ZSUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRUlzTGl2ZSUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRU5vbmUlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0Vpc0xpdmUlMjAlM0FCb29sZWFuJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFQ2hlY2slMjBpZiUyMHN0cmVhbSUyMGlzJTIwbGl2ZSUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRSU3QiUyNnF1b3QlM0Jqc29ucnBjJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0IyLjAlMjZxdW90JTNCJTJDJTI2cXVvdCUzQmlkJTI2cXVvdCUzQiUzQTElMkMlMjZxdW90JTNCbWV0aG9kJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0JvcmcucmRrLnBsYXllci5pc0xpdmUlMjZxdW90JTNCJTdEJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFJTdCJTI2cXVvdCUzQmpzb25ycGMlMjZxdW90JTNCJTNBJTI2cXVvdCUzQjIuMCUyNnF1b3QlM0IlMkMlMjZxdW90JTNCaWQlMjZxdW90JTNCJTNBMSUyQyUyNnF1b3QlM0JyZXN1bHQlMjZxdW90JTNCJTNBJTdCJTI2cXVvdCUzQmlzTGl2ZSUyNnF1b3QlM0IlM0FmYWxzZSU3RCU3RCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDJTJGdHIlM0UlM0N0ciUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VvcmcucmRrLnBsYXllci5zZXRWaWRlb011dGUlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VTZXRWaWRlb011dGUlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VtdXRlZCUyMCUzQSUyMGJvb2xlYW4lM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VzdWNjZXNzJTIwJTNBJUMyJUEwJTNDYnIlMkYlM0UlM0NiciUyRiUzRUJvb2xlYW4lM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VNdXRlJTIwb3IlMjB1bm11dGUlMjB0aGUlMjB2aWRlbyUyMHBsYW5lJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFJTdCJTI2cXVvdCUzQmpzb25ycGMlMjZxdW90JTNCJTNBJTI2cXVvdCUzQjIuMCUyNnF1b3QlM0IlMkMlMjZxdW90JTNCaWQlMjZxdW90JTNCJTNBMSUyQyUyNnF1b3QlM0JtZXRob2QlMjZxdW90JTNCJTNBJTI2cXVvdCUzQm9yZy5yZGsucGxheWVyLnNldFZpZGVvTXV0ZSUyNnF1b3QlM0IlMkMlMjZxdW90JTNCcGFyYW1zJTI2cXVvdCUzQiUzQSU3QiUyNnF1b3QlM0JtdXRlZCUyNnF1b3QlM0IlM0F0cnVlJTdEJTdEJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFJTdCJTI2cXVvdCUzQmpzb25ycGMlMjZxdW90JTNCJTNBJTI2cXVvdCUzQjIuMCUyNnF1b3QlM0IlMkMlMjZxdW90JTNCaWQlMjZxdW90JTNCJTNBMSUyQyUyNnF1b3QlM0JyZXN1bHQlMjZxdW90JTNCJTNBJTdCJTI2cXVvdCUzQnN1Y2Nlc3MlMjZxdW90JTNCJTNBdHJ1ZSU3RCU3RCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDJTJGdHIlM0UlM0N0ciUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VvcmcucmRrLnBsYXllci5nZXRWaWRlb011dGUlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VHZXRWaWRlb011dGUlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VOb25lJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFbXV0ZWQlMjAlM0ElQzIlQTAlM0NiciUyRiUzRSUzQ2JyJTJGJTNFQm9vbGVhbiUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRUdldCUyMHZpZGVvJTIwbXV0ZSUyMHN0YXRlJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFJTdCJTI2cXVvdCUzQmpzb25ycGMlMjZxdW90JTNCJTNBJTI2cXVvdCUzQjIuMCUyNnF1b3QlM0IlMkMlMjZxdW90JTNCaWQlMjZxdW90JTNCJTNBMSUyQyUyNnF1b3QlM0JtZXRob2QlMjZxdW90JTNCJTNBJTI2cXVvdCUzQm9yZy5yZGsucGxheWVyLmdldFZpZGVvTXV0ZSUyNnF1b3QlM0IlN0QlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0UlN0IlMjZxdW90JTNCanNvbnJwYyUyNnF1b3QlM0IlM0ElMjZxdW90JTNCMi4wJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0JpZCUyNnF1b3QlM0IlM0ExJTJDJTI2cXVvdCUzQnJlc3VsdCUyNnF1b3QlM0IlM0ElN0IlMjZxdW90JTNCbXV0ZWQlMjZxdW90JTNCJTNBZmFsc2UlN0QlN0QlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQyUyRnRyJTNFJTNDdHIlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFb3JnLnJkay5wbGF5ZXIuc2V0QXVkaW9Wb2x1bWUlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VTZXRBdWRpb1ZvbHVtZSUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRXZvbHVtZSUyMCUzQSUyMGludGVnZXIlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VzdWNjZXNzJTIwJTNBJUMyJUEwJTNDYnIlMkYlM0UlM0NiciUyRiUzRUJvb2xlYW4lM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VTZXQlMjBhdWRpbyUyMHZvbHVtZSUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRSU3QiUyNnF1b3QlM0Jqc29ucnBjJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0IyLjAlMjZxdW90JTNCJTJDJTI2cXVvdCUzQmlkJTI2cXVvdCUzQiUzQTElMkMlMjZxdW90JTNCbWV0aG9kJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0JvcmcucmRrLnBsYXllci5zZXRBdWRpb1ZvbHVtZSUyNnF1b3QlM0IlMkMlMjZxdW90JTNCcGFyYW1zJTI2cXVvdCUzQiUzQSU3QiUyNnF1b3QlM0J2b2x1bWUlMjZxdW90JTNCJTNBODAlN0QlN0QlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0UlN0IlMjZxdW90JTNCanNvbnJwYyUyNnF1b3QlM0IlM0ElMjZxdW90JTNCMi4wJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0JpZCUyNnF1b3QlM0IlM0ExJTJDJTI2cXVvdCUzQnJlc3VsdCUyNnF1b3QlM0IlM0ElN0IlMjZxdW90JTNCc3VjY2VzcyUyNnF1b3QlM0IlM0F0cnVlJTdEJTdEJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0MlMkZ0ciUzRSUzQ3RyJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRW9yZy5yZGsucGxheWVyLmdldEF1ZGlvVm9sdW1lJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFR2V0QXVkaW9Wb2x1bWUlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VOb25lJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFdm9sdW1lJTIwJTNBJUMyJUEwJTNDYnIlMkYlM0UlM0NiciUyRiUzRUludGVnZXIlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VHZXQlMjBhdWRpbyUyMHZvbHVtZSUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRSU3QiUyNnF1b3QlM0Jqc29ucnBjJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0IyLjAlMjZxdW90JTNCJTJDJTI2cXVvdCUzQmlkJTI2cXVvdCUzQiUzQTElMkMlMjZxdW90JTNCbWV0aG9kJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0JvcmcucmRrLnBsYXllci5nZXRBdWRpb1ZvbHVtZSUyNnF1b3QlM0IlN0QlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0UlN0IlMjZxdW90JTNCanNvbnJwYyUyNnF1b3QlM0IlM0ElMjZxdW90JTNCMi4wJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0JpZCUyNnF1b3QlM0IlM0ExJTJDJTI2cXVvdCUzQnJlc3VsdCUyNnF1b3QlM0IlM0ElN0IlMjZxdW90JTNCdm9sdW1lJTI2cXVvdCUzQiUzQTgwJTdEJTdEJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0MlMkZ0ciUzRSUzQ3RyJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRW9yZy5yZGsucGxheWVyLmdldEF1ZGlvTGFuZ3VhZ2UlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VHZXRBdWRpb0xhbmd1YWdlJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFTm9uZSUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRWxhbmd1YWdlJTIwJTNBJTIwc3RyaW5nJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFJTNDYnIlMkYlM0UlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0UlN0IlMjZxdW90JTNCanNvbnJwYyUyNnF1b3QlM0IlM0ElMjZxdW90JTNCMi4wJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0JpZCUyNnF1b3QlM0IlM0ExJTJDJTI2cXVvdCUzQm1ldGhvZCUyNnF1b3QlM0IlM0ElMjZxdW90JTNCb3JnLnJkay5wbGF5ZXIuZ2V0QXVkaW9MYW5ndWFnZSUyNnF1b3QlM0IlN0QlM0MlMkZwcmUlM0UlM0NwcmUlM0UlMjAlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlQzIlQTAlM0NwcmUlM0UlN0IlMjZxdW90JTNCanNvbnJwYyUyNnF1b3QlM0IlM0ElMjZxdW90JTNCMi4wJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0JpZCUyNnF1b3QlM0IlM0ExJTJDJTI2cXVvdCUzQnJlc3VsdCUyNnF1b3QlM0IlM0ElN0IlMjZxdW90JTNCbGFuZ3VhZ2UlMjZxdW90JTNCJTNBJTI2cXVvdCUzQmVuJTI2cXVvdCUzQiU3RCU3RCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDJTJGdHIlM0UlM0N0ciUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VvcmcucmRrLnBsYXllci5nZXRBdmFpbGFibGVBdWRpb1RyYWNrcyUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRUdldEF2YWlsYWJsZUF1ZGlvVHJhY2tzJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFYWxsVHJhY2tzJTIwYm9vbGVhbiUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRXRyYWNrcyUyMCUzQUF1ZGlvVHJhY2slNUIlNUQlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VMaXN0JTIwYXZhaWxhYmxlJTIwYXVkaW8lMjB0cmFja3MlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0UlN0IlMjZxdW90JTNCanNvbnJwYyUyNnF1b3QlM0IlM0ElMjZxdW90JTNCMi4wJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0JpZCUyNnF1b3QlM0IlM0ExJTJDJTI2cXVvdCUzQm1ldGhvZCUyNnF1b3QlM0IlM0ElMjZxdW90JTNCb3JnLnJkay5wbGF5ZXIuZ2V0QXZhaWxhYmxlQXVkaW9UcmFja3MlMjZxdW90JTNCJTJDJTI2cXVvdCUzQnBhcmFtcyUyNnF1b3QlM0IlM0ElN0IlMjZxdW90JTNCYWxsVHJhY2tzJTI2cXVvdCUzQiUzQWZhbHNlJTdEJTdEJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJUMyJUEwJTNDcHJlJTNFJTdCJTI2cXVvdCUzQmpzb25ycGMlMjZxdW90JTNCJTNBJTI2cXVvdCUzQjIuMCUyNnF1b3QlM0IlMkMlMjZxdW90JTNCaWQlMjZxdW90JTNCJTNBMSUyQyUyNnF1b3QlM0JyZXN1bHQlMjZxdW90JTNCJTNBJTdCJTI2cXVvdCUzQnRyYWNrcyUyNnF1b3QlM0IlM0ElNUIlN0IlMjZxdW90JTNCaW5kZXglMjZxdW90JTNCJTNBMCUyQyUyNnF1b3QlM0JsYW5ndWFnZSUyNnF1b3QlM0IlM0ElMjZxdW90JTNCZW4lMjZxdW90JTNCJTJDJTI2cXVvdCUzQnJlbmRpdGlvbiUyNnF1b3QlM0IlM0ElMjZxdW90JTNCbWFpbiUyNnF1b3QlM0IlMkMlMjZxdW90JTNCbGFiZWwlMjZxdW90JTNCJTNBJTI2cXVvdCUzQkVuZ2xpc2glMjZxdW90JTNCJTJDJTI2cXVvdCUzQmNvZGVjJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0JtcDRhLjQwLjIlMjZxdW90JTNCJTJDJTI2cXVvdCUzQnR5cGUlMjZxdW90JTNCJTNBJTI2cXVvdCUzQkFVRElPX1NURVJFTyUyNnF1b3QlM0IlMkMlMjZxdW90JTNCY2hhbm5lbHMlMjZxdW90JTNCJTNBMiUyQyUyNnF1b3QlM0JiaXRyYXRlJTI2cXVvdCUzQiUzQTEyODAwMCU3RCUyQyU3QiUyNnF1b3QlM0JpbmRleCUyNnF1b3QlM0IlM0ExJTJDJTI2cXVvdCUzQmxhbmd1YWdlJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0JmcmElMjZxdW90JTNCJTJDJTI2cXVvdCUzQnJlbmRpdGlvbiUyNnF1b3QlM0IlM0ElMjZxdW90JTNCbWFpbiUyNnF1b3QlM0IlMkMlMjZxdW90JTNCbGFiZWwlMjZxdW90JTNCJTNBJTI2cXVvdCUzQkZyZW5jaCUyNnF1b3QlM0IlMkMlMjZxdW90JTNCY29kZWMlMjZxdW90JTNCJTNBJTI2cXVvdCUzQm1wNGEuNDAuMiUyNnF1b3QlM0IlMkMlMjZxdW90JTNCdHlwZSUyNnF1b3QlM0IlM0ElMjZxdW90JTNCQVVESU9fU1RFUkVPJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0JjaGFubmVscyUyNnF1b3QlM0IlM0EyJTJDJTI2cXVvdCUzQmJpdHJhdGUlMjZxdW90JTNCJTNBMTI4MDAwJTdEJTVEJTdEJTdEJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0MlMkZ0ciUzRSUzQ3RyJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRW9yZy5yZGsucGxheWVyLnNldEF1ZGlvVHJhY2slM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VTZXRBdWRpb1RyYWNrJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFdHJhY2tJZCUyMCUzQSUyMGludGVnZXIlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VzdWNjZXNzJTIwJTNBJUMyJUEwJTNDYnIlMkYlM0UlM0NiciUyRiUzRUJvb2xlYW4lM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VTZWxlY3QlMjBhbiUyMGF1ZGlvJTIwdHJhY2slMjBieSUyMGluZGV4JTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFJTdCJTI2cXVvdCUzQmpzb25ycGMlMjZxdW90JTNCJTNBJTI2cXVvdCUzQjIuMCUyNnF1b3QlM0IlMkMlMjZxdW90JTNCaWQlMjZxdW90JTNCJTNBMSUyQyUyNnF1b3QlM0JtZXRob2QlMjZxdW90JTNCJTNBJTI2cXVvdCUzQm9yZy5yZGsucGxheWVyLnNldEF1ZGlvVHJhY2slMjZxdW90JTNCJTJDJTI2cXVvdCUzQnBhcmFtcyUyNnF1b3QlM0IlM0ElN0IlMjZxdW90JTNCdHJhY2tJZCUyNnF1b3QlM0IlM0ExJTdEJTdEJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJUMyJUEwJTNDcHJlJTNFJTdCJTI2cXVvdCUzQmpzb25ycGMlMjZxdW90JTNCJTNBJTI2cXVvdCUzQjIuMCUyNnF1b3QlM0IlMkMlMjZxdW90JTNCaWQlMjZxdW90JTNCJTNBMSUyQyUyNnF1b3QlM0JyZXN1bHQlMjZxdW90JTNCJTNBJTdCJTI2cXVvdCUzQnN1Y2Nlc3MlMjZxdW90JTNCJTNBdHJ1ZSU3RCU3RCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDJTJGdHIlM0UlM0N0ciUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VvcmcucmRrLnBsYXllci5nZXRBdWRpb1RyYWNrJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFR2V0QXVkaW9UcmFjayUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRU5vbmUlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0V0cmFja0lkJTNBaW50ZWdlciUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRUdldCUyMGluZGV4JTIwb2YlMjBhY3RpdmUlMjBhdWRpbyUyMHRyYWNrJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFJTdCJTI2cXVvdCUzQmpzb25ycGMlMjZxdW90JTNCJTNBJTI2cXVvdCUzQjIuMCUyNnF1b3QlM0IlMkMlMjZxdW90JTNCaWQlMjZxdW90JTNCJTNBMSUyQyUyNnF1b3QlM0JtZXRob2QlMjZxdW90JTNCJTNBJTI2cXVvdCUzQm9yZy5yZGsucGxheWVyLmdldEF1ZGlvVHJhY2slMjZxdW90JTNCJTdEJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJUMyJUEwJTNDcHJlJTNFJTdCJTI2cXVvdCUzQmpzb25ycGMlMjZxdW90JTNCJTNBJTI2cXVvdCUzQjIuMCUyNnF1b3QlM0IlMkMlMjZxdW90JTNCaWQlMjZxdW90JTNCJTNBMSUyQyUyNnF1b3QlM0JyZXN1bHQlMjZxdW90JTNCJTNBJTdCJTI2cXVvdCUzQnRyYWNrSWQlMjZxdW90JTNCJTNBMCU3RCU3RCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDJTJGdHIlM0UlM0N0ciUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VvcmcucmRrLnBsYXllci5nZXRBdWRpb1RyYWNrSW5mbyUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRUdldEF1ZGlvVHJhY2tJbmZvJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFTm9uZSUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRXRyYWNrSW5mbyUzQUF1ZGlvVHJhY2slM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VHZXQlMjBkZXRhaWxzJTIwb2YlMjBhY3RpdmUlMjBhdWRpbyUyMHRyYWNrJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFJTdCJTI2cXVvdCUzQmpzb25ycGMlMjZxdW90JTNCJTNBJTI2cXVvdCUzQjIuMCUyNnF1b3QlM0IlMkMlMjZxdW90JTNCaWQlMjZxdW90JTNCJTNBMSUyQyUyNnF1b3QlM0JtZXRob2QlMjZxdW90JTNCJTNBJTI2cXVvdCUzQm9yZy5yZGsucGxheWVyLmdldEF1ZGlvVHJhY2tJbmZvJTI2cXVvdCUzQiU3RCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSVDMiVBMCUzQ3ByZSUzRSU3QiUyNnF1b3QlM0Jqc29ucnBjJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0IyLjAlMjZxdW90JTNCJTJDJTI2cXVvdCUzQmlkJTI2cXVvdCUzQiUzQTElMkMlMjZxdW90JTNCcmVzdWx0JTI2cXVvdCUzQiUzQSU3QiUyNnF1b3QlM0J0cmFja0luZm8lMjZxdW90JTNCJTNBJTdCJTI2cXVvdCUzQmluZGV4JTI2cXVvdCUzQiUzQTAlMkMlMjZxdW90JTNCbGFuZ3VhZ2UlMjZxdW90JTNCJTNBJTI2cXVvdCUzQmVuJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0JyZW5kaXRpb24lMjZxdW90JTNCJTNBJTI2cXVvdCUzQm1haW4lMjZxdW90JTNCJTJDJTI2cXVvdCUzQmxhYmVsJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0JFbmdsaXNoJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0Jjb2RlYyUyNnF1b3QlM0IlM0ElMjZxdW90JTNCbXA0YS40MC4yJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0J0eXBlJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0JBVURJT19TVEVSRU8lMjZxdW90JTNCJTJDJTI2cXVvdCUzQmNoYW5uZWxzJTI2cXVvdCUzQiUzQTIlMkMlMjZxdW90JTNCYml0cmF0ZSUyNnF1b3QlM0IlM0ExMjgwMDAlN0QlN0QlN0QlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQyUyRnRyJTNFJTNDdHIlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFb3JnLnJkay5wbGF5ZXIuc2V0U3VidGl0bGVNdXRlJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFU2V0U3VidGl0bGVNdXRlJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFbXV0ZWQlM0ElMjBib29sZWFuJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFc3VjY2VzcyUzQSUyMGJvb2xlYW4lM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VNdXRlJTIwb3IlMjB1bm11dGUlMjBzdWJ0aXRsZXMlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0UlN0IlMjZxdW90JTNCanNvbnJwYyUyNnF1b3QlM0IlM0ElMjZxdW90JTNCMi4wJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0JpZCUyNnF1b3QlM0IlM0ExJTJDJTI2cXVvdCUzQm1ldGhvZCUyNnF1b3QlM0IlM0ElMjZxdW90JTNCb3JnLnJkay5wbGF5ZXIuc2V0U3VidGl0bGVNdXRlJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0JwYXJhbXMlMjZxdW90JTNCJTNBJTdCJTI2cXVvdCUzQm11dGVkJTI2cXVvdCUzQiUzQXRydWUlN0QlN0QlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlQzIlQTAlM0NwcmUlM0UlN0IlMjZxdW90JTNCanNvbnJwYyUyNnF1b3QlM0IlM0ElMjZxdW90JTNCMi4wJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0JpZCUyNnF1b3QlM0IlM0ExJTJDJTI2cXVvdCUzQnJlc3VsdCUyNnF1b3QlM0IlM0ElN0IlMjZxdW90JTNCc3VjY2VzcyUyNnF1b3QlM0IlM0F0cnVlJTdEJTdEJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0MlMkZ0ciUzRSUzQ3RyJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRW9yZy5yZGsucGxheWVyLmdldEF2YWlsYWJsZVRleHRUcmFja3MlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VHZXRBdmFpbGFibGVUZXh0VHJhY2tzJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFYWxsVHJhY2tzJTIwJTNBJTIwYm9vbGVhbiUzQ2JyJTJGJTNFJTNDYnIlMkYlM0UlQzIlQTAlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0V0cmFja3MlMjAlM0ElQzIlQTAlM0NiciUyRiUzRSUzQ2JyJTJGJTNFVGV4dFRyYWNrJTVCJTVEJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFTGlzdCUyMGF2YWlsYWJsZSUyMHRleHQlMkZzdWJ0aXRsZSUyMHRyYWNrcyUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRSU3QiUyNnF1b3QlM0Jqc29ucnBjJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0IyLjAlMjZxdW90JTNCJTJDJTI2cXVvdCUzQmlkJTI2cXVvdCUzQiUzQTElMkMlMjZxdW90JTNCbWV0aG9kJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0JvcmcucmRrLnBsYXllci5nZXRBdmFpbGFibGVUZXh0VHJhY2tzJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0JwYXJhbXMlMjZxdW90JTNCJTNBJTdCJTI2cXVvdCUzQmFsbFRyYWNrcyUyNnF1b3QlM0IlM0FmYWxzZSU3RCU3RCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSVDMiVBMCUzQ3ByZSUzRSU3QiUyNnF1b3QlM0Jqc29ucnBjJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0IyLjAlMjZxdW90JTNCJTJDJTI2cXVvdCUzQmlkJTI2cXVvdCUzQiUzQTElMkMlMjZxdW90JTNCcmVzdWx0JTI2cXVvdCUzQiUzQSU3QiUyNnF1b3QlM0J0cmFja3MlMjZxdW90JTNCJTNBJTVCJTdCJTI2cXVvdCUzQmluZGV4JTI2cXVvdCUzQiUzQTAlMkMlMjZxdW90JTNCbGFuZ3VhZ2UlMjZxdW90JTNCJTNBJTI2cXVvdCUzQmVuJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0JyZW5kaXRpb24lMjZxdW90JTNCJTNBJTI2cXVvdCUzQm1haW4lMjZxdW90JTNCJTJDJTI2cXVvdCUzQmxhYmVsJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0JFbmdsaXNoJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0J0eXBlJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0JTVUJUSVRMRVMlMjZxdW90JTNCJTdEJTJDJTdCJTI2cXVvdCUzQmluZGV4JTI2cXVvdCUzQiUzQTElMkMlMjZxdW90JTNCbGFuZ3VhZ2UlMjZxdW90JTNCJTNBJTI2cXVvdCUzQnNwYSUyNnF1b3QlM0IlMkMlMjZxdW90JTNCcmVuZGl0aW9uJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0JtYWluJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0JsYWJlbCUyNnF1b3QlM0IlM0ElMjZxdW90JTNCU3BhbmlzaCUyNnF1b3QlM0IlMkMlMjZxdW90JTNCdHlwZSUyNnF1b3QlM0IlM0ElMjZxdW90JTNCU1VCVElUTEVTJTI2cXVvdCUzQiU3RCU1RCU3RCU3RCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDJTJGdHIlM0UlM0N0ciUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VvcmcucmRrLnBsYXllci5zZXRUZXh0VHJhY2slM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VTZXRUZXh0VHJhY2slM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0V0cmFja0lkJTIwJTNBJTIwaW50ZWdlciUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRXN1Y2Nlc3MlMjAlM0ElMjBib29sZWFuJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFU2VsZWN0JTIwYSUyMHRleHQlMjB0cmFjayUyMGJ5JTIwaW5kZXglM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0UlN0IlMjZxdW90JTNCanNvbnJwYyUyNnF1b3QlM0IlM0ElMjZxdW90JTNCMi4wJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0JpZCUyNnF1b3QlM0IlM0ExJTJDJTI2cXVvdCUzQm1ldGhvZCUyNnF1b3QlM0IlM0ElMjZxdW90JTNCb3JnLnJkay5wbGF5ZXIuc2V0VGV4dFRyYWNrJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0JwYXJhbXMlMjZxdW90JTNCJTNBJTdCJTI2cXVvdCUzQnRyYWNrSWQlMjZxdW90JTNCJTNBMCU3RCU3RCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSVDMiVBMCUzQ3ByZSUzRSU3QiUyNnF1b3QlM0Jqc29ucnBjJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0IyLjAlMjZxdW90JTNCJTJDJTI2cXVvdCUzQmlkJTI2cXVvdCUzQiUzQTElMkMlMjZxdW90JTNCcmVzdWx0JTI2cXVvdCUzQiUzQSU3QiUyNnF1b3QlM0JzdWNjZXNzJTI2cXVvdCUzQiUzQXRydWUlN0QlN0QlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQyUyRnRyJTNFJTNDdHIlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFb3JnLnJkay5wbGF5ZXIuZ2V0VGV4dFRyYWNrJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFR2V0VGV4dFRyYWNrJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFTm9uZSUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRXRyYWNrSWQlMjAlM0ElMjBpbnRlZ2VyJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFR2V0JTIwaW5kZXglMjBvZiUyMGFjdGl2ZSUyMHRleHQlMjB0cmFjayUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRSU3QiUyNnF1b3QlM0Jqc29ucnBjJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0IyLjAlMjZxdW90JTNCJTJDJTI2cXVvdCUzQmlkJTI2cXVvdCUzQiUzQTElMkMlMjZxdW90JTNCbWV0aG9kJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0JvcmcucmRrLnBsYXllci5nZXRUZXh0VHJhY2slMjZxdW90JTNCJTdEJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJUMyJUEwJTNDcHJlJTNFJTdCJTI2cXVvdCUzQmpzb25ycGMlMjZxdW90JTNCJTNBJTI2cXVvdCUzQjIuMCUyNnF1b3QlM0IlMkMlMjZxdW90JTNCaWQlMjZxdW90JTNCJTNBMSUyQyUyNnF1b3QlM0JyZXN1bHQlMjZxdW90JTNCJTNBJTdCJTI2cXVvdCUzQnRyYWNrSWQlMjZxdW90JTNCJTNBMCU3RCU3RCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDJTJGdHIlM0UlM0N0ciUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VvcmcucmRrLnBsYXllci5nZXRWaWRlb0JpdHJhdGUlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VHZXRWaWRlb0JpdHJhdGUlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VOb25lJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFYml0cmF0ZSUyMCUzQSUyMGludGVnZXIlQzIlQTAlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VHZXQlMjBjdXJyZW50JTIwdmlkZW8lMjBiaXRyYXRlJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFJTdCJTI2cXVvdCUzQmpzb25ycGMlMjZxdW90JTNCJTNBJTI2cXVvdCUzQjIuMCUyNnF1b3QlM0IlMkMlMjZxdW90JTNCaWQlMjZxdW90JTNCJTNBMSUyQyUyNnF1b3QlM0JtZXRob2QlMjZxdW90JTNCJTNBJTI2cXVvdCUzQm9yZy5yZGsucGxheWVyLmdldFZpZGVvQml0cmF0ZSUyNnF1b3QlM0IlN0QlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlQzIlQTAlM0NwcmUlM0UlN0IlMjZxdW90JTNCanNvbnJwYyUyNnF1b3QlM0IlM0ElMjZxdW90JTNCMi4wJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0JpZCUyNnF1b3QlM0IlM0ExJTJDJTI2cXVvdCUzQnJlc3VsdCUyNnF1b3QlM0IlM0ElN0IlMjZxdW90JTNCYml0cmF0ZSUyNnF1b3QlM0IlM0E0MDAwMDAwJTdEJTdEJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0MlMkZ0ciUzRSUzQ3RyJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRW9yZy5yZGsucGxheWVyLnNldFZpZGVvQml0cmF0ZSUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRVNldFZpZGVvQml0cmF0ZSUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRWJpdHJhdGUlMjAlM0ElMjBpbnRlZ2VyJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFc3VjY2VzcyUyMCUzQSUyMGJvb2xlYW4lM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VMb2NrJTIwdGhlJTIwdmlkZW8lMjBiaXRyYXRlJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFJTdCJTI2cXVvdCUzQmpzb25ycGMlMjZxdW90JTNCJTNBJTI2cXVvdCUzQjIuMCUyNnF1b3QlM0IlMkMlMjZxdW90JTNCaWQlMjZxdW90JTNCJTNBMSUyQyUyNnF1b3QlM0JtZXRob2QlMjZxdW90JTNCJTNBJTI2cXVvdCUzQm9yZy5yZGsucGxheWVyLnNldFZpZGVvQml0cmF0ZSUyNnF1b3QlM0IlMkMlMjZxdW90JTNCcGFyYW1zJTI2cXVvdCUzQiUzQSU3QiUyNnF1b3QlM0JiaXRyYXRlJTI2cXVvdCUzQiUzQTIwMDAwMDAlN0QlN0QlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlQzIlQTAlM0NwcmUlM0UlN0IlMjZxdW90JTNCanNvbnJwYyUyNnF1b3QlM0IlM0ElMjZxdW90JTNCMi4wJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0JpZCUyNnF1b3QlM0IlM0ExJTJDJTI2cXVvdCUzQnJlc3VsdCUyNnF1b3QlM0IlM0ElN0IlMjZxdW90JTNCc3VjY2VzcyUyNnF1b3QlM0IlM0F0cnVlJTdEJTdEJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0MlMkZ0ciUzRSUzQ3RyJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRW9yZy5yZGsucGxheWVyLmdldFZpZGVvQml0cmF0ZXMlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VHZXRWaWRlb0JpdHJhdGVzJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFTm9uZSVDMiVBMCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRWJpdHJhdGVzJTIwJTNBJUMyJUEwJTNDYnIlMkYlM0UlM0NiciUyRiUzRWludGVnZXIlNUIlNUQlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VMaXN0JTIwYWxsJTIwYXZhaWxhYmxlJTIwdmlkZW8lMjBiaXRyYXRlcyUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRSU3QiUyNnF1b3QlM0Jqc29ucnBjJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0IyLjAlMjZxdW90JTNCJTJDJTI2cXVvdCUzQmlkJTI2cXVvdCUzQiUzQTElMkMlMjZxdW90JTNCbWV0aG9kJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0JvcmcucmRrLnBsYXllci5nZXRWaWRlb0JpdHJhdGVzJTI2cXVvdCUzQiU3RCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSVDMiVBMCUzQ3ByZSUzRSU3QiUyNnF1b3QlM0Jqc29ucnBjJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0IyLjAlMjZxdW90JTNCJTJDJTI2cXVvdCUzQmlkJTI2cXVvdCUzQiUzQTElMkMlMjZxdW90JTNCcmVzdWx0JTI2cXVvdCUzQiUzQSU3QiUyNnF1b3QlM0JiaXRyYXRlcyUyNnF1b3QlM0IlM0ElNUI4MDAwMDAlMkMyMDAwMDAwJTJDNDAwMDAwMCUyQzgwMDAwMDAlNUQlN0QlN0QlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQyUyRnRyJTNFJTNDdHIlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFb3JnLnJkay5wbGF5ZXIuc2V0SW5pdGlhbEJpdHJhdGUlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VTZXRJbml0aWFsQml0cmF0ZSUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRWJpdHJhdGUlMjAlM0ElMjBpbnRlZ2VyJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFc3VjY2VzcyUyMCVDMiVBMCUzQSUyMGJvb2xlYW4lM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VTZXQlMjB0aGUlMjBzdGFydHVwJTIwYml0cmF0ZSUyMGhpbnQlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0UlN0IlMjZxdW90JTNCanNvbnJwYyUyNnF1b3QlM0IlM0ElMjZxdW90JTNCMi4wJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0JpZCUyNnF1b3QlM0IlM0ExJTJDJTI2cXVvdCUzQm1ldGhvZCUyNnF1b3QlM0IlM0ElMjZxdW90JTNCb3JnLnJkay5wbGF5ZXIuc2V0SW5pdGlhbEJpdHJhdGUlMjZxdW90JTNCJTJDJTI2cXVvdCUzQnBhcmFtcyUyNnF1b3QlM0IlM0ElN0IlMjZxdW90JTNCYml0cmF0ZSUyNnF1b3QlM0IlM0EyMDAwMDAwJTdEJTdEJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJUMyJUEwJTNDcHJlJTNFJTdCJTI2cXVvdCUzQmpzb25ycGMlMjZxdW90JTNCJTNBJTI2cXVvdCUzQjIuMCUyNnF1b3QlM0IlMkMlMjZxdW90JTNCaWQlMjZxdW90JTNCJTNBMSUyQyUyNnF1b3QlM0JyZXN1bHQlMjZxdW90JTNCJTNBJTdCJTI2cXVvdCUzQnN1Y2Nlc3MlMjZxdW90JTNCJTNBdHJ1ZSU3RCU3RCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDJTJGdHIlM0UlM0N0ciUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VvcmcucmRrLnBsYXllci5nZXRJbml0aWFsQml0cmF0ZSUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRWdldEluaXRpYWxCaXRyYXQlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0UlQzIlQTAlM0NiciUyRiUzRSUzQ2JyJTJGJTNFTm9uZSUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRWJpdHJhdGUlMjAlM0ElMjBpbnRlZ2VyJUMyJUEwJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFU2V0JTIwdGhlJTIwc3RhcnR1cCUyMGJpdHJhdGUlMjBoaW50JTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFJTdCJTI2cXVvdCUzQmpzb25ycGMlMjZxdW90JTNCJTNBJTI2cXVvdCUzQjIuMCUyNnF1b3QlM0IlMkMlMjZxdW90JTNCaWQlMjZxdW90JTNCJTNBMSUyQyUyNnF1b3QlM0JtZXRob2QlMjZxdW90JTNCJTNBJTI2cXVvdCUzQm9yZy5yZGsucGxheWVyLmdldEluaXRpYWxCaXRyYXRlJTI2cXVvdCUzQiU3RCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSVDMiVBMCUzQ3ByZSUzRSU3QiUyNnF1b3QlM0Jqc29ucnBjJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0IyLjAlMjZxdW90JTNCJTJDJTI2cXVvdCUzQmlkJTI2cXVvdCUzQiUzQTElMkMlMjZxdW90JTNCcmVzdWx0JTI2cXVvdCUzQiUzQSU3QiUyNnF1b3QlM0JiaXRyYXRlJTI2cXVvdCUzQiUzQTIwMDAwMDAlN0QlN0QlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQyUyRnRyJTNFJTNDdHIlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFb3JnLnJkay5wbGF5ZXIuc2V0TWluaW11bUJpdHJhdGUlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VTZXRNaW5pbXVtQml0cmF0ZSUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRWJpdHJhdGUlMjAlM0ElMjBpbnRlZ2VyJUMyJUEwJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFc3VjY2VzcyUyMCUzQSUyMGJvb2xlYW4lM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VTZXQlMjB0aGUlMjBBQlIlMjBtaW5pbXVtJTIwYml0cmF0ZSUyMGZsb29yJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFJTdCJTI2cXVvdCUzQmpzb25ycGMlMjZxdW90JTNCJTNBJTI2cXVvdCUzQjIuMCUyNnF1b3QlM0IlMkMlMjZxdW90JTNCaWQlMjZxdW90JTNCJTNBMSUyQyUyNnF1b3QlM0JtZXRob2QlMjZxdW90JTNCJTNBJTI2cXVvdCUzQm9yZy5yZGsucGxheWVyLnNldE1pbmltdW1CaXRyYXRlJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0JwYXJhbXMlMjZxdW90JTNCJTNBJTdCJTI2cXVvdCUzQmJpdHJhdGUlMjZxdW90JTNCJTNBODAwMDAwJTdEJTdEJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJUMyJUEwJTNDcHJlJTNFJTdCJTI2cXVvdCUzQmpzb25ycGMlMjZxdW90JTNCJTNBJTI2cXVvdCUzQjIuMCUyNnF1b3QlM0IlMkMlMjZxdW90JTNCaWQlMjZxdW90JTNCJTNBMSUyQyUyNnF1b3QlM0JyZXN1bHQlMjZxdW90JTNCJTNBJTdCJTI2cXVvdCUzQnN1Y2Nlc3MlMjZxdW90JTNCJTNBdHJ1ZSU3RCU3RCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDJTJGdHIlM0UlM0N0ciUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VvcmcucmRrLnBsYXllci5nZXRNaW5pbXVtQml0cmF0ZSUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRUdldE1pbmltdW1CaXRyYXRlJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFTm9uZSUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRWJpdHJhdGUlMjAlM0ElMjBpbnRlZ2VyJUMyJUEwJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFR2V0JTIwdGhlJTIwQUJSJTIwbWluaW11bSUyMGJpdHJhdGUlMjBmbG9vciVDMiVBMCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRSU3QiUyNnF1b3QlM0Jqc29ucnBjJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0IyLjAlMjZxdW90JTNCJTJDJTI2cXVvdCUzQmlkJTI2cXVvdCUzQiUzQTElMkMlMjZxdW90JTNCbWV0aG9kJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0JvcmcucmRrLnBsYXllci5nZXRNaW5pbXVtQml0cmF0ZSUyNnF1b3QlM0IlN0QlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlQzIlQTAlM0NwcmUlM0UlN0IlMjZxdW90JTNCanNvbnJwYyUyNnF1b3QlM0IlM0ElMjZxdW90JTNCMi4wJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0JpZCUyNnF1b3QlM0IlM0ExJTJDJTI2cXVvdCUzQnJlc3VsdCUyNnF1b3QlM0IlM0ElN0IlMjZxdW90JTNCYml0cmF0ZSUyNnF1b3QlM0IlM0E4MDAwMDAlN0QlN0QlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQyUyRnRyJTNFJTNDdHIlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFb3JnLnJkay5wbGF5ZXIuc2V0TWF4aW11bUJpdHJhdGUlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VTZXRNYXhpbXVtQml0cmF0ZSUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRWJpdHJhdGUlMjAlM0ElMjBpbnRlZ2VyJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFc3VjY2VzcyUyMCUzQSUyMGJvb2xlYW4lM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VTZXQlMjB0aGUlMjBBQlIlMjBtYXhpbXVtJTIwYml0cmF0ZSUyMGNlaWxpbmclM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0UlN0IlMjZxdW90JTNCanNvbnJwYyUyNnF1b3QlM0IlM0ElMjZxdW90JTNCMi4wJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0JpZCUyNnF1b3QlM0IlM0ExJTJDJTI2cXVvdCUzQm1ldGhvZCUyNnF1b3QlM0IlM0ElMjZxdW90JTNCb3JnLnJkay5wbGF5ZXIuc2V0TWF4aW11bUJpdHJhdGUlMjZxdW90JTNCJTJDJTI2cXVvdCUzQnBhcmFtcyUyNnF1b3QlM0IlM0ElN0IlMjZxdW90JTNCYml0cmF0ZSUyNnF1b3QlM0IlM0E4MDAwMDAwJTdEJTdEJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFJTdCJTI2cXVvdCUzQmpzb25ycGMlMjZxdW90JTNCJTNBJTI2cXVvdCUzQjIuMCUyNnF1b3QlM0IlMkMlMjZxdW90JTNCaWQlMjZxdW90JTNCJTNBMSUyQyUyNnF1b3QlM0JyZXN1bHQlMjZxdW90JTNCJTNBJTdCJTI2cXVvdCUzQnN1Y2Nlc3MlMjZxdW90JTNCJTNBdHJ1ZSU3RCU3RCUzQyUyRnByZSUzRSVDMiVBMCUzQyUyRnRkJTNFJTNDJTJGdHIlM0UlM0N0ciUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VvcmcucmRrLnBsYXllci5nZXRNYXhpbXVtQml0cmF0ZSUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRWdldE1heGltdW1CaXRyYXRlJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFTm9uZSUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRWJpdHJhdGUlMjAlM0ElMjBpbnRlZ2VyJUMyJUEwJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFR2V0JTIwdGhlJTIwQUJSJTIwbWF4aW11bSUyMGJpdHJhdGUlMjBjZWlsaW5nJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFJTdCJTI2cXVvdCUzQmpzb25ycGMlMjZxdW90JTNCJTNBJTI2cXVvdCUzQjIuMCUyNnF1b3QlM0IlMkMlMjZxdW90JTNCaWQlMjZxdW90JTNCJTNBMSUyQyUyNnF1b3QlM0JtZXRob2QlMjZxdW90JTNCJTNBJTI2cXVvdCUzQm9yZy5yZGsucGxheWVyLmdldE1heGltdW1CaXRyYXRlJTI2cXVvdCUzQiU3RCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRSVDMiVBMCUzQ2JyJTJGJTNFJTNDYnIlMkYlM0UlN0IlMjZxdW90JTNCanNvbnJwYyUyNnF1b3QlM0IlM0ElMjZxdW90JTNCMi4wJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0JpZCUyNnF1b3QlM0IlM0ExJTJDJTI2cXVvdCUzQnJlc3VsdCUyNnF1b3QlM0IlM0ElN0IlMjZxdW90JTNCYml0cmF0ZSUyNnF1b3QlM0IlM0E4MDAwMDAwJTdEJTdEJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0MlMkZ0ciUzRSUzQ3RyJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRXJnLnJkay5wbGF5ZXIuc2V0TGljZW5zZVNlcnZlclVSTCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRVNldExpY2Vuc2VTZXJ2ZXJVUkwlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0V1cmwlMjAlM0ElQzIlQTAlM0NiciUyRiUzRSUzQ2JyJTJGJTNFc3RyaW5nJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFc3VjY2VzcyUyMCUzQSUyMGJvb2xlYW4lQzIlQTAlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VTZXQlMjB0aGUlMjBEUk0lMjBsaWNlbnNlJTIwc2VydmVyJTIwVVJMJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFJTdCJTI2cXVvdCUzQmpzb25ycGMlMjZxdW90JTNCJTNBJTI2cXVvdCUzQjIuMCUyNnF1b3QlM0IlMkMlMjZxdW90JTNCaWQlMjZxdW90JTNCJTNBMSUyQyUyNnF1b3QlM0JtZXRob2QlMjZxdW90JTNCJTNBJTI2cXVvdCUzQm9yZy5yZGsucGxheWVyLnNldExpY2Vuc2VTZXJ2ZXJVUkwlMjZxdW90JTNCJTJDJTI2cXVvdCUzQnBhcmFtcyUyNnF1b3QlM0IlM0ElN0IlMjZxdW90JTNCdXJsJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0IlM0NhJTIwaHJlZiUzRCUyMmh0dHBzJTNBJTJGJTJGbGljZW5zZS5leGFtcGxlLmNvbSUyRndpZGV2aW5lJTIyJTIwY2xhc3MlM0QlMjJleHRlcm5hbC1saW5rJTIyJTIwcmVsJTNEJTIybm9mb2xsb3clMjIlM0VodHRwcyUzQSUyRiUyRmxpY2Vuc2UuZXhhbXBsZS5jb20lMkZ3aWRldmluZSUzQyUyRmElM0UlMjZxdW90JTNCJTdEJTdEJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJUMyJUEwJTNDcHJlJTNFJTdCJTI2cXVvdCUzQmpzb25ycGMlMjZxdW90JTNCJTNBJTI2cXVvdCUzQjIuMCUyNnF1b3QlM0IlMkMlMjZxdW90JTNCaWQlMjZxdW90JTNCJTNBMSUyQyUyNnF1b3QlM0JyZXN1bHQlMjZxdW90JTNCJTNBJTdCJTI2cXVvdCUzQnN1Y2Nlc3MlMjZxdW90JTNCJTNBdHJ1ZSU3RCU3RCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDJTJGdHIlM0UlM0N0ciUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VvcmcucmRrLnBsYXllci5nZXREUk0lM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VHZXREUk0lM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VOb25lJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFZHJtJTIwJTNBJTIwc3RyaW5nJUMyJUEwJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFR2V0JTIwYWN0aXZlJTIwRFJNJTIwc3lzdGVtJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFJTdCJTI2cXVvdCUzQmpzb25ycGMlMjZxdW90JTNCJTNBJTI2cXVvdCUzQjIuMCUyNnF1b3QlM0IlMkMlMjZxdW90JTNCaWQlMjZxdW90JTNCJTNBMSUyQyUyNnF1b3QlM0JtZXRob2QlMjZxdW90JTNCJTNBJTI2cXVvdCUzQm9yZy5yZGsucGxheWVyLmdldERSTSUyNnF1b3QlM0IlN0QlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlQzIlQTAlM0NwcmUlM0UlN0IlMjZxdW90JTNCanNvbnJwYyUyNnF1b3QlM0IlM0ElMjZxdW90JTNCMi4wJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0JpZCUyNnF1b3QlM0IlM0ExJTJDJTI2cXVvdCUzQnJlc3VsdCUyNnF1b3QlM0IlM0ElN0IlMjZxdW90JTNCZHJtJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0J3aWRldmluZSUyNnF1b3QlM0IlN0QlN0QlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQyUyRnRyJTNFJTNDdHIlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFb3JnLnJkay5wbGF5ZXIuc2V0UHJlZmVycmVkRFJNJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFU2V0UHJlZmVycmVkRFJNJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFZHJtVHlwZSUyMCUzQSUyMHN0cmluZyUzQ2JyJTJGJTNFJTNDYnIlMkYlM0UlQzIlQTAlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VzdWNjZXNzJTIwJTNBJTIwYm9vbGVhbiUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRVNldCUyMHRoZSUyMHByZWZlcnJlZCUyMERSTSUyMHN5c3RlbSUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRSU3QiUyNnF1b3QlM0Jqc29ucnBjJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0IyLjAlMjZxdW90JTNCJTJDJTI2cXVvdCUzQmlkJTI2cXVvdCUzQiUzQTElMkMlMjZxdW90JTNCbWV0aG9kJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0JvcmcucmRrLnBsYXllci5zZXRQcmVmZXJyZWREUk0lMjZxdW90JTNCJTJDJTI2cXVvdCUzQnBhcmFtcyUyNnF1b3QlM0IlM0ElN0IlMjZxdW90JTNCZHJtVHlwZSUyNnF1b3QlM0IlM0ElMjZxdW90JTNCd2lkZXZpbmUlMjZxdW90JTNCJTdEJTdEJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJUMyJUEwJTNDcHJlJTNFJTdCJTI2cXVvdCUzQmpzb25ycGMlMjZxdW90JTNCJTNBJTI2cXVvdCUzQjIuMCUyNnF1b3QlM0IlMkMlMjZxdW90JTNCaWQlMjZxdW90JTNCJTNBMSUyQyUyNnF1b3QlM0JyZXN1bHQlMjZxdW90JTNCJTNBJTdCJTI2cXVvdCUzQnN1Y2Nlc3MlMjZxdW90JTNCJTNBdHJ1ZSU3RCU3RCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDJTJGdHIlM0UlM0N0ciUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VyZy5yZGsucGxheWVyLmdldEFBTVBDb25maWclM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VHZXRBQU1QQ29uZmlnJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFTm9uZSUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRWNvbmZpZyUyMCUzQSUyMG9iamVjdCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRUdldCUyMGN1cnJlbnQlMjBBQU1QJTIwY29uZmlndXJhdGlvbiUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRSU3QiUyNnF1b3QlM0Jqc29ucnBjJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0IyLjAlMjZxdW90JTNCJTJDJTI2cXVvdCUzQmlkJTI2cXVvdCUzQiUzQTElMkMlMjZxdW90JTNCbWV0aG9kJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0JvcmcucmRrLnBsYXllci5nZXRBQU1QQ29uZmlnJTI2cXVvdCUzQiU3RCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSVDMiVBMCUzQ3ByZSUzRSU3QiUyNnF1b3QlM0Jqc29ucnBjJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0IyLjAlMjZxdW90JTNCJTJDJTI2cXVvdCUzQmlkJTI2cXVvdCUzQiUzQTElMkMlMjZxdW90JTNCcmVzdWx0JTI2cXVvdCUzQiUzQSU3QiUyNnF1b3QlM0Jjb25maWclMjZxdW90JTNCJTNBJTdCJTI2cXVvdCUzQm5ldHdvcmtUaW1lb3V0JTI2cXVvdCUzQiUzQTEwJTJDJTI2cXVvdCUzQmRvd25sb2FkQnVmZmVyJTI2cXVvdCUzQiUzQTMwJTdEJTdEJTdEJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0MlMkZ0ciUzRSUzQ3RyJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRW9yZy5yZGsucGxheWVyLnNldEFwcE5hbWUlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VTZXRBcHBOYW1lJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFbmFtZSUyMCUzQSUyMHN0cmluZyUzQ2JyJTJGJTNFJTNDYnIlMkYlM0UlQzIlQTAlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VzdWNjZXNzJTIwJTNBJTIwYm9vbGVhbiUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRVNldCUyMHRoZSUyMGFwcGxpY2F0aW9uJTIwbmFtZSUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRSU3QiUyNnF1b3QlM0Jqc29ucnBjJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0IyLjAlMjZxdW90JTNCJTJDJTI2cXVvdCUzQmlkJTI2cXVvdCUzQiUzQTElMkMlMjZxdW90JTNCbWV0aG9kJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0JvcmcucmRrLnBsYXllci5zZXRBcHBOYW1lJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0JwYXJhbXMlMjZxdW90JTNCJTNBJTdCJTI2cXVvdCUzQm5hbWUlMjZxdW90JTNCJTNBJTI2cXVvdCUzQk15U3RyZWFtaW5nQXBwJTI2cXVvdCUzQiU3RCU3RCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSVDMiVBMCUzQ3ByZSUzRSU3QiUyNnF1b3QlM0Jqc29ucnBjJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0IyLjAlMjZxdW90JTNCJTJDJTI2cXVvdCUzQmlkJTI2cXVvdCUzQiUzQTElMkMlMjZxdW90JTNCcmVzdWx0JTI2cXVvdCUzQiUzQSU3QiUyNnF1b3QlM0JzdWNjZXNzJTI2cXVvdCUzQiUzQXRydWUlN0QlN0QlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQyUyRnRyJTNFJTNDdHIlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFb3JnLnJkay5wbGF5ZXIuc2V0UHJlZmVycmVkTGFuZ3VhZ2VzJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFU2V0UHJlZmVycmVkTGFuZ3VhZ2VzJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFbGFuZ3VhZ2VMaXN0JTIwJUMyJUEwJTNBJTIwc3RyaW5nJTNDYnIlMkYlM0UlM0NiciUyRiUzRXJlbmRpdGlvbiUyMCUzQSUyMHN0cmluZyUzQ2JyJTJGJTNFJTNDYnIlMkYlM0Vjb2RlY0xpc3QlMjAlM0ElMjBzdHJpbmclM0NiciUyRiUzRSUzQ2JyJTJGJTNFbGFiZWxMaXN0JTIwJTNBJTIwc3RyaW5nJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFc3VjY2VzcyUyMCUzQSUyMGJvb2xlYW4lM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VTZXQlMjBwcmVmZXJyZWQlMjBhdWRpbyUyRnRleHQlMjBsYW5ndWFnZSUyMHByZWZlcmVuY2VzJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFJTdCJTI2cXVvdCUzQmpzb25ycGMlMjZxdW90JTNCJTNBJTI2cXVvdCUzQjIuMCUyNnF1b3QlM0IlMkMlMjZxdW90JTNCaWQlMjZxdW90JTNCJTNBMSUyQyUyNnF1b3QlM0JtZXRob2QlMjZxdW90JTNCJTNBJTI2cXVvdCUzQm9yZy5yZGsucGxheWVyLnNldFByZWZlcnJlZExhbmd1YWdlcyUyNnF1b3QlM0IlMkMlMjZxdW90JTNCcGFyYW1zJTI2cXVvdCUzQiUzQSU3QiUyNnF1b3QlM0JsYW5ndWFnZUxpc3QlMjZxdW90JTNCJTNBJTI2cXVvdCUzQmVuJTJDZnJhJTJDc3BhJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0JyZW5kaXRpb24lMjZxdW90JTNCJTNBJTI2cXVvdCUzQm1haW4lMjZxdW90JTNCJTJDJTI2cXVvdCUzQnR5cGUlMjZxdW90JTNCJTNBJTI2cXVvdCUzQkFVRElPX1NURVJFTyUyNnF1b3QlM0IlMkMlMjZxdW90JTNCY29kZWNMaXN0JTI2cXVvdCUzQiUzQSUyNnF1b3QlM0JtcDRhLjQwLjIlMjZxdW90JTNCJTdEJTdEJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJUMyJUEwJTNDcHJlJTNFJTdCJTI2cXVvdCUzQmpzb25ycGMlMjZxdW90JTNCJTNBJTI2cXVvdCUzQjIuMCUyNnF1b3QlM0IlMkMlMjZxdW90JTNCaWQlMjZxdW90JTNCJTNBMSUyQyUyNnF1b3QlM0JyZXN1bHQlMjZxdW90JTNCJTNBJTdCJTI2cXVvdCUzQnN1Y2Nlc3MlMjZxdW90JTNCJTNBdHJ1ZSU3RCU3RCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDJTJGdHIlM0UlM0N0ciUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VvcmcucmRrLnBsYXllci5nZXRQcmVmZXJyZWRMYW5ndWFnZXMlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VHZXRQcmVmZXJyZWRMYW5ndWFnZXMlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VOb25lJTNDYnIlMkYlM0UlM0NiciUyRiUzRSVDMiVBMCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRWxhbmd1YWdlTGlzdCUyMCUzQSUyMHN0aW5nJTNDYnIlMkYlM0UlM0NiciUyRiUzRSVDMiVBMCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRUdldCUyMHRoZSUyMHByZWZlcnJlZCUyMGxhbmd1YWdlJTIwbGlzdCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRSU3QiUyNnF1b3QlM0Jqc29ucnBjJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0IyLjAlMjZxdW90JTNCJTJDJTI2cXVvdCUzQmlkJTI2cXVvdCUzQiUzQTElMkMlMjZxdW90JTNCbWV0aG9kJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0JvcmcucmRrLnBsYXllci5nZXRQcmVmZXJyZWRMYW5ndWFnZXMlMjZxdW90JTNCJTdEJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJUMyJUEwJTNDcHJlJTNFJTdCJTI2cXVvdCUzQmpzb25ycGMlMjZxdW90JTNCJTNBJTI2cXVvdCUzQjIuMCUyNnF1b3QlM0IlMkMlMjZxdW90JTNCaWQlMjZxdW90JTNCJTNBMSUyQyUyNnF1b3QlM0JyZXN1bHQlMjZxdW90JTNCJTNBJTdCJTI2cXVvdCUzQmxhbmd1YWdlTGlzdCUyNnF1b3QlM0IlM0ElMjZxdW90JTNCZW4lMkNmcmElMjZxdW90JTNCJTdEJTdEJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0MlMkZ0ciUzRSUzQyUyRnRib2R5JTNFJTNDJTJGdGFibGUlM0UlM0MlMkZkaXYlM0U=
JSON-RPC method | Aamp Player Instance Method | Parameter | Result | Summary | Jsonrpc Request example | Jsonrpc response example |
|---|
org.rdk.player.openSession |
| sessionId: stringappName : stringtraceUUID : string | sessionId : stringsuccess : boolean | Open a new player session | {
"jsonrpc": "2.0",
"id": 1,
"method": "org.rdk.player.openSession",
"params": {
"sessionId": "sess-abc-001",
"appName": "MyStreamingApp",
"traceUUID": "550e8400-e29b-41d4-a716-446655440000"
}
} | { "jsonrpc": "2.0", "id": 1, "result": { "sessionId": "sess-abc-001", "success": true } } |
org.rdk.player.configureSession |
| sessionId : stringconfig : object | sessionId : stringsuccess : boolean | Apply configuration to an open session | {
"jsonrpc": "2.0",
"id": 2,
"method": "org.rdk.player.configureSession",
"params": {
"sessionId": "sess-abc-001",
"config": {
"networkTimeout": 10,
"downloadBuffer": 30,
"preferredDRM": "widevine",
"initialBitrate": 2000000
}
}
} | { "jsonrpc": "2.0", "id": 2, "result": { "sessionId": "sess-abc-001", "success": true } } |
org.dk.player.closeSession |
| sessionId : stringsuccess : boolean | sessionId: Stringsuccess : boolean | Close and release a player session | {
"jsonrpc": "2.0",
"id": 3,
"method": "org.rdk.player.closeSession",
"params": {
"sessionId": "sess-abc-001"
}
} | { "jsonrpc": "2.0", "id": 3, "result": { "sessionId": "sess-abc-001", "success": true } } |
org.rdk.player.tune | Tune | url : StringautoPlay : booleancontentType : StringtraceUUID : String | success : boolean | Instructs the AAMP to tune to the given URL. | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.tune","params":{"url":"https://dash.akamaized.net/akamai/bbb_30fps/bbb_30fps.mpd","autoPlay":true,"contentType":"VOD"}} | {"jsonrpc":"2.0","id":4,"result":{"success":true}} |
org.rdk.player.stop | Stop | None | success :boolean | Stops the current playback and releases decoder resources. The player returns to the idle state. | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.stop"} | {"jsonrpc":"2.0","id":5,"result":{"success":true}} |
org.rdk.player.seek | Seek | position : numberkeepPaused : boolean | success : boolean | Seeks to an absolute position in the stream | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.seek","params":{"position":120.0,"keepPaused":false}} | {"jsonrpc":"2.0","id":5,"result":{"success":true}} |
org.rdk.player.seekToLive | SeekToLive | keepPaused : boolean | success : boolean | Seek to the live edge | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.seekToLive","params":{"keepPaused":false}} | {"jsonrpc":"2.0","id":1,"result":{"success":true}} |
org.rdk.player.setRate | SetRate | rate : number overshootCorrection : integer | success: boolean | Set playback rate / trick-play speed | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.setRate","params":{"rate":2,"overshootCorrection":0}} | {"jsonrpc":"2.0","id":1,"result":{"success":true}} |
org.rdk.player.setPlaybackSpeed | SetPlaybackSpeed | speed : number | success: boolean | Sets the playback speed directly | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.setPlaybackSpeed","params":{"speed":0.5}} | {"jsonrpc":"2.0","id":1,"result":{"success":true}} |
org.rdk.player.pauseAt | PauseAt | position : number | success : boolean | Schedule a pause at a future position | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.pauseAt","params":{"position":300.0}} | {"jsonrpc":"2.0","id":1,"result":{"success":true}} |
org.rdk.player.setRateAndSeek | SetRateAndSeek | rate : integer position : number | success:boolean | Atomically set rate and seek | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.setRateAndSeek","params":{"rate":1,"position":60.0}} | {"jsonrpc":"2.0","id":1,"result":{"success":true}} |
org.rdk.player.getState | GetState | None | state : PlayerState | Get current player state | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.getState"} | {"jsonrpc":"2.0","id":1,"result":{"state":"playing"}} |
org.rdk.player.getPlaybackPosition | GetPlaybackPosition | None | position : Number | Get current playback position | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.getPlaybackPosition"} | {"jsonrpc":"2.0","id":1,"result":{"position":120.5}} |
org.rdk.player.getPlaybackDuration | GetPlaybackDuration | None | duration : Number | Get total stream duration | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.getPlaybackDuration"} | {"jsonrpc":"2.0","id":1,"result":{"duration":3600.0}} |
org.rdk.player.getPlaybackRate | GetPlaybackRate | None | rate : Number | Get current playback rate | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.getPlaybackRate"} | {"jsonrpc":"2.0","id":1,"result":{"rate":1.0}} |
org.rdk.player.isLive | IsLive | None | isLive :Boolean | Check if stream is live | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.isLive"} | {"jsonrpc":"2.0","id":1,"result":{"isLive":false}} |
org.rdk.player.setVideoMute | SetVideoMute | muted : boolean | success :
Boolean | Mute or unmute the video plane | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.setVideoMute","params":{"muted":true}} | {"jsonrpc":"2.0","id":1,"result":{"success":true}} |
org.rdk.player.getVideoMute | GetVideoMute | None | muted :
Boolean | Get video mute state | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.getVideoMute"} | {"jsonrpc":"2.0","id":1,"result":{"muted":false}} |
org.rdk.player.setAudioVolume | SetAudioVolume | volume : integer | success :
Boolean | Set audio volume | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.setAudioVolume","params":{"volume":80}} | {"jsonrpc":"2.0","id":1,"result":{"success":true}} |
org.rdk.player.getAudioVolume | GetAudioVolume | None | volume :
Integer | Get audio volume | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.getAudioVolume"} | {"jsonrpc":"2.0","id":1,"result":{"volume":80}} |
org.rdk.player.getAudioLanguage | GetAudioLanguage | None | language : string |
| {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.getAudioLanguage"} | {"jsonrpc":"2.0","id":1,"result":{"language":"en"}} |
org.rdk.player.getAvailableAudioTracks | GetAvailableAudioTracks | allTracks boolean | tracks :AudioTrack[] | List available audio tracks | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.getAvailableAudioTracks","params":{"allTracks":false}} | {"jsonrpc":"2.0","id":1,"result":{"tracks":[{"index":0,"language":"en","rendition":"main","label":"English","codec":"mp4a.40.2","type":"AUDIO_STEREO","channels":2,"bitrate":128000},{"index":1,"language":"fra","rendition":"main","label":"French","codec":"mp4a.40.2","type":"AUDIO_STEREO","channels":2,"bitrate":128000}]}} |
org.rdk.player.setAudioTrack | SetAudioTrack | trackId : integer | success :
Boolean | Select an audio track by index | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.setAudioTrack","params":{"trackId":1}} | {"jsonrpc":"2.0","id":1,"result":{"success":true}} |
org.rdk.player.getAudioTrack | GetAudioTrack | None | trackId:integer | Get index of active audio track | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.getAudioTrack"} | {"jsonrpc":"2.0","id":1,"result":{"trackId":0}} |
org.rdk.player.getAudioTrackInfo | GetAudioTrackInfo | None | trackInfo:AudioTrack | Get details of active audio track | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.getAudioTrackInfo"} | {"jsonrpc":"2.0","id":1,"result":{"trackInfo":{"index":0,"language":"en","rendition":"main","label":"English","codec":"mp4a.40.2","type":"AUDIO_STEREO","channels":2,"bitrate":128000}}} |
org.rdk.player.setSubtitleMute | SetSubtitleMute | muted: boolean | success: boolean | Mute or unmute subtitles | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.setSubtitleMute","params":{"muted":true}} | {"jsonrpc":"2.0","id":1,"result":{"success":true}} |
org.rdk.player.getAvailableTextTracks | GetAvailableTextTracks | allTracks : boolean
| tracks :
TextTrack[] | List available text/subtitle tracks | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.getAvailableTextTracks","params":{"allTracks":false}} | {"jsonrpc":"2.0","id":1,"result":{"tracks":[{"index":0,"language":"en","rendition":"main","label":"English","type":"SUBTITLES"},{"index":1,"language":"spa","rendition":"main","label":"Spanish","type":"SUBTITLES"}]}} |
org.rdk.player.setTextTrack | SetTextTrack | trackId : integer | success : boolean | Select a text track by index | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.setTextTrack","params":{"trackId":0}} | {"jsonrpc":"2.0","id":1,"result":{"success":true}} |
org.rdk.player.getTextTrack | GetTextTrack | None | trackId : integer | Get index of active text track | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.getTextTrack"} | {"jsonrpc":"2.0","id":1,"result":{"trackId":0}} |
org.rdk.player.getVideoBitrate | GetVideoBitrate | None | bitrate : integer | Get current video bitrate | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.getVideoBitrate"} | {"jsonrpc":"2.0","id":1,"result":{"bitrate":4000000}} |
org.rdk.player.setVideoBitrate | SetVideoBitrate | bitrate : integer | success : boolean | Lock the video bitrate | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.setVideoBitrate","params":{"bitrate":2000000}} | {"jsonrpc":"2.0","id":1,"result":{"success":true}} |
org.rdk.player.getVideoBitrates | GetVideoBitrates | None | bitrates :
integer[] | List all available video bitrates | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.getVideoBitrates"} | {"jsonrpc":"2.0","id":1,"result":{"bitrates":[800000,2000000,4000000,8000000]}} |
org.rdk.player.setInitialBitrate | SetInitialBitrate | bitrate : integer | success : boolean | Set the startup bitrate hint | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.setInitialBitrate","params":{"bitrate":2000000}} | {"jsonrpc":"2.0","id":1,"result":{"success":true}} |
org.rdk.player.getInitialBitrate | getInitialBitrat |
None | bitrate : integer | Set the startup bitrate hint | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.getInitialBitrate"} | {"jsonrpc":"2.0","id":1,"result":{"bitrate":2000000}} |
org.rdk.player.setMinimumBitrate | SetMinimumBitrate | bitrate : integer | success : boolean | Set the ABR minimum bitrate floor | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.setMinimumBitrate","params":{"bitrate":800000}} | {"jsonrpc":"2.0","id":1,"result":{"success":true}} |
org.rdk.player.getMinimumBitrate | GetMinimumBitrate | None | bitrate : integer | Get the ABR minimum bitrate floor | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.getMinimumBitrate"} | {"jsonrpc":"2.0","id":1,"result":{"bitrate":800000}} |
org.rdk.player.setMaximumBitrate | SetMaximumBitrate | bitrate : integer | success : boolean | Set the ABR maximum bitrate ceiling | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.setMaximumBitrate","params":{"bitrate":8000000}} | {"jsonrpc":"2.0","id":1,"result":{"success":true}} |
org.rdk.player.getMaximumBitrate | getMaximumBitrate | None | bitrate : integer | Get the ABR maximum bitrate ceiling | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.getMaximumBitrate"} |
{"jsonrpc":"2.0","id":1,"result":{"bitrate":8000000}} |
rg.rdk.player.setLicenseServerURL | SetLicenseServerURL | url :
string | success : boolean | Set the DRM license server URL | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.setLicenseServerURL","params":{"url":"https://license.example.com/widevine"}} | {"jsonrpc":"2.0","id":1,"result":{"success":true}} |
org.rdk.player.getDRM | GetDRM | None | drm : string | Get active DRM system | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.getDRM"} | {"jsonrpc":"2.0","id":1,"result":{"drm":"widevine"}} |
org.rdk.player.setPreferredDRM | SetPreferredDRM | drmType : string
| success : boolean | Set the preferred DRM system | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.setPreferredDRM","params":{"drmType":"widevine"}} | {"jsonrpc":"2.0","id":1,"result":{"success":true}} |
rg.rdk.player.getAAMPConfig | GetAAMPConfig | None | config : object | Get current AAMP configuration | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.getAAMPConfig"} | {"jsonrpc":"2.0","id":1,"result":{"config":{"networkTimeout":10,"downloadBuffer":30}}} |
org.rdk.player.setAppName | SetAppName | name : string
| success : boolean | Set the application name | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.setAppName","params":{"name":"MyStreamingApp"}} | {"jsonrpc":"2.0","id":1,"result":{"success":true}} |
org.rdk.player.setPreferredLanguages | SetPreferredLanguages | languageList : string
rendition : string
codecList : string
labelList : string | success : boolean | Set preferred audio/text language preferences | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.setPreferredLanguages","params":{"languageList":"en,fra,spa","rendition":"main","type":"AUDIO_STEREO","codecList":"mp4a.40.2"}} | {"jsonrpc":"2.0","id":1,"result":{"success":true}} |
org.rdk.player.getPreferredLanguages | GetPreferredLanguages | None
| languageList : sting
| Get the preferred language list | {"jsonrpc":"2.0","id":1,"method":"org.rdk.player.getPreferredLanguages"} | {"jsonrpc":"2.0","id":1,"result":{"languageList":"en,fra"}} |
JTNDdGFibGUlMjBjbGFzcyUzRCUyMndyYXBwZWQlMjBjb25mbHVlbmNlVGFibGUlMjIlM0UlM0Njb2xncm91cCUzRSUzQ2NvbCUyMCUyRiUzRSUzQ2NvbCUyMCUyRiUzRSUzQ2NvbCUyMCUyRiUzRSUzQ2NvbCUyMCUyRiUzRSUzQ2NvbCUyMCUyRiUzRSUzQ2NvbCUyMCUyRiUzRSUzQ2NvbCUyMCUyRiUzRSUzQyUyRmNvbGdyb3VwJTNFJTNDdGJvZHklM0UlM0N0ciUzRSUzQ3RoJTIwc2NvcGUlM0QlMjJjb2wlMjIlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUaCUyMiUzRSUzQ3ByZSUzRUpTT04tUlBDJTIwbWV0aG9kJTNDJTJGcHJlJTNFJTNDJTJGdGglM0UlM0N0aCUyMHNjb3BlJTNEJTIyY29sJTIyJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGglMjIlM0UlM0NwcmUlM0VBYW1wJTIwUGxheWVyJTIwSW5zdGFuY2UlMjBNZXRob2QlM0MlMkZwcmUlM0UlM0MlMkZ0aCUzRSUzQ3RoJTIwc2NvcGUlM0QlMjJjb2wlMjIlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUaCUyMiUzRSUzQ3ByZSUzRVBhcmFtZXRlciUzQyUyRnByZSUzRSUzQyUyRnRoJTNFJTNDdGglMjBzY29wZSUzRCUyMmNvbCUyMiUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRoJTIyJTNFJTNDcHJlJTNFUmVzdWx0JTNDJTJGcHJlJTNFJTNDJTJGdGglM0UlM0N0aCUyMHNjb3BlJTNEJTIyY29sJTIyJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGglMjIlM0UlM0NwcmUlM0VTdW1tYXJ5JTNDJTJGcHJlJTNFJTNDJTJGdGglM0UlM0N0aCUyMHNjb3BlJTNEJTIyY29sJTIyJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGglMjIlM0UlM0NwcmUlM0VKc29ucnBjJTIwUmVxdWVzdCUyMGV4YW1wbGUlM0MlMkZwcmUlM0UlM0MlMkZ0aCUzRSUzQ3RoJTIwc2NvcGUlM0QlMjJjb2wlMjIlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUaCUyMiUzRUpzb25ycGMlMjByZXNwb25zZSUyMGV4YW1wbGUlM0MlMkZ0aCUzRSUzQyUyRnRyJTNFJTNDdHIlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFb3JnLnJkay5wbGF5ZXIub3BlblNlc3Npb24lM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NiciUyMCUyRiUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRXNlc3Npb25JZCUzQSUyMHN0cmluZ2FwcE5hbWUlMjAlM0ElMjBzdHJpbmd0cmFjZVVVSUQlMjAlM0ElMjBzdHJpbmclM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VzZXNzaW9uSWQlMjAlM0ElMjBzdHJpbmdzdWNjZXNzJTIwJTNBJTIwYm9vbGVhbiUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRU9wZW4lMjBhJTIwbmV3JTIwcGxheWVyJTIwc2Vzc2lvbiUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRSU3QiUzQ2JyJTIwJTJGJTNFJTNDYnIlMjAlMkYlM0UlQzIlQTAlMjAlMjZxdW90JTNCanNvbnJwYyUyNnF1b3QlM0IlM0ElMjAlMjZxdW90JTNCMi4wJTI2cXVvdCUzQiUyQyUzQ2JyJTIwJTJGJTNFJTNDYnIlMjAlMkYlM0UlQzIlQTAlMjAlMjZxdW90JTNCaWQlMjZxdW90JTNCJTNBJTIwMSUyQyUzQ2JyJTIwJTJGJTNFJTNDYnIlMjAlMkYlM0UlQzIlQTAlMjAlMjZxdW90JTNCbWV0aG9kJTI2cXVvdCUzQiUzQSUyMCUyNnF1b3QlM0JvcmcucmRrLnBsYXllci5vcGVuU2Vzc2lvbiUyNnF1b3QlM0IlMkMlM0NiciUyMCUyRiUzRSUzQ2JyJTIwJTJGJTNFJUMyJUEwJTIwJTI2cXVvdCUzQnBhcmFtcyUyNnF1b3QlM0IlM0ElMjAlN0IlM0NiciUyMCUyRiUzRSUzQ2JyJTIwJTJGJTNFJUMyJUEwJTIwJUMyJUEwJTIwJTI2cXVvdCUzQnNlc3Npb25JZCUyNnF1b3QlM0IlM0ElMjAlMjZxdW90JTNCc2Vzcy1hYmMtMDAxJTI2cXVvdCUzQiUyQyUzQ2JyJTIwJTJGJTNFJTNDYnIlMjAlMkYlM0UlQzIlQTAlMjAlQzIlQTAlMjAlMjZxdW90JTNCYXBwTmFtZSUyNnF1b3QlM0IlM0ElMjAlMjZxdW90JTNCTXlTdHJlYW1pbmdBcHAlMjZxdW90JTNCJTJDJTNDYnIlMjAlMkYlM0UlM0NiciUyMCUyRiUzRSVDMiVBMCUyMCVDMiVBMCUyMCUyNnF1b3QlM0J0cmFjZVVVSUQlMjZxdW90JTNCJTNBJTIwJTI2cXVvdCUzQjU1MGU4NDAwLWUyOWItNDFkNC1hNzE2LTQ0NjY1NTQ0MDAwMCUyNnF1b3QlM0IlM0NiciUyMCUyRiUzRSUzQ2JyJTIwJTJGJTNFJUMyJUEwJTIwJTdEJTNDYnIlMjAlMkYlM0UlM0NiciUyMCUyRiUzRSU3RCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRSU3QiUzQ2JyJTIwJTJGJTNFJUMyJUEwJTIwJTI2cXVvdCUzQmpzb25ycGMlMjZxdW90JTNCJTNBJTIwJTI2cXVvdCUzQjIuMCUyNnF1b3QlM0IlMkMlM0NiciUyMCUyRiUzRSVDMiVBMCUyMCUyNnF1b3QlM0JpZCUyNnF1b3QlM0IlM0ElMjAxJTJDJTNDYnIlMjAlMkYlM0UlQzIlQTAlMjAlMjZxdW90JTNCcmVzdWx0JTI2cXVvdCUzQiUzQSUyMCU3QiUzQ2JyJTIwJTJGJTNFJUMyJUEwJTIwJUMyJUEwJTIwJTI2cXVvdCUzQnNlc3Npb25JZCUyNnF1b3QlM0IlM0ElMjAlMjZxdW90JTNCc2Vzcy1hYmMtMDAxJTI2cXVvdCUzQiUyQyUzQ2JyJTIwJTJGJTNFJUMyJUEwJTIwJUMyJUEwJTIwJTI2cXVvdCUzQnN1Y2Nlc3MlMjZxdW90JTNCJTNBJTIwdHJ1ZSUzQ2JyJTIwJTJGJTNFJUMyJUEwJTIwJTdEJTNDYnIlMjAlMkYlM0UlN0QlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQyUyRnRyJTNFJTNDdHIlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFb3JnLnJkay5wbGF5ZXIuY29uZmlndXJlU2Vzc2lvbiUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ2JyJTIwJTJGJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFc2Vzc2lvbklkJTIwJTNBJTIwc3RyaW5nY29uZmlnJTIwJTNBJTIwb2JqZWN0JTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFc2Vzc2lvbklkJTIwJTNBJTIwc3RyaW5nc3VjY2VzcyUyMCUzQSUyMGJvb2xlYW4lM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VBcHBseSUyMGNvbmZpZ3VyYXRpb24lMjB0byUyMGFuJTIwb3BlbiUyMHNlc3Npb24lM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0UlN0IlM0NiciUyMCUyRiUzRSUzQ2JyJTIwJTJGJTNFJUMyJUEwJTIwJTI2cXVvdCUzQmpzb25ycGMlMjZxdW90JTNCJTNBJTIwJTI2cXVvdCUzQjIuMCUyNnF1b3QlM0IlMkMlM0NiciUyMCUyRiUzRSUzQ2JyJTIwJTJGJTNFJUMyJUEwJTIwJTI2cXVvdCUzQmlkJTI2cXVvdCUzQiUzQSUyMDIlMkMlM0NiciUyMCUyRiUzRSUzQ2JyJTIwJTJGJTNFJUMyJUEwJTIwJTI2cXVvdCUzQm1ldGhvZCUyNnF1b3QlM0IlM0ElMjAlMjZxdW90JTNCb3JnLnJkay5wbGF5ZXIuY29uZmlndXJlU2Vzc2lvbiUyNnF1b3QlM0IlMkMlM0NiciUyMCUyRiUzRSUzQ2JyJTIwJTJGJTNFJUMyJUEwJTIwJTI2cXVvdCUzQnBhcmFtcyUyNnF1b3QlM0IlM0ElMjAlN0IlM0NiciUyMCUyRiUzRSUzQ2JyJTIwJTJGJTNFJUMyJUEwJTIwJUMyJUEwJTIwJTI2cXVvdCUzQnNlc3Npb25JZCUyNnF1b3QlM0IlM0ElMjAlMjZxdW90JTNCc2Vzcy1hYmMtMDAxJTI2cXVvdCUzQiUyQyUzQ2JyJTIwJTJGJTNFJTNDYnIlMjAlMkYlM0UlQzIlQTAlMjAlQzIlQTAlMjAlMjZxdW90JTNCY29uZmlnJTI2cXVvdCUzQiUzQSUyMCU3QiUzQ2JyJTIwJTJGJTNFJTNDYnIlMjAlMkYlM0UlQzIlQTAlMjAlQzIlQTAlMjAlQzIlQTAlMjAlMjZxdW90JTNCbmV0d29ya1RpbWVvdXQlMjZxdW90JTNCJTNBJTIwMTAlMkMlM0NiciUyMCUyRiUzRSUzQ2JyJTIwJTJGJTNFJUMyJUEwJTIwJUMyJUEwJTIwJUMyJUEwJTIwJTI2cXVvdCUzQmRvd25sb2FkQnVmZmVyJTI2cXVvdCUzQiUzQSUyMDMwJTJDJTNDYnIlMjAlMkYlM0UlM0NiciUyMCUyRiUzRSVDMiVBMCUyMCVDMiVBMCUyMCVDMiVBMCUyMCUyNnF1b3QlM0JwcmVmZXJyZWREUk0lMjZxdW90JTNCJTNBJTIwJTI2cXVvdCUzQndpZGV2aW5lJTI2cXVvdCUzQiUyQyUzQ2JyJTIwJTJGJTNFJTNDYnIlMjAlMkYlM0UlQzIlQTAlMjAlQzIlQTAlMjAlQzIlQTAlMjAlMjZxdW90JTNCaW5pdGlhbEJpdHJhdGUlMjZxdW90JTNCJTNBJTIwMjAwMDAwMCUzQ2JyJTIwJTJGJTNFJTNDYnIlMjAlMkYlM0UlQzIlQTAlMjAlQzIlQTAlMjAlN0QlM0NiciUyMCUyRiUzRSUzQ2JyJTIwJTJGJTNFJUMyJUEwJTIwJTdEJTNDYnIlMjAlMkYlM0UlM0NiciUyMCUyRiUzRSU3RCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRSU3QiUzQ2JyJTIwJTJGJTNFJUMyJUEwJTIwJTI2cXVvdCUzQmpzb25ycGMlMjZxdW90JTNCJTNBJTIwJTI2cXVvdCUzQjIuMCUyNnF1b3QlM0IlMkMlM0NiciUyMCUyRiUzRSVDMiVBMCUyMCUyNnF1b3QlM0JpZCUyNnF1b3QlM0IlM0ElMjAyJTJDJTNDYnIlMjAlMkYlM0UlQzIlQTAlMjAlMjZxdW90JTNCcmVzdWx0JTI2cXVvdCUzQiUzQSUyMCU3QiUzQ2JyJTIwJTJGJTNFJUMyJUEwJTIwJUMyJUEwJTIwJTI2cXVvdCUzQnNlc3Npb25JZCUyNnF1b3QlM0IlM0ElMjAlMjZxdW90JTNCc2Vzcy1hYmMtMDAxJTI2cXVvdCUzQiUyQyUzQ2JyJTIwJTJGJTNFJUMyJUEwJTIwJUMyJUEwJTIwJTI2cXVvdCUzQnN1Y2Nlc3MlMjZxdW90JTNCJTNBJTIwdHJ1ZSUzQ2JyJTIwJTJGJTNFJUMyJUEwJTIwJTdEJTNDYnIlMjAlMkYlM0UlN0QlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQyUyRnRyJTNFJTNDdHIlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFb3JnLmRrLnBsYXllci5jbG9zZVNlc3Npb24lM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NiciUyMCUyRiUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRXNlc3Npb25JZCUyMCUzQSUyMHN0cmluZ3N1Y2Nlc3MlMjAlM0ElMjBib29sZWFuJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFc2Vzc2lvbklkJTNBJTIwU3RyaW5nc3VjY2VzcyUyMCUzQSUyMGJvb2xlYW4lM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VDbG9zZSUyMGFuZCUyMHJlbGVhc2UlMjBhJTIwcGxheWVyJTIwc2Vzc2lvbiUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRSU3QiUzQ2JyJTIwJTJGJTNFJTNDYnIlMjAlMkYlM0UlQzIlQTAlMjAlMjZxdW90JTNCanNvbnJwYyUyNnF1b3QlM0IlM0ElMjAlMjZxdW90JTNCMi4wJTI2cXVvdCUzQiUyQyUzQ2JyJTIwJTJGJTNFJTNDYnIlMjAlMkYlM0UlQzIlQTAlMjAlMjZxdW90JTNCaWQlMjZxdW90JTNCJTNBJTIwMyUyQyUzQ2JyJTIwJTJGJTNFJTNDYnIlMjAlMkYlM0UlQzIlQTAlMjAlMjZxdW90JTNCbWV0aG9kJTI2cXVvdCUzQiUzQSUyMCUyNnF1b3QlM0JvcmcucmRrLnBsYXllci5jbG9zZVNlc3Npb24lMjZxdW90JTNCJTJDJTNDYnIlMjAlMkYlM0UlM0NiciUyMCUyRiUzRSVDMiVBMCUyMCUyNnF1b3QlM0JwYXJhbXMlMjZxdW90JTNCJTNBJTIwJTdCJTNDYnIlMjAlMkYlM0UlM0NiciUyMCUyRiUzRSVDMiVBMCUyMCVDMiVBMCUyMCUyNnF1b3QlM0JzZXNzaW9uSWQlMjZxdW90JTNCJTNBJTIwJTI2cXVvdCUzQnNlc3MtYWJjLTAwMSUyNnF1b3QlM0IlM0NiciUyMCUyRiUzRSUzQ2JyJTIwJTJGJTNFJUMyJUEwJTIwJTdEJTNDYnIlMjAlMkYlM0UlM0NiciUyMCUyRiUzRSU3RCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRSU3QiUzQ2JyJTIwJTJGJTNFJUMyJUEwJTIwJTI2cXVvdCUzQmpzb25ycGMlMjZxdW90JTNCJTNBJTIwJTI2cXVvdCUzQjIuMCUyNnF1b3QlM0IlMkMlM0NiciUyMCUyRiUzRSVDMiVBMCUyMCUyNnF1b3QlM0JpZCUyNnF1b3QlM0IlM0ElMjAzJTJDJTNDYnIlMjAlMkYlM0UlQzIlQTAlMjAlMjZxdW90JTNCcmVzdWx0JTI2cXVvdCUzQiUzQSUyMCU3QiUzQ2JyJTIwJTJGJTNFJUMyJUEwJTIwJUMyJUEwJTIwJTI2cXVvdCUzQnNlc3Npb25JZCUyNnF1b3QlM0IlM0ElMjAlMjZxdW90JTNCc2Vzcy1hYmMtMDAxJTI2cXVvdCUzQiUyQyUzQ2JyJTIwJTJGJTNFJUMyJUEwJTIwJUMyJUEwJTIwJTI2cXVvdCUzQnN1Y2Nlc3MlMjZxdW90JTNCJTNBJTIwdHJ1ZSUzQ2JyJTIwJTJGJTNFJUMyJUEwJTIwJTdEJTNDYnIlMjAlMkYlM0UlN0QlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQyUyRnRyJTNFJTNDdHIlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFb3JnLnJkay5wbGF5ZXIudHVuZSUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRVR1bmUlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0V1cmwlMjAlM0ElMjBTdHJpbmdhdXRvUGxheSUyMCUzQSUyMGJvb2xlYW5jb250ZW50VHlwZSUyMCUzQSUyMFN0cmluZ3RyYWNlVVVJRCUyMCUzQSUyMFN0cmluZyUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRXN1Y2Nlc3MlMjAlM0ElMjBib29sZWFuJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFSW5zdHJ1Y3RzJTIwdGhlJTIwQUFNUCVDMiVBMCUyMHRvJTIwdHVuZSUyMHRvJTIwdGhlJTIwZ2l2ZW4lMjBVUkwuJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFJTdCJTI2cXVvdCUzQmpzb25ycGMlMjZxdW90JTNCJTNBJTI2cXVvdCUzQjIuMCUyNnF1b3QlM0IlMkMlMjZxdW90JTNCaWQlMjZxdW90JTNCJTNBMSUyQyUyNnF1b3QlM0JtZXRob2QlMjZxdW90JTNCJTNBJTI2cXVvdCUzQm9yZy5yZGsucGxheWVyLnR1bmUlMjZxdW90JTNCJTJDJTI2cXVvdCUzQnBhcmFtcyUyNnF1b3QlM0IlM0ElN0IlMjZxdW90JTNCdXJsJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0IlM0NhJTIwaHJlZiUzRCUyMmh0dHBzJTNBJTJGJTJGZGFzaC5ha2FtYWl6ZWQubmV0JTJGYWthbWFpJTJGYmJiXzMwZnBzJTJGYmJiXzMwZnBzLm1wZCUyMiUzRWh0dHBzJTNBJTJGJTJGZGFzaC5ha2FtYWl6ZWQubmV0JTJGYWthbWFpJTJGYmJiXzMwZnBzJTJGYmJiXzMwZnBzLm1wZCUzQyUyRmElM0UlMjZxdW90JTNCJTJDJTI2cXVvdCUzQmF1dG9QbGF5JTI2cXVvdCUzQiUzQXRydWUlMkMlMjZxdW90JTNCY29udGVudFR5cGUlMjZxdW90JTNCJTNBJTI2cXVvdCUzQlZPRCUyNnF1b3QlM0IlN0QlN0QlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwJTNFJTNDc3BhbiUyMHN0eWxlJTNEJTIyY29sb3IlM0F2YXIoLS1kcy10ZXh0JTJDJTIzNzA3MDcwKSUzQiUyMiUzRSU3QiUyNnF1b3QlM0Jqc29ucnBjJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0IyLjAlMjZxdW90JTNCJTJDJTI2cXVvdCUzQmlkJTI2cXVvdCUzQiUzQTQlMkMlMjZxdW90JTNCcmVzdWx0JTI2cXVvdCUzQiUzQSU3QiUyNnF1b3QlM0JzdWNjZXNzJTI2cXVvdCUzQiUzQXRydWUlN0QlN0QlM0MlMkZzcGFuJTNFJTNDJTJGcCUzRSUzQyUyRnRkJTNFJTNDJTJGdHIlM0UlM0N0ciUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VvcmcucmRrLnBsYXllci5zdG9wJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFU3RvcCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRU5vbmUlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VzdWNjZXNzJTIwJTNBYm9vbGVhbiUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRVN0b3BzJTIwdGhlJTIwY3VycmVudCUyMHBsYXliYWNrJTIwYW5kJTIwcmVsZWFzZXMlMjBkZWNvZGVyJTIwcmVzb3VyY2VzLiUyMFRoZSUyMHBsYXllciUyMHJldHVybnMlMjB0byUyMHRoZSUyMGlkbGUlMjBzdGF0ZS4lM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0UlN0IlMjZxdW90JTNCanNvbnJwYyUyNnF1b3QlM0IlM0ElMjZxdW90JTNCMi4wJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0JpZCUyNnF1b3QlM0IlM0ExJTJDJTI2cXVvdCUzQm1ldGhvZCUyNnF1b3QlM0IlM0ElMjZxdW90JTNCb3JnLnJkay5wbGF5ZXIuc3RvcCUyNnF1b3QlM0IlN0QlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwJTNFJTNDc3BhbiUyMHN0eWxlJTNEJTIyY29sb3IlM0F2YXIoLS1kcy10ZXh0JTJDJTIzNzA3MDcwKSUzQiUyMiUzRSU3QiUyNnF1b3QlM0Jqc29ucnBjJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0IyLjAlMjZxdW90JTNCJTJDJTI2cXVvdCUzQmlkJTI2cXVvdCUzQiUzQTUlMkMlMjZxdW90JTNCcmVzdWx0JTI2cXVvdCUzQiUzQSU3QiUyNnF1b3QlM0JzdWNjZXNzJTI2cXVvdCUzQiUzQXRydWUlN0QlN0QlM0MlMkZzcGFuJTNFJTNDJTJGcCUzRSUzQyUyRnRkJTNFJTNDJTJGdHIlM0UlM0N0ciUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VvcmcucmRrLnBsYXllci5zZWVrJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFU2VlayUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRXBvc2l0aW9uJTIwJTNBJTIwbnVtYmVya2VlcFBhdXNlZCUyMCUzQSUyMGJvb2xlYW4lM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VzdWNjZXNzJTIwJTNBJUMyJUEwYm9vbGVhbiUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRVNlZWtzJTIwdG8lMjBhbiUyMGFic29sdXRlJTIwcG9zaXRpb24lMjBpbiUyMHRoZSUyMHN0cmVhbSUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRSU3QiUyNnF1b3QlM0Jqc29ucnBjJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0IyLjAlMjZxdW90JTNCJTJDJTI2cXVvdCUzQmlkJTI2cXVvdCUzQiUzQTElMkMlMjZxdW90JTNCbWV0aG9kJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0JvcmcucmRrLnBsYXllci5zZWVrJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0JwYXJhbXMlMjZxdW90JTNCJTNBJTdCJTI2cXVvdCUzQnBvc2l0aW9uJTI2cXVvdCUzQiUzQTEyMC4wJTJDJTI2cXVvdCUzQmtlZXBQYXVzZWQlMjZxdW90JTNCJTNBZmFsc2UlN0QlN0QlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwJTNFJTNDc3BhbiUyMHN0eWxlJTNEJTIyY29sb3IlM0F2YXIoLS1kcy10ZXh0JTJDJTIzNzA3MDcwKSUzQiUyMiUzRSU3QiUyNnF1b3QlM0Jqc29ucnBjJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0IyLjAlMjZxdW90JTNCJTJDJTI2cXVvdCUzQmlkJTI2cXVvdCUzQiUzQTUlMkMlMjZxdW90JTNCcmVzdWx0JTI2cXVvdCUzQiUzQSU3QiUyNnF1b3QlM0JzdWNjZXNzJTI2cXVvdCUzQiUzQXRydWUlN0QlN0QlM0MlMkZzcGFuJTNFJTNDJTJGcCUzRSUzQyUyRnRkJTNFJTNDJTJGdHIlM0UlM0N0ciUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VvcmcucmRrLnBsYXllci5zZWVrVG9MaXZlJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFU2Vla1RvTGl2ZSUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRWtlZXBQYXVzZWQlMjAlM0ElMjBib29sZWFuJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFc3VjY2VzcyUyMCUzQSVDMiVBMGJvb2xlYW4lM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VTZWVrJTIwdG8lMjB0aGUlMjBsaXZlJTIwZWRnZSUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRSU3QiUyNnF1b3QlM0Jqc29ucnBjJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0IyLjAlMjZxdW90JTNCJTJDJTI2cXVvdCUzQmlkJTI2cXVvdCUzQiUzQTElMkMlMjZxdW90JTNCbWV0aG9kJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0JvcmcucmRrLnBsYXllci5zZWVrVG9MaXZlJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0JwYXJhbXMlMjZxdW90JTNCJTNBJTdCJTI2cXVvdCUzQmtlZXBQYXVzZWQlMjZxdW90JTNCJTNBZmFsc2UlN0QlN0QlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0UlN0IlMjZxdW90JTNCanNvbnJwYyUyNnF1b3QlM0IlM0ElMjZxdW90JTNCMi4wJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0JpZCUyNnF1b3QlM0IlM0ExJTJDJTI2cXVvdCUzQnJlc3VsdCUyNnF1b3QlM0IlM0ElN0IlMjZxdW90JTNCc3VjY2VzcyUyNnF1b3QlM0IlM0F0cnVlJTdEJTdEJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0MlMkZ0ciUzRSUzQ3RyJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRW9yZy5yZGsucGxheWVyLnNldFJhdGUlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VTZXRSYXRlJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFcmF0ZSUyMCUzQSUyMG51bWJlciUyMG92ZXJzaG9vdENvcnJlY3Rpb24lMjAlM0ElMjBpbnRlZ2VyJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFc3VjY2VzcyUzQSVDMiVBMGJvb2xlYW4lM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VTZXQlMjBwbGF5YmFjayUyMHJhdGUlMjAlMkYlMjB0cmljay1wbGF5JTIwc3BlZWQlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0UlN0IlMjZxdW90JTNCanNvbnJwYyUyNnF1b3QlM0IlM0ElMjZxdW90JTNCMi4wJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0JpZCUyNnF1b3QlM0IlM0ExJTJDJTI2cXVvdCUzQm1ldGhvZCUyNnF1b3QlM0IlM0ElMjZxdW90JTNCb3JnLnJkay5wbGF5ZXIuc2V0UmF0ZSUyNnF1b3QlM0IlMkMlMjZxdW90JTNCcGFyYW1zJTI2cXVvdCUzQiUzQSU3QiUyNnF1b3QlM0JyYXRlJTI2cXVvdCUzQiUzQTIlMkMlMjZxdW90JTNCb3ZlcnNob290Q29ycmVjdGlvbiUyNnF1b3QlM0IlM0EwJTdEJTdEJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFJTdCJTI2cXVvdCUzQmpzb25ycGMlMjZxdW90JTNCJTNBJTI2cXVvdCUzQjIuMCUyNnF1b3QlM0IlMkMlMjZxdW90JTNCaWQlMjZxdW90JTNCJTNBMSUyQyUyNnF1b3QlM0JyZXN1bHQlMjZxdW90JTNCJTNBJTdCJTI2cXVvdCUzQnN1Y2Nlc3MlMjZxdW90JTNCJTNBdHJ1ZSU3RCU3RCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDJTJGdHIlM0UlM0N0ciUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VvcmcucmRrLnBsYXllci5zZXRQbGF5YmFja1NwZWVkJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFU2V0UGxheWJhY2tTcGVlZCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRXNwZWVkJTIwJTNBJTIwbnVtYmVyJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFc3VjY2VzcyUzQSVDMiVBMGJvb2xlYW4lM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VTZXRzJTIwdGhlJTIwcGxheWJhY2slMjBzcGVlZCUyMGRpcmVjdGx5JTIwJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFJTdCJTI2cXVvdCUzQmpzb25ycGMlMjZxdW90JTNCJTNBJTI2cXVvdCUzQjIuMCUyNnF1b3QlM0IlMkMlMjZxdW90JTNCaWQlMjZxdW90JTNCJTNBMSUyQyUyNnF1b3QlM0JtZXRob2QlMjZxdW90JTNCJTNBJTI2cXVvdCUzQm9yZy5yZGsucGxheWVyLnNldFBsYXliYWNrU3BlZWQlMjZxdW90JTNCJTJDJTI2cXVvdCUzQnBhcmFtcyUyNnF1b3QlM0IlM0ElN0IlMjZxdW90JTNCc3BlZWQlMjZxdW90JTNCJTNBMC41JTdEJTdEJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFJTdCJTI2cXVvdCUzQmpzb25ycGMlMjZxdW90JTNCJTNBJTI2cXVvdCUzQjIuMCUyNnF1b3QlM0IlMkMlMjZxdW90JTNCaWQlMjZxdW90JTNCJTNBMSUyQyUyNnF1b3QlM0JyZXN1bHQlMjZxdW90JTNCJTNBJTdCJTI2cXVvdCUzQnN1Y2Nlc3MlMjZxdW90JTNCJTNBdHJ1ZSU3RCU3RCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDJTJGdHIlM0UlM0N0ciUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VvcmcucmRrLnBsYXllci5wYXVzZUF0JTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFUGF1c2VBdCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRXBvc2l0aW9uJTIwJTNBJTIwbnVtYmVyJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFc3VjY2VzcyUyMCUzQSVDMiVBMGJvb2xlYW4lM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VTY2hlZHVsZSUyMGElMjBwYXVzZSUyMGF0JTIwYSUyMGZ1dHVyZSUyMHBvc2l0aW9uJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFJTdCJTI2cXVvdCUzQmpzb25ycGMlMjZxdW90JTNCJTNBJTI2cXVvdCUzQjIuMCUyNnF1b3QlM0IlMkMlMjZxdW90JTNCaWQlMjZxdW90JTNCJTNBMSUyQyUyNnF1b3QlM0JtZXRob2QlMjZxdW90JTNCJTNBJTI2cXVvdCUzQm9yZy5yZGsucGxheWVyLnBhdXNlQXQlMjZxdW90JTNCJTJDJTI2cXVvdCUzQnBhcmFtcyUyNnF1b3QlM0IlM0ElN0IlMjZxdW90JTNCcG9zaXRpb24lMjZxdW90JTNCJTNBMzAwLjAlN0QlN0QlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0UlN0IlMjZxdW90JTNCanNvbnJwYyUyNnF1b3QlM0IlM0ElMjZxdW90JTNCMi4wJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0JpZCUyNnF1b3QlM0IlM0ExJTJDJTI2cXVvdCUzQnJlc3VsdCUyNnF1b3QlM0IlM0ElN0IlMjZxdW90JTNCc3VjY2VzcyUyNnF1b3QlM0IlM0F0cnVlJTdEJTdEJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0MlMkZ0ciUzRSUzQ3RyJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRW9yZy5yZGsucGxheWVyLnNldFJhdGVBbmRTZWVrJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFU2V0UmF0ZUFuZFNlZWslM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VyYXRlJTIwJTNBJTIwaW50ZWdlciUyMHBvc2l0aW9uJTIwJTNBJTIwbnVtYmVyJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFc3VjY2VzcyUzQWJvb2xlYW4lM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VBdG9taWNhbGx5JTIwc2V0JTIwcmF0ZSUyMGFuZCUyMHNlZWslM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0UlN0IlMjZxdW90JTNCanNvbnJwYyUyNnF1b3QlM0IlM0ElMjZxdW90JTNCMi4wJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0JpZCUyNnF1b3QlM0IlM0ExJTJDJTI2cXVvdCUzQm1ldGhvZCUyNnF1b3QlM0IlM0ElMjZxdW90JTNCb3JnLnJkay5wbGF5ZXIuc2V0UmF0ZUFuZFNlZWslMjZxdW90JTNCJTJDJTI2cXVvdCUzQnBhcmFtcyUyNnF1b3QlM0IlM0ElN0IlMjZxdW90JTNCcmF0ZSUyNnF1b3QlM0IlM0ExJTJDJTI2cXVvdCUzQnBvc2l0aW9uJTI2cXVvdCUzQiUzQTYwLjAlN0QlN0QlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0UlN0IlMjZxdW90JTNCanNvbnJwYyUyNnF1b3QlM0IlM0ElMjZxdW90JTNCMi4wJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0JpZCUyNnF1b3QlM0IlM0ExJTJDJTI2cXVvdCUzQnJlc3VsdCUyNnF1b3QlM0IlM0ElN0IlMjZxdW90JTNCc3VjY2VzcyUyNnF1b3QlM0IlM0F0cnVlJTdEJTdEJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0MlMkZ0ciUzRSUzQ3RyJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRW9yZy5yZGsucGxheWVyLmdldFN0YXRlJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFR2V0U3RhdGUlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VOb25lJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFc3RhdGUlMjAlM0ElQzIlQTBQbGF5ZXJTdGF0ZSUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRUdldCUyMGN1cnJlbnQlMjBwbGF5ZXIlMjBzdGF0ZSUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRSU3QiUyNnF1b3QlM0Jqc29ucnBjJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0IyLjAlMjZxdW90JTNCJTJDJTI2cXVvdCUzQmlkJTI2cXVvdCUzQiUzQTElMkMlMjZxdW90JTNCbWV0aG9kJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0JvcmcucmRrLnBsYXllci5nZXRTdGF0ZSUyNnF1b3QlM0IlN0QlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0UlN0IlMjZxdW90JTNCanNvbnJwYyUyNnF1b3QlM0IlM0ElMjZxdW90JTNCMi4wJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0JpZCUyNnF1b3QlM0IlM0ExJTJDJTI2cXVvdCUzQnJlc3VsdCUyNnF1b3QlM0IlM0ElN0IlMjZxdW90JTNCc3RhdGUlMjZxdW90JTNCJTNBJTI2cXVvdCUzQnBsYXlpbmclMjZxdW90JTNCJTdEJTdEJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0MlMkZ0ciUzRSUzQ3RyJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRW9yZy5yZGsucGxheWVyLmdldFBsYXliYWNrUG9zaXRpb24lM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VHZXRQbGF5YmFja1Bvc2l0aW9uJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFTm9uZSUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRXBvc2l0aW9uJTIwJTNBJUMyJUEwTnVtYmVyJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFR2V0JTIwY3VycmVudCUyMHBsYXliYWNrJTIwcG9zaXRpb24lM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0UlN0IlMjZxdW90JTNCanNvbnJwYyUyNnF1b3QlM0IlM0ElMjZxdW90JTNCMi4wJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0JpZCUyNnF1b3QlM0IlM0ExJTJDJTI2cXVvdCUzQm1ldGhvZCUyNnF1b3QlM0IlM0ElMjZxdW90JTNCb3JnLnJkay5wbGF5ZXIuZ2V0UGxheWJhY2tQb3NpdGlvbiUyNnF1b3QlM0IlN0QlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0UlN0IlMjZxdW90JTNCanNvbnJwYyUyNnF1b3QlM0IlM0ElMjZxdW90JTNCMi4wJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0JpZCUyNnF1b3QlM0IlM0ExJTJDJTI2cXVvdCUzQnJlc3VsdCUyNnF1b3QlM0IlM0ElN0IlMjZxdW90JTNCcG9zaXRpb24lMjZxdW90JTNCJTNBMTIwLjUlN0QlN0QlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQyUyRnRyJTNFJTNDdHIlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFb3JnLnJkay5wbGF5ZXIuZ2V0UGxheWJhY2tEdXJhdGlvbiUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRUdldFBsYXliYWNrRHVyYXRpb24lM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VOb25lJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFZHVyYXRpb24lMjAlM0ElQzIlQTBOdW1iZXIlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VHZXQlMjB0b3RhbCUyMHN0cmVhbSUyMGR1cmF0aW9uJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFJTdCJTI2cXVvdCUzQmpzb25ycGMlMjZxdW90JTNCJTNBJTI2cXVvdCUzQjIuMCUyNnF1b3QlM0IlMkMlMjZxdW90JTNCaWQlMjZxdW90JTNCJTNBMSUyQyUyNnF1b3QlM0JtZXRob2QlMjZxdW90JTNCJTNBJTI2cXVvdCUzQm9yZy5yZGsucGxheWVyLmdldFBsYXliYWNrRHVyYXRpb24lMjZxdW90JTNCJTdEJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFJTdCJTI2cXVvdCUzQmpzb25ycGMlMjZxdW90JTNCJTNBJTI2cXVvdCUzQjIuMCUyNnF1b3QlM0IlMkMlMjZxdW90JTNCaWQlMjZxdW90JTNCJTNBMSUyQyUyNnF1b3QlM0JyZXN1bHQlMjZxdW90JTNCJTNBJTdCJTI2cXVvdCUzQmR1cmF0aW9uJTI2cXVvdCUzQiUzQTM2MDAuMCU3RCU3RCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDJTJGdHIlM0UlM0N0ciUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VvcmcucmRrLnBsYXllci5nZXRQbGF5YmFja1JhdGUlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VHZXRQbGF5YmFja1JhdGUlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VOb25lJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFcmF0ZSUyMCVDMiVBMCUzQSVDMiVBME51bWJlciUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRUdldCUyMGN1cnJlbnQlMjBwbGF5YmFjayUyMHJhdGUlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0UlN0IlMjZxdW90JTNCanNvbnJwYyUyNnF1b3QlM0IlM0ElMjZxdW90JTNCMi4wJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0JpZCUyNnF1b3QlM0IlM0ExJTJDJTI2cXVvdCUzQm1ldGhvZCUyNnF1b3QlM0IlM0ElMjZxdW90JTNCb3JnLnJkay5wbGF5ZXIuZ2V0UGxheWJhY2tSYXRlJTI2cXVvdCUzQiU3RCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRSU3QiUyNnF1b3QlM0Jqc29ucnBjJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0IyLjAlMjZxdW90JTNCJTJDJTI2cXVvdCUzQmlkJTI2cXVvdCUzQiUzQTElMkMlMjZxdW90JTNCcmVzdWx0JTI2cXVvdCUzQiUzQSU3QiUyNnF1b3QlM0JyYXRlJTI2cXVvdCUzQiUzQTEuMCU3RCU3RCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDJTJGdHIlM0UlM0N0ciUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VvcmcucmRrLnBsYXllci5pc0xpdmUlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VJc0xpdmUlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VOb25lJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFaXNMaXZlJTIwJTNBQm9vbGVhbiUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRUNoZWNrJTIwaWYlMjBzdHJlYW0lMjBpcyUyMGxpdmUlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0UlN0IlMjZxdW90JTNCanNvbnJwYyUyNnF1b3QlM0IlM0ElMjZxdW90JTNCMi4wJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0JpZCUyNnF1b3QlM0IlM0ExJTJDJTI2cXVvdCUzQm1ldGhvZCUyNnF1b3QlM0IlM0ElMjZxdW90JTNCb3JnLnJkay5wbGF5ZXIuaXNMaXZlJTI2cXVvdCUzQiU3RCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRSU3QiUyNnF1b3QlM0Jqc29ucnBjJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0IyLjAlMjZxdW90JTNCJTJDJTI2cXVvdCUzQmlkJTI2cXVvdCUzQiUzQTElMkMlMjZxdW90JTNCcmVzdWx0JTI2cXVvdCUzQiUzQSU3QiUyNnF1b3QlM0Jpc0xpdmUlMjZxdW90JTNCJTNBZmFsc2UlN0QlN0QlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQyUyRnRyJTNFJTNDdHIlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFb3JnLnJkay5wbGF5ZXIuc2V0VmlkZW9NdXRlJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFU2V0VmlkZW9NdXRlJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFbXV0ZWQlMjAlM0ElMjBib29sZWFuJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFc3VjY2VzcyUyMCUzQSVDMiVBMCUzQ2JyJTIwJTJGJTNFJTNDYnIlMjAlMkYlM0VCb29sZWFuJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFTXV0ZSUyMG9yJTIwdW5tdXRlJTIwdGhlJTIwdmlkZW8lMjBwbGFuZSUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRSU3QiUyNnF1b3QlM0Jqc29ucnBjJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0IyLjAlMjZxdW90JTNCJTJDJTI2cXVvdCUzQmlkJTI2cXVvdCUzQiUzQTElMkMlMjZxdW90JTNCbWV0aG9kJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0JvcmcucmRrLnBsYXllci5zZXRWaWRlb011dGUlMjZxdW90JTNCJTJDJTI2cXVvdCUzQnBhcmFtcyUyNnF1b3QlM0IlM0ElN0IlMjZxdW90JTNCbXV0ZWQlMjZxdW90JTNCJTNBdHJ1ZSU3RCU3RCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRSU3QiUyNnF1b3QlM0Jqc29ucnBjJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0IyLjAlMjZxdW90JTNCJTJDJTI2cXVvdCUzQmlkJTI2cXVvdCUzQiUzQTElMkMlMjZxdW90JTNCcmVzdWx0JTI2cXVvdCUzQiUzQSU3QiUyNnF1b3QlM0JzdWNjZXNzJTI2cXVvdCUzQiUzQXRydWUlN0QlN0QlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQyUyRnRyJTNFJTNDdHIlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFb3JnLnJkay5wbGF5ZXIuZ2V0VmlkZW9NdXRlJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFR2V0VmlkZW9NdXRlJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFTm9uZSUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRW11dGVkJTIwJTNBJUMyJUEwJTNDYnIlMjAlMkYlM0UlM0NiciUyMCUyRiUzRUJvb2xlYW4lM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VHZXQlMjB2aWRlbyUyMG11dGUlMjBzdGF0ZSUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRSU3QiUyNnF1b3QlM0Jqc29ucnBjJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0IyLjAlMjZxdW90JTNCJTJDJTI2cXVvdCUzQmlkJTI2cXVvdCUzQiUzQTElMkMlMjZxdW90JTNCbWV0aG9kJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0JvcmcucmRrLnBsYXllci5nZXRWaWRlb011dGUlMjZxdW90JTNCJTdEJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFJTdCJTI2cXVvdCUzQmpzb25ycGMlMjZxdW90JTNCJTNBJTI2cXVvdCUzQjIuMCUyNnF1b3QlM0IlMkMlMjZxdW90JTNCaWQlMjZxdW90JTNCJTNBMSUyQyUyNnF1b3QlM0JyZXN1bHQlMjZxdW90JTNCJTNBJTdCJTI2cXVvdCUzQm11dGVkJTI2cXVvdCUzQiUzQWZhbHNlJTdEJTdEJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0MlMkZ0ciUzRSUzQ3RyJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRW9yZy5yZGsucGxheWVyLnNldEF1ZGlvVm9sdW1lJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFU2V0QXVkaW9Wb2x1bWUlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0V2b2x1bWUlMjAlM0ElMjBpbnRlZ2VyJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFc3VjY2VzcyUyMCUzQSVDMiVBMCUzQ2JyJTIwJTJGJTNFJTNDYnIlMjAlMkYlM0VCb29sZWFuJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFU2V0JTIwYXVkaW8lMjB2b2x1bWUlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0UlN0IlMjZxdW90JTNCanNvbnJwYyUyNnF1b3QlM0IlM0ElMjZxdW90JTNCMi4wJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0JpZCUyNnF1b3QlM0IlM0ExJTJDJTI2cXVvdCUzQm1ldGhvZCUyNnF1b3QlM0IlM0ElMjZxdW90JTNCb3JnLnJkay5wbGF5ZXIuc2V0QXVkaW9Wb2x1bWUlMjZxdW90JTNCJTJDJTI2cXVvdCUzQnBhcmFtcyUyNnF1b3QlM0IlM0ElN0IlMjZxdW90JTNCdm9sdW1lJTI2cXVvdCUzQiUzQTgwJTdEJTdEJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFJTdCJTI2cXVvdCUzQmpzb25ycGMlMjZxdW90JTNCJTNBJTI2cXVvdCUzQjIuMCUyNnF1b3QlM0IlMkMlMjZxdW90JTNCaWQlMjZxdW90JTNCJTNBMSUyQyUyNnF1b3QlM0JyZXN1bHQlMjZxdW90JTNCJTNBJTdCJTI2cXVvdCUzQnN1Y2Nlc3MlMjZxdW90JTNCJTNBdHJ1ZSU3RCU3RCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDJTJGdHIlM0UlM0N0ciUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VvcmcucmRrLnBsYXllci5nZXRBdWRpb1ZvbHVtZSUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRUdldEF1ZGlvVm9sdW1lJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFTm9uZSUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRXZvbHVtZSUyMCUzQSVDMiVBMCUzQ2JyJTIwJTJGJTNFJTNDYnIlMjAlMkYlM0VJbnRlZ2VyJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFR2V0JTIwYXVkaW8lMjB2b2x1bWUlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0UlN0IlMjZxdW90JTNCanNvbnJwYyUyNnF1b3QlM0IlM0ElMjZxdW90JTNCMi4wJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0JpZCUyNnF1b3QlM0IlM0ExJTJDJTI2cXVvdCUzQm1ldGhvZCUyNnF1b3QlM0IlM0ElMjZxdW90JTNCb3JnLnJkay5wbGF5ZXIuZ2V0QXVkaW9Wb2x1bWUlMjZxdW90JTNCJTdEJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFJTdCJTI2cXVvdCUzQmpzb25ycGMlMjZxdW90JTNCJTNBJTI2cXVvdCUzQjIuMCUyNnF1b3QlM0IlMkMlMjZxdW90JTNCaWQlMjZxdW90JTNCJTNBMSUyQyUyNnF1b3QlM0JyZXN1bHQlMjZxdW90JTNCJTNBJTdCJTI2cXVvdCUzQnZvbHVtZSUyNnF1b3QlM0IlM0E4MCU3RCU3RCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDJTJGdHIlM0UlM0N0ciUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VvcmcucmRrLnBsYXllci5nZXRBdWRpb0xhbmd1YWdlJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFR2V0QXVkaW9MYW5ndWFnZSUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRU5vbmUlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VsYW5ndWFnZSUyMCUzQSUyMHN0cmluZyUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRSUzQ2JyJTIwJTJGJTNFJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFJTdCJTI2cXVvdCUzQmpzb25ycGMlMjZxdW90JTNCJTNBJTI2cXVvdCUzQjIuMCUyNnF1b3QlM0IlMkMlMjZxdW90JTNCaWQlMjZxdW90JTNCJTNBMSUyQyUyNnF1b3QlM0JtZXRob2QlMjZxdW90JTNCJTNBJTI2cXVvdCUzQm9yZy5yZGsucGxheWVyLmdldEF1ZGlvTGFuZ3VhZ2UlMjZxdW90JTNCJTdEJTNDJTJGcHJlJTNFJTNDcHJlJTNFJTIwJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJUMyJUEwJTNDcHJlJTNFJTdCJTI2cXVvdCUzQmpzb25ycGMlMjZxdW90JTNCJTNBJTI2cXVvdCUzQjIuMCUyNnF1b3QlM0IlMkMlMjZxdW90JTNCaWQlMjZxdW90JTNCJTNBMSUyQyUyNnF1b3QlM0JyZXN1bHQlMjZxdW90JTNCJTNBJTdCJTI2cXVvdCUzQmxhbmd1YWdlJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0JlbiUyNnF1b3QlM0IlN0QlN0QlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQyUyRnRyJTNFJTNDdHIlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFb3JnLnJkay5wbGF5ZXIuZ2V0QXZhaWxhYmxlQXVkaW9UcmFja3MlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VHZXRBdmFpbGFibGVBdWRpb1RyYWNrcyUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRWFsbFRyYWNrcyUyMGJvb2xlYW4lM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0V0cmFja3MlMjAlM0FBdWRpb1RyYWNrJTVCJTVEJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFTGlzdCUyMGF2YWlsYWJsZSUyMGF1ZGlvJTIwdHJhY2tzJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFJTdCJTI2cXVvdCUzQmpzb25ycGMlMjZxdW90JTNCJTNBJTI2cXVvdCUzQjIuMCUyNnF1b3QlM0IlMkMlMjZxdW90JTNCaWQlMjZxdW90JTNCJTNBMSUyQyUyNnF1b3QlM0JtZXRob2QlMjZxdW90JTNCJTNBJTI2cXVvdCUzQm9yZy5yZGsucGxheWVyLmdldEF2YWlsYWJsZUF1ZGlvVHJhY2tzJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0JwYXJhbXMlMjZxdW90JTNCJTNBJTdCJTI2cXVvdCUzQmFsbFRyYWNrcyUyNnF1b3QlM0IlM0FmYWxzZSU3RCU3RCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSVDMiVBMCUzQ3ByZSUzRSU3QiUyNnF1b3QlM0Jqc29ucnBjJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0IyLjAlMjZxdW90JTNCJTJDJTI2cXVvdCUzQmlkJTI2cXVvdCUzQiUzQTElMkMlMjZxdW90JTNCcmVzdWx0JTI2cXVvdCUzQiUzQSU3QiUyNnF1b3QlM0J0cmFja3MlMjZxdW90JTNCJTNBJTVCJTdCJTI2cXVvdCUzQmluZGV4JTI2cXVvdCUzQiUzQTAlMkMlMjZxdW90JTNCbGFuZ3VhZ2UlMjZxdW90JTNCJTNBJTI2cXVvdCUzQmVuJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0JyZW5kaXRpb24lMjZxdW90JTNCJTNBJTI2cXVvdCUzQm1haW4lMjZxdW90JTNCJTJDJTI2cXVvdCUzQmxhYmVsJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0JFbmdsaXNoJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0Jjb2RlYyUyNnF1b3QlM0IlM0ElMjZxdW90JTNCbXA0YS40MC4yJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0J0eXBlJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0JBVURJT19TVEVSRU8lMjZxdW90JTNCJTJDJTI2cXVvdCUzQmNoYW5uZWxzJTI2cXVvdCUzQiUzQTIlMkMlMjZxdW90JTNCYml0cmF0ZSUyNnF1b3QlM0IlM0ExMjgwMDAlN0QlMkMlN0IlMjZxdW90JTNCaW5kZXglMjZxdW90JTNCJTNBMSUyQyUyNnF1b3QlM0JsYW5ndWFnZSUyNnF1b3QlM0IlM0ElMjZxdW90JTNCZnJhJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0JyZW5kaXRpb24lMjZxdW90JTNCJTNBJTI2cXVvdCUzQm1haW4lMjZxdW90JTNCJTJDJTI2cXVvdCUzQmxhYmVsJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0JGcmVuY2glMjZxdW90JTNCJTJDJTI2cXVvdCUzQmNvZGVjJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0JtcDRhLjQwLjIlMjZxdW90JTNCJTJDJTI2cXVvdCUzQnR5cGUlMjZxdW90JTNCJTNBJTI2cXVvdCUzQkFVRElPX1NURVJFTyUyNnF1b3QlM0IlMkMlMjZxdW90JTNCY2hhbm5lbHMlMjZxdW90JTNCJTNBMiUyQyUyNnF1b3QlM0JiaXRyYXRlJTI2cXVvdCUzQiUzQTEyODAwMCU3RCU1RCU3RCU3RCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDJTJGdHIlM0UlM0N0ciUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VvcmcucmRrLnBsYXllci5zZXRBdWRpb1RyYWNrJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFU2V0QXVkaW9UcmFjayUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRXRyYWNrSWQlMjAlM0ElMjBpbnRlZ2VyJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFc3VjY2VzcyUyMCUzQSVDMiVBMCUzQ2JyJTIwJTJGJTNFJTNDYnIlMjAlMkYlM0VCb29sZWFuJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFU2VsZWN0JTIwYW4lMjBhdWRpbyUyMHRyYWNrJTIwYnklMjBpbmRleCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRSU3QiUyNnF1b3QlM0Jqc29ucnBjJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0IyLjAlMjZxdW90JTNCJTJDJTI2cXVvdCUzQmlkJTI2cXVvdCUzQiUzQTElMkMlMjZxdW90JTNCbWV0aG9kJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0JvcmcucmRrLnBsYXllci5zZXRBdWRpb1RyYWNrJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0JwYXJhbXMlMjZxdW90JTNCJTNBJTdCJTI2cXVvdCUzQnRyYWNrSWQlMjZxdW90JTNCJTNBMSU3RCU3RCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSVDMiVBMCUzQ3ByZSUzRSU3QiUyNnF1b3QlM0Jqc29ucnBjJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0IyLjAlMjZxdW90JTNCJTJDJTI2cXVvdCUzQmlkJTI2cXVvdCUzQiUzQTElMkMlMjZxdW90JTNCcmVzdWx0JTI2cXVvdCUzQiUzQSU3QiUyNnF1b3QlM0JzdWNjZXNzJTI2cXVvdCUzQiUzQXRydWUlN0QlN0QlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQyUyRnRyJTNFJTNDdHIlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFb3JnLnJkay5wbGF5ZXIuZ2V0QXVkaW9UcmFjayUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRUdldEF1ZGlvVHJhY2slM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VOb25lJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFdHJhY2tJZCUzQWludGVnZXIlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VHZXQlMjBpbmRleCUyMG9mJTIwYWN0aXZlJTIwYXVkaW8lMjB0cmFjayUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRSU3QiUyNnF1b3QlM0Jqc29ucnBjJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0IyLjAlMjZxdW90JTNCJTJDJTI2cXVvdCUzQmlkJTI2cXVvdCUzQiUzQTElMkMlMjZxdW90JTNCbWV0aG9kJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0JvcmcucmRrLnBsYXllci5nZXRBdWRpb1RyYWNrJTI2cXVvdCUzQiU3RCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSVDMiVBMCUzQ3ByZSUzRSU3QiUyNnF1b3QlM0Jqc29ucnBjJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0IyLjAlMjZxdW90JTNCJTJDJTI2cXVvdCUzQmlkJTI2cXVvdCUzQiUzQTElMkMlMjZxdW90JTNCcmVzdWx0JTI2cXVvdCUzQiUzQSU3QiUyNnF1b3QlM0J0cmFja0lkJTI2cXVvdCUzQiUzQTAlN0QlN0QlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQyUyRnRyJTNFJTNDdHIlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFb3JnLnJkay5wbGF5ZXIuZ2V0QXVkaW9UcmFja0luZm8lM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VHZXRBdWRpb1RyYWNrSW5mbyUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRU5vbmUlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0V0cmFja0luZm8lM0FBdWRpb1RyYWNrJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFR2V0JTIwZGV0YWlscyUyMG9mJTIwYWN0aXZlJTIwYXVkaW8lMjB0cmFjayUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRSU3QiUyNnF1b3QlM0Jqc29ucnBjJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0IyLjAlMjZxdW90JTNCJTJDJTI2cXVvdCUzQmlkJTI2cXVvdCUzQiUzQTElMkMlMjZxdW90JTNCbWV0aG9kJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0JvcmcucmRrLnBsYXllci5nZXRBdWRpb1RyYWNrSW5mbyUyNnF1b3QlM0IlN0QlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlQzIlQTAlM0NwcmUlM0UlN0IlMjZxdW90JTNCanNvbnJwYyUyNnF1b3QlM0IlM0ElMjZxdW90JTNCMi4wJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0JpZCUyNnF1b3QlM0IlM0ExJTJDJTI2cXVvdCUzQnJlc3VsdCUyNnF1b3QlM0IlM0ElN0IlMjZxdW90JTNCdHJhY2tJbmZvJTI2cXVvdCUzQiUzQSU3QiUyNnF1b3QlM0JpbmRleCUyNnF1b3QlM0IlM0EwJTJDJTI2cXVvdCUzQmxhbmd1YWdlJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0JlbiUyNnF1b3QlM0IlMkMlMjZxdW90JTNCcmVuZGl0aW9uJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0JtYWluJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0JsYWJlbCUyNnF1b3QlM0IlM0ElMjZxdW90JTNCRW5nbGlzaCUyNnF1b3QlM0IlMkMlMjZxdW90JTNCY29kZWMlMjZxdW90JTNCJTNBJTI2cXVvdCUzQm1wNGEuNDAuMiUyNnF1b3QlM0IlMkMlMjZxdW90JTNCdHlwZSUyNnF1b3QlM0IlM0ElMjZxdW90JTNCQVVESU9fU1RFUkVPJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0JjaGFubmVscyUyNnF1b3QlM0IlM0EyJTJDJTI2cXVvdCUzQmJpdHJhdGUlMjZxdW90JTNCJTNBMTI4MDAwJTdEJTdEJTdEJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0MlMkZ0ciUzRSUzQ3RyJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRW9yZy5yZGsucGxheWVyLnNldFN1YnRpdGxlTXV0ZSUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRVNldFN1YnRpdGxlTXV0ZSUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRW11dGVkJTNBJTIwYm9vbGVhbiUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRXN1Y2Nlc3MlM0ElMjBib29sZWFuJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFTXV0ZSUyMG9yJTIwdW5tdXRlJTIwc3VidGl0bGVzJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFJTdCJTI2cXVvdCUzQmpzb25ycGMlMjZxdW90JTNCJTNBJTI2cXVvdCUzQjIuMCUyNnF1b3QlM0IlMkMlMjZxdW90JTNCaWQlMjZxdW90JTNCJTNBMSUyQyUyNnF1b3QlM0JtZXRob2QlMjZxdW90JTNCJTNBJTI2cXVvdCUzQm9yZy5yZGsucGxheWVyLnNldFN1YnRpdGxlTXV0ZSUyNnF1b3QlM0IlMkMlMjZxdW90JTNCcGFyYW1zJTI2cXVvdCUzQiUzQSU3QiUyNnF1b3QlM0JtdXRlZCUyNnF1b3QlM0IlM0F0cnVlJTdEJTdEJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJUMyJUEwJTNDcHJlJTNFJTdCJTI2cXVvdCUzQmpzb25ycGMlMjZxdW90JTNCJTNBJTI2cXVvdCUzQjIuMCUyNnF1b3QlM0IlMkMlMjZxdW90JTNCaWQlMjZxdW90JTNCJTNBMSUyQyUyNnF1b3QlM0JyZXN1bHQlMjZxdW90JTNCJTNBJTdCJTI2cXVvdCUzQnN1Y2Nlc3MlMjZxdW90JTNCJTNBdHJ1ZSU3RCU3RCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDJTJGdHIlM0UlM0N0ciUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VvcmcucmRrLnBsYXllci5nZXRBdmFpbGFibGVUZXh0VHJhY2tzJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFR2V0QXZhaWxhYmxlVGV4dFRyYWNrcyUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRWFsbFRyYWNrcyUyMCUzQSUyMGJvb2xlYW4lM0NiciUyMCUyRiUzRSUzQ2JyJTIwJTJGJTNFJUMyJUEwJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFdHJhY2tzJTIwJTNBJUMyJUEwJTNDYnIlMjAlMkYlM0UlM0NiciUyMCUyRiUzRVRleHRUcmFjayU1QiU1RCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRUxpc3QlMjBhdmFpbGFibGUlMjB0ZXh0JTJGc3VidGl0bGUlMjB0cmFja3MlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0UlN0IlMjZxdW90JTNCanNvbnJwYyUyNnF1b3QlM0IlM0ElMjZxdW90JTNCMi4wJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0JpZCUyNnF1b3QlM0IlM0ExJTJDJTI2cXVvdCUzQm1ldGhvZCUyNnF1b3QlM0IlM0ElMjZxdW90JTNCb3JnLnJkay5wbGF5ZXIuZ2V0QXZhaWxhYmxlVGV4dFRyYWNrcyUyNnF1b3QlM0IlMkMlMjZxdW90JTNCcGFyYW1zJTI2cXVvdCUzQiUzQSU3QiUyNnF1b3QlM0JhbGxUcmFja3MlMjZxdW90JTNCJTNBZmFsc2UlN0QlN0QlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlQzIlQTAlM0NwcmUlM0UlN0IlMjZxdW90JTNCanNvbnJwYyUyNnF1b3QlM0IlM0ElMjZxdW90JTNCMi4wJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0JpZCUyNnF1b3QlM0IlM0ExJTJDJTI2cXVvdCUzQnJlc3VsdCUyNnF1b3QlM0IlM0ElN0IlMjZxdW90JTNCdHJhY2tzJTI2cXVvdCUzQiUzQSU1QiU3QiUyNnF1b3QlM0JpbmRleCUyNnF1b3QlM0IlM0EwJTJDJTI2cXVvdCUzQmxhbmd1YWdlJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0JlbiUyNnF1b3QlM0IlMkMlMjZxdW90JTNCcmVuZGl0aW9uJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0JtYWluJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0JsYWJlbCUyNnF1b3QlM0IlM0ElMjZxdW90JTNCRW5nbGlzaCUyNnF1b3QlM0IlMkMlMjZxdW90JTNCdHlwZSUyNnF1b3QlM0IlM0ElMjZxdW90JTNCU1VCVElUTEVTJTI2cXVvdCUzQiU3RCUyQyU3QiUyNnF1b3QlM0JpbmRleCUyNnF1b3QlM0IlM0ExJTJDJTI2cXVvdCUzQmxhbmd1YWdlJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0JzcGElMjZxdW90JTNCJTJDJTI2cXVvdCUzQnJlbmRpdGlvbiUyNnF1b3QlM0IlM0ElMjZxdW90JTNCbWFpbiUyNnF1b3QlM0IlMkMlMjZxdW90JTNCbGFiZWwlMjZxdW90JTNCJTNBJTI2cXVvdCUzQlNwYW5pc2glMjZxdW90JTNCJTJDJTI2cXVvdCUzQnR5cGUlMjZxdW90JTNCJTNBJTI2cXVvdCUzQlNVQlRJVExFUyUyNnF1b3QlM0IlN0QlNUQlN0QlN0QlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQyUyRnRyJTNFJTNDdHIlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFb3JnLnJkay5wbGF5ZXIuc2V0VGV4dFRyYWNrJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFU2V0VGV4dFRyYWNrJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFdHJhY2tJZCUyMCUzQSUyMGludGVnZXIlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VzdWNjZXNzJTIwJTNBJTIwYm9vbGVhbiUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRVNlbGVjdCUyMGElMjB0ZXh0JTIwdHJhY2slMjBieSUyMGluZGV4JTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFJTdCJTI2cXVvdCUzQmpzb25ycGMlMjZxdW90JTNCJTNBJTI2cXVvdCUzQjIuMCUyNnF1b3QlM0IlMkMlMjZxdW90JTNCaWQlMjZxdW90JTNCJTNBMSUyQyUyNnF1b3QlM0JtZXRob2QlMjZxdW90JTNCJTNBJTI2cXVvdCUzQm9yZy5yZGsucGxheWVyLnNldFRleHRUcmFjayUyNnF1b3QlM0IlMkMlMjZxdW90JTNCcGFyYW1zJTI2cXVvdCUzQiUzQSU3QiUyNnF1b3QlM0J0cmFja0lkJTI2cXVvdCUzQiUzQTAlN0QlN0QlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlQzIlQTAlM0NwcmUlM0UlN0IlMjZxdW90JTNCanNvbnJwYyUyNnF1b3QlM0IlM0ElMjZxdW90JTNCMi4wJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0JpZCUyNnF1b3QlM0IlM0ExJTJDJTI2cXVvdCUzQnJlc3VsdCUyNnF1b3QlM0IlM0ElN0IlMjZxdW90JTNCc3VjY2VzcyUyNnF1b3QlM0IlM0F0cnVlJTdEJTdEJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0MlMkZ0ciUzRSUzQ3RyJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRW9yZy5yZGsucGxheWVyLmdldFRleHRUcmFjayUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRUdldFRleHRUcmFjayUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRU5vbmUlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0V0cmFja0lkJTIwJTNBJTIwaW50ZWdlciUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRUdldCUyMGluZGV4JTIwb2YlMjBhY3RpdmUlMjB0ZXh0JTIwdHJhY2slM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0UlN0IlMjZxdW90JTNCanNvbnJwYyUyNnF1b3QlM0IlM0ElMjZxdW90JTNCMi4wJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0JpZCUyNnF1b3QlM0IlM0ExJTJDJTI2cXVvdCUzQm1ldGhvZCUyNnF1b3QlM0IlM0ElMjZxdW90JTNCb3JnLnJkay5wbGF5ZXIuZ2V0VGV4dFRyYWNrJTI2cXVvdCUzQiU3RCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSVDMiVBMCUzQ3ByZSUzRSU3QiUyNnF1b3QlM0Jqc29ucnBjJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0IyLjAlMjZxdW90JTNCJTJDJTI2cXVvdCUzQmlkJTI2cXVvdCUzQiUzQTElMkMlMjZxdW90JTNCcmVzdWx0JTI2cXVvdCUzQiUzQSU3QiUyNnF1b3QlM0J0cmFja0lkJTI2cXVvdCUzQiUzQTAlN0QlN0QlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQyUyRnRyJTNFJTNDdHIlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFb3JnLnJkay5wbGF5ZXIuZ2V0VmlkZW9CaXRyYXRlJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFR2V0VmlkZW9CaXRyYXRlJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFTm9uZSUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRWJpdHJhdGUlMjAlM0ElMjBpbnRlZ2VyJUMyJUEwJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFR2V0JTIwY3VycmVudCUyMHZpZGVvJTIwYml0cmF0ZSUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRSU3QiUyNnF1b3QlM0Jqc29ucnBjJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0IyLjAlMjZxdW90JTNCJTJDJTI2cXVvdCUzQmlkJTI2cXVvdCUzQiUzQTElMkMlMjZxdW90JTNCbWV0aG9kJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0JvcmcucmRrLnBsYXllci5nZXRWaWRlb0JpdHJhdGUlMjZxdW90JTNCJTdEJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJUMyJUEwJTNDcHJlJTNFJTdCJTI2cXVvdCUzQmpzb25ycGMlMjZxdW90JTNCJTNBJTI2cXVvdCUzQjIuMCUyNnF1b3QlM0IlMkMlMjZxdW90JTNCaWQlMjZxdW90JTNCJTNBMSUyQyUyNnF1b3QlM0JyZXN1bHQlMjZxdW90JTNCJTNBJTdCJTI2cXVvdCUzQmJpdHJhdGUlMjZxdW90JTNCJTNBNDAwMDAwMCU3RCU3RCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDJTJGdHIlM0UlM0N0ciUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VvcmcucmRrLnBsYXllci5zZXRWaWRlb0JpdHJhdGUlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VTZXRWaWRlb0JpdHJhdGUlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0ViaXRyYXRlJTIwJTNBJTIwaW50ZWdlciUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRXN1Y2Nlc3MlMjAlM0ElMjBib29sZWFuJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFTG9jayUyMHRoZSUyMHZpZGVvJTIwYml0cmF0ZSUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRSU3QiUyNnF1b3QlM0Jqc29ucnBjJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0IyLjAlMjZxdW90JTNCJTJDJTI2cXVvdCUzQmlkJTI2cXVvdCUzQiUzQTElMkMlMjZxdW90JTNCbWV0aG9kJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0JvcmcucmRrLnBsYXllci5zZXRWaWRlb0JpdHJhdGUlMjZxdW90JTNCJTJDJTI2cXVvdCUzQnBhcmFtcyUyNnF1b3QlM0IlM0ElN0IlMjZxdW90JTNCYml0cmF0ZSUyNnF1b3QlM0IlM0EyMDAwMDAwJTdEJTdEJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJUMyJUEwJTNDcHJlJTNFJTdCJTI2cXVvdCUzQmpzb25ycGMlMjZxdW90JTNCJTNBJTI2cXVvdCUzQjIuMCUyNnF1b3QlM0IlMkMlMjZxdW90JTNCaWQlMjZxdW90JTNCJTNBMSUyQyUyNnF1b3QlM0JyZXN1bHQlMjZxdW90JTNCJTNBJTdCJTI2cXVvdCUzQnN1Y2Nlc3MlMjZxdW90JTNCJTNBdHJ1ZSU3RCU3RCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDJTJGdHIlM0UlM0N0ciUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VvcmcucmRrLnBsYXllci5nZXRWaWRlb0JpdHJhdGVzJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFR2V0VmlkZW9CaXRyYXRlcyUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRU5vbmUlQzIlQTAlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0ViaXRyYXRlcyUyMCUzQSVDMiVBMCUzQ2JyJTIwJTJGJTNFJTNDYnIlMjAlMkYlM0VpbnRlZ2VyJTVCJTVEJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFTGlzdCUyMGFsbCUyMGF2YWlsYWJsZSUyMHZpZGVvJTIwYml0cmF0ZXMlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0UlN0IlMjZxdW90JTNCanNvbnJwYyUyNnF1b3QlM0IlM0ElMjZxdW90JTNCMi4wJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0JpZCUyNnF1b3QlM0IlM0ExJTJDJTI2cXVvdCUzQm1ldGhvZCUyNnF1b3QlM0IlM0ElMjZxdW90JTNCb3JnLnJkay5wbGF5ZXIuZ2V0VmlkZW9CaXRyYXRlcyUyNnF1b3QlM0IlN0QlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlQzIlQTAlM0NwcmUlM0UlN0IlMjZxdW90JTNCanNvbnJwYyUyNnF1b3QlM0IlM0ElMjZxdW90JTNCMi4wJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0JpZCUyNnF1b3QlM0IlM0ExJTJDJTI2cXVvdCUzQnJlc3VsdCUyNnF1b3QlM0IlM0ElN0IlMjZxdW90JTNCYml0cmF0ZXMlMjZxdW90JTNCJTNBJTVCODAwMDAwJTJDMjAwMDAwMCUyQzQwMDAwMDAlMkM4MDAwMDAwJTVEJTdEJTdEJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0MlMkZ0ciUzRSUzQ3RyJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRW9yZy5yZGsucGxheWVyLnNldEluaXRpYWxCaXRyYXRlJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFU2V0SW5pdGlhbEJpdHJhdGUlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0ViaXRyYXRlJTIwJTNBJTIwaW50ZWdlciUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRXN1Y2Nlc3MlMjAlQzIlQTAlM0ElMjBib29sZWFuJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFU2V0JTIwdGhlJTIwc3RhcnR1cCUyMGJpdHJhdGUlMjBoaW50JTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFJTdCJTI2cXVvdCUzQmpzb25ycGMlMjZxdW90JTNCJTNBJTI2cXVvdCUzQjIuMCUyNnF1b3QlM0IlMkMlMjZxdW90JTNCaWQlMjZxdW90JTNCJTNBMSUyQyUyNnF1b3QlM0JtZXRob2QlMjZxdW90JTNCJTNBJTI2cXVvdCUzQm9yZy5yZGsucGxheWVyLnNldEluaXRpYWxCaXRyYXRlJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0JwYXJhbXMlMjZxdW90JTNCJTNBJTdCJTI2cXVvdCUzQmJpdHJhdGUlMjZxdW90JTNCJTNBMjAwMDAwMCU3RCU3RCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSVDMiVBMCUzQ3ByZSUzRSU3QiUyNnF1b3QlM0Jqc29ucnBjJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0IyLjAlMjZxdW90JTNCJTJDJTI2cXVvdCUzQmlkJTI2cXVvdCUzQiUzQTElMkMlMjZxdW90JTNCcmVzdWx0JTI2cXVvdCUzQiUzQSU3QiUyNnF1b3QlM0JzdWNjZXNzJTI2cXVvdCUzQiUzQXRydWUlN0QlN0QlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQyUyRnRyJTNFJTNDdHIlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFb3JnLnJkay5wbGF5ZXIuZ2V0SW5pdGlhbEJpdHJhdGUlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VnZXRJbml0aWFsQml0cmF0JTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFJUMyJUEwJTNDYnIlMjAlMkYlM0UlM0NiciUyMCUyRiUzRU5vbmUlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0ViaXRyYXRlJTIwJTNBJTIwaW50ZWdlciVDMiVBMCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRVNldCUyMHRoZSUyMHN0YXJ0dXAlMjBiaXRyYXRlJTIwaGludCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRSU3QiUyNnF1b3QlM0Jqc29ucnBjJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0IyLjAlMjZxdW90JTNCJTJDJTI2cXVvdCUzQmlkJTI2cXVvdCUzQiUzQTElMkMlMjZxdW90JTNCbWV0aG9kJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0JvcmcucmRrLnBsYXllci5nZXRJbml0aWFsQml0cmF0ZSUyNnF1b3QlM0IlN0QlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlQzIlQTAlM0NwcmUlM0UlN0IlMjZxdW90JTNCanNvbnJwYyUyNnF1b3QlM0IlM0ElMjZxdW90JTNCMi4wJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0JpZCUyNnF1b3QlM0IlM0ExJTJDJTI2cXVvdCUzQnJlc3VsdCUyNnF1b3QlM0IlM0ElN0IlMjZxdW90JTNCYml0cmF0ZSUyNnF1b3QlM0IlM0EyMDAwMDAwJTdEJTdEJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0MlMkZ0ciUzRSUzQ3RyJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRW9yZy5yZGsucGxheWVyLnNldE1pbmltdW1CaXRyYXRlJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFU2V0TWluaW11bUJpdHJhdGUlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0ViaXRyYXRlJTIwJTNBJTIwaW50ZWdlciVDMiVBMCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRXN1Y2Nlc3MlMjAlM0ElMjBib29sZWFuJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFU2V0JTIwdGhlJTIwQUJSJTIwbWluaW11bSUyMGJpdHJhdGUlMjBmbG9vciUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRSU3QiUyNnF1b3QlM0Jqc29ucnBjJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0IyLjAlMjZxdW90JTNCJTJDJTI2cXVvdCUzQmlkJTI2cXVvdCUzQiUzQTElMkMlMjZxdW90JTNCbWV0aG9kJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0JvcmcucmRrLnBsYXllci5zZXRNaW5pbXVtQml0cmF0ZSUyNnF1b3QlM0IlMkMlMjZxdW90JTNCcGFyYW1zJTI2cXVvdCUzQiUzQSU3QiUyNnF1b3QlM0JiaXRyYXRlJTI2cXVvdCUzQiUzQTgwMDAwMCU3RCU3RCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSVDMiVBMCUzQ3ByZSUzRSU3QiUyNnF1b3QlM0Jqc29ucnBjJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0IyLjAlMjZxdW90JTNCJTJDJTI2cXVvdCUzQmlkJTI2cXVvdCUzQiUzQTElMkMlMjZxdW90JTNCcmVzdWx0JTI2cXVvdCUzQiUzQSU3QiUyNnF1b3QlM0JzdWNjZXNzJTI2cXVvdCUzQiUzQXRydWUlN0QlN0QlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQyUyRnRyJTNFJTNDdHIlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFb3JnLnJkay5wbGF5ZXIuZ2V0TWluaW11bUJpdHJhdGUlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VHZXRNaW5pbXVtQml0cmF0ZSUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRU5vbmUlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0ViaXRyYXRlJTIwJTNBJTIwaW50ZWdlciVDMiVBMCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRUdldCUyMHRoZSUyMEFCUiUyMG1pbmltdW0lMjBiaXRyYXRlJTIwZmxvb3IlQzIlQTAlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0UlN0IlMjZxdW90JTNCanNvbnJwYyUyNnF1b3QlM0IlM0ElMjZxdW90JTNCMi4wJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0JpZCUyNnF1b3QlM0IlM0ExJTJDJTI2cXVvdCUzQm1ldGhvZCUyNnF1b3QlM0IlM0ElMjZxdW90JTNCb3JnLnJkay5wbGF5ZXIuZ2V0TWluaW11bUJpdHJhdGUlMjZxdW90JTNCJTdEJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJUMyJUEwJTNDcHJlJTNFJTdCJTI2cXVvdCUzQmpzb25ycGMlMjZxdW90JTNCJTNBJTI2cXVvdCUzQjIuMCUyNnF1b3QlM0IlMkMlMjZxdW90JTNCaWQlMjZxdW90JTNCJTNBMSUyQyUyNnF1b3QlM0JyZXN1bHQlMjZxdW90JTNCJTNBJTdCJTI2cXVvdCUzQmJpdHJhdGUlMjZxdW90JTNCJTNBODAwMDAwJTdEJTdEJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0MlMkZ0ciUzRSUzQ3RyJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRW9yZy5yZGsucGxheWVyLnNldE1heGltdW1CaXRyYXRlJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFU2V0TWF4aW11bUJpdHJhdGUlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0ViaXRyYXRlJTIwJTNBJTIwaW50ZWdlciUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRXN1Y2Nlc3MlMjAlM0ElMjBib29sZWFuJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFU2V0JTIwdGhlJTIwQUJSJTIwbWF4aW11bSUyMGJpdHJhdGUlMjBjZWlsaW5nJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFJTdCJTI2cXVvdCUzQmpzb25ycGMlMjZxdW90JTNCJTNBJTI2cXVvdCUzQjIuMCUyNnF1b3QlM0IlMkMlMjZxdW90JTNCaWQlMjZxdW90JTNCJTNBMSUyQyUyNnF1b3QlM0JtZXRob2QlMjZxdW90JTNCJTNBJTI2cXVvdCUzQm9yZy5yZGsucGxheWVyLnNldE1heGltdW1CaXRyYXRlJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0JwYXJhbXMlMjZxdW90JTNCJTNBJTdCJTI2cXVvdCUzQmJpdHJhdGUlMjZxdW90JTNCJTNBODAwMDAwMCU3RCU3RCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRSU3QiUyNnF1b3QlM0Jqc29ucnBjJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0IyLjAlMjZxdW90JTNCJTJDJTI2cXVvdCUzQmlkJTI2cXVvdCUzQiUzQTElMkMlMjZxdW90JTNCcmVzdWx0JTI2cXVvdCUzQiUzQSU3QiUyNnF1b3QlM0JzdWNjZXNzJTI2cXVvdCUzQiUzQXRydWUlN0QlN0QlM0MlMkZwcmUlM0UlQzIlQTAlM0MlMkZ0ZCUzRSUzQyUyRnRyJTNFJTNDdHIlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFb3JnLnJkay5wbGF5ZXIuZ2V0TWF4aW11bUJpdHJhdGUlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VnZXRNYXhpbXVtQml0cmF0ZSUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRU5vbmUlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0ViaXRyYXRlJTIwJTNBJTIwaW50ZWdlciVDMiVBMCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRUdldCUyMHRoZSUyMEFCUiUyMG1heGltdW0lMjBiaXRyYXRlJTIwY2VpbGluZyUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRSU3QiUyNnF1b3QlM0Jqc29ucnBjJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0IyLjAlMjZxdW90JTNCJTJDJTI2cXVvdCUzQmlkJTI2cXVvdCUzQiUzQTElMkMlMjZxdW90JTNCbWV0aG9kJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0JvcmcucmRrLnBsYXllci5nZXRNYXhpbXVtQml0cmF0ZSUyNnF1b3QlM0IlN0QlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0UlQzIlQTAlM0NiciUyMCUyRiUzRSUzQ2JyJTIwJTJGJTNFJTdCJTI2cXVvdCUzQmpzb25ycGMlMjZxdW90JTNCJTNBJTI2cXVvdCUzQjIuMCUyNnF1b3QlM0IlMkMlMjZxdW90JTNCaWQlMjZxdW90JTNCJTNBMSUyQyUyNnF1b3QlM0JyZXN1bHQlMjZxdW90JTNCJTNBJTdCJTI2cXVvdCUzQmJpdHJhdGUlMjZxdW90JTNCJTNBODAwMDAwMCU3RCU3RCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDJTJGdHIlM0UlM0N0ciUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VyZy5yZGsucGxheWVyLnNldExpY2Vuc2VTZXJ2ZXJVUkwlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VTZXRMaWNlbnNlU2VydmVyVVJMJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFdXJsJTIwJTNBJUMyJUEwJTNDYnIlMjAlMkYlM0UlM0NiciUyMCUyRiUzRXN0cmluZyUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRXN1Y2Nlc3MlMjAlM0ElMjBib29sZWFuJUMyJUEwJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFU2V0JTIwdGhlJTIwRFJNJTIwbGljZW5zZSUyMHNlcnZlciUyMFVSTCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRSU3QiUyNnF1b3QlM0Jqc29ucnBjJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0IyLjAlMjZxdW90JTNCJTJDJTI2cXVvdCUzQmlkJTI2cXVvdCUzQiUzQTElMkMlMjZxdW90JTNCbWV0aG9kJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0JvcmcucmRrLnBsYXllci5zZXRMaWNlbnNlU2VydmVyVVJMJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0JwYXJhbXMlMjZxdW90JTNCJTNBJTdCJTI2cXVvdCUzQnVybCUyNnF1b3QlM0IlM0ElMjZxdW90JTNCJTNDYSUyMGhyZWYlM0QlMjJodHRwcyUzQSUyRiUyRmxpY2Vuc2UuZXhhbXBsZS5jb20lMkZ3aWRldmluZSUyMiUzRWh0dHBzJTNBJTJGJTJGbGljZW5zZS5leGFtcGxlLmNvbSUyRndpZGV2aW5lJTNDJTJGYSUzRSUyNnF1b3QlM0IlN0QlN0QlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlQzIlQTAlM0NwcmUlM0UlN0IlMjZxdW90JTNCanNvbnJwYyUyNnF1b3QlM0IlM0ElMjZxdW90JTNCMi4wJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0JpZCUyNnF1b3QlM0IlM0ExJTJDJTI2cXVvdCUzQnJlc3VsdCUyNnF1b3QlM0IlM0ElN0IlMjZxdW90JTNCc3VjY2VzcyUyNnF1b3QlM0IlM0F0cnVlJTdEJTdEJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0MlMkZ0ciUzRSUzQ3RyJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRW9yZy5yZGsucGxheWVyLmdldERSTSUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRUdldERSTSUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRU5vbmUlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0Vkcm0lMjAlM0ElMjBzdHJpbmclQzIlQTAlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VHZXQlMjBhY3RpdmUlMjBEUk0lMjBzeXN0ZW0lM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0UlN0IlMjZxdW90JTNCanNvbnJwYyUyNnF1b3QlM0IlM0ElMjZxdW90JTNCMi4wJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0JpZCUyNnF1b3QlM0IlM0ExJTJDJTI2cXVvdCUzQm1ldGhvZCUyNnF1b3QlM0IlM0ElMjZxdW90JTNCb3JnLnJkay5wbGF5ZXIuZ2V0RFJNJTI2cXVvdCUzQiU3RCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSVDMiVBMCUzQ3ByZSUzRSU3QiUyNnF1b3QlM0Jqc29ucnBjJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0IyLjAlMjZxdW90JTNCJTJDJTI2cXVvdCUzQmlkJTI2cXVvdCUzQiUzQTElMkMlMjZxdW90JTNCcmVzdWx0JTI2cXVvdCUzQiUzQSU3QiUyNnF1b3QlM0Jkcm0lMjZxdW90JTNCJTNBJTI2cXVvdCUzQndpZGV2aW5lJTI2cXVvdCUzQiU3RCU3RCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDJTJGdHIlM0UlM0N0ciUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VvcmcucmRrLnBsYXllci5zZXRQcmVmZXJyZWREUk0lM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VTZXRQcmVmZXJyZWREUk0lM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0Vkcm1UeXBlJTIwJTNBJTIwc3RyaW5nJTNDYnIlMjAlMkYlM0UlM0NiciUyMCUyRiUzRSVDMiVBMCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRXN1Y2Nlc3MlMjAlM0ElMjBib29sZWFuJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFU2V0JTIwdGhlJTIwcHJlZmVycmVkJTIwRFJNJTIwc3lzdGVtJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFJTdCJTI2cXVvdCUzQmpzb25ycGMlMjZxdW90JTNCJTNBJTI2cXVvdCUzQjIuMCUyNnF1b3QlM0IlMkMlMjZxdW90JTNCaWQlMjZxdW90JTNCJTNBMSUyQyUyNnF1b3QlM0JtZXRob2QlMjZxdW90JTNCJTNBJTI2cXVvdCUzQm9yZy5yZGsucGxheWVyLnNldFByZWZlcnJlZERSTSUyNnF1b3QlM0IlMkMlMjZxdW90JTNCcGFyYW1zJTI2cXVvdCUzQiUzQSU3QiUyNnF1b3QlM0Jkcm1UeXBlJTI2cXVvdCUzQiUzQSUyNnF1b3QlM0J3aWRldmluZSUyNnF1b3QlM0IlN0QlN0QlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlQzIlQTAlM0NwcmUlM0UlN0IlMjZxdW90JTNCanNvbnJwYyUyNnF1b3QlM0IlM0ElMjZxdW90JTNCMi4wJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0JpZCUyNnF1b3QlM0IlM0ExJTJDJTI2cXVvdCUzQnJlc3VsdCUyNnF1b3QlM0IlM0ElN0IlMjZxdW90JTNCc3VjY2VzcyUyNnF1b3QlM0IlM0F0cnVlJTdEJTdEJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0MlMkZ0ciUzRSUzQ3RyJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRXJnLnJkay5wbGF5ZXIuZ2V0QUFNUENvbmZpZyUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRUdldEFBTVBDb25maWclM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VOb25lJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFY29uZmlnJTIwJTNBJTIwb2JqZWN0JTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFR2V0JTIwY3VycmVudCUyMEFBTVAlMjBjb25maWd1cmF0aW9uJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFJTdCJTI2cXVvdCUzQmpzb25ycGMlMjZxdW90JTNCJTNBJTI2cXVvdCUzQjIuMCUyNnF1b3QlM0IlMkMlMjZxdW90JTNCaWQlMjZxdW90JTNCJTNBMSUyQyUyNnF1b3QlM0JtZXRob2QlMjZxdW90JTNCJTNBJTI2cXVvdCUzQm9yZy5yZGsucGxheWVyLmdldEFBTVBDb25maWclMjZxdW90JTNCJTdEJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJUMyJUEwJTNDcHJlJTNFJTdCJTI2cXVvdCUzQmpzb25ycGMlMjZxdW90JTNCJTNBJTI2cXVvdCUzQjIuMCUyNnF1b3QlM0IlMkMlMjZxdW90JTNCaWQlMjZxdW90JTNCJTNBMSUyQyUyNnF1b3QlM0JyZXN1bHQlMjZxdW90JTNCJTNBJTdCJTI2cXVvdCUzQmNvbmZpZyUyNnF1b3QlM0IlM0ElN0IlMjZxdW90JTNCbmV0d29ya1RpbWVvdXQlMjZxdW90JTNCJTNBMTAlMkMlMjZxdW90JTNCZG93bmxvYWRCdWZmZXIlMjZxdW90JTNCJTNBMzAlN0QlN0QlN0QlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQyUyRnRyJTNFJTNDdHIlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFb3JnLnJkay5wbGF5ZXIuc2V0QXBwTmFtZSUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRVNldEFwcE5hbWUlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VuYW1lJTIwJTNBJTIwc3RyaW5nJTNDYnIlMjAlMkYlM0UlM0NiciUyMCUyRiUzRSVDMiVBMCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRXN1Y2Nlc3MlMjAlM0ElMjBib29sZWFuJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFU2V0JTIwdGhlJTIwYXBwbGljYXRpb24lMjBuYW1lJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFJTdCJTI2cXVvdCUzQmpzb25ycGMlMjZxdW90JTNCJTNBJTI2cXVvdCUzQjIuMCUyNnF1b3QlM0IlMkMlMjZxdW90JTNCaWQlMjZxdW90JTNCJTNBMSUyQyUyNnF1b3QlM0JtZXRob2QlMjZxdW90JTNCJTNBJTI2cXVvdCUzQm9yZy5yZGsucGxheWVyLnNldEFwcE5hbWUlMjZxdW90JTNCJTJDJTI2cXVvdCUzQnBhcmFtcyUyNnF1b3QlM0IlM0ElN0IlMjZxdW90JTNCbmFtZSUyNnF1b3QlM0IlM0ElMjZxdW90JTNCTXlTdHJlYW1pbmdBcHAlMjZxdW90JTNCJTdEJTdEJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJUMyJUEwJTNDcHJlJTNFJTdCJTI2cXVvdCUzQmpzb25ycGMlMjZxdW90JTNCJTNBJTI2cXVvdCUzQjIuMCUyNnF1b3QlM0IlMkMlMjZxdW90JTNCaWQlMjZxdW90JTNCJTNBMSUyQyUyNnF1b3QlM0JyZXN1bHQlMjZxdW90JTNCJTNBJTdCJTI2cXVvdCUzQnN1Y2Nlc3MlMjZxdW90JTNCJTNBdHJ1ZSU3RCU3RCUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDJTJGdHIlM0UlM0N0ciUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VvcmcucmRrLnBsYXllci5zZXRQcmVmZXJyZWRMYW5ndWFnZXMlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VTZXRQcmVmZXJyZWRMYW5ndWFnZXMlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VsYW5ndWFnZUxpc3QlMjAlQzIlQTAlM0ElMjBzdHJpbmclM0NiciUyMCUyRiUzRSUzQ2JyJTIwJTJGJTNFcmVuZGl0aW9uJTIwJTNBJTIwc3RyaW5nJTNDYnIlMjAlMkYlM0UlM0NiciUyMCUyRiUzRWNvZGVjTGlzdCUyMCUzQSUyMHN0cmluZyUzQ2JyJTIwJTJGJTNFJTNDYnIlMjAlMkYlM0VsYWJlbExpc3QlMjAlM0ElMjBzdHJpbmclM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0VzdWNjZXNzJTIwJTNBJTIwYm9vbGVhbiUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRVNldCUyMHByZWZlcnJlZCUyMGF1ZGlvJTJGdGV4dCUyMGxhbmd1YWdlJTIwcHJlZmVyZW5jZXMlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlM0NwcmUlM0UlN0IlMjZxdW90JTNCanNvbnJwYyUyNnF1b3QlM0IlM0ElMjZxdW90JTNCMi4wJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0JpZCUyNnF1b3QlM0IlM0ExJTJDJTI2cXVvdCUzQm1ldGhvZCUyNnF1b3QlM0IlM0ElMjZxdW90JTNCb3JnLnJkay5wbGF5ZXIuc2V0UHJlZmVycmVkTGFuZ3VhZ2VzJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0JwYXJhbXMlMjZxdW90JTNCJTNBJTdCJTI2cXVvdCUzQmxhbmd1YWdlTGlzdCUyNnF1b3QlM0IlM0ElMjZxdW90JTNCZW4lMkNmcmElMkNzcGElMjZxdW90JTNCJTJDJTI2cXVvdCUzQnJlbmRpdGlvbiUyNnF1b3QlM0IlM0ElMjZxdW90JTNCbWFpbiUyNnF1b3QlM0IlMkMlMjZxdW90JTNCdHlwZSUyNnF1b3QlM0IlM0ElMjZxdW90JTNCQVVESU9fU1RFUkVPJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0Jjb2RlY0xpc3QlMjZxdW90JTNCJTNBJTI2cXVvdCUzQm1wNGEuNDAuMiUyNnF1b3QlM0IlN0QlN0QlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlQzIlQTAlM0NwcmUlM0UlN0IlMjZxdW90JTNCanNvbnJwYyUyNnF1b3QlM0IlM0ElMjZxdW90JTNCMi4wJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0JpZCUyNnF1b3QlM0IlM0ExJTJDJTI2cXVvdCUzQnJlc3VsdCUyNnF1b3QlM0IlM0ElN0IlMjZxdW90JTNCc3VjY2VzcyUyNnF1b3QlM0IlM0F0cnVlJTdEJTdEJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0MlMkZ0ciUzRSUzQ3RyJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRW9yZy5yZGsucGxheWVyLmdldFByZWZlcnJlZExhbmd1YWdlcyUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRUdldFByZWZlcnJlZExhbmd1YWdlcyUzQyUyRnByZSUzRSUzQyUyRnRkJTNFJTNDdGQlMjBjbGFzcyUzRCUyMmNvbmZsdWVuY2VUZCUyMiUzRSUzQ3ByZSUzRU5vbmUlM0NiciUyMCUyRiUzRSUzQ2JyJTIwJTJGJTNFJUMyJUEwJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFbGFuZ3VhZ2VMaXN0JTIwJTNBJTIwc3RpbmclM0NiciUyMCUyRiUzRSUzQ2JyJTIwJTJGJTNFJUMyJUEwJTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFR2V0JTIwdGhlJTIwcHJlZmVycmVkJTIwbGFuZ3VhZ2UlMjBsaXN0JTNDJTJGcHJlJTNFJTNDJTJGdGQlM0UlM0N0ZCUyMGNsYXNzJTNEJTIyY29uZmx1ZW5jZVRkJTIyJTNFJTNDcHJlJTNFJTdCJTI2cXVvdCUzQmpzb25ycGMlMjZxdW90JTNCJTNBJTI2cXVvdCUzQjIuMCUyNnF1b3QlM0IlMkMlMjZxdW90JTNCaWQlMjZxdW90JTNCJTNBMSUyQyUyNnF1b3QlM0JtZXRob2QlMjZxdW90JTNCJTNBJTI2cXVvdCUzQm9yZy5yZGsucGxheWVyLmdldFByZWZlcnJlZExhbmd1YWdlcyUyNnF1b3QlM0IlN0QlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQ3RkJTIwY2xhc3MlM0QlMjJjb25mbHVlbmNlVGQlMjIlM0UlQzIlQTAlM0NwcmUlM0UlN0IlMjZxdW90JTNCanNvbnJwYyUyNnF1b3QlM0IlM0ElMjZxdW90JTNCMi4wJTI2cXVvdCUzQiUyQyUyNnF1b3QlM0JpZCUyNnF1b3QlM0IlM0ExJTJDJTI2cXVvdCUzQnJlc3VsdCUyNnF1b3QlM0IlM0ElN0IlMjZxdW90JTNCbGFuZ3VhZ2VMaXN0JTI2cXVvdCUzQiUzQSUyNnF1b3QlM0JlbiUyQ2ZyYSUyNnF1b3QlM0IlN0QlN0QlM0MlMkZwcmUlM0UlM0MlMkZ0ZCUzRSUzQyUyRnRyJTNFJTNDJTJGdGJvZHklM0UlM0MlMkZ0YWJsZSUzRQ==
Events and Notifications
Subscription
All `org.rdk.player.on*` notifications are opt-in. Subscribe per client; each connection has its own independent subscription set.
After subscribing, the server pushes matching events as JSON-RPC notifications.
eg:
Request
{"jsonrpc":"2.0","id":1,"method":"org.rdk.player.subscribe","params":{"event":"org.rdk.player.onProgress"}}
Response
{"jsonrpc":"2.0","id":1,"result":{"success":true}}
Unsubscribe
eg:
Request
{"jsonrpc":"2.0","id":1,"method":"org.rdk.player.unsubscribe","params":{"event":"org.rdk.player.onProgress"}}
Response
{"jsonrpc":"2.0","id":1,"result":{"success":true}}
Event | Description | Response |
|---|
org.rdk.player.onTuned | Tune succeeded and playback is ready | {"jsonrpc":"2.0","method":"org.rdk.player.onTuned","params":{}} |
org.rdk.player.onTuneFailed | Tune failed and playback is not ready | {"jsonrpc":"2.0","method":"org.rdk.player.onTuneFailed","params":{"description":"Manifest download failed","code":10,"shouldRetry":true}} |
org.rdk.player.onStateChanged | New player lifecycle state | {"jsonrpc":"2.0","method":"org.rdk.player.onStateChanged","params":{"state":"playing"}} |
org.rdk.player.onProgress | Periodic playback progress | {"jsonrpc":"2.0","method":"org.rdk.player.onProgress","params":{"positionMs":12500,"durationMs":3600000,"speed":1,"startMs":0,"endMs":3600000,"videoBufferedMs":8000,"audioBufferedMs":8000,"liveLatencyMs":0,"profileBitrate":4000000,"networkBitrate":6000000}} |
org.rdk.player.onBitrateChanged | ABR switches to a different video profile | {"jsonrpc":"2.0","method":"org.rdk.player.onBitrateChanged","params":{"bitrate":2000000,"width":1280,"height":720,"description":"NetworkCongestion"}} |
org.rdk.player.onMediaMetadata | Stream metadata is parsed after a tune completes | {"jsonrpc":"2.0","method":"org.rdk.player.onMediaMetadata","params":{"durationMs":3600000,"width":1920,"height":1080,"hasDrm":true,"isLive":false,"drmType":"widevine","languages":["en","fra"],"bitrates":[800000,2000000,4000000,8000000],"speeds":[-64,-32,-16,-8,-4,-2,1,2,4,8,16,32,64]}} |
org.rdk.player.onSpeedChanged | Effective playback speed changes (e.g. trick-play, pause, resume) | {"jsonrpc":"2.0","method":"org.rdk.player.onSpeedChanged","params":{"speed":2}} |
org.rdk.player.onBufferingChanged | Player enters or exits a buffering stall | {"jsonrpc":"2.0","method":"org.rdk.player.onBufferingChanged","params":{"buffering":true}} |
org.rdk.player.onSeeked | A seek operation completes and playback resumes at the new position | {"jsonrpc":"2.0","method":"org.rdk.player.onSeeked","params":{"positionMs":120000}} |
org.rdk.player.onDrmMetadata | DRM system reports an access status update | {"jsonrpc":"2.0","method":"org.rdk.player.onDrmMetadata","params":{"accessStatus":"Authorized"}} |
org.rdk.player.onAnomaly | Fired when AAMP raises an internal diagnostic report | {"jsonrpc":"2.0","method":"org.rdk.player.onAnomaly","params":{"severity":1,"message":"Segment download stalled; retrying"}} |
org.rdk.player.onAdReservationStart | Ad reservation start event | {"jsonrpc":"2.0","method":"org.rdk.player.onAdReservationStart","params":{"adBreakId":"break-001","position":120000}} |
org.rdk.player.onTimedMetadata
|
| {"jsonrpc":"2.0","method":"org.rdk.player.onTimedMetadata","params":{"name":"#EXT-X-CUE","id":"cue-001","timeMilliseconds":5000,"durationMilliSeconds":30000,"content":"/DAlAAAAAA=="}} |
org.rdk.player.onBulkTimedMetadata
|
| {"jsonrpc":"2.0","method":"org.rdk.player.onBulkTimedMetadata","params":{"metadata":"[{\"name\":\"#EXT-X-CUE\",\"time\":5000}]"}} |
org.rdk.player.onSupportedSpeedsChanged
|
| {"jsonrpc":"2.0","method":"org.rdk.player.onSupportedSpeedsChanged","params":{"supportedSpeedCount":13,"supportedSpeeds":[-64,-32,-16,-8,-4,-2,1,2,4,8,16,32,64]}} |
org.rdk.player.onAdResolved
|
| {"jsonrpc":"2.0","method":"org.rdk.player.onAdResolved","params":{"resolveStatus":true,"adId":"ad-001","startMS":60000,"durationMs":30000,"errorCode":"","errorDescription":""}} |
org.rdk.player.onAdPlacementStart
| Ad placement started | {"jsonrpc":"2.0","method":"org.rdk.player.onAdPlacementStart","params":{"adId":"ad-001","position":60000,"offset":0,"duration":30000,"errorCode":0}} |
org.rdk.player.onAdPlacementEnd
| Ad placement ended |
|
org.rdk.player.onAdPlacementError
| Ad placement error |
|
org.rdk.player.onAdPlacementProgress
| Ad placement progress update |
|
org.rdk.player.onID3Metadata
| ID3 tag metadata extracted from stream | {"jsonrpc":"2.0","method":"org.rdk.player.onID3Metadata","params":{"data":"SUQzBAAAAAAAI1RTUFQ=","length":20}} |
org.rdk.player.onDrmMessage
| DRM system message received | {"jsonrpc":"2.0","method":"org.rdk.player.onDrmMessage","params":{"data":"license renewal required"}} |
org.rdk.player.onContentGap
| Content gap detected in stream | {"jsonrpc":"2.0","method":"org.rdk.player.onContentGap","params":{"timeMilliseconds":120000,"durationMilliSeconds":5000}} |
org.rdk.player.onHTTPResponseHeader
| Matched HTTP response header received | {"jsonrpc":"2.0","method":"org.rdk.player.onHTTPResponseHeader","params":{"header":"X-CDN-Provider","response":"Akamai"}} |
org.rdk.player.onContentProtectionDataUpdate
| Content protection key data updated | {"jsonrpc":"2.0","method":"org.rdk.player.onContentProtectionDataUpdate","params":{"keyID":"AAECBA==","streamType":"video"}} |
org.rdk.player.onTuneTimeMetrics
|
| {"jsonrpc":"2.0","method":"org.rdk.player.onTuneTimeMetrics","params":{"tuneMetricData":"{\"latency\":1500,\"fragmentDownloadTime\":200}"}}
|
org.rdk.player.onMonitorAVStatus
|
| {"jsonrpc":"2.0","method":"org.rdk.player.onMonitorAVStatus","params":{"monitorAVStatus":"playing","videoPositionMS":12500,"audioPositionMS":12490,"timeInStateMS":5000,"droppedFrames":0}}
|
org.rdk.player.onMetricsData
|
| {"jsonrpc":"2.0","method":"org.rdk.player.onMetricsData","params":{"type":1,"metricUUID":"550e8400-e29b-41d4-a716-446655440000","data":"{\"latency\":1200}"}} |
org.rdk.player.onCCHandleReceived |
| {"jsonrpc":"2.0","method":"org.rdk.player.onCCHandleReceived","params":{"handle":12345}}
|
Aamp openrpc.json
{
"openrpc": "1.3.2",
"info": {
"title": "AAMP Player JSON-RPC API",
"version": "1.0.0",
"description": "WebSocket-based JSON-RPC 2.0 API for controlling an AAMP media player instance.\n\nEndpoint: ws://<host>:9999\n\nSession lifecycle: openSession -> configureSession (optional) -> playback methods -> closeSession"
},
"servers": [
{
"name": "AAMP Player",
"url": "ws://localhost:9999"
}
],
"components": {
"schemas": {
"PlayerState": {
"title": "PlayerState",
"type": "string",
"description": "AAMP player lifecycle state",
"enum": [
"idle",
"initializing",
"initialized",
"preparing",
"prepared",
"buffering",
"paused",
"seeking",
"playing",
"stopping",
"stopped",
"complete",
"error",
"released",
"blocked"
]
},
"AudioTrack": {
"title": "AudioTrack",
"type": "object",
"required": ["index", "language"],
"properties": {
"index": { "type": "integer", "description": "Zero-based track index" },
"language": { "type": "string", "description": "ISO 639 language code" },
"rendition": { "type": "string", "description": "Rendition label (e.g. main, alternate, commentary)" },
"label": { "type": "string", "description": "Human-readable track label" },
"codec": { "type": "string", "description": "Audio codec identifier (e.g. mp4a.40.2, ec-3)" },
"type": { "type": "string", "description": "Audio type (e.g. AUDIO_STEREO, AUDIO_DOLBY_ATMOS)" },
"channels": { "type": "integer", "description": "Number of audio channels" },
"bitrate": { "type": "integer", "description": "Track bitrate in bps" }
}
},
"TextTrack": {
"title": "TextTrack",
"type": "object",
"required": ["index", "language"],
"properties": {
"index": { "type": "integer", "description": "Zero-based track index" },
"language": { "type": "string", "description": "ISO 639 language code" },
"rendition": { "type": "string", "description": "Rendition label" },
"label": { "type": "string", "description": "Human-readable track label" },
"type": { "type": "string", "description": "Subtitle format (e.g. CLOSED_CAPTIONS, SUBTITLES, WEBVTT, TTML)" }
}
},
"SuccessResult": {
"title": "SuccessResult",
"type": "object",
"required": ["success"],
"properties": {
"success": { "type": "boolean", "enum": [true] }
}
}
}
},
"methods": [
{
"name": "org.rdk.player.openSession",
"summary": "Open a new player session",
"description": "Allocates a player instance and associates it with the calling WebSocket connection. Must be called before any playback or configuration method. Returns a sessionId that is echoed back in all subsequent responses for correlation.",
"tags": [{ "name": "Session Management" }],
"paramStructure": "by-name",
"params": [
{
"name": "sessionId",
"required": false,
"description": "Client-supplied opaque session identifier. If omitted, the server generates a UUID.",
"schema": { "type": "string" }
},
{
"name": "appName",
"required": false,
"description": "Application name included in diagnostics and telemetry (e.g. MyApp).",
"schema": { "type": "string" }
},
{
"name": "traceUUID",
"required": false,
"description": "Correlation UUID forwarded to AAMP diagnostics.",
"schema": { "type": "string", "format": "uuid" }
}
],
"result": {
"name": "openSessionResult",
"schema": {
"type": "object",
"required": ["sessionId", "success"],
"properties": {
"sessionId": { "type": "string", "description": "Confirmed session identifier to use in subsequent calls" },
"success": { "type": "boolean" }
}
}
},
"examples": [
{
"name": "openSessionExample",
"params": [
{ "name": "sessionId", "value": "sess-abc-001" },
{ "name": "appName", "value": "MyStreamingApp" },
{ "name": "traceUUID", "value": "550e8400-e29b-41d4-a716-446655440000" }
],
"result": {
"name": "openSessionResult",
"value": { "sessionId": "sess-abc-001", "success": true }
}
}
]
},
{
"name": "org.rdk.player.configureSession",
"summary": "Apply configuration to an open session",
"description": "Applies AAMP configuration key-value pairs to the session. Must be called after openSession and before tune.",
"tags": [{ "name": "Session Management" }],
"paramStructure": "by-name",
"params": [
{
"name": "sessionId",
"required": true,
"description": "Session identifier returned by openSession.",
"schema": { "type": "string" }
},
{
"name": "config",
"required": true,
"description": "AAMP configuration block as a JSON object or JSON-encoded string.",
"schema": { "oneOf": [{ "type": "object" }, { "type": "string" }] }
}
],
"result": {
"name": "configureSessionResult",
"schema": {
"type": "object",
"required": ["sessionId", "success"],
"properties": {
"sessionId": { "type": "string" },
"success": { "type": "boolean" }
}
}
},
"examples": [
{
"name": "configureSessionExample",
"params": [
{ "name": "sessionId", "value": "sess-abc-001" },
{ "name": "config", "value": { "networkTimeout": 10, "downloadBuffer": 30, "preferredDRM": "widevine", "initialBitrate": 2000000 } }
],
"result": {
"name": "configureSessionResult",
"value": { "sessionId": "sess-abc-001", "success": true }
}
}
]
},
{
"name": "org.rdk.player.closeSession",
"summary": "Close and release a player session",
"description": "Stops any active playback, releases decoder and DRM resources, and destroys the session. After this call the sessionId is invalid. The WebSocket connection itself is not closed.",
"tags": [{ "name": "Session Management" }],
"paramStructure": "by-name",
"params": [
{
"name": "sessionId",
"required": true,
"description": "Session identifier returned by openSession.",
"schema": { "type": "string" }
}
],
"result": {
"name": "closeSessionResult",
"schema": {
"type": "object",
"required": ["sessionId", "success"],
"properties": {
"sessionId": { "type": "string" },
"success": { "type": "boolean" }
}
}
},
"examples": [
{
"name": "closeSessionExample",
"params": [{ "name": "sessionId", "value": "sess-abc-001" }],
"result": {
"name": "closeSessionResult",
"value": { "sessionId": "sess-abc-001", "success": true }
}
}
]
},
{
"name": "org.rdk.player.tune",
"summary": "Start playback of a media stream",
"description": "Instructs the AAMP player to tune to the given URL. Optionally auto-starts playback and accepts a content type hint and trace UUID for diagnostics.",
"tags": [{ "name": "Playback Control" }],
"paramStructure": "by-name",
"params": [
{
"name": "url",
"required": true,
"description": "Media manifest URL (HLS, DASH, progressive MP4, etc.)",
"schema": { "type": "string", "format": "uri" }
},
{
"name": "autoPlay",
"required": false,
"description": "Start playback immediately after buffering.",
"schema": { "type": "boolean", "default": true }
},
{
"name": "contentType",
"required": false,
"description": "Stream type hint.",
"schema": {
"type": "string",
"enum": ["VOD", "LIVE", "LINEAR_TV", "IVOD", "EAS", "DVR", "CDVR", "IPVideo", "OTT", "SLE"]
}
},
{
"name": "traceUUID",
"required": false,
"description": "Correlation UUID forwarded to AAMP diagnostics and telemetry.",
"schema": { "type": "string", "format": "uuid" }
}
],
"result": {
"name": "tuneResult",
"schema": { "$ref": "#/components/schemas/SuccessResult" }
},
"examples": [
{
"name": "tuneExample",
"params": [
{ "name": "url", "value": "https://dash.akamaized.net/akamai/bbb_30fps/bbb_30fps.mpd" },
{ "name": "autoPlay", "value": true },
{ "name": "contentType", "value": "VOD" }
],
"result": { "name": "tuneResult", "value": { "success": true } }
}
]
},
{
"name": "org.rdk.player.stop",
"summary": "Stop playback",
"description": "Stops the current playback and releases decoder resources. The player returns to the idle state.",
"tags": [{ "name": "Playback Control" }],
"params": [],
"result": {
"name": "stopResult",
"schema": { "$ref": "#/components/schemas/SuccessResult" }
},
"examples": [
{
"name": "stopExample",
"params": [],
"result": { "name": "stopResult", "value": { "success": true } }
}
]
},
{
"name": "org.rdk.player.seek",
"summary": "Seek to a position",
"description": "Seeks to an absolute position in the stream (in seconds from the start). For live streams, position is relative to the live edge.",
"tags": [{ "name": "Playback Control" }],
"paramStructure": "by-name",
"params": [
{
"name": "position",
"required": true,
"description": "Target seek position in seconds (>= 0).",
"schema": { "type": "number", "minimum": 0 }
},
{
"name": "keepPaused",
"required": false,
"description": "If true, the player remains paused after seeking.",
"schema": { "type": "boolean", "default": false }
}
],
"result": {
"name": "seekResult",
"schema": { "$ref": "#/components/schemas/SuccessResult" }
},
"examples": [
{
"name": "seekExample",
"params": [
{ "name": "position", "value": 120.0 },
{ "name": "keepPaused", "value": false }
],
"result": { "name": "seekResult", "value": { "success": true } }
}
]
},
{
"name": "org.rdk.player.seekToLive",
"summary": "Seek to the live edge",
"description": "Moves playback to the current live edge of a live or time-shifted stream.",
"tags": [{ "name": "Playback Control" }],
"paramStructure": "by-name",
"params": [
{
"name": "keepPaused",
"required": false,
"description": "If true, the player remains paused after seeking to live.",
"schema": { "type": "boolean", "default": false }
}
],
"result": {
"name": "seekToLiveResult",
"schema": { "$ref": "#/components/schemas/SuccessResult" }
},
"examples": [
{
"name": "seekToLiveExample",
"params": [{ "name": "keepPaused", "value": false }],
"result": { "name": "seekToLiveResult", "value": { "success": true } }
}
]
},
{
"name": "org.rdk.player.setRate",
"summary": "Set playback rate / trick-play speed",
"description": "Sets the playback rate for trick-play. Rate 1=normal, 0=pause, 2=2x fast-forward, -2=2x rewind.",
"tags": [{ "name": "Playback Control" }],
"paramStructure": "by-name",
"params": [
{
"name": "rate",
"required": true,
"description": "Playback rate multiplier.",
"schema": { "type": "number" }
},
{
"name": "overshootCorrection",
"required": false,
"description": "Overshoot correction offset in milliseconds applied during trick play.",
"schema": { "type": "integer", "default": 0 }
}
],
"result": {
"name": "setRateResult",
"schema": { "$ref": "#/components/schemas/SuccessResult" }
},
"examples": [
{
"name": "setRateExample",
"params": [
{ "name": "rate", "value": 2 },
{ "name": "overshootCorrection","value": 0 }
],
"result": { "name": "setRateResult", "value": { "success": true } }
}
]
},
{
"name": "org.rdk.player.setPlaybackSpeed",
"summary": "Set playback speed",
"description": "Sets the playback speed directly (equivalent to setRate without the overshoot correction option).",
"tags": [{ "name": "Playback Control" }],
"paramStructure": "by-name",
"params": [
{
"name": "speed",
"required": true,
"description": "Playback speed multiplier (e.g. 1.0, 0.5, 2.0).",
"schema": { "type": "number" }
}
],
"result": {
"name": "setPlaybackSpeedResult",
"schema": { "$ref": "#/components/schemas/SuccessResult" }
},
"examples": [
{
"name": "setPlaybackSpeedExample",
"params": [{ "name": "speed", "value": 0.5 }],
"result": { "name": "setPlaybackSpeedResult", "value": { "success": true } }
}
]
},
{
"name": "org.rdk.player.pauseAt",
"summary": "Schedule a pause at a future position",
"description": "Requests the player to automatically pause when playback reaches the specified position. Pass a negative value to cancel a previously scheduled pause.",
"tags": [{ "name": "Playback Control" }],
"paramStructure": "by-name",
"params": [
{
"name": "position",
"required": true,
"description": "Position in seconds at which to pause. Pass a negative value to cancel.",
"schema": { "type": "number" }
}
],
"result": {
"name": "pauseAtResult",
"schema": { "$ref": "#/components/schemas/SuccessResult" }
},
"examples": [
{
"name": "pauseAtExample",
"params": [{ "name": "position", "value": 300.0 }],
"result": { "name": "pauseAtResult", "value": { "success": true } }
}
]
},
{
"name": "org.rdk.player.setRateAndSeek",
"summary": "Atomically set rate and seek",
"description": "Combines a rate change and a seek into a single atomic operation, avoiding the visual glitch that can occur when calling them separately.",
"tags": [{ "name": "Playback Control" }],
"paramStructure": "by-name",
"params": [
{
"name": "rate",
"required": true,
"description": "Target playback rate (e.g. 1, -2, 4).",
"schema": { "type": "integer" }
},
{
"name": "position",
"required": true,
"description": "Target position in seconds (>= 0).",
"schema": { "type": "number", "minimum": 0 }
}
],
"result": {
"name": "setRateAndSeekResult",
"schema": { "$ref": "#/components/schemas/SuccessResult" }
},
"examples": [
{
"name": "setRateAndSeekExample",
"params": [
{ "name": "rate", "value": 1 },
{ "name": "position", "value": 60.0 }
],
"result": { "name": "setRateAndSeekResult", "value": { "success": true } }
}
]
},
{
"name": "org.rdk.player.getState",
"summary": "Get current player state",
"description": "Returns the current lifecycle state of the AAMP player instance.",
"tags": [{ "name": "Playback State" }],
"params": [],
"result": {
"name": "getStateResult",
"schema": {
"type": "object",
"required": ["state"],
"properties": {
"state": { "$ref": "#/components/schemas/PlayerState" }
}
}
},
"examples": [
{
"name": "getStateExample",
"params": [],
"result": { "name": "getStateResult", "value": { "state": "playing" } }
}
]
},
{
"name": "org.rdk.player.getPlaybackPosition",
"summary": "Get current playback position",
"tags": [{ "name": "Playback State" }],
"params": [],
"result": {
"name": "getPlaybackPositionResult",
"schema": {
"type": "object",
"required": ["position"],
"properties": {
"position": { "type": "number", "description": "Current playback position in seconds" }
}
}
},
"examples": [
{
"name": "getPlaybackPositionExample",
"params": [],
"result": { "name": "getPlaybackPositionResult", "value": { "position": 120.5 } }
}
]
},
{
"name": "org.rdk.player.getPlaybackDuration",
"summary": "Get total stream duration",
"description": "Returns -1 for live streams without a known duration.",
"tags": [{ "name": "Playback State" }],
"params": [],
"result": {
"name": "getPlaybackDurationResult",
"schema": {
"type": "object",
"required": ["duration"],
"properties": {
"duration": { "type": "number", "description": "Total stream duration in seconds; -1 for unbounded live streams" }
}
}
},
"examples": [
{
"name": "getPlaybackDurationExample",
"params": [],
"result": { "name": "getPlaybackDurationResult", "value": { "duration": 3600.0 } }
}
]
},
{
"name": "org.rdk.player.getPlaybackRate",
"summary": "Get current playback rate",
"tags": [{ "name": "Playback State" }],
"params": [],
"result": {
"name": "getPlaybackRateResult",
"schema": {
"type": "object",
"required": ["rate"],
"properties": {
"rate": { "type": "number", "description": "Current playback rate multiplier (1.0 = normal, 0 = paused)" }
}
}
},
"examples": [
{
"name": "getPlaybackRateExample",
"params": [],
"result": { "name": "getPlaybackRateResult", "value": { "rate": 1.0 } }
}
]
},
{
"name": "org.rdk.player.isLive",
"summary": "Check if stream is live",
"tags": [{ "name": "Playback State" }],
"params": [],
"result": {
"name": "isLiveResult",
"schema": {
"type": "object",
"required": ["isLive"],
"properties": {
"isLive": { "type": "boolean", "description": "true if the current stream is a live broadcast" }
}
}
},
"examples": [
{
"name": "isLiveExample",
"params": [],
"result": { "name": "isLiveResult", "value": { "isLive": false } }
}
]
},
{
"name": "org.rdk.player.setVideoMute",
"summary": "Mute or unmute the video plane",
"description": "Blanks (mutes) or restores the video plane without affecting audio.",
"tags": [{ "name": "Video" }],
"paramStructure": "by-name",
"params": [
{
"name": "muted",
"required": true,
"description": "true to blank the video plane; false to restore it.",
"schema": { "type": "boolean" }
}
],
"result": {
"name": "setVideoMuteResult",
"schema": { "$ref": "#/components/schemas/SuccessResult" }
},
"examples": [
{
"name": "setVideoMuteExample",
"params": [{ "name": "muted", "value": true }],
"result": { "name": "setVideoMuteResult", "value": { "success": true } }
}
]
},
{
"name": "org.rdk.player.getVideoMute",
"summary": "Get video mute state",
"tags": [{ "name": "Video" }],
"params": [],
"result": {
"name": "getVideoMuteResult",
"schema": {
"type": "object",
"required": ["muted"],
"properties": {
"muted": { "type": "boolean", "description": "true if the video plane is currently muted (blanked)" }
}
}
},
"examples": [
{
"name": "getVideoMuteExample",
"params": [],
"result": { "name": "getVideoMuteResult", "value": { "muted": false } }
}
]
},
{
"name": "org.rdk.player.setAudioVolume",
"summary": "Set audio volume",
"tags": [{ "name": "Audio" }],
"paramStructure": "by-name",
"params": [
{
"name": "volume",
"required": true,
"description": "Volume level from 0 (muted) to 100 (maximum).",
"schema": { "type": "integer", "minimum": 0, "maximum": 100 }
}
],
"result": {
"name": "setAudioVolumeResult",
"schema": { "$ref": "#/components/schemas/SuccessResult" }
},
"examples": [
{
"name": "setAudioVolumeExample",
"params": [{ "name": "volume", "value": 80 }],
"result": { "name": "setAudioVolumeResult", "value": { "success": true } }
}
]
},
{
"name": "org.rdk.player.getAudioVolume",
"summary": "Get audio volume",
"tags": [{ "name": "Audio" }],
"params": [],
"result": {
"name": "getAudioVolumeResult",
"schema": {
"type": "object",
"required": ["volume"],
"properties": {
"volume": { "type": "integer", "description": "Current volume level (0-100)" }
}
}
},
"examples": [
{
"name": "getAudioVolumeExample",
"params": [],
"result": { "name": "getAudioVolumeResult", "value": { "volume": 80 } }
}
]
},
{
"name": "org.rdk.player.getAudioLanguage",
"summary": "Get currently active audio language",
"tags": [{ "name": "Audio" }],
"params": [],
"result": {
"name": "getAudioLanguageResult",
"schema": {
"type": "object",
"required": ["language"],
"properties": {
"language": { "type": "string", "description": "ISO 639 language code of the active audio track (e.g. en)" }
}
}
},
"examples": [
{
"name": "getAudioLanguageExample",
"params": [],
"result": { "name": "getAudioLanguageResult", "value": { "language": "en" } }
}
]
},
{
"name": "org.rdk.player.getAvailableAudioTracks",
"summary": "List available audio tracks",
"description": "Returns all audio tracks present in the current manifest.",
"tags": [{ "name": "Audio" }],
"paramStructure": "by-name",
"params": [
{
"name": "allTracks",
"required": false,
"description": "true to include tracks from all DASH periods, not just the current one.",
"schema": { "type": "boolean", "default": false }
}
],
"result": {
"name": "getAvailableAudioTracksResult",
"schema": {
"type": "object",
"required": ["tracks"],
"properties": {
"tracks": {
"type": "array",
"items": { "$ref": "#/components/schemas/AudioTrack" },
"description": "Array of available audio track descriptors"
}
}
}
},
"examples": [
{
"name": "getAvailableAudioTracksExample",
"params": [{ "name": "allTracks", "value": false }],
"result": {
"name": "getAvailableAudioTracksResult",
"value": {
"tracks": [
{ "index": 0, "language": "en", "rendition": "main", "label": "English", "codec": "mp4a.40.2", "type": "AUDIO_STEREO", "channels": 2, "bitrate": 128000 },
{ "index": 1, "language": "fra", "rendition": "main", "label": "French", "codec": "mp4a.40.2", "type": "AUDIO_STEREO", "channels": 2, "bitrate": 128000 }
]
}
}
}
]
},
{
"name": "org.rdk.player.setAudioTrack",
"summary": "Select an audio track by index",
"description": "Switches to the audio track at the specified index from getAvailableAudioTracks.",
"tags": [{ "name": "Audio" }],
"paramStructure": "by-name",
"params": [
{
"name": "trackId",
"required": true,
"description": "Zero-based index of the target audio track (>= 0).",
"schema": { "type": "integer", "minimum": 0 }
}
],
"result": {
"name": "setAudioTrackResult",
"schema": { "$ref": "#/components/schemas/SuccessResult" }
},
"examples": [
{
"name": "setAudioTrackExample",
"params": [{ "name": "trackId", "value": 1 }],
"result": { "name": "setAudioTrackResult", "value": { "success": true } }
}
]
},
{
"name": "org.rdk.player.getAudioTrack",
"summary": "Get index of active audio track",
"tags": [{ "name": "Audio" }],
"params": [],
"result": {
"name": "getAudioTrackResult",
"schema": {
"type": "object",
"required": ["trackId"],
"properties": {
"trackId": { "type": "integer", "description": "Zero-based index of the currently active audio track" }
}
}
},
"examples": [
{
"name": "getAudioTrackExample",
"params": [],
"result": { "name": "getAudioTrackResult", "value": { "trackId": 0 } }
}
]
},
{
"name": "org.rdk.player.getAudioTrackInfo",
"summary": "Get details of active audio track",
"tags": [{ "name": "Audio" }],
"params": [],
"result": {
"name": "getAudioTrackInfoResult",
"schema": {
"type": "object",
"required": ["trackInfo"],
"properties": {
"trackInfo": { "$ref": "#/components/schemas/AudioTrack" }
}
}
},
"examples": [
{
"name": "getAudioTrackInfoExample",
"params": [],
"result": {
"name": "getAudioTrackInfoResult",
"value": {
"trackInfo": { "index": 0, "language": "en", "rendition": "main", "label": "English", "codec": "mp4a.40.2", "type": "AUDIO_STEREO", "channels": 2, "bitrate": 128000 }
}
}
}
]
},
{
"name": "org.rdk.player.setSubtitleMute",
"summary": "Mute or unmute subtitles",
"description": "Enables or suppresses subtitle rendering without changing the active text track selection.",
"tags": [{ "name": "Subtitles" }],
"paramStructure": "by-name",
"params": [
{
"name": "muted",
"required": true,
"description": "true to hide subtitles; false to show them.",
"schema": { "type": "boolean" }
}
],
"result": {
"name": "setSubtitleMuteResult",
"schema": { "$ref": "#/components/schemas/SuccessResult" }
},
"examples": [
{
"name": "setSubtitleMuteExample",
"params": [{ "name": "muted", "value": true }],
"result": { "name": "setSubtitleMuteResult", "value": { "success": true } }
}
]
},
{
"name": "org.rdk.player.getAvailableTextTracks",
"summary": "List available text/subtitle tracks",
"tags": [{ "name": "Subtitles" }],
"paramStructure": "by-name",
"params": [
{
"name": "allTracks",
"required": false,
"description": "true to include tracks from all DASH periods.",
"schema": { "type": "boolean", "default": false }
}
],
"result": {
"name": "getAvailableTextTracksResult",
"schema": {
"type": "object",
"required": ["tracks"],
"properties": {
"tracks": {
"type": "array",
"items": { "$ref": "#/components/schemas/TextTrack" }
}
}
}
},
"examples": [
{
"name": "getAvailableTextTracksExample",
"params": [{ "name": "allTracks", "value": false }],
"result": {
"name": "getAvailableTextTracksResult",
"value": {
"tracks": [
{ "index": 0, "language": "en", "rendition": "main", "label": "English", "type": "SUBTITLES" },
{ "index": 1, "language": "spa", "rendition": "main", "label": "Spanish", "type": "SUBTITLES" }
]
}
}
}
]
},
{
"name": "org.rdk.player.setTextTrack",
"summary": "Select a text track by index",
"tags": [{ "name": "Subtitles" }],
"paramStructure": "by-name",
"params": [
{
"name": "trackId",
"required": true,
"description": "Zero-based index of the target text track (>= 0).",
"schema": { "type": "integer", "minimum": 0 }
}
],
"result": {
"name": "setTextTrackResult",
"schema": { "$ref": "#/components/schemas/SuccessResult" }
},
"examples": [
{
"name": "setTextTrackExample",
"params": [{ "name": "trackId", "value": 0 }],
"result": { "name": "setTextTrackResult", "value": { "success": true } }
}
]
},
{
"name": "org.rdk.player.getTextTrack",
"summary": "Get index of active text track",
"tags": [{ "name": "Subtitles" }],
"params": [],
"result": {
"name": "getTextTrackResult",
"schema": {
"type": "object",
"required": ["trackId"],
"properties": {
"trackId": { "type": "integer", "description": "Zero-based index of the currently active text track" }
}
}
},
"examples": [
{
"name": "getTextTrackExample",
"params": [],
"result": { "name": "getTextTrackResult", "value": { "trackId": 0 } }
}
]
},
{
"name": "org.rdk.player.getVideoBitrate",
"summary": "Get current video bitrate",
"tags": [{ "name": "Bitrate / ABR" }],
"params": [],
"result": {
"name": "getVideoBitrateResult",
"schema": {
"type": "object",
"required": ["bitrate"],
"properties": {
"bitrate": { "type": "integer", "description": "Current video bitrate in bits per second" }
}
}
},
"examples": [
{
"name": "getVideoBitrateExample",
"params": [],
"result": { "name": "getVideoBitrateResult", "value": { "bitrate": 4000000 } }
}
]
},
{
"name": "org.rdk.player.setVideoBitrate",
"summary": "Lock the video bitrate",
"description": "Pins ABR to the profile closest to the specified bitrate. Pass 0 to re-enable automatic ABR.",
"tags": [{ "name": "Bitrate / ABR" }],
"paramStructure": "by-name",
"params": [
{
"name": "bitrate",
"required": true,
"description": "Target bitrate in bps; 0 restores automatic ABR.",
"schema": { "type": "integer", "minimum": 0 }
}
],
"result": {
"name": "setVideoBitrateResult",
"schema": { "$ref": "#/components/schemas/SuccessResult" }
},
"examples": [
{
"name": "setVideoBitrateExample",
"params": [{ "name": "bitrate", "value": 2000000 }],
"result": { "name": "setVideoBitrateResult", "value": { "success": true } }
}
]
},
{
"name": "org.rdk.player.getVideoBitrates",
"summary": "List all available video bitrates",
"tags": [{ "name": "Bitrate / ABR" }],
"params": [],
"result": {
"name": "getVideoBitratesResult",
"schema": {
"type": "object",
"required": ["bitrates"],
"properties": {
"bitrates": {
"type": "array",
"items": { "type": "integer" },
"description": "Available video bitrates in bps, ascending order"
}
}
}
},
"examples": [
{
"name": "getVideoBitratesExample",
"params": [],
"result": { "name": "getVideoBitratesResult", "value": { "bitrates": [800000, 2000000, 4000000, 8000000] } }
}
]
},
{
"name": "org.rdk.player.setInitialBitrate",
"summary": "Set the startup bitrate hint",
"description": "Hints to AAMP which bitrate profile to select at the start of the next tune. ABR may switch away after the initial segments are downloaded.",
"tags": [{ "name": "Bitrate / ABR" }],
"paramStructure": "by-name",
"params": [
{
"name": "bitrate",
"required": true,
"description": "Desired startup bitrate in bps.",
"schema": { "type": "integer", "minimum": 0 }
}
],
"result": {
"name": "setInitialBitrateResult",
"schema": { "$ref": "#/components/schemas/SuccessResult" }
},
"examples": [
{
"name": "setInitialBitrateExample",
"params": [{ "name": "bitrate", "value": 2000000 }],
"result": { "name": "setInitialBitrateResult", "value": { "success": true } }
}
]
},
{
"name": "org.rdk.player.getInitialBitrate",
"summary": "Get the startup bitrate hint",
"tags": [{ "name": "Bitrate / ABR" }],
"params": [],
"result": {
"name": "getInitialBitrateResult",
"schema": {
"type": "object",
"required": ["bitrate"],
"properties": {
"bitrate": { "type": "integer", "description": "Configured startup bitrate in bps" }
}
}
},
"examples": [
{
"name": "getInitialBitrateExample",
"params": [],
"result": { "name": "getInitialBitrateResult", "value": { "bitrate": 2000000 } }
}
]
},
{
"name": "org.rdk.player.setMinimumBitrate",
"summary": "Set the ABR minimum bitrate floor",
"description": "Prevents AAMP from selecting any video profile below this bitrate during adaptive bitrate switching.",
"tags": [{ "name": "Bitrate / ABR" }],
"paramStructure": "by-name",
"params": [
{
"name": "bitrate",
"required": true,
"description": "Minimum allowed bitrate in bps.",
"schema": { "type": "integer", "minimum": 0 }
}
],
"result": {
"name": "setMinimumBitrateResult",
"schema": { "$ref": "#/components/schemas/SuccessResult" }
},
"examples": [
{
"name": "setMinimumBitrateExample",
"params": [{ "name": "bitrate", "value": 800000 }],
"result": { "name": "setMinimumBitrateResult", "value": { "success": true } }
}
]
},
{
"name": "org.rdk.player.getMinimumBitrate",
"summary": "Get the ABR minimum bitrate floor",
"tags": [{ "name": "Bitrate / ABR" }],
"params": [],
"result": {
"name": "getMinimumBitrateResult",
"schema": {
"type": "object",
"required": ["bitrate"],
"properties": {
"bitrate": { "type": "integer", "description": "Configured minimum ABR bitrate in bps" }
}
}
},
"examples": [
{
"name": "getMinimumBitrateExample",
"params": [],
"result": { "name": "getMinimumBitrateResult", "value": { "bitrate": 800000 } }
}
]
},
{
"name": "org.rdk.player.setMaximumBitrate",
"summary": "Set the ABR maximum bitrate ceiling",
"description": "Prevents AAMP from selecting any video profile above this bitrate during adaptive bitrate switching.",
"tags": [{ "name": "Bitrate / ABR" }],
"paramStructure": "by-name",
"params": [
{
"name": "bitrate",
"required": true,
"description": "Maximum allowed bitrate in bps.",
"schema": { "type": "integer", "minimum": 0 }
}
],
"result": {
"name": "setMaximumBitrateResult",
"schema": { "$ref": "#/components/schemas/SuccessResult" }
},
"examples": [
{
"name": "setMaximumBitrateExample",
"params": [{ "name": "bitrate", "value": 8000000 }],
"result": { "name": "setMaximumBitrateResult", "value": { "success": true } }
}
]
},
{
"name": "org.rdk.player.getMaximumBitrate",
"summary": "Get the ABR maximum bitrate ceiling",
"tags": [{ "name": "Bitrate / ABR" }],
"params": [],
"result": {
"name": "getMaximumBitrateResult",
"schema": {
"type": "object",
"required": ["bitrate"],
"properties": {
"bitrate": { "type": "integer", "description": "Configured maximum ABR bitrate in bps" }
}
}
},
"examples": [
{
"name": "getMaximumBitrateExample",
"params": [],
"result": { "name": "getMaximumBitrateResult", "value": { "bitrate": 8000000 } }
}
]
},
{
"name": "org.rdk.player.setLicenseServerURL",
"summary": "Set the DRM license server URL",
"description": "Overrides the license server URL for the active DRM system. Can be used to redirect license requests to a proxy.",
"tags": [{ "name": "DRM" }],
"paramStructure": "by-name",
"params": [
{
"name": "url",
"required": true,
"description": "License server URL (e.g. https://license.example.com/widevine).",
"schema": { "type": "string", "format": "uri" }
}
],
"result": {
"name": "setLicenseServerURLResult",
"schema": { "$ref": "#/components/schemas/SuccessResult" }
},
"examples": [
{
"name": "setLicenseServerURLExample",
"params": [{ "name": "url", "value": "https://license.example.com/widevine" }],
"result": { "name": "setLicenseServerURLResult", "value": { "success": true } }
}
]
},
{
"name": "org.rdk.player.getDRM",
"summary": "Get active DRM system",
"tags": [{ "name": "DRM" }],
"params": [],
"result": {
"name": "getDRMResult",
"schema": {
"type": "object",
"required": ["drm"],
"properties": {
"drm": {
"type": "string",
"description": "Name of the active DRM system",
"enum": ["widevine", "playready", "clearkey", "none"]
}
}
}
},
"examples": [
{
"name": "getDRMExample",
"params": [],
"result": { "name": "getDRMResult", "value": { "drm": "widevine" } }
}
]
},
{
"name": "org.rdk.player.setPreferredDRM",
"summary": "Set the preferred DRM system",
"description": "Tells AAMP which DRM system to prefer when multiple are available in the manifest.",
"tags": [{ "name": "DRM" }],
"paramStructure": "by-name",
"params": [
{
"name": "drmType",
"required": true,
"description": "DRM identifier.",
"schema": { "type": "string", "enum": ["widevine", "playready", "clearkey"] }
}
],
"result": {
"name": "setPreferredDRMResult",
"schema": { "$ref": "#/components/schemas/SuccessResult" }
},
"examples": [
{
"name": "setPreferredDRMExample",
"params": [{ "name": "drmType", "value": "widevine" }],
"result": { "name": "setPreferredDRMResult", "value": { "success": true } }
}
]
},
{
"name": "org.rdk.player.getAAMPConfig",
"summary": "Get current AAMP configuration",
"tags": [{ "name": "Configuration" }],
"params": [],
"result": {
"name": "getAAMPConfigResult",
"schema": {
"type": "object",
"required": ["config"],
"properties": {
"config": { "type": "object", "description": "Complete current AAMP configuration as a JSON object" }
}
}
},
"examples": [
{
"name": "getAAMPConfigExample",
"params": [],
"result": { "name": "getAAMPConfigResult", "value": { "config": { "networkTimeout": 10, "downloadBuffer": 30 } } }
}
]
},
{
"name": "org.rdk.player.setAppName",
"summary": "Set the application name",
"description": "Sets a human-readable application name included in AAMP diagnostic logs and telemetry.",
"tags": [{ "name": "Configuration" }],
"paramStructure": "by-name",
"params": [
{
"name": "name",
"required": true,
"description": "Application name (e.g. MyStreamingApp).",
"schema": { "type": "string" }
}
],
"result": {
"name": "setAppNameResult",
"schema": { "$ref": "#/components/schemas/SuccessResult" }
},
"examples": [
{
"name": "setAppNameExample",
"params": [{ "name": "name", "value": "MyStreamingApp" }],
"result": { "name": "setAppNameResult", "value": { "success": true } }
}
]
},
{
"name": "org.rdk.player.setPreferredLanguages",
"summary": "Set preferred audio/text language preferences",
"description": "Configures fine-grained language selection. All parameters are optional; omit to leave that dimension unchanged.",
"tags": [{ "name": "Configuration" }],
"paramStructure": "by-name",
"params": [
{
"name": "languageList",
"required": false,
"description": "Comma-separated ISO 639 language codes in priority order (e.g. en,fra,spa).",
"schema": { "type": "string" }
},
{
"name": "rendition",
"required": false,
"description": "Preferred rendition label (e.g. main, alternate).",
"schema": { "type": "string" }
},
{
"name": "type",
"required": false,
"description": "Preferred audio type (e.g. AUDIO_DOLBY_ATMOS, AUDIO_STEREO).",
"schema": { "type": "string" }
},
{
"name": "codecList",
"required": false,
"description": "Comma-separated preferred audio codecs (e.g. ec-3,mp4a).",
"schema": { "type": "string" }
},
{
"name": "labelList",
"required": false,
"description": "Comma-separated preferred HLS GROUP-ID or DASH label values.",
"schema": { "type": "string" }
}
],
"result": {
"name": "setPreferredLanguagesResult",
"schema": { "$ref": "#/components/schemas/SuccessResult" }
},
"examples": [
{
"name": "setPreferredLanguagesExample",
"params": [
{ "name": "languageList", "value": "en,fra,spa" },
{ "name": "rendition", "value": "main" },
{ "name": "type", "value": "AUDIO_STEREO" },
{ "name": "codecList", "value": "mp4a.40.2" }
],
"result": { "name": "setPreferredLanguagesResult", "value": { "success": true } }
}
]
},
{
"name": "org.rdk.player.getPreferredLanguages",
"summary": "Get the preferred language list",
"tags": [{ "name": "Configuration" }],
"params": [],
"result": {
"name": "getPreferredLanguagesResult",
"schema": {
"type": "object",
"required": ["languageList"],
"properties": {
"languageList": { "type": "string", "description": "Comma-separated ISO 639 language codes in preference order" }
}
}
},
"examples": [
{
"name": "getPreferredLanguagesExample",
"params": [],
"result": { "name": "getPreferredLanguagesResult", "value": { "languageList": "en,fra" } }
}
]
},
{
"name": "org.rdk.player.subscribe",
"summary": "Subscribe to server-pushed event notifications",
"description": "After subscribing, the server pushes matching events as JSON-RPC notifications (no id field). Use * to subscribe to all events.",
"tags": [{ "name": "Event Subscription" }],
"paramStructure": "by-name",
"params": [
{
"name": "event",
"required": true,
"description": "Event name (e.g. org.rdk.player.onProgress) or * for all events.",
"schema": { "type": "string" }
}
],
"result": {
"name": "subscribeResult",
"schema": { "$ref": "#/components/schemas/SuccessResult" }
},
"examples": [
{
"name": "subscribeExample",
"params": [{ "name": "event", "value": "org.rdk.player.onProgress" }],
"result": { "name": "subscribeResult", "value": { "success": true } }
}
]
},
{
"name": "org.rdk.player.unsubscribe",
"summary": "Unsubscribe from event notifications",
"tags": [{ "name": "Event Subscription" }],
"paramStructure": "by-name",
"params": [
{
"name": "event",
"required": true,
"description": "Event name to unsubscribe from.",
"schema": { "type": "string" }
}
],
"result": {
"name": "unsubscribeResult",
"schema": { "$ref": "#/components/schemas/SuccessResult" }
},
"examples": [
{
"name": "unsubscribeExample",
"params": [{ "name": "event", "value": "org.rdk.player.onProgress" }],
"result": { "name": "unsubscribeResult", "value": { "success": true } }
}
]
},
{
"name": "org.rdk.player.getSubscriptions",
"summary": "List active event subscriptions",
"tags": [{ "name": "Event Subscription" }],
"params": [],
"result": {
"name": "getSubscriptionsResult",
"schema": {
"type": "object",
"required": ["subscriptions"],
"properties": {
"subscriptions": {
"type": "array",
"items": { "type": "string" },
"description": "Event names currently active for this client"
}
}
}
},
"examples": [
{
"name": "getSubscriptionsExample",
"params": [],
"result": {
"name": "getSubscriptionsResult",
"value": { "subscriptions": ["org.rdk.player.onProgress", "org.rdk.player.onStateChanged"] }
}
}
]
},
{
"name": "org.rdk.player.onTuned",
"summary": "Tune succeeded and playback is ready",
"tags": [{ "name": "Notifications" }],
"x-server-notification": true,
"params": [],
"result": {
"name": "onTunedParams",
"schema": { "type": "object" }
}
},
{
"name": "org.rdk.player.onTuneFailed",
"summary": "Tune failed",
"tags": [{ "name": "Notifications" }],
"x-server-notification": true,
"params": [
{ "name": "description", "schema": { "type": "string", "description": "Human-readable error description" } },
{ "name": "code", "schema": { "type": "integer", "description": "AAMP internal error code" } },
{ "name": "shouldRetry", "schema": { "type": "boolean", "description": "true if the application should retry the tune" } }
],
"result": {
"name": "onTuneFailedParams",
"schema": {
"type": "object",
"properties": {
"description": { "type": "string" },
"code": { "type": "integer" },
"shouldRetry": { "type": "boolean" }
}
}
}
},
{
"name": "org.rdk.player.onStateChanged",
"summary": "Player lifecycle state transition",
"tags": [{ "name": "Notifications" }],
"x-server-notification": true,
"params": [
{ "name": "state", "schema": { "$ref": "#/components/schemas/PlayerState" } }
],
"result": {
"name": "onStateChangedParams",
"schema": {
"type": "object",
"properties": { "state": { "$ref": "#/components/schemas/PlayerState" } }
}
}
},
{
"name": "org.rdk.player.onProgress",
"summary": "Periodic playback heartbeat (~1 s interval)",
"tags": [{ "name": "Notifications" }],
"x-server-notification": true,
"params": [
{ "name": "positionMs", "schema": { "type": "number", "description": "Current playback position in milliseconds" } },
{ "name": "durationMs", "schema": { "type": "number", "description": "Total stream duration in ms; -1 for unbounded live" } },
{ "name": "speed", "schema": { "type": "number", "description": "Current playback speed multiplier" } },
{ "name": "startMs", "schema": { "type": "number", "description": "Start of the seekable window in milliseconds" } },
{ "name": "endMs", "schema": { "type": "number", "description": "End of the seekable window in milliseconds" } },
{ "name": "videoBufferedMs","schema": { "type": "number", "description": "Video data buffered ahead of current position in ms" } },
{ "name": "audioBufferedMs","schema": { "type": "number", "description": "Audio data buffered ahead of current position in ms" } },
{ "name": "liveLatencyMs", "schema": { "type": "number", "description": "Distance from the live edge in ms; 0 for VOD" } },
{ "name": "profileBitrate", "schema": { "type": "integer", "description": "Bitrate of the selected video profile in bps" } },
{ "name": "networkBitrate", "schema": { "type": "integer", "description": "Estimated download throughput in bps" } }
],
"result": {
"name": "onProgressParams",
"schema": {
"type": "object",
"properties": {
"positionMs": { "type": "number" },
"durationMs": { "type": "number" },
"speed": { "type": "number" },
"startMs": { "type": "number" },
"endMs": { "type": "number" },
"videoBufferedMs":{ "type": "number" },
"audioBufferedMs":{ "type": "number" },
"liveLatencyMs": { "type": "number" },
"profileBitrate": { "type": "integer" },
"networkBitrate": { "type": "integer" }
}
}
}
},
{
"name": "org.rdk.player.onEOS",
"summary": "End of stream reached",
"tags": [{ "name": "Notifications" }],
"x-server-notification": true,
"params": [],
"result": { "name": "onEOSParams", "schema": { "type": "object" } }
},
{
"name": "org.rdk.player.onSpeedChanged",
"summary": "Effective playback speed changed",
"tags": [{ "name": "Notifications" }],
"x-server-notification": true,
"params": [
{ "name": "speed", "schema": { "type": "number", "description": "New playback speed multiplier" } }
],
"result": {
"name": "onSpeedChangedParams",
"schema": { "type": "object", "properties": { "speed": { "type": "number" } } }
}
},
{
"name": "org.rdk.player.onBufferingChanged",
"summary": "Player entered or exited a buffering state",
"tags": [{ "name": "Notifications" }],
"x-server-notification": true,
"params": [
{ "name": "buffering", "schema": { "type": "boolean", "description": "true when actively buffering; false when buffering is complete" } }
],
"result": {
"name": "onBufferingChangedParams",
"schema": { "type": "object", "properties": { "buffering": { "type": "boolean" } } }
}
},
{
"name": "org.rdk.player.onSeeked",
"summary": "Seek operation completed",
"tags": [{ "name": "Notifications" }],
"x-server-notification": true,
"params": [
{ "name": "positionMs", "schema": { "type": "number", "description": "New playback position in milliseconds after the seek" } }
],
"result": {
"name": "onSeekedParams",
"schema": { "type": "object", "properties": { "positionMs": { "type": "number" } } }
}
},
{
"name": "org.rdk.player.onBitrateChanged",
"summary": "ABR switched to a different video profile",
"tags": [{ "name": "Notifications" }],
"x-server-notification": true,
"params": [
{ "name": "bitrate", "schema": { "type": "integer", "description": "New video bitrate in bps" } },
{ "name": "width", "schema": { "type": "integer", "description": "Horizontal resolution of the new profile in pixels" } },
{ "name": "height", "schema": { "type": "integer", "description": "Vertical resolution of the new profile in pixels" } },
{ "name": "description", "schema": { "type": "string", "description": "Reason for the bitrate change (e.g. NetworkCongestion)" } }
],
"result": {
"name": "onBitrateChangedParams",
"schema": {
"type": "object",
"properties": {
"bitrate": { "type": "integer" },
"width": { "type": "integer" },
"height": { "type": "integer" },
"description": { "type": "string" }
}
}
}
},
{
"name": "org.rdk.player.onMediaMetadata",
"summary": "Stream metadata parsed after tune",
"tags": [{ "name": "Notifications" }],
"x-server-notification": true,
"params": [
{ "name": "durationMs", "schema": { "type": "integer", "description": "Total stream duration in milliseconds" } },
{ "name": "width", "schema": { "type": "integer", "description": "Horizontal resolution of the highest-quality profile" } },
{ "name": "height", "schema": { "type": "integer", "description": "Vertical resolution of the highest-quality profile" } },
{ "name": "hasDrm", "schema": { "type": "boolean", "description": "true if the stream is DRM protected" } },
{ "name": "isLive", "schema": { "type": "boolean", "description": "true if the stream is a live broadcast" } },
{ "name": "drmType", "schema": { "type": "string", "description": "Active DRM system name, or empty string for clear" } },
{ "name": "languages", "schema": { "type": "array", "items": { "type": "string" }, "description": "ISO 639 language codes of all available audio tracks" } },
{ "name": "bitrates", "schema": { "type": "array", "items": { "type": "integer" }, "description": "Available video bitrates in bps, ascending order" } },
{ "name": "speeds", "schema": { "type": "array", "items": { "type": "number" }, "description": "Trick-play speeds supported by the stream" } }
],
"result": {
"name": "onMediaMetadataParams",
"schema": {
"type": "object",
"properties": {
"durationMs": { "type": "integer" },
"width": { "type": "integer" },
"height": { "type": "integer" },
"hasDrm": { "type": "boolean" },
"isLive": { "type": "boolean" },
"drmType": { "type": "string" },
"languages": { "type": "array", "items": { "type": "string" } },
"bitrates": { "type": "array", "items": { "type": "integer" } },
"speeds": { "type": "array", "items": { "type": "number" } }
}
}
}
},
{
"name": "org.rdk.player.onAudioTracksChanged",
"summary": "Available audio track list changed",
"tags": [{ "name": "Notifications" }],
"x-server-notification": true,
"params": [],
"result": { "name": "onAudioTracksChangedParams", "schema": { "type": "object" } }
},
{
"name": "org.rdk.player.onTextTracksChanged",
"summary": "Available text track list changed",
"tags": [{ "name": "Notifications" }],
"x-server-notification": true,
"params": [],
"result": { "name": "onTextTracksChangedParams", "schema": { "type": "object" } }
},
{
"name": "org.rdk.player.onDrmMetadata",
"summary": "DRM access status update",
"tags": [{ "name": "Notifications" }],
"x-server-notification": true,
"params": [
{ "name": "accessStatus", "schema": { "type": "string", "description": "DRM access status string reported by the DRM system" } }
],
"result": {
"name": "onDrmMetadataParams",
"schema": { "type": "object", "properties": { "accessStatus": { "type": "string" } } }
}
},
{
"name": "org.rdk.player.onAdReservationStart",
"summary": "SCTE-35 ad reservation window opened",
"tags": [{ "name": "Notifications" }],
"x-server-notification": true,
"params": [],
"result": { "name": "onAdReservationStartParams", "schema": { "type": "object" } }
},
{
"name": "org.rdk.player.onAdReservationEnd",
"summary": "SCTE-35 ad reservation window closed",
"tags": [{ "name": "Notifications" }],
"x-server-notification": true,
"params": [],
"result": { "name": "onAdReservationEndParams", "schema": { "type": "object" } }
},
{
"name": "org.rdk.player.onAnomaly",
"summary": "Internal diagnostic / anomaly report",
"tags": [{ "name": "Notifications" }],
"x-server-notification": true,
"params": [
{ "name": "severity", "schema": { "type": "integer", "minimum": 0, "maximum": 3, "description": "Severity level: 0=INFO, 1=WARNING, 2=ERROR, 3=TRACE" } },
{ "name": "message", "schema": { "type": "string", "description": "Human-readable anomaly description" } }
],
"result": {
"name": "onAnomalyParams",
"schema": {
"type": "object",
"properties": {
"severity": { "type": "integer" },
"message": { "type": "string" }
}
}
}
}
]
}