<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>237814</bug_id>
          
          <creation_ts>2022-03-12 20:11:36 -0800</creation_ts>
          <short_desc>Do a single IPC for MarkSurfaceNonVolatile and SwapToValidFrontBuffer</short_desc>
          <delta_ts>2022-03-14 12:13:14 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Process Model</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1850733</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-03-12 20:11:36 -0800</bug_when>
    <thetext>Do a single IPC for MarkSurfaceNonVolatile and SwapToValidFrontBuffer</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1850734</commentid>
    <comment_count>1</comment_count>
      <attachid>454545</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-03-12 20:15:36 -0800</bug_when>
    <thetext>Created attachment 454545
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1850969</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-03-14 12:12:42 -0700</bug_when>
    <thetext>Committed r291243 (248398@main): &lt;https://commits.webkit.org/248398@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 454545.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1850970</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-03-14 12:13:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/90261512&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454545</attachid>
            <date>2022-03-12 20:15:36 -0800</date>
            <delta_ts>2022-03-14 12:12:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237814-20220312201535.patch</filename>
            <type>text/plain</type>
            <size>38805</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxMjA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGRlMjdkMzE2NjFiOGRmYTkz
YTg4MzdiZmYxMDg2NTY3MzcyYTNlODMuLmI3YWJlY2VlN2I3YTIzYzNhY2M0YmNhNmI1MDliZGRj
MzA3MDlmMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTAgQEAKKzIwMjItMDMtMTIgIFNpbW9uIEZy
YXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgRG8gYSBzaW5nbGUgSVBD
IGZvciBNYXJrU3VyZmFjZU5vblZvbGF0aWxlIGFuZCBTd2FwVG9WYWxpZEZyb250QnVmZmVyCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzc4MTQKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOb3cgdGhhdCB3
ZSBrbm93IGhvdyB0byBncm91cCB0aGUgY2FsbHMgdG8gbWFya1N1cmZhY2VOb25Wb2xhdGlsZSgp
IGZvbGxvd2VkIGJ5CisgICAgICAgIHN3YXBUb1ZhbGlkRnJvbnRCdWZmZXIoKSwgd2UgY2FuIGRv
IHRoZW0gd2l0aCBhIHNpbmdsZSBzeW5jIElQQyB0byB0aGUgR1BVIHByb2Nlc3MsIHBhc3NpbmcK
KyAgICAgICAgc3VwcG9ydHNQYXJ0aWFsUmVwYWludCBhbmQgaGFzRW1wdHlEaXJ0eVJlZ2lvbi4K
KworICAgICAgICBSZW1vdGVMYXllcldpdGhSZW1vdGVSZW5kZXJpbmdCYWNraW5nU3RvcmVDb2xs
ZWN0aW9uOjpwcmVwYXJlQmFja2luZ1N0b3JlQnVmZmVycygpIHRha2VzCisgICAgICAgIGNhcmUg
dG8gYXZvaWQgSVBDcyBmb3IgbGF5ZXJzIHdoaWNoIGRvbid0IG5lZWQgZGlzcGxheSwgd2hpY2gg
aXMgaW1wb3J0YW50IGZvciBwZXJmb3JtYW5jZS4KKworICAgICAgICBJbnRyb2R1Y2UgdGhlIFN3
YXBCdWZmZXJzRGlzcGxheVJlcXVpcmVtZW50IGVudW0gd2hpY2ggaXMgcmV0dXJuZWQsIGFuZCB1
c2VkIHRvIGtub3cgaWYKKyAgICAgICAgd2UgaGF2ZSB0byBkbyBhIGZ1bGwgcmVwYWludC4KKwor
ICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OnByZXBhcmVCdWZmZXJz
Rm9yRGlzcGxheSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6Om1h
cmtTdXJmYWNlTm9uVm9sYXRpbGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kOjpzd2FwVG9WYWxpZEZyb250QnVmZmVyKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaDoKKyAgICAg
ICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQubWVzc2FnZXMu
aW46CisgICAgICAgICogU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllckJhY2tpbmdT
dG9yZS5oOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6aGFzRW1w
dHlEaXJ0eVJlZ2lvbiBjb25zdCk6CisgICAgICAgICogU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9S
ZW1vdGVMYXllckJhY2tpbmdTdG9yZS5tbToKKyAgICAgICAgKFdlYktpdDo6b3BlcmF0b3I8PCk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjpwcmVwYXJlVG9EaXNw
bGF5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OnByZXBhcmVC
dWZmZXJzKToKKyAgICAgICAgKiBTaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyQmFj
a2luZ1N0b3JlQ29sbGVjdGlvbi5oOgorICAgICAgICAqIFNoYXJlZC9SZW1vdGVMYXllclRyZWUv
UmVtb3RlTGF5ZXJCYWNraW5nU3RvcmVDb2xsZWN0aW9uLm1tOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVMYXllckJhY2tpbmdTdG9yZUNvbGxlY3Rpb246OnByZXBhcmVCYWNraW5nU3RvcmVCdWZm
ZXJzKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJCYWNraW5nU3RvcmVDb2xsZWN0aW9u
OjptYWtlRnJvbnRCdWZmZXJOb25Wb2xhdGlsZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZUxheWVyQmFja2luZ1N0b3JlQ29sbGVjdGlvbjo6c3dhcFRvVmFsaWRGcm9udEJ1ZmZl
cik6IERlbGV0ZWQuCisgICAgICAgICogU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXll
cldpdGhSZW1vdGVSZW5kZXJpbmdCYWNraW5nU3RvcmVDb2xsZWN0aW9uLmg6CisgICAgICAgICog
U2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllcldpdGhSZW1vdGVSZW5kZXJpbmdCYWNr
aW5nU3RvcmVDb2xsZWN0aW9uLm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllcldpdGhS
ZW1vdGVSZW5kZXJpbmdCYWNraW5nU3RvcmVDb2xsZWN0aW9uOjpwcmVwYXJlQmFja2luZ1N0b3Jl
QnVmZmVycyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyV2l0aFJlbW90ZVJlbmRlcmlu
Z0JhY2tpbmdTdG9yZUNvbGxlY3Rpb246Om1ha2VGcm9udEJ1ZmZlck5vblZvbGF0aWxlKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJXaXRoUmVtb3RlUmVuZGVyaW5nQmFj
a2luZ1N0b3JlQ29sbGVjdGlvbjo6c3dhcFRvVmFsaWRGcm9udEJ1ZmZlcik6IERlbGV0ZWQuCisg
ICAgICAgICogU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9Td2FwQnVmZmVyc0Rpc3BsYXlSZXF1aXJl
bWVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJv
eHk6OnByZXBhcmVCdWZmZXJzRm9yRGlzcGxheSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eTo6c3dhcFRvVmFsaWRGcm9udEJ1ZmZlcik6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6bWFya1N1cmZhY2VO
b25Wb2xhdGlsZSk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lmg6CisKIDIwMjItMDMtMTIgIFNpbW9uIEZyYXNl
ciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgSW4gUmVtb3RlTGF5ZXJCYWNr
aW5nU3RvcmUsIGdyb3VwIG1ha2VGcm9udEJ1ZmZlck5vblZvbGF0aWxlKCkgYW5kIHN3YXBUb1Zh
bGlkRnJvbnRCdWZmZXIoKSBpbnRvIGEgc2luZ2xlIGZ1bmN0aW9uCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZC5jcHAKaW5kZXggNmNiNjcwYmUxMjVlNzFmYzNlYzU0ZTY5NmYxYjdhZTYxZWJiMDYwZC4uYTE1
YjRhYTI5YjQ4NWM5ZDBiZWVkMTJjMThjNjQxMzVmZjQ2ZTJiNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kLmNwcApAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgIlJlbW90ZVJlbmRlcmluZ0JhY2tl
bmRDcmVhdGlvblBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
TWVzc2FnZXMuaCIKICNpbmNsdWRlICJSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHlNZXNzYWdl
cy5oIgorI2luY2x1ZGUgIlN3YXBCdWZmZXJzRGlzcGxheVJlcXVpcmVtZW50LmgiCiAjaW5jbHVk
ZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9IVE1MQ2FudmFz
RWxlbWVudC5oPgogI2luY2x1ZGUgPHd0Zi9DaGVja2VkQXJpdGhtZXRpYy5oPgpAQCAtMzk4LDM3
ICszOTksNDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8SW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxl
PiBoYW5kbGVGcm9tQnVmZmVyKFdlYkNvcmU6OkltYWdlQnUKICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OwogfQogCi12b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6Om1hcmtTdXJmYWNlTm9uVm9s
YXRpbGUoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxJbWFnZUJ1ZmZlckJhY2tlbmRIYW5k
bGU+IGJhY2tlbmRIYW5kbGUsIGJvb2wgYnVmZmVyV2FzRW1wdHkpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQotewotICAgIExPR19XSVRIX1NUUkVBTShSZW1vdGVSZW5kZXJpbmdCdWZmZXJWb2xhdGls
aXR5LCBzdHJlYW0gPDwgIkdQVSBQcm9jZXNzOiBtYXJrU3VyZmFjZU5vblZvbGF0aWxlIC0gICIg
PDwgaWRlbnRpZmllcik7Ci0KLSAgICBhdXRvIGltYWdlQnVmZmVyID0gbV9yZW1vdGVSZXNvdXJj
ZUNhY2hlLmNhY2hlZEltYWdlQnVmZmVyKHsgaWRlbnRpZmllciwgbV9ncHVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLT53ZWJQcm9jZXNzSWRlbnRpZmllcigpIH0pOwotICAgIGlmICghaW1hZ2VCdWZm
ZXIpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoeyB9LCBmYWxzZSk7Ci0gICAgICAgIHJl
dHVybjsKLSAgICB9Ci0KLSAgICBhdXRvIGJhY2tlbmRIYW5kbGUgPSBoYW5kbGVGcm9tQnVmZmVy
KCppbWFnZUJ1ZmZlcik7Ci0gICAgYXV0byBwcmV2aW91c1N0YXRlID0gaW1hZ2VCdWZmZXItPnNl
dE5vblZvbGF0aWxlKCk7Ci0gICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShiYWNrZW5kSGFu
ZGxlKSwgcHJldmlvdXNTdGF0ZSA9PSBTZXROb25Wb2xhdGlsZVJlc3VsdDo6RW1wdHkpOwotfQot
Ci0vLyBUaGlzIGlzIHRoZSBHUFUgUHJvY2VzcyB2ZXJzaW9uIG9mIFJlbW90ZUxheWVyQmFja2lu
Z1N0b3JlOjpzd2FwVG9WYWxpZEZyb250QnVmZmVyKCkuCi12b2lkIFJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQ6OnN3YXBUb1ZhbGlkRnJvbnRCdWZmZXIoY29uc3QgQnVmZmVySWRlbnRpZmllclNldCYg
YnVmZmVyU2V0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IEJ1ZmZlcklkZW50aWZpZXJT
ZXQmIHN3YXBwZWRCdWZmZXJTZXQsIHN0ZDo6b3B0aW9uYWw8SW1hZ2VCdWZmZXJCYWNrZW5kSGFu
ZGxlPiYmIGZyb250QnVmZmVySGFuZGxlLCBib29sIGZyb250QnVmZmVyV2FzRW1wdHkpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQorLy8gVGhpcyBpcyB0aGUgR1BVIFByb2Nlc3MgdmVyc2lvbiBvZiBS
ZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6cHJlcGFyZUJ1ZmZlcnMoKS4KK3ZvaWQgUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZDo6cHJlcGFyZUJ1ZmZlcnNGb3JEaXNwbGF5KGNvbnN0IEJ1ZmZlcklkZW50
aWZpZXJTZXQmIGJ1ZmZlclNldCwgYm9vbCBzdXBwb3J0c1BhcnRpYWxSZXBhaW50LCBib29sIGhh
c0VtcHR5RGlydHlSZWdpb24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgQnVmZmVySWRl
bnRpZmllclNldCYgc3dhcHBlZEJ1ZmZlclNldCwgc3RkOjpvcHRpb25hbDxJbWFnZUJ1ZmZlckJh
Y2tlbmRIYW5kbGU+JiYgZnJvbnRCdWZmZXJIYW5kbGUsIFN3YXBCdWZmZXJzRGlzcGxheVJlcXVp
cmVtZW50IHByZXBhcmVSZXN1bHQpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGF1dG8g
ZmV0Y2hCdWZmZXIgPSBbJl0oc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXI+IGlkZW50aWZpZXIpIC0+IEltYWdlQnVmZmVyKiB7CiAgICAgICAgIHJldHVybiBpZGVudGlm
aWVyID8gbV9yZW1vdGVSZXNvdXJjZUNhY2hlLmNhY2hlZEltYWdlQnVmZmVyKHsgKmlkZW50aWZp
ZXIsIG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy0+d2ViUHJvY2Vzc0lkZW50aWZpZXIoKSB9
KSA6IG51bGxwdHI7CiAgICAgfTsKIAorICAgIGF1dG8gYnVmZmVySWRlbnRpZmVyID0gW10oSW1h
Z2VCdWZmZXIqIGJ1ZmZlcikgLT4gc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXI+IHsKKyAgICAgICAgaWYgKCFidWZmZXIpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OworICAgICAgICByZXR1cm4gYnVmZmVyLT5yZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXIoKTsKKyAgICB9OworCiAgICAgYXV0byBmcm9udEJ1ZmZlciA9IGZldGNoQnVmZmVyKGJ1ZmZl
clNldC5mcm9udCk7CiAgICAgYXV0byBiYWNrQnVmZmVyID0gZmV0Y2hCdWZmZXIoYnVmZmVyU2V0
LmJhY2spOwogICAgIGF1dG8gc2Vjb25kYXJ5QmFja0J1ZmZlciA9IGZldGNoQnVmZmVyKGJ1ZmZl
clNldC5zZWNvbmRhcnlCYWNrKTsKIAotICAgIExPR19XSVRIX1NUUkVBTShSZW1vdGVSZW5kZXJp
bmdCdWZmZXJWb2xhdGlsaXR5LCBzdHJlYW0gPDwgIkdQVSBQcm9jZXNzOiBSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kOjpzd2FwVG9WYWxpZEZyb250QnVmZmVyIC0gZnJvbnQgIgorICAgIExPR19XSVRI
X1NUUkVBTShSZW1vdGVSZW5kZXJpbmdCdWZmZXJWb2xhdGlsaXR5LCBzdHJlYW0gPDwgIkdQVSBQ
cm9jZXNzOiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpwcmVwYXJlQnVmZmVyc0ZvckRpc3BsYXkg
LSBmcm9udCAiCiAgICAgICAgIDw8IGJ1ZmZlclNldC5mcm9udCA8PCAiIChpbi11c2UgIiA8PCAo
ZnJvbnRCdWZmZXIgJiYgZnJvbnRCdWZmZXItPmlzSW5Vc2UoKSkgPDwgIikgIgogICAgICAgICA8
PCBidWZmZXJTZXQuYmFjayA8PCAiIChpbi11c2UgIiA8PCAoYmFja0J1ZmZlciAmJiBiYWNrQnVm
ZmVyLT5pc0luVXNlKCkpIDw8ICIpICIKICAgICAgICAgPDwgYnVmZmVyU2V0LnNlY29uZGFyeUJh
Y2sgPDwgIiAoaW4tdXNlICIgPDwgKHNlY29uZGFyeUJhY2tCdWZmZXIgJiYgc2Vjb25kYXJ5QmFj
a0J1ZmZlci0+aXNJblVzZSgpKSA8PCAiKSAiKTsKIAorICAgIGJvb2wgbmVlZHNGdWxsRGlzcGxh
eSA9IGZhbHNlOworCisgICAgaWYgKGZyb250QnVmZmVyKSB7CisgICAgICAgIGF1dG8gcHJldmlv
dXNTdGF0ZSA9IGZyb250QnVmZmVyLT5zZXROb25Wb2xhdGlsZSgpOworICAgICAgICBpZiAocHJl
dmlvdXNTdGF0ZSA9PSBTZXROb25Wb2xhdGlsZVJlc3VsdDo6RW1wdHkpCisgICAgICAgICAgICBu
ZWVkc0Z1bGxEaXNwbGF5ID0gdHJ1ZTsKKyAgICB9CisKKyAgICBpZiAoZnJvbnRCdWZmZXIgJiYg
IW5lZWRzRnVsbERpc3BsYXkgJiYgaGFzRW1wdHlEaXJ0eVJlZ2lvbikgeworICAgICAgICAvLyBO
byBzd2FwIG5lY2Vzc2FyeSwgYnV0IHdlIGRvIG5lZWQgdG8gcmV0dXJuIHRoZSBmcm9udCBidWZm
ZXIgaGFuZGxlLgorICAgICAgICBhdXRvIGZyb250QnVmZmVySGFuZGxlID0gaGFuZGxlRnJvbUJ1
ZmZlcigqZnJvbnRCdWZmZXIpOworICAgICAgICBhdXRvIHJlc3VsdEJ1ZmZlclNldCA9IEJ1ZmZl
cklkZW50aWZpZXJTZXQgeyBidWZmZXJJZGVudGlmZXIoZnJvbnRCdWZmZXIpLCBidWZmZXJJZGVu
dGlmZXIoYmFja0J1ZmZlciksIGJ1ZmZlcklkZW50aWZlcihzZWNvbmRhcnlCYWNrQnVmZmVyKSB9
OworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihyZXN1bHRCdWZmZXJTZXQsIFdURk1vdmUoZnJv
bnRCdWZmZXJIYW5kbGUpLCBTd2FwQnVmZmVyc0Rpc3BsYXlSZXF1aXJlbWVudDo6TmVlZHNOb0Rp
c3BsYXkpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIAorICAgIGlmICghZnJvbnRCdWZm
ZXIgfHwgIXN1cHBvcnRzUGFydGlhbFJlcGFpbnQpCisgICAgICAgIG5lZWRzRnVsbERpc3BsYXkg
PSB0cnVlOworCiAgICAgaWYgKCFiYWNrQnVmZmVyIHx8IGJhY2tCdWZmZXItPmlzSW5Vc2UoKSkg
ewogICAgICAgICBzdGQ6OnN3YXAoYmFja0J1ZmZlciwgc2Vjb25kYXJ5QmFja0J1ZmZlcik7CiAK
QEAgLTQ0MiwyNiArNDUzLDIyIEBAIHZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6c3dhcFRv
VmFsaWRGcm9udEJ1ZmZlcihjb25zdCBCdWZmZXJJZGVudGlmaWVyU2V0JiBiCiAgICAgc3RkOjpz
d2FwKGZyb250QnVmZmVyLCBiYWNrQnVmZmVyKTsKIAogICAgIHN0ZDo6b3B0aW9uYWw8SW1hZ2VC
dWZmZXJCYWNrZW5kSGFuZGxlPiBmcm9udEJ1ZmZlckhhbmRsZTsKLSAgICBib29sIGZyb250QnVm
ZmVyV2FzRW1wdHkgPSBmYWxzZTsKICAgICBpZiAoZnJvbnRCdWZmZXIpIHsKICAgICAgICAgYXV0
byBwcmV2aW91c1N0YXRlID0gZnJvbnRCdWZmZXItPnNldE5vblZvbGF0aWxlKCk7Ci0gICAgICAg
IGZyb250QnVmZmVyV2FzRW1wdHkgPSBwcmV2aW91c1N0YXRlID09IFNldE5vblZvbGF0aWxlUmVz
dWx0OjpFbXB0eTsKKyAgICAgICAgaWYgKHByZXZpb3VzU3RhdGUgPT0gU2V0Tm9uVm9sYXRpbGVS
ZXN1bHQ6OkVtcHR5KQorICAgICAgICAgICAgbmVlZHNGdWxsRGlzcGxheSA9IHRydWU7CisKICAg
ICAgICAgZnJvbnRCdWZmZXJIYW5kbGUgPSBoYW5kbGVGcm9tQnVmZmVyKCpmcm9udEJ1ZmZlcik7
CiAgICAgfQogCi0gICAgYXV0byBidWZmZXJJZGVudGlmZXIgPSBbXShJbWFnZUJ1ZmZlciogYnVm
ZmVyKSAtPiBzdGQ6Om9wdGlvbmFsPFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4gewotICAg
ICAgICBpZiAoIWJ1ZmZlcikKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAg
ICAgIHJldHVybiBidWZmZXItPnJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigpOwotICAgIH07
Ci0gICAgCiAgICAgYXV0byByZXN1bHRCdWZmZXJTZXQgPSBCdWZmZXJJZGVudGlmaWVyU2V0IHsg
YnVmZmVySWRlbnRpZmVyKGZyb250QnVmZmVyKSwgYnVmZmVySWRlbnRpZmVyKGJhY2tCdWZmZXIp
LCBidWZmZXJJZGVudGlmZXIoc2Vjb25kYXJ5QmFja0J1ZmZlcikgfTsKIAotICAgIExPR19XSVRI
X1NUUkVBTShSZW1vdGVSZW5kZXJpbmdCdWZmZXJWb2xhdGlsaXR5LCBzdHJlYW0gPDwgIkdQVSBQ
cm9jZXNzOiBzd2FwVG9WYWxpZEZyb250QnVmZmVyIC0gc3dhcHBlZCBmcm9tIFsiCisgICAgTE9H
X1dJVEhfU1RSRUFNKFJlbW90ZVJlbmRlcmluZ0J1ZmZlclZvbGF0aWxpdHksIHN0cmVhbSA8PCAi
R1BVIFByb2Nlc3M6IHByZXBhcmVCdWZmZXJzRm9yRGlzcGxheSAtIHN3YXBwZWQgZnJvbSBbIgog
ICAgICAgICA8PCBidWZmZXJTZXQuZnJvbnQgPDwgIiwgIiA8PCBidWZmZXJTZXQuYmFjayA8PCAi
LCAiIDw8IGJ1ZmZlclNldC5zZWNvbmRhcnlCYWNrIDw8ICJdIHRvIFsiCiAgICAgICAgIDw8IHJl
c3VsdEJ1ZmZlclNldC5mcm9udCA8PCAiLCAiIDw8IHJlc3VsdEJ1ZmZlclNldC5iYWNrIDw8ICIs
ICIgPDwgcmVzdWx0QnVmZmVyU2V0LnNlY29uZGFyeUJhY2sgPDwgIl0iKTsKIAotICAgIGNvbXBs
ZXRpb25IYW5kbGVyKHJlc3VsdEJ1ZmZlclNldCwgV1RGTW92ZShmcm9udEJ1ZmZlckhhbmRsZSks
IGZyb250QnVmZmVyV2FzRW1wdHkpOworICAgIGF1dG8gZGlzcGxheVJlcXVpcmVtZW50ID0gbmVl
ZHNGdWxsRGlzcGxheSA/IFN3YXBCdWZmZXJzRGlzcGxheVJlcXVpcmVtZW50OjpOZWVkc0Z1bGxE
aXNwbGF5IDogU3dhcEJ1ZmZlcnNEaXNwbGF5UmVxdWlyZW1lbnQ6Ok5lZWRzTm9ybWFsRGlzcGxh
eTsKKyAgICBjb21wbGV0aW9uSGFuZGxlcihyZXN1bHRCdWZmZXJTZXQsIFdURk1vdmUoZnJvbnRC
dWZmZXJIYW5kbGUpLCBkaXNwbGF5UmVxdWlyZW1lbnQpOwogfQogCiB2b2lkIFJlbW90ZVJlbmRl
cmluZ0JhY2tlbmQ6Om1hcmtTdXJmYWNlc1ZvbGF0aWxlKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpS
ZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+JiBpZGVudGlmaWVycywgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChjb25zdCBWZWN0b3I8V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVy
PiYgbWFya2VkVm9sYXRpbGVCdWZmZXJJZGVudGlmaWVycyk+JiYgY29tcGxldGlvbkhhbmRsZXIp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZC5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90
ZVJlbmRlcmluZ0JhY2tlbmQuaAppbmRleCA1NzMwY2Q3MTVlOGI0NmQ3NDY3ZTQ5MmRlZWQ2ZmU3
YjkxMTE3NzhjLi42YjU4OTZjMmY3YWY0ZTMxODBiZTFlNmM4OWZmZmM0ODdlYTViYzRiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5n
QmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kLmgKQEAgLTY5LDYgKzY5LDcgQEAgY2xhc3MgR1BVQ29ubmVjdGlvblRv
V2ViUHJvY2VzczsKIGNsYXNzIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI7CiBzdHJ1Y3QgQnVm
ZmVySWRlbnRpZmllclNldDsKIHN0cnVjdCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kQ3JlYXRpb25Q
YXJhbWV0ZXJzOworZW51bSBjbGFzcyBTd2FwQnVmZmVyc0Rpc3BsYXlSZXF1aXJlbWVudCA6IHVp
bnQ4X3Q7CiAKIGNsYXNzIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQgOiBwcml2YXRlIElQQzo6TWVz
c2FnZVNlbmRlciwgcHVibGljIElQQzo6U3RyZWFtTWVzc2FnZVJlY2VpdmVyIHsKIHB1YmxpYzoK
QEAgLTEyMCw4ICsxMjEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZmluYWxpemVSZW5kZXJpbmdV
cGRhdGUoUmVuZGVyaW5nVXBkYXRlSUQpOwogICAgIHZvaWQgbWFya1N1cmZhY2VzVm9sYXRpbGUo
Y29uc3QgVmVjdG9yPFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4mLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJj
ZUlkZW50aWZpZXI+JiBtYXJrZWRWb2xhdGlsZUJ1ZmZlcklkZW50aWZpZXJzKT4mJik7CiAKLSAg
ICB2b2lkIG1hcmtTdXJmYWNlTm9uVm9sYXRpbGUoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8SW1hZ2VCdWZm
ZXJCYWNrZW5kSGFuZGxlPiwgYm9vbCBidWZmZXJXYXNFbXB0eSk+JiYpOwotICAgIHZvaWQgc3dh
cFRvVmFsaWRGcm9udEJ1ZmZlcihjb25zdCBCdWZmZXJJZGVudGlmaWVyU2V0JiBidWZmZXJTZXQs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgQnVmZmVySWRlbnRpZmllclNldCYgc3dhcHBl
ZEJ1ZmZlclNldCwgc3RkOjpvcHRpb25hbDxJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGU+JiYgZnJv
bnRCdWZmZXJIYW5kbGUsIGJvb2wgZnJvbnRCdWZmZXJXYXNFbXB0eSk+JiYpOworICAgIHZvaWQg
cHJlcGFyZUJ1ZmZlcnNGb3JEaXNwbGF5KGNvbnN0IEJ1ZmZlcklkZW50aWZpZXJTZXQmIGJ1ZmZl
clNldCwgYm9vbCBzdXBwb3J0c1BhcnRpYWxSZXBhaW50LCBib29sIGhhc0VtcHR5RGlydHlSZWdp
b24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgQnVmZmVySWRlbnRpZmllclNldCYgc3dh
cHBlZEJ1ZmZlclNldCwgc3RkOjpvcHRpb25hbDxJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGU+JiYg
ZnJvbnRCdWZmZXJIYW5kbGUsIFN3YXBCdWZmZXJzRGlzcGxheVJlcXVpcmVtZW50IHByZXBhcmVS
ZXN1bHQpPiYmKTsKIAogICAgIC8vIFJlY2VpdmVkIG1lc3NhZ2VzIHRyYW5zbGF0ZWQgdG8gdXNl
IFF1YWxpZmllZFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllci4KICAgICB2b2lkIGNyZWF0ZUlt
YWdlQnVmZmVyV2l0aFF1YWxpZmllZElkZW50aWZpZXIoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXpl
JiBsb2dpY2FsU2l6ZSwgV2ViQ29yZTo6UmVuZGVyaW5nTW9kZSwgZmxvYXQgcmVzb2x1dGlvblNj
YWxlLCBjb25zdCBXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9yU3BhY2UmLCBXZWJDb3JlOjpQaXhl
bEZvcm1hdCwgUXVhbGlmaWVkUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90
ZVJlbmRlcmluZ0JhY2tlbmQubWVzc2FnZXMuaW4KaW5kZXggOTdlNTk1YWQzNzM3YjQ2NjhmMGM2
NzE0NzZlNzQwN2JkZDlhOTM4Zi4uNDM3Zjk2ZDRjN2EwMWQ5NzMxMmQwMjBiZmNlMTc3ODQyNjM4
MDIwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90
ZVJlbmRlcmluZ0JhY2tlbmQubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQubWVzc2FnZXMuaW4KQEAgLTM3LDgg
KzM3LDcgQEAgbWVzc2FnZXMgLT4gUmVtb3RlUmVuZGVyaW5nQmFja2VuZCBOb3RSZWZDb3VudGVk
IFN0cmVhbSB7CiAgICAgRGVsZXRlQWxsRm9udHMoKQogICAgIFJlbGVhc2VSZW1vdGVSZXNvdXJj
ZShXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyKQogCi0gICAgTWFya1N1cmZhY2VOb25Wb2xhdGlsZShXZWJDb3JlOjpSZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKSAtPiAoc3Rk
OjpvcHRpb25hbDxXZWJLaXQ6OkltYWdlQnVmZmVyQmFja2VuZEhhbmRsZT4gYmFja2VuZEhhbmRs
ZSwgYm9vbCBidWZmZXJXYXNFbXB0eSkgU3luY2hyb25vdXMgTm90U3RyZWFtRW5jb2RhYmxlIE5v
dFN0cmVhbUVuY29kYWJsZVJlcGx5Ci0gICAgU3dhcFRvVmFsaWRGcm9udEJ1ZmZlcihzdHJ1Y3Qg
V2ViS2l0OjpCdWZmZXJJZGVudGlmaWVyU2V0IGJ1ZmZlclNldCkgLT4gKHN0cnVjdCBXZWJLaXQ6
OkJ1ZmZlcklkZW50aWZpZXJTZXQgc3dhcHBlZEJ1ZmZlclNldCwgc3RkOjpvcHRpb25hbDxXZWJL
aXQ6OkltYWdlQnVmZmVyQmFja2VuZEhhbmRsZT4gZnJvbnRCdWZmZXJIYW5kbGUsIGJvb2wgZnJv
bnRCdWZmZXJXYXNFbXB0eSkgU3luY2hyb25vdXMgTm90U3RyZWFtRW5jb2RhYmxlIE5vdFN0cmVh
bUVuY29kYWJsZVJlcGx5CisgICAgUHJlcGFyZUJ1ZmZlcnNGb3JEaXNwbGF5KHN0cnVjdCBXZWJL
aXQ6OkJ1ZmZlcklkZW50aWZpZXJTZXQgYnVmZmVyU2V0LCBib29sIHN1cHBvcnRzUGFydGlhbFJl
cGFpbnQsIGJvb2wgaGFzRW1wdHlEaXJ0eVJlZ2lvbikgLT4gKHN0cnVjdCBXZWJLaXQ6OkJ1ZmZl
cklkZW50aWZpZXJTZXQgc3dhcHBlZEJ1ZmZlclNldCwgc3RkOjpvcHRpb25hbDxXZWJLaXQ6Oklt
YWdlQnVmZmVyQmFja2VuZEhhbmRsZT4gZnJvbnRCdWZmZXJIYW5kbGUsIGVudW06dWludDhfdCBX
ZWJLaXQ6OlN3YXBCdWZmZXJzRGlzcGxheVJlcXVpcmVtZW50IHByZXBhcmVSZXN1bHQpIFN5bmNo
cm9ub3VzIE5vdFN0cmVhbUVuY29kYWJsZSBOb3RTdHJlYW1FbmNvZGFibGVSZXBseQogCiAgICAg
TWFya1N1cmZhY2VzVm9sYXRpbGUoVmVjdG9yPFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRl
bnRpZmllcj4gcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVycykgLT4gKFZlY3RvcjxXZWJDb3Jl
OjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+IG1hcmtlZFZvbGF0aWxlQnVmZmVySWRlbnRp
ZmllcnMpIFN5bmNocm9ub3VzCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Jl
bW90ZUxheWVyVHJlZS9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5oIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlLmgKaW5kZXggNjY5
MDBkYTM3Nzg0MzA1NzE1YTU2YWRiMGM2N2IwNmIxMDUxYTZjNi4uOTVhMzM0OWY3ZjhkMmY0YzNm
Y2UwYWZjMjY0NDY4OWU1NzVkYTJjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQv
UmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlLmgKKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlLmgKQEAg
LTQ1LDYgKzQ1LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFBsYXRmb3JtQ0FMYXll
clJlbW90ZTsKIGNsYXNzIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlQ29sbGVjdGlvbjsKK2VudW0g
Y2xhc3MgU3dhcEJ1ZmZlcnNEaXNwbGF5UmVxdWlyZW1lbnQgOiB1aW50OF90OwogCiBjbGFzcyBS
ZW1vdGVMYXllckJhY2tpbmdTdG9yZSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUmVtb3Rl
TGF5ZXJCYWNraW5nU3RvcmUpOwpAQCAtNjYsMTIgKzY3LDcgQEAgcHVibGljOgogCiAgICAgdm9p
ZCBzZXRDb250ZW50cyhXVEY6Ok1hY2hTZW5kUmlnaHQmJiBzdXJmYWNlSGFuZGxlKTsKIAotICAg
IGVudW0gY2xhc3MgUHJlcGFyZUJ1ZmZlcnNSZXN1bHQgOiB1aW50OF90IHsKLSAgICAgICAgTmVl
ZHNGdWxsRGlzcGxheSwKLSAgICAgICAgTmVlZHNOb3JtYWxEaXNwbGF5LAotICAgICAgICBOZWVk
c05vRGlzcGxheQotICAgIH07Ci0gICAgUHJlcGFyZUJ1ZmZlcnNSZXN1bHQgcHJlcGFyZUJ1ZmZl
cnMoYm9vbCBoYXNFbXB0eURpcnR5UmVnaW9uKTsKKyAgICBTd2FwQnVmZmVyc0Rpc3BsYXlSZXF1
aXJlbWVudCBwcmVwYXJlQnVmZmVycyhib29sIGhhc0VtcHR5RGlydHlSZWdpb24pOwogCiAgICAg
Ly8gUmV0dXJucyB0cnVlIGlmIHRoZSBiYWNraW5nIHN0b3JlIGNoYW5nZWQuCiAgICAgYm9vbCBw
cmVwYXJlVG9EaXNwbGF5KCk7CkBAIC0xMTcsNiArMTEzLDkgQEAgcHVibGljOgogICAgIGJvb2wg
c2V0QnVmZmVyVm9sYXRpbGUoQnVmZmVyVHlwZSk7CiAgICAgV2ViQ29yZTo6U2V0Tm9uVm9sYXRp
bGVSZXN1bHQgc2V0RnJvbnRCdWZmZXJOb25Wb2xhdGlsZSgpOwogCisgICAgYm9vbCBoYXNFbXB0
eURpcnR5UmVnaW9uKCkgY29uc3QgeyByZXR1cm4gbV9kaXJ0eVJlZ2lvbi5pc0VtcHR5KCkgfHwg
bV9zaXplLmlzRW1wdHkoKTsgfQorICAgIGJvb2wgc3VwcG9ydHNQYXJ0aWFsUmVwYWludCgpIGNv
bnN0OworCiAgICAgTW9ub3RvbmljVGltZSBsYXN0RGlzcGxheVRpbWUoKSBjb25zdCB7IHJldHVy
biBtX2xhc3REaXNwbGF5VGltZTsgfQogCiAgICAgdm9pZCBjbGVhckJhY2tpbmdTdG9yZSgpOwpA
QCAtMTQyLDggKzE0MSw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBzZXRCdWZmZXJWb2xhdGlsZShC
dWZmZXImKTsKICAgICBXZWJDb3JlOjpTZXROb25Wb2xhdGlsZVJlc3VsdCBzZXRCdWZmZXJOb25W
b2xhdGlsZShCdWZmZXImKTsKIAotICAgIGJvb2wgc3VwcG9ydHNQYXJ0aWFsUmVwYWludCgpIGNv
bnN0OwotCiAgICAgUGxhdGZvcm1DQUxheWVyUmVtb3RlKiBtX2xheWVyOwogCiAgICAgV2ViQ29y
ZTo6RmxvYXRTaXplIG1fc2l6ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Jl
bW90ZUxheWVyVHJlZS9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5tbSBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5tbQppbmRleCA4
NzJiM2U3MmM2ODI0ZTU3MDIzYjhjYTI2Yzk4ODFlZDY3ZDY5YmRjLi5hZmQ5MDE4NmNhNTQxMmE1
ZGFiOTc0YTc5ZjRmODc2NjBjN2VhYzNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUubW0KKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlLm1t
CkBAIC0zNSw2ICszNSw3IEBACiAjaW1wb3J0ICJSZW1vdGVMYXllclRyZWVDb250ZXh0LmgiCiAj
aW1wb3J0ICJSZW1vdGVMYXllclRyZWVMYXllcnMuaCIKICNpbXBvcnQgIlNoYXJlYWJsZUJpdG1h
cC5oIgorI2ltcG9ydCAiU3dhcEJ1ZmZlcnNEaXNwbGF5UmVxdWlyZW1lbnQuaCIKICNpbXBvcnQg
IldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzcy5oIgogI2ltcG9y
dCA8UXVhcnR6Q29yZS9RdWFydHpDb3JlLmg+CkBAIC0yNjEsMTIgKzI2MiwxMiBAQCB2b2lkIFJl
bW90ZUxheWVyQmFja2luZ1N0b3JlOjpzZXRDb250ZW50cyhXVEY6Ok1hY2hTZW5kUmlnaHQmJiBj
b250ZW50cykKIH0KIAogI2lmICFMT0dfRElTQUJMRUQKLXN0YXRpYyBUZXh0U3RyZWFtJiBvcGVy
YXRvcjw8KFRleHRTdHJlYW0mIHRzLCBSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6UHJlcGFyZUJ1
ZmZlcnNSZXN1bHQgcmVzdWx0KQorc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0
cmVhbSYgdHMsIFN3YXBCdWZmZXJzRGlzcGxheVJlcXVpcmVtZW50IHJlc3VsdCkKIHsKICAgICBz
d2l0Y2ggKHJlc3VsdCkgewotICAgIGNhc2UgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OlByZXBh
cmVCdWZmZXJzUmVzdWx0OjpOZWVkc0Z1bGxEaXNwbGF5OiB0cyA8PCAiZnVsbCBkaXNwbGF5Ijsg
YnJlYWs7Ci0gICAgY2FzZSBSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6UHJlcGFyZUJ1ZmZlcnNS
ZXN1bHQ6Ok5lZWRzTm9ybWFsRGlzcGxheTogdHMgPDwgIm5vcm1hbCBkaXNwbGF5IjsgYnJlYWs7
Ci0gICAgY2FzZSBSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6UHJlcGFyZUJ1ZmZlcnNSZXN1bHQ6
Ok5lZWRzTm9EaXNwbGF5OiB0cyA8PCAibm8gZGlzcGxheSI7IGJyZWFrOworICAgIGNhc2UgU3dh
cEJ1ZmZlcnNEaXNwbGF5UmVxdWlyZW1lbnQ6Ok5lZWRzRnVsbERpc3BsYXk6IHRzIDw8ICJmdWxs
IGRpc3BsYXkiOyBicmVhazsKKyAgICBjYXNlIFN3YXBCdWZmZXJzRGlzcGxheVJlcXVpcmVtZW50
OjpOZWVkc05vcm1hbERpc3BsYXk6IHRzIDw8ICJub3JtYWwgZGlzcGxheSI7IGJyZWFrOworICAg
IGNhc2UgU3dhcEJ1ZmZlcnNEaXNwbGF5UmVxdWlyZW1lbnQ6Ok5lZWRzTm9EaXNwbGF5OiB0cyA8
PCAibm8gZGlzcGxheSI7IGJyZWFrOwogICAgIH0KICAgICByZXR1cm4gdHM7CiB9CkBAIC0yODQs
NiArMjg1LDggQEAgYm9vbCBSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6cHJlcGFyZVRvRGlzcGxh
eSgpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKKyAgICBMT0dfV0lUSF9TVFJFQU0o
UmVtb3RlUmVuZGVyaW5nQnVmZmVyVm9sYXRpbGl0eSwgc3RyZWFtIDw8ICJSZW1vdGVMYXllckJh
Y2tpbmdTdG9yZSAiIDw8IG1fbGF5ZXItPmxheWVySUQoKSA8PCAiIHByZXBhcmVUb0Rpc3BsYXko
KSIpOworCiAgICAgYm9vbCBuZWVkVG9FbmNvZGVCYWNraW5nU3RvcmUgPSBjb2xsZWN0aW9uLT5i
YWNraW5nU3RvcmVXaWxsQmVEaXNwbGF5ZWQoKnRoaXMpOwogCiAgICAgYXV0byYgbGF5ZXJPd25l
ciA9ICptX2xheWVyLT5vd25lcigpOwpAQCAtMjk2LDE0ICsyOTksMTQgQEAgYm9vbCBSZW1vdGVM
YXllckJhY2tpbmdTdG9yZTo6cHJlcGFyZVRvRGlzcGxheSgpCiAKICAgICBtX2NvbnRlbnRzQnVm
ZmVySGFuZGxlID0gc3RkOjpudWxsb3B0OwogCi0gICAgYXV0byBkaXNwbGF5UmVxdWlyZW1lbnQg
PSBwcmVwYXJlQnVmZmVycyhtX2RpcnR5UmVnaW9uLmlzRW1wdHkoKSB8fCBtX3NpemUuaXNFbXB0
eSgpKTsKKyAgICBhdXRvIGRpc3BsYXlSZXF1aXJlbWVudCA9IGNvbGxlY3Rpb24tPnByZXBhcmVC
YWNraW5nU3RvcmVCdWZmZXJzKCp0aGlzKTsKIAogICAgIExPR19XSVRIX1NUUkVBTShSZW1vdGVS
ZW5kZXJpbmdCdWZmZXJWb2xhdGlsaXR5LCBzdHJlYW0gPDwgIlJlbW90ZUxheWVyQmFja2luZ1N0
b3JlICIgPDwgbV9sYXllci0+bGF5ZXJJRCgpIDw8ICIgcHJlcGFyZVRvRGlzcGxheSgpIC0gIiA8
PCBkaXNwbGF5UmVxdWlyZW1lbnQpOwogCi0gICAgaWYgKGRpc3BsYXlSZXF1aXJlbWVudCA9PSBQ
cmVwYXJlQnVmZmVyc1Jlc3VsdDo6TmVlZHNOb0Rpc3BsYXkpCisgICAgaWYgKGRpc3BsYXlSZXF1
aXJlbWVudCA9PSBTd2FwQnVmZmVyc0Rpc3BsYXlSZXF1aXJlbWVudDo6TmVlZHNOb0Rpc3BsYXkp
CiAgICAgICAgIHJldHVybiBuZWVkVG9FbmNvZGVCYWNraW5nU3RvcmU7CiAKLSAgICBpZiAoZGlz
cGxheVJlcXVpcmVtZW50ID09IFByZXBhcmVCdWZmZXJzUmVzdWx0OjpOZWVkc0Z1bGxEaXNwbGF5
KQorICAgIGlmIChkaXNwbGF5UmVxdWlyZW1lbnQgPT0gU3dhcEJ1ZmZlcnNEaXNwbGF5UmVxdWly
ZW1lbnQ6Ok5lZWRzRnVsbERpc3BsYXkpCiAgICAgICAgIHNldE5lZWRzRGlzcGxheSgpOwogCiAg
ICAgaWYgKGxheWVyT3duZXIucGxhdGZvcm1DQUxheWVyU2hvd1JlcGFpbnRDb3VudGVyKG1fbGF5
ZXIpKSB7CkBAIC0zMjMsMjkgKzMyNiwyNyBAQCBib29sIFJlbW90ZUxheWVyQmFja2luZ1N0b3Jl
OjpwcmVwYXJlVG9EaXNwbGF5KCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYXV0byBSZW1vdGVM
YXllckJhY2tpbmdTdG9yZTo6cHJlcGFyZUJ1ZmZlcnMoYm9vbCBoYXNFbXB0eURpcnR5UmVnaW9u
KSAtPiBQcmVwYXJlQnVmZmVyc1Jlc3VsdAorU3dhcEJ1ZmZlcnNEaXNwbGF5UmVxdWlyZW1lbnQg
UmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OnByZXBhcmVCdWZmZXJzKGJvb2wgaGFzRW1wdHlEaXJ0
eVJlZ2lvbikKIHsKLSAgICBhdXRvKiBjb2xsZWN0aW9uID0gYmFja2luZ1N0b3JlQ29sbGVjdGlv
bigpOwotICAgIGlmICghY29sbGVjdGlvbikKLSAgICAgICAgcmV0dXJuIFByZXBhcmVCdWZmZXJz
UmVzdWx0OjpOZWVkc05vRGlzcGxheTsKKyAgICBBU1NFUlQoIVdlYlByb2Nlc3M6OnNpbmdsZXRv
bigpLnNob3VsZFVzZVJlbW90ZVJlbmRlcmluZ0ZvcihXZWJDb3JlOjpSZW5kZXJpbmdQdXJwb3Nl
OjpET00pKTsKIAogICAgIGJvb2wgbmVlZHNGdWxsRGlzcGxheSA9IGZhbHNlOwogCiAgICAgLy8g
TWFrZSB0aGUgcHJldmlvdXMgZnJvbnQgYnVmZmVyIG5vbi12b2xhdGlsZSBlYXJseSwgc28gdGhh
dCB3ZSBjYW4gZGlydHkgdGhlIHdob2xlIGxheWVyIGlmIGl0IGNvbWVzIGJhY2sgZW1wdHkuCi0g
ICAgaWYgKGNvbGxlY3Rpb24tPm1ha2VGcm9udEJ1ZmZlck5vblZvbGF0aWxlKCp0aGlzKSA9PSBX
ZWJDb3JlOjpTZXROb25Wb2xhdGlsZVJlc3VsdDo6RW1wdHkpCisgICAgaWYgKHNldEZyb250QnVm
ZmVyTm9uVm9sYXRpbGUoKSA9PSBXZWJDb3JlOjpTZXROb25Wb2xhdGlsZVJlc3VsdDo6RW1wdHkp
CiAgICAgICAgIG5lZWRzRnVsbERpc3BsYXkgPSB0cnVlOwogCiAgICAgaWYgKCFuZWVkc0Z1bGxE
aXNwbGF5ICYmIGhhc0VtcHR5RGlydHlSZWdpb24pCi0gICAgICAgIHJldHVybiBQcmVwYXJlQnVm
ZmVyc1Jlc3VsdDo6TmVlZHNOb0Rpc3BsYXk7CisgICAgICAgIHJldHVybiBTd2FwQnVmZmVyc0Rp
c3BsYXlSZXF1aXJlbWVudDo6TmVlZHNOb0Rpc3BsYXk7CiAKICAgICBpZiAoIWhhc0Zyb250QnVm
ZmVyKCkgfHwgIXN1cHBvcnRzUGFydGlhbFJlcGFpbnQoKSkKICAgICAgICAgbmVlZHNGdWxsRGlz
cGxheSA9IHRydWU7CiAKLSAgICBhdXRvIHJlc3VsdCA9IGNvbGxlY3Rpb24tPnN3YXBUb1ZhbGlk
RnJvbnRCdWZmZXIoKnRoaXMpOworICAgIGF1dG8gcmVzdWx0ID0gc3dhcFRvVmFsaWRGcm9udEJ1
ZmZlcigpOwogICAgIGlmIChyZXN1bHQgPT0gV2ViQ29yZTo6U2V0Tm9uVm9sYXRpbGVSZXN1bHQ6
OkVtcHR5KQogICAgICAgICBuZWVkc0Z1bGxEaXNwbGF5ID0gdHJ1ZTsKIAotICAgIHJldHVybiBu
ZWVkc0Z1bGxEaXNwbGF5ID8gUHJlcGFyZUJ1ZmZlcnNSZXN1bHQ6Ok5lZWRzRnVsbERpc3BsYXkg
OiBQcmVwYXJlQnVmZmVyc1Jlc3VsdDo6TmVlZHNOb3JtYWxEaXNwbGF5OworICAgIHJldHVybiBu
ZWVkc0Z1bGxEaXNwbGF5ID8gU3dhcEJ1ZmZlcnNEaXNwbGF5UmVxdWlyZW1lbnQ6Ok5lZWRzRnVs
bERpc3BsYXkgOiBTd2FwQnVmZmVyc0Rpc3BsYXlSZXF1aXJlbWVudDo6TmVlZHNOb3JtYWxEaXNw
bGF5OwogfQogCiB2b2lkIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjpwYWludENvbnRlbnRzKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVM
YXllckJhY2tpbmdTdG9yZUNvbGxlY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90
ZUxheWVyVHJlZS9SZW1vdGVMYXllckJhY2tpbmdTdG9yZUNvbGxlY3Rpb24uaAppbmRleCA3YWQ4
NzlmMWI2NDE4OTVmYTRkODkzNzljYjE4YTZkZDk5NWZkMzNiLi40YTc0Yjc2Y2RhMGM5ZWYyMWNm
ZmMxNGIxYWUwNDIwMjM2ZWRhMWU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9S
ZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmVDb2xsZWN0aW9uLmgKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyQmFja2luZ1N0
b3JlQ29sbGVjdGlvbi5oCkBAIC00Myw2ICs0Myw4IEBAIGNsYXNzIFJlbW90ZUxheWVyQmFja2lu
Z1N0b3JlOwogY2xhc3MgUmVtb3RlTGF5ZXJUcmVlQ29udGV4dDsKIGNsYXNzIFJlbW90ZUxheWVy
VHJlZVRyYW5zYWN0aW9uOwogCitlbnVtIGNsYXNzIFN3YXBCdWZmZXJzRGlzcGxheVJlcXVpcmVt
ZW50IDogdWludDhfdDsKKwogY2xhc3MgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmVDb2xsZWN0aW9u
IDogcHVibGljIENhbk1ha2VXZWFrUHRyPFJlbW90ZUxheWVyQmFja2luZ1N0b3JlQ29sbGVjdGlv
bj4gewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFJlbW90ZUxheWVyQmFja2luZ1N0b3JlQ29s
bGVjdGlvbik7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CkBAIC01Nyw4ICs1OSw3IEBA
IHB1YmxpYzoKICAgICBib29sIGJhY2tpbmdTdG9yZVdpbGxCZURpc3BsYXllZChSZW1vdGVMYXll
ckJhY2tpbmdTdG9yZSYpOwogICAgIHZvaWQgYmFja2luZ1N0b3JlQmVjYW1lVW5yZWFjaGFibGUo
UmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUmKTsKICAgICAKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OlNl
dE5vblZvbGF0aWxlUmVzdWx0IG1ha2VGcm9udEJ1ZmZlck5vblZvbGF0aWxlKFJlbW90ZUxheWVy
QmFja2luZ1N0b3JlJik7Ci0gICAgdmlydHVhbCBXZWJDb3JlOjpTZXROb25Wb2xhdGlsZVJlc3Vs
dCBzd2FwVG9WYWxpZEZyb250QnVmZmVyKFJlbW90ZUxheWVyQmFja2luZ1N0b3JlJik7CisgICAg
dmlydHVhbCBTd2FwQnVmZmVyc0Rpc3BsYXlSZXF1aXJlbWVudCBwcmVwYXJlQmFja2luZ1N0b3Jl
QnVmZmVycyhSZW1vdGVMYXllckJhY2tpbmdTdG9yZSYpOwogCiAgICAgdm9pZCBwYWludFJlYWNo
YWJsZUJhY2tpbmdTdG9yZUNvbnRlbnRzKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllckJhY2tpbmdTdG9yZUNvbGxlY3Rpb24u
bW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJCYWNr
aW5nU3RvcmVDb2xsZWN0aW9uLm1tCmluZGV4IGFkOTNjNzBkYTAwZDFjMmI4NDdlNzIzZjczMmYy
MDRhZTYxNmM1OTkuLjZmNDRjMTFlMTUwYzkwMTM4N2ExZmZhMDM5ZDU5ZWIwYjVmMWU4YWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXll
ckJhY2tpbmdTdG9yZUNvbGxlY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUmVt
b3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlQ29sbGVjdGlvbi5tbQpAQCAtMzEs
NiArMzEsNyBAQAogI2ltcG9ydCAiUGxhdGZvcm1JbWFnZUJ1ZmZlclNoYXJlYWJsZUJhY2tlbmQu
aCIKICNpbXBvcnQgIlJlbW90ZUxheWVyQmFja2luZ1N0b3JlLmgiCiAjaW1wb3J0ICJSZW1vdGVM
YXllclRyZWVDb250ZXh0LmgiCisjaW1wb3J0ICJTd2FwQnVmZmVyc0Rpc3BsYXlSZXF1aXJlbWVu
dC5oIgogI2ltcG9ydCA8V2ViQ29yZS9Db25jcmV0ZUltYWdlQnVmZmVyLmg+CiAjaW1wb3J0IDx3
dGYvdGV4dC9UZXh0U3RyZWFtLmg+CiAKQEAgLTEzNSwxNCArMTM2LDkgQEAgYm9vbCBSZW1vdGVM
YXllckJhY2tpbmdTdG9yZUNvbGxlY3Rpb246OmJhY2tpbmdTdG9yZVdpbGxCZURpc3BsYXllZChS
ZW1vdGVMYXllckIKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotV2ViQ29yZTo6U2V0Tm9uVm9sYXRp
bGVSZXN1bHQgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmVDb2xsZWN0aW9uOjptYWtlRnJvbnRCdWZm
ZXJOb25Wb2xhdGlsZShSZW1vdGVMYXllckJhY2tpbmdTdG9yZSYgYmFja2luZ1N0b3JlKQorU3dh
cEJ1ZmZlcnNEaXNwbGF5UmVxdWlyZW1lbnQgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmVDb2xsZWN0
aW9uOjpwcmVwYXJlQmFja2luZ1N0b3JlQnVmZmVycyhSZW1vdGVMYXllckJhY2tpbmdTdG9yZSYg
YmFja2luZ1N0b3JlKQogewotICAgIHJldHVybiBiYWNraW5nU3RvcmUuc2V0RnJvbnRCdWZmZXJO
b25Wb2xhdGlsZSgpOwotfQotCi1XZWJDb3JlOjpTZXROb25Wb2xhdGlsZVJlc3VsdCBSZW1vdGVM
YXllckJhY2tpbmdTdG9yZUNvbGxlY3Rpb246OnN3YXBUb1ZhbGlkRnJvbnRCdWZmZXIoUmVtb3Rl
TGF5ZXJCYWNraW5nU3RvcmUmIGJhY2tpbmdTdG9yZSkKLXsKLSAgICByZXR1cm4gYmFja2luZ1N0
b3JlLnN3YXBUb1ZhbGlkRnJvbnRCdWZmZXIoKTsKKyAgICByZXR1cm4gYmFja2luZ1N0b3JlLnBy
ZXBhcmVCdWZmZXJzKGJhY2tpbmdTdG9yZS5oYXNFbXB0eURpcnR5UmVnaW9uKCkpOwogfQogCiBi
b29sIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlQ29sbGVjdGlvbjo6bWFya0JhY2tpbmdTdG9yZVZv
bGF0aWxlKFJlbW90ZUxheWVyQmFja2luZ1N0b3JlJiBiYWNraW5nU3RvcmUsIE9wdGlvblNldDxW
b2xhdGlsaXR5TWFya2luZ0JlaGF2aW9yPiBtYXJraW5nQmVoYXZpb3IsIE1vbm90b25pY1RpbWUg
bm93KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1Jl
bW90ZUxheWVyV2l0aFJlbW90ZVJlbmRlcmluZ0JhY2tpbmdTdG9yZUNvbGxlY3Rpb24uaCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllcldpdGhSZW1vdGVS
ZW5kZXJpbmdCYWNraW5nU3RvcmVDb2xsZWN0aW9uLmgKaW5kZXggMzFiYjdmZTIxNGI3NWNmMGFi
NzQ2MjliYWU5NWJjOGQ4ZmFjNmRlOS4uYTg1M2IwZTMxNzFkNTcxMDhlMDIyNThhNzRlNjUzODlm
NmIzNWQ4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVl
L1JlbW90ZUxheWVyV2l0aFJlbW90ZVJlbmRlcmluZ0JhY2tpbmdTdG9yZUNvbGxlY3Rpb24uaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJXaXRo
UmVtb3RlUmVuZGVyaW5nQmFja2luZ1N0b3JlQ29sbGVjdGlvbi5oCkBAIC00Myw4ICs0Myw3IEBA
IHByaXZhdGU6CiAgICAgCiAgICAgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5JiByZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kUHJveHkoKTsKIAotICAgIFdlYkNvcmU6OlNldE5vblZvbGF0aWxlUmVz
dWx0IG1ha2VGcm9udEJ1ZmZlck5vblZvbGF0aWxlKFJlbW90ZUxheWVyQmFja2luZ1N0b3JlJikg
ZmluYWw7Ci0gICAgV2ViQ29yZTo6U2V0Tm9uVm9sYXRpbGVSZXN1bHQgc3dhcFRvVmFsaWRGcm9u
dEJ1ZmZlcihSZW1vdGVMYXllckJhY2tpbmdTdG9yZSYpIGZpbmFsOworICAgIFN3YXBCdWZmZXJz
RGlzcGxheVJlcXVpcmVtZW50IHByZXBhcmVCYWNraW5nU3RvcmVCdWZmZXJzKFJlbW90ZUxheWVy
QmFja2luZ1N0b3JlJikgZmluYWw7CiAKICAgICBib29sIGNvbGxlY3RCYWNraW5nU3RvcmVCdWZm
ZXJJZGVudGlmaWVyc1RvTWFya1ZvbGF0aWxlKFJlbW90ZUxheWVyQmFja2luZ1N0b3JlJiwgT3B0
aW9uU2V0PFZvbGF0aWxpdHlNYXJraW5nQmVoYXZpb3I+LCBNb25vdG9uaWNUaW1lIG5vdywgVmVj
dG9yPFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4mKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyV2l0aFJl
bW90ZVJlbmRlcmluZ0JhY2tpbmdTdG9yZUNvbGxlY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJXaXRoUmVtb3RlUmVuZGVyaW5nQmFja2lu
Z1N0b3JlQ29sbGVjdGlvbi5tbQppbmRleCAxMTFhNTdmMWY4NDNiODgwOTUwZGM3ZGNkNWRhMDBk
NmQwZmZkYjg3Li5kOWE2ZWVmNTMwYTU5NzcyNzk5Y2E0NWNlZjNiNzg4NGMwNzY4ZDM3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJX
aXRoUmVtb3RlUmVuZGVyaW5nQmFja2luZ1N0b3JlQ29sbGVjdGlvbi5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJXaXRoUmVtb3RlUmVuZGVy
aW5nQmFja2luZ1N0b3JlQ29sbGVjdGlvbi5tbQpAQCAtMjksNiArMjksNyBAQAogI2ltcG9ydCAi
TG9nZ2luZy5oIgogI2ltcG9ydCAiUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5oIgogI2ltcG9ydCAi
UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmgiCisjaW1wb3J0ICJTd2FwQnVmZmVyc0Rpc3Bs
YXlSZXF1aXJlbWVudC5oIgogI2ltcG9ydCA8d3RmL3RleHQvVGV4dFN0cmVhbS5oPgogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKQEAgLTQzLDQyICs0NCw0NCBAQCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
UHJveHkmIFJlbW90ZUxheWVyV2l0aFJlbW90ZVJlbmRlcmluZ0JhY2tpbmdTdG9yZUNvbGxlY3Rp
bwogICAgIHJldHVybiBsYXllclRyZWVDb250ZXh0KCkuZW5zdXJlUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZFByb3h5KCk7CiB9CiAKLVdlYkNvcmU6OlNldE5vblZvbGF0aWxlUmVzdWx0IFJlbW90ZUxh
eWVyV2l0aFJlbW90ZVJlbmRlcmluZ0JhY2tpbmdTdG9yZUNvbGxlY3Rpb246Om1ha2VGcm9udEJ1
ZmZlck5vblZvbGF0aWxlKFJlbW90ZUxheWVyQmFja2luZ1N0b3JlJiBiYWNraW5nU3RvcmUpCitT
d2FwQnVmZmVyc0Rpc3BsYXlSZXF1aXJlbWVudCBSZW1vdGVMYXllcldpdGhSZW1vdGVSZW5kZXJp
bmdCYWNraW5nU3RvcmVDb2xsZWN0aW9uOjpwcmVwYXJlQmFja2luZ1N0b3JlQnVmZmVycyhSZW1v
dGVMYXllckJhY2tpbmdTdG9yZSYgYmFja2luZ1N0b3JlKQogewogICAgIGF1dG8gZnJvbnRCdWZm
ZXIgPSBiYWNraW5nU3RvcmUuYnVmZmVyRm9yVHlwZShSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6
QnVmZmVyVHlwZTo6RnJvbnQpOwotICAgIGlmICghZnJvbnRCdWZmZXIpCi0gICAgICAgIHJldHVy
biBXZWJDb3JlOjpTZXROb25Wb2xhdGlsZVJlc3VsdDo6RW1wdHk7CiAKLSAgICBhdXRvIGhhc0Jh
Y2tlbmRIYW5kbGUgPSBbXShjb25zdCBXZWJDb3JlOjpJbWFnZUJ1ZmZlciYgYnVmZmVyKSB7Ci0g
ICAgICAgIGlmIChhdXRvKiBiYWNrZW5kID0gYnVmZmVyLmVuc3VyZUJhY2tlbmRDcmVhdGVkKCkp
IHsKKyAgICBhdXRvIG5lZWRUb0ZldGNoRnJvbnRCdWZmZXIgPSBbXShJbWFnZUJ1ZmZlciogZnJv
bnRCdWZmZXIpIHsKKyAgICAgICAgaWYgKCFmcm9udEJ1ZmZlcikKKyAgICAgICAgICAgIHJldHVy
biB0cnVlOworCisgICAgICAgIGlmIChmcm9udEJ1ZmZlci0+dm9sYXRpbGl0eVN0YXRlKCkgPT0g
V2ViQ29yZTo6Vm9sYXRpbGl0eVN0YXRlOjpWb2xhdGlsZSkKKyAgICAgICAgICAgIHJldHVybiB0
cnVlOworCisgICAgICAgIGlmIChhdXRvKiBiYWNrZW5kID0gZnJvbnRCdWZmZXItPmVuc3VyZUJh
Y2tlbmRDcmVhdGVkKCkpIHsKICAgICAgICAgICAgIGF1dG8qIHNoYXJpbmcgPSBiYWNrZW5kLT50
b0JhY2tlbmRTaGFyaW5nKCk7Ci0gICAgICAgICAgICBpZiAoaXM8SW1hZ2VCdWZmZXJCYWNrZW5k
SGFuZGxlU2hhcmluZz4oc2hhcmluZykpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGRvd25jYXN0
PEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZVNoYXJpbmc+KCpzaGFyaW5nKS5oYXNCYWNrZW5kSGFu
ZGxlKCk7CisgICAgICAgICAgICBpZiAoaXM8SW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlU2hhcmlu
Zz4oc2hhcmluZykpIHsKKyAgICAgICAgICAgICAgICBpZiAoIWRvd25jYXN0PEltYWdlQnVmZmVy
QmFja2VuZEhhbmRsZVNoYXJpbmc+KCpzaGFyaW5nKS5oYXNCYWNrZW5kSGFuZGxlKCkpCisgICAg
ICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQogICAgICAgICB9CisK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH07CiAKLSAgICBMT0dfV0lUSF9TVFJFQU0oUmVt
b3RlUmVuZGVyaW5nQnVmZmVyVm9sYXRpbGl0eSwgc3RyZWFtIDw8ICJSZW1vdGVMYXllcldpdGhS
ZW1vdGVSZW5kZXJpbmdCYWNraW5nU3RvcmVDb2xsZWN0aW9uOjptYWtlRnJvbnRCdWZmZXJOb25W
b2xhdGlsZSAtIGZyb250IGJ1ZmZlciAiIDw8IGZyb250QnVmZmVyLT5yZW5kZXJpbmdSZXNvdXJj
ZUlkZW50aWZpZXIoKSA8PCAiIGlzIG5vbiB2b2xhdGlsZSAiIDw8IChmcm9udEJ1ZmZlci0+dm9s
YXRpbGl0eVN0YXRlKCkgPT0gV2ViQ29yZTo6Vm9sYXRpbGl0eVN0YXRlOjpOb25Wb2xhdGlsZSkp
OwotCi0gICAgaWYgKGZyb250QnVmZmVyLT52b2xhdGlsaXR5U3RhdGUoKSA9PSBXZWJDb3JlOjpW
b2xhdGlsaXR5U3RhdGU6Ok5vblZvbGF0aWxlICYmIGhhc0JhY2tlbmRIYW5kbGUoKmZyb250QnVm
ZmVyKSkKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6OlNldE5vblZvbGF0aWxlUmVzdWx0OjpWYWxp
ZDsKKyAgICAvLyBBdm9pZCBJUEMgaWYgbm90IG5lY2Vzc2FyeS4KKyAgICBpZiAoIW5lZWRUb0Zl
dGNoRnJvbnRCdWZmZXIoZnJvbnRCdWZmZXIuZ2V0KCkpICYmIGJhY2tpbmdTdG9yZS5oYXNFbXB0
eURpcnR5UmVnaW9uKCkpCisgICAgICAgIHJldHVybiBTd2FwQnVmZmVyc0Rpc3BsYXlSZXF1aXJl
bWVudDo6TmVlZHNOb0Rpc3BsYXk7CiAKICAgICBhdXRvJiByZW1vdGVSZW5kZXJpbmdCYWNrZW5k
ID0gbGF5ZXJUcmVlQ29udGV4dCgpLmVuc3VyZVJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSgp
OwotICAgIHJldHVybiByZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1hcmtTdXJmYWNlTm9uVm9sYXRp
bGUoZnJvbnRCdWZmZXItPnJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigpKTsKLX0KLQotV2Vi
Q29yZTo6U2V0Tm9uVm9sYXRpbGVSZXN1bHQgUmVtb3RlTGF5ZXJXaXRoUmVtb3RlUmVuZGVyaW5n
QmFja2luZ1N0b3JlQ29sbGVjdGlvbjo6c3dhcFRvVmFsaWRGcm9udEJ1ZmZlcihSZW1vdGVMYXll
ckJhY2tpbmdTdG9yZSYgYmFja2luZ1N0b3JlKQotewotICAgIGF1dG8mIHJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQgPSBsYXllclRyZWVDb250ZXh0KCkuZW5zdXJlUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZFByb3h5KCk7CiAKICAgICBhdXRvIGlkZW50aWZpZXJzID0gUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZFByb3h5OjpCdWZmZXJTZXQgewotICAgICAgICBiYWNraW5nU3RvcmUuYnVmZmVyRm9yVHlwZShS
ZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6QnVmZmVyVHlwZTo6RnJvbnQpLAorICAgICAgICBmcm9u
dEJ1ZmZlciwKICAgICAgICAgYmFja2luZ1N0b3JlLmJ1ZmZlckZvclR5cGUoUmVtb3RlTGF5ZXJC
YWNraW5nU3RvcmU6OkJ1ZmZlclR5cGU6OkJhY2spLAogICAgICAgICBiYWNraW5nU3RvcmUuYnVm
ZmVyRm9yVHlwZShSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6QnVmZmVyVHlwZTo6U2Vjb25kYXJ5
QmFjaykKICAgICB9OwotICAgIGF1dG8gc3dhcFJlc3VsdCA9IHJlbW90ZVJlbmRlcmluZ0JhY2tl
bmQuc3dhcFRvVmFsaWRGcm9udEJ1ZmZlcihXVEZNb3ZlKGlkZW50aWZpZXJzKSk7CisKKyAgICBh
dXRvIHN3YXBSZXN1bHQgPSByZW1vdGVSZW5kZXJpbmdCYWNrZW5kLnByZXBhcmVCdWZmZXJzRm9y
RGlzcGxheShXVEZNb3ZlKGlkZW50aWZpZXJzKSwgYmFja2luZ1N0b3JlLnN1cHBvcnRzUGFydGlh
bFJlcGFpbnQoKSwgYmFja2luZ1N0b3JlLmhhc0VtcHR5RGlydHlSZWdpb24oKSk7CisKICAgICBi
YWNraW5nU3RvcmUuYXBwbHlTd2FwcGVkQnVmZmVycyhXVEZNb3ZlKHN3YXBSZXN1bHQuYnVmZmVy
cy5mcm9udCksIFdURk1vdmUoc3dhcFJlc3VsdC5idWZmZXJzLmJhY2spLCBXVEZNb3ZlKHN3YXBS
ZXN1bHQuYnVmZmVycy5zZWNvbmRhcnlCYWNrKSk7Ci0gICAgcmV0dXJuIHN3YXBSZXN1bHQuZnJv
bnRCdWZmZXJXYXNFbXB0eSA/IFdlYkNvcmU6OlNldE5vblZvbGF0aWxlUmVzdWx0OjpFbXB0eSA6
IFdlYkNvcmU6OlNldE5vblZvbGF0aWxlUmVzdWx0OjpWYWxpZDsKKyAgICByZXR1cm4gc3dhcFJl
c3VsdC5kaXNwbGF5UmVxdWlyZW1lbnQ7CiB9CiAKIFJlZlB0cjxXZWJDb3JlOjpJbWFnZUJ1ZmZl
cj4gUmVtb3RlTGF5ZXJXaXRoUmVtb3RlUmVuZGVyaW5nQmFja2luZ1N0b3JlQ29sbGVjdGlvbjo6
YWxsb2NhdGVCdWZmZXJGb3JCYWNraW5nU3RvcmUoY29uc3QgUmVtb3RlTGF5ZXJCYWNraW5nU3Rv
cmUmIGJhY2tpbmdTdG9yZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90
ZUxheWVyVHJlZS9Td2FwQnVmZmVyc0Rpc3BsYXlSZXF1aXJlbWVudC5oIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1N3YXBCdWZmZXJzRGlzcGxheVJlcXVpcmVtZW50LmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNDI4ZmYyMDUyZDFjNTA0YmYyZDE0OWQzN2E3NDE5YTI2MGYxZWI1OAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9Td2Fw
QnVmZmVyc0Rpc3BsYXlSZXF1aXJlbWVudC5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2VudW0gY2xhc3MgU3dhcEJ1
ZmZlcnNEaXNwbGF5UmVxdWlyZW1lbnQgOiB1aW50OF90IHsKKyAgICBOZWVkc0Z1bGxEaXNwbGF5
LAorICAgIE5lZWRzTm9ybWFsRGlzcGxheSwKKyAgICBOZWVkc05vRGlzcGxheQorfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVj
dCBFbnVtVHJhaXRzPFdlYktpdDo6U3dhcEJ1ZmZlcnNEaXNwbGF5UmVxdWlyZW1lbnQ+IHsKKyAg
ICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJLaXQ6OlN3YXBCdWZmZXJz
RGlzcGxheVJlcXVpcmVtZW50LAorICAgICAgICBXZWJLaXQ6OlN3YXBCdWZmZXJzRGlzcGxheVJl
cXVpcmVtZW50OjpOZWVkc0Z1bGxEaXNwbGF5LAorICAgICAgICBXZWJLaXQ6OlN3YXBCdWZmZXJz
RGlzcGxheVJlcXVpcmVtZW50OjpOZWVkc05vcm1hbERpc3BsYXksCisgICAgICAgIFdlYktpdDo6
U3dhcEJ1ZmZlcnNEaXNwbGF5UmVxdWlyZW1lbnQ6Ok5lZWRzTm9EaXNwbGF5CisgICAgPjsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggZmFkOWMwYzZlMTEzOGZiZTI4ZGJiMjhlZmUwOGVkYjQ4
OGU0NTE2Ni4uZDIwN2JhNTgxZWJkMzVhODlhNTJmMWY2NDdkOTIyNDlkOWRhMjEwZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNjE1
LDYgKzI2MTUsNyBAQAogCQkwRjU5NDdBNjE4N0I1MTc2MDA0Mzc4NTcgLyogUmVtb3RlU2Nyb2xs
aW5nQ29vcmRpbmF0b3JNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvck1lc3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVkU291
cmNlcy9XZWJLaXQvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JNZXNzYWdlcy5oOyBzb3VyY2VU
cmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQkwRjVFMjAwMTE4RTc3MDUxMDAzRUMzRTUg
LyogUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTBGNUUyMDAyMThFNzcwNTEwMDNFQzNFNSAvKiBQbGF0Zm9ybUNB
QW5pbWF0aW9uUmVtb3RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRm
b3JtQ0FBbmltYXRpb25SZW1vdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY2
NTk1NjcyN0RCMUQ1ODAwRUU4NzRCIC8qIFN3YXBCdWZmZXJzRGlzcGxheVJlcXVpcmVtZW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFN3YXBCdWZmZXJzRGlzcGxheVJlcXVpcmVtZW50Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNzA3Qzc3MUExRkVFODMwMERBN0E0NSAvKiBSZW1vdGVM
YXllclRyZWVTY3JvbGxpbmdQZXJmb3JtYW5jZURhdGEubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBSZW1vdGVMYXllclRyZWVTY3JvbGxpbmdQZXJmb3JtYW5jZURh
dGEubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNzA3Qzc5MUExRkVFQTMwMERB
N0E0NSAvKiBSZW1vdGVMYXllclRyZWVTY3JvbGxpbmdQZXJmb3JtYW5jZURhdGEuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTGF5ZXJUcmVlU2Nyb2xsaW5nUGVyZm9y
bWFuY2VEYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNzNCNzY3MjIyQjM4
QzYwMDgwNTMxNiAvKiBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlUmVtb3RlTWFj
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05v
ZGVSZW1vdGVNYWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODI0NCw2ICs4
MjQ1LDcgQEAKIAkJCQkwRjU5NDdBMjE4N0IzQjdEMDA0Mzc4NTcgLyogUmVtb3RlU2Nyb2xsaW5n
Q29vcmRpbmF0b3JUcmFuc2FjdGlvbi5oICovLAogCQkJCTBGQ0QwOTRFMjRDNzlGNUIwMDBDNkQz
OSAvKiBSZW1vdGVTY3JvbGxpbmdVSVN0YXRlLmNwcCAqLywKIAkJCQkwRkNEMDk0RjI0Qzc5RjVC
MDAwQzZEMzkgLyogUmVtb3RlU2Nyb2xsaW5nVUlTdGF0ZS5oICovLAorCQkJCTBGNjU5NTY3MjdE
QjFENTgwMEVFODc0QiAvKiBTd2FwQnVmZmVyc0Rpc3BsYXlSZXF1aXJlbWVudC5oICovLAogCQkJ
CTJEMTJEQUI0MjA2NjJDNzMwMDZGMDBGQiAvKiBXS0FuaW1hdGlvbkRlbGVnYXRlLmggKi8sCiAJ
CQkpOwogCQkJcGF0aCA9IFJlbW90ZUxheWVyVHJlZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5n
QmFja2VuZFByb3h5LmNwcAppbmRleCAzMjg5ZGU0Y2NmYzU5MDE2ZmY2MWM0NTBiNjM4MzZiY2E3
MDY4MTgxLi5kMzZiOGNiNjRjZThmMWMyNjhkNWJlMTk4YjU3Y2ZiODAyY2IyYjQ0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmlu
Z0JhY2tlbmRQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAj
aW5jbHVkZSAiUGxhdGZvcm1SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmgiCiAjaW5jbHVkZSAiUmVt
b3RlUmVuZGVyaW5nQmFja2VuZE1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlUmVuZGVyaW5n
QmFja2VuZFByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJTd2FwQnVmZmVyc0Rpc3BsYXlSZXF1
aXJlbWVudC5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUg
IldlYlBhZ2UuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCkBAIC0yNjYsNyArMjY3LDcgQEAg
dm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OnJlbGVhc2VSZW1vdGVSZXNvdXJjZShS
ZW5kZXJpbmdSZXNvdXJjZUlkZW50aWYKICAgICBzZW5kVG9TdHJlYW0oTWVzc2FnZXM6OlJlbW90
ZVJlbmRlcmluZ0JhY2tlbmQ6OlJlbGVhc2VSZW1vdGVSZXNvdXJjZShyZW5kZXJpbmdSZXNvdXJj
ZUlkZW50aWZpZXIpKTsKIH0KIAotYXV0byBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OnN3
YXBUb1ZhbGlkRnJvbnRCdWZmZXIoY29uc3QgQnVmZmVyU2V0JiBidWZmZXJzKSAtPiBTd2FwQnVm
ZmVyc1Jlc3VsdAorYXV0byBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OnByZXBhcmVCdWZm
ZXJzRm9yRGlzcGxheShjb25zdCBCdWZmZXJTZXQmIGJ1ZmZlcnMsIGJvb2wgc3VwcG9ydHNQYXJ0
aWFsUmVwYWludCwgYm9vbCBoYXNFbXB0eURpcnR5UmVnaW9uKSAtPiBTd2FwQnVmZmVyc1Jlc3Vs
dAogewogICAgIGF1dG8gYnVmZmVySWRlbnRpZmllciA9IFtdKEltYWdlQnVmZmVyKiBidWZmZXIp
IC0+IHN0ZDo6b3B0aW9uYWw8UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPiB7CiAgICAgICAg
IGlmICghYnVmZmVyKQpAQCAtMjk5LDEyICszMDAsMTIgQEAgYXV0byBSZW1vdGVSZW5kZXJpbmdC
YWNrZW5kUHJveHk6OnN3YXBUb1ZhbGlkRnJvbnRCdWZmZXIoY29uc3QgQnVmZmVyU2V0JiBidWZm
ZXIKIAogICAgIEJ1ZmZlcklkZW50aWZpZXJTZXQgc3dhcHBlZEJ1ZmZlclNldDsKICAgICBzdGQ6
Om9wdGlvbmFsPEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZT4gZnJvbnRCdWZmZXJIYW5kbGU7Ci0g
ICAgYm9vbCBmcm9udEJ1ZmZlcldhc0VtcHR5ID0gZmFsc2U7CisgICAgYXV0byBkaXNwbGF5UmVx
dWlyZW1lbnQgPSBTd2FwQnVmZmVyc0Rpc3BsYXlSZXF1aXJlbWVudDo6TmVlZHNOb0Rpc3BsYXk7
CiAKLSAgICBzZW5kU3luY1RvU3RyZWFtKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
OjpTd2FwVG9WYWxpZEZyb250QnVmZmVyKGJ1ZmZlclNldCksCi0gICAgICAgIE1lc3NhZ2VzOjpS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpTd2FwVG9WYWxpZEZyb250QnVmZmVyOjpSZXBseShzd2Fw
cGVkQnVmZmVyU2V0LCBmcm9udEJ1ZmZlckhhbmRsZSwgZnJvbnRCdWZmZXJXYXNFbXB0eSkpOwor
ICAgIHNlbmRTeW5jVG9TdHJlYW0oTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OlBy
ZXBhcmVCdWZmZXJzRm9yRGlzcGxheShidWZmZXJTZXQsIHN1cHBvcnRzUGFydGlhbFJlcGFpbnQs
IGhhc0VtcHR5RGlydHlSZWdpb24pLAorICAgICAgICBNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5n
QmFja2VuZDo6UHJlcGFyZUJ1ZmZlcnNGb3JEaXNwbGF5OjpSZXBseShzd2FwcGVkQnVmZmVyU2V0
LCBmcm9udEJ1ZmZlckhhbmRsZSwgZGlzcGxheVJlcXVpcmVtZW50KSk7CiAKLSAgICBMT0dfV0lU
SF9TVFJFQU0oUmVtb3RlUmVuZGVyaW5nQnVmZmVyVm9sYXRpbGl0eSwgc3RyZWFtIDw8ICJSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OnN3YXBUb1ZhbGlkRnJvbnRCdWZmZXIgc3dhcHBlZCB0
byAiIDw8IHN3YXBwZWRCdWZmZXJTZXQuZnJvbnQgPDwgIiAiIDw8IHN3YXBwZWRCdWZmZXJTZXQu
YmFjayA8PCAiICIgPDwgc3dhcHBlZEJ1ZmZlclNldC5zZWNvbmRhcnlCYWNrKTsKKyAgICBMT0df
V0lUSF9TVFJFQU0oUmVtb3RlUmVuZGVyaW5nQnVmZmVyVm9sYXRpbGl0eSwgc3RyZWFtIDw8ICJS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OnByZXBhcmVCdWZmZXJzRm9yRGlzcGxheSBzd2Fw
cGVkIHRvICIgPDwgc3dhcHBlZEJ1ZmZlclNldC5mcm9udCA8PCAiICIgPDwgc3dhcHBlZEJ1ZmZl
clNldC5iYWNrIDw8ICIgIiA8PCBzd2FwcGVkQnVmZmVyU2V0LnNlY29uZGFyeUJhY2spOwogCiAg
ICAgYXV0byBmZXRjaEJ1ZmZlcldpdGhJZGVudGlmaWVyID0gWyZdKHN0ZDo6b3B0aW9uYWw8UmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPiBpZGVudGlmaWVyLCBzdGQ6Om9wdGlvbmFsPEltYWdl
QnVmZmVyQmFja2VuZEhhbmRsZT4mJiBoYW5kbGUgPSBzdGQ6Om51bGxvcHQsIGJvb2wgaXNGcm9u
dEJ1ZmZlciA9IGZhbHNlKSAtPiBSZWZQdHI8SW1hZ2VCdWZmZXI+IHsKICAgICAgICAgaWYgKCFp
ZGVudGlmaWVyKQpAQCAtMzM2LDMyICszMzcsMTAgQEAgYXV0byBSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHk6OnN3YXBUb1ZhbGlkRnJvbnRCdWZmZXIoY29uc3QgQnVmZmVyU2V0JiBidWZmZXIK
ICAgICAgICAgICAgIGZldGNoQnVmZmVyV2l0aElkZW50aWZpZXIoc3dhcHBlZEJ1ZmZlclNldC5i
YWNrKSwKICAgICAgICAgICAgIGZldGNoQnVmZmVyV2l0aElkZW50aWZpZXIoc3dhcHBlZEJ1ZmZl
clNldC5zZWNvbmRhcnlCYWNrKQogICAgICAgICB9LAotICAgICAgICBmcm9udEJ1ZmZlcldhc0Vt
cHR5CisgICAgICAgIGRpc3BsYXlSZXF1aXJlbWVudAogICAgIH07CiB9CiAKLVNldE5vblZvbGF0
aWxlUmVzdWx0IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6bWFya1N1cmZhY2VOb25Wb2xh
dGlsZShSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcikKLXsKLSAgICBMT0df
V0lUSF9TVFJFQU0oUmVtb3RlUmVuZGVyaW5nQnVmZmVyVm9sYXRpbGl0eSwgc3RyZWFtIDw8ICJX
ZWIgUHJvY2VzczogUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjptYXJrU3VyZmFjZU5vblZv
bGF0aWxlICIgPDwgaWRlbnRpZmllcik7Ci0KLSAgICBib29sIGJ1ZmZlcldhc0VtcHR5OwotICAg
IHN0ZDo6b3B0aW9uYWw8SW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlPiBiYWNrZW5kSGFuZGxlOwot
ICAgIHNlbmRTeW5jVG9TdHJlYW0oTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6Ok1h
cmtTdXJmYWNlTm9uVm9sYXRpbGUoaWRlbnRpZmllciksIE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kOjpNYXJrU3VyZmFjZU5vblZvbGF0aWxlOjpSZXBseShiYWNrZW5kSGFuZGxlLCBi
dWZmZXJXYXNFbXB0eSkpOwotCi0gICAgYXV0byBidWZmZXIgPSBtX3JlbW90ZVJlc291cmNlQ2Fj
aGVQcm94eS5jYWNoZWRJbWFnZUJ1ZmZlcihpZGVudGlmaWVyKTsKLSAgICBpZiAoYmFja2VuZEhh
bmRsZSAmJiBidWZmZXIpIHsKLSAgICAgICAgaWYgKGF1dG8qIGJhY2tlbmQgPSBidWZmZXItPmVu
c3VyZUJhY2tlbmRDcmVhdGVkKCkpIHsKLSAgICAgICAgICAgIGF1dG8qIHNoYXJpbmcgPSBiYWNr
ZW5kLT50b0JhY2tlbmRTaGFyaW5nKCk7Ci0gICAgICAgICAgICBpZiAoaXM8SW1hZ2VCdWZmZXJC
YWNrZW5kSGFuZGxlU2hhcmluZz4oc2hhcmluZykpCi0gICAgICAgICAgICAgICAgZG93bmNhc3Q8
SW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlU2hhcmluZz4oKnNoYXJpbmcpLnNldEJhY2tlbmRIYW5k
bGUoV1RGTW92ZSgqYmFja2VuZEhhbmRsZSkpOwotICAgICAgICB9Ci0KLSAgICAgICAgYnVmZmVy
LT5zZXRWb2xhdGlsaXR5U3RhdGUoVm9sYXRpbGl0eVN0YXRlOjpOb25Wb2xhdGlsZSk7Ci0gICAg
fQotCi0gICAgcmV0dXJuIGJ1ZmZlcldhc0VtcHR5ID8gU2V0Tm9uVm9sYXRpbGVSZXN1bHQ6OkVt
cHR5IDogU2V0Tm9uVm9sYXRpbGVSZXN1bHQ6OlZhbGlkOwotfQotCiB2b2lkIFJlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eTo6bWFya1N1cmZhY2VzVm9sYXRpbGUoVmVjdG9yPFdlYkNvcmU6OlJl
bmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4mJiBpZGVudGlmaWVycywgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBWZWN0b3I8V2ViQ29y
ZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPiBtYXJrZWRWb2xhdGlsZUJ1ZmZlcklkZW50
aWZpZXJzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGlj
cy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmgKaW5kZXggZmI4Nzcx
ZDAyYzAxOWFmOGRhODdlNTU1OTE0YWUzNTI1OGY1MDVlYy4uNTY2MjkzNjg5NWM3ZDFkZmJlYjFi
NmVhN2M1MmQyODY1NWZhMjM1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eS5oCkBAIC05NSw4ICs5NSw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlbGVhc2VSZW1vdGVSZXNv
dXJjZShXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwogICAgIHZvaWQgbWFy
a1N1cmZhY2VzVm9sYXRpbGUoVmVjdG9yPFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRp
Zmllcj4mJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sIG1hZGVBbGxWb2xhdGlsZSk+JiYp
OwogCi0gICAgV2ViQ29yZTo6U2V0Tm9uVm9sYXRpbGVSZXN1bHQgbWFya1N1cmZhY2VOb25Wb2xh
dGlsZShXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwotCiAgICAgc3RydWN0
IEJ1ZmZlclNldCB7CiAgICAgICAgIFJlZlB0cjxXZWJDb3JlOjpJbWFnZUJ1ZmZlcj4gZnJvbnQ7
CiAgICAgICAgIFJlZlB0cjxXZWJDb3JlOjpJbWFnZUJ1ZmZlcj4gYmFjazsKQEAgLTEwNSw5ICsx
MDMsOSBAQCBwdWJsaWM6CiAgICAgCiAgICAgc3RydWN0IFN3YXBCdWZmZXJzUmVzdWx0IHsKICAg
ICAgICAgQnVmZmVyU2V0IGJ1ZmZlcnM7Ci0gICAgICAgIGJvb2wgZnJvbnRCdWZmZXJXYXNFbXB0
eSB7IGZhbHNlIH07CisgICAgICAgIFN3YXBCdWZmZXJzRGlzcGxheVJlcXVpcmVtZW50IGRpc3Bs
YXlSZXF1aXJlbWVudDsKICAgICB9OwotICAgIFN3YXBCdWZmZXJzUmVzdWx0IHN3YXBUb1ZhbGlk
RnJvbnRCdWZmZXIoY29uc3QgQnVmZmVyU2V0Jik7CisgICAgU3dhcEJ1ZmZlcnNSZXN1bHQgcHJl
cGFyZUJ1ZmZlcnNGb3JEaXNwbGF5KGNvbnN0IEJ1ZmZlclNldCYsIGJvb2wgc3VwcG9ydHNQYXJ0
aWFsUmVwYWludCwgYm9vbCBoYXNFbXB0eURpcnR5UmVnaW9uKTsKIAogICAgIHZvaWQgZmluYWxp
emVSZW5kZXJpbmdVcGRhdGUoKTsKICAgICBSZW5kZXJpbmdVcGRhdGVJRCByZW5kZXJpbmdVcGRh
dGVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVuZGVyaW5nVXBkYXRlSUQ7IH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>