LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpSZWFkbWUgZm9yIExpbnV4IGRldmljZSBkcml2ZXIgZm9yIHRoZSBPbW5pVmlzaW9uIE9WNTExIFVTQiB0byBjYW1lcmEgYnJpZGdlIElDCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkF1dGhvcjogTWFyayBNY0NsZWxsYW5kCkhvbWVwYWdlOiBodHRwOi8vYWxwaGEuZHluZG5zLm9yZy9vdjUxMQoKSU5UUk9EVUNUSU9OOgoKVGhpcyBpcyBhIGRyaXZlciBmb3IgdGhlIE9WNTExLCBhIFVTQi1vbmx5IGNoaXAgdXNlZCBpbiBtYW55ICJ3ZWJjYW0iIGRldmljZXMuCkFueSBjYW1lcmEgdXNpbmcgdGhlIE9WNTExL09WNTExKyBhbmQgdGhlIE9WNjYyMC9PVjc2MTAvMjAvMjBBRSBzaG91bGQgd29yay4KVmlkZW8gY2FwdHVyZSBkZXZpY2VzIHRoYXQgdXNlIHRoZSBQaGlsaXBzIFNBQTcxMTFBIGRlY29kZXIgYWxzbyB3b3JrLiBJdApzdXBwb3J0cyBzdHJlYW1pbmcgYW5kIGNhcHR1cmUgb2YgY29sb3Igb3IgbW9ub2Nocm9tZSB2aWRlbyB2aWEgdGhlIFZpZGVvNExpbnV4CkFQSS4gTW9zdCBWNEwgYXBwcyBhcmUgY29tcGF0aWJsZSB3aXRoIGl0LiBNb3N0IHJlc29sdXRpb25zIHdpdGggYSB3aWR0aCBhbmQKaGVpZ2h0IHRoYXQgYXJlIGEgbXVsdGlwbGUgb2YgOCBhcmUgc3VwcG9ydGVkLgoKSWYgeW91IG5lZWQgbW9yZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHZpc2l0IHRoZSBPVjUxMSBob21lcGFnZSBhdCB0aGUgYWJvdmUgVVJMLgoKV0hBVCBZT1UgTkVFRDoKCi0gSWYgeW91IHdhbnQgdG8gaGVscCB3aXRoIHRoZSBkZXZlbG9wbWVudCwgZ2V0IHRoZSBjaGlwJ3Mgc3BlY2lmaWNhdGlvbiBkb2NzIGF0CiAgaHR0cDovL3d3dy5vdnQuY29tL29tbml1c2JwLmh0bWwKCi0gQSBWaWRlbzRMaW51eCBjb21wYXRpYmxlIGZyYW1lIGdyYWJiZXIgcHJvZ3JhbSAoSSByZWNvbW1lbmQgdmlkY2F0IGFuZCB4YXd0dikKICAgIHZpZGNhdCBpcyBwYXJ0IG9mIHRoZSB3M2NhbSBwYWNrYWdlOiAgaHR0cDovL21weC5mcmVlc2hlbGwubmV0LwogICAgeGF3dHYgaXMgYXZhaWxhYmxlIGF0OiAgaHR0cDovL2xpbnV4LmJ5dGVzZXgub3JnL3hhd3R2LwoKSE9XIFRPIFVTRSBJVDoKCk5vdGU6IFRoZXNlIGFyZSBzaW1wbGlmaWVkIGluc3RydWN0aW9ucy4gRm9yIGNvbXBsZXRlIGluc3RydWN0aW9ucyBzZWU6CglodHRwOi8vYWxwaGEuZHluZG5zLm9yZy9vdjUxMS9pbnN0YWxsLmh0bWwKCllvdSBtdXN0IGhhdmUgZmlyc3QgY29tcGlsZWQgVVNCIHN1cHBvcnQsIHN1cHBvcnQgZm9yIHlvdXIgc3BlY2lmaWMgVVNCIGhvc3QKY29udHJvbGxlciAoVUhDSSBvciBPSENJKSwgYW5kIFZpZGVvNExpbnV4IHN1cHBvcnQgZm9yIHlvdXIga2VybmVsIChJIHJlY29tbWVuZAptYWtpbmcgdGhlbSBtb2R1bGVzLikgTWFrZSBzdXJlICJFbmZvcmNlIGJhbmR3aWR0aCBhbGxvY2F0aW9uIiBpcyBOT1QgZW5hYmxlZC4KCk5leHQsIChhcyByb290KToKCgltb2Rwcm9iZSB1c2Jjb3JlCgltb2Rwcm9iZSB1c2ItdWhjaSAgPE9SPiAgbW9kcHJvYmUgdXNiLW9oY2kKCW1vZHByb2JlIHZpZGVvZGV2Cgltb2Rwcm9iZSBvdjUxMQoKSWYgaXQgaXMgbm90IGFscmVhZHkgdGhlcmUgKGl0IHVzdWFsbHkgaXMpLCBjcmVhdGUgdGhlIHZpZGVvIGRldmljZToKCglta25vZCAvZGV2L3ZpZGVvMCBjIDgxIDAKCk9wdGlvbmFsbHksIHN5bWxpbmsgL2Rldi92aWRlbyB0byAvZGV2L3ZpZGVvMAoKWW91IHdpbGwgaGF2ZSB0byBzZXQgcGVybWlzc2lvbnMgb24gdGhpcyBkZXZpY2UgdG8gYWxsb3cgeW91IHRvIHJlYWQvd3JpdGUKZnJvbSBpdDoKCgljaG1vZCA2NjYgL2Rldi92aWRlbwoJY2htb2QgNjY2IC9kZXYvdmlkZW8wIChpZiBuZWNlc3NhcnkpCgpOb3cgeW91IGFyZSByZWFkeSB0byBydW4gYSB2aWRlbyBhcHAhIEJvdGggdmlkY2F0IGFuZCB4YXd0diB3b3JrIHdlbGwgZm9yIG1lCmF0IDY0MHg0ODAuCgpbVXNpbmcgdmlkY2F0Ol0KCgl2aWRjYXQgLXMgNjQweDQ4MCAtcCBjID4gdGVzdC5qcGcKCXh2aWV3IHRlc3QuanBnCgpbVXNpbmcgeGF3dHY6XQoKRnJvbSB0aGUgbWFpbiB4YXd0diBkaXJlY3Rvcnk6CgoJbWFrZSBjbGVhbgoJLi9jb25maWd1cmUKCW1ha2UKCW1ha2UgaW5zdGFsbAoKTm93IHlvdSBzaG91bGQgYmUgYWJsZSB0byBydW4geGF3dHYuIFJpZ2h0IGNsaWNrIGZvciB0aGUgb3B0aW9ucyBkaWFsb2cuCgpNT0RVTEUgUEFSQU1FVEVSUzoKCiAgWW91IGNhbiBzZXQgdGhlc2Ugd2l0aDogIGluc21vZCBvdjUxMSBOQU1FPVZBTFVFCiAgVGhlcmUgaXMgY3VycmVudGx5IG5vIHdheSB0byBzZXQgdGhlc2Ugb24gYSBwZXItY2FtZXJhIGJhc2lzLgoKICBOQU1FOiBhdXRvYnJpZ2h0CiAgVFlQRTogaW50ZWdlciAoQm9vbGVhbikKICBERUZBVUxUOiAxCiAgREVTQzogQnJpZ2h0bmVzcyBpcyBub3JtYWxseSB1bmRlciBhdXRvbWF0aWMgY29udHJvbCBhbmQgY2FuJ3QgYmUgc2V0CgltYW51YWxseSBieSB0aGUgdmlkZW8gYXBwLiBTZXQgdG8gMCBmb3IgbWFudWFsIGNvbnRyb2wuCgogIE5BTUU6IGF1dG9nYWluCiAgVFlQRTogaW50ZWdlciAoQm9vbGVhbikKICBERUZBVUxUOiAxCiAgREVTQzogQXV0byBHYWluIENvbnRyb2wgZW5hYmxlLiBUaGlzIGZlYXR1cmUgaXMgbm90IHlldCBpbXBsZW1lbnRlZC4KCiAgTkFNRTogYXV0b2V4cAogIFRZUEU6IGludGVnZXIgKEJvb2xlYW4pCiAgREVGQVVMVDogMQogIERFU0M6IEF1dG8gRXhwb3N1cmUgQ29udHJvbCBlbmFibGUuIFRoaXMgZmVhdHVyZSBpcyBub3QgeWV0IGltcGxlbWVudGVkLgoKICBOQU1FOiBkZWJ1ZwogIFRZUEU6IGludGVnZXIgKDAtNikKICBERUZBVUxUOiAzCiAgREVTQzogU2V0cyB0aGUgdGhyZXNob2xkIGZvciBwcmludGluZyBkZWJ1ZyBtZXNzYWdlcy4gVGhlIGhpZ2hlciB0aGUgdmFsdWUsCgl0aGUgbW9yZSBpcyBwcmludGVkLiBUaGUgbGV2ZWxzIGFyZSBjdW11bGF0aXZlLCBhbmQgYXJlIGFzIGZvbGxvd3M6CgkgIDA9bm8gZGVidWcgbWVzc2FnZXMKCSAgMT1pbml0L2RldGVjdGlvbi91bmxvYWQgYW5kIG90aGVyIHNpZ25pZmljYW50IG1lc3NhZ2VzCgkgIDI9c29tZSB3YXJuaW5nIG1lc3NhZ2VzCgkgIDM9Y29uZmlnL2NvbnRyb2wgZnVuY3Rpb24gY2FsbHMKCSAgND1tb3N0IGZ1bmN0aW9uIGNhbGxzIGFuZCBkYXRhIHBhcnNpbmcgbWVzc2FnZXMKCSAgNT1oaWdobHkgcmVwZXRpdGl2ZSBtZXNncwoKICBOQU1FOiBzbmFwc2hvdAogIFRZUEU6IGludGVnZXIgKEJvb2xlYW4pCiAgREVGQVVMVDogMAogIERFU0M6IFNldCB0byAxIHRvIGVuYWJsZSBzbmFwc2hvdCBtb2RlLiByZWFkKCkvVklESU9DU1lOQyB3aWxsIGJsb2NrIHVudGlsCgl0aGUgc25hcHNob3QgYnV0dG9uIGlzIHByZXNzZWQuIE5vdGU6IGVuYWJsaW5nIHRoaXMgbW9kZSBkaXNhYmxlcwoJL3Byb2MvdmlkZW8vb3Y1MTEvPG1pbm9yIz4vYnV0dG9uCgogIE5BTUU6IGNhbXMKICBUWVBFOiBpbnRlZ2VyICgxLTQgZm9yIE9WNTExLCAxLTMxIGZvciBPVjUxMSspCiAgREVGQVVMVDogMQogIERFU0M6IE51bWJlciBvZiBjYW1lcmFzIGFsbG93ZWQgdG8gc3RyZWFtIHNpbXVsdGFuZW91c2x5IG9uIGEgc2luZ2xlIGJ1cy4KCVZhbHVlcyBoaWdoZXIgdGhhbiAxIHJlZHVjZSB0aGUgZGF0YSByYXRlIG9mIGVhY2ggY2FtZXJhLCBhbGxvd2luZyB0d28KCW9yIG1vcmUgdG8gYmUgdXNlZCBhdCBvbmNlLiBJZiB5b3UgaGF2ZSBhIGNvbXBsaWNhdGVkIHNldHVwIGludm9sdmluZwoJYm90aCBPVjUxMSBhbmQgT1Y1MTErIGNhbWVyYXMsIHRyaWFsLWFuZC1lcnJvciBtYXkgYmUgbmVjZXNzYXJ5IGZvcgoJZmluZGluZyB0aGUgb3B0aW11bSBzZXR0aW5nLgoKICBOQU1FOiBjb21wcmVzcwogIFRZUEU6IGludGVnZXIgKEJvb2xlYW4pCiAgREVGQVVMVDogMAogIERFU0M6IFNldCB0aGlzIHRvIDEgdG8gdHVybiBvbiB0aGUgY2FtZXJhJ3MgY29tcHJlc3Npb24gZW5naW5lLiBUaGlzIGNhbgoJcG90ZW50aWFsbHkgaW5jcmVhc2UgdGhlIGZyYW1lIHJhdGUgYXQgdGhlIGV4cGVuc2Ugb2YgcXVhbGl0eSwgaWYgeW91CgloYXZlIGEgZmFzdCBDUFUuIFlvdSBtdXN0IGxvYWQgdGhlIHByb3BlciBjb21wcmVzc2lvbiBtb2R1bGUgZm9yIHlvdXIKCWNhbWVyYSBiZWZvcmUgc3RhcnRpbmcgeW91ciBhcHBsaWNhdGlvbiAob3Y1MTFfZGVjb21wIG9yIG92NTE4X2RlY29tcCkuCgogIE5BTUU6IHRlc3RwYXQKICBUWVBFOiBpbnRlZ2VyIChCb29sZWFuKQogIERFRkFVTFQ6IDAKICBERVNDOiBUaGlzIGNvbmZpZ3VyZXMgdGhlIGNhbWVyYSdzIHNlbnNvciB0byB0cmFuc21pdCBhIGNvbG9yZWQgdGVzdC1wYXR0ZXJuCglpbnN0ZWFkIG9mIGFuIGltYWdlLiBUaGlzIGRvZXMgbm90IHdvcmsgY29ycmVjdGx5IHlldC4KCiAgTkFNRTogZHVtcHBpeAogIFRZUEU6IGludGVnZXIgKDAtMikKICBERUZBVUxUOiAwCiAgREVTQzogRHVtcHMgcmF3IHBpeGVsIGRhdGEgYW5kIHNraXBzIHBvc3QtcHJvY2Vzc2luZyBhbmQgZm9ybWF0IGNvbnZlcnNpb24uCglJdCBpcyBmb3IgZGVidWdnaW5nIHB1cnBvc2VzIG9ubHkuIE9wdGlvbnMgYXJlOgoJCTA6IERpc2FibGUgKGRlZmF1bHQpCgkJMTogRHVtcCByYXcgZGF0YSBmcm9tIGNhbWVyYSwgZXhjbHVkaW5nIGhlYWRlcnMgYW5kIHRyYWlsZXJzCgkJMjogRHVtcHMgZGF0YSBleGFjdGx5IGFzIHJlY2VpdmVkIGZyb20gY2FtZXJhCgogIE5BTUU6IGxlZAogIFRZUEU6IGludGVnZXIgKDAtMikKICBERUZBVUxUOiAxIChBbHdheXMgb24pCiAgREVTQzogQ29udHJvbHMgd2hldGhlciB0aGUgTEVEICh0aGUgbGl0dGxlIGxpZ2h0KSBvbiB0aGUgZnJvbnQgb2YgdGhlIGNhbWVyYQoJaXMgYWx3YXlzIG9mZiAoMCksIGFsd2F5cyBvbiAoMSksIG9yIG9ubHkgb24gd2hlbiBkcml2ZXIgaXMgb3BlbiAoMikuCglUaGlzIGlzIG5vdCBzdXBwb3J0ZWQgd2l0aCB0aGUgT1Y1MTEsIGFuZCBtaWdodCBvbmx5IHdvcmsgd2l0aCBjZXJ0YWluCgljYW1lcmFzIChvbmVzIHRoYXQgYWN0dWFsbHkgaGF2ZSB0aGUgTEVEIHdpcmVkIHRvIHRoZSBjb250cm9sIHBpbiwgYW5kCglub3QganVzdCBoYXJkLXdpcmVkIHRvIGJlIG9uIGFsbCB0aGUgdGltZSkuCgogIE5BTUU6IGR1bXBfYnJpZGdlCiAgVFlQRTogaW50ZWdlciAoQm9vbGVhbikKICBERUZBVUxUOiAwCiAgREVTQzogRHVtcHMgdGhlIGJyaWRnZSAoT1Y1MTFbK10gb3IgT1Y1MThbK10pIHJlZ2lzdGVyIHZhbHVlcyB0byB0aGUgc3lzdGVtCglsb2cuIE9ubHkgdXNlZnVsIGZvciBzZXJpb3VzIGRlYnVnZ2luZy9kZXZlbG9wbWVudCBwdXJwb3Nlcy4KCiAgTkFNRTogZHVtcF9zZW5zb3IKICBUWVBFOiBpbnRlZ2VyIChCb29sZWFuKQogIERFRkFVTFQ6IDAKICBERVNDOiBEdW1wcyB0aGUgc2Vuc29yIHJlZ2lzdGVyIHZhbHVlcyB0byB0aGUgc3lzdGVtIGxvZy4gT25seSB1c2VmdWwgZm9yCglzZXJpb3VzIGRlYnVnZ2luZy9kZXZlbG9wbWVudCBwdXJwb3Nlcy4KCiAgTkFNRTogcHJpbnRwaAogIFRZUEU6IGludGVnZXIgKEJvb2xlYW4pCiAgREVGQVVMVDogMAogIERFU0M6IFNldHRpbmcgdGhpcyB0byAxIHdpbGwgZHVtcCB0aGUgZmlyc3QgMTIgYnl0ZXMgb2YgZWFjaCBpc29jIGZyYW1lLiBUaGlzCglpcyBvbmx5IHVzZWZ1bCBpZiB5b3UgYXJlIHRyeWluZyB0byBkZWJ1ZyBwcm9ibGVtcyB3aXRoIHRoZSBpc29jIGRhdGEKCXN0cmVhbSAoaS5lLjogY2FtZXJhIGluaXRpYWxpemVzLCBidXQgdmlkY2F0IGhhbmdzIHVudGlsIEN0cmwtQykuIEJlCgl3YXJuZWQgdGhhdCB0aGlzIGR1bXBzIGEgbGFyZ2UgbnVtYmVyIG9mIG1lc3NhZ2VzIHRvIHlvdXIga2VybmVsIGxvZy4KCiAgTkFNRTogcGh5LCBwaHV2LCBwdnksIHB2dXYsIHFoeSwgcWh1diwgcXZ5LCBxdnV2CiAgVFlQRTogaW50ZWdlciAoMC02MyBmb3IgcGh5IGFuZCBwaHV2LCAwLTI1NSBmb3IgcmVzdCkKICBERUZBVUxUOiBPVjUxMSBkZWZhdWx0IHZhbHVlcwogIERFU0M6IFRoZXNlIGFyZSByZWdpc3RlcnMgNzBoIC0gNzdoIG9mIHRoZSBPVjUxMSwgd2hpY2ggY29udHJvbCB0aGUKCXByZWRpY3Rpb24gcmFuZ2VzIGFuZCBxdWFudGl6YXRpb24gdGhyZXNob2xkcyBvZiB0aGUgY29tcHJlc3NvciwgZm9yCgl0aGUgWSBhbmQgVVYgY2hhbm5lbHMgaW4gdGhlIGhvcml6b250YWwgYW5kIHZlcnRpY2FsIGRpcmVjdGlvbnMuIFNlZQoJdGhlIE9WNTExIG9yIE9WNTExKyBkYXRhIHNoZWV0IGZvciBtb3JlIGRldGFpbGVkIGRlc2NyaXB0aW9ucy4gVGhlc2UKCW5vcm1hbGx5IGRvIG5vdCBuZWVkIHRvIGJlIGNoYW5nZWQuCgogIE5BTUU6IGxpZ2h0ZnJlcQogIFRZUEU6IGludGVnZXIgKDAsIDUwLCBvciA2MCkKICBERUZBVUxUOiAwICh1c2Ugc2Vuc29yIGRlZmF1bHQpCiAgREVTQzogU2V0cyB0aGUgc2Vuc29yIHRvIG1hdGNoIHlvdXIgbGlnaHRpbmcgZnJlcXVlbmN5LiBUaGlzIGNhbiByZWR1Y2UgdGhlCglhcHBlYXJhbmNlIG9mICJiYW5kaW5nIiwgaS5lLiBob3Jpem9udGFsIGxpbmVzIG9yIHdhdmVzIG9mIGxpZ2h0IGFuZAoJZGFyayB0aGF0IGFyZSBvZnRlbiBjYXVzZWQgYnkgYXJ0aWZpY2lhbCBsaWdodGluZy4gVmFsaWQgdmFsdWVzIGFyZToKCQkwIC0gVXNlIGRlZmF1bHQgKGRlcGVuZHMgb24gc2Vuc29yLCBtb3N0IGxpa2VseSA2MCBIeikKCQk1MCAtIEZvciBFdXJvcGVhbiBhbmQgQXNpYW4gNTAgSHogcG93ZXIKCQk2MCAtIEZvciBBbWVyaWNhbiA2MCBIeiBwb3dlcgoKICBOQU1FOiBiYW5kaW5nZmlsdGVyCiAgVFlQRTogaW50ZWdlciAoQm9vbGVhbikKICBERUZBVUxUOiAwIChvZmYpCiAgREVTQzogRW5hYmxlcyB0aGUgc2Vuc29ytHMgYmFuZGluZyBmaWx0ZXIgZXhwb3N1cmUgYWxnb3JpdGhtLiBUaGlzIHJlZHVjZXMKCW9yIHN0YWJpbGl6ZXMgdGhlICJiYW5kaW5nIiBjYXVzZWQgYnkgc29tZSBhcnRpZmljaWFsIGxpZ2h0IHNvdXJjZXMKCShlc3BlY2lhbGx5IGZsdW9yZXNjZW50KS4gWW91IG1pZ2h0IGhhdmUgdG8gc2V0IGxpZ2h0ZnJlcSBjb3JyZWN0bHkgZm9yCgl0aGlzIHRvIHdvcmsgcmlnaHQuIEFzIGFuIGFkZGVkIGJvbnVzLCB0aGlzIHNvbWV0aW1lcyBtYWtlcyBpdAoJcG9zc2libGUgdG8gY2FwdHVyZSB5b3VyIG1vbml0b3K0cyBvdXRwdXQuCgogIE5BTUU6IGZhc3RzZXQKICBUWVBFOiBpbnRlZ2VyIChCb29sZWFuKQogIERFRkFVTFQ6IDAgKG9mZikKICBERVNDOiBBbGxvd3MgcGljdHVyZSBzZXR0aW5ncyAoYnJpZ2h0bmVzcywgY29udHJhc3QsIGNvbG9yLCBhbmQgaHVlKSB0byB0YWtlCgllZmZlY3QgaW1tZWRpYXRlbHksIGV2ZW4gaW4gdGhlIG1pZGRsZSBvZiBhIGZyYW1lLiBUaGlzIHJlZHVjZXMgdGhlCgl0aW1lIHRvIGNoYW5nZSBzZXR0aW5ncywgYnV0IGNhbiBydWluIGZyYW1lcyBkdXJpbmcgdGhlIGNoYW5nZS4gT25seQoJYWZmZWN0cyBPbW5pVmlzaW9uIHNlbnNvcnMuCgogIE5BTUU6IGZvcmNlX3BhbGV0dGUKICBUWVBFOiBpbnRlZ2VyIChCb29sZWFuKQogIERFRkFVTFQ6IDAgKG9mZikKICBERVNDOiBGb3JjZXMgdGhlIHBhbGV0dGUgKGNvbG9yIGZvcm1hdCkgdG8gYSBzcGVjaWZpYyB2YWx1ZS4gSWYgYW4KCWFwcGxpY2F0aW9uIHJlcXVlc3RzIGEgZGlmZmVyZW50IHBhbGV0dGUsIGl0IHdpbGwgYmUgcmVqZWN0ZWQsIHRoZXJlYnkKCWZvcmNpbmcgaXQgdG8gdHJ5IG90aGVycyB1bnRpbCBpdCBzdWNjZWVkcy4gVGhpcyBpcyB1c2VmdWwgZm9yIGZvcmNpbmcKCWdyZXlzY2FsZSBtb2RlIHdpdGggYSBjb2xvciBjYW1lcmEsIGZvciBleGFtcGxlLiBTdXBwb3J0ZWQgbW9kZXMgYXJlOgoJCTAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQWxsb3dzIGFsbCB0aGUgZm9sbG93aW5nIGZvcm1hdHMpCgkJMSAgIFZJREVPX1BBTEVUVEVfR1JFWSAgICAgIChMaW5lYXIgZ3JleXNjYWxlKQoJCTEwICBWSURFT19QQUxFVFRFX1lVVjQyMCAgICAoWVVWIDQ6MjowIFBsYW5hcikKCQkxNSAgVklERU9fUEFMRVRURV9ZVVY0MjBQICAgKFlVViA0OjI6MCBQbGFuYXIsIHNhbWUgYXMgMTApCgogIE5BTUU6IGJhY2tsaWdodAogIFRZUEU6IGludGVnZXIgKEJvb2xlYW4pCiAgREVGQVVMVDogMCAob2ZmKQogIERFU0M6IFNldHRpbmcgdGhpcyBmbGFnIGNoYW5nZXMgdGhlIGV4cG9zdXJlIGFsZ29yaXRobSBmb3IgT21uaVZpc2lvbiBzZW5zb3JzCglzdWNoIHRoYXQgb2JqZWN0cyBpbiB0aGUgY2FtZXJhJ3MgdmlldyAoaS5lLiB5b3VyIGhlYWQpIGNhbiBiZSBjbGVhcmx5CglzZWVuIHdoZW4gdGhleSBhcmUgaWxsdW1pbmF0ZWQgZnJvbSBiZWhpbmQuIEl0IHJlZHVjZXMgb3IgZWxpbWluYXRlcwoJdGhlIHNlbnNvcidzIGF1dG8tZXhwb3N1cmUgZnVuY3Rpb24sIHNvIGl0IHNob3VsZCBvbmx5IGJlIHVzZWQgd2hlbgoJbmVlZGVkLiBBZGRpdGlvbmFsbHksIGl0IGlzIG9ubHkgc3VwcG9ydGVkIHdpdGggdGhlIE9WNjYyMCBhbmQgT1Y3NjIwLgoKICBOQU1FOiB1bml0X3ZpZGVvCiAgVFlQRTogVXAgdG8gMTYgY29tbWEtc2VwYXJhdGVkIGludGVnZXJzCiAgREVGQVVMVDogMCwwLDAuLi4gKGF1dG9tYXRpY2FsbHkgYXNzaWduIHRoZSBuZXh0IGF2YWlsYWJsZSBtaW5vcihzKSkKICBERVNDOiBZb3UgY2FuIHNwZWNpZnkgdXAgdG8gMTYgbWlub3IgbnVtYmVycyB0byBiZSBhc3NpZ25lZCB0byBvdjUxMSBkZXZpY2VzLgoJRm9yIGV4YW1wbGUsICJ1bml0X3ZpZGVvPTEsMyIgd2lsbCBtYWtlIHRoZSBkcml2ZXIgdXNlIC9kZXYvdmlkZW8xIGFuZAoJL2Rldi92aWRlbzMgZm9yIHRoZSBmaXJzdCB0d28gZGV2aWNlcyBpdCBkZXRlY3RzLiBBZGRpdGlvbmFsIGRldmljZXMKCXdpbGwgYmUgYXNzaWduZWQgYXV0b21hdGljYWxseSBzdGFydGluZyBhdCB0aGUgZmlyc3QgYXZhaWxhYmxlIGRldmljZQoJbm9kZSAoL2Rldi92aWRlbzAgaW4gdGhpcyBjYXNlKS4gTm90ZSB0aGF0IHlvdSBjYW5ub3Qgc3BlY2lmeSAwIGFzIGEKCW1pbm9yIG51bWJlci4gVGhpcyBmZWF0dXJlIHJlcXVpcmVzIGtlcm5lbCB2ZXJzaW9uIDIuNC41IG9yIGhpZ2hlci4KCiAgTkFNRTogcmVtb3ZlX3plcm9zCiAgVFlQRTogaW50ZWdlciAoQm9vbGVhbikKICBERUZBVUxUOiAwIChkbyBub3Qgc2tpcCBhbnkgaW5jb21pbmcgZGF0YSkKICBERVNDOiBTZXR0aW5nIHRoaXMgdG8gMSB3aWxsIHJlbW92ZSB6ZXJvLXBhZGRpbmcgZnJvbSBpbmNvbWluZyBkYXRhLiBUaGlzCgl3aWxsIGNvbXBlbnNhdGUgZm9yIHRoZSBibG9ja3Mgb2YgY29ycnVwdGlvbiB0aGF0IGNhbiBhcHBlYXIgd2hlbiB0aGUKCWNhbWVyYSBjYW5ub3Qga2VlcCB1cCB3aXRoIHRoZSBzcGVlZCBvZiB0aGUgVVNCIGJ1cyAoZWcuIGF0IGxvdyBmcmFtZQoJcmVzb2x1dGlvbnMpLiBUaGlzIGZlYXR1cmUgaXMgYWx3YXlzIGVuYWJsZWQgd2hlbiBjb21wcmVzc2lvbiBpcyBvbi4KCiAgTkFNRTogbWlycm9yCiAgVFlQRTogaW50ZWdlciAoQm9vbGVhbikKICBERUZBVUxUOiAwIChvZmYpCiAgREVTQzogU2V0dGluZyB0aGlzIHRvIDEgd2lsbCByZXZlcnNlICgibWlycm9yIikgdGhlIGltYWdlIGhvcml6b250YWxseS4gVGhpcwoJbWlnaHQgYmUgbmVjZXNzYXJ5IGlmIHlvdXIgY2FtZXJhIGhhcyBhIGN1c3RvbSBsZW5zIGFzc2VtYmx5LiBUaGlzIGhhcwoJbm8gZWZmZWN0IHdpdGggdmlkZW8gY2FwdHVyZSBkZXZpY2VzLgoKICBOQU1FOiBvdjUxOF9jb2xvcgogIFRZUEU6IGludGVnZXIgKEJvb2xlYW4pCiAgREVGQVVMVDogMCAob2ZmKQogIERFU0M6IEVuYWJsZSBPVjUxOCBjb2xvciBzdXBwb3J0LiBUaGlzIGlzIG9mZiBieSBkZWZhdWx0IHNpbmNlIGl0IGRvZXNuJ3QKCXdvcmsgbW9zdCBvZiB0aGUgdGltZS4gSWYgeW91IHdhbnQgdG8gdHJ5IGl0LCB5b3UgbXVzdCBhbHNvIGxvYWQKCW92NTE4X2RlY29tcCB3aXRoIHRoZSAibm91dj0wIiBwYXJhbWV0ZXIuIElmIHlvdSBnZXQgaW1wcm9wZXIgY29sb3JzIG9yCglkaWFnb25hbCBsaW5lcyB0aHJvdWdoIHRoZSBpbWFnZSwgcmVzdGFydCB5b3VyIHZpZGVvIGFwcCBhbmQgdHJ5IGFnYWluLgoJUmVwZWF0IGFzIG5lY2Vzc2FyeS4KCldPUktJTkcgRkVBVFVSRVM6CiBvIENvbG9yIHN0cmVhbWluZy9jYXB0dXJlIGF0IG1vc3Qgd2lkdGhzIGFuZCBoZWlnaHRzIHRoYXQgYXJlIG11bHRpcGxlcyBvZiA4LgogbyBNb25vY2hyb21lICh1c2UgZm9yY2VfcGFsZXR0ZT0xIHRvIGVuYWJsZSkKIG8gU2V0dGluZy9nZXR0aW5nIG9mIHNhdHVyYXRpb24sIGNvbnRyYXN0LCBicmlnaHRuZXNzLCBhbmQgaHVlIChvbmx5IHNvbWUgb2YKICAgdGhlbSB3b3JrIHRoZSBPVjc2MjAgYW5kIE9WNzYyMEFFKQogbyAvcHJvYyBzdGF0dXMgcmVwb3J0aW5nCiBvIFNBQTcxMTFBIHZpZGVvIGNhcHR1cmUgc3VwcG9ydCBhdCAzMjB4MjQwIGFuZCA2NDB4NDgwCiBvIENvbXByZXNzaW9uIHN1cHBvcnQKIG8gU01QIGNvbXBhdGliaWxpdHkKCkhPVyBUTyBDT05UQUNUIE1FOgoKWW91IGNhbiBlbWFpbCBtZSBhdCBtYXJrQGFscGhhLmR5bmRucy5vcmcgLiBQbGVhc2UgcHJlZml4IHRoZSBzdWJqZWN0IGxpbmUKd2l0aCAiT1Y1MTE6ICIgc28gdGhhdCBJIGFtIGNlcnRhaW4gdG8gbm90aWNlIHlvdXIgbWVzc2FnZS4KCkNSRURJVFM6CgpUaGUgY29kZSBpcyBiYXNlZCBpbiBubyBzbWFsbCBwYXJ0IG9uIHRoZSBDUGlBIGRyaXZlciBieSBKb2hhbm5lcyBFcmRmZWx0LApSYW5keSBEdW5sYXAsIGFuZCBvdGhlcnMuIEJpZyB0aGFua3MgdG8gdGhlbSBmb3IgdGhlaXIgcGlvbmVlcmluZyB3b3JrIG9uIHRoYXQKYW5kIHRoZSBVU0Igc3RhY2suIFRoYW5rcyB0byBCcmV0IFdhbGxhY2ggZm9yIGdldHRpbmcgY2FtZXJhIHJlZyBJTywgSVNPQywgYW5kCmltYWdlIGNhcHR1cmUgd29ya2luZy4gVGhhbmtzIHRvIE9yaW9uIFNreSBMYXdsb3IsIEtldmluIE1vb3JlLCBhbmQgQ2xhdWRpbwpNYXRzdW9rYSBmb3IgdGhlaXIgd29yayBhcyB3ZWxsLgo=