<?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>239114</bug_id>
          
          <creation_ts>2022-04-12 00:41:35 -0700</creation_ts>
          <short_desc>Update ANGLE to 2022-04-26 (7ca11287a056d4150cba96c9c9b964153ad539cb)</short_desc>
          <delta_ts>2022-05-25 11:28:16 -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>ANGLE</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>
          
          <blocked>238134</blocked>
    
    <blocked>240830</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kimmo Kinnunen">kkinnunen</reporter>
          <assigned_to name="Kimmo Kinnunen">kkinnunen</assigned_to>
          <cc>annulen</cc>
    
    <cc>dino</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>geofflang</cc>
    
    <cc>gman</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jonahr</cc>
    
    <cc>kbr</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>kpiddington</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1860611</commentid>
    <comment_count>0</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-04-12 00:41:35 -0700</bug_when>
    <thetext>Roll ANGLE to 2022-04-12 (aed5951e3b928d537042895226f435f968330b9c)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862456</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-04-19 00:42:12 -0700</bug_when>
    <thetext>&lt;rdar://problem/91944443&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1864419</commentid>
    <comment_count>2</comment_count>
      <attachid>458356</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-04-26 05:32:58 -0700</bug_when>
    <thetext>Created attachment 458356
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1864420</commentid>
    <comment_count>3</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2022-04-26 05:35:06 -0700</bug_when>
    <thetext>Note that there are important steps to take when updating ANGLE. See https://trac.webkit.org/wiki/UpdatingANGLE</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1864595</commentid>
    <comment_count>4</comment_count>
      <attachid>458356</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2022-04-26 13:30:01 -0700</bug_when>
    <thetext>Comment on attachment 458356
Patch

Reviewed changes.diff and all the Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/ updates; everything looks good. r+</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1864835</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-04-27 10:07:25 -0700</bug_when>
    <thetext>Committed r293513 (250044@main): &lt;https://commits.webkit.org/250044@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 458356.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>458356</attachid>
            <date>2022-04-26 05:32:58 -0700</date>
            <delta_ts>2022-04-27 10:07:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239114-20220426153255.patch</filename>
            <type>text/plain</type>
            <size>1964729</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzNDIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9BTkdMRS9DaGFuZ2VMb2cgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9DaGFuZ2VMb2cKaW5k
ZXggMTcxN2U1OTU1MmNjZjQ0ZjgxY2M2NDA0MWY5MzZjNjYzMzY3ZGEzZi4uOTY1ZDNiY2ZhMjhk
ODZhZjRmMDdkNzljMjI0ZTYwZWJkOTA3ODE2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDIyMiBAQAorMjAyMi0wNC0yNiAgS2ltbW8gS2lubnVuZW4gIDxra2lubnVu
ZW5AYXBwbGUuY29tPgorCisgICAgICAgIFVwZGF0ZSBBTkdMRSB0byAyMDIyLTA0LTI2ICg3Y2Ex
MTI4N2EwNTZkNDE1MGNiYTk2YzljOWI5NjQxNTNhZDUzOWNiKQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM5MTE0CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS85MTk0NDQ0Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBDb250YWlucyB1cHN0cmVhbSBjb21taXRzOgorICAgICAgICBnaXQgbG9nIC0tb25l
bGluZSBmZTI4YTQyOTVhZjA4N2VlODJiOGY2MjliNjcxNzZiOTUwMTlhZjZkLi43Y2ExMTI4N2Ew
NTZkNDE1MGNiYTk2YzljOWI5NjQxNTNhZDUzOWNiIC0tcHJldHR5PSIlaCAlcyIKKyAgICAgICAg
N2NhMTEyODdhIFJvbGwgU3dpZnRTaGFkZXIgZnJvbSBmMTM0NjFkYmIyM2MgdG8gNWY1ZmFhM2Ey
YWFkICgxIHJldmlzaW9uKQorICAgICAgICA5ZDZiM2E3ZWUgVnVsa2FuOiBNb3ZlIG92ZXJsYXkg
ZHJhdyBhZnRlciBzd2FwJ3MgaW1wbGljaXQgZmx1c2gKKyAgICAgICAgNGFhZTU4MTVmIFZ1bGth
bjogT3ZlcmxheSB3aWRnZXRzIGZvciBzdWJtaXNzaW9uIHN0YXRpc3RpY3MKKyAgICAgICAgMDJi
OTY4NDgxIFZ1bGthbjogQWRkIHN1cHBvcnQgZm9yIEdMX1FDT01fc2hhZGluZ19yYXRlCisgICAg
ICAgIDY5NzA1ZTVjMCBBZGQgLVduby1kZXByZWNhdGVkLW5vbi1wcm90b3R5cGUKKyAgICAgICAg
YzBhYzM3NGY3IFJlcGxhY2UgYGFkYiBleGVjLW91dCBjYXRgIHdpdGggcHVsbCB0byB0ZW1wIGxv
Y2F0aW9uLgorICAgICAgICAwMTgxMTgzOTQgUmVmYWN0b3IgcGxhdGZvcm0gY29kZQorICAgICAg
ICBlYTc2Y2IwZjUgVnVsa2FuOiBBZGQgZW50cnkgcG9pbnRzIGZvciBHTF9RQ09NX3NoYWRpbmdf
cmF0ZQorICAgICAgICA2MmNhNjQ0OTIgUmVsYW5kICJGaXggQmxlbmRTdGF0ZUV4dDo6bU1heENv
bG9yTWFzayBpbml0aWFsaXphdGlvbiIKKyAgICAgICAgZDE3ODg2MTRjIFVzZSBhZGIgaW5zdGVh
ZCBvZiBjYXRhcHVsdCB0byBydW4gcGVyZiB0ZXN0cyBvbiBBbmRyb2lkLgorICAgICAgICBlMDE4
M2E0MjEgUmV2ZXJ0ICJNYXJrIGNvbnRleHRzIGFzIHNoYXJlZCB3aGVuIGltcG9ydGluZyBFR0wg
aW1hZ2VzLiIKKyAgICAgICAgNDAwZDlmZTQzIFJlbmFtZSBmZWF0dXJlIGZpbGVzIHRvICpfYXV0
b2dlbi5oCisgICAgICAgIDBmMzcxMGQ5OSBHZW5lcmFsaXplIEdldERpc3BsYXlGcm9tTmF0aXZl
RGlzcGxheQorICAgICAgICBhOGNhYzAwNTggUmVtb3ZlIG9ic2VydmVyIHdoZW4gZWxlbWVudCBh
cnJheSBidWZmZXIgaXMgZGV0YWNoZWQKKyAgICAgICAgMmQ2ZTQyZmNjIFVwZGF0ZSBQcm9ncmFt
IFBpcGVsaW5lIFRPRE9zLgorICAgICAgICA4NTNiNmVkZjkgUm9sbCBTd2lmdFNoYWRlciBmcm9t
IDcxZjMwODliNzI5YyB0byBmMTM0NjFkYmIyM2MgKDEgcmV2aXNpb24pCisgICAgICAgIGM5NWJk
NWU3ZSBSb2xsIHZ1bGthbi1kZXBzIGZyb20gMDFmZDQ4YWNhNDI3IHRvIGY2ODUzNDZlMmU1MSAo
NiByZXZpc2lvbnMpCisgICAgICAgIDJkYjcxOGVkZiBWdWxrYW46IFNraXAgZW1wdHkgc3VibWlz
c2lvbnMKKyAgICAgICAgYjA3YTExNTY5IFNwbGl0IENvbnRleHQgUmVzb3VyY2VVc2VMaXN0IHRv
IFJQIENvbW1hbmRidWZmZXJzCisgICAgICAgIDM3YzUzNjg0ZSBTcGxpdCBDb250ZXh0IFJlc291
cmNlVXNlTGlzdCB0byBSUCBDb21tYW5kYnVmZmVycworICAgICAgICAxNTg5NTE2MDAgQXZvaWQg
bGVha2luZyBnbDo6RnJhbWVidWZmZXJzIGluIGdsOjpDb250ZXh0CisgICAgICAgIGY1NjVlYTRk
NiBSb2xsIHZ1bGthbi1kZXBzIGZyb20gMTU4Njc2ZjM5ZjNiIHRvIDAxZmQ0OGFjYTQyNyAoMTMg
cmV2aXNpb25zKQorICAgICAgICBhZDkzYTcwOGEgRnVydGhlciBleHBhbmQgVnVsa2FuIGVuZDJl
bmRfdGVzdCBza2lwCisgICAgICAgIGU2ZmM1ZTYyYyBVc2UgX0ZpbmRBZGIgKGNhY2hlZCkgZGly
ZWN0bHkgaW5zdGVhZCBvZiBBZGIgd3JhcHBlci4KKyAgICAgICAgNGFjM2VjMTNlIFN3aXRjaCBw
eV91dGlscyBpbXBvcnQgdG8gcGF0aGxpYi4KKyAgICAgICAgNjRmYTVlZGFhIFN1cHByZXNzIFZW
TCBVTkFTU0lHTkVELUJlc3RQcmFjdGljZXMtU2VtYXBob3JlQ291bnQKKyAgICAgICAgZTFmZGVm
OTA5IFJldmVydCAiVnVsa2FuOiBDYWNoZSBJbWFnZVZpZXcgc2VyaWFscyBvbiB0ZXh0dXJlIGNo
YW5nZXMuIgorICAgICAgICAzYjM4YjM3OTAgVnVsa2FuOiBBZGQgZmVhdHVyZSBhdm9pZCBIT1NU
X1ZJU0lCTEUgYW5kIERFVklDRV9MT0NBTCBjb21iaW5hdGlvbgorICAgICAgICBkOTg4ZGIzOWIg
RmFsbCBiYWNrIHRvIGFkYiBvbiBQQVRIIGlmIHBsYXRmb3JtLXRvb2xzIG5vdCBwcmVzZW50Lgor
ICAgICAgICAyZGQxM2ViYmQgVHJhY2sgU3VyZmFjZSBjb2xvciAmIGRlcHRoL3N0ZW5jaWwgaW5p
dCBzZXBhcmF0ZWx5LgorICAgICAgICA4ZjU2ZWRmZGQgUm9sbCBDaHJvbWl1bSBmcm9tIDQwODc5
MzQxOGM0OCB0byAxOTJkYjEzZjg1MDkgKDU0OCByZXZpc2lvbnMpCisgICAgICAgIDA2OTBmNWQz
NCBSZXZlcnQgIkNHTCwgTVRMOiBwYnVmZmVyIGZvciBJT1N1cmZhY2UgZmFpbHMgZm9yIHNvbWUg
Zm9ybWF0cyIKKyAgICAgICAgMDQzOWQ5Y2QyIFZ1bGthbjogVXBkYXRlIGdsc2xhbmcgd3JhcHBl
ciBUT0RPLgorICAgICAgICA3NjhjN2Q0N2UgUmV2ZXJ0ICJSZS1sYW5kOiAiVnVsa2FuOiBTdXBw
b3J0IFdheWxhbmQiIgorICAgICAgICA0N2I5YTk3YjYgRXhwYW5kIFZ1bGthbiBlbmQyZW5kX3Rl
c3Qgc2tpcC4KKyAgICAgICAgZGMxYjcwMjllIERpc2FibGUgTVNBTiBpbiB0aGUgVnVsa2FuIGxv
YWRlcgorICAgICAgICA3YTMyY2Y1NDcgQW5kcm9pZDogQWRkIC8vYnVpbGQgdG8gYmx1ZXByaW50
LgorICAgICAgICAxMzc4NGViZTMgVnVsa2FuOiB1c2UgInVuZGVmaW5lZCIgZm9yIGxheWVyUHJv
dm9raW5nVmVydGV4CisgICAgICAgIDA0YzZmOTM3NSBSb2xsIFN3aWZ0U2hhZGVyIGZyb20gZWE1
ZjM3ZjM5MTkzIHRvIDcxZjMwODliNzI5YyAoNSByZXZpc2lvbnMpCisgICAgICAgIDk2MjM5YTM0
MCBSb2xsIENocm9taXVtIGZyb20gYTQzNGYxZGUyNDgzIHRvIDQwODc5MzQxOGM0OCAoNDU2IHJl
dmlzaW9ucykKKyAgICAgICAgMWQ2Nzk1MWUwIEF2b2lkIElPRXJyb3IgaW4gY2FwdHVyZV9yZXBs
YXlfdGVzdHMucHkKKyAgICAgICAgZGQ0OTNiNWNhIEVHTDogYWxsb3cgZWdsUXVlcnlTdHJpbmco
RUdMX05PX0RJU1BMQVksIEVHTF9WRVJTSU9OKQorICAgICAgICA2Y2JlZGM5ODQgQWRkIGEgdGVz
dCBmb3IgYmFja3dhcmRzIG1pcCBnZW5lcmF0aW9uIHdpdGggZHJhdworICAgICAgICBkM2RiYWE4
ZGYgVnVsa2FuOiBSZW1vdmUgQnVmZmVyVms6Om1IYXNCZWVuUmVmZXJlbmNlZEJ5R1BVCisgICAg
ICAgIDUwOTdkMTBjMSBEM0Q6IHVuc3VwcHJlc3Mgc29tZSBub3ctcGFzc2luZyB0ZXN0cy4KKyAg
ICAgICAgY2IxZWU0ODVmIFZ1bGthbjogQWRkIHBlcmYgdGVzdCBmb3IgTVNBQSBzd2FwY2hhaW4g
cmVzb2x2ZQorICAgICAgICBjNjZkZTA4NWEgVnVsa2FuOiBGaXggc3VyZmFjZSBpbnZhbGlkYXRl
IHcuci50IHNoYXJlZCBwcmVzZW50IG1vZGUKKyAgICAgICAgMTljNmE4NTY2IFRlc3RzOiBBZGQg
RnJlZSBGaXJlIE1heCB0cmFjZQorICAgICAgICA3ZDIyOWQwNDcgVnVsa2FuOiBDYWNoZSBJbWFn
ZVZpZXcgc2VyaWFscyBvbiB0ZXh0dXJlIGNoYW5nZXMuCisgICAgICAgIDdjMDkxY2IzNSBVc2Ug
YWRiIGRpcmVjdGx5IChpbnN0ZWFkIG9mIGNhdGFwdWx0KSBpbiBnb2xkIHRlc3RzLgorICAgICAg
ICA0ZWZjNGVlNjggRml4IHZhbGlkYXRlIHN0YXRlIGNhY2hlIGFmdGVyIFhGQiBidWZmZXIgZGVs
ZXRlZC4KKyAgICAgICAgM2Y4MDBlNWM4IE1ldGFsOkNsZWFyIEJhY2tidWZmZXIgd2hlbiBSb2J1
c3QgUmVzb3VyY2UgSW5pdCBlbmFibGVkCisgICAgICAgIDViODRhZDc5NyBDR0wsIE1UTDogcGJ1
ZmZlciBmb3IgSU9TdXJmYWNlIGZhaWxzIGZvciBzb21lIGZvcm1hdHMKKyAgICAgICAgZmY4YTlm
NmExIFZ1bGthbjogUmVuYW1pbmcgIlNoYWRlckJ1ZmZlcnMiIHRvICJTaGFkZXJSZXNvdXJjZXMi
LgorICAgICAgICBmNmNkZDAyZmIgUmUtbGFuZDogIlZ1bGthbjogU3VwcG9ydCBXYXlsYW5kIgor
ICAgICAgICA1NjEwYWI2NDIgRml4IEFOR0xFR2V0RGlzcGxheVBsYXRmb3JtIGFmdGVyIG1ldGhv
ZCBkZXByZWNhdGlvbgorICAgICAgICA2MTk5ZTkwNWEgU3dpdGNoIHRvIHVzaW5nIC8vYnVpbGQv
YW5kcm9pZDpidWlsZF9qYXZhCisgICAgICAgIGIyYTFmMGQyOCBUcmFjayB0b3RhbCB2cyBwZXIt
ZnJhbWUgZGVzY3JpcHRvciBzZXQgY291bnRlcnMuCisgICAgICAgIDM3Y2RmOTNkMCBWdWxrYW46
IEFjcXVpcmUgYSBuZXcgYnVmZmVyIGV2ZW4gd2hlbiBzaXplIGlzIHVuY2hhbmdlZAorICAgICAg
ICAzNDk2MTI1OTEgUm9sbCB2dWxrYW4tZGVwcyBmcm9tIDAwZTFkZGQ0MjMwYyB0byAxNTg2NzZm
MzlmM2IgKDggcmV2aXNpb25zKQorICAgICAgICBmNGE1NTBiZmYgUm9sbCBTd2lmdFNoYWRlciBm
cm9tIDEwM2E2OWJkNmM4MiB0byBlYTVmMzdmMzkxOTMgKDMgcmV2aXNpb25zKQorICAgICAgICBk
ZGU4YjY2MjkgUm9sbCBDaHJvbWl1bSBmcm9tIGUxYjVhNjkzYmJmZSB0byBhNDM0ZjFkZTI0ODMg
KDUwNCByZXZpc2lvbnMpCisgICAgICAgIGZjZWM2OTA0NSBHZW5lcmF0ZSBmZWF0dXJlIHZhcmlh
YmxlIG5hbWVzIGZyb20gZGlzcGxheSBuYW1lcworICAgICAgICBmNGZjOGUxNjggUmV2ZXJ0ICJG
aXggQmxlbmRTdGF0ZUV4dDo6bU1heENvbG9yTWFzayBpbml0aWFsaXphdGlvbiIKKyAgICAgICAg
NTAxNGNlNjY0IFZ1bGthbjogQWRkIG9ycGhhbmVkIGxpc3QgZm9yIG5vbi1lbXB0eSBCdWZmZXJC
bG9ja3MuCisgICAgICAgIDU1YzIxODQyYiBWdWxrYW46IFVzZSBmbGF0IGFycmF5IGxvb2t1cHMg
Zm9yIHNoYWRlciB2YXJpYWJsZXMuCisgICAgICAgIDZlMTMwZDJiNyBEM0Q6IGZpeCBTU0JPcyB1
c2VkIGluIHZlcnRleCBzaGFkZXJzLgorICAgICAgICA1MGQwMDhhN2UgRml4IEJsZW5kU3RhdGVF
eHQ6Om1NYXhDb2xvck1hc2sgaW5pdGlhbGl6YXRpb24KKyAgICAgICAgY2ZjOTJlYmYxIFZ1bGth
bjogRW5jYXBzdWxhdGUgU2hhcmVHcm91cDo6bUNvbnRleHRzCisgICAgICAgIDk5MDdmMjJkMCBn
b2xkIHRlc3RzOiBBZGQgY29tbWFuZC1saW5lIGFyZyBmb3IgZ29sZCBpbnN0YW5jZS4KKyAgICAg
ICAgZTE4MjQwZDEzIE1hcmsgY29udGV4dHMgYXMgc2hhcmVkIHdoZW4gaW1wb3J0aW5nIEVHTCBp
bWFnZXMuCisgICAgICAgIGJkZGI5NDRiYyBWdWxrYW46IFByZXAgdmFyaWFibGUgaW5mbyBtYXAg
dG8gcmVtb3ZlIGhhc2hpbmcuCisgICAgICAgIDI0MmYwZDgxZiBSZXZlcnQgIkluZnJhOiBFbmFi
bGUgU2tpYSBHb2xkIHRlc3RzIG9uIFBpeGVsIDYiCisgICAgICAgIGFjZGVjNDhhZCBUZXN0czog
QWRkIE1vbnN0ZXIgU3RyaWtlIHRyYWNlCisgICAgICAgIGU3N2JlNjYzMiBVc2UgUHJvZ3JhbUV4
ZWN1dGFibGUgZGlyZWN0bHkgaW4gR2xzbGFuZ1dyYXBwZXIuCisgICAgICAgIGM4MjUxM2FmYiBB
ZGQgRmFzdE1hcCBjbGFzcy4KKyAgICAgICAgNGNkMTVjYjM5IFNraXAgYSBWdWxrYW4gdGVzdCBk
dWUgdG8gYSB0aHJlYWRpbmcgZmxha2UuCisgICAgICAgIDY0ZmExZTgwZiBSZXZlcnQgInZ1bGth
bjogQ2FsbCBnbEZpbmlzaCBpbiBWdWxrYW5IZWxwZXIgZGVzdHJ1Y3RvciIKKyAgICAgICAgOWNj
NDU5Yzk4IEFkZCBjaGVjayBmb3IgR0xfQU5EUk9JRF9leHRlbnNpb25fcGFja19lczMxYSBzdXBw
b3J0CisgICAgICAgIGRiZTViNzU1NCBSb2xsIHZ1bGthbi1kZXBzIGZyb20gMWE0MDhlYjE1NGQ3
IHRvIDAwZTFkZGQ0MjMwYyAoOCByZXZpc2lvbnMpCisgICAgICAgIDgzNGNhNjg2OSBSb2xsIENo
cm9taXVtIGZyb20gZTliNTVlYjkxY2IxIHRvIGUxYjVhNjkzYmJmZSAoMzAzIHJldmlzaW9ucykK
KyAgICAgICAgMTk3MTAwODgwIFZ1bGthbjogQ2FsbCBpbnRvIHZ1bGthbiBkaXJlY3RseSBmb3Ig
YmlnIHNpemUgYWxsb2NhdGlvbi4KKyAgICAgICAgYmRiNTJjYjhiIFZ1bGthbjogUmVtb3ZlIHJl
dGFpbnMgYmVmb3JlIGFjcXVpcmVCdWZmZXJIZWxwZXIKKyAgICAgICAgODY2MjEwYWRkIE1ldGFs
OiBGaXggYnl0ZXNQZXJSb3cgY29tcHV0YXRpb24gZm9yIGNvbXByZXNzZWQgZm9ybWF0cworICAg
ICAgICAzM2M4YTJkMGQgUm9sbCB2dWxrYW4tZGVwcyBmcm9tIDdmODc1YjE1YzZhMyB0byAxYTQw
OGViMTU0ZDcgKDQgcmV2aXNpb25zKQorICAgICAgICBkOTAzODE4YTggUm9sbCBDaHJvbWl1bSBm
cm9tIDU3M2YyZWM4OWNiOSB0byBlOWI1NWViOTFjYjEgKDQxMSByZXZpc2lvbnMpCisgICAgICAg
IDM2MzZkMTI5ZSBJbmZyYTogRW5hYmxlIFNraWEgR29sZCB0ZXN0cyBvbiBQaXhlbCA2CisgICAg
ICAgIGQxOGU5ZTg0YSBSb2xsIHZ1bGthbi1kZXBzIGZyb20gYzliZTMyMjY0MmZiIHRvIDdmODc1
YjE1YzZhMyAoMTYgcmV2aXNpb25zKQorICAgICAgICBkZmRlOWY0MDIgUm9sbCBTd2lmdFNoYWRl
ciBmcm9tIDFkNDUwYWU5OWEwZiB0byAxMDNhNjliZDZjODIgKDMgcmV2aXNpb25zKQorICAgICAg
ICBmZjA4NGIyOGQgUm9sbCBDaHJvbWl1bSBmcm9tIGU2NzY1ZWE4Mjk5ZiB0byA1NzNmMmVjODlj
YjkgKDQ0MyByZXZpc2lvbnMpCisgICAgICAgIDVmN2RiNzc1NSBWdWxrYW46IHVwZGF0ZVVuaWZv
cm1zIHdoZW4gY29tbWFuZGJ1ZmZlciBpcyB2YWxpZAorICAgICAgICAzNTg3ZTIxN2QgUmVtb3Zl
IGNvcHlSZXNvdXJjZVVzZUxpc3QgZnJvbSBTaGFyZUdyb3VwVmsKKyAgICAgICAgOTU2ZmIxNmVj
IFJlbW92ZSBXaW4gTlZJRElBIGRFUVAgc3VwcHJlc3Npb25zCisgICAgICAgIDVlNDhlNWI4ZCBS
b2xsIFZLLUdMLUNUUyBmcm9tIDI3NDhkNDVlYmJiNCB0byBhMjIwNjliNGUzYjcgKDEwIHJldmlz
aW9ucykKKyAgICAgICAgYWVmYjJhOTllIHZ1bGthbjogQ2FsbCBnbEZpbmlzaCBpbiBWdWxrYW5I
ZWxwZXIgZGVzdHJ1Y3RvcgorICAgICAgICA0YTMzMjA0Y2UgUm9sbCBWSy1HTC1DVFMgZnJvbSAy
MGE0NzRlNjQzODIgdG8gMjc0OGQ0NWViYmI0ICgxIHJldmlzaW9uKQorICAgICAgICAwMzk2NjBh
MDcgVHJhbnNsYXRvcjogRHJvcCBjb25zdCBmcm9tIG9wYXF1ZSBwYXJhbWV0ZXIgdHlwZXMKKyAg
ICAgICAgMDM2MDI0OGM2IFN1cHByZXNzIGZsYWt5IGVuZDJlbmQgZmFpbHVyZXMgb24gTWFjL05W
SURJQS9PcGVuR0wKKyAgICAgICAgMDNiM2JjM2Y2IFRlc3RzOiBBZGQgU3BlY2lhbCBGb3JjZXMg
R3JvdXAgMiB0cmFjZS4KKyAgICAgICAgYzNmMTU5NjI5IEZpeCBPT0IgcHJvYmxlbSBpbiB2YWxp
ZGF0aW9uRVMue2gsY3BwfQorICAgICAgICBmZWYzNGE2ZWYgZG9jL0RldlNldHVwOiBBZGQgVmlz
dWFsIFN0dWRpbyBJbnN0YWxsZXIgaGludC4KKyAgICAgICAgMjdiMDFkZDRhIFJvbGwgU3dpZnRT
aGFkZXIgZnJvbSAwMTFiYmE2OGM4MTkgdG8gMWQ0NTBhZTk5YTBmICg0IHJldmlzaW9ucykKKyAg
ICAgICAgZmNkNmUyNjA1IEdOOiBGaXggdXRpbCB0YXJnZXQgd2hlbiBYMTEgbm90IGVuYWJsZWQK
KyAgICAgICAgYjVkMzRkYTA4IEFkZCBzcmMvdGVzdHMvcHlfdXRpbHMvIGZvciB1dGlscywgYW5n
bGVfcGF0aF91dGlsIGZvciBpbXBvcnRzLgorICAgICAgICA3ZTYxZTE3NmUgUm9sbCBDaHJvbWl1
bSBmcm9tIDYxMTUwYTE5NzBhMyB0byBlNjc2NWVhODI5OWYgKDUxNSByZXZpc2lvbnMpCisgICAg
ICAgIDg3MTg3ODM1MiBNZXRhbDogRm9yIHJlYWRQaXhlbHMgY29weSBJT1N1cmZhY2UgdG8gbm9u
LUlPU3VyZmFjZSB0ZXh0dXJlCisgICAgICAgIDUyMjM3YzMyMiBTdXBwcmVzcyBDb3B5VGV4dHVy
ZVRlc3QuQ29weVRvTWlwbWFwIG9uIEludGVsIE1hYyBPcGVuR0wKKyAgICAgICAgZDJmZDI4Y2Fl
IFZ1bGthbjogUmVsYXggYWR2YW5jZWQgYmxlbmQgb24gVksgZXh0ZW5zaW9uIHJlcXVpcmVtZW50
CisgICAgICAgIGM1MjcxZThlNiBWdWxrYW46IEVtdWxhdGUgR0xfS0hSX2JsZW5kX2VxdWF0aW9u
X2FkdmFuY2VkCisgICAgICAgIDAxYzBiYzIxNSBSZXZlcnQgIlZ1bGthbjogU3VwcG9ydCBXYXls
YW5kIgorICAgICAgICBhZjUxYTI4N2EgVnVsa2FuOiBFbnVtIGNsYXNzIGluc3RlYWQgb2YgYm9v
bCBkaWRSZXNwZWNpZnkKKyAgICAgICAgZTlkNjk1YjVkIFJvbGwgdnVsa2FuLWRlcHMgZnJvbSAz
NDVlMmEyNzhlNjkgdG8gYzliZTMyMjY0MmZiICg3NCByZXZpc2lvbnMpCisgICAgICAgIGYwMGQ4
MjdlMCBSb2xsIFN3aWZ0U2hhZGVyIGZyb20gNjIwOTgyMTU1ZDU1IHRvIDAxMWJiYTY4YzgxOSAo
NCByZXZpc2lvbnMpCisgICAgICAgIDRiOGU1ZGI2MiBSb2xsIENocm9taXVtIGZyb20gZjk2MWEw
ZDQ3MzJiIHRvIDYxMTUwYTE5NzBhMyAoNDMxIHJldmlzaW9ucykKKyAgICAgICAgOTg1ZDQyOTM0
IE1ldGFsOlNwZWVkIHVwIEJHUkE4IHRvIFJHQkE4IGNvcHkgZm9yIHJlYWRQaXhlbHMKKyAgICAg
ICAgODA3NDA2MWQyIFJlbW92ZSBmZWF0dXJlIG92ZXJyaWRlIHBsYXRmb3JtIG1ldGhvZHMKKyAg
ICAgICAgYTBiNTI5OWI2IFZ1bGthbjogRml4IHJlc29sdmUgd2l0aCBzdWJwYXNzIGludG8gc21h
bGxlciBmcmFtZWJ1ZmZlcgorICAgICAgICA2NzY4YWZmNzEgRml4IEdlb21ldHJ5IFNoYWRlciBD
b25mb3JtYW5jZSBUZXN0IEZhaWx1cmUgb24gUGl4ZWw2CisgICAgICAgIDQ0NWJmOWJkZiBVc2Ug
dGhlIHJlYWwgbWF4IHZlcnRleCBhdHRyaWIgaW5kZXggaW5zdGVhZCBvZiBNQVhfVkVSVEVYX0FU
VFJJQlMKKyAgICAgICAgZDRjYmQ5YmZlIHZ1bGthbjogTWFyayBleHRlcm5hbCBtZW1vcnkgdGV4
dHVyZXMgYXMgcHJlaW5pdGlhbGl6ZWQKKyAgICAgICAgMjkxYmUwYjdhIFN1cHByZXNzIG11bHRp
c2FtcGxlX2ludGVycG9sYXRpb24gZEVRUCBmYWlsdXJlcyBvbiBQaXhlbCA2IFZ1bGthbgorICAg
ICAgICA5NDQyYjdhODMgRDNEOiBSZW1vdmUgYSBwYXNzLXRocm91Z2ggZnVuY3Rpb24uCisgICAg
ICAgIDk1N2Y4Mjk3NCBWdWxrYW46IENoYW5nZSBDb250ZXh0VmsgdG8gQ29udGV4dCBmb3IgQnVm
ZmVyUG9vbCBBUElzCisgICAgICAgIDUxMDM1MWYyMCBWdWxrYW46IFN1cHBvcnQgV2F5bGFuZAor
ICAgICAgICBlYTg2Y2ZkMmUgUm9sbCBjaHJvbWl1bV9yZXZpc2lvbiBmODk5NjRiZDViLi5mOTYx
YTBkNDczICg5OTA5MDM6OTkxNDg2KQorICAgICAgICBmYjA5MzI3OGMgZWdsX2FuZ2xlX2V4dDog
YWRkIG1vcmUgbWlzc2luZyBleHRlbnNpb24gZW51bSB2YWx1ZXMKKyAgICAgICAgOTNjY2RlOTFi
IFVwZGF0ZSBBTkdMRSdzIGRvY3MgcmVnYXJkaW5nIFdpbmRvd3MgMTAgU0RLIHZlcnNpb24gdG8g
dXNlCisgICAgICAgIDE5NTgyZDEyMCBnbF9hbmdsZV9leHQueG1sOiB0cmVhdCBnbFByb3Zva2lu
Z1ZlcnRleEFOR0xFIGFzIGFsaWFzCisgICAgICAgIGZlYzljOTE4ZSBSb2xsIFN3aWZ0U2hhZGVy
IGZyb20gZDE1YzQyNDgyNTYwIHRvIDYyMDk4MjE1NWQ1NSAoMiByZXZpc2lvbnMpCisgICAgICAg
IGFlZDU5NTFlMyBSZWxhbmQgIlZ1bGthbjogRml4IHRleHR1cmUtYWZ0ZXItZnJhbWVidWZmZXIg
c3luYyBpc3N1ZXMiCisgICAgICAgIDc5N2U2MjdlNiBBdXRvZ2VuZXJhdGUgbGlzdCBvZiBmZWF0
dXJlcyBhcyBlbnVtCisgICAgICAgIGVlYjM5NjUzNSBBdXRvZ2VuZXJhdGUgZmVhdHVyZXMKKyAg
ICAgICAgOTIzNzI3MmY5IE1ldGFsOnJlbW92ZSBUZXh0dXJlTXRsOjptSXNQb3cyCisgICAgICAg
IGUwODQ3NmNmNSBNZXRhbDogQXZvaWQgbGVha2luZyBNVExEZXZpY2UgbGlzdHMgaW4gRGlzcGxh
eU10bAorICAgICAgICAxYjJhZGI0MDIgTWV0YWw6IEF2b2lkIGxlYWtpbmcgTVRMRnVuY3Rpb25D
b25zdGFudFZhbHVlcyBpbiBQcm9ncmFtTXRsCisgICAgICAgIGEyMDFiYmM5OCBlZ2xfYW5nbGVf
ZXh0LnhtbDogYWRkIG1pc3NpbmcgZW51bXMgYW5kIHR5cGVkZWZzCisgICAgICAgIDVjODVmZDRl
MSBBZGQgZXJyb3IgY2hlY2sgb24gcmVzdW1pbmcgWEZCIHdpdGggZGVsZXRlZCBidWZmZXIuCisg
ICAgICAgIGE5NDdjNWY1NiBTa2lwIEJsaXRGcmFtZWJ1ZmZlclRlc3QuU2Npc3NvcmVkTXVsdGlz
YW1wbGVTdGVuY2lsCisgICAgICAgIGZiOTFlMjdjZiBhZGQgR0xfQU5HTEVfcm9idXN0X3Jlc291
cmNlX2luaXRpYWxpemF0aW9uIGV4dGVuc2lvbiB0byB4bWwKKyAgICAgICAgNjgwM2EyZDAxIEQz
RDExOiBpbXBsZW1lbnQgU1NCT3MgaW4gcGl4ZWwgYW5kIHZlcnRleCBzaGFkZXJzLgorICAgICAg
ICBjNDU4YjVhZGQgRml4IENoZWNrZWROdW1lcmljIHVzaW5nIHRoZSB3cm9uZyB0eXBlLgorICAg
ICAgICAwNDc4MmQ4NmIgVmFsaWRhdGUgdmVydGV4IGF0dHJpYiBpbmRleCBhZ2FpbnN0IGNhcHMu
bWF4VmVydGV4QXR0cmlidXRlcworICAgICAgICA3NjdiNjU5MzkgUm9sbCBWSy1HTC1DVFMgZnJv
bSA2ZjhhNzE4MmJkMjYgdG8gMjBhNDc0ZTY0MzgyICgxNCByZXZpc2lvbnMpCisgICAgICAgIGIx
MjBhYjZkNCBSb2xsIENocm9taXVtIGZyb20gYTAxYzBjNzQ5ZDBhIHRvIGY4OTk2NGJkNWI0MiAo
NjE3IHJldmlzaW9ucykKKyAgICAgICAgMWI5NGM1ODU2IFJldmVydCAiVnVsa2FuOiBTd2l0Y2gg
bG9hZGVyIHRvIG5ldyBkcml2ZXIgZmlsZXMgZW52IHZhci4iCisgICAgICAgIDcyN2NkOGVmNiBG
aXggcG9pbnRlciBzc2NhbmYgZm9yIENocm9tZU9TCisgICAgICAgIDkyZTk5NjUzZCBGaXggY3Jh
c2hlcyBpbiBnbDo6VmVydGV4QXJyYXk6OmRldGFjaEJ1ZmZlcigpIGFuZCBvbkRlc3RvcnkoKQor
ICAgICAgICA0YjM4MWY0MTkgVnVsa2FuOiBGaXggZGVzY3JpcHRvclNldCBwZXJmIGNvdW50ZXIg
dmFsdWVzLgorICAgICAgICAwOWEyNGYzZDUgUm9sbCBTd2lmdFNoYWRlciBmcm9tIGQwOTI4MmU1
YzYwOSB0byBkMTVjNDI0ODI1NjAgKDIgcmV2aXNpb25zKQorICAgICAgICA1YTE2YTFmOTkgUm9s
bCBDaHJvbWl1bSBmcm9tIDY0NDcyZmJhMzExMiB0byBhMDFjMGM3NDlkMGEgKDQ0OCByZXZpc2lv
bnMpCisgICAgICAgIDNjZWE3ZmNjMCBTcGxpdCBDb250ZXh0IFJlc291cmNlVXNlTGlzdCB0byBS
UCBDb21tYW5kYnVmZmVycworICAgICAgICBhYzEzMDEwNjkgTWV0YWw6IFJlbW92ZSBVbnVzZWQg
SU9TdXJmYWNlIGNvZGUKKyAgICAgICAgMWY2MTIzZDU1IFZ1bGthbjogU3dpdGNoIGxvYWRlciB0
byBuZXcgZHJpdmVyIGZpbGVzIGVudiB2YXIuCisgICAgICAgIGExNjQ5MWQ5OCBWdWxrYW46IEZp
eCBpbnZhbGlkYXRpb24gb2Ygbm9uLWV4aXN0aW5nIGFzcGVjdHMKKyAgICAgICAgZDZmZjk2N2Uz
IFJvbGwgU3dpZnRTaGFkZXIgZnJvbSBkM2NjN2Q3YWMwYzMgdG8gZDA5MjgyZTVjNjA5ICg2IHJl
dmlzaW9ucykKKyAgICAgICAgYjdlOGFiNDhkIFJvbGwgQ2hyb21pdW0gZnJvbSA2ZjZlYjgwZWFi
MTkgdG8gNjQ0NzJmYmEzMTEyICg1MDkgcmV2aXNpb25zKQorICAgICAgICBiYTA0ZmNmZDEgU3Vw
cG9ydCBBTkdMRV9QUkVGRVJSRURfREVWSUNFIG9uIENHTAorICAgICAgICAyMzU1ODM2OWEgVXBk
YXRlIHBlcmYgdGVzdHMgYXJndW1lbnRzLgorICAgICAgICBmMzZkZGUzMTQgRDNEOiByZW1vdmUg
TlYgR2V0RGltZW5zaW9ucygpIHdvcmthcm91bmQgZm9yIGltYWdlIGxvYWQvc3RvcmUuCisgICAg
ICAgIDdhOTg1NmY2NyBSZXBvcnQgZHVyYXRpb25zIG9mIGFsbCBmbGFreSByZXRyaWVzIGluIEpT
T04gdGVzdCBvdXRwdXQKKyAgICAgICAgOWQ0ODZhODVlIEdMOiBVbmJpbmQgdGV4dHVyZXMgZnJv
bSBGQk8gYWZ0ZXIgY2FsbHMgdG8gZnJhbWVCdWZmZXJUZXh0dXJlMkQKKyAgICAgICAgYTFjOWJh
NzA5IFVwZGF0ZSB2YWxpZGF0aW9uIG9mIGdsRnJhbWVidWZmZXJUZXh0dXJlTGF5ZXIgZm9yIGN1
YmUgbWFwcworICAgICAgICAxNTI2MTZlZWQgVGVzdHM6IEFkZCBBenRlYyBSdWlucyBIaWdoIHRy
YWNlCisgICAgICAgIDA2YzIwMWY4NCBSb2xsIFN3aWZ0U2hhZGVyIGZyb20gMWIxNTlmNmNkZWNi
IHRvIGQzY2M3ZDdhYzBjMyAoMSByZXZpc2lvbikKKyAgICAgICAgYjRlYWEzYTI5IFJvbGwgQ2hy
b21pdW0gZnJvbSAzYzAxYTVjM2JjMmYgdG8gNmY2ZWI4MGVhYjE5ICg1MiByZXZpc2lvbnMpCisg
ICAgICAgIGZmOWJkMzVkOSBSb2xsIENocm9taXVtIGZyb20gYzMyZjEyM2JlN2ViIHRvIDNjMDFh
NWMzYmMyZiAoMTA3IHJldmlzaW9ucykKKyAgICAgICAgYmFjODkxNWM1IFJvbGwgQ2hyb21pdW0g
ZnJvbSBmMzliNDM3MmI4YTggdG8gYzMyZjEyM2JlN2ViICg3NzcgcmV2aXNpb25zKQorICAgICAg
ICAzNjZmNjAxMTYgUm9sbCB2dWxrYW4tZGVwcyBmcm9tIDZkNzMyZTAxZDllYSB0byAzNDVlMmEy
NzhlNjkgKDMgcmV2aXNpb25zKQorICAgICAgICA2MDdkMzk4ZTAgVnVsa2FuOiBPcHRpbWl6ZSBy
ZXNvbHZlIG9mIG11bHRpc2FtcGxlIHN3YXBjaGFpbnMKKyAgICAgICAgMGZmZmY5ZWRhIFZ1bGth
bjogUGVyZiBjb3VudGVycyB0ZXN0IGZvciBnbEludmFsaWRhdGVTdWJGcmFtZWJ1ZmZlcgorICAg
ICAgICBjYTNiN2QzNWYgVnVsa2FuOiBSb2xsIHZvbGsKKyAgICAgICAgMzI1ODQ3N2EwIFNraXAg
Y2FyX2NoYXNlIG9uIGFsbCBJbnRlbCBXaW5kb3dzIHBsYXRmb3JtcworICAgICAgICA3OGY1ZWY5
MmEgUm9sbCBTd2lmdFNoYWRlciBmcm9tIDdkMTAwYzU1NjA4MSB0byAxYjE1OWY2Y2RlY2IgKDIg
cmV2aXNpb25zKQorICAgICAgICA3YjBmNjMxODIgVnVsa2FuOiBXYXlsYW5kIGluY2x1ZGUgZGly
ZWN0b3JpZXMKKyAgICAgICAgOGI4NGNmMTVlIFRlc3RzOiBBZGQgR0ZYQmVuY2ggQ2FyIENoYXNl
IHRyYWNlCisgICAgICAgIDI1NmJiYjhhYyBWdWxrYW46IERvbid0IGludmFsaWRhdGUgcmVzb2x2
ZSBhdHRhY2htZW50IGV4Y2VwdCB3aXRoIE1TUlRUCisgICAgICAgIGIzZmZmMWFhZiByZXRyYWNl
X3Jlc3RyaWN0ZWRfdHJhY2VzOiBDaGVjayBmb3IganNvbiBmaWxlLgorICAgICAgICBhMTFiZjBl
ZGMgRml4IE1heCBBdG9taWMgQ291bnRlciBDb25mb3JtYW5jZSBUZXN0IEZhaWx1cmUgb24gUGl4
ZWw2CisgICAgICAgIGE1NTViZTRhYSBUZXN0czogQWRkIFNjYXJ5IFRlYWNoZXIgM0QgdHJhY2UK
KyAgICAgICAgZTkzM2RmNTEzIHJldHJhY2VfcmVzdHJpY3RlZF90cmFjZXM6IFJlbW92ZSB1bnVz
ZWQgY29kZS4KKyAgICAgICAgODA4Zjc1NGM0IENhcHR1cmUvUmVwbGF5OiBVc2UgZ2xGcmFtZWJ1
ZmZlclRleHR1cmUyRCBmb3IgY3ViZXMKKyAgICAgICAgMWEzNDExYzdkIFNldCBTS0lQUEVEIHN0
YXR1cyBvbiBza2lwcGVkIHRlc3RzLCByZWx5IG9uIGl0IGluIEdvbGQgdGVzdHMuCisgICAgICAg
IDM0NDcxZmVkMSBWdWxrYW46IFNraXAgZmFpbGluZyBpbnRlbCBibGVuZCB0ZXN0LgorICAgICAg
ICA0ZjdlZmI1MWIgUmVtb3ZlIHN3aWZ0c2hhZGVyX3NwaXJ2X3Rvb2xzX2RpcgorICAgICAgICAy
Y2IyNjRiNWEgUm9sbCBTd2lmdFNoYWRlciBmcm9tIGExOTBjZWVkNzI5MyB0byA3ZDEwMGM1NTYw
ODEgKDkgcmV2aXNpb25zKQorICAgICAgICA4M2QzYTk4Y2QgUmVtb3ZlIGNvbW1lbnRlZCBvdXQg
bVNraXBUZXN0LgorICAgICAgICA3NGVhYzVlNWEgUm9sbCBWSy1HTC1DVFMgZnJvbSBmYmMzODg2
NTIyN2QgdG8gNmY4YTcxODJiZDI2ICgxNCByZXZpc2lvbnMpCisgICAgICAgIGU3ZDQ0NTQxZSBV
c2UgR1RFU1RfU0tJUCB0byBzZXQgZ1Rlc3Qgc3RhdHVzIG9mIHNraXBwZWQgdGVzdHMgdG8gU0tJ
UFBFRC4KKyAgICAgICAgYjMzNzY3ZWM5IFJldmVydCAiVnVsa2FuOiBGaXggdGV4dHVyZS1hZnRl
ci1mcmFtZWJ1ZmZlciBzeW5jIGlzc3VlcyIKKyAgICAgICAgYmQ3OTE1ZmQwIFVzZSBwcm92aWRl
ZCBmb3JtYXQgYXMgaW50ZW5kZWQgZm9ybWF0IGZvciBFR0xJbWFnZSBmcm9tIFZrSW1hZ2UKKyAg
ICAgICAgNDY1NWVmMTVkIFJvbGwgU3dpZnRTaGFkZXIgZnJvbSA2NDlkNmU0NmFlYWUgdG8gYTE5
MGNlZWQ3MjkzICgxIHJldmlzaW9uKQorICAgICAgICA0YjI2MDIyNTkgUm9sbCBDaHJvbWl1bSBm
cm9tIDgwNGQ1YTkxZDQ5ZCB0byBmMzliNDM3MmI4YTggKDEyNCByZXZpc2lvbnMpCisgICAgICAg
IDRiMjMyYTlhOCBSb2xsIENocm9taXVtIGZyb20gMzg0Zjg3M2UwOTcwIHRvIDgwNGQ1YTkxZDQ5
ZCAoNDM2NSByZXZpc2lvbnMpCisgICAgICAgIGY0MTMwM2NkYSBTa2lwIGVuZDJlbmQgdGVzdHMg
dGltaW5nIG91dCBvbiBUU0FOIGFuZCBBU0FOCisgICAgICAgIDUzNWNkNTM4ZiBWdWxrYW46IEZp
eCB0ZXh0dXJlLWFmdGVyLWZyYW1lYnVmZmVyIHN5bmMgaXNzdWVzCisgICAgICAgIDQ2MTVhMDM1
NSBTa2lwIGZhaWxpbmcgdGVzdHMgb24gUGl4ZWwgNgorICAgICAgICA2Yjk0YTcxY2UgVnVsa2Fu
OiBMaWZ0IFN3UyBzdXBwcmVzc2lvbnMuCisgICAgICAgIGJhMGViYTIwYiBSZW1vdmUgdGhlIFRP
RE9zIHJlZ2FyZGluZyBtdWx0aXNhbXBsZSBidWZmZXIgYWdlCisgICAgICAgIGNkOWU4ODdhZSBW
dWxrYW46IEFkZCBtdWx0aXNhbXBsZSBidWZmZXIgYWdlIHRlc3RzCisgICAgICAgIDhmOTA0MzYz
NiBWdWxrYW46IE1vdmUgbWVtb3J5IGFsbG9jYXRpb24gaW5pdGlhbGl6YXRpb24gY29kZSBpbnRv
IGZ1bmN0aW9uCisgICAgICAgIGIxNjlmNmY5NCBWdWxrYW46IEZpeCBubyBsb2NhdGlvbiBkZWNv
cmF0aW9uIHZzIGZyYW1lYnVmZmVyIGZldGNoCisgICAgICAgIDVjZmZiZTk2NSBBbmRyb2lkOiBU
cmFjayBwZWFrIEdQVSBtZW1vcnkgaW4gcmVzdHJpY3RlZF90cmFjZV9wZXJmCisgICAgICAgIGNj
MTk1ODdlMiBpbmZyYTogVXNlIGxvZ2FyaXRobWljIGJhdGNoaW5nIGluIExVQ0kgY29uZmlnLgor
ICAgICAgICBlMTA4MDNmNzYgQ29tcGlsZXI6IEFsbG93IGRlZmVycmVkIGFycmF5IHNpemluZyBp
biBnZW9tZXRyeSBzaGFkZXJzCisgICAgICAgIGRkODZkZDE1YiBDYWNoZSBvdXRlciBhcnJheSBv
ZmZzZXQgaW4gbGlua2VkIHVuaWZvcm1zLgorICAgICAgICAwNzU0YjFmNzIgUm9sbCBTd2lmdFNo
YWRlciBmcm9tIGJjNWJlYzA1YzM2OSB0byA2NDlkNmU0NmFlYWUgKDMgcmV2aXNpb25zKQorICAg
ICAgICA1N2EwODFjNzYgUm9sbCB2dWxrYW4tZGVwcyBmcm9tIGUzN2JhNjhjMGZkZSB0byA2ZDcz
MmUwMWQ5ZWEgKDQgcmV2aXNpb25zKQorICAgICAgICBkMzQ5MmVlZjUgVnVsa2FuOiBIYW5kbGUg
Ym9yZGVyIGNvbG9yIGZvciBzdGVuY2lsIGNvbXBvbmVudAorCiAyMDIyLTA0LTI2ICBLaW1tbyBL
aW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CiAKICAgICAgICAgVXBkYXRlIHRlc3RfZXhw
ZWN0YXRpb25zLCBydW5fY29kZV9nZW5lcmF0aW9uLnB5LCBhbmdsZV91bml0dGVzdHMuZ25pIGZy
b20gQU5HTEUgdXBzdHJlYW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0FO
R0xFLnBsaXN0IGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvQU5HTEUucGxpc3QKaW5kZXggOTIz
Yjg1MWQ0YTcwYWIyMDNjOGFiYmVhZWFmZWJhZDA3ZGYwYTZlZS4uNzI1YzRhNTgzNGNkMGZlOWQ1
NGU0OGE1MDRjNTI5N2MxMGQ3YmVkMSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5H
TEUvQU5HTEUucGxpc3QKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvQU5HTEUucGxpc3QK
QEAgLTYsMTMgKzYsMTMgQEAKIAkJPGtleT5PcGVuU291cmNlUHJvamVjdDwva2V5PgogCQk8c3Ry
aW5nPkFOR0xFPC9zdHJpbmc+CiAJCTxrZXk+T3BlblNvdXJjZVZlcnNpb248L2tleT4KLQkJPHN0
cmluZz5mZTI4YTQyOTVhZjA4N2VlODJiOGY2MjliNjcxNzZiOTUwMTlhZjZkPC9zdHJpbmc+CisJ
CTxzdHJpbmc+N2NhMTEyODdhMDU2ZDQxNTBjYmE5NmM5YzliOTY0MTUzYWQ1MzljYjwvc3RyaW5n
PgogCQk8a2V5Pk9wZW5Tb3VyY2VXZWJzaXRlVVJMPC9rZXk+CiAJCTxzdHJpbmc+aHR0cDovL2Nv
ZGUuZ29vZ2xlLmNvbS9wL2FuZ2xlcHJvamVjdC88L3N0cmluZz4KIAkJPGtleT5PcGVuU291cmNl
U0NNPC9rZXk+Ci0JCTxzdHJpbmc+Z2l0IGNsb25lIGh0dHBzOi8vY2hyb21pdW0uZ29vZ2xlc291
cmNlLmNvbS9hbmdsZS9hbmdsZSAmYW1wOyZhbXA7IGNkIGFuZ2xlICZhbXA7JmFtcDsgZ2l0IGNo
ZWNrb3V0IGZlMjhhNDI5NWFmMDg3ZWU4MmI4ZjYyOWI2NzE3NmI5NTAxOWFmNmQ8L3N0cmluZz4K
KwkJPHN0cmluZz5naXQgY2xvbmUgaHR0cHM6Ly9jaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Fu
Z2xlL2FuZ2xlICZhbXA7JmFtcDsgY2QgYW5nbGUgJmFtcDsmYW1wOyBnaXQgY2hlY2tvdXQgN2Nh
MTEyODdhMDU2ZDQxNTBjYmE5NmM5YzliOTY0MTUzYWQ1MzljYjwvc3RyaW5nPgogCQk8a2V5Pk9w
ZW5Tb3VyY2VJbXBvcnREYXRlPC9rZXk+Ci0JCTxzdHJpbmc+MjAyMi0wMy0zMTwvc3RyaW5nPgor
CQk8c3RyaW5nPjIwMjItMDQtMjY8L3N0cmluZz4KIAkJPGtleT5PcGVuU291cmNlTGljZW5zZTwv
a2V5PgogCQk8c3RyaW5nPkJTRDwvc3RyaW5nPgogCQk8a2V5Pk9wZW5Tb3VyY2VMaWNlbnNlRmls
ZTwva2V5PgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvQlVJTEQuZ24gYi9T
b3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9CVUlMRC5nbgppbmRleCBlZjQwMjQ4NmM5OWUwNTA2NTc4
Nzg0YjliOTMzNjM0ZTk3Y2MwNDkwLi4xZjcxMjBmYWRiNGYxZWQwMDFmMDlhZGViYmFlYjFhNTBk
ODc4NDA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9CVUlMRC5nbgorKysg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9CVUlMRC5nbgpAQCAtNCw2ICs0LDkgQEAKIAogIyBp
bXBvcnQgdGhlIG96b25lX3BsYXRmb3JtX3gxMSB2YXJpYWJsZQogaW1wb3J0KCJnbmkvYW5nbGUu
Z25pIikKK2lmIChhbmdsZV9lbmFibGVfdnVsa2FuKSB7CisgIGltcG9ydCgiLy9idWlsZF9vdmVy
cmlkZXMvL3Z1bGthbl9oZWFkZXJzLmduaSIpCit9CiBpZiAoYW5nbGVfaGFzX2J1aWxkKSB7CiAg
IGltcG9ydCgiLy9idWlsZC9jb25maWcvbGludXgvcGtnX2NvbmZpZy5nbmkiKQogICBpbXBvcnQo
Ii8vYnVpbGQvY29uZmlnL3Nhbml0aXplcnMvc2FuaXRpemVycy5nbmkiKQpAQCAtNDQzLDYgKzQ0
NiwxMyBAQCBjb25maWcoImFuZ2xlX2dsX3Zpc2liaWxpdHlfY29uZmlnIikgewogICB9CiB9CiAK
K2NvbmZpZygiYW5nbGVfdnVsa2FuX3dheWxhbmRfY29uZmlnIikgeworICBpZiAoYW5nbGVfZW5h
YmxlX3Z1bGthbiAmJiBhbmdsZV91c2Vfd2F5bGFuZCAmJgorICAgICAgZGVmaW5lZCh2dWxrYW5f
d2F5bGFuZF9pbmNsdWRlX2RpcnMpKSB7CisgICAgaW5jbHVkZV9kaXJzID0gdnVsa2FuX3dheWxh
bmRfaW5jbHVkZV9kaXJzCisgIH0KK30KKwogY29uZmlnKCJhbmdsZV9ncHVfaW5mb191dGlsX2Nv
bmZpZyIpIHsKICAgaW5jbHVkZV9kaXJzID0gWwogICAgICJpbmNsdWRlIiwKQEAgLTE0MDMsNiAr
MTQxMywyMSBAQCBpZiAoYW5nbGVfc3RhbmRhbG9uZSB8fCBidWlsZF93aXRoX2Nocm9taXVtKSB7
CiAgIH0KIH0KIAoraWYgKGFuZ2xlX2VuYWJsZV9jZ2wpIHsKKyAgY29uZmlnKCJzdXBwb3J0c19h
dXRvbWF0aWNfZ3JhcGhpY3Nfc3dpdGNoaW5nIikgeworICAgICMgRm9yIGRpc2N1c3Npb24gYWJv
dXQgY29uZmlnLCBpbnB1dHMsIGV0Yywgc2VlOgorICAgICMgaHR0cHM6Ly9idWdzLmNocm9taXVt
Lm9yZy9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9NzgxODU4CisgICAgX3BsaXN0X2ZpbGUg
PSAidXRpbC9vc3gvc3VwcG9ydHNfYXV0b21hdGljX2dyYXBoaWNzX3N3aXRjaGluZy5wbGlzdCIK
KyAgICBpbnB1dHMgPSBbIF9wbGlzdF9maWxlIF0KKyAgICBsZGZsYWdzID0gWworICAgICAgIi1z
ZWN0Y3JlYXRlIiwKKyAgICAgICJfX1RFWFQiLAorICAgICAgIl9faW5mb19wbGlzdCIsCisgICAg
ICByZWJhc2VfcGF0aChfcGxpc3RfZmlsZSwgcm9vdF9idWlsZF9kaXIpLAorICAgIF0KKyAgfQor
fQorCiBpZiAoaXNfYW5kcm9pZCAmJiBzeW1ib2xfbGV2ZWwgIT0gMCkgewogICBhY3Rpb25fZm9y
ZWFjaCgiY29tcHJlc3NlZF9zeW1ib2xzIikgewogICAgIHNvdXJjZXMgPSBbXQpkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvQ09OVFJJQlVUT1JTIGIvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvQ09OVFJJQlVUT1JTCmluZGV4IDE3NjkzN2Y3ZDliOWEwMDhiNTE0MDU1ZTYwMThi
NmJjZmI4Y2Q3MDEuLmQxN2Q4ZWVlMzZjOTFlZjc4ZjJiNjFmOTE2ZjIwODE1MmU0Y2Y3ODQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0NPTlRSSUJVVE9SUworKysgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9BTkdMRS9DT05UUklCVVRPUlMKQEAgLTE4OSw2ICsxODksNyBAQCBBcm0g
THRkLgogIEFteSBMaXUKICBKaWFuIExpCiAgQ2hlcnlsIFdlaQorIEd1b3hpbmcgV3UKIAogQnJv
YWRjb20gSW5jLgogIEdhcnkgU3dlZXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FO
R0xFL0NvbXBpbGVyLmNtYWtlIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvQ29tcGlsZXIuY21h
a2UKaW5kZXggOWVkODUxNzNlNDBkODc3MzAxZjU3NjNlZjQ1MjE0ZDY4NjcyNjNkOS4uZWUwODU3
YTAxZjMzY2QwNjkwOGMyODViOTJhNzllZGY1MDhlZjI0NyAxMDA2NDQKLS0tIGEvU291cmNlL1Ro
aXJkUGFydHkvQU5HTEUvQ29tcGlsZXIuY21ha2UKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5H
TEUvQ29tcGlsZXIuY21ha2UKQEAgLTM1MCw2ICszNTAsOCBAQCBzZXQoYW5nbGVfdHJhbnNsYXRv
cl9saWJfdnVsa2FuX3NvdXJjZXMKICAgICAic3JjL2NvbXBpbGVyL3RyYW5zbGF0b3IvdHJlZV9v
cHMvdnVsa2FuL0RlY2xhcmVQZXJWZXJ0ZXhCbG9ja3MuY3BwIgogICAgICJzcmMvY29tcGlsZXIv
dHJhbnNsYXRvci90cmVlX29wcy92dWxrYW4vRGVjbGFyZVBlclZlcnRleEJsb2Nrcy5oIgogICAg
ICJzcmMvY29tcGlsZXIvdHJhbnNsYXRvci90cmVlX29wcy92dWxrYW4vRWFybHlGcmFnbWVudFRl
c3RzT3B0aW1pemF0aW9uLmNwcCIKKyAgICAic3JjL2NvbXBpbGVyL3RyYW5zbGF0b3IvdHJlZV9v
cHMvdnVsa2FuL0VtdWxhdGVBZHZhbmNlZEJsZW5kRXF1YXRpb25zLmNwcCIKKyAgICAic3JjL2Nv
bXBpbGVyL3RyYW5zbGF0b3IvdHJlZV9vcHMvdnVsa2FuL0VtdWxhdGVBZHZhbmNlZEJsZW5kRXF1
YXRpb25zLmgiCiAgICAgInNyYy9jb21waWxlci90cmFuc2xhdG9yL3RyZWVfb3BzL3Z1bGthbi9F
bXVsYXRlRGl0aGVyaW5nLmNwcCIKICAgICAic3JjL2NvbXBpbGVyL3RyYW5zbGF0b3IvdHJlZV9v
cHMvdnVsa2FuL0VtdWxhdGVEaXRoZXJpbmcuaCIKICAgICAic3JjL2NvbXBpbGVyL3RyYW5zbGF0
b3IvdHJlZV9vcHMvdnVsa2FuL0VtdWxhdGVGcmFnQ29sb3JEYXRhLmNwcCIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0RFUFMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9E
RVBTCmluZGV4IDhlMTZiOGFjOTZkNjZhMDA5ZTA1OGFmODNjMzkyYmUwODFjZGRhNWQuLjZlNDE2
NzkwN2NjYTQ2ZjNiNDUzZjgzYjhlNzEwMmViMjQxYmRhNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9U
aGlyZFBhcnR5L0FOR0xFL0RFUFMKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvREVQUwpA
QCAtMzQsMTMgKzM0LDEzIEBAIHZhcnMgPSB7CiAgICdjaGVja291dF9hbmRyb2lkX25hdGl2ZV9z
dXBwb3J0JzogJ2NoZWNrb3V0X2FuZHJvaWQgb3IgY2hlY2tvdXRfY2hyb21lb3MnLAogCiAgICMg
VmVyc2lvbiBvZiBDaHJvbWl1bSBvdXIgQ2hyb21pdW0tYmFzZWQgREVQUyBhcmUgbWlycm9yZWQg
ZnJvbS4KLSAgJ2Nocm9taXVtX3JldmlzaW9uJzogJzM4NGY4NzNlMDk3MDAzYjEwNGVjOGMyMmQ1
MDViYzEyZmQ4YmI1MjknLAorICAnY2hyb21pdW1fcmV2aXNpb24nOiAnMTkyZGIxM2Y4NTA5NzM4
MDc5YmNlMjU5OTZhYmUzMjUyYjcwYTBmMScsCiAgICMgV2UgbmV2ZXIgd2FudCB0byBjaGVja291
dCBjaHJvbWl1bSwKICAgIyBidXQgbmVlZCBhIGR1bW15IERFUFMgZW50cnkgZm9yIHRoZSBhdXRv
cm9sbGVyCiAgICdkdW1teV9jaGVja291dF9jaHJvbWl1bSc6IEZhbHNlLAogCiAgICMgQ3VycmVu
dCByZXZpc2lvbiBvZiBWSy1HTC1DVFMgKGEuay5hIGRFUVApLgotICAndmtfZ2xfY3RzX3Jldmlz
aW9uJzogJ2ZiYzM4ODY1MjI3ZDU5YWMzYWUzYmRmOWZlMjE4ZDJiZjNjNjJhNjAnLAorICAndmtf
Z2xfY3RzX3JldmlzaW9uJzogJ2EyMjA2OWI0ZTNiN2Y2OGNjMGMxNjFlOGM5M2IxMzA4YmZmMDky
NWYnLAogCiAgICMgQ3VycmVudCByZXZpc2lvbiBvZiBnb29nbGV0ZXN0LgogICAjIE5vdGU6IHRo
aXMgZGVwIGNhbm5vdCBiZSBhdXRvLXJvbGxlZCBiL2Mgb2YgbmVzdGluZy4KQEAgLTc5LDEyICs3
OSwxMiBAQCB2YXJzID0gewogICAjIFRocmVlIGxpbmVzIG9mIG5vbi1jaGFuZ2luZyBjb21tZW50
cyBzbyB0aGF0CiAgICMgdGhlIGNvbW1pdCBxdWV1ZSBjYW4gaGFuZGxlIENMcyByb2xsaW5nIGNh
dGFwdWx0CiAgICMgYW5kIHdoYXRldmVyIGVsc2Ugd2l0aG91dCBpbnRlcmZlcmVuY2UgZnJvbSBl
YWNoIG90aGVyLgotICAnY2F0YXB1bHRfcmV2aXNpb24nOiAnMzg5ZjMzYmI0MGEzMzQ1YjczYTY4
NjEzMTc4Yzc4OTQ3NmNlYWVjZicsCisgICdjYXRhcHVsdF9yZXZpc2lvbic6ICc0M2YwNDI2ZGQ5
ODVkNmRjN2NhMzIyYjgxZGFhY2VmOWI0OTFhMjU1JywKIAogICAjIFRocmVlIGxpbmVzIG9mIG5v
bi1jaGFuZ2luZyBjb21tZW50cyBzbyB0aGF0CiAgICMgdGhlIGNvbW1pdCBxdWV1ZSBjYW4gaGFu
ZGxlIENMcyByb2xsaW5nIGx1Y2ktZ28KICAgIyBhbmQgd2hhdGV2ZXIgZWxzZSB3aXRob3V0IGlu
dGVyZmVyZW5jZSBmcm9tIGVhY2ggb3RoZXIuCi0gICdsdWNpX2dvJzogJ2dpdF9yZXZpc2lvbjpj
YjQyNGU3MGU3NTEzNjczNmE4NjM1OWVmMDcwYWE5NjQyNWZlN2EzJywKKyAgJ2x1Y2lfZ28nOiAn
Z2l0X3JldmlzaW9uOjZkYTA2MDhlNGZhOGEzYzZkMWZhNGY4NTU0ODVjMDAzOGIwNWJmNzInLAog
CiAgICMgVGhyZWUgbGluZXMgb2Ygbm9uLWNoYW5naW5nIGNvbW1lbnRzIHNvIHRoYXQKICAgIyB0
aGUgY29tbWl0IHF1ZXVlIGNhbiBoYW5kbGUgQ0xzIHJvbGxpbmcgYW5kcm9pZF9zZGtfYnVpbGQt
dG9vbHNfdmVyc2lvbgpAQCAtMTE5LDEyICsxMTksMTIgQEAgdmFycyA9IHsKIGRlcHMgPSB7CiAK
ICAgJ2J1aWxkJzogewotICAgICd1cmwnOiAne2Nocm9taXVtX2dpdH0vY2hyb21pdW0vc3JjL2J1
aWxkLmdpdEA4Zjc1ZTdkZTU1ODgyZTMwOWM5ODJlOGQyMDNmN2FkMGYzNTRlMTBlJywKKyAgICAn
dXJsJzogJ3tjaHJvbWl1bV9naXR9L2Nocm9taXVtL3NyYy9idWlsZC5naXRANjBjZGE3YTMyY2Fl
YjZlZmZjODAyMzM2ZTRkMmQ5YTFlYmQzZDg2MCcsCiAgICAgJ2NvbmRpdGlvbic6ICdub3QgYnVp
bGRfd2l0aF9jaHJvbWl1bScsCiAgIH0sCiAKICAgJ2J1aWxkdG9vbHMnOiB7Ci0gICAgJ3VybCc6
ICd7Y2hyb21pdW1fZ2l0fS9jaHJvbWl1bS9zcmMvYnVpbGR0b29scy5naXRAZDhjMzc1NDI2ZDhm
N2Y0MTQ3ZjdkNDEwOWJiNjNjMTI2NTVmYjhkNicsCisgICAgJ3VybCc6ICd7Y2hyb21pdW1fZ2l0
fS9jaHJvbWl1bS9zcmMvYnVpbGR0b29scy5naXRAYzJlNDc5NTY2MDgxN2MyNzc2ZGJhYmQ3Nzhi
OTJlZDU4YzA3NDAzMicsCiAgICAgJ2NvbmRpdGlvbic6ICdub3QgYnVpbGRfd2l0aF9jaHJvbWl1
bScsCiAgIH0sCiAKQEAgLTEzNyw3ICsxMzcsNyBAQCBkZXBzID0gewogICAgICdwYWNrYWdlcyc6
IFsKICAgICAgIHsKICAgICAgICAgJ3BhY2thZ2UnOiAnZ24vZ24vbGludXgtYW1kNjQnLAotICAg
ICAgICAndmVyc2lvbic6ICdnaXRfcmV2aXNpb246YmQ5OWRiZjk4Y2JkZWZlMThhNDEyODE4OTY2
NWM1NzYxMjYzYmNmYicsCisgICAgICAgICd2ZXJzaW9uJzogJ2dpdF9yZXZpc2lvbjowZDZkMTMx
MGQwMDVjYjliYWNlOTA5Y2I4MzUyZTgzMTEzYzZmYzUxJywKICAgICAgIH0KICAgICBdLAogICAg
ICdkZXBfdHlwZSc6ICdjaXBkJywKQEAgLTE0OCw3ICsxNDgsNyBAQCBkZXBzID0gewogICAgICdw
YWNrYWdlcyc6IFsKICAgICAgIHsKICAgICAgICAgJ3BhY2thZ2UnOiAnZ24vZ24vbWFjLSR7e2Fy
Y2h9fScsCi0gICAgICAgICd2ZXJzaW9uJzogJ2dpdF9yZXZpc2lvbjpiZDk5ZGJmOThjYmRlZmUx
OGE0MTI4MTg5NjY1YzU3NjEyNjNiY2ZiJywKKyAgICAgICAgJ3ZlcnNpb24nOiAnZ2l0X3Jldmlz
aW9uOjBkNmQxMzEwZDAwNWNiOWJhY2U5MDljYjgzNTJlODMxMTNjNmZjNTEnLAogICAgICAgfQog
ICAgIF0sCiAgICAgJ2RlcF90eXBlJzogJ2NpcGQnLApAQCAtMTYxLDEyICsxNjEsMTIgQEAgZGVw
cyA9IHsKICAgfSwKIAogICAnYnVpbGR0b29scy90aGlyZF9wYXJ0eS9saWJjKythYmkvdHJ1bmsn
OiB7Ci0gICAgJ3VybCc6ICd7Y2hyb21pdW1fZ2l0fS9leHRlcm5hbC9naXRodWIuY29tL2xsdm0v
bGx2bS1wcm9qZWN0L2xpYmN4eGFiaS5naXRAOTNiOGRjZDU3YmQ4ZWJlMjAxZWMyNGY3MjU3MzM5
OTg4ZWQyZWY3YycsCisgICAgJ3VybCc6ICd7Y2hyb21pdW1fZ2l0fS9leHRlcm5hbC9naXRodWIu
Y29tL2xsdm0vbGx2bS1wcm9qZWN0L2xpYmN4eGFiaS5naXRAZTAyNWJhNWRjODUyMDI1NDAwOTlk
N2NkOGU3MmVhZTJkNGVlOWUzMycsCiAgICAgJ2NvbmRpdGlvbic6ICdub3QgYnVpbGRfd2l0aF9j
aHJvbWl1bScsCiAgIH0sCiAKICAgJ2J1aWxkdG9vbHMvdGhpcmRfcGFydHkvbGlidW53aW5kL3Ry
dW5rJzogewotICAgICd1cmwnOiAne2Nocm9taXVtX2dpdH0vZXh0ZXJuYWwvZ2l0aHViLmNvbS9s
bHZtL2xsdm0tcHJvamVjdC9saWJ1bndpbmQuZ2l0QGQxYzdmOTJiOGIwYmZmOGQ5ZjcxMGNhNDBl
NDQ1NjNhNjNkYjM3NmUnLAorICAgICd1cmwnOiAne2Nocm9taXVtX2dpdH0vZXh0ZXJuYWwvZ2l0
aHViLmNvbS9sbHZtL2xsdm0tcHJvamVjdC9saWJ1bndpbmQuZ2l0QDFhY2ZiYmI0NzQ3MDgxNzg5
YmE0OGJjOGMwNDJmYTNjNWM4Y2NhYTMnLAogICAgICdjb25kaXRpb24nOiAnbm90IGJ1aWxkX3dp
dGhfY2hyb21pdW0nLAogICB9LAogCkBAIC0xNzQsNyArMTc0LDcgQEAgZGVwcyA9IHsKICAgICAn
cGFja2FnZXMnOiBbCiAgICAgICB7CiAgICAgICAgICdwYWNrYWdlJzogJ2duL2duL3dpbmRvd3Mt
YW1kNjQnLAotICAgICAgICAndmVyc2lvbic6ICdnaXRfcmV2aXNpb246YmQ5OWRiZjk4Y2JkZWZl
MThhNDEyODE4OTY2NWM1NzYxMjYzYmNmYicsCisgICAgICAgICd2ZXJzaW9uJzogJ2dpdF9yZXZp
c2lvbjowZDZkMTMxMGQwMDVjYjliYWNlOTA5Y2I4MzUyZTgzMTEzYzZmYzUxJywKICAgICAgIH0K
ICAgICBdLAogICAgICdkZXBfdHlwZSc6ICdjaXBkJywKQEAgLTE4MiwxMiArMTgyLDEyIEBAIGRl
cHMgPSB7CiAgIH0sCiAKICAgJ3Rlc3RpbmcnOiB7Ci0gICAgJ3VybCc6ICd7Y2hyb21pdW1fZ2l0
fS9jaHJvbWl1bS9zcmMvdGVzdGluZ0A1NWYxZGMyZDI3Y2Q2ZDVmOGNkYzQxODJlYzMwZjUwOTZk
ZWRiZjUxJywKKyAgICAndXJsJzogJ3tjaHJvbWl1bV9naXR9L2Nocm9taXVtL3NyYy90ZXN0aW5n
QDRiOTg5OTEyNjg5ZDBkNGYzZTE5MjgyYjY1NDY1Yzc1ZGZiMWYzYzYnLAogICAgICdjb25kaXRp
b24nOiAnbm90IGJ1aWxkX3dpdGhfY2hyb21pdW0nLAogICB9LAogCiAgICd0aGlyZF9wYXJ0eS9h
YnNlaWwtY3BwJzogewotICAgICd1cmwnOiAne2Nocm9taXVtX2dpdH0vY2hyb21pdW0vc3JjL3Ro
aXJkX3BhcnR5L2Fic2VpbC1jcHBAYTQyOTc0OTNkODYwMjJiOTFjOTNmN2MxZGUyOWU5YWQwYTBl
MjQ4OScsCisgICAgJ3VybCc6ICd7Y2hyb21pdW1fZ2l0fS9jaHJvbWl1bS9zcmMvdGhpcmRfcGFy
dHkvYWJzZWlsLWNwcEBiMGYzNDg0MWFmZjEzZGFjOTg3MjUwMTBiNmNhNDAxNzQ3ZDliNDc1JywK
ICAgICAnY29uZGl0aW9uJzogJ25vdCBidWlsZF93aXRoX2Nocm9taXVtJywKICAgfSwKIApAQCAt
MjAwLDcgKzIwMCw3IEBAIGRlcHMgPSB7CiAgICAgICAncGFja2FnZXMnOiBbCiAgICAgICAgICAg
ewogICAgICAgICAgICAgICAncGFja2FnZSc6ICdjaHJvbWl1bS90aGlyZF9wYXJ0eS9hbmRyb2lk
X2J1aWxkX3Rvb2xzL2FhcHQyJywKLSAgICAgICAgICAgICAgJ3ZlcnNpb24nOiAnd2ljbjVDZTFh
eTZpdmJaMUdORkYwZ1JTUzNOWXZfN2hKVFB0VmdhM08tUUMnLAorICAgICAgICAgICAgICAndmVy
c2lvbic6ICdSRHV0T0dLX01WVmc2M2JpUmFVbjhuNDN6YUlTWWVkU0V0VEpBdy1nU2VnQycsCiAg
ICAgICAgICAgfSwKICAgICAgIF0sCiAgICAgICAnY29uZGl0aW9uJzogJ2NoZWNrb3V0X2FuZHJv
aWQgYW5kIG5vdCBidWlsZF93aXRoX2Nocm9taXVtJywKQEAgLTIyMiw3ICsyMjIsNyBAQCBkZXBz
ID0gewogICAgICAgJ3BhY2thZ2VzJzogWwogICAgICAgICAgIHsKICAgICAgICAgICAgICAgICdw
YWNrYWdlJzogJ2Nocm9taXVtL3RoaXJkX3BhcnR5L2FuZHJvaWRfYnVpbGRfdG9vbHMvYnVuZGxl
dG9vbCcsCi0gICAgICAgICAgICAgICAndmVyc2lvbic6ICdMb2xkaVFEcFowdVRkQW01RVBnWjho
QkozTGEyS2xUV0x1YVJ4RTdlRGlnQycsCisgICAgICAgICAgICAgICAndmVyc2lvbic6ICd6UUlM
SVVuQ2FROTNIVHRSMDdtNGFobEU5bXJra3drczUyTDV2RmFVYVVVQycsCiAgICAgICAgICAgfSwK
ICAgICAgIF0sCiAgICAgICAnY29uZGl0aW9uJzogJ2NoZWNrb3V0X2FuZHJvaWQgYW5kIG5vdCBi
dWlsZF93aXRoX2Nocm9taXVtJywKQEAgLTIzMCwxNyArMjMwLDE3IEBAIGRlcHMgPSB7CiAgIH0s
CiAKICAgJ3RoaXJkX3BhcnR5L2FuZHJvaWRfZGVwcyc6IHsKLSAgICAndXJsJzogJ3tjaHJvbWl1
bV9naXR9L2Nocm9taXVtL3NyYy90aGlyZF9wYXJ0eS9hbmRyb2lkX2RlcHNAYmUwNzMxZjM5ZWY1
YmI3MTI4ZWZmOGQwOWRhOTBjZDllNzA4YzNiNCcsCisgICAgJ3VybCc6ICd7Y2hyb21pdW1fZ2l0
fS9jaHJvbWl1bS9zcmMvdGhpcmRfcGFydHkvYW5kcm9pZF9kZXBzQDc4NzZkNTE5NGJhZDI1M2Rh
ZDUyN2ZmMGNlNDQyNDlkNWE3ODY4N2QnLAogICAgICdjb25kaXRpb24nOiAnY2hlY2tvdXRfYW5k
cm9pZCBhbmQgbm90IGJ1aWxkX3dpdGhfY2hyb21pdW0nLAogICB9LAogCiAgICd0aGlyZF9wYXJ0
eS9hbmRyb2lkX25kayc6IHsKLSAgICAndXJsJzogJ3tjaHJvbWl1bV9naXR9L2FuZHJvaWRfbmRr
LmdpdEA5NjQ0MTA0YzhjZjg1YmYxYmRjZTViMWMwNjkxZTk3Nzg1NzJjM2Y4JywKKyAgICAndXJs
JzogJ3tjaHJvbWl1bV9naXR9L2FuZHJvaWRfbmRrLmdpdEA4Mzg4YTJiZTU0MjEzMTFkYzc1YzVm
OTM3YWFlMTNkODIxYTI3ZjNkJywKICAgICAnY29uZGl0aW9uJzogJ2NoZWNrb3V0X2FuZHJvaWQg
YW5kIG5vdCBidWlsZF93aXRoX2Nocm9taXVtJywKICAgfSwKIAogICAndGhpcmRfcGFydHkvYW5k
cm9pZF9wbGF0Zm9ybSc6IHsKLSAgICAndXJsJzogJ3tjaHJvbWl1bV9naXR9L2Nocm9taXVtL3Ny
Yy90aGlyZF9wYXJ0eS9hbmRyb2lkX3BsYXRmb3JtQDg3YjRiNDhkZTNjODIwNDIyNGQ2MzYxMmMy
ODdlYjVhNDQ3YTU2MmQnLAorICAgICd1cmwnOiAne2Nocm9taXVtX2dpdH0vY2hyb21pdW0vc3Jj
L3RoaXJkX3BhcnR5L2FuZHJvaWRfcGxhdGZvcm1AMzZjMTU4MDViOTFiOWNkODc2MzMwZDk5NzEy
NTNhZDRmNTk2MDQ2OCcsCiAgICAgJ2NvbmRpdGlvbic6ICdjaGVja291dF9hbmRyb2lkIGFuZCBu
b3QgYnVpbGRfd2l0aF9jaHJvbWl1bScsCiAgIH0sCiAKQEAgLTMzMiw3ICszMzIsNyBAQCBkZXBz
ID0gewogICB9LAogCiAgICd0aGlyZF9wYXJ0eS9kZXBvdF90b29scyc6IHsKLSAgICAndXJsJzog
J3tjaHJvbWl1bV9naXR9L2Nocm9taXVtL3Rvb2xzL2RlcG90X3Rvb2xzLmdpdEA3Njk3OWRhZTU2
YzA4ZDI0YjA5MjM0N2ExYmRkMmFiZTQ3NDU1NWEzJywKKyAgICAndXJsJzogJ3tjaHJvbWl1bV9n
aXR9L2Nocm9taXVtL3Rvb2xzL2RlcG90X3Rvb2xzLmdpdEA1ZTQ5ZWRhNWM0ODBkM2JiMTFlZWI2
Zjk4MjM5N2MwYWQzM2RjMmUzJywKICAgICAnY29uZGl0aW9uJzogJ25vdCBidWlsZF93aXRoX2No
cm9taXVtJywKICAgfSwKIApAQCAtNDM5LDcgKzQzOSw3IEBAIGRlcHMgPSB7CiAgIH0sCiAKICAg
J3RoaXJkX3BhcnR5L3Byb3RvYnVmJzogewotICAgICd1cmwnOiAne2Nocm9taXVtX2dpdH0vY2hy
b21pdW0vc3JjL3RoaXJkX3BhcnR5L3Byb3RvYnVmQDcxZDc4ZGI4ZGVmMDgzM2NmMTcxNzhkNTRm
ZTYzYjIwYjk3ZTgwY2UnLAorICAgICd1cmwnOiAne2Nocm9taXVtX2dpdH0vY2hyb21pdW0vc3Jj
L3RoaXJkX3BhcnR5L3Byb3RvYnVmQGIzMDU0ZjdhM2FjNDhkOTc1MWVmMDJmMzgwNjc4ZDNmODFh
YjYzMjcnLAogICAgICdjb25kaXRpb24nOiAnbm90IGJ1aWxkX3dpdGhfY2hyb21pdW0nLAogICB9
LAogCkBAIC00OTYsNyArNDk2LDcgQEAgZGVwcyA9IHsKICAgfSwKIAogICAndGhpcmRfcGFydHkv
U3dpZnRTaGFkZXInOiB7Ci0gICAgJ3VybCc6ICd7c3dpZnRzaGFkZXJfZ2l0fS9Td2lmdFNoYWRl
ckBiYzViZWMwNWMzNjlmY2E0ZTMzNmRlNTEzZWIzNjMwYTVkMzI2NTQ1JywKKyAgICAndXJsJzog
J3tzd2lmdHNoYWRlcl9naXR9L1N3aWZ0U2hhZGVyQDVmNWZhYTNhMmFhZDFhNGNkYzg4NjMzYWY2
MGM0MTcxZWZjMDIyZTInLAogICAgICdjb25kaXRpb24nOiAnbm90IGJ1aWxkX3dpdGhfY2hyb21p
dW0nLAogICB9LAogCkBAIC01MDQsNyArNTA0LDcgQEAgZGVwcyA9IHsKICAgICAgICdwYWNrYWdl
cyc6IFsKICAgICAgICAgICB7CiAgICAgICAgICAgICAgICdwYWNrYWdlJzogJ2Nocm9taXVtL3Ro
aXJkX3BhcnR5L3R1cmJpbmUnLAotICAgICAgICAgICAgICAndmVyc2lvbic6ICdHbzlKM016NWFu
a1pBZ3htbjVHeGVYS2RFRFY3M3phWnAyb2pOZkdDMVJRQycsCisgICAgICAgICAgICAgICd2ZXJz
aW9uJzogJ3k0eDgwa1VuRE94QzVReUc0OE1sVm9pUklFbjA5ZWFIY0lKUUZhdmxxZ01DJywKICAg
ICAgICAgICB9LAogICAgICAgXSwKICAgICAgICdjb25kaXRpb24nOiAnY2hlY2tvdXRfYW5kcm9p
ZCBhbmQgbm90IGJ1aWxkX3dpdGhfY2hyb21pdW0nLApAQCAtNTE2LDcgKzUxNiw3IEBAIGRlcHMg
PSB7CiAgIH0sCiAKICAgJ3RoaXJkX3BhcnR5L3Z1bGthbi1kZXBzJzogewotICAgICd1cmwnOiAn
e2Nocm9taXVtX2dpdH0vdnVsa2FuLWRlcHNAZTM3YmE2OGMwZmRlMWMyNmY2ZWExZmE1NDYzYjA5
MTk2MTRmNmM2MScsCisgICAgJ3VybCc6ICd7Y2hyb21pdW1fZ2l0fS92dWxrYW4tZGVwc0BmNjg1
MzQ2ZTJlNTFlMTM3Y2FiYTU0ZjhkZjRmZGI0MTU2MzcwZTYzJywKICAgICAnY29uZGl0aW9uJzog
J25vdCBidWlsZF93aXRoX2Nocm9taXVtJywKICAgfSwKIApAQCAtNTMxLDcgKzUzMSw3IEBAIGRl
cHMgPSB7CiAgIH0sCiAKICAgJ3RoaXJkX3BhcnR5L3psaWInOiB7Ci0gICAgJ3VybCc6ICd7Y2hy
b21pdW1fZ2l0fS9jaHJvbWl1bS9zcmMvdGhpcmRfcGFydHkvemxpYkA5MjNmNWViNGJmYTQwM2Qw
ZjE0ZDljYmNhMmNkZjdmYTc0MTZlZTY3JywKKyAgICAndXJsJzogJ3tjaHJvbWl1bV9naXR9L2No
cm9taXVtL3NyYy90aGlyZF9wYXJ0eS96bGliQDMyZTY1ZWY5NzU2YzIxNDcxZmJjYzJhOWJmOTFm
Mzg1NGQ5NjhjM2QnLAogICAgICdjb25kaXRpb24nOiAnbm90IGJ1aWxkX3dpdGhfY2hyb21pdW0n
LAogICB9LAogCkBAIC01NDEsNyArNTQxLDcgQEAgZGVwcyA9IHsKICAgfSwKIAogICAndG9vbHMv
Y2xhbmcnOiB7Ci0gICAgJ3VybCc6ICd7Y2hyb21pdW1fZ2l0fS9jaHJvbWl1bS9zcmMvdG9vbHMv
Y2xhbmcuZ2l0QGExNWMyZGZhMzUxNzdkYzIxNTc3YTE3NjBlOGY0YzBjMWU4NTRkYTYnLAorICAg
ICd1cmwnOiAne2Nocm9taXVtX2dpdH0vY2hyb21pdW0vc3JjL3Rvb2xzL2NsYW5nLmdpdEBlYTJm
MDBjMTBiMTM1YTBkYjcyOTlkNjI0N2Q0NmQ0ZDM2MTgwYWVjJywKICAgICAnY29uZGl0aW9uJzog
J25vdCBidWlsZF93aXRoX2Nocm9taXVtJywKICAgfSwKIApAQCAtNTcyLDcgKzU3Miw3IEBAIGRl
cHMgPSB7CiAgIH0sCiAKICAgJ3Rvb2xzL21iJzogewotICAgICd1cmwnOiAne2Nocm9taXVtX2dp
dH0vY2hyb21pdW0vc3JjL3Rvb2xzL21iQGU2ZjE1OWRmNjBkMTc4OGY5YTVlZGY4Y2EzMmU0NTZm
MGM3Mjk0OWInLAorICAgICd1cmwnOiAne2Nocm9taXVtX2dpdH0vY2hyb21pdW0vc3JjL3Rvb2xz
L21iQGZiM2Q4OTE4MTUxZDBhYTFjMDJiOWRlNzA1ZjE0ODAyOTZmYmVhMjAnLAogICAgICdjb25k
aXRpb24nOiAnbm90IGJ1aWxkX3dpdGhfY2hyb21pdW0nLAogICB9LAogCkBAIC01ODIsMTIgKzU4
MiwxMiBAQCBkZXBzID0gewogICB9LAogCiAgICd0b29scy9tZW1vcnknOiB7Ci0gICAgJ3VybCc6
ICd7Y2hyb21pdW1fZ2l0fS9jaHJvbWl1bS9zcmMvdG9vbHMvbWVtb3J5QDhhMzQwYjY0ZGNlNGI1
Nzg0OTQ4ODFhMTExMmNmYTExYjcyMzMwZTInLAorICAgICd1cmwnOiAne2Nocm9taXVtX2dpdH0v
Y2hyb21pdW0vc3JjL3Rvb2xzL21lbW9yeUAwODdjNzYzMGEzM2NiNTU4ZmVjMWI4NjNjYzUwNzZk
OTdhNjdhZWY4JywKICAgICAnY29uZGl0aW9uJzogJ25vdCBidWlsZF93aXRoX2Nocm9taXVtJywK
ICAgfSwKIAogICAndG9vbHMvcGVyZic6IHsKLSAgICAndXJsJzogJ3tjaHJvbWl1bV9naXR9L2No
cm9taXVtL3NyYy90b29scy9wZXJmQDQ2ZmE5YjQ3NjVjNjFiZGZmM2UxNDdjZDY4YWNjYWJjNGQx
ZmUwZGInLAorICAgICd1cmwnOiAne2Nocm9taXVtX2dpdH0vY2hyb21pdW0vc3JjL3Rvb2xzL3Bl
cmZAYzJhNWVhM2M2OGZlOTA2NWEwNGZkNGZhZWFiOTkyMTUxZTBhM2IxNycsCiAgICAgJ2NvbmRp
dGlvbic6ICdub3QgYnVpbGRfd2l0aF9jaHJvbWl1bScsCiAgIH0sCiAKQEAgLTc0MSw2ICs3NDEs
MTYgQEAgZGVwcyA9IHsKICAgICAgICdkZXBfdHlwZSc6ICdjaXBkJywKICAgICAgICdjb25kaXRp
b24nOiAnY2hlY2tvdXRfYW5nbGVfcmVzdHJpY3RlZF90cmFjZXMnLAogICB9LAorICAnc3JjL3Rl
c3RzL3Jlc3RyaWN0ZWRfdHJhY2VzL2F6dGVjX3J1aW5zX2hpZ2gnOiB7CisgICAgICAncGFja2Fn
ZXMnOiBbCisgICAgICAgIHsKKyAgICAgICAgICAgICdwYWNrYWdlJzogJ2FuZ2xlL3RyYWNlcy9h
enRlY19ydWluc19oaWdoJywKKyAgICAgICAgICAgICd2ZXJzaW9uJzogJ3ZlcnNpb246MScsCisg
ICAgICAgIH0sCisgICAgICBdLAorICAgICAgJ2RlcF90eXBlJzogJ2NpcGQnLAorICAgICAgJ2Nv
bmRpdGlvbic6ICdjaGVja291dF9hbmdsZV9yZXN0cmljdGVkX3RyYWNlcycsCisgIH0sCiAgICdz
cmMvdGVzdHMvcmVzdHJpY3RlZF90cmFjZXMvYmFkbGFuZCc6IHsKICAgICAgICdwYWNrYWdlcyc6
IFsKICAgICAgICAgewpAQCAtODUxLDYgKzg2MSwxNiBAQCBkZXBzID0gewogICAgICAgJ2RlcF90
eXBlJzogJ2NpcGQnLAogICAgICAgJ2NvbmRpdGlvbic6ICdjaGVja291dF9hbmdsZV9yZXN0cmlj
dGVkX3RyYWNlcycsCiAgIH0sCisgICdzcmMvdGVzdHMvcmVzdHJpY3RlZF90cmFjZXMvY2FyX2No
YXNlJzogeworICAgICAgJ3BhY2thZ2VzJzogWworICAgICAgICB7CisgICAgICAgICAgICAncGFj
a2FnZSc6ICdhbmdsZS90cmFjZXMvY2FyX2NoYXNlJywKKyAgICAgICAgICAgICd2ZXJzaW9uJzog
J3ZlcnNpb246MScsCisgICAgICAgIH0sCisgICAgICBdLAorICAgICAgJ2RlcF90eXBlJzogJ2Np
cGQnLAorICAgICAgJ2NvbmRpdGlvbic6ICdjaGVja291dF9hbmdsZV9yZXN0cmljdGVkX3RyYWNl
cycsCisgIH0sCiAgICdzcmMvdGVzdHMvcmVzdHJpY3RlZF90cmFjZXMvY2FyX3BhcmtpbmdfbXVs
dGlwbGF5ZXInOiB7CiAgICAgICAncGFja2FnZXMnOiBbCiAgICAgICAgIHsKQEAgLTExNDEsNiAr
MTE2MSwxNiBAQCBkZXBzID0gewogICAgICAgJ2RlcF90eXBlJzogJ2NpcGQnLAogICAgICAgJ2Nv
bmRpdGlvbic6ICdjaGVja291dF9hbmdsZV9yZXN0cmljdGVkX3RyYWNlcycsCiAgIH0sCisgICdz
cmMvdGVzdHMvcmVzdHJpY3RlZF90cmFjZXMvZnJlZV9maXJlX21heCc6IHsKKyAgICAgICdwYWNr
YWdlcyc6IFsKKyAgICAgICAgeworICAgICAgICAgICAgJ3BhY2thZ2UnOiAnYW5nbGUvdHJhY2Vz
L2ZyZWVfZmlyZV9tYXgnLAorICAgICAgICAgICAgJ3ZlcnNpb24nOiAndmVyc2lvbjoxJywKKyAg
ICAgICAgfSwKKyAgICAgIF0sCisgICAgICAnZGVwX3R5cGUnOiAnY2lwZCcsCisgICAgICAnY29u
ZGl0aW9uJzogJ2NoZWNrb3V0X2FuZ2xlX3Jlc3RyaWN0ZWRfdHJhY2VzJywKKyAgfSwKICAgJ3Ny
Yy90ZXN0cy9yZXN0cmljdGVkX3RyYWNlcy9nYXJkZW5zY2FwZXMnOiB7CiAgICAgICAncGFja2Fn
ZXMnOiBbCiAgICAgICAgIHsKQEAgLTE0NDEsNiArMTQ3MSwxNiBAQCBkZXBzID0gewogICAgICAg
J2RlcF90eXBlJzogJ2NpcGQnLAogICAgICAgJ2NvbmRpdGlvbic6ICdjaGVja291dF9hbmdsZV9y
ZXN0cmljdGVkX3RyYWNlcycsCiAgIH0sCisgICdzcmMvdGVzdHMvcmVzdHJpY3RlZF90cmFjZXMv
bW9uc3Rlcl9zdHJpa2UnOiB7CisgICAgICAncGFja2FnZXMnOiBbCisgICAgICAgIHsKKyAgICAg
ICAgICAgICdwYWNrYWdlJzogJ2FuZ2xlL3RyYWNlcy9tb25zdGVyX3N0cmlrZScsCisgICAgICAg
ICAgICAndmVyc2lvbic6ICd2ZXJzaW9uOjEnLAorICAgICAgICB9LAorICAgICAgXSwKKyAgICAg
ICdkZXBfdHlwZSc6ICdjaXBkJywKKyAgICAgICdjb25kaXRpb24nOiAnY2hlY2tvdXRfYW5nbGVf
cmVzdHJpY3RlZF90cmFjZXMnLAorICB9LAogICAnc3JjL3Rlc3RzL3Jlc3RyaWN0ZWRfdHJhY2Vz
L215X3RhbGtpbmdfdG9tMic6IHsKICAgICAgICdwYWNrYWdlcyc6IFsKICAgICAgICAgewpAQCAt
MTY5MSw2ICsxNzMxLDE2IEBAIGRlcHMgPSB7CiAgICAgICAnZGVwX3R5cGUnOiAnY2lwZCcsCiAg
ICAgICAnY29uZGl0aW9uJzogJ2NoZWNrb3V0X2FuZ2xlX3Jlc3RyaWN0ZWRfdHJhY2VzJywKICAg
fSwKKyAgJ3NyYy90ZXN0cy9yZXN0cmljdGVkX3RyYWNlcy9zY2FyeV90ZWFjaGVyXzNkJzogewor
ICAgICAgJ3BhY2thZ2VzJzogWworICAgICAgICB7CisgICAgICAgICAgICAncGFja2FnZSc6ICdh
bmdsZS90cmFjZXMvc2NhcnlfdGVhY2hlcl8zZCcsCisgICAgICAgICAgICAndmVyc2lvbic6ICd2
ZXJzaW9uOjEnLAorICAgICAgICB9LAorICAgICAgXSwKKyAgICAgICdkZXBfdHlwZSc6ICdjaXBk
JywKKyAgICAgICdjb25kaXRpb24nOiAnY2hlY2tvdXRfYW5nbGVfcmVzdHJpY3RlZF90cmFjZXMn
LAorICB9LAogICAnc3JjL3Rlc3RzL3Jlc3RyaWN0ZWRfdHJhY2VzL3NjcmFiYmxlX2dvJzogewog
ICAgICAgJ3BhY2thZ2VzJzogWwogICAgICAgICB7CkBAIC0xNzcxLDYgKzE4MjEsMTYgQEAgZGVw
cyA9IHsKICAgICAgICdkZXBfdHlwZSc6ICdjaXBkJywKICAgICAgICdjb25kaXRpb24nOiAnY2hl
Y2tvdXRfYW5nbGVfcmVzdHJpY3RlZF90cmFjZXMnLAogICB9LAorICAnc3JjL3Rlc3RzL3Jlc3Ry
aWN0ZWRfdHJhY2VzL3NwZWNpYWxfZm9yY2VzX2dyb3VwXzInOiB7CisgICAgICAncGFja2FnZXMn
OiBbCisgICAgICAgIHsKKyAgICAgICAgICAgICdwYWNrYWdlJzogJ2FuZ2xlL3RyYWNlcy9zcGVj
aWFsX2ZvcmNlc19ncm91cF8yJywKKyAgICAgICAgICAgICd2ZXJzaW9uJzogJ3ZlcnNpb246MScs
CisgICAgICAgIH0sCisgICAgICBdLAorICAgICAgJ2RlcF90eXBlJzogJ2NpcGQnLAorICAgICAg
J2NvbmRpdGlvbic6ICdjaGVja291dF9hbmdsZV9yZXN0cmljdGVkX3RyYWNlcycsCisgIH0sCiAg
ICdzcmMvdGVzdHMvcmVzdHJpY3RlZF90cmFjZXMvc3RhbmRvZmZfMic6IHsKICAgICAgICdwYWNr
YWdlcyc6IFsKICAgICAgICAgewpAQCAtMzM0MSw3ICszNDAxLDcgQEAgZGVwcyA9IHsKICAgICAg
ICdwYWNrYWdlcyc6IFsKICAgICAgICAgICB7CiAgICAgICAgICAgICAgICdwYWNrYWdlJzogJ2No
cm9taXVtL3RoaXJkX3BhcnR5L2FuZHJvaWRfZGVwcy9saWJzL29yZ19qZXRicmFpbnNfa290bGlu
X2tvdGxpbl9zdGRsaWInLAotICAgICAgICAgICAgICAndmVyc2lvbic6ICd2ZXJzaW9uOjJAMS42
LjEwLmNyMScsCisgICAgICAgICAgICAgICd2ZXJzaW9uJzogJ3ZlcnNpb246MkAxLjYuMjAuY3Ix
JywKICAgICAgICAgICB9LAogICAgICAgXSwKICAgICAgICdjb25kaXRpb24nOiAnY2hlY2tvdXRf
YW5kcm9pZCBhbmQgbm90IGJ1aWxkX3dpdGhfY2hyb21pdW0nLApAQCAtMzM1Miw3ICszNDEyLDcg
QEAgZGVwcyA9IHsKICAgICAgICdwYWNrYWdlcyc6IFsKICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICdwYWNrYWdlJzogJ2Nocm9taXVtL3RoaXJkX3BhcnR5L2FuZHJvaWRfZGVwcy9saWJzL29y
Z19qZXRicmFpbnNfa290bGluX2tvdGxpbl9zdGRsaWJfY29tbW9uJywKLSAgICAgICAgICAgICAg
J3ZlcnNpb24nOiAndmVyc2lvbjoyQDEuNi4xMC5jcjEnLAorICAgICAgICAgICAgICAndmVyc2lv
bic6ICd2ZXJzaW9uOjJAMS42LjIwLmNyMScsCiAgICAgICAgICAgfSwKICAgICAgIF0sCiAgICAg
ICAnY29uZGl0aW9uJzogJ2NoZWNrb3V0X2FuZHJvaWQgYW5kIG5vdCBidWlsZF93aXRoX2Nocm9t
aXVtJywKQEAgLTMzNjMsNyArMzQyMyw3IEBAIGRlcHMgPSB7CiAgICAgICAncGFja2FnZXMnOiBb
CiAgICAgICAgICAgewogICAgICAgICAgICAgICAncGFja2FnZSc6ICdjaHJvbWl1bS90aGlyZF9w
YXJ0eS9hbmRyb2lkX2RlcHMvbGlicy9vcmdfamV0YnJhaW5zX2tvdGxpbl9rb3RsaW5fc3RkbGli
X2pkazcnLAotICAgICAgICAgICAgICAndmVyc2lvbic6ICd2ZXJzaW9uOjJAMS41LjAuY3IxJywK
KyAgICAgICAgICAgICAgJ3ZlcnNpb24nOiAndmVyc2lvbjoyQDEuNi4yMC5jcjEnLAogICAgICAg
ICAgIH0sCiAgICAgICBdLAogICAgICAgJ2NvbmRpdGlvbic6ICdjaGVja291dF9hbmRyb2lkIGFu
ZCBub3QgYnVpbGRfd2l0aF9jaHJvbWl1bScsCkBAIC0zMzc0LDcgKzM0MzQsNyBAQCBkZXBzID0g
ewogICAgICAgJ3BhY2thZ2VzJzogWwogICAgICAgICAgIHsKICAgICAgICAgICAgICAgJ3BhY2th
Z2UnOiAnY2hyb21pdW0vdGhpcmRfcGFydHkvYW5kcm9pZF9kZXBzL2xpYnMvb3JnX2pldGJyYWlu
c19rb3RsaW5fa290bGluX3N0ZGxpYl9qZGs4JywKLSAgICAgICAgICAgICAgJ3ZlcnNpb24nOiAn
dmVyc2lvbjoyQDEuNS4wLmNyMScsCisgICAgICAgICAgICAgICd2ZXJzaW9uJzogJ3ZlcnNpb246
MkAxLjYuMjAuY3IxJywKICAgICAgICAgICB9LAogICAgICAgXSwKICAgICAgICdjb25kaXRpb24n
OiAnY2hlY2tvdXRfYW5kcm9pZCBhbmQgbm90IGJ1aWxkX3dpdGhfY2hyb21pdW0nLApAQCAtMzM4
NSw3ICszNDQ1LDcgQEAgZGVwcyA9IHsKICAgICAgICdwYWNrYWdlcyc6IFsKICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICdwYWNrYWdlJzogJ2Nocm9taXVtL3RoaXJkX3BhcnR5L2FuZHJvaWRf
ZGVwcy9saWJzL29yZ19qZXRicmFpbnNfa290bGlueF9rb3RsaW54X2Nvcm91dGluZXNfYW5kcm9p
ZCcsCi0gICAgICAgICAgICAgICd2ZXJzaW9uJzogJ3ZlcnNpb246MkAxLjUuMC5jcjEnLAorICAg
ICAgICAgICAgICAndmVyc2lvbic6ICd2ZXJzaW9uOjJAMS42LjEuY3IxJywKICAgICAgICAgICB9
LAogICAgICAgXSwKICAgICAgICdjb25kaXRpb24nOiAnY2hlY2tvdXRfYW5kcm9pZCBhbmQgbm90
IGJ1aWxkX3dpdGhfY2hyb21pdW0nLApAQCAtMzM5Niw3ICszNDU2LDcgQEAgZGVwcyA9IHsKICAg
ICAgICdwYWNrYWdlcyc6IFsKICAgICAgICAgICB7CiAgICAgICAgICAgICAgICdwYWNrYWdlJzog
J2Nocm9taXVtL3RoaXJkX3BhcnR5L2FuZHJvaWRfZGVwcy9saWJzL29yZ19qZXRicmFpbnNfa290
bGlueF9rb3RsaW54X2Nvcm91dGluZXNfY29yZV9qdm0nLAotICAgICAgICAgICAgICAndmVyc2lv
bic6ICd2ZXJzaW9uOjJAMS41LjAuY3IxJywKKyAgICAgICAgICAgICAgJ3ZlcnNpb24nOiAndmVy
c2lvbjoyQDEuNi4xLmNyMScsCiAgICAgICAgICAgfSwKICAgICAgIF0sCiAgICAgICAnY29uZGl0
aW9uJzogJ2NoZWNrb3V0X2FuZHJvaWQgYW5kIG5vdCBidWlsZF93aXRoX2Nocm9taXVtJywKQEAg
LTM2NjYsMTYgKzM3MjYsMzEgQEAgaG9va3MgPSBbCiAgICAgXSwKICAgfSwKICAgewotICAgICdu
YW1lJzogJ2NsYW5nX2Zvcm1hdF9tYWMnLAorICAgICduYW1lJzogJ2NsYW5nX2Zvcm1hdF9tYWNf
eDY0JywKKyAgICAncGF0dGVybic6ICcuJywKKyAgICAnY29uZGl0aW9uJzogJ2hvc3Rfb3MgPT0g
Im1hYyIgYW5kIGhvc3RfY3B1ID09ICJ4NjQiIGFuZCBub3QgYnVpbGRfd2l0aF9jaHJvbWl1bScs
CisgICAgJ2FjdGlvbic6IFsgJ3B5dGhvbjMnLAorICAgICAgICAgICAgICAgICd0aGlyZF9wYXJ0
eS9kZXBvdF90b29scy9kb3dubG9hZF9mcm9tX2dvb2dsZV9zdG9yYWdlLnB5JywKKyAgICAgICAg
ICAgICAgICAnLS1ub19yZXN1bWUnLAorICAgICAgICAgICAgICAgICctLXBsYXRmb3JtPWRhcndp
bicsCisgICAgICAgICAgICAgICAgJy0tbm9fYXV0aCcsCisgICAgICAgICAgICAgICAgJy0tYnVj
a2V0JywgJ2Nocm9taXVtLWNsYW5nLWZvcm1hdCcsCisgICAgICAgICAgICAgICAgJy1zJywgJ2J1
aWxkdG9vbHMvbWFjL2NsYW5nLWZvcm1hdC54NjQuc2hhMScsCisgICAgICAgICAgICAgICAgJy1v
JywgJ2J1aWxkdG9vbHMvbWFjL2NsYW5nLWZvcm1hdCcsCisgICAgXSwKKyAgfSwKKyAgeworICAg
ICduYW1lJzogJ2NsYW5nX2Zvcm1hdF9tYWNfYXJtNjQnLAogICAgICdwYXR0ZXJuJzogJy4nLAot
ICAgICdjb25kaXRpb24nOiAnaG9zdF9vcyA9PSAibWFjIiBhbmQgbm90IGJ1aWxkX3dpdGhfY2hy
b21pdW0nLAorICAgICdjb25kaXRpb24nOiAnaG9zdF9vcyA9PSAibWFjIiBhbmQgaG9zdF9jcHUg
PT0gImFybTY0IiBhbmQgbm90IGJ1aWxkX3dpdGhfY2hyb21pdW0nLAogICAgICdhY3Rpb24nOiBb
ICdweXRob24zJywKICAgICAgICAgICAgICAgICAndGhpcmRfcGFydHkvZGVwb3RfdG9vbHMvZG93
bmxvYWRfZnJvbV9nb29nbGVfc3RvcmFnZS5weScsCiAgICAgICAgICAgICAgICAgJy0tbm9fcmVz
dW1lJywKICAgICAgICAgICAgICAgICAnLS1wbGF0Zm9ybT1kYXJ3aW4nLAogICAgICAgICAgICAg
ICAgICctLW5vX2F1dGgnLAogICAgICAgICAgICAgICAgICctLWJ1Y2tldCcsICdjaHJvbWl1bS1j
bGFuZy1mb3JtYXQnLAotICAgICAgICAgICAgICAgICctcycsICdidWlsZHRvb2xzL21hYy9jbGFu
Zy1mb3JtYXQuc2hhMScsCisgICAgICAgICAgICAgICAgJy1zJywgJ2J1aWxkdG9vbHMvbWFjL2Ns
YW5nLWZvcm1hdC5hcm02NC5zaGExJywKKyAgICAgICAgICAgICAgICAnLW8nLCAnYnVpbGR0b29s
cy9tYWMvY2xhbmctZm9ybWF0JywKICAgICBdLAogICB9LAogICB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9BTkdMRS9HTEVTdjIuY21ha2UgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdM
RS9HTEVTdjIuY21ha2UKaW5kZXggNTI1NThmYThhZTkzM2U4Y2RhODFlYmJiMWJkZTUwMzE0Njg1
NDM1Ny4uZGYzODI0ZjcwMDBjNDhkNGUyZGQ5NmRjNWM4MDM5N2UwZDkwYWU0NiAxMDA2NDQKLS0t
IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvR0xFU3YyLmNtYWtlCisrKyBiL1NvdXJjZS9UaGly
ZFBhcnR5L0FOR0xFL0dMRVN2Mi5jbWFrZQpAQCAtMjE3LDExICsyMTcsMTEgQEAgc2V0KGxpYmFu
Z2xlX2luY2x1ZGVzCiAgICAgImluY2x1ZGUvS0hSL2tocnBsYXRmb3JtLmgiCiAgICAgImluY2x1
ZGUvV0dML3dnbC5oIgogICAgICJpbmNsdWRlL3BsYXRmb3JtL0ZlYXR1cmUuaCIKLSAgICAiaW5j
bHVkZS9wbGF0Zm9ybS9GZWF0dXJlc0QzRC5oIgotICAgICJpbmNsdWRlL3BsYXRmb3JtL0ZlYXR1
cmVzR0wuaCIKLSAgICAiaW5jbHVkZS9wbGF0Zm9ybS9GZWF0dXJlc010bC5oIgotICAgICJpbmNs
dWRlL3BsYXRmb3JtL0ZlYXR1cmVzVmsuaCIKLSAgICAiaW5jbHVkZS9wbGF0Zm9ybS9Gcm9udGVu
ZEZlYXR1cmVzLmgiCisgICAgImluY2x1ZGUvcGxhdGZvcm0vRmVhdHVyZXNEM0RfYXV0b2dlbi5o
IgorICAgICJpbmNsdWRlL3BsYXRmb3JtL0ZlYXR1cmVzR0xfYXV0b2dlbi5oIgorICAgICJpbmNs
dWRlL3BsYXRmb3JtL0ZlYXR1cmVzTXRsX2F1dG9nZW4uaCIKKyAgICAiaW5jbHVkZS9wbGF0Zm9y
bS9GZWF0dXJlc1ZrX2F1dG9nZW4uaCIKKyAgICAiaW5jbHVkZS9wbGF0Zm9ybS9Gcm9udGVuZEZl
YXR1cmVzX2F1dG9nZW4uaCIKICAgICAiaW5jbHVkZS9wbGF0Zm9ybS9QbGF0Zm9ybS5oIgogICAg
ICJpbmNsdWRlL3BsYXRmb3JtL1BsYXRmb3JtTWV0aG9kcy5oIgogICAgICJpbmNsdWRlL3Z1bGth
bi92dWxrYW5fZnVjaHNpYV9leHQuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FO
R0xFL2J1aWxkX292ZXJyaWRlcy9zd2lmdHNoYWRlci5nbmkgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9B
TkdMRS9idWlsZF9vdmVycmlkZXMvc3dpZnRzaGFkZXIuZ25pCmluZGV4IGY3ZTE1ZjVlNWU4ODJl
MmQwNzIwZWQzNzIxMmNlOGZmMTIwM2YxYWEuLjRjYWU1NmI5MDUwOWFlMjg1NDVkODZmZTkxMGQ5
ZDA3OWMxMmZiYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL2J1aWxkX292
ZXJyaWRlcy9zd2lmdHNoYWRlci5nbmkKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvYnVp
bGRfb3ZlcnJpZGVzL3N3aWZ0c2hhZGVyLmduaQpAQCAtNyw2ICs3LDMgQEAgc3dpZnRzaGFkZXJf
c3RhbmRhbG9uZSA9IGZhbHNlCiAKICMgUGF0aCB0byBTd2lmdFNoYWRlcgogc3dpZnRzaGFkZXJf
ZGlyID0gIi8vdGhpcmRfcGFydHkvU3dpZnRTaGFkZXIiCi0KLSMgUGF0aHMgdG8gU3dpZnRTaGFk
ZXIgZGVwZW5kZW5jaWVzCi1zd2lmdHNoYWRlcl9zcGlydl90b29sc19kaXIgPSAiLy90aGlyZF9w
YXJ0eS92dWxrYW4tZGVwcy9zcGlydi10b29scy9zcmMiCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9BTkdMRS9jaGFuZ2VzLmRpZmYgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9jaGFu
Z2VzLmRpZmYKaW5kZXggYzAzMjE3OTA1MGUzMzY3NzZjMTUwYTNmZmRiNTY2Mjc2MmQxNzZjZS4u
OWEzZTc3ZjMyYzhiMTBmOGExODQyZjEzZWE3OTVkYTc1OTJiNTBiZSAxMDA2NDQKLS0tIGEvU291
cmNlL1RoaXJkUGFydHkvQU5HTEUvY2hhbmdlcy5kaWZmCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L0FOR0xFL2NoYW5nZXMuZGlmZgpAQCAtNDMsNyArNDMsNyBAQCBpbmRleCA0OTdlZjg4MWUyZDlj
ZjBlZmI2NjljYThjN2M0ZjI2Njk2MzNiYWJhLi40NzIxM2M5MDQ5N2M4YzlkOGY3NmJhZjA2NTNm
ZGJjMwogICNpZmRlZiBBTkdMRV9FTkFCTEVfTUVUQUxfU1BJUlYKICAjICAgIGluY2x1ZGUgImNv
bXBpbGVyL3RyYW5zbGF0b3IvVHJhbnNsYXRvck1ldGFsLmgiCiBkaWZmIC0tZ2l0IGEvc3JjL2Nv
bXBpbGVyL3RyYW5zbGF0b3IvSW50ZXJtTm9kZS5jcHAgYi9zcmMvY29tcGlsZXIvdHJhbnNsYXRv
ci9JbnRlcm1Ob2RlLmNwcAotaW5kZXggM2M3NjM1Y2I3MzMxOWFmZWYzYjE1NjVjZDVhMjczMWIw
YzlmMzg1YS4uYTFjOTk4MzIyNTE5YjE1ODgyNjQ2ZWNlNGNiZTg3MWVkMmIzYTc1ZSAxMDA2NDQK
K2luZGV4IDExY2IwZjA0NDA5OTAyYTMzZjJjMzY3N2FjMjgwZDNkOWIzZjM3M2MuLjc5MWRkNmRj
NGUzZWE1YmJiNjI4OTI0NWRlZDhhY2ZmZTI3NTY4YzcgMTAwNjQ0CiAtLS0gYS9zcmMvY29tcGls
ZXIvdHJhbnNsYXRvci9JbnRlcm1Ob2RlLmNwcAogKysrIGIvc3JjL2NvbXBpbGVyL3RyYW5zbGF0
b3IvSW50ZXJtTm9kZS5jcHAKIEBAIC0yNzksNyArMjc5LDcgQEAgYm9vbCBUSW50ZXJtTG9vcDo6
cmVwbGFjZUNoaWxkTm9kZShUSW50ZXJtTm9kZSAqb3JpZ2luYWwsIFRJbnRlcm1Ob2RlICpyZXBs
YWNlbWUKQEAgLTU1LDcgKzU1LDcgQEAgaW5kZXggM2M3NjM1Y2I3MzMxOWFmZWYzYjE1NjVjZDVh
MjczMWIwYzlmMzg1YS4uYTFjOTk4MzIyNTE5YjE1ODgyNjQ2ZWNlNGNiZTg3MWUKICB7fQogIAog
IHNpemVfdCBUSW50ZXJtQnJhbmNoOjpnZXRDaGlsZENvdW50KCkgY29uc3QKLUBAIC0xNjAxLDEw
ICsxNjAxLDEwIEBAIFRJbnRlcm1Mb29wOjpUSW50ZXJtTG9vcChUTG9vcFR5cGUgdHlwZSwKK0BA
IC0xNjAyLDEwICsxNjAyLDEwIEBAIFRJbnRlcm1Mb29wOjpUSW50ZXJtTG9vcChUTG9vcFR5cGUg
dHlwZSwKICAKICBUSW50ZXJtTG9vcDo6VEludGVybUxvb3AoY29uc3QgVEludGVybUxvb3AgJm5v
ZGUpCiAgICAgIDogVEludGVybUxvb3Aobm9kZS5tVHlwZSwKQEAgLTE2Niw0OCArMTY2LDggQEAg
aW5kZXggYWQzY2MwODBkZTExOTc0ODkzOWU1YWE4OTNmZTA5NWI5ZGQ0YTJmMy4uNzUwNjljNTcy
ODRiYjNiMGNiNzk2NzE3MTkxYzdkNTUKICBuYW1lc3BhY2Ugc2gKICB7CiAgCi1kaWZmIC0tZ2l0
IGEvc3JjL2xpYkFOR0xFL0NvbnRleHQuY3BwIGIvc3JjL2xpYkFOR0xFL0NvbnRleHQuY3BwCi1p
bmRleCBiZDllM2NkNmFhYzM2ZTBjNWRhYjJlN2YxM2JlMmJlZDRhYjdmNGQ1Li5kMTkyMjBmOWZi
NGQxYmQ0MGU0YWQ3ZjQ0NzQzZDUzMzU2ZjMxMDU5IDEwMDY0NAotLS0tIGEvc3JjL2xpYkFOR0xF
L0NvbnRleHQuY3BwCi0rKysgYi9zcmMvbGliQU5HTEUvQ29udGV4dC5jcHAKLUBAIC05MjcwLDcg
KzkyNzAsNyBAQCBlZ2w6OkVycm9yIENvbnRleHQ6OnNldERlZmF1bHRGcmFtZWJ1ZmZlcihlZ2w6
OlN1cmZhY2UgKmRyYXdTdXJmYWNlLCBlZ2w6OlN1cmZhYwotICAgICBBU1NFUlQobUN1cnJlbnRE
cmF3U3VyZmFjZSA9PSBudWxscHRyKTsKLSAgICAgQVNTRVJUKG1DdXJyZW50UmVhZFN1cmZhY2Ug
PT0gbnVsbHB0cik7Ci0gCi0tICAgIEZyYW1lYnVmZmVyICpuZXdEZWZhdWx0RnJhbWVidWZmZXIg
PSBudWxscHRyOwotKyAgICBzdGQ6OnVuaXF1ZV9wdHI8Z2w6OkZyYW1lYnVmZmVyPiBuZXdEZWZh
dWx0RnJhbWVidWZmZXI7Ci0gCi0gICAgIG1DdXJyZW50RHJhd1N1cmZhY2UgPSBkcmF3U3VyZmFj
ZTsKLSAgICAgbUN1cnJlbnRSZWFkU3VyZmFjZSA9IHJlYWRTdXJmYWNlOwotQEAgLTkyODIsNyAr
OTI4Miw3IEBAIGVnbDo6RXJyb3IgQ29udGV4dDo6c2V0RGVmYXVsdEZyYW1lYnVmZmVyKGVnbDo6
U3VyZmFjZSAqZHJhd1N1cmZhY2UsIGVnbDo6U3VyZmFjCi0gICAgIH0KLSAgICAgZWxzZQotICAg
ICB7Ci0tICAgICAgICBuZXdEZWZhdWx0RnJhbWVidWZmZXIgPSBuZXcgRnJhbWVidWZmZXIodGhp
cywgbUltcGxlbWVudGF0aW9uLmdldCgpLCByZWFkU3VyZmFjZSk7Ci0rICAgICAgICBuZXdEZWZh
dWx0RnJhbWVidWZmZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPGdsOjpGcmFtZWJ1ZmZlcj4odGhpcywg
bUltcGxlbWVudGF0aW9uLmdldCgpLCByZWFkU3VyZmFjZSk7Ci0gICAgIH0KLSAgICAgQVNTRVJU
KG5ld0RlZmF1bHRGcmFtZWJ1ZmZlcik7Ci0gCi1AQCAtOTI5MywxNCArOTI5MywxNCBAQCBlZ2w6
OkVycm9yIENvbnRleHQ6OnNldERlZmF1bHRGcmFtZWJ1ZmZlcihlZ2w6OlN1cmZhY2UgKmRyYXdT
dXJmYWNlLCBlZ2w6OlN1cmZhYwotIAotICAgICAvLyBVcGRhdGUgZGVmYXVsdCBmcmFtZWJ1ZmZl
ciwgdGhlIGJpbmRpbmcgb2YgdGhlIHByZXZpb3VzIGRlZmF1bHQKLSAgICAgLy8gZnJhbWVidWZm
ZXIgKG9yIGxhY2sgb2YpIHdpbGwgaGF2ZSBhIG51bGxwdHIuCi0tICAgIG1TdGF0ZS5tRnJhbWVi
dWZmZXJNYW5hZ2VyLT5zZXREZWZhdWx0RnJhbWVidWZmZXIobmV3RGVmYXVsdEZyYW1lYnVmZmVy
KTsKLSsgICAgbVN0YXRlLm1GcmFtZWJ1ZmZlck1hbmFnZXItPnNldERlZmF1bHRGcmFtZWJ1ZmZl
cihuZXdEZWZhdWx0RnJhbWVidWZmZXIucmVsZWFzZSgpKTsKLSAgICAgaWYgKG1TdGF0ZS5nZXRE
cmF3RnJhbWVidWZmZXIoKSA9PSBudWxscHRyKQotICAgICB7Ci0tICAgICAgICBiaW5kRHJhd0Zy
YW1lYnVmZmVyKG5ld0RlZmF1bHRGcmFtZWJ1ZmZlci0+aWQoKSk7Ci0rICAgICAgICBiaW5kRHJh
d0ZyYW1lYnVmZmVyKG1TdGF0ZS5tRnJhbWVidWZmZXJNYW5hZ2VyLT5nZXREZWZhdWx0RnJhbWVi
dWZmZXIoKS0+aWQoKSk7Ci0gICAgIH0KLSAgICAgaWYgKG1TdGF0ZS5nZXRSZWFkRnJhbWVidWZm
ZXIoKSA9PSBudWxscHRyKQotICAgICB7Ci0tICAgICAgICBiaW5kUmVhZEZyYW1lYnVmZmVyKG5l
d0RlZmF1bHRGcmFtZWJ1ZmZlci0+aWQoKSk7Ci0rICAgICAgICBiaW5kUmVhZEZyYW1lYnVmZmVy
KG1TdGF0ZS5tRnJhbWVidWZmZXJNYW5hZ2VyLT5nZXREZWZhdWx0RnJhbWVidWZmZXIoKS0+aWQo
KSk7Ci0gICAgIH0KLSAKLSAgICAgcmV0dXJuIGVnbDo6Tm9FcnJvcigpOwogZGlmZiAtLWdpdCBh
L3NyYy9saWJBTkdMRS9TdGF0ZS5jcHAgYi9zcmMvbGliQU5HTEUvU3RhdGUuY3BwCi1pbmRleCAz
ODNiZjdjZTQ0NDY0MGY4ZDFjMDhhZDkyOWYwODZiNmNlNjE2Y2JmLi5mY2E4MmZiMDI4ZTA3ZTM5
MzdlZDkxNmUyYjFkZGViMTc1MDdlY2YwIDEwMDY0NAoraW5kZXggN2M4NTc5MWVkNWE0YTg0OTM2
MzMzMWFhYzVkYjViNjY3Zjg4MzVkZC4uM2VjODI5ZGNiNDkyMTAxMzgxMGY1MzU0YWE5Mjc0YmM0
MzJiNTQ4YiAxMDA2NDQKIC0tLSBhL3NyYy9saWJBTkdMRS9TdGF0ZS5jcHAKICsrKyBiL3NyYy9s
aWJBTkdMRS9TdGF0ZS5jcHAKIEBAIC02LDYgKzYsOSBAQApAQCAtMjIwLDQ1ICsxODAsNiBAQCBp
bmRleCAzODNiZjdjZTQ0NDY0MGY4ZDFjMDhhZDkyOWYwODZiNmNlNjE2Y2JmLi5mY2E4MmZiMDI4
ZTA3ZTM5MzdlZDkxNmUyYjFkZGViMQogICNpbmNsdWRlICJsaWJBTkdMRS9TdGF0ZS5oIgogIAog
ICNpbmNsdWRlIDxzdHJpbmcuaD4KLWRpZmYgLS1naXQgYS9zcmMvbGliQU5HTEUvU3VyZmFjZS5j
cHAgYi9zcmMvbGliQU5HTEUvU3VyZmFjZS5jcHAKLWluZGV4IDQxODU2NTA3MmYzNzY1OWE2OTA1
MWJiYTFiOTgwYjRjZGM1ZjhhNTMuLmEzOTZhMzQ3ZTY1MTYzMDI1MTJmZDEyZmYzZmViOTFiMTk0
MWZmNTYgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliQU5HTEUvU3VyZmFjZS5jcHAKLSsrKyBiL3NyYy9s
aWJBTkdMRS9TdXJmYWNlLmNwcAotQEAgLTY0MCwxMCArNjQwLDEwIEBAIEVycm9yIFN1cmZhY2U6
OmdldEJ1ZmZlckFnZShjb25zdCBnbDo6Q29udGV4dCAqY29udGV4dCwgRUdMaW50ICphZ2UpCi0g
ICAgIHJldHVybiBlcnI7Ci0gfQotIAotLWdsOjpGcmFtZWJ1ZmZlciAqU3VyZmFjZTo6Y3JlYXRl
RGVmYXVsdEZyYW1lYnVmZmVyKGNvbnN0IGdsOjpDb250ZXh0ICpjb250ZXh0LAotK3N0ZDo6dW5p
cXVlX3B0cjxnbDo6RnJhbWVidWZmZXI+IFN1cmZhY2U6OmNyZWF0ZURlZmF1bHRGcmFtZWJ1ZmZl
cihjb25zdCBnbDo6Q29udGV4dCAqY29udGV4dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWdsOjpTdXJmYWNlICpy
ZWFkU3VyZmFjZSkKLSB7Ci0tICAgIHJldHVybiBuZXcgZ2w6OkZyYW1lYnVmZmVyKGNvbnRleHQs
IHRoaXMsIHJlYWRTdXJmYWNlKTsKLSsgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8Z2w6OkZy
YW1lYnVmZmVyPihjb250ZXh0LCB0aGlzLCByZWFkU3VyZmFjZSk7Ci0gfQotIAotIGdsOjpJbml0
U3RhdGUgU3VyZmFjZTo6aW5pdFN0YXRlKGNvbnN0IGdsOjpJbWFnZUluZGV4ICYgLyppbWFnZUlu
ZGV4Ki8pIGNvbnN0Ci1kaWZmIC0tZ2l0IGEvc3JjL2xpYkFOR0xFL1N1cmZhY2UuaCBiL3NyYy9s
aWJBTkdMRS9TdXJmYWNlLmgKLWluZGV4IGU1NzU4MGQyMTgwMmM0MjEwMjU2NzYyNGVmMTJiNzI0
NGU3MTY2NmEuLjE5ODg5YzNkZWJkZWU3MjM5ZmE1NDA5MjczNWVhYzc1N2VlYjI3MGQgMTAwNjQ0
Ci0tLS0gYS9zcmMvbGliQU5HTEUvU3VyZmFjZS5oCi0rKysgYi9zcmMvbGliQU5HTEUvU3VyZmFj
ZS5oCi1AQCAtMTA1LDcgKzEwNSw3IEBAIGNsYXNzIFN1cmZhY2UgOiBwdWJsaWMgTGFiZWxlZE9i
amVjdCwgcHVibGljIGdsOjpGcmFtZWJ1ZmZlckF0dGFjaG1lbnRPYmplY3QKLSAgICAgdm9pZCBz
ZXRGaXhlZFdpZHRoKEVHTGludCB3aWR0aCk7Ci0gICAgIHZvaWQgc2V0Rml4ZWRIZWlnaHQoRUdM
aW50IGhlaWdodCk7Ci0gCi0tICAgIGdsOjpGcmFtZWJ1ZmZlciAqY3JlYXRlRGVmYXVsdEZyYW1l
YnVmZmVyKGNvbnN0IGdsOjpDb250ZXh0ICpjb250ZXh0LAotKyAgICBzdGQ6OnVuaXF1ZV9wdHI8
Z2w6OkZyYW1lYnVmZmVyPiBjcmVhdGVEZWZhdWx0RnJhbWVidWZmZXIoY29uc3QgZ2w6OkNvbnRl
eHQgKmNvbnRleHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBlZ2w6OlN1cmZhY2UgKnJlYWRTdXJmYWNlKTsKLSAKLSAgICAg
Y29uc3QgQ29uZmlnICpnZXRDb25maWcoKSBjb25zdDsKLUBAIC0yMjcsOCArMjI3LDYgQEAgY2xh
c3MgU3VyZmFjZSA6IHB1YmxpYyBMYWJlbGVkT2JqZWN0LCBwdWJsaWMgZ2w6OkZyYW1lYnVmZmVy
QXR0YWNobWVudE9iamVjdAotICAgICB+U3VyZmFjZSgpIG92ZXJyaWRlOwotICAgICByeDo6RnJh
bWVidWZmZXJBdHRhY2htZW50T2JqZWN0SW1wbCAqZ2V0QXR0YWNobWVudEltcGwoKSBjb25zdCBv
dmVycmlkZTsKLSAKLS0gICAgZ2w6OkZyYW1lYnVmZmVyICpjcmVhdGVEZWZhdWx0RnJhbWVidWZm
ZXIoY29uc3QgRGlzcGxheSAqZGlzcGxheSk7Ci0tCi0gICAgIC8vIEFOR0xFLW9ubHkgbWV0aG9k
LCB1c2VkIGludGVybmFsbHkKLSAgICAgZnJpZW5kIGNsYXNzIGdsOjpUZXh0dXJlOwotICAgICBF
cnJvciByZWxlYXNlVGV4SW1hZ2VGcm9tVGV4dHVyZShjb25zdCBnbDo6Q29udGV4dCAqY29udGV4
dCk7CiBkaWZmIC0tZ2l0IGEvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL2RyaXZlcl91dGlscy5jcHAg
Yi9zcmMvbGliQU5HTEUvcmVuZGVyZXIvZHJpdmVyX3V0aWxzLmNwcAogaW5kZXggYmZkZjBmZjc2
ODk0MTA0MmRmYjEyMDIzYzczZWNiZDQyNmRjYjQ2ZC4uNmU1MDk3NjUzZDM2Y2ZiYTY0MzA3MTMy
ZTQzNTg5ZjUwYzQxZjhkMyAxMDA2NDQKIC0tLSBhL3NyYy9saWJBTkdMRS9yZW5kZXJlci9kcml2
ZXJfdXRpbHMuY3BwCkBAIC0yOTYsMTggKzIxNywxMCBAQCBpbmRleCBhMmI0NGQyYmYwNjNiMTNm
NzdlMzA4MzQ3M2U1MDMxZWZkMDA5OTNhLi4yMGVjODVhNTA3ZTM5MjNhODRjY2EyMzUzNjM3Mzgz
NgogICAgICByZXR1cm4gdHJ1ZTsKICB9CiBkaWZmIC0tZ2l0IGEvc3JjL2xpYkFOR0xFL3JlbmRl
cmVyL2dsc2xhbmdfd3JhcHBlcl91dGlscy5oIGIvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL2dsc2xh
bmdfd3JhcHBlcl91dGlscy5oCi1pbmRleCBkMjc3MTVkOTQ5MmUzYmZhN2VlZmVhNWJmYzIwNTk2
NDI5OTlhZmI5Li43NWQyNTJmN2FlNTJjMzM2MTFkN2M1OWE1ZTYyY2Y5MWMxNDRmYzllIDEwMDY0
NAoraW5kZXggMjg1NzM0YmE5NjNlOTg4NzMyYzUxZTJlNjlhMzJhN2RiMTk5MzhlYi4uNGE3M2I0
MTM0ZWZkN2VhNTBmZDMyMTViZjVmZjViMDY5YmI2OWNjNiAxMDA2NDQKIC0tLSBhL3NyYy9saWJB
TkdMRS9yZW5kZXJlci9nbHNsYW5nX3dyYXBwZXJfdXRpbHMuaAogKysrIGIvc3JjL2xpYkFOR0xF
L3JlbmRlcmVyL2dsc2xhbmdfd3JhcHBlcl91dGlscy5oCi1AQCAtMTAsNyArMTAsNiBAQAotICNk
ZWZpbmUgTElCQU5HTEVfUkVOREVSRVJfR0xTTEFOR19XUkFQUEVSX1VUSUxTX0hfCi0gCi0gI2lu
Y2x1ZGUgPGZ1bmN0aW9uYWw+Ci0tCi0gI2luY2x1ZGUgImNvbW1vbi9zcGlydi9zcGlydl90eXBl
cy5oIgotICNpbmNsdWRlICJsaWJBTkdMRS9yZW5kZXJlci9Qcm9ncmFtSW1wbC5oIgotICNpbmNs
dWRlICJsaWJBTkdMRS9yZW5kZXJlci9yZW5kZXJlcl91dGlscy5oIgotQEAgLTE1OCw3ICsxNTcs
NyBAQCB2b2lkIEdsc2xhbmdBc3NpZ25UcmFuc2Zvcm1GZWVkYmFja0xvY2F0aW9ucyhnbDo6U2hh
ZGVyVHlwZSBzaGFkZXJUeXBlLAorQEAgLTE1OCw3ICsxNTgsNyBAQCB2b2lkIEdsc2xhbmdBc3Np
Z25UcmFuc2Zvcm1GZWVkYmFja0xvY2F0aW9ucyhnbDo6U2hhZGVyVHlwZSBzaGFkZXJUeXBlLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgaXNUcmFu
c2Zvcm1GZWVkYmFja1N0YWdlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEdsc2xhbmdQcm9ncmFtSW50ZXJmYWNlSW5mbyAqcHJvZ3JhbUludGVyZmFjZUlu
Zm8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2hhZGVy
SW50ZXJmYWNlVmFyaWFibGVJbmZvTWFwICp2YXJpYWJsZUluZm9NYXBPdXQpOwpAQCAtMzE2LDcg
KzIyOSw3IEBAIGluZGV4IGQyNzcxNWQ5NDkyZTNiZmE3ZWVmZWE1YmZjMjA1OTY0Mjk5OWFmYjku
Ljc1ZDI1MmY3YWU1MmMzMzYxMWQ3YzU5YTVlNjJjZjkxCiAgLy8gUmV0cmlldmVzIHRoZSBjb21w
aWxlZCBTUElSLVYgY29kZSBmb3IgZWFjaCBzaGFkZXIgc3RhZ2UsIGFuZCBjYWxscyB8R2xzbGFu
Z0Fzc2lnbkxvY2F0aW9uc3wuCiAgdm9pZCBHbHNsYW5nR2V0U2hhZGVyU3BpcnZDb2RlKGNvbnN0
IEdsc2xhbmdTb3VyY2VPcHRpb25zICZvcHRpb25zLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdCBnbDo6UHJvZ3JhbVN0YXRlICZwcm9ncmFtU3RhdGUsCi1AQCAtMTcxLDYg
KzE3MCw3IEBAIGFuZ2xlOjpSZXN1bHQgR2xzbGFuZ1RyYW5zZm9ybVNwaXJ2Q29kZShjb25zdCBH
bHNsYW5nU3BpcnZPcHRpb25zICZvcHRpb25zLAorQEAgLTE3MSw2ICsxNzEsNyBAQCBhbmdsZTo6
UmVzdWx0IEdsc2xhbmdUcmFuc2Zvcm1TcGlydkNvZGUoY29uc3QgR2xzbGFuZ1NwaXJ2T3B0aW9u
cyAmb3B0aW9ucywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
c3QgU2hhZGVySW50ZXJmYWNlVmFyaWFibGVJbmZvTWFwICZ2YXJpYWJsZUluZm9NYXAsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGFuZ2xlOjpzcGlydjo6
QmxvYiAmaW5pdGlhbFNwaXJ2QmxvYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYW5nbGU6OnNwaXJ2OjpCbG9iICpzcGlydkJsb2JPdXQpOwpAQCAtMzI0LDQyICsy
MzcsOCBAQCBpbmRleCBkMjc3MTVkOTQ5MmUzYmZhN2VlZmVhNWJmYzIwNTk2NDI5OTlhZmI5Li43
NWQyNTJmN2FlNTJjMzM2MTFkN2M1OWE1ZTYyY2Y5MQogIAogIH0gIC8vIG5hbWVzcGFjZSByeAog
IAotZGlmZiAtLWdpdCBhL3NyYy9saWJBTkdMRS9yZW5kZXJlci9tZXRhbC9CdWZmZXJNdGwuaCBi
L3NyYy9saWJBTkdMRS9yZW5kZXJlci9tZXRhbC9CdWZmZXJNdGwuaAotaW5kZXggNDM4ZThkYWZl
YjljNGQxODU5NWFiNDg2ZjRlM2VlZTdhMTU2ZjI4NS4uYzIwNjkwYzYyZWQyZTNiNjRhNTJlNTBh
OWYyOGM3ZDk4YmJkNTA1NyAxMDA2NDQKLS0tLSBhL3NyYy9saWJBTkdMRS9yZW5kZXJlci9tZXRh
bC9CdWZmZXJNdGwuaAotKysrIGIvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL21ldGFsL0J1ZmZlck10
bC5oCi1AQCAtMTIsNiArMTIsNyBAQAotIAotICNpbXBvcnQgPE1ldGFsL01ldGFsLmg+Ci0gCi0r
I2luY2x1ZGUgPG9wdGlvbmFsPgotICNpbmNsdWRlIDx1dGlsaXR5PgotIAotICNpbmNsdWRlICJs
aWJBTkdMRS9CdWZmZXIuaCIKLUBAIC0yMTUsMTcgKzIxNiwxMyBAQCBjbGFzcyBCdWZmZXJNdGwg
OiBwdWJsaWMgQnVmZmVySW1wbCwgcHVibGljIEJ1ZmZlckhvbGRlck10bAotIAotICAgICBzdHJ1
Y3QgUmVzdGFydFJhbmdlQ2FjaGUKLSAgICAgewotLSAgICAgICAgUmVzdGFydFJhbmdlQ2FjaGUo
KSA6IGluZGV4VHlwZShnbDo6RHJhd0VsZW1lbnRzVHlwZTo6SW52YWxpZEVudW0pIHsgaXNEaXJ0
eSA9IHRydWU7IH0KLSAgICAgICAgIFJlc3RhcnRSYW5nZUNhY2hlKHN0ZDo6dmVjdG9yPEluZGV4
UmFuZ2U+ICYmcmFuZ2VzXywgZ2w6OkRyYXdFbGVtZW50c1R5cGUgaW5kZXhUeXBlXykKLS0gICAg
ICAgICAgICA6IHJhbmdlcyhyYW5nZXNfKSwgaW5kZXhUeXBlKGluZGV4VHlwZV8pLCBpc0RpcnR5
KGZhbHNlKQotKyAgICAgICAgICAgIDogcmFuZ2VzKHJhbmdlc18pLCBpbmRleFR5cGUoaW5kZXhU
eXBlXykKLSAgICAgICAgIHt9Ci0tICAgICAgICB2b2lkIG1hcmtEaXJ0eSgpIHsgaXNEaXJ0eSA9
IHRydWU7IH0KLS0gICAgICAgIG9wZXJhdG9yIGJvb2woKSBjb25zdCB7IHJldHVybiBpc0RpcnR5
OyB9Ci0tICAgICAgICBzdGQ6OnZlY3RvcjxJbmRleFJhbmdlPiByYW5nZXM7Ci0tICAgICAgICBn
bDo6RHJhd0VsZW1lbnRzVHlwZSBpbmRleFR5cGU7Ci0tICAgICAgICBib29sIGlzRGlydHk7Ci0r
ICAgICAgICBjb25zdCBzdGQ6OnZlY3RvcjxJbmRleFJhbmdlPiByYW5nZXM7Ci0rICAgICAgICBj
b25zdCBnbDo6RHJhd0VsZW1lbnRzVHlwZSBpbmRleFR5cGU7Ci0gICAgIH07Ci0tICAgIFJlc3Rh
cnRSYW5nZUNhY2hlIG1SZXN0YXJ0UmFuZ2VDYWNoZTsKLSsgICAgc3RkOjpvcHRpb25hbDxSZXN0
YXJ0UmFuZ2VDYWNoZT4gbVJlc3RhcnRSYW5nZUNhY2hlOwotICAgICBzdGQ6OnZlY3RvcjxJbmRl
eFJhbmdlPiBtUmVzdGFydEluZGljZXM7Ci0gfTsKLSAKIGRpZmYgLS1naXQgYS9zcmMvbGliQU5H
TEUvcmVuZGVyZXIvbWV0YWwvQnVmZmVyTXRsLm1tIGIvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL21l
dGFsL0J1ZmZlck10bC5tbQotaW5kZXggMjc5OTIzZmYyY2MwYTNmYTJmMzI1OWQzNmRlOTM3NWNj
MTliZTU3Ni4uMTc2NjI1NjkzMDkxNGIwMzAxMTk3MjRmMDFkMmFkYjJmNTQyNjlhMiAxMDA2NDQK
K2luZGV4IDI3OTkyM2ZmMmNjMGEzZmEyZjMyNTlkMzZkZTkzNzVjYzE5YmU1NzYuLjkwMGFlYThh
ZmI5NGFlMzJiMzc3MTFkZGI4MTM2YzQzYjAzMDhiNDkgMTAwNjQ0CiAtLS0gYS9zcmMvbGliQU5H
TEUvcmVuZGVyZXIvbWV0YWwvQnVmZmVyTXRsLm1tCiArKysgYi9zcmMvbGliQU5HTEUvcmVuZGVy
ZXIvbWV0YWwvQnVmZmVyTXRsLm1tCiBAQCAtMzY1LDcgKzM2NSw3IEBACkBAIC0zNzEsNDggKzI1
MCw2IEBAIGluZGV4IDI3OTkyM2ZmMmNjMGEzZmEyZjMyNTlkMzZkZTkzNzVjYzE5YmU1NzYuLjE3
NjYyNTY5MzA5MTRiMDMwMTE5NzI0ZjAxZDJhZGIyCiAgICAgICAgICB9CiAgICAgIH0KICAKLUBA
IC0zOTUsNyArMzk1LDcgQEAKLSAgICAgICAgIGJ1ZmZlci5jb252ZXJ0ZWRCdWZmZXIgPSBudWxs
cHRyOwotICAgICAgICAgYnVmZmVyLmNvbnZlcnRlZE9mZnNldCA9IDA7Ci0gICAgIH0KLS0gICAg
bVJlc3RhcnRSYW5nZUNhY2hlLm1hcmtEaXJ0eSgpOwotKyAgICBtUmVzdGFydFJhbmdlQ2FjaGUu
cmVzZXQoKTsKLSB9Ci0gCi0gdm9pZCBCdWZmZXJNdGw6OmNsZWFyQ29udmVyc2lvbkJ1ZmZlcnMo
KQotQEAgLTQwMyw3ICs0MDMsNyBAQAotICAgICBtVmVydGV4Q29udmVyc2lvbkJ1ZmZlcnMuY2xl
YXIoKTsKLSAgICAgbUluZGV4Q29udmVyc2lvbkJ1ZmZlcnMuY2xlYXIoKTsKLSAgICAgbVVuaWZv
cm1Db252ZXJzaW9uQnVmZmVycy5jbGVhcigpOwotLSAgICBtUmVzdGFydFJhbmdlQ2FjaGUubWFy
a0RpcnR5KCk7Ci0rICAgIG1SZXN0YXJ0UmFuZ2VDYWNoZS5yZXNldCgpOwotIH0KLSAKLSB0ZW1w
bGF0ZSA8dHlwZW5hbWUgVD4KLUBAIC00MzMsOSArNDMzLDkgQEAKLSBjb25zdCBzdGQ6OnZlY3Rv
cjxJbmRleFJhbmdlPiAmQnVmZmVyTXRsOjpnZXRSZXN0YXJ0SW5kaWNlcyhDb250ZXh0TXRsICpj
dHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZ2w6OkRyYXdFbGVtZW50c1R5cGUgaW5kZXhUeXBlKQotIHsKLS0gICAgaWYgKCFt
UmVzdGFydFJhbmdlQ2FjaGUgfHwgbVJlc3RhcnRSYW5nZUNhY2hlLmluZGV4VHlwZSAhPSBpbmRl
eFR5cGUpCi0rICAgIGlmICghbVJlc3RhcnRSYW5nZUNhY2hlIHx8IG1SZXN0YXJ0UmFuZ2VDYWNo
ZS0+aW5kZXhUeXBlICE9IGluZGV4VHlwZSkKLSAgICAgewotLSAgICAgICAgbVJlc3RhcnRSYW5n
ZUNhY2hlLm1hcmtEaXJ0eSgpOwotKyAgICAgICAgbVJlc3RhcnRSYW5nZUNhY2hlLnJlc2V0KCk7
Ci0gICAgICAgICBzdGQ6OnZlY3RvcjxJbmRleFJhbmdlPiByYW5nZXM7Ci0gICAgICAgICBzd2l0
Y2ggKGluZGV4VHlwZSkKLSAgICAgICAgIHsKLUBAIC00NTEsOSArNDUxLDkgQEAKLSAgICAgICAg
ICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAgICBBU1NFUlQoZmFsc2UpOwotICAgICAgICAg
fQotLSAgICAgICAgbVJlc3RhcnRSYW5nZUNhY2hlID0gUmVzdGFydFJhbmdlQ2FjaGUoc3RkOjpt
b3ZlKHJhbmdlcyksIGluZGV4VHlwZSk7Ci0rICAgICAgICBtUmVzdGFydFJhbmdlQ2FjaGUuZW1w
bGFjZShzdGQ6Om1vdmUocmFuZ2VzKSwgaW5kZXhUeXBlKTsKLSAgICAgfQotLSAgICByZXR1cm4g
bVJlc3RhcnRSYW5nZUNhY2hlLnJhbmdlczsKLSsgICAgcmV0dXJuIG1SZXN0YXJ0UmFuZ2VDYWNo
ZS0+cmFuZ2VzOwotIH0KLSAKLSBjb25zdCBzdGQ6OnZlY3RvcjxJbmRleFJhbmdlPiBCdWZmZXJN
dGw6OmdldFJlc3RhcnRJbmRpY2VzRnJvbUNsaWVudERhdGEoCiBAQCAtNTIwLDcgKzUyMCw3IEBA
CiAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgIC8vIGR5bmFtaWMgYnVmZmVyLCBhbGxv
dyB1cCB0byAxMCB1cGRhdGUgcGVyIGZyYW1lL2VuY29kaW5nIHdpdGhvdXQKQEAgLTQyMyw2MCAr
MjYwLDEwIEBAIGluZGV4IDI3OTkyM2ZmMmNjMGEzZmEyZjMyNTlkMzZkZTkzNzVjYzE5YmU1NzYu
LjE3NjYyNTY5MzA5MTRiMDMwMTE5NzI0ZjAxZDJhZGIyCiAgICAgICAgICAgICAgICAgIG1heEJ1
ZmZlcnMgPSAxMDsKICAgICAgICAgICAgICAgICAgbUJ1ZmZlclBvb2wuc2V0QWx3YXlzVXNlU2hh
cmVkTWVtKCk7CiBkaWZmIC0tZ2l0IGEvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL21ldGFsL0Rpc3Bs
YXlNdGwubW0gYi9zcmMvbGliQU5HTEUvcmVuZGVyZXIvbWV0YWwvRGlzcGxheU10bC5tbQotaW5k
ZXggZGE1YjFjOTlmNWMwYTRjZTU5ODVhMmQxYmIzZTlkODI0NjUzMmI1OS4uNjQ5OGFmODkxYjIx
ODI2ODZkYzZmMjk2NGRmYmRjNmIwNmZkYzQ2ZCAxMDA2NDQKK2luZGV4IDMwMDg4MjM3MzE5ZjVj
ZDYyZWMzNDU3YzY2ZjY1M2JiZWI0NGZkZjYuLjMwZDg5ZmU0ZTE3YjkzOGEyODI2Y2EwODcxNWQ3
NWFkYTZkZjk0MTUgMTAwNjQ0CiAtLS0gYS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvbWV0YWwvRGlz
cGxheU10bC5tbQogKysrIGIvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL21ldGFsL0Rpc3BsYXlNdGwu
bW0KLUBAIC0yNTQsOSArMjU0LDEwIEBAIGJvb2wgSXNNZXRhbERpc3BsYXlBdmFpbGFibGUoKQot
ICAgICAgICAgfQotICAgICB9Ci0gCi0tICAgIE5TTXV0YWJsZUFycmF5PGlkPE1UTERldmljZT4+
ICpleHRlcm5hbEdQVXMgICA9IFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRdOwotLSAgICBO
U011dGFibGVBcnJheTxpZDxNVExEZXZpY2U+PiAqaW50ZWdyYXRlZEdQVXMgPSBbW05TTXV0YWJs
ZUFycmF5IGFsbG9jXSBpbml0XTsKLS0gICAgTlNNdXRhYmxlQXJyYXk8aWQ8TVRMRGV2aWNlPj4g
KmRpc2NyZXRlR1BVcyAgID0gW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdF07Ci0rICAgIGF1
dG8gZXh0ZXJuYWxHUFVzID0gbXRsOjphZG9wdE9iakNPYmo8TlNNdXRhYmxlQXJyYXk8aWQ8TVRM
RGV2aWNlPj4+KFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRdKTsKLSsgICAgYXV0byBpbnRl
Z3JhdGVkR1BVcyA9IG10bDo6YWRvcHRPYmpDT2JqPE5TTXV0YWJsZUFycmF5PGlkPE1UTERldmlj
ZT4+PihbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0XSk7Ci0rICAgIGF1dG8gZGlzY3JldGVH
UFVzID0gbXRsOjphZG9wdE9iakNPYmo8TlNNdXRhYmxlQXJyYXk8aWQ8TVRMRGV2aWNlPj4+KFtb
TlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRdKTsKLSsKLSAgICAgZm9yIChpZDxNVExEZXZpY2U+
IGRldmljZSBpbiBkZXZpY2VMaXN0LmdldCgpKQotICAgICB7Ci0gICAgICAgICBpZiAoZGV2aWNl
LnJlbW92YWJsZSkKLUBAIC0yNzgsNyArMjc5LDcgQEAgYm9vbCBJc01ldGFsRGlzcGxheUF2YWls
YWJsZSgpCi0gICAgIGlmIChhdHRyaWJzLmdldChFR0xfUE9XRVJfUFJFRkVSRU5DRV9BTkdMRSwg
MCkgPT0gRUdMX0hJR0hfUE9XRVJfQU5HTEUpCi0gICAgIHsKLSAgICAgICAgIC8vIFNlYXJjaCBm
b3IgYSBkaXNjcmV0ZSBHUFUgZmlyc3QuCi0tICAgICAgICBmb3IgKGlkPE1UTERldmljZT4gZGV2
aWNlIGluIGRpc2NyZXRlR1BVcykKLSsgICAgICAgIGZvciAoaWQ8TVRMRGV2aWNlPiBkZXZpY2Ug
aW4gZGlzY3JldGVHUFVzLmdldCgpKQotICAgICAgICAgewotICAgICAgICAgICAgIGlmICghW2Rl
dmljZSBpc0hlYWRsZXNzXSkKLSAgICAgICAgICAgICAgICAgcmV0dXJuIGRldmljZTsKLUBAIC0y
ODcsNyArMjg4LDcgQEAgYm9vbCBJc01ldGFsRGlzcGxheUF2YWlsYWJsZSgpCi0gICAgIGVsc2Ug
aWYgKGF0dHJpYnMuZ2V0KEVHTF9QT1dFUl9QUkVGRVJFTkNFX0FOR0xFLCAwKSA9PSBFR0xfTE9X
X1BPV0VSX0FOR0xFKQotICAgICB7Ci0gICAgICAgICAvLyBJZiB3ZSd2ZSBzZWxlY3RlZCBhIGxv
dyBwb3dlciBkZXZpY2UsIGxvb2sgdGhyb3VnaCBpbnRlZ3JhdGVkIGRldmljZXMuCi0tICAgICAg
ICBmb3IgKGlkPE1UTERldmljZT4gZGV2aWNlIGluIGludGVncmF0ZWRHUFVzKQotKyAgICAgICAg
Zm9yIChpZDxNVExEZXZpY2U+IGRldmljZSBpbiBpbnRlZ3JhdGVkR1BVcy5nZXQoKSkKLSAgICAg
ICAgIHsKLSAgICAgICAgICAgICBpZiAoIVtkZXZpY2UgaXNIZWFkbGVzc10pCi0gICAgICAgICAg
ICAgICAgIHJldHVybiBkZXZpY2U7Ci1AQCAtMzEwLDYgKzMxMSwxNyBAQCBib29sIElzTWV0YWxE
aXNwbGF5QXZhaWxhYmxlKCkKLSAgICAgICAgIH0KLSAgICAgfQotIAotKyAgICAvLyBEZWZhdWx0
IHRvIHVzZSBhIGxvdyBwb3dlciBkZXZpY2UsIGxvb2sgdGhyb3VnaCBpbnRlZ3JhdGVkIGRldmlj
ZXMuCi0rICAgIGZvciAoaWQ8TVRMRGV2aWNlPiBkZXZpY2UgaW4gaW50ZWdyYXRlZEdQVXMuZ2V0
KCkpCi0rICAgIHsKLSsgICAgICAgIGlmICghW2RldmljZSBpc0hlYWRsZXNzXSkKLSsgICAgICAg
ICAgICByZXR1cm4gZGV2aWNlOwotKyAgICB9Ci0rCi0rICAgIC8vIElmIHdlIHNlbGVjdGVkIGEg
bG93IHBvd2VyIGRldmljZSBhbmQgdGhlcmUncyBubyBsb3ctcG93ZXIgZGV2aWNlcyBhdmFpYWxi
bGUsIHJldHVybiB0aGUKLSsgICAgLy8gZmlyc3QgKGRlZmF1bHQpIGRldmljZS4KLSsgICAgaWYg
KGRldmljZUxpc3QuZ2V0KCkuY291bnQgPiAwKQotKyAgICAgICAgcmV0dXJuIGRldmljZUxpc3Rb
MF07Ci0gI2VuZGlmCi0gICAgIC8vIElmIHdlIGNhbid0IGZpbmQgYW55dGhpbmcsIG9yIGFyZSBv
biBhIHBsYXRmb3JtIHRoYXQgZG9lc24ndCBzdXBwb3J0IHBvd2VyIG9wdGlvbnMsIGNyZWF0ZSBh
Ci0gICAgIC8vIGRlZmF1bHQgZGV2aWNlLgotQEAgLTEyMDksOCArMTIyMSw3IEBAIGJvb2wgSXNN
ZXRhbERpc3BsYXlBdmFpbGFibGUoKQorQEAgLTEyMDUsOCArMTIwNSw3IEBAIGJvb2wgSXNNZXRh
bERpc3BsYXlBdmFpbGFibGUoKQogIGJvb2wgRGlzcGxheU10bDo6c3VwcG9ydHMzMkJpdEZsb2F0
RmlsdGVyaW5nKCkgY29uc3QKICB7CiAgI2lmIChkZWZpbmVkKF9fTUFDXzExXzApICYmIF9fTUFD
X09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gX19NQUNfMTFfMCkgfHwgICAgICAgIFwKQEAg
LTUwNyw2MiArMjk0LDYgQEAgaW5kZXggYWI3MjgzYWUxYzk4N2FhODA5ODNmODY5MTRiNmZjOWZj
ZjFkMGZlMy4uMTAwMDg2NzU5NTU1NjNmZjkxODdmN2M1YmVhNDAyNTIKICAKICAgICAgcmV0dXJu
IHRydWU7CiAgfQotZGlmZiAtLWdpdCBhL3NyYy9saWJBTkdMRS9yZW5kZXJlci9tZXRhbC9Qcm9n
cmFtTXRsLm1tIGIvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL21ldGFsL1Byb2dyYW1NdGwubW0KLWlu
ZGV4IDZhMTZkNzhiYzZlZjA4NDYyMDVhN2Y3MDI3ZTk1ZDMxZThhYTE3OTAuLmMxNmVkM2FlNWNl
Yjg0YWYwNWJkMzc2ZDU1N2YzZjc4YWIxNjI2MmIgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliQU5HTEUv
cmVuZGVyZXIvbWV0YWwvUHJvZ3JhbU10bC5tbQotKysrIGIvc3JjL2xpYkFOR0xFL3JlbmRlcmVy
L21ldGFsL1Byb2dyYW1NdGwubW0KLUBAIC01ODksNyArNTg5LDcgQEAgdm9pZCBJbml0QXJndW1l
bnRCdWZmZXJFbmNvZGVyKG10bDo6Q29udGV4dCAqY29udGV4dCwKLSAKLSAgICAgbXRsOjpUcmFu
c2xhdGVkU2hhZGVySW5mbyAqdHJhbnNsYXRlZE1zbEluZm8gPSAmbU1zbFNoYWRlclRyYW5zbGF0
ZUluZm9bc2hhZGVyVHlwZV07Ci0gICAgIFByb2dyYW1TaGFkZXJPYmpWYXJpYW50TXRsICpzaGFk
ZXJWYXJpYW50OwotLSAgICBNVExGdW5jdGlvbkNvbnN0YW50VmFsdWVzICpmdW5jQ29uc3RhbnRz
ID0gbmlsOwotKyAgICBtdGw6OkF1dG9PYmpDT2JqPE1UTEZ1bmN0aW9uQ29uc3RhbnRWYWx1ZXM+
IGZ1bmNDb25zdGFudHM7Ci0gCi0gICAgIGlmIChzaGFkZXJUeXBlID09IGdsOjpTaGFkZXJUeXBl
OjpWZXJ0ZXgpCi0gICAgIHsKLUBAIC02MzksNyArNjM5LDcgQEAgdm9pZCBJbml0QXJndW1lbnRC
dWZmZXJFbmNvZGVyKG10bDo6Q29udGV4dCAqY29udGV4dCwKLSAgICAgICAgICAgICAgICAgICAg
IFtOU1N0cmluZyBzdHJpbmdXaXRoVVRGOFN0cmluZzpzaDo6bXRsOjprUmFzdGVyaXplckRpc2Nh
cmRFbmFibGVkQ29uc3ROYW1lXTsKLSAgICAgICAgICAgICB9Ci0gCi0tICAgICAgICAgICAgZnVu
Y0NvbnN0YW50cyA9IFtbTVRMRnVuY3Rpb25Db25zdGFudFZhbHVlcyBhbGxvY10gaW5pdF07Ci0r
ICAgICAgICAgICAgZnVuY0NvbnN0YW50cyA9IG10bDo6YWRvcHRPYmpDT2JqKFtbTVRMRnVuY3Rp
b25Db25zdGFudFZhbHVlcyBhbGxvY10gaW5pdF0pOwotICAgICAgICAgICAgIFtmdW5jQ29uc3Rh
bnRzIHNldENvbnN0YW50VmFsdWU6JmVtdWxhdGVEaXNjYXJkCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdHlwZTpNVExEYXRhVHlwZUJvb2wKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHdpdGhOYW1lOmRpc2NhcmRFbmFibGVkU3RyXTsKLUBAIC02
NzUsMTQgKzY3NSwxNSBAQCB2b2lkIEluaXRBcmd1bWVudEJ1ZmZlckVuY29kZXIobXRsOjpDb250
ZXh0ICpjb250ZXh0LAotICAgICAgICAgICAgICAgICAgICAgW05TU3RyaW5nIHN0cmluZ1dpdGhV
VEY4U3RyaW5nOnNoOjptdGw6OmtDb3ZlcmFnZU1hc2tFbmFibGVkQ29uc3ROYW1lXTsKLSAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgCi0tICAgICAgICAgICAgTlNTdHJpbmcgKmRlcHRoV3Jp
dGVFbmFibGVkU3RyID0KLS0gICAgICAgICAgICAgICAgW05TU3RyaW5nIHN0cmluZ1dpdGhVVEY4
U3RyaW5nOnNoOjptdGw6OmtEZXB0aFdyaXRlRW5hYmxlZENvbnN0TmFtZV07Ci0gCi0tICAgICAg
ICAgICAgZnVuY0NvbnN0YW50cyA9IFtbTVRMRnVuY3Rpb25Db25zdGFudFZhbHVlcyBhbGxvY10g
aW5pdF07Ci0rICAgICAgICAgICAgZnVuY0NvbnN0YW50cyA9IG10bDo6YWRvcHRPYmpDT2JqKFtb
TVRMRnVuY3Rpb25Db25zdGFudFZhbHVlcyBhbGxvY10gaW5pdF0pOwotICAgICAgICAgICAgIFtm
dW5jQ29uc3RhbnRzIHNldENvbnN0YW50VmFsdWU6JmVtdWxhdGVDb3ZlcmFnZU1hc2sKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOk1UTERhdGFUeXBlQm9vbAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aE5hbWU6Y292ZXJhZ2VNYXNr
RW5hYmxlZFN0cl07Ci0gICAgICAgICAgICAgCi0rICAgICAgICAgICAgTlNTdHJpbmcgKmRlcHRo
V3JpdGVFbmFibGVkU3RyID0gCi0rICAgICAgICAgICAgICAgIFtOU1N0cmluZyBzdHJpbmdXaXRo
VVRGOFN0cmluZzpzaDo6bXRsOjprRGVwdGhXcml0ZUVuYWJsZWRDb25zdE5hbWVdOwotKyAgICAg
ICAgICAgIAotICAgICAgICAgICAgIE1UTFBpeGVsRm9ybWF0IGRlcHRoUGl4ZWxGb3JtYXQgPQot
ICAgICAgICAgICAgICAgICAoTVRMUGl4ZWxGb3JtYXQpcmVuZGVyUGlwZWxpbmVEZXNjLm91dHB1
dERlc2NyaXB0b3IuZGVwdGhBdHRhY2htZW50UGl4ZWxGb3JtYXQ7Ci0gICAgICAgICAgICAgQk9P
TCBmcmFnRGVwdGhXcml0ZUVuYWJsZWQgPSBkZXB0aFBpeGVsRm9ybWF0ICE9IE1UTFBpeGVsRm9y
bWF0SW52YWxpZDsKLUBAIC03MDUsMTIgKzcwNiwxMiBAQCB2b2lkIEluaXRBcmd1bWVudEJ1ZmZl
ckVuY29kZXIobXRsOjpDb250ZXh0ICpjb250ZXh0LAotICAgICAgICAgc2V0Q29uc3RhbnRWYWx1
ZTomKGNvbnRleHQtPmdldERpc3BsYXkoKS0+Z2V0RmVhdHVyZXMoKS5hbGxvd1NhbXBsZXJDb21w
YXJlTG9kLmVuYWJsZWQpCi0gICAgICAgICAgICAgICAgICAgICB0eXBlOk1UTERhdGFUeXBlQm9v
bAotICAgICAgICAgICAgICAgICB3aXRoTmFtZTpAIkFOR0xFVXNlU2FtcGxlQ29tcGFyZUxvZCJd
OwotKwotICAgICAvLyBDcmVhdGUgTWV0YWwgc2hhZGVyIG9iamVjdAotICAgICBBTkdMRV9NVExf
T0JKQ19TQ09QRQotICAgICB7Ci0gICAgICAgICBBTkdMRV9UUlkoQ3JlYXRlTXNsU2hhZGVyKGNv
bnRleHQsIHRyYW5zbGF0ZWRNc2xJbmZvLT5tZXRhbExpYnJhcnksIFNIQURFUl9FTlRSWV9OQU1F
LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jQ29uc3RhbnRzLCAmc2hh
ZGVyVmFyaWFudC0+bWV0YWxTaGFkZXIpKTsKLS0gICAgICAgIFtmdW5jQ29uc3RhbnRzIEFOR0xF
X01UTF9BVVRPUkVMRUFTRV07Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1
bmNDb25zdGFudHMuZ2V0KCksICZzaGFkZXJWYXJpYW50LT5tZXRhbFNoYWRlcikpOwotICAgICB9
Ci0gCi0gICAgIC8vIFN0b3JlIHJlZmVyZW5jZSB0byB0aGUgdHJhbnNsYXRlZCBzb3VyY2UgZm9y
IGVhc2lseSBxdWVyeWluZyBtYXBwZWQgYmluZGluZ3MgbGF0ZXIuCiBkaWZmIC0tZ2l0IGEvc3Jj
L2xpYkFOR0xFL3JlbmRlcmVyL21ldGFsL210bF9idWZmZXJfcG9vbC5oIGIvc3JjL2xpYkFOR0xF
L3JlbmRlcmVyL21ldGFsL210bF9idWZmZXJfcG9vbC5oCiBpbmRleCBjM2JlMTFmNzgxNTZjN2Zh
YjRlZThhOTA3MzNkZTJmM2IwNDlkZTdlLi4yMDRlYmI5NDk4NzMxMTJjMDEwMjQyYjJiMTZiMDg2
MGNkNDBjMDBhIDEwMDY0NAogLS0tIGEvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL21ldGFsL210bF9i
dWZmZXJfcG9vbC5oCkBAIC01NzcsNyArMzA4LDcgQEAgaW5kZXggYzNiZTExZjc4MTU2YzdmYWI0
ZWU4YTkwNzMzZGUyZjNiMDQ5ZGU3ZS4uMjA0ZWJiOTQ5ODczMTEyYzAxMDI0MmIyYjE2YjA4NjAK
ICB9OwogIAogZGlmZiAtLWdpdCBhL3NyYy9saWJBTkdMRS9yZW5kZXJlci9tZXRhbC9tdGxfcmVu
ZGVyX3V0aWxzLm1tIGIvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL21ldGFsL210bF9yZW5kZXJfdXRp
bHMubW0KLWluZGV4IDE2MTNlZTliN2YyZWIwZmUyMzFkODY5ZTdmZGJkNjJkMDQ4YjFhMjEuLmUw
NzUyOTVmODEwYzcyYmYwM2UyODk5ZGZiODMxM2ZlMjc2OGZkYTMgMTAwNjQ0CitpbmRleCBhZDll
ODg2MTM0NjA4MmZiZTExODI0ZmVmZDU5ZWM2MGViMWUyYTIwLi45ZmE5MzE4ZmRlZTc2MDg4Y2Zj
YjhhNDI0MjA0NjU5NDAyNzk0ODM2IDEwMDY0NAogLS0tIGEvc3JjL2xpYkFOR0xFL3JlbmRlcmVy
L21ldGFsL210bF9yZW5kZXJfdXRpbHMubW0KICsrKyBiL3NyYy9saWJBTkdMRS9yZW5kZXJlci9t
ZXRhbC9tdGxfcmVuZGVyX3V0aWxzLm1tCiBAQCAtMjU0MCw0NSArMjU0MCwxMyBAQCBBTkdMRV9J
TkxJTkUgdm9pZCBTZXRQaXBlbGluZVN0YXRlKENvbXB1dGVDb21tYW5kRW5jb2RlciAqZW5jb2Rl
ciwKQEAgLTczMiwxMCArNDYzLDEwIEBAIGluZGV4IDNlYWE5YTY0ZTc5YWYyNmZhYTc4NjEwMmVj
ZTNmMGJkZWE4NGQwOTAuLjJlY2Y3YjQwYmQ1YTJlZGMzZmQ5ZDY5ODQxZTI2NmI2CiArCiArI2Vu
ZGlmIC8qIExJQkFOR0xFX1JFTkRFUkVSX01FVEFMX1JFU09VUkNFX1NQSV9IXyAqLwogZGlmZiAt
LWdpdCBhL3NyYy9saWJBTkdMRS9yZW5kZXJlci9tZXRhbC9tdGxfcmVzb3VyY2VzLmggYi9zcmMv
bGliQU5HTEUvcmVuZGVyZXIvbWV0YWwvbXRsX3Jlc291cmNlcy5oCi1pbmRleCA4YjhlYjI2YjU5
NTliNzAyN2RlMmE5NThmYjYwMjk1NTNiMmJmODBkLi4xOWE5NzQwODc5NmM3ODY5NGU2MGRhZjg2
YzAxOGQzYjQzNGE0MjE2IDEwMDY0NAoraW5kZXggYWZiYzk4NWViOTJkZmJkNWFmOTY0YmQ4YWMy
MDdhYzFkYjZhYzk3ZS4uOTgwNWFhNzA1YTI1OWE5N2U5MjQxODM4N2YxMjM4NTE3MWIyZmE1OSAx
MDA2NDQKIC0tLSBhL3NyYy9saWJBTkdMRS9yZW5kZXJlci9tZXRhbC9tdGxfcmVzb3VyY2VzLmgK
ICsrKyBiL3NyYy9saWJBTkdMRS9yZW5kZXJlci9tZXRhbC9tdGxfcmVzb3VyY2VzLmgKLUBAIC0z
NDUsNyArMzQ1LDkgQEAgY2xhc3MgVGV4dHVyZSBmaW5hbCA6IHB1YmxpYyBSZXNvdXJjZSwKK0BA
IC0zMzksNyArMzM5LDkgQEAgY2xhc3MgVGV4dHVyZSBmaW5hbCA6IHB1YmxpYyBSZXNvdXJjZSwK
ICAgICAgc2l6ZV90IG1Fc3RpbWF0ZWRCeXRlU2l6ZSA9IDA7CiAgfTsKICAKQEAgLTc0Nyw3ICs0
NzgsNyBAQCBpbmRleCA4YjhlYjI2YjU5NTliNzAyN2RlMmE5NThmYjYwMjk1NTNiMmJmODBkLi4x
OWE5NzQwODc5NmM3ODY5NGU2MGRhZjg2YzAxOGQzYgogICAgcHVibGljOgogICAgICBzdGF0aWMg
YW5nbGU6OlJlc3VsdCBNYWtlQnVmZmVyKENvbnRleHRNdGwgKmNvbnRleHQsCiBkaWZmIC0tZ2l0
IGEvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL21ldGFsL210bF9yZXNvdXJjZXMubW0gYi9zcmMvbGli
QU5HTEUvcmVuZGVyZXIvbWV0YWwvbXRsX3Jlc291cmNlcy5tbQotaW5kZXggMWU4YzhmMjY0M2Jm
MjAwNmNhYzU3YjY5YWE3MmY0ZjNjNTNlZDZkZS4uN2ViZjMxNjkwMDU1ZmQzODQ2N2ZlYjk5YzRl
MTJiODAxZDdkMWNlMyAxMDA2NDQKK2luZGV4IDZiY2I5Y2Q4ZDNlMjA4N2RkMjY5YjRjNWZiOGI4
MjE0YzMzZTJmMGUuLjlhNTUzYWJhMTVkMDA0YWRjYmI4MTAwNTQ4N2E0OGY1YTI1ZTIxOGQgMTAw
NjQ0CiAtLS0gYS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvbWV0YWwvbXRsX3Jlc291cmNlcy5tbQog
KysrIGIvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL21ldGFsL210bF9yZXNvdXJjZXMubW0KIEBAIC0z
NSwxMiArMzUsMTQgQEAgaW5saW5lIE5TVUludGVnZXIgR2V0TWlwU2l6ZShOU1VJbnRlZ2VyIGJh
c2VTaXplLCBjb25zdCBNaXBtYXBOYXRpdmVMZXZlbCBsZXZlbCkKQEAgLTc3Niw3ICs1MDcsNyBA
QCBpbmRleCAxZThjOGYyNjQzYmYyMDA2Y2FjNTdiNjlhYTcyZjRmM2M1M2VkNmRlLi43ZWJmMzE2
OTAwNTVmZDM4NDY3ZmViOTljNGUxMmI4MAogIHsKICAjaWYgVEFSR0VUX09TX09TWCB8fCBUQVJH
RVRfT1NfTUFDQ0FUQUxZU1QKICAgICAgLy8gTWFrZSBzdXJlIEdQVSAmIENQVSBjb250ZW50cyBh
cmUgc3luY2hyb25pemVkLgotQEAgLTUyMSwxMiArNTIzLDEyIEBAIGJvb2wgbmVlZE11bHRpc2Ft
cGxlQ29sb3JGb3JtYXRTaGFkZXJSZWFkV29ya2Fyb3VuZChDb250ZXh0TXRsICpjb250ZXh0LCBN
VExUZXh0CitAQCAtNTA0LDEyICs1MDYsMTIgQEAgYm9vbCBuZWVkTXVsdGlzYW1wbGVDb2xvckZv
cm1hdFNoYWRlclJlYWRXb3JrYXJvdW5kKENvbnRleHRNdGwgKmNvbnRleHQsIE1UTFRleHQKICAK
ICB2b2lkIFRleHR1cmU6OnN5bmNDb250ZW50KENvbnRleHRNdGwgKmNvbnRleHQsIG10bDo6Qmxp
dENvbW1hbmRFbmNvZGVyICpibGl0RW5jb2RlcikKICB7CkBAIC03OTEsNyArNTIyLDcgQEAgaW5k
ZXggMWU4YzhmMjY0M2JmMjAwNmNhYzU3YjY5YWE3MmY0ZjNjNTNlZDZkZS4uN2ViZjMxNjkwMDU1
ZmQzODQ2N2ZlYjk5YzRlMTJiODAKICB9CiAgCiAgYm9vbCBUZXh0dXJlOjppc0NQVUFjY2Vzc2li
bGUoKSBjb25zdAotQEAgLTk5MSw3ICs5OTMsNyBAQCBib29sIG5lZWRNdWx0aXNhbXBsZUNvbG9y
Rm9ybWF0U2hhZGVyUmVhZFdvcmthcm91bmQoQ29udGV4dE10bCAqY29udGV4dCwgTVRMVGV4dAor
QEAgLTk4OCw3ICs5OTAsNyBAQCBib29sIG5lZWRNdWx0aXNhbXBsZUNvbG9yRm9ybWF0U2hhZGVy
UmVhZFdvcmthcm91bmQoQ29udGV4dE10bCAqY29udGV4dCwgTVRMVGV4dAogIAogIHZvaWQgQnVm
ZmVyOjpzeW5jQ29udGVudChDb250ZXh0TXRsICpjb250ZXh0LCBtdGw6OkJsaXRDb21tYW5kRW5j
b2RlciAqYmxpdEVuY29kZXIpCiAgewpAQCAtODAwLDcgKzUzMSw3IEBAIGluZGV4IDFlOGM4ZjI2
NDNiZjIwMDZjYWM1N2I2OWFhNzJmNGYzYzUzZWQ2ZGUuLjdlYmYzMTY5MDA1NWZkMzg0NjdmZWI5
OWM0ZTEyYjgwCiAgfQogIAogIGNvbnN0IHVpbnQ4X3QgKkJ1ZmZlcjo6bWFwUmVhZE9ubHkoQ29u
dGV4dE10bCAqY29udGV4dCkKLUBAIC0xMDEyLDcgKzEwMTQsNyBAQCBib29sIG5lZWRNdWx0aXNh
bXBsZUNvbG9yRm9ybWF0U2hhZGVyUmVhZFdvcmthcm91bmQoQ29udGV4dE10bCAqY29udGV4dCwg
TVRMVGV4dAorQEAgLTEwMDksNyArMTAxMSw3IEBAIGJvb2wgbmVlZE11bHRpc2FtcGxlQ29sb3JG
b3JtYXRTaGFkZXJSZWFkV29ya2Fyb3VuZChDb250ZXh0TXRsICpjb250ZXh0LCBNVExUZXh0CiAg
ICAgIHsKICAgICAgICAgIENvbW1hbmRRdWV1ZSAmY21kUXVldWUgPSBjb250ZXh0LT5jbWRRdWV1
ZSgpOwogIApAQCAtODI2LDMgKzU1Nyw0MyBAQCBpbmRleCBkMjE4YzEzZWQxNGJlNTdmNTE0Y2Jm
M2M5ZGJlZWRlZmNkZDQ5NjIxLi5iMjM2ZDkyNjU1ZDAzMDdiYjBiNjFjZTUxYmY2NDA2ZQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBB
dXRvT2JqQ1B0cjxOU0Vycm9yICo+ICplcnJvcik7CiAgCiAgYm9vbCBTdXBwb3J0c0FwcGxlR1BV
RmFtaWx5KGlkPE1UTERldmljZT4gZGV2aWNlLCB1aW50OF90IGFwcGxlRmFtaWx5KTsKK2RpZmYg
LS1naXQgYS9zcmMvdGVzdHMvZGVxcF9zdXBwb3J0L2RlcXBfZWdsX3Rlc3RfZXhwZWN0YXRpb25z
LnR4dCBiL3NyYy90ZXN0cy9kZXFwX3N1cHBvcnQvZGVxcF9lZ2xfVGVzdEV4cGVjdGF0aW9ucwor
c2ltaWxhcml0eSBpbmRleCAxMDAlCityZW5hbWUgZnJvbSBzcmMvdGVzdHMvZGVxcF9zdXBwb3J0
L2RlcXBfZWdsX3Rlc3RfZXhwZWN0YXRpb25zLnR4dAorcmVuYW1lIHRvIHNyYy90ZXN0cy9kZXFw
X3N1cHBvcnQvZGVxcF9lZ2xfVGVzdEV4cGVjdGF0aW9ucworZGlmZiAtLWdpdCBhL3NyYy90ZXN0
cy9kZXFwX3N1cHBvcnQvZGVxcF9nbGVzMl90ZXN0X2V4cGVjdGF0aW9ucy50eHQgYi9zcmMvdGVz
dHMvZGVxcF9zdXBwb3J0L2RlcXBfZ2xlczJfVGVzdEV4cGVjdGF0aW9ucworc2ltaWxhcml0eSBp
bmRleCAxMDAlCityZW5hbWUgZnJvbSBzcmMvdGVzdHMvZGVxcF9zdXBwb3J0L2RlcXBfZ2xlczJf
dGVzdF9leHBlY3RhdGlvbnMudHh0CityZW5hbWUgdG8gc3JjL3Rlc3RzL2RlcXBfc3VwcG9ydC9k
ZXFwX2dsZXMyX1Rlc3RFeHBlY3RhdGlvbnMKK2RpZmYgLS1naXQgYS9zcmMvdGVzdHMvZGVxcF9z
dXBwb3J0L2RlcXBfZ2xlczMxX3Rlc3RfZXhwZWN0YXRpb25zLnR4dCBiL3NyYy90ZXN0cy9kZXFw
X3N1cHBvcnQvZGVxcF9nbGVzMzFfVGVzdEV4cGVjdGF0aW9ucworc2ltaWxhcml0eSBpbmRleCAx
MDAlCityZW5hbWUgZnJvbSBzcmMvdGVzdHMvZGVxcF9zdXBwb3J0L2RlcXBfZ2xlczMxX3Rlc3Rf
ZXhwZWN0YXRpb25zLnR4dAorcmVuYW1lIHRvIHNyYy90ZXN0cy9kZXFwX3N1cHBvcnQvZGVxcF9n
bGVzMzFfVGVzdEV4cGVjdGF0aW9ucworZGlmZiAtLWdpdCBhL3NyYy90ZXN0cy9kZXFwX3N1cHBv
cnQvZGVxcF9nbGVzMzFfcm90YXRlX3Rlc3RfZXhwZWN0YXRpb25zLnR4dCBiL3NyYy90ZXN0cy9k
ZXFwX3N1cHBvcnQvZGVxcF9nbGVzMzFfcm90YXRlX1Rlc3RFeHBlY3RhdGlvbnMKK3NpbWlsYXJp
dHkgaW5kZXggMTAwJQorcmVuYW1lIGZyb20gc3JjL3Rlc3RzL2RlcXBfc3VwcG9ydC9kZXFwX2ds
ZXMzMV9yb3RhdGVfdGVzdF9leHBlY3RhdGlvbnMudHh0CityZW5hbWUgdG8gc3JjL3Rlc3RzL2Rl
cXBfc3VwcG9ydC9kZXFwX2dsZXMzMV9yb3RhdGVfVGVzdEV4cGVjdGF0aW9ucworZGlmZiAtLWdp
dCBhL3NyYy90ZXN0cy9kZXFwX3N1cHBvcnQvZGVxcF9nbGVzM190ZXN0X2V4cGVjdGF0aW9ucy50
eHQgYi9zcmMvdGVzdHMvZGVxcF9zdXBwb3J0L2RlcXBfZ2xlczNfVGVzdEV4cGVjdGF0aW9ucwor
c2ltaWxhcml0eSBpbmRleCAxMDAlCityZW5hbWUgZnJvbSBzcmMvdGVzdHMvZGVxcF9zdXBwb3J0
L2RlcXBfZ2xlczNfdGVzdF9leHBlY3RhdGlvbnMudHh0CityZW5hbWUgdG8gc3JjL3Rlc3RzL2Rl
cXBfc3VwcG9ydC9kZXFwX2dsZXMzX1Rlc3RFeHBlY3RhdGlvbnMKK2RpZmYgLS1naXQgYS9zcmMv
dGVzdHMvZGVxcF9zdXBwb3J0L2RlcXBfZ2xlczNfcm90YXRlX3Rlc3RfZXhwZWN0YXRpb25zLnR4
dCBiL3NyYy90ZXN0cy9kZXFwX3N1cHBvcnQvZGVxcF9nbGVzM19yb3RhdGVfVGVzdEV4cGVjdGF0
aW9ucworc2ltaWxhcml0eSBpbmRleCAxMDAlCityZW5hbWUgZnJvbSBzcmMvdGVzdHMvZGVxcF9z
dXBwb3J0L2RlcXBfZ2xlczNfcm90YXRlX3Rlc3RfZXhwZWN0YXRpb25zLnR4dAorcmVuYW1lIHRv
IHNyYy90ZXN0cy9kZXFwX3N1cHBvcnQvZGVxcF9nbGVzM19yb3RhdGVfVGVzdEV4cGVjdGF0aW9u
cworZGlmZiAtLWdpdCBhL3NyYy90ZXN0cy9kZXFwX3N1cHBvcnQvZGVxcF9raHJfZ2xlczJfdGVz
dF9leHBlY3RhdGlvbnMudHh0IGIvc3JjL3Rlc3RzL2RlcXBfc3VwcG9ydC9kZXFwX2tocl9nbGVz
Ml9UZXN0RXhwZWN0YXRpb25zCitzaW1pbGFyaXR5IGluZGV4IDEwMCUKK3JlbmFtZSBmcm9tIHNy
Yy90ZXN0cy9kZXFwX3N1cHBvcnQvZGVxcF9raHJfZ2xlczJfdGVzdF9leHBlY3RhdGlvbnMudHh0
CityZW5hbWUgdG8gc3JjL3Rlc3RzL2RlcXBfc3VwcG9ydC9kZXFwX2tocl9nbGVzMl9UZXN0RXhw
ZWN0YXRpb25zCitkaWZmIC0tZ2l0IGEvc3JjL3Rlc3RzL2RlcXBfc3VwcG9ydC9kZXFwX2tocl9n
bGVzMzFfdGVzdF9leHBlY3RhdGlvbnMudHh0IGIvc3JjL3Rlc3RzL2RlcXBfc3VwcG9ydC9kZXFw
X2tocl9nbGVzMzFfVGVzdEV4cGVjdGF0aW9ucworc2ltaWxhcml0eSBpbmRleCAxMDAlCityZW5h
bWUgZnJvbSBzcmMvdGVzdHMvZGVxcF9zdXBwb3J0L2RlcXBfa2hyX2dsZXMzMV90ZXN0X2V4cGVj
dGF0aW9ucy50eHQKK3JlbmFtZSB0byBzcmMvdGVzdHMvZGVxcF9zdXBwb3J0L2RlcXBfa2hyX2ds
ZXMzMV9UZXN0RXhwZWN0YXRpb25zCitkaWZmIC0tZ2l0IGEvc3JjL3Rlc3RzL2RlcXBfc3VwcG9y
dC9kZXFwX2tocl9nbGVzMzJfdGVzdF9leHBlY3RhdGlvbnMudHh0IGIvc3JjL3Rlc3RzL2RlcXBf
c3VwcG9ydC9kZXFwX2tocl9nbGVzMzJfVGVzdEV4cGVjdGF0aW9ucworc2ltaWxhcml0eSBpbmRl
eCAxMDAlCityZW5hbWUgZnJvbSBzcmMvdGVzdHMvZGVxcF9zdXBwb3J0L2RlcXBfa2hyX2dsZXMz
Ml90ZXN0X2V4cGVjdGF0aW9ucy50eHQKK3JlbmFtZSB0byBzcmMvdGVzdHMvZGVxcF9zdXBwb3J0
L2RlcXBfa2hyX2dsZXMzMl9UZXN0RXhwZWN0YXRpb25zCitkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Rz
L2RlcXBfc3VwcG9ydC9kZXFwX2tocl9nbGVzM190ZXN0X2V4cGVjdGF0aW9ucy50eHQgYi9zcmMv
dGVzdHMvZGVxcF9zdXBwb3J0L2RlcXBfa2hyX2dsZXMzX1Rlc3RFeHBlY3RhdGlvbnMKK3NpbWls
YXJpdHkgaW5kZXggMTAwJQorcmVuYW1lIGZyb20gc3JjL3Rlc3RzL2RlcXBfc3VwcG9ydC9kZXFw
X2tocl9nbGVzM190ZXN0X2V4cGVjdGF0aW9ucy50eHQKK3JlbmFtZSB0byBzcmMvdGVzdHMvZGVx
cF9zdXBwb3J0L2RlcXBfa2hyX2dsZXMzX1Rlc3RFeHBlY3RhdGlvbnMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9UaGlyZFBhcnR5L0FOR0xFL2RvYy9EZXZTZXR1cC5tZCBiL1NvdXJjZS9UaGlyZFBhcnR5
L0FOR0xFL2RvYy9EZXZTZXR1cC5tZAppbmRleCBmNjVkY2MxYzMzYjY0YWNhMWZjOWVmN2UxODEw
ZTRjN2Y5YzdjYzRmLi5lNzQyMDY4ZjUzOGJkNWE1Y2IyNTBjNzY0ZjE4Y2RjMTJhZWYyM2U0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9kb2MvRGV2U2V0dXAubWQKKysrIGIv
U291cmNlL1RoaXJkUGFydHkvQU5HTEUvZG9jL0RldlNldHVwLm1kCkBAIC0yMiw4ICsyMiw5IEBA
IE9uIFdpbmRvd3M6CiAKICAqICoqKklNUE9SVEFOVDogU2V0IGBERVBPVF9UT09MU19XSU5fVE9P
TENIQUlOPTBgIGluIHlvdXIgZW52aXJvbm1lbnQgaWYgeW91IGFyZSBub3QgYSBHb29nbGVyLioq
KgogICogSW5zdGFsbCBbVmlzdWFsIFN0dWRpbyBDb21tdW5pdHkgMjAyMl0oaHR0cHM6Ly92aXN1
YWxzdHVkaW8ubWljcm9zb2Z0LmNvbS92cy8pCi0gKiBJbnN0YWxsIHRoZSBbV2luZG93cyAxMCBT
REssIGxhdGVzdCB2ZXJzaW9uXShodHRwczovL2RldmVsb3Blci5taWNyb3NvZnQuY29tL2VuLXVz
L3dpbmRvd3MvZG93bmxvYWRzL3dpbmRvd3MtMTAtc2RrKS4KLSAgICogWW91IGNhbiBpbnN0YWxs
IGl0IHRocm91Z2ggVmlzdWFsIFN0dWRpbyBJbnN0YWxsZXIgaWYgYXZhaWxhYmxlLgorICogSW5z
dGFsbCB0aGUgW1dpbmRvd3MgU0RLXShodHRwczovL2RldmVsb3Blci5taWNyb3NvZnQuY29tL2Vu
LXVzL3dpbmRvd3MvZG93bmxvYWRzL3Nkay1hcmNoaXZlLykuCisgICAqIFlvdSBjYW4gaW5zdGFs
bCBpdCB0aHJvdWdoIFZpc3VhbCBTdHVkaW8gSW5zdGFsbGVyIGlmIGF2YWlsYWJsZS4gSXQgbWln
aHQgYmUgbmVjZXNzYXJ5IHRvIHN3aXRjaCB0byB0aGUgYEluZGl2aWR1YWwgY29tcG9uZW50c2Ag
dGFiIHRvIGZpbmQgdGhlIGxhdGVzdCB2ZXJzaW9uLgorICAgKiBUaGUgY3VycmVudGx5IHN1cHBv
cnRlZCBXaW5kb3dzIFNESyB2ZXJzaW9uIGNhbiBiZSBmb3VuZCBpbiBbdnNfdG9vbGNoYWluLnB5
XShodHRwczovL2Nocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjL2J1aWxkLysv
cmVmcy9oZWFkcy9tYWluL3ZzX3Rvb2xjaGFpbi5weSkuCiAgICAqIFRoZSBTREsgaXMgcmVxdWly
ZWQgZm9yIEdOLWdlbmVyYXRlZCBWaXN1YWwgU3R1ZGlvIHByb2plY3RzLCB0aGUgRDNEIERlYnVn
IHJ1bnRpbWUsIGFuZCB0aGUgbGF0ZXN0IEhMU0wgQ29tcGlsZXIgcnVudGltZS4KICAqIChvcHRp
b25hbCkgU2VlIHRoZSBbQ2hyb21pdW0gV2luZG93cyBidWlsZCBpbnN0cnVjdGlvbnNdKGh0dHBz
Oi8vY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMvKy9tYWluL2RvY3Mvd2lu
ZG93c19idWlsZF9pbnN0cnVjdGlvbnMubWQpIGZvciBtb3JlIGluZm8uCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL2RvYy9FeHRlbnNpb25TdXBwb3J0Lm1kIGIvU291cmNl
L1RoaXJkUGFydHkvQU5HTEUvZG9jL0V4dGVuc2lvblN1cHBvcnQubWQKaW5kZXggYWVmM2JlZDQw
MTRmMjUxNzhkYzI0OWY2MzUyNzg5ZDUwOGE2ZDkxOC4uOWU2YzRhN2NkOGQ5ZGViYzdiNzVmYTA2
MTM0NTgwYjI3YTBkNWE3YSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvZG9j
L0V4dGVuc2lvblN1cHBvcnQubWQKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvZG9jL0V4
dGVuc2lvblN1cHBvcnQubWQKQEAgLTEyOSw2ICsxMjksNyBAQCB1c2luZyBkYXRhIGZyb20gcmVn
aXN0cnlfeG1sLnB5IGFuZCBnbC54bWwuCiB8IFtHTF9FWFRfc2hhZGVyX25vbl9jb25zdGFudF9n
bG9iYWxfaW5pdGlhbGl6ZXJzXShodHRwczovL2tocm9ub3Mub3JnL3JlZ2lzdHJ5L09wZW5HTC9l
eHRlbnNpb25zL0VYVC9FWFRfc2hhZGVyX25vbl9jb25zdGFudF9nbG9iYWxfaW5pdGlhbGl6ZXJz
LnR4dCkgfCAmI3gyNzE0OyB8ICYjeDI3MTQ7IHwgJiN4MjcxNDsgfCAmI3gyNzE0OyB8ICYjeDI3
MTQ7IHwgJiN4MjcxNDsgfAogfCBbR0xfTlZfc2hhZGVyX25vcGVyc3BlY3RpdmVfaW50ZXJwb2xh
dGlvbl0oaHR0cHM6Ly9raHJvbm9zLm9yZy9yZWdpc3RyeS9PcGVuR0wvZXh0ZW5zaW9ucy9OVi9O
Vl9zaGFkZXJfbm9wZXJzcGVjdGl2ZV9pbnRlcnBvbGF0aW9uLnR4dCkgfCAmI3gyNzE0OyB8ICYj
eDI3MTQ7IHwgJiN4MjcxNDsgfCAmI3gyNzE0OyB8ICYjeDI3MTQ7IHwgJiN4MjcxNDsgfAogfCBb
R0xfRVhUX3NoYWRlcl90ZXh0dXJlX2xvZF0oaHR0cHM6Ly9raHJvbm9zLm9yZy9yZWdpc3RyeS9P
cGVuR0wvZXh0ZW5zaW9ucy9FWFQvRVhUX3NoYWRlcl90ZXh0dXJlX2xvZC50eHQpIHwgJiN4Mjcx
NDsgfCAmI3gyNzE0OyB8ICYjeDI3MTQ7IHwgJiN4MjcxNDsgfCAmI3gyNzE0OyB8ICYjeDI3MTQ7
IHwKK3wgW0dMX1FDT01fc2hhZGluZ19yYXRlXShodHRwczovL2tocm9ub3Mub3JnL3JlZ2lzdHJ5
L09wZW5HTC9leHRlbnNpb25zL1FDT00vUUNPTV9zaGFkaW5nX3JhdGUudHh0KSB8ICB8ICB8ICB8
ICB8ICB8ICB8CiB8IFtHTF9FWFRfc2hhZG93X3NhbXBsZXJzXShodHRwczovL2tocm9ub3Mub3Jn
L3JlZ2lzdHJ5L09wZW5HTC9leHRlbnNpb25zL0VYVC9FWFRfc2hhZG93X3NhbXBsZXJzLnR4dCkg
fCAmI3gyNzE0OyB8ICYjeDI3MTQ7IHwgJiN4MjcxNDsgfCAmI3gyNzE0OyB8ICYjeDI3MTQ7IHwg
JiN4MjcxNDsgfAogfCBbR0xfRVhUX3NSR0JdKGh0dHBzOi8va2hyb25vcy5vcmcvcmVnaXN0cnkv
T3BlbkdML2V4dGVuc2lvbnMvRVhUL0VYVF9zUkdCLnR4dCkgfCAmI3gyNzE0OyB8ICYjeDI3MTQ7
IHwgJiN4MjcxNDsgfCAmI3gyNzE0OyB8ICYjeDI3MTQ7IHwgJiN4MjcxNDsgfAogfCBbR0xfRVhU
X3NSR0Jfd3JpdGVfY29udHJvbF0oaHR0cHM6Ly9raHJvbm9zLm9yZy9yZWdpc3RyeS9PcGVuR0wv
ZXh0ZW5zaW9ucy9FWFQvRVhUX3NSR0Jfd3JpdGVfY29udHJvbC50eHQpIHwgJiN4MjcxNDsgfCAm
I3gyNzE0OyB8ICYjeDI3MTQ7IHwgJiN4MjcxNDsgfCAmI3gyNzE0OyB8ICYjeDI3MTQ7IHwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL2duaS9hbmdsZS5nbmkgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9BTkdMRS9nbmkvYW5nbGUuZ25pCmluZGV4IDVjY2RkYjEzZTY1YWI4ZTE1NTc2
OTI0ODNkNTRiYjFmY2M5MDAyZDUuLmY5YzM4OTNjOWI2M2FiN2I0ZDE0YWJmMjQyMTY2YTVlNDUy
OWI2NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL2duaS9hbmdsZS5nbmkK
KysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvZ25pL2FuZ2xlLmduaQpAQCAtNDU5LDYgKzQ1
OSw3IEBAIGlmIChhbmdsZV9zdGFuZGFsb25lIHx8IGJ1aWxkX3dpdGhfY2hyb21pdW0pIHsKIAog
ICAgICAgZGF0YSA9IGludm9rZXIuZGF0YSArIFsKICAgICAgICAgICAgICAgICIkYW5nbGVfcm9v
dC9zY3JpcHRzL3J1bl9ndGVzdF9hbmdsZV90ZXN0LnB5IiwKKyAgICAgICAgICAgICAgICIkYW5n
bGVfcm9vdC9zcmMvdGVzdHMvcHlfdXRpbHMvYW5nbGVfcGF0aF91dGlsLnB5IiwKICAgICAgICAg
ICAgICAgICIvL3Rlc3Rpbmcvc2NyaXB0cy9jb21tb24ucHkiLAogICAgICAgICAgICAgICAgIi8v
dGVzdGluZy94dmZiLnB5IiwKICAgICAgICAgICAgICBdCkBAIC00NzgsMTAgKzQ3OSwxNSBAQCBp
ZiAoYW5nbGVfc3RhbmRhbG9uZSB8fCBidWlsZF93aXRoX2Nocm9taXVtKSB7CiAgICAgICAgIF0K
ICAgICAgIH0KIAotICAgICAgaWYgKGlzX21hYyAmJiBhbmdsZV9lbmFibGVfbWV0YWwpIHsKLSAg
ICAgICAgIyBPbiBtYWNPUywgY29tcGlsaW5nIE1ldGFsIHNoYWRlciBzb21ldGltZXMgdGFrZXMg
dmVyeSBsb25nIHRpbWUgZHVlIHRvIGludGVybmFsIGNhY2hpbmcKLSAgICAgICAgIyBtZWNoYW5p
c20uIFRoaXMgaG9va2luZyBsaWJyYXJ5IGlzIGEgd2F5IHRvIGJ5cGFzcyB0aGlzIGNhY2hpbmcg
bWVjaGFuaXNtLgotICAgICAgICBkYXRhX2RlcHMgKz0gWyAiJGFuZ2xlX3Jvb3Qvc3JjL2xpYkFO
R0xFL3JlbmRlcmVyL21ldGFsL2ZpbGVfaG9va2luZzptZXRhbF9zaGFkZXJfY2FjaGVfZmlsZV9o
b29raW5nIiBdCisgICAgICBpZiAoaXNfbWFjKSB7CisgICAgICAgIGlmIChhbmdsZV9lbmFibGVf
bWV0YWwpIHsKKyAgICAgICAgICAjIE9uIG1hY09TLCBjb21waWxpbmcgTWV0YWwgc2hhZGVyIHNv
bWV0aW1lcyB0YWtlcyB2ZXJ5IGxvbmcgdGltZSBkdWUgdG8gaW50ZXJuYWwgY2FjaGluZworICAg
ICAgICAgICMgbWVjaGFuaXNtLiBUaGlzIGhvb2tpbmcgbGlicmFyeSBpcyBhIHdheSB0byBieXBh
c3MgdGhpcyBjYWNoaW5nIG1lY2hhbmlzbS4KKyAgICAgICAgICBkYXRhX2RlcHMgKz0gWyAiJGFu
Z2xlX3Jvb3Qvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL21ldGFsL2ZpbGVfaG9va2luZzptZXRhbF9z
aGFkZXJfY2FjaGVfZmlsZV9ob29raW5nIiBdCisgICAgICAgIH0KKyAgICAgICAgaWYgKGFuZ2xl
X2VuYWJsZV9jZ2wpIHsKKyAgICAgICAgICBjb25maWdzICs9IFsgIiRhbmdsZV9yb290OnN1cHBv
cnRzX2F1dG9tYXRpY19ncmFwaGljc19zd2l0Y2hpbmciIF0KKyAgICAgICAgfQogICAgICAgfQog
CiAgICAgICBpZiAoKGlzX2xpbnV4ICYmICFpc19jaHJvbWVvcykgfHwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9UaGlyZFBhcnR5L0FOR0xFL2luY2x1ZGUvR0xTTEFORy9TaGFkZXJMYW5nLmggYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9BTkdMRS9pbmNsdWRlL0dMU0xBTkcvU2hhZGVyTGFuZy5oCmluZGV4IGMz
MDE5MzVhNTg4YTgxZjRkMWJjZDZiZWIwNzQyOTQyOTRjNWY2Y2YuLmUxM2FhMjIyMWRjOGU5MDM5
ZGY5ZWNhYzdmZTlhMmFjYWQ5YmVkMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FO
R0xFL2luY2x1ZGUvR0xTTEFORy9TaGFkZXJMYW5nLmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkv
QU5HTEUvaW5jbHVkZS9HTFNMQU5HL1NoYWRlckxhbmcuaApAQCAtMjYsNyArMjYsNyBAQAogCiAv
LyBWZXJzaW9uIG51bWJlciBmb3Igc2hhZGVyIHRyYW5zbGF0aW9uIEFQSS4KIC8vIEl0IGlzIGlu
Y3JlbWVudGVkIGV2ZXJ5IHRpbWUgdGhlIEFQSSBjaGFuZ2VzLgotI2RlZmluZSBBTkdMRV9TSF9W
RVJTSU9OIDI3MQorI2RlZmluZSBBTkdMRV9TSF9WRVJTSU9OIDI3MgogCiBlbnVtIFNoU2hhZGVy
U3BlYwogewpAQCAtMjQ3LDcgKzI0Nyw5IEBAIGNvbnN0IFNoQ29tcGlsZU9wdGlvbnMgU0hfU0VM
RUNUX1ZJRVdfSU5fTlZfR0xTTF9WRVJURVhfU0hBREVSID0gVUlOVDY0X0MoMSkgPDwKIC8vIFNo
QnVpbHRJblJlc291cmNlcyBpbiB2ZXJ0ZXggc2hhZGVycy4KIGNvbnN0IFNoQ29tcGlsZU9wdGlv
bnMgU0hfQ0xBTVBfUE9JTlRfU0laRSA9IFVJTlQ2NF9DKDEpIDw8IDMyOwogCi0vLyBCaXQgMzMg
aXMgYXZhaWxhYmxlLgorLy8gVGhpcyBmbGFnIGluZGljYXRlcyB3aGV0aGVyIGFkdmFuY2VkIGJs
ZW5kIGVxdWF0aW9uIHNob3VsZCBiZSBlbXVsYXRlZC4gIEN1cnJlbnRseSBvbmx5CisvLyBpbXBs
ZW1lbnRlZCBmb3IgdGhlIFZ1bGthbiBiYWNrZW5kLgorY29uc3QgU2hDb21waWxlT3B0aW9ucyBT
SF9BRERfQURWQU5DRURfQkxFTkRfRVFVQVRJT05TX0VNVUxBVElPTiA9IFVJTlQ2NF9DKDEpIDw8
IDMzOwogCiAvLyBEb24ndCB1c2UgbG9vcHMgdG8gaW5pdGlhbGl6ZSB1bmluaXRpYWxpemVkIHZh
cmlhYmxlcy4gT25seSBoYXMgYW4gZWZmZWN0IGlmIHNvbWUga2luZCBvZgogLy8gdmFyaWFibGUg
aW5pdGlhbGl6YXRpb24gaXMgdHVybmVkIG9uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvaW5jbHVkZS9wbGF0Zm9ybS9GZWF0dXJlLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9B
TkdMRS9pbmNsdWRlL3BsYXRmb3JtL0ZlYXR1cmUuaAppbmRleCAwYzgyZmU1MGI3MmNkYWRkMGI5
NzBiMWI4MjFjNTI4NDM2NzkzZjI5Li5jMzFiMDkzNDVkMDRlZTQyYWIzNTYzYmVkNDkxMGMwYjY0
NWI5ZDBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9pbmNsdWRlL3BsYXRm
b3JtL0ZlYXR1cmUuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9pbmNsdWRlL3BsYXRm
b3JtL0ZlYXR1cmUuaApAQCAtMjUsNDEgKzI1LDQwIEBAIG5hbWVzcGFjZSBhbmdsZQogCiBlbnVt
IGNsYXNzIEZlYXR1cmVDYXRlZ29yeQogewotICAgIEFwcFdvcmthcm91bmRzLAotICAgIEZyb250
ZW5kV29ya2Fyb3VuZHMsCiAgICAgRnJvbnRlbmRGZWF0dXJlcywKKyAgICBGcm9udGVuZFdvcmth
cm91bmRzLAogICAgIE9wZW5HTFdvcmthcm91bmRzLAogICAgIEQzRFdvcmthcm91bmRzLAotICAg
IEQzRENvbXBpbGVyV29ya2Fyb3VuZHMsCi0gICAgVnVsa2FuV29ya2Fyb3VuZHMsCiAgICAgVnVs
a2FuRmVhdHVyZXMsCisgICAgVnVsa2FuV29ya2Fyb3VuZHMsCisgICAgVnVsa2FuQXBwV29ya2Fy
b3VuZHMsCiAgICAgTWV0YWxGZWF0dXJlcywKICAgICBNZXRhbFdvcmthcm91bmRzLAogfTsKIAot
Y29uc3RleHByIGNoYXIga0ZlYXR1cmVDYXRlZ29yeUZyb250ZW5kV29ya2Fyb3VuZHNbXSAgICA9
ICJGcm9udGVuZCB3b3JrYXJvdW5kcyI7Ci1jb25zdGV4cHIgY2hhciBrRmVhdHVyZUNhdGVnb3J5
RnJvbnRlbmRGZWF0dXJlc1tdICAgICAgID0gIkZyb250ZW5kIGZlYXR1cmVzIjsKLWNvbnN0ZXhw
ciBjaGFyIGtGZWF0dXJlQ2F0ZWdvcnlPcGVuR0xXb3JrYXJvdW5kc1tdICAgICAgPSAiT3BlbkdM
IHdvcmthcm91bmRzIjsKLWNvbnN0ZXhwciBjaGFyIGtGZWF0dXJlQ2F0ZWdvcnlEM0RXb3JrYXJv
dW5kc1tdICAgICAgICAgPSAiRDNEIHdvcmthcm91bmRzIjsKLWNvbnN0ZXhwciBjaGFyIGtGZWF0
dXJlQ2F0ZWdvcnlEM0RDb21waWxlcldvcmthcm91bmRzW10gPSAiRDNEIGNvbXBpbGVyIHdvcmth
cm91bmRzIjsKLWNvbnN0ZXhwciBjaGFyIGtGZWF0dXJlQ2F0ZWdvcnlWdWxrYW5Xb3JrYXJvdW5k
c1tdICAgICAgPSAiVnVsa2FuIHdvcmthcm91bmRzIjsKLWNvbnN0ZXhwciBjaGFyIGtGZWF0dXJl
Q2F0ZWdvcnlWdWxrYW5GZWF0dXJlc1tdICAgICAgICAgPSAiVnVsa2FuIGZlYXR1cmVzIjsKLWNv
bnN0ZXhwciBjaGFyIGtGZWF0dXJlQ2F0ZWdvcnlNZXRhbEZlYXR1cmVzW10gICAgICAgICAgPSAi
TWV0YWwgZmVhdHVyZXMiOwotY29uc3RleHByIGNoYXIga0ZlYXR1cmVDYXRlZ29yeU1ldGFsV29y
a2Fyb3VuZHNbXSAgICAgICA9ICJNZXRhbCB3b3JrYXJvdW5kcyI7Ci1jb25zdGV4cHIgY2hhciBr
RmVhdHVyZUNhdGVnb3J5VW5rbm93bltdICAgICAgICAgICAgICAgID0gIlVua25vd24iOworY29u
c3RleHByIGNoYXIga0ZlYXR1cmVDYXRlZ29yeUZyb250ZW5kV29ya2Fyb3VuZHNbXSAgPSAiRnJv
bnRlbmQgd29ya2Fyb3VuZHMiOworY29uc3RleHByIGNoYXIga0ZlYXR1cmVDYXRlZ29yeUZyb250
ZW5kRmVhdHVyZXNbXSAgICAgPSAiRnJvbnRlbmQgZmVhdHVyZXMiOworY29uc3RleHByIGNoYXIg
a0ZlYXR1cmVDYXRlZ29yeU9wZW5HTFdvcmthcm91bmRzW10gICAgPSAiT3BlbkdMIHdvcmthcm91
bmRzIjsKK2NvbnN0ZXhwciBjaGFyIGtGZWF0dXJlQ2F0ZWdvcnlEM0RXb3JrYXJvdW5kc1tdICAg
ICAgID0gIkQzRCB3b3JrYXJvdW5kcyI7Citjb25zdGV4cHIgY2hhciBrRmVhdHVyZUNhdGVnb3J5
VnVsa2FuQXBwV29ya2Fyb3VuZHNbXSA9ICJWdWxrYW4gYXBwIHdvcmthcm91bmRzIjsKK2NvbnN0
ZXhwciBjaGFyIGtGZWF0dXJlQ2F0ZWdvcnlWdWxrYW5Xb3JrYXJvdW5kc1tdICAgID0gIlZ1bGth
biB3b3JrYXJvdW5kcyI7Citjb25zdGV4cHIgY2hhciBrRmVhdHVyZUNhdGVnb3J5VnVsa2FuRmVh
dHVyZXNbXSAgICAgICA9ICJWdWxrYW4gZmVhdHVyZXMiOworY29uc3RleHByIGNoYXIga0ZlYXR1
cmVDYXRlZ29yeU1ldGFsRmVhdHVyZXNbXSAgICAgICAgPSAiTWV0YWwgZmVhdHVyZXMiOworY29u
c3RleHByIGNoYXIga0ZlYXR1cmVDYXRlZ29yeU1ldGFsV29ya2Fyb3VuZHNbXSAgICAgPSAiTWV0
YWwgd29ya2Fyb3VuZHMiOworY29uc3RleHByIGNoYXIga0ZlYXR1cmVDYXRlZ29yeVVua25vd25b
XSAgICAgICAgICAgICAgPSAiVW5rbm93biI7CiAKIGlubGluZSBjb25zdCBjaGFyICpGZWF0dXJl
Q2F0ZWdvcnlUb1N0cmluZyhjb25zdCBGZWF0dXJlQ2F0ZWdvcnkgJmZjKQogewogICAgIHN3aXRj
aCAoZmMpCiAgICAgewotICAgICAgICBjYXNlIEZlYXR1cmVDYXRlZ29yeTo6RnJvbnRlbmRXb3Jr
YXJvdW5kczoKLSAgICAgICAgICAgIHJldHVybiBrRmVhdHVyZUNhdGVnb3J5RnJvbnRlbmRXb3Jr
YXJvdW5kczsKLSAgICAgICAgICAgIGJyZWFrOwotCiAgICAgICAgIGNhc2UgRmVhdHVyZUNhdGVn
b3J5OjpGcm9udGVuZEZlYXR1cmVzOgogICAgICAgICAgICAgcmV0dXJuIGtGZWF0dXJlQ2F0ZWdv
cnlGcm9udGVuZEZlYXR1cmVzOwogICAgICAgICAgICAgYnJlYWs7CiAKKyAgICAgICAgY2FzZSBG
ZWF0dXJlQ2F0ZWdvcnk6OkZyb250ZW5kV29ya2Fyb3VuZHM6CisgICAgICAgICAgICByZXR1cm4g
a0ZlYXR1cmVDYXRlZ29yeUZyb250ZW5kV29ya2Fyb3VuZHM7CisgICAgICAgICAgICBicmVhazsK
KwogICAgICAgICBjYXNlIEZlYXR1cmVDYXRlZ29yeTo6T3BlbkdMV29ya2Fyb3VuZHM6CiAgICAg
ICAgICAgICByZXR1cm4ga0ZlYXR1cmVDYXRlZ29yeU9wZW5HTFdvcmthcm91bmRzOwogICAgICAg
ICAgICAgYnJlYWs7CkBAIC02OCwxNiArNjcsMTYgQEAgaW5saW5lIGNvbnN0IGNoYXIgKkZlYXR1
cmVDYXRlZ29yeVRvU3RyaW5nKGNvbnN0IEZlYXR1cmVDYXRlZ29yeSAmZmMpCiAgICAgICAgICAg
ICByZXR1cm4ga0ZlYXR1cmVDYXRlZ29yeUQzRFdvcmthcm91bmRzOwogICAgICAgICAgICAgYnJl
YWs7CiAKLSAgICAgICAgY2FzZSBGZWF0dXJlQ2F0ZWdvcnk6OkQzRENvbXBpbGVyV29ya2Fyb3Vu
ZHM6Ci0gICAgICAgICAgICByZXR1cm4ga0ZlYXR1cmVDYXRlZ29yeUQzRENvbXBpbGVyV29ya2Fy
b3VuZHM7CisgICAgICAgIGNhc2UgRmVhdHVyZUNhdGVnb3J5OjpWdWxrYW5GZWF0dXJlczoKKyAg
ICAgICAgICAgIHJldHVybiBrRmVhdHVyZUNhdGVnb3J5VnVsa2FuRmVhdHVyZXM7CiAgICAgICAg
ICAgICBicmVhazsKIAogICAgICAgICBjYXNlIEZlYXR1cmVDYXRlZ29yeTo6VnVsa2FuV29ya2Fy
b3VuZHM6CiAgICAgICAgICAgICByZXR1cm4ga0ZlYXR1cmVDYXRlZ29yeVZ1bGthbldvcmthcm91
bmRzOwogICAgICAgICAgICAgYnJlYWs7CiAKLSAgICAgICAgY2FzZSBGZWF0dXJlQ2F0ZWdvcnk6
OlZ1bGthbkZlYXR1cmVzOgotICAgICAgICAgICAgcmV0dXJuIGtGZWF0dXJlQ2F0ZWdvcnlWdWxr
YW5GZWF0dXJlczsKKyAgICAgICAgY2FzZSBGZWF0dXJlQ2F0ZWdvcnk6OlZ1bGthbkFwcFdvcmth
cm91bmRzOgorICAgICAgICAgICAgcmV0dXJuIGtGZWF0dXJlQ2F0ZWdvcnlWdWxrYW5BcHBXb3Jr
YXJvdW5kczsKICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgIGNhc2UgRmVhdHVyZUNhdGVn
b3J5OjpNZXRhbEZlYXR1cmVzOgpAQCAtMTA2LDIwICsxMDUsMjAgQEAgaW5saW5lIGNvbnN0IGNo
YXIgKkZlYXR1cmVTdGF0dXNUb1N0cmluZyhjb25zdCBib29sICZzdGF0dXMpCiAgICAgcmV0dXJu
IGtGZWF0dXJlU3RhdHVzRGlzYWJsZWQ7CiB9CiAKLXN0cnVjdCBGZWF0dXJlOworc3RydWN0IEZl
YXR1cmVJbmZvOwogCi11c2luZyBGZWF0dXJlTWFwICA9IHN0ZDo6bWFwPHN0ZDo6c3RyaW5nLCBG
ZWF0dXJlICo+OwotdXNpbmcgRmVhdHVyZUxpc3QgPSBzdGQ6OnZlY3Rvcjxjb25zdCBGZWF0dXJl
ICo+OwordXNpbmcgRmVhdHVyZU1hcCAgPSBzdGQ6Om1hcDxzdGQ6OnN0cmluZywgRmVhdHVyZUlu
Zm8gKj47Cit1c2luZyBGZWF0dXJlTGlzdCA9IHN0ZDo6dmVjdG9yPGNvbnN0IEZlYXR1cmVJbmZv
ICo+OwogCi1zdHJ1Y3QgRmVhdHVyZQorc3RydWN0IEZlYXR1cmVJbmZvCiB7Ci0gICAgRmVhdHVy
ZShjb25zdCBGZWF0dXJlICZvdGhlcik7Ci0gICAgRmVhdHVyZShjb25zdCBjaGFyICpuYW1lLAot
ICAgICAgICAgICAgY29uc3QgRmVhdHVyZUNhdGVnb3J5ICZjYXRlZ29yeSwKLSAgICAgICAgICAg
IGNvbnN0IGNoYXIgKmRlc2NyaXB0aW9uLAotICAgICAgICAgICAgRmVhdHVyZU1hcCAqY29uc3Qg
bWFwUHRyLAotICAgICAgICAgICAgY29uc3QgY2hhciAqYnVnKTsKLSAgICB+RmVhdHVyZSgpOwor
ICAgIEZlYXR1cmVJbmZvKGNvbnN0IEZlYXR1cmVJbmZvICZvdGhlcik7CisgICAgRmVhdHVyZUlu
Zm8oY29uc3QgY2hhciAqbmFtZSwKKyAgICAgICAgICAgICAgICBjb25zdCBGZWF0dXJlQ2F0ZWdv
cnkgJmNhdGVnb3J5LAorICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmRlc2NyaXB0aW9uLAor
ICAgICAgICAgICAgICAgIEZlYXR1cmVNYXAgKmNvbnN0IG1hcFB0ciwKKyAgICAgICAgICAgICAg
ICBjb25zdCBjaGFyICpidWcpOworICAgIH5GZWF0dXJlSW5mbygpOwogCiAgICAgLy8gVGhlIG5h
bWUgb2YgdGhlIHdvcmthcm91bmQsIGxvd2VyY2FzZSwgY2FtZWxfY2FzZQogICAgIGNvbnN0IGNo
YXIgKmNvbnN0IG5hbWU7CkBAIC0xNDEsMTIgKzE0MCwxMiBAQCBzdHJ1Y3QgRmVhdHVyZQogICAg
IGNvbnN0IGNoYXIgKmNvbmRpdGlvbjsKIH07CiAKLWlubGluZSBGZWF0dXJlOjpGZWF0dXJlKGNv
bnN0IEZlYXR1cmUgJm90aGVyKSA9IGRlZmF1bHQ7Ci1pbmxpbmUgRmVhdHVyZTo6RmVhdHVyZShj
b25zdCBjaGFyICpuYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgRmVhdHVyZUNh
dGVnb3J5ICZjYXRlZ29yeSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmRl
c2NyaXB0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgRmVhdHVyZU1hcCAqY29uc3QgbWFw
UHRyLAotICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqYnVnID0gIiIpCitpbmxp
bmUgRmVhdHVyZUluZm86OkZlYXR1cmVJbmZvKGNvbnN0IEZlYXR1cmVJbmZvICZvdGhlcikgPSBk
ZWZhdWx0OworaW5saW5lIEZlYXR1cmVJbmZvOjpGZWF0dXJlSW5mbyhjb25zdCBjaGFyICpuYW1l
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBGZWF0dXJlQ2F0ZWdvcnkg
JmNhdGVnb3J5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpk
ZXNjcmlwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmVhdHVyZU1hcCAq
Y29uc3QgbWFwUHRyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFy
ICpidWcgPSAiIikKICAgICA6IG5hbWUobmFtZSksCiAgICAgICBjYXRlZ29yeShjYXRlZ29yeSks
CiAgICAgICBkZXNjcmlwdGlvbihkZXNjcmlwdGlvbiksCkBAIC0xNjAsNyArMTU5LDcgQEAgaW5s
aW5lIEZlYXR1cmU6OkZlYXR1cmUoY29uc3QgY2hhciAqbmFtZSwKICAgICB9CiB9CiAKLWlubGlu
ZSBGZWF0dXJlOjp+RmVhdHVyZSgpID0gZGVmYXVsdDsKK2lubGluZSBGZWF0dXJlSW5mbzo6fkZl
YXR1cmVJbmZvKCkgPSBkZWZhdWx0OwogCiBzdHJ1Y3QgRmVhdHVyZVNldEJhc2UKIHsKQEAgLTE3
NywyNCArMTc2LDggQEAgc3RydWN0IEZlYXR1cmVTZXRCYXNlCiAgICAgRmVhdHVyZU1hcCBtZW1i
ZXJzID0gRmVhdHVyZU1hcCgpOwogCiAgIHB1YmxpYzoKLSAgICB2b2lkIG92ZXJyaWRlRmVhdHVy
ZXMoY29uc3Qgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+ICZmZWF0dXJlTmFtZXMsIGJvb2wgZW5h
YmxlZCkKLSAgICB7Ci0gICAgICAgIGZvciAoY29uc3Qgc3RkOjpzdHJpbmcgJm5hbWUgOiBmZWF0
dXJlTmFtZXMpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGlmIChtZW1iZXJzLmZpbmQobmFtZSkg
IT0gbWVtYmVycy5lbmQoKSkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBtZW1iZXJz
W25hbWVdLT5lbmFibGVkID0gZW5hYmxlZDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAg
IH0KLQotICAgIHZvaWQgcG9wdWxhdGVGZWF0dXJlTGlzdChGZWF0dXJlTGlzdCAqZmVhdHVyZXMp
IGNvbnN0Ci0gICAgewotICAgICAgICBmb3IgKEZlYXR1cmVNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0
ID0gbWVtYmVycy5iZWdpbigpOyBpdCAhPSBtZW1iZXJzLmVuZCgpOyBpdCsrKQotICAgICAgICB7
Ci0gICAgICAgICAgICBmZWF0dXJlcy0+cHVzaF9iYWNrKGl0LT5zZWNvbmQpOwotICAgICAgICB9
Ci0gICAgfQorICAgIHZvaWQgb3ZlcnJpZGVGZWF0dXJlcyhjb25zdCBzdGQ6OnZlY3RvcjxzdGQ6
OnN0cmluZz4gJmZlYXR1cmVOYW1lcywgYm9vbCBlbmFibGVkKTsKKyAgICB2b2lkIHBvcHVsYXRl
RmVhdHVyZUxpc3QoRmVhdHVyZUxpc3QgKmZlYXR1cmVzKSBjb25zdDsKIAogICAgIGNvbnN0IEZl
YXR1cmVNYXAgJmdldEZlYXR1cmVzKCkgY29uc3QgeyByZXR1cm4gbWVtYmVyczsgfQogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL2luY2x1ZGUvcGxhdGZvcm0vRmVhdHVy
ZXNEM0QuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL2luY2x1ZGUvcGxhdGZvcm0vRmVhdHVy
ZXNEM0QuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmIwYWUzNzkxMTBkNzNmODE2
MmEyZDgyZGQ4NzA4MGQ5NWViMmFlNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9pbmNsdWRlL3BsYXRmb3JtL0Zl
YXR1cmVzRDNELmgKKysrIC9kZXYvbnVsbApAQCAtMSwyMjcgKzAsMCBAQAotLy8KLS8vIENvcHly
aWdodCAyMDE1IFRoZSBBTkdMRSBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0vLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBs
aWNlbnNlIHRoYXQgY2FuIGJlCi0vLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLy8KLQot
Ly8gRmVhdHVyZXNEM0QuaDogRmVhdHVyZXMgYW5kIHdvcmthcm91bmRzIGZvciBEM0QgZHJpdmVy
IGJ1Z3MgYW5kIG90aGVyIGlzc3Vlcy4KLQotI2lmbmRlZiBBTkdMRV9QTEFURk9STV9GRUFUVVJF
U0QzRF9IXwotI2RlZmluZSBBTkdMRV9QTEFURk9STV9GRUFUVVJFU0QzRF9IXwotCi0jaW5jbHVk
ZSAicGxhdGZvcm0vRmVhdHVyZS5oIgotCi1uYW1lc3BhY2UgYW5nbGUKLXsKLQotLy8gV29ya2Fy
b3VuZHMgYXR0YWNoZWQgdG8gZWFjaCBzaGFkZXIuIERvIG5vdCBuZWVkIHRvIGV4cG9zZSBpbmZv
cm1hdGlvbiBhYm91dCB0aGVzZSB3b3JrYXJvdW5kcyBzbwotLy8gYSBzaW1wbGUgYm9vbCBzdHJ1
Y3Qgc3VmZmljZXMuCi1zdHJ1Y3QgQ29tcGlsZXJXb3JrYXJvdW5kc0QzRAotewotICAgIGJvb2wg
c2tpcE9wdGltaXphdGlvbiA9IGZhbHNlOwotCi0gICAgYm9vbCB1c2VNYXhPcHRpbWl6YXRpb24g
PSBmYWxzZTsKLQotICAgIC8vIElFRUUgc3RyaWN0bmVzcyBuZWVkcyB0byBiZSBlbmFibGVkIGZv
ciBOQU5zIHRvIHdvcmsuCi0gICAgYm9vbCBlbmFibGVJRUVFU3RyaWN0bmVzcyA9IGZhbHNlOwot
fTsKLQotc3RydWN0IEZlYXR1cmVzRDNEIDogRmVhdHVyZVNldEJhc2UKLXsKLSAgICBGZWF0dXJl
c0QzRCgpOwotICAgIH5GZWF0dXJlc0QzRCgpOwotCi0gICAgLy8gT24gc29tZSBzeXN0ZW1zLCBo
YXZpbmcgZXh0cmEgcmVuZGVydGFyZ2V0cyB0aGFuIG5lY2Vzc2FyeSBzbG93cyBkb3duIHRoZSBz
aGFkZXIuCi0gICAgLy8gV2UgY2FuIGZpeCB0aGlzIGJ5IG9wdGltaXppbmcgdGhvc2Ugb3V0IG9m
IHRoZSBzaGFkZXIuIEF0IHRoZSBzYW1lIHRpbWUsIHdlIGNhbgotICAgIC8vIHdvcmsgYXJvdW5k
IGEgYnVnIG9uIHNvbWUgblZpZGlhIGRyaXZlcnMgdGhhdCB0aGV5IGlnbm9yZSAibnVsbCIgcmVu
ZGVyIHRhcmdldHMKLSAgICAvLyBpbiBEM0QxMSwgYnkgY29tcGFjdGluZyB0aGUgYWN0aXZlIGNv
bG9yIGF0dGFjaG1lbnRzIGxpc3QgdG8gb21pdCBudWxsIGVudHJpZXMuCi0gICAgRmVhdHVyZSBt
cnRQZXJmV29ya2Fyb3VuZCA9IHsibXJ0X3BlcmZfd29ya2Fyb3VuZCIsIEZlYXR1cmVDYXRlZ29y
eTo6RDNEV29ya2Fyb3VuZHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU29t
ZSBkcml2ZXJzIGhhdmUgYSBidWcgd2hlcmUgdGhleSBpZ25vcmUgbnVsbCByZW5kZXIgdGFyZ2V0
cyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbWVtYmVyc307Ci0KLSAgICBG
ZWF0dXJlIHNldERhdGFGYXN0ZXJUaGFuSW1hZ2VVcGxvYWQgPSB7InNldF9kYXRhX2Zhc3Rlcl90
aGFuX2ltYWdlX3VwbG9hZCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEZlYXR1cmVDYXRlZ29yeTo6RDNEV29ya2Fyb3VuZHMsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTZXQgZGF0YSBmYXN0ZXIgdGhhbiBpbWFnZSB1
cGxvYWQiLCAmbWVtYmVyc307Ci0KLSAgICAvLyBTb21lIHJlbmRlcmVycyBjYW4ndCBkaXNhYmxl
IG1pcG1hcHMgb24gYSBtaXBtYXBwZWQgdGV4dHVyZSAoaS5lLiBzb2xlbHkgc2FtcGxlIGZyb20g
bGV2ZWwKLSAgICAvLyB6ZXJvLCBhbmQgaWdub3JlIHRoZSBvdGhlciBsZXZlbHMpLiBEM0QxMSBG
ZWF0dXJlIExldmVsIDEwKyBkb2VzIHRoaXMgYnkgc2V0dGluZyBNYXhMT0QgdG8KLSAgICAvLyAw
LjBmIGluIHRoZSBTYW1wbGVyIHN0YXRlLiBEM0Q5IHNldHMgRDNEU0FNUF9NSVBGSUxURVIgdG8g
RDNEVEVYRl9OT05FLiBUaGVyZSBpcyBubwotICAgIC8vIGVxdWl2YWxlbnQgdG8gdGhpcyBpbiBE
M0QxMSBGZWF0dXJlIExldmVsIDlfMy4gVGhpcyBjYXVzZXMgcHJvYmxlbXMgd2hlbiAoZm9yIGV4
YW1wbGUpIGFuCi0gICAgLy8gYXBwbGljYXRpb24gY3JlYXRlcyBhIG1pcG1hcHBlZCB0ZXh0dXJl
MkQsIGJ1dCBzZXRzIEdMX1RFWFRVUkVfTUlOX0ZJTFRFUiB0byBHTF9ORUFSRVNUCi0gICAgLy8g
KGkuZSBkaXNhYmxlcyBtaXBtYXBzKS4gVG8gd29yayBhcm91bmQgdGhpcywgRDNEMTEgRkw5XzMg
aGFzIHRvIGNyZWF0ZSB0d28gY29waWVzIG9mIHRoZQotICAgIC8vIHRleHR1cmUuIFRoZSB0ZXh0
dXJlcycgbGV2ZWwgemVyb3MgYXJlIGlkZW50aWNhbCwgYnV0IG9ubHkgb25lIHRleHR1cmUgaGFz
IG1pcHMuCi0gICAgRmVhdHVyZSB6ZXJvTWF4TG9kV29ya2Fyb3VuZCA9IHsiemVyb19tYXhfbG9k
IiwgRmVhdHVyZUNhdGVnb3J5OjpEM0RXb3JrYXJvdW5kcywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJNaXNzaW5nIGFuIG9wdGlvbiB0byBkaXNhYmxlIG1pcG1hcHMgb24g
YSBtaXBtYXBwZWQgdGV4dHVyZSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAmbWVtYmVyc307Ci0KLSAgICAvLyBTb21lIHJlbmRlcmVycyBkbyBub3Qgc3VwcG9ydCBHZW9t
ZXRyeSBTaGFkZXJzIHNvIHRoZSBHZW9tZXRyeSBTaGFkZXItYmFzZWQgUG9pbnRTcHJpdGUKLSAg
ICAvLyBlbXVsYXRpb24gd2lsbCBub3Qgd29yay4gVG8gd29yayBhcm91bmQgdGhpcywgRDNEMTEg
Rkw5XzMgaGFzIHRvIHVzZSBhIGRpZmZlcmVudCBwb2ludHNwcml0ZQotICAgIC8vIGVtdWxhdGlv
biB0aGF0IGlzIGltcGxlbWVudGVkIHVzaW5nIGluc3RhbmNlZCBxdWFkcy4KLSAgICBGZWF0dXJl
IHVzZUluc3RhbmNlZFBvaW50U3ByaXRlRW11bGF0aW9uID0gewotICAgICAgICAidXNlX2luc3Rh
bmNlZF9wb2ludF9zcHJpdGVfZW11bGF0aW9uIiwgRmVhdHVyZUNhdGVnb3J5OjpEM0RXb3JrYXJv
dW5kcywKLSAgICAgICAgIlNvbWUgRDNEMTEgcmVuZGVyZXJzIGRvIG5vdCBzdXBwb3J0IGdlb21l
dHJ5IHNoYWRlcnMgZm9yIHBvaW50c3ByaXRlIGVtdWxhdGlvbiIsICZtZW1iZXJzfTsKLQotICAg
IC8vIEEgYnVnIGZpeGVkIGluIE5WSURJQSBkcml2ZXIgdmVyc2lvbiAzNDcuODggPCB4IDw9IDM2
OC44MSB0cmlnZ2VycyBhIFREUiB3aGVuIHVzaW5nCi0gICAgLy8gQ29weVN1YnJlc291cmNlUmVn
aW9uIGZyb20gYSBzdGFnaW5nIHRleHR1cmUgdG8gYSBkZXB0aC9zdGVuY2lsIGluIEQzRDExLiBU
aGUgd29ya2Fyb3VuZAotICAgIC8vIGlzIHRvIHVzZSBVcGRhdGVTdWJyZXNvdXJjZSB0byB0cmln
Z2VyIGFuIGV4dHJhIGNvcHkuIFdlIGRpc2FibGUgdGhpcyB3b3JrYXJvdW5kIG9uIG5ld2VyCi0g
ICAgLy8gTlZJRElBIGRyaXZlciB2ZXJzaW9ucyBiZWNhdXNlIG9mIGEgc2Vjb25kIGRyaXZlciBi
dWcgcHJlc2VudCB3aXRoIHRoZSB3b3JrYXJvdW5kIGVuYWJsZWQuCi0gICAgLy8gKFNlZTogaHR0
cDovL2FuZ2xlYnVnLmNvbS8xNDUyKQotICAgIEZlYXR1cmUgZGVwdGhTdGVuY2lsQmxpdEV4dHJh
Q29weSA9IHsKLSAgICAgICAgImRlcHRoX3N0ZW5jaWxfYmxpdF9leHRyYV9jb3B5IiwgRmVhdHVy
ZUNhdGVnb3J5OjpEM0RXb3JrYXJvdW5kcywKLSAgICAgICAgIkJ1ZyBpbiBzb21lIGRyaXZlcnMg
dHJpZ2dlcnMgYSBURFIgd2hlbiB1c2luZyBDb3B5U3VicmVzb3VyY2VSZWdpb24gZnJvbSBhIHN0
YWdpbmcgIgotICAgICAgICAidGV4dHVyZSB0byBhIGRlcHRoL3N0ZW5jaWwiLAotICAgICAgICAm
bWVtYmVycywgImh0dHA6Ly9hbmdsZWJ1Zy5jb20vMTQ1MiJ9OwotCi0gICAgLy8gVGhlIEhMU0wg
b3B0aW1pemVyIGhhcyBhIGJ1ZyB3aXRoIG9wdGltaXppbmcgInBvdyIgaW4gY2VydGFpbiBpbnRl
Z2VyLXZhbHVlZCBleHByZXNzaW9ucy4KLSAgICAvLyBXZSBjYW4gd29yayBhcm91bmQgdGhpcyBi
eSBleHBhbmRpbmcgdGhlIHBvdyBpbnRvIGEgc2VyaWVzIG9mIG11bHRpcGxpZXMgaWYgd2UncmUg
cnVubmluZwotICAgIC8vIHVuZGVyIHRoZSBhZmZlY3RlZCBjb21waWxlci4KLSAgICBGZWF0dXJl
IGV4cGFuZEludGVnZXJQb3dFeHByZXNzaW9ucyA9IHsKLSAgICAgICAgImV4cGFuZF9pbnRlZ2Vy
X3Bvd19leHByZXNzaW9ucyIsIEZlYXR1cmVDYXRlZ29yeTo6RDNEV29ya2Fyb3VuZHMsCi0gICAg
ICAgICJUaGUgSExTTCBvcHRpbWl6ZXIgaGFzIGEgYnVnIHdpdGggb3B0aW1pemluZyAncG93JyBp
biBjZXJ0YWluIGludGVnZXItdmFsdWVkIGV4cHJlc3Npb25zIiwKLSAgICAgICAgJm1lbWJlcnN9
OwotCi0gICAgLy8gTlZJRElBIGRyaXZlcnMgc29tZXRpbWVzIHdyaXRlIG91dC1vZi1vcmRlciBy
ZXN1bHRzIHRvIFN0cmVhbU91dCBidWZmZXJzIHdoZW4gdHJhbnNmb3JtCi0gICAgLy8gZmVlZGJh
Y2sgaXMgdXNlZCB0byByZXBlYXRlZGx5IHdyaXRlIHRvIHRoZSBzYW1lIGJ1ZmZlciBwb3NpdGlv
bnMuCi0gICAgRmVhdHVyZSBmbHVzaEFmdGVyRW5kaW5nVHJhbnNmb3JtRmVlZGJhY2sgPSB7Ci0g
ICAgICAgICJmbHVzaF9hZnRlcl9lbmRpbmdfdHJhbnNmb3JtX2ZlZWRiYWNrIiwgRmVhdHVyZUNh
dGVnb3J5OjpEM0RXb3JrYXJvdW5kcywKLSAgICAgICAgIlNvbWUgZHJpdmVycyBzb21ldGltZXMg
d3JpdGUgb3V0LW9mLW9yZGVyIHJlc3VsdHMgdG8gU3RyZWFtT3V0IGJ1ZmZlcnMgd2hlbiB0cmFu
c2Zvcm0gIgotICAgICAgICAiZmVlZGJhY2sgaXMgdXNlZCB0byByZXBlYXRlZGx5IHdyaXRlIHRv
IHRoZSBzYW1lIGJ1ZmZlciBwb3NpdGlvbnMiLAotICAgICAgICAmbWVtYmVyc307Ci0KLSAgICAv
LyBTb21lIGRyaXZlcnMgKE5WSURJQSkgZG8gbm90IHRha2UgaW50byBhY2NvdW50IHRoZSBiYXNl
IGxldmVsIG9mIHRoZSB0ZXh0dXJlIGluIHRoZSByZXN1bHRzCi0gICAgLy8gb2YgdGhlIEhMU0wg
R2V0RGltZW5zaW9ucyBidWlsdGluLgotICAgIEZlYXR1cmUgZ2V0RGltZW5zaW9uc0lnbm9yZXNC
YXNlTGV2ZWwgPSB7Ci0gICAgICAgICJnZXRfZGltZW5zaW9uc19pZ25vcmVzX2Jhc2VfbGV2ZWwi
LCBGZWF0dXJlQ2F0ZWdvcnk6OkQzRFdvcmthcm91bmRzLAotICAgICAgICAiU29tZSBkcml2ZXJz
IGRvIG5vdCB0YWtlIGludG8gYWNjb3VudCB0aGUgYmFzZSBsZXZlbCBvZiB0aGUgIgotICAgICAg
ICAidGV4dHVyZSBpbiB0aGUgcmVzdWx0cyBvZiB0aGUgSExTTCBHZXREaW1lbnNpb25zIGJ1aWx0
aW4iLAotICAgICAgICAmbWVtYmVyc307Ci0KLSAgICAvLyBPbiBzb21lIEludGVsIGRyaXZlcnMs
IEhMU0wncyBmdW5jdGlvbiB0ZXh0dXJlLkxvYWQgcmV0dXJucyAwIHdoZW4gdGhlIHBhcmFtZXRl
ciBMb2NhdGlvbgotICAgIC8vIGlzIG5lZ2F0aXZlLCBldmVuIGlmIHRoZSBzdW0gb2YgT2Zmc2V0
IGFuZCBMb2NhdGlvbiBpcyBpbiByYW5nZS4gVGhpcyBtYXkgY2F1c2UgZXJyb3JzIHdoZW4KLSAg
ICAvLyB0cmFuc2xhdGluZyBHTFNMJ3MgZnVuY3Rpb24gdGV4ZWxGZXRjaE9mZnNldCBpbnRvIHRl
eHR1cmUuTG9hZCwgYXMgaXQgaXMgdmFsaWQgZm9yCi0gICAgLy8gdGV4ZWxGZXRjaE9mZnNldCB0
byB1c2UgbmVnYXRpdmUgdGV4dHVyZSBjb29yZGluYXRlcyBhcyBpdHMgcGFyYW1ldGVyIFAgd2hl
biB0aGUgc3VtIG9mIFAKLSAgICAvLyBhbmQgT2Zmc2V0IGlzIGluIHJhbmdlLiBUbyB3b3JrIGFy
b3VuZCB0aGlzLCB3ZSB0cmFuc2xhdGUgdGV4ZWxGZXRjaE9mZnNldCBpbnRvIHRleGVsRmV0Y2gK
LSAgICAvLyBieSBhZGRpbmcgT2Zmc2V0IGRpcmVjdGx5IHRvIExvY2F0aW9uIGJlZm9yZSByZWFk
aW5nIHRoZSB0ZXh0dXJlLgotICAgIEZlYXR1cmUgcHJlQWRkVGV4ZWxGZXRjaE9mZnNldHMgPSB7
Ci0gICAgICAgICJwcmVfYWRkX3RleGVsX2ZldGNoX29mZnNldHMiLCBGZWF0dXJlQ2F0ZWdvcnk6
OkQzRFdvcmthcm91bmRzLAotICAgICAgICAiSExTTCdzIGZ1bmN0aW9uIHRleHR1cmUuTG9hZCBy
ZXR1cm5zIDAgd2hlbiB0aGUgcGFyYW1ldGVyIExvY2F0aW9uIGlzIG5lZ2F0aXZlLCBldmVuIGlm
ICIKLSAgICAgICAgInRoZSBzdW0gb2YgT2Zmc2V0IGFuZCBMb2NhdGlvbiBpcyBpbiByYW5nZSIs
Ci0gICAgICAgICZtZW1iZXJzfTsKLQotICAgIC8vIE9uIHNvbWUgQU1EIGRyaXZlcnMsIDF4MSBh
bmQgMngyIG1pcHMgb2YgZGVwdGgvc3RlbmNpbCB0ZXh0dXJlcyBhcmVuJ3Qgc2FtcGxlZCBjb3Jy
ZWN0bHkuCi0gICAgLy8gV2UgY2FuIHdvcmsgYXJvdW5kIHRoaXMgYnVnIGJ5IGRvaW5nIGFuIGlu
dGVybmFsIGJsaXQgdG8gYSB0ZW1wb3Jhcnkgc2luZ2xlLWNoYW5uZWwgdGV4dHVyZQotICAgIC8v
IGJlZm9yZSB3ZSBzYW1wbGUuCi0gICAgRmVhdHVyZSBlbXVsYXRlVGlueVN0ZW5jaWxUZXh0dXJl
cyA9IHsKLSAgICAgICAgImVtdWxhdGVfdGlueV9zdGVuY2lsX3RleHR1cmVzIiwgRmVhdHVyZUNh
dGVnb3J5OjpEM0RXb3JrYXJvdW5kcywKLSAgICAgICAgIjF4MSBhbmQgMngyIG1pcHMgb2YgZGVw
dGgvc3RlbmNpbCB0ZXh0dXJlcyBhcmVuJ3Qgc2FtcGxlZCBjb3JyZWN0bHkiLCAmbWVtYmVyc307
Ci0KLSAgICAvLyBJbiBJbnRlbCBkcml2ZXIsIHRoZSBkYXRhIHdpdGggZm9ybWF0IERYR0lfRk9S
TUFUX0I1RzZSNV9VTk9STSB3aWxsIGJlIHBhcnNlZCBpbmNvcnJlY3RseS4KLSAgICAvLyBUaGlz
IHdvcmthcm91ZCB3aWxsIGRpc2FibGUgQjVHNlI1IHN1cHBvcnQgd2hlbiBpdCdzIEludGVsIGRy
aXZlci4gQnkgZGVmYXVsdCwgaXQgd2lsbCB1c2UKLSAgICAvLyBSOEc4QjhBOCBmb3JtYXQuIFRo
aXMgYnVnIGlzIGZpeGVkIGluIHZlcnNpb24gNDUzOSBvbiBJbnRlbCBkcml2ZXJzLgotICAgIC8v
IE9uIG9sZGVyIEFNRCBkcml2ZXJzLCB0aGUgZGF0YSBpbiBEWEdJX0ZPUk1BVF9CNUc2UjVfVU5P
Uk0gYmVjb21lcyBjb3JydXB0ZWQgZm9yIHVua25vd24KLSAgICAvLyByZWFzb25zLgotICAgIEZl
YXR1cmUgZGlzYWJsZUI1RzZSNVN1cHBvcnQgPSB7ImRpc2FibGVfYjVnNnI1X3N1cHBvcnQiLCBG
ZWF0dXJlQ2F0ZWdvcnk6OkQzRFdvcmthcm91bmRzLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIlRleHR1cmVzIHdpdGggdGhlIGZvcm1hdCAiCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiRFhHSV9GT1JNQVRfQjVHNlI1X1VOT1JNIGhhdmUgaW5jb3Jy
ZWN0IGRhdGEiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm1lbWJlcnN9
OwotCi0gICAgLy8gT24gc29tZSBJbnRlbCBkcml2ZXJzLCBldmFsdWF0aW5nIHVuYXJ5IG1pbnVz
IG9wZXJhdG9yIG9uIGludGVnZXIgbWF5IGdldCB3cm9uZyBhbnN3ZXIgaW4KLSAgICAvLyB2ZXJ0
ZXggc2hhZGVycy4gVG8gd29yayBhcm91bmQgdGhpcyBidWcsIHdlIHRyYW5zbGF0ZSAtKGludCkg
aW50byB+KGludCkrMS4KLSAgICAvLyBUaGlzIGRyaXZlciBidWcgaXMgZml4ZWQgaW4gMjAuMTku
MTUuNDYyNC4KLSAgICBGZWF0dXJlIHJld3JpdGVVbmFyeU1pbnVzT3BlcmF0b3IgPSB7Ci0gICAg
ICAgICJyZXdyaXRlX3VuYXJ5X21pbnVzX29wZXJhdG9yIiwgRmVhdHVyZUNhdGVnb3J5OjpEM0RX
b3JrYXJvdW5kcywKLSAgICAgICAgIkV2YWx1YXRpbmcgdW5hcnkgbWludXMgb3BlcmF0b3Igb24g
aW50ZWdlciBtYXkgZ2V0IHdyb25nIGFuc3dlciBpbiB2ZXJ0ZXggc2hhZGVycyIsCi0gICAgICAg
ICZtZW1iZXJzfTsKLQotICAgIC8vIE9uIHNvbWUgSW50ZWwgZHJpdmVycywgdXNpbmcgaXNuYW4o
KSBvbiBoaWdocCBmbG9hdCB3aWxsIGdldCB3cm9uZyBhbnN3ZXIuIFRvIHdvcmsgYXJvdW5kCi0g
ICAgLy8gdGhpcyBidWcsIHdlIHVzZSBhbiBleHByZXNzaW9uIHRvIGVtdWxhdGUgZnVuY3Rpb24g
aXNuYW4oKS4KLSAgICAvLyBUcmFja2luZyBidWc6IGh0dHBzOi8vY3JidWcuY29tLzY1MDU0Nwot
ICAgIC8vIFRoaXMgZHJpdmVyIGJ1ZyBpcyBmaXhlZCBpbiAyMS4yMC4xNi40NTQyLgotICAgIEZl
YXR1cmUgZW11bGF0ZUlzbmFuRmxvYXQgPSB7ImVtdWxhdGVfaXNuYW5fZmxvYXQiLCBGZWF0dXJl
Q2F0ZWdvcnk6OkQzRFdvcmthcm91bmRzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIlVzaW5nIGlzbmFuKCkgb24gaGlnaHAgZmxvYXQgd2lsbCBnZXQgd3JvbmcgYW5zd2VyIiwg
Jm1lbWJlcnMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaHR0cHM6Ly9jcmJ1
Zy5jb20vNjUwNTQ3In07Ci0KLSAgICAvLyBPbiBzb21lIEludGVsIGRyaXZlcnMsIHVzaW5nIGNs
ZWFyKCkgbWF5IG5vdCB0YWtlIGVmZmVjdC4gVG8gd29yayBhcm91bmQgdGhpcyBidWcsIHdlIGNh
bGwKLSAgICAvLyBjbGVhcigpIHR3aWNlIG9uIHRoZXNlIHBsYXRmb3Jtcy4KLSAgICAvLyBUcmFj
a2luZyBidWc6IGh0dHBzOi8vY3JidWcuY29tLzY1NTUzNAotICAgIEZlYXR1cmUgY2FsbENsZWFy
VHdpY2UgPSB7ImNhbGxfY2xlYXJfdHdpY2UiLCBGZWF0dXJlQ2F0ZWdvcnk6OkQzRFdvcmthcm91
bmRzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVzaW5nIGNsZWFyKCkgbWF5IG5v
dCB0YWtlIGVmZmVjdCIsICZtZW1iZXJzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Imh0dHBzOi8vY3JidWcuY29tLzY1NTUzNCJ9OwotCi0gICAgLy8gT24gc29tZSBJbnRlbCBkcml2
ZXJzLCBjb3B5aW5nIGZyb20gc3RhZ2luZyBzdG9yYWdlIHRvIGNvbnN0YW50IGJ1ZmZlciBzdG9y
YWdlIGRvZXMgbm90Ci0gICAgLy8gc2VlbSB0byB3b3JrLiBXb3JrIGFyb3VuZCB0aGlzIGJ5IGtl
ZXBpbmcgc3lzdGVtIG1lbW9yeSBzdG9yYWdlIGFzIGEgY2Fub25pY2FsIHJlZmVyZW5jZQotICAg
IC8vIGZvciBidWZmZXIgZGF0YS4KLSAgICAvLyBEM0QxMS1vbmx5IHdvcmthcm91bmQuIFNlZSBo
dHRwOi8vY3JidWcuY29tLzU5MzAyNC4KLSAgICBGZWF0dXJlIHVzZVN5c3RlbU1lbW9yeUZvckNv
bnN0YW50QnVmZmVycyA9IHsidXNlX3N5c3RlbV9tZW1vcnlfZm9yX2NvbnN0YW50X2J1ZmZlcnMi
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZlYXR1
cmVDYXRlZ29yeTo6RDNEV29ya2Fyb3VuZHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIkNvcHlpbmcgZnJvbSBzdGFnaW5nIHN0b3JhZ2UgdG8gY29u
c3RhbnQgYnVmZmVyICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAic3RvcmFnZSBkb2VzIG5vdCB3b3JrIiwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAmbWVtYmVycywgImh0dHBzOi8vY3JidWcuY29tLzU5
MzAyNCJ9OwotCi0gICAgLy8gVGhpcyB3b3JrYXJvdW5kIGlzIGZvciB0aGUgQU5HTEVfbXVsdGl2
aWV3IGV4dGVuc2lvbi4gSWYgZW5hYmxlZCB0aGUgdmlld3BvcnQgb3IgcmVuZGVyCi0gICAgLy8g
dGFyZ2V0IHNsaWNlIHdpbGwgYmUgc2VsZWN0ZWQgaW4gdGhlIGdlb21ldHJ5IHNoYWRlciBzdGFn
ZS4gVGhlIHdvcmthcm91bmQgZmxhZyBpcyBhZGRlZCB0bwotICAgIC8vIG1ha2UgaXQgcG9zc2li
bGUgdG8gc2VsZWN0IHRoZSBjb2RlIHBhdGggaW4gZW5kMmVuZCBhbmQgcGVyZm9ybWFuY2UgdGVz
dHMuCi0gICAgRmVhdHVyZSBzZWxlY3RWaWV3SW5HZW9tZXRyeVNoYWRlciA9IHsKLSAgICAgICAg
InNlbGVjdF92aWV3X2luX2dlb21ldHJ5X3NoYWRlciIsIEZlYXR1cmVDYXRlZ29yeTo6RDNEV29y
a2Fyb3VuZHMsCi0gICAgICAgICJUaGUgdmlld3BvcnQgb3IgcmVuZGVyIHRhcmdldCBzbGljZSB3
aWxsIGJlIHNlbGVjdGVkIGluIHRoZSBnZW9tZXRyeSBzaGFkZXIgc3RhZ2UgZm9yICIKLSAgICAg
ICAgInRoZSBBTkdMRV9tdWx0aXZpZXcgZXh0ZW5zaW9uIiwKLSAgICAgICAgJm1lbWJlcnN9Owot
Ci0gICAgLy8gV2hlbiByZW5kZXJpbmcgd2l0aCBubyByZW5kZXIgdGFyZ2V0IG9uIEQzRCwgdHdv
IGJ1Z3MgbGVhZCB0byBpbmNvcnJlY3QgYmVoYXZpb3Igb24gSW50ZWwKLSAgICAvLyBkcml2ZXJz
IDwgNDgxNS4gVGhlIHJlbmRlcmluZyBzYW1wbGVzIGFsd2F5cyBwYXNzIG5lZ2xlY3RpbmcgZGlz
Y2FyZCBzdGF0ZW1lbnRzIGluIHBpeGVsCi0gICAgLy8gc2hhZGVyLgotICAgIC8vIDEuIElmIHJl
bmRlcnRhcmdldCBpcyBub3Qgc2V0LCB0aGUgcGl4ZWwgc2hhZGVyIHdpbGwgYmUgcmVjb21waWxl
ZCB0byBkcm9wICdTVl9UQVJHRVQnLgotICAgIC8vIFdoZW4gdXNpbmcgYSBwaXhlbCBzaGFkZXIg
d2l0aCBubyAnU1ZfVEFSR0VUJyBpbiBhIGRyYXcsIHRoZSBwaXhlbHMgYXJlIGFsd2F5cyBnZW5l
cmF0ZWQgZXZlbgotICAgIC8vIGlmIHRoZXkgc2hvdWxkIGJlIGRpc2NhcmQgYnkgJ2Rpc2NhcmQn
IHN0YXRlbWVudHMuCi0gICAgLy8gMi4gSWYgSUQzRDExQmxlbmRTdGF0ZS5SZW5kZXJUYXJnZXRb
XS5SZW5kZXJUYXJnZXRXcml0ZU1hc2sgaXMgMCBhbmQgcmVuZGVydGFyZ2V0IGlzIG5vdCBzZXQs
Ci0gICAgLy8gdGhlbiByZW5kZXJpbmcgc2FtcGxlcyBhbHNvIHBhc3MgbmVnbGVjdGluZyBkaXNj
YXJkIHN0YXRlbWVudHMgaW4gcGl4ZWwgc2hhZGVyLgotICAgIC8vIFNvIHdlIGFkZCBhIG1vY2sg
dGV4dHVyZSBhcyByZW5kZXIgdGFyZ2V0IGluIHN1Y2ggY2FzZS4gU2VlIGh0dHA6Ly9hbmdsZWJ1
Zy5jb20vMjE1MgotICAgIEZlYXR1cmUgYWRkTW9ja1RleHR1cmVOb1JlbmRlclRhcmdldCA9IHsK
LSAgICAgICAgImFkZF9tb2NrX3RleHR1cmVfbm9fcmVuZGVyX3RhcmdldCIsIEZlYXR1cmVDYXRl
Z29yeTo6RDNEV29ya2Fyb3VuZHMsCi0gICAgICAgICJPbiBzb21lIGRyaXZlcnMgd2hlbiByZW5k
ZXJpbmcgd2l0aCBubyByZW5kZXIgdGFyZ2V0LCB0d28gYnVncyBsZWFkIHRvIGluY29ycmVjdCBi
ZWhhdmlvciIsCi0gICAgICAgICZtZW1iZXJzLCAiaHR0cDovL2FuZ2xlYnVnLmNvbS8yMTUyIn07
Ci0KLSAgICAvLyBEb24ndCB1c2UgRDNEIGNvbnN0YW50IHJlZ2lzdGVyIHplcm8gd2hlbiBhbGxv
Y2F0aW5nIHNwYWNlIGZvciB1bmlmb3JtcyBpbiB0aGUgdmVydGV4IHNoYWRlci4KLSAgICAvLyBU
aGlzIGlzIHRhcmdldGVkIHRvIHdvcmsgYXJvdW5kIGEgYnVnIGluIE5WSURJQSBEM0QgZHJpdmVy
IHZlcnNpb24gMzg4LjU5IHdoZXJlIGluIHZlcnkKLSAgICAvLyBzcGVjaWZpYyBjYXNlcyB0aGUg
ZHJpdmVyIHdvdWxkIG5vdCBoYW5kbGUgY29uc3RhbnQgcmVnaXN0ZXIgemVybyBjb3JyZWN0bHku
Ci0gICAgRmVhdHVyZSBza2lwVlNDb25zdGFudFJlZ2lzdGVyWmVybyA9IHsKLSAgICAgICAgInNr
aXBfdnNfY29uc3RhbnRfcmVnaXN0ZXJfemVybyIsIEZlYXR1cmVDYXRlZ29yeTo6RDNEV29ya2Fy
b3VuZHMsCi0gICAgICAgICJJbiBzcGVjaWZpYyBjYXNlcyB0aGUgZHJpdmVyIGRvZXNuJ3QgaGFu
ZGxlIGNvbnN0YW50IHJlZ2lzdGVyIHplcm8gY29ycmVjdGx5IiwgJm1lbWJlcnN9OwotCi0gICAg
Ly8gRm9yY2VzIHRoZSB2YWx1ZSByZXR1cm5lZCBmcm9tIGFuIGF0b21pYyBvcGVyYXRpb25zIHRv
IGJlIGFsd2F5cyBiZSByZXNvbHZlZC4gVGhpcyBpcwotICAgIC8vIHRhcmdldGVkIHRvIHdvcmth
cm91bmQgYSBidWcgaW4gTlZJRElBIEQzRCBkcml2ZXIgd2hlcmUgdGhlIHJldHVybiB2YWx1ZSBm
cm9tCi0gICAgLy8gUldCeXRlQWRkcmVzc0J1ZmZlci5JbnRlcmxvY2tlZEFkZCBkb2VzIG5vdCBn
ZXQgcmVzb2x2ZWQgd2hlbiB1c2VkIGluIHRoZSAueXp3IGNvbXBvbmVudHMgb2YKLSAgICAvLyBh
IFJXQnl0ZUFkZHJlc3NCdWZmZXIuU3RvcmUgb3BlcmF0aW9uLiBPbmx5IGhhcyBhbiBlZmZlY3Qg
b24gSExTTCB0cmFuc2xhdGlvbi4KLSAgICAvLyBodHRwOi8vYW5nbGVidWcuY29tLzMyNDYKLSAg
ICBGZWF0dXJlIGZvcmNlQXRvbWljVmFsdWVSZXNvbHV0aW9uID0gewotICAgICAgICAiZm9yY2Vf
YXRvbWljX3ZhbHVlX3Jlc29sdXRpb24iLCBGZWF0dXJlQ2F0ZWdvcnk6OkQzRFdvcmthcm91bmRz
LAotICAgICAgICAiT24gc29tZSBkcml2ZXJzIHRoZSByZXR1cm4gdmFsdWUgZnJvbSBSV0J5dGVB
ZGRyZXNzQnVmZmVyLkludGVybG9ja2VkQWRkIGRvZXMgbm90IHJlc29sdmUgIgotICAgICAgICAi
d2hlbiB1c2VkIGluIHRoZSAueXp3IGNvbXBvbmVudHMgb2YgYSBSV0J5dGVBZGRyZXNzQnVmZmVy
LlN0b3JlIG9wZXJhdGlvbiIsCi0gICAgICAgICZtZW1iZXJzLCAiaHR0cDovL2FuZ2xlYnVnLmNv
bS8zMjQ2In07Ci0KLSAgICAvLyBNYXRjaCBjaHJvbWl1bSdzIHJvYnVzdCByZXNvdXJjZSBpbml0
IGJlaGF2aW91ciBieSBhbHdheXMgcHJlZmVyaW5nIHRvIHVwbG9hZCB0ZXh0dXJlIGRhdGEKLSAg
ICAvLyBpbnN0ZWFkIG9mIGNsZWFyaW5nLiBDbGVhciBjYWxscyBoYXZlIGJlZW4gb2JzZXJ2ZWQg
dG8gY2F1c2UgdGV4dHVyZSBjb3JydXB0aW9uIGZvciBzb21lCi0gICAgLy8gZm9ybWF0cy4KLSAg
ICBGZWF0dXJlIGFsbG93Q2xlYXJGb3JSb2J1c3RSZXNvdXJjZUluaXQgPSB7Ci0gICAgICAgICJh
bGxvd19jbGVhcl9mb3Jfcm9idXN0X3Jlc291cmNlX2luaXQiLCBGZWF0dXJlQ2F0ZWdvcnk6OkQz
RFdvcmthcm91bmRzLAotICAgICAgICAiU29tZSBkcml2ZXJzIGNvcnJ1cHQgdGV4dHVyZSBkYXRh
IHdoZW4gY2xlYXJpbmcgZm9yIHJvYnVzdCByZXNvdXJjZSBpbml0aWFsaXphdGlvbi4iLAotICAg
ICAgICAmbWVtYmVycywgImh0dHA6Ly9jcmJ1Zy5jb20vOTQxNjIwIn07Ci0KLSAgICAvLyBBbGxv
dyB0cmFuc2xhdGluZyB1bmlmb3JtIGJsb2NrIHRvIFN0cnVjdHVyZWRCdWZmZXIuIFRoaXMgaXMg
dGFyZ2V0ZWQgdG8gd29yayBhcm91bmQgYSBzbG93Ci0gICAgLy8gZnhjIGNvbXBpbGUgcGVyZm9y
bWFuY2UgaXNzdWUgd2l0aCBkeW5hbWljIHVuaWZvcm0gaW5kZXhpbmcuIGh0dHA6Ly9hbmdsZWJ1
Zy5jb20vMzY4MgotICAgIEZlYXR1cmUgYWxsb3dUcmFuc2xhdGVVbmlmb3JtQmxvY2tUb1N0cnVj
dHVyZWRCdWZmZXIgPSB7Ci0gICAgICAgICJhbGxvd190cmFuc2xhdGVfdW5pZm9ybV9ibG9ja190
b19zdHJ1Y3R1cmVkX2J1ZmZlciIsIEZlYXR1cmVDYXRlZ29yeTo6RDNEV29ya2Fyb3VuZHMsCi0g
ICAgICAgICJUaGVyZSBpcyBhIHNsb3cgZnhjIGNvbXBpbGUgcGVyZm9ybWFuY2UgaXNzdWUgd2l0
aCBkeW5hbWljIHVuaWZvcm0gaW5kZXhpbmcgaWYgIgotICAgICAgICAidHJhbnNsYXRpbmcgYSB1
bmlmb3JtIGJsb2NrIHdpdGggYSBsYXJnZSBhcnJheSBtZW1iZXIgdG8gY2J1ZmZlci4iLAotICAg
ICAgICAmbWVtYmVycywgImh0dHA6Ly9hbmdsZWJ1Zy5jb20vMzY4MiJ9OwotCi0gICAgRmVhdHVy
ZSBhbGxvd0VTM09uRkwxMF8wID0geyJhbGxvd0VTM09uRkwxMF8wIiwgRmVhdHVyZUNhdGVnb3J5
OjpEM0RXb3JrYXJvdW5kcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkFsbG93
IEVTMyBvbiAxMC4wIGRldmljZXMiLCAmbWVtYmVyc307Ci19OwotCi1pbmxpbmUgRmVhdHVyZXNE
M0Q6OkZlYXR1cmVzRDNEKCkgID0gZGVmYXVsdDsKLWlubGluZSBGZWF0dXJlc0QzRDo6fkZlYXR1
cmVzRDNEKCkgPSBkZWZhdWx0OwotCi19ICAvLyBuYW1lc3BhY2UgYW5nbGUKLQotI2VuZGlmICAv
LyBBTkdMRV9QTEFURk9STV9GRUFUVVJFU0QzRF9IXwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJk
UGFydHkvQU5HTEUvaW5jbHVkZS9wbGF0Zm9ybS9GZWF0dXJlc0QzRF9hdXRvZ2VuLmggYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9BTkdMRS9pbmNsdWRlL3BsYXRmb3JtL0ZlYXR1cmVzRDNEX2F1dG9nZW4u
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4zMzAxNWY5ZWFkNDRiNGJkNzlkM2RjMjkwMzA3N2ZjYWY1OTllZTdhCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvaW5jbHVkZS9wbGF0Zm9y
bS9GZWF0dXJlc0QzRF9hdXRvZ2VuLmgKQEAgLTAsMCArMSwxNzQgQEAKKy8vIEdFTkVSQVRFRCBG
SUxFIC0gRE8gTk9UIEVESVQuCisvLyBHZW5lcmF0ZWQgYnkgZ2VuX2ZlYXR1cmVzLnB5IHVzaW5n
IGRhdGEgZnJvbSBkM2RfZmVhdHVyZXMuanNvbi4KKy8vCisvLyBDb3B5cmlnaHQgMjAyMiBUaGUg
QU5HTEUgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVXNlIG9mIHRo
aXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNh
biBiZQorLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy8vCisvLyBGZWF0dXJlc0QzRF9h
dXRvZ2VuLmg6IEZlYXR1cmVzIGFuZCB3b3JrYXJvdW5kcyBmb3IgRDNEIGRyaXZlciBidWdzIGFu
ZCBvdGhlciBpc3N1ZXMuCisKKyNpZm5kZWYgQU5HTEVfUExBVEZPUk1fRkVBVFVSRVNEM0RfSF8K
KyNkZWZpbmUgQU5HTEVfUExBVEZPUk1fRkVBVFVSRVNEM0RfSF8KKworI2luY2x1ZGUgInBsYXRm
b3JtL0ZlYXR1cmUuaCIKKworbmFtZXNwYWNlIGFuZ2xlCit7CisKK3N0cnVjdCBGZWF0dXJlc0Qz
RCA6IEZlYXR1cmVTZXRCYXNlCit7CisgICAgRmVhdHVyZXNEM0QoKTsKKyAgICB+RmVhdHVyZXNE
M0QoKTsKKworICAgIEZlYXR1cmVJbmZvIG1ydFBlcmZXb3JrYXJvdW5kID0geworICAgICAgICAi
bXJ0UGVyZldvcmthcm91bmQiLAorICAgICAgICBGZWF0dXJlQ2F0ZWdvcnk6OkQzRFdvcmthcm91
bmRzLAorICAgICAgICAiU29tZSBkcml2ZXJzIGhhdmUgYSBidWcgd2hlcmUgdGhleSBpZ25vcmUg
bnVsbCByZW5kZXIgdGFyZ2V0cyIsCisgICAgICAgICZtZW1iZXJzLAorICAgIH07CisKKyAgICBG
ZWF0dXJlSW5mbyBzZXREYXRhRmFzdGVyVGhhbkltYWdlVXBsb2FkID0geworICAgICAgICAic2V0
RGF0YUZhc3RlclRoYW5JbWFnZVVwbG9hZCIsCisgICAgICAgIEZlYXR1cmVDYXRlZ29yeTo6RDNE
V29ya2Fyb3VuZHMsCisgICAgICAgICJTZXQgZGF0YSBmYXN0ZXIgdGhhbiBpbWFnZSB1cGxvYWQi
LAorICAgICAgICAmbWVtYmVycywKKyAgICB9OworCisgICAgRmVhdHVyZUluZm8gemVyb01heExv
ZFdvcmthcm91bmQgPSB7CisgICAgICAgICJ6ZXJvTWF4TG9kV29ya2Fyb3VuZCIsCisgICAgICAg
IEZlYXR1cmVDYXRlZ29yeTo6RDNEV29ya2Fyb3VuZHMsCisgICAgICAgICJNaXNzaW5nIGFuIG9w
dGlvbiB0byBkaXNhYmxlIG1pcG1hcHMgb24gYSBtaXBtYXBwZWQgdGV4dHVyZSIsCisgICAgICAg
ICZtZW1iZXJzLAorICAgIH07CisKKyAgICBGZWF0dXJlSW5mbyB1c2VJbnN0YW5jZWRQb2ludFNw
cml0ZUVtdWxhdGlvbiA9IHsKKyAgICAgICAgInVzZUluc3RhbmNlZFBvaW50U3ByaXRlRW11bGF0
aW9uIiwKKyAgICAgICAgRmVhdHVyZUNhdGVnb3J5OjpEM0RXb3JrYXJvdW5kcywKKyAgICAgICAg
IlNvbWUgRDNEMTEgcmVuZGVyZXJzIGRvIG5vdCBzdXBwb3J0IGdlb21ldHJ5IHNoYWRlcnMgZm9y
IHBvaW50c3ByaXRlIGVtdWxhdGlvbiIsCisgICAgICAgICZtZW1iZXJzLAorICAgIH07CisKKyAg
ICBGZWF0dXJlSW5mbyBkZXB0aFN0ZW5jaWxCbGl0RXh0cmFDb3B5ID0geworICAgICAgICAiZGVw
dGhTdGVuY2lsQmxpdEV4dHJhQ29weSIsIEZlYXR1cmVDYXRlZ29yeTo6RDNEV29ya2Fyb3VuZHMs
CisgICAgICAgICJCdWcgaW4gc29tZSBkcml2ZXJzIHRyaWdnZXJzIGEgVERSIHdoZW4gdXNpbmcg
Q29weVN1YnJlc291cmNlUmVnaW9uIGZyb20gYSBzdGFnaW5nICIKKyAgICAgICAgInRleHR1cmUg
dG8gYSBkZXB0aC9zdGVuY2lsIiwKKyAgICAgICAgJm1lbWJlcnMsICJodHRwOi8vYW5nbGVidWcu
Y29tLzE0NTIifTsKKworICAgIEZlYXR1cmVJbmZvIGV4cGFuZEludGVnZXJQb3dFeHByZXNzaW9u
cyA9IHsKKyAgICAgICAgImV4cGFuZEludGVnZXJQb3dFeHByZXNzaW9ucyIsCisgICAgICAgIEZl
YXR1cmVDYXRlZ29yeTo6RDNEV29ya2Fyb3VuZHMsCisgICAgICAgICJUaGUgSExTTCBvcHRpbWl6
ZXIgaGFzIGEgYnVnIHdpdGggb3B0aW1pemluZyAncG93JyBpbiBjZXJ0YWluIGludGVnZXItdmFs
dWVkIGV4cHJlc3Npb25zIiwKKyAgICAgICAgJm1lbWJlcnMsCisgICAgfTsKKworICAgIEZlYXR1
cmVJbmZvIGZsdXNoQWZ0ZXJFbmRpbmdUcmFuc2Zvcm1GZWVkYmFjayA9IHsKKyAgICAgICAgImZs
dXNoQWZ0ZXJFbmRpbmdUcmFuc2Zvcm1GZWVkYmFjayIsCisgICAgICAgIEZlYXR1cmVDYXRlZ29y
eTo6RDNEV29ya2Fyb3VuZHMsCisgICAgICAgICJTb21lIGRyaXZlcnMgc29tZXRpbWVzIHdyaXRl
IG91dC1vZi1vcmRlciByZXN1bHRzIHRvIFN0cmVhbU91dCBidWZmZXJzIHdoZW4gdHJhbnNmb3Jt
ICIKKyAgICAgICAgImZlZWRiYWNrIGlzIHVzZWQgdG8gcmVwZWF0ZWRseSB3cml0ZSB0byB0aGUg
c2FtZSBidWZmZXIgcG9zaXRpb25zIiwKKyAgICAgICAgJm1lbWJlcnMsCisgICAgfTsKKworICAg
IEZlYXR1cmVJbmZvIGdldERpbWVuc2lvbnNJZ25vcmVzQmFzZUxldmVsID0geworICAgICAgICAi
Z2V0RGltZW5zaW9uc0lnbm9yZXNCYXNlTGV2ZWwiLAorICAgICAgICBGZWF0dXJlQ2F0ZWdvcnk6
OkQzRFdvcmthcm91bmRzLAorICAgICAgICAiU29tZSBkcml2ZXJzIGRvIG5vdCB0YWtlIGludG8g
YWNjb3VudCB0aGUgYmFzZSBsZXZlbCBvZiB0aGUgIgorICAgICAgICAidGV4dHVyZSBpbiB0aGUg
cmVzdWx0cyBvZiB0aGUgSExTTCBHZXREaW1lbnNpb25zIGJ1aWx0aW4iLAorICAgICAgICAmbWVt
YmVycywKKyAgICB9OworCisgICAgRmVhdHVyZUluZm8gcHJlQWRkVGV4ZWxGZXRjaE9mZnNldHMg
PSB7CisgICAgICAgICJwcmVBZGRUZXhlbEZldGNoT2Zmc2V0cyIsCisgICAgICAgIEZlYXR1cmVD
YXRlZ29yeTo6RDNEV29ya2Fyb3VuZHMsCisgICAgICAgICJITFNMJ3MgZnVuY3Rpb24gdGV4dHVy
ZS5Mb2FkIHJldHVybnMgMCB3aGVuIHRoZSBwYXJhbWV0ZXIgTG9jYXRpb24gaXMgbmVnYXRpdmUs
IGV2ZW4gaWYgIgorICAgICAgICAidGhlIHN1bSBvZiBPZmZzZXQgYW5kIExvY2F0aW9uIGlzIGlu
IHJhbmdlIiwKKyAgICAgICAgJm1lbWJlcnMsCisgICAgfTsKKworICAgIEZlYXR1cmVJbmZvIGVt
dWxhdGVUaW55U3RlbmNpbFRleHR1cmVzID0geworICAgICAgICAiZW11bGF0ZVRpbnlTdGVuY2ls
VGV4dHVyZXMiLAorICAgICAgICBGZWF0dXJlQ2F0ZWdvcnk6OkQzRFdvcmthcm91bmRzLAorICAg
ICAgICAiMXgxIGFuZCAyeDIgbWlwcyBvZiBkZXB0aC9zdGVuY2lsIHRleHR1cmVzIGFyZW4ndCBz
YW1wbGVkIGNvcnJlY3RseSIsCisgICAgICAgICZtZW1iZXJzLAorICAgIH07CisKKyAgICBGZWF0
dXJlSW5mbyBkaXNhYmxlQjVHNlI1U3VwcG9ydCA9IHsKKyAgICAgICAgImRpc2FibGVCNUc2UjVT
dXBwb3J0IiwKKyAgICAgICAgRmVhdHVyZUNhdGVnb3J5OjpEM0RXb3JrYXJvdW5kcywKKyAgICAg
ICAgIlRleHR1cmVzIHdpdGggdGhlIGZvcm1hdCAiCisgICAgICAgICJEWEdJX0ZPUk1BVF9CNUc2
UjVfVU5PUk0gaGF2ZSBpbmNvcnJlY3QgZGF0YSIsCisgICAgICAgICZtZW1iZXJzLAorICAgIH07
CisKKyAgICBGZWF0dXJlSW5mbyByZXdyaXRlVW5hcnlNaW51c09wZXJhdG9yID0geworICAgICAg
ICAicmV3cml0ZVVuYXJ5TWludXNPcGVyYXRvciIsCisgICAgICAgIEZlYXR1cmVDYXRlZ29yeTo6
RDNEV29ya2Fyb3VuZHMsCisgICAgICAgICJFdmFsdWF0aW5nIHVuYXJ5IG1pbnVzIG9wZXJhdG9y
IG9uIGludGVnZXIgbWF5IGdldCB3cm9uZyBhbnN3ZXIgaW4gdmVydGV4IHNoYWRlcnMiLAorICAg
ICAgICAmbWVtYmVycywKKyAgICB9OworCisgICAgRmVhdHVyZUluZm8gZW11bGF0ZUlzbmFuRmxv
YXQgPSB7ImVtdWxhdGVJc25hbkZsb2F0IiwgRmVhdHVyZUNhdGVnb3J5OjpEM0RXb3JrYXJvdW5k
cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVXNpbmcgaXNuYW4oKSBv
biBoaWdocCBmbG9hdCB3aWxsIGdldCB3cm9uZyBhbnN3ZXIiLCAmbWVtYmVycywKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaHR0cHM6Ly9jcmJ1Zy5jb20vNjUwNTQ3In07
CisKKyAgICBGZWF0dXJlSW5mbyBjYWxsQ2xlYXJUd2ljZSA9IHsiY2FsbENsZWFyVHdpY2UiLCBG
ZWF0dXJlQ2F0ZWdvcnk6OkQzRFdvcmthcm91bmRzLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJVc2luZyBjbGVhcigpIG1heSBub3QgdGFrZSBlZmZlY3QiLCAmbWVtYmVycywK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaHR0cHM6Ly9jcmJ1Zy5jb20vNjU1
NTM0In07CisKKyAgICBGZWF0dXJlSW5mbyB1c2VTeXN0ZW1NZW1vcnlGb3JDb25zdGFudEJ1ZmZl
cnMgPSB7CisgICAgICAgICJ1c2VTeXN0ZW1NZW1vcnlGb3JDb25zdGFudEJ1ZmZlcnMiLCBGZWF0
dXJlQ2F0ZWdvcnk6OkQzRFdvcmthcm91bmRzLAorICAgICAgICAiQ29weWluZyBmcm9tIHN0YWdp
bmcgc3RvcmFnZSB0byBjb25zdGFudCBidWZmZXIgIgorICAgICAgICAic3RvcmFnZSBkb2VzIG5v
dCB3b3JrIiwKKyAgICAgICAgJm1lbWJlcnMsICJodHRwczovL2NyYnVnLmNvbS81OTMwMjQifTsK
KworICAgIEZlYXR1cmVJbmZvIHNlbGVjdFZpZXdJbkdlb21ldHJ5U2hhZGVyID0geworICAgICAg
ICAic2VsZWN0Vmlld0luR2VvbWV0cnlTaGFkZXIiLAorICAgICAgICBGZWF0dXJlQ2F0ZWdvcnk6
OkQzRFdvcmthcm91bmRzLAorICAgICAgICAiVGhlIHZpZXdwb3J0IG9yIHJlbmRlciB0YXJnZXQg
c2xpY2Ugd2lsbCBiZSBzZWxlY3RlZCBpbiB0aGUgZ2VvbWV0cnkgc2hhZGVyIHN0YWdlIGZvciAi
CisgICAgICAgICJ0aGUgQU5HTEVfbXVsdGl2aWV3IGV4dGVuc2lvbiIsCisgICAgICAgICZtZW1i
ZXJzLAorICAgIH07CisKKyAgICBGZWF0dXJlSW5mbyBhZGRNb2NrVGV4dHVyZU5vUmVuZGVyVGFy
Z2V0ID0geworICAgICAgICAiYWRkTW9ja1RleHR1cmVOb1JlbmRlclRhcmdldCIsIEZlYXR1cmVD
YXRlZ29yeTo6RDNEV29ya2Fyb3VuZHMsCisgICAgICAgICJPbiBzb21lIGRyaXZlcnMgd2hlbiBy
ZW5kZXJpbmcgd2l0aCBubyByZW5kZXIgdGFyZ2V0LCB0d28gYnVncyBsZWFkIHRvIGluY29ycmVj
dCBiZWhhdmlvciIsCisgICAgICAgICZtZW1iZXJzLCAiaHR0cDovL2FuZ2xlYnVnLmNvbS8yMTUy
In07CisKKyAgICBGZWF0dXJlSW5mbyBza2lwVlNDb25zdGFudFJlZ2lzdGVyWmVybyA9IHsKKyAg
ICAgICAgInNraXBWU0NvbnN0YW50UmVnaXN0ZXJaZXJvIiwKKyAgICAgICAgRmVhdHVyZUNhdGVn
b3J5OjpEM0RXb3JrYXJvdW5kcywKKyAgICAgICAgIkluIHNwZWNpZmljIGNhc2VzIHRoZSBkcml2
ZXIgZG9lc24ndCBoYW5kbGUgY29uc3RhbnQgcmVnaXN0ZXIgemVybyBjb3JyZWN0bHkiLAorICAg
ICAgICAmbWVtYmVycywKKyAgICB9OworCisgICAgRmVhdHVyZUluZm8gZm9yY2VBdG9taWNWYWx1
ZVJlc29sdXRpb24gPSB7CisgICAgICAgICJmb3JjZUF0b21pY1ZhbHVlUmVzb2x1dGlvbiIsIEZl
YXR1cmVDYXRlZ29yeTo6RDNEV29ya2Fyb3VuZHMsCisgICAgICAgICJPbiBzb21lIGRyaXZlcnMg
dGhlIHJldHVybiB2YWx1ZSBmcm9tIFJXQnl0ZUFkZHJlc3NCdWZmZXIuSW50ZXJsb2NrZWRBZGQg
ZG9lcyBub3QgcmVzb2x2ZSAiCisgICAgICAgICJ3aGVuIHVzZWQgaW4gdGhlIC55encgY29tcG9u
ZW50cyBvZiBhIFJXQnl0ZUFkZHJlc3NCdWZmZXIuU3RvcmUgb3BlcmF0aW9uIiwKKyAgICAgICAg
Jm1lbWJlcnMsICJodHRwOi8vYW5nbGVidWcuY29tLzMyNDYifTsKKworICAgIEZlYXR1cmVJbmZv
IGFsbG93Q2xlYXJGb3JSb2J1c3RSZXNvdXJjZUluaXQgPSB7CisgICAgICAgICJhbGxvd0NsZWFy
Rm9yUm9idXN0UmVzb3VyY2VJbml0IiwgRmVhdHVyZUNhdGVnb3J5OjpEM0RXb3JrYXJvdW5kcywK
KyAgICAgICAgIlNvbWUgZHJpdmVycyBjb3JydXB0IHRleHR1cmUgZGF0YSB3aGVuIGNsZWFyaW5n
IGZvciByb2J1c3QgcmVzb3VyY2UgaW5pdGlhbGl6YXRpb24uIiwKKyAgICAgICAgJm1lbWJlcnMs
ICJodHRwOi8vY3JidWcuY29tLzk0MTYyMCJ9OworCisgICAgRmVhdHVyZUluZm8gYWxsb3dUcmFu
c2xhdGVVbmlmb3JtQmxvY2tUb1N0cnVjdHVyZWRCdWZmZXIgPSB7CisgICAgICAgICJhbGxvd1Ry
YW5zbGF0ZVVuaWZvcm1CbG9ja1RvU3RydWN0dXJlZEJ1ZmZlciIsIEZlYXR1cmVDYXRlZ29yeTo6
RDNEV29ya2Fyb3VuZHMsCisgICAgICAgICJUaGVyZSBpcyBhIHNsb3cgZnhjIGNvbXBpbGUgcGVy
Zm9ybWFuY2UgaXNzdWUgd2l0aCBkeW5hbWljIHVuaWZvcm0gaW5kZXhpbmcgaWYgIgorICAgICAg
ICAidHJhbnNsYXRpbmcgYSB1bmlmb3JtIGJsb2NrIHdpdGggYSBsYXJnZSBhcnJheSBtZW1iZXIg
dG8gY2J1ZmZlci4iLAorICAgICAgICAmbWVtYmVycywgImh0dHA6Ly9hbmdsZWJ1Zy5jb20vMzY4
MiJ9OworCisgICAgRmVhdHVyZUluZm8gYWxsb3dFUzNPbkZMMTAwID0geworICAgICAgICAiYWxs
b3dFUzNPbkZMMTAwIiwKKyAgICAgICAgRmVhdHVyZUNhdGVnb3J5OjpEM0RXb3JrYXJvdW5kcywK
KyAgICAgICAgIkFsbG93IEVTMyBvbiAxMC4wIGRldmljZXMiLAorICAgICAgICAmbWVtYmVycywK
KyAgICB9OworfTsKKworaW5saW5lIEZlYXR1cmVzRDNEOjpGZWF0dXJlc0QzRCgpICA9IGRlZmF1
bHQ7CitpbmxpbmUgRmVhdHVyZXNEM0Q6On5GZWF0dXJlc0QzRCgpID0gZGVmYXVsdDsKKworfSAg
Ly8gbmFtZXNwYWNlIGFuZ2xlCisKKyNlbmRpZiAgLy8gQU5HTEVfUExBVEZPUk1fRkVBVFVSRVNE
M0RfSF8KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL2luY2x1ZGUvcGxhdGZv
cm0vRmVhdHVyZXNHTC5oIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvaW5jbHVkZS9wbGF0Zm9y
bS9GZWF0dXJlc0dMLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ3N2I1YzY1NTQ4
OWU5MDczM2IzMWU0MGQyN2MxMThiMWViMTQyODUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvaW5jbHVkZS9wbGF0
Zm9ybS9GZWF0dXJlc0dMLmgKKysrIC9kZXYvbnVsbApAQCAtMSw1NjkgKzAsMCBAQAotLy8KLS8v
IENvcHlyaWdodCAyMDE1IFRoZSBBTkdMRSBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0vLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1z
dHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi0vLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgot
Ly8KLQotLy8gRmVhdHVyZXNHTC5oOiBGZWF0dXJlcyBhbmQgd29ya2Fyb3VuZHMgZm9yIEdMIGRy
aXZlciBidWdzIGFuZCBvdGhlciBpc3N1ZXMuCi0KLSNpZm5kZWYgQU5HTEVfUExBVEZPUk1fRkVB
VFVSRVNHTF9IXwotI2RlZmluZSBBTkdMRV9QTEFURk9STV9GRUFUVVJFU0dMX0hfCi0KLSNpbmNs
dWRlICJwbGF0Zm9ybS9GZWF0dXJlLmgiCi0KLW5hbWVzcGFjZSBhbmdsZQotewotCi1zdHJ1Y3Qg
RmVhdHVyZXNHTCA6IEZlYXR1cmVTZXRCYXNlCi17Ci0gICAgRmVhdHVyZXNHTCgpOwotICAgIH5G
ZWF0dXJlc0dMKCk7Ci0KLSAgICAvLyBXaGVuIHdyaXRpbmcgYSBmbG9hdCB0byBhIG5vcm1hbGl6
ZWQgaW50ZWdlciBmcmFtZWJ1ZmZlciwgZGVza3RvcCBPcGVuR0wgaXMgYWxsb3dlZCB0byB3cml0
ZQotICAgIC8vIG9uZSBvZiB0aGUgdHdvIGNsb3Nlc3Qgbm9ybWFsaXplZCBpbnRlZ2VyIHJlcHJl
c2VudGF0aW9ucyAoYWx0aG91Z2ggcm91bmQgdG8gbmVhcmVzdCBpcwotICAgIC8vIHByZWZlcnJl
ZCkgKHNlZSBzZWN0aW9uIDIuMy41LjIgb2YgdGhlIEdMIDQuNSBjb3JlIHNwZWNpZmljYXRpb24p
LiBPcGVuR0wgRVMgcmVxdWlyZXMgdGhhdAotICAgIC8vIHJvdW5kLXRvLW5lYXJlc3QgaXMgdXNl
ZCAoc2VlICJDb252ZXJzaW9uIGZyb20gRmxvYXRpbmctUG9pbnQgdG8gRnJhbWVidWZmZXIgRml4
ZWQtUG9pbnQiIGluCi0gICAgLy8gc2VjdGlvbiAyLjEuMiBvZiB0aGUgT3BlbkdMIEVTIDIuMC4y
NSBzcGVjKS4gIFRoaXMgaXNzdWUgb25seSBzaG93cyB1cCBvbiBBTUQgZHJpdmVycyBvbgotICAg
IC8vIGZyYW1lYnVmZmVyIGZvcm1hdHMgdGhhdCBoYXZlIDEtYml0IGFscGhhLCB3b3JrIGFyb3Vu
ZCB0aGlzIGJ5IHVzaW5nIGhpZ2hlciBwcmVjaXNpb24gZm9ybWF0cwotICAgIC8vIGluc3RlYWQu
Ci0gICAgRmVhdHVyZSBhdm9pZDFCaXRBbHBoYVRleHR1cmVGb3JtYXRzID0geyJhdm9pZF8xX2Jp
dF9hbHBoYV90ZXh0dXJlX2Zvcm1hdHMiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBGZWF0dXJlQ2F0ZWdvcnk6Ok9wZW5HTFdvcmthcm91bmRzLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSXNzdWUgd2l0aCAxLWJpdCBh
bHBoYSBmcmFtZWJ1ZmZlciBmb3JtYXRzIiwgJm1lbWJlcnN9OwotCi0gICAgLy8gT24gc29tZSBv
bGRlciBJbnRlbCBkcml2ZXJzLCBHTF9SR0JBNCBpcyBub3QgY29sb3IgcmVuZGVyYWJsZSwgZ2xD
aGVja0ZyYW1lYnVmZmVyU3RhdHVzCi0gICAgLy8gcmV0dXJucyBHTF9GUkFNRUJVRkZFUl9VTlNV
UFBPUlRFRC4gV29yayBhcm91bmQgdGhpcyBieSB1c2luZyBhIGtub3duIGNvbG9yLXJlbmRlcmFi
bGUKLSAgICAvLyBmb3JtYXQuCi0gICAgRmVhdHVyZSByZ2JhNElzTm90U3VwcG9ydGVkRm9yQ29s
b3JSZW5kZXJpbmcgPSB7InJnYmE0X2lzX25vdF9zdXBwb3J0ZWRfZm9yX2NvbG9yX3JlbmRlcmlu
ZyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
RmVhdHVyZUNhdGVnb3J5OjpPcGVuR0xXb3JrYXJvdW5kcywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiR0xfUkdCQTQgaXMgbm90IGNvbG9yIHJl
bmRlcmFibGUiLCAmbWVtYmVyc307Ci0KLSAgICAvLyBOZXdlciBJbnRlbCBHUFVzIG5hdGl2ZWx5
IHN1cHBvcnQgRVRDMi9FQUMgY29tcHJlc3NlZCB0ZXh0dXJlIGZvcm1hdHMuCi0gICAgRmVhdHVy
ZSBhbGxvd0V0Y0Zvcm1hdHMgPSB7ImFsbG93X2V0Y19mb3JtYXRzIiwgRmVhdHVyZUNhdGVnb3J5
OjpPcGVuR0xXb3JrYXJvdW5kcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRW5h
YmxlIEVUQzIvRUFDIG9uIGRlc2t0b3AgT3BlbkdMIiwgJm1lbWJlcnN9OwotCi0gICAgLy8gV2hl
biBjbGVhcmluZyBhIGZyYW1lYnVmZmVyIG9uIEludGVsIG9yIEFNRCBkcml2ZXJzLCB3aGVuIEdM
X0ZSQU1FQlVGRkVSX1NSR0IgaXMgZW5hYmxlZCwgdGhlCi0gICAgLy8gZHJpdmVyIGNsZWFycyB0
byB0aGUgbGluZWFyaXplZCBjbGVhciBjb2xvciBkZXNwaXRlIHRoZSBmcmFtZWJ1ZmZlciBub3Qg
c3VwcG9ydGluZyBTUkdCCi0gICAgLy8gYmxlbmRpbmcuICBJdCBvbmx5IHNlZW1zIHRvIGRvIHRo
aXMgd2hlbiB0aGUgZnJhbWVidWZmZXIgaGFzIG9ubHkgbGluZWFyIGF0dGFjaG1lbnRzLCBtaXhl
ZAotICAgIC8vIGF0dGFjaG1lbnRzIGFwcGVhciB0byBnZXQgdGhlIGNvcnJlY3QgY2xlYXIgY29s
b3IuCi0gICAgRmVhdHVyZSBkb2VzU1JHQkNsZWFyc09uTGluZWFyRnJhbWVidWZmZXJBdHRhY2ht
ZW50cyA9IHsKLSAgICAgICAgImRvZXNfc3JnYl9jbGVhcnNfb25fbGluZWFyX2ZyYW1lYnVmZmVy
X2F0dGFjaG1lbnRzIiwgRmVhdHVyZUNhdGVnb3J5OjpPcGVuR0xXb3JrYXJvdW5kcywKLSAgICAg
ICAgIklzc3VlIGNsZWFyaW5nIGZyYW1lYnVmZmVycyB3aXRoIGxpbmVhciBhdHRhY2htZW50cyB3
aGVuIEdMX0ZSQU1FQlVGRkVSX1NSR0IgaXMgZW5hYmxlZCIsCi0gICAgICAgICZtZW1iZXJzfTsK
LQotICAgIC8vIE9uIE1hYyBzb21lIEdMU0wgY29uc3RydWN0cyBpbnZvbHZpbmcgZG8td2hpbGUg
bG9vcHMgY2F1c2UgR1BVIGhhbmdzLCBzdWNoIGFzIHRoZSBmb2xsb3dpbmc6Ci0gICAgLy8gIGlu
dCBpID0gMTsKLSAgICAvLyAgZG8gewotICAgIC8vICAgICAgaSAtLTsKLSAgICAvLyAgICAgIGNv
bnRpbnVlOwotICAgIC8vICB9IHdoaWxlIChpID4gMCkKLSAgICAvLyBXb3JrIGFyb3VuZCB0aGlz
IGJ5IHJld3JpdGluZyB0aGUgZG8td2hpbGUgdG8gdXNlIGFub3RoZXIgR0xTTCBjb25zdHJ1Y3Qg
KGJsb2NrICsgd2hpbGUpCi0gICAgRmVhdHVyZSBkb1doaWxlR0xTTENhdXNlc0dQVUhhbmcgPSB7
Ci0gICAgICAgICJkb193aGlsZV9nbHNsX2NhdXNlc19ncHVfaGFuZyIsIEZlYXR1cmVDYXRlZ29y
eTo6T3BlbkdMV29ya2Fyb3VuZHMsCi0gICAgICAgICJTb21lIEdMU0wgY29uc3RydWN0cyBpbnZv
bHZpbmcgZG8td2hpbGUgbG9vcHMgY2F1c2UgR1BVIGhhbmdzIiwgJm1lbWJlcnMsCi0gICAgICAg
ICJodHRwOi8vY3JidWcuY29tLzY0NDY2OSJ9OwotCi0gICAgLy8gT24gTWFjIEFNRCBHUFUgZ2xf
VmVydGV4SUQgaW4gR0xTTCB2ZXJ0ZXggc2hhZGVyIGRvZXNuJ3QgaW5jbHVkZSBiYXNlIHZlcnRl
eCB2YWx1ZSwKLSAgICAvLyBXb3JrIGFyb251ZCB0aGlzIGJ5IHJlcGxhY2UgZ2xfVmVydGV4SUQg
d2l0aCAoZ2xfVmVydGV4SUQgLSBhbmdsZV9CYXNlVmVydGV4KSB3aGVuCi0gICAgLy8gYW5nbGVf
QmFzZVZlcnRleCBpcyBwcmVzZW50LgotICAgIEZlYXR1cmUgYWRkQmFzZVZlcnRleFRvVmVydGV4
SUQgPSB7Ci0gICAgICAgICJ2ZXJ0ZXhfaWRfZG9lc19ub3RfaW5jbHVkZV9iYXNlX3ZlcnRleCIs
IEZlYXR1cmVDYXRlZ29yeTo6T3BlbkdMV29ya2Fyb3VuZHMsCi0gICAgICAgICJnbF9WZXJ0ZXhJ
RCBpbiBHTFNMIHZlcnRleCBzaGFkZXIgZG9lc24ndCBpbmNsdWRlIGJhc2UgdmVydGV4IHZhbHVl
IiwgJm1lbWJlcnN9OwotCi0gICAgLy8gQ2FsbGluZyBnbEZpbmlzaCBkb2Vzbid0IGNhdXNlIGFs
bCBxdWVyaWVzIHRvIHJlcG9ydCB0aGF0IHRoZSByZXN1bHQgaXMgYXZhaWxhYmxlIG9uIHNvbWUK
LSAgICAvLyAoTlZJRElBKSBkcml2ZXJzLiAgSXQgd2FzIGZvdW5kIHRoYXQgZW5hYmxpbmcgR0xf
REVCVUdfT1VUUFVUX1NZTkNIUk9OT1VTIGJlZm9yZSB0aGUgZmluaXNoCi0gICAgLy8gY2F1c2Vz
IGl0IHRvIGZ1bGx5IGZpbmlzaC4KLSAgICBGZWF0dXJlIGZpbmlzaERvZXNOb3RDYXVzZVF1ZXJp
ZXNUb0JlQXZhaWxhYmxlID0gewotICAgICAgICAiZmluaXNoX2RvZXNfbm90X2NhdXNlX3F1ZXJp
ZXNfdG9fYmVfYXZhaWxhYmxlIiwgRmVhdHVyZUNhdGVnb3J5OjpPcGVuR0xXb3JrYXJvdW5kcywK
LSAgICAgICAgImdsRmluaXNoIGRvZXNuJ3QgY2F1c2UgYWxsIHF1ZXJpZXMgdG8gcmVwb3J0IGF2
YWlsYWJsZSByZXN1bHQiLCAmbWVtYmVyc307Ci0KLSAgICAvLyBBbHdheXMgY2FsbCB1c2VQcm9n
cmFtIGFmdGVyIGEgc3VjY2Vzc2Z1bCBsaW5rIHRvIGF2b2lkIGEgZHJpdmVyIGJ1Zy4KLSAgICAv
LyBUaGlzIHdvcmthcm91bmQgaXMgbWVhbnQgdG8gcmVwcm9kdWNlIHRoZSB1c2VfY3VycmVudF9w
cm9ncmFtX2FmdGVyX3N1Y2Nlc3NmdWxfbGluawotICAgIC8vIHdvcmthcm91bmQgaW4gQ2hyb21p
dW0gKGh0dHA6Ly9jcmJ1Zy5jb20vMTEwMjYzKS4gSXQgaGFzIGJlZW4gc2hvd24gdGhhdCB0aGlz
IHdvcmthcm91bmQgaXMKLSAgICAvLyBub3QgbmVjZXNzYXJ5IGZvciBNYWNPU1ggMTAuOSBhbmQg
aGlnaGVyIChodHRwOi8vY3JyZXYuY29tLzM5ZWI1MzViKS4KLSAgICBGZWF0dXJlIGFsd2F5c0Nh
bGxVc2VQcm9ncmFtQWZ0ZXJMaW5rID0gewotICAgICAgICAiYWx3YXlzX2NhbGxfdXNlX3Byb2dy
YW1fYWZ0ZXJfbGluayIsIEZlYXR1cmVDYXRlZ29yeTo6T3BlbkdMV29ya2Fyb3VuZHMsCi0gICAg
ICAgICJBbHdheXMgY2FsbCB1c2VQcm9ncmFtIGFmdGVyIGEgc3VjY2Vzc2Z1bCBsaW5rIHRvIGF2
b2lkIGEgZHJpdmVyIGJ1ZyIsICZtZW1iZXJzLAotICAgICAgICAiaHR0cDovL2NyYnVnLmNvbS8x
MTAyNjMifTsKLQotICAgIC8vIE9uIE5WSURJQSwgaW4gdGhlIGNhc2Ugb2YgdW5wYWNraW5nIGZy
b20gYSBwaXhlbCB1bnBhY2sgYnVmZmVyLCB1bnBhY2sgb3ZlcmxhcHBpbmcgcm93cyByb3cKLSAg
ICAvLyBieSByb3cuCi0gICAgRmVhdHVyZSB1bnBhY2tPdmVybGFwcGluZ1Jvd3NTZXBhcmF0ZWx5
VW5wYWNrQnVmZmVyID0gewotICAgICAgICAidW5wYWNrX292ZXJsYXBwaW5nX3Jvd3Nfc2VwYXJh
dGVseV91bnBhY2tfYnVmZmVyIiwgRmVhdHVyZUNhdGVnb3J5OjpPcGVuR0xXb3JrYXJvdW5kcywK
LSAgICAgICAgIkluIHRoZSBjYXNlIG9mIHVucGFja2luZyBmcm9tIGEgcGl4ZWwgdW5wYWNrIGJ1
ZmZlciwgdW5wYWNrIG92ZXJsYXBwaW5nIHJvd3Mgcm93IGJ5IHJvdyIsCi0gICAgICAgICZtZW1i
ZXJzfTsKLQotICAgIC8vIE9uIE5WSURJQSwgaW4gdGhlIGNhc2Ugb2YgcGFja2luZyB0byBhIHBp
eGVsIHBhY2sgYnVmZmVyLCBwYWNrIG92ZXJsYXBwaW5nIHJvd3Mgcm93IGJ5IHJvdy4KLSAgICBG
ZWF0dXJlIHBhY2tPdmVybGFwcGluZ1Jvd3NTZXBhcmF0ZWx5UGFja0J1ZmZlciA9IHsKLSAgICAg
ICAgInBhY2tfb3ZlcmxhcHBpbmdfcm93c19zZXBhcmF0ZWx5X3BhY2tfYnVmZmVyIiwgRmVhdHVy
ZUNhdGVnb3J5OjpPcGVuR0xXb3JrYXJvdW5kcywKLSAgICAgICAgIkluIHRoZSBjYXNlIG9mIHBh
Y2tpbmcgdG8gYSBwaXhlbCBwYWNrIGJ1ZmZlciwgcGFjayBvdmVybGFwcGluZyByb3dzIHJvdyBi
eSByb3ciLAotICAgICAgICAmbWVtYmVyc307Ci0KLSAgICAvLyBPbiBOVklESUEsIGR1cmluZyBp
bml0aWFsaXphdGlvbiwgYXNzaWduIHRoZSBjdXJyZW50IHZlcnRleCBhdHRyaWJ1dGVzIHRvIHRo
ZSBzcGVjLW1hbmRhdGVkCi0gICAgLy8gZGVmYXVsdHMuCi0gICAgRmVhdHVyZSBpbml0aWFsaXpl
Q3VycmVudFZlcnRleEF0dHJpYnV0ZXMgPSB7Ci0gICAgICAgICJpbml0aWFsaXplX2N1cnJlbnRf
dmVydGV4X2F0dHJpYnV0ZXMiLCBGZWF0dXJlQ2F0ZWdvcnk6Ok9wZW5HTFdvcmthcm91bmRzLAot
ICAgICAgICAiRHVyaW5nIGluaXRpYWxpemF0aW9uLCBhc3NpZ24gdGhlIGN1cnJlbnQgdmVydGV4
IGF0dHJpYnV0ZXMgdG8gdGhlIHNwZWMtbWFuZGF0ZWQgZGVmYXVsdHMiLAotICAgICAgICAmbWVt
YmVyc307Ci0KLSAgICAvLyBhYnMoaSkgd2hlcmUgaSBpcyBhbiBpbnRlZ2VyIHJldHVybnMgdW5l
eHBlY3RlZCByZXN1bHQgb24gSW50ZWwgTWFjLgotICAgIC8vIEVtdWxhdGUgYWJzKGkpIHdpdGgg
aSAqIHNpZ24oaSkuCi0gICAgRmVhdHVyZSBlbXVsYXRlQWJzSW50RnVuY3Rpb24gPSB7ImVtdWxh
dGVfYWJzX2ludF9mdW5jdGlvbiIsIEZlYXR1cmVDYXRlZ29yeTo6T3BlbkdMV29ya2Fyb3VuZHMs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFicyhpKSB3aGVyZSBpIGlz
IGFuIGludGVnZXIgcmV0dXJucyB1bmV4cGVjdGVkIHJlc3VsdCIsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJm1lbWJlcnMsICJodHRwOi8vY3JidWcuY29tLzY0MjIyNyJ9
OwotCi0gICAgLy8gT24gSW50ZWwgTWFjLCBjYWxjdWxhdGlvbiBvZiBsb29wIGNvbmRpdGlvbnMg
aW4gZm9yIGFuZCB3aGlsZSBsb29wIGhhcyBidWcuCi0gICAgLy8gQWRkICImJiB0cnVlIiB0byB0
aGUgZW5kIG9mIHRoZSBjb25kaXRpb24gZXhwcmVzc2lvbiB0byB3b3JrIGFyb3VuZCB0aGUgYnVn
LgotICAgIEZlYXR1cmUgYWRkQW5kVHJ1ZVRvTG9vcENvbmRpdGlvbiA9IHsKLSAgICAgICAgImFk
ZF9hbmRfdHJ1ZV90b19sb29wX2NvbmRpdGlvbiIsIEZlYXR1cmVDYXRlZ29yeTo6T3BlbkdMV29y
a2Fyb3VuZHMsCi0gICAgICAgICJDYWxjdWxhdGlvbiBvZiBsb29wIGNvbmRpdGlvbnMgaW4gZm9y
IGFuZCB3aGlsZSBsb29wIGhhcyBidWciLCAmbWVtYmVyc307Ci0KLSAgICAvLyBXaGVuIHVwbG9h
ZGluZyB0ZXh0dXJlcyBmcm9tIGFuIHVucGFjayBidWZmZXIsIHNvbWUgZHJpdmVycyBjb3VudCBh
biBleHRyYSByb3cgcGFkZGluZyB3aGVuCi0gICAgLy8gY2hlY2tpbmcgaWYgdGhlIHBpeGVsIHVu
cGFjayBidWZmZXIgaXMgYmlnIGVub3VnaC4gVHJhY2tpbmcgYnVnOiBodHRwOi8vYW5nbGVidWcu
Y29tLzE1MTIKLSAgICAvLyBGb3IgZXhhbXBsZSBjb25zaWRlcmluZyB0aGUgcGl4ZWwgYnVmZmVy
IGJlbG93IHdoZXJlIGluIG1lbW9yeSwgZWFjaCByb3cgZGF0YSAoRCkgb2YgdGhlCi0gICAgLy8g
dGV4dHVyZSBpcyBmb2xsb3dlZCBieSBzb21lIHVudXNlZCBkYXRhICh0aGUgZG90cyk6Ci0gICAg
Ly8gICAgICstLS0tLS0tKy0tKwotICAgIC8vICAgICB8RERERERERHwuLnwKLSAgICAvLyAgICAg
fERERERERER8Li58Ci0gICAgLy8gICAgIHxEREREREREfC4ufAotICAgIC8vICAgICB8RERERERE
RHwuLnwKLSAgICAvLyAgICAgKy0tLS0tLS1BLS1CCi0gICAgLy8gVGhlIGxhc3QgcGl4ZWwgcmVh
ZCB3aWxsIGJlIEEsIGJ1dCB0aGUgZHJpdmVyIHdpbGwgdGhpbmsgaXQgaXMgQiwgY2F1c2luZyBp
dCB0byBnZW5lcmF0ZSBhbgotICAgIC8vIGVycm9yIHdoZW4gdGhlIHBpeGVsIGJ1ZmZlciBpcyBq
dXN0IGJpZyBlbm91Z2guCi0gICAgRmVhdHVyZSB1bnBhY2tMYXN0Um93U2VwYXJhdGVseUZvclBh
ZGRpbmdJbmNsdXNpb24gPSB7Ci0gICAgICAgICJ1bnBhY2tfbGFzdF9yb3dfc2VwYXJhdGVseV9m
b3JfcGFkZGluZ19pbmNsdXNpb24iLCBGZWF0dXJlQ2F0ZWdvcnk6Ok9wZW5HTFdvcmthcm91bmRz
LAotICAgICAgICAiV2hlbiB1cGxvYWRpbmcgdGV4dHVyZXMgZnJvbSBhbiB1bnBhY2sgYnVmZmVy
LCBzb21lIGRyaXZlcnMgY291bnQgYW4gZXh0cmEgcm93IHBhZGRpbmciLAotICAgICAgICAmbWVt
YmVycywgImh0dHA6Ly9hbmdsZWJ1Zy5jb20vMTUxMiJ9OwotCi0gICAgLy8gRXF1aXZhbGVudCB3
b3JrYXJvdW5kIHdoZW4gdXBsb2FkaW5nIGRhdGEgZnJvbSBhIHBpeGVsIHBhY2sgYnVmZmVyLgot
ICAgIEZlYXR1cmUgcGFja0xhc3RSb3dTZXBhcmF0ZWx5Rm9yUGFkZGluZ0luY2x1c2lvbiA9IHsK
LSAgICAgICAgInBhY2tfbGFzdF9yb3dfc2VwYXJhdGVseV9mb3JfcGFkZGluZ19pbmNsdXNpb24i
LCBGZWF0dXJlQ2F0ZWdvcnk6Ok9wZW5HTFdvcmthcm91bmRzLAotICAgICAgICAiV2hlbiB1cGxv
YWRpbmcgdGV4dHVyZXMgZnJvbSBhbiBwYWNrIGJ1ZmZlciwgc29tZSBkcml2ZXJzIGNvdW50IGFu
IGV4dHJhIHJvdyBwYWRkaW5nIiwKLSAgICAgICAgJm1lbWJlcnMsICJodHRwOi8vYW5nbGVidWcu
Y29tLzE1MTIifTsKLQotICAgIC8vIE9uIHNvbWUgSW50ZWwgZHJpdmVycywgdXNpbmcgaXNuYW4o
KSBvbiBoaWdocCBmbG9hdCB3aWxsIGdldCB3cm9uZyBhbnN3ZXIuIFRvIHdvcmsgYXJvdW5kCi0g
ICAgLy8gdGhpcyBidWcsIHdlIHVzZSBhbiBleHByZXNzaW9uIHRvIGVtdWxhdGUgZnVuY3Rpb24g
aXNuYW4oKS4KLSAgICAvLyBUcmFja2luZyBidWc6IGh0dHA6Ly9jcmJ1Zy5jb20vNjUwNTQ3Ci0g
ICAgRmVhdHVyZSBlbXVsYXRlSXNuYW5GbG9hdCA9IHsiZW11bGF0ZV9pc25hbl9mbG9hdCIsIEZl
YXR1cmVDYXRlZ29yeTo6T3BlbkdMV29ya2Fyb3VuZHMsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiVXNpbmcgaXNuYW4oKSBvbiBoaWdocCBmbG9hdCB3aWxsIGdldCB3cm9uZyBh
bnN3ZXIiLCAmbWVtYmVycywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJodHRw
Oi8vY3JidWcuY29tLzY1MDU0NyJ9OwotCi0gICAgLy8gT24gTWFjIHdpdGggT3BlbkdMIHZlcnNp
b24gNC4xLCB1bnVzZWQgc3RkMTQwIG9yIHNoYXJlZCB1bmlmb3JtIGJsb2NrcyB3aWxsIGJlCi0g
ICAgLy8gdHJlYXRlZCBhcyBpbmFjdGl2ZSB3aGljaCBpcyBub3QgY29uc2lzdGVudCB3aXRoIFdl
YkdMMi4wIHNwZWMuIFJlZmVyZW5jZSBhbGwgbWVtYmVycyBpbiBhCi0gICAgLy8gdW51c2VkIHN0
ZDE0MCBvciBzaGFyZWQgdW5pZm9ybSBibG9jayBhdCB0aGUgYmVnaW5uaW5nIG9mIG1haW4gdG8g
d29yayBhcm91bmQgaXQuCi0gICAgLy8gQWxzbyB1c2VkIG9uIExpbnV4IEFNRC4KLSAgICBGZWF0
dXJlIHVzZVVudXNlZEJsb2Nrc1dpdGhTdGFuZGFyZE9yU2hhcmVkTGF5b3V0ID0gewotICAgICAg
ICAidXNlX3VudXNlZF9ibG9ja3Nfd2l0aF9zdGFuZGFyZF9vcl9zaGFyZWRfbGF5b3V0IiwgRmVh
dHVyZUNhdGVnb3J5OjpPcGVuR0xXb3JrYXJvdW5kcywKLSAgICAgICAgIlVudXNlZCBzdGQxNDAg
b3Igc2hhcmVkIHVuaWZvcm0gYmxvY2tzIHdpbGwgYmUgdHJlYXRlZCBhcyBpbmFjdGl2ZSIsICZt
ZW1iZXJzfTsKLQotICAgIC8vIFRoaXMgZmxhZyBpcyB1c2VkIHRvIGZpeCBzcGVjIGRpZmZlcmVu
Y2UgYmV0d2VlbiBHTFNMIDQuMSBvciBsb3dlciBhbmQgRVNTTDMuCi0gICAgRmVhdHVyZSByZW1v
dmVJbnZhcmlhbnRBbmRDZW50cm9pZEZvckVTU0wzID0gewotICAgICAgICAicmVtb3ZlX2ludmFy
aWVudF9hbmRfY2VudHJvaWRfZm9yX2Vzc2wzIiwgRmVhdHVyZUNhdGVnb3J5OjpPcGVuR0xXb3Jr
YXJvdW5kcywKLSAgICAgICAgIkZpeCBzcGVjIGRpZmZlcmVuY2UgYmV0d2VlbiBHTFNMIDQuMSBv
ciBsb3dlciBhbmQgRVNTTDMiLCAmbWVtYmVyc307Ci0KLSAgICAvLyBPbiBJbnRlbCBNYWMgT1NY
IDEwLjExIGRyaXZlciwgdXNpbmcgIi1mbG9hdCIgd2lsbCBnZXQgd3JvbmcgYW5zd2VyLiBVc2Ug
IjAuMCAtIGZsb2F0IiB0bwotICAgIC8vIHJlcGxhY2UgIi1mbG9hdCIuCi0gICAgLy8gVHJhY2tp
bmcgYnVnOiBodHRwOi8vY3JidWcuY29tLzMwODM2NgotICAgIEZlYXR1cmUgcmV3cml0ZUZsb2F0
VW5hcnlNaW51c09wZXJhdG9yID0gewotICAgICAgICAicmV3cml0ZV9mbG9hdF91bmFyeV9taW51
c19vcGVyYXRvciIsIEZlYXR1cmVDYXRlZ29yeTo6T3BlbkdMV29ya2Fyb3VuZHMsCi0gICAgICAg
ICJVc2luZyAnLTxmbG9hdD4nIHdpbGwgZ2V0IHdyb25nIGFuc3dlciIsICZtZW1iZXJzLCAiaHR0
cDovL2NyYnVnLmNvbS8zMDgzNjYifTsKLQotICAgIC8vIE9uIE5WSURJQSBkcml2ZXJzLCBhdGFu
KHksIHgpIG1heSByZXR1cm4gYSB3cm9uZyBhbnN3ZXIuCi0gICAgLy8gVHJhY2tpbmcgYnVnOiBo
dHRwOi8vY3JidWcuY29tLzY3MjM4MAotICAgIEZlYXR1cmUgZW11bGF0ZUF0YW4yRmxvYXQgPSB7
ImVtdWxhdGVfYXRhbl8yX2Zsb2F0IiwgRmVhdHVyZUNhdGVnb3J5OjpPcGVuR0xXb3JrYXJvdW5k
cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhdGFuKHksIHgpIG1heSByZXR1
cm4gYSB3cm9uZyBhbnN3ZXIiLCAmbWVtYmVycywKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJodHRwOi8vY3JidWcuY29tLzY3MjM4MCJ9OwotCi0gICAgLy8gU29tZSBkcml2ZXJz
IHNlZW0gdG8gZm9yZ2V0IGFib3V0IFVCTyBiaW5kaW5ncyB3aGVuIHVzaW5nIHByb2dyYW0gYmlu
YXJpZXMuIFdvcmsgYXJvdW5kCi0gICAgLy8gdGhpcyBieSByZS1hcHBseWluZyB0aGUgYmluZGlu
Z3MgYWZ0ZXIgdGhlIHByb2dyYW0gYmluYXJ5IGlzIGxvYWRlZCBvciBzYXZlZC4KLSAgICAvLyBU
aGlzIG9ubHkgc2VlbXMgdG8gYWZmZWN0IEFNRCBPcGVuR0wgZHJpdmVycywgYW5kIHNvbWUgQW5k
cm9pZCBkZXZpY2VzLgotICAgIC8vIGh0dHA6Ly9hbmdsZWJ1Zy5jb20vMTYzNwotICAgIEZlYXR1
cmUgcmVhcHBseVVCT0JpbmRpbmdzQWZ0ZXJVc2luZ0JpbmFyeVByb2dyYW0gPSB7Ci0gICAgICAg
ICJyZWFwcGx5X3Vib19iaW5kaW5nc19hZnRlcl91c2luZ19iaW5hcnlfcHJvZ3JhbSIsIEZlYXR1
cmVDYXRlZ29yeTo6T3BlbkdMV29ya2Fyb3VuZHMsCi0gICAgICAgICJTb21lIGRyaXZlcnMgZm9y
Z2V0IGFib3V0IFVCTyBiaW5kaW5ncyB3aGVuIHVzaW5nIHByb2dyYW0gYmluYXJpZXMiLCAmbWVt
YmVycywKLSAgICAgICAgImh0dHA6Ly9hbmdsZWJ1Zy5jb20vMTYzNyJ9OwotCi0gICAgLy8gU29t
ZSBMaW51eCBPcGVuR0wgZHJpdmVycyByZXR1cm4gMCB3aGVuIHdlIHF1ZXJ5IE1BWF9WRVJURVhf
QVRUUklCX1NUUklERSBpbiBhbiBPcGVuR0wgNC40IG9yCi0gICAgLy8gaGlnaGVyIGNvbnRleHQu
Ci0gICAgLy8gVGhpcyBvbmx5IHNlZW1zIHRvIGFmZmVjdCBBTUQgT3BlbkdMIGRyaXZlcnMuCi0g
ICAgLy8gVHJhY2tpbmcgYnVnOiBodHRwOi8vYW5nbGVidWcuY29tLzE5MzYKLSAgICBGZWF0dXJl
IGVtdWxhdGVNYXhWZXJ0ZXhBdHRyaWJTdHJpZGUgPSB7Ci0gICAgICAgICJlbXVsYXRlX21heF92
ZXJ0ZXhfYXR0cmliX3N0cmlkZSIsIEZlYXR1cmVDYXRlZ29yeTo6T3BlbkdMV29ya2Fyb3VuZHMs
Ci0gICAgICAgICJTb21lIGRyaXZlcnMgcmV0dXJuIDAgd2hlbiBNQVhfVkVSVEVYX0FUVFJJQl9T
VFJJRUQgcXVlcmllZCIsICZtZW1iZXJzLAotICAgICAgICAiaHR0cDovL2FuZ2xlYnVnLmNvbS8x
OTM2In07Ci0KLSAgICAvLyBJbml0aWFsaXppbmcgdW5pbml0aWFsaXplZCBsb2NhbHMgY2F1c2Vk
IG9kZCBiZWhhdmlvciBvbiBBbmRyb2lkIFF1YWxjb21tIGluIGEgZmV3IFdlYkdMIDIKLSAgICAv
LyB0ZXN0cy4gVHJhY2tpbmcgYnVnOiBodHRwOi8vYW5nbGVidWcuY29tLzIwNDYKLSAgICBGZWF0
dXJlIGRvbnRJbml0aWFsaXplVW5pbml0aWFsaXplZExvY2FscyA9IHsKLSAgICAgICAgImRvbnRf
aW5pdGlhbGl6ZV91bmluaXRpYWxpemVkX2xvY2FscyIsIEZlYXR1cmVDYXRlZ29yeTo6T3BlbkdM
V29ya2Fyb3VuZHMsCi0gICAgICAgICJJbml0aWFsaXppbmcgdW5pbml0aWFsaXplZCBsb2NhbHMg
Y2F1c2VkIG9kZCBiZWhhdmlvciBpbiBhIGZldyBXZWJHTCAyIHRlc3RzIiwgJm1lbWJlcnMsCi0g
ICAgICAgICJodHRwOi8vYW5nbGVidWcuY29tLzIwNDYifTsKLQotICAgIC8vIE9uIHNvbWUgTlZJ
RElBIGRyaXZlcnMgdGhlIHBvaW50IHNpemUgcmFuZ2UgcmVwb3J0ZWQgZnJvbSB0aGUgQVBJIGlz
IGluY29uc2lzdGVudCB3aXRoIHRoZQotICAgIC8vIGFjdHVhbCBiZWhhdmlvci4gQ2xhbXAgdGhl
IHBvaW50IHNpemUgdG8gdGhlIHZhbHVlIGZyb20gdGhlIEFQSSB0byBmaXggdGhpcy4KLSAgICBG
ZWF0dXJlIGNsYW1wUG9pbnRTaXplID0gewotICAgICAgICAiY2xhbXBfcG9pbnRfc2l6ZSIsIEZl
YXR1cmVDYXRlZ29yeTo6T3BlbkdMV29ya2Fyb3VuZHMsCi0gICAgICAgICJUaGUgcG9pbnQgc2l6
ZSByYW5nZSByZXBvcnRlZCBmcm9tIHRoZSBBUEkgaXMgaW5jb25zaXN0ZW50IHdpdGggdGhlIGFj
dHVhbCBiZWhhdmlvciIsCi0gICAgICAgICZtZW1iZXJzfTsKLQotICAgIC8vIE9uIHNvbWUgQW5k
cm9pZCBkZXZpY2VzIGZvciBsb29wcyB1c2VkIHRvIGluaXRpYWxpemUgdmFyaWFibGVzIGhpdCBu
YXRpdmUgR0xTTCBjb21waWxlciBidWdzLgotICAgIEZlYXR1cmUgZG9udFVzZUxvb3BzVG9Jbml0
aWFsaXplVmFyaWFibGVzID0gewotICAgICAgICAiZG9udF91c2VfbG9vcHNfdG9faW5pdGlhbGl6
ZV92YXJpYWJsZXMiLCBGZWF0dXJlQ2F0ZWdvcnk6Ok9wZW5HTFdvcmthcm91bmRzLAotICAgICAg
ICAiRm9yIGxvb3BzIHVzZWQgdG8gaW5pdGlhbGl6ZSB2YXJpYWJsZXMgaGl0IG5hdGl2ZSBHTFNM
IGNvbXBpbGVyIGJ1Z3MiLCAmbWVtYmVycywKLSAgICAgICAgImh0dHA6Ly9jcmJ1Zy5jb20vODA5
NDIyIn07Ci0KLSAgICAvLyBPbiBzb21lIE5WSURJQSBkcml2ZXJzIGdsX0ZyYWdEZXB0aCBpcyBu
b3QgY2xhbXBlZCBjb3JyZWN0bHkgd2hlbiByZW5kZXJpbmcgdG8gYSBmbG9hdGluZwotICAgIC8v
IHBvaW50IGRlcHRoIGJ1ZmZlci4gQ2xhbXAgaXQgaW4gdGhlIHRyYW5zbGF0ZWQgc2hhZGVyIHRv
IGZpeCB0aGlzLgotICAgIEZlYXR1cmUgY2xhbXBGcmFnRGVwdGggPSB7Ci0gICAgICAgICJjbGFt
cF9mcmFnX2RlcHRoIiwgRmVhdHVyZUNhdGVnb3J5OjpPcGVuR0xXb3JrYXJvdW5kcywKLSAgICAg
ICAgImdsX0ZyYWdEZXB0aCBpcyBub3QgY2xhbXBlZCBjb3JyZWN0bHkgd2hlbiByZW5kZXJpbmcg
dG8gYSBmbG9hdGluZyBwb2ludCBkZXB0aCBidWZmZXIiLAotICAgICAgICAmbWVtYmVyc307Ci0K
LSAgICAvLyBPbiBzb21lIE5WSURJQSBkcml2ZXJzIGJlZm9yZSB2ZXJzaW9uIDM5Ny4zMSByZXBl
YXRlZCBhc3NpZ25tZW50IHRvIHN3aXp6bGVkIHZhbHVlcyBpbnNpZGUgYQotICAgIC8vIEdMU0wg
dXNlci1kZWZpbmVkIGZ1bmN0aW9uIGhhdmUgaW5jb3JyZWN0IHJlc3VsdHMuIFJld3JpdGUgdGhp
cyB0eXBlIG9mIHN0YXRlbWVudHMgdG8gZml4Ci0gICAgLy8gdGhpcy4KLSAgICBGZWF0dXJlIHJl
d3JpdGVSZXBlYXRlZEFzc2lnblRvU3dpenpsZWQgPSB7InJld3JpdGVfcmVwZWF0ZWRfYXNzaWdu
X3RvX3N3aXp6bGVkIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgRmVhdHVyZUNhdGVnb3J5OjpPcGVuR0xXb3JrYXJvdW5kcywKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJlcGVhdGVkIGFzc2lnbm1lbnQgdG8g
c3dpenpsZWQgdmFsdWVzIGluc2lkZSBhICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIkdMU0wgdXNlci1kZWZpbmVkIGZ1bmN0aW9uIGhhdmUgaW5jb3Jy
ZWN0IHJlc3VsdHMiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAmbWVtYmVyc307Ci0KLSAgICAvLyBPbiBzb21lIEFNRCBhbmQgSW50ZWwgR0wgZHJpdmVy
cyBBUkJfYmxlbmRfZnVuY19leHRlbmRlZCBkb2VzIG5vdCBwYXNzIHRoZSB0ZXN0cy4KLSAgICAv
LyBJdCBtaWdodCBiZSBwb3NzaWJsZSB0byB3b3JrIGFyb3VuZCB0aGUgSW50ZWwgYnVnIGJ5IHJl
d3JpdGluZyAqRnJhZ0RhdGEgdG8gKkZyYWdDb2xvcgotICAgIC8vIGluc3RlYWQgb2YgZGlzYWJs
aW5nIHRoZSBmdW5jdGlvbmFsaXR5IGVudGlyZWx5LiBUaGUgQU1EIGJ1ZyBsb29rZWQgbGlrZSBp
bmNvcnJlY3QgYmxlbmRpbmcsCi0gICAgLy8gbm90IHN1cmUgaWYgYSB3b3JrYXJvdW5kIGlzIGZl
YXNpYmxlLiBodHRwOi8vYW5nbGVidWcuY29tLzEwODUKLSAgICBGZWF0dXJlIGRpc2FibGVCbGVu
ZEZ1bmNFeHRlbmRlZCA9IHsKLSAgICAgICAgImRpc2FibGVfYmxlbmRfZnVuY19leHRlbmRlZCIs
IEZlYXR1cmVDYXRlZ29yeTo6T3BlbkdMV29ya2Fyb3VuZHMsCi0gICAgICAgICJBUkJfYmxlbmRf
ZnVuY19leHRlbmRlZCBkb2VzIG5vdCBwYXNzIHRoZSB0ZXN0cyIsICZtZW1iZXJzLCAiaHR0cDov
L2FuZ2xlYnVnLmNvbS8xMDg1In07Ci0KLSAgICAvLyBRdWFsY29tbSBkcml2ZXJzIHJldHVybnMg
cmF3IHNSR0IgdmFsdWVzIGluc3RlYWQgb2YgbGluZWFyaXplZCB2YWx1ZXMgd2hlbiBjYWxsaW5n
Ci0gICAgLy8gZ2xSZWFkUGl4ZWxzIG9uIHVuc2l6ZWQgc1JHQiB0ZXh0dXJlIGZvcm1hdHMuIGh0
dHA6Ly9jcmJ1Zy5jb20vNTUwMjkyIGFuZAotICAgIC8vIGh0dHA6Ly9jcmJ1Zy5jb20vNTY1MTc5
Ci0gICAgRmVhdHVyZSB1bnNpemVkc1JHQlJlYWRQaXhlbHNEb2VzbnRUcmFuc2Zvcm0gPSB7Ci0g
ICAgICAgICJ1bnNpemVkX3NyZ2JfcmVhZF9waXhlbHNfZG9lc250X3RyYW5zZm9ybSIsIEZlYXR1
cmVDYXRlZ29yeTo6T3BlbkdMV29ya2Fyb3VuZHMsCi0gICAgICAgICJEcml2ZXJzIHJldHVybmlu
ZyByYXcgc1JHQiB2YWx1ZXMgaW5zdGVhZCBvZiBsaW5lYXJpemVkIHZhbHVlcyB3aGVuIGNhbGxp
bmcgZ2xSZWFkUGl4ZWxzICIKLSAgICAgICAgIm9uIHVuc2l6ZWQgc1JHQiB0ZXh0dXJlIGZvcm1h
dHMiLAotICAgICAgICAmbWVtYmVycywgImh0dHA6Ly9jcmJ1Zy5jb20vNTY1MTc5In07Ci0KLSAg
ICAvLyBPbGRlciBRdWFsY29tbSBkcml2ZXJzIGdlbmVyYXRlIGVycm9ycyB3aGVuIHF1ZXJ5aW5n
IHRoZSBudW1iZXIgb2YgYml0cyBpbiB0aW1lciBxdWVyaWVzLCBleDoKLSAgICAvLyBHZXRRdWVy
eWl2RVhUKEdMX1RJTUVfRUxBUFNFRCwgR0xfUVVFUllfQ09VTlRFUl9CSVRTKS4gIGh0dHA6Ly9h
bmdsZWJ1Zy5jb20vMzAyNwotICAgIEZlYXR1cmUgcXVlcnlDb3VudGVyQml0c0dlbmVyYXRlc0Vy
cm9ycyA9IHsKLSAgICAgICAgInF1ZXJ5X2NvdW50ZXJfYml0c19nZW5lcmF0ZXNfZXJyb3JzIiwg
RmVhdHVyZUNhdGVnb3J5OjpPcGVuR0xXb3JrYXJvdW5kcywKLSAgICAgICAgIkRyaXZlcnMgZ2Vu
ZXJhdGUgZXJyb3JzIHdoZW4gcXVlcnlpbmcgdGhlIG51bWJlciBvZiBiaXRzIGluIHRpbWVyIHF1
ZXJpZXMiLCAmbWVtYmVycywKLSAgICAgICAgImh0dHA6Ly9hbmdsZWJ1Zy5jb20vMzAyNyJ9Owot
Ci0gICAgLy8gUmUtbGlua2luZyBhIHByb2dyYW0gaW4gcGFyYWxsZWwgaXMgYnVnZ3kgb24gc29t
ZSBJbnRlbCBXaW5kb3dzIE9wZW5HTCBkcml2ZXJzIGFuZCBBbmRyb2lkCi0gICAgLy8gcGxhdGZv
cm1zLgotICAgIC8vIGh0dHA6Ly9hbmdsZWJ1Zy5jb20vMzA0NQotICAgIEZlYXR1cmUgZG9udFJl
bGlua1Byb2dyYW1zSW5QYXJhbGxlbCA9IHsKLSAgICAgICAgImRvbnRfcmVsaW5rX3Byb2dyYW1z
X2luX3BhcmFsbGVsIiwgRmVhdHVyZUNhdGVnb3J5OjpPcGVuR0xXb3JrYXJvdW5kcywKLSAgICAg
ICAgIlJlbGlua2luZyBhIHByb2dyYW0gaW4gcGFyYWxsZWwgaXMgYnVnZ3kiLCAmbWVtYmVycywg
Imh0dHA6Ly9hbmdsZWJ1Zy5jb20vMzA0NSJ9OwotCi0gICAgLy8gU29tZSB0ZXN0cyBoYXZlIGJl
ZW4gc2VlbiB0byBmYWlsIHVzaW5nIHdvcmtlciBjb250ZXh0cywgdGhpcyBzd2l0Y2ggYWxsb3dz
IHdvcmtlciBjb250ZXh0cwotICAgIC8vIHRvIGJlIGRpc2FibGVkIGZvciBzb21lIHBsYXRmb3Jt
cy4gaHR0cDovL2NyYnVnLmNvbS84NDk1NzYKLSAgICBGZWF0dXJlIGRpc2FibGVXb3JrZXJDb250
ZXh0cyA9IHsiZGlzYWJsZV93b3JrZXJfY29udGV4dHMiLCBGZWF0dXJlQ2F0ZWdvcnk6Ok9wZW5H
TFdvcmthcm91bmRzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTb21l
IHRlc3RzIGhhdmUgYmVlbiBzZWVuIHRvIGZhaWwgdXNpbmcgd29ya2VyIGNvbnRleHRzIiwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbWVtYmVycywgImh0dHA6Ly9jcmJ1
Zy5jb20vODQ5NTc2In07Ci0KLSAgICAvLyBNb3N0IEFuZHJvaWQgZGV2aWNlcyBmYWlsIHRvIGFs
bG9jYXRlIGEgdGV4dHVyZSB0aGF0IGlzIGxhcmdlciB0aGFuIDQwOTYuIExpbWl0IHRoZSBjYXBz
Ci0gICAgLy8gaW5zdGVhZCBvZiBnZW5lcmF0aW5nIEdMX09VVF9PRl9NRU1PUlkgZXJyb3JzLiBB
bHNvIGNhdXNlcyBzeXN0ZW0gdG8gaGFuZyBvbiBzb21lIG9sZGVyCi0gICAgLy8gaW50ZWwgbWVz
YSBkcml2ZXJzIG9uIExpbnV4LgotICAgIEZlYXR1cmUgbGltaXRNYXhUZXh0dXJlU2l6ZVRvNDA5
NiA9IHsibWF4X3RleHR1cmVfc2l6ZV9saW1pdF80MDk2IiwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgRmVhdHVyZUNhdGVnb3J5OjpPcGVuR0xXb3JrYXJvdW5kcywK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxpbWl0IG1heCB0ZXh0
dXJlIHNpemUgdG8gNDA5NiB0byBhdm9pZCBmcmVxdWVudCAiCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJvdXQtb2YtbWVtb3J5IGVycm9ycyIsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZtZW1iZXJzLCAiaHR0cDovL2NyYnVnLmNv
bS85Mjc0NzAifTsKLQotICAgIC8vIFByZXZlbnQgZXhjZXNzaXZlIE1TQUEgYWxsb2NhdGlvbnMg
b24gQW5kcm9pZCBkZXZpY2VzLCB2YXJpb3VzIHJlbmRlcmluZyBidWdzIGhhdmUgYmVlbgotICAg
IC8vIG9ic2VydmVkIGFuZCB0aGV5IHRlbmQgdG8gYmUgaGlnaCBEUEkgYW55d2F5cy4gaHR0cDov
L2NyYnVnLmNvbS83OTcyNDMKLSAgICBGZWF0dXJlIGxpbWl0TWF4TVNBQVNhbXBsZXNUbzQgPSB7
Ci0gICAgICAgICJtYXhfbXNhYV9zYW1wbGVfY291bnRfNCIsIEZlYXR1cmVDYXRlZ29yeTo6T3Bl
bkdMV29ya2Fyb3VuZHMsCi0gICAgICAgICJWYXJpb3VzIHJlbmRlcmluZyBidWdzIGhhdmUgYmVl
biBvYnNlcnZlZCB3aGVuIHVzaW5nIGhpZ2hlciBNU0FBIGNvdW50cyIsICZtZW1iZXJzLAotICAg
ICAgICAiaHR0cDovL2NyYnVnLmNvbS83OTcyNDMifTsKLQotICAgIC8vIFByZWZlciB0byBkbyB0
aGUgcm9idXN0IHJlc291cmNlIGluaXQgY2xlYXIgdXNpbmcgYSBnbENsZWFyLiBDYWxscyB0byBU
ZXhTdWJJbWFnZTJEIG9uIGxhcmdlCi0gICAgLy8gdGV4dHVyZXMgY2FuIHRha2UgaHVuZHJlZHMg
b2YgbWlsbGlzZWNvbmRzIGJlY2F1c2Ugb2Ygc2xvdyB1cGxvYWRzIG9uIG1hY09TLiBEbyB0aGlz
IG9ubHkgb24KLSAgICAvLyBtYWNPUyBiZWNhdXNlIGNsZWFycyBhcmUgYnVnZ3kgb24gb3RoZXIg
ZHJpdmVycy4KLSAgICAvLyBodHRwczovL2NyYnVnLmNvbS84NDg5NTIgKHNsb3cgdXBsb2FkcyBv
biBtYWNPUykKLSAgICAvLyBodHRwczovL2NyYnVnLmNvbS84ODMyNzYgKGJ1Z2d5IGNsZWFycyBv
biBBbmRyb2lkKQotICAgIEZlYXR1cmUgYWxsb3dDbGVhckZvclJvYnVzdFJlc291cmNlSW5pdCA9
IHsKLSAgICAgICAgImFsbG93X2NsZWFyX2Zvcl9yb2J1c3RfcmVzb3VyY2VfaW5pdCIsIEZlYXR1
cmVDYXRlZ29yeTo6T3BlbkdMV29ya2Fyb3VuZHMsCi0gICAgICAgICJVc2luZyBnbENsZWFyIGZv
ciByb2J1c3QgcmVzb3VyY2UgaW5pdGlhbGl6YXRpb24gaXMgYnVnZ3kgb24gc29tZSBkcml2ZXJz
IGFuZCBsZWFkcyB0byAiCi0gICAgICAgICJ0ZXh0dXJlIGNvcnJ1cHRpb24uIERlZmF1bHQgdG8g
ZGF0YSB1cGxvYWRzIGV4Y2VwdCBvbiBNYWNPUyB3aGVyZSBpdCBpcyB2ZXJ5IHNsb3cuIiwKLSAg
ICAgICAgJm1lbWJlcnMsICJodHRwOi8vY3JidWcuY29tLzg4MzI3NiJ9OwotCi0gICAgLy8gU29t
ZSBkcml2ZXJzIGF1dG9tYXRpY2FsbHkgaGFuZGxlIG91dC1vZi1ib3VuZHMgdW5pZm9ybSBhcnJh
eSBhY2Nlc3MgYnV0IG90aGVycyBuZWVkIG1hbnVhbAotICAgIC8vIGNsYW1waW5nIHRvIHNhdGlz
ZnkgdGhlIFdlYkdMIHJlcXVpcmVtZW50cy4KLSAgICBGZWF0dXJlIGNsYW1wQXJyYXlBY2Nlc3Mg
PSB7ImNsYW1wX2FycmF5X2FjY2VzcyIsIEZlYXR1cmVDYXRlZ29yeTo6T3BlbkdMV29ya2Fyb3Vu
ZHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDbGFtcCB1bmlmb3JtIGFycmF5
IGFjY2VzcyB0byBhdm9pZCByZWFkaW5nIGludmFsaWQgbWVtb3J5LiIsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICZtZW1iZXJzLCAiaHR0cDovL2FuZ2xlYnVnLmNvbS8yOTc4In07
Ci0KLSAgICAvLyBSZXNldCBnbFRleEltYWdlMkQgYmFzZSBsZXZlbCB0byB3b3JrYXJvdW5kIHBp
eGVsIGNvbXBhcmlzb24gZmFpbHVyZSBhYm92ZSBNYWMgT1MgMTAuMTIuNCBvbgotICAgIC8vIElu
dGVsIE1hYy4KLSAgICBGZWF0dXJlIHJlc2V0VGV4SW1hZ2UyREJhc2VMZXZlbCA9IHsicmVzZXRf
dGV4aW1hZ2UyZF9iYXNlX2xldmVsIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBGZWF0dXJlQ2F0ZWdvcnk6Ok9wZW5HTFdvcmthcm91bmRzLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJSZXNldCB0ZXh0dXJlIGJhc2UgbGV2ZWwgYmVm
b3JlIGNhbGxpbmcgZ2xUZXhJbWFnZTJEIHRvICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAid29yayBhcm91bmQgcGl4ZWwgY29tcGFyaXNvbiBmYWlsdXJlLiIsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm1lbWJlcnMsICJodHRwczov
L2NyYnVnLmNvbS83MDU4NjUifTsKLQotICAgIC8vIGdsQ2xlYXJDb2xvciBkb2VzIG5vdCBhbHdh
eXMgd29yayBvbiBJbnRlbCA2eHh4IE1hYyBkcml2ZXJzIHdoZW4gdGhlIGNsZWFyIGNvbG9yIG1h
ZGUgdXAgb2YKLSAgICAvLyBhbGwgemVyb3MgYW5kIG9uZXMuCi0gICAgRmVhdHVyZSBjbGVhclRv
WmVyb09yT25lQnJva2VuID0gewotICAgICAgICAiY2xlYXJfdG9femVyb19vcl9vbmVfYnJva2Vu
IiwgRmVhdHVyZUNhdGVnb3J5OjpPcGVuR0xXb3JrYXJvdW5kcywKLSAgICAgICAgIkNsZWFycyB3
aGVuIHRoZSBjbGVhciBjb2xvciBpcyBhbGwgemVyb3Mgb3Igb25lcyBkbyBub3Qgd29yay4iLCAm
bWVtYmVycywKLSAgICAgICAgImh0dHBzOi8vY3JidWcuY29tLzcxMDQ0MyJ9OwotCi0gICAgLy8g
U29tZSBvbGRlciBMaW51eCBJbnRlbCBtZXNhIGRyaXZlcnMgd2lsbCBoYW5nIHRoZSBzeXN0ZW0g
d2hlbiBhbGxvY2F0aW5nIGxhcmdlIHRleHR1cmVzLiBGaXgKLSAgICAvLyB0aGlzIGJ5IGNhcHBp
bmcgdGhlIG1heCB0ZXh0dXJlIHNpemUuCi0gICAgRmVhdHVyZSBsaW1pdE1heDNkQXJyYXlUZXh0
dXJlU2l6ZVRvMTAyNCA9IHsKLSAgICAgICAgIm1heF8zZF9hcnJheV90ZXh0dXJlX3NpemVfMTAy
NCIsIEZlYXR1cmVDYXRlZ29yeTo6T3BlbkdMV29ya2Fyb3VuZHMsCi0gICAgICAgICJMaW1pdCBt
YXggM2QgdGV4dHVyZSBzaXplIGFuZCBtYXggYXJyYXkgdGV4dHVyZSBsYXllcnMgdG8gMTAyNCB0
byBhdm9pZCBzeXN0ZW0gaGFuZyIsCi0gICAgICAgICZtZW1iZXJzLCAiaHR0cDovL2NyYnVnLmNv
bS85Mjc0NzAifTsKLQotICAgIC8vIEJsaXRGcmFtZWJ1ZmZlciBoYXMgaXNzdWVzIG9uIHNvbWUg
cGxhdGZvcm1zIHdpdGggbGFyZ2Ugc291cmNlL2Rlc3QgdGV4dHVyZSBzaXplcy4gVGhpcwotICAg
IC8vIHdvcmthcm91bmQgYWRqdXN0cyB0aGUgZGVzdGluYXRpb24gcmVjdGFuZ2xlIHNvdXJjZSBh
bmQgZGVzdCByZWN0YW5nbGUgdG8gZml0IHdpdGhpbiBtYXhpbXVtCi0gICAgLy8gdHdpY2UgdGhl
IHNpemUgb2YgdGhlIGZyYW1lYnVmZmVyLgotICAgIEZlYXR1cmUgYWRqdXN0U3JjRHN0UmVnaW9u
QmxpdEZyYW1lYnVmZmVyID0gewotICAgICAgICAiYWRqdXN0X3NyY19kc3RfcmVnaW9uX2Zvcl9i
bGl0ZnJhbWVidWZmZXIiLCBGZWF0dXJlQ2F0ZWdvcnk6Ok9wZW5HTFdvcmthcm91bmRzLAotICAg
ICAgICAiTWFueSBwbGF0Zm9ybXMgaGF2ZSBpc3N1ZXMgd2l0aCBibGl0RnJhbWVidWZmZXIgd2hl
biB0aGUgcGFyYW1ldGVycyBhcmUgbGFyZ2UuIiwgJm1lbWJlcnMsCi0gICAgICAgICJodHRwOi8v
Y3JidWcuY29tLzgzMDA0NiJ9OwotCi0gICAgLy8gQmxpdEZyYW1lYnVmZmVyIGhhcyBpc3N1ZXMg
b24gTWFjIHdoZW4gdGhlIHNvdXJjZSBib3VuZHMgYXJlbid0IGVuY2xvc2VkIGJ5IHRoZSBmcmFt
ZWJ1ZmZlci4KLSAgICAvLyBUaGlzIHdvcmthcm91bmQgY2xpcHMgdGhlIHNvdXJjZSByZWdpb24g
YW5kIGFkanVzdCB0aGUgZGVzdCByZWdpb24gcHJvcG9ydGlvbmFsbHkuCi0gICAgRmVhdHVyZSBj
bGlwU3JjUmVnaW9uQmxpdEZyYW1lYnVmZmVyID0gewotICAgICAgICAiY2xpcF9zcmNfcmVnaW9u
X2Zvcl9ibGl0ZnJhbWVidWZmZXIiLCBGZWF0dXJlQ2F0ZWdvcnk6Ok9wZW5HTFdvcmthcm91bmRz
LAotICAgICAgICAiSXNzdWVzIHdpdGggYmxpdEZyYW1lYnVmZmVyIHdoZW4gdGhlIHBhcmFtZXRl
cnMgZG9uJ3QgbWF0Y2ggdGhlIGZyYW1lYnVmZmVyIHNpemUuIiwKLSAgICAgICAgJm1lbWJlcnMs
ICJodHRwOi8vY3JidWcuY29tLzgzMDA0NiJ9OwotCi0gICAgLy8gTWFjIEludGVsIHNhbXBsZXMg
dHJhbnNwYXJlbnQgYmxhY2sgZnJvbSBHTF9DT01QUkVTU0VEX1JHQl9TM1RDX0RYVDFfRVhUCi0g
ICAgRmVhdHVyZSByZ2JEWFQxVGV4dHVyZXNTYW1wbGVaZXJvQWxwaGEgPSB7Ci0gICAgICAgICJy
Z2JfZHh0MV90ZXh0dXJlc19zYW1wbGVfemVyb19hbHBoYSIsIEZlYXR1cmVDYXRlZ29yeTo6T3Bl
bkdMV29ya2Fyb3VuZHMsCi0gICAgICAgICJTYW1wbGluZyBCTEFDSyB0ZXhlbHMgZnJvbSBSR0Ig
RFhUMSB0ZXh0dXJlcyByZXR1cm5zIHRyYW5zcGFyZW50IGJsYWNrIG9uIE1hYy4iLCAmbWVtYmVy
cywKLSAgICAgICAgImh0dHA6Ly9hbmdsZWJ1Zy5jb20vMzcyOSJ9OwotCi0gICAgLy8gTWFjIGlu
Y29ycmVjdGx5IGV4ZWN1dGVzIGJvdGggc2lkZXMgb2YgJiYgYW5kIHx8IGV4cHJlc3Npb25zIHdo
ZW4gdGhleSBzaG91bGQgc2hvcnQtY2lyY3VpdC4KLSAgICBGZWF0dXJlIHVuZm9sZFNob3J0Q2ly
Y3VpdHMgPSB7Ci0gICAgICAgICJ1bmZvbGRfc2hvcnRfY2lyY3VpdHMiLCBGZWF0dXJlQ2F0ZWdv
cnk6Ok9wZW5HTFdvcmthcm91bmRzLAotICAgICAgICAiTWFjIGluY29ycmVjdGx5IGV4ZWN1dGVz
IGJvdGggc2lkZXMgb2YgJiYgYW5kIHx8IGV4cHJlc3Npb25zIHdoZW4gdGhleSBzaG91bGQgIgot
ICAgICAgICAic2hvcnQtY2lyY3VpdC4iLAotICAgICAgICAmbWVtYmVycywgImh0dHA6Ly9hbmds
ZWJ1Zy5jb20vNDgyIn07Ci0KLSAgICBGZWF0dXJlIGVtdWxhdGVQcmltaXRpdmVSZXN0YXJ0Rml4
ZWRJbmRleCA9IHsKLSAgICAgICAgImVtdWxhdGVfcHJpbWl0aXZlX3Jlc3RhcnRfZml4ZWRfaW5k
ZXgiLCBGZWF0dXJlQ2F0ZWdvcnk6Ok9wZW5HTFdvcmthcm91bmRzLAotICAgICAgICAiV2hlbiBH
TF9QUklNSVRJVkVfUkVTVEFSVF9GSVhFRF9JTkRFWCBpcyBub3QgYXZhaWxhYmxlLCBlbXVsYXRl
IGl0IHdpdGggIgotICAgICAgICAiR0xfUFJJTUlUSVZFX1JFU1RBUlQgYW5kIGdsUHJpbWl0aXZl
UmVzdGFydEluZGV4LiIsCi0gICAgICAgICZtZW1iZXJzLCAiaHR0cDovL2FuZ2xlYnVnLmNvbS8z
OTk3In07Ci0KLSAgICBGZWF0dXJlIHNldFByaW1pdGl2ZVJlc3RhcnRGaXhlZEluZGV4Rm9yRHJh
d0FycmF5cyA9IHsKLSAgICAgICAgInNldF9wcmltaXRpdmVfcmVzdGFydF9maXhlZF9pbmRleF9m
b3JfZHJhd19hcnJheXMiLCBGZWF0dXJlQ2F0ZWdvcnk6Ok9wZW5HTFdvcmthcm91bmRzLAotICAg
ICAgICAiU29tZSBkcml2ZXJzIGRpc2NhcmQgdmVydGV4IGRhdGEgaW4gRHJhd0FycmF5cyBjYWxs
cyB3aGVuIHRoZSBmaXhlZCBwcmltaXRpdmUgcmVzdGFydCAiCi0gICAgICAgICJpbmRleCBpcyB3
aXRoaW4gdGhlIG51bWJlciBvZiBwcmltaXRpdmVzIGJlaW5nIGRyYXduLiIsCi0gICAgICAgICZt
ZW1iZXJzLCAiaHR0cDovL2FuZ2xlYnVnLmNvbS8zOTk3In07Ci0KLSAgICAvLyBEeW5hbWljIGlu
ZGV4aW5nIG9mIHN3aXp6bGVkIGwtdmFsdWVzIGRvZXNuJ3Qgd29yayBjb3JyZWN0bHkgb24gdmFy
aW91cyBwbGF0Zm9ybXMuCi0gICAgRmVhdHVyZSByZW1vdmVEeW5hbWljSW5kZXhpbmdPZlN3aXp6
bGVkVmVjdG9yID0gewotICAgICAgICAicmVtb3ZlX2R5bmFtaWNfaW5kZXhpbmdfb2Zfc3dpenps
ZWRfdmVjdG9yIiwgRmVhdHVyZUNhdGVnb3J5OjpPcGVuR0xXb3JrYXJvdW5kcywKLSAgICAgICAg
IkR5bmFtaWMgaW5kZXhpbmcgb2Ygc3dpenpsZWQgbC12YWx1ZXMgZG9lc24ndCB3b3JrIGNvcnJl
Y3RseSBvbiB2YXJpb3VzIHBsYXRmb3Jtcy4iLAotICAgICAgICAmbWVtYmVycywgImh0dHA6Ly9j
cmJ1Zy5jb20vNzA5MzUxIn07Ci0KLSAgICAvLyBJbnRlbCBNYWMgZHJpdmVycyBkb2VzIG5vdCB0
cmVhdCB0ZXhlbEZldGNoT2Zmc2V0KCkgY29ycmVjdGx5LgotICAgIEZlYXR1cmUgcHJlQWRkVGV4
ZWxGZXRjaE9mZnNldHMgPSB7Ci0gICAgICAgICJwcmVfYWRkX3RleGVsX2ZldGNoX29mZnNldHMi
LCBGZWF0dXJlQ2F0ZWdvcnk6Ok9wZW5HTFdvcmthcm91bmRzLAotICAgICAgICAiSW50ZWwgTWFj
IGRyaXZlcnMgbWlzdGFrZW5seSBjb25zaWRlciB0aGUgcGFyYW1ldGVyIHBvc2l0aW9uIG9mIG5h
Z2F0aXZlIHZhdWxlIGFzIGludmFsaWQgIgotICAgICAgICAiZXZlbiBpZiB0aGUgc3VtIG9mIHBv
c2l0aW9uIGFuZCBvZmZzZXQgaXMgaW4gcmFuZ2UsIHNvIHdlIG5lZWQgdG8gYWRkIHdvcmthcm91
bmRzIGJ5ICIKLSAgICAgICAgInJld3JpdGluZyB0ZXhlbEZldGNoT2Zmc2V0KHNhbXBsZXIsIHBv
c2l0aW9uLCBsb2QsIG9mZnNldCkgaW50byB0ZXhlbEZldGNoKHNhbXBsZXIsICIKLSAgICAgICAg
InBvc2l0aW9uICsgb2Zmc2V0LCBsb2QpLiIsCi0gICAgICAgICZtZW1iZXJzLCAiaHR0cDovL2Ny
YnVnLmNvbS82NDI2MDUifTsKLQotICAgIC8vIEFsbCBNYWMgZHJpdmVycyBkbyBub3QgaGFuZGxl
IHN0cnVjdCBzY29wZXMgY29ycmVjdGx5LiBUaGlzIHdvcmthcm91bmQgb3ZlcndyaXRlcyBhIHN0
cnVjdAotICAgIC8vIG5hbWUgd2l0aCBhIHVuaXF1ZSBwcmVmaXgKLSAgICBGZWF0dXJlIHJlZ2Vu
ZXJhdGVTdHJ1Y3ROYW1lcyA9IHsKLSAgICAgICAgInJlZ2VuZXJhdGVfc3RydWN0X25hbWVzIiwg
RmVhdHVyZUNhdGVnb3J5OjpPcGVuR0xXb3JrYXJvdW5kcywKLSAgICAgICAgIkFsbCBNYWMgZHJp
dmVycyBkbyBub3QgaGFuZGxlIHN0cnVjdCBzY29wZXMgY29ycmVjdGx5LiBUaGlzIHdvcmthcm91
bmQgb3ZlcndyaXRlcyBhIHN0cnVjdCIKLSAgICAgICAgIm5hbWUgd2l0aCBhIHVuaXF1ZSBwcmVm
aXguIiwKLSAgICAgICAgJm1lbWJlcnMsICJodHRwOi8vY3JidWcuY29tLzQwMzk1NyJ9OwotCi0g
ICAgLy8gUXVpdGUgc29tZSBPcGVuR0wgRVMgZHJpdmVycyBkb24ndCBpbXBsZW1lbnQgcmVhZFBp
eGVscyBmb3IgUkdCQS9VTlNJR05FRF9TSE9SVCBmcm9tCi0gICAgLy8gRVhUX3RleHR1cmVfbm9y
bTE2IGNvcnJlY3RseQotICAgIEZlYXR1cmUgcmVhZFBpeGVsc1VzaW5nSW1wbGVtZW50YXRpb25D
b2xvclJlYWRGb3JtYXRGb3JOb3JtMTYgPSB7Ci0gICAgICAgICJyZWFkX3BpeGVsc191c2luZ19p
bXBsZW1lbnRhdGlvbl9jb2xvcl9yZWFkX2Zvcm1hdCIsIEZlYXR1cmVDYXRlZ29yeTo6T3BlbkdM
V29ya2Fyb3VuZHMsCi0gICAgICAgICJRdWl0ZSBzb21lIE9wZW5HTCBFUyBkcml2ZXJzIGRvbid0
IGltcGxlbWVudCByZWFkUGl4ZWxzIGZvciBSR0JBL1VOU0lHTkVEX1NIT1JUIGZyb20gIgotICAg
ICAgICAiRVhUX3RleHR1cmVfbm9ybTE2IGNvcnJlY3RseSIsCi0gICAgICAgICZtZW1iZXJzLCAi
aHR0cDovL2FuZ2xlYnVnLmNvbS80MjE0In07Ci0KLSAgICAvLyBCdWdzIGV4aXN0IGluIHNvbWUg
SW50ZWwgZHJpdmVycyB3aGVyZSBkZXBlbmRlbmNpZXMgYXJlIGluY29ycmVjdGx5Ci0gICAgLy8g
dHJhY2tlZCBmb3IgdGV4dHVyZXMgd2hpY2ggYXJlIGNvcHkgZGVzdGluYXRpb25zICh2aWEgQ29w
eVRleEltYWdlMkQsIGZvcgotICAgIC8vIGV4YW1wbGUpLiBGbHVzaCBiZWZvcmUgRGVsZXRlVGV4
dHVyZSBpZiB0aGVzZSBlbnRyeSBwb2ludHMgaGF2ZSBiZWVuCi0gICAgLy8gY2FsbGVkIHJlY2Vu
dGx5LgotICAgIEZlYXR1cmUgZmx1c2hCZWZvcmVEZWxldGVUZXh0dXJlSWZDb3BpZWRUbyA9IHsK
LSAgICAgICAgImZsdXNoX2JlZm9yZV9kZWxldGVfdGV4dHVyZV9pZl9jb3BpZWRfdG8iLCBGZWF0
dXJlQ2F0ZWdvcnk6Ok9wZW5HTFdvcmthcm91bmRzLAotICAgICAgICAiU29tZSBkcml2ZXJzIHRy
YWNrIENvcHlUZXh7U3VifUltYWdlIHRleHR1cmUgZGVwZW5kZW5jaWVzIGluY29ycmVjdGx5LiBG
bHVzaCIKLSAgICAgICAgIiBiZWZvcmUgZ2xEZWxldGVUZXh0dXJlcyBpbiB0aGlzIGNhc2UiLAot
ICAgICAgICAmbWVtYmVycywgImh0dHA6Ly9hbmdsZWJ1Zy5jb20vNDI2NyJ9OwotCi0gICAgLy8g
UmV3cml0ZSByb3ctbWFqb3IgbWF0cmljZXMgYXMgY29sdW1uLW1ham9yIGFzIGEgZHJpdmVyIGJ1
ZyB3b3JrYXJvdW5kIGlmCi0gICAgLy8gbmVjZXNzYXJ5LgotICAgIEZlYXR1cmUgcmV3cml0ZVJv
d01ham9yTWF0cmljZXMgPSB7Ci0gICAgICAgICJyZXdyaXRlX3Jvd19tYWpvcl9tYXRyaWNlcyIs
IEZlYXR1cmVDYXRlZ29yeTo6T3BlbkdMV29ya2Fyb3VuZHMsCi0gICAgICAgICJSZXdyaXRlIHJv
dyBtYWpvciBtYXRyaWNlcyBpbiBzaGFkZXJzIGFzIGNvbHVtbiBtYWpvciBhcyBhIGRyaXZlciBi
dWcgd29ya2Fyb3VuZCIsCi0gICAgICAgICZtZW1iZXJzLCAiaHR0cDovL2FuZ2xlYnVnLmNvbS8y
MjczIn07Ci0KLSAgICAvLyBCdWdzIGV4aXN0IGluIE9wZW5HTCBBTUQgZHJpdmVycyBvbiBXaW5k
b3dzIHRoYXQgcHJvZHVjZSBpbmNvcnJlY3QgcGlwZWxpbmUgc3RhdGUgZm9yCi0gICAgLy8gY29s
b3JNYXNraSBjYWxscy4KLSAgICBGZWF0dXJlIGRpc2FibGVEcmF3QnVmZmVyc0luZGV4ZWQgPSB7
ImRpc2FibGVfZHJhd19idWZmZXJzX2luZGV4ZWQiLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBGZWF0dXJlQ2F0ZWdvcnk6Ok9wZW5HTFdvcmthcm91bmRzLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRGlzYWJsZSBPRVNfZHJhd19i
dWZmZXJzX2luZGV4ZWQgZXh0ZW5zaW9uLiIsICZtZW1iZXJzfTsKLQotICAgIC8vIEdMX0VYVF9z
ZW1hcGhvcmVfZmQgZG9lc24ndCB3b3JrIHByb3Blcmx5IHdpdGggTWVzYSAxOS4zLjQgYW5kIGVh
cmxpZXIgdmVyc2lvbnMuCi0gICAgRmVhdHVyZSBkaXNhYmxlU2VtYXBob3JlRmQgPSB7ImRpc2Fi
bGVfc2VtYXBob3JlX2ZkIiwgRmVhdHVyZUNhdGVnb3J5OjpPcGVuR0xXb3JrYXJvdW5kcywKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRGlzYWJsZSBHTF9FWFRfc2VtYXBob3Jl
X2ZkIGV4dGVuc2lvbiIsICZtZW1iZXJzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJodHRwczovL2NyYnVnLmNvbS8xMDQ2NDYyIn07Ci0KLSAgICAvLyBHTF9FWFRfZGlzam9p
bnRfdGltZXJfcXVlcnkgZG9lc24ndCB3b3JrIHByb3Blcmx5IHdpdGggTGludXggVk1XYXJlIGRy
aXZlcnMuCi0gICAgRmVhdHVyZSBkaXNhYmxlVGltZXN0YW1wUXVlcmllcyA9IHsKLSAgICAgICAg
ImRpc2FibGVfdGltZXN0YW1wX3F1ZXJpZXMiLCBGZWF0dXJlQ2F0ZWdvcnk6Ok9wZW5HTFdvcmth
cm91bmRzLAotICAgICAgICAiRGlzYWJsZSBHTF9FWFRfZGlzam9pbnRfdGltZXJfcXVlcnkgZXh0
ZW5zaW9uIiwgJm1lbWJlcnMsICJodHRwczovL2NyYnVnLmNvbS84MTE2NjEifTsKLQotICAgIC8v
IFNvbWUgZHJpdmVycyB1c2UgbGluZWFyIGJsZW5kaW5nIHdoZW4gZ2VuZXJhdGluZyBtaXBtYXBz
IGZvciBzUkdCIHRleHR1cmVzLiBXb3JrIGFyb3VuZCB0aGlzCi0gICAgLy8gYnkgZ2VuZXJhdGlu
ZyBtaXBtYXBzIGluIGEgbGluZWFyIHRleHR1cmUgYW5kIGNvcHlpbmcgYmFjayB0byBzUkdCLgot
ICAgIEZlYXR1cmUgZW5jb2RlQW5kRGVjb2RlU1JHQkZvckdlbmVyYXRlTWlwbWFwID0gewotICAg
ICAgICAiZGVjb2RlX2VuY29kZV9zcmdiX2Zvcl9nZW5lcmF0ZW1pcG1hcCIsIEZlYXR1cmVDYXRl
Z29yeTo6T3BlbkdMV29ya2Fyb3VuZHMsCi0gICAgICAgICJEZWNvZGUgYW5kIGVuY29kZSBiZWZv
cmUgZ2VuZXJhdGVNaXBtYXAgZm9yIHNyZ2IgZm9ybWF0IHRleHR1cmVzLiIsICZtZW1iZXJzLAot
ICAgICAgICAiaHR0cDovL2FuZ2xlYnVnLmNvbS80NjQ2In07Ci0KLSAgICBGZWF0dXJlIGVtdWxh
dGVDb3B5VGV4SW1hZ2UyREZyb21SZW5kZXJidWZmZXJzID0gewotICAgICAgICAiZW11bGF0ZV9j
b3B5dGV4aW1hZ2UyZF9mcm9tX3JlbmRlcmJ1ZmZlcnMiLCBGZWF0dXJlQ2F0ZWdvcnk6Ok9wZW5H
TFdvcmthcm91bmRzLAotICAgICAgICAiQ29weVRleEltYWdlMkQgc3B1cmlvdXNseSByZXR1cm5z
IGVycm9ycyBvbiBpT1Mgd2hlbiBjb3B5aW5nIGZyb20gcmVuZGVyYnVmZmVycy4iLAotICAgICAg
ICAmbWVtYmVycywgImh0dHBzOi8vYW5nbGVidWcuY29tLzQ2NzQifTsKLQotICAgIEZlYXR1cmUg
ZGlzYWJsZUdQVVN3aXRjaGluZ1N1cHBvcnQgPSB7Ci0gICAgICAgICJkaXNhYmxlX2dwdV9zd2l0
Y2hpbmdfc3VwcG9ydCIsIEZlYXR1cmVDYXRlZ29yeTo6T3BlbkdMV29ya2Fyb3VuZHMsCi0gICAg
ICAgICJEaXNhYmxlIEdQVSBzd2l0Y2hpbmcgc3VwcG9ydCAodXNlIG9ubHkgdGhlIGxvdy1wb3dl
ciBHUFUpIG9uIG9sZGVyIE1hY0Jvb2sgUHJvcy4iLAotICAgICAgICAmbWVtYmVycywgImh0dHBz
Oi8vY3JidWcuY29tLzEwOTE4MjQifTsKLQotICAgIC8vIEtIUl9wYXJhbGxlbF9zaGFkZXJfY29t
cGlsZSBmYWlscyBUU0FOIG9uIExpbnV4LCBzbyB3ZSBhdm9pZCB1c2luZyBpdCB3aXRoIHRoaXMg
d29ya2Fyb3VuZC4KLSAgICBGZWF0dXJlIGRpc2FibGVOYXRpdmVQYXJhbGxlbENvbXBpbGUgPSB7
Ci0gICAgICAgICJkaXNhYmxlX25hdGl2ZV9wYXJhbGxlbF9jb21waWxlIiwgRmVhdHVyZUNhdGVn
b3J5OjpPcGVuR0xXb3JrYXJvdW5kcywKLSAgICAgICAgIkRvIG5vdCB1c2UgbmF0aXZlIEtIUl9w
YXJhbGxlbF9zaGFkZXJfY29tcGlsZSBldmVuIHdoZW4gYXZhaWxhYmxlLiIsICZtZW1iZXJzLAot
ICAgICAgICAiaHR0cDovL2NyYnVnLmNvbS8xMDk0ODY5In07Ci0KLSAgICBGZWF0dXJlIGVtdWxh
dGVQYWNrU2tpcFJvd3NBbmRQYWNrU2tpcFBpeGVscyA9IHsKLSAgICAgICAgImVtdWxhdGVfcGFj
a19za2lwX3Jvd3NfYW5kX3BhY2tfc2tpcF9waXhlbHMiLCBGZWF0dXJlQ2F0ZWdvcnk6Ok9wZW5H
TFdvcmthcm91bmRzLAotICAgICAgICAiR0xfUEFDS19TS0lQX1JPV1MgYW5kIEdMX1BBQ0tfU0tJ
UF9QSVhFTFMgYXJlIGlnbm9yZWQgaW4gQXBwbGUncyBPcGVuR0wgZHJpdmVyLiIsICZtZW1iZXJz
LAotICAgICAgICAiaHR0cHM6Ly9hbmdsZWJ1Zy5jb20vNDg0OSJ9OwotCi0gICAgLy8gU29tZSBk
cml2ZXJzIHJldHVybiBib2d1cy8xaHogdmFsdWVzIGZvciBHZXRNc2NSYXRlLCB3aGljaCB3ZSBt
YXkgd2FudCB0byBjbGFtcAotICAgIEZlYXR1cmUgY2xhbXBNc2NSYXRlID0gewotICAgICAgICAi
Y2xhbXBfbXNjX3JhdGUiLCBGZWF0dXJlQ2F0ZWdvcnk6Ok9wZW5HTFdvcmthcm91bmRzLAotICAg
ICAgICAiU29tZSBkcml2ZXJzIHJldHVybiBib2d1cyB2YWx1ZXMgZm9yIEdldE1zY1JhdGUsIHNv
IHdlIGNsYW1wIGl0IHRvIDMwSHoiLCAmbWVtYmVycywKLSAgICAgICAgImh0dHBzOi8vY3JidWcu
Y29tLzEwNDIzOTMifTsKLQotICAgIC8vIE1hYyBkcml2ZXJzIGdlbmVyYXRlIEdMX0lOVkFMSURf
VkFMVUUgd2hlbiBiaW5kaW5nIGEgdHJhbnNmb3JtIGZlZWRiYWNrIGJ1ZmZlciB3aXRoCi0gICAg
Ly8gZ2xCaW5kQnVmZmVyUmFuZ2UgYmVmb3JlIGZpcnN0IGJpbmRpbmcgaXQgdG8gc29tZSBnZW5l
cmljIGJpbmRpbmcgcG9pbnQuCi0gICAgRmVhdHVyZSBiaW5kVHJhbnNmb3JtRmVlZGJhY2tCdWZm
ZXJCZWZvcmVCaW5kQnVmZmVyUmFuZ2UgPSB7Ci0gICAgICAgICJiaW5kX3RyYW5zZm9ybV9mZWVk
YmFja19idWZmZXJfYmVmb3JlX2JpbmRfYnVmZmVyX3JhbmdlIiwKLSAgICAgICAgRmVhdHVyZUNh
dGVnb3J5OjpPcGVuR0xXb3JrYXJvdW5kcywKLSAgICAgICAgIkJpbmQgdHJhbnNmb3JtIGZlZWRi
YWNrIGJ1ZmZlcnMgdG8gdGhlIGdlbmVyaWMgYmluZGluZyBwb2ludCBiZWZvcmUgY2FsbGluZyAi
Ci0gICAgICAgICJnbEJpbmRCdWZmZXJCYXNlIG9yIGdsQmluZEJ1ZmZlclJhbmdlLiIsCi0gICAg
ICAgICZtZW1iZXJzLCAiaHR0cHM6Ly9hbmdsZWJ1Zy5jb20vNTE0MCJ9OwotCi0gICAgLy8gU3Bl
Y3VsYXRpdmUgZml4IGZvciBpc3N1ZXMgb24gTGludXgvV2F5bGFuZCB3aGVyZSBleHBvc2luZyBH
TFhfT01MX3N5bmNfY29udHJvbCByZW5kZXJzCi0gICAgLy8gQ2hyb21lIHVudXNhYmxlCi0gICAg
RmVhdHVyZSBkaXNhYmxlU3luY0NvbnRyb2xTdXBwb3J0ID0gewotICAgICAgICAiZGlzYWJsZV9z
eW5jX2NvbnRyb2xfc3VwcG9ydCIsIEZlYXR1cmVDYXRlZ29yeTo6T3BlbkdMV29ya2Fyb3VuZHMs
Ci0gICAgICAgICJTcGVjdWxhdGl2ZSBmaXggZm9yIGlzc3VlcyBvbiBMaW51eC9XYXlsYW5kIHdo
ZXJlIGV4cG9zaW5nIEdMWF9PTUxfc3luY19jb250cm9sIHJlbmRlcnMgIgotICAgICAgICAiQ2hy
b21lIHVudXNhYmxlIiwKLSAgICAgICAgJm1lbWJlcnMsICJodHRwczovL2NyYnVnLmNvbS8xMTM3
ODUxIn07Ci0KLSAgICAvLyBCdWZmZXJzIG5lZWQgdG8gbWFpbnRhaW4gYSBzaGFkb3cgY29weSBv
ZiBkYXRhIHdoZW4gYnVmZmVyIGRhdGEgcmVhZGJhY2sgaXMgbm90IHBvc3NpYmxlCi0gICAgLy8g
dGhyb3VnaCB0aGUgR0wgQVBJCi0gICAgRmVhdHVyZSBrZWVwQnVmZmVyU2hhZG93Q29weSA9IHsK
LSAgICAgICAgImtlZXBfYnVmZmVyX3NoYWRvd19jb3B5IiwgRmVhdHVyZUNhdGVnb3J5OjpPcGVu
R0xXb3JrYXJvdW5kcywKLSAgICAgICAgIk1haW50YWluIGEgc2hhZG93IGNvcHkgb2YgYnVmZmVy
IGRhdGEgd2hlbiB0aGUgR0wgQVBJIGRvZXMgbm90IHBlcm1pdCByZWFkaW5nIGRhdGEgYmFjay4i
LAotICAgICAgICAmbWVtYmVyc307Ci0KLSAgICAvLyBnbEdlbmVyYXRlTWlwbWFwIGZhaWxzIGlm
IHRoZSB6ZXJvIHRleHR1cmUgbGV2ZWwgaXMgbm90IHNldCBvbiBzb21lIE1hYyBkcml2ZXJzCi0g
ICAgRmVhdHVyZSBzZXRaZXJvTGV2ZWxCZWZvcmVHZW5lcmF0ZU1pcG1hcCA9IHsKLSAgICAgICAg
InNldF96ZXJvX2xldmVsX2JlZm9yZV9nZW5lcmF0aW5nX21pcG1hcCIsIEZlYXR1cmVDYXRlZ29y
eTo6T3BlbkdMV29ya2Fyb3VuZHMsCi0gICAgICAgICJnbEdlbmVyYXRlTWlwbWFwIGZhaWxzIGlm
IHRoZSB6ZXJvIHRleHR1cmUgbGV2ZWwgaXMgbm90IHNldCBvbiBzb21lIE1hYyBkcml2ZXJzLiIs
Ci0gICAgICAgICZtZW1iZXJzfTsKLQotICAgIC8vIE9uIG1hY09TIHdpdGggQU1EIEdQVXMsIHBh
Y2tlZCBjb2xvciBmb3JtYXRzIGxpa2UgUkdCNTY1IGFuZCBSR0JBNDQ0NCBhcmUgYnVnZ3kuIFBy
b21vdGUgdGhlbQotICAgIC8vIHRvIDggYml0IHBlciBjaGFubmVsIGZvcm1hdHMuCi0gICAgRmVh
dHVyZSBwcm9tb3RlUGFja2VkRm9ybWF0c1RvOEJpdFBlckNoYW5uZWwgPSB7Ci0gICAgICAgICJw
cm9tb3RlX3BhY2tlZF9mb3JtYXRzX3RvXzhfYml0X3Blcl9jaGFubmVsIiwgRmVhdHVyZUNhdGVn
b3J5OjpPcGVuR0xXb3JrYXJvdW5kcywKLSAgICAgICAgIlBhY2tlZCBjb2xvciBmb3JtYXRzIGFy
ZSBidWdneSBvbiBNYWNzIHdpdGggQU1EIEdQVXMiLCAmbWVtYmVycywKLSAgICAgICAgImh0dHA6
Ly9hbmdsZWJ1Zy5jb20vNTQ2OSJ9OwotCi0gICAgLy8gSWYgZ2xfRnJhZ0NvbG9yIGlzIG5vdCB3
cml0dGVuIGJ5IGZyYWdtZW50IHNoYWRlciwgaXQgbWF5IGNhdXNlIGNvbnRleHQgbG9zdCB3aXRo
IEFkcmVubyA0MngKLSAgICAvLyBhbmQgM3h4LgotICAgIEZlYXR1cmUgaW5pdEZyYWdtZW50T3V0
cHV0VmFyaWFibGVzID0gewotICAgICAgICAiaW5pdF9mcmFnbWVudF9vdXRwdXRfdmFyaWFibGVz
IiwgRmVhdHVyZUNhdGVnb3J5OjpPcGVuR0xXb3JrYXJvdW5kcywKLSAgICAgICAgIk5vIGluaXQg
Z2xfRnJhZ0NvbG9yIGNhdXNlcyBjb250ZXh0IGxvc3QiLCAmbWVtYmVycywgImh0dHA6Ly9jcmJ1
Zy5jb20vMTE3MTM3MSJ9OwotCi0gICAgLy8gT24gbWFjT1Mgd2l0aCBJbnRlbCBHUFVzLCBpbnN0
YW5jZWQgYXJyYXkgd2l0aCBkaXZpc29yID4gMCBpcyBidWdneSB3aGVuIGZpcnN0ID4gMCBpbgot
ICAgIC8vIGRyYXdBcnJheXNJbnN0YW5jZWQuIFNoaWZ0IHRoZSBhdHRyaWJ1dGVzIHdpdGggZXh0
cmEgb2Zmc2V0IHRvIHdvcmthcm91bmQuCi0gICAgRmVhdHVyZSBzaGlmdEluc3RhbmNlZEFycmF5
RGF0YVdpdGhFeHRyYU9mZnNldCA9IHsKLSAgICAgICAgInNoaWZ0X2luc3RhbmNlZF9hcnJheV9k
YXRhX3dpdGhfb2Zmc2V0IiwgRmVhdHVyZUNhdGVnb3J5OjpPcGVuR0xXb3JrYXJvdW5kcywKLSAg
ICAgICAgImdsRHJhd0FycmF5c0luc3RhbmNlZCBpcyBidWdneSBvbiBjZXJ0YWluIG5ldyBNYWMg
SW50ZWwgR1BVcyIsICZtZW1iZXJzLAotICAgICAgICAiaHR0cDovL2NyYnVnLmNvbS8xMTQ0MjA3
In07Ci0KLSAgICAvLyBBTkdMRSBuZWVkcyB0byBzdXBwb3J0IGRldmljZXMgdGhhdCBoYXZlIG5v
IG5hdGl2ZSBWQU9zLiBTeW5jIGV2ZXJ5dGhpbmcgdG8gdGhlIGRlZmF1bHQgVkFPLgotICAgIEZl
YXR1cmUgc3luY1ZlcnRleEFycmF5c1RvRGVmYXVsdCA9IHsKLSAgICAgICAgInN5bmNfdmVydGV4
X2FycmF5c190b19kZWZhdWx0IiwgRmVhdHVyZUNhdGVnb3J5OjpPcGVuR0xXb3JrYXJvdW5kcywK
LSAgICAgICAgIk9ubHkgdXNlIHRoZSBkZWZhdWx0IFZBTyBiZWNhdXNlIG9mIG1pc3Npbmcgc3Vw
cG9ydCBvciBkcml2ZXIgYnVncyIsICZtZW1iZXJzLAotICAgICAgICAiaHR0cDovL2FuZ2xlYnVn
LmNvbS81NTc3In07Ci0KLSAgICAvLyBPbiBkZXNrdG9wIExpbnV4L0FNRCB3aGVuIHVzaW5nIHRo
ZSBhbWRncHUgZHJpdmVycywgdGhlIHByZWNpc2Uga2VybmVsIGFuZCBEUk0gdmVyc2lvbiBhcmUK
LSAgICAvLyBsZWFrZWQgdmlhIEdMX1JFTkRFUkVSLiBXZSB3b3JrYXJvdW5kIHRoaXMgdG8gaW1w
cm92ZSB1c2VyIHByaXZhY3kuCi0gICAgRmVhdHVyZSBzYW5pdGl6ZUFtZEdwdVJlbmRlcmVyU3Ry
aW5nID0gewotICAgICAgICAic2FuaXRpemVfYW1kZ3B1X3JlbmRlcmVyX3N0cmluZyIsIEZlYXR1
cmVDYXRlZ29yeTo6T3BlbkdMV29ya2Fyb3VuZHMsCi0gICAgICAgICJTdHJpcCBwcmVjaXNlIGtl
cm5lbCBhbmQgRFJNIHZlcnNpb24gaW5mb3JtYXRpb24gZnJvbSBhbWRncHUgcmVuZGVyZXIgc3Ry
aW5ncy4iLCAmbWVtYmVycywKLSAgICAgICAgImh0dHA6Ly9jcmJ1Zy5jb20vMTE4MTE5MyJ9Owot
Ci0gICAgLy8gSW1hZ2luYXRpb24gR0wgZHJpdmVycyBhcmUgYnVnZ3kgd2l0aCBjb250ZXh0IHN3
aXRjaGluZy4gV2UgbmVlZCB0byB1YmluZCBmYm8gdG8gd29ya2Fyb3VuZCBhCi0gICAgLy8gY3Jh
c2ggaW4gdGhlIGRyaXZlci4KLSAgICBGZWF0dXJlIHVuYmluZEZCT09uQ29udGV4dFN3aXRjaCA9
IHsidW5iaW5kX2Zib19iZWZvcmVfc3dpdGNoaW5nX2NvbnRleHQiLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEZlYXR1cmVDYXRlZ29yeTo6T3BlbkdMV29ya2Fyb3Vu
ZHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkltYWdpbmF0aW9u
IEdMIGRyaXZlcnMgYXJlIGJ1Z2d5IHdpdGggY29udGV4dCBzd2l0Y2hpbmcuIiwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbWVtYmVycywgImh0dHA6Ly9jcmJ1Zy5j
b20vMTE4MTE5MyJ9OwotCi0gICAgRmVhdHVyZSBmbHVzaE9uRnJhbWVidWZmZXJDaGFuZ2UgPSB7
ImZsdXNoX29uX2ZyYW1lYnVmZmVyX2NoYW5nZSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgRmVhdHVyZUNhdGVnb3J5OjpPcGVuR0xXb3JrYXJvdW5kcywKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU3dpdGNoaW5nIGZyYW1lYnVmZmVy
cyB3aXRob3V0IGEgZmx1c2ggY2FuIGxlYWQgdG8gIgotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJjcmFzaGVzIG9uIEludGVsIDl0aCBHZW5lcmF0aW9uIEdQVSBNYWNz
LiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm1lbWJlcnMsICJo
dHRwOi8vY3JidWcuY29tLzExODEwNjgifTsKLQotICAgIEZlYXR1cmUgZGlzYWJsZU11bHRpc2Ft
cGxlZFJlbmRlclRvVGV4dHVyZSA9IHsKLSAgICAgICAgImRpc2FibGVfbXV0bGlzYW1wbGVkX3Jl
bmRlcl90b190ZXh0dXJlIiwgRmVhdHVyZUNhdGVnb3J5OjpPcGVuR0xXb3JrYXJvdW5kcywKLSAg
ICAgICAgIk1hbnkgZHJpdmVycyBoYXZlIGJ1Z3Mgd2hlbiB1c2luZyBHTF9FWFRfbXVsdGlzYW1w
bGVkX3JlbmRlcl90b190ZXh0dXJlIiwgJm1lbWJlcnMsCi0gICAgICAgICJodHRwOi8vYW5nbGVi
dWcuY29tLzI4OTQifTsKLQotICAgIC8vIE1hYyBPcGVuR0wgZHJpdmVycyBvZnRlbiBoYW5nIHdo
ZW4gY2FsbGluZyBnbFRleFN1YkltYWdlIHdpdGggPjEyMGtiIG9mIGRhdGEuIEluc3RlYWQsIHVw
bG9hZAotICAgIC8vIHRoZSBkYXRhIGluIDwxMjBrYiBjaHVua3MuCi0gICAgc3RhdGljIGNvbnN0
ZXhwciBjb25zdCBzaXplX3Qga1VwbG9hZFRleHR1cmVEYXRhSW5DaHVua3NVcGxvYWRTaXplID0g
KDEyMCAqIDEwMjQpIC0gMTsKLSAgICBGZWF0dXJlIHVwbG9hZFRleHR1cmVEYXRhSW5DaHVua3Mg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSB7Ci0gICAgICAgICJjaHVua2VkX3Rl
eHR1cmVfdXBsb2FkIiwgRmVhdHVyZUNhdGVnb3J5OjpPcGVuR0xXb3JrYXJvdW5kcywKLSAgICAg
ICAgIlVwbG9hZCB0ZXh0dXJlIGRhdGEgaW4gPDEyMGtiIGNodW5rcyB0byB3b3JrIGFyb3VuZCBN
YWMgZHJpdmVyIGhhbmdzIGFuZCBjcmFzaGVzLiIsCi0gICAgICAgICZtZW1iZXJzLCAiaHR0cDov
L2NyYnVnLmNvbS8xMTgxMDY4In07Ci0KLSAgICAvLyBRdWFsY29tbSBkcml2ZXJzIG1heSBzb21l
dGltZXMgcmVqZWN0IGltbXV0YWJsZSBBU1RDIHNsaWNlZCAzRCB0ZXh0dXJlCi0gICAgLy8gYWxs
b2NhdGlvbi4gSW5zdGVhZCwgdXNlIG5vbi1pbW11dGFibGUgYWxsb2NhdGlvbiBpbnRlcm5hbGx5
LgotICAgIEZlYXR1cmUgZW11bGF0ZUltbXV0YWJsZUNvbXByZXNzZWRUZXh0dXJlM0QgPSB7Ci0g
ICAgICAgICJlbXVsYXRlX2ltbXV0YWJsZV9jb21wcmVzc2VkX3RleHR1cmVfM2QiLCBGZWF0dXJl
Q2F0ZWdvcnk6Ok9wZW5HTFdvcmthcm91bmRzLAotICAgICAgICAiVXNlIG5vbi1pbW11dGFibGUg
dGV4dHVyZSBhbGxvY2F0aW9uIHRvIHdvcmsgYXJvdW5kIGEgZHJpdmVyIGJ1Zy4iLCAmbWVtYmVy
cywKLSAgICAgICAgImh0dHBzOi8vY3JidWcuY29tLzEwNjAwMTIifTsKLQotICAgIC8vIERlc2t0
b3AgR0wgZG9lcyBub3Qgc3VwcG9ydCBSR0IxMCAod2l0aG91dCBhbHBoYSkgYnV0IGl0IGlzIHJl
cXVpcmVkIGZvcgotICAgIC8vIEdMX0VYVF90ZXh0dXJlX3R5cGVfMl8xMF8xMF8xMF9SRVYuIEVt
dWxhdGUgaXQgYnkgc2V0dGluZyBhIHNhbXBsZXIgcGFyYW1ldGVyIHRvIGFsd2F5cwotICAgIC8v
IHNhbXBsZSAxIGZyb20gYWxwaGEuCi0gICAgRmVhdHVyZSBlbXVsYXRlUkdCMTAgPSB7ImVtdWxh
dGVfcmdiMTAiLCBGZWF0dXJlQ2F0ZWdvcnk6Ok9wZW5HTFdvcmthcm91bmRzLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJFbXVsYXRlIFJHQjEwIHN1cHBvcnQgdXNpbmcgUkdCMTBfQTIu
IiwgJm1lbWJlcnMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgImh0dHBzOi8vY3JidWcu
Y29tLzEzMDA1NzUifTsKLX07Ci0KLWlubGluZSBGZWF0dXJlc0dMOjpGZWF0dXJlc0dMKCkgID0g
ZGVmYXVsdDsKLWlubGluZSBGZWF0dXJlc0dMOjp+RmVhdHVyZXNHTCgpID0gZGVmYXVsdDsKLQot
fSAgLy8gbmFtZXNwYWNlIGFuZ2xlCi0KLSNlbmRpZiAgLy8gQU5HTEVfUExBVEZPUk1fRkVBVFVS
RVNHTF9IXwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvaW5jbHVkZS9wbGF0
Zm9ybS9GZWF0dXJlc0dMX2F1dG9nZW4uaCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL2luY2x1
ZGUvcGxhdGZvcm0vRmVhdHVyZXNHTF9hdXRvZ2VuLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjdjZmQzNmMxNWU0
MTlhNDVkMzkzMDcxMTY0ZDEwMWRhZDZlMDBjOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L0FOR0xFL2luY2x1ZGUvcGxhdGZvcm0vRmVhdHVyZXNHTF9hdXRvZ2VuLmgKQEAg
LTAsMCArMSw0NTIgQEAKKy8vIEdFTkVSQVRFRCBGSUxFIC0gRE8gTk9UIEVESVQuCisvLyBHZW5l
cmF0ZWQgYnkgZ2VuX2ZlYXR1cmVzLnB5IHVzaW5nIGRhdGEgZnJvbSBnbF9mZWF0dXJlcy5qc29u
LgorLy8KKy8vIENvcHlyaWdodCAyMDIyIFRoZSBBTkdMRSBQcm9qZWN0IEF1dGhvcnMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBi
eSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisvLyBmb3VuZCBpbiB0aGUgTElDRU5T
RSBmaWxlLgorLy8KKy8vIEZlYXR1cmVzR0xfYXV0b2dlbi5oOiBhbmdsZTo6RmVhdHVyZXMgYW5k
IHdvcmthcm91bmRzIGZvciBHTCBkcml2ZXIgYnVncyBhbmQgb3RoZXIgaXNzdWVzLgorCisjaWZu
ZGVmIEFOR0xFX1BMQVRGT1JNX0ZFQVRVUkVTR0xfSF8KKyNkZWZpbmUgQU5HTEVfUExBVEZPUk1f
RkVBVFVSRVNHTF9IXworCisjaW5jbHVkZSAicGxhdGZvcm0vRmVhdHVyZS5oIgorCituYW1lc3Bh
Y2UgYW5nbGUKK3sKKworc3RydWN0IEZlYXR1cmVzR0wgOiBGZWF0dXJlU2V0QmFzZQoreworICAg
IEZlYXR1cmVzR0woKTsKKyAgICB+RmVhdHVyZXNHTCgpOworCisgICAgRmVhdHVyZUluZm8gYXZv
aWQxQml0QWxwaGFUZXh0dXJlRm9ybWF0cyA9IHsKKyAgICAgICAgImF2b2lkMUJpdEFscGhhVGV4
dHVyZUZvcm1hdHMiLAorICAgICAgICBGZWF0dXJlQ2F0ZWdvcnk6Ok9wZW5HTFdvcmthcm91bmRz
LAorICAgICAgICAiSXNzdWUgd2l0aCAxLWJpdCBhbHBoYSBmcmFtZWJ1ZmZlciBmb3JtYXRzIiwK
KyAgICAgICAgJm1lbWJlcnMsCisgICAgfTsKKworICAgIEZlYXR1cmVJbmZvIFJHQkE0SXNOb3RT
dXBwb3J0ZWRGb3JDb2xvclJlbmRlcmluZyA9IHsKKyAgICAgICAgIlJHQkE0SXNOb3RTdXBwb3J0
ZWRGb3JDb2xvclJlbmRlcmluZyIsCisgICAgICAgIEZlYXR1cmVDYXRlZ29yeTo6T3BlbkdMV29y
a2Fyb3VuZHMsCisgICAgICAgICJHTF9SR0JBNCBpcyBub3QgY29sb3IgcmVuZGVyYWJsZSIsCisg
ICAgICAgICZtZW1iZXJzLAorICAgIH07CisKKyAgICBGZWF0dXJlSW5mbyBhbGxvd0VUQ0Zvcm1h
dHMgPSB7CisgICAgICAgICJhbGxvd0VUQ0Zvcm1hdHMiLAorICAgICAgICBGZWF0dXJlQ2F0ZWdv
cnk6Ok9wZW5HTFdvcmthcm91bmRzLAorICAgICAgICAiRW5hYmxlIEVUQzIvRUFDIG9uIGRlc2t0
b3AgT3BlbkdMIiwKKyAgICAgICAgJm1lbWJlcnMsCisgICAgfTsKKworICAgIEZlYXR1cmVJbmZv
IGRvZXNTUkdCQ2xlYXJzT25MaW5lYXJGcmFtZWJ1ZmZlckF0dGFjaG1lbnRzID0geworICAgICAg
ICAiZG9lc1NSR0JDbGVhcnNPbkxpbmVhckZyYW1lYnVmZmVyQXR0YWNobWVudHMiLAorICAgICAg
ICBGZWF0dXJlQ2F0ZWdvcnk6Ok9wZW5HTFdvcmthcm91bmRzLAorICAgICAgICAiSXNzdWUgY2xl
YXJpbmcgZnJhbWVidWZmZXJzIHdpdGggbGluZWFyIGF0dGFjaG1lbnRzIHdoZW4gR0xfRlJBTUVC
VUZGRVJfU1JHQiBpcyBlbmFibGVkIiwKKyAgICAgICAgJm1lbWJlcnMsCisgICAgfTsKKworICAg
IEZlYXR1cmVJbmZvIGRvV2hpbGVHTFNMQ2F1c2VzR1BVSGFuZyA9IHsKKyAgICAgICAgImRvV2hp
bGVHTFNMQ2F1c2VzR1BVSGFuZyIsIEZlYXR1cmVDYXRlZ29yeTo6T3BlbkdMV29ya2Fyb3VuZHMs
CisgICAgICAgICJTb21lIEdMU0wgY29uc3RydWN0cyBpbnZvbHZpbmcgZG8td2hpbGUgbG9vcHMg
Y2F1c2UgR1BVIGhhbmdzIiwgJm1lbWJlcnMsCisgICAgICAgICJodHRwOi8vY3JidWcuY29tLzY0
NDY2OSJ9OworCisgICAgRmVhdHVyZUluZm8gdmVydGV4SUREb2VzTm90SW5jbHVkZUJhc2VWZXJ0
ZXggPSB7CisgICAgICAgICJ2ZXJ0ZXhJRERvZXNOb3RJbmNsdWRlQmFzZVZlcnRleCIsCisgICAg
ICAgIEZlYXR1cmVDYXRlZ29yeTo6T3BlbkdMV29ya2Fyb3VuZHMsCisgICAgICAgICJnbF9WZXJ0
ZXhJRCBpbiBHTFNMIHZlcnRleCBzaGFkZXIgZG9lc24ndCBpbmNsdWRlIGJhc2UgdmVydGV4IHZh
bHVlIiwKKyAgICAgICAgJm1lbWJlcnMsCisgICAgfTsKKworICAgIEZlYXR1cmVJbmZvIGZpbmlz
aERvZXNOb3RDYXVzZVF1ZXJpZXNUb0JlQXZhaWxhYmxlID0geworICAgICAgICAiZmluaXNoRG9l
c05vdENhdXNlUXVlcmllc1RvQmVBdmFpbGFibGUiLAorICAgICAgICBGZWF0dXJlQ2F0ZWdvcnk6
Ok9wZW5HTFdvcmthcm91bmRzLAorICAgICAgICAiZ2xGaW5pc2ggZG9lc24ndCBjYXVzZSBhbGwg
cXVlcmllcyB0byByZXBvcnQgYXZhaWxhYmxlIHJlc3VsdCIsCisgICAgICAgICZtZW1iZXJzLAor
ICAgIH07CisKKyAgICBGZWF0dXJlSW5mbyBhbHdheXNDYWxsVXNlUHJvZ3JhbUFmdGVyTGluayA9
IHsKKyAgICAgICAgImFsd2F5c0NhbGxVc2VQcm9ncmFtQWZ0ZXJMaW5rIiwgRmVhdHVyZUNhdGVn
b3J5OjpPcGVuR0xXb3JrYXJvdW5kcywKKyAgICAgICAgIkFsd2F5cyBjYWxsIHVzZVByb2dyYW0g
YWZ0ZXIgYSBzdWNjZXNzZnVsIGxpbmsgdG8gYXZvaWQgYSBkcml2ZXIgYnVnIiwgJm1lbWJlcnMs
CisgICAgICAgICJodHRwOi8vY3JidWcuY29tLzExMDI2MyJ9OworCisgICAgRmVhdHVyZUluZm8g
dW5wYWNrT3ZlcmxhcHBpbmdSb3dzU2VwYXJhdGVseVVucGFja0J1ZmZlciA9IHsKKyAgICAgICAg
InVucGFja092ZXJsYXBwaW5nUm93c1NlcGFyYXRlbHlVbnBhY2tCdWZmZXIiLAorICAgICAgICBG
ZWF0dXJlQ2F0ZWdvcnk6Ok9wZW5HTFdvcmthcm91bmRzLAorICAgICAgICAiSW4gdGhlIGNhc2Ug
b2YgdW5wYWNraW5nIGZyb20gYSBwaXhlbCB1bnBhY2sgYnVmZmVyLCB1bnBhY2sgb3ZlcmxhcHBp
bmcgcm93cyByb3cgYnkgcm93IiwKKyAgICAgICAgJm1lbWJlcnMsCisgICAgfTsKKworICAgIEZl
YXR1cmVJbmZvIHBhY2tPdmVybGFwcGluZ1Jvd3NTZXBhcmF0ZWx5UGFja0J1ZmZlciA9IHsKKyAg
ICAgICAgInBhY2tPdmVybGFwcGluZ1Jvd3NTZXBhcmF0ZWx5UGFja0J1ZmZlciIsCisgICAgICAg
IEZlYXR1cmVDYXRlZ29yeTo6T3BlbkdMV29ya2Fyb3VuZHMsCisgICAgICAgICJJbiB0aGUgY2Fz
ZSBvZiBwYWNraW5nIHRvIGEgcGl4ZWwgcGFjayBidWZmZXIsIHBhY2sgb3ZlcmxhcHBpbmcgcm93
cyByb3cgYnkgcm93IiwKKyAgICAgICAgJm1lbWJlcnMsCisgICAgfTsKKworICAgIEZlYXR1cmVJ
bmZvIGluaXRpYWxpemVDdXJyZW50VmVydGV4QXR0cmlidXRlcyA9IHsKKyAgICAgICAgImluaXRp
YWxpemVDdXJyZW50VmVydGV4QXR0cmlidXRlcyIsCisgICAgICAgIEZlYXR1cmVDYXRlZ29yeTo6
T3BlbkdMV29ya2Fyb3VuZHMsCisgICAgICAgICJEdXJpbmcgaW5pdGlhbGl6YXRpb24sIGFzc2ln
biB0aGUgY3VycmVudCB2ZXJ0ZXggYXR0cmlidXRlcyB0byB0aGUgc3BlYy1tYW5kYXRlZCBkZWZh
dWx0cyIsCisgICAgICAgICZtZW1iZXJzLAorICAgIH07CisKKyAgICBGZWF0dXJlSW5mbyBlbXVs
YXRlQWJzSW50RnVuY3Rpb24gPSB7ImVtdWxhdGVBYnNJbnRGdW5jdGlvbiIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZlYXR1cmVDYXRlZ29yeTo6T3BlbkdMV29y
a2Fyb3VuZHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhYnMo
aSkgd2hlcmUgaSBpcyBhbiBpbnRlZ2VyIHJldHVybnMgdW5leHBlY3RlZCByZXN1bHQiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbWVtYmVycywgImh0dHA6Ly9j
cmJ1Zy5jb20vNjQyMjI3In07CisKKyAgICBGZWF0dXJlSW5mbyBhZGRBbmRUcnVlVG9Mb29wQ29u
ZGl0aW9uID0geworICAgICAgICAiYWRkQW5kVHJ1ZVRvTG9vcENvbmRpdGlvbiIsCisgICAgICAg
IEZlYXR1cmVDYXRlZ29yeTo6T3BlbkdMV29ya2Fyb3VuZHMsCisgICAgICAgICJDYWxjdWxhdGlv
biBvZiBsb29wIGNvbmRpdGlvbnMgaW4gZm9yIGFuZCB3aGlsZSBsb29wIGhhcyBidWciLAorICAg
ICAgICAmbWVtYmVycywKKyAgICB9OworCisgICAgRmVhdHVyZUluZm8gdW5wYWNrTGFzdFJvd1Nl
cGFyYXRlbHlGb3JQYWRkaW5nSW5jbHVzaW9uID0geworICAgICAgICAidW5wYWNrTGFzdFJvd1Nl
cGFyYXRlbHlGb3JQYWRkaW5nSW5jbHVzaW9uIiwgRmVhdHVyZUNhdGVnb3J5OjpPcGVuR0xXb3Jr
YXJvdW5kcywKKyAgICAgICAgIldoZW4gdXBsb2FkaW5nIHRleHR1cmVzIGZyb20gYW4gdW5wYWNr
IGJ1ZmZlciwgc29tZSBkcml2ZXJzIGNvdW50IGFuIGV4dHJhIHJvdyBwYWRkaW5nIiwKKyAgICAg
ICAgJm1lbWJlcnMsICJodHRwOi8vYW5nbGVidWcuY29tLzE1MTIifTsKKworICAgIEZlYXR1cmVJ
bmZvIHBhY2tMYXN0Um93U2VwYXJhdGVseUZvclBhZGRpbmdJbmNsdXNpb24gPSB7CisgICAgICAg
ICJwYWNrTGFzdFJvd1NlcGFyYXRlbHlGb3JQYWRkaW5nSW5jbHVzaW9uIiwgRmVhdHVyZUNhdGVn
b3J5OjpPcGVuR0xXb3JrYXJvdW5kcywKKyAgICAgICAgIldoZW4gdXBsb2FkaW5nIHRleHR1cmVz
IGZyb20gYW4gcGFjayBidWZmZXIsIHNvbWUgZHJpdmVycyBjb3VudCBhbiBleHRyYSByb3cgcGFk
ZGluZyIsCisgICAgICAgICZtZW1iZXJzLCAiaHR0cDovL2FuZ2xlYnVnLmNvbS8xNTEyIn07CisK
KyAgICBGZWF0dXJlSW5mbyBlbXVsYXRlSXNuYW5GbG9hdCA9IHsiZW11bGF0ZUlzbmFuRmxvYXQi
LCBGZWF0dXJlQ2F0ZWdvcnk6Ok9wZW5HTFdvcmthcm91bmRzLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJVc2luZyBpc25hbigpIG9uIGhpZ2hwIGZsb2F0IHdpbGwgZ2V0
IHdyb25nIGFuc3dlciIsICZtZW1iZXJzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJodHRwOi8vY3JidWcuY29tLzY1MDU0NyJ9OworCisgICAgRmVhdHVyZUluZm8gdXNl
VW51c2VkQmxvY2tzV2l0aFN0YW5kYXJkT3JTaGFyZWRMYXlvdXQgPSB7CisgICAgICAgICJ1c2VV
bnVzZWRCbG9ja3NXaXRoU3RhbmRhcmRPclNoYXJlZExheW91dCIsCisgICAgICAgIEZlYXR1cmVD
YXRlZ29yeTo6T3BlbkdMV29ya2Fyb3VuZHMsCisgICAgICAgICJVbnVzZWQgc3RkMTQwIG9yIHNo
YXJlZCB1bmlmb3JtIGJsb2NrcyB3aWxsIGJlIHRyZWF0ZWQgYXMgaW5hY3RpdmUiLAorICAgICAg
ICAmbWVtYmVycywKKyAgICB9OworCisgICAgRmVhdHVyZUluZm8gcmVtb3ZlSW52YXJpYW50QW5k
Q2VudHJvaWRGb3JFU1NMMyA9IHsKKyAgICAgICAgInJlbW92ZUludmFyaWFudEFuZENlbnRyb2lk
Rm9yRVNTTDMiLAorICAgICAgICBGZWF0dXJlQ2F0ZWdvcnk6Ok9wZW5HTFdvcmthcm91bmRzLAor
ICAgICAgICAiRml4IHNwZWMgZGlmZmVyZW5jZSBiZXR3ZWVuIEdMU0wgNC4xIG9yIGxvd2VyIGFu
ZCBFU1NMMyIsCisgICAgICAgICZtZW1iZXJzLAorICAgIH07CisKKyAgICBGZWF0dXJlSW5mbyBy
ZXdyaXRlRmxvYXRVbmFyeU1pbnVzT3BlcmF0b3IgPSB7CisgICAgICAgICJyZXdyaXRlRmxvYXRV
bmFyeU1pbnVzT3BlcmF0b3IiLCBGZWF0dXJlQ2F0ZWdvcnk6Ok9wZW5HTFdvcmthcm91bmRzLAor
ICAgICAgICAiVXNpbmcgJy08ZmxvYXQ+JyB3aWxsIGdldCB3cm9uZyBhbnN3ZXIiLCAmbWVtYmVy
cywgImh0dHA6Ly9jcmJ1Zy5jb20vMzA4MzY2In07CisKKyAgICBGZWF0dXJlSW5mbyBlbXVsYXRl
QXRhbjJGbG9hdCA9IHsiZW11bGF0ZUF0YW4yRmxvYXQiLCBGZWF0dXJlQ2F0ZWdvcnk6Ok9wZW5H
TFdvcmthcm91bmRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhdGFu
KHksIHgpIG1heSByZXR1cm4gYSB3cm9uZyBhbnN3ZXIiLCAmbWVtYmVycywKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiaHR0cDovL2NyYnVnLmNvbS82NzIzODAifTsKKwor
ICAgIEZlYXR1cmVJbmZvIHJlYXBwbHlVQk9CaW5kaW5nc0FmdGVyVXNpbmdCaW5hcnlQcm9ncmFt
ID0geworICAgICAgICAicmVhcHBseVVCT0JpbmRpbmdzQWZ0ZXJVc2luZ0JpbmFyeVByb2dyYW0i
LCBGZWF0dXJlQ2F0ZWdvcnk6Ok9wZW5HTFdvcmthcm91bmRzLAorICAgICAgICAiU29tZSBkcml2
ZXJzIGZvcmdldCBhYm91dCBVQk8gYmluZGluZ3Mgd2hlbiB1c2luZyBwcm9ncmFtIGJpbmFyaWVz
IiwgJm1lbWJlcnMsCisgICAgICAgICJodHRwOi8vYW5nbGVidWcuY29tLzE2MzcifTsKKworICAg
IEZlYXR1cmVJbmZvIGVtdWxhdGVNYXhWZXJ0ZXhBdHRyaWJTdHJpZGUgPSB7CisgICAgICAgICJl
bXVsYXRlTWF4VmVydGV4QXR0cmliU3RyaWRlIiwgRmVhdHVyZUNhdGVnb3J5OjpPcGVuR0xXb3Jr
YXJvdW5kcywKKyAgICAgICAgIlNvbWUgZHJpdmVycyByZXR1cm4gMCB3aGVuIE1BWF9WRVJURVhf
QVRUUklCX1NUUklFRCBxdWVyaWVkIiwgJm1lbWJlcnMsCisgICAgICAgICJodHRwOi8vYW5nbGVi
dWcuY29tLzE5MzYifTsKKworICAgIEZlYXR1cmVJbmZvIGRvbnRJbml0aWFsaXplVW5pbml0aWFs
aXplZExvY2FscyA9IHsKKyAgICAgICAgImRvbnRJbml0aWFsaXplVW5pbml0aWFsaXplZExvY2Fs
cyIsIEZlYXR1cmVDYXRlZ29yeTo6T3BlbkdMV29ya2Fyb3VuZHMsCisgICAgICAgICJJbml0aWFs
aXppbmcgdW5pbml0aWFsaXplZCBsb2NhbHMgY2F1c2VkIG9kZCBiZWhhdmlvciBpbiBhIGZldyBX
ZWJHTCAyIHRlc3RzIiwgJm1lbWJlcnMsCisgICAgICAgICJodHRwOi8vYW5nbGVidWcuY29tLzIw
NDYifTsKKworICAgIEZlYXR1cmVJbmZvIGNsYW1wUG9pbnRTaXplID0geworICAgICAgICAiY2xh
bXBQb2ludFNpemUiLAorICAgICAgICBGZWF0dXJlQ2F0ZWdvcnk6Ok9wZW5HTFdvcmthcm91bmRz
LAorICAgICAgICAiVGhlIHBvaW50IHNpemUgcmFuZ2UgcmVwb3J0ZWQgZnJvbSB0aGUgQVBJIGlz
IGluY29uc2lzdGVudCB3aXRoIHRoZSBhY3R1YWwgYmVoYXZpb3IiLAorICAgICAgICAmbWVtYmVy
cywKKyAgICB9OworCisgICAgRmVhdHVyZUluZm8gZG9udFVzZUxvb3BzVG9Jbml0aWFsaXplVmFy
aWFibGVzID0geworICAgICAgICAiZG9udFVzZUxvb3BzVG9Jbml0aWFsaXplVmFyaWFibGVzIiwg
RmVhdHVyZUNhdGVnb3J5OjpPcGVuR0xXb3JrYXJvdW5kcywKKyAgICAgICAgIkZvciBsb29wcyB1
c2VkIHRvIGluaXRpYWxpemUgdmFyaWFibGVzIGhpdCBuYXRpdmUgR0xTTCBjb21waWxlciBidWdz
IiwgJm1lbWJlcnMsCisgICAgICAgICJodHRwOi8vY3JidWcuY29tLzgwOTQyMiJ9OworCisgICAg
RmVhdHVyZUluZm8gY2xhbXBGcmFnRGVwdGggPSB7CisgICAgICAgICJjbGFtcEZyYWdEZXB0aCIs
CisgICAgICAgIEZlYXR1cmVDYXRlZ29yeTo6T3BlbkdMV29ya2Fyb3VuZHMsCisgICAgICAgICJn
bF9GcmFnRGVwdGggaXMgbm90IGNsYW1wZWQgY29ycmVjdGx5IHdoZW4gcmVuZGVyaW5nIHRvIGEg
ZmxvYXRpbmcgcG9pbnQgZGVwdGggYnVmZmVyIiwKKyAgICAgICAgJm1lbWJlcnMsCisgICAgfTsK
KworICAgIEZlYXR1cmVJbmZvIHJld3JpdGVSZXBlYXRlZEFzc2lnblRvU3dpenpsZWQgPSB7Cisg
ICAgICAgICJyZXdyaXRlUmVwZWF0ZWRBc3NpZ25Ub1N3aXp6bGVkIiwKKyAgICAgICAgRmVhdHVy
ZUNhdGVnb3J5OjpPcGVuR0xXb3JrYXJvdW5kcywKKyAgICAgICAgIlJlcGVhdGVkIGFzc2lnbm1l
bnQgdG8gc3dpenpsZWQgdmFsdWVzIGluc2lkZSBhICIKKyAgICAgICAgIkdMU0wgdXNlci1kZWZp
bmVkIGZ1bmN0aW9uIGhhdmUgaW5jb3JyZWN0IHJlc3VsdHMiLAorICAgICAgICAmbWVtYmVycywK
KyAgICB9OworCisgICAgRmVhdHVyZUluZm8gZGlzYWJsZUJsZW5kRnVuY0V4dGVuZGVkID0gewor
ICAgICAgICAiZGlzYWJsZUJsZW5kRnVuY0V4dGVuZGVkIiwgRmVhdHVyZUNhdGVnb3J5OjpPcGVu
R0xXb3JrYXJvdW5kcywKKyAgICAgICAgIkFSQl9ibGVuZF9mdW5jX2V4dGVuZGVkIGRvZXMgbm90
IHBhc3MgdGhlIHRlc3RzIiwgJm1lbWJlcnMsICJodHRwOi8vYW5nbGVidWcuY29tLzEwODUifTsK
KworICAgIEZlYXR1cmVJbmZvIHVuc2l6ZWRTUkdCUmVhZFBpeGVsc0RvZXNudFRyYW5zZm9ybSA9
IHsKKyAgICAgICAgInVuc2l6ZWRTUkdCUmVhZFBpeGVsc0RvZXNudFRyYW5zZm9ybSIsIEZlYXR1
cmVDYXRlZ29yeTo6T3BlbkdMV29ya2Fyb3VuZHMsCisgICAgICAgICJEcml2ZXJzIHJldHVybmlu
ZyByYXcgc1JHQiB2YWx1ZXMgaW5zdGVhZCBvZiBsaW5lYXJpemVkIHZhbHVlcyB3aGVuIGNhbGxp
bmcgZ2xSZWFkUGl4ZWxzICIKKyAgICAgICAgIm9uIHVuc2l6ZWQgc1JHQiB0ZXh0dXJlIGZvcm1h
dHMiLAorICAgICAgICAmbWVtYmVycywgImh0dHA6Ly9jcmJ1Zy5jb20vNTUwMjkyIGh0dHA6Ly9j
cmJ1Zy5jb20vNTY1MTc5In07CisKKyAgICBGZWF0dXJlSW5mbyBxdWVyeUNvdW50ZXJCaXRzR2Vu
ZXJhdGVzRXJyb3JzID0geworICAgICAgICAicXVlcnlDb3VudGVyQml0c0dlbmVyYXRlc0Vycm9y
cyIsIEZlYXR1cmVDYXRlZ29yeTo6T3BlbkdMV29ya2Fyb3VuZHMsCisgICAgICAgICJEcml2ZXJz
IGdlbmVyYXRlIGVycm9ycyB3aGVuIHF1ZXJ5aW5nIHRoZSBudW1iZXIgb2YgYml0cyBpbiB0aW1l
ciBxdWVyaWVzIiwgJm1lbWJlcnMsCisgICAgICAgICJodHRwOi8vYW5nbGVidWcuY29tLzMwMjci
fTsKKworICAgIEZlYXR1cmVJbmZvIGRvbnRSZWxpbmtQcm9ncmFtc0luUGFyYWxsZWwgPSB7Cisg
ICAgICAgICJkb250UmVsaW5rUHJvZ3JhbXNJblBhcmFsbGVsIiwgRmVhdHVyZUNhdGVnb3J5OjpP
cGVuR0xXb3JrYXJvdW5kcywKKyAgICAgICAgIlJlbGlua2luZyBhIHByb2dyYW0gaW4gcGFyYWxs
ZWwgaXMgYnVnZ3kiLCAmbWVtYmVycywgImh0dHA6Ly9hbmdsZWJ1Zy5jb20vMzA0NSJ9OworCisg
ICAgRmVhdHVyZUluZm8gZGlzYWJsZVdvcmtlckNvbnRleHRzID0geyJkaXNhYmxlV29ya2VyQ29u
dGV4dHMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGZWF0dXJl
Q2F0ZWdvcnk6Ok9wZW5HTFdvcmthcm91bmRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiU29tZSB0ZXN0cyBoYXZlIGJlZW4gc2VlbiB0byBmYWlsIHVzaW5nIHdv
cmtlciBjb250ZXh0cyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICZtZW1iZXJzLCAiaHR0cDovL2NyYnVnLmNvbS84NDk1NzYifTsKKworICAgIEZlYXR1cmVJbmZv
IGxpbWl0TWF4VGV4dHVyZVNpemVUbzQwOTYgPSB7ImxpbWl0TWF4VGV4dHVyZVNpemVUbzQwOTYi
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmVhdHVyZUNh
dGVnb3J5OjpPcGVuR0xXb3JrYXJvdW5kcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJMaW1pdCBtYXggdGV4dHVyZSBzaXplIHRvIDQwOTYgdG8gYXZvaWQg
ZnJlcXVlbnQgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Im91dC1vZi1tZW1vcnkgZXJyb3JzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICZtZW1iZXJzLCAiaHR0cDovL2NyYnVnLmNvbS85Mjc0NzAifTsKKworICAg
IEZlYXR1cmVJbmZvIGxpbWl0TWF4TVNBQVNhbXBsZXNUbzQgPSB7CisgICAgICAgICJsaW1pdE1h
eE1TQUFTYW1wbGVzVG80IiwgRmVhdHVyZUNhdGVnb3J5OjpPcGVuR0xXb3JrYXJvdW5kcywKKyAg
ICAgICAgIlZhcmlvdXMgcmVuZGVyaW5nIGJ1Z3MgaGF2ZSBiZWVuIG9ic2VydmVkIHdoZW4gdXNp
bmcgaGlnaGVyIE1TQUEgY291bnRzIiwgJm1lbWJlcnMsCisgICAgICAgICJodHRwOi8vY3JidWcu
Y29tLzc5NzI0MyJ9OworCisgICAgRmVhdHVyZUluZm8gYWxsb3dDbGVhckZvclJvYnVzdFJlc291
cmNlSW5pdCA9IHsKKyAgICAgICAgImFsbG93Q2xlYXJGb3JSb2J1c3RSZXNvdXJjZUluaXQiLCBG
ZWF0dXJlQ2F0ZWdvcnk6Ok9wZW5HTFdvcmthcm91bmRzLAorICAgICAgICAiVXNpbmcgZ2xDbGVh
ciBmb3Igcm9idXN0IHJlc291cmNlIGluaXRpYWxpemF0aW9uIGlzIGJ1Z2d5IG9uIHNvbWUgZHJp
dmVycyBhbmQgbGVhZHMgdG8gIgorICAgICAgICAidGV4dHVyZSBjb3JydXB0aW9uLiBEZWZhdWx0
IHRvIGRhdGEgdXBsb2FkcyBleGNlcHQgb24gTWFjT1Mgd2hlcmUgaXQgaXMgdmVyeSBzbG93LiIs
CisgICAgICAgICZtZW1iZXJzLCAiaHR0cHM6Ly9jcmJ1Zy5jb20vODQ4OTUyIGh0dHA6Ly9jcmJ1
Zy5jb20vODgzMjc2In07CisKKyAgICBGZWF0dXJlSW5mbyBjbGFtcEFycmF5QWNjZXNzID0geyJj
bGFtcEFycmF5QWNjZXNzIiwgRmVhdHVyZUNhdGVnb3J5OjpPcGVuR0xXb3JrYXJvdW5kcywKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDbGFtcCB1bmlmb3JtIGFycmF5IGFj
Y2VzcyB0byBhdm9pZCByZWFkaW5nIGludmFsaWQgbWVtb3J5LiIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAmbWVtYmVycywgImh0dHA6Ly9hbmdsZWJ1Zy5jb20vMjk3OCJ9
OworCisgICAgRmVhdHVyZUluZm8gcmVzZXRUZXhJbWFnZTJEQmFzZUxldmVsID0geworICAgICAg
ICAicmVzZXRUZXhJbWFnZTJEQmFzZUxldmVsIiwgRmVhdHVyZUNhdGVnb3J5OjpPcGVuR0xXb3Jr
YXJvdW5kcywKKyAgICAgICAgIlJlc2V0IHRleHR1cmUgYmFzZSBsZXZlbCBiZWZvcmUgY2FsbGlu
ZyBnbFRleEltYWdlMkQgdG8gIgorICAgICAgICAid29yayBhcm91bmQgcGl4ZWwgY29tcGFyaXNv
biBmYWlsdXJlLiIsCisgICAgICAgICZtZW1iZXJzLCAiaHR0cHM6Ly9jcmJ1Zy5jb20vNzA1ODY1
In07CisKKyAgICBGZWF0dXJlSW5mbyBjbGVhclRvWmVyb09yT25lQnJva2VuID0geworICAgICAg
ICAiY2xlYXJUb1plcm9Pck9uZUJyb2tlbiIsIEZlYXR1cmVDYXRlZ29yeTo6T3BlbkdMV29ya2Fy
b3VuZHMsCisgICAgICAgICJDbGVhcnMgd2hlbiB0aGUgY2xlYXIgY29sb3IgaXMgYWxsIHplcm9z
IG9yIG9uZXMgZG8gbm90IHdvcmsuIiwgJm1lbWJlcnMsCisgICAgICAgICJodHRwczovL2NyYnVn
LmNvbS83MTA0NDMifTsKKworICAgIEZlYXR1cmVJbmZvIGxpbWl0TWF4M2RBcnJheVRleHR1cmVT
aXplVG8xMDI0ID0geworICAgICAgICAibGltaXRNYXgzZEFycmF5VGV4dHVyZVNpemVUbzEwMjQi
LCBGZWF0dXJlQ2F0ZWdvcnk6Ok9wZW5HTFdvcmthcm91bmRzLAorICAgICAgICAiTGltaXQgbWF4
IDNkIHRleHR1cmUgc2l6ZSBhbmQgbWF4IGFycmF5IHRleHR1cmUgbGF5ZXJzIHRvIDEwMjQgdG8g
YXZvaWQgc3lzdGVtIGhhbmciLAorICAgICAgICAmbWVtYmVycywgImh0dHA6Ly9jcmJ1Zy5jb20v
OTI3NDcwIn07CisKKyAgICBGZWF0dXJlSW5mbyBhZGp1c3RTcmNEc3RSZWdpb25Gb3JCbGl0RnJh
bWVidWZmZXIgPSB7CisgICAgICAgICJhZGp1c3RTcmNEc3RSZWdpb25Gb3JCbGl0RnJhbWVidWZm
ZXIiLCBGZWF0dXJlQ2F0ZWdvcnk6Ok9wZW5HTFdvcmthcm91bmRzLAorICAgICAgICAiTWFueSBw
bGF0Zm9ybXMgaGF2ZSBpc3N1ZXMgd2l0aCBibGl0RnJhbWVidWZmZXIgd2hlbiB0aGUgcGFyYW1l
dGVycyBhcmUgbGFyZ2UuIiwgJm1lbWJlcnMsCisgICAgICAgICJodHRwOi8vY3JidWcuY29tLzgz
MDA0NiJ9OworCisgICAgRmVhdHVyZUluZm8gY2xpcFNyY1JlZ2lvbkZvckJsaXRGcmFtZWJ1ZmZl
ciA9IHsKKyAgICAgICAgImNsaXBTcmNSZWdpb25Gb3JCbGl0RnJhbWVidWZmZXIiLCBGZWF0dXJl
Q2F0ZWdvcnk6Ok9wZW5HTFdvcmthcm91bmRzLAorICAgICAgICAiSXNzdWVzIHdpdGggYmxpdEZy
YW1lYnVmZmVyIHdoZW4gdGhlIHBhcmFtZXRlcnMgZG9uJ3QgbWF0Y2ggdGhlIGZyYW1lYnVmZmVy
IHNpemUuIiwKKyAgICAgICAgJm1lbWJlcnMsICJodHRwOi8vY3JidWcuY29tLzgzMDA0NiJ9Owor
CisgICAgRmVhdHVyZUluZm8gUkdCRFhUMVRleHR1cmVzU2FtcGxlWmVyb0FscGhhID0geworICAg
ICAgICAiUkdCRFhUMVRleHR1cmVzU2FtcGxlWmVyb0FscGhhIiwgRmVhdHVyZUNhdGVnb3J5OjpP
cGVuR0xXb3JrYXJvdW5kcywKKyAgICAgICAgIlNhbXBsaW5nIEJMQUNLIHRleGVscyBmcm9tIFJH
QiBEWFQxIHRleHR1cmVzIHJldHVybnMgdHJhbnNwYXJlbnQgYmxhY2sgb24gTWFjLiIsICZtZW1i
ZXJzLAorICAgICAgICAiaHR0cDovL2FuZ2xlYnVnLmNvbS8zNzI5In07CisKKyAgICBGZWF0dXJl
SW5mbyB1bmZvbGRTaG9ydENpcmN1aXRzID0geworICAgICAgICAidW5mb2xkU2hvcnRDaXJjdWl0
cyIsIEZlYXR1cmVDYXRlZ29yeTo6T3BlbkdMV29ya2Fyb3VuZHMsCisgICAgICAgICJNYWMgaW5j
b3JyZWN0bHkgZXhlY3V0ZXMgYm90aCBzaWRlcyBvZiAmJiBhbmQgfHwgZXhwcmVzc2lvbnMgd2hl
biB0aGV5IHNob3VsZCAiCisgICAgICAgICJzaG9ydC1jaXJjdWl0LiIsCisgICAgICAgICZtZW1i
ZXJzLCAiaHR0cDovL2FuZ2xlYnVnLmNvbS80ODIifTsKKworICAgIEZlYXR1cmVJbmZvIGVtdWxh
dGVQcmltaXRpdmVSZXN0YXJ0Rml4ZWRJbmRleCA9IHsKKyAgICAgICAgImVtdWxhdGVQcmltaXRp
dmVSZXN0YXJ0Rml4ZWRJbmRleCIsIEZlYXR1cmVDYXRlZ29yeTo6T3BlbkdMV29ya2Fyb3VuZHMs
CisgICAgICAgICJXaGVuIEdMX1BSSU1JVElWRV9SRVNUQVJUX0ZJWEVEX0lOREVYIGlzIG5vdCBh
dmFpbGFibGUsIGVtdWxhdGUgaXQgd2l0aCAiCisgICAgICAgICJHTF9QUklNSVRJVkVfUkVTVEFS
VCBhbmQgZ2xQcmltaXRpdmVSZXN0YXJ0SW5kZXguIiwKKyAgICAgICAgJm1lbWJlcnMsICJodHRw
Oi8vYW5nbGVidWcuY29tLzM5OTcifTsKKworICAgIEZlYXR1cmVJbmZvIHNldFByaW1pdGl2ZVJl
c3RhcnRGaXhlZEluZGV4Rm9yRHJhd0FycmF5cyA9IHsKKyAgICAgICAgInNldFByaW1pdGl2ZVJl
c3RhcnRGaXhlZEluZGV4Rm9yRHJhd0FycmF5cyIsIEZlYXR1cmVDYXRlZ29yeTo6T3BlbkdMV29y
a2Fyb3VuZHMsCisgICAgICAgICJTb21lIGRyaXZlcnMgZGlzY2FyZCB2ZXJ0ZXggZGF0YSBpbiBE
cmF3QXJyYXlzIGNhbGxzIHdoZW4gdGhlIGZpeGVkIHByaW1pdGl2ZSByZXN0YXJ0ICIKKyAgICAg
ICAgImluZGV4IGlzIHdpdGhpbiB0aGUgbnVtYmVyIG9mIHByaW1pdGl2ZXMgYmVpbmcgZHJhd24u
IiwKKyAgICAgICAgJm1lbWJlcnMsICJodHRwOi8vYW5nbGVidWcuY29tLzM5OTcifTsKKworICAg
IEZlYXR1cmVJbmZvIHJlbW92ZUR5bmFtaWNJbmRleGluZ09mU3dpenpsZWRWZWN0b3IgPSB7Cisg
ICAgICAgICJyZW1vdmVEeW5hbWljSW5kZXhpbmdPZlN3aXp6bGVkVmVjdG9yIiwgRmVhdHVyZUNh
dGVnb3J5OjpPcGVuR0xXb3JrYXJvdW5kcywKKyAgICAgICAgIkR5bmFtaWMgaW5kZXhpbmcgb2Yg
c3dpenpsZWQgbC12YWx1ZXMgZG9lc24ndCB3b3JrIGNvcnJlY3RseSBvbiB2YXJpb3VzIHBsYXRm
b3Jtcy4iLAorICAgICAgICAmbWVtYmVycywgImh0dHA6Ly9jcmJ1Zy5jb20vNzA5MzUxIn07CisK
KyAgICBGZWF0dXJlSW5mbyBwcmVBZGRUZXhlbEZldGNoT2Zmc2V0cyA9IHsKKyAgICAgICAgInBy
ZUFkZFRleGVsRmV0Y2hPZmZzZXRzIiwgRmVhdHVyZUNhdGVnb3J5OjpPcGVuR0xXb3JrYXJvdW5k
cywKKyAgICAgICAgIkludGVsIE1hYyBkcml2ZXJzIG1pc3Rha2VubHkgY29uc2lkZXIgdGhlIHBh
cmFtZXRlciBwb3NpdGlvbiBvZiBuYWdhdGl2ZSB2YXVsZSBhcyBpbnZhbGlkICIKKyAgICAgICAg
ImV2ZW4gaWYgdGhlIHN1bSBvZiBwb3NpdGlvbiBhbmQgb2Zmc2V0IGlzIGluIHJhbmdlLCBzbyB3
ZSBuZWVkIHRvIGFkZCB3b3JrYXJvdW5kcyBieSAiCisgICAgICAgICJyZXdyaXRpbmcgdGV4ZWxG
ZXRjaE9mZnNldChzYW1wbGVyLCBwb3NpdGlvbiwgbG9kLCBvZmZzZXQpIGludG8gdGV4ZWxGZXRj
aChzYW1wbGVyLCAiCisgICAgICAgICJwb3NpdGlvbiArIG9mZnNldCwgbG9kKS4iLAorICAgICAg
ICAmbWVtYmVycywgImh0dHA6Ly9jcmJ1Zy5jb20vNjQyNjA1In07CisKKyAgICBGZWF0dXJlSW5m
byByZWdlbmVyYXRlU3RydWN0TmFtZXMgPSB7CisgICAgICAgICJyZWdlbmVyYXRlU3RydWN0TmFt
ZXMiLCBGZWF0dXJlQ2F0ZWdvcnk6Ok9wZW5HTFdvcmthcm91bmRzLAorICAgICAgICAiQWxsIE1h
YyBkcml2ZXJzIGRvIG5vdCBoYW5kbGUgc3RydWN0IHNjb3BlcyBjb3JyZWN0bHkuIFRoaXMgd29y
a2Fyb3VuZCBvdmVyd3JpdGVzIGEgc3RydWN0IgorICAgICAgICAibmFtZSB3aXRoIGEgdW5pcXVl
IHByZWZpeC4iLAorICAgICAgICAmbWVtYmVycywgImh0dHA6Ly9jcmJ1Zy5jb20vNDAzOTU3In07
CisKKyAgICBGZWF0dXJlSW5mbyByZWFkUGl4ZWxzVXNpbmdJbXBsZW1lbnRhdGlvbkNvbG9yUmVh
ZEZvcm1hdEZvck5vcm0xNiA9IHsKKyAgICAgICAgInJlYWRQaXhlbHNVc2luZ0ltcGxlbWVudGF0
aW9uQ29sb3JSZWFkRm9ybWF0Rm9yTm9ybTE2IiwgRmVhdHVyZUNhdGVnb3J5OjpPcGVuR0xXb3Jr
YXJvdW5kcywKKyAgICAgICAgIlF1aXRlIHNvbWUgT3BlbkdMIEVTIGRyaXZlcnMgZG9uJ3QgaW1w
bGVtZW50IHJlYWRQaXhlbHMgZm9yIFJHQkEvVU5TSUdORURfU0hPUlQgZnJvbSAiCisgICAgICAg
ICJFWFRfdGV4dHVyZV9ub3JtMTYgY29ycmVjdGx5IiwKKyAgICAgICAgJm1lbWJlcnMsICJodHRw
Oi8vYW5nbGVidWcuY29tLzQyMTQifTsKKworICAgIEZlYXR1cmVJbmZvIGZsdXNoQmVmb3JlRGVs
ZXRlVGV4dHVyZUlmQ29waWVkVG8gPSB7CisgICAgICAgICJmbHVzaEJlZm9yZURlbGV0ZVRleHR1
cmVJZkNvcGllZFRvIiwgRmVhdHVyZUNhdGVnb3J5OjpPcGVuR0xXb3JrYXJvdW5kcywKKyAgICAg
ICAgIlNvbWUgZHJpdmVycyB0cmFjayBDb3B5VGV4e1N1Yn1JbWFnZSB0ZXh0dXJlIGRlcGVuZGVu
Y2llcyBpbmNvcnJlY3RseS4gRmx1c2giCisgICAgICAgICIgYmVmb3JlIGdsRGVsZXRlVGV4dHVy
ZXMgaW4gdGhpcyBjYXNlIiwKKyAgICAgICAgJm1lbWJlcnMsICJodHRwOi8vYW5nbGVidWcuY29t
LzQyNjcifTsKKworICAgIEZlYXR1cmVJbmZvIHJld3JpdGVSb3dNYWpvck1hdHJpY2VzID0gewor
ICAgICAgICAicmV3cml0ZVJvd01ham9yTWF0cmljZXMiLCBGZWF0dXJlQ2F0ZWdvcnk6Ok9wZW5H
TFdvcmthcm91bmRzLAorICAgICAgICAiUmV3cml0ZSByb3cgbWFqb3IgbWF0cmljZXMgaW4gc2hh
ZGVycyBhcyBjb2x1bW4gbWFqb3IgYXMgYSBkcml2ZXIgYnVnIHdvcmthcm91bmQiLAorICAgICAg
ICAmbWVtYmVycywgImh0dHA6Ly9hbmdsZWJ1Zy5jb20vMjI3MyJ9OworCisgICAgRmVhdHVyZUlu
Zm8gZGlzYWJsZURyYXdCdWZmZXJzSW5kZXhlZCA9IHsKKyAgICAgICAgImRpc2FibGVEcmF3QnVm
ZmVyc0luZGV4ZWQiLAorICAgICAgICBGZWF0dXJlQ2F0ZWdvcnk6Ok9wZW5HTFdvcmthcm91bmRz
LAorICAgICAgICAiRGlzYWJsZSBPRVNfZHJhd19idWZmZXJzX2luZGV4ZWQgZXh0ZW5zaW9uLiIs
CisgICAgICAgICZtZW1iZXJzLAorICAgIH07CisKKyAgICBGZWF0dXJlSW5mbyBkaXNhYmxlU2Vt
YXBob3JlRmQgPSB7ImRpc2FibGVTZW1hcGhvcmVGZCIsIEZlYXR1cmVDYXRlZ29yeTo6T3BlbkdM
V29ya2Fyb3VuZHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJEaXNh
YmxlIEdMX0VYVF9zZW1hcGhvcmVfZmQgZXh0ZW5zaW9uIiwgJm1lbWJlcnMsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJodHRwczovL2NyYnVnLmNvbS8xMDQ2NDYyIn07
CisKKyAgICBGZWF0dXJlSW5mbyBkaXNhYmxlVGltZXN0YW1wUXVlcmllcyA9IHsKKyAgICAgICAg
ImRpc2FibGVUaW1lc3RhbXBRdWVyaWVzIiwgRmVhdHVyZUNhdGVnb3J5OjpPcGVuR0xXb3JrYXJv
dW5kcywKKyAgICAgICAgIkRpc2FibGUgR0xfRVhUX2Rpc2pvaW50X3RpbWVyX3F1ZXJ5IGV4dGVu
c2lvbiIsICZtZW1iZXJzLCAiaHR0cHM6Ly9jcmJ1Zy5jb20vODExNjYxIn07CisKKyAgICBGZWF0
dXJlSW5mbyBkZWNvZGVFbmNvZGVTUkdCRm9yR2VuZXJhdGVNaXBtYXAgPSB7CisgICAgICAgICJk
ZWNvZGVFbmNvZGVTUkdCRm9yR2VuZXJhdGVNaXBtYXAiLCBGZWF0dXJlQ2F0ZWdvcnk6Ok9wZW5H
TFdvcmthcm91bmRzLAorICAgICAgICAiRGVjb2RlIGFuZCBlbmNvZGUgYmVmb3JlIGdlbmVyYXRl
TWlwbWFwIGZvciBzcmdiIGZvcm1hdCB0ZXh0dXJlcy4iLCAmbWVtYmVycywKKyAgICAgICAgImh0
dHA6Ly9hbmdsZWJ1Zy5jb20vNDY0NiJ9OworCisgICAgRmVhdHVyZUluZm8gZW11bGF0ZUNvcHlU
ZXhJbWFnZTJERnJvbVJlbmRlcmJ1ZmZlcnMgPSB7CisgICAgICAgICJlbXVsYXRlQ29weVRleElt
YWdlMkRGcm9tUmVuZGVyYnVmZmVycyIsIEZlYXR1cmVDYXRlZ29yeTo6T3BlbkdMV29ya2Fyb3Vu
ZHMsCisgICAgICAgICJDb3B5VGV4SW1hZ2UyRCBzcHVyaW91c2x5IHJldHVybnMgZXJyb3JzIG9u
IGlPUyB3aGVuIGNvcHlpbmcgZnJvbSByZW5kZXJidWZmZXJzLiIsCisgICAgICAgICZtZW1iZXJz
LCAiaHR0cHM6Ly9hbmdsZWJ1Zy5jb20vNDY3NCJ9OworCisgICAgRmVhdHVyZUluZm8gZGlzYWJs
ZUdQVVN3aXRjaGluZ1N1cHBvcnQgPSB7CisgICAgICAgICJkaXNhYmxlR1BVU3dpdGNoaW5nU3Vw
cG9ydCIsIEZlYXR1cmVDYXRlZ29yeTo6T3BlbkdMV29ya2Fyb3VuZHMsCisgICAgICAgICJEaXNh
YmxlIEdQVSBzd2l0Y2hpbmcgc3VwcG9ydCAodXNlIG9ubHkgdGhlIGxvdy1wb3dlciBHUFUpIG9u
IG9sZGVyIE1hY0Jvb2sgUHJvcy4iLAorICAgICAgICAmbWVtYmVycywgImh0dHBzOi8vY3JidWcu
Y29tLzEwOTE4MjQifTsKKworICAgIEZlYXR1cmVJbmZvIGRpc2FibGVOYXRpdmVQYXJhbGxlbENv
bXBpbGUgPSB7CisgICAgICAgICJkaXNhYmxlTmF0aXZlUGFyYWxsZWxDb21waWxlIiwgRmVhdHVy
ZUNhdGVnb3J5OjpPcGVuR0xXb3JrYXJvdW5kcywKKyAgICAgICAgIkRvIG5vdCB1c2UgbmF0aXZl
IEtIUl9wYXJhbGxlbF9zaGFkZXJfY29tcGlsZSBldmVuIHdoZW4gYXZhaWxhYmxlLiIsICZtZW1i
ZXJzLAorICAgICAgICAiaHR0cDovL2NyYnVnLmNvbS8xMDk0ODY5In07CisKKyAgICBGZWF0dXJl
SW5mbyBlbXVsYXRlUGFja1NraXBSb3dzQW5kUGFja1NraXBQaXhlbHMgPSB7CisgICAgICAgICJl
bXVsYXRlUGFja1NraXBSb3dzQW5kUGFja1NraXBQaXhlbHMiLCBGZWF0dXJlQ2F0ZWdvcnk6Ok9w
ZW5HTFdvcmthcm91bmRzLAorICAgICAgICAiR0xfUEFDS19TS0lQX1JPV1MgYW5kIEdMX1BBQ0tf
U0tJUF9QSVhFTFMgYXJlIGlnbm9yZWQgaW4gQXBwbGUncyBPcGVuR0wgZHJpdmVyLiIsICZtZW1i
ZXJzLAorICAgICAgICAiaHR0cHM6Ly9hbmdsZWJ1Zy5jb20vNDg0OSJ9OworCisgICAgRmVhdHVy
ZUluZm8gY2xhbXBNc2NSYXRlID0geworICAgICAgICAiY2xhbXBNc2NSYXRlIiwgRmVhdHVyZUNh
dGVnb3J5OjpPcGVuR0xXb3JrYXJvdW5kcywKKyAgICAgICAgIlNvbWUgZHJpdmVycyByZXR1cm4g
Ym9ndXMgdmFsdWVzIGZvciBHZXRNc2NSYXRlLCBzbyB3ZSBjbGFtcCBpdCB0byAzMEh6IiwgJm1l
bWJlcnMsCisgICAgICAgICJodHRwczovL2NyYnVnLmNvbS8xMDQyMzkzIn07CisKKyAgICBGZWF0
dXJlSW5mbyBiaW5kVHJhbnNmb3JtRmVlZGJhY2tCdWZmZXJCZWZvcmVCaW5kQnVmZmVyUmFuZ2Ug
PSB7CisgICAgICAgICJiaW5kVHJhbnNmb3JtRmVlZGJhY2tCdWZmZXJCZWZvcmVCaW5kQnVmZmVy
UmFuZ2UiLCBGZWF0dXJlQ2F0ZWdvcnk6Ok9wZW5HTFdvcmthcm91bmRzLAorICAgICAgICAiQmlu
ZCB0cmFuc2Zvcm0gZmVlZGJhY2sgYnVmZmVycyB0byB0aGUgZ2VuZXJpYyBiaW5kaW5nIHBvaW50
IGJlZm9yZSBjYWxsaW5nICIKKyAgICAgICAgImdsQmluZEJ1ZmZlckJhc2Ugb3IgZ2xCaW5kQnVm
ZmVyUmFuZ2UuIiwKKyAgICAgICAgJm1lbWJlcnMsICJodHRwczovL2FuZ2xlYnVnLmNvbS81MTQw
In07CisKKyAgICBGZWF0dXJlSW5mbyBkaXNhYmxlU3luY0NvbnRyb2xTdXBwb3J0ID0geworICAg
ICAgICAiZGlzYWJsZVN5bmNDb250cm9sU3VwcG9ydCIsIEZlYXR1cmVDYXRlZ29yeTo6T3BlbkdM
V29ya2Fyb3VuZHMsCisgICAgICAgICJTcGVjdWxhdGl2ZSBmaXggZm9yIGlzc3VlcyBvbiBMaW51
eC9XYXlsYW5kIHdoZXJlIGV4cG9zaW5nIEdMWF9PTUxfc3luY19jb250cm9sIHJlbmRlcnMgIgor
ICAgICAgICAiQ2hyb21lIHVudXNhYmxlIiwKKyAgICAgICAgJm1lbWJlcnMsICJodHRwczovL2Ny
YnVnLmNvbS8xMTM3ODUxIn07CisKKyAgICBGZWF0dXJlSW5mbyBrZWVwQnVmZmVyU2hhZG93Q29w
eSA9IHsKKyAgICAgICAgImtlZXBCdWZmZXJTaGFkb3dDb3B5IiwKKyAgICAgICAgRmVhdHVyZUNh
dGVnb3J5OjpPcGVuR0xXb3JrYXJvdW5kcywKKyAgICAgICAgIk1haW50YWluIGEgc2hhZG93IGNv
cHkgb2YgYnVmZmVyIGRhdGEgd2hlbiB0aGUgR0wgQVBJIGRvZXMgbm90IHBlcm1pdCByZWFkaW5n
IGRhdGEgYmFjay4iLAorICAgICAgICAmbWVtYmVycywKKyAgICB9OworCisgICAgRmVhdHVyZUlu
Zm8gc2V0WmVyb0xldmVsQmVmb3JlR2VuZXJhdGVNaXBtYXAgPSB7CisgICAgICAgICJzZXRaZXJv
TGV2ZWxCZWZvcmVHZW5lcmF0ZU1pcG1hcCIsCisgICAgICAgIEZlYXR1cmVDYXRlZ29yeTo6T3Bl
bkdMV29ya2Fyb3VuZHMsCisgICAgICAgICJnbEdlbmVyYXRlTWlwbWFwIGZhaWxzIGlmIHRoZSB6
ZXJvIHRleHR1cmUgbGV2ZWwgaXMgbm90IHNldCBvbiBzb21lIE1hYyBkcml2ZXJzLiIsCisgICAg
ICAgICZtZW1iZXJzLAorICAgIH07CisKKyAgICBGZWF0dXJlSW5mbyBwcm9tb3RlUGFja2VkRm9y
bWF0c1RvOEJpdFBlckNoYW5uZWwgPSB7CisgICAgICAgICJwcm9tb3RlUGFja2VkRm9ybWF0c1Rv
OEJpdFBlckNoYW5uZWwiLCBGZWF0dXJlQ2F0ZWdvcnk6Ok9wZW5HTFdvcmthcm91bmRzLAorICAg
ICAgICAiUGFja2VkIGNvbG9yIGZvcm1hdHMgYXJlIGJ1Z2d5IG9uIE1hY3Mgd2l0aCBBTUQgR1BV
cyIsICZtZW1iZXJzLAorICAgICAgICAiaHR0cDovL2FuZ2xlYnVnLmNvbS81NDY5In07CisKKyAg
ICBGZWF0dXJlSW5mbyBpbml0RnJhZ21lbnRPdXRwdXRWYXJpYWJsZXMgPSB7CisgICAgICAgICJp
bml0RnJhZ21lbnRPdXRwdXRWYXJpYWJsZXMiLCBGZWF0dXJlQ2F0ZWdvcnk6Ok9wZW5HTFdvcmth
cm91bmRzLAorICAgICAgICAiTm8gaW5pdCBnbF9GcmFnQ29sb3IgY2F1c2VzIGNvbnRleHQgbG9z
dCIsICZtZW1iZXJzLCAiaHR0cDovL2NyYnVnLmNvbS8xMTcxMzcxIn07CisKKyAgICBGZWF0dXJl
SW5mbyBzaGlmdEluc3RhbmNlZEFycmF5RGF0YVdpdGhPZmZzZXQgPSB7CisgICAgICAgICJzaGlm
dEluc3RhbmNlZEFycmF5RGF0YVdpdGhPZmZzZXQiLCBGZWF0dXJlQ2F0ZWdvcnk6Ok9wZW5HTFdv
cmthcm91bmRzLAorICAgICAgICAiZ2xEcmF3QXJyYXlzSW5zdGFuY2VkIGlzIGJ1Z2d5IG9uIGNl
cnRhaW4gbmV3IE1hYyBJbnRlbCBHUFVzIiwgJm1lbWJlcnMsCisgICAgICAgICJodHRwOi8vY3Ji
dWcuY29tLzExNDQyMDcifTsKKworICAgIEZlYXR1cmVJbmZvIHN5bmNWZXJ0ZXhBcnJheXNUb0Rl
ZmF1bHQgPSB7CisgICAgICAgICJzeW5jVmVydGV4QXJyYXlzVG9EZWZhdWx0IiwgRmVhdHVyZUNh
dGVnb3J5OjpPcGVuR0xXb3JrYXJvdW5kcywKKyAgICAgICAgIk9ubHkgdXNlIHRoZSBkZWZhdWx0
IFZBTyBiZWNhdXNlIG9mIG1pc3Npbmcgc3VwcG9ydCBvciBkcml2ZXIgYnVncyIsICZtZW1iZXJz
LAorICAgICAgICAiaHR0cDovL2FuZ2xlYnVnLmNvbS81NTc3In07CisKKyAgICBGZWF0dXJlSW5m
byBzYW5pdGl6ZUFNREdQVVJlbmRlcmVyU3RyaW5nID0geworICAgICAgICAic2FuaXRpemVBTURH
UFVSZW5kZXJlclN0cmluZyIsIEZlYXR1cmVDYXRlZ29yeTo6T3BlbkdMV29ya2Fyb3VuZHMsCisg
ICAgICAgICJTdHJpcCBwcmVjaXNlIGtlcm5lbCBhbmQgRFJNIHZlcnNpb24gaW5mb3JtYXRpb24g
ZnJvbSBhbWRncHUgcmVuZGVyZXIgc3RyaW5ncy4iLCAmbWVtYmVycywKKyAgICAgICAgImh0dHA6
Ly9jcmJ1Zy5jb20vMTE4MTE5MyJ9OworCisgICAgRmVhdHVyZUluZm8gdW5iaW5kRkJPQmVmb3Jl
U3dpdGNoaW5nQ29udGV4dCA9IHsKKyAgICAgICAgInVuYmluZEZCT0JlZm9yZVN3aXRjaGluZ0Nv
bnRleHQiLCBGZWF0dXJlQ2F0ZWdvcnk6Ok9wZW5HTFdvcmthcm91bmRzLAorICAgICAgICAiSW1h
Z2luYXRpb24gR0wgZHJpdmVycyBhcmUgYnVnZ3kgd2l0aCBjb250ZXh0IHN3aXRjaGluZy4iLCAm
bWVtYmVycywKKyAgICAgICAgImh0dHA6Ly9jcmJ1Zy5jb20vMTE4MTE5MyJ9OworCisgICAgRmVh
dHVyZUluZm8gZmx1c2hPbkZyYW1lYnVmZmVyQ2hhbmdlID0geyJmbHVzaE9uRnJhbWVidWZmZXJD
aGFuZ2UiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGZWF0
dXJlQ2F0ZWdvcnk6Ok9wZW5HTFdvcmthcm91bmRzLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiU3dpdGNoaW5nIGZyYW1lYnVmZmVycyB3aXRob3V0IGEgZmx1
c2ggY2FuIGxlYWQgdG8gIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiY3Jhc2hlcyBvbiBJbnRlbCA5dGggR2VuZXJhdGlvbiBHUFUgTWFjcy4iLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbWVtYmVycywgImh0dHA6Ly9j
cmJ1Zy5jb20vMTE4MTA2OCJ9OworCisgICAgRmVhdHVyZUluZm8gZGlzYWJsZU11bHRpc2FtcGxl
ZFJlbmRlclRvVGV4dHVyZSA9IHsKKyAgICAgICAgImRpc2FibGVNdWx0aXNhbXBsZWRSZW5kZXJU
b1RleHR1cmUiLCBGZWF0dXJlQ2F0ZWdvcnk6Ok9wZW5HTFdvcmthcm91bmRzLAorICAgICAgICAi
TWFueSBkcml2ZXJzIGhhdmUgYnVncyB3aGVuIHVzaW5nIEdMX0VYVF9tdWx0aXNhbXBsZWRfcmVu
ZGVyX3RvX3RleHR1cmUiLCAmbWVtYmVycywKKyAgICAgICAgImh0dHA6Ly9hbmdsZWJ1Zy5jb20v
Mjg5NCJ9OworCisgICAgRmVhdHVyZUluZm8gdXBsb2FkVGV4dHVyZURhdGFJbkNodW5rcyA9IHsK
KyAgICAgICAgInVwbG9hZFRleHR1cmVEYXRhSW5DaHVua3MiLCBGZWF0dXJlQ2F0ZWdvcnk6Ok9w
ZW5HTFdvcmthcm91bmRzLAorICAgICAgICAiVXBsb2FkIHRleHR1cmUgZGF0YSBpbiA8MTIwa2Ig
Y2h1bmtzIHRvIHdvcmsgYXJvdW5kIE1hYyBkcml2ZXIgaGFuZ3MgYW5kIGNyYXNoZXMuIiwKKyAg
ICAgICAgJm1lbWJlcnMsICJodHRwOi8vY3JidWcuY29tLzExODEwNjgifTsKKworICAgIEZlYXR1
cmVJbmZvIGVtdWxhdGVJbW11dGFibGVDb21wcmVzc2VkVGV4dHVyZTNEID0geworICAgICAgICAi
ZW11bGF0ZUltbXV0YWJsZUNvbXByZXNzZWRUZXh0dXJlM0QiLCBGZWF0dXJlQ2F0ZWdvcnk6Ok9w
ZW5HTFdvcmthcm91bmRzLAorICAgICAgICAiVXNlIG5vbi1pbW11dGFibGUgdGV4dHVyZSBhbGxv
Y2F0aW9uIHRvIHdvcmsgYXJvdW5kIGEgZHJpdmVyIGJ1Zy4iLCAmbWVtYmVycywKKyAgICAgICAg
Imh0dHBzOi8vY3JidWcuY29tLzEwNjAwMTIifTsKKworICAgIEZlYXR1cmVJbmZvIGVtdWxhdGVS
R0IxMCA9IHsiZW11bGF0ZVJHQjEwIiwgRmVhdHVyZUNhdGVnb3J5OjpPcGVuR0xXb3JrYXJvdW5k
cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkVtdWxhdGUgUkdCMTAgc3VwcG9y
dCB1c2luZyBSR0IxMF9BMi4iLCAmbWVtYmVycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgImh0dHBzOi8vY3JidWcuY29tLzEzMDA1NzUifTsKKworICAgIEZlYXR1cmVJbmZvIGFs
d2F5c1VuYmluZEZyYW1lYnVmZmVyVGV4dHVyZTJEID0geworICAgICAgICAiYWx3YXlzVW5iaW5k
RnJhbWVidWZmZXJUZXh0dXJlMkQiLCBGZWF0dXJlQ2F0ZWdvcnk6Ok9wZW5HTFdvcmthcm91bmRz
LAorICAgICAgICAiRm9yY2UgdW5iaW5kIGZyYW1lYnVmZmVyVGV4dHVyZTJEIGJlZm9yZSBiaW5k
aW5nIHJlbmRlcmJ1ZmZlciB0byB3b3JrIGFyb3VuZCBkcml2ZXIgYnVnLiIsCisgICAgICAgICZt
ZW1iZXJzLCAiaHR0cHM6Ly9hbmdsZWJ1Zy5jb20vNTUzNiJ9OworfTsKKworaW5saW5lIEZlYXR1
cmVzR0w6OkZlYXR1cmVzR0woKSAgPSBkZWZhdWx0OworaW5saW5lIEZlYXR1cmVzR0w6On5GZWF0
dXJlc0dMKCkgPSBkZWZhdWx0OworCit9ICAvLyBuYW1lc3BhY2UgYW5nbGUKKworI2VuZGlmICAv
LyBBTkdMRV9QTEFURk9STV9GRUFUVVJFU0dMX0hfCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9BTkdMRS9pbmNsdWRlL3BsYXRmb3JtL0ZlYXR1cmVzTXRsLmggYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9BTkdMRS9pbmNsdWRlL3BsYXRmb3JtL0ZlYXR1cmVzTXRsLmgKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGE4NWNlOWI5YWQzMzYzZjcxOTE2MjYyNzI1ODliNGIzYjJlZjJkZDYu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1Ro
aXJkUGFydHkvQU5HTEUvaW5jbHVkZS9wbGF0Zm9ybS9GZWF0dXJlc010bC5oCisrKyAvZGV2L251
bGwKQEAgLTEsMTQwICswLDAgQEAKLS8vCi0vLyBDb3B5cmlnaHQgMjAxOSBUaGUgQU5HTEUgUHJv
amVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotLy8gVXNlIG9mIHRoaXMgc291cmNl
IGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotLy8g
Zm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS8vCi0vLyBGZWF0dXJlc010bC5oOiBPcHRpb25h
bCBmZWF0dXJlcyBmb3IgdGhlIE1ldGFsIHJlbmRlcmVyLgotLy8KLQotI2lmbmRlZiBBTkdMRV9Q
TEFURk9STV9GRUFUVVJFU01UTF9IXwotI2RlZmluZSBBTkdMRV9QTEFURk9STV9GRUFUVVJFU01U
TF9IXwotCi0jaW5jbHVkZSAicGxhdGZvcm0vRmVhdHVyZS5oIgotCi1uYW1lc3BhY2UgYW5nbGUK
LXsKLQotc3RydWN0IEZlYXR1cmVzTXRsIDogRmVhdHVyZVNldEJhc2UKLXsKLSAgICAvLyBCYXNl
VmVydGV4L0luc3RhbmNlZCBkcmF3IHN1cHBvcnQ6Ci0gICAgRmVhdHVyZSBoYXNCYXNlVmVydGV4
SW5zdGFuY2VkRHJhdyA9IHsKLSAgICAgICAgImhhc19iYXNlX3ZlcnRleF9pbnN0YW5jZWRfZHJh
dyIsIEZlYXR1cmVDYXRlZ29yeTo6TWV0YWxGZWF0dXJlcywKLSAgICAgICAgIlRoZSByZW5kZXJl
ciBzdXBwb3J0cyBiYXNlIHZlcnRleCBpbnN0YW5jZWQgZHJhdyIsICZtZW1iZXJzfTsKLQotICAg
IC8vIFN1cHBvcnQgZXhwbGljaXQgbWVtb3J5IGJhcnJpZXIKLSAgICBGZWF0dXJlIGhhc0V4cGxp
Y2l0TWVtQmFycmllciA9IHsiaGFzX2V4cGxpY2l0X21lbV9iYXJyaWVyX210bCIsIEZlYXR1cmVD
YXRlZ29yeTo6TWV0YWxGZWF0dXJlcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiVGhlIHJlbmRlcmVyIHN1cHBvcnRzIGV4cGxpY2l0IG1lbW9yeSBiYXJyaWVyIiwgJm1l
bWJlcnN9OwotCi0gICAgLy8gU29tZSByZW5kZXJlciBjYW4gYnJlYWsgcmVuZGVyIHBhc3MgY2hl
YXBseSwgaS5lLiBkZXNrdG9wIGNsYXNzIEdQVXMuCi0gICAgRmVhdHVyZSBoYXNDaGVhcFJlbmRl
clBhc3MgPSB7Imhhc19jaGVhcF9yZW5kZXJfcGFzc19tdGwiLCBGZWF0dXJlQ2F0ZWdvcnk6Ok1l
dGFsRmVhdHVyZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRoZSByZW5k
ZXJlciBjYW4gY2hlYXBseSBicmVhayBhIHJlbmRlciBwYXNzLiIsICZtZW1iZXJzfTsKLQotICAg
IC8vIE5vbi11bmlmb3JtIGNvbXB1dGUgc2hhZGVyIGRpc3BhdGNoIHN1cHBvcnQsIGkuZS4gR3Jv
dXAgc2l6ZSBpcyBub3QgbmVjZXNzYXJpbHkgdG8gYmUgZml4ZWQ6Ci0gICAgRmVhdHVyZSBoYXNO
b25Vbmlmb3JtRGlzcGF0Y2ggPSB7Ci0gICAgICAgICJoYXNfbm9uX3VuaWZvcm1fZGlzcGF0Y2gi
LCBGZWF0dXJlQ2F0ZWdvcnk6Ok1ldGFsRmVhdHVyZXMsCi0gICAgICAgICJUaGUgcmVuZGVyZXIg
c3VwcG9ydHMgbm9uIHVuaWZvcm0gY29tcHV0ZSBzaGFkZXIgZGlzcGF0Y2gncyBncm91cCBzaXpl
IiwgJm1lbWJlcnN9OwotCi0gICAgLy8gZnJhZ21lbnQgc3RlbmNpbCBvdXRwdXQgc3VwcG9ydAot
ICAgIEZlYXR1cmUgaGFzU3RlbmNpbE91dHB1dCA9IHsiaGFzX3NoYWRlcl9zdGVuY2lsX291dHB1
dCIsIEZlYXR1cmVDYXRlZ29yeTo6TWV0YWxGZWF0dXJlcywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIlRoZSByZW5kZXJlciBzdXBwb3J0cyBzdGVuY2lsIG91dHB1dCBmcm9tIGZy
YWdtZW50IHNoYWRlciIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZtZW1iZXJz
fTsKLQotICAgIC8vIFRleHR1cmUgc3dpenpsZSBzdXBwb3J0OgotICAgIEZlYXR1cmUgaGFzVGV4
dHVyZVN3aXp6bGUgPSB7Imhhc190ZXh0dXJlX3N3aXp6bGUiLCBGZWF0dXJlQ2F0ZWdvcnk6Ok1l
dGFsRmVhdHVyZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGhlIHJlbmRl
cmVyIHN1cHBvcnRzIHRleHR1cmUgc3dpenpsZSIsICZtZW1iZXJzfTsKLQotICAgIEZlYXR1cmUg
aGFzRGVwdGhBdXRvUmVzb2x2ZSA9IHsKLSAgICAgICAgImhhc19tc2FhX2RlcHRoX2F1dG9fcmVz
b2x2ZSIsIEZlYXR1cmVDYXRlZ29yeTo6TWV0YWxGZWF0dXJlcywKLSAgICAgICAgIlRoZSByZW5k
ZXJlciBzdXBwb3J0cyBNU0FBIGRlcHRoIGF1dG8gcmVzb2x2ZSBhdCB0aGUgZW5kIG9mIHJlbmRl
ciBwYXNzIiwgJm1lbWJlcnN9OwotCi0gICAgRmVhdHVyZSBoYXNTdGVuY2lsQXV0b1Jlc29sdmUg
PSB7Ci0gICAgICAgICJoYXNfbXNhYV9zdGVuY2lsX2F1dG9fcmVzb2x2ZSIsIEZlYXR1cmVDYXRl
Z29yeTo6TWV0YWxGZWF0dXJlcywKLSAgICAgICAgIlRoZSByZW5kZXJlciBzdXBwb3J0cyBNU0FB
IHN0ZW5jaWwgYXV0byByZXNvbHZlIGF0IHRoZSBlbmQgb2YgcmVuZGVyIHBhc3MiLCAmbWVtYmVy
c307Ci0KLSAgICBGZWF0dXJlIGhhc0V2ZW50cyA9IHsiaGFzX210bF9ldmVudHMiLCBGZWF0dXJl
Q2F0ZWdvcnk6Ok1ldGFsRmVhdHVyZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIlRoZSBy
ZW5kZXJlciBzdXBwb3J0cyBNVEwoU2hhcmVkKUV2ZW50IiwgJm1lbWJlcnN9OwotCi0gICAgRmVh
dHVyZSBhbGxvd0lubGluZUNvbnN0VmVydGV4RGF0YSA9IHsKLSAgICAgICAgImFsbG93X2lubGlu
ZV9jb25zdF92ZXJ0ZXhfZGF0YSIsIEZlYXR1cmVDYXRlZ29yeTo6TWV0YWxGZWF0dXJlcywKLSAg
ICAgICAgIlRoZSByZW5kZXJlciBzdXBwb3J0cyB1c2luZyBpbmxpbmUgY29uc3RhbnQgZGF0YSBm
b3Igc21hbGwgY2xpZW50IHZlcnRleCBkYXRhIiwgJm1lbWJlcnN9OwotCi0gICAgLy8gT24gbWFj
b3MsIHNlcGFyYXRlIGRlcHRoICYgc3RlbmNpbCBidWZmZXJzIGFyZSBub3Qgc3VwcHJvdGVkLiBI
b3dldmVyLCBvbiBpT1MgZGV2aWNlcywKLSAgICAvLyB0aGV5IGFyZSBzdXBwcm90ZWQ6Ci0gICAg
RmVhdHVyZSBhbGxvd1NlcGFyYXRlZERlcHRoU3RlbmNpbEJ1ZmZlcnMgPSB7Ci0gICAgICAgICJh
bGxvd19zZXBhcmF0ZV9kZXB0aF9zdGVuY2lsX2J1ZmZlcnMiLCBGZWF0dXJlQ2F0ZWdvcnk6Ok1l
dGFsRmVhdHVyZXMsCi0gICAgICAgICJTb21lIEFwcGxlIHBsYXRmb3JtcyBzdWNoIGFzIGlPUyBh
bGxvd3Mgc2VwYXJhdGUgZGVwdGggJiBzdGVuY2lsIGJ1ZmZlcnMsICIKLSAgICAgICAgIndoZXJl
YXMgb3RoZXJzIHN1Y2ggYXMgbWFjT1MgZG9uJ3QiLAotICAgICAgICAmbWVtYmVyc307Ci0KLSAg
ICBGZWF0dXJlIGFsbG93UnVudGltZVNhbXBsZXJDb21wYXJlTW9kZSA9IHsKLSAgICAgICAgImFs
bG93X3J1bnRpbWVfc2FtcGxlcl9jb21wYXJlX21vZGUiLCBGZWF0dXJlQ2F0ZWdvcnk6Ok1ldGFs
RmVhdHVyZXMsCi0gICAgICAgICJUaGUgcmVuZGVyZXIgc3VwcG9ydHMgY2hhbmdpbmcgc2FtcGxl
cidzIGNvbXBhcmUgbW9kZSBvdXRzaWRlIHNoYWRlcnMiLCAmbWVtYmVyc307Ci0KLSAgICBGZWF0
dXJlIGFsbG93U2FtcGxlckNvbXBhcmVHcmFkaWVudCA9IHsKLSAgICAgICAgImFsbG93X3NhbXBs
ZXJfY29tcGFyZV9ncmFkaWVudCIsIEZlYXR1cmVDYXRlZ29yeTo6TWV0YWxGZWF0dXJlcywKLSAg
ICAgICAgIlRoZSByZW5kZXJlciBzdXBwb3J0cyBzYW1wbGVfY29tcGFyZSB3aXRoIGdyYWRpZW50
cyIsICZtZW1iZXJzfTsKLQotICAgIEZlYXR1cmUgYWxsb3dTYW1wbGVyQ29tcGFyZUxvZCA9IHsi
YWxsb3dfc2FtcGxlcl9jb21wYXJlX2xvZCIsIEZlYXR1cmVDYXRlZ29yeTo6TWV0YWxGZWF0dXJl
cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRoZSByZW5kZXJlciBz
dXBwb3J0cyBzYW1wbGVfY29tcGFyZSB3aXRoIGxvZCIsICZtZW1iZXJzfTsKLQotICAgIEZlYXR1
cmUgYWxsb3dCdWZmZXJSZWFkV3JpdGUgPSB7ImFsbG93X2J1ZmZlcl9yZWFkX3dyaXRlIiwgRmVh
dHVyZUNhdGVnb3J5OjpNZXRhbEZlYXR1cmVzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIlRoZSByZW5kZXJlciBzdXBwb3J0cyBidWZmZXIgcmVhZCAmIHdyaXRlIGluIHRo
ZSBzYW1lIHNoYWRlciIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbWVt
YmVyc307Ci0KLSAgICBGZWF0dXJlIGFsbG93TXVsdGlzYW1wbGVTdG9yZUFuZFJlc29sdmUgPSB7
Ci0gICAgICAgICJhbGxvd19tc2FhX3N0b3JlX2FuZF9yZXNvbHZlIiwgRmVhdHVyZUNhdGVnb3J5
OjpNZXRhbEZlYXR1cmVzLAotICAgICAgICAiVGhlIHJlbmRlcmVyIHN1cHBvcnRzIE1TQUEgc3Rv
cmUgYW5kIHJlc29sdmUgaW4gdGhlIHNhbWUgcGFzcyIsICZtZW1iZXJzfTsKLQotICAgIEZlYXR1
cmUgYWxsb3dHZW5NdWx0aXBsZU1pcHNQZXJQYXNzID0gewotICAgICAgICAiZ2VuX211bHRpcGxl
X21pcHNfcGVyX3Bhc3MiLCBGZWF0dXJlQ2F0ZWdvcnk6Ok1ldGFsRmVhdHVyZXMsCi0gICAgICAg
ICJUaGUgcmVuZGVyZXIgc3VwcG9ydHMgZ2VuZXJhdGluZyBtdWx0aXBsZSBtaXBtYXBzIHBlciBw
YXNzIiwgJm1lbWJlcnN9OwotCi0gICAgRmVhdHVyZSBmb3JjZUQyNFM4QXNVbnN1cHBvcnRlZCA9
IHsiZm9yY2VfZDI0czhfYXNfdW5zdXBwb3J0ZWQiLCBGZWF0dXJlQ2F0ZWdvcnk6Ok1ldGFsRmVh
dHVyZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRm9yY2UgRGVw
dGgyNFN0ZW5jaWw4IGZvcm1hdCBhcyB1bnN1cHBvcnRlZC4iLCAmbWVtYmVyc307Ci0KLSAgICBG
ZWF0dXJlIGZvcmNlQnVmZmVyR1BVU3RvcmFnZSA9IHsKLSAgICAgICAgImZvcmNlX2J1ZmZlcl9n
cHVfc3RvcmFnZSIsIEZlYXR1cmVDYXRlZ29yeTo6TWV0YWxGZWF0dXJlcywKLSAgICAgICAgIk9u
IHN5c3RlbXMgdGhhdCBzdXBwb3J0IGJvdGggYnVmZmVyJyBtZW1vcnkgYWxsb2NhdGlvbiBvbiBH
UFUgYW5kIHNoYXJlZCBtZW1vcnkgKHN1Y2ggYXMgIgotICAgICAgICAibWFjT1MpLCBmb3JjZSB1
c2luZyBHUFUgbWVtb3J5IGFsbG9jYXRpb24gZm9yIGJ1ZmZlcnMgZXZlcnl0aW1lIG9yIG5vdC4i
LAotICAgICAgICAmbWVtYmVyc307Ci0KLSAgICAvLyBHZW5lcmF0ZSBNZXRhbCBkaXJlY3RseSBp
bnN0ZWFkIG9mIGdlbmVyYXRpbmcgU1BJUi1WIGFuZCB0aGVuIHVzaW5nIFNQSVItViBDcm9zcy4g
IFRyYW5zaXRvcnkKLSAgICAvLyBmZWF0dXJlIHVudGlsIHRoZSB3b3JrIGlzIGNvbXBsZXRlLgot
ICAgIEZlYXR1cmUgZGlyZWN0TWV0YWxHZW5lcmF0aW9uID0geyJkaXJlY3RNZXRhbEdlbmVyYXRp
b24iLCBGZWF0dXJlQ2F0ZWdvcnk6Ok1ldGFsRmVhdHVyZXMsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIkRpcmVjdCB0cmFuc2xhdGlvbiB0byBNZXRhbC4iLCAmbWVtYmVy
cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaHR0cDovL2FuZ2xlYnVn
LmNvbS81NTA1In07Ci0KLSAgICBGZWF0dXJlIGZvcmNlTm9uQ1NCYXNlTWlwbWFwR2VuZXJhdGlv
biA9IHsKLSAgICAgICAgImZvcmNlX25vbl9jc19taXBtYXBfZ2VuIiwgRmVhdHVyZUNhdGVnb3J5
OjpNZXRhbEZlYXR1cmVzLAotICAgICAgICAiVHVybiB0aGlzIGZlYXR1cmUgb24gdG8gZGlzYWxs
b3cgQ29tcHV0ZSBTaGFkZXIgYmFzZWQgbWlwbWFwIGdlbmVyYXRpb24uIENvbXB1dGUgU2hhZGVy
ICIKLSAgICAgICAgImJhc2VkIG1pcG1hcCBnZW5lcmF0aW9uIG1pZ2h0IGNhdXNlIEdQVSBoYW5n
IG9uIHNvbWUgb2xkZXIgaU9TIGRldmljZXMuIiwKLSAgICAgICAgJm1lbWJlcnN9OwotCi0gICAg
RmVhdHVyZSBlbXVsYXRlVHJhbnNmb3JtRmVlZGJhY2sgPSB7Ci0gICAgICAgICJlbXVsYXRlX3Ry
YW5zZm9ybV9mZWVkYmFjayIsIEZlYXR1cmVDYXRlZ29yeTo6TWV0YWxGZWF0dXJlcywKLSAgICAg
ICAgIlR1cm4gdGhpcyBvbiB0byBhbGxvdyB0cmFuc2Zvcm0gZmVlZGJhY2sgaW4gTWV0YWwgdXNp
bmcgYSAyLXBhc3MgVlMgZm9yIEdMRVMzLiIsICZtZW1iZXJzfTsKLQotICAgIC8vIFJld3JpdGUg
cm93LW1ham9yIG1hdHJpY2VzIGFzIGNvbHVtbi1tYWpvcgotICAgIEZlYXR1cmUgcmV3cml0ZVJv
d01ham9yTWF0cmljZXMgPSB7InJld3JpdGVfcm93X21ham9yX21hdHJpY2VzIiwgRmVhdHVyZUNh
dGVnb3J5OjpNZXRhbEZlYXR1cmVzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIlJld3JpdGUgcm93IG1ham9yIG1hdHJpY2VzIGluIHNoYWRlcnMgYXMgY29sdW1uIG1h
am9yLiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbWVtYmVyc307
Ci0KLSAgICBGZWF0dXJlIGludGVsRXhwbGljaXRCb29sQ2FzdFdvcmthcm91bmQgPSB7Ci0gICAg
ICAgICJpbnRlbF9leHBsaWNpdF9ib29sX2Nhc3Rfd29ya2Fyb3VuZCIsIEZlYXR1cmVDYXRlZ29y
eTo6TWV0YWxXb3JrYXJvdW5kcywKLSAgICAgICAgIkluc2VydCBleHBsaWNpdCBjYXN0cyBmb3Ig
ZmxvYXQvZG91YmxlL3Vuc2lnbmVkL3NpZ25lZCBpbnQgb24gbWFjT1MgMTAuMTUgd2l0aCBJbnRl
bCAiCi0gICAgICAgICJkcml2ZXIiLAotICAgICAgICAmbWVtYmVyc307Ci0KLSAgICBGZWF0dXJl
IGludGVsRGlzYWJsZUZhc3RNYXRoID0gewotICAgICAgICAiaW50ZWxfZGlzYWJsZV9mYXN0X21h
dGgiLCBGZWF0dXJlQ2F0ZWdvcnk6Ok1ldGFsV29ya2Fyb3VuZHMsCi0gICAgICAgICJEaXNhYmxl
IGZhc3QgbWF0aCBpbiBhdGFuIGFuZCBpbnZhcmlhbmNlIGNhc2VzIHdoZW4gcnVubmluZyBiZWxv
dyBtYWNPUyAxMi4wIiwgJm1lbWJlcnN9OwotCi0gICAgRmVhdHVyZSBtdWx0aXNhbXBsZUNvbG9y
Rm9ybWF0U2hhZGVyUmVhZFdvcmthcm91bmQgPSB7Ci0gICAgICAgICJtdWx0aXNhbXBsZV9jb2xv
cl9mb3JtYXRfc2hhZGVyX3JlYWRfd29ya2Fyb3VuZCIsIEZlYXR1cmVDYXRlZ29yeTo6TWV0YWxX
b3JrYXJvdW5kcywKLSAgICAgICAgIkFkZCBzaGFkZXJSZWFkIHVzYWdlIHRvIHNvbWUgbXVsdGlz
YW1wbGVkIHRleHR1cmUgZm9ybWF0cyIsICZtZW1iZXJzLAotICAgICAgICAiaHR0cDovL2FuZ2xl
YnVnLmNvbS83MDQ5In07Ci19OwotCi19ICAvLyBuYW1lc3BhY2UgYW5nbGUKLQotI2VuZGlmICAv
LyBBTkdMRV9QTEFURk9STV9GRUFUVVJFU01UTF9IXwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJk
UGFydHkvQU5HTEUvaW5jbHVkZS9wbGF0Zm9ybS9GZWF0dXJlc010bF9hdXRvZ2VuLmggYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9BTkdMRS9pbmNsdWRlL3BsYXRmb3JtL0ZlYXR1cmVzTXRsX2F1dG9nZW4u
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4wNGM3NTQ5MDc4YWJiNmY4MWJiMDQwZjg5MmVhYmUyYWE5OTJhMmVhCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvaW5jbHVkZS9wbGF0Zm9y
bS9GZWF0dXJlc010bF9hdXRvZ2VuLmgKQEAgLTAsMCArMSwyMTYgQEAKKy8vIEdFTkVSQVRFRCBG
SUxFIC0gRE8gTk9UIEVESVQuCisvLyBHZW5lcmF0ZWQgYnkgZ2VuX2ZlYXR1cmVzLnB5IHVzaW5n
IGRhdGEgZnJvbSBtdGxfZmVhdHVyZXMuanNvbi4KKy8vCisvLyBDb3B5cmlnaHQgMjAyMiBUaGUg
QU5HTEUgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVXNlIG9mIHRo
aXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNh
biBiZQorLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy8vCisvLyBGZWF0dXJlc010bF9h
dXRvZ2VuLmg6IE9wdGlvbmFsIGZlYXR1cmVzIGZvciB0aGUgTWV0YWwgcmVuZGVyZXIuCisKKyNp
Zm5kZWYgQU5HTEVfUExBVEZPUk1fRkVBVFVSRVNNVExfSF8KKyNkZWZpbmUgQU5HTEVfUExBVEZP
Uk1fRkVBVFVSRVNNVExfSF8KKworI2luY2x1ZGUgInBsYXRmb3JtL0ZlYXR1cmUuaCIKKworbmFt
ZXNwYWNlIGFuZ2xlCit7CisKK3N0cnVjdCBGZWF0dXJlc010bCA6IEZlYXR1cmVTZXRCYXNlCit7
CisgICAgRmVhdHVyZXNNdGwoKTsKKyAgICB+RmVhdHVyZXNNdGwoKTsKKworICAgIEZlYXR1cmVJ
bmZvIGhhc0Jhc2VWZXJ0ZXhJbnN0YW5jZWREcmF3ID0geworICAgICAgICAiaGFzQmFzZVZlcnRl
eEluc3RhbmNlZERyYXciLAorICAgICAgICBGZWF0dXJlQ2F0ZWdvcnk6Ok1ldGFsRmVhdHVyZXMs
CisgICAgICAgICJUaGUgcmVuZGVyZXIgc3VwcG9ydHMgYmFzZSB2ZXJ0ZXggaW5zdGFuY2VkIGRy
YXciLAorICAgICAgICAmbWVtYmVycywKKyAgICB9OworCisgICAgRmVhdHVyZUluZm8gaGFzRXhw
bGljaXRNZW1CYXJyaWVyID0geworICAgICAgICAiaGFzRXhwbGljaXRNZW1CYXJyaWVyIiwKKyAg
ICAgICAgRmVhdHVyZUNhdGVnb3J5OjpNZXRhbEZlYXR1cmVzLAorICAgICAgICAiVGhlIHJlbmRl
cmVyIHN1cHBvcnRzIGV4cGxpY2l0IG1lbW9yeSBiYXJyaWVyIiwKKyAgICAgICAgJm1lbWJlcnMs
CisgICAgfTsKKworICAgIEZlYXR1cmVJbmZvIGhhc0NoZWFwUmVuZGVyUGFzcyA9IHsKKyAgICAg
ICAgImhhc0NoZWFwUmVuZGVyUGFzcyIsCisgICAgICAgIEZlYXR1cmVDYXRlZ29yeTo6TWV0YWxG
ZWF0dXJlcywKKyAgICAgICAgIlRoZSByZW5kZXJlciBjYW4gY2hlYXBseSBicmVhayBhIHJlbmRl
ciBwYXNzLiIsCisgICAgICAgICZtZW1iZXJzLAorICAgIH07CisKKyAgICBGZWF0dXJlSW5mbyBo
YXNOb25Vbmlmb3JtRGlzcGF0Y2ggPSB7CisgICAgICAgICJoYXNOb25Vbmlmb3JtRGlzcGF0Y2gi
LAorICAgICAgICBGZWF0dXJlQ2F0ZWdvcnk6Ok1ldGFsRmVhdHVyZXMsCisgICAgICAgICJUaGUg
cmVuZGVyZXIgc3VwcG9ydHMgbm9uIHVuaWZvcm0gY29tcHV0ZSBzaGFkZXIgZGlzcGF0Y2gncyBn
cm91cCBzaXplIiwKKyAgICAgICAgJm1lbWJlcnMsCisgICAgfTsKKworICAgIEZlYXR1cmVJbmZv
IGhhc1NoYWRlclN0ZW5jaWxPdXRwdXQgPSB7CisgICAgICAgICJoYXNTaGFkZXJTdGVuY2lsT3V0
cHV0IiwKKyAgICAgICAgRmVhdHVyZUNhdGVnb3J5OjpNZXRhbEZlYXR1cmVzLAorICAgICAgICAi
VGhlIHJlbmRlcmVyIHN1cHBvcnRzIHN0ZW5jaWwgb3V0cHV0IGZyb20gZnJhZ21lbnQgc2hhZGVy
IiwKKyAgICAgICAgJm1lbWJlcnMsCisgICAgfTsKKworICAgIEZlYXR1cmVJbmZvIGhhc1RleHR1
cmVTd2l6emxlID0geworICAgICAgICAiaGFzVGV4dHVyZVN3aXp6bGUiLAorICAgICAgICBGZWF0
dXJlQ2F0ZWdvcnk6Ok1ldGFsRmVhdHVyZXMsCisgICAgICAgICJUaGUgcmVuZGVyZXIgc3VwcG9y
dHMgdGV4dHVyZSBzd2l6emxlIiwKKyAgICAgICAgJm1lbWJlcnMsCisgICAgfTsKKworICAgIEZl
YXR1cmVJbmZvIGhhc0RlcHRoQXV0b1Jlc29sdmUgPSB7CisgICAgICAgICJoYXNEZXB0aEF1dG9S
ZXNvbHZlIiwKKyAgICAgICAgRmVhdHVyZUNhdGVnb3J5OjpNZXRhbEZlYXR1cmVzLAorICAgICAg
ICAiVGhlIHJlbmRlcmVyIHN1cHBvcnRzIE1TQUEgZGVwdGggYXV0byByZXNvbHZlIGF0IHRoZSBl
bmQgb2YgcmVuZGVyIHBhc3MiLAorICAgICAgICAmbWVtYmVycywKKyAgICB9OworCisgICAgRmVh
dHVyZUluZm8gaGFzU3RlbmNpbEF1dG9SZXNvbHZlID0geworICAgICAgICAiaGFzU3RlbmNpbEF1
dG9SZXNvbHZlIiwKKyAgICAgICAgRmVhdHVyZUNhdGVnb3J5OjpNZXRhbEZlYXR1cmVzLAorICAg
ICAgICAiVGhlIHJlbmRlcmVyIHN1cHBvcnRzIE1TQUEgc3RlbmNpbCBhdXRvIHJlc29sdmUgYXQg
dGhlIGVuZCBvZiByZW5kZXIgcGFzcyIsCisgICAgICAgICZtZW1iZXJzLAorICAgIH07CisKKyAg
ICBGZWF0dXJlSW5mbyBoYXNFdmVudHMgPSB7CisgICAgICAgICJoYXNFdmVudHMiLAorICAgICAg
ICBGZWF0dXJlQ2F0ZWdvcnk6Ok1ldGFsRmVhdHVyZXMsCisgICAgICAgICJUaGUgcmVuZGVyZXIg
c3VwcG9ydHMgTVRMKFNoYXJlZClFdmVudCIsCisgICAgICAgICZtZW1iZXJzLAorICAgIH07CisK
KyAgICBGZWF0dXJlSW5mbyBhbGxvd0lubGluZUNvbnN0VmVydGV4RGF0YSA9IHsKKyAgICAgICAg
ImFsbG93SW5saW5lQ29uc3RWZXJ0ZXhEYXRhIiwKKyAgICAgICAgRmVhdHVyZUNhdGVnb3J5OjpN
ZXRhbEZlYXR1cmVzLAorICAgICAgICAiVGhlIHJlbmRlcmVyIHN1cHBvcnRzIHVzaW5nIGlubGlu
ZSBjb25zdGFudCBkYXRhIGZvciBzbWFsbCBjbGllbnQgdmVydGV4IGRhdGEiLAorICAgICAgICAm
bWVtYmVycywKKyAgICB9OworCisgICAgRmVhdHVyZUluZm8gYWxsb3dTZXBhcmF0ZURlcHRoU3Rl
bmNpbEJ1ZmZlcnMgPSB7CisgICAgICAgICJhbGxvd1NlcGFyYXRlRGVwdGhTdGVuY2lsQnVmZmVy
cyIsCisgICAgICAgIEZlYXR1cmVDYXRlZ29yeTo6TWV0YWxGZWF0dXJlcywKKyAgICAgICAgIlNv
bWUgQXBwbGUgcGxhdGZvcm1zIHN1Y2ggYXMgaU9TIGFsbG93cyBzZXBhcmF0ZSBkZXB0aCBhbmQg
c3RlbmNpbCBidWZmZXJzLCAiCisgICAgICAgICJ3aGVyZWFzIG90aGVycyBzdWNoIGFzIG1hY09T
IGRvbid0IiwKKyAgICAgICAgJm1lbWJlcnMsCisgICAgfTsKKworICAgIEZlYXR1cmVJbmZvIGFs
bG93UnVudGltZVNhbXBsZXJDb21wYXJlTW9kZSA9IHsKKyAgICAgICAgImFsbG93UnVudGltZVNh
bXBsZXJDb21wYXJlTW9kZSIsCisgICAgICAgIEZlYXR1cmVDYXRlZ29yeTo6TWV0YWxGZWF0dXJl
cywKKyAgICAgICAgIlRoZSByZW5kZXJlciBzdXBwb3J0cyBjaGFuZ2luZyBzYW1wbGVyJ3MgY29t
cGFyZSBtb2RlIG91dHNpZGUgc2hhZGVycyIsCisgICAgICAgICZtZW1iZXJzLAorICAgIH07CisK
KyAgICBGZWF0dXJlSW5mbyBhbGxvd1NhbXBsZXJDb21wYXJlR3JhZGllbnQgPSB7CisgICAgICAg
ICJhbGxvd1NhbXBsZXJDb21wYXJlR3JhZGllbnQiLAorICAgICAgICBGZWF0dXJlQ2F0ZWdvcnk6
Ok1ldGFsRmVhdHVyZXMsCisgICAgICAgICJUaGUgcmVuZGVyZXIgc3VwcG9ydHMgc2FtcGxlX2Nv
bXBhcmUgd2l0aCBncmFkaWVudHMiLAorICAgICAgICAmbWVtYmVycywKKyAgICB9OworCisgICAg
RmVhdHVyZUluZm8gYWxsb3dTYW1wbGVyQ29tcGFyZUxvZCA9IHsKKyAgICAgICAgImFsbG93U2Ft
cGxlckNvbXBhcmVMb2QiLAorICAgICAgICBGZWF0dXJlQ2F0ZWdvcnk6Ok1ldGFsRmVhdHVyZXMs
CisgICAgICAgICJUaGUgcmVuZGVyZXIgc3VwcG9ydHMgc2FtcGxlX2NvbXBhcmUgd2l0aCBsb2Qi
LAorICAgICAgICAmbWVtYmVycywKKyAgICB9OworCisgICAgRmVhdHVyZUluZm8gYWxsb3dCdWZm
ZXJSZWFkV3JpdGUgPSB7CisgICAgICAgICJhbGxvd0J1ZmZlclJlYWRXcml0ZSIsCisgICAgICAg
IEZlYXR1cmVDYXRlZ29yeTo6TWV0YWxGZWF0dXJlcywKKyAgICAgICAgIlRoZSByZW5kZXJlciBz
dXBwb3J0cyBidWZmZXIgcmVhZCBhbmQgd3JpdGUgaW4gdGhlIHNhbWUgc2hhZGVyIiwKKyAgICAg
ICAgJm1lbWJlcnMsCisgICAgfTsKKworICAgIEZlYXR1cmVJbmZvIGFsbG93TXVsdGlzYW1wbGVT
dG9yZUFuZFJlc29sdmUgPSB7CisgICAgICAgICJhbGxvd011bHRpc2FtcGxlU3RvcmVBbmRSZXNv
bHZlIiwKKyAgICAgICAgRmVhdHVyZUNhdGVnb3J5OjpNZXRhbEZlYXR1cmVzLAorICAgICAgICAi
VGhlIHJlbmRlcmVyIHN1cHBvcnRzIE1TQUEgc3RvcmUgYW5kIHJlc29sdmUgaW4gdGhlIHNhbWUg
cGFzcyIsCisgICAgICAgICZtZW1iZXJzLAorICAgIH07CisKKyAgICBGZWF0dXJlSW5mbyBhbGxv
d0dlbk11bHRpcGxlTWlwc1BlclBhc3MgPSB7CisgICAgICAgICJhbGxvd0dlbk11bHRpcGxlTWlw
c1BlclBhc3MiLAorICAgICAgICBGZWF0dXJlQ2F0ZWdvcnk6Ok1ldGFsRmVhdHVyZXMsCisgICAg
ICAgICJUaGUgcmVuZGVyZXIgc3VwcG9ydHMgZ2VuZXJhdGluZyBtdWx0aXBsZSBtaXBtYXBzIHBl
ciBwYXNzIiwKKyAgICAgICAgJm1lbWJlcnMsCisgICAgfTsKKworICAgIEZlYXR1cmVJbmZvIGZv
cmNlRDI0UzhBc1Vuc3VwcG9ydGVkID0geworICAgICAgICAiZm9yY2VEMjRTOEFzVW5zdXBwb3J0
ZWQiLAorICAgICAgICBGZWF0dXJlQ2F0ZWdvcnk6Ok1ldGFsRmVhdHVyZXMsCisgICAgICAgICJG
b3JjZSBEZXB0aDI0U3RlbmNpbDggZm9ybWF0IGFzIHVuc3VwcG9ydGVkLiIsCisgICAgICAgICZt
ZW1iZXJzLAorICAgIH07CisKKyAgICBGZWF0dXJlSW5mbyBmb3JjZUJ1ZmZlckdQVVN0b3JhZ2Ug
PSB7CisgICAgICAgICJmb3JjZUJ1ZmZlckdQVVN0b3JhZ2UiLAorICAgICAgICBGZWF0dXJlQ2F0
ZWdvcnk6Ok1ldGFsRmVhdHVyZXMsCisgICAgICAgICJPbiBzeXN0ZW1zIHRoYXQgc3VwcG9ydCBi
b3RoIGJ1ZmZlcicgbWVtb3J5IGFsbG9jYXRpb24gb24gR1BVIGFuZCBzaGFyZWQgbWVtb3J5IChz
dWNoIGFzICIKKyAgICAgICAgIm1hY09TKSwgZm9yY2UgdXNpbmcgR1BVIG1lbW9yeSBhbGxvY2F0
aW9uIGZvciBidWZmZXJzIGV2ZXJ5dGltZSBvciBub3QuIiwKKyAgICAgICAgJm1lbWJlcnMsCisg
ICAgfTsKKworICAgIEZlYXR1cmVJbmZvIGRpcmVjdE1ldGFsR2VuZXJhdGlvbiA9IHsiZGlyZWN0
TWV0YWxHZW5lcmF0aW9uIiwgRmVhdHVyZUNhdGVnb3J5OjpNZXRhbEZlYXR1cmVzLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRGlyZWN0IHRyYW5zbGF0aW9uIHRv
IE1ldGFsLiIsICZtZW1iZXJzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiaHR0cDovL2FuZ2xlYnVnLmNvbS81NTA1In07CisKKyAgICBGZWF0dXJlSW5mbyBmb3Jj
ZU5vbkNTQmFzZU1pcG1hcEdlbmVyYXRpb24gPSB7CisgICAgICAgICJmb3JjZU5vbkNTQmFzZU1p
cG1hcEdlbmVyYXRpb24iLAorICAgICAgICBGZWF0dXJlQ2F0ZWdvcnk6Ok1ldGFsRmVhdHVyZXMs
CisgICAgICAgICJUdXJuIHRoaXMgZmVhdHVyZSBvbiB0byBkaXNhbGxvdyBDb21wdXRlIFNoYWRl
ciBiYXNlZCBtaXBtYXAgZ2VuZXJhdGlvbi4gQ29tcHV0ZSBTaGFkZXIgIgorICAgICAgICAiYmFz
ZWQgbWlwbWFwIGdlbmVyYXRpb24gbWlnaHQgY2F1c2UgR1BVIGhhbmcgb24gc29tZSBvbGRlciBp
T1MgZGV2aWNlcy4iLAorICAgICAgICAmbWVtYmVycywKKyAgICB9OworCisgICAgRmVhdHVyZUlu
Zm8gZW11bGF0ZVRyYW5zZm9ybUZlZWRiYWNrID0geworICAgICAgICAiZW11bGF0ZVRyYW5zZm9y
bUZlZWRiYWNrIiwKKyAgICAgICAgRmVhdHVyZUNhdGVnb3J5OjpNZXRhbEZlYXR1cmVzLAorICAg
ICAgICAiVHVybiB0aGlzIG9uIHRvIGFsbG93IHRyYW5zZm9ybSBmZWVkYmFjayBpbiBNZXRhbCB1
c2luZyBhIDItcGFzcyBWUyBmb3IgR0xFUzMuIiwKKyAgICAgICAgJm1lbWJlcnMsCisgICAgfTsK
KworICAgIEZlYXR1cmVJbmZvIHJld3JpdGVSb3dNYWpvck1hdHJpY2VzID0geworICAgICAgICAi
cmV3cml0ZVJvd01ham9yTWF0cmljZXMiLAorICAgICAgICBGZWF0dXJlQ2F0ZWdvcnk6Ok1ldGFs
RmVhdHVyZXMsCisgICAgICAgICJSZXdyaXRlIHJvdyBtYWpvciBtYXRyaWNlcyBpbiBzaGFkZXJz
IGFzIGNvbHVtbiBtYWpvci4iLAorICAgICAgICAmbWVtYmVycywKKyAgICB9OworCisgICAgRmVh
dHVyZUluZm8gaW50ZWxFeHBsaWNpdEJvb2xDYXN0V29ya2Fyb3VuZCA9IHsKKyAgICAgICAgImlu
dGVsRXhwbGljaXRCb29sQ2FzdFdvcmthcm91bmQiLAorICAgICAgICBGZWF0dXJlQ2F0ZWdvcnk6
Ok1ldGFsV29ya2Fyb3VuZHMsCisgICAgICAgICJJbnNlcnQgZXhwbGljaXQgY2FzdHMgZm9yIGZs
b2F0L2RvdWJsZS91bnNpZ25lZC9zaWduZWQgaW50IG9uIG1hY09TIDEwLjE1IHdpdGggSW50ZWwg
IgorICAgICAgICAiZHJpdmVyIiwKKyAgICAgICAgJm1lbWJlcnMsCisgICAgfTsKKworICAgIEZl
YXR1cmVJbmZvIGludGVsRGlzYWJsZUZhc3RNYXRoID0geworICAgICAgICAiaW50ZWxEaXNhYmxl
RmFzdE1hdGgiLAorICAgICAgICBGZWF0dXJlQ2F0ZWdvcnk6Ok1ldGFsV29ya2Fyb3VuZHMsCisg
ICAgICAgICJEaXNhYmxlIGZhc3QgbWF0aCBpbiBhdGFuIGFuZCBpbnZhcmlhbmNlIGNhc2VzIHdo
ZW4gcnVubmluZyBiZWxvdyBtYWNPUyAxMi4wIiwKKyAgICAgICAgJm1lbWJlcnMsCisgICAgfTsK
KworICAgIEZlYXR1cmVJbmZvIG11bHRpc2FtcGxlQ29sb3JGb3JtYXRTaGFkZXJSZWFkV29ya2Fy
b3VuZCA9IHsKKyAgICAgICAgIm11bHRpc2FtcGxlQ29sb3JGb3JtYXRTaGFkZXJSZWFkV29ya2Fy
b3VuZCIsIEZlYXR1cmVDYXRlZ29yeTo6TWV0YWxXb3JrYXJvdW5kcywKKyAgICAgICAgIkFkZCBz
aGFkZXJSZWFkIHVzYWdlIHRvIHNvbWUgbXVsdGlzYW1wbGVkIHRleHR1cmUgZm9ybWF0cyIsICZt
ZW1iZXJzLAorICAgICAgICAiaHR0cDovL2FuZ2xlYnVnLmNvbS83MDQ5In07CisKKyAgICBGZWF0
dXJlSW5mbyBjb3B5SU9TdXJmYWNlVG9Ob25JT1N1cmZhY2VGb3JSZWFkT3B0aW1pemF0aW9uID0g
eworICAgICAgICAiY29weUlPU3VyZmFjZVRvTm9uSU9TdXJmYWNlRm9yUmVhZE9wdGltaXphdGlv
biIsIEZlYXR1cmVDYXRlZ29yeTo6TWV0YWxXb3JrYXJvdW5kcywKKyAgICAgICAgInNvbWUgR1BV
cyBhcmUgZmFzdGVyIHRvIHJlYWQgYW4gSU9TdXJmYWNlIHRleHR1cmUgYnkgZmlyc3QgY29weWlu
ZyB0aGUgdGV4dHVyZSB0byBhICIKKyAgICAgICAgIm5vbi1JT1N1cmZhY2UgdGV4dHVyZSIsCisg
ICAgICAgICZtZW1iZXJzLCAiaHR0cDovL2FuZ2xlYnVnLmNvbS83MTE3In07Cit9OworCitpbmxp
bmUgRmVhdHVyZXNNdGw6OkZlYXR1cmVzTXRsKCkgID0gZGVmYXVsdDsKK2lubGluZSBGZWF0dXJl
c010bDo6fkZlYXR1cmVzTXRsKCkgPSBkZWZhdWx0OworCit9ICAvLyBuYW1lc3BhY2UgYW5nbGUK
KworI2VuZGlmICAvLyBBTkdMRV9QTEFURk9STV9GRUFUVVJFU01UTF9IXwpkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvQU5HTEUvaW5jbHVkZS9wbGF0Zm9ybS9GZWF0dXJlc1ZrLmggYi9T
b3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9pbmNsdWRlL3BsYXRmb3JtL0ZlYXR1cmVzVmsuaApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmE2NjBjMmE1OWE3ZWY2YzBhYzc3MzlmYWFlNjQw
MmYyNzE1YzNhOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9pbmNsdWRlL3BsYXRmb3JtL0ZlYXR1cmVzVmsuaAor
KysgL2Rldi9udWxsCkBAIC0xLDY3NiArMCwwIEBACi0vLwotLy8gQ29weXJpZ2h0IDIwMTggVGhl
IEFOR0xFIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLS8vIFVzZSBvZiB0
aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBj
YW4gYmUKLS8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0vLwotLy8gRmVhdHVyZXNWay5o
OiBPcHRpb25hbCBmZWF0dXJlcyBmb3IgdGhlIFZ1bGthbiByZW5kZXJlci4KLS8vCi0KLSNpZm5k
ZWYgQU5HTEVfUExBVEZPUk1fRkVBVFVSRVNWS19IXwotI2RlZmluZSBBTkdMRV9QTEFURk9STV9G
RUFUVVJFU1ZLX0hfCi0KLSNpbmNsdWRlICJwbGF0Zm9ybS9GZWF0dXJlLmgiCi0KLSNpbmNsdWRl
IDxhcnJheT4KLQotbmFtZXNwYWNlIGFuZ2xlCi17Ci0KLXN0cnVjdCBGZWF0dXJlc1ZrIDogRmVh
dHVyZVNldEJhc2UKLXsKLSAgICBGZWF0dXJlc1ZrKCk7Ci0gICAgfkZlYXR1cmVzVmsoKTsKLQot
ICAgIC8vIExpbmUgc2VnbWVudCByYXN0ZXJpemF0aW9uIG11c3QgZm9sbG93IE9wZW5HTCBydWxl
cy4gVGhpcyBtZWFucyB1c2luZyBhbiBhbGdvcml0aG0gc2ltaWxhcgotICAgIC8vIHRvIEJyZXNl
bmhhbSdzLiBWdWxrYW4gdXNlcyBhIGRpZmZlcmVudCBhbGdvcml0aG0uIFRoaXMgZmVhdHVyZSBl
bmFibGVzIHRoZSB1c2Ugb2YgcGl4ZWwKLSAgICAvLyBzaGFkZXIgcGF0Y2hpbmcgdG8gaW1wbGVt
ZW50IE9wZW5HTCBiYXNpYyBsaW5lIHJhc3Rlcml6YXRpb24gcnVsZXMuIFRoaXMgZmVhdHVyZSB3
aWxsCi0gICAgLy8gbm9ybWFsbHkgYWx3YXlzIGJlIGVuYWJsZWQuIEV4cG9zaW5nIGl0IGFzIGFu
IG9wdGlvbiBlbmFibGVzIHBlcmZvcm1hbmNlIHRlc3RpbmcuCi0gICAgRmVhdHVyZSBiYXNpY0dM
TGluZVJhc3Rlcml6YXRpb24gPSB7Ci0gICAgICAgICJiYXNpY0dMTGluZVJhc3Rlcml6YXRpb24i
LCBGZWF0dXJlQ2F0ZWdvcnk6OlZ1bGthbkZlYXR1cmVzLAotICAgICAgICAiRW5hYmxlIHRoZSB1
c2Ugb2YgcGl4ZWwgc2hhZGVyIHBhdGNoaW5nIHRvIGltcGxlbWVudCBPcGVuR0wgYmFzaWMgbGlu
ZSAiCi0gICAgICAgICJyYXN0ZXJpemF0aW9uIHJ1bGVzIiwKLSAgICAgICAgJm1lbWJlcnN9Owot
Ci0gICAgLy8gSWYgdGhlIFZLX0VYVF9saW5lX3Jhc3Rlcml6YXRpb24gZXh0ZW5zaW9uIGlzIGF2
YWlsYWJsZSB3ZSdsbCB1c2UgaXQgdG8gZ2V0Ci0gICAgLy8gQnJlc2VuaGFtIGxpbmUgcmFzdGVy
aXphdGlvbi4KLSAgICBGZWF0dXJlIGJyZXNlbmhhbUxpbmVSYXN0ZXJpemF0aW9uID0gewotICAg
ICAgICAiYnJlc2VuaGFtTGluZVJhc3Rlcml6YXRpb24iLCBGZWF0dXJlQ2F0ZWdvcnk6OlZ1bGth
bkZlYXR1cmVzLAotICAgICAgICAiRW5hYmxlIEJyZXNlbmhhbSBsaW5lIHJhc3Rlcml6YXRpb24g
dmlhIFZLX0VYVF9saW5lX3Jhc3Rlcml6YXRpb24gZXh0ZW5zaW9uIiwgJm1lbWJlcnN9OwotCi0g
ICAgLy8gSWYgdGhlIFZLX0VYVF9wcm92b2tpbmdfdmVydGV4IGV4dGVuc2lvbiBpcyBhdmFpbGFi
bGUsIHdlJ2xsIHVzZSBpdCB0byBzZXQKLSAgICAvLyB0aGUgcHJvdm9raW5nIHZlcnRleCBtb2Rl
Ci0gICAgRmVhdHVyZSBwcm92b2tpbmdWZXJ0ZXggPSB7InByb3Zva2luZ1ZlcnRleCIsIEZlYXR1
cmVDYXRlZ29yeTo6VnVsa2FuRmVhdHVyZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIkVuYWJsZSBwcm92b2tpbmcgdmVydGV4IG1vZGUgdmlhIFZLX0VYVF9wcm92b2tpbmdfdmVy
dGV4IGV4dGVuc2lvbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm1lbWJlcnN9
OwotCi0gICAgLy8gVGhpcyBmbGFnIGlzIGFkZGVkIGZvciB0aGUgc29sZSBwdXJwb3NlIG9mIGVu
ZDJlbmQgdGVzdHMsIHRvIHRlc3QgdGhlIGNvcnJlY3RuZXNzCi0gICAgLy8gb2YgdmFyaW91cyBh
bGdvcml0aG1zIHdoZW4gYSBmYWxsYmFjayBmb3JtYXQgaXMgdXNlZCwgc3VjaCBhcyB1c2luZyBh
IHBhY2tlZCBmb3JtYXQgdG8KLSAgICAvLyBlbXVsYXRlIGEgZGVwdGgtIG9yIHN0ZW5jaWwtb25s
eSBmb3JtYXQuCi0gICAgRmVhdHVyZSBmb3JjZUZhbGxiYWNrRm9ybWF0ID0geyJmb3JjZUZhbGxi
YWNrRm9ybWF0IiwgRmVhdHVyZUNhdGVnb3J5OjpWdWxrYW5Xb3JrYXJvdW5kcywKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZvcmNlIGEgZmFsbGJhY2sgZm9ybWF0IGZvciBh
bmdsZV9lbmQyZW5kX3Rlc3RzIiwgJm1lbWJlcnN9OwotCi0gICAgLy8gT24gc29tZSBOVklESUEg
ZHJpdmVycyB0aGUgcG9pbnQgc2l6ZSByYW5nZSByZXBvcnRlZCBmcm9tIHRoZSBBUEkgaXMgaW5j
b25zaXN0ZW50IHdpdGggdGhlCi0gICAgLy8gYWN0dWFsIGJlaGF2aW9yLiBDbGFtcCB0aGUgcG9p
bnQgc2l6ZSB0byB0aGUgdmFsdWUgZnJvbSB0aGUgQVBJIHRvIGZpeCB0aGlzLgotICAgIC8vIFRy
YWNrZWQgaW4gaHR0cDovL2FuZ2xlYnVnLmNvbS8yOTcwLgotICAgIEZlYXR1cmUgY2xhbXBQb2lu
dFNpemUgPSB7Ci0gICAgICAgICJjbGFtcFBvaW50U2l6ZSIsIEZlYXR1cmVDYXRlZ29yeTo6VnVs
a2FuV29ya2Fyb3VuZHMsCi0gICAgICAgICJUaGUgcG9pbnQgc2l6ZSByYW5nZSByZXBvcnRlZCBm
cm9tIHRoZSBBUEkgaXMgaW5jb25zaXN0ZW50IHdpdGggdGhlIGFjdHVhbCBiZWhhdmlvciIsCi0g
ICAgICAgICZtZW1iZXJzLCAiaHR0cDovL2FuZ2xlYnVnLmNvbS8yOTcwIn07Ci0KLSAgICAvLyBP
biBzb21lIE5WSURJQSBkcml2ZXJzIHRoZSBkZXB0aCB2YWx1ZSBpcyBub3QgY2xhbXBlZCB0byBb
MCwxXSBmb3IgZmxvYXRpbmcgcG9pbnQgZGVwdGgKLSAgICAvLyBidWZmZXJzLiBUaGlzIGlzIE5W
SURJQSBidWcgMzE3MTAxOSwgc2VlIGh0dHA6Ly9hbmdsZWJ1Zy5jb20vMzk3MCBmb3IgZGV0YWls
cy4KLSAgICBGZWF0dXJlIGRlcHRoQ2xhbXBpbmcgPSB7Ci0gICAgICAgICJkZXB0aF9jbGFtcGlu
ZyIsIEZlYXR1cmVDYXRlZ29yeTo6VnVsa2FuV29ya2Fyb3VuZHMsCi0gICAgICAgICJUaGUgZGVw
dGggdmFsdWUgaXMgbm90IGNsYW1wZWQgdG8gWzAsMV0gZm9yIGZsb2F0aW5nIHBvaW50IGRlcHRo
IGJ1ZmZlcnMuIiwgJm1lbWJlcnMsCi0gICAgICAgICJodHRwOi8vYW5nbGVidWcuY29tLzM5NzAi
fTsKLQotICAgIEZlYXR1cmUgc3VwcG9ydHNSZW5kZXJwYXNzMiA9IHsic3VwcG9ydHNSZW5kZXJw
YXNzMiIsIEZlYXR1cmVDYXRlZ29yeTo6VnVsa2FuRmVhdHVyZXMsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJWa0RldmljZSBzdXBwb3J0cyB0aGUgVktfS0hSX2NyZWF0ZV9y
ZW5kZXJwYXNzMiBleHRlbnNpb24iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAmbWVtYmVyc307Ci0KLSAgICAvLyBXaGV0aGVyIHRoZSBWa0RldmljZSBzdXBwb3J0cyB0aGUg
VktfS0hSX2luY3JlbWVudGFsX3ByZXNlbnQgZXh0ZW5zaW9uLCBvbiB3aGljaCB0aGUKLSAgICAv
LyBFR0xfS0hSX3N3YXBfYnVmZmVyc193aXRoX2RhbWFnZSBleHRlbnNpb24gY2FuIGJlIGxheWVy
ZWQuCi0gICAgRmVhdHVyZSBzdXBwb3J0c0luY3JlbWVudGFsUHJlc2VudCA9IHsKLSAgICAgICAg
InN1cHBvcnRzSW5jcmVtZW50YWxQcmVzZW50IiwgRmVhdHVyZUNhdGVnb3J5OjpWdWxrYW5GZWF0
dXJlcywKLSAgICAgICAgIlZrRGV2aWNlIHN1cHBvcnRzIHRoZSBWS19LSFJfaW5jcmVtZW50YWxf
cHJlc2VudCBleHRlbnNpb24iLCAmbWVtYmVyc307Ci0KLSAgICAvLyBXaGV0aGVyIHRoZSBWa0Rl
dmljZSBzdXBwb3J0cyB0aGUgVktfQU5EUk9JRF9leHRlcm5hbF9tZW1vcnlfYW5kcm9pZF9oYXJk
d2FyZV9idWZmZXIKLSAgICAvLyBleHRlbnNpb24sIG9uIHdoaWNoIHRoZSBFR0xfQU5EUk9JRF9p
bWFnZV9uYXRpdmVfYnVmZmVyIGV4dGVuc2lvbiBjYW4gYmUgbGF5ZXJlZC4KLSAgICBGZWF0dXJl
IHN1cHBvcnRzQW5kcm9pZEhhcmR3YXJlQnVmZmVyID0gewotICAgICAgICAic3VwcG9ydHNBbmRy
b2lkSGFyZHdhcmVCdWZmZXIiLCBGZWF0dXJlQ2F0ZWdvcnk6OlZ1bGthbkZlYXR1cmVzLAotICAg
ICAgICAiVmtEZXZpY2Ugc3VwcG9ydHMgdGhlIFZLX0FORFJPSURfZXh0ZXJuYWxfbWVtb3J5X2Fu
ZHJvaWRfaGFyZHdhcmVfYnVmZmVyIGV4dGVuc2lvbiIsCi0gICAgICAgICZtZW1iZXJzfTsKLQot
ICAgIC8vIFdoZXRoZXIgdGhlIFZrRGV2aWNlIHN1cHBvcnRzIHRoZSBWS19HR1BfZnJhbWVfdG9r
ZW4gZXh0ZW5zaW9uLCBvbiB3aGljaAotICAgIC8vIHRoZSBFR0xfQU5HTEVfc3dhcF93aXRoX2Zy
YW1lX3Rva2VuIGV4dGVuc2lvbiBjYW4gYmUgbGF5ZXJlZC4KLSAgICBGZWF0dXJlIHN1cHBvcnRz
R0dQRnJhbWVUb2tlbiA9IHsic3VwcG9ydHNHR1BGcmFtZVRva2VuIiwgRmVhdHVyZUNhdGVnb3J5
OjpWdWxrYW5GZWF0dXJlcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
VmtEZXZpY2Ugc3VwcG9ydHMgdGhlIFZLX0dHUF9mcmFtZV90b2tlbiBleHRlbnNpb24iLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZtZW1iZXJzfTsKLQotICAgIC8vIFdo
ZXRoZXIgdGhlIFZrRGV2aWNlIHN1cHBvcnRzIHRoZSBWS19LSFJfZXh0ZXJuYWxfbWVtb3J5X2Zk
IGV4dGVuc2lvbiwgb24gd2hpY2ggdGhlCi0gICAgLy8gR0xfRVhUX21lbW9yeV9vYmplY3RfZmQg
ZXh0ZW5zaW9uIGNhbiBiZSBsYXllcmVkLgotICAgIEZlYXR1cmUgc3VwcG9ydHNFeHRlcm5hbE1l
bW9yeUZkID0geyJzdXBwb3J0c0V4dGVybmFsTWVtb3J5RmQiLCBGZWF0dXJlQ2F0ZWdvcnk6OlZ1
bGthbkZlYXR1cmVzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJW
a0RldmljZSBzdXBwb3J0cyB0aGUgVktfS0hSX2V4dGVybmFsX21lbW9yeV9mZCBleHRlbnNpb24i
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZtZW1iZXJzfTsKLQot
ICAgIC8vIFdoZXRoZXIgdGhlIFZrRGV2aWNlIHN1cHBvcnRzIHRoZSBWS19GVUNIU0lBX2V4dGVy
bmFsX21lbW9yeQotICAgIC8vIGV4dGVuc2lvbiwgb24gd2hpY2ggdGhlIEdMX0FOR0xFX21lbW9y
eV9vYmplY3RfZnVjaHNpYSBleHRlbnNpb24gY2FuIGJlIGxheWVyZWQuCi0gICAgRmVhdHVyZSBz
dXBwb3J0c0V4dGVybmFsTWVtb3J5RnVjaHNpYSA9IHsKLSAgICAgICAgInN1cHBvcnRzRXh0ZXJu
YWxNZW1vcnlGdWNoc2lhIiwgRmVhdHVyZUNhdGVnb3J5OjpWdWxrYW5GZWF0dXJlcywKLSAgICAg
ICAgIlZrRGV2aWNlIHN1cHBvcnRzIHRoZSBWS19GVUNIU0lBX2V4dGVybmFsX21lbW9yeSBleHRl
bnNpb24iLCAmbWVtYmVyc307Ci0KLSAgICBGZWF0dXJlIHN1cHBvcnRzRmlsdGVyaW5nUHJlY2lz
aW9uID0gewotICAgICAgICAic3VwcG9ydHNGaWx0ZXJpbmdQcmVjaXNpb24iLCBGZWF0dXJlQ2F0
ZWdvcnk6OlZ1bGthbkZlYXR1cmVzLAotICAgICAgICAiVmtEZXZpY2Ugc3VwcG9ydHMgdGhlIFZL
X0dPT0dMRV9zYW1wbGVyX2ZpbHRlcmluZ19wcmVjaXNpb24gZXh0ZW5zaW9uIiwgJm1lbWJlcnN9
OwotCi0gICAgLy8gV2hldGhlciB0aGUgVmtJbnN0YW5jZSBzdXBwb3J0cyB0aGUgVktfS0hSX2V4
dGVybmFsX2ZlbmNlX2NhcGFiaWxpdGllcyBleHRlbnNpb24uCi0gICAgRmVhdHVyZSBzdXBwb3J0
c0V4dGVybmFsRmVuY2VDYXBhYmlsaXRpZXMgPSB7Ci0gICAgICAgICJzdXBwb3J0c0V4dGVybmFs
RmVuY2VDYXBhYmlsaXRpZXMiLCBGZWF0dXJlQ2F0ZWdvcnk6OlZ1bGthbkZlYXR1cmVzLAotICAg
ICAgICAiVmtJbnN0YW5jZSBzdXBwb3J0cyB0aGUgVktfS0hSX2V4dGVybmFsX2ZlbmNlX2NhcGFi
aWxpdGllcyBleHRlbnNpb24iLCAmbWVtYmVyc307Ci0KLSAgICAvLyBXaGV0aGVyIHRoZSBWa0lu
c3RhbmNlIHN1cHBvcnRzIHRoZSBWS19LSFJfZXh0ZXJuYWxfc2VtYXBob3JlX2NhcGFiaWxpdGll
cyBleHRlbnNpb24uCi0gICAgRmVhdHVyZSBzdXBwb3J0c0V4dGVybmFsU2VtYXBob3JlQ2FwYWJp
bGl0aWVzID0gewotICAgICAgICAic3VwcG9ydHNFeHRlcm5hbFNlbWFwaG9yZUNhcGFiaWxpdGll
cyIsIEZlYXR1cmVDYXRlZ29yeTo6VnVsa2FuRmVhdHVyZXMsCi0gICAgICAgICJWa0luc3RhbmNl
IHN1cHBvcnRzIHRoZSBWS19LSFJfZXh0ZXJuYWxfc2VtYXBob3JlX2NhcGFiaWxpdGllcyBleHRl
bnNpb24iLCAmbWVtYmVyc307Ci0KLSAgICAvLyBXaGV0aGVyIHRoZSBWa0RldmljZSBzdXBwb3J0
cyB0aGUgVktfS0hSX2V4dGVybmFsX3NlbWFwaG9yZV9mZCBleHRlbnNpb24sIG9uIHdoaWNoIHRo
ZQotICAgIC8vIEdMX0VYVF9zZW1hcGhvcmVfZmQgZXh0ZW5zaW9uIGNhbiBiZSBsYXllcmVkLgot
ICAgIEZlYXR1cmUgc3VwcG9ydHNFeHRlcm5hbFNlbWFwaG9yZUZkID0gewotICAgICAgICAic3Vw
cG9ydHNFeHRlcm5hbFNlbWFwaG9yZUZkIiwgRmVhdHVyZUNhdGVnb3J5OjpWdWxrYW5GZWF0dXJl
cywKLSAgICAgICAgIlZrRGV2aWNlIHN1cHBvcnRzIHRoZSBWS19LSFJfZXh0ZXJuYWxfc2VtYXBo
b3JlX2ZkIGV4dGVuc2lvbiIsICZtZW1iZXJzfTsKLQotICAgIC8vIFdoZXRoZXIgdGhlIFZrRGV2
aWNlIHN1cHBvcnRzIHRoZSBWS19GVUNIU0lBX2V4dGVybmFsX3NlbWFwaG9yZQotICAgIC8vIGV4
dGVuc2lvbiwgb24gd2hpY2ggdGhlIEdMX0FOR0xFX3NlbWFwaG9yZV9mdWNoc2lhIGV4dGVuc2lv
biBjYW4gYmUgbGF5ZXJlZC4KLSAgICBhbmdsZTo6RmVhdHVyZSBzdXBwb3J0c0V4dGVybmFsU2Vt
YXBob3JlRnVjaHNpYSA9IHsKLSAgICAgICAgInN1cHBvcnRzRXh0ZXJuYWxTZW1hcGhvcmVGdWNo
c2lhIiwgRmVhdHVyZUNhdGVnb3J5OjpWdWxrYW5GZWF0dXJlcywKLSAgICAgICAgIlZrRGV2aWNl
IHN1cHBvcnRzIHRoZSBWS19GVUNIU0lBX2V4dGVybmFsX3NlbWFwaG9yZSBleHRlbnNpb24iLCAm
bWVtYmVyc307Ci0KLSAgICAvLyBXaGV0aGVyIHRoZSBWa0RldmljZSBzdXBwb3J0cyB0aGUgVktf
S0hSX2V4dGVybmFsX2ZlbmNlX2ZkIGV4dGVuc2lvbiwgb24gd2hpY2ggdGhlCi0gICAgLy8gRUdM
X0FORFJPSURfbmF0aXZlX2ZlbmNlIGV4dGVuc2lvbiBjYW4gYmUgbGF5ZXJlZC4KLSAgICBGZWF0
dXJlIHN1cHBvcnRzRXh0ZXJuYWxGZW5jZUZkID0geyJzdXBwb3J0c0V4dGVybmFsRmVuY2VGZCIs
IEZlYXR1cmVDYXRlZ29yeTo6VnVsa2FuRmVhdHVyZXMsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiVmtEZXZpY2Ugc3VwcG9ydHMgdGhlIFZLX0tIUl9leHRlcm5hbF9m
ZW5jZV9mZCBleHRlbnNpb24iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJm1lbWJlcnMsICJodHRwOi8vYW5nbGVidWcuY29tLzI1MTcifTsKLQotICAgIC8vIFdoZXRo
ZXIgdGhlIFZrRGV2aWNlIGNhbiBzdXBwb3J0IEVHTF9BTkRST0lEX25hdGl2ZV9mZW5jZV9zeW5j
IGV4dGVuc2lvbi4KLSAgICBGZWF0dXJlIHN1cHBvcnRzQW5kcm9pZE5hdGl2ZUZlbmNlU3luYyA9
IHsKLSAgICAgICAgInN1cHBvcnRzQW5kcm9pZE5hdGl2ZUZlbmNlU3luYyIsIEZlYXR1cmVDYXRl
Z29yeTo6VnVsa2FuRmVhdHVyZXMsCi0gICAgICAgICJWa0RldmljZSBzdXBwb3J0cyB0aGUgRUdM
X0FORFJPSURfbmF0aXZlX2ZlbmNlX3N5bmMgZXh0ZW5zaW9uIiwgJm1lbWJlcnMsCi0gICAgICAg
ICJodHRwOi8vYW5nbGVidWcuY29tLzI1MTcifTsKLQotICAgIC8vIFdoZXRoZXIgdGhlIFZrRGV2
aWNlIGNhbiBzdXBwb3J0IHRoZSBpbWFnZUN1YmVBcnJheSBmZWF0dXJlIHByb3Blcmx5LgotICAg
IEZlYXR1cmUgc3VwcG9ydHNJbWFnZUN1YmVBcnJheSA9IHsic3VwcG9ydHNJbWFnZUN1YmVBcnJh
eSIsIEZlYXR1cmVDYXRlZ29yeTo6VnVsa2FuRmVhdHVyZXMsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJWa0RldmljZSBzdXBwb3J0cyB0aGUgaW1hZ2VDdWJlQXJyYXkg
ZmVhdHVyZSBwcm9wZXJseSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICZtZW1iZXJzLCAiaHR0cDovL2FuZ2xlYnVnLmNvbS8zNTg0In07Ci0KLSAgICAvLyBXaGV0aGVy
IHRoZSBWa0RldmljZSBzdXBwb3J0cyB0aGUgcGlwZWxpbmVTdGF0aXN0aWNzUXVlcnkgZmVhdHVy
ZS4KLSAgICBGZWF0dXJlIHN1cHBvcnRzUGlwZWxpbmVTdGF0aXN0aWNzUXVlcnkgPSB7Ci0gICAg
ICAgICJzdXBwb3J0c1BpcGVsaW5lU3RhdGlzdGljc1F1ZXJ5IiwgRmVhdHVyZUNhdGVnb3J5OjpW
dWxrYW5GZWF0dXJlcywKLSAgICAgICAgIlZrRGV2aWNlIHN1cHBvcnRzIHRoZSBwaXBlbGluZVN0
YXRpc3RpY3NRdWVyeSBmZWF0dXJlIiwgJm1lbWJlcnMsCi0gICAgICAgICJodHRwOi8vYW5nbGVi
dWcuY29tLzU0MzAifTsKLQotICAgIC8vIFdoZXRoZXIgdGhlIFZrRGV2aWNlIHN1cHBvcnRzIHRo
ZSBWS19FWFRfc2hhZGVyX3N0ZW5jaWxfZXhwb3J0IGV4dGVuc2lvbiwgd2hpY2ggaXMgdXNlZCB0
bwotICAgIC8vIHBlcmZvcm0gbXVsdGlzYW1wbGVkIHJlc29sdmUgb2Ygc3RlbmNpbCBidWZmZXIu
ICBBIG11bHRpLXN0ZXAgd29ya2Fyb3VuZCBpcyB1c2VkIGluc3RlYWQgaWYKLSAgICAvLyB0aGlz
IGV4dGVuc2lvbiBpcyBub3QgYXZhaWxhYmxlLgotICAgIEZlYXR1cmUgc3VwcG9ydHNTaGFkZXJT
dGVuY2lsRXhwb3J0ID0gewotICAgICAgICAic3VwcG9ydHNTaGFkZXJTdGVuY2lsRXhwb3J0Iiwg
RmVhdHVyZUNhdGVnb3J5OjpWdWxrYW5GZWF0dXJlcywKLSAgICAgICAgIlZrRGV2aWNlIHN1cHBv
cnRzIHRoZSBWS19FWFRfc2hhZGVyX3N0ZW5jaWxfZXhwb3J0IGV4dGVuc2lvbiIsICZtZW1iZXJz
fTsKLQotICAgIC8vIFdoZXRoZXIgdGhlIFZrRGV2aWNlIHN1cHBvcnRzIHRoZSBWS19LSFJfc2Ft
cGxlcl95Y2Jjcl9jb252ZXJzaW9uIGV4dGVuc2lvbiwgd2hpY2ggaXMgbmVlZGVkCi0gICAgLy8g
dG8gc3VwcG9ydCBZY2JjciBjb252ZXJzaW9uIHdpdGggZXh0ZXJuYWwgaW1hZ2VzLgotICAgIEZl
YXR1cmUgc3VwcG9ydHNZVVZTYW1wbGVyQ29udmVyc2lvbiA9IHsKLSAgICAgICAgInN1cHBvcnRz
WVVWU2FtcGxlckNvbnZlcnNpb24iLCBGZWF0dXJlQ2F0ZWdvcnk6OlZ1bGthbkZlYXR1cmVzLAot
ICAgICAgICAiVmtEZXZpY2Ugc3VwcG9ydHMgdGhlIFZLX0tIUl9zYW1wbGVyX3ljYmNyX2NvbnZl
cnNpb24gZXh0ZW5zaW9uIiwgJm1lbWJlcnN9OwotCi0gICAgLy8gV2hlcmUgVktfRVhUX3RyYW5z
Zm9ybV9mZWVkYmFjayBpcyBub3Qgc3VwcG9ydCwgYW4gZW11bGF0aW9uIHBhdGggaXMgdXNlZC4K
LSAgICAvLyBodHRwOi8vYW5nbGVidWcuY29tLzMyMDUKLSAgICBGZWF0dXJlIGVtdWxhdGVUcmFu
c2Zvcm1GZWVkYmFjayA9IHsKLSAgICAgICAgImVtdWxhdGVUcmFuc2Zvcm1GZWVkYmFjayIsIEZl
YXR1cmVDYXRlZ29yeTo6VnVsa2FuRmVhdHVyZXMsCi0gICAgICAgICJFbXVsYXRlIHRyYW5zZm9y
bSBmZWVkYmFjayBhcyB0aGUgVktfRVhUX3RyYW5zZm9ybV9mZWVkYmFjayBpcyBub3QgcHJlc2Vu
dC4iLCAmbWVtYmVycywKLSAgICAgICAgImh0dHA6Ly9hbmdsZWJ1Zy5jb20vMzIwNSJ9OwotCi0g
ICAgLy8gV2hlcmUgVktfRVhUX3RyYW5zZm9ybV9mZWVkYmFjayBpcyBzdXBwb3J0ZWQsIGl0J3Mg
cHJlZmVycmVkIG92ZXIgYW4gZW11bGF0aW9uIHBhdGguCi0gICAgLy8gaHR0cDovL2FuZ2xlYnVn
LmNvbS8zMjA2Ci0gICAgRmVhdHVyZSBzdXBwb3J0c1RyYW5zZm9ybUZlZWRiYWNrRXh0ZW5zaW9u
ID0gewotICAgICAgICAic3VwcG9ydHNUcmFuc2Zvcm1GZWVkYmFja0V4dGVuc2lvbiIsIEZlYXR1
cmVDYXRlZ29yeTo6VnVsa2FuRmVhdHVyZXMsCi0gICAgICAgICJUcmFuc2Zvcm0gZmVlZGJhY2sg
dXNlcyB0aGUgVktfRVhUX3RyYW5zZm9ybV9mZWVkYmFjayBleHRlbnNpb24uIiwgJm1lbWJlcnMs
Ci0gICAgICAgICJodHRwOi8vYW5nbGVidWcuY29tLzMyMDYifTsKLQotICAgIEZlYXR1cmUgc3Vw
cG9ydHNHZW9tZXRyeVN0cmVhbXNDYXBhYmlsaXR5ID0gewotICAgICAgICAic3VwcG9ydHNHZW9t
ZXRyeVN0cmVhbXNDYXBhYmlsaXR5IiwgRmVhdHVyZUNhdGVnb3J5OjpWdWxrYW5GZWF0dXJlcywK
LSAgICAgICAgIkltcGxlbWVudGF0aW9uIHN1cHBvcnRzIHRoZSBHZW9tZXRyeVN0cmVhbXMgU1BJ
Ui1WIGNhcGFiaWxpdHkuIiwgJm1lbWJlcnMsCi0gICAgICAgICJodHRwOi8vYW5nbGVidWcuY29t
LzMyMDYifTsKLQotICAgIC8vIFdoZXRoZXIgdGhlIFZrRGV2aWNlIHN1cHBvcnRzIHRoZSBWS19F
WFRfaW5kZXhfdHlwZV91aW50OCBleHRlbnNpb24KLSAgICAvLyBodHRwOi8vYW5nbGVidWcuY29t
LzQ0MDUKLSAgICBGZWF0dXJlIHN1cHBvcnRzSW5kZXhUeXBlVWludDggPSB7InN1cHBvcnRzSW5k
ZXhUeXBlVWludDgiLCBGZWF0dXJlQ2F0ZWdvcnk6OlZ1bGthbkZlYXR1cmVzLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVmtEZXZpY2Ugc3VwcG9ydHMgdGhlIFZLX0VY
VF9pbmRleF90eXBlX3VpbnQ4IGV4dGVuc2lvbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICZtZW1iZXJzLCAiaHR0cDovL2FuZ2xlYnVnLmNvbS80NDA1In07Ci0KLSAg
ICAvLyBXaGV0aGVyIHRoZSBWa0RldmljZSBzdXBwb3J0cyB0aGUgVktfRVhUX2N1c3RvbV9ib3Jk
ZXJfY29sb3IgZXh0ZW5zaW9uCi0gICAgLy8gaHR0cDovL2FuZ2xlYnVnLmNvbS8zNTc3Ci0gICAg
RmVhdHVyZSBzdXBwb3J0c0N1c3RvbUJvcmRlckNvbG9yID0gewotICAgICAgICAic3VwcG9ydHND
dXN0b21Cb3JkZXJDb2xvciIsIEZlYXR1cmVDYXRlZ29yeTo6VnVsa2FuRmVhdHVyZXMsCi0gICAg
ICAgICJWa0RldmljZSBzdXBwb3J0cyB0aGUgVktfRVhUX2N1c3RvbV9ib3JkZXJfY29sb3IgZXh0
ZW5zaW9uIiwgJm1lbWJlcnMsCi0gICAgICAgICJodHRwOi8vYW5nbGVidWcuY29tLzM1NzcifTsK
LQotICAgIC8vIFdoZXRoZXIgdGhlIFZrRGV2aWNlIHN1cHBvcnRzIG11bHRpRHJhd0luZGlyZWN0
IChkcmF3SW5kaXJlY3Qgd2l0aCBkcmF3Q291bnQgPiAxKQotICAgIC8vIGh0dHA6Ly9hbmdsZWJ1
Zy5jb20vNjQzOQotICAgIEZlYXR1cmUgc3VwcG9ydHNNdWx0aURyYXdJbmRpcmVjdCA9IHsKLSAg
ICAgICAgInN1cHBvcnRzTXVsdGlEcmF3SW5kaXJlY3QiLCBGZWF0dXJlQ2F0ZWdvcnk6OlZ1bGth
bkZlYXR1cmVzLAotICAgICAgICAiVmtEZXZpY2Ugc3VwcG9ydHMgdGhlIG11bHRpRHJhd0luZGly
ZWN0IGV4dGVuc2lvbiIsICZtZW1iZXJzLCAiaHR0cDovL2FuZ2xlYnVnLmNvbS82NDM5In07Ci0K
LSAgICAvLyBXaGV0aGVyIHRoZSBWa0RldmljZSBzdXBwb3J0cyB0aGUgVktfS0hSX2RlcHRoX3N0
ZW5jaWxfcmVzb2x2ZSBleHRlbnNpb24gd2l0aCB0aGUKLSAgICAvLyBpbmRlcGVuZGVudFJlc29s
dmVOb25lIGZlYXR1cmUuCi0gICAgLy8gaHR0cDovL2FuZ2xlYnVnLmNvbS80ODM2Ci0gICAgRmVh
dHVyZSBzdXBwb3J0c0RlcHRoU3RlbmNpbFJlc29sdmUgPSB7InN1cHBvcnRzRGVwdGhTdGVuY2ls
UmVzb2x2ZSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmVh
dHVyZUNhdGVnb3J5OjpWdWxrYW5GZWF0dXJlcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiVmtEZXZpY2Ugc3VwcG9ydHMgdGhlIFZLX0tIUl9kZXB0aF9zdGVu
Y2lsX3Jlc29sdmUgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJleHRlbnNpb24gd2l0aCB0aGUgaW5kZXBlbmRlbnRSZXNvbHZlTm9uZSBmZWF0dXJlIiwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbWVtYmVycywgImh0dHA6
Ly9hbmdsZWJ1Zy5jb20vNDgzNiJ9OwotCi0gICAgLy8gV2hldGhlciB0aGUgVmtEZXZpY2Ugc3Vw
cG9ydHMgdGhlIFZLX0VYVF9tdWx0aXNhbXBsZWRfcmVuZGVyX3RvX3NpbmdsZV9zYW1wbGVkIGV4
dGVuc2lvbi4KLSAgICAvLyBodHRwOi8vYW5nbGVidWcuY29tLzQ4MzYKLSAgICBGZWF0dXJlIHN1
cHBvcnRzTXVsdGlzYW1wbGVkUmVuZGVyVG9TaW5nbGVTYW1wbGVkID0gewotICAgICAgICAic3Vw
cG9ydHNNdWx0aXNhbXBsZWRSZW5kZXJUb1NpbmdsZVNhbXBsZWQiLCBGZWF0dXJlQ2F0ZWdvcnk6
OlZ1bGthbkZlYXR1cmVzLAotICAgICAgICAiVmtEZXZpY2Ugc3VwcG9ydHMgdGhlIFZLX0VYVF9t
dWx0aXNhbXBsZWRfcmVuZGVyX3RvX3NpbmdsZV9zYW1wbGVkIGV4dGVuc2lvbiIsICZtZW1iZXJz
LAotICAgICAgICAiaHR0cDovL2FuZ2xlYnVnLmNvbS80ODM2In07Ci0KLSAgICAvLyBXaGV0aGVy
IHRoZSBWa0RldmljZSBzdXBwb3J0cyB0aGUgVktfS0hSX211bHRpdmlldyBleHRlbnNpb24uICBo
dHRwOi8vYW5nbGVidWcuY29tLzYwNDgKLSAgICBGZWF0dXJlIHN1cHBvcnRzTXVsdGl2aWV3ID0g
eyJzdXBwb3J0c011bHRpdmlldyIsIEZlYXR1cmVDYXRlZ29yeTo6VnVsa2FuRmVhdHVyZXMsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVmtEZXZpY2Ugc3VwcG9ydHMgdGhlIFZL
X0tIUl9tdWx0aXZpZXcgZXh0ZW5zaW9uIiwgJm1lbWJlcnMsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiaHR0cDovL2FuZ2xlYnVnLmNvbS82MDQ4In07Ci0KLSAgICAvLyBWS19Q
UkVTRU5UX01PREVfRklGT19LSFIgY2F1c2VzIHJhbmRvbSB0aW1lb3V0cyBvbiBMaW51eCBJbnRl
bC4gaHR0cDovL2FuZ2xlYnVnLmNvbS8zMTUzCi0gICAgRmVhdHVyZSBkaXNhYmxlRmlmb1ByZXNl
bnRNb2RlID0geyJkaXNhYmxlRmlmb1ByZXNlbnRNb2RlIiwgRmVhdHVyZUNhdGVnb3J5OjpWdWxr
YW5Xb3JrYXJvdW5kcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlZL
X1BSRVNFTlRfTU9ERV9GSUZPX0tIUiBjYXVzZXMgcmFuZG9tIHRpbWVvdXRzIiwgJm1lbWJlcnMs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJodHRwOi8vYW5nbGVidWcu
Y29tLzMxNTMifTsKLQotICAgIC8vIE9uIFF1YWxjb21tLCBnYXBzIGluIGJvdW5kIGRlc2NyaXB0
b3Igc2V0IGluZGljZXMgY2F1c2VzIHRoZSBwb3N0LWdhcCBzZXRzIHRvIG1pc2JlaGF2ZS4KLSAg
ICAvLyBGb3IgZXhhbXBsZSwgYmluZGluZyBvbmx5IGRlc2NyaXB0b3Igc2V0IDMgcmVzdWx0cyBp
biB6ZXJvIGJlaW5nIHJlYWQgZnJvbSBhIHVuaWZvcm0gYnVmZmVyCi0gICAgLy8gb2JqZWN0IHdp
dGhpbiB0aGF0IHNldC4gIFRoaXMgZmxhZyByZXN1bHRzIGluIGVtcHR5IGRlc2NyaXB0b3Igc2V0
cyBiZWluZyBib3VuZCBmb3IgYW55Ci0gICAgLy8gdW51c2VkIGRlc2NyaXB0b3Igc2V0IHRvIHdv
cmsgYXJvdW5kIHRoaXMgaXNzdWUuICBodHRwOi8vYW5nbGVidWcuY29tLzI3MjcKLSAgICBGZWF0
dXJlIGJpbmRFbXB0eUZvclVudXNlZERlc2NyaXB0b3JTZXRzID0gewotICAgICAgICAiYmluZEVt
cHR5Rm9yVW51c2VkRGVzY3JpcHRvclNldHMiLCBGZWF0dXJlQ2F0ZWdvcnk6OlZ1bGthbldvcmth
cm91bmRzLAotICAgICAgICAiR2FwcyBpbiBib3VuZCBkZXNjcmlwdG9yIHNldCBpbmRpY2VzIGNh
dXNlcyB0aGUgcG9zdC1nYXAgc2V0cyB0byBtaXNiZWhhdmUiLCAmbWVtYmVycywKLSAgICAgICAg
Imh0dHA6Ly9hbmdsZWJ1Zy5jb20vMjcyNyJ9OwotCi0gICAgLy8gT0VTX2RlcHRoX3RleHR1cmUg
aXMgYSBjb21tb25seSBleHBlY3RlZCBmZWF0dXJlIG9uIEFuZHJvaWQuIEhvd2V2ZXIgaXQKLSAg
ICAvLyByZXF1aXJlcyB0aGF0IEQxNl9VTk9STSBzdXBwb3J0IHRleHR1cmUgZmlsdGVyaW5nCi0g
ICAgLy8gKGUuZy4gVktfRk9STUFUX0ZFQVRVUkVfU0FNUExFRF9JTUFHRV9GSUxURVJfTElORUFS
X0JJVCkgYW5kIHNvbWUgZGV2aWNlcwotICAgIC8vIGRvIG5vdC4gV29yay1hcm91bmQgdGhpcyBi
eSBzZXR0aW5nIHNheWluZyBEMTZfVU5PUk0gc3VwcG9ydHMgZmlsdGVyaW5nCi0gICAgLy8gYW55
d2F5LgotICAgIEZlYXR1cmUgZm9yY2VEMTZUZXhGaWx0ZXIgPSB7Ci0gICAgICAgICJmb3JjZUQx
NlRleEZpbHRlciIsIEZlYXR1cmVDYXRlZ29yeTo6VnVsa2FuV29ya2Fyb3VuZHMsCi0gICAgICAg
ICJWS19GT1JNQVRfRDE2X1VOT1JNIGRvZXMgbm90IHN1cHBvcnQgVktfRk9STUFUX0ZFQVRVUkVf
U0FNUExFRF9JTUFHRV9GSUxURVJfTElORUFSX0JJVCwgIgotICAgICAgICAid2hpY2ggcHJldmVu
dHMgT0VTX2RlcHRoX3RleHR1cmUgZnJvbSBiZWluZyBzdXBwb3J0ZWQuIiwKLSAgICAgICAgJm1l
bWJlcnMsICJodHRwOi8vYW5nbGVidWcuY29tLzM0NTIifTsKLQotICAgIC8vIE9uIHNvbWUgYW5k
cm9pZCBkZXZpY2VzLCB2a0NtZEJsaXRJbWFnZSB3aXRoIGZsaXBwZWQgY29vcmRpbmF0ZXMgYmxp
dHMgaW5jb3JyZWN0bHkuICBUaGlzCi0gICAgLy8gd29ya2Fyb3VuZCBtYWtlcyBzdXJlIHRoaXMg
cGF0aCBpcyBhdm9pZGVkLiAgaHR0cDovL2FuZ2xlYnVnLmNvbS8zNDk4Ci0gICAgRmVhdHVyZSBk
aXNhYmxlRmxpcHBpbmdCbGl0V2l0aENvbW1hbmQgPSB7Ci0gICAgICAgICJkaXNhYmxlRmxpcHBp
bmdCbGl0V2l0aENvbW1hbmQiLCBGZWF0dXJlQ2F0ZWdvcnk6OlZ1bGthbldvcmthcm91bmRzLAot
ICAgICAgICAidmtDbWRCbGl0SW1hZ2Ugd2l0aCBmbGlwcGVkIGNvb3JkaW5hdGVzIGJsaXRzIGlu
Y29ycmVjdGx5LiIsICZtZW1iZXJzLAotICAgICAgICAiaHR0cDovL2FuZ2xlYnVnLmNvbS8zNDk4
In07Ci0KLSAgICAvLyBPbiBwbGF0Zm9ybSB3aXRoIEludGVsIG9yIEFNRCBHUFUsIGEgd2luZG93
IHJlc2l6aW5nIHdvdWxkIG5vdCB0cmlnZ2VyIHRoZSB2dWxrYW4gZHJpdmVyIHRvCi0gICAgLy8g
cmV0dXJuIFZLX0VSUk9SX09VVF9PRl9EQVRFIG9uIHN3YXBjaGFpbiBwcmVzZW50LiAgV29yay1h
cm91bmQgYnkgcXVlcnkgY3VycmVudCB3aW5kb3cgZXh0ZW50Ci0gICAgLy8gZXZlcnkgZnJhbWUg
dG8gZGV0ZWN0IGEgd2luZG93IHJlc2l6aW5nLgotICAgIC8vIGh0dHA6Ly9hbmdsZWJ1Zy5jb20v
MzYyMywgaHR0cDovL2FuZ2xlYnVnLmNvbS8zNjI0LCBodHRwOi8vYW5nbGVidWcuY29tLzM2MjUK
LSAgICBGZWF0dXJlIHBlckZyYW1lV2luZG93U2l6ZVF1ZXJ5ID0gewotICAgICAgICAicGVyRnJh
bWVXaW5kb3dTaXplUXVlcnkiLCBGZWF0dXJlQ2F0ZWdvcnk6OlZ1bGthbldvcmthcm91bmRzLAot
ICAgICAgICAiVnVsa2FuIHN3YXBjaGFpbiBpcyBub3QgcmV0dXJuaW5nIFZLX0VSUk9SX09VVF9P
Rl9EQVRFIHdoZW4gd2luZG93IHJlc2l6aW5nIiwgJm1lbWJlcnMsCi0gICAgICAgICJodHRwOi8v
YW5nbGVidWcuY29tLzM2MjMsIGh0dHA6Ly9hbmdsZWJ1Zy5jb20vMzYyNCwgaHR0cDovL2FuZ2xl
YnVnLmNvbS8zNjI1In07Ci0KLSAgICAvLyBTZWFtZnVsIGN1YmUgbWFwIGVtdWxhdGlvbiBtaXNi
ZWhhdmVzIG9uIHRoZSBBTUQgd2luZG93cyBkcml2ZXIsIHNvIGl0J3MgZGlzYWxsb3dlZC4KLSAg
ICBGZWF0dXJlIGRpc2FsbG93U2VhbWZ1bEN1YmVNYXBFbXVsYXRpb24gPSB7Ci0gICAgICAgICJk
aXNhbGxvd1NlYW1mdWxDdWJlTWFwRW11bGF0aW9uIiwgRmVhdHVyZUNhdGVnb3J5OjpWdWxrYW5X
b3JrYXJvdW5kcywKLSAgICAgICAgIlNlYW1mdWwgY3ViZSBtYXAgZW11bGF0aW9uIG1pc2JlaGF2
ZXMgb24gc29tZSBkcml2ZXJzLCBzbyBpdCdzIGRpc2FsbG93ZWQiLCAmbWVtYmVycywKLSAgICAg
ICAgImh0dHA6Ly9hbmdsZWJ1Zy5jb20vMzI0MyJ9OwotCi0gICAgLy8gVnVsa2FuIGNvbnNpZGVy
cyB2ZXJ0ZXggYXR0cmlidXRlIGFjY2Vzc2VzIHRvIGNvdW50IHVwIHRvIHRoZSBsYXN0IG11bHRp
cGxlIG9mIHRoZSBzdHJpZGUuCi0gICAgLy8gVGhpcyBhZGRpdGlvbmFsIGFjY2VzcyBzdXBwb3J0
cyBBTUQncyByb2J1c3QgYnVmZmVyIGFjY2VzcyBpbXBsZW1lbnRhdGlvbi4KLSAgICAvLyBBTURW
TEsgaW4gcGFydGljdWxhciB3aWxsIHJldHVybiBpbmNvcnJlY3QgdmFsdWVzIHdoZW4gdGhlIHZl
cnRleCBhY2Nlc3MgZXh0ZW5kcyBpbnRvIHRoZQotICAgIC8vIHJhbmdlIHRoYXQgd291bGQgYmUg
dGhlIHN0cmlkZSBwYWRkaW5nIGFuZCB0aGUgYnVmZmVyIGlzIHRvbyBzbWFsbC4KLSAgICAvLyBU
aGlzIHdvcmthcm91bmQgbGltaXRzIEdMX01BWF9WRVJURVhfQVRUUklCX1NUUklERSB0byBhIHJl
YXNvbmFibGUgdmFsdWUgYW5kIHBhZHMgb3V0Ci0gICAgLy8gZXZlcnkgYnVmZmVyIGFsbG9jYXRp
b24gc2l6ZSB0byBiZSBsYXJnZSBlbm91Z2ggdG8gc3VwcG9ydCBhIG1heGltdW0gdmVydGV4IHN0
cmlkZS4KLSAgICAvLyBodHRwOi8vYW5nbGVidWcuY29tLzQ0MjgKLSAgICBGZWF0dXJlIHBhZEJ1
ZmZlcnNUb01heFZlcnRleEF0dHJpYlN0cmlkZSA9IHsKLSAgICAgICAgInBhZEJ1ZmZlcnNUb01h
eFZlcnRleEF0dHJpYlN0cmlkZSIsIEZlYXR1cmVDYXRlZ29yeTo6VnVsa2FuV29ya2Fyb3VuZHMs
Ci0gICAgICAgICJWdWxrYW4gY29uc2lkZXJzIHZlcnRleCBhdHRyaWJ1dGUgYWNjZXNzZXMgdG8g
Y291bnQgdXAgdG8gdGhlIGxhc3QgbXVsdGlwbGUgb2YgdGhlICIKLSAgICAgICAgInN0cmlkZS4g
VGhpcyBhZGRpdGlvbmFsIGFjY2VzcyBzdXBwb3J0cyBBTUQncyByb2J1c3QgYnVmZmVyIGFjY2Vz
cyBpbXBsZW1lbnRhdGlvbi4gIgotICAgICAgICAiQU1EVkxLIGluIHBhcnRpY3VsYXIgd2lsbCBy
ZXR1cm4gaW5jb3JyZWN0IHZhbHVlcyB3aGVuIHRoZSB2ZXJ0ZXggYWNjZXNzIGV4dGVuZHMgaW50
byAiCi0gICAgICAgICJ0aGUgcmFuZ2UgdGhhdCB3b3VsZCBiZSB0aGUgc3RyaWRlIHBhZGRpbmcg
YW5kIHRoZSBidWZmZXIgaXMgdG9vIHNtYWxsLiAiCi0gICAgICAgICJUaGlzIHdvcmthcm91bmQg
bGltaXRzIEdMX01BWF9WRVJURVhfQVRUUklCX1NUUklERSB0byBhIG1heGltdW0gdmFsdWUgYW5k
ICIKLSAgICAgICAgInBhZHMgdXAgZXZlcnkgYnVmZmVyIGFsbG9jYXRpb24gc2l6ZSB0byBiZSBh
IG11bHRpcGxlIG9mIHRoZSBtYXhpbXVtIHN0cmlkZS4iLAotICAgICAgICAmbWVtYmVycywgImh0
dHA6Ly9hbmdsZWJ1Zy5jb20vNDQyOCJ9OwotCi0gICAgLy8gV2hldGhlciB0aGUgVmtEZXZpY2Ug
c3VwcG9ydHMgdGhlIFZLX0VYVF9leHRlcm5hbF9tZW1vcnlfZG1hX2J1ZiBhbmQKLSAgICAvLyBW
S19FWFRfaW1hZ2VfZHJtX2Zvcm1hdF9tb2RpZmllciBleHRlbnNpb25zLiAgVGhlc2UgZXh0ZW5z
aW9ucyBhcmUgYWx3YXlzIHVzZWQgdG9nZXRoZXIgdG8KLSAgICAvLyBpbXBsZW1lbnQgRUdMX0VY
VF9pbWFnZV9kbWFfYnVmX2ltcG9ydCBhbmQgRUdMX0VYVF9pbWFnZV9kbWFfYnVmX2ltcG9ydF9t
b2RpZmllcnMuCi0gICAgRmVhdHVyZSBzdXBwb3J0c0V4dGVybmFsTWVtb3J5RG1hQnVmQW5kTW9k
aWZpZXJzID0gewotICAgICAgICAic3VwcG9ydHNFeHRlcm5hbE1lbW9yeURtYUJ1ZkFuZE1vZGlm
aWVycyIsIEZlYXR1cmVDYXRlZ29yeTo6VnVsa2FuRmVhdHVyZXMsCi0gICAgICAgICJWa0Rldmlj
ZSBzdXBwb3J0cyB0aGUgVktfRVhUX2V4dGVybmFsX21lbW9yeV9kbWFfYnVmIGFuZCBWS19FWFRf
aW1hZ2VfZHJtX2Zvcm1hdF9tb2RpZmllciAiCi0gICAgICAgICJleHRlbnNpb25zIiwKLSAgICAg
ICAgJm1lbWJlcnMsICJodHRwOi8vYW5nbGVidWcuY29tLzYyNDgifTsKLQotICAgIC8vIFdoZXRo
ZXIgdGhlIFZrRGV2aWNlIHN1cHBvcnRzIHRoZSBWS19FWFRfZXh0ZXJuYWxfbWVtb3J5X2hvc3Qg
ZXh0ZW5zaW9uLCBvbiB3aGljaCB0aGUKLSAgICAvLyBBTkdMRV9pb3N1cmZhY2VfY2xpZW50X2J1
ZmZlciBleHRlbnNpb24gY2FuIGJlIGxheWVyZWQuCi0gICAgRmVhdHVyZSBzdXBwb3J0c0V4dGVy
bmFsTWVtb3J5SG9zdCA9IHsKLSAgICAgICAgInN1cHBvcnRzRXh0ZXJuYWxNZW1vcnlIb3N0Iiwg
RmVhdHVyZUNhdGVnb3J5OjpWdWxrYW5GZWF0dXJlcywKLSAgICAgICAgIlZrRGV2aWNlIHN1cHBv
cnRzIHRoZSBWS19FWFRfZXh0ZXJuYWxfbWVtb3J5X2hvc3QgZXh0ZW5zaW9uIiwgJm1lbWJlcnN9
OwotCi0gICAgLy8gV2hldGhlciB0byBmaWxsIG5ldyBidWZmZXJzIGFuZCB0ZXh0dXJlcyB3aXRo
IG5vbnplcm8gZGF0YSB0byBzYW5pdGl6ZSByb2J1c3QgcmVzb3VyY2UKLSAgICAvLyBpbml0aWFs
aXphdGlvbiBhbmQgZmx1c2ggb3V0IGFzc3VtcHRpb25zIGFib3V0IHplcm8gaW5pdC4KLSAgICBG
ZWF0dXJlIGFsbG9jYXRlTm9uWmVyb01lbW9yeSA9IHsKLSAgICAgICAgImFsbG9jYXRlTm9uWmVy
b01lbW9yeSIsIEZlYXR1cmVDYXRlZ29yeTo6VnVsa2FuRmVhdHVyZXMsCi0gICAgICAgICJGaWxs
IG5ldyBhbGxvY2F0aW9ucyB3aXRoIG5vbi16ZXJvIHZhbHVlcyB0byBmbHVzaCBvdXQgZXJyb3Jz
LiIsICZtZW1iZXJzLAotICAgICAgICAiaHR0cDovL2FuZ2xlYnVnLmNvbS80Mzg0In07Ci0KLSAg
ICAvLyBXaGV0aGVyIHRvIGxvZyBlYWNoIGNhbGxiYWNrIGZyb20gdGhlIFZLX0VYVF9kZXZpY2Vf
bWVtb3J5X3JlcG9ydCBleHRlbnNpb24uICBUaGlzIGZlYXR1cmUgaXMKLSAgICAvLyB1c2VkIGZv
ciB0cnlpbmcgdG8gZGVidWcgR1BVIG1lbW9yeSBsZWFrcy4KLSAgICBGZWF0dXJlIGxvZ01lbW9y
eVJlcG9ydENhbGxiYWNrcyA9IHsibG9nTWVtb3J5UmVwb3J0Q2FsbGJhY2tzIiwgRmVhdHVyZUNh
dGVnb3J5OjpWdWxrYW5GZWF0dXJlcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiTG9nIGVhY2ggY2FsbGJhY2sgZnJvbSBWS19FWFRfZGV2aWNlX21lbW9yeV9yZXBv
cnQiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZtZW1iZXJzfTsK
LQotICAgIC8vIFdoZXRoZXIgdG8gbG9nIHN0YXRpc3RpY3MgZnJvbSB0aGUgVktfRVhUX2Rldmlj
ZV9tZW1vcnlfcmVwb3J0IGV4dGVuc2lvbiBlYWNoIGVnbFN3YXBCdWZmZXIuCi0gICAgRmVhdHVy
ZSBsb2dNZW1vcnlSZXBvcnRTdGF0cyA9IHsibG9nTWVtb3J5UmVwb3J0U3RhdHMiLCBGZWF0dXJl
Q2F0ZWdvcnk6OlZ1bGthbkZlYXR1cmVzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIkxvZyBzdGF0cyBmcm9tIFZLX0VYVF9kZXZpY2VfbWVtb3J5X3JlcG9ydCBlYWNoIHN3
YXAiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm1lbWJlcnN9OwotCi0g
ICAgLy8gQWxsb2NhdGUgYSAic2hhZG93IiBidWZmZXIgZm9yIEdMIGJ1ZmZlciBvYmplY3RzLiBG
b3IgR1BVLXJlYWQgb25seSBidWZmZXJzCi0gICAgLy8gZ2xNYXAqIGxhdGVuY3kgY2FuIGJlIHJl
ZHVjZWQgYnkgbWFpbnRhaW5pbmcgYSBjb3B5IG9mIHRoZSBidWZmZXIgd2hpY2ggaXMKLSAgICAv
LyB3cml0ZWFibGUgb25seSBieSB0aGUgQ1BVLiBXZSB0aGVuIHJldHVybiB0aGlzIHNoYWRvdyBi
dWZmZXIgb24gZ2xNYXAqIGNhbGxzLgotICAgIEZlYXR1cmUgc2hhZG93QnVmZmVycyA9IHsKLSAg
ICAgICAgInNoYWRvd0J1ZmZlcnMiLCBGZWF0dXJlQ2F0ZWdvcnk6OlZ1bGthbkZlYXR1cmVzLAot
ICAgICAgICAiQWxsb2NhdGUgYSBzaGFkb3cgYnVmZmVyIGZvciBHTCBidWZmZXIgb2JqZWN0cyB0
byByZWR1Y2UgZ2xNYXAqIGxhdGVuY3kuIiwgJm1lbWJlcnMsCi0gICAgICAgICJodHRwOi8vYW5n
bGVidWcuY29tLzQzMzkifTsKLQotICAgIC8vIFdoZW4gd2UgdXBkYXRlIGJ1ZmZlciBkYXRhIHdl
IHVzdWFsbHkgZmFjZSBhIGNob2ljZSB0byBlaXRoZXIgY2xvbmUgYSBidWZmZXIgYW5kIGNvcHkg
dGhlCi0gICAgLy8gZGF0YSBvciBzdGFnZSBhIGJ1ZmZlciB1cGRhdGUgYW5kIHVzZSB0aGUgR1BV
IHRvIGRvIHRoZSBjb3B5LiBGb3Igc29tZSBHUFVzLCBhIHBlcmZvcm1hbmNlCi0gICAgLy8gcGVu
YWx0eSB0byB1c2UgdGhlIEdQVSB0byBkbyBjb3BpZXMuIFNldHRpbmcgdGhpcyBmbGFnIHRvIHRy
dWUgd2lsbCBhbHdheXMgdHJ5IHRvIGNyZWF0ZSBhCi0gICAgLy8gbmV3IGJ1ZmZlciBhbmQgdXNl
IHRoZSBDUFUgdG8gY29weSBkYXRhIHdoZW4gcG9zc2libGUuCi0gICAgRmVhdHVyZSBwcmVmZXJD
UFVGb3JCdWZmZXJTdWJEYXRhID0gewotICAgICAgICAicHJlZmVyQ1BVRm9yQnVmZmVyU3ViRGF0
YSIsIEZlYXR1cmVDYXRlZ29yeTo6VnVsa2FuRmVhdHVyZXMsCi0gICAgICAgICJQcmVmZXIgdXNl
IENQVSB0byBkbyBidWZmZXJTdWJEYXRhIGluc3RlYWQgb2Ygc3RhZ2VkIHVwZGF0ZS4iLCAmbWVt
YmVycywKLSAgICAgICAgImh0dHA6Ly9pc3N1ZXRyYWNrZXIuZ29vZ2xlLmNvbS8yMDAwNjc5Mjki
fTsKLQotICAgIC8vIFBlcnNpc3RlbnRseSBtYXAgYnVmZmVyIG1lbW9yeSB1bnRpbCBkZXN0cm95
LCBzYXZlcyBvbiBtYXAvdW5tYXAgSU9DVEwgb3ZlcmhlYWQKLSAgICAvLyBmb3IgYnVmZmVycyB0
aGF0IGFyZSB1cGRhdGVkIGZyZXF1ZW50bHkuCi0gICAgRmVhdHVyZSBwZXJzaXN0ZW50bHlNYXBw
ZWRCdWZmZXJzID0gewotICAgICAgICAicGVyc2lzdGVudGx5TWFwcGVkQnVmZmVycyIsIEZlYXR1
cmVDYXRlZ29yeTo6VnVsa2FuRmVhdHVyZXMsCi0gICAgICAgICJQZXJzaXN0ZW50bHkgbWFwIGJ1
ZmZlciBtZW1vcnkgdG8gcmVkdWNlIG1hcC91bm1hcCBJT0NUTCBvdmVyaGVhZC4iLCAmbWVtYmVy
cywKLSAgICAgICAgImh0dHA6Ly9hbmdsZWJ1Zy5jb20vMjE2MiJ9OwotCi0gICAgLy8gQW5kcm9p
ZCBuZWVkcyB0byBwcmUtcm90YXRlIHN1cmZhY2VzIHRoYXQgYXJlIG5vdCBvcmllbnRlZCBwZXIg
dGhlIG5hdGl2ZSBkZXZpY2UncwotICAgIC8vIG9yaWVudGF0aW9uIChlLmcuIGEgbGFuZHNjYXBl
IGFwcGxpY2F0aW9uIG9uIGEgUGl4ZWwgcGhvbmUpLiAgVGhpcyBmZWF0dXJlIHdvcmtzIGZvcgot
ICAgIC8vIGZ1bGwtc2NyZWVuIGFwcGxpY2F0aW9ucy4gaHR0cDovL2FuZ2xlYnVnLmNvbS8zNTAy
Ci0gICAgRmVhdHVyZSBlbmFibGVQcmVSb3RhdGVTdXJmYWNlcyA9IHsiZW5hYmxlUHJlUm90YXRl
U3VyZmFjZXMiLCBGZWF0dXJlQ2F0ZWdvcnk6OlZ1bGthbkZlYXR1cmVzLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIkVuYWJsZSBBbmRyb2lkIHByZS1yb3RhdGlvbiBm
b3IgbGFuZHNjYXBlIGFwcGxpY2F0aW9ucyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAmbWVtYmVycywgImh0dHA6Ly9hbmdsZWJ1Zy5jb20vMzUwMiJ9OwotCi0gICAg
Ly8gRW5hYmxlIHByZWNpc2lvbiBxdWFsaWZpZXJzIGZvciBzaGFkZXJzIGdlbmVyYXRlZCBieSBW
dWxrYW4gYmFja2VuZCBodHRwOi8vYW5nbGVidWcuY29tLzMwNzgKLSAgICBGZWF0dXJlIGVuYWJs
ZVByZWNpc2lvblF1YWxpZmllcnMgPSB7Ci0gICAgICAgICJlbmFibGVQcmVjaXNpb25RdWFsaWZp
ZXJzIiwgRmVhdHVyZUNhdGVnb3J5OjpWdWxrYW5GZWF0dXJlcywKLSAgICAgICAgIkVuYWJsZSBw
cmVjaXNpb24gcXVhbGlmaWVycyBpbiBzaGFkZXJzIiwgJm1lbWJlcnMsICJodHRwOi8vYW5nbGVi
dWcuY29tLzMwNzgifTsKLQotICAgIC8vIERlc2t0b3AgKGF0IGxlYXN0IE5WSURJQSkgZGV2aWNl
cyBwcmVmZXIgY29tYmluaW5nIGJhcnJpZXJzIGludG8gb25lIHZrQ21kUGlwZWxpbmVCYXJyaWVy
Ci0gICAgLy8gY2FsbCBvdmVyIGlzc3VpbmcgbXVsdGlwbGUgYmFycmllciBjYWxscyB3aXRoIGZp
bmUgZ3JhaW5lZCBkZXBlbmRlbmN5IGluZm9ybWF0aW9uIHRvIGhhdmUKLSAgICAvLyBiZXR0ZXIg
cGVyZm9ybWFuY2UuIGh0dHA6Ly9hbmdsZWJ1Zy5jb20vNDYzMwotICAgIEZlYXR1cmUgcHJlZmVy
QWdncmVnYXRlQmFycmllckNhbGxzID0gewotICAgICAgICAicHJlZmVyQWdncmVnYXRlQmFycmll
ckNhbGxzIiwgRmVhdHVyZUNhdGVnb3J5OjpWdWxrYW5Xb3JrYXJvdW5kcywKLSAgICAgICAgIlNp
bmdsZSBiYXJyaWVyIGNhbGwgaXMgcHJlZmVycmVkIG92ZXIgbXVsdGlwbGUgY2FsbHMgd2l0aCAi
Ci0gICAgICAgICJmaW5lIGdyYWluZWQgcGlwZWxpbmUgc3RhZ2UgZGVwZW5kZW5jeSBpbmZvcm1h
dGlvbiIsCi0gICAgICAgICZtZW1iZXJzLCAiaHR0cDovL2FuZ2xlYnVnLmNvbS80NjMzIn07Ci0K
LSAgICAvLyBXaGVuIGRlYWxpbmcgd2l0aCBlbXVsYXRlZCBmb3JtYXRzIHRoYXQgaGF2ZSBleHRy
YSBjaGFubmVscywgaXQncyBjaGVhcGVyIG9uIGRlc2t0b3AgZGV2aWNlcwotICAgIC8vIHRvIHNr
aXAgaW52YWxpZGF0aW5nIGZyYW1lYnVmZmVyIGF0dGFjaG1lbnRzIGNvbXBhcmVkIHRvIHRpbGlu
ZyBkZXZpY2VzIHdoZXJlIGl0J3MgY2hlYXBlciB0bwotICAgIC8vIGludmFsaWRhdGUgYW5kIHJl
LWNsZWFyIHRoZW0uIGh0dHA6Ly9hbmdsZWJ1Zy5jb20vNjg2MAotICAgIEZlYXR1cmUgcHJlZmVy
U2tpcHBpbmdJbnZhbGlkYXRlRm9yRW11bGF0ZWRGb3JtYXRzID0gewotICAgICAgICAicHJlZmVy
U2tpcHBpbmdJbnZhbGlkYXRlRm9yRW11bGF0ZWRGb3JtYXRzIiwgRmVhdHVyZUNhdGVnb3J5OjpW
dWxrYW5Xb3JrYXJvdW5kcywKLSAgICAgICAgIlNraXBwaW5nIGludmFsaWRhdGUgaXMgcHJlZmVy
cmVkIGZvciBlbXVsYXRlZCBmb3JtYXRzIHRoYXQgaGF2ZSBleHRyYSBjaGFubmVscyBvdmVyICIK
LSAgICAgICAgInJlLWNsZWFyaW5nIHRoZSBpbWFnZSIsCi0gICAgICAgICZtZW1iZXJzLCAiaHR0
cDovL2FuZ2xlYnVnLmNvbS82ODYwIn07Ci0KLSAgICAvLyBUZWxsIHRoZSBWdWxrYW4gYmFjay1l
bmQgdG8gdXNlIHRoZSBhc3luYyBjb21tYW5kIHF1ZXVlIHRvIGRpc3BhdGNoIHdvcmsgdG8gdGhl
IEdQVS4gQ29tbWFuZAotICAgIC8vIGJ1ZmZlciB3b3JrIHdpbGwgaGFwcGVuZWQgaW4gYSB3b3Jr
ZXIgdGhyZWFkLiBPdGhlcndpc2UgdXNlIFJlbmRlcmVyOjpDb21tYW5kUXVldWUgZGlyZWN0bHku
Ci0gICAgRmVhdHVyZSBhc3luY0NvbW1hbmRRdWV1ZSA9IHsiYXN5bmNDb21tYW5kUXVldWUiLCBG
ZWF0dXJlQ2F0ZWdvcnk6OlZ1bGthbkZlYXR1cmVzLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIlVzZSBDb21tYW5kUXVldWUgd29ya2VyIHRocmVhZCB0byBkaXNwYXRjaCB3b3Jr
IHRvIEdQVS4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm1lbWJlcnMsICJo
dHRwOi8vYW5nbGVidWcuY29tLzQzMjQifTsKLQotICAgIC8vIFdoZXRoZXIgdGhlIFZrRGV2aWNl
IHN1cHBvcnRzIHRoZSBWS19LSFJfc2hhZGVyX2Zsb2F0MTZfaW50OCBleHRlbnNpb24gYW5kIGhh
cyB0aGUKLSAgICAvLyBzaGFkZXJGbG9hdDE2IGZlYXR1cmUuCi0gICAgRmVhdHVyZSBzdXBwb3J0
c1NoYWRlckZsb2F0MTYgPSB7InN1cHBvcnRzU2hhZGVyRmxvYXQxNiIsIEZlYXR1cmVDYXRlZ29y
eTo6VnVsa2FuRmVhdHVyZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IlZrRGV2aWNlIHN1cHBvcnRzIHRoZSBWS19LSFJfc2hhZGVyX2Zsb2F0MTZfaW50OCBleHRlbnNp
b24gIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhbmQgaGFzIHRoZSBz
aGFkZXJGbG9hdDE2IGZlYXR1cmUiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICZtZW1iZXJzLCAiaHR0cDovL2FuZ2xlYnVnLmNvbS80NTUxIn07Ci0KLSAgICAvLyBTb21l
IGRldmljZXMgZG9uJ3QgbWVldCB0aGUgbGltaXRzIHJlcXVpcmVkIHRvIHBlcmZvcm0gbWlwbWFw
IGdlbmVyYXRpb24gdXNpbmcgdGhlIGJ1aWx0LWluCi0gICAgLy8gY29tcHV0ZSBzaGFkZXIuICBP
biBzb21lIG90aGVyIGRldmljZXMsIFZLX0lNQUdFX1VTQUdFX1NUT1JBR0VfQklUIGlzIGRldHJp
bWVudGFsIHRvCi0gICAgLy8gcGVyZm9ybWFuY2UsIG1ha2luZyB0aGlzIHNvbHV0aW9uIGltcHJh
Y3RpY2FsLgotICAgIEZlYXR1cmUgYWxsb3dHZW5lcmF0ZU1pcG1hcFdpdGhDb21wdXRlID0gewot
ICAgICAgICAiYWxsb3dHZW5lcmF0ZU1pcG1hcFdpdGhDb21wdXRlIiwgRmVhdHVyZUNhdGVnb3J5
OjpWdWxrYW5GZWF0dXJlcywKLSAgICAgICAgIlVzZSB0aGUgY29tcHV0ZSBwYXRoIHRvIGdlbmVy
YXRlIG1pcG1hcHMgb24gZGV2aWNlcyB0aGF0IG1lZXQgdGhlIG1pbmltdW0gcmVxdWlyZW1lbnRz
LCAiCi0gICAgICAgICJhbmQgdGhlIHBlcmZvcm1hbmNlIGlzIGJldHRlci4iLAotICAgICAgICAm
bWVtYmVycywgImh0dHA6Ly9hbmdsZWJ1Zy5jb20vNDU1MSJ9OwotCi0gICAgLy8gV2hldGhlciB0
aGUgVmtEZXZpY2Ugc3VwcG9ydHMgdGhlIFZLX1FDT01fcmVuZGVyX3Bhc3Nfc3RvcmVfb3BzIGV4
dGVuc2lvbgotICAgIC8vIGh0dHA6Ly9hbmdsZWJ1Zy5jb20vNTUwNQotICAgIEZlYXR1cmUgc3Vw
cG9ydHNSZW5kZXJQYXNzU3RvcmVPcE5vbmVRQ09NID0gewotICAgICAgICAic3VwcG9ydHNSZW5k
ZXJQYXNzU3RvcmVPcE5vbmVRQ09NIiwgRmVhdHVyZUNhdGVnb3J5OjpWdWxrYW5GZWF0dXJlcywK
LSAgICAgICAgIlZrRGV2aWNlIHN1cHBvcnRzIFZLX1FDT01fcmVuZGVyX3Bhc3Nfc3RvcmVfb3Bz
IGV4dGVuc2lvbi4iLCAmbWVtYmVycywKLSAgICAgICAgImh0dHA6Ly9hbmdsZWJ1Zy5jb20vNTA1
NSJ9OwotCi0gICAgLy8gV2hldGhlciB0aGUgVmtEZXZpY2Ugc3VwcG9ydHMgdGhlIFZLX0VYVF9s
b2FkX3N0b3JlX29wX25vbmUgZXh0ZW5zaW9uCi0gICAgLy8gaHR0cDovL2FuZ2xlYnVnLmNvbS81
MzcxCi0gICAgRmVhdHVyZSBzdXBwb3J0c1JlbmRlclBhc3NMb2FkU3RvcmVPcE5vbmUgPSB7Ci0g
ICAgICAgICJzdXBwb3J0c1JlbmRlclBhc3NMb2FkU3RvcmVPcE5vbmUiLCBGZWF0dXJlQ2F0ZWdv
cnk6OlZ1bGthbkZlYXR1cmVzLAotICAgICAgICAiVmtEZXZpY2Ugc3VwcG9ydHMgVktfRVhUX2xv
YWRfc3RvcmVfb3Bfbm9uZSBleHRlbnNpb24uIiwgJm1lbWJlcnMsCi0gICAgICAgICJodHRwOi8v
YW5nbGVidWcuY29tLzUzNzEifTsKLQotICAgIC8vIFdoZXRoZXIgdGhlIFZrRGV2aWNlIHN1cHBv
cnRzIHRoZSBWS19FWFRfZGVwdGhfY2xpcF9jb250cm9sIGV4dGVuc2lvbgotICAgIC8vIGh0dHA6
Ly9hbmdsZWJ1Zy5jb20vNTQyMQotICAgIEZlYXR1cmUgc3VwcG9ydHNEZXB0aENsaXBDb250cm9s
ID0geyJzdXBwb3J0c0RlcHRoQ2xpcENvbnRyb2wiLCBGZWF0dXJlQ2F0ZWdvcnk6OlZ1bGthbkZl
YXR1cmVzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJWa0Rldmlj
ZSBzdXBwb3J0cyBWS19FWFRfZGVwdGhfY2xpcF9jb250cm9sIGV4dGVuc2lvbi4iLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZtZW1iZXJzLCAiaHR0cDovL2FuZ2xl
YnVnLmNvbS81NDIxIn07Ci0KLSAgICAvLyBXaGV0aGVyIHRoZSBWa0RldmljZSBzdXBwb3J0cyB0
aGUgVktfRVhUX2JsZW5kX29wZXJhdGlvbl9hZHZhbmNlZCBleHRlbnNpb24KLSAgICAvLyBodHRw
Oi8vYW5nbGVidWcuY29tLzM1ODYKLSAgICBGZWF0dXJlIHN1cHBvcnRzQmxlbmRPcGVyYXRpb25B
ZHZhbmNlZCA9IHsKLSAgICAgICAgInN1cHBvcnRzQmxlbmRPcGVyYXRpb25BZHZhbmNlZCIsIEZl
YXR1cmVDYXRlZ29yeTo6VnVsa2FuRmVhdHVyZXMsCi0gICAgICAgICJWa0RldmljZSBzdXBwb3J0
cyBWS19FWFRfYmxlbmRfb3BlcmF0aW9uX2FkdmFuY2VkIGV4dGVuc2lvbi4iLCAmbWVtYmVycywK
LSAgICAgICAgImh0dHA6Ly9hbmdsZWJ1Zy5jb20vMzU4NiJ9OwotCi0gICAgLy8gRm9yY2UgbWF4
VW5pZm9ybUJ1ZmZlclNpemUgdG8gMTZLIG9uIFF1YWxjb21tJ3MgQWRyZW5vIDU0MC4gUGl4ZWwy
J3MgQWRyZW5vNTQwIHJlcG9ydHMKLSAgICAvLyBtYXhVbmlmb3JtQnVmZmVyU2l6ZSA2NGsgYnV0
IHZhcmlvdXMgdGVzdHMgZmFpbGVkIHdpdGggdGhhdCBzaXplLiBGb3IgdGhhdCBzcGVjaWZpYwot
ICAgIC8vIGRldmljZSwgd2Ugc2V0IHRvIDE2ayBmb3Igbm93IHdoaWNoIGlzIGtub3duIHRvIHBh
c3MgYWxsIHRlc3RzLgotICAgIC8vIGh0dHBzOi8vaXNzdWV0cmFja2VyLmdvb2dsZS5jb20vMTYx
OTAzMDA2Ci0gICAgRmVhdHVyZSBmb3JjZU1heFVuaWZvcm1CdWZmZXJTaXplMTZLQiA9IHsKLSAg
ICAgICAgImZvcmNlTWF4VW5pZm9ybUJ1ZmZlclNpemUxNktCIiwgRmVhdHVyZUNhdGVnb3J5OjpW
dWxrYW5Xb3JrYXJvdW5kcywKLSAgICAgICAgIkZvcmNlIG1heCB1bmlmb3JtIGJ1ZmZlciBzaXpl
IHRvIDE2SyBvbiBzb21lIGRldmljZSBkdWUgdG8gYnVnIiwgJm1lbWJlcnMsCi0gICAgICAgICJo
dHRwczovL2lzc3VldHJhY2tlci5nb29nbGUuY29tLzE2MTkwMzAwNiJ9OwotCi0gICAgLy8gRW5h
YmxlIG11dGFibGUgYml0IGJ5IGRlZmF1bHQgZm9yIElDRCdzIHRoYXQgc3VwcG9ydCBWS19LSFJf
aW1hZ2VfZm9ybWF0X2xpc3QuCi0gICAgLy8gaHR0cDovL2FuZ2xlYnVnLmNvbS81MjgxCi0gICAg
RmVhdHVyZSBzdXBwb3J0c0ltYWdlRm9ybWF0TGlzdCA9IHsKLSAgICAgICAgInN1cHBvcnRzSW1h
Z2VGb3JtYXRMaXN0IiwgRmVhdHVyZUNhdGVnb3J5OjpWdWxrYW5GZWF0dXJlcywKLSAgICAgICAg
IkVuYWJsZSBWS19JTUFHRV9DUkVBVEVfTVVUQUJMRV9GT1JNQVRfQklUIGJ5IGRlZmF1bHQgZm9y
IElDRHMgIgotICAgICAgICAidGhhdCBzdXBwb3J0IFZLX0tIUl9pbWFnZV9mb3JtYXRfbGlzdCIs
Ci0gICAgICAgICZtZW1iZXJzLCAiaHR0cDovL2FuZ2xlYnVnLmNvbS81MjgxIn07Ci0KLSAgICAv
LyBTd2lmdHNoYWRlciBvbiBtYWMgZmFpbHMgdG8gaW5pdGlhbGl6ZSBXZWJHTCBjb250ZXh0IHdo
ZW4gRVhUX211bHRpc2FtcGxlZF9yZW5kZXJfdG9fdGV4dHVyZQotICAgIC8vIGlzIHVzZWQgYnkg
Q2hyb21pdW0uCi0gICAgLy8gaHR0cDovL2FuZ2xlYnVnLmNvbS80OTM3Ci0gICAgRmVhdHVyZSBl
bmFibGVNdWx0aXNhbXBsZWRSZW5kZXJUb1RleHR1cmUgPSB7Ci0gICAgICAgICJlbmFibGVNdWx0
aXNhbXBsZWRSZW5kZXJUb1RleHR1cmUiLCBGZWF0dXJlQ2F0ZWdvcnk6OlZ1bGthbldvcmthcm91
bmRzLAotICAgICAgICAiRXhwb3NlIEVYVF9tdWx0aXNhbXBsZWRfcmVuZGVyX3RvX3RleHR1cmUi
LCAmbWVtYmVycywgImh0dHA6Ly9hbmdsZWJ1Zy5jb20vNDkzNyJ9OwotCi0gICAgLy8gTWFuaGF0
dGFuIGlzIGNhbGxpbmcgZ2xGbHVzaCBpbiB0aGUgbWlkZGxlIG9mIHJlbmRlcnBhc3Mgd2hpY2gg
YnJlYWtzIHJlbmRlcnBhc3MgYW5kIGh1cnRzCi0gICAgLy8gcGVyZm9ybWFuY2Ugb24gdGlsZSBi
YXNlZCBHUFUuIFdoZW4gdGhpcyBpcyBlbmFibGVkLCB3ZSB3aWxsIGRlZmVyIHRoZSBnbEZsdXNo
IGNhbGwgbWFkZSBpbgotICAgIC8vIHRoZSBtaWRkbGUgb2YgcmVuZGVycGFzcyB0byB0aGUgZW5k
IG9mIHJlbmRlcnBhc3MuCi0gICAgLy8gaHR0cHM6Ly9pc3N1ZXRyYWNrZXIuZ29vZ2xlLmNvbS9p
c3N1ZXMvMTY2NDc1MjczCi0gICAgRmVhdHVyZSBkZWZlckZsdXNoVW50aWxFbmRSZW5kZXJQYXNz
ID0gewotICAgICAgICAiZGVmZXJGbHVzaFVudGlsRW5kUmVuZGVyUGFzcyIsIEZlYXR1cmVDYXRl
Z29yeTo6VnVsa2FuV29ya2Fyb3VuZHMsCi0gICAgICAgICJBbGxvdyBnbEZsdXNoIHRvIGJlIGRl
ZmVycmVkIHVudGlsIHJlbmRlcnBhc3MgZW5kcyIsICZtZW1iZXJzLAotICAgICAgICAiaHR0cHM6
Ly9pc3N1ZXRyYWNrZXIuZ29vZ2xlLmNvbS9pc3N1ZXMvMTY2NDc1MjczIn07Ci0KLSAgICAvLyBB
bmRyb2lkIG1pc3Rha2VubHkgZGVzdHJveXMgb2xkU3dhcGNoYWluIHBhc3NlZCB0byB2a0NyZWF0
ZVN3YXBjaGFpbktIUiwgY2F1c2luZyBjcmFzaGVzIG9uCi0gICAgLy8gY2VydGFpbiBkcml2ZXJz
LiAgaHR0cDovL2FuZ2xlYnVnLmNvbS81MDYxCi0gICAgRmVhdHVyZSB3YWl0SWRsZUJlZm9yZVN3
YXBjaGFpblJlY3JlYXRpb24gPSB7Ci0gICAgICAgICJ3YWl0SWRsZUJlZm9yZVN3YXBjaGFpblJl
Y3JlYXRpb24iLCBGZWF0dXJlQ2F0ZWdvcnk6OlZ1bGthbldvcmthcm91bmRzLAotICAgICAgICAi
QmVmb3JlIHBhc3NpbmcgYW4gb2xkU3dhcGNoYWluIHRvIFZrU3dhcGNoYWluQ3JlYXRlSW5mb0tI
Uiwgd2FpdCBmb3IgcXVldWUgdG8gYmUgaWRsZS4gIgotICAgICAgICAiV29ya3MgYXJvdW5kIGEg
YnVnIG9uIHBsYXRmb3JtcyB3aGljaCBkZXN0cm95IG9sZFN3YXBjaGFpbiBpbiB2a0NyZWF0ZVN3
YXBjaGFpbktIUi4iLAotICAgICAgICAmbWVtYmVycywgImh0dHA6Ly9hbmdsZWJ1Zy5jb20vNTA2
MSJ9OwotCi0gICAgLy8gQWxsb3cgZm9yY2luZyBhbiBMT0Qgb2Zmc2V0IG9uIGFsbCBzYW1wbGlu
ZyBvcGVyYXRpb25zIGZvciBwZXJmb3JtYW5jZSBjb21wYXJpc29ucy4gQU5HTEUgaXMKLSAgICAv
LyBub24tY29uZm9ybWFudCBpZiB0aGlzIGZlYXR1cmUgaXMgZW5hYmxlZC4KLSAgICBzdGQ6OmFy
cmF5PGFuZ2xlOjpGZWF0dXJlLCA0PiBmb3JjZVRleHR1cmVMT0RPZmZzZXQgPSB7Ci0gICAgICAg
IGFuZ2xlOjpGZWF0dXJleyJmb3JjZV90ZXh0dXJlX2xvZF9vZmZzZXRfMSIsIGFuZ2xlOjpGZWF0
dXJlQ2F0ZWdvcnk6OlZ1bGthbldvcmthcm91bmRzLAotICAgICAgICAgICAgICAgICAgICAgICAi
SW5jcmVhc2UgdGhlIG1pbmltdW0gdGV4dHVyZSBsZXZlbC1vZi1kZXRhaWwgYnkgMSB3aGVuIHNh
bXBsaW5nLiIsCi0gICAgICAgICAgICAgICAgICAgICAgICZtZW1iZXJzfSwKLSAgICAgICAgYW5n
bGU6OkZlYXR1cmV7ImZvcmNlX3RleHR1cmVfbG9kX29mZnNldF8yIiwgYW5nbGU6OkZlYXR1cmVD
YXRlZ29yeTo6VnVsa2FuV29ya2Fyb3VuZHMsCi0gICAgICAgICAgICAgICAgICAgICAgICJJbmNy
ZWFzZSB0aGUgbWluaW11bSB0ZXh0dXJlIGxldmVsLW9mLWRldGFpbCBieSAyIHdoZW4gc2FtcGxp
bmcuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgJm1lbWJlcnN9LAotICAgICAgICBhbmdsZTo6
RmVhdHVyZXsiZm9yY2VfdGV4dHVyZV9sb2Rfb2Zmc2V0XzMiLCBhbmdsZTo6RmVhdHVyZUNhdGVn
b3J5OjpWdWxrYW5Xb3JrYXJvdW5kcywKLSAgICAgICAgICAgICAgICAgICAgICAgIkluY3JlYXNl
IHRoZSBtaW5pbXVtIHRleHR1cmUgbGV2ZWwtb2YtZGV0YWlsIGJ5IDMgd2hlbiBzYW1wbGluZy4i
LAotICAgICAgICAgICAgICAgICAgICAgICAmbWVtYmVyc30sCi0gICAgICAgIGFuZ2xlOjpGZWF0
dXJleyJmb3JjZV90ZXh0dXJlX2xvZF9vZmZzZXRfNCIsIGFuZ2xlOjpGZWF0dXJlQ2F0ZWdvcnk6
OlZ1bGthbldvcmthcm91bmRzLAotICAgICAgICAgICAgICAgICAgICAgICAiSW5jcmVhc2UgdGhl
IG1pbmltdW0gdGV4dHVyZSBsZXZlbC1vZi1kZXRhaWwgYnkgNCB3aGVuIHNhbXBsaW5nLiIsCi0g
ICAgICAgICAgICAgICAgICAgICAgICZtZW1iZXJzfSwKLSAgICB9OwotCi0gICAgLy8gVHJhbnNs
YXRlIG5vbi1uZWFyZXN0IGZpbHRlcmluZyBtb2RlcyB0byBuZWFyZXN0IGZvciBhbGwgc2FtcGxl
cnMgZm9yIHBlcmZvcm1hbmNlCi0gICAgLy8gY29tcGFyaXNvbnMuIEFOR0xFIGlzIG5vbi1jb25m
b3JtYW50IGlmIHRoaXMgZmVhdHVyZSBpcyBlbmFibGVkLgotICAgIEZlYXR1cmUgZm9yY2VOZWFy
ZXN0RmlsdGVyaW5nID0geyJmb3JjZV9uZWFyZXN0X2ZpbHRlcmluZyIsIEZlYXR1cmVDYXRlZ29y
eTo6VnVsa2FuV29ya2Fyb3VuZHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIkZvcmNlIG5lYXJlc3QgZmlsdGVyaW5nIHdoZW4gc2FtcGxpbmcuIiwgJm1lbWJlcnN9Owot
Ci0gICAgLy8gVHJhbnNsYXRlICBub24tbmVhcmVzdCBtaXAgZmlsdGVyaW5nIG1vZGVzIHRvIG5l
YXJlc3QgbWlwIGZvciBhbGwgc2FtcGxlcnMgZm9yIHBlcmZvcm1hbmNlCi0gICAgLy8gY29tcGFy
aXNvbnMuIEFOR0xFIGlzIG5vbi1jb25mb3JtYW50IGlmIHRoaXMgZmVhdHVyZSBpcyBlbmFibGVk
LgotICAgIEZlYXR1cmUgZm9yY2VOZWFyZXN0TWlwRmlsdGVyaW5nID0geyJmb3JjZU5lYXJlc3RN
aXBGaWx0ZXJpbmciLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZl
YXR1cmVDYXRlZ29yeTo6VnVsa2FuV29ya2Fyb3VuZHMsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIkZvcmNlIG5lYXJlc3QgbWlwIGZpbHRlcmluZyB3aGVuIHNhbXBs
aW5nLiIsICZtZW1iZXJzfTsKLQotICAgIC8vIENvbXByZXNzIGZsb2F0MzIgdmVydGljZXMgaW4g
c3RhdGljIGJ1ZmZlcnMgdG8gZmxvYXQxNiBhdCBkcmF3IHRpbWUuIEFOR0xFIGlzIG5vbi1jb25m
b3JtYW50Ci0gICAgLy8gaWYgdGhpcyBmZWF0dXJlIGlzIGVuYWJsZWQuCi0gICAgYW5nbGU6OkZl
YXR1cmUgY29tcHJlc3NWZXJ0ZXhEYXRhID0geyJjb21wcmVzc192ZXJ0ZXhfZGF0YSIsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZ2xlOjpGZWF0dXJlQ2F0ZWdv
cnk6OlZ1bGthbldvcmthcm91bmRzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiQ29tcHJlc3MgdmVydGV4IGRhdGEgdG8gc21hbGxlciBkYXRhIHR5cGVzIHdoZW4g
IgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicG9zc2libGUuIFVz
aW5nIHRoaXMgZmVhdHVyZSBtYWtlcyBBTkdMRSBub24tY29uZm9ybWFudC4iLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbWVtYmVyc307Ci0KLSAgICAvLyBRdWFs
Y29tbSBtaXNzeW5jaHJvbml6ZXMgdmtDbWRDbGVhckF0dGFjaG1lbnRzIGluIHRoZSBtaWRkbGUg
b2YgcmVuZGVyIHBhc3MuCi0gICAgLy8gaHR0cHM6Ly9pc3N1ZXRyYWNrZXIuZ29vZ2xlLmNvbS8x
NjY4MDkwOTcKLSAgICBGZWF0dXJlIHByZWZlckRyYXdDbGVhck92ZXJWa0NtZENsZWFyQXR0YWNo
bWVudHMgPSB7Ci0gICAgICAgICJwcmVmZXJEcmF3Q2xlYXJPdmVyVmtDbWRDbGVhckF0dGFjaG1l
bnRzIiwgRmVhdHVyZUNhdGVnb3J5OjpWdWxrYW5Xb3JrYXJvdW5kcywKLSAgICAgICAgIk9uIHNv
bWUgaGFyZHdhcmUsIGNsZWFyIHVzaW5nIGEgZHJhdyBjYWxsIGluc3RlYWQgb2YgdmtDbWRDbGVh
ckF0dGFjaG1lbnRzIGluIHRoZSBtaWRkbGUgIgotICAgICAgICAib2YgcmVuZGVyIHBhc3MgZHVl
IHRvIGJ1Z3MiLAotICAgICAgICAmbWVtYmVycywgImh0dHBzOi8vaXNzdWV0cmFja2VyLmdvb2ds
ZS5jb20vMTY2ODA5MDk3In07Ci0KLSAgICAvLyBXaGV0aGVyIHByZXJvdGF0aW9uIGlzIGJlaW5n
IGVtdWxhdGVkIGZvciB0ZXN0aW5nLiAgOTAgZGVncmVlIHJvdGF0aW9uLgotICAgIEZlYXR1cmUg
ZW11bGF0ZWRQcmVyb3RhdGlvbjkwID0geyJlbXVsYXRlZFByZXJvdGF0aW9uOTAiLCBGZWF0dXJl
Q2F0ZWdvcnk6OlZ1bGthbkZlYXR1cmVzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJFbXVsYXRlIDkwLWRlZ3JlZSBwcmVyb3RhdGlvbi4iLCAmbWVtYmVycywKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaHR0cDovL2FuZ2xlYnVnLmNvbS80OTAx
In07Ci0KLSAgICAvLyBXaGV0aGVyIHByZXJvdGF0aW9uIGlzIGJlaW5nIGVtdWxhdGVkIGZvciB0
ZXN0aW5nLiAgMTgwIGRlZ3JlZSByb3RhdGlvbi4KLSAgICBGZWF0dXJlIGVtdWxhdGVkUHJlcm90
YXRpb24xODAgPSB7ImVtdWxhdGVkUHJlcm90YXRpb24xODAiLCBGZWF0dXJlQ2F0ZWdvcnk6OlZ1
bGthbkZlYXR1cmVzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRW11
bGF0ZSAxODAtZGVncmVlIHByZXJvdGF0aW9uLiIsICZtZW1iZXJzLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiaHR0cDovL2FuZ2xlYnVnLmNvbS80OTAxIn07Ci0KLSAg
ICAvLyBXaGV0aGVyIHByZXJvdGF0aW9uIGlzIGJlaW5nIGVtdWxhdGVkIGZvciB0ZXN0aW5nLiAg
MjcwIGRlZ3JlZSByb3RhdGlvbi4KLSAgICBGZWF0dXJlIGVtdWxhdGVkUHJlcm90YXRpb24yNzAg
PSB7ImVtdWxhdGVkUHJlcm90YXRpb24yNzAiLCBGZWF0dXJlQ2F0ZWdvcnk6OlZ1bGthbkZlYXR1
cmVzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRW11bGF0ZSAyNzAt
ZGVncmVlIHByZXJvdGF0aW9uLiIsICZtZW1iZXJzLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiaHR0cDovL2FuZ2xlYnVnLmNvbS80OTAxIn07Ci0KLSAgICAvLyBXaGV0
aGVyIFNQSVItViBzaG91bGQgYmUgZ2VuZXJhdGVkIHRocm91Z2ggZ2xzbGFuZy4gIFRyYW5zaXRv
cnkgZmVhdHVyZSB3aGlsZSBjb25maWRlbmNlIGlzCi0gICAgLy8gYnVpbHQgb24gdGhlIFNQSVIt
ViBnZW5lcmF0aW9uIGNvZGUuCi0gICAgRmVhdHVyZSBnZW5lcmF0ZVNQSVJWVGhyb3VnaEdsc2xh
bmcgPSB7Ci0gICAgICAgICJnZW5lcmF0ZVNQSVJWVGhyb3VnaEdsc2xhbmciLCBGZWF0dXJlQ2F0
ZWdvcnk6OlZ1bGthbkZlYXR1cmVzLAotICAgICAgICAiVHJhbnNsYXRlIFNQSVItViB0aHJvdWdo
IGdsc2xhbmcuIiwgJm1lbWJlcnMsICJodHRwOi8vYW5nbGVidWcuY29tLzQ4ODkifTsKLQotICAg
IC8vIFdoZXRoZXIgd2Ugc2hvdWxkIHVzZSBkcml2ZXIgdW5pZm9ybXMgb3ZlciBzcGVjaWFsaXph
dGlvbiBjb25zdGFudHMgZm9yIHNvbWUgc2hhZGVyCi0gICAgLy8gbW9kaWZpY2F0aW9ucyBsaWtl
IHlmbGlwIGFuZCByb3RhdGlvbi4KLSAgICBGZWF0dXJlIGZvcmNlRHJpdmVyVW5pZm9ybU92ZXJT
cGVjQ29uc3QgPSB7Ci0gICAgICAgICJmb3JjZURyaXZlclVuaWZvcm1PdmVyU3BlY0NvbnN0Iiwg
RmVhdHVyZUNhdGVnb3J5OjpWdWxrYW5Xb3JrYXJvdW5kcywKLSAgICAgICAgIkZvcmNlcyB1c2lu
ZyBkcml2ZXIgdW5pZm9ybXMgaW5zdGVhZCBvZiBzcGVjaWFsaXphdGlvbiBjb25zdGFudHMuIiwg
Jm1lbWJlcnMsCi0gICAgICAgICJodHRwOi8vaXNzdWV0cmFja2VyLmdvb2dsZS5jb20vMTczNjM2
NzgzIn07Ci0KLSAgICAvLyBXaGV0aGVyIG5vbi1jb25mb3JtYW50IGNvbmZpZ3VyYXRpb25zIGFu
ZCBleHRlbnNpb25zIHNob3VsZCBiZSBleHBvc2VkLiAgV2hlbiBhbiBleHRlbnNpb24gaXMKLSAg
ICAvLyBpbiBkZXZlbG9wbWVudCwgb3IgYSBHTEVTIHZlcnNpb24gaXMgbm90IHN1cHBvcnRlZCBv
biBhIGRldmljZSwgd2UgbWF5IHN0aWxsIHdhbnQgdG8gZXhwb3NlCi0gICAgLy8gdGhlbSBmb3Ig
cGFydGlhbCB0ZXN0aW5nLiAgVGhpcyBmZWF0dXJlIGlzIGVuYWJsZWQgYnkgb3VyIHRlc3QgaGFy
bmVzcy4KLSAgICBGZWF0dXJlIGV4cG9zZU5vbkNvbmZvcm1hbnRFeHRlbnNpb25zQW5kVmVyc2lv
bnMgPSB7Ci0gICAgICAgICJleHBvc2VOb25Db25mb3JtYW50RXh0ZW5zaW9uc0FuZFZlcnNpb25z
IiwgRmVhdHVyZUNhdGVnb3J5OjpWdWxrYW5Xb3JrYXJvdW5kcywKLSAgICAgICAgIkV4cG9zZSBH
TEVTIHZlcnNpb25zIGFuZCBleHRlbnNpb25zIHRoYXQgYXJlIG5vdCBjb25mb3JtYW50LiIsICZt
ZW1iZXJzLAotICAgICAgICAiaHR0cDovL2FuZ2xlYnVnLmNvbS81Mzc1In07Ci0KLSAgICAvLyBp
bWFnZUF0b21pY0V4Y2hhbmdlIGlzIGV4cGVjdGVkIHRvIHdvcmsgZm9yIHIzMmYgZm9ybWF0cywg
YnV0IHN1cHBvcnQgZm9yIGF0b21pYyBvcGVyYXRpb25zCi0gICAgLy8gZm9yIFZLX0ZPUk1BVF9S
MzJfU0ZMT0FUIGlzIHJhcmUuICBUaGlzIHN1cHBvcnQgaXMgZW11bGF0ZWQgYnkgdXNpbmcgYW4g
cjMydWkgZm9ybWF0IGZvciBzdWNoCi0gICAgLy8gaW1hZ2VzIGluc3RlYWQuCi0gICAgRmVhdHVy
ZSBlbXVsYXRlUjMyZkltYWdlQXRvbWljRXhjaGFuZ2UgPSB7Ci0gICAgICAgICJlbXVsYXRlUjMy
ZkltYWdlQXRvbWljRXhjaGFuZ2UiLCBGZWF0dXJlQ2F0ZWdvcnk6OlZ1bGthbldvcmthcm91bmRz
LAotICAgICAgICAiRW11bGF0ZSByMzJmIGltYWdlcyB3aXRoIHIzMnVpIHRvIHN1cHBvcnQgaW1h
Z2VBdG9taWNFeGNoYW5nZS4iLCAmbWVtYmVycywKLSAgICAgICAgImh0dHA6Ly9hbmdsZWJ1Zy5j
b20vNTUzNSJ9OwotCi0gICAgRmVhdHVyZSBzdXBwb3J0c05lZ2F0aXZlVmlld3BvcnQgPSB7Ci0g
ICAgICAgICJzdXBwb3J0c05lZ2F0aXZlVmlld3BvcnQiLCBGZWF0dXJlQ2F0ZWdvcnk6OlZ1bGth
bkZlYXR1cmVzLAotICAgICAgICAiVGhlIGRyaXZlciBzdXBwb3J0cyBpbnZlcnRpbmcgdGhlIHZp
ZXdwb3J0IHdpdGggYSBuZWdhdGl2ZSBoZWlnaHQuIiwgJm1lbWJlcnN9OwotCi0gICAgLy8gV2hl
dGhlciB3ZSBzaG91bGQgZm9yY2UgYW55IGhpZ2hwIHByZWNpc2lvbiBpbiB0aGUgZnJhZ21lbnQg
c2hhZGVyIHRvIG1lZGl1bXAuCi0gICAgLy8gQU5HTEUgaXMgbm9uLWNvbmZvcm1hbnQgaWYgdGhp
cyBmZWF0dXJlIGlzIGVuYWJsZWQuCi0gICAgRmVhdHVyZSBmb3JjZUZyYWdtZW50U2hhZGVyUHJl
Y2lzaW9uSGlnaHBUb01lZGl1bXAgPSB7Ci0gICAgICAgICJmb3JjZUZyYWdtZW50U2hhZGVyUHJl
Y2lzaW9uSGlnaHBUb01lZGl1bXAiLCBGZWF0dXJlQ2F0ZWdvcnk6OlZ1bGthbldvcmthcm91bmRz
LAotICAgICAgICAiRm9yY2VzIGhpZ2hwIHByZWNpc2lvbiBpbiBmcmFnbWVudCBzaGFkZXIgdG8g
bWVkaXVtcC4iLCAmbWVtYmVycywKLSAgICAgICAgImh0dHBzOi8vaXNzdWV0cmFja2VyLmdvb2ds
ZS5jb20vMTg0ODUwMDAyIn07Ci0KLSAgICAvLyBXaGV0aGVyIHdlIHNob3VsZCBzdWJtaXQgYXQg
ZWFjaCBGQk8gYm91bmRhcnkuCi0gICAgRmVhdHVyZSBwcmVmZXJTdWJtaXRBdEZCT0JvdW5kYXJ5
ID0gewotICAgICAgICAicHJlZmVyU3VibWl0QXRGQk9Cb3VuZGFyeSIsIEZlYXR1cmVDYXRlZ29y
eTo6VnVsa2FuV29ya2Fyb3VuZHMsCi0gICAgICAgICJTdWJtaXQgY29tbWFuZHMgdG8gZHJpdmVy
IGF0IGVhY2ggRkJPIGJvdW5kYXJ5IGZvciBwZXJmb3JtYW5jZSBpbXByb3ZlbWVudHMuIiwgJm1l
bWJlcnMsCi0gICAgICAgICJodHRwczovL2lzc3VldHJhY2tlci5nb29nbGUuY29tLzE4NzQyNTQ0
NCJ9OwotCi0gICAgLy8gV29ya2Fyb3VuZCBmb3IgZ2FwIGluIFZ1bGthbiBzcGVjIHJlbGF0ZWQg
dG8gcXVlcnlpbmcgZGVzY3JpcHRvciBjb3VudCBmb3IgaW1tdXRhYmxlIHNhbXBsZXJzCi0gICAg
Ly8gdGllZCB0byBhbiBleHRlcm5hbCBmb3JtYXQuCi0gICAgRmVhdHVyZSB1c2VNdWx0aXBsZURl
c2NyaXB0b3JzRm9yRXh0ZXJuYWxGb3JtYXRzID0gewotICAgICAgICAidXNlTXVsdGlwbGVEZXNj
cmlwdG9yc0ZvckV4dGVybmFsRm9ybWF0cyIsIEZlYXR1cmVDYXRlZ29yeTo6VnVsa2FuV29ya2Fy
b3VuZHMsCi0gICAgICAgICJSZXR1cm4gYSBkZWZhdWx0IGRlc2NyaXB0b3IgY291bnQgZm9yIGV4
dGVybmFsIGZvcm1hdHMuIiwgJm1lbWJlcnMsCi0gICAgICAgICJodHRwOi8vYW5nbGVidWcuY29t
LzYxNDEifTsKLQotICAgIC8vIFdoZXRoZXIgdGhlIFZrRGV2aWNlIGNhbiBzdXBwb3J0IFByb3Rl
Y3RlZCBNZW1vcnkuCi0gICAgRmVhdHVyZSBzdXBwb3J0c1Byb3RlY3RlZE1lbW9yeSA9IHsic3Vw
cG9ydHNQcm90ZWN0ZWRNZW1vcnkiLCBGZWF0dXJlQ2F0ZWdvcnk6OlZ1bGthbkZlYXR1cmVzLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlZrRGV2aWNlIHN1cHBvcnRz
IHByb3RlY3RlZCBtZW1vcnkiLCAmbWVtYmVycywKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJodHRwOi8vYW5nbGVidWcuY29tLzM5NjUifTsKLQotICAgIC8vIFdoZXRo
ZXIgdGhlIFZrRGV2aWNlIHN1cHBvcnRzIHRoZSBWS19FWFRfaG9zdF9xdWVyeV9yZXNldCBleHRl
bnNpb24KLSAgICAvLyBodHRwOi8vYW5nbGVidWcuY29tLzY2OTIKLSAgICBGZWF0dXJlIHN1cHBv
cnRzSG9zdFF1ZXJ5UmVzZXQgPSB7InN1cHBvcnRzSG9zdFF1ZXJ5UmVzZXQiLCBGZWF0dXJlQ2F0
ZWdvcnk6OlZ1bGthbkZlYXR1cmVzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiVmtEZXZpY2Ugc3VwcG9ydHMgVktfRVhUX2hvc3RfcXVlcnlfcmVzZXQgZXh0ZW5zaW9u
IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm1lbWJlcnMsICJodHRw
Oi8vYW5nbGVidWcuY29tLzY2OTIifTsKLQotICAgIC8vIFdoZXRoZXIgdGhlIFZrSW5zdGFuY2Ug
c3VwcG9ydHMgdGhlIFZLX0tIUl9nZXRfc3VyZmFjZV9jYXBhYmlsaXRpZXMyIGV4dGVuc2lvbi4K
LSAgICBGZWF0dXJlIHN1cHBvcnRzU3VyZmFjZUNhcGFiaWxpdGllczJFeHRlbnNpb24gPSB7Ci0g
ICAgICAgICJzdXBwb3J0c1N1cmZhY2VDYXBhYmlsaXRpZXMyRXh0ZW5zaW9uIiwgRmVhdHVyZUNh
dGVnb3J5OjpWdWxrYW5GZWF0dXJlcywKLSAgICAgICAgIlZrSW5zdGFuY2Ugc3VwcG9ydHMgdGhl
IFZLX0tIUl9nZXRfc3VyZmFjZV9jYXBhYmlsaXRpZXMyIGV4dGVuc2lvbiIsICZtZW1iZXJzfTsK
LQotICAgIC8vIFdoZXRoZXIgdGhlIFZrSW5zdGFuY2Ugc3VwcG9ydHMgdGhlIFZLX0tIUl9zdXJm
YWNlX3Byb3RlY3RlZF9jYXBhYmlsaXRpZXMgZXh0ZW5zaW9uLgotICAgIEZlYXR1cmUgc3VwcG9y
dHNTdXJmYWNlUHJvdGVjdGVkQ2FwYWJpbGl0aWVzRXh0ZW5zaW9uID0gewotICAgICAgICAic3Vw
cG9ydHNTdXJmYWNlUHJvdGVjdGVkQ2FwYWJpbGl0aWVzRXh0ZW5zaW9uIiwgRmVhdHVyZUNhdGVn
b3J5OjpWdWxrYW5GZWF0dXJlcywKLSAgICAgICAgIlZrSW5zdGFuY2Ugc3VwcG9ydHMgdGhlIFZL
X0tIUl9zdXJmYWNlX3Byb3RlY3RlZF9jYXBhYmlsaXRpZXMgZXh0ZW5zaW9uIiwgJm1lbWJlcnN9
OwotCi0gICAgLy8gV2hldGhlciB0aGUgVmtJbnN0YW5jZSBzdXBwb3J0cyB0aGUgVktfR09PR0xF
X3N1cmZhY2VsZXNzX3F1ZXJ5IGV4dGVuc2lvbi4KLSAgICBGZWF0dXJlIHN1cHBvcnRzU3VyZmFj
ZWxlc3NRdWVyeUV4dGVuc2lvbiA9IHsKLSAgICAgICAgInN1cHBvcnRzU3VyZmFjZWxlc3NRdWVy
eUV4dGVuc2lvbiIsIEZlYXR1cmVDYXRlZ29yeTo6VnVsa2FuRmVhdHVyZXMsCi0gICAgICAgICJW
a0luc3RhbmNlIHN1cHBvcnRzIHRoZSBWS19HT09HTEVfc3VyZmFjZWxlc3NfcXVlcnkgZXh0ZW5z
aW9uIiwgJm1lbWJlcnN9OwotCi0gICAgLy8gV2hldGhlciB0aGUgVmtTdXJmYWNlIHN1cHBvcnRz
IHByb3RlY3RlZCBzd2FwY2hhaW5zIGZyb20KLSAgICAvLyBzdXBwb3J0c1N1cmZhY2VQcm90ZWN0
ZWRDYXBhYmlsaXRpZXNFeHRlbnNpb24uCi0gICAgRmVhdHVyZSBzdXBwb3J0c1N1cmZhY2VQcm90
ZWN0ZWRTd2FwY2hhaW5zID0gewotICAgICAgICAic3VwcG9ydHNTdXJmYWNlUHJvdGVjdGVkU3dh
cGNoYWlucyIsIEZlYXR1cmVDYXRlZ29yeTo6VnVsa2FuRmVhdHVyZXMsCi0gICAgICAgICJWa1N1
cmZhY2Ugc3VwcG9ydHNQcm90ZWN0ZWQgZm9yIHByb3RlY3RlZCBzd2FwY2hhaW5zIiwgJm1lbWJl
cnN9OwotCi0gICAgLy8gV2hldGhlciBzdXJmYWNlIGZvcm1hdCBHTF9SR0I4IHNob3VsZCBiZSBv
dmVycmlkZGVuIHRvIEdMX1JHQkE4LgotICAgIEZlYXR1cmUgb3ZlcnJpZGVTdXJmYWNlRm9ybWF0
UkdCOHRvUkdCQTggPSB7Ci0gICAgICAgICJvdmVycmlkZVN1cmZhY2VGb3JtYXRSR0I4dG9SR0JB
OCIsIEZlYXR1cmVDYXRlZ29yeTo6VnVsa2FuV29ya2Fyb3VuZHMsCi0gICAgICAgICJPdmVycmlk
ZSBzdXJmYWNlIGZvcm1hdCBHTF9SR0I4IHRvIEdMX1JHQkE4IiwgJm1lbWJlcnMsICJodHRwOi8v
YW5nbGVidWcuY29tLzY2NTEifTsKLQotICAgIC8vIFdoZXRoZXIgdGhlIFZrU3VyZmFjZSBzdXBw
b3J0cyBWS19LSFJfc2hhcmVkX3ByZXNlbnRhYmxlX2ltYWdlcy4KLSAgICBGZWF0dXJlIHN1cHBv
cnRzU2hhcmVkUHJlc2VudGFibGVJbWFnZUV4dGVuc2lvbiA9IHsKLSAgICAgICAgInN1cHBvcnRz
U2hhcmVkUHJlc2VudGFibGVJbWFnZUV4dGVuc2lvbiIsIEZlYXR1cmVDYXRlZ29yeTo6VnVsa2Fu
RmVhdHVyZXMsCi0gICAgICAgICJWa1N1cmZhY2Ugc3VwcG9ydHMgdGhlIFZLX0tIUl9zaGFyZWRf
cHJlc2VudGFibGVfaW1hZ2VzIGV4dGVuc2lvbiIsICZtZW1iZXJzfTsKLQotICAgIC8vIEZlYXR1
cmUgdG8gY29udHJvbCB3aGV0aGVyIHRoZSBWdWxrYW4gYmFja2VuZCBjYW4gc3VwcG9ydAotICAg
IC8vIEdMX0VYVF9zaGFkZXJfZnJhbWVidWZmZXJfZmV0Y2gKLSAgICBGZWF0dXJlIHN1cHBvcnRz
U2hhZGVyRnJhbWVidWZmZXJGZXRjaCA9IHsKLSAgICAgICAgInN1cHBvcnRzU2hhZGVyRnJhbWVi
dWZmZXJGZXRjaCIsIEZlYXR1cmVDYXRlZ29yeTo6VnVsa2FuRmVhdHVyZXMsCi0gICAgICAgICJX
aGV0aGVyIHRoZSBWdWxrYW4gYmFja2VuZCBzdXBwb3J0cyBjb2hlcmVudCBmcmFtZWJ1ZmZlciBm
ZXRjaCIsICZtZW1iZXJzfTsKLQotICAgIC8vIEZlYXR1cmUgdG8gY29udHJvbCB3aGV0aGVyIHRo
ZSBWdWxrYW4gYmFja2VuZCBjYW4gc3VwcG9ydAotICAgIC8vIEdMX0VYVF9zaGFkZXJfZnJhbWVi
dWZmZXJfZmV0Y2hfbm9uX2NvaGVyZW50Ci0gICAgRmVhdHVyZSBzdXBwb3J0c1NoYWRlckZyYW1l
YnVmZmVyRmV0Y2hOb25Db2hlcmVudCA9IHsKLSAgICAgICAgInN1cHBvcnRzU2hhZGVyRnJhbWVi
dWZmZXJGZXRjaE5vbkNvaGVyZW50IiwgRmVhdHVyZUNhdGVnb3J5OjpWdWxrYW5GZWF0dXJlcywK
LSAgICAgICAgIldoZXRoZXIgdGhlIFZ1bGthbiBiYWNrZW5kIHN1cHBvcnRzIG5vbi1jb2hlcmVu
dCBmcmFtZWJ1ZmZlciBmZXRjaCIsICZtZW1iZXJzfTsKLQotICAgIC8vIFdoZXRoZXIgdGhlIFN1
cmZhY2Ugc3VwcG9ydHMgRUdMX0tIUl9sb2NrX3N1cmZhY2UzLgotICAgIEZlYXR1cmUgc3VwcG9y
dHNMb2NrU3VyZmFjZUV4dGVuc2lvbiA9IHsKLSAgICAgICAgInN1cHBvcnRzTG9ja1N1cmZhY2VF
eHRlbnNpb24iLCBGZWF0dXJlQ2F0ZWdvcnk6OlZ1bGthbkZlYXR1cmVzLAotICAgICAgICAiU3Vy
ZmFjZSBzdXBwb3J0cyB0aGUgRUdMX0tIUl9sb2NrX3N1cmZhY2UzIGV4dGVuc2lvbiIsICZtZW1i
ZXJzfTsKLQotICAgIC8vIFdoZW4gbXV0YWJsZV9yZW5kZXJfYnVmZmVyIGdvZXMgaW50byBTSU5H
TEVfQlVGRkVSIG1vZGUsIG5lZWQgdG8gY2FsbCBzd2FwYnVmZmVycyBhdAotICAgIC8vIGZsdXNo
IGFuZCBmaW5pc2ggc28gdGhhdCB0aGUgaW1hZ2UgaXMgdXBkYXRlZCBhbmQgcHJlc2VudGVkIHRv
IHRoZSBkaXNwbGF5LgotICAgIEZlYXR1cmUgc3dhcGJ1ZmZlcnNPbkZsdXNoT3JGaW5pc2hXaXRo
U2luZ2xlQnVmZmVyID0gewotICAgICAgICAic3dhcGJ1ZmZlcnNPbkZsdXNoT3JGaW5pc2hXaXRo
U2luZ2xlQnVmZmVyIiwgRmVhdHVyZUNhdGVnb3J5OjpWdWxrYW5GZWF0dXJlcywKLSAgICAgICAg
IkJ5cGFzcyBkZWZlcnJlZEZsdXNoIHdpdGggY2FsbGluZyBzd2FwYnVmZmVycyBvbiBmbHVzaCBv
ciBmaW5pc2ggd2hlbiBpbiBTaGFyZWQgUHJlc2VudCAiCi0gICAgICAgICJtb2RlIiwKLSAgICAg
ICAgJm1lbWJlcnMsICJodHRwOi8vYW5nbGVidWcuY29tLzY4NzgifTsKLQotICAgIC8vIFdoZXRo
ZXIgZGl0aGVyaW5nIHNob3VsZCBiZSBlbXVsYXRlZC4KLSAgICBGZWF0dXJlIGVtdWxhdGVEaXRo
ZXJpbmcgPSB7ImVtdWxhdGVEaXRoZXJpbmciLCBGZWF0dXJlQ2F0ZWdvcnk6OlZ1bGthbkZlYXR1
cmVzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRW11bGF0ZSBPcGVuR0wgZGl0
aGVyaW5nIiwgJm1lbWJlcnMsICJodHRwOi8vYW5nbGVidWcuY29tLzY3NTUifTsKLQotICAgIC8v
IEFuZHJvaWQgYnVnIHdvcmthcm91bmQgd2hpY2ggYXNzdW1lcyBWa1ByZXNlbnRSZWdpb25zS0hS
IHRvIGhhdmUgYSBib3R0b20tbGVmdCBvcmlnaW4KLSAgICAvLyBpbnN0ZWFkIG9mIHRvcC1sZWZ0
IGFzIHNwZWNpZmllZCBieSBWS19LSFJfaW5jcmVtZW50YWxfcHJlc2VudAotICAgIEZlYXR1cmUg
Ym90dG9tTGVmdE9yaWdpblByZXNlbnRSZWdpb25SZWN0YW5nbGVzID0gewotICAgICAgICAiYm90
dG9tTGVmdE9yaWdpblByZXNlbnRSZWdpb25SZWN0YW5nbGVzIiwgRmVhdHVyZUNhdGVnb3J5OjpW
dWxrYW5Xb3JrYXJvdW5kcywKLSAgICAgICAgIk9uIHNvbWUgcGxhdGZvcm1zIHByZXNlbnQgcmVn
aW9uIHJlY3RhbmdsZXMgYXJlIGV4cGVjdGVkIHRvIGhhdmUgYSBib3R0b20tbGVmdCBvcmlnaW4s
ICIKLSAgICAgICAgImluc3RlYWQgb2YgdG9wLWxlZnQgb3JpZ2luIGFzIGZyb20gc3BlYyIsCi0g
ICAgICAgICZtZW1iZXJzfTsKLQotICAgIC8vIFdoZXRoZXIgd2UgZm9yY2Ugc3VibWl0IHVwZGF0
ZXMgdG8gaW1tdXRhYmxlIHRleHR1cmVzLgotICAgIEZlYXR1cmUgZm9yY2VTdWJtaXRJbW11dGFi
bGVUZXh0dXJlVXBkYXRlcyA9IHsKLSAgICAgICAgImZvcmNlU3VibWl0SW1tdXRhYmxlVGV4dHVy
ZVVwZGF0ZXMiLCBGZWF0dXJlQ2F0ZWdvcnk6OkFwcFdvcmthcm91bmRzLAotICAgICAgICAiRm9y
Y2Ugc3VibWl0IHVwZGF0ZXMgdG8gaW1tdXRhYmxlIHRleHR1cmVzIiwgJm1lbWJlcnMsICJodHRw
Oi8vYW5nbGVidWcuY29tLzY5MjkifTsKLQotICAgIC8vIFdoZXRoZXIgd2UgcmV0YWluIFNQSVIt
ViBkZWJ1ZyBpbmZvcm1hdGlvbiB0byBhaWQgaW4gYW5hbHl6aW5nIHNoYWRlciBjb2RlLgotICAg
IEZlYXR1cmUgcmV0YWluU3BpcnZEZWJ1Z0luZm8gPSB7InJldGFpblNwaXJ2RGVidWdJbmZvIiwg
RmVhdHVyZUNhdGVnb3J5OjpWdWxrYW5GZWF0dXJlcywKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJSZXRhaW4gZGVidWcgaW5mbyBpbiBTUElSLVYgYmxvYi4iLCAmbWVtYmVy
cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJodHRwOi8vYW5nbGVidWcu
Y29tLzU5MDEifTsKLQotICAgIC8vIFdoZXRoZXIgd2UgY3JlYXRlIGEgVnVsa2FuIHBpcGVsaW5l
IHdpdGggImRlZmF1bHQiIHN0YXRlIGR1cmluZyBnbExpbmtQcm9ncmFtCi0gICAgRmVhdHVyZSBj
cmVhdGVQaXBlbGluZUR1cmluZ0xpbmsgPSB7ImNyZWF0ZVBpcGVsaW5lRHVyaW5nTGluayIsIEZl
YXR1cmVDYXRlZ29yeTo6VnVsa2FuRmVhdHVyZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIkNyZWF0ZSBwaXBlbGluZSB3aXRoIGRlZmF1bHQgc3RhdGUgZHVyaW5n
IGdsTGlua1Byb2dyYW0iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICZtZW1iZXJzLCAiaHR0cDovL2FuZ2xlYnVnLmNvbS83MDQ2In07Ci19OwotCi1pbmxpbmUgRmVh
dHVyZXNWazo6RmVhdHVyZXNWaygpICA9IGRlZmF1bHQ7Ci1pbmxpbmUgRmVhdHVyZXNWazo6fkZl
YXR1cmVzVmsoKSA9IGRlZmF1bHQ7Ci0KLX0gIC8vIG5hbWVzcGFjZSBhbmdsZQotCi0jZW5kaWYg
IC8vIEFOR0xFX1BMQVRGT1JNX0ZFQVRVUkVTVktfSF8KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGly
ZFBhcnR5L0FOR0xFL2luY2x1ZGUvcGxhdGZvcm0vRmVhdHVyZXNWa19hdXRvZ2VuLmggYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9BTkdMRS9pbmNsdWRlL3BsYXRmb3JtL0ZlYXR1cmVzVmtfYXV0b2dlbi5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmFkMjVmNWZmNDU0YzY5N2FlNTc5YzZlY2E2NjA1YjM3ZjNhYjRlMWYKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9pbmNsdWRlL3BsYXRmb3Jt
L0ZlYXR1cmVzVmtfYXV0b2dlbi5oCkBAIC0wLDAgKzEsNjEzIEBACisvLyBHRU5FUkFURUQgRklM
RSAtIERPIE5PVCBFRElULgorLy8gR2VuZXJhdGVkIGJ5IGdlbl9mZWF0dXJlcy5weSB1c2luZyBk
YXRhIGZyb20gdmtfZmVhdHVyZXMuanNvbi4KKy8vCisvLyBDb3B5cmlnaHQgMjAyMiBUaGUgQU5H
TEUgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVXNlIG9mIHRoaXMg
c291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBi
ZQorLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy8vCisvLyBGZWF0dXJlc1ZrX2F1dG9n
ZW4uaDogT3B0aW9uYWwgZmVhdHVyZXMgZm9yIHRoZSBWdWxrYW4gcmVuZGVyZXIuCisKKyNpZm5k
ZWYgQU5HTEVfUExBVEZPUk1fRkVBVFVSRVNWS19IXworI2RlZmluZSBBTkdMRV9QTEFURk9STV9G
RUFUVVJFU1ZLX0hfCisKKyNpbmNsdWRlICJwbGF0Zm9ybS9GZWF0dXJlLmgiCisKK25hbWVzcGFj
ZSBhbmdsZQoreworCitzdHJ1Y3QgRmVhdHVyZXNWayA6IEZlYXR1cmVTZXRCYXNlCit7CisgICAg
RmVhdHVyZXNWaygpOworICAgIH5GZWF0dXJlc1ZrKCk7CisKKyAgICBGZWF0dXJlSW5mbyBiYXNp
Y0dMTGluZVJhc3Rlcml6YXRpb24gPSB7CisgICAgICAgICJiYXNpY0dMTGluZVJhc3Rlcml6YXRp
b24iLAorICAgICAgICBGZWF0dXJlQ2F0ZWdvcnk6OlZ1bGthbkZlYXR1cmVzLAorICAgICAgICAi
RW5hYmxlIHRoZSB1c2Ugb2YgcGl4ZWwgc2hhZGVyIHBhdGNoaW5nIHRvIGltcGxlbWVudCBPcGVu
R0wgYmFzaWMgbGluZSAiCisgICAgICAgICJyYXN0ZXJpemF0aW9uIHJ1bGVzIiwKKyAgICAgICAg
Jm1lbWJlcnMsCisgICAgfTsKKworICAgIEZlYXR1cmVJbmZvIGJyZXNlbmhhbUxpbmVSYXN0ZXJp
emF0aW9uID0geworICAgICAgICAiYnJlc2VuaGFtTGluZVJhc3Rlcml6YXRpb24iLAorICAgICAg
ICBGZWF0dXJlQ2F0ZWdvcnk6OlZ1bGthbkZlYXR1cmVzLAorICAgICAgICAiRW5hYmxlIEJyZXNl
bmhhbSBsaW5lIHJhc3Rlcml6YXRpb24gdmlhIFZLX0VYVF9saW5lX3Jhc3Rlcml6YXRpb24gZXh0
ZW5zaW9uIiwKKyAgICAgICAgJm1lbWJlcnMsCisgICAgfTsKKworICAgIEZlYXR1cmVJbmZvIHBy
b3Zva2luZ1ZlcnRleCA9IHsKKyAgICAgICAgInByb3Zva2luZ1ZlcnRleCIsCisgICAgICAgIEZl
YXR1cmVDYXRlZ29yeTo6VnVsa2FuRmVhdHVyZXMsCisgICAgICAgICJFbmFibGUgcHJvdm9raW5n
IHZlcnRleCBtb2RlIHZpYSBWS19FWFRfcHJvdm9raW5nX3ZlcnRleCBleHRlbnNpb24iLAorICAg
ICAgICAmbWVtYmVycywKKyAgICB9OworCisgICAgRmVhdHVyZUluZm8gZm9yY2VGYWxsYmFja0Zv
cm1hdCA9IHsKKyAgICAgICAgImZvcmNlRmFsbGJhY2tGb3JtYXQiLAorICAgICAgICBGZWF0dXJl
Q2F0ZWdvcnk6OlZ1bGthbldvcmthcm91bmRzLAorICAgICAgICAiRm9yY2UgYSBmYWxsYmFjayBm
b3JtYXQgZm9yIGFuZ2xlX2VuZDJlbmRfdGVzdHMiLAorICAgICAgICAmbWVtYmVycywKKyAgICB9
OworCisgICAgRmVhdHVyZUluZm8gY2xhbXBQb2ludFNpemUgPSB7CisgICAgICAgICJjbGFtcFBv
aW50U2l6ZSIsIEZlYXR1cmVDYXRlZ29yeTo6VnVsa2FuV29ya2Fyb3VuZHMsCisgICAgICAgICJU
aGUgcG9pbnQgc2l6ZSByYW5nZSByZXBvcnRlZCBmcm9tIHRoZSBBUEkgaXMgaW5jb25zaXN0ZW50
IHdpdGggdGhlIGFjdHVhbCBiZWhhdmlvciIsCisgICAgICAgICZtZW1iZXJzLCAiaHR0cDovL2Fu
Z2xlYnVnLmNvbS8yOTcwIn07CisKKyAgICBGZWF0dXJlSW5mbyBkZXB0aENsYW1waW5nID0gewor
ICAgICAgICAiZGVwdGhDbGFtcGluZyIsIEZlYXR1cmVDYXRlZ29yeTo6VnVsa2FuV29ya2Fyb3Vu
ZHMsCisgICAgICAgICJUaGUgZGVwdGggdmFsdWUgaXMgbm90IGNsYW1wZWQgdG8gWzAsMV0gZm9y
IGZsb2F0aW5nIHBvaW50IGRlcHRoIGJ1ZmZlcnMuIiwgJm1lbWJlcnMsCisgICAgICAgICJodHRw
Oi8vYW5nbGVidWcuY29tLzM5NzAifTsKKworICAgIEZlYXR1cmVJbmZvIHN1cHBvcnRzUmVuZGVy
cGFzczIgPSB7CisgICAgICAgICJzdXBwb3J0c1JlbmRlcnBhc3MyIiwKKyAgICAgICAgRmVhdHVy
ZUNhdGVnb3J5OjpWdWxrYW5GZWF0dXJlcywKKyAgICAgICAgIlZrRGV2aWNlIHN1cHBvcnRzIHRo
ZSBWS19LSFJfY3JlYXRlX3JlbmRlcnBhc3MyIGV4dGVuc2lvbiIsCisgICAgICAgICZtZW1iZXJz
LAorICAgIH07CisKKyAgICBGZWF0dXJlSW5mbyBzdXBwb3J0c0luY3JlbWVudGFsUHJlc2VudCA9
IHsKKyAgICAgICAgInN1cHBvcnRzSW5jcmVtZW50YWxQcmVzZW50IiwKKyAgICAgICAgRmVhdHVy
ZUNhdGVnb3J5OjpWdWxrYW5GZWF0dXJlcywKKyAgICAgICAgIlZrRGV2aWNlIHN1cHBvcnRzIHRo
ZSBWS19LSFJfaW5jcmVtZW50YWxfcHJlc2VudCBleHRlbnNpb24iLAorICAgICAgICAmbWVtYmVy
cywKKyAgICB9OworCisgICAgRmVhdHVyZUluZm8gc3VwcG9ydHNBbmRyb2lkSGFyZHdhcmVCdWZm
ZXIgPSB7CisgICAgICAgICJzdXBwb3J0c0FuZHJvaWRIYXJkd2FyZUJ1ZmZlciIsCisgICAgICAg
IEZlYXR1cmVDYXRlZ29yeTo6VnVsa2FuRmVhdHVyZXMsCisgICAgICAgICJWa0RldmljZSBzdXBw
b3J0cyB0aGUgVktfQU5EUk9JRF9leHRlcm5hbF9tZW1vcnlfYW5kcm9pZF9oYXJkd2FyZV9idWZm
ZXIgZXh0ZW5zaW9uIiwKKyAgICAgICAgJm1lbWJlcnMsCisgICAgfTsKKworICAgIEZlYXR1cmVJ
bmZvIHN1cHBvcnRzR0dQRnJhbWVUb2tlbiA9IHsKKyAgICAgICAgInN1cHBvcnRzR0dQRnJhbWVU
b2tlbiIsCisgICAgICAgIEZlYXR1cmVDYXRlZ29yeTo6VnVsa2FuRmVhdHVyZXMsCisgICAgICAg
ICJWa0RldmljZSBzdXBwb3J0cyB0aGUgVktfR0dQX2ZyYW1lX3Rva2VuIGV4dGVuc2lvbiIsCisg
ICAgICAgICZtZW1iZXJzLAorICAgIH07CisKKyAgICBGZWF0dXJlSW5mbyBzdXBwb3J0c0V4dGVy
bmFsTWVtb3J5RmQgPSB7CisgICAgICAgICJzdXBwb3J0c0V4dGVybmFsTWVtb3J5RmQiLAorICAg
ICAgICBGZWF0dXJlQ2F0ZWdvcnk6OlZ1bGthbkZlYXR1cmVzLAorICAgICAgICAiVmtEZXZpY2Ug
c3VwcG9ydHMgdGhlIFZLX0tIUl9leHRlcm5hbF9tZW1vcnlfZmQgZXh0ZW5zaW9uIiwKKyAgICAg
ICAgJm1lbWJlcnMsCisgICAgfTsKKworICAgIEZlYXR1cmVJbmZvIHN1cHBvcnRzRXh0ZXJuYWxN
ZW1vcnlGdWNoc2lhID0geworICAgICAgICAic3VwcG9ydHNFeHRlcm5hbE1lbW9yeUZ1Y2hzaWEi
LAorICAgICAgICBGZWF0dXJlQ2F0ZWdvcnk6OlZ1bGthbkZlYXR1cmVzLAorICAgICAgICAiVmtE
ZXZpY2Ugc3VwcG9ydHMgdGhlIFZLX0ZVQ0hTSUFfZXh0ZXJuYWxfbWVtb3J5IGV4dGVuc2lvbiIs
CisgICAgICAgICZtZW1iZXJzLAorICAgIH07CisKKyAgICBGZWF0dXJlSW5mbyBzdXBwb3J0c0Zp
bHRlcmluZ1ByZWNpc2lvbiA9IHsKKyAgICAgICAgInN1cHBvcnRzRmlsdGVyaW5nUHJlY2lzaW9u
IiwKKyAgICAgICAgRmVhdHVyZUNhdGVnb3J5OjpWdWxrYW5GZWF0dXJlcywKKyAgICAgICAgIlZr
RGV2aWNlIHN1cHBvcnRzIHRoZSBWS19HT09HTEVfc2FtcGxlcl9maWx0ZXJpbmdfcHJlY2lzaW9u
IGV4dGVuc2lvbiIsCisgICAgICAgICZtZW1iZXJzLAorICAgIH07CisKKyAgICBGZWF0dXJlSW5m
byBzdXBwb3J0c0V4dGVybmFsRmVuY2VDYXBhYmlsaXRpZXMgPSB7CisgICAgICAgICJzdXBwb3J0
c0V4dGVybmFsRmVuY2VDYXBhYmlsaXRpZXMiLAorICAgICAgICBGZWF0dXJlQ2F0ZWdvcnk6OlZ1
bGthbkZlYXR1cmVzLAorICAgICAgICAiVmtJbnN0YW5jZSBzdXBwb3J0cyB0aGUgVktfS0hSX2V4
dGVybmFsX2ZlbmNlX2NhcGFiaWxpdGllcyBleHRlbnNpb24iLAorICAgICAgICAmbWVtYmVycywK
KyAgICB9OworCisgICAgRmVhdHVyZUluZm8gc3VwcG9ydHNFeHRlcm5hbFNlbWFwaG9yZUNhcGFi
aWxpdGllcyA9IHsKKyAgICAgICAgInN1cHBvcnRzRXh0ZXJuYWxTZW1hcGhvcmVDYXBhYmlsaXRp
ZXMiLAorICAgICAgICBGZWF0dXJlQ2F0ZWdvcnk6OlZ1bGthbkZlYXR1cmVzLAorICAgICAgICAi
VmtJbnN0YW5jZSBzdXBwb3J0cyB0aGUgVktfS0hSX2V4dGVybmFsX3NlbWFwaG9yZV9jYXBhYmls
aXRpZXMgZXh0ZW5zaW9uIiwKKyAgICAgICAgJm1lbWJlcnMsCisgICAgfTsKKworICAgIEZlYXR1
cmVJbmZvIHN1cHBvcnRzRXh0ZXJuYWxTZW1hcGhvcmVGZCA9IHsKKyAgICAgICAgInN1cHBvcnRz
RXh0ZXJuYWxTZW1hcGhvcmVGZCIsCisgICAgICAgIEZlYXR1cmVDYXRlZ29yeTo6VnVsa2FuRmVh
dHVyZXMsCisgICAgICAgICJWa0RldmljZSBzdXBwb3J0cyB0aGUgVktfS0hSX2V4dGVybmFsX3Nl
bWFwaG9yZV9mZCBleHRlbnNpb24iLAorICAgICAgICAmbWVtYmVycywKKyAgICB9OworCisgICAg
RmVhdHVyZUluZm8gc3VwcG9ydHNFeHRlcm5hbFNlbWFwaG9yZUZ1Y2hzaWEgPSB7CisgICAgICAg
ICJzdXBwb3J0c0V4dGVybmFsU2VtYXBob3JlRnVjaHNpYSIsCisgICAgICAgIEZlYXR1cmVDYXRl
Z29yeTo6VnVsa2FuRmVhdHVyZXMsCisgICAgICAgICJWa0RldmljZSBzdXBwb3J0cyB0aGUgVktf
RlVDSFNJQV9leHRlcm5hbF9zZW1hcGhvcmUgZXh0ZW5zaW9uIiwKKyAgICAgICAgJm1lbWJlcnMs
CisgICAgfTsKKworICAgIEZlYXR1cmVJbmZvIHN1cHBvcnRzRXh0ZXJuYWxGZW5jZUZkID0gewor
ICAgICAgICAic3VwcG9ydHNFeHRlcm5hbEZlbmNlRmQiLCBGZWF0dXJlQ2F0ZWdvcnk6OlZ1bGth
bkZlYXR1cmVzLAorICAgICAgICAiVmtEZXZpY2Ugc3VwcG9ydHMgdGhlIFZLX0tIUl9leHRlcm5h
bF9mZW5jZV9mZCBleHRlbnNpb24iLCAmbWVtYmVycywKKyAgICAgICAgImh0dHA6Ly9hbmdsZWJ1
Zy5jb20vMjUxNyJ9OworCisgICAgRmVhdHVyZUluZm8gc3VwcG9ydHNBbmRyb2lkTmF0aXZlRmVu
Y2VTeW5jID0geworICAgICAgICAic3VwcG9ydHNBbmRyb2lkTmF0aXZlRmVuY2VTeW5jIiwgRmVh
dHVyZUNhdGVnb3J5OjpWdWxrYW5GZWF0dXJlcywKKyAgICAgICAgIlZrRGV2aWNlIHN1cHBvcnRz
IHRoZSBFR0xfQU5EUk9JRF9uYXRpdmVfZmVuY2Vfc3luYyBleHRlbnNpb24iLCAmbWVtYmVycywK
KyAgICAgICAgImh0dHA6Ly9hbmdsZWJ1Zy5jb20vMjUxNyJ9OworCisgICAgRmVhdHVyZUluZm8g
c3VwcG9ydHNJbWFnZUN1YmVBcnJheSA9IHsic3VwcG9ydHNJbWFnZUN1YmVBcnJheSIsIEZlYXR1
cmVDYXRlZ29yeTo6VnVsa2FuRmVhdHVyZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiVmtEZXZpY2Ugc3VwcG9ydHMgdGhlIGltYWdlQ3ViZUFycmF5IGZlYXR1
cmUgcHJvcGVybHkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Jm1lbWJlcnMsICJodHRwOi8vYW5nbGVidWcuY29tLzM1ODQifTsKKworICAgIEZlYXR1cmVJbmZv
IHN1cHBvcnRzUGlwZWxpbmVTdGF0aXN0aWNzUXVlcnkgPSB7CisgICAgICAgICJzdXBwb3J0c1Bp
cGVsaW5lU3RhdGlzdGljc1F1ZXJ5IiwgRmVhdHVyZUNhdGVnb3J5OjpWdWxrYW5GZWF0dXJlcywK
KyAgICAgICAgIlZrRGV2aWNlIHN1cHBvcnRzIHRoZSBwaXBlbGluZVN0YXRpc3RpY3NRdWVyeSBm
ZWF0dXJlIiwgJm1lbWJlcnMsCisgICAgICAgICJodHRwOi8vYW5nbGVidWcuY29tLzU0MzAifTsK
KworICAgIEZlYXR1cmVJbmZvIHN1cHBvcnRzU2hhZGVyU3RlbmNpbEV4cG9ydCA9IHsKKyAgICAg
ICAgInN1cHBvcnRzU2hhZGVyU3RlbmNpbEV4cG9ydCIsCisgICAgICAgIEZlYXR1cmVDYXRlZ29y
eTo6VnVsa2FuRmVhdHVyZXMsCisgICAgICAgICJWa0RldmljZSBzdXBwb3J0cyB0aGUgVktfRVhU
X3NoYWRlcl9zdGVuY2lsX2V4cG9ydCBleHRlbnNpb24iLAorICAgICAgICAmbWVtYmVycywKKyAg
ICB9OworCisgICAgRmVhdHVyZUluZm8gc3VwcG9ydHNZVVZTYW1wbGVyQ29udmVyc2lvbiA9IHsK
KyAgICAgICAgInN1cHBvcnRzWVVWU2FtcGxlckNvbnZlcnNpb24iLAorICAgICAgICBGZWF0dXJl
Q2F0ZWdvcnk6OlZ1bGthbkZlYXR1cmVzLAorICAgICAgICAiVmtEZXZpY2Ugc3VwcG9ydHMgdGhl
IFZLX0tIUl9zYW1wbGVyX3ljYmNyX2NvbnZlcnNpb24gZXh0ZW5zaW9uIiwKKyAgICAgICAgJm1l
bWJlcnMsCisgICAgfTsKKworICAgIEZlYXR1cmVJbmZvIGVtdWxhdGVUcmFuc2Zvcm1GZWVkYmFj
ayA9IHsKKyAgICAgICAgImVtdWxhdGVUcmFuc2Zvcm1GZWVkYmFjayIsIEZlYXR1cmVDYXRlZ29y
eTo6VnVsa2FuRmVhdHVyZXMsCisgICAgICAgICJFbXVsYXRlIHRyYW5zZm9ybSBmZWVkYmFjayBh
cyB0aGUgVktfRVhUX3RyYW5zZm9ybV9mZWVkYmFjayBpcyBub3QgcHJlc2VudC4iLCAmbWVtYmVy
cywKKyAgICAgICAgImh0dHA6Ly9hbmdsZWJ1Zy5jb20vMzIwNSJ9OworCisgICAgRmVhdHVyZUlu
Zm8gc3VwcG9ydHNUcmFuc2Zvcm1GZWVkYmFja0V4dGVuc2lvbiA9IHsKKyAgICAgICAgInN1cHBv
cnRzVHJhbnNmb3JtRmVlZGJhY2tFeHRlbnNpb24iLCBGZWF0dXJlQ2F0ZWdvcnk6OlZ1bGthbkZl
YXR1cmVzLAorICAgICAgICAiVHJhbnNmb3JtIGZlZWRiYWNrIHVzZXMgdGhlIFZLX0VYVF90cmFu
c2Zvcm1fZmVlZGJhY2sgZXh0ZW5zaW9uLiIsICZtZW1iZXJzLAorICAgICAgICAiaHR0cDovL2Fu
Z2xlYnVnLmNvbS8zMjA2In07CisKKyAgICBGZWF0dXJlSW5mbyBzdXBwb3J0c0dlb21ldHJ5U3Ry
ZWFtc0NhcGFiaWxpdHkgPSB7CisgICAgICAgICJzdXBwb3J0c0dlb21ldHJ5U3RyZWFtc0NhcGFi
aWxpdHkiLCBGZWF0dXJlQ2F0ZWdvcnk6OlZ1bGthbkZlYXR1cmVzLAorICAgICAgICAiSW1wbGVt
ZW50YXRpb24gc3VwcG9ydHMgdGhlIEdlb21ldHJ5U3RyZWFtcyBTUElSLVYgY2FwYWJpbGl0eS4i
LCAmbWVtYmVycywKKyAgICAgICAgImh0dHA6Ly9hbmdsZWJ1Zy5jb20vMzIwNiJ9OworCisgICAg
RmVhdHVyZUluZm8gc3VwcG9ydHNJbmRleFR5cGVVaW50OCA9IHsic3VwcG9ydHNJbmRleFR5cGVV
aW50OCIsIEZlYXR1cmVDYXRlZ29yeTo6VnVsa2FuRmVhdHVyZXMsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiVmtEZXZpY2Ugc3VwcG9ydHMgdGhlIFZLX0VYVF9p
bmRleF90eXBlX3VpbnQ4IGV4dGVuc2lvbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAmbWVtYmVycywgImh0dHA6Ly9hbmdsZWJ1Zy5jb20vNDQwNSJ9OworCisg
ICAgRmVhdHVyZUluZm8gc3VwcG9ydHNDdXN0b21Cb3JkZXJDb2xvciA9IHsKKyAgICAgICAgInN1
cHBvcnRzQ3VzdG9tQm9yZGVyQ29sb3IiLCBGZWF0dXJlQ2F0ZWdvcnk6OlZ1bGthbkZlYXR1cmVz
LAorICAgICAgICAiVmtEZXZpY2Ugc3VwcG9ydHMgdGhlIFZLX0VYVF9jdXN0b21fYm9yZGVyX2Nv
bG9yIGV4dGVuc2lvbiIsICZtZW1iZXJzLAorICAgICAgICAiaHR0cDovL2FuZ2xlYnVnLmNvbS8z
NTc3In07CisKKyAgICBGZWF0dXJlSW5mbyBzdXBwb3J0c011bHRpRHJhd0luZGlyZWN0ID0gewor
ICAgICAgICAic3VwcG9ydHNNdWx0aURyYXdJbmRpcmVjdCIsIEZlYXR1cmVDYXRlZ29yeTo6VnVs
a2FuRmVhdHVyZXMsCisgICAgICAgICJWa0RldmljZSBzdXBwb3J0cyB0aGUgbXVsdGlEcmF3SW5k
aXJlY3QgZXh0ZW5zaW9uIiwgJm1lbWJlcnMsICJodHRwOi8vYW5nbGVidWcuY29tLzY0MzkifTsK
KworICAgIEZlYXR1cmVJbmZvIHN1cHBvcnRzRGVwdGhTdGVuY2lsUmVzb2x2ZSA9IHsic3VwcG9y
dHNEZXB0aFN0ZW5jaWxSZXNvbHZlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgRmVhdHVyZUNhdGVnb3J5OjpWdWxrYW5GZWF0dXJlcywKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlZrRGV2aWNlIHN1cHBvcnRz
IHRoZSBWS19LSFJfZGVwdGhfc3RlbmNpbF9yZXNvbHZlICIKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgImV4dGVuc2lvbiB3aXRoIHRoZSBpbmRlcGVuZGVu
dFJlc29sdmVOb25lIGZlYXR1cmUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAmbWVtYmVycywgImh0dHA6Ly9hbmdsZWJ1Zy5jb20vNDgzNiJ9OworCisg
ICAgRmVhdHVyZUluZm8gc3VwcG9ydHNNdWx0aXNhbXBsZWRSZW5kZXJUb1NpbmdsZVNhbXBsZWQg
PSB7CisgICAgICAgICJzdXBwb3J0c011bHRpc2FtcGxlZFJlbmRlclRvU2luZ2xlU2FtcGxlZCIs
IEZlYXR1cmVDYXRlZ29yeTo6VnVsa2FuRmVhdHVyZXMsCisgICAgICAgICJWa0RldmljZSBzdXBw
b3J0cyB0aGUgVktfRVhUX211bHRpc2FtcGxlZF9yZW5kZXJfdG9fc2luZ2xlX3NhbXBsZWQgZXh0
ZW5zaW9uIiwgJm1lbWJlcnMsCisgICAgICAgICJodHRwOi8vYW5nbGVidWcuY29tLzQ4MzYifTsK
KworICAgIEZlYXR1cmVJbmZvIHN1cHBvcnRzTXVsdGl2aWV3ID0geyJzdXBwb3J0c011bHRpdmll
dyIsIEZlYXR1cmVDYXRlZ29yeTo6VnVsa2FuRmVhdHVyZXMsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIlZrRGV2aWNlIHN1cHBvcnRzIHRoZSBWS19LSFJfbXVsdGl2aWV3
IGV4dGVuc2lvbiIsICZtZW1iZXJzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJodHRwOi8vYW5nbGVidWcuY29tLzYwNDgifTsKKworICAgIEZlYXR1cmVJbmZvIGRpc2Fi
bGVGaWZvUHJlc2VudE1vZGUgPSB7CisgICAgICAgICJkaXNhYmxlRmlmb1ByZXNlbnRNb2RlIiwg
RmVhdHVyZUNhdGVnb3J5OjpWdWxrYW5Xb3JrYXJvdW5kcywKKyAgICAgICAgIlZLX1BSRVNFTlRf
TU9ERV9GSUZPX0tIUiBjYXVzZXMgcmFuZG9tIHRpbWVvdXRzIiwgJm1lbWJlcnMsICJodHRwOi8v
YW5nbGVidWcuY29tLzMxNTMifTsKKworICAgIEZlYXR1cmVJbmZvIGJpbmRFbXB0eUZvclVudXNl
ZERlc2NyaXB0b3JTZXRzID0geworICAgICAgICAiYmluZEVtcHR5Rm9yVW51c2VkRGVzY3JpcHRv
clNldHMiLCBGZWF0dXJlQ2F0ZWdvcnk6OlZ1bGthbldvcmthcm91bmRzLAorICAgICAgICAiR2Fw
cyBpbiBib3VuZCBkZXNjcmlwdG9yIHNldCBpbmRpY2VzIGNhdXNlcyB0aGUgcG9zdC1nYXAgc2V0
cyB0byBtaXNiZWhhdmUiLCAmbWVtYmVycywKKyAgICAgICAgImh0dHA6Ly9hbmdsZWJ1Zy5jb20v
MjcyNyJ9OworCisgICAgRmVhdHVyZUluZm8gZm9yY2VEMTZUZXhGaWx0ZXIgPSB7CisgICAgICAg
ICJmb3JjZUQxNlRleEZpbHRlciIsIEZlYXR1cmVDYXRlZ29yeTo6VnVsa2FuV29ya2Fyb3VuZHMs
CisgICAgICAgICJWS19GT1JNQVRfRDE2X1VOT1JNIGRvZXMgbm90IHN1cHBvcnQgVktfRk9STUFU
X0ZFQVRVUkVfU0FNUExFRF9JTUFHRV9GSUxURVJfTElORUFSX0JJVCwgIgorICAgICAgICAid2hp
Y2ggcHJldmVudHMgT0VTX2RlcHRoX3RleHR1cmUgZnJvbSBiZWluZyBzdXBwb3J0ZWQuIiwKKyAg
ICAgICAgJm1lbWJlcnMsICJodHRwOi8vYW5nbGVidWcuY29tLzM0NTIifTsKKworICAgIEZlYXR1
cmVJbmZvIGRpc2FibGVGbGlwcGluZ0JsaXRXaXRoQ29tbWFuZCA9IHsKKyAgICAgICAgImRpc2Fi
bGVGbGlwcGluZ0JsaXRXaXRoQ29tbWFuZCIsIEZlYXR1cmVDYXRlZ29yeTo6VnVsa2FuV29ya2Fy
b3VuZHMsCisgICAgICAgICJ2a0NtZEJsaXRJbWFnZSB3aXRoIGZsaXBwZWQgY29vcmRpbmF0ZXMg
YmxpdHMgaW5jb3JyZWN0bHkuIiwgJm1lbWJlcnMsCisgICAgICAgICJodHRwOi8vYW5nbGVidWcu
Y29tLzM0OTgifTsKKworICAgIEZlYXR1cmVJbmZvIHBlckZyYW1lV2luZG93U2l6ZVF1ZXJ5ID0g
eworICAgICAgICAicGVyRnJhbWVXaW5kb3dTaXplUXVlcnkiLCBGZWF0dXJlQ2F0ZWdvcnk6OlZ1
bGthbldvcmthcm91bmRzLAorICAgICAgICAiVnVsa2FuIHN3YXBjaGFpbiBpcyBub3QgcmV0dXJu
aW5nIFZLX0VSUk9SX09VVF9PRl9EQVRFIHdoZW4gd2luZG93IHJlc2l6aW5nIiwgJm1lbWJlcnMs
CisgICAgICAgICJodHRwOi8vYW5nbGVidWcuY29tLzM2MjMsIGh0dHA6Ly9hbmdsZWJ1Zy5jb20v
MzYyNCwgaHR0cDovL2FuZ2xlYnVnLmNvbS8zNjI1In07CisKKyAgICBGZWF0dXJlSW5mbyBkaXNh
bGxvd1NlYW1mdWxDdWJlTWFwRW11bGF0aW9uID0geworICAgICAgICAiZGlzYWxsb3dTZWFtZnVs
Q3ViZU1hcEVtdWxhdGlvbiIsIEZlYXR1cmVDYXRlZ29yeTo6VnVsa2FuV29ya2Fyb3VuZHMsCisg
ICAgICAgICJTZWFtZnVsIGN1YmUgbWFwIGVtdWxhdGlvbiBtaXNiZWhhdmVzIG9uIHNvbWUgZHJp
dmVycywgc28gaXQncyBkaXNhbGxvd2VkIiwgJm1lbWJlcnMsCisgICAgICAgICJodHRwOi8vYW5n
bGVidWcuY29tLzMyNDMifTsKKworICAgIEZlYXR1cmVJbmZvIHBhZEJ1ZmZlcnNUb01heFZlcnRl
eEF0dHJpYlN0cmlkZSA9IHsKKyAgICAgICAgInBhZEJ1ZmZlcnNUb01heFZlcnRleEF0dHJpYlN0
cmlkZSIsIEZlYXR1cmVDYXRlZ29yeTo6VnVsa2FuV29ya2Fyb3VuZHMsCisgICAgICAgICJWdWxr
YW4gY29uc2lkZXJzIHZlcnRleCBhdHRyaWJ1dGUgYWNjZXNzZXMgdG8gY291bnQgdXAgdG8gdGhl
IGxhc3QgbXVsdGlwbGUgb2YgdGhlICIKKyAgICAgICAgInN0cmlkZS4gVGhpcyBhZGRpdGlvbmFs
IGFjY2VzcyBzdXBwb3J0cyBBTUQncyByb2J1c3QgYnVmZmVyIGFjY2VzcyBpbXBsZW1lbnRhdGlv
bi4gIgorICAgICAgICAiQU1EVkxLIGluIHBhcnRpY3VsYXIgd2lsbCByZXR1cm4gaW5jb3JyZWN0
IHZhbHVlcyB3aGVuIHRoZSB2ZXJ0ZXggYWNjZXNzIGV4dGVuZHMgaW50byAiCisgICAgICAgICJ0
aGUgcmFuZ2UgdGhhdCB3b3VsZCBiZSB0aGUgc3RyaWRlIHBhZGRpbmcgYW5kIHRoZSBidWZmZXIg
aXMgdG9vIHNtYWxsLiAiCisgICAgICAgICJUaGlzIHdvcmthcm91bmQgbGltaXRzIEdMX01BWF9W
RVJURVhfQVRUUklCX1NUUklERSB0byBhIG1heGltdW0gdmFsdWUgYW5kICIKKyAgICAgICAgInBh
ZHMgdXAgZXZlcnkgYnVmZmVyIGFsbG9jYXRpb24gc2l6ZSB0byBiZSBhIG11bHRpcGxlIG9mIHRo
ZSBtYXhpbXVtIHN0cmlkZS4iLAorICAgICAgICAmbWVtYmVycywgImh0dHA6Ly9hbmdsZWJ1Zy5j
b20vNDQyOCJ9OworCisgICAgRmVhdHVyZUluZm8gc3VwcG9ydHNFeHRlcm5hbE1lbW9yeURtYUJ1
ZkFuZE1vZGlmaWVycyA9IHsKKyAgICAgICAgInN1cHBvcnRzRXh0ZXJuYWxNZW1vcnlEbWFCdWZB
bmRNb2RpZmllcnMiLCBGZWF0dXJlQ2F0ZWdvcnk6OlZ1bGthbkZlYXR1cmVzLAorICAgICAgICAi
VmtEZXZpY2Ugc3VwcG9ydHMgdGhlIFZLX0VYVF9leHRlcm5hbF9tZW1vcnlfZG1hX2J1ZiBhbmQg
VktfRVhUX2ltYWdlX2RybV9mb3JtYXRfbW9kaWZpZXIgIgorICAgICAgICAiZXh0ZW5zaW9ucyIs
CisgICAgICAgICZtZW1iZXJzLCAiaHR0cDovL2FuZ2xlYnVnLmNvbS82MjQ4In07CisKKyAgICBG
ZWF0dXJlSW5mbyBzdXBwb3J0c0V4dGVybmFsTWVtb3J5SG9zdCA9IHsKKyAgICAgICAgInN1cHBv
cnRzRXh0ZXJuYWxNZW1vcnlIb3N0IiwKKyAgICAgICAgRmVhdHVyZUNhdGVnb3J5OjpWdWxrYW5G
ZWF0dXJlcywKKyAgICAgICAgIlZrRGV2aWNlIHN1cHBvcnRzIHRoZSBWS19FWFRfZXh0ZXJuYWxf
bWVtb3J5X2hvc3QgZXh0ZW5zaW9uIiwKKyAgICAgICAgJm1lbWJlcnMsCisgICAgfTsKKworICAg
IEZlYXR1cmVJbmZvIGFsbG9jYXRlTm9uWmVyb01lbW9yeSA9IHsKKyAgICAgICAgImFsbG9jYXRl
Tm9uWmVyb01lbW9yeSIsIEZlYXR1cmVDYXRlZ29yeTo6VnVsa2FuRmVhdHVyZXMsCisgICAgICAg
ICJGaWxsIG5ldyBhbGxvY2F0aW9ucyB3aXRoIG5vbi16ZXJvIHZhbHVlcyB0byBmbHVzaCBvdXQg
ZXJyb3JzLiIsICZtZW1iZXJzLAorICAgICAgICAiaHR0cDovL2FuZ2xlYnVnLmNvbS80Mzg0In07
CisKKyAgICBGZWF0dXJlSW5mbyBsb2dNZW1vcnlSZXBvcnRDYWxsYmFja3MgPSB7CisgICAgICAg
ICJsb2dNZW1vcnlSZXBvcnRDYWxsYmFja3MiLAorICAgICAgICBGZWF0dXJlQ2F0ZWdvcnk6OlZ1
bGthbkZlYXR1cmVzLAorICAgICAgICAiTG9nIGVhY2ggY2FsbGJhY2sgZnJvbSBWS19FWFRfZGV2
aWNlX21lbW9yeV9yZXBvcnQiLAorICAgICAgICAmbWVtYmVycywKKyAgICB9OworCisgICAgRmVh
dHVyZUluZm8gbG9nTWVtb3J5UmVwb3J0U3RhdHMgPSB7CisgICAgICAgICJsb2dNZW1vcnlSZXBv
cnRTdGF0cyIsCisgICAgICAgIEZlYXR1cmVDYXRlZ29yeTo6VnVsa2FuRmVhdHVyZXMsCisgICAg
ICAgICJMb2cgc3RhdHMgZnJvbSBWS19FWFRfZGV2aWNlX21lbW9yeV9yZXBvcnQgZWFjaCBzd2Fw
IiwKKyAgICAgICAgJm1lbWJlcnMsCisgICAgfTsKKworICAgIEZlYXR1cmVJbmZvIHNoYWRvd0J1
ZmZlcnMgPSB7CisgICAgICAgICJzaGFkb3dCdWZmZXJzIiwgRmVhdHVyZUNhdGVnb3J5OjpWdWxr
YW5GZWF0dXJlcywKKyAgICAgICAgIkFsbG9jYXRlIGEgc2hhZG93IGJ1ZmZlciBmb3IgR0wgYnVm
ZmVyIG9iamVjdHMgdG8gcmVkdWNlIGdsTWFwKiBsYXRlbmN5LiIsICZtZW1iZXJzLAorICAgICAg
ICAiaHR0cDovL2FuZ2xlYnVnLmNvbS80MzM5In07CisKKyAgICBGZWF0dXJlSW5mbyBwcmVmZXJD
UFVGb3JCdWZmZXJTdWJEYXRhID0geworICAgICAgICAicHJlZmVyQ1BVRm9yQnVmZmVyU3ViRGF0
YSIsIEZlYXR1cmVDYXRlZ29yeTo6VnVsa2FuRmVhdHVyZXMsCisgICAgICAgICJQcmVmZXIgdXNl
IENQVSB0byBkbyBidWZmZXJTdWJEYXRhIGluc3RlYWQgb2Ygc3RhZ2VkIHVwZGF0ZS4iLCAmbWVt
YmVycywKKyAgICAgICAgImh0dHA6Ly9pc3N1ZXRyYWNrZXIuZ29vZ2xlLmNvbS8yMDAwNjc5Mjki
fTsKKworICAgIEZlYXR1cmVJbmZvIHBlcnNpc3RlbnRseU1hcHBlZEJ1ZmZlcnMgPSB7CisgICAg
ICAgICJwZXJzaXN0ZW50bHlNYXBwZWRCdWZmZXJzIiwgRmVhdHVyZUNhdGVnb3J5OjpWdWxrYW5G
ZWF0dXJlcywKKyAgICAgICAgIlBlcnNpc3RlbnRseSBtYXAgYnVmZmVyIG1lbW9yeSB0byByZWR1
Y2UgbWFwL3VubWFwIElPQ1RMIG92ZXJoZWFkLiIsICZtZW1iZXJzLAorICAgICAgICAiaHR0cDov
L2FuZ2xlYnVnLmNvbS8yMTYyIn07CisKKyAgICBGZWF0dXJlSW5mbyBlbmFibGVQcmVSb3RhdGVT
dXJmYWNlcyA9IHsiZW5hYmxlUHJlUm90YXRlU3VyZmFjZXMiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEZlYXR1cmVDYXRlZ29yeTo6VnVsa2FuRmVhdHVyZXMs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkVuYWJsZSBBbmRy
b2lkIHByZS1yb3RhdGlvbiBmb3IgbGFuZHNjYXBlIGFwcGxpY2F0aW9ucyIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm1lbWJlcnMsICJodHRwOi8vYW5nbGVi
dWcuY29tLzM1MDIifTsKKworICAgIEZlYXR1cmVJbmZvIGVuYWJsZVByZWNpc2lvblF1YWxpZmll
cnMgPSB7CisgICAgICAgICJlbmFibGVQcmVjaXNpb25RdWFsaWZpZXJzIiwgRmVhdHVyZUNhdGVn
b3J5OjpWdWxrYW5GZWF0dXJlcywKKyAgICAgICAgIkVuYWJsZSBwcmVjaXNpb24gcXVhbGlmaWVy
cyBpbiBzaGFkZXJzIiwgJm1lbWJlcnMsICJodHRwOi8vYW5nbGVidWcuY29tLzMwNzgifTsKKwor
ICAgIEZlYXR1cmVJbmZvIHByZWZlckFnZ3JlZ2F0ZUJhcnJpZXJDYWxscyA9IHsKKyAgICAgICAg
InByZWZlckFnZ3JlZ2F0ZUJhcnJpZXJDYWxscyIsIEZlYXR1cmVDYXRlZ29yeTo6VnVsa2FuV29y
a2Fyb3VuZHMsCisgICAgICAgICJTaW5nbGUgYmFycmllciBjYWxsIGlzIHByZWZlcnJlZCBvdmVy
IG11bHRpcGxlIGNhbGxzIHdpdGggIgorICAgICAgICAiZmluZSBncmFpbmVkIHBpcGVsaW5lIHN0
YWdlIGRlcGVuZGVuY3kgaW5mb3JtYXRpb24iLAorICAgICAgICAmbWVtYmVycywgImh0dHA6Ly9h
bmdsZWJ1Zy5jb20vNDYzMyJ9OworCisgICAgRmVhdHVyZUluZm8gcHJlZmVyU2tpcHBpbmdJbnZh
bGlkYXRlRm9yRW11bGF0ZWRGb3JtYXRzID0geworICAgICAgICAicHJlZmVyU2tpcHBpbmdJbnZh
bGlkYXRlRm9yRW11bGF0ZWRGb3JtYXRzIiwgRmVhdHVyZUNhdGVnb3J5OjpWdWxrYW5Xb3JrYXJv
dW5kcywKKyAgICAgICAgIlNraXBwaW5nIGludmFsaWRhdGUgaXMgcHJlZmVycmVkIGZvciBlbXVs
YXRlZCBmb3JtYXRzIHRoYXQgaGF2ZSBleHRyYSBjaGFubmVscyBvdmVyICIKKyAgICAgICAgInJl
LWNsZWFyaW5nIHRoZSBpbWFnZSIsCisgICAgICAgICZtZW1iZXJzLCAiaHR0cDovL2FuZ2xlYnVn
LmNvbS82ODYwIn07CisKKyAgICBGZWF0dXJlSW5mbyBhc3luY0NvbW1hbmRRdWV1ZSA9IHsiYXN5
bmNDb21tYW5kUXVldWUiLCBGZWF0dXJlQ2F0ZWdvcnk6OlZ1bGthbkZlYXR1cmVzLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJVc2UgQ29tbWFuZFF1ZXVlIHdvcmtlciB0
aHJlYWQgdG8gZGlzcGF0Y2ggd29yayB0byBHUFUuIiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAmbWVtYmVycywgImh0dHA6Ly9hbmdsZWJ1Zy5jb20vNDMyNCJ9OworCisg
ICAgRmVhdHVyZUluZm8gc3VwcG9ydHNTaGFkZXJGbG9hdDE2ID0geworICAgICAgICAic3VwcG9y
dHNTaGFkZXJGbG9hdDE2IiwgRmVhdHVyZUNhdGVnb3J5OjpWdWxrYW5GZWF0dXJlcywKKyAgICAg
ICAgIlZrRGV2aWNlIHN1cHBvcnRzIHRoZSBWS19LSFJfc2hhZGVyX2Zsb2F0MTZfaW50OCBleHRl
bnNpb24gIgorICAgICAgICAiYW5kIGhhcyB0aGUgc2hhZGVyRmxvYXQxNiBmZWF0dXJlIiwKKyAg
ICAgICAgJm1lbWJlcnMsICJodHRwOi8vYW5nbGVidWcuY29tLzQ1NTEifTsKKworICAgIEZlYXR1
cmVJbmZvIGFsbG93R2VuZXJhdGVNaXBtYXBXaXRoQ29tcHV0ZSA9IHsKKyAgICAgICAgImFsbG93
R2VuZXJhdGVNaXBtYXBXaXRoQ29tcHV0ZSIsIEZlYXR1cmVDYXRlZ29yeTo6VnVsa2FuRmVhdHVy
ZXMsCisgICAgICAgICJVc2UgdGhlIGNvbXB1dGUgcGF0aCB0byBnZW5lcmF0ZSBtaXBtYXBzIG9u
IGRldmljZXMgdGhhdCBtZWV0IHRoZSBtaW5pbXVtIHJlcXVpcmVtZW50cywgIgorICAgICAgICAi
YW5kIHRoZSBwZXJmb3JtYW5jZSBpcyBiZXR0ZXIuIiwKKyAgICAgICAgJm1lbWJlcnMsICJodHRw
Oi8vYW5nbGVidWcuY29tLzQ1NTEifTsKKworICAgIEZlYXR1cmVJbmZvIHN1cHBvcnRzUmVuZGVy
UGFzc1N0b3JlT3BOb25lID0geworICAgICAgICAic3VwcG9ydHNSZW5kZXJQYXNzU3RvcmVPcE5v
bmUiLCBGZWF0dXJlQ2F0ZWdvcnk6OlZ1bGthbkZlYXR1cmVzLAorICAgICAgICAiVmtEZXZpY2Ug
c3VwcG9ydHMgVktfUUNPTV9yZW5kZXJfcGFzc19zdG9yZV9vcHMgZXh0ZW5zaW9uLiIsICZtZW1i
ZXJzLAorICAgICAgICAiaHR0cDovL2FuZ2xlYnVnLmNvbS81MDU1In07CisKKyAgICBGZWF0dXJl
SW5mbyBzdXBwb3J0c1JlbmRlclBhc3NMb2FkU3RvcmVPcE5vbmUgPSB7CisgICAgICAgICJzdXBw
b3J0c1JlbmRlclBhc3NMb2FkU3RvcmVPcE5vbmUiLCBGZWF0dXJlQ2F0ZWdvcnk6OlZ1bGthbkZl
YXR1cmVzLAorICAgICAgICAiVmtEZXZpY2Ugc3VwcG9ydHMgVktfRVhUX2xvYWRfc3RvcmVfb3Bf
bm9uZSBleHRlbnNpb24uIiwgJm1lbWJlcnMsCisgICAgICAgICJodHRwOi8vYW5nbGVidWcuY29t
LzUzNzEifTsKKworICAgIEZlYXR1cmVJbmZvIHN1cHBvcnRzRGVwdGhDbGlwQ29udHJvbCA9IHsK
KyAgICAgICAgInN1cHBvcnRzRGVwdGhDbGlwQ29udHJvbCIsIEZlYXR1cmVDYXRlZ29yeTo6VnVs
a2FuRmVhdHVyZXMsCisgICAgICAgICJWa0RldmljZSBzdXBwb3J0cyBWS19FWFRfZGVwdGhfY2xp
cF9jb250cm9sIGV4dGVuc2lvbi4iLCAmbWVtYmVycywKKyAgICAgICAgImh0dHA6Ly9hbmdsZWJ1
Zy5jb20vNTQyMSJ9OworCisgICAgRmVhdHVyZUluZm8gc3VwcG9ydHNCbGVuZE9wZXJhdGlvbkFk
dmFuY2VkID0geworICAgICAgICAic3VwcG9ydHNCbGVuZE9wZXJhdGlvbkFkdmFuY2VkIiwgRmVh
dHVyZUNhdGVnb3J5OjpWdWxrYW5GZWF0dXJlcywKKyAgICAgICAgIlZrRGV2aWNlIHN1cHBvcnRz
IFZLX0VYVF9ibGVuZF9vcGVyYXRpb25fYWR2YW5jZWQgZXh0ZW5zaW9uLiIsICZtZW1iZXJzLAor
ICAgICAgICAiaHR0cDovL2FuZ2xlYnVnLmNvbS8zNTg2In07CisKKyAgICBGZWF0dXJlSW5mbyBm
b3JjZU1heFVuaWZvcm1CdWZmZXJTaXplMTZLQiA9IHsKKyAgICAgICAgImZvcmNlTWF4VW5pZm9y
bUJ1ZmZlclNpemUxNktCIiwgRmVhdHVyZUNhdGVnb3J5OjpWdWxrYW5Xb3JrYXJvdW5kcywKKyAg
ICAgICAgIkZvcmNlIG1heCB1bmlmb3JtIGJ1ZmZlciBzaXplIHRvIDE2SyBvbiBzb21lIGRldmlj
ZSBkdWUgdG8gYnVnIiwgJm1lbWJlcnMsCisgICAgICAgICJodHRwczovL2lzc3VldHJhY2tlci5n
b29nbGUuY29tLzE2MTkwMzAwNiJ9OworCisgICAgRmVhdHVyZUluZm8gc3VwcG9ydHNJbWFnZUZv
cm1hdExpc3QgPSB7CisgICAgICAgICJzdXBwb3J0c0ltYWdlRm9ybWF0TGlzdCIsIEZlYXR1cmVD
YXRlZ29yeTo6VnVsa2FuRmVhdHVyZXMsCisgICAgICAgICJFbmFibGUgVktfSU1BR0VfQ1JFQVRF
X01VVEFCTEVfRk9STUFUX0JJVCBieSBkZWZhdWx0IGZvciBJQ0RzICIKKyAgICAgICAgInRoYXQg
c3VwcG9ydCBWS19LSFJfaW1hZ2VfZm9ybWF0X2xpc3QiLAorICAgICAgICAmbWVtYmVycywgImh0
dHA6Ly9hbmdsZWJ1Zy5jb20vNTI4MSJ9OworCisgICAgRmVhdHVyZUluZm8gZW5hYmxlTXVsdGlz
YW1wbGVkUmVuZGVyVG9UZXh0dXJlID0geworICAgICAgICAiZW5hYmxlTXVsdGlzYW1wbGVkUmVu
ZGVyVG9UZXh0dXJlIiwgRmVhdHVyZUNhdGVnb3J5OjpWdWxrYW5Xb3JrYXJvdW5kcywKKyAgICAg
ICAgIkV4cG9zZSBFWFRfbXVsdGlzYW1wbGVkX3JlbmRlcl90b190ZXh0dXJlIiwgJm1lbWJlcnMs
ICJodHRwOi8vYW5nbGVidWcuY29tLzQ5MzcifTsKKworICAgIEZlYXR1cmVJbmZvIGRlZmVyRmx1
c2hVbnRpbEVuZFJlbmRlclBhc3MgPSB7CisgICAgICAgICJkZWZlckZsdXNoVW50aWxFbmRSZW5k
ZXJQYXNzIiwgRmVhdHVyZUNhdGVnb3J5OjpWdWxrYW5Xb3JrYXJvdW5kcywKKyAgICAgICAgIkFs
bG93IGdsRmx1c2ggdG8gYmUgZGVmZXJyZWQgdW50aWwgcmVuZGVycGFzcyBlbmRzIiwgJm1lbWJl
cnMsCisgICAgICAgICJodHRwczovL2lzc3VldHJhY2tlci5nb29nbGUuY29tL2lzc3Vlcy8xNjY0
NzUyNzMifTsKKworICAgIEZlYXR1cmVJbmZvIHdhaXRJZGxlQmVmb3JlU3dhcGNoYWluUmVjcmVh
dGlvbiA9IHsKKyAgICAgICAgIndhaXRJZGxlQmVmb3JlU3dhcGNoYWluUmVjcmVhdGlvbiIsIEZl
YXR1cmVDYXRlZ29yeTo6VnVsa2FuV29ya2Fyb3VuZHMsCisgICAgICAgICJCZWZvcmUgcGFzc2lu
ZyBhbiBvbGRTd2FwY2hhaW4gdG8gVmtTd2FwY2hhaW5DcmVhdGVJbmZvS0hSLCB3YWl0IGZvciBx
dWV1ZSB0byBiZSBpZGxlLiAiCisgICAgICAgICJXb3JrcyBhcm91bmQgYSBidWcgb24gcGxhdGZv
cm1zIHdoaWNoIGRlc3Ryb3kgb2xkU3dhcGNoYWluIGluIHZrQ3JlYXRlU3dhcGNoYWluS0hSLiIs
CisgICAgICAgICZtZW1iZXJzLCAiaHR0cDovL2FuZ2xlYnVnLmNvbS81MDYxIn07CisKKyAgICBG
ZWF0dXJlSW5mbyBmb3JjZVRleHR1cmVMb2RPZmZzZXQxID0geworICAgICAgICAiZm9yY2VUZXh0
dXJlTG9kT2Zmc2V0MSIsCisgICAgICAgIEZlYXR1cmVDYXRlZ29yeTo6VnVsa2FuV29ya2Fyb3Vu
ZHMsCisgICAgICAgICJJbmNyZWFzZSB0aGUgbWluaW11bSB0ZXh0dXJlIGxldmVsLW9mLWRldGFp
bCBieSAxIHdoZW4gc2FtcGxpbmcuIiwKKyAgICAgICAgJm1lbWJlcnMsCisgICAgfTsKKworICAg
IEZlYXR1cmVJbmZvIGZvcmNlVGV4dHVyZUxvZE9mZnNldDIgPSB7CisgICAgICAgICJmb3JjZVRl
eHR1cmVMb2RPZmZzZXQyIiwKKyAgICAgICAgRmVhdHVyZUNhdGVnb3J5OjpWdWxrYW5Xb3JrYXJv
dW5kcywKKyAgICAgICAgIkluY3JlYXNlIHRoZSBtaW5pbXVtIHRleHR1cmUgbGV2ZWwtb2YtZGV0
YWlsIGJ5IDIgd2hlbiBzYW1wbGluZy4iLAorICAgICAgICAmbWVtYmVycywKKyAgICB9OworCisg
ICAgRmVhdHVyZUluZm8gZm9yY2VUZXh0dXJlTG9kT2Zmc2V0MyA9IHsKKyAgICAgICAgImZvcmNl
VGV4dHVyZUxvZE9mZnNldDMiLAorICAgICAgICBGZWF0dXJlQ2F0ZWdvcnk6OlZ1bGthbldvcmth
cm91bmRzLAorICAgICAgICAiSW5jcmVhc2UgdGhlIG1pbmltdW0gdGV4dHVyZSBsZXZlbC1vZi1k
ZXRhaWwgYnkgMyB3aGVuIHNhbXBsaW5nLiIsCisgICAgICAgICZtZW1iZXJzLAorICAgIH07CisK
KyAgICBGZWF0dXJlSW5mbyBmb3JjZVRleHR1cmVMb2RPZmZzZXQ0ID0geworICAgICAgICAiZm9y
Y2VUZXh0dXJlTG9kT2Zmc2V0NCIsCisgICAgICAgIEZlYXR1cmVDYXRlZ29yeTo6VnVsa2FuV29y
a2Fyb3VuZHMsCisgICAgICAgICJJbmNyZWFzZSB0aGUgbWluaW11bSB0ZXh0dXJlIGxldmVsLW9m
LWRldGFpbCBieSA0IHdoZW4gc2FtcGxpbmcuIiwKKyAgICAgICAgJm1lbWJlcnMsCisgICAgfTsK
KworICAgIEZlYXR1cmVJbmZvIGZvcmNlTmVhcmVzdEZpbHRlcmluZyA9IHsKKyAgICAgICAgImZv
cmNlTmVhcmVzdEZpbHRlcmluZyIsCisgICAgICAgIEZlYXR1cmVDYXRlZ29yeTo6VnVsa2FuV29y
a2Fyb3VuZHMsCisgICAgICAgICJGb3JjZSBuZWFyZXN0IGZpbHRlcmluZyB3aGVuIHNhbXBsaW5n
LiIsCisgICAgICAgICZtZW1iZXJzLAorICAgIH07CisKKyAgICBGZWF0dXJlSW5mbyBmb3JjZU5l
YXJlc3RNaXBGaWx0ZXJpbmcgPSB7CisgICAgICAgICJmb3JjZU5lYXJlc3RNaXBGaWx0ZXJpbmci
LAorICAgICAgICBGZWF0dXJlQ2F0ZWdvcnk6OlZ1bGthbldvcmthcm91bmRzLAorICAgICAgICAi
Rm9yY2UgbmVhcmVzdCBtaXAgZmlsdGVyaW5nIHdoZW4gc2FtcGxpbmcuIiwKKyAgICAgICAgJm1l
bWJlcnMsCisgICAgfTsKKworICAgIEZlYXR1cmVJbmZvIGNvbXByZXNzVmVydGV4RGF0YSA9IHsK
KyAgICAgICAgImNvbXByZXNzVmVydGV4RGF0YSIsCisgICAgICAgIEZlYXR1cmVDYXRlZ29yeTo6
VnVsa2FuV29ya2Fyb3VuZHMsCisgICAgICAgICJDb21wcmVzcyB2ZXJ0ZXggZGF0YSB0byBzbWFs
bGVyIGRhdGEgdHlwZXMgd2hlbiAiCisgICAgICAgICJwb3NzaWJsZS4gVXNpbmcgdGhpcyBmZWF0
dXJlIG1ha2VzIEFOR0xFIG5vbi1jb25mb3JtYW50LiIsCisgICAgICAgICZtZW1iZXJzLAorICAg
IH07CisKKyAgICBGZWF0dXJlSW5mbyBwcmVmZXJEcmF3Q2xlYXJPdmVyVmtDbWRDbGVhckF0dGFj
aG1lbnRzID0geworICAgICAgICAicHJlZmVyRHJhd0NsZWFyT3ZlclZrQ21kQ2xlYXJBdHRhY2ht
ZW50cyIsIEZlYXR1cmVDYXRlZ29yeTo6VnVsa2FuV29ya2Fyb3VuZHMsCisgICAgICAgICJPbiBz
b21lIGhhcmR3YXJlLCBjbGVhciB1c2luZyBhIGRyYXcgY2FsbCBpbnN0ZWFkIG9mIHZrQ21kQ2xl
YXJBdHRhY2htZW50cyBpbiB0aGUgbWlkZGxlICIKKyAgICAgICAgIm9mIHJlbmRlciBwYXNzIGR1
ZSB0byBidWdzIiwKKyAgICAgICAgJm1lbWJlcnMsICJodHRwczovL2lzc3VldHJhY2tlci5nb29n
bGUuY29tLzE2NjgwOTA5NyJ9OworCisgICAgRmVhdHVyZUluZm8gZW11bGF0ZWRQcmVyb3RhdGlv
bjkwID0geyJlbXVsYXRlZFByZXJvdGF0aW9uOTAiLCBGZWF0dXJlQ2F0ZWdvcnk6OlZ1bGthbkZl
YXR1cmVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRW11bGF0
ZSA5MC1kZWdyZWUgcHJlcm90YXRpb24uIiwgJm1lbWJlcnMsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJodHRwOi8vYW5nbGVidWcuY29tLzQ5MDEifTsKKworICAg
IEZlYXR1cmVJbmZvIGVtdWxhdGVkUHJlcm90YXRpb24xODAgPSB7ImVtdWxhdGVkUHJlcm90YXRp
b24xODAiLCBGZWF0dXJlQ2F0ZWdvcnk6OlZ1bGthbkZlYXR1cmVzLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIkVtdWxhdGUgMTgwLWRlZ3JlZSBwcmVyb3RhdGlv
bi4iLCAmbWVtYmVycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJodHRwOi8vYW5nbGVidWcuY29tLzQ5MDEifTsKKworICAgIEZlYXR1cmVJbmZvIGVtdWxhdGVk
UHJlcm90YXRpb24yNzAgPSB7ImVtdWxhdGVkUHJlcm90YXRpb24yNzAiLCBGZWF0dXJlQ2F0ZWdv
cnk6OlZ1bGthbkZlYXR1cmVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIkVtdWxhdGUgMjcwLWRlZ3JlZSBwcmVyb3RhdGlvbi4iLCAmbWVtYmVycywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJodHRwOi8vYW5nbGVidWcuY29t
LzQ5MDEifTsKKworICAgIEZlYXR1cmVJbmZvIGdlbmVyYXRlU1BJUlZUaHJvdWdoR2xzbGFuZyA9
IHsKKyAgICAgICAgImdlbmVyYXRlU1BJUlZUaHJvdWdoR2xzbGFuZyIsIEZlYXR1cmVDYXRlZ29y
eTo6VnVsa2FuRmVhdHVyZXMsCisgICAgICAgICJUcmFuc2xhdGUgU1BJUi1WIHRocm91Z2ggZ2xz
bGFuZy4iLCAmbWVtYmVycywgImh0dHA6Ly9hbmdsZWJ1Zy5jb20vNDg4OSJ9OworCisgICAgRmVh
dHVyZUluZm8gZm9yY2VEcml2ZXJVbmlmb3JtT3ZlclNwZWNDb25zdCA9IHsKKyAgICAgICAgImZv
cmNlRHJpdmVyVW5pZm9ybU92ZXJTcGVjQ29uc3QiLCBGZWF0dXJlQ2F0ZWdvcnk6OlZ1bGthbldv
cmthcm91bmRzLAorICAgICAgICAiRm9yY2VzIHVzaW5nIGRyaXZlciB1bmlmb3JtcyBpbnN0ZWFk
IG9mIHNwZWNpYWxpemF0aW9uIGNvbnN0YW50cy4iLCAmbWVtYmVycywKKyAgICAgICAgImh0dHA6
Ly9pc3N1ZXRyYWNrZXIuZ29vZ2xlLmNvbS8xNzM2MzY3ODMifTsKKworICAgIEZlYXR1cmVJbmZv
IGV4cG9zZU5vbkNvbmZvcm1hbnRFeHRlbnNpb25zQW5kVmVyc2lvbnMgPSB7CisgICAgICAgICJl
eHBvc2VOb25Db25mb3JtYW50RXh0ZW5zaW9uc0FuZFZlcnNpb25zIiwgRmVhdHVyZUNhdGVnb3J5
OjpWdWxrYW5Xb3JrYXJvdW5kcywKKyAgICAgICAgIkV4cG9zZSBHTEVTIHZlcnNpb25zIGFuZCBl
eHRlbnNpb25zIHRoYXQgYXJlIG5vdCBjb25mb3JtYW50LiIsICZtZW1iZXJzLAorICAgICAgICAi
aHR0cDovL2FuZ2xlYnVnLmNvbS81Mzc1In07CisKKyAgICBGZWF0dXJlSW5mbyBlbXVsYXRlUjMy
ZkltYWdlQXRvbWljRXhjaGFuZ2UgPSB7CisgICAgICAgICJlbXVsYXRlUjMyZkltYWdlQXRvbWlj
RXhjaGFuZ2UiLCBGZWF0dXJlQ2F0ZWdvcnk6OlZ1bGthbldvcmthcm91bmRzLAorICAgICAgICAi
RW11bGF0ZSByMzJmIGltYWdlcyB3aXRoIHIzMnVpIHRvIHN1cHBvcnQgaW1hZ2VBdG9taWNFeGNo
YW5nZS4iLCAmbWVtYmVycywKKyAgICAgICAgImh0dHA6Ly9hbmdsZWJ1Zy5jb20vNTUzNSJ9Owor
CisgICAgRmVhdHVyZUluZm8gc3VwcG9ydHNOZWdhdGl2ZVZpZXdwb3J0ID0geworICAgICAgICAi
c3VwcG9ydHNOZWdhdGl2ZVZpZXdwb3J0IiwKKyAgICAgICAgRmVhdHVyZUNhdGVnb3J5OjpWdWxr
YW5GZWF0dXJlcywKKyAgICAgICAgIlRoZSBkcml2ZXIgc3VwcG9ydHMgaW52ZXJ0aW5nIHRoZSB2
aWV3cG9ydCB3aXRoIGEgbmVnYXRpdmUgaGVpZ2h0LiIsCisgICAgICAgICZtZW1iZXJzLAorICAg
IH07CisKKyAgICBGZWF0dXJlSW5mbyBmb3JjZUZyYWdtZW50U2hhZGVyUHJlY2lzaW9uSGlnaHBU
b01lZGl1bXAgPSB7CisgICAgICAgICJmb3JjZUZyYWdtZW50U2hhZGVyUHJlY2lzaW9uSGlnaHBU
b01lZGl1bXAiLCBGZWF0dXJlQ2F0ZWdvcnk6OlZ1bGthbldvcmthcm91bmRzLAorICAgICAgICAi
Rm9yY2VzIGhpZ2hwIHByZWNpc2lvbiBpbiBmcmFnbWVudCBzaGFkZXIgdG8gbWVkaXVtcC4iLCAm
bWVtYmVycywKKyAgICAgICAgImh0dHBzOi8vaXNzdWV0cmFja2VyLmdvb2dsZS5jb20vMTg0ODUw
MDAyIn07CisKKyAgICBGZWF0dXJlSW5mbyBwcmVmZXJTdWJtaXRBdEZCT0JvdW5kYXJ5ID0gewor
ICAgICAgICAicHJlZmVyU3VibWl0QXRGQk9Cb3VuZGFyeSIsIEZlYXR1cmVDYXRlZ29yeTo6VnVs
a2FuV29ya2Fyb3VuZHMsCisgICAgICAgICJTdWJtaXQgY29tbWFuZHMgdG8gZHJpdmVyIGF0IGVh
Y2ggRkJPIGJvdW5kYXJ5IGZvciBwZXJmb3JtYW5jZSBpbXByb3ZlbWVudHMuIiwgJm1lbWJlcnMs
CisgICAgICAgICJodHRwczovL2lzc3VldHJhY2tlci5nb29nbGUuY29tLzE4NzQyNTQ0NCJ9Owor
CisgICAgRmVhdHVyZUluZm8gdXNlTXVsdGlwbGVEZXNjcmlwdG9yc0ZvckV4dGVybmFsRm9ybWF0
cyA9IHsKKyAgICAgICAgInVzZU11bHRpcGxlRGVzY3JpcHRvcnNGb3JFeHRlcm5hbEZvcm1hdHMi
LCBGZWF0dXJlQ2F0ZWdvcnk6OlZ1bGthbldvcmthcm91bmRzLAorICAgICAgICAiUmV0dXJuIGEg
ZGVmYXVsdCBkZXNjcmlwdG9yIGNvdW50IGZvciBleHRlcm5hbCBmb3JtYXRzLiIsICZtZW1iZXJz
LAorICAgICAgICAiaHR0cDovL2FuZ2xlYnVnLmNvbS82MTQxIn07CisKKyAgICBGZWF0dXJlSW5m
byBzdXBwb3J0c1Byb3RlY3RlZE1lbW9yeSA9IHsKKyAgICAgICAgInN1cHBvcnRzUHJvdGVjdGVk
TWVtb3J5IiwgRmVhdHVyZUNhdGVnb3J5OjpWdWxrYW5GZWF0dXJlcywKKyAgICAgICAgIlZrRGV2
aWNlIHN1cHBvcnRzIHByb3RlY3RlZCBtZW1vcnkiLCAmbWVtYmVycywgImh0dHA6Ly9hbmdsZWJ1
Zy5jb20vMzk2NSJ9OworCisgICAgRmVhdHVyZUluZm8gc3VwcG9ydHNIb3N0UXVlcnlSZXNldCA9
IHsic3VwcG9ydHNIb3N0UXVlcnlSZXNldCIsIEZlYXR1cmVDYXRlZ29yeTo6VnVsa2FuRmVhdHVy
ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVmtEZXZpY2Ug
c3VwcG9ydHMgVktfRVhUX2hvc3RfcXVlcnlfcmVzZXQgZXh0ZW5zaW9uIiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZtZW1iZXJzLCAiaHR0cDovL2FuZ2xlYnVn
LmNvbS82NjkyIn07CisKKyAgICBGZWF0dXJlSW5mbyBzdXBwb3J0c1N1cmZhY2VDYXBhYmlsaXRp
ZXMyRXh0ZW5zaW9uID0geworICAgICAgICAic3VwcG9ydHNTdXJmYWNlQ2FwYWJpbGl0aWVzMkV4
dGVuc2lvbiIsCisgICAgICAgIEZlYXR1cmVDYXRlZ29yeTo6VnVsa2FuRmVhdHVyZXMsCisgICAg
ICAgICJWa0luc3RhbmNlIHN1cHBvcnRzIHRoZSBWS19LSFJfZ2V0X3N1cmZhY2VfY2FwYWJpbGl0
aWVzMiBleHRlbnNpb24iLAorICAgICAgICAmbWVtYmVycywKKyAgICB9OworCisgICAgRmVhdHVy
ZUluZm8gc3VwcG9ydHNTdXJmYWNlUHJvdGVjdGVkQ2FwYWJpbGl0aWVzRXh0ZW5zaW9uID0gewor
ICAgICAgICAic3VwcG9ydHNTdXJmYWNlUHJvdGVjdGVkQ2FwYWJpbGl0aWVzRXh0ZW5zaW9uIiwK
KyAgICAgICAgRmVhdHVyZUNhdGVnb3J5OjpWdWxrYW5GZWF0dXJlcywKKyAgICAgICAgIlZrSW5z
dGFuY2Ugc3VwcG9ydHMgdGhlIFZLX0tIUl9zdXJmYWNlX3Byb3RlY3RlZF9jYXBhYmlsaXRpZXMg
ZXh0ZW5zaW9uIiwKKyAgICAgICAgJm1lbWJlcnMsCisgICAgfTsKKworICAgIEZlYXR1cmVJbmZv
IHN1cHBvcnRzU3VyZmFjZWxlc3NRdWVyeUV4dGVuc2lvbiA9IHsKKyAgICAgICAgInN1cHBvcnRz
U3VyZmFjZWxlc3NRdWVyeUV4dGVuc2lvbiIsCisgICAgICAgIEZlYXR1cmVDYXRlZ29yeTo6VnVs
a2FuRmVhdHVyZXMsCisgICAgICAgICJWa0luc3RhbmNlIHN1cHBvcnRzIHRoZSBWS19HT09HTEVf
c3VyZmFjZWxlc3NfcXVlcnkgZXh0ZW5zaW9uIiwKKyAgICAgICAgJm1lbWJlcnMsCisgICAgfTsK
KworICAgIEZlYXR1cmVJbmZvIHN1cHBvcnRzU3VyZmFjZVByb3RlY3RlZFN3YXBjaGFpbnMgPSB7
CisgICAgICAgICJzdXBwb3J0c1N1cmZhY2VQcm90ZWN0ZWRTd2FwY2hhaW5zIiwKKyAgICAgICAg
RmVhdHVyZUNhdGVnb3J5OjpWdWxrYW5GZWF0dXJlcywKKyAgICAgICAgIlZrU3VyZmFjZSBzdXBw
b3J0c1Byb3RlY3RlZCBmb3IgcHJvdGVjdGVkIHN3YXBjaGFpbnMiLAorICAgICAgICAmbWVtYmVy
cywKKyAgICB9OworCisgICAgRmVhdHVyZUluZm8gb3ZlcnJpZGVTdXJmYWNlRm9ybWF0UkdCOFRv
UkdCQTggPSB7CisgICAgICAgICJvdmVycmlkZVN1cmZhY2VGb3JtYXRSR0I4VG9SR0JBOCIsIEZl
YXR1cmVDYXRlZ29yeTo6VnVsa2FuV29ya2Fyb3VuZHMsCisgICAgICAgICJPdmVycmlkZSBzdXJm
YWNlIGZvcm1hdCBHTF9SR0I4IHRvIEdMX1JHQkE4IiwgJm1lbWJlcnMsICJodHRwOi8vYW5nbGVi
dWcuY29tLzY2NTEifTsKKworICAgIEZlYXR1cmVJbmZvIHN1cHBvcnRzU2hhcmVkUHJlc2VudGFi
bGVJbWFnZUV4dGVuc2lvbiA9IHsKKyAgICAgICAgInN1cHBvcnRzU2hhcmVkUHJlc2VudGFibGVJ
bWFnZUV4dGVuc2lvbiIsCisgICAgICAgIEZlYXR1cmVDYXRlZ29yeTo6VnVsa2FuRmVhdHVyZXMs
CisgICAgICAgICJWa1N1cmZhY2Ugc3VwcG9ydHMgdGhlIFZLX0tIUl9zaGFyZWRfcHJlc2VudGFi
bGVfaW1hZ2VzIGV4dGVuc2lvbiIsCisgICAgICAgICZtZW1iZXJzLAorICAgIH07CisKKyAgICBG
ZWF0dXJlSW5mbyBzdXBwb3J0c1NoYWRlckZyYW1lYnVmZmVyRmV0Y2ggPSB7CisgICAgICAgICJz
dXBwb3J0c1NoYWRlckZyYW1lYnVmZmVyRmV0Y2giLAorICAgICAgICBGZWF0dXJlQ2F0ZWdvcnk6
OlZ1bGthbkZlYXR1cmVzLAorICAgICAgICAiV2hldGhlciB0aGUgVnVsa2FuIGJhY2tlbmQgc3Vw
cG9ydHMgY29oZXJlbnQgZnJhbWVidWZmZXIgZmV0Y2giLAorICAgICAgICAmbWVtYmVycywKKyAg
ICB9OworCisgICAgRmVhdHVyZUluZm8gc3VwcG9ydHNTaGFkZXJGcmFtZWJ1ZmZlckZldGNoTm9u
Q29oZXJlbnQgPSB7CisgICAgICAgICJzdXBwb3J0c1NoYWRlckZyYW1lYnVmZmVyRmV0Y2hOb25D
b2hlcmVudCIsCisgICAgICAgIEZlYXR1cmVDYXRlZ29yeTo6VnVsa2FuRmVhdHVyZXMsCisgICAg
ICAgICJXaGV0aGVyIHRoZSBWdWxrYW4gYmFja2VuZCBzdXBwb3J0cyBub24tY29oZXJlbnQgZnJh
bWVidWZmZXIgZmV0Y2giLAorICAgICAgICAmbWVtYmVycywKKyAgICB9OworCisgICAgRmVhdHVy
ZUluZm8gc3VwcG9ydHNMb2NrU3VyZmFjZUV4dGVuc2lvbiA9IHsKKyAgICAgICAgInN1cHBvcnRz
TG9ja1N1cmZhY2VFeHRlbnNpb24iLAorICAgICAgICBGZWF0dXJlQ2F0ZWdvcnk6OlZ1bGthbkZl
YXR1cmVzLAorICAgICAgICAiU3VyZmFjZSBzdXBwb3J0cyB0aGUgRUdMX0tIUl9sb2NrX3N1cmZh
Y2UzIGV4dGVuc2lvbiIsCisgICAgICAgICZtZW1iZXJzLAorICAgIH07CisKKyAgICBGZWF0dXJl
SW5mbyBzd2FwYnVmZmVyc09uRmx1c2hPckZpbmlzaFdpdGhTaW5nbGVCdWZmZXIgPSB7CisgICAg
ICAgICJzd2FwYnVmZmVyc09uRmx1c2hPckZpbmlzaFdpdGhTaW5nbGVCdWZmZXIiLCBGZWF0dXJl
Q2F0ZWdvcnk6OlZ1bGthbkZlYXR1cmVzLAorICAgICAgICAiQnlwYXNzIGRlZmVycmVkRmx1c2gg
d2l0aCBjYWxsaW5nIHN3YXBidWZmZXJzIG9uIGZsdXNoIG9yIGZpbmlzaCB3aGVuIGluIFNoYXJl
ZCBQcmVzZW50ICIKKyAgICAgICAgIm1vZGUiLAorICAgICAgICAmbWVtYmVycywgImh0dHA6Ly9h
bmdsZWJ1Zy5jb20vNjg3OCJ9OworCisgICAgRmVhdHVyZUluZm8gZW11bGF0ZURpdGhlcmluZyA9
IHsiZW11bGF0ZURpdGhlcmluZyIsIEZlYXR1cmVDYXRlZ29yeTo6VnVsa2FuRmVhdHVyZXMsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRW11bGF0ZSBPcGVuR0wgZGl0aGVy
aW5nIiwgJm1lbWJlcnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaHR0
cDovL2FuZ2xlYnVnLmNvbS82NzU1In07CisKKyAgICBGZWF0dXJlSW5mbyBlbXVsYXRlQWR2YW5j
ZWRCbGVuZEVxdWF0aW9ucyA9IHsKKyAgICAgICAgImVtdWxhdGVBZHZhbmNlZEJsZW5kRXF1YXRp
b25zIiwgRmVhdHVyZUNhdGVnb3J5OjpWdWxrYW5GZWF0dXJlcywKKyAgICAgICAgIkVtdWxhdGUg
R0xfS0hSX2JsZW5kX2VxdWF0aW9uX2FkdmFuY2VkIiwgJm1lbWJlcnMsICJodHRwOi8vYW5nbGVi
dWcuY29tLzM1ODYifTsKKworICAgIEZlYXR1cmVJbmZvIGJvdHRvbUxlZnRPcmlnaW5QcmVzZW50
UmVnaW9uUmVjdGFuZ2xlcyA9IHsKKyAgICAgICAgImJvdHRvbUxlZnRPcmlnaW5QcmVzZW50UmVn
aW9uUmVjdGFuZ2xlcyIsCisgICAgICAgIEZlYXR1cmVDYXRlZ29yeTo6VnVsa2FuV29ya2Fyb3Vu
ZHMsCisgICAgICAgICJPbiBzb21lIHBsYXRmb3JtcyBwcmVzZW50IHJlZ2lvbiByZWN0YW5nbGVz
IGFyZSBleHBlY3RlZCB0byBoYXZlIGEgYm90dG9tLWxlZnQgb3JpZ2luLCAiCisgICAgICAgICJp
bnN0ZWFkIG9mIHRvcC1sZWZ0IG9yaWdpbiBhcyBmcm9tIHNwZWMiLAorICAgICAgICAmbWVtYmVy
cywKKyAgICB9OworCisgICAgRmVhdHVyZUluZm8gZm9yY2VTdWJtaXRJbW11dGFibGVUZXh0dXJl
VXBkYXRlcyA9IHsKKyAgICAgICAgImZvcmNlU3VibWl0SW1tdXRhYmxlVGV4dHVyZVVwZGF0ZXMi
LCBGZWF0dXJlQ2F0ZWdvcnk6OlZ1bGthbkFwcFdvcmthcm91bmRzLAorICAgICAgICAiRm9yY2Ug
c3VibWl0IHVwZGF0ZXMgdG8gaW1tdXRhYmxlIHRleHR1cmVzIiwgJm1lbWJlcnMsICJodHRwOi8v
YW5nbGVidWcuY29tLzY5MjkifTsKKworICAgIEZlYXR1cmVJbmZvIHJldGFpblNQSVJWRGVidWdJ
bmZvID0geyJyZXRhaW5TUElSVkRlYnVnSW5mbyIsIEZlYXR1cmVDYXRlZ29yeTo6VnVsa2FuRmVh
dHVyZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJldGFpbiBk
ZWJ1ZyBpbmZvIGluIFNQSVItViBibG9iLiIsICZtZW1iZXJzLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJodHRwOi8vYW5nbGVidWcuY29tLzU5MDEifTsKKworICAg
IEZlYXR1cmVJbmZvIGNyZWF0ZVBpcGVsaW5lRHVyaW5nTGluayA9IHsKKyAgICAgICAgImNyZWF0
ZVBpcGVsaW5lRHVyaW5nTGluayIsIEZlYXR1cmVDYXRlZ29yeTo6VnVsa2FuRmVhdHVyZXMsCisg
ICAgICAgICJDcmVhdGUgcGlwZWxpbmUgd2l0aCBkZWZhdWx0IHN0YXRlIGR1cmluZyBnbExpbmtQ
cm9ncmFtIiwgJm1lbWJlcnMsCisgICAgICAgICJodHRwOi8vYW5nbGVidWcuY29tLzcwNDYifTsK
KworICAgIEZlYXR1cmVJbmZvIHByZWZlckRldmljZUxvY2FsTWVtb3J5SG9zdFZpc2libGUgPSB7
CisgICAgICAgICJwcmVmZXJEZXZpY2VMb2NhbE1lbW9yeUhvc3RWaXNpYmxlIiwgRmVhdHVyZUNh
dGVnb3J5OjpWdWxrYW5GZWF0dXJlcywKKyAgICAgICAgIlByZWZlciBhZGRpbmcgSE9TVF9WSVNJ
QkxFIGZsYWcgZm9yIERFVklDRV9MT0NBTCBtZW1vcnkgd2hlbiBwaWNraW5nIG1lbW9yeSB0eXBl
cyIsCisgICAgICAgICZtZW1iZXJzLCAiaHR0cDovL2FuZ2xlYnVnLmNvbS83MDQ3In07CisKKyAg
ICBGZWF0dXJlSW5mbyBzdXBwb3J0c0ZyYWdtZW50U2hhZGluZ1JhdGUgPSB7CisgICAgICAgICJz
dXBwb3J0c0ZyYWdtZW50U2hhZGluZ1JhdGUiLCBGZWF0dXJlQ2F0ZWdvcnk6OlZ1bGthbkZlYXR1
cmVzLAorICAgICAgICAiVmtEZXZpY2Ugc3VwcG9ydHMgVktfS0hSX2ZyYWdtZW50X3NoYWRpbmdf
cmF0ZSBleHRlbnNpb24iLCAmbWVtYmVycywKKyAgICAgICAgImh0dHA6Ly9hbmdsZWJ1Zy5jb20v
NzE3MiJ9OworfTsKKworaW5saW5lIEZlYXR1cmVzVms6OkZlYXR1cmVzVmsoKSAgPSBkZWZhdWx0
OworaW5saW5lIEZlYXR1cmVzVms6On5GZWF0dXJlc1ZrKCkgPSBkZWZhdWx0OworCit9ICAvLyBu
YW1lc3BhY2UgYW5nbGUKKworI2VuZGlmICAvLyBBTkdMRV9QTEFURk9STV9GRUFUVVJFU1ZLX0hf
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9pbmNsdWRlL3BsYXRmb3JtL0Zy
b250ZW5kRmVhdHVyZXMuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL2luY2x1ZGUvcGxhdGZv
cm0vRnJvbnRlbmRGZWF0dXJlcy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNGNl
ZTBiNDhmNzI3NDRjZDM1OTVhNzg4YTUyZGQzYWFlMjU3OWJiLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL2luY2x1
ZGUvcGxhdGZvcm0vRnJvbnRlbmRGZWF0dXJlcy5oCisrKyAvZGV2L251bGwKQEAgLTEsOTMgKzAs
MCBAQAotLy8KLS8vIENvcHlyaWdodCAyMDE2IFRoZSBBTkdMRSBQcm9qZWN0IEF1dGhvcnMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0vLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5l
ZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi0vLyBmb3VuZCBpbiB0aGUgTElD
RU5TRSBmaWxlLgotLy8KLQotLy8gRnJvbnRlbmRGZWF0dXJlcy5oOiBGZWF0dXJlcy93b3JrYXJv
dW5kcyBmb3IgZHJpdmVyIGJ1Z3MgYW5kIG90aGVyIGJlaGF2aW9ycyBzZWVuCi0vLyBvbiBhbGwg
cGxhdGZvcm1zLgotCi0jaWZuZGVmIEFOR0xFX1BMQVRGT1JNX0ZST05URU5ERkVBVFVSRVNfSF8K
LSNkZWZpbmUgQU5HTEVfUExBVEZPUk1fRlJPTlRFTkRGRUFUVVJFU19IXwotCi0jaW5jbHVkZSAi
cGxhdGZvcm0vRmVhdHVyZS5oIgotCi1uYW1lc3BhY2UgYW5nbGUKLXsKLQotc3RydWN0IEZyb250
ZW5kRmVhdHVyZXMgOiBhbmdsZTo6RmVhdHVyZVNldEJhc2UKLXsKLSAgICBGcm9udGVuZEZlYXR1
cmVzKCk7Ci0gICAgfkZyb250ZW5kRmVhdHVyZXMoKTsKLQotICAgIC8vIEZvcmNlIHRoZSBjb250
ZXh0IHRvIGJlIGxvc3QgKHZpYSBLSFJfcm9idXN0bmVzcykgaWYgYSBHTF9PVVRfT0ZfTUVNT1JZ
IGVycm9yIG9jY3Vycy4gVGhlCi0gICAgLy8gZHJpdmVyIG1heSBiZSBpbiBhbiBpbmNvbnNpc3Rl
bnQgc3RhdGUgaWYgdGhpcyBoYXBwZW5zLCBhbmQgc29tZSB1c2VycyBvZiBBTkdMRSByZWx5IG9u
IHRoaXMKLSAgICAvLyBub3RpZmljYXRpb24gdG8gcHJldmVudCBmdXJ0aGVyIGV4ZWN1dGlvbi4K
LSAgICBhbmdsZTo6RmVhdHVyZSBsb3NlQ29udGV4dE9uT3V0T2ZNZW1vcnkgPSB7Ci0gICAgICAg
ICJsb3NlX2NvbnRleHRfb25fb3V0X29mX21lbW9yeSIsIGFuZ2xlOjpGZWF0dXJlQ2F0ZWdvcnk6
OkZyb250ZW5kV29ya2Fyb3VuZHMsCi0gICAgICAgICJTb21lIHVzZXJzIHJlbHkgb24gYSBsb3N0
IGNvbnRleHQgbm90aWZpY2F0aW9uIGlmIGEgR0xfT1VUX09GX01FTU9SWSAiCi0gICAgICAgICJl
cnJvciBvY2N1cnMiLAotICAgICAgICAmbWVtYmVyc307Ci0KLSAgICAvLyBQcm9ncmFtIGJpbmFy
aWVzIGRvbid0IGNvbnRhaW4gdHJhbnNmb3JtIGZlZWRiYWNrIHZhcnlpbmdzIG9uIFF1YWxjb21t
IEdQVXMuCi0gICAgLy8gV29yayBhcm91bmQgdGhpcyBieSBkaXNhYmxpbmcgdGhlIHByb2dyYW0g
Y2FjaGUgZm9yIHByb2dyYW1zIHdpdGggdHJhbnNmb3JtIGZlZWRiYWNrLgotICAgIGFuZ2xlOjpG
ZWF0dXJlIGRpc2FibGVQcm9ncmFtQ2FjaGluZ0ZvclRyYW5zZm9ybUZlZWRiYWNrID0gewotICAg
ICAgICAiZGlzYWJsZV9wcm9ncmFtX2NhY2hpbmdfZm9yX3RyYW5zZm9ybV9mZWVkYmFjayIsCi0g
ICAgICAgIGFuZ2xlOjpGZWF0dXJlQ2F0ZWdvcnk6OkZyb250ZW5kV29ya2Fyb3VuZHMsCi0gICAg
ICAgICJPbiBzb21lIEdQVXMsIHByb2dyYW0gYmluYXJpZXMgZG9uJ3QgY29udGFpbiB0cmFuc2Zv
cm0gZmVlZGJhY2sgdmFyeWluZ3MiLCAmbWVtYmVyc307Ci0KLSAgICBhbmdsZTo6RmVhdHVyZSBz
Y2FsYXJpemVWZWNBbmRNYXRDb25zdHJ1Y3RvckFyZ3MgPSB7Ci0gICAgICAgICJzY2FsYXJpemVf
dmVjX2FuZF9tYXRfY29uc3RydWN0b3JfYXJncyIsIGFuZ2xlOjpGZWF0dXJlQ2F0ZWdvcnk6OkZy
b250ZW5kV29ya2Fyb3VuZHMsCi0gICAgICAgICJBbHdheXMgcmV3cml0ZSB2ZWMvbWF0IGNvbnN0
cnVjdG9ycyB0byBiZSBjb25zaXN0ZW50IiwgJm1lbWJlcnMsCi0gICAgICAgICJodHRwOi8vY3Ji
dWcuY29tLzExNjU3NTEifTsKLQotICAgIC8vIERpc2FibGUgc3VwcG9ydCBmb3IgR0xfT0VTX2dl
dF9wcm9ncmFtX2JpbmFyeQotICAgIGFuZ2xlOjpGZWF0dXJlIGRpc2FibGVQcm9ncmFtQmluYXJ5
ID0gewotICAgICAgICAiZGlzYWJsZV9wcm9ncmFtX2JpbmFyeSIsIGFuZ2xlOjpGZWF0dXJlQ2F0
ZWdvcnk6OkZyb250ZW5kRmVhdHVyZXMsCi0gICAgICAgICJEaXNhYmxlIHN1cHBvcnQgZm9yIEdM
X09FU19nZXRfcHJvZ3JhbV9iaW5hcnkiLCAmbWVtYmVycywgImh0dHA6Ly9hbmdsZWJ1Zy5jb20v
NTAwNyJ9OwotCi0gICAgLy8gQWxsb3cgZGlzYWJsaW5nIG9mIEdMX0VYVF90ZXh0dXJlX2ZpbHRl
cl9hbmlzb3Ryb3BpYyB0aHJvdWdoIGEgcnVudGltZSBmZWF0dXJlIGZvcgotICAgIC8vIHBlcmZv
cm1hbmNlIGNvbXBhcmlzb25zLgotICAgIGFuZ2xlOjpGZWF0dXJlIGRpc2FibGVBbmlzb3Ryb3Bp
Y0ZpbHRlcmluZyA9IHsKLSAgICAgICAgImRpc2FibGVfYW5pc290cm9waWNfZmlsdGVyaW5nIiwg
YW5nbGU6OkZlYXR1cmVDYXRlZ29yeTo6RnJvbnRlbmRXb3JrYXJvdW5kcywKLSAgICAgICAgIkRp
c2FibGUgc3VwcG9ydCBmb3IgYW5pc290cm9waWMgZmlsdGVyaW5nIiwgJm1lbWJlcnN9OwotCi0g
ICAgLy8gV2UgY2FuIHVzZSB0aGlzIGZlYXR1cmUgdG8gb3ZlcnJpZGUgY29tcHJlc3NlZCBmb3Jt
YXQgc3VwcG9ydCBmb3IgcG9ydGFiaWxpdHkuCi0gICAgYW5nbGU6OkZlYXR1cmUgYWxsb3dDb21w
cmVzc2VkRm9ybWF0cyA9IHsiYWxsb3dfY29tcHJlc3NlZF9mb3JtYXRzIiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZ2xlOjpGZWF0dXJlQ2F0ZWdvcnk6
OkZyb250ZW5kV29ya2Fyb3VuZHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiQWxsb3cgY29tcHJlc3NlZCBmb3JtYXRzIiwgJm1lbWJlcnN9OwotCi0gICAg
YW5nbGU6OkZlYXR1cmUgY2FwdHVyZUxpbWl0cyA9IHsiZW5hYmxlX2NhcHR1cmVfbGltaXRzIiwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZ2xlOjpGZWF0dXJlQ2F0ZWdv
cnk6OkZyb250ZW5kRmVhdHVyZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiU2V0IHRoZSBjb250ZXh0IGxpbWl0cyBsaWtlIGZyYW1lIGNhcHR1cmluZyB3YXMgZW5hYmxl
ZCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbWVtYmVycywgImh0dHA6
Ly9hbmdsZWJ1Zy5jb20vNTc1MCJ9OwotCi0gICAgLy8gV2hldGhlciB3ZSBzaG91bGQgY29tcHJl
c3MgcGlwZWxpbmUgY2FjaGUgaW4gdGhyZWFkIHBvb2wgYmVmb3JlIGl0J3Mgc3RvcmVkIGluIGJs
b2IgY2FjaGUuCi0gICAgLy8gaHR0cDovL2FuZ2xlYnVnLmNvbS80NzIyCi0gICAgYW5nbGU6OkZl
YXR1cmUgZW5hYmxlQ29tcHJlc3NpbmdQaXBlbGluZUNhY2hlSW5UaHJlYWRQb29sID0gewotICAg
ICAgICAiZW5hYmxlQ29tcHJlc3NpbmdQaXBlbGluZUNhY2hlSW5UaHJlYWRQb29sIiwgYW5nbGU6
OkZlYXR1cmVDYXRlZ29yeTo6RnJvbnRlbmRXb3JrYXJvdW5kcywKLSAgICAgICAgIkVuYWJsZSBj
b21wcmVzc2luZyBwaXBlbGluZSBjYWNoZSBpbiB0aHJlYWQgcG9vbC4iLCAmbWVtYmVycywgImh0
dHA6Ly9hbmdsZWJ1Zy5jb20vNDcyMiJ9OwotCi0gICAgLy8gRm9yY2VzIG9uIHJvYnVzdCByZXNv
dXJjZSBpbml0LiBVc2VmdWwgZm9yIHNvbWUgdGVzdHMgdG8gYXZvaWQgdW5kZWZpbmVkIHZhbHVl
cy4KLSAgICBhbmdsZTo6RmVhdHVyZSBmb3JjZVJvYnVzdFJlc291cmNlSW5pdCA9IHsKLSAgICAg
ICAgImZvcmNlUm9idXN0UmVzb3VyY2VJbml0IiwgYW5nbGU6OkZlYXR1cmVDYXRlZ29yeTo6RnJv
bnRlbmRGZWF0dXJlcywKLSAgICAgICAgIkZvcmNlLWVuYWJsZSByb2J1c3QgcmVzb3VyY2UgaW5p
dCIsICZtZW1iZXJzLCAiaHR0cDovL2FuZ2xlYnVnLmNvbS82MDQxIn07Ci0KLSAgICAvLyBGb3Jj
ZXMgb24gc2hhZGVyIHZhcmlhYmxlIGluaXQgdG8gYXZvaWQgdW5kZWZpbmVkIHZhbHVlcyBpbiB0
ZXN0cy4gVGhpcyBmZWF0dXJlIGlzIGVuYWJsZWQKLSAgICAvLyBmb3IgV2ViR0wgYW5kIGZyYW1l
IGNhcHR1cmUsIHdoaWNoIGJvdGggcmVxdWlyZSBkZXRlcm1pbmlzdGljIHJlc3VsdHMuCi0gICAg
YW5nbGU6OkZlYXR1cmUgZm9yY2VJbml0U2hhZGVyVmFyaWFibGVzID0gewotICAgICAgICAiZm9y
Y2VJbml0U2hhZGVyVmFyaWFibGVzIiwgYW5nbGU6OkZlYXR1cmVDYXRlZ29yeTo6RnJvbnRlbmRG
ZWF0dXJlcywKLSAgICAgICAgIkZvcmNlLWVuYWJsZSBzaGFkZXIgdmFyaWFibGUgaW5pdGlhbGl6
YXRpb24iLCAmbWVtYmVyc307Ci0KLSAgICBhbmdsZTo6RmVhdHVyZSBlbmFibGVQcm9ncmFtQmlu
YXJ5Rm9yQ2FwdHVyZSA9IHsKLSAgICAgICAgImVuYWJsZVByb2dyYW1CaW5hcnlGb3JDYXB0dXJl
IiwgYW5nbGU6OkZlYXR1cmVDYXRlZ29yeTo6RnJvbnRlbmRGZWF0dXJlcywKLSAgICAgICAgIkV2
ZW4gaWYgRnJhbWVDYXB0dXJlIGlzIGVuYWJsZWQsIGVuYWJsZSBHTF9PRVNfZ2V0X3Byb2dyYW1f
YmluYXJ5IiwgJm1lbWJlcnMsCi0gICAgICAgICJodHRwOi8vYW5nbGVidWcuY29tLzU2NTgifTsK
LX07Ci0KLWlubGluZSBGcm9udGVuZEZlYXR1cmVzOjpGcm9udGVuZEZlYXR1cmVzKCkgID0gZGVm
YXVsdDsKLWlubGluZSBGcm9udGVuZEZlYXR1cmVzOjp+RnJvbnRlbmRGZWF0dXJlcygpID0gZGVm
YXVsdDsKLQotfSAgLy8gbmFtZXNwYWNlIGFuZ2xlCi0KLSNlbmRpZiAgLy8gQU5HTEVfUExBVEZP
Uk1fRlJPTlRFTkRGRUFUVVJFU19IXwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5H
TEUvaW5jbHVkZS9wbGF0Zm9ybS9Gcm9udGVuZEZlYXR1cmVzX2F1dG9nZW4uaCBiL1NvdXJjZS9U
aGlyZFBhcnR5L0FOR0xFL2luY2x1ZGUvcGxhdGZvcm0vRnJvbnRlbmRGZWF0dXJlc19hdXRvZ2Vu
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYjY0ZjI5MGIzZDk5MmFiZGNhYjVlOTA2MDkyZmMwNDM5YjM2N2YzNwot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL2luY2x1ZGUvcGxhdGZv
cm0vRnJvbnRlbmRGZWF0dXJlc19hdXRvZ2VuLmgKQEAgLTAsMCArMSw5MSBAQAorLy8gR0VORVJB
VEVEIEZJTEUgLSBETyBOT1QgRURJVC4KKy8vIEdlbmVyYXRlZCBieSBnZW5fZmVhdHVyZXMucHkg
dXNpbmcgZGF0YSBmcm9tIGZyb250ZW5kX2ZlYXR1cmVzLmpzb24uCisvLworLy8gQ29weXJpZ2h0
IDIwMjIgVGhlIEFOR0xFIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8v
IFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vu
c2UgdGhhdCBjYW4gYmUKKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisvLworLy8gRnJv
bnRlbmRGZWF0dXJlc19hdXRvZ2VuLmg6IEZlYXR1cmVzL3dvcmthcm91bmRzIGZvciBkcml2ZXIg
YnVncyBhbmQgb3RoZXIgYmVoYXZpb3JzIHNlZW4KKy8vIG9uIGFsbCBwbGF0Zm9ybXMuCisKKyNp
Zm5kZWYgQU5HTEVfUExBVEZPUk1fRlJPTlRFTkRGRUFUVVJFU19IXworI2RlZmluZSBBTkdMRV9Q
TEFURk9STV9GUk9OVEVOREZFQVRVUkVTX0hfCisKKyNpbmNsdWRlICJwbGF0Zm9ybS9GZWF0dXJl
LmgiCisKK25hbWVzcGFjZSBhbmdsZQoreworCitzdHJ1Y3QgRnJvbnRlbmRGZWF0dXJlcyA6IEZl
YXR1cmVTZXRCYXNlCit7CisgICAgRnJvbnRlbmRGZWF0dXJlcygpOworICAgIH5Gcm9udGVuZEZl
YXR1cmVzKCk7CisKKyAgICBGZWF0dXJlSW5mbyBsb3NlQ29udGV4dE9uT3V0T2ZNZW1vcnkgPSB7
CisgICAgICAgICJsb3NlQ29udGV4dE9uT3V0T2ZNZW1vcnkiLAorICAgICAgICBGZWF0dXJlQ2F0
ZWdvcnk6OkZyb250ZW5kV29ya2Fyb3VuZHMsCisgICAgICAgICJTb21lIHVzZXJzIHJlbHkgb24g
YSBsb3N0IGNvbnRleHQgbm90aWZpY2F0aW9uIGlmIGEgR0xfT1VUX09GX01FTU9SWSBlcnJvciBv
Y2N1cnMiLAorICAgICAgICAmbWVtYmVycywKKyAgICB9OworCisgICAgRmVhdHVyZUluZm8gZGlz
YWJsZVByb2dyYW1DYWNoaW5nRm9yVHJhbnNmb3JtRmVlZGJhY2sgPSB7CisgICAgICAgICJkaXNh
YmxlUHJvZ3JhbUNhY2hpbmdGb3JUcmFuc2Zvcm1GZWVkYmFjayIsCisgICAgICAgIEZlYXR1cmVD
YXRlZ29yeTo6RnJvbnRlbmRXb3JrYXJvdW5kcywKKyAgICAgICAgIk9uIHNvbWUgR1BVcywgcHJv
Z3JhbSBiaW5hcmllcyBkb24ndCBjb250YWluIHRyYW5zZm9ybSBmZWVkYmFjayB2YXJ5aW5ncyIs
CisgICAgICAgICZtZW1iZXJzLAorICAgIH07CisKKyAgICBGZWF0dXJlSW5mbyBzY2FsYXJpemVW
ZWNBbmRNYXRDb25zdHJ1Y3RvckFyZ3MgPSB7CisgICAgICAgICJzY2FsYXJpemVWZWNBbmRNYXRD
b25zdHJ1Y3RvckFyZ3MiLCBGZWF0dXJlQ2F0ZWdvcnk6OkZyb250ZW5kV29ya2Fyb3VuZHMsCisg
ICAgICAgICJBbHdheXMgcmV3cml0ZSB2ZWMvbWF0IGNvbnN0cnVjdG9ycyB0byBiZSBjb25zaXN0
ZW50IiwgJm1lbWJlcnMsCisgICAgICAgICJodHRwOi8vY3JidWcuY29tLzExNjU3NTEifTsKKwor
ICAgIEZlYXR1cmVJbmZvIGRpc2FibGVQcm9ncmFtQmluYXJ5ID0geyJkaXNhYmxlUHJvZ3JhbUJp
bmFyeSIsIEZlYXR1cmVDYXRlZ29yeTo6RnJvbnRlbmRGZWF0dXJlcywKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiRGlzYWJsZSBzdXBwb3J0IGZvciBHTF9PRVNfZ2V0
X3Byb2dyYW1fYmluYXJ5IiwgJm1lbWJlcnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgImh0dHA6Ly9hbmdsZWJ1Zy5jb20vNTAwNyJ9OworCisgICAgRmVhdHVyZUlu
Zm8gZGlzYWJsZUFuaXNvdHJvcGljRmlsdGVyaW5nID0geworICAgICAgICAiZGlzYWJsZUFuaXNv
dHJvcGljRmlsdGVyaW5nIiwKKyAgICAgICAgRmVhdHVyZUNhdGVnb3J5OjpGcm9udGVuZFdvcmth
cm91bmRzLAorICAgICAgICAiRGlzYWJsZSBzdXBwb3J0IGZvciBhbmlzb3Ryb3BpYyBmaWx0ZXJp
bmciLAorICAgICAgICAmbWVtYmVycywKKyAgICB9OworCisgICAgRmVhdHVyZUluZm8gYWxsb3dD
b21wcmVzc2VkRm9ybWF0cyA9IHsKKyAgICAgICAgImFsbG93Q29tcHJlc3NlZEZvcm1hdHMiLAor
ICAgICAgICBGZWF0dXJlQ2F0ZWdvcnk6OkZyb250ZW5kV29ya2Fyb3VuZHMsCisgICAgICAgICJB
bGxvdyBjb21wcmVzc2VkIGZvcm1hdHMiLAorICAgICAgICAmbWVtYmVycywKKyAgICB9OworCisg
ICAgRmVhdHVyZUluZm8gZW5hYmxlQ2FwdHVyZUxpbWl0cyA9IHsiZW5hYmxlQ2FwdHVyZUxpbWl0
cyIsIEZlYXR1cmVDYXRlZ29yeTo6RnJvbnRlbmRGZWF0dXJlcywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJTZXQgdGhlIGNvbnRleHQgbGltaXRzIGxpa2UgZnJhbWUg
Y2FwdHVyaW5nIHdhcyBlbmFibGVkIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICZtZW1iZXJzLCAiaHR0cDovL2FuZ2xlYnVnLmNvbS81NzUwIn07CisKKyAgICBGZWF0
dXJlSW5mbyBlbmFibGVDb21wcmVzc2luZ1BpcGVsaW5lQ2FjaGVJblRocmVhZFBvb2wgPSB7Cisg
ICAgICAgICJlbmFibGVDb21wcmVzc2luZ1BpcGVsaW5lQ2FjaGVJblRocmVhZFBvb2wiLCBGZWF0
dXJlQ2F0ZWdvcnk6OkZyb250ZW5kV29ya2Fyb3VuZHMsCisgICAgICAgICJFbmFibGUgY29tcHJl
c3NpbmcgcGlwZWxpbmUgY2FjaGUgaW4gdGhyZWFkIHBvb2wuIiwgJm1lbWJlcnMsICJodHRwOi8v
YW5nbGVidWcuY29tLzQ3MjIifTsKKworICAgIEZlYXR1cmVJbmZvIGZvcmNlUm9idXN0UmVzb3Vy
Y2VJbml0ID0geworICAgICAgICAiZm9yY2VSb2J1c3RSZXNvdXJjZUluaXQiLCBGZWF0dXJlQ2F0
ZWdvcnk6OkZyb250ZW5kRmVhdHVyZXMsCisgICAgICAgICJGb3JjZS1lbmFibGUgcm9idXN0IHJl
c291cmNlIGluaXQiLCAmbWVtYmVycywgImh0dHA6Ly9hbmdsZWJ1Zy5jb20vNjA0MSJ9OworCisg
ICAgRmVhdHVyZUluZm8gZm9yY2VJbml0U2hhZGVyVmFyaWFibGVzID0geworICAgICAgICAiZm9y
Y2VJbml0U2hhZGVyVmFyaWFibGVzIiwKKyAgICAgICAgRmVhdHVyZUNhdGVnb3J5OjpGcm9udGVu
ZEZlYXR1cmVzLAorICAgICAgICAiRm9yY2UtZW5hYmxlIHNoYWRlciB2YXJpYWJsZSBpbml0aWFs
aXphdGlvbiIsCisgICAgICAgICZtZW1iZXJzLAorICAgIH07CisKKyAgICBGZWF0dXJlSW5mbyBl
bmFibGVQcm9ncmFtQmluYXJ5Rm9yQ2FwdHVyZSA9IHsKKyAgICAgICAgImVuYWJsZVByb2dyYW1C
aW5hcnlGb3JDYXB0dXJlIiwgRmVhdHVyZUNhdGVnb3J5OjpGcm9udGVuZEZlYXR1cmVzLAorICAg
ICAgICAiRXZlbiBpZiBGcmFtZUNhcHR1cmUgaXMgZW5hYmxlZCwgZW5hYmxlIEdMX09FU19nZXRf
cHJvZ3JhbV9iaW5hcnkiLCAmbWVtYmVycywKKyAgICAgICAgImh0dHA6Ly9hbmdsZWJ1Zy5jb20v
NTY1OCJ9OworfTsKKworaW5saW5lIEZyb250ZW5kRmVhdHVyZXM6OkZyb250ZW5kRmVhdHVyZXMo
KSAgPSBkZWZhdWx0OworaW5saW5lIEZyb250ZW5kRmVhdHVyZXM6On5Gcm9udGVuZEZlYXR1cmVz
KCkgPSBkZWZhdWx0OworCit9ICAvLyBuYW1lc3BhY2UgYW5nbGUKKworI2VuZGlmICAvLyBBTkdM
RV9QTEFURk9STV9GUk9OVEVOREZFQVRVUkVTX0hfCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9BTkdMRS9pbmNsdWRlL3BsYXRmb3JtL1BsYXRmb3JtTWV0aG9kcy5oIGIvU291cmNlL1Ro
aXJkUGFydHkvQU5HTEUvaW5jbHVkZS9wbGF0Zm9ybS9QbGF0Zm9ybU1ldGhvZHMuaAppbmRleCA2
ZWRmNTU5MmFiODE4YzQyMmYzYjEzYzQwYWY1MTM4MzU0MzkwYmFmLi40OGVmMzM1Nzk2ZTY3MmYw
ZDM0NDgwZDRlOTE3NzY3YmQ3OGMwZThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9B
TkdMRS9pbmNsdWRlL3BsYXRmb3JtL1BsYXRmb3JtTWV0aG9kcy5oCisrKyBiL1NvdXJjZS9UaGly
ZFBhcnR5L0FOR0xFL2luY2x1ZGUvcGxhdGZvcm0vUGxhdGZvcm1NZXRob2RzLmgKQEAgLTIxNywy
MyArMjE3LDYgQEAgaW5saW5lIHZvaWQgRGVmYXVsdEhpc3RvZ3JhbVNwYXJzZShQbGF0Zm9ybU1l
dGhvZHMgKnBsYXRmb3JtLCBjb25zdCBjaGFyICpuYW1lLAogdXNpbmcgSGlzdG9ncmFtQm9vbGVh
bkZ1bmMgPSB2b2lkICgqKShQbGF0Zm9ybU1ldGhvZHMgKnBsYXRmb3JtLCBjb25zdCBjaGFyICpu
YW1lLCBib29sIHNhbXBsZSk7CiBpbmxpbmUgdm9pZCBEZWZhdWx0SGlzdG9ncmFtQm9vbGVhbihQ
bGF0Zm9ybU1ldGhvZHMgKnBsYXRmb3JtLCBjb25zdCBjaGFyICpuYW1lLCBib29sIHNhbXBsZSkg
e30KIAotLy8gQWxsb3dzIHVzIHRvIHByb2dyYW1hdGljYWxseSBvdmVycmlkZSBBTkdMRSdzIGRl
ZmF1bHQgd29ya2Fyb3VuZHMgZm9yIHRlc3RpbmcgcHVycG9zZXMuCi11c2luZyBPdmVycmlkZVdv
cmthcm91bmRzRDNERnVuYyA9IHZvaWQgKCopKFBsYXRmb3JtTWV0aG9kcyAqcGxhdGZvcm0sCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZ2xlOjpGZWF0dXJl
c0QzRCAqZmVhdHVyZXNEM0QpOwotaW5saW5lIHZvaWQgRGVmYXVsdE92ZXJyaWRlV29ya2Fyb3Vu
ZHNEM0QoUGxhdGZvcm1NZXRob2RzICpwbGF0Zm9ybSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGFuZ2xlOjpGZWF0dXJlc0QzRCAqZmVhdHVyZXNEM0QpCi17fQot
Ci11c2luZyBPdmVycmlkZUZlYXR1cmVzVmtGdW5jID0gdm9pZCAoKikoUGxhdGZvcm1NZXRob2Rz
ICpwbGF0Zm9ybSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmds
ZTo6RmVhdHVyZXNWayAqZmVhdHVyZXNWdWxrYW4pOwotaW5saW5lIHZvaWQgRGVmYXVsdE92ZXJy
aWRlRmVhdHVyZXNWayhQbGF0Zm9ybU1ldGhvZHMgKnBsYXRmb3JtLCBhbmdsZTo6RmVhdHVyZXNW
ayAqZmVhdHVyZXNWdWxrYW4pCi17fQotCi11c2luZyBPdmVycmlkZUZlYXR1cmVzTXRsRnVuYyA9
IHZvaWQgKCopKFBsYXRmb3JtTWV0aG9kcyAqcGxhdGZvcm0sCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGFuZ2xlOjpGZWF0dXJlc010bCAqZmVhdHVyZXNNZXRhbCk7
Ci1pbmxpbmUgdm9pZCBEZWZhdWx0T3ZlcnJpZGVGZWF0dXJlc010bChQbGF0Zm9ybU1ldGhvZHMg
KnBsYXRmb3JtLCBhbmdsZTo6RmVhdHVyZXNNdGwgKmZlYXR1cmVzTWV0YWwpCi17fQotCiAvLyBD
YWxsYmFjayBvbiBhIHN1Y2Nlc3NmdWwgcHJvZ3JhbSBsaW5rIHdpdGggdGhlIHByb2dyYW0gYmlu
YXJ5LiBDYW4gYmUgdXNlZCB0byBzdG9yZQogLy8gc2hhZGVycyB0byBkaXNrLiBLZXlzIGFyZSBh
IDE2MC1iaXQgU0hBLTEgaGFzaC4KIHVzaW5nIFByb2dyYW1LZXlUeXBlICAgPSBzdGQ6OmFycmF5
PHVpbnQ4X3QsIDIwPjsKQEAgLTI1Myw2ICsyMzYsMTMgQEAgdXNpbmcgUG9zdFdvcmtlclRhc2tG
dW5jICAgICAgICAgICAgICAgICAgICAgICAgICAgPSB2b2lkICgqKShQbGF0Zm9ybU1ldGhvZHMg
KnAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnVzZXJEYXRhKTsK
IGNvbnN0ZXhwciBQb3N0V29ya2VyVGFza0Z1bmMgRGVmYXVsdFBvc3RXb3JrZXJUYXNrID0gbnVs
bHB0cjsKIAorLy8gUGxhY2Vob2xkZXIgdmFsdWVzIHdoZXJlIGZlYXR1cmUgb3ZlcnJpZGUgY2Fs
bGJhY2tzIHVzZWQgdG8gYmUuICBUaGV5IGFyZSBkZXByZWNhdGVkIGluIGZhdm9yIG9mCisvLyBF
R0xfQU5HTEVfZmVhdHVyZV9jb250cm9sLiAgVGhlIHBsYWNlaG9sZGVycyBhcmUgdGhlcmUgdG8g
a2VlcCB0aGUgbGF5b3V0IG9mIHRoZSBQbGF0Zm9ybU1ldGhvZHMKKy8vIGNvbnN0YW50IHRvIHN1
cHBvcnQgZHJvcC1pbiByZXBsYWNlbWVudCBvZiBBTkdMRSdzIC5zbyBmaWxlcyBpbiBhcHBsaWNh
dGlvbnMgYnVpbHQgd2l0aCBhbiBvbGRlcgorLy8gaGVhZGVyLgordXNpbmcgUGxhY2Vob2xkZXJD
YWxsYmFja0Z1bmMgPSB2b2lkICgqKSguLi4pOworaW5saW5lIHZvaWQgRGVmYXVsdFBsYWNlaG9s
ZGVyQ2FsbGJhY2soLi4uKSB7fQorCiAvLyBQbGF0Zm9ybSBtZXRob2RzIGFyZSBlbnVtZXJhdGVk
IGhlcmUgb25jZS4KICNkZWZpbmUgQU5HTEVfUExBVEZPUk1fT1AoT1ApICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXAogICAgIE9QKGN1cnJlbnRUaW1lLCBDdXJyZW50VGltZSkg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCkBAIC0yNjcsMTAgKzI1NywxMCBAQCBj
b25zdGV4cHIgUG9zdFdvcmtlclRhc2tGdW5jIERlZmF1bHRQb3N0V29ya2VyVGFzayA9IG51bGxw
dHI7CiAgICAgT1AoaGlzdG9ncmFtRW51bWVyYXRpb24sIEhpc3RvZ3JhbUVudW1lcmF0aW9uKSAg
ICAgICAgICAgICAgIFwKICAgICBPUChoaXN0b2dyYW1TcGFyc2UsIEhpc3RvZ3JhbVNwYXJzZSkg
ICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIE9QKGhpc3RvZ3JhbUJvb2xlYW4sIEhpc3Rv
Z3JhbUJvb2xlYW4pICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgT1Aob3ZlcnJpZGVXb3Jr
YXJvdW5kc0QzRCwgT3ZlcnJpZGVXb3JrYXJvdW5kc0QzRCkgICAgICAgICAgIFwKLSAgICBPUChv
dmVycmlkZUZlYXR1cmVzVmssIE92ZXJyaWRlRmVhdHVyZXNWaykgICAgICAgICAgICAgICAgICAg
XAorICAgIE9QKHBsYWNlaG9sZGVyMSwgUGxhY2Vob2xkZXJDYWxsYmFjaykgICAgICAgICAgICAg
ICAgICAgICAgICBcCisgICAgT1AocGxhY2Vob2xkZXIyLCBQbGFjZWhvbGRlckNhbGxiYWNrKSAg
ICAgICAgICAgICAgICAgICAgICAgIFwKICAgICBPUChjYWNoZVByb2dyYW0sIENhY2hlUHJvZ3Jh
bSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIE9QKG92ZXJyaWRlRmVhdHVy
ZXNNdGwsIE92ZXJyaWRlRmVhdHVyZXNNdGwpICAgICAgICAgICAgICAgICBcCisgICAgT1AocGxh
Y2Vob2xkZXIzLCBQbGFjZWhvbGRlckNhbGxiYWNrKSAgICAgICAgICAgICAgICAgICAgICAgIFwK
ICAgICBPUChwb3N0V29ya2VyVGFzaywgUG9zdFdvcmtlclRhc2spCiAKICNkZWZpbmUgQU5HTEVf
UExBVEZPUk1fTUVUSE9EX0RFRihOYW1lLCBDYXBzTmFtZSkgQ2Fwc05hbWUjI0Z1bmMgTmFtZSA9
IERlZmF1bHQjI0NhcHNOYW1lOwpAQCAtMjk0LDYgKzI4NCwxMSBAQCBpbmxpbmUgUGxhdGZvcm1N
ZXRob2RzOjpQbGF0Zm9ybU1ldGhvZHMoKSA9IGRlZmF1bHQ7CiAvLyBTdWJ0cmFjdCBvbmUgdG8g
YWNjb3VudCBmb3IgdGhlIGNvbnRleHQgcG9pbnRlci4KIGNvbnN0ZXhwciB1bnNpZ25lZCBpbnQg
Z19OdW1QbGF0Zm9ybU1ldGhvZHMgPSAoc2l6ZW9mKFBsYXRmb3JtTWV0aG9kcykgLyBzaXplb2Yo
dWludHB0cl90KSkgLSAxOwogCisvLyBObyBmdXJ0aGVyIHVzZXMgb2YgcGxhdGZvcm0gbWV0aG9k
cyBpcyBhbGxvd2VkLiAgRUdMIGV4dGVuc2lvbnMgc2hvdWxkIGJlIHVzZWQgaW5zdGVhZC4gIFdo
aWxlCisvLyBtZXRob2RzIGFyZSBiZWluZyByZW1vdmVkLCB1c2UgUGxhY2Vob2xkZXJDYWxsYmFj
ayB0byBrZWVwIHRoZSBsYXlvdXQgb2YgUGxhdGZvcm1NZXRob2RzCisvLyBjb25zdGFudC4KK3N0
YXRpY19hc3NlcnQoZ19OdW1QbGF0Zm9ybU1ldGhvZHMgPT0gMTcsICJBdm9pZCBhZGRpbmcgbWV0
aG9kcyB0byBQbGF0Zm9ybU1ldGhvZHMiKTsKKwogI2RlZmluZSBBTkdMRV9QTEFURk9STV9NRVRI
T0RfU1RSSU5HKE5hbWUpICNOYW1lCiAjZGVmaW5lIEFOR0xFX1BMQVRGT1JNX01FVEhPRF9TVFJJ
TkcyKE5hbWUsIENhcHNOYW1lKSBBTkdMRV9QTEFURk9STV9NRVRIT0RfU1RSSU5HKE5hbWUpLAog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9pbmNsdWRlL3BsYXRmb3JtL2Qz
ZF9mZWF0dXJlcy5qc29uIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvaW5jbHVkZS9wbGF0Zm9y
bS9kM2RfZmVhdHVyZXMuanNvbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYzYyZjVkZWQ1MzNmYmJhMzZjOWYyNzM1
Zjc0MDg1NGM1YzlmOWE1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5H
TEUvaW5jbHVkZS9wbGF0Zm9ybS9kM2RfZmVhdHVyZXMuanNvbgpAQCAtMCwwICsxLDIwMyBAQAor
eworICAgICJkZXNjcmlwdGlvbiI6IFsKKyAgICAgICAgIkNvcHlyaWdodCAyMDIyIFRoZSBBTkdM
RSBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIiwKKyAgICAgICAgIlVzZSBv
ZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhh
dCBjYW4gYmUiLAorICAgICAgICAiZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4iLAorICAgICAg
ICAiIiwKKyAgICAgICAgImQzZF9mZWF0dXJlcy5qc29uOiBGZWF0dXJlcyBhbmQgd29ya2Fyb3Vu
ZHMgZm9yIEQzRCBkcml2ZXIgYnVncyBhbmQgb3RoZXIgaXNzdWVzLiIKKyAgICBdLAorICAgICJm
ZWF0dXJlcyI6IFsKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAibXJ0X3BlcmZfd29y
a2Fyb3VuZCIsCisgICAgICAgICAgICAiY2F0ZWdvcnkiOiAiV29ya2Fyb3VuZHMiLAorICAgICAg
ICAgICAgImRlc2NyaXB0aW9uIjogWworICAgICAgICAgICAgICAgICJTb21lIGRyaXZlcnMgaGF2
ZSBhIGJ1ZyB3aGVyZSB0aGV5IGlnbm9yZSBudWxsIHJlbmRlciB0YXJnZXRzIgorICAgICAgICAg
ICAgXQorICAgICAgICB9LAorCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogInNldF9k
YXRhX2Zhc3Rlcl90aGFuX2ltYWdlX3VwbG9hZCIsCisgICAgICAgICAgICAiY2F0ZWdvcnkiOiAi
V29ya2Fyb3VuZHMiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogWworICAgICAgICAgICAg
ICAgICJTZXQgZGF0YSBmYXN0ZXIgdGhhbiBpbWFnZSB1cGxvYWQiCisgICAgICAgICAgICBdCisg
ICAgICAgIH0sCisKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAiemVyb19tYXhfbG9k
X3dvcmthcm91bmQiLAorICAgICAgICAgICAgImNhdGVnb3J5IjogIldvcmthcm91bmRzIiwKKyAg
ICAgICAgICAgICJkZXNjcmlwdGlvbiI6IFsKKyAgICAgICAgICAgICAgICAiTWlzc2luZyBhbiBv
cHRpb24gdG8gZGlzYWJsZSBtaXBtYXBzIG9uIGEgbWlwbWFwcGVkIHRleHR1cmUiCisgICAgICAg
ICAgICBdCisgICAgICAgIH0sCisKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAidXNl
X2luc3RhbmNlZF9wb2ludF9zcHJpdGVfZW11bGF0aW9uIiwKKyAgICAgICAgICAgICJjYXRlZ29y
eSI6ICJXb3JrYXJvdW5kcyIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiBbCisgICAgICAg
ICAgICAgICAgIlNvbWUgRDNEMTEgcmVuZGVyZXJzIGRvIG5vdCBzdXBwb3J0IGdlb21ldHJ5IHNo
YWRlcnMgZm9yIHBvaW50c3ByaXRlIGVtdWxhdGlvbiIKKyAgICAgICAgICAgIF0KKyAgICAgICAg
fSwKKworICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJkZXB0aF9zdGVuY2lsX2JsaXRf
ZXh0cmFfY29weSIsCisgICAgICAgICAgICAiY2F0ZWdvcnkiOiAiV29ya2Fyb3VuZHMiLAorICAg
ICAgICAgICAgImRlc2NyaXB0aW9uIjogWworICAgICAgICAgICAgICAgICJCdWcgaW4gc29tZSBk
cml2ZXJzIHRyaWdnZXJzIGEgVERSIHdoZW4gdXNpbmcgQ29weVN1YnJlc291cmNlUmVnaW9uIGZy
b20gYSBzdGFnaW5nICIsCisgICAgICAgICAgICAgICAgInRleHR1cmUgdG8gYSBkZXB0aC9zdGVu
Y2lsIgorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJpc3N1ZSI6ICJodHRwOi8vYW5nbGVi
dWcuY29tLzE0NTIiCisgICAgICAgIH0sCisKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUi
OiAiZXhwYW5kX2ludGVnZXJfcG93X2V4cHJlc3Npb25zIiwKKyAgICAgICAgICAgICJjYXRlZ29y
eSI6ICJXb3JrYXJvdW5kcyIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiBbCisgICAgICAg
ICAgICAgICAgIlRoZSBITFNMIG9wdGltaXplciBoYXMgYSBidWcgd2l0aCBvcHRpbWl6aW5nICdw
b3cnIGluIGNlcnRhaW4gaW50ZWdlci12YWx1ZWQgZXhwcmVzc2lvbnMiCisgICAgICAgICAgICBd
CisgICAgICAgIH0sCisKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAiZmx1c2hfYWZ0
ZXJfZW5kaW5nX3RyYW5zZm9ybV9mZWVkYmFjayIsCisgICAgICAgICAgICAiY2F0ZWdvcnkiOiAi
V29ya2Fyb3VuZHMiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogWworICAgICAgICAgICAg
ICAgICJTb21lIGRyaXZlcnMgc29tZXRpbWVzIHdyaXRlIG91dC1vZi1vcmRlciByZXN1bHRzIHRv
IFN0cmVhbU91dCBidWZmZXJzIHdoZW4gdHJhbnNmb3JtICIsCisgICAgICAgICAgICAgICAgImZl
ZWRiYWNrIGlzIHVzZWQgdG8gcmVwZWF0ZWRseSB3cml0ZSB0byB0aGUgc2FtZSBidWZmZXIgcG9z
aXRpb25zIgorICAgICAgICAgICAgXQorICAgICAgICB9LAorCisgICAgICAgIHsKKyAgICAgICAg
ICAgICJuYW1lIjogImdldF9kaW1lbnNpb25zX2lnbm9yZXNfYmFzZV9sZXZlbCIsCisgICAgICAg
ICAgICAiY2F0ZWdvcnkiOiAiV29ya2Fyb3VuZHMiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9u
IjogWworICAgICAgICAgICAgICAgICJTb21lIGRyaXZlcnMgZG8gbm90IHRha2UgaW50byBhY2Nv
dW50IHRoZSBiYXNlIGxldmVsIG9mIHRoZSAiLAorICAgICAgICAgICAgICAgICJ0ZXh0dXJlIGlu
IHRoZSByZXN1bHRzIG9mIHRoZSBITFNMIEdldERpbWVuc2lvbnMgYnVpbHRpbiIKKyAgICAgICAg
ICAgIF0KKyAgICAgICAgfSwKKworICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJwcmVf
YWRkX3RleGVsX2ZldGNoX29mZnNldHMiLAorICAgICAgICAgICAgImNhdGVnb3J5IjogIldvcmth
cm91bmRzIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6IFsKKyAgICAgICAgICAgICAgICAi
SExTTCdzIGZ1bmN0aW9uIHRleHR1cmUuTG9hZCByZXR1cm5zIDAgd2hlbiB0aGUgcGFyYW1ldGVy
IExvY2F0aW9uIGlzIG5lZ2F0aXZlLCBldmVuIGlmICIsCisgICAgICAgICAgICAgICAgInRoZSBz
dW0gb2YgT2Zmc2V0IGFuZCBMb2NhdGlvbiBpcyBpbiByYW5nZSIKKyAgICAgICAgICAgIF0KKyAg
ICAgICAgfSwKKworICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJlbXVsYXRlX3Rpbnlf
c3RlbmNpbF90ZXh0dXJlcyIsCisgICAgICAgICAgICAiY2F0ZWdvcnkiOiAiV29ya2Fyb3VuZHMi
LAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogWworICAgICAgICAgICAgICAgICIxeDEgYW5k
IDJ4MiBtaXBzIG9mIGRlcHRoL3N0ZW5jaWwgdGV4dHVyZXMgYXJlbid0IHNhbXBsZWQgY29ycmVj
dGx5IgorICAgICAgICAgICAgXQorICAgICAgICB9LAorCisgICAgICAgIHsKKyAgICAgICAgICAg
ICJuYW1lIjogImRpc2FibGVfQjVHNlI1X3N1cHBvcnQiLAorICAgICAgICAgICAgImNhdGVnb3J5
IjogIldvcmthcm91bmRzIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6IFsKKyAgICAgICAg
ICAgICAgICAiVGV4dHVyZXMgd2l0aCB0aGUgZm9ybWF0ICIsCisgICAgICAgICAgICAgICAgIkRY
R0lfRk9STUFUX0I1RzZSNV9VTk9STSBoYXZlIGluY29ycmVjdCBkYXRhIgorICAgICAgICAgICAg
XQorICAgICAgICB9LAorCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogInJld3JpdGVf
dW5hcnlfbWludXNfb3BlcmF0b3IiLAorICAgICAgICAgICAgImNhdGVnb3J5IjogIldvcmthcm91
bmRzIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6IFsKKyAgICAgICAgICAgICAgICAiRXZh
bHVhdGluZyB1bmFyeSBtaW51cyBvcGVyYXRvciBvbiBpbnRlZ2VyIG1heSBnZXQgd3JvbmcgYW5z
d2VyIGluIHZlcnRleCBzaGFkZXJzIgorICAgICAgICAgICAgXQorICAgICAgICB9LAorCisgICAg
ICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogImVtdWxhdGVfaXNuYW5fZmxvYXQiLAorICAgICAg
ICAgICAgImNhdGVnb3J5IjogIldvcmthcm91bmRzIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlv
biI6IFsKKyAgICAgICAgICAgICAgICAiVXNpbmcgaXNuYW4oKSBvbiBoaWdocCBmbG9hdCB3aWxs
IGdldCB3cm9uZyBhbnN3ZXIiCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImlzc3VlIjog
Imh0dHBzOi8vY3JidWcuY29tLzY1MDU0NyIKKyAgICAgICAgfSwKKworICAgICAgICB7CisgICAg
ICAgICAgICAibmFtZSI6ICJjYWxsX2NsZWFyX3R3aWNlIiwKKyAgICAgICAgICAgICJjYXRlZ29y
eSI6ICJXb3JrYXJvdW5kcyIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiBbCisgICAgICAg
ICAgICAgICAgIlVzaW5nIGNsZWFyKCkgbWF5IG5vdCB0YWtlIGVmZmVjdCIKKyAgICAgICAgICAg
IF0sCisgICAgICAgICAgICAiaXNzdWUiOiAiaHR0cHM6Ly9jcmJ1Zy5jb20vNjU1NTM0IgorICAg
ICAgICB9LAorCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogInVzZV9zeXN0ZW1fbWVt
b3J5X2Zvcl9jb25zdGFudF9idWZmZXJzIiwKKyAgICAgICAgICAgICJjYXRlZ29yeSI6ICJXb3Jr
YXJvdW5kcyIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiBbCisgICAgICAgICAgICAgICAg
IkNvcHlpbmcgZnJvbSBzdGFnaW5nIHN0b3JhZ2UgdG8gY29uc3RhbnQgYnVmZmVyICIsCisgICAg
ICAgICAgICAgICAgInN0b3JhZ2UgZG9lcyBub3Qgd29yayIKKyAgICAgICAgICAgIF0sCisgICAg
ICAgICAgICAiaXNzdWUiOiAiaHR0cHM6Ly9jcmJ1Zy5jb20vNTkzMDI0IgorICAgICAgICB9LAor
CisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogInNlbGVjdF92aWV3X2luX2dlb21ldHJ5
X3NoYWRlciIsCisgICAgICAgICAgICAiY2F0ZWdvcnkiOiAiV29ya2Fyb3VuZHMiLAorICAgICAg
ICAgICAgImRlc2NyaXB0aW9uIjogWworICAgICAgICAgICAgICAgICJUaGUgdmlld3BvcnQgb3Ig
cmVuZGVyIHRhcmdldCBzbGljZSB3aWxsIGJlIHNlbGVjdGVkIGluIHRoZSBnZW9tZXRyeSBzaGFk
ZXIgc3RhZ2UgZm9yICIsCisgICAgICAgICAgICAgICAgInRoZSBBTkdMRV9tdWx0aXZpZXcgZXh0
ZW5zaW9uIgorICAgICAgICAgICAgXQorICAgICAgICB9LAorCisgICAgICAgIHsKKyAgICAgICAg
ICAgICJuYW1lIjogImFkZF9tb2NrX3RleHR1cmVfbm9fcmVuZGVyX3RhcmdldCIsCisgICAgICAg
ICAgICAiY2F0ZWdvcnkiOiAiV29ya2Fyb3VuZHMiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9u
IjogWworICAgICAgICAgICAgICAgICJPbiBzb21lIGRyaXZlcnMgd2hlbiByZW5kZXJpbmcgd2l0
aCBubyByZW5kZXIgdGFyZ2V0LCB0d28gYnVncyBsZWFkIHRvIGluY29ycmVjdCBiZWhhdmlvciIK
KyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAiaXNzdWUiOiAiaHR0cDovL2FuZ2xlYnVnLmNv
bS8yMTUyIgorICAgICAgICB9LAorCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogInNr
aXBfVlNfY29uc3RhbnRfcmVnaXN0ZXJfemVybyIsCisgICAgICAgICAgICAiY2F0ZWdvcnkiOiAi
V29ya2Fyb3VuZHMiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogWworICAgICAgICAgICAg
ICAgICJJbiBzcGVjaWZpYyBjYXNlcyB0aGUgZHJpdmVyIGRvZXNuJ3QgaGFuZGxlIGNvbnN0YW50
IHJlZ2lzdGVyIHplcm8gY29ycmVjdGx5IgorICAgICAgICAgICAgXQorICAgICAgICB9LAorCisg
ICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogImZvcmNlX2F0b21pY192YWx1ZV9yZXNvbHV0
aW9uIiwKKyAgICAgICAgICAgICJjYXRlZ29yeSI6ICJXb3JrYXJvdW5kcyIsCisgICAgICAgICAg
ICAiZGVzY3JpcHRpb24iOiBbCisgICAgICAgICAgICAgICAgIk9uIHNvbWUgZHJpdmVycyB0aGUg
cmV0dXJuIHZhbHVlIGZyb20gUldCeXRlQWRkcmVzc0J1ZmZlci5JbnRlcmxvY2tlZEFkZCBkb2Vz
IG5vdCByZXNvbHZlICIsCisgICAgICAgICAgICAgICAgIndoZW4gdXNlZCBpbiB0aGUgLnl6dyBj
b21wb25lbnRzIG9mIGEgUldCeXRlQWRkcmVzc0J1ZmZlci5TdG9yZSBvcGVyYXRpb24iCisgICAg
ICAgICAgICBdLAorICAgICAgICAgICAgImlzc3VlIjogImh0dHA6Ly9hbmdsZWJ1Zy5jb20vMzI0
NiIKKyAgICAgICAgfSwKKworICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJhbGxvd19j
bGVhcl9mb3Jfcm9idXN0X3Jlc291cmNlX2luaXQiLAorICAgICAgICAgICAgImNhdGVnb3J5Ijog
Ildvcmthcm91bmRzIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6IFsKKyAgICAgICAgICAg
ICAgICAiU29tZSBkcml2ZXJzIGNvcnJ1cHQgdGV4dHVyZSBkYXRhIHdoZW4gY2xlYXJpbmcgZm9y
IHJvYnVzdCByZXNvdXJjZSBpbml0aWFsaXphdGlvbi4iCisgICAgICAgICAgICBdLAorICAgICAg
ICAgICAgImlzc3VlIjogImh0dHA6Ly9jcmJ1Zy5jb20vOTQxNjIwIgorICAgICAgICB9LAorCisg
ICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogImFsbG93X3RyYW5zbGF0ZV91bmlmb3JtX2Js
b2NrX3RvX3N0cnVjdHVyZWRfYnVmZmVyIiwKKyAgICAgICAgICAgICJjYXRlZ29yeSI6ICJXb3Jr
YXJvdW5kcyIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiBbCisgICAgICAgICAgICAgICAg
IlRoZXJlIGlzIGEgc2xvdyBmeGMgY29tcGlsZSBwZXJmb3JtYW5jZSBpc3N1ZSB3aXRoIGR5bmFt
aWMgdW5pZm9ybSBpbmRleGluZyBpZiAiLAorICAgICAgICAgICAgICAgICJ0cmFuc2xhdGluZyBh
IHVuaWZvcm0gYmxvY2sgd2l0aCBhIGxhcmdlIGFycmF5IG1lbWJlciB0byBjYnVmZmVyLiIKKyAg
ICAgICAgICAgIF0sCisgICAgICAgICAgICAiaXNzdWUiOiAiaHR0cDovL2FuZ2xlYnVnLmNvbS8z
NjgyIgorICAgICAgICB9LAorCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogImFsbG93
X0VTM19vbl9GTDEwXzAiLAorICAgICAgICAgICAgImNhdGVnb3J5IjogIldvcmthcm91bmRzIiwK
KyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6IFsKKyAgICAgICAgICAgICAgICAiQWxsb3cgRVMz
IG9uIDEwLjAgZGV2aWNlcyIKKyAgICAgICAgICAgIF0KKyAgICAgICAgfQorICAgIF0KK30KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL2luY2x1ZGUvcGxhdGZvcm0vZnJvbnRl
bmRfZmVhdHVyZXMuanNvbiBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL2luY2x1ZGUvcGxhdGZv
cm0vZnJvbnRlbmRfZmVhdHVyZXMuanNvbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMzkxYTQ0OTRhNTg1MTI2NjNl
MzY2YWNhYzZiYjNkYTg1NGFiMjdkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvaW5jbHVkZS9wbGF0Zm9ybS9mcm9udGVuZF9mZWF0dXJlcy5qc29uCkBAIC0wLDAg
KzEsMTA1IEBACit7CisgICAgImRlc2NyaXB0aW9uIjogWworICAgICAgICAiQ29weXJpZ2h0IDIw
MjIgVGhlIEFOR0xFIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4iLAorICAg
ICAgICAiVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUg
bGljZW5zZSB0aGF0IGNhbiBiZSIsCisgICAgICAgICJmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxl
LiIsCisgICAgICAgICIiLAorICAgICAgICAiZnJvbnRlbmRfZmVhdHVyZXMuanNvbjogRmVhdHVy
ZXMvd29ya2Fyb3VuZHMgZm9yIGRyaXZlciBidWdzIGFuZCBvdGhlciBiZWhhdmlvcnMgc2VlbiIs
CisgICAgICAgICJvbiBhbGwgcGxhdGZvcm1zLiIKKyAgICBdLAorICAgICJmZWF0dXJlcyI6IFsK
KyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAibG9zZV9jb250ZXh0X29uX291dF9vZl9t
ZW1vcnkiLAorICAgICAgICAgICAgImNhdGVnb3J5IjogIldvcmthcm91bmRzIiwKKyAgICAgICAg
ICAgICJkZXNjcmlwdGlvbiI6IFsKKyAgICAgICAgICAgICAgICAiU29tZSB1c2VycyByZWx5IG9u
IGEgbG9zdCBjb250ZXh0IG5vdGlmaWNhdGlvbiBpZiBhIEdMX09VVF9PRl9NRU1PUlkgZXJyb3Ig
b2NjdXJzIgorICAgICAgICAgICAgXQorICAgICAgICB9LAorCisgICAgICAgIHsKKyAgICAgICAg
ICAgICJuYW1lIjogImRpc2FibGVfcHJvZ3JhbV9jYWNoaW5nX2Zvcl90cmFuc2Zvcm1fZmVlZGJh
Y2siLAorICAgICAgICAgICAgImNhdGVnb3J5IjogIldvcmthcm91bmRzIiwKKyAgICAgICAgICAg
ICJkZXNjcmlwdGlvbiI6IFsKKyAgICAgICAgICAgICAgICAiT24gc29tZSBHUFVzLCBwcm9ncmFt
IGJpbmFyaWVzIGRvbid0IGNvbnRhaW4gdHJhbnNmb3JtIGZlZWRiYWNrIHZhcnlpbmdzIgorICAg
ICAgICAgICAgXQorICAgICAgICB9LAorCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjog
InNjYWxhcml6ZV92ZWNfYW5kX21hdF9jb25zdHJ1Y3Rvcl9hcmdzIiwKKyAgICAgICAgICAgICJj
YXRlZ29yeSI6ICJXb3JrYXJvdW5kcyIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiBbCisg
ICAgICAgICAgICAgICAgIkFsd2F5cyByZXdyaXRlIHZlYy9tYXQgY29uc3RydWN0b3JzIHRvIGJl
IGNvbnNpc3RlbnQiCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImlzc3VlIjogImh0dHA6
Ly9jcmJ1Zy5jb20vMTE2NTc1MSIKKyAgICAgICAgfSwKKworICAgICAgICB7CisgICAgICAgICAg
ICAibmFtZSI6ICJkaXNhYmxlX3Byb2dyYW1fYmluYXJ5IiwKKyAgICAgICAgICAgICJjYXRlZ29y
eSI6ICJGZWF0dXJlcyIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiBbCisgICAgICAgICAg
ICAgICAgIkRpc2FibGUgc3VwcG9ydCBmb3IgR0xfT0VTX2dldF9wcm9ncmFtX2JpbmFyeSIKKyAg
ICAgICAgICAgIF0sCisgICAgICAgICAgICAiaXNzdWUiOiAiaHR0cDovL2FuZ2xlYnVnLmNvbS81
MDA3IgorICAgICAgICB9LAorCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogImRpc2Fi
bGVfYW5pc290cm9waWNfZmlsdGVyaW5nIiwKKyAgICAgICAgICAgICJjYXRlZ29yeSI6ICJXb3Jr
YXJvdW5kcyIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiBbCisgICAgICAgICAgICAgICAg
IkRpc2FibGUgc3VwcG9ydCBmb3IgYW5pc290cm9waWMgZmlsdGVyaW5nIgorICAgICAgICAgICAg
XQorICAgICAgICB9LAorCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogImFsbG93X2Nv
bXByZXNzZWRfZm9ybWF0cyIsCisgICAgICAgICAgICAiY2F0ZWdvcnkiOiAiV29ya2Fyb3VuZHMi
LAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogWworICAgICAgICAgICAgICAgICJBbGxvdyBj
b21wcmVzc2VkIGZvcm1hdHMiCisgICAgICAgICAgICBdCisgICAgICAgIH0sCisKKyAgICAgICAg
eworICAgICAgICAgICAgIm5hbWUiOiAiZW5hYmxlX2NhcHR1cmVfbGltaXRzIiwKKyAgICAgICAg
ICAgICJjYXRlZ29yeSI6ICJGZWF0dXJlcyIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiBb
CisgICAgICAgICAgICAgICAgIlNldCB0aGUgY29udGV4dCBsaW1pdHMgbGlrZSBmcmFtZSBjYXB0
dXJpbmcgd2FzIGVuYWJsZWQiCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImlzc3VlIjog
Imh0dHA6Ly9hbmdsZWJ1Zy5jb20vNTc1MCIKKyAgICAgICAgfSwKKworICAgICAgICB7CisgICAg
ICAgICAgICAibmFtZSI6ICJlbmFibGVfY29tcHJlc3NpbmdfcGlwZWxpbmVfY2FjaGVfaW5fdGhy
ZWFkX3Bvb2wiLAorICAgICAgICAgICAgImNhdGVnb3J5IjogIldvcmthcm91bmRzIiwKKyAgICAg
ICAgICAgICJkZXNjcmlwdGlvbiI6IFsKKyAgICAgICAgICAgICAgICAiRW5hYmxlIGNvbXByZXNz
aW5nIHBpcGVsaW5lIGNhY2hlIGluIHRocmVhZCBwb29sLiIKKyAgICAgICAgICAgIF0sCisgICAg
ICAgICAgICAiaXNzdWUiOiAiaHR0cDovL2FuZ2xlYnVnLmNvbS80NzIyIgorICAgICAgICB9LAor
CisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogImZvcmNlX3JvYnVzdF9yZXNvdXJjZV9p
bml0IiwKKyAgICAgICAgICAgICJjYXRlZ29yeSI6ICJGZWF0dXJlcyIsCisgICAgICAgICAgICAi
ZGVzY3JpcHRpb24iOiBbCisgICAgICAgICAgICAgICAgIkZvcmNlLWVuYWJsZSByb2J1c3QgcmVz
b3VyY2UgaW5pdCIKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAiaXNzdWUiOiAiaHR0cDov
L2FuZ2xlYnVnLmNvbS82MDQxIgorICAgICAgICB9LAorCisgICAgICAgIHsKKyAgICAgICAgICAg
ICJuYW1lIjogImZvcmNlX2luaXRfc2hhZGVyX3ZhcmlhYmxlcyIsCisgICAgICAgICAgICAiY2F0
ZWdvcnkiOiAiRmVhdHVyZXMiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogWworICAgICAg
ICAgICAgICAgICJGb3JjZS1lbmFibGUgc2hhZGVyIHZhcmlhYmxlIGluaXRpYWxpemF0aW9uIgor
ICAgICAgICAgICAgXQorICAgICAgICB9LAorCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1l
IjogImVuYWJsZV9wcm9ncmFtX2JpbmFyeV9mb3JfY2FwdHVyZSIsCisgICAgICAgICAgICAiY2F0
ZWdvcnkiOiAiRmVhdHVyZXMiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogWworICAgICAg
ICAgICAgICAgICJFdmVuIGlmIEZyYW1lQ2FwdHVyZSBpcyBlbmFibGVkLCBlbmFibGUgR0xfT0VT
X2dldF9wcm9ncmFtX2JpbmFyeSIKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAiaXNzdWUi
OiAiaHR0cDovL2FuZ2xlYnVnLmNvbS81NjU4IgorICAgICAgICB9CisgICAgXQorfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvaW5jbHVkZS9wbGF0Zm9ybS9nZW5fZmVhdHVy
ZXMucHkgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9pbmNsdWRlL3BsYXRmb3JtL2dlbl9mZWF0
dXJlcy5weQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5kYTkzYTZhNDVkNGEwYTMyYTVlMmIyYWI1MzFjNWExYWI2NTY4
NjYxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvaW5jbHVkZS9w
bGF0Zm9ybS9nZW5fZmVhdHVyZXMucHkKQEAgLTAsMCArMSwyMjEgQEAKKyMhIC91c3IvYmluL3B5
dGhvbjMKKworIyBDb3B5cmlnaHQgMjAyMiBUaGUgQU5HTEUgUHJvamVjdCBBdXRob3JzLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBi
eSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisjIGZvdW5kIGluIHRoZSBMSUNFTlNF
IGZpbGUuCisjCisjIGdlbl9mZWF0dXJlcy5weToKKyMgIENvZGUgZ2VuZXJhdGlvbiBmb3IgQU5H
TEUgZmVhdHVyZXMuCisjICBOT1RFOiBkb24ndCBydW4gdGhpcyBzY3JpcHQgZGlyZWN0bHkuIFJ1
biBzY3JpcHRzL3J1bl9jb2RlX2dlbmVyYXRpb24ucHkuCisKK2Zyb20gY29sbGVjdGlvbnMgaW1w
b3J0IG5hbWVkdHVwbGUKK2ltcG9ydCBqc29uCitpbXBvcnQgb3MKK2ltcG9ydCByZQoraW1wb3J0
IHN5cworCitmZWF0dXJlX2ZpbGVzID0geworICAgICdkM2RfZmVhdHVyZXMuanNvbic6ICgnRDNE
JywgJ0ZlYXR1cmVzRDNEJyksCisgICAgJ2Zyb250ZW5kX2ZlYXR1cmVzLmpzb24nOiAoJ0Zyb250
ZW5kJywgJ0Zyb250ZW5kRmVhdHVyZXMnKSwKKyAgICAnZ2xfZmVhdHVyZXMuanNvbic6ICgnT3Bl
bkdMJywgJ0ZlYXR1cmVzR0wnKSwKKyAgICAnbXRsX2ZlYXR1cmVzLmpzb24nOiAoJ01ldGFsJywg
J0ZlYXR1cmVzTXRsJyksCisgICAgJ3ZrX2ZlYXR1cmVzLmpzb24nOiAoJ1Z1bGthbicsICdGZWF0
dXJlc1ZrJyksCit9CitmZWF0dXJlX2xpc3RfaGVhZGVyX2ZpbGUgPSAnLi4vLi4vdXRpbC9hbmds
ZV9mZWF0dXJlc19hdXRvZ2VuLmgnCitmZWF0dXJlX2xpc3Rfc291cmNlX2ZpbGUgPSAnLi4vLi4v
dXRpbC9hbmdsZV9mZWF0dXJlc19hdXRvZ2VuLmNwcCcKKwordGVtcGxhdGVfaGVhZGVyID0gdSIi
Ii8vIEdFTkVSQVRFRCBGSUxFIC0gRE8gTk9UIEVESVQuCisvLyBHZW5lcmF0ZWQgYnkge3Njcmlw
dF9uYW1lfSB1c2luZyBkYXRhIGZyb20ge2lucHV0X2ZpbGVfbmFtZX0uCisvLwore2Rlc2NyaXB0
aW9ufQorCisjaWZuZGVmIEFOR0xFX1BMQVRGT1JNX3tOQU1FfV9IXworI2RlZmluZSBBTkdMRV9Q
TEFURk9STV97TkFNRX1fSF8KKworI2luY2x1ZGUgInBsYXRmb3JtL0ZlYXR1cmUuaCIKKworbmFt
ZXNwYWNlIGFuZ2xlCit7eworCitzdHJ1Y3Qge25hbWV9IDogRmVhdHVyZVNldEJhc2UKK3t7Cisg
ICAge25hbWV9KCk7CisgICAgfntuYW1lfSgpOworCit7ZmVhdHVyZXN9Cit9fTsKKworaW5saW5l
IHtuYW1lfTo6e25hbWV9KCkgID0gZGVmYXVsdDsKK2lubGluZSB7bmFtZX06On57bmFtZX0oKSA9
IGRlZmF1bHQ7CisKK319ICAvLyBuYW1lc3BhY2UgYW5nbGUKKworI2VuZGlmICAvLyBBTkdMRV9Q
TEFURk9STV97TkFNRX1fSF8KKyIiIgorCit0ZW1wbGF0ZV9mZWF0dXJlID0gdSIiIkZlYXR1cmVJ
bmZvIHt2YXJfbmFtZX0gPSB7eworICAgICAie2Rpc3BsYXlfbmFtZX0iLCBGZWF0dXJlQ2F0ZWdv
cnk6OntjYXRlZ29yeX0sCisgICAgIHtkZXNjcmlwdGlvbn0sCisgICAgICZtZW1iZXJzLCB7aXNz
dWV9Cit9fTsKKyIiIgorCit0ZW1wbGF0ZV9mZWF0dXJlX2xpc3RfaGVhZGVyID0gdSIiIi8vIEdF
TkVSQVRFRCBGSUxFIC0gRE8gTk9UIEVESVQuCisvLyBHZW5lcmF0ZWQgYnkge3NjcmlwdF9uYW1l
fSB1c2luZyBkYXRhIGZyb20ge2lucHV0X2ZpbGVfbmFtZX0uCisvLworLy8gQ29weXJpZ2h0IDIw
MjIgVGhlIEFOR0xFIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFVz
ZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2Ug
dGhhdCBjYW4gYmUKKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisvLworLy8gYW5nbGVf
ZmVhdHVyZXNfYXV0b2dlbi5oOiBMaXN0IG9mIEFOR0xFIGZlYXR1cmVzIHRvIGhlbHAgZW5hYmxl
L2Rpc2FibGUgdGhlbSBpbiB0ZXN0cy4KKworI2lmbmRlZiBBTkdMRV9TUkNfVEVTVFNfVEVTVF9V
VElMU19BTkdMRV9GRUFUVVJFU19BVVRPR0VOX0hfCisjZGVmaW5lIEFOR0xFX1NSQ19URVNUU19U
RVNUX1VUSUxTX0FOR0xFX0ZFQVRVUkVTX0FVVE9HRU5fSF8KKworI2luY2x1ZGUgInV0aWxfZXhw
b3J0LmgiCisKK25hbWVzcGFjZSBhbmdsZQore3sKK2VudW0gY2xhc3MgRmVhdHVyZQore3sKK3tm
ZWF0dXJlc30KKworICAgIEludmFsaWRFbnVtLAorICAgIEVudW1Db3VudCA9IEludmFsaWRFbnVt
LAorfX07CisKK0FOR0xFX1VUSUxfRVhQT1JUIGV4dGVybiBjb25zdCBjaGFyICpHZXRGZWF0dXJl
TmFtZShGZWF0dXJlIGZlYXR1cmUpOworCit9fSAgLy8gbmFtZXNwYWNlIGFuZ2xlCisKKyNlbmRp
ZiAgLy8gQU5HTEVfU1JDX1RFU1RTX1RFU1RfVVRJTFNfQU5HTEVfRkVBVFVSRVNfQVVUT0dFTl9I
XworIiIiCisKK3RlbXBsYXRlX2ZlYXR1cmVfZW51bSA9IHUiIiJ7VmFyTmFtZX0sIiIiCisKK3Rl
bXBsYXRlX2ZlYXR1cmVfbGlzdF9zb3VyY2UgPSB1IiIiLy8gR0VORVJBVEVEIEZJTEUgLSBETyBO
T1QgRURJVC4KKy8vIEdlbmVyYXRlZCBieSB7c2NyaXB0X25hbWV9IHVzaW5nIGRhdGEgZnJvbSB7
aW5wdXRfZmlsZV9uYW1lfS4KKy8vCisvLyBDb3B5cmlnaHQgMjAyMiBUaGUgQU5HTEUgUHJvamVj
dCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVXNlIG9mIHRoaXMgc291cmNlIGNv
ZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorLy8gZm91
bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy8vCisvLyBhbmdsZV9mZWF0dXJlc19hdXRvZ2VuLmNw
cDogTGlzdCBvZiBBTkdMRSBmZWF0dXJlcyB0byBoZWxwIGVuYWJsZS9kaXNhYmxlIHRoZW0gaW4g
dGVzdHMuCisKKyNpbmNsdWRlICJhbmdsZV9mZWF0dXJlc19hdXRvZ2VuLmgiCisKKyNpbmNsdWRl
ICJjb21tb24vUGFja2VkRW51bXMuaCIKKworbmFtZXNwYWNlIGFuZ2xlCit7eworbmFtZXNwYWNl
Cit7eworY29uc3RleHByIFBhY2tlZEVudW1NYXA8RmVhdHVyZSwgY29uc3QgY2hhciAqPiBrRmVh
dHVyZU5hbWVzID0ge3sge3sKK3tmZWF0dXJlc30KK319IH19OworfX0gIC8vIGFub255bW91cyBu
YW1lc3BhY2UKKworY29uc3QgY2hhciAqR2V0RmVhdHVyZU5hbWUoRmVhdHVyZSBmZWF0dXJlKQor
e3sKKyAgICByZXR1cm4ga0ZlYXR1cmVOYW1lc1tmZWF0dXJlXTsKK319CisKK319ICAvLyBuYW1l
c3BhY2UgYW5nbGUKKyIiIgorCit0ZW1wbGF0ZV9mZWF0dXJlX3N0cmluZyA9IHUiIiJ7e0ZlYXR1
cmU6OntWYXJOYW1lfSwgIntkaXNwbGF5X25hbWV9In19LCIiIgorCisKK2RlZiBtYWtlX2NhbWVs
X2Nhc2UoanNvbl9uYW1lKToKKyAgICBhc3NlcnQgJ18nIGluIGpzb25fbmFtZSwgJ2ZlYXR1cmUg
bmFtZXMgaW4gdGhlIGpzb24gZmlsZSBhcmUgZXhwZWN0ZWQgdG8gYmUgaW4gc25ha2VfY2FzZScK
KyAgICByZXR1cm4gcmUuc3ViKCdfKC4pJywgbGFtYmRhIG06IG0uZ3JvdXAoMSkudXBwZXIoKSwg
anNvbl9uYW1lKQorCisKK2RlZiBtYWtlX2hlYWRlcl9uYW1lKGNsYXNzX25hbWUpOgorICAgIHJl
dHVybiBjbGFzc19uYW1lICsgJ19hdXRvZ2VuLmgnCisKKworZGVmIG1haW4oKToKKyAgICBpZiBs
ZW4oc3lzLmFyZ3YpID09IDIgYW5kIHN5cy5hcmd2WzFdID09ICdpbnB1dHMnOgorICAgICAgICBw
cmludCgnLCcuam9pbihsaXN0KGZlYXR1cmVfZmlsZXMua2V5cygpKSkpCisgICAgICAgIHJldHVy
bgorICAgIGlmIGxlbihzeXMuYXJndikgPT0gMiBhbmQgc3lzLmFyZ3ZbMV0gPT0gJ291dHB1dHMn
OgorICAgICAgICBwcmludCgnLCcuam9pbigKKyAgICAgICAgICAgIFttYWtlX2hlYWRlcl9uYW1l
KGNsYXNzX25hbWUpIGZvciAoXywgY2xhc3NfbmFtZSkgaW4gZmVhdHVyZV9maWxlcy52YWx1ZXMo
KV0pICsgJywnICsKKyAgICAgICAgICAgICAgZmVhdHVyZV9saXN0X2hlYWRlcl9maWxlICsgJywn
ICsgZmVhdHVyZV9saXN0X3NvdXJjZV9maWxlKQorICAgICAgICByZXR1cm4KKworICAgIG5hbWVf
bWFwID0ge30KKworICAgIGZvciBzcmNfZmlsZSwgKGNhdGVnb3J5X3ByZWZpeCwgY2xhc3NfbmFt
ZSkgaW4gZmVhdHVyZV9maWxlcy5pdGVtcygpOgorICAgICAgICB3aXRoIG9wZW4oc3JjX2ZpbGUp
IGFzIGZpbjoKKyAgICAgICAgICAgIHNyYyA9IGpzb24ubG9hZHMoZmluLnJlYWQoKSkKKworICAg
ICAgICBmZWF0dXJlc19qc29uID0gc3JjWydmZWF0dXJlcyddCisgICAgICAgIGZlYXR1cmVzID0g
W10KKworICAgICAgICAjIEdvIG92ZXIgdGhlIGxpc3Qgb2YgZmVhdHVyZXMgYW5kIHdyaXRlIHRo
ZSBoZWFkZXIgZmlsZSB0aGF0IGRlY2xhcmVzIHRoZSBmZWF0dXJlcyBzdHJ1Y3QKKyAgICAgICAg
Zm9yIGZlYXR1cmVfanNvbiBpbiBmZWF0dXJlc19qc29uOgorICAgICAgICAgICAganNvbl9uYW1l
ID0gZmVhdHVyZV9qc29uWyduYW1lJ10KKyAgICAgICAgICAgIHZhcl9uYW1lID0gbWFrZV9jYW1l
bF9jYXNlKGpzb25fbmFtZSkKKyAgICAgICAgICAgICMgVXNlIHRoZSBzYW1lIChjYW1lbENhc2Up
IG5hbWUgZm9yIGRpc3BsYXkgYXMgd2VsbAorICAgICAgICAgICAgZGlzcGxheV9uYW1lID0gdmFy
X25hbWUKKyAgICAgICAgICAgIGlzc3VlID0gZmVhdHVyZV9qc29uLmdldCgnaXNzdWUnLCBOb25l
KQorICAgICAgICAgICAgZmVhdHVyZSA9IHRlbXBsYXRlX2ZlYXR1cmUuZm9ybWF0KAorICAgICAg
ICAgICAgICAgIHZhcl9uYW1lPXZhcl9uYW1lLAorICAgICAgICAgICAgICAgIGRpc3BsYXlfbmFt
ZT1kaXNwbGF5X25hbWUsCisgICAgICAgICAgICAgICAgY2F0ZWdvcnk9Y2F0ZWdvcnlfcHJlZml4
ICsgZmVhdHVyZV9qc29uWydjYXRlZ29yeSddLAorICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9u
PSdcbicuam9pbignIicgKyBsaW5lICsgJyInIGZvciBsaW5lIGluIGZlYXR1cmVfanNvblsnZGVz
Y3JpcHRpb24nXSksCisgICAgICAgICAgICAgICAgaXNzdWU9JycgaWYgaXNzdWUgaXMgTm9uZSBl
bHNlICciJyArIGlzc3VlICsgJyInKQorCisgICAgICAgICAgICBmZWF0dXJlcy5hcHBlbmQoZmVh
dHVyZSkKKworICAgICAgICAgICAgIyBLZWVwIHRyYWNrIG9mIHRoZSBmZWF0dXJlIG5hbWVzLiAg
U29tZXRpbWVzIHRoZSBzYW1lIGZlYXR1cmUgbmFtZSBpcyBwcmVzZW50IGluCisgICAgICAgICAg
ICAjIG11bHRpcGxlIGJhY2tlbmRzLiAgVGhhdCdzIG9rIGZvciB0aGUgcHVycG9zZXMgb2YgZmVh
dHVyZSBvdmVycmlkaW5nLgorICAgICAgICAgICAgbmFtZV9tYXBbdmFyX25hbWVdID0gZGlzcGxh
eV9uYW1lCisKKyAgICAgICAgZGVzY3JpcHRpb24gPSAnXG4nLmpvaW4oWycvLyAnICsgbGluZSBm
b3IgbGluZSBpbiBzcmNbJ2Rlc2NyaXB0aW9uJ11dKQorICAgICAgICBoZWFkZXJfZmlsZSA9IG1h
a2VfaGVhZGVyX25hbWUoY2xhc3NfbmFtZSkKKworICAgICAgICBoZWFkZXIgPSB0ZW1wbGF0ZV9o
ZWFkZXIuZm9ybWF0KAorICAgICAgICAgICAgc2NyaXB0X25hbWU9b3MucGF0aC5iYXNlbmFtZShf
X2ZpbGVfXyksCisgICAgICAgICAgICBpbnB1dF9maWxlX25hbWU9c3JjX2ZpbGUsCisgICAgICAg
ICAgICBkZXNjcmlwdGlvbj1kZXNjcmlwdGlvbi5yZXBsYWNlKHNyY19maWxlLCBoZWFkZXJfZmls
ZSksCisgICAgICAgICAgICBuYW1lPWNsYXNzX25hbWUsCisgICAgICAgICAgICBOQU1FPWNsYXNz
X25hbWUudXBwZXIoKSwKKyAgICAgICAgICAgIGZlYXR1cmVzPSdcbicuam9pbihmZWF0dXJlcykp
CisKKyAgICAgICAgd2l0aCBvcGVuKGhlYWRlcl9maWxlLCAndycpIGFzIGZvdXQ6CisgICAgICAg
ICAgICBmb3V0LndyaXRlKGhlYWRlcikKKyAgICAgICAgICAgIGZvdXQuY2xvc2UoKQorCisgICAg
IyBHZW5lcmF0ZSBoZWxwZXJzIGZvciB1c2UgYnkgdGVzdHMgdG8gb3ZlcnJpZGUgYSBmZWF0dXJl
IG9yIG5vdC4KKyAgICBmZWF0dXJlX2VudW1zID0gW10KKyAgICBmZWF0dXJlX3N0cmluZ3MgPSBb
XQorICAgIGZvciB2YXJfbmFtZSwgZGlzcGxheV9uYW1lIGluIHNvcnRlZChuYW1lX21hcC5pdGVt
cygpLCBrZXk9bGFtYmRhIGl0ZW06IGl0ZW1bMF0ubG93ZXIoKSk6CisgICAgICAgIFZhck5hbWUg
PSB2YXJfbmFtZVswXS51cHBlcigpICsgdmFyX25hbWVbMTpdCisKKyAgICAgICAgZmVhdHVyZV9l
bnVtcy5hcHBlbmQodGVtcGxhdGVfZmVhdHVyZV9lbnVtLmZvcm1hdChWYXJOYW1lPVZhck5hbWUp
KQorCisgICAgICAgIGZlYXR1cmVfc3RyaW5ncy5hcHBlbmQoCisgICAgICAgICAgICB0ZW1wbGF0
ZV9mZWF0dXJlX3N0cmluZy5mb3JtYXQoVmFyTmFtZT1WYXJOYW1lLCBkaXNwbGF5X25hbWU9ZGlz
cGxheV9uYW1lKSkKKworICAgIHdpdGggb3BlbihmZWF0dXJlX2xpc3RfaGVhZGVyX2ZpbGUsICd3
JykgYXMgZm91dDoKKyAgICAgICAgZm91dC53cml0ZSgKKyAgICAgICAgICAgIHRlbXBsYXRlX2Zl
YXR1cmVfbGlzdF9oZWFkZXIuZm9ybWF0KAorICAgICAgICAgICAgICAgIHNjcmlwdF9uYW1lPW9z
LnBhdGguYmFzZW5hbWUoX19maWxlX18pLAorICAgICAgICAgICAgICAgIGlucHV0X2ZpbGVfbmFt
ZT0nKl9mZWF0dXJlcy5qc29uJywKKyAgICAgICAgICAgICAgICBmZWF0dXJlcz0nXG4nLmpvaW4o
ZmVhdHVyZV9lbnVtcykpKQorICAgICAgICBmb3V0LmNsb3NlKCkKKworICAgIHdpdGggb3Blbihm
ZWF0dXJlX2xpc3Rfc291cmNlX2ZpbGUsICd3JykgYXMgZm91dDoKKyAgICAgICAgZm91dC53cml0
ZSgKKyAgICAgICAgICAgIHRlbXBsYXRlX2ZlYXR1cmVfbGlzdF9zb3VyY2UuZm9ybWF0KAorICAg
ICAgICAgICAgICAgIHNjcmlwdF9uYW1lPW9zLnBhdGguYmFzZW5hbWUoX19maWxlX18pLAorICAg
ICAgICAgICAgICAgIGlucHV0X2ZpbGVfbmFtZT0nKl9mZWF0dXJlcy5qc29uJywKKyAgICAgICAg
ICAgICAgICBmZWF0dXJlcz0nXG4nLmpvaW4oZmVhdHVyZV9zdHJpbmdzKSkpCisgICAgICAgIGZv
dXQuY2xvc2UoKQorCisKK2lmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CisgICAgc3lzLmV4aXQo
bWFpbigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvaW5jbHVkZS9wbGF0
Zm9ybS9nbF9mZWF0dXJlcy5qc29uIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvaW5jbHVkZS9w
bGF0Zm9ybS9nbF9mZWF0dXJlcy5qc29uCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBmMzE5NjEyZmI3YzJjOGQzZDc2
ODEzNTNhYTBkOGRlNDgwNDczZjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9BTkdMRS9pbmNsdWRlL3BsYXRmb3JtL2dsX2ZlYXR1cmVzLmpzb24KQEAgLTAsMCArMSw2OTMg
QEAKK3sKKyAgICAiZGVzY3JpcHRpb24iOiBbCisgICAgICAgICJDb3B5cmlnaHQgMjAyMiBUaGUg
QU5HTEUgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLiIsCisgICAgICAgICJV
c2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNl
IHRoYXQgY2FuIGJlIiwKKyAgICAgICAgImZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuIiwKKyAg
ICAgICAgIiIsCisgICAgICAgICJnbF9mZWF0dXJlcy5qc29uOiBhbmdsZTo6RmVhdHVyZXMgYW5k
IHdvcmthcm91bmRzIGZvciBHTCBkcml2ZXIgYnVncyBhbmQgb3RoZXIgaXNzdWVzLiIKKyAgICBd
LAorICAgICJmZWF0dXJlcyI6IFsKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAiYXZv
aWRfMV9iaXRfYWxwaGFfdGV4dHVyZV9mb3JtYXRzIiwKKyAgICAgICAgICAgICJjYXRlZ29yeSI6
ICJXb3JrYXJvdW5kcyIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiBbCisgICAgICAgICAg
ICAgICAgIklzc3VlIHdpdGggMS1iaXQgYWxwaGEgZnJhbWVidWZmZXIgZm9ybWF0cyIKKyAgICAg
ICAgICAgIF0KKyAgICAgICAgfSwKKworICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJS
R0JBNF9pc19ub3Rfc3VwcG9ydGVkX2Zvcl9jb2xvcl9yZW5kZXJpbmciLAorICAgICAgICAgICAg
ImNhdGVnb3J5IjogIldvcmthcm91bmRzIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6IFsK
KyAgICAgICAgICAgICAgICAiR0xfUkdCQTQgaXMgbm90IGNvbG9yIHJlbmRlcmFibGUiCisgICAg
ICAgICAgICBdCisgICAgICAgIH0sCisKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAi
YWxsb3dfRVRDX2Zvcm1hdHMiLAorICAgICAgICAgICAgImNhdGVnb3J5IjogIldvcmthcm91bmRz
IiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6IFsKKyAgICAgICAgICAgICAgICAiRW5hYmxl
IEVUQzIvRUFDIG9uIGRlc2t0b3AgT3BlbkdMIgorICAgICAgICAgICAgXQorICAgICAgICB9LAor
CisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogImRvZXNfU1JHQl9jbGVhcnNfb25fbGlu
ZWFyX2ZyYW1lYnVmZmVyX2F0dGFjaG1lbnRzIiwKKyAgICAgICAgICAgICJjYXRlZ29yeSI6ICJX
b3JrYXJvdW5kcyIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiBbCisgICAgICAgICAgICAg
ICAgIklzc3VlIGNsZWFyaW5nIGZyYW1lYnVmZmVycyB3aXRoIGxpbmVhciBhdHRhY2htZW50cyB3
aGVuIEdMX0ZSQU1FQlVGRkVSX1NSR0IgaXMgZW5hYmxlZCIKKyAgICAgICAgICAgIF0KKyAgICAg
ICAgfSwKKworICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJkb193aGlsZV9HTFNMX2Nh
dXNlc19HUFVfaGFuZyIsCisgICAgICAgICAgICAiY2F0ZWdvcnkiOiAiV29ya2Fyb3VuZHMiLAor
ICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogWworICAgICAgICAgICAgICAgICJTb21lIEdMU0wg
Y29uc3RydWN0cyBpbnZvbHZpbmcgZG8td2hpbGUgbG9vcHMgY2F1c2UgR1BVIGhhbmdzIgorICAg
ICAgICAgICAgXSwKKyAgICAgICAgICAgICJpc3N1ZSI6ICJodHRwOi8vY3JidWcuY29tLzY0NDY2
OSIKKyAgICAgICAgfSwKKworICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJ2ZXJ0ZXhf
SURfZG9lc19ub3RfaW5jbHVkZV9iYXNlX3ZlcnRleCIsCisgICAgICAgICAgICAiY2F0ZWdvcnki
OiAiV29ya2Fyb3VuZHMiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogWworICAgICAgICAg
ICAgICAgICJnbF9WZXJ0ZXhJRCBpbiBHTFNMIHZlcnRleCBzaGFkZXIgZG9lc24ndCBpbmNsdWRl
IGJhc2UgdmVydGV4IHZhbHVlIgorICAgICAgICAgICAgXQorICAgICAgICB9LAorCisgICAgICAg
IHsKKyAgICAgICAgICAgICJuYW1lIjogImZpbmlzaF9kb2VzX25vdF9jYXVzZV9xdWVyaWVzX3Rv
X2JlX2F2YWlsYWJsZSIsCisgICAgICAgICAgICAiY2F0ZWdvcnkiOiAiV29ya2Fyb3VuZHMiLAor
ICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogWworICAgICAgICAgICAgICAgICJnbEZpbmlzaCBk
b2Vzbid0IGNhdXNlIGFsbCBxdWVyaWVzIHRvIHJlcG9ydCBhdmFpbGFibGUgcmVzdWx0IgorICAg
ICAgICAgICAgXQorICAgICAgICB9LAorCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjog
ImFsd2F5c19jYWxsX3VzZV9wcm9ncmFtX2FmdGVyX2xpbmsiLAorICAgICAgICAgICAgImNhdGVn
b3J5IjogIldvcmthcm91bmRzIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6IFsKKyAgICAg
ICAgICAgICAgICAiQWx3YXlzIGNhbGwgdXNlUHJvZ3JhbSBhZnRlciBhIHN1Y2Nlc3NmdWwgbGlu
ayB0byBhdm9pZCBhIGRyaXZlciBidWciCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImlz
c3VlIjogImh0dHA6Ly9jcmJ1Zy5jb20vMTEwMjYzIgorICAgICAgICB9LAorCisgICAgICAgIHsK
KyAgICAgICAgICAgICJuYW1lIjogInVucGFja19vdmVybGFwcGluZ19yb3dzX3NlcGFyYXRlbHlf
dW5wYWNrX2J1ZmZlciIsCisgICAgICAgICAgICAiY2F0ZWdvcnkiOiAiV29ya2Fyb3VuZHMiLAor
ICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogWworICAgICAgICAgICAgICAgICJJbiB0aGUgY2Fz
ZSBvZiB1bnBhY2tpbmcgZnJvbSBhIHBpeGVsIHVucGFjayBidWZmZXIsIHVucGFjayBvdmVybGFw
cGluZyByb3dzIHJvdyBieSByb3ciCisgICAgICAgICAgICBdCisgICAgICAgIH0sCisKKyAgICAg
ICAgeworICAgICAgICAgICAgIm5hbWUiOiAicGFja19vdmVybGFwcGluZ19yb3dzX3NlcGFyYXRl
bHlfcGFja19idWZmZXIiLAorICAgICAgICAgICAgImNhdGVnb3J5IjogIldvcmthcm91bmRzIiwK
KyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6IFsKKyAgICAgICAgICAgICAgICAiSW4gdGhlIGNh
c2Ugb2YgcGFja2luZyB0byBhIHBpeGVsIHBhY2sgYnVmZmVyLCBwYWNrIG92ZXJsYXBwaW5nIHJv
d3Mgcm93IGJ5IHJvdyIKKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKworICAgICAgICB7Cisg
ICAgICAgICAgICAibmFtZSI6ICJpbml0aWFsaXplX2N1cnJlbnRfdmVydGV4X2F0dHJpYnV0ZXMi
LAorICAgICAgICAgICAgImNhdGVnb3J5IjogIldvcmthcm91bmRzIiwKKyAgICAgICAgICAgICJk
ZXNjcmlwdGlvbiI6IFsKKyAgICAgICAgICAgICAgICAiRHVyaW5nIGluaXRpYWxpemF0aW9uLCBh
c3NpZ24gdGhlIGN1cnJlbnQgdmVydGV4IGF0dHJpYnV0ZXMgdG8gdGhlIHNwZWMtbWFuZGF0ZWQg
ZGVmYXVsdHMiCisgICAgICAgICAgICBdCisgICAgICAgIH0sCisKKyAgICAgICAgeworICAgICAg
ICAgICAgIm5hbWUiOiAiZW11bGF0ZV9hYnNfaW50X2Z1bmN0aW9uIiwKKyAgICAgICAgICAgICJj
YXRlZ29yeSI6ICJXb3JrYXJvdW5kcyIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiBbCisg
ICAgICAgICAgICAgICAgImFicyhpKSB3aGVyZSBpIGlzIGFuIGludGVnZXIgcmV0dXJucyB1bmV4
cGVjdGVkIHJlc3VsdCIKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAiaXNzdWUiOiAiaHR0
cDovL2NyYnVnLmNvbS82NDIyMjciCisgICAgICAgIH0sCisKKyAgICAgICAgeworICAgICAgICAg
ICAgIm5hbWUiOiAiYWRkX2FuZF90cnVlX3RvX2xvb3BfY29uZGl0aW9uIiwKKyAgICAgICAgICAg
ICJjYXRlZ29yeSI6ICJXb3JrYXJvdW5kcyIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiBb
CisgICAgICAgICAgICAgICAgIkNhbGN1bGF0aW9uIG9mIGxvb3AgY29uZGl0aW9ucyBpbiBmb3Ig
YW5kIHdoaWxlIGxvb3AgaGFzIGJ1ZyIKKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKworICAg
ICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJ1bnBhY2tfbGFzdF9yb3dfc2VwYXJhdGVseV9m
b3JfcGFkZGluZ19pbmNsdXNpb24iLAorICAgICAgICAgICAgImNhdGVnb3J5IjogIldvcmthcm91
bmRzIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6IFsKKyAgICAgICAgICAgICAgICAiV2hl
biB1cGxvYWRpbmcgdGV4dHVyZXMgZnJvbSBhbiB1bnBhY2sgYnVmZmVyLCBzb21lIGRyaXZlcnMg
Y291bnQgYW4gZXh0cmEgcm93IHBhZGRpbmciCisgICAgICAgICAgICBdLAorICAgICAgICAgICAg
Imlzc3VlIjogImh0dHA6Ly9hbmdsZWJ1Zy5jb20vMTUxMiIKKyAgICAgICAgfSwKKworICAgICAg
ICB7CisgICAgICAgICAgICAibmFtZSI6ICJwYWNrX2xhc3Rfcm93X3NlcGFyYXRlbHlfZm9yX3Bh
ZGRpbmdfaW5jbHVzaW9uIiwKKyAgICAgICAgICAgICJjYXRlZ29yeSI6ICJXb3JrYXJvdW5kcyIs
CisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiBbCisgICAgICAgICAgICAgICAgIldoZW4gdXBs
b2FkaW5nIHRleHR1cmVzIGZyb20gYW4gcGFjayBidWZmZXIsIHNvbWUgZHJpdmVycyBjb3VudCBh
biBleHRyYSByb3cgcGFkZGluZyIKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAiaXNzdWUi
OiAiaHR0cDovL2FuZ2xlYnVnLmNvbS8xNTEyIgorICAgICAgICB9LAorCisgICAgICAgIHsKKyAg
ICAgICAgICAgICJuYW1lIjogImVtdWxhdGVfaXNuYW5fZmxvYXQiLAorICAgICAgICAgICAgImNh
dGVnb3J5IjogIldvcmthcm91bmRzIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6IFsKKyAg
ICAgICAgICAgICAgICAiVXNpbmcgaXNuYW4oKSBvbiBoaWdocCBmbG9hdCB3aWxsIGdldCB3cm9u
ZyBhbnN3ZXIiCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImlzc3VlIjogImh0dHA6Ly9j
cmJ1Zy5jb20vNjUwNTQ3IgorICAgICAgICB9LAorCisgICAgICAgIHsKKyAgICAgICAgICAgICJu
YW1lIjogInVzZV91bnVzZWRfYmxvY2tzX3dpdGhfc3RhbmRhcmRfb3Jfc2hhcmVkX2xheW91dCIs
CisgICAgICAgICAgICAiY2F0ZWdvcnkiOiAiV29ya2Fyb3VuZHMiLAorICAgICAgICAgICAgImRl
c2NyaXB0aW9uIjogWworICAgICAgICAgICAgICAgICJVbnVzZWQgc3RkMTQwIG9yIHNoYXJlZCB1
bmlmb3JtIGJsb2NrcyB3aWxsIGJlIHRyZWF0ZWQgYXMgaW5hY3RpdmUiCisgICAgICAgICAgICBd
CisgICAgICAgIH0sCisKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAicmVtb3ZlX2lu
dmFyaWFudF9hbmRfY2VudHJvaWRfZm9yX0VTU0wzIiwKKyAgICAgICAgICAgICJjYXRlZ29yeSI6
ICJXb3JrYXJvdW5kcyIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiBbCisgICAgICAgICAg
ICAgICAgIkZpeCBzcGVjIGRpZmZlcmVuY2UgYmV0d2VlbiBHTFNMIDQuMSBvciBsb3dlciBhbmQg
RVNTTDMiCisgICAgICAgICAgICBdCisgICAgICAgIH0sCisKKyAgICAgICAgeworICAgICAgICAg
ICAgIm5hbWUiOiAicmV3cml0ZV9mbG9hdF91bmFyeV9taW51c19vcGVyYXRvciIsCisgICAgICAg
ICAgICAiY2F0ZWdvcnkiOiAiV29ya2Fyb3VuZHMiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9u
IjogWworICAgICAgICAgICAgICAgICJVc2luZyAnLTxmbG9hdD4nIHdpbGwgZ2V0IHdyb25nIGFu
c3dlciIKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAiaXNzdWUiOiAiaHR0cDovL2NyYnVn
LmNvbS8zMDgzNjYiCisgICAgICAgIH0sCisKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUi
OiAiZW11bGF0ZV9hdGFuXzJfZmxvYXQiLAorICAgICAgICAgICAgImNhdGVnb3J5IjogIldvcmth
cm91bmRzIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6IFsKKyAgICAgICAgICAgICAgICAi
YXRhbih5LCB4KSBtYXkgcmV0dXJuIGEgd3JvbmcgYW5zd2VyIgorICAgICAgICAgICAgXSwKKyAg
ICAgICAgICAgICJpc3N1ZSI6ICJodHRwOi8vY3JidWcuY29tLzY3MjM4MCIKKyAgICAgICAgfSwK
KworICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJyZWFwcGx5X1VCT19iaW5kaW5nc19h
ZnRlcl91c2luZ19iaW5hcnlfcHJvZ3JhbSIsCisgICAgICAgICAgICAiY2F0ZWdvcnkiOiAiV29y
a2Fyb3VuZHMiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogWworICAgICAgICAgICAgICAg
ICJTb21lIGRyaXZlcnMgZm9yZ2V0IGFib3V0IFVCTyBiaW5kaW5ncyB3aGVuIHVzaW5nIHByb2dy
YW0gYmluYXJpZXMiCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImlzc3VlIjogImh0dHA6
Ly9hbmdsZWJ1Zy5jb20vMTYzNyIKKyAgICAgICAgfSwKKworICAgICAgICB7CisgICAgICAgICAg
ICAibmFtZSI6ICJlbXVsYXRlX21heF92ZXJ0ZXhfYXR0cmliX3N0cmlkZSIsCisgICAgICAgICAg
ICAiY2F0ZWdvcnkiOiAiV29ya2Fyb3VuZHMiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjog
WworICAgICAgICAgICAgICAgICJTb21lIGRyaXZlcnMgcmV0dXJuIDAgd2hlbiBNQVhfVkVSVEVY
X0FUVFJJQl9TVFJJRUQgcXVlcmllZCIKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAiaXNz
dWUiOiAiaHR0cDovL2FuZ2xlYnVnLmNvbS8xOTM2IgorICAgICAgICB9LAorCisgICAgICAgIHsK
KyAgICAgICAgICAgICJuYW1lIjogImRvbnRfaW5pdGlhbGl6ZV91bmluaXRpYWxpemVkX2xvY2Fs
cyIsCisgICAgICAgICAgICAiY2F0ZWdvcnkiOiAiV29ya2Fyb3VuZHMiLAorICAgICAgICAgICAg
ImRlc2NyaXB0aW9uIjogWworICAgICAgICAgICAgICAgICJJbml0aWFsaXppbmcgdW5pbml0aWFs
aXplZCBsb2NhbHMgY2F1c2VkIG9kZCBiZWhhdmlvciBpbiBhIGZldyBXZWJHTCAyIHRlc3RzIgor
ICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJpc3N1ZSI6ICJodHRwOi8vYW5nbGVidWcuY29t
LzIwNDYiCisgICAgICAgIH0sCisKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAiY2xh
bXBfcG9pbnRfc2l6ZSIsCisgICAgICAgICAgICAiY2F0ZWdvcnkiOiAiV29ya2Fyb3VuZHMiLAor
ICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogWworICAgICAgICAgICAgICAgICJUaGUgcG9pbnQg
c2l6ZSByYW5nZSByZXBvcnRlZCBmcm9tIHRoZSBBUEkgaXMgaW5jb25zaXN0ZW50IHdpdGggdGhl
IGFjdHVhbCBiZWhhdmlvciIKKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKworICAgICAgICB7
CisgICAgICAgICAgICAibmFtZSI6ICJkb250X3VzZV9sb29wc190b19pbml0aWFsaXplX3Zhcmlh
YmxlcyIsCisgICAgICAgICAgICAiY2F0ZWdvcnkiOiAiV29ya2Fyb3VuZHMiLAorICAgICAgICAg
ICAgImRlc2NyaXB0aW9uIjogWworICAgICAgICAgICAgICAgICJGb3IgbG9vcHMgdXNlZCB0byBp
bml0aWFsaXplIHZhcmlhYmxlcyBoaXQgbmF0aXZlIEdMU0wgY29tcGlsZXIgYnVncyIKKyAgICAg
ICAgICAgIF0sCisgICAgICAgICAgICAiaXNzdWUiOiAiaHR0cDovL2NyYnVnLmNvbS84MDk0MjIi
CisgICAgICAgIH0sCisKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAiY2xhbXBfZnJh
Z19kZXB0aCIsCisgICAgICAgICAgICAiY2F0ZWdvcnkiOiAiV29ya2Fyb3VuZHMiLAorICAgICAg
ICAgICAgImRlc2NyaXB0aW9uIjogWworICAgICAgICAgICAgICAgICJnbF9GcmFnRGVwdGggaXMg
bm90IGNsYW1wZWQgY29ycmVjdGx5IHdoZW4gcmVuZGVyaW5nIHRvIGEgZmxvYXRpbmcgcG9pbnQg
ZGVwdGggYnVmZmVyIgorICAgICAgICAgICAgXQorICAgICAgICB9LAorCisgICAgICAgIHsKKyAg
ICAgICAgICAgICJuYW1lIjogInJld3JpdGVfcmVwZWF0ZWRfYXNzaWduX3RvX3N3aXp6bGVkIiwK
KyAgICAgICAgICAgICJjYXRlZ29yeSI6ICJXb3JrYXJvdW5kcyIsCisgICAgICAgICAgICAiZGVz
Y3JpcHRpb24iOiBbCisgICAgICAgICAgICAgICAgIlJlcGVhdGVkIGFzc2lnbm1lbnQgdG8gc3dp
enpsZWQgdmFsdWVzIGluc2lkZSBhICIsCisgICAgICAgICAgICAgICAgIkdMU0wgdXNlci1kZWZp
bmVkIGZ1bmN0aW9uIGhhdmUgaW5jb3JyZWN0IHJlc3VsdHMiCisgICAgICAgICAgICBdCisgICAg
ICAgIH0sCisKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAiZGlzYWJsZV9ibGVuZF9m
dW5jX2V4dGVuZGVkIiwKKyAgICAgICAgICAgICJjYXRlZ29yeSI6ICJXb3JrYXJvdW5kcyIsCisg
ICAgICAgICAgICAiZGVzY3JpcHRpb24iOiBbCisgICAgICAgICAgICAgICAgIkFSQl9ibGVuZF9m
dW5jX2V4dGVuZGVkIGRvZXMgbm90IHBhc3MgdGhlIHRlc3RzIgorICAgICAgICAgICAgXSwKKyAg
ICAgICAgICAgICJpc3N1ZSI6ICJodHRwOi8vYW5nbGVidWcuY29tLzEwODUiCisgICAgICAgIH0s
CisKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAidW5zaXplZF9TUkdCX3JlYWRfcGl4
ZWxzX2RvZXNudF90cmFuc2Zvcm0iLAorICAgICAgICAgICAgImNhdGVnb3J5IjogIldvcmthcm91
bmRzIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6IFsKKyAgICAgICAgICAgICAgICAiRHJp
dmVycyByZXR1cm5pbmcgcmF3IHNSR0IgdmFsdWVzIGluc3RlYWQgb2YgbGluZWFyaXplZCB2YWx1
ZXMgd2hlbiBjYWxsaW5nIGdsUmVhZFBpeGVscyAiLAorICAgICAgICAgICAgICAgICJvbiB1bnNp
emVkIHNSR0IgdGV4dHVyZSBmb3JtYXRzIgorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJp
c3N1ZSI6ICJodHRwOi8vY3JidWcuY29tLzU1MDI5MiBodHRwOi8vY3JidWcuY29tLzU2NTE3OSIK
KyAgICAgICAgfSwKKworICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJxdWVyeV9jb3Vu
dGVyX2JpdHNfZ2VuZXJhdGVzX2Vycm9ycyIsCisgICAgICAgICAgICAiY2F0ZWdvcnkiOiAiV29y
a2Fyb3VuZHMiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogWworICAgICAgICAgICAgICAg
ICJEcml2ZXJzIGdlbmVyYXRlIGVycm9ycyB3aGVuIHF1ZXJ5aW5nIHRoZSBudW1iZXIgb2YgYml0
cyBpbiB0aW1lciBxdWVyaWVzIgorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJpc3N1ZSI6
ICJodHRwOi8vYW5nbGVidWcuY29tLzMwMjciCisgICAgICAgIH0sCisKKyAgICAgICAgeworICAg
ICAgICAgICAgIm5hbWUiOiAiZG9udF9yZWxpbmtfcHJvZ3JhbXNfaW5fcGFyYWxsZWwiLAorICAg
ICAgICAgICAgImNhdGVnb3J5IjogIldvcmthcm91bmRzIiwKKyAgICAgICAgICAgICJkZXNjcmlw
dGlvbiI6IFsKKyAgICAgICAgICAgICAgICAiUmVsaW5raW5nIGEgcHJvZ3JhbSBpbiBwYXJhbGxl
bCBpcyBidWdneSIKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAiaXNzdWUiOiAiaHR0cDov
L2FuZ2xlYnVnLmNvbS8zMDQ1IgorICAgICAgICB9LAorCisgICAgICAgIHsKKyAgICAgICAgICAg
ICJuYW1lIjogImRpc2FibGVfd29ya2VyX2NvbnRleHRzIiwKKyAgICAgICAgICAgICJjYXRlZ29y
eSI6ICJXb3JrYXJvdW5kcyIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiBbCisgICAgICAg
ICAgICAgICAgIlNvbWUgdGVzdHMgaGF2ZSBiZWVuIHNlZW4gdG8gZmFpbCB1c2luZyB3b3JrZXIg
Y29udGV4dHMiCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImlzc3VlIjogImh0dHA6Ly9j
cmJ1Zy5jb20vODQ5NTc2IgorICAgICAgICB9LAorCisgICAgICAgIHsKKyAgICAgICAgICAgICJu
YW1lIjogImxpbWl0X21heF90ZXh0dXJlX3NpemVfdG9fNDA5NiIsCisgICAgICAgICAgICAiY2F0
ZWdvcnkiOiAiV29ya2Fyb3VuZHMiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogWworICAg
ICAgICAgICAgICAgICJMaW1pdCBtYXggdGV4dHVyZSBzaXplIHRvIDQwOTYgdG8gYXZvaWQgZnJl
cXVlbnQgIiwKKyAgICAgICAgICAgICAgICAib3V0LW9mLW1lbW9yeSBlcnJvcnMiCisgICAgICAg
ICAgICBdLAorICAgICAgICAgICAgImlzc3VlIjogImh0dHA6Ly9jcmJ1Zy5jb20vOTI3NDcwIgor
ICAgICAgICB9LAorCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogImxpbWl0X21heF9N
U0FBX3NhbXBsZXNfdG9fNCIsCisgICAgICAgICAgICAiY2F0ZWdvcnkiOiAiV29ya2Fyb3VuZHMi
LAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogWworICAgICAgICAgICAgICAgICJWYXJpb3Vz
IHJlbmRlcmluZyBidWdzIGhhdmUgYmVlbiBvYnNlcnZlZCB3aGVuIHVzaW5nIGhpZ2hlciBNU0FB
IGNvdW50cyIKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAiaXNzdWUiOiAiaHR0cDovL2Ny
YnVnLmNvbS83OTcyNDMiCisgICAgICAgIH0sCisKKyAgICAgICAgeworICAgICAgICAgICAgIm5h
bWUiOiAiYWxsb3dfY2xlYXJfZm9yX3JvYnVzdF9yZXNvdXJjZV9pbml0IiwKKyAgICAgICAgICAg
ICJjYXRlZ29yeSI6ICJXb3JrYXJvdW5kcyIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiBb
CisgICAgICAgICAgICAgICAgIlVzaW5nIGdsQ2xlYXIgZm9yIHJvYnVzdCByZXNvdXJjZSBpbml0
aWFsaXphdGlvbiBpcyBidWdneSBvbiBzb21lIGRyaXZlcnMgYW5kIGxlYWRzIHRvICIsCisgICAg
ICAgICAgICAgICAgInRleHR1cmUgY29ycnVwdGlvbi4gRGVmYXVsdCB0byBkYXRhIHVwbG9hZHMg
ZXhjZXB0IG9uIE1hY09TIHdoZXJlIGl0IGlzIHZlcnkgc2xvdy4iCisgICAgICAgICAgICBdLAor
ICAgICAgICAgICAgImlzc3VlIjogImh0dHBzOi8vY3JidWcuY29tLzg0ODk1MiBodHRwOi8vY3Ji
dWcuY29tLzg4MzI3NiIKKyAgICAgICAgfSwKKworICAgICAgICB7CisgICAgICAgICAgICAibmFt
ZSI6ICJjbGFtcF9hcnJheV9hY2Nlc3MiLAorICAgICAgICAgICAgImNhdGVnb3J5IjogIldvcmth
cm91bmRzIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6IFsKKyAgICAgICAgICAgICAgICAi
Q2xhbXAgdW5pZm9ybSBhcnJheSBhY2Nlc3MgdG8gYXZvaWQgcmVhZGluZyBpbnZhbGlkIG1lbW9y
eS4iCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImlzc3VlIjogImh0dHA6Ly9hbmdsZWJ1
Zy5jb20vMjk3OCIKKyAgICAgICAgfSwKKworICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6
ICJyZXNldF9UZXhJbWFnZTJEX2Jhc2VfbGV2ZWwiLAorICAgICAgICAgICAgImNhdGVnb3J5Ijog
Ildvcmthcm91bmRzIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6IFsKKyAgICAgICAgICAg
ICAgICAiUmVzZXQgdGV4dHVyZSBiYXNlIGxldmVsIGJlZm9yZSBjYWxsaW5nIGdsVGV4SW1hZ2Uy
RCB0byAiLAorICAgICAgICAgICAgICAgICJ3b3JrIGFyb3VuZCBwaXhlbCBjb21wYXJpc29uIGZh
aWx1cmUuIgorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJpc3N1ZSI6ICJodHRwczovL2Ny
YnVnLmNvbS83MDU4NjUiCisgICAgICAgIH0sCisKKyAgICAgICAgeworICAgICAgICAgICAgIm5h
bWUiOiAiY2xlYXJfdG9femVyb19vcl9vbmVfYnJva2VuIiwKKyAgICAgICAgICAgICJjYXRlZ29y
eSI6ICJXb3JrYXJvdW5kcyIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiBbCisgICAgICAg
ICAgICAgICAgIkNsZWFycyB3aGVuIHRoZSBjbGVhciBjb2xvciBpcyBhbGwgemVyb3Mgb3Igb25l
cyBkbyBub3Qgd29yay4iCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImlzc3VlIjogImh0
dHBzOi8vY3JidWcuY29tLzcxMDQ0MyIKKyAgICAgICAgfSwKKworICAgICAgICB7CisgICAgICAg
ICAgICAibmFtZSI6ICJsaW1pdF9tYXhfM2RfYXJyYXlfdGV4dHVyZV9zaXplX3RvXzEwMjQiLAor
ICAgICAgICAgICAgImNhdGVnb3J5IjogIldvcmthcm91bmRzIiwKKyAgICAgICAgICAgICJkZXNj
cmlwdGlvbiI6IFsKKyAgICAgICAgICAgICAgICAiTGltaXQgbWF4IDNkIHRleHR1cmUgc2l6ZSBh
bmQgbWF4IGFycmF5IHRleHR1cmUgbGF5ZXJzIHRvIDEwMjQgdG8gYXZvaWQgc3lzdGVtIGhhbmci
CisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImlzc3VlIjogImh0dHA6Ly9jcmJ1Zy5jb20v
OTI3NDcwIgorICAgICAgICB9LAorCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogImFk
anVzdF9zcmNfZHN0X3JlZ2lvbl9mb3JfQmxpdEZyYW1lYnVmZmVyIiwKKyAgICAgICAgICAgICJj
YXRlZ29yeSI6ICJXb3JrYXJvdW5kcyIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiBbCisg
ICAgICAgICAgICAgICAgIk1hbnkgcGxhdGZvcm1zIGhhdmUgaXNzdWVzIHdpdGggYmxpdEZyYW1l
YnVmZmVyIHdoZW4gdGhlIHBhcmFtZXRlcnMgYXJlIGxhcmdlLiIKKyAgICAgICAgICAgIF0sCisg
ICAgICAgICAgICAiaXNzdWUiOiAiaHR0cDovL2NyYnVnLmNvbS84MzAwNDYiCisgICAgICAgIH0s
CisKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAiY2xpcF9zcmNfcmVnaW9uX2Zvcl9C
bGl0RnJhbWVidWZmZXIiLAorICAgICAgICAgICAgImNhdGVnb3J5IjogIldvcmthcm91bmRzIiwK
KyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6IFsKKyAgICAgICAgICAgICAgICAiSXNzdWVzIHdp
dGggYmxpdEZyYW1lYnVmZmVyIHdoZW4gdGhlIHBhcmFtZXRlcnMgZG9uJ3QgbWF0Y2ggdGhlIGZy
YW1lYnVmZmVyIHNpemUuIgorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJpc3N1ZSI6ICJo
dHRwOi8vY3JidWcuY29tLzgzMDA0NiIKKyAgICAgICAgfSwKKworICAgICAgICB7CisgICAgICAg
ICAgICAibmFtZSI6ICJSR0JfRFhUMV90ZXh0dXJlc19zYW1wbGVfemVyb19hbHBoYSIsCisgICAg
ICAgICAgICAiY2F0ZWdvcnkiOiAiV29ya2Fyb3VuZHMiLAorICAgICAgICAgICAgImRlc2NyaXB0
aW9uIjogWworICAgICAgICAgICAgICAgICJTYW1wbGluZyBCTEFDSyB0ZXhlbHMgZnJvbSBSR0Ig
RFhUMSB0ZXh0dXJlcyByZXR1cm5zIHRyYW5zcGFyZW50IGJsYWNrIG9uIE1hYy4iCisgICAgICAg
ICAgICBdLAorICAgICAgICAgICAgImlzc3VlIjogImh0dHA6Ly9hbmdsZWJ1Zy5jb20vMzcyOSIK
KyAgICAgICAgfSwKKworICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJ1bmZvbGRfc2hv
cnRfY2lyY3VpdHMiLAorICAgICAgICAgICAgImNhdGVnb3J5IjogIldvcmthcm91bmRzIiwKKyAg
ICAgICAgICAgICJkZXNjcmlwdGlvbiI6IFsKKyAgICAgICAgICAgICAgICAiTWFjIGluY29ycmVj
dGx5IGV4ZWN1dGVzIGJvdGggc2lkZXMgb2YgJiYgYW5kIHx8IGV4cHJlc3Npb25zIHdoZW4gdGhl
eSBzaG91bGQgIiwKKyAgICAgICAgICAgICAgICAic2hvcnQtY2lyY3VpdC4iCisgICAgICAgICAg
ICBdLAorICAgICAgICAgICAgImlzc3VlIjogImh0dHA6Ly9hbmdsZWJ1Zy5jb20vNDgyIgorICAg
ICAgICB9LAorCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogImVtdWxhdGVfcHJpbWl0
aXZlX3Jlc3RhcnRfZml4ZWRfaW5kZXgiLAorICAgICAgICAgICAgImNhdGVnb3J5IjogIldvcmth
cm91bmRzIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6IFsKKyAgICAgICAgICAgICAgICAi
V2hlbiBHTF9QUklNSVRJVkVfUkVTVEFSVF9GSVhFRF9JTkRFWCBpcyBub3QgYXZhaWxhYmxlLCBl
bXVsYXRlIGl0IHdpdGggIiwKKyAgICAgICAgICAgICAgICAiR0xfUFJJTUlUSVZFX1JFU1RBUlQg
YW5kIGdsUHJpbWl0aXZlUmVzdGFydEluZGV4LiIKKyAgICAgICAgICAgIF0sCisgICAgICAgICAg
ICAiaXNzdWUiOiAiaHR0cDovL2FuZ2xlYnVnLmNvbS8zOTk3IgorICAgICAgICB9LAorCisgICAg
ICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogInNldF9wcmltaXRpdmVfcmVzdGFydF9maXhlZF9p
bmRleF9mb3JfZHJhd19hcnJheXMiLAorICAgICAgICAgICAgImNhdGVnb3J5IjogIldvcmthcm91
bmRzIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6IFsKKyAgICAgICAgICAgICAgICAiU29t
ZSBkcml2ZXJzIGRpc2NhcmQgdmVydGV4IGRhdGEgaW4gRHJhd0FycmF5cyBjYWxscyB3aGVuIHRo
ZSBmaXhlZCBwcmltaXRpdmUgcmVzdGFydCAiLAorICAgICAgICAgICAgICAgICJpbmRleCBpcyB3
aXRoaW4gdGhlIG51bWJlciBvZiBwcmltaXRpdmVzIGJlaW5nIGRyYXduLiIKKyAgICAgICAgICAg
IF0sCisgICAgICAgICAgICAiaXNzdWUiOiAiaHR0cDovL2FuZ2xlYnVnLmNvbS8zOTk3IgorICAg
ICAgICB9LAorCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogInJlbW92ZV9keW5hbWlj
X2luZGV4aW5nX29mX3N3aXp6bGVkX3ZlY3RvciIsCisgICAgICAgICAgICAiY2F0ZWdvcnkiOiAi
V29ya2Fyb3VuZHMiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogWworICAgICAgICAgICAg
ICAgICJEeW5hbWljIGluZGV4aW5nIG9mIHN3aXp6bGVkIGwtdmFsdWVzIGRvZXNuJ3Qgd29yayBj
b3JyZWN0bHkgb24gdmFyaW91cyBwbGF0Zm9ybXMuIgorICAgICAgICAgICAgXSwKKyAgICAgICAg
ICAgICJpc3N1ZSI6ICJodHRwOi8vY3JidWcuY29tLzcwOTM1MSIKKyAgICAgICAgfSwKKworICAg
ICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJwcmVfYWRkX3RleGVsX2ZldGNoX29mZnNldHMi
LAorICAgICAgICAgICAgImNhdGVnb3J5IjogIldvcmthcm91bmRzIiwKKyAgICAgICAgICAgICJk
ZXNjcmlwdGlvbiI6IFsKKyAgICAgICAgICAgICAgICAiSW50ZWwgTWFjIGRyaXZlcnMgbWlzdGFr
ZW5seSBjb25zaWRlciB0aGUgcGFyYW1ldGVyIHBvc2l0aW9uIG9mIG5hZ2F0aXZlIHZhdWxlIGFz
IGludmFsaWQgIiwKKyAgICAgICAgICAgICAgICAiZXZlbiBpZiB0aGUgc3VtIG9mIHBvc2l0aW9u
IGFuZCBvZmZzZXQgaXMgaW4gcmFuZ2UsIHNvIHdlIG5lZWQgdG8gYWRkIHdvcmthcm91bmRzIGJ5
ICIsCisgICAgICAgICAgICAgICAgInJld3JpdGluZyB0ZXhlbEZldGNoT2Zmc2V0KHNhbXBsZXIs
IHBvc2l0aW9uLCBsb2QsIG9mZnNldCkgaW50byB0ZXhlbEZldGNoKHNhbXBsZXIsICIsCisgICAg
ICAgICAgICAgICAgInBvc2l0aW9uICsgb2Zmc2V0LCBsb2QpLiIKKyAgICAgICAgICAgIF0sCisg
ICAgICAgICAgICAiaXNzdWUiOiAiaHR0cDovL2NyYnVnLmNvbS82NDI2MDUiCisgICAgICAgIH0s
CisKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAicmVnZW5lcmF0ZV9zdHJ1Y3RfbmFt
ZXMiLAorICAgICAgICAgICAgImNhdGVnb3J5IjogIldvcmthcm91bmRzIiwKKyAgICAgICAgICAg
ICJkZXNjcmlwdGlvbiI6IFsKKyAgICAgICAgICAgICAgICAiQWxsIE1hYyBkcml2ZXJzIGRvIG5v
dCBoYW5kbGUgc3RydWN0IHNjb3BlcyBjb3JyZWN0bHkuIFRoaXMgd29ya2Fyb3VuZCBvdmVyd3Jp
dGVzIGEgc3RydWN0IiwKKyAgICAgICAgICAgICAgICAibmFtZSB3aXRoIGEgdW5pcXVlIHByZWZp
eC4iCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImlzc3VlIjogImh0dHA6Ly9jcmJ1Zy5j
b20vNDAzOTU3IgorICAgICAgICB9LAorCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjog
InJlYWRfcGl4ZWxzX3VzaW5nX2ltcGxlbWVudGF0aW9uX2NvbG9yX3JlYWRfZm9ybWF0X2Zvcl9u
b3JtMTYiLAorICAgICAgICAgICAgImNhdGVnb3J5IjogIldvcmthcm91bmRzIiwKKyAgICAgICAg
ICAgICJkZXNjcmlwdGlvbiI6IFsKKyAgICAgICAgICAgICAgICAiUXVpdGUgc29tZSBPcGVuR0wg
RVMgZHJpdmVycyBkb24ndCBpbXBsZW1lbnQgcmVhZFBpeGVscyBmb3IgUkdCQS9VTlNJR05FRF9T
SE9SVCBmcm9tICIsCisgICAgICAgICAgICAgICAgIkVYVF90ZXh0dXJlX25vcm0xNiBjb3JyZWN0
bHkiCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImlzc3VlIjogImh0dHA6Ly9hbmdsZWJ1
Zy5jb20vNDIxNCIKKyAgICAgICAgfSwKKworICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6
ICJmbHVzaF9iZWZvcmVfZGVsZXRlX3RleHR1cmVfaWZfY29waWVkX3RvIiwKKyAgICAgICAgICAg
ICJjYXRlZ29yeSI6ICJXb3JrYXJvdW5kcyIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiBb
CisgICAgICAgICAgICAgICAgIlNvbWUgZHJpdmVycyB0cmFjayBDb3B5VGV4e1N1Yn1JbWFnZSB0
ZXh0dXJlIGRlcGVuZGVuY2llcyBpbmNvcnJlY3RseS4gRmx1c2giLAorICAgICAgICAgICAgICAg
ICIgYmVmb3JlIGdsRGVsZXRlVGV4dHVyZXMgaW4gdGhpcyBjYXNlIgorICAgICAgICAgICAgXSwK
KyAgICAgICAgICAgICJpc3N1ZSI6ICJodHRwOi8vYW5nbGVidWcuY29tLzQyNjciCisgICAgICAg
IH0sCisKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAicmV3cml0ZV9yb3dfbWFqb3Jf
bWF0cmljZXMiLAorICAgICAgICAgICAgImNhdGVnb3J5IjogIldvcmthcm91bmRzIiwKKyAgICAg
ICAgICAgICJkZXNjcmlwdGlvbiI6IFsKKyAgICAgICAgICAgICAgICAiUmV3cml0ZSByb3cgbWFq
b3IgbWF0cmljZXMgaW4gc2hhZGVycyBhcyBjb2x1bW4gbWFqb3IgYXMgYSBkcml2ZXIgYnVnIHdv
cmthcm91bmQiCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImlzc3VlIjogImh0dHA6Ly9h
bmdsZWJ1Zy5jb20vMjI3MyIKKyAgICAgICAgfSwKKworICAgICAgICB7CisgICAgICAgICAgICAi
bmFtZSI6ICJkaXNhYmxlX2RyYXdfYnVmZmVyc19pbmRleGVkIiwKKyAgICAgICAgICAgICJjYXRl
Z29yeSI6ICJXb3JrYXJvdW5kcyIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiBbCisgICAg
ICAgICAgICAgICAgIkRpc2FibGUgT0VTX2RyYXdfYnVmZmVyc19pbmRleGVkIGV4dGVuc2lvbi4i
CisgICAgICAgICAgICBdCisgICAgICAgIH0sCisKKyAgICAgICAgeworICAgICAgICAgICAgIm5h
bWUiOiAiZGlzYWJsZV9zZW1hcGhvcmVfZmQiLAorICAgICAgICAgICAgImNhdGVnb3J5IjogIldv
cmthcm91bmRzIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6IFsKKyAgICAgICAgICAgICAg
ICAiRGlzYWJsZSBHTF9FWFRfc2VtYXBob3JlX2ZkIGV4dGVuc2lvbiIKKyAgICAgICAgICAgIF0s
CisgICAgICAgICAgICAiaXNzdWUiOiAiaHR0cHM6Ly9jcmJ1Zy5jb20vMTA0NjQ2MiIKKyAgICAg
ICAgfSwKKworICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJkaXNhYmxlX3RpbWVzdGFt
cF9xdWVyaWVzIiwKKyAgICAgICAgICAgICJjYXRlZ29yeSI6ICJXb3JrYXJvdW5kcyIsCisgICAg
ICAgICAgICAiZGVzY3JpcHRpb24iOiBbCisgICAgICAgICAgICAgICAgIkRpc2FibGUgR0xfRVhU
X2Rpc2pvaW50X3RpbWVyX3F1ZXJ5IGV4dGVuc2lvbiIKKyAgICAgICAgICAgIF0sCisgICAgICAg
ICAgICAiaXNzdWUiOiAiaHR0cHM6Ly9jcmJ1Zy5jb20vODExNjYxIgorICAgICAgICB9LAorCisg
ICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogImRlY29kZV9lbmNvZGVfU1JHQl9mb3JfR2Vu
ZXJhdGVNaXBtYXAiLAorICAgICAgICAgICAgImNhdGVnb3J5IjogIldvcmthcm91bmRzIiwKKyAg
ICAgICAgICAgICJkZXNjcmlwdGlvbiI6IFsKKyAgICAgICAgICAgICAgICAiRGVjb2RlIGFuZCBl
bmNvZGUgYmVmb3JlIGdlbmVyYXRlTWlwbWFwIGZvciBzcmdiIGZvcm1hdCB0ZXh0dXJlcy4iCisg
ICAgICAgICAgICBdLAorICAgICAgICAgICAgImlzc3VlIjogImh0dHA6Ly9hbmdsZWJ1Zy5jb20v
NDY0NiIKKyAgICAgICAgfSwKKworICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJlbXVs
YXRlX0NvcHlUZXhJbWFnZTJEX2Zyb21fcmVuZGVyYnVmZmVycyIsCisgICAgICAgICAgICAiY2F0
ZWdvcnkiOiAiV29ya2Fyb3VuZHMiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogWworICAg
ICAgICAgICAgICAgICJDb3B5VGV4SW1hZ2UyRCBzcHVyaW91c2x5IHJldHVybnMgZXJyb3JzIG9u
IGlPUyB3aGVuIGNvcHlpbmcgZnJvbSByZW5kZXJidWZmZXJzLiIKKyAgICAgICAgICAgIF0sCisg
ICAgICAgICAgICAiaXNzdWUiOiAiaHR0cHM6Ly9hbmdsZWJ1Zy5jb20vNDY3NCIKKyAgICAgICAg
fSwKKworICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJkaXNhYmxlX0dQVV9zd2l0Y2hp
bmdfc3VwcG9ydCIsCisgICAgICAgICAgICAiY2F0ZWdvcnkiOiAiV29ya2Fyb3VuZHMiLAorICAg
ICAgICAgICAgImRlc2NyaXB0aW9uIjogWworICAgICAgICAgICAgICAgICJEaXNhYmxlIEdQVSBz
d2l0Y2hpbmcgc3VwcG9ydCAodXNlIG9ubHkgdGhlIGxvdy1wb3dlciBHUFUpIG9uIG9sZGVyIE1h
Y0Jvb2sgUHJvcy4iCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImlzc3VlIjogImh0dHBz
Oi8vY3JidWcuY29tLzEwOTE4MjQiCisgICAgICAgIH0sCisKKyAgICAgICAgeworICAgICAgICAg
ICAgIm5hbWUiOiAiZGlzYWJsZV9uYXRpdmVfcGFyYWxsZWxfY29tcGlsZSIsCisgICAgICAgICAg
ICAiY2F0ZWdvcnkiOiAiV29ya2Fyb3VuZHMiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjog
WworICAgICAgICAgICAgICAgICJEbyBub3QgdXNlIG5hdGl2ZSBLSFJfcGFyYWxsZWxfc2hhZGVy
X2NvbXBpbGUgZXZlbiB3aGVuIGF2YWlsYWJsZS4iCisgICAgICAgICAgICBdLAorICAgICAgICAg
ICAgImlzc3VlIjogImh0dHA6Ly9jcmJ1Zy5jb20vMTA5NDg2OSIKKyAgICAgICAgfSwKKworICAg
ICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJlbXVsYXRlX3BhY2tfc2tpcF9yb3dzX2FuZF9w
YWNrX3NraXBfcGl4ZWxzIiwKKyAgICAgICAgICAgICJjYXRlZ29yeSI6ICJXb3JrYXJvdW5kcyIs
CisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiBbCisgICAgICAgICAgICAgICAgIkdMX1BBQ0tf
U0tJUF9ST1dTIGFuZCBHTF9QQUNLX1NLSVBfUElYRUxTIGFyZSBpZ25vcmVkIGluIEFwcGxlJ3Mg
T3BlbkdMIGRyaXZlci4iCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImlzc3VlIjogImh0
dHBzOi8vYW5nbGVidWcuY29tLzQ4NDkiCisgICAgICAgIH0sCisKKyAgICAgICAgeworICAgICAg
ICAgICAgIm5hbWUiOiAiY2xhbXBfbXNjX3JhdGUiLAorICAgICAgICAgICAgImNhdGVnb3J5Ijog
Ildvcmthcm91bmRzIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6IFsKKyAgICAgICAgICAg
ICAgICAiU29tZSBkcml2ZXJzIHJldHVybiBib2d1cyB2YWx1ZXMgZm9yIEdldE1zY1JhdGUsIHNv
IHdlIGNsYW1wIGl0IHRvIDMwSHoiCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImlzc3Vl
IjogImh0dHBzOi8vY3JidWcuY29tLzEwNDIzOTMiCisgICAgICAgIH0sCisKKyAgICAgICAgewor
ICAgICAgICAgICAgIm5hbWUiOiAiYmluZF90cmFuc2Zvcm1fZmVlZGJhY2tfYnVmZmVyX2JlZm9y
ZV9iaW5kX2J1ZmZlcl9yYW5nZSIsCisgICAgICAgICAgICAiY2F0ZWdvcnkiOiAiV29ya2Fyb3Vu
ZHMiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogWworICAgICAgICAgICAgICAgICJCaW5k
IHRyYW5zZm9ybSBmZWVkYmFjayBidWZmZXJzIHRvIHRoZSBnZW5lcmljIGJpbmRpbmcgcG9pbnQg
YmVmb3JlIGNhbGxpbmcgIiwKKyAgICAgICAgICAgICAgICAiZ2xCaW5kQnVmZmVyQmFzZSBvciBn
bEJpbmRCdWZmZXJSYW5nZS4iCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImlzc3VlIjog
Imh0dHBzOi8vYW5nbGVidWcuY29tLzUxNDAiCisgICAgICAgIH0sCisKKyAgICAgICAgeworICAg
ICAgICAgICAgIm5hbWUiOiAiZGlzYWJsZV9zeW5jX2NvbnRyb2xfc3VwcG9ydCIsCisgICAgICAg
ICAgICAiY2F0ZWdvcnkiOiAiV29ya2Fyb3VuZHMiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9u
IjogWworICAgICAgICAgICAgICAgICJTcGVjdWxhdGl2ZSBmaXggZm9yIGlzc3VlcyBvbiBMaW51
eC9XYXlsYW5kIHdoZXJlIGV4cG9zaW5nIEdMWF9PTUxfc3luY19jb250cm9sIHJlbmRlcnMgIiwK
KyAgICAgICAgICAgICAgICAiQ2hyb21lIHVudXNhYmxlIgorICAgICAgICAgICAgXSwKKyAgICAg
ICAgICAgICJpc3N1ZSI6ICJodHRwczovL2NyYnVnLmNvbS8xMTM3ODUxIgorICAgICAgICB9LAor
CisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogImtlZXBfYnVmZmVyX3NoYWRvd19jb3B5
IiwKKyAgICAgICAgICAgICJjYXRlZ29yeSI6ICJXb3JrYXJvdW5kcyIsCisgICAgICAgICAgICAi
ZGVzY3JpcHRpb24iOiBbCisgICAgICAgICAgICAgICAgIk1haW50YWluIGEgc2hhZG93IGNvcHkg
b2YgYnVmZmVyIGRhdGEgd2hlbiB0aGUgR0wgQVBJIGRvZXMgbm90IHBlcm1pdCByZWFkaW5nIGRh
dGEgYmFjay4iCisgICAgICAgICAgICBdCisgICAgICAgIH0sCisKKyAgICAgICAgeworICAgICAg
ICAgICAgIm5hbWUiOiAic2V0X3plcm9fbGV2ZWxfYmVmb3JlX0dlbmVyYXRlTWlwbWFwIiwKKyAg
ICAgICAgICAgICJjYXRlZ29yeSI6ICJXb3JrYXJvdW5kcyIsCisgICAgICAgICAgICAiZGVzY3Jp
cHRpb24iOiBbCisgICAgICAgICAgICAgICAgImdsR2VuZXJhdGVNaXBtYXAgZmFpbHMgaWYgdGhl
IHplcm8gdGV4dHVyZSBsZXZlbCBpcyBub3Qgc2V0IG9uIHNvbWUgTWFjIGRyaXZlcnMuIgorICAg
ICAgICAgICAgXQorICAgICAgICB9LAorCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjog
InByb21vdGVfcGFja2VkX2Zvcm1hdHNfdG9fOF9iaXRfcGVyX2NoYW5uZWwiLAorICAgICAgICAg
ICAgImNhdGVnb3J5IjogIldvcmthcm91bmRzIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6
IFsKKyAgICAgICAgICAgICAgICAiUGFja2VkIGNvbG9yIGZvcm1hdHMgYXJlIGJ1Z2d5IG9uIE1h
Y3Mgd2l0aCBBTUQgR1BVcyIKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAiaXNzdWUiOiAi
aHR0cDovL2FuZ2xlYnVnLmNvbS81NDY5IgorICAgICAgICB9LAorCisgICAgICAgIHsKKyAgICAg
ICAgICAgICJuYW1lIjogImluaXRfZnJhZ21lbnRfb3V0cHV0X3ZhcmlhYmxlcyIsCisgICAgICAg
ICAgICAiY2F0ZWdvcnkiOiAiV29ya2Fyb3VuZHMiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9u
IjogWworICAgICAgICAgICAgICAgICJObyBpbml0IGdsX0ZyYWdDb2xvciBjYXVzZXMgY29udGV4
dCBsb3N0IgorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJpc3N1ZSI6ICJodHRwOi8vY3Ji
dWcuY29tLzExNzEzNzEiCisgICAgICAgIH0sCisKKyAgICAgICAgeworICAgICAgICAgICAgIm5h
bWUiOiAic2hpZnRfaW5zdGFuY2VkX2FycmF5X2RhdGFfd2l0aF9vZmZzZXQiLAorICAgICAgICAg
ICAgImNhdGVnb3J5IjogIldvcmthcm91bmRzIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6
IFsKKyAgICAgICAgICAgICAgICAiZ2xEcmF3QXJyYXlzSW5zdGFuY2VkIGlzIGJ1Z2d5IG9uIGNl
cnRhaW4gbmV3IE1hYyBJbnRlbCBHUFVzIgorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJp
c3N1ZSI6ICJodHRwOi8vY3JidWcuY29tLzExNDQyMDciCisgICAgICAgIH0sCisKKyAgICAgICAg
eworICAgICAgICAgICAgIm5hbWUiOiAic3luY192ZXJ0ZXhfYXJyYXlzX3RvX2RlZmF1bHQiLAor
ICAgICAgICAgICAgImNhdGVnb3J5IjogIldvcmthcm91bmRzIiwKKyAgICAgICAgICAgICJkZXNj
cmlwdGlvbiI6IFsKKyAgICAgICAgICAgICAgICAiT25seSB1c2UgdGhlIGRlZmF1bHQgVkFPIGJl
Y2F1c2Ugb2YgbWlzc2luZyBzdXBwb3J0IG9yIGRyaXZlciBidWdzIgorICAgICAgICAgICAgXSwK
KyAgICAgICAgICAgICJpc3N1ZSI6ICJodHRwOi8vYW5nbGVidWcuY29tLzU1NzciCisgICAgICAg
IH0sCisKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAic2FuaXRpemVfQU1ER1BVX3Jl
bmRlcmVyX3N0cmluZyIsCisgICAgICAgICAgICAiY2F0ZWdvcnkiOiAiV29ya2Fyb3VuZHMiLAor
ICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogWworICAgICAgICAgICAgICAgICJTdHJpcCBwcmVj
aXNlIGtlcm5lbCBhbmQgRFJNIHZlcnNpb24gaW5mb3JtYXRpb24gZnJvbSBhbWRncHUgcmVuZGVy
ZXIgc3RyaW5ncy4iCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImlzc3VlIjogImh0dHA6
Ly9jcmJ1Zy5jb20vMTE4MTE5MyIKKyAgICAgICAgfSwKKworICAgICAgICB7CisgICAgICAgICAg
ICAibmFtZSI6ICJ1bmJpbmRfRkJPX2JlZm9yZV9zd2l0Y2hpbmdfY29udGV4dCIsCisgICAgICAg
ICAgICAiY2F0ZWdvcnkiOiAiV29ya2Fyb3VuZHMiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9u
IjogWworICAgICAgICAgICAgICAgICJJbWFnaW5hdGlvbiBHTCBkcml2ZXJzIGFyZSBidWdneSB3
aXRoIGNvbnRleHQgc3dpdGNoaW5nLiIKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAiaXNz
dWUiOiAiaHR0cDovL2NyYnVnLmNvbS8xMTgxMTkzIgorICAgICAgICB9LAorCisgICAgICAgIHsK
KyAgICAgICAgICAgICJuYW1lIjogImZsdXNoX29uX2ZyYW1lYnVmZmVyX2NoYW5nZSIsCisgICAg
ICAgICAgICAiY2F0ZWdvcnkiOiAiV29ya2Fyb3VuZHMiLAorICAgICAgICAgICAgImRlc2NyaXB0
aW9uIjogWworICAgICAgICAgICAgICAgICJTd2l0Y2hpbmcgZnJhbWVidWZmZXJzIHdpdGhvdXQg
YSBmbHVzaCBjYW4gbGVhZCB0byAiLAorICAgICAgICAgICAgICAgICJjcmFzaGVzIG9uIEludGVs
IDl0aCBHZW5lcmF0aW9uIEdQVSBNYWNzLiIKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAi
aXNzdWUiOiAiaHR0cDovL2NyYnVnLmNvbS8xMTgxMDY4IgorICAgICAgICB9LAorCisgICAgICAg
IHsKKyAgICAgICAgICAgICJuYW1lIjogImRpc2FibGVfbXVsdGlzYW1wbGVkX3JlbmRlcl90b190
ZXh0dXJlIiwKKyAgICAgICAgICAgICJjYXRlZ29yeSI6ICJXb3JrYXJvdW5kcyIsCisgICAgICAg
ICAgICAiZGVzY3JpcHRpb24iOiBbCisgICAgICAgICAgICAgICAgIk1hbnkgZHJpdmVycyBoYXZl
IGJ1Z3Mgd2hlbiB1c2luZyBHTF9FWFRfbXVsdGlzYW1wbGVkX3JlbmRlcl90b190ZXh0dXJlIgor
ICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJpc3N1ZSI6ICJodHRwOi8vYW5nbGVidWcuY29t
LzI4OTQiCisgICAgICAgIH0sCisKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAidXBs
b2FkX3RleHR1cmVfZGF0YV9pbl9jaHVua3MiLAorICAgICAgICAgICAgImNhdGVnb3J5IjogIldv
cmthcm91bmRzIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6IFsKKyAgICAgICAgICAgICAg
ICAiVXBsb2FkIHRleHR1cmUgZGF0YSBpbiA8MTIwa2IgY2h1bmtzIHRvIHdvcmsgYXJvdW5kIE1h
YyBkcml2ZXIgaGFuZ3MgYW5kIGNyYXNoZXMuIgorICAgICAgICAgICAgXSwKKyAgICAgICAgICAg
ICJpc3N1ZSI6ICJodHRwOi8vY3JidWcuY29tLzExODEwNjgiCisgICAgICAgIH0sCisKKyAgICAg
ICAgeworICAgICAgICAgICAgIm5hbWUiOiAiZW11bGF0ZV9pbW11dGFibGVfY29tcHJlc3NlZF90
ZXh0dXJlXzNEIiwKKyAgICAgICAgICAgICJjYXRlZ29yeSI6ICJXb3JrYXJvdW5kcyIsCisgICAg
ICAgICAgICAiZGVzY3JpcHRpb24iOiBbCisgICAgICAgICAgICAgICAgIlVzZSBub24taW1tdXRh
YmxlIHRleHR1cmUgYWxsb2NhdGlvbiB0byB3b3JrIGFyb3VuZCBhIGRyaXZlciBidWcuIgorICAg
ICAgICAgICAgXSwKKyAgICAgICAgICAgICJpc3N1ZSI6ICJodHRwczovL2NyYnVnLmNvbS8xMDYw
MDEyIgorICAgICAgICB9LAorCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogImVtdWxh
dGVfUkdCMTAiLAorICAgICAgICAgICAgImNhdGVnb3J5IjogIldvcmthcm91bmRzIiwKKyAgICAg
ICAgICAgICJkZXNjcmlwdGlvbiI6IFsKKyAgICAgICAgICAgICAgICAiRW11bGF0ZSBSR0IxMCBz
dXBwb3J0IHVzaW5nIFJHQjEwX0EyLiIKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAiaXNz
dWUiOiAiaHR0cHM6Ly9jcmJ1Zy5jb20vMTMwMDU3NSIKKyAgICAgICAgfSwKKworICAgICAgICB7
CisgICAgICAgICAgICAibmFtZSI6ICJhbHdheXNfdW5iaW5kX2ZyYW1lYnVmZmVyX3RleHR1cmVf
MkQiLAorICAgICAgICAgICAgImNhdGVnb3J5IjogIldvcmthcm91bmRzIiwKKyAgICAgICAgICAg
ICJkZXNjcmlwdGlvbiI6IFsKKyAgICAgICAgICAgICAgICAiRm9yY2UgdW5iaW5kIGZyYW1lYnVm
ZmVyVGV4dHVyZTJEIGJlZm9yZSBiaW5kaW5nIHJlbmRlcmJ1ZmZlciB0byB3b3JrIGFyb3VuZCBk
cml2ZXIgYnVnLiIKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAiaXNzdWUiOiAiaHR0cHM6
Ly9hbmdsZWJ1Zy5jb20vNTUzNiIKKyAgICAgICAgfQorICAgIF0KK30KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9UaGlyZFBhcnR5L0FOR0xFL2luY2x1ZGUvcGxhdGZvcm0vbXRsX2ZlYXR1cmVzLmpzb24g
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9pbmNsdWRlL3BsYXRmb3JtL210bF9mZWF0dXJlcy5q
c29uCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjFlOTViZGExM2RhNTFiNzRjZDdhYTMyOTVhYzNhMzZlNTk2YmZiYmIK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9pbmNsdWRlL3BsYXRm
b3JtL210bF9mZWF0dXJlcy5qc29uCkBAIC0wLDAgKzEsMjM0IEBACit7CisgICAgImRlc2NyaXB0
aW9uIjogWworICAgICAgICAiQ29weXJpZ2h0IDIwMjIgVGhlIEFOR0xFIFByb2plY3QgQXV0aG9y
cy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4iLAorICAgICAgICAiVXNlIG9mIHRoaXMgc291cmNlIGNv
ZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSIsCisgICAg
ICAgICJmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLiIsCisgICAgICAgICIiLAorICAgICAgICAi
bXRsX2ZlYXR1cmVzLmpzb246IE9wdGlvbmFsIGZlYXR1cmVzIGZvciB0aGUgTWV0YWwgcmVuZGVy
ZXIuIgorICAgIF0sCisgICAgImZlYXR1cmVzIjogWworICAgICAgICB7CisgICAgICAgICAgICAi
bmFtZSI6ICJoYXNfYmFzZV92ZXJ0ZXhfaW5zdGFuY2VkX2RyYXciLAorICAgICAgICAgICAgImNh
dGVnb3J5IjogIkZlYXR1cmVzIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6IFsKKyAgICAg
ICAgICAgICAgICAiVGhlIHJlbmRlcmVyIHN1cHBvcnRzIGJhc2UgdmVydGV4IGluc3RhbmNlZCBk
cmF3IgorICAgICAgICAgICAgXQorICAgICAgICB9LAorCisgICAgICAgIHsKKyAgICAgICAgICAg
ICJuYW1lIjogImhhc19leHBsaWNpdF9tZW1fYmFycmllciIsCisgICAgICAgICAgICAiY2F0ZWdv
cnkiOiAiRmVhdHVyZXMiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogWworICAgICAgICAg
ICAgICAgICJUaGUgcmVuZGVyZXIgc3VwcG9ydHMgZXhwbGljaXQgbWVtb3J5IGJhcnJpZXIiCisg
ICAgICAgICAgICBdCisgICAgICAgIH0sCisKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUi
OiAiaGFzX2NoZWFwX3JlbmRlcl9wYXNzIiwKKyAgICAgICAgICAgICJjYXRlZ29yeSI6ICJGZWF0
dXJlcyIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiBbCisgICAgICAgICAgICAgICAgIlRo
ZSByZW5kZXJlciBjYW4gY2hlYXBseSBicmVhayBhIHJlbmRlciBwYXNzLiIKKyAgICAgICAgICAg
IF0KKyAgICAgICAgfSwKKworICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJoYXNfbm9u
X3VuaWZvcm1fZGlzcGF0Y2giLAorICAgICAgICAgICAgImNhdGVnb3J5IjogIkZlYXR1cmVzIiwK
KyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6IFsKKyAgICAgICAgICAgICAgICAiVGhlIHJlbmRl
cmVyIHN1cHBvcnRzIG5vbiB1bmlmb3JtIGNvbXB1dGUgc2hhZGVyIGRpc3BhdGNoJ3MgZ3JvdXAg
c2l6ZSIKKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKworICAgICAgICB7CisgICAgICAgICAg
ICAibmFtZSI6ICJoYXNfc2hhZGVyX3N0ZW5jaWxfb3V0cHV0IiwKKyAgICAgICAgICAgICJjYXRl
Z29yeSI6ICJGZWF0dXJlcyIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiBbCisgICAgICAg
ICAgICAgICAgIlRoZSByZW5kZXJlciBzdXBwb3J0cyBzdGVuY2lsIG91dHB1dCBmcm9tIGZyYWdt
ZW50IHNoYWRlciIKKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKworICAgICAgICB7CisgICAg
ICAgICAgICAibmFtZSI6ICJoYXNfdGV4dHVyZV9zd2l6emxlIiwKKyAgICAgICAgICAgICJjYXRl
Z29yeSI6ICJGZWF0dXJlcyIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiBbCisgICAgICAg
ICAgICAgICAgIlRoZSByZW5kZXJlciBzdXBwb3J0cyB0ZXh0dXJlIHN3aXp6bGUiCisgICAgICAg
ICAgICBdCisgICAgICAgIH0sCisKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAiaGFz
X2RlcHRoX2F1dG9fcmVzb2x2ZSIsCisgICAgICAgICAgICAiY2F0ZWdvcnkiOiAiRmVhdHVyZXMi
LAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogWworICAgICAgICAgICAgICAgICJUaGUgcmVu
ZGVyZXIgc3VwcG9ydHMgTVNBQSBkZXB0aCBhdXRvIHJlc29sdmUgYXQgdGhlIGVuZCBvZiByZW5k
ZXIgcGFzcyIKKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKworICAgICAgICB7CisgICAgICAg
ICAgICAibmFtZSI6ICJoYXNfc3RlbmNpbF9hdXRvX3Jlc29sdmUiLAorICAgICAgICAgICAgImNh
dGVnb3J5IjogIkZlYXR1cmVzIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6IFsKKyAgICAg
ICAgICAgICAgICAiVGhlIHJlbmRlcmVyIHN1cHBvcnRzIE1TQUEgc3RlbmNpbCBhdXRvIHJlc29s
dmUgYXQgdGhlIGVuZCBvZiByZW5kZXIgcGFzcyIKKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwK
KworICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJoYXNfZXZlbnRzIiwKKyAgICAgICAg
ICAgICJjYXRlZ29yeSI6ICJGZWF0dXJlcyIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiBb
CisgICAgICAgICAgICAgICAgIlRoZSByZW5kZXJlciBzdXBwb3J0cyBNVEwoU2hhcmVkKUV2ZW50
IgorICAgICAgICAgICAgXQorICAgICAgICB9LAorCisgICAgICAgIHsKKyAgICAgICAgICAgICJu
YW1lIjogImFsbG93X2lubGluZV9jb25zdF92ZXJ0ZXhfZGF0YSIsCisgICAgICAgICAgICAiY2F0
ZWdvcnkiOiAiRmVhdHVyZXMiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogWworICAgICAg
ICAgICAgICAgICJUaGUgcmVuZGVyZXIgc3VwcG9ydHMgdXNpbmcgaW5saW5lIGNvbnN0YW50IGRh
dGEgZm9yIHNtYWxsIGNsaWVudCB2ZXJ0ZXggZGF0YSIKKyAgICAgICAgICAgIF0KKyAgICAgICAg
fSwKKworICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJhbGxvd19zZXBhcmF0ZV9kZXB0
aF9zdGVuY2lsX2J1ZmZlcnMiLAorICAgICAgICAgICAgImNhdGVnb3J5IjogIkZlYXR1cmVzIiwK
KyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6IFsKKyAgICAgICAgICAgICAgICAiU29tZSBBcHBs
ZSBwbGF0Zm9ybXMgc3VjaCBhcyBpT1MgYWxsb3dzIHNlcGFyYXRlIGRlcHRoIGFuZCBzdGVuY2ls
IGJ1ZmZlcnMsICIsCisgICAgICAgICAgICAgICAgIndoZXJlYXMgb3RoZXJzIHN1Y2ggYXMgbWFj
T1MgZG9uJ3QiCisgICAgICAgICAgICBdCisgICAgICAgIH0sCisKKyAgICAgICAgeworICAgICAg
ICAgICAgIm5hbWUiOiAiYWxsb3dfcnVudGltZV9zYW1wbGVyX2NvbXBhcmVfbW9kZSIsCisgICAg
ICAgICAgICAiY2F0ZWdvcnkiOiAiRmVhdHVyZXMiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9u
IjogWworICAgICAgICAgICAgICAgICJUaGUgcmVuZGVyZXIgc3VwcG9ydHMgY2hhbmdpbmcgc2Ft
cGxlcidzIGNvbXBhcmUgbW9kZSBvdXRzaWRlIHNoYWRlcnMiCisgICAgICAgICAgICBdCisgICAg
ICAgIH0sCisKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAiYWxsb3dfc2FtcGxlcl9j
b21wYXJlX2dyYWRpZW50IiwKKyAgICAgICAgICAgICJjYXRlZ29yeSI6ICJGZWF0dXJlcyIsCisg
ICAgICAgICAgICAiZGVzY3JpcHRpb24iOiBbCisgICAgICAgICAgICAgICAgIlRoZSByZW5kZXJl
ciBzdXBwb3J0cyBzYW1wbGVfY29tcGFyZSB3aXRoIGdyYWRpZW50cyIKKyAgICAgICAgICAgIF0K
KyAgICAgICAgfSwKKworICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJhbGxvd19zYW1w
bGVyX2NvbXBhcmVfbG9kIiwKKyAgICAgICAgICAgICJjYXRlZ29yeSI6ICJGZWF0dXJlcyIsCisg
ICAgICAgICAgICAiZGVzY3JpcHRpb24iOiBbCisgICAgICAgICAgICAgICAgIlRoZSByZW5kZXJl
ciBzdXBwb3J0cyBzYW1wbGVfY29tcGFyZSB3aXRoIGxvZCIKKyAgICAgICAgICAgIF0KKyAgICAg
ICAgfSwKKworICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJhbGxvd19idWZmZXJfcmVh
ZF93cml0ZSIsCisgICAgICAgICAgICAiY2F0ZWdvcnkiOiAiRmVhdHVyZXMiLAorICAgICAgICAg
ICAgImRlc2NyaXB0aW9uIjogWworICAgICAgICAgICAgICAgICJUaGUgcmVuZGVyZXIgc3VwcG9y
dHMgYnVmZmVyIHJlYWQgYW5kIHdyaXRlIGluIHRoZSBzYW1lIHNoYWRlciIKKyAgICAgICAgICAg
IF0KKyAgICAgICAgfSwKKworICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJhbGxvd19t
dWx0aXNhbXBsZV9zdG9yZV9hbmRfcmVzb2x2ZSIsCisgICAgICAgICAgICAiY2F0ZWdvcnkiOiAi
RmVhdHVyZXMiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogWworICAgICAgICAgICAgICAg
ICJUaGUgcmVuZGVyZXIgc3VwcG9ydHMgTVNBQSBzdG9yZSBhbmQgcmVzb2x2ZSBpbiB0aGUgc2Ft
ZSBwYXNzIgorICAgICAgICAgICAgXQorICAgICAgICB9LAorCisgICAgICAgIHsKKyAgICAgICAg
ICAgICJuYW1lIjogImFsbG93X2dlbl9tdWx0aXBsZV9taXBzX3Blcl9wYXNzIiwKKyAgICAgICAg
ICAgICJjYXRlZ29yeSI6ICJGZWF0dXJlcyIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiBb
CisgICAgICAgICAgICAgICAgIlRoZSByZW5kZXJlciBzdXBwb3J0cyBnZW5lcmF0aW5nIG11bHRp
cGxlIG1pcG1hcHMgcGVyIHBhc3MiCisgICAgICAgICAgICBdCisgICAgICAgIH0sCisKKyAgICAg
ICAgeworICAgICAgICAgICAgIm5hbWUiOiAiZm9yY2VfRDI0UzhfYXNfdW5zdXBwb3J0ZWQiLAor
ICAgICAgICAgICAgImNhdGVnb3J5IjogIkZlYXR1cmVzIiwKKyAgICAgICAgICAgICJkZXNjcmlw
dGlvbiI6IFsKKyAgICAgICAgICAgICAgICAiRm9yY2UgRGVwdGgyNFN0ZW5jaWw4IGZvcm1hdCBh
cyB1bnN1cHBvcnRlZC4iCisgICAgICAgICAgICBdCisgICAgICAgIH0sCisKKyAgICAgICAgewor
ICAgICAgICAgICAgIm5hbWUiOiAiZm9yY2VfYnVmZmVyX0dQVV9zdG9yYWdlIiwKKyAgICAgICAg
ICAgICJjYXRlZ29yeSI6ICJGZWF0dXJlcyIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiBb
CisgICAgICAgICAgICAgICAgIk9uIHN5c3RlbXMgdGhhdCBzdXBwb3J0IGJvdGggYnVmZmVyJyBt
ZW1vcnkgYWxsb2NhdGlvbiBvbiBHUFUgYW5kIHNoYXJlZCBtZW1vcnkgKHN1Y2ggYXMgIiwKKyAg
ICAgICAgICAgICAgICAgICAgIm1hY09TKSwgZm9yY2UgdXNpbmcgR1BVIG1lbW9yeSBhbGxvY2F0
aW9uIGZvciBidWZmZXJzIGV2ZXJ5dGltZSBvciBub3QuIgorICAgICAgICAgICAgXQorICAgICAg
ICB9LAorCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogImRpcmVjdF9tZXRhbF9nZW5l
cmF0aW9uIiwKKyAgICAgICAgICAgICJjYXRlZ29yeSI6ICJGZWF0dXJlcyIsCisgICAgICAgICAg
ICAiZGVzY3JpcHRpb24iOiBbCisgICAgICAgICAgICAgICAgIkRpcmVjdCB0cmFuc2xhdGlvbiB0
byBNZXRhbC4iCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImlzc3VlIjogImh0dHA6Ly9h
bmdsZWJ1Zy5jb20vNTUwNSIKKyAgICAgICAgfSwKKworICAgICAgICB7CisgICAgICAgICAgICAi
bmFtZSI6ICJmb3JjZV9ub25fQ1NfYmFzZV9taXBtYXBfZ2VuZXJhdGlvbiIsCisgICAgICAgICAg
ICAiY2F0ZWdvcnkiOiAiRmVhdHVyZXMiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogWwor
ICAgICAgICAgICAgICAgICJUdXJuIHRoaXMgZmVhdHVyZSBvbiB0byBkaXNhbGxvdyBDb21wdXRl
IFNoYWRlciBiYXNlZCBtaXBtYXAgZ2VuZXJhdGlvbi4gQ29tcHV0ZSBTaGFkZXIgIiwKKyAgICAg
ICAgICAgICAgICAiYmFzZWQgbWlwbWFwIGdlbmVyYXRpb24gbWlnaHQgY2F1c2UgR1BVIGhhbmcg
b24gc29tZSBvbGRlciBpT1MgZGV2aWNlcy4iCisgICAgICAgICAgICBdCisgICAgICAgIH0sCisK
KyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAiZW11bGF0ZV90cmFuc2Zvcm1fZmVlZGJh
Y2siLAorICAgICAgICAgICAgImNhdGVnb3J5IjogIkZlYXR1cmVzIiwKKyAgICAgICAgICAgICJk
ZXNjcmlwdGlvbiI6IFsKKyAgICAgICAgICAgICAgICAiVHVybiB0aGlzIG9uIHRvIGFsbG93IHRy
YW5zZm9ybSBmZWVkYmFjayBpbiBNZXRhbCB1c2luZyBhIDItcGFzcyBWUyBmb3IgR0xFUzMuIgor
ICAgICAgICAgICAgXQorICAgICAgICB9LAorCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1l
IjogInJld3JpdGVfcm93X21ham9yX21hdHJpY2VzIiwKKyAgICAgICAgICAgICJjYXRlZ29yeSI6
ICJGZWF0dXJlcyIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiBbCisgICAgICAgICAgICAg
ICAgIlJld3JpdGUgcm93IG1ham9yIG1hdHJpY2VzIGluIHNoYWRlcnMgYXMgY29sdW1uIG1ham9y
LiIKKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKworICAgICAgICB7CisgICAgICAgICAgICAi
bmFtZSI6ICJpbnRlbF9leHBsaWNpdF9ib29sX2Nhc3Rfd29ya2Fyb3VuZCIsCisgICAgICAgICAg
ICAiY2F0ZWdvcnkiOiAiV29ya2Fyb3VuZHMiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjog
WworICAgICAgICAgICAgICAgICJJbnNlcnQgZXhwbGljaXQgY2FzdHMgZm9yIGZsb2F0L2RvdWJs
ZS91bnNpZ25lZC9zaWduZWQgaW50IG9uIG1hY09TIDEwLjE1IHdpdGggSW50ZWwgIiwKKyAgICAg
ICAgICAgICAgICAiZHJpdmVyIgorICAgICAgICAgICAgXQorICAgICAgICB9LAorCisgICAgICAg
IHsKKyAgICAgICAgICAgICJuYW1lIjogImludGVsX2Rpc2FibGVfZmFzdF9tYXRoIiwKKyAgICAg
ICAgICAgICJjYXRlZ29yeSI6ICJXb3JrYXJvdW5kcyIsCisgICAgICAgICAgICAiZGVzY3JpcHRp
b24iOiBbCisgICAgICAgICAgICAgICAgIkRpc2FibGUgZmFzdCBtYXRoIGluIGF0YW4gYW5kIGlu
dmFyaWFuY2UgY2FzZXMgd2hlbiBydW5uaW5nIGJlbG93IG1hY09TIDEyLjAiCisgICAgICAgICAg
ICBdCisgICAgICAgIH0sCisKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAibXVsdGlz
YW1wbGVfY29sb3JfZm9ybWF0X3NoYWRlcl9yZWFkX3dvcmthcm91bmQiLAorICAgICAgICAgICAg
ImNhdGVnb3J5IjogIldvcmthcm91bmRzIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6IFsK
KyAgICAgICAgICAgICAgICAiQWRkIHNoYWRlclJlYWQgdXNhZ2UgdG8gc29tZSBtdWx0aXNhbXBs
ZWQgdGV4dHVyZSBmb3JtYXRzIgorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJpc3N1ZSI6
ICJodHRwOi8vYW5nbGVidWcuY29tLzcwNDkiCisgICAgICAgIH0sCisKKyAgICAgICAgeworICAg
ICAgICAgICAgIm5hbWUiOiAiY29weV9JT1N1cmZhY2VfdG9fbm9uX0lPU3VyZmFjZV9mb3JfcmVh
ZF9vcHRpbWl6YXRpb24iLAorICAgICAgICAgICAgImNhdGVnb3J5IjogIldvcmthcm91bmRzIiwK
KyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6IFsKKyAgICAgICAgICAgICAgICAic29tZSBHUFVz
IGFyZSBmYXN0ZXIgdG8gcmVhZCBhbiBJT1N1cmZhY2UgdGV4dHVyZSBieSBmaXJzdCBjb3B5aW5n
IHRoZSB0ZXh0dXJlIHRvIGEgIiwKKyAgICAgICAgICAgICAgICAibm9uLUlPU3VyZmFjZSB0ZXh0
dXJlIgorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJpc3N1ZSI6ICJodHRwOi8vYW5nbGVi
dWcuY29tLzcxMTciCisgICAgICAgIH0KKyAgICBdCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9BTkdMRS9pbmNsdWRlL3BsYXRmb3JtL3ZrX2ZlYXR1cmVzLmpzb24gYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9BTkdMRS9pbmNsdWRlL3BsYXRmb3JtL3ZrX2ZlYXR1cmVzLmpzb24KbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZDkyZmYzOTkyYTIwZTVmYWY2MDhiNzY2ODRiNmQ1MDViYjEyZGFhMwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL2luY2x1ZGUvcGxhdGZvcm0vdmtfZmVh
dHVyZXMuanNvbgpAQCAtMCwwICsxLDkxMCBAQAoreworICAgICJkZXNjcmlwdGlvbiI6IFsKKyAg
ICAgICAgIkNvcHlyaWdodCAyMDIyIFRoZSBBTkdMRSBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuIiwKKyAgICAgICAgIlVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVy
bmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUiLAorICAgICAgICAiZm91bmQg
aW4gdGhlIExJQ0VOU0UgZmlsZS4iLAorICAgICAgICAiIiwKKyAgICAgICAgInZrX2ZlYXR1cmVz
Lmpzb246IE9wdGlvbmFsIGZlYXR1cmVzIGZvciB0aGUgVnVsa2FuIHJlbmRlcmVyLiIKKyAgICBd
LAorICAgICJmZWF0dXJlcyI6IFsKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAiYmFz
aWNfR0xfbGluZV9yYXN0ZXJpemF0aW9uIiwKKyAgICAgICAgICAgICJjYXRlZ29yeSI6ICJGZWF0
dXJlcyIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiBbCisgICAgICAgICAgICAgICAgIkVu
YWJsZSB0aGUgdXNlIG9mIHBpeGVsIHNoYWRlciBwYXRjaGluZyB0byBpbXBsZW1lbnQgT3BlbkdM
IGJhc2ljIGxpbmUgIiwKKyAgICAgICAgICAgICAgICAicmFzdGVyaXphdGlvbiBydWxlcyIKKyAg
ICAgICAgICAgIF0KKyAgICAgICAgfSwKKworICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6
ICJicmVzZW5oYW1fbGluZV9yYXN0ZXJpemF0aW9uIiwKKyAgICAgICAgICAgICJjYXRlZ29yeSI6
ICJGZWF0dXJlcyIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiBbCisgICAgICAgICAgICAg
ICAgIkVuYWJsZSBCcmVzZW5oYW0gbGluZSByYXN0ZXJpemF0aW9uIHZpYSBWS19FWFRfbGluZV9y
YXN0ZXJpemF0aW9uIGV4dGVuc2lvbiIKKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKworICAg
ICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJwcm92b2tpbmdfdmVydGV4IiwKKyAgICAgICAg
ICAgICJjYXRlZ29yeSI6ICJGZWF0dXJlcyIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiBb
CisgICAgICAgICAgICAgICAgIkVuYWJsZSBwcm92b2tpbmcgdmVydGV4IG1vZGUgdmlhIFZLX0VY
VF9wcm92b2tpbmdfdmVydGV4IGV4dGVuc2lvbiIKKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwK
KworICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJmb3JjZV9mYWxsYmFja19mb3JtYXQi
LAorICAgICAgICAgICAgImNhdGVnb3J5IjogIldvcmthcm91bmRzIiwKKyAgICAgICAgICAgICJk
ZXNjcmlwdGlvbiI6IFsKKyAgICAgICAgICAgICAgICAiRm9yY2UgYSBmYWxsYmFjayBmb3JtYXQg
Zm9yIGFuZ2xlX2VuZDJlbmRfdGVzdHMiCisgICAgICAgICAgICBdCisgICAgICAgIH0sCisKKyAg
ICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAiY2xhbXBfcG9pbnRfc2l6ZSIsCisgICAgICAg
ICAgICAiY2F0ZWdvcnkiOiAiV29ya2Fyb3VuZHMiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9u
IjogWworICAgICAgICAgICAgICAgICJUaGUgcG9pbnQgc2l6ZSByYW5nZSByZXBvcnRlZCBmcm9t
IHRoZSBBUEkgaXMgaW5jb25zaXN0ZW50IHdpdGggdGhlIGFjdHVhbCBiZWhhdmlvciIKKyAgICAg
ICAgICAgIF0sCisgICAgICAgICAgICAiaXNzdWUiOiAiaHR0cDovL2FuZ2xlYnVnLmNvbS8yOTcw
IgorICAgICAgICB9LAorCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogImRlcHRoX2Ns
YW1waW5nIiwKKyAgICAgICAgICAgICJjYXRlZ29yeSI6ICJXb3JrYXJvdW5kcyIsCisgICAgICAg
ICAgICAiZGVzY3JpcHRpb24iOiBbCisgICAgICAgICAgICAgICAgIlRoZSBkZXB0aCB2YWx1ZSBp
cyBub3QgY2xhbXBlZCB0byBbMCwxXSBmb3IgZmxvYXRpbmcgcG9pbnQgZGVwdGggYnVmZmVycy4i
CisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImlzc3VlIjogImh0dHA6Ly9hbmdsZWJ1Zy5j
b20vMzk3MCIKKyAgICAgICAgfSwKKworICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJz
dXBwb3J0c19yZW5kZXJwYXNzMiIsCisgICAgICAgICAgICAiY2F0ZWdvcnkiOiAiRmVhdHVyZXMi
LAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogWworICAgICAgICAgICAgICAgICJWa0Rldmlj
ZSBzdXBwb3J0cyB0aGUgVktfS0hSX2NyZWF0ZV9yZW5kZXJwYXNzMiBleHRlbnNpb24iCisgICAg
ICAgICAgICBdCisgICAgICAgIH0sCisKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAi
c3VwcG9ydHNfaW5jcmVtZW50YWxfcHJlc2VudCIsCisgICAgICAgICAgICAiY2F0ZWdvcnkiOiAi
RmVhdHVyZXMiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogWworICAgICAgICAgICAgICAg
ICJWa0RldmljZSBzdXBwb3J0cyB0aGUgVktfS0hSX2luY3JlbWVudGFsX3ByZXNlbnQgZXh0ZW5z
aW9uIgorICAgICAgICAgICAgXQorICAgICAgICB9LAorCisgICAgICAgIHsKKyAgICAgICAgICAg
ICJuYW1lIjogInN1cHBvcnRzX2FuZHJvaWRfaGFyZHdhcmVfYnVmZmVyIiwKKyAgICAgICAgICAg
ICJjYXRlZ29yeSI6ICJGZWF0dXJlcyIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiBbCisg
ICAgICAgICAgICAgICAgIlZrRGV2aWNlIHN1cHBvcnRzIHRoZSBWS19BTkRST0lEX2V4dGVybmFs
X21lbW9yeV9hbmRyb2lkX2hhcmR3YXJlX2J1ZmZlciBleHRlbnNpb24iCisgICAgICAgICAgICBd
CisgICAgICAgIH0sCisKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAic3VwcG9ydHNf
R0dQX2ZyYW1lX3Rva2VuIiwKKyAgICAgICAgICAgICJjYXRlZ29yeSI6ICJGZWF0dXJlcyIsCisg
ICAgICAgICAgICAiZGVzY3JpcHRpb24iOiBbCisgICAgICAgICAgICAgICAgIlZrRGV2aWNlIHN1
cHBvcnRzIHRoZSBWS19HR1BfZnJhbWVfdG9rZW4gZXh0ZW5zaW9uIgorICAgICAgICAgICAgXQor
ICAgICAgICB9LAorCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogInN1cHBvcnRzX2V4
dGVybmFsX21lbW9yeV9mZCIsCisgICAgICAgICAgICAiY2F0ZWdvcnkiOiAiRmVhdHVyZXMiLAor
ICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogWworICAgICAgICAgICAgICAgICJWa0RldmljZSBz
dXBwb3J0cyB0aGUgVktfS0hSX2V4dGVybmFsX21lbW9yeV9mZCBleHRlbnNpb24iCisgICAgICAg
ICAgICBdCisgICAgICAgIH0sCisKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAic3Vw
cG9ydHNfZXh0ZXJuYWxfbWVtb3J5X2Z1Y2hzaWEiLAorICAgICAgICAgICAgImNhdGVnb3J5Ijog
IkZlYXR1cmVzIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6IFsKKyAgICAgICAgICAgICAg
ICAiVmtEZXZpY2Ugc3VwcG9ydHMgdGhlIFZLX0ZVQ0hTSUFfZXh0ZXJuYWxfbWVtb3J5IGV4dGVu
c2lvbiIKKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKworICAgICAgICB7CisgICAgICAgICAg
ICAibmFtZSI6ICJzdXBwb3J0c19maWx0ZXJpbmdfcHJlY2lzaW9uIiwKKyAgICAgICAgICAgICJj
YXRlZ29yeSI6ICJGZWF0dXJlcyIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiBbCisgICAg
ICAgICAgICAgICAgIlZrRGV2aWNlIHN1cHBvcnRzIHRoZSBWS19HT09HTEVfc2FtcGxlcl9maWx0
ZXJpbmdfcHJlY2lzaW9uIGV4dGVuc2lvbiIKKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKwor
ICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJzdXBwb3J0c19leHRlcm5hbF9mZW5jZV9j
YXBhYmlsaXRpZXMiLAorICAgICAgICAgICAgImNhdGVnb3J5IjogIkZlYXR1cmVzIiwKKyAgICAg
ICAgICAgICJkZXNjcmlwdGlvbiI6IFsKKyAgICAgICAgICAgICAgICAiVmtJbnN0YW5jZSBzdXBw
b3J0cyB0aGUgVktfS0hSX2V4dGVybmFsX2ZlbmNlX2NhcGFiaWxpdGllcyBleHRlbnNpb24iCisg
ICAgICAgICAgICBdCisgICAgICAgIH0sCisKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUi
OiAic3VwcG9ydHNfZXh0ZXJuYWxfc2VtYXBob3JlX2NhcGFiaWxpdGllcyIsCisgICAgICAgICAg
ICAiY2F0ZWdvcnkiOiAiRmVhdHVyZXMiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogWwor
ICAgICAgICAgICAgICAgICJWa0luc3RhbmNlIHN1cHBvcnRzIHRoZSBWS19LSFJfZXh0ZXJuYWxf
c2VtYXBob3JlX2NhcGFiaWxpdGllcyBleHRlbnNpb24iCisgICAgICAgICAgICBdCisgICAgICAg
IH0sCisKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAic3VwcG9ydHNfZXh0ZXJuYWxf
c2VtYXBob3JlX2ZkIiwKKyAgICAgICAgICAgICJjYXRlZ29yeSI6ICJGZWF0dXJlcyIsCisgICAg
ICAgICAgICAiZGVzY3JpcHRpb24iOiBbCisgICAgICAgICAgICAgICAgIlZrRGV2aWNlIHN1cHBv
cnRzIHRoZSBWS19LSFJfZXh0ZXJuYWxfc2VtYXBob3JlX2ZkIGV4dGVuc2lvbiIKKyAgICAgICAg
ICAgIF0KKyAgICAgICAgfSwKKworICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJzdXBw
b3J0c19leHRlcm5hbF9zZW1hcGhvcmVfZnVjaHNpYSIsCisgICAgICAgICAgICAiY2F0ZWdvcnki
OiAiRmVhdHVyZXMiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogWworICAgICAgICAgICAg
ICAgICJWa0RldmljZSBzdXBwb3J0cyB0aGUgVktfRlVDSFNJQV9leHRlcm5hbF9zZW1hcGhvcmUg
ZXh0ZW5zaW9uIgorICAgICAgICAgICAgXQorICAgICAgICB9LAorCisgICAgICAgIHsKKyAgICAg
ICAgICAgICJuYW1lIjogInN1cHBvcnRzX2V4dGVybmFsX2ZlbmNlX2ZkIiwKKyAgICAgICAgICAg
ICJjYXRlZ29yeSI6ICJGZWF0dXJlcyIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiBbCisg
ICAgICAgICAgICAgICAgIlZrRGV2aWNlIHN1cHBvcnRzIHRoZSBWS19LSFJfZXh0ZXJuYWxfZmVu
Y2VfZmQgZXh0ZW5zaW9uIgorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJpc3N1ZSI6ICJo
dHRwOi8vYW5nbGVidWcuY29tLzI1MTciCisgICAgICAgIH0sCisKKyAgICAgICAgeworICAgICAg
ICAgICAgIm5hbWUiOiAic3VwcG9ydHNfYW5kcm9pZF9uYXRpdmVfZmVuY2Vfc3luYyIsCisgICAg
ICAgICAgICAiY2F0ZWdvcnkiOiAiRmVhdHVyZXMiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9u
IjogWworICAgICAgICAgICAgICAgICJWa0RldmljZSBzdXBwb3J0cyB0aGUgRUdMX0FORFJPSURf
bmF0aXZlX2ZlbmNlX3N5bmMgZXh0ZW5zaW9uIgorICAgICAgICAgICAgXSwKKyAgICAgICAgICAg
ICJpc3N1ZSI6ICJodHRwOi8vYW5nbGVidWcuY29tLzI1MTciCisgICAgICAgIH0sCisKKyAgICAg
ICAgeworICAgICAgICAgICAgIm5hbWUiOiAic3VwcG9ydHNfaW1hZ2VfY3ViZV9hcnJheSIsCisg
ICAgICAgICAgICAiY2F0ZWdvcnkiOiAiRmVhdHVyZXMiLAorICAgICAgICAgICAgImRlc2NyaXB0
aW9uIjogWworICAgICAgICAgICAgICAgICJWa0RldmljZSBzdXBwb3J0cyB0aGUgaW1hZ2VDdWJl
QXJyYXkgZmVhdHVyZSBwcm9wZXJseSIKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAiaXNz
dWUiOiAiaHR0cDovL2FuZ2xlYnVnLmNvbS8zNTg0IgorICAgICAgICB9LAorCisgICAgICAgIHsK
KyAgICAgICAgICAgICJuYW1lIjogInN1cHBvcnRzX3BpcGVsaW5lX3N0YXRpc3RpY3NfcXVlcnki
LAorICAgICAgICAgICAgImNhdGVnb3J5IjogIkZlYXR1cmVzIiwKKyAgICAgICAgICAgICJkZXNj
cmlwdGlvbiI6IFsKKyAgICAgICAgICAgICAgICAiVmtEZXZpY2Ugc3VwcG9ydHMgdGhlIHBpcGVs
aW5lU3RhdGlzdGljc1F1ZXJ5IGZlYXR1cmUiCisgICAgICAgICAgICBdLAorICAgICAgICAgICAg
Imlzc3VlIjogImh0dHA6Ly9hbmdsZWJ1Zy5jb20vNTQzMCIKKyAgICAgICAgfSwKKworICAgICAg
ICB7CisgICAgICAgICAgICAibmFtZSI6ICJzdXBwb3J0c19zaGFkZXJfc3RlbmNpbF9leHBvcnQi
LAorICAgICAgICAgICAgImNhdGVnb3J5IjogIkZlYXR1cmVzIiwKKyAgICAgICAgICAgICJkZXNj
cmlwdGlvbiI6IFsKKyAgICAgICAgICAgICAgICAiVmtEZXZpY2Ugc3VwcG9ydHMgdGhlIFZLX0VY
VF9zaGFkZXJfc3RlbmNpbF9leHBvcnQgZXh0ZW5zaW9uIgorICAgICAgICAgICAgXQorICAgICAg
ICB9LAorCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogInN1cHBvcnRzX1lVVl9zYW1w
bGVyX2NvbnZlcnNpb24iLAorICAgICAgICAgICAgImNhdGVnb3J5IjogIkZlYXR1cmVzIiwKKyAg
ICAgICAgICAgICJkZXNjcmlwdGlvbiI6IFsKKyAgICAgICAgICAgICAgICAiVmtEZXZpY2Ugc3Vw
cG9ydHMgdGhlIFZLX0tIUl9zYW1wbGVyX3ljYmNyX2NvbnZlcnNpb24gZXh0ZW5zaW9uIgorICAg
ICAgICAgICAgXQorICAgICAgICB9LAorCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjog
ImVtdWxhdGVfdHJhbnNmb3JtX2ZlZWRiYWNrIiwKKyAgICAgICAgICAgICJjYXRlZ29yeSI6ICJG
ZWF0dXJlcyIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiBbCisgICAgICAgICAgICAgICAg
IkVtdWxhdGUgdHJhbnNmb3JtIGZlZWRiYWNrIGFzIHRoZSBWS19FWFRfdHJhbnNmb3JtX2ZlZWRi
YWNrIGlzIG5vdCBwcmVzZW50LiIKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAiaXNzdWUi
OiAiaHR0cDovL2FuZ2xlYnVnLmNvbS8zMjA1IgorICAgICAgICB9LAorCisgICAgICAgIHsKKyAg
ICAgICAgICAgICJuYW1lIjogInN1cHBvcnRzX3RyYW5zZm9ybV9mZWVkYmFja19leHRlbnNpb24i
LAorICAgICAgICAgICAgImNhdGVnb3J5IjogIkZlYXR1cmVzIiwKKyAgICAgICAgICAgICJkZXNj
cmlwdGlvbiI6IFsKKyAgICAgICAgICAgICAgICAiVHJhbnNmb3JtIGZlZWRiYWNrIHVzZXMgdGhl
IFZLX0VYVF90cmFuc2Zvcm1fZmVlZGJhY2sgZXh0ZW5zaW9uLiIKKyAgICAgICAgICAgIF0sCisg
ICAgICAgICAgICAiaXNzdWUiOiAiaHR0cDovL2FuZ2xlYnVnLmNvbS8zMjA2IgorICAgICAgICB9
LAorCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogInN1cHBvcnRzX2dlb21ldHJ5X3N0
cmVhbXNfY2FwYWJpbGl0eSIsCisgICAgICAgICAgICAiY2F0ZWdvcnkiOiAiRmVhdHVyZXMiLAor
ICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogWworICAgICAgICAgICAgICAgICJJbXBsZW1lbnRh
dGlvbiBzdXBwb3J0cyB0aGUgR2VvbWV0cnlTdHJlYW1zIFNQSVItViBjYXBhYmlsaXR5LiIKKyAg
ICAgICAgICAgIF0sCisgICAgICAgICAgICAiaXNzdWUiOiAiaHR0cDovL2FuZ2xlYnVnLmNvbS8z
MjA2IgorICAgICAgICB9LAorCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogInN1cHBv
cnRzX2luZGV4X3R5cGVfdWludDgiLAorICAgICAgICAgICAgImNhdGVnb3J5IjogIkZlYXR1cmVz
IiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6IFsKKyAgICAgICAgICAgICAgICAiVmtEZXZp
Y2Ugc3VwcG9ydHMgdGhlIFZLX0VYVF9pbmRleF90eXBlX3VpbnQ4IGV4dGVuc2lvbiIKKyAgICAg
ICAgICAgIF0sCisgICAgICAgICAgICAiaXNzdWUiOiAiaHR0cDovL2FuZ2xlYnVnLmNvbS80NDA1
IgorICAgICAgICB9LAorCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogInN1cHBvcnRz
X2N1c3RvbV9ib3JkZXJfY29sb3IiLAorICAgICAgICAgICAgImNhdGVnb3J5IjogIkZlYXR1cmVz
IiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6IFsKKyAgICAgICAgICAgICAgICAiVmtEZXZp
Y2Ugc3VwcG9ydHMgdGhlIFZLX0VYVF9jdXN0b21fYm9yZGVyX2NvbG9yIGV4dGVuc2lvbiIKKyAg
ICAgICAgICAgIF0sCisgICAgICAgICAgICAiaXNzdWUiOiAiaHR0cDovL2FuZ2xlYnVnLmNvbS8z
NTc3IgorICAgICAgICB9LAorCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogInN1cHBv
cnRzX211bHRpX2RyYXdfaW5kaXJlY3QiLAorICAgICAgICAgICAgImNhdGVnb3J5IjogIkZlYXR1
cmVzIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6IFsKKyAgICAgICAgICAgICAgICAiVmtE
ZXZpY2Ugc3VwcG9ydHMgdGhlIG11bHRpRHJhd0luZGlyZWN0IGV4dGVuc2lvbiIKKyAgICAgICAg
ICAgIF0sCisgICAgICAgICAgICAiaXNzdWUiOiAiaHR0cDovL2FuZ2xlYnVnLmNvbS82NDM5Igor
ICAgICAgICB9LAorCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogInN1cHBvcnRzX2Rl
cHRoX3N0ZW5jaWxfcmVzb2x2ZSIsCisgICAgICAgICAgICAiY2F0ZWdvcnkiOiAiRmVhdHVyZXMi
LAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogWworICAgICAgICAgICAgICAgICJWa0Rldmlj
ZSBzdXBwb3J0cyB0aGUgVktfS0hSX2RlcHRoX3N0ZW5jaWxfcmVzb2x2ZSAiLAorICAgICAgICAg
ICAgICAgICJleHRlbnNpb24gd2l0aCB0aGUgaW5kZXBlbmRlbnRSZXNvbHZlTm9uZSBmZWF0dXJl
IgorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJpc3N1ZSI6ICJodHRwOi8vYW5nbGVidWcu
Y29tLzQ4MzYiCisgICAgICAgIH0sCisKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAi
c3VwcG9ydHNfbXVsdGlzYW1wbGVkX3JlbmRlcl90b19zaW5nbGVfc2FtcGxlZCIsCisgICAgICAg
ICAgICAiY2F0ZWdvcnkiOiAiRmVhdHVyZXMiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjog
WworICAgICAgICAgICAgICAgICJWa0RldmljZSBzdXBwb3J0cyB0aGUgVktfRVhUX211bHRpc2Ft
cGxlZF9yZW5kZXJfdG9fc2luZ2xlX3NhbXBsZWQgZXh0ZW5zaW9uIgorICAgICAgICAgICAgXSwK
KyAgICAgICAgICAgICJpc3N1ZSI6ICJodHRwOi8vYW5nbGVidWcuY29tLzQ4MzYiCisgICAgICAg
IH0sCisKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAic3VwcG9ydHNfbXVsdGl2aWV3
IiwKKyAgICAgICAgICAgICJjYXRlZ29yeSI6ICJGZWF0dXJlcyIsCisgICAgICAgICAgICAiZGVz
Y3JpcHRpb24iOiBbCisgICAgICAgICAgICAgICAgIlZrRGV2aWNlIHN1cHBvcnRzIHRoZSBWS19L
SFJfbXVsdGl2aWV3IGV4dGVuc2lvbiIKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAiaXNz
dWUiOiAiaHR0cDovL2FuZ2xlYnVnLmNvbS82MDQ4IgorICAgICAgICB9LAorCisgICAgICAgIHsK
KyAgICAgICAgICAgICJuYW1lIjogImRpc2FibGVfZmlmb19wcmVzZW50X21vZGUiLAorICAgICAg
ICAgICAgImNhdGVnb3J5IjogIldvcmthcm91bmRzIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlv
biI6IFsKKyAgICAgICAgICAgICAgICAiVktfUFJFU0VOVF9NT0RFX0ZJRk9fS0hSIGNhdXNlcyBy
YW5kb20gdGltZW91dHMiCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImlzc3VlIjogImh0
dHA6Ly9hbmdsZWJ1Zy5jb20vMzE1MyIKKyAgICAgICAgfSwKKworICAgICAgICB7CisgICAgICAg
ICAgICAibmFtZSI6ICJiaW5kX2VtcHR5X2Zvcl91bnVzZWRfZGVzY3JpcHRvcl9zZXRzIiwKKyAg
ICAgICAgICAgICJjYXRlZ29yeSI6ICJXb3JrYXJvdW5kcyIsCisgICAgICAgICAgICAiZGVzY3Jp
cHRpb24iOiBbCisgICAgICAgICAgICAgICAgIkdhcHMgaW4gYm91bmQgZGVzY3JpcHRvciBzZXQg
aW5kaWNlcyBjYXVzZXMgdGhlIHBvc3QtZ2FwIHNldHMgdG8gbWlzYmVoYXZlIgorICAgICAgICAg
ICAgXSwKKyAgICAgICAgICAgICJpc3N1ZSI6ICJodHRwOi8vYW5nbGVidWcuY29tLzI3MjciCisg
ICAgICAgIH0sCisKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAiZm9yY2VfRDE2X3Rl
eF9maWx0ZXIiLAorICAgICAgICAgICAgImNhdGVnb3J5IjogIldvcmthcm91bmRzIiwKKyAgICAg
ICAgICAgICJkZXNjcmlwdGlvbiI6IFsKKyAgICAgICAgICAgICAgICAiVktfRk9STUFUX0QxNl9V
Tk9STSBkb2VzIG5vdCBzdXBwb3J0IFZLX0ZPUk1BVF9GRUFUVVJFX1NBTVBMRURfSU1BR0VfRklM
VEVSX0xJTkVBUl9CSVQsICIsCisgICAgICAgICAgICAgICAgIndoaWNoIHByZXZlbnRzIE9FU19k
ZXB0aF90ZXh0dXJlIGZyb20gYmVpbmcgc3VwcG9ydGVkLiIKKyAgICAgICAgICAgIF0sCisgICAg
ICAgICAgICAiaXNzdWUiOiAiaHR0cDovL2FuZ2xlYnVnLmNvbS8zNDUyIgorICAgICAgICB9LAor
CisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogImRpc2FibGVfZmxpcHBpbmdfYmxpdF93
aXRoX2NvbW1hbmQiLAorICAgICAgICAgICAgImNhdGVnb3J5IjogIldvcmthcm91bmRzIiwKKyAg
ICAgICAgICAgICJkZXNjcmlwdGlvbiI6IFsKKyAgICAgICAgICAgICAgICAidmtDbWRCbGl0SW1h
Z2Ugd2l0aCBmbGlwcGVkIGNvb3JkaW5hdGVzIGJsaXRzIGluY29ycmVjdGx5LiIKKyAgICAgICAg
ICAgIF0sCisgICAgICAgICAgICAiaXNzdWUiOiAiaHR0cDovL2FuZ2xlYnVnLmNvbS8zNDk4Igor
ICAgICAgICB9LAorCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogInBlcl9mcmFtZV93
aW5kb3dfc2l6ZV9xdWVyeSIsCisgICAgICAgICAgICAiY2F0ZWdvcnkiOiAiV29ya2Fyb3VuZHMi
LAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogWworICAgICAgICAgICAgICAgICJWdWxrYW4g
c3dhcGNoYWluIGlzIG5vdCByZXR1cm5pbmcgVktfRVJST1JfT1VUX09GX0RBVEUgd2hlbiB3aW5k
b3cgcmVzaXppbmciCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImlzc3VlIjogImh0dHA6
Ly9hbmdsZWJ1Zy5jb20vMzYyMywgaHR0cDovL2FuZ2xlYnVnLmNvbS8zNjI0LCBodHRwOi8vYW5n
bGVidWcuY29tLzM2MjUiCisgICAgICAgIH0sCisKKyAgICAgICAgeworICAgICAgICAgICAgIm5h
bWUiOiAiZGlzYWxsb3dfc2VhbWZ1bF9jdWJlX21hcF9lbXVsYXRpb24iLAorICAgICAgICAgICAg
ImNhdGVnb3J5IjogIldvcmthcm91bmRzIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6IFsK
KyAgICAgICAgICAgICAgICAiU2VhbWZ1bCBjdWJlIG1hcCBlbXVsYXRpb24gbWlzYmVoYXZlcyBv
biBzb21lIGRyaXZlcnMsIHNvIGl0J3MgZGlzYWxsb3dlZCIKKyAgICAgICAgICAgIF0sCisgICAg
ICAgICAgICAiaXNzdWUiOiAiaHR0cDovL2FuZ2xlYnVnLmNvbS8zMjQzIgorICAgICAgICB9LAor
CisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogInBhZF9idWZmZXJzX3RvX21heF92ZXJ0
ZXhfYXR0cmliX3N0cmlkZSIsCisgICAgICAgICAgICAiY2F0ZWdvcnkiOiAiV29ya2Fyb3VuZHMi
LAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogWworICAgICAgICAgICAgICAgICJWdWxrYW4g
Y29uc2lkZXJzIHZlcnRleCBhdHRyaWJ1dGUgYWNjZXNzZXMgdG8gY291bnQgdXAgdG8gdGhlIGxh
c3QgbXVsdGlwbGUgb2YgdGhlICIsCisgICAgICAgICAgICAgICAgInN0cmlkZS4gVGhpcyBhZGRp
dGlvbmFsIGFjY2VzcyBzdXBwb3J0cyBBTUQncyByb2J1c3QgYnVmZmVyIGFjY2VzcyBpbXBsZW1l
bnRhdGlvbi4gIiwKKyAgICAgICAgICAgICAgICAiQU1EVkxLIGluIHBhcnRpY3VsYXIgd2lsbCBy
ZXR1cm4gaW5jb3JyZWN0IHZhbHVlcyB3aGVuIHRoZSB2ZXJ0ZXggYWNjZXNzIGV4dGVuZHMgaW50
byAiLAorICAgICAgICAgICAgICAgICJ0aGUgcmFuZ2UgdGhhdCB3b3VsZCBiZSB0aGUgc3RyaWRl
IHBhZGRpbmcgYW5kIHRoZSBidWZmZXIgaXMgdG9vIHNtYWxsLiAiLAorICAgICAgICAgICAgICAg
ICJUaGlzIHdvcmthcm91bmQgbGltaXRzIEdMX01BWF9WRVJURVhfQVRUUklCX1NUUklERSB0byBh
IG1heGltdW0gdmFsdWUgYW5kICIsCisgICAgICAgICAgICAgICAgInBhZHMgdXAgZXZlcnkgYnVm
ZmVyIGFsbG9jYXRpb24gc2l6ZSB0byBiZSBhIG11bHRpcGxlIG9mIHRoZSBtYXhpbXVtIHN0cmlk
ZS4iCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImlzc3VlIjogImh0dHA6Ly9hbmdsZWJ1
Zy5jb20vNDQyOCIKKyAgICAgICAgfSwKKworICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6
ICJzdXBwb3J0c19leHRlcm5hbF9tZW1vcnlfZG1hX2J1Zl9hbmRfbW9kaWZpZXJzIiwKKyAgICAg
ICAgICAgICJjYXRlZ29yeSI6ICJGZWF0dXJlcyIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24i
OiBbCisgICAgICAgICAgICAgICAgIlZrRGV2aWNlIHN1cHBvcnRzIHRoZSBWS19FWFRfZXh0ZXJu
YWxfbWVtb3J5X2RtYV9idWYgYW5kIFZLX0VYVF9pbWFnZV9kcm1fZm9ybWF0X21vZGlmaWVyICIs
CisgICAgICAgICAgICAgICAgImV4dGVuc2lvbnMiCisgICAgICAgICAgICBdLAorICAgICAgICAg
ICAgImlzc3VlIjogImh0dHA6Ly9hbmdsZWJ1Zy5jb20vNjI0OCIKKyAgICAgICAgfSwKKworICAg
ICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJzdXBwb3J0c19leHRlcm5hbF9tZW1vcnlfaG9z
dCIsCisgICAgICAgICAgICAiY2F0ZWdvcnkiOiAiRmVhdHVyZXMiLAorICAgICAgICAgICAgImRl
c2NyaXB0aW9uIjogWworICAgICAgICAgICAgICAgICJWa0RldmljZSBzdXBwb3J0cyB0aGUgVktf
RVhUX2V4dGVybmFsX21lbW9yeV9ob3N0IGV4dGVuc2lvbiIKKyAgICAgICAgICAgIF0KKyAgICAg
ICAgfSwKKworICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJhbGxvY2F0ZV9ub25femVy
b19tZW1vcnkiLAorICAgICAgICAgICAgImNhdGVnb3J5IjogIkZlYXR1cmVzIiwKKyAgICAgICAg
ICAgICJkZXNjcmlwdGlvbiI6IFsKKyAgICAgICAgICAgICAgICAiRmlsbCBuZXcgYWxsb2NhdGlv
bnMgd2l0aCBub24temVybyB2YWx1ZXMgdG8gZmx1c2ggb3V0IGVycm9ycy4iCisgICAgICAgICAg
ICBdLAorICAgICAgICAgICAgImlzc3VlIjogImh0dHA6Ly9hbmdsZWJ1Zy5jb20vNDM4NCIKKyAg
ICAgICAgfSwKKworICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJsb2dfbWVtb3J5X3Jl
cG9ydF9jYWxsYmFja3MiLAorICAgICAgICAgICAgImNhdGVnb3J5IjogIkZlYXR1cmVzIiwKKyAg
ICAgICAgICAgICJkZXNjcmlwdGlvbiI6IFsKKyAgICAgICAgICAgICAgICAiTG9nIGVhY2ggY2Fs
bGJhY2sgZnJvbSBWS19FWFRfZGV2aWNlX21lbW9yeV9yZXBvcnQiCisgICAgICAgICAgICBdCisg
ICAgICAgIH0sCisKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAibG9nX21lbW9yeV9y
ZXBvcnRfc3RhdHMiLAorICAgICAgICAgICAgImNhdGVnb3J5IjogIkZlYXR1cmVzIiwKKyAgICAg
ICAgICAgICJkZXNjcmlwdGlvbiI6IFsKKyAgICAgICAgICAgICAgICAiTG9nIHN0YXRzIGZyb20g
VktfRVhUX2RldmljZV9tZW1vcnlfcmVwb3J0IGVhY2ggc3dhcCIKKyAgICAgICAgICAgIF0KKyAg
ICAgICAgfSwKKworICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJzaGFkb3dfYnVmZmVy
cyIsCisgICAgICAgICAgICAiY2F0ZWdvcnkiOiAiRmVhdHVyZXMiLAorICAgICAgICAgICAgImRl
c2NyaXB0aW9uIjogWworICAgICAgICAgICAgICAgICJBbGxvY2F0ZSBhIHNoYWRvdyBidWZmZXIg
Zm9yIEdMIGJ1ZmZlciBvYmplY3RzIHRvIHJlZHVjZSBnbE1hcCogbGF0ZW5jeS4iCisgICAgICAg
ICAgICBdLAorICAgICAgICAgICAgImlzc3VlIjogImh0dHA6Ly9hbmdsZWJ1Zy5jb20vNDMzOSIK
KyAgICAgICAgfSwKKworICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJwcmVmZXJfQ1BV
X2Zvcl9idWZmZXJfc3ViX2RhdGEiLAorICAgICAgICAgICAgImNhdGVnb3J5IjogIkZlYXR1cmVz
IiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6IFsKKyAgICAgICAgICAgICAgICAiUHJlZmVy
IHVzZSBDUFUgdG8gZG8gYnVmZmVyU3ViRGF0YSBpbnN0ZWFkIG9mIHN0YWdlZCB1cGRhdGUuIgor
ICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJpc3N1ZSI6ICJodHRwOi8vaXNzdWV0cmFja2Vy
Lmdvb2dsZS5jb20vMjAwMDY3OTI5IgorICAgICAgICB9LAorCisgICAgICAgIHsKKyAgICAgICAg
ICAgICJuYW1lIjogInBlcnNpc3RlbnRseV9tYXBwZWRfYnVmZmVycyIsCisgICAgICAgICAgICAi
Y2F0ZWdvcnkiOiAiRmVhdHVyZXMiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogWworICAg
ICAgICAgICAgICAgICJQZXJzaXN0ZW50bHkgbWFwIGJ1ZmZlciBtZW1vcnkgdG8gcmVkdWNlIG1h
cC91bm1hcCBJT0NUTCBvdmVyaGVhZC4iCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImlz
c3VlIjogImh0dHA6Ly9hbmdsZWJ1Zy5jb20vMjE2MiIKKyAgICAgICAgfSwKKworICAgICAgICB7
CisgICAgICAgICAgICAibmFtZSI6ICJlbmFibGVfcHJlX3JvdGF0ZV9zdXJmYWNlcyIsCisgICAg
ICAgICAgICAiY2F0ZWdvcnkiOiAiRmVhdHVyZXMiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9u
IjogWworICAgICAgICAgICAgICAgICJFbmFibGUgQW5kcm9pZCBwcmUtcm90YXRpb24gZm9yIGxh
bmRzY2FwZSBhcHBsaWNhdGlvbnMiCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImlzc3Vl
IjogImh0dHA6Ly9hbmdsZWJ1Zy5jb20vMzUwMiIKKyAgICAgICAgfSwKKworICAgICAgICB7Cisg
ICAgICAgICAgICAibmFtZSI6ICJlbmFibGVfcHJlY2lzaW9uX3F1YWxpZmllcnMiLAorICAgICAg
ICAgICAgImNhdGVnb3J5IjogIkZlYXR1cmVzIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6
IFsKKyAgICAgICAgICAgICAgICAiRW5hYmxlIHByZWNpc2lvbiBxdWFsaWZpZXJzIGluIHNoYWRl
cnMiCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImlzc3VlIjogImh0dHA6Ly9hbmdsZWJ1
Zy5jb20vMzA3OCIKKyAgICAgICAgfSwKKworICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6
ICJwcmVmZXJfYWdncmVnYXRlX2JhcnJpZXJfY2FsbHMiLAorICAgICAgICAgICAgImNhdGVnb3J5
IjogIldvcmthcm91bmRzIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6IFsKKyAgICAgICAg
ICAgICAgICAiU2luZ2xlIGJhcnJpZXIgY2FsbCBpcyBwcmVmZXJyZWQgb3ZlciBtdWx0aXBsZSBj
YWxscyB3aXRoICIsCisgICAgICAgICAgICAgICAgImZpbmUgZ3JhaW5lZCBwaXBlbGluZSBzdGFn
ZSBkZXBlbmRlbmN5IGluZm9ybWF0aW9uIgorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJp
c3N1ZSI6ICJodHRwOi8vYW5nbGVidWcuY29tLzQ2MzMiCisgICAgICAgIH0sCisKKyAgICAgICAg
eworICAgICAgICAgICAgIm5hbWUiOiAicHJlZmVyX3NraXBwaW5nX2ludmFsaWRhdGVfZm9yX2Vt
dWxhdGVkX2Zvcm1hdHMiLAorICAgICAgICAgICAgImNhdGVnb3J5IjogIldvcmthcm91bmRzIiwK
KyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6IFsKKyAgICAgICAgICAgICAgICAiU2tpcHBpbmcg
aW52YWxpZGF0ZSBpcyBwcmVmZXJyZWQgZm9yIGVtdWxhdGVkIGZvcm1hdHMgdGhhdCBoYXZlIGV4
dHJhIGNoYW5uZWxzIG92ZXIgIiwKKyAgICAgICAgICAgICAgICAicmUtY2xlYXJpbmcgdGhlIGlt
YWdlIgorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJpc3N1ZSI6ICJodHRwOi8vYW5nbGVi
dWcuY29tLzY4NjAiCisgICAgICAgIH0sCisKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUi
OiAiYXN5bmNfY29tbWFuZF9xdWV1ZSIsCisgICAgICAgICAgICAiY2F0ZWdvcnkiOiAiRmVhdHVy
ZXMiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogWworICAgICAgICAgICAgICAgICJVc2Ug
Q29tbWFuZFF1ZXVlIHdvcmtlciB0aHJlYWQgdG8gZGlzcGF0Y2ggd29yayB0byBHUFUuIgorICAg
ICAgICAgICAgXSwKKyAgICAgICAgICAgICJpc3N1ZSI6ICJodHRwOi8vYW5nbGVidWcuY29tLzQz
MjQiCisgICAgICAgIH0sCisKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAic3VwcG9y
dHNfc2hhZGVyX2Zsb2F0MTYiLAorICAgICAgICAgICAgImNhdGVnb3J5IjogIkZlYXR1cmVzIiwK
KyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6IFsKKyAgICAgICAgICAgICAgICAiVmtEZXZpY2Ug
c3VwcG9ydHMgdGhlIFZLX0tIUl9zaGFkZXJfZmxvYXQxNl9pbnQ4IGV4dGVuc2lvbiAiLAorICAg
ICAgICAgICAgICAgICJhbmQgaGFzIHRoZSBzaGFkZXJGbG9hdDE2IGZlYXR1cmUiCisgICAgICAg
ICAgICBdLAorICAgICAgICAgICAgImlzc3VlIjogImh0dHA6Ly9hbmdsZWJ1Zy5jb20vNDU1MSIK
KyAgICAgICAgfSwKKworICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJhbGxvd19HZW5l
cmF0ZU1pcG1hcF93aXRoX2NvbXB1dGUiLAorICAgICAgICAgICAgImNhdGVnb3J5IjogIkZlYXR1
cmVzIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6IFsKKyAgICAgICAgICAgICAgICAiVXNl
IHRoZSBjb21wdXRlIHBhdGggdG8gZ2VuZXJhdGUgbWlwbWFwcyBvbiBkZXZpY2VzIHRoYXQgbWVl
dCB0aGUgbWluaW11bSByZXF1aXJlbWVudHMsICIsCisgICAgICAgICAgICAgICAgImFuZCB0aGUg
cGVyZm9ybWFuY2UgaXMgYmV0dGVyLiIKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAiaXNz
dWUiOiAiaHR0cDovL2FuZ2xlYnVnLmNvbS80NTUxIgorICAgICAgICB9LAorCisgICAgICAgIHsK
KyAgICAgICAgICAgICJuYW1lIjogInN1cHBvcnRzX3JlbmRlcl9wYXNzX3N0b3JlX29wX25vbmUi
LAorICAgICAgICAgICAgImNhdGVnb3J5IjogIkZlYXR1cmVzIiwKKyAgICAgICAgICAgICJkZXNj
cmlwdGlvbiI6IFsKKyAgICAgICAgICAgICAgICAiVmtEZXZpY2Ugc3VwcG9ydHMgVktfUUNPTV9y
ZW5kZXJfcGFzc19zdG9yZV9vcHMgZXh0ZW5zaW9uLiIKKyAgICAgICAgICAgIF0sCisgICAgICAg
ICAgICAiaXNzdWUiOiAiaHR0cDovL2FuZ2xlYnVnLmNvbS81MDU1IgorICAgICAgICB9LAorCisg
ICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogInN1cHBvcnRzX3JlbmRlcl9wYXNzX2xvYWRf
c3RvcmVfb3Bfbm9uZSIsCisgICAgICAgICAgICAiY2F0ZWdvcnkiOiAiRmVhdHVyZXMiLAorICAg
ICAgICAgICAgImRlc2NyaXB0aW9uIjogWworICAgICAgICAgICAgICAgICJWa0RldmljZSBzdXBw
b3J0cyBWS19FWFRfbG9hZF9zdG9yZV9vcF9ub25lIGV4dGVuc2lvbi4iCisgICAgICAgICAgICBd
LAorICAgICAgICAgICAgImlzc3VlIjogImh0dHA6Ly9hbmdsZWJ1Zy5jb20vNTM3MSIKKyAgICAg
ICAgfSwKKworICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJzdXBwb3J0c19kZXB0aF9j
bGlwX2NvbnRyb2wiLAorICAgICAgICAgICAgImNhdGVnb3J5IjogIkZlYXR1cmVzIiwKKyAgICAg
ICAgICAgICJkZXNjcmlwdGlvbiI6IFsKKyAgICAgICAgICAgICAgICAiVmtEZXZpY2Ugc3VwcG9y
dHMgVktfRVhUX2RlcHRoX2NsaXBfY29udHJvbCBleHRlbnNpb24uIgorICAgICAgICAgICAgXSwK
KyAgICAgICAgICAgICJpc3N1ZSI6ICJodHRwOi8vYW5nbGVidWcuY29tLzU0MjEiCisgICAgICAg
IH0sCisKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAic3VwcG9ydHNfYmxlbmRfb3Bl
cmF0aW9uX2FkdmFuY2VkIiwKKyAgICAgICAgICAgICJjYXRlZ29yeSI6ICJGZWF0dXJlcyIsCisg
ICAgICAgICAgICAiZGVzY3JpcHRpb24iOiBbCisgICAgICAgICAgICAgICAgIlZrRGV2aWNlIHN1
cHBvcnRzIFZLX0VYVF9ibGVuZF9vcGVyYXRpb25fYWR2YW5jZWQgZXh0ZW5zaW9uLiIKKyAgICAg
ICAgICAgIF0sCisgICAgICAgICAgICAiaXNzdWUiOiAiaHR0cDovL2FuZ2xlYnVnLmNvbS8zNTg2
IgorICAgICAgICB9LAorCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogImZvcmNlX21h
eF91bmlmb3JtX2J1ZmZlcl9zaXplXzE2S0IiLAorICAgICAgICAgICAgImNhdGVnb3J5IjogIldv
cmthcm91bmRzIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6IFsKKyAgICAgICAgICAgICAg
ICAiRm9yY2UgbWF4IHVuaWZvcm0gYnVmZmVyIHNpemUgdG8gMTZLIG9uIHNvbWUgZGV2aWNlIGR1
ZSB0byBidWciCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImlzc3VlIjogImh0dHBzOi8v
aXNzdWV0cmFja2VyLmdvb2dsZS5jb20vMTYxOTAzMDA2IgorICAgICAgICB9LAorCisgICAgICAg
IHsKKyAgICAgICAgICAgICJuYW1lIjogInN1cHBvcnRzX2ltYWdlX2Zvcm1hdF9saXN0IiwKKyAg
ICAgICAgICAgICJjYXRlZ29yeSI6ICJGZWF0dXJlcyIsCisgICAgICAgICAgICAiZGVzY3JpcHRp
b24iOiBbCisgICAgICAgICAgICAgICAgIkVuYWJsZSBWS19JTUFHRV9DUkVBVEVfTVVUQUJMRV9G
T1JNQVRfQklUIGJ5IGRlZmF1bHQgZm9yIElDRHMgIiwKKyAgICAgICAgICAgICAgICAidGhhdCBz
dXBwb3J0IFZLX0tIUl9pbWFnZV9mb3JtYXRfbGlzdCIKKyAgICAgICAgICAgIF0sCisgICAgICAg
ICAgICAiaXNzdWUiOiAiaHR0cDovL2FuZ2xlYnVnLmNvbS81MjgxIgorICAgICAgICB9LAorCisg
ICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogImVuYWJsZV9tdWx0aXNhbXBsZWRfcmVuZGVy
X3RvX3RleHR1cmUiLAorICAgICAgICAgICAgImNhdGVnb3J5IjogIldvcmthcm91bmRzIiwKKyAg
ICAgICAgICAgICJkZXNjcmlwdGlvbiI6IFsKKyAgICAgICAgICAgICAgICAiRXhwb3NlIEVYVF9t
dWx0aXNhbXBsZWRfcmVuZGVyX3RvX3RleHR1cmUiCisgICAgICAgICAgICBdLAorICAgICAgICAg
ICAgImlzc3VlIjogImh0dHA6Ly9hbmdsZWJ1Zy5jb20vNDkzNyIKKyAgICAgICAgfSwKKworICAg
ICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJkZWZlcl9mbHVzaF91bnRpbF9lbmRfcmVuZGVy
X3Bhc3MiLAorICAgICAgICAgICAgImNhdGVnb3J5IjogIldvcmthcm91bmRzIiwKKyAgICAgICAg
ICAgICJkZXNjcmlwdGlvbiI6IFsKKyAgICAgICAgICAgICAgICAiQWxsb3cgZ2xGbHVzaCB0byBi
ZSBkZWZlcnJlZCB1bnRpbCByZW5kZXJwYXNzIGVuZHMiCisgICAgICAgICAgICBdLAorICAgICAg
ICAgICAgImlzc3VlIjogImh0dHBzOi8vaXNzdWV0cmFja2VyLmdvb2dsZS5jb20vaXNzdWVzLzE2
NjQ3NTI3MyIKKyAgICAgICAgfSwKKworICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJ3
YWl0X2lkbGVfYmVmb3JlX3N3YXBjaGFpbl9yZWNyZWF0aW9uIiwKKyAgICAgICAgICAgICJjYXRl
Z29yeSI6ICJXb3JrYXJvdW5kcyIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiBbCisgICAg
ICAgICAgICAgICAgIkJlZm9yZSBwYXNzaW5nIGFuIG9sZFN3YXBjaGFpbiB0byBWa1N3YXBjaGFp
bkNyZWF0ZUluZm9LSFIsIHdhaXQgZm9yIHF1ZXVlIHRvIGJlIGlkbGUuICIsCisgICAgICAgICAg
ICAgICAgIldvcmtzIGFyb3VuZCBhIGJ1ZyBvbiBwbGF0Zm9ybXMgd2hpY2ggZGVzdHJveSBvbGRT
d2FwY2hhaW4gaW4gdmtDcmVhdGVTd2FwY2hhaW5LSFIuIgorICAgICAgICAgICAgXSwKKyAgICAg
ICAgICAgICJpc3N1ZSI6ICJodHRwOi8vYW5nbGVidWcuY29tLzUwNjEiCisgICAgICAgIH0sCisK
KyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAiZm9yY2VfdGV4dHVyZV9sb2Rfb2Zmc2V0
XzEiLAorICAgICAgICAgICAgImNhdGVnb3J5IjogIldvcmthcm91bmRzIiwKKyAgICAgICAgICAg
ICJkZXNjcmlwdGlvbiI6IFsKKyAgICAgICAgICAgICAgICAiSW5jcmVhc2UgdGhlIG1pbmltdW0g
dGV4dHVyZSBsZXZlbC1vZi1kZXRhaWwgYnkgMSB3aGVuIHNhbXBsaW5nLiIKKyAgICAgICAgICAg
IF0KKyAgICAgICAgfSwKKworICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJmb3JjZV90
ZXh0dXJlX2xvZF9vZmZzZXRfMiIsCisgICAgICAgICAgICAiY2F0ZWdvcnkiOiAiV29ya2Fyb3Vu
ZHMiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogWworICAgICAgICAgICAgICAgICJJbmNy
ZWFzZSB0aGUgbWluaW11bSB0ZXh0dXJlIGxldmVsLW9mLWRldGFpbCBieSAyIHdoZW4gc2FtcGxp
bmcuIgorICAgICAgICAgICAgXQorICAgICAgICB9LAorCisgICAgICAgIHsKKyAgICAgICAgICAg
ICJuYW1lIjogImZvcmNlX3RleHR1cmVfbG9kX29mZnNldF8zIiwKKyAgICAgICAgICAgICJjYXRl
Z29yeSI6ICJXb3JrYXJvdW5kcyIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiBbCisgICAg
ICAgICAgICAgICAgIkluY3JlYXNlIHRoZSBtaW5pbXVtIHRleHR1cmUgbGV2ZWwtb2YtZGV0YWls
IGJ5IDMgd2hlbiBzYW1wbGluZy4iCisgICAgICAgICAgICBdCisgICAgICAgIH0sCisKKyAgICAg
ICAgeworICAgICAgICAgICAgIm5hbWUiOiAiZm9yY2VfdGV4dHVyZV9sb2Rfb2Zmc2V0XzQiLAor
ICAgICAgICAgICAgImNhdGVnb3J5IjogIldvcmthcm91bmRzIiwKKyAgICAgICAgICAgICJkZXNj
cmlwdGlvbiI6IFsKKyAgICAgICAgICAgICAgICAiSW5jcmVhc2UgdGhlIG1pbmltdW0gdGV4dHVy
ZSBsZXZlbC1vZi1kZXRhaWwgYnkgNCB3aGVuIHNhbXBsaW5nLiIKKyAgICAgICAgICAgIF0KKyAg
ICAgICAgfSwKKworICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJmb3JjZV9uZWFyZXN0
X2ZpbHRlcmluZyIsCisgICAgICAgICAgICAiY2F0ZWdvcnkiOiAiV29ya2Fyb3VuZHMiLAorICAg
ICAgICAgICAgImRlc2NyaXB0aW9uIjogWworICAgICAgICAgICAgICAgICJGb3JjZSBuZWFyZXN0
IGZpbHRlcmluZyB3aGVuIHNhbXBsaW5nLiIKKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKwor
ICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJmb3JjZV9uZWFyZXN0X21pcF9maWx0ZXJp
bmciLAorICAgICAgICAgICAgImNhdGVnb3J5IjogIldvcmthcm91bmRzIiwKKyAgICAgICAgICAg
ICJkZXNjcmlwdGlvbiI6IFsKKyAgICAgICAgICAgICAgICAiRm9yY2UgbmVhcmVzdCBtaXAgZmls
dGVyaW5nIHdoZW4gc2FtcGxpbmcuIgorICAgICAgICAgICAgXQorICAgICAgICB9LAorCisgICAg
ICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogImNvbXByZXNzX3ZlcnRleF9kYXRhIiwKKyAgICAg
ICAgICAgICJjYXRlZ29yeSI6ICJXb3JrYXJvdW5kcyIsCisgICAgICAgICAgICAiZGVzY3JpcHRp
b24iOiBbCisgICAgICAgICAgICAgICAgIkNvbXByZXNzIHZlcnRleCBkYXRhIHRvIHNtYWxsZXIg
ZGF0YSB0eXBlcyB3aGVuICIsCisgICAgICAgICAgICAgICAgInBvc3NpYmxlLiBVc2luZyB0aGlz
IGZlYXR1cmUgbWFrZXMgQU5HTEUgbm9uLWNvbmZvcm1hbnQuIgorICAgICAgICAgICAgXQorICAg
ICAgICB9LAorCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogInByZWZlcl9kcmF3X2Ns
ZWFyX292ZXJfdmtDbWRDbGVhckF0dGFjaG1lbnRzIiwKKyAgICAgICAgICAgICJjYXRlZ29yeSI6
ICJXb3JrYXJvdW5kcyIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiBbCisgICAgICAgICAg
ICAgICAgIk9uIHNvbWUgaGFyZHdhcmUsIGNsZWFyIHVzaW5nIGEgZHJhdyBjYWxsIGluc3RlYWQg
b2YgdmtDbWRDbGVhckF0dGFjaG1lbnRzIGluIHRoZSBtaWRkbGUgIiwKKyAgICAgICAgICAgICAg
ICAib2YgcmVuZGVyIHBhc3MgZHVlIHRvIGJ1Z3MiCisgICAgICAgICAgICBdLAorICAgICAgICAg
ICAgImlzc3VlIjogImh0dHBzOi8vaXNzdWV0cmFja2VyLmdvb2dsZS5jb20vMTY2ODA5MDk3Igor
ICAgICAgICB9LAorCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogImVtdWxhdGVkX3By
ZXJvdGF0aW9uXzkwIiwKKyAgICAgICAgICAgICJjYXRlZ29yeSI6ICJGZWF0dXJlcyIsCisgICAg
ICAgICAgICAiZGVzY3JpcHRpb24iOiBbCisgICAgICAgICAgICAgICAgIkVtdWxhdGUgOTAtZGVn
cmVlIHByZXJvdGF0aW9uLiIKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAiaXNzdWUiOiAi
aHR0cDovL2FuZ2xlYnVnLmNvbS80OTAxIgorICAgICAgICB9LAorCisgICAgICAgIHsKKyAgICAg
ICAgICAgICJuYW1lIjogImVtdWxhdGVkX3ByZXJvdGF0aW9uXzE4MCIsCisgICAgICAgICAgICAi
Y2F0ZWdvcnkiOiAiRmVhdHVyZXMiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogWworICAg
ICAgICAgICAgICAgICJFbXVsYXRlIDE4MC1kZWdyZWUgcHJlcm90YXRpb24uIgorICAgICAgICAg
ICAgXSwKKyAgICAgICAgICAgICJpc3N1ZSI6ICJodHRwOi8vYW5nbGVidWcuY29tLzQ5MDEiCisg
ICAgICAgIH0sCisKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAiZW11bGF0ZWRfcHJl
cm90YXRpb25fMjcwIiwKKyAgICAgICAgICAgICJjYXRlZ29yeSI6ICJGZWF0dXJlcyIsCisgICAg
ICAgICAgICAiZGVzY3JpcHRpb24iOiBbCisgICAgICAgICAgICAgICAgIkVtdWxhdGUgMjcwLWRl
Z3JlZSBwcmVyb3RhdGlvbi4iCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImlzc3VlIjog
Imh0dHA6Ly9hbmdsZWJ1Zy5jb20vNDkwMSIKKyAgICAgICAgfSwKKworICAgICAgICB7CisgICAg
ICAgICAgICAibmFtZSI6ICJnZW5lcmF0ZV9TUElSVl90aHJvdWdoX2dsc2xhbmciLAorICAgICAg
ICAgICAgImNhdGVnb3J5IjogIkZlYXR1cmVzIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6
IFsKKyAgICAgICAgICAgICAgICAiVHJhbnNsYXRlIFNQSVItViB0aHJvdWdoIGdsc2xhbmcuIgor
ICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJpc3N1ZSI6ICJodHRwOi8vYW5nbGVidWcuY29t
LzQ4ODkiCisgICAgICAgIH0sCisKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAiZm9y
Y2VfZHJpdmVyX3VuaWZvcm1fb3Zlcl9zcGVjX2NvbnN0IiwKKyAgICAgICAgICAgICJjYXRlZ29y
eSI6ICJXb3JrYXJvdW5kcyIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiBbCisgICAgICAg
ICAgICAgICAgIkZvcmNlcyB1c2luZyBkcml2ZXIgdW5pZm9ybXMgaW5zdGVhZCBvZiBzcGVjaWFs
aXphdGlvbiBjb25zdGFudHMuIgorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJpc3N1ZSI6
ICJodHRwOi8vaXNzdWV0cmFja2VyLmdvb2dsZS5jb20vMTczNjM2NzgzIgorICAgICAgICB9LAor
CisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogImV4cG9zZV9ub25fY29uZm9ybWFudF9l
eHRlbnNpb25zX2FuZF92ZXJzaW9ucyIsCisgICAgICAgICAgICAiY2F0ZWdvcnkiOiAiV29ya2Fy
b3VuZHMiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogWworICAgICAgICAgICAgICAgICJF
eHBvc2UgR0xFUyB2ZXJzaW9ucyBhbmQgZXh0ZW5zaW9ucyB0aGF0IGFyZSBub3QgY29uZm9ybWFu
dC4iCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImlzc3VlIjogImh0dHA6Ly9hbmdsZWJ1
Zy5jb20vNTM3NSIKKyAgICAgICAgfSwKKworICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6
ICJlbXVsYXRlX1IzMmZfaW1hZ2VfYXRvbWljX2V4Y2hhbmdlIiwKKyAgICAgICAgICAgICJjYXRl
Z29yeSI6ICJXb3JrYXJvdW5kcyIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiBbCisgICAg
ICAgICAgICAgICAgIkVtdWxhdGUgcjMyZiBpbWFnZXMgd2l0aCByMzJ1aSB0byBzdXBwb3J0IGlt
YWdlQXRvbWljRXhjaGFuZ2UuIgorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJpc3N1ZSI6
ICJodHRwOi8vYW5nbGVidWcuY29tLzU1MzUiCisgICAgICAgIH0sCisKKyAgICAgICAgeworICAg
ICAgICAgICAgIm5hbWUiOiAic3VwcG9ydHNfbmVnYXRpdmVfdmlld3BvcnQiLAorICAgICAgICAg
ICAgImNhdGVnb3J5IjogIkZlYXR1cmVzIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6IFsK
KyAgICAgICAgICAgICAgICAiVGhlIGRyaXZlciBzdXBwb3J0cyBpbnZlcnRpbmcgdGhlIHZpZXdw
b3J0IHdpdGggYSBuZWdhdGl2ZSBoZWlnaHQuIgorICAgICAgICAgICAgXQorICAgICAgICB9LAor
CisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogImZvcmNlX2ZyYWdtZW50X3NoYWRlcl9w
cmVjaXNpb25faGlnaHBfdG9fbWVkaXVtcCIsCisgICAgICAgICAgICAiY2F0ZWdvcnkiOiAiV29y
a2Fyb3VuZHMiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogWworICAgICAgICAgICAgICAg
ICJGb3JjZXMgaGlnaHAgcHJlY2lzaW9uIGluIGZyYWdtZW50IHNoYWRlciB0byBtZWRpdW1wLiIK
KyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAiaXNzdWUiOiAiaHR0cHM6Ly9pc3N1ZXRyYWNr
ZXIuZ29vZ2xlLmNvbS8xODQ4NTAwMDIiCisgICAgICAgIH0sCisKKyAgICAgICAgeworICAgICAg
ICAgICAgIm5hbWUiOiAicHJlZmVyX3N1Ym1pdF9hdF9GQk9fYm91bmRhcnkiLAorICAgICAgICAg
ICAgImNhdGVnb3J5IjogIldvcmthcm91bmRzIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6
IFsKKyAgICAgICAgICAgICAgICAiU3VibWl0IGNvbW1hbmRzIHRvIGRyaXZlciBhdCBlYWNoIEZC
TyBib3VuZGFyeSBmb3IgcGVyZm9ybWFuY2UgaW1wcm92ZW1lbnRzLiIKKyAgICAgICAgICAgIF0s
CisgICAgICAgICAgICAiaXNzdWUiOiAiaHR0cHM6Ly9pc3N1ZXRyYWNrZXIuZ29vZ2xlLmNvbS8x
ODc0MjU0NDQiCisgICAgICAgIH0sCisKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAi
dXNlX211bHRpcGxlX2Rlc2NyaXB0b3JzX2Zvcl9leHRlcm5hbF9mb3JtYXRzIiwKKyAgICAgICAg
ICAgICJjYXRlZ29yeSI6ICJXb3JrYXJvdW5kcyIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24i
OiBbCisgICAgICAgICAgICAgICAgIlJldHVybiBhIGRlZmF1bHQgZGVzY3JpcHRvciBjb3VudCBm
b3IgZXh0ZXJuYWwgZm9ybWF0cy4iCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImlzc3Vl
IjogImh0dHA6Ly9hbmdsZWJ1Zy5jb20vNjE0MSIKKyAgICAgICAgfSwKKworICAgICAgICB7Cisg
ICAgICAgICAgICAibmFtZSI6ICJzdXBwb3J0c19wcm90ZWN0ZWRfbWVtb3J5IiwKKyAgICAgICAg
ICAgICJjYXRlZ29yeSI6ICJGZWF0dXJlcyIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiBb
CisgICAgICAgICAgICAgICAgIlZrRGV2aWNlIHN1cHBvcnRzIHByb3RlY3RlZCBtZW1vcnkiCisg
ICAgICAgICAgICBdLAorICAgICAgICAgICAgImlzc3VlIjogImh0dHA6Ly9hbmdsZWJ1Zy5jb20v
Mzk2NSIKKyAgICAgICAgfSwKKworICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJzdXBw
b3J0c19ob3N0X3F1ZXJ5X3Jlc2V0IiwKKyAgICAgICAgICAgICJjYXRlZ29yeSI6ICJGZWF0dXJl
cyIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiBbCisgICAgICAgICAgICAgICAgIlZrRGV2
aWNlIHN1cHBvcnRzIFZLX0VYVF9ob3N0X3F1ZXJ5X3Jlc2V0IGV4dGVuc2lvbiIKKyAgICAgICAg
ICAgIF0sCisgICAgICAgICAgICAiaXNzdWUiOiAiaHR0cDovL2FuZ2xlYnVnLmNvbS82NjkyIgor
ICAgICAgICB9LAorCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogInN1cHBvcnRzX3N1
cmZhY2VfY2FwYWJpbGl0aWVzMl9leHRlbnNpb24iLAorICAgICAgICAgICAgImNhdGVnb3J5Ijog
IkZlYXR1cmVzIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6IFsKKyAgICAgICAgICAgICAg
ICAiVmtJbnN0YW5jZSBzdXBwb3J0cyB0aGUgVktfS0hSX2dldF9zdXJmYWNlX2NhcGFiaWxpdGll
czIgZXh0ZW5zaW9uIgorICAgICAgICAgICAgXQorICAgICAgICB9LAorCisgICAgICAgIHsKKyAg
ICAgICAgICAgICJuYW1lIjogInN1cHBvcnRzX3N1cmZhY2VfcHJvdGVjdGVkX2NhcGFiaWxpdGll
c19leHRlbnNpb24iLAorICAgICAgICAgICAgImNhdGVnb3J5IjogIkZlYXR1cmVzIiwKKyAgICAg
ICAgICAgICJkZXNjcmlwdGlvbiI6IFsKKyAgICAgICAgICAgICAgICAiVmtJbnN0YW5jZSBzdXBw
b3J0cyB0aGUgVktfS0hSX3N1cmZhY2VfcHJvdGVjdGVkX2NhcGFiaWxpdGllcyBleHRlbnNpb24i
CisgICAgICAgICAgICBdCisgICAgICAgIH0sCisKKyAgICAgICAgeworICAgICAgICAgICAgIm5h
bWUiOiAic3VwcG9ydHNfc3VyZmFjZWxlc3NfcXVlcnlfZXh0ZW5zaW9uIiwKKyAgICAgICAgICAg
ICJjYXRlZ29yeSI6ICJGZWF0dXJlcyIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiBbCisg
ICAgICAgICAgICAgICAgIlZrSW5zdGFuY2Ugc3VwcG9ydHMgdGhlIFZLX0dPT0dMRV9zdXJmYWNl
bGVzc19xdWVyeSBleHRlbnNpb24iCisgICAgICAgICAgICBdCisgICAgICAgIH0sCisKKyAgICAg
ICAgeworICAgICAgICAgICAgIm5hbWUiOiAic3VwcG9ydHNfc3VyZmFjZV9wcm90ZWN0ZWRfc3dh
cGNoYWlucyIsCisgICAgICAgICAgICAiY2F0ZWdvcnkiOiAiRmVhdHVyZXMiLAorICAgICAgICAg
ICAgImRlc2NyaXB0aW9uIjogWworICAgICAgICAgICAgICAgICJWa1N1cmZhY2Ugc3VwcG9ydHNQ
cm90ZWN0ZWQgZm9yIHByb3RlY3RlZCBzd2FwY2hhaW5zIgorICAgICAgICAgICAgXQorICAgICAg
ICB9LAorCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogIm92ZXJyaWRlX3N1cmZhY2Vf
Zm9ybWF0X1JHQjhfdG9fUkdCQTgiLAorICAgICAgICAgICAgImNhdGVnb3J5IjogIldvcmthcm91
bmRzIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6IFsKKyAgICAgICAgICAgICAgICAiT3Zl
cnJpZGUgc3VyZmFjZSBmb3JtYXQgR0xfUkdCOCB0byBHTF9SR0JBOCIKKyAgICAgICAgICAgIF0s
CisgICAgICAgICAgICAiaXNzdWUiOiAiaHR0cDovL2FuZ2xlYnVnLmNvbS82NjUxIgorICAgICAg
ICB9LAorCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogInN1cHBvcnRzX3NoYXJlZF9w
cmVzZW50YWJsZV9pbWFnZV9leHRlbnNpb24iLAorICAgICAgICAgICAgImNhdGVnb3J5IjogIkZl
YXR1cmVzIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6IFsKKyAgICAgICAgICAgICAgICAi
VmtTdXJmYWNlIHN1cHBvcnRzIHRoZSBWS19LSFJfc2hhcmVkX3ByZXNlbnRhYmxlX2ltYWdlcyBl
eHRlbnNpb24iCisgICAgICAgICAgICBdCisgICAgICAgIH0sCisKKyAgICAgICAgeworICAgICAg
ICAgICAgIm5hbWUiOiAic3VwcG9ydHNfc2hhZGVyX2ZyYW1lYnVmZmVyX2ZldGNoIiwKKyAgICAg
ICAgICAgICJjYXRlZ29yeSI6ICJGZWF0dXJlcyIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24i
OiBbCisgICAgICAgICAgICAgICAgIldoZXRoZXIgdGhlIFZ1bGthbiBiYWNrZW5kIHN1cHBvcnRz
IGNvaGVyZW50IGZyYW1lYnVmZmVyIGZldGNoIgorICAgICAgICAgICAgXQorICAgICAgICB9LAor
CisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogInN1cHBvcnRzX3NoYWRlcl9mcmFtZWJ1
ZmZlcl9mZXRjaF9ub25fY29oZXJlbnQiLAorICAgICAgICAgICAgImNhdGVnb3J5IjogIkZlYXR1
cmVzIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6IFsKKyAgICAgICAgICAgICAgICAiV2hl
dGhlciB0aGUgVnVsa2FuIGJhY2tlbmQgc3VwcG9ydHMgbm9uLWNvaGVyZW50IGZyYW1lYnVmZmVy
IGZldGNoIgorICAgICAgICAgICAgXQorICAgICAgICB9LAorCisgICAgICAgIHsKKyAgICAgICAg
ICAgICJuYW1lIjogInN1cHBvcnRzX2xvY2tfc3VyZmFjZV9leHRlbnNpb24iLAorICAgICAgICAg
ICAgImNhdGVnb3J5IjogIkZlYXR1cmVzIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6IFsK
KyAgICAgICAgICAgICAgICAiU3VyZmFjZSBzdXBwb3J0cyB0aGUgRUdMX0tIUl9sb2NrX3N1cmZh
Y2UzIGV4dGVuc2lvbiIKKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKworICAgICAgICB7Cisg
ICAgICAgICAgICAibmFtZSI6ICJzd2FwYnVmZmVyc19vbl9mbHVzaF9vcl9maW5pc2hfd2l0aF9z
aW5nbGVfYnVmZmVyIiwKKyAgICAgICAgICAgICJjYXRlZ29yeSI6ICJGZWF0dXJlcyIsCisgICAg
ICAgICAgICAiZGVzY3JpcHRpb24iOiBbCisgICAgICAgICAgICAgICAgIkJ5cGFzcyBkZWZlcnJl
ZEZsdXNoIHdpdGggY2FsbGluZyBzd2FwYnVmZmVycyBvbiBmbHVzaCBvciBmaW5pc2ggd2hlbiBp
biBTaGFyZWQgUHJlc2VudCAiLAorICAgICAgICAgICAgICAgICJtb2RlIgorICAgICAgICAgICAg
XSwKKyAgICAgICAgICAgICJpc3N1ZSI6ICJodHRwOi8vYW5nbGVidWcuY29tLzY4NzgiCisgICAg
ICAgIH0sCisKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAiZW11bGF0ZV9kaXRoZXJp
bmciLAorICAgICAgICAgICAgImNhdGVnb3J5IjogIkZlYXR1cmVzIiwKKyAgICAgICAgICAgICJk
ZXNjcmlwdGlvbiI6IFsKKyAgICAgICAgICAgICAgICAiRW11bGF0ZSBPcGVuR0wgZGl0aGVyaW5n
IgorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJpc3N1ZSI6ICJodHRwOi8vYW5nbGVidWcu
Y29tLzY3NTUiCisgICAgICAgIH0sCisKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAi
ZW11bGF0ZV9hZHZhbmNlZF9ibGVuZF9lcXVhdGlvbnMiLAorICAgICAgICAgICAgImNhdGVnb3J5
IjogIkZlYXR1cmVzIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6IFsKKyAgICAgICAgICAg
ICAgICAiRW11bGF0ZSBHTF9LSFJfYmxlbmRfZXF1YXRpb25fYWR2YW5jZWQiCisgICAgICAgICAg
ICBdLAorICAgICAgICAgICAgImlzc3VlIjogImh0dHA6Ly9hbmdsZWJ1Zy5jb20vMzU4NiIKKyAg
ICAgICAgfSwKKworICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJib3R0b21fbGVmdF9v
cmlnaW5fcHJlc2VudF9yZWdpb25fcmVjdGFuZ2xlcyIsCisgICAgICAgICAgICAiY2F0ZWdvcnki
OiAiV29ya2Fyb3VuZHMiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogWworICAgICAgICAg
ICAgICAgICJPbiBzb21lIHBsYXRmb3JtcyBwcmVzZW50IHJlZ2lvbiByZWN0YW5nbGVzIGFyZSBl
eHBlY3RlZCB0byBoYXZlIGEgYm90dG9tLWxlZnQgb3JpZ2luLCAiLAorICAgICAgICAgICAgICAg
ICJpbnN0ZWFkIG9mIHRvcC1sZWZ0IG9yaWdpbiBhcyBmcm9tIHNwZWMiCisgICAgICAgICAgICBd
CisgICAgICAgIH0sCisKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAiZm9yY2Vfc3Vi
bWl0X2ltbXV0YWJsZV90ZXh0dXJlX3VwZGF0ZXMiLAorICAgICAgICAgICAgImNhdGVnb3J5Ijog
IkFwcFdvcmthcm91bmRzIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6IFsKKyAgICAgICAg
ICAgICAgICAiRm9yY2Ugc3VibWl0IHVwZGF0ZXMgdG8gaW1tdXRhYmxlIHRleHR1cmVzIgorICAg
ICAgICAgICAgXSwKKyAgICAgICAgICAgICJpc3N1ZSI6ICJodHRwOi8vYW5nbGVidWcuY29tLzY5
MjkiCisgICAgICAgIH0sCisKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAicmV0YWlu
X1NQSVJWX2RlYnVnX2luZm8iLAorICAgICAgICAgICAgImNhdGVnb3J5IjogIkZlYXR1cmVzIiwK
KyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6IFsKKyAgICAgICAgICAgICAgICAiUmV0YWluIGRl
YnVnIGluZm8gaW4gU1BJUi1WIGJsb2IuIgorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJp
c3N1ZSI6ICJodHRwOi8vYW5nbGVidWcuY29tLzU5MDEiCisgICAgICAgIH0sCisKKyAgICAgICAg
eworICAgICAgICAgICAgIm5hbWUiOiAiY3JlYXRlX3BpcGVsaW5lX2R1cmluZ19saW5rIiwKKyAg
ICAgICAgICAgICJjYXRlZ29yeSI6ICJGZWF0dXJlcyIsCisgICAgICAgICAgICAiZGVzY3JpcHRp
b24iOiBbCisgICAgICAgICAgICAgICAgIkNyZWF0ZSBwaXBlbGluZSB3aXRoIGRlZmF1bHQgc3Rh
dGUgZHVyaW5nIGdsTGlua1Byb2dyYW0iCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImlz
c3VlIjogImh0dHA6Ly9hbmdsZWJ1Zy5jb20vNzA0NiIKKyAgICAgICAgfSwKKworICAgICAgICB7
CisgICAgICAgICAgICAibmFtZSI6ICJwcmVmZXJfZGV2aWNlX2xvY2FsX21lbW9yeV9ob3N0X3Zp
c2libGUiLAorICAgICAgICAgICAgImNhdGVnb3J5IjogIkZlYXR1cmVzIiwKKyAgICAgICAgICAg
ICJkZXNjcmlwdGlvbiI6IFsKKyAgICAgICAgICAgICAgICAiUHJlZmVyIGFkZGluZyBIT1NUX1ZJ
U0lCTEUgZmxhZyBmb3IgREVWSUNFX0xPQ0FMIG1lbW9yeSB3aGVuIHBpY2tpbmcgbWVtb3J5IHR5
cGVzIgorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJpc3N1ZSI6ICJodHRwOi8vYW5nbGVi
dWcuY29tLzcwNDciCisgICAgICAgIH0sCisKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUi
OiAic3VwcG9ydHNfZnJhZ21lbnRfc2hhZGluZ19yYXRlIiwKKyAgICAgICAgICAgICJjYXRlZ29y
eSI6ICJGZWF0dXJlcyIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiBbCisgICAgICAgICAg
ICAgICAgIlZrRGV2aWNlIHN1cHBvcnRzIFZLX0tIUl9mcmFnbWVudF9zaGFkaW5nX3JhdGUgZXh0
ZW5zaW9uIgorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJpc3N1ZSI6ICJodHRwOi8vYW5n
bGVidWcuY29tLzcxNzIiCisgICAgICAgIH0KKyAgICBdCit9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9BTkdMRS9pbmZyYS9jb25maWcvZ2VuZXJhdGVkL2x1Y2ktc2NoZWR1bGVyLmNm
ZyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL2luZnJhL2NvbmZpZy9nZW5lcmF0ZWQvbHVjaS1z
Y2hlZHVsZXIuY2ZnCmluZGV4IDIyZTMzYzI0NDczNzdkYzllYjNhODllMmNmMTM4MmFlNThkODJl
MWQuLjYyNTE1MWE1ZjUxZTY3MzMzMWQ2ZTA5MjA3NThhOTYxNTZjODc2ZjcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL2luZnJhL2NvbmZpZy9nZW5lcmF0ZWQvbHVjaS1zY2hl
ZHVsZXIuY2ZnCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL2luZnJhL2NvbmZpZy9nZW5l
cmF0ZWQvbHVjaS1zY2hlZHVsZXIuY2ZnCkBAIC04LDYgKzgsMTAgQEAgam9iIHsKICAgaWQ6ICJh
bmRyb2lkLWFybS1jb21waWxlIgogICByZWFsbTogImNpIgogICBhY2xfc2V0czogImNpIgorICB0
cmlnZ2VyaW5nX3BvbGljeSB7CisgICAga2luZDogTE9HQVJJVEhNSUNfQkFUQ0hJTkcKKyAgICBs
b2dfYmFzZTogMgorICB9CiAgIGJ1aWxkYnVja2V0IHsKICAgICBzZXJ2ZXI6ICJjci1idWlsZGJ1
Y2tldC5hcHBzcG90LmNvbSIKICAgICBidWNrZXQ6ICJjaSIKQEAgLTE4LDYgKzIyLDEwIEBAIGpv
YiB7CiAgIGlkOiAiYW5kcm9pZC1hcm0tZGJnLWNvbXBpbGUiCiAgIHJlYWxtOiAiY2kiCiAgIGFj
bF9zZXRzOiAiY2kiCisgIHRyaWdnZXJpbmdfcG9saWN5IHsKKyAgICBraW5kOiBMT0dBUklUSE1J
Q19CQVRDSElORworICAgIGxvZ19iYXNlOiAyCisgIH0KICAgYnVpbGRidWNrZXQgewogICAgIHNl
cnZlcjogImNyLWJ1aWxkYnVja2V0LmFwcHNwb3QuY29tIgogICAgIGJ1Y2tldDogImNpIgpAQCAt
MjgsNiArMzYsMTAgQEAgam9iIHsKICAgaWQ6ICJhbmRyb2lkLWFybTY0LWRiZy1jb21waWxlIgog
ICByZWFsbTogImNpIgogICBhY2xfc2V0czogImNpIgorICB0cmlnZ2VyaW5nX3BvbGljeSB7Cisg
ICAga2luZDogTE9HQVJJVEhNSUNfQkFUQ0hJTkcKKyAgICBsb2dfYmFzZTogMgorICB9CiAgIGJ1
aWxkYnVja2V0IHsKICAgICBzZXJ2ZXI6ICJjci1idWlsZGJ1Y2tldC5hcHBzcG90LmNvbSIKICAg
ICBidWNrZXQ6ICJjaSIKQEAgLTM4LDYgKzUwLDEwIEBAIGpvYiB7CiAgIGlkOiAiYW5kcm9pZC1h
cm02NC1leHAtdGVzdCIKICAgcmVhbG06ICJjaSIKICAgYWNsX3NldHM6ICJjaSIKKyAgdHJpZ2dl
cmluZ19wb2xpY3kgeworICAgIGtpbmQ6IExPR0FSSVRITUlDX0JBVENISU5HCisgICAgbG9nX2Jh
c2U6IDIKKyAgfQogICBidWlsZGJ1Y2tldCB7CiAgICAgc2VydmVyOiAiY3ItYnVpbGRidWNrZXQu
YXBwc3BvdC5jb20iCiAgICAgYnVja2V0OiAiY2kiCkBAIC00OCw2ICs2NCwxMCBAQCBqb2Igewog
ICBpZDogImFuZHJvaWQtYXJtNjQtdGVzdCIKICAgcmVhbG06ICJjaSIKICAgYWNsX3NldHM6ICJj
aSIKKyAgdHJpZ2dlcmluZ19wb2xpY3kgeworICAgIGtpbmQ6IExPR0FSSVRITUlDX0JBVENISU5H
CisgICAgbG9nX2Jhc2U6IDIKKyAgfQogICBidWlsZGJ1Y2tldCB7CiAgICAgc2VydmVyOiAiY3It
YnVpbGRidWNrZXQuYXBwc3BvdC5jb20iCiAgICAgYnVja2V0OiAiY2kiCkBAIC01OCw2ICs3OCwx
MCBAQCBqb2IgewogICBpZDogImFuZHJvaWQtcGl4ZWw0LXBlcmYiCiAgIHJlYWxtOiAiY2kiCiAg
IGFjbF9zZXRzOiAiY2kiCisgIHRyaWdnZXJpbmdfcG9saWN5IHsKKyAgICBraW5kOiBMT0dBUklU
SE1JQ19CQVRDSElORworICAgIGxvZ19iYXNlOiAyCisgIH0KICAgYnVpbGRidWNrZXQgewogICAg
IHNlcnZlcjogImNyLWJ1aWxkYnVja2V0LmFwcHNwb3QuY29tIgogICAgIGJ1Y2tldDogImNpIgpA
QCAtNjgsNiArOTIsMTAgQEAgam9iIHsKICAgaWQ6ICJsaW51eC1hc2FuLXRlc3QiCiAgIHJlYWxt
OiAiY2kiCiAgIGFjbF9zZXRzOiAiY2kiCisgIHRyaWdnZXJpbmdfcG9saWN5IHsKKyAgICBraW5k
OiBMT0dBUklUSE1JQ19CQVRDSElORworICAgIGxvZ19iYXNlOiAyCisgIH0KICAgYnVpbGRidWNr
ZXQgewogICAgIHNlcnZlcjogImNyLWJ1aWxkYnVja2V0LmFwcHNwb3QuY29tIgogICAgIGJ1Y2tl
dDogImNpIgpAQCAtNzgsNiArMTA2LDEwIEBAIGpvYiB7CiAgIGlkOiAibGludXgtZGJnLWNvbXBp
bGUiCiAgIHJlYWxtOiAiY2kiCiAgIGFjbF9zZXRzOiAiY2kiCisgIHRyaWdnZXJpbmdfcG9saWN5
IHsKKyAgICBraW5kOiBMT0dBUklUSE1JQ19CQVRDSElORworICAgIGxvZ19iYXNlOiAyCisgIH0K
ICAgYnVpbGRidWNrZXQgewogICAgIHNlcnZlcjogImNyLWJ1aWxkYnVja2V0LmFwcHNwb3QuY29t
IgogICAgIGJ1Y2tldDogImNpIgpAQCAtODgsNiArMTIwLDEwIEBAIGpvYiB7CiAgIGlkOiAibGlu
dXgtaW50ZWwtaGQ2MzAtcGVyZiIKICAgcmVhbG06ICJjaSIKICAgYWNsX3NldHM6ICJjaSIKKyAg
dHJpZ2dlcmluZ19wb2xpY3kgeworICAgIGtpbmQ6IExPR0FSSVRITUlDX0JBVENISU5HCisgICAg
bG9nX2Jhc2U6IDIKKyAgfQogICBidWlsZGJ1Y2tldCB7CiAgICAgc2VydmVyOiAiY3ItYnVpbGRi
dWNrZXQuYXBwc3BvdC5jb20iCiAgICAgYnVja2V0OiAiY2kiCkBAIC05OCw2ICsxMzQsMTAgQEAg
am9iIHsKICAgaWQ6ICJsaW51eC1udmlkaWEtcDQwMC1wZXJmIgogICByZWFsbTogImNpIgogICBh
Y2xfc2V0czogImNpIgorICB0cmlnZ2VyaW5nX3BvbGljeSB7CisgICAga2luZDogTE9HQVJJVEhN
SUNfQkFUQ0hJTkcKKyAgICBsb2dfYmFzZTogMgorICB9CiAgIGJ1aWxkYnVja2V0IHsKICAgICBz
ZXJ2ZXI6ICJjci1idWlsZGJ1Y2tldC5hcHBzcG90LmNvbSIKICAgICBidWNrZXQ6ICJjaSIKQEAg
LTEwOCw2ICsxNDgsMTAgQEAgam9iIHsKICAgaWQ6ICJsaW51eC10ZXN0IgogICByZWFsbTogImNp
IgogICBhY2xfc2V0czogImNpIgorICB0cmlnZ2VyaW5nX3BvbGljeSB7CisgICAga2luZDogTE9H
QVJJVEhNSUNfQkFUQ0hJTkcKKyAgICBsb2dfYmFzZTogMgorICB9CiAgIGJ1aWxkYnVja2V0IHsK
ICAgICBzZXJ2ZXI6ICJjci1idWlsZGJ1Y2tldC5hcHBzcG90LmNvbSIKICAgICBidWNrZXQ6ICJj
aSIKQEAgLTExOCw2ICsxNjIsMTAgQEAgam9iIHsKICAgaWQ6ICJsaW51eC10cmFjZSIKICAgcmVh
bG06ICJjaSIKICAgYWNsX3NldHM6ICJjaSIKKyAgdHJpZ2dlcmluZ19wb2xpY3kgeworICAgIGtp
bmQ6IExPR0FSSVRITUlDX0JBVENISU5HCisgICAgbG9nX2Jhc2U6IDIKKyAgfQogICBidWlsZGJ1
Y2tldCB7CiAgICAgc2VydmVyOiAiY3ItYnVpbGRidWNrZXQuYXBwc3BvdC5jb20iCiAgICAgYnVj
a2V0OiAiY2kiCkBAIC0xMjgsNiArMTc2LDEwIEBAIGpvYiB7CiAgIGlkOiAibGludXgtdHNhbi10
ZXN0IgogICByZWFsbTogImNpIgogICBhY2xfc2V0czogImNpIgorICB0cmlnZ2VyaW5nX3BvbGlj
eSB7CisgICAga2luZDogTE9HQVJJVEhNSUNfQkFUQ0hJTkcKKyAgICBsb2dfYmFzZTogMgorICB9
CiAgIGJ1aWxkYnVja2V0IHsKICAgICBzZXJ2ZXI6ICJjci1idWlsZGJ1Y2tldC5hcHBzcG90LmNv
bSIKICAgICBidWNrZXQ6ICJjaSIKQEAgLTEzOCw2ICsxOTAsMTAgQEAgam9iIHsKICAgaWQ6ICJs
aW51eC11YnNhbi10ZXN0IgogICByZWFsbTogImNpIgogICBhY2xfc2V0czogImNpIgorICB0cmln
Z2VyaW5nX3BvbGljeSB7CisgICAga2luZDogTE9HQVJJVEhNSUNfQkFUQ0hJTkcKKyAgICBsb2df
YmFzZTogMgorICB9CiAgIGJ1aWxkYnVja2V0IHsKICAgICBzZXJ2ZXI6ICJjci1idWlsZGJ1Y2tl
dC5hcHBzcG90LmNvbSIKICAgICBidWNrZXQ6ICJjaSIKQEAgLTE0OCw2ICsyMDQsMTAgQEAgam9i
IHsKICAgaWQ6ICJtYWMtZGJnLWNvbXBpbGUiCiAgIHJlYWxtOiAiY2kiCiAgIGFjbF9zZXRzOiAi
Y2kiCisgIHRyaWdnZXJpbmdfcG9saWN5IHsKKyAgICBraW5kOiBMT0dBUklUSE1JQ19CQVRDSElO
RworICAgIGxvZ19iYXNlOiAyCisgIH0KICAgYnVpbGRidWNrZXQgewogICAgIHNlcnZlcjogImNy
LWJ1aWxkYnVja2V0LmFwcHNwb3QuY29tIgogICAgIGJ1Y2tldDogImNpIgpAQCAtMTU4LDYgKzIx
OCwxMCBAQCBqb2IgewogICBpZDogIm1hYy1leHAtdGVzdCIKICAgcmVhbG06ICJjaSIKICAgYWNs
X3NldHM6ICJjaSIKKyAgdHJpZ2dlcmluZ19wb2xpY3kgeworICAgIGtpbmQ6IExPR0FSSVRITUlD
X0JBVENISU5HCisgICAgbG9nX2Jhc2U6IDIKKyAgfQogICBidWlsZGJ1Y2tldCB7CiAgICAgc2Vy
dmVyOiAiY3ItYnVpbGRidWNrZXQuYXBwc3BvdC5jb20iCiAgICAgYnVja2V0OiAiY2kiCkBAIC0x
NjgsNiArMjMyLDEwIEBAIGpvYiB7CiAgIGlkOiAibWFjLXRlc3QiCiAgIHJlYWxtOiAiY2kiCiAg
IGFjbF9zZXRzOiAiY2kiCisgIHRyaWdnZXJpbmdfcG9saWN5IHsKKyAgICBraW5kOiBMT0dBUklU
SE1JQ19CQVRDSElORworICAgIGxvZ19iYXNlOiAyCisgIH0KICAgYnVpbGRidWNrZXQgewogICAg
IHNlcnZlcjogImNyLWJ1aWxkYnVja2V0LmFwcHNwb3QuY29tIgogICAgIGJ1Y2tldDogImNpIgpA
QCAtMTc4LDYgKzI0NiwxMCBAQCBqb2IgewogICBpZDogIndpbi1hc2FuLXRlc3QiCiAgIHJlYWxt
OiAiY2kiCiAgIGFjbF9zZXRzOiAiY2kiCisgIHRyaWdnZXJpbmdfcG9saWN5IHsKKyAgICBraW5k
OiBMT0dBUklUSE1JQ19CQVRDSElORworICAgIGxvZ19iYXNlOiAyCisgIH0KICAgYnVpbGRidWNr
ZXQgewogICAgIHNlcnZlcjogImNyLWJ1aWxkYnVja2V0LmFwcHNwb3QuY29tIgogICAgIGJ1Y2tl
dDogImNpIgpAQCAtMTg4LDYgKzI2MCwxMCBAQCBqb2IgewogICBpZDogIndpbi1kYmctY29tcGls
ZSIKICAgcmVhbG06ICJjaSIKICAgYWNsX3NldHM6ICJjaSIKKyAgdHJpZ2dlcmluZ19wb2xpY3kg
eworICAgIGtpbmQ6IExPR0FSSVRITUlDX0JBVENISU5HCisgICAgbG9nX2Jhc2U6IDIKKyAgfQog
ICBidWlsZGJ1Y2tldCB7CiAgICAgc2VydmVyOiAiY3ItYnVpbGRidWNrZXQuYXBwc3BvdC5jb20i
CiAgICAgYnVja2V0OiAiY2kiCkBAIC0xOTgsNiArMjc0LDEwIEBAIGpvYiB7CiAgIGlkOiAid2lu
LW1zdmMtY29tcGlsZSIKICAgcmVhbG06ICJjaSIKICAgYWNsX3NldHM6ICJjaSIKKyAgdHJpZ2dl
cmluZ19wb2xpY3kgeworICAgIGtpbmQ6IExPR0FSSVRITUlDX0JBVENISU5HCisgICAgbG9nX2Jh
c2U6IDIKKyAgfQogICBidWlsZGJ1Y2tldCB7CiAgICAgc2VydmVyOiAiY3ItYnVpbGRidWNrZXQu
YXBwc3BvdC5jb20iCiAgICAgYnVja2V0OiAiY2kiCkBAIC0yMDgsNiArMjg4LDEwIEBAIGpvYiB7
CiAgIGlkOiAid2luLW1zdmMtZGJnLWNvbXBpbGUiCiAgIHJlYWxtOiAiY2kiCiAgIGFjbF9zZXRz
OiAiY2kiCisgIHRyaWdnZXJpbmdfcG9saWN5IHsKKyAgICBraW5kOiBMT0dBUklUSE1JQ19CQVRD
SElORworICAgIGxvZ19iYXNlOiAyCisgIH0KICAgYnVpbGRidWNrZXQgewogICAgIHNlcnZlcjog
ImNyLWJ1aWxkYnVja2V0LmFwcHNwb3QuY29tIgogICAgIGJ1Y2tldDogImNpIgpAQCAtMjE4LDYg
KzMwMiwxMCBAQCBqb2IgewogICBpZDogIndpbi1tc3ZjLXg4Ni1jb21waWxlIgogICByZWFsbTog
ImNpIgogICBhY2xfc2V0czogImNpIgorICB0cmlnZ2VyaW5nX3BvbGljeSB7CisgICAga2luZDog
TE9HQVJJVEhNSUNfQkFUQ0hJTkcKKyAgICBsb2dfYmFzZTogMgorICB9CiAgIGJ1aWxkYnVja2V0
IHsKICAgICBzZXJ2ZXI6ICJjci1idWlsZGJ1Y2tldC5hcHBzcG90LmNvbSIKICAgICBidWNrZXQ6
ICJjaSIKQEAgLTIyOCw2ICszMTYsMTAgQEAgam9iIHsKICAgaWQ6ICJ3aW4tbXN2Yy14ODYtZGJn
LWNvbXBpbGUiCiAgIHJlYWxtOiAiY2kiCiAgIGFjbF9zZXRzOiAiY2kiCisgIHRyaWdnZXJpbmdf
cG9saWN5IHsKKyAgICBraW5kOiBMT0dBUklUSE1JQ19CQVRDSElORworICAgIGxvZ19iYXNlOiAy
CisgIH0KICAgYnVpbGRidWNrZXQgewogICAgIHNlcnZlcjogImNyLWJ1aWxkYnVja2V0LmFwcHNw
b3QuY29tIgogICAgIGJ1Y2tldDogImNpIgpAQCAtMjM4LDYgKzMzMCwxMCBAQCBqb2IgewogICBp
ZDogIndpbi10ZXN0IgogICByZWFsbTogImNpIgogICBhY2xfc2V0czogImNpIgorICB0cmlnZ2Vy
aW5nX3BvbGljeSB7CisgICAga2luZDogTE9HQVJJVEhNSUNfQkFUQ0hJTkcKKyAgICBsb2dfYmFz
ZTogMgorICB9CiAgIGJ1aWxkYnVja2V0IHsKICAgICBzZXJ2ZXI6ICJjci1idWlsZGJ1Y2tldC5h
cHBzcG90LmNvbSIKICAgICBidWNrZXQ6ICJjaSIKQEAgLTI0OCw2ICszNDQsMTAgQEAgam9iIHsK
ICAgaWQ6ICJ3aW4tdHJhY2UiCiAgIHJlYWxtOiAiY2kiCiAgIGFjbF9zZXRzOiAiY2kiCisgIHRy
aWdnZXJpbmdfcG9saWN5IHsKKyAgICBraW5kOiBMT0dBUklUSE1JQ19CQVRDSElORworICAgIGxv
Z19iYXNlOiAyCisgIH0KICAgYnVpbGRidWNrZXQgewogICAgIHNlcnZlcjogImNyLWJ1aWxkYnVj
a2V0LmFwcHNwb3QuY29tIgogICAgIGJ1Y2tldDogImNpIgpAQCAtMjU4LDYgKzM1OCwxMCBAQCBq
b2IgewogICBpZDogIndpbi14ODYtZGJnLWNvbXBpbGUiCiAgIHJlYWxtOiAiY2kiCiAgIGFjbF9z
ZXRzOiAiY2kiCisgIHRyaWdnZXJpbmdfcG9saWN5IHsKKyAgICBraW5kOiBMT0dBUklUSE1JQ19C
QVRDSElORworICAgIGxvZ19iYXNlOiAyCisgIH0KICAgYnVpbGRidWNrZXQgewogICAgIHNlcnZl
cjogImNyLWJ1aWxkYnVja2V0LmFwcHNwb3QuY29tIgogICAgIGJ1Y2tldDogImNpIgpAQCAtMjY4
LDYgKzM3MiwxMCBAQCBqb2IgewogICBpZDogIndpbi14ODYtdGVzdCIKICAgcmVhbG06ICJjaSIK
ICAgYWNsX3NldHM6ICJjaSIKKyAgdHJpZ2dlcmluZ19wb2xpY3kgeworICAgIGtpbmQ6IExPR0FS
SVRITUlDX0JBVENISU5HCisgICAgbG9nX2Jhc2U6IDIKKyAgfQogICBidWlsZGJ1Y2tldCB7CiAg
ICAgc2VydmVyOiAiY3ItYnVpbGRidWNrZXQuYXBwc3BvdC5jb20iCiAgICAgYnVja2V0OiAiY2ki
CkBAIC0yNzgsNiArMzg2LDEwIEBAIGpvYiB7CiAgIGlkOiAid2luMTAtaW50ZWwtaGQ2MzAtcGVy
ZiIKICAgcmVhbG06ICJjaSIKICAgYWNsX3NldHM6ICJjaSIKKyAgdHJpZ2dlcmluZ19wb2xpY3kg
eworICAgIGtpbmQ6IExPR0FSSVRITUlDX0JBVENISU5HCisgICAgbG9nX2Jhc2U6IDIKKyAgfQog
ICBidWlsZGJ1Y2tldCB7CiAgICAgc2VydmVyOiAiY3ItYnVpbGRidWNrZXQuYXBwc3BvdC5jb20i
CiAgICAgYnVja2V0OiAiY2kiCkBAIC0yODgsNiArNDAwLDEwIEBAIGpvYiB7CiAgIGlkOiAid2lu
MTAtbnZpZGlhLXA0MDAtcGVyZiIKICAgcmVhbG06ICJjaSIKICAgYWNsX3NldHM6ICJjaSIKKyAg
dHJpZ2dlcmluZ19wb2xpY3kgeworICAgIGtpbmQ6IExPR0FSSVRITUlDX0JBVENISU5HCisgICAg
bG9nX2Jhc2U6IDIKKyAgfQogICBidWlsZGJ1Y2tldCB7CiAgICAgc2VydmVyOiAiY3ItYnVpbGRi
dWNrZXQuYXBwc3BvdC5jb20iCiAgICAgYnVja2V0OiAiY2kiCkBAIC0yOTgsNiArNDE0LDEwIEBA
IGpvYiB7CiAgIGlkOiAid2ludXdwLWNvbXBpbGUiCiAgIHJlYWxtOiAiY2kiCiAgIGFjbF9zZXRz
OiAiY2kiCisgIHRyaWdnZXJpbmdfcG9saWN5IHsKKyAgICBraW5kOiBMT0dBUklUSE1JQ19CQVRD
SElORworICAgIGxvZ19iYXNlOiAyCisgIH0KICAgYnVpbGRidWNrZXQgewogICAgIHNlcnZlcjog
ImNyLWJ1aWxkYnVja2V0LmFwcHNwb3QuY29tIgogICAgIGJ1Y2tldDogImNpIgpAQCAtMzA4LDYg
KzQyOCwxMCBAQCBqb2IgewogICBpZDogIndpbnV3cC1kYmctY29tcGlsZSIKICAgcmVhbG06ICJj
aSIKICAgYWNsX3NldHM6ICJjaSIKKyAgdHJpZ2dlcmluZ19wb2xpY3kgeworICAgIGtpbmQ6IExP
R0FSSVRITUlDX0JBVENISU5HCisgICAgbG9nX2Jhc2U6IDIKKyAgfQogICBidWlsZGJ1Y2tldCB7
CiAgICAgc2VydmVyOiAiY3ItYnVpbGRidWNrZXQuYXBwc3BvdC5jb20iCiAgICAgYnVja2V0OiAi
Y2kiCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9pbmZyYS9jb25maWcvZ2Vu
ZXJhdGVkL3Byb2plY3QuY2ZnIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvaW5mcmEvY29uZmln
L2dlbmVyYXRlZC9wcm9qZWN0LmNmZwppbmRleCAwNjhiZmM0MzEyZTQwYjBlMDM2MDBiYTlhNGMw
YTZjNjhkOTk0MzM3Li5kNTEzNDM4N2YyNzUxNGZlMDgwMGEwYjhjNGQ5NDkzNDFhMTBiMDUxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9pbmZyYS9jb25maWcvZ2VuZXJhdGVk
L3Byb2plY3QuY2ZnCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL2luZnJhL2NvbmZpZy9n
ZW5lcmF0ZWQvcHJvamVjdC5jZmcKQEAgLTcsNyArNyw3IEBACiBuYW1lOiAiYW5nbGUiCiBhY2Nl
c3M6ICJncm91cDphbGwiCiBsdWNpY2ZnIHsKLSAgdmVyc2lvbjogIjEuMzAuOSIKKyAgdmVyc2lv
bjogIjEuMzAuMTEiCiAgIHBhY2thZ2VfZGlyOiAiLi4iCiAgIGNvbmZpZ19kaXI6ICJnZW5lcmF0
ZWQiCiAgIGVudHJ5X3BvaW50OiAibWFpbi5zdGFyIgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJk
UGFydHkvQU5HTEUvaW5mcmEvY29uZmlnL21haW4uc3RhciBiL1NvdXJjZS9UaGlyZFBhcnR5L0FO
R0xFL2luZnJhL2NvbmZpZy9tYWluLnN0YXIKaW5kZXggNmMxMmE2Zjk5MWViZGIwNzc3YTgzNWJm
ZDk0NTdjOTdiMGEyNDRlYS4uNDFhYjg1ODBjMjY4MjU2OWE0ZDQ0ZDg5Mjg3NDhmZDg4OWQ2NTYx
NCAxMDA3NTUKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvaW5mcmEvY29uZmlnL21haW4u
c3RhcgorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9pbmZyYS9jb25maWcvbWFpbi5zdGFy
CkBAIC0yODMsNiArMjgzLDEwIEBAIGRlZiBhbmdsZV9idWlsZGVyKG5hbWUsIGNwdSk6CiAgICAg
ICAgICAgICBjb2x1bW5fa2V5cyA9IFsidi5ncHUiXSwKICAgICAgICAgICAgIGdyb3VwaW5nX2tl
eXMgPSBbInN0YXR1cyIsICJ2LnRlc3Rfc3VpdGUiXSwKICAgICAgICAgKSwKKyAgICAgICAgdHJp
Z2dlcmluZ19wb2xpY3kgPSBzY2hlZHVsZXIucG9saWN5KAorICAgICAgICAgICAga2luZCA9IHNj
aGVkdWxlci5MT0dBUklUSE1JQ19CQVRDSElOR19LSU5ELAorICAgICAgICAgICAgbG9nX2Jhc2Ug
PSAyLAorICAgICAgICApLAogICAgICkKIAogICAgIGx1Y2kuY29uc29sZV92aWV3X2VudHJ5KApk
aWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvaW5mcmEvc3BlY3MvYW5nbGUuanNv
biBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL2luZnJhL3NwZWNzL2FuZ2xlLmpzb24KaW5kZXgg
NDkyNTViMzEzMjNkZTQ5ZDBjMmJkMmZlMDE5YzNlZTE0Yjg1YTI0MC4uMmUzNWU1MjExZTE5ZThm
NDNkY2YyYjA0ZTllMTI3MjhjNDQ0YmIzMyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkv
QU5HTEUvaW5mcmEvc3BlY3MvYW5nbGUuanNvbgorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdM
RS9pbmZyYS9zcGVjcy9hbmdsZS5qc29uCkBAIC02MjcsNyArNjI3LDcgQEAKICAgICAgICAgICAi
Y29udGFpbm1lbnRfdHlwZSI6ICJBVVRPIiwKICAgICAgICAgICAiZGltZW5zaW9uX3NldHMiOiBb
CiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICJkZXZpY2Vfb3MiOiAiUyIsCisgICAgICAg
ICAgICAgICJkZXZpY2Vfb3MiOiAiVCIsCiAgICAgICAgICAgICAgICJkZXZpY2Vfb3NfdHlwZSI6
ICJ1c2VyZGVidWciLAogICAgICAgICAgICAgICAiZGV2aWNlX3R5cGUiOiAib3Jpb2xlIiwKICAg
ICAgICAgICAgICAgIm9zIjogIkFuZHJvaWQiLApAQCAtNjY1LDcgKzY2NSw3IEBACiAgICAgICAg
ICAgImNvbnRhaW5tZW50X3R5cGUiOiAiQVVUTyIsCiAgICAgICAgICAgImRpbWVuc2lvbl9zZXRz
IjogWwogICAgICAgICAgICAgewotICAgICAgICAgICAgICAiZGV2aWNlX29zIjogIlMiLAorICAg
ICAgICAgICAgICAiZGV2aWNlX29zIjogIlQiLAogICAgICAgICAgICAgICAiZGV2aWNlX29zX3R5
cGUiOiAidXNlcmRlYnVnIiwKICAgICAgICAgICAgICAgImRldmljZV90eXBlIjogIm9yaW9sZSIs
CiAgICAgICAgICAgICAgICJvcyI6ICJBbmRyb2lkIiwKQEAgLTcwMyw3ICs3MDMsNyBAQAogICAg
ICAgICAgICJjb250YWlubWVudF90eXBlIjogIkFVVE8iLAogICAgICAgICAgICJkaW1lbnNpb25f
c2V0cyI6IFsKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgImRldmljZV9vcyI6ICJTIiwK
KyAgICAgICAgICAgICAgImRldmljZV9vcyI6ICJUIiwKICAgICAgICAgICAgICAgImRldmljZV9v
c190eXBlIjogInVzZXJkZWJ1ZyIsCiAgICAgICAgICAgICAgICJkZXZpY2VfdHlwZSI6ICJvcmlv
bGUiLAogICAgICAgICAgICAgICAib3MiOiAiQW5kcm9pZCIsCkBAIC03NDEsNyArNzQxLDcgQEAK
ICAgICAgICAgICAiY29udGFpbm1lbnRfdHlwZSI6ICJBVVRPIiwKICAgICAgICAgICAiZGltZW5z
aW9uX3NldHMiOiBbCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICJkZXZpY2Vfb3MiOiAi
UyIsCisgICAgICAgICAgICAgICJkZXZpY2Vfb3MiOiAiVCIsCiAgICAgICAgICAgICAgICJkZXZp
Y2Vfb3NfdHlwZSI6ICJ1c2VyZGVidWciLAogICAgICAgICAgICAgICAiZGV2aWNlX3R5cGUiOiAi
b3Jpb2xlIiwKICAgICAgICAgICAgICAgIm9zIjogIkFuZHJvaWQiLApAQCAtNzc5LDcgKzc3OSw3
IEBACiAgICAgICAgICAgImNvbnRhaW5tZW50X3R5cGUiOiAiQVVUTyIsCiAgICAgICAgICAgImRp
bWVuc2lvbl9zZXRzIjogWwogICAgICAgICAgICAgewotICAgICAgICAgICAgICAiZGV2aWNlX29z
IjogIlMiLAorICAgICAgICAgICAgICAiZGV2aWNlX29zIjogIlQiLAogICAgICAgICAgICAgICAi
ZGV2aWNlX29zX3R5cGUiOiAidXNlcmRlYnVnIiwKICAgICAgICAgICAgICAgImRldmljZV90eXBl
IjogIm9yaW9sZSIsCiAgICAgICAgICAgICAgICJvcyI6ICJBbmRyb2lkIiwKQEAgLTgxNiw3ICs4
MTYsNyBAQAogICAgICAgICAgICJjb250YWlubWVudF90eXBlIjogIkFVVE8iLAogICAgICAgICAg
ICJkaW1lbnNpb25fc2V0cyI6IFsKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgImRldmlj
ZV9vcyI6ICJTIiwKKyAgICAgICAgICAgICAgImRldmljZV9vcyI6ICJUIiwKICAgICAgICAgICAg
ICAgImRldmljZV9vc190eXBlIjogInVzZXJkZWJ1ZyIsCiAgICAgICAgICAgICAgICJkZXZpY2Vf
dHlwZSI6ICJvcmlvbGUiLAogICAgICAgICAgICAgICAib3MiOiAiQW5kcm9pZCIsCkBAIC04NTQs
NyArODU0LDcgQEAKICAgICAgICAgICAiY29udGFpbm1lbnRfdHlwZSI6ICJBVVRPIiwKICAgICAg
ICAgICAiZGltZW5zaW9uX3NldHMiOiBbCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICJk
ZXZpY2Vfb3MiOiAiUyIsCisgICAgICAgICAgICAgICJkZXZpY2Vfb3MiOiAiVCIsCiAgICAgICAg
ICAgICAgICJkZXZpY2Vfb3NfdHlwZSI6ICJ1c2VyZGVidWciLAogICAgICAgICAgICAgICAiZGV2
aWNlX3R5cGUiOiAib3Jpb2xlIiwKICAgICAgICAgICAgICAgIm9zIjogIkFuZHJvaWQiLApAQCAt
ODkxLDcgKzg5MSw3IEBACiAgICAgICAgICAgImNvbnRhaW5tZW50X3R5cGUiOiAiQVVUTyIsCiAg
ICAgICAgICAgImRpbWVuc2lvbl9zZXRzIjogWwogICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAiZGV2aWNlX29zIjogIlMiLAorICAgICAgICAgICAgICAiZGV2aWNlX29zIjogIlQiLAogICAg
ICAgICAgICAgICAiZGV2aWNlX29zX3R5cGUiOiAidXNlcmRlYnVnIiwKICAgICAgICAgICAgICAg
ImRldmljZV90eXBlIjogIm9yaW9sZSIsCiAgICAgICAgICAgICAgICJvcyI6ICJBbmRyb2lkIiwK
QEAgLTkzMCw3ICs5MzAsNyBAQAogICAgICAgICAgICJjb250YWlubWVudF90eXBlIjogIkFVVE8i
LAogICAgICAgICAgICJkaW1lbnNpb25fc2V0cyI6IFsKICAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgImRldmljZV9vcyI6ICJTIiwKKyAgICAgICAgICAgICAgImRldmljZV9vcyI6ICJUIiwK
ICAgICAgICAgICAgICAgImRldmljZV9vc190eXBlIjogInVzZXJkZWJ1ZyIsCiAgICAgICAgICAg
ICAgICJkZXZpY2VfdHlwZSI6ICJvcmlvbGUiLAogICAgICAgICAgICAgICAib3MiOiAiQW5kcm9p
ZCIsCkBAIC05NjYsNyArOTY2LDcgQEAKICAgICAgICAgICAiY29udGFpbm1lbnRfdHlwZSI6ICJB
VVRPIiwKICAgICAgICAgICAiZGltZW5zaW9uX3NldHMiOiBbCiAgICAgICAgICAgICB7Ci0gICAg
ICAgICAgICAgICJkZXZpY2Vfb3MiOiAiUyIsCisgICAgICAgICAgICAgICJkZXZpY2Vfb3MiOiAi
VCIsCiAgICAgICAgICAgICAgICJkZXZpY2Vfb3NfdHlwZSI6ICJ1c2VyZGVidWciLAogICAgICAg
ICAgICAgICAiZGV2aWNlX3R5cGUiOiAib3Jpb2xlIiwKICAgICAgICAgICAgICAgIm9zIjogIkFu
ZHJvaWQiLApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvaW5mcmEvc3BlY3Mv
bWl4aW5zLnB5bCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL2luZnJhL3NwZWNzL21peGlucy5w
eWwKaW5kZXggZjY1ZDRlOGYyYzFmMzJiODNkNzAwMTUxYTRhMTYxMzE4OWMzYjhjMi4uMzdmZTBl
ODFhZDUyOGEyMWM5ZDAzZDgzMzRlOTFkNGQ1YWE5MTIxOCAxMDA2NDQKLS0tIGEvU291cmNlL1Ro
aXJkUGFydHkvQU5HTEUvaW5mcmEvc3BlY3MvbWl4aW5zLnB5bAorKysgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9BTkdMRS9pbmZyYS9zcGVjcy9taXhpbnMucHlsCkBAIC0xNCw3ICsxNCw3IEBACiAjIEZv
ciBtb3JlIGluZm8gc2VlIENocm9taXVtJ3MgbWl4aW5zLnB5bCBpbiB0ZXN0aW5nL2J1aWxkYm90
LgogCiB7ICdhbmRyb2lkX3InOiB7J3N3YXJtaW5nJzogeydkaW1lbnNpb25zJzogeydkZXZpY2Vf
b3MnOiAnUid9fX0sCi0gICdhbmRyb2lkX3MnOiB7J3N3YXJtaW5nJzogeydkaW1lbnNpb25zJzog
eydkZXZpY2Vfb3MnOiAnUyd9fX0sCisgICdhbmRyb2lkX3QnOiB7J3N3YXJtaW5nJzogeydkaW1l
bnNpb25zJzogeydkZXZpY2Vfb3MnOiAnVCd9fX0sCiAgICdhbmdsZV9za2lhX2dvbGRfdGVzdCc6
IHsgJyRtaXhpbl9hcHBlbmQnOiB7ICdhcmdzJzogWyAnLS1naXQtcmV2aXNpb249JHtnb3RfYW5n
bGVfcmV2aXNpb259J10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICdwcmVjb21taXRfYXJncyc6IFsgJy0tZ2Vycml0LWlzc3VlPSR7cGF0Y2hfaXNzdWV9
JywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAnLS1nZXJyaXQtcGF0Y2hzZXQ9JHtwYXRjaF9zZXR9JywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL2luZnJhL3NwZWNzL3dhdGVyZmFsbHMucHlsIGIv
U291cmNlL1RoaXJkUGFydHkvQU5HTEUvaW5mcmEvc3BlY3Mvd2F0ZXJmYWxscy5weWwKaW5kZXgg
NzA4ODMxMThjMWFhNDVhMjI0ZGIyMDY5OWZmZTIwNDMxMTAyNjEyMS4uZWEyYzk1ODNhYjY3M2Ux
NDUwY2Q3ZjkzM2Q3ZjUzMTdiN2E5MDBiNCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkv
QU5HTEUvaW5mcmEvc3BlY3Mvd2F0ZXJmYWxscy5weWwKKysrIGIvU291cmNlL1RoaXJkUGFydHkv
QU5HTEUvaW5mcmEvc3BlY3Mvd2F0ZXJmYWxscy5weWwKQEAgLTQ1LDcgKzQ1LDcgQEAKICAgICAg
ICdhbmRyb2lkLWFybTY0LXBpeGVsNic6IHsKICAgICAgICAgJ29zX3R5cGUnOiAnYW5kcm9pZCcs
CiAgICAgICAgICdtaXhpbnMnOiBbCi0gICAgICAgICAgJ2FuZHJvaWRfcycsCisgICAgICAgICAg
J2FuZHJvaWRfdCcsCiAgICAgICAgICAgJ29yaW9sZScsCiAgICAgICAgICAgJ2dwdS1zd2FybWlu
Zy1wb29sJywKICAgICAgICAgICAnbGltaXRlZF9jYXBhY2l0eV9ib3QnLApkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvQU5HTEUvc2NyaXB0cy9hbmdsZV9kZXFwX3Rlc3RfbWVyZ2UucHkg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zY3JpcHRzL2FuZ2xlX2RlcXBfdGVzdF9tZXJnZS5w
eQppbmRleCBhYjBmZGYxZDQxOWJhN2NhZWYwZGYwODYwODYzODc4MGI5YWM3MjE2Li4yZDg4MWE0
ZDFkZjQzYjExOGVlYTYwMGVkZjAwOWFiZjdlYWE1ZWEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9BTkdMRS9zY3JpcHRzL2FuZ2xlX2RlcXBfdGVzdF9tZXJnZS5weQorKysgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9BTkdMRS9zY3JpcHRzL2FuZ2xlX2RlcXBfdGVzdF9tZXJnZS5weQpAQCAt
NiwxNSArNiwxNiBAQAogIiIiIE1lcmdlcyBkRVFQIHNoYXJkZWQgdGVzdCByZXN1bHRzIGluIHRo
ZSBBTkdMRSB0ZXN0aW5nIGluZnJhc3R1Y3R1cmUuIiIiCiAKIGltcG9ydCBvcworaW1wb3J0IHBh
dGhsaWIKIGltcG9ydCBzeXMKIAotZCA9IG9zLnBhdGguZGlybmFtZQotVEhJU19ESVIgPSBkKG9z
LnBhdGguYWJzcGF0aChfX2ZpbGVfXykpCi1BTkdMRV9TUkNfRElSID0gZChUSElTX0RJUikKLXN5
cy5wYXRoLmluc2VydCgwLCBvcy5wYXRoLmpvaW4oQU5HTEVfU1JDX0RJUiwgJ3Rlc3RpbmcnLCAn
bWVyZ2Vfc2NyaXB0cycpKQotQ0hST01JVU1fU1JDX0RJUiA9IGQoZChBTkdMRV9TUkNfRElSKSkK
LXN5cy5wYXRoLmluc2VydCgwLCBvcy5wYXRoLmpvaW4oQ0hST01JVU1fU1JDX0RJUiwgJ3Rlc3Rp
bmcnLCAnbWVyZ2Vfc2NyaXB0cycpKQogCitQWV9VVElMUyA9IHN0cihwYXRobGliLlBhdGgoX19m
aWxlX18pLnJlc29sdmUoKS5wYXJlbnRzWzFdIC8gJ3NyYycgLyAndGVzdHMnIC8gJ3B5X3V0aWxz
JykKK2lmIFBZX1VUSUxTIG5vdCBpbiBzeXMucGF0aDoKKyAgICBvcy5zdGF0KFBZX1VUSUxTKSBh
bmQgc3lzLnBhdGguaW5zZXJ0KDAsIFBZX1VUSUxTKQoraW1wb3J0IGFuZ2xlX3BhdGhfdXRpbAor
CithbmdsZV9wYXRoX3V0aWwuQWRkRGVwc0RpclRvUGF0aCgndGVzdGluZy9tZXJnZV9zY3JpcHRz
JykKIGltcG9ydCBtZXJnZV9hcGkKIGltcG9ydCBzdGFuZGFyZF9pc29sYXRlZF9zY3JpcHRfbWVy
Z2UKIApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc2NyaXB0cy9jb2RlX2dl
bmVyYXRpb25faGFzaGVzL0FOR0xFX2ZlYXR1cmVzLmpzb24gYi9Tb3VyY2UvVGhpcmRQYXJ0eS9B
TkdMRS9zY3JpcHRzL2NvZGVfZ2VuZXJhdGlvbl9oYXNoZXMvQU5HTEVfZmVhdHVyZXMuanNvbgpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi44ZmJhNmE4OWI3ODJjNTNiOTAzNzVhYjQ3YjI5OTY1OWFkYjFhZmQ3Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc2NyaXB0cy9jb2RlX2dlbmVy
YXRpb25faGFzaGVzL0FOR0xFX2ZlYXR1cmVzLmpzb24KQEAgLTAsMCArMSwyOCBAQAoreworICAi
aW5jbHVkZS9wbGF0Zm9ybS9GZWF0dXJlc0QzRF9hdXRvZ2VuLmgiOgorICAgICI3Mzg3ODJhYTE4
Yjg0ZGI3MzYwMDFkMWZlZjE5NDFmMSIsCisgICJpbmNsdWRlL3BsYXRmb3JtL0ZlYXR1cmVzR0xf
YXV0b2dlbi5oIjoKKyAgICAiMWJiOTA2MTJhNTRjYmM3MzJlMmVhZDIzMWRjZTFiYTMiLAorICAi
aW5jbHVkZS9wbGF0Zm9ybS9GZWF0dXJlc010bF9hdXRvZ2VuLmgiOgorICAgICJlNjI4NmRhZjAw
ODhmZTQxNDBiMTNhMGE2NGI5YWNiZCIsCisgICJpbmNsdWRlL3BsYXRmb3JtL0ZlYXR1cmVzVmtf
YXV0b2dlbi5oIjoKKyAgICAiNzY2OTRkNTc2ZTM5NjQ2M2JiMDAzOTBkYmNlOWIzYTkiLAorICAi
aW5jbHVkZS9wbGF0Zm9ybS9Gcm9udGVuZEZlYXR1cmVzX2F1dG9nZW4uaCI6CisgICAgIjk1YmEw
MTIwMTJhZTZhMmRlMmE5MjM3YWI5ZDA4MWY3IiwKKyAgImluY2x1ZGUvcGxhdGZvcm0vZDNkX2Zl
YXR1cmVzLmpzb24iOgorICAgICI5NDQ2YzgzNTFjOTYzZDg1NTBmZjdiZjI0NjgzNDkwNyIsCisg
ICJpbmNsdWRlL3BsYXRmb3JtL2Zyb250ZW5kX2ZlYXR1cmVzLmpzb24iOgorICAgICI1M2RmOGE4
YmU5Nzk1ZWFhZDMwMDQ0NDU2Zjg1YjdmMCIsCisgICJpbmNsdWRlL3BsYXRmb3JtL2dlbl9mZWF0
dXJlcy5weSI6CisgICAgIjA2Mjk4OWY3YThmM2ZmM2IzODNmOThmYzg5MDhkYzMzIiwKKyAgImlu
Y2x1ZGUvcGxhdGZvcm0vZ2xfZmVhdHVyZXMuanNvbiI6CisgICAgIjcyMmNhMmNmNmJhNTcxMTJm
ZGEzNTkxNzFiY2VhOWQzIiwKKyAgImluY2x1ZGUvcGxhdGZvcm0vbXRsX2ZlYXR1cmVzLmpzb24i
OgorICAgICI5ZmY3MzY4NGYyOGZmOGRmNDBmYjY2ZGE4ZmU0NzEzYSIsCisgICJpbmNsdWRlL3Bs
YXRmb3JtL3ZrX2ZlYXR1cmVzLmpzb24iOgorICAgICJhYWFiMDZjZDliNWNkZWZkYWYwOTNkNjU5
ZTc0N2ZhNyIsCisgICJ1dGlsL2FuZ2xlX2ZlYXR1cmVzX2F1dG9nZW4uY3BwIjoKKyAgICAiZDY0
NjBjOTZkN2Y2YzZkYjQ1MzcyOTM5ZjVjODc0ZmYiLAorICAidXRpbC9hbmdsZV9mZWF0dXJlc19h
dXRvZ2VuLmgiOgorICAgICJiZTZhMTAzNjBkMDgwYmQ4ODAyZTI4NWFkM2JjNDQzYyIKK30KXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9B
TkdMRS9zY3JpcHRzL2NvZGVfZ2VuZXJhdGlvbl9oYXNoZXMvRXh0ZW5zaW9uX2ZpbGVzLmpzb24g
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zY3JpcHRzL2NvZGVfZ2VuZXJhdGlvbl9oYXNoZXMv
RXh0ZW5zaW9uX2ZpbGVzLmpzb24KaW5kZXggNzg4ZWU0MzA5OGM2OGJjNTYyNmI4YzNjMjQ2MTZl
MDRmMWY0ZDgxYi4uYmU4MjJhNmY1MGYxOWI1ZDIyZWVmNjc2YjlkYzZmNTk5NDZhNDQ4MiAxMDA2
NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc2NyaXB0cy9jb2RlX2dlbmVyYXRpb25f
aGFzaGVzL0V4dGVuc2lvbl9maWxlcy5qc29uCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xF
L3NjcmlwdHMvY29kZV9nZW5lcmF0aW9uX2hhc2hlcy9FeHRlbnNpb25fZmlsZXMuanNvbgpAQCAt
MSwxMiArMSwxMiBAQAogewogICAiZG9jL0V4dGVuc2lvblN1cHBvcnQubWQiOgotICAgICJmMjAx
ZTU5YzBkN2ZjODkzYjM3YzRiMmUwOTU0ZDQxMCIsCisgICAgIjFiODZmMTIzODcwYjQ5ZTFkYjBi
MjQyNmY4NWQ1ZjRiIiwKICAgInNjcmlwdHMvY2wueG1sIjoKICAgICAiZjkyMzIwMWQ0ZWEzZTEx
MzA3NjNiMTlmYTdmYWE3YTIiLAogICAic2NyaXB0cy9lZ2wueG1sIjoKICAgICAiMDEzYzU1MmU2
YzUyM2FiZGNmMjY4MjY4ZWE0N2U5ZmUiLAogICAic2NyaXB0cy9lZ2xfYW5nbGVfZXh0LnhtbCI6
Ci0gICAgIjM2MThlODM1ZGJlMWIyOGVmNWFkMjBlN2UzNmQxMjYyIiwKKyAgICAiZTkwZmIyYjU3
NGYzYjQyNzAwZWMxZDZlMTg4MTc4NjkiLAogICAic2NyaXB0cy9leHRlbnNpb25fZGF0YS9pbnRl
bF82MzBfbGludXguanNvbiI6CiAgICAgIjUxM2RhYmU1NjFiOTJiNTc3ZWM4NDMzZDI2M2Y4YmE2
IiwKICAgInNjcmlwdHMvZXh0ZW5zaW9uX2RhdGEvaW50ZWxfNjMwX3dpbjEwLmpzb24iOgpAQCAt
MjIsMTcgKzIyLDE3IEBACiAgICJzY3JpcHRzL2V4dGVuc2lvbl9kYXRhL3N3aWZ0c2hhZGVyX3dp
bjEwX2dsZXMxLmpzb24iOgogICAgICJmYmYxYzNkYzgzNTcwYzFlM2ZmZmRiZWUzMTNiY2EzMCIs
CiAgICJzY3JpcHRzL2dsLnhtbCI6Ci0gICAgIjRlYTQyYTU5MzQzNDhlYWI0ZDMwYzBlOTJlMDBj
OTBkIiwKKyAgICAiZThmOGQ1MmY1YTViOGJkNWJkZDQ1NTdmZGM1OGQ1ZGQiLAogICAic2NyaXB0
cy9nbF9hbmdsZV9leHQueG1sIjoKLSAgICAiNWFjMzg2NzJhZTNjNGIwYWNhMDhiNTQ2MWViYzY2
OWQiLAorICAgICIzN2VlYmVkYzExNTNjZDlkMjA4ZWZhNDY5YTEwYTdiMiIsCiAgICJzY3JpcHRz
L3JlZ2lzdHJ5X3htbC5weSI6Ci0gICAgImEwNGMxMGMzMzFkZGZmNzNkMGZmOWE1NjQ4OWJlMTI5
IiwKKyAgICAiOGQwMDJjM2NkMDI3ZWIyOTJjMDFhYmZjOTFjOWJlN2IiLAogICAic2NyaXB0cy93
Z2wueG1sIjoKICAgICAiYzM2MDAxNDMxOTE5ZTFjNDM1ZjEyMTVhODVmN2UxZGIiLAogICAic3Jj
L2xpYkFOR0xFL2dlbl9leHRlbnNpb25zLnB5IjoKICAgICAiMTg2ZTdiMjJjYjU2MGJmNGYzMmUy
YjFiOGEwMjVkZDgiLAogICAic3JjL2xpYkFOR0xFL2dsZXNfZXh0ZW5zaW9uc19hdXRvZ2VuLmNw
cCI6Ci0gICAgIjVkZmU5NmRhZTVjZDQ4Njc5NDFlMGUzNGIwOWFhZTRiIiwKKyAgICAiZTAwZThi
ZDNjZWE0MTliMzNlOWIzY2I2NjQ2Mjc1NGYiLAogICAic3JjL2xpYkFOR0xFL2dsZXNfZXh0ZW5z
aW9uc19hdXRvZ2VuLmgiOgotICAgICI4ZGY3NDI3OWEzNGRmZDYzNGFiNGE5ZWZkZDU5MGYxNSIK
KyAgICAiODg3ZjM5Yzg5OTRhMGI4ZTNjODJhMjY3NmYyMzA4ZTciCiB9ClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc2NyaXB0
cy9jb2RlX2dlbmVyYXRpb25faGFzaGVzL0dMX0NUU18oZEVRUClfYnVpbGRfZmlsZXMuanNvbiBi
L1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NjcmlwdHMvY29kZV9nZW5lcmF0aW9uX2hhc2hlcy9H
TF9DVFNfKGRFUVApX2J1aWxkX2ZpbGVzLmpzb24KaW5kZXggODJiYTBmNGIwMThlOTRjOGRjN2Y3
Y2ZhMDliZTNkNDc1YzkyNjgwNS4uN2RmMDZlMGQ1NWZhMTg0NGU0MTFhYzgwYTBkMjRhZDMxMzQy
YWIxOCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc2NyaXB0cy9jb2RlX2dl
bmVyYXRpb25faGFzaGVzL0dMX0NUU18oZEVRUClfYnVpbGRfZmlsZXMuanNvbgorKysgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9BTkdMRS9zY3JpcHRzL2NvZGVfZ2VuZXJhdGlvbl9oYXNoZXMvR0xfQ1RT
XyhkRVFQKV9idWlsZF9maWxlcy5qc29uCkBAIC00Miw3ICs0Miw3IEBACiAgICJ0aGlyZF9wYXJ0
eS9WSy1HTC1DVFMvc3JjL2V4dGVybmFsL3NwaXJ2LXRvb2xzL0NNYWtlTGlzdHMudHh0IjoKICAg
ICAiY2NhOGI0Yjk4NGM0MGFmYjk4ODBkMTc3ZDUzNjIzYTEiLAogICAidGhpcmRfcGFydHkvVkst
R0wtQ1RTL3NyYy9leHRlcm5hbC92dWxrYW5jdHMvZnJhbWV3b3JrL3Z1bGthbi9DTWFrZUxpc3Rz
LnR4dCI6Ci0gICAgImMyYWY4MmM4YjNhYTYwOGFkZDNiZDI5ZmQ3YTM5NGY2IiwKKyAgICAiNWJi
M2U2ZmZiNDkwODFiODk4MzQ1NGFmMzY2NjRhMTMiLAogICAidGhpcmRfcGFydHkvVkstR0wtQ1RT
L3NyYy9leHRlcm5hbC92dWxrYW5jdHMvbW9kdWxlcy92dWxrYW4vQ01ha2VMaXN0cy50eHQiOgog
ICAgICJiYTBjZTVmZDYxZjgyMGRjZjM2ZjRmY2NjYjRmMDhlZCIsCiAgICJ0aGlyZF9wYXJ0eS9W
Sy1HTC1DVFMvc3JjL2V4dGVybmFsL3Z1bGthbmN0cy9tb2R1bGVzL3Z1bGthbi9hbWJlci9DTWFr
ZUxpc3RzLnR4dCI6CkBAIC02Miw5ICs2Miw5IEBACiAgICJ0aGlyZF9wYXJ0eS9WSy1HTC1DVFMv
c3JjL2V4dGVybmFsL3Z1bGthbmN0cy9tb2R1bGVzL3Z1bGthbi9kZXZpY2VfZ3JvdXAvQ01ha2VM
aXN0cy50eHQiOgogICAgICI4M2NlNDdmYmVhZWRjZWRiYTc1NzRmMmY3MDI5MzE0NiIsCiAgICJ0
aGlyZF9wYXJ0eS9WSy1HTC1DVFMvc3JjL2V4dGVybmFsL3Z1bGthbmN0cy9tb2R1bGVzL3Z1bGth
bi9kcmF3L0NNYWtlTGlzdHMudHh0IjoKLSAgICAiOWRlMGYxZmEzNmJmNDAyMDU5NzRlMjNhMDA5
ZjllYmQiLAorICAgICIxMjc0YmMxMTgyM2M1YzFkMTIzNjk2NzkxMTY5N2JiOCIsCiAgICJ0aGly
ZF9wYXJ0eS9WSy1HTC1DVFMvc3JjL2V4dGVybmFsL3Z1bGthbmN0cy9tb2R1bGVzL3Z1bGthbi9k
eW5hbWljX3N0YXRlL0NNYWtlTGlzdHMudHh0IjoKLSAgICAiNjIzMmM2YzI3YjA2MjY1ZmFiNTYw
NjM0MDFhZDUyNDEiLAorICAgICI5NWIwMDNiMzlhNzQ1Y2EyMTM2OWJjNjY1ZDM1ZDFkYiIsCiAg
ICJ0aGlyZF9wYXJ0eS9WSy1HTC1DVFMvc3JjL2V4dGVybmFsL3Z1bGthbmN0cy9tb2R1bGVzL3Z1
bGthbi9mcmFnbWVudF9vcHMvQ01ha2VMaXN0cy50eHQiOgogICAgICIxMGRlYjY1N2MyYjA4MWVj
OTVhNDMzYTY5NmQ2YjI3MyIsCiAgICJ0aGlyZF9wYXJ0eS9WSy1HTC1DVFMvc3JjL2V4dGVybmFs
L3Z1bGthbmN0cy9tb2R1bGVzL3Z1bGthbi9mcmFnbWVudF9zaGFkZXJfaW50ZXJsb2NrL0NNYWtl
TGlzdHMudHh0IjoKQEAgLTg4LDcgKzg4LDcgQEAKICAgInRoaXJkX3BhcnR5L1ZLLUdMLUNUUy9z
cmMvZXh0ZXJuYWwvdnVsa2FuY3RzL21vZHVsZXMvdnVsa2FuL211bHRpdmlldy9DTWFrZUxpc3Rz
LnR4dCI6CiAgICAgIjhjNWJiZDEwNmRlZmVmM2ViZDIyMmI1ZTFiM2Y0NDFlIiwKICAgInRoaXJk
X3BhcnR5L1ZLLUdMLUNUUy9zcmMvZXh0ZXJuYWwvdnVsa2FuY3RzL21vZHVsZXMvdnVsa2FuL3Bp
cGVsaW5lL0NNYWtlTGlzdHMudHh0IjoKLSAgICAiMzAwOWEwZWJjOGVmODEyYzZmZjdkY2RjZjky
YmJkOTkiLAorICAgICI5YzlmNTNhMjQ2NGQyYmNkMmNlMjQxNzY4YjBmMDk2ZCIsCiAgICJ0aGly
ZF9wYXJ0eS9WSy1HTC1DVFMvc3JjL2V4dGVybmFsL3Z1bGthbmN0cy9tb2R1bGVzL3Z1bGthbi9w
b3N0bW9ydGVtL0NNYWtlTGlzdHMudHh0IjoKICAgICAiNzQ2MTJmMmMwZWFmNGQxYzJiM2M3NTll
Y2JjNTYwY2UiLAogICAidGhpcmRfcGFydHkvVkstR0wtQ1RTL3NyYy9leHRlcm5hbC92dWxrYW5j
dHMvbW9kdWxlcy92dWxrYW4vcHJvdGVjdGVkX21lbW9yeS9DTWFrZUxpc3RzLnR4dCI6CkBAIC0x
MjYsNyArMTI2LDcgQEAKICAgInRoaXJkX3BhcnR5L1ZLLUdMLUNUUy9zcmMvZXh0ZXJuYWwvdnVs
a2FuY3RzL21vZHVsZXMvdnVsa2FuL3RleHR1cmUvQ01ha2VMaXN0cy50eHQiOgogICAgICI4ZmM5
MjNlNzcxNjFmN2NhMDcwZTNjZDliYzZhZWNhYiIsCiAgICJ0aGlyZF9wYXJ0eS9WSy1HTC1DVFMv
c3JjL2V4dGVybmFsL3Z1bGthbmN0cy9tb2R1bGVzL3Z1bGthbi90cmFuc2Zvcm1fZmVlZGJhY2sv
Q01ha2VMaXN0cy50eHQiOgotICAgICJhMjE0NTA1YTI3YTUwOTU1MDg1ZGQ5YjkwMDgxNmMzNCIs
CisgICAgIjYyMTQyMDQ3Yzg4ZWMyZDc1NzA4YzMyNjA0OTQxZjk4IiwKICAgInRoaXJkX3BhcnR5
L1ZLLUdMLUNUUy9zcmMvZXh0ZXJuYWwvdnVsa2FuY3RzL21vZHVsZXMvdnVsa2FuL3Viby9DTWFr
ZUxpc3RzLnR4dCI6CiAgICAgIjI4OTYwOWMyOTExYTgzYjFmMmJkYTljNmI2ZDczNmIyIiwKICAg
InRoaXJkX3BhcnR5L1ZLLUdMLUNUUy9zcmMvZXh0ZXJuYWwvdnVsa2FuY3RzL21vZHVsZXMvdnVs
a2FuL3V0aWwvQ01ha2VMaXN0cy50eHQiOgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkv
QU5HTEUvc2NyaXB0cy9jb2RlX2dlbmVyYXRpb25faGFzaGVzL0dMX0VHTF9XR0xfbG9hZGVyLmpz
b24gYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zY3JpcHRzL2NvZGVfZ2VuZXJhdGlvbl9oYXNo
ZXMvR0xfRUdMX1dHTF9sb2FkZXIuanNvbgppbmRleCA2ZTA1MWIyNDkyZDg1YmMzYmUyMzFiMDdj
ZjBiM2JiNjZhY2U4YTIxLi41NmViOTIyZmQ5NTcwNjY2YTFmZTZhYTFmYTVhNjZlMzcxNWUwZDY5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zY3JpcHRzL2NvZGVfZ2VuZXJh
dGlvbl9oYXNoZXMvR0xfRUdMX1dHTF9sb2FkZXIuanNvbgorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9BTkdMRS9zY3JpcHRzL2NvZGVfZ2VuZXJhdGlvbl9oYXNoZXMvR0xfRUdMX1dHTF9sb2FkZXIu
anNvbgpAQCAtNCwxNSArNCwxNSBAQAogICAic2NyaXB0cy9lZ2wueG1sIjoKICAgICAiMDEzYzU1
MmU2YzUyM2FiZGNmMjY4MjY4ZWE0N2U5ZmUiLAogICAic2NyaXB0cy9lZ2xfYW5nbGVfZXh0Lnht
bCI6Ci0gICAgIjM2MThlODM1ZGJlMWIyOGVmNWFkMjBlN2UzNmQxMjYyIiwKKyAgICAiZTkwZmIy
YjU3NGYzYjQyNzAwZWMxZDZlMTg4MTc4NjkiLAogICAic2NyaXB0cy9nZW5lcmF0ZV9sb2FkZXIu
cHkiOgogICAgICJlNjdmNGRhNjRiYTdmNWNmZjM5YmE0ZTg5MjZhMDVmOCIsCiAgICJzY3JpcHRz
L2dsLnhtbCI6Ci0gICAgIjRlYTQyYTU5MzQzNDhlYWI0ZDMwYzBlOTJlMDBjOTBkIiwKKyAgICAi
ZThmOGQ1MmY1YTViOGJkNWJkZDQ1NTdmZGM1OGQ1ZGQiLAogICAic2NyaXB0cy9nbF9hbmdsZV9l
eHQueG1sIjoKLSAgICAiNWFjMzg2NzJhZTNjNGIwYWNhMDhiNTQ2MWViYzY2OWQiLAorICAgICIz
N2VlYmVkYzExNTNjZDlkMjA4ZWZhNDY5YTEwYTdiMiIsCiAgICJzY3JpcHRzL3JlZ2lzdHJ5X3ht
bC5weSI6Ci0gICAgImEwNGMxMGMzMzFkZGZmNzNkMGZmOWE1NjQ4OWJlMTI5IiwKKyAgICAiOGQw
MDJjM2NkMDI3ZWIyOTJjMDFhYmZjOTFjOWJlN2IiLAogICAic2NyaXB0cy93Z2wueG1sIjoKICAg
ICAiYzM2MDAxNDMxOTE5ZTFjNDM1ZjEyMTVhODVmN2UxZGIiLAogICAic3JjL2xpYkVHTC9lZ2xf
bG9hZGVyX2F1dG9nZW4uY3BwIjoKQEAgLTI0LDE3ICsyNCwxNyBAQAogICAic3JjL3Rlc3RzL3Jl
c3RyaWN0ZWRfdHJhY2VzL3RyYWNlX2VnbF9sb2FkZXJfYXV0b2dlbi5oIjoKICAgICAiMmE0MTdk
NTEzZjRhZDI4OTJjY2M1YzY2ZTQyZTU3NTkiLAogICAic3JjL3Rlc3RzL3Jlc3RyaWN0ZWRfdHJh
Y2VzL3RyYWNlX2dsZXNfbG9hZGVyX2F1dG9nZW4uY3BwIjoKLSAgICAiNjZkMDlhMmRkMjQwYzA3
Mzg2OGZjMTQxMTgxODZjNjkiLAorICAgICJmZGM3ZjM2YTNkMDdjYzY1YTQxMDFiZjg1OGUyNjEy
NyIsCiAgICJzcmMvdGVzdHMvcmVzdHJpY3RlZF90cmFjZXMvdHJhY2VfZ2xlc19sb2FkZXJfYXV0
b2dlbi5oIjoKLSAgICAiZTZiZGVmYjU4ZGU0MzliNWIzOGQ0ZDI1NDZhZTQ0ZTciLAorICAgICI5
YTM3ZmU0MjE1OTcyMDJiMTAxYjdlNTI4ODUxYjZhYyIsCiAgICJ1dGlsL2VnbF9sb2FkZXJfYXV0
b2dlbi5jcHAiOgogICAgICI2YWZiYmM1NTMyMjI3MDVkZDc3YzQ4ZTc1MTAyNTBkZCIsCiAgICJ1
dGlsL2VnbF9sb2FkZXJfYXV0b2dlbi5oIjoKICAgICAiM2UxZTZlYTk4M2FhOTUyNjAxZDFiNmRl
ODMxNjFhOGEiLAogICAidXRpbC9nbGVzX2xvYWRlcl9hdXRvZ2VuLmNwcCI6Ci0gICAgIjAxNDgy
YzU2ZGQyYzQ0MTAxNDlmZWFhOGJmZjIxYmJlIiwKKyAgICAiMWRmMGVlMDc2MTMxZTRjNjEyYmYw
ZGIwNDk1YzgyYmYiLAogICAidXRpbC9nbGVzX2xvYWRlcl9hdXRvZ2VuLmgiOgotICAgICJjYTFl
ZWI1N2ZmNjIzMDQzYTdlNzFmMzcwZDRiOTU3OSIsCisgICAgIjU2ODRmOWFkYjZkYTgzOGM4ZmNk
Yjg3Yjk4NzYwODRhIiwKICAgInV0aWwvd2luZG93cy93Z2xfbG9hZGVyX2F1dG9nZW4uY3BwIjoK
ICAgICAiMTU4ZTY5MzdkZDdiZDI4NzliYjQ0MDk4M2FmZDVhMzYiLAogICAidXRpbC93aW5kb3dz
L3dnbF9sb2FkZXJfYXV0b2dlbi5oIjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FO
R0xFL3NjcmlwdHMvY29kZV9nZW5lcmF0aW9uX2hhc2hlcy9HTF9FR0xfZW50cnlfcG9pbnRzLmpz
b24gYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zY3JpcHRzL2NvZGVfZ2VuZXJhdGlvbl9oYXNo
ZXMvR0xfRUdMX2VudHJ5X3BvaW50cy5qc29uCmluZGV4IDQxZjM1MjFmM2MxMDg1MmYzMDYzZWIx
NTQ5NmNkNzRiNjZiMjIxOGYuLjY1ZTFhOGE2OTQ3MDdmMWE4NTlkNmVkMTE5YTU0MjU4YjZiNTJj
YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NjcmlwdHMvY29kZV9nZW5l
cmF0aW9uX2hhc2hlcy9HTF9FR0xfZW50cnlfcG9pbnRzLmpzb24KKysrIGIvU291cmNlL1RoaXJk
UGFydHkvQU5HTEUvc2NyaXB0cy9jb2RlX2dlbmVyYXRpb25faGFzaGVzL0dMX0VHTF9lbnRyeV9w
b2ludHMuanNvbgpAQCAtNCw3ICs0LDcgQEAKICAgInNjcmlwdHMvZWdsLnhtbCI6CiAgICAgIjAx
M2M1NTJlNmM1MjNhYmRjZjI2ODI2OGVhNDdlOWZlIiwKICAgInNjcmlwdHMvZWdsX2FuZ2xlX2V4
dC54bWwiOgotICAgICIzNjE4ZTgzNWRiZTFiMjhlZjVhZDIwZTdlMzZkMTI2MiIsCisgICAgImU5
MGZiMmI1NzRmM2I0MjcwMGVjMWQ2ZTE4ODE3ODY5IiwKICAgInNjcmlwdHMvZW50cnlfcG9pbnRf
cGFja2VkX2VnbF9lbnVtcy5qc29uIjoKICAgICAiYTcyYWU4NTVjNmI0MDM5MTIxMDNiNTE5MTM5
OTUxYTEiLAogICAic2NyaXB0cy9lbnRyeV9wb2ludF9wYWNrZWRfZ2xfZW51bXMuanNvbiI6CkBA
IC0xMiwxNyArMTIsMTcgQEAKICAgInNjcmlwdHMvZ2VuZXJhdGVfZW50cnlfcG9pbnRzLnB5IjoK
ICAgICAiMzRlYzUwNzA1YTJmNzBjZDIxNTFjNTNlNTc2ODljY2MiLAogICAic2NyaXB0cy9nbC54
bWwiOgotICAgICI0ZWE0MmE1OTM0MzQ4ZWFiNGQzMGMwZTkyZTAwYzkwZCIsCisgICAgImU4Zjhk
NTJmNWE1YjhiZDViZGQ0NTU3ZmRjNThkNWRkIiwKICAgInNjcmlwdHMvZ2xfYW5nbGVfZXh0Lnht
bCI6Ci0gICAgIjVhYzM4NjcyYWUzYzRiMGFjYTA4YjU0NjFlYmM2NjlkIiwKKyAgICAiMzdlZWJl
ZGMxMTUzY2Q5ZDIwOGVmYTQ2OWExMGE3YjIiLAogICAic2NyaXB0cy9yZWdpc3RyeV94bWwucHki
OgotICAgICJhMDRjMTBjMzMxZGRmZjczZDBmZjlhNTY0ODliZTEyOSIsCisgICAgIjhkMDAyYzNj
ZDAyN2ViMjkyYzAxYWJmYzkxYzliZTdiIiwKICAgInNjcmlwdHMvd2dsLnhtbCI6CiAgICAgImMz
NjAwMTQzMTkxOWUxYzQzNWYxMjE1YTg1ZjdlMWRiIiwKICAgInNyYy9jb21tb24vZW50cnlfcG9p
bnRzX2VudW1fYXV0b2dlbi5jcHAiOgotICAgICJmODgyZWYzNDM1OWJkNDM4ZDAxNjUzZWMwMjI4
YjRhOCIsCisgICAgIjU0N2ZkMmVhZTZhM2U5NDEwOWViOTI1YWU1MzRmM2YzIiwKICAgInNyYy9j
b21tb24vZW50cnlfcG9pbnRzX2VudW1fYXV0b2dlbi5oIjoKLSAgICAiZTk0NGExN2Y4MzJkMDBh
MmFjOTc2MmNlOTU3ZjM3MGMiLAorICAgICI2MGU3MjE5MGM4NDc5NGRkMTdlYmU0YTQzZDhiMDdl
NCIsCiAgICJzcmMvbGliQU5HTEUvQ29udGV4dF9nbF8xX2F1dG9nZW4uaCI6CiAgICAgIjExNWQy
MjRmZDI4YjBiYzJiMjgwMDM1NGJiNTdmY2YzIiwKICAgInNyYy9saWJBTkdMRS9Db250ZXh0X2ds
XzJfYXV0b2dlbi5oIjoKQEAgLTQyLDcgKzQyLDcgQEAKICAgInNyYy9saWJBTkdMRS9Db250ZXh0
X2dsZXNfM18yX2F1dG9nZW4uaCI6CiAgICAgIjQ4NTY3ZGNhMTZmZDg4MWRmZTZkNjFmZWUwZTMx
MDZmIiwKICAgInNyYy9saWJBTkdMRS9Db250ZXh0X2dsZXNfZXh0X2F1dG9nZW4uaCI6Ci0gICAg
ImE3NDFiNTc3Mzc1ZDU3YmM4M2FhMDhkM2E3MTNjNzhkIiwKKyAgICAiYjg0MjVkMzk4NWE5YmNm
YTY4Mzk4YmVlNjRmMjdmYjMiLAogICAic3JjL2xpYkFOR0xFL2NhcHR1cmUvY2FwdHVyZV9nbGVz
XzFfMF9hdXRvZ2VuLmNwcCI6CiAgICAgIjdlYzdlZjhmNzc5YjgwOWE0NWQ3NGI5NzUwMmM0MTli
IiwKICAgInNyYy9saWJBTkdMRS9jYXB0dXJlL2NhcHR1cmVfZ2xlc18xXzBfYXV0b2dlbi5oIjoK
QEAgLTY0LDExICs2NCwxMSBAQAogICAic3JjL2xpYkFOR0xFL2NhcHR1cmUvY2FwdHVyZV9nbGVz
XzNfMl9hdXRvZ2VuLmgiOgogICAgICI3NGVkNzM2NmFmM2E0NmMwNjYxMzk3Y2ZhMjllYzZmYyIs
CiAgICJzcmMvbGliQU5HTEUvY2FwdHVyZS9jYXB0dXJlX2dsZXNfZXh0X2F1dG9nZW4uY3BwIjoK
LSAgICAiZDA1ZWY1MmU0M2RmN2ZhOTExOWUxODAzZWJiZWI3YTAiLAorICAgICIxOGEyMTc1OTIz
MGFlYTlkM2M5ZmVkYjhkMWVkYzJhYyIsCiAgICJzcmMvbGliQU5HTEUvY2FwdHVyZS9jYXB0dXJl
X2dsZXNfZXh0X2F1dG9nZW4uaCI6Ci0gICAgIjExN2Q4MGUzMjVlMDZkMDgxZWNlNzY4YzA2MWVl
NWE1IiwKKyAgICAiZmI4ZTgyM2I5ZDlkNjU3YWQzMDBlOWI1ODllY2NlZjIiLAogICAic3JjL2xp
YkFOR0xFL2NhcHR1cmUvZnJhbWVfY2FwdHVyZV9yZXBsYXlfYXV0b2dlbi5jcHAiOgotICAgICJl
MmU2NDE5ZDQzYmM5NmE2NWI4YThlOTQyMjJhOTEwYSIsCisgICAgIjZhZTNkNGNhZGMzOWUyYzMy
MGYzY2Q5Nzg4M2UyYzlmIiwKICAgInNyYy9saWJBTkdMRS9jYXB0dXJlL2ZyYW1lX2NhcHR1cmVf
dXRpbHNfYXV0b2dlbi5jcHAiOgogICAgICI5MGNhZWNmMTA1ZTdmN2E1MDA1NjFkNGM1NDQ3ODQ0
YiIsCiAgICJzcmMvbGliQU5HTEUvY2FwdHVyZS9mcmFtZV9jYXB0dXJlX3V0aWxzX2F1dG9nZW4u
aCI6CkBAIC04OCw3ICs4OCw3IEBACiAgICJzcmMvbGliQU5HTEUvdmFsaWRhdGlvbkVTM19hdXRv
Z2VuLmgiOgogICAgICIwMTQ3NTA2Y2U5MWM2OGQ4Y2NiY2E5Njg4YzcyNTFiYSIsCiAgICJzcmMv
bGliQU5HTEUvdmFsaWRhdGlvbkVTRVhUX2F1dG9nZW4uaCI6Ci0gICAgImY4M2UxNzJlM2IzZDQ0
NjZiZTM3MjZmMWFhMTcwNWJjIiwKKyAgICAiMzdjNjdmZWQ2NzNkODQyZTVmYjU5NjI4MmQ2ZDUw
OTAiLAogICAic3JjL2xpYkFOR0xFL3ZhbGlkYXRpb25HTDFfYXV0b2dlbi5oIjoKICAgICAiYTI0
N2RkZGM0MDQxODE4MGQ0YjJkYmVmZWI3NWYyMzMiLAogICAic3JjL2xpYkFOR0xFL3ZhbGlkYXRp
b25HTDJfYXV0b2dlbi5oIjoKQEAgLTE2MiwxNyArMTYyLDE3IEBACiAgICJzcmMvbGliR0xFU3Yy
L2VudHJ5X3BvaW50c19nbGVzXzNfMl9hdXRvZ2VuLmgiOgogICAgICI2NDdmOTMyYTI5OWNkYjQ3
MjZiNjBiYmJhMDU5ZjBkMiIsCiAgICJzcmMvbGliR0xFU3YyL2VudHJ5X3BvaW50c19nbGVzX2V4
dF9hdXRvZ2VuLmNwcCI6Ci0gICAgIjY3ZjAyZWFiMjlkOTE4YzBiMjJlNmM1NWY4MTA2YzEzIiwK
KyAgICAiMWRjYjhkZTU2ZDFlZDNkNWJlYjZlOGJmNTYyMDMxZDgiLAogICAic3JjL2xpYkdMRVN2
Mi9lbnRyeV9wb2ludHNfZ2xlc19leHRfYXV0b2dlbi5oIjoKLSAgICAiZTIwZTliMTg1MTYwNzQ2
ODRmZTAxOThkYzcyMTVhZjUiLAorICAgICJlNDkxOWNiNzNlMjgzMTBlY2YxNWNkNmRiYWE5NDFh
YyIsCiAgICJzcmMvbGliR0xFU3YyL2xpYkdMRVN2Ml9hdXRvZ2VuLmNwcCI6Ci0gICAgIjZhN2U3
NzViMjA1NjNkNDA1MDA1Y2IxYmJjZjY3ZTc2IiwKKyAgICAiNzU5OTIwZjIxYTQ2MGY1MzlhYTE1
MTFlMmRlM2FmNjYiLAogICAic3JjL2xpYkdMRVN2Mi9saWJHTEVTdjJfYXV0b2dlbi5kZWYiOgot
ICAgICIxNGMwOWNkZTUzNzQxNjJlMmMzZGNkMTk0NzgwNGYwZCIsCisgICAgIjc2MWE1ZjM4MmI5
ZDVjZjI0NDc1MzhlMmI2OGNjODUxIiwKICAgInNyYy9saWJHTEVTdjIvbGliR0xFU3YyX25vX2Nh
cHR1cmVfYXV0b2dlbi5kZWYiOgotICAgICIwZjkxNjhjMWViYjFmOWMwNDRiNjI0OTk2OWE4ZWMw
YyIsCisgICAgImY5Yjk3Y2E4ZGYxZTk4NzFlNWVjY2ExODMyMWQ5MDQ1IiwKICAgInNyYy9saWJH
TEVTdjIvbGliR0xFU3YyX3dpdGhfY2FwdHVyZV9hdXRvZ2VuLmRlZiI6Ci0gICAgIjRkNzdkMWU1
Y2VlZTQ1M2JkOTlhMTUwZjZhMjRhYTgwIiwKKyAgICAiMzNiNTllNjg0MmNmMjIxNzMyMDM5OGQw
MjMzY2Y1NDUiLAogICAic3JjL2xpYk9wZW5DTC9saWJPcGVuQ0xfYXV0b2dlbi5jcHAiOgogICAg
ICIxMDg0OTk3OGM5MTBkYzFhZjVkZDRmMGM4MTVkMTU4MSIKIH0KXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zY3JpcHRzL2Nv
ZGVfZ2VuZXJhdGlvbl9oYXNoZXMvR0xlbnVtX3ZhbHVlX3RvX3N0cmluZ19tYXAuanNvbiBiL1Nv
dXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NjcmlwdHMvY29kZV9nZW5lcmF0aW9uX2hhc2hlcy9HTGVu
dW1fdmFsdWVfdG9fc3RyaW5nX21hcC5qc29uCmluZGV4IGZkNGI5NzZmZmFjOTg4MmY0YTBmYTVm
MDljMGY1OThhNWUzNjM4NmIuLjJmYTlmYjg5NzEwMmI5NDA0ODk1NWEyOWExNzFjYzJkMzc2ZThl
YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NjcmlwdHMvY29kZV9nZW5l
cmF0aW9uX2hhc2hlcy9HTGVudW1fdmFsdWVfdG9fc3RyaW5nX21hcC5qc29uCisrKyBiL1NvdXJj
ZS9UaGlyZFBhcnR5L0FOR0xFL3NjcmlwdHMvY29kZV9nZW5lcmF0aW9uX2hhc2hlcy9HTGVudW1f
dmFsdWVfdG9fc3RyaW5nX21hcC5qc29uCkBAIC0yLDEzICsyLDEzIEBACiAgICJzY3JpcHRzL2dl
bl9nbF9lbnVtX3V0aWxzLnB5IjoKICAgICAiMzMyY2ZiNmYwNDI0MmQxODk2NjQ0NWY3MGYwMDM5
YjMiLAogICAic2NyaXB0cy9nbC54bWwiOgotICAgICI0ZWE0MmE1OTM0MzQ4ZWFiNGQzMGMwZTky
ZTAwYzkwZCIsCisgICAgImU4ZjhkNTJmNWE1YjhiZDViZGQ0NTU3ZmRjNThkNWRkIiwKICAgInNj
cmlwdHMvZ2xfYW5nbGVfZXh0LnhtbCI6Ci0gICAgIjVhYzM4NjcyYWUzYzRiMGFjYTA4YjU0NjFl
YmM2NjlkIiwKKyAgICAiMzdlZWJlZGMxMTUzY2Q5ZDIwOGVmYTQ2OWExMGE3YjIiLAogICAic2Ny
aXB0cy9yZWdpc3RyeV94bWwucHkiOgotICAgICJhMDRjMTBjMzMxZGRmZjczZDBmZjlhNTY0ODli
ZTEyOSIsCisgICAgIjhkMDAyYzNjZDAyN2ViMjkyYzAxYWJmYzkxYzliZTdiIiwKICAgInNyYy9s
aWJBTkdMRS9jYXB0dXJlL2dsX2VudW1fdXRpbHNfYXV0b2dlbi5jcHAiOgotICAgICI4OTg0Mzdm
YzY2MTZhMzFjZmM3MzRhMDZiNTczZmZiNCIsCisgICAgIjZlNmIwODE4M2M3MjBjOWY1NTIxZGY2
ZmRjN2YyYjcwIiwKICAgInNyYy9saWJBTkdMRS9jYXB0dXJlL2dsX2VudW1fdXRpbHNfYXV0b2dl
bi5oIjoKLSAgICAiZmIwYmI3ZjUwNmY2MDgyZWEzYjJjM2ZhMzg0ZDI3MzkiCisgICAgImZiZDZm
YTdkYWEyZTRjZDZjYzcxZGI3Njk1MTdjZDhiIgogfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp
bGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NjcmlwdHMvY29kZV9nZW5l
cmF0aW9uX2hhc2hlcy9PcGVuR0xfZGlzcGF0Y2hfdGFibGUuanNvbiBiL1NvdXJjZS9UaGlyZFBh
cnR5L0FOR0xFL3NjcmlwdHMvY29kZV9nZW5lcmF0aW9uX2hhc2hlcy9PcGVuR0xfZGlzcGF0Y2hf
dGFibGUuanNvbgppbmRleCA5Nzg1NmM1MjhiZmU0YzI1NmIwZGQ2NDVkYWE5Y2I4OWYyNzk0Zjhm
Li42NGFmNGIyZDg1MWYwZWJiYmVkOGVjMGY4MDI5OWYxZjE0MTI4NzY2IDEwMDY0NAotLS0gYS9T
b3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zY3JpcHRzL2NvZGVfZ2VuZXJhdGlvbl9oYXNoZXMvT3Bl
bkdMX2Rpc3BhdGNoX3RhYmxlLmpzb24KKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc2Ny
aXB0cy9jb2RlX2dlbmVyYXRpb25faGFzaGVzL09wZW5HTF9kaXNwYXRjaF90YWJsZS5qc29uCkBA
IC0xLDYgKzEsNiBAQAogewogICAic2NyaXB0cy9nbC54bWwiOgotICAgICI0ZWE0MmE1OTM0MzQ4
ZWFiNGQzMGMwZTkyZTAwYzkwZCIsCisgICAgImU4ZjhkNTJmNWE1YjhiZDViZGQ0NTU3ZmRjNThk
NWRkIiwKICAgInNyYy9saWJBTkdMRS9yZW5kZXJlci9hbmdsZV9mb3JtYXQucHkiOgogICAgICIy
ZjhmYTc2ODA4OGUyMmIwOTYzYmJkZjg0MmQzZTcyNSIsCiAgICJzcmMvbGliQU5HTEUvcmVuZGVy
ZXIvZ2wvRGlzcGF0Y2hUYWJsZUdMX2F1dG9nZW4uY3BwIjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9U
aGlyZFBhcnR5L0FOR0xFL3NjcmlwdHMvY29kZV9nZW5lcmF0aW9uX2hhc2hlcy9UZXN0X3NwZWNf
SlNPTi5qc29uIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc2NyaXB0cy9jb2RlX2dlbmVyYXRp
b25faGFzaGVzL1Rlc3Rfc3BlY19KU09OLmpzb24KaW5kZXggNmRjZjJiMjc3ZTZmNjRmZmY3ZTFl
NzU2ZTViZDliMTE3MjkzYWMxNy4uY2FjOTk4ZWNmOWU0ODE0ODZlNDk1Yjk1Zjc4M2FkYzA3NjQx
NTViMCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc2NyaXB0cy9jb2RlX2dl
bmVyYXRpb25faGFzaGVzL1Rlc3Rfc3BlY19KU09OLmpzb24KKysrIGIvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvc2NyaXB0cy9jb2RlX2dlbmVyYXRpb25faGFzaGVzL1Rlc3Rfc3BlY19KU09OLmpz
b24KQEAgLTEsMTAgKzEsMTAgQEAKIHsKICAgImluZnJhL3NwZWNzL2FuZ2xlLmpzb24iOgotICAg
ICJmMGMxMTdlNGI0ZTdiZjc4MTJiYjgzZWYwN2JlMzJiNiIsCisgICAgImEwYzY3MGE4YTQzMzMw
MzA0MDZkMzc3NGEyZjkzMmNhIiwKICAgImluZnJhL3NwZWNzL2dlbmVyYXRlX3Rlc3Rfc3BlY19q
c29uLnB5IjoKICAgICAiYmU0NTY5NjI2YWE5MWY4ODcyNjY0ZTJkOWNlZjRhYzIiLAogICAiaW5m
cmEvc3BlY3MvbWl4aW5zLnB5bCI6Ci0gICAgIjMyY2U2ZTNlMDdlYjQ4NGY3YTU4ZGZkN2RiZmMx
MThiIiwKKyAgICAiOGM3ZGM5MTkyMGQ0N2UzMjk1NDEyMDM5MWNmZWQzMDQiLAogICAiaW5mcmEv
c3BlY3MvdGVzdF9zdWl0ZV9leGNlcHRpb25zLnB5bCI6CiAgICAgIjcyMzQ2MGRhODRhOTA4ODRh
OTY2OGMwN2EwODkzMzkwIiwKICAgImluZnJhL3NwZWNzL3Rlc3Rfc3VpdGVzLnB5bCI6CkBAIC0x
Miw5ICsxMiw5IEBACiAgICJpbmZyYS9zcGVjcy92YXJpYW50cy5weWwiOgogICAgICI4Y2ZjYWE5
OWZhMDdhZDJhMmQ1ZDE0ZjIyMGZkNTAzNyIsCiAgICJpbmZyYS9zcGVjcy93YXRlcmZhbGxzLnB5
bCI6Ci0gICAgIjM1OWE5ODQ4NzUzOGNjOWFlOTRlZWJkMDcyNTI0YjdhIiwKKyAgICAiZGIzMjk1
MjRlYTk2ODZkYTdiMzI1NDRhMjZiMTMyMDMiLAogICAidGVzdGluZy9idWlsZGJvdC9nZW5lcmF0
ZV9idWlsZGJvdF9qc29uLnB5IjoKLSAgICAiOWQ5OGUyOTRkNzUzZjM4ZjAwMjMyODUxYjQ5ZmQ0
ZmYiLAorICAgICIyZDhmYjc5OTE4MjExOGU0OGJlNDFlNWQwYmQ1M2Y3MiIsCiAgICJ0ZXN0aW5n
L2J1aWxkYm90L21peGlucy5weWwiOgotICAgICIwNTI5MWQxYWE5YTU2ODc2MzM1NWM2NTVhZDdm
MjAyYyIKKyAgICAiNjIzM2Q1OTI5NjVjZmFlNDVjNDExMzIzNjI2ZTc1NjYiCiB9ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUv
c2NyaXB0cy9jb2RlX2dlbmVyYXRpb25faGFzaGVzL1Z1bGthbl9tYW5kYXRvcnlfZm9ybWF0X3N1
cHBvcnRfdGFibGUuanNvbiBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NjcmlwdHMvY29kZV9n
ZW5lcmF0aW9uX2hhc2hlcy9WdWxrYW5fbWFuZGF0b3J5X2Zvcm1hdF9zdXBwb3J0X3RhYmxlLmpz
b24KaW5kZXggYWY3ZmY2ZDdlZGU4NzhiMzEzNWE2MDdmYmFiZWQ4ZTdmY2RlOGMwMy4uZjczODI1
MTRiODY3MGQ4ZTNhMmUyNjJhMDkzYjQ2Yjg2YTM3MzZmOSAxMDA2NDQKLS0tIGEvU291cmNlL1Ro
aXJkUGFydHkvQU5HTEUvc2NyaXB0cy9jb2RlX2dlbmVyYXRpb25faGFzaGVzL1Z1bGthbl9tYW5k
YXRvcnlfZm9ybWF0X3N1cHBvcnRfdGFibGUuanNvbgorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9B
TkdMRS9zY3JpcHRzL2NvZGVfZ2VuZXJhdGlvbl9oYXNoZXMvVnVsa2FuX21hbmRhdG9yeV9mb3Jt
YXRfc3VwcG9ydF90YWJsZS5qc29uCkBAIC0xMCw1ICsxMCw1IEBACiAgICJzcmMvbGliQU5HTEUv
cmVuZGVyZXIvdnVsa2FuL3ZrX21hbmRhdG9yeV9mb3JtYXRfc3VwcG9ydF90YWJsZV9hdXRvZ2Vu
LmNwcCI6CiAgICAgImE3MjZlZTc5MWViNDk2NGM0MDZmMzkyMWQ5YjczMzQ2IiwKICAgInRoaXJk
X3BhcnR5L3Z1bGthbi1kZXBzL3Z1bGthbi1oZWFkZXJzL3NyYy9yZWdpc3RyeS92ay54bWwiOgot
ICAgICI4M2M1YTZiYzYwZmQ5MGJiYTY0YTBkYmVjNGI1NTNkMCIKKyAgICAiYTM4MjMxMTZkYTJk
ZjExNzkyMWFmNDg5ZDNjZmIzMTAiCiB9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc2NyaXB0cy9jb2RlX2dlbmVyYXRpb25f
aGFzaGVzL292ZXJsYXlfd2lkZ2V0cy5qc29uIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc2Ny
aXB0cy9jb2RlX2dlbmVyYXRpb25faGFzaGVzL292ZXJsYXlfd2lkZ2V0cy5qc29uCmluZGV4IGVj
MWNmMWJhMjgwZTUxZGFjZTFkZjNjNWI5N2VkMjIxZTRkMDFmY2MuLmFlNGYxYjM3N2I1NjNjYmJl
ZTJhZTliN2Q5NzMzNGI1ZDIzZjdlMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FO
R0xFL3NjcmlwdHMvY29kZV9nZW5lcmF0aW9uX2hhc2hlcy9vdmVybGF5X3dpZGdldHMuanNvbgor
KysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zY3JpcHRzL2NvZGVfZ2VuZXJhdGlvbl9oYXNo
ZXMvb3ZlcmxheV93aWRnZXRzLmpzb24KQEAgLTEsMTAgKzEsMTAgQEAKIHsKICAgInNyYy9saWJB
TkdMRS9PdmVybGF5X2F1dG9nZW4uY3BwIjoKLSAgICAiNDVhYzkwYzkwNjAyYzNmMjBhZTc5OGNi
ODBlM2NmNTgiLAorICAgICJmNmE4MjcxNzNiNTQyNTUzYzE3NjZjNWQxZjBiMjJiNiIsCiAgICJz
cmMvbGliQU5HTEUvT3ZlcmxheV9hdXRvZ2VuLmgiOgotICAgICJjYTE3ZWQzZDc4MTI2MDc4NjA3
NTM3NWQ2Mjc1Yjk1YyIsCisgICAgIjY0ZjM5ZDA1NDk0YTk4MjVjNDE2MmQ2MjJhOWQ0YmZkIiwK
ICAgInNyYy9saWJBTkdMRS9nZW5fb3ZlcmxheV93aWRnZXRzLnB5IjoKLSAgICAiNDUzMGE3ZjY1
YzUxMjA2Y2U5ZGU2OTE3NjgzZTM2ODciLAorICAgICJhM2M1YmNkNzdjOGZmODY2MGE1NDJiZTg1
ZjlkNmU1OSIsCiAgICJzcmMvbGliQU5HTEUvb3ZlcmxheV93aWRnZXRzLmpzb24iOgotICAgICI0
OGUzY2I3MTY1ZDIyYTQwNzcyYjJjNzMzZTRjOThiNSIKKyAgICAiZDE0M2JkNWM3YWJhZTRhYjdl
OTUyNzZjY2I2NGQ0NzQiCiB9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc2NyaXB0cy9jb2RlX2dlbmVyYXRpb25faGFzaGVz
L3BhY2tlZF9lbnVtLmpzb24gYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zY3JpcHRzL2NvZGVf
Z2VuZXJhdGlvbl9oYXNoZXMvcGFja2VkX2VudW0uanNvbgppbmRleCAzM2Y3YTczOWE1NGZkNDg3
OGZkOTQ1NWJkOGNlZTZlMDVkOGE2OGY3Li4xZTAxZmIwN2NjM2ZjNzc2YWEwODIyNjc4NTk1OGM1
NmFmNGVlNmQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zY3JpcHRzL2Nv
ZGVfZ2VuZXJhdGlvbl9oYXNoZXMvcGFja2VkX2VudW0uanNvbgorKysgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9BTkdMRS9zY3JpcHRzL2NvZGVfZ2VuZXJhdGlvbl9oYXNoZXMvcGFja2VkX2VudW0uanNv
bgpAQCAtOCw5ICs4LDkgQEAKICAgInNyYy9jb21tb24vUGFja2VkRUdMRW51bXNfYXV0b2dlbi5o
IjoKICAgICAiN2Q4N2UxNjBhMGM4ZWEyNmNiMGM4MzU3MjlmN2I1ODYiLAogICAic3JjL2NvbW1v
bi9QYWNrZWRHTEVudW1zX2F1dG9nZW4uY3BwIjoKLSAgICAiZTJjYjBhMjlkY2QyYmRiZGEzMzhi
ODI5NTNjNzUyZWUiLAorICAgICI4MWEzYzgzMGUzZDgzMmIwMGIyZjY4MTMxZjI1MjcwNSIsCiAg
ICJzcmMvY29tbW9uL1BhY2tlZEdMRW51bXNfYXV0b2dlbi5oIjoKLSAgICAiNjBhNWIyODZjOThh
YmEzMmEwZTNiNTM3YTE0MjRlZTkiLAorICAgICIzMzM1NGVhZWY4M2JkYTJmY2Q5YzYyM2U5ZThj
Yzc3MyIsCiAgICJzcmMvY29tbW9uL2dlbl9wYWNrZWRfZ2xfZW51bXMucHkiOgogICAgICIyN2Rm
MzU2NTEzYmMyZjM3N2I3ODY1NTExM2QxN2M3ZSIsCiAgICJzcmMvY29tbW9uL3BhY2tlZF9jbF9l
bnVtcy5qc29uIjoKQEAgLTE4LDUgKzE4LDUgQEAKICAgInNyYy9jb21tb24vcGFja2VkX2VnbF9l
bnVtcy5qc29uIjoKICAgICAiNTc5N2RiOTQxZTk1ZTQxOGQ2OTUyN2ViNGU0YWY5MDAiLAogICAi
c3JjL2NvbW1vbi9wYWNrZWRfZ2xfZW51bXMuanNvbiI6Ci0gICAgIjVlOTk1NmFkMTI5ZmM2ZjJl
ZDRjZTViOGEwOTRmMTU3IgorICAgICJhOGVlYmJmYzlhOGE3MDNmYTNlNTRiYjI5ZDEyNTY0OSIK
IH0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9BTkdMRS9zY3JpcHRzL2NvZGVfZ2VuZXJhdGlvbl9oYXNoZXMvcHJvY190YWJsZS5qc29u
IGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc2NyaXB0cy9jb2RlX2dlbmVyYXRpb25faGFzaGVz
L3Byb2NfdGFibGUuanNvbgppbmRleCA4YTk0Y2MwMmY1NDIyNTNkOWE4YzdhZDc3MjgwYjg0ZTgw
MTdmMjlhLi4wMjJhZDExODFjZDZlZDFlNDQ5YzYyYmM4ZGFlMzVmOTQxN2M2ZWRlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zY3JpcHRzL2NvZGVfZ2VuZXJhdGlvbl9oYXNo
ZXMvcHJvY190YWJsZS5qc29uCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NjcmlwdHMv
Y29kZV9nZW5lcmF0aW9uX2hhc2hlcy9wcm9jX3RhYmxlLmpzb24KQEAgLTQsMTUgKzQsMTUgQEAK
ICAgInNjcmlwdHMvZWdsLnhtbCI6CiAgICAgIjAxM2M1NTJlNmM1MjNhYmRjZjI2ODI2OGVhNDdl
OWZlIiwKICAgInNjcmlwdHMvZWdsX2FuZ2xlX2V4dC54bWwiOgotICAgICIzNjE4ZTgzNWRiZTFi
MjhlZjVhZDIwZTdlMzZkMTI2MiIsCisgICAgImU5MGZiMmI1NzRmM2I0MjcwMGVjMWQ2ZTE4ODE3
ODY5IiwKICAgInNjcmlwdHMvZ2VuX3Byb2NfdGFibGUucHkiOgogICAgICI4MzM2NDQ5ZGE3ZTM2
ZjQ1ZGQ2ZDcwYzQ0YWRkMmViZiIsCiAgICJzY3JpcHRzL2dsLnhtbCI6Ci0gICAgIjRlYTQyYTU5
MzQzNDhlYWI0ZDMwYzBlOTJlMDBjOTBkIiwKKyAgICAiZThmOGQ1MmY1YTViOGJkNWJkZDQ1NTdm
ZGM1OGQ1ZGQiLAogICAic2NyaXB0cy9nbF9hbmdsZV9leHQueG1sIjoKLSAgICAiNWFjMzg2NzJh
ZTNjNGIwYWNhMDhiNTQ2MWViYzY2OWQiLAorICAgICIzN2VlYmVkYzExNTNjZDlkMjA4ZWZhNDY5
YTEwYTdiMiIsCiAgICJzY3JpcHRzL3JlZ2lzdHJ5X3htbC5weSI6Ci0gICAgImEwNGMxMGMzMzFk
ZGZmNzNkMGZmOWE1NjQ4OWJlMTI5IiwKKyAgICAiOGQwMDJjM2NkMDI3ZWIyOTJjMDFhYmZjOTFj
OWJlN2IiLAogICAic2NyaXB0cy93Z2wueG1sIjoKICAgICAiYzM2MDAxNDMxOTE5ZTFjNDM1ZjEy
MTVhODVmN2UxZGIiLAogICAic3JjL2xpYkdML3Byb2NfdGFibGVfd2dsX2F1dG9nZW4uY3BwIjoK
QEAgLTIwLDcgKzIwLDcgQEAKICAgInNyYy9saWJHTEVTdjIvcHJvY190YWJsZV9jbF9hdXRvZ2Vu
LmNwcCI6CiAgICAgImVkMDAzYjBmMDQxYWFhYTM1YjY3ZDNmZTA3ZTYxZjkxIiwKICAgInNyYy9s
aWJHTEVTdjIvcHJvY190YWJsZV9lZ2xfYXV0b2dlbi5jcHAiOgotICAgICJjNmI1ZDBiNjAzOTVj
Y2QzM2ExZDllMzgzNDFlZWVmMyIsCisgICAgImU5NGU2ZjUxZWQ2YmRlODkxZDI5OTU0MGU2MWRh
NDRkIiwKICAgInNyYy9saWJPcGVuQ0wvbGliT3BlbkNMX2F1dG9nZW4ubWFwIjoKICAgICAiYmM1
ZjVjZjQ4MjI3MTQ5ZWQzMjEyNThhMTZlZmYxZDciCiB9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc2NyaXB0cy9jb2RlX2dl
bmVyYXRpb25faGFzaGVzL3Jlc3RyaWN0ZWRfdHJhY2VzLmpzb24gYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9BTkdMRS9zY3JpcHRzL2NvZGVfZ2VuZXJhdGlvbl9oYXNoZXMvcmVzdHJpY3RlZF90cmFjZXMu
anNvbgppbmRleCBhMDU1YjZhOTM1ODYzOTFlNzZlY2QwOGUxODc4MTMxYTFlOGYxYTc0Li5iYzdj
NGNmNDIxNzk3ZWFjODBhODM0YzYxZTIxYzY1YzFlMDZkZWRjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9BTkdMRS9zY3JpcHRzL2NvZGVfZ2VuZXJhdGlvbl9oYXNoZXMvcmVzdHJpY3Rl
ZF90cmFjZXMuanNvbgorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zY3JpcHRzL2NvZGVf
Z2VuZXJhdGlvbl9oYXNoZXMvcmVzdHJpY3RlZF90cmFjZXMuanNvbgpAQCAtNCw1ICs0LDUgQEAK
ICAgInNyYy90ZXN0cy9yZXN0cmljdGVkX3RyYWNlcy9nZW5fcmVzdHJpY3RlZF90cmFjZXMucHki
OgogICAgICI3NzgwNDA1ZjhlMGQ5MmZhODdhNzcyZGQ2NGM2MmVmYiIsCiAgICJzcmMvdGVzdHMv
cmVzdHJpY3RlZF90cmFjZXMvcmVzdHJpY3RlZF90cmFjZXMuanNvbiI6Ci0gICAgIjc0N2Y1Zjhh
ZTQ0YTMyN2I1NmMxYmY5N2Y3Mzk3OWUwIgorICAgICIwNjVkNDZiMzJmN2Q2ZTMzODFiZTJiNTI0
ZDc0OGEyZSIKIH0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9BTkdMRS9zY3JpcHRzL2VnbF9hbmdsZV9leHQueG1sIGIvU291cmNlL1Ro
aXJkUGFydHkvQU5HTEUvc2NyaXB0cy9lZ2xfYW5nbGVfZXh0LnhtbAppbmRleCA2MjZkZTc2NTFk
ZmM3M2VjMjQ2MjA4NTllNDI4MGYwM2MwMzAyNTc4Li40ZGFlYWRiZmVkZjE3ODM5MTE1ZmJkMzFj
YTgwNTU3YzhmNTExZDA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zY3Jp
cHRzL2VnbF9hbmdsZV9leHQueG1sCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3Njcmlw
dHMvZWdsX2FuZ2xlX2V4dC54bWwKQEAgLTgsNiArOCwxMiBAQAogICAgIGVnbF9hbmdsZV9leHQu
eG1sCiAgICAgICAgIEluY2x1ZGVzIGRhdGEgdXNlZCB0byBhdXRvLWdlbmVyYXRlIEFOR0xFIGNs
YXNzZXMuCiAgICAgPC9jb21tZW50PgorCisgICAgPCEtLSBTRUNUSU9OOiBFR0wgdHlwZSBkZWZp
bml0aW9ucy4gLS0+CisgICAgPHR5cGVzPgorICAgICAgICA8dHlwZSByZXF1aXJlcz0ia2hycGxh
dGZvcm0iPnR5cGVkZWYga2hyb25vc191aW50NjRfdCA8bmFtZT5FR0xGcmFtZVRva2VuQU5HTEU8
L25hbWU+OzwvdHlwZT4KKyAgICA8L3R5cGVzPgorCiAgICAgPCEtLSBTRUNUSU9OOiBFR0wgY29t
bWFuZCBkZWZpbml0aW9ucy4gLS0+CiAgICAgPGNvbW1hbmRzIG5hbWVzcGFjZT0iRUdMIj4KICAg
ICAgICAgPGNvbW1hbmQ+CkBAIC0xNDUsMTIgKzE1MSwyMyBAQAogICAgICAgICAgICAgPHJlcXVp
cmU+CiAgICAgICAgICAgICAgICAgPGNvbW1hbmQgbmFtZT0iZWdsUXVlcnlTdHJpbmdpQU5HTEUi
Lz4KICAgICAgICAgICAgICAgICA8Y29tbWFuZCBuYW1lPSJlZ2xRdWVyeURpc3BsYXlBdHRyaWJB
TkdMRSIvPgorICAgICAgICAgICAgICAgIDxlbnVtIG5hbWU9IkVHTF9GRUFUVVJFX05BTUVfQU5H
TEUiLz4KKyAgICAgICAgICAgICAgICA8ZW51bSBuYW1lPSJFR0xfRkVBVFVSRV9DQVRFR09SWV9B
TkdMRSIvPgorICAgICAgICAgICAgICAgIDxlbnVtIG5hbWU9IkVHTF9GRUFUVVJFX0RFU0NSSVBU
SU9OX0FOR0xFIi8+CisgICAgICAgICAgICAgICAgPGVudW0gbmFtZT0iRUdMX0ZFQVRVUkVfQlVH
X0FOR0xFIi8+CisgICAgICAgICAgICAgICAgPGVudW0gbmFtZT0iRUdMX0ZFQVRVUkVfU1RBVFVT
X0FOR0xFIi8+CisgICAgICAgICAgICAgICAgPGVudW0gbmFtZT0iRUdMX0ZFQVRVUkVfQ09ORElU
SU9OX0FOR0xFIi8+CisgICAgICAgICAgICAgICAgPGVudW0gbmFtZT0iRUdMX0ZFQVRVUkVfQ09V
TlRfQU5HTEUiLz4KKyAgICAgICAgICAgICAgICA8ZW51bSBuYW1lPSJFR0xfRkVBVFVSRV9PVkVS
UklERVNfRU5BQkxFRF9BTkdMRSIvPgorICAgICAgICAgICAgICAgIDxlbnVtIG5hbWU9IkVHTF9G
RUFUVVJFX09WRVJSSURFU19ESVNBQkxFRF9BTkdMRSIvPgorICAgICAgICAgICAgICAgIDxlbnVt
IG5hbWU9IkVHTF9GRUFUVVJFX0FMTF9ESVNBQkxFRF9BTkdMRSIvPgogICAgICAgICAgICAgPC9y
ZXF1aXJlPgogICAgICAgICA8L2V4dGVuc2lvbj4KICAgICAgICAgPGV4dGVuc2lvbiBuYW1lPSJF
R0xfQU5HTEVfc3RyZWFtX3Byb2R1Y2VyX2QzZF90ZXh0dXJlIiBzdXBwb3J0ZWQ9ImVnbCI+CiAg
ICAgICAgICAgICA8cmVxdWlyZT4KICAgICAgICAgICAgICAgICA8Y29tbWFuZCBuYW1lPSJlZ2xD
cmVhdGVTdHJlYW1Qcm9kdWNlckQzRFRleHR1cmVBTkdMRSIvPgogICAgICAgICAgICAgICAgIDxj
b21tYW5kIG5hbWU9ImVnbFN0cmVhbVBvc3REM0RUZXh0dXJlQU5HTEUiLz4KKyAgICAgICAgICAg
ICAgICA8ZW51bSBuYW1lPSJFR0xfRDNEX1RFWFRVUkVfU1VCUkVTT1VSQ0VfSURfQU5HTEUiLz4K
ICAgICAgICAgICAgIDwvcmVxdWlyZT4KICAgICAgICAgPC9leHRlbnNpb24+CiAgICAgICAgIDxl
eHRlbnNpb24gbmFtZT0iRUdMX0NIUk9NSVVNX3N5bmNfY29udHJvbCIgc3VwcG9ydGVkPSJlZ2wi
PgpAQCAtMTY5LDYgKzE4NiwxMSBAQAogICAgICAgICAgICAgICAgIDxjb21tYW5kIG5hbWU9ImVn
bFByb2dyYW1DYWNoZVF1ZXJ5QU5HTEUiLz4KICAgICAgICAgICAgICAgICA8Y29tbWFuZCBuYW1l
PSJlZ2xQcm9ncmFtQ2FjaGVQb3B1bGF0ZUFOR0xFIi8+CiAgICAgICAgICAgICAgICAgPGNvbW1h
bmQgbmFtZT0iZWdsUHJvZ3JhbUNhY2hlUmVzaXplQU5HTEUiLz4KKyAgICAgICAgICAgICAgICA8
ZW51bSBuYW1lPSJFR0xfUFJPR1JBTV9DQUNIRV9TSVpFX0FOR0xFIi8+CisgICAgICAgICAgICAg
ICAgPGVudW0gbmFtZT0iRUdMX1BST0dSQU1fQ0FDSEVfS0VZX0xFTkdUSF9BTkdMRSIvPgorICAg
ICAgICAgICAgICAgIDxlbnVtIG5hbWU9IkVHTF9QUk9HUkFNX0NBQ0hFX1JFU0laRV9BTkdMRSIv
PgorICAgICAgICAgICAgICAgIDxlbnVtIG5hbWU9IkVHTF9QUk9HUkFNX0NBQ0hFX1RSSU1fQU5H
TEUiLz4KKyAgICAgICAgICAgICAgICA8ZW51bSBuYW1lPSJFR0xfQ09OVEVYVF9QUk9HUkFNX0JJ
TkFSWV9DQUNIRV9FTkFCTEVEX0FOR0xFIi8+CiAgICAgICAgICAgICA8L3JlcXVpcmU+CiAgICAg
ICAgIDwvZXh0ZW5zaW9uPgogICAgICAgICA8ZXh0ZW5zaW9uIG5hbWU9IkVHTF9BTkdMRV9zd2Fw
X3dpdGhfZnJhbWVfdG9rZW4iIHN1cHBvcnRlZD0iZWdsIj4KQEAgLTE4Nyw2ICsyMDksOSBAQAog
ICAgICAgICAgICAgICAgIDxjb21tYW5kIG5hbWU9ImVnbFJlYWNxdWlyZUhpZ2hQb3dlckdQVUFO
R0xFIi8+CiAgICAgICAgICAgICAgICAgPGNvbW1hbmQgbmFtZT0iZWdsSGFuZGxlR1BVU3dpdGNo
QU5HTEUiLz4KICAgICAgICAgICAgICAgICA8Y29tbWFuZCBuYW1lPSJlZ2xGb3JjZUdQVVN3aXRj
aEFOR0xFIi8+CisgICAgICAgICAgICAgICAgPGVudW0gbmFtZT0iRUdMX1BPV0VSX1BSRUZFUkVO
Q0VfQU5HTEUiLz4KKyAgICAgICAgICAgICAgICA8ZW51bSBuYW1lPSJFR0xfTE9XX1BPV0VSX0FO
R0xFIi8+CisgICAgICAgICAgICAgICAgPGVudW0gbmFtZT0iRUdMX0hJR0hfUE9XRVJfQU5HTEUi
Lz4KICAgICAgICAgICAgIDwvcmVxdWlyZT4KICAgICAgICAgPC9leHRlbnNpb24+CiAgICAgICAg
IDxleHRlbnNpb24gbmFtZT0iRUdMX0FOR0xFX2Rpc3BsYXlfc2VtYXBob3JlX3NoYXJlX2dyb3Vw
IiBzdXBwb3J0ZWQ9ImVnbCI+CkBAIC0yMDIsNiArMjI3LDExOSBAQAogICAgICAgICA8ZXh0ZW5z
aW9uIG5hbWU9IkVHTF9BTkdMRV92dWxrYW5faW1hZ2UiIHN1cHBvcnRlZD0iZWdsIj4KICAgICAg
ICAgICAgIDxyZXF1aXJlPgogICAgICAgICAgICAgICAgIDxjb21tYW5kIG5hbWU9ImVnbEV4cG9y
dFZrSW1hZ2VBTkdMRSIvPgorICAgICAgICAgICAgICAgIDxlbnVtIG5hbWU9IkVHTF9WVUxLQU5f
SU1BR0VfQU5HTEUiLz4KKyAgICAgICAgICAgICAgICA8ZW51bSBuYW1lPSJFR0xfVlVMS0FOX0lN
QUdFX0NSRUFURV9JTkZPX0hJX0FOR0xFIi8+CisgICAgICAgICAgICAgICAgPGVudW0gbmFtZT0i
RUdMX1ZVTEtBTl9JTUFHRV9DUkVBVEVfSU5GT19MT19BTkdMRSIvPgorICAgICAgICAgICAgPC9y
ZXF1aXJlPgorICAgICAgICA8L2V4dGVuc2lvbj4KKyAgICAgICAgPGV4dGVuc2lvbiBuYW1lPSJF
R0xfQU5HTEVfbWV0YWxfY3JlYXRlX2NvbnRleHRfb3duZXJzaGlwX2lkZW50aXR5IiBzdXBwb3J0
ZWQ9ImVnbCI+CisgICAgICAgICAgICA8cmVxdWlyZT4KKyAgICAgICAgICAgICAgICA8ZW51bSBu
YW1lPSJFR0xfQ09OVEVYVF9NRVRBTF9PV05FUlNISVBfSURFTlRJVFlfQU5HTEUiLz4KKyAgICAg
ICAgICAgIDwvcmVxdWlyZT4KKyAgICAgICAgPC9leHRlbnNpb24+CisgICAgICAgIDxleHRlbnNp
b24gbmFtZT0iRUdMX0FOR0xFX2NvbnRleHRfdmlydHVhbGl6YXRpb24iIHN1cHBvcnRlZD0iZWds
Ij4KKyAgICAgICAgICAgIDxyZXF1aXJlPgorICAgICAgICAgICAgICAgIDxlbnVtIG5hbWU9IkVH
TF9DT05URVhUX1ZJUlRVQUxJWkFUSU9OX0dST1VQX0FOR0xFIi8+CisgICAgICAgICAgICA8L3Jl
cXVpcmU+CisgICAgICAgIDwvZXh0ZW5zaW9uPgorICAgICAgICA8ZXh0ZW5zaW9uIG5hbWU9IkVH
TF9BTkdMRV9jcmVhdGVfY29udGV4dF9iYWNrd2FyZHNfY29tcGF0aWJsZSIgc3VwcG9ydGVkPSJl
Z2wiPgorICAgICAgICAgICAgPHJlcXVpcmU+CisgICAgICAgICAgICAgICAgPGVudW0gbmFtZT0i
RUdMX0NPTlRFWFRfT1BFTkdMX0JBQ0tXQVJEU19DT01QQVRJQkxFX0FOR0xFIi8+CisgICAgICAg
ICAgICA8L3JlcXVpcmU+CisgICAgICAgIDwvZXh0ZW5zaW9uPgorICAgICAgICA8ZXh0ZW5zaW9u
IG5hbWU9IkVHTF9BTkdMRV9jcmVhdGVfY29udGV4dF9jbGllbnRfYXJyYXlzIiBzdXBwb3J0ZWQ9
ImVnbCI+CisgICAgICAgICAgICA8cmVxdWlyZT4KKyAgICAgICAgICAgICAgICA8ZW51bSBuYW1l
PSJFR0xfQ09OVEVYVF9DTElFTlRfQVJSQVlTX0VOQUJMRURfQU5HTEUiLz4KKyAgICAgICAgICAg
IDwvcmVxdWlyZT4KKyAgICAgICAgPC9leHRlbnNpb24+CisgICAgICAgIDxleHRlbnNpb24gbmFt
ZT0iRUdMX0FOR0xFX2NyZWF0ZV9jb250ZXh0X2V4dGVuc2lvbnNfZW5hYmxlZCIgc3VwcG9ydGVk
PSJlZ2wiPgorICAgICAgICAgICAgPHJlcXVpcmU+CisgICAgICAgICAgICAgICAgPGVudW0gbmFt
ZT0iRUdMX0VYVEVOU0lPTlNfRU5BQkxFRF9BTkdMRSIvPgorICAgICAgICAgICAgPC9yZXF1aXJl
PgorICAgICAgICA8L2V4dGVuc2lvbj4KKyAgICAgICAgPGV4dGVuc2lvbiBuYW1lPSJFR0xfQU5H
TEVfY3JlYXRlX2NvbnRleHRfd2ViZ2xfY29tcGF0aWJpbGl0eSIgc3VwcG9ydGVkPSJlZ2wiPgor
ICAgICAgICAgICAgPHJlcXVpcmU+CisgICAgICAgICAgICAgICAgPGVudW0gbmFtZT0iRUdMX0NP
TlRFWFRfV0VCR0xfQ09NUEFUSUJJTElUWV9BTkdMRSIvPgorICAgICAgICAgICAgPC9yZXF1aXJl
PgorICAgICAgICA8L2V4dGVuc2lvbj4KKyAgICAgICAgPGV4dGVuc2lvbiBuYW1lPSJFR0xfQU5H
TEVfY3JlYXRlX3N1cmZhY2Vfc3dhcF9pbnRlcnZhbCIgc3VwcG9ydGVkPSJlZ2wiPgorICAgICAg
ICAgICAgPHJlcXVpcmU+CisgICAgICAgICAgICAgICAgPGVudW0gbmFtZT0iRUdMX1NXQVBfSU5U
RVJWQUxfQU5HTEUiLz4KKyAgICAgICAgICAgIDwvcmVxdWlyZT4KKyAgICAgICAgPC9leHRlbnNp
b24+CisgICAgICAgIDxleHRlbnNpb24gbmFtZT0iRUdMX0FOR0xFX2QzZF9zaGFyZV9oYW5kbGVf
Y2xpZW50X2J1ZmZlciIgc3VwcG9ydGVkPSJlZ2wiPgorICAgICAgICAgICAgPHJlcXVpcmU+Cisg
ICAgICAgICAgICAgICAgPGVudW0gbmFtZT0iRUdMX0QzRF9URVhUVVJFXzJEX1NIQVJFX0hBTkRM
RV9BTkdMRSIvPgorICAgICAgICAgICAgPC9yZXF1aXJlPgorICAgICAgICA8L2V4dGVuc2lvbj4K
KyAgICAgICAgPGV4dGVuc2lvbiBuYW1lPSJFR0xfQU5HTEVfZGV2aWNlX2NnbCIgc3VwcG9ydGVk
PSJlZ2wiPgorICAgICAgICAgICAgPHJlcXVpcmU+CisgICAgICAgICAgICAgICAgPGVudW0gbmFt
ZT0iRUdMX0NHTF9DT05URVhUX0FOR0xFIi8+CisgICAgICAgICAgICAgICAgPGVudW0gbmFtZT0i
RUdMX0NHTF9QSVhFTF9GT1JNQVRfQU5HTEUiLz4KKyAgICAgICAgICAgIDwvcmVxdWlyZT4KKyAg
ICAgICAgPC9leHRlbnNpb24+CisgICAgICAgIDxleHRlbnNpb24gbmFtZT0iRUdMX0FOR0xFX2Rl
dmljZV9lYWdsIiBzdXBwb3J0ZWQ9ImVnbCI+CisgICAgICAgICAgICA8cmVxdWlyZT4KKyAgICAg
ICAgICAgICAgICA8ZW51bSBuYW1lPSJFR0xfRUFHTF9DT05URVhUX0FOR0xFIi8+CisgICAgICAg
ICAgICA8L3JlcXVpcmU+CisgICAgICAgIDwvZXh0ZW5zaW9uPgorICAgICAgICA8ZXh0ZW5zaW9u
IG5hbWU9IkVHTF9BTkdMRV9kZXZpY2VfbWV0YWwiIHN1cHBvcnRlZD0iZWdsIj4KKyAgICAgICAg
ICAgIDxyZXF1aXJlPgorICAgICAgICAgICAgICAgIDxlbnVtIG5hbWU9IkVHTF9NRVRBTF9ERVZJ
Q0VfQU5HTEUiLz4KKyAgICAgICAgICAgIDwvcmVxdWlyZT4KKyAgICAgICAgPC9leHRlbnNpb24+
CisgICAgICAgIDxleHRlbnNpb24gbmFtZT0iRUdMX0FOR0xFX2RldmljZV92dWxrYW4iIHN1cHBv
cnRlZD0iZWdsIj4KKyAgICAgICAgICAgIDxyZXF1aXJlPgorICAgICAgICAgICAgICAgIDxlbnVt
IG5hbWU9IkVHTF9WVUxLQU5fVkVSU0lPTl9BTkdMRSIvPgorICAgICAgICAgICAgICAgIDxlbnVt
IG5hbWU9IkVHTF9WVUxLQU5fSU5TVEFOQ0VfQU5HTEUiLz4KKyAgICAgICAgICAgICAgICA8ZW51
bSBuYW1lPSJFR0xfVlVMS0FOX0lOU1RBTkNFX0VYVEVOU0lPTlNfQU5HTEUiLz4KKyAgICAgICAg
ICAgICAgICA8ZW51bSBuYW1lPSJFR0xfVlVMS0FOX1BIWVNJQ0FMX0RFVklDRV9BTkdMRSIvPgor
ICAgICAgICAgICAgICAgIDxlbnVtIG5hbWU9IkVHTF9WVUxLQU5fREVWSUNFX0FOR0xFIi8+Cisg
ICAgICAgICAgICAgICAgPGVudW0gbmFtZT0iRUdMX1ZVTEtBTl9ERVZJQ0VfRVhURU5TSU9OU19B
TkdMRSIvPgorICAgICAgICAgICAgICAgIDxlbnVtIG5hbWU9IkVHTF9WVUxLQU5fRkVBVFVSRVNf
QU5HTEUiLz4KKyAgICAgICAgICAgICAgICA8ZW51bSBuYW1lPSJFR0xfVlVMS0FOX1FVRVVFX0FO
R0xFIi8+CisgICAgICAgICAgICAgICAgPGVudW0gbmFtZT0iRUdMX1ZVTEtBTl9RVUVVRV9GQU1J
TElZX0lOREVYX0FOR0xFIi8+CisgICAgICAgICAgICAgICAgPGVudW0gbmFtZT0iRUdMX1ZVTEtB
Tl9HRVRfSU5TVEFOQ0VfUFJPQ19BRERSIi8+CisgICAgICAgICAgICA8L3JlcXVpcmU+CisgICAg
ICAgIDwvZXh0ZW5zaW9uPgorICAgICAgICA8ZXh0ZW5zaW9uIG5hbWU9IkVHTF9BTkdMRV9kaXJl
Y3RfY29tcG9zaXRpb24iIHN1cHBvcnRlZD0iZWdsIj4KKyAgICAgICAgICAgIDxyZXF1aXJlPgor
ICAgICAgICAgICAgICAgIDxlbnVtIG5hbWU9IkVHTF9ESVJFQ1RfQ09NUE9TSVRJT05fQU5HTEUi
Lz4KKyAgICAgICAgICAgIDwvcmVxdWlyZT4KKyAgICAgICAgPC9leHRlbnNpb24+CisgICAgICAg
IDxleHRlbnNpb24gbmFtZT0iRUdMX0FOR0xFX2Rpc3BsYXlfcG93ZXJfcHJlZmVyZW5jZSIgc3Vw
cG9ydGVkPSJlZ2wiPgorICAgICAgICAgICAgPHJlcXVpcmU+CisgICAgICAgICAgICAgICAgPGVu
dW0gbmFtZT0iRUdMX1BPV0VSX1BSRUZFUkVOQ0VfQU5HTEUiLz4KKyAgICAgICAgICAgICAgICA8
ZW51bSBuYW1lPSJFR0xfTE9XX1BPV0VSX0FOR0xFIi8+CisgICAgICAgICAgICAgICAgPGVudW0g
bmFtZT0iRUdMX0hJR0hfUE9XRVJfQU5HTEUiLz4KKyAgICAgICAgICAgIDwvcmVxdWlyZT4KKyAg
ICAgICAgPC9leHRlbnNpb24+CisgICAgICAgIDxleHRlbnNpb24gbmFtZT0iRUdMX0FOR0xFX2V4
cGVyaW1lbnRhbF9wcmVzZW50X3BhdGgiIHN1cHBvcnRlZD0iZWdsIj4KKyAgICAgICAgICAgIDxy
ZXF1aXJlPgorICAgICAgICAgICAgICAgIDxlbnVtIG5hbWU9IkVHTF9FWFBFUklNRU5UQUxfUFJF
U0VOVF9QQVRIX0FOR0xFIi8+CisgICAgICAgICAgICAgICAgPGVudW0gbmFtZT0iRUdMX0VYUEVS
SU1FTlRBTF9QUkVTRU5UX1BBVEhfRkFTVF9BTkdMRSIvPgorICAgICAgICAgICAgICAgIDxlbnVt
IG5hbWU9IkVHTF9FWFBFUklNRU5UQUxfUFJFU0VOVF9QQVRIX0NPUFlfQU5HTEUiLz4KKyAgICAg
ICAgICAgIDwvcmVxdWlyZT4KKyAgICAgICAgPC9leHRlbnNpb24+CisgICAgICAgIDxleHRlbnNp
b24gbmFtZT0iRUdMX0FOR0xFX2dncF9zdHJlYW1fZGVzY3JpcHRvciIgc3VwcG9ydGVkPSJlZ2wi
PgorICAgICAgICAgICAgPHJlcXVpcmU+CisgICAgICAgICAgICAgICAgPGVudW0gbmFtZT0iRUdM
X0dHUF9TVFJFQU1fREVTQ1JJUFRPUl9BTkdMRSIvPgorICAgICAgICAgICAgPC9yZXF1aXJlPgor
ICAgICAgICA8L2V4dGVuc2lvbj4KKyAgICAgICAgPGV4dGVuc2lvbiBuYW1lPSJFR0xfQU5HTEVf
aW9zdXJmYWNlX2NsaWVudF9idWZmZXIiIHN1cHBvcnRlZD0iZWdsIj4KKyAgICAgICAgICAgIDxy
ZXF1aXJlPgorICAgICAgICAgICAgICAgIDxlbnVtIG5hbWU9IkVHTF9JT1NVUkZBQ0VfQU5HTEUi
Lz4KKyAgICAgICAgICAgICAgICA8ZW51bSBuYW1lPSJFR0xfSU9TVVJGQUNFX1BMQU5FX0FOR0xF
Ii8+CisgICAgICAgICAgICAgICAgPGVudW0gbmFtZT0iRUdMX1RFWFRVUkVfUkVDVEFOR0xFX0FO
R0xFIi8+CisgICAgICAgICAgICAgICAgPGVudW0gbmFtZT0iRUdMX1RFWFRVUkVfVFlQRV9BTkdM
RSIvPgorICAgICAgICAgICAgICAgIDxlbnVtIG5hbWU9IkVHTF9URVhUVVJFX0lOVEVSTkFMX0ZP
Uk1BVF9BTkdMRSIvPgorICAgICAgICAgICAgICAgIDxlbnVtIG5hbWU9IkVHTF9JT1NVUkZBQ0Vf
VVNBR0VfSElOVF9BTkdMRSIvPgorICAgICAgICAgICAgICAgIDxlbnVtIG5hbWU9IkVHTF9CSU5E
X1RPX1RFWFRVUkVfVEFSR0VUX0FOR0xFIi8+CisgICAgICAgICAgICA8L3JlcXVpcmU+CisgICAg
ICAgIDwvZXh0ZW5zaW9uPgorICAgICAgICA8ZXh0ZW5zaW9uIG5hbWU9IkVHTF9BTkdMRV9rZXll
ZF9tdXRleCIgc3VwcG9ydGVkPSJlZ2wiPgorICAgICAgICAgICAgPHJlcXVpcmU+CisgICAgICAg
ICAgICAgICAgPGVudW0gbmFtZT0iRUdMX0RYR0lfS0VZRURfTVVURVhfQU5HTEUiLz4KICAgICAg
ICAgICAgIDwvcmVxdWlyZT4KICAgICAgICAgPC9leHRlbnNpb24+CiAgICAgICAgIDxleHRlbnNp
b24gbmFtZT0iRUdMX0FOR0xFX21ldGFsX2NyZWF0ZV9jb250ZXh0X293bmVyc2hpcF9pZGVudGl0
eSIgc3VwcG9ydGVkPSJlZ2wiPgpAQCAtMjA5LDUgKzM0NywyNDAgQEAKICAgICAgICAgICAgICAg
ICA8ZW51bSBuYW1lPSJFR0xfQ09OVEVYVF9NRVRBTF9PV05FUlNISVBfSURFTlRJVFlfQU5HTEUi
Lz4KICAgICAgICAgICAgIDwvcmVxdWlyZT4KICAgICAgICAgPC9leHRlbnNpb24+CisgICAgICAg
IDxleHRlbnNpb24gbmFtZT0iRUdMX0FOR0xFX21ldGFsX3RleHR1cmVfY2xpZW50X2J1ZmZlciIg
c3VwcG9ydGVkPSJlZ2wiPgorICAgICAgICAgICAgPHJlcXVpcmU+CisgICAgICAgICAgICAgICAg
PGVudW0gbmFtZT0iRUdMX01FVEFMX1RFWFRVUkVfQU5HTEUiLz4KKyAgICAgICAgICAgIDwvcmVx
dWlyZT4KKyAgICAgICAgPC9leHRlbnNpb24+CisgICAgICAgIDxleHRlbnNpb24gbmFtZT0iRUdM
X0FOR0xFX3BsYXRmb3JtX2FuZ2xlIiBzdXBwb3J0ZWQ9ImVnbCI+CisgICAgICAgICAgICA8cmVx
dWlyZT4KKyAgICAgICAgICAgICAgICA8ZW51bSBuYW1lPSJFR0xfUExBVEZPUk1fQU5HTEVfQU5H
TEUiLz4KKyAgICAgICAgICAgICAgICA8ZW51bSBuYW1lPSJFR0xfUExBVEZPUk1fQU5HTEVfVFlQ
RV9BTkdMRSIvPgorICAgICAgICAgICAgICAgIDxlbnVtIG5hbWU9IkVHTF9QTEFURk9STV9BTkdM
RV9NQVhfVkVSU0lPTl9NQUpPUl9BTkdMRSIvPgorICAgICAgICAgICAgICAgIDxlbnVtIG5hbWU9
IkVHTF9QTEFURk9STV9BTkdMRV9NQVhfVkVSU0lPTl9NSU5PUl9BTkdMRSIvPgorICAgICAgICAg
ICAgICAgIDxlbnVtIG5hbWU9IkVHTF9QTEFURk9STV9BTkdMRV9ERUJVR19MQVlFUlNfRU5BQkxF
RCIvPgorICAgICAgICAgICAgICAgIDxlbnVtIG5hbWU9IkVHTF9QTEFURk9STV9BTkdMRV9OQVRJ
VkVfUExBVEZPUk1fVFlQRV9BTkdMRSIvPgorICAgICAgICAgICAgICAgIDxlbnVtIG5hbWU9IkVH
TF9QTEFURk9STV9BTkdMRV9UWVBFX0RFRkFVTFRfQU5HTEUiLz4KKyAgICAgICAgICAgICAgICA8
ZW51bSBuYW1lPSJFR0xfUExBVEZPUk1fQU5HTEVfREVWSUNFX1RZUEVfSEFSRFdBUkVfQU5HTEUi
Lz4KKyAgICAgICAgICAgICAgICA8ZW51bSBuYW1lPSJFR0xfUExBVEZPUk1fQU5HTEVfREVWSUNF
X1RZUEVfTlVMTF9BTkdMRSIvPgorICAgICAgICAgICAgPC9yZXF1aXJlPgorICAgICAgICA8L2V4
dGVuc2lvbj4KKyAgICAgICAgPGV4dGVuc2lvbiBuYW1lPSJFR0xfQU5HTEVfcGxhdGZvcm1fYW5n
bGVfZDNkIiBzdXBwb3J0ZWQ9ImVnbCI+CisgICAgICAgICAgICA8cmVxdWlyZT4KKyAgICAgICAg
ICAgICAgICA8ZW51bSBuYW1lPSJFR0xfUExBVEZPUk1fQU5HTEVfVFlQRV9EM0Q5X0FOR0xFIi8+
CisgICAgICAgICAgICAgICAgPGVudW0gbmFtZT0iRUdMX1BMQVRGT1JNX0FOR0xFX1RZUEVfRDNE
MTFfQU5HTEUiLz4KKyAgICAgICAgICAgICAgICA8ZW51bSBuYW1lPSJFR0xfUExBVEZPUk1fQU5H
TEVfREVWSUNFX1RZUEVfQU5HTEUiLz4KKyAgICAgICAgICAgICAgICA8ZW51bSBuYW1lPSJFR0xf
UExBVEZPUk1fQU5HTEVfRU5BQkxFX0FVVE9NQVRJQ19UUklNX0FOR0xFIi8+CisgICAgICAgICAg
ICAgICAgPGVudW0gbmFtZT0iRUdMX1BMQVRGT1JNX0FOR0xFX0RFVklDRV9UWVBFX0QzRF9XQVJQ
X0FOR0xFIi8+CisgICAgICAgICAgICAgICAgPGVudW0gbmFtZT0iRUdMX1BMQVRGT1JNX0FOR0xF
X0RFVklDRV9UWVBFX0QzRF9SRUZFUkVOQ0VfQU5HTEUiLz4KKyAgICAgICAgICAgIDwvcmVxdWly
ZT4KKyAgICAgICAgPC9leHRlbnNpb24+CisgICAgICAgIDxleHRlbnNpb24gbmFtZT0iRUdMX0FO
R0xFX3BsYXRmb3JtX2FuZ2xlX2QzZDExb24xMiIgc3VwcG9ydGVkPSJlZ2wiPgorICAgICAgICAg
ICAgPHJlcXVpcmU+CisgICAgICAgICAgICAgICAgPGVudW0gbmFtZT0iRUdMX1BMQVRGT1JNX0FO
R0xFX0QzRDExT04xMl9BTkdMRSIvPgorICAgICAgICAgICAgPC9yZXF1aXJlPgorICAgICAgICA8
L2V4dGVuc2lvbj4KKyAgICAgICAgPGV4dGVuc2lvbiBuYW1lPSJFR0xfQU5HTEVfcGxhdGZvcm1f
YW5nbGVfZDNkX2x1aWQiIHN1cHBvcnRlZD0iZWdsIj4KKyAgICAgICAgICAgIDxyZXF1aXJlPgor
ICAgICAgICAgICAgICAgIDxlbnVtIG5hbWU9IkVHTF9QTEFURk9STV9BTkdMRV9EM0RfTFVJRF9I
SUdIX0FOR0xFIi8+CisgICAgICAgICAgICAgICAgPGVudW0gbmFtZT0iRUdMX1BMQVRGT1JNX0FO
R0xFX0QzRF9MVUlEX0xPV19BTkdMRSIvPgorICAgICAgICAgICAgPC9yZXF1aXJlPgorICAgICAg
ICA8L2V4dGVuc2lvbj4KKyAgICAgICAgPGV4dGVuc2lvbiBuYW1lPSJFR0xfQU5HTEVfcGxhdGZv
cm1fYW5nbGVfZGV2aWNlX2NvbnRleHRfdm9sYXRpbGVfY2dsIiBzdXBwb3J0ZWQ9ImVnbCI+Cisg
ICAgICAgICAgICA8cmVxdWlyZT4KKyAgICAgICAgICAgICAgICA8ZW51bSBuYW1lPSJFR0xfUExB
VEZPUk1fQU5HTEVfREVWSUNFX0NPTlRFWFRfVk9MQVRJTEVfQ0dMX0FOR0xFIi8+CisgICAgICAg
ICAgICA8L3JlcXVpcmU+CisgICAgICAgIDwvZXh0ZW5zaW9uPgorICAgICAgICA8ZXh0ZW5zaW9u
IG5hbWU9IkVHTF9BTkdMRV9wbGF0Zm9ybV9hbmdsZV9kZXZpY2VfY29udGV4dF92b2xhdGlsZV9l
YWdsIiBzdXBwb3J0ZWQ9ImVnbCI+CisgICAgICAgICAgICA8cmVxdWlyZT4KKyAgICAgICAgICAg
ICAgICA8ZW51bSBuYW1lPSJFR0xfUExBVEZPUk1fQU5HTEVfREVWSUNFX0NPTlRFWFRfVk9MQVRJ
TEVfRUFHTF9BTkdMRSIvPgorICAgICAgICAgICAgPC9yZXF1aXJlPgorICAgICAgICA8L2V4dGVu
c2lvbj4KKyAgICAgICAgPGV4dGVuc2lvbiBuYW1lPSJFR0xfQU5HTEVfcGxhdGZvcm1fYW5nbGVf
ZGV2aWNlX2lkIiBzdXBwb3J0ZWQ9ImVnbCI+CisgICAgICAgICAgICA8cmVxdWlyZT4KKyAgICAg
ICAgICAgICAgICA8ZW51bSBuYW1lPSJFR0xfUExBVEZPUk1fQU5HTEVfREVWSUNFX0lEX0hJR0hf
QU5HTEUiLz4KKyAgICAgICAgICAgICAgICA8ZW51bSBuYW1lPSJFR0xfUExBVEZPUk1fQU5HTEVf
REVWSUNFX0lEX0xPV19BTkdMRSIvPgorICAgICAgICAgICAgPC9yZXF1aXJlPgorICAgICAgICA8
L2V4dGVuc2lvbj4KKyAgICAgICAgPGV4dGVuc2lvbiBuYW1lPSJFR0xfQU5HTEVfcGxhdGZvcm1f
YW5nbGVfZGV2aWNlX3R5cGVfZWdsIiBzdXBwb3J0ZWQ9ImVnbCI+CisgICAgICAgICAgICA8cmVx
dWlyZT4KKyAgICAgICAgICAgICAgICA8ZW51bSBuYW1lPSJFR0xfUExBVEZPUk1fQU5HTEVfREVW
SUNFX1RZUEVfRUdMX0FOR0xFIi8+CisgICAgICAgICAgICA8L3JlcXVpcmU+CisgICAgICAgIDwv
ZXh0ZW5zaW9uPgorICAgICAgICA8ZXh0ZW5zaW9uIG5hbWU9IkVHTF9BTkdMRV9wbGF0Zm9ybV9h
bmdsZV9kZXZpY2VfdHlwZV9zd2lmdHNoYWRlciIgc3VwcG9ydGVkPSJlZ2wiPgorICAgICAgICAg
ICAgPHJlcXVpcmU+CisgICAgICAgICAgICAgICAgPGVudW0gbmFtZT0iRUdMX1BMQVRGT1JNX0FO
R0xFX0RFVklDRV9UWVBFX1NXSUZUU0hBREVSX0FOR0xFIi8+CisgICAgICAgICAgICA8L3JlcXVp
cmU+CisgICAgICAgIDwvZXh0ZW5zaW9uPgorICAgICAgICA8ZXh0ZW5zaW9uIG5hbWU9IkVHTF9B
TkdMRV9wbGF0Zm9ybV9hbmdsZV9tZXRhbCIgc3VwcG9ydGVkPSJlZ2wiPgorICAgICAgICAgICAg
PHJlcXVpcmU+CisgICAgICAgICAgICAgICAgPGVudW0gbmFtZT0iRUdMX1BMQVRGT1JNX0FOR0xF
X1RZUEVfTUVUQUxfQU5HTEUiLz4KKyAgICAgICAgICAgIDwvcmVxdWlyZT4KKyAgICAgICAgPC9l
eHRlbnNpb24+CisgICAgICAgIDxleHRlbnNpb24gbmFtZT0iRUdMX0FOR0xFX3BsYXRmb3JtX2Fu
Z2xlX251bGwiIHN1cHBvcnRlZD0iZWdsIj4KKyAgICAgICAgICAgIDxyZXF1aXJlPgorICAgICAg
ICAgICAgICAgIDxlbnVtIG5hbWU9IkVHTF9QTEFURk9STV9BTkdMRV9UWVBFX05VTExfQU5HTEUi
Lz4KKyAgICAgICAgICAgIDwvcmVxdWlyZT4KKyAgICAgICAgPC9leHRlbnNpb24+CisgICAgICAg
IDxleHRlbnNpb24gbmFtZT0iRUdMX0FOR0xFX3BsYXRmb3JtX2FuZ2xlX29wZW5nbCIgc3VwcG9y
dGVkPSJlZ2wiPgorICAgICAgICAgICAgPHJlcXVpcmU+CisgICAgICAgICAgICAgICAgPGVudW0g
bmFtZT0iRUdMX1BMQVRGT1JNX0FOR0xFX1RZUEVfT1BFTkdMX0FOR0xFIi8+CisgICAgICAgICAg
ICAgICAgPGVudW0gbmFtZT0iRUdMX1BMQVRGT1JNX0FOR0xFX1RZUEVfT1BFTkdMRVNfQU5HTEUi
Lz4KKyAgICAgICAgICAgICAgICA8ZW51bSBuYW1lPSJFR0xfUExBVEZPUk1fQU5HTEVfRUdMX0hB
TkRMRV9BTkdMRSIvPgorICAgICAgICAgICAgPC9yZXF1aXJlPgorICAgICAgICA8L2V4dGVuc2lv
bj4KKyAgICAgICAgPGV4dGVuc2lvbiBuYW1lPSJFR0xfQU5HTEVfcGxhdGZvcm1fYW5nbGVfdnVs
a2FuIiBzdXBwb3J0ZWQ9ImVnbCI+CisgICAgICAgICAgICA8cmVxdWlyZT4KKyAgICAgICAgICAg
ICAgICA8ZW51bSBuYW1lPSJFR0xfUExBVEZPUk1fQU5HTEVfVFlQRV9WVUxLQU5fQU5HTEUiLz4K
KyAgICAgICAgICAgIDwvcmVxdWlyZT4KKyAgICAgICAgPC9leHRlbnNpb24+CisgICAgICAgIDxl
eHRlbnNpb24gbmFtZT0iRUdMX0FOR0xFX3JvYnVzdF9yZXNvdXJjZV9pbml0aWFsaXphdGlvbiIg
c3VwcG9ydGVkPSJlZ2wiPgorICAgICAgICAgICAgPHJlcXVpcmU+CisgICAgICAgICAgICAgICAg
PGVudW0gbmFtZT0iRUdMX1JPQlVTVF9SRVNPVVJDRV9JTklUSUFMSVpBVElPTl9BTkdMRSIvPgor
ICAgICAgICAgICAgPC9yZXF1aXJlPgorICAgICAgICA8L2V4dGVuc2lvbj4KKyAgICAgICAgPGV4
dGVuc2lvbiBuYW1lPSJFR0xfQU5HTEVfc3VyZmFjZV9vcmllbnRhdGlvbiIgc3VwcG9ydGVkPSJl
Z2wiPgorICAgICAgICAgICAgPHJlcXVpcmU+CisgICAgICAgICAgICAgICAgPGVudW0gbmFtZT0i
RUdMX09QVElNQUxfU1VSRkFDRV9PUklFTlRBVElPTl9BTkdMRSIvPgorICAgICAgICAgICAgICAg
IDxlbnVtIG5hbWU9IkVHTF9TVVJGQUNFX09SSUVOVEFUSU9OX0FOR0xFIi8+CisgICAgICAgICAg
ICAgICAgPGVudW0gbmFtZT0iRUdMX1NVUkZBQ0VfT1JJRU5UQVRJT05fSU5WRVJUX1hfQU5HTEUi
Lz4KKyAgICAgICAgICAgICAgICA8ZW51bSBuYW1lPSJFR0xfU1VSRkFDRV9PUklFTlRBVElPTl9J
TlZFUlRfWV9BTkdMRSIvPgorICAgICAgICAgICAgPC9yZXF1aXJlPgorICAgICAgICA8L2V4dGVu
c2lvbj4KKyAgICAgICAgPGV4dGVuc2lvbiBuYW1lPSJFR0xfQU5HTEVfc3VyZmFjZV9vcmllbnRh
dGlvbiIgc3VwcG9ydGVkPSJlZ2wiPgorICAgICAgICAgICAgPHJlcXVpcmU+CisgICAgICAgICAg
ICAgICAgPGVudW0gbmFtZT0iRUdMX09QVElNQUxfU1VSRkFDRV9PUklFTlRBVElPTl9BTkdMRSIv
PgorICAgICAgICAgICAgICAgIDxlbnVtIG5hbWU9IkVHTF9TVVJGQUNFX09SSUVOVEFUSU9OX0FO
R0xFIi8+CisgICAgICAgICAgICAgICAgPGVudW0gbmFtZT0iRUdMX1NVUkZBQ0VfT1JJRU5UQVRJ
T05fSU5WRVJUX1hfQU5HTEUiLz4KKyAgICAgICAgICAgICAgICA8ZW51bSBuYW1lPSJFR0xfU1VS
RkFDRV9PUklFTlRBVElPTl9JTlZFUlRfWV9BTkdMRSIvPgorICAgICAgICAgICAgPC9yZXF1aXJl
PgorICAgICAgICA8L2V4dGVuc2lvbj4KKyAgICAgICAgPGV4dGVuc2lvbiBuYW1lPSJFR0xfQU5H
TEVfdnVsa2FuX2Rpc3BsYXkiIHN1cHBvcnRlZD0iZWdsIj4KKyAgICAgICAgICAgIDxyZXF1aXJl
PgorICAgICAgICAgICAgICAgIDxlbnVtIG5hbWU9IkVHTF9QTEFURk9STV9WVUxLQU5fRElTUExB
WV9NT0RFX1NJTVBMRV9BTkdMRSIvPgorICAgICAgICAgICAgICAgIDxlbnVtIG5hbWU9IkVHTF9Q
TEFURk9STV9WVUxLQU5fRElTUExBWV9NT0RFX0hFQURMRVNTX0FOR0xFIi8+CisgICAgICAgICAg
ICA8L3JlcXVpcmU+CisgICAgICAgIDwvZXh0ZW5zaW9uPgogICAgIDwvZXh0ZW5zaW9ucz4KKwor
ICAgIDwhLS0gU0VDVElPTjogRUdMIGVudW1lcmFudCAodG9rZW4pIGRlZmluaXRpb25zLiAtLT4K
KyAgICA8ZW51bXMgbmFtZXNwYWNlPSJFR0wiIHN0YXJ0PSIweDMyMDIiIGVuZD0iMHgzMjBGIiB2
ZW5kb3I9IkFOR0xFIj4KKyAgICAgICAgPGVudW0gdmFsdWU9IjB4MzIwMiIgbmFtZT0iRUdMX1BM
QVRGT1JNX0FOR0xFX0FOR0xFIi8+CisgICAgICAgIDxlbnVtIHZhbHVlPSIweDMyMDMiIG5hbWU9
IkVHTF9QTEFURk9STV9BTkdMRV9UWVBFX0FOR0xFIi8+CisgICAgICAgIDxlbnVtIHZhbHVlPSIw
eDMyMDQiIG5hbWU9IkVHTF9QTEFURk9STV9BTkdMRV9NQVhfVkVSU0lPTl9NQUpPUl9BTkdMRSIv
PgorICAgICAgICA8ZW51bSB2YWx1ZT0iMHgzMjA1IiBuYW1lPSJFR0xfUExBVEZPUk1fQU5HTEVf
TUFYX1ZFUlNJT05fTUlOT1JfQU5HTEUiLz4KKyAgICAgICAgPGVudW0gdmFsdWU9IjB4MzIwNiIg
bmFtZT0iRUdMX1BMQVRGT1JNX0FOR0xFX1RZUEVfREVGQVVMVF9BTkdMRSIvPgorICAgICAgICA8
ZW51bSB2YWx1ZT0iMHgzMjA3IiBuYW1lPSJFR0xfUExBVEZPUk1fQU5HTEVfVFlQRV9EM0Q5X0FO
R0xFIi8+CisgICAgICAgIDxlbnVtIHZhbHVlPSIweDMyMDgiIG5hbWU9IkVHTF9QTEFURk9STV9B
TkdMRV9UWVBFX0QzRDExX0FOR0xFIi8+CisgICAgICAgIDxlbnVtIHZhbHVlPSIweDMyMDkiIG5h
bWU9IkVHTF9QTEFURk9STV9BTkdMRV9ERVZJQ0VfVFlQRV9BTkdMRSIvPgorICAgICAgICA8ZW51
bSB2YWx1ZT0iMHgzMjBBIiBuYW1lPSJFR0xfUExBVEZPUk1fQU5HTEVfREVWSUNFX1RZUEVfSEFS
RFdBUkVfQU5HTEUiLz4KKyAgICAgICAgPGVudW0gdmFsdWU9IjB4MzIwQiIgbmFtZT0iRUdMX1BM
QVRGT1JNX0FOR0xFX0RFVklDRV9UWVBFX0QzRF9XQVJQX0FOR0xFIi8+CisgICAgICAgIDxlbnVt
IHZhbHVlPSIweDMyMEMiIG5hbWU9IkVHTF9QTEFURk9STV9BTkdMRV9ERVZJQ0VfVFlQRV9EM0Rf
UkVGRVJFTkNFX0FOR0xFIi8+CisgICAgICAgIDxlbnVtIHZhbHVlPSIweDMyMEQiIG5hbWU9IkVH
TF9QTEFURk9STV9BTkdMRV9UWVBFX09QRU5HTF9BTkdMRSIvPgorICAgICAgICA8ZW51bSB2YWx1
ZT0iMHgzMjBFIiBuYW1lPSJFR0xfUExBVEZPUk1fQU5HTEVfVFlQRV9PUEVOR0xFU19BTkdMRSIv
PgorICAgICAgICA8ZW51bSB2YWx1ZT0iMHgzMjBGIiBuYW1lPSJFR0xfUExBVEZPUk1fQU5HTEVf
RU5BQkxFX0FVVE9NQVRJQ19UUklNX0FOR0xFIi8+CisgICAgPC9lbnVtcz4KKyAgICA8ZW51bXMg
bmFtZXNwYWNlPSJFR0wiIHN0YXJ0PSIweDMyMkYiIGVuZD0iMHgzMjJGIiB2ZW5kb3I9IkFOR0xF
Ij4KKyAgICAgICAgPGVudW0gdmFsdWU9IjB4MzIyRiIgbmFtZT0iRUdMX1NXQVBfSU5URVJWQUxf
QU5HTEUiIGFsaWFzPSJFR0xfU1dBUF9JTlRFUlZBTF9FWFQiLz4KKyAgICA8L2VudW1zPgorICAg
IDxlbnVtcyBuYW1lc3BhY2U9IkVHTCIgc3RhcnQ9IjB4MzNBMCIgZW5kPSIweDMzQUYiIHZlbmRv
cj0iQU5HTEUiPgorICAgICAgICA8IS0tIDB4MzNBMC0weDMzQTEgYXJlIGRlZmluZWQgaW4gZWds
LnhtbCBhbHJlYWR5IC0tPgorICAgICAgICA8ZW51bSB2YWx1ZT0iMHgzM0EyIiBuYW1lPSJFR0xf
RFhHSV9LRVlFRF9NVVRFWF9BTkdMRSIvPgorICAgICAgICA8ZW51bSB2YWx1ZT0iMHgzM0EzIiBu
YW1lPSJFR0xfRDNEX1RFWFRVUkVfQU5HTEUiLz4KKyAgICAgICAgPGVudW0gdmFsdWU9IjB4MzNB
NCIgbmFtZT0iRUdMX0VYUEVSSU1FTlRBTF9QUkVTRU5UX1BBVEhfQU5HTEUiLz4KKyAgICAgICAg
PGVudW0gdmFsdWU9IjB4MzNBNSIgbmFtZT0iRUdMX0RJUkVDVF9DT01QT1NJVElPTl9BTkdMRSIv
PgorICAgICAgICA8ZW51bSB2YWx1ZT0iMHgzM0E3IiBuYW1lPSJFR0xfT1BUSU1BTF9TVVJGQUNF
X09SSUVOVEFUSU9OX0FOR0xFIi8+CisgICAgICAgIDxlbnVtIHZhbHVlPSIweDMzQTgiIG5hbWU9
IkVHTF9TVVJGQUNFX09SSUVOVEFUSU9OX0FOR0xFIi8+CisgICAgICAgIDxlbnVtIHZhbHVlPSIw
eDMzQTkiIG5hbWU9IkVHTF9FWFBFUklNRU5UQUxfUFJFU0VOVF9QQVRIX0ZBU1RfQU5HTEUiLz4K
KyAgICAgICAgPGVudW0gdmFsdWU9IjB4MzNBQSIgbmFtZT0iRUdMX0VYUEVSSU1FTlRBTF9QUkVT
RU5UX1BBVEhfQ09QWV9BTkdMRSIvPgorICAgICAgICA8ZW51bSB2YWx1ZT0iMHgzM0FCIiBuYW1l
PSJFR0xfRDNEX1RFWFRVUkVfU1VCUkVTT1VSQ0VfSURfQU5HTEUiLz4KKyAgICAgICAgPGVudW0g
dmFsdWU9IjB4MzNBQyIgbmFtZT0iRUdMX0NPTlRFWFRfV0VCR0xfQ09NUEFUSUJJTElUWV9BTkdM
RSIvPgorICAgICAgICA8ZW51bSB2YWx1ZT0iMHgzM0FFIiBuYW1lPSJFR0xfUExBVEZPUk1fQU5H
TEVfVFlQRV9OVUxMX0FOR0xFIi8+CisgICAgICAgIDxlbnVtIHZhbHVlPSIweDMzQUYiIG5hbWU9
IkVHTF9ESVNQTEFZX1RFWFRVUkVfU0hBUkVfR1JPVVBfQU5HTEUiLz4KKyAgICA8L2VudW1zPgor
ICAgIDxlbnVtcyBuYW1lc3BhY2U9IkVHTCIgc3RhcnQ9IjB4MzQ1MCIgZW5kPSIweDM0NUYiIHZl
bmRvcj0iQU5HTEUiPgorICAgICAgICA8ZW51bSB2YWx1ZT0iMHgzNDUwIiBuYW1lPSJFR0xfUExB
VEZPUk1fQU5HTEVfVFlQRV9WVUxLQU5fQU5HTEUiLz4KKyAgICAgICAgPGVudW0gdmFsdWU9IjB4
MzQ1MSIgbmFtZT0iRUdMX1BMQVRGT1JNX0FOR0xFX0RFQlVHX0xBWUVSU19FTkFCTEVEIi8+Cisg
ICAgICAgIDxlbnVtIHZhbHVlPSIweDM0NTIiIG5hbWU9IkVHTF9DT05URVhUX0NMSUVOVF9BUlJB
WVNfRU5BQkxFRF9BTkdMRSIvPgorICAgICAgICA8ZW51bSB2YWx1ZT0iMHgzNDUzIiBuYW1lPSJF
R0xfUk9CVVNUX1JFU09VUkNFX0lOSVRJQUxJWkFUSU9OX0FOR0xFIi8+CisgICAgICAgIDxlbnVt
IHZhbHVlPSIweDM0NTQiIG5hbWU9IkVHTF9JT1NVUkZBQ0VfQU5HTEUiLz4KKyAgICAgICAgPGVu
dW0gdmFsdWU9IjB4MzQ1NSIgbmFtZT0iRUdMX1BST0dSQU1fQ0FDSEVfU0laRV9BTkdMRSIvPgor
ICAgICAgICA8ZW51bSB2YWx1ZT0iMHgzNDU2IiBuYW1lPSJFR0xfUFJPR1JBTV9DQUNIRV9LRVlf
TEVOR1RIX0FOR0xFIi8+CisgICAgICAgIDxlbnVtIHZhbHVlPSIweDM0NTciIG5hbWU9IkVHTF9Q
Uk9HUkFNX0NBQ0hFX1JFU0laRV9BTkdMRSIvPgorICAgICAgICA8ZW51bSB2YWx1ZT0iMHgzNDU4
IiBuYW1lPSJFR0xfUFJPR1JBTV9DQUNIRV9UUklNX0FOR0xFIi8+CisgICAgICAgIDxlbnVtIHZh
bHVlPSIweDM0NTkiIG5hbWU9IkVHTF9DT05URVhUX1BST0dSQU1fQklOQVJZX0NBQ0hFX0VOQUJM
RURfQU5HTEUiLz4KKyAgICAgICAgPGVudW0gdmFsdWU9IjB4MzQ1QSIgbmFtZT0iRUdMX0lPU1VS
RkFDRV9QTEFORV9BTkdMRSIvPgorICAgICAgICA8ZW51bSB2YWx1ZT0iMHgzNDVCIiBuYW1lPSJF
R0xfVEVYVFVSRV9SRUNUQU5HTEVfQU5HTEUiLz4KKyAgICAgICAgPGVudW0gdmFsdWU9IjB4MzQ1
QyIgbmFtZT0iRUdMX1RFWFRVUkVfVFlQRV9BTkdMRSIvPgorICAgICAgICA8ZW51bSB2YWx1ZT0i
MHgzNDVEIiBuYW1lPSJFR0xfVEVYVFVSRV9JTlRFUk5BTF9GT1JNQVRfQU5HTEUiLz4KKyAgICAg
ICAgPGVudW0gdmFsdWU9IjB4MzQ1RSIgbmFtZT0iRUdMX1BMQVRGT1JNX0FOR0xFX0RFVklDRV9U
WVBFX05VTExfQU5HTEUiLz4KKyAgICAgICAgPGVudW0gdmFsdWU9IjB4MzQ1RiIgbmFtZT0iRUdM
X0VYVEVOU0lPTlNfRU5BQkxFRF9BTkdMRSIvPgorICAgIDwvZW51bXM+CisgICAgPGVudW1zIG5h
bWVzcGFjZT0iRUdMIiBzdGFydD0iMHgzNDYwIiBlbmQ9IjB4MzQ2RiIgdmVuZG9yPSJBTkdMRSI+
CisgICAgICAgIDxlbnVtIHZhbHVlPSIweDM0NjAiIG5hbWU9IkVHTF9GRUFUVVJFX05BTUVfQU5H
TEUiLz4KKyAgICAgICAgPGVudW0gdmFsdWU9IjB4MzQ2MSIgbmFtZT0iRUdMX0ZFQVRVUkVfQ0FU
RUdPUllfQU5HTEUiLz4KKyAgICAgICAgPGVudW0gdmFsdWU9IjB4MzQ2MiIgbmFtZT0iRUdMX0ZF
QVRVUkVfREVTQ1JJUFRJT05fQU5HTEUiLz4KKyAgICAgICAgPGVudW0gdmFsdWU9IjB4MzQ2MyIg
bmFtZT0iRUdMX0ZFQVRVUkVfQlVHX0FOR0xFIi8+CisgICAgICAgIDxlbnVtIHZhbHVlPSIweDM0
NjQiIG5hbWU9IkVHTF9GRUFUVVJFX1NUQVRVU19BTkdMRSIvPgorICAgICAgICA8ZW51bSB2YWx1
ZT0iMHgzNDY1IiBuYW1lPSJFR0xfRkVBVFVSRV9DT1VOVF9BTkdMRSIvPgorICAgICAgICA8ZW51
bSB2YWx1ZT0iMHgzNDY2IiBuYW1lPSJFR0xfRkVBVFVSRV9PVkVSUklERVNfRU5BQkxFRF9BTkdM
RSIvPgorICAgICAgICA8ZW51bSB2YWx1ZT0iMHgzNDY3IiBuYW1lPSJFR0xfRkVBVFVSRV9PVkVS
UklERVNfRElTQUJMRURfQU5HTEUiLz4KKyAgICAgICAgPGVudW0gdmFsdWU9IjB4MzQ2OCIgbmFt
ZT0iRUdMX0ZFQVRVUkVfQ09ORElUSU9OX0FOR0xFIi8+CisgICAgICAgIDxlbnVtIHZhbHVlPSIw
eDM0NjkiIG5hbWU9IkVHTF9GRUFUVVJFX0FMTF9ESVNBQkxFRF9BTkdMRSIvPgorICAgIDwvZW51
bXM+CisgICAgPGVudW1zIG5hbWVzcGFjZT0iRUdMIiBzdGFydD0iMHgzNDgwIiBlbmQ9IjB4MzQ4
RiIgdmVuZG9yPSJBTkdMRSI+CisgICAgICAgIDxlbnVtIHZhbHVlPSIweDM0ODAiIG5hbWU9IkVH
TF9QTEFURk9STV9BTkdMRV9FR0xfSEFORExFX0FOR0xFIi8+CisgICAgICAgIDxlbnVtIHZhbHVl
PSIweDM0ODEiIG5hbWU9IkVHTF9DT05URVhUX1ZJUlRVQUxJWkFUSU9OX0dST1VQX0FOR0xFIi8+
CisgICAgICAgIDxlbnVtIHZhbHVlPSIweDM0ODIiIG5hbWU9IkVHTF9QT1dFUl9QUkVGRVJFTkNF
X0FOR0xFIi8+CisgICAgICAgIDxlbnVtIHZhbHVlPSIweDM0ODMiIG5hbWU9IkVHTF9DT05URVhU
X09QRU5HTF9CQUNLV0FSRFNfQ09NUEFUSUJMRV9BTkdMRSIvPgorICAgICAgICA8ZW51bSB2YWx1
ZT0iMHgzNDg1IiBuYW1lPSJFR0xfQ0dMX0NPTlRFWFRfQU5HTEUiLz4KKyAgICAgICAgPGVudW0g
dmFsdWU9IjB4MzQ4NiIgbmFtZT0iRUdMX0NHTF9QSVhFTF9GT1JNQVRfQU5HTEUiLz4KKyAgICAg
ICAgPGVudW0gdmFsdWU9IjB4MzQ4NyIgbmFtZT0iRUdMX1BMQVRGT1JNX0FOR0xFX0RFVklDRV9U
WVBFX1NXSUZUU0hBREVSX0FOR0xFIi8+CisgICAgICAgIDxlbnVtIHZhbHVlPSIweDM0ODgiIG5h
bWU9IkVHTF9QTEFURk9STV9BTkdMRV9EM0QxMU9OMTJfQU5HTEUiLz4KKyAgICAgICAgPGVudW0g
dmFsdWU9IjB4MzQ4OSIgbmFtZT0iRUdMX1BMQVRGT1JNX0FOR0xFX1RZUEVfTUVUQUxfQU5HTEUi
Lz4KKyAgICAgICAgPGVudW0gdmFsdWU9IjB4MzQ4QSIgbmFtZT0iRUdMX0lPU1VSRkFDRV9VU0FH
RV9ISU5UX0FOR0xFIi8+CisgICAgICAgIDxlbnVtIHZhbHVlPSIweDM0OEIiIG5hbWU9IkVHTF9H
R1BfU1RSRUFNX0RFU0NSSVBUT1JfQU5HTEUiLz4KKyAgICAgICAgPGVudW0gdmFsdWU9IjB4MzQ4
QyIgbmFtZT0iRUdMX0VBR0xfQ09OVEVYVF9BTkdMRSIvPgorCisgICAgICAgIDwhLS0gTk9URTog
WWVzLCB0aGVzZSB0d28gdmFsdWVzIGFyZSB0aGUgc2FtZSBhY2NvcmRpbmcgdG8gdGhlIGV4dGVu
c2lvbiBzcGVjcy4gLS0+CisgICAgICAgIDxlbnVtIHZhbHVlPSIweDM0OEQiIG5hbWU9IkVHTF9E
SVNQTEFZX1NFTUFQSE9SRV9TSEFSRV9HUk9VUF9BTkdMRSIvPgorICAgICAgICA8ZW51bSB2YWx1
ZT0iMHgzNDhEIiBuYW1lPSJFR0xfQklORF9UT19URVhUVVJFX1RBUkdFVF9BTkdMRSIvPgorCisg
ICAgICAgIDxlbnVtIHZhbHVlPSIweDM0OEUiIG5hbWU9IkVHTF9QTEFURk9STV9BTkdMRV9ERVZJ
Q0VfVFlQRV9FR0xfQU5HTEUiLz4KKyAgICAgICAgPGVudW0gdmFsdWU9IjB4MzQ4RiIgbmFtZT0i
RUdMX1BMQVRGT1JNX0FOR0xFX05BVElWRV9QTEFURk9STV9UWVBFX0FOR0xFIi8+CisgICAgPC9l
bnVtcz4KKyAgICA8ZW51bXMgbmFtZXNwYWNlPSJFR0wiIHN0YXJ0PSIweDM0QTAiIGVuZD0iMHgz
NEFGIiB2ZW5kb3I9IkFOR0xFIj4KKyAgICAgICAgPGVudW0gdmFsdWU9IjB4MzRBMCIgbmFtZT0i
RUdMX1BMQVRGT1JNX0FOR0xFX0QzRF9MVUlEX0hJR0hfQU5HTEUiLz4KKyAgICAgICAgPGVudW0g
dmFsdWU9IjB4MzRBMSIgbmFtZT0iRUdMX1BMQVRGT1JNX0FOR0xFX0QzRF9MVUlEX0xPV19BTkdM
RSIvPgorICAgICAgICA8ZW51bSB2YWx1ZT0iMHgzNEEyIiBuYW1lPSJFR0xfUExBVEZPUk1fQU5H
TEVfREVWSUNFX0NPTlRFWFRfVk9MQVRJTEVfRUFHTF9BTkdMRSIvPgorICAgICAgICA8ZW51bSB2
YWx1ZT0iMHgzNEEzIiBuYW1lPSJFR0xfUExBVEZPUk1fQU5HTEVfREVWSUNFX0NPTlRFWFRfVk9M
QVRJTEVfQ0dMX0FOR0xFIi8+CisgICAgICAgIDxlbnVtIHZhbHVlPSIweDM0QTQiIG5hbWU9IkVH
TF9QTEFURk9STV9WVUxLQU5fRElTUExBWV9NT0RFX1NJTVBMRV9BTkdMRSIvPgorICAgICAgICA8
ZW51bSB2YWx1ZT0iMHgzNEE1IiBuYW1lPSJFR0xfUExBVEZPUk1fVlVMS0FOX0RJU1BMQVlfTU9E
RV9IRUFETEVTU19BTkdMRSIvPgorICAgICAgICA8ZW51bSB2YWx1ZT0iMHgzNEE2IiBuYW1lPSJF
R0xfTUVUQUxfREVWSUNFX0FOR0xFIi8+CisgICAgICAgIDxlbnVtIHZhbHVlPSIweDM0QTciIG5h
bWU9IkVHTF9NRVRBTF9URVhUVVJFX0FOR0xFIi8+CisgICAgICAgIDxlbnVtIHZhbHVlPSIweDM0
QTgiIG5hbWU9IkVHTF9WVUxLQU5fVkVSU0lPTl9BTkdMRSIvPgorICAgICAgICA8ZW51bSB2YWx1
ZT0iMHgzNEE5IiBuYW1lPSJFR0xfVlVMS0FOX0lOU1RBTkNFX0FOR0xFIi8+CisgICAgICAgIDxl
bnVtIHZhbHVlPSIweDM0QUEiIG5hbWU9IkVHTF9WVUxLQU5fSU5TVEFOQ0VfRVhURU5TSU9OU19B
TkdMRSIvPgorICAgICAgICA8ZW51bSB2YWx1ZT0iMHgzNEFCIiBuYW1lPSJFR0xfVlVMS0FOX1BI
WVNJQ0FMX0RFVklDRV9BTkdMRSIvPgorICAgICAgICA8ZW51bSB2YWx1ZT0iMHgzNEFDIiBuYW1l
PSJFR0xfVlVMS0FOX0RFVklDRV9BTkdMRSIvPgorICAgICAgICA8ZW51bSB2YWx1ZT0iMHgzNEFE
IiBuYW1lPSJFR0xfVlVMS0FOX0RFVklDRV9FWFRFTlNJT05TX0FOR0xFIi8+CisgICAgICAgIDxl
bnVtIHZhbHVlPSIweDM0QUUiIG5hbWU9IkVHTF9WVUxLQU5fRkVBVFVSRVNfQU5HTEUiLz4KKyAg
ICAgICAgPGVudW0gdmFsdWU9IjB4MzRBRiIgbmFtZT0iRUdMX1ZVTEtBTl9RVUVVRV9BTkdMRSIv
PgorICAgIDwvZW51bXM+CisgICAgPGVudW1zIG5hbWVzcGFjZT0iRUdMIiBzdGFydD0iMHgzNEQw
IiBlbmQ9IjB4MzRERiIgdmVuZG9yPSJBTkdMRSI+CisgICAgICAgIDxlbnVtIHZhbHVlPSIweDM0
RDAiIG5hbWU9IkVHTF9WVUxLQU5fUVVFVUVfRkFNSUxJWV9JTkRFWF9BTkdMRSIvPgorICAgICAg
ICA8ZW51bSB2YWx1ZT0iMHgzNEQxIiBuYW1lPSJFR0xfVlVMS0FOX0dFVF9JTlNUQU5DRV9QUk9D
X0FERFIiLz4KKyAgICAgICAgPGVudW0gdmFsdWU9IjB4MzREMiIgbmFtZT0iRUdMX0NPTlRFWFRf
TUVUQUxfT1dORVJTSElQX0lERU5USVRZX0FOR0xFIi8+CisgICAgICAgIDxlbnVtIHZhbHVlPSIw
eDM0RDMiIG5hbWU9IkVHTF9WVUxLQU5fSU1BR0VfQU5HTEUiLz4KKyAgICAgICAgPGVudW0gdmFs
dWU9IjB4MzRENCIgbmFtZT0iRUdMX1ZVTEtBTl9JTUFHRV9DUkVBVEVfSU5GT19ISV9BTkdMRSIv
PgorICAgICAgICA8ZW51bSB2YWx1ZT0iMHgzNEQ1IiBuYW1lPSJFR0xfVlVMS0FOX0lNQUdFX0NS
RUFURV9JTkZPX0xPX0FOR0xFIi8+CisgICAgICAgIDxlbnVtIHZhbHVlPSIweDM0RDYiIG5hbWU9
IkVHTF9QTEFURk9STV9BTkdMRV9ERVZJQ0VfSURfSElHSF9BTkdMRSIvPgorICAgICAgICA8ZW51
bSB2YWx1ZT0iMHgzNEQ3IiBuYW1lPSJFR0xfUExBVEZPUk1fQU5HTEVfREVWSUNFX0lEX0xPV19B
TkdMRSIvPgorICAgIDwvZW51bXM+CisgICAgPGVudW1zIG5hbWVzcGFjZT0iRUdMIiB2ZW5kb3I9
IkFOR0xFIj4KKyAgICAgICAgPGVudW0gdmFsdWU9IjB4MDAwMSIgbmFtZT0iRUdMX0xPV19QT1dF
Ul9BTkdMRSIvPgorICAgICAgICA8ZW51bSB2YWx1ZT0iMHgwMDAyIiBuYW1lPSJFR0xfSElHSF9Q
T1dFUl9BTkdMRSIvPgorICAgICAgICA8ZW51bSB2YWx1ZT0iMHgwMDAxIiBuYW1lPSJFR0xfU1VS
RkFDRV9PUklFTlRBVElPTl9JTlZFUlRfWF9BTkdMRSIvPgorICAgICAgICA8ZW51bSB2YWx1ZT0i
MHgwMDAyIiBuYW1lPSJFR0xfU1VSRkFDRV9PUklFTlRBVElPTl9JTlZFUlRfWV9BTkdMRSIvPgor
ICAgIDwvZW51bXM+CiA8L3JlZ2lzdHJ5PgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkv
QU5HTEUvc2NyaXB0cy9nbC54bWwgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zY3JpcHRzL2ds
LnhtbAppbmRleCBiMTY4ZWE5NDE4MGM0NzgwN2E4MGExNDk0YzJiYTdkNDFhNzQ2MGE0Li44ZmJl
NjA3ZDgxNTNmMzcyYWY2YjdlMWJkYTBhMjkzYmRmYWUwODZmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9BTkdMRS9zY3JpcHRzL2dsLnhtbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9B
TkdMRS9zY3JpcHRzL2dsLnhtbApAQCAtMjI0Miw2ICsyMjQyLDE3IEBAIHR5cGVkZWYgdW5zaWdu
ZWQgaW50IEdMaGFuZGxlQVJCOwogICAgICAgICAgICAgPGVudW0gbmFtZT0iR0xfU01PT1RIIi8+
CiAgICAgICAgIDwvZ3JvdXA+CiAKKyAgICAgICAgPGdyb3VwIG5hbWU9IlNoYWRpbmdSYXRlIj4K
KyAgICAgICAgICAgIDxlbnVtIG5hbWU9IkdMX1NIQURJTkdfUkFURV9RQ09NIi8+CisgICAgICAg
ICAgICA8ZW51bSBuYW1lPSJHTF9TSEFESU5HX1JBVEVfUFJFU0VSVkVfQVNQRUNUX1JBVElPX1FD
T00iLz4KKyAgICAgICAgICAgIDxlbnVtIG5hbWU9IkdMX1NIQURJTkdfUkFURV8xWDFfUElYRUxT
X1FDT00iLz4KKyAgICAgICAgICAgIDxlbnVtIG5hbWU9IkdMX1NIQURJTkdfUkFURV8xWDJfUElY
RUxTX1FDT00iLz4KKyAgICAgICAgICAgIDxlbnVtIG5hbWU9IkdMX1NIQURJTkdfUkFURV8yWDFf
UElYRUxTX1FDT00iLz4KKyAgICAgICAgICAgIDxlbnVtIG5hbWU9IkdMX1NIQURJTkdfUkFURV8y
WDJfUElYRUxTX1FDT00iLz4KKyAgICAgICAgICAgIDxlbnVtIG5hbWU9IkdMX1NIQURJTkdfUkFU
RV80WDJfUElYRUxTX1FDT00iLz4KKyAgICAgICAgICAgIDxlbnVtIG5hbWU9IkdMX1NIQURJTkdf
UkFURV80WDRfUElYRUxTX1FDT00iLz4KKyAgICAgICAgPC9ncm91cD4KKwogICAgICAgICA8Z3Jv
dXAgbmFtZT0iU3RlbmNpbEZhY2VEaXJlY3Rpb24iPgogICAgICAgICAgICAgIDxlbnVtIG5hbWU9
IkdMX0ZST05UIi8+CiAgICAgICAgICAgICAgPGVudW0gbmFtZT0iR0xfQkFDSyIvPgpAQCAtMTAx
ODcsNyArMTAxOTgsMTcgQEAgdHlwZWRlZiB1bnNpZ25lZCBpbnQgR0xoYW5kbGVBUkI7CiAgICAg
PGVudW1zIG5hbWVzcGFjZT0iR0wiIHN0YXJ0PSIweDk2QTAiIGVuZD0iMHg5NkFGIiB2ZW5kb3I9
IlF1YWxjb21tIiBjb21tZW50PSJjb250YWN0IE1hdXJpY2UgUmliYmxlIj4KICAgICAgICAgICAg
IDx1bnVzZWQgc3RhcnQ9IjB4OTZBMCIgZW5kPSIweDk2QTEiIHZlbmRvcj0iUXVhbGNvbW0iLz4K
ICAgICAgICAgPGVudW0gdmFsdWU9IjB4OTZBMiIgbmFtZT0iR0xfRlJBTUVCVUZGRVJfRkVUQ0hf
Tk9OQ09IRVJFTlRfUUNPTSIvPgotICAgICAgICAgICAgPHVudXNlZCBzdGFydD0iMHg5NkEzIiBl
bmQ9IjB4OTZBRiIgdmVuZG9yPSJRdWFsY29tbSIvPgorICAgICAgICAgICAgPHVudXNlZCBzdGFy
dD0iMHg5NkEzIiBlbmQ9IjB4OTZBMyIgdmVuZG9yPSJRdWFsY29tbSIvPgorICAgICAgICA8ZW51
bSB2YWx1ZT0iMHg5NkE0IiBuYW1lPSJHTF9TSEFESU5HX1JBVEVfUUNPTSIvPgorICAgICAgICA8
ZW51bSB2YWx1ZT0iMHg5NkE1IiBuYW1lPSJHTF9TSEFESU5HX1JBVEVfUFJFU0VSVkVfQVNQRUNU
X1JBVElPX1FDT00iLz4KKyAgICAgICAgPGVudW0gdmFsdWU9IjB4OTZBNiIgbmFtZT0iR0xfU0hB
RElOR19SQVRFXzFYMV9QSVhFTFNfUUNPTSIvPgorICAgICAgICA8ZW51bSB2YWx1ZT0iMHg5NkE3
IiBuYW1lPSJHTF9TSEFESU5HX1JBVEVfMVgyX1BJWEVMU19RQ09NIi8+CisgICAgICAgIDxlbnVt
IHZhbHVlPSIweDk2QTgiIG5hbWU9IkdMX1NIQURJTkdfUkFURV8yWDFfUElYRUxTX1FDT00iLz4K
KyAgICAgICAgPGVudW0gdmFsdWU9IjB4OTZBOSIgbmFtZT0iR0xfU0hBRElOR19SQVRFXzJYMl9Q
SVhFTFNfUUNPTSIvPgorICAgICAgICA8ZW51bSB2YWx1ZT0iMHg5NkFDIiBuYW1lPSJHTF9TSEFE
SU5HX1JBVEVfNFgyX1BJWEVMU19RQ09NIi8+CisgICAgICAgICAgICA8dW51c2VkIHN0YXJ0PSIw
eDk2QUQiIGVuZD0iMHg5NkFEIiB2ZW5kb3I9IlF1YWxjb21tIi8+CisgICAgICAgIDxlbnVtIHZh
bHVlPSIweDk2QUUiIG5hbWU9IkdMX1NIQURJTkdfUkFURV80WDRfUElYRUxTX1FDT00iLz4KKyAg
ICAgICAgICAgIDx1bnVzZWQgc3RhcnQ9IjB4OTZBRiIgZW5kPSIweDk2QUYiIHZlbmRvcj0iUXVh
bGNvbW0iLz4KICAgICA8L2VudW1zPgogCiA8IS0tIEVudW1zIHJlc2VydmFibGUgZm9yIGZ1dHVy
ZSB1c2UuIFRvIHJlc2VydmUgYSBuZXcgcmFuZ2UsIGFsbG9jYXRlIG9uZQpAQCAtMjYyNDUsNiAr
MjYyNjYsMTAgQEAgdHlwZWRlZiB1bnNpZ25lZCBpbnQgR0xoYW5kbGVBUkI7CiAgICAgICAgICAg
ICA8cGFyYW0+PHB0eXBlPkdMdWludDwvcHR5cGU+IDxuYW1lPnN0b3JhZ2VCbG9ja0luZGV4PC9u
YW1lPjwvcGFyYW0+CiAgICAgICAgICAgICA8cGFyYW0+PHB0eXBlPkdMdWludDwvcHR5cGU+IDxu
YW1lPnN0b3JhZ2VCbG9ja0JpbmRpbmc8L25hbWU+PC9wYXJhbT4KICAgICAgICAgPC9jb21tYW5k
PgorICAgICAgICA8Y29tbWFuZD4KKyAgICAgICAgICAgIDxwcm90bz52b2lkIDxuYW1lPmdsU2hh
ZGluZ1JhdGVRQ09NPC9uYW1lPjwvcHJvdG8+CisgICAgICAgICAgICA8cGFyYW0gZ3JvdXA9IlNo
YWRpbmdSYXRlIj48cHR5cGU+R0xlbnVtPC9wdHlwZT4gPG5hbWU+cmF0ZTwvbmFtZT48L3BhcmFt
PgorICAgICAgICA8L2NvbW1hbmQ+CiAgICAgICAgIDxjb21tYW5kPgogICAgICAgICAgICAgPHBy
b3RvPnZvaWQgPG5hbWU+Z2xTaGFycGVuVGV4RnVuY1NHSVM8L25hbWU+PC9wcm90bz4KICAgICAg
ICAgICAgIDxwYXJhbSBncm91cD0iVGV4dHVyZVRhcmdldCI+PHB0eXBlPkdMZW51bTwvcHR5cGU+
IDxuYW1lPnRhcmdldDwvbmFtZT48L3BhcmFtPgpAQCAtNDkwOTAsNiArNDkxMTUsMTkgQEAgdHlw
ZWRlZiB1bnNpZ25lZCBpbnQgR0xoYW5kbGVBUkI7CiAgICAgICAgICAgICAgICAgPGVudW0gbmFt
ZT0iR0xfV1JJVEVPTkxZX1JFTkRFUklOR19RQ09NIi8+CiAgICAgICAgICAgICA8L3JlcXVpcmU+
CiAgICAgICAgIDwvZXh0ZW5zaW9uPgorICAgICAgICA8ZXh0ZW5zaW9uIG5hbWU9IkdMX1FDT01f
c2hhZGluZ19yYXRlIiBzdXBwb3J0ZWQ9ImdsZXMyIj4KKyAgICAgICAgICAgIDxyZXF1aXJlPgor
ICAgICAgICAgICAgICAgIDxlbnVtIG5hbWU9IkdMX1NIQURJTkdfUkFURV9RQ09NIi8+CisgICAg
ICAgICAgICAgICAgPGVudW0gbmFtZT0iR0xfU0hBRElOR19SQVRFX1BSRVNFUlZFX0FTUEVDVF9S
QVRJT19RQ09NIi8+CisgICAgICAgICAgICAgICAgPGVudW0gbmFtZT0iR0xfU0hBRElOR19SQVRF
XzFYMV9QSVhFTFNfUUNPTSIvPgorICAgICAgICAgICAgICAgIDxlbnVtIG5hbWU9IkdMX1NIQURJ
TkdfUkFURV8xWDJfUElYRUxTX1FDT00iLz4KKyAgICAgICAgICAgICAgICA8ZW51bSBuYW1lPSJH
TF9TSEFESU5HX1JBVEVfMlgxX1BJWEVMU19RQ09NIi8+CisgICAgICAgICAgICAgICAgPGVudW0g
bmFtZT0iR0xfU0hBRElOR19SQVRFXzJYMl9QSVhFTFNfUUNPTSIvPgorICAgICAgICAgICAgICAg
IDxlbnVtIG5hbWU9IkdMX1NIQURJTkdfUkFURV80WDJfUElYRUxTX1FDT00iLz4KKyAgICAgICAg
ICAgICAgICA8ZW51bSBuYW1lPSJHTF9TSEFESU5HX1JBVEVfNFg0X1BJWEVMU19RQ09NIi8+Cisg
ICAgICAgICAgICAgICAgPGNvbW1hbmQgbmFtZT0iZ2xTaGFkaW5nUmF0ZVFDT00iLz4KKyAgICAg
ICAgICAgIDwvcmVxdWlyZT4KKyAgICAgICAgPC9leHRlbnNpb24+CiAgICAgICAgIDxleHRlbnNp
b24gbmFtZT0iR0xfUkVORF9zY3JlZW5fY29vcmRpbmF0ZXMiIHN1cHBvcnRlZD0iZ2wiPgogICAg
ICAgICAgICAgPHJlcXVpcmU+CiAgICAgICAgICAgICAgICAgPGVudW0gbmFtZT0iR0xfU0NSRUVO
X0NPT1JESU5BVEVTX1JFTkQiLz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xF
L3NjcmlwdHMvZ2xfYW5nbGVfZXh0LnhtbCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3Njcmlw
dHMvZ2xfYW5nbGVfZXh0LnhtbAppbmRleCBjZDRlMGNmMDA2Nzc2OGIzZDQ3NDI1M2U5MmY0NjYz
YjJkOWNkNzk3Li5hZTA1YjQxNGE0ZDYyODcwMTE3N2VmOTJjMjMxMTNhODgzYjcwZTIyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zY3JpcHRzL2dsX2FuZ2xlX2V4dC54bWwK
KysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc2NyaXB0cy9nbF9hbmdsZV9leHQueG1sCkBA
IC04MTEsNiArODExLDcgQEAKICAgICAgICAgPGNvbW1hbmQ+CiAgICAgICAgICAgICA8cHJvdG8+
dm9pZCA8bmFtZT5nbFByb3Zva2luZ1ZlcnRleEFOR0xFPC9uYW1lPjwvcHJvdG8+CiAgICAgICAg
ICAgICA8cGFyYW0gZ3JvdXA9IlZlcnRleFByb3Zva2luZ01vZGUiPjxwdHlwZT5HTGVudW08L3B0
eXBlPiA8bmFtZT5tb2RlPC9uYW1lPjwvcGFyYW0+CisgICAgICAgICAgICA8YWxpYXMgbmFtZT0i
Z2xQcm92b2tpbmdWZXJ0ZXgiLz4KICAgICAgICAgPC9jb21tYW5kPgogICAgICAgICA8Y29tbWFu
ZD4KICAgICAgICAgICAgIDxwcm90bz52b2lkIDxuYW1lPmdsTG9zZUNvbnRleHRDSFJPTUlVTTwv
bmFtZT48L3Byb3RvPgpAQCAtMTAzOSw2ICsxMDQwLDEyIEBACiAgICAgICAgICAgICAgICAgPGNv
bW1hbmQgbmFtZT0iZ2xHZXRRdWVyeU9iamVjdHVpNjR2Um9idXN0QU5HTEUiLz4KICAgICAgICAg
ICAgIDwvcmVxdWlyZT4KICAgICAgICAgPC9leHRlbnNpb24+CisgICAgICAgIDxleHRlbnNpb24g
bmFtZT0iR0xfQU5HTEVfcm9idXN0X3Jlc291cmNlX2luaXRpYWxpemF0aW9uIiBzdXBwb3J0ZWQ9
J2dsZXMyJz4KKyAgICAgICAgICAgIDxyZXF1aXJlPgorICAgICAgICAgICAgICAgIDxlbnVtIG5h
bWU9IkdMX1JPQlVTVF9SRVNPVVJDRV9JTklUSUFMSVpBVElPTl9BTkdMRSIvPgorICAgICAgICAg
ICAgICAgIDxlbnVtIG5hbWU9IkdMX1JFU09VUkNFX0lOSVRJQUxJWkVEX0FOR0xFIi8+CisgICAg
ICAgICAgICA8L3JlcXVpcmU+CisgICAgICAgIDwvZXh0ZW5zaW9uPgogICAgICAgICA8ZXh0ZW5z
aW9uIG5hbWU9IkdMX0FOR0xFX2NvcHlfdGV4dHVyZV8zZCIgc3VwcG9ydGVkPSdnbGVzMic+CiAg
ICAgICAgICAgICA8cmVxdWlyZT4KICAgICAgICAgICAgICAgICA8Y29tbWFuZCBuYW1lPSJnbENv
cHlUZXh0dXJlM0RBTkdMRSIvPgpAQCAtMTE1Myw2ICsxMTYwLDEzIEBACiAgICAgPC9leHRlbnNp
b25zPgogCiAgICAgPCEtLSBTRUNUSU9OOiBHTCBlbnVtZXJhbnQgKHRva2VuKSBkZWZpbml0aW9u
cy4gLS0+CisgICAgPGVudW1zIG5hbWVzcGFjZT0iR0wiIHN0YXJ0PSIweDkzQTciIGVuZD0iMHg5
M0E3IiB2ZW5kb3I9IkFOR0xFIj4KKyAgICAgICAgPGVudW0gdmFsdWU9IjB4OTNBNyIgbmFtZT0i
R0xfUk9CVVNUX1JFU09VUkNFX0lOSVRJQUxJWkFUSU9OX0FOR0xFIi8+CisgICAgPC9lbnVtcz4K
KyAgICA8ZW51bXMgbmFtZXNwYWNlPSJHTCIgc3RhcnQ9IjB4OTY5RiIgZW5kPSIweDk2OUYiIHZl
bmRvcj0iQU5HTEUiPgorICAgICAgICA8ZW51bSB2YWx1ZT0iMHg5NjlGIiBuYW1lPSJHTF9SRVNP
VVJDRV9JTklUSUFMSVpFRF9BTkdMRSIvPgorICAgIDwvZW51bXM+CisKICAgICA8ZW51bXMgbmFt
ZXNwYWNlPSJHTCIgc3RhcnQ9IjB4OTNBRSIgZW5kPSIweDkzQUYiIHZlbmRvcj0iQU5HTEUiPgog
ICAgICAgICA8ZW51bSB2YWx1ZT0iMHg5M0FFIiBuYW1lPSJHTF9IQU5ETEVfVFlQRV9aSVJDT05f
Vk1PX0FOR0xFIi8+CiAgICAgICAgIDxlbnVtIHZhbHVlPSIweDkzQUYiIG5hbWU9IkdMX0hBTkRM
RV9UWVBFX1pJUkNPTl9FVkVOVF9BTkdMRSIvPgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvc2NyaXB0cy9yZWdpc3RyeV94bWwucHkgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdM
RS9zY3JpcHRzL3JlZ2lzdHJ5X3htbC5weQppbmRleCAzOGRkMWUxMmNiNTI0ZjA5Y2E5OGY4NThh
NjQyNTRkZDJlNzY5ZDE1Li5mZWU4Mzc3OTUzZDAyZjBmYjlkMDE2NjgyYTc5MDI0NzgzZjUxZmJj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zY3JpcHRzL3JlZ2lzdHJ5X3ht
bC5weQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zY3JpcHRzL3JlZ2lzdHJ5X3htbC5w
eQpAQCAtMTk4LDYgKzE5OCw3IEBAIGdsZXNfcmVxdWVzdGFibGVfZXh0ZW5zaW9ucyA9IFsKICAg
ICAiR0xfT0VTX3ZlcnRleF90eXBlXzEwXzEwXzEwXzIiLAogICAgICJHTF9PVlJfbXVsdGl2aWV3
IiwKICAgICAiR0xfT1ZSX211bHRpdmlldzIiLAorICAgICJHTF9RQ09NX3NoYWRpbmdfcmF0ZSIs
CiAgICAgIkdMX1dFQkdMX3ZpZGVvX3RleHR1cmUiLAogXQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9BTkdMRS9zY3JpcHRzL3JvbGxfYW9zcC5zaCBiL1NvdXJjZS9UaGlyZFBhcnR5
L0FOR0xFL3NjcmlwdHMvcm9sbF9hb3NwLnNoCmluZGV4IDBhNzM5MzMxYWFjNDc4M2E2YWQ1NTEw
ZjEzNGVjOGMzNTc1N2Y4YzUuLjg3MmVkYzZhZjQ5YzE1Njk2YmU4OTAyOWRkMzBkNDUwNGE3MDBm
ODUgMTAwNzU1Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NjcmlwdHMvcm9sbF9hb3Nw
LnNoCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NjcmlwdHMvcm9sbF9hb3NwLnNoCkBA
IC0xMTEsNiArMTExLDcgQEAgZ2l0IGNsb25lIGh0dHBzOi8vY2hyb21pdW0uZ29vZ2xlc291cmNl
LmNvbS9jaHJvbWl1bS90b29scy9kZXBvdF90b29scy5naXQgJHtERVAKIGV4cG9ydCBQQVRIPWBw
d2RgLyR7REVQT1RfVE9PTFNfRElSfTokUEFUSAogCiB0aGlyZF9wYXJ0eV9kZXBzPSgKKyAgICAi
YnVpbGQiCiAgICAgInRoaXJkX3BhcnR5L2Fic2VpbC1jcHAiCiAgICAgInRoaXJkX3BhcnR5L3Z1
bGthbi1kZXBzL2dsc2xhbmcvc3JjIgogICAgICJ0aGlyZF9wYXJ0eS92dWxrYW4tZGVwcy9zcGly
di1oZWFkZXJzL3NyYyIKQEAgLTE1NywxNSArMTU4LDYgQEAgZm9yIGRlcCBpbiAiJHt0aGlyZF9w
YXJ0eV9kZXBzW0BdfSI7IGRvCiBkb25lCiAKIGV4dHJhX3JlbW92YWxfZmlsZXM9KAotICAgIyBT
b21lIHRoaXJkX3BhcnR5IGRlcHMgaGF2ZSBPV05FUlMgZmlsZXMgd2hpY2ggY29udGFpbnMgdXNl
cnMgdGhhdCBoYXZlIG5vdCBsb2dnZWQgaW50bwotICAgIyB0aGUgQW5kcm9pZCBnZXJyaXQuIFJl
cG8gY2Fubm90IHVwbG9hZCB3aXRoIHRoZXNlIGZpbGVzIHByZXNlbnQuCi0gICAidGhpcmRfcGFy
dHkvYWJzZWlsLWNwcC9PV05FUlMiCi0gICAidGhpcmRfcGFydHkvdnVsa2FuX21lbW9yeV9hbGxv
Y2F0b3IvT1dORVJTIgotICAgInRoaXJkX3BhcnR5L3psaWIvT1dORVJTIgotICAgInRoaXJkX3Bh
cnR5L3psaWIvZ29vZ2xlL09XTkVSUyIKLSAgICJ0aGlyZF9wYXJ0eS96bGliL2NvbnRyaWIvdGVz
dHMvT1dORVJTIgotICAgInRoaXJkX3BhcnR5L3psaWIvY29udHJpYi9iZW5jaC9PV05FUlMiCi0g
ICAidGhpcmRfcGFydHkvemxpYi9jb250cmliL3Rlc3RzL2Z1enplcnMvT1dORVJTIgogICAgIyBS
ZW1vdmUgQW5kcm9pZC5tayBmaWxlcyB0byBwcmV2ZW50IGF1dG9tYXRlZCBDTHM6CiAgICAjICAg
IltMU0NdIEFkZCBMT0NBTF9MSUNFTlNFX0tJTkRTIHRvIGV4dGVybmFsL2FuZ2xlIgogICAgIkFu
ZHJvaWQubWsiCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zY3JpcHRzL3J1
bl9jb2RlX2dlbmVyYXRpb24ucHkgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zY3JpcHRzL3J1
bl9jb2RlX2dlbmVyYXRpb24ucHkKaW5kZXggZmExYTAyOWI1ZWU2MDM0Y2M3NGY3MTQzOGU1ZDIx
ZDE0OGZiMDllOC4uYjNkZjQwYjIyMzU5Zjk4ZTNhOGZkOWI3MDI5M2YzYjc3NGIzNjYzZiAxMDA3
NTUKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc2NyaXB0cy9ydW5fY29kZV9nZW5lcmF0
aW9uLnB5CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NjcmlwdHMvcnVuX2NvZGVfZ2Vu
ZXJhdGlvbi5weQpAQCAtODAsNiArODAsOCBAQCBkZWYgYXV0b19zY3JpcHQoc2NyaXB0KToKIAog
CiBnZW5lcmF0b3JzID0geworICAgICdBTkdMRSBmZWF0dXJlcyc6CisgICAgICAgICdpbmNsdWRl
L3BsYXRmb3JtL2dlbl9mZWF0dXJlcy5weScsCiAgICAgJ0FOR0xFIGZvcm1hdCc6CiAgICAgICAg
ICdzcmMvbGliQU5HTEUvcmVuZGVyZXIvZ2VuX2FuZ2xlX2Zvcm1hdF90YWJsZS5weScsCiAgICAg
J0FOR0xFIGxvYWQgZnVuY3Rpb25zIHRhYmxlJzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBh
cnR5L0FOR0xFL3NjcmlwdHMvcnVuX2d0ZXN0X2FuZ2xlX3Rlc3QucHkgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9BTkdMRS9zY3JpcHRzL3J1bl9ndGVzdF9hbmdsZV90ZXN0LnB5CmluZGV4IGYwYjA2MmUy
YTMzNGYzMDE5MzMzNDdkYThjNzI2M2Q2MTNlNGFmNDQuLjA1N2QzYjc5YWYyMzNmYThkYWRjYzIz
MzgzMWMzMWMwM2RiZTJkMzQgMTAwNzU1Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3Nj
cmlwdHMvcnVuX2d0ZXN0X2FuZ2xlX3Rlc3QucHkKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5H
TEUvc2NyaXB0cy9ydW5fZ3Rlc3RfYW5nbGVfdGVzdC5weQpAQCAtMjYsMjIgKzI2LDE5IEBAIHJ1
bl9wZXJmb3JtYW5jZV90ZXN0LnB5LgogaW1wb3J0IGFyZ3BhcnNlCiBpbXBvcnQganNvbgogaW1w
b3J0IG9zCitpbXBvcnQgcGF0aGxpYgogaW1wb3J0IHNodXRpbAogaW1wb3J0IHN5cwogaW1wb3J0
IHRlbXBmaWxlCiBpbXBvcnQgdHJhY2ViYWNrCiAKLSMgQWRkIC8vc3JjL3Rlc3RpbmcgaW50byBz
eXMucGF0aCBmb3IgaW1wb3J0aW5nIHh2ZmIgYW5kIHRlc3RfZW52LCBhbmQKLSMgLy9zcmMvdGVz
dGluZy9zY3JpcHRzIGZvciBpbXBvcnRpbmcgY29tbW9uLgotZCA9IG9zLnBhdGguZGlybmFtZQot
VEhJU19ESVIgPSBkKG9zLnBhdGguYWJzcGF0aChfX2ZpbGVfXykpCi1BTkdMRV9TUkNfRElSID0g
ZChUSElTX0RJUikKLXN5cy5wYXRoLmluc2VydCgwLCBvcy5wYXRoLmpvaW4oQU5HTEVfU1JDX0RJ
UiwgJ3Rlc3RpbmcnKSkKLXN5cy5wYXRoLmluc2VydCgwLCBvcy5wYXRoLmpvaW4oQU5HTEVfU1JD
X0RJUiwgJ3Rlc3RpbmcnLCAnc2NyaXB0cycpKQotQ0hST01JVU1fU1JDX0RJUiA9IGQoZChBTkdM
RV9TUkNfRElSKSkKLXN5cy5wYXRoLmluc2VydCgwLCBvcy5wYXRoLmpvaW4oQ0hST01JVU1fU1JD
X0RJUiwgJ3Rlc3RpbmcnKSkKLXN5cy5wYXRoLmluc2VydCgwLCBvcy5wYXRoLmpvaW4oQ0hST01J
VU1fU1JDX0RJUiwgJ3Rlc3RpbmcnLCAnc2NyaXB0cycpKQogCitQWV9VVElMUyA9IHN0cihwYXRo
bGliLlBhdGgoX19maWxlX18pLnJlc29sdmUoKS5wYXJlbnRzWzFdIC8gJ3NyYycgLyAndGVzdHMn
IC8gJ3B5X3V0aWxzJykKK2lmIFBZX1VUSUxTIG5vdCBpbiBzeXMucGF0aDoKKyAgICBvcy5zdGF0
KFBZX1VUSUxTKSBhbmQgc3lzLnBhdGguaW5zZXJ0KDAsIFBZX1VUSUxTKQoraW1wb3J0IGFuZ2xl
X3BhdGhfdXRpbAorCithbmdsZV9wYXRoX3V0aWwuQWRkRGVwc0RpclRvUGF0aCgndGVzdGluZy9z
Y3JpcHRzJykKIGltcG9ydCBjb21tb24KIGltcG9ydCB4dmZiCiBpbXBvcnQgdGVzdF9lbnYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9hbmdsZV9jb21taXQuaCBiL1Nv
dXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9hbmdsZV9jb21taXQuaAppbmRleCBhZjMxYjc2NTBm
ZTQ2N2VjOGNhNTMwY2JlZDllMGRmNWJhYmYyYWNmLi42ZDdkZTQ4YjFmY2IzZjk0YTUxMzY0M2Qy
OGY3ZGFkMWQ1ZWFmMzY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMv
YW5nbGVfY29tbWl0LmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2FuZ2xlX2Nv
bW1pdC5oCkBAIC0xLDQgKzEsNCBAQAotI2RlZmluZSBBTkdMRV9DT01NSVRfSEFTSCAiZmUyOGE0
Mjk1YWYwIgorI2RlZmluZSBBTkdMRV9DT01NSVRfSEFTSCAiN2NhMTEyODdhMDU2IgogI2RlZmlu
ZSBBTkdMRV9DT01NSVRfSEFTSF9TSVpFIDEyCi0jZGVmaW5lIEFOR0xFX0NPTU1JVF9EQVRFICIy
MDIyLTAzLTMxIDIzOjEwOjU2ICswMDAwIgotI2RlZmluZSBBTkdMRV9DT01NSVRfUE9TSVRJT04g
MTgyNDgKKyNkZWZpbmUgQU5HTEVfQ09NTUlUX0RBVEUgIjIwMjItMDQtMjYgMTA6MzY6NTUgKzAw
MDAiCisjZGVmaW5lIEFOR0xFX0NPTU1JVF9QT1NJVElPTiAxODQ1NgpkaWZmIC0tZ2l0IGEvU291
cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2NvbW1vbi9GYXN0VmVjdG9yLmggYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9BTkdMRS9zcmMvY29tbW9uL0Zhc3RWZWN0b3IuaAppbmRleCAxYjdkYjUwYTY5NDQ4
YzczZDI1ZjVhNmM0OWQ5NmM3ODc3ZDZlMjE5Li5mYWE4ZTQ5OWM1MGJjNGMxMzY0ZmRkZGQzZGM0
NjhhYzJlNjUxNzQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvY29t
bW9uL0Zhc3RWZWN0b3IuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvY29tbW9u
L0Zhc3RWZWN0b3IuaApAQCAtNDQ4LDYgKzQ0OCw0NSBAQCB2b2lkIEZhc3RWZWN0b3I8VCwgTiwg
U3RvcmFnZT46OmVuc3VyZV9jYXBhY2l0eShzaXplX3QgY2FwYWNpdHkpCiAgICAgfQogfQogCit0
ZW1wbGF0ZSA8Y2xhc3MgVmFsdWUsIHNpemVfdCBOPgorY2xhc3MgRmFzdE1hcCBmaW5hbAorewor
ICBwdWJsaWM6CisgICAgRmFzdE1hcCgpIHt9CisgICAgfkZhc3RNYXAoKSB7fQorCisgICAgVmFs
dWUgJm9wZXJhdG9yW10odWludDMyX3Qga2V5KQorICAgIHsKKyAgICAgICAgaWYgKG1EYXRhLnNp
emUoKSA8PSBrZXkpCisgICAgICAgIHsKKyAgICAgICAgICAgIG1EYXRhLnJlc2l6ZShrZXkgKyAx
LCB7fSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG1EYXRhW2tleV07CisgICAgfQorCisg
ICAgY29uc3QgVmFsdWUgJm9wZXJhdG9yW10odWludDMyX3Qga2V5KSBjb25zdAorICAgIHsKKyAg
ICAgICAgQVNTRVJUKGtleSA8IG1EYXRhLnNpemUoKSk7CisgICAgICAgIHJldHVybiBtRGF0YVtr
ZXldOworICAgIH0KKworICAgIHZvaWQgY2xlYXIoKSB7IG1EYXRhLmNsZWFyKCk7IH0KKworICAg
IGJvb2wgZW1wdHkoKSBjb25zdCB7IHJldHVybiBtRGF0YS5lbXB0eSgpOyB9CisgICAgc2l6ZV90
IHNpemUoKSBjb25zdCB7IHJldHVybiBtRGF0YS5zaXplKCk7IH0KKworICAgIGNvbnN0IFZhbHVl
ICpkYXRhKCkgY29uc3QgeyByZXR1cm4gbURhdGEuZGF0YSgpOyB9CisKKyAgICBib29sIG9wZXJh
dG9yPT0oY29uc3QgRmFzdE1hcDxWYWx1ZSwgTj4gJm90aGVyKSBjb25zdAorICAgIHsKKyAgICAg
ICAgcmV0dXJuIChzaXplKCkgPT0gb3RoZXIuc2l6ZSgpKSAmJgorICAgICAgICAgICAgICAgKG1l
bWNtcChkYXRhKCksIG90aGVyLmRhdGEoKSwgc2l6ZSgpICogc2l6ZW9mKFZhbHVlKSkgPT0gMCk7
CisgICAgfQorCisgIHByaXZhdGU6CisgICAgRmFzdFZlY3RvcjxWYWx1ZSwgTj4gbURhdGE7Cit9
OworCiB0ZW1wbGF0ZSA8Y2xhc3MgS2V5LCBjbGFzcyBWYWx1ZSwgc2l6ZV90IE4+CiBjbGFzcyBG
bGF0VW5vcmRlcmVkTWFwIGZpbmFsCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9B
TkdMRS9zcmMvY29tbW9uL0Zhc3RWZWN0b3JfdW5pdHRlc3QuY3BwIGIvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvc3JjL2NvbW1vbi9GYXN0VmVjdG9yX3VuaXR0ZXN0LmNwcAppbmRleCBmNzc0YmMx
YTNkMTIwMDBlZGFiOGRiMjIxNDQyMjgwNzA1Y2M0MjI2Li4zMzA2OGY2YzUzMDA4NzQ5ZmUwZDgx
YjQ1OTg5YTUxOWJlZGIzMGJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9z
cmMvY29tbW9uL0Zhc3RWZWN0b3JfdW5pdHRlc3QuY3BwCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L0FOR0xFL3NyYy9jb21tb24vRmFzdFZlY3Rvcl91bml0dGVzdC5jcHAKQEAgLTM4NCw0ICszODQs
MjcgQEAgVEVTVChGYXN0SW50ZWdlck1hcCwgQmFzaWNVc2FnZSkKICAgICBFWFBFQ1RfVFJVRSh0
ZXN0TWFwLmVtcHR5KCkpOwogICAgIEVYUEVDVF9FUSh0ZXN0TWFwLnNpemUoKSwgMHUpOwogfQor
CisvLyBCYXNpYyB1c2FnZSB0ZXN0cyBvZiBmYXN0IG1hcC4KK1RFU1QoRmFzdE1hcCwgQmFzaWMp
Cit7CisgICAgRmFzdE1hcDxpbnQsIDU+IHRlc3RNYXA7CisgICAgRVhQRUNUX1RSVUUodGVzdE1h
cC5lbXB0eSgpKTsKKworICAgIHRlc3RNYXBbNV0gPSA1OworICAgIEVYUEVDVF9GQUxTRSh0ZXN0
TWFwLmVtcHR5KCkpOworCisgICAgdGVzdE1hcC5jbGVhcigpOworICAgIEVYUEVDVF9UUlVFKHRl
c3RNYXAuZW1wdHkoKSk7CisKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IDEwOyArK2kpCisgICAg
eworICAgICAgICB0ZXN0TWFwW2ldID0gaTsKKyAgICB9CisKKyAgICBmb3IgKGludCBpID0gMDsg
aSA8IDEwOyArK2kpCisgICAgeworICAgICAgICBFWFBFQ1RfVFJVRSh0ZXN0TWFwW2ldID09IGkp
OworICAgIH0KK30KIH0gIC8vIG5hbWVzcGFjZSBhbmdsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvQU5HTEUvc3JjL2NvbW1vbi9QYWNrZWRHTEVudW1zX2F1dG9nZW4uY3BwIGIvU291
cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2NvbW1vbi9QYWNrZWRHTEVudW1zX2F1dG9nZW4uY3Bw
CmluZGV4IDg4M2Y2OWNmZWUyYjQzYzliMTE3YjUxOGVjODI4NDMxMjg3NWNjZjAuLjk5NzA5YzAy
OTQ3ZDA5MDRiMjg5NDMzMmQwZDc1NDdiOTdhZjk2NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGly
ZFBhcnR5L0FOR0xFL3NyYy9jb21tb24vUGFja2VkR0xFbnVtc19hdXRvZ2VuLmNwcAorKysgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvY29tbW9uL1BhY2tlZEdMRW51bXNfYXV0b2dlbi5j
cHAKQEAgLTE1MDMsNiArMTUwMyw3OSBAQCBzdGQ6Om9zdHJlYW0gJm9wZXJhdG9yPDwoc3RkOjpv
c3RyZWFtICZvcywgU2hhZGluZ01vZGVsIHZhbHVlKQogICAgIHJldHVybiBvczsKIH0KIAordGVt
cGxhdGUgPD4KK1NoYWRpbmdSYXRlIEZyb21HTGVudW08U2hhZGluZ1JhdGU+KEdMZW51bSBmcm9t
KQoreworICAgIHN3aXRjaCAoZnJvbSkKKyAgICB7CisgICAgICAgIGNhc2UgR0xfU0hBRElOR19S
QVRFXzFYMV9QSVhFTFNfUUNPTToKKyAgICAgICAgICAgIHJldHVybiBTaGFkaW5nUmF0ZTo6XzF4
MTsKKyAgICAgICAgY2FzZSBHTF9TSEFESU5HX1JBVEVfMVgyX1BJWEVMU19RQ09NOgorICAgICAg
ICAgICAgcmV0dXJuIFNoYWRpbmdSYXRlOjpfMXgyOworICAgICAgICBjYXNlIEdMX1NIQURJTkdf
UkFURV8yWDFfUElYRUxTX1FDT006CisgICAgICAgICAgICByZXR1cm4gU2hhZGluZ1JhdGU6Ol8y
eDE7CisgICAgICAgIGNhc2UgR0xfU0hBRElOR19SQVRFXzJYMl9QSVhFTFNfUUNPTToKKyAgICAg
ICAgICAgIHJldHVybiBTaGFkaW5nUmF0ZTo6XzJ4MjsKKyAgICAgICAgY2FzZSBHTF9TSEFESU5H
X1JBVEVfNFgyX1BJWEVMU19RQ09NOgorICAgICAgICAgICAgcmV0dXJuIFNoYWRpbmdSYXRlOjpf
NHgyOworICAgICAgICBjYXNlIEdMX1NIQURJTkdfUkFURV80WDRfUElYRUxTX1FDT006CisgICAg
ICAgICAgICByZXR1cm4gU2hhZGluZ1JhdGU6Ol80eDQ7CisgICAgICAgIGRlZmF1bHQ6CisgICAg
ICAgICAgICByZXR1cm4gU2hhZGluZ1JhdGU6OkludmFsaWRFbnVtOworICAgIH0KK30KKworR0xl
bnVtIFRvR0xlbnVtKFNoYWRpbmdSYXRlIGZyb20pCit7CisgICAgc3dpdGNoIChmcm9tKQorICAg
IHsKKyAgICAgICAgY2FzZSBTaGFkaW5nUmF0ZTo6XzF4MToKKyAgICAgICAgICAgIHJldHVybiBH
TF9TSEFESU5HX1JBVEVfMVgxX1BJWEVMU19RQ09NOworICAgICAgICBjYXNlIFNoYWRpbmdSYXRl
OjpfMXgyOgorICAgICAgICAgICAgcmV0dXJuIEdMX1NIQURJTkdfUkFURV8xWDJfUElYRUxTX1FD
T007CisgICAgICAgIGNhc2UgU2hhZGluZ1JhdGU6Ol8yeDE6CisgICAgICAgICAgICByZXR1cm4g
R0xfU0hBRElOR19SQVRFXzJYMV9QSVhFTFNfUUNPTTsKKyAgICAgICAgY2FzZSBTaGFkaW5nUmF0
ZTo6XzJ4MjoKKyAgICAgICAgICAgIHJldHVybiBHTF9TSEFESU5HX1JBVEVfMlgyX1BJWEVMU19R
Q09NOworICAgICAgICBjYXNlIFNoYWRpbmdSYXRlOjpfNHgyOgorICAgICAgICAgICAgcmV0dXJu
IEdMX1NIQURJTkdfUkFURV80WDJfUElYRUxTX1FDT007CisgICAgICAgIGNhc2UgU2hhZGluZ1Jh
dGU6Ol80eDQ6CisgICAgICAgICAgICByZXR1cm4gR0xfU0hBRElOR19SQVRFXzRYNF9QSVhFTFNf
UUNPTTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIFVOUkVBQ0hBQkxFKCk7CisgICAg
ICAgICAgICByZXR1cm4gMDsKKyAgICB9Cit9CisKK3N0ZDo6b3N0cmVhbSAmb3BlcmF0b3I8PChz
dGQ6Om9zdHJlYW0gJm9zLCBTaGFkaW5nUmF0ZSB2YWx1ZSkKK3sKKyAgICBzd2l0Y2ggKHZhbHVl
KQorICAgIHsKKyAgICAgICAgY2FzZSBTaGFkaW5nUmF0ZTo6XzF4MToKKyAgICAgICAgICAgIG9z
IDw8ICJHTF9TSEFESU5HX1JBVEVfMVgxX1BJWEVMU19RQ09NIjsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIFNoYWRpbmdSYXRlOjpfMXgyOgorICAgICAgICAgICAgb3MgPDwgIkdM
X1NIQURJTkdfUkFURV8xWDJfUElYRUxTX1FDT00iOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgU2hhZGluZ1JhdGU6Ol8yeDE6CisgICAgICAgICAgICBvcyA8PCAiR0xfU0hBRElO
R19SQVRFXzJYMV9QSVhFTFNfUUNPTSI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSBTaGFkaW5nUmF0ZTo6XzJ4MjoKKyAgICAgICAgICAgIG9zIDw8ICJHTF9TSEFESU5HX1JBVEVf
MlgyX1BJWEVMU19RQ09NIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFNoYWRp
bmdSYXRlOjpfNHgyOgorICAgICAgICAgICAgb3MgPDwgIkdMX1NIQURJTkdfUkFURV80WDJfUElY
RUxTX1FDT00iOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgU2hhZGluZ1JhdGU6
Ol80eDQ6CisgICAgICAgICAgICBvcyA8PCAiR0xfU0hBRElOR19SQVRFXzRYNF9QSVhFTFNfUUNP
TSI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIG9z
IDw8ICJHTF9JTlZBTElEX0VOVU0iOworICAgICAgICAgICAgYnJlYWs7CisgICAgfQorICAgIHJl
dHVybiBvczsKK30KKwogdGVtcGxhdGUgPD4KIFRleHR1cmVDb21iaW5lIEZyb21HTGVudW08VGV4
dHVyZUNvbWJpbmU+KEdMZW51bSBmcm9tKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvc3JjL2NvbW1vbi9QYWNrZWRHTEVudW1zX2F1dG9nZW4uaCBiL1NvdXJjZS9UaGly
ZFBhcnR5L0FOR0xFL3NyYy9jb21tb24vUGFja2VkR0xFbnVtc19hdXRvZ2VuLmgKaW5kZXggZWI0
OGM1M2ExNDkwM2ZjYTkzYmI0YTFiYzQ3NzA2OTgyZTAzNDBmNC4uN2Q3ZDk2YWJjN2U2ZTFiOGM4
MmJlNDg2MzY3MTE5ZmE1N2FlMDgxNSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5H
TEUvc3JjL2NvbW1vbi9QYWNrZWRHTEVudW1zX2F1dG9nZW4uaAorKysgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9BTkdMRS9zcmMvY29tbW9uL1BhY2tlZEdMRW51bXNfYXV0b2dlbi5oCkBAIC0zODcsNiAr
Mzg3LDI0IEBAIFNoYWRpbmdNb2RlbCBGcm9tR0xlbnVtPFNoYWRpbmdNb2RlbD4oR0xlbnVtIGZy
b20pOwogR0xlbnVtIFRvR0xlbnVtKFNoYWRpbmdNb2RlbCBmcm9tKTsKIHN0ZDo6b3N0cmVhbSAm
b3BlcmF0b3I8PChzdGQ6Om9zdHJlYW0gJm9zLCBTaGFkaW5nTW9kZWwgdmFsdWUpOwogCitlbnVt
IGNsYXNzIFNoYWRpbmdSYXRlIDogdWludDhfdAoreworICAgIF8xeDEgPSAwLAorICAgIF8xeDIg
PSAxLAorICAgIF8yeDEgPSAyLAorICAgIF8yeDIgPSAzLAorICAgIF80eDIgPSA0LAorICAgIF80
eDQgPSA1LAorCisgICAgSW52YWxpZEVudW0gPSA2LAorICAgIEVudW1Db3VudCAgID0gNiwKK307
CisKK3RlbXBsYXRlIDw+CitTaGFkaW5nUmF0ZSBGcm9tR0xlbnVtPFNoYWRpbmdSYXRlPihHTGVu
dW0gZnJvbSk7CitHTGVudW0gVG9HTGVudW0oU2hhZGluZ1JhdGUgZnJvbSk7CitzdGQ6Om9zdHJl
YW0gJm9wZXJhdG9yPDwoc3RkOjpvc3RyZWFtICZvcywgU2hhZGluZ1JhdGUgdmFsdWUpOworCiBl
bnVtIGNsYXNzIFRleHR1cmVDb21iaW5lIDogdWludDhfdAogewogICAgIEFkZCAgICAgICAgID0g
MCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9jb21tb24vYW5nbGV1
dGlscy5oIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2NvbW1vbi9hbmdsZXV0aWxzLmgK
aW5kZXggMWZkYjBmZmE3MjAzNWZlZjA1M2IzMzMwZWU2OTc1NTE3N2UwODJkMC4uNjg5ZjRmMDZj
MDYzMTFkODg4MWY4N2U1N2IyYTgyNDgwNjEyM2M5NCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJk
UGFydHkvQU5HTEUvc3JjL2NvbW1vbi9hbmdsZXV0aWxzLmgKKysrIGIvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvc3JjL2NvbW1vbi9hbmdsZXV0aWxzLmgKQEAgLTEzMCw1MyArMTMwLDU3IEBAIHN0
cnVjdCBQZXJmTW9uaXRvclRyaXBsZXQKICAgICB1aW50MzJfdCB2YWx1ZTsKIH07CiAKLSNkZWZp
bmUgQU5HTEVfVktfUEVSRl9DT1VOVEVSU19YKEZOKSAgICAgICAgICAgICAgXAotICAgIEZOKHBy
aW1hcnlCdWZmZXJzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgRk4ocmVuZGVy
UGFzc2VzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBGTihzdWJtaXR0ZWRG
cmFtZXMpICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIEZOKHdyaXRlRGVzY3JpcHRv
clNldHMpICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgRk4oZmx1c2hlZE91dHNpZGVSZW5k
ZXJQYXNzQ29tbWFuZEJ1ZmZlcnMpICAgIFwKLSAgICBGTihyZXNvbHZlSW1hZ2VDb21tYW5kcykg
ICAgICAgICAgICAgICAgICAgICAgXAotICAgIEZOKGNvbG9yTG9hZE9wQ2xlYXJzKSAgICAgICAg
ICAgICAgICAgICAgICAgICBcCi0gICAgRk4oY29sb3JMb2FkT3BMb2FkcykgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKLSAgICBGTihjb2xvckxvYWRPcE5vbmVzKSAgICAgICAgICAgICAgICAg
ICAgICAgICAgXAotICAgIEZOKGNvbG9yU3RvcmVPcFN0b3JlcykgICAgICAgICAgICAgICAgICAg
ICAgICBcCi0gICAgRk4oY29sb3JTdG9yZU9wTm9uZXMpICAgICAgICAgICAgICAgICAgICAgICAg
IFwKLSAgICBGTihjb2xvckNsZWFyQXR0YWNobWVudHMpICAgICAgICAgICAgICAgICAgICAgXAot
ICAgIEZOKGRlcHRoTG9hZE9wQ2xlYXJzKSAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAg
Rk4oZGVwdGhMb2FkT3BMb2FkcykgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBGTihk
ZXB0aExvYWRPcE5vbmVzKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIEZOKGRlcHRo
U3RvcmVPcFN0b3JlcykgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgRk4oZGVwdGhTdG9y
ZU9wTm9uZXMpICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBGTihkZXB0aENsZWFyQXR0
YWNobWVudHMpICAgICAgICAgICAgICAgICAgICAgXAotICAgIEZOKHN0ZW5jaWxMb2FkT3BDbGVh
cnMpICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgRk4oc3RlbmNpbExvYWRPcExvYWRzKSAg
ICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBGTihzdGVuY2lsTG9hZE9wTm9uZXMpICAgICAg
ICAgICAgICAgICAgICAgICAgXAotICAgIEZOKHN0ZW5jaWxTdG9yZU9wU3RvcmVzKSAgICAgICAg
ICAgICAgICAgICAgICBcCi0gICAgRk4oc3RlbmNpbFN0b3JlT3BOb25lcykgICAgICAgICAgICAg
ICAgICAgICAgIFwKLSAgICBGTihzdGVuY2lsQ2xlYXJBdHRhY2htZW50cykgICAgICAgICAgICAg
ICAgICAgXAotICAgIEZOKGNvbG9yQXR0YWNobWVudFVucmVzb2x2ZXMpICAgICAgICAgICAgICAg
ICBcCi0gICAgRk4oZGVwdGhBdHRhY2htZW50VW5yZXNvbHZlcykgICAgICAgICAgICAgICAgIFwK
LSAgICBGTihzdGVuY2lsQXR0YWNobWVudFVucmVzb2x2ZXMpICAgICAgICAgICAgICAgXAotICAg
IEZOKGNvbG9yQXR0YWNobWVudFJlc29sdmVzKSAgICAgICAgICAgICAgICAgICBcCi0gICAgRk4o
ZGVwdGhBdHRhY2htZW50UmVzb2x2ZXMpICAgICAgICAgICAgICAgICAgIFwKLSAgICBGTihzdGVu
Y2lsQXR0YWNobWVudFJlc29sdmVzKSAgICAgICAgICAgICAgICAgXAotICAgIEZOKHJlYWRPbmx5
RGVwdGhTdGVuY2lsUmVuZGVyUGFzc2VzKSAgICAgICAgICBcCi0gICAgRk4oZGVzY3JpcHRvclNl
dEFsbG9jYXRpb25zKSAgICAgICAgICAgICAgICAgIFwKLSAgICBGTihkZXNjcmlwdG9yU2V0Q2Fj
aGVUb3RhbFNpemUpICAgICAgICAgICAgICAgXAotICAgIEZOKGRlc2NyaXB0b3JTZXRDYWNoZUtl
eVNpemVCeXRlcykgICAgICAgICAgICBcCi0gICAgRk4odW5pZm9ybXNBbmRYZmJEZXNjcmlwdG9y
U2V0Q2FjaGVIaXRzKSAgICAgIFwKLSAgICBGTih1bmlmb3Jtc0FuZFhmYkRlc2NyaXB0b3JTZXRD
YWNoZU1pc3NlcykgICAgXAotICAgIEZOKHVuaWZvcm1zQW5kWGZiRGVzY3JpcHRvclNldENhY2hl
VG90YWxTaXplKSBcCi0gICAgRk4odGV4dHVyZURlc2NyaXB0b3JTZXRDYWNoZUhpdHMpICAgICAg
ICAgICAgIFwKLSAgICBGTih0ZXh0dXJlRGVzY3JpcHRvclNldENhY2hlTWlzc2VzKSAgICAgICAg
ICAgXAotICAgIEZOKHRleHR1cmVEZXNjcmlwdG9yU2V0Q2FjaGVUb3RhbFNpemUpICAgICAgICBc
Ci0gICAgRk4oc2hhZGVyQnVmZmVyc0Rlc2NyaXB0b3JTZXRDYWNoZUhpdHMpICAgICAgIFwKLSAg
ICBGTihzaGFkZXJCdWZmZXJzRGVzY3JpcHRvclNldENhY2hlTWlzc2VzKSAgICAgXAotICAgIEZO
KHNoYWRlckJ1ZmZlcnNEZXNjcmlwdG9yU2V0Q2FjaGVUb3RhbFNpemUpICBcCi0gICAgRk4oYnVm
ZmVyc0dob3N0ZWQpICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBGTih2ZXJ0ZXhB
cnJheVN5bmNTdGF0ZUNhbGxzKSAgICAgICAgICAgICAgICAgXAotICAgIEZOKGFsbG9jYXRlTmV3
QnVmZmVyQmxvY2tDYWxscykgICAgICAgICAgICAgICBcCisjZGVmaW5lIEFOR0xFX1ZLX1BFUkZf
Q09VTlRFUlNfWChGTikgICAgICAgICAgICAgICBcCisgICAgRk4oY29tbWFuZFF1ZXVlU3VibWl0
Q2FsbHNUb3RhbCkgICAgICAgICAgICAgICBcCisgICAgRk4oY29tbWFuZFF1ZXVlU3VibWl0Q2Fs
bHNQZXJGcmFtZSkgICAgICAgICAgICBcCisgICAgRk4odmtRdWV1ZVN1Ym1pdENhbGxzVG90YWwp
ICAgICAgICAgICAgICAgICAgICBcCisgICAgRk4odmtRdWV1ZVN1Ym1pdENhbGxzUGVyRnJhbWUp
ICAgICAgICAgICAgICAgICBcCisgICAgRk4ocmVuZGVyUGFzc2VzKSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCisgICAgRk4od3JpdGVEZXNjcmlwdG9yU2V0cykgICAgICAgICAgICAg
ICAgICAgICAgICBcCisgICAgRk4oZmx1c2hlZE91dHNpZGVSZW5kZXJQYXNzQ29tbWFuZEJ1ZmZl
cnMpICAgICBcCisgICAgRk4oc3dhcGNoYWluUmVzb2x2ZUluU3VicGFzcykgICAgICAgICAgICAg
ICAgICBcCisgICAgRk4oc3dhcGNoYWluUmVzb2x2ZU91dHNpZGVTdWJwYXNzKSAgICAgICAgICAg
ICBcCisgICAgRk4ocmVzb2x2ZUltYWdlQ29tbWFuZHMpICAgICAgICAgICAgICAgICAgICAgICBc
CisgICAgRk4oY29sb3JMb2FkT3BDbGVhcnMpICAgICAgICAgICAgICAgICAgICAgICAgICBcCisg
ICAgRk4oY29sb3JMb2FkT3BMb2FkcykgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAg
Rk4oY29sb3JMb2FkT3BOb25lcykgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgRk4o
Y29sb3JTdG9yZU9wU3RvcmVzKSAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgRk4oY29s
b3JTdG9yZU9wTm9uZXMpICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgRk4oY29sb3JD
bGVhckF0dGFjaG1lbnRzKSAgICAgICAgICAgICAgICAgICAgICBcCisgICAgRk4oZGVwdGhMb2Fk
T3BDbGVhcnMpICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgRk4oZGVwdGhMb2FkT3BM
b2FkcykgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgRk4oZGVwdGhMb2FkT3BOb25l
cykgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgRk4oZGVwdGhTdG9yZU9wU3RvcmVz
KSAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgRk4oZGVwdGhTdG9yZU9wTm9uZXMpICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgRk4oZGVwdGhDbGVhckF0dGFjaG1lbnRzKSAg
ICAgICAgICAgICAgICAgICAgICBcCisgICAgRk4oc3RlbmNpbExvYWRPcENsZWFycykgICAgICAg
ICAgICAgICAgICAgICAgICBcCisgICAgRk4oc3RlbmNpbExvYWRPcExvYWRzKSAgICAgICAgICAg
ICAgICAgICAgICAgICBcCisgICAgRk4oc3RlbmNpbExvYWRPcE5vbmVzKSAgICAgICAgICAgICAg
ICAgICAgICAgICBcCisgICAgRk4oc3RlbmNpbFN0b3JlT3BTdG9yZXMpICAgICAgICAgICAgICAg
ICAgICAgICBcCisgICAgRk4oc3RlbmNpbFN0b3JlT3BOb25lcykgICAgICAgICAgICAgICAgICAg
ICAgICBcCisgICAgRk4oc3RlbmNpbENsZWFyQXR0YWNobWVudHMpICAgICAgICAgICAgICAgICAg
ICBcCisgICAgRk4oY29sb3JBdHRhY2htZW50VW5yZXNvbHZlcykgICAgICAgICAgICAgICAgICBc
CisgICAgRk4oZGVwdGhBdHRhY2htZW50VW5yZXNvbHZlcykgICAgICAgICAgICAgICAgICBcCisg
ICAgRk4oc3RlbmNpbEF0dGFjaG1lbnRVbnJlc29sdmVzKSAgICAgICAgICAgICAgICBcCisgICAg
Rk4oY29sb3JBdHRhY2htZW50UmVzb2x2ZXMpICAgICAgICAgICAgICAgICAgICBcCisgICAgRk4o
ZGVwdGhBdHRhY2htZW50UmVzb2x2ZXMpICAgICAgICAgICAgICAgICAgICBcCisgICAgRk4oc3Rl
bmNpbEF0dGFjaG1lbnRSZXNvbHZlcykgICAgICAgICAgICAgICAgICBcCisgICAgRk4ocmVhZE9u
bHlEZXB0aFN0ZW5jaWxSZW5kZXJQYXNzZXMpICAgICAgICAgICBcCisgICAgRk4oZGVzY3JpcHRv
clNldEFsbG9jYXRpb25zKSAgICAgICAgICAgICAgICAgICBcCisgICAgRk4oZGVzY3JpcHRvclNl
dENhY2hlVG90YWxTaXplKSAgICAgICAgICAgICAgICBcCisgICAgRk4oZGVzY3JpcHRvclNldENh
Y2hlS2V5U2l6ZUJ5dGVzKSAgICAgICAgICAgICBcCisgICAgRk4odW5pZm9ybXNBbmRYZmJEZXNj
cmlwdG9yU2V0Q2FjaGVIaXRzKSAgICAgICBcCisgICAgRk4odW5pZm9ybXNBbmRYZmJEZXNjcmlw
dG9yU2V0Q2FjaGVNaXNzZXMpICAgICBcCisgICAgRk4odW5pZm9ybXNBbmRYZmJEZXNjcmlwdG9y
U2V0Q2FjaGVUb3RhbFNpemUpICBcCisgICAgRk4odGV4dHVyZURlc2NyaXB0b3JTZXRDYWNoZUhp
dHMpICAgICAgICAgICAgICBcCisgICAgRk4odGV4dHVyZURlc2NyaXB0b3JTZXRDYWNoZU1pc3Nl
cykgICAgICAgICAgICBcCisgICAgRk4odGV4dHVyZURlc2NyaXB0b3JTZXRDYWNoZVRvdGFsU2l6
ZSkgICAgICAgICBcCisgICAgRk4oc2hhZGVyUmVzb3VyY2VzRGVzY3JpcHRvclNldENhY2hlSGl0
cykgICAgICBcCisgICAgRk4oc2hhZGVyUmVzb3VyY2VzRGVzY3JpcHRvclNldENhY2hlTWlzc2Vz
KSAgICBcCisgICAgRk4oc2hhZGVyUmVzb3VyY2VzRGVzY3JpcHRvclNldENhY2hlVG90YWxTaXpl
KSBcCisgICAgRk4oYnVmZmVyc0dob3N0ZWQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
CisgICAgRk4odmVydGV4QXJyYXlTeW5jU3RhdGVDYWxscykgICAgICAgICAgICAgICAgICBcCisg
ICAgRk4oYWxsb2NhdGVOZXdCdWZmZXJCbG9ja0NhbGxzKSAgICAgICAgICAgICAgICBcCiAgICAg
Rk4oZHluYW1pY0J1ZmZlckFsbG9jYXRpb25zKQogCiAjZGVmaW5lIEFOR0xFX0RFQ0xBUkVfUEVS
Rl9DT1VOVEVSKENPVU5URVIpIHVpbnQzMl90IENPVU5URVI7CkBAIC00NjEsNiArNDY1LDE5IEBA
IGNsYXNzIENvbmRpdGlvbmFsTXV0ZXggZmluYWwgOiBhbmdsZTo6Tm9uQ29weWFibGUKICMgICAg
ZGVmaW5lIEFOR0xFX1NDT1BFRF9ESVNBQkxFX0xTQU4oKQogI2VuZGlmCiAKKyNpZiBkZWZpbmVk
KEFOR0xFX1dJVEhfTVNBTikKK2NsYXNzIE1zYW5TY29wZWREaXNhYmxlSW50ZXJjZXB0b3JDaGVj
a3MgZmluYWwgOiBhbmdsZTo6Tm9uQ29weWFibGUKK3sKKyAgcHVibGljOgorICAgIE1zYW5TY29w
ZWREaXNhYmxlSW50ZXJjZXB0b3JDaGVja3MoKSB7IF9fbXNhbl9zY29wZWRfZGlzYWJsZV9pbnRl
cmNlcHRvcl9jaGVja3MoKTsgfQorICAgIH5Nc2FuU2NvcGVkRGlzYWJsZUludGVyY2VwdG9yQ2hl
Y2tzKCkgeyBfX21zYW5fc2NvcGVkX2VuYWJsZV9pbnRlcmNlcHRvcl9jaGVja3MoKTsgfQorfTsK
KyMgICAgZGVmaW5lIEFOR0xFX1NDT1BFRF9ESVNBQkxFX01TQU4oKSBcCisgICAgICAgIE1zYW5T
Y29wZWREaXNhYmxlSW50ZXJjZXB0b3JDaGVja3MgbXNhblNjb3BlZERpc2FibGVJbnRlcmNlcHRv
ckNoZWNrcworI2Vsc2UKKyMgICAgZGVmaW5lIEFOR0xFX1NDT1BFRF9ESVNBQkxFX01TQU4oKQor
I2VuZGlmCisKIC8vIFRoZSBBTkdMRV9OT19TQU5JVElaRV9NRU1PUlkgbWFjcm8gc3VwcHJlc3Nl
cyBNZW1vcnlTYW5pdGl6ZXIgY2hlY2tzIGZvcgogLy8gdXNlLW9mLXVuaW5pdGlhbGl6ZWQtZGF0
YS4gSXQgY2FuIGJlIHVzZWQgdG8gZGVjb3JhdGUgZnVuY3Rpb25zIHdpdGgga25vd24KIC8vIGZh
bHNlIHBvc2l0aXZlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9j
b21tb24vZW50cnlfcG9pbnRzX2VudW1fYXV0b2dlbi5jcHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9B
TkdMRS9zcmMvY29tbW9uL2VudHJ5X3BvaW50c19lbnVtX2F1dG9nZW4uY3BwCmluZGV4IDA2NjI0
MTg3ODNmM2VkNmRhZTFiNjUxMjdjZjcyNjJhM2ZhMGYyMDIuLjJhYzk5MjMwYjg2Y2RjNDY2NDNh
MjE1MmJiZWQxOThhYmU3MmM3NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xF
L3NyYy9jb21tb24vZW50cnlfcG9pbnRzX2VudW1fYXV0b2dlbi5jcHAKKysrIGIvU291cmNlL1Ro
aXJkUGFydHkvQU5HTEUvc3JjL2NvbW1vbi9lbnRyeV9wb2ludHNfZW51bV9hdXRvZ2VuLmNwcApA
QCAtMjY2Niw2ICsyNjY2LDggQEAgY29uc3QgY2hhciAqR2V0RW50cnlQb2ludE5hbWUoRW50cnlQ
b2ludCBlcCkKICAgICAgICAgICAgIHJldHVybiAiZ2xTaGFkZXJTb3VyY2UiOwogICAgICAgICBj
YXNlIEVudHJ5UG9pbnQ6OkdMU2hhZGVyU3RvcmFnZUJsb2NrQmluZGluZzoKICAgICAgICAgICAg
IHJldHVybiAiZ2xTaGFkZXJTdG9yYWdlQmxvY2tCaW5kaW5nIjsKKyAgICAgICAgY2FzZSBFbnRy
eVBvaW50OjpHTFNoYWRpbmdSYXRlUUNPTToKKyAgICAgICAgICAgIHJldHVybiAiZ2xTaGFkaW5n
UmF0ZVFDT00iOwogICAgICAgICBjYXNlIEVudHJ5UG9pbnQ6OkdMU2lnbmFsU2VtYXBob3JlRVhU
OgogICAgICAgICAgICAgcmV0dXJuICJnbFNpZ25hbFNlbWFwaG9yZUVYVCI7CiAgICAgICAgIGNh
c2UgRW50cnlQb2ludDo6R0xTcGVjaWFsaXplU2hhZGVyOgpkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvQU5HTEUvc3JjL2NvbW1vbi9lbnRyeV9wb2ludHNfZW51bV9hdXRvZ2VuLmggYi9T
b3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvY29tbW9uL2VudHJ5X3BvaW50c19lbnVtX2F1dG9n
ZW4uaAppbmRleCA3YTNkYjMxM2Y2ZGQ1Y2UxODQ3Y2UxMWFiYzk4NTFjYTNkY2RkY2U3Li45YTc5
ZjkyNWMxNDUyYTE4ZTRiMWZmNWVlOTI3NWY1MTU0OGJiYzRjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9BTkdMRS9zcmMvY29tbW9uL2VudHJ5X3BvaW50c19lbnVtX2F1dG9nZW4uaAor
KysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvY29tbW9uL2VudHJ5X3BvaW50c19lbnVt
X2F1dG9nZW4uaApAQCAtMTMzOSw2ICsxMzM5LDcgQEAgZW51bSBjbGFzcyBFbnRyeVBvaW50CiAg
ICAgR0xTaGFkZXJCaW5hcnksCiAgICAgR0xTaGFkZXJTb3VyY2UsCiAgICAgR0xTaGFkZXJTdG9y
YWdlQmxvY2tCaW5kaW5nLAorICAgIEdMU2hhZGluZ1JhdGVRQ09NLAogICAgIEdMU2lnbmFsU2Vt
YXBob3JlRVhULAogICAgIEdMU3BlY2lhbGl6ZVNoYWRlciwKICAgICBHTFN0ZW5jaWxGdW5jLApk
aWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2NvbW1vbi9wYWNrZWRfZ2xf
ZW51bXMuanNvbiBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9jb21tb24vcGFja2VkX2ds
X2VudW1zLmpzb24KaW5kZXggMGYzOTI5OWU0YWE4MGQ1ODU1N2ViOTQxZTM4YzQwZTc4MjFjNGRl
Yi4uNzUzODk4ODk3NDk1NjFjNzc3NDY1MDc3YWZiYWE4OGI3ZDdhZGEyNiAxMDA2NDQKLS0tIGEv
U291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2NvbW1vbi9wYWNrZWRfZ2xfZW51bXMuanNvbgor
KysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvY29tbW9uL3BhY2tlZF9nbF9lbnVtcy5q
c29uCkBAIC0yOTEsNSArMjkxLDE0IEBACiAgICAgICAgICJUcmFuc2ZlckRzdCI6ICJHTF9MQVlP
VVRfVFJBTlNGRVJfRFNUX0VYVCIsCiAgICAgICAgICJEZXB0aFJlYWRPbmx5U3RlbmNpbEF0dGFj
aG1lbnQiOiAiR0xfTEFZT1VUX0RFUFRIX1JFQURfT05MWV9TVEVOQ0lMX0FUVEFDSE1FTlRfRVhU
IiwKICAgICAgICAgIkRlcHRoQXR0YWNobWVudFN0ZW5jaWxSZWFkT25seSI6ICJHTF9MQVlPVVRf
REVQVEhfQVRUQUNITUVOVF9TVEVOQ0lMX1JFQURfT05MWV9FWFQiCisgICAgfSwKKyAgICAiU2hh
ZGluZ1JhdGUiOgorICAgIHsKKyAgICAgICAgIl8xeDEiOiAiR0xfU0hBRElOR19SQVRFXzFYMV9Q
SVhFTFNfUUNPTSIsCisgICAgICAgICJfMXgyIjogIkdMX1NIQURJTkdfUkFURV8xWDJfUElYRUxT
X1FDT00iLAorICAgICAgICAiXzJ4MSI6ICJHTF9TSEFESU5HX1JBVEVfMlgxX1BJWEVMU19RQ09N
IiwKKyAgICAgICAgIl8yeDIiOiAiR0xfU0hBRElOR19SQVRFXzJYMl9QSVhFTFNfUUNPTSIsCisg
ICAgICAgICJfNHgyIjogIkdMX1NIQURJTkdfUkFURV80WDJfUElYRUxTX1FDT00iLAorICAgICAg
ICAiXzR4NCI6ICJHTF9TSEFESU5HX1JBVEVfNFg0X1BJWEVMU19RQ09NIgogICAgIH0KIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9jb21tb24vc3RyaW5nX3V0aWxz
LmNwcCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9jb21tb24vc3RyaW5nX3V0aWxzLmNw
cAppbmRleCA2OTU2YzIzMGNkN2JkNDNiYmRlZWM5OThkNmZkYWE1ZjRkYjkwMWUwLi5hMjA4NTU1
ODMxMTY5MmI1MTZiNDcyNzI0ZGZhMTQyM2VlYTY1ZmI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9BTkdMRS9zcmMvY29tbW9uL3N0cmluZ191dGlscy5jcHAKKysrIGIvU291cmNlL1Ro
aXJkUGFydHkvQU5HTEUvc3JjL2NvbW1vbi9zdHJpbmdfdXRpbHMuY3BwCkBAIC0yNzIsNiArMjcy
LDMwIEBAIGludCBSZXBsYWNlQWxsU3Vic3RyaW5ncyhzdGQ6OnN0cmluZyAqc3RyLAogICAgIHJl
dHVybiBjb3VudDsKIH0KIAorc3RkOjpzdHJpbmcgVG9DYW1lbENhc2UoY29uc3Qgc3RkOjpzdHJp
bmcgJnN0cikKK3sKKyAgICBzdGQ6OnN0cmluZyByZXN1bHQ7CisKKyAgICBib29sIGxhc3RXYXNV
bmRlcnNjb3JlID0gZmFsc2U7CisgICAgZm9yIChjaGFyIGMgOiBzdHIpCisgICAgeworICAgICAg
ICBpZiAoYyA9PSAnXycpCisgICAgICAgIHsKKyAgICAgICAgICAgIGxhc3RXYXNVbmRlcnNjb3Jl
ID0gdHJ1ZTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisKKyAgICAgICAgaWYg
KGxhc3RXYXNVbmRlcnNjb3JlKQorICAgICAgICB7CisgICAgICAgICAgICBjICAgICAgICAgICAg
ICAgICA9IHN0YXRpY19jYXN0PGNoYXI+KHN0ZDo6dG91cHBlcihjKSk7CisgICAgICAgICAgICBs
YXN0V2FzVW5kZXJzY29yZSA9IGZhbHNlOworICAgICAgICB9CisgICAgICAgIHJlc3VsdCArPSBj
OworICAgIH0KKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKIHN0ZDo6dmVjdG9yPHN0ZDo6c3Ry
aW5nPiBHZXRTdHJpbmdzRnJvbUVudmlyb25tZW50VmFyT3JBbmRyb2lkUHJvcGVydHkoY29uc3Qg
Y2hhciAqdmFyTmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqcHJvcGVydHlOYW1lLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb25zdCBjaGFyICpzZXBhcmF0b3IpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9BTkdMRS9zcmMvY29tbW9uL3N0cmluZ191dGlscy5oIGIvU291cmNlL1RoaXJk
UGFydHkvQU5HTEUvc3JjL2NvbW1vbi9zdHJpbmdfdXRpbHMuaAppbmRleCBmYWRmZTE3ZDdhNzVm
OTU1NDNjMzllMzdiOTVkNTk5NWJkNDM0NDQ3Li5hMTZkZGRkYjI4YmNjN2JhMDY3Mzk3Yjc4ZjMz
OWU0NzE5ODk2MTc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvY29t
bW9uL3N0cmluZ191dGlscy5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9jb21t
b24vc3RyaW5nX3V0aWxzLmgKQEAgLTEwMyw2ICsxMDMsOSBAQCBpbnQgUmVwbGFjZUFsbFN1YnN0
cmluZ3Moc3RkOjpzdHJpbmcgKnN0ciwKICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBz
dGQ6OnN0cmluZyAmc3Vic3RyaW5nLAogICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0
ZDo6c3RyaW5nICZyZXBsYWNlbWVudCk7CiAKKy8vIFRha2VzIGEgc25ha2VfY2FzZSBzdHJpbmcg
YW5kIHR1cm5zIGl0IGludG8gY2FtZWxDYXNlLgorc3RkOjpzdHJpbmcgVG9DYW1lbENhc2UoY29u
c3Qgc3RkOjpzdHJpbmcgJnN0cik7CisKIC8vIFNwbGl0IHVwIGEgc3RyaW5nIHBhcnNlZCBmcm9t
IGFuIGVudmlyb25tZW50IHZhcmlhYmxlLgogc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+IEdldFN0
cmluZ3NGcm9tRW52aXJvbm1lbnRWYXJPckFuZHJvaWRQcm9wZXJ0eShjb25zdCBjaGFyICp2YXJO
YW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpwcm9wZXJ0eU5hbWUsCmRpZmYgLS1naXQg
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvY29tbW9uL3N0cmluZ191dGlsc191bml0dGVz
dC5jcHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvY29tbW9uL3N0cmluZ191dGlsc191
bml0dGVzdC5jcHAKaW5kZXggZjM0ZDg0MDk1YTM5ZjZjN2MwNzZmODVkNWI5YmViY2UzYjVhYWI0
OS4uZDc4ZGIwZDM5NWQ3ZTAxN2U3NzRjMWFmZWM3ZThlMzU5ODQ2NTA1NCAxMDA2NDQKLS0tIGEv
U291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2NvbW1vbi9zdHJpbmdfdXRpbHNfdW5pdHRlc3Qu
Y3BwCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9jb21tb24vc3RyaW5nX3V0aWxz
X3VuaXR0ZXN0LmNwcApAQCAtMTc3LDYgKzE3Nyw0MyBAQCBURVNUKFN0cmluZ1V0aWxzVGVzdCwg
SGV4U3RyaW5nVG9VSW50QmFzaWMpCiAgICAgRVhQRUNUX0ZBTFNFKEhleFN0cmluZ1RvVUludCh0
ZXN0U3RyaW5nRCwgJnVpbnRWYWx1ZSkpOwogfQogCisvLyBUZXN0cyBmb3IgVG9DYW1lbENhc2UK
K1RFU1QoU3RyaW5nVXRpbHNUZXN0LCBUb0NhbWVsQ2FzZSkKK3sKKyAgICAvLyBObyB1bmRlcnNj
b3JlIGluIGlucHV0OyBleHBlY3QgaWRlbnRpY2FsIG91dHB1dAorICAgIEVYUEVDVF9FUSgiIiwg
VG9DYW1lbENhc2UoIiIpKTsKKyAgICBFWFBFQ1RfRVEoImEiLCBUb0NhbWVsQ2FzZSgiYSIpKTsK
KyAgICBFWFBFQ1RfRVEoIkFiQ2RFZkciLCBUb0NhbWVsQ2FzZSgiQWJDZEVmRyIpKTsKKyAgICBF
WFBFQ1RfRVEoImFCY0RlRmciLCBUb0NhbWVsQ2FzZSgiYUJjRGVGZyIpKTsKKworICAgIC8vIFVu
ZGVyc2NvcmUgc2hvdWxkIGJlIHJlbW92ZWQgYW5kIHRoZSBuZXh0IGNoYXJhY3RlciB0dXJuZWQg
dXBwZXIgY2FzZQorICAgIEVYUEVDVF9FUSgiIiwgVG9DYW1lbENhc2UoIl8iKSk7CisgICAgRVhQ
RUNUX0VRKCJhQiIsIFRvQ2FtZWxDYXNlKCJhX2IiKSk7CisgICAgRVhQRUNUX0VRKCJhQiIsIFRv
Q2FtZWxDYXNlKCJhX2IiKSk7CisgICAgRVhQRUNUX0VRKCJjYW1lbENhc2UiLCBUb0NhbWVsQ2Fz
ZSgiY2FtZWxfY2FzZSIpKTsKKyAgICBFWFBFQ1RfRVEoImFiQ0RlQkVmRyIsIFRvQ2FtZWxDYXNl
KCJhYkNEZV9iRWZHIikpOworCisgICAgLy8gTXVsdGlwbGUgdW5kZXJzY29yZXMKKyAgICBFWFBF
Q1RfRVEoImFCQ0RFRkciLCBUb0NhbWVsQ2FzZSgiYV9iX2NfZF9lX2ZfZyIpKTsKKyAgICBFWFBF
Q1RfRVEoImFiQ2RFZkdoIiwgVG9DYW1lbENhc2UoImFiX2NkX2VmX2doIikpOworICAgIEVYUEVD
VF9FUSgiYVNob3J0TmFtZSIsIFRvQ2FtZWxDYXNlKCJhX3Nob3J0X25hbWUiKSk7CisgICAgRVhQ
RUNUX0VRKCJzb21lU2hvcnRXb3JkcyIsIFRvQ2FtZWxDYXNlKCJzb21lX3Nob3J0X3dvcmRzIikp
OworICAgIEVYUEVDVF9FUSgiYnVuY2hPTGV0dGVycyIsIFRvQ2FtZWxDYXNlKCJidW5jaF9vX2xl
dHRlcnMiKSk7CisgICAgRVhQRUNUX0VRKCJ3aGF0RW5kc0luRSIsIFRvQ2FtZWxDYXNlKCJ3aGF0
X2VuZHNfaW5fZSIpKTsKKyAgICBFWFBFQ1RfRVEoImFkanVzdFNyY0RzdFJlZ2lvbkZvckJsaXRG
cmFtZWJ1ZmZlciIsCisgICAgICAgICAgICAgIFRvQ2FtZWxDYXNlKCJhZGp1c3Rfc3JjX2RzdF9y
ZWdpb25fZm9yX0JsaXRGcmFtZWJ1ZmZlciIpKTsKKworICAgIC8vIFVwcGVyY2FzZSBhZnRlciB1
bmRlcnNjb3JlCisgICAgRVhQRUNUX0VRKCJhYkNERUZHaCIsIFRvQ2FtZWxDYXNlKCJhYl9DRF9l
Rl9HaCIpKTsKKyAgICBFWFBFQ1RfRVEoIklXYXNUaGVyZSIsIFRvQ2FtZWxDYXNlKCJJX3dhc190
aGVyZSIpKTsKKyAgICBFWFBFQ1RfRVEoIndoZXJlRGlkVEhBVENvbWVGcm9tIiwgVG9DYW1lbENh
c2UoIndoZXJlX2RpZF9USEFUX2NvbWVfZnJvbSIpKTsKKworICAgIC8vIERpZ2l0cworICAgIEVY
UEVDVF9FUSgiYWIxMjNjNGRlRjVnSGk2SiIsIFRvQ2FtZWxDYXNlKCJhYjFfMl8zY180ZGVfZjVn
X2hpNl9qIikpOworICAgIEVYUEVDVF9FUSgibWF4U2l6ZTE2S0IiLCBUb0NhbWVsQ2FzZSgibWF4
X3NpemVfMTZLQiIpKTsKKyAgICBFWFBFQ1RfRVEoInN1cHBvcnRSR0JBOCIsIFRvQ2FtZWxDYXNl
KCJzdXBwb3J0X1JHQkE4IikpOworfQorCiAvLyBCYXNpYyBmdW5jdGlvbmFsaXR5IGZvciBOYW1l
c01hdGNoV2l0aFdpbGRjYXJkLgogVEVTVChTdHJpbmdVdGlsc1Rlc3QsIE5hbWVzTWF0Y2hXaXRo
V2lsZGNhcmQpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvY29t
bW9uL3Z1bGthbi9CVUlMRC5nbiBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9jb21tb24v
dnVsa2FuL0JVSUxELmduCmluZGV4IDJlZTdlZDQxZGY2MDg5ODM3ZGNkMjAyMTY0MjA2YzdhM2Rl
MjIxZGYuLmJiM2YyNWIzZjE3NDNiN2I0MjhlNzcwOGIzMzVjMTE5NTMxMjliYTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9jb21tb24vdnVsa2FuL0JVSUxELmduCisr
KyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9jb21tb24vdnVsa2FuL0JVSUxELmduCkBA
IC0zMiw2ICszMiw3IEBAIGlmIChhbmdsZV9lbmFibGVfdnVsa2FuIHx8IGFuZ2xlX2J1aWxkX3Z1
bGthbl9zeXN0ZW1faW5mbykgewogICAgIGlmIChhbmdsZV91c2Vfd2F5bGFuZCkgewogICAgICAg
aW5jbHVkZV9kaXJzID0gWyAiJGFuZ2xlX3dheWxhbmRfZGlyL3NyYyIgXQogICAgIH0KKyAgICBj
b25maWdzID0gWyAiJGFuZ2xlX3Jvb3Q6YW5nbGVfdnVsa2FuX3dheWxhbmRfY29uZmlnIiBdCiAg
IH0KIAogICBhbmdsZV9zb3VyY2Vfc2V0KCJhbmdsZV92dWxrYW5faGVhZGVycyIpIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9jb21tb24vdnVsa2FuL3ZrX2hlYWRl
cnMuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9jb21tb24vdnVsa2FuL3ZrX2hlYWRl
cnMuaAppbmRleCA2ODM4MzQwMmVmY2IxN2YzOGFlNmFiYjc1MDJlMDRhMjRlYmFlODk1Li4wZWE5
ZTgwOWNhNjRkNTY2OWNhMTA0ZTE3NDBlMWFkZTY3MTQ0MTI5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9BTkdMRS9zcmMvY29tbW9uL3Z1bGthbi92a19oZWFkZXJzLmgKKysrIGIvU291
cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2NvbW1vbi92dWxrYW4vdmtfaGVhZGVycy5oCkBAIC0x
MjcsNiArMTI3LDEwIEBAIGV4dGVybiBQRk5fdmtDcmVhdGVTdHJlYW1EZXNjcmlwdG9yU3VyZmFj
ZUdHUCB2a0NyZWF0ZVN0cmVhbURlc2NyaXB0b3JTdXJmYWNlR0dQCiAvLyBWS19LSFJfc2hhcmVk
X3ByZXNlbnRhYmxlX2ltYWdlCiBleHRlcm4gUEZOX3ZrR2V0U3dhcGNoYWluU3RhdHVzS0hSIHZr
R2V0U3dhcGNoYWluU3RhdHVzS0hSOwogCisvLyBWS19LSFJfZnJhZ21lbnRfc2hhZGluZ19yYXRl
CitleHRlcm4gUEZOX3ZrR2V0UGh5c2ljYWxEZXZpY2VGcmFnbWVudFNoYWRpbmdSYXRlc0tIUiB2
a0dldFBoeXNpY2FsRGV2aWNlRnJhZ21lbnRTaGFkaW5nUmF0ZXNLSFI7CitleHRlcm4gUEZOX3Zr
Q21kU2V0RnJhZ21lbnRTaGFkaW5nUmF0ZUtIUiB2a0NtZFNldEZyYWdtZW50U2hhZGluZ1JhdGVL
SFI7CisKIH0gIC8vIG5hbWVzcGFjZSByeAogCiAjZW5kaWYgIC8vIEFOR0xFX1NIQVJFRF9MSUJW
VUxLQU4KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9jb21waWxlci5n
bmkgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvY29tcGlsZXIuZ25pCmluZGV4IDI3MjFm
NGFkODk0MzQ2Y2Q5NGI4NTYzN2ViMWU4MTI4NDk5MWQ3ZTEuLjI4NTM2Zjc0NDdiNDc0YmQ4NWQy
NzJhZDQwODI1MTFhNjA1ZTZmM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xF
L3NyYy9jb21waWxlci5nbmkKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2NvbXBp
bGVyLmduaQpAQCAtMzQ1LDYgKzM0NSw4IEBAIGFuZ2xlX3RyYW5zbGF0b3JfbGliX3Z1bGthbl9z
b3VyY2VzID0gWwogICAic3JjL2NvbXBpbGVyL3RyYW5zbGF0b3IvdHJlZV9vcHMvdnVsa2FuL0Rl
Y2xhcmVQZXJWZXJ0ZXhCbG9ja3MuY3BwIiwKICAgInNyYy9jb21waWxlci90cmFuc2xhdG9yL3Ry
ZWVfb3BzL3Z1bGthbi9EZWNsYXJlUGVyVmVydGV4QmxvY2tzLmgiLAogICAic3JjL2NvbXBpbGVy
L3RyYW5zbGF0b3IvdHJlZV9vcHMvdnVsa2FuL0Vhcmx5RnJhZ21lbnRUZXN0c09wdGltaXphdGlv
bi5jcHAiLAorICAic3JjL2NvbXBpbGVyL3RyYW5zbGF0b3IvdHJlZV9vcHMvdnVsa2FuL0VtdWxh
dGVBZHZhbmNlZEJsZW5kRXF1YXRpb25zLmNwcCIsCisgICJzcmMvY29tcGlsZXIvdHJhbnNsYXRv
ci90cmVlX29wcy92dWxrYW4vRW11bGF0ZUFkdmFuY2VkQmxlbmRFcXVhdGlvbnMuaCIsCiAgICJz
cmMvY29tcGlsZXIvdHJhbnNsYXRvci90cmVlX29wcy92dWxrYW4vRW11bGF0ZURpdGhlcmluZy5j
cHAiLAogICAic3JjL2NvbXBpbGVyL3RyYW5zbGF0b3IvdHJlZV9vcHMvdnVsa2FuL0VtdWxhdGVE
aXRoZXJpbmcuaCIsCiAgICJzcmMvY29tcGlsZXIvdHJhbnNsYXRvci90cmVlX29wcy92dWxrYW4v
RW11bGF0ZUZyYWdDb2xvckRhdGEuY3BwIiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L0FOR0xFL3NyYy9jb21waWxlci90cmFuc2xhdG9yL0NvbXBpbGVyLmNwcCBiL1NvdXJjZS9UaGly
ZFBhcnR5L0FOR0xFL3NyYy9jb21waWxlci90cmFuc2xhdG9yL0NvbXBpbGVyLmNwcAppbmRleCA2
MmQyMzFjYWM5ZGNiODI3ZGI3M2MxZmJhNDkwMWVkYTQxZWRkZjE0Li4wMWNhZTEwZTMxYzlhYmNi
NWUzNzg1YWZhMzk2NDJjOGYxMzk0ODBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9B
TkdMRS9zcmMvY29tcGlsZXIvdHJhbnNsYXRvci9Db21waWxlci5jcHAKKysrIGIvU291cmNlL1Ro
aXJkUGFydHkvQU5HTEUvc3JjL2NvbXBpbGVyL3RyYW5zbGF0b3IvQ29tcGlsZXIuY3BwCkBAIC00
NjEsNyArNDYxLDcgQEAgVEludGVybUJsb2NrICpUQ29tcGlsZXI6OmNvbXBpbGVUcmVlSW1wbChj
b25zdCBjaGFyICpjb25zdCBzaGFkZXJTdHJpbmdzW10sCiAgICAgICAgIHJldHVybiBudWxscHRy
OwogICAgIH0KIAotICAgIGlmIChwYXJzZUNvbnRleHQuZ2V0VHJlZVJvb3QoKSA9PSBudWxscHRy
KQorICAgIGlmICghcG9zdFBhcnNlQ2hlY2tzKHBhcnNlQ29udGV4dCkpCiAgICAgewogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKICAgICB9CkBAIC0xMTE5LDYgKzExMTksMjkgQEAgYm9vbCBUQ29t
cGlsZXI6OmNoZWNrQW5kU2ltcGxpZnlBU1QoVEludGVybUJsb2NrICpyb290LAogICAgIHJldHVy
biB0cnVlOwogfQogCitib29sIFRDb21waWxlcjo6cG9zdFBhcnNlQ2hlY2tzKGNvbnN0IFRQYXJz
ZUNvbnRleHQgJnBhcnNlQ29udGV4dCkKK3sKKyAgICBzdGQ6OnN0cmluZ3N0cmVhbSBlcnJvck1l
c3NhZ2U7CisKKyAgICBpZiAocGFyc2VDb250ZXh0LmdldFRyZWVSb290KCkgPT0gbnVsbHB0cikK
KyAgICB7CisgICAgICAgIGVycm9yTWVzc2FnZSA8PCAiU2hhZGVyIHBhcnNpbmcgZmFpbGVkICht
VHJlZVJvb3QgPT0gbnVsbHB0cikiOworICAgIH0KKworICAgIGZvciAoVFR5cGUgKnR5cGUgOiBw
YXJzZUNvbnRleHQuZ2V0RGVmZXJyZWRBcnJheVR5cGVzVG9TaXplKCkpCisgICAgeworICAgICAg
ICBlcnJvck1lc3NhZ2UgPDwgIlVuc2l6ZWQgZ2xvYmFsIGFycmF5IHR5cGU6ICIgPDwgdHlwZS0+
Z2V0QmFzaWNTdHJpbmcoKTsKKyAgICB9CisKKyAgICBpZiAoIWVycm9yTWVzc2FnZS5zdHIoKS5l
bXB0eSgpKQorICAgIHsKKyAgICAgICAgbURpYWdub3N0aWNzLmdsb2JhbEVycm9yKGVycm9yTWVz
c2FnZS5zdHIoKS5jX3N0cigpKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAg
IHJldHVybiB0cnVlOworfQorCiBib29sIFRDb21waWxlcjo6Y29tcGlsZShjb25zdCBjaGFyICpj
b25zdCBzaGFkZXJTdHJpbmdzW10sCiAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbnVt
U3RyaW5ncywKICAgICAgICAgICAgICAgICAgICAgICAgIFNoQ29tcGlsZU9wdGlvbnMgY29tcGls
ZU9wdGlvbnNJbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9jb21w
aWxlci90cmFuc2xhdG9yL0NvbXBpbGVyLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMv
Y29tcGlsZXIvdHJhbnNsYXRvci9Db21waWxlci5oCmluZGV4IGYzY2EwMTYxNTk2ZWYxMDVmZWZk
YWViNmFmNDc2ZjE1NDE1NDE3OGUuLjZmOTBiMTliNWE1ZjRmMThiNmYxZDc0ZTcyYmQ3OGU0MzY3
YzQzODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9jb21waWxlci90
cmFuc2xhdG9yL0NvbXBpbGVyLmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2Nv
bXBpbGVyL3RyYW5zbGF0b3IvQ29tcGlsZXIuaApAQCAtMjkxLDYgKzI5MSw4IEBAIGNsYXNzIFRD
b21waWxlciA6IHB1YmxpYyBUU2hIYW5kbGVCYXNlCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IFRQYXJzZUNvbnRleHQgJnBhcnNlQ29udGV4dCwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgU2hDb21waWxlT3B0aW9ucyBjb21waWxlT3B0aW9ucyk7CiAKKyAgICBib29s
IHBvc3RQYXJzZUNoZWNrcyhjb25zdCBUUGFyc2VDb250ZXh0ICZwYXJzZUNvbnRleHQpOworCiAg
ICAgc2g6OkdMZW51bSBtU2hhZGVyVHlwZTsKICAgICBTaFNoYWRlclNwZWMgbVNoYWRlclNwZWM7
CiAgICAgU2hTaGFkZXJPdXRwdXQgbU91dHB1dFR5cGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9BTkdMRS9zcmMvY29tcGlsZXIvdHJhbnNsYXRvci9JbnRlcm1Ob2RlLmNwcCBiL1Nv
dXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9jb21waWxlci90cmFuc2xhdG9yL0ludGVybU5vZGUu
Y3BwCmluZGV4IGExYzk5ODMyMjUxOWIxNTg4MjY0NmVjZTRjYmU4NzFlZDJiM2E3NWUuLjc5MWRk
NmRjNGUzZWE1YmJiNjI4OTI0NWRlZDhhY2ZmZTI3NTY4YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9U
aGlyZFBhcnR5L0FOR0xFL3NyYy9jb21waWxlci90cmFuc2xhdG9yL0ludGVybU5vZGUuY3BwCisr
KyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9jb21waWxlci90cmFuc2xhdG9yL0ludGVy
bU5vZGUuY3BwCkBAIC0xNTIxLDYgKzE1MjEsNyBAQCBUSW50ZXJtU3dpenpsZTo6VEludGVybVN3
aXp6bGUoVEludGVybVR5cGVkICpvcGVyYW5kLCBjb25zdCBUVmVjdG9yPGludD4gJnN3aXp6bAog
ICAgICAgbUhhc0ZvbGRlZER1cGxpY2F0ZU9mZnNldHMoZmFsc2UpCiB7CiAgICAgQVNTRVJUKG1P
cGVyYW5kKTsKKyAgICBBU1NFUlQobU9wZXJhbmQtPmdldFR5cGUoKS5pc1ZlY3RvcigpKTsKICAg
ICBBU1NFUlQobVN3aXp6bGVPZmZzZXRzLnNpemUoKSA8PSA0KTsKICAgICBwcm9tb3RlKCk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvY29tcGlsZXIvdHJhbnNs
YXRvci9PdXRwdXRITFNMLmNwcCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9jb21waWxl
ci90cmFuc2xhdG9yL091dHB1dEhMU0wuY3BwCmluZGV4IDA0YmE0ODAzOTliMTdkZTdlMWUyYzM3
YTE5NjQ3YjZkNzFiMjA4MGEuLjQ0ZmY1NTI3NzFhYjk0NGE5M2Y0NmI4MjViMjg1YTJmYWU5NTFh
ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9jb21waWxlci90cmFu
c2xhdG9yL091dHB1dEhMU0wuY3BwCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9j
b21waWxlci90cmFuc2xhdG9yL091dHB1dEhMU0wuY3BwCkBAIC02NjAsNyArNjYwLDcgQEAgdm9p
ZCBPdXRwdXRITFNMOjpoZWFkZXIoVEluZm9TaW5rQmFzZSAmb3V0LAogCiAgICAgbVJlc291cmNl
c0hMU0wtPnVuaWZvcm1zSGVhZGVyKG91dCwgbU91dHB1dFR5cGUsIG1SZWZlcmVuY2VkVW5pZm9y
bXMsIG1TeW1ib2xUYWJsZSk7CiAgICAgb3V0IDw8IG1SZXNvdXJjZXNITFNMLT51bmlmb3JtQmxv
Y2tzSGVhZGVyKG1SZWZlcmVuY2VkVW5pZm9ybUJsb2NrcywgbVVuaWZvcm1CbG9ja09wdGltaXpl
ZE1hcCk7Ci0gICAgbVNTQk9PdXRwdXRITFNMLT53cml0ZVNoYWRlclN0b3JhZ2VCbG9ja3NIZWFk
ZXIob3V0KTsKKyAgICBtU1NCT091dHB1dEhMU0wtPndyaXRlU2hhZGVyU3RvcmFnZUJsb2Nrc0hl
YWRlcihtU2hhZGVyVHlwZSwgb3V0KTsKIAogICAgIGlmICghbUVxdWFsaXR5RnVuY3Rpb25zLmVt
cHR5KCkpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2Nv
bXBpbGVyL3RyYW5zbGF0b3IvUGFyc2VDb250ZXh0LmNwcCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FO
R0xFL3NyYy9jb21waWxlci90cmFuc2xhdG9yL1BhcnNlQ29udGV4dC5jcHAKaW5kZXggMjA3ODhj
YjkzMjNkYWFlYzhmMWUzMzQ4M2RmYWJhYzFmNDQ4ZDg5MC4uYTJjMDg5OWY2YWMzZGNlY2FlZWVi
NDgwMzE3OTg4OTFmZWZiZTE1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUv
c3JjL2NvbXBpbGVyL3RyYW5zbGF0b3IvUGFyc2VDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9BTkdMRS9zcmMvY29tcGlsZXIvdHJhbnNsYXRvci9QYXJzZUNvbnRleHQuY3BwCkBA
IC0xMjM4LDkgKzEyMzgsMTEgQEAgdm9pZCBUUGFyc2VDb250ZXh0OjpjaGVja0NhbkJlRGVjbGFy
ZWRXaXRob3V0SW5pdGlhbGl6ZXIoY29uc3QgVFNvdXJjZUxvYyAmbGluZSwKICAgICAgICAgfQog
ICAgIH0KIAotICAgIC8vIEltcGxpY2l0bHkgZGVjbGFyZWQgYXJyYXlzIGFyZSBkaXNhbGxvd2Vk
IGZvciBzaGFkZXJzIG90aGVyIHRoYW4gdGVzc2VsbGF0aW9uIHNoYWRlcnMuCi0gICAgaWYgKG1T
aGFkZXJUeXBlICE9IEdMX1RFU1NfQ09OVFJPTF9TSEFERVIgJiYgbVNoYWRlclR5cGUgIT0gR0xf
VEVTU19FVkFMVUFUSU9OX1NIQURFUiAmJgotICAgICAgICB0eXBlLT5pc0FycmF5KCkpCisgICAg
Ly8gSW1wbGljaXRseSBkZWNsYXJlZCBhcnJheXMgYXJlIG9ubHkgYWxsb3dlZCB3aXRoIHRlc3Nl
bGxhdGlvbiBvciBnZW9tZXRyeSBzaGFkZXIgaW5wdXRzCisgICAgaWYgKHR5cGUtPmlzQXJyYXko
KSAmJgorICAgICAgICAoKG1TaGFkZXJUeXBlICE9IEdMX1RFU1NfQ09OVFJPTF9TSEFERVIgJiYg
bVNoYWRlclR5cGUgIT0gR0xfVEVTU19FVkFMVUFUSU9OX1NIQURFUiAmJgorICAgICAgICAgIG1T
aGFkZXJUeXBlICE9IEdMX0dFT01FVFJZX1NIQURFUikgfHwKKyAgICAgICAgIChtU2hhZGVyVHlw
ZSA9PSBHTF9HRU9NRVRSWV9TSEFERVIgJiYgdHlwZS0+Z2V0UXVhbGlmaWVyKCkgPT0gRXZxR2Vv
bWV0cnlPdXQpKSkKICAgICB7CiAgICAgICAgIGNvbnN0IFRTcGFuPGNvbnN0IHVuc2lnbmVkIGlu
dD4gJmFycmF5U2l6ZXMgPSB0eXBlLT5nZXRBcnJheVNpemVzKCk7CiAgICAgICAgIGZvciAodW5z
aWduZWQgaW50IHNpemUgOiBhcnJheVNpemVzKQpAQCAtMTI0OCw4ICsxMjUwLDggQEAgdm9pZCBU
UGFyc2VDb250ZXh0OjpjaGVja0NhbkJlRGVjbGFyZWRXaXRob3V0SW5pdGlhbGl6ZXIoY29uc3Qg
VFNvdXJjZUxvYyAmbGluZSwKICAgICAgICAgICAgIGlmIChzaXplID09IDApCiAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgZXJyb3IobGluZSwKLSAgICAgICAgICAgICAgICAgICAgICAi
aW1wbGljaXRseSBzaXplZCBhcnJheXMgZGlzYWxsb3dlZCBmb3Igc2hhZGVycyB0aGF0IGFyZSBu
b3QgdGVzc2VsbGF0aW9uICIKLSAgICAgICAgICAgICAgICAgICAgICAic2hhZGVycyIsCisgICAg
ICAgICAgICAgICAgICAgICAgImltcGxpY2l0bHkgc2l6ZWQgYXJyYXlzIG9ubHkgYWxsb3dlZCBm
b3IgdGVzc2VsbGF0aW9uIHNoYWRlcnMgIgorICAgICAgICAgICAgICAgICAgICAgICJvciBnZW9t
ZXRyeSBzaGFkZXIgaW5wdXRzIiwKICAgICAgICAgICAgICAgICAgICAgICBpZGVudGlmaWVyKTsK
ICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtMTQyNSw3ICsxNDI3LDggQEAgdm9pZCBUUGFy
c2VDb250ZXh0OjpjaGVja0lzUGFyYW1ldGVyUXVhbGlmaWVyVmFsaWQoCiAgICAgVFR5cGUgKnR5
cGUpCiB7CiAgICAgLy8gVGhlIG9ubHkgcGFyYW1ldGVyIHF1YWxpZmllcnMgYSBwYXJhbWV0ZXIg
Y2FuIGhhdmUgYXJlIGluLCBvdXQsIGlub3V0IG9yIGNvbnN0LgotICAgIFRUeXBlUXVhbGlmaWVy
IHR5cGVRdWFsaWZpZXIgPSB0eXBlUXVhbGlmaWVyQnVpbGRlci5nZXRQYXJhbWV0ZXJUeXBlUXVh
bGlmaWVyKG1EaWFnbm9zdGljcyk7CisgICAgVFR5cGVRdWFsaWZpZXIgdHlwZVF1YWxpZmllciA9
CisgICAgICAgIHR5cGVRdWFsaWZpZXJCdWlsZGVyLmdldFBhcmFtZXRlclR5cGVRdWFsaWZpZXIo
dHlwZS0+Z2V0QmFzaWNUeXBlKCksIG1EaWFnbm9zdGljcyk7CiAKICAgICBpZiAodHlwZVF1YWxp
Zmllci5xdWFsaWZpZXIgPT0gRXZxUGFyYW1PdXQgfHwgdHlwZVF1YWxpZmllci5xdWFsaWZpZXIg
PT0gRXZxUGFyYW1Jbk91dCkKICAgICB7CkBAIC0yODE4LDEwICsyODIxLDExIEBAIHZvaWQgVFBh
cnNlQ29udGV4dDo6Y2hlY2tHZW9tZXRyeVNoYWRlcklucHV0QW5kU2V0QXJyYXlTaXplKGNvbnN0
IFRTb3VyY2VMb2MgJmxvCiAgICAgICAgICAgICAgICAgLy8gW0dMU0wgRVMgMy4yIFNQRUMgQ2hh
cHRlciA0LjQuMS4yXQogICAgICAgICAgICAgICAgIC8vIEFuIGlucHV0IGNhbiBiZSBkZWNsYXJl
ZCB3aXRob3V0IGFuIGFycmF5IHNpemUgaWYgdGhlcmUgaXMgYSBwcmV2aW91cyBsYXlvdXQKICAg
ICAgICAgICAgICAgICAvLyB3aGljaCBzcGVjaWZpZXMgdGhlIHNpemUuCi0gICAgICAgICAgICAg
ICAgZXJyb3IobG9jYXRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgIk1pc3NpbmcgYSB2YWxp
ZCBpbnB1dCBwcmltaXRpdmUgZGVjbGFyYXRpb24gYmVmb3JlIGRlY2xhcmluZyBhbiB1bnNpemVk
ICIKLSAgICAgICAgICAgICAgICAgICAgICAiYXJyYXkgaW5wdXQiLAotICAgICAgICAgICAgICAg
ICAgICAgIHRva2VuKTsKKyAgICAgICAgICAgICAgICB3YXJuaW5nKGxvY2F0aW9uLAorICAgICAg
ICAgICAgICAgICAgICAgICAgIk1pc3NpbmcgYSB2YWxpZCBpbnB1dCBwcmltaXRpdmUgZGVjbGFy
YXRpb24gYmVmb3JlIGRlY2xhcmluZyBhbiB1bnNpemVkICIKKyAgICAgICAgICAgICAgICAgICAg
ICAgICJhcnJheSBpbnB1dCIsCisgICAgICAgICAgICAgICAgICAgICAgICAiRGVmZXJyZWQiKTsK
KyAgICAgICAgICAgICAgICBtRGVmZXJyZWRBcnJheVR5cGVzVG9TaXplLnB1c2hfYmFjayh0eXBl
KTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBlbHNlIGlmICh0eXBlLT5pc0Fy
cmF5KCkpCkBAIC0yODgxLDcgKzI4ODUsNyBAQCB2b2lkIFRQYXJzZUNvbnRleHQ6OmNoZWNrVGVz
c2VsbGF0aW9uU2hhZGVyVW5zaXplZEFycmF5c0FuZFNldFNpemUoY29uc3QgVFNvdXJjZQogICAg
ICAgICAgICAgICAgIC8vIGRlY2xhcmVkLCB0aGlzIGlzIGRlZmVycmVkIHVudGlsIHN1Y2ggdGlt
ZSBhcyBpdCBkb2VzLgogICAgICAgICAgICAgICAgIGlmIChtVGVzc0NvbnRyb2xTaGFkZXJPdXRw
dXRWZXJ0aWNlcyA9PSAwKQogICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAg
bVRlc3NDb250cm9sRGVmZXJyZWRBcnJheVR5cGVzVG9TaXplLnB1c2hfYmFjayh0eXBlKTsKKyAg
ICAgICAgICAgICAgICAgICAgbURlZmVycmVkQXJyYXlUeXBlc1RvU2l6ZS5wdXNoX2JhY2sodHlw
ZSk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAg
ICAgICB7CkBAIC0zNDQ5LDYgKzM0NTMsMTQgQEAgYm9vbCBUUGFyc2VDb250ZXh0OjpwYXJzZUdl
b21ldHJ5U2hhZGVySW5wdXRMYXlvdXRRdWFsaWZpZXIoY29uc3QgVFR5cGVRdWFsaWZpZXIKICAg
ICAgICAgICAgICAgICAgICJsYXlvdXQiKTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICAgICAgfQorCisgICAgICAgIC8vIFNpemUgYW55IGltcGxpY2l0bHkgc2l6ZWQgYXJyYXlzIHRo
YXQgaGF2ZSBhbHJlYWR5IGJlZW4gZGVjbGFyZWQuCisgICAgICAgIGZvciAoVFR5cGUgKnR5cGUg
OiBtRGVmZXJyZWRBcnJheVR5cGVzVG9TaXplKQorICAgICAgICB7CisgICAgICAgICAgICB0eXBl
LT5zaXplT3V0ZXJtb3N0VW5zaXplZEFycmF5KAorICAgICAgICAgICAgICAgIHN5bWJvbFRhYmxl
LmdldEdsSW5WYXJpYWJsZVdpdGhBcnJheVNpemUoKS0+Z2V0VHlwZSgpLmdldE91dGVybW9zdEFy
cmF5U2l6ZSgpKTsKKyAgICAgICAgfQorICAgICAgICBtRGVmZXJyZWRBcnJheVR5cGVzVG9TaXpl
LmNsZWFyKCk7CiAgICAgfQogCiAgICAgLy8gU2V0IG1HZW9tZXRyeUludm9jYXRpb25zIGlmIGV4
aXN0cwpAQCAtMzUzOSwxMCArMzU1MSwxMSBAQCBib29sIFRQYXJzZUNvbnRleHQ6OnBhcnNlVGVz
c0NvbnRyb2xTaGFkZXJPdXRwdXRMYXlvdXRRdWFsaWZpZXIoY29uc3QgVFR5cGVRdWFsaQogICAg
ICAgICBtVGVzc0NvbnRyb2xTaGFkZXJPdXRwdXRWZXJ0aWNlcyA9IGxheW91dFF1YWxpZmllci52
ZXJ0aWNlczsKIAogICAgICAgICAvLyBTaXplIGFueSBpbXBsaWNpdGx5IHNpemVkIGFycmF5cyB0
aGF0IGhhdmUgYWxyZWFkeSBiZWVuIGRlY2xhcmVkLgotICAgICAgICBmb3IgKFRUeXBlICp0eXBl
IDogbVRlc3NDb250cm9sRGVmZXJyZWRBcnJheVR5cGVzVG9TaXplKQorICAgICAgICBmb3IgKFRU
eXBlICp0eXBlIDogbURlZmVycmVkQXJyYXlUeXBlc1RvU2l6ZSkKICAgICAgICAgewogICAgICAg
ICAgICAgdHlwZS0+c2l6ZU91dGVybW9zdFVuc2l6ZWRBcnJheShtVGVzc0NvbnRyb2xTaGFkZXJP
dXRwdXRWZXJ0aWNlcyk7CiAgICAgICAgIH0KKyAgICAgICAgbURlZmVycmVkQXJyYXlUeXBlc1Rv
U2l6ZS5jbGVhcigpOwogICAgIH0KICAgICBlbHNlCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvQU5HTEUvc3JjL2NvbXBpbGVyL3RyYW5zbGF0b3IvUGFyc2VDb250ZXh0Lmgg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvY29tcGlsZXIvdHJhbnNsYXRvci9QYXJzZUNv
bnRleHQuaAppbmRleCA4MDU3Njk3OTNkY2NhNWY0NTQzMjkxNWY5ZjgzNjkxNTI3MTZlOWJkLi5m
YTNlNTZhYzIwNzJjM2U5M2NhZWU1MjRmZTE2MjY5MDEwZWQ1YTE4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvY29tcGlsZXIvdHJhbnNsYXRvci9QYXJzZUNvbnRleHQu
aAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvY29tcGlsZXIvdHJhbnNsYXRvci9Q
YXJzZUNvbnRleHQuaApAQCAtNDk5LDYgKzQ5OSwxMSBAQCBjbGFzcyBUUGFyc2VDb250ZXh0IDog
YW5nbGU6Ok5vbkNvcHlhYmxlCiAgICAgICAgIHJldHVybiBtVGVzc0V2YWx1YXRpb25TaGFkZXJJ
bnB1dFBvaW50VHlwZTsKICAgICB9CiAKKyAgICBjb25zdCBUVmVjdG9yPFRUeXBlICo+ICZnZXRE
ZWZlcnJlZEFycmF5VHlwZXNUb1NpemUoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1E
ZWZlcnJlZEFycmF5VHlwZXNUb1NpemU7CisgICAgfQorCiAgICAgdm9pZCBtYXJrU2hhZGVySGFz
UHJlY2lzZSgpIHsgbUhhc0FueVByZWNpc2VUeXBlID0gdHJ1ZTsgfQogICAgIGJvb2wgaGFzQW55
UHJlY2lzZVR5cGUoKSBjb25zdCB7IHJldHVybiBtSGFzQW55UHJlY2lzZVR5cGU7IH0KICAgICBB
ZHZhbmNlZEJsZW5kRXF1YXRpb25zIGdldEFkdmFuY2VkQmxlbmRFcXVhdGlvbnMoKSBjb25zdCB7
IHJldHVybiBtQWR2YW5jZWRCbGVuZEVxdWF0aW9uczsgfQpAQCAtNzM4LDcgKzc0Myw3IEBAIGNs
YXNzIFRQYXJzZUNvbnRleHQgOiBhbmdsZTo6Tm9uQ29weWFibGUKICAgICBUTGF5b3V0VGVzc0V2
YWx1YXRpb25UeXBlIG1UZXNzRXZhbHVhdGlvblNoYWRlcklucHV0UG9pbnRUeXBlOwogICAgIC8v
IExpc3Qgb2YgYXJyYXkgZGVjbGFyYXRpb25zIHdpdGhvdXQgYW4gZXhwbGljaXQgc2l6ZSB0aGF0
IGhhdmUgY29tZSBiZWZvcmUgbGF5b3V0KHZlcnRpY2VzPU4pLgogICAgIC8vIE9uY2UgdGhlIHZl
cnRleCBjb3VudCBpcyBzcGVjaWZpZWQsIHRoZXNlIGFycmF5cyBhcmUgc2l6ZWQuCi0gICAgVFZl
Y3RvcjxUVHlwZSAqPiBtVGVzc0NvbnRyb2xEZWZlcnJlZEFycmF5VHlwZXNUb1NpemU7CisgICAg
VFZlY3RvcjxUVHlwZSAqPiBtRGVmZXJyZWRBcnJheVR5cGVzVG9TaXplOwogICAgIC8vIFdoZXRo
ZXIgdGhlIHxwcmVjaXNlfCBrZXl3b3JkIGhhcyBiZWVuIHNlZW4gaW4gdGhlIHNoYWRlci4KICAg
ICBib29sIG1IYXNBbnlQcmVjaXNlVHlwZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvc3JjL2NvbXBpbGVyL3RyYW5zbGF0b3IvUXVhbGlmaWVyVHlwZXMuY3BwIGIvU291
cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2NvbXBpbGVyL3RyYW5zbGF0b3IvUXVhbGlmaWVyVHlw
ZXMuY3BwCmluZGV4IDgxNDI5OGRjNmFmZDU5MWJkYzRiNWYwMjc2MWYzY2Y4ZDEwNTExZmYuLmU1
MjQxNDZjZDMyNmIxMWFlYTFjNTdjYWE2YzU4ZDJjMDVmZjU2NzEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9jb21waWxlci90cmFuc2xhdG9yL1F1YWxpZmllclR5cGVz
LmNwcAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvY29tcGlsZXIvdHJhbnNsYXRv
ci9RdWFsaWZpZXJUeXBlcy5jcHAKQEAgLTYzMCw2ICs2MzAsNyBAQCBUVHlwZVF1YWxpZmllciBH
ZXRWYXJpYWJsZVR5cGVRdWFsaWZpZXJGcm9tU29ydGVkU2VxdWVuY2UoCiB9CiAKIFRUeXBlUXVh
bGlmaWVyIEdldFBhcmFtZXRlclR5cGVRdWFsaWZpZXJGcm9tU29ydGVkU2VxdWVuY2UoCisgICAg
VEJhc2ljVHlwZSBwYXJhbWV0ZXJCYXNpY1R5cGUsCiAgICAgY29uc3QgVFR5cGVRdWFsaWZpZXJC
dWlsZGVyOjpRdWFsaWZpZXJTZXF1ZW5jZSAmc29ydGVkU2VxdWVuY2UsCiAgICAgVERpYWdub3N0
aWNzICpkaWFnbm9zdGljcykKIHsKQEAgLTY4NCw3ICs2ODUsOSBAQCBUVHlwZVF1YWxpZmllciBH
ZXRQYXJhbWV0ZXJUeXBlUXVhbGlmaWVyRnJvbVNvcnRlZFNlcXVlbmNlKAogICAgICAgICBjYXNl
IEV2cVBhcmFtSW5PdXQ6CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBFdnFDb25z
dDoKLSAgICAgICAgICAgIHR5cGVRdWFsaWZpZXIucXVhbGlmaWVyID0gRXZxUGFyYW1Db25zdDsK
KyAgICAgICAgICAgIC8vIE9wYXF1ZSBwYXJhbWV0ZXJzIGNhbiBvbmx5IGJlIHxpbnwuICB8Y29u
c3R8IGlzIGFsbG93ZWQsIGJ1dCBpcyBtZWFuaW5nbGVzcyBhbmQgaXMKKyAgICAgICAgICAgIC8v
IGRyb3BwZWQuCisgICAgICAgICAgICB0eXBlUXVhbGlmaWVyLnF1YWxpZmllciA9IElzT3BhcXVl
VHlwZShwYXJhbWV0ZXJCYXNpY1R5cGUpID8gRXZxUGFyYW1JbiA6IEV2cVBhcmFtQ29uc3Q7CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBFdnFUZW1wb3Jhcnk6CiAgICAgICAgICAg
ICAvLyBubyBxdWFsaWZpZXIgaGFzIGJlZW4gc3BlY2lmaWVkLCBzZXQgaXQgdG8gRXZxUGFyYW1J
biB3aGljaCBpcyB0aGUgZGVmYXVsdApAQCAtOTUwLDcgKzk1Myw4IEBAIGJvb2wgVFR5cGVRdWFs
aWZpZXJCdWlsZGVyOjpjaGVja1NlcXVlbmNlSXNWYWxpZChURGlhZ25vc3RpY3MgKmRpYWdub3N0
aWNzKSBjb25zCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLVRUeXBlUXVhbGlmaWVyIFRUeXBlUXVh
bGlmaWVyQnVpbGRlcjo6Z2V0UGFyYW1ldGVyVHlwZVF1YWxpZmllcihURGlhZ25vc3RpY3MgKmRp
YWdub3N0aWNzKSBjb25zdAorVFR5cGVRdWFsaWZpZXIgVFR5cGVRdWFsaWZpZXJCdWlsZGVyOjpn
ZXRQYXJhbWV0ZXJUeXBlUXVhbGlmaWVyKFRCYXNpY1R5cGUgcGFyYW1ldGVyQmFzaWNUeXBlLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFREaWFnbm9zdGljcyAqZGlhZ25vc3RpY3MpIGNvbnN0CiB7CiAgICAgQVNTRVJUKElz
SW52YXJpYW50Q29ycmVjdChtUXVhbGlmaWVycykpOwogICAgIEFTU0VSVChzdGF0aWNfY2FzdDxj
b25zdCBUU3RvcmFnZVF1YWxpZmllcldyYXBwZXIgKj4obVF1YWxpZmllcnNbMF0pLT5nZXRRdWFs
aWZpZXIoKSA9PQpAQCAtOTY5LDkgKzk3MywxMSBAQCBUVHlwZVF1YWxpZmllciBUVHlwZVF1YWxp
ZmllckJ1aWxkZXI6OmdldFBhcmFtZXRlclR5cGVRdWFsaWZpZXIoVERpYWdub3N0aWNzICpkaQog
ICAgICAgICAvLyBDb3B5IHRoZSBxdWFsaWZpZXIgc2VxdWVuY2Ugc28gdGhhdCB3ZSBjYW4gc29y
dCB0aGVtLgogICAgICAgICBRdWFsaWZpZXJTZXF1ZW5jZSBzb3J0ZWRRdWFsaWZpZXJTZXF1ZW5j
ZSA9IG1RdWFsaWZpZXJzOwogICAgICAgICBTb3J0U2VxdWVuY2Uoc29ydGVkUXVhbGlmaWVyU2Vx
dWVuY2UpOwotICAgICAgICByZXR1cm4gR2V0UGFyYW1ldGVyVHlwZVF1YWxpZmllckZyb21Tb3J0
ZWRTZXF1ZW5jZShzb3J0ZWRRdWFsaWZpZXJTZXF1ZW5jZSwgZGlhZ25vc3RpY3MpOworICAgICAg
ICByZXR1cm4gR2V0UGFyYW1ldGVyVHlwZVF1YWxpZmllckZyb21Tb3J0ZWRTZXF1ZW5jZShwYXJh
bWV0ZXJCYXNpY1R5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHNvcnRlZFF1YWxpZmllclNlcXVlbmNlLCBkaWFnbm9zdGljcyk7
CiAgICAgfQotICAgIHJldHVybiBHZXRQYXJhbWV0ZXJUeXBlUXVhbGlmaWVyRnJvbVNvcnRlZFNl
cXVlbmNlKG1RdWFsaWZpZXJzLCBkaWFnbm9zdGljcyk7CisgICAgcmV0dXJuIEdldFBhcmFtZXRl
clR5cGVRdWFsaWZpZXJGcm9tU29ydGVkU2VxdWVuY2UocGFyYW1ldGVyQmFzaWNUeXBlLCBtUXVh
bGlmaWVycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBkaWFnbm9zdGljcyk7CiB9CiAKIFRUeXBlUXVhbGlmaWVyIFRUeXBlUXVhbGlmaWVy
QnVpbGRlcjo6Z2V0VmFyaWFibGVUeXBlUXVhbGlmaWVyKFREaWFnbm9zdGljcyAqZGlhZ25vc3Rp
Y3MpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvY29tcGls
ZXIvdHJhbnNsYXRvci9RdWFsaWZpZXJUeXBlcy5oIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUv
c3JjL2NvbXBpbGVyL3RyYW5zbGF0b3IvUXVhbGlmaWVyVHlwZXMuaAppbmRleCAwMjJmMzM5Yjhk
Nzg5MmU2M2MxOWEwZDI2NWE2NGYyY2ExZGQ5MmNlLi5iOThmMzAwY2U4ZTAyOGU4M2JiMmI0MDgw
N2E3YzEwNTYyOWI2ZDViIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMv
Y29tcGlsZXIvdHJhbnNsYXRvci9RdWFsaWZpZXJUeXBlcy5oCisrKyBiL1NvdXJjZS9UaGlyZFBh
cnR5L0FOR0xFL3NyYy9jb21waWxlci90cmFuc2xhdG9yL1F1YWxpZmllclR5cGVzLmgKQEAgLTE5
OCw3ICsxOTgsOCBAQCBjbGFzcyBUVHlwZVF1YWxpZmllckJ1aWxkZXIgOiBhbmdsZTo6Tm9uQ29w
eWFibGUKICAgICAvLyBHb2VzIG92ZXIgdGhlIHF1YWxpZmllciBzZXF1ZW5jZSBhbmQgcGFyc2Vz
IGl0IHRvIGZvcm0gYSB0eXBlIHF1YWxpZmllciBmb3IgYSBmdW5jdGlvbgogICAgIC8vIHBhcmFt
ZXRlci4KICAgICAvLyBUaGUgcmV0dXJuZWQgb2JqZWN0IGlzIGluaXRpYWxpemVkIGV2ZW4gaWYg
dGhlIHBhcnNpbmcgZmFpbHMuCi0gICAgVFR5cGVRdWFsaWZpZXIgZ2V0UGFyYW1ldGVyVHlwZVF1
YWxpZmllcihURGlhZ25vc3RpY3MgKmRpYWdub3N0aWNzKSBjb25zdDsKKyAgICBUVHlwZVF1YWxp
ZmllciBnZXRQYXJhbWV0ZXJUeXBlUXVhbGlmaWVyKFRCYXNpY1R5cGUgcGFyYW1ldGVyQmFzaWNU
eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVERpYWdu
b3N0aWNzICpkaWFnbm9zdGljcykgY29uc3Q7CiAgICAgLy8gR29lcyBvdmVyIHRoZSBxdWFsaWZp
ZXIgc2VxdWVuY2UgYW5kIHBhcnNlcyBpdCB0byBmb3JtIGEgdHlwZSBxdWFsaWZpZXIgZm9yIGEg
dmFyaWFibGUuCiAgICAgLy8gVGhlIHJldHVybmVkIG9iamVjdCBpcyBpbml0aWFsaXplZCBldmVu
IGlmIHRoZSBwYXJzaW5nIGZhaWxzLgogICAgIFRUeXBlUXVhbGlmaWVyIGdldFZhcmlhYmxlVHlw
ZVF1YWxpZmllcihURGlhZ25vc3RpY3MgKmRpYWdub3N0aWNzKSBjb25zdDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9jb21waWxlci90cmFuc2xhdG9yL1Jlc291cmNl
c0hMU0wuY3BwIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2NvbXBpbGVyL3RyYW5zbGF0
b3IvUmVzb3VyY2VzSExTTC5jcHAKaW5kZXggYTZiZWJmZWU2NzEyNWYzNDk1NGY4NTM5OWFhMDRl
N2ZlNTI0OTA4Mi4uMzQ3OGYwYTRjYWY0NDNlYjg3MDJkYzg4ZmExYjdmMTQ3NzJhYWVmNiAxMDA2
NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2NvbXBpbGVyL3RyYW5zbGF0b3Iv
UmVzb3VyY2VzSExTTC5jcHAKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2NvbXBp
bGVyL3RyYW5zbGF0b3IvUmVzb3VyY2VzSExTTC5jcHAKQEAgLTc2Miw2ICs3NjIsMjcgQEAgVFN0
cmluZyBSZXNvdXJjZXNITFNMOjp1bmlmb3JtQmxvY2tzSGVhZGVyKAogICAgIHJldHVybiAoaW50
ZXJmYWNlQmxvY2tzLmVtcHR5KCkgPyAiIiA6ICgiLy8gVW5pZm9ybSBCbG9ja3NcblxuIiArIGlu
dGVyZmFjZUJsb2NrcykpOwogfQogCit2b2lkIFJlc291cmNlc0hMU0w6OmFsbG9jYXRlU2hhZGVy
U3RvcmFnZUJsb2NrUmVnaXN0ZXJzKAorICAgIGNvbnN0IFJlZmVyZW5jZWRJbnRlcmZhY2VCbG9j
a3MgJnJlZmVyZW5jZWRJbnRlcmZhY2VCbG9ja3MpCit7CisgICAgZm9yIChjb25zdCBhdXRvICZp
bnRlcmZhY2VCbG9ja1JlZmVyZW5jZSA6IHJlZmVyZW5jZWRJbnRlcmZhY2VCbG9ja3MpCisgICAg
eworICAgICAgICBjb25zdCBUSW50ZXJmYWNlQmxvY2sgJmludGVyZmFjZUJsb2NrID0gKmludGVy
ZmFjZUJsb2NrUmVmZXJlbmNlLnNlY29uZC0+YmxvY2s7CisgICAgICAgIGNvbnN0IFRWYXJpYWJs
ZSAqaW5zdGFuY2VWYXJpYWJsZSAgICAgPSBpbnRlcmZhY2VCbG9ja1JlZmVyZW5jZS5zZWNvbmQt
Pmluc3RhbmNlVmFyaWFibGU7CisKKyAgICAgICAgbVNoYWRlclN0b3JhZ2VCbG9ja1JlZ2lzdGVy
TWFwW2ludGVyZmFjZUJsb2NrLm5hbWUoKS5kYXRhKCldID0gbVVBVlJlZ2lzdGVyOworCisgICAg
ICAgIGlmIChpbnN0YW5jZVZhcmlhYmxlICE9IG51bGxwdHIgJiYgaW5zdGFuY2VWYXJpYWJsZS0+
Z2V0VHlwZSgpLmlzQXJyYXkoKSkKKyAgICAgICAgeworICAgICAgICAgICAgbVVBVlJlZ2lzdGVy
ICs9IGluc3RhbmNlVmFyaWFibGUtPmdldFR5cGUoKS5nZXRPdXRlcm1vc3RBcnJheVNpemUoKTsK
KyAgICAgICAgfQorICAgICAgICBlbHNlCisgICAgICAgIHsKKyAgICAgICAgICAgIG1VQVZSZWdp
c3RlciArPSAxdTsKKyAgICAgICAgfQorICAgIH0KK30KKwogVFN0cmluZyBSZXNvdXJjZXNITFNM
OjpzaGFkZXJTdG9yYWdlQmxvY2tzSGVhZGVyKAogICAgIGNvbnN0IFJlZmVyZW5jZWRJbnRlcmZh
Y2VCbG9ja3MgJnJlZmVyZW5jZWRJbnRlcmZhY2VCbG9ja3MpCiB7CkBAIC03NzIsOCArNzkzLDcg
QEAgVFN0cmluZyBSZXNvdXJjZXNITFNMOjpzaGFkZXJTdG9yYWdlQmxvY2tzSGVhZGVyKAogICAg
ICAgICBjb25zdCBUSW50ZXJmYWNlQmxvY2sgJmludGVyZmFjZUJsb2NrID0gKmludGVyZmFjZUJs
b2NrUmVmZXJlbmNlLnNlY29uZC0+YmxvY2s7CiAgICAgICAgIGNvbnN0IFRWYXJpYWJsZSAqaW5z
dGFuY2VWYXJpYWJsZSAgICAgPSBpbnRlcmZhY2VCbG9ja1JlZmVyZW5jZS5zZWNvbmQtPmluc3Rh
bmNlVmFyaWFibGU7CiAKLSAgICAgICAgdW5zaWduZWQgaW50IGFjdGl2ZVJlZ2lzdGVyICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gbVVBVlJlZ2lzdGVyOwotICAgICAgICBtU2hh
ZGVyU3RvcmFnZUJsb2NrUmVnaXN0ZXJNYXBbaW50ZXJmYWNlQmxvY2submFtZSgpLmRhdGEoKV0g
PSBhY3RpdmVSZWdpc3RlcjsKKyAgICAgICAgdW5zaWduZWQgaW50IGFjdGl2ZVJlZ2lzdGVyID0g
bVNoYWRlclN0b3JhZ2VCbG9ja1JlZ2lzdGVyTWFwW2ludGVyZmFjZUJsb2NrLm5hbWUoKS5kYXRh
KCldOwogCiAgICAgICAgIGlmIChpbnN0YW5jZVZhcmlhYmxlICE9IG51bGxwdHIgJiYgaW5zdGFu
Y2VWYXJpYWJsZS0+Z2V0VHlwZSgpLmlzQXJyYXkoKSkKICAgICAgICAgewpAQCAtNzgzLDE3ICs4
MDMsMTUgQEAgVFN0cmluZyBSZXNvdXJjZXNITFNMOjpzaGFkZXJTdG9yYWdlQmxvY2tzSGVhZGVy
KAogICAgICAgICAgICAgICAgIGludGVyZmFjZUJsb2NrcyArPSBzaGFkZXJTdG9yYWdlQmxvY2tT
dHJpbmcoCiAgICAgICAgICAgICAgICAgICAgIGludGVyZmFjZUJsb2NrLCBpbnN0YW5jZVZhcmlh
YmxlLCBhY3RpdmVSZWdpc3RlciArIGFycmF5SW5kZXgsIGFycmF5SW5kZXgpOwogICAgICAgICAg
ICAgfQotICAgICAgICAgICAgbVVBVlJlZ2lzdGVyICs9IGluc3RhbmNlQXJyYXlTaXplOwogICAg
ICAgICB9CiAgICAgICAgIGVsc2UKICAgICAgICAgewogICAgICAgICAgICAgaW50ZXJmYWNlQmxv
Y2tzICs9IHNoYWRlclN0b3JhZ2VCbG9ja1N0cmluZyhpbnRlcmZhY2VCbG9jaywgaW5zdGFuY2VW
YXJpYWJsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYWN0aXZlUmVnaXN0ZXIsIEdMX0lOVkFMSURfSU5ERVgpOwotICAgICAgICAgICAg
bVVBVlJlZ2lzdGVyICs9IDF1OwogICAgICAgICB9CiAgICAgfQogCi0gICAgcmV0dXJuIChpbnRl
cmZhY2VCbG9ja3MuZW1wdHkoKSA/ICIiIDogKCIvLyBTaGFkZXIgU3RvcmFnZSBCbG9ja3Ncblxu
IiArIGludGVyZmFjZUJsb2NrcykpOworICAgIHJldHVybiBpbnRlcmZhY2VCbG9ja3M7CiB9CiAK
IFRTdHJpbmcgUmVzb3VyY2VzSExTTDo6dW5pZm9ybUJsb2NrU3RyaW5nKGNvbnN0IFRJbnRlcmZh
Y2VCbG9jayAmaW50ZXJmYWNlQmxvY2ssCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9B
TkdMRS9zcmMvY29tcGlsZXIvdHJhbnNsYXRvci9SZXNvdXJjZXNITFNMLmggYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9BTkdMRS9zcmMvY29tcGlsZXIvdHJhbnNsYXRvci9SZXNvdXJjZXNITFNMLmgKaW5k
ZXggZWYyZDkzODdmYzU5NjZjNGZjOGZiZDg3NjNhMThjMWY0MWIxMTNkMy4uNWFmOGRkNDk5NDg4
MDg4YmU4NjA0MzM5YTRlYTBkM2UxOTdlMzM5YyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvc3JjL2NvbXBpbGVyL3RyYW5zbGF0b3IvUmVzb3VyY2VzSExTTC5oCisrKyBiL1Nv
dXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9jb21waWxlci90cmFuc2xhdG9yL1Jlc291cmNlc0hM
U0wuaApAQCAtNDEsNiArNDEsOCBAQCBjbGFzcyBSZXNvdXJjZXNITFNMIDogYW5nbGU6Ok5vbkNv
cHlhYmxlCiAgICAgVFN0cmluZyB1bmlmb3JtQmxvY2tzSGVhZGVyKAogICAgICAgICBjb25zdCBS
ZWZlcmVuY2VkSW50ZXJmYWNlQmxvY2tzICZyZWZlcmVuY2VkSW50ZXJmYWNlQmxvY2tzLAogICAg
ICAgICBjb25zdCBzdGQ6Om1hcDxpbnQsIGNvbnN0IFRJbnRlcmZhY2VCbG9jayAqPiAmdW5pZm9y
bUJsb2NrT3B0aW1pemVkTWFwKTsKKyAgICB2b2lkIGFsbG9jYXRlU2hhZGVyU3RvcmFnZUJsb2Nr
UmVnaXN0ZXJzKAorICAgICAgICBjb25zdCBSZWZlcmVuY2VkSW50ZXJmYWNlQmxvY2tzICZyZWZl
cmVuY2VkSW50ZXJmYWNlQmxvY2tzKTsKICAgICBUU3RyaW5nIHNoYWRlclN0b3JhZ2VCbG9ja3NI
ZWFkZXIoY29uc3QgUmVmZXJlbmNlZEludGVyZmFjZUJsb2NrcyAmcmVmZXJlbmNlZEludGVyZmFj
ZUJsb2Nrcyk7CiAKICAgICAvLyBVc2VkIGZvciBkaXJlY3QgaW5kZXggcmVmZXJlbmNlcwpkaWZm
IC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2NvbXBpbGVyL3RyYW5zbGF0b3Iv
U2hhZGVyU3RvcmFnZUJsb2NrT3V0cHV0SExTTC5jcHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdM
RS9zcmMvY29tcGlsZXIvdHJhbnNsYXRvci9TaGFkZXJTdG9yYWdlQmxvY2tPdXRwdXRITFNMLmNw
cAppbmRleCAwMTZlNTQ2MTIxNGNkYjUxNGRmOTRiZjNmNjY1NTEwMDRkZjBkYTZiLi4yZmYwMWU0
MzllYjhlMmRlNTdmODM3YmI5ZDYyZmQzMGUzOTMzODliIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9BTkdMRS9zcmMvY29tcGlsZXIvdHJhbnNsYXRvci9TaGFkZXJTdG9yYWdlQmxvY2tP
dXRwdXRITFNMLmNwcAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvY29tcGlsZXIv
dHJhbnNsYXRvci9TaGFkZXJTdG9yYWdlQmxvY2tPdXRwdXRITFNMLmNwcApAQCAtMzYsNiArMzYs
OSBAQCBuYW1lc3BhY2Ugc2gKIG5hbWVzcGFjZQogewogCitjb25zdGV4cHIgY29uc3QgY2hhciBr
U2hhZGVyU3RvcmFnZURlY2xhcmF0aW9uU3RyaW5nW10gPQorICAgICIvLyBAQCBTSEFERVIgU1RP
UkFHRSBERUNMQVJBVElPTiBTVFJJTkcgQEAiOworCiB2b2lkIEdldEJsb2NrTGF5b3V0SW5mbyhU
SW50ZXJtVHlwZWQgKm5vZGUsCiAgICAgICAgICAgICAgICAgICAgICAgICBib29sIHJvd01ham9y
QWxyZWFkeUFzc2lnbmVkLAogICAgICAgICAgICAgICAgICAgICAgICAgVExheW91dEJsb2NrU3Rv
cmFnZSAqc3RvcmFnZSwKQEAgLTUwMyw5ICs1MDYsMjQgQEAgdm9pZCBTaGFkZXJTdG9yYWdlQmxv
Y2tPdXRwdXRITFNMOjp0cmF2ZXJzZVNTQk9BY2Nlc3MoVEludGVybVR5cGVkICpub2RlLCBTU0JP
TWUKICAgICBsb2MtPnRyYXZlcnNlKG1PdXRwdXRITFNMKTsKIH0KIAotdm9pZCBTaGFkZXJTdG9y
YWdlQmxvY2tPdXRwdXRITFNMOjp3cml0ZVNoYWRlclN0b3JhZ2VCbG9ja3NIZWFkZXIoVEluZm9T
aW5rQmFzZSAmb3V0KSBjb25zdAordm9pZCBTaGFkZXJTdG9yYWdlQmxvY2tPdXRwdXRITFNMOjp3
cml0ZVNoYWRlclN0b3JhZ2VCbG9ja3NIZWFkZXIoR0xlbnVtIHNoYWRlclR5cGUsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBUSW5mb1NpbmtCYXNlICZvdXQpIGNvbnN0CiB7Ci0gICAgb3V0IDw8IG1SZXNvdXJjZXNITFNM
LT5zaGFkZXJTdG9yYWdlQmxvY2tzSGVhZGVyKG1SZWZlcmVuY2VkU2hhZGVyU3RvcmFnZUJsb2Nr
cyk7CisgICAgaWYgKG1SZWZlcmVuY2VkU2hhZGVyU3RvcmFnZUJsb2Nrcy5lbXB0eSgpKQorICAg
IHsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1SZXNvdXJjZXNITFNMLT5hbGxvY2F0
ZVNoYWRlclN0b3JhZ2VCbG9ja1JlZ2lzdGVycyhtUmVmZXJlbmNlZFNoYWRlclN0b3JhZ2VCbG9j
a3MpOworICAgIG91dCA8PCAiLy8gU2hhZGVyIFN0b3JhZ2UgQmxvY2tzXG5cbiI7CisgICAgaWYg
KHNoYWRlclR5cGUgPT0gR0xfQ09NUFVURV9TSEFERVIpCisgICAgeworICAgICAgICBvdXQgPDwg
bVJlc291cmNlc0hMU0wtPnNoYWRlclN0b3JhZ2VCbG9ja3NIZWFkZXIobVJlZmVyZW5jZWRTaGFk
ZXJTdG9yYWdlQmxvY2tzKTsKKyAgICB9CisgICAgZWxzZQorICAgIHsKKyAgICAgICAgb3V0IDw8
IGtTaGFkZXJTdG9yYWdlRGVjbGFyYXRpb25TdHJpbmcgPDwgIlxuIjsKKyAgICB9CiAgICAgbVNT
Qk9GdW5jdGlvbkhMU0wtPnNoYWRlclN0b3JhZ2VCbG9ja0Z1bmN0aW9uSGVhZGVyKG91dCk7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9jb21waWxlci90cmFu
c2xhdG9yL1NoYWRlclN0b3JhZ2VCbG9ja091dHB1dEhMU0wuaCBiL1NvdXJjZS9UaGlyZFBhcnR5
L0FOR0xFL3NyYy9jb21waWxlci90cmFuc2xhdG9yL1NoYWRlclN0b3JhZ2VCbG9ja091dHB1dEhM
U0wuaAppbmRleCA0YWVlZDNmNzUyNDE2MjNhMWQ5ZGIxZjcwM2Q1OTBkZDE3NjYwMDk0Li4yYWNm
MDZhMGVhYTQwYjRjOGQwMTU1ODhkNGM5MzVlYTg1NzIwNGM3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9BTkdMRS9zcmMvY29tcGlsZXIvdHJhbnNsYXRvci9TaGFkZXJTdG9yYWdlQmxv
Y2tPdXRwdXRITFNMLmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2NvbXBpbGVy
L3RyYW5zbGF0b3IvU2hhZGVyU3RvcmFnZUJsb2NrT3V0cHV0SExTTC5oCkBAIC01Niw3ICs1Niw3
IEBAIGNsYXNzIFNoYWRlclN0b3JhZ2VCbG9ja091dHB1dEhMU0wKICAgICAvLyBXcml0ZXMgdGhl
IGF0b21pYyBtZW1vcnkgZnVuY3Rpb24gY2FsbHMgZm9yIFNTQk8uCiAgICAgdm9pZCBvdXRwdXRB
dG9taWNNZW1vcnlGdW5jdGlvbkNhbGxQcmVmaXgoVEludGVybVR5cGVkICpub2RlLCBUT3BlcmF0
b3Igb3ApOwogCi0gICAgdm9pZCB3cml0ZVNoYWRlclN0b3JhZ2VCbG9ja3NIZWFkZXIoVEluZm9T
aW5rQmFzZSAmb3V0KSBjb25zdDsKKyAgICB2b2lkIHdyaXRlU2hhZGVyU3RvcmFnZUJsb2Nrc0hl
YWRlcihHTGVudW0gc2hhZGVyVHlwZSwgVEluZm9TaW5rQmFzZSAmb3V0KSBjb25zdDsKIAogICBw
cml2YXRlOgogICAgIHZvaWQgdHJhdmVyc2VTU0JPQWNjZXNzKFRJbnRlcm1UeXBlZCAqbm9kZSwg
U1NCT01ldGhvZCBtZXRob2QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUv
c3JjL2NvbXBpbGVyL3RyYW5zbGF0b3IvVHJhbnNsYXRvclZ1bGthbi5jcHAgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9BTkdMRS9zcmMvY29tcGlsZXIvdHJhbnNsYXRvci9UcmFuc2xhdG9yVnVsa2FuLmNw
cAppbmRleCA0Yzk3ZWJlYjI3NTQ2ZmUwNzM0NTZiNjBkNjJkY2Q1ZmRlZjMwOTI1Li5lMjg3Njcw
MjM4OGYxOTRhODYyYmU5NGJjMjQyMDEzYjJkOTY3ZDQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9BTkdMRS9zcmMvY29tcGlsZXIvdHJhbnNsYXRvci9UcmFuc2xhdG9yVnVsa2FuLmNw
cAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvY29tcGlsZXIvdHJhbnNsYXRvci9U
cmFuc2xhdG9yVnVsa2FuLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgImNvbXBpbGVy
L3RyYW5zbGF0b3IvdHJlZV9vcHMvUmV3cml0ZVN0cnVjdFNhbXBsZXJzLmgiCiAjaW5jbHVkZSAi
Y29tcGlsZXIvdHJhbnNsYXRvci90cmVlX29wcy9TZXBhcmF0ZVN0cnVjdEZyb21Vbmlmb3JtRGVj
bGFyYXRpb25zLmgiCiAjaW5jbHVkZSAiY29tcGlsZXIvdHJhbnNsYXRvci90cmVlX29wcy92dWxr
YW4vRGVjbGFyZVBlclZlcnRleEJsb2Nrcy5oIgorI2luY2x1ZGUgImNvbXBpbGVyL3RyYW5zbGF0
b3IvdHJlZV9vcHMvdnVsa2FuL0VtdWxhdGVBZHZhbmNlZEJsZW5kRXF1YXRpb25zLmgiCiAjaW5j
bHVkZSAiY29tcGlsZXIvdHJhbnNsYXRvci90cmVlX29wcy92dWxrYW4vRW11bGF0ZURpdGhlcmlu
Zy5oIgogI2luY2x1ZGUgImNvbXBpbGVyL3RyYW5zbGF0b3IvdHJlZV9vcHMvdnVsa2FuL0VtdWxh
dGVGcmFnQ29sb3JEYXRhLmgiCiAjaW5jbHVkZSAiY29tcGlsZXIvdHJhbnNsYXRvci90cmVlX29w
cy92dWxrYW4vRmxhZ1NhbXBsZXJzV2l0aFRleGVsRmV0Y2guaCIKQEAgLTExOTUsNiArMTE5Niwx
OCBAQCBib29sIFRyYW5zbGF0b3JWdWxrYW46OnRyYW5zbGF0ZUltcGwoVEluZm9TaW5rQmFzZSAm
c2luaywKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICB9CiAKKyAg
ICAgICAgICAgIC8vIFRoaXMgc2hvdWxkIGJlIG9wZXJhdGVkIGFmdGVyIGRvaW5nIFJlcGxhY2VM
YXN0RnJhZ0RhdGEgYW5kIFJlcGxhY2VJbk91dFZhcmlhYmxlcywKKyAgICAgICAgICAgIC8vIGJl
Y2F1c2UgdGhleSB3aWxsIGNyZWF0ZSB0aGUgaW5wdXQgYXR0YWNobWVudCB2YXJpYWJsZXMuIEFk
ZEJsZW5kTWFpbkNhbGxlciB3aWxsCisgICAgICAgICAgICAvLyBjaGVjayB0aGUgZXhpc3Rpbmcg
aW5wdXQgYXR0YWNobWVudCB2YXJpYWJsZXMgYW5kIGlmIHRoZXJlIGlzIG5vIGV4aXN0aW5nIGlu
cHV0CisgICAgICAgICAgICAvLyBhdHRhY2htZW50IHZhcmlhYmxlIHRoZW4gY3JlYXRlIGEgbmV3
IG9uZS4KKyAgICAgICAgICAgIGlmIChnZXRBZHZhbmNlZEJsZW5kRXF1YXRpb25zKCkuYW55KCkg
JiYKKyAgICAgICAgICAgICAgICAoY29tcGlsZU9wdGlvbnMgJiBTSF9BRERfQURWQU5DRURfQkxF
TkRfRVFVQVRJT05TX0VNVUxBVElPTikgIT0gMCAmJgorICAgICAgICAgICAgICAgICFFbXVsYXRl
QWR2YW5jZWRCbGVuZEVxdWF0aW9ucyh0aGlzLCByb290LCAmZ2V0U3ltYm9sVGFibGUoKSwgZHJp
dmVyVW5pZm9ybXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICZtVW5pZm9ybXMsIGdldEFkdmFuY2VkQmxlbmRFcXVhdGlvbnMoKSkpCisgICAgICAgICAg
ICB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorCiAgICAg
ICAgICAgICBpZiAoIVJld3JpdGVEZmR5KHRoaXMsIGNvbXBpbGVPcHRpb25zLCByb290LCBnZXRT
eW1ib2xUYWJsZSgpLCBnZXRTaGFkZXJWZXJzaW9uKCksCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNwZWNDb25zdCwgZHJpdmVyVW5pZm9ybXMpKQogICAgICAgICAgICAgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2NvbXBpbGVyL3RyYW5zbGF0b3IvVmFs
aWRhdGVBU1QuY3BwIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2NvbXBpbGVyL3RyYW5z
bGF0b3IvVmFsaWRhdGVBU1QuY3BwCmluZGV4IDhkZTc1YWJlZDcyNTFmNmY5YmUzOWFjYTU5ZDJh
YWQ4MTBhZTY3NTkuLjc3ZGNmYzE0ZDU0M2E2OGU0ZDczNjdjY2ExYmIzM2FmNDg4NDAyYjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9jb21waWxlci90cmFuc2xhdG9y
L1ZhbGlkYXRlQVNULmNwcAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvY29tcGls
ZXIvdHJhbnNsYXRvci9WYWxpZGF0ZUFTVC5jcHAKQEAgLTgxNiw2ICs4MTYsMTYgQEAgdm9pZCBW
YWxpZGF0ZUFTVDo6dmlzaXRGdW5jdGlvblByb3RvdHlwZShUSW50ZXJtRnVuY3Rpb25Qcm90b3R5
cGUgKm5vZGUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbS0+bmFt
ZSgpLmRhdGEoKSk7CiAgICAgICAgICAgICAgICAgbVF1YWxpZmllcnNGYWlsZWQgPSB0cnVlOwog
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoSXNPcGFxdWVUeXBlKHBhcmFtVHlwZS5n
ZXRCYXNpY1R5cGUoKSkgJiYgcXVhbGlmaWVyICE9IEV2cVBhcmFtSW4pCisgICAgICAgICAgICB7
CisgICAgICAgICAgICAgICAgbURpYWdub3N0aWNzLT5lcnJvcigKKyAgICAgICAgICAgICAgICAg
ICAgbm9kZS0+Z2V0TGluZSgpLAorICAgICAgICAgICAgICAgICAgICAiRm91bmQgZnVuY3Rpb24g
cHJvdG90eXBlIHdpdGggYW4gaW52YWxpZCBxdWFsaWZpZXIgb24gb3BhcXVlIHBhcmFtZXRlciAi
CisgICAgICAgICAgICAgICAgICAgICI8dmFsaWRhdGVRdWFsaWZpZXJzPiIsCisgICAgICAgICAg
ICAgICAgICAgIHBhcmFtLT5uYW1lKCkuZGF0YSgpKTsKKyAgICAgICAgICAgICAgICBtUXVhbGlm
aWVyc0ZhaWxlZCA9IHRydWU7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KIAogICAgICAgICBp
ZiAobU9wdGlvbnMudmFsaWRhdGVQcmVjaXNpb24gJiYgSXNQcmVjaXNpb25BcHBsaWNhYmxlVG9U
eXBlKHBhcmFtVHlwZS5nZXRCYXNpY1R5cGUoKSkgJiYKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGly
ZFBhcnR5L0FOR0xFL3NyYy9jb21waWxlci90cmFuc2xhdG9yL1ZhbGlkYXRlQVNULmggYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvY29tcGlsZXIvdHJhbnNsYXRvci9WYWxpZGF0ZUFTVC5o
CmluZGV4IGMzZGM3Y2QxMWMzMjhhMTE0YzFjZmYzMDllNjViZmNkZjBmNTY0OTIuLjhhZmU5NDI0
NGU0MWQ4MWE4NWM0MmE5NDQwMWRiMmM1ZTYzZTMyODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGly
ZFBhcnR5L0FOR0xFL3NyYy9jb21waWxlci90cmFuc2xhdG9yL1ZhbGlkYXRlQVNULmgKKysrIGIv
U291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2NvbXBpbGVyL3RyYW5zbGF0b3IvVmFsaWRhdGVB
U1QuaApAQCAtNDgsNiArNDgsNyBAQCBzdHJ1Y3QgVmFsaWRhdGVBU1RPcHRpb25zCiAgICAgLy8g
SW1wbGVtZW50ZWQ6CiAgICAgLy8KICAgICAvLyAgLSBGdW5jdGlvbiBwYXJhbWV0ZXJzIGhhdmlu
ZyBvbmUgb2YgRXZxUGFyYW0qIHF1YWxpZmllcnMuCisgICAgLy8gIC0gTm8gY29uc3QgcXVhbGlm
aWVyIG9uIG9wYXF1ZSBmdW5jdGlvbiBwYXJhbWV0ZXJzLgogICAgIC8vICAtIGdsX0NsaXBEaXN0
YW5jZSwgZ2xfQ3VsbERpc3RhbmNlIGFuZCBnbF9MYXN0RnJhZ0RhdGEgYXJlIGNvcnJlY3RseSBx
dWFsaWZpZWQgZXZlbiB3aGVuCiAgICAgLy8gICAgcmVkZWNsYXJlZCBpbiB0aGUgc2hhZGVyLgog
ICAgIC8vCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvY29tcGlsZXIv
dHJhbnNsYXRvci90cmVlX29wcy92dWxrYW4vRW11bGF0ZUFkdmFuY2VkQmxlbmRFcXVhdGlvbnMu
Y3BwIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2NvbXBpbGVyL3RyYW5zbGF0b3IvdHJl
ZV9vcHMvdnVsa2FuL0VtdWxhdGVBZHZhbmNlZEJsZW5kRXF1YXRpb25zLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5jMWQ3Mzg1NDMzZTRhOTJkYTg1MGQ0NDg4OTQ5Y2E4Mjg2YWRlYTliCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2NvbXBpbGVyL3RyYW5zbGF0b3IvdHJl
ZV9vcHMvdnVsa2FuL0VtdWxhdGVBZHZhbmNlZEJsZW5kRXF1YXRpb25zLmNwcApAQCAtMCwwICsx
LDEyNTIgQEAKKy8vCisvLyBDb3B5cmlnaHQgMjAyMiBUaGUgQU5HTEUgUHJvamVjdCBBdXRob3Jz
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292
ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorLy8gZm91bmQgaW4gdGhl
IExJQ0VOU0UgZmlsZS4KKy8vCisvLyBFbXVsYXRlQWR2YW5jZWRCbGVuZEVxdWF0aW9ucy5jcHA6
IEVtdWxhdGUgYWR2YW5jZWQgYmxlbmQgZXF1YXRpb25zIGJ5IGltcGxpY2l0bHkgcmVhZGluZyBi
YWNrCisvLyBmcm9tIHRoZSBjb2xvciBhdHRhY2htZW50IChhcyBhbiBpbnB1dCBhdHRhY2htZW50
KSBhbmQgYXBwbHkgdGhlIGVxdWF0aW9uIGZ1bmN0aW9uIGJhc2VkIG9uIGEKKy8vIHVuaWZvcm0u
CisvLworCisjaW5jbHVkZSAiY29tcGlsZXIvdHJhbnNsYXRvci90cmVlX29wcy92dWxrYW4vRW11
bGF0ZUFkdmFuY2VkQmxlbmRFcXVhdGlvbnMuaCIKKworI2luY2x1ZGUgPG1hcD4KKworI2luY2x1
ZGUgIkdMU0xBTkcvU2hhZGVyVmFycy5oIgorI2luY2x1ZGUgImNvbW1vbi9QYWNrZWRFbnVtcy5o
IgorI2luY2x1ZGUgImNvbXBpbGVyL3RyYW5zbGF0b3IvQ29tcGlsZXIuaCIKKyNpbmNsdWRlICJj
b21waWxlci90cmFuc2xhdG9yL1N0YXRpY1R5cGUuaCIKKyNpbmNsdWRlICJjb21waWxlci90cmFu
c2xhdG9yL1N5bWJvbFRhYmxlLmgiCisjaW5jbHVkZSAiY29tcGlsZXIvdHJhbnNsYXRvci90cmVl
X3V0aWwvRHJpdmVyVW5pZm9ybS5oIgorI2luY2x1ZGUgImNvbXBpbGVyL3RyYW5zbGF0b3IvdHJl
ZV91dGlsL0ZpbmRNYWluLmgiCisjaW5jbHVkZSAiY29tcGlsZXIvdHJhbnNsYXRvci90cmVlX3V0
aWwvSW50ZXJtTm9kZV91dGlsLmgiCisjaW5jbHVkZSAiY29tcGlsZXIvdHJhbnNsYXRvci90cmVl
X3V0aWwvSW50ZXJtVHJhdmVyc2UuaCIKKyNpbmNsdWRlICJjb21waWxlci90cmFuc2xhdG9yL3Ry
ZWVfdXRpbC9SdW5BdFRoZUJlZ2lubmluZ09mU2hhZGVyLmgiCisjaW5jbHVkZSAiY29tcGlsZXIv
dHJhbnNsYXRvci90cmVlX3V0aWwvUnVuQXRUaGVFbmRPZlNoYWRlci5oIgorCituYW1lc3BhY2Ug
c2gKK3sKK25hbWVzcGFjZQoreworCisjaWYgMAorc3RhdGljIGNvbnN0ZXhwciBjb25zdCBpbnQg
a05vcm1hbEJsZW5kRnVuY0NoYW5uZWwgPSAxOworc3RhdGljIGNvbnN0ZXhwciBjb25zdCBpbnQg
a0hzbEJsZW5kRnVuY0NoYW5uZWwgICAgPSAzOworCitzdGF0aWMgY29uc3QgY2hhciAqa0NvbG9y
Q29lZmZWYXJOYW1lICAgICAgID0gImNvZWZmX2NvbG9yIjsKK3N0YXRpYyBjb25zdCBjaGFyICpr
QWxwaGFDb2VmZlZhck5hbWUgICAgICAgPSAiY29lZmZfYWxwaGEiOworc3RhdGljIGNvbnN0IGNo
YXIgKmtTb3VyY2VWYXJOYW1lICAgICAgICAgICA9ICJzcmMiOworc3RhdGljIGNvbnN0IGNoYXIg
KmtEZXN0aW5hdGlvblZhck5hbWUgICAgICA9ICJkc3QiOworc3RhdGljIGNvbnN0IGNoYXIgKmtP
dXRwdXRWYXJOYW1lICAgICAgICAgICA9ICJibGVuZF9yZXN1bHQiOworc3RhdGljIGNvbnN0IGNo
YXIgKmtQcmVtdWx0aXBsaWVkU3JjVmFyTmFtZSA9ICJwcmVtdWxfc3JjIjsKK3N0YXRpYyBjb25z
dCBjaGFyICprUHJlbXVsdGlwbGllZERzdFZhck5hbWUgPSAicHJlbXVsX2RzdCI7CitzdGF0aWMg
Y29uc3QgY2hhciAqa0JsZW5kTWFpbkZ1bmNOYW1lICAgICAgID0gIm1haW4iOworI2VuZGlmCisK
Ky8vIEFsbCBoZWxwZXIgZnVuY3Rpb25zIHRoYXQgbWF5IGJlIGdlbmVyYXRlZC4KK2NsYXNzIEJ1
aWxkZXIKK3sKKyAgcHVibGljOgorICAgIEJ1aWxkZXIoVENvbXBpbGVyICpjb21waWxlciwKKyAg
ICAgICAgICAgIFRTeW1ib2xUYWJsZSAqc3ltYm9sVGFibGUsCisgICAgICAgICAgICBjb25zdCBE
cml2ZXJVbmlmb3JtICpkcml2ZXJVbmlmb3JtcywKKyAgICAgICAgICAgIHN0ZDo6dmVjdG9yPFNo
YWRlclZhcmlhYmxlPiAqdW5pZm9ybXMsCisgICAgICAgICAgICBjb25zdCBBZHZhbmNlZEJsZW5k
RXF1YXRpb25zICZhZHZhbmNlZEJsZW5kRXF1YXRpb25zKQorICAgICAgICA6IG1Db21waWxlcihj
b21waWxlciksCisgICAgICAgICAgbVN5bWJvbFRhYmxlKHN5bWJvbFRhYmxlKSwKKyAgICAgICAg
ICBtRHJpdmVyVW5pZm9ybXMoZHJpdmVyVW5pZm9ybXMpLAorICAgICAgICAgIG1Vbmlmb3Jtcyh1
bmlmb3JtcyksCisgICAgICAgICAgbUFkdmFuY2VkQmxlbmRFcXVhdGlvbnMoYWR2YW5jZWRCbGVu
ZEVxdWF0aW9ucykKKyAgICB7fQorCisgICAgYm9vbCBidWlsZChUSW50ZXJtQmxvY2sgKnJvb3Qp
OworCisgIHByaXZhdGU6CisgICAgdm9pZCBmaW5kQ29sb3JPdXRwdXQoVEludGVybUJsb2NrICpy
b290KTsKKyAgICB2b2lkIGNyZWF0ZVN1YnBhc3NJbnB1dFZhcihUSW50ZXJtQmxvY2sgKnJvb3Qp
OworICAgIHZvaWQgZ2VuZXJhdGVIc2xIZWxwZXJGdW5jdGlvbnMoKTsKKyAgICB2b2lkIGdlbmVy
YXRlQmxlbmRGdW5jdGlvbnMoKTsKKyAgICB2b2lkIGluc2VydEdlbmVyYXRlZEZ1bmN0aW9ucyhU
SW50ZXJtQmxvY2sgKnJvb3QpOworICAgIFRJbnRlcm1TeW1ib2wgKnByZW11bHRpcGx5QWxwaGEo
VEludGVybUJsb2NrICpibGVuZEJsb2NrLCBUSW50ZXJtVHlwZWQgKnZhciwgY29uc3QgY2hhciAq
bmFtZSk7CisgICAgdm9pZCBnZW5lcmF0ZVByZWFtYmxlKFRJbnRlcm1CbG9jayAqYmxlbmRCbG9j
ayk7CisgICAgdm9pZCBnZW5lcmF0ZUVxdWF0aW9uU3dpdGNoKFRJbnRlcm1CbG9jayAqYmxlbmRC
bG9jayk7CisKKyAgICBUQ29tcGlsZXIgKm1Db21waWxlcjsKKyAgICBUU3ltYm9sVGFibGUgKm1T
eW1ib2xUYWJsZTsKKyAgICBjb25zdCBEcml2ZXJVbmlmb3JtICptRHJpdmVyVW5pZm9ybXM7Cisg
ICAgc3RkOjp2ZWN0b3I8U2hhZGVyVmFyaWFibGU+ICptVW5pZm9ybXM7CisgICAgY29uc3QgQWR2
YW5jZWRCbGVuZEVxdWF0aW9ucyAmbUFkdmFuY2VkQmxlbmRFcXVhdGlvbnM7CisKKyAgICAvLyBU
aGUgY29sb3IgaW5wdXQgYW5kIG91dHB1dC4gIE91dHB1dCBpcyB0aGUgYmxlbmQgc291cmNlLCBh
bmQgaW5wdXQgaXMgdGhlIGRlc3RpbmF0aW9uLgorICAgIGNvbnN0IFRWYXJpYWJsZSAqbVN1YnBh
c3NJbnB1dFZhciA9IG51bGxwdHI7CisgICAgY29uc3QgVFZhcmlhYmxlICptT3V0cHV0VmFyICAg
ICAgID0gbnVsbHB0cjsKKworICAgIC8vIFRoZSB2YWx1ZSBvZiBvdXRwdXQsIHByZW11bHRpcGxp
ZWQgYnkgYWxwaGEKKyAgICBUSW50ZXJtU3ltYm9sICptU3JjID0gbnVsbHB0cjsKKyAgICAvLyBU
aGUgdmFsdWUgb2YgaW5wdXQsIHByZW11bHRpcGxpZWQgYnkgYWxwaGEKKyAgICBUSW50ZXJtU3lt
Ym9sICptRHN0ID0gbnVsbHB0cjsKKworICAgIC8vIHAwLCBwMSBhbmQgcDIgY29lZmZpY2llbnRz
CisgICAgVEludGVybVN5bWJvbCAqbVAwID0gbnVsbHB0cjsKKyAgICBUSW50ZXJtU3ltYm9sICpt
UDEgPSBudWxscHRyOworICAgIFRJbnRlcm1TeW1ib2wgKm1QMiA9IG51bGxwdHI7CisKKyAgICAv
LyBGdW5jdGlvbnMgaW1wbGVtZW50aW5nIGFuIGFkdmFuY2VkIGJsZW5kIGVxdWF0aW9uOgorICAg
IGFuZ2xlOjpQYWNrZWRFbnVtTWFwPGdsOjpCbGVuZEVxdWF0aW9uVHlwZSwgVEludGVybUZ1bmN0
aW9uRGVmaW5pdGlvbiAqPiBtQmxlbmRGdW5jcyA9IHt9OworCisgICAgLy8gSFNMIGhlbHBlcnM6
CisgICAgVEludGVybUZ1bmN0aW9uRGVmaW5pdGlvbiAqbU1pbnYzICAgICA9IG51bGxwdHI7Cisg
ICAgVEludGVybUZ1bmN0aW9uRGVmaW5pdGlvbiAqbU1heHYzICAgICA9IG51bGxwdHI7CisgICAg
VEludGVybUZ1bmN0aW9uRGVmaW5pdGlvbiAqbUx1bXYzICAgICA9IG51bGxwdHI7CisgICAgVElu
dGVybUZ1bmN0aW9uRGVmaW5pdGlvbiAqbVNhdHYzICAgICA9IG51bGxwdHI7CisgICAgVEludGVy
bUZ1bmN0aW9uRGVmaW5pdGlvbiAqbUNsaXBDb2xvciA9IG51bGxwdHI7CisgICAgVEludGVybUZ1
bmN0aW9uRGVmaW5pdGlvbiAqbVNldEx1bSAgICA9IG51bGxwdHI7CisgICAgVEludGVybUZ1bmN0
aW9uRGVmaW5pdGlvbiAqbVNldEx1bVNhdCA9IG51bGxwdHI7Cit9OworCitib29sIEJ1aWxkZXI6
OmJ1aWxkKFRJbnRlcm1CbG9jayAqcm9vdCkKK3sKKyAgICAvLyBGaW5kIHRoZSBvdXRwdXQgdmFy
aWFibGUgZm9yIHdoaWNoIGFkdmFuY2VkIGJsZW5kIGlzIHNwZWNpZmllZC4gIE5vdGUgdGhhdCBh
ZHZhbmNlZCBibGVuZCBjYW4KKyAgICAvLyBvbmx5IHVzZWQgd2hlbiByZW5kZXJpbmcgaXMgZG9u
ZSB0byBhIHNpbmdsZSBjb2xvciBhdHRhY2htZW50LgorICAgIGZpbmRDb2xvck91dHB1dChyb290
KTsKKyAgICBpZiAobVN1YnBhc3NJbnB1dFZhciA9PSBudWxscHRyKQorICAgIHsKKyAgICAgICAg
Y3JlYXRlU3VicGFzc0lucHV0VmFyKHJvb3QpOworICAgIH0KKworICAgIC8vIElmIGFueSBIU0wg
YmxlbmQgZXF1YXRpb24gaXMgdXNlZCwgZ2VuZXJhdGUgYSBmZXcgdXRpbGl0eSBmdW5jdGlvbnMg
dXNlZCBpbiBUYWJsZSBYLjIgaW4gdGhlCisgICAgLy8gc3BlYy4KKyAgICBpZiAobUFkdmFuY2Vk
QmxlbmRFcXVhdGlvbnMuYW55SHNsKCkpCisgICAgeworICAgICAgICBnZW5lcmF0ZUhzbEhlbHBl
ckZ1bmN0aW9ucygpOworICAgIH0KKworICAgIC8vIEdlbmVyYXRlIGEgZnVuY3Rpb24gZm9yIGVh
Y2ggZW5hYmxlZCBibGVuZCBlcXVhdGlvbi4gIFRoaXMgaXMgfGZ8IGluIHRoZSBzcGVjLgorICAg
IGdlbmVyYXRlQmxlbmRGdW5jdGlvbnMoKTsKKworICAgIC8vIEluc2VydCB0aGUgZ2VuZXJhdGVk
IGZ1bmN0aW9ucyB0byByb290LgorICAgIGluc2VydEdlbmVyYXRlZEZ1bmN0aW9ucyhyb290KTsK
KworICAgIC8vIFByZXBhcmUgZm9yIGJsZW5kIGJ5OgorICAgIC8vCisgICAgLy8gLSBQcmVtdWx0
aXBseWluZyBzcmMgYW5kIGRzdCBjb2xvciBieSBhbHBoYQorICAgIC8vIC0gQ2FsY3VsYXRpbmcg
cDAsIHAxIGFuZCBwMgorICAgIC8vCisgICAgLy8gTm90ZSB0aGF0IHRoZSBjb2xvciBjb2VmZmlj
aWVudHMgKFgsWSxaKSBhcmUgYWx3YXlzICgxLDEsMSkgaW4gdGhlIEtIUiBleHRlbnNpb24gKHRo
ZXkgd2VyZQorICAgIC8vIG5vdCBpbiB0aGUgTlYgZXh0ZW5zaW9uKSwgc28gdGhleSBhcmUgaW1w
bGljaXRseSBkcm9wcGVkLgorICAgIFRJbnRlcm1CbG9jayAqYmxlbmRCbG9jayA9IG5ldyBUSW50
ZXJtQmxvY2s7CisgICAgZ2VuZXJhdGVQcmVhbWJsZShibGVuZEJsb2NrKTsKKworICAgIC8vIEdl
bmVyYXRlIHRoZSB8c3dpdGNofCB0aGF0IGNhbGxzIHRoZSByaWdodCBmdW5jdGlvbiBiYXNlZCBv
biBhIGRyaXZlciB1bmlmb3JtLgorICAgIGdlbmVyYXRlRXF1YXRpb25Td2l0Y2goYmxlbmRCbG9j
ayk7CisKKyAgICAvLyBQbGFjZSB0aGUgZW50aXJlIGJsZW5kIGJsb2NrIHVuZGVyIGFuIGlmIChl
cXVhdGlvbiAhPSAwKQorICAgIFRJbnRlcm1UeXBlZCAqZXF1YXRpb25Vbmlmb3JtID0gbURyaXZl
clVuaWZvcm1zLT5nZXRBZHZhbmNlZEJsZW5kRXF1YXRpb25SZWYoKTsKKyAgICBUSW50ZXJtVHlw
ZWQgKm5vdFplcm8gPSBuZXcgVEludGVybUJpbmFyeShFT3BOb3RFcXVhbCwgZXF1YXRpb25Vbmlm
b3JtLCBDcmVhdGVVSW50Tm9kZSgwKSk7CisKKyAgICBUSW50ZXJtSWZFbHNlICpibGVuZCA9IG5l
dyBUSW50ZXJtSWZFbHNlKG5vdFplcm8sIGJsZW5kQmxvY2ssIG51bGxwdHIpOworICAgIHJldHVy
biBSdW5BdFRoZUVuZE9mU2hhZGVyKG1Db21waWxlciwgcm9vdCwgYmxlbmQsIG1TeW1ib2xUYWJs
ZSk7Cit9CisKK3ZvaWQgQnVpbGRlcjo6ZmluZENvbG9yT3V0cHV0KFRJbnRlcm1CbG9jayAqcm9v
dCkKK3sKKyAgICBmb3IgKFRJbnRlcm1Ob2RlICpub2RlIDogKnJvb3QtPmdldFNlcXVlbmNlKCkp
CisgICAgeworICAgICAgICBUSW50ZXJtRGVjbGFyYXRpb24gKmFzRGVjbCA9IG5vZGUtPmdldEFz
RGVjbGFyYXRpb25Ob2RlKCk7CisgICAgICAgIGlmIChhc0RlY2wgPT0gbnVsbHB0cikKKyAgICAg
ICAgeworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKworICAgICAgICAvLyBTZXBh
cmF0ZURlY2xhcmF0aW9ucyBzaG91bGQgaGF2ZSBhbHJlYWR5IGJlZW4gcnVuLgorICAgICAgICBB
U1NFUlQoYXNEZWNsLT5nZXRTZXF1ZW5jZSgpLT5zaXplKCkgPT0gMXUpOworCisgICAgICAgIFRJ
bnRlcm1TeW1ib2wgKnN5bWJvbCA9IGFzRGVjbC0+Z2V0U2VxdWVuY2UoKS0+ZnJvbnQoKS0+Z2V0
QXNTeW1ib2xOb2RlKCk7CisgICAgICAgIGlmIChzeW1ib2wgPT0gbnVsbHB0cikKKyAgICAgICAg
eworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKworICAgICAgICBjb25zdCBUVHlw
ZSAmdHlwZSA9IHN5bWJvbC0+Z2V0VHlwZSgpOworICAgICAgICBpZiAodHlwZS5nZXRRdWFsaWZp
ZXIoKSA9PSBFdnFGcmFnbWVudE91dCB8fCB0eXBlLmdldFF1YWxpZmllcigpID09IEV2cUZyYWdt
ZW50SW5PdXQpCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIFRoZXJlIGNhbiBvbmx5IGJlIG9u
ZSBvdXRwdXQgd2l0aCBhZHZhbmNlZCBibGVuZCBwZXIgc3BlYy4KKyAgICAgICAgICAgIC8vIElm
IHRoZXJlIGFyZSBtdWx0aXBsZSBvdXRwdXRzLCB0YWtlIHRoZSBvbmUgb25lIHdpdGggbG9jYXRp
b24gMC4KKyAgICAgICAgICAgIGlmIChtT3V0cHV0VmFyID09IG51bGxwdHIgfHwgbU91dHB1dFZh
ci0+Z2V0VHlwZSgpLmdldExheW91dFF1YWxpZmllcigpLmxvY2F0aW9uID4gMCkKKyAgICAgICAg
ICAgIHsKKyAgICAgICAgICAgICAgICBtT3V0cHV0VmFyID0gJnN5bWJvbC0+dmFyaWFibGUoKTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChJc1N1YnBhc3NJbnB1dFR5
cGUodHlwZS5nZXRCYXNpY1R5cGUoKSkpCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIFRoZXJl
IGNhbiBvbmx5IGJlIG9uZSBvdXRwdXQgd2l0aCBhZHZhbmNlZCBibGVuZCwgc28gdGhlcmUgY2Fu
IG9ubHkgYmUgYSBtYXhpbXVtIG9mCisgICAgICAgICAgICAvLyBvbmUgc3VicGFzcyBpbnB1dCBh
bHJlYWR5IGRlZmluZWQgKGJ5IGZyYW1lYnVmZmVyIGZldGNoIGVtdWxhdGlvbikuCisgICAgICAg
ICAgICBBU1NFUlQobVN1YnBhc3NJbnB1dFZhciA9PSBudWxscHRyKTsKKyAgICAgICAgICAgIG1T
dWJwYXNzSW5wdXRWYXIgPSAmc3ltYm9sLT52YXJpYWJsZSgpOworICAgICAgICB9CisgICAgfQor
CisgICAgLy8gVGhpcyB0cmFuc2Zvcm1hdGlvbiBpcyBvbmx5IGV2ZXIgY2FsbGVkIHdoZW4gYWR2
YW5jZWQgYmxlbmQgaXMgc3BlY2lmaWVkLgorICAgIEFTU0VSVChtT3V0cHV0VmFyICE9IG51bGxw
dHIpOworfQorCitUSW50ZXJtU3ltYm9sICpNYWtlVmFyaWFibGUoVFN5bWJvbFRhYmxlICpzeW1i
b2xUYWJsZSwgY29uc3QgY2hhciAqbmFtZSwgY29uc3QgVFR5cGUgKnR5cGUpCit7CisgICAgY29u
c3QgVFZhcmlhYmxlICp2YXIgPQorICAgICAgICBuZXcgVFZhcmlhYmxlKHN5bWJvbFRhYmxlLCBJ
bW11dGFibGVTdHJpbmcobmFtZSksIHR5cGUsIFN5bWJvbFR5cGU6OkFuZ2xlSW50ZXJuYWwpOwor
ICAgIHJldHVybiBuZXcgVEludGVybVN5bWJvbCh2YXIpOworfQorCit2b2lkIEJ1aWxkZXI6OmNy
ZWF0ZVN1YnBhc3NJbnB1dFZhcihUSW50ZXJtQmxvY2sgKnJvb3QpCit7CisgICAgY29uc3QgVFBy
ZWNpc2lvbiBwcmVjaXNpb24gPSBtT3V0cHV0VmFyLT5nZXRUeXBlKCkuZ2V0UHJlY2lzaW9uKCk7
CisKKyAgICAvLyBUaGUgaW5wdXQgYXR0YWNobWVudCBpbmRleCB1c2VkIGZvciB0aGlzIGNvbG9y
IGF0dGFjaG1lbnQgd291bGQgYmUgaWRlbnRpY2FsIHRvIGl0cyBsb2NhdGlvbgorICAgIC8vIChv
ciBpbXBsaWNpdGx5IDAgaWYgbm90IHNwZWNpZmllZCkuCisgICAgY29uc3QgdW5zaWduZWQgaW50
IGlucHV0QXR0YWNobWVudEluZGV4ID0KKyAgICAgICAgc3RkOjptYXgoMCwgbU91dHB1dFZhci0+
Z2V0VHlwZSgpLmdldExheW91dFF1YWxpZmllcigpLmxvY2F0aW9uKTsKKworICAgIC8vIE5vdGUg
dGhhdCBibGVuZGluZyBjYW4gb25seSBoYXBwZW4gb24gZmxvYXQvZml4ZWQtcG9pbnQgb3V0cHV0
LgorICAgIEFTU0VSVChtT3V0cHV0VmFyLT5nZXRUeXBlKCkuZ2V0QmFzaWNUeXBlKCkgPT0gRWJ0
RmxvYXQpOworCisgICAgLy8gQ3JlYXRlIHRoZSBzdWJwYXNzIGlucHV0IHVuaWZvcm0uCisgICAg
VFR5cGUgKmlucHV0QXR0YWNobWVudFR5cGUgPSBuZXcgVFR5cGUoRWJ0U3VicGFzc0lucHV0LCBw
cmVjaXNpb24sIEV2cVVuaWZvcm0sIDEpOworICAgIFRMYXlvdXRRdWFsaWZpZXIgaW5wdXRBdHRh
Y2htZW50UXVhbGlmaWVyICAgICA9IGlucHV0QXR0YWNobWVudFR5cGUtPmdldExheW91dFF1YWxp
ZmllcigpOworICAgIGlucHV0QXR0YWNobWVudFF1YWxpZmllci5pbnB1dEF0dGFjaG1lbnRJbmRl
eCA9IGlucHV0QXR0YWNobWVudEluZGV4OworICAgIGlucHV0QXR0YWNobWVudFR5cGUtPnNldExh
eW91dFF1YWxpZmllcihpbnB1dEF0dGFjaG1lbnRRdWFsaWZpZXIpOworCisgICAgY29uc3QgY2hh
ciAqa1N1YnBhc3NJbnB1dE5hbWUgPSAiQU5HTEVGcmFnbWVudElucHV0IjsKKyAgICBUSW50ZXJt
U3ltYm9sICpzdWJwYXNzSW5wdXRTeW1ib2wgPQorICAgICAgICBNYWtlVmFyaWFibGUobVN5bWJv
bFRhYmxlLCBrU3VicGFzc0lucHV0TmFtZSwgaW5wdXRBdHRhY2htZW50VHlwZSk7CisgICAgbVN1
YnBhc3NJbnB1dFZhciA9ICZzdWJwYXNzSW5wdXRTeW1ib2wtPnZhcmlhYmxlKCk7CisKKyAgICAv
LyBBZGQgaXRzIGRlY2xhcmF0aW9uIHRvIHRoZSBzaGFkZXIuCisgICAgVEludGVybURlY2xhcmF0
aW9uICpzdWJwYXNzSW5wdXREZWNsID0gbmV3IFRJbnRlcm1EZWNsYXJhdGlvbjsKKyAgICBzdWJw
YXNzSW5wdXREZWNsLT5hcHBlbmREZWNsYXJhdG9yKHN1YnBhc3NJbnB1dFN5bWJvbCk7CisgICAg
cm9vdC0+aW5zZXJ0U3RhdGVtZW50KDAsIHN1YnBhc3NJbnB1dERlY2wpOworCisgICAgLy8gQWRk
IHRoZSBuZXcgc3VicGFzcyBpbnB1dCB0byB0aGUgbGlzdCBvZiB1bmlmb3Jtcy4KKyAgICBTaGFk
ZXJWYXJpYWJsZSBzdWJwYXNzSW5wdXRVbmlmb3JtOworICAgIHN1YnBhc3NJbnB1dFVuaWZvcm0u
YWN0aXZlICAgID0gdHJ1ZTsKKyAgICBzdWJwYXNzSW5wdXRVbmlmb3JtLnN0YXRpY1VzZSA9IHRy
dWU7CisgICAgc3VicGFzc0lucHV0VW5pZm9ybS5uYW1lLmFzc2lnbihrU3VicGFzc0lucHV0TmFt
ZSk7CisgICAgc3VicGFzc0lucHV0VW5pZm9ybS5tYXBwZWROYW1lLmFzc2lnbihrU3VicGFzc0lu
cHV0TmFtZSk7CisgICAgc3VicGFzc0lucHV0VW5pZm9ybS5pc0ZyYWdtZW50SW5PdXQgPSB0cnVl
OworICAgIHN1YnBhc3NJbnB1dFVuaWZvcm0ubG9jYXRpb24gICAgICAgID0gaW5wdXRBdHRhY2ht
ZW50SW5kZXg7CisgICAgbVVuaWZvcm1zLT5wdXNoX2JhY2soc3VicGFzc0lucHV0VW5pZm9ybSk7
Cit9CisKK1RJbnRlcm1UeXBlZCAqRmxvYXQoZmxvYXQgZikKK3sKKyAgICByZXR1cm4gQ3JlYXRl
RmxvYXROb2RlKGYsIEVicE1lZGl1bSk7Cit9CisKK1RGdW5jdGlvbiAqTWFrZUZ1bmN0aW9uKFRT
eW1ib2xUYWJsZSAqc3ltYm9sVGFibGUsCisgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBj
aGFyICpuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVFR5cGUgKnJldHVyblR5
cGUsCisgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBUVmVjdG9yPGNvbnN0IFRWYXJpYWJs
ZSAqPiAmYXJncykKK3sKKyAgICBURnVuY3Rpb24gKmZ1bmN0aW9uID0gbmV3IFRGdW5jdGlvbihz
eW1ib2xUYWJsZSwgSW1tdXRhYmxlU3RyaW5nKG5hbWUpLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFN5bWJvbFR5cGU6OkFuZ2xlSW50ZXJuYWwsIHJldHVyblR5cGUs
IGZhbHNlKTsKKyAgICBmb3IgKGNvbnN0IFRWYXJpYWJsZSAqYXJnIDogYXJncykKKyAgICB7Cisg
ICAgICAgIGZ1bmN0aW9uLT5hZGRQYXJhbWV0ZXIoYXJnKTsKKyAgICB9CisgICAgcmV0dXJuIGZ1
bmN0aW9uOworfQorCitUSW50ZXJtRnVuY3Rpb25EZWZpbml0aW9uICpNYWtlRnVuY3Rpb25EZWZp
bml0aW9uKGNvbnN0IFRGdW5jdGlvbiAqZnVuY3Rpb24sIFRJbnRlcm1CbG9jayAqYm9keSkKK3sK
KyAgICByZXR1cm4gbmV3IFRJbnRlcm1GdW5jdGlvbkRlZmluaXRpb24obmV3IFRJbnRlcm1GdW5j
dGlvblByb3RvdHlwZShmdW5jdGlvbiksIGJvZHkpOworfQorCitUSW50ZXJtRnVuY3Rpb25EZWZp
bml0aW9uICpNYWtlU2ltcGxlRnVuY3Rpb25EZWZpbml0aW9uKFRTeW1ib2xUYWJsZSAqc3ltYm9s
VGFibGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IGNoYXIgKm5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFRJbnRlcm1UeXBlZCAqcmV0dXJuRXhwcmVzc2lvbiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgVFZlY3RvcjxUSW50ZXJtU3ltYm9sICo+ICZhcmdzKQoreworICAgIFRWZWN0b3I8Y29u
c3QgVFZhcmlhYmxlICo+IGFyZ3NBc1ZhcjsKKyAgICBmb3IgKFRJbnRlcm1TeW1ib2wgKmFyZyA6
IGFyZ3MpCisgICAgeworICAgICAgICBhcmdzQXNWYXIucHVzaF9iYWNrKCZhcmctPnZhcmlhYmxl
KCkpOworICAgIH0KKworICAgIFRJbnRlcm1CbG9jayAqYm9keSA9IG5ldyBUSW50ZXJtQmxvY2s7
CisgICAgYm9keS0+YXBwZW5kU3RhdGVtZW50KG5ldyBUSW50ZXJtQnJhbmNoKEVPcFJldHVybiwg
cmV0dXJuRXhwcmVzc2lvbikpOworCisgICAgY29uc3QgVEZ1bmN0aW9uICpmdW5jdGlvbiA9Cisg
ICAgICAgIE1ha2VGdW5jdGlvbihzeW1ib2xUYWJsZSwgbmFtZSwgJnJldHVybkV4cHJlc3Npb24t
PmdldFR5cGUoKSwgYXJnc0FzVmFyKTsKKyAgICByZXR1cm4gTWFrZUZ1bmN0aW9uRGVmaW5pdGlv
bihmdW5jdGlvbiwgYm9keSk7Cit9CisKK3ZvaWQgQnVpbGRlcjo6Z2VuZXJhdGVIc2xIZWxwZXJG
dW5jdGlvbnMoKQoreworICAgIGNvbnN0IFRQcmVjaXNpb24gcHJlY2lzaW9uID0gbU91dHB1dFZh
ci0+Z2V0VHlwZSgpLmdldFByZWNpc2lvbigpOworCisgICAgVFR5cGUgKmZsb2F0VHlwZSAgICAg
PSBuZXcgVFR5cGUoRWJ0RmxvYXQsIHByZWNpc2lvbiwgRXZxVGVtcG9yYXJ5LCAxKTsKKyAgICBU
VHlwZSAqdmVjM1R5cGUgICAgICA9IG5ldyBUVHlwZShFYnRGbG9hdCwgcHJlY2lzaW9uLCBFdnFU
ZW1wb3JhcnksIDMpOworICAgIFRUeXBlICp2ZWMzUGFyYW1UeXBlID0gbmV3IFRUeXBlKEVidEZs
b2F0LCBwcmVjaXNpb24sIEV2cVBhcmFtSW4sIDMpOworCisgICAgLy8gZmxvYXQgQU5HTEVfbWlu
djModmVjMyBjKQorICAgIC8vIHsKKyAgICAvLyAgICAgcmV0dXJuIG1pbihtaW4oYy5yLCBjLmcp
LCBjLmIpOworICAgIC8vIH0KKyAgICB7CisgICAgICAgIFRJbnRlcm1TeW1ib2wgKmMgPSBNYWtl
VmFyaWFibGUobVN5bWJvbFRhYmxlLCAiYyIsIHZlYzNQYXJhbVR5cGUpOworCisgICAgICAgIFRJ
bnRlcm1UeXBlZCAqY1IgPSBuZXcgVEludGVybVN3aXp6bGUoYywgezB9KTsKKyAgICAgICAgVElu
dGVybVR5cGVkICpjRyA9IG5ldyBUSW50ZXJtU3dpenpsZShjLT5kZWVwQ29weSgpLCB7MX0pOwor
ICAgICAgICBUSW50ZXJtVHlwZWQgKmNCID0gbmV3IFRJbnRlcm1Td2l6emxlKGMtPmRlZXBDb3B5
KCksIHsyfSk7CisKKyAgICAgICAgLy8gbWluKGMuciwgYy5nKQorICAgICAgICBUSW50ZXJtU2Vx
dWVuY2UgY1JjRyA9IHtjUiwgY0d9OworICAgICAgICBUSW50ZXJtVHlwZWQgKm1pblJHICA9IENy
ZWF0ZUJ1aWx0SW5GdW5jdGlvbkNhbGxOb2RlKCJtaW4iLCAmY1JjRywgKm1TeW1ib2xUYWJsZSwg
MTAwKTsKKworICAgICAgICAvLyBtaW4obWluKGMuciwgYy5nKSwgYy5iKQorICAgICAgICBUSW50
ZXJtU2VxdWVuY2UgbWluUkdjQiA9IHttaW5SRywgY0J9OworICAgICAgICBUSW50ZXJtVHlwZWQg
Km1pblJHQiA9IENyZWF0ZUJ1aWx0SW5GdW5jdGlvbkNhbGxOb2RlKCJtaW4iLCAmbWluUkdjQiwg
Km1TeW1ib2xUYWJsZSwgMTAwKTsKKworICAgICAgICBtTWludjMgPSBNYWtlU2ltcGxlRnVuY3Rp
b25EZWZpbml0aW9uKG1TeW1ib2xUYWJsZSwgIkFOR0xFX21pbnYzIiwgbWluUkdCLCB7Y30pOwor
ICAgIH0KKworICAgIC8vIGZsb2F0IEFOR0xFX21heHYzKHZlYzMgYykKKyAgICAvLyB7CisgICAg
Ly8gICAgIHJldHVybiBtYXgobWF4KGMuciwgYy5nKSwgYy5iKTsKKyAgICAvLyB9CisgICAgewor
ICAgICAgICBUSW50ZXJtU3ltYm9sICpjID0gTWFrZVZhcmlhYmxlKG1TeW1ib2xUYWJsZSwgImMi
LCB2ZWMzUGFyYW1UeXBlKTsKKworICAgICAgICBUSW50ZXJtVHlwZWQgKmNSID0gbmV3IFRJbnRl
cm1Td2l6emxlKGMsIHswfSk7CisgICAgICAgIFRJbnRlcm1UeXBlZCAqY0cgPSBuZXcgVEludGVy
bVN3aXp6bGUoYy0+ZGVlcENvcHkoKSwgezF9KTsKKyAgICAgICAgVEludGVybVR5cGVkICpjQiA9
IG5ldyBUSW50ZXJtU3dpenpsZShjLT5kZWVwQ29weSgpLCB7Mn0pOworCisgICAgICAgIC8vIG1h
eChjLnIsIGMuZykKKyAgICAgICAgVEludGVybVNlcXVlbmNlIGNSY0cgPSB7Y1IsIGNHfTsKKyAg
ICAgICAgVEludGVybVR5cGVkICptYXhSRyAgPSBDcmVhdGVCdWlsdEluRnVuY3Rpb25DYWxsTm9k
ZSgibWF4IiwgJmNSY0csICptU3ltYm9sVGFibGUsIDEwMCk7CisKKyAgICAgICAgLy8gbWF4KG1h
eChjLnIsIGMuZyksIGMuYikKKyAgICAgICAgVEludGVybVNlcXVlbmNlIG1heFJHY0IgPSB7bWF4
UkcsIGNCfTsKKyAgICAgICAgVEludGVybVR5cGVkICptYXhSR0IgPSBDcmVhdGVCdWlsdEluRnVu
Y3Rpb25DYWxsTm9kZSgibWF4IiwgJm1heFJHY0IsICptU3ltYm9sVGFibGUsIDEwMCk7CisKKyAg
ICAgICAgbU1heHYzID0gTWFrZVNpbXBsZUZ1bmN0aW9uRGVmaW5pdGlvbihtU3ltYm9sVGFibGUs
ICJBTkdMRV9tYXh2MyIsIG1heFJHQiwge2N9KTsKKyAgICB9CisKKyAgICAvLyBmbG9hdCBBTkdM
RV9sdW12Myh2ZWMzIGMpCisgICAgLy8geworICAgIC8vICAgICByZXR1cm4gZG90KGMsIHZlYzMo
MC4zMGYsIDAuNTlmLCAwLjExZikpOworICAgIC8vIH0KKyAgICB7CisgICAgICAgIFRJbnRlcm1T
eW1ib2wgKmMgPSBNYWtlVmFyaWFibGUobVN5bWJvbFRhYmxlLCAiYyIsIHZlYzNQYXJhbVR5cGUp
OworCisgICAgICAgIGNvbnN0ZXhwciBzdGQ6OmFycmF5PGZsb2F0LCAzPiBrQ29lZmYgPSB7MC4z
MGYsIDAuNTlmLCAwLjExZn07CisgICAgICAgIFRJbnRlcm1Db25zdGFudFVuaW9uICpjb2VmZiAg
ICAgICAgICAgPSBDcmVhdGVWZWNOb2RlKGtDb2VmZi5kYXRhKCksIDMsIEVicE1lZGl1bSk7CisK
KyAgICAgICAgLy8gZG90KGMsIGNvZWZmKQorICAgICAgICBUSW50ZXJtU2VxdWVuY2UgY0NvZWZm
ID0ge2MsIGNvZWZmfTsKKyAgICAgICAgVEludGVybVR5cGVkICpkb3QgICAgICA9IENyZWF0ZUJ1
aWx0SW5GdW5jdGlvbkNhbGxOb2RlKCJkb3QiLCAmY0NvZWZmLCAqbVN5bWJvbFRhYmxlLCAxMDAp
OworCisgICAgICAgIG1MdW12MyA9IE1ha2VTaW1wbGVGdW5jdGlvbkRlZmluaXRpb24obVN5bWJv
bFRhYmxlLCAiQU5HTEVfbHVtdjMiLCBkb3QsIHtjfSk7CisgICAgfQorCisgICAgLy8gZmxvYXQg
QU5HTEVfc2F0djModmVjMyBjKQorICAgIC8vIHsKKyAgICAvLyAgICAgcmV0dXJuIEFOR0xFX21h
eHYzKGMpIC0gQU5HTEVfbWludjMoYyk7CisgICAgLy8gfQorICAgIHsKKyAgICAgICAgVEludGVy
bVN5bWJvbCAqYyA9IE1ha2VWYXJpYWJsZShtU3ltYm9sVGFibGUsICJjIiwgdmVjM1BhcmFtVHlw
ZSk7CisKKyAgICAgICAgLy8gQU5HTEVfbWF4djMoYykKKyAgICAgICAgVEludGVybVNlcXVlbmNl
IGNNYXhBcmcgPSB7Y307CisgICAgICAgIFRJbnRlcm1UeXBlZCAqbWF4djMgPQorICAgICAgICAg
ICAgVEludGVybUFnZ3JlZ2F0ZTo6Q3JlYXRlRnVuY3Rpb25DYWxsKCptTWF4djMtPmdldEZ1bmN0
aW9uKCksICZjTWF4QXJnKTsKKworICAgICAgICAvLyBBTkdMRV9taW52MyhjKQorICAgICAgICBU
SW50ZXJtU2VxdWVuY2UgY01pbkFyZyA9IHtjLT5kZWVwQ29weSgpfTsKKyAgICAgICAgVEludGVy
bVR5cGVkICptaW52MyA9CisgICAgICAgICAgICBUSW50ZXJtQWdncmVnYXRlOjpDcmVhdGVGdW5j
dGlvbkNhbGwoKm1NaW52My0+Z2V0RnVuY3Rpb24oKSwgJmNNaW5BcmcpOworCisgICAgICAgIC8v
IG1heCAtIG1pbgorICAgICAgICBUSW50ZXJtVHlwZWQgKmRpZmYgPSBuZXcgVEludGVybUJpbmFy
eShFT3BTdWIsIG1heHYzLCBtaW52Myk7CisKKyAgICAgICAgbVNhdHYzID0gTWFrZVNpbXBsZUZ1
bmN0aW9uRGVmaW5pdGlvbihtU3ltYm9sVGFibGUsICJBTkdMRV9zYXR2MyIsIGRpZmYsIHtjfSk7
CisgICAgfQorCisgICAgLy8gdmVjMyBBTkdMRV9jbGlwX2NvbG9yKHZlYzMgY29sb3IpCisgICAg
Ly8geworICAgIC8vICAgICBmbG9hdCBsdW0gPSBBTkdMRV9sdW12Myhjb2xvcik7CisgICAgLy8g
ICAgIGZsb2F0IG1pbmNvbCA9IEFOR0xFX21pbnYzKGNvbG9yKTsKKyAgICAvLyAgICAgZmxvYXQg
bWF4Y29sID0gQU5HTEVfbWF4djMoY29sb3IpOworICAgIC8vICAgICBpZiAobWluY29sIDwgMC4w
ZikKKyAgICAvLyAgICAgeworICAgIC8vICAgICAgICAgY29sb3IgPSBsdW0gKyAoKGNvbG9yIC0g
bHVtKSAqIGx1bSkgLyAobHVtIC0gbWluY29sKTsKKyAgICAvLyAgICAgfQorICAgIC8vICAgICBp
ZiAobWF4Y29sID4gMS4wZikKKyAgICAvLyAgICAgeworICAgIC8vICAgICAgICAgY29sb3IgPSBs
dW0gKyAoKGNvbG9yIC0gbHVtKSAqICgxLjBmIC0gbHVtKSkgLyAobWF4Y29sIC0gbHVtKTsKKyAg
ICAvLyAgICAgfQorICAgIC8vICAgICByZXR1cm4gY29sb3I7CisgICAgLy8gfQorICAgIHsKKyAg
ICAgICAgVEludGVybVN5bWJvbCAqY29sb3IgID0gTWFrZVZhcmlhYmxlKG1TeW1ib2xUYWJsZSwg
ImNvbG9yIiwgdmVjM1BhcmFtVHlwZSk7CisgICAgICAgIFRJbnRlcm1TeW1ib2wgKmx1bSAgICA9
IE1ha2VWYXJpYWJsZShtU3ltYm9sVGFibGUsICJsdW0iLCBmbG9hdFR5cGUpOworICAgICAgICBU
SW50ZXJtU3ltYm9sICptaW5jb2wgPSBNYWtlVmFyaWFibGUobVN5bWJvbFRhYmxlLCAibWluY29s
IiwgZmxvYXRUeXBlKTsKKyAgICAgICAgVEludGVybVN5bWJvbCAqbWF4Y29sID0gTWFrZVZhcmlh
YmxlKG1TeW1ib2xUYWJsZSwgIm1heGNvbCIsIGZsb2F0VHlwZSk7CisKKyAgICAgICAgLy8gQU5H
TEVfbHVtdjMoY29sb3IpCisgICAgICAgIFRJbnRlcm1TZXF1ZW5jZSBjTHVtQXJnID0ge2NvbG9y
fTsKKyAgICAgICAgVEludGVybVR5cGVkICpsdW12MyA9CisgICAgICAgICAgICBUSW50ZXJtQWdn
cmVnYXRlOjpDcmVhdGVGdW5jdGlvbkNhbGwoKm1MdW12My0+Z2V0RnVuY3Rpb24oKSwgJmNMdW1B
cmcpOworCisgICAgICAgIC8vIEFOR0xFX21pbnYzKGNvbG9yKQorICAgICAgICBUSW50ZXJtU2Vx
dWVuY2UgY01pbkFyZyA9IHtjb2xvci0+ZGVlcENvcHkoKX07CisgICAgICAgIFRJbnRlcm1UeXBl
ZCAqbWludjMgPQorICAgICAgICAgICAgVEludGVybUFnZ3JlZ2F0ZTo6Q3JlYXRlRnVuY3Rpb25D
YWxsKCptTWludjMtPmdldEZ1bmN0aW9uKCksICZjTWluQXJnKTsKKworICAgICAgICAvLyBBTkdM
RV9tYXh2Myhjb2xvcikKKyAgICAgICAgVEludGVybVNlcXVlbmNlIGNNYXhBcmcgPSB7Y29sb3It
PmRlZXBDb3B5KCl9OworICAgICAgICBUSW50ZXJtVHlwZWQgKm1heHYzID0KKyAgICAgICAgICAg
IFRJbnRlcm1BZ2dyZWdhdGU6OkNyZWF0ZUZ1bmN0aW9uQ2FsbCgqbU1heHYzLT5nZXRGdW5jdGlv
bigpLCAmY01heEFyZyk7CisKKyAgICAgICAgVEludGVybUJsb2NrICpib2R5ID0gbmV3IFRJbnRl
cm1CbG9jazsKKyAgICAgICAgYm9keS0+YXBwZW5kU3RhdGVtZW50KENyZWF0ZVRlbXBJbml0RGVj
bGFyYXRpb25Ob2RlKCZsdW0tPnZhcmlhYmxlKCksIGx1bXYzKSk7CisgICAgICAgIGJvZHktPmFw
cGVuZFN0YXRlbWVudChDcmVhdGVUZW1wSW5pdERlY2xhcmF0aW9uTm9kZSgmbWluY29sLT52YXJp
YWJsZSgpLCBtaW52MykpOworICAgICAgICBib2R5LT5hcHBlbmRTdGF0ZW1lbnQoQ3JlYXRlVGVt
cEluaXREZWNsYXJhdGlvbk5vZGUoJm1heGNvbC0+dmFyaWFibGUoKSwgbWF4djMpKTsKKworICAg
ICAgICAvLyBjb2xvciAtIGx1bQorICAgICAgICBUSW50ZXJtVHlwZWQgKmNvbG9yTWludXNMdW0g
PSBuZXcgVEludGVybUJpbmFyeShFT3BTdWIsIGNvbG9yLT5kZWVwQ29weSgpLCBsdW0pOworICAg
ICAgICAvLyAoY29sb3IgLSBsdW0pICogbHVtCisgICAgICAgIFRJbnRlcm1UeXBlZCAqY29sb3JN
aW51c0x1bVRpbWVzTHVtID0KKyAgICAgICAgICAgIG5ldyBUSW50ZXJtQmluYXJ5KEVPcFZlY3Rv
clRpbWVzU2NhbGFyLCBjb2xvck1pbnVzTHVtLCBsdW0tPmRlZXBDb3B5KCkpOworICAgICAgICAv
LyBsdW0gLSBtaW5jb2wKKyAgICAgICAgVEludGVybVR5cGVkICpsdW1NaW51c01pbmNvbCA9IG5l
dyBUSW50ZXJtQmluYXJ5KEVPcFN1YiwgbHVtLT5kZWVwQ29weSgpLCBtaW5jb2wpOworICAgICAg
ICAvLyAoKGNvbG9yIC0gbHVtKSAqIGx1bSkgLyAobHVtIC0gbWluY29sKQorICAgICAgICBUSW50
ZXJtVHlwZWQgKm5lZ2F0aXZlTWluY29sTHVtT2Zmc2V0ID0KKyAgICAgICAgICAgIG5ldyBUSW50
ZXJtQmluYXJ5KEVPcERpdiwgY29sb3JNaW51c0x1bVRpbWVzTHVtLCBsdW1NaW51c01pbmNvbCk7
CisgICAgICAgIC8vIGx1bSArICgoY29sb3IgLSBsdW0pICogbHVtKSAvIChsdW0gLSBtaW5jb2wp
CisgICAgICAgIFRJbnRlcm1UeXBlZCAqbmVnYXRpdmVNaW5jb2xPZmZzZXQgPQorICAgICAgICAg
ICAgbmV3IFRJbnRlcm1CaW5hcnkoRU9wQWRkLCBsdW0tPmRlZXBDb3B5KCksIG5lZ2F0aXZlTWlu
Y29sTHVtT2Zmc2V0KTsKKyAgICAgICAgLy8gY29sb3IgPSBsdW0gKyAoKGNvbG9yIC0gbHVtKSAq
IGx1bSkgLyAobHVtIC0gbWluY29sKQorICAgICAgICBUSW50ZXJtQmxvY2sgKmlmMUJvZHkgPSBu
ZXcgVEludGVybUJsb2NrOworICAgICAgICBpZjFCb2R5LT5hcHBlbmRTdGF0ZW1lbnQoCisgICAg
ICAgICAgICBuZXcgVEludGVybUJpbmFyeShFT3BBc3NpZ24sIGNvbG9yLT5kZWVwQ29weSgpLCBu
ZWdhdGl2ZU1pbmNvbE9mZnNldCkpOworCisgICAgICAgIC8vIG1pbmNvbCA8IDAuMGYKKyAgICAg
ICAgVEludGVybVR5cGVkICpsZXNzWmVybyA9IG5ldyBUSW50ZXJtQmluYXJ5KEVPcExlc3NUaGFu
LCBtaW5jb2wtPmRlZXBDb3B5KCksIEZsb2F0KDApKTsKKyAgICAgICAgLy8gaWYgKG1pbmNvbCA8
IDAuMGYpIC4uLgorICAgICAgICBib2R5LT5hcHBlbmRTdGF0ZW1lbnQobmV3IFRJbnRlcm1JZkVs
c2UobGVzc1plcm8sIGlmMUJvZHksIG51bGxwdHIpKTsKKworICAgICAgICAvLyAxLjBmIC0gbHVt
CisgICAgICAgIFRJbnRlcm1UeXBlZCAqb25lTWludXNMdW0gPSBuZXcgVEludGVybUJpbmFyeShF
T3BTdWIsIEZsb2F0KDEuMGYpLCBsdW0tPmRlZXBDb3B5KCkpOworICAgICAgICAvLyAoY29sb3Ig
LSBsdW0pICogKDEuMGYgLSBsdW0pCisgICAgICAgIFRJbnRlcm1UeXBlZCAqY29sb3JNaW51c0x1
bVRpbWVzT25lTWludXNMdW0gPQorICAgICAgICAgICAgbmV3IFRJbnRlcm1CaW5hcnkoRU9wVmVj
dG9yVGltZXNTY2FsYXIsIGNvbG9yTWludXNMdW0tPmRlZXBDb3B5KCksIG9uZU1pbnVzTHVtKTsK
KyAgICAgICAgLy8gbWF4Y29sIC0gbHVtCisgICAgICAgIFRJbnRlcm1UeXBlZCAqbWF4Y29sTWlu
dXNMdW0gPSBuZXcgVEludGVybUJpbmFyeShFT3BTdWIsIG1heGNvbCwgbHVtLT5kZWVwQ29weSgp
KTsKKyAgICAgICAgLy8gKGNvbG9yIC0gbHVtKSAqICgxLjBmIC0gbHVtKSAvIChtYXhjb2wgLSBs
dW0pCisgICAgICAgIFRJbnRlcm1UeXBlZCAqbGFyZ2VNYXhjb2xMdW1PZmZzZXQgPQorICAgICAg
ICAgICAgbmV3IFRJbnRlcm1CaW5hcnkoRU9wRGl2LCBjb2xvck1pbnVzTHVtVGltZXNPbmVNaW51
c0x1bSwgbWF4Y29sTWludXNMdW0pOworICAgICAgICAvLyBsdW0gKyAoY29sb3IgLSBsdW0pICog
KDEuMGYgLSBsdW0pIC8gKG1heGNvbCAtIGx1bSkKKyAgICAgICAgVEludGVybVR5cGVkICpsYXJn
ZU1heGNvbE9mZnNldCA9CisgICAgICAgICAgICBuZXcgVEludGVybUJpbmFyeShFT3BBZGQsIGx1
bS0+ZGVlcENvcHkoKSwgbGFyZ2VNYXhjb2xMdW1PZmZzZXQpOworICAgICAgICAvLyBjb2xvciA9
IGx1bSArIChjb2xvciAtIGx1bSkgKiAoMS4wZiAtIGx1bSkgLyAobWF4Y29sIC0gbHVtKQorICAg
ICAgICBUSW50ZXJtQmxvY2sgKmlmMkJvZHkgPSBuZXcgVEludGVybUJsb2NrOworICAgICAgICBp
ZjJCb2R5LT5hcHBlbmRTdGF0ZW1lbnQoCisgICAgICAgICAgICBuZXcgVEludGVybUJpbmFyeShF
T3BBc3NpZ24sIGNvbG9yLT5kZWVwQ29weSgpLCBsYXJnZU1heGNvbE9mZnNldCkpOworCisgICAg
ICAgIC8vIG1heGNvbCA+IDEuMGYKKyAgICAgICAgVEludGVybVR5cGVkICpsYXJnZXJPbmUgPSBu
ZXcgVEludGVybUJpbmFyeShFT3BHcmVhdGVyVGhhbiwgbWF4Y29sLT5kZWVwQ29weSgpLCBGbG9h
dCgxKSk7CisgICAgICAgIC8vIGlmIChtYXhjb2wgPiAxLjBmKSAuLi4KKyAgICAgICAgYm9keS0+
YXBwZW5kU3RhdGVtZW50KG5ldyBUSW50ZXJtSWZFbHNlKGxhcmdlck9uZSwgaWYyQm9keSwgbnVs
bHB0cikpOworCisgICAgICAgIGJvZHktPmFwcGVuZFN0YXRlbWVudChuZXcgVEludGVybUJyYW5j
aChFT3BSZXR1cm4sIGNvbG9yLT5kZWVwQ29weSgpKSk7CisKKyAgICAgICAgY29uc3QgVEZ1bmN0
aW9uICpmdW5jdGlvbiA9CisgICAgICAgICAgICBNYWtlRnVuY3Rpb24obVN5bWJvbFRhYmxlLCAi
QU5HTEVfY2xpcF9jb2xvciIsIHZlYzNUeXBlLCB7JmNvbG9yLT52YXJpYWJsZSgpfSk7CisgICAg
ICAgIG1DbGlwQ29sb3IgPSBNYWtlRnVuY3Rpb25EZWZpbml0aW9uKGZ1bmN0aW9uLCBib2R5KTsK
KyAgICB9CisKKyAgICAvLyB2ZWMzIEFOR0xFX3NldF9sdW0odmVjMyBjYmFzZSwgdmVjMyBjbHVt
KQorICAgIC8vIHsKKyAgICAvLyAgICAgZmxvYXQgbGJhc2UgPSBBTkdMRV9sdW12MyhjYmFzZSk7
CisgICAgLy8gICAgIGZsb2F0IGxsdW0gPSBBTkdMRV9sdW12MyhjbHVtKTsKKyAgICAvLyAgICAg
ZmxvYXQgbGRpZmYgPSBsbHVtIC0gbGJhc2U7CisgICAgLy8gICAgIHZlYzMgY29sb3IgPSBjYmFz
ZSArIGxkaWZmOworICAgIC8vICAgICByZXR1cm4gQU5HTEVfY2xpcF9jb2xvcihjb2xvcik7Cisg
ICAgLy8gfQorICAgIHsKKyAgICAgICAgVEludGVybVN5bWJvbCAqY2Jhc2UgPSBNYWtlVmFyaWFi
bGUobVN5bWJvbFRhYmxlLCAiY2Jhc2UiLCB2ZWMzUGFyYW1UeXBlKTsKKyAgICAgICAgVEludGVy
bVN5bWJvbCAqY2x1bSAgPSBNYWtlVmFyaWFibGUobVN5bWJvbFRhYmxlLCAiY2x1bSIsIHZlYzNQ
YXJhbVR5cGUpOworCisgICAgICAgIC8vIEFOR0xFX2x1bXYzKGNiYXNlKQorICAgICAgICBUSW50
ZXJtU2VxdWVuY2UgY2Jhc2VBcmcgPSB7Y2Jhc2V9OworICAgICAgICBUSW50ZXJtVHlwZWQgKmxi
YXNlID0KKyAgICAgICAgICAgIFRJbnRlcm1BZ2dyZWdhdGU6OkNyZWF0ZUZ1bmN0aW9uQ2FsbCgq
bUx1bXYzLT5nZXRGdW5jdGlvbigpLCAmY2Jhc2VBcmcpOworCisgICAgICAgIC8vIEFOR0xFX2x1
bXYzKGNsdW0pCisgICAgICAgIFRJbnRlcm1TZXF1ZW5jZSBjbHVtQXJnID0ge2NsdW19OworICAg
ICAgICBUSW50ZXJtVHlwZWQgKmxsdW0gPSBUSW50ZXJtQWdncmVnYXRlOjpDcmVhdGVGdW5jdGlv
bkNhbGwoKm1MdW12My0+Z2V0RnVuY3Rpb24oKSwgJmNsdW1BcmcpOworCisgICAgICAgIC8vIGxs
dW0gLSBsYmFzZQorICAgICAgICBUSW50ZXJtVHlwZWQgKmxkaWZmID0gbmV3IFRJbnRlcm1CaW5h
cnkoRU9wU3ViLCBsbHVtLCBsYmFzZSk7CisgICAgICAgIC8vIGNiYXNlICsgbGRpZmYKKyAgICAg
ICAgVEludGVybVR5cGVkICpjb2xvciA9IG5ldyBUSW50ZXJtQmluYXJ5KEVPcEFkZCwgY2Jhc2Ut
PmRlZXBDb3B5KCksIGxkaWZmKTsKKyAgICAgICAgLy8gQU5HTEVfY2xpcF9jb2xvcihjb2xvcik7
CisgICAgICAgIFRJbnRlcm1TZXF1ZW5jZSBjbGlwQ29sb3JBcmcgPSB7Y29sb3J9OworICAgICAg
ICBUSW50ZXJtVHlwZWQgKnJlc3VsdCA9CisgICAgICAgICAgICBUSW50ZXJtQWdncmVnYXRlOjpD
cmVhdGVGdW5jdGlvbkNhbGwoKm1DbGlwQ29sb3ItPmdldEZ1bmN0aW9uKCksICZjbGlwQ29sb3JB
cmcpOworCisgICAgICAgIFRJbnRlcm1CbG9jayAqYm9keSA9IG5ldyBUSW50ZXJtQmxvY2s7Cisg
ICAgICAgIGJvZHktPmFwcGVuZFN0YXRlbWVudChuZXcgVEludGVybUJyYW5jaChFT3BSZXR1cm4s
IHJlc3VsdCkpOworCisgICAgICAgIGNvbnN0IFRGdW5jdGlvbiAqZnVuY3Rpb24gPSBNYWtlRnVu
Y3Rpb24obVN5bWJvbFRhYmxlLCAiQU5HTEVfc2V0X2x1bSIsIHZlYzNUeXBlLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsmY2Jhc2UtPnZhcmlhYmxl
KCksICZjbHVtLT52YXJpYWJsZSgpfSk7CisgICAgICAgIG1TZXRMdW0gICAgICAgICAgICAgICAg
ICAgPSBNYWtlRnVuY3Rpb25EZWZpbml0aW9uKGZ1bmN0aW9uLCBib2R5KTsKKyAgICB9CisKKyAg
ICAvLyB2ZWMzIEFOR0xFX3NldF9sdW1fc2F0KHZlYzMgY2Jhc2UsIHZlYzMgY3NhdCwgdmVjMyBj
bHVtKQorICAgIC8vIHsKKyAgICAvLyAgICAgZmxvYXQgbWluYmFzZSA9IEFOR0xFX21pbnYzKGNi
YXNlKTsKKyAgICAvLyAgICAgZmxvYXQgc2Jhc2UgPSBBTkdMRV9zYXR2MyhjYmFzZSk7CisgICAg
Ly8gICAgIGZsb2F0IHNzYXQgPSBBTkdMRV9zYXR2Myhjc2F0KTsKKyAgICAvLyAgICAgdmVjMyBj
b2xvcjsKKyAgICAvLyAgICAgaWYgKHNiYXNlID4gMC4wZikKKyAgICAvLyAgICAgeworICAgIC8v
ICAgICAgICAgY29sb3IgPSAoY2Jhc2UgLSBtaW5iYXNlKSAqIHNzYXQgLyBzYmFzZTsKKyAgICAv
LyAgICAgfQorICAgIC8vICAgICBlbHNlCisgICAgLy8gICAgIHsKKyAgICAvLyAgICAgICAgIGNv
bG9yID0gdmVjMygwLjBmKTsKKyAgICAvLyAgICAgfQorICAgIC8vICAgICByZXR1cm4gQU5HTEVf
c2V0X2x1bShjb2xvciwgY2x1bSk7CisgICAgLy8gfQorICAgIHsKKyAgICAgICAgVEludGVybVN5
bWJvbCAqY2Jhc2UgICA9IE1ha2VWYXJpYWJsZShtU3ltYm9sVGFibGUsICJjYmFzZSIsIHZlYzNQ
YXJhbVR5cGUpOworICAgICAgICBUSW50ZXJtU3ltYm9sICpjc2F0ICAgID0gTWFrZVZhcmlhYmxl
KG1TeW1ib2xUYWJsZSwgImNzYXQiLCB2ZWMzUGFyYW1UeXBlKTsKKyAgICAgICAgVEludGVybVN5
bWJvbCAqY2x1bSAgICA9IE1ha2VWYXJpYWJsZShtU3ltYm9sVGFibGUsICJjbHVtIiwgdmVjM1Bh
cmFtVHlwZSk7CisgICAgICAgIFRJbnRlcm1TeW1ib2wgKm1pbmJhc2UgPSBNYWtlVmFyaWFibGUo
bVN5bWJvbFRhYmxlLCAibWluYmFzZSIsIGZsb2F0VHlwZSk7CisgICAgICAgIFRJbnRlcm1TeW1i
b2wgKnNiYXNlICAgPSBNYWtlVmFyaWFibGUobVN5bWJvbFRhYmxlLCAic2Jhc2UiLCBmbG9hdFR5
cGUpOworICAgICAgICBUSW50ZXJtU3ltYm9sICpzc2F0ICAgID0gTWFrZVZhcmlhYmxlKG1TeW1i
b2xUYWJsZSwgInNzYXQiLCBmbG9hdFR5cGUpOworCisgICAgICAgIC8vIEFOR0xFX21pbnYzKGNi
YXNlKQorICAgICAgICBUSW50ZXJtU2VxdWVuY2UgY01pbkFyZyA9IHtjYmFzZX07CisgICAgICAg
IFRJbnRlcm1UeXBlZCAqbWludjMgPQorICAgICAgICAgICAgVEludGVybUFnZ3JlZ2F0ZTo6Q3Jl
YXRlRnVuY3Rpb25DYWxsKCptTWludjMtPmdldEZ1bmN0aW9uKCksICZjTWluQXJnKTsKKworICAg
ICAgICAvLyBBTkdMRV9zYXR2MyhjYmFzZSkKKyAgICAgICAgVEludGVybVNlcXVlbmNlIGNTYXRB
cmcgPSB7Y2Jhc2UtPmRlZXBDb3B5KCl9OworICAgICAgICBUSW50ZXJtVHlwZWQgKmJhc2VTYXR2
MyA9CisgICAgICAgICAgICBUSW50ZXJtQWdncmVnYXRlOjpDcmVhdGVGdW5jdGlvbkNhbGwoKm1T
YXR2My0+Z2V0RnVuY3Rpb24oKSwgJmNTYXRBcmcpOworCisgICAgICAgIC8vIEFOR0xFX3NhdHYz
KGNzYXQpCisgICAgICAgIFRJbnRlcm1TZXF1ZW5jZSBzU2F0QXJnID0ge2NzYXR9OworICAgICAg
ICBUSW50ZXJtVHlwZWQgKnNhdFNhdHYzID0KKyAgICAgICAgICAgIFRJbnRlcm1BZ2dyZWdhdGU6
OkNyZWF0ZUZ1bmN0aW9uQ2FsbCgqbVNhdHYzLT5nZXRGdW5jdGlvbigpLCAmc1NhdEFyZyk7CisK
KyAgICAgICAgVEludGVybUJsb2NrICpib2R5ID0gbmV3IFRJbnRlcm1CbG9jazsKKyAgICAgICAg
Ym9keS0+YXBwZW5kU3RhdGVtZW50KENyZWF0ZVRlbXBJbml0RGVjbGFyYXRpb25Ob2RlKCZtaW5i
YXNlLT52YXJpYWJsZSgpLCBtaW52MykpOworICAgICAgICBib2R5LT5hcHBlbmRTdGF0ZW1lbnQo
Q3JlYXRlVGVtcEluaXREZWNsYXJhdGlvbk5vZGUoJnNiYXNlLT52YXJpYWJsZSgpLCBiYXNlU2F0
djMpKTsKKyAgICAgICAgYm9keS0+YXBwZW5kU3RhdGVtZW50KENyZWF0ZVRlbXBJbml0RGVjbGFy
YXRpb25Ob2RlKCZzc2F0LT52YXJpYWJsZSgpLCBzYXRTYXR2MykpOworCisgICAgICAgIC8vIGNi
YXNlIC0gbWluYmFzZQorICAgICAgICBUSW50ZXJtVHlwZWQgKmNiYXNlTWludXNNaW5iYXNlID0g
bmV3IFRJbnRlcm1CaW5hcnkoRU9wU3ViLCBjYmFzZS0+ZGVlcENvcHkoKSwgbWluYmFzZSk7Cisg
ICAgICAgIC8vIChjYmFzZSAtIG1pbmJhc2UpICogc3NhdAorICAgICAgICBUSW50ZXJtVHlwZWQg
KmNiYXNlTWludXNNaW5iYXNlVGltZXNTc2F0ID0KKyAgICAgICAgICAgIG5ldyBUSW50ZXJtQmlu
YXJ5KEVPcFZlY3RvclRpbWVzU2NhbGFyLCBjYmFzZU1pbnVzTWluYmFzZSwgc3NhdCk7CisgICAg
ICAgIC8vIChjYmFzZSAtIG1pbmJhc2UpICogc3NhdCAvIHNiYXNlCisgICAgICAgIFRJbnRlcm1U
eXBlZCAqY29sb3JTYmFzZUdyZWF0ZXJaZXJvID0KKyAgICAgICAgICAgIG5ldyBUSW50ZXJtQmlu
YXJ5KEVPcERpdiwgY2Jhc2VNaW51c01pbmJhc2VUaW1lc1NzYXQsIHNiYXNlKTsKKworICAgICAg
ICAvLyBzYmFzZSA+IDAuMGYKKyAgICAgICAgVEludGVybVR5cGVkICpncmVhdGVyWmVybyA9IG5l
dyBUSW50ZXJtQmluYXJ5KEVPcEdyZWF0ZXJUaGFuLCBzYmFzZS0+ZGVlcENvcHkoKSwgRmxvYXQo
MCkpOworCisgICAgICAgIC8vIHNiYXNlID4gMC4wZiA/IChjYmFzZSAtIG1pbmJhc2UpICogc3Nh
dCAvIHNiYXNlIDogdmVjMygwLjApCisgICAgICAgIFRJbnRlcm1UeXBlZCAqY29sb3IgPQorICAg
ICAgICAgICAgbmV3IFRJbnRlcm1UZXJuYXJ5KGdyZWF0ZXJaZXJvLCBjb2xvclNiYXNlR3JlYXRl
clplcm8sIENyZWF0ZVplcm9Ob2RlKCp2ZWMzVHlwZSkpOworCisgICAgICAgIC8vIEFOR0xFX3Nl
dF9sdW0oY29sb3IpOworICAgICAgICBUSW50ZXJtU2VxdWVuY2Ugc2V0THVtQXJnID0ge2NvbG9y
LCBjbHVtfTsKKyAgICAgICAgVEludGVybVR5cGVkICpyZXN1bHQgPQorICAgICAgICAgICAgVElu
dGVybUFnZ3JlZ2F0ZTo6Q3JlYXRlRnVuY3Rpb25DYWxsKCptU2V0THVtLT5nZXRGdW5jdGlvbigp
LCAmc2V0THVtQXJnKTsKKworICAgICAgICBib2R5LT5hcHBlbmRTdGF0ZW1lbnQobmV3IFRJbnRl
cm1CcmFuY2goRU9wUmV0dXJuLCByZXN1bHQpKTsKKworICAgICAgICBjb25zdCBURnVuY3Rpb24g
KmZ1bmN0aW9uID0KKyAgICAgICAgICAgIE1ha2VGdW5jdGlvbihtU3ltYm9sVGFibGUsICJBTkdM
RV9zZXRfbHVtX3NhdCIsIHZlYzNUeXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgIHsmY2Jh
c2UtPnZhcmlhYmxlKCksICZjc2F0LT52YXJpYWJsZSgpLCAmY2x1bS0+dmFyaWFibGUoKX0pOwor
ICAgICAgICBtU2V0THVtU2F0ID0gTWFrZUZ1bmN0aW9uRGVmaW5pdGlvbihmdW5jdGlvbiwgYm9k
eSk7CisgICAgfQorfQorCit2b2lkIEJ1aWxkZXI6OmdlbmVyYXRlQmxlbmRGdW5jdGlvbnMoKQor
eworICAgIGNvbnN0IFRQcmVjaXNpb24gcHJlY2lzaW9uID0gbU91dHB1dFZhci0+Z2V0VHlwZSgp
LmdldFByZWNpc2lvbigpOworCisgICAgVFR5cGUgKmZsb2F0UGFyYW1UeXBlID0gbmV3IFRUeXBl
KEVidEZsb2F0LCBwcmVjaXNpb24sIEV2cVBhcmFtSW4sIDEpOworICAgIFRUeXBlICp2ZWMzUGFy
YW1UeXBlICA9IG5ldyBUVHlwZShFYnRGbG9hdCwgcHJlY2lzaW9uLCBFdnFQYXJhbUluLCAzKTsK
KworICAgIGdsOjpCbGVuZEVxdWF0aW9uQml0U2V0IGVuYWJsZWRCbGVuZEVxdWF0aW9ucyhtQWR2
YW5jZWRCbGVuZEVxdWF0aW9ucy5iaXRzKCkpOworICAgIGZvciAoZ2w6OkJsZW5kRXF1YXRpb25U
eXBlIGVxdWF0aW9uIDogZW5hYmxlZEJsZW5kRXF1YXRpb25zKQorICAgIHsKKyAgICAgICAgc3dp
dGNoIChlcXVhdGlvbikKKyAgICAgICAgeworICAgICAgICAgICAgY2FzZSBnbDo6QmxlbmRFcXVh
dGlvblR5cGU6Ok11bHRpcGx5OgorICAgICAgICAgICAgICAgIC8vIGZsb2F0IEFOR0xFX2JsZW5k
X211bHRpcGx5KGZsb2F0IHNyYywgZmxvYXQgZHN0KQorICAgICAgICAgICAgICAgIC8vIHsKKyAg
ICAgICAgICAgICAgICAvLyAgICAgcmV0dXJuIHNyYyAqIGRzdDsKKyAgICAgICAgICAgICAgICAv
LyB9CisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBUSW50ZXJtU3ltYm9s
ICpzcmMgPSBNYWtlVmFyaWFibGUobVN5bWJvbFRhYmxlLCAic3JjIiwgZmxvYXRQYXJhbVR5cGUp
OworICAgICAgICAgICAgICAgICAgICBUSW50ZXJtU3ltYm9sICpkc3QgPSBNYWtlVmFyaWFibGUo
bVN5bWJvbFRhYmxlLCAiZHN0IiwgZmxvYXRQYXJhbVR5cGUpOworCisgICAgICAgICAgICAgICAg
ICAgIC8vIHNyYyAqIGRzdAorICAgICAgICAgICAgICAgICAgICBUSW50ZXJtVHlwZWQgKnJlc3Vs
dCA9IG5ldyBUSW50ZXJtQmluYXJ5KEVPcE11bCwgc3JjLCBkc3QpOworCisgICAgICAgICAgICAg
ICAgICAgIG1CbGVuZEZ1bmNzW2VxdWF0aW9uXSA9IE1ha2VTaW1wbGVGdW5jdGlvbkRlZmluaXRp
b24oCisgICAgICAgICAgICAgICAgICAgICAgICBtU3ltYm9sVGFibGUsICJBTkdMRV9ibGVuZF9t
dWx0aXBseSIsIHJlc3VsdCwge3NyYywgZHN0fSk7CisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBnbDo6QmxlbmRFcXVhdGlvblR5cGU6
OlNjcmVlbjoKKyAgICAgICAgICAgICAgICAvLyBmbG9hdCBBTkdMRV9ibGVuZF9zY3JlZW4oZmxv
YXQgc3JjLCBmbG9hdCBkc3QpCisgICAgICAgICAgICAgICAgLy8geworICAgICAgICAgICAgICAg
IC8vICAgICByZXR1cm4gc3JjICsgZHN0IC0gc3JjICogZHN0OworICAgICAgICAgICAgICAgIC8v
IH0KKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIFRJbnRlcm1TeW1ib2wg
KnNyYyA9IE1ha2VWYXJpYWJsZShtU3ltYm9sVGFibGUsICJzcmMiLCBmbG9hdFBhcmFtVHlwZSk7
CisgICAgICAgICAgICAgICAgICAgIFRJbnRlcm1TeW1ib2wgKmRzdCA9IE1ha2VWYXJpYWJsZSht
U3ltYm9sVGFibGUsICJkc3QiLCBmbG9hdFBhcmFtVHlwZSk7CisKKyAgICAgICAgICAgICAgICAg
ICAgLy8gc3JjICsgZHN0CisgICAgICAgICAgICAgICAgICAgIFRJbnRlcm1UeXBlZCAqc3VtID0g
bmV3IFRJbnRlcm1CaW5hcnkoRU9wQWRkLCBzcmMsIGRzdCk7CisgICAgICAgICAgICAgICAgICAg
IC8vIHNyYyAqIGRzdAorICAgICAgICAgICAgICAgICAgICBUSW50ZXJtVHlwZWQgKm11bCA9IG5l
dyBUSW50ZXJtQmluYXJ5KEVPcE11bCwgc3JjLT5kZWVwQ29weSgpLCBkc3QtPmRlZXBDb3B5KCkp
OworICAgICAgICAgICAgICAgICAgICAvLyBzcmMgKyBkc3QgLSBzcmMgKiBkc3QKKyAgICAgICAg
ICAgICAgICAgICAgVEludGVybVR5cGVkICpyZXN1bHQgPSBuZXcgVEludGVybUJpbmFyeShFT3BT
dWIsIHN1bSwgbXVsKTsKKworICAgICAgICAgICAgICAgICAgICBtQmxlbmRGdW5jc1tlcXVhdGlv
bl0gPSBNYWtlU2ltcGxlRnVuY3Rpb25EZWZpbml0aW9uKAorICAgICAgICAgICAgICAgICAgICAg
ICAgbVN5bWJvbFRhYmxlLCAiQU5HTEVfYmxlbmRfc2NyZWVuIiwgcmVzdWx0LCB7c3JjLCBkc3R9
KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICBjYXNlIGdsOjpCbGVuZEVxdWF0aW9uVHlwZTo6T3ZlcmxheToKKyAgICAgICAgICAgIGNhc2Ug
Z2w6OkJsZW5kRXF1YXRpb25UeXBlOjpIYXJkbGlnaHQ6CisgICAgICAgICAgICAgICAgLy8gZmxv
YXQgQU5HTEVfYmxlbmRfb3ZlcmxheShmbG9hdCBzcmMsIGZsb2F0IGRzdCkKKyAgICAgICAgICAg
ICAgICAvLyB7CisgICAgICAgICAgICAgICAgLy8gICAgIGlmIChkc3QgPD0gMC41ZikKKyAgICAg
ICAgICAgICAgICAvLyAgICAgeworICAgICAgICAgICAgICAgIC8vICAgICAgICAgcmV0dXJuICgy
LjBmICogc3JjICogZHN0KTsKKyAgICAgICAgICAgICAgICAvLyAgICAgfQorICAgICAgICAgICAg
ICAgIC8vICAgICBlbHNlCisgICAgICAgICAgICAgICAgLy8gICAgIHsKKyAgICAgICAgICAgICAg
ICAvLyAgICAgICAgIHJldHVybiAoMS4wZiAtIDIuMGYgKiAoMS4wZiAtIHNyYykgKiAoMS4wZiAt
IGRzdCkpOworICAgICAgICAgICAgICAgIC8vICAgICB9CisgICAgICAgICAgICAgICAgLy8KKyAg
ICAgICAgICAgICAgICAvLyAgICAgLy8gRXF1aXZhbGVudGx5IGdlbmVyYXRlZCBhczoKKyAgICAg
ICAgICAgICAgICAvLyAgICAgLy8gcmV0dXJuIGRzdCA8PSAwLjVmID8gMi4qc3JjKmRzdCA6IDIu
KihzcmMrZHN0KSAtIDIuKnNyYypkc3QgLSAxLjsKKyAgICAgICAgICAgICAgICAvLyB9CisgICAg
ICAgICAgICAgICAgLy8KKyAgICAgICAgICAgICAgICAvLyBmbG9hdCBBTkdMRV9ibGVuZF9oYXJk
bGlnaHQoZmxvYXQgc3JjLCBmbG9hdCBkc3QpCisgICAgICAgICAgICAgICAgLy8geworICAgICAg
ICAgICAgICAgIC8vICAgICAvLyBTYW1lIGFzIG92ZXJsYXksIHdpdGggdGhlIHxpZnwgY2hlY2tp
bmcgfHNyY3wgaW5zdGVhZCBvZiB8ZHN0fC4KKyAgICAgICAgICAgICAgICAvLyB9CisgICAgICAg
ICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBUSW50ZXJtU3ltYm9sICpzcmMgPSBNYWtl
VmFyaWFibGUobVN5bWJvbFRhYmxlLCAic3JjIiwgZmxvYXRQYXJhbVR5cGUpOworICAgICAgICAg
ICAgICAgICAgICBUSW50ZXJtU3ltYm9sICpkc3QgPSBNYWtlVmFyaWFibGUobVN5bWJvbFRhYmxl
LCAiZHN0IiwgZmxvYXRQYXJhbVR5cGUpOworCisgICAgICAgICAgICAgICAgICAgIC8vIHNyYyAr
IGRzdAorICAgICAgICAgICAgICAgICAgICBUSW50ZXJtVHlwZWQgKnN1bSA9IG5ldyBUSW50ZXJt
QmluYXJ5KEVPcEFkZCwgc3JjLCBkc3QpOworICAgICAgICAgICAgICAgICAgICAvLyAyICogKHNy
YyArIGRzdCkKKyAgICAgICAgICAgICAgICAgICAgVEludGVybVR5cGVkICpzdW0yID0gbmV3IFRJ
bnRlcm1CaW5hcnkoRU9wTXVsLCBzdW0sIEZsb2F0KDIpKTsKKyAgICAgICAgICAgICAgICAgICAg
Ly8gc3JjICogZHN0CisgICAgICAgICAgICAgICAgICAgIFRJbnRlcm1UeXBlZCAqbXVsID0gbmV3
IFRJbnRlcm1CaW5hcnkoRU9wTXVsLCBzcmMtPmRlZXBDb3B5KCksIGRzdC0+ZGVlcENvcHkoKSk7
CisgICAgICAgICAgICAgICAgICAgIC8vIDIgKiBzcmMgKiBkc3QKKyAgICAgICAgICAgICAgICAg
ICAgVEludGVybVR5cGVkICptdWwyID0gbmV3IFRJbnRlcm1CaW5hcnkoRU9wTXVsLCBtdWwsIEZs
b2F0KDIpKTsKKyAgICAgICAgICAgICAgICAgICAgLy8gMiAqIChzcmMgKyBkc3QpIC0gMiAqIHNy
YyAqIGRzdAorICAgICAgICAgICAgICAgICAgICBUSW50ZXJtVHlwZWQgKnN1bTJNaW51c011bDIg
PSBuZXcgVEludGVybUJpbmFyeShFT3BTdWIsIHN1bTIsIG11bDIpOworICAgICAgICAgICAgICAg
ICAgICAvLyAyICogKHNyYyArIGRzdCkgLSAyICogc3JjICogZHN0IC0gMQorICAgICAgICAgICAg
ICAgICAgICBUSW50ZXJtVHlwZWQgKnN1bTJNaW51c011bDJNaW51czEgPQorICAgICAgICAgICAg
ICAgICAgICAgICAgbmV3IFRJbnRlcm1CaW5hcnkoRU9wU3ViLCBzdW0yTWludXNNdWwyLCBGbG9h
dCgxKSk7CisKKyAgICAgICAgICAgICAgICAgICAgLy8gZHN0W3NyY10gPD0gMC41CisgICAgICAg
ICAgICAgICAgICAgIFRJbnRlcm1TeW1ib2wgKmNvbmRpdGlvblN5bWJvbCA9CisgICAgICAgICAg
ICAgICAgICAgICAgICBlcXVhdGlvbiA9PSBnbDo6QmxlbmRFcXVhdGlvblR5cGU6Ok92ZXJsYXkg
PyBkc3QgOiBzcmM7CisgICAgICAgICAgICAgICAgICAgIFRJbnRlcm1UeXBlZCAqbGVzc0hhbGYg
PSBuZXcgVEludGVybUJpbmFyeSgKKyAgICAgICAgICAgICAgICAgICAgICAgIEVPcExlc3NUaGFu
RXF1YWwsIGNvbmRpdGlvblN5bWJvbC0+ZGVlcENvcHkoKSwgRmxvYXQoMC41KSk7CisgICAgICAg
ICAgICAgICAgICAgIC8vIGRzdFtzcmNdIDw9IDAuNWYgPyAuLi4KKyAgICAgICAgICAgICAgICAg
ICAgVEludGVybVR5cGVkICpyZXN1bHQgPQorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFRJ
bnRlcm1UZXJuYXJ5KGxlc3NIYWxmLCBtdWwyLT5kZWVwQ29weSgpLCBzdW0yTWludXNNdWwyTWlu
dXMxKTsKKworICAgICAgICAgICAgICAgICAgICBtQmxlbmRGdW5jc1tlcXVhdGlvbl0gPSBNYWtl
U2ltcGxlRnVuY3Rpb25EZWZpbml0aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgbVN5bWJv
bFRhYmxlLAorICAgICAgICAgICAgICAgICAgICAgICAgZXF1YXRpb24gPT0gZ2w6OkJsZW5kRXF1
YXRpb25UeXBlOjpPdmVybGF5ID8gIkFOR0xFX2JsZW5kX292ZXJsYXkiCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAi
QU5HTEVfYmxlbmRfaGFyZGxpZ2h0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCwg
e3NyYywgZHN0fSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgY2FzZSBnbDo6QmxlbmRFcXVhdGlvblR5cGU6OkRhcmtlbjoKKyAgICAgICAg
ICAgICAgICAvLyBmbG9hdCBBTkdMRV9ibGVuZF9kYXJrZW4oZmxvYXQgc3JjLCBmbG9hdCBkc3Qp
CisgICAgICAgICAgICAgICAgLy8geworICAgICAgICAgICAgICAgIC8vICAgICByZXR1cm4gbWlu
KHNyYywgZHN0KTsKKyAgICAgICAgICAgICAgICAvLyB9CisgICAgICAgICAgICAgICAgeworICAg
ICAgICAgICAgICAgICAgICBUSW50ZXJtU3ltYm9sICpzcmMgPSBNYWtlVmFyaWFibGUobVN5bWJv
bFRhYmxlLCAic3JjIiwgZmxvYXRQYXJhbVR5cGUpOworICAgICAgICAgICAgICAgICAgICBUSW50
ZXJtU3ltYm9sICpkc3QgPSBNYWtlVmFyaWFibGUobVN5bWJvbFRhYmxlLCAiZHN0IiwgZmxvYXRQ
YXJhbVR5cGUpOworCisgICAgICAgICAgICAgICAgICAgIC8vIHNyYyAqIGRzdAorICAgICAgICAg
ICAgICAgICAgICBUSW50ZXJtU2VxdWVuY2UgbWluQXJncyA9IHtzcmMsIGRzdH07CisgICAgICAg
ICAgICAgICAgICAgIFRJbnRlcm1UeXBlZCAqcmVzdWx0ID0KKyAgICAgICAgICAgICAgICAgICAg
ICAgIENyZWF0ZUJ1aWx0SW5GdW5jdGlvbkNhbGxOb2RlKCJtaW4iLCAmbWluQXJncywgKm1TeW1i
b2xUYWJsZSwgMTAwKTsKKworICAgICAgICAgICAgICAgICAgICBtQmxlbmRGdW5jc1tlcXVhdGlv
bl0gPSBNYWtlU2ltcGxlRnVuY3Rpb25EZWZpbml0aW9uKAorICAgICAgICAgICAgICAgICAgICAg
ICAgbVN5bWJvbFRhYmxlLCAiQU5HTEVfYmxlbmRfZGFya2VuIiwgcmVzdWx0LCB7c3JjLCBkc3R9
KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICBjYXNlIGdsOjpCbGVuZEVxdWF0aW9uVHlwZTo6TGlnaHRlbjoKKyAgICAgICAgICAgICAgICAv
LyBmbG9hdCBBTkdMRV9ibGVuZF9saWdodGVuKGZsb2F0IHNyYywgZmxvYXQgZHN0KQorICAgICAg
ICAgICAgICAgIC8vIHsKKyAgICAgICAgICAgICAgICAvLyAgICAgcmV0dXJuIG1heChzcmMsIGRz
dCk7CisgICAgICAgICAgICAgICAgLy8gfQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICAgICAgVEludGVybVN5bWJvbCAqc3JjID0gTWFrZVZhcmlhYmxlKG1TeW1ib2xUYWJsZSwg
InNyYyIsIGZsb2F0UGFyYW1UeXBlKTsKKyAgICAgICAgICAgICAgICAgICAgVEludGVybVN5bWJv
bCAqZHN0ID0gTWFrZVZhcmlhYmxlKG1TeW1ib2xUYWJsZSwgImRzdCIsIGZsb2F0UGFyYW1UeXBl
KTsKKworICAgICAgICAgICAgICAgICAgICAvLyBzcmMgKiBkc3QKKyAgICAgICAgICAgICAgICAg
ICAgVEludGVybVNlcXVlbmNlIG1heEFyZ3MgPSB7c3JjLCBkc3R9OworICAgICAgICAgICAgICAg
ICAgICBUSW50ZXJtVHlwZWQgKnJlc3VsdCA9CisgICAgICAgICAgICAgICAgICAgICAgICBDcmVh
dGVCdWlsdEluRnVuY3Rpb25DYWxsTm9kZSgibWF4IiwgJm1heEFyZ3MsICptU3ltYm9sVGFibGUs
IDEwMCk7CisKKyAgICAgICAgICAgICAgICAgICAgbUJsZW5kRnVuY3NbZXF1YXRpb25dID0gTWFr
ZVNpbXBsZUZ1bmN0aW9uRGVmaW5pdGlvbigKKyAgICAgICAgICAgICAgICAgICAgICAgIG1TeW1i
b2xUYWJsZSwgIkFOR0xFX2JsZW5kX2xpZ2h0ZW4iLCByZXN1bHQsIHtzcmMsIGRzdH0pOworICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2Ug
Z2w6OkJsZW5kRXF1YXRpb25UeXBlOjpDb2xvcmRvZGdlOgorICAgICAgICAgICAgICAgIC8vIGZs
b2F0IEFOR0xFX2JsZW5kX2RvZGdlKGZsb2F0IHNyYywgZmxvYXQgZHN0KQorICAgICAgICAgICAg
ICAgIC8vIHsKKyAgICAgICAgICAgICAgICAvLyAgICAgaWYgKGRzdCA8PSAwLjBmKQorICAgICAg
ICAgICAgICAgIC8vICAgICB7CisgICAgICAgICAgICAgICAgLy8gICAgICAgICByZXR1cm4gMC4w
OworICAgICAgICAgICAgICAgIC8vICAgICB9CisgICAgICAgICAgICAgICAgLy8gICAgIGVsc2Ug
aWYgKHNyYyA+PSAxLjBmKSAgIC8vIGRzdCA+IDAuMAorICAgICAgICAgICAgICAgIC8vICAgICB7
CisgICAgICAgICAgICAgICAgLy8gICAgICAgICByZXR1cm4gMS4wOworICAgICAgICAgICAgICAg
IC8vICAgICB9CisgICAgICAgICAgICAgICAgLy8gICAgIGVsc2UgICAgICAgICAgICAgICAgICAg
IC8vIGRzdCA+IDAuMCAmJiBzcmMgPCAxLjAKKyAgICAgICAgICAgICAgICAvLyAgICAgeworICAg
ICAgICAgICAgICAgIC8vICAgICAgICAgcmV0dXJuIG1pbigxLjAsIGRzdCAvICgxLjAgLSBzcmMp
KTsKKyAgICAgICAgICAgICAgICAvLyAgICAgfQorICAgICAgICAgICAgICAgIC8vCisgICAgICAg
ICAgICAgICAgLy8gICAgIC8vIEVxdWl2YWxlbnRseSBnZW5lcmF0ZWQgYXM6CisgICAgICAgICAg
ICAgICAgLy8gICAgIC8vIHJldHVybiBkc3QgPD0gMC4gPyAwLiA6IHNyYyA+PSAxLiA/IDEuIDog
bWluKDEuLCBkc3QgLyAoMS4gLSBzcmMpKTsKKyAgICAgICAgICAgICAgICAvLyB9CisgICAgICAg
ICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBUSW50ZXJtU3ltYm9sICpzcmMgPSBNYWtl
VmFyaWFibGUobVN5bWJvbFRhYmxlLCAic3JjIiwgZmxvYXRQYXJhbVR5cGUpOworICAgICAgICAg
ICAgICAgICAgICBUSW50ZXJtU3ltYm9sICpkc3QgPSBNYWtlVmFyaWFibGUobVN5bWJvbFRhYmxl
LCAiZHN0IiwgZmxvYXRQYXJhbVR5cGUpOworCisgICAgICAgICAgICAgICAgICAgIC8vIDEuIC0g
c3JjCisgICAgICAgICAgICAgICAgICAgIFRJbnRlcm1UeXBlZCAqb25lTWludXNTcmMgPSBuZXcg
VEludGVybUJpbmFyeShFT3BTdWIsIEZsb2F0KDEpLCBzcmMpOworICAgICAgICAgICAgICAgICAg
ICAvLyBkc3QgLyAoMS4gLSBzcmMpCisgICAgICAgICAgICAgICAgICAgIFRJbnRlcm1UeXBlZCAq
ZHN0RGl2T25lTWludXNTcmMgPSBuZXcgVEludGVybUJpbmFyeShFT3BEaXYsIGRzdCwgb25lTWlu
dXNTcmMpOworICAgICAgICAgICAgICAgICAgICAvLyBtaW4oMS4sIGRzdCAvICgxLiAtIHNyYykp
CisgICAgICAgICAgICAgICAgICAgIFRJbnRlcm1TZXF1ZW5jZSBtaW5BcmdzID0ge0Zsb2F0KDEp
LCBkc3REaXZPbmVNaW51c1NyY307CisgICAgICAgICAgICAgICAgICAgIFRJbnRlcm1UeXBlZCAq
cmVzdWx0ID0KKyAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZUJ1aWx0SW5GdW5jdGlvbkNh
bGxOb2RlKCJtaW4iLCAmbWluQXJncywgKm1TeW1ib2xUYWJsZSwgMTAwKTsKKworICAgICAgICAg
ICAgICAgICAgICAvLyBzcmMgPj0gMQorICAgICAgICAgICAgICAgICAgICBUSW50ZXJtVHlwZWQg
KmdyZWF0ZXJPbmUgPQorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFRJbnRlcm1CaW5hcnko
RU9wR3JlYXRlclRoYW5FcXVhbCwgc3JjLT5kZWVwQ29weSgpLCBGbG9hdCgxKSk7CisgICAgICAg
ICAgICAgICAgICAgIC8vIHNyYyA+PSAxLiA/IC4uLgorICAgICAgICAgICAgICAgICAgICByZXN1
bHQgPSBuZXcgVEludGVybVRlcm5hcnkoZ3JlYXRlck9uZSwgRmxvYXQoMSksIHJlc3VsdCk7CisK
KyAgICAgICAgICAgICAgICAgICAgLy8gZHN0IDw9IDAKKyAgICAgICAgICAgICAgICAgICAgVElu
dGVybVR5cGVkICpsZXNzWmVybyA9CisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgVEludGVy
bUJpbmFyeShFT3BMZXNzVGhhbkVxdWFsLCBkc3QtPmRlZXBDb3B5KCksIEZsb2F0KDApKTsKKyAg
ICAgICAgICAgICAgICAgICAgLy8gZHN0IDw9IDAuID8gLi4uCisgICAgICAgICAgICAgICAgICAg
IHJlc3VsdCA9IG5ldyBUSW50ZXJtVGVybmFyeShsZXNzWmVybywgRmxvYXQoMCksIHJlc3VsdCk7
CisKKyAgICAgICAgICAgICAgICAgICAgbUJsZW5kRnVuY3NbZXF1YXRpb25dID0gTWFrZVNpbXBs
ZUZ1bmN0aW9uRGVmaW5pdGlvbigKKyAgICAgICAgICAgICAgICAgICAgICAgIG1TeW1ib2xUYWJs
ZSwgIkFOR0xFX2JsZW5kX2RvZGdlIiwgcmVzdWx0LCB7c3JjLCBkc3R9KTsKKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIGdsOjpCbGVu
ZEVxdWF0aW9uVHlwZTo6Q29sb3JidXJuOgorICAgICAgICAgICAgICAgIC8vIGZsb2F0IEFOR0xF
X2JsZW5kX2J1cm4oZmxvYXQgc3JjLCBmbG9hdCBkc3QpCisgICAgICAgICAgICAgICAgLy8gewor
ICAgICAgICAgICAgICAgIC8vICAgICBpZiAoZHN0ID49IDEuMGYpCisgICAgICAgICAgICAgICAg
Ly8gICAgIHsKKyAgICAgICAgICAgICAgICAvLyAgICAgICAgIHJldHVybiAxLjA7CisgICAgICAg
ICAgICAgICAgLy8gICAgIH0KKyAgICAgICAgICAgICAgICAvLyAgICAgZWxzZSBpZiAoc3JjIDw9
IDAuMGYpICAgLy8gZHN0IDwgMS4wCisgICAgICAgICAgICAgICAgLy8gICAgIHsKKyAgICAgICAg
ICAgICAgICAvLyAgICAgICAgIHJldHVybiAwLjA7CisgICAgICAgICAgICAgICAgLy8gICAgIH0K
KyAgICAgICAgICAgICAgICAvLyAgICAgZWxzZSAgICAgICAgICAgICAgICAgICAgLy8gZHN0IDwg
MS4wICYmIHNyYyA+IDAuMAorICAgICAgICAgICAgICAgIC8vICAgICB7CisgICAgICAgICAgICAg
ICAgLy8gICAgICAgICByZXR1cm4gMS4wZiAtIG1pbigxLjBmLCAoMS4wZiAtIGRzdCkgLyBzcmMp
OworICAgICAgICAgICAgICAgIC8vICAgICB9CisgICAgICAgICAgICAgICAgLy8KKyAgICAgICAg
ICAgICAgICAvLyAgICAgLy8gRXF1aXZhbGVudGx5IGdlbmVyYXRlZCBhczoKKyAgICAgICAgICAg
ICAgICAvLyAgICAgLy8gcmV0dXJuIGRzdCA+PSAxLiA/IDEuIDogc3JjIDw9IDAuID8gMC4gOiAx
LiAtIG1pbigxLiwgKDEuIC0gZHN0KSAvIHNyYyk7CisgICAgICAgICAgICAgICAgLy8gfQorICAg
ICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgVEludGVybVN5bWJvbCAqc3JjID0g
TWFrZVZhcmlhYmxlKG1TeW1ib2xUYWJsZSwgInNyYyIsIGZsb2F0UGFyYW1UeXBlKTsKKyAgICAg
ICAgICAgICAgICAgICAgVEludGVybVN5bWJvbCAqZHN0ID0gTWFrZVZhcmlhYmxlKG1TeW1ib2xU
YWJsZSwgImRzdCIsIGZsb2F0UGFyYW1UeXBlKTsKKworICAgICAgICAgICAgICAgICAgICAvLyAx
LiAtIGRzdAorICAgICAgICAgICAgICAgICAgICBUSW50ZXJtVHlwZWQgKm9uZU1pbnVzRHN0ID0g
bmV3IFRJbnRlcm1CaW5hcnkoRU9wU3ViLCBGbG9hdCgxKSwgZHN0KTsKKyAgICAgICAgICAgICAg
ICAgICAgLy8gKDEuIC0gZHN0KSAvIHNyYworICAgICAgICAgICAgICAgICAgICBUSW50ZXJtVHlw
ZWQgKm9uZU1pbnVzRHN0RGl2U3JjID0gbmV3IFRJbnRlcm1CaW5hcnkoRU9wRGl2LCBvbmVNaW51
c0RzdCwgc3JjKTsKKyAgICAgICAgICAgICAgICAgICAgLy8gbWluKDEuLCAoMS4gLSBkc3QpIC8g
c3JjKQorICAgICAgICAgICAgICAgICAgICBUSW50ZXJtU2VxdWVuY2UgbWluQXJncyA9IHtGbG9h
dCgxKSwgb25lTWludXNEc3REaXZTcmN9OworICAgICAgICAgICAgICAgICAgICBUSW50ZXJtVHlw
ZWQgKnJlc3VsdCA9CisgICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVCdWlsdEluRnVuY3Rp
b25DYWxsTm9kZSgibWluIiwgJm1pbkFyZ3MsICptU3ltYm9sVGFibGUsIDEwMCk7CisgICAgICAg
ICAgICAgICAgICAgIC8vIDEuIC0gbWluKDEuLCAoMS4gLSBkc3QpIC8gc3JjKQorICAgICAgICAg
ICAgICAgICAgICByZXN1bHQgPSBuZXcgVEludGVybUJpbmFyeShFT3BTdWIsIEZsb2F0KDEpLCBy
ZXN1bHQpOworCisgICAgICAgICAgICAgICAgICAgIC8vIHNyYyA8PSAwCisgICAgICAgICAgICAg
ICAgICAgIFRJbnRlcm1UeXBlZCAqbGVzc1plcm8gPQorICAgICAgICAgICAgICAgICAgICAgICAg
bmV3IFRJbnRlcm1CaW5hcnkoRU9wTGVzc1RoYW5FcXVhbCwgc3JjLT5kZWVwQ29weSgpLCBGbG9h
dCgwKSk7CisgICAgICAgICAgICAgICAgICAgIC8vIHNyYyA8PSAwLiA/IC4uLgorICAgICAgICAg
ICAgICAgICAgICByZXN1bHQgPSBuZXcgVEludGVybVRlcm5hcnkobGVzc1plcm8sIEZsb2F0KDAp
LCByZXN1bHQpOworCisgICAgICAgICAgICAgICAgICAgIC8vIGRzdCA+PSAxCisgICAgICAgICAg
ICAgICAgICAgIFRJbnRlcm1UeXBlZCAqZ3JlYXRlck9uZSA9CisgICAgICAgICAgICAgICAgICAg
ICAgICBuZXcgVEludGVybUJpbmFyeShFT3BHcmVhdGVyVGhhbkVxdWFsLCBkc3QtPmRlZXBDb3B5
KCksIEZsb2F0KDEpKTsKKyAgICAgICAgICAgICAgICAgICAgLy8gZHN0ID49IDEuID8gLi4uCisg
ICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IG5ldyBUSW50ZXJtVGVybmFyeShncmVhdGVyT25l
LCBGbG9hdCgxKSwgcmVzdWx0KTsKKworICAgICAgICAgICAgICAgICAgICBtQmxlbmRGdW5jc1tl
cXVhdGlvbl0gPSBNYWtlU2ltcGxlRnVuY3Rpb25EZWZpbml0aW9uKAorICAgICAgICAgICAgICAg
ICAgICAgICAgbVN5bWJvbFRhYmxlLCAiQU5HTEVfYmxlbmRfYnVybiIsIHJlc3VsdCwge3NyYywg
ZHN0fSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgY2FzZSBnbDo6QmxlbmRFcXVhdGlvblR5cGU6OlNvZnRsaWdodDoKKyAgICAgICAgICAg
ICAgICAvLyBmbG9hdCBBTkdMRV9ibGVuZF9zb2Z0bGlnaHQoZmxvYXQgc3JjLCBmbG9hdCBkc3Qp
CisgICAgICAgICAgICAgICAgLy8geworICAgICAgICAgICAgICAgIC8vICAgICBpZiAoc3JjIDw9
IDAuNWYpCisgICAgICAgICAgICAgICAgLy8gICAgIHsKKyAgICAgICAgICAgICAgICAvLyAgICAg
ICAgIHJldHVybiAoZHN0IC0gKDEuMGYgLSAyLjBmICogc3JjKSAqIGRzdCAqICgxLjBmIC0gZHN0
KSk7CisgICAgICAgICAgICAgICAgLy8gICAgIH0KKyAgICAgICAgICAgICAgICAvLyAgICAgZWxz
ZSBpZiAoZHN0IDw9IDAuMjVmKSAgLy8gc3JjID4gMC41CisgICAgICAgICAgICAgICAgLy8gICAg
IHsKKyAgICAgICAgICAgICAgICAvLyAgICAgICAgIHJldHVybiAoZHN0ICsgKDIuMGYgKiBzcmMg
LSAxLjBmKSAqIGRzdCAqICgoMTYuMGYgKiBkc3QgLSAxMi4wZikgKiBkc3QKKyAgICAgICAgICAg
ICAgICAvLyAgICAgICAgICsgMy4wZikpOworICAgICAgICAgICAgICAgIC8vICAgICB9CisgICAg
ICAgICAgICAgICAgLy8gICAgIGVsc2UgICAgICAgICAgICAgICAgICAgIC8vIHNyYyA+IDAuNSAm
JiBkc3QgPiAwLjI1CisgICAgICAgICAgICAgICAgLy8gICAgIHsKKyAgICAgICAgICAgICAgICAv
LyAgICAgICAgIHJldHVybiAoZHN0ICsgKDIuMGYgKiBzcmMgLSAxLjBmKSAqIChzcXJ0KGRzdCkg
LSBkc3QpKTsKKyAgICAgICAgICAgICAgICAvLyAgICAgfQorICAgICAgICAgICAgICAgIC8vCisg
ICAgICAgICAgICAgICAgLy8gICAgIC8vIEVxdWl2YWxlbnRseSBnZW5lcmF0ZWQgYXM6CisgICAg
ICAgICAgICAgICAgLy8gICAgIC8vIHJldHVybiBkc3QgKyAoMi4gKiBzcmMgLSAxLikgKiAoCisg
ICAgICAgICAgICAgICAgLy8gICAgIC8vICAgICAgICAgICAgc3JjIDw9IDAuNSAgPyBkc3QgKiAo
MS4gLSBkc3QpIDoKKyAgICAgICAgICAgICAgICAvLyAgICAgLy8gICAgICAgICAgICBkc3QgPD0g
MC4yNSA/IGRzdCAqICgoMTYuICogZHN0IC0gMTIuKSAqIGRzdCArIDMuKSA6CisgICAgICAgICAg
ICAgICAgLy8gICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICBzcXJ0KGRzdCkgLSBkc3Qp
CisgICAgICAgICAgICAgICAgLy8gfQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg
ICAgICAgVEludGVybVN5bWJvbCAqc3JjID0gTWFrZVZhcmlhYmxlKG1TeW1ib2xUYWJsZSwgInNy
YyIsIGZsb2F0UGFyYW1UeXBlKTsKKyAgICAgICAgICAgICAgICAgICAgVEludGVybVN5bWJvbCAq
ZHN0ID0gTWFrZVZhcmlhYmxlKG1TeW1ib2xUYWJsZSwgImRzdCIsIGZsb2F0UGFyYW1UeXBlKTsK
KworICAgICAgICAgICAgICAgICAgICAvLyAyLiAqIHNyYworICAgICAgICAgICAgICAgICAgICBU
SW50ZXJtVHlwZWQgKnNyYzIgPSBuZXcgVEludGVybUJpbmFyeShFT3BNdWwsIEZsb2F0KDIpLCBz
cmMpOworICAgICAgICAgICAgICAgICAgICAvLyAyLiAqIHNyYyAtIDEuCisgICAgICAgICAgICAg
ICAgICAgIFRJbnRlcm1UeXBlZCAqc3JjMk1pbnVzMSA9IG5ldyBUSW50ZXJtQmluYXJ5KEVPcFN1
Yiwgc3JjMiwgRmxvYXQoMSkpOworICAgICAgICAgICAgICAgICAgICAvLyAxLiAtIGRzdAorICAg
ICAgICAgICAgICAgICAgICBUSW50ZXJtVHlwZWQgKm9uZU1pbnVzRHN0ID0gbmV3IFRJbnRlcm1C
aW5hcnkoRU9wU3ViLCBGbG9hdCgxKSwgZHN0KTsKKyAgICAgICAgICAgICAgICAgICAgLy8gZHN0
ICogKDEuIC0gZHN0KQorICAgICAgICAgICAgICAgICAgICBUSW50ZXJtVHlwZWQgKmRzdFRpbWVz
T25lTWludXNEc3QgPQorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFRJbnRlcm1CaW5hcnko
RU9wTXVsLCBkc3QtPmRlZXBDb3B5KCksIG9uZU1pbnVzRHN0KTsKKyAgICAgICAgICAgICAgICAg
ICAgLy8gMTYuICogZHN0CisgICAgICAgICAgICAgICAgICAgIFRJbnRlcm1UeXBlZCAqZHN0MTYg
PSBuZXcgVEludGVybUJpbmFyeShFT3BNdWwsIEZsb2F0KDE2KSwgZHN0LT5kZWVwQ29weSgpKTsK
KyAgICAgICAgICAgICAgICAgICAgLy8gMTYuICogZHN0IC0gMTIuCisgICAgICAgICAgICAgICAg
ICAgIFRJbnRlcm1UeXBlZCAqZHN0MTZNaW51czEyID0gbmV3IFRJbnRlcm1CaW5hcnkoRU9wU3Vi
LCBkc3QxNiwgRmxvYXQoMTIpKTsKKyAgICAgICAgICAgICAgICAgICAgLy8gKDE2LiAqIGRzdCAt
IDEyLikgKiBkc3QKKyAgICAgICAgICAgICAgICAgICAgVEludGVybVR5cGVkICpkc3QxNk1pbnVz
MTJUaW1lc0RzdCA9CisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgVEludGVybUJpbmFyeShF
T3BNdWwsIGRzdDE2TWludXMxMiwgZHN0LT5kZWVwQ29weSgpKTsKKyAgICAgICAgICAgICAgICAg
ICAgLy8gKDE2LiAqIGRzdCAtIDEyLikgKiBkc3QgKyAzLgorICAgICAgICAgICAgICAgICAgICBU
SW50ZXJtVHlwZWQgKmRzdDE2TWludXMxMlRpbWVzRHN0UGx1czMgPQorICAgICAgICAgICAgICAg
ICAgICAgICAgbmV3IFRJbnRlcm1CaW5hcnkoRU9wQWRkLCBkc3QxNk1pbnVzMTJUaW1lc0RzdCwg
RmxvYXQoMykpOworICAgICAgICAgICAgICAgICAgICAvLyBkc3QgKiAoKDE2LiAqIGRzdCAtIDEy
LikgKiBkc3QgKyAzLikKKyAgICAgICAgICAgICAgICAgICAgVEludGVybVR5cGVkICpkc3RUaW1l
c0RzdDE2TWludXMxMlRpbWVzRHN0UGx1czMgPQorICAgICAgICAgICAgICAgICAgICAgICAgbmV3
IFRJbnRlcm1CaW5hcnkoRU9wTXVsLCBkc3QtPmRlZXBDb3B5KCksIGRzdDE2TWludXMxMlRpbWVz
RHN0UGx1czMpOworICAgICAgICAgICAgICAgICAgICAvLyBzcXJ0KGRzdCkKKyAgICAgICAgICAg
ICAgICAgICAgVEludGVybVNlcXVlbmNlIHNxcnRBcmcgPSB7ZHN0LT5kZWVwQ29weSgpfTsKKyAg
ICAgICAgICAgICAgICAgICAgVEludGVybVR5cGVkICpzcXJ0RHN0ID0KKyAgICAgICAgICAgICAg
ICAgICAgICAgIENyZWF0ZUJ1aWx0SW5GdW5jdGlvbkNhbGxOb2RlKCJzcXJ0IiwgJnNxcnRBcmcs
ICptU3ltYm9sVGFibGUsIDEwMCk7CisgICAgICAgICAgICAgICAgICAgIC8vIHNxcnQoZHN0KSAt
IGRzdAorICAgICAgICAgICAgICAgICAgICBUSW50ZXJtVHlwZWQgKnNxcnREc3RNaW51c0RzdCA9
CisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgVEludGVybUJpbmFyeShFT3BTdWIsIHNxcnRE
c3QsIGRzdC0+ZGVlcENvcHkoKSk7CisKKyAgICAgICAgICAgICAgICAgICAgLy8gZHN0IDw9IDAu
MjUKKyAgICAgICAgICAgICAgICAgICAgVEludGVybVR5cGVkICpsZXNzUXVhcnRlciA9CisgICAg
ICAgICAgICAgICAgICAgICAgICBuZXcgVEludGVybUJpbmFyeShFT3BMZXNzVGhhbkVxdWFsLCBk
c3QtPmRlZXBDb3B5KCksIEZsb2F0KDAuMjUpKTsKKyAgICAgICAgICAgICAgICAgICAgLy8gZHN0
IDw9IDAuMjUgPyAuLi4KKyAgICAgICAgICAgICAgICAgICAgVEludGVybVR5cGVkICpyZXN1bHQg
PSBuZXcgVEludGVybVRlcm5hcnkoCisgICAgICAgICAgICAgICAgICAgICAgICBsZXNzUXVhcnRl
ciwgZHN0VGltZXNEc3QxNk1pbnVzMTJUaW1lc0RzdFBsdXMzLCBzcXJ0RHN0TWludXNEc3QpOwor
CisgICAgICAgICAgICAgICAgICAgIC8vIHNyYyA8PSAwLjUKKyAgICAgICAgICAgICAgICAgICAg
VEludGVybVR5cGVkICpsZXNzSGFsZiA9CisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgVElu
dGVybUJpbmFyeShFT3BMZXNzVGhhbkVxdWFsLCBzcmMtPmRlZXBDb3B5KCksIEZsb2F0KDAuNSkp
OworICAgICAgICAgICAgICAgICAgICAvLyBzcmMgPD0gMC41ID8gLi4uCisgICAgICAgICAgICAg
ICAgICAgIHJlc3VsdCA9IG5ldyBUSW50ZXJtVGVybmFyeShsZXNzSGFsZiwgZHN0VGltZXNPbmVN
aW51c0RzdCwgcmVzdWx0KTsKKworICAgICAgICAgICAgICAgICAgICAvLyAoMi4gKiBzcmMgLSAx
LikgKiAuLi4KKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gbmV3IFRJbnRlcm1CaW5hcnko
RU9wTXVsLCBzcmMyTWludXMxLCByZXN1bHQpOworICAgICAgICAgICAgICAgICAgICAvLyBkc3Qg
KyAoMi4gKiBzcmMgLSAxLikgKiAuLi4KKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gbmV3
IFRJbnRlcm1CaW5hcnkoRU9wQWRkLCBkc3QtPmRlZXBDb3B5KCksIHJlc3VsdCk7CisKKyAgICAg
ICAgICAgICAgICAgICAgbUJsZW5kRnVuY3NbZXF1YXRpb25dID0gTWFrZVNpbXBsZUZ1bmN0aW9u
RGVmaW5pdGlvbigKKyAgICAgICAgICAgICAgICAgICAgICAgIG1TeW1ib2xUYWJsZSwgIkFOR0xF
X2JsZW5kX3NvZnRsaWdodCIsIHJlc3VsdCwge3NyYywgZHN0fSk7CisgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBnbDo6QmxlbmRFcXVh
dGlvblR5cGU6OkRpZmZlcmVuY2U6CisgICAgICAgICAgICAgICAgLy8gZmxvYXQgQU5HTEVfYmxl
bmRfZGlmZmVyZW5jZShmbG9hdCBzcmMsIGZsb2F0IGRzdCkKKyAgICAgICAgICAgICAgICAvLyB7
CisgICAgICAgICAgICAgICAgLy8gICAgIHJldHVybiBhYnMoZHN0IC0gc3JjKTsKKyAgICAgICAg
ICAgICAgICAvLyB9CisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBUSW50
ZXJtU3ltYm9sICpzcmMgPSBNYWtlVmFyaWFibGUobVN5bWJvbFRhYmxlLCAic3JjIiwgZmxvYXRQ
YXJhbVR5cGUpOworICAgICAgICAgICAgICAgICAgICBUSW50ZXJtU3ltYm9sICpkc3QgPSBNYWtl
VmFyaWFibGUobVN5bWJvbFRhYmxlLCAiZHN0IiwgZmxvYXRQYXJhbVR5cGUpOworCisgICAgICAg
ICAgICAgICAgICAgIC8vIGRzdCAtIHNyYworICAgICAgICAgICAgICAgICAgICBUSW50ZXJtVHlw
ZWQgKmRzdE1pbnVzU3JjID0gbmV3IFRJbnRlcm1CaW5hcnkoRU9wU3ViLCBkc3QsIHNyYyk7Cisg
ICAgICAgICAgICAgICAgICAgIC8vIGFicyhkc3QgLSBzcmMpCisgICAgICAgICAgICAgICAgICAg
IFRJbnRlcm1TZXF1ZW5jZSBhYnNBcmdzID0ge2RzdE1pbnVzU3JjfTsKKyAgICAgICAgICAgICAg
ICAgICAgVEludGVybVR5cGVkICpyZXN1bHQgPQorICAgICAgICAgICAgICAgICAgICAgICAgQ3Jl
YXRlQnVpbHRJbkZ1bmN0aW9uQ2FsbE5vZGUoImFicyIsICZhYnNBcmdzLCAqbVN5bWJvbFRhYmxl
LCAxMDApOworCisgICAgICAgICAgICAgICAgICAgIG1CbGVuZEZ1bmNzW2VxdWF0aW9uXSA9IE1h
a2VTaW1wbGVGdW5jdGlvbkRlZmluaXRpb24oCisgICAgICAgICAgICAgICAgICAgICAgICBtU3lt
Ym9sVGFibGUsICJBTkdMRV9ibGVuZF9kaWZmZXJlbmNlIiwgcmVzdWx0LCB7c3JjLCBkc3R9KTsK
KyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBj
YXNlIGdsOjpCbGVuZEVxdWF0aW9uVHlwZTo6RXhjbHVzaW9uOgorICAgICAgICAgICAgICAgIC8v
IGZsb2F0IEFOR0xFX2JsZW5kX2V4Y2x1c2lvbihmbG9hdCBzcmMsIGZsb2F0IGRzdCkKKyAgICAg
ICAgICAgICAgICAvLyB7CisgICAgICAgICAgICAgICAgLy8gICAgIHJldHVybiBzcmMgKyBkc3Qg
LSAoMi4wZiAqIHNyYyAqIGRzdCk7CisgICAgICAgICAgICAgICAgLy8gfQorICAgICAgICAgICAg
ICAgIHsKKyAgICAgICAgICAgICAgICAgICAgVEludGVybVN5bWJvbCAqc3JjID0gTWFrZVZhcmlh
YmxlKG1TeW1ib2xUYWJsZSwgInNyYyIsIGZsb2F0UGFyYW1UeXBlKTsKKyAgICAgICAgICAgICAg
ICAgICAgVEludGVybVN5bWJvbCAqZHN0ID0gTWFrZVZhcmlhYmxlKG1TeW1ib2xUYWJsZSwgImRz
dCIsIGZsb2F0UGFyYW1UeXBlKTsKKworICAgICAgICAgICAgICAgICAgICAvLyBzcmMgKyBkc3QK
KyAgICAgICAgICAgICAgICAgICAgVEludGVybVR5cGVkICpzdW0gPSBuZXcgVEludGVybUJpbmFy
eShFT3BBZGQsIHNyYywgZHN0KTsKKyAgICAgICAgICAgICAgICAgICAgLy8gc3JjICogZHN0Cisg
ICAgICAgICAgICAgICAgICAgIFRJbnRlcm1UeXBlZCAqbXVsID0gbmV3IFRJbnRlcm1CaW5hcnko
RU9wTXVsLCBzcmMtPmRlZXBDb3B5KCksIGRzdC0+ZGVlcENvcHkoKSk7CisgICAgICAgICAgICAg
ICAgICAgIC8vIDIgKiBzcmMgKiBkc3QKKyAgICAgICAgICAgICAgICAgICAgVEludGVybVR5cGVk
ICptdWwyID0gbmV3IFRJbnRlcm1CaW5hcnkoRU9wTXVsLCBtdWwsIEZsb2F0KDIpKTsKKyAgICAg
ICAgICAgICAgICAgICAgLy8gc3JjICsgZHN0IC0gMiAqIHNyYyAqIGRzdAorICAgICAgICAgICAg
ICAgICAgICBUSW50ZXJtVHlwZWQgKnJlc3VsdCA9IG5ldyBUSW50ZXJtQmluYXJ5KEVPcFN1Yiwg
c3VtLCBtdWwyKTsKKworICAgICAgICAgICAgICAgICAgICBtQmxlbmRGdW5jc1tlcXVhdGlvbl0g
PSBNYWtlU2ltcGxlRnVuY3Rpb25EZWZpbml0aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAg
bVN5bWJvbFRhYmxlLCAiQU5HTEVfYmxlbmRfZXhjbHVzaW9uIiwgcmVzdWx0LCB7c3JjLCBkc3R9
KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICBjYXNlIGdsOjpCbGVuZEVxdWF0aW9uVHlwZTo6SHNsSHVlOgorICAgICAgICAgICAgICAgIC8v
IHZlYzMgQU5HTEVfYmxlbmRfaHNsX2h1ZSh2ZWMzIHNyYywgdmVjMyBkc3QpCisgICAgICAgICAg
ICAgICAgLy8geworICAgICAgICAgICAgICAgIC8vICAgICByZXR1cm4gQU5HTEVfc2V0X2x1bV9z
YXQoc3JjLCBkc3QsIGRzdCk7CisgICAgICAgICAgICAgICAgLy8gfQorICAgICAgICAgICAgICAg
IHsKKyAgICAgICAgICAgICAgICAgICAgVEludGVybVN5bWJvbCAqc3JjID0gTWFrZVZhcmlhYmxl
KG1TeW1ib2xUYWJsZSwgInNyYyIsIHZlYzNQYXJhbVR5cGUpOworICAgICAgICAgICAgICAgICAg
ICBUSW50ZXJtU3ltYm9sICpkc3QgPSBNYWtlVmFyaWFibGUobVN5bWJvbFRhYmxlLCAiZHN0Iiwg
dmVjM1BhcmFtVHlwZSk7CisKKyAgICAgICAgICAgICAgICAgICAgVEludGVybVNlcXVlbmNlIGFy
Z3MgPSB7c3JjLCBkc3QsIGRzdC0+ZGVlcENvcHkoKX07CisgICAgICAgICAgICAgICAgICAgIFRJ
bnRlcm1UeXBlZCAqcmVzdWx0ID0KKyAgICAgICAgICAgICAgICAgICAgICAgIFRJbnRlcm1BZ2dy
ZWdhdGU6OkNyZWF0ZUZ1bmN0aW9uQ2FsbCgqbVNldEx1bVNhdC0+Z2V0RnVuY3Rpb24oKSwgJmFy
Z3MpOworCisgICAgICAgICAgICAgICAgICAgIG1CbGVuZEZ1bmNzW2VxdWF0aW9uXSA9IE1ha2VT
aW1wbGVGdW5jdGlvbkRlZmluaXRpb24oCisgICAgICAgICAgICAgICAgICAgICAgICBtU3ltYm9s
VGFibGUsICJBTkdMRV9ibGVuZF9oc2xfaHVlIiwgcmVzdWx0LCB7c3JjLCBkc3R9KTsKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIGds
OjpCbGVuZEVxdWF0aW9uVHlwZTo6SHNsU2F0dXJhdGlvbjoKKyAgICAgICAgICAgICAgICAvLyB2
ZWMzIEFOR0xFX2JsZW5kX2hzbF9zYXR1cmF0aW9uKHZlYzMgc3JjLCB2ZWMzIGRzdCkKKyAgICAg
ICAgICAgICAgICAvLyB7CisgICAgICAgICAgICAgICAgLy8gICAgIHJldHVybiBBTkdMRV9zZXRf
bHVtX3NhdChkc3QsIHNyYywgZHN0KTsKKyAgICAgICAgICAgICAgICAvLyB9CisgICAgICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgICAgICBUSW50ZXJtU3ltYm9sICpzcmMgPSBNYWtlVmFy
aWFibGUobVN5bWJvbFRhYmxlLCAic3JjIiwgdmVjM1BhcmFtVHlwZSk7CisgICAgICAgICAgICAg
ICAgICAgIFRJbnRlcm1TeW1ib2wgKmRzdCA9IE1ha2VWYXJpYWJsZShtU3ltYm9sVGFibGUsICJk
c3QiLCB2ZWMzUGFyYW1UeXBlKTsKKworICAgICAgICAgICAgICAgICAgICBUSW50ZXJtU2VxdWVu
Y2UgYXJncyA9IHtkc3QsIHNyYywgZHN0LT5kZWVwQ29weSgpfTsKKyAgICAgICAgICAgICAgICAg
ICAgVEludGVybVR5cGVkICpyZXN1bHQgPQorICAgICAgICAgICAgICAgICAgICAgICAgVEludGVy
bUFnZ3JlZ2F0ZTo6Q3JlYXRlRnVuY3Rpb25DYWxsKCptU2V0THVtU2F0LT5nZXRGdW5jdGlvbigp
LCAmYXJncyk7CisKKyAgICAgICAgICAgICAgICAgICAgbUJsZW5kRnVuY3NbZXF1YXRpb25dID0g
TWFrZVNpbXBsZUZ1bmN0aW9uRGVmaW5pdGlvbigKKyAgICAgICAgICAgICAgICAgICAgICAgIG1T
eW1ib2xUYWJsZSwgIkFOR0xFX2JsZW5kX2hzbF9zYXR1cmF0aW9uIiwgcmVzdWx0LCB7c3JjLCBk
c3R9KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICBjYXNlIGdsOjpCbGVuZEVxdWF0aW9uVHlwZTo6SHNsQ29sb3I6CisgICAgICAgICAgICAg
ICAgLy8gdmVjMyBBTkdMRV9ibGVuZF9oc2xfY29sb3IodmVjMyBzcmMsIHZlYzMgZHN0KQorICAg
ICAgICAgICAgICAgIC8vIHsKKyAgICAgICAgICAgICAgICAvLyAgICAgcmV0dXJuIEFOR0xFX3Nl
dF9sdW0oc3JjLCBkc3QpOworICAgICAgICAgICAgICAgIC8vIH0KKyAgICAgICAgICAgICAgICB7
CisgICAgICAgICAgICAgICAgICAgIFRJbnRlcm1TeW1ib2wgKnNyYyA9IE1ha2VWYXJpYWJsZSht
U3ltYm9sVGFibGUsICJzcmMiLCB2ZWMzUGFyYW1UeXBlKTsKKyAgICAgICAgICAgICAgICAgICAg
VEludGVybVN5bWJvbCAqZHN0ID0gTWFrZVZhcmlhYmxlKG1TeW1ib2xUYWJsZSwgImRzdCIsIHZl
YzNQYXJhbVR5cGUpOworCisgICAgICAgICAgICAgICAgICAgIFRJbnRlcm1TZXF1ZW5jZSBhcmdz
ID0ge3NyYywgZHN0fTsKKyAgICAgICAgICAgICAgICAgICAgVEludGVybVR5cGVkICpyZXN1bHQg
PQorICAgICAgICAgICAgICAgICAgICAgICAgVEludGVybUFnZ3JlZ2F0ZTo6Q3JlYXRlRnVuY3Rp
b25DYWxsKCptU2V0THVtLT5nZXRGdW5jdGlvbigpLCAmYXJncyk7CisKKyAgICAgICAgICAgICAg
ICAgICAgbUJsZW5kRnVuY3NbZXF1YXRpb25dID0gTWFrZVNpbXBsZUZ1bmN0aW9uRGVmaW5pdGlv
bigKKyAgICAgICAgICAgICAgICAgICAgICAgIG1TeW1ib2xUYWJsZSwgIkFOR0xFX2JsZW5kX2hz
bF9jb2xvciIsIHJlc3VsdCwge3NyYywgZHN0fSk7CisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBnbDo6QmxlbmRFcXVhdGlvblR5cGU6
OkhzbEx1bWlub3NpdHk6CisgICAgICAgICAgICAgICAgLy8gdmVjMyBBTkdMRV9ibGVuZF9oc2xf
bHVtaW5vc2l0eSh2ZWMzIHNyYywgdmVjMyBkc3QpCisgICAgICAgICAgICAgICAgLy8geworICAg
ICAgICAgICAgICAgIC8vICAgICByZXR1cm4gQU5HTEVfc2V0X2x1bShkc3QsIHNyYyk7CisgICAg
ICAgICAgICAgICAgLy8gfQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAg
VEludGVybVN5bWJvbCAqc3JjID0gTWFrZVZhcmlhYmxlKG1TeW1ib2xUYWJsZSwgInNyYyIsIHZl
YzNQYXJhbVR5cGUpOworICAgICAgICAgICAgICAgICAgICBUSW50ZXJtU3ltYm9sICpkc3QgPSBN
YWtlVmFyaWFibGUobVN5bWJvbFRhYmxlLCAiZHN0IiwgdmVjM1BhcmFtVHlwZSk7CisKKyAgICAg
ICAgICAgICAgICAgICAgVEludGVybVNlcXVlbmNlIGFyZ3MgPSB7ZHN0LCBzcmN9OworICAgICAg
ICAgICAgICAgICAgICBUSW50ZXJtVHlwZWQgKnJlc3VsdCA9CisgICAgICAgICAgICAgICAgICAg
ICAgICBUSW50ZXJtQWdncmVnYXRlOjpDcmVhdGVGdW5jdGlvbkNhbGwoKm1TZXRMdW0tPmdldEZ1
bmN0aW9uKCksICZhcmdzKTsKKworICAgICAgICAgICAgICAgICAgICBtQmxlbmRGdW5jc1tlcXVh
dGlvbl0gPSBNYWtlU2ltcGxlRnVuY3Rpb25EZWZpbml0aW9uKAorICAgICAgICAgICAgICAgICAg
ICAgICAgbVN5bWJvbFRhYmxlLCAiQU5HTEVfYmxlbmRfaHNsX2x1bWlub3NpdHkiLCByZXN1bHQs
IHtzcmMsIGRzdH0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgLy8gT25seSBhZHZhbmNlZCBi
bGVuZCBlcXVhdGlvbnMgYXJlIHBvc3NpYmxlLgorICAgICAgICAgICAgICAgIFVOUkVBQ0hBQkxF
KCk7CisgICAgICAgIH0KKyAgICB9Cit9CisKK3ZvaWQgQnVpbGRlcjo6aW5zZXJ0R2VuZXJhdGVk
RnVuY3Rpb25zKFRJbnRlcm1CbG9jayAqcm9vdCkKK3sKKyAgICAvLyBJbnNlcnQgYWxsIGdlbmVy
YXRlZCBmdW5jdGlvbnMgaW4gcm9vdC4gIFNpbmNlIHRoZXkgYXJlIGFsbCBpbnNlcnRlZCBhdCBp
bmRleCAwLCBIU0wgaGVscGVycworICAgIC8vIGFyZSBpbnNlcnRlZCBsYXN0LCBhbmQgaW4gb3Bw
b3NpdGUgb3JkZXIuCisgICAgZm9yIChUSW50ZXJtRnVuY3Rpb25EZWZpbml0aW9uICpibGVuZEZ1
bmMgOiBtQmxlbmRGdW5jcykKKyAgICB7CisgICAgICAgIGlmIChibGVuZEZ1bmMgIT0gbnVsbHB0
cikKKyAgICAgICAgeworICAgICAgICAgICAgcm9vdC0+aW5zZXJ0U3RhdGVtZW50KDAsIGJsZW5k
RnVuYyk7CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKG1NaW52MyAhPSBudWxscHRyKQorICAg
IHsKKyAgICAgICAgcm9vdC0+aW5zZXJ0U3RhdGVtZW50KDAsIG1TZXRMdW1TYXQpOworICAgICAg
ICByb290LT5pbnNlcnRTdGF0ZW1lbnQoMCwgbVNldEx1bSk7CisgICAgICAgIHJvb3QtPmluc2Vy
dFN0YXRlbWVudCgwLCBtQ2xpcENvbG9yKTsKKyAgICAgICAgcm9vdC0+aW5zZXJ0U3RhdGVtZW50
KDAsIG1TYXR2Myk7CisgICAgICAgIHJvb3QtPmluc2VydFN0YXRlbWVudCgwLCBtTHVtdjMpOwor
ICAgICAgICByb290LT5pbnNlcnRTdGF0ZW1lbnQoMCwgbU1heHYzKTsKKyAgICAgICAgcm9vdC0+
aW5zZXJ0U3RhdGVtZW50KDAsIG1NaW52Myk7CisgICAgfQorfQorCitUSW50ZXJtU3ltYm9sICpC
dWlsZGVyOjpwcmVtdWx0aXBseUFscGhhKFRJbnRlcm1CbG9jayAqYmxlbmRCbG9jaywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVEludGVybVR5cGVkICp2YXIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUp
Cit7CisgICAgY29uc3QgVFByZWNpc2lvbiBwcmVjaXNpb24gPSBtT3V0cHV0VmFyLT5nZXRUeXBl
KCkuZ2V0UHJlY2lzaW9uKCk7CisgICAgVFR5cGUgKnZlYzNUeXBlICAgICAgICAgICAgPSBuZXcg
VFR5cGUoRWJ0RmxvYXQsIHByZWNpc2lvbiwgRXZxVGVtcG9yYXJ5LCAzKTsKKworICAgIC8vIENh
bGN1bGF0ZSBhbHBoYSA9PSAwID8gdmVjMygwKSA6IHJnYi9hbHBoYQorICAgIFRJbnRlcm1UeXBl
ZCAqYWxwaGEgICAgICAgPSBuZXcgVEludGVybVN3aXp6bGUodmFyLCB7M30pOworICAgIFRJbnRl
cm1UeXBlZCAqcmdiICAgICAgICAgPSBuZXcgVEludGVybVN3aXp6bGUodmFyLT5kZWVwQ29weSgp
LCB7MCwgMSwgMn0pOworICAgIFRJbnRlcm1UeXBlZCAqcmdiRGl2QWxwaGEgPSBuZXcgVEludGVy
bUJpbmFyeShFT3BEaXYsIHJnYiwgYWxwaGEpOworCisgICAgVEludGVybVR5cGVkICphbHBoYVpl
cm8gPSBuZXcgVEludGVybUJpbmFyeShFT3BFcXVhbCwgYWxwaGEtPmRlZXBDb3B5KCksIEZsb2F0
KDApKTsKKyAgICBUSW50ZXJtVHlwZWQgKnByZW11bHRpcGxpZWQgPQorICAgICAgICBuZXcgVElu
dGVybVRlcm5hcnkoYWxwaGFaZXJvLCBDcmVhdGVaZXJvTm9kZSgqdmVjM1R5cGUpLCByZ2JEaXZB
bHBoYSk7CisKKyAgICBUSW50ZXJtU3ltYm9sICpzeW1ib2wgPSBNYWtlVmFyaWFibGUobVN5bWJv
bFRhYmxlLCBuYW1lLCB2ZWMzVHlwZSk7CisgICAgYmxlbmRCbG9jay0+YXBwZW5kU3RhdGVtZW50
KENyZWF0ZVRlbXBJbml0RGVjbGFyYXRpb25Ob2RlKCZzeW1ib2wtPnZhcmlhYmxlKCksIHByZW11
bHRpcGxpZWQpKTsKKworICAgIHJldHVybiBzeW1ib2w7Cit9CisKK1RJbnRlcm1UeXBlZCAqR2V0
Rmlyc3RFbGVtZW50SWZBcnJheShUSW50ZXJtVHlwZWQgKnZhcikKK3sKKyAgICBUSW50ZXJtVHlw
ZWQgKmVsZW1lbnQgPSB2YXI7CisgICAgd2hpbGUgKGVsZW1lbnQtPmdldFR5cGUoKS5pc0FycmF5
KCkpCisgICAgeworICAgICAgICBlbGVtZW50ID0gbmV3IFRJbnRlcm1CaW5hcnkoRU9wSW5kZXhE
aXJlY3QsIGVsZW1lbnQsIENyZWF0ZUluZGV4Tm9kZSgwKSk7CisgICAgfQorICAgIHJldHVybiBl
bGVtZW50OworfQorCit2b2lkIEJ1aWxkZXI6OmdlbmVyYXRlUHJlYW1ibGUoVEludGVybUJsb2Nr
ICpibGVuZEJsb2NrKQoreworICAgIC8vIFVzZSBzdWJwYXNzTG9hZCB0byByZWFkIGZyb20gdGhl
IGlucHV0IGF0dGFjaG1lbnQKKyAgICBjb25zdCBUUHJlY2lzaW9uIHByZWNpc2lvbiAgICAgID0g
bU91dHB1dFZhci0+Z2V0VHlwZSgpLmdldFByZWNpc2lvbigpOworICAgIFRUeXBlICp2ZWM0VHlw
ZSAgICAgICAgICAgICAgICAgPSBuZXcgVFR5cGUoRWJ0RmxvYXQsIHByZWNpc2lvbiwgRXZxVGVt
cG9yYXJ5LCA0KTsKKyAgICBUSW50ZXJtU3ltYm9sICpzdWJwYXNzSW5wdXREYXRhID0gTWFrZVZh
cmlhYmxlKG1TeW1ib2xUYWJsZSwgIkFOR0xFTGFzdEZyYWdEYXRhIiwgdmVjNFR5cGUpOworCisg
ICAgLy8gSW5pdGlhbGl6ZSBpdCB3aXRoIHN1YnBhc3NMb2FkKCkgcmVzdWx0LgorCisgICAgLy8g
VE9ETzogc3VwcG9ydCBpbnRlcmFjdGlvbiB3aXRoIG11bHRpc2FtcGxlZCBmcmFtZWJ1ZmZlcnMu
ICBGb3IgZXhhbXBsZSwgdGhlIHNhbXBsZSBJRCBuZWVkcworICAgIC8vIHRvIGJlIHByb3ZpZGVk
IHRvIHRoZSBidWlsdC1pbiBjYWxsIGhlcmUuICBodHRwOi8vYW5nbGVidWcuY29tLzYxOTUKKwor
ICAgIFRJbnRlcm1TZXF1ZW5jZSBzdWJwYXNzQXJndW1lbnRzICA9IHtuZXcgVEludGVybVN5bWJv
bChtU3VicGFzc0lucHV0VmFyKX07CisgICAgVEludGVybVR5cGVkICpzdWJwYXNzTG9hZEZ1bmND
YWxsID0gQ3JlYXRlQnVpbHRJbkZ1bmN0aW9uQ2FsbE5vZGUoCisgICAgICAgICJzdWJwYXNzTG9h
ZCIsICZzdWJwYXNzQXJndW1lbnRzLCAqbVN5bWJvbFRhYmxlLCBrRVNTTFZ1bGthbk9ubHkpOwor
CisgICAgYmxlbmRCbG9jay0+YXBwZW5kU3RhdGVtZW50KAorICAgICAgICBDcmVhdGVUZW1wSW5p
dERlY2xhcmF0aW9uTm9kZSgmc3VicGFzc0lucHV0RGF0YS0+dmFyaWFibGUoKSwgc3VicGFzc0xv
YWRGdW5jQ2FsbCkpOworCisgICAgLy8gR2V0IGVsZW1lbnQgMCBvZiB0aGUgb3V0cHV0LCBpZiBh
cnJheS4KKyAgICBUSW50ZXJtVHlwZWQgKm91dHB1dCA9IEdldEZpcnN0RWxlbWVudElmQXJyYXko
bmV3IFRJbnRlcm1TeW1ib2wobU91dHB1dFZhcikpOworCisgICAgLy8gRXhwYW5kIG91dHB1dCB0
byB2ZWM0LCBpZiBub3QgYWxyZWFkeS4KKyAgICB1aW50MzJfdCB2ZWNTaXplID0gbU91dHB1dFZh
ci0+Z2V0VHlwZSgpLmdldE5vbWluYWxTaXplKCk7CisgICAgaWYgKHZlY1NpemUgPCA0KQorICAg
IHsKKyAgICAgICAgVEludGVybVNlcXVlbmNlIHZlYzRBcmdzID0ge291dHB1dH07CisgICAgICAg
IGZvciAodWludDMyX3QgY2hhbm5lbCA9IHZlY1NpemU7IGNoYW5uZWwgPCAzOyArK2NoYW5uZWwp
CisgICAgICAgIHsKKyAgICAgICAgICAgIHZlYzRBcmdzLnB1c2hfYmFjayhGbG9hdCgwKSk7Cisg
ICAgICAgIH0KKyAgICAgICAgdmVjNEFyZ3MucHVzaF9iYWNrKEZsb2F0KDEpKTsKKyAgICAgICAg
b3V0cHV0ID0gVEludGVybUFnZ3JlZ2F0ZTo6Q3JlYXRlQ29uc3RydWN0b3IoKnZlYzRUeXBlLCAm
dmVjNEFyZ3MpOworICAgIH0KKworICAgIC8vIFByZW11bHRpcGx5IHNyYyBhbmQgZHN0LgorICAg
IG1TcmMgPSBwcmVtdWx0aXBseUFscGhhKGJsZW5kQmxvY2ssIG91dHB1dCwgIkFOR0xFX2JsZW5k
X3NyYyIpOworICAgIG1Ec3QgPSBwcmVtdWx0aXBseUFscGhhKGJsZW5kQmxvY2ssIHN1YnBhc3NJ
bnB1dERhdGEsICJBTkdMRV9ibGVuZF9kc3QiKTsKKworICAgIC8vIENhbGN1bGF0ZSB0aGUgcCBj
b2VmZmljaWVudHM6CisgICAgVEludGVybVR5cGVkICpzcmNBbHBoYSA9IG5ldyBUSW50ZXJtU3dp
enpsZShvdXRwdXQtPmRlZXBDb3B5KCksIHszfSk7CisgICAgVEludGVybVR5cGVkICpkc3RBbHBo
YSA9IG5ldyBUSW50ZXJtU3dpenpsZShzdWJwYXNzSW5wdXREYXRhLT5kZWVwQ29weSgpLCB7M30p
OworCisgICAgLy8gQXMgKiBBZAorICAgIFRJbnRlcm1UeXBlZCAqQXNUaW1lc0FkID0gbmV3IFRJ
bnRlcm1CaW5hcnkoRU9wTXVsLCBzcmNBbHBoYSwgZHN0QWxwaGEpOworICAgIC8vIEFzICogKDEu
IC0gQWQpCisgICAgVEludGVybVR5cGVkICpvbmVNaW51c0FkICAgICAgICA9IG5ldyBUSW50ZXJt
QmluYXJ5KEVPcFN1YiwgRmxvYXQoMSksIGRzdEFscGhhLT5kZWVwQ29weSgpKTsKKyAgICBUSW50
ZXJtVHlwZWQgKkFzVGltZXNPbmVNaW51c0FkID0gbmV3IFRJbnRlcm1CaW5hcnkoRU9wTXVsLCBz
cmNBbHBoYS0+ZGVlcENvcHkoKSwgb25lTWludXNBZCk7CisgICAgLy8gQWQgKiAoMS4gLSBBcykK
KyAgICBUSW50ZXJtVHlwZWQgKm9uZU1pbnVzQXMgICAgICAgID0gbmV3IFRJbnRlcm1CaW5hcnko
RU9wU3ViLCBGbG9hdCgxKSwgc3JjQWxwaGEtPmRlZXBDb3B5KCkpOworICAgIFRJbnRlcm1UeXBl
ZCAqQWRUaW1lc09uZU1pbnVzQXMgPSBuZXcgVEludGVybUJpbmFyeShFT3BNdWwsIGRzdEFscGhh
LT5kZWVwQ29weSgpLCBvbmVNaW51c0FzKTsKKworICAgIG1QMCA9IE1ha2VWYXJpYWJsZShtU3lt
Ym9sVGFibGUsICJBTkdMRV9ibGVuZF9wMCIsICZzcmNBbHBoYS0+Z2V0VHlwZSgpKTsKKyAgICBt
UDEgPSBNYWtlVmFyaWFibGUobVN5bWJvbFRhYmxlLCAiQU5HTEVfYmxlbmRfcDEiLCAmc3JjQWxw
aGEtPmdldFR5cGUoKSk7CisgICAgbVAyID0gTWFrZVZhcmlhYmxlKG1TeW1ib2xUYWJsZSwgIkFO
R0xFX2JsZW5kX3AyIiwgJnNyY0FscGhhLT5nZXRUeXBlKCkpOworCisgICAgYmxlbmRCbG9jay0+
YXBwZW5kU3RhdGVtZW50KENyZWF0ZVRlbXBJbml0RGVjbGFyYXRpb25Ob2RlKCZtUDAtPnZhcmlh
YmxlKCksIEFzVGltZXNBZCkpOworICAgIGJsZW5kQmxvY2stPmFwcGVuZFN0YXRlbWVudChDcmVh
dGVUZW1wSW5pdERlY2xhcmF0aW9uTm9kZSgmbVAxLT52YXJpYWJsZSgpLCBBc1RpbWVzT25lTWlu
dXNBZCkpOworICAgIGJsZW5kQmxvY2stPmFwcGVuZFN0YXRlbWVudChDcmVhdGVUZW1wSW5pdERl
Y2xhcmF0aW9uTm9kZSgmbVAyLT52YXJpYWJsZSgpLCBBZFRpbWVzT25lTWludXNBcykpOworfQor
Cit2b2lkIEJ1aWxkZXI6OmdlbmVyYXRlRXF1YXRpb25Td2l0Y2goVEludGVybUJsb2NrICpibGVu
ZEJsb2NrKQoreworICAgIGNvbnN0IFRQcmVjaXNpb24gcHJlY2lzaW9uID0gbU91dHB1dFZhci0+
Z2V0VHlwZSgpLmdldFByZWNpc2lvbigpOworCisgICAgVFR5cGUgKnZlYzNUeXBlID0gbmV3IFRU
eXBlKEVidEZsb2F0LCBwcmVjaXNpb24sIEV2cVRlbXBvcmFyeSwgMyk7CisgICAgVFR5cGUgKnZl
YzRUeXBlID0gbmV3IFRUeXBlKEVidEZsb2F0LCBwcmVjaXNpb24sIEV2cVRlbXBvcmFyeSwgNCk7
CisKKyAgICAvLyBUaGUgZm9sbG93aW5nIGNvZGUgaXMgZ2VuZXJhdGVkOgorICAgIC8vCisgICAg
Ly8gdmVjMyBmOworICAgIC8vIHN3dGljaCAoZXF1YXRpb24pCisgICAgLy8geworICAgIC8vICAg
IGNhc2UgQToKKyAgICAvLyAgICAgICBmID0gQU5HTEVfYmxlbmRfYSguLik7CisgICAgLy8gICAg
ICAgYnJlYWs7CisgICAgLy8gICAgY2FzZSBCOgorICAgIC8vICAgICAgIGYgPSBBTkdMRV9ibGVu
ZF9iKC4uKTsKKyAgICAvLyAgICAgICBicmVhazsKKyAgICAvLyAgICAuLi4KKyAgICAvLyB9Cisg
ICAgLy8KKyAgICAvLyB2ZWMzIHJnYiA9IGYgKiBwMCArIHNyYyAqIHAxICsgZHN0ICogcDIKKyAg
ICAvLyBmbG9hdCBhID0gcDAgKyBwMSArIHAyCisgICAgLy8KKyAgICAvLyBvdXRwdXQgPSB2ZWM0
KHJnYiwgYSk7CisKKyAgICBUSW50ZXJtU3ltYm9sICpmID0gTWFrZVZhcmlhYmxlKG1TeW1ib2xU
YWJsZSwgIkFOR0xFX2YiLCB2ZWMzVHlwZSk7CisgICAgYmxlbmRCbG9jay0+YXBwZW5kU3RhdGVt
ZW50KENyZWF0ZVRlbXBEZWNsYXJhdGlvbk5vZGUoJmYtPnZhcmlhYmxlKCkpKTsKKworICAgIFRJ
bnRlcm1CbG9jayAqc3dpdGNoQm9keSA9IG5ldyBUSW50ZXJtQmxvY2s7CisKKyAgICBnbDo6Qmxl
bmRFcXVhdGlvbkJpdFNldCBlbmFibGVkQmxlbmRFcXVhdGlvbnMobUFkdmFuY2VkQmxlbmRFcXVh
dGlvbnMuYml0cygpKTsKKyAgICBmb3IgKGdsOjpCbGVuZEVxdWF0aW9uVHlwZSBlcXVhdGlvbiA6
IGVuYWJsZWRCbGVuZEVxdWF0aW9ucykKKyAgICB7CisgICAgICAgIHN3aXRjaEJvZHktPmFwcGVu
ZFN0YXRlbWVudCgKKyAgICAgICAgICAgIG5ldyBUSW50ZXJtQ2FzZShDcmVhdGVVSW50Tm9kZShz
dGF0aWNfY2FzdDx1aW50MzJfdD4oZXF1YXRpb24pKSkpOworCisgICAgICAgIC8vIEhTTCBlcXVh
dGlvbnMgY2FsbCB0aGUgYmxlbmQgZnVuY3Rpb24gd2l0aCBhbGwgY2hhbm5lbHMuICBOb24tSFNM
IGVxdWF0aW9ucyBjYWxsIGl0IHBlcgorICAgICAgICAvLyBjb21wb25lbnQuCisgICAgICAgIGlm
IChlcXVhdGlvbiA8IGdsOjpCbGVuZEVxdWF0aW9uVHlwZTo6SHNsSHVlKQorICAgICAgICB7Cisg
ICAgICAgICAgICBUSW50ZXJtU2VxdWVuY2UgY29uc3RydWN0b3JBcmdzOworICAgICAgICAgICAg
Zm9yIChpbnQgY2hhbm5lbCA9IDA7IGNoYW5uZWwgPCAzOyArK2NoYW5uZWwpCisgICAgICAgICAg
ICB7CisgICAgICAgICAgICAgICAgVEludGVybVR5cGVkICpzcmNDaGFubmVsID0gbmV3IFRJbnRl
cm1Td2l6emxlKG1TcmMtPmRlZXBDb3B5KCksIHtjaGFubmVsfSk7CisgICAgICAgICAgICAgICAg
VEludGVybVR5cGVkICpkc3RDaGFubmVsID0gbmV3IFRJbnRlcm1Td2l6emxlKG1Ec3QtPmRlZXBD
b3B5KCksIHtjaGFubmVsfSk7CisKKyAgICAgICAgICAgICAgICBUSW50ZXJtU2VxdWVuY2UgYXJn
cyA9IHtzcmNDaGFubmVsLCBkc3RDaGFubmVsfTsKKyAgICAgICAgICAgICAgICBjb25zdHJ1Y3Rv
ckFyZ3MucHVzaF9iYWNrKFRJbnRlcm1BZ2dyZWdhdGU6OkNyZWF0ZUZ1bmN0aW9uQ2FsbCgKKyAg
ICAgICAgICAgICAgICAgICAgKm1CbGVuZEZ1bmNzW2VxdWF0aW9uXS0+Z2V0RnVuY3Rpb24oKSwg
JmFyZ3MpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgVEludGVybVR5cGVkICpjb25z
dHJ1Y3RvciA9CisgICAgICAgICAgICAgICAgVEludGVybUFnZ3JlZ2F0ZTo6Q3JlYXRlQ29uc3Ry
dWN0b3IoKnZlYzNUeXBlLCAmY29uc3RydWN0b3JBcmdzKTsKKyAgICAgICAgICAgIHN3aXRjaEJv
ZHktPmFwcGVuZFN0YXRlbWVudChuZXcgVEludGVybUJpbmFyeShFT3BBc3NpZ24sIGYtPmRlZXBD
b3B5KCksIGNvbnN0cnVjdG9yKSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZQorICAgICAgICB7
CisgICAgICAgICAgICBUSW50ZXJtU2VxdWVuY2UgYXJncyA9IHttU3JjLT5kZWVwQ29weSgpLCBt
RHN0LT5kZWVwQ29weSgpfTsKKyAgICAgICAgICAgIFRJbnRlcm1UeXBlZCAqYmxlbmRDYWxsID0K
KyAgICAgICAgICAgICAgICBUSW50ZXJtQWdncmVnYXRlOjpDcmVhdGVGdW5jdGlvbkNhbGwoKm1C
bGVuZEZ1bmNzW2VxdWF0aW9uXS0+Z2V0RnVuY3Rpb24oKSwgJmFyZ3MpOworCisgICAgICAgICAg
ICBzd2l0Y2hCb2R5LT5hcHBlbmRTdGF0ZW1lbnQobmV3IFRJbnRlcm1CaW5hcnkoRU9wQXNzaWdu
LCBmLT5kZWVwQ29weSgpLCBibGVuZENhbGwpKTsKKyAgICAgICAgfQorCisgICAgICAgIHN3aXRj
aEJvZHktPmFwcGVuZFN0YXRlbWVudChuZXcgVEludGVybUJyYW5jaChFT3BCcmVhaywgbnVsbHB0
cikpOworICAgIH0KKworICAgIC8vIEEgZHJpdmVyIHVuaWZvcm0gaXMgdXNlZCB0byBjb21tdW5p
Y2F0ZSB0aGUgYmxlbmQgZXF1YXRpb24gdG8gdXNlLgorICAgIFRJbnRlcm1UeXBlZCAqZXF1YXRp
b25Vbmlmb3JtID0gbURyaXZlclVuaWZvcm1zLT5nZXRBZHZhbmNlZEJsZW5kRXF1YXRpb25SZWYo
KTsKKworICAgIGJsZW5kQmxvY2stPmFwcGVuZFN0YXRlbWVudChuZXcgVEludGVybVN3aXRjaChl
cXVhdGlvblVuaWZvcm0sIHN3aXRjaEJvZHkpKTsKKworICAgIC8vIENhbGN1bGF0ZSB0aGUgZmlu
YWwgYmxlbmQgYWNjb3JkaW5nIHRvIHRoZSBmb2xsb3dpbmcgZm9ybXVsYToKKyAgICAvLworICAg
IC8vICAgICBSR0IgPSBmKHNyYywgZHN0KSAqIHAwICsgc3JjICogcDEgKyBkc3QgKiBwMgorICAg
IC8vICAgICAgIEEgPSBwMCArIHAxICsgcDIKKworICAgIC8vIGYgKiBwMAorICAgIFRJbnRlcm1U
eXBlZCAqZlRpbWVzUDAgPSBuZXcgVEludGVybUJpbmFyeShFT3BWZWN0b3JUaW1lc1NjYWxhciwg
ZiwgbVAwKTsKKyAgICAvLyBzcmMgKiBwMQorICAgIFRJbnRlcm1UeXBlZCAqc3JjVGltZXNQMSA9
IG5ldyBUSW50ZXJtQmluYXJ5KEVPcFZlY3RvclRpbWVzU2NhbGFyLCBtU3JjLCBtUDEpOworICAg
IC8vIGRzdCAqIHAyCisgICAgVEludGVybVR5cGVkICpkc3RUaW1lc1AyID0gbmV3IFRJbnRlcm1C
aW5hcnkoRU9wVmVjdG9yVGltZXNTY2FsYXIsIG1Ec3QsIG1QMik7CisgICAgLy8gZiAqIHAwICsg
c3JjICogcDEgKyBkc3QgKiBwMgorICAgIFRJbnRlcm1UeXBlZCAqcmdiID0KKyAgICAgICAgbmV3
IFRJbnRlcm1CaW5hcnkoRU9wQWRkLCBuZXcgVEludGVybUJpbmFyeShFT3BBZGQsIGZUaW1lc1Aw
LCBzcmNUaW1lc1AxKSwgZHN0VGltZXNQMik7CisKKyAgICAvLyBwMCArIHAxICsgcDIKKyAgICBU
SW50ZXJtVHlwZWQgKmEgPSBuZXcgVEludGVybUJpbmFyeSgKKyAgICAgICAgRU9wQWRkLCBuZXcg
VEludGVybUJpbmFyeShFT3BBZGQsIG1QMC0+ZGVlcENvcHkoKSwgbVAxLT5kZWVwQ29weSgpKSwg
bVAyLT5kZWVwQ29weSgpKTsKKworICAgIC8vIEludGlhbGl6ZSB0aGUgb3V0cHV0IHdpdGggdmVj
NChSR0IsIEEpCisgICAgVEludGVybVNlcXVlbmNlIHJnYmFBcmdzICA9IHtyZ2IsIGF9OworICAg
IFRJbnRlcm1UeXBlZCAqYmxlbmRSZXN1bHQgPSBUSW50ZXJtQWdncmVnYXRlOjpDcmVhdGVDb25z
dHJ1Y3RvcigqdmVjNFR5cGUsICZyZ2JhQXJncyk7CisKKyAgICAvLyBJZiB0aGUgb3V0cHV0IGhh
cyBmZXdlciB0aGFuIGZvdXIgY2hhbm5lbHMsIHN3aXp6bGUgdGhlIHJlc3VsdHMKKyAgICB1aW50
MzJfdCB2ZWNTaXplID0gbU91dHB1dFZhci0+Z2V0VHlwZSgpLmdldE5vbWluYWxTaXplKCk7Cisg
ICAgaWYgKHZlY1NpemUgPCA0KQorICAgIHsKKyAgICAgICAgVFZlY3RvcjxpbnQ+IHN3aXp6bGUg
PSB7MCwgMSwgMiwgM307CisgICAgICAgIHN3aXp6bGUucmVzaXplKHZlY1NpemUpOworICAgICAg
ICBibGVuZFJlc3VsdCA9IG5ldyBUSW50ZXJtU3dpenpsZShibGVuZFJlc3VsdCwgc3dpenpsZSk7
CisgICAgfQorCisgICAgVEludGVybVR5cGVkICpvdXRwdXQgPSBHZXRGaXJzdEVsZW1lbnRJZkFy
cmF5KG5ldyBUSW50ZXJtU3ltYm9sKG1PdXRwdXRWYXIpKTsKKworICAgIGJsZW5kQmxvY2stPmFw
cGVuZFN0YXRlbWVudChuZXcgVEludGVybUJpbmFyeShFT3BBc3NpZ24sIG91dHB1dCwgYmxlbmRS
ZXN1bHQpKTsKK30KK30gIC8vIGFub255bW91cyBuYW1lc3BhY2UKKworYm9vbCBFbXVsYXRlQWR2
YW5jZWRCbGVuZEVxdWF0aW9ucyhUQ29tcGlsZXIgKmNvbXBpbGVyLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBUSW50ZXJtQmxvY2sgKnJvb3QsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFRTeW1ib2xUYWJsZSAqc3ltYm9sVGFibGUsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IERyaXZlclVuaWZvcm0gKmRyaXZlclVuaWZv
cm1zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OnZlY3RvcjxTaGFk
ZXJWYXJpYWJsZT4gKnVuaWZvcm1zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjb25zdCBBZHZhbmNlZEJsZW5kRXF1YXRpb25zICZhZHZhbmNlZEJsZW5kRXF1YXRpb25zKQor
eworICAgIEJ1aWxkZXIgYnVpbGRlcihjb21waWxlciwgc3ltYm9sVGFibGUsIGRyaXZlclVuaWZv
cm1zLCB1bmlmb3JtcywgYWR2YW5jZWRCbGVuZEVxdWF0aW9ucyk7CisgICAgcmV0dXJuIGJ1aWxk
ZXIuYnVpbGQocm9vdCk7Cit9ICAvLyBuYW1lc3BhY2UKKworfSAgLy8gbmFtZXNwYWNlIHNoCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvY29tcGlsZXIvdHJhbnNsYXRv
ci90cmVlX29wcy92dWxrYW4vRW11bGF0ZUFkdmFuY2VkQmxlbmRFcXVhdGlvbnMuaCBiL1NvdXJj
ZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9jb21waWxlci90cmFuc2xhdG9yL3RyZWVfb3BzL3Z1bGth
bi9FbXVsYXRlQWR2YW5jZWRCbGVuZEVxdWF0aW9ucy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIyNTQ4MzRkZjU3
ZjVjMjk2ZTA1ZjAyOTBiOGExOTg4NjQxYWQ3ZGUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9BTkdMRS9zcmMvY29tcGlsZXIvdHJhbnNsYXRvci90cmVlX29wcy92dWxrYW4v
RW11bGF0ZUFkdmFuY2VkQmxlbmRFcXVhdGlvbnMuaApAQCAtMCwwICsxLDM4IEBACisvLworLy8g
Q29weXJpZ2h0IDIwMjIgVGhlIEFOR0xFIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKy8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0
eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisv
LworLy8gRW11bGF0ZUFkdmFuY2VkQmxlbmRFcXVhdGlvbnMuaDogRW11bGF0ZSBhZHZhbmNlZCBi
bGVuZCBlcXVhdGlvbnMgYnkgaW1wbGljaXRseSByZWFkaW5nIGJhY2sgZnJvbQorLy8gdGhlIGNv
bG9yIGF0dGFjaG1lbnQgKGFzIGFuIGlucHV0IGF0dGFjaG1lbnQpIGFuZCBhcHBseSB0aGUgZXF1
YXRpb24gZnVuY3Rpb24gYmFzZWQgb24gYSB1bmlmb3JtLgorLy8KKworI2lmbmRlZiBDT01QSUxF
Ul9UUkFOU0xBVE9SX1RSRUVPUFNfVlVMS0FOX0VNVUxBVEVBRFZBTkNFREJMRU5ERVFVQVRJT05T
X0hfCisjZGVmaW5lIENPTVBJTEVSX1RSQU5TTEFUT1JfVFJFRU9QU19WVUxLQU5fRU1VTEFURUFE
VkFOQ0VEQkxFTkRFUVVBVElPTlNfSF8KKworI2luY2x1ZGUgImNvbW1vbi9hbmdsZXV0aWxzLmgi
CisKK25hbWVzcGFjZSBzaAoreworCitjbGFzcyBUQ29tcGlsZXI7CitjbGFzcyBUSW50ZXJtQmxv
Y2s7CitjbGFzcyBUU3ltYm9sVGFibGU7CitjbGFzcyBEcml2ZXJVbmlmb3JtOworc3RydWN0IFNo
YWRlclZhcmlhYmxlOworY2xhc3MgQWR2YW5jZWRCbGVuZEVxdWF0aW9uczsKKworLy8gRGVjbGFy
ZXMgdGhlIG5lY2Vzc2FyeSBpbnB1dCBhdHRhY2htZW50IChpZiBub3QgYWxyZWFkeSBmb3IgZnJh
bWVidWZmZXIgZmV0Y2gpLCBsb2FkcyBmcm9tIGl0IGFuZAorLy8gaW1wbGVtZW50cyB0aGUgc3Bl
Y2lmaWVkIGFkdmFuY2VkIGJsZW5kIGVxdWF0aW9uIGZ1bmN0aW9ucy4gIEEgZHJpdmVyIHVuaWZv
cm0gaXMgdXNlZCB0byBzZWxlY3QKKy8vIHdoaWNoIGZ1bmN0aW9uIHRvIHVzZSBhdCBydW50aW1l
LgorQU5HTEVfTk9fRElTQ0FSRCBib29sIEVtdWxhdGVBZHZhbmNlZEJsZW5kRXF1YXRpb25zKAor
ICAgIFRDb21waWxlciAqY29tcGlsZXIsCisgICAgVEludGVybUJsb2NrICpyb290LAorICAgIFRT
eW1ib2xUYWJsZSAqc3ltYm9sVGFibGUsCisgICAgY29uc3QgRHJpdmVyVW5pZm9ybSAqZHJpdmVy
VW5pZm9ybXMsCisgICAgc3RkOjp2ZWN0b3I8U2hhZGVyVmFyaWFibGU+ICp1bmlmb3JtcywKKyAg
ICBjb25zdCBBZHZhbmNlZEJsZW5kRXF1YXRpb25zICZhZHZhbmNlZEJsZW5kRXF1YXRpb25zKTsK
KworfSAgLy8gbmFtZXNwYWNlIHNoCisKKyNlbmRpZiAgLy8gQ09NUElMRVJfVFJBTlNMQVRPUl9U
UkVFT1BTX1ZVTEtBTl9FTVVMQVRFQURWQU5DRURCTEVOREVRVUFUSU9OU19IXwpkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2NvbXBpbGVyL3RyYW5zbGF0b3IvdHJlZV9v
cHMvdnVsa2FuL1JlcGxhY2VGb3JTaGFkZXJGcmFtZWJ1ZmZlckZldGNoLmNwcCBiL1NvdXJjZS9U
aGlyZFBhcnR5L0FOR0xFL3NyYy9jb21waWxlci90cmFuc2xhdG9yL3RyZWVfb3BzL3Z1bGthbi9S
ZXBsYWNlRm9yU2hhZGVyRnJhbWVidWZmZXJGZXRjaC5jcHAKaW5kZXggODFmMTBkY2U4ZGRkZDQz
NTk5ZWQ1NWI3NTRjNzBlOTNlY2IwMWJlYS4uMDA5MTMxNDQ3ZDYzNmE4OTlhZmVmZTBkMzQxMDI4
YjI2ODFlMjUxMiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2NvbXBp
bGVyL3RyYW5zbGF0b3IvdHJlZV9vcHMvdnVsa2FuL1JlcGxhY2VGb3JTaGFkZXJGcmFtZWJ1ZmZl
ckZldGNoLmNwcAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvY29tcGlsZXIvdHJh
bnNsYXRvci90cmVlX29wcy92dWxrYW4vUmVwbGFjZUZvclNoYWRlckZyYW1lYnVmZmVyRmV0Y2gu
Y3BwCkBAIC05OSw3ICs5OSwxMSBAQCBib29sIElucHV0QXR0YWNobWVudFJlZmVyZW5jZVRyYXZl
cnNlcjo6dmlzaXREZWNsYXJhdGlvbihWaXNpdCB2aXNpdCwgVEludGVybURlYwogCiAgICAgaWYg
KHN5bWJvbC0+Z2V0VHlwZSgpLmdldFF1YWxpZmllcigpID09IEV2cUZyYWdtZW50SW5PdXQpCiAg
ICAgewotICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgaW5wdXRBdHRhY2htZW50SWR4ID0gc3lt
Ym9sLT5nZXRUeXBlKCkuZ2V0TGF5b3V0UXVhbGlmaWVyKCkubG9jYXRpb247CisgICAgICAgIC8v
IFRoZSBpbnB1dCBhdHRhY2htZW50IGluZGV4IGlzIGlkZW50aWNhbCB0byB0aGUgbG9jYXRpb24g
cXVhbGlmaWVyLiAgSWYgdGhlcmUncyBvbmx5IG9uZQorICAgICAgICAvLyBvdXRwdXQsIEdMU0wg
aXMgYWxsb3dlZCB0byBub3Qgc3BlY2lmeSB0aGUgbG9jYXRpb24gcXVhbGlmaWVyLCBpbiB3aGlj
aCBjYXNlIGl0IHdvdWxkCisgICAgICAgIC8vIGltcGxpY2l0bHkgYmUgYXQgbG9jYXRpb24gMC4K
KyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IGlucHV0QXR0YWNobWVudElkeCA9CisgICAgICAg
ICAgICBzdGQ6Om1heCgwLCBzeW1ib2wtPmdldFR5cGUoKS5nZXRMYXlvdXRRdWFsaWZpZXIoKS5s
b2NhdGlvbik7CiAKICAgICAgICAgaWYgKHN5bWJvbC0+Z2V0VHlwZSgpLmlzQXJyYXkoKSkKICAg
ICAgICAgewpAQCAtMzk0LDE0ICszOTgsMTIgQEAgVEludGVybU5vZGUgKlJlcGxhY2VTdWJwYXNz
SW5wdXRVdGlsczo6YXNzaWduU3VicGFzc0xvYWQoVEludGVybVR5cGVkICpyZXN1bHRWYXIKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRJ
bnRlcm1UeXBlZCAqaW5wdXRBdHRhY2htZW50U3ltYm9sLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCB0YXJnZXRW
ZWNTaXplKQogewotICAgIFRJbnRlcm1TZXF1ZW5jZSAqc3VicGFzc0FyZ3VtZW50cyA9IG5ldyBU
SW50ZXJtU2VxdWVuY2UoKTsKLSAgICBzdWJwYXNzQXJndW1lbnRzLT5wdXNoX2JhY2soaW5wdXRB
dHRhY2htZW50U3ltYm9sKTsKLQogICAgIC8vIFRPRE86IHN1cHBvcnQgaW50ZXJhY3Rpb24gd2l0
aCBtdWx0aXNhbXBsZWQgZnJhbWVidWZmZXJzLiAgRm9yIGV4YW1wbGUsIHRoZSBzYW1wbGUgSUQg
bmVlZHMKICAgICAvLyB0byBiZSBwcm92aWRlZCB0byB0aGUgYnVpbHQtaW4gY2FsbCBoZXJlLiAg
aHR0cDovL2FuZ2xlYnVnLmNvbS82MTk1CiAKKyAgICBUSW50ZXJtU2VxdWVuY2Ugc3VicGFzc0Fy
Z3VtZW50cyAgPSB7aW5wdXRBdHRhY2htZW50U3ltYm9sfTsKICAgICBUSW50ZXJtVHlwZWQgKnN1
YnBhc3NMb2FkRnVuY0NhbGwgPSBDcmVhdGVTdWJwYXNzTG9hZEZ1bmNDYWxsKAotICAgICAgICBt
U3ltYm9sVGFibGUsIGlucHV0QXR0YWNobWVudFN5bWJvbC0+Z2V0QmFzaWNUeXBlKCksIHN1YnBh
c3NBcmd1bWVudHMpOworICAgICAgICBtU3ltYm9sVGFibGUsIGlucHV0QXR0YWNobWVudFN5bWJv
bC0+Z2V0QmFzaWNUeXBlKCksICZzdWJwYXNzQXJndW1lbnRzKTsKIAogICAgIFRJbnRlcm1UeXBl
ZCAqcmVzdWx0ID0gc3VicGFzc0xvYWRGdW5jQ2FsbDsKICAgICBpZiAodGFyZ2V0VmVjU2l6ZSA8
IDQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvY29tcGlsZXIvdHJh
bnNsYXRvci90cmVlX29wcy92dWxrYW4vUmVwbGFjZUZvclNoYWRlckZyYW1lYnVmZmVyRmV0Y2gu
aCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9jb21waWxlci90cmFuc2xhdG9yL3RyZWVf
b3BzL3Z1bGthbi9SZXBsYWNlRm9yU2hhZGVyRnJhbWVidWZmZXJGZXRjaC5oCmluZGV4IGE4MjU0
ZjM4NTIxNTBhZGJiNGVjNzg4YzI0MTcwZTc2YjcxOTU3NjEuLjE1YmRiYTFkZTI0NmMxZGI0NzNh
N2Y2YWYzOTJjYjNmNzYyZmYyMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xF
L3NyYy9jb21waWxlci90cmFuc2xhdG9yL3RyZWVfb3BzL3Z1bGthbi9SZXBsYWNlRm9yU2hhZGVy
RnJhbWVidWZmZXJGZXRjaC5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9jb21w
aWxlci90cmFuc2xhdG9yL3RyZWVfb3BzL3Z1bGthbi9SZXBsYWNlRm9yU2hhZGVyRnJhbWVidWZm
ZXJGZXRjaC5oCkBAIC03LDggKzcsOCBAQAogLy8gQU5HTEVMYXN0RnJhZ0RhdGEuCiAvLwogCi0j
aWZuZGVmIENPTVBJTEVSX1RSQU5TTEFUT1JfVFJFRVVUSUxfUkVQTEFDRUZPUlNIQURFUkZSQU1F
QlVGRkVSRkVUQ0hfSF8KLSNkZWZpbmUgQ09NUElMRVJfVFJBTlNMQVRPUl9UUkVFVVRJTF9SRVBM
QUNFRk9SU0hBREVSRlJBTUVCVUZGRVJGRVRDSF9IXworI2lmbmRlZiBDT01QSUxFUl9UUkFOU0xB
VE9SX1RSRUVPUFNfVlVMS0FOX1JFUExBQ0VGT1JTSEFERVJGUkFNRUJVRkZFUkZFVENIX0hfCisj
ZGVmaW5lIENPTVBJTEVSX1RSQU5TTEFUT1JfVFJFRU9QU19WVUxLQU5fUkVQTEFDRUZPUlNIQURF
UkZSQU1FQlVGRkVSRkVUQ0hfSF8KIAogI2luY2x1ZGUgImNvbW1vbi9hbmdsZXV0aWxzLmgiCiAK
QEAgLTM4LDQgKzM4LDQgQEAgQU5HTEVfTk9fRElTQ0FSRCBib29sIFJlcGxhY2VJbk91dFZhcmlh
YmxlcyhUQ29tcGlsZXIgKmNvbXBpbGVyLAogCiB9ICAvLyBuYW1lc3BhY2Ugc2gKIAotI2VuZGlm
ICAvLyBDT01QSUxFUl9UUkFOU0xBVE9SX1RSRUVVVElMX1JFUExBQ0VGT1JTSEFERVJGUkFNRUJV
RkZFUkZFVENIX0hfCisjZW5kaWYgIC8vIENPTVBJTEVSX1RSQU5TTEFUT1JfVFJFRU9QU19WVUxL
QU5fUkVQTEFDRUZPUlNIQURFUkZSQU1FQlVGRkVSRkVUQ0hfSF8KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9jb21waWxlci90cmFuc2xhdG9yL3RyZWVfdXRpbC9Ecml2
ZXJVbmlmb3JtLmNwcCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9jb21waWxlci90cmFu
c2xhdG9yL3RyZWVfdXRpbC9Ecml2ZXJVbmlmb3JtLmNwcAppbmRleCAwNzRiNTk0N2VlOWM1MjY5
MDI0NTlmMjUxYzVmZDFkYjUwODY4NmI3Li4zMGNlZjU4YmUwYWE2MWFlZTY2OTg4OGQ4YWZjYzVl
NjdjMWM0MGM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvY29tcGls
ZXIvdHJhbnNsYXRvci90cmVlX3V0aWwvRHJpdmVyVW5pZm9ybS5jcHAKKysrIGIvU291cmNlL1Ro
aXJkUGFydHkvQU5HTEUvc3JjL2NvbXBpbGVyL3RyYW5zbGF0b3IvdHJlZV91dGlsL0RyaXZlclVu
aWZvcm0uY3BwCkBAIC0yNyw3ICsyNyw3IEBAIGNvbnN0ZXhwciBJbW11dGFibGVTdHJpbmcga0Vt
dWxhdGVkRGVwdGhSYW5nZVBhcmFtcyA9IEltbXV0YWJsZVN0cmluZygiQU5HTEVEZXB0CiBjb25z
dGV4cHIgY29uc3QgY2hhciBrVmlld3BvcnRbXSAgICAgICAgICAgICAgID0gInZpZXdwb3J0IjsK
IGNvbnN0ZXhwciBjb25zdCBjaGFyIGtDbGlwRGlzdGFuY2VzRW5hYmxlZFtdICAgPSAiY2xpcERp
c3RhbmNlc0VuYWJsZWQiOwogY29uc3RleHByIGNvbnN0IGNoYXIga1VudXNlZFtdICAgICAgICAg
ICAgICAgICA9ICJfdW51c2VkIjsKLWNvbnN0ZXhwciBjb25zdCBjaGFyIGtVbnVzZWQyW10gICAg
ICAgICAgICAgICAgPSAiX3VudXNlZDIiOworY29uc3RleHByIGNvbnN0IGNoYXIga0FkdmFuY2Vk
QmxlbmRFcXVhdGlvbltdICA9ICJhZHZhbmNlZEJsZW5kRXF1YXRpb24iOwogY29uc3RleHByIGNv
bnN0IGNoYXIga1hmYlZlcnRpY2VzUGVySW5zdGFuY2VbXSA9ICJ4ZmJWZXJ0aWNlc1Blckluc3Rh
bmNlIjsKIGNvbnN0ZXhwciBjb25zdCBjaGFyIGtYZmJCdWZmZXJPZmZzZXRzW10gICAgICAgPSAi
eGZiQnVmZmVyT2Zmc2V0cyI7CiBjb25zdGV4cHIgY29uc3QgY2hhciBrQWNiQnVmZmVyT2Zmc2V0
c1tdICAgICAgID0gImFjYkJ1ZmZlck9mZnNldHMiOwpAQCAtODEsOCArODEsOCBAQCBURmllbGRM
aXN0ICpEcml2ZXJVbmlmb3JtOjpjcmVhdGVVbmlmb3JtRmllbGRzKFRTeW1ib2xUYWJsZSAqc3lt
Ym9sVGFibGUpCiB7CiAgICAgY29uc3RleHByIHNpemVfdCBrTnVtR3JhcGhpY3NEcml2ZXJVbmlm
b3JtcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gODsK
ICAgICBjb25zdGV4cHIgc3RkOjphcnJheTxjb25zdCBjaGFyICosIGtOdW1HcmFwaGljc0RyaXZl
clVuaWZvcm1zPiBrR3JhcGhpY3NEcml2ZXJVbmlmb3JtTmFtZXMgPSB7Ci0gICAgICAgIHtrVmll
d3BvcnQsIGtDbGlwRGlzdGFuY2VzRW5hYmxlZCwga1VudXNlZCwga1hmYlZlcnRpY2VzUGVySW5z
dGFuY2UsIGtOdW1TYW1wbGVzLAotICAgICAgICAga1hmYkJ1ZmZlck9mZnNldHMsIGtBY2JCdWZm
ZXJPZmZzZXRzLCBrRGVwdGhSYW5nZX19OworICAgICAgICB7a1ZpZXdwb3J0LCBrQ2xpcERpc3Rh
bmNlc0VuYWJsZWQsIGtBZHZhbmNlZEJsZW5kRXF1YXRpb24sIGtYZmJWZXJ0aWNlc1Blckluc3Rh
bmNlLAorICAgICAgICAga051bVNhbXBsZXMsIGtYZmJCdWZmZXJPZmZzZXRzLCBrQWNiQnVmZmVy
T2Zmc2V0cywga0RlcHRoUmFuZ2V9fTsKIAogICAgIC8vIFRoaXMgZmllbGQgbGlzdCBtaXJyb3Jz
IHRoZSBzdHJ1Y3R1cmUgb2YgR3JhcGhpY3NEcml2ZXJVbmlmb3JtcyBpbiBDb250ZXh0VmsuY3Bw
LgogICAgIFRGaWVsZExpc3QgKmRyaXZlckZpZWxkTGlzdCA9IG5ldyBURmllbGRMaXN0OwpAQCAt
OTEsNyArOTEsMTAgQEAgVEZpZWxkTGlzdCAqRHJpdmVyVW5pZm9ybTo6Y3JlYXRlVW5pZm9ybUZp
ZWxkcyhUU3ltYm9sVGFibGUgKnN5bWJvbFRhYmxlKQogICAgICAgICBuZXcgVFR5cGUoRWJ0Rmxv
YXQsIEVicEhpZ2gsIEV2cUdsb2JhbCwgNCksCiAgICAgICAgIG5ldyBUVHlwZShFYnRVSW50LCBF
YnBIaWdoLAogICAgICAgICAgICAgICAgICAgRXZxR2xvYmFsKSwgIC8vIHVpbnQgY2xpcERpc3Rh
bmNlc0VuYWJsZWQ7ICAvLyAzMiBiaXRzIGZvciAzMiBjbGlwIGRpc3RhbmNlcyBtYXgKLSAgICAg
ICAgbmV3IFRUeXBlKEVidFVJbnQsIEVicEhpZ2gsIEV2cUdsb2JhbCksICAvLyBHYXAgdXNhYmxl
IGZvciBmdXR1cmUKKyAgICAgICAgbmV3IFRUeXBlKAorICAgICAgICAgICAgRWJ0VUludCwgRWJw
TG93LAorICAgICAgICAgICAgRXZxR2xvYmFsKSwgIC8vIHVpbnQgYWR2YW5jZWRCbGVuZEVxdWF0
aW9uOworICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFVwIHRvIEJsZW5kRXF1YXRpb25UeXBl
OjpIc2xMdW1pbm9zaXR5LUJsZW5kRXF1YXRpb25UeXBlOjpNdWx0aXBseSsxCiAgICAgICAgIG5l
dyBUVHlwZShFYnRJbnQsIEVicEhpZ2gsIEV2cUdsb2JhbCksCiAgICAgICAgIG5ldyBUVHlwZShF
YnRJbnQsIEVicExvdywgRXZxR2xvYmFsKSwgIC8vIHVpbnQgbnVtU2FtcGxlczsgICAgICAgICAv
LyBVcCB0byAxNgogICAgICAgICBuZXcgVFR5cGUoRWJ0SW50LCBFYnBIaWdoLCBFdnFHbG9iYWws
IDQpLApAQCAtMjU2LDYgKzI1OSwxMSBAQCBUSW50ZXJtVHlwZWQgKkRyaXZlclVuaWZvcm06Omdl
dE51bVNhbXBsZXNSZWYoKSBjb25zdAogICAgIHJldHVybiBjcmVhdGVEcml2ZXJVbmlmb3JtUmVm
KGtOdW1TYW1wbGVzKTsKIH0KIAorVEludGVybVR5cGVkICpEcml2ZXJVbmlmb3JtOjpnZXRBZHZh
bmNlZEJsZW5kRXF1YXRpb25SZWYoKSBjb25zdAoreworICAgIHJldHVybiBjcmVhdGVEcml2ZXJV
bmlmb3JtUmVmKGtBZHZhbmNlZEJsZW5kRXF1YXRpb24pOworfQorCiAvLwogLy8gQ2xhc3MgRHJp
dmVyVW5pZm9ybUV4dGVuZGVkCiAvLwpAQCAtMjY2LDcgKzI3NCw3IEBAIFRGaWVsZExpc3QgKkRy
aXZlclVuaWZvcm1FeHRlbmRlZDo6Y3JlYXRlVW5pZm9ybUZpZWxkcyhUU3ltYm9sVGFibGUgKnN5
bWJvbFRhYmxlCiAgICAgY29uc3RleHByIHNpemVfdCBrTnVtR3JhcGhpY3NEcml2ZXJVbmlmb3Jt
c0V4dCA9IDc7CiAgICAgY29uc3RleHByIHN0ZDo6YXJyYXk8Y29uc3QgY2hhciAqLCBrTnVtR3Jh
cGhpY3NEcml2ZXJVbmlmb3Jtc0V4dD4KICAgICAgICAga0dyYXBoaWNzRHJpdmVyVW5pZm9ybU5h
bWVzRXh0ID0gewotICAgICAgICAgICAge2tIYWxmUmVuZGVyQXJlYSwga0ZsaXBYWSwga05lZ0Zs
aXBYWSwga0RpdGhlciwga1VudXNlZDIsIGtGcmFnUm90YXRpb24sIGtQcmVSb3RhdGlvbn19Owor
ICAgICAgICAgICAge2tIYWxmUmVuZGVyQXJlYSwga0ZsaXBYWSwga05lZ0ZsaXBYWSwga0RpdGhl
ciwga1VudXNlZCwga0ZyYWdSb3RhdGlvbiwga1ByZVJvdGF0aW9ufX07CiAKICAgICBjb25zdCBz
dGQ6OmFycmF5PFRUeXBlICosIGtOdW1HcmFwaGljc0RyaXZlclVuaWZvcm1zRXh0PiBrRHJpdmVy
VW5pZm9ybVR5cGVzRXh0ID0ge3sKICAgICAgICAgbmV3IFRUeXBlKEVidEZsb2F0LCBFYnBIaWdo
LCBFdnFHbG9iYWwsIDIpLApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3Jj
L2NvbXBpbGVyL3RyYW5zbGF0b3IvdHJlZV91dGlsL0RyaXZlclVuaWZvcm0uaCBiL1NvdXJjZS9U
aGlyZFBhcnR5L0FOR0xFL3NyYy9jb21waWxlci90cmFuc2xhdG9yL3RyZWVfdXRpbC9Ecml2ZXJV
bmlmb3JtLmgKaW5kZXggYzhmZjljMjIxY2I4M2EwY2EwOTZiZTAyZDA1MDIxZjA2NTE5M2ZiZS4u
OGE3YjJhYmU5YjQwNjc1NDc4OTI3YjdkOWMwMDIwZTM3ZTM3MjgyMCAxMDA2NDQKLS0tIGEvU291
cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2NvbXBpbGVyL3RyYW5zbGF0b3IvdHJlZV91dGlsL0Ry
aXZlclVuaWZvcm0uaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvY29tcGlsZXIv
dHJhbnNsYXRvci90cmVlX3V0aWwvRHJpdmVyVW5pZm9ybS5oCkBAIC01Myw2ICs1Myw3IEBAIGNs
YXNzIERyaXZlclVuaWZvcm0KICAgICBUSW50ZXJtVHlwZWQgKmdldERlcHRoUmFuZ2VSZWYoKSBj
b25zdDsKICAgICBUSW50ZXJtVHlwZWQgKmdldERlcHRoUmFuZ2VSZXNlcnZlZEZpZWxkUmVmKCkg
Y29uc3Q7CiAgICAgVEludGVybVR5cGVkICpnZXROdW1TYW1wbGVzUmVmKCkgY29uc3Q7CisgICAg
VEludGVybVR5cGVkICpnZXRBZHZhbmNlZEJsZW5kRXF1YXRpb25SZWYoKSBjb25zdDsKIAogICAg
IHZpcnR1YWwgVEludGVybVR5cGVkICpnZXRGbGlwWFlSZWYoKSBjb25zdCB7IHJldHVybiBudWxs
cHRyOyB9CiAgICAgdmlydHVhbCBUSW50ZXJtVHlwZWQgKmdldE5lZ0ZsaXBYWVJlZigpIGNvbnN0
IHsgcmV0dXJuIG51bGxwdHI7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xF
L3NyYy9jb21waWxlci90cmFuc2xhdG9yL3RyZWVfdXRpbC9JbnRlcm1Ob2RlX3V0aWwuY3BwIGIv
U291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2NvbXBpbGVyL3RyYW5zbGF0b3IvdHJlZV91dGls
L0ludGVybU5vZGVfdXRpbC5jcHAKaW5kZXggMzI2ZGIzNDM0NTlkMjlhNmE3ZmIwY2RhMTNhODcx
YWI2MjhmMzE2ZC4uNjRhNjM0MTUwMGM5ZWViNjJlODZhNTA4NjFmMzAzOGM2YTU2Zjg4OSAxMDA2
NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2NvbXBpbGVyL3RyYW5zbGF0b3Iv
dHJlZV91dGlsL0ludGVybU5vZGVfdXRpbC5jcHAKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5H
TEUvc3JjL2NvbXBpbGVyL3RyYW5zbGF0b3IvdHJlZV91dGlsL0ludGVybU5vZGVfdXRpbC5jcHAK
QEAgLTEyMiw2ICsxMjIsMjAgQEAgVEludGVybUNvbnN0YW50VW5pb24gKkNyZWF0ZUZsb2F0Tm9k
ZShmbG9hdCB2YWx1ZSwgVFByZWNpc2lvbiBwcmVjaXNpb24pCiAgICAgcmV0dXJuIG5ldyBUSW50
ZXJtQ29uc3RhbnRVbmlvbih1LCB0eXBlKTsKIH0KIAorVEludGVybUNvbnN0YW50VW5pb24gKkNy
ZWF0ZVZlY05vZGUoY29uc3QgZmxvYXQgdmFsdWVzW10sCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgdmVjU2l6ZSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFRQcmVjaXNpb24gcHJlY2lzaW9uKQoreworICAgIFRDb25zdGFudFVu
aW9uICp1ID0gbmV3IFRDb25zdGFudFVuaW9uW3ZlY1NpemVdOworICAgIGZvciAodW5zaWduZWQg
aW50IGNoYW5uZWwgPSAwOyBjaGFubmVsIDwgdmVjU2l6ZTsgKytjaGFubmVsKQorICAgIHsKKyAg
ICAgICAgdVtjaGFubmVsXS5zZXRGQ29uc3QodmFsdWVzW2NoYW5uZWxdKTsKKyAgICB9CisKKyAg
ICBUVHlwZSB0eXBlKEVidEZsb2F0LCBwcmVjaXNpb24sIEV2cUNvbnN0LCBzdGF0aWNfY2FzdDx1
aW50OF90Pih2ZWNTaXplKSk7CisgICAgcmV0dXJuIG5ldyBUSW50ZXJtQ29uc3RhbnRVbmlvbih1
LCB0eXBlKTsKK30KKwogVEludGVybUNvbnN0YW50VW5pb24gKkNyZWF0ZUluZGV4Tm9kZShpbnQg
aW5kZXgpCiB7CiAgICAgVENvbnN0YW50VW5pb24gKnUgPSBuZXcgVENvbnN0YW50VW5pb25bMV07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvY29tcGlsZXIvdHJhbnNs
YXRvci90cmVlX3V0aWwvSW50ZXJtTm9kZV91dGlsLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdM
RS9zcmMvY29tcGlsZXIvdHJhbnNsYXRvci90cmVlX3V0aWwvSW50ZXJtTm9kZV91dGlsLmgKaW5k
ZXggMjExNDlhZmI2Nzg4YTA3YTg2N2Y3MGUwZDI3MDIwNzk0Y2NmODExOC4uNTI3NTdjNDU2MTYy
Y2FjNGM2OThmZjgyZjhhNWJjNmFjYTUxMWI5MSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvc3JjL2NvbXBpbGVyL3RyYW5zbGF0b3IvdHJlZV91dGlsL0ludGVybU5vZGVfdXRp
bC5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9jb21waWxlci90cmFuc2xhdG9y
L3RyZWVfdXRpbC9JbnRlcm1Ob2RlX3V0aWwuaApAQCAtMjQsNiArMjQsOSBAQCBUSW50ZXJtRnVu
Y3Rpb25EZWZpbml0aW9uICpDcmVhdGVJbnRlcm5hbEZ1bmN0aW9uRGVmaW5pdGlvbk5vZGUoY29u
c3QgVEZ1bmN0aW9uCiAKIFRJbnRlcm1UeXBlZCAqQ3JlYXRlWmVyb05vZGUoY29uc3QgVFR5cGUg
JnR5cGUpOwogVEludGVybUNvbnN0YW50VW5pb24gKkNyZWF0ZUZsb2F0Tm9kZShmbG9hdCB2YWx1
ZSwgVFByZWNpc2lvbiBwcmVjaXNpb24pOworVEludGVybUNvbnN0YW50VW5pb24gKkNyZWF0ZVZl
Y05vZGUoY29uc3QgZmxvYXQgdmFsdWVzW10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB1bnNpZ25lZCBpbnQgdmVjU2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFRQcmVjaXNpb24gcHJlY2lzaW9uKTsKIFRJbnRlcm1Db25zdGFudFVuaW9uICpD
cmVhdGVJbmRleE5vZGUoaW50IGluZGV4KTsKIFRJbnRlcm1Db25zdGFudFVuaW9uICpDcmVhdGVV
SW50Tm9kZSh1bnNpZ25lZCBpbnQgdmFsdWUpOwogVEludGVybUNvbnN0YW50VW5pb24gKkNyZWF0
ZUJvb2xOb2RlKGJvb2wgdmFsdWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5H
TEUvc3JjL2dwdV9pbmZvX3V0aWwvU3lzdGVtSW5mby5jcHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9B
TkdMRS9zcmMvZ3B1X2luZm9fdXRpbC9TeXN0ZW1JbmZvLmNwcAppbmRleCAzN2FmNjc4MWQxZWE1
NzM3ODcwM2Q3NmFjZWFhYTU0NzkyZWIyYzE2Li5iMjE0OWM5ZjYzYWViMjBmNDFjYWU0OGU4OWJj
MGQxZDQyMGVlYmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvZ3B1
X2luZm9fdXRpbC9TeXN0ZW1JbmZvLmNwcAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9z
cmMvZ3B1X2luZm9fdXRpbC9TeXN0ZW1JbmZvLmNwcApAQCAtMTIsMTEgKzEyLDE4IEBACiAjaW5j
bHVkZSA8aW9zdHJlYW0+CiAjaW5jbHVkZSA8c3N0cmVhbT4KIAorI2luY2x1ZGUgImFuZ2xlYmFz
ZS9ub19kZXN0cnVjdG9yLmgiCiAjaW5jbHVkZSAiY29tbW9uL2RlYnVnLmgiCiAjaW5jbHVkZSAi
Y29tbW9uL3N0cmluZ191dGlscy5oIgorI2luY2x1ZGUgImNvbW1vbi9zeXN0ZW1fdXRpbHMuaCIK
IAogbmFtZXNwYWNlIGFuZ2xlCiB7CituYW1lc3BhY2UKK3sKK2NvbnN0ZXhwciBjaGFyIGtBTkdM
RVByZWZlcnJlZERldmljZUVudltdID0gIkFOR0xFX1BSRUZFUlJFRF9ERVZJQ0UiOworfQorCiBz
dGQ6OnN0cmluZyBWZW5kb3JOYW1lKFZlbmRvcklEIHZlbmRvcikKIHsKICAgICBzd2l0Y2ggKHZl
bmRvcikKQEAgLTEwMiw2ICsxMDksMjIgQEAgYm9vbCBTeXN0ZW1JbmZvOjpoYXNBTURHUFUoKSBj
b25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAorc3RkOjpvcHRpb25hbDxzaXplX3Q+IFN5c3Rl
bUluZm86OmdldFByZWZlcnJlZEdQVUluZGV4KCkgY29uc3QKK3sKKyAgICBzdGQ6OnN0cmluZyBk
ZXZpY2UgPSBHZXRQcmVmZXJyZWREZXZpY2VTdHJpbmcoKTsKKyAgICBpZiAoIWRldmljZS5lbXB0
eSgpKQorICAgIHsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBncHVzLnNpemUoKTsg
KytpKQorICAgICAgICB7CisgICAgICAgICAgICBzdGQ6OnN0cmluZyB2ZW5kb3IgPSBWZW5kb3JO
YW1lKGdwdXNbaV0udmVuZG9ySWQpOworICAgICAgICAgICAgVG9Mb3dlcigmdmVuZG9yKTsKKyAg
ICAgICAgICAgIGlmICh2ZW5kb3IgPT0gZGV2aWNlKQorICAgICAgICAgICAgICAgIHJldHVybiBp
OworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Cit9CisKIGJvb2wg
SXNBTUQoVmVuZG9ySUQgdmVuZG9ySWQpCiB7CiAgICAgcmV0dXJuIHZlbmRvcklkID09IGtWZW5k
b3JJRF9BTUQ7CkBAIC0zODUsNCArNDA4LDExIEBAIHVpbnQzMl90IEdldFN5c3RlbURldmljZUlk
TG93UGFydCh1aW50NjRfdCBzeXN0ZW1EZXZpY2VJZCkKICAgICByZXR1cm4gc3lzdGVtRGV2aWNl
SWQgJiAweGZmZmZmZmZmOwogfQogCitzdGQ6OnN0cmluZyBHZXRQcmVmZXJyZWREZXZpY2VTdHJp
bmcoKQoreworICAgIHN0ZDo6c3RyaW5nIGRldmljZSA9IGFuZ2xlOjpHZXRFbnZpcm9ubWVudFZh
cihrQU5HTEVQcmVmZXJyZWREZXZpY2VFbnYpOworICAgIFRvTG93ZXIoJmRldmljZSk7CisgICAg
cmV0dXJuIGRldmljZTsKK30KKwogfSAgLy8gbmFtZXNwYWNlIGFuZ2xlCmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvZ3B1X2luZm9fdXRpbC9TeXN0ZW1JbmZvLmggYi9T
b3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvZ3B1X2luZm9fdXRpbC9TeXN0ZW1JbmZvLmgKaW5k
ZXggYzU3Y2ZmMmNhMDljZjVmNTlkNGVhMzM2OWFjYjc2YzI1YTk4ZWZmYS4uNzY5M2U2ZDRiNzU2
OWQzZTkxOGU5NTkzNWZjYTQ0NmY3YTZhNGU3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvc3JjL2dwdV9pbmZvX3V0aWwvU3lzdGVtSW5mby5oCisrKyBiL1NvdXJjZS9UaGly
ZFBhcnR5L0FOR0xFL3NyYy9ncHVfaW5mb191dGlsL1N5c3RlbUluZm8uaApAQCAtMTAsNiArMTAs
NyBAQAogI2RlZmluZSBHUFVfSU5GT19VVElMX1NZU1RFTV9JTkZPX0hfCiAKICNpbmNsdWRlIDxj
c3RkaW50PgorI2luY2x1ZGUgPG9wdGlvbmFsPgogI2luY2x1ZGUgPHN0cmluZz4KICNpbmNsdWRl
IDx2ZWN0b3I+CiAKQEAgLTYwLDYgKzYxLDkgQEAgc3RydWN0IFN5c3RlbUluZm8KICAgICBib29s
IGhhc0ludGVsR1BVKCkgY29uc3Q7CiAgICAgYm9vbCBoYXNBTURHUFUoKSBjb25zdDsKIAorICAg
IC8vIFJldHVybnMgdGhlIGluZGV4IHRvIGBncHVzYCBpZiB0aGUgZW50cnkgbWF0Y2hlcyB0aGUg
cHJlZmVycmVkIGRldmljZSBzdHJpbmcuCisgICAgc3RkOjpvcHRpb25hbDxzaXplX3Q+IGdldFBy
ZWZlcnJlZEdQVUluZGV4KCkgY29uc3Q7CisKICAgICBzdGQ6OnZlY3RvcjxHUFVEZXZpY2VJbmZv
PiBncHVzOwogCiAgICAgLy8gSW5kZXggb2YgdGhlIEdQVSBleHBlY3RlZCB0byBiZSB1c2VkIGZv
ciAzRCBncmFwaGljcy4gQmFzZWQgb24gYSBiZXN0LWd1ZXNzIGhldXJpc3RpYyBvbgpAQCAtMTE1
LDYgKzExOSw3IEBAIGNvbnN0ZXhwciBWZW5kb3JJRCBrVmVuZG9ySURfS2F6YW4gICAgICAgPSAw
eDEwMDAzOwogY29uc3RleHByIERldmljZUlEIGtEZXZpY2VJRF9Td2lmdHNoYWRlciAgPSAweEMw
REU7CiBjb25zdGV4cHIgRGV2aWNlSUQga0RldmljZUlEX0FkcmVubzU0MCAgICA9IDB4NTA0MDAw
MTsKIGNvbnN0ZXhwciBEZXZpY2VJRCBrRGV2aWNlSURfVUhENjMwTW9iaWxlID0gMHgzRTlCOwor
Y29uc3RleHByIERldmljZUlEIGtEZXZpY2VJRF9IRDYzME1vYmlsZSAgPSAweDU5MTI7CiAKIC8v
IFByZWRpY2F0ZXMgb24gdmVuZG9yIElEcwogYm9vbCBJc0FNRChWZW5kb3JJRCB2ZW5kb3JJZCk7
CkBAIC0xNjEsNiArMTY2LDkgQEAgdWludDY0X3QgR2V0U3lzdGVtRGV2aWNlSWRGcm9tUGFydHMo
dWludDMyX3QgaGlnaFBhcnQsIHVpbnQzMl90IGxvd1BhcnQpOwogdWludDMyX3QgR2V0U3lzdGVt
RGV2aWNlSWRIaWdoUGFydCh1aW50NjRfdCBzeXN0ZW1EZXZpY2VJZCk7CiB1aW50MzJfdCBHZXRT
eXN0ZW1EZXZpY2VJZExvd1BhcnQodWludDY0X3Qgc3lzdGVtRGV2aWNlSWQpOwogCisvLyBSZXR1
cm5zIGxvd2VyLWNhc2Ugb2YgQU5HTEVfUFJFRkVSUkVEX0RFVklDRSBlbnZpcm9ubWVudCB2YXJp
YWJsZSBjb250ZW50cy4KK3N0ZDo6c3RyaW5nIEdldFByZWZlcnJlZERldmljZVN0cmluZygpOwor
CiB9ICAvLyBuYW1lc3BhY2UgYW5nbGUKIAogI2VuZGlmICAvLyBHUFVfSU5GT19VVElMX1NZU1RF
TV9JTkZPX0hfCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvaW1hZ2Vf
dXRpbC9jb3B5aW1hZ2UuY3BwIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2ltYWdlX3V0
aWwvY29weWltYWdlLmNwcAppbmRleCAxMzhjNGEyN2FlMDA0NzZjZjQ4NTg3MjIxNDA1OTVjNDhm
YzQzNDVmLi5iNWMyNzczZTIxNGMxMTYyOTMyYjdiNDc5YTkzN2I3YWZkYTc4MWYyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvaW1hZ2VfdXRpbC9jb3B5aW1hZ2UuY3Bw
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9pbWFnZV91dGlsL2NvcHlpbWFnZS5j
cHAKQEAgLTExLDEyICsxMSw2NCBAQAogbmFtZXNwYWNlIGFuZ2xlCiB7CiAKLXZvaWQgQ29weUJH
UkE4VG9SR0JBOChjb25zdCB1aW50OF90ICpzb3VyY2UsIHVpbnQ4X3QgKmRlc3QpCituYW1lc3Bh
Y2UKIHsKLSAgICB1aW50MzJfdCBhcmdiICAgICAgICAgICAgICAgICAgICAgICA9ICpyZWludGVy
cHJldF9jYXN0PGNvbnN0IHVpbnQzMl90ICo+KHNvdXJjZSk7Ci0gICAgKnJlaW50ZXJwcmV0X2Nh
c3Q8dWludDMyX3QgKj4oZGVzdCkgPSAoYXJnYiAmIDB4RkYwMEZGMDApIHwgICAgICAgIC8vIEtl
ZXAgYWxwaGEgYW5kIGdyZWVuCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoYXJnYiAmIDB4MDBGRjAwMDApID4+IDE2IHwgIC8vIE1vdmUgcmVkIHRvIGJsdWUKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhcmdiICYgMHgwMDAwMDBG
RikgPDwgMTY7ICAgLy8gTW92ZSBibHVlIHRvIHJlZAoraW5saW5lIHVpbnQzMl90IFN3aXp6bGVC
R1JBVG9SR0JBKHVpbnQzMl90IGFyZ2IpCit7CisgICAgcmV0dXJuICgoYXJnYiAmIDB4MDAwMDAw
RkYpIDw8IDE2KSB8ICAvLyBNb3ZlIEJHUkEgYmx1ZSB0byBSR0JBIGJsdWUKKyAgICAgICAgICAg
KChhcmdiICYgMHgwMEZGMDAwMCkgPj4gMTYpIHwgIC8vIE1vdmUgQkdSQSByZWQgdG8gUkdCQSBy
ZWQKKyAgICAgICAgICAgKChhcmdiICYgMHhGRjAwRkYwMCkpOyAgICAgICAgIC8vIEtlZXAgYWxw
aGEgYW5kIGdyZWVuCit9CisKK3ZvaWQgQ29weUJHUkE4VG9SR0JBOEZhc3QoY29uc3QgdWludDhf
dCAqc291cmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3JjWUF4aXNQaXRjaCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCAqZGVzdCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgaW50IGRlc3RZQXhpc1BpdGNoLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICBpbnQgZGVzdFdpZHRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGVzdEhlaWdo
dCkKK3sKKyAgICBmb3IgKGludCB5ID0gMDsgeSA8IGRlc3RIZWlnaHQ7ICsreSkKKyAgICB7Cisg
ICAgICAgIGNvbnN0IHVpbnQzMl90ICpzcmMzMiA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWlu
dDMyX3QgKj4oc291cmNlICsgeSAqIHNyY1lBeGlzUGl0Y2gpOworICAgICAgICB1aW50MzJfdCAq
ZGVzdDMyICAgICAgPSByZWludGVycHJldF9jYXN0PHVpbnQzMl90ICo+KGRlc3QgKyB5ICogZGVz
dFlBeGlzUGl0Y2gpOworICAgICAgICBjb25zdCB1aW50MzJfdCAqZW5kMzIgPSBzcmMzMiArIGRl
c3RXaWR0aDsKKyAgICAgICAgd2hpbGUgKHNyYzMyICE9IGVuZDMyKQorICAgICAgICB7CisgICAg
ICAgICAgICAqZGVzdDMyKysgPSBTd2l6emxlQkdSQVRvUkdCQSgqc3JjMzIrKyk7CisgICAgICAg
IH0KKyAgICB9Cit9Cit9ICAvLyBuYW1lc3BhY2UKKwordm9pZCBDb3B5QkdSQThUb1JHQkE4KGNv
bnN0IHVpbnQ4X3QgKnNvdXJjZSwKKyAgICAgICAgICAgICAgICAgICAgICBpbnQgc3JjWEF4aXNQ
aXRjaCwKKyAgICAgICAgICAgICAgICAgICAgICBpbnQgc3JjWUF4aXNQaXRjaCwKKyAgICAgICAg
ICAgICAgICAgICAgICB1aW50OF90ICpkZXN0LAorICAgICAgICAgICAgICAgICAgICAgIGludCBk
ZXN0WEF4aXNQaXRjaCwKKyAgICAgICAgICAgICAgICAgICAgICBpbnQgZGVzdFlBeGlzUGl0Y2gs
CisgICAgICAgICAgICAgICAgICAgICAgaW50IGRlc3RXaWR0aCwKKyAgICAgICAgICAgICAgICAg
ICAgICBpbnQgZGVzdEhlaWdodCkKK3sKKyAgICBpZiAoc3JjWEF4aXNQaXRjaCA9PSA0ICYmIGRl
c3RYQXhpc1BpdGNoID09IDQpCisgICAgeworICAgICAgICBDb3B5QkdSQThUb1JHQkE4RmFzdChz
b3VyY2UsIHNyY1lBeGlzUGl0Y2gsIGRlc3QsIGRlc3RZQXhpc1BpdGNoLCBkZXN0V2lkdGgsIGRl
c3RIZWlnaHQpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgZm9yIChpbnQgeSA9IDA7
IHkgPCBkZXN0SGVpZ2h0OyArK3kpCisgICAgeworICAgICAgICB1aW50OF90ICpkc3QgICAgICAg
PSBkZXN0ICsgeSAqIGRlc3RZQXhpc1BpdGNoOworICAgICAgICBjb25zdCB1aW50OF90ICpzcmMg
PSBzb3VyY2UgKyB5ICogc3JjWUF4aXNQaXRjaDsKKyAgICAgICAgY29uc3QgdWludDhfdCAqZW5k
ID0gc3JjICsgZGVzdFdpZHRoICogc3JjWEF4aXNQaXRjaDsKKworICAgICAgICB3aGlsZSAoc3Jj
ICE9IGVuZCkKKyAgICAgICAgeworICAgICAgICAgICAgKnJlaW50ZXJwcmV0X2Nhc3Q8dWludDMy
X3QgKj4oZHN0KSA9CisgICAgICAgICAgICAgICAgU3dpenpsZUJHUkFUb1JHQkEoKnJlaW50ZXJw
cmV0X2Nhc3Q8Y29uc3QgdWludDMyX3QgKj4oc3JjKSk7CisgICAgICAgICAgICBzcmMgKz0gc3Jj
WEF4aXNQaXRjaDsKKyAgICAgICAgICAgIGRzdCArPSBkZXN0WEF4aXNQaXRjaDsKKyAgICAgICAg
fQorICAgIH0KIH0KIAogfSAgLy8gbmFtZXNwYWNlIGFuZ2xlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9BTkdMRS9zcmMvaW1hZ2VfdXRpbC9jb3B5aW1hZ2UuaCBiL1NvdXJjZS9UaGly
ZFBhcnR5L0FOR0xFL3NyYy9pbWFnZV91dGlsL2NvcHlpbWFnZS5oCmluZGV4IGFhNWY2NjhjODkz
NTdiOTRiZDA3OTQ3ZTZkY2RhYmMxZTNiNTNkZjguLjk4MjViODZmOTgxYzM2OWIzYTRlZDUxYmIz
OGUwNmExOTE4NDM2YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9p
bWFnZV91dGlsL2NvcHlpbWFnZS5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9p
bWFnZV91dGlsL2NvcHlpbWFnZS5oCkBAIC0zMCw3ICszMCwxNCBAQCB2b2lkIFJlYWREZXB0aFN0
ZW5jaWwoY29uc3QgdWludDhfdCAqc291cmNlLCB1aW50OF90ICpkZXN0KTsKIHRlbXBsYXRlIDx0
eXBlbmFtZSBEZXN0VHlwZT4KIHZvaWQgV3JpdGVEZXB0aFN0ZW5jaWwoY29uc3QgdWludDhfdCAq
c291cmNlLCB1aW50OF90ICpkZXN0KTsKIAotdm9pZCBDb3B5QkdSQThUb1JHQkE4KGNvbnN0IHVp
bnQ4X3QgKnNvdXJjZSwgdWludDhfdCAqZGVzdCk7Cit2b2lkIENvcHlCR1JBOFRvUkdCQTgoY29u
c3QgdWludDhfdCAqc291cmNlLAorICAgICAgICAgICAgICAgICAgICAgIGludCBzcmNYQXhpc1Bp
dGNoLAorICAgICAgICAgICAgICAgICAgICAgIGludCBzcmNZQXhpc1BpdGNoLAorICAgICAgICAg
ICAgICAgICAgICAgIHVpbnQ4X3QgKmRlc3QsCisgICAgICAgICAgICAgICAgICAgICAgaW50IGRl
c3RYQXhpc1BpdGNoLAorICAgICAgICAgICAgICAgICAgICAgIGludCBkZXN0WUF4aXNQaXRjaCwK
KyAgICAgICAgICAgICAgICAgICAgICBpbnQgZGVzdFdpZHRoLAorICAgICAgICAgICAgICAgICAg
ICAgIGludCBkZXN0SGVpZ2h0KTsKIAogfSAgLy8gbmFtZXNwYWNlIGFuZ2xlCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9CdWZmZXIuY3BwIGIvU291
cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL0J1ZmZlci5jcHAKaW5kZXggZTMwN2Q2
NDUwZDY4NTcxYTAzNzJiYWJlZmQ3M2U5MjhjZThkNWNjYi4uYzc1NjM0NzUyNzNjMDZlYjA3Njk0
ZTc1YTY5NjAzY2ZlNzg3MWE3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUv
c3JjL2xpYkFOR0xFL0J1ZmZlci5jcHAKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3Jj
L2xpYkFOR0xFL0J1ZmZlci5jcHAKQEAgLTM5MSwxNSArMzkxLDExIEBAIGFuZ2xlOjpSZXN1bHQg
QnVmZmVyOjpnZXRTdWJEYXRhKGNvbnN0IGdsOjpDb250ZXh0ICpjb250ZXh0LAogCiB2b2lkIEJ1
ZmZlcjo6b25TdWJqZWN0U3RhdGVDaGFuZ2UoYW5nbGU6OlN1YmplY3RJbmRleCBpbmRleCwgYW5n
bGU6OlN1YmplY3RNZXNzYWdlIG1lc3NhZ2UpCiB7Ci0gICAgaWYgKG1lc3NhZ2UgPT0gYW5nbGU6
OlN1YmplY3RNZXNzYWdlOjpCdWZmZXJWa1N0b3JhZ2VDaGFuZ2VkKQotICAgIHsKLSAgICAgICAg
cmV0dXJuOwotICAgIH0KLQogICAgIC8vIFBhc3MgaXQgYWxvbmchCiAgICAgQVNTRVJUKGluZGV4
ID09IGtJbXBsZW1lbnRhdGlvblN1YmplY3RJbmRleCk7CiAgICAgQVNTRVJUKG1lc3NhZ2UgPT0g
YW5nbGU6OlN1YmplY3RNZXNzYWdlOjpTdWJqZWN0Q2hhbmdlZCB8fAotICAgICAgICAgICBtZXNz
YWdlID09IGFuZ2xlOjpTdWJqZWN0TWVzc2FnZTo6SW50ZXJuYWxNZW1vcnlBbGxvY2F0aW9uQ2hh
bmdlZCk7CisgICAgICAgICAgIG1lc3NhZ2UgPT0gYW5nbGU6OlN1YmplY3RNZXNzYWdlOjpJbnRl
cm5hbE1lbW9yeUFsbG9jYXRpb25DaGFuZ2VkIHx8CisgICAgICAgICAgIG1lc3NhZ2UgPT0gYW5n
bGU6OlN1YmplY3RNZXNzYWdlOjpCdWZmZXJWa1N0b3JhZ2VDaGFuZ2VkKTsKICAgICBvblN0YXRl
Q2hhbmdlKG1lc3NhZ2UpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdM
RS9zcmMvbGliQU5HTEUvQ29udGV4dC5jcHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMv
bGliQU5HTEUvQ29udGV4dC5jcHAKaW5kZXggZDE5MjIwZjlmYjRkMWJkNDBlNGFkN2Y0NDc0M2Q1
MzM1NmYzMTA1OS4uNDUzOWMyNDVhZWU5ZGU1ZjAzNzQ0MmQ5YjZlMjcxZjM2OTRjOWVjMSAxMDA2
NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL0NvbnRleHQuY3Bw
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9Db250ZXh0LmNwcApA
QCAtMzE4LDcgKzMxOCw3IEBAIGJvb2wgSXNFbXB0eVNjaXNzb3IoY29uc3QgU3RhdGUgJmdsU3Rh
dGUpCiAKIGJvb2wgSXNDb2xvck1hc2tlZE91dChjb25zdCBCbGVuZFN0YXRlRXh0ICZibGVuZFN0
YXRlRXh0LCBjb25zdCBHTGludCBkcmF3YnVmZmVyKQogewotICAgIEFTU0VSVChzdGF0aWNfY2Fz
dDxzaXplX3Q+KGRyYXdidWZmZXIpIDwgYmxlbmRTdGF0ZUV4dC5tTWF4RHJhd0J1ZmZlcnMpOwor
ICAgIEFTU0VSVChzdGF0aWNfY2FzdDxzaXplX3Q+KGRyYXdidWZmZXIpIDwgYmxlbmRTdGF0ZUV4
dC5nZXREcmF3QnVmZmVyQ291bnQoKSk7CiAgICAgcmV0dXJuIGJsZW5kU3RhdGVFeHQuZ2V0Q29s
b3JNYXNrSW5kZXhlZChzdGF0aWNfY2FzdDxzaXplX3Q+KGRyYXdidWZmZXIpKSA9PSAwOwogfQog
CkBAIC0zNTgsNiArMzU4LDQzIEBAIHZvaWQgR2V0UGVyZk1vbml0b3JTdHJpbmcoY29uc3Qgc3Rk
OjpzdHJpbmcgJm5hbWUsCiAgICAgICAgIG1lbWNweShzdHJpbmdPdXQsIG5hbWUuY19zdHIoKSwg
bnVtQ2hhcnNXcml0dGVuKTsKICAgICB9CiB9CisKK2Jvb2wgQ2FuU3VwcG9ydEFFUChjb25zdCBn
bDo6VmVyc2lvbiAmdmVyc2lvbiwgY29uc3QgZ2w6OkV4dGVuc2lvbnMgJmV4dGVuc2lvbnMpCit7
CisgICAgLy8gRnJvbSB0aGUgR0xfQU5EUk9JRF9leHRlbnNpb25fcGFja19lczMxYSBleHRlbnNp
b24gc3BlYzoKKyAgICAvLyBPcGVuR0wgRVMgMy4xIGFuZCBHTFNMIEVTIDMuMTAgYXJlIHJlcXVp
cmVkLgorICAgIC8vIFRoZSBmb2xsb3dpbmcgZXh0ZW5zaW9ucyBhcmUgcmVxdWlyZWQ6CisgICAg
Ly8gKiBLSFJfZGVidWcKKyAgICAvLyAqIEtIUl90ZXh0dXJlX2NvbXByZXNzaW9uX2FzdGNfbGRy
CisgICAgLy8gKiBLSFJfYmxlbmRfZXF1YXRpb25fYWR2YW5jZWQKKyAgICAvLyAqIE9FU19zYW1w
bGVfc2hhZGluZworICAgIC8vICogT0VTX3NhbXBsZV92YXJpYWJsZXMKKyAgICAvLyAqIE9FU19z
aGFkZXJfaW1hZ2VfYXRvbWljCisgICAgLy8gKiBPRVNfc2hhZGVyX211bHRpc2FtcGxlX2ludGVy
cG9sYXRpb24KKyAgICAvLyAqIE9FU190ZXh0dXJlX3N0ZW5jaWw4CisgICAgLy8gKiBPRVNfdGV4
dHVyZV9zdG9yYWdlX211bHRpc2FtcGxlXzJkX2FycmF5CisgICAgLy8gKiBFWFRfY29weV9pbWFn
ZQorICAgIC8vICogRVhUX2RyYXdfYnVmZmVyc19pbmRleGVkCisgICAgLy8gKiBFWFRfZ2VvbWV0
cnlfc2hhZGVyCisgICAgLy8gKiBFWFRfZ3B1X3NoYWRlcjUKKyAgICAvLyAqIEVYVF9wcmltaXRp
dmVfYm91bmRpbmdfYm94CisgICAgLy8gKiBFWFRfc2hhZGVyX2lvX2Jsb2NrcworICAgIC8vICog
RVhUX3Rlc3NlbGxhdGlvbl9zaGFkZXIKKyAgICAvLyAqIEVYVF90ZXh0dXJlX2JvcmRlcl9jbGFt
cAorICAgIC8vICogRVhUX3RleHR1cmVfYnVmZmVyCisgICAgLy8gKiBFWFRfdGV4dHVyZV9jdWJl
X21hcF9hcnJheQorICAgIC8vICogRVhUX3RleHR1cmVfc1JHQl9kZWNvZGUKKyAgICByZXR1cm4g
KHZlcnNpb24gPj0gRVNfM18xICYmIGV4dGVuc2lvbnMuZGVidWdLSFIgJiYgZXh0ZW5zaW9ucy50
ZXh0dXJlQ29tcHJlc3Npb25Bc3RjTGRyS0hSICYmCisgICAgICAgICAgICBleHRlbnNpb25zLmJs
ZW5kRXF1YXRpb25BZHZhbmNlZEtIUiAmJiBleHRlbnNpb25zLnNhbXBsZVNoYWRpbmdPRVMgJiYK
KyAgICAgICAgICAgIGV4dGVuc2lvbnMuc2FtcGxlVmFyaWFibGVzT0VTICYmIGV4dGVuc2lvbnMu
c2hhZGVySW1hZ2VBdG9taWNPRVMgJiYKKyAgICAgICAgICAgIGV4dGVuc2lvbnMuc2hhZGVyTXVs
dGlzYW1wbGVJbnRlcnBvbGF0aW9uT0VTICYmIGV4dGVuc2lvbnMudGV4dHVyZVN0ZW5jaWw4T0VT
ICYmCisgICAgICAgICAgICBleHRlbnNpb25zLnRleHR1cmVTdG9yYWdlTXVsdGlzYW1wbGUyZEFy
cmF5T0VTICYmIGV4dGVuc2lvbnMuY29weUltYWdlRVhUICYmCisgICAgICAgICAgICBleHRlbnNp
b25zLmRyYXdCdWZmZXJzSW5kZXhlZEVYVCAmJiBleHRlbnNpb25zLmdlb21ldHJ5U2hhZGVyRVhU
ICYmCisgICAgICAgICAgICBleHRlbnNpb25zLmdwdVNoYWRlcjVFWFQgJiYgZXh0ZW5zaW9ucy5w
cmltaXRpdmVCb3VuZGluZ0JveEVYVCAmJgorICAgICAgICAgICAgZXh0ZW5zaW9ucy5zaGFkZXJJ
b0Jsb2Nrc0VYVCAmJiBleHRlbnNpb25zLnRlc3NlbGxhdGlvblNoYWRlckVYVCAmJgorICAgICAg
ICAgICAgZXh0ZW5zaW9ucy50ZXh0dXJlQm9yZGVyQ2xhbXBFWFQgJiYgZXh0ZW5zaW9ucy50ZXh0
dXJlQnVmZmVyRVhUICYmCisgICAgICAgICAgICBleHRlbnNpb25zLnRleHR1cmVDdWJlTWFwQXJy
YXlFWFQgJiYgZXh0ZW5zaW9ucy50ZXh0dXJlU1JHQkRlY29kZUVYVCk7Cit9CiB9ICAvLyBhbm9u
eW1vdXMgbmFtZXNwYWNlCiAKICNpZiBkZWZpbmVkKEFOR0xFX1BMQVRGT1JNX0FQUExFKQpAQCAt
MzUxNSw3ICszNTUyLDcgQEAgdm9pZCBDb250ZXh0OjpiZWdpblRyYW5zZm9ybUZlZWRiYWNrKFBy
aW1pdGl2ZU1vZGUgcHJpbWl0aXZlTW9kZSkKICAgICBBU1NFUlQodHJhbnNmb3JtRmVlZGJhY2sg
IT0gbnVsbHB0cik7CiAgICAgQVNTRVJUKCF0cmFuc2Zvcm1GZWVkYmFjay0+aXNQYXVzZWQoKSk7
CiAKLSAgICAvLyBUT0RPOiBodHRwOi8vYW5nbGVidWcuY29tLzM1NzA6IEhhbmRsZSBQUE9zCisg
ICAgLy8gVE9ETzogaHR0cDovL2FuZ2xlYnVnLmNvbS83MjMyOiBIYW5kbGUgUFBPcwogICAgIEFO
R0xFX0NPTlRFWFRfVFJZKHRyYW5zZm9ybUZlZWRiYWNrLT5iZWdpbih0aGlzLCBwcmltaXRpdmVN
b2RlLCBtU3RhdGUuZ2V0UHJvZ3JhbSgpKSk7CiAgICAgbVN0YXRlQ2FjaGUub25BY3RpdmVUcmFu
c2Zvcm1GZWVkYmFja0NoYW5nZSh0aGlzKTsKIH0KQEAgLTM2MTcsMTcgKzM2NTQsMTYgQEAgRXh0
ZW5zaW9ucyBDb250ZXh0OjpnZW5lcmF0ZVN1cHBvcnRlZEV4dGVuc2lvbnMoKSBjb25zdAogICAg
IGlmIChnZXRDbGllbnRWZXJzaW9uKCkgPCBFU18zXzEpCiAgICAgewogICAgICAgICAvLyBEaXNh
YmxlIEVTMy4xKyBleHRlbnNpb25zCi0gICAgICAgIHN1cHBvcnRlZEV4dGVuc2lvbnMuZ2VvbWV0
cnlTaGFkZXJFWFQgICAgICAgICA9IGZhbHNlOwotICAgICAgICBzdXBwb3J0ZWRFeHRlbnNpb25z
Lmdlb21ldHJ5U2hhZGVyT0VTICAgICAgICAgPSBmYWxzZTsKLSAgICAgICAgc3VwcG9ydGVkRXh0
ZW5zaW9ucy50ZXNzZWxsYXRpb25TaGFkZXJFWFQgICAgID0gZmFsc2U7Ci0gICAgICAgIHN1cHBv
cnRlZEV4dGVuc2lvbnMuZXh0ZW5zaW9uUGFja0VzMzFhQU5EUk9JRCA9IGZhbHNlOwotICAgICAg
ICBzdXBwb3J0ZWRFeHRlbnNpb25zLmdwdVNoYWRlcjVFWFQgICAgICAgICAgICAgPSBmYWxzZTsK
LSAgICAgICAgc3VwcG9ydGVkRXh0ZW5zaW9ucy5wcmltaXRpdmVCb3VuZGluZ0JveEVYVCAgID0g
ZmFsc2U7Ci0gICAgICAgIHN1cHBvcnRlZEV4dGVuc2lvbnMuc2hhZGVySW1hZ2VBdG9taWNPRVMg
ICAgICA9IGZhbHNlOwotICAgICAgICBzdXBwb3J0ZWRFeHRlbnNpb25zLnNoYWRlcklvQmxvY2tz
RVhUICAgICAgICAgPSBmYWxzZTsKLSAgICAgICAgc3VwcG9ydGVkRXh0ZW5zaW9ucy5zaGFkZXJJ
b0Jsb2Nrc09FUyAgICAgICAgID0gZmFsc2U7Ci0gICAgICAgIHN1cHBvcnRlZEV4dGVuc2lvbnMu
dGV4dHVyZUJ1ZmZlckVYVCAgICAgICAgICA9IGZhbHNlOwotICAgICAgICBzdXBwb3J0ZWRFeHRl
bnNpb25zLnRleHR1cmVCdWZmZXJPRVMgICAgICAgICAgPSBmYWxzZTsKKyAgICAgICAgc3VwcG9y
dGVkRXh0ZW5zaW9ucy5nZW9tZXRyeVNoYWRlckVYVCAgICAgICA9IGZhbHNlOworICAgICAgICBz
dXBwb3J0ZWRFeHRlbnNpb25zLmdlb21ldHJ5U2hhZGVyT0VTICAgICAgID0gZmFsc2U7CisgICAg
ICAgIHN1cHBvcnRlZEV4dGVuc2lvbnMudGVzc2VsbGF0aW9uU2hhZGVyRVhUICAgPSBmYWxzZTsK
KyAgICAgICAgc3VwcG9ydGVkRXh0ZW5zaW9ucy5ncHVTaGFkZXI1RVhUICAgICAgICAgICA9IGZh
bHNlOworICAgICAgICBzdXBwb3J0ZWRFeHRlbnNpb25zLnByaW1pdGl2ZUJvdW5kaW5nQm94RVhU
ID0gZmFsc2U7CisgICAgICAgIHN1cHBvcnRlZEV4dGVuc2lvbnMuc2hhZGVySW1hZ2VBdG9taWNP
RVMgICAgPSBmYWxzZTsKKyAgICAgICAgc3VwcG9ydGVkRXh0ZW5zaW9ucy5zaGFkZXJJb0Jsb2Nr
c0VYVCAgICAgICA9IGZhbHNlOworICAgICAgICBzdXBwb3J0ZWRFeHRlbnNpb25zLnNoYWRlcklv
QmxvY2tzT0VTICAgICAgID0gZmFsc2U7CisgICAgICAgIHN1cHBvcnRlZEV4dGVuc2lvbnMudGV4
dHVyZUJ1ZmZlckVYVCAgICAgICAgPSBmYWxzZTsKKyAgICAgICAgc3VwcG9ydGVkRXh0ZW5zaW9u
cy50ZXh0dXJlQnVmZmVyT0VTICAgICAgICA9IGZhbHNlOwogCiAgICAgICAgIC8vIFRPRE8oaHR0
cDovL2FuZ2xlYnVnLmNvbS8yNzc1KTogTXVsdGlzYW1wbGUgYXJyYXlzIGNvdWxkIGJlIHN1cHBv
cnRlZCBvbiBFUyAzLjAgYXMgd2VsbAogICAgICAgICAvLyBvbmNlIDJEIG11bHRpc2FtcGxlIHRl
eHR1cmUgZXh0ZW5zaW9uIGlzIGV4cG9zZWQgdGhlcmUuCkBAIC0zNzUwLDYgKzM3ODYsMTAgQEAg
RXh0ZW5zaW9ucyBDb250ZXh0OjpnZW5lcmF0ZVN1cHBvcnRlZEV4dGVuc2lvbnMoKSBjb25zdAog
ICAgIC8vIFBlcmZvcm1hbmNlIGNvdW50ZXIgcXVlcmllcyBhcmUgYWx3YXlzIHN1cHBvcnRlZC4g
RGlmZmVyZW50IGdyb3VwcyBleGlzdCBvbiBlYWNoIGJhY2stZW5kLgogICAgIHN1cHBvcnRlZEV4
dGVuc2lvbnMucGVyZm9ybWFuY2VNb25pdG9yQU1EID0gdHJ1ZTsKIAorICAgIC8vIEdMX0FORFJP
SURfZXh0ZW5zaW9uX3BhY2tfZXMzMWEKKyAgICBzdXBwb3J0ZWRFeHRlbnNpb25zLmV4dGVuc2lv
blBhY2tFczMxYUFORFJPSUQgPQorICAgICAgICBDYW5TdXBwb3J0QUVQKGdldENsaWVudFZlcnNp
b24oKSwgc3VwcG9ydGVkRXh0ZW5zaW9ucyk7CisKICAgICByZXR1cm4gc3VwcG9ydGVkRXh0ZW5z
aW9uczsKIH0KIApAQCAtMzk2Niw3ICs0MDA2LDcgQEAgdm9pZCBDb250ZXh0Ojppbml0Q2Fwcygp
CiAgICAgLy8gSWYgd2UncmUgY2FwdHVyaW5nIGFwcGxpY2F0aW9uIGNhbGxzIGZvciByZXBsYXks
IGFwcGx5IHNvbWUgZmVhdHVyZSBsaW1pdHMgdG8gaW5jcmVhc2UKICAgICAvLyBwb3J0YWJpbGl0
eSBvZiB0aGUgdHJhY2UuCiAgICAgaWYgKGdldFNoYXJlR3JvdXAoKS0+Z2V0RnJhbWVDYXB0dXJl
U2hhcmVkKCktPmVuYWJsZWQoKSB8fAotICAgICAgICBnZXRGcm9udGVuZEZlYXR1cmVzKCkuY2Fw
dHVyZUxpbWl0cy5lbmFibGVkKQorICAgICAgICBnZXRGcm9udGVuZEZlYXR1cmVzKCkuZW5hYmxl
Q2FwdHVyZUxpbWl0cy5lbmFibGVkKQogICAgIHsKICAgICAgICAgSU5GTygpIDw8ICJMaW1pdCBz
b21lIGZlYXR1cmVzIGJlY2F1c2UgIgogICAgICAgICAgICAgICAgPDwgKGdldFNoYXJlR3JvdXAo
KS0+Z2V0RnJhbWVDYXB0dXJlU2hhcmVkKCktPmVuYWJsZWQoKQpAQCAtNTgyNCw2ICs1ODY0LDEx
IEBAIHZvaWQgQ29udGV4dDo6c2Npc3NvcihHTGludCB4LCBHTGludCB5LCBHTHNpemVpIHdpZHRo
LCBHTHNpemVpIGhlaWdodCkKICAgICBtU3RhdGUuc2V0U2Npc3NvclBhcmFtcyh4LCB5LCB3aWR0
aCwgaGVpZ2h0KTsKIH0KIAordm9pZCBDb250ZXh0OjpzaGFkaW5nUmF0ZVFDT00oR0xlbnVtIHJh
dGUpCit7CisgICAgbVN0YXRlLnNldFNoYWRpbmdSYXRlKHJhdGUpOworfQorCiB2b2lkIENvbnRl
eHQ6OnN0ZW5jaWxGdW5jU2VwYXJhdGUoR0xlbnVtIGZhY2UsIEdMZW51bSBmdW5jLCBHTGludCBy
ZWYsIEdMdWludCBtYXNrKQogewogICAgIEdMaW50IGNsYW1wZWRSZWYgPSBnbDo6Y2xhbXAocmVm
LCAwLCBzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQ4X3Q+OjptYXgoKSk7CkBAIC05MjcwLDcgKzkz
MTUsNyBAQCBlZ2w6OkVycm9yIENvbnRleHQ6OnNldERlZmF1bHRGcmFtZWJ1ZmZlcihlZ2w6OlN1
cmZhY2UgKmRyYXdTdXJmYWNlLCBlZ2w6OlN1cmZhYwogICAgIEFTU0VSVChtQ3VycmVudERyYXdT
dXJmYWNlID09IG51bGxwdHIpOwogICAgIEFTU0VSVChtQ3VycmVudFJlYWRTdXJmYWNlID09IG51
bGxwdHIpOwogCi0gICAgc3RkOjp1bmlxdWVfcHRyPGdsOjpGcmFtZWJ1ZmZlcj4gbmV3RGVmYXVs
dEZyYW1lYnVmZmVyOworICAgIFVuaXF1ZUZyYW1lYnVmZmVyUG9pbnRlciBuZXdEZWZhdWx0RnJh
bWVidWZmZXI7CiAKICAgICBtQ3VycmVudERyYXdTdXJmYWNlID0gZHJhd1N1cmZhY2U7CiAgICAg
bUN1cnJlbnRSZWFkU3VyZmFjZSA9IHJlYWRTdXJmYWNlOwpAQCAtOTI3OCwxMSArOTMyMywxMSBA
QCBlZ2w6OkVycm9yIENvbnRleHQ6OnNldERlZmF1bHRGcmFtZWJ1ZmZlcihlZ2w6OlN1cmZhY2Ug
KmRyYXdTdXJmYWNlLCBlZ2w6OlN1cmZhYwogICAgIGlmIChkcmF3U3VyZmFjZSAhPSBudWxscHRy
KQogICAgIHsKICAgICAgICAgQU5HTEVfVFJZKGRyYXdTdXJmYWNlLT5tYWtlQ3VycmVudCh0aGlz
KSk7Ci0gICAgICAgIG5ld0RlZmF1bHRGcmFtZWJ1ZmZlciA9IGRyYXdTdXJmYWNlLT5jcmVhdGVE
ZWZhdWx0RnJhbWVidWZmZXIodGhpcywgcmVhZFN1cmZhY2UpOworICAgICAgICBuZXdEZWZhdWx0
RnJhbWVidWZmZXIgPSB7bmV3IEZyYW1lYnVmZmVyKHRoaXMsIGRyYXdTdXJmYWNlLCByZWFkU3Vy
ZmFjZSksIHRoaXN9OwogICAgIH0KICAgICBlbHNlCiAgICAgewotICAgICAgICBuZXdEZWZhdWx0
RnJhbWVidWZmZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPGdsOjpGcmFtZWJ1ZmZlcj4odGhpcywgbUlt
cGxlbWVudGF0aW9uLmdldCgpLCByZWFkU3VyZmFjZSk7CisgICAgICAgIG5ld0RlZmF1bHRGcmFt
ZWJ1ZmZlciA9IHtuZXcgRnJhbWVidWZmZXIodGhpcywgbUltcGxlbWVudGF0aW9uLmdldCgpLCBy
ZWFkU3VyZmFjZSksIHRoaXN9OwogICAgIH0KICAgICBBU1NFUlQobmV3RGVmYXVsdEZyYW1lYnVm
ZmVyKTsKIApAQCAtOTI5MywxNCArOTMzOCwxNSBAQCBlZ2w6OkVycm9yIENvbnRleHQ6OnNldERl
ZmF1bHRGcmFtZWJ1ZmZlcihlZ2w6OlN1cmZhY2UgKmRyYXdTdXJmYWNlLCBlZ2w6OlN1cmZhYwog
CiAgICAgLy8gVXBkYXRlIGRlZmF1bHQgZnJhbWVidWZmZXIsIHRoZSBiaW5kaW5nIG9mIHRoZSBw
cmV2aW91cyBkZWZhdWx0CiAgICAgLy8gZnJhbWVidWZmZXIgKG9yIGxhY2sgb2YpIHdpbGwgaGF2
ZSBhIG51bGxwdHIuCisgICAgRnJhbWVidWZmZXIgKmZyYW1lYnVmZmVyID0gbmV3RGVmYXVsdEZy
YW1lYnVmZmVyLmdldCgpOwogICAgIG1TdGF0ZS5tRnJhbWVidWZmZXJNYW5hZ2VyLT5zZXREZWZh
dWx0RnJhbWVidWZmZXIobmV3RGVmYXVsdEZyYW1lYnVmZmVyLnJlbGVhc2UoKSk7CiAgICAgaWYg
KG1TdGF0ZS5nZXREcmF3RnJhbWVidWZmZXIoKSA9PSBudWxscHRyKQogICAgIHsKLSAgICAgICAg
YmluZERyYXdGcmFtZWJ1ZmZlcihtU3RhdGUubUZyYW1lYnVmZmVyTWFuYWdlci0+Z2V0RGVmYXVs
dEZyYW1lYnVmZmVyKCktPmlkKCkpOworICAgICAgICBiaW5kRHJhd0ZyYW1lYnVmZmVyKGZyYW1l
YnVmZmVyLT5pZCgpKTsKICAgICB9CiAgICAgaWYgKG1TdGF0ZS5nZXRSZWFkRnJhbWVidWZmZXIo
KSA9PSBudWxscHRyKQogICAgIHsKLSAgICAgICAgYmluZFJlYWRGcmFtZWJ1ZmZlcihtU3RhdGUu
bUZyYW1lYnVmZmVyTWFuYWdlci0+Z2V0RGVmYXVsdEZyYW1lYnVmZmVyKCktPmlkKCkpOworICAg
ICAgICBiaW5kUmVhZEZyYW1lYnVmZmVyKGZyYW1lYnVmZmVyLT5pZCgpKTsKICAgICB9CiAKICAg
ICByZXR1cm4gZWdsOjpOb0Vycm9yKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9B
TkdMRS9zcmMvbGliQU5HTEUvQ29udGV4dF9nbGVzX2V4dF9hdXRvZ2VuLmggYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvQ29udGV4dF9nbGVzX2V4dF9hdXRvZ2VuLmgKaW5k
ZXggZDdmZGU2MmQ1Mjc4Y2I1Mzc2YTg4MDFmZGU1NDhiNzQyY2E0YmJiNS4uYTliMjc3OThjMjgz
MDYxYmE5OWE2MGEyYmRhNDcwZDZjY2I0OWU3MiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvc3JjL2xpYkFOR0xFL0NvbnRleHRfZ2xlc19leHRfYXV0b2dlbi5oCisrKyBiL1Nv
dXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9Db250ZXh0X2dsZXNfZXh0X2F1dG9n
ZW4uaApAQCAtMzE4LDYgKzMxOCw4IEBACiAgICAgdm9pZCBmcmFtZWJ1ZmZlclRleHR1cmVNdWx0
aXZpZXcoR0xlbnVtIHRhcmdldCwgR0xlbnVtIGF0dGFjaG1lbnQsIFRleHR1cmVJRCB0ZXh0dXJl
UGFja2VkLCAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0xpbnQg
bGV2ZWwsIEdMaW50IGJhc2VWaWV3SW5kZXgsIEdMc2l6ZWkgbnVtVmlld3MpOyAgICAgICAgICBc
CiAgICAgLyogR0xfT1ZSX211bHRpdmlldzIgKi8gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgLyogR0xf
UUNPTV9zaGFkaW5nX3JhdGUgKi8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgdm9pZCBzaGFkaW5nUmF0ZVFD
T00oR0xlbnVtIHJhdGUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCiAgICAgLyogR0xfV0VCR0xfdmlkZW9fdGV4dHVyZSAqLyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAg
ICAgLyogQU5HTEUgRXh0ZW5zaW9ucyAqLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvRGlzcGxheS5jcHAgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvRGlzcGxheS5jcHAKaW5kZXggYmQyYmQ1OWQ3
NzlmOWFjYzdlZjUxMjA3ZTdlNDZiOWY5OWM4OTgwZi4uMWRiODgwYzdmMmVmOTA4Zjg1M2I4NjY0
OGE0M2ZkYTFlYzBkYzVjMiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3Jj
L2xpYkFOR0xFL0Rpc3BsYXkuY3BwCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9s
aWJBTkdMRS9EaXNwbGF5LmNwcApAQCAtNjgyLDcgKzY4Miw4IEBAIERpc3BsYXlTdGF0ZTo6fkRp
c3BsYXlTdGF0ZSgpIHt9CiAvLyBodHRwczovL2RvY3MuZ29vZ2xlLmNvbS9kb2N1bWVudC9kLzFY
akhpRFpRSVNxMUFNcmdfbDFUWDFfa0lLdkRwVTc2aGlkbjlpNGNBamw4L2VkaXQ/ZGlzY289QUFB
QUpsOVZfWVkKIC8vCiAvLyBzdGF0aWMKLURpc3BsYXkgKkRpc3BsYXk6OkdldERpc3BsYXlGcm9t
TmF0aXZlRGlzcGxheShFR0xOYXRpdmVEaXNwbGF5VHlwZSBuYXRpdmVEaXNwbGF5LAorRGlzcGxh
eSAqRGlzcGxheTo6R2V0RGlzcGxheUZyb21OYXRpdmVEaXNwbGF5KEVHTGVudW0gcGxhdGZvcm0s
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRUdMTmF0aXZl
RGlzcGxheVR5cGUgbmF0aXZlRGlzcGxheSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBBdHRyaWJ1dGVNYXAgJmF0dHJpYk1hcCkKIHsKICAgICBE
aXNwbGF5ICpkaXNwbGF5ID0gbnVsbHB0cjsKQEAgLTcxMyw3ICs3MTQsNyBAQCBEaXNwbGF5ICpE
aXNwbGF5OjpHZXREaXNwbGF5RnJvbU5hdGl2ZURpc3BsYXkoRUdMTmF0aXZlRGlzcGxheVR5cGUg
bmF0aXZlRGlzcGxheQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgIH0KIAot
ICAgICAgICBkaXNwbGF5ID0gbmV3IERpc3BsYXkoRUdMX1BMQVRGT1JNX0FOR0xFX0FOR0xFLCBu
YXRpdmVEaXNwbGF5LCBudWxscHRyKTsKKyAgICAgICAgZGlzcGxheSA9IG5ldyBEaXNwbGF5KHBs
YXRmb3JtLCBuYXRpdmVEaXNwbGF5LCBudWxscHRyKTsKICAgICAgICAgZGlzcGxheXMtPmluc2Vy
dChzdGQ6Om1ha2VfcGFpcihkaXNwbGF5S2V5LCBkaXNwbGF5KSk7CiAgICAgfQogICAgIC8vIEFw
cGx5IG5ldyBhdHRyaWJ1dGVzIGlmIHRoZSBkaXNwbGF5IGlzIG5vdCBpbml0aWFsaXplZCB5ZXQu
CkBAIC03MjEsMTAgKzcyMiwxNCBAQCBEaXNwbGF5ICpEaXNwbGF5OjpHZXREaXNwbGF5RnJvbU5h
dGl2ZURpc3BsYXkoRUdMTmF0aXZlRGlzcGxheVR5cGUgbmF0aXZlRGlzcGxheQogICAgIHsKICAg
ICAgICAgZGlzcGxheS0+c2V0QXR0cmlidXRlcyh1cGRhdGVkQXR0cmliTWFwKTsKIAotICAgICAg
ICBFR0xBdHRyaWIgZGlzcGxheVR5cGUgPSBkaXNwbGF5LT5tQXR0cmlidXRlTWFwLmdldChFR0xf
UExBVEZPUk1fQU5HTEVfVFlQRV9BTkdMRSk7Ci0gICAgICAgIEVHTEF0dHJpYiBkZXZpY2VUeXBl
ICA9IGRpc3BsYXktPm1BdHRyaWJ1dGVNYXAuZ2V0KEVHTF9QTEFURk9STV9BTkdMRV9ERVZJQ0Vf
VFlQRV9BTkdMRSk7Ci0gICAgICAgIEVHTEF0dHJpYiBwbGF0Zm9ybVR5cGUgPQotICAgICAgICAg
ICAgZGlzcGxheS0+bUF0dHJpYnV0ZU1hcC5nZXQoRUdMX1BMQVRGT1JNX0FOR0xFX05BVElWRV9Q
TEFURk9STV9UWVBFX0FOR0xFKTsKKyAgICAgICAgRUdMQXR0cmliIGRpc3BsYXlUeXBlICA9IGRp
c3BsYXktPm1BdHRyaWJ1dGVNYXAuZ2V0KEVHTF9QTEFURk9STV9BTkdMRV9UWVBFX0FOR0xFKTsK
KyAgICAgICAgRUdMQXR0cmliIGRldmljZVR5cGUgICA9IGRpc3BsYXktPm1BdHRyaWJ1dGVNYXAu
Z2V0KEVHTF9QTEFURk9STV9BTkdMRV9ERVZJQ0VfVFlQRV9BTkdMRSk7CisgICAgICAgIEVHTEF0
dHJpYiBwbGF0Zm9ybVR5cGUgPSBwbGF0Zm9ybTsKKyAgICAgICAgaWYgKHBsYXRmb3JtID09IEVH
TF9QTEFURk9STV9BTkdMRV9BTkdMRSkKKyAgICAgICAgeworICAgICAgICAgICAgcGxhdGZvcm1U
eXBlID0KKyAgICAgICAgICAgICAgICBkaXNwbGF5LT5tQXR0cmlidXRlTWFwLmdldChFR0xfUExB
VEZPUk1fQU5HTEVfTkFUSVZFX1BMQVRGT1JNX1RZUEVfQU5HTEUpOworICAgICAgICB9CiAgICAg
ICAgIHJ4OjpEaXNwbGF5SW1wbCAqaW1wbCA9CiAgICAgICAgICAgICBDcmVhdGVEaXNwbGF5RnJv
bUF0dHJpYnMoZGlzcGxheVR5cGUsIGRldmljZVR5cGUsIHBsYXRmb3JtVHlwZSwgZGlzcGxheS0+
Z2V0U3RhdGUoKSk7CiAgICAgICAgIGlmIChpbXBsID09IG51bGxwdHIpCkBAIC04NjAsMzIgKzg2
NSwzOSBAQCBEaXNwbGF5OjpEaXNwbGF5KEVHTGVudW0gcGxhdGZvcm0sIEVHTE5hdGl2ZURpc3Bs
YXlUeXBlIGRpc3BsYXlJZCwgRGV2aWNlICplZ2xEZQogCiBEaXNwbGF5Ojp+RGlzcGxheSgpCiB7
Ci0gICAgaWYgKG1QbGF0Zm9ybSA9PSBFR0xfUExBVEZPUk1fQU5HTEVfQU5HTEUpCisgICAgc3dp
dGNoIChtUGxhdGZvcm0pCiAgICAgewotICAgICAgICBBTkdMRVBsYXRmb3JtRGlzcGxheU1hcCAq
ZGlzcGxheXMgICAgICA9IEdldEFOR0xFUGxhdGZvcm1EaXNwbGF5TWFwKCk7Ci0gICAgICAgIEFO
R0xFUGxhdGZvcm1EaXNwbGF5TWFwOjppdGVyYXRvciBpdGVyID0gZGlzcGxheXMtPmZpbmQoQU5H
TEVQbGF0Zm9ybURpc3BsYXkoCi0gICAgICAgICAgICBtU3RhdGUuZGlzcGxheUlkLCBtQXR0cmli
dXRlTWFwLmdldChFR0xfUE9XRVJfUFJFRkVSRU5DRV9BTkdMRSwgRUdMX0xPV19QT1dFUl9BTkdM
RSksCi0gICAgICAgICAgICBtQXR0cmlidXRlTWFwLmdldChFR0xfUExBVEZPUk1fQU5HTEVfVFlQ
RV9BTkdMRSwgRUdMX1BMQVRGT1JNX0FOR0xFX1RZUEVfREVGQVVMVF9BTkdMRSksCi0gICAgICAg
ICAgICBtQXR0cmlidXRlTWFwLmdldChFR0xfUExBVEZPUk1fQU5HTEVfREVWSUNFX0lEX0hJR0hf
QU5HTEUsIDApLAotICAgICAgICAgICAgbUF0dHJpYnV0ZU1hcC5nZXQoRUdMX1BMQVRGT1JNX0FO
R0xFX0RFVklDRV9JRF9MT1dfQU5HTEUsIDApKSk7Ci0gICAgICAgIGlmIChpdGVyICE9IGRpc3Bs
YXlzLT5lbmQoKSkKKyAgICAgICAgY2FzZSBFR0xfUExBVEZPUk1fQU5HTEVfQU5HTEU6CiAgICAg
ICAgIHsKLSAgICAgICAgICAgIGRpc3BsYXlzLT5lcmFzZShpdGVyKTsKKyAgICAgICAgICAgIEFO
R0xFUGxhdGZvcm1EaXNwbGF5TWFwICpkaXNwbGF5cyAgICAgID0gR2V0QU5HTEVQbGF0Zm9ybURp
c3BsYXlNYXAoKTsKKyAgICAgICAgICAgIEFOR0xFUGxhdGZvcm1EaXNwbGF5TWFwOjppdGVyYXRv
ciBpdGVyID0gZGlzcGxheXMtPmZpbmQoQU5HTEVQbGF0Zm9ybURpc3BsYXkoCisgICAgICAgICAg
ICAgICAgbVN0YXRlLmRpc3BsYXlJZCwKKyAgICAgICAgICAgICAgICBtQXR0cmlidXRlTWFwLmdl
dChFR0xfUE9XRVJfUFJFRkVSRU5DRV9BTkdMRSwgRUdMX0xPV19QT1dFUl9BTkdMRSksCisgICAg
ICAgICAgICAgICAgbUF0dHJpYnV0ZU1hcC5nZXQoRUdMX1BMQVRGT1JNX0FOR0xFX1RZUEVfQU5H
TEUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRUdMX1BMQVRGT1JNX0FOR0xF
X1RZUEVfREVGQVVMVF9BTkdMRSksCisgICAgICAgICAgICAgICAgbUF0dHJpYnV0ZU1hcC5nZXQo
RUdMX1BMQVRGT1JNX0FOR0xFX0RFVklDRV9JRF9ISUdIX0FOR0xFLCAwKSwKKyAgICAgICAgICAg
ICAgICBtQXR0cmlidXRlTWFwLmdldChFR0xfUExBVEZPUk1fQU5HTEVfREVWSUNFX0lEX0xPV19B
TkdMRSwgMCkpKTsKKyAgICAgICAgICAgIGlmIChpdGVyICE9IGRpc3BsYXlzLT5lbmQoKSkKKyAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBkaXNwbGF5cy0+ZXJhc2UoaXRlcik7CisgICAg
ICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQotICAgIH0KLSAgICBlbHNl
IGlmIChtUGxhdGZvcm0gPT0gRUdMX1BMQVRGT1JNX0RFVklDRV9FWFQpCi0gICAgewotICAgICAg
ICBEZXZpY2VQbGF0Zm9ybURpc3BsYXlNYXAgKmRpc3BsYXlzICAgICAgPSBHZXREZXZpY2VQbGF0
Zm9ybURpc3BsYXlNYXAoKTsKLSAgICAgICAgRGV2aWNlUGxhdGZvcm1EaXNwbGF5TWFwOjppdGVy
YXRvciBpdGVyID0gZGlzcGxheXMtPmZpbmQobURldmljZSk7Ci0gICAgICAgIGlmIChpdGVyICE9
IGRpc3BsYXlzLT5lbmQoKSkKKyAgICAgICAgY2FzZSBFR0xfUExBVEZPUk1fREVWSUNFX0VYVDoK
KyAgICAgICAgeworICAgICAgICAgICAgRGV2aWNlUGxhdGZvcm1EaXNwbGF5TWFwICpkaXNwbGF5
cyAgICAgID0gR2V0RGV2aWNlUGxhdGZvcm1EaXNwbGF5TWFwKCk7CisgICAgICAgICAgICBEZXZp
Y2VQbGF0Zm9ybURpc3BsYXlNYXA6Oml0ZXJhdG9yIGl0ZXIgPSBkaXNwbGF5cy0+ZmluZChtRGV2
aWNlKTsKKyAgICAgICAgICAgIGlmIChpdGVyICE9IGRpc3BsYXlzLT5lbmQoKSkKKyAgICAgICAg
ICAgIHsKKyAgICAgICAgICAgICAgICBkaXNwbGF5cy0+ZXJhc2UoaXRlcik7CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBkZWZhdWx0OgogICAg
ICAgICB7Ci0gICAgICAgICAgICBkaXNwbGF5cy0+ZXJhc2UoaXRlcik7CisgICAgICAgICAgICBV
TlJFQUNIQUJMRSgpOwogICAgICAgICB9CiAgICAgfQotICAgIGVsc2UKLSAgICB7Ci0gICAgICAg
IFVOUkVBQ0hBQkxFKCk7Ci0gICAgfQogCiAgICAgU2FmZURlbGV0ZShtRGV2aWNlKTsKICAgICBT
YWZlRGVsZXRlKG1JbXBsZW1lbnRhdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9BTkdMRS9zcmMvbGliQU5HTEUvRGlzcGxheS5oIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUv
c3JjL2xpYkFOR0xFL0Rpc3BsYXkuaAppbmRleCA3ZTdhYmI2OTVmZDZiZTA3YTliNWE1NzIwZmM5
NWRhODEyMjZlNDgyLi4zNjg1OWUyNjQ4NmY4MTM2MWNiYjNmNTAxZmEwM2RlNWI1NGJhMjM2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvRGlzcGxheS5o
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9EaXNwbGF5LmgKQEAg
LTI3LDcgKzI3LDcgQEAKICNpbmNsdWRlICJsaWJBTkdMRS9PYnNlcnZlci5oIgogI2luY2x1ZGUg
ImxpYkFOR0xFL1ZlcnNpb24uaCIKICNpbmNsdWRlICJwbGF0Zm9ybS9GZWF0dXJlLmgiCi0jaW5j
bHVkZSAicGxhdGZvcm0vRnJvbnRlbmRGZWF0dXJlcy5oIgorI2luY2x1ZGUgInBsYXRmb3JtL0Zy
b250ZW5kRmVhdHVyZXNfYXV0b2dlbi5oIgogCiBuYW1lc3BhY2UgYW5nbGUKIHsKQEAgLTE1MCw3
ICsxNTAsOCBAQCBjbGFzcyBEaXNwbGF5IGZpbmFsIDogcHVibGljIExhYmVsZWRPYmplY3QsCiAg
ICAgRXJyb3IgcmVsZWFzZVRocmVhZCgpOwogCiAgICAgc3RhdGljIERpc3BsYXkgKkdldERpc3Bs
YXlGcm9tRGV2aWNlKERldmljZSAqZGV2aWNlLCBjb25zdCBBdHRyaWJ1dGVNYXAgJmF0dHJpYk1h
cCk7Ci0gICAgc3RhdGljIERpc3BsYXkgKkdldERpc3BsYXlGcm9tTmF0aXZlRGlzcGxheShFR0xO
YXRpdmVEaXNwbGF5VHlwZSBuYXRpdmVEaXNwbGF5LAorICAgIHN0YXRpYyBEaXNwbGF5ICpHZXRE
aXNwbGF5RnJvbU5hdGl2ZURpc3BsYXkoRUdMZW51bSBwbGF0Zm9ybSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVHTE5hdGl2ZURpc3BsYXlUeXBlIG5h
dGl2ZURpc3BsYXksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb25zdCBBdHRyaWJ1dGVNYXAgJmF0dHJpYk1hcCk7CiAgICAgc3RhdGljIERpc3BsYXkg
KkdldEV4aXN0aW5nRGlzcGxheUZyb21OYXRpdmVEaXNwbGF5KEVHTE5hdGl2ZURpc3BsYXlUeXBl
IG5hdGl2ZURpc3BsYXkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9z
cmMvbGliQU5HTEUvRXJyb3JTdHJpbmdzLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMv
bGliQU5HTEUvRXJyb3JTdHJpbmdzLmgKaW5kZXggMTZhZjAzMDYwN2E4YzAxMDg4NTAzZTlkODYz
NGQ0Y2ZmMmUwMjU5Zi4uNzNjNzljOGE4ZTE3MDUyMmY4OGY4MzA1ZjI1YjZiZDEyZjU0NDM3NSAx
MDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL0Vycm9yU3Ry
aW5ncy5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9FcnJvclN0
cmluZ3MuaApAQCAtMTgsNyArMTgsNyBAQCBuYW1lc3BhY2UgZXJyCiAvLyBjbGFuZy1mb3JtYXQg
b2ZmCiBNU0cgazNERGVwdGhTdGVuY2lsID0gIkZvcm1hdCBjYW5ub3QgYmUgR0xfREVQVEhfQ09N
UE9ORU5UIG9yIEdMX0RFUFRIX1NURU5DSUwgaWYgdGFyZ2V0IGlzIEdMX1RFWFRVUkVfM0QiOwog
TVNHIGtBTkdMRUNvcHlUZXh0dXJlM0RVbmF2YWlsYWJsZSA9ICJHTF9BTkdMRV9jb3B5X3RleHR1
cmVfM2QgZXh0ZW5zaW9uIG5vdCBhdmFpbGFibGUuIjsKLU1TRyBrQWR2YW5jZWRCbGVuZEVxdWF0
aW9uV2l0aE1SVCA9ICJBZHZhbmNlZCBibGVuZCBlcXVhdGlvbiBvbmx5IGNhbiBiZSB1c2VkIHdo
ZW4gb25seSBvbmUgZHJhdyBidWZmZXIgaXMgbm90IE5PTkUiOworTVNHIGtBZHZhbmNlZEJsZW5k
RXF1YXRpb25XaXRoTVJUID0gIkFkdmFuY2VkIGJsZW5kIGVxdWF0aW9uIGNhbiBvbmx5IGJlIHVz
ZWQgd2hlbiBvbmx5IG9uZSBkcmF3IGJ1ZmZlciBpcyBub3QgTk9ORSI7CiBNU0cga0FkdmFuY2Vk
QmxlbmRFeHRlbnNpb25Ob3RFbmFibGVkID0gIkdMX0tIUl9ibGVuZF9lcXVhdGlvbl9hZHZhbmNl
ZCBleHRlbnNpb24gbm90IGVuYWJsZWQuIjsKIE1TRyBrQXRvbWljQ291bnRlclJlc291cmNlTmFt
ZSA9ICJBY3RpdmUgYXRvbWljIGNvdW50ZXIgcmVzb3VyY2VzIGFyZSBub3QgYXNzaWduZWQgbmFt
ZSBzdHJpbmdzLiI7CiBNU0cga0F0dHJpYnV0ZUxpc3ROb3ROdWxsID0gIkF0dHJpYnV0ZSBsaXN0
IG11c3QgYmUgTlVMTCBvciBHTF9OT05FIjsKQEAgLTE4NSw3ICsxODUsNyBAQCBNU0cga0ZyYW1l
YnVmZmVySW5jb21wbGV0ZVVuc3VwcG9ydGVkU2VwYXJhdGVEZXB0aFN0ZW5jaWxCdWZmZXJzID0g
IkZyYW1lYnVmZmVyCiBNU0cga0ZyYW1lYnVmZmVySW5jb21wbGV0ZVdlYkdMRGVwdGhTdGVuY2ls
SW5jb25zaXN0YW50ID0gIkZyYW1lYnVmZmVyIGlzIGluY29tcGxldGU6IFdlYkdMIGRlcHRoIHN0
ZW5jaWwgc3RhdGUgaXMgaW5jb25zaXN0ZW50LiI7CiBNU0cga0ZyYW1lYnVmZmVyVGV4dHVyZUlu
dmFsaWRMYXllciA9ICJMYXllciBpbnZhbGlkIGZvciBmcmFtZWJ1ZmZlciB0ZXh0dXJlIGF0dGFj
aG1lbnQuIjsKIE1TRyBrRnJhbWVidWZmZXJUZXh0dXJlSW52YWxpZE1pcExldmVsID0gIk1pcCBs
ZXZlbCBpbnZhbGlkIGZvciBmcmFtZWJ1ZmZlciB0ZXh0dXJlIGF0dGFjaG1lbnQuIjsKLU1TRyBr
RnJhbWVidWZmZXJUZXh0dXJlTGF5ZXJJbmNvcnJlY3RUZXh0dXJlVHlwZSA9ICJUZXh0dXJlIGlz
IG5vdCBhIHRocmVlLWRpbWVuc2lvbmFsIG9yIHR3by1kaW1lbnNpb25hbCBhcnJheSB0ZXh0dXJl
LiI7CitNU0cga0ZyYW1lYnVmZmVyVGV4dHVyZUxheWVySW5jb3JyZWN0VGV4dHVyZVR5cGUgPSAi
VGV4dHVyZSBpcyBub3QgYSB0aHJlZS1kaW1lbnNpb25hbCwgdHdvLWRpbWVuc2lvbmFsIGFycmF5
LCB0d28tZGltZW5zaW9uYWwgbXVsdGlzYW1wbGUgYXJyYXksIGN1YmUgbWFwLCBvciBjdWJlIG1h
cCBhcnJheSB0ZXh0dXJlLiI7CiBNU0cga0dlbmVyYXRlTWlwbWFwTm90QWxsb3dlZCA9ICJUZXh0
dXJlIGZvcm1hdCBkb2VzIG5vdCBzdXBwb3J0IG1pcG1hcCBnZW5lcmF0aW9uLiI7CiBNU0cga0dl
bmVyYXRlTWlwbWFwWmVyb1NpemUgPSAiQ2Fubm90IGdlbmVyYXRlIG1pcG1hcHMgZm9yIGEgemVy
by1zaXplIHRleHR1cmUgaW4gYSBXZWJHTCBjb250ZXh0LiI7CiBNU0cga0dlb21ldHJ5U2hhZGVy
RXh0ZW5zaW9uTm90RW5hYmxlZCA9ICJHTF9FWFRfZ2VvbWV0cnlfc2hhZGVyIG9yIEdMX09FU19n
ZW9tZXRyeV9zaGFkZXIgZXh0ZW5zaW9uIG5vdCBlbmFibGVkLiI7CkBAIC0zNTYsNiArMzU2LDcg
QEAgTVNHIGtJbnZhbGlkU2hhZGVyQmluYXJ5Rm9ybWF0ID0gIkludmFsaWQgc2hhZGVyIGJpbmFy
eSBmb3JtYXQuIjsKIE1TRyBrSW52YWxpZFNoYWRlck5hbWUgPSAiU2hhZGVyIG9iamVjdCBleHBl
Y3RlZC4iOwogTVNHIGtJbnZhbGlkU2hhZGVyVHlwZSA9ICJJbnZhbGlkIHNoYWRlciB0eXBlLiI7
CiBNU0cga0ludmFsaWRTaGFkaW5nTW9kZWwgPSAiSW52YWxpZCBzaGFkaW5nIG1vZGVsLiI7CitN
U0cga0ludmFsaWRTaGFkaW5nUmF0ZSA9ICJJbnZhbGlkIHNoYWRpbmcgcmF0ZS4iOwogTVNHIGtJ
bnZhbGlkU291cmNlVGV4dHVyZSA9ICJTb3VyY2UgdGV4dHVyZSBpcyBub3QgYSB2YWxpZCB0ZXh0
dXJlIG9iamVjdC4iOwogTVNHIGtJbnZhbGlkU291cmNlVGV4dHVyZUludGVybmFsRm9ybWF0ID0g
IlNvdXJjZSB0ZXh0dXJlIGludGVybmFsIGZvcm1hdCBpcyBpbnZhbGlkLiI7CiBNU0cga0ludmFs
aWRTb3VyY2VUZXh0dXJlTGV2ZWwgPSAiSW52YWxpZCBzb3VyY2UgdGV4dHVyZSBsZXZlbC4iOwpA
QCAtNTA0LDYgKzUwNSw3IEBAIE1TRyBrU2hhZGVyQXR0YWNobWVudEhhc1NoYWRlciA9ICJTaGFk
ZXIgYXR0YWNobWVudCBhbHJlYWR5IGhhcyBhIHNoYWRlci4iOwogTVNHIGtTaGFkZXJTb3VyY2VJ
bnZhbGlkQ2hhcmFjdGVycyA9ICJTaGFkZXIgc291cmNlIGNvbnRhaW5zIGludmFsaWQgY2hhcmFj
dGVycy4iOwogTVNHIGtTaGFkZXJTdG9yYWdlQnVmZmVyT2Zmc2V0QWxpZ25tZW50ID0gIk9mZnNl
dCBtdXN0IGJlIG11bHRpcGxlIG9mIHZhbHVlIG9mIFNIQURFUl9TVE9SQUdFX0JVRkZFUl9PRkZT
RVRfQUxJR05NRU5ULiI7CiBNU0cga1NoYWRlclRvRGV0YWNoTXVzdEJlQXR0YWNoZWQgPSAiU2hh
ZGVyIHRvIGJlIGRldGFjaGVkIG11c3QgYmUgY3VycmVudGx5IGF0dGFjaGVkIHRvIHRoZSBwcm9n
cmFtLiI7CitNU0cga1NoYWRpbmdSYXRlRXh0ZW5zaW9uTm90QXZhaWxhYmxlID0gIkdMX1FDT01f
c2hhZGluZ19yYXRlIGV4dGVuc2lvbiBub3QgYXZhaWxhYmxlLiI7CiBNU0cga1NvdXJjZUxldmVs
Tm90RGVmaW5lZCA9ICJUaGUgc291cmNlIGxldmVsIG9mIHRoZSBzb3VyY2UgdGV4dHVyZSBtdXN0
IGJlIGRlZmluZWQuIjsKIE1TRyBrU291cmNlVGV4dHVyZUxldmVsWmVyb0RlZmluZWQgPSAiU291
cmNlIHRleHR1cmUgbXVzdCBsZXZlbCAwIGRlZmluZWQuIjsKIE1TRyBrU291cmNlVGV4dHVyZU11
c3RCZUNvbXByZXNzZWQgPSAiU291cmNlIHRleHR1cmUgbXVzdCBoYXZlIGEgY29tcHJlc3NlZCBp
bnRlcm5hbCBmb3JtYXQuIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3Ny
Yy9saWJBTkdMRS9GcmFtZWJ1ZmZlci5oIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xp
YkFOR0xFL0ZyYW1lYnVmZmVyLmgKaW5kZXggZjE5YzU5MWZjM2Y0NWM5NGZlNjM5NjQ0NTQyMThj
NWNlNDViZGE3My4uNTNmNWU2ZDlkZjA3MWZmNzM4MTY4ODhhN2FmNmUwNDFmMGViNmMxNSAxMDA2
NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL0ZyYW1lYnVmZmVy
LmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL0ZyYW1lYnVmZmVy
LmgKQEAgLTUxOSw2ICs1MTksOCBAQCBjbGFzcyBGcmFtZWJ1ZmZlciBmaW5hbCA6IHB1YmxpYyBh
bmdsZTo6T2JzZXJ2ZXJJbnRlcmZhY2UsCiAgICAgbXV0YWJsZSBPcHRpb25hbDxEaXJ0eUJpdHM+
IG1EaXJ0eUJpdHNHdWFyZDsKIH07CiAKK3VzaW5nIFVuaXF1ZUZyYW1lYnVmZmVyUG9pbnRlciA9
IGFuZ2xlOjpVbmlxdWVPYmplY3RQb2ludGVyPEZyYW1lYnVmZmVyLCBDb250ZXh0PjsKKwogfSAg
Ly8gbmFtZXNwYWNlIGdsCiAKICNlbmRpZiAgLy8gTElCQU5HTEVfRlJBTUVCVUZGRVJfSF8KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9GcmFtZWJ1ZmZl
ckF0dGFjaG1lbnQuY3BwIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL0Zy
YW1lYnVmZmVyQXR0YWNobWVudC5jcHAKaW5kZXggNzIwZDMwMDBkNDJlNmM4YzIzMjE0ZTY2ZWVl
NGFhNjk4MjIxNmE2MC4uNmEzZTg4MDUxZjRjYzRjODVmODJhYjU1YzhmZWIzMGFmMjFkZjk2OSAx
MDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL0ZyYW1lYnVm
ZmVyQXR0YWNobWVudC5jcHAKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFO
R0xFL0ZyYW1lYnVmZmVyQXR0YWNobWVudC5jcHAKQEAgLTI4OSwxMyArMjg5LDE0IEBAIGJvb2wg
RnJhbWVidWZmZXJBdHRhY2htZW50OjpvcGVyYXRvciE9KGNvbnN0IEZyYW1lYnVmZmVyQXR0YWNo
bWVudCAmb3RoZXIpIGNvbnN0CiAKIEluaXRTdGF0ZSBGcmFtZWJ1ZmZlckF0dGFjaG1lbnQ6Omlu
aXRTdGF0ZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1SZXNvdXJjZSA/IG1SZXNvdXJjZS0+aW5p
dFN0YXRlKG1UYXJnZXQudGV4dHVyZUluZGV4KCkpIDogSW5pdFN0YXRlOjpJbml0aWFsaXplZDsK
KyAgICByZXR1cm4gbVJlc291cmNlID8gbVJlc291cmNlLT5pbml0U3RhdGUobVRhcmdldC5iaW5k
aW5nKCksIG1UYXJnZXQudGV4dHVyZUluZGV4KCkpCisgICAgICAgICAgICAgICAgICAgICA6IElu
aXRTdGF0ZTo6SW5pdGlhbGl6ZWQ7CiB9CiAKIGFuZ2xlOjpSZXN1bHQgRnJhbWVidWZmZXJBdHRh
Y2htZW50Ojppbml0aWFsaXplQ29udGVudHMoY29uc3QgQ29udGV4dCAqY29udGV4dCkKIHsKICAg
ICBBU1NFUlQobVJlc291cmNlKTsKLSAgICBBTkdMRV9UUlkobVJlc291cmNlLT5pbml0aWFsaXpl
Q29udGVudHMoY29udGV4dCwgbVRhcmdldC50ZXh0dXJlSW5kZXgoKSkpOworICAgIEFOR0xFX1RS
WShtUmVzb3VyY2UtPmluaXRpYWxpemVDb250ZW50cyhjb250ZXh0LCBtVGFyZ2V0LmJpbmRpbmco
KSwgbVRhcmdldC50ZXh0dXJlSW5kZXgoKSkpOwogICAgIHNldEluaXRTdGF0ZShJbml0U3RhdGU6
OkluaXRpYWxpemVkKTsKICAgICByZXR1cm4gYW5nbGU6OlJlc3VsdDo6Q29udGludWU7CiB9CkBA
IC0zMDMsNyArMzA0LDcgQEAgYW5nbGU6OlJlc3VsdCBGcmFtZWJ1ZmZlckF0dGFjaG1lbnQ6Omlu
aXRpYWxpemVDb250ZW50cyhjb25zdCBDb250ZXh0ICpjb250ZXh0KQogdm9pZCBGcmFtZWJ1ZmZl
ckF0dGFjaG1lbnQ6OnNldEluaXRTdGF0ZShJbml0U3RhdGUgaW5pdFN0YXRlKSBjb25zdAogewog
ICAgIEFTU0VSVChtUmVzb3VyY2UpOwotICAgIG1SZXNvdXJjZS0+c2V0SW5pdFN0YXRlKG1UYXJn
ZXQudGV4dHVyZUluZGV4KCksIGluaXRTdGF0ZSk7CisgICAgbVJlc291cmNlLT5zZXRJbml0U3Rh
dGUobVRhcmdldC5iaW5kaW5nKCksIG1UYXJnZXQudGV4dHVyZUluZGV4KCksIGluaXRTdGF0ZSk7
CiB9CiAKIC8vLy8vLyBGcmFtZWJ1ZmZlckF0dGFjaG1lbnRPYmplY3QgSW1wbGVtZW50YXRpb24g
Ly8vLy8vCkBAIC0zMjQsNiArMzI1LDcgQEAgYW5nbGU6OlJlc3VsdCBGcmFtZWJ1ZmZlckF0dGFj
aG1lbnRPYmplY3Q6OmdldEF0dGFjaG1lbnRSZW5kZXJUYXJnZXQoCiB9CiAKIGFuZ2xlOjpSZXN1
bHQgRnJhbWVidWZmZXJBdHRhY2htZW50T2JqZWN0Ojppbml0aWFsaXplQ29udGVudHMoY29uc3Qg
Q29udGV4dCAqY29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgR0xlbnVtIGJpbmRpbmcsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEltYWdl
SW5kZXggJmltYWdlSW5kZXgpCiB7CiAgICAgQVNTRVJUKGNvbnRleHQtPmlzUm9idXN0UmVzb3Vy
Y2VJbml0RW5hYmxlZCgpKTsKQEAgLTMzNywxMSArMzM5LDExIEBAIGFuZ2xlOjpSZXN1bHQgRnJh
bWVidWZmZXJBdHRhY2htZW50T2JqZWN0Ojppbml0aWFsaXplQ29udGVudHMoY29uc3QgQ29udGV4
dCAqY29uCiAKICAgICAgICAgSW1hZ2VJbmRleCBmdWxsTWlwSW5kZXggPSBJbWFnZUluZGV4OjpN
YWtlRnJvbVR5cGUoCiAgICAgICAgICAgICBpbWFnZUluZGV4LmdldFR5cGUoKSwgaW1hZ2VJbmRl
eC5nZXRMZXZlbEluZGV4KCksIEltYWdlSW5kZXg6OmtFbnRpcmVMZXZlbCwgc2l6ZS5kZXB0aCk7
Ci0gICAgICAgIHJldHVybiBnZXRBdHRhY2htZW50SW1wbCgpLT5pbml0aWFsaXplQ29udGVudHMo
Y29udGV4dCwgZnVsbE1pcEluZGV4KTsKKyAgICAgICAgcmV0dXJuIGdldEF0dGFjaG1lbnRJbXBs
KCktPmluaXRpYWxpemVDb250ZW50cyhjb250ZXh0LCBiaW5kaW5nLCBmdWxsTWlwSW5kZXgpOwog
ICAgIH0KICAgICBlbHNlCiAgICAgewotICAgICAgICByZXR1cm4gZ2V0QXR0YWNobWVudEltcGwo
KS0+aW5pdGlhbGl6ZUNvbnRlbnRzKGNvbnRleHQsIGltYWdlSW5kZXgpOworICAgICAgICByZXR1
cm4gZ2V0QXR0YWNobWVudEltcGwoKS0+aW5pdGlhbGl6ZUNvbnRlbnRzKGNvbnRleHQsIGJpbmRp
bmcsIGltYWdlSW5kZXgpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvc3JjL2xpYkFOR0xFL0ZyYW1lYnVmZmVyQXR0YWNobWVudC5oIGIvU291cmNlL1Ro
aXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL0ZyYW1lYnVmZmVyQXR0YWNobWVudC5oCmluZGV4
IGE1ZDViZjBlYjBjNTBlMzc2NTZiMjQxZDEwNWJlM2YzNWE2NTc1ODUuLmYzYWI5N2RmNjM1OGMx
OGU0ZDFhNDFiYTk2MWFiMWNlMzI0MWUyM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5
L0FOR0xFL3NyYy9saWJBTkdMRS9GcmFtZWJ1ZmZlckF0dGFjaG1lbnQuaAorKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvRnJhbWVidWZmZXJBdHRhY2htZW50LmgKQEAg
LTIyNCw4ICsyMjQsMTAgQEAgY2xhc3MgRnJhbWVidWZmZXJBdHRhY2htZW50T2JqZWN0IDogcHVi
bGljIGFuZ2xlOjpTdWJqZWN0LCBwdWJsaWMgYW5nbGU6Ok9ic2VydmUKICAgICB2aXJ0dWFsIEdM
dWludCBnZXRJZCgpIGNvbnN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPSAwOwogCiAgICAgLy8gVGhlc2UgYXJlIHVzZWQgZm9yIHJvYnVzdCByZXNvdXJj
ZSBpbml0aWFsaXphdGlvbi4KLSAgICB2aXJ0dWFsIEluaXRTdGF0ZSBpbml0U3RhdGUoY29uc3Qg
SW1hZ2VJbmRleCAmaW1hZ2VJbmRleCkgY29uc3QgICAgICAgICAgICAgID0gMDsKLSAgICB2aXJ0
dWFsIHZvaWQgc2V0SW5pdFN0YXRlKGNvbnN0IEltYWdlSW5kZXggJmltYWdlSW5kZXgsIEluaXRT
dGF0ZSBpbml0U3RhdGUpID0gMDsKKyAgICB2aXJ0dWFsIEluaXRTdGF0ZSBpbml0U3RhdGUoR0xl
bnVtIGJpbmRpbmcsIGNvbnN0IEltYWdlSW5kZXggJmltYWdlSW5kZXgpIGNvbnN0ID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgc2V0SW5pdFN0YXRlKEdMZW51bSBiaW5kaW5nLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgSW1hZ2VJbmRleCAmaW1hZ2VJbmRleCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEluaXRTdGF0ZSBpbml0U3RhdGUpICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgID0gMDsKIAogICAgIGFuZ2xlOjpSZXN1bHQgZ2V0QXR0YWNobWVu
dFJlbmRlclRhcmdldChjb25zdCBDb250ZXh0ICpjb250ZXh0LAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBHTGVudW0gYmluZGluZywKQEAgLTIzMyw3ICsyMzUs
OSBAQCBjbGFzcyBGcmFtZWJ1ZmZlckF0dGFjaG1lbnRPYmplY3QgOiBwdWJsaWMgYW5nbGU6OlN1
YmplY3QsIHB1YmxpYyBhbmdsZTo6T2JzZXJ2ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBHTHNpemVpIHNhbXBsZXMsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJ4OjpGcmFtZWJ1ZmZlckF0dGFjaG1lbnRSZW5kZXJUYXJn
ZXQgKipydE91dCkgY29uc3Q7CiAKLSAgICBhbmdsZTo6UmVzdWx0IGluaXRpYWxpemVDb250ZW50
cyhjb25zdCBDb250ZXh0ICpjb250ZXh0LCBjb25zdCBJbWFnZUluZGV4ICZpbWFnZUluZGV4KTsK
KyAgICBhbmdsZTo6UmVzdWx0IGluaXRpYWxpemVDb250ZW50cyhjb25zdCBDb250ZXh0ICpjb250
ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMZW51bSBiaW5kaW5n
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEltYWdlSW5kZXgg
JmltYWdlSW5kZXgpOwogCiAgIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHJ4OjpGcmFtZWJ1ZmZl
ckF0dGFjaG1lbnRPYmplY3RJbXBsICpnZXRBdHRhY2htZW50SW1wbCgpIGNvbnN0ID0gMDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9JbWFnZS5jcHAg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvSW1hZ2UuY3BwCmluZGV4IDk5
NWNiNDFlNDBjNTVmN2RhNjRlNTQ5NmUwNGUzNWZjYmI1NTI4NDYuLmM3NWVhZTFiNjk1OTI4MzI1
NjkyMjk2YTIyOGNiYjNiM2Y0N2JmMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FO
R0xFL3NyYy9saWJBTkdMRS9JbWFnZS5jcHAKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUv
c3JjL2xpYkFOR0xFL0ltYWdlLmNwcApAQCAtMjM2LDEyICsyMzYsMTUgQEAgR0x1aW50IEV4dGVy
bmFsSW1hZ2VTaWJsaW5nOjpnZXRJZCgpIGNvbnN0CiAgICAgcmV0dXJuIDA7CiB9CiAKLWdsOjpJ
bml0U3RhdGUgRXh0ZXJuYWxJbWFnZVNpYmxpbmc6OmluaXRTdGF0ZShjb25zdCBnbDo6SW1hZ2VJ
bmRleCAmaW1hZ2VJbmRleCkgY29uc3QKK2dsOjpJbml0U3RhdGUgRXh0ZXJuYWxJbWFnZVNpYmxp
bmc6OmluaXRTdGF0ZShHTGVudW0gYmluZGluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCBnbDo6SW1hZ2VJbmRleCAmaW1hZ2VJbmRleCkgY29u
c3QKIHsKICAgICByZXR1cm4gZ2w6OkluaXRTdGF0ZTo6SW5pdGlhbGl6ZWQ7CiB9CiAKLXZvaWQg
RXh0ZXJuYWxJbWFnZVNpYmxpbmc6OnNldEluaXRTdGF0ZShjb25zdCBnbDo6SW1hZ2VJbmRleCAm
aW1hZ2VJbmRleCwgZ2w6OkluaXRTdGF0ZSBpbml0U3RhdGUpCit2b2lkIEV4dGVybmFsSW1hZ2VT
aWJsaW5nOjpzZXRJbml0U3RhdGUoR0xlbnVtIGJpbmRpbmcsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2w6OkltYWdlSW5kZXggJmltYWdlSW5kZXgsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2w6OkluaXRTdGF0ZSBpbml0
U3RhdGUpCiB7fQogCiByeDo6RXh0ZXJuYWxJbWFnZVNpYmxpbmdJbXBsICpFeHRlcm5hbEltYWdl
U2libGluZzo6Z2V0SW1wbGVtZW50YXRpb24oKSBjb25zdApAQCAtMzUwLDE0ICszNTMsMTQgQEAg
YW5nbGU6OlJlc3VsdCBJbWFnZTo6b3JwaGFuU2libGluZyhjb25zdCBnbDo6Q29udGV4dCAqY29u
dGV4dCwgSW1hZ2VTaWJsaW5nICpzaWIKIAogICAgIGlmIChtU3RhdGUuc291cmNlID09IHNpYmxp
bmcpCiAgICAgewotICAgICAgICAvLyBUaGUgZXh0ZXJuYWwgc291cmNlIG9mIGFuIGltYWdlIGNh
bm5vdCBiZSByZWRlZmluZWQgc28gaXQgY2Fubm90IGJlIG9ycGFoZW5kLgorICAgICAgICAvLyBU
aGUgZXh0ZXJuYWwgc291cmNlIG9mIGFuIGltYWdlIGNhbm5vdCBiZSByZWRlZmluZWQgc28gaXQg
Y2Fubm90IGJlIG9ycGhhbmVkLgogICAgICAgICBBU1NFUlQoIUlzRXh0ZXJuYWxJbWFnZVRhcmdl
dChtU3RhdGUuc291cmNlVHlwZSkpOwogCiAgICAgICAgIC8vIElmIHRoZSBzaWJsaW5nIGlzIHRo
ZSBzb3VyY2UsIGl0IGNhbm5vdCBiZSBhIHRhcmdldC4KICAgICAgICAgQVNTRVJUKG1TdGF0ZS50
YXJnZXRzLmZpbmQoc2libGluZykgPT0gbVN0YXRlLnRhcmdldHMuZW5kKCkpOwogICAgICAgICBt
U3RhdGUuc291cmNlID0gbnVsbHB0cjsKICAgICAgICAgbU9ycGhhbmVkQW5kTmVlZHNJbml0ID0K
LSAgICAgICAgICAgIChzaWJsaW5nLT5pbml0U3RhdGUobVN0YXRlLmltYWdlSW5kZXgpID09IGds
OjpJbml0U3RhdGU6Ok1heU5lZWRJbml0KTsKKyAgICAgICAgICAgIChzaWJsaW5nLT5pbml0U3Rh
dGUoR0xfTk9ORSwgbVN0YXRlLmltYWdlSW5kZXgpID09IGdsOjpJbml0U3RhdGU6Ok1heU5lZWRJ
bml0KTsKICAgICB9CiAgICAgZWxzZQogICAgIHsKQEAgLTUxNSw3ICs1MTgsNyBAQCBnbDo6SW5p
dFN0YXRlIEltYWdlOjpzb3VyY2VJbml0U3RhdGUoKSBjb25zdAogICAgICAgICByZXR1cm4gbU9y
cGhhbmVkQW5kTmVlZHNJbml0ID8gZ2w6OkluaXRTdGF0ZTo6TWF5TmVlZEluaXQgOiBnbDo6SW5p
dFN0YXRlOjpJbml0aWFsaXplZDsKICAgICB9CiAKLSAgICByZXR1cm4gbVN0YXRlLnNvdXJjZS0+
aW5pdFN0YXRlKG1TdGF0ZS5pbWFnZUluZGV4KTsKKyAgICByZXR1cm4gbVN0YXRlLnNvdXJjZS0+
aW5pdFN0YXRlKEdMX05PTkUsIG1TdGF0ZS5pbWFnZUluZGV4KTsKIH0KIAogdm9pZCBJbWFnZTo6
c2V0SW5pdFN0YXRlKGdsOjpJbml0U3RhdGUgaW5pdFN0YXRlKQpAQCAtNTI1LDcgKzUyOCw3IEBA
IHZvaWQgSW1hZ2U6OnNldEluaXRTdGF0ZShnbDo6SW5pdFN0YXRlIGluaXRTdGF0ZSkKICAgICAg
ICAgbU9ycGhhbmVkQW5kTmVlZHNJbml0ID0gZmFsc2U7CiAgICAgfQogCi0gICAgcmV0dXJuIG1T
dGF0ZS5zb3VyY2UtPnNldEluaXRTdGF0ZShtU3RhdGUuaW1hZ2VJbmRleCwgaW5pdFN0YXRlKTsK
KyAgICByZXR1cm4gbVN0YXRlLnNvdXJjZS0+c2V0SW5pdFN0YXRlKEdMX05PTkUsIG1TdGF0ZS5p
bWFnZUluZGV4LCBpbml0U3RhdGUpOwogfQogCiBFcnJvciBJbWFnZTo6ZXhwb3J0VmtJbWFnZSh2
b2lkICp2a0ltYWdlLCB2b2lkICp2a0ltYWdlQ3JlYXRlSW5mbykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9JbWFnZS5oIGIvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvc3JjL2xpYkFOR0xFL0ltYWdlLmgKaW5kZXggYjBhYThlYTdmMjgzZjA1OGZkYzlm
NjU4MmMzMmQ0NGRhMjZkNzg2Ni4uOGI4Y2VhN2QyZTE2NWVlZGMzNGYyM2ZhNWU4ZDNkOTM0NGQ4
NjI5OCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL0lt
YWdlLmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL0ltYWdlLmgK
QEAgLTEwOSw4ICsxMDksMTAgQEAgY2xhc3MgRXh0ZXJuYWxJbWFnZVNpYmxpbmcgOiBwdWJsaWMg
SW1hZ2VTaWJsaW5nCiAgICAgdm9pZCBvbkRldGFjaChjb25zdCBnbDo6Q29udGV4dCAqY29udGV4
dCwgcng6OlNlcmlhbCBmcmFtZWJ1ZmZlclNlcmlhbCkgb3ZlcnJpZGU7CiAgICAgR0x1aW50IGdl
dElkKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICBnbDo6SW5pdFN0YXRlIGluaXRTdGF0ZShjb25z
dCBnbDo6SW1hZ2VJbmRleCAmaW1hZ2VJbmRleCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdm9pZCBz
ZXRJbml0U3RhdGUoY29uc3QgZ2w6OkltYWdlSW5kZXggJmltYWdlSW5kZXgsIGdsOjpJbml0U3Rh
dGUgaW5pdFN0YXRlKSBvdmVycmlkZTsKKyAgICBnbDo6SW5pdFN0YXRlIGluaXRTdGF0ZShHTGVu
dW0gYmluZGluZywgY29uc3QgZ2w6OkltYWdlSW5kZXggJmltYWdlSW5kZXgpIGNvbnN0IG92ZXJy
aWRlOworICAgIHZvaWQgc2V0SW5pdFN0YXRlKEdMZW51bSBiaW5kaW5nLAorICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IGdsOjpJbWFnZUluZGV4ICZpbWFnZUluZGV4LAorICAgICAgICAgICAg
ICAgICAgICAgIGdsOjpJbml0U3RhdGUgaW5pdFN0YXRlKSBvdmVycmlkZTsKIAogICAgIHJ4OjpF
eHRlcm5hbEltYWdlU2libGluZ0ltcGwgKmdldEltcGxlbWVudGF0aW9uKCkgY29uc3Q7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9PdmVybGF5Lmgg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvT3ZlcmxheS5oCmluZGV4IGQz
ZmIxMzdiMTFlNThiNjk0YTU2MzQ3OGNjYTEzMzNmMWM0NGNmYmYuLjEyNGUwMGQzZTYwMDliNWU4
NTY1NTQ5MTFmZThiODdmNTk1M2M1YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FO
R0xFL3NyYy9saWJBTkdMRS9PdmVybGF5LmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUv
c3JjL2xpYkFOR0xFL092ZXJsYXkuaApAQCAtODcsNyArODcsMTAgQEAgY2xhc3MgT3ZlcmxheSA6
IGFuZ2xlOjpOb25Db3B5YWJsZQogCiAgICAgcng6Ok92ZXJsYXlJbXBsICpnZXRJbXBsZW1lbnRh
dGlvbigpIGNvbnN0IHsgcmV0dXJuIG1JbXBsZW1lbnRhdGlvbi5nZXQoKTsgfQogCi0gICAgYm9v
bCBpc0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtSW1wbGVtZW50YXRpb24gIT0gbnVsbHB0cjsg
fQorICAgIGJvb2wgaXNFbmFibGVkKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBtSW1w
bGVtZW50YXRpb24gIT0gbnVsbHB0ciAmJiBtU3RhdGUuZ2V0RW5hYmxlZFdpZGdldENvdW50KCkg
PiAwOworICAgIH0KIAogICBwcml2YXRlOgogICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBXaWRnZXQs
IFdpZGdldFR5cGUgVHlwZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3Ny
Yy9saWJBTkdMRS9PdmVybGF5V2lkZ2V0cy5jcHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9z
cmMvbGliQU5HTEUvT3ZlcmxheVdpZGdldHMuY3BwCmluZGV4IDNlMWQ3NDVhMWZhNWUxMzFjOWZj
YmYxMjY4ODljNjk0YTBlZjBjYTcuLmI1ZWQyN2Y0MjRmOTk1ZDQwZTY5ZjM0Zjc4ZTMyZTZlMjFj
N2FlYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9P
dmVybGF5V2lkZ2V0cy5jcHAKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFO
R0xFL092ZXJsYXlXaWRnZXRzLmNwcApAQCAtMjAyLDcgKzIwMiw3IEBAIGNsYXNzIEFwcGVuZFdp
ZGdldERhdGFIZWxwZXIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRXaWRn
ZXREYXRhICp0ZXh0V2lkZ2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT3Zl
cmxheVdpZGdldENvdW50cyAqd2lkZ2V0Q291bnRzKTsKIAotICAgIHVzaW5nIEZvcm1hdEdyYXBo
VGl0bGVGdW5jID0gc3RkOjpmdW5jdGlvbjxzdGQ6OnN0cmluZyhzaXplX3QgbWF4VmFsdWUpPjsK
KyAgICB1c2luZyBGb3JtYXRHcmFwaFRpdGxlRnVuYyA9IHN0ZDo6ZnVuY3Rpb248c3RkOjpzdHJp
bmcoc2l6ZV90IGN1clZhbHVlLCBzaXplX3QgbWF4VmFsdWUpPjsKICAgICBzdGF0aWMgdm9pZCBB
cHBlbmRSdW5uaW5nR3JhcGhDb21tb24oY29uc3Qgb3ZlcmxheTo6V2lkZ2V0ICp3aWRnZXQsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdsOjpFeHRlbnRz
ICZpbWFnZUV4dGVudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
VGV4dFdpZGdldERhdGEgKnRleHRXaWRnZXQsCkBAIC0yNjksMTIgKzI2OSwyMiBAQCB2b2lkIEFw
cGVuZFdpZGdldERhdGFIZWxwZXI6OkFwcGVuZFJ1bm5pbmdHcmFwaENvbW1vbigKICAgICBPdmVy
bGF5V2lkZ2V0Q291bnRzICp3aWRnZXRDb3VudHMsCiAgICAgQXBwZW5kV2lkZ2V0RGF0YUhlbHBl
cjo6Rm9ybWF0R3JhcGhUaXRsZUZ1bmMgZm9ybWF0RnVuYykKIHsKLSAgICBjb25zdCBvdmVybGF5
OjpSdW5uaW5nR3JhcGggKmdyYXBoID0gc3RhdGljX2Nhc3Q8Y29uc3Qgb3ZlcmxheTo6UnVubmlu
Z0dyYXBoICo+KHdpZGdldCk7CisgICAgY29uc3Qgb3ZlcmxheTo6UnVubmluZ0dyYXBoICpncmFw
aCAgID0gc3RhdGljX2Nhc3Q8Y29uc3Qgb3ZlcmxheTo6UnVubmluZ0dyYXBoICo+KHdpZGdldCk7
CisgICAgY29uc3Qgb3ZlcmxheTo6V2lkZ2V0ICptYXRjaFRvV2lkZ2V0ID0gd2lkZ2V0LT5tYXRj
aFRvV2lkZ2V0OworCisgICAgaWYgKG1hdGNoVG9XaWRnZXQgPT0gbnVsbHB0cikKKyAgICB7Cisg
ICAgICAgIG1hdGNoVG9XaWRnZXQgPSB3aWRnZXQ7CisgICAgfQorICAgIGNvbnN0IG92ZXJsYXk6
OlJ1bm5pbmdHcmFwaCAqbWF0Y2hUb0dyYXBoID0KKyAgICAgICAgc3RhdGljX2Nhc3Q8Y29uc3Qg
b3ZlcmxheTo6UnVubmluZ0dyYXBoICo+KG1hdGNoVG9XaWRnZXQpOwogCiAgICAgY29uc3Qgc2l6
ZV90IG1heFZhbHVlID0KICAgICAgICAgKnN0ZDo6bWF4X2VsZW1lbnQoZ3JhcGgtPnJ1bm5pbmdW
YWx1ZXMuYmVnaW4oKSwgZ3JhcGgtPnJ1bm5pbmdWYWx1ZXMuZW5kKCkpOworICAgIGNvbnN0IHNp
emVfdCBtYXhWYWx1ZUluTWF0Y2hUb0dyYXBoID0KKyAgICAgICAgKnN0ZDo6bWF4X2VsZW1lbnQo
bWF0Y2hUb0dyYXBoLT5ydW5uaW5nVmFsdWVzLmJlZ2luKCksIG1hdGNoVG9HcmFwaC0+cnVubmlu
Z1ZhbHVlcy5lbmQoKSk7CiAgICAgY29uc3QgaW50MzJfdCBncmFwaEhlaWdodCA9IHN0ZDo6YWJz
KHdpZGdldC0+Y29vcmRzWzNdIC0gd2lkZ2V0LT5jb29yZHNbMV0pOwotICAgIGNvbnN0IGZsb2F0
IGdyYXBoU2NhbGUgICAgPSBzdGF0aWNfY2FzdDxmbG9hdD4oZ3JhcGhIZWlnaHQpIC8gbWF4VmFs
dWU7CisgICAgY29uc3QgZmxvYXQgZ3JhcGhTY2FsZSAgICA9IHN0YXRpY19jYXN0PGZsb2F0Pihn
cmFwaEhlaWdodCkgLyBtYXhWYWx1ZUluTWF0Y2hUb0dyYXBoOwogCiAgICAgY29uc3Qgc2l6ZV90
IGdyYXBoU2l6ZSAgPSBncmFwaC0+cnVubmluZ1ZhbHVlcy5zaXplKCk7CiAgICAgY29uc3Qgc2l6
ZV90IGN1cnJlbnRJZHggPSBncmFwaC0+bGFzdFZhbHVlSW5kZXggLSAxOwpAQCAtMjg3LDggKzI5
Nyw3IEBAIHZvaWQgQXBwZW5kV2lkZ2V0RGF0YUhlbHBlcjo6QXBwZW5kUnVubmluZ0dyYXBoQ29t
bW9uKAogICAgIGlmICgoKndpZGdldENvdW50cylbV2lkZ2V0SW50ZXJuYWxUeXBlOjpUZXh0XSA8
CiAgICAgICAgIGtXaWRnZXRJbnRlcm5hbFR5cGVNYXhXaWRnZXRzW1dpZGdldEludGVybmFsVHlw
ZTo6VGV4dF0pCiAgICAgewotICAgICAgICAvLyBzdGQ6OnN0cmluZyB0ZXh0ID0gZm9ybWF0RnVu
YyhtYXhWYWx1ZSk7Ci0gICAgICAgIHN0ZDo6c3RyaW5nIHRleHQgPSBmb3JtYXRGdW5jKGN1clZh
bHVlKTsKKyAgICAgICAgc3RkOjpzdHJpbmcgdGV4dCA9IGZvcm1hdEZ1bmMoY3VyVmFsdWUsIG1h
eFZhbHVlKTsKICAgICAgICAgQXBwZW5kVGV4dENvbW1vbigmZ3JhcGgtPmRlc2NyaXB0aW9uLCBp
bWFnZUV4dGVudCwgdGV4dCwgdGV4dFdpZGdldCwgd2lkZ2V0Q291bnRzKTsKICAgICB9CiB9CkBA
IC0zNzQsNyArMzgzLDcgQEAgdm9pZCBBcHBlbmRXaWRnZXREYXRhSGVscGVyOjpBcHBlbmRWdWxr
YW5SZW5kZXJQYXNzQ291bnQoY29uc3Qgb3ZlcmxheTo6V2lkZ2V0ICoKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdyYXBoV2lkZ2V0RGF0
YSAqZ3JhcGhXaWRnZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBPdmVybGF5V2lkZ2V0Q291bnRzICp3aWRnZXRDb3VudHMpCiB7Ci0g
ICAgYXV0byBmb3JtYXQgPSBbXShzaXplX3QgbWF4VmFsdWUpIHsKKyAgICBhdXRvIGZvcm1hdCA9
IFtdKHNpemVfdCBjdXJWYWx1ZSwgc2l6ZV90IG1heFZhbHVlKSB7CiAgICAgICAgIHN0ZDo6b3N0
cmluZ3N0cmVhbSB0ZXh0OwogICAgICAgICB0ZXh0IDw8ICJSZW5kZXJQYXNzIENvdW50OiAiIDw8
IG1heFZhbHVlOwogICAgICAgICByZXR1cm4gdGV4dC5zdHIoKTsKQEAgLTQyMyw3ICs0MzIsNyBA
QCB2b2lkIEFwcGVuZFdpZGdldERhdGFIZWxwZXI6OkFwcGVuZFZ1bGthbldyaXRlRGVzY3JpcHRv
clNldENvdW50KGNvbnN0IG92ZXJsYXk6OgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHcmFwaFdpZGdldERhdGEgKmdyYXBo
V2lkZ2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBPdmVybGF5V2lkZ2V0Q291bnRzICp3aWRnZXRDb3VudHMpCiB7Ci0g
ICAgYXV0byBmb3JtYXQgPSBbXShzaXplX3QgbWF4VmFsdWUpIHsKKyAgICBhdXRvIGZvcm1hdCA9
IFtdKHNpemVfdCBjdXJWYWx1ZSwgc2l6ZV90IG1heFZhbHVlKSB7CiAgICAgICAgIHN0ZDo6b3N0
cmluZ3N0cmVhbSB0ZXh0OwogICAgICAgICB0ZXh0IDw8ICJXcml0ZURlc2NyaXB0b3JTZXQgQ291
bnQ6ICIgPDwgbWF4VmFsdWU7CiAgICAgICAgIHJldHVybiB0ZXh0LnN0cigpOwpAQCAtNDM4LDcg
KzQ0Nyw3IEBAIHZvaWQgQXBwZW5kV2lkZ2V0RGF0YUhlbHBlcjo6QXBwZW5kVnVsa2FuRGVzY3Jp
cHRvclNldEFsbG9jYXRpb25zKGNvbnN0IG92ZXJsYXk6CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHcmFwaFdpZGdldERh
dGEgKmdyYXBoV2lkZ2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgT3ZlcmxheVdpZGdldENvdW50cyAqd2lkZ2V0Q291
bnRzKQogewotICAgIGF1dG8gZm9ybWF0ID0gW10oc2l6ZV90IG1heFZhbHVlKSB7CisgICAgYXV0
byBmb3JtYXQgPSBbXShzaXplX3QgY3VyVmFsdWUsIHNpemVfdCBtYXhWYWx1ZSkgewogICAgICAg
ICBzdGQ6Om9zdHJpbmdzdHJlYW0gdGV4dDsKICAgICAgICAgdGV4dCA8PCAiRGVzY3JpcHRvciBT
ZXQgQWxsb2NhdGlvbnM6ICIgPDwgbWF4VmFsdWU7CiAgICAgICAgIHJldHVybiB0ZXh0LnN0cigp
OwpAQCAtNDQ3LDE1ICs0NTYsMTUgQEAgdm9pZCBBcHBlbmRXaWRnZXREYXRhSGVscGVyOjpBcHBl
bmRWdWxrYW5EZXNjcmlwdG9yU2V0QWxsb2NhdGlvbnMoY29uc3Qgb3ZlcmxheToKICAgICBBcHBl
bmRSdW5uaW5nR3JhcGhDb21tb24od2lkZ2V0LCBpbWFnZUV4dGVudCwgdGV4dFdpZGdldCwgZ3Jh
cGhXaWRnZXQsIHdpZGdldENvdW50cywgZm9ybWF0KTsKIH0KIAotdm9pZCBBcHBlbmRXaWRnZXRE
YXRhSGVscGVyOjpBcHBlbmRWdWxrYW5TaGFkZXJCdWZmZXJEU0hpdFJhdGUoY29uc3Qgb3Zlcmxh
eTo6V2lkZ2V0ICp3aWRnZXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnbDo6RXh0ZW50cyAmaW1hZ2VFeHRlbnQs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBUZXh0V2lkZ2V0RGF0YSAqdGV4dFdpZGdldCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdyYXBoV2lkZ2V0RGF0
YSAqZ3JhcGhXaWRnZXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBPdmVybGF5V2lkZ2V0Q291bnRzICp3aWRnZXRDb3VudHMp
Cit2b2lkIEFwcGVuZFdpZGdldERhdGFIZWxwZXI6OkFwcGVuZFZ1bGthblNoYWRlclJlc291cmNl
RFNIaXRSYXRlKGNvbnN0IG92ZXJsYXk6OldpZGdldCAqd2lkZ2V0LAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBn
bDo6RXh0ZW50cyAmaW1hZ2VFeHRlbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHRXaWRnZXREYXRhICp0ZXh0V2lk
Z2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBHcmFwaFdpZGdldERhdGEgKmdyYXBoV2lkZ2V0LAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPdmVy
bGF5V2lkZ2V0Q291bnRzICp3aWRnZXRDb3VudHMpCiB7Ci0gICAgYXV0byBmb3JtYXQgPSBbXShz
aXplX3QgbWF4VmFsdWUpIHsKKyAgICBhdXRvIGZvcm1hdCA9IFtdKHNpemVfdCBjdXJWYWx1ZSwg
c2l6ZV90IG1heFZhbHVlKSB7CiAgICAgICAgIHN0ZDo6b3N0cmluZ3N0cmVhbSB0ZXh0OwotICAg
ICAgICB0ZXh0IDw8ICJTaGFkZXIgQnVmZmVyIERTIEhpdCBSYXRlIChNYXg6ICIgPDwgbWF4VmFs
dWUgPDwgIiUpIjsKKyAgICAgICAgdGV4dCA8PCAiU2hhZGVyIFJlc291cmNlIERTIEhpdCBSYXRl
IChNYXg6ICIgPDwgbWF4VmFsdWUgPDwgIiUpIjsKICAgICAgICAgcmV0dXJuIHRleHQuc3RyKCk7
CiAgICAgfTsKIApAQCAtNDY4LDcgKzQ3Nyw3IEBAIHZvaWQgQXBwZW5kV2lkZ2V0RGF0YUhlbHBl
cjo6QXBwZW5kVnVsa2FuRHluYW1pY0J1ZmZlckFsbG9jYXRpb25zKGNvbnN0IG92ZXJsYXk6CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBHcmFwaFdpZGdldERhdGEgKmdyYXBoV2lkZ2V0LAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT3ZlcmxheVdp
ZGdldENvdW50cyAqd2lkZ2V0Q291bnRzKQogewotICAgIGF1dG8gZm9ybWF0ID0gW10oc2l6ZV90
IG1heFZhbHVlKSB7CisgICAgYXV0byBmb3JtYXQgPSBbXShzaXplX3QgY3VyVmFsdWUsIHNpemVf
dCBtYXhWYWx1ZSkgewogICAgICAgICBzdGQ6Om9zdHJpbmdzdHJlYW0gdGV4dDsKICAgICAgICAg
dGV4dCA8PCAiRHluYW1pY0J1ZmZlciBBbGxvY2F0aW9ucyAoTWF4OiAiIDw8IG1heFZhbHVlIDw8
ICIpIjsKICAgICAgICAgcmV0dXJuIHRleHQuc3RyKCk7CkBAIC00ODQsOSArNDkzLDkgQEAgdm9p
ZCBBcHBlbmRXaWRnZXREYXRhSGVscGVyOjpBcHBlbmRWdWxrYW5UZXh0dXJlRGVzY3JpcHRvckNh
Y2hlU2l6ZSgKICAgICBHcmFwaFdpZGdldERhdGEgKmdyYXBoV2lkZ2V0LAogICAgIE92ZXJsYXlX
aWRnZXRDb3VudHMgKndpZGdldENvdW50cykKIHsKLSAgICBhdXRvIGZvcm1hdCA9IFtdKHNpemVf
dCBjdXJWYWwpIHsKKyAgICBhdXRvIGZvcm1hdCA9IFtdKHNpemVfdCBjdXJWYWx1ZSwgc2l6ZV90
IG1heFZhbHVlKSB7CiAgICAgICAgIHN0ZDo6b3N0cmluZ3N0cmVhbSB0ZXh0OwotICAgICAgICB0
ZXh0IDw8ICJUb3RhbCBUZXh0dXJlIERlc2NyaXB0b3IgQ2FjaGUgU2l6ZTogIiA8PCBjdXJWYWw7
CisgICAgICAgIHRleHQgPDwgIlRvdGFsIFRleHR1cmUgRGVzY3JpcHRvciBDYWNoZSBTaXplOiAi
IDw8IGN1clZhbHVlOwogICAgICAgICByZXR1cm4gdGV4dC5zdHIoKTsKICAgICB9OwogCkBAIC01
MDAsOSArNTA5LDkgQEAgdm9pZCBBcHBlbmRXaWRnZXREYXRhSGVscGVyOjpBcHBlbmRWdWxrYW5V
bmlmb3JtRGVzY3JpcHRvckNhY2hlU2l6ZSgKICAgICBHcmFwaFdpZGdldERhdGEgKmdyYXBoV2lk
Z2V0LAogICAgIE92ZXJsYXlXaWRnZXRDb3VudHMgKndpZGdldENvdW50cykKIHsKLSAgICBhdXRv
IGZvcm1hdCA9IFtdKHNpemVfdCBjdXJWYWwpIHsKKyAgICBhdXRvIGZvcm1hdCA9IFtdKHNpemVf
dCBjdXJWYWx1ZSwgc2l6ZV90IG1heFZhbHVlKSB7CiAgICAgICAgIHN0ZDo6b3N0cmluZ3N0cmVh
bSB0ZXh0OwotICAgICAgICB0ZXh0IDw8ICJUb3RhbCBVbmlmb3JtIERlc2NyaXB0b3IgQ2FjaGUg
U2l6ZTogIiA8PCBjdXJWYWw7CisgICAgICAgIHRleHQgPDwgIlRvdGFsIFVuaWZvcm0gRGVzY3Jp
cHRvciBDYWNoZSBTaXplOiAiIDw8IGN1clZhbHVlOwogICAgICAgICByZXR1cm4gdGV4dC5zdHIo
KTsKICAgICB9OwogCkBAIC01MTUsOSArNTI0LDkgQEAgdm9pZCBBcHBlbmRXaWRnZXREYXRhSGVs
cGVyOjpBcHBlbmRWdWxrYW5EZXNjcmlwdG9yQ2FjaGVTaXplKGNvbnN0IG92ZXJsYXk6OldpZGcK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBHcmFwaFdpZGdldERhdGEgKmdyYXBoV2lkZ2V0LAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE92ZXJsYXlXaWRnZXRDb3Vu
dHMgKndpZGdldENvdW50cykKIHsKLSAgICBhdXRvIGZvcm1hdCA9IFtdKHNpemVfdCBjdXJWYWwp
IHsKKyAgICBhdXRvIGZvcm1hdCA9IFtdKHNpemVfdCBjdXJWYWx1ZSwgc2l6ZV90IG1heFZhbHVl
KSB7CiAgICAgICAgIHN0ZDo6b3N0cmluZ3N0cmVhbSB0ZXh0OwotICAgICAgICB0ZXh0IDw8ICJU
b3RhbCBEZXNjcmlwdG9yIENhY2hlIFNpemU6ICIgPDwgY3VyVmFsOworICAgICAgICB0ZXh0IDw8
ICJUb3RhbCBEZXNjcmlwdG9yIENhY2hlIFNpemU6ICIgPDwgY3VyVmFsdWU7CiAgICAgICAgIHJl
dHVybiB0ZXh0LnN0cigpOwogICAgIH07CiAKQEAgLTUzOCw2ICs1NDcsMzYgQEAgdm9pZCBBcHBl
bmRXaWRnZXREYXRhSGVscGVyOjpBcHBlbmRWdWxrYW5EZXNjcmlwdG9yQ2FjaGVLZXlTaXplKGNv
bnN0IG92ZXJsYXk6OlcKICAgICBBcHBlbmRUZXh0Q29tbW9uKHdpZGdldCwgaW1hZ2VFeHRlbnQs
IHRleHQuc3RyKCksIHRleHRXaWRnZXQsIHdpZGdldENvdW50cyk7CiB9CiAKK3ZvaWQgQXBwZW5k
V2lkZ2V0RGF0YUhlbHBlcjo6QXBwZW5kVnVsa2FuQXR0ZW1wdGVkU3VibWlzc2lvbnMoY29uc3Qg
b3ZlcmxheTo6V2lkZ2V0ICp3aWRnZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdsOjpFeHRlbnRzICZpbWFnZUV4
dGVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgVGV4dFdpZGdldERhdGEgKnRleHRXaWRnZXQsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdyYXBoV2lkZ2V0
RGF0YSAqZ3JhcGhXaWRnZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIE92ZXJsYXlXaWRnZXRDb3VudHMgKndpZGdldENvdW50
cykKK3sKKyAgICBhdXRvIGZvcm1hdCA9IFtdKHNpemVfdCBjdXJWYWx1ZSwgc2l6ZV90IG1heFZh
bHVlKSB7CisgICAgICAgIHN0ZDo6b3N0cmluZ3N0cmVhbSB0ZXh0OworICAgICAgICB0ZXh0IDw8
ICJBdHRlbXB0ZWQgc3VibWlzc2lvbnMgKHBlYWspOiAiIDw8IG1heFZhbHVlOworICAgICAgICBy
ZXR1cm4gdGV4dC5zdHIoKTsKKyAgICB9OworCisgICAgQXBwZW5kUnVubmluZ0dyYXBoQ29tbW9u
KHdpZGdldCwgaW1hZ2VFeHRlbnQsIHRleHRXaWRnZXQsIGdyYXBoV2lkZ2V0LCB3aWRnZXRDb3Vu
dHMsIGZvcm1hdCk7Cit9CisKK3ZvaWQgQXBwZW5kV2lkZ2V0RGF0YUhlbHBlcjo6QXBwZW5kVnVs
a2FuQWN0dWFsU3VibWlzc2lvbnMoY29uc3Qgb3ZlcmxheTo6V2lkZ2V0ICp3aWRnZXQsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IGdsOjpFeHRlbnRzICZpbWFnZUV4dGVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dFdpZGdldERhdGEgKnRleHRXaWRn
ZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEdyYXBoV2lkZ2V0RGF0YSAqZ3JhcGhXaWRnZXQsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE92ZXJsYXlXaWRnZXRDb3Vu
dHMgKndpZGdldENvdW50cykKK3sKKyAgICBhdXRvIGZvcm1hdCA9IFtdKHNpemVfdCBjdXJWYWx1
ZSwgc2l6ZV90IG1heFZhbHVlKSB7CisgICAgICAgIHN0ZDo6b3N0cmluZ3N0cmVhbSB0ZXh0Owor
ICAgICAgICB0ZXh0IDw8ICJBY3R1YWwgc3VibWlzc2lvbnMgKHBlYWspOiAiIDw8IG1heFZhbHVl
OworICAgICAgICByZXR1cm4gdGV4dC5zdHIoKTsKKyAgICB9OworCisgICAgQXBwZW5kUnVubmlu
Z0dyYXBoQ29tbW9uKHdpZGdldCwgaW1hZ2VFeHRlbnQsIHRleHRXaWRnZXQsIGdyYXBoV2lkZ2V0
LCB3aWRnZXRDb3VudHMsIGZvcm1hdCk7Cit9CisKIHN0ZDo6b3N0cmVhbSAmQXBwZW5kV2lkZ2V0
RGF0YUhlbHBlcjo6T3V0cHV0UGVyU2Vjb25kKHN0ZDo6b3N0cmVhbSAmb3V0LAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3Zlcmxh
eTo6UGVyU2Vjb25kICpwZXJTZWNvbmQpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9BTkdMRS9zcmMvbGliQU5HTEUvT3ZlcmxheVdpZGdldHMuaCBiL1NvdXJjZS9UaGlyZFBhcnR5
L0FOR0xFL3NyYy9saWJBTkdMRS9PdmVybGF5V2lkZ2V0cy5oCmluZGV4IGEwYmIxOTU4ZDAxYWZk
NzY3ZDRhMzA0YWMxZThmNTQxNWUzYzcwYTUuLjRlNWNkZjBmM2M3OGQxNDc2NmYxMjRiZGRmMjg2
OTE4ZDg2NjcxMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJB
TkdMRS9PdmVybGF5V2lkZ2V0cy5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9s
aWJBTkdMRS9PdmVybGF5V2lkZ2V0cy5oCkBAIC02Niw2ICs2NiwxMSBAQCBjbGFzcyBXaWRnZXQK
ICAgICBpbnQzMl90IGNvb3Jkc1s0XTsKICAgICBmbG9hdCBjb2xvcls0XTsKIAorICAgIC8vIElu
IHNvbWUgY2FzZXMsIGEgd2lkZ2V0IG1heSBuZWVkIHRvIG1hdGNoIGl0cyBjb250ZW50cyAoZS5n
LiBncmFwaCBoZWlnaHQgc2NhbGluZykgd2l0aAorICAgIC8vIGFub3RoZXIgcmVsYXRlZCB3aWRn
ZXQuICBJbiBzdWNoIGEgY2FzZSwgdGhpcyBwb2ludGVyIHdpbGwgcG9pbnQgdG8gdGhlIHdpZGdl
dCBpdCBuZWVkcyB0bworICAgIC8vIG1hdGNoIHRvLgorICAgIFdpZGdldCAqbWF0Y2hUb1dpZGdl
dDsKKwogICAgIGZyaWVuZCBjbGFzcyBnbDo6T3ZlcmxheTsKICAgICBmcmllbmQgY2xhc3MgZ2w6
Ok92ZXJsYXlTdGF0ZTsKICAgICBmcmllbmQgY2xhc3Mgb3ZlcmxheV9pbXBsOjpBcHBlbmRXaWRn
ZXREYXRhSGVscGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xp
YkFOR0xFL092ZXJsYXlfYXV0b2dlbi5jcHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMv
bGliQU5HTEUvT3ZlcmxheV9hdXRvZ2VuLmNwcAppbmRleCA4N2Q0N2UzOGRlZDI5YzgyYWIwM2Rm
OTBiMjQyNDc2YzBiZDY4ZmVkLi5lNTYxYTk1ZjRjZjAyMTFmMDBhOWQ5OTkzODUyMjY0YjJiYzE1
M2FiIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvT3Zl
cmxheV9hdXRvZ2VuLmNwcAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5H
TEUvT3ZlcmxheV9hdXRvZ2VuLmNwcApAQCAtNDIsMTYgKzQyLDE3IEBAIHZvaWQgT3ZlcmxheTo6
aW5pdE92ZXJsYXlXaWRnZXRzKCkKICAgICAgICAgICAgIGNvbnN0IGludDMyX3Qgd2lkdGggICAg
PSAxMiAqIChrRm9udEdseXBoV2lkdGggPj4gZm9udFNpemUpOwogICAgICAgICAgICAgY29uc3Qg
aW50MzJfdCBoZWlnaHQgICA9IChrRm9udEdseXBoSGVpZ2h0ID4+IGZvbnRTaXplKTsKIAotICAg
ICAgICAgICAgd2lkZ2V0LT50eXBlICAgICAgPSBXaWRnZXRUeXBlOjpQZXJTZWNvbmQ7Ci0gICAg
ICAgICAgICB3aWRnZXQtPmZvbnRTaXplICA9IGZvbnRTaXplOwotICAgICAgICAgICAgd2lkZ2V0
LT5jb29yZHNbMF0gPSBvZmZzZXRYOwotICAgICAgICAgICAgd2lkZ2V0LT5jb29yZHNbMV0gPSBv
ZmZzZXRZOwotICAgICAgICAgICAgd2lkZ2V0LT5jb29yZHNbMl0gPSBvZmZzZXRYICsgd2lkdGg7
Ci0gICAgICAgICAgICB3aWRnZXQtPmNvb3Jkc1szXSA9IG9mZnNldFkgKyBoZWlnaHQ7Ci0gICAg
ICAgICAgICB3aWRnZXQtPmNvbG9yWzBdICA9IDAuNDk4MDM5MjE1Njg2Mjc0NWY7Ci0gICAgICAg
ICAgICB3aWRnZXQtPmNvbG9yWzFdICA9IDAuNzQ5MDE5NjA3ODQzMTM3M2Y7Ci0gICAgICAgICAg
ICB3aWRnZXQtPmNvbG9yWzJdICA9IDEuMGY7Ci0gICAgICAgICAgICB3aWRnZXQtPmNvbG9yWzNd
ICA9IDEuMGY7CisgICAgICAgICAgICB3aWRnZXQtPnR5cGUgICAgICAgICAgPSBXaWRnZXRUeXBl
OjpQZXJTZWNvbmQ7CisgICAgICAgICAgICB3aWRnZXQtPmZvbnRTaXplICAgICAgPSBmb250U2l6
ZTsKKyAgICAgICAgICAgIHdpZGdldC0+Y29vcmRzWzBdICAgICA9IG9mZnNldFg7CisgICAgICAg
ICAgICB3aWRnZXQtPmNvb3Jkc1sxXSAgICAgPSBvZmZzZXRZOworICAgICAgICAgICAgd2lkZ2V0
LT5jb29yZHNbMl0gICAgID0gb2Zmc2V0WCArIHdpZHRoOworICAgICAgICAgICAgd2lkZ2V0LT5j
b29yZHNbM10gICAgID0gb2Zmc2V0WSArIGhlaWdodDsKKyAgICAgICAgICAgIHdpZGdldC0+Y29s
b3JbMF0gICAgICA9IDAuNDk4MDM5MjE1Njg2Mjc0NWY7CisgICAgICAgICAgICB3aWRnZXQtPmNv
bG9yWzFdICAgICAgPSAwLjc0OTAxOTYwNzg0MzEzNzNmOworICAgICAgICAgICAgd2lkZ2V0LT5j
b2xvclsyXSAgICAgID0gMS4wZjsKKyAgICAgICAgICAgIHdpZGdldC0+Y29sb3JbM10gICAgICA9
IDEuMGY7CisgICAgICAgICAgICB3aWRnZXQtPm1hdGNoVG9XaWRnZXQgPSBudWxscHRyOwogICAg
ICAgICB9CiAgICAgICAgIG1TdGF0ZS5tT3ZlcmxheVdpZGdldHNbV2lkZ2V0SWQ6OkZQU10ucmVz
ZXQod2lkZ2V0KTsKICAgICB9CkBAIC02NSwxNiArNjYsMTcgQEAgdm9pZCBPdmVybGF5Ojppbml0
T3ZlcmxheVdpZGdldHMoKQogICAgICAgICAgICAgY29uc3QgaW50MzJfdCB3aWR0aCAgICA9IDE1
MCAqIChrRm9udEdseXBoV2lkdGggPj4gZm9udFNpemUpOwogICAgICAgICAgICAgY29uc3QgaW50
MzJfdCBoZWlnaHQgICA9IChrRm9udEdseXBoSGVpZ2h0ID4+IGZvbnRTaXplKTsKIAotICAgICAg
ICAgICAgd2lkZ2V0LT50eXBlICAgICAgPSBXaWRnZXRUeXBlOjpUZXh0OwotICAgICAgICAgICAg
d2lkZ2V0LT5mb250U2l6ZSAgPSBmb250U2l6ZTsKLSAgICAgICAgICAgIHdpZGdldC0+Y29vcmRz
WzBdID0gb2Zmc2V0WDsKLSAgICAgICAgICAgIHdpZGdldC0+Y29vcmRzWzFdID0gb2Zmc2V0WSAt
IGhlaWdodDsKLSAgICAgICAgICAgIHdpZGdldC0+Y29vcmRzWzJdID0gb2Zmc2V0WCArIHdpZHRo
OwotICAgICAgICAgICAgd2lkZ2V0LT5jb29yZHNbM10gPSBvZmZzZXRZOwotICAgICAgICAgICAg
d2lkZ2V0LT5jb2xvclswXSAgPSAxLjBmOwotICAgICAgICAgICAgd2lkZ2V0LT5jb2xvclsxXSAg
PSAwLjBmOwotICAgICAgICAgICAgd2lkZ2V0LT5jb2xvclsyXSAgPSAwLjBmOwotICAgICAgICAg
ICAgd2lkZ2V0LT5jb2xvclszXSAgPSAxLjBmOworICAgICAgICAgICAgd2lkZ2V0LT50eXBlICAg
ICAgICAgID0gV2lkZ2V0VHlwZTo6VGV4dDsKKyAgICAgICAgICAgIHdpZGdldC0+Zm9udFNpemUg
ICAgICA9IGZvbnRTaXplOworICAgICAgICAgICAgd2lkZ2V0LT5jb29yZHNbMF0gICAgID0gb2Zm
c2V0WDsKKyAgICAgICAgICAgIHdpZGdldC0+Y29vcmRzWzFdICAgICA9IG9mZnNldFkgLSBoZWln
aHQ7CisgICAgICAgICAgICB3aWRnZXQtPmNvb3Jkc1syXSAgICAgPSBvZmZzZXRYICsgd2lkdGg7
CisgICAgICAgICAgICB3aWRnZXQtPmNvb3Jkc1szXSAgICAgPSBvZmZzZXRZOworICAgICAgICAg
ICAgd2lkZ2V0LT5jb2xvclswXSAgICAgID0gMS4wZjsKKyAgICAgICAgICAgIHdpZGdldC0+Y29s
b3JbMV0gICAgICA9IDAuMGY7CisgICAgICAgICAgICB3aWRnZXQtPmNvbG9yWzJdICAgICAgPSAw
LjBmOworICAgICAgICAgICAgd2lkZ2V0LT5jb2xvclszXSAgICAgID0gMS4wZjsKKyAgICAgICAg
ICAgIHdpZGdldC0+bWF0Y2hUb1dpZGdldCA9IG51bGxwdHI7CiAgICAgICAgIH0KICAgICAgICAg
bVN0YXRlLm1PdmVybGF5V2lkZ2V0c1tXaWRnZXRJZDo6VnVsa2FuTGFzdFZhbGlkYXRpb25NZXNz
YWdlXS5yZXNldCh3aWRnZXQpOwogICAgIH0KQEAgLTg5LDE2ICs5MSwxNyBAQCB2b2lkIE92ZXJs
YXk6OmluaXRPdmVybGF5V2lkZ2V0cygpCiAgICAgICAgICAgICBjb25zdCBpbnQzMl90IHdpZHRo
ICA9IDI1ICogKGtGb250R2x5cGhXaWR0aCA+PiBmb250U2l6ZSk7CiAgICAgICAgICAgICBjb25z
dCBpbnQzMl90IGhlaWdodCA9IChrRm9udEdseXBoSGVpZ2h0ID4+IGZvbnRTaXplKTsKIAotICAg
ICAgICAgICAgd2lkZ2V0LT50eXBlICAgICAgPSBXaWRnZXRUeXBlOjpDb3VudDsKLSAgICAgICAg
ICAgIHdpZGdldC0+Zm9udFNpemUgID0gZm9udFNpemU7Ci0gICAgICAgICAgICB3aWRnZXQtPmNv
b3Jkc1swXSA9IG9mZnNldFg7Ci0gICAgICAgICAgICB3aWRnZXQtPmNvb3Jkc1sxXSA9IG9mZnNl
dFkgLSBoZWlnaHQ7Ci0gICAgICAgICAgICB3aWRnZXQtPmNvb3Jkc1syXSA9IG9mZnNldFggKyB3
aWR0aDsKLSAgICAgICAgICAgIHdpZGdldC0+Y29vcmRzWzNdID0gb2Zmc2V0WTsKLSAgICAgICAg
ICAgIHdpZGdldC0+Y29sb3JbMF0gID0gMS4wZjsKLSAgICAgICAgICAgIHdpZGdldC0+Y29sb3Jb
MV0gID0gMC4wZjsKLSAgICAgICAgICAgIHdpZGdldC0+Y29sb3JbMl0gID0gMC4wZjsKLSAgICAg
ICAgICAgIHdpZGdldC0+Y29sb3JbM10gID0gMS4wZjsKKyAgICAgICAgICAgIHdpZGdldC0+dHlw
ZSAgICAgICAgICA9IFdpZGdldFR5cGU6OkNvdW50OworICAgICAgICAgICAgd2lkZ2V0LT5mb250
U2l6ZSAgICAgID0gZm9udFNpemU7CisgICAgICAgICAgICB3aWRnZXQtPmNvb3Jkc1swXSAgICAg
PSBvZmZzZXRYOworICAgICAgICAgICAgd2lkZ2V0LT5jb29yZHNbMV0gICAgID0gb2Zmc2V0WSAt
IGhlaWdodDsKKyAgICAgICAgICAgIHdpZGdldC0+Y29vcmRzWzJdICAgICA9IG9mZnNldFggKyB3
aWR0aDsKKyAgICAgICAgICAgIHdpZGdldC0+Y29vcmRzWzNdICAgICA9IG9mZnNldFk7CisgICAg
ICAgICAgICB3aWRnZXQtPmNvbG9yWzBdICAgICAgPSAxLjBmOworICAgICAgICAgICAgd2lkZ2V0
LT5jb2xvclsxXSAgICAgID0gMC4wZjsKKyAgICAgICAgICAgIHdpZGdldC0+Y29sb3JbMl0gICAg
ICA9IDAuMGY7CisgICAgICAgICAgICB3aWRnZXQtPmNvbG9yWzNdICAgICAgPSAxLjBmOworICAg
ICAgICAgICAgd2lkZ2V0LT5tYXRjaFRvV2lkZ2V0ID0gbnVsbHB0cjsKICAgICAgICAgfQogICAg
ICAgICBtU3RhdGUubU92ZXJsYXlXaWRnZXRzW1dpZGdldElkOjpWdWxrYW5WYWxpZGF0aW9uTWVz
c2FnZUNvdW50XS5yZXNldCh3aWRnZXQpOwogICAgIH0KQEAgLTExMiwxNiArMTE1LDE3IEBAIHZv
aWQgT3ZlcmxheTo6aW5pdE92ZXJsYXlXaWRnZXRzKCkKICAgICAgICAgICAgIGNvbnN0IGludDMy
X3Qgd2lkdGggICAgPSA1ICogc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHdpZGdldC0+cnVubmluZ1Zh
bHVlcy5zaXplKCkpOwogICAgICAgICAgICAgY29uc3QgaW50MzJfdCBoZWlnaHQgICA9IDEwMDsK
IAotICAgICAgICAgICAgd2lkZ2V0LT50eXBlICAgICAgPSBXaWRnZXRUeXBlOjpSdW5uaW5nR3Jh
cGg7Ci0gICAgICAgICAgICB3aWRnZXQtPmZvbnRTaXplICA9IGZvbnRTaXplOwotICAgICAgICAg
ICAgd2lkZ2V0LT5jb29yZHNbMF0gPSBvZmZzZXRYOwotICAgICAgICAgICAgd2lkZ2V0LT5jb29y
ZHNbMV0gPSBvZmZzZXRZOwotICAgICAgICAgICAgd2lkZ2V0LT5jb29yZHNbMl0gPSBvZmZzZXRY
ICsgd2lkdGg7Ci0gICAgICAgICAgICB3aWRnZXQtPmNvb3Jkc1szXSA9IG9mZnNldFkgKyBoZWln
aHQ7Ci0gICAgICAgICAgICB3aWRnZXQtPmNvbG9yWzBdICA9IDAuMjk0MTE3NjQ3MDU4ODIzNTRm
OwotICAgICAgICAgICAgd2lkZ2V0LT5jb2xvclsxXSAgPSAwLjc4NDMxMzcyNTQ5MDE5NjFmOwot
ICAgICAgICAgICAgd2lkZ2V0LT5jb2xvclsyXSAgPSAwLjBmOwotICAgICAgICAgICAgd2lkZ2V0
LT5jb2xvclszXSAgPSAwLjc4NDMxMzcyNTQ5MDE5NjFmOworICAgICAgICAgICAgd2lkZ2V0LT50
eXBlICAgICAgICAgID0gV2lkZ2V0VHlwZTo6UnVubmluZ0dyYXBoOworICAgICAgICAgICAgd2lk
Z2V0LT5mb250U2l6ZSAgICAgID0gZm9udFNpemU7CisgICAgICAgICAgICB3aWRnZXQtPmNvb3Jk
c1swXSAgICAgPSBvZmZzZXRYOworICAgICAgICAgICAgd2lkZ2V0LT5jb29yZHNbMV0gICAgID0g
b2Zmc2V0WTsKKyAgICAgICAgICAgIHdpZGdldC0+Y29vcmRzWzJdICAgICA9IG9mZnNldFggKyB3
aWR0aDsKKyAgICAgICAgICAgIHdpZGdldC0+Y29vcmRzWzNdICAgICA9IG9mZnNldFkgKyBoZWln
aHQ7CisgICAgICAgICAgICB3aWRnZXQtPmNvbG9yWzBdICAgICAgPSAwLjI5NDExNzY0NzA1ODgy
MzU0ZjsKKyAgICAgICAgICAgIHdpZGdldC0+Y29sb3JbMV0gICAgICA9IDAuNzg0MzEzNzI1NDkw
MTk2MWY7CisgICAgICAgICAgICB3aWRnZXQtPmNvbG9yWzJdICAgICAgPSAwLjBmOworICAgICAg
ICAgICAgd2lkZ2V0LT5jb2xvclszXSAgICAgID0gMC43ODQzMTM3MjU0OTAxOTYxZjsKKyAgICAg
ICAgICAgIHdpZGdldC0+bWF0Y2hUb1dpZGdldCA9IG51bGxwdHI7CiAgICAgICAgIH0KICAgICAg
ICAgbVN0YXRlLm1PdmVybGF5V2lkZ2V0c1tXaWRnZXRJZDo6VnVsa2FuUmVuZGVyUGFzc0NvdW50
XS5yZXNldCh3aWRnZXQpOwogICAgICAgICB7CkBAIC0xMzMsMTYgKzEzNywxNyBAQCB2b2lkIE92
ZXJsYXk6OmluaXRPdmVybGF5V2lkZ2V0cygpCiAgICAgICAgICAgICBjb25zdCBpbnQzMl90IHdp
ZHRoICA9IDQwICogKGtGb250R2x5cGhXaWR0aCA+PiBmb250U2l6ZSk7CiAgICAgICAgICAgICBj
b25zdCBpbnQzMl90IGhlaWdodCA9IChrRm9udEdseXBoSGVpZ2h0ID4+IGZvbnRTaXplKTsKIAot
ICAgICAgICAgICAgd2lkZ2V0LT5kZXNjcmlwdGlvbi50eXBlICAgICAgPSBXaWRnZXRUeXBlOjpU
ZXh0OwotICAgICAgICAgICAgd2lkZ2V0LT5kZXNjcmlwdGlvbi5mb250U2l6ZSAgPSBmb250U2l6
ZTsKLSAgICAgICAgICAgIHdpZGdldC0+ZGVzY3JpcHRpb24uY29vcmRzWzBdID0gb2Zmc2V0WDsK
LSAgICAgICAgICAgIHdpZGdldC0+ZGVzY3JpcHRpb24uY29vcmRzWzFdID0gc3RkOjptYXgob2Zm
c2V0WSAtIGhlaWdodCwgMSk7Ci0gICAgICAgICAgICB3aWRnZXQtPmRlc2NyaXB0aW9uLmNvb3Jk
c1syXSA9IG9mZnNldFggKyB3aWR0aDsKLSAgICAgICAgICAgIHdpZGdldC0+ZGVzY3JpcHRpb24u
Y29vcmRzWzNdID0gb2Zmc2V0WTsKLSAgICAgICAgICAgIHdpZGdldC0+ZGVzY3JpcHRpb24uY29s
b3JbMF0gID0gMC4yOTQxMTc2NDcwNTg4MjM1NGY7Ci0gICAgICAgICAgICB3aWRnZXQtPmRlc2Ny
aXB0aW9uLmNvbG9yWzFdICA9IDAuNzg0MzEzNzI1NDkwMTk2MWY7Ci0gICAgICAgICAgICB3aWRn
ZXQtPmRlc2NyaXB0aW9uLmNvbG9yWzJdICA9IDAuMGY7Ci0gICAgICAgICAgICB3aWRnZXQtPmRl
c2NyaXB0aW9uLmNvbG9yWzNdICA9IDEuMGY7CisgICAgICAgICAgICB3aWRnZXQtPmRlc2NyaXB0
aW9uLnR5cGUgICAgICAgICAgPSBXaWRnZXRUeXBlOjpUZXh0OworICAgICAgICAgICAgd2lkZ2V0
LT5kZXNjcmlwdGlvbi5mb250U2l6ZSAgICAgID0gZm9udFNpemU7CisgICAgICAgICAgICB3aWRn
ZXQtPmRlc2NyaXB0aW9uLmNvb3Jkc1swXSAgICAgPSBvZmZzZXRYOworICAgICAgICAgICAgd2lk
Z2V0LT5kZXNjcmlwdGlvbi5jb29yZHNbMV0gICAgID0gc3RkOjptYXgob2Zmc2V0WSAtIGhlaWdo
dCwgMSk7CisgICAgICAgICAgICB3aWRnZXQtPmRlc2NyaXB0aW9uLmNvb3Jkc1syXSAgICAgPSBv
ZmZzZXRYICsgd2lkdGg7CisgICAgICAgICAgICB3aWRnZXQtPmRlc2NyaXB0aW9uLmNvb3Jkc1sz
XSAgICAgPSBvZmZzZXRZOworICAgICAgICAgICAgd2lkZ2V0LT5kZXNjcmlwdGlvbi5jb2xvclsw
XSAgICAgID0gMC4yOTQxMTc2NDcwNTg4MjM1NGY7CisgICAgICAgICAgICB3aWRnZXQtPmRlc2Ny
aXB0aW9uLmNvbG9yWzFdICAgICAgPSAwLjc4NDMxMzcyNTQ5MDE5NjFmOworICAgICAgICAgICAg
d2lkZ2V0LT5kZXNjcmlwdGlvbi5jb2xvclsyXSAgICAgID0gMC4wZjsKKyAgICAgICAgICAgIHdp
ZGdldC0+ZGVzY3JpcHRpb24uY29sb3JbM10gICAgICA9IDEuMGY7CisgICAgICAgICAgICB3aWRn
ZXQtPmRlc2NyaXB0aW9uLm1hdGNoVG9XaWRnZXQgPSBudWxscHRyOwogICAgICAgICB9CiAgICAg
fQogCkBAIC0xNTUsMTYgKzE2MCwxNyBAQCB2b2lkIE92ZXJsYXk6OmluaXRPdmVybGF5V2lkZ2V0
cygpCiAgICAgICAgICAgICBjb25zdCBpbnQzMl90IHdpZHRoICAgID0gNiAqIHN0YXRpY19jYXN0
PHVpbnQzMl90Pih3aWRnZXQtPnJ1bm5pbmdWYWx1ZXMuc2l6ZSgpKTsKICAgICAgICAgICAgIGNv
bnN0IGludDMyX3QgaGVpZ2h0ICAgPSAxMDA7CiAKLSAgICAgICAgICAgIHdpZGdldC0+dHlwZSAg
ICAgID0gV2lkZ2V0VHlwZTo6UnVubmluZ0hpc3RvZ3JhbTsKLSAgICAgICAgICAgIHdpZGdldC0+
Zm9udFNpemUgID0gZm9udFNpemU7Ci0gICAgICAgICAgICB3aWRnZXQtPmNvb3Jkc1swXSA9IG9m
ZnNldFggLSB3aWR0aDsKLSAgICAgICAgICAgIHdpZGdldC0+Y29vcmRzWzFdID0gb2Zmc2V0WTsK
LSAgICAgICAgICAgIHdpZGdldC0+Y29vcmRzWzJdID0gb2Zmc2V0WDsKLSAgICAgICAgICAgIHdp
ZGdldC0+Y29vcmRzWzNdID0gb2Zmc2V0WSArIGhlaWdodDsKLSAgICAgICAgICAgIHdpZGdldC0+
Y29sb3JbMF0gID0gMS4wZjsKLSAgICAgICAgICAgIHdpZGdldC0+Y29sb3JbMV0gID0gMC43ODQz
MTM3MjU0OTAxOTYxZjsKLSAgICAgICAgICAgIHdpZGdldC0+Y29sb3JbMl0gID0gMC4yOTQxMTc2
NDcwNTg4MjM1NGY7Ci0gICAgICAgICAgICB3aWRnZXQtPmNvbG9yWzNdICA9IDAuNzg0MzEzNzI1
NDkwMTk2MWY7CisgICAgICAgICAgICB3aWRnZXQtPnR5cGUgICAgICAgICAgPSBXaWRnZXRUeXBl
OjpSdW5uaW5nSGlzdG9ncmFtOworICAgICAgICAgICAgd2lkZ2V0LT5mb250U2l6ZSAgICAgID0g
Zm9udFNpemU7CisgICAgICAgICAgICB3aWRnZXQtPmNvb3Jkc1swXSAgICAgPSBvZmZzZXRYIC0g
d2lkdGg7CisgICAgICAgICAgICB3aWRnZXQtPmNvb3Jkc1sxXSAgICAgPSBvZmZzZXRZOworICAg
ICAgICAgICAgd2lkZ2V0LT5jb29yZHNbMl0gICAgID0gb2Zmc2V0WDsKKyAgICAgICAgICAgIHdp
ZGdldC0+Y29vcmRzWzNdICAgICA9IG9mZnNldFkgKyBoZWlnaHQ7CisgICAgICAgICAgICB3aWRn
ZXQtPmNvbG9yWzBdICAgICAgPSAxLjBmOworICAgICAgICAgICAgd2lkZ2V0LT5jb2xvclsxXSAg
ICAgID0gMC43ODQzMTM3MjU0OTAxOTYxZjsKKyAgICAgICAgICAgIHdpZGdldC0+Y29sb3JbMl0g
ICAgICA9IDAuMjk0MTE3NjQ3MDU4ODIzNTRmOworICAgICAgICAgICAgd2lkZ2V0LT5jb2xvclsz
XSAgICAgID0gMC43ODQzMTM3MjU0OTAxOTYxZjsKKyAgICAgICAgICAgIHdpZGdldC0+bWF0Y2hU
b1dpZGdldCA9IG51bGxwdHI7CiAgICAgICAgIH0KICAgICAgICAgbVN0YXRlLm1PdmVybGF5V2lk
Z2V0c1tXaWRnZXRJZDo6VnVsa2FuUmVuZGVyUGFzc0J1ZmZlckNvdW50XS5yZXNldCh3aWRnZXQp
OwogICAgICAgICB7CkBAIC0xNzYsMTYgKzE4MiwxNyBAQCB2b2lkIE92ZXJsYXk6OmluaXRPdmVy
bGF5V2lkZ2V0cygpCiAgICAgICAgICAgICBjb25zdCBpbnQzMl90IHdpZHRoICA9IDQwICogKGtG
b250R2x5cGhXaWR0aCA+PiBmb250U2l6ZSk7CiAgICAgICAgICAgICBjb25zdCBpbnQzMl90IGhl
aWdodCA9IChrRm9udEdseXBoSGVpZ2h0ID4+IGZvbnRTaXplKTsKIAotICAgICAgICAgICAgd2lk
Z2V0LT5kZXNjcmlwdGlvbi50eXBlICAgICAgPSBXaWRnZXRUeXBlOjpUZXh0OwotICAgICAgICAg
ICAgd2lkZ2V0LT5kZXNjcmlwdGlvbi5mb250U2l6ZSAgPSBmb250U2l6ZTsKLSAgICAgICAgICAg
IHdpZGdldC0+ZGVzY3JpcHRpb24uY29vcmRzWzBdID0gb2Zmc2V0WDsKLSAgICAgICAgICAgIHdp
ZGdldC0+ZGVzY3JpcHRpb24uY29vcmRzWzFdID0gc3RkOjptYXgob2Zmc2V0WSAtIGhlaWdodCwg
MSk7Ci0gICAgICAgICAgICB3aWRnZXQtPmRlc2NyaXB0aW9uLmNvb3Jkc1syXSA9IHN0ZDo6bWlu
KG9mZnNldFggKyB3aWR0aCwgLTEpOwotICAgICAgICAgICAgd2lkZ2V0LT5kZXNjcmlwdGlvbi5j
b29yZHNbM10gPSBvZmZzZXRZOwotICAgICAgICAgICAgd2lkZ2V0LT5kZXNjcmlwdGlvbi5jb2xv
clswXSAgPSAxLjBmOwotICAgICAgICAgICAgd2lkZ2V0LT5kZXNjcmlwdGlvbi5jb2xvclsxXSAg
PSAwLjc4NDMxMzcyNTQ5MDE5NjFmOwotICAgICAgICAgICAgd2lkZ2V0LT5kZXNjcmlwdGlvbi5j
b2xvclsyXSAgPSAwLjI5NDExNzY0NzA1ODgyMzU0ZjsKLSAgICAgICAgICAgIHdpZGdldC0+ZGVz
Y3JpcHRpb24uY29sb3JbM10gID0gMS4wZjsKKyAgICAgICAgICAgIHdpZGdldC0+ZGVzY3JpcHRp
b24udHlwZSAgICAgICAgICA9IFdpZGdldFR5cGU6OlRleHQ7CisgICAgICAgICAgICB3aWRnZXQt
PmRlc2NyaXB0aW9uLmZvbnRTaXplICAgICAgPSBmb250U2l6ZTsKKyAgICAgICAgICAgIHdpZGdl
dC0+ZGVzY3JpcHRpb24uY29vcmRzWzBdICAgICA9IG9mZnNldFg7CisgICAgICAgICAgICB3aWRn
ZXQtPmRlc2NyaXB0aW9uLmNvb3Jkc1sxXSAgICAgPSBzdGQ6Om1heChvZmZzZXRZIC0gaGVpZ2h0
LCAxKTsKKyAgICAgICAgICAgIHdpZGdldC0+ZGVzY3JpcHRpb24uY29vcmRzWzJdICAgICA9IHN0
ZDo6bWluKG9mZnNldFggKyB3aWR0aCwgLTEpOworICAgICAgICAgICAgd2lkZ2V0LT5kZXNjcmlw
dGlvbi5jb29yZHNbM10gICAgID0gb2Zmc2V0WTsKKyAgICAgICAgICAgIHdpZGdldC0+ZGVzY3Jp
cHRpb24uY29sb3JbMF0gICAgICA9IDEuMGY7CisgICAgICAgICAgICB3aWRnZXQtPmRlc2NyaXB0
aW9uLmNvbG9yWzFdICAgICAgPSAwLjc4NDMxMzcyNTQ5MDE5NjFmOworICAgICAgICAgICAgd2lk
Z2V0LT5kZXNjcmlwdGlvbi5jb2xvclsyXSAgICAgID0gMC4yOTQxMTc2NDcwNTg4MjM1NGY7Cisg
ICAgICAgICAgICB3aWRnZXQtPmRlc2NyaXB0aW9uLmNvbG9yWzNdICAgICAgPSAxLjBmOworICAg
ICAgICAgICAgd2lkZ2V0LT5kZXNjcmlwdGlvbi5tYXRjaFRvV2lkZ2V0ID0gbnVsbHB0cjsKICAg
ICAgICAgfQogICAgIH0KIApAQCAtMTk4LDE2ICsyMDUsMTcgQEAgdm9pZCBPdmVybGF5Ojppbml0
T3ZlcmxheVdpZGdldHMoKQogICAgICAgICAgICAgY29uc3QgaW50MzJfdCB3aWR0aCAgICA9IDYg
KiBzdGF0aWNfY2FzdDx1aW50MzJfdD4od2lkZ2V0LT5ydW5uaW5nVmFsdWVzLnNpemUoKSk7CiAg
ICAgICAgICAgICBjb25zdCBpbnQzMl90IGhlaWdodCAgID0gMTAwOwogCi0gICAgICAgICAgICB3
aWRnZXQtPnR5cGUgICAgICA9IFdpZGdldFR5cGU6OlJ1bm5pbmdIaXN0b2dyYW07Ci0gICAgICAg
ICAgICB3aWRnZXQtPmZvbnRTaXplICA9IGZvbnRTaXplOwotICAgICAgICAgICAgd2lkZ2V0LT5j
b29yZHNbMF0gPSBvZmZzZXRYIC0gd2lkdGg7Ci0gICAgICAgICAgICB3aWRnZXQtPmNvb3Jkc1sx
XSA9IG9mZnNldFk7Ci0gICAgICAgICAgICB3aWRnZXQtPmNvb3Jkc1syXSA9IG9mZnNldFg7Ci0g
ICAgICAgICAgICB3aWRnZXQtPmNvb3Jkc1szXSA9IG9mZnNldFkgKyBoZWlnaHQ7Ci0gICAgICAg
ICAgICB3aWRnZXQtPmNvbG9yWzBdICA9IDEuMGY7Ci0gICAgICAgICAgICB3aWRnZXQtPmNvbG9y
WzFdICA9IDAuNzg0MzEzNzI1NDkwMTk2MWY7Ci0gICAgICAgICAgICB3aWRnZXQtPmNvbG9yWzJd
ICA9IDAuMjk0MTE3NjQ3MDU4ODIzNTRmOwotICAgICAgICAgICAgd2lkZ2V0LT5jb2xvclszXSAg
PSAwLjc4NDMxMzcyNTQ5MDE5NjFmOworICAgICAgICAgICAgd2lkZ2V0LT50eXBlICAgICAgICAg
ID0gV2lkZ2V0VHlwZTo6UnVubmluZ0hpc3RvZ3JhbTsKKyAgICAgICAgICAgIHdpZGdldC0+Zm9u
dFNpemUgICAgICA9IGZvbnRTaXplOworICAgICAgICAgICAgd2lkZ2V0LT5jb29yZHNbMF0gICAg
ID0gb2Zmc2V0WCAtIHdpZHRoOworICAgICAgICAgICAgd2lkZ2V0LT5jb29yZHNbMV0gICAgID0g
b2Zmc2V0WTsKKyAgICAgICAgICAgIHdpZGdldC0+Y29vcmRzWzJdICAgICA9IG9mZnNldFg7Cisg
ICAgICAgICAgICB3aWRnZXQtPmNvb3Jkc1szXSAgICAgPSBvZmZzZXRZICsgaGVpZ2h0OworICAg
ICAgICAgICAgd2lkZ2V0LT5jb2xvclswXSAgICAgID0gMS4wZjsKKyAgICAgICAgICAgIHdpZGdl
dC0+Y29sb3JbMV0gICAgICA9IDAuNzg0MzEzNzI1NDkwMTk2MWY7CisgICAgICAgICAgICB3aWRn
ZXQtPmNvbG9yWzJdICAgICAgPSAwLjI5NDExNzY0NzA1ODgyMzU0ZjsKKyAgICAgICAgICAgIHdp
ZGdldC0+Y29sb3JbM10gICAgICA9IDAuNzg0MzEzNzI1NDkwMTk2MWY7CisgICAgICAgICAgICB3
aWRnZXQtPm1hdGNoVG9XaWRnZXQgPSBudWxscHRyOwogICAgICAgICB9CiAgICAgICAgIG1TdGF0
ZS5tT3ZlcmxheVdpZGdldHNbV2lkZ2V0SWQ6OlZ1bGthblNlY29uZGFyeUNvbW1hbmRCdWZmZXJQ
b29sV2FzdGVdLnJlc2V0KHdpZGdldCk7CiAgICAgICAgIHsKQEAgLTIxOSwxNiArMjI3LDE3IEBA
IHZvaWQgT3ZlcmxheTo6aW5pdE92ZXJsYXlXaWRnZXRzKCkKICAgICAgICAgICAgIGNvbnN0IGlu
dDMyX3Qgd2lkdGggID0gNDAgKiAoa0ZvbnRHbHlwaFdpZHRoID4+IGZvbnRTaXplKTsKICAgICAg
ICAgICAgIGNvbnN0IGludDMyX3QgaGVpZ2h0ID0gKGtGb250R2x5cGhIZWlnaHQgPj4gZm9udFNp
emUpOwogCi0gICAgICAgICAgICB3aWRnZXQtPmRlc2NyaXB0aW9uLnR5cGUgICAgICA9IFdpZGdl
dFR5cGU6OlRleHQ7Ci0gICAgICAgICAgICB3aWRnZXQtPmRlc2NyaXB0aW9uLmZvbnRTaXplICA9
IGZvbnRTaXplOwotICAgICAgICAgICAgd2lkZ2V0LT5kZXNjcmlwdGlvbi5jb29yZHNbMF0gPSBv
ZmZzZXRYOwotICAgICAgICAgICAgd2lkZ2V0LT5kZXNjcmlwdGlvbi5jb29yZHNbMV0gPSBzdGQ6
Om1heChvZmZzZXRZIC0gaGVpZ2h0LCAxKTsKLSAgICAgICAgICAgIHdpZGdldC0+ZGVzY3JpcHRp
b24uY29vcmRzWzJdID0gc3RkOjptaW4ob2Zmc2V0WCArIHdpZHRoLCAtMSk7Ci0gICAgICAgICAg
ICB3aWRnZXQtPmRlc2NyaXB0aW9uLmNvb3Jkc1szXSA9IG9mZnNldFk7Ci0gICAgICAgICAgICB3
aWRnZXQtPmRlc2NyaXB0aW9uLmNvbG9yWzBdICA9IDEuMGY7Ci0gICAgICAgICAgICB3aWRnZXQt
PmRlc2NyaXB0aW9uLmNvbG9yWzFdICA9IDAuNzg0MzEzNzI1NDkwMTk2MWY7Ci0gICAgICAgICAg
ICB3aWRnZXQtPmRlc2NyaXB0aW9uLmNvbG9yWzJdICA9IDAuMjk0MTE3NjQ3MDU4ODIzNTRmOwot
ICAgICAgICAgICAgd2lkZ2V0LT5kZXNjcmlwdGlvbi5jb2xvclszXSAgPSAxLjBmOworICAgICAg
ICAgICAgd2lkZ2V0LT5kZXNjcmlwdGlvbi50eXBlICAgICAgICAgID0gV2lkZ2V0VHlwZTo6VGV4
dDsKKyAgICAgICAgICAgIHdpZGdldC0+ZGVzY3JpcHRpb24uZm9udFNpemUgICAgICA9IGZvbnRT
aXplOworICAgICAgICAgICAgd2lkZ2V0LT5kZXNjcmlwdGlvbi5jb29yZHNbMF0gICAgID0gb2Zm
c2V0WDsKKyAgICAgICAgICAgIHdpZGdldC0+ZGVzY3JpcHRpb24uY29vcmRzWzFdICAgICA9IHN0
ZDo6bWF4KG9mZnNldFkgLSBoZWlnaHQsIDEpOworICAgICAgICAgICAgd2lkZ2V0LT5kZXNjcmlw
dGlvbi5jb29yZHNbMl0gICAgID0gc3RkOjptaW4ob2Zmc2V0WCArIHdpZHRoLCAtMSk7CisgICAg
ICAgICAgICB3aWRnZXQtPmRlc2NyaXB0aW9uLmNvb3Jkc1szXSAgICAgPSBvZmZzZXRZOworICAg
ICAgICAgICAgd2lkZ2V0LT5kZXNjcmlwdGlvbi5jb2xvclswXSAgICAgID0gMS4wZjsKKyAgICAg
ICAgICAgIHdpZGdldC0+ZGVzY3JpcHRpb24uY29sb3JbMV0gICAgICA9IDAuNzg0MzEzNzI1NDkw
MTk2MWY7CisgICAgICAgICAgICB3aWRnZXQtPmRlc2NyaXB0aW9uLmNvbG9yWzJdICAgICAgPSAw
LjI5NDExNzY0NzA1ODgyMzU0ZjsKKyAgICAgICAgICAgIHdpZGdldC0+ZGVzY3JpcHRpb24uY29s
b3JbM10gICAgICA9IDEuMGY7CisgICAgICAgICAgICB3aWRnZXQtPmRlc2NyaXB0aW9uLm1hdGNo
VG9XaWRnZXQgPSBudWxscHRyOwogICAgICAgICB9CiAgICAgfQogCkBAIC0yNDEsMTYgKzI1MCwx
NyBAQCB2b2lkIE92ZXJsYXk6OmluaXRPdmVybGF5V2lkZ2V0cygpCiAgICAgICAgICAgICBjb25z
dCBpbnQzMl90IHdpZHRoICAgID0gNSAqIHN0YXRpY19jYXN0PHVpbnQzMl90Pih3aWRnZXQtPnJ1
bm5pbmdWYWx1ZXMuc2l6ZSgpKTsKICAgICAgICAgICAgIGNvbnN0IGludDMyX3QgaGVpZ2h0ICAg
PSAxMDA7CiAKLSAgICAgICAgICAgIHdpZGdldC0+dHlwZSAgICAgID0gV2lkZ2V0VHlwZTo6UnVu
bmluZ0dyYXBoOwotICAgICAgICAgICAgd2lkZ2V0LT5mb250U2l6ZSAgPSBmb250U2l6ZTsKLSAg
ICAgICAgICAgIHdpZGdldC0+Y29vcmRzWzBdID0gb2Zmc2V0WDsKLSAgICAgICAgICAgIHdpZGdl
dC0+Y29vcmRzWzFdID0gb2Zmc2V0WTsKLSAgICAgICAgICAgIHdpZGdldC0+Y29vcmRzWzJdID0g
b2Zmc2V0WCArIHdpZHRoOwotICAgICAgICAgICAgd2lkZ2V0LT5jb29yZHNbM10gPSBvZmZzZXRZ
ICsgaGVpZ2h0OwotICAgICAgICAgICAgd2lkZ2V0LT5jb2xvclswXSAgPSAwLjI5NDExNzY0NzA1
ODgyMzU0ZjsKLSAgICAgICAgICAgIHdpZGdldC0+Y29sb3JbMV0gID0gMC43ODQzMTM3MjU0OTAx
OTYxZjsKLSAgICAgICAgICAgIHdpZGdldC0+Y29sb3JbMl0gID0gMC4wZjsKLSAgICAgICAgICAg
IHdpZGdldC0+Y29sb3JbM10gID0gMC43ODQzMTM3MjU0OTAxOTYxZjsKKyAgICAgICAgICAgIHdp
ZGdldC0+dHlwZSAgICAgICAgICA9IFdpZGdldFR5cGU6OlJ1bm5pbmdHcmFwaDsKKyAgICAgICAg
ICAgIHdpZGdldC0+Zm9udFNpemUgICAgICA9IGZvbnRTaXplOworICAgICAgICAgICAgd2lkZ2V0
LT5jb29yZHNbMF0gICAgID0gb2Zmc2V0WDsKKyAgICAgICAgICAgIHdpZGdldC0+Y29vcmRzWzFd
ICAgICA9IG9mZnNldFk7CisgICAgICAgICAgICB3aWRnZXQtPmNvb3Jkc1syXSAgICAgPSBvZmZz
ZXRYICsgd2lkdGg7CisgICAgICAgICAgICB3aWRnZXQtPmNvb3Jkc1szXSAgICAgPSBvZmZzZXRZ
ICsgaGVpZ2h0OworICAgICAgICAgICAgd2lkZ2V0LT5jb2xvclswXSAgICAgID0gMC4yOTQxMTc2
NDcwNTg4MjM1NGY7CisgICAgICAgICAgICB3aWRnZXQtPmNvbG9yWzFdICAgICAgPSAwLjc4NDMx
MzcyNTQ5MDE5NjFmOworICAgICAgICAgICAgd2lkZ2V0LT5jb2xvclsyXSAgICAgID0gMC4wZjsK
KyAgICAgICAgICAgIHdpZGdldC0+Y29sb3JbM10gICAgICA9IDAuNzg0MzEzNzI1NDkwMTk2MWY7
CisgICAgICAgICAgICB3aWRnZXQtPm1hdGNoVG9XaWRnZXQgPSBudWxscHRyOwogICAgICAgICB9
CiAgICAgICAgIG1TdGF0ZS5tT3ZlcmxheVdpZGdldHNbV2lkZ2V0SWQ6OlZ1bGthbldyaXRlRGVz
Y3JpcHRvclNldENvdW50XS5yZXNldCh3aWRnZXQpOwogICAgICAgICB7CkBAIC0yNjIsMTYgKzI3
MiwxNyBAQCB2b2lkIE92ZXJsYXk6OmluaXRPdmVybGF5V2lkZ2V0cygpCiAgICAgICAgICAgICBj
b25zdCBpbnQzMl90IHdpZHRoICA9IDQwICogKGtGb250R2x5cGhXaWR0aCA+PiBmb250U2l6ZSk7
CiAgICAgICAgICAgICBjb25zdCBpbnQzMl90IGhlaWdodCA9IChrRm9udEdseXBoSGVpZ2h0ID4+
IGZvbnRTaXplKTsKIAotICAgICAgICAgICAgd2lkZ2V0LT5kZXNjcmlwdGlvbi50eXBlICAgICAg
PSBXaWRnZXRUeXBlOjpUZXh0OwotICAgICAgICAgICAgd2lkZ2V0LT5kZXNjcmlwdGlvbi5mb250
U2l6ZSAgPSBmb250U2l6ZTsKLSAgICAgICAgICAgIHdpZGdldC0+ZGVzY3JpcHRpb24uY29vcmRz
WzBdID0gb2Zmc2V0WDsKLSAgICAgICAgICAgIHdpZGdldC0+ZGVzY3JpcHRpb24uY29vcmRzWzFd
ID0gc3RkOjptYXgob2Zmc2V0WSAtIGhlaWdodCwgMSk7Ci0gICAgICAgICAgICB3aWRnZXQtPmRl
c2NyaXB0aW9uLmNvb3Jkc1syXSA9IG9mZnNldFggKyB3aWR0aDsKLSAgICAgICAgICAgIHdpZGdl
dC0+ZGVzY3JpcHRpb24uY29vcmRzWzNdID0gb2Zmc2V0WTsKLSAgICAgICAgICAgIHdpZGdldC0+
ZGVzY3JpcHRpb24uY29sb3JbMF0gID0gMC4yOTQxMTc2NDcwNTg4MjM1NGY7Ci0gICAgICAgICAg
ICB3aWRnZXQtPmRlc2NyaXB0aW9uLmNvbG9yWzFdICA9IDAuNzg0MzEzNzI1NDkwMTk2MWY7Ci0g
ICAgICAgICAgICB3aWRnZXQtPmRlc2NyaXB0aW9uLmNvbG9yWzJdICA9IDAuMGY7Ci0gICAgICAg
ICAgICB3aWRnZXQtPmRlc2NyaXB0aW9uLmNvbG9yWzNdICA9IDEuMGY7CisgICAgICAgICAgICB3
aWRnZXQtPmRlc2NyaXB0aW9uLnR5cGUgICAgICAgICAgPSBXaWRnZXRUeXBlOjpUZXh0OworICAg
ICAgICAgICAgd2lkZ2V0LT5kZXNjcmlwdGlvbi5mb250U2l6ZSAgICAgID0gZm9udFNpemU7Cisg
ICAgICAgICAgICB3aWRnZXQtPmRlc2NyaXB0aW9uLmNvb3Jkc1swXSAgICAgPSBvZmZzZXRYOwor
ICAgICAgICAgICAgd2lkZ2V0LT5kZXNjcmlwdGlvbi5jb29yZHNbMV0gICAgID0gc3RkOjptYXgo
b2Zmc2V0WSAtIGhlaWdodCwgMSk7CisgICAgICAgICAgICB3aWRnZXQtPmRlc2NyaXB0aW9uLmNv
b3Jkc1syXSAgICAgPSBvZmZzZXRYICsgd2lkdGg7CisgICAgICAgICAgICB3aWRnZXQtPmRlc2Ny
aXB0aW9uLmNvb3Jkc1szXSAgICAgPSBvZmZzZXRZOworICAgICAgICAgICAgd2lkZ2V0LT5kZXNj
cmlwdGlvbi5jb2xvclswXSAgICAgID0gMC4yOTQxMTc2NDcwNTg4MjM1NGY7CisgICAgICAgICAg
ICB3aWRnZXQtPmRlc2NyaXB0aW9uLmNvbG9yWzFdICAgICAgPSAwLjc4NDMxMzcyNTQ5MDE5NjFm
OworICAgICAgICAgICAgd2lkZ2V0LT5kZXNjcmlwdGlvbi5jb2xvclsyXSAgICAgID0gMC4wZjsK
KyAgICAgICAgICAgIHdpZGdldC0+ZGVzY3JpcHRpb24uY29sb3JbM10gICAgICA9IDEuMGY7Cisg
ICAgICAgICAgICB3aWRnZXQtPmRlc2NyaXB0aW9uLm1hdGNoVG9XaWRnZXQgPSBudWxscHRyOwog
ICAgICAgICB9CiAgICAgfQogCkBAIC0yODQsMTYgKzI5NSwxNyBAQCB2b2lkIE92ZXJsYXk6Omlu
aXRPdmVybGF5V2lkZ2V0cygpCiAgICAgICAgICAgICBjb25zdCBpbnQzMl90IHdpZHRoICAgID0g
NiAqIHN0YXRpY19jYXN0PHVpbnQzMl90Pih3aWRnZXQtPnJ1bm5pbmdWYWx1ZXMuc2l6ZSgpKTsK
ICAgICAgICAgICAgIGNvbnN0IGludDMyX3QgaGVpZ2h0ICAgPSAxMDA7CiAKLSAgICAgICAgICAg
IHdpZGdldC0+dHlwZSAgICAgID0gV2lkZ2V0VHlwZTo6UnVubmluZ0dyYXBoOwotICAgICAgICAg
ICAgd2lkZ2V0LT5mb250U2l6ZSAgPSBmb250U2l6ZTsKLSAgICAgICAgICAgIHdpZGdldC0+Y29v
cmRzWzBdID0gb2Zmc2V0WDsKLSAgICAgICAgICAgIHdpZGdldC0+Y29vcmRzWzFdID0gb2Zmc2V0
WTsKLSAgICAgICAgICAgIHdpZGdldC0+Y29vcmRzWzJdID0gb2Zmc2V0WCArIHdpZHRoOwotICAg
ICAgICAgICAgd2lkZ2V0LT5jb29yZHNbM10gPSBvZmZzZXRZICsgaGVpZ2h0OwotICAgICAgICAg
ICAgd2lkZ2V0LT5jb2xvclswXSAgPSAxLjBmOwotICAgICAgICAgICAgd2lkZ2V0LT5jb2xvclsx
XSAgPSAwLjBmOwotICAgICAgICAgICAgd2lkZ2V0LT5jb2xvclsyXSAgPSAwLjI5NDExNzY0NzA1
ODgyMzU0ZjsKLSAgICAgICAgICAgIHdpZGdldC0+Y29sb3JbM10gID0gMC43ODQzMTM3MjU0OTAx
OTYxZjsKKyAgICAgICAgICAgIHdpZGdldC0+dHlwZSAgICAgICAgICA9IFdpZGdldFR5cGU6OlJ1
bm5pbmdHcmFwaDsKKyAgICAgICAgICAgIHdpZGdldC0+Zm9udFNpemUgICAgICA9IGZvbnRTaXpl
OworICAgICAgICAgICAgd2lkZ2V0LT5jb29yZHNbMF0gICAgID0gb2Zmc2V0WDsKKyAgICAgICAg
ICAgIHdpZGdldC0+Y29vcmRzWzFdICAgICA9IG9mZnNldFk7CisgICAgICAgICAgICB3aWRnZXQt
PmNvb3Jkc1syXSAgICAgPSBvZmZzZXRYICsgd2lkdGg7CisgICAgICAgICAgICB3aWRnZXQtPmNv
b3Jkc1szXSAgICAgPSBvZmZzZXRZICsgaGVpZ2h0OworICAgICAgICAgICAgd2lkZ2V0LT5jb2xv
clswXSAgICAgID0gMS4wZjsKKyAgICAgICAgICAgIHdpZGdldC0+Y29sb3JbMV0gICAgICA9IDAu
MGY7CisgICAgICAgICAgICB3aWRnZXQtPmNvbG9yWzJdICAgICAgPSAwLjI5NDExNzY0NzA1ODgy
MzU0ZjsKKyAgICAgICAgICAgIHdpZGdldC0+Y29sb3JbM10gICAgICA9IDAuNzg0MzEzNzI1NDkw
MTk2MWY7CisgICAgICAgICAgICB3aWRnZXQtPm1hdGNoVG9XaWRnZXQgPSBudWxscHRyOwogICAg
ICAgICB9CiAgICAgICAgIG1TdGF0ZS5tT3ZlcmxheVdpZGdldHNbV2lkZ2V0SWQ6OlZ1bGthbkRl
c2NyaXB0b3JTZXRBbGxvY2F0aW9uc10ucmVzZXQod2lkZ2V0KTsKICAgICAgICAgewpAQCAtMzA1
LDE2ICszMTcsMTcgQEAgdm9pZCBPdmVybGF5Ojppbml0T3ZlcmxheVdpZGdldHMoKQogICAgICAg
ICAgICAgY29uc3QgaW50MzJfdCB3aWR0aCAgPSA0MCAqIChrRm9udEdseXBoV2lkdGggPj4gZm9u
dFNpemUpOwogICAgICAgICAgICAgY29uc3QgaW50MzJfdCBoZWlnaHQgPSAoa0ZvbnRHbHlwaEhl
aWdodCA+PiBmb250U2l6ZSk7CiAKLSAgICAgICAgICAgIHdpZGdldC0+ZGVzY3JpcHRpb24udHlw
ZSAgICAgID0gV2lkZ2V0VHlwZTo6VGV4dDsKLSAgICAgICAgICAgIHdpZGdldC0+ZGVzY3JpcHRp
b24uZm9udFNpemUgID0gZm9udFNpemU7Ci0gICAgICAgICAgICB3aWRnZXQtPmRlc2NyaXB0aW9u
LmNvb3Jkc1swXSA9IG9mZnNldFg7Ci0gICAgICAgICAgICB3aWRnZXQtPmRlc2NyaXB0aW9uLmNv
b3Jkc1sxXSA9IHN0ZDo6bWF4KG9mZnNldFkgLSBoZWlnaHQsIDEpOwotICAgICAgICAgICAgd2lk
Z2V0LT5kZXNjcmlwdGlvbi5jb29yZHNbMl0gPSBvZmZzZXRYICsgd2lkdGg7Ci0gICAgICAgICAg
ICB3aWRnZXQtPmRlc2NyaXB0aW9uLmNvb3Jkc1szXSA9IG9mZnNldFk7Ci0gICAgICAgICAgICB3
aWRnZXQtPmRlc2NyaXB0aW9uLmNvbG9yWzBdICA9IDEuMGY7Ci0gICAgICAgICAgICB3aWRnZXQt
PmRlc2NyaXB0aW9uLmNvbG9yWzFdICA9IDAuMGY7Ci0gICAgICAgICAgICB3aWRnZXQtPmRlc2Ny
aXB0aW9uLmNvbG9yWzJdICA9IDAuMjk0MTE3NjQ3MDU4ODIzNTRmOwotICAgICAgICAgICAgd2lk
Z2V0LT5kZXNjcmlwdGlvbi5jb2xvclszXSAgPSAxLjBmOworICAgICAgICAgICAgd2lkZ2V0LT5k
ZXNjcmlwdGlvbi50eXBlICAgICAgICAgID0gV2lkZ2V0VHlwZTo6VGV4dDsKKyAgICAgICAgICAg
IHdpZGdldC0+ZGVzY3JpcHRpb24uZm9udFNpemUgICAgICA9IGZvbnRTaXplOworICAgICAgICAg
ICAgd2lkZ2V0LT5kZXNjcmlwdGlvbi5jb29yZHNbMF0gICAgID0gb2Zmc2V0WDsKKyAgICAgICAg
ICAgIHdpZGdldC0+ZGVzY3JpcHRpb24uY29vcmRzWzFdICAgICA9IHN0ZDo6bWF4KG9mZnNldFkg
LSBoZWlnaHQsIDEpOworICAgICAgICAgICAgd2lkZ2V0LT5kZXNjcmlwdGlvbi5jb29yZHNbMl0g
ICAgID0gb2Zmc2V0WCArIHdpZHRoOworICAgICAgICAgICAgd2lkZ2V0LT5kZXNjcmlwdGlvbi5j
b29yZHNbM10gICAgID0gb2Zmc2V0WTsKKyAgICAgICAgICAgIHdpZGdldC0+ZGVzY3JpcHRpb24u
Y29sb3JbMF0gICAgICA9IDEuMGY7CisgICAgICAgICAgICB3aWRnZXQtPmRlc2NyaXB0aW9uLmNv
bG9yWzFdICAgICAgPSAwLjBmOworICAgICAgICAgICAgd2lkZ2V0LT5kZXNjcmlwdGlvbi5jb2xv
clsyXSAgICAgID0gMC4yOTQxMTc2NDcwNTg4MjM1NGY7CisgICAgICAgICAgICB3aWRnZXQtPmRl
c2NyaXB0aW9uLmNvbG9yWzNdICAgICAgPSAxLjBmOworICAgICAgICAgICAgd2lkZ2V0LT5kZXNj
cmlwdGlvbi5tYXRjaFRvV2lkZ2V0ID0gbnVsbHB0cjsKICAgICAgICAgfQogICAgIH0KIApAQCAt
MzI3LDM3ICszNDAsMzkgQEAgdm9pZCBPdmVybGF5Ojppbml0T3ZlcmxheVdpZGdldHMoKQogICAg
ICAgICAgICAgY29uc3QgaW50MzJfdCB3aWR0aCAgICA9IDYgKiBzdGF0aWNfY2FzdDx1aW50MzJf
dD4od2lkZ2V0LT5ydW5uaW5nVmFsdWVzLnNpemUoKSk7CiAgICAgICAgICAgICBjb25zdCBpbnQz
Ml90IGhlaWdodCAgID0gMTAwOwogCi0gICAgICAgICAgICB3aWRnZXQtPnR5cGUgICAgICA9IFdp
ZGdldFR5cGU6OlJ1bm5pbmdHcmFwaDsKLSAgICAgICAgICAgIHdpZGdldC0+Zm9udFNpemUgID0g
Zm9udFNpemU7Ci0gICAgICAgICAgICB3aWRnZXQtPmNvb3Jkc1swXSA9IG9mZnNldFggLSB3aWR0
aDsKLSAgICAgICAgICAgIHdpZGdldC0+Y29vcmRzWzFdID0gb2Zmc2V0WTsKLSAgICAgICAgICAg
IHdpZGdldC0+Y29vcmRzWzJdID0gb2Zmc2V0WDsKLSAgICAgICAgICAgIHdpZGdldC0+Y29vcmRz
WzNdID0gb2Zmc2V0WSArIGhlaWdodDsKLSAgICAgICAgICAgIHdpZGdldC0+Y29sb3JbMF0gID0g
MS4wZjsKLSAgICAgICAgICAgIHdpZGdldC0+Y29sb3JbMV0gID0gMC4wZjsKLSAgICAgICAgICAg
IHdpZGdldC0+Y29sb3JbMl0gID0gMC4yOTQxMTc2NDcwNTg4MjM1NGY7Ci0gICAgICAgICAgICB3
aWRnZXQtPmNvbG9yWzNdICA9IDAuNzg0MzEzNzI1NDkwMTk2MWY7CisgICAgICAgICAgICB3aWRn
ZXQtPnR5cGUgICAgICAgICAgPSBXaWRnZXRUeXBlOjpSdW5uaW5nR3JhcGg7CisgICAgICAgICAg
ICB3aWRnZXQtPmZvbnRTaXplICAgICAgPSBmb250U2l6ZTsKKyAgICAgICAgICAgIHdpZGdldC0+
Y29vcmRzWzBdICAgICA9IG9mZnNldFggLSB3aWR0aDsKKyAgICAgICAgICAgIHdpZGdldC0+Y29v
cmRzWzFdICAgICA9IG9mZnNldFk7CisgICAgICAgICAgICB3aWRnZXQtPmNvb3Jkc1syXSAgICAg
PSBvZmZzZXRYOworICAgICAgICAgICAgd2lkZ2V0LT5jb29yZHNbM10gICAgID0gb2Zmc2V0WSAr
IGhlaWdodDsKKyAgICAgICAgICAgIHdpZGdldC0+Y29sb3JbMF0gICAgICA9IDEuMGY7CisgICAg
ICAgICAgICB3aWRnZXQtPmNvbG9yWzFdICAgICAgPSAwLjBmOworICAgICAgICAgICAgd2lkZ2V0
LT5jb2xvclsyXSAgICAgID0gMC4yOTQxMTc2NDcwNTg4MjM1NGY7CisgICAgICAgICAgICB3aWRn
ZXQtPmNvbG9yWzNdICAgICAgPSAwLjc4NDMxMzcyNTQ5MDE5NjFmOworICAgICAgICAgICAgd2lk
Z2V0LT5tYXRjaFRvV2lkZ2V0ID0gbnVsbHB0cjsKICAgICAgICAgfQotICAgICAgICBtU3RhdGUu
bU92ZXJsYXlXaWRnZXRzW1dpZGdldElkOjpWdWxrYW5TaGFkZXJCdWZmZXJEU0hpdFJhdGVdLnJl
c2V0KHdpZGdldCk7CisgICAgICAgIG1TdGF0ZS5tT3ZlcmxheVdpZGdldHNbV2lkZ2V0SWQ6OlZ1
bGthblNoYWRlclJlc291cmNlRFNIaXRSYXRlXS5yZXNldCh3aWRnZXQpOwogICAgICAgICB7CiAg
ICAgICAgICAgICBjb25zdCBpbnQzMl90IGZvbnRTaXplID0gR2V0Rm9udFNpemUoa0ZvbnRNaXBT
bWFsbCwga0xhcmdlRm9udCk7CiAgICAgICAgICAgICBjb25zdCBpbnQzMl90IG9mZnNldFggPQot
ICAgICAgICAgICAgICAgIG1TdGF0ZS5tT3ZlcmxheVdpZGdldHNbV2lkZ2V0SWQ6OlZ1bGthblNo
YWRlckJ1ZmZlckRTSGl0UmF0ZV0tPmNvb3Jkc1swXTsKKyAgICAgICAgICAgICAgICBtU3RhdGUu
bU92ZXJsYXlXaWRnZXRzW1dpZGdldElkOjpWdWxrYW5TaGFkZXJSZXNvdXJjZURTSGl0UmF0ZV0t
PmNvb3Jkc1swXTsKICAgICAgICAgICAgIGNvbnN0IGludDMyX3Qgb2Zmc2V0WSA9Ci0gICAgICAg
ICAgICAgICAgbVN0YXRlLm1PdmVybGF5V2lkZ2V0c1tXaWRnZXRJZDo6VnVsa2FuU2hhZGVyQnVm
ZmVyRFNIaXRSYXRlXS0+Y29vcmRzWzFdOworICAgICAgICAgICAgICAgIG1TdGF0ZS5tT3Zlcmxh
eVdpZGdldHNbV2lkZ2V0SWQ6OlZ1bGthblNoYWRlclJlc291cmNlRFNIaXRSYXRlXS0+Y29vcmRz
WzFdOwogICAgICAgICAgICAgY29uc3QgaW50MzJfdCB3aWR0aCAgPSA0MCAqIChrRm9udEdseXBo
V2lkdGggPj4gZm9udFNpemUpOwogICAgICAgICAgICAgY29uc3QgaW50MzJfdCBoZWlnaHQgPSAo
a0ZvbnRHbHlwaEhlaWdodCA+PiBmb250U2l6ZSk7CiAKLSAgICAgICAgICAgIHdpZGdldC0+ZGVz
Y3JpcHRpb24udHlwZSAgICAgID0gV2lkZ2V0VHlwZTo6VGV4dDsKLSAgICAgICAgICAgIHdpZGdl
dC0+ZGVzY3JpcHRpb24uZm9udFNpemUgID0gZm9udFNpemU7Ci0gICAgICAgICAgICB3aWRnZXQt
PmRlc2NyaXB0aW9uLmNvb3Jkc1swXSA9IG9mZnNldFg7Ci0gICAgICAgICAgICB3aWRnZXQtPmRl
c2NyaXB0aW9uLmNvb3Jkc1sxXSA9IHN0ZDo6bWF4KG9mZnNldFkgLSBoZWlnaHQsIDEpOwotICAg
ICAgICAgICAgd2lkZ2V0LT5kZXNjcmlwdGlvbi5jb29yZHNbMl0gPSBzdGQ6Om1pbihvZmZzZXRY
ICsgd2lkdGgsIC0xKTsKLSAgICAgICAgICAgIHdpZGdldC0+ZGVzY3JpcHRpb24uY29vcmRzWzNd
ID0gb2Zmc2V0WTsKLSAgICAgICAgICAgIHdpZGdldC0+ZGVzY3JpcHRpb24uY29sb3JbMF0gID0g
MS4wZjsKLSAgICAgICAgICAgIHdpZGdldC0+ZGVzY3JpcHRpb24uY29sb3JbMV0gID0gMC4wZjsK
LSAgICAgICAgICAgIHdpZGdldC0+ZGVzY3JpcHRpb24uY29sb3JbMl0gID0gMC4yOTQxMTc2NDcw
NTg4MjM1NGY7Ci0gICAgICAgICAgICB3aWRnZXQtPmRlc2NyaXB0aW9uLmNvbG9yWzNdICA9IDEu
MGY7CisgICAgICAgICAgICB3aWRnZXQtPmRlc2NyaXB0aW9uLnR5cGUgICAgICAgICAgPSBXaWRn
ZXRUeXBlOjpUZXh0OworICAgICAgICAgICAgd2lkZ2V0LT5kZXNjcmlwdGlvbi5mb250U2l6ZSAg
ICAgID0gZm9udFNpemU7CisgICAgICAgICAgICB3aWRnZXQtPmRlc2NyaXB0aW9uLmNvb3Jkc1sw
XSAgICAgPSBvZmZzZXRYOworICAgICAgICAgICAgd2lkZ2V0LT5kZXNjcmlwdGlvbi5jb29yZHNb
MV0gICAgID0gc3RkOjptYXgob2Zmc2V0WSAtIGhlaWdodCwgMSk7CisgICAgICAgICAgICB3aWRn
ZXQtPmRlc2NyaXB0aW9uLmNvb3Jkc1syXSAgICAgPSBzdGQ6Om1pbihvZmZzZXRYICsgd2lkdGgs
IC0xKTsKKyAgICAgICAgICAgIHdpZGdldC0+ZGVzY3JpcHRpb24uY29vcmRzWzNdICAgICA9IG9m
ZnNldFk7CisgICAgICAgICAgICB3aWRnZXQtPmRlc2NyaXB0aW9uLmNvbG9yWzBdICAgICAgPSAx
LjBmOworICAgICAgICAgICAgd2lkZ2V0LT5kZXNjcmlwdGlvbi5jb2xvclsxXSAgICAgID0gMC4w
ZjsKKyAgICAgICAgICAgIHdpZGdldC0+ZGVzY3JpcHRpb24uY29sb3JbMl0gICAgICA9IDAuMjk0
MTE3NjQ3MDU4ODIzNTRmOworICAgICAgICAgICAgd2lkZ2V0LT5kZXNjcmlwdGlvbi5jb2xvclsz
XSAgICAgID0gMS4wZjsKKyAgICAgICAgICAgIHdpZGdldC0+ZGVzY3JpcHRpb24ubWF0Y2hUb1dp
ZGdldCA9IG51bGxwdHI7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTM3MCwxNiArMzg1LDE3IEBA
IHZvaWQgT3ZlcmxheTo6aW5pdE92ZXJsYXlXaWRnZXRzKCkKICAgICAgICAgICAgIGNvbnN0IGlu
dDMyX3Qgd2lkdGggICAgPSA1ICogc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHdpZGdldC0+cnVubmlu
Z1ZhbHVlcy5zaXplKCkpOwogICAgICAgICAgICAgY29uc3QgaW50MzJfdCBoZWlnaHQgICA9IDEw
MDsKIAotICAgICAgICAgICAgd2lkZ2V0LT50eXBlICAgICAgPSBXaWRnZXRUeXBlOjpSdW5uaW5n
R3JhcGg7Ci0gICAgICAgICAgICB3aWRnZXQtPmZvbnRTaXplICA9IGZvbnRTaXplOwotICAgICAg
ICAgICAgd2lkZ2V0LT5jb29yZHNbMF0gPSBvZmZzZXRYIC0gd2lkdGg7Ci0gICAgICAgICAgICB3
aWRnZXQtPmNvb3Jkc1sxXSA9IG9mZnNldFkgLSBoZWlnaHQ7Ci0gICAgICAgICAgICB3aWRnZXQt
PmNvb3Jkc1syXSA9IG9mZnNldFg7Ci0gICAgICAgICAgICB3aWRnZXQtPmNvb3Jkc1szXSA9IG9m
ZnNldFk7Ci0gICAgICAgICAgICB3aWRnZXQtPmNvbG9yWzBdICA9IDAuMGY7Ci0gICAgICAgICAg
ICB3aWRnZXQtPmNvbG9yWzFdICA9IDAuNzg0MzEzNzI1NDkwMTk2MWY7Ci0gICAgICAgICAgICB3
aWRnZXQtPmNvbG9yWzJdICA9IDAuMjk0MTE3NjQ3MDU4ODIzNTRmOwotICAgICAgICAgICAgd2lk
Z2V0LT5jb2xvclszXSAgPSAwLjc4NDMxMzcyNTQ5MDE5NjFmOworICAgICAgICAgICAgd2lkZ2V0
LT50eXBlICAgICAgICAgID0gV2lkZ2V0VHlwZTo6UnVubmluZ0dyYXBoOworICAgICAgICAgICAg
d2lkZ2V0LT5mb250U2l6ZSAgICAgID0gZm9udFNpemU7CisgICAgICAgICAgICB3aWRnZXQtPmNv
b3Jkc1swXSAgICAgPSBvZmZzZXRYIC0gd2lkdGg7CisgICAgICAgICAgICB3aWRnZXQtPmNvb3Jk
c1sxXSAgICAgPSBvZmZzZXRZIC0gaGVpZ2h0OworICAgICAgICAgICAgd2lkZ2V0LT5jb29yZHNb
Ml0gICAgID0gb2Zmc2V0WDsKKyAgICAgICAgICAgIHdpZGdldC0+Y29vcmRzWzNdICAgICA9IG9m
ZnNldFk7CisgICAgICAgICAgICB3aWRnZXQtPmNvbG9yWzBdICAgICAgPSAwLjBmOworICAgICAg
ICAgICAgd2lkZ2V0LT5jb2xvclsxXSAgICAgID0gMC43ODQzMTM3MjU0OTAxOTYxZjsKKyAgICAg
ICAgICAgIHdpZGdldC0+Y29sb3JbMl0gICAgICA9IDAuMjk0MTE3NjQ3MDU4ODIzNTRmOworICAg
ICAgICAgICAgd2lkZ2V0LT5jb2xvclszXSAgICAgID0gMC43ODQzMTM3MjU0OTAxOTYxZjsKKyAg
ICAgICAgICAgIHdpZGdldC0+bWF0Y2hUb1dpZGdldCA9IG51bGxwdHI7CiAgICAgICAgIH0KICAg
ICAgICAgbVN0YXRlLm1PdmVybGF5V2lkZ2V0c1tXaWRnZXRJZDo6VnVsa2FuRHluYW1pY0J1ZmZl
ckFsbG9jYXRpb25zXS5yZXNldCh3aWRnZXQpOwogICAgICAgICB7CkBAIC0zOTEsMTYgKzQwNywx
NyBAQCB2b2lkIE92ZXJsYXk6OmluaXRPdmVybGF5V2lkZ2V0cygpCiAgICAgICAgICAgICBjb25z
dCBpbnQzMl90IHdpZHRoICA9IDQwICogKGtGb250R2x5cGhXaWR0aCA+PiBmb250U2l6ZSk7CiAg
ICAgICAgICAgICBjb25zdCBpbnQzMl90IGhlaWdodCA9IChrRm9udEdseXBoSGVpZ2h0ID4+IGZv
bnRTaXplKTsKIAotICAgICAgICAgICAgd2lkZ2V0LT5kZXNjcmlwdGlvbi50eXBlICAgICAgPSBX
aWRnZXRUeXBlOjpUZXh0OwotICAgICAgICAgICAgd2lkZ2V0LT5kZXNjcmlwdGlvbi5mb250U2l6
ZSAgPSBmb250U2l6ZTsKLSAgICAgICAgICAgIHdpZGdldC0+ZGVzY3JpcHRpb24uY29vcmRzWzBd
ID0gb2Zmc2V0WCAtIHdpZHRoOwotICAgICAgICAgICAgd2lkZ2V0LT5kZXNjcmlwdGlvbi5jb29y
ZHNbMV0gPSBvZmZzZXRZIC0gaGVpZ2h0OwotICAgICAgICAgICAgd2lkZ2V0LT5kZXNjcmlwdGlv
bi5jb29yZHNbMl0gPSBvZmZzZXRYOwotICAgICAgICAgICAgd2lkZ2V0LT5kZXNjcmlwdGlvbi5j
b29yZHNbM10gPSBvZmZzZXRZOwotICAgICAgICAgICAgd2lkZ2V0LT5kZXNjcmlwdGlvbi5jb2xv
clswXSAgPSAwLjBmOwotICAgICAgICAgICAgd2lkZ2V0LT5kZXNjcmlwdGlvbi5jb2xvclsxXSAg
PSAwLjc4NDMxMzcyNTQ5MDE5NjFmOwotICAgICAgICAgICAgd2lkZ2V0LT5kZXNjcmlwdGlvbi5j
b2xvclsyXSAgPSAwLjI5NDExNzY0NzA1ODgyMzU0ZjsKLSAgICAgICAgICAgIHdpZGdldC0+ZGVz
Y3JpcHRpb24uY29sb3JbM10gID0gMS4wZjsKKyAgICAgICAgICAgIHdpZGdldC0+ZGVzY3JpcHRp
b24udHlwZSAgICAgICAgICA9IFdpZGdldFR5cGU6OlRleHQ7CisgICAgICAgICAgICB3aWRnZXQt
PmRlc2NyaXB0aW9uLmZvbnRTaXplICAgICAgPSBmb250U2l6ZTsKKyAgICAgICAgICAgIHdpZGdl
dC0+ZGVzY3JpcHRpb24uY29vcmRzWzBdICAgICA9IG9mZnNldFggLSB3aWR0aDsKKyAgICAgICAg
ICAgIHdpZGdldC0+ZGVzY3JpcHRpb24uY29vcmRzWzFdICAgICA9IG9mZnNldFkgLSBoZWlnaHQ7
CisgICAgICAgICAgICB3aWRnZXQtPmRlc2NyaXB0aW9uLmNvb3Jkc1syXSAgICAgPSBvZmZzZXRY
OworICAgICAgICAgICAgd2lkZ2V0LT5kZXNjcmlwdGlvbi5jb29yZHNbM10gICAgID0gb2Zmc2V0
WTsKKyAgICAgICAgICAgIHdpZGdldC0+ZGVzY3JpcHRpb24uY29sb3JbMF0gICAgICA9IDAuMGY7
CisgICAgICAgICAgICB3aWRnZXQtPmRlc2NyaXB0aW9uLmNvbG9yWzFdICAgICAgPSAwLjc4NDMx
MzcyNTQ5MDE5NjFmOworICAgICAgICAgICAgd2lkZ2V0LT5kZXNjcmlwdGlvbi5jb2xvclsyXSAg
ICAgID0gMC4yOTQxMTc2NDcwNTg4MjM1NGY7CisgICAgICAgICAgICB3aWRnZXQtPmRlc2NyaXB0
aW9uLmNvbG9yWzNdICAgICAgPSAxLjBmOworICAgICAgICAgICAgd2lkZ2V0LT5kZXNjcmlwdGlv
bi5tYXRjaFRvV2lkZ2V0ID0gbnVsbHB0cjsKICAgICAgICAgfQogICAgIH0KIApAQCAtNDEzLDE2
ICs0MzAsMTcgQEAgdm9pZCBPdmVybGF5Ojppbml0T3ZlcmxheVdpZGdldHMoKQogICAgICAgICAg
ICAgY29uc3QgaW50MzJfdCB3aWR0aCAgICA9IDUgKiBzdGF0aWNfY2FzdDx1aW50MzJfdD4od2lk
Z2V0LT5ydW5uaW5nVmFsdWVzLnNpemUoKSk7CiAgICAgICAgICAgICBjb25zdCBpbnQzMl90IGhl
aWdodCAgID0gMTAwOwogCi0gICAgICAgICAgICB3aWRnZXQtPnR5cGUgICAgICA9IFdpZGdldFR5
cGU6OlJ1bm5pbmdHcmFwaDsKLSAgICAgICAgICAgIHdpZGdldC0+Zm9udFNpemUgID0gZm9udFNp
emU7Ci0gICAgICAgICAgICB3aWRnZXQtPmNvb3Jkc1swXSA9IG9mZnNldFg7Ci0gICAgICAgICAg
ICB3aWRnZXQtPmNvb3Jkc1sxXSA9IG9mZnNldFk7Ci0gICAgICAgICAgICB3aWRnZXQtPmNvb3Jk
c1syXSA9IG9mZnNldFggKyB3aWR0aDsKLSAgICAgICAgICAgIHdpZGdldC0+Y29vcmRzWzNdID0g
b2Zmc2V0WSArIGhlaWdodDsKLSAgICAgICAgICAgIHdpZGdldC0+Y29sb3JbMF0gID0gMC4wZjsK
LSAgICAgICAgICAgIHdpZGdldC0+Y29sb3JbMV0gID0gMC43ODQzMTM3MjU0OTAxOTYxZjsKLSAg
ICAgICAgICAgIHdpZGdldC0+Y29sb3JbMl0gID0gMC43MjU0OTAxOTYwNzg0MzEzZjsKLSAgICAg
ICAgICAgIHdpZGdldC0+Y29sb3JbM10gID0gMC43ODQzMTM3MjU0OTAxOTYxZjsKKyAgICAgICAg
ICAgIHdpZGdldC0+dHlwZSAgICAgICAgICA9IFdpZGdldFR5cGU6OlJ1bm5pbmdHcmFwaDsKKyAg
ICAgICAgICAgIHdpZGdldC0+Zm9udFNpemUgICAgICA9IGZvbnRTaXplOworICAgICAgICAgICAg
d2lkZ2V0LT5jb29yZHNbMF0gICAgID0gb2Zmc2V0WDsKKyAgICAgICAgICAgIHdpZGdldC0+Y29v
cmRzWzFdICAgICA9IG9mZnNldFk7CisgICAgICAgICAgICB3aWRnZXQtPmNvb3Jkc1syXSAgICAg
PSBvZmZzZXRYICsgd2lkdGg7CisgICAgICAgICAgICB3aWRnZXQtPmNvb3Jkc1szXSAgICAgPSBv
ZmZzZXRZICsgaGVpZ2h0OworICAgICAgICAgICAgd2lkZ2V0LT5jb2xvclswXSAgICAgID0gMC4w
ZjsKKyAgICAgICAgICAgIHdpZGdldC0+Y29sb3JbMV0gICAgICA9IDAuNzg0MzEzNzI1NDkwMTk2
MWY7CisgICAgICAgICAgICB3aWRnZXQtPmNvbG9yWzJdICAgICAgPSAwLjcyNTQ5MDE5NjA3ODQz
MTNmOworICAgICAgICAgICAgd2lkZ2V0LT5jb2xvclszXSAgICAgID0gMC43ODQzMTM3MjU0OTAx
OTYxZjsKKyAgICAgICAgICAgIHdpZGdldC0+bWF0Y2hUb1dpZGdldCA9IG51bGxwdHI7CiAgICAg
ICAgIH0KICAgICAgICAgbVN0YXRlLm1PdmVybGF5V2lkZ2V0c1tXaWRnZXRJZDo6VnVsa2FuRGVz
Y3JpcHRvckNhY2hlU2l6ZV0ucmVzZXQod2lkZ2V0KTsKICAgICAgICAgewpAQCAtNDM0LDE2ICs0
NTIsMTcgQEAgdm9pZCBPdmVybGF5Ojppbml0T3ZlcmxheVdpZGdldHMoKQogICAgICAgICAgICAg
Y29uc3QgaW50MzJfdCB3aWR0aCAgPSA5MCAqIChrRm9udEdseXBoV2lkdGggPj4gZm9udFNpemUp
OwogICAgICAgICAgICAgY29uc3QgaW50MzJfdCBoZWlnaHQgPSAoa0ZvbnRHbHlwaEhlaWdodCA+
PiBmb250U2l6ZSk7CiAKLSAgICAgICAgICAgIHdpZGdldC0+ZGVzY3JpcHRpb24udHlwZSAgICAg
ID0gV2lkZ2V0VHlwZTo6VGV4dDsKLSAgICAgICAgICAgIHdpZGdldC0+ZGVzY3JpcHRpb24uZm9u
dFNpemUgID0gZm9udFNpemU7Ci0gICAgICAgICAgICB3aWRnZXQtPmRlc2NyaXB0aW9uLmNvb3Jk
c1swXSA9IG9mZnNldFg7Ci0gICAgICAgICAgICB3aWRnZXQtPmRlc2NyaXB0aW9uLmNvb3Jkc1sx
XSA9IHN0ZDo6bWF4KG9mZnNldFkgLSBoZWlnaHQsIDEpOwotICAgICAgICAgICAgd2lkZ2V0LT5k
ZXNjcmlwdGlvbi5jb29yZHNbMl0gPSBvZmZzZXRYICsgd2lkdGg7Ci0gICAgICAgICAgICB3aWRn
ZXQtPmRlc2NyaXB0aW9uLmNvb3Jkc1szXSA9IG9mZnNldFk7Ci0gICAgICAgICAgICB3aWRnZXQt
PmRlc2NyaXB0aW9uLmNvbG9yWzBdICA9IDAuMGY7Ci0gICAgICAgICAgICB3aWRnZXQtPmRlc2Ny
aXB0aW9uLmNvbG9yWzFdICA9IDAuNzg0MzEzNzI1NDkwMTk2MWY7Ci0gICAgICAgICAgICB3aWRn
ZXQtPmRlc2NyaXB0aW9uLmNvbG9yWzJdICA9IDAuMjk0MTE3NjQ3MDU4ODIzNTRmOwotICAgICAg
ICAgICAgd2lkZ2V0LT5kZXNjcmlwdGlvbi5jb2xvclszXSAgPSAxLjBmOworICAgICAgICAgICAg
d2lkZ2V0LT5kZXNjcmlwdGlvbi50eXBlICAgICAgICAgID0gV2lkZ2V0VHlwZTo6VGV4dDsKKyAg
ICAgICAgICAgIHdpZGdldC0+ZGVzY3JpcHRpb24uZm9udFNpemUgICAgICA9IGZvbnRTaXplOwor
ICAgICAgICAgICAgd2lkZ2V0LT5kZXNjcmlwdGlvbi5jb29yZHNbMF0gICAgID0gb2Zmc2V0WDsK
KyAgICAgICAgICAgIHdpZGdldC0+ZGVzY3JpcHRpb24uY29vcmRzWzFdICAgICA9IHN0ZDo6bWF4
KG9mZnNldFkgLSBoZWlnaHQsIDEpOworICAgICAgICAgICAgd2lkZ2V0LT5kZXNjcmlwdGlvbi5j
b29yZHNbMl0gICAgID0gb2Zmc2V0WCArIHdpZHRoOworICAgICAgICAgICAgd2lkZ2V0LT5kZXNj
cmlwdGlvbi5jb29yZHNbM10gICAgID0gb2Zmc2V0WTsKKyAgICAgICAgICAgIHdpZGdldC0+ZGVz
Y3JpcHRpb24uY29sb3JbMF0gICAgICA9IDAuMGY7CisgICAgICAgICAgICB3aWRnZXQtPmRlc2Ny
aXB0aW9uLmNvbG9yWzFdICAgICAgPSAwLjc4NDMxMzcyNTQ5MDE5NjFmOworICAgICAgICAgICAg
d2lkZ2V0LT5kZXNjcmlwdGlvbi5jb2xvclsyXSAgICAgID0gMC4yOTQxMTc2NDcwNTg4MjM1NGY7
CisgICAgICAgICAgICB3aWRnZXQtPmRlc2NyaXB0aW9uLmNvbG9yWzNdICAgICAgPSAxLjBmOwor
ICAgICAgICAgICAgd2lkZ2V0LT5kZXNjcmlwdGlvbi5tYXRjaFRvV2lkZ2V0ID0gbnVsbHB0cjsK
ICAgICAgICAgfQogICAgIH0KIApAQCAtNDU2LDE2ICs0NzUsMTcgQEAgdm9pZCBPdmVybGF5Ojpp
bml0T3ZlcmxheVdpZGdldHMoKQogICAgICAgICAgICAgY29uc3QgaW50MzJfdCB3aWR0aCAgICA9
IDUgKiBzdGF0aWNfY2FzdDx1aW50MzJfdD4od2lkZ2V0LT5ydW5uaW5nVmFsdWVzLnNpemUoKSk7
CiAgICAgICAgICAgICBjb25zdCBpbnQzMl90IGhlaWdodCAgID0gMTAwOwogCi0gICAgICAgICAg
ICB3aWRnZXQtPnR5cGUgICAgICA9IFdpZGdldFR5cGU6OlJ1bm5pbmdHcmFwaDsKLSAgICAgICAg
ICAgIHdpZGdldC0+Zm9udFNpemUgID0gZm9udFNpemU7Ci0gICAgICAgICAgICB3aWRnZXQtPmNv
b3Jkc1swXSA9IG9mZnNldFg7Ci0gICAgICAgICAgICB3aWRnZXQtPmNvb3Jkc1sxXSA9IG9mZnNl
dFk7Ci0gICAgICAgICAgICB3aWRnZXQtPmNvb3Jkc1syXSA9IG9mZnNldFggKyB3aWR0aDsKLSAg
ICAgICAgICAgIHdpZGdldC0+Y29vcmRzWzNdID0gb2Zmc2V0WSArIGhlaWdodDsKLSAgICAgICAg
ICAgIHdpZGdldC0+Y29sb3JbMF0gID0gMC4wZjsKLSAgICAgICAgICAgIHdpZGdldC0+Y29sb3Jb
MV0gID0gMC43ODQzMTM3MjU0OTAxOTYxZjsKLSAgICAgICAgICAgIHdpZGdldC0+Y29sb3JbMl0g
ID0gMC4yOTQxMTc2NDcwNTg4MjM1NGY7Ci0gICAgICAgICAgICB3aWRnZXQtPmNvbG9yWzNdICA9
IDAuNzg0MzEzNzI1NDkwMTk2MWY7CisgICAgICAgICAgICB3aWRnZXQtPnR5cGUgICAgICAgICAg
PSBXaWRnZXRUeXBlOjpSdW5uaW5nR3JhcGg7CisgICAgICAgICAgICB3aWRnZXQtPmZvbnRTaXpl
ICAgICAgPSBmb250U2l6ZTsKKyAgICAgICAgICAgIHdpZGdldC0+Y29vcmRzWzBdICAgICA9IG9m
ZnNldFg7CisgICAgICAgICAgICB3aWRnZXQtPmNvb3Jkc1sxXSAgICAgPSBvZmZzZXRZOworICAg
ICAgICAgICAgd2lkZ2V0LT5jb29yZHNbMl0gICAgID0gb2Zmc2V0WCArIHdpZHRoOworICAgICAg
ICAgICAgd2lkZ2V0LT5jb29yZHNbM10gICAgID0gb2Zmc2V0WSArIGhlaWdodDsKKyAgICAgICAg
ICAgIHdpZGdldC0+Y29sb3JbMF0gICAgICA9IDAuMGY7CisgICAgICAgICAgICB3aWRnZXQtPmNv
bG9yWzFdICAgICAgPSAwLjc4NDMxMzcyNTQ5MDE5NjFmOworICAgICAgICAgICAgd2lkZ2V0LT5j
b2xvclsyXSAgICAgID0gMC4yOTQxMTc2NDcwNTg4MjM1NGY7CisgICAgICAgICAgICB3aWRnZXQt
PmNvbG9yWzNdICAgICAgPSAwLjc4NDMxMzcyNTQ5MDE5NjFmOworICAgICAgICAgICAgd2lkZ2V0
LT5tYXRjaFRvV2lkZ2V0ID0gbnVsbHB0cjsKICAgICAgICAgfQogICAgICAgICBtU3RhdGUubU92
ZXJsYXlXaWRnZXRzW1dpZGdldElkOjpWdWxrYW5UZXh0dXJlRGVzY3JpcHRvckNhY2hlU2l6ZV0u
cmVzZXQod2lkZ2V0KTsKICAgICAgICAgewpAQCAtNDc3LDE2ICs0OTcsMTcgQEAgdm9pZCBPdmVy
bGF5Ojppbml0T3ZlcmxheVdpZGdldHMoKQogICAgICAgICAgICAgY29uc3QgaW50MzJfdCB3aWR0
aCAgPSA5MCAqIChrRm9udEdseXBoV2lkdGggPj4gZm9udFNpemUpOwogICAgICAgICAgICAgY29u
c3QgaW50MzJfdCBoZWlnaHQgPSAoa0ZvbnRHbHlwaEhlaWdodCA+PiBmb250U2l6ZSk7CiAKLSAg
ICAgICAgICAgIHdpZGdldC0+ZGVzY3JpcHRpb24udHlwZSAgICAgID0gV2lkZ2V0VHlwZTo6VGV4
dDsKLSAgICAgICAgICAgIHdpZGdldC0+ZGVzY3JpcHRpb24uZm9udFNpemUgID0gZm9udFNpemU7
Ci0gICAgICAgICAgICB3aWRnZXQtPmRlc2NyaXB0aW9uLmNvb3Jkc1swXSA9IG9mZnNldFg7Ci0g
ICAgICAgICAgICB3aWRnZXQtPmRlc2NyaXB0aW9uLmNvb3Jkc1sxXSA9IHN0ZDo6bWF4KG9mZnNl
dFkgLSBoZWlnaHQsIDEpOwotICAgICAgICAgICAgd2lkZ2V0LT5kZXNjcmlwdGlvbi5jb29yZHNb
Ml0gPSBvZmZzZXRYICsgd2lkdGg7Ci0gICAgICAgICAgICB3aWRnZXQtPmRlc2NyaXB0aW9uLmNv
b3Jkc1szXSA9IG9mZnNldFk7Ci0gICAgICAgICAgICB3aWRnZXQtPmRlc2NyaXB0aW9uLmNvbG9y
WzBdICA9IDAuMGY7Ci0gICAgICAgICAgICB3aWRnZXQtPmRlc2NyaXB0aW9uLmNvbG9yWzFdICA9
IDAuNzg0MzEzNzI1NDkwMTk2MWY7Ci0gICAgICAgICAgICB3aWRnZXQtPmRlc2NyaXB0aW9uLmNv
bG9yWzJdICA9IDAuMjk0MTE3NjQ3MDU4ODIzNTRmOwotICAgICAgICAgICAgd2lkZ2V0LT5kZXNj
cmlwdGlvbi5jb2xvclszXSAgPSAxLjBmOworICAgICAgICAgICAgd2lkZ2V0LT5kZXNjcmlwdGlv
bi50eXBlICAgICAgICAgID0gV2lkZ2V0VHlwZTo6VGV4dDsKKyAgICAgICAgICAgIHdpZGdldC0+
ZGVzY3JpcHRpb24uZm9udFNpemUgICAgICA9IGZvbnRTaXplOworICAgICAgICAgICAgd2lkZ2V0
LT5kZXNjcmlwdGlvbi5jb29yZHNbMF0gICAgID0gb2Zmc2V0WDsKKyAgICAgICAgICAgIHdpZGdl
dC0+ZGVzY3JpcHRpb24uY29vcmRzWzFdICAgICA9IHN0ZDo6bWF4KG9mZnNldFkgLSBoZWlnaHQs
IDEpOworICAgICAgICAgICAgd2lkZ2V0LT5kZXNjcmlwdGlvbi5jb29yZHNbMl0gICAgID0gb2Zm
c2V0WCArIHdpZHRoOworICAgICAgICAgICAgd2lkZ2V0LT5kZXNjcmlwdGlvbi5jb29yZHNbM10g
ICAgID0gb2Zmc2V0WTsKKyAgICAgICAgICAgIHdpZGdldC0+ZGVzY3JpcHRpb24uY29sb3JbMF0g
ICAgICA9IDAuMGY7CisgICAgICAgICAgICB3aWRnZXQtPmRlc2NyaXB0aW9uLmNvbG9yWzFdICAg
ICAgPSAwLjc4NDMxMzcyNTQ5MDE5NjFmOworICAgICAgICAgICAgd2lkZ2V0LT5kZXNjcmlwdGlv
bi5jb2xvclsyXSAgICAgID0gMC4yOTQxMTc2NDcwNTg4MjM1NGY7CisgICAgICAgICAgICB3aWRn
ZXQtPmRlc2NyaXB0aW9uLmNvbG9yWzNdICAgICAgPSAxLjBmOworICAgICAgICAgICAgd2lkZ2V0
LT5kZXNjcmlwdGlvbi5tYXRjaFRvV2lkZ2V0ID0gbnVsbHB0cjsKICAgICAgICAgfQogICAgIH0K
IApAQCAtNDk5LDE2ICs1MjAsMTcgQEAgdm9pZCBPdmVybGF5Ojppbml0T3ZlcmxheVdpZGdldHMo
KQogICAgICAgICAgICAgY29uc3QgaW50MzJfdCB3aWR0aCAgICA9IDUgKiBzdGF0aWNfY2FzdDx1
aW50MzJfdD4od2lkZ2V0LT5ydW5uaW5nVmFsdWVzLnNpemUoKSk7CiAgICAgICAgICAgICBjb25z
dCBpbnQzMl90IGhlaWdodCAgID0gMTAwOwogCi0gICAgICAgICAgICB3aWRnZXQtPnR5cGUgICAg
ICA9IFdpZGdldFR5cGU6OlJ1bm5pbmdHcmFwaDsKLSAgICAgICAgICAgIHdpZGdldC0+Zm9udFNp
emUgID0gZm9udFNpemU7Ci0gICAgICAgICAgICB3aWRnZXQtPmNvb3Jkc1swXSA9IG9mZnNldFg7
Ci0gICAgICAgICAgICB3aWRnZXQtPmNvb3Jkc1sxXSA9IG9mZnNldFk7Ci0gICAgICAgICAgICB3
aWRnZXQtPmNvb3Jkc1syXSA9IG9mZnNldFggKyB3aWR0aDsKLSAgICAgICAgICAgIHdpZGdldC0+
Y29vcmRzWzNdID0gb2Zmc2V0WSArIGhlaWdodDsKLSAgICAgICAgICAgIHdpZGdldC0+Y29sb3Jb
MF0gID0gMC4wZjsKLSAgICAgICAgICAgIHdpZGdldC0+Y29sb3JbMV0gID0gMC43ODQzMTM3MjU0
OTAxOTYxZjsKLSAgICAgICAgICAgIHdpZGdldC0+Y29sb3JbMl0gID0gMS4xNzY0NzA1ODgyMzUy
OTQyZjsKLSAgICAgICAgICAgIHdpZGdldC0+Y29sb3JbM10gID0gMC43ODQzMTM3MjU0OTAxOTYx
ZjsKKyAgICAgICAgICAgIHdpZGdldC0+dHlwZSAgICAgICAgICA9IFdpZGdldFR5cGU6OlJ1bm5p
bmdHcmFwaDsKKyAgICAgICAgICAgIHdpZGdldC0+Zm9udFNpemUgICAgICA9IGZvbnRTaXplOwor
ICAgICAgICAgICAgd2lkZ2V0LT5jb29yZHNbMF0gICAgID0gb2Zmc2V0WDsKKyAgICAgICAgICAg
IHdpZGdldC0+Y29vcmRzWzFdICAgICA9IG9mZnNldFk7CisgICAgICAgICAgICB3aWRnZXQtPmNv
b3Jkc1syXSAgICAgPSBvZmZzZXRYICsgd2lkdGg7CisgICAgICAgICAgICB3aWRnZXQtPmNvb3Jk
c1szXSAgICAgPSBvZmZzZXRZICsgaGVpZ2h0OworICAgICAgICAgICAgd2lkZ2V0LT5jb2xvclsw
XSAgICAgID0gMC4wZjsKKyAgICAgICAgICAgIHdpZGdldC0+Y29sb3JbMV0gICAgICA9IDAuNzg0
MzEzNzI1NDkwMTk2MWY7CisgICAgICAgICAgICB3aWRnZXQtPmNvbG9yWzJdICAgICAgPSAxLjBm
OworICAgICAgICAgICAgd2lkZ2V0LT5jb2xvclszXSAgICAgID0gMC43ODQzMTM3MjU0OTAxOTYx
ZjsKKyAgICAgICAgICAgIHdpZGdldC0+bWF0Y2hUb1dpZGdldCA9IG51bGxwdHI7CiAgICAgICAg
IH0KICAgICAgICAgbVN0YXRlLm1PdmVybGF5V2lkZ2V0c1tXaWRnZXRJZDo6VnVsa2FuVW5pZm9y
bURlc2NyaXB0b3JDYWNoZVNpemVdLnJlc2V0KHdpZGdldCk7CiAgICAgICAgIHsKQEAgLTUyMCwx
NiArNTQyLDE3IEBAIHZvaWQgT3ZlcmxheTo6aW5pdE92ZXJsYXlXaWRnZXRzKCkKICAgICAgICAg
ICAgIGNvbnN0IGludDMyX3Qgd2lkdGggID0gOTAgKiAoa0ZvbnRHbHlwaFdpZHRoID4+IGZvbnRT
aXplKTsKICAgICAgICAgICAgIGNvbnN0IGludDMyX3QgaGVpZ2h0ID0gKGtGb250R2x5cGhIZWln
aHQgPj4gZm9udFNpemUpOwogCi0gICAgICAgICAgICB3aWRnZXQtPmRlc2NyaXB0aW9uLnR5cGUg
ICAgICA9IFdpZGdldFR5cGU6OlRleHQ7Ci0gICAgICAgICAgICB3aWRnZXQtPmRlc2NyaXB0aW9u
LmZvbnRTaXplICA9IGZvbnRTaXplOwotICAgICAgICAgICAgd2lkZ2V0LT5kZXNjcmlwdGlvbi5j
b29yZHNbMF0gPSBvZmZzZXRYOwotICAgICAgICAgICAgd2lkZ2V0LT5kZXNjcmlwdGlvbi5jb29y
ZHNbMV0gPSBzdGQ6Om1heChvZmZzZXRZIC0gaGVpZ2h0LCAxKTsKLSAgICAgICAgICAgIHdpZGdl
dC0+ZGVzY3JpcHRpb24uY29vcmRzWzJdID0gb2Zmc2V0WCArIHdpZHRoOwotICAgICAgICAgICAg
d2lkZ2V0LT5kZXNjcmlwdGlvbi5jb29yZHNbM10gPSBvZmZzZXRZOwotICAgICAgICAgICAgd2lk
Z2V0LT5kZXNjcmlwdGlvbi5jb2xvclswXSAgPSAwLjBmOwotICAgICAgICAgICAgd2lkZ2V0LT5k
ZXNjcmlwdGlvbi5jb2xvclsxXSAgPSAwLjc4NDMxMzcyNTQ5MDE5NjFmOwotICAgICAgICAgICAg
d2lkZ2V0LT5kZXNjcmlwdGlvbi5jb2xvclsyXSAgPSAwLjI5NDExNzY0NzA1ODgyMzU0ZjsKLSAg
ICAgICAgICAgIHdpZGdldC0+ZGVzY3JpcHRpb24uY29sb3JbM10gID0gMS4wZjsKKyAgICAgICAg
ICAgIHdpZGdldC0+ZGVzY3JpcHRpb24udHlwZSAgICAgICAgICA9IFdpZGdldFR5cGU6OlRleHQ7
CisgICAgICAgICAgICB3aWRnZXQtPmRlc2NyaXB0aW9uLmZvbnRTaXplICAgICAgPSBmb250U2l6
ZTsKKyAgICAgICAgICAgIHdpZGdldC0+ZGVzY3JpcHRpb24uY29vcmRzWzBdICAgICA9IG9mZnNl
dFg7CisgICAgICAgICAgICB3aWRnZXQtPmRlc2NyaXB0aW9uLmNvb3Jkc1sxXSAgICAgPSBzdGQ6
Om1heChvZmZzZXRZIC0gaGVpZ2h0LCAxKTsKKyAgICAgICAgICAgIHdpZGdldC0+ZGVzY3JpcHRp
b24uY29vcmRzWzJdICAgICA9IG9mZnNldFggKyB3aWR0aDsKKyAgICAgICAgICAgIHdpZGdldC0+
ZGVzY3JpcHRpb24uY29vcmRzWzNdICAgICA9IG9mZnNldFk7CisgICAgICAgICAgICB3aWRnZXQt
PmRlc2NyaXB0aW9uLmNvbG9yWzBdICAgICAgPSAwLjBmOworICAgICAgICAgICAgd2lkZ2V0LT5k
ZXNjcmlwdGlvbi5jb2xvclsxXSAgICAgID0gMC43ODQzMTM3MjU0OTAxOTYxZjsKKyAgICAgICAg
ICAgIHdpZGdldC0+ZGVzY3JpcHRpb24uY29sb3JbMl0gICAgICA9IDAuMjk0MTE3NjQ3MDU4ODIz
NTRmOworICAgICAgICAgICAgd2lkZ2V0LT5kZXNjcmlwdGlvbi5jb2xvclszXSAgICAgID0gMS4w
ZjsKKyAgICAgICAgICAgIHdpZGdldC0+ZGVzY3JpcHRpb24ubWF0Y2hUb1dpZGdldCA9IG51bGxw
dHI7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTU0MiwxOCArNTY1LDExMiBAQCB2b2lkIE92ZXJs
YXk6OmluaXRPdmVybGF5V2lkZ2V0cygpCiAgICAgICAgICAgICBjb25zdCBpbnQzMl90IHdpZHRo
ICAgID0gMzAgKiAoa0ZvbnRHbHlwaFdpZHRoID4+IGZvbnRTaXplKTsKICAgICAgICAgICAgIGNv
bnN0IGludDMyX3QgaGVpZ2h0ICAgPSAoa0ZvbnRHbHlwaEhlaWdodCA+PiBmb250U2l6ZSk7CiAK
LSAgICAgICAgICAgIHdpZGdldC0+dHlwZSAgICAgID0gV2lkZ2V0VHlwZTo6Q291bnQ7CisgICAg
ICAgICAgICB3aWRnZXQtPnR5cGUgICAgICAgICAgPSBXaWRnZXRUeXBlOjpDb3VudDsKKyAgICAg
ICAgICAgIHdpZGdldC0+Zm9udFNpemUgICAgICA9IGZvbnRTaXplOworICAgICAgICAgICAgd2lk
Z2V0LT5jb29yZHNbMF0gICAgID0gb2Zmc2V0WDsKKyAgICAgICAgICAgIHdpZGdldC0+Y29vcmRz
WzFdICAgICA9IG9mZnNldFk7CisgICAgICAgICAgICB3aWRnZXQtPmNvb3Jkc1syXSAgICAgPSBv
ZmZzZXRYICsgd2lkdGg7CisgICAgICAgICAgICB3aWRnZXQtPmNvb3Jkc1szXSAgICAgPSBvZmZz
ZXRZICsgaGVpZ2h0OworICAgICAgICAgICAgd2lkZ2V0LT5jb2xvclswXSAgICAgID0gMS4wZjsK
KyAgICAgICAgICAgIHdpZGdldC0+Y29sb3JbMV0gICAgICA9IDEuMGY7CisgICAgICAgICAgICB3
aWRnZXQtPmNvbG9yWzJdICAgICAgPSAxLjBmOworICAgICAgICAgICAgd2lkZ2V0LT5jb2xvclsz
XSAgICAgID0gMS4wZjsKKyAgICAgICAgICAgIHdpZGdldC0+bWF0Y2hUb1dpZGdldCA9IG51bGxw
dHI7CisgICAgICAgIH0KKyAgICAgICAgbVN0YXRlLm1PdmVybGF5V2lkZ2V0c1tXaWRnZXRJZDo6
VnVsa2FuRGVzY3JpcHRvckNhY2hlS2V5U2l6ZV0ucmVzZXQod2lkZ2V0KTsKKyAgICB9CisKKyAg
ICB7CisgICAgICAgIFJ1bm5pbmdHcmFwaCAqd2lkZ2V0ID0gbmV3IFJ1bm5pbmdHcmFwaCg2MCk7
CisgICAgICAgIHsKKyAgICAgICAgICAgIGNvbnN0IGludDMyX3QgZm9udFNpemUgPSBHZXRGb250
U2l6ZSgwLCBrTGFyZ2VGb250KTsKKyAgICAgICAgICAgIGNvbnN0IGludDMyX3Qgb2Zmc2V0WCAg
PSAtNTA7CisgICAgICAgICAgICBjb25zdCBpbnQzMl90IG9mZnNldFkgID0gNTA7CisgICAgICAg
ICAgICBjb25zdCBpbnQzMl90IHdpZHRoICAgID0gNSAqIHN0YXRpY19jYXN0PHVpbnQzMl90Pih3
aWRnZXQtPnJ1bm5pbmdWYWx1ZXMuc2l6ZSgpKTsKKyAgICAgICAgICAgIGNvbnN0IGludDMyX3Qg
aGVpZ2h0ICAgPSAxMDA7CisKKyAgICAgICAgICAgIHdpZGdldC0+dHlwZSAgICAgICAgICA9IFdp
ZGdldFR5cGU6OlJ1bm5pbmdHcmFwaDsKKyAgICAgICAgICAgIHdpZGdldC0+Zm9udFNpemUgICAg
ICA9IGZvbnRTaXplOworICAgICAgICAgICAgd2lkZ2V0LT5jb29yZHNbMF0gICAgID0gb2Zmc2V0
WCAtIHdpZHRoOworICAgICAgICAgICAgd2lkZ2V0LT5jb29yZHNbMV0gICAgID0gb2Zmc2V0WTsK
KyAgICAgICAgICAgIHdpZGdldC0+Y29vcmRzWzJdICAgICA9IG9mZnNldFg7CisgICAgICAgICAg
ICB3aWRnZXQtPmNvb3Jkc1szXSAgICAgPSBvZmZzZXRZICsgaGVpZ2h0OworICAgICAgICAgICAg
d2lkZ2V0LT5jb2xvclswXSAgICAgID0gMS4wZjsKKyAgICAgICAgICAgIHdpZGdldC0+Y29sb3Jb
MV0gICAgICA9IDAuMGY7CisgICAgICAgICAgICB3aWRnZXQtPmNvbG9yWzJdICAgICAgPSAwLjBm
OworICAgICAgICAgICAgd2lkZ2V0LT5jb2xvclszXSAgICAgID0gMC4zOTIxNTY4NjI3NDUwOTgw
M2Y7CisgICAgICAgICAgICB3aWRnZXQtPm1hdGNoVG9XaWRnZXQgPSBudWxscHRyOworICAgICAg
ICB9CisgICAgICAgIG1TdGF0ZS5tT3ZlcmxheVdpZGdldHNbV2lkZ2V0SWQ6OlZ1bGthbkF0dGVt
cHRlZFN1Ym1pc3Npb25zXS5yZXNldCh3aWRnZXQpOworICAgICAgICB7CisgICAgICAgICAgICBj
b25zdCBpbnQzMl90IGZvbnRTaXplID0gR2V0Rm9udFNpemUoa0ZvbnRNaXBTbWFsbCwga0xhcmdl
Rm9udCk7CisgICAgICAgICAgICBjb25zdCBpbnQzMl90IG9mZnNldFggPQorICAgICAgICAgICAg
ICAgIG1TdGF0ZS5tT3ZlcmxheVdpZGdldHNbV2lkZ2V0SWQ6OlZ1bGthbkF0dGVtcHRlZFN1Ym1p
c3Npb25zXS0+Y29vcmRzWzBdOworICAgICAgICAgICAgY29uc3QgaW50MzJfdCBvZmZzZXRZID0K
KyAgICAgICAgICAgICAgICBtU3RhdGUubU92ZXJsYXlXaWRnZXRzW1dpZGdldElkOjpWdWxrYW5B
dHRlbXB0ZWRTdWJtaXNzaW9uc10tPmNvb3Jkc1sxXTsKKyAgICAgICAgICAgIGNvbnN0IGludDMy
X3Qgd2lkdGggID0gNDUgKiAoa0ZvbnRHbHlwaFdpZHRoID4+IGZvbnRTaXplKTsKKyAgICAgICAg
ICAgIGNvbnN0IGludDMyX3QgaGVpZ2h0ID0gKGtGb250R2x5cGhIZWlnaHQgPj4gZm9udFNpemUp
OworCisgICAgICAgICAgICB3aWRnZXQtPmRlc2NyaXB0aW9uLnR5cGUgICAgICAgICAgPSBXaWRn
ZXRUeXBlOjpUZXh0OworICAgICAgICAgICAgd2lkZ2V0LT5kZXNjcmlwdGlvbi5mb250U2l6ZSAg
ICAgID0gZm9udFNpemU7CisgICAgICAgICAgICB3aWRnZXQtPmRlc2NyaXB0aW9uLmNvb3Jkc1sw
XSAgICAgPSBvZmZzZXRYOworICAgICAgICAgICAgd2lkZ2V0LT5kZXNjcmlwdGlvbi5jb29yZHNb
MV0gICAgID0gc3RkOjptYXgob2Zmc2V0WSAtIGhlaWdodCwgMSk7CisgICAgICAgICAgICB3aWRn
ZXQtPmRlc2NyaXB0aW9uLmNvb3Jkc1syXSAgICAgPSBzdGQ6Om1pbihvZmZzZXRYICsgd2lkdGgs
IC0xKTsKKyAgICAgICAgICAgIHdpZGdldC0+ZGVzY3JpcHRpb24uY29vcmRzWzNdICAgICA9IG9m
ZnNldFk7CisgICAgICAgICAgICB3aWRnZXQtPmRlc2NyaXB0aW9uLmNvbG9yWzBdICAgICAgPSAw
Ljc4NDMxMzcyNTQ5MDE5NjFmOworICAgICAgICAgICAgd2lkZ2V0LT5kZXNjcmlwdGlvbi5jb2xv
clsxXSAgICAgID0gMC4wZjsKKyAgICAgICAgICAgIHdpZGdldC0+ZGVzY3JpcHRpb24uY29sb3Jb
Ml0gICAgICA9IDAuMjk0MTE3NjQ3MDU4ODIzNTRmOworICAgICAgICAgICAgd2lkZ2V0LT5kZXNj
cmlwdGlvbi5jb2xvclszXSAgICAgID0gMS4wZjsKKyAgICAgICAgICAgIHdpZGdldC0+ZGVzY3Jp
cHRpb24ubWF0Y2hUb1dpZGdldCA9IG51bGxwdHI7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB7
CisgICAgICAgIFJ1bm5pbmdHcmFwaCAqd2lkZ2V0ID0gbmV3IFJ1bm5pbmdHcmFwaCg2MCk7Cisg
ICAgICAgIHsKKyAgICAgICAgICAgIGNvbnN0IGludDMyX3QgZm9udFNpemUgPSBHZXRGb250U2l6
ZSgwLCBrTGFyZ2VGb250KTsKKyAgICAgICAgICAgIGNvbnN0IGludDMyX3Qgb2Zmc2V0WCA9Cisg
ICAgICAgICAgICAgICAgbVN0YXRlLm1PdmVybGF5V2lkZ2V0c1tXaWRnZXRJZDo6VnVsa2FuQXR0
ZW1wdGVkU3VibWlzc2lvbnNdLT5jb29yZHNbMF07CisgICAgICAgICAgICBjb25zdCBpbnQzMl90
IG9mZnNldFkgPQorICAgICAgICAgICAgICAgIG1TdGF0ZS5tT3ZlcmxheVdpZGdldHNbV2lkZ2V0
SWQ6OlZ1bGthbkF0dGVtcHRlZFN1Ym1pc3Npb25zXS0+Y29vcmRzWzFdOworICAgICAgICAgICAg
Y29uc3QgaW50MzJfdCB3aWR0aCAgPSA1ICogc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHdpZGdldC0+
cnVubmluZ1ZhbHVlcy5zaXplKCkpOworICAgICAgICAgICAgY29uc3QgaW50MzJfdCBoZWlnaHQg
PSAxMDA7CisKKyAgICAgICAgICAgIHdpZGdldC0+dHlwZSAgICAgID0gV2lkZ2V0VHlwZTo6UnVu
bmluZ0dyYXBoOwogICAgICAgICAgICAgd2lkZ2V0LT5mb250U2l6ZSAgPSBmb250U2l6ZTsKICAg
ICAgICAgICAgIHdpZGdldC0+Y29vcmRzWzBdID0gb2Zmc2V0WDsKICAgICAgICAgICAgIHdpZGdl
dC0+Y29vcmRzWzFdID0gb2Zmc2V0WTsKLSAgICAgICAgICAgIHdpZGdldC0+Y29vcmRzWzJdID0g
b2Zmc2V0WCArIHdpZHRoOworICAgICAgICAgICAgd2lkZ2V0LT5jb29yZHNbMl0gPSBzdGQ6Om1p
bihvZmZzZXRYICsgd2lkdGgsIC0xKTsKICAgICAgICAgICAgIHdpZGdldC0+Y29vcmRzWzNdID0g
b2Zmc2V0WSArIGhlaWdodDsKLSAgICAgICAgICAgIHdpZGdldC0+Y29sb3JbMF0gID0gMS4wZjsK
KyAgICAgICAgICAgIHdpZGdldC0+Y29sb3JbMF0gID0gMC4wZjsKICAgICAgICAgICAgIHdpZGdl
dC0+Y29sb3JbMV0gID0gMS4wZjsKLSAgICAgICAgICAgIHdpZGdldC0+Y29sb3JbMl0gID0gMS4w
ZjsKLSAgICAgICAgICAgIHdpZGdldC0+Y29sb3JbM10gID0gMS4wZjsKKyAgICAgICAgICAgIHdp
ZGdldC0+Y29sb3JbMl0gID0gMC4wZjsKKyAgICAgICAgICAgIHdpZGdldC0+Y29sb3JbM10gID0g
MC43ODQzMTM3MjU0OTAxOTYxZjsKKyAgICAgICAgICAgIHdpZGdldC0+bWF0Y2hUb1dpZGdldCA9
CisgICAgICAgICAgICAgICAgbVN0YXRlLm1PdmVybGF5V2lkZ2V0c1tXaWRnZXRJZDo6VnVsa2Fu
QXR0ZW1wdGVkU3VibWlzc2lvbnNdLmdldCgpOworICAgICAgICB9CisgICAgICAgIG1TdGF0ZS5t
T3ZlcmxheVdpZGdldHNbV2lkZ2V0SWQ6OlZ1bGthbkFjdHVhbFN1Ym1pc3Npb25zXS5yZXNldCh3
aWRnZXQpOworICAgICAgICB7CisgICAgICAgICAgICBjb25zdCBpbnQzMl90IGZvbnRTaXplID0g
R2V0Rm9udFNpemUoa0ZvbnRNaXBTbWFsbCwga0xhcmdlRm9udCk7CisgICAgICAgICAgICBjb25z
dCBpbnQzMl90IG9mZnNldFggPQorICAgICAgICAgICAgICAgIG1TdGF0ZS5tT3ZlcmxheVdpZGdl
dHNbV2lkZ2V0SWQ6OlZ1bGthbkFjdHVhbFN1Ym1pc3Npb25zXS0+Y29vcmRzWzBdOworICAgICAg
ICAgICAgY29uc3QgaW50MzJfdCBvZmZzZXRZID0KKyAgICAgICAgICAgICAgICBtU3RhdGUubU92
ZXJsYXlXaWRnZXRzW1dpZGdldElkOjpWdWxrYW5BY3R1YWxTdWJtaXNzaW9uc10tPmNvb3Jkc1sz
XTsKKyAgICAgICAgICAgIGNvbnN0IGludDMyX3Qgd2lkdGggID0gNDUgKiAoa0ZvbnRHbHlwaFdp
ZHRoID4+IGZvbnRTaXplKTsKKyAgICAgICAgICAgIGNvbnN0IGludDMyX3QgaGVpZ2h0ID0gKGtG
b250R2x5cGhIZWlnaHQgPj4gZm9udFNpemUpOworCisgICAgICAgICAgICB3aWRnZXQtPmRlc2Ny
aXB0aW9uLnR5cGUgICAgICAgICAgPSBXaWRnZXRUeXBlOjpUZXh0OworICAgICAgICAgICAgd2lk
Z2V0LT5kZXNjcmlwdGlvbi5mb250U2l6ZSAgICAgID0gZm9udFNpemU7CisgICAgICAgICAgICB3
aWRnZXQtPmRlc2NyaXB0aW9uLmNvb3Jkc1swXSAgICAgPSBvZmZzZXRYOworICAgICAgICAgICAg
d2lkZ2V0LT5kZXNjcmlwdGlvbi5jb29yZHNbMV0gICAgID0gb2Zmc2V0WTsKKyAgICAgICAgICAg
IHdpZGdldC0+ZGVzY3JpcHRpb24uY29vcmRzWzJdICAgICA9IHN0ZDo6bWluKG9mZnNldFggKyB3
aWR0aCwgLTEpOworICAgICAgICAgICAgd2lkZ2V0LT5kZXNjcmlwdGlvbi5jb29yZHNbM10gICAg
ID0gb2Zmc2V0WSArIGhlaWdodDsKKyAgICAgICAgICAgIHdpZGdldC0+ZGVzY3JpcHRpb24uY29s
b3JbMF0gICAgICA9IDAuMGY7CisgICAgICAgICAgICB3aWRnZXQtPmRlc2NyaXB0aW9uLmNvbG9y
WzFdICAgICAgPSAwLjc4NDMxMzcyNTQ5MDE5NjFmOworICAgICAgICAgICAgd2lkZ2V0LT5kZXNj
cmlwdGlvbi5jb2xvclsyXSAgICAgID0gMC4yOTQxMTc2NDcwNTg4MjM1NGY7CisgICAgICAgICAg
ICB3aWRnZXQtPmRlc2NyaXB0aW9uLmNvbG9yWzNdICAgICAgPSAxLjBmOworICAgICAgICAgICAg
d2lkZ2V0LT5kZXNjcmlwdGlvbi5tYXRjaFRvV2lkZ2V0ID0gbnVsbHB0cjsKICAgICAgICAgfQot
ICAgICAgICBtU3RhdGUubU92ZXJsYXlXaWRnZXRzW1dpZGdldElkOjpWdWxrYW5EZXNjcmlwdG9y
Q2FjaGVLZXlTaXplXS5yZXNldCh3aWRnZXQpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL092ZXJsYXlfYXV0b2dlbi5oIGIvU291
cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL092ZXJsYXlfYXV0b2dlbi5oCmluZGV4
IDM0ZmFjZmI5OTI3MjUyODM0MGJjMGJmNTU5ZDFhNTM2YWNhYTU0MDguLmRiMDFkOTA1NmI2OGQ5
NWM3MmZlNzk0ODdkNTYzYzM3NDkxNzFkN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5
L0FOR0xFL3NyYy9saWJBTkdMRS9PdmVybGF5X2F1dG9nZW4uaAorKysgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvT3ZlcmxheV9hdXRvZ2VuLmgKQEAgLTI4LDggKzI4LDgg
QEAgZW51bSBjbGFzcyBXaWRnZXRJZAogICAgIFZ1bGthbldyaXRlRGVzY3JpcHRvclNldENvdW50
LAogICAgIC8vIERlc2NyaXB0b3IgU2V0IEFsbG9jYXRpb25zLgogICAgIFZ1bGthbkRlc2NyaXB0
b3JTZXRBbGxvY2F0aW9ucywKLSAgICAvLyBTaGFkZXIgQnVmZmVyIERlc2NyaXB0b3IgU2V0IENh
Y2hlIEhpdCBSYXRlLgotICAgIFZ1bGthblNoYWRlckJ1ZmZlckRTSGl0UmF0ZSwKKyAgICAvLyBT
aGFkZXIgUmVzb3VyY2UgRGVzY3JpcHRvciBTZXQgQ2FjaGUgSGl0IFJhdGUuCisgICAgVnVsa2Fu
U2hhZGVyUmVzb3VyY2VEU0hpdFJhdGUsCiAgICAgLy8gQnVmZmVyIEFsbG9jYXRpb25zIE1hZGUg
Qnkgdms6OkR5bmFtaWNCdWZmZXIuCiAgICAgVnVsa2FuRHluYW1pY0J1ZmZlckFsbG9jYXRpb25z
LAogICAgIC8vIFRvdGFsIHNpemUgb2YgYWxsIGRlc2NyaXB0b3Igc2V0IGNhY2hlcwpAQCAtNDAs
NiArNDAsMTAgQEAgZW51bSBjbGFzcyBXaWRnZXRJZAogICAgIFZ1bGthblVuaWZvcm1EZXNjcmlw
dG9yQ2FjaGVTaXplLAogICAgIC8vIFRvdGFsIHNpemUgb2YgYWxsIGtleXMgaW4gdGhlIGRlc2Ny
aXB0b3Igc2V0IGNhY2hlcwogICAgIFZ1bGthbkRlc2NyaXB0b3JDYWNoZUtleVNpemUsCisgICAg
Ly8gTnVtYmVyIG9mIHRpbWVzIHRoZSBWdWxrYW4gYmFja2VuZCBhdHRlbXB0ZWQgdG8gc3VibWl0
IGNvbW1hbmRzCisgICAgVnVsa2FuQXR0ZW1wdGVkU3VibWlzc2lvbnMsCisgICAgLy8gTnVtYmVy
IG9mIHRpbWVzIHRoZSBWdWxrYW4gYmFja2VuZCBhY3R1YWxseSBzdWJtaXR0ZWQgY29tbWFuZHMK
KyAgICBWdWxrYW5BY3R1YWxTdWJtaXNzaW9ucywKIAogICAgIEludmFsaWRFbnVtLAogICAgIEVu
dW1Db3VudCA9IEludmFsaWRFbnVtLApAQCAtNTUsMTEgKzU5LDEzIEBAIGVudW0gY2xhc3MgV2lk
Z2V0SWQKICAgICBQUk9DKFZ1bGthblNlY29uZGFyeUNvbW1hbmRCdWZmZXJQb29sV2FzdGUpIFwK
ICAgICBQUk9DKFZ1bGthbldyaXRlRGVzY3JpcHRvclNldENvdW50KSAgICAgICAgIFwKICAgICBQ
Uk9DKFZ1bGthbkRlc2NyaXB0b3JTZXRBbGxvY2F0aW9ucykgICAgICAgIFwKLSAgICBQUk9DKFZ1
bGthblNoYWRlckJ1ZmZlckRTSGl0UmF0ZSkgICAgICAgICAgIFwKKyAgICBQUk9DKFZ1bGthblNo
YWRlclJlc291cmNlRFNIaXRSYXRlKSAgICAgICAgIFwKICAgICBQUk9DKFZ1bGthbkR5bmFtaWNC
dWZmZXJBbGxvY2F0aW9ucykgICAgICAgIFwKICAgICBQUk9DKFZ1bGthbkRlc2NyaXB0b3JDYWNo
ZVNpemUpICAgICAgICAgICAgIFwKICAgICBQUk9DKFZ1bGthblRleHR1cmVEZXNjcmlwdG9yQ2Fj
aGVTaXplKSAgICAgIFwKICAgICBQUk9DKFZ1bGthblVuaWZvcm1EZXNjcmlwdG9yQ2FjaGVTaXpl
KSAgICAgIFwKLSAgICBQUk9DKFZ1bGthbkRlc2NyaXB0b3JDYWNoZUtleVNpemUpCisgICAgUFJP
QyhWdWxrYW5EZXNjcmlwdG9yQ2FjaGVLZXlTaXplKSAgICAgICAgICBcCisgICAgUFJPQyhWdWxr
YW5BdHRlbXB0ZWRTdWJtaXNzaW9ucykgICAgICAgICAgICBcCisgICAgUFJPQyhWdWxrYW5BY3R1
YWxTdWJtaXNzaW9ucykKIAogfSAgLy8gbmFtZXNwYWNlIGdsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvUGxhdGZvcm0uY3BwIGIvU291cmNlL1RoaXJk
UGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL1BsYXRmb3JtLmNwcAppbmRleCAzZWU4ZDRlZDUwYjMy
YjQyODEwOGI0ZjhjNTY4MmI0NWMxYTk0NTg1Li5mYWZkMWFmZGYxNjMwMThkNWEyNDBkNDBkMzg1
YTExYWJiOTY1ZThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGli
QU5HTEUvUGxhdGZvcm0uY3BwCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJB
TkdMRS9QbGF0Zm9ybS5jcHAKQEAgLTQ4LDYgKzQ4LDEzIEBAIGJvb2wgQU5HTEVfQVBJRU5UUlkg
QU5HTEVHZXREaXNwbGF5UGxhdGZvcm0oYW5nbGU6OkVHTERpc3BsYXlUeXBlIGRpc3BsYXksCiAg
ICAgewogICAgICAgICBjb25zdCBjaGFyICpleHBlY3RlZE5hbWUgPSBhbmdsZTo6Z19QbGF0Zm9y
bU1ldGhvZE5hbWVzW25hbWVJbmRleF07CiAgICAgICAgIGNvbnN0IGNoYXIgKmFjdHVhbE5hbWUg
ICA9IG1ldGhvZE5hbWVzW25hbWVJbmRleF07CisKKyAgICAgICAgLy8gU2tpcCBkZXByZWNhdGVk
IG1ldGhvZHMuICBUaGUgbmFtZXMgb2YgdGhlc2UgbWV0aG9kcyBzdGFydCB3aXRoIHxwbGFjZWhv
bGRlcnwuCisgICAgICAgIGNvbnN0ZXhwciBjaGFyIGtQbGFjZWhvbGRlcltdID0gInBsYWNlaG9s
ZGVyIjsKKyAgICAgICAgaWYgKHN0cm5jbXAoZXhwZWN0ZWROYW1lLCBrUGxhY2Vob2xkZXIsIHNp
emVvZihrUGxhY2Vob2xkZXIpIC0gMSkgPT0gMCkKKyAgICAgICAgeworICAgICAgICAgICAgY29u
dGludWU7CisgICAgICAgIH0KICAgICAgICAgaWYgKHN0cmNtcChleHBlY3RlZE5hbWUsIGFjdHVh
bE5hbWUpICE9IDApCiAgICAgICAgIHsKICAgICAgICAgICAgIEVSUigpIDw8ICJJbnZhbGlkIHBs
YXRmb3JtIG1ldGhvZCBuYW1lOiAiIDw8IGFjdHVhbE5hbWUgPDwgIiwgZXhwZWN0ZWQgIiA8PCBl
eHBlY3RlZE5hbWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJB
TkdMRS9Qcm9ncmFtLmNwcCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9Q
cm9ncmFtLmNwcAppbmRleCA0ODI3N2EyNTMxZTM2ODk3ZDIzNTE5M2YzMDlkNzMxOTZmYjk4OThj
Li5mMTJiODAzYjU4NWExNWRhY2MyODFmZTFlN2QzZWZjNDYyNzgyYTYyIDEwMDY0NAotLS0gYS9T
b3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvUHJvZ3JhbS5jcHAKKysrIGIvU291
cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL1Byb2dyYW0uY3BwCkBAIC0zMyw3ICsz
Myw3IEBACiAjaW5jbHVkZSAibGliQU5HTEUvcXVlcnljb252ZXJzaW9ucy5oIgogI2luY2x1ZGUg
ImxpYkFOR0xFL3JlbmRlcmVyL0dMSW1wbEZhY3RvcnkuaCIKICNpbmNsdWRlICJsaWJBTkdMRS9y
ZW5kZXJlci9Qcm9ncmFtSW1wbC5oIgotI2luY2x1ZGUgInBsYXRmb3JtL0Zyb250ZW5kRmVhdHVy
ZXMuaCIKKyNpbmNsdWRlICJwbGF0Zm9ybS9Gcm9udGVuZEZlYXR1cmVzX2F1dG9nZW4uaCIKICNp
bmNsdWRlICJwbGF0Zm9ybS9QbGF0Zm9ybU1ldGhvZHMuaCIKIAogbmFtZXNwYWNlIGdsCkBAIC01
NzMsNyArNTczLDcgQEAgdm9pZCBJbmZvTG9nOjpnZXRMb2coR0xzaXplaSBidWZTaXplLCBHTHNp
emVpICpsZW5ndGgsIGNoYXIgKmluZm9Mb2cpIGNvbnN0CiAgICAgfQogfQogCi0vLyBhcHBlbmQg
YSBzYW50aXplZCBtZXNzYWdlIHRvIHRoZSBwcm9ncmFtIGluZm8gbG9nLgorLy8gYXBwZW5kIGEg
c2FuaXRpemVkIG1lc3NhZ2UgdG8gdGhlIHByb2dyYW0gaW5mbyBsb2cuCiAvLyBUaGUgRDNEIGNv
bXBpbGVyIGluY2x1ZGVzIGEgZmFrZSBmaWxlIHBhdGggaW4gc29tZSBvZiB0aGUgd2FybmluZyBv
ciBlcnJvcgogLy8gbWVzc2FnZXMsIHNvIGxldHMgcmVtb3ZlIGFsbCBvY2N1cnJlbmNlcyBvZiB0
aGlzIGZha2UgZmlsZSBwYXRoIGZyb20gdGhlIGxvZy4KIHZvaWQgSW5mb0xvZzo6YXBwZW5kU2Fu
aXRpemVkKGNvbnN0IGNoYXIgKm1lc3NhZ2UpCkBAIC0xMzQzLDcgKzEzNDMsOCBAQCBhbmdsZTo6
UmVzdWx0IFByb2dyYW06OmxpbmtJbXBsKGNvbnN0IENvbnRleHQgKmNvbnRleHQpCiAKICAgICAg
ICAgICAgIG1TdGF0ZS5tRXhlY3V0YWJsZS0+bVVzZXNFYXJseUZyYWdtZW50VGVzdHNPcHRpbWl6
YXRpb24gPQogICAgICAgICAgICAgICAgIGZyYWdtZW50U2hhZGVyLT5oYXNFYXJseUZyYWdtZW50
VGVzdHNPcHRpbWl6YXRpb24oKTsKLSAgICAgICAgICAgIG1TdGF0ZS5tQWR2YW5jZWRCbGVuZEVx
dWF0aW9ucyA9IGZyYWdtZW50U2hhZGVyLT5nZXRBZHZhbmNlZEJsZW5kRXF1YXRpb25zKCk7Cisg
ICAgICAgICAgICBtU3RhdGUubUV4ZWN1dGFibGUtPm1BZHZhbmNlZEJsZW5kRXF1YXRpb25zID0K
KyAgICAgICAgICAgICAgICBmcmFnbWVudFNoYWRlci0+Z2V0QWR2YW5jZWRCbGVuZEVxdWF0aW9u
cygpOwogICAgICAgICAgICAgbVN0YXRlLm1TcGVjQ29uc3RVc2FnZUJpdHMgfD0gZnJhZ21lbnRT
aGFkZXItPmdldFNwZWNDb25zdFVzYWdlQml0cygpOwogICAgICAgICB9CiAKQEAgLTEzNTYsNiAr
MTM1Nyw4IEBAIGFuZ2xlOjpSZXN1bHQgUHJvZ3JhbTo6bGlua0ltcGwoY29uc3QgQ29udGV4dCAq
Y29udGV4dCkKICAgICAgICAgfQogICAgIH0KIAorICAgIG1TdGF0ZS5tRXhlY3V0YWJsZS0+c2F2
ZUxpbmtlZFN0YXRlSW5mbyhtU3RhdGUpOworCiAgICAgbUxpbmtpbmdTdGF0ZSAgICAgICAgICAg
ICAgICAgICAgPSBzdGQ6Om1vdmUobGlua2luZ1N0YXRlKTsKICAgICBtTGlua2luZ1N0YXRlLT5s
aW5raW5nRnJvbUJpbmFyeSA9IGZhbHNlOwogICAgIG1MaW5raW5nU3RhdGUtPnByb2dyYW1IYXNo
ICAgICAgID0gcHJvZ3JhbUhhc2g7CkBAIC0xMzY1LDExICsxMzY4LDggQEAgYW5nbGU6OlJlc3Vs
dCBQcm9ncmFtOjpsaW5rSW1wbChjb25zdCBDb250ZXh0ICpjb250ZXh0KQogICAgIG1TdGF0ZS51
cGRhdGVQcm9ncmFtSW50ZXJmYWNlSW5wdXRzKCk7CiAgICAgbVN0YXRlLnVwZGF0ZVByb2dyYW1J
bnRlcmZhY2VPdXRwdXRzKCk7CiAKLSAgICAvLyBMaW5raW5nIGhhcyBzdWNjZWVkZWQsIHNvIHdl
IG5lZWQgdG8gc2F2ZSBzb21lIGluZm9ybWF0aW9uIHRoYXQgbWF5IGdldCBvdmVyd3JpdHRlbiBi
eSBhCi0gICAgLy8gbGF0ZXIgbGlua1Byb2dyYW0oKSB0aGF0IGNvdWxkIGZhaWwuCiAgICAgaWYg
KG1TdGF0ZS5tU2VwYXJhYmxlKQogICAgIHsKLSAgICAgICAgbVN0YXRlLm1FeGVjdXRhYmxlLT5z
YXZlTGlua2VkU3RhdGVJbmZvKG1TdGF0ZSk7CiAgICAgICAgIG1MaW5raW5nU3RhdGUtPmxpbmtl
ZEV4ZWN1dGFibGUgPSBtU3RhdGUubUV4ZWN1dGFibGU7CiAgICAgfQogCkBAIC0xNTI4LDIwICsx
NTI4LDEyIEBAIHZvaWQgUHJvZ3JhbTo6dW5saW5rKCkKICAgICBtU3RhdGUubVVuaWZvcm1Mb2Nh
dGlvbnMuY2xlYXIoKTsKICAgICBtU3RhdGUubUJ1ZmZlclZhcmlhYmxlcy5jbGVhcigpOwogICAg
IG1TdGF0ZS5tQ29tcHV0ZVNoYWRlckxvY2FsU2l6ZS5maWxsKDEpOwotICAgIG1TdGF0ZS5tTnVt
Vmlld3MgICAgICAgICAgICAgICAgICAgICAgPSAtMTsKLSAgICBtU3RhdGUubURyYXdJRExvY2F0
aW9uICAgICAgICAgICAgICAgID0gLTE7Ci0gICAgbVN0YXRlLm1CYXNlVmVydGV4TG9jYXRpb24g
ICAgICAgICAgICA9IC0xOwotICAgIG1TdGF0ZS5tQmFzZUluc3RhbmNlTG9jYXRpb24gICAgICAg
ICAgPSAtMTsKLSAgICBtU3RhdGUubUNhY2hlZEJhc2VWZXJ0ZXggICAgICAgICAgICAgID0gMDsK
LSAgICBtU3RhdGUubUNhY2hlZEJhc2VJbnN0YW5jZSAgICAgICAgICAgID0gMDsKLSAgICBtU3Rh
dGUubUVhcmx5RnJhbWVudFRlc3RzT3B0aW1pemF0aW9uID0gZmFsc2U7Ci0gICAgbVN0YXRlLm1E
cmF3SURMb2NhdGlvbiAgICAgICAgICAgICAgICA9IC0xOwotICAgIG1TdGF0ZS5tQmFzZVZlcnRl
eExvY2F0aW9uICAgICAgICAgICAgPSAtMTsKLSAgICBtU3RhdGUubUJhc2VJbnN0YW5jZUxvY2F0
aW9uICAgICAgICAgID0gLTE7Ci0gICAgbVN0YXRlLm1DYWNoZWRCYXNlVmVydGV4ICAgICAgICAg
ICAgICA9IDA7Ci0gICAgbVN0YXRlLm1DYWNoZWRCYXNlSW5zdGFuY2UgICAgICAgICAgICA9IDA7
Ci0gICAgbVN0YXRlLm1FYXJseUZyYW1lbnRUZXN0c09wdGltaXphdGlvbiA9IGZhbHNlOwotICAg
IG1TdGF0ZS5tQWR2YW5jZWRCbGVuZEVxdWF0aW9ucy5yZXNldCgpOworICAgIG1TdGF0ZS5tTnVt
Vmlld3MgICAgICAgICAgICAgPSAtMTsKKyAgICBtU3RhdGUubURyYXdJRExvY2F0aW9uICAgICAg
ID0gLTE7CisgICAgbVN0YXRlLm1CYXNlVmVydGV4TG9jYXRpb24gICA9IC0xOworICAgIG1TdGF0
ZS5tQmFzZUluc3RhbmNlTG9jYXRpb24gPSAtMTsKKyAgICBtU3RhdGUubUNhY2hlZEJhc2VWZXJ0
ZXggICAgID0gMDsKKyAgICBtU3RhdGUubUNhY2hlZEJhc2VJbnN0YW5jZSAgID0gMDsKICAgICBt
U3RhdGUubVNwZWNDb25zdFVzYWdlQml0cy5yZXNldCgpOwogCiAgICAgbVZhbGlkYXRlZCA9IGZh
bHNlOwpAQCAtMzYxNyw4ICszNjA5LDYgQEAgYW5nbGU6OlJlc3VsdCBQcm9ncmFtOjpzZXJpYWxp
emUoY29uc3QgQ29udGV4dCAqY29udGV4dCwgYW5nbGU6Ok1lbW9yeUJ1ZmZlciAqYmkKICAgICBz
dHJlYW0ud3JpdGVJbnQoY29tcHV0ZUxvY2FsU2l6ZVsyXSk7CiAKICAgICBzdHJlYW0ud3JpdGVJ
bnQobVN0YXRlLm1OdW1WaWV3cyk7Ci0gICAgc3RyZWFtLndyaXRlQm9vbChtU3RhdGUubUVhcmx5
RnJhbWVudFRlc3RzT3B0aW1pemF0aW9uKTsKLSAgICBzdHJlYW0ud3JpdGVJbnQobVN0YXRlLm1B
ZHZhbmNlZEJsZW5kRXF1YXRpb25zLmJpdHMoKSk7CiAgICAgc3RyZWFtLndyaXRlSW50KG1TdGF0
ZS5tU3BlY0NvbnN0VXNhZ2VCaXRzLmJpdHMoKSk7CiAKICAgICBzdHJlYW0ud3JpdGVJbnQobVN0
YXRlLmdldFVuaWZvcm1Mb2NhdGlvbnMoKS5zaXplKCkpOwpAQCAtMzcwOSwxMSArMzY5OSw3IEBA
IGFuZ2xlOjpSZXN1bHQgUHJvZ3JhbTo6ZGVzZXJpYWxpemUoY29uc3QgQ29udGV4dCAqY29udGV4
dCwKICAgICBtU3RhdGUubUNvbXB1dGVTaGFkZXJMb2NhbFNpemVbMV0gPSBzdHJlYW0ucmVhZElu
dDxpbnQ+KCk7CiAgICAgbVN0YXRlLm1Db21wdXRlU2hhZGVyTG9jYWxTaXplWzJdID0gc3RyZWFt
LnJlYWRJbnQ8aW50PigpOwogCi0gICAgbVN0YXRlLm1OdW1WaWV3cyAgICAgICAgICAgICAgICAg
ICAgICA9IHN0cmVhbS5yZWFkSW50PGludD4oKTsKLSAgICBtU3RhdGUubUVhcmx5RnJhbWVudFRl
c3RzT3B0aW1pemF0aW9uID0gc3RyZWFtLnJlYWRCb29sKCk7Ci0KLSAgICBzdGF0aWNfYXNzZXJ0
KHNpemVvZihtU3RhdGUubUFkdmFuY2VkQmxlbmRFcXVhdGlvbnMuYml0cygpKSA9PSBzaXplb2Yo
dWludDMyX3QpKTsKLSAgICBtU3RhdGUubUFkdmFuY2VkQmxlbmRFcXVhdGlvbnMgPSBCbGVuZEVx
dWF0aW9uQml0U2V0KHN0cmVhbS5yZWFkSW50PHVpbnQzMl90PigpKTsKKyAgICBtU3RhdGUubU51
bVZpZXdzID0gc3RyZWFtLnJlYWRJbnQ8aW50PigpOwogCiAgICAgc3RhdGljX2Fzc2VydChzaXpl
b2YobVN0YXRlLm1TcGVjQ29uc3RVc2FnZUJpdHMuYml0cygpKSA9PSBzaXplb2YodWludDMyX3Qp
KTsKICAgICBtU3RhdGUubVNwZWNDb25zdFVzYWdlQml0cyA9IHJ4OjpTcGVjQ29uc3RVc2FnZUJp
dHMoc3RyZWFtLnJlYWRJbnQ8dWludDMyX3Q+KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJk
UGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL1Byb2dyYW0uaCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FO
R0xFL3NyYy9saWJBTkdMRS9Qcm9ncmFtLmgKaW5kZXggMGU0YzU5YWJhMzFiYWM3OWMyYWZlOTkx
ZWFjMDQ2NWQyZmJhYTM3OC4uZWJlYjBhYjUxNTAyNjE4Y2QxZDU1ODI4ZmE3OGUyYjY5YWFiNjAz
NSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL1Byb2dy
YW0uaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvUHJvZ3JhbS5o
CkBAIC0zNDMsOCArMzQzLDYgQEAgY2xhc3MgUHJvZ3JhbVN0YXRlIGZpbmFsIDogYW5nbGU6Ok5v
bkNvcHlhYmxlCiAgICAgfQogCiAgICAgYm9vbCBoYXNJbWFnZXMoKSBjb25zdCB7IHJldHVybiAh
Z2V0SW1hZ2VCaW5kaW5ncygpLmVtcHR5KCk7IH0KLSAgICBib29sIGhhc0Vhcmx5RnJhZ21lbnRU
ZXN0c09wdGltaXphdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1FYXJseUZyYW1lbnRUZXN0c09wdGlt
aXphdGlvbjsgfQotICAgIEJsZW5kRXF1YXRpb25CaXRTZXQgZ2V0QWR2YW5jZWRCbGVuZEVxdWF0
aW9ucygpIGNvbnN0IHsgcmV0dXJuIG1BZHZhbmNlZEJsZW5kRXF1YXRpb25zOyB9CiAgICAgcng6
OlNwZWNDb25zdFVzYWdlQml0cyBnZXRTcGVjQ29uc3RVc2FnZUJpdHMoKSBjb25zdCB7IHJldHVy
biBtU3BlY0NvbnN0VXNhZ2VCaXRzOyB9CiAKICAgICAvLyBBIFByb2dyYW0gY2FuIG9ubHkgZWl0
aGVyIGJlIGdyYXBoaWNzIG9yIGNvbXB1dGUsIGJ1dCBuZXZlciBib3RoLCBzbyBpdApAQCAtMzky
LDkgKzM5MCw2IEBAIGNsYXNzIFByb2dyYW1TdGF0ZSBmaW5hbCA6IGFuZ2xlOjpOb25Db3B5YWJs
ZQogCiAgICAgYm9vbCBtQmluYXJ5UmV0cmlldmVhYmxlSGludDsKICAgICBib29sIG1TZXBhcmFi
bGU7Ci0gICAgYm9vbCBtRWFybHlGcmFtZW50VGVzdHNPcHRpbWl6YXRpb247Ci0gICAgLy8gS0hS
X2JsZW5kX2VxdWF0aW9uX2FkdmFuY2VkIHN1cHBvcnRlZCBlcXVhdGlvbiBsaXN0Ci0gICAgQmxl
bmRFcXVhdGlvbkJpdFNldCBtQWR2YW5jZWRCbGVuZEVxdWF0aW9uczsKICAgICByeDo6U3BlY0Nv
bnN0VXNhZ2VCaXRzIG1TcGVjQ29uc3RVc2FnZUJpdHM7CiAKICAgICAvLyBBTkdMRV9tdWx0aXZp
ZXcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvUHJv
Z3JhbUV4ZWN1dGFibGUuY3BwIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xF
L1Byb2dyYW1FeGVjdXRhYmxlLmNwcAppbmRleCAxZTUxMDdjNDBlMTkxNGE2MDM5OWUxNzk2YmZh
ODA4MjY3MjI2Njg2Li42M2Y5ZWU3ODNjNzBiYzA4ODg1ODUyZDQ1ZmFlM2FkNGNiYzYzNjM2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvUHJvZ3JhbUV4
ZWN1dGFibGUuY3BwCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9Q
cm9ncmFtRXhlY3V0YWJsZS5jcHAKQEAgLTE2Nyw2ICsxNjcsMjAgQEAgUmFuZ2VVSSBBZGRVbmlm
b3Jtcyhjb25zdCBTaGFkZXJNYXA8UHJvZ3JhbSAqPiAmcHJvZ3JhbXMsCiAgICAgfQogICAgIHJl
dHVybiBSYW5nZVVJKHN0YXJ0UmFuZ2UsIHN0YXRpY19jYXN0PHVuc2lnbmVkIGludD4ob3V0cHV0
VW5pZm9ybXMuc2l6ZSgpKSk7CiB9CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBCbG9ja1Q+Cit2b2lk
IEFwcGVuZEFjdGl2ZUJsb2NrcyhTaGFkZXJUeXBlIHNoYWRlclR5cGUsCisgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBzdGQ6OnZlY3RvcjxCbG9ja1Q+ICZibG9ja3NJbiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHN0ZDo6dmVjdG9yPEJsb2NrVD4gJmJsb2Nrc091dCkKK3sKKyAgICBm
b3IgKGNvbnN0IEJsb2NrVCAmYmxvY2sgOiBibG9ja3NJbikKKyAgICB7CisgICAgICAgIGlmIChi
bG9jay5pc0FjdGl2ZShzaGFkZXJUeXBlKSkKKyAgICAgICAgeworICAgICAgICAgICAgYmxvY2tz
T3V0LnB1c2hfYmFjayhibG9jayk7CisgICAgICAgIH0KKyAgICB9Cit9CiB9ICAvLyBhbm9ueW1v
dXMgbmFtZXNwYWNlCiAKIFByb2dyYW1FeGVjdXRhYmxlOjpQcm9ncmFtRXhlY3V0YWJsZSgpCkBA
IC0yMzAsNyArMjQ0LDggQEAgUHJvZ3JhbUV4ZWN1dGFibGU6OlByb2dyYW1FeGVjdXRhYmxlKGNv
bnN0IFByb2dyYW1FeGVjdXRhYmxlICZvdGhlcikKICAgICAgIG1BdG9taWNDb3VudGVyQnVmZmVy
cyhvdGhlci5tQXRvbWljQ291bnRlckJ1ZmZlcnMpLAogICAgICAgbVNoYWRlclN0b3JhZ2VCbG9j
a3Mob3RoZXIubVNoYWRlclN0b3JhZ2VCbG9ja3MpLAogICAgICAgbUZyYWdtZW50SW5vdXRSYW5n
ZShvdGhlci5tRnJhZ21lbnRJbm91dFJhbmdlKSwKLSAgICAgIG1Vc2VzRWFybHlGcmFnbWVudFRl
c3RzT3B0aW1pemF0aW9uKG90aGVyLm1Vc2VzRWFybHlGcmFnbWVudFRlc3RzT3B0aW1pemF0aW9u
KQorICAgICAgbVVzZXNFYXJseUZyYWdtZW50VGVzdHNPcHRpbWl6YXRpb24ob3RoZXIubVVzZXNF
YXJseUZyYWdtZW50VGVzdHNPcHRpbWl6YXRpb24pLAorICAgICAgbUFkdmFuY2VkQmxlbmRFcXVh
dGlvbnMob3RoZXIubUFkdmFuY2VkQmxlbmRFcXVhdGlvbnMpCiB7CiAgICAgcmVzZXQoKTsKIH0K
QEAgLTI3Niw2ICsyOTEsNyBAQCB2b2lkIFByb2dyYW1FeGVjdXRhYmxlOjpyZXNldCgpCiAKICAg
ICBtRnJhZ21lbnRJbm91dFJhbmdlICAgICAgICAgICAgICAgICA9IFJhbmdlVUkoMCwgMCk7CiAg
ICAgbVVzZXNFYXJseUZyYWdtZW50VGVzdHNPcHRpbWl6YXRpb24gPSBmYWxzZTsKKyAgICBtQWR2
YW5jZWRCbGVuZEVxdWF0aW9ucy5yZXNldCgpOwogCiAgICAgbUdlb21ldHJ5U2hhZGVySW5wdXRQ
cmltaXRpdmVUeXBlICA9IFByaW1pdGl2ZU1vZGU6OlRyaWFuZ2xlczsKICAgICBtR2VvbWV0cnlT
aGFkZXJPdXRwdXRQcmltaXRpdmVUeXBlID0gUHJpbWl0aXZlTW9kZTo6VHJpYW5nbGVTdHJpcDsK
QEAgLTMwOCw2ICszMjQsOSBAQCB2b2lkIFByb2dyYW1FeGVjdXRhYmxlOjpsb2FkKGJvb2wgaXNT
ZXBhcmFibGUsIGdsOjpCaW5hcnlJbnB1dFN0cmVhbSAqc3RyZWFtKQogCiAgICAgbVVzZXNFYXJs
eUZyYWdtZW50VGVzdHNPcHRpbWl6YXRpb24gPSBzdHJlYW0tPnJlYWRCb29sKCk7CiAKKyAgICBz
dGF0aWNfYXNzZXJ0KHNpemVvZihtQWR2YW5jZWRCbGVuZEVxdWF0aW9ucy5iaXRzKCkpID09IHNp
emVvZih1aW50MzJfdCkpOworICAgIG1BZHZhbmNlZEJsZW5kRXF1YXRpb25zID0gQmxlbmRFcXVh
dGlvbkJpdFNldChzdHJlYW0tPnJlYWRJbnQ8dWludDMyX3Q+KCkpOworCiAgICAgbUxpbmtlZFNo
YWRlclN0YWdlcyA9IFNoYWRlckJpdFNldChzdHJlYW0tPnJlYWRJbnQ8dWludDhfdD4oKSk7CiAK
ICAgICBtR2VvbWV0cnlTaGFkZXJJbnB1dFByaW1pdGl2ZVR5cGUgID0gc3RyZWFtLT5yZWFkRW51
bTxQcmltaXRpdmVNb2RlPigpOwpAQCAtMzQyLDYgKzM2MSw3IEBAIHZvaWQgUHJvZ3JhbUV4ZWN1
dGFibGU6OmxvYWQoYm9vbCBpc1NlcGFyYWJsZSwgZ2w6OkJpbmFyeUlucHV0U3RyZWFtICpzdHJl
YW0pCiAgICAgICAgIExvYWRCbG9ja01lbWJlckluZm8oc3RyZWFtLCAmdW5pZm9ybS5ibG9ja0lu
Zm8pOwogCiAgICAgICAgIHN0cmVhbS0+cmVhZEludFZlY3Rvcjx1bnNpZ25lZCBpbnQ+KCZ1bmlm
b3JtLm91dGVyQXJyYXlTaXplcyk7CisgICAgICAgIHVuaWZvcm0ub3V0ZXJBcnJheU9mZnNldCA9
IHN0cmVhbS0+cmVhZEludDx1bnNpZ25lZCBpbnQ+KCk7CiAKICAgICAgICAgdW5pZm9ybS50eXBl
SW5mbyA9ICZHZXRVbmlmb3JtVHlwZUluZm8odW5pZm9ybS50eXBlKTsKIApAQCAtNTM1LDYgKzU1
NSw3IEBAIHZvaWQgUHJvZ3JhbUV4ZWN1dGFibGU6OnNhdmUoYm9vbCBpc1NlcGFyYWJsZSwgZ2w6
OkJpbmFyeU91dHB1dFN0cmVhbSAqc3RyZWFtKSBjCiAgICAgc3RyZWFtLT53cml0ZUludChtRnJh
Z21lbnRJbm91dFJhbmdlLmhpZ2goKSk7CiAKICAgICBzdHJlYW0tPndyaXRlQm9vbChtVXNlc0Vh
cmx5RnJhZ21lbnRUZXN0c09wdGltaXphdGlvbik7CisgICAgc3RyZWFtLT53cml0ZUludChtQWR2
YW5jZWRCbGVuZEVxdWF0aW9ucy5iaXRzKCkpOwogCiAgICAgc3RyZWFtLT53cml0ZUludChtTGlu
a2VkU2hhZGVyU3RhZ2VzLmJpdHMoKSk7CiAKQEAgLTU2Niw2ICs1ODcsNyBAQCB2b2lkIFByb2dy
YW1FeGVjdXRhYmxlOjpzYXZlKGJvb2wgaXNTZXBhcmFibGUsIGdsOjpCaW5hcnlPdXRwdXRTdHJl
YW0gKnN0cmVhbSkgYwogICAgICAgICBXcml0ZUJsb2NrTWVtYmVySW5mbyhzdHJlYW0sIHVuaWZv
cm0uYmxvY2tJbmZvKTsKIAogICAgICAgICBzdHJlYW0tPndyaXRlSW50VmVjdG9yKHVuaWZvcm0u
b3V0ZXJBcnJheVNpemVzKTsKKyAgICAgICAgc3RyZWFtLT53cml0ZUludCh1bmlmb3JtLm91dGVy
QXJyYXlPZmZzZXQpOwogCiAgICAgICAgIC8vIEFjdGl2ZSBzaGFkZXIgaW5mbwogICAgICAgICBm
b3IgKFNoYWRlclR5cGUgc2hhZGVyVHlwZSA6IGdsOjpBbGxTaGFkZXJUeXBlcygpKQpAQCAtNzIz
LDE2ICs3NDUsMTIgQEAgc3RkOjpzdHJpbmcgUHJvZ3JhbUV4ZWN1dGFibGU6OmdldEluZm9Mb2dT
dHJpbmcoKSBjb25zdAogCiBib29sIFByb2dyYW1FeGVjdXRhYmxlOjppc0F0dHJpYkxvY2F0aW9u
QWN0aXZlKHNpemVfdCBhdHRyaWJMb2NhdGlvbikgY29uc3QKIHsKLSAgICAvLyBUT0RPKHRpbXZw
KTogaHR0cDovL2FuZ2xlYnVnLmNvbS8zNTcwOiBFbmFibGUgdGhpcyBhc3NlcnQgaGVyZSBzb21l
aG93LgotICAgIC8vICAgIEFTU0VSVCghbUxpbmtpbmdTdGF0ZSk7CiAgICAgQVNTRVJUKGF0dHJp
YkxvY2F0aW9uIDwgbUFjdGl2ZUF0dHJpYkxvY2F0aW9uc01hc2suc2l6ZSgpKTsKICAgICByZXR1
cm4gbUFjdGl2ZUF0dHJpYkxvY2F0aW9uc01hc2tbYXR0cmliTG9jYXRpb25dOwogfQogCiBBdHRy
aWJ1dGVzTWFzayBQcm9ncmFtRXhlY3V0YWJsZTo6Z2V0QXR0cmlidXRlc01hc2soKSBjb25zdAog
ewotICAgIC8vIFRPRE8odGltdnApOiBodHRwOi8vYW5nbGVidWcuY29tLzM1NzA6IEVuYWJsZSB0
aGlzIGFzc2VydCBoZXJlIHNvbWVob3cuCi0gICAgLy8gICAgQVNTRVJUKCFtTGlua2luZ1N0YXRl
KTsKICAgICByZXR1cm4gbUF0dHJpYnV0ZXNNYXNrOwogfQogCkBAIC0xNDg1LDcgKzE1MDMsNyBA
QCBib29sIFByb2dyYW1FeGVjdXRhYmxlOjpsaW5rVW5pZm9ybXMoCiAKICAgICBsaW5rU2FtcGxl
ckFuZEltYWdlQmluZGluZ3MoY29tYmluZWRJbWFnZVVuaWZvcm1zQ291bnRPdXQpOwogCi0gICAg
aWYgKCFsaW5rQXRvbWljQ291bnRlckJ1ZmZlcnMoKSkKKyAgICBpZiAoIWxpbmtBdG9taWNDb3Vu
dGVyQnVmZmVycyhjb250ZXh0LCBpbmZvTG9nKSkKICAgICB7CiAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICB9CkBAIC0xNTg5LDcgKzE2MDcsNyBAQCB2b2lkIFByb2dyYW1FeGVjdXRhYmxlOjps
aW5rU2FtcGxlckFuZEltYWdlQmluZGluZ3MoR0x1aW50ICpjb21iaW5lZEltYWdlVW5pZm9ybQog
ICAgIG1EZWZhdWx0VW5pZm9ybVJhbmdlID0gUmFuZ2VVSSgwLCBsb3cpOwogfQogCi1ib29sIFBy
b2dyYW1FeGVjdXRhYmxlOjpsaW5rQXRvbWljQ291bnRlckJ1ZmZlcnMoKQorYm9vbCBQcm9ncmFt
RXhlY3V0YWJsZTo6bGlua0F0b21pY0NvdW50ZXJCdWZmZXJzKGNvbnN0IENvbnRleHQgKmNvbnRl
eHQsIEluZm9Mb2cgJmluZm9Mb2cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaW5kZXggOiBt
QXRvbWljQ291bnRlclVuaWZvcm1SYW5nZSkKICAgICB7CkBAIC0xNjI0LDIyICsxNjQyLDUwIEBA
IGJvb2wgUHJvZ3JhbUV4ZWN1dGFibGU6OmxpbmtBdG9taWNDb3VudGVyQnVmZmVycygpCiAgICAg
ICAgIH0KICAgICB9CiAKLSAgICAvLyBUT0RPKGppZS5hLmNoZW5AaW50ZWwuY29tKTogQ291bnQg
ZWFjaCBhdG9taWMgY291bnRlciBidWZmZXIgdG8gdmFsaWRhdGUgYWdhaW5zdAotICAgIC8vIGds
X01heFtWZXJ0ZXh8RnJhZ21lbnR8Q29tcHV0ZXxHZW9tZXRyeXxDb21iaW5lZF1BdG9taWNDb3Vu
dGVyQnVmZmVycy4KLQorICAgIC8vIENvdW50IGVhY2ggYXRvbWljIGNvdW50ZXIgYnVmZmVyIHRv
IHZhbGlkYXRlIGFnYWluc3QKKyAgICAvLyBwZXItc3RhZ2UgYW5kIGNvbWJpbmVkIGdsX01heCpB
dG9taWNDb3VudGVyQnVmZmVycy4KKyAgICBHTGludCBjb21iaW5lZFNoYWRlckFDQkNvdW50ICAg
ICAgICAgICA9IDA7CisgICAgZ2w6OlNoYWRlck1hcDxHTGludD4gcGVyU2hhZGVyQUNCQ291bnQg
PSB7fTsKKyAgICBmb3IgKHVuc2lnbmVkIGludCBidWZmZXJJbmRleCA9IDA7IGJ1ZmZlckluZGV4
IDwgZ2V0QWN0aXZlQXRvbWljQ291bnRlckJ1ZmZlckNvdW50KCk7CisgICAgICAgICArK2J1ZmZl
ckluZGV4KQorICAgIHsKKyAgICAgICAgQXRvbWljQ291bnRlckJ1ZmZlciAmYWNiICAgICAgICA9
IG1BdG9taWNDb3VudGVyQnVmZmVyc1tidWZmZXJJbmRleF07CisgICAgICAgIGNvbnN0IFNoYWRl
ckJpdFNldCBzaGFkZXJTdGFnZXMgPSBhY2IuYWN0aXZlU2hhZGVycygpOworICAgICAgICBmb3Ig
KGdsOjpTaGFkZXJUeXBlIHNoYWRlclR5cGUgOiBzaGFkZXJTdGFnZXMpCisgICAgICAgIHsKKyAg
ICAgICAgICAgICsrcGVyU2hhZGVyQUNCQ291bnRbc2hhZGVyVHlwZV07CisgICAgICAgIH0KKyAg
ICAgICAgKytjb21iaW5lZFNoYWRlckFDQkNvdW50OworICAgIH0KKyAgICBjb25zdCBDYXBzICZj
YXBzID0gY29udGV4dC0+Z2V0Q2FwcygpOworICAgIGlmIChjb21iaW5lZFNoYWRlckFDQkNvdW50
ID4gY2Fwcy5tYXhDb21iaW5lZEF0b21pY0NvdW50ZXJCdWZmZXJzKQorICAgIHsKKyAgICAgICAg
aW5mb0xvZyA8PCAiIGNvbWJpbmVkIEF0b21pY0NvdW50ZXJCdWZmZXJzIGNvdW50IGV4Y2VlZHMg
bGltaXQiOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIGZvciAoZ2w6OlNoYWRl
clR5cGUgc3RhZ2UgOiBnbDo6QWxsU2hhZGVyVHlwZXMoKSkKKyAgICB7CisgICAgICAgIGlmIChw
ZXJTaGFkZXJBQ0JDb3VudFtzdGFnZV0gPiBjYXBzLm1heFNoYWRlckF0b21pY0NvdW50ZXJCdWZm
ZXJzW3N0YWdlXSkKKyAgICAgICAgeworICAgICAgICAgICAgaW5mb0xvZyA8PCBHZXRTaGFkZXJU
eXBlU3RyaW5nKHN0YWdlKQorICAgICAgICAgICAgICAgICAgICA8PCAiIHNoYWRlciBBdG9taWND
b3VudGVyQnVmZmVycyBjb3VudCBleGNlZWRzIGxpbWl0IjsKKyAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICAgfQorICAgIH0KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBQcm9n
cmFtRXhlY3V0YWJsZTo6Y29weVNoYWRlckJ1ZmZlcnNGcm9tUHJvZ3JhbShjb25zdCBQcm9ncmFt
U3RhdGUgJnByb2dyYW1TdGF0ZSkKK3ZvaWQgUHJvZ3JhbUV4ZWN1dGFibGU6OmNvcHlJbnB1dHNG
cm9tUHJvZ3JhbShjb25zdCBQcm9ncmFtU3RhdGUgJnByb2dyYW1TdGF0ZSkKIHsKLSAgICBjb25z
dCBzdGQ6OnZlY3RvcjxJbnRlcmZhY2VCbG9jaz4gJnVib3MgPSBwcm9ncmFtU3RhdGUuZ2V0VW5p
Zm9ybUJsb2NrcygpOwotICAgIG1Vbmlmb3JtQmxvY2tzLmluc2VydChtVW5pZm9ybUJsb2Nrcy5l
bmQoKSwgdWJvcy5iZWdpbigpLCB1Ym9zLmVuZCgpKTsKLQotICAgIGNvbnN0IHN0ZDo6dmVjdG9y
PEludGVyZmFjZUJsb2NrPiAmc3Nib3MgPSBwcm9ncmFtU3RhdGUuZ2V0U2hhZGVyU3RvcmFnZUJs
b2NrcygpOwotICAgIG1TaGFkZXJTdG9yYWdlQmxvY2tzLmluc2VydChtU2hhZGVyU3RvcmFnZUJs
b2Nrcy5lbmQoKSwgc3Nib3MuYmVnaW4oKSwgc3Nib3MuZW5kKCkpOworICAgIG1Qcm9ncmFtSW5w
dXRzID0gcHJvZ3JhbVN0YXRlLmdldFByb2dyYW1JbnB1dHMoKTsKK30KIAotICAgIGNvbnN0IHN0
ZDo6dmVjdG9yPEF0b21pY0NvdW50ZXJCdWZmZXI+ICZhdG9taWNzID0gcHJvZ3JhbVN0YXRlLmdl
dEF0b21pY0NvdW50ZXJCdWZmZXJzKCk7Ci0gICAgbUF0b21pY0NvdW50ZXJCdWZmZXJzLmluc2Vy
dChtQXRvbWljQ291bnRlckJ1ZmZlcnMuZW5kKCksIGF0b21pY3MuYmVnaW4oKSwgYXRvbWljcy5l
bmQoKSk7Cit2b2lkIFByb2dyYW1FeGVjdXRhYmxlOjpjb3B5U2hhZGVyQnVmZmVyc0Zyb21Qcm9n
cmFtKGNvbnN0IFByb2dyYW1TdGF0ZSAmcHJvZ3JhbVN0YXRlLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTaGFkZXJUeXBlIHNoYWRlclR5cGUp
Cit7CisgICAgQXBwZW5kQWN0aXZlQmxvY2tzKHNoYWRlclR5cGUsIHByb2dyYW1TdGF0ZS5nZXRV
bmlmb3JtQmxvY2tzKCksIG1Vbmlmb3JtQmxvY2tzKTsKKyAgICBBcHBlbmRBY3RpdmVCbG9ja3Mo
c2hhZGVyVHlwZSwgcHJvZ3JhbVN0YXRlLmdldFNoYWRlclN0b3JhZ2VCbG9ja3MoKSwgbVNoYWRl
clN0b3JhZ2VCbG9ja3MpOworICAgIEFwcGVuZEFjdGl2ZUJsb2NrcyhzaGFkZXJUeXBlLCBwcm9n
cmFtU3RhdGUuZ2V0QXRvbWljQ291bnRlckJ1ZmZlcnMoKSwgbUF0b21pY0NvdW50ZXJCdWZmZXJz
KTsKIH0KIAogdm9pZCBQcm9ncmFtRXhlY3V0YWJsZTo6Y2xlYXJTYW1wbGVyQmluZGluZ3MoKQpA
QCAtMTY1OSw2ICsxNzA1LDEzIEBAIHZvaWQgUHJvZ3JhbUV4ZWN1dGFibGU6OmNvcHlJbWFnZUJp
bmRpbmdzRnJvbVByb2dyYW0oY29uc3QgUHJvZ3JhbVN0YXRlICZwcm9ncmFtCiAgICAgbUltYWdl
QmluZGluZ3MuaW5zZXJ0KG1JbWFnZUJpbmRpbmdzLmVuZCgpLCBiaW5kaW5ncy5iZWdpbigpLCBi
aW5kaW5ncy5lbmQoKSk7CiB9CiAKK3ZvaWQgUHJvZ3JhbUV4ZWN1dGFibGU6OmNvcHlPdXRwdXRz
RnJvbVByb2dyYW0oY29uc3QgUHJvZ3JhbVN0YXRlICZwcm9ncmFtU3RhdGUpCit7CisgICAgbU91
dHB1dFZhcmlhYmxlcyAgICAgICAgICA9IHByb2dyYW1TdGF0ZS5nZXRPdXRwdXRWYXJpYWJsZXMo
KTsKKyAgICBtT3V0cHV0TG9jYXRpb25zICAgICAgICAgID0gcHJvZ3JhbVN0YXRlLmdldE91dHB1
dExvY2F0aW9ucygpOworICAgIG1TZWNvbmRhcnlPdXRwdXRMb2NhdGlvbnMgPSBwcm9ncmFtU3Rh
dGUuZ2V0U2Vjb25kYXJ5T3V0cHV0TG9jYXRpb25zKCk7Cit9CisKIHZvaWQgUHJvZ3JhbUV4ZWN1
dGFibGU6OmNvcHlVbmlmb3Jtc0Zyb21Qcm9ncmFtTWFwKGNvbnN0IFNoYWRlck1hcDxQcm9ncmFt
ICo+ICZwcm9ncmFtcykKIHsKICAgICAvLyBNZXJnZSBkZWZhdWx0IHVuaWZvcm1zLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL1Byb2dyYW1FeGVjdXRh
YmxlLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvUHJvZ3JhbUV4ZWN1
dGFibGUuaAppbmRleCA1M2RlMjI3ZjQwMjkxYTMzOGI2ZDE3MzQzM2FlNzJiNTc2NTYzZWI0Li45
NTA5MWUyMTI2ODhhZGU2YTdkY2VkNjU4ZDdjZTk1ZDM3MjU0ZDhjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvUHJvZ3JhbUV4ZWN1dGFibGUuaAorKysg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvUHJvZ3JhbUV4ZWN1dGFibGUu
aApAQCAtMTM3LDYgKzEzNywxMSBAQCBjbGFzcyBQcm9ncmFtRXhlY3V0YWJsZSBmaW5hbCA6IHB1
YmxpYyBhbmdsZTo6U3ViamVjdAogICAgICAgICByZXR1cm4gbUxpbmtlZFNoYWRlclN0YWdlc1tz
aGFkZXJUeXBlXTsKICAgICB9CiAgICAgc2l6ZV90IGdldExpbmtlZFNoYWRlclN0YWdlQ291bnQo
KSBjb25zdCB7IHJldHVybiBtTGlua2VkU2hhZGVyU3RhZ2VzLmNvdW50KCk7IH0KKyAgICBib29s
IGhhc0xpbmtlZEdyYXBoaWNzU2hhZGVyKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBt
TGlua2VkU2hhZGVyU3RhZ2VzLmFueSgpICYmCisgICAgICAgICAgICAgICBtTGlua2VkU2hhZGVy
U3RhZ2VzICE9IGdsOjpTaGFkZXJCaXRTZXR7Z2w6OlNoYWRlclR5cGU6OkNvbXB1dGV9OworICAg
IH0KICAgICBib29sIGhhc0xpbmtlZFRlc3NlbGxhdGlvblNoYWRlcigpIGNvbnN0CiAgICAgewog
ICAgICAgICByZXR1cm4gbUxpbmtlZFNoYWRlclN0YWdlc1tTaGFkZXJUeXBlOjpUZXNzRXZhbHVh
dGlvbl07CkBAIC0yMjAsNiArMjI1LDcgQEAgY2xhc3MgUHJvZ3JhbUV4ZWN1dGFibGUgZmluYWwg
OiBwdWJsaWMgYW5nbGU6OlN1YmplY3QKICAgICBjb25zdCBSYW5nZVVJICZnZXRBdG9taWNDb3Vu
dGVyVW5pZm9ybVJhbmdlKCkgY29uc3QgeyByZXR1cm4gbUF0b21pY0NvdW50ZXJVbmlmb3JtUmFu
Z2U7IH0KICAgICBjb25zdCBSYW5nZVVJICZnZXRGcmFnbWVudElub3V0UmFuZ2UoKSBjb25zdCB7
IHJldHVybiBtRnJhZ21lbnRJbm91dFJhbmdlOyB9CiAgICAgYm9vbCB1c2VzRWFybHlGcmFnbWVu
dFRlc3RzT3B0aW1pemF0aW9uKCkgY29uc3QgeyByZXR1cm4gbVVzZXNFYXJseUZyYWdtZW50VGVz
dHNPcHRpbWl6YXRpb247IH0KKyAgICBCbGVuZEVxdWF0aW9uQml0U2V0IGdldEFkdmFuY2VkQmxl
bmRFcXVhdGlvbnMoKSBjb25zdCB7IHJldHVybiBtQWR2YW5jZWRCbGVuZEVxdWF0aW9uczsgfQog
ICAgIGNvbnN0IHN0ZDo6dmVjdG9yPFRyYW5zZm9ybUZlZWRiYWNrVmFyeWluZz4gJmdldExpbmtl
ZFRyYW5zZm9ybUZlZWRiYWNrVmFyeWluZ3MoKSBjb25zdAogICAgIHsKICAgICAgICAgcmV0dXJu
IG1MaW5rZWRUcmFuc2Zvcm1GZWVkYmFja1ZhcnlpbmdzOwpAQCAtMzQxLDE1ICszNDcsMTUgQEAg
Y2xhc3MgUHJvZ3JhbUV4ZWN1dGFibGUgZmluYWwgOiBwdWJsaWMgYW5nbGU6OlN1YmplY3QKICAg
ICAgICAgICAgICAgICAgICAgICBzdGQ6OnZlY3RvcjxVbnVzZWRVbmlmb3JtPiAqdW51c2VkVW5p
Zm9ybXMsCiAgICAgICAgICAgICAgICAgICAgICAgc3RkOjp2ZWN0b3I8VmFyaWFibGVMb2NhdGlv
bj4gKnVuaWZvcm1Mb2NhdGlvbnNPdXRPck51bGwpOwogCi0gICAgdm9pZCBjb3B5U2hhZGVyQnVm
ZmVyc0Zyb21Qcm9ncmFtKGNvbnN0IFByb2dyYW1TdGF0ZSAmcHJvZ3JhbVN0YXRlKTsKKyAgICB2
b2lkIGNvcHlJbnB1dHNGcm9tUHJvZ3JhbShjb25zdCBQcm9ncmFtU3RhdGUgJnByb2dyYW1TdGF0
ZSk7CisgICAgdm9pZCBjb3B5U2hhZGVyQnVmZmVyc0Zyb21Qcm9ncmFtKGNvbnN0IFByb2dyYW1T
dGF0ZSAmcHJvZ3JhbVN0YXRlLCBTaGFkZXJUeXBlIHNoYWRlclR5cGUpOwogICAgIHZvaWQgY2xl
YXJTYW1wbGVyQmluZGluZ3MoKTsKICAgICB2b2lkIGNvcHlTYW1wbGVyQmluZGluZ3NGcm9tUHJv
Z3JhbShjb25zdCBQcm9ncmFtU3RhdGUgJnByb2dyYW1TdGF0ZSk7CiAgICAgdm9pZCBjb3B5SW1h
Z2VCaW5kaW5nc0Zyb21Qcm9ncmFtKGNvbnN0IFByb2dyYW1TdGF0ZSAmcHJvZ3JhbVN0YXRlKTsK
KyAgICB2b2lkIGNvcHlPdXRwdXRzRnJvbVByb2dyYW0oY29uc3QgUHJvZ3JhbVN0YXRlICZwcm9n
cmFtU3RhdGUpOwogICAgIHZvaWQgY29weVVuaWZvcm1zRnJvbVByb2dyYW1NYXAoY29uc3QgU2hh
ZGVyTWFwPFByb2dyYW0gKj4gJnByb2dyYW1zKTsKIAogICBwcml2YXRlOgotICAgIC8vIFRPRE8o
dGltdnApOiBodHRwOi8vYW5nbGVidWcuY29tLzM1NzA6IEludmVzdGlnYXRlIHJlbW92aW5nIHRo
ZXNlIGZyaWVuZAotICAgIC8vIGNsYXNzIGRlY2xhcmF0aW9ucyBhbmQgYWNjZXNzaW5nIHRoZSBu
ZWNlc3NhcnkgbWVtYmVycyB3aXRoIGdldHRlcnMvc2V0dGVycy4KICAgICBmcmllbmQgY2xhc3Mg
UHJvZ3JhbTsKICAgICBmcmllbmQgY2xhc3MgUHJvZ3JhbVBpcGVsaW5lOwogICAgIGZyaWVuZCBj
bGFzcyBQcm9ncmFtU3RhdGU7CkBAIC0zOTMsNyArMzk5LDcgQEAgY2xhc3MgUHJvZ3JhbUV4ZWN1
dGFibGUgZmluYWwgOiBwdWJsaWMgYW5nbGU6OlN1YmplY3QKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBQcm9ncmFtQWxpYXNlZEJpbmRpbmdzICZmcmFnbWVudE91
dHB1dEluZGljZXMpOwogCiAgICAgdm9pZCBsaW5rU2FtcGxlckFuZEltYWdlQmluZGluZ3MoR0x1
aW50ICpjb21iaW5lZEltYWdlVW5pZm9ybXNDb3VudCk7Ci0gICAgYm9vbCBsaW5rQXRvbWljQ291
bnRlckJ1ZmZlcnMoKTsKKyAgICBib29sIGxpbmtBdG9taWNDb3VudGVyQnVmZmVycyhjb25zdCBD
b250ZXh0ICpjb250ZXh0LCBJbmZvTG9nICZpbmZvTG9nKTsKIAogICAgIEluZm9Mb2cgbUluZm9M
b2c7CiAKQEAgLTQ2MSw2ICs0NjcsOSBAQCBjbGFzcyBQcm9ncmFtRXhlY3V0YWJsZSBmaW5hbCA6
IHB1YmxpYyBhbmdsZTo6U3ViamVjdAogICAgIFJhbmdlVUkgbUZyYWdtZW50SW5vdXRSYW5nZTsK
ICAgICBib29sIG1Vc2VzRWFybHlGcmFnbWVudFRlc3RzT3B0aW1pemF0aW9uOwogCisgICAgLy8g
S0hSX2JsZW5kX2VxdWF0aW9uX2FkdmFuY2VkIHN1cHBvcnRlZCBlcXVhdGlvbiBsaXN0CisgICAg
QmxlbmRFcXVhdGlvbkJpdFNldCBtQWR2YW5jZWRCbGVuZEVxdWF0aW9uczsKKwogICAgIC8vIEFu
IGFycmF5IG9mIHRoZSBzYW1wbGVycyB0aGF0IGFyZSB1c2VkIGJ5IHRoZSBwcm9ncmFtCiAgICAg
c3RkOjp2ZWN0b3I8U2FtcGxlckJpbmRpbmc+IG1TYW1wbGVyQmluZGluZ3M7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9Qcm9ncmFtTGlua2VkUmVz
b3VyY2VzLmNwcCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9Qcm9ncmFt
TGlua2VkUmVzb3VyY2VzLmNwcAppbmRleCBiNWEyNWM4YTY4MDAyMDIwMTZiYzIxM2JjNDc0YzNh
ZjY2MWM0NTFlLi43NGY0MTE4YTU1MmNjNmVlNzFjYjdjZGQ0ODhlNTJhMzg1ZDdiNTE3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvUHJvZ3JhbUxpbmtl
ZFJlc291cmNlcy5jcHAKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xF
L1Byb2dyYW1MaW5rZWRSZXNvdXJjZXMuY3BwCkBAIC00NTgsNiArNDU4LDIwIEBAIGNsYXNzIEZs
YXR0ZW5Vbmlmb3JtVmlzaXRvciA6IHB1YmxpYyBzaDo6VmFyaWFibGVOYW1lVmlzaXRvcgogICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgIGxpbmtlZFVuaWZvcm0uc2V0UGFyZW50QXJyYXlJ
bmRleCh2YXJpYWJsZS5wYXJlbnRBcnJheUluZGV4KCkpOwogICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICBzdGQ6OnZlY3Rvcjx1bnNpZ25lZCBpbnQ+IGFycmF5RGltcyA9IGFycmF5U2l6ZXM7
CisgICAgICAgICAgICBBU1NFUlQodmFyaWFibGUuYXJyYXlTaXplcy5zaXplKCkgPT0gMSB8fCB2
YXJpYWJsZS5hcnJheVNpemVzLnNpemUoKSA9PSAwKTsKKyAgICAgICAgICAgIGFycmF5RGltcy5w
dXNoX2JhY2sodmFyaWFibGUuYXJyYXlTaXplcy5lbXB0eSgpID8gMSA6IHZhcmlhYmxlLmFycmF5
U2l6ZXNbMF0pOworCisgICAgICAgICAgICBzaXplX3QgbnVtRGltZW5zaW9ucyA9IGFycmF5U2l6
ZXMuc2l6ZSgpOworICAgICAgICAgICAgdWludDMyX3QgYXJyYXlTdHJpZGUgPSAxOworICAgICAg
ICAgICAgZm9yIChzaXplX3QgZGltZW5zaW9uID0gbnVtRGltZW5zaW9uczsgZGltZW5zaW9uID4g
MDspCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgLS1kaW1lbnNpb247CisgICAgICAg
ICAgICAgICAgYXJyYXlTdHJpZGUgKj0gYXJyYXlEaW1zW2RpbWVuc2lvbiArIDFdOworICAgICAg
ICAgICAgICAgIGxpbmtlZFVuaWZvcm0ub3V0ZXJBcnJheU9mZnNldCArPSBhcnJheVN0cmlkZSAq
IG1BcnJheUVsZW1lbnRTdGFja1tkaW1lbnNpb25dOworICAgICAgICAgICAgfQorCiAgICAgICAg
ICAgICBpZiAobU1hcmtBY3RpdmUpCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgbGlu
a2VkVW5pZm9ybS5zZXRBY3RpdmUobVNoYWRlclR5cGUsIHRydWUpOwpAQCAtNTA1LDYgKzUxOSwx
OCBAQCBjbGFzcyBGbGF0dGVuVW5pZm9ybVZpc2l0b3IgOiBwdWJsaWMgc2g6OlZhcmlhYmxlTmFt
ZVZpc2l0b3IKICAgICAgICAgc2g6OlZhcmlhYmxlTmFtZVZpc2l0b3I6OmV4aXRTdHJ1Y3RBY2Nl
c3Moc3RydWN0VmFyLCBpc1Jvd01ham9yKTsKICAgICB9CiAKKyAgICB2b2lkIGVudGVyQXJyYXlF
bGVtZW50KGNvbnN0IHNoOjpTaGFkZXJWYXJpYWJsZSAmYXJyYXlWYXIsIHVuc2lnbmVkIGludCBh
cnJheUVsZW1lbnQpIG92ZXJyaWRlCisgICAgeworICAgICAgICBtQXJyYXlFbGVtZW50U3RhY2su
cHVzaF9iYWNrKGFycmF5RWxlbWVudCk7CisgICAgICAgIHNoOjpWYXJpYWJsZU5hbWVWaXNpdG9y
OjplbnRlckFycmF5RWxlbWVudChhcnJheVZhciwgYXJyYXlFbGVtZW50KTsKKyAgICB9CisKKyAg
ICB2b2lkIGV4aXRBcnJheUVsZW1lbnQoY29uc3Qgc2g6OlNoYWRlclZhcmlhYmxlICZhcnJheVZh
ciwgdW5zaWduZWQgaW50IGFycmF5RWxlbWVudCkgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIG1B
cnJheUVsZW1lbnRTdGFjay5wb3BfYmFjaygpOworICAgICAgICBzaDo6VmFyaWFibGVOYW1lVmlz
aXRvcjo6ZXhpdEFycmF5RWxlbWVudChhcnJheVZhciwgYXJyYXlFbGVtZW50KTsKKyAgICB9CisK
ICAgICBTaGFkZXJVbmlmb3JtQ291bnQgZ2V0Q291bnRzKCkgY29uc3QgeyByZXR1cm4gbVVuaWZv
cm1Db3VudDsgfQogCiAgIHByaXZhdGU6CkBAIC01MjUsNiArNTUxLDcgQEAgY2xhc3MgRmxhdHRl
blVuaWZvcm1WaXNpdG9yIDogcHVibGljIHNoOjpWYXJpYWJsZU5hbWVWaXNpdG9yCiAgICAgc3Rk
Ojp2ZWN0b3I8TGlua2VkVW5pZm9ybT4gKm1BdG9taWNDb3VudGVyVW5pZm9ybXM7CiAgICAgc3Rk
Ojp2ZWN0b3I8TGlua2VkVW5pZm9ybT4gKm1JbnB1dEF0dGFjaG1lbnRVbmlmb3JtczsKICAgICBz
dGQ6OnZlY3RvcjxVbnVzZWRVbmlmb3JtPiAqbVVudXNlZFVuaWZvcm1zOworICAgIHN0ZDo6dmVj
dG9yPHVuc2lnbmVkIGludD4gbUFycmF5RWxlbWVudFN0YWNrOwogICAgIFNoYWRlclVuaWZvcm1D
b3VudCBtVW5pZm9ybUNvdW50OwogICAgIHVuc2lnbmVkIGludCBtU3RydWN0U3RhY2tTaXplID0g
MDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUv
UHJvZ3JhbVBpcGVsaW5lLmNwcCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdM
RS9Qcm9ncmFtUGlwZWxpbmUuY3BwCmluZGV4IDU1NzhkOWYxZjJkNzgwZmVmYTVhMTM3YWRhMzZi
YWI0NjBiMDliYzguLjMzZGE3YzJiNjcxZTI3MjkwYzFhZGI2NWEyOTRkMzA0M2UxZTkwYjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9Qcm9ncmFtUGlw
ZWxpbmUuY3BwCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9Qcm9n
cmFtUGlwZWxpbmUuY3BwCkBAIC01MjQsMTYgKzUyNCwyOCBAQCBhbmdsZTo6UmVzdWx0IFByb2dy
YW1QaXBlbGluZTo6bGluayhjb25zdCBDb250ZXh0ICpjb250ZXh0KQogICAgIC8vIE1lcmdlIHVu
aWZvcm1zLgogICAgIG1TdGF0ZS5tRXhlY3V0YWJsZS0+Y29weVVuaWZvcm1zRnJvbVByb2dyYW1N
YXAobVN0YXRlLm1Qcm9ncmFtcyk7CiAKKyAgICBpZiAobVN0YXRlLm1FeGVjdXRhYmxlLT5oYXNM
aW5rZWRTaGFkZXJTdGFnZShnbDo6U2hhZGVyVHlwZTo6VmVydGV4KSkKKyAgICB7CisgICAgICAg
IGNvbnN0IFByb2dyYW1TdGF0ZSAmcHJvZ3JhbVN0YXRlID0gbVN0YXRlLm1Qcm9ncmFtc1tnbDo6
U2hhZGVyVHlwZTo6VmVydGV4XS0+Z2V0U3RhdGUoKTsKKyAgICAgICAgbVN0YXRlLm1FeGVjdXRh
YmxlLT5jb3B5SW5wdXRzRnJvbVByb2dyYW0ocHJvZ3JhbVN0YXRlKTsKKyAgICB9CisKICAgICAv
LyBNZXJnZSBzaGFkZXIgYnVmZmVycyAoVUJPcywgU1NCT3MsIGFuZCBhdG9taWMgY291bnRlciBi
dWZmZXJzKSBpbnRvIHRoZSBleGVjdXRhYmxlLgogICAgIC8vIEFsc28gY29weSBvdmVyIGltYWdl
IGFuZCBzYW1wbGVyIGJpbmRpbmdzLgogICAgIGZvciAoU2hhZGVyVHlwZSBzaGFkZXJUeXBlIDog
bVN0YXRlLm1FeGVjdXRhYmxlLT5nZXRMaW5rZWRTaGFkZXJTdGFnZXMoKSkKICAgICB7CiAgICAg
ICAgIGNvbnN0IFByb2dyYW1TdGF0ZSAmcHJvZ3JhbVN0YXRlID0gbVN0YXRlLm1Qcm9ncmFtc1tz
aGFkZXJUeXBlXS0+Z2V0U3RhdGUoKTsKLSAgICAgICAgbVN0YXRlLm1FeGVjdXRhYmxlLT5jb3B5
U2hhZGVyQnVmZmVyc0Zyb21Qcm9ncmFtKHByb2dyYW1TdGF0ZSk7CisgICAgICAgIG1TdGF0ZS5t
RXhlY3V0YWJsZS0+Y29weVNoYWRlckJ1ZmZlcnNGcm9tUHJvZ3JhbShwcm9ncmFtU3RhdGUsIHNo
YWRlclR5cGUpOwogICAgICAgICBtU3RhdGUubUV4ZWN1dGFibGUtPmNvcHlTYW1wbGVyQmluZGlu
Z3NGcm9tUHJvZ3JhbShwcm9ncmFtU3RhdGUpOwogICAgICAgICBtU3RhdGUubUV4ZWN1dGFibGUt
PmNvcHlJbWFnZUJpbmRpbmdzRnJvbVByb2dyYW0ocHJvZ3JhbVN0YXRlKTsKICAgICB9CiAKKyAg
ICBpZiAobVN0YXRlLm1FeGVjdXRhYmxlLT5oYXNMaW5rZWRTaGFkZXJTdGFnZShnbDo6U2hhZGVy
VHlwZTo6RnJhZ21lbnQpKQorICAgIHsKKyAgICAgICAgY29uc3QgUHJvZ3JhbVN0YXRlICZwcm9n
cmFtU3RhdGUgPSBtU3RhdGUubVByb2dyYW1zW2dsOjpTaGFkZXJUeXBlOjpGcmFnbWVudF0tPmdl
dFN0YXRlKCk7CisgICAgICAgIG1TdGF0ZS5tRXhlY3V0YWJsZS0+Y29weU91dHB1dHNGcm9tUHJv
Z3JhbShwcm9ncmFtU3RhdGUpOworICAgIH0KKwogICAgIGlmIChtU3RhdGUubUV4ZWN1dGFibGUt
Pmhhc0xpbmtlZFNoYWRlclN0YWdlKGdsOjpTaGFkZXJUeXBlOjpWZXJ0ZXgpIHx8CiAgICAgICAg
IG1TdGF0ZS5tRXhlY3V0YWJsZS0+aGFzTGlua2VkU2hhZGVyU3RhZ2UoZ2w6OlNoYWRlclR5cGU6
OkNvbXB1dGUpKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3Ny
Yy9saWJBTkdMRS9SZW5kZXJidWZmZXIuY3BwIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3Jj
L2xpYkFOR0xFL1JlbmRlcmJ1ZmZlci5jcHAKaW5kZXggMjAwMDM4ODY3ZjM0YTZmYWVlMzVmZjQ1
MjM3MjY1OWYzYTcxZDlhMy4uMGQ4NWYyZTdhMzNmOGRjN2FlZjJiYWNmNmFhYTQ5MDAzNjVhOTBi
MyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL1JlbmRl
cmJ1ZmZlci5jcHAKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL1Jl
bmRlcmJ1ZmZlci5jcHAKQEAgLTM1OSw3ICszNTksNyBAQCBib29sIFJlbmRlcmJ1ZmZlcjo6aXNS
ZW5kZXJhYmxlKGNvbnN0IENvbnRleHQgKmNvbnRleHQsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpKTsKIH0K
IAotSW5pdFN0YXRlIFJlbmRlcmJ1ZmZlcjo6aW5pdFN0YXRlKGNvbnN0IGdsOjpJbWFnZUluZGV4
ICYgLyppbWFnZUluZGV4Ki8pIGNvbnN0CitJbml0U3RhdGUgUmVuZGVyYnVmZmVyOjppbml0U3Rh
dGUoR0xlbnVtIC8qYmluZGluZyovLCBjb25zdCBnbDo6SW1hZ2VJbmRleCAmIC8qaW1hZ2VJbmRl
eCovKSBjb25zdAogewogICAgIGlmIChpc0VHTEltYWdlVGFyZ2V0KCkpCiAgICAgewpAQCAtMzY5
LDcgKzM2OSw5IEBAIEluaXRTdGF0ZSBSZW5kZXJidWZmZXI6OmluaXRTdGF0ZShjb25zdCBnbDo6
SW1hZ2VJbmRleCAmIC8qaW1hZ2VJbmRleCovKSBjb25zdAogICAgIHJldHVybiBtU3RhdGUubUlu
aXRTdGF0ZTsKIH0KIAotdm9pZCBSZW5kZXJidWZmZXI6OnNldEluaXRTdGF0ZShjb25zdCBnbDo6
SW1hZ2VJbmRleCAmIC8qaW1hZ2VJbmRleCovLCBJbml0U3RhdGUgaW5pdFN0YXRlKQordm9pZCBS
ZW5kZXJidWZmZXI6OnNldEluaXRTdGF0ZShHTGVudW0gLypiaW5kaW5nKi8sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdsOjpJbWFnZUluZGV4ICYgLyppbWFnZUluZGV4
Ki8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEluaXRTdGF0ZSBpbml0U3RhdGUp
CiB7CiAgICAgaWYgKGlzRUdMSW1hZ2VUYXJnZXQoKSkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvUmVuZGVyYnVmZmVyLmggYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvUmVuZGVyYnVmZmVyLmgKaW5kZXggNDM4MGE3
MTM4NTZhODA3YTViM2IwNjAzNGRkMzk4YWU1ODI1ZmY0OS4uNDk4MmQxM2ZhNTcwMWNhMjgwYmVi
MWU2MjI0MmRjNmMyZjliYzdjNyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUv
c3JjL2xpYkFOR0xFL1JlbmRlcmJ1ZmZlci5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xF
L3NyYy9saWJBTkdMRS9SZW5kZXJidWZmZXIuaApAQCAtMTQ5LDggKzE0OSw4IEBAIGNsYXNzIFJl
bmRlcmJ1ZmZlciBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudE9iamVjdDxSZW5kZXJidWZmZXJJRD4s
CiAgICAgdm9pZCBvbkRldGFjaChjb25zdCBDb250ZXh0ICpjb250ZXh0LCByeDo6U2VyaWFsIGZy
YW1lYnVmZmVyU2VyaWFsKSBvdmVycmlkZTsKICAgICBHTHVpbnQgZ2V0SWQoKSBjb25zdCBvdmVy
cmlkZTsKIAotICAgIEluaXRTdGF0ZSBpbml0U3RhdGUoY29uc3QgSW1hZ2VJbmRleCAmaW1hZ2VJ
bmRleCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXRJbml0U3RhdGUoY29uc3QgSW1hZ2VJ
bmRleCAmaW1hZ2VJbmRleCwgSW5pdFN0YXRlIGluaXRTdGF0ZSkgb3ZlcnJpZGU7CisgICAgSW5p
dFN0YXRlIGluaXRTdGF0ZShHTGVudW0gYmluZGluZywgY29uc3QgSW1hZ2VJbmRleCAmaW1hZ2VJ
bmRleCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRJbml0U3RhdGUoR0xlbnVtIGJpbmRp
bmcsIGNvbnN0IEltYWdlSW5kZXggJmltYWdlSW5kZXgsIEluaXRTdGF0ZSBpbml0U3RhdGUpIG92
ZXJyaWRlOwogCiAgICAgR0xlbnVtIGdldEltcGxlbWVudGF0aW9uQ29sb3JSZWFkRm9ybWF0KGNv
bnN0IENvbnRleHQgKmNvbnRleHQpIGNvbnN0OwogICAgIEdMZW51bSBnZXRJbXBsZW1lbnRhdGlv
bkNvbG9yUmVhZFR5cGUoY29uc3QgQ29udGV4dCAqY29udGV4dCkgY29uc3Q7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvU2hhZGVyLmNwcCBiL1NvdXJj
ZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9TaGFkZXIuY3BwCmluZGV4IGU5Y2I3MWI2
MDE3Njg2ZjZkZjViNmJiNjQ2M2ExZmUzOTdjYTk5N2MuLmZmMTZmZTVjNDc2N2EyYTY3MDRjMmM1
ZWUzOGY0MTQ0NmNhNmFlYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3Ny
Yy9saWJBTkdMRS9TaGFkZXIuY3BwCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9s
aWJBTkdMRS9TaGFkZXIuY3BwCkBAIC0yMiw3ICsyMiw3IEBACiAjaW5jbHVkZSAibGliQU5HTEUv
UmVzb3VyY2VNYW5hZ2VyLmgiCiAjaW5jbHVkZSAibGliQU5HTEUvcmVuZGVyZXIvR0xJbXBsRmFj
dG9yeS5oIgogI2luY2x1ZGUgImxpYkFOR0xFL3JlbmRlcmVyL1NoYWRlckltcGwuaCIKLSNpbmNs
dWRlICJwbGF0Zm9ybS9Gcm9udGVuZEZlYXR1cmVzLmgiCisjaW5jbHVkZSAicGxhdGZvcm0vRnJv
bnRlbmRGZWF0dXJlc19hdXRvZ2VuLmgiCiAKIG5hbWVzcGFjZSBnbAogewpkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL1N0YXRlLmNwcCBiL1NvdXJjZS9U
aGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9TdGF0ZS5jcHAKaW5kZXggZmNhODJmYjAyOGUw
N2UzOTM3ZWQ5MTZlMmIxZGRlYjE3NTA3ZWNmMC4uM2VjODI5ZGNiNDkyMTAxMzgxMGY1MzU0YWE5
Mjc0YmM0MzJiNTQ4YiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xp
YkFOR0xFL1N0YXRlLmNwcAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5H
TEUvU3RhdGUuY3BwCkBAIC00MjEsNyArNDIxLDkgQEAgU3RhdGU6OlN0YXRlKGNvbnN0IFN0YXRl
ICpzaGFyZUNvbnRleHRTdGF0ZSwKICAgICAgIG1Cb3VuZGluZ0JveE1heFgoMS4wZiksCiAgICAg
ICBtQm91bmRpbmdCb3hNYXhZKDEuMGYpLAogICAgICAgbUJvdW5kaW5nQm94TWF4WigxLjBmKSwK
LSAgICAgIG1Cb3VuZGluZ0JveE1heFcoMS4wZikKKyAgICAgIG1Cb3VuZGluZ0JveE1heFcoMS4w
ZiksCisgICAgICBtU2hhZGluZ1JhdGVQcmVzZXJ2ZUFzcGVjdFJhdGlvKGZhbHNlKSwKKyAgICAg
IG1TaGFkaW5nUmF0ZShTaGFkaW5nUmF0ZTo6XzF4MSkKIHt9CiAKIFN0YXRlOjp+U3RhdGUoKSB7
fQpAQCAtODAyLDcgKzgwNCw3IEBAIGJvb2wgU3RhdGU6OmFueUFjdGl2ZURyYXdCdWZmZXJDaGFu
bmVsTWFza2VkKCkgY29uc3QKIHsKICAgICAvLyBDb21wYXJlIGN1cnJlbnQgY29sb3IgbWFzayB3
aXRoIGFsbC1lbmFibGVkIGNvbG9yIG1hc2ssIHdoaWxlIGlnbm9yaW5nIGRpc2FibGVkIGRyYXcK
ICAgICAvLyBidWZmZXJzLgotICAgIHJldHVybiAobUJsZW5kU3RhdGVFeHQuY29tcGFyZUNvbG9y
TWFzayhtQmxlbmRTdGF0ZUV4dC5tTWF4Q29sb3JNYXNrKSAmCisgICAgcmV0dXJuIChtQmxlbmRT
dGF0ZUV4dC5jb21wYXJlQ29sb3JNYXNrKG1CbGVuZFN0YXRlRXh0LmdldEFsbENvbG9yTWFza0Jp
dHMoKSkgJgogICAgICAgICAgICAgbURyYXdGcmFtZWJ1ZmZlci0+Z2V0RHJhd0J1ZmZlck1hc2so
KSkKICAgICAgICAgLmFueSgpOwogfQpAQCAtMTMzOSw2ICsxMzQxLDEwIEBAIHZvaWQgU3RhdGU6
OnNldEVuYWJsZUZlYXR1cmUoR0xlbnVtIGZlYXR1cmUsIGJvb2wgZW5hYmxlZCkKICAgICAgICAg
ICAgICAgICBzZXRDbGlwRGlzdGFuY2VFbmFibGUoZmVhdHVyZSAtIEdMX0NMSVBfRElTVEFOQ0Uw
X0VYVCwgZW5hYmxlZCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgR0xfU0hBRElOR19SQVRFX1BSRVNFUlZF
X0FTUEVDVF9SQVRJT19RQ09NOgorICAgICAgICAgICAgbVNoYWRpbmdSYXRlUHJlc2VydmVBc3Bl
Y3RSYXRpbyA9IGVuYWJsZWQ7CisgICAgICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgQVNT
RVJUKG1DbGllbnRWZXJzaW9uLm1ham9yID09IDEpOwpAQCAtMTQ4NCw2ICsxNDkwLDggQEAgYm9v
bCBTdGF0ZTo6Z2V0RW5hYmxlRmVhdHVyZShHTGVudW0gZmVhdHVyZSkgY29uc3QKICAgICAgICAg
ICAgICAgICByZXR1cm4gbUNsaXBEaXN0YW5jZXNFbmFibGVkLnRlc3QoZmVhdHVyZSAtIEdMX0NM
SVBfRElTVEFOQ0UwX0VYVCk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSBHTF9TSEFESU5HX1JBVEVfUFJFU0VSVkVfQVNQRUNUX1JBVElPX1FDT006Cisg
ICAgICAgICAgICByZXR1cm4gbVNoYWRpbmdSYXRlUHJlc2VydmVBc3BlY3RSYXRpbzsKICAgICB9
CiAKICAgICBBU1NFUlQobUNsaWVudFZlcnNpb24ubWFqb3IgPT0gMSk7CkBAIC0yMTc5LDEwICsy
MTg3LDcgQEAgYW5nbGU6OlJlc3VsdCBTdGF0ZTo6ZGV0YWNoQnVmZmVyKENvbnRleHQgKmNvbnRl
eHQsIGNvbnN0IEJ1ZmZlciAqYnVmZmVyKQogICAgIGlmIChjdXJUcmFuc2Zvcm1GZWVkYmFjaykK
ICAgICB7CiAgICAgICAgIEFOR0xFX1RSWShjdXJUcmFuc2Zvcm1GZWVkYmFjay0+ZGV0YWNoQnVm
ZmVyKGNvbnRleHQsIGJ1ZmZlcklEKSk7Ci0gICAgICAgIGlmIChpc1RyYW5zZm9ybUZlZWRiYWNr
QWN0aXZlVW5wYXVzZWQoKSkKLSAgICAgICAgewotICAgICAgICAgICAgY29udGV4dC0+Z2V0U3Rh
dGVDYWNoZSgpLm9uQWN0aXZlVHJhbnNmb3JtRmVlZGJhY2tDaGFuZ2UoY29udGV4dCk7Ci0gICAg
ICAgIH0KKyAgICAgICAgY29udGV4dC0+Z2V0U3RhdGVDYWNoZSgpLm9uQWN0aXZlVHJhbnNmb3Jt
RmVlZGJhY2tDaGFuZ2UoY29udGV4dCk7CiAgICAgfQogCiAgICAgaWYgKGdldFZlcnRleEFycmF5
KCktPmRldGFjaEJ1ZmZlcihjb250ZXh0LCBidWZmZXJJRCkpCkBAIC0yMzcyLDYgKzIzNzcsMTMg
QEAgdm9pZCBTdGF0ZTo6c2V0UGF0Y2hWZXJ0aWNlcyhHTHVpbnQgdmFsdWUpCiAgICAgfQogfQog
Cit2b2lkIFN0YXRlOjpzZXRTaGFkaW5nUmF0ZShHTGVudW0gcmF0ZSkKK3sKKyAgICBtU2hhZGlu
Z1JhdGUgPSBGcm9tR0xlbnVtPFNoYWRpbmdSYXRlPihyYXRlKTsKKyAgICBtRGlydHlCaXRzLnNl
dChESVJUWV9CSVRfRVhURU5ERUQpOworICAgIG1FeHRlbmRlZERpcnR5Qml0cy5zZXQoRVhURU5E
RURfRElSVFlfQklUX1NIQURJTkdfUkFURSk7Cit9CisKIHZvaWQgU3RhdGU6OmdldEJvb2xlYW52
KEdMZW51bSBwbmFtZSwgR0xib29sZWFuICpwYXJhbXMpIGNvbnN0CiB7CiAgICAgc3dpdGNoIChw
bmFtZSkKQEAgLTI0MTksNyArMjQzMSw3IEBAIHZvaWQgU3RhdGU6OmdldEJvb2xlYW52KEdMZW51
bSBwbmFtZSwgR0xib29sZWFuICpwYXJhbXMpIGNvbnN0CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgY2FzZSBHTF9CTEVORDoKICAgICAgICAgICAgIC8vIG5vbi1pbmRleGVkIGdldCByZXR1
cm5zIHRoZSBzdGF0ZSBvZiBkcmF3IGJ1ZmZlciB6ZXJvCi0gICAgICAgICAgICAqcGFyYW1zID0g
bUJsZW5kU3RhdGVFeHQubUVuYWJsZWRNYXNrLnRlc3QoMCk7CisgICAgICAgICAgICAqcGFyYW1z
ID0gbUJsZW5kU3RhdGVFeHQuZ2V0RW5hYmxlZE1hc2soKS50ZXN0KDApOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIGNhc2UgR0xfRElUSEVSOgogICAgICAgICAgICAgKnBhcmFtcyA9IG1S
YXN0ZXJpemVyLmRpdGhlcjsKQEAgLTMwODYsNiArMzA5OCwxMiBAQCBhbmdsZTo6UmVzdWx0IFN0
YXRlOjpnZXRJbnRlZ2Vydihjb25zdCBDb250ZXh0ICpjb250ZXh0LCBHTGVudW0gcG5hbWUsIEdM
aW50ICpwYQogICAgICAgICBjYXNlIEdMX0NMSVBfREVQVEhfTU9ERV9FWFQ6CiAgICAgICAgICAg
ICAqcGFyYW1zID0gbUNsaXBDb250cm9sRGVwdGg7CiAgICAgICAgICAgICBicmVhazsKKworICAg
ICAgICAvLyBHTF9RQ09NX3NoYWRpbmdfcmF0ZQorICAgICAgICBjYXNlIEdMX1NIQURJTkdfUkFU
RV9RQ09NOgorICAgICAgICAgICAgKnBhcmFtcyA9IFRvR0xlbnVtKG1TaGFkaW5nUmF0ZSk7Cisg
ICAgICAgICAgICBicmVhazsKKwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgVU5SRUFD
SEFCTEUoKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMzEyNCwyNyArMzE0MiwyNyBAQCB2b2lk
IFN0YXRlOjpnZXRJbnRlZ2VyaV92KEdMZW51bSB0YXJnZXQsIEdMdWludCBpbmRleCwgR0xpbnQg
KmRhdGEpIGNvbnN0CiAgICAgc3dpdGNoICh0YXJnZXQpCiAgICAgewogICAgICAgICBjYXNlIEdM
X0JMRU5EX1NSQ19SR0I6Ci0gICAgICAgICAgICBBU1NFUlQoc3RhdGljX2Nhc3Q8c2l6ZV90Pihp
bmRleCkgPCBtQmxlbmRTdGF0ZUV4dC5tTWF4RHJhd0J1ZmZlcnMpOworICAgICAgICAgICAgQVNT
RVJUKHN0YXRpY19jYXN0PHNpemVfdD4oaW5kZXgpIDwgbUJsZW5kU3RhdGVFeHQuZ2V0RHJhd0J1
ZmZlckNvdW50KCkpOwogICAgICAgICAgICAgKmRhdGEgPSBtQmxlbmRTdGF0ZUV4dC5nZXRTcmND
b2xvckluZGV4ZWQoaW5kZXgpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgR0xf
QkxFTkRfU1JDX0FMUEhBOgotICAgICAgICAgICAgQVNTRVJUKHN0YXRpY19jYXN0PHNpemVfdD4o
aW5kZXgpIDwgbUJsZW5kU3RhdGVFeHQubU1heERyYXdCdWZmZXJzKTsKKyAgICAgICAgICAgIEFT
U0VSVChzdGF0aWNfY2FzdDxzaXplX3Q+KGluZGV4KSA8IG1CbGVuZFN0YXRlRXh0LmdldERyYXdC
dWZmZXJDb3VudCgpKTsKICAgICAgICAgICAgICpkYXRhID0gbUJsZW5kU3RhdGVFeHQuZ2V0U3Jj
QWxwaGFJbmRleGVkKGluZGV4KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEdM
X0JMRU5EX0RTVF9SR0I6Ci0gICAgICAgICAgICBBU1NFUlQoc3RhdGljX2Nhc3Q8c2l6ZV90Pihp
bmRleCkgPCBtQmxlbmRTdGF0ZUV4dC5tTWF4RHJhd0J1ZmZlcnMpOworICAgICAgICAgICAgQVNT
RVJUKHN0YXRpY19jYXN0PHNpemVfdD4oaW5kZXgpIDwgbUJsZW5kU3RhdGVFeHQuZ2V0RHJhd0J1
ZmZlckNvdW50KCkpOwogICAgICAgICAgICAgKmRhdGEgPSBtQmxlbmRTdGF0ZUV4dC5nZXREc3RD
b2xvckluZGV4ZWQoaW5kZXgpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgR0xf
QkxFTkRfRFNUX0FMUEhBOgotICAgICAgICAgICAgQVNTRVJUKHN0YXRpY19jYXN0PHNpemVfdD4o
aW5kZXgpIDwgbUJsZW5kU3RhdGVFeHQubU1heERyYXdCdWZmZXJzKTsKKyAgICAgICAgICAgIEFT
U0VSVChzdGF0aWNfY2FzdDxzaXplX3Q+KGluZGV4KSA8IG1CbGVuZFN0YXRlRXh0LmdldERyYXdC
dWZmZXJDb3VudCgpKTsKICAgICAgICAgICAgICpkYXRhID0gbUJsZW5kU3RhdGVFeHQuZ2V0RHN0
QWxwaGFJbmRleGVkKGluZGV4KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEdM
X0JMRU5EX0VRVUFUSU9OX1JHQjoKLSAgICAgICAgICAgIEFTU0VSVChzdGF0aWNfY2FzdDxzaXpl
X3Q+KGluZGV4KSA8IG1CbGVuZFN0YXRlRXh0Lm1NYXhEcmF3QnVmZmVycyk7CisgICAgICAgICAg
ICBBU1NFUlQoc3RhdGljX2Nhc3Q8c2l6ZV90PihpbmRleCkgPCBtQmxlbmRTdGF0ZUV4dC5nZXRE
cmF3QnVmZmVyQ291bnQoKSk7CiAgICAgICAgICAgICAqZGF0YSA9IG1CbGVuZFN0YXRlRXh0Lmdl
dEVxdWF0aW9uQ29sb3JJbmRleGVkKGluZGV4KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICBjYXNlIEdMX0JMRU5EX0VRVUFUSU9OX0FMUEhBOgotICAgICAgICAgICAgQVNTRVJUKHN0YXRp
Y19jYXN0PHNpemVfdD4oaW5kZXgpIDwgbUJsZW5kU3RhdGVFeHQubU1heERyYXdCdWZmZXJzKTsK
KyAgICAgICAgICAgIEFTU0VSVChzdGF0aWNfY2FzdDxzaXplX3Q+KGluZGV4KSA8IG1CbGVuZFN0
YXRlRXh0LmdldERyYXdCdWZmZXJDb3VudCgpKTsKICAgICAgICAgICAgICpkYXRhID0gbUJsZW5k
U3RhdGVFeHQuZ2V0RXF1YXRpb25BbHBoYUluZGV4ZWQoaW5kZXgpOwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIGNhc2UgR0xfVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9CSU5ESU5HOgpA
QCAtMzI1Nyw3ICszMjc1LDcgQEAgdm9pZCBTdGF0ZTo6Z2V0Qm9vbGVhbmlfdihHTGVudW0gdGFy
Z2V0LCBHTHVpbnQgaW5kZXgsIEdMYm9vbGVhbiAqZGF0YSkgY29uc3QKICAgICB7CiAgICAgICAg
IGNhc2UgR0xfQ09MT1JfV1JJVEVNQVNLOgogICAgICAgICB7Ci0gICAgICAgICAgICBBU1NFUlQo
c3RhdGljX2Nhc3Q8c2l6ZV90PihpbmRleCkgPCBtQmxlbmRTdGF0ZUV4dC5tTWF4RHJhd0J1ZmZl
cnMpOworICAgICAgICAgICAgQVNTRVJUKHN0YXRpY19jYXN0PHNpemVfdD4oaW5kZXgpIDwgbUJs
ZW5kU3RhdGVFeHQuZ2V0RHJhd0J1ZmZlckNvdW50KCkpOwogICAgICAgICAgICAgYm9vbCByLCBn
LCBiLCBhOwogICAgICAgICAgICAgbUJsZW5kU3RhdGVFeHQuZ2V0Q29sb3JNYXNrSW5kZXhlZChp
bmRleCwgJnIsICZnLCAmYiwgJmEpOwogICAgICAgICAgICAgZGF0YVswXSA9IHI7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvU3RhdGUuaCBiL1NvdXJj
ZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9TdGF0ZS5oCmluZGV4IGY4YzFkOWRhYWYz
MWI1ZWRiOThlZGYzY2EwYTVjMTk4M2Q2MDM5Y2IuLmE3NzdkOTJjNGFjOTczMTU5OGFkMDc0ODRl
NGE1MWM5Njg2ZjE4NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9s
aWJBTkdMRS9TdGF0ZS5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdM
RS9TdGF0ZS5oCkBAIC0xODcsMTMgKzE4NywxMyBAQCBjbGFzcyBTdGF0ZSA6IGFuZ2xlOjpOb25D
b3B5YWJsZQogICAgIH0KIAogICAgIC8vIEJsZW5kIHN0YXRlIG1hbmlwdWxhdGlvbgotICAgIGJv
b2wgaXNCbGVuZEVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtQmxlbmRTdGF0ZUV4dC5tRW5hYmxl
ZE1hc2sudGVzdCgwKTsgfQorICAgIGJvb2wgaXNCbGVuZEVuYWJsZWQoKSBjb25zdCB7IHJldHVy
biBtQmxlbmRTdGF0ZUV4dC5nZXRFbmFibGVkTWFzaygpLnRlc3QoMCk7IH0KICAgICBib29sIGlz
QmxlbmRFbmFibGVkSW5kZXhlZChHTHVpbnQgaW5kZXgpIGNvbnN0CiAgICAgewotICAgICAgICBB
U1NFUlQoc3RhdGljX2Nhc3Q8c2l6ZV90PihpbmRleCkgPCBtQmxlbmRTdGF0ZUV4dC5tTWF4RHJh
d0J1ZmZlcnMpOwotICAgICAgICByZXR1cm4gbUJsZW5kU3RhdGVFeHQubUVuYWJsZWRNYXNrLnRl
c3QoaW5kZXgpOworICAgICAgICBBU1NFUlQoc3RhdGljX2Nhc3Q8c2l6ZV90PihpbmRleCkgPCBt
QmxlbmRTdGF0ZUV4dC5nZXREcmF3QnVmZmVyQ291bnQoKSk7CisgICAgICAgIHJldHVybiBtQmxl
bmRTdGF0ZUV4dC5nZXRFbmFibGVkTWFzaygpLnRlc3QoaW5kZXgpOwogICAgIH0KLSAgICBEcmF3
QnVmZmVyTWFzayBnZXRCbGVuZEVuYWJsZWREcmF3QnVmZmVyTWFzaygpIGNvbnN0IHsgcmV0dXJu
IG1CbGVuZFN0YXRlRXh0Lm1FbmFibGVkTWFzazsgfQorICAgIERyYXdCdWZmZXJNYXNrIGdldEJs
ZW5kRW5hYmxlZERyYXdCdWZmZXJNYXNrKCkgY29uc3QgeyByZXR1cm4gbUJsZW5kU3RhdGVFeHQu
Z2V0RW5hYmxlZE1hc2soKTsgfQogICAgIHZvaWQgc2V0QmxlbmQoYm9vbCBlbmFibGVkKTsKICAg
ICB2b2lkIHNldEJsZW5kSW5kZXhlZChib29sIGVuYWJsZWQsIEdMdWludCBpbmRleCk7CiAgICAg
dm9pZCBzZXRCbGVuZEZhY3RvcnMoR0xlbnVtIHNvdXJjZVJHQiwgR0xlbnVtIGRlc3RSR0IsIEdM
ZW51bSBzb3VyY2VBbHBoYSwgR0xlbnVtIGRlc3RBbHBoYSk7CkBAIC0zNjIsNiArMzYyLDEwIEBA
IGNsYXNzIFN0YXRlIDogYW5nbGU6Ok5vbkNvcHlhYmxlCiAgICAgICAgIHJldHVybiBtVmVydGV4
QXJyYXk7CiAgICAgfQogCisgICAgLy8gUUNPTV9zaGFkaW5nX3JhdGUgaGVscGVycworICAgIHZv
aWQgc2V0U2hhZGluZ1JhdGUoR0xlbnVtIHJhdGUpOworICAgIFNoYWRpbmdSYXRlIGdldFNoYWRp
bmdSYXRlKCkgY29uc3QgeyByZXR1cm4gbVNoYWRpbmdSYXRlOyB9CisKICAgICAvLyBJZiBib3Ro
IGEgUHJvZ3JhbSBhbmQgYSBQcm9ncmFtUGlwZWxpbmUgYXJlIGJvdW5kLCB0aGUgUHJvZ3JhbSB3
aWxsCiAgICAgLy8gYWx3YXlzIG92ZXJyaWRlIHRoZSBQcm9ncmFtUGlwZWxpbmUuCiAgICAgUHJv
Z3JhbUV4ZWN1dGFibGUgKmdldFByb2dyYW1FeGVjdXRhYmxlKCkgY29uc3QgeyByZXR1cm4gbUV4
ZWN1dGFibGU7IH0KQEAgLTY4OSw2ICs2OTMsNyBAQCBjbGFzcyBTdGF0ZSA6IGFuZ2xlOjpOb25D
b3B5YWJsZQogICAgICAgICBFWFRFTkRFRF9ESVJUWV9CSVRfQ0xJUF9ESVNUQU5DRVMsICAgICAg
ICAgIC8vIGNsaXAgZGlzdGFuY2VzCiAgICAgICAgIEVYVEVOREVEX0RJUlRZX0JJVF9NSVBNQVBf
R0VORVJBVElPTl9ISU5ULCAgLy8gbWlwbWFwIGdlbmVyYXRpb24gaGludAogICAgICAgICBFWFRF
TkRFRF9ESVJUWV9CSVRfU0hBREVSX0RFUklWQVRJVkVfSElOVCwgIC8vIHNoYWRlciBkZXJpdmF0
aXZlIGhpbnQKKyAgICAgICAgRVhURU5ERURfRElSVFlfQklUX1NIQURJTkdfUkFURSwgICAgICAg
ICAgICAvLyBRQ09NX3NoYWRpbmdfcmF0ZQogICAgICAgICBFWFRFTkRFRF9ESVJUWV9CSVRfSU5W
QUxJRCwKICAgICAgICAgRVhURU5ERURfRElSVFlfQklUX01BWCA9IEVYVEVOREVEX0RJUlRZX0JJ
VF9JTlZBTElELAogICAgIH07CkBAIC04NTksMTIgKzg2NCwxMiBAQCBjbGFzcyBTdGF0ZSA6IGFu
Z2xlOjpOb25Db3B5YWJsZQogCiAgICAgYm9vbCBoYXNDb25zdGFudEFscGhhQmxlbmRGdW5jKCkg
Y29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiAobUJsZW5kRnVuY0NvbnN0YW50QWxwaGFEcmF3
QnVmZmVycyAmIG1CbGVuZFN0YXRlRXh0Lm1FbmFibGVkTWFzaykuYW55KCk7CisgICAgICAgIHJl
dHVybiAobUJsZW5kRnVuY0NvbnN0YW50QWxwaGFEcmF3QnVmZmVycyAmIG1CbGVuZFN0YXRlRXh0
LmdldEVuYWJsZWRNYXNrKCkpLmFueSgpOwogICAgIH0KIAogICAgIGJvb2wgaGFzU2ltdWx0YW5l
b3VzQ29uc3RhbnRDb2xvckFuZEFscGhhQmxlbmRGdW5jKCkgY29uc3QKICAgICB7Ci0gICAgICAg
IHJldHVybiAobUJsZW5kRnVuY0NvbnN0YW50Q29sb3JEcmF3QnVmZmVycyAmIG1CbGVuZFN0YXRl
RXh0Lm1FbmFibGVkTWFzaykuYW55KCkgJiYKKyAgICAgICAgcmV0dXJuIChtQmxlbmRGdW5jQ29u
c3RhbnRDb2xvckRyYXdCdWZmZXJzICYgbUJsZW5kU3RhdGVFeHQuZ2V0RW5hYmxlZE1hc2soKSku
YW55KCkgJiYKICAgICAgICAgICAgICAgIGhhc0NvbnN0YW50QWxwaGFCbGVuZEZ1bmMoKTsKICAg
ICB9CiAKQEAgLTExNjgsNiArMTE3MywxMCBAQCBjbGFzcyBTdGF0ZSA6IGFuZ2xlOjpOb25Db3B5
YWJsZQogICAgIEdMZmxvYXQgbUJvdW5kaW5nQm94TWF4WTsKICAgICBHTGZsb2F0IG1Cb3VuZGlu
Z0JveE1heFo7CiAgICAgR0xmbG9hdCBtQm91bmRpbmdCb3hNYXhXOworCisgICAgLy8gUUNPTV9z
aGFkaW5nX3JhdGUKKyAgICBib29sIG1TaGFkaW5nUmF0ZVByZXNlcnZlQXNwZWN0UmF0aW87Cisg
ICAgU2hhZGluZ1JhdGUgbVNoYWRpbmdSYXRlOwogfTsKIAogQU5HTEVfSU5MSU5FIGFuZ2xlOjpS
ZXN1bHQgU3RhdGU6OnN5bmNEaXJ0eU9iamVjdHMoY29uc3QgQ29udGV4dCAqY29udGV4dCwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9TdXJmYWNlLmNw
cCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9TdXJmYWNlLmNwcAppbmRl
eCBhMzk2YTM0N2U2NTE2MzAyNTEyZmQxMmZmM2ZlYjkxYjE5NDFmZjU2Li5jNzgwNzc0ZmY0ODRi
MWEwOTEzZGQ1NjY1OTRiMTU0MDhlZGQ5Njg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9BTkdMRS9zcmMvbGliQU5HTEUvU3VyZmFjZS5jcHAKKysrIGIvU291cmNlL1RoaXJkUGFydHkv
QU5HTEUvc3JjL2xpYkFOR0xFL1N1cmZhY2UuY3BwCkBAIC05OCw3ICs5OCw4IEBAIFN1cmZhY2U6
OlN1cmZhY2UoRUdMaW50IHN1cmZhY2VUeXBlLAogICAgICAgbUxvY2tCdWZmZXJQaXRjaCgwKSwK
ICAgICAgIG1CdWZmZXJBZ2VRdWVyaWVkU2luY2VMYXN0U3dhcChmYWxzZSksCiAgICAgICBtSXNE
YW1hZ2VSZWdpb25TZXQoZmFsc2UpLAotICAgICAgbUluaXRTdGF0ZShnbDo6SW5pdFN0YXRlOjpJ
bml0aWFsaXplZCksCisgICAgICBtQ29sb3JJbml0U3RhdGUoZ2w6OkluaXRTdGF0ZTo6SW5pdGlh
bGl6ZWQpLAorICAgICAgbURlcHRoU3RlbmNpbEluaXRTdGF0ZShnbDo6SW5pdFN0YXRlOjpJbml0
aWFsaXplZCksCiAgICAgICBtSW1wbE9ic2VydmVyQmluZGluZyh0aGlzLCBrU3VyZmFjZUltcGxT
dWJqZWN0SW5kZXgpCiB7CiAgICAgbVBvc3RTdWJCdWZmZXJSZXF1ZXN0ZWQgPQpAQCAtMTI2LDcg
KzEyNyw4IEBAIFN1cmZhY2U6OlN1cmZhY2UoRUdMaW50IHN1cmZhY2VUeXBlLAogICAgICAgICAo
YXR0cmlidXRlcy5nZXQoRUdMX1JPQlVTVF9SRVNPVVJDRV9JTklUSUFMSVpBVElPTl9BTkdMRSwg
RUdMX0ZBTFNFKSA9PSBFR0xfVFJVRSk7CiAgICAgaWYgKG1Sb2J1c3RSZXNvdXJjZUluaXRpYWxp
emF0aW9uKQogICAgIHsKLSAgICAgICAgbUluaXRTdGF0ZSA9IGdsOjpJbml0U3RhdGU6Ok1heU5l
ZWRJbml0OworICAgICAgICBtQ29sb3JJbml0U3RhdGUgICAgICAgID0gZ2w6OkluaXRTdGF0ZTo6
TWF5TmVlZEluaXQ7CisgICAgICAgIG1EZXB0aFN0ZW5jaWxJbml0U3RhdGUgPSBnbDo6SW5pdFN0
YXRlOjpNYXlOZWVkSW5pdDsKICAgICB9CiAKICAgICBtRml4ZWRTaXplID0gKGF0dHJpYnV0ZXMu
Z2V0KEVHTF9GSVhFRF9TSVpFX0FOR0xFLCBFR0xfRkFMU0UpID09IEVHTF9UUlVFKTsKQEAgLTE3
NCw3ICsxNzYsOCBAQCB2b2lkIFN1cmZhY2U6OnBvc3RTd2FwKGNvbnN0IGdsOjpDb250ZXh0ICpj
b250ZXh0KQogewogICAgIGlmIChtUm9idXN0UmVzb3VyY2VJbml0aWFsaXphdGlvbiAmJiBtU3Rh
dGUuc3dhcEJlaGF2aW9yICE9IEVHTF9CVUZGRVJfUFJFU0VSVkVEKQogICAgIHsKLSAgICAgICAg
bUluaXRTdGF0ZSA9IGdsOjpJbml0U3RhdGU6Ok1heU5lZWRJbml0OworICAgICAgICBtQ29sb3JJ
bml0U3RhdGUgICAgICAgID0gZ2w6OkluaXRTdGF0ZTo6TWF5TmVlZEluaXQ7CisgICAgICAgIG1E
ZXB0aFN0ZW5jaWxJbml0U3RhdGUgPSBnbDo6SW5pdFN0YXRlOjpNYXlOZWVkSW5pdDsKICAgICAg
ICAgb25TdGF0ZUNoYW5nZShhbmdsZTo6U3ViamVjdE1lc3NhZ2U6OlN1YmplY3RDaGFuZ2VkKTsK
ICAgICB9CiAKQEAgLTY0MCwyMCArNjQzLDM4IEBAIEVycm9yIFN1cmZhY2U6OmdldEJ1ZmZlckFn
ZShjb25zdCBnbDo6Q29udGV4dCAqY29udGV4dCwgRUdMaW50ICphZ2UpCiAgICAgcmV0dXJuIGVy
cjsKIH0KIAotc3RkOjp1bmlxdWVfcHRyPGdsOjpGcmFtZWJ1ZmZlcj4gU3VyZmFjZTo6Y3JlYXRl
RGVmYXVsdEZyYW1lYnVmZmVyKGNvbnN0IGdsOjpDb250ZXh0ICpjb250ZXh0LAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGVnbDo6U3VyZmFjZSAqcmVhZFN1cmZhY2UpCitnbDo6SW5pdFN0YXRlIFN1cmZhY2U6OmluaXRT
dGF0ZShHTGVudW0gYmluZGluZywgY29uc3QgZ2w6OkltYWdlSW5kZXggJiAvKmltYWdlSW5kZXgq
LykgY29uc3QKIHsKLSAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxnbDo6RnJhbWVidWZmZXI+
KGNvbnRleHQsIHRoaXMsIHJlYWRTdXJmYWNlKTsKLX0KLQotZ2w6OkluaXRTdGF0ZSBTdXJmYWNl
Ojppbml0U3RhdGUoY29uc3QgZ2w6OkltYWdlSW5kZXggJiAvKmltYWdlSW5kZXgqLykgY29uc3QK
LXsKLSAgICByZXR1cm4gbUluaXRTdGF0ZTsKKyAgICBzd2l0Y2ggKGJpbmRpbmcpCisgICAgewor
ICAgICAgICBjYXNlIEdMX0JBQ0s6CisgICAgICAgICAgICByZXR1cm4gbUNvbG9ySW5pdFN0YXRl
OworICAgICAgICBjYXNlIEdMX0RFUFRIOgorICAgICAgICBjYXNlIEdMX1NURU5DSUw6CisgICAg
ICAgICAgICByZXR1cm4gbURlcHRoU3RlbmNpbEluaXRTdGF0ZTsKKyAgICAgICAgZGVmYXVsdDoK
KyAgICAgICAgICAgIFVOUkVBQ0hBQkxFKCk7CisgICAgICAgICAgICByZXR1cm4gZ2w6OkluaXRT
dGF0ZTo6SW5pdGlhbGl6ZWQ7CisgICAgfQogfQogCi12b2lkIFN1cmZhY2U6OnNldEluaXRTdGF0
ZShjb25zdCBnbDo6SW1hZ2VJbmRleCAmIC8qaW1hZ2VJbmRleCovLCBnbDo6SW5pdFN0YXRlIGlu
aXRTdGF0ZSkKK3ZvaWQgU3VyZmFjZTo6c2V0SW5pdFN0YXRlKEdMZW51bSBiaW5kaW5nLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2w6OkltYWdlSW5kZXggJiAvKmltYWdlSW5k
ZXgqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGdsOjpJbml0U3RhdGUgaW5pdFN0YXRl
KQogewotICAgIG1Jbml0U3RhdGUgPSBpbml0U3RhdGU7CisgICAgc3dpdGNoIChiaW5kaW5nKQor
ICAgIHsKKyAgICAgICAgY2FzZSBHTF9CQUNLOgorICAgICAgICAgICAgbUNvbG9ySW5pdFN0YXRl
ID0gaW5pdFN0YXRlOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgR0xfREVQVEg6
CisgICAgICAgIGNhc2UgR0xfU1RFTkNJTDoKKyAgICAgICAgICAgIG1EZXB0aFN0ZW5jaWxJbml0
U3RhdGUgPSBpbml0U3RhdGU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoK
KyAgICAgICAgICAgIFVOUkVBQ0hBQkxFKCk7CisgICAgICAgICAgICBicmVhazsKKyAgICB9CiB9
CiAKIHZvaWQgU3VyZmFjZTo6c2V0VGltZXN0YW1wc0VuYWJsZWQoYm9vbCBlbmFibGVkKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL1N1cmZhY2UuaCBi
L1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9TdXJmYWNlLmgKaW5kZXggMTk4
ODljM2RlYmRlZTcyMzlmYTU0MDkyNzM1ZWFjNzU3ZWViMjcwZC4uNWZhMmIwODNiNTVmZjFmMzY0
NWJlOTIwMTFmNTg4MTQyM2JiMWVkMCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5H
TEUvc3JjL2xpYkFOR0xFL1N1cmZhY2UuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9z
cmMvbGliQU5HTEUvU3VyZmFjZS5oCkBAIC0xMSw2ICsxMSw4IEBACiAjaWZuZGVmIExJQkFOR0xF
X1NVUkZBQ0VfSF8KICNkZWZpbmUgTElCQU5HTEVfU1VSRkFDRV9IXwogCisjaW5jbHVkZSA8bWVt
b3J5PgorCiAjaW5jbHVkZSA8RUdML2VnbC5oPgogCiAjaW5jbHVkZSAiY29tbW9uL1BhY2tlZEVu
dW1zLmgiCkBAIC0xMDUsOSArMTA3LDYgQEAgY2xhc3MgU3VyZmFjZSA6IHB1YmxpYyBMYWJlbGVk
T2JqZWN0LCBwdWJsaWMgZ2w6OkZyYW1lYnVmZmVyQXR0YWNobWVudE9iamVjdAogICAgIHZvaWQg
c2V0Rml4ZWRXaWR0aChFR0xpbnQgd2lkdGgpOwogICAgIHZvaWQgc2V0Rml4ZWRIZWlnaHQoRUdM
aW50IGhlaWdodCk7CiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8Z2w6OkZyYW1lYnVmZmVyPiBjcmVh
dGVEZWZhdWx0RnJhbWVidWZmZXIoY29uc3QgZ2w6OkNvbnRleHQgKmNvbnRleHQsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVn
bDo6U3VyZmFjZSAqcmVhZFN1cmZhY2UpOwotCiAgICAgY29uc3QgQ29uZmlnICpnZXRDb25maWco
KSBjb25zdDsKIAogICAgIC8vIHdpZHRoIGFuZCBoZWlnaHQgY2FuIGNoYW5nZSB3aXRoIGNsaWVu
dCB3aW5kb3cgcmVzaXppbmcKQEAgLTE3NSw4ICsxNzQsMTAgQEAgY2xhc3MgU3VyZmFjZSA6IHB1
YmxpYyBMYWJlbGVkT2JqZWN0LCBwdWJsaWMgZ2w6OkZyYW1lYnVmZmVyQXR0YWNobWVudE9iamVj
dAogCiAgICAgYm9vbCBkaXJlY3RDb21wb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1TdGF0ZS5k
aXJlY3RDb21wb3NpdGlvbjsgfQogCi0gICAgZ2w6OkluaXRTdGF0ZSBpbml0U3RhdGUoY29uc3Qg
Z2w6OkltYWdlSW5kZXggJmltYWdlSW5kZXgpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZvaWQgc2V0
SW5pdFN0YXRlKGNvbnN0IGdsOjpJbWFnZUluZGV4ICZpbWFnZUluZGV4LCBnbDo6SW5pdFN0YXRl
IGluaXRTdGF0ZSkgb3ZlcnJpZGU7CisgICAgZ2w6OkluaXRTdGF0ZSBpbml0U3RhdGUoR0xlbnVt
IGJpbmRpbmcsIGNvbnN0IGdsOjpJbWFnZUluZGV4ICZpbWFnZUluZGV4KSBjb25zdCBvdmVycmlk
ZTsKKyAgICB2b2lkIHNldEluaXRTdGF0ZShHTGVudW0gYmluZGluZywKKyAgICAgICAgICAgICAg
ICAgICAgICBjb25zdCBnbDo6SW1hZ2VJbmRleCAmaW1hZ2VJbmRleCwKKyAgICAgICAgICAgICAg
ICAgICAgICBnbDo6SW5pdFN0YXRlIGluaXRTdGF0ZSkgb3ZlcnJpZGU7CiAKICAgICBib29sIGlz
Um9idXN0UmVzb3VyY2VJbml0RW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1Sb2J1c3RSZXNvdXJj
ZUluaXRpYWxpemF0aW9uOyB9CiAKQEAgLTI5Miw3ICsyOTMsOCBAQCBjbGFzcyBTdXJmYWNlIDog
cHVibGljIExhYmVsZWRPYmplY3QsIHB1YmxpYyBnbDo6RnJhbWVidWZmZXJBdHRhY2htZW50T2Jq
ZWN0CiAgICAgLy8gT2JzZXJ2ZXJJbnRlcmZhY2UgaW1wbGVtZW50YXRpb24uCiAgICAgdm9pZCBv
blN1YmplY3RTdGF0ZUNoYW5nZShhbmdsZTo6U3ViamVjdEluZGV4IGluZGV4LCBhbmdsZTo6U3Vi
amVjdE1lc3NhZ2UgbWVzc2FnZSkgb3ZlcnJpZGU7CiAKLSAgICBnbDo6SW5pdFN0YXRlIG1Jbml0
U3RhdGU7CisgICAgZ2w6OkluaXRTdGF0ZSBtQ29sb3JJbml0U3RhdGU7CisgICAgZ2w6OkluaXRT
dGF0ZSBtRGVwdGhTdGVuY2lsSW5pdFN0YXRlOwogICAgIGFuZ2xlOjpPYnNlcnZlckJpbmRpbmcg
bUltcGxPYnNlcnZlckJpbmRpbmc7CiB9OwogCkBAIC0zNzEsNyArMzczLDcgQEAgY2xhc3MgU3Vy
ZmFjZURlbGV0ZXIgZmluYWwKICAgICBjb25zdCBEaXNwbGF5ICptRGlzcGxheTsKIH07CiAKLXVz
aW5nIFN1cmZhY2VQb2ludGVyID0gYW5nbGU6OlVuaXF1ZU9iamVjdFBvaW50ZXJCYXNlPFN1cmZh
Y2UsIFN1cmZhY2VEZWxldGVyPjsKK3VzaW5nIFN1cmZhY2VQb2ludGVyID0gc3RkOjp1bmlxdWVf
cHRyPFN1cmZhY2UsIFN1cmZhY2VEZWxldGVyPjsKIAogfSAgLy8gbmFtZXNwYWNlIGVnbAogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvVGV4dHVyZS5j
cHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvVGV4dHVyZS5jcHAKaW5k
ZXggOGVlODUxNGU4ZmM5ZjYzZWRhMTRmOGY5MGRmOTljMDliMjE5ZGUwNy4uMTYwNTI2YWE5NzRh
ZTUwYTZjOWUwMTcxMjE0Mjk0YjZlMzZhYWQ4NyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvc3JjL2xpYkFOR0xFL1RleHR1cmUuY3BwCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L0FOR0xFL3NyYy9saWJBTkdMRS9UZXh0dXJlLmNwcApAQCAtMTcxMiw5ICsxNzEyLDggQEAgYW5n
bGU6OlJlc3VsdCBUZXh0dXJlOjpzZXRTdG9yYWdlRXh0ZXJuYWxNZW1vcnkoQ29udGV4dCAqY29u
dGV4dCwKICAgICBtU3RhdGUubUltbXV0YWJsZUZvcm1hdCA9IHRydWU7CiAgICAgbVN0YXRlLm1J
bW11dGFibGVMZXZlbHMgPSBzdGF0aWNfY2FzdDxHTHVpbnQ+KGxldmVscyk7CiAgICAgbVN0YXRl
LmNsZWFySW1hZ2VEZXNjcygpOwotICAgIEluaXRTdGF0ZSBpbml0U3RhdGUgPSBEZXRlcm1pbmVJ
bml0U3RhdGUoY29udGV4dCwgbnVsbHB0ciwgbnVsbHB0cik7CiAgICAgbVN0YXRlLnNldEltYWdl
RGVzY0NoYWluKDAsIHN0YXRpY19jYXN0PEdMdWludD4obGV2ZWxzIC0gMSksIHNpemUsIEZvcm1h
dChpbnRlcm5hbEZvcm1hdCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluaXRTdGF0
ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEluaXRTdGF0ZTo6SW5pdGlhbGl6ZWQp
OwogCiAgICAgLy8gQ2hhbmdpbmcgdGhlIHRleHR1cmUgdG8gaW1tdXRhYmxlIGNhbiB0cmlnZ2Vy
IGEgY2hhbmdlIGluIHRoZSBiYXNlIGFuZCBtYXggbGV2ZWxzOgogICAgIC8vIEdMRVMgMy4wLjQg
c2VjdGlvbiAzLjguMTAgcGcgMTU4OgpAQCAtMTcyMyw3ICsxNzIyLDcgQEAgYW5nbGU6OlJlc3Vs
dCBUZXh0dXJlOjpzZXRTdG9yYWdlRXh0ZXJuYWxNZW1vcnkoQ29udGV4dCAqY29udGV4dCwKICAg
ICBtRGlydHlCaXRzLnNldChESVJUWV9CSVRfQkFTRV9MRVZFTCk7CiAgICAgbURpcnR5Qml0cy5z
ZXQoRElSVFlfQklUX01BWF9MRVZFTCk7CiAKLSAgICBzaWduYWxEaXJ0eVN0b3JhZ2UoaW5pdFN0
YXRlKTsKKyAgICBzaWduYWxEaXJ0eVN0b3JhZ2UoSW5pdFN0YXRlOjpJbml0aWFsaXplZCk7CiAK
ICAgICByZXR1cm4gYW5nbGU6OlJlc3VsdDo6Q29udGludWU7CiB9CkBAIC0xNzcyLDcgKzE3NzEs
NyBAQCBhbmdsZTo6UmVzdWx0IFRleHR1cmU6OmdlbmVyYXRlTWlwbWFwKENvbnRleHQgKmNvbnRl
eHQpCiAKICAgICAgICAgICAgIGlmIChkZXNjLmluaXRTdGF0ZSA9PSBJbml0U3RhdGU6Ok1heU5l
ZWRJbml0KQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEFOR0xFX1RSWShpbml0aWFs
aXplQ29udGVudHMoY29udGV4dCwgaW5kZXgpKTsKKyAgICAgICAgICAgICAgICBBTkdMRV9UUlko
aW5pdGlhbGl6ZUNvbnRlbnRzKGNvbnRleHQsIEdMX05PTkUsIGluZGV4KSk7CiAgICAgICAgICAg
ICB9CiAgICAgICAgIH0KICAgICB9CkBAIC0yMjI4LDcgKzIyMjcsNyBAQCBhbmdsZTo6UmVzdWx0
IFRleHR1cmU6OmVuc3VyZUluaXRpYWxpemVkKGNvbnN0IENvbnRleHQgKmNvbnRleHQpCiAgICAg
ICAgIGlmIChkZXNjLmluaXRTdGF0ZSA9PSBJbml0U3RhdGU6Ok1heU5lZWRJbml0ICYmICFkZXNj
LnNpemUuZW1wdHkoKSkKICAgICAgICAgewogICAgICAgICAgICAgQVNTRVJUKG1TdGF0ZS5tSW5p
dFN0YXRlID09IEluaXRTdGF0ZTo6TWF5TmVlZEluaXQpOwotICAgICAgICAgICAgQU5HTEVfVFJZ
KGluaXRpYWxpemVDb250ZW50cyhjb250ZXh0LCBpbmRleCkpOworICAgICAgICAgICAgQU5HTEVf
VFJZKGluaXRpYWxpemVDb250ZW50cyhjb250ZXh0LCBHTF9OT05FLCBpbmRleCkpOwogICAgICAg
ICAgICAgZGVzYy5pbml0U3RhdGUgPSBJbml0U3RhdGU6OkluaXRpYWxpemVkOwogICAgICAgICAg
ICAgYW55RGlydHkgICAgICAgPSB0cnVlOwogICAgICAgICB9CkBAIC0yMjQyLDcgKzIyNDEsNyBA
QCBhbmdsZTo6UmVzdWx0IFRleHR1cmU6OmVuc3VyZUluaXRpYWxpemVkKGNvbnN0IENvbnRleHQg
KmNvbnRleHQpCiAgICAgcmV0dXJuIGFuZ2xlOjpSZXN1bHQ6OkNvbnRpbnVlOwogfQogCi1Jbml0
U3RhdGUgVGV4dHVyZTo6aW5pdFN0YXRlKGNvbnN0IEltYWdlSW5kZXggJmltYWdlSW5kZXgpIGNv
bnN0CitJbml0U3RhdGUgVGV4dHVyZTo6aW5pdFN0YXRlKEdMZW51bSAvKmJpbmRpbmcqLywgY29u
c3QgSW1hZ2VJbmRleCAmaW1hZ2VJbmRleCkgY29uc3QKIHsKICAgICAvLyBBcyBhbiBJbWFnZUlu
ZGV4IHRoYXQgcmVwcmVzZW50cyBhbiBlbnRpcmUgbGV2ZWwgb2YgYSBjdWJlIG1hcCBjb3JyZXNw
b25kcyB0byA2IEltYWdlRGVzY3MsCiAgICAgLy8gd2UgbmVlZCB0byBjaGVjayBhbGwgdGhlIHJl
bGF0ZWQgSW1hZ2VEZXNjcy4KQEAgLTIyNjIsNyArMjI2MSw3IEBAIEluaXRTdGF0ZSBUZXh0dXJl
Ojppbml0U3RhdGUoY29uc3QgSW1hZ2VJbmRleCAmaW1hZ2VJbmRleCkgY29uc3QKICAgICByZXR1
cm4gbVN0YXRlLmdldEltYWdlRGVzYyhpbWFnZUluZGV4KS5pbml0U3RhdGU7CiB9CiAKLXZvaWQg
VGV4dHVyZTo6c2V0SW5pdFN0YXRlKGNvbnN0IEltYWdlSW5kZXggJmltYWdlSW5kZXgsIEluaXRT
dGF0ZSBpbml0U3RhdGUpCit2b2lkIFRleHR1cmU6OnNldEluaXRTdGF0ZShHTGVudW0gYmluZGlu
ZywgY29uc3QgSW1hZ2VJbmRleCAmaW1hZ2VJbmRleCwgSW5pdFN0YXRlIGluaXRTdGF0ZSkKIHsK
ICAgICAvLyBBcyBhbiBJbWFnZUluZGV4IHRoYXQgcmVwcmVzZW50cyBhbiBlbnRpcmUgbGV2ZWwg
b2YgYSBjdWJlIG1hcCBjb3JyZXNwb25kcyB0byA2IEltYWdlRGVzY3MsCiAgICAgLy8gd2UgbmVl
ZCB0byB1cGRhdGUgYWxsIHRoZSByZWxhdGVkIEltYWdlRGVzY3MuCkBAIC0yMjcxLDcgKzIyNzAs
OCBAQCB2b2lkIFRleHR1cmU6OnNldEluaXRTdGF0ZShjb25zdCBJbWFnZUluZGV4ICZpbWFnZUlu
ZGV4LCBJbml0U3RhdGUgaW5pdFN0YXRlKQogICAgICAgICBjb25zdCBHTGludCBsZXZlbEluZGV4
ID0gaW1hZ2VJbmRleC5nZXRMZXZlbEluZGV4KCk7CiAgICAgICAgIGZvciAoVGV4dHVyZVRhcmdl
dCBjdWJlRmFjZVRhcmdldCA6IEFsbEN1YmVGYWNlVGV4dHVyZVRhcmdldHMoKSkKICAgICAgICAg
ewotICAgICAgICAgICAgc2V0SW5pdFN0YXRlKEltYWdlSW5kZXg6Ok1ha2VDdWJlTWFwRmFjZShj
dWJlRmFjZVRhcmdldCwgbGV2ZWxJbmRleCksIGluaXRTdGF0ZSk7CisgICAgICAgICAgICBzZXRJ
bml0U3RhdGUoYmluZGluZywgSW1hZ2VJbmRleDo6TWFrZUN1YmVNYXBGYWNlKGN1YmVGYWNlVGFy
Z2V0LCBsZXZlbEluZGV4KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbml0U3RhdGUpOwog
ICAgICAgICB9CiAgICAgfQogICAgIGVsc2UKQEAgLTIzMjMsOSArMjMyMywxMCBAQCBhbmdsZTo6
UmVzdWx0IFRleHR1cmU6OmVuc3VyZVN1YkltYWdlSW5pdGlhbGl6ZWQoY29uc3QgQ29udGV4dCAq
Y29udGV4dCwKICAgICB7CiAgICAgICAgIC8vIE5PVEU6IGRvIG5vdCBvcHRpbWl6ZSB0aGlzIHRv
IG9ubHkgaW5pdGlhbGl6ZSB0aGUgcGFzc2VkIGFyZWEgb2YgdGhlIHRleHR1cmUsIG9yIHRoZQog
ICAgICAgICAvLyBpbml0aWFsaXphdGlvbiBsb2dpYyBpbiBjb3B5U3ViSW1hZ2Ugd2lsbCBiZSBp
bmNvcnJlY3QuCi0gICAgICAgIEFOR0xFX1RSWShpbml0aWFsaXplQ29udGVudHMoY29udGV4dCwg
aW1hZ2VJbmRleCkpOworICAgICAgICBBTkdMRV9UUlkoaW5pdGlhbGl6ZUNvbnRlbnRzKGNvbnRl
eHQsIEdMX05PTkUsIGltYWdlSW5kZXgpKTsKICAgICB9Ci0gICAgc2V0SW5pdFN0YXRlKGltYWdl
SW5kZXgsIEluaXRTdGF0ZTo6SW5pdGlhbGl6ZWQpOworICAgIC8vIE5vdGU6IGJpbmRpbmcgaXMg
aWdub3JlZCBmb3IgdGV4dHVyZXMuCisgICAgc2V0SW5pdFN0YXRlKEdMX05PTkUsIGltYWdlSW5k
ZXgsIEluaXRTdGF0ZTo6SW5pdGlhbGl6ZWQpOwogICAgIHJldHVybiBhbmdsZTo6UmVzdWx0OjpD
b250aW51ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xp
YkFOR0xFL1RleHR1cmUuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9U
ZXh0dXJlLmgKaW5kZXggYzUyZmYyODAzMzY5ZTk4MDQ3NGYwY2ZjNjQzOTg4OTQwNGRlNWQzOS4u
NzczOTMwZDk5ZDRlZDI5MWE0ZjQzMzkxNjcxMDc4NDAxOWQ2NGMwOSAxMDA2NDQKLS0tIGEvU291
cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL1RleHR1cmUuaAorKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvVGV4dHVyZS5oCkBAIC01NzIsOSArNTcyLDkg
QEAgY2xhc3MgVGV4dHVyZSBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudE9iamVjdDxUZXh0dXJlSUQ+
LAogCiAgICAgLy8gTmVlZGVkIGZvciByb2J1c3QgcmVzb3VyY2UgaW5pdC4KICAgICBhbmdsZTo6
UmVzdWx0IGVuc3VyZUluaXRpYWxpemVkKGNvbnN0IENvbnRleHQgKmNvbnRleHQpOwotICAgIElu
aXRTdGF0ZSBpbml0U3RhdGUoY29uc3QgSW1hZ2VJbmRleCAmaW1hZ2VJbmRleCkgY29uc3Qgb3Zl
cnJpZGU7CisgICAgSW5pdFN0YXRlIGluaXRTdGF0ZShHTGVudW0gYmluZGluZywgY29uc3QgSW1h
Z2VJbmRleCAmaW1hZ2VJbmRleCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgSW5pdFN0YXRlIGluaXRT
dGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1TdGF0ZS5tSW5pdFN0YXRlOyB9Ci0gICAgdm9pZCBzZXRJ
bml0U3RhdGUoY29uc3QgSW1hZ2VJbmRleCAmaW1hZ2VJbmRleCwgSW5pdFN0YXRlIGluaXRTdGF0
ZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRJbml0U3RhdGUoR0xlbnVtIGJpbmRpbmcsIGNvbnN0
IEltYWdlSW5kZXggJmltYWdlSW5kZXgsIEluaXRTdGF0ZSBpbml0U3RhdGUpIG92ZXJyaWRlOwog
ICAgIHZvaWQgc2V0SW5pdFN0YXRlKEluaXRTdGF0ZSBpbml0U3RhdGUpOwogCiAgICAgYm9vbCBp
c0JvdW5kVG9GcmFtZWJ1ZmZlcihyeDo6U2VyaWFsIGZyYW1lYnVmZmVyU2VyaWFsKSBjb25zdApk
aWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL1VuaWZvcm0u
Y3BwIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL1VuaWZvcm0uY3BwCmlu
ZGV4IDYxNGY1MDE4ZTlhYTQ4NGE5NmZmODNhNDcyODhkYjc2M2ZmYzlkODguLmQ0MWVkNTY5OGEw
ODgzMzVkZjljYjI2ZTgyZTQwZTA2OTJjNjg1YTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBh
cnR5L0FOR0xFL3NyYy9saWJBTkdMRS9Vbmlmb3JtLmNwcAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9BTkdMRS9zcmMvbGliQU5HTEUvVW5pZm9ybS5jcHAKQEAgLTQwLDcgKzQwLDEwIEBAIEdMdWlu
dCBBY3RpdmVWYXJpYWJsZTo6YWN0aXZlU2hhZGVyQ291bnQoKSBjb25zdAogfQogCiBMaW5rZWRV
bmlmb3JtOjpMaW5rZWRVbmlmb3JtKCkKLSAgICA6IHR5cGVJbmZvKG51bGxwdHIpLCBidWZmZXJJ
bmRleCgtMSksIGJsb2NrSW5mbyhzaDo6a0RlZmF1bHRCbG9ja01lbWJlckluZm8pCisgICAgOiB0
eXBlSW5mbyhudWxscHRyKSwKKyAgICAgIGJ1ZmZlckluZGV4KC0xKSwKKyAgICAgIGJsb2NrSW5m
byhzaDo6a0RlZmF1bHRCbG9ja01lbWJlckluZm8pLAorICAgICAgb3V0ZXJBcnJheU9mZnNldCgw
KQoge30KIAogTGlua2VkVW5pZm9ybTo6TGlua2VkVW5pZm9ybShHTGVudW0gdHlwZUluLApAQCAt
NTIsNyArNTUsMTAgQEAgTGlua2VkVW5pZm9ybTo6TGlua2VkVW5pZm9ybShHTGVudW0gdHlwZUlu
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnQgbG9jYXRpb25JbiwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW50IGJ1ZmZlckluZGV4SW4sCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNoOjpCbG9ja01lbWJlckluZm8gJmJsb2Nr
SW5mb0luKQotICAgIDogdHlwZUluZm8oJkdldFVuaWZvcm1UeXBlSW5mbyh0eXBlSW4pKSwgYnVm
ZmVySW5kZXgoYnVmZmVySW5kZXhJbiksIGJsb2NrSW5mbyhibG9ja0luZm9JbikKKyAgICA6IHR5
cGVJbmZvKCZHZXRVbmlmb3JtVHlwZUluZm8odHlwZUluKSksCisgICAgICBidWZmZXJJbmRleChi
dWZmZXJJbmRleEluKSwKKyAgICAgIGJsb2NrSW5mbyhibG9ja0luZm9JbiksCisgICAgICBvdXRl
ckFycmF5T2Zmc2V0KDApCiB7CiAgICAgdHlwZSAgICAgICA9IHR5cGVJbjsKICAgICBwcmVjaXNp
b24gID0gcHJlY2lzaW9uSW47CkBAIC04MSw3ICs4Nyw4IEBAIExpbmtlZFVuaWZvcm06Okxpbmtl
ZFVuaWZvcm0oY29uc3QgTGlua2VkVW5pZm9ybSAmdW5pZm9ybSkKICAgICAgIHR5cGVJbmZvKHVu
aWZvcm0udHlwZUluZm8pLAogICAgICAgYnVmZmVySW5kZXgodW5pZm9ybS5idWZmZXJJbmRleCks
CiAgICAgICBibG9ja0luZm8odW5pZm9ybS5ibG9ja0luZm8pLAotICAgICAgb3V0ZXJBcnJheVNp
emVzKHVuaWZvcm0ub3V0ZXJBcnJheVNpemVzKQorICAgICAgb3V0ZXJBcnJheVNpemVzKHVuaWZv
cm0ub3V0ZXJBcnJheVNpemVzKSwKKyAgICAgIG91dGVyQXJyYXlPZmZzZXQodW5pZm9ybS5vdXRl
ckFycmF5T2Zmc2V0KQoge30KIAogTGlua2VkVW5pZm9ybSAmTGlua2VkVW5pZm9ybTo6b3BlcmF0
b3I9KGNvbnN0IExpbmtlZFVuaWZvcm0gJnVuaWZvcm0pCkBAIC05Miw2ICs5OSw3IEBAIExpbmtl
ZFVuaWZvcm0gJkxpbmtlZFVuaWZvcm06Om9wZXJhdG9yPShjb25zdCBMaW5rZWRVbmlmb3JtICZ1
bmlmb3JtKQogICAgIGJ1ZmZlckluZGV4ICAgICAgICAgICAgICAgICA9IHVuaWZvcm0uYnVmZmVy
SW5kZXg7CiAgICAgYmxvY2tJbmZvICAgICAgICAgICAgICAgICAgID0gdW5pZm9ybS5ibG9ja0lu
Zm87CiAgICAgb3V0ZXJBcnJheVNpemVzICAgICAgICAgICAgID0gdW5pZm9ybS5vdXRlckFycmF5
U2l6ZXM7CisgICAgb3V0ZXJBcnJheU9mZnNldCAgICAgICAgICAgID0gdW5pZm9ybS5vdXRlckFy
cmF5T2Zmc2V0OwogICAgIHJldHVybiAqdGhpczsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL1VuaWZvcm0uaCBiL1NvdXJjZS9UaGlyZFBhcnR5
L0FOR0xFL3NyYy9saWJBTkdMRS9Vbmlmb3JtLmgKaW5kZXggZjdlMWFmNmZiODc2N2NhNjVmYWZl
ZWFjNmNlOTQ2MTVhMGY4MTJjYy4uNWMxNTkwNjc3OWNlMTc4MzgyZGJlNGFkZDAxN2I4Zjg4NzU0
YjFjZiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL1Vu
aWZvcm0uaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvVW5pZm9y
bS5oCkBAIC03Niw2ICs3Niw3IEBAIHN0cnVjdCBMaW5rZWRVbmlmb3JtIDogcHVibGljIHNoOjpT
aGFkZXJWYXJpYWJsZSwgcHVibGljIEFjdGl2ZVZhcmlhYmxlCiAgICAgaW50IGJ1ZmZlckluZGV4
OwogICAgIHNoOjpCbG9ja01lbWJlckluZm8gYmxvY2tJbmZvOwogICAgIHN0ZDo6dmVjdG9yPHVu
c2lnbmVkIGludD4gb3V0ZXJBcnJheVNpemVzOworICAgIHVuc2lnbmVkIGludCBvdXRlckFycmF5
T2Zmc2V0OwogfTsKIAogc3RydWN0IEJ1ZmZlclZhcmlhYmxlIDogcHVibGljIHNoOjpTaGFkZXJW
YXJpYWJsZSwgcHVibGljIEFjdGl2ZVZhcmlhYmxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvVmVydGV4QXJyYXkuY3BwIGIvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvc3JjL2xpYkFOR0xFL1ZlcnRleEFycmF5LmNwcAppbmRleCA0ZTYxNGZmMjk3NGQw
YWY2NzIwMDE4MGFkYTM2NzI5NGVhYThhMmY4Li5jZjI1Njk2ZGZjNGQyYWYyZDZlOWFiNGQxNTM3
NzE3MGQ1ZGQyNWQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGli
QU5HTEUvVmVydGV4QXJyYXkuY3BwCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9s
aWJBTkdMRS9WZXJ0ZXhBcnJheS5jcHAKQEAgLTUyLDcgKzUyLDcgQEAgYm9vbCBWZXJ0ZXhBcnJh
eVN0YXRlOjpoYXNFbmFibGVkTnVsbFBvaW50ZXJDbGllbnRBcnJheSgpIGNvbnN0CiAKIEF0dHJp
YnV0ZXNNYXNrIFZlcnRleEFycmF5U3RhdGU6OmdldEJpbmRpbmdUb0F0dHJpYnV0ZXNNYXNrKEdM
dWludCBiaW5kaW5nSW5kZXgpIGNvbnN0CiB7Ci0gICAgQVNTRVJUKGJpbmRpbmdJbmRleCA8IE1B
WF9WRVJURVhfQVRUUklCX0JJTkRJTkdTKTsKKyAgICBBU1NFUlQoYmluZGluZ0luZGV4IDwgbVZl
cnRleEJpbmRpbmdzLnNpemUoKSk7CiAgICAgcmV0dXJuIG1WZXJ0ZXhCaW5kaW5nc1tiaW5kaW5n
SW5kZXhdLmdldEJvdW5kQXR0cmlidXRlc01hc2soKTsKIH0KIApAQCAtNjEsNyArNjEsNyBAQCB2
b2lkIFZlcnRleEFycmF5U3RhdGU6OnNldEF0dHJpYkJpbmRpbmcoY29uc3QgQ29udGV4dCAqY29u
dGV4dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgYXR0
cmliSW5kZXgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0x1aW50
IG5ld0JpbmRpbmdJbmRleCkKIHsKLSAgICBBU1NFUlQoYXR0cmliSW5kZXggPCBNQVhfVkVSVEVY
X0FUVFJJQlMgJiYgbmV3QmluZGluZ0luZGV4IDwgTUFYX1ZFUlRFWF9BVFRSSUJfQklORElOR1Mp
OworICAgIEFTU0VSVChhdHRyaWJJbmRleCA8IG1WZXJ0ZXhBdHRyaWJ1dGVzLnNpemUoKSAmJiBu
ZXdCaW5kaW5nSW5kZXggPCBtVmVydGV4QmluZGluZ3Muc2l6ZSgpKTsKIAogICAgIFZlcnRleEF0
dHJpYnV0ZSAmYXR0cmliID0gbVZlcnRleEF0dHJpYnV0ZXNbYXR0cmliSW5kZXhdOwogCkBAIC0x
MjYsNyArMTI2LDcgQEAgVmVydGV4QXJyYXk6OlZlcnRleEFycmF5KHJ4OjpHTEltcGxGYWN0b3J5
ICpmYWN0b3J5LAogdm9pZCBWZXJ0ZXhBcnJheTo6b25EZXN0cm95KGNvbnN0IENvbnRleHQgKmNv
bnRleHQpCiB7CiAgICAgYm9vbCBpc0JvdW5kID0gY29udGV4dC0+aXNDdXJyZW50VmVydGV4QXJy
YXkodGhpcyk7Ci0gICAgZm9yICh1aW50MzJfdCBiaW5kaW5nSW5kZXggPSAwOyBiaW5kaW5nSW5k
ZXggPCBnbDo6TUFYX1ZFUlRFWF9BVFRSSUJfQklORElOR1M7ICsrYmluZGluZ0luZGV4KQorICAg
IGZvciAodWludDMyX3QgYmluZGluZ0luZGV4ID0gMDsgYmluZGluZ0luZGV4IDwgbVN0YXRlLm1W
ZXJ0ZXhCaW5kaW5ncy5zaXplKCk7ICsrYmluZGluZ0luZGV4KQogICAgIHsKICAgICAgICAgVmVy
dGV4QmluZGluZyAmYmluZGluZyA9IG1TdGF0ZS5tVmVydGV4QmluZGluZ3NbYmluZGluZ0luZGV4
XTsKICAgICAgICAgQnVmZmVyICpidWZmZXIgICAgICAgICA9IGJpbmRpbmcuZ2V0QnVmZmVyKCku
Z2V0KCk7CkBAIC0xNzcsNyArMTc3LDcgQEAgYm9vbCBWZXJ0ZXhBcnJheTo6ZGV0YWNoQnVmZmVy
KGNvbnN0IENvbnRleHQgKmNvbnRleHQsIEJ1ZmZlcklEIGJ1ZmZlcklEKQogewogICAgIGJvb2wg
aXNCb3VuZCAgICAgICAgICAgPSBjb250ZXh0LT5pc0N1cnJlbnRWZXJ0ZXhBcnJheSh0aGlzKTsK
ICAgICBib29sIGFueUJ1ZmZlckRldGFjaGVkID0gZmFsc2U7Ci0gICAgZm9yICh1aW50MzJfdCBi
aW5kaW5nSW5kZXggPSAwOyBiaW5kaW5nSW5kZXggPCBnbDo6TUFYX1ZFUlRFWF9BVFRSSUJfQklO
RElOR1M7ICsrYmluZGluZ0luZGV4KQorICAgIGZvciAodWludDMyX3QgYmluZGluZ0luZGV4ID0g
MDsgYmluZGluZ0luZGV4IDwgbVN0YXRlLm1WZXJ0ZXhCaW5kaW5ncy5zaXplKCk7ICsrYmluZGlu
Z0luZGV4KQogICAgIHsKICAgICAgICAgVmVydGV4QmluZGluZyAmYmluZGluZyAgICAgICAgICAg
ICAgICAgICAgICA9IG1TdGF0ZS5tVmVydGV4QmluZGluZ3NbYmluZGluZ0luZGV4XTsKICAgICAg
ICAgY29uc3QgQmluZGluZ1BvaW50ZXI8QnVmZmVyPiAmYnVmZmVyQmluZGluZyA9IGJpbmRpbmcu
Z2V0QnVmZmVyKCk7CkBAIC0yMTUsNiArMjE1LDcgQEAgYm9vbCBWZXJ0ZXhBcnJheTo6ZGV0YWNo
QnVmZmVyKGNvbnN0IENvbnRleHQgKmNvbnRleHQsIEJ1ZmZlcklEIGJ1ZmZlcklEKQogICAgIHsK
ICAgICAgICAgaWYgKGlzQm91bmQgJiYgbVN0YXRlLm1FbGVtZW50QXJyYXlCdWZmZXIuZ2V0KCkp
CiAgICAgICAgICAgICBtU3RhdGUubUVsZW1lbnRBcnJheUJ1ZmZlci0+b25Ob25URkJpbmRpbmdD
aGFuZ2VkKC0xKTsKKyAgICAgICAgbVN0YXRlLm1FbGVtZW50QXJyYXlCdWZmZXItPnJlbW92ZUNv
bnRlbnRzT2JzZXJ2ZXIodGhpcywga0VsZW1lbnRBcnJheUJ1ZmZlckluZGV4KTsKICAgICAgICAg
bVN0YXRlLm1FbGVtZW50QXJyYXlCdWZmZXIuYmluZChjb250ZXh0LCBudWxscHRyKTsKICAgICAg
ICAgbURpcnR5Qml0cy5zZXQoRElSVFlfQklUX0VMRU1FTlRfQVJSQVlfQlVGRkVSKTsKICAgICAg
ICAgYW55QnVmZmVyRGV0YWNoZWQgPSB0cnVlOwpAQCAtNzE0LDEwICs3MTUsOCBAQCB2b2lkIFZl
cnRleEFycmF5OjpvblN1YmplY3RTdGF0ZUNoYW5nZShhbmdsZTo6U3ViamVjdEluZGV4IGluZGV4
LCBhbmdsZTo6U3ViamVjdAogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgY2FzZSBhbmds
ZTo6U3ViamVjdE1lc3NhZ2U6OkludGVybmFsTWVtb3J5QWxsb2NhdGlvbkNoYW5nZWQ6Ci0gICAg
ICAgICAgICBzZXREZXBlbmRlbnREaXJ0eUJpdChmYWxzZSwgaW5kZXgpOwotICAgICAgICAgICAg
YnJlYWs7Ci0KICAgICAgICAgY2FzZSBhbmdsZTo6U3ViamVjdE1lc3NhZ2U6OkJ1ZmZlclZrU3Rv
cmFnZUNoYW5nZWQ6CisgICAgICAgICAgICBzZXREZXBlbmRlbnREaXJ0eUJpdChmYWxzZSwgaW5k
ZXgpOwogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgZGVmYXVsdDoKZGlmZiAtLWdpdCBh
L1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9hbmdsZXR5cGVzLmNwcCBiL1Nv
dXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9hbmdsZXR5cGVzLmNwcAppbmRleCA5
MDc2MTYwOTU4ZjIyYjc5YmM0N2RjZTNhYTI3OTE1Y2VmMmQ1OGZjLi45ZTg4MGU5MzFkOWUwNDgw
NDQwNzIzMDY3ZTQyZDRhNTkwNzcxNDBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9B
TkdMRS9zcmMvbGliQU5HTEUvYW5nbGV0eXBlcy5jcHAKKysrIGIvU291cmNlL1RoaXJkUGFydHkv
QU5HTEUvc3JjL2xpYkFOR0xFL2FuZ2xldHlwZXMuY3BwCkBAIC0zNDYsMjAgKzM0NiwyMCBAQCBJ
bWFnZVVuaXQ6OkltYWdlVW5pdChjb25zdCBJbWFnZVVuaXQgJm90aGVyKSA9IGRlZmF1bHQ7CiAK
IEltYWdlVW5pdDo6fkltYWdlVW5pdCgpID0gZGVmYXVsdDsKIAotQmxlbmRTdGF0ZUV4dDo6Qmxl
bmRTdGF0ZUV4dChjb25zdCBzaXplX3QgZHJhd0J1ZmZlcnMpCi0gICAgOiBtTWF4RmFjdG9yTWFz
ayhGYWN0b3JTdG9yYWdlOjpHZXRNYXNrKGRyYXdCdWZmZXJzKSksCi0gICAgICBtU3JjQ29sb3Io
RmFjdG9yU3RvcmFnZTo6R2V0UmVwbGljYXRlZFZhbHVlKEJsZW5kRmFjdG9yVHlwZTo6T25lLCBt
TWF4RmFjdG9yTWFzaykpLAotICAgICAgbURzdENvbG9yKEZhY3RvclN0b3JhZ2U6OkdldFJlcGxp
Y2F0ZWRWYWx1ZShCbGVuZEZhY3RvclR5cGU6Olplcm8sIG1NYXhGYWN0b3JNYXNrKSksCi0gICAg
ICBtU3JjQWxwaGEoRmFjdG9yU3RvcmFnZTo6R2V0UmVwbGljYXRlZFZhbHVlKEJsZW5kRmFjdG9y
VHlwZTo6T25lLCBtTWF4RmFjdG9yTWFzaykpLAotICAgICAgbURzdEFscGhhKEZhY3RvclN0b3Jh
Z2U6OkdldFJlcGxpY2F0ZWRWYWx1ZShCbGVuZEZhY3RvclR5cGU6Olplcm8sIG1NYXhGYWN0b3JN
YXNrKSksCi0gICAgICBtTWF4RXF1YXRpb25NYXNrKEVxdWF0aW9uU3RvcmFnZTo6R2V0TWFzayhk
cmF3QnVmZmVycykpLAotICAgICAgbUVxdWF0aW9uQ29sb3IoRXF1YXRpb25TdG9yYWdlOjpHZXRS
ZXBsaWNhdGVkVmFsdWUoQmxlbmRFcXVhdGlvblR5cGU6OkFkZCwgbU1heEVxdWF0aW9uTWFzaykp
LAotICAgICAgbUVxdWF0aW9uQWxwaGEoRXF1YXRpb25TdG9yYWdlOjpHZXRSZXBsaWNhdGVkVmFs
dWUoQmxlbmRFcXVhdGlvblR5cGU6OkFkZCwgbU1heEVxdWF0aW9uTWFzaykpLAotICAgICAgbU1h
eENvbG9yTWFzayhDb2xvck1hc2tTdG9yYWdlOjpHZXRNYXNrKGRyYXdCdWZmZXJzKSksCi0gICAg
ICBtQ29sb3JNYXNrKENvbG9yTWFza1N0b3JhZ2U6OkdldFJlcGxpY2F0ZWRWYWx1ZShQYWNrQ29s
b3JNYXNrKHRydWUsIHRydWUsIHRydWUsIHRydWUpLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbU1heENvbG9yTWFzaykpLAotICAgICAgbU1h
eEVuYWJsZWRNYXNrKDB4RkYgPj4gKDggLSBkcmF3QnVmZmVycykpLAotICAgICAgbU1heERyYXdC
dWZmZXJzKGRyYXdCdWZmZXJzKQorQmxlbmRTdGF0ZUV4dDo6QmxlbmRTdGF0ZUV4dChjb25zdCBz
aXplX3QgZHJhd0J1ZmZlckNvdW50KQorICAgIDogbVBhcmFtZXRlck1hc2soRmFjdG9yU3RvcmFn
ZTo6R2V0TWFzayhkcmF3QnVmZmVyQ291bnQpKSwKKyAgICAgIG1TcmNDb2xvcihGYWN0b3JTdG9y
YWdlOjpHZXRSZXBsaWNhdGVkVmFsdWUoQmxlbmRGYWN0b3JUeXBlOjpPbmUsIG1QYXJhbWV0ZXJN
YXNrKSksCisgICAgICBtRHN0Q29sb3IoRmFjdG9yU3RvcmFnZTo6R2V0UmVwbGljYXRlZFZhbHVl
KEJsZW5kRmFjdG9yVHlwZTo6WmVybywgbVBhcmFtZXRlck1hc2spKSwKKyAgICAgIG1TcmNBbHBo
YShGYWN0b3JTdG9yYWdlOjpHZXRSZXBsaWNhdGVkVmFsdWUoQmxlbmRGYWN0b3JUeXBlOjpPbmUs
IG1QYXJhbWV0ZXJNYXNrKSksCisgICAgICBtRHN0QWxwaGEoRmFjdG9yU3RvcmFnZTo6R2V0UmVw
bGljYXRlZFZhbHVlKEJsZW5kRmFjdG9yVHlwZTo6WmVybywgbVBhcmFtZXRlck1hc2spKSwKKyAg
ICAgIG1FcXVhdGlvbkNvbG9yKEVxdWF0aW9uU3RvcmFnZTo6R2V0UmVwbGljYXRlZFZhbHVlKEJs
ZW5kRXF1YXRpb25UeXBlOjpBZGQsIG1QYXJhbWV0ZXJNYXNrKSksCisgICAgICBtRXF1YXRpb25B
bHBoYShFcXVhdGlvblN0b3JhZ2U6OkdldFJlcGxpY2F0ZWRWYWx1ZShCbGVuZEVxdWF0aW9uVHlw
ZTo6QWRkLCBtUGFyYW1ldGVyTWFzaykpLAorICAgICAgbUFsbENvbG9yTWFzaygKKyAgICAgICAg
ICBDb2xvck1hc2tTdG9yYWdlOjpHZXRSZXBsaWNhdGVkVmFsdWUoUGFja0NvbG9yTWFzayh0cnVl
LCB0cnVlLCB0cnVlLCB0cnVlKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgQ29sb3JNYXNrU3RvcmFnZTo6R2V0TWFzayhkcmF3QnVmZmVyQ291bnQpKSks
CisgICAgICBtQ29sb3JNYXNrKG1BbGxDb2xvck1hc2spLAorICAgICAgbUFsbEVuYWJsZWRNYXNr
KDB4RkYgPj4gKDggLSBkcmF3QnVmZmVyQ291bnQpKSwKKyAgICAgIG1EcmF3QnVmZmVyQ291bnQo
ZHJhd0J1ZmZlckNvdW50KQoge30KIAogQmxlbmRTdGF0ZUV4dDo6QmxlbmRTdGF0ZUV4dChjb25z
dCBCbGVuZFN0YXRlRXh0ICZvdGhlcikgPSBkZWZhdWx0OwpAQCAtMzY4LDEyICszNjgsMTIgQEAg
QmxlbmRTdGF0ZUV4dCAmQmxlbmRTdGF0ZUV4dDo6b3BlcmF0b3I9KGNvbnN0IEJsZW5kU3RhdGVF
eHQgJm90aGVyKSA9IGRlZmF1bHQ7CiAKIHZvaWQgQmxlbmRTdGF0ZUV4dDo6c2V0RW5hYmxlZChj
b25zdCBib29sIGVuYWJsZWQpCiB7Ci0gICAgbUVuYWJsZWRNYXNrID0gZW5hYmxlZCA/IG1NYXhF
bmFibGVkTWFzayA6IERyYXdCdWZmZXJNYXNrOjpaZXJvKCk7CisgICAgbUVuYWJsZWRNYXNrID0g
ZW5hYmxlZCA/IG1BbGxFbmFibGVkTWFzayA6IERyYXdCdWZmZXJNYXNrOjpaZXJvKCk7CiB9CiAK
IHZvaWQgQmxlbmRTdGF0ZUV4dDo6c2V0RW5hYmxlZEluZGV4ZWQoY29uc3Qgc2l6ZV90IGluZGV4
LCBjb25zdCBib29sIGVuYWJsZWQpCiB7Ci0gICAgQVNTRVJUKGluZGV4IDwgbU1heERyYXdCdWZm
ZXJzKTsKKyAgICBBU1NFUlQoaW5kZXggPCBtRHJhd0J1ZmZlckNvdW50KTsKICAgICBtRW5hYmxl
ZE1hc2suc2V0KGluZGV4LCBlbmFibGVkKTsKIH0KIApAQCAtMzgzLDE0ICszODMsMTQgQEAgQmxl
bmRTdGF0ZUV4dDo6Q29sb3JNYXNrU3RvcmFnZTo6VHlwZSBCbGVuZFN0YXRlRXh0OjpleHBhbmRD
b2xvck1hc2tWYWx1ZShjb25zdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBib29sIGFscGhhKSBj
b25zdAogewogICAgIHJldHVybiBCbGVuZFN0YXRlRXh0OjpDb2xvck1hc2tTdG9yYWdlOjpHZXRS
ZXBsaWNhdGVkVmFsdWUoCi0gICAgICAgIFBhY2tDb2xvck1hc2socmVkLCBncmVlbiwgYmx1ZSwg
YWxwaGEpLCBtTWF4Q29sb3JNYXNrKTsKKyAgICAgICAgUGFja0NvbG9yTWFzayhyZWQsIGdyZWVu
LCBibHVlLCBhbHBoYSksIG1BbGxDb2xvck1hc2spOwogfQogCiBCbGVuZFN0YXRlRXh0OjpDb2xv
ck1hc2tTdG9yYWdlOjpUeXBlIEJsZW5kU3RhdGVFeHQ6OmV4cGFuZENvbG9yTWFza0luZGV4ZWQo
CiAgICAgY29uc3Qgc2l6ZV90IGluZGV4KSBjb25zdAogewogICAgIHJldHVybiBDb2xvck1hc2tT
dG9yYWdlOjpHZXRSZXBsaWNhdGVkVmFsdWUoCi0gICAgICAgIENvbG9yTWFza1N0b3JhZ2U6Okdl
dFZhbHVlSW5kZXhlZChpbmRleCwgbUNvbG9yTWFzayksIG1NYXhDb2xvck1hc2spOworICAgICAg
ICBDb2xvck1hc2tTdG9yYWdlOjpHZXRWYWx1ZUluZGV4ZWQoaW5kZXgsIG1Db2xvck1hc2spLCBt
QWxsQ29sb3JNYXNrKTsKIH0KIAogdm9pZCBCbGVuZFN0YXRlRXh0OjpzZXRDb2xvck1hc2soY29u
c3QgYm9vbCByZWQsCkBAIC00MDMsNyArNDAzLDcgQEAgdm9pZCBCbGVuZFN0YXRlRXh0OjpzZXRD
b2xvck1hc2soY29uc3QgYm9vbCByZWQsCiAKIHZvaWQgQmxlbmRTdGF0ZUV4dDo6c2V0Q29sb3JN
YXNrSW5kZXhlZChjb25zdCBzaXplX3QgaW5kZXgsIGNvbnN0IHVpbnQ4X3QgdmFsdWUpCiB7Ci0g
ICAgQVNTRVJUKGluZGV4IDwgbU1heERyYXdCdWZmZXJzKTsKKyAgICBBU1NFUlQoaW5kZXggPCBt
RHJhd0J1ZmZlckNvdW50KTsKICAgICBBU1NFUlQodmFsdWUgPD0gMHhGKTsKICAgICBDb2xvck1h
c2tTdG9yYWdlOjpTZXRWYWx1ZUluZGV4ZWQoaW5kZXgsIHZhbHVlLCAmbUNvbG9yTWFzayk7CiB9
CkBAIC00MTQsMTMgKzQxNCwxMyBAQCB2b2lkIEJsZW5kU3RhdGVFeHQ6OnNldENvbG9yTWFza0lu
ZGV4ZWQoY29uc3Qgc2l6ZV90IGluZGV4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IGJvb2wgYmx1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBib29sIGFscGhhKQogewotICAgIEFTU0VSVChpbmRleCA8IG1NYXhE
cmF3QnVmZmVycyk7CisgICAgQVNTRVJUKGluZGV4IDwgbURyYXdCdWZmZXJDb3VudCk7CiAgICAg
Q29sb3JNYXNrU3RvcmFnZTo6U2V0VmFsdWVJbmRleGVkKGluZGV4LCBQYWNrQ29sb3JNYXNrKHJl
ZCwgZ3JlZW4sIGJsdWUsIGFscGhhKSwgJm1Db2xvck1hc2spOwogfQogCiB1aW50OF90IEJsZW5k
U3RhdGVFeHQ6OmdldENvbG9yTWFza0luZGV4ZWQoY29uc3Qgc2l6ZV90IGluZGV4KSBjb25zdAog
ewotICAgIEFTU0VSVChpbmRleCA8IG1NYXhEcmF3QnVmZmVycyk7CisgICAgQVNTRVJUKGluZGV4
IDwgbURyYXdCdWZmZXJDb3VudCk7CiAgICAgcmV0dXJuIENvbG9yTWFza1N0b3JhZ2U6OkdldFZh
bHVlSW5kZXhlZChpbmRleCwgbUNvbG9yTWFzayk7CiB9CiAKQEAgLTQzMCw3ICs0MzAsNyBAQCB2
b2lkIEJsZW5kU3RhdGVFeHQ6OmdldENvbG9yTWFza0luZGV4ZWQoY29uc3Qgc2l6ZV90IGluZGV4
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgKmJsdWUsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCAqYWxwaGEpIGNvbnN0
CiB7Ci0gICAgQVNTRVJUKGluZGV4IDwgbU1heERyYXdCdWZmZXJzKTsKKyAgICBBU1NFUlQoaW5k
ZXggPCBtRHJhd0J1ZmZlckNvdW50KTsKICAgICBVbnBhY2tDb2xvck1hc2soQ29sb3JNYXNrU3Rv
cmFnZTo6R2V0VmFsdWVJbmRleGVkKGluZGV4LCBtQ29sb3JNYXNrKSwgcmVkLCBncmVlbiwgYmx1
ZSwgYWxwaGEpOwogfQogCkBAIC00MzksMjQgKzQzOSwyOSBAQCBEcmF3QnVmZmVyTWFzayBCbGVu
ZFN0YXRlRXh0Ojpjb21wYXJlQ29sb3JNYXNrKENvbG9yTWFza1N0b3JhZ2U6OlR5cGUgb3RoZXIp
IGNvbgogICAgIHJldHVybiBDb2xvck1hc2tTdG9yYWdlOjpHZXREaWZmTWFzayhtQ29sb3JNYXNr
LCBvdGhlcik7CiB9CiAKK0JsZW5kU3RhdGVFeHQ6OkVxdWF0aW9uU3RvcmFnZTo6VHlwZSBCbGVu
ZFN0YXRlRXh0OjpleHBhbmRFcXVhdGlvblZhbHVlKGNvbnN0IEdMZW51bSBtb2RlKSBjb25zdAor
eworICAgIHJldHVybiBFcXVhdGlvblN0b3JhZ2U6OkdldFJlcGxpY2F0ZWRWYWx1ZShGcm9tR0xl
bnVtPEJsZW5kRXF1YXRpb25UeXBlPihtb2RlKSwgbVBhcmFtZXRlck1hc2spOworfQorCiBCbGVu
ZFN0YXRlRXh0OjpFcXVhdGlvblN0b3JhZ2U6OlR5cGUgQmxlbmRTdGF0ZUV4dDo6ZXhwYW5kRXF1
YXRpb25WYWx1ZSgKICAgICBjb25zdCBnbDo6QmxlbmRFcXVhdGlvblR5cGUgZXF1YXRpb24pIGNv
bnN0CiB7Ci0gICAgcmV0dXJuIEVxdWF0aW9uU3RvcmFnZTo6R2V0UmVwbGljYXRlZFZhbHVlKGVx
dWF0aW9uLCBtTWF4RXF1YXRpb25NYXNrKTsKKyAgICByZXR1cm4gRXF1YXRpb25TdG9yYWdlOjpH
ZXRSZXBsaWNhdGVkVmFsdWUoZXF1YXRpb24sIG1QYXJhbWV0ZXJNYXNrKTsKIH0KIAogQmxlbmRT
dGF0ZUV4dDo6RXF1YXRpb25TdG9yYWdlOjpUeXBlIEJsZW5kU3RhdGVFeHQ6OmV4cGFuZEVxdWF0
aW9uQ29sb3JJbmRleGVkKAogICAgIGNvbnN0IHNpemVfdCBpbmRleCkgY29uc3QKIHsKICAgICBy
ZXR1cm4gRXF1YXRpb25TdG9yYWdlOjpHZXRSZXBsaWNhdGVkVmFsdWUoCi0gICAgICAgIEVxdWF0
aW9uU3RvcmFnZTo6R2V0VmFsdWVJbmRleGVkKGluZGV4LCBtRXF1YXRpb25Db2xvciksIG1NYXhF
cXVhdGlvbk1hc2spOworICAgICAgICBFcXVhdGlvblN0b3JhZ2U6OkdldFZhbHVlSW5kZXhlZChp
bmRleCwgbUVxdWF0aW9uQ29sb3IpLCBtUGFyYW1ldGVyTWFzayk7CiB9CiAKIEJsZW5kU3RhdGVF
eHQ6OkVxdWF0aW9uU3RvcmFnZTo6VHlwZSBCbGVuZFN0YXRlRXh0OjpleHBhbmRFcXVhdGlvbkFs
cGhhSW5kZXhlZCgKICAgICBjb25zdCBzaXplX3QgaW5kZXgpIGNvbnN0CiB7CiAgICAgcmV0dXJu
IEVxdWF0aW9uU3RvcmFnZTo6R2V0UmVwbGljYXRlZFZhbHVlKAotICAgICAgICBFcXVhdGlvblN0
b3JhZ2U6OkdldFZhbHVlSW5kZXhlZChpbmRleCwgbUVxdWF0aW9uQWxwaGEpLCBtTWF4RXF1YXRp
b25NYXNrKTsKKyAgICAgICAgRXF1YXRpb25TdG9yYWdlOjpHZXRWYWx1ZUluZGV4ZWQoaW5kZXgs
IG1FcXVhdGlvbkFscGhhKSwgbVBhcmFtZXRlck1hc2spOwogfQogCiB2b2lkIEJsZW5kU3RhdGVF
eHQ6OnNldEVxdWF0aW9ucyhjb25zdCBHTGVudW0gbW9kZUNvbG9yLCBjb25zdCBHTGVudW0gbW9k
ZUFscGhhKQpAQCAtNDcxLDcgKzQ3Niw3IEBAIHZvaWQgQmxlbmRTdGF0ZUV4dDo6c2V0RXF1YXRp
b25zKGNvbnN0IEdMZW51bSBtb2RlQ29sb3IsIGNvbnN0IEdMZW51bSBtb2RlQWxwaGEpCiAgICAg
Ly8gdGhlIGNvbG9yIGVxdWF0aW9uIGNhbiBiZSBjaGVja2VkLgogICAgIGlmIChJc0FkdmFuY2Vk
QmxlbmRFcXVhdGlvbihjb2xvckVxdWF0aW9uKSkKICAgICB7Ci0gICAgICAgIG1Vc2VzQWR2YW5j
ZWRCbGVuZEVxdWF0aW9uTWFzayA9IG1NYXhFbmFibGVkTWFzazsKKyAgICAgICAgbVVzZXNBZHZh
bmNlZEJsZW5kRXF1YXRpb25NYXNrID0gbUFsbEVuYWJsZWRNYXNrOwogICAgIH0KICAgICBlbHNl
CiAgICAgewpAQCAtNDgzLDcgKzQ4OCw3IEBAIHZvaWQgQmxlbmRTdGF0ZUV4dDo6c2V0RXF1YXRp
b25zSW5kZXhlZChjb25zdCBzaXplX3QgaW5kZXgsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29uc3QgR0xlbnVtIG1vZGVDb2xvciwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBHTGVudW0gbW9kZUFscGhhKQogewotICAgIEFT
U0VSVChpbmRleCA8IG1NYXhEcmF3QnVmZmVycyk7CisgICAgQVNTRVJUKGluZGV4IDwgbURyYXdC
dWZmZXJDb3VudCk7CiAKICAgICBjb25zdCBnbDo6QmxlbmRFcXVhdGlvblR5cGUgY29sb3JFcXVh
dGlvbiA9IEZyb21HTGVudW08QmxlbmRFcXVhdGlvblR5cGU+KG1vZGVDb2xvcik7CiAgICAgY29u
c3QgZ2w6OkJsZW5kRXF1YXRpb25UeXBlIGFscGhhRXF1YXRpb24gPSBGcm9tR0xlbnVtPEJsZW5k
RXF1YXRpb25UeXBlPihtb2RlQWxwaGEpOwpAQCAtNDk4LDggKzUwMyw4IEBAIHZvaWQgQmxlbmRT
dGF0ZUV4dDo6c2V0RXF1YXRpb25zSW5kZXhlZChjb25zdCBzaXplX3QgaW5kZXgsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2l6ZV90IHNvdXJjZUluZGV4
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEJsZW5kU3Rh
dGVFeHQgJnNvdXJjZSkKIHsKLSAgICBBU1NFUlQoaW5kZXggPCBtTWF4RHJhd0J1ZmZlcnMpOwot
ICAgIEFTU0VSVChzb3VyY2VJbmRleCA8IHNvdXJjZS5tTWF4RHJhd0J1ZmZlcnMpOworICAgIEFT
U0VSVChpbmRleCA8IG1EcmF3QnVmZmVyQ291bnQpOworICAgIEFTU0VSVChzb3VyY2VJbmRleCA8
IHNvdXJjZS5tRHJhd0J1ZmZlckNvdW50KTsKIAogICAgIGNvbnN0IGdsOjpCbGVuZEVxdWF0aW9u
VHlwZSBjb2xvckVxdWF0aW9uID0KICAgICAgICAgRXF1YXRpb25TdG9yYWdlOjpHZXRWYWx1ZUlu
ZGV4ZWQoc291cmNlSW5kZXgsIHNvdXJjZS5tRXF1YXRpb25Db2xvcik7CkBAIC01MTQsMTMgKzUx
OSwxMyBAQCB2b2lkIEJsZW5kU3RhdGVFeHQ6OnNldEVxdWF0aW9uc0luZGV4ZWQoY29uc3Qgc2l6
ZV90IGluZGV4LAogCiBHTGVudW0gQmxlbmRTdGF0ZUV4dDo6Z2V0RXF1YXRpb25Db2xvckluZGV4
ZWQoc2l6ZV90IGluZGV4KSBjb25zdAogewotICAgIEFTU0VSVChpbmRleCA8IG1NYXhEcmF3QnVm
ZmVycyk7CisgICAgQVNTRVJUKGluZGV4IDwgbURyYXdCdWZmZXJDb3VudCk7CiAgICAgcmV0dXJu
IFRvR0xlbnVtKEVxdWF0aW9uU3RvcmFnZTo6R2V0VmFsdWVJbmRleGVkKGluZGV4LCBtRXF1YXRp
b25Db2xvcikpOwogfQogCiBHTGVudW0gQmxlbmRTdGF0ZUV4dDo6Z2V0RXF1YXRpb25BbHBoYUlu
ZGV4ZWQoc2l6ZV90IGluZGV4KSBjb25zdAogewotICAgIEFTU0VSVChpbmRleCA8IG1NYXhEcmF3
QnVmZmVycyk7CisgICAgQVNTRVJUKGluZGV4IDwgbURyYXdCdWZmZXJDb3VudCk7CiAgICAgcmV0
dXJuIFRvR0xlbnVtKEVxdWF0aW9uU3RvcmFnZTo6R2V0VmFsdWVJbmRleGVkKGluZGV4LCBtRXF1
YXRpb25BbHBoYSkpOwogfQogCkBAIC01MzMsMzUgKzUzOCwzNSBAQCBEcmF3QnVmZmVyTWFzayBC
bGVuZFN0YXRlRXh0Ojpjb21wYXJlRXF1YXRpb25zKGNvbnN0IEVxdWF0aW9uU3RvcmFnZTo6VHlw
ZSBjb2xvcgogCiBCbGVuZFN0YXRlRXh0OjpGYWN0b3JTdG9yYWdlOjpUeXBlIEJsZW5kU3RhdGVF
eHQ6OmV4cGFuZEZhY3RvclZhbHVlKGNvbnN0IEdMZW51bSBmdW5jKSBjb25zdAogewotICAgIHJl
dHVybiBGYWN0b3JTdG9yYWdlOjpHZXRSZXBsaWNhdGVkVmFsdWUoRnJvbUdMZW51bTxCbGVuZEZh
Y3RvclR5cGU+KGZ1bmMpLCBtTWF4RmFjdG9yTWFzayk7CisgICAgcmV0dXJuIEZhY3RvclN0b3Jh
Z2U6OkdldFJlcGxpY2F0ZWRWYWx1ZShGcm9tR0xlbnVtPEJsZW5kRmFjdG9yVHlwZT4oZnVuYyks
IG1QYXJhbWV0ZXJNYXNrKTsKIH0KIAogQmxlbmRTdGF0ZUV4dDo6RmFjdG9yU3RvcmFnZTo6VHlw
ZSBCbGVuZFN0YXRlRXh0OjpleHBhbmRTcmNDb2xvckluZGV4ZWQoY29uc3Qgc2l6ZV90IGluZGV4
KSBjb25zdAogewotICAgIEFTU0VSVChpbmRleCA8IG1NYXhEcmF3QnVmZmVycyk7CisgICAgQVNT
RVJUKGluZGV4IDwgbURyYXdCdWZmZXJDb3VudCk7CiAgICAgcmV0dXJuIEZhY3RvclN0b3JhZ2U6
OkdldFJlcGxpY2F0ZWRWYWx1ZShGYWN0b3JTdG9yYWdlOjpHZXRWYWx1ZUluZGV4ZWQoaW5kZXgs
IG1TcmNDb2xvciksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBtTWF4RmFjdG9yTWFzayk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtUGFyYW1ldGVyTWFzayk7CiB9CiAKIEJsZW5kU3RhdGVFeHQ6OkZhY3RvclN0b3Jh
Z2U6OlR5cGUgQmxlbmRTdGF0ZUV4dDo6ZXhwYW5kRHN0Q29sb3JJbmRleGVkKGNvbnN0IHNpemVf
dCBpbmRleCkgY29uc3QKIHsKLSAgICBBU1NFUlQoaW5kZXggPCBtTWF4RHJhd0J1ZmZlcnMpOwor
ICAgIEFTU0VSVChpbmRleCA8IG1EcmF3QnVmZmVyQ291bnQpOwogICAgIHJldHVybiBGYWN0b3JT
dG9yYWdlOjpHZXRSZXBsaWNhdGVkVmFsdWUoRmFjdG9yU3RvcmFnZTo6R2V0VmFsdWVJbmRleGVk
KGluZGV4LCBtRHN0Q29sb3IpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbU1heEZhY3Rvck1hc2spOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbVBhcmFtZXRlck1hc2spOwogfQogCiBCbGVuZFN0YXRlRXh0OjpGYWN0
b3JTdG9yYWdlOjpUeXBlIEJsZW5kU3RhdGVFeHQ6OmV4cGFuZFNyY0FscGhhSW5kZXhlZChjb25z
dCBzaXplX3QgaW5kZXgpIGNvbnN0CiB7Ci0gICAgQVNTRVJUKGluZGV4IDwgbU1heERyYXdCdWZm
ZXJzKTsKKyAgICBBU1NFUlQoaW5kZXggPCBtRHJhd0J1ZmZlckNvdW50KTsKICAgICByZXR1cm4g
RmFjdG9yU3RvcmFnZTo6R2V0UmVwbGljYXRlZFZhbHVlKEZhY3RvclN0b3JhZ2U6OkdldFZhbHVl
SW5kZXhlZChpbmRleCwgbVNyY0FscGhhKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG1NYXhGYWN0b3JNYXNrKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1QYXJhbWV0ZXJNYXNrKTsKIH0KIAogQmxlbmRTdGF0ZUV4
dDo6RmFjdG9yU3RvcmFnZTo6VHlwZSBCbGVuZFN0YXRlRXh0OjpleHBhbmREc3RBbHBoYUluZGV4
ZWQoY29uc3Qgc2l6ZV90IGluZGV4KSBjb25zdAogewotICAgIEFTU0VSVChpbmRleCA8IG1NYXhE
cmF3QnVmZmVycyk7CisgICAgQVNTRVJUKGluZGV4IDwgbURyYXdCdWZmZXJDb3VudCk7CiAgICAg
cmV0dXJuIEZhY3RvclN0b3JhZ2U6OkdldFJlcGxpY2F0ZWRWYWx1ZShGYWN0b3JTdG9yYWdlOjpH
ZXRWYWx1ZUluZGV4ZWQoaW5kZXgsIG1Ec3RBbHBoYSksCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBtTWF4RmFjdG9yTWFzayk7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtUGFyYW1ldGVyTWFzayk7CiB9CiAKIHZvaWQg
QmxlbmRTdGF0ZUV4dDo6c2V0RmFjdG9ycyhjb25zdCBHTGVudW0gc3JjQ29sb3IsCkBAIC01ODEs
NyArNTg2LDcgQEAgdm9pZCBCbGVuZFN0YXRlRXh0OjpzZXRGYWN0b3JzSW5kZXhlZChjb25zdCBz
aXplX3QgaW5kZXgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IEdMZW51bSBzcmNBbHBoYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgR0xlbnVtIGRzdEFscGhhKQogewotICAgIEFTU0VSVChpbmRleCA8IG1NYXhEcmF3QnVm
ZmVycyk7CisgICAgQVNTRVJUKGluZGV4IDwgbURyYXdCdWZmZXJDb3VudCk7CiAgICAgRmFjdG9y
U3RvcmFnZTo6U2V0VmFsdWVJbmRleGVkKGluZGV4LCBGcm9tR0xlbnVtPEJsZW5kRmFjdG9yVHlw
ZT4oc3JjQ29sb3IpLCAmbVNyY0NvbG9yKTsKICAgICBGYWN0b3JTdG9yYWdlOjpTZXRWYWx1ZUlu
ZGV4ZWQoaW5kZXgsIEZyb21HTGVudW08QmxlbmRGYWN0b3JUeXBlPihkc3RDb2xvciksICZtRHN0
Q29sb3IpOwogICAgIEZhY3RvclN0b3JhZ2U6OlNldFZhbHVlSW5kZXhlZChpbmRleCwgRnJvbUdM
ZW51bTxCbGVuZEZhY3RvclR5cGU+KHNyY0FscGhhKSwgJm1TcmNBbHBoYSk7CkBAIC01OTIsOCAr
NTk3LDggQEAgdm9pZCBCbGVuZFN0YXRlRXh0OjpzZXRGYWN0b3JzSW5kZXhlZChjb25zdCBzaXpl
X3QgaW5kZXgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNp
emVfdCBzb3VyY2VJbmRleCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgQmxlbmRTdGF0ZUV4dCAmc291cmNlKQogewotICAgIEFTU0VSVChpbmRleCA8IG1NYXhE
cmF3QnVmZmVycyk7Ci0gICAgQVNTRVJUKHNvdXJjZUluZGV4IDwgc291cmNlLm1NYXhEcmF3QnVm
ZmVycyk7CisgICAgQVNTRVJUKGluZGV4IDwgbURyYXdCdWZmZXJDb3VudCk7CisgICAgQVNTRVJU
KHNvdXJjZUluZGV4IDwgc291cmNlLm1EcmF3QnVmZmVyQ291bnQpOwogICAgIEZhY3RvclN0b3Jh
Z2U6OlNldFZhbHVlSW5kZXhlZCgKICAgICAgICAgaW5kZXgsIEZhY3RvclN0b3JhZ2U6OkdldFZh
bHVlSW5kZXhlZChzb3VyY2VJbmRleCwgc291cmNlLm1TcmNDb2xvciksICZtU3JjQ29sb3IpOwog
ICAgIEZhY3RvclN0b3JhZ2U6OlNldFZhbHVlSW5kZXhlZCgKQEAgLTYwNiwyNSArNjExLDI1IEBA
IHZvaWQgQmxlbmRTdGF0ZUV4dDo6c2V0RmFjdG9yc0luZGV4ZWQoY29uc3Qgc2l6ZV90IGluZGV4
LAogCiBHTGVudW0gQmxlbmRTdGF0ZUV4dDo6Z2V0U3JjQ29sb3JJbmRleGVkKHNpemVfdCBpbmRl
eCkgY29uc3QKIHsKLSAgICBBU1NFUlQoaW5kZXggPCBtTWF4RHJhd0J1ZmZlcnMpOworICAgIEFT
U0VSVChpbmRleCA8IG1EcmF3QnVmZmVyQ291bnQpOwogICAgIHJldHVybiBUb0dMZW51bShGYWN0
b3JTdG9yYWdlOjpHZXRWYWx1ZUluZGV4ZWQoaW5kZXgsIG1TcmNDb2xvcikpOwogfQogCiBHTGVu
dW0gQmxlbmRTdGF0ZUV4dDo6Z2V0RHN0Q29sb3JJbmRleGVkKHNpemVfdCBpbmRleCkgY29uc3QK
IHsKLSAgICBBU1NFUlQoaW5kZXggPCBtTWF4RHJhd0J1ZmZlcnMpOworICAgIEFTU0VSVChpbmRl
eCA8IG1EcmF3QnVmZmVyQ291bnQpOwogICAgIHJldHVybiBUb0dMZW51bShGYWN0b3JTdG9yYWdl
OjpHZXRWYWx1ZUluZGV4ZWQoaW5kZXgsIG1Ec3RDb2xvcikpOwogfQogCiBHTGVudW0gQmxlbmRT
dGF0ZUV4dDo6Z2V0U3JjQWxwaGFJbmRleGVkKHNpemVfdCBpbmRleCkgY29uc3QKIHsKLSAgICBB
U1NFUlQoaW5kZXggPCBtTWF4RHJhd0J1ZmZlcnMpOworICAgIEFTU0VSVChpbmRleCA8IG1EcmF3
QnVmZmVyQ291bnQpOwogICAgIHJldHVybiBUb0dMZW51bShGYWN0b3JTdG9yYWdlOjpHZXRWYWx1
ZUluZGV4ZWQoaW5kZXgsIG1TcmNBbHBoYSkpOwogfQogCiBHTGVudW0gQmxlbmRTdGF0ZUV4dDo6
Z2V0RHN0QWxwaGFJbmRleGVkKHNpemVfdCBpbmRleCkgY29uc3QKIHsKLSAgICBBU1NFUlQoaW5k
ZXggPCBtTWF4RHJhd0J1ZmZlcnMpOworICAgIEFTU0VSVChpbmRleCA8IG1EcmF3QnVmZmVyQ291
bnQpOwogICAgIHJldHVybiBUb0dMZW51bShGYWN0b3JTdG9yYWdlOjpHZXRWYWx1ZUluZGV4ZWQo
aW5kZXgsIG1Ec3RBbHBoYSkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9B
TkdMRS9zcmMvbGliQU5HTEUvYW5nbGV0eXBlcy5oIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUv
c3JjL2xpYkFOR0xFL2FuZ2xldHlwZXMuaAppbmRleCBhODkwZjVjMjRhNzRhNzZmYmZiMGRmNzhm
ZTdmNWY1ZDU3MjE1YThmLi45ZmQ5NTNkMmFiZmZmYjljZTkzNTYwMTQ2MWM4NTc0OTY1OWQwOTMz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvYW5nbGV0
eXBlcy5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9hbmdsZXR5
cGVzLmgKQEAgLTIzLDYgKzIzLDcgQEAKIAogI2luY2x1ZGUgPGJpdHNldD4KICNpbmNsdWRlIDxt
YXA+CisjaW5jbHVkZSA8bWVtb3J5PgogI2luY2x1ZGUgPHVub3JkZXJlZF9tYXA+CiAKIG5hbWVz
cGFjZSBnbApAQCAtNjEwLDYgKzYxMSw5IEBAIGNsYXNzIEJsZW5kU3RhdGVFeHQgZmluYWwKICAg
ICB1c2luZyBGYWN0b3JTdG9yYWdlICAgID0gU3RvcmFnZVR5cGU8QmxlbmRGYWN0b3JUeXBlLCBh
bmdsZTo6RW51bVNpemU8QmxlbmRGYWN0b3JUeXBlPigpPjsKICAgICB1c2luZyBFcXVhdGlvblN0
b3JhZ2UgID0gU3RvcmFnZVR5cGU8QmxlbmRFcXVhdGlvblR5cGUsIGFuZ2xlOjpFbnVtU2l6ZTxC
bGVuZEVxdWF0aW9uVHlwZT4oKT47CiAgICAgdXNpbmcgQ29sb3JNYXNrU3RvcmFnZSA9IFN0b3Jh
Z2VUeXBlPHVpbnQ4X3QsIDE2PjsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfc2FtZTxGYWN0
b3JTdG9yYWdlOjpUeXBlLCB1aW50NjRfdD46OnZhbHVlICYmCisgICAgICAgICAgICAgICAgICAg
ICAgc3RkOjppc19zYW1lPEVxdWF0aW9uU3RvcmFnZTo6VHlwZSwgdWludDY0X3Q+Ojp2YWx1ZSwK
KyAgICAgICAgICAgICAgICAgICJGYWN0b3IgYW5kIEVxdWF0aW9uIHN0b3JhZ2UgbXVzdCBiZSA2
NC1iaXQuIik7CiAKICAgICBCbGVuZFN0YXRlRXh0KGNvbnN0IHNpemVfdCBkcmF3QnVmZmVycyA9
IDEpOwogCkBAIC02NjUsNiArNjY5LDcgQEAgY2xhc3MgQmxlbmRTdGF0ZUV4dCBmaW5hbAogCiAg
ICAgLy8vLy8vLy8vIEJsZW5kIEVxdWF0aW9uIC8vLy8vLy8vLwogCisgICAgRXF1YXRpb25TdG9y
YWdlOjpUeXBlIGV4cGFuZEVxdWF0aW9uVmFsdWUoY29uc3QgR0xlbnVtIG1vZGUpIGNvbnN0Owog
ICAgIEVxdWF0aW9uU3RvcmFnZTo6VHlwZSBleHBhbmRFcXVhdGlvblZhbHVlKGNvbnN0IGdsOjpC
bGVuZEVxdWF0aW9uVHlwZSBlcXVhdGlvbikgY29uc3Q7CiAgICAgRXF1YXRpb25TdG9yYWdlOjpU
eXBlIGV4cGFuZEVxdWF0aW9uQ29sb3JJbmRleGVkKGNvbnN0IHNpemVfdCBpbmRleCkgY29uc3Q7
CiAgICAgRXF1YXRpb25TdG9yYWdlOjpUeXBlIGV4cGFuZEVxdWF0aW9uQWxwaGFJbmRleGVkKGNv
bnN0IHNpemVfdCBpbmRleCkgY29uc3Q7CkBAIC02NzcsNiArNjgyLDEwIEBAIGNsYXNzIEJsZW5k
U3RhdGVFeHQgZmluYWwKICAgICBHTGVudW0gZ2V0RXF1YXRpb25BbHBoYUluZGV4ZWQoc2l6ZV90
IGluZGV4KSBjb25zdDsKICAgICBEcmF3QnVmZmVyTWFzayBjb21wYXJlRXF1YXRpb25zKGNvbnN0
IEVxdWF0aW9uU3RvcmFnZTo6VHlwZSBjb2xvciwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IEVxdWF0aW9uU3RvcmFnZTo6VHlwZSBhbHBoYSkgY29uc3Q7CisgICAg
RHJhd0J1ZmZlck1hc2sgY29tcGFyZUVxdWF0aW9ucyhjb25zdCBCbGVuZFN0YXRlRXh0ICZvdGhl
cikgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBjb21wYXJlRXF1YXRpb25zKG90aGVyLm1F
cXVhdGlvbkNvbG9yLCBvdGhlci5tRXF1YXRpb25BbHBoYSk7CisgICAgfQogCiAgICAgLy8vLy8v
Ly8vIEJsZW5kIEZhY3RvcnMgLy8vLy8vLy8vCiAKQEAgLTcwMywzMCArNzEyLDg3IEBAIGNsYXNz
IEJsZW5kU3RhdGVFeHQgZmluYWwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBGYWN0b3JTdG9yYWdlOjpUeXBlIGRzdENvbG9yLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnN0IEZhY3RvclN0b3JhZ2U6OlR5cGUgc3JjQWxwaGEsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgRmFjdG9yU3RvcmFnZTo6VHlwZSBkc3RB
bHBoYSkgY29uc3Q7CisgICAgRHJhd0J1ZmZlck1hc2sgY29tcGFyZUZhY3RvcnMoY29uc3QgQmxl
bmRTdGF0ZUV4dCAmb3RoZXIpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gY29tcGFyZUZh
Y3RvcnMob3RoZXIubVNyY0NvbG9yLCBvdGhlci5tRHN0Q29sb3IsIG90aGVyLm1TcmNBbHBoYSwg
b3RoZXIubURzdEFscGhhKTsKKyAgICB9CisKKyAgICBjb25zdGV4cHIgRmFjdG9yU3RvcmFnZTo6
VHlwZSBnZXRTcmNDb2xvckJpdHMoKSBjb25zdCB7IHJldHVybiBtU3JjQ29sb3I7IH0KKyAgICBj
b25zdGV4cHIgRmFjdG9yU3RvcmFnZTo6VHlwZSBnZXRTcmNBbHBoYUJpdHMoKSBjb25zdCB7IHJl
dHVybiBtU3JjQWxwaGE7IH0KKyAgICBjb25zdGV4cHIgRmFjdG9yU3RvcmFnZTo6VHlwZSBnZXRE
c3RDb2xvckJpdHMoKSBjb25zdCB7IHJldHVybiBtRHN0Q29sb3I7IH0KKyAgICBjb25zdGV4cHIg
RmFjdG9yU3RvcmFnZTo6VHlwZSBnZXREc3RBbHBoYUJpdHMoKSBjb25zdCB7IHJldHVybiBtRHN0
QWxwaGE7IH0KKworICAgIGNvbnN0ZXhwciBFcXVhdGlvblN0b3JhZ2U6OlR5cGUgZ2V0RXF1YXRp
b25Db2xvckJpdHMoKSBjb25zdCB7IHJldHVybiBtRXF1YXRpb25Db2xvcjsgfQorICAgIGNvbnN0
ZXhwciBFcXVhdGlvblN0b3JhZ2U6OlR5cGUgZ2V0RXF1YXRpb25BbHBoYUJpdHMoKSBjb25zdCB7
IHJldHVybiBtRXF1YXRpb25BbHBoYTsgfQorCisgICAgY29uc3RleHByIENvbG9yTWFza1N0b3Jh
Z2U6OlR5cGUgZ2V0QWxsQ29sb3JNYXNrQml0cygpIGNvbnN0IHsgcmV0dXJuIG1BbGxDb2xvck1h
c2s7IH0KKyAgICBjb25zdGV4cHIgQ29sb3JNYXNrU3RvcmFnZTo6VHlwZSBnZXRDb2xvck1hc2tC
aXRzKCkgY29uc3QgeyByZXR1cm4gbUNvbG9yTWFzazsgfQorCisgICAgY29uc3RleHByIERyYXdC
dWZmZXJNYXNrIGdldEFsbEVuYWJsZWRNYXNrKCkgY29uc3QgeyByZXR1cm4gbUFsbEVuYWJsZWRN
YXNrOyB9CisgICAgY29uc3RleHByIERyYXdCdWZmZXJNYXNrIGdldEVuYWJsZWRNYXNrKCkgY29u
c3QgeyByZXR1cm4gbUVuYWJsZWRNYXNrOyB9CisKKyAgICBjb25zdGV4cHIgRHJhd0J1ZmZlck1h
c2sgZ2V0VXNlc0FkdmFuY2VkQmxlbmRFcXVhdGlvbk1hc2soKSBjb25zdAorICAgIHsKKyAgICAg
ICAgcmV0dXJuIG1Vc2VzQWR2YW5jZWRCbGVuZEVxdWF0aW9uTWFzazsKKyAgICB9CisKKyAgICBj
b25zdGV4cHIgdWludDhfdCBnZXREcmF3QnVmZmVyQ291bnQoKSBjb25zdCB7IHJldHVybiBtRHJh
d0J1ZmZlckNvdW50OyB9CisKKyAgICBjb25zdGV4cHIgdm9pZCBzZXRTcmNDb2xvckJpdHMoY29u
c3QgRmFjdG9yU3RvcmFnZTo6VHlwZSBzcmNDb2xvcikgeyBtU3JjQ29sb3IgPSBzcmNDb2xvcjsg
fQorICAgIGNvbnN0ZXhwciB2b2lkIHNldFNyY0FscGhhQml0cyhjb25zdCBGYWN0b3JTdG9yYWdl
OjpUeXBlIHNyY0FscGhhKSB7IG1TcmNBbHBoYSA9IHNyY0FscGhhOyB9CisgICAgY29uc3RleHBy
IHZvaWQgc2V0RHN0Q29sb3JCaXRzKGNvbnN0IEZhY3RvclN0b3JhZ2U6OlR5cGUgZHN0Q29sb3Ip
IHsgbURzdENvbG9yID0gZHN0Q29sb3I7IH0KKyAgICBjb25zdGV4cHIgdm9pZCBzZXREc3RBbHBo
YUJpdHMoY29uc3QgRmFjdG9yU3RvcmFnZTo6VHlwZSBkc3RBbHBoYSkgeyBtRHN0QWxwaGEgPSBk
c3RBbHBoYTsgfQorCisgICAgY29uc3RleHByIHZvaWQgc2V0RXF1YXRpb25Db2xvckJpdHMoY29u
c3QgRXF1YXRpb25TdG9yYWdlOjpUeXBlIGVxdWF0aW9uQ29sb3IpCisgICAgeworICAgICAgICBt
RXF1YXRpb25Db2xvciA9IGVxdWF0aW9uQ29sb3I7CisgICAgfQorICAgIGNvbnN0ZXhwciB2b2lk
IHNldEVxdWF0aW9uQWxwaGFCaXRzKGNvbnN0IEVxdWF0aW9uU3RvcmFnZTo6VHlwZSBlcXVhdGlv
bkFscGhhKQorICAgIHsKKyAgICAgICAgbUVxdWF0aW9uQWxwaGEgPSBlcXVhdGlvbkFscGhhOwor
ICAgIH0KKworICAgIGNvbnN0ZXhwciB2b2lkIHNldENvbG9yTWFza0JpdHMoY29uc3QgQ29sb3JN
YXNrU3RvcmFnZTo6VHlwZSBjb2xvck1hc2spCisgICAgeworICAgICAgICBtQ29sb3JNYXNrID0g
Y29sb3JNYXNrOworICAgIH0KKworICAgIGNvbnN0ZXhwciB2b2lkIHNldEVuYWJsZWRNYXNrKGNv
bnN0IERyYXdCdWZmZXJNYXNrIGVuYWJsZWRNYXNrKSB7IG1FbmFibGVkTWFzayA9IGVuYWJsZWRN
YXNrOyB9CiAKICAgICAvLy8vLy8vLy8gRGF0YSBNZW1iZXJzIC8vLy8vLy8vLworICBwcml2YXRl
OgorICAgIHVpbnQ2NF90IG1QYXJhbWV0ZXJNYXNrOwogCi0gICAgRmFjdG9yU3RvcmFnZTo6VHlw
ZSBtTWF4RmFjdG9yTWFzazsKICAgICBGYWN0b3JTdG9yYWdlOjpUeXBlIG1TcmNDb2xvcjsKICAg
ICBGYWN0b3JTdG9yYWdlOjpUeXBlIG1Ec3RDb2xvcjsKICAgICBGYWN0b3JTdG9yYWdlOjpUeXBl
IG1TcmNBbHBoYTsKICAgICBGYWN0b3JTdG9yYWdlOjpUeXBlIG1Ec3RBbHBoYTsKIAotICAgIEVx
dWF0aW9uU3RvcmFnZTo6VHlwZSBtTWF4RXF1YXRpb25NYXNrOwogICAgIEVxdWF0aW9uU3RvcmFn
ZTo6VHlwZSBtRXF1YXRpb25Db2xvcjsKICAgICBFcXVhdGlvblN0b3JhZ2U6OlR5cGUgbUVxdWF0
aW9uQWxwaGE7CiAKLSAgICBDb2xvck1hc2tTdG9yYWdlOjpUeXBlIG1NYXhDb2xvck1hc2s7Cisg
ICAgQ29sb3JNYXNrU3RvcmFnZTo6VHlwZSBtQWxsQ29sb3JNYXNrOwogICAgIENvbG9yTWFza1N0
b3JhZ2U6OlR5cGUgbUNvbG9yTWFzazsKIAotICAgIERyYXdCdWZmZXJNYXNrIG1NYXhFbmFibGVk
TWFzazsKKyAgICBEcmF3QnVmZmVyTWFzayBtQWxsRW5hYmxlZE1hc2s7CiAgICAgRHJhd0J1ZmZl
ck1hc2sgbUVuYWJsZWRNYXNrOworCiAgICAgLy8gQ2FjaGUgb2Ygd2hldGhlciB0aGUgYmxlbmQg
ZXF1YXRpb24gZm9yIGVhY2ggaW5kZXggaXMgZnJvbSBLSFJfYmxlbmRfZXF1YXRpb25fYWR2YW5j
ZWQuCiAgICAgRHJhd0J1ZmZlck1hc2sgbVVzZXNBZHZhbmNlZEJsZW5kRXF1YXRpb25NYXNrOwog
Ci0gICAgc2l6ZV90IG1NYXhEcmF3QnVmZmVyczsKKyAgICB1aW50OF90IG1EcmF3QnVmZmVyQ291
bnQ7CisKKyAgICBBTkdMRV9NQVlCRV9VTlVTRUQgdWludDMyX3Qga1VudXNlZCA9IDA7CiB9Owog
CitzdGF0aWNfYXNzZXJ0KHNpemVvZihCbGVuZFN0YXRlRXh0KSA9PSBzaXplb2YodWludDY0X3Qp
ICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2l6ZW9mKEJs
ZW5kU3RhdGVFeHQ6OkZhY3RvclN0b3JhZ2U6OlR5cGUpICogNCArCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihCbGVuZFN0YXRlRXh0OjpFcXVhdGlv
blN0b3JhZ2U6OlR5cGUpICogMiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNpemVvZihCbGVuZFN0YXRlRXh0OjpDb2xvck1hc2tTdG9yYWdlOjpUeXBlKSAq
IDIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2Yo
RHJhd0J1ZmZlck1hc2spICogMyArIHNpemVvZih1aW50OF90KSkgKworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZih1aW50MzJfdCksCisgICAgICAgICAg
ICAgICJUaGUgQmxlbmRTdGF0ZUV4dCBjbGFzcyBtdXN0IG5vdCBjb250YWluIGdhcHMuIik7CisK
IC8vIFVzZWQgaW4gU3RhdGVDYWNoZQogdXNpbmcgU3RvcmFnZUJ1ZmZlcnNNYXNrID0gYW5nbGU6
OkJpdFNldDxJTVBMRU1FTlRBVElPTl9NQVhfU0hBREVSX1NUT1JBR0VfQlVGRkVSX0JJTkRJTkdT
PjsKIApAQCAtMTA4Niw2ICsxMTUyLDcgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIE9ialQsIHR5cGVu
YW1lIENvbnRleHRUPgogY2xhc3MgRGVzdHJveVRoZW5EZWxldGUKIHsKICAgcHVibGljOgorICAg
IERlc3Ryb3lUaGVuRGVsZXRlKCkgPSBkZWZhdWx0OwogICAgIERlc3Ryb3lUaGVuRGVsZXRlKGNv
bnN0IENvbnRleHRUICpjb250ZXh0KSA6IG1Db250ZXh0KGNvbnRleHQpIHt9CiAKICAgICB2b2lk
IG9wZXJhdG9yKCkoT2JqVCAqb2JqKQpAQCAtMTA5NSw1NyArMTE2MiwxMSBAQCBjbGFzcyBEZXN0
cm95VGhlbkRlbGV0ZQogICAgIH0KIAogICBwcml2YXRlOgotICAgIGNvbnN0IENvbnRleHRUICpt
Q29udGV4dDsKLX07Ci0KLS8vIEhlbHBlciBjbGFzcyBmb3Igd3JhcHBpbmcgYW4gb25EZXN0cm95
IGZ1bmN0aW9uLgotdGVtcGxhdGUgPHR5cGVuYW1lIE9ialQsIHR5cGVuYW1lIERlbGV0ZXJUPgot
Y2xhc3MgVW5pcXVlT2JqZWN0UG9pbnRlckJhc2UgOiBhbmdsZTo6Tm9uQ29weWFibGUKLXsKLSAg
cHVibGljOgotICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBDb250ZXh0VD4KLSAgICBVbmlxdWVPYmpl
Y3RQb2ludGVyQmFzZShjb25zdCBDb250ZXh0VCAqY29udGV4dCkgOiBtT2JqZWN0KG51bGxwdHIp
LCBtRGVsZXRlcihjb250ZXh0KQotICAgIHt9Ci0KLSAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgQ29u
dGV4dFQ+Ci0gICAgVW5pcXVlT2JqZWN0UG9pbnRlckJhc2UoT2JqVCAqb2JqLCBjb25zdCBDb250
ZXh0VCAqY29udGV4dCkgOiBtT2JqZWN0KG9iaiksIG1EZWxldGVyKGNvbnRleHQpCi0gICAge30K
LQotICAgIH5VbmlxdWVPYmplY3RQb2ludGVyQmFzZSgpCi0gICAgewotICAgICAgICBpZiAobU9i
amVjdCkKLSAgICAgICAgewotICAgICAgICAgICAgbURlbGV0ZXIobU9iamVjdCk7Ci0gICAgICAg
IH0KLSAgICB9Ci0KLSAgICBPYmpUICpvcGVyYXRvci0+KCkgY29uc3QgeyByZXR1cm4gbU9iamVj
dDsgfQotCi0gICAgT2JqVCAqcmVsZWFzZSgpCi0gICAgewotICAgICAgICBhdXRvIG9iaiA9IG1P
YmplY3Q7Ci0gICAgICAgIG1PYmplY3QgID0gbnVsbHB0cjsKLSAgICAgICAgcmV0dXJuIG9iajsK
LSAgICB9Ci0KLSAgICBPYmpUICpnZXQoKSBjb25zdCB7IHJldHVybiBtT2JqZWN0OyB9Ci0KLSAg
ICB2b2lkIHJlc2V0KE9ialQgKm9iaikKLSAgICB7Ci0gICAgICAgIGlmIChtT2JqZWN0KQotICAg
ICAgICB7Ci0gICAgICAgICAgICBtRGVsZXRlcihtT2JqZWN0KTsKLSAgICAgICAgfQotICAgICAg
ICBtT2JqZWN0ID0gb2JqOwotICAgIH0KLQotICBwcml2YXRlOgotICAgIE9ialQgKm1PYmplY3Q7
Ci0gICAgRGVsZXRlclQgbURlbGV0ZXI7CisgICAgY29uc3QgQ29udGV4dFQgKm1Db250ZXh0ID0g
bnVsbHB0cjsKIH07CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBPYmpULCB0eXBlbmFtZSBDb250ZXh0
VD4KLXVzaW5nIFVuaXF1ZU9iamVjdFBvaW50ZXIgPSBVbmlxdWVPYmplY3RQb2ludGVyQmFzZTxP
YmpULCBEZXN0cm95VGhlbkRlbGV0ZTxPYmpULCBDb250ZXh0VD4+OwordXNpbmcgVW5pcXVlT2Jq
ZWN0UG9pbnRlciA9IHN0ZDo6dW5pcXVlX3B0cjxPYmpULCBEZXN0cm95VGhlbkRlbGV0ZTxPYmpU
LCBDb250ZXh0VD4+OwogCiB9ICAvLyBuYW1lc3BhY2UgYW5nbGUKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL2FuZ2xldHlwZXNfdW5pdHRlc3QuY3Bw
IGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL2FuZ2xldHlwZXNfdW5pdHRl
c3QuY3BwCmluZGV4IGRlM2JmMDgzZGEwMmM5OTFhNWViYzJhNjY0NWU1NWMyYjA1MTI3ZmEuLmYx
YmE1NTQyOWUxMDlmY2ZmYWMwYzVkOGRiZTJjMzRhZjRlY2IwYTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9hbmdsZXR5cGVzX3VuaXR0ZXN0LmNwcAor
KysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvYW5nbGV0eXBlc191bml0
dGVzdC5jcHAKQEAgLTE5LDEwNSArMTksMTg1IEBAIGNvbnN0ZXhwciBib29sIGlzNjRCaXQgPSB0
cnVlOwogY29uc3RleHByIGJvb2wgaXM2NEJpdCA9IGZhbHNlOwogI2VuZGlmCiAKLXZvaWQgY2hl
Y2tJbml0U3RhdGUoY29uc3QgZ2w6OkJsZW5kU3RhdGVFeHQgJmJsZW5kU3RhdGVFeHQpCisvLyBU
ZXN0IHRoZSBpbml0aWFsIHN0YXRlIG9mIEJsZW5kU3RhdGVFeHQKK1RFU1QoQmxlbmRTdGF0ZUV4
dCwgSW5pdCkKIHsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGJsZW5kU3RhdGVFeHQubU1h
eERyYXdCdWZmZXJzOyArK2kpCisgICAgY29uc3Qgc3RkOjphcnJheTx1aW50OF90LCA5PiBhbGxF
bmFibGVkTWFza3MgPSB7MCwgMSwgMywgNywgMTUsIDMxLCA2MywgMTI3LCAyNTV9OworCisgICAg
Y29uc3Qgc3RkOjphcnJheTx1aW50MzJfdCwgOT4gYWxsQ29sb3JNYXNrczMyID0geworICAgICAg
ICAwLCAweEYsIDB4RkYsIDB4RkZGLCAweEZGRkYsIDB4RkZGRkYsIDB4RkZGRkZGLCAweEZGRkZG
RkYsIDB4RkZGRkZGRkZ9OworCisgICAgY29uc3Qgc3RkOjphcnJheTx1aW50NjRfdCwgOT4gYWxs
Q29sb3JNYXNrczY0ID0geworICAgICAgICAweDAwMDAwMDAwMDAwMDAwMDAsIDB4MDAwMDAwMDAw
MDAwMDAwRiwgMHgwMDAwMDAwMDAwMDAwRjBGLAorICAgICAgICAweDAwMDAwMDAwMDAwRjBGMEYs
IDB4MDAwMDAwMDAwRjBGMEYwRiwgMHgwMDAwMDAwRjBGMEYwRjBGLAorICAgICAgICAweDAwMDAw
RjBGMEYwRjBGMEYsIDB4MDAwRjBGMEYwRjBGMEYwRiwgMHgwRjBGMEYwRjBGMEYwRjBGfTsKKwor
ICAgIGNvbnN0IHN0ZDo6YXJyYXk8dWludDY0X3QsIDk+IHNvdXJjZUNvbG9yQWxwaGEgPSB7Cisg
ICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwgMHgwMDAwMDAwMDAwMDAwMDAxLCAweDAwMDAwMDAw
MDAwMDAxMDEsCisgICAgICAgIDB4MDAwMDAwMDAwMDAxMDEwMSwgMHgwMDAwMDAwMDAxMDEwMTAx
LCAweDAwMDAwMDAxMDEwMTAxMDEsCisgICAgICAgIDB4MDAwMDAxMDEwMTAxMDEwMSwgMHgwMDAx
MDEwMTAxMDEwMTAxLCAweDAxMDEwMTAxMDEwMTAxMDF9OworCisgICAgZm9yIChzaXplX3QgYyA9
IDE7IGMgPD0gODsgKytjKQogICAgIHsKLSAgICAgICAgQVNTRVJUX0ZBTFNFKGJsZW5kU3RhdGVF
eHQubUVuYWJsZWRNYXNrLnRlc3QoaSkpOworICAgICAgICBjb25zdCBnbDo6QmxlbmRTdGF0ZUV4
dCBibGVuZFN0YXRlRXh0ID0gZ2w6OkJsZW5kU3RhdGVFeHQoYyk7CisgICAgICAgIEFTU0VSVF9F
UShibGVuZFN0YXRlRXh0LmdldERyYXdCdWZmZXJDb3VudCgpLCBjKTsKIAotICAgICAgICBib29s
IHIsIGcsIGIsIGE7Ci0gICAgICAgIGJsZW5kU3RhdGVFeHQuZ2V0Q29sb3JNYXNrSW5kZXhlZChp
LCAmciwgJmcsICZiLCAmYSk7Ci0gICAgICAgIEFTU0VSVF9UUlVFKHIpOwotICAgICAgICBBU1NF
UlRfVFJVRShnKTsKLSAgICAgICAgQVNTRVJUX1RSVUUoYik7Ci0gICAgICAgIEFTU0VSVF9UUlVF
KGEpOworICAgICAgICBBU1NFUlRfRVEoYmxlbmRTdGF0ZUV4dC5nZXRFbmFibGVkTWFzaygpLnRv
X3Vsb25nKCksIDB1KTsKKyAgICAgICAgQVNTRVJUX0VRKGJsZW5kU3RhdGVFeHQuZ2V0QWxsRW5h
YmxlZE1hc2soKS50b191bG9uZygpLCBhbGxFbmFibGVkTWFza3NbY10pOworCisgICAgICAgIEFT
U0VSVF9FUShibGVuZFN0YXRlRXh0LmdldENvbG9yTWFza0JpdHMoKSwgYmxlbmRTdGF0ZUV4dC5n
ZXRBbGxDb2xvck1hc2tCaXRzKCkpOworICAgICAgICBBU1NFUlRfRVEoYmxlbmRTdGF0ZUV4dC5n
ZXRBbGxDb2xvck1hc2tCaXRzKCksCisgICAgICAgICAgICAgICAgICBpczY0Qml0ID8gYWxsQ29s
b3JNYXNrczY0W2NdIDogYWxsQ29sb3JNYXNrczMyW2NdKTsKIAotICAgICAgICBBU1NFUlRfRVEo
YmxlbmRTdGF0ZUV4dC5nZXRFcXVhdGlvbkNvbG9ySW5kZXhlZChpKSwgc3RhdGljX2Nhc3Q8R0xl
bnVtPihHTF9GVU5DX0FERCkpOwotICAgICAgICBBU1NFUlRfRVEoYmxlbmRTdGF0ZUV4dC5nZXRF
cXVhdGlvbkFscGhhSW5kZXhlZChpKSwgc3RhdGljX2Nhc3Q8R0xlbnVtPihHTF9GVU5DX0FERCkp
OworICAgICAgICBBU1NFUlRfRVEoYmxlbmRTdGF0ZUV4dC5nZXRVc2VzQWR2YW5jZWRCbGVuZEVx
dWF0aW9uTWFzaygpLnRvX3Vsb25nKCksIDB1KTsKIAotICAgICAgICBBU1NFUlRfRVEoYmxlbmRT
dGF0ZUV4dC5nZXRTcmNDb2xvckluZGV4ZWQoaSksIHN0YXRpY19jYXN0PEdMZW51bT4oR0xfT05F
KSk7Ci0gICAgICAgIEFTU0VSVF9FUShibGVuZFN0YXRlRXh0LmdldERzdENvbG9ySW5kZXhlZChp
KSwgc3RhdGljX2Nhc3Q8R0xlbnVtPihHTF9aRVJPKSk7Ci0gICAgICAgIEFTU0VSVF9FUShibGVu
ZFN0YXRlRXh0LmdldFNyY0FscGhhSW5kZXhlZChpKSwgc3RhdGljX2Nhc3Q8R0xlbnVtPihHTF9P
TkUpKTsKLSAgICAgICAgQVNTRVJUX0VRKGJsZW5kU3RhdGVFeHQuZ2V0RHN0QWxwaGFJbmRleGVk
KGkpLCBzdGF0aWNfY2FzdDxHTGVudW0+KEdMX1pFUk8pKTsKKyAgICAgICAgQVNTRVJUX0VRKGJs
ZW5kU3RhdGVFeHQuZ2V0U3JjQ29sb3JCaXRzKCksIHNvdXJjZUNvbG9yQWxwaGFbY10pOworICAg
ICAgICBBU1NFUlRfRVEoYmxlbmRTdGF0ZUV4dC5nZXRTcmNBbHBoYUJpdHMoKSwgc291cmNlQ29s
b3JBbHBoYVtjXSk7CisgICAgICAgIEFTU0VSVF9FUShibGVuZFN0YXRlRXh0LmdldERzdENvbG9y
Qml0cygpLCAwdSk7CisgICAgICAgIEFTU0VSVF9FUShibGVuZFN0YXRlRXh0LmdldERzdEFscGhh
Qml0cygpLCAwdSk7CisKKyAgICAgICAgQVNTRVJUX0VRKGJsZW5kU3RhdGVFeHQuZ2V0RXF1YXRp
b25Db2xvckJpdHMoKSwgMHUpOworICAgICAgICBBU1NFUlRfRVEoYmxlbmRTdGF0ZUV4dC5nZXRF
cXVhdGlvbkFscGhhQml0cygpLCAwdSk7CisKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBjOyArK2kpCisgICAgICAgIHsKKyAgICAgICAgICAgIEFTU0VSVF9GQUxTRShibGVuZFN0YXRl
RXh0LmdldEVuYWJsZWRNYXNrKCkudGVzdChpKSk7CisKKyAgICAgICAgICAgIGJvb2wgciwgZywg
YiwgYTsKKyAgICAgICAgICAgIGJsZW5kU3RhdGVFeHQuZ2V0Q29sb3JNYXNrSW5kZXhlZChpLCAm
ciwgJmcsICZiLCAmYSk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyKTsKKyAgICAgICAgICAg
IEFTU0VSVF9UUlVFKGcpOworICAgICAgICAgICAgQVNTRVJUX1RSVUUoYik7CisgICAgICAgICAg
ICBBU1NFUlRfVFJVRShhKTsKKworICAgICAgICAgICAgQVNTRVJUX0VRKGJsZW5kU3RhdGVFeHQu
Z2V0RXF1YXRpb25Db2xvckluZGV4ZWQoaSksIHN0YXRpY19jYXN0PEdMZW51bT4oR0xfRlVOQ19B
REQpKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShibGVuZFN0YXRlRXh0LmdldEVxdWF0aW9uQWxw
aGFJbmRleGVkKGkpLCBzdGF0aWNfY2FzdDxHTGVudW0+KEdMX0ZVTkNfQUREKSk7CisKKyAgICAg
ICAgICAgIEFTU0VSVF9FUShibGVuZFN0YXRlRXh0LmdldFNyY0NvbG9ySW5kZXhlZChpKSwgc3Rh
dGljX2Nhc3Q8R0xlbnVtPihHTF9PTkUpKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShibGVuZFN0
YXRlRXh0LmdldERzdENvbG9ySW5kZXhlZChpKSwgc3RhdGljX2Nhc3Q8R0xlbnVtPihHTF9aRVJP
KSk7CisgICAgICAgICAgICBBU1NFUlRfRVEoYmxlbmRTdGF0ZUV4dC5nZXRTcmNBbHBoYUluZGV4
ZWQoaSksIHN0YXRpY19jYXN0PEdMZW51bT4oR0xfT05FKSk7CisgICAgICAgICAgICBBU1NFUlRf
RVEoYmxlbmRTdGF0ZUV4dC5nZXREc3RBbHBoYUluZGV4ZWQoaSksIHN0YXRpY19jYXN0PEdMZW51
bT4oR0xfWkVSTykpOworICAgICAgICB9CiAgICAgfQogfQogCi0vLyBUZXN0IHRoZSBpbml0aWFs
IHN0YXRlIG9mIEJsZW5kU3RhdGVFeHQKLVRFU1QoQmxlbmRTdGF0ZUV4dCwgSW5pdCkKKy8vIFRl
c3QgYmxlbmQgZW5hYmxlZCBmbGFncworVEVTVChCbGVuZFN0YXRlRXh0LCBCbGVuZEVuYWJsZWQp
CiB7Ci0gICAgewotICAgICAgICBjb25zdCBnbDo6QmxlbmRTdGF0ZUV4dCBibGVuZFN0YXRlRXh0
ID0gZ2w6OkJsZW5kU3RhdGVFeHQoMSk7Ci0gICAgICAgIEFTU0VSVF9FUShibGVuZFN0YXRlRXh0
Lm1NYXhEcmF3QnVmZmVycywgMXUpOwotICAgICAgICBBU1NFUlRfRVEoYmxlbmRTdGF0ZUV4dC5t
TWF4RW5hYmxlZE1hc2sudG9fdWxvbmcoKSwgMXUpOwotICAgICAgICBBU1NFUlRfRVEoYmxlbmRT
dGF0ZUV4dC5tTWF4Q29sb3JNYXNrLCBpczY0Qml0ID8gMHhGRnUgOiAweEZ1KTsKLSAgICAgICAg
QVNTRVJUX0VRKGJsZW5kU3RhdGVFeHQubU1heEVxdWF0aW9uTWFzaywgMHhGRnUpOwotICAgICAg
ICBBU1NFUlRfRVEoYmxlbmRTdGF0ZUV4dC5tTWF4RmFjdG9yTWFzaywgMHhGRnUpOwotICAgICAg
ICBjaGVja0luaXRTdGF0ZShibGVuZFN0YXRlRXh0KTsKLSAgICB9CisgICAgY29uc3Qgc3RkOjph
cnJheTx1aW50OF90LCA5PiBlbmFibGVkID0gezAsIDEsIDMsIDcsIDE1LCAzMSwgNjMsIDEyNywg
MjU1fTsKIAorICAgIGZvciAoc2l6ZV90IGMgPSAxOyBjIDw9IDg7IGMrKykKICAgICB7Ci0gICAg
ICAgIGNvbnN0IGdsOjpCbGVuZFN0YXRlRXh0IGJsZW5kU3RhdGVFeHQgPSBnbDo6QmxlbmRTdGF0
ZUV4dCg0KTsKLSAgICAgICAgQVNTRVJUX0VRKGJsZW5kU3RhdGVFeHQubU1heERyYXdCdWZmZXJz
LCA0dSk7Ci0gICAgICAgIEFTU0VSVF9FUShibGVuZFN0YXRlRXh0Lm1NYXhFbmFibGVkTWFzay50
b191bG9uZygpLCAweEZ1KTsKLSAgICAgICAgQVNTRVJUX0VRKGJsZW5kU3RhdGVFeHQubU1heENv
bG9yTWFzaywgaXM2NEJpdCA/IDB4RkZGRkZGRkZ1IDogMHhGRkZGdSk7Ci0gICAgICAgIEFTU0VS
VF9FUShibGVuZFN0YXRlRXh0Lm1NYXhFcXVhdGlvbk1hc2ssIDB4RkZGRkZGRkZ1KTsKLSAgICAg
ICAgQVNTRVJUX0VRKGJsZW5kU3RhdGVFeHQubU1heEZhY3Rvck1hc2ssIDB4RkZGRkZGRkZ1KTsK
LSAgICAgICAgY2hlY2tJbml0U3RhdGUoYmxlbmRTdGF0ZUV4dCk7Ci0gICAgfQorICAgICAgICBn
bDo6QmxlbmRTdGF0ZUV4dCBibGVuZFN0YXRlRXh0ID0gZ2w6OkJsZW5kU3RhdGVFeHQoYyk7CiAK
LSAgICB7Ci0gICAgICAgIGNvbnN0IGdsOjpCbGVuZFN0YXRlRXh0IGJsZW5kU3RhdGVFeHQgPSBn
bDo6QmxlbmRTdGF0ZUV4dCg4KTsKLSAgICAgICAgQVNTRVJUX0VRKGJsZW5kU3RhdGVFeHQubU1h
eERyYXdCdWZmZXJzLCA4dSk7Ci0gICAgICAgIEFTU0VSVF9FUShibGVuZFN0YXRlRXh0Lm1NYXhF
bmFibGVkTWFzay50b191bG9uZygpLCAweEZGdSk7Ci0gICAgICAgIEFTU0VSVF9FUShibGVuZFN0
YXRlRXh0Lm1NYXhDb2xvck1hc2ssIGlzNjRCaXQgPyAweEZGRkZGRkZGRkZGRkZGRkZ1IDogMHhG
RkZGRkZGRnUpOwotICAgICAgICBBU1NFUlRfRVEoYmxlbmRTdGF0ZUV4dC5tTWF4RXF1YXRpb25N
YXNrLCAweEZGRkZGRkZGRkZGRkZGRkZ1KTsKLSAgICAgICAgQVNTRVJUX0VRKGJsZW5kU3RhdGVF
eHQubU1heEZhY3Rvck1hc2ssIDB4RkZGRkZGRkZGRkZGRkZGRnUpOwotICAgICAgICBjaGVja0lu
aXRTdGF0ZShibGVuZFN0YXRlRXh0KTsKKyAgICAgICAgYmxlbmRTdGF0ZUV4dC5zZXRFbmFibGVk
KHRydWUpOworICAgICAgICBBU1NFUlRfRVEoYmxlbmRTdGF0ZUV4dC5nZXRFbmFibGVkTWFzaygp
LnRvX3Vsb25nKCksIGVuYWJsZWRbY10pOworCisgICAgICAgIGJsZW5kU3RhdGVFeHQuc2V0RW5h
YmxlZChmYWxzZSk7CisgICAgICAgIEFTU0VSVF9FUShibGVuZFN0YXRlRXh0LmdldEVuYWJsZWRN
YXNrKCkudG9fdWxvbmcoKSwgMHUpOworCisgICAgICAgIGJsZW5kU3RhdGVFeHQuc2V0RW5hYmxl
ZEluZGV4ZWQoYyAvIDIsIHRydWUpOworICAgICAgICBBU1NFUlRfRVEoYmxlbmRTdGF0ZUV4dC5n
ZXRFbmFibGVkTWFzaygpLnRvX3Vsb25nKCksIDF1IDw8IChjIC8gMikpOworCisgICAgICAgIGJs
ZW5kU3RhdGVFeHQuc2V0RW5hYmxlZEluZGV4ZWQoYyAvIDIsIGZhbHNlKTsKKyAgICAgICAgQVNT
RVJUX0VRKGJsZW5kU3RhdGVFeHQuZ2V0RW5hYmxlZE1hc2soKS50b191bG9uZygpLCAwdSk7CiAg
ICAgfQogfQogCi0vLyBUZXN0IGJsZW5kIGVuYWJsZWQgZmxhZ3MKLVRFU1QoQmxlbmRTdGF0ZUV4
dCwgQmxlbmRFbmFibGVkKQordm9pZCB2YWxpZGF0ZU1hc2tQYWNraW5nKGNvbnN0IHVpbnQ4X3Qg
cGFja2VkLAorICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGJvb2wgciwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBib29sIGcsCisgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgYm9vbCBiLAorICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGJvb2wgYSkKIHsK
LSAgICBnbDo6QmxlbmRTdGF0ZUV4dCBibGVuZFN0YXRlRXh0ID0gZ2w6OkJsZW5kU3RhdGVFeHQo
Myk7Ci0KLSAgICBibGVuZFN0YXRlRXh0LnNldEVuYWJsZWQodHJ1ZSk7Ci0gICAgQVNTRVJUX0VR
KGJsZW5kU3RhdGVFeHQubUVuYWJsZWRNYXNrLnRvX3Vsb25nKCksIDd1KTsKKyAgICBBU1NFUlRf
RVEoZ2w6OkJsZW5kU3RhdGVFeHQ6OlBhY2tDb2xvck1hc2sociwgZywgYiwgYSksIHBhY2tlZCk7
CisKKyAgICBib29sIHJPdXQsIGdPdXQsIGJPdXQsIGFPdXQ7CisgICAgZ2w6OkJsZW5kU3RhdGVF
eHQ6OlVucGFja0NvbG9yTWFzayhwYWNrZWQsICZyT3V0LCAmZ091dCwgJmJPdXQsICZhT3V0KTsK
KyAgICBBU1NFUlRfRVEociwgck91dCk7CisgICAgQVNTRVJUX0VRKGcsIGdPdXQpOworICAgIEFT
U0VSVF9FUShiLCBiT3V0KTsKKyAgICBBU1NFUlRfRVEoYSwgYU91dCk7Cit9CiAKLSAgICBibGVu
ZFN0YXRlRXh0LnNldEVuYWJsZWRJbmRleGVkKDEsIGZhbHNlKTsKLSAgICBBU1NFUlRfRVEoYmxl
bmRTdGF0ZUV4dC5tRW5hYmxlZE1hc2sudG9fdWxvbmcoKSwgNXUpOworLy8gVGVzdCBjb2xvciB3
cml0ZSBtYXNrIHBhY2tpbmcKK1RFU1QoQmxlbmRTdGF0ZUV4dCwgQ29sb3JNYXNrUGFja2luZykK
K3sKKyAgICB2YWxpZGF0ZU1hc2tQYWNraW5nKDB4MCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFs
c2UpOworICAgIHZhbGlkYXRlTWFza1BhY2tpbmcoMHgxLCB0cnVlLCBmYWxzZSwgZmFsc2UsIGZh
bHNlKTsKKyAgICB2YWxpZGF0ZU1hc2tQYWNraW5nKDB4MiwgZmFsc2UsIHRydWUsIGZhbHNlLCBm
YWxzZSk7CisgICAgdmFsaWRhdGVNYXNrUGFja2luZygweDMsIHRydWUsIHRydWUsIGZhbHNlLCBm
YWxzZSk7CisgICAgdmFsaWRhdGVNYXNrUGFja2luZygweDQsIGZhbHNlLCBmYWxzZSwgdHJ1ZSwg
ZmFsc2UpOworICAgIHZhbGlkYXRlTWFza1BhY2tpbmcoMHg1LCB0cnVlLCBmYWxzZSwgdHJ1ZSwg
ZmFsc2UpOworICAgIHZhbGlkYXRlTWFza1BhY2tpbmcoMHg2LCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwg
ZmFsc2UpOworICAgIHZhbGlkYXRlTWFza1BhY2tpbmcoMHg3LCB0cnVlLCB0cnVlLCB0cnVlLCBm
YWxzZSk7CisgICAgdmFsaWRhdGVNYXNrUGFja2luZygweDgsIGZhbHNlLCBmYWxzZSwgZmFsc2Us
IHRydWUpOworICAgIHZhbGlkYXRlTWFza1BhY2tpbmcoMHg5LCB0cnVlLCBmYWxzZSwgZmFsc2Us
IHRydWUpOworICAgIHZhbGlkYXRlTWFza1BhY2tpbmcoMHhBLCBmYWxzZSwgdHJ1ZSwgZmFsc2Us
IHRydWUpOworICAgIHZhbGlkYXRlTWFza1BhY2tpbmcoMHhCLCB0cnVlLCB0cnVlLCBmYWxzZSwg
dHJ1ZSk7CisgICAgdmFsaWRhdGVNYXNrUGFja2luZygweEMsIGZhbHNlLCBmYWxzZSwgdHJ1ZSwg
dHJ1ZSk7CisgICAgdmFsaWRhdGVNYXNrUGFja2luZygweEQsIHRydWUsIGZhbHNlLCB0cnVlLCB0
cnVlKTsKKyAgICB2YWxpZGF0ZU1hc2tQYWNraW5nKDB4RSwgZmFsc2UsIHRydWUsIHRydWUsIHRy
dWUpOworICAgIHZhbGlkYXRlTWFza1BhY2tpbmcoMHhGLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVl
KTsKIH0KIAogLy8gVGVzdCBjb2xvciB3cml0ZSBtYXNrIG1hbmlwdWxhdGlvbnMKIFRFU1QoQmxl
bmRTdGF0ZUV4dCwgQ29sb3JNYXNrKQogewotICAgIGdsOjpCbGVuZFN0YXRlRXh0IGJsZW5kU3Rh
dGVFeHQgPSBnbDo6QmxlbmRTdGF0ZUV4dCg1KTsKKyAgICBjb25zdCBzdGQ6OmFycmF5PHVpbnQz
Ml90LCA5PiBzdGFydFNpbmdsZVZhbHVlMzIgPSB7MHgwMDAwMDAwMCwgMHgwMDAwMDAwNSwgMHgw
MDAwMDA1NSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMHgwMDAwMDU1NSwgMHgwMDAwNTU1NSwgMHgwMDA1NTU1NSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDU1NTU1NSwg
MHgwNTU1NTU1NSwgMHg1NTU1NTU1NX07CisKKyAgICBjb25zdCBzdGQ6OmFycmF5PHVpbnQ2NF90
LCA5PiBzdGFydFNpbmdsZVZhbHVlNjQgPSB7CisgICAgICAgIDB4MDAwMDAwMDAwMDAwMDAwMCwg
MHgwMDAwMDAwMDAwMDAwMDA1LCAweDAwMDAwMDAwMDAwMDA1MDUsCisgICAgICAgIDB4MDAwMDAw
MDAwMDA1MDUwNSwgMHgwMDAwMDAwMDA1MDUwNTA1LCAweDAwMDAwMDA1MDUwNTA1MDUsCisgICAg
ICAgIDB4MDAwMDA1MDUwNTA1MDUwNSwgMHgwMDA1MDUwNTA1MDUwNTA1LCAweDA1MDUwNTA1MDUw
NTA1MDV9OwogCi0gICAgYmxlbmRTdGF0ZUV4dC5zZXRDb2xvck1hc2sodHJ1ZSwgZmFsc2UsIHRy
dWUsIGZhbHNlKTsKLSAgICBBU1NFUlRfRVEoYmxlbmRTdGF0ZUV4dC5tQ29sb3JNYXNrLCBpczY0
Qml0ID8gMHgwNTA1MDUwNTA1dSA6IDB4NTU1NTV1KTsKKyAgICBmb3IgKHNpemVfdCBjID0gMTsg
YyA8PSA4OyBjKyspCisgICAgeworICAgICAgICBnbDo6QmxlbmRTdGF0ZUV4dCBibGVuZFN0YXRl
RXh0ID0gZ2w6OkJsZW5kU3RhdGVFeHQoYyk7CiAKLSAgICBibGVuZFN0YXRlRXh0LnNldENvbG9y
TWFza0luZGV4ZWQoMywgZmFsc2UsIHRydWUsIGZhbHNlLCB0cnVlKTsKLSAgICBBU1NFUlRfRVEo
YmxlbmRTdGF0ZUV4dC5tQ29sb3JNYXNrLCBpczY0Qml0ID8gMHgwNTBBMDUwNTA1dSA6IDB4NUE1
NTV1KTsKKyAgICAgICAgYmxlbmRTdGF0ZUV4dC5zZXRDb2xvck1hc2sodHJ1ZSwgZmFsc2UsIHRy
dWUsIGZhbHNlKTsKKyAgICAgICAgQVNTRVJUX0VRKGJsZW5kU3RhdGVFeHQuZ2V0Q29sb3JNYXNr
Qml0cygpLAorICAgICAgICAgICAgICAgICAgaXM2NEJpdCA/IHN0YXJ0U2luZ2xlVmFsdWU2NFtj
XSA6IHN0YXJ0U2luZ2xlVmFsdWUzMltjXSk7CiAKLSAgICBibGVuZFN0YXRlRXh0LnNldENvbG9y
TWFza0luZGV4ZWQoMywgMHhGKTsKLSAgICBBU1NFUlRfRVEoYmxlbmRTdGF0ZUV4dC5nZXRDb2xv
ck1hc2tJbmRleGVkKDMpLCAweEYpOworICAgICAgICBibGVuZFN0YXRlRXh0LnNldENvbG9yTWFz
a0luZGV4ZWQoYyAvIDIsIGZhbHNlLCB0cnVlLCBmYWxzZSwgdHJ1ZSk7CisgICAgICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgYzsgKytpKQorICAgICAgICB7CisgICAgICAgICAgICBBU1NFUlRf
RVEoYmxlbmRTdGF0ZUV4dC5nZXRDb2xvck1hc2tJbmRleGVkKGkpLCBpID09IGMgLyAyID8gMHhB
dSA6IDB4NXUpOworICAgICAgICB9CiAKLSAgICBibGVuZFN0YXRlRXh0LnNldENvbG9yTWFza0lu
ZGV4ZWQoMywgMHhBKTsKLSAgICBBU1NFUlRfRVEoYmxlbmRTdGF0ZUV4dC5nZXRDb2xvck1hc2tJ
bmRleGVkKDMpLCAweEEpOworICAgICAgICBibGVuZFN0YXRlRXh0LnNldENvbG9yTWFza0luZGV4
ZWQoMCwgMHhGKTsKKyAgICAgICAgYm9vbCByLCBnLCBiLCBhOworICAgICAgICBibGVuZFN0YXRl
RXh0LmdldENvbG9yTWFza0luZGV4ZWQoMCwgJnIsICZnLCAmYiwgJmEpOworICAgICAgICBBU1NF
UlRfVFJVRShyKTsKKyAgICAgICAgQVNTRVJUX1RSVUUoZyk7CisgICAgICAgIEFTU0VSVF9UUlVF
KGIpOworICAgICAgICBBU1NFUlRfVFJVRShhKTsKIAotICAgIGJvb2wgciwgZywgYiwgYTsKLSAg
ICBibGVuZFN0YXRlRXh0LmdldENvbG9yTWFza0luZGV4ZWQoMywgJnIsICZnLCAmYiwgJmEpOwot
ICAgIEFTU0VSVF9GQUxTRShyKTsKLSAgICBBU1NFUlRfVFJVRShnKTsKLSAgICBBU1NFUlRfRkFM
U0UoYik7Ci0gICAgQVNTRVJUX1RSVUUoYSk7CisgICAgICAgIGJsZW5kU3RhdGVFeHQuc2V0Q29s
b3JNYXNrSW5kZXhlZChjIC0gMSwgdHJ1ZSwgZmFsc2UsIHRydWUsIHRydWUpOworICAgICAgICBn
bDo6QmxlbmRTdGF0ZUV4dDo6Q29sb3JNYXNrU3RvcmFnZTo6VHlwZSBvdGhlckNvbG9yTWFzayA9
CisgICAgICAgICAgICBibGVuZFN0YXRlRXh0LmV4cGFuZENvbG9yTWFza0luZGV4ZWQoYyAtIDEp
OworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGM7ICsraSkKKyAgICAgICAgeworICAg
ICAgICAgICAgQVNTRVJUX0VRKGdsOjpCbGVuZFN0YXRlRXh0OjpDb2xvck1hc2tTdG9yYWdlOjpH
ZXRWYWx1ZUluZGV4ZWQoaSwgb3RoZXJDb2xvck1hc2spLCAweEQpOworICAgICAgICB9CiAKLSAg
ICBnbDo6QmxlbmRTdGF0ZUV4dDo6Q29sb3JNYXNrU3RvcmFnZTo6VHlwZSBvdGhlckNvbG9yTWFz
ayA9Ci0gICAgICAgIGJsZW5kU3RhdGVFeHQuZXhwYW5kQ29sb3JNYXNrSW5kZXhlZCgzKTsKLSAg
ICBBU1NFUlRfRVEob3RoZXJDb2xvck1hc2ssIGlzNjRCaXQgPyAweDBBMEEwQTBBMEF1IDogMHhB
QUFBQXUpOworICAgICAgICAvLyBBbGwgbWFza3MgYXJlIGRpZmZlcmVudCBleGNlcHQgdGhlIGMt
dGgKKyAgICAgICAgeworICAgICAgICAgICAgY29uc3QgZ2w6OkRyYXdCdWZmZXJNYXNrIGRpZmYg
PSBibGVuZFN0YXRlRXh0LmNvbXBhcmVDb2xvck1hc2sob3RoZXJDb2xvck1hc2spOworICAgICAg
ICAgICAgQVNTRVJUX0VRKGRpZmYudG9fdWxvbmcoKSwgMTI3dSA+PiAoOCAtIGMpKTsKKyAgICAg
ICAgfQogCi0gICAgY29uc3QgZ2w6OkRyYXdCdWZmZXJNYXNrIGRpZmYgPSBibGVuZFN0YXRlRXh0
LmNvbXBhcmVDb2xvck1hc2sob3RoZXJDb2xvck1hc2spOwotICAgIEFTU0VSVF9FUShkaWZmLnRv
X3Vsb25nKCksIDIzdSk7CisgICAgICAgIC8vIFRlc3QgdGhhdCBhbGwtZW5hYmxlZCBjb2xvciBt
YXNrIGNvcnJlY3RseSBjb21wYXJlcyB3aXRoIHRoZSBjdXJyZW50IGNvbG9yIG1hc2sKKyAgICAg
ICAgeworICAgICAgICAgICAgYmxlbmRTdGF0ZUV4dC5zZXRDb2xvck1hc2sodHJ1ZSwgdHJ1ZSwg
dHJ1ZSwgdHJ1ZSk7CisgICAgICAgICAgICBibGVuZFN0YXRlRXh0LnNldENvbG9yTWFza0luZGV4
ZWQoYyAvIDIsIGZhbHNlLCBmYWxzZSwgdHJ1ZSwgZmFsc2UpOworICAgICAgICAgICAgY29uc3Qg
Z2w6OkRyYXdCdWZmZXJNYXNrIGRpZmYgPQorICAgICAgICAgICAgICAgIGJsZW5kU3RhdGVFeHQu
Y29tcGFyZUNvbG9yTWFzayhibGVuZFN0YXRlRXh0LmdldEFsbENvbG9yTWFza0JpdHMoKSk7Cisg
ICAgICAgICAgICBBU1NFUlRfRVEoZGlmZi50b191bG9uZygpLCAxdSA8PCAoYyAvIDIpKTsKKyAg
ICAgICAgfQorICAgIH0KIH0KIAogLy8gVGVzdCBibGVuZCBlcXVhdGlvbnMgbWFuaXB1bGF0aW9u
cwpAQCAtMTI2LDEzICsyMDYsMTMgQEAgVEVTVChCbGVuZFN0YXRlRXh0LCBCbGVuZEVxdWF0aW9u
cykKICAgICBnbDo6QmxlbmRTdGF0ZUV4dCBibGVuZFN0YXRlRXh0ID0gZ2w6OkJsZW5kU3RhdGVF
eHQoNyk7CiAKICAgICBibGVuZFN0YXRlRXh0LnNldEVxdWF0aW9ucyhHTF9NSU4sIEdMX0ZVTkNf
U1VCVFJBQ1QpOwotICAgIEFTU0VSVF9FUShibGVuZFN0YXRlRXh0Lm1FcXVhdGlvbkNvbG9yLCAw
eDAxMDEwMTAxMDEwMTAxdSk7Ci0gICAgQVNTRVJUX0VRKGJsZW5kU3RhdGVFeHQubUVxdWF0aW9u
QWxwaGEsIDB4MDQwNDA0MDQwNDA0MDR1KTsKKyAgICBBU1NFUlRfRVEoYmxlbmRTdGF0ZUV4dC5n
ZXRFcXVhdGlvbkNvbG9yQml0cygpLCAweDAxMDEwMTAxMDEwMTAxdSk7CisgICAgQVNTRVJUX0VR
KGJsZW5kU3RhdGVFeHQuZ2V0RXF1YXRpb25BbHBoYUJpdHMoKSwgMHgwNDA0MDQwNDA0MDQwNHUp
OwogCiAgICAgYmxlbmRTdGF0ZUV4dC5zZXRFcXVhdGlvbnNJbmRleGVkKDMsIEdMX01BWCwgR0xf
RlVOQ19TVUJUUkFDVCk7CiAgICAgYmxlbmRTdGF0ZUV4dC5zZXRFcXVhdGlvbnNJbmRleGVkKDUs
IEdMX01JTiwgR0xfRlVOQ19BREQpOwotICAgIEFTU0VSVF9FUShibGVuZFN0YXRlRXh0Lm1FcXVh
dGlvbkNvbG9yLCAweDAxMDEwMTAyMDEwMTAxdSk7Ci0gICAgQVNTRVJUX0VRKGJsZW5kU3RhdGVF
eHQubUVxdWF0aW9uQWxwaGEsIDB4MDQwMDA0MDQwNDA0MDR1KTsKKyAgICBBU1NFUlRfRVEoYmxl
bmRTdGF0ZUV4dC5nZXRFcXVhdGlvbkNvbG9yQml0cygpLCAweDAxMDEwMTAyMDEwMTAxdSk7Cisg
ICAgQVNTRVJUX0VRKGJsZW5kU3RhdGVFeHQuZ2V0RXF1YXRpb25BbHBoYUJpdHMoKSwgMHgwNDAw
MDQwNDA0MDQwNHUpOwogICAgIEFTU0VSVF9FUShibGVuZFN0YXRlRXh0LmdldEVxdWF0aW9uQ29s
b3JJbmRleGVkKDMpLCBzdGF0aWNfY2FzdDxHTGVudW0+KEdMX01BWCkpOwogICAgIEFTU0VSVF9F
UShibGVuZFN0YXRlRXh0LmdldEVxdWF0aW9uQWxwaGFJbmRleGVkKDUpLCBzdGF0aWNfY2FzdDxH
TGVudW0+KEdMX0ZVTkNfQUREKSk7CiAKQEAgLTE2NSwxOSArMjQ1LDE5IEBAIFRFU1QoQmxlbmRT
dGF0ZUV4dCwgQmxlbmRGYWN0b3JzKQogICAgIGdsOjpCbGVuZFN0YXRlRXh0IGJsZW5kU3RhdGVF
eHQgPSBnbDo6QmxlbmRTdGF0ZUV4dCg4KTsKIAogICAgIGJsZW5kU3RhdGVFeHQuc2V0RmFjdG9y
cyhHTF9TUkNfQ09MT1IsIEdMX0RTVF9DT0xPUiwgR0xfU1JDX0FMUEhBLCBHTF9EU1RfQUxQSEEp
OwotICAgIEFTU0VSVF9FUShibGVuZFN0YXRlRXh0Lm1TcmNDb2xvciwgMHgwMjAyMDIwMjAyMDIw
MjAydSk7Ci0gICAgQVNTRVJUX0VRKGJsZW5kU3RhdGVFeHQubURzdENvbG9yLCAweDA4MDgwODA4
MDgwODA4MDh1KTsKLSAgICBBU1NFUlRfRVEoYmxlbmRTdGF0ZUV4dC5tU3JjQWxwaGEsIDB4MDQw
NDA0MDQwNDA0MDQwNHUpOwotICAgIEFTU0VSVF9FUShibGVuZFN0YXRlRXh0Lm1Ec3RBbHBoYSwg
MHgwNjA2MDYwNjA2MDYwNjA2dSk7CisgICAgQVNTRVJUX0VRKGJsZW5kU3RhdGVFeHQuZ2V0U3Jj
Q29sb3JCaXRzKCksIDB4MDIwMjAyMDIwMjAyMDIwMnUpOworICAgIEFTU0VSVF9FUShibGVuZFN0
YXRlRXh0LmdldERzdENvbG9yQml0cygpLCAweDA4MDgwODA4MDgwODA4MDh1KTsKKyAgICBBU1NF
UlRfRVEoYmxlbmRTdGF0ZUV4dC5nZXRTcmNBbHBoYUJpdHMoKSwgMHgwNDA0MDQwNDA0MDQwNDA0
dSk7CisgICAgQVNTRVJUX0VRKGJsZW5kU3RhdGVFeHQuZ2V0RHN0QWxwaGFCaXRzKCksIDB4MDYw
NjA2MDYwNjA2MDYwNnUpOwogCiAgICAgYmxlbmRTdGF0ZUV4dC5zZXRGYWN0b3JzSW5kZXhlZCgw
LCBHTF9PTkUsIEdMX0RTVF9DT0xPUiwgR0xfU1JDX0FMUEhBLCBHTF9EU1RfQUxQSEEpOwogICAg
IGJsZW5kU3RhdGVFeHQuc2V0RmFjdG9yc0luZGV4ZWQoMywgR0xfU1JDX0NPTE9SLCBHTF9PTkUs
IEdMX1NSQ19BTFBIQSwgR0xfRFNUX0FMUEhBKTsKICAgICBibGVuZFN0YXRlRXh0LnNldEZhY3Rv
cnNJbmRleGVkKDUsIEdMX1NSQ19DT0xPUiwgR0xfRFNUX0NPTE9SLCBHTF9PTkUsIEdMX0RTVF9B
TFBIQSk7CiAgICAgYmxlbmRTdGF0ZUV4dC5zZXRGYWN0b3JzSW5kZXhlZCg3LCBHTF9TUkNfQ09M
T1IsIEdMX0RTVF9DT0xPUiwgR0xfU1JDX0FMUEhBLCBHTF9PTkUpOwotICAgIEFTU0VSVF9FUShi
bGVuZFN0YXRlRXh0Lm1TcmNDb2xvciwgMHgwMjAyMDIwMjAyMDIwMjAxdSk7Ci0gICAgQVNTRVJU
X0VRKGJsZW5kU3RhdGVFeHQubURzdENvbG9yLCAweDA4MDgwODA4MDEwODA4MDh1KTsKLSAgICBB
U1NFUlRfRVEoYmxlbmRTdGF0ZUV4dC5tU3JjQWxwaGEsIDB4MDQwNDAxMDQwNDA0MDQwNHUpOwot
ICAgIEFTU0VSVF9FUShibGVuZFN0YXRlRXh0Lm1Ec3RBbHBoYSwgMHgwMTA2MDYwNjA2MDYwNjA2
dSk7CisgICAgQVNTRVJUX0VRKGJsZW5kU3RhdGVFeHQuZ2V0U3JjQ29sb3JCaXRzKCksIDB4MDIw
MjAyMDIwMjAyMDIwMXUpOworICAgIEFTU0VSVF9FUShibGVuZFN0YXRlRXh0LmdldERzdENvbG9y
Qml0cygpLCAweDA4MDgwODA4MDEwODA4MDh1KTsKKyAgICBBU1NFUlRfRVEoYmxlbmRTdGF0ZUV4
dC5nZXRTcmNBbHBoYUJpdHMoKSwgMHgwNDA0MDEwNDA0MDQwNDA0dSk7CisgICAgQVNTRVJUX0VR
KGJsZW5kU3RhdGVFeHQuZ2V0RHN0QWxwaGFCaXRzKCksIDB4MDEwNjA2MDYwNjA2MDYwNnUpOwog
CiAgICAgQVNTRVJUX0VRKGJsZW5kU3RhdGVFeHQuZ2V0U3JjQ29sb3JJbmRleGVkKDApLCBzdGF0
aWNfY2FzdDxHTGVudW0+KEdMX09ORSkpOwogICAgIEFTU0VSVF9FUShibGVuZFN0YXRlRXh0Lmdl
dERzdENvbG9ySW5kZXhlZCgzKSwgc3RhdGljX2Nhc3Q8R0xlbnVtPihHTF9PTkUpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9jYXB0dXJlL0ZyYW1l
Q2FwdHVyZS5jcHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvY2FwdHVy
ZS9GcmFtZUNhcHR1cmUuY3BwCmluZGV4IGRiYzQxY2FlOTk1OWUzOTdhNTZmOGU0YWZjZGJmYzFk
ZjVjOTI0MzUuLjEwNWZhZTEwMGM4NzZjMjIxZTkzMWFjMDNiOTA0NzA2M2JjMDUyYzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9jYXB0dXJlL0ZyYW1l
Q2FwdHVyZS5jcHAKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL2Nh
cHR1cmUvRnJhbWVDYXB0dXJlLmNwcApAQCAtMTg1Niw3ICsxODU2LDcgQEAgdm9pZCBDYXB0dXJl
RnJhbWVidWZmZXJBdHRhY2htZW50KHN0ZDo6dmVjdG9yPENhbGxDYXB0dXJlPiAqc2V0dXBDYWxs
cywKICAgICB7CiAgICAgICAgIGdsOjpJbWFnZUluZGV4IGluZGV4ID0gYXR0YWNobWVudC5nZXRU
ZXh0dXJlSW1hZ2VJbmRleCgpOwogCi0gICAgICAgIGlmIChpbmRleC51c2VzVGV4M0QoKSB8fCBJ
c0N1YmVNYXBGYWNlVGFyZ2V0KGluZGV4LmdldFRhcmdldCgpKSkKKyAgICAgICAgaWYgKGluZGV4
LnVzZXNUZXgzRCgpKQogICAgICAgICB7CiAgICAgICAgICAgICBDYXB0dXJlKHNldHVwQ2FsbHMs
IENhcHR1cmVGcmFtZWJ1ZmZlclRleHR1cmVMYXllcigKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJlcGxheVN0YXRlLCB0cnVlLCBHTF9GUkFNRUJVRkZFUiwgYXR0YWNobWVu
dC5nZXRCaW5kaW5nKCksCkBAIC0yMTY1LDcgKzIxNjUsOCBAQCB2b2lkIENhcHR1cmVWZXJ0ZXhB
cnJheVN0YXRlKHN0ZDo6dmVjdG9yPENhbGxDYXB0dXJlPiAqc2V0dXBDYWxscywKIAogICAgIGds
OjpBdHRyaWJ1dGVzTWFzayB2ZXJ0ZXhQb2ludGVyQmluZGluZ3M7CiAKLSAgICBmb3IgKEdMdWlu
dCBhdHRyaWJJbmRleCA9IDA7IGF0dHJpYkluZGV4IDwgZ2w6Ok1BWF9WRVJURVhfQVRUUklCUzsg
KythdHRyaWJJbmRleCkKKyAgICBBU1NFUlQodmVydGV4QXR0cmlicy5zaXplKCkgPD0gdmVydGV4
QmluZGluZ3Muc2l6ZSgpKTsKKyAgICBmb3IgKEdMdWludCBhdHRyaWJJbmRleCA9IDA7IGF0dHJp
YkluZGV4IDwgdmVydGV4QXR0cmlicy5zaXplKCk7ICsrYXR0cmliSW5kZXgpCiAgICAgewogICAg
ICAgICBjb25zdCBnbDo6VmVydGV4QXR0cmlidXRlIGRlZmF1bHRBdHRyaWIoYXR0cmliSW5kZXgp
OwogICAgICAgICBjb25zdCBnbDo6VmVydGV4QmluZGluZyBkZWZhdWx0QmluZGluZzsKQEAgLTI3
NDcsNyArMjc0OCw3IEBAIHZvaWQgQ2FwdHVyZURlZmF1bHRWZXJ0ZXhBdHRyaWJzKGNvbnN0IGds
OjpTdGF0ZSAmcmVwbGF5U3RhdGUsCiAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8Z2w6OlZlcnRleEF0
dHJpYkN1cnJlbnRWYWx1ZURhdGE+ICZjdXJyZW50VmFsdWVzID0KICAgICAgICAgYXBpU3RhdGUu
Z2V0VmVydGV4QXR0cmliQ3VycmVudFZhbHVlcygpOwogCi0gICAgZm9yIChHTHVpbnQgYXR0cmli
SW5kZXggPSAwOyBhdHRyaWJJbmRleCA8IGdsOjpNQVhfVkVSVEVYX0FUVFJJQlM7ICsrYXR0cmli
SW5kZXgpCisgICAgZm9yIChHTHVpbnQgYXR0cmliSW5kZXggPSAwOyBhdHRyaWJJbmRleCA8IGN1
cnJlbnRWYWx1ZXMuc2l6ZSgpOyArK2F0dHJpYkluZGV4KQogICAgIHsKICAgICAgICAgY29uc3Qg
Z2w6OlZlcnRleEF0dHJpYkN1cnJlbnRWYWx1ZURhdGEgJmRlZmF1bHRWYWx1ZSA9IGN1cnJlbnRW
YWx1ZXNbYXR0cmliSW5kZXhdOwogICAgICAgICBpZiAoIUlzRGVmYXVsdEN1cnJlbnRWYWx1ZShk
ZWZhdWx0VmFsdWUpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xp
YkFOR0xFL2NhcHR1cmUvY2FwdHVyZV9nbGVzX2V4dF9hdXRvZ2VuLmNwcCBiL1NvdXJjZS9UaGly
ZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9jYXB0dXJlL2NhcHR1cmVfZ2xlc19leHRfYXV0b2dl
bi5jcHAKaW5kZXggNDhlYzFkYWJkY2U0MmIxMzU5MzI0NGM0OGY5NGJlMjYyZjkwNjY4MC4uZDFh
NDNlNGQ2YTI0MTQxZGZhYzU0NTRjNTYxYWRkZWU5OTQwODA4ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL2NhcHR1cmUvY2FwdHVyZV9nbGVzX2V4dF9h
dXRvZ2VuLmNwcAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvY2Fw
dHVyZS9jYXB0dXJlX2dsZXNfZXh0X2F1dG9nZW4uY3BwCkBAIC0xMTM3Niw0ICsxMTM3NiwxMyBA
QCBDYWxsQ2FwdHVyZSBDYXB0dXJlRnJhbWVidWZmZXJUZXh0dXJlTXVsdGl2aWV3T1ZSKGNvbnN0
IFN0YXRlICZnbFN0YXRlLAogICAgIHJldHVybiBDYWxsQ2FwdHVyZShhbmdsZTo6RW50cnlQb2lu
dDo6R0xGcmFtZWJ1ZmZlclRleHR1cmVNdWx0aXZpZXdPVlIsIHN0ZDo6bW92ZShwYXJhbUJ1ZmZl
cikpOwogfQogCitDYWxsQ2FwdHVyZSBDYXB0dXJlU2hhZGluZ1JhdGVRQ09NKGNvbnN0IFN0YXRl
ICZnbFN0YXRlLCBib29sIGlzQ2FsbFZhbGlkLCBHTGVudW0gcmF0ZSkKK3sKKyAgICBQYXJhbUJ1
ZmZlciBwYXJhbUJ1ZmZlcjsKKworICAgIHBhcmFtQnVmZmVyLmFkZEVudW1QYXJhbSgicmF0ZSIs
IEdMZW51bUdyb3VwOjpTaGFkaW5nUmF0ZSwgUGFyYW1UeXBlOjpUR0xlbnVtLCByYXRlKTsKKwor
ICAgIHJldHVybiBDYWxsQ2FwdHVyZShhbmdsZTo6RW50cnlQb2ludDo6R0xTaGFkaW5nUmF0ZVFD
T00sIHN0ZDo6bW92ZShwYXJhbUJ1ZmZlcikpOworfQorCiB9ICAvLyBuYW1lc3BhY2UgZ2wKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9jYXB0dXJlL2Nh
cHR1cmVfZ2xlc19leHRfYXV0b2dlbi5oIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xp
YkFOR0xFL2NhcHR1cmUvY2FwdHVyZV9nbGVzX2V4dF9hdXRvZ2VuLmgKaW5kZXggOTM5N2ZiMmVk
MzY0ZDJlN2U4Nzc5ODM3Njk0NTk4ZGQ1ZmVjM2ViNS4uYjdmMjdmMzYzYWZmNWIxY2RhMmZlZjRm
MGYyZGNkMGRhMmUzN2U2MCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3Jj
L2xpYkFOR0xFL2NhcHR1cmUvY2FwdHVyZV9nbGVzX2V4dF9hdXRvZ2VuLmgKKysrIGIvU291cmNl
L1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL2NhcHR1cmUvY2FwdHVyZV9nbGVzX2V4dF9h
dXRvZ2VuLmgKQEAgLTgzOCw2ICs4MzgsOCBAQCBhbmdsZTo6Q2FsbENhcHR1cmUgQ2FwdHVyZUdl
dFF1ZXJ5T2JqZWN0dWk2NHZSb2J1c3RBTkdMRShjb25zdCBTdGF0ZSAmZ2xTdGF0ZSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMc2l6
ZWkgKmxlbmd0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEdMdWludDY0ICpwYXJhbXMpOwogCisvLyBHTF9BTkdMRV9yb2J1c3RfcmVz
b3VyY2VfaW5pdGlhbGl6YXRpb24KKwogLy8gR0xfQU5HTEVfc2VtYXBob3JlX2Z1Y2hzaWEKIGFu
Z2xlOjpDYWxsQ2FwdHVyZSBDYXB0dXJlSW1wb3J0U2VtYXBob3JlWmlyY29uSGFuZGxlQU5HTEUo
Y29uc3QgU3RhdGUgJmdsU3RhdGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgaXNDYWxsVmFsaWQsCkBAIC0yNjA2LDYgKzI2
MDgsOSBAQCBhbmdsZTo6Q2FsbENhcHR1cmUgQ2FwdHVyZUZyYW1lYnVmZmVyVGV4dHVyZU11bHRp
dmlld09WUihjb25zdCBTdGF0ZSAmZ2xTdGF0ZSwKIAogLy8gR0xfT1ZSX211bHRpdmlldzIKIAor
Ly8gR0xfUUNPTV9zaGFkaW5nX3JhdGUKK2FuZ2xlOjpDYWxsQ2FwdHVyZSBDYXB0dXJlU2hhZGlu
Z1JhdGVRQ09NKGNvbnN0IFN0YXRlICZnbFN0YXRlLCBib29sIGlzQ2FsbFZhbGlkLCBHTGVudW0g
cmF0ZSk7CisKIC8vIFBhcmFtZXRlciBDYXB0dXJlcwogCiB2b2lkIENhcHR1cmVEZWxldGVQZXJm
TW9uaXRvcnNBTURfbW9uaXRvcnMoY29uc3QgU3RhdGUgJmdsU3RhdGUsCmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvY2FwdHVyZS9mcmFtZV9jYXB0dXJl
X3JlcGxheV9hdXRvZ2VuLmNwcCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdM
RS9jYXB0dXJlL2ZyYW1lX2NhcHR1cmVfcmVwbGF5X2F1dG9nZW4uY3BwCmluZGV4IGVjYWIyZDg4
MTk3ZTRjMjMzNzNkMTJlZTBiNzQxYWYwOGM3ZGM4MTIuLjMzYWNhYTA3ZTY0OWZiYzI0YmQ2ZDhl
Njc4NGM1NWU5NjU4ZmFlN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3Ny
Yy9saWJBTkdMRS9jYXB0dXJlL2ZyYW1lX2NhcHR1cmVfcmVwbGF5X2F1dG9nZW4uY3BwCisrKyBi
L1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9jYXB0dXJlL2ZyYW1lX2NhcHR1
cmVfcmVwbGF5X2F1dG9nZW4uY3BwCkBAIC0yNjgzLDYgKzI2ODMsMTAgQEAgdm9pZCBGcmFtZUNh
cHR1cmVTaGFyZWQ6OlJlcGxheUNhbGwoZ2w6OkNvbnRleHQgKmNvbnRleHQsCiAgICAgICAgICAg
ICAgICAgcmVwbGF5Q29udGV4dC0+Z2V0QXNDb25zdFBvaW50ZXI8Y29uc3QgR0xpbnQgKj4oCiAg
ICAgICAgICAgICAgICAgICAgIHBhcmFtcy5nZXRQYXJhbSgibGVuZ3RoIiwgUGFyYW1UeXBlOjpU
R0xpbnRDb25zdFBvaW50ZXIsIDMpKSk7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSBhbmdsZTo6RW50cnlQb2ludDo6R0xTaGFkaW5nUmF0ZVFDT006CisgICAgICAgICAgICBjb250
ZXh0LT5zaGFkaW5nUmF0ZVFDT00oCisgICAgICAgICAgICAgICAgcGFyYW1zLmdldFBhcmFtKCJy
YXRlIiwgUGFyYW1UeXBlOjpUR0xlbnVtLCAwKS52YWx1ZS5HTGVudW1WYWwpOworICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIGNhc2UgYW5nbGU6OkVudHJ5UG9pbnQ6OkdMU3RlbmNpbEZ1bmM6
CiAgICAgICAgICAgICBjb250ZXh0LT5zdGVuY2lsRnVuYyhwYXJhbXMuZ2V0UGFyYW0oImZ1bmMi
LCBQYXJhbVR5cGU6OlRHTGVudW0sIDApLnZhbHVlLkdMZW51bVZhbCwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHBhcmFtcy5nZXRQYXJhbSgicmVmIiwgUGFyYW1UeXBlOjpUR0xp
bnQsIDEpLnZhbHVlLkdMaW50VmFsLApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5H
TEUvc3JjL2xpYkFOR0xFL2NhcHR1cmUvZnJhbWVfY2FwdHVyZV91dGlscy5jcHAgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvY2FwdHVyZS9mcmFtZV9jYXB0dXJlX3V0aWxz
LmNwcAppbmRleCA2MDJmZmI2MzNhMWIxZDA5ZWFlNGNhZWM5NmFkMDU0MWIzNGE3OTI5Li5jMTBj
ZTU0YmY5MTdmZDFiZTMyNDNlYjUxYzMyMWRjNWUwNGNhOWU5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvY2FwdHVyZS9mcmFtZV9jYXB0dXJlX3V0aWxz
LmNwcAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvY2FwdHVyZS9m
cmFtZV9jYXB0dXJlX3V0aWxzLmNwcApAQCAtNDI5LDE1ICs0MjksMTUgQEAgdm9pZCBTZXJpYWxp
emVSZWN0YW5nbGUoSnNvblNlcmlhbGl6ZXIgKmpzb24sCiB2b2lkIFNlcmlhbGl6ZUJsZW5kU3Rh
dGVFeHQoSnNvblNlcmlhbGl6ZXIgKmpzb24sIGNvbnN0IGdsOjpCbGVuZFN0YXRlRXh0ICZibGVu
ZFN0YXRlRXh0KQogewogICAgIEdyb3VwU2NvcGUgZ3JvdXAoanNvbiwgIkJsZW5kU3RhdGVFeHQi
KTsKLSAgICBqc29uLT5hZGRTY2FsYXIoIk1heERyYXdCdWZmZXJzIiwgYmxlbmRTdGF0ZUV4dC5t
TWF4RHJhd0J1ZmZlcnMpOwotICAgIGpzb24tPmFkZFNjYWxhcigiZW5hYmxlTWFzayIsIGJsZW5k
U3RhdGVFeHQubUVuYWJsZWRNYXNrLmJpdHMoKSk7Ci0gICAganNvbi0+YWRkU2NhbGFyKCJEc3RD
b2xvciIsIGJsZW5kU3RhdGVFeHQubURzdENvbG9yKTsKLSAgICBqc29uLT5hZGRTY2FsYXIoIkRz
dEFscGhhIiwgYmxlbmRTdGF0ZUV4dC5tRHN0QWxwaGEpOwotICAgIGpzb24tPmFkZFNjYWxhcigi
U3JjQ29sb3IiLCBibGVuZFN0YXRlRXh0Lm1TcmNDb2xvcik7Ci0gICAganNvbi0+YWRkU2NhbGFy
KCJTcmNBbHBoYSIsIGJsZW5kU3RhdGVFeHQubVNyY0FscGhhKTsKLSAgICBqc29uLT5hZGRTY2Fs
YXIoIkVxdWF0aW9uQ29sb3IiLCBibGVuZFN0YXRlRXh0Lm1FcXVhdGlvbkNvbG9yKTsKLSAgICBq
c29uLT5hZGRTY2FsYXIoIkVxdWF0aW9uQWxwaGEiLCBibGVuZFN0YXRlRXh0Lm1FcXVhdGlvbkFs
cGhhKTsKLSAgICBqc29uLT5hZGRTY2FsYXIoIkNvbG9yTWFzayIsIGJsZW5kU3RhdGVFeHQubUNv
bG9yTWFzayk7CisgICAganNvbi0+YWRkU2NhbGFyKCJEcmF3QnVmZmVyQ291bnQiLCBibGVuZFN0
YXRlRXh0LmdldERyYXdCdWZmZXJDb3VudCgpKTsKKyAgICBqc29uLT5hZGRTY2FsYXIoIkVuYWJs
ZU1hc2siLCBibGVuZFN0YXRlRXh0LmdldEVuYWJsZWRNYXNrKCkuYml0cygpKTsKKyAgICBqc29u
LT5hZGRTY2FsYXIoIkRzdENvbG9yIiwgYmxlbmRTdGF0ZUV4dC5nZXREc3RDb2xvckJpdHMoKSk7
CisgICAganNvbi0+YWRkU2NhbGFyKCJEc3RBbHBoYSIsIGJsZW5kU3RhdGVFeHQuZ2V0RHN0QWxw
aGFCaXRzKCkpOworICAgIGpzb24tPmFkZFNjYWxhcigiU3JjQ29sb3IiLCBibGVuZFN0YXRlRXh0
LmdldFNyY0NvbG9yQml0cygpKTsKKyAgICBqc29uLT5hZGRTY2FsYXIoIlNyY0FscGhhIiwgYmxl
bmRTdGF0ZUV4dC5nZXRTcmNBbHBoYUJpdHMoKSk7CisgICAganNvbi0+YWRkU2NhbGFyKCJFcXVh
dGlvbkNvbG9yIiwgYmxlbmRTdGF0ZUV4dC5nZXRFcXVhdGlvbkNvbG9yQml0cygpKTsKKyAgICBq
c29uLT5hZGRTY2FsYXIoIkVxdWF0aW9uQWxwaGEiLCBibGVuZFN0YXRlRXh0LmdldEVxdWF0aW9u
QWxwaGFCaXRzKCkpOworICAgIGpzb24tPmFkZFNjYWxhcigiQ29sb3JNYXNrIiwgYmxlbmRTdGF0
ZUV4dC5nZXRDb2xvck1hc2tCaXRzKCkpOwogfQogCiB2b2lkIFNlcmlhbGl6ZURlcHRoU3RlbmNp
bFN0YXRlKEpzb25TZXJpYWxpemVyICpqc29uLApAQCAtNzk4LDcgKzc5OCw3IEBAIFJlc3VsdCBT
ZXJpYWxpemVSZW5kZXJidWZmZXIoY29uc3QgZ2w6OkNvbnRleHQgKmNvbnRleHQsCiAgICAgU2Vy
aWFsaXplUmVuZGVyYnVmZmVyU3RhdGUoanNvbiwgcmVuZGVyYnVmZmVyLT5nZXRTdGF0ZSgpKTsK
ICAgICBqc29uLT5hZGRTdHJpbmcoIkxhYmVsIiwgcmVuZGVyYnVmZmVyLT5nZXRMYWJlbCgpKTsK
IAotICAgIGlmIChyZW5kZXJidWZmZXItPmluaXRTdGF0ZShnbDo6SW1hZ2VJbmRleCgpKSA9PSBn
bDo6SW5pdFN0YXRlOjpJbml0aWFsaXplZCkKKyAgICBpZiAocmVuZGVyYnVmZmVyLT5pbml0U3Rh
dGUoR0xfTk9ORSwgZ2w6OkltYWdlSW5kZXgoKSkgPT0gZ2w6OkluaXRTdGF0ZTo6SW5pdGlhbGl6
ZWQpCiAgICAgewogICAgICAgICBpZiAocmVuZGVyYnVmZmVyLT5nZXRTYW1wbGVzKCkgPiAxICYm
IHJlbmRlcmJ1ZmZlci0+Z2V0Rm9ybWF0KCkuaW5mby0+ZGVwdGhCaXRzID4gMCkKICAgICAgICAg
ewpAQCAtMTA0NSw4ICsxMDQ1LDYgQEAgdm9pZCBTZXJpYWxpemVQcm9ncmFtU3RhdGUoSnNvblNl
cmlhbGl6ZXIgKmpzb24sIGNvbnN0IGdsOjpQcm9ncmFtU3RhdGUgJnByb2dyYW0KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9ncmFtU3RhdGUuZ2V0U2Vjb25kYXJ5T3V0
cHV0TG9jYXRpb25zKCkpOwogICAgIGpzb24tPmFkZFNjYWxhcigiQmluYXJ5UmV0cmlldmVhYmxl
SGludCIsIHByb2dyYW1TdGF0ZS5oYXNCaW5hcnlSZXRyaWV2ZWFibGVIaW50KCkpOwogICAgIGpz
b24tPmFkZFNjYWxhcigiU2VwYXJhYmxlIiwgcHJvZ3JhbVN0YXRlLmlzU2VwYXJhYmxlKCkpOwot
ICAgIGpzb24tPmFkZFNjYWxhcigiRWFybHlGcmFnbWVudFRlc3RzT3B0aW1pemF0aW9uIiwKLSAg
ICAgICAgICAgICAgICAgICAgcHJvZ3JhbVN0YXRlLmhhc0Vhcmx5RnJhZ21lbnRUZXN0c09wdGlt
aXphdGlvbigpKTsKICAgICBqc29uLT5hZGRTY2FsYXIoIk51bVZpZXdzIiwgcHJvZ3JhbVN0YXRl
LmdldE51bVZpZXdzKCkpOwogICAgIGpzb24tPmFkZFNjYWxhcigiRHJhd0lETG9jYXRpb24iLCBw
cm9ncmFtU3RhdGUuZ2V0RHJhd0lETG9jYXRpb24oKSk7CiAgICAganNvbi0+YWRkU2NhbGFyKCJC
YXNlVmVydGV4TG9jYXRpb24iLCBwcm9ncmFtU3RhdGUuZ2V0QmFzZVZlcnRleExvY2F0aW9uKCkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL2NhcHR1
cmUvZ2xfZW51bV91dGlsc19hdXRvZ2VuLmNwcCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3Ny
Yy9saWJBTkdMRS9jYXB0dXJlL2dsX2VudW1fdXRpbHNfYXV0b2dlbi5jcHAKaW5kZXggMDk4NWUx
MmRmZGRjYzI1MzcxMGU3ZGYwNzY1ZmM1NWU4NmI2YzUxYi4uYjhkZDkzMzEzZDY3ZjFkYzFmN2M0
NjlmYTJiZDQ5M2NkZDAzZTQxMiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUv
c3JjL2xpYkFOR0xFL2NhcHR1cmUvZ2xfZW51bV91dGlsc19hdXRvZ2VuLmNwcAorKysgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvY2FwdHVyZS9nbF9lbnVtX3V0aWxzX2F1
dG9nZW4uY3BwCkBAIC0xOTAxLDYgKzE5MDEsOCBAQCBjb25zdCBjaGFyICpHTGVudW1Ub1N0cmlu
ZyhHTGVudW1Hcm91cCBlbnVtR3JvdXAsIHVuc2lnbmVkIGludCB2YWx1ZSkKICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuICJHTF9QQUNLX1JFVkVSU0VfUk9XX09SREVSX0FOR0xFIjsKICAgICAg
ICAgICAgICAgICBjYXNlIDB4OTNBNjoKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJHTF9Q
Uk9HUkFNX0JJTkFSWV9BTkdMRSI7CisgICAgICAgICAgICAgICAgY2FzZSAweDkzQTc6CisgICAg
ICAgICAgICAgICAgICAgIHJldHVybiAiR0xfUk9CVVNUX1JFU09VUkNFX0lOSVRJQUxJWkFUSU9O
X0FOR0xFIjsKICAgICAgICAgICAgICAgICBjYXNlIDB4OTNBRToKICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuICJHTF9IQU5ETEVfVFlQRV9aSVJDT05fVk1PX0FOR0xFIjsKICAgICAgICAgICAg
ICAgICBjYXNlIDB4OTNBRjoKQEAgLTE5NzcsNiArMTk3OSw4IEBAIGNvbnN0IGNoYXIgKkdMZW51
bVRvU3RyaW5nKEdMZW51bUdyb3VwIGVudW1Hcm91cCwgdW5zaWduZWQgaW50IHZhbHVlKQogICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gIkdMX0ZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfVEVYVFVS
RV9CQVNFX1ZJRVdfSU5ERVhfT1ZSIjsKICAgICAgICAgICAgICAgICBjYXNlIDB4OTYzMzoKICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuICJHTF9GUkFNRUJVRkZFUl9JTkNPTVBMRVRFX1ZJRVdf
VEFSR0VUU19PVlIiOworICAgICAgICAgICAgICAgIGNhc2UgMHg5NjlGOgorICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gIkdMX1JFU09VUkNFX0lOSVRJQUxJWkVEX0FOR0xFIjsKICAgICAgICAg
ICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgICByZXR1cm4gVW5rbm93bkdMZW51
bVRvU3RyaW5nKHZhbHVlKTsKICAgICAgICAgICAgIH0KQEAgLTM2NjQsNiArMzY2OCwzMSBAQCBj
b25zdCBjaGFyICpHTGVudW1Ub1N0cmluZyhHTGVudW1Hcm91cCBlbnVtR3JvdXAsIHVuc2lnbmVk
IGludCB2YWx1ZSkKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCisgICAgICAgIGNhc2UgR0xl
bnVtR3JvdXA6OlNoYWRpbmdSYXRlOgorICAgICAgICB7CisgICAgICAgICAgICBzd2l0Y2ggKHZh
bHVlKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGNhc2UgMHg5NkE0OgorICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gIkdMX1NIQURJTkdfUkFURV9RQ09NIjsKKyAgICAgICAgICAg
ICAgICBjYXNlIDB4OTZBNToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJHTF9TSEFESU5H
X1JBVEVfUFJFU0VSVkVfQVNQRUNUX1JBVElPX1FDT00iOworICAgICAgICAgICAgICAgIGNhc2Ug
MHg5NkE2OgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkdMX1NIQURJTkdfUkFURV8xWDFf
UElYRUxTX1FDT00iOworICAgICAgICAgICAgICAgIGNhc2UgMHg5NkE3OgorICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gIkdMX1NIQURJTkdfUkFURV8xWDJfUElYRUxTX1FDT00iOworICAgICAg
ICAgICAgICAgIGNhc2UgMHg5NkE4OgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkdMX1NI
QURJTkdfUkFURV8yWDFfUElYRUxTX1FDT00iOworICAgICAgICAgICAgICAgIGNhc2UgMHg5NkE5
OgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkdMX1NIQURJTkdfUkFURV8yWDJfUElYRUxT
X1FDT00iOworICAgICAgICAgICAgICAgIGNhc2UgMHg5NkFDOgorICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gIkdMX1NIQURJTkdfUkFURV80WDJfUElYRUxTX1FDT00iOworICAgICAgICAgICAg
ICAgIGNhc2UgMHg5NkFFOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkdMX1NIQURJTkdf
UkFURV80WDRfUElYRUxTX1FDT00iOworICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBVbmtub3duR0xlbnVtVG9TdHJpbmcodmFsdWUpOworICAgICAg
ICAgICAgfQorICAgICAgICB9CisKICAgICAgICAgY2FzZSBHTGVudW1Hcm91cDo6U3RlbmNpbEZh
Y2VEaXJlY3Rpb246CiAgICAgICAgIHsKICAgICAgICAgICAgIHN3aXRjaCAodmFsdWUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvY2FwdHVyZS9nbF9l
bnVtX3V0aWxzX2F1dG9nZW4uaCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdM
RS9jYXB0dXJlL2dsX2VudW1fdXRpbHNfYXV0b2dlbi5oCmluZGV4IDU2MGZhNTRkZWNlZjgwMDAz
YWRjZDVhMTIxOTQwZmNlNGQyNjg5NzkuLjNlNzBkY2RlM2IxNzUyMmVkYTE2YjkwNDI0NGVmMTgw
Nzc1MzcxMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdM
RS9jYXB0dXJlL2dsX2VudW1fdXRpbHNfYXV0b2dlbi5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L0FOR0xFL3NyYy9saWJBTkdMRS9jYXB0dXJlL2dsX2VudW1fdXRpbHNfYXV0b2dlbi5oCkBAIC0x
NzQsNiArMTc0LDcgQEAgZW51bSBjbGFzcyBHTGVudW1Hcm91cAogICAgIFNoYWRlclBhcmFtZXRl
ck5hbWUsCiAgICAgU2hhZGVyVHlwZSwKICAgICBTaGFkaW5nTW9kZWwsCisgICAgU2hhZGluZ1Jh
dGUsCiAgICAgU3RlbmNpbEZhY2VEaXJlY3Rpb24sCiAgICAgU3RlbmNpbEZ1bmN0aW9uLAogICAg
IFN0ZW5jaWxPcCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJB
TkdMRS9nZW5fb3ZlcmxheV93aWRnZXRzLnB5IGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3Jj
L2xpYkFOR0xFL2dlbl9vdmVybGF5X3dpZGdldHMucHkKaW5kZXggMmFkMGUwMjA2ZTI3ZmNlODJh
MjZjOTlkN2FjYTliYjUyNDdhNTczMy4uMGM1Mzk0ZGViMTI0NzVmNmFjOGJmNDNkYzhiZTc1YTM0
MGQ1NGVjZSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xF
L2dlbl9vdmVybGF5X3dpZGdldHMucHkKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3Jj
L2xpYkFOR0xFL2dlbl9vdmVybGF5X3dpZGdldHMucHkKQEAgLTkzLDE2ICs5MywxNyBAQCBjb25z
dCBpbnQzMl90IG9mZnNldFkgPSB7b2Zmc2V0X3l9OwogY29uc3QgaW50MzJfdCB3aWR0aCA9IHt3
aWR0aH07CiBjb25zdCBpbnQzMl90IGhlaWdodCA9IHtoZWlnaHR9OwogCi13aWRnZXQtPntzdWJ3
aWRnZXR9dHlwZSAgICAgID0gV2lkZ2V0VHlwZTo6e3R5cGV9Owotd2lkZ2V0LT57c3Vid2lkZ2V0
fWZvbnRTaXplICA9IGZvbnRTaXplOwotd2lkZ2V0LT57c3Vid2lkZ2V0fWNvb3Jkc1swXSA9IHtj
b29yZDB9Owotd2lkZ2V0LT57c3Vid2lkZ2V0fWNvb3Jkc1sxXSA9IHtjb29yZDF9Owotd2lkZ2V0
LT57c3Vid2lkZ2V0fWNvb3Jkc1syXSA9IHtjb29yZDJ9Owotd2lkZ2V0LT57c3Vid2lkZ2V0fWNv
b3Jkc1szXSA9IHtjb29yZDN9Owotd2lkZ2V0LT57c3Vid2lkZ2V0fWNvbG9yWzBdICA9IHtjb2xv
cl9yfWY7Ci13aWRnZXQtPntzdWJ3aWRnZXR9Y29sb3JbMV0gID0ge2NvbG9yX2d9ZjsKLXdpZGdl
dC0+e3N1YndpZGdldH1jb2xvclsyXSAgPSB7Y29sb3JfYn1mOwotd2lkZ2V0LT57c3Vid2lkZ2V0
fWNvbG9yWzNdICA9IHtjb2xvcl9hfWY7Cit3aWRnZXQtPntzdWJ3aWRnZXR9dHlwZSAgICAgICAg
ICA9IFdpZGdldFR5cGU6Ont0eXBlfTsKK3dpZGdldC0+e3N1YndpZGdldH1mb250U2l6ZSAgICAg
ID0gZm9udFNpemU7Cit3aWRnZXQtPntzdWJ3aWRnZXR9Y29vcmRzWzBdICAgICA9IHtjb29yZDB9
Oword2lkZ2V0LT57c3Vid2lkZ2V0fWNvb3Jkc1sxXSAgICAgPSB7Y29vcmQxfTsKK3dpZGdldC0+
e3N1YndpZGdldH1jb29yZHNbMl0gICAgID0ge2Nvb3JkMn07Cit3aWRnZXQtPntzdWJ3aWRnZXR9
Y29vcmRzWzNdICAgICA9IHtjb29yZDN9Oword2lkZ2V0LT57c3Vid2lkZ2V0fWNvbG9yWzBdICAg
ICAgPSB7Y29sb3Jfcn1mOword2lkZ2V0LT57c3Vid2lkZ2V0fWNvbG9yWzFdICAgICAgPSB7Y29s
b3JfZ31mOword2lkZ2V0LT57c3Vid2lkZ2V0fWNvbG9yWzJdICAgICAgPSB7Y29sb3JfYn1mOwor
d2lkZ2V0LT57c3Vid2lkZ2V0fWNvbG9yWzNdICAgICAgPSB7Y29sb3JfYX1mOword2lkZ2V0LT57
c3Vid2lkZ2V0fW1hdGNoVG9XaWRnZXQgPSB7bWF0Y2hfdG99OwogfX0KICIiIgogCkBAIC0xNDks
NiArMTUwLDcgQEAgY2xhc3MgT3ZlcmxheVdpZGdldDoKICAgICBkZWYgZXh0cmFjdF9jb21tb24o
c2VsZiwgcHJvcGVydGllcyk6CiAgICAgICAgIHNlbGYuY29sb3IgPSBwcm9wZXJ0aWVzWydjb2xv
ciddCiAgICAgICAgIHNlbGYuY29vcmRzID0gcHJvcGVydGllc1snY29vcmRzJ10KKyAgICAgICAg
c2VsZi5tYXRjaF90byA9IHByb3BlcnRpZXMuZ2V0KCdtYXRjaF90bycsIE5vbmUpCiAgICAgICAg
IGlmIGlzX2dyYXBoX3R5cGUoc2VsZi50eXBlKToKICAgICAgICAgICAgIHNlbGYuYmFyX3dpZHRo
ID0gcHJvcGVydGllc1snYmFyX3dpZHRoJ10KICAgICAgICAgICAgIHNlbGYuaGVpZ2h0ID0gcHJv
cGVydGllc1snaGVpZ2h0J10KQEAgLTI4MCw2ICsyODIsOSBAQCBkZWYgZ2VuZXJhdGVfd2lkZ2V0
X2luaXRfaGVscGVyKHdpZGdldCwgaXNfZ3JhcGhfZGVzY3JpcHRpb249RmFsc2UpOgogICAgIGNv
b3JkMCwgY29vcmQyID0gZ2V0X2JvdW5kaW5nX2JveF9jb29yZHMoJ29mZnNldFgnLCAnd2lkdGgn
LCBvZmZzZXRfeF9pc19sZWZ0LCBpc19sZWZ0X2FsaWduZWQpCiAgICAgY29vcmQxLCBjb29yZDMg
PSBnZXRfYm91bmRpbmdfYm94X2Nvb3Jkcygnb2Zmc2V0WScsICdoZWlnaHQnLCBvZmZzZXRfeV9p
c190b3AsIGlzX3RvcF9hbGlnbmVkKQogCisgICAgbWF0Y2hfdG8gPSAnbnVsbHB0cicgaWYgd2lk
Z2V0Lm1hdGNoX3RvIGlzIE5vbmUgZWxzZSBcCisgICAgICAgICAgICAgICAnbVN0YXRlLm1PdmVy
bGF5V2lkZ2V0c1tXaWRnZXRJZDo6JyArIHdpZGdldC5tYXRjaF90byArICddLmdldCgpJworCiAg
ICAgcmV0dXJuIFdJREdFVF9JTklUX1RFTVBMQVRFLmZvcm1hdCgKICAgICAgICAgc3Vid2lkZ2V0
PSdkZXNjcmlwdGlvbi4nIGlmIGlzX2dyYXBoX2Rlc2NyaXB0aW9uIGVsc2UgJycsCiAgICAgICAg
IG9mZnNldF94PW9mZnNldF94LApAQCAtMjk1LDcgKzMwMCw4IEBAIGRlZiBnZW5lcmF0ZV93aWRn
ZXRfaW5pdF9oZWxwZXIod2lkZ2V0LCBpc19ncmFwaF9kZXNjcmlwdGlvbj1GYWxzZSk6CiAgICAg
ICAgIGNvbG9yX3I9Y29sb3JbMF0sCiAgICAgICAgIGNvbG9yX2c9Y29sb3JbMV0sCiAgICAgICAg
IGNvbG9yX2I9Y29sb3JbMl0sCi0gICAgICAgIGNvbG9yX2E9Y29sb3JbM10pCisgICAgICAgIGNv
bG9yX2E9Y29sb3JbM10sCisgICAgICAgIG1hdGNoX3RvPW1hdGNoX3RvKQogCiAKIGRlZiBnZW5l
cmF0ZV93aWRnZXRfaW5pdCh3aWRnZXQpOgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkv
QU5HTEUvc3JjL2xpYkFOR0xFL2dsZXNfZXh0ZW5zaW9uc19hdXRvZ2VuLmNwcCBiL1NvdXJjZS9U
aGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9nbGVzX2V4dGVuc2lvbnNfYXV0b2dlbi5jcHAK
aW5kZXggNmQ5MzEzMjJiOGI4ZjY3MWJjZjMwYWY3ZWM5OWZmNDI3YTQyY2Y1Ni4uZWM4ZTk2NDIx
Y2JmZDQ2ZmU5NWMyMzcyZDk0MmQwNmYxNzBmMmZjMyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJk
UGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL2dsZXNfZXh0ZW5zaW9uc19hdXRvZ2VuLmNwcAorKysg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvZ2xlc19leHRlbnNpb25zX2F1
dG9nZW4uY3BwCkBAIC0xNDUsNiArMTQ1LDcgQEAgY29uc3QgRXh0ZW5zaW9uSW5mb01hcCAmR2V0
RXh0ZW5zaW9uSW5mb01hcCgpCiAgICAgICAgIG1hcFsiR0xfRVhUX3NoYWRlcl9ub25fY29uc3Rh
bnRfZ2xvYmFsX2luaXRpYWxpemVycyJdID0gZW5hYmxlYWJsZUV4dGVuc2lvbigmRXh0ZW5zaW9u
czo6c2hhZGVyTm9uQ29uc3RhbnRHbG9iYWxJbml0aWFsaXplcnNFWFQpOwogICAgICAgICBtYXBb
IkdMX05WX3NoYWRlcl9ub3BlcnNwZWN0aXZlX2ludGVycG9sYXRpb24iXSA9IGVuYWJsZWFibGVF
eHRlbnNpb24oJkV4dGVuc2lvbnM6OnNoYWRlck5vcGVyc3BlY3RpdmVJbnRlcnBvbGF0aW9uTlYp
OwogICAgICAgICBtYXBbIkdMX0VYVF9zaGFkZXJfdGV4dHVyZV9sb2QiXSA9IGVuYWJsZWFibGVF
eHRlbnNpb24oJkV4dGVuc2lvbnM6OnNoYWRlclRleHR1cmVMb2RFWFQpOworICAgICAgICBtYXBb
IkdMX1FDT01fc2hhZGluZ19yYXRlIl0gPSBlbmFibGVhYmxlRXh0ZW5zaW9uKCZFeHRlbnNpb25z
OjpzaGFkaW5nUmF0ZVFDT00pOwogICAgICAgICBtYXBbIkdMX0VYVF9zaGFkb3dfc2FtcGxlcnMi
XSA9IGVuYWJsZWFibGVFeHRlbnNpb24oJkV4dGVuc2lvbnM6OnNoYWRvd1NhbXBsZXJzRVhUKTsK
ICAgICAgICAgbWFwWyJHTF9FWFRfc1JHQiJdID0gZW5hYmxlYWJsZUV4dGVuc2lvbigmRXh0ZW5z
aW9uczo6c1JHQkVYVCk7CiAgICAgICAgIG1hcFsiR0xfRVhUX3NSR0Jfd3JpdGVfY29udHJvbCJd
ID0gZXNPbmx5RXh0ZW5zaW9uKCZFeHRlbnNpb25zOjpzUkdCV3JpdGVDb250cm9sRVhUKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9nbGVzX2V4dGVu
c2lvbnNfYXV0b2dlbi5oIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL2ds
ZXNfZXh0ZW5zaW9uc19hdXRvZ2VuLmgKaW5kZXggMWUyMjNmNjY0MDQwMjQwYjRiYzcwNjliYTg0
MDNiMWQzZmMzNjgwMS4uOGI0MzM3MzI3OGNhZmUwODFhNGZjZGM3N2RlMDY1MzU3NDQ0NzMyNSAx
MDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL2dsZXNfZXh0
ZW5zaW9uc19hdXRvZ2VuLmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFO
R0xFL2dsZXNfZXh0ZW5zaW9uc19hdXRvZ2VuLmgKQEAgLTM5Miw2ICszOTIsOSBAQCBzdHJ1Y3Qg
RXh0ZW5zaW9ucwogICAgIC8vIEdMX0VYVF9zaGFkZXJfdGV4dHVyZV9sb2QKICAgICBib29sIHNo
YWRlclRleHR1cmVMb2RFWFQgPSBmYWxzZTsKIAorICAgIC8vIEdMX1FDT01fc2hhZGluZ19yYXRl
CisgICAgYm9vbCBzaGFkaW5nUmF0ZVFDT00gPSBmYWxzZTsKKwogICAgIC8vIEdMX0VYVF9zaGFk
b3dfc2FtcGxlcnMKICAgICBib29sIHNoYWRvd1NhbXBsZXJzRVhUID0gZmFsc2U7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9vdmVybGF5X3dpZGdl
dHMuanNvbiBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9vdmVybGF5X3dp
ZGdldHMuanNvbgppbmRleCAwNzA5MmU3NWIxNWZmYmQ4ODEzOTY0MDQ1M2YwNjMwYjU3ZDQ0ZmNl
Li44NDQyODFiYTcxNDQxNGIzMTA1ODJhZWUwZWU0NmI4YmJhODA4ZjMyIDEwMDY0NAotLS0gYS9T
b3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvb3ZlcmxheV93aWRnZXRzLmpzb24K
KysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL292ZXJsYXlfd2lkZ2V0
cy5qc29uCkBAIC0yNCw2ICsyNCw3IEBACiAgICAgICAgICIgLSBsZW5ndGg6IGZvciBUZXh0IHdp
ZGdldHMsIG1heGltdW0gbnVtYmVyIG9mIGNoYXJhY3RlcnMgZm9yIHRoaXMgd2lkZ2V0IiwKICAg
ICAgICAgIiAtIGJhcl93aWR0aDogZm9yIEdyYXBoIHdpZGdldHMsIHNpemUgb2YgZWFjaCBncmFw
aCBiYXIuIiwKICAgICAgICAgIiAtIGhlaWdodDogZm9yIEdyYXBoIHdpZGdldHMsIHRoZSBoZWln
aHQgb2YgdGhlIGdyYXBoLiIsCisgICAgICAgICIgLSBtYXRjaF90bzogYSByZWZlcmVuY2UgdG8g
YW5vdGhlciB3aWRnZXQiLAogICAgICAgICAiIC0gdGV4dDogZm9yIEdyYXBoIHdpZGdldHMsIGRh
dGEgZm9yIHRoZSBhdHRhY2hlZCBUZXh0IHdpZGdldC4gIFRoaXMgaXMgYSBtYXAgd2l0aCB0aGUg
c2FtZSIsCiAgICAgICAgICIgICAgICAgICBUZXh0IGtleXMgYXMgYWJvdmUgZXhjZXB0IHR5cGUs
IHdoaWNoIGlzIGltcGxpY2l0bHkgVGV4dC4iCiAgICAgXSwKQEAgLTEzNCw4ICsxMzUsOCBAQAog
ICAgICAgICAgICAgfQogICAgICAgICB9LAogICAgICAgICB7Ci0gICAgICAgICAgICAibmFtZSI6
ICJWdWxrYW5TaGFkZXJCdWZmZXJEU0hpdFJhdGUiLAotICAgICAgICAgICAgImNvbW1lbnQiOiAi
U2hhZGVyIEJ1ZmZlciBEZXNjcmlwdG9yIFNldCBDYWNoZSBIaXQgUmF0ZS4iLAorICAgICAgICAg
ICAgIm5hbWUiOiAiVnVsa2FuU2hhZGVyUmVzb3VyY2VEU0hpdFJhdGUiLAorICAgICAgICAgICAg
ImNvbW1lbnQiOiAiU2hhZGVyIFJlc291cmNlIERlc2NyaXB0b3IgU2V0IENhY2hlIEhpdCBSYXRl
LiIsCiAgICAgICAgICAgICAidHlwZSI6ICJSdW5uaW5nR3JhcGgoNjApIiwKICAgICAgICAgICAg
ICJjb2xvciI6IFsyNTUsIDAsIDc1LCAyMDBdLAogICAgICAgICAgICAgImNvb3JkcyI6IFstNTAs
IDM2MF0sCkBAIC0xNDMsOCArMTQ0LDggQEAKICAgICAgICAgICAgICJoZWlnaHQiOiAxMDAsCiAg
ICAgICAgICAgICAiZGVzY3JpcHRpb24iOiB7CiAgICAgICAgICAgICAgICAgImNvbG9yIjogWzI1
NSwgMCwgNzUsIDI1NV0sCi0gICAgICAgICAgICAgICAgImNvb3JkcyI6IFsiVnVsa2FuU2hhZGVy
QnVmZmVyRFNIaXRSYXRlLmxlZnQuYWxpZ24iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IlZ1bGthblNoYWRlckJ1ZmZlckRTSGl0UmF0ZS50b3AuYWRqYWNlbnQiXSwKKyAgICAgICAgICAg
ICAgICAiY29vcmRzIjogWyJWdWxrYW5TaGFkZXJSZXNvdXJjZURTSGl0UmF0ZS5sZWZ0LmFsaWdu
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJWdWxrYW5TaGFkZXJSZXNvdXJjZURTSGl0
UmF0ZS50b3AuYWRqYWNlbnQiXSwKICAgICAgICAgICAgICAgICAiZm9udCI6ICJzbWFsbCIsCiAg
ICAgICAgICAgICAgICAgImxlbmd0aCI6IDQwCiAgICAgICAgICAgICB9CkBAIC0yMDEsNyArMjAy
LDcgQEAKICAgICAgICAgICAgICJuYW1lIjogIlZ1bGthblVuaWZvcm1EZXNjcmlwdG9yQ2FjaGVT
aXplIiwKICAgICAgICAgICAgICJjb21tZW50IjogIk51bWJlciBvZiBjYWNoZWQgZGVmYXVsdCB1
bmlmb3JtIGRlc2NyaXB0b3Igc2V0cyIsCiAgICAgICAgICAgICAidHlwZSI6ICJSdW5uaW5nR3Jh
cGgoNjApIiwKLSAgICAgICAgICAgICJjb2xvciI6IFswLCAyMDAsIDMwMCwgMjAwXSwKKyAgICAg
ICAgICAgICJjb2xvciI6IFswLCAyMDAsIDI1NSwgMjAwXSwKICAgICAgICAgICAgICJjb29yZHMi
OiBbMCwgNDUwXSwKICAgICAgICAgICAgICJiYXJfd2lkdGgiOiA1LAogICAgICAgICAgICAgImhl
aWdodCI6IDEwMCwKQEAgLTIyMSw2ICsyMjIsNDAgQEAKICAgICAgICAgICAgICJjb29yZHMiOiBb
MTAsIDEwMF0sCiAgICAgICAgICAgICAiZm9udCI6ICJzbWFsbCIsCiAgICAgICAgICAgICAibGVu
Z3RoIjogMzAKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAiVnVs
a2FuQXR0ZW1wdGVkU3VibWlzc2lvbnMiLAorICAgICAgICAgICAgImNvbW1lbnQiOiAiTnVtYmVy
IG9mIHRpbWVzIHRoZSBWdWxrYW4gYmFja2VuZCBhdHRlbXB0ZWQgdG8gc3VibWl0IGNvbW1hbmRz
IiwKKyAgICAgICAgICAgICJ0eXBlIjogIlJ1bm5pbmdHcmFwaCg2MCkiLAorICAgICAgICAgICAg
ImNvbG9yIjogWzI1NSwgMCwgMCwgMTAwXSwKKyAgICAgICAgICAgICJjb29yZHMiOiBbLTUwLCA1
MF0sCisgICAgICAgICAgICAiYmFyX3dpZHRoIjogNSwKKyAgICAgICAgICAgICJoZWlnaHQiOiAx
MDAsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiB7CisgICAgICAgICAgICAgICAgImNvbG9y
IjogWzIwMCwgMCwgNzUsIDI1NV0sCisgICAgICAgICAgICAgICAgImNvb3JkcyI6IFsiVnVsa2Fu
QXR0ZW1wdGVkU3VibWlzc2lvbnMubGVmdC5hbGlnbiIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiVnVsa2FuQXR0ZW1wdGVkU3VibWlzc2lvbnMudG9wLmFkamFjZW50Il0sCisgICAgICAg
ICAgICAgICAgImZvbnQiOiAic21hbGwiLAorICAgICAgICAgICAgICAgICJsZW5ndGgiOiA0NQor
ICAgICAgICAgICAgfQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6
ICJWdWxrYW5BY3R1YWxTdWJtaXNzaW9ucyIsCisgICAgICAgICAgICAiY29tbWVudCI6ICJOdW1i
ZXIgb2YgdGltZXMgdGhlIFZ1bGthbiBiYWNrZW5kIGFjdHVhbGx5IHN1Ym1pdHRlZCBjb21tYW5k
cyIsCisgICAgICAgICAgICAidHlwZSI6ICJSdW5uaW5nR3JhcGgoNjApIiwKKyAgICAgICAgICAg
ICJjb2xvciI6IFswLCAyNTUsIDAsIDIwMF0sCisgICAgICAgICAgICAiY29vcmRzIjogWyJWdWxr
YW5BdHRlbXB0ZWRTdWJtaXNzaW9ucy5sZWZ0LmFsaWduIiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgIlZ1bGthbkF0dGVtcHRlZFN1Ym1pc3Npb25zLnRvcC5hbGlnbiJdLAorICAgICAgICAgICAg
ImJhcl93aWR0aCI6IDUsCisgICAgICAgICAgICAiaGVpZ2h0IjogMTAwLAorICAgICAgICAgICAg
Im1hdGNoX3RvIjogIlZ1bGthbkF0dGVtcHRlZFN1Ym1pc3Npb25zIiwKKyAgICAgICAgICAgICJk
ZXNjcmlwdGlvbiI6IHsKKyAgICAgICAgICAgICAgICAiY29sb3IiOiBbMCwgMjAwLCA3NSwgMjU1
XSwKKyAgICAgICAgICAgICAgICAiY29vcmRzIjogWyJWdWxrYW5BY3R1YWxTdWJtaXNzaW9ucy5s
ZWZ0LmFsaWduIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJWdWxrYW5BY3R1YWxTdWJt
aXNzaW9ucy5ib3R0b20uYWRqYWNlbnQiXSwKKyAgICAgICAgICAgICAgICAiZm9udCI6ICJzbWFs
bCIsCisgICAgICAgICAgICAgICAgImxlbmd0aCI6IDQ1CisgICAgICAgICAgICB9CiAgICAgICAg
IH0KICAgICBdCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGli
QU5HTEUvcXVlcnl1dGlscy5jcHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5H
TEUvcXVlcnl1dGlscy5jcHAKaW5kZXggMDRmMGY5Y2I3NWZmOGMxMDU3MDM5MmJlMmE0OGY5OTEy
YjU1N2UzMS4uMzBkYjA2NzFiNDlmY2U4NTBmNTJjNzU0MjI3ZWIyNmFlMzZjZWRhNCAxMDA2NDQK
LS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3F1ZXJ5dXRpbHMuY3Bw
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9xdWVyeXV0aWxzLmNw
cApAQCAtMjE0LDcgKzIxNCw3IEBAIHZvaWQgUXVlcnlUZXhMZXZlbFBhcmFtZXRlckJhc2UoY29u
c3QgVGV4dHVyZSAqdGV4dHVyZSwKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEdM
X1JFU09VUkNFX0lOSVRJQUxJWkVEX0FOR0xFOgogICAgICAgICAgICAgKnBhcmFtcyA9IENhc3RG
cm9tR0xpbnRTdGF0ZVZhbHVlPFBhcmFtVHlwZT4oCi0gICAgICAgICAgICAgICAgcG5hbWUsIHRl
eHR1cmUtPmluaXRTdGF0ZShJbWFnZUluZGV4OjpNYWtlRnJvbVRhcmdldCh0YXJnZXQsIGxldmVs
KSkgPT0KKyAgICAgICAgICAgICAgICBwbmFtZSwgdGV4dHVyZS0+aW5pdFN0YXRlKEdMX05PTkUs
IEltYWdlSW5kZXg6Ok1ha2VGcm9tVGFyZ2V0KHRhcmdldCwgbGV2ZWwpKSA9PQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgSW5pdFN0YXRlOjpJbml0aWFsaXplZCk7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgY2FzZSBHTF9URVhUVVJFX0JVRkZFUl9EQVRBX1NUT1JFX0JJTkRJTkc6
CkBAIC0xNDY5LDcgKzE0NjksNyBAQCB2b2lkIFF1ZXJ5UmVuZGVyYnVmZmVyaXYoY29uc3QgQ29u
dGV4dCAqY29udGV4dCwKICAgICAgICAgICAgICpwYXJhbXMgPSBzdGF0aWNfY2FzdDxHTGludD4o
cmVuZGVyYnVmZmVyLT5nZXRJbXBsZW1lbnRhdGlvbkNvbG9yUmVhZFR5cGUoY29udGV4dCkpOwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgR0xfUkVTT1VSQ0VfSU5JVElBTElaRURf
QU5HTEU6Ci0gICAgICAgICAgICAqcGFyYW1zID0gKHJlbmRlcmJ1ZmZlci0+aW5pdFN0YXRlKElt
YWdlSW5kZXgoKSkgPT0gSW5pdFN0YXRlOjpJbml0aWFsaXplZCk7CisgICAgICAgICAgICAqcGFy
YW1zID0gKHJlbmRlcmJ1ZmZlci0+aW5pdFN0YXRlKEdMX05PTkUsIEltYWdlSW5kZXgoKSkgPT0g
SW5pdFN0YXRlOjpJbml0aWFsaXplZCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgZGVm
YXVsdDoKICAgICAgICAgICAgIFVOUkVBQ0hBQkxFKCk7CkBAIC0zMzM2LDYgKzMzMzYsMTQgQEAg
Ym9vbCBHZXRRdWVyeVBhcmFtZXRlckluZm8oY29uc3QgU3RhdGUgJmdsU3RhdGUsCiAgICAgICAg
ICAgICAqdHlwZSAgICAgID0gR0xfRkxPQVQ7CiAgICAgICAgICAgICAqbnVtUGFyYW1zID0gODsK
ICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBjYXNlIEdMX1NIQURJTkdfUkFURV9R
Q09NOgorICAgICAgICAgICAgaWYgKCFleHRlbnNpb25zLnNoYWRpbmdSYXRlUUNPTSkKKyAgICAg
ICAgICAgIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAqdHlwZSAgICAgID0gR0xfSU5UOworICAgICAgICAgICAgKm51bVBhcmFtcyA9
IDE7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKICAgICBpZiAoY2xpZW50VHlw
ZSA9PSBFR0xfT1BFTkdMX0FQSSB8fApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5H
TEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL0ZyYW1lYnVmZmVyQXR0YWNobWVudE9iamVjdEltcGwu
aCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9GcmFtZWJ1
ZmZlckF0dGFjaG1lbnRPYmplY3RJbXBsLmgKaW5kZXggN2YxMGI0MmFkOGJiZTQxNDNkYWI1Nzk0
MjUzZTJhNTk1OThkMTIwMS4uMGI1MjIzYWU1ZGFhZTBiNWIxNTNiMThkNDM0M2U3YmZlOGYwZjBm
OSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRl
cmVyL0ZyYW1lYnVmZmVyQXR0YWNobWVudE9iamVjdEltcGwuaAorKysgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvRnJhbWVidWZmZXJBdHRhY2htZW50T2Jq
ZWN0SW1wbC5oCkBAIC0zNiw2ICszNiw3IEBAIGNsYXNzIEZyYW1lYnVmZmVyQXR0YWNobWVudE9i
amVjdEltcGwgOiBwdWJsaWMgYW5nbGU6OlN1YmplY3QKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGcmFtZWJ1ZmZlckF0dGFjaG1lbnRSZW5kZXJU
YXJnZXQgKipydE91dCk7CiAKICAgICB2aXJ0dWFsIGFuZ2xlOjpSZXN1bHQgaW5pdGlhbGl6ZUNv
bnRlbnRzKGNvbnN0IGdsOjpDb250ZXh0ICpjb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgR0xlbnVtIGJpbmRpbmcsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnbDo6SW1hZ2VJbmRleCAmaW1hZ2VJ
bmRleCk7CiB9OwogCkBAIC01Miw2ICs1Myw3IEBAIGlubGluZSBhbmdsZTo6UmVzdWx0IEZyYW1l
YnVmZmVyQXR0YWNobWVudE9iamVjdEltcGw6OmdldEF0dGFjaG1lbnRSZW5kZXJUYXJnZXQoCiAK
IGlubGluZSBhbmdsZTo6UmVzdWx0IEZyYW1lYnVmZmVyQXR0YWNobWVudE9iamVjdEltcGw6Omlu
aXRpYWxpemVDb250ZW50cygKICAgICBjb25zdCBnbDo6Q29udGV4dCAqY29udGV4dCwKKyAgICBH
TGVudW0gYmluZGluZywKICAgICBjb25zdCBnbDo6SW1hZ2VJbmRleCAmaW1hZ2VJbmRleCkKIHsK
ICAgICBVTklNUExFTUVOVEVEKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdM
RS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvU2hhZGVySW50ZXJmYWNlVmFyaWFibGVJbmZvTWFwLmNw
cCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9TaGFkZXJJ
bnRlcmZhY2VWYXJpYWJsZUluZm9NYXAuY3BwCmluZGV4IDczNTJmNGM4MDQ3YzNhMjQyODMzZTk3
MmNmZTRmMTBkZDE1NDU3ZTIuLjllNjllMmZhMzA4Njc1MjQ5YzQ4YWVlNmI0NGIwOWNkNGE1ZDJk
ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5k
ZXJlci9TaGFkZXJJbnRlcmZhY2VWYXJpYWJsZUluZm9NYXAuY3BwCisrKyBiL1NvdXJjZS9UaGly
ZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9TaGFkZXJJbnRlcmZhY2VWYXJpYWJs
ZUluZm9NYXAuY3BwCkBAIC0yMCw2MCArMjAsMTUwIEBAIFNoYWRlckludGVyZmFjZVZhcmlhYmxl
SW5mb01hcDo6flNoYWRlckludGVyZmFjZVZhcmlhYmxlSW5mb01hcCgpID0gZGVmYXVsdDsKIAog
dm9pZCBTaGFkZXJJbnRlcmZhY2VWYXJpYWJsZUluZm9NYXA6OmNsZWFyKCkKIHsKLSAgICBmb3Ig
KFZhcmlhYmxlTmFtZVRvSW5mb01hcCAmc2hhZGVyTWFwIDogbURhdGEpCisgICAgZm9yIChnbDo6
U2hhZGVyVHlwZSBzaGFkZXJUeXBlIDogZ2w6OkFsbFNoYWRlclR5cGVzKCkpCiAgICAgewotICAg
ICAgICBzaGFkZXJNYXAuY2xlYXIoKTsKKyAgICAgICAgZm9yIChTaGFkZXJWYXJpYWJsZVR5cGUg
dmFyaWFibGVUeXBlIDogYW5nbGU6OkFsbEVudW1zPFNoYWRlclZhcmlhYmxlVHlwZT4oKSkKKyAg
ICAgICAgeworICAgICAgICAgICAgbURhdGFbc2hhZGVyVHlwZV1bdmFyaWFibGVUeXBlXS5jbGVh
cigpOworICAgICAgICAgICAgbUluZGV4ZWRSZXNvdXJjZUluZGV4TWFwW3NoYWRlclR5cGVdW3Zh
cmlhYmxlVHlwZV0uY2xlYXIoKTsKKyAgICAgICAgfQorICAgICAgICBtTmFtZVRvVHlwZUFuZElu
ZGV4TWFwW3NoYWRlclR5cGVdLmNsZWFyKCk7CiAgICAgfQogfQogCi1ib29sIFNoYWRlckludGVy
ZmFjZVZhcmlhYmxlSW5mb01hcDo6Y29udGFpbnMoZ2w6OlNoYWRlclR5cGUgc2hhZGVyVHlwZSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGQ6
OnN0cmluZyAmdmFyaWFibGVOYW1lKSBjb25zdAordm9pZCBTaGFkZXJJbnRlcmZhY2VWYXJpYWJs
ZUluZm9NYXA6OmxvYWQoCisgICAgY29uc3QgZ2w6OlNoYWRlck1hcDxWYXJpYWJsZVR5cGVUb0lu
Zm9NYXA+ICZkYXRhLAorICAgIGNvbnN0IGdsOjpTaGFkZXJNYXA8TmFtZVRvVHlwZUFuZEluZGV4
TWFwPiAmbmFtZVRvVHlwZUFuZEluZGV4TWFwLAorICAgIGNvbnN0IGdsOjpTaGFkZXJNYXA8VmFy
aWFibGVUeXBlVG9JbmRleE1hcD4gJmluZGV4ZWRSZXNvdXJjZUluZGV4TWFwKQogewotICAgIHJl
dHVybiBtRGF0YVtzaGFkZXJUeXBlXS5maW5kKHZhcmlhYmxlTmFtZSkgIT0gbURhdGFbc2hhZGVy
VHlwZV0uZW5kKCk7CisgICAgbURhdGEgICAgICAgICAgICAgICAgICAgID0gZGF0YTsKKyAgICBt
TmFtZVRvVHlwZUFuZEluZGV4TWFwICAgPSBuYW1lVG9UeXBlQW5kSW5kZXhNYXA7CisgICAgbUlu
ZGV4ZWRSZXNvdXJjZUluZGV4TWFwID0gaW5kZXhlZFJlc291cmNlSW5kZXhNYXA7CiB9CiAKLWNv
bnN0IFNoYWRlckludGVyZmFjZVZhcmlhYmxlSW5mbyAmU2hhZGVySW50ZXJmYWNlVmFyaWFibGVJ
bmZvTWFwOjpnZXQoCi0gICAgZ2w6OlNoYWRlclR5cGUgc2hhZGVyVHlwZSwKLSAgICBjb25zdCBz
dGQ6OnN0cmluZyAmdmFyaWFibGVOYW1lKSBjb25zdAordm9pZCBTaGFkZXJJbnRlcmZhY2VWYXJp
YWJsZUluZm9NYXA6OnNldEFjdGl2ZVN0YWdlcyhnbDo6U2hhZGVyVHlwZSBzaGFkZXJUeXBlLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTaGFk
ZXJWYXJpYWJsZVR5cGUgdmFyaWFibGVUeXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyAmdmFyaWFibGVOYW1l
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBn
bDo6U2hhZGVyQml0U2V0IGFjdGl2ZVN0YWdlcykKIHsKLSAgICBhdXRvIGl0ID0gbURhdGFbc2hh
ZGVyVHlwZV0uZmluZCh2YXJpYWJsZU5hbWUpOwotICAgIEFTU0VSVChpdCAhPSBtRGF0YVtzaGFk
ZXJUeXBlXS5lbmQoKSk7Ci0gICAgcmV0dXJuIGl0LT5zZWNvbmQ7CisgICAgQVNTRVJUKGhhc1Zh
cmlhYmxlKHNoYWRlclR5cGUsIHZhcmlhYmxlTmFtZSkpOworICAgIHVpbnQzMl90IGluZGV4ID0g
bU5hbWVUb1R5cGVBbmRJbmRleE1hcFtzaGFkZXJUeXBlXVt2YXJpYWJsZU5hbWVdLmluZGV4Owor
ICAgIG1EYXRhW3NoYWRlclR5cGVdW3ZhcmlhYmxlVHlwZV1baW5kZXhdLmFjdGl2ZVN0YWdlcyA9
IGFjdGl2ZVN0YWdlczsKIH0KIAotU2hhZGVySW50ZXJmYWNlVmFyaWFibGVJbmZvICZTaGFkZXJJ
bnRlcmZhY2VWYXJpYWJsZUluZm9NYXA6OmdldChnbDo6U2hhZGVyVHlwZSBzaGFkZXJUeXBlLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyAmdmFyaWFibGVOYW1lKQorU2hhZGVySW50ZXJmYWNl
VmFyaWFibGVJbmZvICZTaGFkZXJJbnRlcmZhY2VWYXJpYWJsZUluZm9NYXA6OmdldE11dGFibGUo
CisgICAgZ2w6OlNoYWRlclR5cGUgc2hhZGVyVHlwZSwKKyAgICBTaGFkZXJWYXJpYWJsZVR5cGUg
dmFyaWFibGVUeXBlLAorICAgIGNvbnN0IHN0ZDo6c3RyaW5nICZ2YXJpYWJsZU5hbWUpCiB7Ci0g
ICAgYXV0byBpdCA9IG1EYXRhW3NoYWRlclR5cGVdLmZpbmQodmFyaWFibGVOYW1lKTsKLSAgICBB
U1NFUlQoaXQgIT0gbURhdGFbc2hhZGVyVHlwZV0uZW5kKCkpOwotICAgIHJldHVybiBpdC0+c2Vj
b25kOworICAgIEFTU0VSVChoYXNWYXJpYWJsZShzaGFkZXJUeXBlLCB2YXJpYWJsZU5hbWUpKTsK
KyAgICB1aW50MzJfdCBpbmRleCA9IG1OYW1lVG9UeXBlQW5kSW5kZXhNYXBbc2hhZGVyVHlwZV1b
dmFyaWFibGVOYW1lXS5pbmRleDsKKyAgICByZXR1cm4gbURhdGFbc2hhZGVyVHlwZV1bdmFyaWFi
bGVUeXBlXVtpbmRleF07CiB9CiAKIHZvaWQgU2hhZGVySW50ZXJmYWNlVmFyaWFibGVJbmZvTWFw
OjptYXJrQXNEdXBsaWNhdGUoZ2w6OlNoYWRlclR5cGUgc2hhZGVyVHlwZSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2hhZGVyVmFyaWFibGVU
eXBlIHZhcmlhYmxlVHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgJnZhcmlhYmxlTmFtZSkKIHsKLSAgICBB
U1NFUlQoY29udGFpbnMoc2hhZGVyVHlwZSwgdmFyaWFibGVOYW1lKSk7Ci0gICAgbURhdGFbc2hh
ZGVyVHlwZV1bdmFyaWFibGVOYW1lXS5pc0R1cGxpY2F0ZSA9IHRydWU7CisgICAgQVNTRVJUKGhh
c1ZhcmlhYmxlKHNoYWRlclR5cGUsIHZhcmlhYmxlTmFtZSkpOworICAgIHVpbnQzMl90IGluZGV4
ID0gbU5hbWVUb1R5cGVBbmRJbmRleE1hcFtzaGFkZXJUeXBlXVt2YXJpYWJsZU5hbWVdLmluZGV4
OworICAgIG1EYXRhW3NoYWRlclR5cGVdW3ZhcmlhYmxlVHlwZV1baW5kZXhdLmlzRHVwbGljYXRl
ID0gdHJ1ZTsKIH0KIAogU2hhZGVySW50ZXJmYWNlVmFyaWFibGVJbmZvICZTaGFkZXJJbnRlcmZh
Y2VWYXJpYWJsZUluZm9NYXA6OmFkZChnbDo6U2hhZGVyVHlwZSBzaGFkZXJUeXBlLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBTaGFkZXJWYXJpYWJsZVR5cGUgdmFyaWFibGVUeXBlLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGQ6OnN0
cmluZyAmdmFyaWFibGVOYW1lKQogewotICAgIEFTU0VSVCghY29udGFpbnMoc2hhZGVyVHlwZSwg
dmFyaWFibGVOYW1lKSk7Ci0gICAgcmV0dXJuIG1EYXRhW3NoYWRlclR5cGVdW3ZhcmlhYmxlTmFt
ZV07CisgICAgQVNTRVJUKCFoYXNWYXJpYWJsZShzaGFkZXJUeXBlLCB2YXJpYWJsZU5hbWUpKTsK
KyAgICB1aW50MzJfdCBpbmRleCA9IHN0YXRpY19jYXN0PHVpbnQzMl90PihtRGF0YVtzaGFkZXJU
eXBlXVt2YXJpYWJsZVR5cGVdLnNpemUoKSk7CisgICAgbU5hbWVUb1R5cGVBbmRJbmRleE1hcFtz
aGFkZXJUeXBlXVt2YXJpYWJsZU5hbWVdID0ge3ZhcmlhYmxlVHlwZSwgaW5kZXh9OworICAgIG1E
YXRhW3NoYWRlclR5cGVdW3ZhcmlhYmxlVHlwZV0ucmVzaXplKGluZGV4ICsgMSk7CisgICAgcmV0
dXJuIG1EYXRhW3NoYWRlclR5cGVdW3ZhcmlhYmxlVHlwZV1baW5kZXhdOwogfQogCiBTaGFkZXJJ
bnRlcmZhY2VWYXJpYWJsZUluZm8gJlNoYWRlckludGVyZmFjZVZhcmlhYmxlSW5mb01hcDo6YWRk
T3JHZXQoCiAgICAgZ2w6OlNoYWRlclR5cGUgc2hhZGVyVHlwZSwKKyAgICBTaGFkZXJWYXJpYWJs
ZVR5cGUgdmFyaWFibGVUeXBlLAogICAgIGNvbnN0IHN0ZDo6c3RyaW5nICZ2YXJpYWJsZU5hbWUp
CiB7Ci0gICAgcmV0dXJuIG1EYXRhW3NoYWRlclR5cGVdW3ZhcmlhYmxlTmFtZV07CisgICAgaWYg
KCFoYXNWYXJpYWJsZShzaGFkZXJUeXBlLCB2YXJpYWJsZU5hbWUpKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIGFkZChzaGFkZXJUeXBlLCB2YXJpYWJsZVR5cGUsIHZhcmlhYmxlTmFtZSk7CisgICAg
fQorICAgIGVsc2UKKyAgICB7CisgICAgICAgIHVpbnQzMl90IGluZGV4ID0gbU5hbWVUb1R5cGVB
bmRJbmRleE1hcFtzaGFkZXJUeXBlXVt2YXJpYWJsZU5hbWVdLmluZGV4OworICAgICAgICByZXR1
cm4gbURhdGFbc2hhZGVyVHlwZV1bdmFyaWFibGVUeXBlXVtpbmRleF07CisgICAgfQorfQorCiti
b29sIFNoYWRlckludGVyZmFjZVZhcmlhYmxlSW5mb01hcDo6aGFzVmFyaWFibGUoZ2w6OlNoYWRl
clR5cGUgc2hhZGVyVHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyAmdmFyaWFibGVOYW1lKSBjb25zdAoreworICAg
IGF1dG8gaXRlciA9IG1OYW1lVG9UeXBlQW5kSW5kZXhNYXBbc2hhZGVyVHlwZV0uZmluZCh2YXJp
YWJsZU5hbWUpOworICAgIHJldHVybiAoaXRlciAhPSBtTmFtZVRvVHlwZUFuZEluZGV4TWFwW3No
YWRlclR5cGVdLmVuZCgpKTsKK30KKworY29uc3QgU2hhZGVySW50ZXJmYWNlVmFyaWFibGVJbmZv
ICZTaGFkZXJJbnRlcmZhY2VWYXJpYWJsZUluZm9NYXA6OmdldFZhcmlhYmxlQnlOYW1lKAorICAg
IGdsOjpTaGFkZXJUeXBlIHNoYWRlclR5cGUsCisgICAgY29uc3Qgc3RkOjpzdHJpbmcgJnZhcmlh
YmxlTmFtZSkgY29uc3QKK3sKKyAgICBhdXRvIGl0ZXIgPSBtTmFtZVRvVHlwZUFuZEluZGV4TWFw
W3NoYWRlclR5cGVdLmZpbmQodmFyaWFibGVOYW1lKTsKKyAgICBBU1NFUlQoaXRlciAhPSBtTmFt
ZVRvVHlwZUFuZEluZGV4TWFwW3NoYWRlclR5cGVdLmVuZCgpKTsKKyAgICBUeXBlQW5kSW5kZXgg
dHlwZUFuZEluZGV4ID0gaXRlci0+c2Vjb25kOworICAgIHJldHVybiBtRGF0YVtzaGFkZXJUeXBl
XVt0eXBlQW5kSW5kZXgudmFyaWFibGVUeXBlXVt0eXBlQW5kSW5kZXguaW5kZXhdOwogfQogCi1T
aGFkZXJJbnRlcmZhY2VWYXJpYWJsZUluZm9NYXA6Okl0ZXJhdG9yIFNoYWRlckludGVyZmFjZVZh
cmlhYmxlSW5mb01hcDo6Z2V0SXRlcmF0b3IoCi0gICAgZ2w6OlNoYWRlclR5cGUgc2hhZGVyVHlw
ZSkgY29uc3QKKyNpZiBBTkdMRV9FTkFCTEVfTUVUQUxfU1BJUlYKK2Jvb2wgU2hhZGVySW50ZXJm
YWNlVmFyaWFibGVJbmZvTWFwOjpoYXNUcmFuc2Zvcm1GZWVkYmFja0luZm8oZ2w6OlNoYWRlclR5
cGUgc2hhZGVyVHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgYnVmZmVySW5kZXgpIGNvbnN0CiB7Ci0gICAg
cmV0dXJuIEl0ZXJhdG9yKG1EYXRhW3NoYWRlclR5cGVdLmJlZ2luKCksIG1EYXRhW3NoYWRlclR5
cGVdLmVuZCgpKTsKKyAgICBzdGQ6OnN0cmluZyBidWZmZXJOYW1lID0gcng6OkdldFhmYkJ1ZmZl
ck5hbWUoYnVmZmVySW5kZXgpOworICAgIHJldHVybiBoYXNWYXJpYWJsZShzaGFkZXJUeXBlLCBi
dWZmZXJOYW1lKTsKIH0KKyNlbmRpZgogCit2b2lkIFNoYWRlckludGVyZmFjZVZhcmlhYmxlSW5m
b01hcDo6bWFwSW5kZXhlZFJlc291cmNlQnlOYW1lKGdsOjpTaGFkZXJUeXBlIHNoYWRlclR5cGUs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFNoYWRlclZhcmlhYmxlVHlwZSB2YXJpYWJsZVR5cGUsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IHJl
c291cmNlSW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nICZ2YXJpYWJsZU5hbWUpCit7Cisg
ICAgQVNTRVJUKGhhc1ZhcmlhYmxlKHNoYWRlclR5cGUsIHZhcmlhYmxlTmFtZSkpOworICAgIGNv
bnN0IGF1dG8gJml0ZXIgICAgICAgICAgICAgICAgID0gbU5hbWVUb1R5cGVBbmRJbmRleE1hcFtz
aGFkZXJUeXBlXS5maW5kKHZhcmlhYmxlTmFtZSk7CisgICAgY29uc3QgVHlwZUFuZEluZGV4ICZ0
eXBlQW5kSW5kZXggPSBpdGVyLT5zZWNvbmQ7CisgICAgQVNTRVJUKHR5cGVBbmRJbmRleC52YXJp
YWJsZVR5cGUgPT0gdmFyaWFibGVUeXBlKTsKKyAgICBtYXBJbmRleGVkUmVzb3VyY2Uoc2hhZGVy
VHlwZSwgdmFyaWFibGVUeXBlLCByZXNvdXJjZUluZGV4LCB0eXBlQW5kSW5kZXguaW5kZXgpOwor
fQorCit2b2lkIFNoYWRlckludGVyZmFjZVZhcmlhYmxlSW5mb01hcDo6bWFwSW5kZXhlZFJlc291
cmNlKGdsOjpTaGFkZXJUeXBlIHNoYWRlclR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNoYWRlclZhcmlhYmxlVHlwZSB2YXJpYWJs
ZVR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHVpbnQzMl90IHJlc291cmNlSW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IHZhcmlhYmxlSW5kZXgpCit7
CisgICAgbUluZGV4ZWRSZXNvdXJjZUluZGV4TWFwW3NoYWRlclR5cGVdW3ZhcmlhYmxlVHlwZV1b
cmVzb3VyY2VJbmRleF0gPSB2YXJpYWJsZUluZGV4OworfQorCitjb25zdCBTaGFkZXJJbnRlcmZh
Y2VWYXJpYWJsZUluZm9NYXA6OlZhcmlhYmxlSW5mb0FycmF5ICYKK1NoYWRlckludGVyZmFjZVZh
cmlhYmxlSW5mb01hcDo6Z2V0QXR0cmlidXRlcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1EYXRh
W2dsOjpTaGFkZXJUeXBlOjpWZXJ0ZXhdW1NoYWRlclZhcmlhYmxlVHlwZTo6QXR0cmlidXRlXTsK
K30KKworY29uc3QgZ2w6OlNoYWRlck1hcDxTaGFkZXJJbnRlcmZhY2VWYXJpYWJsZUluZm9NYXA6
OlZhcmlhYmxlVHlwZVRvSW5mb01hcD4KKyAgICAmU2hhZGVySW50ZXJmYWNlVmFyaWFibGVJbmZv
TWFwOjpnZXREYXRhKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbURhdGE7Cit9CisKK2NvbnN0IGds
OjpTaGFkZXJNYXA8U2hhZGVySW50ZXJmYWNlVmFyaWFibGVJbmZvTWFwOjpOYW1lVG9UeXBlQW5k
SW5kZXhNYXA+CisgICAgJlNoYWRlckludGVyZmFjZVZhcmlhYmxlSW5mb01hcDo6Z2V0TmFtZVRv
VHlwZUFuZEluZGV4TWFwKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbU5hbWVUb1R5cGVBbmRJbmRl
eE1hcDsKK30KKworY29uc3QgZ2w6OlNoYWRlck1hcDxTaGFkZXJJbnRlcmZhY2VWYXJpYWJsZUlu
Zm9NYXA6OlZhcmlhYmxlVHlwZVRvSW5kZXhNYXA+CisgICAgJlNoYWRlckludGVyZmFjZVZhcmlh
YmxlSW5mb01hcDo6Z2V0SW5kZXhlZFJlc291cmNlTWFwKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
bUluZGV4ZWRSZXNvdXJjZUluZGV4TWFwOworfQogfSAgLy8gbmFtZXNwYWNlIHJ4CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvU2hhZGVy
SW50ZXJmYWNlVmFyaWFibGVJbmZvTWFwLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMv
bGliQU5HTEUvcmVuZGVyZXIvU2hhZGVySW50ZXJmYWNlVmFyaWFibGVJbmZvTWFwLmgKaW5kZXgg
MDA0MDMzM2Q0ZTQ3M2Y4MjQxODBiN2JkNzMzNjY0OTE2MzE4NmQ4MC4uZjNiZjBlNmFiMjBkZTRi
MTNhYzFhNDcwNzk5MGM0YjBhMmFhN2VkNyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkv
QU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL1NoYWRlckludGVyZmFjZVZhcmlhYmxlSW5mb01h
cC5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9T
aGFkZXJJbnRlcmZhY2VWYXJpYWJsZUluZm9NYXAuaApAQCAtOSw1NiArOSwxNTkgQEAKICNpZm5k
ZWYgTElCQU5HTEVfUkVOREVSRVJfU0hBREVSSU5URVJGQUNFVkFSSUFCTEVJTkZPTUFQX0hfCiAj
ZGVmaW5lIExJQkFOR0xFX1JFTkRFUkVSX1NIQURFUklOVEVSRkFDRVZBUklBQkxFSU5GT01BUF9I
XwogCi0jaW5jbHVkZSA8ZnVuY3Rpb25hbD4KLQotI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVk
ZSAiY29tbW9uL0Zhc3RWZWN0b3IuaCIKICNpbmNsdWRlICJsaWJBTkdMRS9yZW5kZXJlci9Qcm9n
cmFtSW1wbC5oIgogI2luY2x1ZGUgImxpYkFOR0xFL3JlbmRlcmVyL2dsc2xhbmdfd3JhcHBlcl91
dGlscy5oIgogI2luY2x1ZGUgImxpYkFOR0xFL3JlbmRlcmVyL3JlbmRlcmVyX3V0aWxzLmgiCisK
KyNpbmNsdWRlIDxmdW5jdGlvbmFsPgorCisjaW5jbHVkZSA8c3RkaW8uaD4KKwogbmFtZXNwYWNl
IHJ4CiB7CiAKLS8vIFRPRE86IGh0dHA6Ly9hbmdsZWJ1Zy5jb20vNDUyNDogTmVlZCBhIGRpZmZl
cmVudCBoYXNoIGtleSB0aGFuIGEgc3RyaW5nLCBzaW5jZSB0aGF0J3Mgc2xvdyB0bwotLy8gY2Fs
Y3VsYXRlLgorZW51bSBjbGFzcyBTaGFkZXJWYXJpYWJsZVR5cGUKK3sKKyAgICBBdG9taWNDb3Vu
dGVyLAorICAgIEF0dHJpYnV0ZSwKKyAgICBEZWZhdWx0VW5pZm9ybSwKKyAgICBEcml2ZXJVbmlm
b3JtLAorICAgIEZyYW1lYnVmZmVyRmV0Y2gsCisgICAgSW1hZ2UsCisgICAgT3V0cHV0LAorICAg
IFNlY29uZGFyeU91dHB1dCwKKyAgICBTaGFkZXJTdG9yYWdlQnVmZmVyLAorICAgIFRleHR1cmUs
CisgICAgVHJhbnNmb3JtRmVlZGJhY2ssCisgICAgVW5pZm9ybUJ1ZmZlciwKKyAgICBWYXJ5aW5n
LAorICAgIEVudW1Db3VudCwKK307CisKK3N0cnVjdCBUeXBlQW5kSW5kZXgKK3sKKyAgICBTaGFk
ZXJWYXJpYWJsZVR5cGUgdmFyaWFibGVUeXBlOworICAgIHVpbnQzMl90IGluZGV4OworfTsKKwog
Y2xhc3MgU2hhZGVySW50ZXJmYWNlVmFyaWFibGVJbmZvTWFwIGZpbmFsIDogYW5nbGU6Ok5vbkNv
cHlhYmxlCiB7CiAgIHB1YmxpYzoKKyAgICB1c2luZyBWYXJpYWJsZUluZm9BcnJheSAgICAgPSBz
dGQ6OnZlY3RvcjxTaGFkZXJJbnRlcmZhY2VWYXJpYWJsZUluZm8+OworICAgIHVzaW5nIFZhcmlh
YmxlVHlwZVRvSW5mb01hcCA9IGFuZ2xlOjpQYWNrZWRFbnVtTWFwPFNoYWRlclZhcmlhYmxlVHlw
ZSwgVmFyaWFibGVJbmZvQXJyYXk+OworICAgIHVzaW5nIE5hbWVUb1R5cGVBbmRJbmRleE1hcCA9
IGFuZ2xlOjpIYXNoTWFwPHN0ZDo6c3RyaW5nLCBUeXBlQW5kSW5kZXg+OworCisgICAgc3RhdGlj
IGNvbnN0ZXhwciBzaXplX3Qga1Jlc291cmNlRmFzdE1hcE1heCA9IDMyOworICAgIHVzaW5nIFJl
c291cmNlSW5kZXhNYXAgICAgICAgICAgICAgICAgICAgICAgPSBhbmdsZTo6RmFzdE1hcDx1aW50
MzJfdCwga1Jlc291cmNlRmFzdE1hcE1heD47CisgICAgdXNpbmcgVmFyaWFibGVUeXBlVG9JbmRl
eE1hcCA9IGFuZ2xlOjpQYWNrZWRFbnVtTWFwPFNoYWRlclZhcmlhYmxlVHlwZSwgUmVzb3VyY2VJ
bmRleE1hcD47CisKICAgICBTaGFkZXJJbnRlcmZhY2VWYXJpYWJsZUluZm9NYXAoKTsKICAgICB+
U2hhZGVySW50ZXJmYWNlVmFyaWFibGVJbmZvTWFwKCk7CiAKICAgICB2b2lkIGNsZWFyKCk7Ci0g
ICAgYm9vbCBjb250YWlucyhnbDo6U2hhZGVyVHlwZSBzaGFkZXJUeXBlLCBjb25zdCBzdGQ6OnN0
cmluZyAmdmFyaWFibGVOYW1lKSBjb25zdDsKLSAgICBjb25zdCBTaGFkZXJJbnRlcmZhY2VWYXJp
YWJsZUluZm8gJmdldChnbDo6U2hhZGVyVHlwZSBzaGFkZXJUeXBlLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nICZ2YXJpYWJsZU5h
bWUpIGNvbnN0OwotICAgIFNoYWRlckludGVyZmFjZVZhcmlhYmxlSW5mbyAmZ2V0KGdsOjpTaGFk
ZXJUeXBlIHNoYWRlclR5cGUsIGNvbnN0IHN0ZDo6c3RyaW5nICZ2YXJpYWJsZU5hbWUpOwotICAg
IFNoYWRlckludGVyZmFjZVZhcmlhYmxlSW5mbyAmYWRkKGdsOjpTaGFkZXJUeXBlIHNoYWRlclR5
cGUsIGNvbnN0IHN0ZDo6c3RyaW5nICZ2YXJpYWJsZU5hbWUpOwotICAgIHZvaWQgbWFya0FzRHVw
bGljYXRlKGdsOjpTaGFkZXJUeXBlIHNoYWRlclR5cGUsIGNvbnN0IHN0ZDo6c3RyaW5nICZ2YXJp
YWJsZU5hbWUpOworICAgIHZvaWQgbG9hZChjb25zdCBnbDo6U2hhZGVyTWFwPFZhcmlhYmxlVHlw
ZVRvSW5mb01hcD4gJmRhdGEsCisgICAgICAgICAgICAgIGNvbnN0IGdsOjpTaGFkZXJNYXA8TmFt
ZVRvVHlwZUFuZEluZGV4TWFwPiAmbmFtZVRvVHlwZUFuZEluZGV4TWFwLAorICAgICAgICAgICAg
ICBjb25zdCBnbDo6U2hhZGVyTWFwPFZhcmlhYmxlVHlwZVRvSW5kZXhNYXA+ICZpbmRleGVkUmVz
b3VyY2VJbmRleE1hcCk7CisKKyAgICBTaGFkZXJJbnRlcmZhY2VWYXJpYWJsZUluZm8gJmFkZChn
bDo6U2hhZGVyVHlwZSBzaGFkZXJUeXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFNoYWRlclZhcmlhYmxlVHlwZSB2YXJpYWJsZVR5cGUsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgJnZhcmlhYmxlTmFtZSk7Cisg
ICAgdm9pZCBtYXJrQXNEdXBsaWNhdGUoZ2w6OlNoYWRlclR5cGUgc2hhZGVyVHlwZSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICBTaGFkZXJWYXJpYWJsZVR5cGUgdmFyaWFibGVUeXBlLAorICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nICZ2YXJpYWJsZU5hbWUpOwog
ICAgIFNoYWRlckludGVyZmFjZVZhcmlhYmxlSW5mbyAmYWRkT3JHZXQoZ2w6OlNoYWRlclR5cGUg
c2hhZGVyVHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNo
YWRlclZhcmlhYmxlVHlwZSB2YXJpYWJsZVR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyAmdmFyaWFibGVOYW1lKTsKLSAgICBz
aXplX3QgdmFyaWFibGVDb3VudChnbDo6U2hhZGVyVHlwZSBzaGFkZXJUeXBlKSBjb25zdCB7IHJl
dHVybiBtRGF0YVtzaGFkZXJUeXBlXS5zaXplKCk7IH0KIAotICAgIHVzaW5nIFZhcmlhYmxlTmFt
ZVRvSW5mb01hcCA9IGFuZ2xlOjpIYXNoTWFwPHN0ZDo6c3RyaW5nLCBTaGFkZXJJbnRlcmZhY2VW
YXJpYWJsZUluZm8+OworICAgIHZvaWQgc2V0QWN0aXZlU3RhZ2VzKGdsOjpTaGFkZXJUeXBlIHNo
YWRlclR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgU2hhZGVyVmFyaWFibGVUeXBlIHZh
cmlhYmxlVHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyAm
dmFyaWFibGVOYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgIGdsOjpTaGFkZXJCaXRTZXQg
YWN0aXZlU3RhZ2VzKTsKKyAgICBTaGFkZXJJbnRlcmZhY2VWYXJpYWJsZUluZm8gJmdldE11dGFi
bGUoZ2w6OlNoYWRlclR5cGUgc2hhZGVyVHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgU2hhZGVyVmFyaWFibGVUeXBlIHZhcmlhYmxlVHlwZSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcg
JnZhcmlhYmxlTmFtZSk7CiAKLSAgICBjbGFzcyBJdGVyYXRvciBmaW5hbAotICAgIHsKLSAgICAg
IHB1YmxpYzoKLSAgICAgICAgSXRlcmF0b3IoVmFyaWFibGVOYW1lVG9JbmZvTWFwOjpjb25zdF9p
dGVyYXRvciBiZWdpbkl0LAotICAgICAgICAgICAgICAgICBWYXJpYWJsZU5hbWVUb0luZm9NYXA6
OmNvbnN0X2l0ZXJhdG9yIGVuZEl0KQotICAgICAgICAgICAgOiBtQmVnaW5JdChiZWdpbkl0KSwg
bUVuZEl0KGVuZEl0KQotICAgICAgICB7fQotICAgICAgICBWYXJpYWJsZU5hbWVUb0luZm9NYXA6
OmNvbnN0X2l0ZXJhdG9yIGJlZ2luKCkgeyByZXR1cm4gbUJlZ2luSXQ7IH0KLSAgICAgICAgVmFy
aWFibGVOYW1lVG9JbmZvTWFwOjpjb25zdF9pdGVyYXRvciBlbmQoKSB7IHJldHVybiBtRW5kSXQ7
IH0KKyAgICBjb25zdCBTaGFkZXJJbnRlcmZhY2VWYXJpYWJsZUluZm8gJmdldERlZmF1bHRVbmlm
b3JtSW5mbyhnbDo6U2hhZGVyVHlwZSBzaGFkZXJUeXBlKSBjb25zdDsKKyAgICBjb25zdCBTaGFk
ZXJJbnRlcmZhY2VWYXJpYWJsZUluZm8gJmdldEluZGV4ZWRWYXJpYWJsZUluZm8oZ2w6OlNoYWRl
clR5cGUgc2hhZGVyVHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgU2hhZGVyVmFyaWFibGVUeXBlIHZhcmlhYmxlVHlwZSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdWludDMyX3QgdmFyaWFibGVJbmRleCkgY29uc3Q7CisgICAgYm9vbCBoYXNBdG9taWND
b3VudGVySW5mbyhnbDo6U2hhZGVyVHlwZSBzaGFkZXJUeXBlKSBjb25zdDsKKyAgICBjb25zdCBT
aGFkZXJJbnRlcmZhY2VWYXJpYWJsZUluZm8gJmdldEF0b21pY0NvdW50ZXJJbmZvKGdsOjpTaGFk
ZXJUeXBlIHNoYWRlclR5cGUpIGNvbnN0OworICAgIGNvbnN0IFNoYWRlckludGVyZmFjZVZhcmlh
YmxlSW5mbyAmZ2V0RnJhbWVidWZmZXJGZXRjaEluZm8oZ2w6OlNoYWRlclR5cGUgc2hhZGVyVHlw
ZSkgY29uc3Q7CisjaWYgQU5HTEVfRU5BQkxFX01FVEFMX1NQSVJWCisgICAgYm9vbCBoYXNUcmFu
c2Zvcm1GZWVkYmFja0luZm8oZ2w6OlNoYWRlclR5cGUgc2hhZGVyVHlwZSwgdWludDMyX3QgYnVm
ZmVySW5kZXgpIGNvbnN0OworI2VuZGlmCisgICAgY29uc3QgU2hhZGVySW50ZXJmYWNlVmFyaWFi
bGVJbmZvICZnZXRUcmFuc2Zvcm1GZWVkYmFja0luZm8oZ2w6OlNoYWRlclR5cGUgc2hhZGVyVHlw
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB1aW50MzJfdCBidWZmZXJJbmRleCkgY29uc3Q7CiAKLSAgICAgIHByaXZhdGU6
Ci0gICAgICAgIFZhcmlhYmxlTmFtZVRvSW5mb01hcDo6Y29uc3RfaXRlcmF0b3IgbUJlZ2luSXQ7
Ci0gICAgICAgIFZhcmlhYmxlTmFtZVRvSW5mb01hcDo6Y29uc3RfaXRlcmF0b3IgbUVuZEl0Owot
ICAgIH07CisgICAgYm9vbCBoYXNWYXJpYWJsZShnbDo6U2hhZGVyVHlwZSBzaGFkZXJUeXBlLCBj
b25zdCBzdGQ6OnN0cmluZyAmdmFyaWFibGVOYW1lKSBjb25zdDsKKyAgICBjb25zdCBTaGFkZXJJ
bnRlcmZhY2VWYXJpYWJsZUluZm8gJmdldFZhcmlhYmxlQnlOYW1lKGdsOjpTaGFkZXJUeXBlIHNo
YWRlclR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyAmdmFyaWFibGVOYW1lKSBjb25zdDsKKyAgICB2
b2lkIG1hcEluZGV4ZWRSZXNvdXJjZUJ5TmFtZShnbDo6U2hhZGVyVHlwZSBzaGFkZXJUeXBlLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNoYWRlclZhcmlhYmxlVHlwZSB2YXJp
YWJsZVR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgcmVz
b3VyY2VJbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGQ6
OnN0cmluZyAmdmFyaWFibGVOYW1lKTsKKyAgICB2b2lkIG1hcEluZGV4ZWRSZXNvdXJjZShnbDo6
U2hhZGVyVHlwZSBzaGFkZXJUeXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNoYWRl
clZhcmlhYmxlVHlwZSB2YXJpYWJsZVR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dWludDMyX3QgcmVzb3VyY2VJbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50
MzJfdCB2YXJpYWJsZUluZGV4KTsKIAotICAgIEl0ZXJhdG9yIGdldEl0ZXJhdG9yKGdsOjpTaGFk
ZXJUeXBlIHNoYWRlclR5cGUpIGNvbnN0OworICAgIGNvbnN0IFZhcmlhYmxlSW5mb0FycmF5ICZn
ZXRBdHRyaWJ1dGVzKCkgY29uc3Q7CisgICAgY29uc3QgZ2w6OlNoYWRlck1hcDxWYXJpYWJsZVR5
cGVUb0luZm9NYXA+ICZnZXREYXRhKCkgY29uc3Q7CisgICAgY29uc3QgZ2w6OlNoYWRlck1hcDxO
YW1lVG9UeXBlQW5kSW5kZXhNYXA+ICZnZXROYW1lVG9UeXBlQW5kSW5kZXhNYXAoKSBjb25zdDsK
KyAgICBjb25zdCBnbDo6U2hhZGVyTWFwPFZhcmlhYmxlVHlwZVRvSW5kZXhNYXA+ICZnZXRJbmRl
eGVkUmVzb3VyY2VNYXAoKSBjb25zdDsKIAogICBwcml2YXRlOgotICAgIGdsOjpTaGFkZXJNYXA8
VmFyaWFibGVOYW1lVG9JbmZvTWFwPiBtRGF0YTsKKyAgICBnbDo6U2hhZGVyTWFwPFZhcmlhYmxl
VHlwZVRvSW5mb01hcD4gbURhdGE7CisgICAgZ2w6OlNoYWRlck1hcDxOYW1lVG9UeXBlQW5kSW5k
ZXhNYXA+IG1OYW1lVG9UeXBlQW5kSW5kZXhNYXA7CisgICAgZ2w6OlNoYWRlck1hcDxWYXJpYWJs
ZVR5cGVUb0luZGV4TWFwPiBtSW5kZXhlZFJlc291cmNlSW5kZXhNYXA7CiB9OwogCitBTkdMRV9J
TkxJTkUgY29uc3QgU2hhZGVySW50ZXJmYWNlVmFyaWFibGVJbmZvICYKK1NoYWRlckludGVyZmFj
ZVZhcmlhYmxlSW5mb01hcDo6Z2V0RGVmYXVsdFVuaWZvcm1JbmZvKGdsOjpTaGFkZXJUeXBlIHNo
YWRlclR5cGUpIGNvbnN0Cit7CisgICAgQVNTRVJUKG1EYXRhW3NoYWRlclR5cGVdW1NoYWRlclZh
cmlhYmxlVHlwZTo6RGVmYXVsdFVuaWZvcm1dLnNpemUoKSA9PSAxKTsKKyAgICByZXR1cm4gbURh
dGFbc2hhZGVyVHlwZV1bU2hhZGVyVmFyaWFibGVUeXBlOjpEZWZhdWx0VW5pZm9ybV1bMF07Cit9
CisKK0FOR0xFX0lOTElORSBjb25zdCBTaGFkZXJJbnRlcmZhY2VWYXJpYWJsZUluZm8gJgorU2hh
ZGVySW50ZXJmYWNlVmFyaWFibGVJbmZvTWFwOjpnZXRJbmRleGVkVmFyaWFibGVJbmZvKGdsOjpT
aGFkZXJUeXBlIHNoYWRlclR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgU2hhZGVyVmFyaWFibGVUeXBlIHZhcmlhYmxlVHlwZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50
MzJfdCByZXNvdXJjZUluZGV4KSBjb25zdAoreworICAgIEFTU0VSVChyZXNvdXJjZUluZGV4IDwg
bUluZGV4ZWRSZXNvdXJjZUluZGV4TWFwW3NoYWRlclR5cGVdW3ZhcmlhYmxlVHlwZV0uc2l6ZSgp
KTsKKyAgICB1aW50MzJfdCB2YXJpYWJsZUluZGV4ID0gbUluZGV4ZWRSZXNvdXJjZUluZGV4TWFw
W3NoYWRlclR5cGVdW3ZhcmlhYmxlVHlwZV1bcmVzb3VyY2VJbmRleF07CisgICAgQVNTRVJUKHZh
cmlhYmxlSW5kZXggPCBtRGF0YVtzaGFkZXJUeXBlXVt2YXJpYWJsZVR5cGVdLnNpemUoKSk7Cisg
ICAgcmV0dXJuIG1EYXRhW3NoYWRlclR5cGVdW3ZhcmlhYmxlVHlwZV1bdmFyaWFibGVJbmRleF07
Cit9CisKK0FOR0xFX0lOTElORSBib29sIFNoYWRlckludGVyZmFjZVZhcmlhYmxlSW5mb01hcDo6
aGFzQXRvbWljQ291bnRlckluZm8oCisgICAgZ2w6OlNoYWRlclR5cGUgc2hhZGVyVHlwZSkgY29u
c3QKK3sKKyAgICByZXR1cm4gIW1EYXRhW3NoYWRlclR5cGVdW1NoYWRlclZhcmlhYmxlVHlwZTo6
QXRvbWljQ291bnRlcl0uZW1wdHkoKTsKK30KKworQU5HTEVfSU5MSU5FIGNvbnN0IFNoYWRlcklu
dGVyZmFjZVZhcmlhYmxlSW5mbyAmCitTaGFkZXJJbnRlcmZhY2VWYXJpYWJsZUluZm9NYXA6Omdl
dEF0b21pY0NvdW50ZXJJbmZvKGdsOjpTaGFkZXJUeXBlIHNoYWRlclR5cGUpIGNvbnN0Cit7Cisg
ICAgQVNTRVJUKG1EYXRhW3NoYWRlclR5cGVdW1NoYWRlclZhcmlhYmxlVHlwZTo6QXRvbWljQ291
bnRlcl0uc2l6ZSgpID09IDEpOworICAgIHJldHVybiBtRGF0YVtzaGFkZXJUeXBlXVtTaGFkZXJW
YXJpYWJsZVR5cGU6OkF0b21pY0NvdW50ZXJdWzBdOworfQorCitBTkdMRV9JTkxJTkUgY29uc3Qg
U2hhZGVySW50ZXJmYWNlVmFyaWFibGVJbmZvICYKK1NoYWRlckludGVyZmFjZVZhcmlhYmxlSW5m
b01hcDo6Z2V0RnJhbWVidWZmZXJGZXRjaEluZm8oZ2w6OlNoYWRlclR5cGUgc2hhZGVyVHlwZSkg
Y29uc3QKK3sKKyAgICBBU1NFUlQoIW1EYXRhW3NoYWRlclR5cGVdW1NoYWRlclZhcmlhYmxlVHlw
ZTo6RnJhbWVidWZmZXJGZXRjaF0uZW1wdHkoKSk7CisgICAgcmV0dXJuIG1EYXRhW3NoYWRlclR5
cGVdW1NoYWRlclZhcmlhYmxlVHlwZTo6RnJhbWVidWZmZXJGZXRjaF1bMF07Cit9CisKK0FOR0xF
X0lOTElORSBjb25zdCBTaGFkZXJJbnRlcmZhY2VWYXJpYWJsZUluZm8gJgorU2hhZGVySW50ZXJm
YWNlVmFyaWFibGVJbmZvTWFwOjpnZXRUcmFuc2Zvcm1GZWVkYmFja0luZm8oZ2w6OlNoYWRlclR5
cGUgc2hhZGVyVHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHVpbnQzMl90IGJ1ZmZlckluZGV4KSBjb25zdAoreworICAgIEFTU0VS
VChidWZmZXJJbmRleCA8IG1EYXRhW3NoYWRlclR5cGVdW1NoYWRlclZhcmlhYmxlVHlwZTo6VHJh
bnNmb3JtRmVlZGJhY2tdLnNpemUoKSk7CisgICAgcmV0dXJuIG1EYXRhW3NoYWRlclR5cGVdW1No
YWRlclZhcmlhYmxlVHlwZTo6VHJhbnNmb3JtRmVlZGJhY2tdW2J1ZmZlckluZGV4XTsKK30KIH0g
IC8vIG5hbWVzcGFjZSByeAogI2VuZGlmICAvLyBMSUJBTkdMRV9SRU5ERVJFUl9TSEFERVJJTlRF
UkZBQ0VWQVJJQUJMRUlORk9NQVBfSF8KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FO
R0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9kM2QvRHluYW1pY0hMU0wuY3BwIGIvU291cmNlL1Ro
aXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL2QzZC9EeW5hbWljSExTTC5jcHAK
aW5kZXggOTZhZWI3NmRiY2M0NWZkOTdjY2QzZTViZTNlY2FlZTk5ZTkxODBkYS4uMzI1N2MwMDQ1
N2YzM2Q0MDNiMDA0ODU3NzYxMGRkMGYyOGI0YjUzYyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJk
UGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL2QzZC9EeW5hbWljSExTTC5jcHAKKysr
IGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL2QzZC9EeW5h
bWljSExTTC5jcHAKQEAgLTI4LDYgKzI4LDEwIEBAIG5hbWVzcGFjZSByeAogbmFtZXNwYWNlCiB7
CiAKKy8vIGtTaGFkZXJTdG9yYWdlRGVjbGFyYXRpb25TdHJpbmcgbXVzdCBiZSB0aGUgc2FtZSBh
cyBvdXRwdXRITFNMLgorY29uc3RleHByIGNvbnN0IGNoYXIga1NoYWRlclN0b3JhZ2VEZWNsYXJh
dGlvblN0cmluZ1tdID0KKyAgICAiLy8gQEAgU0hBREVSIFNUT1JBR0UgREVDTEFSQVRJT04gU1RS
SU5HIEBAIjsKKwogY29uc3QgY2hhciAqSExTTENvbXBvbmVudFR5cGVTdHJpbmcoR0xlbnVtIGNv
bXBvbmVudFR5cGUpCiB7CiAgICAgc3dpdGNoIChjb21wb25lbnRUeXBlKQpAQCAtMTI1LDYgKzEy
OSwzOSBAQCB2b2lkIFdyaXRlQXJyYXlTdHJpbmcoc3RkOjpvc3RyaW5nc3RyZWFtICZzdHJzdHIs
IHVuc2lnbmVkIGludCBpKQogICAgIHN0cnN0ciA8PCAiXSI7CiB9CiAKK2Jvb2wgUmVwbGFjZVNo
YWRlclN0b3JhZ2VEZWNsYXJhdGlvbihjb25zdCBzdGQ6OnZlY3RvcjxTaGFkZXJTdG9yYWdlQmxv
Y2s+ICZzaGFkZXJTdG9yYWdlQmxvY2tzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHN0ZDo6c3RyaW5nICpobHNsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNpemVfdCBiYXNlVUFWUmVnaXN0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZ2w6OlNoYWRlclR5cGUgc2hhZGVyVHlwZSkKK3sKKyAgICBzdGQ6OnN0cmlu
ZyBzc2JvSGVhZGVyOworICAgIHN0ZDo6b3N0cmluZ3N0cmVhbSBvdXQoc3Nib0hlYWRlcik7Cisg
ICAgZm9yIChjb25zdCBTaGFkZXJTdG9yYWdlQmxvY2sgJnNzYm8gOiBzaGFkZXJTdG9yYWdlQmxv
Y2tzKQorICAgIHsKKyAgICAgICAgc2l6ZV90IHVhdlJlZ2lzdGVyID0gYmFzZVVBVlJlZ2lzdGVy
ICsgc3Niby5yZWdpc3RlckluZGV4OworICAgICAgICBzdGQ6OnN0cmluZyBuYW1lICAgPSBzc2Jv
Lm5hbWU7CisgICAgICAgIGlmIChzc2JvLmFycmF5U2l6ZSA+IDApCisgICAgICAgIHsKKyAgICAg
ICAgICAgIGZvciAodW5zaWduZWQgaW50IGFycmF5SW5kZXggPSAwOyBhcnJheUluZGV4IDwgc3Ni
by5hcnJheVNpemU7IGFycmF5SW5kZXgrKykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg
ICBvdXQgPDwgIlJXQnl0ZUFkZHJlc3NCdWZmZXIgIgorICAgICAgICAgICAgICAgICAgICA8PCAi
ZHhfIiA8PCBuYW1lIDw8ICJfIiA8PCBhcnJheUluZGV4IDw8ICI6IHJlZ2lzdGVyKHUiCisgICAg
ICAgICAgICAgICAgICAgIDw8IHVhdlJlZ2lzdGVyICsgYXJyYXlJbmRleCA8PCAiKTtcbiI7Cisg
ICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZQorICAgICAgICB7CisgICAgICAg
ICAgICBvdXQgPDwgIlJXQnl0ZUFkZHJlc3NCdWZmZXIgIgorICAgICAgICAgICAgICAgIDw8ICJf
IiA8PCBuYW1lIDw8ICI6IHJlZ2lzdGVyKHUiIDw8IHVhdlJlZ2lzdGVyIDw8ICIpO1xuIjsKKyAg
ICAgICAgfQorICAgIH0KKyAgICBpZiAob3V0LnN0cigpLmVtcHR5KCkpCisgICAgeworICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgcmV0dXJuIGFuZ2xlOjpSZXBsYWNlU3Vic3RyaW5n
KGhsc2wsIGtTaGFkZXJTdG9yYWdlRGVjbGFyYXRpb25TdHJpbmcsIG91dC5zdHIoKSk7Cit9CisK
IGNvbnN0ZXhwciBjb25zdCBjaGFyICpWRVJURVhfQVRUUklCVVRFX1NUVUJfU1RSSU5HICAgICAg
PSAiQEAgVkVSVEVYIEFUVFJJQlVURVMgQEAiOwogY29uc3RleHByIGNvbnN0IGNoYXIgKlZFUlRF
WF9PVVRQVVRfU1RVQl9TVFJJTkcgICAgICAgICA9ICJAQCBWRVJURVggT1VUUFVUIEBAIjsKIGNv
bnN0ZXhwciBjb25zdCBjaGFyICpQSVhFTF9PVVRQVVRfU1RVQl9TVFJJTkcgICAgICAgICAgPSAi
QEAgUElYRUwgT1VUUFVUIEBAIjsKQEAgLTE0NCw3ICsxODEsOSBAQCBEeW5hbWljSExTTDo6RHlu
YW1pY0hMU0woUmVuZGVyZXJEM0QgKmNvbnN0IHJlbmRlcmVyKSA6IG1SZW5kZXJlcihyZW5kZXJl
cikge30KIHN0ZDo6c3RyaW5nIER5bmFtaWNITFNMOjpnZW5lcmF0ZVZlcnRleFNoYWRlckZvcklu
cHV0TGF5b3V0KAogICAgIGNvbnN0IHN0ZDo6c3RyaW5nICZzb3VyY2VTaGFkZXIsCiAgICAgY29u
c3QgSW5wdXRMYXlvdXQgJmlucHV0TGF5b3V0LAotICAgIGNvbnN0IHN0ZDo6dmVjdG9yPHNoOjpT
aGFkZXJWYXJpYWJsZT4gJnNoYWRlckF0dHJpYnV0ZXMpIGNvbnN0CisgICAgY29uc3Qgc3RkOjp2
ZWN0b3I8c2g6OlNoYWRlclZhcmlhYmxlPiAmc2hhZGVyQXR0cmlidXRlcywKKyAgICBjb25zdCBz
dGQ6OnZlY3RvcjxyeDo6U2hhZGVyU3RvcmFnZUJsb2NrPiAmc2hhZGVyU3RvcmFnZUJsb2NrcywK
KyAgICBzaXplX3QgYmFzZVVBVlJlZ2lzdGVyKSBjb25zdAogewogICAgIHN0ZDo6b3N0cmluZ3N0
cmVhbSBzdHJ1Y3RTdHJlYW07CiAgICAgc3RkOjpvc3RyaW5nc3RyZWFtIGluaXRTdHJlYW07CkBA
IC0yNjksNiArMzA4LDEwIEBAIHN0ZDo6c3RyaW5nIER5bmFtaWNITFNMOjpnZW5lcmF0ZVZlcnRl
eFNoYWRlckZvcklucHV0TGF5b3V0KAogICAgICAgICBhbmdsZTo6UmVwbGFjZVN1YnN0cmluZygm
dmVydGV4SExTTCwgVkVSVEVYX0FUVFJJQlVURV9TVFVCX1NUUklORywgc3RydWN0U3RyZWFtLnN0
cigpKTsKICAgICBBU1NFUlQoc3VjY2Vzcyk7CiAKKyAgICBzdWNjZXNzID0gUmVwbGFjZVNoYWRl
clN0b3JhZ2VEZWNsYXJhdGlvbihzaGFkZXJTdG9yYWdlQmxvY2tzLCAmdmVydGV4SExTTCwgYmFz
ZVVBVlJlZ2lzdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGdsOjpTaGFkZXJUeXBlOjpWZXJ0ZXgpOworICAgIEFTU0VSVChzdWNjZXNzKTsKKwogICAg
IHJldHVybiB2ZXJ0ZXhITFNMOwogfQogCkBAIC0yNzYsNyArMzE5LDkgQEAgc3RkOjpzdHJpbmcg
RHluYW1pY0hMU0w6OmdlbmVyYXRlUGl4ZWxTaGFkZXJGb3JPdXRwdXRTaWduYXR1cmUoCiAgICAg
Y29uc3Qgc3RkOjpzdHJpbmcgJnNvdXJjZVNoYWRlciwKICAgICBjb25zdCBzdGQ6OnZlY3RvcjxQ
aXhlbFNoYWRlck91dHB1dFZhcmlhYmxlPiAmb3V0cHV0VmFyaWFibGVzLAogICAgIGJvb2wgdXNl
c0ZyYWdEZXB0aCwKLSAgICBjb25zdCBzdGQ6OnZlY3RvcjxHTGVudW0+ICZvdXRwdXRMYXlvdXQp
IGNvbnN0CisgICAgY29uc3Qgc3RkOjp2ZWN0b3I8R0xlbnVtPiAmb3V0cHV0TGF5b3V0LAorICAg
IGNvbnN0IHN0ZDo6dmVjdG9yPFNoYWRlclN0b3JhZ2VCbG9jaz4gJnNoYWRlclN0b3JhZ2VCbG9j
a3MsCisgICAgc2l6ZV90IGJhc2VVQVZSZWdpc3RlcikgY29uc3QKIHsKICAgICBjb25zdCBpbnQg
c2hhZGVyTW9kZWwgICAgICA9IG1SZW5kZXJlci0+Z2V0TWFqb3JTaGFkZXJNb2RlbCgpOwogICAg
IHN0ZDo6c3RyaW5nIHRhcmdldFNlbWFudGljID0gKHNoYWRlck1vZGVsID49IDQpID8gIlNWX1RB
UkdFVCIgOiAiQ09MT1IiOwpAQCAtMzUwLDYgKzM5NSwxMCBAQCBzdGQ6OnN0cmluZyBEeW5hbWlj
SExTTDo6Z2VuZXJhdGVQaXhlbFNoYWRlckZvck91dHB1dFNpZ25hdHVyZSgKICAgICAgICAgYW5n
bGU6OlJlcGxhY2VTdWJzdHJpbmcoJnBpeGVsSExTTCwgUElYRUxfT1VUUFVUX1NUVUJfU1RSSU5H
LCBkZWNsYXJhdGlvblN0cmVhbS5zdHIoKSk7CiAgICAgQVNTRVJUKHN1Y2Nlc3MpOwogCisgICAg
c3VjY2VzcyA9IFJlcGxhY2VTaGFkZXJTdG9yYWdlRGVjbGFyYXRpb24oc2hhZGVyU3RvcmFnZUJs
b2NrcywgJnBpeGVsSExTTCwgYmFzZVVBVlJlZ2lzdGVyLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGdsOjpTaGFkZXJUeXBlOjpGcmFnbWVudCk7CisgICAg
QVNTRVJUKHN1Y2Nlc3MpOworCiAgICAgcmV0dXJuIHBpeGVsSExTTDsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL2QzZC9EeW5h
bWljSExTTC5oIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVy
L2QzZC9EeW5hbWljSExTTC5oCmluZGV4IDM3ZWNlNmYxYzE0ZGFhZjExYmMwM2VmNDMyYjdjODY3
ZDM3MjBhY2UuLjYzYjU3MmUyN2MxODFhMmMyMTY3ZmI0MDE2NDUwNDllMDZkYTI5MGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9kM2Qv
RHluYW1pY0hMU0wuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUv
cmVuZGVyZXIvZDNkL0R5bmFtaWNITFNMLmgKQEAgLTM4LDYgKzM4LDcgQEAgbmFtZXNwYWNlIHJ4
CiB7CiBjbGFzcyBQcm9ncmFtRDNETWV0YWRhdGE7CiBjbGFzcyBTaGFkZXJEM0Q7CitzdHJ1Y3Qg
U2hhZGVyU3RvcmFnZUJsb2NrOwogCiAvLyBUaGlzIGNsYXNzIG5lZWRzIHRvIG1hdGNoIE91dHB1
dEhMU0w6OmRlY29yYXRlCiBjbGFzcyBEZWNvcmF0ZVZhcmlhYmxlIGZpbmFsIDogYW5nbGU6Ok5v
bkNvcHlhYmxlCkBAIC0xNDgsMTIgKzE0OSwxNiBAQCBjbGFzcyBEeW5hbWljSExTTCA6IGFuZ2xl
OjpOb25Db3B5YWJsZQogICAgIHN0ZDo6c3RyaW5nIGdlbmVyYXRlVmVydGV4U2hhZGVyRm9ySW5w
dXRMYXlvdXQoCiAgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nICZzb3VyY2VTaGFkZXIsCiAgICAg
ICAgIGNvbnN0IGdsOjpJbnB1dExheW91dCAmaW5wdXRMYXlvdXQsCi0gICAgICAgIGNvbnN0IHN0
ZDo6dmVjdG9yPHNoOjpTaGFkZXJWYXJpYWJsZT4gJnNoYWRlckF0dHJpYnV0ZXMpIGNvbnN0Owor
ICAgICAgICBjb25zdCBzdGQ6OnZlY3RvcjxzaDo6U2hhZGVyVmFyaWFibGU+ICZzaGFkZXJBdHRy
aWJ1dGVzLAorICAgICAgICBjb25zdCBzdGQ6OnZlY3RvcjxyeDo6U2hhZGVyU3RvcmFnZUJsb2Nr
PiAmc2hhZGVyU3RvcmFnZUJsb2NrcywKKyAgICAgICAgc2l6ZV90IGJhc2VVQVZSZWdpc3Rlcikg
Y29uc3Q7CiAgICAgc3RkOjpzdHJpbmcgZ2VuZXJhdGVQaXhlbFNoYWRlckZvck91dHB1dFNpZ25h
dHVyZSgKICAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgJnNvdXJjZVNoYWRlciwKICAgICAgICAg
Y29uc3Qgc3RkOjp2ZWN0b3I8UGl4ZWxTaGFkZXJPdXRwdXRWYXJpYWJsZT4gJm91dHB1dFZhcmlh
YmxlcywKICAgICAgICAgYm9vbCB1c2VzRnJhZ0RlcHRoLAotICAgICAgICBjb25zdCBzdGQ6OnZl
Y3RvcjxHTGVudW0+ICZvdXRwdXRMYXlvdXQpIGNvbnN0OworICAgICAgICBjb25zdCBzdGQ6OnZl
Y3RvcjxHTGVudW0+ICZvdXRwdXRMYXlvdXQsCisgICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPHJ4
OjpTaGFkZXJTdG9yYWdlQmxvY2s+ICZzaGFkZXJTdG9yYWdlQmxvY2tzLAorICAgICAgICBzaXpl
X3QgYmFzZVVBVlJlZ2lzdGVyKSBjb25zdDsKICAgICBzdGQ6OnN0cmluZyBnZW5lcmF0ZVNoYWRl
ckZvckltYWdlMkRCaW5kU2lnbmF0dXJlKAogICAgICAgICBjb25zdCBkM2Q6OkNvbnRleHQgKmNv
bnRleHQsCiAgICAgICAgIFByb2dyYW1EM0QgJnByb2dyYW1EM0QsCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvZDNkL0R5bmFtaWNJbWFn
ZTJESExTTC5jcHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVy
ZXIvZDNkL0R5bmFtaWNJbWFnZTJESExTTC5jcHAKaW5kZXggOTE2Yjg1Njk5MjA3OGQ3ZGE4N2Zh
NTdlODJjMTE4N2RjZWY4ZDQyMC4uNmYzYzE5MmJlZGQxOTFmZmVmY2JmNzU5YzJkMDEyZjBmMzJh
OTQ1YyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3Jl
bmRlcmVyL2QzZC9EeW5hbWljSW1hZ2UyREhMU0wuY3BwCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9kM2QvRHluYW1pY0ltYWdlMkRITFNMLmNwcApA
QCAtMzkwLDggKzM5MCw3IEBAIHZvaWQgT3V0cHV0SW1hZ2UyRFNpemVGdW5jdGlvbihzdGQ6Om9z
dHJpbmdzdHJlYW0gJm91dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25l
ZCBpbnQgdGV4dHVyZTNEQ291bnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5z
aWduZWQgaW50IHRleHR1cmUyREFycmF5Q291bnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgJm9mZnNldFN0ciwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyAmZGVjbGFyYXRpb25TdHIsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYm9vbCBnZXREaW1lbnNpb25zSWdub3Jlc0Jhc2VMZXZlbCkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyAmZGVjbGFy
YXRpb25TdHIpCiB7CiAgICAgb3V0IDw8IGdldEltYWdlMkRHcm91cFJldHVyblR5cGUodGV4dHVy
ZUdyb3VwLCBJTUFHRTJEU0laRSkgPDwgIiAiCiAgICAgICAgIDw8IEltYWdlMkRITFNMR3JvdXBG
dW5jdGlvbk5hbWUodGV4dHVyZUdyb3VwLCBJTUFHRTJEU0laRSkgPDwgIigiOwpAQCAtNDA1LDE3
ICs0MDQsNyBAQCB2b2lkIE91dHB1dEltYWdlMkRTaXplRnVuY3Rpb24oc3RkOjpvc3RyaW5nc3Ry
ZWFtICZvdXQsCiAgICAgICAgIGlmICh0ZXh0dXJlMkRDb3VudCA9PSB0b3RhbENvdW50KQogICAg
ICAgICB7CiAgICAgICAgICAgICBvdXQgPDwgIiAgICBjb25zdCB1aW50IGluZGV4ID0gaW1hZ2VJ
bmRleCAtICAiIDw8IG9mZnNldFN0ciA8PCAiMkQ7XG4iOwotICAgICAgICAgICAgaWYgKGdldERp
bWVuc2lvbnNJZ25vcmVzQmFzZUxldmVsKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAg
IG91dCA8PCAiICAgIHVpbnQgbGV2ZWxDb3VudDtcbiI7Ci0gICAgICAgICAgICAgICAgb3V0IDw8
ICIgICAgY29uc3QgdWludCBsZXZlbCA9ICIgPDwgZ2V0SW1hZ2VNZXRhZGF0YSh0ZXh0dXJlR3Jv
dXApIDw8ICIubGV2ZWw7XG4iOwotICAgICAgICAgICAgICAgIG91dCA8PCAiICAgICIgPDwgZGVj
bGFyYXRpb25TdHIKLSAgICAgICAgICAgICAgICAgICAgPDwgIjJEW2luZGV4XS5HZXREaW1lbnNp
b25zKGxldmVsLCB3aWR0aCwgaGVpZ2h0LCBsZXZlbENvdW50KTtcbiI7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgb3V0IDw8
ICIgICAgIiA8PCBkZWNsYXJhdGlvblN0ciA8PCAiMkRbaW5kZXhdLkdldERpbWVuc2lvbnMod2lk
dGgsIGhlaWdodCk7XG4iOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgb3V0IDw8ICIgICAg
IiA8PCBkZWNsYXJhdGlvblN0ciA8PCAiMkRbaW5kZXhdLkdldERpbWVuc2lvbnMod2lkdGgsIGhl
aWdodCk7XG4iOwogICAgICAgICB9CiAgICAgICAgIGVsc2UKICAgICAgICAgewpAQCAtODI1LDE1
ICs4MTQsMTMgQEAgdm9pZCBPdXRwdXRITFNMSW1hZ2UyRFVuaWZvcm1Hcm91cChQcm9ncmFtRDNE
ICZwcm9ncmFtRDNELAogICAgICAgICBvdXQgPDwgIn07XG4iOwogICAgIH0KIAotICAgIGdsOjpT
aGFkZXIgKnNoYWRlckdMICAgICAgICAgICAgICAgICAgICAgPSBwcm9ncmFtRGF0YS5nZXRBdHRh
Y2hlZFNoYWRlcihzaGFkZXJUeXBlKTsKLSAgICBjb25zdCBTaGFkZXJEM0QgKnNoYWRlckQzRCAg
ICAgICAgICAgICAgID0gR2V0SW1wbEFzPFNoYWRlckQzRD4oc2hhZGVyR0wpOwotICAgIGNvbnN0
IGJvb2wgZ2V0RGltZW5zaW9uc0lnbm9yZXNCYXNlTGV2ZWwgPSBwcm9ncmFtRDNELnVzZXNHZXRE
aW1lbnNpb25zSWdub3Jlc0Jhc2VMZXZlbCgpOworICAgIGdsOjpTaGFkZXIgKnNoYWRlckdMICAg
ICAgID0gcHJvZ3JhbURhdGEuZ2V0QXR0YWNoZWRTaGFkZXIoc2hhZGVyVHlwZSk7CisgICAgY29u
c3QgU2hhZGVyRDNEICpzaGFkZXJEM0QgPSBHZXRJbXBsQXM8U2hhZGVyRDNEPihzaGFkZXJHTCk7
CiAKICAgICBpZiAoc2hhZGVyRDNELT51c2VJbWFnZTJERnVuY3Rpb24oSW1hZ2UyREhMU0xHcm91
cEZ1bmN0aW9uTmFtZSh0ZXh0dXJlR3JvdXAsIElNQUdFMkRTSVpFKSkpCiAgICAgewogICAgICAg
ICBPdXRwdXRJbWFnZTJEU2l6ZUZ1bmN0aW9uKG91dCwgdGV4dHVyZUdyb3VwLCB0b3RhbENvdW50
LCB0ZXh0dXJlMkRDb3VudCwgdGV4dHVyZTNEQ291bnQsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdGV4dHVyZTJEQXJyYXlDb3VudCwgb2Zmc2V0U3RyLCBkZWNsYXJhdGlvblN0
ciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXREaW1lbnNpb25zSWdub3Jl
c0Jhc2VMZXZlbCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dHVyZTJE
QXJyYXlDb3VudCwgb2Zmc2V0U3RyLCBkZWNsYXJhdGlvblN0cik7CiAgICAgfQogICAgIGlmIChz
aGFkZXJEM0QtPnVzZUltYWdlMkRGdW5jdGlvbihJbWFnZTJESExTTEdyb3VwRnVuY3Rpb25OYW1l
KHRleHR1cmVHcm91cCwgSU1BR0UyRExPQUQpKSkKICAgICB7CkBAIC04NTEsNyArODM4LDcgQEAg
dm9pZCBPdXRwdXRITFNMSW1hZ2UyRFVuaWZvcm1Hcm91cChQcm9ncmFtRDNEICZwcm9ncmFtRDNE
LAogY29uc3RleHByIGNvbnN0IGNoYXIga0ltYWdlMkRGdW5jdGlvblN0cmluZ1tdID0gIi8vIEBA
IElNQUdFMkQgREVDTEFSQVRJT04gRlVOQ1RJT04gU1RSSU5HIEBAIjsKIH0gIC8vIGFub255bW91
cyBuYW1lc3BhY2UKIAotc3RkOjpzdHJpbmcgZ2VuZXJhdGVTaGFkZXJGb3JJbWFnZTJEQmluZFNp
Z25hdHVyZSgKK3N0ZDo6c3RyaW5nIEdlbmVyYXRlU2hhZGVyRm9ySW1hZ2UyREJpbmRTaWduYXR1
cmUoCiAgICAgY29uc3QgZDNkOjpDb250ZXh0ICpjb250ZXh0LAogICAgIFByb2dyYW1EM0QgJnBy
b2dyYW1EM0QsCiAgICAgY29uc3QgZ2w6OlByb2dyYW1TdGF0ZSAmcHJvZ3JhbURhdGEsCmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvZDNk
L0R5bmFtaWNJbWFnZTJESExTTC5oIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFO
R0xFL3JlbmRlcmVyL2QzZC9EeW5hbWljSW1hZ2UyREhMU0wuaAppbmRleCA5Y2FhYmI3ZGFlYTY1
MGQxN2FhZGI4ZmE3OGEyZWU3YzMwMDVlZTM5Li5jNTVlMTc2MjYwYjJmNGE1ZjE3N2E1MDFiMDQy
MjU1MjJhMThhOTc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGli
QU5HTEUvcmVuZGVyZXIvZDNkL0R5bmFtaWNJbWFnZTJESExTTC5oCisrKyBiL1NvdXJjZS9UaGly
ZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9kM2QvRHluYW1pY0ltYWdlMkRITFNM
LmgKQEAgLTE0LDcgKzE0LDcgQEAKIAogbmFtZXNwYWNlIHJ4CiB7Ci1zdGQ6OnN0cmluZyBnZW5l
cmF0ZVNoYWRlckZvckltYWdlMkRCaW5kU2lnbmF0dXJlKAorc3RkOjpzdHJpbmcgR2VuZXJhdGVT
aGFkZXJGb3JJbWFnZTJEQmluZFNpZ25hdHVyZSgKICAgICBjb25zdCBkM2Q6OkNvbnRleHQgKmNv
bnRleHQsCiAgICAgUHJvZ3JhbUQzRCAmcHJvZ3JhbUQzRCwKICAgICBjb25zdCBnbDo6UHJvZ3Jh
bVN0YXRlICZwcm9ncmFtRGF0YSwKQEAgLTIyLDE4ICsyMiw2IEBAIHN0ZDo6c3RyaW5nIGdlbmVy
YXRlU2hhZGVyRm9ySW1hZ2UyREJpbmRTaWduYXR1cmUoCiAgICAgc3RkOjp2ZWN0b3I8c2g6OlNo
YWRlclZhcmlhYmxlPiAmaW1hZ2UyRFVuaWZvcm1zLAogICAgIGNvbnN0IGdsOjpJbWFnZVVuaXRU
ZXh0dXJlVHlwZU1hcCAmaW1hZ2UyREJpbmRMYXlvdXQpOwogCi1pbmxpbmUgc3RkOjpzdHJpbmcg
R2VuZXJhdGVTaGFkZXJGb3JJbWFnZTJEQmluZFNpZ25hdHVyZSgKLSAgICBjb25zdCBkM2Q6OkNv
bnRleHQgKmNvbnRleHQsCi0gICAgUHJvZ3JhbUQzRCAmcHJvZ3JhbUQzRCwKLSAgICBjb25zdCBn
bDo6UHJvZ3JhbVN0YXRlICZwcm9ncmFtRGF0YSwKLSAgICBnbDo6U2hhZGVyVHlwZSBzaGFkZXJU
eXBlLAotICAgIHN0ZDo6dmVjdG9yPHNoOjpTaGFkZXJWYXJpYWJsZT4gJmltYWdlMkRVbmlmb3Jt
cywKLSAgICBjb25zdCBnbDo6SW1hZ2VVbml0VGV4dHVyZVR5cGVNYXAgJmltYWdlMkRCaW5kTGF5
b3V0KQotewotICAgIHJldHVybiBnZW5lcmF0ZVNoYWRlckZvckltYWdlMkRCaW5kU2lnbmF0dXJl
KGNvbnRleHQsIHByb2dyYW1EM0QsIHByb2dyYW1EYXRhLCBzaGFkZXJUeXBlLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltYWdlMkRVbmlmb3Jtcywg
aW1hZ2UyREJpbmRMYXlvdXQpOwotfQotCiB9ICAvLyBuYW1lc3BhY2UgcngKIAogI2VuZGlmICAv
LyBMSUJBTkdMRV9SRU5ERVJFUl9EM0RfRFlOQU1JQ0hMU0xfSF8KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9kM2QvRnJhbWVidWZmZXJE
M0QuY3BwIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL2Qz
ZC9GcmFtZWJ1ZmZlckQzRC5jcHAKaW5kZXggOTBmZjU0ZThlZDAwZWY2NGJhN2ZiN2Y1ZTE3YjBk
NTkxMTc0NGZmNy4uNWE4Mjc5YTU4NjYzYWZkYTc3NDk0ZjU4MzJjNWI4YjZiY2NmNTU4ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL2Qz
ZC9GcmFtZWJ1ZmZlckQzRC5jcHAKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xp
YkFOR0xFL3JlbmRlcmVyL2QzZC9GcmFtZWJ1ZmZlckQzRC5jcHAKQEAgLTcwLDcgKzcwLDcgQEAg
Q2xlYXJQYXJhbWV0ZXJzIEdldENsZWFyUGFyYW1ldGVycyhjb25zdCBnbDo6U3RhdGUgJnN0YXRl
LCBHTGJpdGZpZWxkIG1hc2spCiAgICAgewogICAgICAgICBjbGVhclBhcmFtcy5jbGVhckNvbG9y
LnJlc2V0KCk7CiAgICAgfQotICAgIGNsZWFyUGFyYW1zLmNvbG9yTWFzayA9IHN0YXRlLmdldEJs
ZW5kU3RhdGVFeHQoKS5tQ29sb3JNYXNrOworICAgIGNsZWFyUGFyYW1zLmNvbG9yTWFzayA9IHN0
YXRlLmdldEJsZW5kU3RhdGVFeHQoKS5nZXRDb2xvck1hc2tCaXRzKCk7CiAKICAgICBpZiAobWFz
ayAmIEdMX0RFUFRIX0JVRkZFUl9CSVQpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJk
UGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL2QzZC9Qcm9ncmFtRDNELmNwcCBiL1Nv
dXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9kM2QvUHJvZ3JhbUQz
RC5jcHAKaW5kZXggNGIzNWEwMzI1YTY3MzQxZWEwNGYzZTZlODAzMjRhMTExZGMxZWJjMC4uYzI1
ZTM1NWIyMTc3ZmVhNTc2NDU2ZjhmYWFkMGUwZWM5M2FkNTYxNSAxMDA2NDQKLS0tIGEvU291cmNl
L1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL2QzZC9Qcm9ncmFtRDNELmNw
cAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvZDNk
L1Byb2dyYW1EM0QuY3BwCkBAIC0xMTIxLDcgKzExMjEsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8cng6
OkxpbmtFdmVudD4gUHJvZ3JhbUQzRDo6bG9hZChjb25zdCBnbDo6Q29udGV4dCAqY29udGV4dCwK
ICAgICB7CiAgICAgICAgIHN0cmVhbS0+cmVhZFN0cmluZygmbVNoYWRlckhMU0xbc2hhZGVyVHlw
ZV0pOwogICAgICAgICBzdHJlYW0tPnJlYWRCeXRlcyhyZWludGVycHJldF9jYXN0PHVuc2lnbmVk
IGNoYXIgKj4oJm1TaGFkZXJXb3JrYXJvdW5kc1tzaGFkZXJUeXBlXSksCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgIHNpemVvZihhbmdsZTo6Q29tcGlsZXJXb3JrYXJvdW5kc0QzRCkpOworICAg
ICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoQ29tcGlsZXJXb3JrYXJvdW5kc0QzRCkpOwog
ICAgIH0KIAogICAgIHN0cmVhbS0+cmVhZEJvb2woJm1Vc2VzRnJhZ0RlcHRoKTsKQEAgLTE0MTcs
NyArMTQxNyw3IEBAIHZvaWQgUHJvZ3JhbUQzRDo6c2F2ZShjb25zdCBnbDo6Q29udGV4dCAqY29u
dGV4dCwgZ2w6OkJpbmFyeU91dHB1dFN0cmVhbSAqc3RyZWFtCiAgICAgewogICAgICAgICBzdHJl
YW0tPndyaXRlU3RyaW5nKG1TaGFkZXJITFNMW3NoYWRlclR5cGVdKTsKICAgICAgICAgc3RyZWFt
LT53cml0ZUJ5dGVzKHJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWduZWQgY2hhciAqPigmbVNoYWRlcldv
cmthcm91bmRzW3NoYWRlclR5cGVdKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVv
ZihhbmdsZTo6Q29tcGlsZXJXb3JrYXJvdW5kc0QzRCkpOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2l6ZW9mKENvbXBpbGVyV29ya2Fyb3VuZHNEM0QpKTsKICAgICB9CiAKICAgICBzdHJl
YW0tPndyaXRlQm9vbChtVXNlc0ZyYWdEZXB0aCk7CkBAIC0xNTQ0LDcgKzE1NDQsOCBAQCBhbmds
ZTo6UmVzdWx0IFByb2dyYW1EM0Q6OmdldFBpeGVsRXhlY3V0YWJsZUZvckNhY2hlZE91dHB1dExh
eW91dCgKIAogICAgIHN0ZDo6c3RyaW5nIGZpbmFsUGl4ZWxITFNMID0gbUR5bmFtaWNITFNMLT5n
ZW5lcmF0ZVBpeGVsU2hhZGVyRm9yT3V0cHV0U2lnbmF0dXJlKAogICAgICAgICBtU2hhZGVySExT
TFtnbDo6U2hhZGVyVHlwZTo6RnJhZ21lbnRdLCBtUGl4ZWxTaGFkZXJLZXksIG1Vc2VzRnJhZ0Rl
cHRoLAotICAgICAgICBtUGl4ZWxTaGFkZXJPdXRwdXRMYXlvdXRDYWNoZSk7CisgICAgICAgIG1Q
aXhlbFNoYWRlck91dHB1dExheW91dENhY2hlLCBtU2hhZGVyU3RvcmFnZUJsb2Nrc1tnbDo6U2hh
ZGVyVHlwZTo6RnJhZ21lbnRdLAorICAgICAgICBtUGl4ZWxTaGFkZXJLZXkuc2l6ZSgpKTsKIAog
ICAgIC8vIEdlbmVyYXRlIG5ldyBwaXhlbCBleGVjdXRhYmxlCiAgICAgU2hhZGVyRXhlY3V0YWJs
ZUQzRCAqcGl4ZWxFeGVjdXRhYmxlID0gbnVsbHB0cjsKQEAgLTE1ODcsNyArMTU4OCw4IEBAIGFu
Z2xlOjpSZXN1bHQgUHJvZ3JhbUQzRDo6Z2V0VmVydGV4RXhlY3V0YWJsZUZvckNhY2hlZElucHV0
TGF5b3V0KAogCiAgICAgLy8gR2VuZXJhdGUgbmV3IGR5bmFtaWMgbGF5b3V0IHdpdGggYXR0cmli
dXRlIGNvbnZlcnNpb25zCiAgICAgc3RkOjpzdHJpbmcgZmluYWxWZXJ0ZXhITFNMID0gbUR5bmFt
aWNITFNMLT5nZW5lcmF0ZVZlcnRleFNoYWRlckZvcklucHV0TGF5b3V0KAotICAgICAgICBtU2hh
ZGVySExTTFtnbDo6U2hhZGVyVHlwZTo6VmVydGV4XSwgbUNhY2hlZElucHV0TGF5b3V0LCBtU3Rh
dGUuZ2V0UHJvZ3JhbUlucHV0cygpKTsKKyAgICAgICAgbVNoYWRlckhMU0xbZ2w6OlNoYWRlclR5
cGU6OlZlcnRleF0sIG1DYWNoZWRJbnB1dExheW91dCwgbVN0YXRlLmdldFByb2dyYW1JbnB1dHMo
KSwKKyAgICAgICAgbVNoYWRlclN0b3JhZ2VCbG9ja3NbZ2w6OlNoYWRlclR5cGU6OlZlcnRleF0s
IG1QaXhlbFNoYWRlcktleS5zaXplKCkpOwogCiAgICAgLy8gR2VuZXJhdGUgbmV3IHZlcnRleCBl
eGVjdXRhYmxlCiAgICAgU2hhZGVyRXhlY3V0YWJsZUQzRCAqdmVydGV4RXhlY3V0YWJsZSA9IG51
bGxwdHI7CkBAIC0xNjU1LDggKzE2NTcsOCBAQCBhbmdsZTo6UmVzdWx0IFByb2dyYW1EM0Q6Omdl
dEdlb21ldHJ5RXhlY3V0YWJsZUZvclByaW1pdGl2ZVR5cGUoZDNkOjpDb250ZXh0ICpjbwogICAg
IFNoYWRlckV4ZWN1dGFibGVEM0QgKmdlb21ldHJ5RXhlY3V0YWJsZSA9IG51bGxwdHI7CiAgICAg
YW5nbGU6OlJlc3VsdCByZXN1bHQgICAgICAgICAgICAgICAgICAgID0gbVJlbmRlcmVyLT5jb21w
aWxlVG9FeGVjdXRhYmxlKAogICAgICAgICBjb250ZXh0LCAqY3VycmVudEluZm9Mb2csIGdlb21l
dHJ5SExTTCwgZ2w6OlNoYWRlclR5cGU6Okdlb21ldHJ5LCBtU3RyZWFtT3V0VmFyeWluZ3MsCi0g
ICAgICAgIChtU3RhdGUuZ2V0VHJhbnNmb3JtRmVlZGJhY2tCdWZmZXJNb2RlKCkgPT0gR0xfU0VQ
QVJBVEVfQVRUUklCUyksCi0gICAgICAgIGFuZ2xlOjpDb21waWxlcldvcmthcm91bmRzRDNEKCks
ICZnZW9tZXRyeUV4ZWN1dGFibGUpOworICAgICAgICAobVN0YXRlLmdldFRyYW5zZm9ybUZlZWRi
YWNrQnVmZmVyTW9kZSgpID09IEdMX1NFUEFSQVRFX0FUVFJJQlMpLCBDb21waWxlcldvcmthcm91
bmRzRDNEKCksCisgICAgICAgICZnZW9tZXRyeUV4ZWN1dGFibGUpOwogCiAgICAgaWYgKCFpbmZv
TG9nICYmIHJlc3VsdCA9PSBhbmdsZTo6UmVzdWx0OjpTdG9wKQogICAgIHsKQEAgLTIwMTgsOSAr
MjAyMCw5IEBAIGFuZ2xlOjpSZXN1bHQgUHJvZ3JhbUQzRDo6Z2V0Q29tcHV0ZUV4ZWN1dGFibGVG
b3JJbWFnZTJEQmluZExheW91dCgKICAgICBnbDo6SW5mb0xvZyB0ZW1wSW5mb0xvZzsKICAgICBn
bDo6SW5mb0xvZyAqY3VycmVudEluZm9Mb2cgPSBpbmZvTG9nID8gaW5mb0xvZyA6ICZ0ZW1wSW5m
b0xvZzsKIAotICAgIEFOR0xFX1RSWShtUmVuZGVyZXItPmNvbXBpbGVUb0V4ZWN1dGFibGUoCi0g
ICAgICAgIGNvbnRleHQsICpjdXJyZW50SW5mb0xvZywgZmluYWxDb21wdXRlSExTTCwgZ2w6OlNo
YWRlclR5cGU6OkNvbXB1dGUsCi0gICAgICAgIHN0ZDo6dmVjdG9yPEQzRFZhcnlpbmc+KCksIGZh
bHNlLCBhbmdsZTo6Q29tcGlsZXJXb3JrYXJvdW5kc0QzRCgpLCAmY29tcHV0ZUV4ZWN1dGFibGUp
KTsKKyAgICBBTkdMRV9UUlkobVJlbmRlcmVyLT5jb21waWxlVG9FeGVjdXRhYmxlKGNvbnRleHQs
ICpjdXJyZW50SW5mb0xvZywgZmluYWxDb21wdXRlSExTTCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGdsOjpTaGFkZXJUeXBlOjpDb21wdXRlLCBzdGQ6OnZl
Y3RvcjxEM0RWYXJ5aW5nPigpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZmFsc2UsIENvbXBpbGVyV29ya2Fyb3VuZHNEM0QoKSwgJmNvbXB1dGVFeGVjdXRh
YmxlKSk7CiAKICAgICBpZiAoY29tcHV0ZUV4ZWN1dGFibGUpCiAgICAgewpAQCAtMjE5MCwxMiAr
MjE5MiwxMCBAQCB2b2lkIFByb2dyYW1EM0Q6OmluaXRpYWxpemVTaGFkZXJTdG9yYWdlQmxvY2tz
KCkKICAgICB7CiAgICAgICAgIHNoYWRlcnNEM0Rbc2hhZGVyVHlwZV0gPSBTYWZlR2V0SW1wbEFz
PFNoYWRlckQzRD4obVN0YXRlLmdldEF0dGFjaGVkU2hhZGVyKHNoYWRlclR5cGUpKTsKICAgICB9
Ci0KICAgICBmb3IgKGNvbnN0IGdsOjpJbnRlcmZhY2VCbG9jayAmc2hhZGVyU3RvcmFnZUJsb2Nr
IDogbVN0YXRlLmdldFNoYWRlclN0b3JhZ2VCbG9ja3MoKSkKICAgICB7CiAgICAgICAgIHVuc2ln
bmVkIGludCBzaGFkZXJTdG9yYWdlQmxvY2tFbGVtZW50ID0KICAgICAgICAgICAgIHNoYWRlclN0
b3JhZ2VCbG9jay5pc0FycmF5ID8gc2hhZGVyU3RvcmFnZUJsb2NrLmFycmF5RWxlbWVudCA6IDA7
Ci0KICAgICAgICAgRDNESW50ZXJmYWNlQmxvY2sgZDNkU2hhZGVyU3RvcmFnZUJsb2NrOwogCiAg
ICAgICAgIGZvciAoZ2w6OlNoYWRlclR5cGUgc2hhZGVyVHlwZSA6IGdsOjpBbGxTaGFkZXJUeXBl
cygpKQpAQCAtMjIwNSwxMyArMjIwNSwzNSBAQCB2b2lkIFByb2dyYW1EM0Q6OmluaXRpYWxpemVT
aGFkZXJTdG9yYWdlQmxvY2tzKCkKICAgICAgICAgICAgICAgICBBU1NFUlQoc2hhZGVyc0QzRFtz
aGFkZXJUeXBlXSk7CiAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGJhc2VSZWdpc3RlciA9
CiAgICAgICAgICAgICAgICAgICAgIHNoYWRlcnNEM0Rbc2hhZGVyVHlwZV0tPmdldFNoYWRlclN0
b3JhZ2VCbG9ja1JlZ2lzdGVyKHNoYWRlclN0b3JhZ2VCbG9jay5uYW1lKTsKKwogICAgICAgICAg
ICAgICAgIGQzZFNoYWRlclN0b3JhZ2VCbG9jay5tU2hhZGVyUmVnaXN0ZXJJbmRleGVzW3NoYWRl
clR5cGVdID0KICAgICAgICAgICAgICAgICAgICAgYmFzZVJlZ2lzdGVyICsgc2hhZGVyU3RvcmFn
ZUJsb2NrRWxlbWVudDsKICAgICAgICAgICAgIH0KICAgICAgICAgfQotCiAgICAgICAgIG1EM0RT
aGFkZXJTdG9yYWdlQmxvY2tzLnB1c2hfYmFjayhkM2RTaGFkZXJTdG9yYWdlQmxvY2spOwogICAg
IH0KKworICAgIGZvciAoZ2w6OlNoYWRlclR5cGUgc2hhZGVyVHlwZSA6IGdsOjpBbGxTaGFkZXJU
eXBlcygpKQorICAgIHsKKyAgICAgICAgZ2w6OlNoYWRlciAqc2hhZGVyID0gbVN0YXRlLmdldEF0
dGFjaGVkU2hhZGVyKHNoYWRlclR5cGUpOworICAgICAgICBpZiAoIXNoYWRlcikKKyAgICAgICAg
eworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKyAgICAgICAgU2hhZGVyRDNEICpz
aGFkZXJEM0QgPSBTYWZlR2V0SW1wbEFzPFNoYWRlckQzRD4oc2hhZGVyKTsKKyAgICAgICAgZm9y
IChjb25zdCBzaDo6SW50ZXJmYWNlQmxvY2sgJnNzYm8gOiBzaGFkZXItPmdldFNoYWRlclN0b3Jh
Z2VCbG9ja3MoKSkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCFzc2JvLmFjdGl2ZSkKKyAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIFNoYWRlclN0b3JhZ2VCbG9jayBibG9jazsKKyAgICAgICAgICAgIGJsb2NrLm5h
bWUgICAgICAgICAgPSAhc3Niby5pbnN0YW5jZU5hbWUuZW1wdHkoKSA/IHNzYm8uaW5zdGFuY2VO
YW1lIDogc3Niby5uYW1lOworICAgICAgICAgICAgYmxvY2suYXJyYXlTaXplICAgICA9IHNzYm8u
aXNBcnJheSgpID8gc3Niby5hcnJheVNpemUgOiAwOworICAgICAgICAgICAgYmxvY2sucmVnaXN0
ZXJJbmRleCA9IHNoYWRlckQzRC0+Z2V0U2hhZGVyU3RvcmFnZUJsb2NrUmVnaXN0ZXIoc3Niby5u
YW1lKTsKKyAgICAgICAgICAgIG1TaGFkZXJTdG9yYWdlQmxvY2tzW3NoYWRlclR5cGVdLnB1c2hf
YmFjayhibG9jayk7CisgICAgICAgIH0KKyAgICB9CiB9CiAKIHZvaWQgUHJvZ3JhbUQzRDo6aW5p
dGlhbGl6ZVVuaWZvcm1CbG9ja3MoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5H
TEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL2QzZC9Qcm9ncmFtRDNELmggYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvZDNkL1Byb2dyYW1EM0QuaAppbmRleCBm
MmU1NzM5YWRkM2RlNzhmMmYyYjlmZGFjM2JhM2E5MTMzNTRjY2YwLi43MTk4NjM0MTQxMzc0YWVi
YWM1MzUwZjc2NzYzYzY5NmU3MGVhMzgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9B
TkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvZDNkL1Byb2dyYW1EM0QuaAorKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvZDNkL1Byb2dyYW1EM0QuaApA
QCAtMTgsNyArMTgsNyBAQAogI2luY2x1ZGUgImxpYkFOR0xFL3JlbmRlcmVyL1Byb2dyYW1JbXBs
LmgiCiAjaW5jbHVkZSAibGliQU5HTEUvcmVuZGVyZXIvZDNkL0R5bmFtaWNITFNMLmgiCiAjaW5j
bHVkZSAibGliQU5HTEUvcmVuZGVyZXIvZDNkL1JlbmRlcmVyRDNELmgiCi0jaW5jbHVkZSAicGxh
dGZvcm0vRmVhdHVyZXNEM0QuaCIKKyNpbmNsdWRlICJwbGF0Zm9ybS9GZWF0dXJlc0QzRF9hdXRv
Z2VuLmgiCiAKIG5hbWVzcGFjZSByeAogewpAQCAtMTA2LDYgKzEwNiwxMyBAQCBzdHJ1Y3QgRDNE
VW5pZm9ybUJsb2NrIDogRDNESW50ZXJmYWNlQmxvY2sKICAgICBnbDo6U2hhZGVyTWFwPHVuc2ln
bmVkIGludD4gbVN0cnVjdHVyZUJ5dGVTdHJpZGVzOwogfTsKIAorc3RydWN0IFNoYWRlclN0b3Jh
Z2VCbG9jaworeworICAgIHN0ZDo6c3RyaW5nIG5hbWU7CisgICAgdW5zaWduZWQgaW50IGFycmF5
U2l6ZSAgICAgPSAwOworICAgIHVuc2lnbmVkIGludCByZWdpc3RlckluZGV4ID0gMDsKK307CisK
IHN0cnVjdCBEM0RVQk9DYWNoZQogewogICAgIHVuc2lnbmVkIGludCByZWdpc3RlckluZGV4OwpA
QCAtNTM3LDcgKzU0NCw3IEBAIGNsYXNzIFByb2dyYW1EM0QgOiBwdWJsaWMgUHJvZ3JhbUltcGwK
ICAgICBzdGQ6OnZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8Q29tcHV0ZUV4ZWN1dGFibGU+PiBtQ29t
cHV0ZUV4ZWN1dGFibGVzOwogCiAgICAgZ2w6OlNoYWRlck1hcDxzdGQ6OnN0cmluZz4gbVNoYWRl
ckhMU0w7Ci0gICAgZ2w6OlNoYWRlck1hcDxhbmdsZTo6Q29tcGlsZXJXb3JrYXJvdW5kc0QzRD4g
bVNoYWRlcldvcmthcm91bmRzOworICAgIGdsOjpTaGFkZXJNYXA8Q29tcGlsZXJXb3JrYXJvdW5k
c0QzRD4gbVNoYWRlcldvcmthcm91bmRzOwogCiAgICAgYm9vbCBtVXNlc0ZyYWdEZXB0aDsKICAg
ICBib29sIG1IYXNBTkdMRU11bHRpdmlld0VuYWJsZWQ7CkBAIC01ODUsNiArNTkyLDcgQEAgY2xh
c3MgUHJvZ3JhbUQzRCA6IHB1YmxpYyBQcm9ncmFtSW1wbAogICAgIHN0ZDo6bWFwPHN0ZDo6c3Ry
aW5nLCBpbnQ+IG1BdG9taWNCaW5kaW5nTWFwOwogICAgIHN0ZDo6dmVjdG9yPEQzRFVuaWZvcm1C
bG9jaz4gbUQzRFVuaWZvcm1CbG9ja3M7CiAgICAgc3RkOjp2ZWN0b3I8RDNESW50ZXJmYWNlQmxv
Y2s+IG1EM0RTaGFkZXJTdG9yYWdlQmxvY2tzOworICAgIGdsOjpTaGFkZXJNYXA8c3RkOjp2ZWN0
b3I8U2hhZGVyU3RvcmFnZUJsb2NrPj4gbVNoYWRlclN0b3JhZ2VCbG9ja3M7CiAgICAgc3RkOjph
cnJheTx1bnNpZ25lZCBpbnQsIGdsOjpJTVBMRU1FTlRBVElPTl9NQVhfQVRPTUlDX0NPVU5URVJf
QlVGRkVSX0JJTkRJTkdTPgogICAgICAgICBtQ29tcHV0ZUF0b21pY0NvdW50ZXJCdWZmZXJSZWdp
c3RlckluZGljZXM7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9s
aWJBTkdMRS9yZW5kZXJlci9kM2QvUmVuZGVyYnVmZmVyRDNELmNwcCBiL1NvdXJjZS9UaGlyZFBh
cnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9kM2QvUmVuZGVyYnVmZmVyRDNELmNwcApp
bmRleCA5ZDdiMDIxYTc1MDg3ZjBiMzE4ZWRmZTYyYjZhNWZjZWMwODA0ZDZmLi45MTE0Yjg4ZjNm
Zjk1M2I2ZDY1YmRlYzU4MDk5NzVlYzg4MWM1YTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvZDNkL1JlbmRlcmJ1ZmZlckQzRC5jcHAK
KysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL2QzZC9S
ZW5kZXJidWZmZXJEM0QuY3BwCkBAIC0xMTUsNiArMTE1LDcgQEAgYW5nbGU6OlJlc3VsdCBSZW5k
ZXJidWZmZXJEM0Q6OmdldEF0dGFjaG1lbnRSZW5kZXJUYXJnZXQoY29uc3QgZ2w6OkNvbnRleHQg
KmNvbnQKIH0KIAogYW5nbGU6OlJlc3VsdCBSZW5kZXJidWZmZXJEM0Q6OmluaXRpYWxpemVDb250
ZW50cyhjb25zdCBnbDo6Q29udGV4dCAqY29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgR0xlbnVtIGJpbmRpbmcsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdsOjpJbWFnZUluZGV4
ICZpbWFnZUluZGV4KQogewogICAgIFJlbmRlclRhcmdldEQzRCAqcmVuZGVyVGFyZ2V0ID0gbnVs
bHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9y
ZW5kZXJlci9kM2QvUmVuZGVyYnVmZmVyRDNELmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9z
cmMvbGliQU5HTEUvcmVuZGVyZXIvZDNkL1JlbmRlcmJ1ZmZlckQzRC5oCmluZGV4IDg2MmZhZGUx
NGIxZTk1ZDBiNTk1ZmU2MjdlM2ExNjliOGJjOTViYjMuLjdiNDhjNDgwNzNmYWJlOTUzYzg4NWYz
MDk2ZmMyOGMzMTdkNGQ5NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3Ny
Yy9saWJBTkdMRS9yZW5kZXJlci9kM2QvUmVuZGVyYnVmZmVyRDNELmgKKysrIGIvU291cmNlL1Ro
aXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL2QzZC9SZW5kZXJidWZmZXJEM0Qu
aApAQCAtNDksNiArNDksNyBAQCBjbGFzcyBSZW5kZXJidWZmZXJEM0QgOiBwdWJsaWMgUmVuZGVy
YnVmZmVySW1wbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBG
cmFtZWJ1ZmZlckF0dGFjaG1lbnRSZW5kZXJUYXJnZXQgKipydE91dCkgb3ZlcnJpZGU7CiAKICAg
ICBhbmdsZTo6UmVzdWx0IGluaXRpYWxpemVDb250ZW50cyhjb25zdCBnbDo6Q29udGV4dCAqY29u
dGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTGVudW0gYmluZGlu
ZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnbDo6SW1hZ2VJ
bmRleCAmaW1hZ2VJbmRleCkgb3ZlcnJpZGU7CiAKICAgcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9kM2QvUmVuZGVyZXJE
M0QuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9kM2Qv
UmVuZGVyZXJEM0QuaAppbmRleCA3Njk4MDk2ZDk0ODQ2ZmQ1YTE3M2I2NDQ1OWI2OThmMjRlMjE1
NzExLi40ZDljZmQ5YjI1Y2M5Zjg1NTdjNTk4ZmIyYTcwMDBmZjA2MmNlY2E5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvZDNkL1JlbmRl
cmVyRDNELmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRl
cmVyL2QzZC9SZW5kZXJlckQzRC5oCkBAIC0xOSwxMSArMTksMTIgQEAKICNpbmNsdWRlICJsaWJB
TkdMRS9WZXJzaW9uLmgiCiAjaW5jbHVkZSAibGliQU5HTEUvYW5nbGV0eXBlcy5oIgogI2luY2x1
ZGUgImxpYkFOR0xFL2Zvcm1hdHV0aWxzLmgiCisjaW5jbHVkZSAibGliQU5HTEUvcmVuZGVyZXIv
ZDNkL1NoYWRlckQzRC5oIgogI2luY2x1ZGUgImxpYkFOR0xFL3JlbmRlcmVyL2QzZC9WZXJ0ZXhE
YXRhTWFuYWdlci5oIgogI2luY2x1ZGUgImxpYkFOR0xFL3JlbmRlcmVyL2QzZC9mb3JtYXR1dGls
c0QzRC5oIgogI2luY2x1ZGUgImxpYkFOR0xFL3JlbmRlcmVyL3JlbmRlcmVyX3V0aWxzLmgiCiAj
aW5jbHVkZSAibGliQU5HTEUvcmVuZGVyZXIvc2VyaWFsX3V0aWxzLmgiCi0jaW5jbHVkZSAicGxh
dGZvcm0vRmVhdHVyZXNEM0QuaCIKKyNpbmNsdWRlICJwbGF0Zm9ybS9GZWF0dXJlc0QzRF9hdXRv
Z2VuLmgiCiAKIG5hbWVzcGFjZSBlZ2wKIHsKQEAgLTI3Nyw3ICsyNzgsNyBAQCBjbGFzcyBSZW5k
ZXJlckQzRCA6IHB1YmxpYyBCdWZmZXJGYWN0b3J5RDNECiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZ2w6OlNoYWRlclR5cGUgdHlwZSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGQ6OnZlY3RvcjxEM0RW
YXJ5aW5nPiAmc3RyZWFtT3V0VmFyeWluZ3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYm9vbCBzZXBhcmF0ZWRPdXRwdXRCdWZmZXJzLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGFuZ2xlOjpDb21waWxl
cldvcmthcm91bmRzRDNEICZ3b3JrYXJvdW5kcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCBDb21waWxlcldvcmthcm91bmRzRDNEICZ3b3JrYXJv
dW5kcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTaGFk
ZXJFeGVjdXRhYmxlRDNEICoqb3V0RXhlY3R1YWJsZSkgPSAwOwogICAgIHZpcnR1YWwgYW5nbGU6
OlJlc3VsdCBlbnN1cmVITFNMQ29tcGlsZXJJbml0aWFsaXplZChkM2Q6OkNvbnRleHQgKmNvbnRl
eHQpICAgICA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9s
aWJBTkdMRS9yZW5kZXJlci9kM2QvU2hhZGVyRDNELmNwcCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FO
R0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9kM2QvU2hhZGVyRDNELmNwcAppbmRleCA2N2VjNjkz
YjM0YzExYmRiMDdkY2Y4YWUxYmRiY2U5NTZjZjQ2YjE0Li4wN2U0NTk3ZmUyZGI5YWM3YWMzMWUw
NjczMTgwZTUxMDVmNjczNDgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9z
cmMvbGliQU5HTEUvcmVuZGVyZXIvZDNkL1NoYWRlckQzRC5jcHAKKysrIGIvU291cmNlL1RoaXJk
UGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL2QzZC9TaGFkZXJEM0QuY3BwCkBAIC0x
NzUsNyArMTc1LDcgQEAgdm9pZCBTaGFkZXJEM0Q6OnVuY29tcGlsZSgpCiAgICAgbURlYnVnSW5m
by5jbGVhcigpOwogfQogCi12b2lkIFNoYWRlckQzRDo6Z2VuZXJhdGVXb3JrYXJvdW5kcyhhbmds
ZTo6Q29tcGlsZXJXb3JrYXJvdW5kc0QzRCAqd29ya2Fyb3VuZHMpIGNvbnN0Cit2b2lkIFNoYWRl
ckQzRDo6Z2VuZXJhdGVXb3JrYXJvdW5kcyhDb21waWxlcldvcmthcm91bmRzRDNEICp3b3JrYXJv
dW5kcykgY29uc3QKIHsKICAgICBpZiAobVVzZXNEaXNjYXJkUmV3cml0aW5nKQogICAgIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9k
M2QvU2hhZGVyRDNELmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVu
ZGVyZXIvZDNkL1NoYWRlckQzRC5oCmluZGV4IDRkNWM2MDlmMjkxY2U1MWI2NjEzNjFjZTcyNWFk
N2E1ZTE0ZGZhZDAuLmY0OTg3MDkxNDM2OGI5NzA4MDk0ZTk2ZjEyNTNkZjE5ZWU1M2Q5MTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9k
M2QvU2hhZGVyRDNELmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xF
L3JlbmRlcmVyL2QzZC9TaGFkZXJEM0QuaApAQCAtMTUsNyArMTUsNiBAQAogCiBuYW1lc3BhY2Ug
YW5nbGUKIHsKLXN0cnVjdCBDb21waWxlcldvcmthcm91bmRzRDNEOwogc3RydWN0IEZlYXR1cmVz
RDNEOwogfSAgLy8gbmFtZXNwYWNlIGFuZ2xlCiAKQEAgLTMwLDYgKzI5LDE4IEBAIGNsYXNzIER5
bmFtaWNITFNMOwogY2xhc3MgUmVuZGVyZXJEM0Q7CiBzdHJ1Y3QgRDNEVW5pZm9ybTsKIAorLy8g
V29ya2Fyb3VuZHMgYXR0YWNoZWQgdG8gZWFjaCBzaGFkZXIuIERvIG5vdCBuZWVkIHRvIGV4cG9z
ZSBpbmZvcm1hdGlvbiBhYm91dCB0aGVzZSB3b3JrYXJvdW5kcyBzbworLy8gYSBzaW1wbGUgYm9v
bCBzdHJ1Y3Qgc3VmZmljZXMuCitzdHJ1Y3QgQ29tcGlsZXJXb3JrYXJvdW5kc0QzRAoreworICAg
IGJvb2wgc2tpcE9wdGltaXphdGlvbiA9IGZhbHNlOworCisgICAgYm9vbCB1c2VNYXhPcHRpbWl6
YXRpb24gPSBmYWxzZTsKKworICAgIC8vIElFRUUgc3RyaWN0bmVzcyBuZWVkcyB0byBiZSBlbmFi
bGVkIGZvciBOQU5zIHRvIHdvcmsuCisgICAgYm9vbCBlbmFibGVJRUVFU3RyaWN0bmVzcyA9IGZh
bHNlOworfTsKKwogY2xhc3MgU2hhZGVyRDNEIDogcHVibGljIFNoYWRlckltcGwKIHsKICAgcHVi
bGljOgpAQCAtNjIsNyArNzMsNyBAQCBjbGFzcyBTaGFkZXJEM0QgOiBwdWJsaWMgU2hhZGVySW1w
bAogICAgIGNvbnN0IHN0ZDo6c2V0PHN0ZDo6c3RyaW5nPiAmZ2V0U2xvd0NvbXBpbGluZ1VuaWZv
cm1CbG9ja1NldCgpIGNvbnN0OwogICAgIHZvaWQgYXBwZW5kRGVidWdJbmZvKGNvbnN0IHN0ZDo6
c3RyaW5nICZpbmZvKSBjb25zdCB7IG1EZWJ1Z0luZm8gKz0gaW5mbzsgfQogCi0gICAgdm9pZCBn
ZW5lcmF0ZVdvcmthcm91bmRzKGFuZ2xlOjpDb21waWxlcldvcmthcm91bmRzRDNEICp3b3JrYXJv
dW5kcykgY29uc3Q7CisgICAgdm9pZCBnZW5lcmF0ZVdvcmthcm91bmRzKENvbXBpbGVyV29ya2Fy
b3VuZHNEM0QgKndvcmthcm91bmRzKSBjb25zdDsKIAogICAgIGJvb2wgdXNlc011bHRpcGxlUmVu
ZGVyVGFyZ2V0cygpIGNvbnN0IHsgcmV0dXJuIG1Vc2VzTXVsdGlwbGVSZW5kZXJUYXJnZXRzOyB9
CiAgICAgYm9vbCB1c2VzRnJhZ0NvbG9yKCkgY29uc3QgeyByZXR1cm4gbVVzZXNGcmFnQ29sb3I7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5k
ZXJlci9kM2QvU3VyZmFjZUQzRC5jcHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGli
QU5HTEUvcmVuZGVyZXIvZDNkL1N1cmZhY2VEM0QuY3BwCmluZGV4IDZlMGUyYjM3ZWFlMWI4Nzgy
YmYxOTIwNGY2Mjc4MGFhOGNmNDhlMDMuLjIzOTlhODYyNDZiYTlkZmMzMGZjZDk5NmQ0NjE2ZDdj
MWMxM2E2MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdM
RS9yZW5kZXJlci9kM2QvU3VyZmFjZUQzRC5jcHAKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5H
TEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL2QzZC9TdXJmYWNlRDNELmNwcApAQCAtNDU4LDE1ICs0
NTgsMjYgQEAgYW5nbGU6OlJlc3VsdCBTdXJmYWNlRDNEOjpnZXRBdHRhY2htZW50UmVuZGVyVGFy
Z2V0KGNvbnN0IGdsOjpDb250ZXh0ICpjb250ZXh0LAogfQogCiBhbmdsZTo6UmVzdWx0IFN1cmZh
Y2VEM0Q6OmluaXRpYWxpemVDb250ZW50cyhjb25zdCBnbDo6Q29udGV4dCAqY29udGV4dCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMZW51bSBiaW5kaW5n
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2w6
OkltYWdlSW5kZXggJmltYWdlSW5kZXgpCiB7Ci0gICAgaWYgKG1TdGF0ZS5jb25maWctPnJlbmRl
clRhcmdldEZvcm1hdCAhPSBHTF9OT05FKQorICAgIHN3aXRjaCAoYmluZGluZykKICAgICB7Ci0g
ICAgICAgIEFOR0xFX1RSWShtUmVuZGVyZXItPmluaXRSZW5kZXJUYXJnZXQoY29udGV4dCwgbVN3
YXBDaGFpbi0+Z2V0Q29sb3JSZW5kZXJUYXJnZXQoKSkpOwotICAgIH0KLSAgICBpZiAobVN0YXRl
LmNvbmZpZy0+ZGVwdGhTdGVuY2lsRm9ybWF0ICE9IEdMX05PTkUpCi0gICAgewotICAgICAgICBB
TkdMRV9UUlkobVJlbmRlcmVyLT5pbml0UmVuZGVyVGFyZ2V0KGNvbnRleHQsIG1Td2FwQ2hhaW4t
PmdldERlcHRoU3RlbmNpbFJlbmRlclRhcmdldCgpKSk7CisgICAgICAgIGNhc2UgR0xfQkFDSzoK
KyAgICAgICAgICAgIEFTU0VSVChtU3RhdGUuY29uZmlnLT5yZW5kZXJUYXJnZXRGb3JtYXQgIT0g
R0xfTk9ORSk7CisgICAgICAgICAgICBBTkdMRV9UUlkobVJlbmRlcmVyLT5pbml0UmVuZGVyVGFy
Z2V0KGNvbnRleHQsIG1Td2FwQ2hhaW4tPmdldENvbG9yUmVuZGVyVGFyZ2V0KCkpKTsKKyAgICAg
ICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgR0xfREVQVEg6CisgICAgICAgIGNhc2UgR0xf
U1RFTkNJTDoKKyAgICAgICAgICAgIEFTU0VSVChtU3RhdGUuY29uZmlnLT5kZXB0aFN0ZW5jaWxG
b3JtYXQgIT0gR0xfTk9ORSk7CisgICAgICAgICAgICBBTkdMRV9UUlkoCisgICAgICAgICAgICAg
ICAgbVJlbmRlcmVyLT5pbml0UmVuZGVyVGFyZ2V0KGNvbnRleHQsIG1Td2FwQ2hhaW4tPmdldERl
cHRoU3RlbmNpbFJlbmRlclRhcmdldCgpKSk7CisgICAgICAgICAgICBicmVhazsKKworICAgICAg
ICBkZWZhdWx0OgorICAgICAgICAgICAgVU5SRUFDSEFCTEUoKTsKKyAgICAgICAgICAgIGJyZWFr
OwogICAgIH0KICAgICByZXR1cm4gYW5nbGU6OlJlc3VsdDo6Q29udGludWU7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvZDNkL1N1
cmZhY2VEM0QuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJl
ci9kM2QvU3VyZmFjZUQzRC5oCmluZGV4IGM0OGM4ZWI0OWFjY2ZjZjhiNjk5NWU4NmRlZDAzMmIx
NDMzZjlmMjQuLjViMDk4N2VlYzVjYjQyYzEzYWM1MzdlODM1ZTA3NjAxYzhkMjdkYTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9kM2Qv
U3VyZmFjZUQzRC5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9y
ZW5kZXJlci9kM2QvU3VyZmFjZUQzRC5oCkBAIC02OSw2ICs2OSw3IEBAIGNsYXNzIFN1cmZhY2VE
M0QgOiBwdWJsaWMgU3VyZmFjZUltcGwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgR0xzaXplaSBzYW1wbGVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBGcmFtZWJ1ZmZlckF0dGFjaG1lbnRSZW5kZXJUYXJnZXQgKipydE91
dCkgb3ZlcnJpZGU7CiAgICAgYW5nbGU6OlJlc3VsdCBpbml0aWFsaXplQ29udGVudHMoY29uc3Qg
Z2w6OkNvbnRleHQgKmNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgR0xlbnVtIGJpbmRpbmcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgZ2w6OkltYWdlSW5kZXggJmltYWdlSW5kZXgpIG92ZXJyaWRlOwogCiAgICAgY29uc3Qg
YW5nbGU6OkZvcm1hdCAqZ2V0RDNEVGV4dHVyZUNvbG9yRm9ybWF0KCkgY29uc3Qgb3ZlcnJpZGU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVy
ZXIvZDNkL1RleHR1cmVEM0QuY3BwIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFO
R0xFL3JlbmRlcmVyL2QzZC9UZXh0dXJlRDNELmNwcAppbmRleCA0ZTc1NWUyMTcyNDk4ZWM3NmFi
YTYzMjM5NWJiYjE5YzE5YTczZDY3Li4xNjlmMzM5NWVmMDY1MTI1ZWIzMzNiNjgzOWJhNzQyYzZl
Nzk5ZGM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUv
cmVuZGVyZXIvZDNkL1RleHR1cmVEM0QuY3BwCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xF
L3NyYy9saWJBTkdMRS9yZW5kZXJlci9kM2QvVGV4dHVyZUQzRC5jcHAKQEAgLTU5Myw4ICs1OTMs
OCBAQCBhbmdsZTo6UmVzdWx0IFRleHR1cmVEM0Q6OmVuc3VyZVJlbmRlclRhcmdldChjb25zdCBn
bDo6Q29udGV4dCAqY29udGV4dCkKICAgICAgICAgQVNTRVJUKG1UZXhTdG9yYWdlKTsKICAgICAg
ICAgaWYgKCFtVGV4U3RvcmFnZS0+aXNSZW5kZXJUYXJnZXQoKSkKICAgICAgICAgewotICAgICAg
ICAgICAgVGV4U3RvcmFnZVBvaW50ZXIgbmV3UmVuZGVyVGFyZ2V0U3RvcmFnZShjb250ZXh0KTsK
LSAgICAgICAgICAgIEFOR0xFX1RSWShjcmVhdGVDb21wbGV0ZVN0b3JhZ2UodHJ1ZSwgJm5ld1Jl
bmRlclRhcmdldFN0b3JhZ2UpKTsKKyAgICAgICAgICAgIFRleFN0b3JhZ2VQb2ludGVyIG5ld1Jl
bmRlclRhcmdldFN0b3JhZ2U7CisgICAgICAgICAgICBBTkdMRV9UUlkoY3JlYXRlQ29tcGxldGVT
dG9yYWdlKGNvbnRleHQsIHRydWUsICZuZXdSZW5kZXJUYXJnZXRTdG9yYWdlKSk7CiAKICAgICAg
ICAgICAgIEFOR0xFX1RSWShtVGV4U3RvcmFnZS0+Y29weVRvU3RvcmFnZShjb250ZXh0LCBuZXdS
ZW5kZXJUYXJnZXRTdG9yYWdlLmdldCgpKSk7CiAgICAgICAgICAgICBBTkdMRV9UUlkoc2V0Q29t
cGxldGVUZXhTdG9yYWdlKGNvbnRleHQsIG5ld1JlbmRlclRhcmdldFN0b3JhZ2UuZ2V0KCkpKTsK
QEAgLTczMiw2ICs3MzIsNyBAQCB2b2lkIFRleHR1cmVEM0Q6Om9uRGVzdHJveShjb25zdCBnbDo6
Q29udGV4dCAqY29udGV4dCkKIH0KIAogYW5nbGU6OlJlc3VsdCBUZXh0dXJlRDNEOjppbml0aWFs
aXplQ29udGVudHMoY29uc3QgZ2w6OkNvbnRleHQgKmNvbnRleHQsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTGVudW0gYmluZGluZywKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdsOjpJbWFnZUluZGV4ICZp
bWFnZUluZGV4KQogewogICAgIENvbnRleHREM0QgKmNvbnRleHREM0QgPSBHZXRJbXBsQXM8Q29u
dGV4dEQzRD4oY29udGV4dCk7CkBAIC03NTQsNyArNzU1LDcgQEAgYW5nbGU6OlJlc3VsdCBUZXh0
dXJlRDNEOjppbml0aWFsaXplQ29udGVudHMoY29uc3QgZ2w6OkNvbnRleHQgKmNvbnRleHQsCiAg
ICAgICAgICAgICBnbDo6SW1hZ2VJbmRleEl0ZXJhdG9yOjpNYWtlMkRBcnJheShsZXZlbEluZGV4
LCBsZXZlbEluZGV4ICsgMSwgdGVtcExheWVyQ291bnRzLmRhdGEoKSk7CiAgICAgICAgIHdoaWxl
IChpdGVyYXRvci5oYXNOZXh0KCkpCiAgICAgICAgIHsKLSAgICAgICAgICAgIEFOR0xFX1RSWShp
bml0aWFsaXplQ29udGVudHMoY29udGV4dCwgaXRlcmF0b3IubmV4dCgpKSk7CisgICAgICAgICAg
ICBBTkdMRV9UUlkoaW5pdGlhbGl6ZUNvbnRlbnRzKGNvbnRleHQsIEdMX05PTkUsIGl0ZXJhdG9y
Lm5leHQoKSkpOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBhbmdsZTo6UmVzdWx0OjpDb250
aW51ZTsKICAgICB9CkBAIC03NjgsNyArNzY5LDcgQEAgYW5nbGU6OlJlc3VsdCBUZXh0dXJlRDNE
Ojppbml0aWFsaXplQ29udGVudHMoY29uc3QgZ2w6OkNvbnRleHQgKmNvbnRleHQsCiAgICAgICAg
ICAgICBnbDo6SW1hZ2VJbmRleEl0ZXJhdG9yOjpNYWtlMkRNdWx0aXNhbXBsZUFycmF5KHRlbXBM
YXllckNvdW50cy5kYXRhKCkpOwogICAgICAgICB3aGlsZSAoaXRlcmF0b3IuaGFzTmV4dCgpKQog
ICAgICAgICB7Ci0gICAgICAgICAgICBBTkdMRV9UUlkoaW5pdGlhbGl6ZUNvbnRlbnRzKGNvbnRl
eHQsIGl0ZXJhdG9yLm5leHQoKSkpOworICAgICAgICAgICAgQU5HTEVfVFJZKGluaXRpYWxpemVD
b250ZW50cyhjb250ZXh0LCBHTF9OT05FLCBpdGVyYXRvci5uZXh0KCkpKTsKICAgICAgICAgfQog
ICAgICAgICByZXR1cm4gYW5nbGU6OlJlc3VsdDo6Q29udGludWU7CiAgICAgfQpAQCAtMTA4MCw3
ICsxMDgxLDcgQEAgYW5nbGU6OlJlc3VsdCBUZXh0dXJlRDNEXzJEOjpjb3B5SW1hZ2UoY29uc3Qg
Z2w6OkNvbnRleHQgKmNvbnRleHQsCiAgICAgLy8gU2FtZSB0aGluZyBmb3Igcm9idXN0IHJlc291
cmNlIGluaXQuCiAgICAgaWYgKG91dHNpZGUgJiYgKGNvbnRleHQtPmlzV2ViR0woKSB8fCBjb250
ZXh0LT5pc1JvYnVzdFJlc291cmNlSW5pdEVuYWJsZWQoKSkpCiAgICAgewotICAgICAgICBBTkdM
RV9UUlkoaW5pdGlhbGl6ZUNvbnRlbnRzKGNvbnRleHQsIGluZGV4KSk7CisgICAgICAgIEFOR0xF
X1RSWShpbml0aWFsaXplQ29udGVudHMoY29udGV4dCwgR0xfTk9ORSwgaW5kZXgpKTsKICAgICB9
CiAKICAgICBnbDo6UmVjdGFuZ2xlIGNsaXBwZWRBcmVhOwpAQCAtMTMxNSwxMSArMTMxNiwxMSBA
QCBhbmdsZTo6UmVzdWx0IFRleHR1cmVEM0RfMkQ6OnNldFN0b3JhZ2UoY29uc3QgZ2w6OkNvbnRl
eHQgKmNvbnRleHQsCiAgICAgfQogCiAgICAgLy8gVE9ETyhnZW9mZmxhbmcpOiBWZXJpZnkgc3Rv
cmFnZSBjcmVhdGlvbiBoYWQgbm8gZXJyb3JzCi0gICAgYm9vbCByZW5kZXJUYXJnZXQgPSBJc1Jl
bmRlclRhcmdldFVzYWdlKG1TdGF0ZS5nZXRVc2FnZSgpKTsKLSAgICBUZXhTdG9yYWdlUG9pbnRl
ciBzdG9yYWdlKGNvbnRleHQpOwotICAgIHN0b3JhZ2UucmVzZXQobVJlbmRlcmVyLT5jcmVhdGVU
ZXh0dXJlU3RvcmFnZTJEKGludGVybmFsRm9ybWF0LCByZW5kZXJUYXJnZXQsIHNpemUud2lkdGgs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6
ZS5oZWlnaHQsIHN0YXRpY19jYXN0PGludD4obGV2ZWxzKSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtU3RhdGUuZ2V0TGFiZWwoKSwgZmFsc2Up
KTsKKyAgICBib29sIHJlbmRlclRhcmdldCAgICAgICAgID0gSXNSZW5kZXJUYXJnZXRVc2FnZSht
U3RhdGUuZ2V0VXNhZ2UoKSk7CisgICAgVGV4U3RvcmFnZVBvaW50ZXIgc3RvcmFnZSA9IHsKKyAg
ICAgICAgbVJlbmRlcmVyLT5jcmVhdGVUZXh0dXJlU3RvcmFnZTJEKGludGVybmFsRm9ybWF0LCBy
ZW5kZXJUYXJnZXQsIHNpemUud2lkdGgsIHNpemUuaGVpZ2h0LAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50PihsZXZlbHMpLCBtU3RhdGUu
Z2V0TGFiZWwoKSwgZmFsc2UpLAorICAgICAgICBjb250ZXh0fTsKIAogICAgIEFOR0xFX1RSWShz
ZXRDb21wbGV0ZVRleFN0b3JhZ2UoY29udGV4dCwgc3RvcmFnZS5nZXQoKSkpOwogICAgIHN0b3Jh
Z2UucmVsZWFzZSgpOwpAQCAtMTQ5OCw4ICsxNDk5LDggQEAgYW5nbGU6OlJlc3VsdCBUZXh0dXJl
RDNEXzJEOjppbml0aWFsaXplU3RvcmFnZShjb25zdCBnbDo6Q29udGV4dCAqY29udGV4dCwgYm9v
bAogCiAgICAgYm9vbCBjcmVhdGVSZW5kZXJUYXJnZXQgPSAocmVuZGVyVGFyZ2V0IHx8IElzUmVu
ZGVyVGFyZ2V0VXNhZ2UobVN0YXRlLmdldFVzYWdlKCkpKTsKIAotICAgIFRleFN0b3JhZ2VQb2lu
dGVyIHN0b3JhZ2UoY29udGV4dCk7Ci0gICAgQU5HTEVfVFJZKGNyZWF0ZUNvbXBsZXRlU3RvcmFn
ZShjcmVhdGVSZW5kZXJUYXJnZXQsICZzdG9yYWdlKSk7CisgICAgVGV4U3RvcmFnZVBvaW50ZXIg
c3RvcmFnZTsKKyAgICBBTkdMRV9UUlkoY3JlYXRlQ29tcGxldGVTdG9yYWdlKGNvbnRleHQsIGNy
ZWF0ZVJlbmRlclRhcmdldCwgJnN0b3JhZ2UpKTsKIAogICAgIEFOR0xFX1RSWShzZXRDb21wbGV0
ZVRleFN0b3JhZ2UoY29udGV4dCwgc3RvcmFnZS5nZXQoKSkpOwogICAgIHN0b3JhZ2UucmVsZWFz
ZSgpOwpAQCAtMTUxMiw3ICsxNTEzLDggQEAgYW5nbGU6OlJlc3VsdCBUZXh0dXJlRDNEXzJEOjpp
bml0aWFsaXplU3RvcmFnZShjb25zdCBnbDo6Q29udGV4dCAqY29udGV4dCwgYm9vbAogICAgIHJl
dHVybiBhbmdsZTo6UmVzdWx0OjpDb250aW51ZTsKIH0KIAotYW5nbGU6OlJlc3VsdCBUZXh0dXJl
RDNEXzJEOjpjcmVhdGVDb21wbGV0ZVN0b3JhZ2UoYm9vbCByZW5kZXJUYXJnZXQsCithbmdsZTo6
UmVzdWx0IFRleHR1cmVEM0RfMkQ6OmNyZWF0ZUNvbXBsZXRlU3RvcmFnZShjb25zdCBnbDo6Q29u
dGV4dCAqY29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGJvb2wgcmVuZGVyVGFyZ2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgVGV4U3RvcmFnZVBvaW50ZXIgKm91dFN0b3JhZ2UpIGNv
bnN0CiB7CiAgICAgR0xzaXplaSB3aWR0aCAgICAgICAgID0gZ2V0TGV2ZWxaZXJvV2lkdGgoKTsK
QEAgLTE1MzcsOCArMTUzOSw5IEBAIGFuZ2xlOjpSZXN1bHQgVGV4dHVyZUQzRF8yRDo6Y3JlYXRl
Q29tcGxldGVTdG9yYWdlKGJvb2wgcmVuZGVyVGFyZ2V0LAogICAgIH0KIAogICAgIC8vIFRPRE8o
Z2VvZmZsYW5nKTogRGV0ZXJtaW5lIGlmIHRoZSB0ZXh0dXJlIGNyZWF0aW9uIHN1Y2NlZWRlZAot
ICAgIG91dFN0b3JhZ2UtPnJlc2V0KG1SZW5kZXJlci0+Y3JlYXRlVGV4dHVyZVN0b3JhZ2UyRCgK
LSAgICAgICAgaW50ZXJuYWxGb3JtYXQsIHJlbmRlclRhcmdldCwgd2lkdGgsIGhlaWdodCwgbGV2
ZWxzLCBtU3RhdGUuZ2V0TGFiZWwoKSwgaGludExldmVsWmVyb09ubHkpKTsKKyAgICAqb3V0U3Rv
cmFnZSA9IHttUmVuZGVyZXItPmNyZWF0ZVRleHR1cmVTdG9yYWdlMkQoaW50ZXJuYWxGb3JtYXQs
IHJlbmRlclRhcmdldCwgd2lkdGgsIGhlaWdodCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV2ZWxzLCBtU3RhdGUuZ2V0TGFiZWwoKSwgaGlu
dExldmVsWmVyb09ubHkpLAorICAgICAgICAgICAgICAgICAgIGNvbnRleHR9OwogCiAgICAgcmV0
dXJuIGFuZ2xlOjpSZXN1bHQ6OkNvbnRpbnVlOwogfQpAQCAtMTgzNSw3ICsxODM4LDcgQEAgYW5n
bGU6OlJlc3VsdCBUZXh0dXJlRDNEX0N1YmU6OmNvcHlJbWFnZShjb25zdCBnbDo6Q29udGV4dCAq
Y29udGV4dCwKICAgICAvLyBTYW1lIHRoaW5nIGZvciByb2J1c3QgcmVzb3VyY2UgaW5pdC4KICAg
ICBpZiAob3V0c2lkZSAmJiAoY29udGV4dC0+aXNXZWJHTCgpIHx8IGNvbnRleHQtPmlzUm9idXN0
UmVzb3VyY2VJbml0RW5hYmxlZCgpKSkKICAgICB7Ci0gICAgICAgIEFOR0xFX1RSWShpbml0aWFs
aXplQ29udGVudHMoY29udGV4dCwgaW5kZXgpKTsKKyAgICAgICAgQU5HTEVfVFJZKGluaXRpYWxp
emVDb250ZW50cyhjb250ZXh0LCBHTF9OT05FLCBpbmRleCkpOwogICAgIH0KIAogICAgIGdsOjpS
ZWN0YW5nbGUgY2xpcHBlZEFyZWE7CkBAIC0yMDU4LDEwICsyMDYxLDEwIEBAIGFuZ2xlOjpSZXN1
bHQgVGV4dHVyZUQzRF9DdWJlOjpzZXRTdG9yYWdlKGNvbnN0IGdsOjpDb250ZXh0ICpjb250ZXh0
LAogICAgIC8vIFRPRE8oZ2VvZmZsYW5nKTogVmVyaWZ5IHN0b3JhZ2UgY3JlYXRpb24gaGFkIG5v
IGVycm9ycwogICAgIGJvb2wgcmVuZGVyVGFyZ2V0ID0gSXNSZW5kZXJUYXJnZXRVc2FnZShtU3Rh
dGUuZ2V0VXNhZ2UoKSk7CiAKLSAgICBUZXhTdG9yYWdlUG9pbnRlciBzdG9yYWdlKGNvbnRleHQp
OwotICAgIHN0b3JhZ2UucmVzZXQobVJlbmRlcmVyLT5jcmVhdGVUZXh0dXJlU3RvcmFnZUN1YmUo
aW50ZXJuYWxGb3JtYXQsIHJlbmRlclRhcmdldCwgc2l6ZS53aWR0aCwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PGludD4o
bGV2ZWxzKSwgZmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBtU3RhdGUuZ2V0TGFiZWwoKSkpOworICAgIFRleFN0b3JhZ2VQb2ludGVy
IHN0b3JhZ2UgPSB7CisgICAgICAgIG1SZW5kZXJlci0+Y3JlYXRlVGV4dHVyZVN0b3JhZ2VDdWJl
KGludGVybmFsRm9ybWF0LCByZW5kZXJUYXJnZXQsIHNpemUud2lkdGgsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PGludD4obGV2ZWxzKSwg
ZmFsc2UsIG1TdGF0ZS5nZXRMYWJlbCgpKSwKKyAgICAgICAgY29udGV4dH07CiAKICAgICBBTkdM
RV9UUlkoc2V0Q29tcGxldGVUZXhTdG9yYWdlKGNvbnRleHQsIHN0b3JhZ2UuZ2V0KCkpKTsKICAg
ICBzdG9yYWdlLnJlbGVhc2UoKTsKQEAgLTIxNjEsOCArMjE2NCw4IEBAIGFuZ2xlOjpSZXN1bHQg
VGV4dHVyZUQzRF9DdWJlOjppbml0aWFsaXplU3RvcmFnZShjb25zdCBnbDo6Q29udGV4dCAqY29u
dGV4dCwgYm9vCiAKICAgICBib29sIGNyZWF0ZVJlbmRlclRhcmdldCA9IChyZW5kZXJUYXJnZXQg
fHwgSXNSZW5kZXJUYXJnZXRVc2FnZShtU3RhdGUuZ2V0VXNhZ2UoKSkpOwogCi0gICAgVGV4U3Rv
cmFnZVBvaW50ZXIgc3RvcmFnZShjb250ZXh0KTsKLSAgICBBTkdMRV9UUlkoY3JlYXRlQ29tcGxl
dGVTdG9yYWdlKGNyZWF0ZVJlbmRlclRhcmdldCwgJnN0b3JhZ2UpKTsKKyAgICBUZXhTdG9yYWdl
UG9pbnRlciBzdG9yYWdlOworICAgIEFOR0xFX1RSWShjcmVhdGVDb21wbGV0ZVN0b3JhZ2UoY29u
dGV4dCwgY3JlYXRlUmVuZGVyVGFyZ2V0LCAmc3RvcmFnZSkpOwogCiAgICAgQU5HTEVfVFJZKHNl
dENvbXBsZXRlVGV4U3RvcmFnZShjb250ZXh0LCBzdG9yYWdlLmdldCgpKSk7CiAgICAgc3RvcmFn
ZS5yZWxlYXNlKCk7CkBAIC0yMTc1LDcgKzIxNzgsOCBAQCBhbmdsZTo6UmVzdWx0IFRleHR1cmVE
M0RfQ3ViZTo6aW5pdGlhbGl6ZVN0b3JhZ2UoY29uc3QgZ2w6OkNvbnRleHQgKmNvbnRleHQsIGJv
bwogICAgIHJldHVybiBhbmdsZTo6UmVzdWx0OjpDb250aW51ZTsKIH0KIAotYW5nbGU6OlJlc3Vs
dCBUZXh0dXJlRDNEX0N1YmU6OmNyZWF0ZUNvbXBsZXRlU3RvcmFnZShib29sIHJlbmRlclRhcmdl
dCwKK2FuZ2xlOjpSZXN1bHQgVGV4dHVyZUQzRF9DdWJlOjpjcmVhdGVDb21wbGV0ZVN0b3JhZ2Uo
Y29uc3QgZ2w6OkNvbnRleHQgKmNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgcmVuZGVyVGFyZ2V0LAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXhTdG9yYWdlUG9pbnRl
ciAqb3V0U3RvcmFnZSkgY29uc3QKIHsKICAgICBHTHNpemVpIHNpemUgPSBnZXRMZXZlbFplcm9X
aWR0aCgpOwpAQCAtMjIwMyw5ICsyMjA3LDEwIEBAIGFuZ2xlOjpSZXN1bHQgVGV4dHVyZUQzRF9D
dWJlOjpjcmVhdGVDb21wbGV0ZVN0b3JhZ2UoYm9vbCByZW5kZXJUYXJnZXQsCiAgICAgfQogCiAg
ICAgLy8gVE9ETyAoZ2VvZmZsYW5nKTogZGV0ZWN0IGlmIHN0b3JhZ2UgY3JlYXRpb24gc3VjY2Vl
ZGVkCi0gICAgb3V0U3RvcmFnZS0+cmVzZXQobVJlbmRlcmVyLT5jcmVhdGVUZXh0dXJlU3RvcmFn
ZUN1YmUoZ2V0QmFzZUxldmVsSW50ZXJuYWxGb3JtYXQoKSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW5kZXJUYXJnZXQsIHNpemUs
IGxldmVscywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBoaW50TGV2ZWxaZXJvT25seSwgbVN0YXRlLmdldExhYmVsKCkpKTsKKyAgICAq
b3V0U3RvcmFnZSA9IHsKKyAgICAgICAgbVJlbmRlcmVyLT5jcmVhdGVUZXh0dXJlU3RvcmFnZUN1
YmUoZ2V0QmFzZUxldmVsSW50ZXJuYWxGb3JtYXQoKSwgcmVuZGVyVGFyZ2V0LCBzaXplLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXZlbHMsIGhpbnRMZXZl
bFplcm9Pbmx5LCBtU3RhdGUuZ2V0TGFiZWwoKSksCisgICAgICAgIGNvbnRleHR9OwogCiAgICAg
cmV0dXJuIGFuZ2xlOjpSZXN1bHQ6OkNvbnRpbnVlOwogfQpAQCAtMjc3MiwxMSArMjc3NywxMSBA
QCBhbmdsZTo6UmVzdWx0IFRleHR1cmVEM0RfM0Q6OnNldFN0b3JhZ2UoY29uc3QgZ2w6OkNvbnRl
eHQgKmNvbnRleHQsCiAgICAgfQogCiAgICAgLy8gVE9ETyhnZW9mZmxhbmcpOiBWZXJpZnkgc3Rv
cmFnZSBjcmVhdGlvbiBoYWQgbm8gZXJyb3JzCi0gICAgYm9vbCByZW5kZXJUYXJnZXQgPSBJc1Jl
bmRlclRhcmdldFVzYWdlKG1TdGF0ZS5nZXRVc2FnZSgpKTsKLSAgICBUZXhTdG9yYWdlUG9pbnRl
ciBzdG9yYWdlKGNvbnRleHQpOwotICAgIHN0b3JhZ2UucmVzZXQobVJlbmRlcmVyLT5jcmVhdGVU
ZXh0dXJlU3RvcmFnZTNEKGludGVybmFsRm9ybWF0LCByZW5kZXJUYXJnZXQsIHNpemUud2lkdGgs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6
ZS5oZWlnaHQsIHNpemUuZGVwdGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50PihsZXZlbHMpLCBtU3RhdGUuZ2V0TGFi
ZWwoKSkpOworICAgIGJvb2wgcmVuZGVyVGFyZ2V0ICAgICAgICAgPSBJc1JlbmRlclRhcmdldFVz
YWdlKG1TdGF0ZS5nZXRVc2FnZSgpKTsKKyAgICBUZXhTdG9yYWdlUG9pbnRlciBzdG9yYWdlID0g
eworICAgICAgICBtUmVuZGVyZXItPmNyZWF0ZVRleHR1cmVTdG9yYWdlM0QoaW50ZXJuYWxGb3Jt
YXQsIHJlbmRlclRhcmdldCwgc2l6ZS53aWR0aCwgc2l6ZS5oZWlnaHQsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplLmRlcHRoLCBzdGF0aWNfY2FzdDxpbnQ+
KGxldmVscyksIG1TdGF0ZS5nZXRMYWJlbCgpKSwKKyAgICAgICAgY29udGV4dH07CiAKICAgICBB
TkdMRV9UUlkoc2V0Q29tcGxldGVUZXhTdG9yYWdlKGNvbnRleHQsIHN0b3JhZ2UuZ2V0KCkpKTsK
ICAgICBzdG9yYWdlLnJlbGVhc2UoKTsKQEAgLTI4NTMsOCArMjg1OCw4IEBAIGFuZ2xlOjpSZXN1
bHQgVGV4dHVyZUQzRF8zRDo6aW5pdGlhbGl6ZVN0b3JhZ2UoY29uc3QgZ2w6OkNvbnRleHQgKmNv
bnRleHQsIGJvb2wKIAogICAgIGJvb2wgY3JlYXRlUmVuZGVyVGFyZ2V0ID0gKHJlbmRlclRhcmdl
dCB8fCBJc1JlbmRlclRhcmdldFVzYWdlKG1TdGF0ZS5nZXRVc2FnZSgpKSk7CiAKLSAgICBUZXhT
dG9yYWdlUG9pbnRlciBzdG9yYWdlKGNvbnRleHQpOwotICAgIEFOR0xFX1RSWShjcmVhdGVDb21w
bGV0ZVN0b3JhZ2UoY3JlYXRlUmVuZGVyVGFyZ2V0LCAmc3RvcmFnZSkpOworICAgIFRleFN0b3Jh
Z2VQb2ludGVyIHN0b3JhZ2U7CisgICAgQU5HTEVfVFJZKGNyZWF0ZUNvbXBsZXRlU3RvcmFnZShj
b250ZXh0LCBjcmVhdGVSZW5kZXJUYXJnZXQsICZzdG9yYWdlKSk7CiAKICAgICBBTkdMRV9UUlko
c2V0Q29tcGxldGVUZXhTdG9yYWdlKGNvbnRleHQsIHN0b3JhZ2UuZ2V0KCkpKTsKICAgICBzdG9y
YWdlLnJlbGVhc2UoKTsKQEAgLTI4NjcsNyArMjg3Miw4IEBAIGFuZ2xlOjpSZXN1bHQgVGV4dHVy
ZUQzRF8zRDo6aW5pdGlhbGl6ZVN0b3JhZ2UoY29uc3QgZ2w6OkNvbnRleHQgKmNvbnRleHQsIGJv
b2wKICAgICByZXR1cm4gYW5nbGU6OlJlc3VsdDo6Q29udGludWU7CiB9CiAKLWFuZ2xlOjpSZXN1
bHQgVGV4dHVyZUQzRF8zRDo6Y3JlYXRlQ29tcGxldGVTdG9yYWdlKGJvb2wgcmVuZGVyVGFyZ2V0
LAorYW5nbGU6OlJlc3VsdCBUZXh0dXJlRDNEXzNEOjpjcmVhdGVDb21wbGV0ZVN0b3JhZ2UoY29u
c3QgZ2w6OkNvbnRleHQgKmNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBib29sIHJlbmRlclRhcmdldCwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleFN0b3JhZ2VQb2ludGVyICpvdXRT
dG9yYWdlKSBjb25zdAogewogICAgIEdMc2l6ZWkgd2lkdGggICAgICAgICA9IGdldExldmVsWmVy
b1dpZHRoKCk7CkBAIC0yODgyLDggKzI4ODgsOSBAQCBhbmdsZTo6UmVzdWx0IFRleHR1cmVEM0Rf
M0Q6OmNyZWF0ZUNvbXBsZXRlU3RvcmFnZShib29sIHJlbmRlclRhcmdldCwKICAgICAgICAgKG1U
ZXhTdG9yYWdlID8gbVRleFN0b3JhZ2UtPmdldExldmVsQ291bnQoKSA6IGNyZWF0aW9uTGV2ZWxz
KHdpZHRoLCBoZWlnaHQsIGRlcHRoKSk7CiAKICAgICAvLyBUT0RPOiBWZXJpZnkgY3JlYXRpb24g
b2YgdGhlIHN0b3JhZ2Ugc3VjY2VlZGVkCi0gICAgb3V0U3RvcmFnZS0+cmVzZXQobVJlbmRlcmVy
LT5jcmVhdGVUZXh0dXJlU3RvcmFnZTNEKGludGVybmFsRm9ybWF0LCByZW5kZXJUYXJnZXQsIHdp
ZHRoLCBoZWlnaHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGRlcHRoLCBsZXZlbHMsIG1TdGF0ZS5nZXRMYWJlbCgpKSk7CisgICAgKm91
dFN0b3JhZ2UgPSB7bVJlbmRlcmVyLT5jcmVhdGVUZXh0dXJlU3RvcmFnZTNEKGludGVybmFsRm9y
bWF0LCByZW5kZXJUYXJnZXQsIHdpZHRoLCBoZWlnaHQsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcHRoLCBsZXZlbHMsIG1TdGF0ZS5nZXRM
YWJlbCgpKSwKKyAgICAgICAgICAgICAgICAgICBjb250ZXh0fTsKIAogICAgIHJldHVybiBhbmds
ZTo6UmVzdWx0OjpDb250aW51ZTsKIH0KQEAgLTM1MDUsMTEgKzM1MTIsMTEgQEAgYW5nbGU6OlJl
c3VsdCBUZXh0dXJlRDNEXzJEQXJyYXk6OnNldFN0b3JhZ2UoY29uc3QgZ2w6OkNvbnRleHQgKmNv
bnRleHQsCiAgICAgfQogCiAgICAgLy8gVE9ETyhnZW9mZmxhbmcpOiBWZXJpZnkgc3RvcmFnZSBj
cmVhdGlvbiBoYWQgbm8gZXJyb3JzCi0gICAgYm9vbCByZW5kZXJUYXJnZXQgPSBJc1JlbmRlclRh
cmdldFVzYWdlKG1TdGF0ZS5nZXRVc2FnZSgpKTsKLSAgICBUZXhTdG9yYWdlUG9pbnRlciBzdG9y
YWdlKGNvbnRleHQpOwotICAgIHN0b3JhZ2UucmVzZXQobVJlbmRlcmVyLT5jcmVhdGVUZXh0dXJl
U3RvcmFnZTJEQXJyYXkoCi0gICAgICAgIGludGVybmFsRm9ybWF0LCByZW5kZXJUYXJnZXQsIHNp
emUud2lkdGgsIHNpemUuaGVpZ2h0LCBzaXplLmRlcHRoLCBzdGF0aWNfY2FzdDxpbnQ+KGxldmVs
cyksCi0gICAgICAgIG1TdGF0ZS5nZXRMYWJlbCgpKSk7CisgICAgYm9vbCByZW5kZXJUYXJnZXQg
ICAgICAgICA9IElzUmVuZGVyVGFyZ2V0VXNhZ2UobVN0YXRlLmdldFVzYWdlKCkpOworICAgIFRl
eFN0b3JhZ2VQb2ludGVyIHN0b3JhZ2UgPSB7bVJlbmRlcmVyLT5jcmVhdGVUZXh0dXJlU3RvcmFn
ZTJEQXJyYXkoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ZXJuYWxG
b3JtYXQsIHJlbmRlclRhcmdldCwgc2l6ZS53aWR0aCwgc2l6ZS5oZWlnaHQsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZS5kZXB0aCwgc3RhdGljX2Nhc3Q8aW50Pihs
ZXZlbHMpLCBtU3RhdGUuZ2V0TGFiZWwoKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb250ZXh0fTsKIAogICAgIEFOR0xFX1RSWShzZXRDb21wbGV0ZVRleFN0b3JhZ2UoY29u
dGV4dCwgc3RvcmFnZS5nZXQoKSkpOwogICAgIHN0b3JhZ2UucmVsZWFzZSgpOwpAQCAtMzU4Miw4
ICszNTg5LDggQEAgYW5nbGU6OlJlc3VsdCBUZXh0dXJlRDNEXzJEQXJyYXk6OmluaXRpYWxpemVT
dG9yYWdlKGNvbnN0IGdsOjpDb250ZXh0ICpjb250ZXh0LAogCiAgICAgYm9vbCBjcmVhdGVSZW5k
ZXJUYXJnZXQgPSAocmVuZGVyVGFyZ2V0IHx8IElzUmVuZGVyVGFyZ2V0VXNhZ2UobVN0YXRlLmdl
dFVzYWdlKCkpKTsKIAotICAgIFRleFN0b3JhZ2VQb2ludGVyIHN0b3JhZ2UoY29udGV4dCk7Ci0g
ICAgQU5HTEVfVFJZKGNyZWF0ZUNvbXBsZXRlU3RvcmFnZShjcmVhdGVSZW5kZXJUYXJnZXQsICZz
dG9yYWdlKSk7CisgICAgVGV4U3RvcmFnZVBvaW50ZXIgc3RvcmFnZTsKKyAgICBBTkdMRV9UUlko
Y3JlYXRlQ29tcGxldGVTdG9yYWdlKGNvbnRleHQsIGNyZWF0ZVJlbmRlclRhcmdldCwgJnN0b3Jh
Z2UpKTsKIAogICAgIEFOR0xFX1RSWShzZXRDb21wbGV0ZVRleFN0b3JhZ2UoY29udGV4dCwgc3Rv
cmFnZS5nZXQoKSkpOwogICAgIHN0b3JhZ2UucmVsZWFzZSgpOwpAQCAtMzU5Niw3ICszNjAzLDgg
QEAgYW5nbGU6OlJlc3VsdCBUZXh0dXJlRDNEXzJEQXJyYXk6OmluaXRpYWxpemVTdG9yYWdlKGNv
bnN0IGdsOjpDb250ZXh0ICpjb250ZXh0LAogICAgIHJldHVybiBhbmdsZTo6UmVzdWx0OjpDb250
aW51ZTsKIH0KIAotYW5nbGU6OlJlc3VsdCBUZXh0dXJlRDNEXzJEQXJyYXk6OmNyZWF0ZUNvbXBs
ZXRlU3RvcmFnZShib29sIHJlbmRlclRhcmdldCwKK2FuZ2xlOjpSZXN1bHQgVGV4dHVyZUQzRF8y
REFycmF5OjpjcmVhdGVDb21wbGV0ZVN0b3JhZ2UoY29uc3QgZ2w6OkNvbnRleHQgKmNvbnRleHQs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGJvb2wgcmVuZGVyVGFyZ2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBUZXhTdG9yYWdlUG9pbnRlciAqb3V0U3RvcmFnZSkgY29uc3QK
IHsKICAgICBHTHNpemVpIHdpZHRoICAgICAgICAgPSBnZXRMZXZlbFplcm9XaWR0aCgpOwpAQCAt
MzYxMCw4ICszNjE4LDkgQEAgYW5nbGU6OlJlc3VsdCBUZXh0dXJlRDNEXzJEQXJyYXk6OmNyZWF0
ZUNvbXBsZXRlU3RvcmFnZShib29sIHJlbmRlclRhcmdldCwKICAgICBHTGludCBsZXZlbHMgPSAo
bVRleFN0b3JhZ2UgPyBtVGV4U3RvcmFnZS0+Z2V0TGV2ZWxDb3VudCgpIDogY3JlYXRpb25MZXZl
bHMod2lkdGgsIGhlaWdodCwgMSkpOwogCiAgICAgLy8gVE9ETyhnZW9mZmxhbmcpOiBWZXJpZnkg
c3RvcmFnZSBjcmVhdGlvbiBzdWNjZWVkcwotICAgIG91dFN0b3JhZ2UtPnJlc2V0KG1SZW5kZXJl
ci0+Y3JlYXRlVGV4dHVyZVN0b3JhZ2UyREFycmF5KAotICAgICAgICBpbnRlcm5hbEZvcm1hdCwg
cmVuZGVyVGFyZ2V0LCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCwgbGV2ZWxzLCBtU3RhdGUuZ2V0TGFi
ZWwoKSkpOworICAgICpvdXRTdG9yYWdlID0ge21SZW5kZXJlci0+Y3JlYXRlVGV4dHVyZVN0b3Jh
Z2UyREFycmF5KGludGVybmFsRm9ybWF0LCByZW5kZXJUYXJnZXQsIHdpZHRoLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodCwg
ZGVwdGgsIGxldmVscywgbVN0YXRlLmdldExhYmVsKCkpLAorICAgICAgICAgICAgICAgICAgIGNv
bnRleHR9OwogCiAgICAgcmV0dXJuIGFuZ2xlOjpSZXN1bHQ6OkNvbnRpbnVlOwogfQpAQCAtNDAy
Myw3ICs0MDMyLDggQEAgYW5nbGU6OlJlc3VsdCBUZXh0dXJlRDNEX0V4dGVybmFsOjppbml0aWFs
aXplU3RvcmFnZShjb25zdCBnbDo6Q29udGV4dCAqY29udGV4dCwKICAgICByZXR1cm4gYW5nbGU6
OlJlc3VsdDo6Q29udGludWU7CiB9CiAKLWFuZ2xlOjpSZXN1bHQgVGV4dHVyZUQzRF9FeHRlcm5h
bDo6Y3JlYXRlQ29tcGxldGVTdG9yYWdlKGJvb2wgcmVuZGVyVGFyZ2V0LAorYW5nbGU6OlJlc3Vs
dCBUZXh0dXJlRDNEX0V4dGVybmFsOjpjcmVhdGVDb21wbGV0ZVN0b3JhZ2UoY29uc3QgZ2w6OkNv
bnRleHQgKmNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBib29sIHJlbmRlclRhcmdldCwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleFN0b3JhZ2VQb2ludGVyICpv
dXRTdG9yYWdlKSBjb25zdAogewogICAgIFVOUkVBQ0hBQkxFKCk7CkBAIC00MDg1LDEwICs0MDk1
LDEwIEBAIGFuZ2xlOjpSZXN1bHQgVGV4dHVyZUQzRF8yRE11bHRpc2FtcGxlOjpzZXRTdG9yYWdl
TXVsdGlzYW1wbGUoY29uc3QgZ2w6OkNvbnRleHQKIAogICAgIC8vIFdlIGFsbG9jYXRlIHN0b3Jh
Z2UgaW1tZWRpYXRlbHkgaW5zdGVhZCBvZiBkb2luZyBpdCBsYXppbHkgbGlrZSBvdGhlciBUZXh0
dXJlRDNEIGNsYXNzZXMgZG8uCiAgICAgLy8gVGhpcyByZXF1aXJlcyBsZXNzIHN0YXRlIGluIHRo
aXMgY2xhc3MuCi0gICAgVGV4U3RvcmFnZVBvaW50ZXIgc3RvcmFnZShjb250ZXh0KTsKLSAgICBz
dG9yYWdlLnJlc2V0KG1SZW5kZXJlci0+Y3JlYXRlVGV4dHVyZVN0b3JhZ2UyRE11bHRpc2FtcGxl
KAotICAgICAgICBpbnRlcm5hbGZvcm1hdCwgc2l6ZS53aWR0aCwgc2l6ZS5oZWlnaHQsIHN0YXRp
Y19jYXN0PGludD4oMCksIHNhbXBsZXMsIGZpeGVkU2FtcGxlTG9jYXRpb25zLAotICAgICAgICBt
U3RhdGUuZ2V0TGFiZWwoKSkpOworICAgIFRleFN0b3JhZ2VQb2ludGVyIHN0b3JhZ2UgPSB7bVJl
bmRlcmVyLT5jcmVhdGVUZXh0dXJlU3RvcmFnZTJETXVsdGlzYW1wbGUoCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaW50ZXJuYWxmb3JtYXQsIHNpemUud2lkdGgsIHNpemUu
aGVpZ2h0LCBzdGF0aWNfY2FzdDxpbnQ+KDApLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNhbXBsZXMsIGZpeGVkU2FtcGxlTG9jYXRpb25zLCBtU3RhdGUuZ2V0TGFiZWwo
KSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0fTsKIAogICAgIEFO
R0xFX1RSWShzZXRDb21wbGV0ZVRleFN0b3JhZ2UoY29udGV4dCwgc3RvcmFnZS5nZXQoKSkpOwog
ICAgIHN0b3JhZ2UucmVsZWFzZSgpOwpAQCAtNDE1MSwxMSArNDE2MSwxMiBAQCBhbmdsZTo6UmVz
dWx0IFRleHR1cmVEM0RfMkRNdWx0aXNhbXBsZTo6aW5pdGlhbGl6ZVN0b3JhZ2UoY29uc3QgZ2w6
OkNvbnRleHQgKmNvbgogICAgIHJldHVybiBhbmdsZTo6UmVzdWx0OjpDb250aW51ZTsKIH0KIAot
YW5nbGU6OlJlc3VsdCBUZXh0dXJlRDNEXzJETXVsdGlzYW1wbGU6OmNyZWF0ZUNvbXBsZXRlU3Rv
cmFnZShib29sIHJlbmRlclRhcmdldCwKK2FuZ2xlOjpSZXN1bHQgVGV4dHVyZUQzRF8yRE11bHRp
c2FtcGxlOjpjcmVhdGVDb21wbGV0ZVN0b3JhZ2UoY29uc3QgZ2w6OkNvbnRleHQgKmNvbnRleHQs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGJvb2wgcmVuZGVyVGFyZ2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXhTdG9yYWdlUG9pbnRlciAqb3V0U3Rv
cmFnZSkgY29uc3QKIHsKICAgICBVTlJFQUNIQUJMRSgpOwotICAgIG91dFN0b3JhZ2UtPnJlc2V0
KG1UZXhTdG9yYWdlKTsKKyAgICAqb3V0U3RvcmFnZSA9IHttVGV4U3RvcmFnZSwgY29udGV4dH07
CiAgICAgcmV0dXJuIGFuZ2xlOjpSZXN1bHQ6OkNvbnRpbnVlOwogfQogCkBAIC00MjAzLDEwICs0
MjE0LDExIEBAIGFuZ2xlOjpSZXN1bHQgVGV4dHVyZUQzRF8yRE11bHRpc2FtcGxlQXJyYXk6OnNl
dFN0b3JhZ2VNdWx0aXNhbXBsZShjb25zdCBnbDo6Q29uCiAKICAgICBtTGF5ZXJDb3VudCA9IHNp
emUuZGVwdGg7CiAKLSAgICBUZXhTdG9yYWdlUG9pbnRlciBzdG9yYWdlKGNvbnRleHQpOwotICAg
IHN0b3JhZ2UucmVzZXQobVJlbmRlcmVyLT5jcmVhdGVUZXh0dXJlU3RvcmFnZTJETXVsdGlzYW1w
bGVBcnJheSgKLSAgICAgICAgaW50ZXJuYWxmb3JtYXQsIHNpemUud2lkdGgsIHNpemUuaGVpZ2h0
LCBzaXplLmRlcHRoLCBzdGF0aWNfY2FzdDxpbnQ+KDApLCBzYW1wbGVzLAotICAgICAgICBmaXhl
ZFNhbXBsZUxvY2F0aW9ucywgbVN0YXRlLmdldExhYmVsKCkpKTsKKyAgICBUZXhTdG9yYWdlUG9p
bnRlciBzdG9yYWdlID0geworICAgICAgICBtUmVuZGVyZXItPmNyZWF0ZVRleHR1cmVTdG9yYWdl
MkRNdWx0aXNhbXBsZUFycmF5KGludGVybmFsZm9ybWF0LCBzaXplLndpZHRoLCBzaXplLmhlaWdo
dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzaXplLmRlcHRoLCBzdGF0aWNfY2FzdDxpbnQ+KDApLCBzYW1wbGVzLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpeGVkU2Ft
cGxlTG9jYXRpb25zLCBtU3RhdGUuZ2V0TGFiZWwoKSksCisgICAgICAgIGNvbnRleHR9OwogCiAg
ICAgQU5HTEVfVFJZKHNldENvbXBsZXRlVGV4U3RvcmFnZShjb250ZXh0LCBzdG9yYWdlLmdldCgp
KSk7CiAgICAgc3RvcmFnZS5yZWxlYXNlKCk7CkBAIC00MjY4LDExICs0MjgwLDEyIEBAIGFuZ2xl
OjpSZXN1bHQgVGV4dHVyZUQzRF8yRE11bHRpc2FtcGxlQXJyYXk6OmluaXRpYWxpemVTdG9yYWdl
KGNvbnN0IGdsOjpDb250ZXh0CiB9CiAKIGFuZ2xlOjpSZXN1bHQgVGV4dHVyZUQzRF8yRE11bHRp
c2FtcGxlQXJyYXk6OmNyZWF0ZUNvbXBsZXRlU3RvcmFnZSgKKyAgICBjb25zdCBnbDo6Q29udGV4
dCAqY29udGV4dCwKICAgICBib29sIHJlbmRlclRhcmdldCwKICAgICBUZXhTdG9yYWdlUG9pbnRl
ciAqb3V0U3RvcmFnZSkgY29uc3QKIHsKICAgICBVTlJFQUNIQUJMRSgpOwotICAgIG91dFN0b3Jh
Z2UtPnJlc2V0KG1UZXhTdG9yYWdlKTsKKyAgICAqb3V0U3RvcmFnZSA9IHttVGV4U3RvcmFnZSwg
Y29udGV4dH07CiAgICAgcmV0dXJuIGFuZ2xlOjpSZXN1bHQ6OkNvbnRpbnVlOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvZDNk
L1RleHR1cmVEM0QuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5k
ZXJlci9kM2QvVGV4dHVyZUQzRC5oCmluZGV4IDRlMWU4NTFmNDM0OGQ5ZTdmN2ZjZTg0MWZhMzcw
NWNhNGVmYjFlOGIuLjRkYjhkZmFiOGNiZmQxOGVmZWVlODEwYTI3M2ZjOTYyYjhmMTNmMDYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9k
M2QvVGV4dHVyZUQzRC5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdM
RS9yZW5kZXJlci9kM2QvVGV4dHVyZUQzRC5oCkBAIC0xMTQsNiArMTE0LDcgQEAgY2xhc3MgVGV4
dHVyZUQzRCA6IHB1YmxpYyBUZXh0dXJlSW1wbCwgcHVibGljIGFuZ2xlOjpPYnNlcnZlckludGVy
ZmFjZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdsOjpDb21tYW5kIHNvdXJjZSkgb3Zl
cnJpZGU7CiAKICAgICBhbmdsZTo6UmVzdWx0IGluaXRpYWxpemVDb250ZW50cyhjb25zdCBnbDo6
Q29udGV4dCAqY29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBH
TGVudW0gYmluZGluZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z
dCBnbDo6SW1hZ2VJbmRleCAmaW1hZ2VJbmRleCkgb3ZlcnJpZGU7CiAKICAgICBHTHNpemVpIGdl
dFJlbmRlclRvVGV4dHVyZVNhbXBsZXMoKTsKQEAgLTE3Niw3ICsxNzcsOCBAQCBjbGFzcyBUZXh0
dXJlRDNEIDogcHVibGljIFRleHR1cmVJbXBsLCBwdWJsaWMgYW5nbGU6Ok9ic2VydmVySW50ZXJm
YWNlCiAgICAgYm9vbCBjYW5DcmVhdGVSZW5kZXJUYXJnZXRGb3JJbWFnZShjb25zdCBnbDo6SW1h
Z2VJbmRleCAmaW5kZXgpIGNvbnN0OwogICAgIGFuZ2xlOjpSZXN1bHQgZW5zdXJlUmVuZGVyVGFy
Z2V0KGNvbnN0IGdsOjpDb250ZXh0ICpjb250ZXh0KTsKIAotICAgIHZpcnR1YWwgYW5nbGU6OlJl
c3VsdCBjcmVhdGVDb21wbGV0ZVN0b3JhZ2UoYm9vbCByZW5kZXJUYXJnZXQsCisgICAgdmlydHVh
bCBhbmdsZTo6UmVzdWx0IGNyZWF0ZUNvbXBsZXRlU3RvcmFnZShjb25zdCBnbDo6Q29udGV4dCAq
Y29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGJvb2wgcmVuZGVyVGFyZ2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgVGV4U3RvcmFnZVBvaW50ZXIgKm91dFRleFN0b3JhZ2UpIGNvbnN0ID0gMDsK
ICAgICB2aXJ0dWFsIGFuZ2xlOjpSZXN1bHQgc2V0Q29tcGxldGVUZXhTdG9yYWdlKGNvbnN0IGds
OjpDb250ZXh0ICpjb250ZXh0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgVGV4dHVyZVN0b3JhZ2UgKm5ld0NvbXBsZXRlVGV4U3RvcmFnZSkgID0gMDsK
QEAgLTMyMiw3ICszMjQsOCBAQCBjbGFzcyBUZXh0dXJlRDNEXzJEIDogcHVibGljIFRleHR1cmVE
M0QKIAogICBwcml2YXRlOgogICAgIGFuZ2xlOjpSZXN1bHQgaW5pdGlhbGl6ZVN0b3JhZ2UoY29u
c3QgZ2w6OkNvbnRleHQgKmNvbnRleHQsIGJvb2wgcmVuZGVyVGFyZ2V0KSBvdmVycmlkZTsKLSAg
ICBhbmdsZTo6UmVzdWx0IGNyZWF0ZUNvbXBsZXRlU3RvcmFnZShib29sIHJlbmRlclRhcmdldCwK
KyAgICBhbmdsZTo6UmVzdWx0IGNyZWF0ZUNvbXBsZXRlU3RvcmFnZShjb25zdCBnbDo6Q29udGV4
dCAqY29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29s
IHJlbmRlclRhcmdldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBU
ZXhTdG9yYWdlUG9pbnRlciAqb3V0VGV4U3RvcmFnZSkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYW5n
bGU6OlJlc3VsdCBzZXRDb21wbGV0ZVRleFN0b3JhZ2UoY29uc3QgZ2w6OkNvbnRleHQgKmNvbnRl
eHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dHVyZVN0b3Jh
Z2UgKm5ld0NvbXBsZXRlVGV4U3RvcmFnZSkgb3ZlcnJpZGU7CkBAIC00NTIsNyArNDU1LDggQEAg
Y2xhc3MgVGV4dHVyZUQzRF9DdWJlIDogcHVibGljIFRleHR1cmVEM0QKIAogICBwcml2YXRlOgog
ICAgIGFuZ2xlOjpSZXN1bHQgaW5pdGlhbGl6ZVN0b3JhZ2UoY29uc3QgZ2w6OkNvbnRleHQgKmNv
bnRleHQsIGJvb2wgcmVuZGVyVGFyZ2V0KSBvdmVycmlkZTsKLSAgICBhbmdsZTo6UmVzdWx0IGNy
ZWF0ZUNvbXBsZXRlU3RvcmFnZShib29sIHJlbmRlclRhcmdldCwKKyAgICBhbmdsZTo6UmVzdWx0
IGNyZWF0ZUNvbXBsZXRlU3RvcmFnZShjb25zdCBnbDo6Q29udGV4dCAqY29udGV4dCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIHJlbmRlclRhcmdldCwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXhTdG9yYWdlUG9pbnRlciAq
b3V0VGV4U3RvcmFnZSkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYW5nbGU6OlJlc3VsdCBzZXRDb21w
bGV0ZVRleFN0b3JhZ2UoY29uc3QgZ2w6OkNvbnRleHQgKmNvbnRleHQsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dHVyZVN0b3JhZ2UgKm5ld0NvbXBsZXRlVGV4
U3RvcmFnZSkgb3ZlcnJpZGU7CkBAIC01ODYsNyArNTkwLDggQEAgY2xhc3MgVGV4dHVyZUQzRF8z
RCA6IHB1YmxpYyBUZXh0dXJlRDNECiAKICAgcHJpdmF0ZToKICAgICBhbmdsZTo6UmVzdWx0IGlu
aXRpYWxpemVTdG9yYWdlKGNvbnN0IGdsOjpDb250ZXh0ICpjb250ZXh0LCBib29sIHJlbmRlclRh
cmdldCkgb3ZlcnJpZGU7Ci0gICAgYW5nbGU6OlJlc3VsdCBjcmVhdGVDb21wbGV0ZVN0b3JhZ2Uo
Ym9vbCByZW5kZXJUYXJnZXQsCisgICAgYW5nbGU6OlJlc3VsdCBjcmVhdGVDb21wbGV0ZVN0b3Jh
Z2UoY29uc3QgZ2w6OkNvbnRleHQgKmNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYm9vbCByZW5kZXJUYXJnZXQsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgVGV4U3RvcmFnZVBvaW50ZXIgKm91dFN0b3JhZ2UpIGNvbnN0IG92
ZXJyaWRlOwogICAgIGFuZ2xlOjpSZXN1bHQgc2V0Q29tcGxldGVUZXhTdG9yYWdlKGNvbnN0IGds
OjpDb250ZXh0ICpjb250ZXh0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFRleHR1cmVTdG9yYWdlICpuZXdDb21wbGV0ZVRleFN0b3JhZ2UpIG92ZXJyaWRlOwpAQCAt
NzE1LDcgKzcyMCw4IEBAIGNsYXNzIFRleHR1cmVEM0RfMkRBcnJheSA6IHB1YmxpYyBUZXh0dXJl
RDNECiAKICAgcHJpdmF0ZToKICAgICBhbmdsZTo6UmVzdWx0IGluaXRpYWxpemVTdG9yYWdlKGNv
bnN0IGdsOjpDb250ZXh0ICpjb250ZXh0LCBib29sIHJlbmRlclRhcmdldCkgb3ZlcnJpZGU7Ci0g
ICAgYW5nbGU6OlJlc3VsdCBjcmVhdGVDb21wbGV0ZVN0b3JhZ2UoYm9vbCByZW5kZXJUYXJnZXQs
CisgICAgYW5nbGU6OlJlc3VsdCBjcmVhdGVDb21wbGV0ZVN0b3JhZ2UoY29uc3QgZ2w6OkNvbnRl
eHQgKmNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9v
bCByZW5kZXJUYXJnZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
VGV4U3RvcmFnZVBvaW50ZXIgKm91dFN0b3JhZ2UpIGNvbnN0IG92ZXJyaWRlOwogICAgIGFuZ2xl
OjpSZXN1bHQgc2V0Q29tcGxldGVUZXhTdG9yYWdlKGNvbnN0IGdsOjpDb250ZXh0ICpjb250ZXh0
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleHR1cmVTdG9yYWdl
ICpuZXdDb21wbGV0ZVRleFN0b3JhZ2UpIG92ZXJyaWRlOwpAQCAtODMyLDcgKzgzOCw4IEBAIGNs
YXNzIFRleHR1cmVEM0RfRXh0ZXJuYWwgOiBwdWJsaWMgVGV4dHVyZUQzREltbXV0YWJsZUJhc2UK
IAogICBwcml2YXRlOgogICAgIGFuZ2xlOjpSZXN1bHQgaW5pdGlhbGl6ZVN0b3JhZ2UoY29uc3Qg
Z2w6OkNvbnRleHQgKmNvbnRleHQsIGJvb2wgcmVuZGVyVGFyZ2V0KSBvdmVycmlkZTsKLSAgICBh
bmdsZTo6UmVzdWx0IGNyZWF0ZUNvbXBsZXRlU3RvcmFnZShib29sIHJlbmRlclRhcmdldCwKKyAg
ICBhbmdsZTo6UmVzdWx0IGNyZWF0ZUNvbXBsZXRlU3RvcmFnZShjb25zdCBnbDo6Q29udGV4dCAq
Y29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIHJl
bmRlclRhcmdldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXhT
dG9yYWdlUG9pbnRlciAqb3V0VGV4U3RvcmFnZSkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYW5nbGU6
OlJlc3VsdCBzZXRDb21wbGV0ZVRleFN0b3JhZ2UoY29uc3QgZ2w6OkNvbnRleHQgKmNvbnRleHQs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dHVyZVN0b3JhZ2Ug
Km5ld0NvbXBsZXRlVGV4U3RvcmFnZSkgb3ZlcnJpZGU7CkBAIC04ODEsNyArODg4LDggQEAgY2xh
c3MgVGV4dHVyZUQzRF8yRE11bHRpc2FtcGxlIDogcHVibGljIFRleHR1cmVEM0RJbW11dGFibGVC
YXNlCiAKICAgcHJpdmF0ZToKICAgICBhbmdsZTo6UmVzdWx0IGluaXRpYWxpemVTdG9yYWdlKGNv
bnN0IGdsOjpDb250ZXh0ICpjb250ZXh0LCBib29sIHJlbmRlclRhcmdldCkgb3ZlcnJpZGU7Ci0g
ICAgYW5nbGU6OlJlc3VsdCBjcmVhdGVDb21wbGV0ZVN0b3JhZ2UoYm9vbCByZW5kZXJUYXJnZXQs
CisgICAgYW5nbGU6OlJlc3VsdCBjcmVhdGVDb21wbGV0ZVN0b3JhZ2UoY29uc3QgZ2w6OkNvbnRl
eHQgKmNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9v
bCByZW5kZXJUYXJnZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
VGV4U3RvcmFnZVBvaW50ZXIgKm91dFRleFN0b3JhZ2UpIGNvbnN0IG92ZXJyaWRlOwogICAgIGFu
Z2xlOjpSZXN1bHQgaW5pdE1pcG1hcEltYWdlcyhjb25zdCBnbDo6Q29udGV4dCAqY29udGV4dCkg
b3ZlcnJpZGU7CiAKQEAgLTkyNiw3ICs5MzQsOCBAQCBjbGFzcyBUZXh0dXJlRDNEXzJETXVsdGlz
YW1wbGVBcnJheSA6IHB1YmxpYyBUZXh0dXJlRDNESW1tdXRhYmxlQmFzZQogCiAgIHByaXZhdGU6
CiAgICAgYW5nbGU6OlJlc3VsdCBpbml0aWFsaXplU3RvcmFnZShjb25zdCBnbDo6Q29udGV4dCAq
Y29udGV4dCwgYm9vbCByZW5kZXJUYXJnZXQpIG92ZXJyaWRlOwotICAgIGFuZ2xlOjpSZXN1bHQg
Y3JlYXRlQ29tcGxldGVTdG9yYWdlKGJvb2wgcmVuZGVyVGFyZ2V0LAorICAgIGFuZ2xlOjpSZXN1
bHQgY3JlYXRlQ29tcGxldGVTdG9yYWdlKGNvbnN0IGdsOjpDb250ZXh0ICpjb250ZXh0LAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgcmVuZGVyVGFyZ2V0LAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRleFN0b3JhZ2VQb2ludGVy
ICpvdXRUZXhTdG9yYWdlKSBjb25zdCBvdmVycmlkZTsKICAgICBhbmdsZTo6UmVzdWx0IGluaXRN
aXBtYXBJbWFnZXMoY29uc3QgZ2w6OkNvbnRleHQgKmNvbnRleHQpIG92ZXJyaWRlOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvZDNk
L1ZlcnRleERhdGFNYW5hZ2VyLmNwcCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJB
TkdMRS9yZW5kZXJlci9kM2QvVmVydGV4RGF0YU1hbmFnZXIuY3BwCmluZGV4IGMyMzA3ZWEyOTU4
MzliMjIwYTE3NjhhZWI3OGQzZGY4MTkzY2IzZTQuLjZiOTg5YzllODBkYWMzOWQ4ZTFjMjQ0NjA5
MWI0Nzg3YTJmZmI0ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9s
aWJBTkdMRS9yZW5kZXJlci9kM2QvVmVydGV4RGF0YU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9kM2QvVmVydGV4RGF0YU1hbmFn
ZXIuY3BwCkBAIC0yMjAsNiArMjIwLDcgQEAgVmVydGV4RGF0YU1hbmFnZXI6OkN1cnJlbnRWYWx1
ZVN0YXRlOjp+Q3VycmVudFZhbHVlU3RhdGUoKSB7fQogVmVydGV4RGF0YU1hbmFnZXI6OlZlcnRl
eERhdGFNYW5hZ2VyKEJ1ZmZlckZhY3RvcnlEM0QgKmZhY3RvcnkpCiAgICAgOiBtRmFjdG9yeShm
YWN0b3J5KSwgbVN0cmVhbWluZ0J1ZmZlcihmYWN0b3J5KQogeworICAgIG1DdXJyZW50VmFsdWVD
YWNoZS5yZXNlcnZlKGdsOjpNQVhfVkVSVEVYX0FUVFJJQlMpOwogICAgIGZvciAoaW50IGN1cnJl
bnRWYWx1ZUluZGV4ID0gMDsgY3VycmVudFZhbHVlSW5kZXggPCBnbDo6TUFYX1ZFUlRFWF9BVFRS
SUJTOyArK2N1cnJlbnRWYWx1ZUluZGV4KQogICAgIHsKICAgICAgICAgbUN1cnJlbnRWYWx1ZUNh
Y2hlLmVtcGxhY2VfYmFjayhmYWN0b3J5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9kM2QvZDNkMTEvRXh0ZXJuYWxJbWFnZVNpYmxp
bmdJbXBsMTEuY3BwIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRl
cmVyL2QzZC9kM2QxMS9FeHRlcm5hbEltYWdlU2libGluZ0ltcGwxMS5jcHAKaW5kZXggODMyOWNi
ZDdjNzExOTNlMGY2MmVlZWNlMzM1ZjNlNzg0MGYyNjVlZC4uOWVmM2NmYWU1Y2IyZmVkZWY0ODhh
NmUwNTU4MDA4NDNiNWIyYzkwZiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUv
c3JjL2xpYkFOR0xFL3JlbmRlcmVyL2QzZC9kM2QxMS9FeHRlcm5hbEltYWdlU2libGluZ0ltcGwx
MS5jcHAKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVy
L2QzZC9kM2QxMS9FeHRlcm5hbEltYWdlU2libGluZ0ltcGwxMS5jcHAKQEAgLTEwOSw2ICsxMDks
NyBAQCBhbmdsZTo6UmVzdWx0IEV4dGVybmFsSW1hZ2VTaWJsaW5nSW1wbDExOjpnZXRBdHRhY2ht
ZW50UmVuZGVyVGFyZ2V0KAogfQogCiBhbmdsZTo6UmVzdWx0IEV4dGVybmFsSW1hZ2VTaWJsaW5n
SW1wbDExOjppbml0aWFsaXplQ29udGVudHMoY29uc3QgZ2w6OkNvbnRleHQgKmNvbnRleHQsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgR0xlbnVtIGJpbmRpbmcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2w6OkltYWdlSW5kZXggJmltYWdlSW5kZXgp
CiB7CiAgICAgVU5SRUFDSEFCTEUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FO
R0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9kM2QvZDNkMTEvRXh0ZXJuYWxJbWFnZVNpYmxpbmdJ
bXBsMTEuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9k
M2QvZDNkMTEvRXh0ZXJuYWxJbWFnZVNpYmxpbmdJbXBsMTEuaAppbmRleCA0NWRkNDJjZjZkZWZj
OGQzM2M0NjM4MmY0NDkwZDYxZGE3OGFiMDhiLi43ZmU0ZmQ0YzBlNTMzYjg4YmY4Mjg3NTg1MjNh
YTI4MDFjNTlkNjM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGli
QU5HTEUvcmVuZGVyZXIvZDNkL2QzZDExL0V4dGVybmFsSW1hZ2VTaWJsaW5nSW1wbDExLmgKKysr
IGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL2QzZC9kM2Qx
MS9FeHRlcm5hbEltYWdlU2libGluZ0ltcGwxMS5oCkBAIC00MSw2ICs0MSw3IEBAIGNsYXNzIEV4
dGVybmFsSW1hZ2VTaWJsaW5nSW1wbDExIDogcHVibGljIEV4dGVybmFsSW1hZ2VTaWJsaW5nSW1w
bAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTHNpemVpIHNh
bXBsZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZyYW1l
YnVmZmVyQXR0YWNobWVudFJlbmRlclRhcmdldCAqKnJ0T3V0KSBvdmVycmlkZTsKICAgICBhbmds
ZTo6UmVzdWx0IGluaXRpYWxpemVDb250ZW50cyhjb25zdCBnbDo6Q29udGV4dCAqY29udGV4dCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTGVudW0gYmluZGluZywKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnbDo6SW1hZ2VJbmRleCAm
aW1hZ2VJbmRleCkgb3ZlcnJpZGU7CiAKICAgcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9U
aGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9kM2QvZDNkMTEvUmVuZGVyU3Rh
dGVDYWNoZS5jcHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVy
ZXIvZDNkL2QzZDExL1JlbmRlclN0YXRlQ2FjaGUuY3BwCmluZGV4IDUwNGVmNGI5YjRiMjNlYTNh
YjM3NjAzNmQ0NWM1NDdjYzkwNzgxNzAuLjk2NGFjOGMyODcwODg4YTQ4NzdhOGMxY2NhMzFiMTJl
ZWZiNDhiNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdM
RS9yZW5kZXJlci9kM2QvZDNkMTEvUmVuZGVyU3RhdGVDYWNoZS5jcHAKKysrIGIvU291cmNlL1Ro
aXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL2QzZC9kM2QxMS9SZW5kZXJTdGF0
ZUNhY2hlLmNwcApAQCAtNTIsMTIgKzUyLDEyIEBAIGQzZDExOjpCbGVuZFN0YXRlS2V5IFJlbmRl
clN0YXRlQ2FjaGU6OkdldEJsZW5kU3RhdGVLZXkoY29uc3QgZ2w6OkNvbnRleHQgKmNvbnRlCiAg
ICAgLy8gQWxsIGZpZWxkcyBvZiB0aGUgQmxlbmRTdGF0ZUV4dCBpbnNpZGUgdGhlIGtleSBzaG91
bGQgYmUgaW5pdGlhbGl6ZWQgZm9yIHRoZSBjYWNoaW5nIHRvCiAgICAgLy8gd29yayBjb3JyZWN0
bHkuIER1ZSB0byBtcnRfcGVyZl93b3JrYXJvdW5kLCB0aGUgYWN0dWFsIGluZGljZXMgb2YgYWN0
aXZlIGRyYXcgYnVmZmVycyBtYXkgYmUKICAgICAvLyBkaWZmZXJlbnQsIHNvIGJvdGggYXJyYXlz
IHNob3VsZCBiZSB0cmFja2VkLgotICAgIGtleS5ibGVuZFN0YXRlRXh0ICAgICAgICAgICAgICAg
ICAgICAgID0gZ2w6OkJsZW5kU3RhdGVFeHQoYmxlbmRTdGF0ZUV4dC5tTWF4RHJhd0J1ZmZlcnMp
OworICAgIGtleS5ibGVuZFN0YXRlRXh0ICAgICAgICAgICAgICAgICAgICAgID0gZ2w6OkJsZW5k
U3RhdGVFeHQoYmxlbmRTdGF0ZUV4dC5nZXREcmF3QnVmZmVyQ291bnQoKSk7CiAgICAgY29uc3Qg
Z2w6OkF0dGFjaG1lbnRMaXN0ICZjb2xvcmJ1ZmZlcnMgPSBmcmFtZWJ1ZmZlcjExLT5nZXRDb2xv
ckF0dGFjaG1lbnRzRm9yUmVuZGVyKGNvbnRleHQpOwogICAgIGNvbnN0IGdsOjpEcmF3QnVmZmVy
TWFzayBjb2xvckF0dGFjaG1lbnRzRm9yUmVuZGVyTWFzayA9CiAgICAgICAgIGZyYW1lYnVmZmVy
MTEtPmdldExhc3RDb2xvckF0dGFjaG1lbnRzRm9yUmVuZGVyTWFzaygpOwogCi0gICAgQVNTRVJU
KGJsZW5kU3RhdGVFeHQubU1heERyYXdCdWZmZXJzIDw9IGNvbG9yQXR0YWNobWVudHNGb3JSZW5k
ZXJNYXNrLnNpemUoKSk7CisgICAgQVNTRVJUKGJsZW5kU3RhdGVFeHQuZ2V0RHJhd0J1ZmZlckNv
dW50KCkgPD0gY29sb3JBdHRhY2htZW50c0ZvclJlbmRlck1hc2suc2l6ZSgpKTsKICAgICBBU1NF
UlQoY29sb3JidWZmZXJzLnNpemUoKSA9PSBjb2xvckF0dGFjaG1lbnRzRm9yUmVuZGVyTWFzay5j
b3VudCgpKTsKIAogICAgIHNpemVfdCBrZXlCbGVuZEluZGV4ID0gMDsKQEAgLTg5LDcgKzg5LDcg
QEAgZDNkMTE6OkJsZW5kU3RhdGVLZXkgUmVuZGVyU3RhdGVDYWNoZTo6R2V0QmxlbmRTdGF0ZUtl
eShjb25zdCBnbDo6Q29udGV4dCAqY29udGUKICAgICAgICAgLy8gU29tZSBEM0QxMSBkcml2ZXJz
IHByb2R1Y2UgdW5leHBlY3RlZCByZXN1bHRzIHdoZW4gYmxlbmRpbmcgaXMgZW5hYmxlZCBmb3Ig
aW50ZWdlcgogICAgICAgICAvLyBhdHRhY2htZW50cy4gUGVyIE9wZW5HTCBFUyBzcGVjLCBpdCBt
dXN0IGJlIGlnbm9yZWQgYW55d2F5LiBXaGVuIGJsZW5kaW5nIGlzIGRpc2FibGVkLAogICAgICAg
ICAvLyB0aGUgc3RhdGUgcmVtYWlucyBkZWZhdWx0IHRvIHJlZHVjZSB0aGUgbnVtYmVyIG9mIHVu
aXF1ZSBrZXlzLgotICAgICAgICBpZiAoYmxlbmRTdGF0ZUV4dC5tRW5hYmxlZE1hc2sudGVzdChz
b3VyY2VJbmRleCkgJiYgIWludGVybmFsRm9ybWF0LmlzSW50KCkpCisgICAgICAgIGlmIChibGVu
ZFN0YXRlRXh0LmdldEVuYWJsZWRNYXNrKCkudGVzdChzb3VyY2VJbmRleCkgJiYgIWludGVybmFs
Rm9ybWF0LmlzSW50KCkpCiAgICAgICAgIHsKICAgICAgICAgICAgIGtleS5ibGVuZFN0YXRlRXh0
LnNldEVuYWJsZWRJbmRleGVkKGtleUJsZW5kSW5kZXgsIHRydWUpOwogICAgICAgICAgICAga2V5
LmJsZW5kU3RhdGVFeHQuc2V0RXF1YXRpb25zSW5kZXhlZChrZXlCbGVuZEluZGV4LCBzb3VyY2VJ
bmRleCwgYmxlbmRTdGF0ZUV4dCk7CkBAIC0xMjcsMTEgKzEyNywxMSBAQCBhbmdsZTo6UmVzdWx0
IFJlbmRlclN0YXRlQ2FjaGU6OmdldEJsZW5kU3RhdGUoY29uc3QgZ2w6OkNvbnRleHQgKmNvbnRl
eHQsCiAgICAgLy8gZmVhdHVyZSBsZXZlbC4gR2l2ZW4gdGhhdCB3ZSBkbyBub3QgZXhwb3NlIEdM
IGVudHJ5cG9pbnRzIHRoYXQgc2V0IHBlci1idWZmZXIgYmxlbmQgc3RhdGVzIG9uCiAgICAgLy8g
c3lzdGVtcyBsb3dlciB0aGFuIEZMMTBfMSwgdGhpcyBhcnJheSB3aWxsIGJlIGFsd2F5cyB2YWxp
ZC4KIAotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYmxlbmRTdGF0ZUV4dC5tTWF4RHJhd0J1
ZmZlcnM7IGkrKykKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGJsZW5kU3RhdGVFeHQuZ2V0
RHJhd0J1ZmZlckNvdW50KCk7IGkrKykKICAgICB7CiAgICAgICAgIEQzRDExX1JFTkRFUl9UQVJH
RVRfQkxFTkRfREVTQyAmcnREZXNjID0gYmxlbmREZXNjLlJlbmRlclRhcmdldFtpXTsKIAotICAg
ICAgICBpZiAoYmxlbmRTdGF0ZUV4dC5tRW5hYmxlZE1hc2sudGVzdChpKSkKKyAgICAgICAgaWYg
KGJsZW5kU3RhdGVFeHQuZ2V0RW5hYmxlZE1hc2soKS50ZXN0KGkpKQogICAgICAgICB7CiAgICAg
ICAgICAgICBydERlc2MuQmxlbmRFbmFibGUgPSB0cnVlOwogICAgICAgICAgICAgcnREZXNjLlNy
Y0JsZW5kID0KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdM
RS9yZW5kZXJlci9kM2QvZDNkMTEvUmVuZGVyZXIxMS5jcHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9B
TkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvZDNkL2QzZDExL1JlbmRlcmVyMTEuY3BwCmluZGV4
IDY3ODIzMjIxZjNlN2U3N2FjMTQ1YzgyY2Q1ZGQ3ZTA1YjY4MWY1ZTguLjk2OTk0ZDFkOGMyYWNi
ZTExY2FjZTBiY2MwYWVjOGFhMzZiZWUyNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5
L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9kM2QvZDNkMTEvUmVuZGVyZXIxMS5jcHAKKysr
IGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL2QzZC9kM2Qx
MS9SZW5kZXJlcjExLmNwcApAQCAtMTA4NSw3ICsxMDg1LDcgQEAgdm9pZCBSZW5kZXJlcjExOjpw
b3B1bGF0ZVJlbmRlcmVyMTFEZXZpY2VDYXBzKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICZtUmVuZGVyZXIxMURldmljZUNhcHMuQjVHNlI1bWF4U2FtcGxlcyk7CiAgICAgfQog
Ci0gICAgaWYgKGdldEZlYXR1cmVzKCkuYWxsb3dFUzNPbkZMMTBfMC5lbmFibGVkKQorICAgIGlm
IChnZXRGZWF0dXJlcygpLmFsbG93RVMzT25GTDEwMC5lbmFibGVkKQogICAgIHsKICAgICAgICAg
bVJlbmRlcmVyMTFEZXZpY2VDYXBzLmFsbG93RVMzT25GTDEwXzAgPSB0cnVlOwogICAgIH0KQEAg
LTE3NjgsNiArMTc2OCw4IEBAIGFuZ2xlOjpSZXN1bHQgUmVuZGVyZXIxMTo6ZHJhd0FycmF5cyhj
b25zdCBnbDo6Q29udGV4dCAqY29udGV4dCwKICAgICAgICAgcmV0dXJuIGFuZ2xlOjpSZXN1bHQ6
OkNvbnRpbnVlOwogICAgIH0KIAorICAgIEFOR0xFX1RSWShtYXJrUmF3QnVmZmVyVXNhZ2UoY29u
dGV4dCkpOworCiAgICAgUHJvZ3JhbUQzRCAqcHJvZ3JhbUQzRCAgICAgICAgPSBtU3RhdGVNYW5h
Z2VyLmdldFByb2dyYW1EM0QoKTsKICAgICBHTHNpemVpIGFkanVzdGVkSW5zdGFuY2VDb3VudCA9
IEdldEFkanVzdGVkSW5zdGFuY2VDb3VudChwcm9ncmFtRDNELCBpbnN0YW5jZUNvdW50KTsKIApA
QCAtMTg2MCw2ICsxODYyLDggQEAgYW5nbGU6OlJlc3VsdCBSZW5kZXJlcjExOjpkcmF3RWxlbWVu
dHMoY29uc3QgZ2w6OkNvbnRleHQgKmNvbnRleHQsCiAgICAgICAgIHJldHVybiBhbmdsZTo6UmVz
dWx0OjpDb250aW51ZTsKICAgICB9CiAKKyAgICBBTkdMRV9UUlkobWFya1Jhd0J1ZmZlclVzYWdl
KGNvbnRleHQpKTsKKwogICAgIC8vIFRyYW5zZm9ybSBmZWVkYmFjayBpcyBub3QgYWxsb3dlZCBm
b3IgRHJhd0VsZW1lbnRzLCB0aGlzIGVycm9yIHNob3VsZCBoYXZlIGJlZW4gY2F1Z2h0IGF0IHRo
ZQogICAgIC8vIEFQSSB2YWxpZGF0aW9uIGxheWVyLgogICAgIGNvbnN0IGdsOjpTdGF0ZSAmZ2xT
dGF0ZSA9IGNvbnRleHQtPmdldFN0YXRlKCk7CkBAIC0xOTQ1LDYgKzE5NDksOCBAQCBhbmdsZTo6
UmVzdWx0IFJlbmRlcmVyMTE6OmRyYXdBcnJheXNJbmRpcmVjdChjb25zdCBnbDo6Q29udGV4dCAq
Y29udGV4dCwgY29uc3QgdgogICAgICAgICByZXR1cm4gYW5nbGU6OlJlc3VsdDo6Q29udGludWU7
CiAgICAgfQogCisgICAgQU5HTEVfVFJZKG1hcmtSYXdCdWZmZXJVc2FnZShjb250ZXh0KSk7CisK
ICAgICBjb25zdCBnbDo6U3RhdGUgJmdsU3RhdGUgPSBjb250ZXh0LT5nZXRTdGF0ZSgpOwogICAg
IEFTU0VSVCghZ2xTdGF0ZS5pc1RyYW5zZm9ybUZlZWRiYWNrQWN0aXZlVW5wYXVzZWQoKSk7CiAK
QEAgLTE5NjcsNiArMTk3Myw4IEBAIGFuZ2xlOjpSZXN1bHQgUmVuZGVyZXIxMTo6ZHJhd0VsZW1l
bnRzSW5kaXJlY3QoY29uc3QgZ2w6OkNvbnRleHQgKmNvbnRleHQsIGNvbnN0CiAgICAgICAgIHJl
dHVybiBhbmdsZTo6UmVzdWx0OjpDb250aW51ZTsKICAgICB9CiAKKyAgICBBTkdMRV9UUlkobWFy
a1Jhd0J1ZmZlclVzYWdlKGNvbnRleHQpKTsKKwogICAgIGNvbnN0IGdsOjpTdGF0ZSAmZ2xTdGF0
ZSA9IGNvbnRleHQtPmdldFN0YXRlKCk7CiAgICAgQVNTRVJUKCFnbFN0YXRlLmlzVHJhbnNmb3Jt
RmVlZGJhY2tBY3RpdmVVbnBhdXNlZCgpKTsKIApAQCAtMzA3OSw3ICszMDg3LDcgQEAgYW5nbGU6
OlJlc3VsdCBSZW5kZXJlcjExOjpjb21waWxlVG9FeGVjdXRhYmxlKGQzZDo6Q29udGV4dCAqY29u
dGV4dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnbDo6
U2hhZGVyVHlwZSB0eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPEQzRFZhcnlpbmc+ICZzdHJlYW1PdXRWYXJ5aW5ncywK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIHNlcGFy
YXRlZE91dHB1dEJ1ZmZlcnMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3QgYW5nbGU6OkNvbXBpbGVyV29ya2Fyb3VuZHNEM0QgJndvcmthcm91bmRz
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IENv
bXBpbGVyV29ya2Fyb3VuZHNEM0QgJndvcmthcm91bmRzLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFNoYWRlckV4ZWN1dGFibGVEM0QgKipvdXRFeGVjdHVh
YmxlKQogewogICAgIHN0ZDo6c3RyaW5nc3RyZWFtIHByb2ZpbGVTdHJlYW07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvZDNkL2QzZDEx
L1JlbmRlcmVyMTEuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5k
ZXJlci9kM2QvZDNkMTEvUmVuZGVyZXIxMS5oCmluZGV4IDg0YzljMmNhNmM0OTY0YzRmOTRkZjI5
MDA1MzViNjIyY2JlZDY5ODEuLjA0ODIxYzQzYTllNWJiYTYwZDQ0MmUyZGI2MDBlMjNkNmQ1YWVk
Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5k
ZXJlci9kM2QvZDNkMTEvUmVuZGVyZXIxMS5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xF
L3NyYy9saWJBTkdMRS9yZW5kZXJlci9kM2QvZDNkMTEvUmVuZGVyZXIxMS5oCkBAIC0yMDcsNyAr
MjA3LDcgQEAgY2xhc3MgUmVuZGVyZXIxMSA6IHB1YmxpYyBSZW5kZXJlckQzRAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnbDo6U2hhZGVyVHlwZSB0eXBlLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGQ6OnZlY3RvcjxEM0RWYXJ5
aW5nPiAmc3RyZWFtT3V0VmFyeWluZ3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGJvb2wgc2VwYXJhdGVkT3V0cHV0QnVmZmVycywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgYW5nbGU6OkNvbXBpbGVyV29ya2Fyb3VuZHNEM0QgJndv
cmthcm91bmRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBD
b21waWxlcldvcmthcm91bmRzRDNEICZ3b3JrYXJvdW5kcywKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgU2hhZGVyRXhlY3V0YWJsZUQzRCAqKm91dEV4ZWN0dWFibGUpIG92
ZXJyaWRlOwogICAgIGFuZ2xlOjpSZXN1bHQgZW5zdXJlSExTTENvbXBpbGVySW5pdGlhbGl6ZWQo
ZDNkOjpDb250ZXh0ICpjb250ZXh0KSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL2QzZC9kM2QxMS9TdGF0ZU1hbmFn
ZXIxMS5jcHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIv
ZDNkL2QzZDExL1N0YXRlTWFuYWdlcjExLmNwcAppbmRleCA4NDNiNTRjMmZhNWM0YTkyZDdkOWVm
MjUyMjkxNjViMzg3MGI4ZWUyLi5iYTcwYTVjMmJiNzAwYzg3NWQ0ODNjZTJkMDlkMzE2ODFlZjgx
MGVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVu
ZGVyZXIvZDNkL2QzZDExL1N0YXRlTWFuYWdlcjExLmNwcAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvZDNkL2QzZDExL1N0YXRlTWFuYWdlcjExLmNw
cApAQCAtODE3LDcgKzgxNyw2IEBAIHZvaWQgU3RhdGVNYW5hZ2VyMTE6OnNldFVub3JkZXJlZEFj
Y2Vzc1ZpZXdJbnRlcm5hbChnbDo6U2hhZGVyVHlwZSBzaGFkZXJUeXBlLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVJTlQgcmVzb3VyY2VTbG90
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IFVBVlR5cGUgKnVhdikKIHsKLSAgICBBU1NFUlQoc2hhZGVyVHlwZSA9PSBnbDo6U2hhZGVy
VHlwZTo6Q29tcHV0ZSk7CiAgICAgQVNTRVJUKHN0YXRpY19jYXN0PHNpemVfdD4ocmVzb3VyY2VT
bG90KSA8IG1DdXJDb21wdXRlVUFWcy5zaXplKCkpOwogICAgIGNvbnN0IFZpZXdSZWNvcmQ8RDNE
MTFfVU5PUkRFUkVEX0FDQ0VTU19WSUVXX0RFU0M+ICZyZWNvcmQgPSBtQ3VyQ29tcHV0ZVVBVnNb
cmVzb3VyY2VTbG90XTsKIApAQCAtODM3LDcgKzgzNiwyNCBAQCB2b2lkIFN0YXRlTWFuYWdlcjEx
OjpzZXRVbm9yZGVyZWRBY2Nlc3NWaWV3SW50ZXJuYWwoZ2w6OlNoYWRlclR5cGUgc2hhZGVyVHlw
ZSwKICAgICAgICAgICAgIHVuc2V0Q29uZmxpY3RpbmdTUlZzKGdsOjpQaXBlbGluZVR5cGU6OkNv
bXB1dGVQaXBlbGluZSwgZ2w6OlNoYWRlclR5cGU6OkNvbXB1dGUsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZXNvdXJjZSwgbnVsbHB0ciwgZmFsc2UpOwogICAgICAgICB9Ci0g
ICAgICAgIGRldmljZUNvbnRleHQtPkNTU2V0VW5vcmRlcmVkQWNjZXNzVmlld3MocmVzb3VyY2VT
bG90LCAxLCAmdWF2UHRyLCBudWxscHRyKTsKKyAgICAgICAgc3dpdGNoIChzaGFkZXJUeXBlKQor
ICAgICAgICB7CisgICAgICAgICAgICBjYXNlIGdsOjpTaGFkZXJUeXBlOjpWZXJ0ZXg6CisgICAg
ICAgICAgICBjYXNlIGdsOjpTaGFkZXJUeXBlOjpGcmFnbWVudDoKKyAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgICBVSU5UIGJhc2VVQVZSZWdpc3RlciA9IHN0YXRpY19jYXN0PFVJTlQ+KG1Q
cm9ncmFtRDNELT5nZXRQaXhlbFNoYWRlcktleSgpLnNpemUoKSk7CisgICAgICAgICAgICAgICAg
ZGV2aWNlQ29udGV4dC0+T01TZXRSZW5kZXJUYXJnZXRzQW5kVW5vcmRlcmVkQWNjZXNzVmlld3Mo
CisgICAgICAgICAgICAgICAgICAgIEQzRDExX0tFRVBfUkVOREVSX1RBUkdFVFNfQU5EX0RFUFRI
X1NURU5DSUwsIG51bGxwdHIsIG51bGxwdHIsCisgICAgICAgICAgICAgICAgICAgIGJhc2VVQVZS
ZWdpc3RlciArIHJlc291cmNlU2xvdCwgMSwgJnVhdlB0ciwgbnVsbHB0cik7CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXNlIGdsOjpTaGFkZXJU
eXBlOjpDb21wdXRlOgorICAgICAgICAgICAgICAgIGRldmljZUNvbnRleHQtPkNTU2V0VW5vcmRl
cmVkQWNjZXNzVmlld3MocmVzb3VyY2VTbG90LCAxLCAmdWF2UHRyLCBudWxscHRyKTsKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAg
VU5JTVBMRU1FTlRFRCgpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CiAKICAg
ICAgICAgbUN1ckNvbXB1dGVVQVZzLnVwZGF0ZShyZXNvdXJjZVNsb3QsIHVhdlB0cik7CiAgICAg
fQpAQCAtOTYyLDEyICs5NzgsMTIgQEAgdm9pZCBTdGF0ZU1hbmFnZXIxMTo6c3luY1N0YXRlKGNv
bnN0IGdsOjpDb250ZXh0ICpjb250ZXh0LAogICAgICAgICAgICAgY2FzZSBnbDo6U3RhdGU6OkRJ
UlRZX0JJVF9CTEVORF9FUVVBVElPTlM6CiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
Y29uc3QgZ2w6OkJsZW5kU3RhdGVFeHQgJmJsZW5kU3RhdGVFeHQgPSBzdGF0ZS5nZXRCbGVuZFN0
YXRlRXh0KCk7Ci0gICAgICAgICAgICAgICAgQVNTRVJUKG1DdXJCbGVuZFN0YXRlRXh0Lm1NYXhE
cmF3QnVmZmVycyA9PSBibGVuZFN0YXRlRXh0Lm1NYXhEcmF3QnVmZmVycyk7CisgICAgICAgICAg
ICAgICAgQVNTRVJUKG1DdXJCbGVuZFN0YXRlRXh0LmdldERyYXdCdWZmZXJDb3VudCgpID09Cisg
ICAgICAgICAgICAgICAgICAgICAgIGJsZW5kU3RhdGVFeHQuZ2V0RHJhd0J1ZmZlckNvdW50KCkp
OwogICAgICAgICAgICAgICAgIC8vIENvbXBhcmUgYmxlbmQgZXF1YXRpb25zIG9ubHkgZm9yIGJ1
ZmZlcnMgd2l0aCBibGVuZGluZyBlbmFibGVkIGJlY2F1c2UKICAgICAgICAgICAgICAgICAvLyBz
dWJzZXF1ZW50IHN5bmMgc3RhZ2VzIGVuZm9yY2UgZGVmYXVsdCB2YWx1ZXMgZm9yIGJ1ZmZlcnMg
d2l0aCBibGVuZGluZyBkaXNhYmxlZC4KLSAgICAgICAgICAgICAgICBpZiAoKGJsZW5kU3RhdGVF
eHQubUVuYWJsZWRNYXNrICYKLSAgICAgICAgICAgICAgICAgICAgIG1DdXJCbGVuZFN0YXRlRXh0
LmNvbXBhcmVFcXVhdGlvbnMoYmxlbmRTdGF0ZUV4dC5tRXF1YXRpb25Db2xvciwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmxlbmRTdGF0
ZUV4dC5tRXF1YXRpb25BbHBoYSkpCisgICAgICAgICAgICAgICAgaWYgKChibGVuZFN0YXRlRXh0
LmdldEVuYWJsZWRNYXNrKCkgJgorICAgICAgICAgICAgICAgICAgICAgbUN1ckJsZW5kU3RhdGVF
eHQuY29tcGFyZUVxdWF0aW9ucyhibGVuZFN0YXRlRXh0KSkKICAgICAgICAgICAgICAgICAgICAg
ICAgIC5hbnkoKSkKICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIG1JbnRl
cm5hbERpcnR5Qml0cy5zZXQoRElSVFlfQklUX0JMRU5EX1NUQVRFKTsKQEAgLTk3NywxMyArOTkz
LDEyIEBAIHZvaWQgU3RhdGVNYW5hZ2VyMTE6OnN5bmNTdGF0ZShjb25zdCBnbDo6Q29udGV4dCAq
Y29udGV4dCwKICAgICAgICAgICAgIGNhc2UgZ2w6OlN0YXRlOjpESVJUWV9CSVRfQkxFTkRfRlVO
Q1M6CiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgY29uc3QgZ2w6OkJsZW5kU3RhdGVF
eHQgJmJsZW5kU3RhdGVFeHQgPSBzdGF0ZS5nZXRCbGVuZFN0YXRlRXh0KCk7Ci0gICAgICAgICAg
ICAgICAgQVNTRVJUKG1DdXJCbGVuZFN0YXRlRXh0Lm1NYXhEcmF3QnVmZmVycyA9PSBibGVuZFN0
YXRlRXh0Lm1NYXhEcmF3QnVmZmVycyk7CisgICAgICAgICAgICAgICAgQVNTRVJUKG1DdXJCbGVu
ZFN0YXRlRXh0LmdldERyYXdCdWZmZXJDb3VudCgpID09CisgICAgICAgICAgICAgICAgICAgICAg
IGJsZW5kU3RhdGVFeHQuZ2V0RHJhd0J1ZmZlckNvdW50KCkpOwogICAgICAgICAgICAgICAgIC8v
IENvbXBhcmUgYmxlbmQgZmFjdG9ycyBvbmx5IGZvciBidWZmZXJzIHdpdGggYmxlbmRpbmcgZW5h
YmxlZCBiZWNhdXNlCiAgICAgICAgICAgICAgICAgLy8gc3Vic2VxdWVudCBzeW5jIHN0YWdlcyBl
bmZvcmNlIGRlZmF1bHQgdmFsdWVzIGZvciBidWZmZXJzIHdpdGggYmxlbmRpbmcgZGlzYWJsZWQu
Ci0gICAgICAgICAgICAgICAgaWYgKChibGVuZFN0YXRlRXh0Lm1FbmFibGVkTWFzayAmCi0gICAg
ICAgICAgICAgICAgICAgICBtQ3VyQmxlbmRTdGF0ZUV4dC5jb21wYXJlRmFjdG9ycygKLSAgICAg
ICAgICAgICAgICAgICAgICAgICBibGVuZFN0YXRlRXh0Lm1TcmNDb2xvciwgYmxlbmRTdGF0ZUV4
dC5tRHN0Q29sb3IsIGJsZW5kU3RhdGVFeHQubVNyY0FscGhhLAotICAgICAgICAgICAgICAgICAg
ICAgICAgIGJsZW5kU3RhdGVFeHQubURzdEFscGhhKSkKKyAgICAgICAgICAgICAgICBpZiAoKGJs
ZW5kU3RhdGVFeHQuZ2V0RW5hYmxlZE1hc2soKSAmCisgICAgICAgICAgICAgICAgICAgICBtQ3Vy
QmxlbmRTdGF0ZUV4dC5jb21wYXJlRmFjdG9ycyhibGVuZFN0YXRlRXh0KSkKICAgICAgICAgICAg
ICAgICAgICAgICAgIC5hbnkoKSkKICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgIG1JbnRlcm5hbERpcnR5Qml0cy5zZXQoRElSVFlfQklUX0JMRU5EX1NUQVRFKTsKQEAgLTk5
Miw3ICsxMDA3LDcgQEAgdm9pZCBTdGF0ZU1hbmFnZXIxMTo6c3luY1N0YXRlKGNvbnN0IGdsOjpD
b250ZXh0ICpjb250ZXh0LAogICAgICAgICAgICAgfQogICAgICAgICAgICAgY2FzZSBnbDo6U3Rh
dGU6OkRJUlRZX0JJVF9CTEVORF9FTkFCTEVEOgogICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgIGlmIChzdGF0ZS5nZXRCbGVuZFN0YXRlRXh0KCkubUVuYWJsZWRNYXNrICE9IG1DdXJCbGVu
ZFN0YXRlRXh0Lm1FbmFibGVkTWFzaykKKyAgICAgICAgICAgICAgICBpZiAoc3RhdGUuZ2V0Qmxl
bmRTdGF0ZUV4dCgpLmdldEVuYWJsZWRNYXNrKCkgIT0gbUN1ckJsZW5kU3RhdGVFeHQuZ2V0RW5h
YmxlZE1hc2soKSkKICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIG1JbnRl
cm5hbERpcnR5Qml0cy5zZXQoRElSVFlfQklUX0JMRU5EX1NUQVRFKTsKICAgICAgICAgICAgICAg
ICB9CkBAIC0xMDEyLDcgKzEwMjcsOCBAQCB2b2lkIFN0YXRlTWFuYWdlcjExOjpzeW5jU3RhdGUo
Y29uc3QgZ2w6OkNvbnRleHQgKmNvbnRleHQsCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgICAgICBjYXNlIGdsOjpTdGF0ZTo6RElSVFlfQklUX0NPTE9SX01BU0s6CiAgICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgaWYgKHN0YXRlLmdldEJsZW5kU3RhdGVFeHQoKS5tQ29sb3JN
YXNrICE9IG1DdXJCbGVuZFN0YXRlRXh0Lm1Db2xvck1hc2spCisgICAgICAgICAgICAgICAgaWYg
KHN0YXRlLmdldEJsZW5kU3RhdGVFeHQoKS5nZXRDb2xvck1hc2tCaXRzKCkgIT0KKyAgICAgICAg
ICAgICAgICAgICAgbUN1ckJsZW5kU3RhdGVFeHQuZ2V0Q29sb3JNYXNrQml0cygpKQogICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgbUludGVybmFsRGlydHlCaXRzLnNldChE
SVJUWV9CSVRfQkxFTkRfU1RBVEUpOwogICAgICAgICAgICAgICAgIH0KQEAgLTIzNDIsNyArMjM1
OCw3IEBAIGFuZ2xlOjpSZXN1bHQgU3RhdGVNYW5hZ2VyMTE6OnVwZGF0ZVN0YXRlKGNvbnN0IGds
OjpDb250ZXh0ICpjb250ZXh0LAogICAgICAgICAgICAgICAgIC8vIFRPRE8oamllLmEuY2hlbkBp
bnRlbC5jb20pOiBodHRwOi8vYW5nbGVidWcuY29tLzE3MjkKICAgICAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgICAgIGNhc2UgRElSVFlfQklUX1BST0dSQU1fU0hBREVSX1NUT1JBR0VfQlVG
RkVSUzoKLSAgICAgICAgICAgICAgICAvLyBUT0RPKGppZS5hLmNoZW5AaW50ZWwuY29tKTogaHR0
cDovL2FuZ2xlYnVnLmNvbS8xOTUxCisgICAgICAgICAgICAgICAgQU5HTEVfVFJZKHN5bmNTaGFk
ZXJTdG9yYWdlQnVmZmVycyhjb250ZXh0KSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgICAgICBjYXNlIERJUlRZX0JJVF9TSEFERVJTOgogICAgICAgICAgICAgICAgIEFOR0xFX1RS
WShzeW5jUHJvZ3JhbShjb250ZXh0LCBtb2RlKSk7CkBAIC0zNzYxLDE0ICszNzc3LDE0IEBAIGFu
Z2xlOjpSZXN1bHQgU3RhdGVNYW5hZ2VyMTE6OnN5bmNTaGFkZXJTdG9yYWdlQnVmZmVyc0ZvclNo
YWRlcihjb25zdCBnbDo6Q29udGV4CiAKICAgICAgICAgc3dpdGNoIChzaGFkZXJUeXBlKQogICAg
ICAgICB7CisgICAgICAgICAgICBjYXNlIGdsOjpTaGFkZXJUeXBlOjpWZXJ0ZXg6CisgICAgICAg
ICAgICBjYXNlIGdsOjpTaGFkZXJUeXBlOjpGcmFnbWVudDoKICAgICAgICAgICAgIGNhc2UgZ2w6
OlNoYWRlclR5cGU6OkNvbXB1dGU6CiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgc2V0
VW5vcmRlcmVkQWNjZXNzVmlld0ludGVybmFsKHNoYWRlclR5cGUsIHJlZ2lzdGVySW5kZXgsIHVh
dlB0cik7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAg
ICAgIGNhc2UgZ2w6OlNoYWRlclR5cGU6OlZlcnRleDoKLSAgICAgICAgICAgIGNhc2UgZ2w6OlNo
YWRlclR5cGU6OkZyYWdtZW50OgogICAgICAgICAgICAgY2FzZSBnbDo6U2hhZGVyVHlwZTo6R2Vv
bWV0cnk6CiAgICAgICAgICAgICAgICAgVU5JTVBMRU1FTlRFRCgpOwogICAgICAgICAgICAgICAg
IGJyZWFrOwpAQCAtMzg2Myw5ICszODc5LDEyIEBAIGFuZ2xlOjpSZXN1bHQgU3RhdGVNYW5hZ2Vy
MTE6OnN5bmNBdG9taWNDb3VudGVyQnVmZmVyc0ZvclNoYWRlcihjb25zdCBnbDo6Q29udGV4CiAK
IGFuZ2xlOjpSZXN1bHQgU3RhdGVNYW5hZ2VyMTE6OnN5bmNTaGFkZXJTdG9yYWdlQnVmZmVycyhj
b25zdCBnbDo6Q29udGV4dCAqY29udGV4dCkKIHsKLSAgICBpZiAobVByb2dyYW1EM0QtPmhhc1No
YWRlclN0YWdlKGdsOjpTaGFkZXJUeXBlOjpDb21wdXRlKSkKKyAgICBmb3IgKGdsOjpTaGFkZXJU
eXBlIHNoYWRlclR5cGUgOiBnbDo6QWxsU2hhZGVyVHlwZXMoKSkKICAgICB7Ci0gICAgICAgIEFO
R0xFX1RSWShzeW5jU2hhZGVyU3RvcmFnZUJ1ZmZlcnNGb3JTaGFkZXIoY29udGV4dCwgZ2w6OlNo
YWRlclR5cGU6OkNvbXB1dGUpKTsKKyAgICAgICAgaWYgKG1Qcm9ncmFtRDNELT5oYXNTaGFkZXJT
dGFnZShzaGFkZXJUeXBlKSkKKyAgICAgICAgeworICAgICAgICAgICAgQU5HTEVfVFJZKHN5bmNT
aGFkZXJTdG9yYWdlQnVmZmVyc0ZvclNoYWRlcihjb250ZXh0LCBzaGFkZXJUeXBlKSk7CisgICAg
ICAgIH0KICAgICB9CiAKICAgICByZXR1cm4gYW5nbGU6OlJlc3VsdDo6Q29udGludWU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvZDNk
L2QzZDExL3JlbmRlcmVyMTFfdXRpbHMuY3BwIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3Jj
L2xpYkFOR0xFL3JlbmRlcmVyL2QzZC9kM2QxMS9yZW5kZXJlcjExX3V0aWxzLmNwcAppbmRleCA0
ZjJiNzU2MGYzZDFlNzc5NDBlNWU3N2ZmNzVhYWQ1MWM1ZjMzYTA0Li42NmE4ZDFmYWVmOTM5NGQ1
YjM0ZjIzMTBhMWYyZWZkMmQ5OTU2NjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9B
TkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvZDNkL2QzZDExL3JlbmRlcmVyMTFfdXRpbHMuY3Bw
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9kM2Qv
ZDNkMTEvcmVuZGVyZXIxMV91dGlscy5jcHAKQEAgLTI5LDcgKzI5LDcgQEAKICNpbmNsdWRlICJs
aWJBTkdMRS9yZW5kZXJlci9kM2QvZDNkMTEvdGV4dHVyZV9mb3JtYXRfdGFibGUuaCIKICNpbmNs
dWRlICJsaWJBTkdMRS9yZW5kZXJlci9kcml2ZXJfdXRpbHMuaCIKICNpbmNsdWRlICJsaWJBTkdM
RS9yZW5kZXJlci9keGdpX3N1cHBvcnRfdGFibGUuaCIKLSNpbmNsdWRlICJwbGF0Zm9ybS9GZWF0
dXJlc0QzRC5oIgorI2luY2x1ZGUgInBsYXRmb3JtL0ZlYXR1cmVzRDNEX2F1dG9nZW4uaCIKICNp
bmNsdWRlICJwbGF0Zm9ybS9QbGF0Zm9ybU1ldGhvZHMuaCIKIAogbmFtZXNwYWNlIHJ4CkBAIC0y
NDQ2LDcgKzI0NDYsNyBAQCB2b2lkIEluaXRpYWxpemVGZWF0dXJlcyhjb25zdCBSZW5kZXJlcjEx
RGV2aWNlQ2FwcyAmZGV2aWNlQ2FwcywKICAgICBBTkdMRV9GRUFUVVJFX0NPTkRJVElPTihmZWF0
dXJlcywgbXJ0UGVyZldvcmthcm91bmQsIHRydWUpOwogICAgIEFOR0xFX0ZFQVRVUkVfQ09ORElU
SU9OKGZlYXR1cmVzLCB6ZXJvTWF4TG9kV29ya2Fyb3VuZCwgaXNGZWF0dXJlTGV2ZWw5XzMpOwog
ICAgIEFOR0xFX0ZFQVRVUkVfQ09ORElUSU9OKGZlYXR1cmVzLCB1c2VJbnN0YW5jZWRQb2ludFNw
cml0ZUVtdWxhdGlvbiwgaXNGZWF0dXJlTGV2ZWw5XzMpOwotICAgIEFOR0xFX0ZFQVRVUkVfQ09O
RElUSU9OKGZlYXR1cmVzLCBhbGxvd0VTM09uRkwxMF8wLCBmYWxzZSk7CisgICAgQU5HTEVfRkVB
VFVSRV9DT05ESVRJT04oZmVhdHVyZXMsIGFsbG93RVMzT25GTDEwMCwgZmFsc2UpOwogCiAgICAg
Ly8gVE9ETyhqbWFkaWxsKTogRGlzYWJsZSB3b3JrYXJvdW5kIHdoZW4gd2UgaGF2ZSBhIGZpeGVk
IGNvbXBpbGVyIERMTC4KICAgICBBTkdMRV9GRUFUVVJFX0NPTkRJVElPTihmZWF0dXJlcywgZXhw
YW5kSW50ZWdlclBvd0V4cHJlc3Npb25zLCB0cnVlKTsKQEAgLTI1MDUsMTAgKzI1MDUsNiBAQCB2
b2lkIEluaXRpYWxpemVGZWF0dXJlcyhjb25zdCBSZW5kZXJlcjExRGV2aWNlQ2FwcyAmZGV2aWNl
Q2FwcywKICAgICAvLyB0byB3b3JrIGFyb3VuZCBhIHNsb3cgZnhjIGNvbXBpbGUgcGVyZm9ybWFu
Y2UgaXNzdWUgd2l0aCBkeW5hbWljIHVuaWZvcm0gaW5kZXhpbmcuCiAgICAgQU5HTEVfRkVBVFVS
RV9DT05ESVRJT04oZmVhdHVyZXMsIGFsbG93VHJhbnNsYXRlVW5pZm9ybUJsb2NrVG9TdHJ1Y3R1
cmVkQnVmZmVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIElzV2luMTBPckdyZWF0ZXIo
KSk7Ci0KLSAgICAvLyBDYWxsIHBsYXRmb3JtIGhvb2tzIGZvciB0ZXN0aW5nIG92ZXJyaWRlcy4K
LSAgICBhdXRvICpwbGF0Zm9ybSA9IEFOR0xFUGxhdGZvcm1DdXJyZW50KCk7Ci0gICAgcGxhdGZv
cm0tPm92ZXJyaWRlV29ya2Fyb3VuZHNEM0QocGxhdGZvcm0sIGZlYXR1cmVzKTsKIH0KIAogdm9p
ZCBJbml0Q29uc3RhbnRCdWZmZXJEZXNjKEQzRDExX0JVRkZFUl9ERVNDICpjb25zdGFudEJ1ZmZl
ckRlc2NyaXB0aW9uLCBzaXplX3QgYnl0ZVdpZHRoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJk
UGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL2QzZC9kM2Q5L1JlbmRlcmVyOS5jcHAg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvZDNkL2QzZDkv
UmVuZGVyZXI5LmNwcAppbmRleCBiNmMyYjgzNzc4Y2RiMjg4NTI3NmJhZTM1ZGI4ZjAyOTQyNzQx
MmI4Li40MjkzMmJkODRkMGE5MmM1OGI4OTcxZTBhZmFlNjRlYThhNTMxNmQwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvZDNkL2QzZDkv
UmVuZGVyZXI5LmNwcAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUv
cmVuZGVyZXIvZDNkL2QzZDkvUmVuZGVyZXI5LmNwcApAQCAtMjY2OSw3ICsyNjY5LDcgQEAgYW5n
bGU6OlJlc3VsdCBSZW5kZXJlcjk6OmNvbXBpbGVUb0V4ZWN1dGFibGUoZDNkOjpDb250ZXh0ICpj
b250ZXh0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2w6
OlNoYWRlclR5cGUgdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPEQzRFZhcnlpbmc+ICZzdHJlYW1PdXRWYXJ5aW5ncywK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgc2VwYXJh
dGVkT3V0cHV0QnVmZmVycywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IGFuZ2xlOjpDb21waWxlcldvcmthcm91bmRzRDNEICZ3b3JrYXJvdW5kcywK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IENvbXBp
bGVyV29ya2Fyb3VuZHNEM0QgJndvcmthcm91bmRzLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgU2hhZGVyRXhlY3V0YWJsZUQzRCAqKm91dEV4ZWN0dWFibGUp
CiB7CiAgICAgLy8gVHJhbnNmb3JtIGZlZWRiYWNrIGlzIG5vdCBzdXBwb3J0ZWQgaW4gRVMyIG9y
IEQzRDkKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9y
ZW5kZXJlci9kM2QvZDNkOS9SZW5kZXJlcjkuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3Ny
Yy9saWJBTkdMRS9yZW5kZXJlci9kM2QvZDNkOS9SZW5kZXJlcjkuaAppbmRleCBmOGFmOGU0NzU4
OWM5NzliNzVlM2M5MTU2MDk4N2QwN2IwMzRlOTFjLi44YTMwNmEwMjY4NThhZTlmNWIxNWUzOThl
NmZlYTg5ZDhkOTc1ZDVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMv
bGliQU5HTEUvcmVuZGVyZXIvZDNkL2QzZDkvUmVuZGVyZXI5LmgKKysrIGIvU291cmNlL1RoaXJk
UGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL2QzZC9kM2Q5L1JlbmRlcmVyOS5oCkBA
IC0yNDksNyArMjQ5LDcgQEAgY2xhc3MgUmVuZGVyZXI5IDogcHVibGljIFJlbmRlcmVyRDNECiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdsOjpTaGFkZXJUeXBlIHR5cGUs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9y
PEQzRFZhcnlpbmc+ICZzdHJlYW1PdXRWYXJ5aW5ncywKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYm9vbCBzZXBhcmF0ZWRPdXRwdXRCdWZmZXJzLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBhbmdsZTo6Q29tcGlsZXJXb3JrYXJvdW5k
c0QzRCAmd29ya2Fyb3VuZHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnN0IENvbXBpbGVyV29ya2Fyb3VuZHNEM0QgJndvcmthcm91bmRzLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBTaGFkZXJFeGVjdXRhYmxlRDNEICoqb3V0RXhlY3R1
YWJsZSkgb3ZlcnJpZGU7CiAgICAgYW5nbGU6OlJlc3VsdCBlbnN1cmVITFNMQ29tcGlsZXJJbml0
aWFsaXplZChkM2Q6OkNvbnRleHQgKmNvbnRleHQpIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvZDNkL2QzZDkvVmVy
dGV4RGVjbGFyYXRpb25DYWNoZS5jcHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGli
QU5HTEUvcmVuZGVyZXIvZDNkL2QzZDkvVmVydGV4RGVjbGFyYXRpb25DYWNoZS5jcHAKaW5kZXgg
ZmFhOTIwMjY4OWYwZWY1MmRhODIzMTJjMjRmNWZkYTQ4ODljMzY4Zi4uZTEyOWFlOTc4NjYzZjMw
ZmIyMGU0MTNiMmQxNmM3YmRkNDEwYWZlYSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkv
QU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL2QzZC9kM2Q5L1ZlcnRleERlY2xhcmF0aW9uQ2Fj
aGUuY3BwCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJl
ci9kM2QvZDNkOS9WZXJ0ZXhEZWNsYXJhdGlvbkNhY2hlLmNwcApAQCAtMjcsOSArMjcsOSBAQCBW
ZXJ0ZXhEZWNsYXJhdGlvbkNhY2hlOjpWZXJ0ZXhEZWNsYXJhdGlvbkNhY2hlKCkgOiBtTWF4THJ1
KDApCiAgICAgICAgIG1WZXJ0ZXhEZWNsQ2FjaGVbaV0ubHJ1Q291bnQgICAgICAgICAgPSAwOwog
ICAgIH0KIAotICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZ2w6Ok1BWF9WRVJURVhfQVRUUklCUzsg
aSsrKQorICAgIGZvciAoVkJEYXRhICZ2YiA6IG1BcHBsaWVkVkJzKQogICAgIHsKLSAgICAgICAg
bUFwcGxpZWRWQnNbaV0uc2VyaWFsID0gMDsKKyAgICAgICAgdmIuc2VyaWFsID0gMDsKICAgICB9
CiAKICAgICBtTGFzdFNldFZEZWNsICAgICAgPSBudWxscHRyOwpAQCAtMjUwLDkgKzI1MCw5IEBA
IGFuZ2xlOjpSZXN1bHQgVmVydGV4RGVjbGFyYXRpb25DYWNoZTo6YXBwbHlEZWNsYXJhdGlvbigK
IAogdm9pZCBWZXJ0ZXhEZWNsYXJhdGlvbkNhY2hlOjptYXJrU3RhdGVEaXJ0eSgpCiB7Ci0gICAg
Zm9yIChpbnQgaSA9IDA7IGkgPCBnbDo6TUFYX1ZFUlRFWF9BVFRSSUJTOyBpKyspCisgICAgZm9y
IChWQkRhdGEgJnZiIDogbUFwcGxpZWRWQnMpCiAgICAgewotICAgICAgICBtQXBwbGllZFZCc1tp
XS5zZXJpYWwgPSAwOworICAgICAgICB2Yi5zZXJpYWwgPSAwOwogICAgIH0KIAogICAgIG1MYXN0
U2V0VkRlY2wgICAgICA9IG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9B
TkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvZDNkL2QzZDkvcmVuZGVyZXI5X3V0aWxzLmNwcCBi
L1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9kM2QvZDNkOS9y
ZW5kZXJlcjlfdXRpbHMuY3BwCmluZGV4IDQ4ZmE0ODRkZjcyOGQwZWM4NTM3ZDY4ODA1YjExNTVk
NTA0YzRlNjcuLjg4MTMxMGIwYmI2N2QxOGI3MTIxMmQ4YWUwMjZjZjk4N2VlN2Y3NjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9kM2Qv
ZDNkOS9yZW5kZXJlcjlfdXRpbHMuY3BwCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3Ny
Yy9saWJBTkdMRS9yZW5kZXJlci9kM2QvZDNkOS9yZW5kZXJlcjlfdXRpbHMuY3BwCkBAIC0xNiw3
ICsxNiw3IEBACiAjaW5jbHVkZSAibGliQU5HTEUvcmVuZGVyZXIvZDNkL2QzZDkvUmVuZGVyVGFy
Z2V0OS5oIgogI2luY2x1ZGUgImxpYkFOR0xFL3JlbmRlcmVyL2QzZC9kM2Q5L2Zvcm1hdHV0aWxz
OS5oIgogI2luY2x1ZGUgImxpYkFOR0xFL3JlbmRlcmVyL2RyaXZlcl91dGlscy5oIgotI2luY2x1
ZGUgInBsYXRmb3JtL0ZlYXR1cmVzRDNELmgiCisjaW5jbHVkZSAicGxhdGZvcm0vRmVhdHVyZXNE
M0RfYXV0b2dlbi5oIgogI2luY2x1ZGUgInBsYXRmb3JtL1BsYXRmb3JtTWV0aG9kcy5oIgogCiAj
aW5jbHVkZSAidGhpcmRfcGFydHkvc3lzdGVtaW5mby9TeXN0ZW1JbmZvLmgiCkBAIC04MzksMTAg
KzgzOSw2IEBAIHZvaWQgSW5pdGlhbGl6ZUZlYXR1cmVzKGFuZ2xlOjpGZWF0dXJlc0QzRCAqZmVh
dHVyZXMpCiAKICAgICAvLyBjcmJ1Zy5jb20vMTAxMTYyNyBUdXJuIHRoaXMgb24gZm9yIEQzRDku
CiAgICAgQU5HTEVfRkVBVFVSRV9DT05ESVRJT04oZmVhdHVyZXMsIGFsbG93Q2xlYXJGb3JSb2J1
c3RSZXNvdXJjZUluaXQsIHRydWUpOwotCi0gICAgLy8gQ2FsbCBwbGF0Zm9ybSBob29rcyBmb3Ig
dGVzdGluZyBvdmVycmlkZXMuCi0gICAgYXV0byAqcGxhdGZvcm0gPSBBTkdMRVBsYXRmb3JtQ3Vy
cmVudCgpOwotICAgIHBsYXRmb3JtLT5vdmVycmlkZVdvcmthcm91bmRzRDNEKHBsYXRmb3JtLCBm
ZWF0dXJlcyk7CiB9CiAKIH0gIC8vIG5hbWVzcGFjZSBkM2Q5CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvZDNkL2QzZDkvcmVuZGVyZXI5
X3V0aWxzLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIv
ZDNkL2QzZDkvcmVuZGVyZXI5X3V0aWxzLmgKaW5kZXggYTU1MDliNzRiNGFmZjU1YWJhY2M0OTBm
NjUwNWMxNTA2NjIwMDg1ZS4uYjkwMGU5YzQ0YzA5NTgyOGQ5MmRiMDY2NTcyYjcxOGE5N2YxYzJl
YiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRl
cmVyL2QzZC9kM2Q5L3JlbmRlcmVyOV91dGlscy5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FO
R0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9kM2QvZDNkOS9yZW5kZXJlcjlfdXRpbHMuaApAQCAt
MTMsNyArMTMsNyBAQAogI2luY2x1ZGUgImNvbW1vbi9Db2xvci5oIgogI2luY2x1ZGUgImxpYkFO
R0xFL0NhcHMuaCIKICNpbmNsdWRlICJsaWJBTkdMRS9FcnJvci5oIgotI2luY2x1ZGUgInBsYXRm
b3JtL0ZlYXR1cmVzRDNELmgiCisjaW5jbHVkZSAicGxhdGZvcm0vRmVhdHVyZXNEM0RfYXV0b2dl
bi5oIgogCiBuYW1lc3BhY2UgZ2wKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FO
R0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9nbC9CbGl0R0wuY3BwIGIvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL2dsL0JsaXRHTC5jcHAKaW5kZXggMGNjZThh
NGI2MzM2YTE2MGVhYzNiMzY3YzIzZGY3MTUzYWRjMmI5Ny4uOGViZmIyMWEzOTE0MDYxZDM4OTY2
Mzg1N2U2YWUyNDM1MWJlYWQ0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUv
c3JjL2xpYkFOR0xFL3JlbmRlcmVyL2dsL0JsaXRHTC5jcHAKKysrIGIvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL2dsL0JsaXRHTC5jcHAKQEAgLTI1LDcgKzI1
LDcgQEAKICNpbmNsdWRlICJsaWJBTkdMRS9yZW5kZXJlci9nbC9mb3JtYXR1dGlsc2dsLmgiCiAj
aW5jbHVkZSAibGliQU5HTEUvcmVuZGVyZXIvZ2wvcmVuZGVyZXJnbF91dGlscy5oIgogI2luY2x1
ZGUgImxpYkFOR0xFL3JlbmRlcmVyL3JlbmRlcmVyX3V0aWxzLmgiCi0jaW5jbHVkZSAicGxhdGZv
cm0vRmVhdHVyZXNHTC5oIgorI2luY2x1ZGUgInBsYXRmb3JtL0ZlYXR1cmVzR0xfYXV0b2dlbi5o
IgogCiB1c2luZyBhbmdsZTo6VmVjdG9yMjsKIApAQCAtMTk5LDYgKzE5OSwxOSBAQCBhbmdsZTo6
UmVzdWx0IFByZXBhcmVGb3JDbGVhcihTdGF0ZU1hbmFnZXJHTCAqc3RhdGVNYW5hZ2VyLAogICAg
IHJldHVybiBhbmdsZTo6UmVzdWx0OjpDb250aW51ZTsKIH0KIAorYW5nbGU6OlJlc3VsdCBVbmJp
bmRBdHRhY2htZW50KGNvbnN0IGdsOjpDb250ZXh0ICpjb250ZXh0LAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbnN0IEZ1bmN0aW9uc0dMICpmdW5jdGlvbnMsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgR0xlbnVtIGZyYW1lYnVmZmVyVGFyZ2V0LAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEdMZW51bSBhdHRhY2htZW50KQoreworICAgIC8vIEFsd2F5
cyB1c2UgZnJhbWVidWZmZXJUZXh0dXJlMkQgYXMgYSB3b3JrYXJvdW5kIGZvciBhbiBOdmlkaWEg
ZHJpdmVyIGJ1Zy4gU2VlCisgICAgLy8gaHR0cHM6Ly9hbmdsZWJ1Zy5jb20vNTUzNiBhbmQgRmVh
dHVyZXNHTC5hbHdheXNVbmJpbmRGcmFtZWJ1ZmZlclRleHR1cmUyRAorICAgIEFOR0xFX0dMX1RS
WShjb250ZXh0LAorICAgICAgICAgICAgICAgICBmdW5jdGlvbnMtPmZyYW1lYnVmZmVyVGV4dHVy
ZTJEKEdMX0ZSQU1FQlVGRkVSLCBhdHRhY2htZW50LCBHTF9URVhUVVJFXzJELCAwLCAwKSk7CisK
KyAgICByZXR1cm4gYW5nbGU6OlJlc3VsdDo6Q29udGludWU7Cit9CisKIGFuZ2xlOjpSZXN1bHQg
VW5iaW5kQXR0YWNobWVudHMoY29uc3QgZ2w6OkNvbnRleHQgKmNvbnRleHQsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEZ1bmN0aW9uc0dMICpmdW5jdGlvbnMsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMZW51bSBmcmFtZWJ1ZmZlclRhcmdldCwKQEAg
LTIwNiw4ICsyMTksNyBAQCBhbmdsZTo6UmVzdWx0IFVuYmluZEF0dGFjaG1lbnRzKGNvbnN0IGds
OjpDb250ZXh0ICpjb250ZXh0LAogewogICAgIGZvciAoR0xlbnVtIGJpbmRUYXJnZXQgOiBiaW5k
VGFyZ2V0cykKICAgICB7Ci0gICAgICAgIEFOR0xFX0dMX1RSWShjb250ZXh0LCBmdW5jdGlvbnMt
PmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKGZyYW1lYnVmZmVyVGFyZ2V0LCBiaW5kVGFyZ2V0LAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBHTF9SRU5ERVJCVUZGRVIsIDApKTsKKyAgICAgICAgQU5HTEVfVFJZKFVuYmluZEF0
dGFjaG1lbnQoY29udGV4dCwgZnVuY3Rpb25zLCBmcmFtZWJ1ZmZlclRhcmdldCwgYmluZFRhcmdl
dCkpOwogICAgIH0KICAgICByZXR1cm4gYW5nbGU6OlJlc3VsdDo6Q29udGludWU7CiB9CkBAIC0z
ODksNiArNDAxLDcgQEAgYW5nbGU6OlJlc3VsdCBCbGl0R0w6OmNvcHlTdWJJbWFnZVRvTFVNQVdv
cmthcm91bmRUZXh0dXJlKGNvbnN0IGdsOjpDb250ZXh0ICpjb24KIAogICAgIC8vIEZpbmFsbHkg
b3JwaGFuIHRoZSBzY3JhdGNoIHRleHR1cmVzIHNvIHRoZXkgY2FuIGJlIEdDZWQgYnkgdGhlIGRy
aXZlci4KICAgICBBTkdMRV9UUlkob3JwaGFuU2NyYXRjaFRleHR1cmVzKGNvbnRleHQpKTsKKyAg
ICBBTkdMRV9UUlkoVW5iaW5kQXR0YWNobWVudChjb250ZXh0LCBtRnVuY3Rpb25zLCBHTF9GUkFN
RUJVRkZFUiwgR0xfQ09MT1JfQVRUQUNITUVOVDApKTsKIAogICAgIEFOR0xFX1RSWShzY29wZWRT
dGF0ZS5leGl0KGNvbnRleHQpKTsKICAgICByZXR1cm4gYW5nbGU6OlJlc3VsdDo6Q29udGludWU7
CkBAIC00MTcsOCArNDMwLDcgQEAgYW5nbGU6OlJlc3VsdCBCbGl0R0w6OmJsaXRDb2xvckJ1ZmZl
cldpdGhTaGFkZXIoY29uc3QgZ2w6OkNvbnRleHQgKmNvbnRleHQsCiAgICAgYW5nbGU6OlJlc3Vs
dCByZXN1bHQgPSBibGl0Q29sb3JCdWZmZXJXaXRoU2hhZGVyKGNvbnRleHQsIHNvdXJjZSwgbVNj
cmF0Y2hGQk8sIHNvdXJjZUFyZWFJbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZGVzdEFyZWFJbiwgZmlsdGVyLCB3cml0ZUFscGhhKTsKICAg
ICAvLyBVbmJpbmQgdGhlIHRleHR1cmUgZnJvbSB0aGUgdGhlIHNjcmF0Y2ggZnJhbWVidWZmZXIu
Ci0gICAgQU5HTEVfR0xfVFJZKGNvbnRleHQsIG1GdW5jdGlvbnMtPmZyYW1lYnVmZmVyUmVuZGVy
YnVmZmVyKEdMX0ZSQU1FQlVGRkVSLCBHTF9DT0xPUl9BVFRBQ0hNRU5UMCwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0xfUkVO
REVSQlVGRkVSLCAwKSk7CisgICAgQU5HTEVfVFJZKFVuYmluZEF0dGFjaG1lbnQoY29udGV4dCwg
bUZ1bmN0aW9ucywgR0xfRlJBTUVCVUZGRVIsIEdMX0NPTE9SX0FUVEFDSE1FTlQwKSk7CiAgICAg
cmV0dXJuIHJlc3VsdDsKIH0KIApAQCAtNjY2LDYgKzY3OCw3IEBAIGFuZ2xlOjpSZXN1bHQgQmxp
dEdMOjpjb3B5U3ViVGV4dHVyZShjb25zdCBnbDo6Q29udGV4dCAqY29udGV4dCwKIAogICAgIEFO
R0xFX1RSWShzZXRWQU9TdGF0ZShjb250ZXh0KSk7CiAgICAgQU5HTEVfR0xfVFJZKGNvbnRleHQs
IG1GdW5jdGlvbnMtPmRyYXdBcnJheXMoR0xfVFJJQU5HTEVTLCAwLCAzKSk7CisgICAgQU5HTEVf
VFJZKFVuYmluZEF0dGFjaG1lbnQoY29udGV4dCwgbUZ1bmN0aW9ucywgR0xfRlJBTUVCVUZGRVIs
IEdMX0NPTE9SX0FUVEFDSE1FTlQwKSk7CiAKICAgICAqY29weVN1Y2NlZWRlZE91dCA9IHRydWU7
CiAgICAgQU5HTEVfVFJZKHNjb3BlZFN0YXRlLmV4aXQoY29udGV4dCkpOwpAQCAtODE2LDYgKzgy
OSw4IEBAIGFuZ2xlOjpSZXN1bHQgQmxpdEdMOjpjb3B5U3ViVGV4dHVyZUNQVVJlYWRiYWNrKGNv
bnN0IGdsOjpDb250ZXh0ICpjb250ZXh0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZGVzdE9mZnNldC55LCByZWFkUGl4ZWxzQXJlYS53aWR0aCwgcmVhZFBpeGVsc0FyZWEuaGVpZ2h0
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4U3ViSW1hZ2VGb3JtYXQuZm9ybWF0
LCB0ZXhTdWJJbWFnZUZvcm1hdC50eXBlLCBkZXN0TWVtb3J5KSk7CiAKKyAgICBBTkdMRV9UUlko
VW5iaW5kQXR0YWNobWVudChjb250ZXh0LCBtRnVuY3Rpb25zLCBHTF9GUkFNRUJVRkZFUiwgR0xf
Q09MT1JfQVRUQUNITUVOVDApKTsKKwogICAgIHJldHVybiBhbmdsZTo6UmVzdWx0OjpDb250aW51
ZTsKIH0KIApAQCAtODUwLDYgKzg2NSw3IEBAIGFuZ2xlOjpSZXN1bHQgQmxpdEdMOjpjb3B5VGV4
U3ViSW1hZ2UoY29uc3QgZ2w6OkNvbnRleHQgKmNvbnRleHQsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RPZmZzZXQueCwgZGVzdE9mZnNldC55LCBz
b3VyY2VBcmVhLngsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNvdXJjZUFyZWEueSwgc291cmNlQXJlYS53aWR0aCwgc291cmNlQXJlYS5oZWlnaHQpKTsK
IAorICAgIEFOR0xFX1RSWShVbmJpbmRBdHRhY2htZW50KGNvbnRleHQsIG1GdW5jdGlvbnMsIEdM
X0ZSQU1FQlVGRkVSLCBHTF9DT0xPUl9BVFRBQ0hNRU5UMCkpOwogICAgICpjb3B5U3VjY2VlZGVk
T3V0ID0gdHJ1ZTsKICAgICByZXR1cm4gYW5nbGU6OlJlc3VsdDo6Q29udGludWU7CiB9CkBAIC05
OTQsMTMgKzEwMTAsMTcgQEAgYW5nbGU6OlJlc3VsdCBCbGl0R0w6OmNsZWFyUmVuZGVyYnVmZmVy
KGNvbnN0IGdsOjpDb250ZXh0ICpjb250ZXh0LAogICAgIHJldHVybiBhbmdsZTo6UmVzdWx0OjpD
b250aW51ZTsKIH0KIAotYW5nbGU6OlJlc3VsdCBCbGl0R0w6OmNsZWFyRnJhbWVidWZmZXIoY29u
c3QgZ2w6OkNvbnRleHQgKmNvbnRleHQsIEZyYW1lYnVmZmVyR0wgKnNvdXJjZSkKK2FuZ2xlOjpS
ZXN1bHQgQmxpdEdMOjpjbGVhckZyYW1lYnVmZmVyKGNvbnN0IGdsOjpDb250ZXh0ICpjb250ZXh0
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBjb2xvckNsZWFy
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBkZXB0aENsZWFy
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBzdGVuY2lsQ2xl
YXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGcmFtZWJ1ZmZlckdM
ICpzb3VyY2UpCiB7CiAgICAgLy8gaW5pdGlhbGl6ZVJlc291cmNlcyBza2lwcGVkIGJlY2F1c2Ug
bm8gbG9jYWwgc3RhdGUgaXMgdXNlZAogCiAgICAgLy8gQ2xlYXIgYWxsIGF0dGFjaG1lbnRzCiAg
ICAgR0xiaXRmaWVsZCBjbGVhck1hc2sgPSAwOwotICAgIEFOR0xFX1RSWShTZXRDbGVhclN0YXRl
KG1TdGF0ZU1hbmFnZXIsIHRydWUsIHRydWUsIHRydWUsICZjbGVhck1hc2spKTsKKyAgICBBTkdM
RV9UUlkoU2V0Q2xlYXJTdGF0ZShtU3RhdGVNYW5hZ2VyLCBjb2xvckNsZWFyLCBkZXB0aENsZWFy
LCBzdGVuY2lsQ2xlYXIsICZjbGVhck1hc2spKTsKIAogICAgIG1TdGF0ZU1hbmFnZXItPmJpbmRG
cmFtZWJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgc291cmNlLT5nZXRGcmFtZWJ1ZmZlcklEKCkpOwog
ICAgIEFOR0xFX0dMX1RSWShjb250ZXh0LCBtRnVuY3Rpb25zLT5jbGVhcihjbGVhck1hc2spKTsK
QEAgLTEwMjksOCArMTA0OSw3IEBAIGFuZ2xlOjpSZXN1bHQgQmxpdEdMOjpjbGVhclJlbmRlcmFi
bGVUZXh0dXJlQWxwaGFUb09uZShjb25zdCBnbDo6Q29udGV4dCAqY29udGV4CiAgICAgQU5HTEVf
R0xfVFJZKGNvbnRleHQsIG1GdW5jdGlvbnMtPmNsZWFyKEdMX0NPTE9SX0JVRkZFUl9CSVQpKTsK
IAogICAgIC8vIFVuYmluZCB0aGUgdGV4dHVyZSBmcm9tIHRoZSB0aGUgc2NyYXRjaCBmcmFtZWJ1
ZmZlcgotICAgIEFOR0xFX0dMX1RSWShjb250ZXh0LCBtRnVuY3Rpb25zLT5mcmFtZWJ1ZmZlclJl
bmRlcmJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgR0xfQ09MT1JfQVRUQUNITUVOVDAsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdM
X1JFTkRFUkJVRkZFUiwgMCkpOworICAgIEFOR0xFX1RSWShVbmJpbmRBdHRhY2htZW50KGNvbnRl
eHQsIG1GdW5jdGlvbnMsIEdMX0ZSQU1FQlVGRkVSLCBHTF9DT0xPUl9BVFRBQ0hNRU5UMCkpOwog
CiAgICAgcmV0dXJuIGFuZ2xlOjpSZXN1bHQ6OkNvbnRpbnVlOwogfQpAQCAtMTEwOSw2ICsxMTI4
LDcgQEAgYW5nbGU6OlJlc3VsdCBCbGl0R0w6OmdlbmVyYXRlU1JHQk1pcG1hcChjb25zdCBnbDo6
Q29udGV4dCAqY29udGV4dCwKICAgICB9CiAKICAgICBBTkdMRV9UUlkob3JwaGFuU2NyYXRjaFRl
eHR1cmVzKGNvbnRleHQpKTsKKyAgICBBTkdMRV9UUlkoVW5iaW5kQXR0YWNobWVudChjb250ZXh0
LCBtRnVuY3Rpb25zLCBHTF9GUkFNRUJVRkZFUiwgR0xfQ09MT1JfQVRUQUNITUVOVDApKTsKIAog
ICAgIEFOR0xFX1RSWShzY29wZWRTdGF0ZS5leGl0KGNvbnRleHQpKTsKICAgICByZXR1cm4gYW5n
bGU6OlJlc3VsdDo6Q29udGludWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdM
RS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvZ2wvQmxpdEdMLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9B
TkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvZ2wvQmxpdEdMLmgKaW5kZXggYTYxOGU2ZTNkYTU1
NDE5NjE5ZDU4NThkYWUwNzdhZDFhODRmYzAzNS4uMGZmY2FjMGYwZDdiNTZkYTlhNTgzZjNkYTQ0
ZjBmOGNiNTYzM2YyNyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xp
YkFOR0xFL3JlbmRlcmVyL2dsL0JsaXRHTC5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xF
L3NyYy9saWJBTkdMRS9yZW5kZXJlci9nbC9CbGl0R0wuaApAQCAtMTQ5LDcgKzE0OSwxMSBAQCBj
bGFzcyBCbGl0R0wgOiBhbmdsZTo6Tm9uQ29weWFibGUKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFJlbmRlcmJ1ZmZlckdMICpzb3VyY2UsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBHTGVudW0gc2l6ZWRJbnRlcm5hbEZvcm1hdCk7CiAKLSAgICBhbmds
ZTo6UmVzdWx0IGNsZWFyRnJhbWVidWZmZXIoY29uc3QgZ2w6OkNvbnRleHQgKmNvbnRleHQsIEZy
YW1lYnVmZmVyR0wgKnNvdXJjZSk7CisgICAgYW5nbGU6OlJlc3VsdCBjbGVhckZyYW1lYnVmZmVy
KGNvbnN0IGdsOjpDb250ZXh0ICpjb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBib29sIGNvbG9yQ2xlYXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGJvb2wgZGVwdGhDbGVhciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ym9vbCBzdGVuY2lsQ2xlYXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZy
YW1lYnVmZmVyR0wgKnNvdXJjZSk7CiAKICAgICBhbmdsZTo6UmVzdWx0IGNsZWFyUmVuZGVyYWJs
ZVRleHR1cmVBbHBoYVRvT25lKGNvbnN0IGdsOjpDb250ZXh0ICpjb250ZXh0LAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0x1aW50IHRleHR1cmUs
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVy
ZXIvZ2wvQ29udGV4dEdMLmNwcCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdM
RS9yZW5kZXJlci9nbC9Db250ZXh0R0wuY3BwCmluZGV4IDlhNDBiMmQyYzYwNzg0ZGFhMDYzZDEz
N2JlOTZkMzQ4MTNmMGRiN2QuLmRjYjhjZGI0MGY2MzZiM2Q5OWIwMzYyOWFkYTQ5OGY1Y2YyOTQy
NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5k
ZXJlci9nbC9Db250ZXh0R0wuY3BwCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9s
aWJBTkdMRS9yZW5kZXJlci9nbC9Db250ZXh0R0wuY3BwCkBAIC0yMjMsNyArMjIzLDcgQEAgQU5H
TEVfSU5MSU5FIGFuZ2xlOjpSZXN1bHQgQ29udGV4dEdMOjpzZXREcmF3QXJyYXlzU3RhdGUoY29u
c3QgZ2w6OkNvbnRleHQgKmNvbnQKIHsKICAgICBjb25zdCBhbmdsZTo6RmVhdHVyZXNHTCAmZmVh
dHVyZXMgPSBnZXRGZWF0dXJlc0dMKCk7CiAgICAgaWYgKGNvbnRleHQtPmdldFN0YXRlQ2FjaGUo
KS5oYXNBbnlBY3RpdmVDbGllbnRBdHRyaWIoKSB8fAotICAgICAgICAoZmVhdHVyZXMuc2hpZnRJ
bnN0YW5jZWRBcnJheURhdGFXaXRoRXh0cmFPZmZzZXQuZW5hYmxlZCAmJiBmaXJzdCA+IDApKQor
ICAgICAgICAoZmVhdHVyZXMuc2hpZnRJbnN0YW5jZWRBcnJheURhdGFXaXRoT2Zmc2V0LmVuYWJs
ZWQgJiYgZmlyc3QgPiAwKSkKICAgICB7CiAgICAgICAgIGNvbnN0IGdsOjpTdGF0ZSAmZ2xTdGF0
ZSAgICAgICAgICAgICAgICA9IGNvbnRleHQtPmdldFN0YXRlKCk7CiAgICAgICAgIGNvbnN0IGds
OjpQcm9ncmFtRXhlY3V0YWJsZSAqZXhlY3V0YWJsZSA9IGdldFN0YXRlKCkuZ2V0UHJvZ3JhbUV4
ZWN1dGFibGUoKTsKQEAgLTIzNyw3ICsyMzcsNyBAQCBBTkdMRV9JTkxJTkUgYW5nbGU6OlJlc3Vs
dCBDb250ZXh0R0w6OnNldERyYXdBcnJheXNTdGF0ZShjb25zdCBnbDo6Q29udGV4dCAqY29udAog
ICAgICAgICBBTkdMRV9UUlkodmFvR0wtPnZhbGlkYXRlU3RhdGUoY29udGV4dCkpOwogI2VuZGlm
ICAvLyBBTkdMRV9TVEFURV9WQUxJREFUSU9OX0VOQUJMRUQKICAgICB9Ci0gICAgZWxzZSBpZiAo
ZmVhdHVyZXMuc2hpZnRJbnN0YW5jZWRBcnJheURhdGFXaXRoRXh0cmFPZmZzZXQuZW5hYmxlZCAm
JiBmaXJzdCA9PSAwKQorICAgIGVsc2UgaWYgKGZlYXR1cmVzLnNoaWZ0SW5zdGFuY2VkQXJyYXlE
YXRhV2l0aE9mZnNldC5lbmFibGVkICYmIGZpcnN0ID09IDApCiAgICAgewogICAgICAgICAvLyBU
aGVyZSBjb3VsZCBiZSBwcmV2aW91cyBkcmF3IGNhbGwgdGhhdCBoYXMgbW9kaWZpZWQgdGhlIGF0
dHJpYnV0ZXMKICAgICAgICAgLy8gSW5zdGVhZCBvZiBmb3JjZWZ1bGx5IHN0cmVhbWluZyBhdHRy
aWJ1dGVzLCB3ZSBqdXN0IHJlYmluZCB0aGUgb3JpZ2luYWwgb25lcwpAQCAtMjcwLDcgKzI3MCw3
IEBAIEFOR0xFX0lOTElORSBhbmdsZTo6UmVzdWx0IENvbnRleHRHTDo6c2V0RHJhd0VsZW1lbnRz
U3RhdGUoY29uc3QgZ2w6OkNvbnRleHQgKmNvCiAgICAgY29uc3QgZ2w6OlN0YXRlQ2FjaGUgJnN0
YXRlQ2FjaGUgICAgICAgID0gY29udGV4dC0+Z2V0U3RhdGVDYWNoZSgpOwogCiAgICAgY29uc3Qg
YW5nbGU6OkZlYXR1cmVzR0wgJmZlYXR1cmVzID0gZ2V0RmVhdHVyZXNHTCgpOwotICAgIGlmIChm
ZWF0dXJlcy5zaGlmdEluc3RhbmNlZEFycmF5RGF0YVdpdGhFeHRyYU9mZnNldC5lbmFibGVkKQor
ICAgIGlmIChmZWF0dXJlcy5zaGlmdEluc3RhbmNlZEFycmF5RGF0YVdpdGhPZmZzZXQuZW5hYmxl
ZCkKICAgICB7CiAgICAgICAgIC8vIFRoZXJlIG1pZ2h0IGJlIGluc3RhbmNlZCBhcnJheXMgdGhh
dCBhcmUgZm9yY2VkIHN0cmVhbWluZyBmb3IgZHJhd0FycmF5c0luc3RhbmNlZAogICAgICAgICAv
LyBUaGV5IGNhbm5vdCBiZSBFTEVNRU5UX0FSUkFZX0JVRkZFUgpAQCAtMzY2LDcgKzM2Niw3IEBA
IGdsOjpBdHRyaWJ1dGVzTWFzayBDb250ZXh0R0w6OnVwZGF0ZUF0dHJpYnV0ZXNGb3JCYXNlSW5z
dGFuY2UoY29uc3QgZ2w6OlByb2dyYW0KICAgICAgICAgY29uc3QgRnVuY3Rpb25zR0wgKmZ1bmN0
aW9ucyA9IGdldEZ1bmN0aW9ucygpOwogICAgICAgICBjb25zdCBhdXRvICZhdHRyaWJzICAgICAg
ICAgID0gbVN0YXRlLmdldFZlcnRleEFycmF5KCktPmdldFZlcnRleEF0dHJpYnV0ZXMoKTsKICAg
ICAgICAgY29uc3QgYXV0byAmYmluZGluZ3MgICAgICAgICA9IG1TdGF0ZS5nZXRWZXJ0ZXhBcnJh
eSgpLT5nZXRWZXJ0ZXhCaW5kaW5ncygpOwotICAgICAgICBmb3IgKEdMdWludCBhdHRyaWJJbmRl
eCA9IDA7IGF0dHJpYkluZGV4IDwgZ2w6Ok1BWF9WRVJURVhfQVRUUklCUzsgYXR0cmliSW5kZXgr
KykKKyAgICAgICAgZm9yIChHTHVpbnQgYXR0cmliSW5kZXggPSAwOyBhdHRyaWJJbmRleCA8IGF0
dHJpYnMuc2l6ZSgpOyBhdHRyaWJJbmRleCsrKQogICAgICAgICB7CiAgICAgICAgICAgICBjb25z
dCBnbDo6VmVydGV4QXR0cmlidXRlICZhdHRyaWIgPSBhdHRyaWJzW2F0dHJpYkluZGV4XTsKICAg
ICAgICAgICAgIGNvbnN0IGdsOjpWZXJ0ZXhCaW5kaW5nICZiaW5kaW5nICA9IGJpbmRpbmdzW2F0
dHJpYi5iaW5kaW5nSW5kZXhdOwpAQCAtOTA1LDcgKzkwNSw3IEBAIGFuZ2xlOjpSZXN1bHQgQ29u
dGV4dEdMOjpvbk1ha2VDdXJyZW50KGNvbnN0IGdsOjpDb250ZXh0ICpjb250ZXh0KQogYW5nbGU6
OlJlc3VsdCBDb250ZXh0R0w6Om9uVW5NYWtlQ3VycmVudChjb25zdCBnbDo6Q29udGV4dCAqY29u
dGV4dCkKIHsKICAgICBBTkdMRV9UUlkoZmx1c2goY29udGV4dCkpOwotICAgIGlmIChnZXRGZWF0
dXJlc0dMKCkudW5iaW5kRkJPT25Db250ZXh0U3dpdGNoLmVuYWJsZWQpCisgICAgaWYgKGdldEZl
YXR1cmVzR0woKS51bmJpbmRGQk9CZWZvcmVTd2l0Y2hpbmdDb250ZXh0LmVuYWJsZWQpCiAgICAg
ewogICAgICAgICBtUmVuZGVyZXItPmdldFN0YXRlTWFuYWdlcigpLT5iaW5kRnJhbWVidWZmZXIo
R0xfRlJBTUVCVUZGRVIsIDApOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9nbC9EaXNwbGF5R0wuY3BwIGIvU291cmNlL1Ro
aXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL2dsL0Rpc3BsYXlHTC5jcHAKaW5k
ZXggZDcyMjJhYWVkNDQ0ZjI0ZjU4NTNkMGJhOTU2ZWJiODE5NGRmYmIxNC4uOGY2NzliOTMyZWQ2
YTkxZjY2ODQxODkyNjNmODE2NzI1MGE1ZWEwYyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL2dsL0Rpc3BsYXlHTC5jcHAKKysrIGIvU291
cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL2dsL0Rpc3BsYXlHTC5j
cHAKQEAgLTE3NSw3ICsxNzUsNyBAQCBzdGQ6OnN0cmluZyBEaXNwbGF5R0w6OmdldFJlbmRlcmVy
RGVzY3JpcHRpb24oKQogICAgIHN0ZDo6c3RyaW5nIHJlbmRlcmVyU3RyaW5nICAgICAgICA9IEdl
dFJlbmRlcmVyU3RyaW5nKGdldFJlbmRlcmVyKCktPmdldEZ1bmN0aW9ucygpKTsKICAgICBjb25z
dCBhbmdsZTo6RmVhdHVyZXNHTCAmZmVhdHVyZXMgPSBnZXRSZW5kZXJlcigpLT5nZXRGZWF0dXJl
cygpOwogCi0gICAgaWYgKGZlYXR1cmVzLnNhbml0aXplQW1kR3B1UmVuZGVyZXJTdHJpbmcuZW5h
YmxlZCkKKyAgICBpZiAoZmVhdHVyZXMuc2FuaXRpemVBTURHUFVSZW5kZXJlclN0cmluZy5lbmFi
bGVkKQogICAgIHsKICAgICAgICAgcmV0dXJuIFNhbml0aXplUmVuZGVyZXJTdHJpbmcocmVuZGVy
ZXJTdHJpbmcpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3Ny
Yy9saWJBTkdMRS9yZW5kZXJlci9nbC9GcmFtZWJ1ZmZlckdMLmNwcCBiL1NvdXJjZS9UaGlyZFBh
cnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9nbC9GcmFtZWJ1ZmZlckdMLmNwcAppbmRl
eCA3MWE5OTQ0YzUwZjc5YmI1NzgwMjA4ZGQxNDYwYTYzZGQ3NzBmODg4Li43Yjk0ZTdmM2E0ZDkz
NjY3ZDVmMjliMTEwMjkwYmEwNDA0MTVjM2Y4IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvZ2wvRnJhbWVidWZmZXJHTC5jcHAKKysrIGIv
U291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL2dsL0ZyYW1lYnVm
ZmVyR0wuY3BwCkBAIC0yNiw3ICsyNiw3IEBACiAjaW5jbHVkZSAibGliQU5HTEUvcmVuZGVyZXIv
Z2wvVGV4dHVyZUdMLmgiCiAjaW5jbHVkZSAibGliQU5HTEUvcmVuZGVyZXIvZ2wvZm9ybWF0dXRp
bHNnbC5oIgogI2luY2x1ZGUgImxpYkFOR0xFL3JlbmRlcmVyL2dsL3JlbmRlcmVyZ2xfdXRpbHMu
aCIKLSNpbmNsdWRlICJwbGF0Zm9ybS9GZWF0dXJlc0dMLmgiCisjaW5jbHVkZSAicGxhdGZvcm0v
RmVhdHVyZXNHTF9hdXRvZ2VuLmgiCiAjaW5jbHVkZSAicGxhdGZvcm0vUGxhdGZvcm1NZXRob2Rz
LmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBnbDsKQEAgLTc2LDcgKzc2LDggQEAgc3RhdGljIEJsaXRG
cmFtZWJ1ZmZlckJvdW5kcyBHZXRCbGl0RnJhbWVidWZmZXJCb3VuZHMoY29uc3QgZ2w6OkNvbnRl
eHQgKmNvbnRleHQKIAogdm9pZCBCaW5kRnJhbWVidWZmZXJBdHRhY2htZW50KGNvbnN0IEZ1bmN0
aW9uc0dMICpmdW5jdGlvbnMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0xlbnVt
IGF0dGFjaG1lbnRQb2ludCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBG
cmFtZWJ1ZmZlckF0dGFjaG1lbnQgKmF0dGFjaG1lbnQpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3QgRnJhbWVidWZmZXJBdHRhY2htZW50ICphdHRhY2htZW50LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGFuZ2xlOjpGZWF0dXJlc0dMICZmZWF0dXJl
cykKIHsKICAgICBpZiAoYXR0YWNobWVudCkKICAgICB7CkBAIC0xNjAsNiArMTYxLDEyIEBAIHZv
aWQgQmluZEZyYW1lYnVmZmVyQXR0YWNobWVudChjb25zdCBGdW5jdGlvbnNHTCAqZnVuY3Rpb25z
LAogICAgICAgICAgICAgY29uc3QgUmVuZGVyYnVmZmVyICpyZW5kZXJidWZmZXIgICAgID0gYXR0
YWNobWVudC0+Z2V0UmVuZGVyYnVmZmVyKCk7CiAgICAgICAgICAgICBjb25zdCBSZW5kZXJidWZm
ZXJHTCAqcmVuZGVyYnVmZmVyR0wgPSBHZXRJbXBsQXM8UmVuZGVyYnVmZmVyR0w+KHJlbmRlcmJ1
ZmZlcik7CiAKKyAgICAgICAgICAgIGlmIChmZWF0dXJlcy5hbHdheXNVbmJpbmRGcmFtZWJ1ZmZl
clRleHR1cmUyRC5lbmFibGVkKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGZ1bmN0
aW9ucy0+ZnJhbWVidWZmZXJUZXh0dXJlMkQoR0xfRlJBTUVCVUZGRVIsIGF0dGFjaG1lbnRQb2lu
dCwgR0xfVEVYVFVSRV8yRCwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDApOworICAgICAgICAgICAgfQorCiAgICAgICAgICAgICBmdW5jdGlvbnMt
PmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKEdMX0ZSQU1FQlVGRkVSLCBhdHRhY2htZW50UG9pbnQs
IEdMX1JFTkRFUkJVRkZFUiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmVuZGVyYnVmZmVyR0wtPmdldFJlbmRlcmJ1ZmZlcklEKCkpOwogICAgICAgICB9
CkBAIC04NDAsNyArODQ3LDcgQEAgYW5nbGU6OlJlc3VsdCBGcmFtZWJ1ZmZlckdMOjpibGl0KGNv
bnN0IGdsOjpDb250ZXh0ICpjb250ZXh0LAogICAgIGdsOjpSZWN0YW5nbGUgZmluYWxTb3VyY2VB
cmVhKHNvdXJjZUFyZWEpOwogICAgIGdsOjpSZWN0YW5nbGUgZmluYWxEZXN0QXJlYShkZXN0QXJl
YSk7CiAKLSAgICBpZiAoZmVhdHVyZXMuYWRqdXN0U3JjRHN0UmVnaW9uQmxpdEZyYW1lYnVmZmVy
LmVuYWJsZWQpCisgICAgaWYgKGZlYXR1cmVzLmFkanVzdFNyY0RzdFJlZ2lvbkZvckJsaXRGcmFt
ZWJ1ZmZlci5lbmFibGVkKQogICAgIHsKICAgICAgICAgYW5nbGU6OlJlc3VsdCByZXN1bHQgPSBh
ZGp1c3RTcmNEc3RSZWdpb24oY29udGV4dCwgZmluYWxTb3VyY2VBcmVhLCBmaW5hbERlc3RBcmVh
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZmlu
YWxTb3VyY2VBcmVhLCAmZmluYWxEZXN0QXJlYSk7CkBAIC04NDksNyArODU2LDcgQEAgYW5nbGU6
OlJlc3VsdCBGcmFtZWJ1ZmZlckdMOjpibGl0KGNvbnN0IGdsOjpDb250ZXh0ICpjb250ZXh0LAog
ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgfQogICAgIH0KLSAgICBpZiAoZmVh
dHVyZXMuY2xpcFNyY1JlZ2lvbkJsaXRGcmFtZWJ1ZmZlci5lbmFibGVkKQorICAgIGlmIChmZWF0
dXJlcy5jbGlwU3JjUmVnaW9uRm9yQmxpdEZyYW1lYnVmZmVyLmVuYWJsZWQpCiAgICAgewogICAg
ICAgICBhbmdsZTo6UmVzdWx0IHJlc3VsdCA9IGNsaXBTcmNSZWdpb24oY29udGV4dCwgZmluYWxT
b3VyY2VBcmVhLCBmaW5hbERlc3RBcmVhLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJmZpbmFsU291cmNlQXJlYSwgJmZpbmFsRGVzdEFyZWEpOwpAQCAtMTI2
Niw3ICsxMjczLDggQEAgYW5nbGU6OlJlc3VsdCBGcmFtZWJ1ZmZlckdMOjpzeW5jU3RhdGUoY29u
c3QgZ2w6OkNvbnRleHQgKmNvbnRleHQsCiAgICAgICAgICAgICBjYXNlIEZyYW1lYnVmZmVyOjpE
SVJUWV9CSVRfREVQVEhfQVRUQUNITUVOVDoKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICBjb25zdCBGcmFtZWJ1ZmZlckF0dGFjaG1lbnQgKm5ld0F0dGFjaG1lbnQgPSBtU3RhdGUuZ2V0
RGVwdGhBdHRhY2htZW50KCk7Ci0gICAgICAgICAgICAgICAgQmluZEZyYW1lYnVmZmVyQXR0YWNo
bWVudChmdW5jdGlvbnMsIEdMX0RFUFRIX0FUVEFDSE1FTlQsIG5ld0F0dGFjaG1lbnQpOworICAg
ICAgICAgICAgICAgIEJpbmRGcmFtZWJ1ZmZlckF0dGFjaG1lbnQoZnVuY3Rpb25zLCBHTF9ERVBU
SF9BVFRBQ0hNRU5ULCBuZXdBdHRhY2htZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgR2V0RmVhdHVyZXNHTChjb250ZXh0KSk7CiAgICAgICAgICAgICAgICAg
aWYgKG5ld0F0dGFjaG1lbnQpCiAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
ICBhdHRhY2htZW50ID0gbmV3QXR0YWNobWVudDsKQEAgLTEyNzYsNyArMTI4NCw4IEBAIGFuZ2xl
OjpSZXN1bHQgRnJhbWVidWZmZXJHTDo6c3luY1N0YXRlKGNvbnN0IGdsOjpDb250ZXh0ICpjb250
ZXh0LAogICAgICAgICAgICAgY2FzZSBGcmFtZWJ1ZmZlcjo6RElSVFlfQklUX1NURU5DSUxfQVRU
QUNITUVOVDoKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBjb25zdCBGcmFtZWJ1ZmZl
ckF0dGFjaG1lbnQgKm5ld0F0dGFjaG1lbnQgPSBtU3RhdGUuZ2V0U3RlbmNpbEF0dGFjaG1lbnQo
KTsKLSAgICAgICAgICAgICAgICBCaW5kRnJhbWVidWZmZXJBdHRhY2htZW50KGZ1bmN0aW9ucywg
R0xfU1RFTkNJTF9BVFRBQ0hNRU5ULCBuZXdBdHRhY2htZW50KTsKKyAgICAgICAgICAgICAgICBC
aW5kRnJhbWVidWZmZXJBdHRhY2htZW50KGZ1bmN0aW9ucywgR0xfU1RFTkNJTF9BVFRBQ0hNRU5U
LCBuZXdBdHRhY2htZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgR2V0RmVhdHVyZXNHTChjb250ZXh0KSk7CiAgICAgICAgICAgICAgICAgaWYgKG5ld0F0dGFj
aG1lbnQpCiAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBhdHRhY2htZW50
ID0gbmV3QXR0YWNobWVudDsKQEAgLTEzMjksNyArMTMzOCw3IEBAIGFuZ2xlOjpSZXN1bHQgRnJh
bWVidWZmZXJHTDo6c3luY1N0YXRlKGNvbnN0IGdsOjpDb250ZXh0ICpjb250ZXh0LAogICAgICAg
ICAgICAgICAgICAgICBjb25zdCBGcmFtZWJ1ZmZlckF0dGFjaG1lbnQgKm5ld0F0dGFjaG1lbnQg
PSBtU3RhdGUuZ2V0Q29sb3JBdHRhY2htZW50KGluZGV4KTsKICAgICAgICAgICAgICAgICAgICAg
QmluZEZyYW1lYnVmZmVyQXR0YWNobWVudChmdW5jdGlvbnMsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8R0xlbnVtPihHTF9DT0xPUl9B
VFRBQ0hNRU5UMCArIGluZGV4KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBuZXdBdHRhY2htZW50KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBuZXdBdHRhY2htZW50LCBHZXRGZWF0dXJlc0dMKGNvbnRleHQpKTsK
ICAgICAgICAgICAgICAgICAgICAgaWYgKG5ld0F0dGFjaG1lbnQpCiAgICAgICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGF0dGFjaG1lbnQgPSBuZXdBdHRhY2htZW50
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRl
cmVyL2dsL1Byb2dyYW1HTC5jcHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5H
TEUvcmVuZGVyZXIvZ2wvUHJvZ3JhbUdMLmNwcAppbmRleCAzY2FmMWVjOWIzYzU3N2I4M2IxNWQ1
YTMxMjUwN2ZlYTcyZGZhOTRiLi42NGY0NDcxMzRlMDAwZTFkOWNiMDJmYWEyNDZiMzdjYWM1Yjdk
NjNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVu
ZGVyZXIvZ2wvUHJvZ3JhbUdMLmNwcAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMv
bGliQU5HTEUvcmVuZGVyZXIvZ2wvUHJvZ3JhbUdMLmNwcApAQCAtMjQsNyArMjQsNyBAQAogI2lu
Y2x1ZGUgImxpYkFOR0xFL3JlbmRlcmVyL2dsL1NoYWRlckdMLmgiCiAjaW5jbHVkZSAibGliQU5H
TEUvcmVuZGVyZXIvZ2wvU3RhdGVNYW5hZ2VyR0wuaCIKICNpbmNsdWRlICJsaWJBTkdMRS90cmFj
ZS5oIgotI2luY2x1ZGUgInBsYXRmb3JtL0ZlYXR1cmVzR0wuaCIKKyNpbmNsdWRlICJwbGF0Zm9y
bS9GZWF0dXJlc0dMX2F1dG9nZW4uaCIKICNpbmNsdWRlICJwbGF0Zm9ybS9QbGF0Zm9ybU1ldGhv
ZHMuaCIKIAogbmFtZXNwYWNlIHJ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdM
RS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvZ2wvUmVuZGVyYnVmZmVyR0wuY3BwIGIvU291cmNlL1Ro
aXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL2dsL1JlbmRlcmJ1ZmZlckdMLmNw
cAppbmRleCBiYWZhYzk5OTA2OGIwZDlhYjE0ODZhMGFhOGUxMmYzMjU2NzUzZWZhLi44NzU5ODYy
NWYzYThkOTFhYjM3ZDQxZjY5MDk2MDJmNTEwYzQzMjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvZ2wvUmVuZGVyYnVmZmVyR0wuY3Bw
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9nbC9S
ZW5kZXJidWZmZXJHTC5jcHAKQEAgLTE5LDcgKzE5LDcgQEAKICNpbmNsdWRlICJsaWJBTkdMRS9y
ZW5kZXJlci9nbC9TdGF0ZU1hbmFnZXJHTC5oIgogI2luY2x1ZGUgImxpYkFOR0xFL3JlbmRlcmVy
L2dsL2Zvcm1hdHV0aWxzZ2wuaCIKICNpbmNsdWRlICJsaWJBTkdMRS9yZW5kZXJlci9nbC9yZW5k
ZXJlcmdsX3V0aWxzLmgiCi0jaW5jbHVkZSAicGxhdGZvcm0vRmVhdHVyZXNHTC5oIgorI2luY2x1
ZGUgInBsYXRmb3JtL0ZlYXR1cmVzR0xfYXV0b2dlbi5oIgogCiBuYW1lc3BhY2UgcngKIHsKQEAg
LTEyMSw2ICsxMjEsNyBAQCBHTHVpbnQgUmVuZGVyYnVmZmVyR0w6OmdldFJlbmRlcmJ1ZmZlcklE
KCkgY29uc3QKIH0KIAogYW5nbGU6OlJlc3VsdCBSZW5kZXJidWZmZXJHTDo6aW5pdGlhbGl6ZUNv
bnRlbnRzKGNvbnN0IGdsOjpDb250ZXh0ICpjb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMZW51bSBiaW5kaW5nLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdsOjpJbWFnZUluZGV4
ICZpbWFnZUluZGV4KQogewogICAgIEJsaXRHTCAqYmxpdHRlciA9IEdldEJsaXRHTChjb250ZXh0
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5k
ZXJlci9nbC9SZW5kZXJidWZmZXJHTC5oIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xp
YkFOR0xFL3JlbmRlcmVyL2dsL1JlbmRlcmJ1ZmZlckdMLmgKaW5kZXggZDk1YmExYWY2ZDgwMmQ3
NWFkY2NlYTk2NTZjYzNlNWI3NDNmZjQ2Ni4uNTkxMDc3YjZiZTc5OWFjMDk3N2IxY2YzMDIxODE1
ZTZkZDM1ZTU0MCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFO
R0xFL3JlbmRlcmVyL2dsL1JlbmRlcmJ1ZmZlckdMLmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkv
QU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL2dsL1JlbmRlcmJ1ZmZlckdMLmgKQEAgLTQ5LDYg
KzQ5LDcgQEAgY2xhc3MgUmVuZGVyYnVmZmVyR0wgOiBwdWJsaWMgUmVuZGVyYnVmZmVySW1wbAog
ICAgIGFuZ2xlOjpSZXN1bHQgc2V0U3RvcmFnZUVHTEltYWdlVGFyZ2V0KGNvbnN0IGdsOjpDb250
ZXh0ICpjb250ZXh0LCBlZ2w6OkltYWdlICppbWFnZSkgb3ZlcnJpZGU7CiAKICAgICBhbmdsZTo6
UmVzdWx0IGluaXRpYWxpemVDb250ZW50cyhjb25zdCBnbDo6Q29udGV4dCAqY29udGV4dCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTGVudW0gYmluZGluZywKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnbDo6SW1hZ2VJbmRleCAmaW1h
Z2VJbmRleCkgb3ZlcnJpZGU7CiAKICAgICBHTHVpbnQgZ2V0UmVuZGVyYnVmZmVySUQoKSBjb25z
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5k
ZXJlci9nbC9SZW5kZXJlckdMLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5H
TEUvcmVuZGVyZXIvZ2wvUmVuZGVyZXJHTC5oCmluZGV4IGQ0MzI0N2VkNTY5OTU4YzBlOTJhYWZj
MWViNzgyNTE1M2VhODY4YzQuLjgyNTA1ZjQyMWY4ODQ5ZDAyNmQ2ZDdjNjMzODJiNWZmMTcwMjNj
OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5k
ZXJlci9nbC9SZW5kZXJlckdMLmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xp
YkFOR0xFL3JlbmRlcmVyL2dsL1JlbmRlcmVyR0wuaApAQCAtMTcsNyArMTcsNyBAQAogI2luY2x1
ZGUgImxpYkFOR0xFL0Vycm9yLmgiCiAjaW5jbHVkZSAibGliQU5HTEUvVmVyc2lvbi5oIgogI2lu
Y2x1ZGUgImxpYkFOR0xFL3JlbmRlcmVyL2dsL3JlbmRlcmVyZ2xfdXRpbHMuaCIKLSNpbmNsdWRl
ICJwbGF0Zm9ybS9GZWF0dXJlc0dMLmgiCisjaW5jbHVkZSAicGxhdGZvcm0vRmVhdHVyZXNHTF9h
dXRvZ2VuLmgiCiAKIG5hbWVzcGFjZSBhbmdsZQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJk
UGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL2dsL1NoYWRlckdMLmNwcCBiL1NvdXJj
ZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9nbC9TaGFkZXJHTC5jcHAK
aW5kZXggMDQxOTIyZDhhNjI5NzUxNjQ2OTljNmNjNWFjODkzNGI2MmYyMzZlOS4uODM5ZTE4MTc3
OTIyMDAxOTk2ZjM3YzdlM2QwOTkxYjdjZjIxOWMxOSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJk
UGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL2dsL1NoYWRlckdMLmNwcAorKysgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvZ2wvU2hhZGVyR0wu
Y3BwCkBAIC0xNCw3ICsxNCw3IEBACiAjaW5jbHVkZSAibGliQU5HTEUvcmVuZGVyZXIvZ2wvRnVu
Y3Rpb25zR0wuaCIKICNpbmNsdWRlICJsaWJBTkdMRS9yZW5kZXJlci9nbC9SZW5kZXJlckdMLmgi
CiAjaW5jbHVkZSAibGliQU5HTEUvdHJhY2UuaCIKLSNpbmNsdWRlICJwbGF0Zm9ybS9GZWF0dXJl
c0dMLmgiCisjaW5jbHVkZSAicGxhdGZvcm0vRmVhdHVyZXNHTF9hdXRvZ2VuLmgiCiAKICNpbmNs
dWRlIDxpb3N0cmVhbT4KIApAQCAtMzQwLDcgKzM0MCw3IEBAIHN0ZDo6c2hhcmVkX3B0cjxXYWl0
YWJsZUNvbXBpbGVFdmVudD4gU2hhZGVyR0w6OmNvbXBpbGUoY29uc3QgZ2w6OkNvbnRleHQgKmNv
bnRlCiAgICAgICAgIGFkZGl0aW9uYWxPcHRpb25zIHw9IFNIX0NMQU1QX0lORElSRUNUX0FSUkFZ
X0JPVU5EUzsKICAgICB9CiAKLSAgICBpZiAoZmVhdHVyZXMuYWRkQmFzZVZlcnRleFRvVmVydGV4
SUQuZW5hYmxlZCkKKyAgICBpZiAoZmVhdHVyZXMudmVydGV4SUREb2VzTm90SW5jbHVkZUJhc2VW
ZXJ0ZXguZW5hYmxlZCkKICAgICB7CiAgICAgICAgIGFkZGl0aW9uYWxPcHRpb25zIHw9IFNIX0FE
RF9CQVNFX1ZFUlRFWF9UT19WRVJURVhfSUQ7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL2dsL1N0YXRlTWFuYWdlckdMLmNw
cCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9nbC9TdGF0
ZU1hbmFnZXJHTC5jcHAKaW5kZXggZjQyMjI1YzBlNWU5OGZkNmRkNWMzZGY4MzE4N2JkNzcwYWRh
M2ZhNy4uMGNiMDZiN2M4NDA2NzNkNDkxOTk0N2FiZmFhYzFjYjZjODc4NmRlNSAxMDA2NDQKLS0t
IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL2dsL1N0YXRl
TWFuYWdlckdMLmNwcAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUv
cmVuZGVyZXIvZ2wvU3RhdGVNYW5hZ2VyR0wuY3BwCkBAIC0xMTUwLDggKzExNTAsOCBAQCB2b2lk
IFN0YXRlTWFuYWdlckdMOjpzZXREZXB0aFJhbmdlKGZsb2F0IG5lYXIsIGZsb2F0IGZhcikKIHZv
aWQgU3RhdGVNYW5hZ2VyR0w6OnNldEJsZW5kRW5hYmxlZChib29sIGVuYWJsZWQpCiB7CiAgICAg
Y29uc3QgZ2w6OkRyYXdCdWZmZXJNYXNrIG1hc2sgPQotICAgICAgICBlbmFibGVkID8gbUJsZW5k
U3RhdGVFeHQubU1heEVuYWJsZWRNYXNrIDogZ2w6OkRyYXdCdWZmZXJNYXNrOjpaZXJvKCk7Ci0g
ICAgaWYgKG1CbGVuZFN0YXRlRXh0Lm1FbmFibGVkTWFzayA9PSBtYXNrKQorICAgICAgICBlbmFi
bGVkID8gbUJsZW5kU3RhdGVFeHQuZ2V0QWxsRW5hYmxlZE1hc2soKSA6IGdsOjpEcmF3QnVmZmVy
TWFzazo6WmVybygpOworICAgIGlmIChtQmxlbmRTdGF0ZUV4dC5nZXRFbmFibGVkTWFzaygpID09
IG1hc2spCiAgICAgewogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTE3MSwxMyArMTE3MSwx
MyBAQCB2b2lkIFN0YXRlTWFuYWdlckdMOjpzZXRCbGVuZEVuYWJsZWQoYm9vbCBlbmFibGVkKQog
CiB2b2lkIFN0YXRlTWFuYWdlckdMOjpzZXRCbGVuZEVuYWJsZWRJbmRleGVkKGNvbnN0IGdsOjpE
cmF3QnVmZmVyTWFzayBlbmFibGVkTWFzaykKIHsKLSAgICBpZiAobUJsZW5kU3RhdGVFeHQubUVu
YWJsZWRNYXNrID09IGVuYWJsZWRNYXNrKQorICAgIGlmIChtQmxlbmRTdGF0ZUV4dC5nZXRFbmFi
bGVkTWFzaygpID09IGVuYWJsZWRNYXNrKQogICAgIHsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAogICAgIC8vIEdldCBEcmF3QnVmZmVyTWFzayBvZiBidWZmZXJzIHdpdGggZGlmZmVyZW50IGJs
ZW5kIGVuYWJsZSBzdGF0ZQotICAgIGdsOjpEcmF3QnVmZmVyTWFzayBkaWZmTWFzayA9IG1CbGVu
ZFN0YXRlRXh0Lm1FbmFibGVkTWFzayBeIGVuYWJsZWRNYXNrOworICAgIGdsOjpEcmF3QnVmZmVy
TWFzayBkaWZmTWFzayA9IG1CbGVuZFN0YXRlRXh0LmdldEVuYWJsZWRNYXNrKCkgXiBlbmFibGVk
TWFzazsKICAgICBjb25zdCBzaXplX3QgZGlmZkNvdW50ICAgICAgPSBkaWZmTWFzay5jb3VudCgp
OwogCiAgICAgLy8gQ2hlY2sgaWYgZW5hYmxpbmcgb3IgZGlzYWJsaW5nIGJsZW5kaW5nIGZvciBh
bGwgYnVmZmVycyByZWR1Y2VzIHRoZSBudW1iZXIgb2Ygc3Vic2VxdWVudApAQCAtMTE4OSw3ICsx
MTg5LDcgQEAgdm9pZCBTdGF0ZU1hbmFnZXJHTDo6c2V0QmxlbmRFbmFibGVkSW5kZXhlZChjb25z
dCBnbDo6RHJhd0J1ZmZlck1hc2sgZW5hYmxlZE1hc2sKICAgICAgICAgY29uc3Qgc2l6ZV90IGVu
YWJsZWRDb3VudCA9IGVuYWJsZWRNYXNrLmNvdW50KCk7CiAKICAgICAgICAgLy8gVGhlIG1hc2sg
YW5kIHRoZSBudW1iZXIgb2YgaW5kZXhlZCBibGVuZCBkaXNhYmxlIGNvbW1hbmRzIGluIGNhc2Ug
YSBtYXNzIGVuYWJsZSBpcyB1c2VkLgotICAgICAgICBjb25zdCBnbDo6RHJhd0J1ZmZlck1hc2sg
ZGlzYWJsZWRNYXNrID0gZW5hYmxlZE1hc2sgXiBtQmxlbmRTdGF0ZUV4dC5tTWF4RW5hYmxlZE1h
c2s7CisgICAgICAgIGNvbnN0IGdsOjpEcmF3QnVmZmVyTWFzayBkaXNhYmxlZE1hc2sgPSBlbmFi
bGVkTWFzayBeIG1CbGVuZFN0YXRlRXh0LmdldEFsbEVuYWJsZWRNYXNrKCk7CiAgICAgICAgIGNv
bnN0IHNpemVfdCBkaXNhYmxlZENvdW50ICAgICAgICAgICAgPSBkaXNhYmxlZE1hc2suY291bnQo
KTsKIAogICAgICAgICBpZiAoZW5hYmxlZENvdW50IDwgZGlmZkNvdW50ICYmIGVuYWJsZWRDb3Vu
dCA8PSBkaXNhYmxlZENvdW50KQpAQCAtMTIxNiw3ICsxMjE2LDcgQEAgdm9pZCBTdGF0ZU1hbmFn
ZXJHTDo6c2V0QmxlbmRFbmFibGVkSW5kZXhlZChjb25zdCBnbDo6RHJhd0J1ZmZlck1hc2sgZW5h
YmxlZE1hc2sKICAgICAgICAgfQogICAgIH0KIAotICAgIG1CbGVuZFN0YXRlRXh0Lm1FbmFibGVk
TWFzayA9IGVuYWJsZWRNYXNrOworICAgIG1CbGVuZFN0YXRlRXh0LnNldEVuYWJsZWRNYXNrKGVu
YWJsZWRNYXNrKTsKICAgICBtTG9jYWxEaXJ0eUJpdHMuc2V0KGdsOjpTdGF0ZTo6RElSVFlfQklU
X0JMRU5EX0VOQUJMRUQpOwogfQogCkBAIC0xMjM0LDEwICsxMjM0LDEwIEBAIHZvaWQgU3RhdGVN
YW5hZ2VyR0w6OnNldEJsZW5kQ29sb3IoY29uc3QgZ2w6OkNvbG9yRiAmYmxlbmRDb2xvcikKIAog
dm9pZCBTdGF0ZU1hbmFnZXJHTDo6c2V0QmxlbmRGdW5jcyhjb25zdCBnbDo6QmxlbmRTdGF0ZUV4
dCAmYmxlbmRTdGF0ZUV4dCkKIHsKLSAgICBpZiAobUJsZW5kU3RhdGVFeHQubVNyY0NvbG9yID09
IGJsZW5kU3RhdGVFeHQubVNyY0NvbG9yICYmCi0gICAgICAgIG1CbGVuZFN0YXRlRXh0Lm1Ec3RD
b2xvciA9PSBibGVuZFN0YXRlRXh0Lm1Ec3RDb2xvciAmJgotICAgICAgICBtQmxlbmRTdGF0ZUV4
dC5tU3JjQWxwaGEgPT0gYmxlbmRTdGF0ZUV4dC5tU3JjQWxwaGEgJiYKLSAgICAgICAgbUJsZW5k
U3RhdGVFeHQubURzdEFscGhhID09IGJsZW5kU3RhdGVFeHQubURzdEFscGhhKQorICAgIGlmICht
QmxlbmRTdGF0ZUV4dC5nZXRTcmNDb2xvckJpdHMoKSA9PSBibGVuZFN0YXRlRXh0LmdldFNyY0Nv
bG9yQml0cygpICYmCisgICAgICAgIG1CbGVuZFN0YXRlRXh0LmdldERzdENvbG9yQml0cygpID09
IGJsZW5kU3RhdGVFeHQuZ2V0RHN0Q29sb3JCaXRzKCkgJiYKKyAgICAgICAgbUJsZW5kU3RhdGVF
eHQuZ2V0U3JjQWxwaGFCaXRzKCkgPT0gYmxlbmRTdGF0ZUV4dC5nZXRTcmNBbHBoYUJpdHMoKSAm
JgorICAgICAgICBtQmxlbmRTdGF0ZUV4dC5nZXREc3RBbHBoYUJpdHMoKSA9PSBibGVuZFN0YXRl
RXh0LmdldERzdEFscGhhQml0cygpKQogICAgIHsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAg
LTEyNTEsMTAgKzEyNTEsOCBAQCB2b2lkIFN0YXRlTWFuYWdlckdMOjpzZXRCbGVuZEZ1bmNzKGNv
bnN0IGdsOjpCbGVuZFN0YXRlRXh0ICZibGVuZFN0YXRlRXh0KQogICAgIGVsc2UKICAgICB7CiAg
ICAgICAgIC8vIEdldCBEcmF3QnVmZmVyTWFzayBvZiBidWZmZXJzIHdpdGggZGlmZmVyZW50IGJs
ZW5kIGZhY3RvcnMKLSAgICAgICAgZ2w6OkRyYXdCdWZmZXJNYXNrIGRpZmZNYXNrID0KLSAgICAg
ICAgICAgIG1CbGVuZFN0YXRlRXh0LmNvbXBhcmVGYWN0b3JzKGJsZW5kU3RhdGVFeHQubVNyY0Nv
bG9yLCBibGVuZFN0YXRlRXh0Lm1Ec3RDb2xvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGJsZW5kU3RhdGVFeHQubVNyY0FscGhhLCBibGVuZFN0YXRlRXh0Lm1E
c3RBbHBoYSk7Ci0gICAgICAgIHNpemVfdCBkaWZmQ291bnQgPSBkaWZmTWFzay5jb3VudCgpOwor
ICAgICAgICBnbDo6RHJhd0J1ZmZlck1hc2sgZGlmZk1hc2sgPSBtQmxlbmRTdGF0ZUV4dC5jb21w
YXJlRmFjdG9ycyhibGVuZFN0YXRlRXh0KTsKKyAgICAgICAgc2l6ZV90IGRpZmZDb3VudCAgICAg
ICAgICAgID0gZGlmZk1hc2suY291bnQoKTsKIAogICAgICAgICAvLyBDaGVjayBpZiBzZXR0aW5n
IGFsbCBidWZmZXJzIHRvIHRoZSBzYW1lIHZhbHVlIHJlZHVjZXMgdGhlIG51bWJlciBvZiBzdWJz
ZXF1ZW50IGluZGV4ZWQKICAgICAgICAgLy8gY29tbWFuZHMuIEltcGxpY2l0bHkgaGFuZGxlcyB0
aGUgY2FzZSB3aGVuIHRoZSBuZXcgYmxlbmQgZnVuY3Rpb24gc3RhdGUgaXMgdGhlIHNhbWUgZm9y
CkBAIC0xMjY2LDcgKzEyNjQsNyBAQCB2b2lkIFN0YXRlTWFuYWdlckdMOjpzZXRCbGVuZEZ1bmNz
KGNvbnN0IGdsOjpCbGVuZFN0YXRlRXh0ICZibGVuZFN0YXRlRXh0KQogICAgICAgICAgICAgZ2w6
OkJsZW5kU3RhdGVFeHQ6OkZhY3RvclN0b3JhZ2U6OlR5cGUgY29tbW9uRHN0Q29sb3IgPSAwOwog
ICAgICAgICAgICAgZ2w6OkJsZW5kU3RhdGVFeHQ6OkZhY3RvclN0b3JhZ2U6OlR5cGUgY29tbW9u
U3JjQWxwaGEgPSAwOwogICAgICAgICAgICAgZ2w6OkJsZW5kU3RhdGVFeHQ6OkZhY3RvclN0b3Jh
Z2U6OlR5cGUgY29tbW9uRHN0QWxwaGEgPSAwOwotICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBtQmxlbmRTdGF0ZUV4dC5tTWF4RHJhd0J1ZmZlcnMgLSAxOyBpKyspCisgICAgICAg
ICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1CbGVuZFN0YXRlRXh0LmdldERyYXdCdWZmZXJD
b3VudCgpIC0gMTsgaSsrKQogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIGNvbnN0IGds
OjpCbGVuZFN0YXRlRXh0OjpGYWN0b3JTdG9yYWdlOjpUeXBlIHRlbXBDb21tb25TcmNDb2xvciA9
CiAgICAgICAgICAgICAgICAgICAgIGJsZW5kU3RhdGVFeHQuZXhwYW5kU3JjQ29sb3JJbmRleGVk
KGkpOwpAQCAtMTMxNSwxNyArMTMxMywxNyBAQCB2b2lkIFN0YXRlTWFuYWdlckdMOjpzZXRCbGVu
ZEZ1bmNzKGNvbnN0IGdsOjpCbGVuZFN0YXRlRXh0ICZibGVuZFN0YXRlRXh0KQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJsZW5kU3RhdGVFeHQuZ2V0RHN0QWxw
aGFJbmRleGVkKGRyYXdCdWZmZXJJbmRleCkpOwogICAgICAgICB9CiAgICAgfQotICAgIG1CbGVu
ZFN0YXRlRXh0Lm1TcmNDb2xvciA9IGJsZW5kU3RhdGVFeHQubVNyY0NvbG9yOwotICAgIG1CbGVu
ZFN0YXRlRXh0Lm1Ec3RDb2xvciA9IGJsZW5kU3RhdGVFeHQubURzdENvbG9yOwotICAgIG1CbGVu
ZFN0YXRlRXh0Lm1TcmNBbHBoYSA9IGJsZW5kU3RhdGVFeHQubVNyY0FscGhhOwotICAgIG1CbGVu
ZFN0YXRlRXh0Lm1Ec3RBbHBoYSA9IGJsZW5kU3RhdGVFeHQubURzdEFscGhhOworICAgIG1CbGVu
ZFN0YXRlRXh0LnNldFNyY0NvbG9yQml0cyhibGVuZFN0YXRlRXh0LmdldFNyY0NvbG9yQml0cygp
KTsKKyAgICBtQmxlbmRTdGF0ZUV4dC5zZXREc3RDb2xvckJpdHMoYmxlbmRTdGF0ZUV4dC5nZXRE
c3RDb2xvckJpdHMoKSk7CisgICAgbUJsZW5kU3RhdGVFeHQuc2V0U3JjQWxwaGFCaXRzKGJsZW5k
U3RhdGVFeHQuZ2V0U3JjQWxwaGFCaXRzKCkpOworICAgIG1CbGVuZFN0YXRlRXh0LnNldERzdEFs
cGhhQml0cyhibGVuZFN0YXRlRXh0LmdldERzdEFscGhhQml0cygpKTsKICAgICBtTG9jYWxEaXJ0
eUJpdHMuc2V0KGdsOjpTdGF0ZTo6RElSVFlfQklUX0JMRU5EX0ZVTkNTKTsKIH0KIAogdm9pZCBT
dGF0ZU1hbmFnZXJHTDo6c2V0QmxlbmRFcXVhdGlvbnMoY29uc3QgZ2w6OkJsZW5kU3RhdGVFeHQg
JmJsZW5kU3RhdGVFeHQpCiB7Ci0gICAgaWYgKG1CbGVuZFN0YXRlRXh0Lm1FcXVhdGlvbkNvbG9y
ID09IGJsZW5kU3RhdGVFeHQubUVxdWF0aW9uQ29sb3IgJiYKLSAgICAgICAgbUJsZW5kU3RhdGVF
eHQubUVxdWF0aW9uQWxwaGEgPT0gYmxlbmRTdGF0ZUV4dC5tRXF1YXRpb25BbHBoYSkKKyAgICBp
ZiAobUJsZW5kU3RhdGVFeHQuZ2V0RXF1YXRpb25Db2xvckJpdHMoKSA9PSBibGVuZFN0YXRlRXh0
LmdldEVxdWF0aW9uQ29sb3JCaXRzKCkgJiYKKyAgICAgICAgbUJsZW5kU3RhdGVFeHQuZ2V0RXF1
YXRpb25BbHBoYUJpdHMoKSA9PSBibGVuZFN0YXRlRXh0LmdldEVxdWF0aW9uQWxwaGFCaXRzKCkp
CiAgICAgewogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTMzOCw4ICsxMzM2LDcgQEAgdm9p
ZCBTdGF0ZU1hbmFnZXJHTDo6c2V0QmxlbmRFcXVhdGlvbnMoY29uc3QgZ2w6OkJsZW5kU3RhdGVF
eHQgJmJsZW5kU3RhdGVFeHQpCiAgICAgZWxzZQogICAgIHsKICAgICAgICAgLy8gR2V0IERyYXdC
dWZmZXJNYXNrIG9mIGJ1ZmZlcnMgd2l0aCBkaWZmZXJlbnQgYmxlbmQgZXF1YXRpb25zCi0gICAg
ICAgIGdsOjpEcmF3QnVmZmVyTWFzayBkaWZmTWFzayA9IG1CbGVuZFN0YXRlRXh0LmNvbXBhcmVF
cXVhdGlvbnMoYmxlbmRTdGF0ZUV4dC5tRXF1YXRpb25Db2xvciwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBibGVu
ZFN0YXRlRXh0Lm1FcXVhdGlvbkFscGhhKTsKKyAgICAgICAgZ2w6OkRyYXdCdWZmZXJNYXNrIGRp
ZmZNYXNrID0gbUJsZW5kU3RhdGVFeHQuY29tcGFyZUVxdWF0aW9ucyhibGVuZFN0YXRlRXh0KTsK
ICAgICAgICAgc2l6ZV90IGRpZmZDb3VudCAgICAgICAgICAgID0gZGlmZk1hc2suY291bnQoKTsK
IAogICAgICAgICAvLyBDaGVjayBpZiBzZXR0aW5nIGFsbCBidWZmZXJzIHRvIHRoZSBzYW1lIHZh
bHVlIHJlZHVjZXMgdGhlIG51bWJlciBvZiBzdWJzZXF1ZW50IGluZGV4ZWQKQEAgLTEzNTAsNyAr
MTM0Nyw3IEBAIHZvaWQgU3RhdGVNYW5hZ2VyR0w6OnNldEJsZW5kRXF1YXRpb25zKGNvbnN0IGds
OjpCbGVuZFN0YXRlRXh0ICZibGVuZFN0YXRlRXh0KQogICAgICAgICAgICAgYm9vbCBmb3VuZCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gZmFsc2U7
CiAgICAgICAgICAgICBnbDo6QmxlbmRTdGF0ZUV4dDo6RXF1YXRpb25TdG9yYWdlOjpUeXBlIGNv
bW1vbkVxdWF0aW9uQ29sb3IgPSAwOwogICAgICAgICAgICAgZ2w6OkJsZW5kU3RhdGVFeHQ6OkVx
dWF0aW9uU3RvcmFnZTo6VHlwZSBjb21tb25FcXVhdGlvbkFscGhhID0gMDsKLSAgICAgICAgICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbUJsZW5kU3RhdGVFeHQubU1heERyYXdCdWZmZXJzIC0g
MTsgaSsrKQorICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtQmxlbmRTdGF0ZUV4
dC5nZXREcmF3QnVmZmVyQ291bnQoKSAtIDE7IGkrKykKICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICBjb25zdCBnbDo6QmxlbmRTdGF0ZUV4dDo6RXF1YXRpb25TdG9yYWdlOjpUeXBlIHRl
bXBDb21tb25FcXVhdGlvbkNvbG9yID0KICAgICAgICAgICAgICAgICAgICAgYmxlbmRTdGF0ZUV4
dC5leHBhbmRFcXVhdGlvbkNvbG9ySW5kZXhlZChpKTsKQEAgLTEzOTIsOCArMTM4OSw4IEBAIHZv
aWQgU3RhdGVNYW5hZ2VyR0w6OnNldEJsZW5kRXF1YXRpb25zKGNvbnN0IGdsOjpCbGVuZFN0YXRl
RXh0ICZibGVuZFN0YXRlRXh0KQogICAgICAgICAgICAgICAgIGJsZW5kU3RhdGVFeHQuZ2V0RXF1
YXRpb25BbHBoYUluZGV4ZWQoZHJhd0J1ZmZlckluZGV4KSk7CiAgICAgICAgIH0KICAgICB9Ci0g
ICAgbUJsZW5kU3RhdGVFeHQubUVxdWF0aW9uQ29sb3IgPSBibGVuZFN0YXRlRXh0Lm1FcXVhdGlv
bkNvbG9yOwotICAgIG1CbGVuZFN0YXRlRXh0Lm1FcXVhdGlvbkFscGhhID0gYmxlbmRTdGF0ZUV4
dC5tRXF1YXRpb25BbHBoYTsKKyAgICBtQmxlbmRTdGF0ZUV4dC5zZXRFcXVhdGlvbkNvbG9yQml0
cyhibGVuZFN0YXRlRXh0LmdldEVxdWF0aW9uQ29sb3JCaXRzKCkpOworICAgIG1CbGVuZFN0YXRl
RXh0LnNldEVxdWF0aW9uQWxwaGFCaXRzKGJsZW5kU3RhdGVFeHQuZ2V0RXF1YXRpb25BbHBoYUJp
dHMoKSk7CiAgICAgbUxvY2FsRGlydHlCaXRzLnNldChnbDo6U3RhdGU6OkRJUlRZX0JJVF9DT0xP
Ul9NQVNLKTsKIH0KIApAQCAtMTQwMSwxMCArMTM5OCwxMCBAQCB2b2lkIFN0YXRlTWFuYWdlckdM
OjpzZXRDb2xvck1hc2soYm9vbCByZWQsIGJvb2wgZ3JlZW4sIGJvb2wgYmx1ZSwgYm9vbCBhbHBo
YSkKIHsKICAgICBjb25zdCBnbDo6QmxlbmRTdGF0ZUV4dDo6Q29sb3JNYXNrU3RvcmFnZTo6VHlw
ZSBtYXNrID0KICAgICAgICAgbUJsZW5kU3RhdGVFeHQuZXhwYW5kQ29sb3JNYXNrVmFsdWUocmVk
LCBncmVlbiwgYmx1ZSwgYWxwaGEpOwotICAgIGlmIChtQmxlbmRTdGF0ZUV4dC5tQ29sb3JNYXNr
ICE9IG1hc2spCisgICAgaWYgKG1CbGVuZFN0YXRlRXh0LmdldENvbG9yTWFza0JpdHMoKSAhPSBt
YXNrKQogICAgIHsKICAgICAgICAgbUZ1bmN0aW9ucy0+Y29sb3JNYXNrKHJlZCwgZ3JlZW4sIGJs
dWUsIGFscGhhKTsKLSAgICAgICAgbUJsZW5kU3RhdGVFeHQubUNvbG9yTWFzayA9IG1hc2s7Cisg
ICAgICAgIG1CbGVuZFN0YXRlRXh0LnNldENvbG9yTWFza0JpdHMobWFzayk7CiAgICAgICAgIG1M
b2NhbERpcnR5Qml0cy5zZXQoZ2w6OlN0YXRlOjpESVJUWV9CSVRfQ09MT1JfTUFTSyk7CiAgICAg
fQogfQpAQCAtMjI1OCwxMyArMjI1NSwxMyBAQCB2b2lkIFN0YXRlTWFuYWdlckdMOjpzZXRDb2xv
ck1hc2tGb3JGcmFtZWJ1ZmZlcihjb25zdCBnbDo6QmxlbmRTdGF0ZUV4dCAmYmxlbmRTdAogICAg
IH0KIAogICAgIC8vIENoZWNrIGlmIHRoZSBjdXJyZW50IG1hc2sgYWxyZWFkeSBtYXRjaGVzIHRo
ZSBuZXcgc3RhdGUKLSAgICBpZiAobUJsZW5kU3RhdGVFeHQubUNvbG9yTWFzayA9PSBibGVuZFN0
YXRlRXh0Lm1Db2xvck1hc2spCisgICAgaWYgKG1CbGVuZFN0YXRlRXh0LmdldENvbG9yTWFza0Jp
dHMoKSA9PSBibGVuZFN0YXRlRXh0LmdldENvbG9yTWFza0JpdHMoKSkKICAgICB7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKICAgICAvLyBHZXQgRHJhd0J1ZmZlck1hc2sgb2YgYnVmZmVycyB3
aXRoIGRpZmZlcmVudCBjb2xvciBtYXNrcwotICAgIGdsOjpEcmF3QnVmZmVyTWFzayBkaWZmTWFz
ayA9IG1CbGVuZFN0YXRlRXh0LmNvbXBhcmVDb2xvck1hc2soYmxlbmRTdGF0ZUV4dC5tQ29sb3JN
YXNrKTsKKyAgICBnbDo6RHJhd0J1ZmZlck1hc2sgZGlmZk1hc2sgPSBtQmxlbmRTdGF0ZUV4dC5j
b21wYXJlQ29sb3JNYXNrKGJsZW5kU3RhdGVFeHQuZ2V0Q29sb3JNYXNrQml0cygpKTsKICAgICBz
aXplX3QgZGlmZkNvdW50ICAgICAgICAgICAgPSBkaWZmTWFzay5jb3VudCgpOwogCiAgICAgLy8g
Q2hlY2sgaWYgc2V0dGluZyBhbGwgYnVmZmVycyB0byB0aGUgc2FtZSB2YWx1ZSByZWR1Y2VzIHRo
ZSBudW1iZXIgb2Ygc3Vic2VxdWVudCBpbmRleGVkCkBAIC0yMjc3LDcgKzIyNzQsNyBAQCB2b2lk
IFN0YXRlTWFuYWdlckdMOjpzZXRDb2xvck1hc2tGb3JGcmFtZWJ1ZmZlcihjb25zdCBnbDo6Qmxl
bmRTdGF0ZUV4dCAmYmxlbmRTdAogICAgIHsKICAgICAgICAgYm9vbCBmb3VuZCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gZmFsc2U7CiAgICAgICAgIGds
OjpCbGVuZFN0YXRlRXh0OjpDb2xvck1hc2tTdG9yYWdlOjpUeXBlIGNvbW1vbkNvbG9yTWFzayA9
IDA7Ci0gICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbUJsZW5kU3RhdGVFeHQubU1heERy
YXdCdWZmZXJzIC0gMTsgaSsrKQorICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1CbGVu
ZFN0YXRlRXh0LmdldERyYXdCdWZmZXJDb3VudCgpIC0gMTsgaSsrKQogICAgICAgICB7CiAgICAg
ICAgICAgICBjb25zdCBnbDo6QmxlbmRTdGF0ZUV4dDo6Q29sb3JNYXNrU3RvcmFnZTo6VHlwZSB0
ZW1wQ29tbW9uQ29sb3JNYXNrID0KICAgICAgICAgICAgICAgICBibGVuZFN0YXRlRXh0LmV4cGFu
ZENvbG9yTWFza0luZGV4ZWQoaSk7CkBAIC0yMzA5LDcgKzIzMDYsNyBAQCB2b2lkIFN0YXRlTWFu
YWdlckdMOjpzZXRDb2xvck1hc2tGb3JGcmFtZWJ1ZmZlcihjb25zdCBnbDo6QmxlbmRTdGF0ZUV4
dCAmYmxlbmRTdAogICAgICAgICBtRnVuY3Rpb25zLT5jb2xvck1hc2tpKHN0YXRpY19jYXN0PEdM
dWludD4oZHJhd0J1ZmZlckluZGV4KSwgciwgZywgYiwgYSk7CiAgICAgfQogCi0gICAgbUJsZW5k
U3RhdGVFeHQubUNvbG9yTWFzayA9IGJsZW5kU3RhdGVFeHQubUNvbG9yTWFzazsKKyAgICBtQmxl
bmRTdGF0ZUV4dC5zZXRDb2xvck1hc2tCaXRzKGJsZW5kU3RhdGVFeHQuZ2V0Q29sb3JNYXNrQml0
cygpKTsKICAgICBtTG9jYWxEaXJ0eUJpdHMuc2V0KGdsOjpTdGF0ZTo6RElSVFlfQklUX0NPTE9S
X01BU0spOwogfQogCkBAIC0yNjcyLDkgKzI2NjksOSBAQCB2b2lkIFN0YXRlTWFuYWdlckdMOjpz
eW5jRnJvbU5hdGl2ZUNvbnRleHQoY29uc3QgZ2w6OkV4dGVuc2lvbnMgJmV4dGVuc2lvbnMsCiAg
ICAgZ2V0KEdMX0NPTE9SX1dSSVRFTUFTSywgJnN0YXRlLT5jb2xvck1hc2spOwogICAgIGF1dG8g
Y29sb3JNYXNrID0gbUJsZW5kU3RhdGVFeHQuZXhwYW5kQ29sb3JNYXNrVmFsdWUoc3RhdGUtPmNv
bG9yTWFza1swXSwgc3RhdGUtPmNvbG9yTWFza1sxXSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLT5jb2xvck1hc2tbMl0sIHN0
YXRlLT5jb2xvck1hc2tbM10pOwotICAgIGlmIChtQmxlbmRTdGF0ZUV4dC5tQ29sb3JNYXNrICE9
IGNvbG9yTWFzaykKKyAgICBpZiAobUJsZW5kU3RhdGVFeHQuZ2V0Q29sb3JNYXNrQml0cygpICE9
IGNvbG9yTWFzaykKICAgICB7Ci0gICAgICAgIG1CbGVuZFN0YXRlRXh0Lm1Db2xvck1hc2sgPSBj
b2xvck1hc2s7CisgICAgICAgIG1CbGVuZFN0YXRlRXh0LnNldENvbG9yTWFza0JpdHMoY29sb3JN
YXNrKTsKICAgICAgICAgbUxvY2FsRGlydHlCaXRzLnNldChnbDo6U3RhdGU6OkRJUlRZX0JJVF9D
T0xPUl9NQVNLKTsKICAgICB9CiAKQEAgLTI4NjgsOCArMjg2NSw4IEBAIHZvaWQgU3RhdGVNYW5h
Z2VyR0w6OnN5bmNCbGVuZEZyb21OYXRpdmVDb250ZXh0KGNvbnN0IGdsOjpFeHRlbnNpb25zICZl
eHRlbnNpb25zCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBFeHRlcm5hbENvbnRleHRTdGF0ZSAqc3RhdGUpCiB7CiAgICAgZ2V0KEdMX0JMRU5ELCAmc3Rh
dGUtPmJsZW5kRW5hYmxlZCk7Ci0gICAgaWYgKG1CbGVuZFN0YXRlRXh0Lm1FbmFibGVkTWFzayAh
PQotICAgICAgICAoc3RhdGUtPmJsZW5kRW5hYmxlZCA/IG1CbGVuZFN0YXRlRXh0Lm1NYXhFbmFi
bGVkTWFzayA6IGdsOjpEcmF3QnVmZmVyTWFzazo6WmVybygpKSkKKyAgICBpZiAobUJsZW5kU3Rh
dGVFeHQuZ2V0RW5hYmxlZE1hc2soKSAhPQorICAgICAgICAoc3RhdGUtPmJsZW5kRW5hYmxlZCA/
IG1CbGVuZFN0YXRlRXh0LmdldEFsbEVuYWJsZWRNYXNrKCkgOiBnbDo6RHJhd0J1ZmZlck1hc2s6
Olplcm8oKSkpCiAgICAgewogICAgICAgICBtQmxlbmRTdGF0ZUV4dC5zZXRFbmFibGVkKHN0YXRl
LT5ibGVuZEVuYWJsZWQpOwogICAgICAgICBtTG9jYWxEaXJ0eUJpdHMuc2V0KGdsOjpTdGF0ZTo6
RElSVFlfQklUX0JMRU5EX0VOQUJMRUQpOwpAQCAtMjg3OSwxNSArMjg3NiwxNCBAQCB2b2lkIFN0
YXRlTWFuYWdlckdMOjpzeW5jQmxlbmRGcm9tTmF0aXZlQ29udGV4dChjb25zdCBnbDo6RXh0ZW5z
aW9ucyAmZXh0ZW5zaW9ucwogICAgIGdldChHTF9CTEVORF9EU1RfUkdCLCAmc3RhdGUtPmJsZW5k
RGVzdFJnYik7CiAgICAgZ2V0KEdMX0JMRU5EX1NSQ19BTFBIQSwgJnN0YXRlLT5ibGVuZFNyY0Fs
cGhhKTsKICAgICBnZXQoR0xfQkxFTkRfRFNUX0FMUEhBLCAmc3RhdGUtPmJsZW5kRGVzdEFscGhh
KTsKLSAgICBpZiAobUJsZW5kU3RhdGVFeHQubVNyY0NvbG9yICE9IHN0YXRpY19jYXN0PHVpbnQ2
NF90PihzdGF0ZS0+YmxlbmRTcmNSZ2IpIHx8Ci0gICAgICAgIG1CbGVuZFN0YXRlRXh0Lm1Ec3RD
b2xvciAhPSBzdGF0aWNfY2FzdDx1aW50NjRfdD4oc3RhdGUtPmJsZW5kRGVzdFJnYikgfHwKLSAg
ICAgICAgbUJsZW5kU3RhdGVFeHQubVNyY0FscGhhICE9IHN0YXRpY19jYXN0PHVpbnQ2NF90Pihz
dGF0ZS0+YmxlbmRTcmNBbHBoYSkgfHwKLSAgICAgICAgbUJsZW5kU3RhdGVFeHQubURzdEFscGhh
ICE9IHN0YXRpY19jYXN0PHVpbnQ2NF90PihzdGF0ZS0+YmxlbmREZXN0QWxwaGEpKQotICAgIHsK
LSAgICAgICAgbUJsZW5kU3RhdGVFeHQubVNyY0NvbG9yID0gc3RhdGUtPmJsZW5kU3JjUmdiOwot
ICAgICAgICBtQmxlbmRTdGF0ZUV4dC5tRHN0Q29sb3IgPSBzdGF0ZS0+YmxlbmREZXN0UmdiOwot
ICAgICAgICBtQmxlbmRTdGF0ZUV4dC5tU3JjQWxwaGEgPSBzdGF0ZS0+YmxlbmRTcmNBbHBoYTsK
LSAgICAgICAgbUJsZW5kU3RhdGVFeHQubURzdEFscGhhID0gc3RhdGUtPmJsZW5kRGVzdEFscGhh
OworICAgIGlmIChtQmxlbmRTdGF0ZUV4dC5nZXRTcmNDb2xvckJpdHMoKSAhPSBtQmxlbmRTdGF0
ZUV4dC5leHBhbmRGYWN0b3JWYWx1ZShzdGF0ZS0+YmxlbmRTcmNSZ2IpIHx8CisgICAgICAgIG1C
bGVuZFN0YXRlRXh0LmdldERzdENvbG9yQml0cygpICE9IG1CbGVuZFN0YXRlRXh0LmV4cGFuZEZh
Y3RvclZhbHVlKHN0YXRlLT5ibGVuZERlc3RSZ2IpIHx8CisgICAgICAgIG1CbGVuZFN0YXRlRXh0
LmdldFNyY0FscGhhQml0cygpICE9CisgICAgICAgICAgICBtQmxlbmRTdGF0ZUV4dC5leHBhbmRG
YWN0b3JWYWx1ZShzdGF0ZS0+YmxlbmRTcmNBbHBoYSkgfHwKKyAgICAgICAgbUJsZW5kU3RhdGVF
eHQuZ2V0RHN0QWxwaGFCaXRzKCkgIT0gbUJsZW5kU3RhdGVFeHQuZXhwYW5kRmFjdG9yVmFsdWUo
c3RhdGUtPmJsZW5kRGVzdEFscGhhKSkKKyAgICB7CisgICAgICAgIG1CbGVuZFN0YXRlRXh0LnNl
dEZhY3RvcnMoc3RhdGUtPmJsZW5kU3JjUmdiLCBzdGF0ZS0+YmxlbmREZXN0UmdiLCBzdGF0ZS0+
YmxlbmRTcmNBbHBoYSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS0+
YmxlbmREZXN0QWxwaGEpOwogICAgICAgICBtTG9jYWxEaXJ0eUJpdHMuc2V0KGdsOjpTdGF0ZTo6
RElSVFlfQklUX0JMRU5EX0ZVTkNTKTsKICAgICB9CiAKQEAgLTI5MDAsMjcgKzI4OTYsMzEgQEAg
dm9pZCBTdGF0ZU1hbmFnZXJHTDo6c3luY0JsZW5kRnJvbU5hdGl2ZUNvbnRleHQoY29uc3QgZ2w6
OkV4dGVuc2lvbnMgJmV4dGVuc2lvbnMKIAogICAgIGdldChHTF9CTEVORF9FUVVBVElPTl9SR0Is
ICZzdGF0ZS0+YmxlbmRFcXVhdGlvblJnYik7CiAgICAgZ2V0KEdMX0JMRU5EX0VRVUFUSU9OX0FM
UEhBLCAmc3RhdGUtPmJsZW5kRXF1YXRpb25BbHBoYSk7CisgICAgaWYgKG1CbGVuZFN0YXRlRXh0
LmdldEVxdWF0aW9uQ29sb3JCaXRzKCkgIT0KKyAgICAgICAgICAgIG1CbGVuZFN0YXRlRXh0LmV4
cGFuZEVxdWF0aW9uVmFsdWUoc3RhdGUtPmJsZW5kRXF1YXRpb25SZ2IpIHx8CisgICAgICAgIG1C
bGVuZFN0YXRlRXh0LmdldEVxdWF0aW9uQWxwaGFCaXRzKCkgIT0KKyAgICAgICAgICAgIG1CbGVu
ZFN0YXRlRXh0LmV4cGFuZEVxdWF0aW9uVmFsdWUoc3RhdGUtPmJsZW5kRXF1YXRpb25BbHBoYSkp
CisgICAgeworICAgICAgICBtQmxlbmRTdGF0ZUV4dC5zZXRFcXVhdGlvbnMoc3RhdGUtPmJsZW5k
RXF1YXRpb25SZ2IsIHN0YXRlLT5ibGVuZEVxdWF0aW9uQWxwaGEpOworICAgICAgICBtTG9jYWxE
aXJ0eUJpdHMuc2V0KGdsOjpTdGF0ZTo6RElSVFlfQklUX0JMRU5EX0VRVUFUSU9OUyk7CisgICAg
fQogfQogCiB2b2lkIFN0YXRlTWFuYWdlckdMOjpyZXN0b3JlQmxlbmROYXRpdmVDb250ZXh0KGNv
bnN0IGdsOjpFeHRlbnNpb25zICZleHRlbnNpb25zLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBFeHRlcm5hbENvbnRleHRTdGF0ZSAqc3RhdGUp
CiB7CiAgICAgc2V0QmxlbmRFbmFibGVkKHN0YXRlLT5ibGVuZEVuYWJsZWQpOwotICAgIC8vIFRP
RE86IHVzZSBzZXRCbGVuZEZ1bmNzKCkKKwogICAgIG1GdW5jdGlvbnMtPmJsZW5kRnVuY1NlcGFy
YXRlKHN0YXRlLT5ibGVuZFNyY1JnYiwgc3RhdGUtPmJsZW5kRGVzdFJnYiwgc3RhdGUtPmJsZW5k
U3JjQWxwaGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUtPmJsZW5k
RGVzdEFscGhhKTsKLSAgICBtQmxlbmRTdGF0ZUV4dC5tU3JjQ29sb3IgPSBzdGF0ZS0+YmxlbmRT
cmNSZ2I7Ci0gICAgbUJsZW5kU3RhdGVFeHQubURzdENvbG9yID0gc3RhdGUtPmJsZW5kRGVzdFJn
YjsKLSAgICBtQmxlbmRTdGF0ZUV4dC5tU3JjQWxwaGEgPSBzdGF0ZS0+YmxlbmRTcmNBbHBoYTsK
LSAgICBtQmxlbmRTdGF0ZUV4dC5tRHN0QWxwaGEgPSBzdGF0ZS0+YmxlbmREZXN0QWxwaGE7Cisg
ICAgbUJsZW5kU3RhdGVFeHQuc2V0RmFjdG9ycyhzdGF0ZS0+YmxlbmRTcmNSZ2IsIHN0YXRlLT5i
bGVuZERlc3RSZ2IsIHN0YXRlLT5ibGVuZFNyY0FscGhhLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc3RhdGUtPmJsZW5kRGVzdEFscGhhKTsKICAgICBtTG9jYWxEaXJ0eUJpdHMuc2V0
KGdsOjpTdGF0ZTo6RElSVFlfQklUX0JMRU5EX0ZVTkNTKTsKIAogICAgIHNldEJsZW5kQ29sb3Io
c3RhdGUtPmJsZW5kQ29sb3IpOwogCi0gICAgLy8gVE9ETzogdXNlIHNldEJsZW5kRXF1YXRpb25z
KCkKICAgICBtRnVuY3Rpb25zLT5ibGVuZEVxdWF0aW9uU2VwYXJhdGUoc3RhdGUtPmJsZW5kRXF1
YXRpb25SZ2IsIHN0YXRlLT5ibGVuZEVxdWF0aW9uQWxwaGEpOwotICAgIG1CbGVuZFN0YXRlRXh0
Lm1FcXVhdGlvbkNvbG9yID0gc3RhdGUtPmJsZW5kRXF1YXRpb25SZ2I7Ci0gICAgbUJsZW5kU3Rh
dGVFeHQubUVxdWF0aW9uQWxwaGEgPSBzdGF0ZS0+YmxlbmRFcXVhdGlvbkFscGhhOworICAgIG1C
bGVuZFN0YXRlRXh0LnNldEVxdWF0aW9ucyhzdGF0ZS0+YmxlbmRFcXVhdGlvblJnYiwgc3RhdGUt
PmJsZW5kRXF1YXRpb25BbHBoYSk7CiAgICAgbUxvY2FsRGlydHlCaXRzLnNldChnbDo6U3RhdGU6
OkRJUlRZX0JJVF9CTEVORF9FUVVBVElPTlMpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvZ2wvU3RhdGVNYW5hZ2VyR0wuaCBi
L1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9nbC9TdGF0ZU1h
bmFnZXJHTC5oCmluZGV4IGExY2I3ODZmZWU5ZmQ5YjJlMmU2N2ZiMDY0NWNjMGFhZDI0YzA2ZmIu
LjlhOGRmYzRlMzU4ZWI2MmMzNGQyMmQ5ZjVhN2Q1OTg4N2MyYThjY2MgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9nbC9TdGF0ZU1hbmFn
ZXJHTC5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJl
ci9nbC9TdGF0ZU1hbmFnZXJHTC5oCkBAIC0xNCw3ICsxNCw3IEBACiAjaW5jbHVkZSAibGliQU5H
TEUvU3RhdGUuaCIKICNpbmNsdWRlICJsaWJBTkdMRS9hbmdsZXR5cGVzLmgiCiAjaW5jbHVkZSAi
bGliQU5HTEUvcmVuZGVyZXIvZ2wvZnVuY3Rpb25zZ2xfdHlwZWRlZnMuaCIKLSNpbmNsdWRlICJw
bGF0Zm9ybS9GZWF0dXJlc0dMLmgiCisjaW5jbHVkZSAicGxhdGZvcm0vRmVhdHVyZXNHTF9hdXRv
Z2VuLmgiCiAKICNpbmNsdWRlIDxhcnJheT4KICNpbmNsdWRlIDxtYXA+CmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvZ2wvU3VyZmFjZUdM
LmNwcCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9nbC9T
dXJmYWNlR0wuY3BwCmluZGV4IDllYTNhMGRmMmUzM2JmZWJkNjY3ZjA3N2Y3MzQ4NjZlYzI3YTU5
NDQuLjI0MGM4NmRkMGM1YzBiZWFkNjAzNDVlY2FiMGQ5ZmI4MTZhMWQ4MjUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9nbC9TdXJmYWNl
R0wuY3BwCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJl
ci9nbC9TdXJmYWNlR0wuY3BwCkBAIC00MSwxMyArNDEsMjkgQEAgZWdsOjpFcnJvciBTdXJmYWNl
R0w6OmdldE1zY1JhdGUoRUdMaW50ICpudW1lcmF0b3IsIEVHTGludCAqZGVub21pbmF0b3IpCiB9
CiAKIGFuZ2xlOjpSZXN1bHQgU3VyZmFjZUdMOjppbml0aWFsaXplQ29udGVudHMoY29uc3QgZ2w6
OkNvbnRleHQgKmNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEdMZW51bSBiaW5kaW5nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBnbDo6SW1hZ2VJbmRleCAmaW1hZ2VJbmRleCkKIHsKICAgICBGcmFt
ZWJ1ZmZlckdMICpmcmFtZWJ1ZmZlckdMID0gR2V0SW1wbEFzPEZyYW1lYnVmZmVyR0w+KGNvbnRl
eHQtPmdldEZyYW1lYnVmZmVyKHswfSkpOwogICAgIEFTU0VSVChmcmFtZWJ1ZmZlckdMLT5pc0Rl
ZmF1bHQoKSk7CiAKICAgICBCbGl0R0wgKmJsaXR0ZXIgPSBHZXRCbGl0R0woY29udGV4dCk7Ci0g
ICAgQU5HTEVfVFJZKGJsaXR0ZXItPmNsZWFyRnJhbWVidWZmZXIoY29udGV4dCwgZnJhbWVidWZm
ZXJHTCkpOworCisgICAgc3dpdGNoIChiaW5kaW5nKQorICAgIHsKKyAgICAgICAgY2FzZSBHTF9C
QUNLOgorICAgICAgICAgICAgQU5HTEVfVFJZKGJsaXR0ZXItPmNsZWFyRnJhbWVidWZmZXIoY29u
dGV4dCwgdHJ1ZSwgZmFsc2UsIGZhbHNlLCBmcmFtZWJ1ZmZlckdMKSk7CisgICAgICAgICAgICBi
cmVhazsKKworICAgICAgICBjYXNlIEdMX0RFUFRIOgorICAgICAgICBjYXNlIEdMX1NURU5DSUw6
CisgICAgICAgICAgICBBTkdMRV9UUlkoYmxpdHRlci0+Y2xlYXJGcmFtZWJ1ZmZlcihjb250ZXh0
LCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgZnJhbWVidWZmZXJHTCkpOworICAgICAgICAgICAgYnJlYWs7
CisKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIFVOUkVBQ0hBQkxFKCk7CisgICAgICAg
ICAgICBicmVhazsKKyAgICB9CiAKICAgICByZXR1cm4gYW5nbGU6OlJlc3VsdDo6Q29udGludWU7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVu
ZGVyZXIvZ2wvU3VyZmFjZUdMLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5H
TEUvcmVuZGVyZXIvZ2wvU3VyZmFjZUdMLmgKaW5kZXggYWNjNzNkMTEyMTYwZmJiYzFlZGM4Nzdk
MGI3OTgyYmU3Y2JhMWQ4OC4uODYyYjFkZWQ2NTZjODliNjQwMjEyNDQzZGM2Mjc1YTVlMzZkZTQx
MCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRl
cmVyL2dsL1N1cmZhY2VHTC5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJB
TkdMRS9yZW5kZXJlci9nbC9TdXJmYWNlR0wuaApAQCAtMjYsNiArMjYsNyBAQCBjbGFzcyBTdXJm
YWNlR0wgOiBwdWJsaWMgU3VyZmFjZUltcGwKICAgICBlZ2w6OkVycm9yIGdldE1zY1JhdGUoRUdM
aW50ICpudW1lcmF0b3IsIEVHTGludCAqZGVub21pbmF0b3IpIG92ZXJyaWRlOwogCiAgICAgYW5n
bGU6OlJlc3VsdCBpbml0aWFsaXplQ29udGVudHMoY29uc3QgZ2w6OkNvbnRleHQgKmNvbnRleHQs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0xlbnVtIGJpbmRpbmcsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2w6OkltYWdlSW5kZXgg
JmltYWdlSW5kZXgpIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCBib29sIGhhc0VtdWxhdGVkQWxw
aGFDaGFubmVsKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9z
cmMvbGliQU5HTEUvcmVuZGVyZXIvZ2wvVGV4dHVyZUdMLmNwcCBiL1NvdXJjZS9UaGlyZFBhcnR5
L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9nbC9UZXh0dXJlR0wuY3BwCmluZGV4IDI4NTA1
MWE4NzExYzNjNmUxMGY1MjVmOGIxZTIyYjgxNmU5MjkyNGIuLjQ4MjE2ODFjZWY2NWFmZmY1NmU5
ZjllYjM3MzZkOWE0NDM5OGIyNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xF
L3NyYy9saWJBTkdMRS9yZW5kZXJlci9nbC9UZXh0dXJlR0wuY3BwCisrKyBiL1NvdXJjZS9UaGly
ZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9nbC9UZXh0dXJlR0wuY3BwCkBAIC0y
OSw3ICsyOSw3IEBACiAjaW5jbHVkZSAibGliQU5HTEUvcmVuZGVyZXIvZ2wvU3VyZmFjZUdMLmgi
CiAjaW5jbHVkZSAibGliQU5HTEUvcmVuZGVyZXIvZ2wvZm9ybWF0dXRpbHNnbC5oIgogI2luY2x1
ZGUgImxpYkFOR0xFL3JlbmRlcmVyL2dsL3JlbmRlcmVyZ2xfdXRpbHMuaCIKLSNpbmNsdWRlICJw
bGF0Zm9ybS9GZWF0dXJlc0dMLmgiCisjaW5jbHVkZSAicGxhdGZvcm0vRmVhdHVyZXNHTF9hdXRv
Z2VuLmgiCiAKIHVzaW5nIGFuZ2xlOjpDaGVja2VkTnVtZXJpYzsKIApAQCAtMzgsNiArMzgsOCBA
QCBuYW1lc3BhY2UgcngKIAogbmFtZXNwYWNlCiB7CisvLyBGb3IgdXNlIHdpdGggdGhlIHVwbG9h
ZFRleHR1cmVEYXRhSW5DaHVua3MgZmVhdHVyZS4gIFNlZSBodHRwOi8vY3JidWcuY29tLzExODEw
NjgKK2NvbnN0ZXhwciBjb25zdCBzaXplX3Qga1VwbG9hZFRleHR1cmVEYXRhSW5DaHVua3NVcGxv
YWRTaXplID0gKDEyMCAqIDEwMjQpIC0gMTsKIAogc2l6ZV90IEdldExldmVsSW5mb0luZGV4KGds
OjpUZXh0dXJlVGFyZ2V0IHRhcmdldCwgc2l6ZV90IGxldmVsKQogewpAQCAtNzEsNyArNzMsNyBA
QCBib29sIEdldERlcHRoU3RlbmNpbFdvcmthcm91bmQoR0xlbnVtIGZvcm1hdCkKIGJvb2wgR2V0
RW11bGF0ZWRBbHBoYUNoYW5uZWwoY29uc3QgYW5nbGU6OkZlYXR1cmVzR0wgJmZlYXR1cmVzLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnbDo6SW50ZXJuYWxGb3JtYXQgJm9y
aWdpbmFsSW50ZXJuYWxGb3JtYXQpCiB7Ci0gICAgcmV0dXJuIChmZWF0dXJlcy5yZ2JEWFQxVGV4
dHVyZXNTYW1wbGVaZXJvQWxwaGEuZW5hYmxlZCAmJgorICAgIHJldHVybiAoZmVhdHVyZXMuUkdC
RFhUMVRleHR1cmVzU2FtcGxlWmVyb0FscGhhLmVuYWJsZWQgJiYKICAgICAgICAgICAgIG9yaWdp
bmFsSW50ZXJuYWxGb3JtYXQuc2l6ZWRJbnRlcm5hbEZvcm1hdCA9PSBHTF9DT01QUkVTU0VEX1JH
Ql9TM1RDX0RYVDFfRVhUKSB8fAogICAgICAgICAgICAoZmVhdHVyZXMuZW11bGF0ZVJHQjEwLmVu
YWJsZWQgJiYgb3JpZ2luYWxJbnRlcm5hbEZvcm1hdC5mb3JtYXQgPT0gR0xfUkdCICYmCiAgICAg
ICAgICAgICBvcmlnaW5hbEludGVybmFsRm9ybWF0LnR5cGUgPT0gR0xfVU5TSUdORURfSU5UXzJf
MTBfMTBfMTBfUkVWX0VYVCk7CkBAIC0zNjUsOSArMzY3LDkgQEAgYW5nbGU6OlJlc3VsdCBUZXh0
dXJlR0w6OnNldFN1YkltYWdlKGNvbnN0IGdsOjpDb250ZXh0ICpjb250ZXh0LAogCiAgICAgaWYg
KGZlYXR1cmVzLnVwbG9hZFRleHR1cmVEYXRhSW5DaHVua3MuZW5hYmxlZCkKICAgICB7Ci0gICAg
ICAgIHJldHVybiBzZXRTdWJJbWFnZVJvd0J5Um93V29ya2Fyb3VuZCgKLSAgICAgICAgICAgIGNv
bnRleHQsIHRhcmdldCwgbGV2ZWwsIGFyZWEsIGZvcm1hdCwgdHlwZSwgdW5wYWNrLCB1bnBhY2tC
dWZmZXIsCi0gICAgICAgICAgICBhbmdsZTo6RmVhdHVyZXNHTDo6a1VwbG9hZFRleHR1cmVEYXRh
SW5DaHVua3NVcGxvYWRTaXplLCBwaXhlbHMpOworICAgICAgICByZXR1cm4gc2V0U3ViSW1hZ2VS
b3dCeVJvd1dvcmthcm91bmQoY29udGV4dCwgdGFyZ2V0LCBsZXZlbCwgYXJlYSwgZm9ybWF0LCB0
eXBlLCB1bnBhY2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB1bnBhY2tCdWZmZXIsIGtVcGxvYWRUZXh0dXJlRGF0YUluQ2h1bmtzVXBsb2FkU2l6ZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBpeGVscyk7CiAgICAg
fQogCiAgICAgaWYgKG5hdGl2ZWdsOjpVc2VUZXhJbWFnZTJEKGdldFR5cGUoKSkpCkBAIC0xMzU4
LDcgKzEzNjAsNyBAQCBhbmdsZTo6UmVzdWx0IFRleHR1cmVHTDo6Z2VuZXJhdGVNaXBtYXAoY29u
c3QgZ2w6OkNvbnRleHQgKmNvbnRleHQpCiAKICAgICBzdGF0ZU1hbmFnZXItPmJpbmRUZXh0dXJl
KGdldFR5cGUoKSwgbVRleHR1cmVJRCk7CiAgICAgaWYgKGJhc2VMZXZlbEludGVybmFsRm9ybWF0
LmNvbG9yRW5jb2RpbmcgPT0gR0xfU1JHQiAmJgotICAgICAgICBmZWF0dXJlcy5lbmNvZGVBbmRE
ZWNvZGVTUkdCRm9yR2VuZXJhdGVNaXBtYXAuZW5hYmxlZCAmJiBnZXRUeXBlKCkgPT0gZ2w6OlRl
eHR1cmVUeXBlOjpfMkQpCisgICAgICAgIGZlYXR1cmVzLmRlY29kZUVuY29kZVNSR0JGb3JHZW5l
cmF0ZU1pcG1hcC5lbmFibGVkICYmIGdldFR5cGUoKSA9PSBnbDo6VGV4dHVyZVR5cGU6Ol8yRCkK
ICAgICB7CiAgICAgICAgIG5hdGl2ZWdsOjpUZXhJbWFnZUZvcm1hdCB0ZXhJbWFnZUZvcm1hdCA9
IG5hdGl2ZWdsOjpHZXRUZXhJbWFnZUZvcm1hdCgKICAgICAgICAgICAgIGZ1bmN0aW9ucywgZmVh
dHVyZXMsIGJhc2VMZXZlbEludGVybmFsRm9ybWF0LmludGVybmFsRm9ybWF0LApAQCAtMjAxOCw2
ICsyMDIwLDcgQEAgZ2w6OlRleHR1cmVUeXBlIFRleHR1cmVHTDo6Z2V0VHlwZSgpIGNvbnN0CiB9
CiAKIGFuZ2xlOjpSZXN1bHQgVGV4dHVyZUdMOjppbml0aWFsaXplQ29udGVudHMoY29uc3QgZ2w6
OkNvbnRleHQgKmNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEdMZW51bSBiaW5kaW5nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBnbDo6SW1hZ2VJbmRleCAmaW1hZ2VJbmRleCkKIHsKICAgICBDb250
ZXh0R0wgKmNvbnRleHRHTCAgICAgICAgICAgICAgPSBHZXRJbXBsQXM8Q29udGV4dEdMPihjb250
ZXh0KTsKQEAgLTIxMTAsNyArMjExMyw3IEBAIGFuZ2xlOjpSZXN1bHQgVGV4dHVyZUdMOjppbml0
aWFsaXplQ29udGVudHMoY29uc3QgZ2w6OkNvbnRleHQgKmNvbnRleHQsCiAgICAgICAgICAgICAg
ICAgQU5HTEVfVFJZKHNldFN1YkltYWdlUm93QnlSb3dXb3JrYXJvdW5kKAogICAgICAgICAgICAg
ICAgICAgICBjb250ZXh0LCBpbWFnZUluZGV4LmdldFRhcmdldCgpLCBpbWFnZUluZGV4LmdldExl
dmVsSW5kZXgoKSwgYXJlYSwKICAgICAgICAgICAgICAgICAgICAgbmF0aXZlU3ViSW1hZ2VGb3Jt
YXQuZm9ybWF0LCBuYXRpdmVTdWJJbWFnZUZvcm1hdC50eXBlLCB1bnBhY2tTdGF0ZSwgbnVsbHB0
ciwKLSAgICAgICAgICAgICAgICAgICAgYW5nbGU6OkZlYXR1cmVzR0w6OmtVcGxvYWRUZXh0dXJl
RGF0YUluQ2h1bmtzVXBsb2FkU2l6ZSwgemVyby0+ZGF0YSgpKSk7CisgICAgICAgICAgICAgICAg
ICAgIGtVcGxvYWRUZXh0dXJlRGF0YUluQ2h1bmtzVXBsb2FkU2l6ZSwgemVyby0+ZGF0YSgpKSk7
CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvZ2wvVGV4
dHVyZUdMLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIv
Z2wvVGV4dHVyZUdMLmgKaW5kZXggNTY3ODEzN2Q3YzJiMjk4Y2ViM2RjYjFhZDNjYWY2ZDdhYWM5
YzY2MC4uOTE4OWIwOTNkMzU5MTk3NDU4NWI3NDYwNjM3NTdjMjAwNWE3MTVjNiAxMDA2NDQKLS0t
IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL2dsL1RleHR1
cmVHTC5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJl
ci9nbC9UZXh0dXJlR0wuaApAQCAtMjAxLDYgKzIwMSw3IEBAIGNsYXNzIFRleHR1cmVHTCA6IHB1
YmxpYyBUZXh0dXJlSW1wbAogICAgIGFuZ2xlOjpSZXN1bHQgc2V0TWF4TGV2ZWwoY29uc3QgZ2w6
OkNvbnRleHQgKmNvbnRleHQsIEdMdWludCBtYXhMZXZlbCk7CiAKICAgICBhbmdsZTo6UmVzdWx0
IGluaXRpYWxpemVDb250ZW50cyhjb25zdCBnbDo6Q29udGV4dCAqY29udGV4dCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTGVudW0gYmluZGluZywKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnbDo6SW1hZ2VJbmRleCAmaW1hZ2VJbmRl
eCkgb3ZlcnJpZGU7CiAKICAgICBHTGludCBnZXRSZXF1aXJlZEV4dGVybmFsVGV4dHVyZUltYWdl
VW5pdHMoY29uc3QgZ2w6OkNvbnRleHQgKmNvbnRleHQpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL2dsL1ZlcnRleEFy
cmF5R0wuY3BwIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVy
L2dsL1ZlcnRleEFycmF5R0wuY3BwCmluZGV4IDMwOTAyN2MwZjMwOWRhNDQ2ODc1NzE3Mjk2MjU0
NDI4ZWM2ZjAzMzEuLmRjOTgxZGVlMGRhYmZmZTE5ZjZhMDk4ZmY1YTZhMWZkYjE4MGI0ZTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9n
bC9WZXJ0ZXhBcnJheUdMLmNwcAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGli
QU5HTEUvcmVuZGVyZXIvZ2wvVmVydGV4QXJyYXlHTC5jcHAKQEAgLTIxMiw3ICsyMTIsNyBAQCBh
bmdsZTo6UmVzdWx0IFZlcnRleEFycmF5R0w6OnN5bmNEcmF3U3RhdGUoY29uc3QgZ2w6OkNvbnRl
eHQgKmNvbnRleHQsCiAgICAgICAgIGluZGV4UmFuZ2Uuc3RhcnQgPSBmaXJzdDsKICAgICAgICAg
aW5kZXhSYW5nZS5lbmQgICA9IGZpcnN0ICsgY291bnQgLSAxOwogCi0gICAgICAgIGlmIChmZWF0
dXJlcy5zaGlmdEluc3RhbmNlZEFycmF5RGF0YVdpdGhFeHRyYU9mZnNldC5lbmFibGVkICYmIGZp
cnN0ID4gMCkKKyAgICAgICAgaWYgKGZlYXR1cmVzLnNoaWZ0SW5zdGFuY2VkQXJyYXlEYXRhV2l0
aE9mZnNldC5lbmFibGVkICYmIGZpcnN0ID4gMCkKICAgICAgICAgewogICAgICAgICAgICAgZ2w6
OkF0dHJpYnV0ZXNNYXNrIHVwZGF0ZWRTdHJlYW1pbmdBdHRyaWJzTWFzayA9IG5lZWRzU3RyZWFt
aW5nQXR0cmliczsKICAgICAgICAgICAgIGF1dG8gY2FuZGlkYXRlQXR0cmlidXRlc01hc2sgPQpA
QCAtNDM4LDcgKzQzOCw3IEBAIGFuZ2xlOjpSZXN1bHQgVmVydGV4QXJyYXlHTDo6c3RyZWFtQXR0
cmlidXRlcygKIAogICAgICAgICAgICAgR0x1aW50IGFkanVzdGVkRGl2aXNvciA9IEdldEFkanVz
dGVkRGl2aXNvcihtQXBwbGllZE51bVZpZXdzLCBiaW5kaW5nLmdldERpdmlzb3IoKSk7CiAgICAg
ICAgICAgICAvLyBzdHJlYW1lZFZlcnRleENvdW50IGlzIG9ubHkgZ29pbmcgdG8gYmUgbW9kaWZp
ZWQgYnkKLSAgICAgICAgICAgIC8vIHNoaWZ0SW5zdGFuY2VkQXJyYXlEYXRhV2l0aEV4dHJhT2Zm
c2V0IHdvcmthcm91bmQsIG90aGVyd2lzZSBpdCdzIGNvbnN0CisgICAgICAgICAgICAvLyBzaGlm
dEluc3RhbmNlZEFycmF5RGF0YVdpdGhPZmZzZXQgd29ya2Fyb3VuZCwgb3RoZXJ3aXNlIGl0J3Mg
Y29uc3QKICAgICAgICAgICAgIHNpemVfdCBzdHJlYW1lZFZlcnRleENvdW50ID0gQ29tcHV0ZVZl
cnRleEJpbmRpbmdFbGVtZW50Q291bnQoCiAgICAgICAgICAgICAgICAgYWRqdXN0ZWREaXZpc29y
LCBpbmRleFJhbmdlLnZlcnRleENvdW50KCksIGluc3RhbmNlQ291bnQpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvZ2wvY2dsL0Rp
c3BsYXlDR0wubW0gYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVy
ZXIvZ2wvY2dsL0Rpc3BsYXlDR0wubW0KaW5kZXggNzU0MmQ2N2Q0ZGM0NjRhNmU3NDJhMWUzMzU4
NzY4ZTI0Y2YxZjRmNC4uMDZmZWZhYTFkYWQyZjk2M2ViNGZjZGE5M2M2NjA2MTliNDk0Mzg3MyAx
MDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVy
L2dsL2NnbC9EaXNwbGF5Q0dMLm1tCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9s
aWJBTkdMRS9yZW5kZXJlci9nbC9jZ2wvRGlzcGxheUNHTC5tbQpAQCAtMjA5LDggKzIwOSwyNiBA
QCBlZ2w6OkVycm9yIERpc3BsYXlDR0w6OmluaXRpYWxpemUoZWdsOjpEaXNwbGF5ICpkaXNwbGF5
KQogCiAgICAgaWYgKG1TdXBwb3J0c0dQVVN3aXRjaGluZykKICAgICB7Ci0gICAgICAgIC8vIERl
dGVybWluZSB0aGUgY3VycmVudGx5IGFjdGl2ZSBHUFUgb24gdGhlIHN5c3RlbS4KLSAgICAgICAg
bUN1cnJlbnRHUFVJRCA9IGFuZ2xlOjpHZXRHcHVJREZyb21EaXNwbGF5SUQoa0NHRGlyZWN0TWFp
bkRpc3BsYXkpOworICAgICAgICBhdXRvIGdwdUluZGV4ID0gaW5mby5nZXRQcmVmZXJyZWRHUFVJ
bmRleCgpOworICAgICAgICBpZiAoZ3B1SW5kZXgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGF1
dG8gZ3B1SUQgICAgICAgICA9IGluZm8uZ3B1c1sqZ3B1SW5kZXhdLnN5c3RlbURldmljZUlkOwor
ICAgICAgICAgICAgYXV0byB2aXJ0dWFsU2NyZWVuID0gR2V0VmlydHVhbFNjcmVlbkJ5UmVnaXN0
cnlJRChtUGl4ZWxGb3JtYXQsIGdwdUlEKTsKKyAgICAgICAgICAgIGlmICh2aXJ0dWFsU2NyZWVu
KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIENHTEVycm9yIGVycm9yID0gQ0dMU2V0
VmlydHVhbFNjcmVlbihtQ29udGV4dCwgKnZpcnR1YWxTY3JlZW4pOworICAgICAgICAgICAgICAg
IEFTU0VSVChlcnJvciA9PSBrQ0dMTm9FcnJvcik7CisgICAgICAgICAgICAgICAgaWYgKGVycm9y
ID09IGtDR0xOb0Vycm9yKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAg
bUN1cnJlbnRHUFVJRCA9IGdwdUlEOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0K
KyAgICAgICAgfQorICAgICAgICBpZiAobUN1cnJlbnRHUFVJRCA9PSAwKQorICAgICAgICB7Cisg
ICAgICAgICAgICAvLyBEZXRlcm1pbmUgdGhlIGN1cnJlbnRseSBhY3RpdmUgR1BVIG9uIHRoZSBz
eXN0ZW0uCisgICAgICAgICAgICBtQ3VycmVudEdQVUlEID0gYW5nbGU6OkdldEdwdUlERnJvbURp
c3BsYXlJRChrQ0dEaXJlY3RNYWluRGlzcGxheSk7CisgICAgICAgIH0KICAgICB9CiAKICAgICBp
ZiAoQ0dMU2V0Q3VycmVudENvbnRleHQobUNvbnRleHQpICE9IGtDR0xOb0Vycm9yKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL2dsL2Zv
cm1hdHV0aWxzZ2wuY3BwIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3Jl
bmRlcmVyL2dsL2Zvcm1hdHV0aWxzZ2wuY3BwCmluZGV4IDAxZDBlNzc5YzU1NWI5YTFmODMxN2M5
M2FkODJjZWE0YzllMGJkZGUuLmYzNDY5YmIxOTJkZWVlODdjY2QzODkwZTQxNDVhMTg4MmE2M2Q4
NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5k
ZXJlci9nbC9mb3JtYXR1dGlsc2dsLmNwcAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9z
cmMvbGliQU5HTEUvcmVuZGVyZXIvZ2wvZm9ybWF0dXRpbHNnbC5jcHAKQEAgLTE0LDcgKzE0LDcg
QEAKICNpbmNsdWRlICJhbmdsZWJhc2Uvbm9fZGVzdHJ1Y3Rvci5oIgogI2luY2x1ZGUgImNvbW1v
bi9zdHJpbmdfdXRpbHMuaCIKICNpbmNsdWRlICJsaWJBTkdMRS9mb3JtYXR1dGlscy5oIgotI2lu
Y2x1ZGUgInBsYXRmb3JtL0ZlYXR1cmVzR0wuaCIKKyNpbmNsdWRlICJwbGF0Zm9ybS9GZWF0dXJl
c0dMX2F1dG9nZW4uaCIKIAogbmFtZXNwYWNlIHJ4CiB7CkBAIC01MDcsNyArNTA3LDcgQEAgc3Rh
dGljIEdMZW51bSBHZXROYXRpdmVJbnRlcm5hbEZvcm1hdChjb25zdCBGdW5jdGlvbnNHTCAqZnVu
Y3Rpb25zLAogICAgICAgICB9CiAKICAgICAgICAgaWYgKGludGVybmFsRm9ybWF0LnNpemVkSW50
ZXJuYWxGb3JtYXQgPT0gR0xfUkdCQTQgJiYKLSAgICAgICAgICAgIChmZWF0dXJlcy5yZ2JhNElz
Tm90U3VwcG9ydGVkRm9yQ29sb3JSZW5kZXJpbmcuZW5hYmxlZCB8fAorICAgICAgICAgICAgKGZl
YXR1cmVzLlJHQkE0SXNOb3RTdXBwb3J0ZWRGb3JDb2xvclJlbmRlcmluZy5lbmFibGVkIHx8CiAg
ICAgICAgICAgICAgZmVhdHVyZXMucHJvbW90ZVBhY2tlZEZvcm1hdHNUbzhCaXRQZXJDaGFubmVs
LmVuYWJsZWQpKQogICAgICAgICB7CiAgICAgICAgICAgICAvLyBVc2UgYW4gOC1iaXQgZm9ybWF0
IGluc3RlYWQKQEAgLTU3Niw3ICs1NzYsNyBAQCBzdGF0aWMgR0xlbnVtIEdldE5hdGl2ZUludGVy
bmFsRm9ybWF0KGNvbnN0IEZ1bmN0aW9uc0dMICpmdW5jdGlvbnMsCiAgICAgICAgIH0KICAgICAg
ICAgZWxzZSBpZiAoaW50ZXJuYWxGb3JtYXQuY29sb3JFbmNvZGluZyA9PSBHTF9TUkdCKQogICAg
ICAgICB7Ci0gICAgICAgICAgICBpZiAoZmVhdHVyZXMudW5zaXplZHNSR0JSZWFkUGl4ZWxzRG9l
c250VHJhbnNmb3JtLmVuYWJsZWQpCisgICAgICAgICAgICBpZiAoZmVhdHVyZXMudW5zaXplZFNS
R0JSZWFkUGl4ZWxzRG9lc250VHJhbnNmb3JtLmVuYWJsZWQpCiAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgLy8gV29yayBhcm91bmQgc29tZSBBZHJlbm8gZHJpdmVyIGJ1Z3MgdGhhdCBk
b24ndCByZWFkIGJhY2sgU1JHQiBkYXRhIGNvcnJlY3RseSB3aGVuCiAgICAgICAgICAgICAgICAg
Ly8gaXQncyBpbiB1bnNpemVkIFNSR0IgdGV4dHVyZSBmb3JtYXRzLgpAQCAtNjU1LDcgKzY1NSw3
IEBAIHN0YXRpYyBHTGVudW0gR2V0TmF0aXZlRm9ybWF0KGNvbnN0IEZ1bmN0aW9uc0dMICpmdW5j
dGlvbnMsCiAgICAgICAgIC8vIFRyYW5zZm9ybSBzUkdCIGZvcm1hdHMgdG8gUkdCIGlmIGVpdGhl
ciB0aGUgR0xFUyBkcml2ZXIgZG9lc24ndCBzdXBwb3J0IEdMX0VYVF9zUkdCLCBvcgogICAgICAg
ICAvLyB0byB3b3JrIGFyb3VuZCBBZHJlbm8gZHJpdmVyIGJ1Z3MgcmVhZGluZyBiYWNrIHVuc2l6
ZWQgc1JHQiB0ZXh0dXJlIGRhdGEuCiAgICAgICAgIGlmICghZnVuY3Rpb25zLT5oYXNHTEVTRXh0
ZW5zaW9uKCJHTF9FWFRfc1JHQiIpIHx8Ci0gICAgICAgICAgICBmZWF0dXJlcy51bnNpemVkc1JH
QlJlYWRQaXhlbHNEb2VzbnRUcmFuc2Zvcm0uZW5hYmxlZCkKKyAgICAgICAgICAgIGZlYXR1cmVz
LnVuc2l6ZWRTUkdCUmVhZFBpeGVsc0RvZXNudFRyYW5zZm9ybS5lbmFibGVkKQogICAgICAgICB7
CiAgICAgICAgICAgICBpZiAoZm9ybWF0ID09IEdMX1NSR0IpCiAgICAgICAgICAgICB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvZ2wv
cmVuZGVyZXJnbF91dGlscy5jcHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5H
TEUvcmVuZGVyZXIvZ2wvcmVuZGVyZXJnbF91dGlscy5jcHAKaW5kZXggOWU0MDExMTgzZGQ3NWFm
NjMxOGI1NDYzOGQ0MzlmM2EzYmEwOTVlMi4uYTViZjY4M2JlODQxZTVhMjk5ZWE2NjE5ZjU5MjEx
NDRlYWQxODE2NiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFO
R0xFL3JlbmRlcmVyL2dsL3JlbmRlcmVyZ2xfdXRpbHMuY3BwCisrKyBiL1NvdXJjZS9UaGlyZFBh
cnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9nbC9yZW5kZXJlcmdsX3V0aWxzLmNwcApA
QCAtMjYsOCArMjYsOCBAQAogI2luY2x1ZGUgImxpYkFOR0xFL3JlbmRlcmVyL2dsL0Z1bmN0aW9u
c0dMLmgiCiAjaW5jbHVkZSAibGliQU5HTEUvcmVuZGVyZXIvZ2wvUXVlcnlHTC5oIgogI2luY2x1
ZGUgImxpYkFOR0xFL3JlbmRlcmVyL2dsL2Zvcm1hdHV0aWxzZ2wuaCIKLSNpbmNsdWRlICJwbGF0
Zm9ybS9GZWF0dXJlc0dMLmgiCi0jaW5jbHVkZSAicGxhdGZvcm0vRnJvbnRlbmRGZWF0dXJlcy5o
IgorI2luY2x1ZGUgInBsYXRmb3JtL0ZlYXR1cmVzR0xfYXV0b2dlbi5oIgorI2luY2x1ZGUgInBs
YXRmb3JtL0Zyb250ZW5kRmVhdHVyZXNfYXV0b2dlbi5oIgogCiAjaW5jbHVkZSA8RUdML2VnbGV4
dC5oPgogI2luY2x1ZGUgPGFsZ29yaXRobT4KQEAgLTE3MDksMTcgKzE3MDksMTcgQEAgdm9pZCBH
ZW5lcmF0ZUNhcHMoY29uc3QgRnVuY3Rpb25zR0wgKmZ1bmN0aW9ucywKICAgICAvLyBFeHBvc2Ug
dGhpcyBleHRlbnNpb24gb25seSB3aGVuIHdlIHN1cHBvcnQgdGhlIGZvcm1hdHMgb3Igd2UncmUg
cnVubmluZyBvbiB0b3Agb2YgYSBuYXRpdmUKICAgICAvLyBFUyBkcml2ZXIuCiAgICAgZXh0ZW5z
aW9ucy0+Y29tcHJlc3NlZFRleHR1cmVFdGNBTkdMRSA9Ci0gICAgICAgIChmZWF0dXJlcy5hbGxv
d0V0Y0Zvcm1hdHMuZW5hYmxlZCB8fCBmdW5jdGlvbnMtPnN0YW5kYXJkID09IFNUQU5EQVJEX0dM
X0VTKSAmJgorICAgICAgICAoZmVhdHVyZXMuYWxsb3dFVENGb3JtYXRzLmVuYWJsZWQgfHwgZnVu
Y3Rpb25zLT5zdGFuZGFyZCA9PSBTVEFOREFSRF9HTF9FUykgJiYKICAgICAgICAgZ2w6OkRldGVy
bWluZUNvbXByZXNzZWRUZXh0dXJlRVRDU3VwcG9ydCgqdGV4dHVyZUNhcHNNYXApOwogCiAgICAg
Ly8gV2hlbiBydW5uaW5nIG9uIHRvcCBvZiBkZXNrdG9wIE9wZW5HTCBkcml2ZXJzIGFuZCBhbGxv
d19ldGNfZm9ybWF0cyBmZWF0dXJlIGlzIG5vdCBlbmFibGVkLAogICAgIC8vIG1hcmsgRVRDMSBh
cyBlbXVsYXRlZCB0byBoaWRlIGl0IGZyb20gV2ViR0wgY2xpZW50cy4KICAgICBsaW1pdGF0aW9u
cy0+ZW11bGF0ZWRFdGMxID0KLSAgICAgICAgIWZlYXR1cmVzLmFsbG93RXRjRm9ybWF0cy5lbmFi
bGVkICYmIGZ1bmN0aW9ucy0+c3RhbmRhcmQgPT0gU1RBTkRBUkRfR0xfREVTS1RPUDsKKyAgICAg
ICAgIWZlYXR1cmVzLmFsbG93RVRDRm9ybWF0cy5lbmFibGVkICYmIGZ1bmN0aW9ucy0+c3RhbmRh
cmQgPT0gU1RBTkRBUkRfR0xfREVTS1RPUDsKIAogICAgIC8vIFRvIHdvcmsgYXJvdW5kIGJyb2tl
biB1bnNpemVkIHNSR0IgdGV4dHVyZXMsIHNpemVkIHNSR0IgdGV4dHVyZXMgYXJlIHVzZWQuIERp
c2FibGUgRVhUX3NSR0IKICAgICAvLyBpZiB0aG9zZSBmb3JtYXRzIGFyZSBub3QgYXZhaWxhYmxl
LgotICAgIGlmIChmZWF0dXJlcy51bnNpemVkc1JHQlJlYWRQaXhlbHNEb2VzbnRUcmFuc2Zvcm0u
ZW5hYmxlZCAmJgorICAgIGlmIChmZWF0dXJlcy51bnNpemVkU1JHQlJlYWRQaXhlbHNEb2VzbnRU
cmFuc2Zvcm0uZW5hYmxlZCAmJgogICAgICAgICAhZnVuY3Rpb25zLT5pc0F0TGVhc3RHTEVTKGds
OjpWZXJzaW9uKDMsIDApKSkKICAgICB7CiAgICAgICAgIGV4dGVuc2lvbnMtPnNSR0JFWFQgPSBm
YWxzZTsKQEAgLTE4OTQsMTMgKzE4OTQsMTMgQEAgdm9pZCBJbml0aWFsaXplRmVhdHVyZXMoY29u
c3QgRnVuY3Rpb25zR0wgKmZ1bmN0aW9ucywgYW5nbGU6OkZlYXR1cmVzR0wgKmZlYXR1cmUKICAg
ICBBTkdMRV9GRUFUVVJFX0NPTkRJVElPTihmZWF0dXJlcywgYXZvaWQxQml0QWxwaGFUZXh0dXJl
Rm9ybWF0cywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbnMtPnN0YW5kYXJk
ID09IFNUQU5EQVJEX0dMX0RFU0tUT1AgJiYgaXNBTUQpOwogCi0gICAgQU5HTEVfRkVBVFVSRV9D
T05ESVRJT04oZmVhdHVyZXMsIHJnYmE0SXNOb3RTdXBwb3J0ZWRGb3JDb2xvclJlbmRlcmluZywK
KyAgICBBTkdMRV9GRUFUVVJFX0NPTkRJVElPTihmZWF0dXJlcywgUkdCQTRJc05vdFN1cHBvcnRl
ZEZvckNvbG9yUmVuZGVyaW5nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9u
cy0+c3RhbmRhcmQgPT0gU1RBTkRBUkRfR0xfREVTS1RPUCAmJiBpc0ludGVsKTsKIAogICAgIC8v
IEFsdGhvdWdoICJTYW5keSBCcmlkZ2UiLCAiSXZ5IEJyaWRnZSIsIGFuZCAiSGFzd2VsbCIgbWF5
IHN1cHBvcnQgR0xfQVJCX0VTM19jb21wYXRpYmlsaXR5CiAgICAgLy8gZXh0ZW5zaW9uLCBFVEMy
L0VBQyBmb3JtYXRzIGFyZSBlbXVsYXRlZCB0aGVyZS4gTmV3ZXIgSW50ZWwgR1BVcyBzdXBwb3J0
IHRoZW0gbmF0aXZlbHkuCiAgICAgQU5HTEVfRkVBVFVSRV9DT05ESVRJT04oCi0gICAgICAgIGZl
YXR1cmVzLCBhbGxvd0V0Y0Zvcm1hdHMsCisgICAgICAgIGZlYXR1cmVzLCBhbGxvd0VUQ0Zvcm1h
dHMsCiAgICAgICAgIGlzSW50ZWwgJiYgIUlzU2FuZHlCcmlkZ2UoZGV2aWNlKSAmJiAhSXNJdnlC
cmlkZ2UoZGV2aWNlKSAmJiAhSXNIYXN3ZWxsKGRldmljZSkpOwogCiAgICAgLy8gUG9ydGVkIGZy
b20gZ3B1X2RyaXZlcl9idWdfbGlzdC5qc29uICgjMTgzKQpAQCAtMTkzMSw3ICsxOTMxLDcgQEAg
dm9pZCBJbml0aWFsaXplRmVhdHVyZXMoY29uc3QgRnVuY3Rpb25zR0wgKmZ1bmN0aW9ucywgYW5n
bGU6OkZlYXR1cmVzR0wgKmZlYXR1cmUKICAgICBBTkdMRV9GRUFUVVJFX0NPTkRJVElPTihmZWF0
dXJlcywgcmV3cml0ZUZsb2F0VW5hcnlNaW51c09wZXJhdG9yLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIElzQXBwbGUoKSAmJiBpc0ludGVsICYmIEdldE1hY09TVmVyc2lvbigpIDwgT1NW
ZXJzaW9uKDEwLCAxMiwgMCkpOwogCi0gICAgQU5HTEVfRkVBVFVSRV9DT05ESVRJT04oZmVhdHVy
ZXMsIGFkZEJhc2VWZXJ0ZXhUb1ZlcnRleElELCBJc0FwcGxlKCkgJiYgaXNBTUQpOworICAgIEFO
R0xFX0ZFQVRVUkVfQ09ORElUSU9OKGZlYXR1cmVzLCB2ZXJ0ZXhJRERvZXNOb3RJbmNsdWRlQmFz
ZVZlcnRleCwgSXNBcHBsZSgpICYmIGlzQU1EKTsKIAogICAgIC8vIFRyaWdnZXJzIGEgYnVnIG9u
IE1hcnNobWFsbG93IEFkcmVubyAoNHh4PykgZHJpdmVyLgogICAgIC8vIGh0dHA6Ly9hbmdsZWJ1
Zy5jb20vMjA0NgpAQCAtMTk4Miw3ICsxOTgyLDcgQEAgdm9pZCBJbml0aWFsaXplRmVhdHVyZXMo
Y29uc3QgRnVuY3Rpb25zR0wgKmZ1bmN0aW9ucywgYW5nbGU6OkZlYXR1cmVzR0wgKmZlYXR1cmUK
IAogICAgIEFOR0xFX0ZFQVRVUkVfQ09ORElUSU9OKGZlYXR1cmVzLCBkaXNhYmxlQmxlbmRGdW5j
RXh0ZW5kZWQsIGlzQU1EIHx8IGlzSW50ZWwpOwogCi0gICAgQU5HTEVfRkVBVFVSRV9DT05ESVRJ
T04oZmVhdHVyZXMsIHVuc2l6ZWRzUkdCUmVhZFBpeGVsc0RvZXNudFRyYW5zZm9ybSwKKyAgICBB
TkdMRV9GRUFUVVJFX0NPTkRJVElPTihmZWF0dXJlcywgdW5zaXplZFNSR0JSZWFkUGl4ZWxzRG9l
c250VHJhbnNmb3JtLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIElzQW5kcm9pZCgpICYm
IGlzUXVhbGNvbW0pOwogCiAgICAgQU5HTEVfRkVBVFVSRV9DT05ESVRJT04oZmVhdHVyZXMsIHF1
ZXJ5Q291bnRlckJpdHNHZW5lcmF0ZXNFcnJvcnMsIElzTmV4dXM1WCh2ZW5kb3IsIGRldmljZSkp
OwpAQCAtMjAyNCwxNCArMjAyNCwxNCBAQCB2b2lkIEluaXRpYWxpemVGZWF0dXJlcyhjb25zdCBG
dW5jdGlvbnNHTCAqZnVuY3Rpb25zLCBhbmdsZTo6RmVhdHVyZXNHTCAqZmVhdHVyZQogICAgIEFO
R0xFX0ZFQVRVUkVfQ09ORElUSU9OKGZlYXR1cmVzLCBjbGVhclRvWmVyb09yT25lQnJva2VuLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIElzQXBwbGUoKSAmJiBpc0ludGVsICYmIEdldE1h
Y09TVmVyc2lvbigpIDwgT1NWZXJzaW9uKDEwLCAxMiwgNikpOwogCi0gICAgQU5HTEVfRkVBVFVS
RV9DT05ESVRJT04oZmVhdHVyZXMsIGFkanVzdFNyY0RzdFJlZ2lvbkJsaXRGcmFtZWJ1ZmZlciwK
KyAgICBBTkdMRV9GRUFUVVJFX0NPTkRJVElPTihmZWF0dXJlcywgYWRqdXN0U3JjRHN0UmVnaW9u
Rm9yQmxpdEZyYW1lYnVmZmVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIElzTGludXgo
KSB8fCAoSXNBbmRyb2lkKCkgJiYgaXNOdmlkaWEpIHx8IChJc1dpbmRvd3MoKSAmJiBpc052aWRp
YSkgfHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKElzQXBwbGUoKSAmJiBmdW5j
dGlvbnMtPnN0YW5kYXJkID09IFNUQU5EQVJEX0dMX0VTKSk7CiAKLSAgICBBTkdMRV9GRUFUVVJF
X0NPTkRJVElPTihmZWF0dXJlcywgY2xpcFNyY1JlZ2lvbkJsaXRGcmFtZWJ1ZmZlciwKKyAgICBB
TkdMRV9GRUFUVVJFX0NPTkRJVElPTihmZWF0dXJlcywgY2xpcFNyY1JlZ2lvbkZvckJsaXRGcmFt
ZWJ1ZmZlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJc0FwcGxlKCkgfHwgKElzTGlu
dXgoKSAmJiBpc0FNRCkpOwogCi0gICAgQU5HTEVfRkVBVFVSRV9DT05ESVRJT04oZmVhdHVyZXMs
IHJnYkRYVDFUZXh0dXJlc1NhbXBsZVplcm9BbHBoYSwgSXNBcHBsZSgpKTsKKyAgICBBTkdMRV9G
RUFUVVJFX0NPTkRJVElPTihmZWF0dXJlcywgUkdCRFhUMVRleHR1cmVzU2FtcGxlWmVyb0FscGhh
LCBJc0FwcGxlKCkpOwogCiAgICAgQU5HTEVfRkVBVFVSRV9DT05ESVRJT04oZmVhdHVyZXMsIHVu
Zm9sZFNob3J0Q2lyY3VpdHMsIElzQXBwbGUoKSk7CiAKQEAgLTIwODEsNyArMjA4MSw3IEBAIHZv
aWQgSW5pdGlhbGl6ZUZlYXR1cmVzKGNvbnN0IEZ1bmN0aW9uc0dMICpmdW5jdGlvbnMsIGFuZ2xl
OjpGZWF0dXJlc0dMICpmZWF0dXJlCiAgICAgICAgICAgICAoSXNBbmRyb2lkKCkgJiYgSXNNYWxp
VDh4eE9yT2xkZXIoZnVuY3Rpb25zKSkgfHwKICAgICAgICAgICAgIChJc0FuZHJvaWQoKSAmJiBJ
c01hbGlHMzFPck9sZGVyKGZ1bmN0aW9ucykpKTsKIAotICAgIEFOR0xFX0ZFQVRVUkVfQ09ORElU
SU9OKGZlYXR1cmVzLCBlbmNvZGVBbmREZWNvZGVTUkdCRm9yR2VuZXJhdGVNaXBtYXAsIElzQXBw
bGUoKSk7CisgICAgQU5HTEVfRkVBVFVSRV9DT05ESVRJT04oZmVhdHVyZXMsIGRlY29kZUVuY29k
ZVNSR0JGb3JHZW5lcmF0ZU1pcG1hcCwgSXNBcHBsZSgpKTsKIAogICAgIC8vIGFuZ2xlYnVnLmNv
bS80Njc0CiAgICAgLy8gVGhlIChyZWR1bmRhbnQpIGV4cGxpY2l0IGV4Y2x1c2lvbiBvZiBXaW5k
b3dzIEFNRCBpcyBiZWNhdXNlIHRoZSB3b3JrYXJvdW5kIGZhaWxzCkBAIC0yMTU1LDcgKzIxNTUs
NyBAQCB2b2lkIEluaXRpYWxpemVGZWF0dXJlcyhjb25zdCBGdW5jdGlvbnNHTCAqZnVuY3Rpb25z
LCBhbmdsZTo6RmVhdHVyZXNHTCAqZmVhdHVyZQogICAgIC8vIGh0dHA6Ly9jcmJ1Zy5jb20vMTE0
NDIwNwogICAgIC8vIFRoZSBNYWMgYm90IHdpdGggSW50ZWwgSXJpcyBHUFUgc2VlbXMgdW5hZmZl
Y3RlZCBieSB0aGlzIGJ1Zy4gRXhjbHVkZSB0aGUgSGFzd2VsbCBmYW1pbHkgZm9yCiAgICAgLy8g
bm93LgotICAgIEFOR0xFX0ZFQVRVUkVfQ09ORElUSU9OKGZlYXR1cmVzLCBzaGlmdEluc3RhbmNl
ZEFycmF5RGF0YVdpdGhFeHRyYU9mZnNldCwKKyAgICBBTkdMRV9GRUFUVVJFX0NPTkRJVElPTihm
ZWF0dXJlcywgc2hpZnRJbnN0YW5jZWRBcnJheURhdGFXaXRoT2Zmc2V0LAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIElzQXBwbGUoKSAmJiBJc0ludGVsKHZlbmRvcikgJiYgIUlzSGFzd2Vs
bChkZXZpY2UpKTsKICAgICBBTkdMRV9GRUFUVVJFX0NPTkRJVElPTihmZWF0dXJlcywgc3luY1Zl
cnRleEFycmF5c1RvRGVmYXVsdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhbmF0aXZl
Z2w6OlN1cHBvcnRzVmVydGV4QXJyYXlPYmplY3RzKGZ1bmN0aW9ucykpOwpAQCAtMjE2MywxMiAr
MjE2MywxMiBAQCB2b2lkIEluaXRpYWxpemVGZWF0dXJlcyhjb25zdCBGdW5jdGlvbnNHTCAqZnVu
Y3Rpb25zLCBhbmdsZTo6RmVhdHVyZXNHTCAqZmVhdHVyZQogICAgIC8vIGh0dHA6Ly9jcmJ1Zy5j
b20vMTE4MTE5MwogICAgIC8vIE9uIGRlc2t0b3AgTGludXgvQU1EIHdoZW4gdXNpbmcgdGhlIGFt
ZGdwdSBkcml2ZXJzLCB0aGUgcHJlY2lzZSBrZXJuZWwgYW5kIERSTSB2ZXJzaW9uIGFyZQogICAg
IC8vIGxlYWtlZCB2aWEgR0xfUkVOREVSRVIuIFdlIHdvcmthcm91bmQgdGhpcyB0b28gaW1wcm92
ZSB1c2VyIHNlY3VyaXR5LgotICAgIEFOR0xFX0ZFQVRVUkVfQ09ORElUSU9OKGZlYXR1cmVzLCBz
YW5pdGl6ZUFtZEdwdVJlbmRlcmVyU3RyaW5nLCBJc0xpbnV4KCkgJiYgaGFzQU1EKTsKKyAgICBB
TkdMRV9GRUFUVVJFX0NPTkRJVElPTihmZWF0dXJlcywgc2FuaXRpemVBTURHUFVSZW5kZXJlclN0
cmluZywgSXNMaW51eCgpICYmIGhhc0FNRCk7CiAKICAgICAvLyBodHRwOi8vY3JidWcuY29tLzEx
ODc1MTMKICAgICAvLyBJbWFnaW5hdGlvbiBkcml2ZXJzIGFyZSBidWdneSB3aXRoIGNvbnRleHQg
c3dpdGNoaW5nLiBJdCBuZWVkcyB0byB1bmJpbmQgZmJvIGJlZm9yZSBjb250ZXh0CiAgICAgLy8g
c3dpdGNoaW5nIHRvIHdvcmthZHJvdW5kIHRoZSBkcml2ZXIgaXNzdWVzLgotICAgIEFOR0xFX0ZF
QVRVUkVfQ09ORElUSU9OKGZlYXR1cmVzLCB1bmJpbmRGQk9PbkNvbnRleHRTd2l0Y2gsIElzUG93
ZXJWUih2ZW5kb3IpKTsKKyAgICBBTkdMRV9GRUFUVVJFX0NPTkRJVElPTihmZWF0dXJlcywgdW5i
aW5kRkJPQmVmb3JlU3dpdGNoaW5nQ29udGV4dCwgSXNQb3dlclZSKHZlbmRvcikpOwogCiAgICAg
Ly8gaHR0cDovL2NyYnVnLmNvbS8xMTgxMDY4IGFuZCBodHRwOi8vY3JidWcuY29tLzc4Mzk3OQog
ICAgIEFOR0xFX0ZFQVRVUkVfQ09ORElUSU9OKGZlYXR1cmVzLCBmbHVzaE9uRnJhbWVidWZmZXJD
aGFuZ2UsCkBAIC0yMjA4LDYgKzIyMDgsMTAgQEAgdm9pZCBJbml0aWFsaXplRmVhdHVyZXMoY29u
c3QgRnVuY3Rpb25zR0wgKmZ1bmN0aW9ucywgYW5nbGU6OkZlYXR1cmVzR0wgKmZlYXR1cmUKIAog
ICAgIC8vIGh0dHBzOi8vY3JidWcuY29tLzEzMDA1NzUKICAgICBBTkdMRV9GRUFUVVJFX0NPTkRJ
VElPTihmZWF0dXJlcywgZW11bGF0ZVJHQjEwLCBmdW5jdGlvbnMtPnN0YW5kYXJkID09IFNUQU5E
QVJEX0dMX0RFU0tUT1ApOworCisgICAgLy8gaHR0cHM6Ly9hbmdsZWJ1Zy5jb20vNTUzNgorICAg
IEFOR0xFX0ZFQVRVUkVfQ09ORElUSU9OKGZlYXR1cmVzLCBhbHdheXNVbmJpbmRGcmFtZWJ1ZmZl
clRleHR1cmUyRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc052aWRpYSAmJiAoSXNX
aW5kb3dzKCkgfHwgSXNMaW51eCgpKSk7CiB9CiAKIHZvaWQgSW5pdGlhbGl6ZUZyb250ZW5kRmVh
dHVyZXMoY29uc3QgRnVuY3Rpb25zR0wgKmZ1bmN0aW9ucywgYW5nbGU6OkZyb250ZW5kRmVhdHVy
ZXMgKmZlYXR1cmVzKQpAQCAtMjIzNCw3ICsyMjM4LDcgQEAgdm9pZCBSZUluaXRpYWxpemVGZWF0
dXJlc0F0R1BVU3dpdGNoKGNvbnN0IEZ1bmN0aW9uc0dMICpmdW5jdGlvbnMsIGFuZ2xlOjpGZWF0
dXIKICAgICAvLyBUaGUgTWFjIGJvdCB3aXRoIEludGVsIElyaXMgR1BVIHNlZW1zIHVuYWZmZWN0
ZWQgYnkgdGhpcyBidWcuIEV4Y2x1ZGUgdGhlIEhhc3dlbGwgZmFtaWx5IGZvcgogICAgIC8vIG5v
dy4KICAgICAvLyBXZSBuZWVkIHRvIHJlaW5pdGlhbGl6ZSB0aGlzIGZlYXR1cmUgd2hlbiBzd2l0
Y2hpbmcgYmV0d2VlbiBidWdneSBhbmQgbm9uLWJ1Z2d5IEdQVXMuCi0gICAgQU5HTEVfRkVBVFVS
RV9DT05ESVRJT04oZmVhdHVyZXMsIHNoaWZ0SW5zdGFuY2VkQXJyYXlEYXRhV2l0aEV4dHJhT2Zm
c2V0LAorICAgIEFOR0xFX0ZFQVRVUkVfQ09ORElUSU9OKGZlYXR1cmVzLCBzaGlmdEluc3RhbmNl
ZEFycmF5RGF0YVdpdGhPZmZzZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSXNBcHBs
ZSgpICYmIElzSW50ZWwodmVuZG9yKSAmJiAhSXNIYXN3ZWxsKGRldmljZSkpOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvZ2xz
bGFuZ193cmFwcGVyX3V0aWxzLmNwcCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJB
TkdMRS9yZW5kZXJlci9nbHNsYW5nX3dyYXBwZXJfdXRpbHMuY3BwCmluZGV4IGVjZWQwY2UyYmZi
OWFhNmFiNGVlMTM3MzI2YWQ5MzllMTMzYmM1MzkuLmMzMTQzZDIxMTRmYThmNTAyMmQyYTViMjRi
Zjk5NDZhY2FjYTYyMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9s
aWJBTkdMRS9yZW5kZXJlci9nbHNsYW5nX3dyYXBwZXJfdXRpbHMuY3BwCisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9nbHNsYW5nX3dyYXBwZXJfdXRp
bHMuY3BwCkBAIC05Miw2ICs5Miw3IEBAIHVpbnQzMl90IENvdW50RXhwbGljaXRPdXRwdXRzKE91
dHB1dEl0ZXIgb3V0cHV0c0JlZ2luLAogCiBTaGFkZXJJbnRlcmZhY2VWYXJpYWJsZUluZm8gKkFk
ZFJlc291cmNlSW5mb1RvQWxsU3RhZ2VzKFNoYWRlckludGVyZmFjZVZhcmlhYmxlSW5mb01hcCAq
aW5mb01hcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZ2w6OlNoYWRlclR5cGUgc2hhZGVyVHlwZSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2hhZGVyVmFyaWFibGVUeXBlIHZh
cmlhYmxlVHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgJnZhck5hbWUsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGRlc2NyaXB0
b3JTZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHVpbnQzMl90IGJpbmRpbmcpCkBAIC05OSw3ICsxMDAsNyBAQCBTaGFkZXJJbnRlcmZh
Y2VWYXJpYWJsZUluZm8gKkFkZFJlc291cmNlSW5mb1RvQWxsU3RhZ2VzKFNoYWRlckludGVyZmFj
ZVZhcmlhYmxlSQogICAgIGdsOjpTaGFkZXJCaXRTZXQgYWxsU3RhZ2VzOwogICAgIGFsbFN0YWdl
cy5zZXQoKTsKIAotICAgIFNoYWRlckludGVyZmFjZVZhcmlhYmxlSW5mbyAmaW5mbyA9IGluZm9N
YXAtPmFkZChzaGFkZXJUeXBlLCB2YXJOYW1lKTsKKyAgICBTaGFkZXJJbnRlcmZhY2VWYXJpYWJs
ZUluZm8gJmluZm8gPSBpbmZvTWFwLT5hZGQoc2hhZGVyVHlwZSwgdmFyaWFibGVUeXBlLCB2YXJO
YW1lKTsKICAgICBpbmZvLmRlc2NyaXB0b3JTZXQgICAgICAgICAgICAgICAgPSBkZXNjcmlwdG9y
U2V0OwogICAgIGluZm8uYmluZGluZyAgICAgICAgICAgICAgICAgICAgICA9IGJpbmRpbmc7CiAg
ICAgaW5mby5hY3RpdmVTdGFnZXMgICAgICAgICAgICAgICAgID0gYWxsU3RhZ2VzOwpAQCAtMTA5
LDExICsxMTAsMTIgQEAgU2hhZGVySW50ZXJmYWNlVmFyaWFibGVJbmZvICpBZGRSZXNvdXJjZUlu
Zm9Ub0FsbFN0YWdlcyhTaGFkZXJJbnRlcmZhY2VWYXJpYWJsZUkKIFNoYWRlckludGVyZmFjZVZh
cmlhYmxlSW5mbyAqQWRkUmVzb3VyY2VJbmZvKFNoYWRlckludGVyZmFjZVZhcmlhYmxlSW5mb01h
cCAqaW5mb01hcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGdsOjpTaGFkZXJCaXRTZXQgc3RhZ2VzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZ2w6OlNoYWRlclR5cGUgc2hhZGVyVHlwZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNoYWRlclZhcmlhYmxlVHlwZSB2YXJpYWJs
ZVR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z
dCBzdGQ6OnN0cmluZyAmdmFyTmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHVpbnQzMl90IGRlc2NyaXB0b3JTZXQsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBiaW5kaW5nKQogewotICAgIFNoYWRl
ckludGVyZmFjZVZhcmlhYmxlSW5mbyAmaW5mbyA9IGluZm9NYXAtPmFkZChzaGFkZXJUeXBlLCB2
YXJOYW1lKTsKKyAgICBTaGFkZXJJbnRlcmZhY2VWYXJpYWJsZUluZm8gJmluZm8gPSBpbmZvTWFw
LT5hZGQoc2hhZGVyVHlwZSwgdmFyaWFibGVUeXBlLCB2YXJOYW1lKTsKICAgICBpbmZvLmRlc2Ny
aXB0b3JTZXQgICAgICAgICAgICAgICAgPSBkZXNjcmlwdG9yU2V0OwogICAgIGluZm8uYmluZGlu
ZyAgICAgICAgICAgICAgICAgICAgICA9IGJpbmRpbmc7CiAgICAgaW5mby5hY3RpdmVTdGFnZXMg
ICAgICAgICAgICAgICAgID0gc3RhZ2VzOwpAQCAtMTIzLDYgKzEyNSw3IEBAIFNoYWRlckludGVy
ZmFjZVZhcmlhYmxlSW5mbyAqQWRkUmVzb3VyY2VJbmZvKFNoYWRlckludGVyZmFjZVZhcmlhYmxl
SW5mb01hcCAqaW5mCiAvLyBBZGQgbG9jYXRpb24gaW5mb3JtYXRpb24gZm9yIGFuIGluL291dCB2
YXJpYWJsZS4KIFNoYWRlckludGVyZmFjZVZhcmlhYmxlSW5mbyAqQWRkTG9jYXRpb25JbmZvKFNo
YWRlckludGVyZmFjZVZhcmlhYmxlSW5mb01hcCAqaW5mb01hcCwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdsOjpTaGFkZXJUeXBlIHNoYWRlclR5cGUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTaGFkZXJWYXJpYWJs
ZVR5cGUgdmFyaWFibGVUeXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgJnZhck5hbWUsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBsb2NhdGlvbiwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGNvbXBvbmVudCwKQEAg
LTEzMSwxNCArMTM0LDE0IEBAIFNoYWRlckludGVyZmFjZVZhcmlhYmxlSW5mbyAqQWRkTG9jYXRp
b25JbmZvKFNoYWRlckludGVyZmFjZVZhcmlhYmxlSW5mb01hcCAqaW5mCiB7CiAgICAgLy8gVGhl
IGluZm8gbWFwIGZvciB0aGlzIG5hbWUgbWF5IG9yIG1heSBub3QgZXhpc3QgYWxyZWFkeS4gIFRo
aXMgZnVuY3Rpb24gbWVyZ2VzIHRoZQogICAgIC8vIGxvY2F0aW9uL2NvbXBvbmVudCBpbmZvcm1h
dGlvbi4KLSAgICBTaGFkZXJJbnRlcmZhY2VWYXJpYWJsZUluZm8gJmluZm8gPSBpbmZvTWFwLT5h
ZGRPckdldChzaGFkZXJUeXBlLCB2YXJOYW1lKTsKKyAgICBTaGFkZXJJbnRlcmZhY2VWYXJpYWJs
ZUluZm8gJmluZm8gPSBpbmZvTWFwLT5hZGRPckdldChzaGFkZXJUeXBlLCB2YXJpYWJsZVR5cGUs
IHZhck5hbWUpOwogCiAgICAgQVNTRVJUKGluZm8uZGVzY3JpcHRvclNldCA9PSBTaGFkZXJJbnRl
cmZhY2VWYXJpYWJsZUluZm86OmtJbnZhbGlkKTsKICAgICBBU1NFUlQoaW5mby5iaW5kaW5nID09
IFNoYWRlckludGVyZmFjZVZhcmlhYmxlSW5mbzo6a0ludmFsaWQpOwogICAgIGlmIChpbmZvLmxv
Y2F0aW9uICE9IFNoYWRlckludGVyZmFjZVZhcmlhYmxlSW5mbzo6a0ludmFsaWQpCiAgICAgewog
ICAgICAgICAvLyBUT0RPOiBDb3JyZWN0bHkgc3VwcG9ydCBpbiBhbmQgb3V0IGludGVyZmFjZSB2
YXJpYWJsZXMgd2l0aCBpZGVudGljYWwgbmFtZS4KLSAgICAgICAgLy8gYW5nbGVidWcuY29tLzQ1
MjQKKyAgICAgICAgLy8gYW5nbGVidWcuY29tLzcyMjAKICAgICAgICAgQVNTRVJUKGluZm8ubG9j
YXRpb24gPT0gbG9jYXRpb24pOwogICAgICAgICBBU1NFUlQoaW5mby5jb21wb25lbnQgPT0gY29t
cG9uZW50KTsKICAgICB9CkBAIC0xNjEsNyArMTY0LDggQEAgdm9pZCBBZGRWYXJ5aW5nTG9jYXRp
b25JbmZvKFNoYWRlckludGVyZmFjZVZhcmlhYmxlSW5mb01hcCAqaW5mb01hcCwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50MzJfdCBjb21wb25lbnQpCiB7CiAgICAgY29u
c3Qgc3RkOjpzdHJpbmcgJm5hbWUgPSBpc1N0cnVjdEZpZWxkID8gcmVmLnBhcmVudFN0cnVjdE1h
cHBlZE5hbWUgOiByZWYudmFyeWluZy0+bWFwcGVkTmFtZTsKLSAgICBBZGRMb2NhdGlvbkluZm8o
aW5mb01hcCwgcmVmLnN0YWdlLCBuYW1lLCBsb2NhdGlvbiwgY29tcG9uZW50LCAwLCAwKTsKKyAg
ICBBZGRMb2NhdGlvbkluZm8oaW5mb01hcCwgcmVmLnN0YWdlLCBTaGFkZXJWYXJpYWJsZVR5cGU6
OlZhcnlpbmcsIG5hbWUsIGxvY2F0aW9uLCBjb21wb25lbnQsIDAsCisgICAgICAgICAgICAgICAg
ICAgIDApOwogfQogCiAvLyBNb2RpZnkgYW4gZXhpc3Rpbmcgb3V0IHZhcmlhYmxlIGFuZCBhZGQg
dHJhbnNmb3JtIGZlZWRiYWNrIGluZm9ybWF0aW9uLgpAQCAtMTc4LDcgKzE4Miw4IEBAIFNoYWRl
ckludGVyZmFjZVZhcmlhYmxlSW5mbyAqU2V0WGZiSW5mbyhTaGFkZXJJbnRlcmZhY2VWYXJpYWJs
ZUluZm9NYXAgKmluZm9NYXAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdWludDMyX3QgYXJyYXlJbmRleCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBHTGVudW0gY29tcG9uZW50VHlwZSkKIHsKLSAgICBTaGFkZXJJbnRlcmZhY2VWYXJp
YWJsZUluZm8gJmluZm8gICA9IGluZm9NYXAtPmdldChzaGFkZXJUeXBlLCB2YXJOYW1lKTsKKyAg
ICBTaGFkZXJJbnRlcmZhY2VWYXJpYWJsZUluZm8gJmluZm8gPQorICAgICAgICBpbmZvTWFwLT5n
ZXRNdXRhYmxlKHNoYWRlclR5cGUsIFNoYWRlclZhcmlhYmxlVHlwZTo6VmFyeWluZywgdmFyTmFt
ZSk7CiAgICAgU2hhZGVySW50ZXJmYWNlVmFyaWFibGVYZmJJbmZvICp4ZmIgPSAmaW5mby54ZmI7
CiAKICAgICBpZiAoZmllbGRJbmRleCA+PSAwKQpAQCAtMjEzLDcgKzIxOCw3IEBAIFNoYWRlcklu
dGVyZmFjZVZhcmlhYmxlSW5mbyAqU2V0WGZiSW5mbyhTaGFkZXJJbnRlcmZhY2VWYXJpYWJsZUlu
Zm9NYXAgKmluZm9NYXAsCiB9CiAKIHZvaWQgQXNzaWduVHJhbnNmb3JtRmVlZGJhY2tFbXVsYXRp
b25CaW5kaW5ncyhnbDo6U2hhZGVyVHlwZSBzaGFkZXJUeXBlLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdsOjpQcm9ncmFtU3RhdGUgJnByb2dy
YW1TdGF0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBnbDo6UHJvZ3JhbUV4ZWN1dGFibGUgJnByb2dyYW1FeGVjdXRhYmxlLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgaXNUcmFuc2Zvcm1GZWVk
YmFja1N0YWdlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEdsc2xhbmdQcm9ncmFtSW50ZXJmYWNlSW5mbyAqcHJvZ3JhbUludGVyZmFjZUluZm8sCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2hhZGVySW50ZXJmYWNl
VmFyaWFibGVJbmZvTWFwICp2YXJpYWJsZUluZm9NYXBPdXQpCkBAIC0yMjEsMTAgKzIyNiwxMSBA
QCB2b2lkIEFzc2lnblRyYW5zZm9ybUZlZWRiYWNrRW11bGF0aW9uQmluZGluZ3MoZ2w6OlNoYWRl
clR5cGUgc2hhZGVyVHlwZSwKICAgICBzaXplX3QgYnVmZmVyQ291bnQgPSAwOwogICAgIGlmIChp
c1RyYW5zZm9ybUZlZWRiYWNrU3RhZ2UpCiAgICAgewotICAgICAgICBBU1NFUlQoIXByb2dyYW1T
dGF0ZS5nZXRMaW5rZWRUcmFuc2Zvcm1GZWVkYmFja1ZhcnlpbmdzKCkuZW1wdHkoKSk7CisgICAg
ICAgIEFTU0VSVCghcHJvZ3JhbUV4ZWN1dGFibGUuZ2V0TGlua2VkVHJhbnNmb3JtRmVlZGJhY2tW
YXJ5aW5ncygpLmVtcHR5KCkpOwogICAgICAgICBjb25zdCBib29sIGlzSW50ZXJsZWF2ZWQgPQot
ICAgICAgICAgICAgcHJvZ3JhbVN0YXRlLmdldFRyYW5zZm9ybUZlZWRiYWNrQnVmZmVyTW9kZSgp
ID09IEdMX0lOVEVSTEVBVkVEX0FUVFJJQlM7Ci0gICAgICAgIGJ1ZmZlckNvdW50ID0gaXNJbnRl
cmxlYXZlZCA/IDEgOiBwcm9ncmFtU3RhdGUuZ2V0TGlua2VkVHJhbnNmb3JtRmVlZGJhY2tWYXJ5
aW5ncygpLnNpemUoKTsKKyAgICAgICAgICAgIHByb2dyYW1FeGVjdXRhYmxlLmdldFRyYW5zZm9y
bUZlZWRiYWNrQnVmZmVyTW9kZSgpID09IEdMX0lOVEVSTEVBVkVEX0FUVFJJQlM7CisgICAgICAg
IGJ1ZmZlckNvdW50ID0KKyAgICAgICAgICAgIGlzSW50ZXJsZWF2ZWQgPyAxIDogcHJvZ3JhbUV4
ZWN1dGFibGUuZ2V0TGlua2VkVHJhbnNmb3JtRmVlZGJhY2tWYXJ5aW5ncygpLnNpemUoKTsKICAg
ICB9CiAKICAgICAvLyBBZGQgZW50cmllcyBmb3IgdGhlIHRyYW5zZm9ybSBmZWVkYmFjayBidWZm
ZXJzIHRvIHRoZSBpbmZvIG1hcCwgc28gdGhleSBjYW4gaGF2ZSBjb3JyZWN0CkBAIC0yMzIsNyAr
MjM4LDcgQEAgdm9pZCBBc3NpZ25UcmFuc2Zvcm1GZWVkYmFja0VtdWxhdGlvbkJpbmRpbmdzKGds
OjpTaGFkZXJUeXBlIHNoYWRlclR5cGUsCiAgICAgZm9yICh1aW50MzJfdCBidWZmZXJJbmRleCA9
IDA7IGJ1ZmZlckluZGV4IDwgYnVmZmVyQ291bnQ7ICsrYnVmZmVySW5kZXgpCiAgICAgewogICAg
ICAgICBBZGRSZXNvdXJjZUluZm8odmFyaWFibGVJbmZvTWFwT3V0LCBnbDo6U2hhZGVyQml0U2V0
KCkuc2V0KHNoYWRlclR5cGUpLCBzaGFkZXJUeXBlLAotICAgICAgICAgICAgICAgICAgICAgICAg
R2V0WGZiQnVmZmVyTmFtZShidWZmZXJJbmRleCksCisgICAgICAgICAgICAgICAgICAgICAgICBT
aGFkZXJWYXJpYWJsZVR5cGU6OlRyYW5zZm9ybUZlZWRiYWNrLCBHZXRYZmJCdWZmZXJOYW1lKGJ1
ZmZlckluZGV4KSwKICAgICAgICAgICAgICAgICAgICAgICAgIHByb2dyYW1JbnRlcmZhY2VJbmZv
LT51bmlmb3Jtc0FuZFhmYkRlc2NyaXB0b3JTZXRJbmRleCwKICAgICAgICAgICAgICAgICAgICAg
ICAgIHByb2dyYW1JbnRlcmZhY2VJbmZvLT5jdXJyZW50VW5pZm9ybUJpbmRpbmdJbmRleCk7CiAg
ICAgICAgICsrcHJvZ3JhbUludGVyZmFjZUluZm8tPmN1cnJlbnRVbmlmb3JtQmluZGluZ0luZGV4
OwpAQCAtMjQyLDcgKzI0OCw4IEBAIHZvaWQgQXNzaWduVHJhbnNmb3JtRmVlZGJhY2tFbXVsYXRp
b25CaW5kaW5ncyhnbDo6U2hhZGVyVHlwZSBzaGFkZXJUeXBlLAogICAgIGZvciAodWludDMyX3Qg
YnVmZmVySW5kZXggPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4oYnVmZmVyQ291bnQpOwogICAgICAg
ICAgYnVmZmVySW5kZXggPCBnbDo6SU1QTEVNRU5UQVRJT05fTUFYX1RSQU5TRk9STV9GRUVEQkFD
S19CVUZGRVJTOyArK2J1ZmZlckluZGV4KQogICAgIHsKLSAgICAgICAgdmFyaWFibGVJbmZvTWFw
T3V0LT5hZGQoc2hhZGVyVHlwZSwgR2V0WGZiQnVmZmVyTmFtZShidWZmZXJJbmRleCkpOworICAg
ICAgICB2YXJpYWJsZUluZm9NYXBPdXQtPmFkZChzaGFkZXJUeXBlLCBTaGFkZXJWYXJpYWJsZVR5
cGU6OlRyYW5zZm9ybUZlZWRiYWNrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBH
ZXRYZmJCdWZmZXJOYW1lKGJ1ZmZlckluZGV4KSk7CiAgICAgfQogfQogCkBAIC0yOTIsMTcgKzI5
OSwxNyBAQCB2b2lkIEFzc2lnbkF0dHJpYnV0ZUxvY2F0aW9ucyhjb25zdCBnbDo6UHJvZ3JhbUV4
ZWN1dGFibGUgJnByb2dyYW1FeGVjdXRhYmxlLAogICAgICAgICBjb25zdCB1aW50OF90IGNvbXBv
bmVudENvdW50ID0gaXNNYXRyaXggPyByb3dDb3VudCA6IGNvbENvdW50OwogICAgICAgICBjb25z
dCB1aW50OF90IGxvY2F0aW9uQ291bnQgID0gaXNNYXRyaXggPyBjb2xDb3VudCA6IHJvd0NvdW50
OwogCi0gICAgICAgIEFkZExvY2F0aW9uSW5mbyh2YXJpYWJsZUluZm9NYXBPdXQsIHNoYWRlclR5
cGUsIGF0dHJpYnV0ZS5tYXBwZWROYW1lLCBhdHRyaWJ1dGUubG9jYXRpb24sCisgICAgICAgIEFk
ZExvY2F0aW9uSW5mbyh2YXJpYWJsZUluZm9NYXBPdXQsIHNoYWRlclR5cGUsIFNoYWRlclZhcmlh
YmxlVHlwZTo6QXR0cmlidXRlLAorICAgICAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlLm1h
cHBlZE5hbWUsIGF0dHJpYnV0ZS5sb2NhdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgIFNo
YWRlckludGVyZmFjZVZhcmlhYmxlSW5mbzo6a0ludmFsaWQsIGNvbXBvbmVudENvdW50LCBsb2Nh
dGlvbkNvdW50KTsKICAgICB9CiB9CiAKLXZvaWQgQXNzaWduU2Vjb25kYXJ5T3V0cHV0TG9jYXRp
b25zKGNvbnN0IGdsOjpQcm9ncmFtU3RhdGUgJnByb2dyYW1TdGF0ZSwKK3ZvaWQgQXNzaWduU2Vj
b25kYXJ5T3V0cHV0TG9jYXRpb25zKGNvbnN0IGdsOjpQcm9ncmFtRXhlY3V0YWJsZSAmcHJvZ3Jh
bUV4ZWN1dGFibGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTaGFkZXJJ
bnRlcmZhY2VWYXJpYWJsZUluZm9NYXAgKnZhcmlhYmxlSW5mb01hcE91dCkKIHsKLSAgICBjb25z
dCBhdXRvICZzZWNvbmRhcnlPdXRwdXRMb2NhdGlvbnMgPQotICAgICAgICBwcm9ncmFtU3RhdGUu
Z2V0RXhlY3V0YWJsZSgpLmdldFNlY29uZGFyeU91dHB1dExvY2F0aW9ucygpOwotICAgIGNvbnN0
IGF1dG8gJm91dHB1dFZhcmlhYmxlcyA9IHByb2dyYW1TdGF0ZS5nZXRFeGVjdXRhYmxlKCkuZ2V0
T3V0cHV0VmFyaWFibGVzKCk7CisgICAgY29uc3QgYXV0byAmc2Vjb25kYXJ5T3V0cHV0TG9jYXRp
b25zID0gcHJvZ3JhbUV4ZWN1dGFibGUuZ2V0U2Vjb25kYXJ5T3V0cHV0TG9jYXRpb25zKCk7Cisg
ICAgY29uc3QgYXV0byAmb3V0cHV0VmFyaWFibGVzICAgICAgICAgID0gcHJvZ3JhbUV4ZWN1dGFi
bGUuZ2V0T3V0cHV0VmFyaWFibGVzKCk7CiAKICAgICAvLyBIYW5kbGUgRVhUX2JsZW5kX2Z1bmNf
ZXh0ZW5kZWQgc2Vjb25kYXJ5IG91dHB1dHMgKG9uZXMgd2l0aCBpbmRleD0xKQogICAgIGZvciAo
Y29uc3QgZ2w6OlZhcmlhYmxlTG9jYXRpb24gJm91dHB1dExvY2F0aW9uIDogc2Vjb25kYXJ5T3V0
cHV0TG9jYXRpb25zKQpAQCAtMzE3LDkgKzMyNCw5IEBAIHZvaWQgQXNzaWduU2Vjb25kYXJ5T3V0
cHV0TG9jYXRpb25zKGNvbnN0IGdsOjpQcm9ncmFtU3RhdGUgJnByb2dyYW1TdGF0ZSwKICAgICAg
ICAgICAgICAgICBsb2NhdGlvbiA9IG91dHB1dFZhci5sb2NhdGlvbjsKICAgICAgICAgICAgIH0K
IAotICAgICAgICAgICAgU2hhZGVySW50ZXJmYWNlVmFyaWFibGVJbmZvICppbmZvID0KLSAgICAg
ICAgICAgICAgICBBZGRMb2NhdGlvbkluZm8odmFyaWFibGVJbmZvTWFwT3V0LCBnbDo6U2hhZGVy
VHlwZTo6RnJhZ21lbnQsIG91dHB1dFZhci5tYXBwZWROYW1lLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBsb2NhdGlvbiwgU2hhZGVySW50ZXJmYWNlVmFyaWFibGVJbmZvOjprSW52
YWxpZCwgMCwgMCk7CisgICAgICAgICAgICBTaGFkZXJJbnRlcmZhY2VWYXJpYWJsZUluZm8gKmlu
Zm8gPSBBZGRMb2NhdGlvbkluZm8oCisgICAgICAgICAgICAgICAgdmFyaWFibGVJbmZvTWFwT3V0
LCBnbDo6U2hhZGVyVHlwZTo6RnJhZ21lbnQsIFNoYWRlclZhcmlhYmxlVHlwZTo6U2Vjb25kYXJ5
T3V0cHV0LAorICAgICAgICAgICAgICAgIG91dHB1dFZhci5tYXBwZWROYW1lLCBsb2NhdGlvbiwg
U2hhZGVySW50ZXJmYWNlVmFyaWFibGVJbmZvOjprSW52YWxpZCwgMCwgMCk7CiAKICAgICAgICAg
ICAgIC8vIElmIHRoZSBzaGFkZXIgc291cmNlIGhhcyBub3Qgc3BlY2lmaWVkIHRoZSBpbmRleCwg
c3BlY2lmeSBpdCBoZXJlLgogICAgICAgICAgICAgaWYgKG91dHB1dFZhci5pbmRleCA9PSAtMSkK
QEAgLTMzMSwzNiArMzM4LDM2IEBAIHZvaWQgQXNzaWduU2Vjb25kYXJ5T3V0cHV0TG9jYXRpb25z
KGNvbnN0IGdsOjpQcm9ncmFtU3RhdGUgJnByb2dyYW1TdGF0ZSwKICAgICAgICAgfQogICAgIH0K
ICAgICAvLyBIYW5kbGUgc2Vjb25kYXJ5IG91dHB1dHMgZm9yIEVTU0wgdmVyc2lvbiBsZXNzIHRo
YW4gMy4wMAotICAgIGdsOjpTaGFkZXIgKmZyYWdtZW50U2hhZGVyID0gcHJvZ3JhbVN0YXRlLmdl
dEF0dGFjaGVkU2hhZGVyKGdsOjpTaGFkZXJUeXBlOjpGcmFnbWVudCk7Ci0gICAgaWYgKGZyYWdt
ZW50U2hhZGVyICYmIGZyYWdtZW50U2hhZGVyLT5nZXRTaGFkZXJWZXJzaW9uKCkgPT0gMTAwKQor
ICAgIGlmIChwcm9ncmFtRXhlY3V0YWJsZS5oYXNMaW5rZWRTaGFkZXJTdGFnZShnbDo6U2hhZGVy
VHlwZTo6RnJhZ21lbnQpICYmCisgICAgICAgIHByb2dyYW1FeGVjdXRhYmxlLmdldExpbmtlZFNo
YWRlclZlcnNpb24oZ2w6OlNoYWRlclR5cGU6OkZyYWdtZW50KSA9PSAxMDApCiAgICAgewotICAg
ICAgICBjb25zdCBhdXRvICZzaGFkZXJPdXRwdXRzID0gZnJhZ21lbnRTaGFkZXItPmdldEFjdGl2
ZU91dHB1dFZhcmlhYmxlcygpOwotICAgICAgICBmb3IgKGNvbnN0IGF1dG8gJm91dHB1dFZhciA6
IHNoYWRlck91dHB1dHMpCisgICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPHNoOjpTaGFkZXJWYXJp
YWJsZT4gJnNoYWRlck91dHB1dHMgPQorICAgICAgICAgICAgcHJvZ3JhbUV4ZWN1dGFibGUuZ2V0
T3V0cHV0VmFyaWFibGVzKCk7CisgICAgICAgIGZvciAoY29uc3Qgc2g6OlNoYWRlclZhcmlhYmxl
ICZvdXRwdXRWYXIgOiBzaGFkZXJPdXRwdXRzKQogICAgICAgICB7CiAgICAgICAgICAgICBpZiAo
b3V0cHV0VmFyLm5hbWUgPT0gImdsX1NlY29uZGFyeUZyYWdDb2xvckVYVCIpCiAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgQWRkTG9jYXRpb25JbmZvKHZhcmlhYmxlSW5mb01hcE91dCwg
Z2w6OlNoYWRlclR5cGU6OkZyYWdtZW50LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAid2ViZ2xfU2Vjb25kYXJ5RnJhZ0NvbG9yIiwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgU2hhZGVyVmFyaWFibGVUeXBlOjpTZWNvbmRhcnlPdXRwdXQsICJ3ZWJnbF9TZWNv
bmRhcnlGcmFnQ29sb3IiLCAwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTaGFk
ZXJJbnRlcmZhY2VWYXJpYWJsZUluZm86OmtJbnZhbGlkLCAwLCAwKTsKICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIGVsc2UgaWYgKG91dHB1dFZhci5uYW1lID09ICJnbF9TZWNvbmRhcnlGcmFn
RGF0YUVYVCIpCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgQWRkTG9jYXRpb25JbmZv
KHZhcmlhYmxlSW5mb01hcE91dCwgZ2w6OlNoYWRlclR5cGU6OkZyYWdtZW50LAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAid2ViZ2xfU2Vjb25kYXJ5RnJhZ0RhdGEiLCAwLCBTaGFk
ZXJJbnRlcmZhY2VWYXJpYWJsZUluZm86OmtJbnZhbGlkLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAwLCAwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2hhZGVy
VmFyaWFibGVUeXBlOjpTZWNvbmRhcnlPdXRwdXQsICJ3ZWJnbF9TZWNvbmRhcnlGcmFnRGF0YSIs
IDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNoYWRlckludGVyZmFjZVZhcmlh
YmxlSW5mbzo6a0ludmFsaWQsIDAsIDApOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAg
fQogfQogCi12b2lkIEFzc2lnbk91dHB1dExvY2F0aW9ucyhjb25zdCBnbDo6UHJvZ3JhbVN0YXRl
ICZwcm9ncmFtU3RhdGUsCit2b2lkIEFzc2lnbk91dHB1dExvY2F0aW9ucyhjb25zdCBnbDo6UHJv
Z3JhbUV4ZWN1dGFibGUgJnByb2dyYW1FeGVjdXRhYmxlLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29uc3QgZ2w6OlNoYWRlclR5cGUgc2hhZGVyVHlwZSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFNoYWRlckludGVyZmFjZVZhcmlhYmxlSW5mb01hcCAqdmFyaWFibGVJbmZvTWFw
T3V0KQogewogICAgIC8vIEFzc2lnbiBvdXRwdXQgbG9jYXRpb25zIGZvciB0aGUgZnJhZ21lbnQg
c2hhZGVyLgogICAgIEFTU0VSVChzaGFkZXJUeXBlID09IGdsOjpTaGFkZXJUeXBlOjpGcmFnbWVu
dCk7CiAKLSAgICBjb25zdCBnbDo6UHJvZ3JhbUV4ZWN1dGFibGUgJnByb2dyYW1FeGVjdXRhYmxl
ICAgPSBwcm9ncmFtU3RhdGUuZ2V0RXhlY3V0YWJsZSgpOwogICAgIGNvbnN0IGF1dG8gJm91dHB1
dExvY2F0aW9ucyAgICAgICAgICAgICAgICAgICAgICA9IHByb2dyYW1FeGVjdXRhYmxlLmdldE91
dHB1dExvY2F0aW9ucygpOwogICAgIGNvbnN0IGF1dG8gJm91dHB1dFZhcmlhYmxlcyAgICAgICAg
ICAgICAgICAgICAgICA9IHByb2dyYW1FeGVjdXRhYmxlLmdldE91dHB1dFZhcmlhYmxlcygpOwog
ICAgIGNvbnN0IHN0ZDo6YXJyYXk8c3RkOjpzdHJpbmcsIDM+IGltcGxpY2l0T3V0cHV0cyA9IHsi
Z2xfRnJhZ0RlcHRoIiwgImdsX1NhbXBsZU1hc2siLApAQCAtMzg2LDIwICszOTMsMjMgQEAgdm9p
ZCBBc3NpZ25PdXRwdXRMb2NhdGlvbnMoY29uc3QgZ2w6OlByb2dyYW1TdGF0ZSAmcHJvZ3JhbVN0
YXRlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbXBsaWNp
dE91dHB1dHMuYmVnaW4oKSwgaW1wbGljaXRPdXRwdXRzLmVuZCgpKSA9PSAxKTsKICAgICAgICAg
ICAgIH0KIAotICAgICAgICAgICAgQWRkTG9jYXRpb25JbmZvKHZhcmlhYmxlSW5mb01hcE91dCwg
c2hhZGVyVHlwZSwgb3V0cHV0VmFyLm1hcHBlZE5hbWUsIGxvY2F0aW9uLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFNoYWRlckludGVyZmFjZVZhcmlhYmxlSW5mbzo6a0ludmFsaWQsIDAs
IDApOworICAgICAgICAgICAgQWRkTG9jYXRpb25JbmZvKHZhcmlhYmxlSW5mb01hcE91dCwgc2hh
ZGVyVHlwZSwgU2hhZGVyVmFyaWFibGVUeXBlOjpPdXRwdXQsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgb3V0cHV0VmFyLm1hcHBlZE5hbWUsIGxvY2F0aW9uLCBTaGFkZXJJbnRlcmZhY2VW
YXJpYWJsZUluZm86OmtJbnZhbGlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDAp
OwogICAgICAgICB9CiAgICAgfQogCi0gICAgQXNzaWduU2Vjb25kYXJ5T3V0cHV0TG9jYXRpb25z
KHByb2dyYW1TdGF0ZSwgdmFyaWFibGVJbmZvTWFwT3V0KTsKKyAgICBBc3NpZ25TZWNvbmRhcnlP
dXRwdXRMb2NhdGlvbnMocHJvZ3JhbUV4ZWN1dGFibGUsIHZhcmlhYmxlSW5mb01hcE91dCk7CiAK
ICAgICAvLyBXaGVuIG5vIGZyYWdtZW50IG91dHB1dCBpcyBzcGVjaWZpZWQgYnkgdGhlIHNoYWRl
ciwgdGhlIHRyYW5zbGF0b3Igb3V0cHV0cyB3ZWJnbF9GcmFnQ29sb3Igb3IKICAgICAvLyB3ZWJn
bF9GcmFnRGF0YS4gIEFkZCBhbiBlbnRyeSBmb3IgdGhlc2UuICBFdmVuIHRob3VnaCB0aGUgdHJh
bnNsYXRvciBpcyBhbHJlYWR5IGFzc2lnbmluZwogICAgIC8vIGxvY2F0aW9uIDAgdG8gdGhlc2Ug
ZW50cmllcywgYWRkaW5nIGFuIGVudHJ5IGZvciB0aGVtIGhlcmUgYWxsb3dzIHVzIHRvIEFTU0VS
VCB0aGF0IGV2ZXJ5CiAgICAgLy8gc2hhZGVyIGludGVyZmFjZSB2YXJpYWJsZSBpcyBwcm9jZXNz
ZWQgZHVyaW5nIHRoZSBTUElSLVYgdHJhbnNmb3JtYXRpb24uICBUaGlzIGlzIGRvbmUgd2hlbgog
ICAgIC8vIGl0ZXJhdGluZyB0aGUgaWRzIHByb3ZpZGVkIGJ5IE9wRW50cnlQb2ludC4KLSAgICBB
ZGRMb2NhdGlvbkluZm8odmFyaWFibGVJbmZvTWFwT3V0LCBzaGFkZXJUeXBlLCAid2ViZ2xfRnJh
Z0NvbG9yIiwgMCwgMCwgMCwgMCk7Ci0gICAgQWRkTG9jYXRpb25JbmZvKHZhcmlhYmxlSW5mb01h
cE91dCwgc2hhZGVyVHlwZSwgIndlYmdsX0ZyYWdEYXRhIiwgMCwgMCwgMCwgMCk7CisgICAgQWRk
TG9jYXRpb25JbmZvKHZhcmlhYmxlSW5mb01hcE91dCwgc2hhZGVyVHlwZSwgU2hhZGVyVmFyaWFi
bGVUeXBlOjpPdXRwdXQsICJ3ZWJnbF9GcmFnQ29sb3IiLAorICAgICAgICAgICAgICAgICAgICAw
LCAwLCAwLCAwKTsKKyAgICBBZGRMb2NhdGlvbkluZm8odmFyaWFibGVJbmZvTWFwT3V0LCBzaGFk
ZXJUeXBlLCBTaGFkZXJWYXJpYWJsZVR5cGU6Ok91dHB1dCwgIndlYmdsX0ZyYWdEYXRhIiwgMCwK
KyAgICAgICAgICAgICAgICAgICAgMCwgMCwgMCk7CiB9CiAKIHZvaWQgQXNzaWduVmFyeWluZ0xv
Y2F0aW9ucyhjb25zdCBHbHNsYW5nU291cmNlT3B0aW9ucyAmb3B0aW9ucywKQEAgLTQxNyw5ICs0
MjcsOSBAQCB2b2lkIEFzc2lnblZhcnlpbmdMb2NhdGlvbnMoY29uc3QgR2xzbGFuZ1NvdXJjZU9w
dGlvbnMgJm9wdGlvbnMsCiAgICAgewogICAgICAgICB1aW50MzJfdCBsaW5lUmFzdGVyRW11bGF0
aW9uUG9zaXRpb25Mb2NhdGlvbiA9IGxvY2F0aW9uc1VzZWRGb3JFbXVsYXRpb24rKzsKIAotICAg
ICAgICBBZGRMb2NhdGlvbkluZm8odmFyaWFibGVJbmZvTWFwT3V0LCBzaGFkZXJUeXBlLCBzaDo6
dms6OmtMaW5lUmFzdGVyRW11bGF0aW9uUG9zaXRpb24sCi0gICAgICAgICAgICAgICAgICAgICAg
ICBsaW5lUmFzdGVyRW11bGF0aW9uUG9zaXRpb25Mb2NhdGlvbiwgU2hhZGVySW50ZXJmYWNlVmFy
aWFibGVJbmZvOjprSW52YWxpZCwKLSAgICAgICAgICAgICAgICAgICAgICAgIDAsIDApOworICAg
ICAgICBBZGRMb2NhdGlvbkluZm8odmFyaWFibGVJbmZvTWFwT3V0LCBzaGFkZXJUeXBlLCBTaGFk
ZXJWYXJpYWJsZVR5cGU6OlZhcnlpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICBzaDo6dms6
OmtMaW5lUmFzdGVyRW11bGF0aW9uUG9zaXRpb24sIGxpbmVSYXN0ZXJFbXVsYXRpb25Qb3NpdGlv
bkxvY2F0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgU2hhZGVySW50ZXJmYWNlVmFyaWFi
bGVJbmZvOjprSW52YWxpZCwgMCwgMCk7CiAgICAgfQogCiAgICAgLy8gQXNzaWduIHZhcnlpbmcg
bG9jYXRpb25zLgpAQCAtNDcwLDEzICs0ODAsMTQgQEAgdm9pZCBBc3NpZ25WYXJ5aW5nTG9jYXRp
b25zKGNvbnN0IEdsc2xhbmdTb3VyY2VPcHRpb25zICZvcHRpb25zLAogCiAgICAgICAgIC8vIElm
IG5hbWUgaXMgYWxyZWFkeSBpbiB0aGUgbWFwLCBpdCB3aWxsIGF1dG9tYXRpY2FsbHkgaGF2ZSBt
YXJrZWQgYWxsIG90aGVyIHN0YWdlcwogICAgICAgICAvLyBpbmFjdGl2ZS4KLSAgICAgICAgaWYg
KHZhcmlhYmxlSW5mb01hcE91dC0+Y29udGFpbnMoc2hhZGVyVHlwZSwgdmFyeWluZ05hbWUpKQor
ICAgICAgICBpZiAodmFyaWFibGVJbmZvTWFwT3V0LT5oYXNWYXJpYWJsZShzaGFkZXJUeXBlLCB2
YXJ5aW5nTmFtZSkpCiAgICAgICAgIHsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9
CiAKICAgICAgICAgLy8gT3RoZXJ3aXNlLCBhZGQgYW4gZW50cnkgZm9yIGl0IHdpdGggYWxsIGxv
Y2F0aW9ucyBpbmFjdGl2ZS4KLSAgICAgICAgU2hhZGVySW50ZXJmYWNlVmFyaWFibGVJbmZvICZp
bmZvID0gdmFyaWFibGVJbmZvTWFwT3V0LT5hZGRPckdldChzaGFkZXJUeXBlLCB2YXJ5aW5nTmFt
ZSk7CisgICAgICAgIFNoYWRlckludGVyZmFjZVZhcmlhYmxlSW5mbyAmaW5mbyA9CisgICAgICAg
ICAgICB2YXJpYWJsZUluZm9NYXBPdXQtPmFkZE9yR2V0KHNoYWRlclR5cGUsIFNoYWRlclZhcmlh
YmxlVHlwZTo6VmFyeWluZywgdmFyeWluZ05hbWUpOwogICAgICAgICBBU1NFUlQoaW5mby5sb2Nh
dGlvbiA9PSBTaGFkZXJJbnRlcmZhY2VWYXJpYWJsZUluZm86OmtJbnZhbGlkKTsKICAgICB9CiAK
QEAgLTQ4OCw3ICs0OTksOCBAQCB2b2lkIEFzc2lnblZhcnlpbmdMb2NhdGlvbnMoY29uc3QgR2xz
bGFuZ1NvdXJjZU9wdGlvbnMgJm9wdGlvbnMsCiAgICAgewogICAgICAgICBBU1NFUlQoZ2w6Oklz
QnVpbHRJbk5hbWUoYnVpbHRJbk5hbWUpKTsKIAotICAgICAgICBTaGFkZXJJbnRlcmZhY2VWYXJp
YWJsZUluZm8gJmluZm8gPSB2YXJpYWJsZUluZm9NYXBPdXQtPmFkZE9yR2V0KHNoYWRlclR5cGUs
IGJ1aWx0SW5OYW1lKTsKKyAgICAgICAgU2hhZGVySW50ZXJmYWNlVmFyaWFibGVJbmZvICZpbmZv
ID0KKyAgICAgICAgICAgIHZhcmlhYmxlSW5mb01hcE91dC0+YWRkT3JHZXQoc2hhZGVyVHlwZSwg
U2hhZGVyVmFyaWFibGVUeXBlOjpWYXJ5aW5nLCBidWlsdEluTmFtZSk7CiAgICAgICAgIGluZm8u
YWN0aXZlU3RhZ2VzLnNldChzaGFkZXJUeXBlKTsKICAgICAgICAgaW5mby52YXJ5aW5nSXNPdXRw
dXQgPSB0cnVlOwogICAgIH0KQEAgLTUwMiwxOCArNTE0LDE5IEBAIHZvaWQgQXNzaWduVmFyeWlu
Z0xvY2F0aW9ucyhjb25zdCBHbHNsYW5nU291cmNlT3B0aW9ucyAmb3B0aW9ucywKICAgICAgICAg
ICAgIEFTU0VSVChnbDo6SXNCdWlsdEluTmFtZShidWlsdEluTmFtZSkpOwogCiAgICAgICAgICAg
ICBTaGFkZXJJbnRlcmZhY2VWYXJpYWJsZUluZm8gJmluZm8gPQotICAgICAgICAgICAgICAgIHZh
cmlhYmxlSW5mb01hcE91dC0+YWRkT3JHZXQoc2hhZGVyVHlwZSwgYnVpbHRJbk5hbWUpOworICAg
ICAgICAgICAgICAgIHZhcmlhYmxlSW5mb01hcE91dC0+YWRkT3JHZXQoc2hhZGVyVHlwZSwgU2hh
ZGVyVmFyaWFibGVUeXBlOjpWYXJ5aW5nLCBidWlsdEluTmFtZSk7CiAgICAgICAgICAgICBpbmZv
LmFjdGl2ZVN0YWdlcy5zZXQoc2hhZGVyVHlwZSk7CiAgICAgICAgICAgICBpbmZvLnZhcnlpbmdJ
c0lucHV0ID0gdHJ1ZTsKICAgICAgICAgfQogICAgIH0KIAogICAgIC8vIEFkZCBhbiBlbnRyeSBm
b3IgZ2xfUGVyVmVydGV4LCBmb3IgdXNlIHdpdGggdHJhbnNmb3JtIGZlZWRiYWNrIGNhcHR1cmUg
b2YgYnVpbHQtaW5zLgotICAgIFNoYWRlckludGVyZmFjZVZhcmlhYmxlSW5mbyAmaW5mbyA9IHZh
cmlhYmxlSW5mb01hcE91dC0+YWRkT3JHZXQoc2hhZGVyVHlwZSwgImdsX1BlclZlcnRleCIpOwor
ICAgIFNoYWRlckludGVyZmFjZVZhcmlhYmxlSW5mbyAmaW5mbyA9CisgICAgICAgIHZhcmlhYmxl
SW5mb01hcE91dC0+YWRkT3JHZXQoc2hhZGVyVHlwZSwgU2hhZGVyVmFyaWFibGVUeXBlOjpWYXJ5
aW5nLCAiZ2xfUGVyVmVydGV4Iik7CiAgICAgaW5mby5hY3RpdmVTdGFnZXMuc2V0KHNoYWRlclR5
cGUpOwogfQogCi0vLyBDYWxjdWxhdGVzIFhGQiBsYXlvdXQgcXVhbGlmaWVyIGFyZ3VtZW50cyBm
b3IgZWFjaCB0cmFuZm9ybSBmZWVkYmFjayB2YXJ5aW5nLiAgU3RvcmVzIGNhbGN1bGF0ZWQKKy8v
IENhbGN1bGF0ZXMgWEZCIGxheW91dCBxdWFsaWZpZXIgYXJndW1lbnRzIGZvciBlYWNoIHRyYW5z
Zm9ybSBmZWVkYmFjayB2YXJ5aW5nLiBTdG9yZXMgY2FsY3VsYXRlZAogLy8gdmFsdWVzIGZvciB0
aGUgU1BJUi1WIHRyYW5zZm9ybWF0aW9uLgogdm9pZCBBc3NpZ25UcmFuc2Zvcm1GZWVkYmFja1F1
YWxpZmllcnMoY29uc3QgZ2w6OlByb2dyYW1FeGVjdXRhYmxlICZwcm9ncmFtRXhlY3V0YWJsZSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdsOjpWYXJ5aW5n
UGFja2luZyAmdmFyeWluZ1BhY2tpbmcsCkBAIC02NzksMTMgKzY5MiwxNSBAQCB2b2lkIEFzc2ln
blVuaWZvcm1CaW5kaW5ncyhjb25zdCBHbHNsYW5nU291cmNlT3B0aW9ucyAmb3B0aW9ucywKICAg
ICBpZiAocHJvZ3JhbUV4ZWN1dGFibGUuaGFzTGlua2VkU2hhZGVyU3RhZ2Uoc2hhZGVyVHlwZSkp
CiAgICAgewogICAgICAgICBBZGRSZXNvdXJjZUluZm8odmFyaWFibGVJbmZvTWFwT3V0LCBnbDo6
U2hhZGVyQml0U2V0KCkuc2V0KHNoYWRlclR5cGUpLCBzaGFkZXJUeXBlLAotICAgICAgICAgICAg
ICAgICAgICAgICAga0RlZmF1bHRVbmlmb3JtTmFtZXNbc2hhZGVyVHlwZV0sCisgICAgICAgICAg
ICAgICAgICAgICAgICBTaGFkZXJWYXJpYWJsZVR5cGU6OkRlZmF1bHRVbmlmb3JtLCBrRGVmYXVs
dFVuaWZvcm1OYW1lc1tzaGFkZXJUeXBlXSwKICAgICAgICAgICAgICAgICAgICAgICAgIHByb2dy
YW1JbnRlcmZhY2VJbmZvLT51bmlmb3Jtc0FuZFhmYkRlc2NyaXB0b3JTZXRJbmRleCwKICAgICAg
ICAgICAgICAgICAgICAgICAgIHByb2dyYW1JbnRlcmZhY2VJbmZvLT5jdXJyZW50VW5pZm9ybUJp
bmRpbmdJbmRleCk7CiAgICAgICAgICsrcHJvZ3JhbUludGVyZmFjZUluZm8tPmN1cnJlbnRVbmlm
b3JtQmluZGluZ0luZGV4OwogCiAgICAgICAgIC8vIEFzc2lnbiBiaW5kaW5nIHRvIHRoZSBkcml2
ZXIgdW5pZm9ybXMgYmxvY2sKLSAgICAgICAgQWRkUmVzb3VyY2VJbmZvVG9BbGxTdGFnZXModmFy
aWFibGVJbmZvTWFwT3V0LCBzaGFkZXJUeXBlLCBzaDo6dms6OmtEcml2ZXJVbmlmb3Jtc0Jsb2Nr
TmFtZSwKKyAgICAgICAgQWRkUmVzb3VyY2VJbmZvVG9BbGxTdGFnZXModmFyaWFibGVJbmZvTWFw
T3V0LCBzaGFkZXJUeXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTaGFk
ZXJWYXJpYWJsZVR5cGU6OkRyaXZlclVuaWZvcm0sCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNoOjp2azo6a0RyaXZlclVuaWZvcm1zQmxvY2tOYW1lLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwcm9ncmFtSW50ZXJmYWNlSW5mby0+ZHJpdmVyVW5pZm9y
bXNEZXNjcmlwdG9yU2V0SW5kZXgsIDApOwogICAgIH0KIH0KQEAgLTcwNSw2ICs3MjAsNyBAQCBi
b29sIEluc2VydElmQWJzZW50KFVuaWZvcm1CaW5kaW5nSW5kZXhNYXAgKnVuaWZvcm1CaW5kaW5n
SW5kZXhNYXBPdXQsCiB9CiAKIHZvaWQgQWRkQW5kVXBkYXRlUmVzb3VyY2VNYXBzKGNvbnN0IGds
OjpTaGFkZXJUeXBlIHNoYWRlclR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBT
aGFkZXJWYXJpYWJsZVR5cGUgdmFyaWFibGVUeXBlLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc3RkOjpzdHJpbmcgbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVp
bnQzMl90ICpiaW5kaW5nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCB1cGRh
dGVCaW5kaW5nLApAQCAtNzIxLDggKzczNyw4IEBAIHZvaWQgQWRkQW5kVXBkYXRlUmVzb3VyY2VN
YXBzKGNvbnN0IGdsOjpTaGFkZXJUeXBlIHNoYWRlclR5cGUsCiAgICAgfQogICAgIFVuaWZvcm1C
aW5kaW5nSW5mbyAmdW5pZm9ybUJpbmRpbmdJbmZvID0gKCp1bmlmb3JtQmluZGluZ0luZGV4TWFw
T3V0KVtuYW1lXTsKICAgICB1bmlmb3JtQmluZGluZ0luZm8uc2hhZGVyQml0U2V0LnNldChzaGFk
ZXJUeXBlKTsKLSAgICBBZGRSZXNvdXJjZUluZm8odmFyaWFibGVJbmZvTWFwT3V0LCB1bmlmb3Jt
QmluZGluZ0luZm8uc2hhZGVyQml0U2V0LCBzaGFkZXJUeXBlLCBuYW1lLAotICAgICAgICAgICAg
ICAgICAgICBkZXNjcmlwdG9yU2V0SW5kZXgsIHVuaWZvcm1CaW5kaW5nSW5mby5iaW5kaW5nSW5k
ZXgpOworICAgIEFkZFJlc291cmNlSW5mbyh2YXJpYWJsZUluZm9NYXBPdXQsIHVuaWZvcm1CaW5k
aW5nSW5mby5zaGFkZXJCaXRTZXQsIHNoYWRlclR5cGUsIHZhcmlhYmxlVHlwZSwKKyAgICAgICAg
ICAgICAgICAgICAgbmFtZSwgZGVzY3JpcHRvclNldEluZGV4LCB1bmlmb3JtQmluZGluZ0luZm8u
YmluZGluZ0luZGV4KTsKICAgICBpZiAoIWlzVW5pcXVlTmFtZSkKICAgICB7CiAgICAgICAgIGlm
ICh1cGRhdGVGcm9udFNoYWRlclR5cGUpCkBAIC03MzEsMTIgKzc0NywxMiBAQCB2b2lkIEFkZEFu
ZFVwZGF0ZVJlc291cmNlTWFwcyhjb25zdCBnbDo6U2hhZGVyVHlwZSBzaGFkZXJUeXBlLAogICAg
ICAgICB9CiAgICAgICAgIGVsc2UKICAgICAgICAgewotICAgICAgICAgICAgdmFyaWFibGVJbmZv
TWFwT3V0LT5tYXJrQXNEdXBsaWNhdGUoc2hhZGVyVHlwZSwgbmFtZSk7CisgICAgICAgICAgICB2
YXJpYWJsZUluZm9NYXBPdXQtPm1hcmtBc0R1cGxpY2F0ZShzaGFkZXJUeXBlLCB2YXJpYWJsZVR5
cGUsIG5hbWUpOwogICAgICAgICB9CiAgICAgfQotICAgIFNoYWRlckludGVyZmFjZVZhcmlhYmxl
SW5mbyAmaW5mbyA9Ci0gICAgICAgIHZhcmlhYmxlSW5mb01hcE91dC0+Z2V0KHVuaWZvcm1CaW5k
aW5nSW5mby5mcm9udFNoYWRlclR5cGUsIG5hbWUpOwotICAgIGluZm8uYWN0aXZlU3RhZ2VzID0g
dW5pZm9ybUJpbmRpbmdJbmZvLnNoYWRlckJpdFNldDsKKworICAgIHZhcmlhYmxlSW5mb01hcE91
dC0+c2V0QWN0aXZlU3RhZ2VzKHVuaWZvcm1CaW5kaW5nSW5mby5mcm9udFNoYWRlclR5cGUsIHZh
cmlhYmxlVHlwZSwgbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB1bmlmb3JtQmluZGluZ0luZm8uc2hhZGVyQml0U2V0KTsKIH0KIAogdm9pZCBBc3NpZ25JbnB1
dEF0dGFjaG1lbnRCaW5kaW5ncyhjb25zdCBHbHNsYW5nU291cmNlT3B0aW9ucyAmb3B0aW9ucywK
QEAgLTc2NCw4ICs3ODAsOSBAQCB2b2lkIEFzc2lnbklucHV0QXR0YWNobWVudEJpbmRpbmdzKGNv
bnN0IEdsc2xhbmdTb3VyY2VPcHRpb25zICZvcHRpb25zLAogICAgICAgICB7CiAgICAgICAgICAg
ICB1aW50MzJfdCBpbnB1dEF0dGFjaG1lbnRCaW5kaW5nSW5kZXggPQogICAgICAgICAgICAgICAg
IGJhc2VJbnB1dEF0dGFjaG1lbnRCaW5kaW5nSW5kZXggKyBpbnB1dEF0dGFjaG1lbnRVbmlmb3Jt
LmxvY2F0aW9uOwotICAgICAgICAgICAgQWRkQW5kVXBkYXRlUmVzb3VyY2VNYXBzKHNoYWRlclR5
cGUsIG1hcHBlZElucHV0QXR0YWNobWVudE5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgJihpbnB1dEF0dGFjaG1lbnRCaW5kaW5nSW5kZXgpLCBmYWxzZSwgZmFsc2Us
CisgICAgICAgICAgICBBZGRBbmRVcGRhdGVSZXNvdXJjZU1hcHMoc2hhZGVyVHlwZSwgU2hhZGVy
VmFyaWFibGVUeXBlOjpGcmFtZWJ1ZmZlckZldGNoLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG1hcHBlZElucHV0QXR0YWNobWVudE5hbWUsICYoaW5wdXRBdHRhY2htZW50
QmluZGluZ0luZGV4KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxz
ZSwgZmFsc2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvZ3JhbUlu
dGVyZmFjZUluZm8tPnNoYWRlclJlc291cmNlRGVzY3JpcHRvclNldEluZGV4LAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuaWZvcm1CaW5kaW5nSW5kZXhNYXBPdXQsIHZh
cmlhYmxlSW5mb01hcE91dCk7CiAgICAgICAgICAgICBoYXNGcmFnbWVudEluT3V0VmFycyA9IHRy
dWU7CkBAIC03ODUsMjMgKzgwMiwyNyBAQCB2b2lkIEFzc2lnbkludGVyZmFjZUJsb2NrQmluZGlu
Z3MoY29uc3QgR2xzbGFuZ1NvdXJjZU9wdGlvbnMgJm9wdGlvbnMsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgZ2w6OlByb2dyYW1FeGVjdXRhYmxlICZwcm9ncmFtRXhl
Y3V0YWJsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGQ6OnZl
Y3RvcjxnbDo6SW50ZXJmYWNlQmxvY2s+ICZibG9ja3MsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgZ2w6OlNoYWRlclR5cGUgc2hhZGVyVHlwZSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBTaGFkZXJWYXJpYWJsZVR5cGUgdmFyaWFibGVUeXBlLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdsc2xhbmdQcm9ncmFtSW50ZXJmYWNl
SW5mbyAqcHJvZ3JhbUludGVyZmFjZUluZm8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgVW5pZm9ybUJpbmRpbmdJbmRleE1hcCAqdW5pZm9ybUJpbmRpbmdJbmRleE1hcE91dCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTaGFkZXJJbnRlcmZhY2VWYXJpYWJs
ZUluZm9NYXAgKnZhcmlhYmxlSW5mb01hcE91dCkKIHsKLSAgICBmb3IgKGNvbnN0IGdsOjpJbnRl
cmZhY2VCbG9jayAmYmxvY2sgOiBibG9ja3MpCisgICAgZm9yICh1aW50MzJfdCBibG9ja0luZGV4
ID0gMDsgYmxvY2tJbmRleCA8IGJsb2Nrcy5zaXplKCk7ICsrYmxvY2tJbmRleCkKICAgICB7Ci0g
ICAgICAgIGlmICghYmxvY2suaXNBcnJheSB8fCBibG9jay5hcnJheUVsZW1lbnQgPT0gMCkKKyAg
ICAgICAgY29uc3QgZ2w6OkludGVyZmFjZUJsb2NrICZibG9jayA9IGJsb2Nrc1tibG9ja0luZGV4
XTsKKyAgICAgICAgLy8gVE9ETzogaHR0cDovL2FuZ2xlYnVnLmNvbS80NTIzOiBBbGwgYmxvY2tz
IHNob3VsZCBiZSBhY3RpdmUKKyAgICAgICAgaWYgKHByb2dyYW1FeGVjdXRhYmxlLmhhc0xpbmtl
ZFNoYWRlclN0YWdlKHNoYWRlclR5cGUpICYmIGJsb2NrLmlzQWN0aXZlKHNoYWRlclR5cGUpKQog
ICAgICAgICB7Ci0gICAgICAgICAgICAvLyBUT0RPOiBodHRwOi8vYW5nbGVidWcuY29tLzQ1MjM6
IEFsbCBibG9ja3Mgc2hvdWxkIGJlIGFjdGl2ZQotICAgICAgICAgICAgaWYgKHByb2dyYW1FeGVj
dXRhYmxlLmhhc0xpbmtlZFNoYWRlclN0YWdlKHNoYWRlclR5cGUpICYmIGJsb2NrLmlzQWN0aXZl
KHNoYWRlclR5cGUpKQorICAgICAgICAgICAgaWYgKCFibG9jay5pc0FycmF5IHx8IGJsb2NrLmFy
cmF5RWxlbWVudCA9PSAwKQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEFkZEFuZFVw
ZGF0ZVJlc291cmNlTWFwcyhzaGFkZXJUeXBlLCBibG9jay5tYXBwZWROYW1lLAorICAgICAgICAg
ICAgICAgIEFkZEFuZFVwZGF0ZVJlc291cmNlTWFwcyhzaGFkZXJUeXBlLCB2YXJpYWJsZVR5cGUs
IGJsb2NrLm1hcHBlZE5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICYocHJvZ3JhbUludGVyZmFjZUluZm8tPmN1cnJlbnRTaGFkZXJSZXNvdXJjZUJpbmRpbmdJ
bmRleCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUsIGZh
bHNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9ncmFtSW50
ZXJmYWNlSW5mby0+c2hhZGVyUmVzb3VyY2VEZXNjcmlwdG9yU2V0SW5kZXgsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuaWZvcm1CaW5kaW5nSW5kZXhNYXBPdXQs
IHZhcmlhYmxlSW5mb01hcE91dCk7CiAgICAgICAgICAgICB9CisgICAgICAgICAgICB2YXJpYWJs
ZUluZm9NYXBPdXQtPm1hcEluZGV4ZWRSZXNvdXJjZUJ5TmFtZShzaGFkZXJUeXBlLCB2YXJpYWJs
ZVR5cGUsIGJsb2NrSW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBibG9jay5tYXBwZWROYW1lKTsKICAgICAgICAgfQogICAgIH0K
IH0KQEAgLTgyMSw3ICs4NDIsOCBAQCB2b2lkIEFzc2lnbkF0b21pY0NvdW50ZXJCdWZmZXJCaW5k
aW5ncyhjb25zdCBHbHNsYW5nU291cmNlT3B0aW9ucyAmb3B0aW9ucywKIAogICAgIGlmIChwcm9n
cmFtRXhlY3V0YWJsZS5oYXNMaW5rZWRTaGFkZXJTdGFnZShzaGFkZXJUeXBlKSkKICAgICB7Ci0g
ICAgICAgIEFkZEFuZFVwZGF0ZVJlc291cmNlTWFwcyhzaGFkZXJUeXBlLCBzaDo6dms6OmtBdG9t
aWNDb3VudGVyc0Jsb2NrTmFtZSwKKyAgICAgICAgQWRkQW5kVXBkYXRlUmVzb3VyY2VNYXBzKHNo
YWRlclR5cGUsIFNoYWRlclZhcmlhYmxlVHlwZTo6QXRvbWljQ291bnRlciwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNoOjp2azo6a0F0b21pY0NvdW50ZXJzQmxvY2tOYW1lLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJihwcm9ncmFtSW50ZXJmYWNlSW5mby0+
Y3VycmVudFNoYWRlclJlc291cmNlQmluZGluZ0luZGV4KSwgdHJ1ZSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGZhbHNlLCBwcm9ncmFtSW50ZXJmYWNlSW5mby0+c2hhZGVyUmVz
b3VyY2VEZXNjcmlwdG9yU2V0SW5kZXgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB1bmlmb3JtQmluZGluZ0luZGV4TWFwT3V0LCB2YXJpYWJsZUluZm9NYXBPdXQpOwpAQCAtODQw
LDExICs4NjIsMTAgQEAgdm9pZCBBc3NpZ25JbWFnZUJpbmRpbmdzKGNvbnN0IEdsc2xhbmdTb3Vy
Y2VPcHRpb25zICZvcHRpb25zLAogICAgIGZvciAodW5zaWduZWQgaW50IHVuaWZvcm1JbmRleCA6
IGltYWdlVW5pZm9ybVJhbmdlKQogICAgIHsKICAgICAgICAgY29uc3QgZ2w6OkxpbmtlZFVuaWZv
cm0gJmltYWdlVW5pZm9ybSA9IHVuaWZvcm1zW3VuaWZvcm1JbmRleF07Ci0KLSAgICAgICAgc3Rk
OjpzdHJpbmcgbmFtZSA9IGltYWdlVW5pZm9ybS5tYXBwZWROYW1lOwotICAgICAgICBpZiAoR2V0
SW1hZ2VOYW1lV2l0aG91dEluZGljZXMoJm5hbWUpKQorICAgICAgICBpZiAocHJvZ3JhbUV4ZWN1
dGFibGUuaGFzTGlua2VkU2hhZGVyU3RhZ2Uoc2hhZGVyVHlwZSkpCiAgICAgICAgIHsKLSAgICAg
ICAgICAgIGlmIChwcm9ncmFtRXhlY3V0YWJsZS5oYXNMaW5rZWRTaGFkZXJTdGFnZShzaGFkZXJU
eXBlKSkKKyAgICAgICAgICAgIHN0ZDo6c3RyaW5nIG5hbWUgPSBpbWFnZVVuaWZvcm0ubWFwcGVk
TmFtZTsKKyAgICAgICAgICAgIGlmIChHZXRJbWFnZU5hbWVXaXRob3V0SW5kaWNlcygmbmFtZSkp
CiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgYm9vbCB1cGRhdGVGcm9udFNoYWRlclR5
cGUgPSBmYWxzZTsKICAgICAgICAgICAgICAgICBpZiAoKCp1bmlmb3JtQmluZGluZ0luZGV4TWFw
T3V0KS5jb3VudChuYW1lKSA+IDApCkBAIC04NTMsMTIgKzg3NCwxNSBAQCB2b2lkIEFzc2lnbklt
YWdlQmluZGluZ3MoY29uc3QgR2xzbGFuZ1NvdXJjZU9wdGlvbnMgJm9wdGlvbnMsCiAgICAgICAg
ICAgICAgICAgICAgIHVwZGF0ZUZyb250U2hhZGVyVHlwZSA9CiAgICAgICAgICAgICAgICAgICAg
ICAgICAhaW1hZ2VVbmlmb3JtLmlzQWN0aXZlKHVuaWZvcm1CaW5kaW5nSW5mby5mcm9udFNoYWRl
clR5cGUpOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBBZGRBbmRVcGRhdGVS
ZXNvdXJjZU1hcHMoc2hhZGVyVHlwZSwgbmFtZSwKKyAgICAgICAgICAgICAgICBBZGRBbmRVcGRh
dGVSZXNvdXJjZU1hcHMoc2hhZGVyVHlwZSwgU2hhZGVyVmFyaWFibGVUeXBlOjpJbWFnZSwgbmFt
ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJihwcm9ncmFtSW50
ZXJmYWNlSW5mby0+Y3VycmVudFNoYWRlclJlc291cmNlQmluZGluZ0luZGV4KSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSwgdXBkYXRlRnJvbnRTaGFkZXJU
eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9ncmFtSW50
ZXJmYWNlSW5mby0+c2hhZGVyUmVzb3VyY2VEZXNjcmlwdG9yU2V0SW5kZXgsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuaWZvcm1CaW5kaW5nSW5kZXhNYXBPdXQs
IHZhcmlhYmxlSW5mb01hcE91dCk7CiAgICAgICAgICAgICB9CisgICAgICAgICAgICB1aW50MzJf
dCBpbWFnZUluZGV4ID0gdW5pZm9ybUluZGV4IC0gaW1hZ2VVbmlmb3JtUmFuZ2UubG93KCk7Cisg
ICAgICAgICAgICB2YXJpYWJsZUluZm9NYXBPdXQtPm1hcEluZGV4ZWRSZXNvdXJjZUJ5TmFtZShz
aGFkZXJUeXBlLCBTaGFkZXJWYXJpYWJsZVR5cGU6OkltYWdlLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2VJbmRleCwgbmFtZSk7
CiAgICAgICAgIH0KICAgICB9CiB9CkBAIC04NzgsMTQgKzkwMiwxNCBAQCB2b2lkIEFzc2lnbk5v
blRleHR1cmVCaW5kaW5ncyhjb25zdCBHbHNsYW5nU291cmNlT3B0aW9ucyAmb3B0aW9ucywKIAog
ICAgIGNvbnN0IHN0ZDo6dmVjdG9yPGdsOjpJbnRlcmZhY2VCbG9jaz4gJnVuaWZvcm1CbG9ja3Mg
PSBwcm9ncmFtRXhlY3V0YWJsZS5nZXRVbmlmb3JtQmxvY2tzKCk7CiAgICAgQXNzaWduSW50ZXJm
YWNlQmxvY2tCaW5kaW5ncyhvcHRpb25zLCBwcm9ncmFtRXhlY3V0YWJsZSwgdW5pZm9ybUJsb2Nr
cywgc2hhZGVyVHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2dyYW1J
bnRlcmZhY2VJbmZvLCB1bmlmb3JtQmluZGluZ0luZGV4TWFwT3V0LAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdmFyaWFibGVJbmZvTWFwT3V0KTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFNoYWRlclZhcmlhYmxlVHlwZTo6VW5pZm9ybUJ1ZmZlciwgcHJvZ3Jh
bUludGVyZmFjZUluZm8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bmlmb3Jt
QmluZGluZ0luZGV4TWFwT3V0LCB2YXJpYWJsZUluZm9NYXBPdXQpOwogCiAgICAgY29uc3Qgc3Rk
Ojp2ZWN0b3I8Z2w6OkludGVyZmFjZUJsb2NrPiAmc3RvcmFnZUJsb2NrcyA9CiAgICAgICAgIHBy
b2dyYW1FeGVjdXRhYmxlLmdldFNoYWRlclN0b3JhZ2VCbG9ja3MoKTsKICAgICBBc3NpZ25JbnRl
cmZhY2VCbG9ja0JpbmRpbmdzKG9wdGlvbnMsIHByb2dyYW1FeGVjdXRhYmxlLCBzdG9yYWdlQmxv
Y2tzLCBzaGFkZXJUeXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvZ3Jh
bUludGVyZmFjZUluZm8sIHVuaWZvcm1CaW5kaW5nSW5kZXhNYXBPdXQsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB2YXJpYWJsZUluZm9NYXBPdXQpOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgU2hhZGVyVmFyaWFibGVUeXBlOjpTaGFkZXJTdG9yYWdlQnVmZmVy
LCBwcm9ncmFtSW50ZXJmYWNlSW5mbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHVuaWZvcm1CaW5kaW5nSW5kZXhNYXBPdXQsIHZhcmlhYmxlSW5mb01hcE91dCk7CiAKICAgICBj
b25zdCBzdGQ6OnZlY3RvcjxnbDo6QXRvbWljQ291bnRlckJ1ZmZlcj4gJmF0b21pY0NvdW50ZXJC
dWZmZXJzID0KICAgICAgICAgcHJvZ3JhbUV4ZWN1dGFibGUuZ2V0QXRvbWljQ291bnRlckJ1ZmZl
cnMoKTsKQEAgLTkxMiwyNiArOTM2LDI3IEBAIHZvaWQgQXNzaWduVGV4dHVyZUJpbmRpbmdzKGNv
bnN0IEdsc2xhbmdTb3VyY2VPcHRpb25zICZvcHRpb25zLAogICAgIHsKICAgICAgICAgY29uc3Qg
Z2w6OkxpbmtlZFVuaWZvcm0gJnNhbXBsZXJVbmlmb3JtID0gdW5pZm9ybXNbdW5pZm9ybUluZGV4
XTsKIAotICAgICAgICBpZiAoZ2w6OlNhbXBsZXJOYW1lQ29udGFpbnNOb25aZXJvQXJyYXlFbGVt
ZW50KHNhbXBsZXJVbmlmb3JtLm5hbWUpKQorICAgICAgICAvLyBUT0RPOiBodHRwOi8vYW5nbGVi
dWcuY29tLzQ1MjM6IEFsbCB1bmlmb3JtcyBzaG91bGQgYmUgYWN0aXZlCisgICAgICAgIGlmICgh
cHJvZ3JhbUV4ZWN1dGFibGUuaGFzTGlua2VkU2hhZGVyU3RhZ2Uoc2hhZGVyVHlwZSkgfHwKKyAg
ICAgICAgICAgICFzYW1wbGVyVW5pZm9ybS5pc0FjdGl2ZShzaGFkZXJUeXBlKSkKICAgICAgICAg
ewogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAoVW5pZm9y
bU5hbWVJc0luZGV4WmVybyhzYW1wbGVyVW5pZm9ybS5uYW1lKSkKKyAgICAgICAgLy8gU2FtcGxl
cnMgaW4gc3RydWN0cyBhcmUgZXh0cmFjdGVkIGFuZCByZW5hbWVkLgorICAgICAgICBjb25zdCBz
dGQ6OnN0cmluZyBzYW1wbGVyTmFtZSA9IEdsc2xhbmdHZXRNYXBwZWRTYW1wbGVyTmFtZShzYW1w
bGVyVW5pZm9ybS5uYW1lKTsKKyAgICAgICAgaWYgKCFnbDo6U2FtcGxlck5hbWVDb250YWluc05v
blplcm9BcnJheUVsZW1lbnQoc2FtcGxlclVuaWZvcm0ubmFtZSkpCiAgICAgICAgIHsKLSAgICAg
ICAgICAgIC8vIFNhbXBsZXJzIGluIHN0cnVjdHMgYXJlIGV4dHJhY3RlZCBhbmQgcmVuYW1lZC4K
LSAgICAgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nIHNhbXBsZXJOYW1lID0gR2xzbGFuZ0dldE1h
cHBlZFNhbXBsZXJOYW1lKHNhbXBsZXJVbmlmb3JtLm5hbWUpOwotCi0gICAgICAgICAgICAvLyBU
T0RPOiBodHRwOi8vYW5nbGVidWcuY29tLzQ1MjM6IEFsbCB1bmlmb3JtcyBzaG91bGQgYmUgYWN0
aXZlCi0gICAgICAgICAgICBpZiAocHJvZ3JhbUV4ZWN1dGFibGUuaGFzTGlua2VkU2hhZGVyU3Rh
Z2Uoc2hhZGVyVHlwZSkgJiYKLSAgICAgICAgICAgICAgICBzYW1wbGVyVW5pZm9ybS5pc0FjdGl2
ZShzaGFkZXJUeXBlKSkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBBZGRBbmRVcGRh
dGVSZXNvdXJjZU1hcHMoc2hhZGVyVHlwZSwgc2FtcGxlck5hbWUsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICYocHJvZ3JhbUludGVyZmFjZUluZm8tPmN1cnJlbnRU
ZXh0dXJlQmluZGluZ0luZGV4KSwgdHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZmFsc2UsIHByb2dyYW1JbnRlcmZhY2VJbmZvLT50ZXh0dXJlRGVzY3JpcHRv
clNldEluZGV4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bmlm
b3JtQmluZGluZ0luZGV4TWFwT3V0LCB2YXJpYWJsZUluZm9NYXBPdXQpOwotICAgICAgICAgICAg
fQorICAgICAgICAgICAgQVNTRVJUKFVuaWZvcm1OYW1lSXNJbmRleFplcm8oc2FtcGxlclVuaWZv
cm0ubmFtZSkpOworICAgICAgICAgICAgQWRkQW5kVXBkYXRlUmVzb3VyY2VNYXBzKHNoYWRlclR5
cGUsIFNoYWRlclZhcmlhYmxlVHlwZTo6VGV4dHVyZSwgc2FtcGxlck5hbWUsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJihwcm9ncmFtSW50ZXJmYWNlSW5mby0+Y3VycmVu
dFRleHR1cmVCaW5kaW5nSW5kZXgpLCB0cnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGZhbHNlLCBwcm9ncmFtSW50ZXJmYWNlSW5mby0+dGV4dHVyZURlc2NyaXB0b3JT
ZXRJbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bmlmb3JtQmlu
ZGluZ0luZGV4TWFwT3V0LCB2YXJpYWJsZUluZm9NYXBPdXQpOwogICAgICAgICB9CisKKyAgICAg
ICAgdWludDMyX3QgdGV4dHVyZUluZGV4ID0gdW5pZm9ybUluZGV4IC0gcHJvZ3JhbUV4ZWN1dGFi
bGUuZ2V0U2FtcGxlclVuaWZvcm1SYW5nZSgpLmxvdygpOworICAgICAgICB2YXJpYWJsZUluZm9N
YXBPdXQtPm1hcEluZGV4ZWRSZXNvdXJjZUJ5TmFtZShzaGFkZXJUeXBlLCBTaGFkZXJWYXJpYWJs
ZVR5cGU6OlRleHR1cmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHRleHR1cmVJbmRleCwgc2FtcGxlck5hbWUpOwogICAgIH0KIH0KIApAQCAt
MjEzMywxMCArMjE1OCwxMCBAQCBUcmFuc2Zvcm1hdGlvblN0YXRlIFNwaXJ2VHJhbnNmb3JtRmVl
ZGJhY2tDb2RlR2VuZXJhdG9yOjp0cmFuc2Zvcm1WYXJpYWJsZSgKICAgICB7CiAgICAgICAgIC8v
IFRoZSBBTkdMRVhmYk4gdmFyaWFibGVzIGFyZSB1bmNvbmRpdGlvbmFsbHkgZ2VuZXJhdGVkIGFu
ZCBtYXkgYmUgaW5hY3RpdmUuICBSZW1vdmUgdGhlc2UKICAgICAgICAgLy8gdmFyaWFibGVzIGlu
IHRoYXQgY2FzZS4KLSAgICAgICAgQVNTRVJUKCZpbmZvID09ICZ2YXJpYWJsZUluZm9NYXAuZ2V0
KHNoYWRlclR5cGUsIEdldFhmYkJ1ZmZlck5hbWUoMCkpIHx8Ci0gICAgICAgICAgICAgICAmaW5m
byA9PSAmdmFyaWFibGVJbmZvTWFwLmdldChzaGFkZXJUeXBlLCBHZXRYZmJCdWZmZXJOYW1lKDEp
KSB8fAotICAgICAgICAgICAgICAgJmluZm8gPT0gJnZhcmlhYmxlSW5mb01hcC5nZXQoc2hhZGVy
VHlwZSwgR2V0WGZiQnVmZmVyTmFtZSgyKSkgfHwKLSAgICAgICAgICAgICAgICZpbmZvID09ICZ2
YXJpYWJsZUluZm9NYXAuZ2V0KHNoYWRlclR5cGUsIEdldFhmYkJ1ZmZlck5hbWUoMykpKTsKKyAg
ICAgICAgQVNTRVJUKCZpbmZvID09ICZ2YXJpYWJsZUluZm9NYXAuZ2V0VmFyaWFibGVCeU5hbWUo
c2hhZGVyVHlwZSwgR2V0WGZiQnVmZmVyTmFtZSgwKSkgfHwKKyAgICAgICAgICAgICAgICZpbmZv
ID09ICZ2YXJpYWJsZUluZm9NYXAuZ2V0VmFyaWFibGVCeU5hbWUoc2hhZGVyVHlwZSwgR2V0WGZi
QnVmZmVyTmFtZSgxKSkgfHwKKyAgICAgICAgICAgICAgICZpbmZvID09ICZ2YXJpYWJsZUluZm9N
YXAuZ2V0VmFyaWFibGVCeU5hbWUoc2hhZGVyVHlwZSwgR2V0WGZiQnVmZmVyTmFtZSgyKSkgfHwK
KyAgICAgICAgICAgICAgICZpbmZvID09ICZ2YXJpYWJsZUluZm9NYXAuZ2V0VmFyaWFibGVCeU5h
bWUoc2hhZGVyVHlwZSwgR2V0WGZiQnVmZmVyTmFtZSgzKSkpOwogCiAgICAgICAgIC8vIERyb3Ag
dGhlIGRlY2xhcmF0aW9uLgogICAgICAgICByZXR1cm4gVHJhbnNmb3JtYXRpb25TdGF0ZTo6VHJh
bnNmb3JtZWQ7CkBAIC0zMjAwLDcgKzMyMjUsNyBAQCB2b2lkIFNwaXJ2VHJhbnNmb3JtZXI6Ondy
aXRlT3V0cHV0UHJvbG9ndWUoKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgLy8gV2hl
dGhlciBnbF9Qb3NpdGlvbiBzaG91bGQgYmUgdHJhbnNmb3JtZWQgdG8gYWNjb3VudCBmb3IgcHJl
cm90YXRpb24gYW5kIFZ1bGthbiBjbGlwIHNwYWNlLgorICAgIC8vIFdoZXRoZXIgZ2xfUG9zaXRp
b24gc2hvdWxkIGJlIHRyYW5zZm9ybWVkIHRvIGFjY291bnQgZm9yIHByZS1yb3RhdGlvbiBhbmQg
VnVsa2FuIGNsaXAgc3BhY2UuCiAgICAgY29uc3QgYm9vbCB0cmFuc2Zvcm1Qb3NpdGlvbiA9CiAg
ICAgICAgICFJc1JvdGF0aW9uSWRlbnRpdHkobU9wdGlvbnMucHJlUm90YXRpb24pIHx8IG1PcHRp
b25zLnRyYW5zZm9ybVBvc2l0aW9uVG9WdWxrYW5DbGlwU3BhY2U7CiAgICAgY29uc3QgYm9vbCBp
c1hmYkV4dGVuc2lvblN0YWdlID0KQEAgLTMyNTIsOCArMzI3Nyw5IEBAIHZvaWQgU3BpcnZUcmFu
c2Zvcm1lcjo6dmlzaXREZWNvcmF0ZShjb25zdCB1aW50MzJfdCAqaW5zdHJ1Y3Rpb24pCiAgICAg
ICAgIHNwaXJ2OjpMaXRlcmFsU3RyaW5nIG5hbWUgPSBtSWRzLmdldE5hbWUoaWQpOwogICAgICAg
ICBBU1NFUlQobmFtZSAhPSBudWxscHRyKTsKIAotICAgICAgICBjb25zdCBTaGFkZXJJbnRlcmZh
Y2VWYXJpYWJsZUluZm8gJmluZm8gPSBtVmFyaWFibGVJbmZvTWFwLmdldChtT3B0aW9ucy5zaGFk
ZXJUeXBlLCBuYW1lKTsKLSAgICAgICAgbVZhcmlhYmxlSW5mb0J5SWRbaWRdICAgICAgICAgICAg
ICAgICAgID0gJmluZm87CisgICAgICAgIGNvbnN0IFNoYWRlckludGVyZmFjZVZhcmlhYmxlSW5m
byAmaW5mbyA9CisgICAgICAgICAgICBtVmFyaWFibGVJbmZvTWFwLmdldFZhcmlhYmxlQnlOYW1l
KG1PcHRpb25zLnNoYWRlclR5cGUsIG5hbWUpOworICAgICAgICBtVmFyaWFibGVJbmZvQnlJZFtp
ZF0gPSAmaW5mbzsKICAgICB9CiB9CiAKQEAgLTMyNzQsMTIgKzMzMDAsMTMgQEAgdm9pZCBTcGly
dlRyYW5zZm9ybWVyOjp2aXNpdE1lbWJlck5hbWUoY29uc3QgdWludDMyX3QgKmluc3RydWN0aW9u
KQogICAgIHNwaXJ2OjpMaXRlcmFsU3RyaW5nIG5hbWU7CiAgICAgc3BpcnY6OlBhcnNlTWVtYmVy
TmFtZShpbnN0cnVjdGlvbiwgJmlkLCAmbWVtYmVyLCAmbmFtZSk7CiAKLSAgICBpZiAoIW1WYXJp
YWJsZUluZm9NYXAuY29udGFpbnMobU9wdGlvbnMuc2hhZGVyVHlwZSwgbmFtZSkpCisgICAgaWYg
KCFtVmFyaWFibGVJbmZvTWFwLmhhc1ZhcmlhYmxlKG1PcHRpb25zLnNoYWRlclR5cGUsIG5hbWUp
KQogICAgIHsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGNvbnN0IFNoYWRlckludGVy
ZmFjZVZhcmlhYmxlSW5mbyAmaW5mbyA9IG1WYXJpYWJsZUluZm9NYXAuZ2V0KG1PcHRpb25zLnNo
YWRlclR5cGUsIG5hbWUpOworICAgIGNvbnN0IFNoYWRlckludGVyZmFjZVZhcmlhYmxlSW5mbyAm
aW5mbyA9CisgICAgICAgIG1WYXJpYWJsZUluZm9NYXAuZ2V0VmFyaWFibGVCeU5hbWUobU9wdGlv
bnMuc2hhZGVyVHlwZSwgbmFtZSk7CiAKICAgICBtSWRzLnZpc2l0TWVtYmVyTmFtZShpbmZvLCBp
ZCwgbWVtYmVyLCBuYW1lKTsKIH0KQEAgLTMzNjUsNyArMzM5Miw4IEBAIHZvaWQgU3BpcnZUcmFu
c2Zvcm1lcjo6dmlzaXRWYXJpYWJsZShjb25zdCB1aW50MzJfdCAqaW5zdHJ1Y3Rpb24pCiAgICAg
fQogCiAgICAgLy8gRXZlcnkgc2hhZGVyIGludGVyZmFjZSB2YXJpYWJsZSBzaG91bGQgaGF2ZSBh
biBhc3NvY2lhdGVkIGRhdGEuCi0gICAgY29uc3QgU2hhZGVySW50ZXJmYWNlVmFyaWFibGVJbmZv
ICZpbmZvID0gbVZhcmlhYmxlSW5mb01hcC5nZXQobU9wdGlvbnMuc2hhZGVyVHlwZSwgbmFtZSk7
CisgICAgY29uc3QgU2hhZGVySW50ZXJmYWNlVmFyaWFibGVJbmZvICZpbmZvID0KKyAgICAgICAg
bVZhcmlhYmxlSW5mb01hcC5nZXRWYXJpYWJsZUJ5TmFtZShtT3B0aW9ucy5zaGFkZXJUeXBlLCBu
YW1lKTsKIAogICAgIC8vIEFzc29jaWF0ZSB0aGUgaWQgb2YgdGhpcyBuYW1lIHdpdGggaXRzIGlu
Zm8uCiAgICAgbVZhcmlhYmxlSW5mb0J5SWRbaWRdID0gJmluZm87CkBAIC00NjcyLDE4ICs0NzAw
LDExIEBAIGJvb2wgSGFzQWxpYXNpbmdBdHRyaWJ1dGVzKGNvbnN0IFNoYWRlckludGVyZmFjZVZh
cmlhYmxlSW5mb01hcCAmdmFyaWFibGVJbmZvTWFwCiB7CiAgICAgZ2w6OkF0dHJpYnV0ZXNNYXNr
IGlzTG9jYXRpb25Bc3NpZ25lZDsKIAotICAgIGZvciAoY29uc3QgYXV0byAmaW5mb0l0ZXIgOiB2
YXJpYWJsZUluZm9NYXAuZ2V0SXRlcmF0b3IoZ2w6OlNoYWRlclR5cGU6OlZlcnRleCkpCisgICAg
Zm9yIChjb25zdCBTaGFkZXJJbnRlcmZhY2VWYXJpYWJsZUluZm8gJmluZm8gOiB2YXJpYWJsZUlu
Zm9NYXAuZ2V0QXR0cmlidXRlcygpKQogICAgIHsKLSAgICAgICAgY29uc3QgU2hhZGVySW50ZXJm
YWNlVmFyaWFibGVJbmZvICZpbmZvID0gaW5mb0l0ZXIuc2Vjb25kOwotCi0gICAgICAgIC8vIEln
bm9yZSBub24gYXR0cmlidXRlIGlkcy4KLSAgICAgICAgaWYgKGluZm8uYXR0cmlidXRlQ29tcG9u
ZW50Q291bnQgPT0gMCkKLSAgICAgICAgewotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAg
IH0KLQogICAgICAgICBBU1NFUlQoaW5mby5hY3RpdmVTdGFnZXNbZ2w6OlNoYWRlclR5cGU6OlZl
cnRleF0pOwogICAgICAgICBBU1NFUlQoaW5mby5sb2NhdGlvbiAhPSBTaGFkZXJJbnRlcmZhY2VW
YXJpYWJsZUluZm86OmtJbnZhbGlkKTsKKyAgICAgICAgQVNTRVJUKGluZm8uYXR0cmlidXRlQ29t
cG9uZW50Q291bnQgPiAwKTsKICAgICAgICAgQVNTRVJUKGluZm8uYXR0cmlidXRlTG9jYXRpb25D
b3VudCA+IDApOwogCiAgICAgICAgIGZvciAodWludDhfdCBvZmZzZXQgPSAwOyBvZmZzZXQgPCBp
bmZvLmF0dHJpYnV0ZUxvY2F0aW9uQ291bnQ7ICsrb2Zmc2V0KQpAQCAtNDcyMSwxNCArNDc0Miwx
MiBAQCBib29sIEdldEltYWdlTmFtZVdpdGhvdXRJbmRpY2VzKHN0ZDo6c3RyaW5nICpuYW1lKQog
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAgICBpZiAoIVVuaWZvcm1OYW1lSXNJbmRl
eFplcm8oKm5hbWUpKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KKyAgICBi
b29sIGlzSW5kZXhaZXJvID0gVW5pZm9ybU5hbWVJc0luZGV4WmVybygqbmFtZSk7CiAKICAgICAv
LyBTdHJpcCBhbGwgaW5kaWNlcwogICAgICpuYW1lID0gbmFtZS0+c3Vic3RyKDAsIG5hbWUtPmZp
bmQoJ1snKSk7Ci0gICAgcmV0dXJuIHRydWU7CisKKyAgICByZXR1cm4gaXNJbmRleFplcm87CiB9
CiAKIHN0ZDo6c3RyaW5nIEdsc2xhbmdHZXRNYXBwZWRTYW1wbGVyTmFtZShjb25zdCBzdGQ6OnN0
cmluZyAmb3JpZ2luYWxOYW1lKQpAQCAtNDc3Miw3ICs0NzkxLDcgQEAgc3RkOjpzdHJpbmcgR2V0
WGZiQnVmZmVyTmFtZShjb25zdCB1aW50MzJfdCBidWZmZXJJbmRleCkKIH0KIAogdm9pZCBHbHNs
YW5nQXNzaWduTG9jYXRpb25zKGNvbnN0IEdsc2xhbmdTb3VyY2VPcHRpb25zICZvcHRpb25zLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdsOjpQcm9ncmFtU3RhdGUgJnByb2dy
YW1TdGF0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnbDo6UHJvZ3JhbUV4
ZWN1dGFibGUgJnByb2dyYW1FeGVjdXRhYmxlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnN0IGdsOjpQcm9ncmFtVmFyeWluZ1BhY2tpbmcgJnZhcnlpbmdQYWNraW5nLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdsOjpTaGFkZXJUeXBlIHNoYWRlclR5cGUsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2w6OlNoYWRlclR5cGUgZnJvbnRTaGFk
ZXJUeXBlLApAQCAtNDc4MSwxMyArNDgwMCwxMSBAQCB2b2lkIEdsc2xhbmdBc3NpZ25Mb2NhdGlv
bnMoY29uc3QgR2xzbGFuZ1NvdXJjZU9wdGlvbnMgJm9wdGlvbnMsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgVW5pZm9ybUJpbmRpbmdJbmRleE1hcCAqdW5pZm9ybUJpbmRpbmdJbmRleE1h
cE91dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTaGFkZXJJbnRlcmZhY2VWYXJpYWJs
ZUluZm9NYXAgKnZhcmlhYmxlSW5mb01hcE91dCkKIHsKLSAgICBjb25zdCBnbDo6UHJvZ3JhbUV4
ZWN1dGFibGUgJnByb2dyYW1FeGVjdXRhYmxlID0gcHJvZ3JhbVN0YXRlLmdldEV4ZWN1dGFibGUo
KTsKLQogICAgIC8vIEFzc2lnbiBvdXRwdXRzIHRvIHRoZSBmcmFnbWVudCBzaGFkZXIsIGlmIGFu
eS4KICAgICBpZiAoKHNoYWRlclR5cGUgPT0gZ2w6OlNoYWRlclR5cGU6OkZyYWdtZW50KSAmJgog
ICAgICAgICBwcm9ncmFtRXhlY3V0YWJsZS5oYXNMaW5rZWRTaGFkZXJTdGFnZShnbDo6U2hhZGVy
VHlwZTo6RnJhZ21lbnQpKQogICAgIHsKLSAgICAgICAgQXNzaWduT3V0cHV0TG9jYXRpb25zKHBy
b2dyYW1TdGF0ZSwgZ2w6OlNoYWRlclR5cGU6OkZyYWdtZW50LCB2YXJpYWJsZUluZm9NYXBPdXQp
OworICAgICAgICBBc3NpZ25PdXRwdXRMb2NhdGlvbnMocHJvZ3JhbUV4ZWN1dGFibGUsIGdsOjpT
aGFkZXJUeXBlOjpGcmFnbWVudCwgdmFyaWFibGVJbmZvTWFwT3V0KTsKICAgICB9CiAKICAgICAv
LyBBc3NpZ24gYXR0cmlidXRlcyB0byB0aGUgdmVydGV4IHNoYWRlciwgaWYgYW55LgpAQCAtNDc5
Nyw3ICs0ODE0LDcgQEAgdm9pZCBHbHNsYW5nQXNzaWduTG9jYXRpb25zKGNvbnN0IEdsc2xhbmdT
b3VyY2VPcHRpb25zICZvcHRpb25zLAogICAgICAgICBBc3NpZ25BdHRyaWJ1dGVMb2NhdGlvbnMo
cHJvZ3JhbUV4ZWN1dGFibGUsIGdsOjpTaGFkZXJUeXBlOjpWZXJ0ZXgsIHZhcmlhYmxlSW5mb01h
cE91dCk7CiAgICAgfQogCi0gICAgaWYgKCFwcm9ncmFtRXhlY3V0YWJsZS5oYXNMaW5rZWRTaGFk
ZXJTdGFnZShnbDo6U2hhZGVyVHlwZTo6Q29tcHV0ZSkpCisgICAgaWYgKHByb2dyYW1FeGVjdXRh
YmxlLmhhc0xpbmtlZEdyYXBoaWNzU2hhZGVyKCkpCiAgICAgewogICAgICAgICBjb25zdCBnbDo6
VmFyeWluZ1BhY2tpbmcgJmlucHV0UGFja2luZyAgPSB2YXJ5aW5nUGFja2luZy5nZXRJbnB1dFBh
Y2tpbmcoc2hhZGVyVHlwZSk7CiAgICAgICAgIGNvbnN0IGdsOjpWYXJ5aW5nUGFja2luZyAmb3V0
cHV0UGFja2luZyA9IHZhcnlpbmdQYWNraW5nLmdldE91dHB1dFBhY2tpbmcoc2hhZGVyVHlwZSk7
CkBAIC00ODM5LDEzICs0ODU2LDE0IEBAIHZvaWQgR2xzbGFuZ0Fzc2lnbkxvY2F0aW9ucyhjb25z
dCBHbHNsYW5nU291cmNlT3B0aW9ucyAmb3B0aW9ucywKICAgICAgICAgaXNUcmFuc2Zvcm1GZWVk
YmFja1N0YWdlID0KICAgICAgICAgICAgIGlzVHJhbnNmb3JtRmVlZGJhY2tTdGFnZSAmJiBvcHRp
b25zLmVuYWJsZVRyYW5zZm9ybUZlZWRiYWNrRW11bGF0aW9uOwogCi0gICAgICAgIEFzc2lnblRy
YW5zZm9ybUZlZWRiYWNrRW11bGF0aW9uQmluZGluZ3Moc2hhZGVyVHlwZSwgcHJvZ3JhbVN0YXRl
LCBpc1RyYW5zZm9ybUZlZWRiYWNrU3RhZ2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcHJvZ3JhbUludGVyZmFjZUluZm8sIHZhcmlhYmxlSW5mb01h
cE91dCk7CisgICAgICAgIEFzc2lnblRyYW5zZm9ybUZlZWRiYWNrRW11bGF0aW9uQmluZGluZ3Mo
c2hhZGVyVHlwZSwgcHJvZ3JhbUV4ZWN1dGFibGUsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaXNUcmFuc2Zvcm1GZWVkYmFja1N0YWdlLCBwcm9ncmFt
SW50ZXJmYWNlSW5mbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB2YXJpYWJsZUluZm9NYXBPdXQpOwogICAgIH0KIH0KIAogdm9pZCBHbHNsYW5nQXNz
aWduVHJhbnNmb3JtRmVlZGJhY2tMb2NhdGlvbnMoZ2w6OlNoYWRlclR5cGUgc2hhZGVyVHlwZSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdsOjpQ
cm9ncmFtU3RhdGUgJnByb2dyYW1TdGF0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbnN0IGdsOjpQcm9ncmFtRXhlY3V0YWJsZSAmcHJvZ3JhbUV4ZWN1
dGFibGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29s
IGlzVHJhbnNmb3JtRmVlZGJhY2tTdGFnZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEdsc2xhbmdQcm9ncmFtSW50ZXJmYWNlSW5mbyAqcHJvZ3JhbUludGVy
ZmFjZUluZm8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBT
aGFkZXJJbnRlcmZhY2VWYXJpYWJsZUluZm9NYXAgKnZhcmlhYmxlSW5mb01hcE91dCkKQEAgLTQ4
NTQsNyArNDg3Miw3IEBAIHZvaWQgR2xzbGFuZ0Fzc2lnblRyYW5zZm9ybUZlZWRiYWNrTG9jYXRp
b25zKGdsOjpTaGFkZXJUeXBlIHNoYWRlclR5cGUsCiAgICAgLy8gY2FwdHVyZWQgdGhyb3VnaCBB
TkdMRVhmYlBvc2l0aW9uLgogCiAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8Z2w6OlRyYW5zZm9ybUZl
ZWRiYWNrVmFyeWluZz4gJnRmVmFyeWluZ3MgPQotICAgICAgICBwcm9ncmFtU3RhdGUuZ2V0TGlu
a2VkVHJhbnNmb3JtRmVlZGJhY2tWYXJ5aW5ncygpOworICAgICAgICBwcm9ncmFtRXhlY3V0YWJs
ZS5nZXRMaW5rZWRUcmFuc2Zvcm1GZWVkYmFja1ZhcnlpbmdzKCk7CiAKICAgICBib29sIGNhcHR1
cmVzUG9zaXRpb24gPSBmYWxzZTsKIApAQCAtNDg3Niw3ICs0ODk0LDggQEAgdm9pZCBHbHNsYW5n
QXNzaWduVHJhbnNmb3JtRmVlZGJhY2tMb2NhdGlvbnMoZ2w6OlNoYWRlclR5cGUgc2hhZGVyVHlw
ZSwKIAogICAgIGlmIChjYXB0dXJlc1Bvc2l0aW9uKQogICAgIHsKLSAgICAgICAgQWRkTG9jYXRp
b25JbmZvKHZhcmlhYmxlSW5mb01hcE91dCwgc2hhZGVyVHlwZSwgc2g6OnZrOjprWGZiRXh0ZW5z
aW9uUG9zaXRpb25PdXROYW1lLAorICAgICAgICBBZGRMb2NhdGlvbkluZm8odmFyaWFibGVJbmZv
TWFwT3V0LCBzaGFkZXJUeXBlLCBTaGFkZXJWYXJpYWJsZVR5cGU6OlZhcnlpbmcsCisgICAgICAg
ICAgICAgICAgICAgICAgICBzaDo6dms6OmtYZmJFeHRlbnNpb25Qb3NpdGlvbk91dE5hbWUsCiAg
ICAgICAgICAgICAgICAgICAgICAgICBwcm9ncmFtSW50ZXJmYWNlSW5mby0+bG9jYXRpb25zVXNl
ZEZvclhmYkV4dGVuc2lvbiwgMCwgMCwgMCk7CiAgICAgICAgICsrcHJvZ3JhbUludGVyZmFjZUlu
Zm8tPmxvY2F0aW9uc1VzZWRGb3JYZmJFeHRlbnNpb247CiAgICAgfQpAQCAtNDg4NCw3ICs0OTAz
LDggQEAgdm9pZCBHbHNsYW5nQXNzaWduVHJhbnNmb3JtRmVlZGJhY2tMb2NhdGlvbnMoZ2w6OlNo
YWRlclR5cGUgc2hhZGVyVHlwZSwKICAgICB7CiAgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGlzIHZh
cnlpbmcgaXMgcmVtb3ZlZCBmcm9tIHRoZSBvdGhlciBzdGFnZXMsIG9yIGlmIHBvc2l0aW9uIGlz
IG5vdCBjYXB0dXJlZAogICAgICAgICAvLyBhdCBhbGwuCi0gICAgICAgIHZhcmlhYmxlSW5mb01h
cE91dC0+YWRkKHNoYWRlclR5cGUsIHNoOjp2azo6a1hmYkV4dGVuc2lvblBvc2l0aW9uT3V0TmFt
ZSk7CisgICAgICAgIHZhcmlhYmxlSW5mb01hcE91dC0+YWRkKHNoYWRlclR5cGUsIFNoYWRlclZh
cmlhYmxlVHlwZTo6VmFyeWluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2g6
OnZrOjprWGZiRXh0ZW5zaW9uUG9zaXRpb25PdXROYW1lKTsKICAgICB9CiB9CiAKQEAgLTQ5MDEs
MjkgKzQ5MjEsMzAgQEAgdm9pZCBHbHNsYW5nR2V0U2hhZGVyU3BpcnZDb2RlKGNvbnN0IEdsc2xh
bmdTb3VyY2VPcHRpb25zICZvcHRpb25zLAogICAgICAgICAoKnNwaXJ2QmxvYnNPdXQpW3NoYWRl
clR5cGVdID0gZ2xTaGFkZXIgPyAmZ2xTaGFkZXItPmdldENvbXBpbGVkQmluYXJ5KCkgOiBudWxs
cHRyOwogICAgIH0KIAorICAgIGNvbnN0IGdsOjpQcm9ncmFtRXhlY3V0YWJsZSAmcHJvZ3JhbUV4
ZWN1dGFibGUgPSBwcm9ncmFtU3RhdGUuZ2V0RXhlY3V0YWJsZSgpOwogICAgIGdsOjpTaGFkZXJU
eXBlIHhmYlN0YWdlICAgICAgICA9IHByb2dyYW1TdGF0ZS5nZXRBdHRhY2hlZFRyYW5zZm9ybUZl
ZWRiYWNrU3RhZ2UoKTsKICAgICBnbDo6U2hhZGVyVHlwZSBmcm9udFNoYWRlclR5cGUgPSBnbDo6
U2hhZGVyVHlwZTo6SW52YWxpZEVudW07CiAKICAgICAvLyBUaGlzIHNob3VsZCBiZSBkb25lIGJl
Zm9yZSBhc3NpZ25pbmcgdmFyeWluZyBsb2NhdGlvbi4gT3RoZXJ3aXNlLCBXZSBjYW4gZW5jb3Vu
dGVyIHNoYWRlcgogICAgIC8vIGludGVyZmFjZSBtaXNtYXRjaGluZyBwcm9ibGVtIGluIGNhc2Ug
dGhlIHRyYW5zZm9ybUZlZWRiYWNrIHN0YWdlIGlzIG5vdCBWZXJ0ZXggc3RhZ2UuCi0gICAgZm9y
IChjb25zdCBnbDo6U2hhZGVyVHlwZSBzaGFkZXJUeXBlIDogcHJvZ3JhbVN0YXRlLmdldEV4ZWN1
dGFibGUoKS5nZXRMaW5rZWRTaGFkZXJTdGFnZXMoKSkKKyAgICBmb3IgKGNvbnN0IGdsOjpTaGFk
ZXJUeXBlIHNoYWRlclR5cGUgOiBwcm9ncmFtRXhlY3V0YWJsZS5nZXRMaW5rZWRTaGFkZXJTdGFn
ZXMoKSkKICAgICB7CiAgICAgICAgIC8vIEFzc2lnbiBsb2NhdGlvbiB0byB2YXJ5aW5ncyBnZW5l
cmF0ZWQgZm9yIHRyYW5zZm9ybSBmZWVkYmFjayBjYXB0dXJlCi0gICAgICAgIGNvbnN0IGJvb2wg
aXNYZmJTdGFnZSA9Ci0gICAgICAgICAgICBzaGFkZXJUeXBlID09IHhmYlN0YWdlICYmICFwcm9n
cmFtU3RhdGUuZ2V0TGlua2VkVHJhbnNmb3JtRmVlZGJhY2tWYXJ5aW5ncygpLmVtcHR5KCk7Cisg
ICAgICAgIGNvbnN0IGJvb2wgaXNYZmJTdGFnZSA9IHNoYWRlclR5cGUgPT0geGZiU3RhZ2UgJiYK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIXByb2dyYW1FeGVjdXRhYmxlLmdldExp
bmtlZFRyYW5zZm9ybUZlZWRiYWNrVmFyeWluZ3MoKS5lbXB0eSgpOwogICAgICAgICBpZiAob3B0
aW9ucy5zdXBwb3J0c1RyYW5zZm9ybUZlZWRiYWNrRXh0ZW5zaW9uICYmCiAgICAgICAgICAgICBn
bDo6U2hhZGVyVHlwZVN1cHBvcnRzVHJhbnNmb3JtRmVlZGJhY2soc2hhZGVyVHlwZSkpCiAgICAg
ICAgIHsKLSAgICAgICAgICAgIEdsc2xhbmdBc3NpZ25UcmFuc2Zvcm1GZWVkYmFja0xvY2F0aW9u
cyhzaGFkZXJUeXBlLCBwcm9ncmFtU3RhdGUsIGlzWGZiU3RhZ2UsCisgICAgICAgICAgICBHbHNs
YW5nQXNzaWduVHJhbnNmb3JtRmVlZGJhY2tMb2NhdGlvbnMoc2hhZGVyVHlwZSwgcHJvZ3JhbUV4
ZWN1dGFibGUsIGlzWGZiU3RhZ2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcHJvZ3JhbUludGVyZmFjZUluZm8sIHZhcmlhYmxlSW5mb01hcE91
dCk7CiAgICAgICAgIH0KICAgICB9CiAgICAgVW5pZm9ybUJpbmRpbmdJbmRleE1hcCB1bmlmb3Jt
QmluZGluZ0luZGV4TWFwOwotICAgIGZvciAoY29uc3QgZ2w6OlNoYWRlclR5cGUgc2hhZGVyVHlw
ZSA6IHByb2dyYW1TdGF0ZS5nZXRFeGVjdXRhYmxlKCkuZ2V0TGlua2VkU2hhZGVyU3RhZ2VzKCkp
CisgICAgZm9yIChjb25zdCBnbDo6U2hhZGVyVHlwZSBzaGFkZXJUeXBlIDogcHJvZ3JhbUV4ZWN1
dGFibGUuZ2V0TGlua2VkU2hhZGVyU3RhZ2VzKCkpCiAgICAgewotICAgICAgICBjb25zdCBib29s
IGlzWGZiU3RhZ2UgPQotICAgICAgICAgICAgc2hhZGVyVHlwZSA9PSB4ZmJTdGFnZSAmJiAhcHJv
Z3JhbVN0YXRlLmdldExpbmtlZFRyYW5zZm9ybUZlZWRiYWNrVmFyeWluZ3MoKS5lbXB0eSgpOwot
ICAgICAgICBHbHNsYW5nQXNzaWduTG9jYXRpb25zKG9wdGlvbnMsIHByb2dyYW1TdGF0ZSwgcmVz
b3VyY2VzLnZhcnlpbmdQYWNraW5nLCBzaGFkZXJUeXBlLAorICAgICAgICBjb25zdCBib29sIGlz
WGZiU3RhZ2UgPSBzaGFkZXJUeXBlID09IHhmYlN0YWdlICYmCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICFwcm9ncmFtRXhlY3V0YWJsZS5nZXRMaW5rZWRUcmFuc2Zvcm1GZWVkYmFj
a1ZhcnlpbmdzKCkuZW1wdHkoKTsKKyAgICAgICAgR2xzbGFuZ0Fzc2lnbkxvY2F0aW9ucyhvcHRp
b25zLCBwcm9ncmFtRXhlY3V0YWJsZSwgcmVzb3VyY2VzLnZhcnlpbmdQYWNraW5nLCBzaGFkZXJU
eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyb250U2hhZGVyVHlwZSwgaXNY
ZmJTdGFnZSwgcHJvZ3JhbUludGVyZmFjZUluZm8sCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJnVuaWZvcm1CaW5kaW5nSW5kZXhNYXAsIHZhcmlhYmxlSW5mb01hcE91dCk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9n
bHNsYW5nX3dyYXBwZXJfdXRpbHMuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJB
TkdMRS9yZW5kZXJlci9nbHNsYW5nX3dyYXBwZXJfdXRpbHMuaAppbmRleCA3NWQyNTJmN2FlNTJj
MzM2MTFkN2M1OWE1ZTYyY2Y5MWMxNDRmYzllLi40YTczYjQxMzRlZmQ3ZWE1MGZkMzIxNWJmNWZm
NWIwNjliYjY5Y2M2IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGli
QU5HTEUvcmVuZGVyZXIvZ2xzbGFuZ193cmFwcGVyX3V0aWxzLmgKKysrIGIvU291cmNlL1RoaXJk
UGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL2dsc2xhbmdfd3JhcHBlcl91dGlscy5o
CkBAIC0xMCw2ICsxMCw3IEBACiAjZGVmaW5lIExJQkFOR0xFX1JFTkRFUkVSX0dMU0xBTkdfV1JB
UFBFUl9VVElMU19IXwogCiAjaW5jbHVkZSA8ZnVuY3Rpb25hbD4KKwogI2luY2x1ZGUgImNvbW1v
bi9zcGlydi9zcGlydl90eXBlcy5oIgogI2luY2x1ZGUgImxpYkFOR0xFL3JlbmRlcmVyL1Byb2dy
YW1JbXBsLmgiCiAjaW5jbHVkZSAibGliQU5HTEUvcmVuZGVyZXIvcmVuZGVyZXJfdXRpbHMuaCIK
QEAgLTE0Myw3ICsxNDQsNyBAQCBzdGQ6OnN0cmluZyBHbHNsYW5nR2V0TWFwcGVkU2FtcGxlck5h
bWUoY29uc3Qgc3RkOjpzdHJpbmcgJm9yaWdpbmFsTmFtZSk7CiBzdGQ6OnN0cmluZyBHZXRYZmJC
dWZmZXJOYW1lKGNvbnN0IHVpbnQzMl90IGJ1ZmZlckluZGV4KTsKIAogdm9pZCBHbHNsYW5nQXNz
aWduTG9jYXRpb25zKGNvbnN0IEdsc2xhbmdTb3VyY2VPcHRpb25zICZvcHRpb25zLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdsOjpQcm9ncmFtU3RhdGUgJnByb2dyYW1TdGF0
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnbDo6UHJvZ3JhbUV4ZWN1dGFi
bGUgJnByb2dyYW1FeGVjdXRhYmxlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IGdsOjpQcm9ncmFtVmFyeWluZ1BhY2tpbmcgJnZhcnlpbmdQYWNraW5nLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbnN0IGdsOjpTaGFkZXJUeXBlIHNoYWRlclR5cGUsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2w6OlNoYWRlclR5cGUgZnJvbnRTaGFkZXJUeXBl
LApAQCAtMTUzLDcgKzE1NCw3IEBAIHZvaWQgR2xzbGFuZ0Fzc2lnbkxvY2F0aW9ucyhjb25zdCBH
bHNsYW5nU291cmNlT3B0aW9ucyAmb3B0aW9ucywKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBTaGFkZXJJbnRlcmZhY2VWYXJpYWJsZUluZm9NYXAgKnZhcmlhYmxlSW5mb01hcE91dCk7CiAK
IHZvaWQgR2xzbGFuZ0Fzc2lnblRyYW5zZm9ybUZlZWRiYWNrTG9jYXRpb25zKGdsOjpTaGFkZXJU
eXBlIHNoYWRlclR5cGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb25zdCBnbDo6UHJvZ3JhbVN0YXRlICZwcm9ncmFtU3RhdGUsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnbDo6UHJvZ3JhbUV4ZWN1dGFi
bGUgJnByb2dyYW1FeGVjdXRhYmxlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYm9vbCBpc1RyYW5zZm9ybUZlZWRiYWNrU3RhZ2UsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHbHNsYW5nUHJvZ3JhbUludGVyZmFjZUlu
Zm8gKnByb2dyYW1JbnRlcmZhY2VJbmZvLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgU2hhZGVySW50ZXJmYWNlVmFyaWFibGVJbmZvTWFwICp2YXJpYWJsZUlu
Zm9NYXBPdXQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFO
R0xFL3JlbmRlcmVyL21ldGFsL0J1ZmZlck10bC5oIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUv
c3JjL2xpYkFOR0xFL3JlbmRlcmVyL21ldGFsL0J1ZmZlck10bC5oCmluZGV4IGMyMDY5MGM2MmVk
MmUzYjY0YTUyZTUwYTlmMjhjN2Q5OGJiZDUwNTcuLjQzOGU4ZGFmZWI5YzRkMTg1OTVhYjQ4NmY0
ZTNlZWU3YTE1NmYyODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9s
aWJBTkdMRS9yZW5kZXJlci9tZXRhbC9CdWZmZXJNdGwuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvbWV0YWwvQnVmZmVyTXRsLmgKQEAgLTEyLDcg
KzEyLDYgQEAKIAogI2ltcG9ydCA8TWV0YWwvTWV0YWwuaD4KIAotI2luY2x1ZGUgPG9wdGlvbmFs
PgogI2luY2x1ZGUgPHV0aWxpdHk+CiAKICNpbmNsdWRlICJsaWJBTkdMRS9CdWZmZXIuaCIKQEAg
LTIxNiwxMyArMjE1LDE3IEBAIGNsYXNzIEJ1ZmZlck10bCA6IHB1YmxpYyBCdWZmZXJJbXBsLCBw
dWJsaWMgQnVmZmVySG9sZGVyTXRsCiAKICAgICBzdHJ1Y3QgUmVzdGFydFJhbmdlQ2FjaGUKICAg
ICB7CisgICAgICAgIFJlc3RhcnRSYW5nZUNhY2hlKCkgOiBpbmRleFR5cGUoZ2w6OkRyYXdFbGVt
ZW50c1R5cGU6OkludmFsaWRFbnVtKSB7IGlzRGlydHkgPSB0cnVlOyB9CiAgICAgICAgIFJlc3Rh
cnRSYW5nZUNhY2hlKHN0ZDo6dmVjdG9yPEluZGV4UmFuZ2U+ICYmcmFuZ2VzXywgZ2w6OkRyYXdF
bGVtZW50c1R5cGUgaW5kZXhUeXBlXykKLSAgICAgICAgICAgIDogcmFuZ2VzKHJhbmdlc18pLCBp
bmRleFR5cGUoaW5kZXhUeXBlXykKKyAgICAgICAgICAgIDogcmFuZ2VzKHJhbmdlc18pLCBpbmRl
eFR5cGUoaW5kZXhUeXBlXyksIGlzRGlydHkoZmFsc2UpCiAgICAgICAgIHt9Ci0gICAgICAgIGNv
bnN0IHN0ZDo6dmVjdG9yPEluZGV4UmFuZ2U+IHJhbmdlczsKLSAgICAgICAgY29uc3QgZ2w6OkRy
YXdFbGVtZW50c1R5cGUgaW5kZXhUeXBlOworICAgICAgICB2b2lkIG1hcmtEaXJ0eSgpIHsgaXNE
aXJ0eSA9IHRydWU7IH0KKyAgICAgICAgb3BlcmF0b3IgYm9vbCgpIGNvbnN0IHsgcmV0dXJuIGlz
RGlydHk7IH0KKyAgICAgICAgc3RkOjp2ZWN0b3I8SW5kZXhSYW5nZT4gcmFuZ2VzOworICAgICAg
ICBnbDo6RHJhd0VsZW1lbnRzVHlwZSBpbmRleFR5cGU7CisgICAgICAgIGJvb2wgaXNEaXJ0eTsK
ICAgICB9OwotICAgIHN0ZDo6b3B0aW9uYWw8UmVzdGFydFJhbmdlQ2FjaGU+IG1SZXN0YXJ0UmFu
Z2VDYWNoZTsKKyAgICBSZXN0YXJ0UmFuZ2VDYWNoZSBtUmVzdGFydFJhbmdlQ2FjaGU7CiAgICAg
c3RkOjp2ZWN0b3I8SW5kZXhSYW5nZT4gbVJlc3RhcnRJbmRpY2VzOwogfTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL21ldGFsL0J1
ZmZlck10bC5tbSBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJl
ci9tZXRhbC9CdWZmZXJNdGwubW0KaW5kZXggMTc2NjI1NjkzMDkxNGIwMzAxMTk3MjRmMDFkMmFk
YjJmNTQyNjlhMi4uOTAwYWVhOGFmYjk0YWUzMmIzNzcxMWRkYjgxMzZjNDNiMDMwOGI0OSAxMDA2
NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL21l
dGFsL0J1ZmZlck10bC5tbQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5H
TEUvcmVuZGVyZXIvbWV0YWwvQnVmZmVyTXRsLm1tCkBAIC0zOTUsNyArMzk1LDcgQEAgdm9pZCBC
dWZmZXJNdGw6Om1hcmtDb252ZXJzaW9uQnVmZmVyc0RpcnR5KCkKICAgICAgICAgYnVmZmVyLmNv
bnZlcnRlZEJ1ZmZlciA9IG51bGxwdHI7CiAgICAgICAgIGJ1ZmZlci5jb252ZXJ0ZWRPZmZzZXQg
PSAwOwogICAgIH0KLSAgICBtUmVzdGFydFJhbmdlQ2FjaGUucmVzZXQoKTsKKyAgICBtUmVzdGFy
dFJhbmdlQ2FjaGUubWFya0RpcnR5KCk7CiB9CiAKIHZvaWQgQnVmZmVyTXRsOjpjbGVhckNvbnZl
cnNpb25CdWZmZXJzKCkKQEAgLTQwMyw3ICs0MDMsNyBAQCB2b2lkIEJ1ZmZlck10bDo6Y2xlYXJD
b252ZXJzaW9uQnVmZmVycygpCiAgICAgbVZlcnRleENvbnZlcnNpb25CdWZmZXJzLmNsZWFyKCk7
CiAgICAgbUluZGV4Q29udmVyc2lvbkJ1ZmZlcnMuY2xlYXIoKTsKICAgICBtVW5pZm9ybUNvbnZl
cnNpb25CdWZmZXJzLmNsZWFyKCk7Ci0gICAgbVJlc3RhcnRSYW5nZUNhY2hlLnJlc2V0KCk7Cisg
ICAgbVJlc3RhcnRSYW5nZUNhY2hlLm1hcmtEaXJ0eSgpOwogfQogCiB0ZW1wbGF0ZSA8dHlwZW5h
bWUgVD4KQEAgLTQzMyw5ICs0MzMsOSBAQCBzdGF0aWMgc3RkOjp2ZWN0b3I8SW5kZXhSYW5nZT4g
Y2FsY3VsYXRlUmVzdGFydFJhbmdlcyhDb250ZXh0TXRsICpjdHgsIG10bDo6QnVmZgogY29uc3Qg
c3RkOjp2ZWN0b3I8SW5kZXhSYW5nZT4gJkJ1ZmZlck10bDo6Z2V0UmVzdGFydEluZGljZXMoQ29u
dGV4dE10bCAqY3R4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZ2w6OkRyYXdFbGVtZW50c1R5cGUgaW5kZXhUeXBlKQogewotICAg
IGlmICghbVJlc3RhcnRSYW5nZUNhY2hlIHx8IG1SZXN0YXJ0UmFuZ2VDYWNoZS0+aW5kZXhUeXBl
ICE9IGluZGV4VHlwZSkKKyAgICBpZiAoIW1SZXN0YXJ0UmFuZ2VDYWNoZSB8fCBtUmVzdGFydFJh
bmdlQ2FjaGUuaW5kZXhUeXBlICE9IGluZGV4VHlwZSkKICAgICB7Ci0gICAgICAgIG1SZXN0YXJ0
UmFuZ2VDYWNoZS5yZXNldCgpOworICAgICAgICBtUmVzdGFydFJhbmdlQ2FjaGUubWFya0RpcnR5
KCk7CiAgICAgICAgIHN0ZDo6dmVjdG9yPEluZGV4UmFuZ2U+IHJhbmdlczsKICAgICAgICAgc3dp
dGNoIChpbmRleFR5cGUpCiAgICAgICAgIHsKQEAgLTQ1MSw5ICs0NTEsOSBAQCBjb25zdCBzdGQ6
OnZlY3RvcjxJbmRleFJhbmdlPiAmQnVmZmVyTXRsOjpnZXRSZXN0YXJ0SW5kaWNlcyhDb250ZXh0
TXRsICpjdHgsCiAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgIEFTU0VSVChm
YWxzZSk7CiAgICAgICAgIH0KLSAgICAgICAgbVJlc3RhcnRSYW5nZUNhY2hlLmVtcGxhY2Uoc3Rk
Ojptb3ZlKHJhbmdlcyksIGluZGV4VHlwZSk7CisgICAgICAgIG1SZXN0YXJ0UmFuZ2VDYWNoZSA9
IFJlc3RhcnRSYW5nZUNhY2hlKHN0ZDo6bW92ZShyYW5nZXMpLCBpbmRleFR5cGUpOwogICAgIH0K
LSAgICByZXR1cm4gbVJlc3RhcnRSYW5nZUNhY2hlLT5yYW5nZXM7CisgICAgcmV0dXJuIG1SZXN0
YXJ0UmFuZ2VDYWNoZS5yYW5nZXM7CiB9CiAKIGNvbnN0IHN0ZDo6dmVjdG9yPEluZGV4UmFuZ2U+
IEJ1ZmZlck10bDo6Z2V0UmVzdGFydEluZGljZXNGcm9tQ2xpZW50RGF0YSgKZGlmZiAtLWdpdCBh
L1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9tZXRhbC9Db250
ZXh0TXRsLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIv
bWV0YWwvQ29udGV4dE10bC5oCmluZGV4IDBmNmFiOTc1YWY1MmZiOTlkNzYzYjE2N2E2OTlmNzEz
MWNiNmQyZjAuLmQxZTRhYjNiYjBlNjYzNTliYjA5ZGFlZWI4ZDhiODJhMTYyMzY0YTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9tZXRh
bC9Db250ZXh0TXRsLmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xF
L3JlbmRlcmVyL21ldGFsL0NvbnRleHRNdGwuaApAQCAtMzc2LDYgKzM3Niw5IEBAIGNsYXNzIENv
bnRleHRNdGwgOiBwdWJsaWMgQ29udGV4dEltcGwsIHB1YmxpYyBtdGw6OkNvbnRleHQKIAogICAg
IGNvbnN0IG10bDo6Q29udGV4dERldmljZSAmZ2V0TWV0YWxEZXZpY2UoKSBjb25zdCB7IHJldHVy
biBtQ29udGV4dERldmljZTsgfQogCisgICAgYW5nbGU6OlJlc3VsdCBjb3B5MkRUZXh0dXJlU2xp
Y2UwTGV2ZWwwVG9Xb3JrVGV4dHVyZShjb25zdCBtdGw6OlRleHR1cmVSZWYgJnNyY1RleHR1cmUp
OworICAgIGNvbnN0IG10bDo6VGV4dHVyZVJlZiAmZ2V0V29ya1RleHR1cmUoKSBjb25zdCB7IHJl
dHVybiBtV29ya1RleHR1cmU7IH0KKwogICBwcml2YXRlOgogICAgIHZvaWQgZW5zdXJlQ29tbWFu
ZEJ1ZmZlclJlYWR5KCk7CiAgICAgYW5nbGU6OlJlc3VsdCBlbnN1cmVJbmNvbXBsZXRlVGV4dHVy
ZXNDcmVhdGVkKGNvbnN0IGdsOjpDb250ZXh0ICpjb250ZXh0KTsKQEAgLTU3MCw2ICs1NzMsNyBA
QCBjbGFzcyBDb250ZXh0TXRsIDogcHVibGljIENvbnRleHRJbXBsLCBwdWJsaWMgbXRsOjpDb250
ZXh0CiAgICAgVmVydGV4QXJyYXlNdGwgKm1WZXJ0ZXhBcnJheSAgICAgPSBudWxscHRyOwogICAg
IFByb2dyYW1NdGwgKm1Qcm9ncmFtICAgICAgICAgICAgID0gbnVsbHB0cjsKICAgICBRdWVyeU10
bCAqbU9jY2x1c2lvblF1ZXJ5ICAgICAgICA9IG51bGxwdHI7CisgICAgbXRsOjpUZXh0dXJlUmVm
IG1Xb3JrVGV4dHVyZTsKIAogICAgIHVzaW5nIERpcnR5Qml0cyA9IGFuZ2xlOjpCaXRTZXQ8RElS
VFlfQklUX01BWD47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9s
aWJBTkdMRS9yZW5kZXJlci9tZXRhbC9Db250ZXh0TXRsLm1tIGIvU291cmNlL1RoaXJkUGFydHkv
QU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL21ldGFsL0NvbnRleHRNdGwubW0KaW5kZXggNDBi
M2MzMmExYmQ4ZmVkMDI3ZDM5NGZmMWNjYjYwOGRhZDNmZTY4Mi4uMDM0MmFlMjBiZGRlZTAwNWEx
NDdlZWRiY2MzODI1MDgwYjMxMjNiNSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5H
TEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL21ldGFsL0NvbnRleHRNdGwubW0KKysrIGIvU291cmNl
L1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL21ldGFsL0NvbnRleHRNdGwu
bW0KQEAgLTE5MTAsNyArMTkxMCw3IEBAIHZvaWQgQ29udGV4dE10bDo6dXBkYXRlQmxlbmREZXNj
QXJyYXkoY29uc3QgZ2w6OkJsZW5kU3RhdGVFeHQgJmJsZW5kU3RhdGVFeHQpCiAgICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCBtQmxlbmREZXNjQXJyYXkuc2l6ZSgpOyBpKyspCiAgICAgewogICAg
ICAgICBtdGw6OkJsZW5kRGVzYyAmYmxlbmREZXNjID0gbUJsZW5kRGVzY0FycmF5W2ldOwotICAg
ICAgICBpZiAoYmxlbmRTdGF0ZUV4dC5tRW5hYmxlZE1hc2sudGVzdChpKSkKKyAgICAgICAgaWYg
KGJsZW5kU3RhdGVFeHQuZ2V0RW5hYmxlZE1hc2soKS50ZXN0KGkpKQogICAgICAgICB7CiAgICAg
ICAgICAgICBibGVuZERlc2MuYmxlbmRpbmdFbmFibGVkID0gdHJ1ZTsKIApAQCAtMjYyMyw0ICsy
NjIzLDI4IEBAIGFuZ2xlOjpSZXN1bHQgQ29udGV4dE10bDo6Y2hlY2tJZlBpcGVsaW5lQ2hhbmdl
ZChjb25zdCBnbDo6Q29udGV4dCAqY29udGV4dCwKIAogICAgIHJldHVybiBhbmdsZTo6UmVzdWx0
OjpDb250aW51ZTsKIH0KKworYW5nbGU6OlJlc3VsdCBDb250ZXh0TXRsOjpjb3B5MkRUZXh0dXJl
U2xpY2UwTGV2ZWwwVG9Xb3JrVGV4dHVyZShjb25zdCBtdGw6OlRleHR1cmVSZWYgJnNyY1RleHR1
cmUpCit7CisgICAgaWYgKCFtV29ya1RleHR1cmUgfHwgIW1Xb3JrVGV4dHVyZS0+c2FtZVR5cGVB
bmREaW1lbXNpb25zQXMoc3JjVGV4dHVyZSkpCisgICAgeworICAgICAgICBhdXRvIGZvcm1hdElk
ID0gbXRsOjpGb3JtYXQ6Ok1ldGFsVG9BbmdsZUZvcm1hdElEKHNyY1RleHR1cmUtPnBpeGVsRm9y
bWF0KCkpOworICAgICAgICBhdXRvIGZvcm1hdCAgID0gZ2V0UGl4ZWxGb3JtYXQoZm9ybWF0SWQp
OworCisgICAgICAgIEFOR0xFX1RSWShtdGw6OlRleHR1cmU6Ok1ha2UyRFRleHR1cmUodGhpcywg
Zm9ybWF0LCBzcmNUZXh0dXJlLT53aWR0aEF0MCgpLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNyY1RleHR1cmUtPmhlaWdodEF0MCgpLCBzcmNUZXh0dXJl
LT5taXBtYXBMZXZlbHMoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBmYWxzZSwgdHJ1ZSwgJm1Xb3JrVGV4dHVyZSkpOworICAgIH0KKyAgICBhdXRvICpi
bGl0RW5jb2RlciA9IGdldEJsaXRDb21tYW5kRW5jb2RlcigpOworICAgIGJsaXRFbmNvZGVyLT5j
b3B5VGV4dHVyZShzcmNUZXh0dXJlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAg
ICAgICAgICAgICAgICAgICAgICAgICAgLy8gc3JjU3RhcnRTbGljZQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBtdGw6Ok1pcG1hcE5hdGl2ZUxldmVsKDApLCAgLy8gTWlwbWFwTmF0aXZl
TGV2ZWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbVdvcmtUZXh0dXJlLCAgICAgICAg
ICAgICAgIC8vIGRzdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAgICAgICAgICAg
ICAgICAgICAgICAgICAgLy8gZHN0U3RhcnRTbGljZQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBtdGw6Ok1pcG1hcE5hdGl2ZUxldmVsKDApLCAgLy8gZHN0U3RhcnRMZXZlbAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAxLCAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2xp
Y2VDb3VudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSk7ICAgICAgICAgICAgICAg
ICAgICAgICAgIC8vIGxldmVsQ291bnQKKworICAgIHJldHVybiBhbmdsZTo6UmVzdWx0OjpDb250
aW51ZTsKK30KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJB
TkdMRS9yZW5kZXJlci9tZXRhbC9EaXNwbGF5TXRsLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdM
RS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvbWV0YWwvRGlzcGxheU10bC5oCmluZGV4IGQzZGYzM2Ji
MDdmMWZjYmUwYTE5ODY4NjAzNDVkOWM5ODAwMzZjMWEuLmM4ZjJjYmViODFlMjk1MmFjMDk2OTMx
MjFlYmJkYWRkYjE4YWZjNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3Ny
Yy9saWJBTkdMRS9yZW5kZXJlci9tZXRhbC9EaXNwbGF5TXRsLmgKKysrIGIvU291cmNlL1RoaXJk
UGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL21ldGFsL0Rpc3BsYXlNdGwuaApAQCAt
MTksNyArMTksNyBAQAogI2luY2x1ZGUgImxpYkFOR0xFL3JlbmRlcmVyL21ldGFsL210bF9yZW5k
ZXJfdXRpbHMuaCIKICNpbmNsdWRlICJsaWJBTkdMRS9yZW5kZXJlci9tZXRhbC9tdGxfc3RhdGVf
Y2FjaGUuaCIKICNpbmNsdWRlICJsaWJBTkdMRS9yZW5kZXJlci9tZXRhbC9tdGxfdXRpbHMuaCIK
LSNpbmNsdWRlICJwbGF0Zm9ybS9GZWF0dXJlc010bC5oIgorI2luY2x1ZGUgInBsYXRmb3JtL0Zl
YXR1cmVzTXRsX2F1dG9nZW4uaCIKIAogbmFtZXNwYWNlIGVnbAogewpkaWZmIC0tZ2l0IGEvU291
cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL21ldGFsL0Rpc3BsYXlN
dGwubW0gYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvbWV0
YWwvRGlzcGxheU10bC5tbQppbmRleCA2NDk4YWY4OTFiMjE4MjY4NmRjNmYyOTY0ZGZiZGM2YjA2
ZmRjNDZkLi4zMGQ4OWZlNGUxN2I5MzhhMjgyNmNhMDg3MTVkNzVhZGE2ZGY5NDE1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvbWV0YWwv
RGlzcGxheU10bC5tbQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUv
cmVuZGVyZXIvbWV0YWwvRGlzcGxheU10bC5tbQpAQCAtMzMsMTAgKzMzLDYgQEAKIAogI2luY2x1
ZGUgIkVHTC9lZ2xleHQuaCIKIAotI2lmIGRlZmluZWQoQU5HTEVfUExBVEZPUk1fTUFDT1MpIHx8
IGRlZmluZWQoQU5HTEVfUExBVEZPUk1fTUFDQ0FUQUxZU1QpCi1jb25zdGV4cHIgY2hhciBrQU5H
TEVQcmVmZXJyZWREZXZpY2VFbnZbXSA9ICJBTkdMRV9QUkVGRVJSRURfREVWSUNFIjsKLSNlbmRp
ZgotCiBuYW1lc3BhY2UgcngKIHsKIApAQCAtMjU0LDEwICsyNTAsMTIgQEAgbXRsOjpBdXRvT2Jq
Q1B0cjxpZDxNVExEZXZpY2U+PiBEaXNwbGF5TXRsOjpnZXRNZXRhbERldmljZU1hdGNoaW5nQXR0
cmlidXRlKAogICAgICAgICB9CiAgICAgfQogCi0gICAgYXV0byBleHRlcm5hbEdQVXMgPSBtdGw6
OmFkb3B0T2JqQ09iajxOU011dGFibGVBcnJheTxpZDxNVExEZXZpY2U+Pj4oW1tOU011dGFibGVB
cnJheSBhbGxvY10gaW5pdF0pOwotICAgIGF1dG8gaW50ZWdyYXRlZEdQVXMgPSBtdGw6OmFkb3B0
T2JqQ09iajxOU011dGFibGVBcnJheTxpZDxNVExEZXZpY2U+Pj4oW1tOU011dGFibGVBcnJheSBh
bGxvY10gaW5pdF0pOwotICAgIGF1dG8gZGlzY3JldGVHUFVzID0gbXRsOjphZG9wdE9iakNPYmo8
TlNNdXRhYmxlQXJyYXk8aWQ8TVRMRGV2aWNlPj4+KFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGlu
aXRdKTsKLQorICAgIGF1dG8gZXh0ZXJuYWxHUFVzID0KKyAgICAgICAgbXRsOjphZG9wdE9iakNP
Ymo8TlNNdXRhYmxlQXJyYXk8aWQ8TVRMRGV2aWNlPj4+KFtbTlNNdXRhYmxlQXJyYXkgYWxsb2Nd
IGluaXRdKTsKKyAgICBhdXRvIGludGVncmF0ZWRHUFVzID0KKyAgICAgICAgbXRsOjphZG9wdE9i
akNPYmo8TlNNdXRhYmxlQXJyYXk8aWQ8TVRMRGV2aWNlPj4+KFtbTlNNdXRhYmxlQXJyYXkgYWxs
b2NdIGluaXRdKTsKKyAgICBhdXRvIGRpc2NyZXRlR1BVcyA9CisgICAgICAgIG10bDo6YWRvcHRP
YmpDT2JqPE5TTXV0YWJsZUFycmF5PGlkPE1UTERldmljZT4+PihbW05TTXV0YWJsZUFycmF5IGFs
bG9jXSBpbml0XSk7CiAgICAgZm9yIChpZDxNVExEZXZpY2U+IGRldmljZSBpbiBkZXZpY2VMaXN0
LmdldCgpKQogICAgIHsKICAgICAgICAgaWYgKGRldmljZS5yZW1vdmFibGUpCkBAIC0yOTUsMTUg
KzI5MywxMyBAQCBtdGw6OkF1dG9PYmpDUHRyPGlkPE1UTERldmljZT4+IERpc3BsYXlNdGw6Omdl
dE1ldGFsRGV2aWNlTWF0Y2hpbmdBdHRyaWJ1dGUoCiAgICAgICAgIH0KICAgICB9CiAKLSAgICAv
LyBDaGVjayB0aGUgQU5HTEVfUFJFRkVSUkVEX0RFVklDRSBlbnZpcm9ubWVudCB2YXJpYWJsZSBm
b3IgZGV2aWNlIHByZWZlcmVuY2UKLSAgICBjb25zdCBzdGQ6OnN0cmluZyBhbmdsZVByZWZlcnJl
ZERldmljZSA9IGFuZ2xlOjpHZXRFbnZpcm9ubWVudFZhcihrQU5HTEVQcmVmZXJyZWREZXZpY2VF
bnYpOwotICAgIGlmIChhbmdsZVByZWZlcnJlZERldmljZSAhPSAiIikKKyAgICBjb25zdCBzdGQ6
OnN0cmluZyBwcmVmZXJyZWREZXZpY2VTdHJpbmcgPSBhbmdsZTo6R2V0UHJlZmVycmVkRGV2aWNl
U3RyaW5nKCk7CisgICAgaWYgKCFwcmVmZXJyZWREZXZpY2VTdHJpbmcuZW1wdHkoKSkKICAgICB7
CiAgICAgICAgIGZvciAoaWQ8TVRMRGV2aWNlPiBkZXZpY2UgaW4gZGV2aWNlTGlzdC5nZXQoKSkK
ICAgICAgICAgewogICAgICAgICAgICAgaWYgKFtkZXZpY2UubmFtZS5sb3dlcmNhc2VTdHJpbmcK
LSAgICAgICAgICAgICAgICAgICAgY29udGFpbnNTdHJpbmc6W05TU3RyaW5nIHN0cmluZ1dpdGhV
VEY4U3RyaW5nOmFuZ2xlUHJlZmVycmVkRGV2aWNlLmNfc3RyKCldCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAubG93ZXJjYXNlU3RyaW5nXSkKKyAgICAgICAgICAgICAg
ICAgICAgY29udGFpbnNTdHJpbmc6W05TU3RyaW5nIHN0cmluZ1dpdGhVVEY4U3RyaW5nOnByZWZl
cnJlZERldmljZVN0cmluZy5jX3N0cigpXV0pCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgTlNMb2coQCJVc2luZyBNZXRhbCBEZXZpY2U6ICVAIiwgW2RldmljZSBuYW1lXSk7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIGRldmljZTsKQEAgLTMxMSwxNyArMzA3LDYgQEAgbXRsOjpBdXRv
T2JqQ1B0cjxpZDxNVExEZXZpY2U+PiBEaXNwbGF5TXRsOjpnZXRNZXRhbERldmljZU1hdGNoaW5n
QXR0cmlidXRlKAogICAgICAgICB9CiAgICAgfQogCi0gICAgLy8gRGVmYXVsdCB0byB1c2UgYSBs
b3cgcG93ZXIgZGV2aWNlLCBsb29rIHRocm91Z2ggaW50ZWdyYXRlZCBkZXZpY2VzLgotICAgIGZv
ciAoaWQ8TVRMRGV2aWNlPiBkZXZpY2UgaW4gaW50ZWdyYXRlZEdQVXMuZ2V0KCkpCi0gICAgewot
ICAgICAgICBpZiAoIVtkZXZpY2UgaXNIZWFkbGVzc10pCi0gICAgICAgICAgICByZXR1cm4gZGV2
aWNlOwotICAgIH0KLQotICAgIC8vIElmIHdlIHNlbGVjdGVkIGEgbG93IHBvd2VyIGRldmljZSBh
bmQgdGhlcmUncyBubyBsb3ctcG93ZXIgZGV2aWNlcyBhdmFpYWxibGUsIHJldHVybiB0aGUKLSAg
ICAvLyBmaXJzdCAoZGVmYXVsdCkgZGV2aWNlLgotICAgIGlmIChkZXZpY2VMaXN0LmdldCgpLmNv
dW50ID4gMCkKLSAgICAgICAgcmV0dXJuIGRldmljZUxpc3RbMF07CiAjZW5kaWYKICAgICAvLyBJ
ZiB3ZSBjYW4ndCBmaW5kIGFueXRoaW5nLCBvciBhcmUgb24gYSBwbGF0Zm9ybSB0aGF0IGRvZXNu
J3Qgc3VwcG9ydCBwb3dlciBvcHRpb25zLCBjcmVhdGUgYQogICAgIC8vIGRlZmF1bHQgZGV2aWNl
LgpAQCAtMTA3Nyw3ICsxMDYyLDcgQEAgdm9pZCBEaXNwbGF5TXRsOjppbml0aWFsaXplRmVhdHVy
ZXMoKQogCiAgICAgLy8gaHR0cDovL2FuZ2xlYnVnLmNvbS80OTE5CiAgICAgLy8gU3RlbmNpbCBi
bGl0IHNoYWRlciBpcyBub3QgY29tcGlsZWQgb24gSW50ZWwgJiBOVklESUEsIG5lZWQgaW52ZXN0
aWdhdGlvbi4KLSAgICBBTkdMRV9GRUFUVVJFX0NPTkRJVElPTigoJm1GZWF0dXJlcyksIGhhc1N0
ZW5jaWxPdXRwdXQsCisgICAgQU5HTEVfRkVBVFVSRV9DT05ESVRJT04oKCZtRmVhdHVyZXMpLCBo
YXNTaGFkZXJTdGVuY2lsT3V0cHV0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzTWV0
YWwyXzEgJiYgIWlzSW50ZWwoKSAmJiAhaXNOVklESUEoKSk7CiAKICAgICBBTkdMRV9GRUFUVVJF
X0NPTkRJVElPTigoJm1GZWF0dXJlcyksIGhhc1RleHR1cmVTd2l6emxlLApAQCAtMTEwMCw3ICsx
MDg1LDcgQEAgdm9pZCBEaXNwbGF5TXRsOjppbml0aWFsaXplRmVhdHVyZXMoKQogICAgIEFOR0xF
X0ZFQVRVUkVfQ09ORElUSU9OKCgmbUZlYXR1cmVzKSwgaGFzTm9uVW5pZm9ybURpc3BhdGNoLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzT1NYIHx8IGlzQ2F0YWx5c3QgfHwgc3VwcG9y
dHNBcHBsZUdQVUZhbWlseSg0KSk7CiAKLSAgICBBTkdMRV9GRUFUVVJFX0NPTkRJVElPTigoJm1G
ZWF0dXJlcyksIGFsbG93U2VwYXJhdGVkRGVwdGhTdGVuY2lsQnVmZmVycywKKyAgICBBTkdMRV9G
RUFUVVJFX0NPTkRJVElPTigoJm1GZWF0dXJlcyksIGFsbG93U2VwYXJhdGVEZXB0aFN0ZW5jaWxC
dWZmZXJzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICFpc09TWCAmJiAhaXNDYXRhbHlz
dCAmJiAhaXNTaW11bGF0b3IpOwogICAgIEFOR0xFX0ZFQVRVUkVfQ09ORElUSU9OKCgmbUZlYXR1
cmVzKSwgcmV3cml0ZVJvd01ham9yTWF0cmljZXMsIHRydWUpOwogICAgIEFOR0xFX0ZFQVRVUkVf
Q09ORElUSU9OKCgmbUZlYXR1cmVzKSwgZW11bGF0ZVRyYW5zZm9ybUZlZWRiYWNrLCB0cnVlKTsK
QEAgLTExMTEsNiArMTA5Niw4IEBAIHZvaWQgRGlzcGxheU10bDo6aW5pdGlhbGl6ZUZlYXR1cmVz
KCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0ludGVsKCkgJiYgR2V0TWFjT1NWZXJz
aW9uKCkgPCBPU1ZlcnNpb24oMTIsIDAsIDApKTsKIAogICAgIEFOR0xFX0ZFQVRVUkVfQ09ORElU
SU9OKCgmbUZlYXR1cmVzKSwgbXVsdGlzYW1wbGVDb2xvckZvcm1hdFNoYWRlclJlYWRXb3JrYXJv
dW5kLCBpc0FNRCgpKTsKKyAgICBBTkdMRV9GRUFUVVJFX0NPTkRJVElPTigoJm1GZWF0dXJlcyks
IGNvcHlJT1N1cmZhY2VUb05vbklPU3VyZmFjZUZvclJlYWRPcHRpbWl6YXRpb24sCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaXNJbnRlbCgpKTsKIAogICAgIEFOR0xFX0ZFQVRVUkVfQ09O
RElUSU9OKCgmbUZlYXR1cmVzKSwgZm9yY2VOb25DU0Jhc2VNaXBtYXBHZW5lcmF0aW9uLCBpc0lu
dGVsKCkpOwogCkBAIC0xMTE4LDkgKzExMDUsNiBAQCB2b2lkIERpc3BsYXlNdGw6OmluaXRpYWxp
emVGZWF0dXJlcygpCiAKICAgICBBTkdMRV9GRUFUVVJFX0NPTkRJVElPTigoJm1GZWF0dXJlcyks
IGRpcmVjdE1ldGFsR2VuZXJhdGlvbiwgZGVmYXVsdERpcmVjdFRvTWV0YWwpOwogCi0gICAgYW5n
bGU6OlBsYXRmb3JtTWV0aG9kcyAqcGxhdGZvcm0gPSBBTkdMRVBsYXRmb3JtQ3VycmVudCgpOwot
ICAgIHBsYXRmb3JtLT5vdmVycmlkZUZlYXR1cmVzTXRsKHBsYXRmb3JtLCAmbUZlYXR1cmVzKTsK
LQogICAgIEFwcGx5RmVhdHVyZU92ZXJyaWRlcygmbUZlYXR1cmVzLCBnZXRTdGF0ZSgpKTsKICNp
ZmRlZiBBTkdMRV9FTkFCTEVfQVNTRVJUUwogICAgIGZwcmludGYoc3RkZXJyLCAiU2hhZGVyIGNv
bXBpbGVyIG91dHB1dDogJXNcbiIsCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdM
RS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvbWV0YWwvRnJhbWVCdWZmZXJNdGwuaCBiL1NvdXJjZS9U
aGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9tZXRhbC9GcmFtZUJ1ZmZlck10
bC5oCmluZGV4IDAwNjkzYmZlOTRhZmYyOWE1ZGFkY2I0MTI0NWFiMzkyM2NlYmJjNzQuLjJlMDMz
YzBkYTFkMTM4OTQ4ZTc4OTU1YTZmNjU5MjZiNWExMmNmZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9U
aGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9tZXRhbC9GcmFtZUJ1ZmZlck10
bC5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9t
ZXRhbC9GcmFtZUJ1ZmZlck10bC5oCkBAIC0yMDYsNiArMjA2LDcgQEAgY2xhc3MgRnJhbWVidWZm
ZXJNdGwgOiBwdWJsaWMgRnJhbWVidWZmZXJJbXBsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgbXRsOjpCdWZmZXJSZWYgKmRzdEJ1ZmZlcikgY29uc3Q7CiAKICAg
ICBSZW5kZXJUYXJnZXRNdGwgKmdldENvbG9yUmVhZFJlbmRlclRhcmdldE5vQ2FjaGUoY29uc3Qg
Z2w6OkNvbnRleHQgKmNvbnRleHQpIGNvbnN0OworICAgIGJvb2wgcHJlcGFyZUZvclVzZShjb25z
dCBnbDo6Q29udGV4dCAqY29udGV4dCkgY29uc3Q7CiAKICAgICAvLyBOT1RFOiB3ZSBjYW5ub3Qg
dXNlIFJlbmRlclRhcmdldENhY2hlIGhlcmUgYmVjYXVzZSBpdCBkb2Vzbid0IHN1cHBvcnQgc2Vw
YXJhdGUKICAgICAvLyBkZXB0aCAmIHN0ZW5jaWwgYXR0YWNobWVudHMgYXMgb2Ygbm93LiBTZXBh
cmF0ZSBkZXB0aCAmIHN0ZW5jaWwgY291bGQgYmUgdXNlZnVsIHRvCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvbWV0YWwvRnJhbWVCdWZm
ZXJNdGwubW0gYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIv
bWV0YWwvRnJhbWVCdWZmZXJNdGwubW0KaW5kZXggMjJlNGM3MmYxNDZkZjEzMGNjYjFlNGE4YmVi
NTIzOGM3YWJjOWUwNC4uNWU4NjIwOTM0NmQ4NjM2MjVlNmI4MWZiOTU0MjYzY2ViN2I0NzM0MCAx
MDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVy
L21ldGFsL0ZyYW1lQnVmZmVyTXRsLm1tCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3Ny
Yy9saWJBTkdMRS9yZW5kZXJlci9tZXRhbC9GcmFtZUJ1ZmZlck10bC5tbQpAQCAtNDg3LDcgKzQ4
Nyw3IEBAIGFuZ2xlOjpSZXN1bHQgRnJhbWVidWZmZXJNdGw6OmJsaXRXaXRoRHJhdyhjb25zdCBn
bDo6Q29udGV4dCAqY29udGV4dCwKICAgICAgICAgICAgIGRzQmxpdFBhcmFtcy5zcmNMZXZlbCAg
ID0gc3JjU3RlbmNpbFJ0LT5nZXRMZXZlbEluZGV4KCk7CiAgICAgICAgICAgICBkc0JsaXRQYXJh
bXMuc3JjTGF5ZXIgICA9IHNyY1N0ZW5jaWxSdC0+Z2V0TGF5ZXJJbmRleCgpOwogCi0gICAgICAg
ICAgICBpZiAoIWNvbnRleHRNdGwtPmdldERpc3BsYXkoKS0+Z2V0RmVhdHVyZXMoKS5oYXNTdGVu
Y2lsT3V0cHV0LmVuYWJsZWQgJiYKKyAgICAgICAgICAgIGlmICghY29udGV4dE10bC0+Z2V0RGlz
cGxheSgpLT5nZXRGZWF0dXJlcygpLmhhc1NoYWRlclN0ZW5jaWxPdXRwdXQuZW5hYmxlZCAmJgog
ICAgICAgICAgICAgICAgIG1TdGVuY2lsUmVuZGVyVGFyZ2V0KQogICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgIC8vIERpcmVjdGx5IHdyaXRpbmcgdG8gc3RlbmNpbCBpbiBzaGFkZXIgaXMg
bm90IHN1cHBvcnRlZCwgdXNlIHRlbXBvcmFyeSBjb3B5IGJ1ZmZlcgpAQCAtNTUxLDcgKzU1MSw3
IEBAIGdsOjpGcmFtZWJ1ZmZlclN0YXR1cyBGcmFtZWJ1ZmZlck10bDo6Y2hlY2tTdGF0dXMoY29u
c3QgZ2w6OkNvbnRleHQgKmNvbnRleHQpIGNvCiAgICAgfQogCiAgICAgQ29udGV4dE10bCAqY29u
dGV4dE10bCA9IG10bDo6R2V0SW1wbChjb250ZXh0KTsKLSAgICBpZiAoIWNvbnRleHRNdGwtPmdl
dERpc3BsYXkoKS0+Z2V0RmVhdHVyZXMoKS5hbGxvd1NlcGFyYXRlZERlcHRoU3RlbmNpbEJ1ZmZl
cnMuZW5hYmxlZCAmJgorICAgIGlmICghY29udGV4dE10bC0+Z2V0RGlzcGxheSgpLT5nZXRGZWF0
dXJlcygpLmFsbG93U2VwYXJhdGVEZXB0aFN0ZW5jaWxCdWZmZXJzLmVuYWJsZWQgJiYKICAgICAg
ICAgbVN0YXRlLmhhc1NlcGFyYXRlRGVwdGhBbmRTdGVuY2lsQXR0YWNobWVudHMoKSkKICAgICB7
CiAgICAgICAgIHJldHVybiBnbDo6RnJhbWVidWZmZXJTdGF0dXM6OkluY29tcGxldGUoCkBAIC02
ODcsMjYgKzY4Nyw0MSBAQCBhbmdsZTo6UmVzdWx0IEZyYW1lYnVmZmVyTXRsOjpnZXRTYW1wbGVQ
b3NpdGlvbihjb25zdCBnbDo6Q29udGV4dCAqY29udGV4dCwKICAgICByZXR1cm4gYW5nbGU6OlJl
c3VsdDo6U3RvcDsKIH0KIAotUmVuZGVyVGFyZ2V0TXRsICpGcmFtZWJ1ZmZlck10bDo6Z2V0Q29s
b3JSZWFkUmVuZGVyVGFyZ2V0KGNvbnN0IGdsOjpDb250ZXh0ICpjb250ZXh0KSBjb25zdAorYm9v
bCBGcmFtZWJ1ZmZlck10bDo6cHJlcGFyZUZvclVzZShjb25zdCBnbDo6Q29udGV4dCAqY29udGV4
dCkgY29uc3QKIHsKLSAgICBpZiAobVN0YXRlLmdldFJlYWRJbmRleCgpID49IG1Db2xvclJlbmRl
clRhcmdldHMuc2l6ZSgpKQotICAgIHsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQot
CiAgICAgaWYgKG1CYWNrYnVmZmVyKQogICAgIHsKLSAgICAgICAgYm9vbCBpc05ld0RyYXdhYmxl
ID0gZmFsc2U7Ci0gICAgICAgIGlmIChJc0Vycm9yKG1CYWNrYnVmZmVyLT5lbnN1cmVDdXJyZW50
RHJhd2FibGVPYnRhaW5lZChjb250ZXh0LCAmaXNOZXdEcmF3YWJsZSkpKQorICAgICAgICAvLyBC
YWNrYnVmZmVyIG1pZ2h0IG9idGFpbiBuZXcgZHJhd2FibGUsIHdoaWNoIG1lYW5zIGl0IG1pZ2h0
IGNoYW5nZSB0aGUKKyAgICAgICAgLy8gdGhlIG5hdGl2ZSB0ZXh0dXJlIHVzZWQgYXMgdGhlIHRh
cmdldCBvZiB0aGUgcmVuZGVyIHBhc3MuCisgICAgICAgIC8vIFdlIG5lZWQgdG8gY2FsbCB0aGlz
IGJlZm9yZSBjcmVhdGluZyByZW5kZXIgZW5jb2Rlci4KKyAgICAgICAgaWYgKElzRXJyb3IobUJh
Y2tidWZmZXItPmVuc3VyZUN1cnJlbnREcmF3YWJsZU9idGFpbmVkKGNvbnRleHQpKSkKICAgICAg
ICAgewotICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAoaXNOZXdEcmF3YWJsZSAmJiBtQmFja2J1ZmZl
ci0+aGFzUm9idXN0UmVzb3VyY2VJbml0KCkpCisgICAgICAgIGlmIChtQmFja2J1ZmZlci0+aGFz
Um9idXN0UmVzb3VyY2VJbml0KCkpCiAgICAgICAgIHsKLSAgICAgICAgICAgICh2b2lkKW1CYWNr
YnVmZmVyLT5pbml0aWFsaXplQ29udGVudHMoY29udGV4dCwgZ2w6OkltYWdlSW5kZXg6Ok1ha2Uy
RCgwKSk7CisgICAgICAgICAgICAodm9pZCltQmFja2J1ZmZlci0+aW5pdGlhbGl6ZUNvbnRlbnRz
KGNvbnRleHQsIEdMX0JBQ0ssIGdsOjpJbWFnZUluZGV4OjpNYWtlMkQoMCkpOworICAgICAgICAg
ICAgaWYgKG1CYWNrYnVmZmVyLT5oYXNEZXB0aFN0ZW5jaWwoKSkKKyAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgICAodm9pZCltQmFja2J1ZmZlci0+aW5pdGlhbGl6ZUNvbnRlbnRzKGNvbnRl
eHQsIEdMX0RFUFRILCBnbDo6SW1hZ2VJbmRleDo6TWFrZTJEKDApKTsKKyAgICAgICAgICAgIH0K
ICAgICAgICAgfQogICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKK30KKworUmVuZGVyVGFyZ2V0TXRs
ICpGcmFtZWJ1ZmZlck10bDo6Z2V0Q29sb3JSZWFkUmVuZGVyVGFyZ2V0KGNvbnN0IGdsOjpDb250
ZXh0ICpjb250ZXh0KSBjb25zdAoreworICAgIGlmIChtU3RhdGUuZ2V0UmVhZEluZGV4KCkgPj0g
bUNvbG9yUmVuZGVyVGFyZ2V0cy5zaXplKCkpCisgICAgeworICAgICAgICByZXR1cm4gbnVsbHB0
cjsKKyAgICB9CisKKyAgICBpZiAoIXByZXBhcmVGb3JVc2UoY29udGV4dCkpCisgICAgeworICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CiAKICAgICByZXR1cm4gbUNvbG9yUmVuZGVyVGFy
Z2V0c1ttU3RhdGUuZ2V0UmVhZEluZGV4KCldOwogfQpAQCAtNzYxLDIyICs3NzYsOSBAQCBtdGw6
OlJlbmRlckNvbW1hbmRFbmNvZGVyICpGcmFtZWJ1ZmZlck10bDo6ZW5zdXJlUmVuZGVyUGFzc1N0
YXJ0ZWQoY29uc3QgZ2w6OkNvbgogewogICAgIENvbnRleHRNdGwgKmNvbnRleHRNdGwgPSBtdGw6
OkdldEltcGwoY29udGV4dCk7CiAKLSAgICBpZiAobUJhY2tidWZmZXIpCisgICAgaWYgKCFwcmVw
YXJlRm9yVXNlKGNvbnRleHQpKQogICAgIHsKLSAgICAgICAgLy8gQmFja2J1ZmZlciBtaWdodCBv
YnRhaW4gbmV3IGRyYXdhYmxlLCB3aGljaCBtZWFucyBpdCBtaWdodCBjaGFuZ2UgdGhlCi0gICAg
ICAgIC8vIHRoZSBuYXRpdmUgdGV4dHVyZSB1c2VkIGFzIHRoZSB0YXJnZXQgb2YgdGhlIHJlbmRl
ciBwYXNzLgotICAgICAgICAvLyBXZSBuZWVkIHRvIGNhbGwgdGhpcyBiZWZvcmUgY3JlYXRpbmcg
cmVuZGVyIGVuY29kZXIuCi0gICAgICAgIGJvb2wgaXNOZXdEcmF3YWJsZTsKLSAgICAgICAgaWYg
KElzRXJyb3IobUJhY2tidWZmZXItPmVuc3VyZUN1cnJlbnREcmF3YWJsZU9idGFpbmVkKGNvbnRl
eHQsICZpc05ld0RyYXdhYmxlKSkpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBudWxs
cHRyOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKGlzTmV3RHJhd2FibGUgJiYgbUJhY2tidWZm
ZXItPmhhc1JvYnVzdFJlc291cmNlSW5pdCgpKQotICAgICAgICB7Ci0gICAgICAgICAgICAvLyBB
cHBseSByb2J1c3QgcmVzb3VyY2UgaW5pdGlhbGl6YXRpb24gb24gbmV3bHkgb2J0YWluZWQgZHJh
d2FibGUuCi0gICAgICAgICAgICAodm9pZCltQmFja2J1ZmZlci0+aW5pdGlhbGl6ZUNvbnRlbnRz
KGNvbnRleHQsIGdsOjpJbWFnZUluZGV4OjpNYWtlMkQoMCkpOwotICAgICAgICB9CisgICAgICAg
IHJldHVybiBudWxscHRyOwogICAgIH0KIAogICAgIC8vIE9ubHkgc3VwcG9ydCBlbnN1cmVSZW5k
ZXJQYXNzU3RhcnRlZCgpIHdpdGggZGlmZmVyZW50IGxvYWQgJiBzdG9yZSBvcHRpb25zIG9ubHku
IFRoZQpAQCAtMTQ4Niw2ICsxNDg4LDIwIEBAIGFuZ2xlOjpSZXN1bHQgRnJhbWVidWZmZXJNdGw6
OnJlYWRQaXhlbHNJbXBsKGNvbnN0IGdsOjpDb250ZXh0ICpjb250ZXh0LAogICAgICAgICB9CiAg
ICAgICAgIEFOR0xFX01UTF9DSEVDSyhjb250ZXh0TXRsLCB0ZXh0dXJlLT5zYW1wbGVzKCkgPT0g
MSwgR0xfSU5WQUxJRF9PUEVSQVRJT04pOwogICAgIH0KKworICAgIGlmIChjb250ZXh0TXRsLT5n
ZXREaXNwbGF5KCkKKyAgICAgICAgICAgIC0+Z2V0RmVhdHVyZXMoKQorICAgICAgICAgICAgLmNv
cHlJT1N1cmZhY2VUb05vbklPU3VyZmFjZUZvclJlYWRPcHRpbWl6YXRpb24uZW5hYmxlZCAmJgor
ICAgICAgICB0ZXh0dXJlLT5oYXNJT1N1cmZhY2UoKSAmJiB0ZXh0dXJlLT5taXBtYXBMZXZlbHMo
KSA9PSAxICYmCisgICAgICAgIHRleHR1cmUtPnRleHR1cmVUeXBlKCkgPT0gTVRMVGV4dHVyZVR5
cGUyRCkKKyAgICB7CisgICAgICAgIC8vIFJlYWRpbmcgYSB0ZXh0dXJlIG1heSBiZSBzbG93IGlm
IGl0J3MgYW4gSU9TdXJmYWNlIGJlY2F1c2UgbWV0YWwgaGFzIHRvIGxvY2svdW5sb2NrIHRoZQor
ICAgICAgICAvLyBzdXJmYWNlLCB3aGVyZWFzIGNvcHlpbmcgdGhlIHRleHR1cmUgdG8gbm9uIElP
U3VyZmFjZSB0ZXh0dXJlIGFuZCB0aGVuIHJlYWRpbmcgZnJvbSB0aGF0CisgICAgICAgIC8vIG1h
eSBiZSBmYXN0IGRlcGVuZGluZyBvbiB0aGUgR1BVL2RyaXZlci4KKyAgICAgICAgQU5HTEVfVFJZ
KGNvbnRleHRNdGwtPmNvcHkyRFRleHR1cmVTbGljZTBMZXZlbDBUb1dvcmtUZXh0dXJlKHRleHR1
cmUpKTsKKyAgICAgICAgdGV4dHVyZSA9IGNvbnRleHRNdGwtPmdldFdvcmtUZXh0dXJlKCk7Cisg
ICAgfQorCiAgICAgaWYgKHRleHR1cmUtPmlzQmVpbmdVc2VkQnlHUFUoY29udGV4dE10bCkpCiAg
ICAgewogICAgICAgICBjb250ZXh0TXRsLT5mbHVzaENvbW1hbmRCdWZmZXIobXRsOjpXYWl0VW50
aWxGaW5pc2hlZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGli
QU5HTEUvcmVuZGVyZXIvbWV0YWwvUHJvZ3JhbU10bC5tbSBiL1NvdXJjZS9UaGlyZFBhcnR5L0FO
R0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9tZXRhbC9Qcm9ncmFtTXRsLm1tCmluZGV4IGMxNmVk
M2FlNWNlYjg0YWYwNWJkMzc2ZDU1N2YzZjc4YWIxNjI2MmIuLjEzMjk2MWI0ZDA2NGVmZmQxNWUw
ZjQ3MDIzMTQ2MDg4ZDRhY2ViMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xF
L3NyYy9saWJBTkdMRS9yZW5kZXJlci9tZXRhbC9Qcm9ncmFtTXRsLm1tCisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9tZXRhbC9Qcm9ncmFtTXRsLm1t
CkBAIC02NzUsMTUgKzY3NSwxNCBAQCBhbmdsZTo6UmVzdWx0IFByb2dyYW1NdGw6OmdldFNwZWNp
YWxpemVkU2hhZGVyKENvbnRleHRNdGwgKmNvbnRleHQsCiAgICAgICAgICAgICAgICAgICAgIFtO
U1N0cmluZyBzdHJpbmdXaXRoVVRGOFN0cmluZzpzaDo6bXRsOjprQ292ZXJhZ2VNYXNrRW5hYmxl
ZENvbnN0TmFtZV07CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAKKyAgICAgICAgICAgIE5T
U3RyaW5nICpkZXB0aFdyaXRlRW5hYmxlZFN0ciA9CisgICAgICAgICAgICAgICAgW05TU3RyaW5n
IHN0cmluZ1dpdGhVVEY4U3RyaW5nOnNoOjptdGw6OmtEZXB0aFdyaXRlRW5hYmxlZENvbnN0TmFt
ZV07CiAKICAgICAgICAgICAgIGZ1bmNDb25zdGFudHMgPSBtdGw6OmFkb3B0T2JqQ09iaihbW01U
TEZ1bmN0aW9uQ29uc3RhbnRWYWx1ZXMgYWxsb2NdIGluaXRdKTsKICAgICAgICAgICAgIFtmdW5j
Q29uc3RhbnRzIHNldENvbnN0YW50VmFsdWU6JmVtdWxhdGVDb3ZlcmFnZU1hc2sKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6TVRMRGF0YVR5cGVCb29sCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhOYW1lOmNvdmVyYWdlTWFza0VuYWJs
ZWRTdHJdOwogICAgICAgICAgICAgCi0gICAgICAgICAgICBOU1N0cmluZyAqZGVwdGhXcml0ZUVu
YWJsZWRTdHIgPSAKLSAgICAgICAgICAgICAgICBbTlNTdHJpbmcgc3RyaW5nV2l0aFVURjhTdHJp
bmc6c2g6Om10bDo6a0RlcHRoV3JpdGVFbmFibGVkQ29uc3ROYW1lXTsKLSAgICAgICAgICAgIAog
ICAgICAgICAgICAgTVRMUGl4ZWxGb3JtYXQgZGVwdGhQaXhlbEZvcm1hdCA9CiAgICAgICAgICAg
ICAgICAgKE1UTFBpeGVsRm9ybWF0KXJlbmRlclBpcGVsaW5lRGVzYy5vdXRwdXREZXNjcmlwdG9y
LmRlcHRoQXR0YWNobWVudFBpeGVsRm9ybWF0OwogICAgICAgICAgICAgQk9PTCBmcmFnRGVwdGhX
cml0ZUVuYWJsZWQgPSBkZXB0aFBpeGVsRm9ybWF0ICE9IE1UTFBpeGVsRm9ybWF0SW52YWxpZDsK
QEAgLTcwNiw3ICs3MDUsNiBAQCBhbmdsZTo6UmVzdWx0IFByb2dyYW1NdGw6OmdldFNwZWNpYWxp
emVkU2hhZGVyKENvbnRleHRNdGwgKmNvbnRleHQsCiAgICAgICAgIHNldENvbnN0YW50VmFsdWU6
Jihjb250ZXh0LT5nZXREaXNwbGF5KCktPmdldEZlYXR1cmVzKCkuYWxsb3dTYW1wbGVyQ29tcGFy
ZUxvZC5lbmFibGVkKQogICAgICAgICAgICAgICAgICAgICB0eXBlOk1UTERhdGFUeXBlQm9vbAog
ICAgICAgICAgICAgICAgIHdpdGhOYW1lOkAiQU5HTEVVc2VTYW1wbGVDb21wYXJlTG9kIl07Ci0K
ICAgICAvLyBDcmVhdGUgTWV0YWwgc2hhZGVyIG9iamVjdAogICAgIEFOR0xFX01UTF9PQkpDX1ND
T1BFCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFO
R0xFL3JlbmRlcmVyL21ldGFsL1JlbmRlckJ1ZmZlck10bC5oIGIvU291cmNlL1RoaXJkUGFydHkv
QU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL21ldGFsL1JlbmRlckJ1ZmZlck10bC5oCmluZGV4
IDA1MzAyMGM1ZTNhNWE4NzA5MGEyY2IyZjVhZDVkZjA3MzA3NjVlNmMuLjdlMDI2N2ZmYjc3YTBi
YmY2ZTgxMTMzM2E5ZTU2NmQxMzIyMjE0MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5
L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9tZXRhbC9SZW5kZXJCdWZmZXJNdGwuaAorKysg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvbWV0YWwvUmVu
ZGVyQnVmZmVyTXRsLmgKQEAgLTQ0LDYgKzQ0LDcgQEAgY2xhc3MgUmVuZGVyYnVmZmVyTXRsIDog
cHVibGljIFJlbmRlcmJ1ZmZlckltcGwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgRnJhbWVidWZmZXJBdHRhY2htZW50UmVuZGVyVGFyZ2V0ICoqcnRPdXQpIG92
ZXJyaWRlOwogCiAgICAgYW5nbGU6OlJlc3VsdCBpbml0aWFsaXplQ29udGVudHMoY29uc3QgZ2w6
OkNvbnRleHQgKmNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
R0xlbnVtIGJpbmRpbmcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
c3QgZ2w6OkltYWdlSW5kZXggJmltYWdlSW5kZXgpIG92ZXJyaWRlOwogCiAgIHByaXZhdGU6CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIv
bWV0YWwvUmVuZGVyQnVmZmVyTXRsLm1tIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xp
YkFOR0xFL3JlbmRlcmVyL21ldGFsL1JlbmRlckJ1ZmZlck10bC5tbQppbmRleCA2ZWNmYTQ0YTlj
YjcyZmUwMzRhYWVhZDk3YmQ4YmFlYTM1N2NlZjVlLi4xMGY5OWZlZmZhZjA4ZjI4OTQ2MjljMTNm
NDNmOTI3OTY1OTMyNjU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMv
bGliQU5HTEUvcmVuZGVyZXIvbWV0YWwvUmVuZGVyQnVmZmVyTXRsLm1tCisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9tZXRhbC9SZW5kZXJCdWZmZXJN
dGwubW0KQEAgLTIwOCw2ICsyMDgsNyBAQCBhbmdsZTo6UmVzdWx0IFJlbmRlcmJ1ZmZlck10bDo6
Z2V0QXR0YWNobWVudFJlbmRlclRhcmdldChjb25zdCBnbDo6Q29udGV4dCAqY29udAogfQogCiBh
bmdsZTo6UmVzdWx0IFJlbmRlcmJ1ZmZlck10bDo6aW5pdGlhbGl6ZUNvbnRlbnRzKGNvbnN0IGds
OjpDb250ZXh0ICpjb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBHTGVudW0gYmluZGluZywKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2w6OkltYWdlSW5kZXggJmltYWdlSW5kZXgp
CiB7CiAgICAgaWYgKGltYWdlSW5kZXgudmFsaWQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGly
ZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9tZXRhbC9TdXJmYWNlTXRsLmggYi9T
b3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvbWV0YWwvU3VyZmFj
ZU10bC5oCmluZGV4IDEwZDJlNTI3ZTk3NjM0Zjc5Yjc2ZTc4ZWIwOTJiMjhhNmIyYTg5ZDMuLmFh
MTk1ODk4Nzk0NmM5YTJjMWNkZmU3MTk3MTc1ZGM1ZmMyNGEyYmIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9tZXRhbC9TdXJmYWNlTXRs
LmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL21l
dGFsL1N1cmZhY2VNdGwuaApAQCAtNzQsMTEgKzc0LDEzIEBAIGNsYXNzIFN1cmZhY2VNdGwgOiBw
dWJsaWMgU3VyZmFjZUltcGwKICAgICBFR0xpbnQgZ2V0U3dhcEJlaGF2aW9yKCkgY29uc3Qgb3Zl
cnJpZGU7CiAKICAgICBhbmdsZTo6UmVzdWx0IGluaXRpYWxpemVDb250ZW50cyhjb25zdCBnbDo6
Q29udGV4dCAqY29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBH
TGVudW0gYmluZGluZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z
dCBnbDo6SW1hZ2VJbmRleCAmaW1hZ2VJbmRleCkgb3ZlcnJpZGU7CiAKICAgICBjb25zdCBtdGw6
OlRleHR1cmVSZWYgJmdldENvbG9yVGV4dHVyZSgpIHsgcmV0dXJuIG1Db2xvclRleHR1cmU7IH0K
ICAgICBjb25zdCBtdGw6OkZvcm1hdCAmZ2V0Q29sb3JGb3JtYXQoKSBjb25zdCB7IHJldHVybiBt
Q29sb3JGb3JtYXQ7IH0KICAgICBpbnQgZ2V0U2FtcGxlcygpIGNvbnN0IHsgcmV0dXJuIG1TYW1w
bGVzOyB9CisgICAgYm9vbCBoYXNEZXB0aFN0ZW5jaWwoKSBjb25zdCB7IHJldHVybiBtRGVwdGhU
ZXh0dXJlIHx8IG1TdGVuY2lsVGV4dHVyZTsgfQogCiAgICAgYm9vbCBoYXNSb2J1c3RSZXNvdXJj
ZUluaXQoKSBjb25zdCB7IHJldHVybiBtUm9idXN0UmVzb3VyY2VJbml0OyB9CiAKQEAgLTEwNyw2
ICsxMDksNyBAQCBjbGFzcyBTdXJmYWNlTXRsIDogcHVibGljIFN1cmZhY2VJbXBsCiAgICAgYm9v
bCBtQXV0b1Jlc29sdmVNU0NvbG9yVGV4dHVyZSA9IGZhbHNlOwogCiAgICAgYm9vbCBtUm9idXN0
UmVzb3VyY2VJbml0ID0gZmFsc2U7CisgICAgYm9vbCBtQ29udGVudEluaXRpYWxpemVkID0gZmFs
c2U7CiAKICAgICBtdGw6OkZvcm1hdCBtQ29sb3JGb3JtYXQ7CiAgICAgbXRsOjpGb3JtYXQgbURl
cHRoRm9ybWF0OwpAQCAtMTQxLDYgKzE0NCw3IEBAIGNsYXNzIFdpbmRvd1N1cmZhY2VNdGwgOiBw
dWJsaWMgU3VyZmFjZU10bAogICAgIEVHTGludCBnZXRTd2FwQmVoYXZpb3IoKSBjb25zdCBvdmVy
cmlkZTsKIAogICAgIGFuZ2xlOjpSZXN1bHQgaW5pdGlhbGl6ZUNvbnRlbnRzKGNvbnN0IGdsOjpD
b250ZXh0ICpjb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdM
ZW51bSBiaW5kaW5nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IGdsOjpJbWFnZUluZGV4ICZpbWFnZUluZGV4KSBvdmVycmlkZTsKIAogICAgIC8vIHdpZHRoIGFu
ZCBoZWlnaHQgY2FuIGNoYW5nZSB3aXRoIGNsaWVudCB3aW5kb3cgcmVzaXppbmcKQEAgLTE1NCw4
ICsxNTgsNiBAQCBjbGFzcyBXaW5kb3dTdXJmYWNlTXRsIDogcHVibGljIFN1cmZhY2VNdGwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRnJhbWVidWZmZXJBdHRh
Y2htZW50UmVuZGVyVGFyZ2V0ICoqcnRPdXQpIG92ZXJyaWRlOwogCiAgICAgYW5nbGU6OlJlc3Vs
dCBlbnN1cmVDdXJyZW50RHJhd2FibGVPYnRhaW5lZChjb25zdCBnbDo6Q29udGV4dCAqY29udGV4
dCk7Ci0gICAgYW5nbGU6OlJlc3VsdCBlbnN1cmVDdXJyZW50RHJhd2FibGVPYnRhaW5lZChjb25z
dCBnbDo6Q29udGV4dCAqY29udGV4dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGJvb2wgKm5ld0RyYXdhYmxlT3V0IC8qKiBudWxsYWJsZSAqLyk7CiAK
ICAgICAvLyBFbnN1cmUgdGhlIHRoZSB0ZXh0dXJlIHJldHVybmVkIGZyb20gZ2V0Q29sb3JUZXh0
dXJlKCkgaXMgcmVhZHkgZm9yIGdsUmVhZFBpeGVscygpLiBUaGlzCiAgICAgLy8gaW1wbGljaXRs
eSBjYWxscyBlbnN1cmVDdXJyZW50RHJhd2FibGVPYnRhaW5lZCgpLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL21ldGFsL1N1cmZhY2VN
dGwubW0gYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvbWV0
YWwvU3VyZmFjZU10bC5tbQppbmRleCA2ODU1ZTQ1MTZjODFkMWRmMDhhMjgxZTc1YTJmYTRkZDEx
MGEyMDY4Li5hNDI3MmYxMjAwMDU1MzQ5Zjg3YzJiMzZjODhlOTBlYjU5YTUzMGFhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvbWV0YWwv
U3VyZmFjZU10bC5tbQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUv
cmVuZGVyZXIvbWV0YWwvU3VyZmFjZU10bC5tbQpAQCAtOTcsNyArOTcsNyBAQCBTdXJmYWNlTXRs
OjpTdXJmYWNlTXRsKERpc3BsYXlNdGwgKmRpc3BsYXksCiAKICAgICBpZiAoZGVwdGhCaXRzICYm
IHN0ZW5jaWxCaXRzKQogICAgIHsKLSAgICAgICAgaWYgKGRpc3BsYXktPmdldEZlYXR1cmVzKCku
YWxsb3dTZXBhcmF0ZWREZXB0aFN0ZW5jaWxCdWZmZXJzLmVuYWJsZWQpCisgICAgICAgIGlmIChk
aXNwbGF5LT5nZXRGZWF0dXJlcygpLmFsbG93U2VwYXJhdGVEZXB0aFN0ZW5jaWxCdWZmZXJzLmVu
YWJsZWQpCiAgICAgICAgIHsKICAgICAgICAgICAgIG1EZXB0aEZvcm1hdCAgID0gZGlzcGxheS0+
Z2V0UGl4ZWxGb3JtYXQoa0RlZmF1bHRGcmFtZUJ1ZmZlckRlcHRoRm9ybWF0SWQpOwogICAgICAg
ICAgICAgbVN0ZW5jaWxGb3JtYXQgPSBkaXNwbGF5LT5nZXRQaXhlbEZvcm1hdChrRGVmYXVsdEZy
YW1lQnVmZmVyU3RlbmNpbEZvcm1hdElkKTsKQEAgLTI1MiwzMyArMjUyLDU2IEBAIEVHTGludCBT
dXJmYWNlTXRsOjpnZXRTd2FwQmVoYXZpb3IoKSBjb25zdAogfQogCiBhbmdsZTo6UmVzdWx0IFN1
cmZhY2VNdGw6OmluaXRpYWxpemVDb250ZW50cyhjb25zdCBnbDo6Q29udGV4dCAqY29udGV4dCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMZW51bSBiaW5k
aW5nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
Z2w6OkltYWdlSW5kZXggJmltYWdlSW5kZXgpCiB7CiAgICAgQVNTRVJUKG1Db2xvclRleHR1cmUp
OworCisgICAgaWYgKG1Db250ZW50SW5pdGlhbGl6ZWQpCisgICAgeworICAgICAgICByZXR1cm4g
YW5nbGU6OlJlc3VsdDo6Q29udGludWU7CisgICAgfQorCiAgICAgQ29udGV4dE10bCAqY29udGV4
dE10bCA9IG10bDo6R2V0SW1wbChjb250ZXh0KTsKIAogICAgIC8vIFVzZSBsb2FkQWN0aW9uPWNs
ZWFyCiAgICAgbXRsOjpSZW5kZXJQYXNzRGVzYyBycERlc2M7Ci0gICAgcnBEZXNjLnNhbXBsZUNv
dW50ICAgICAgICAgPSBtQ29sb3JUZXh0dXJlLT5zYW1wbGVzKCk7Ci0gICAgcnBEZXNjLm51bUNv
bG9yQXR0YWNobWVudHMgPSAxOwotCi0gICAgbUNvbG9yUmVuZGVyVGFyZ2V0LnRvUmVuZGVyUGFz
c0F0dGFjaG1lbnREZXNjKCZycERlc2MuY29sb3JBdHRhY2htZW50c1swXSk7Ci0gICAgcnBEZXNj
LmNvbG9yQXR0YWNobWVudHNbMF0ubG9hZEFjdGlvbiA9IE1UTExvYWRBY3Rpb25DbGVhcjsKLSAg
ICBNVExDbGVhckNvbG9yIGJsYWNrICAgICAgICAgICAgICAgICAgID0ge307Ci0gICAgcnBEZXNj
LmNvbG9yQXR0YWNobWVudHNbMF0uY2xlYXJDb2xvciA9Ci0gICAgICAgIG10bDo6RW11bGF0ZWRB
bHBoYUNsZWFyQ29sb3IoYmxhY2ssIG1Db2xvclRleHR1cmUtPmdldENvbG9yV3JpdGFibGVNYXNr
KCkpOwotICAgIGlmIChtRGVwdGhUZXh0dXJlKQotICAgIHsKLSAgICAgICAgbURlcHRoUmVuZGVy
VGFyZ2V0LnRvUmVuZGVyUGFzc0F0dGFjaG1lbnREZXNjKCZycERlc2MuZGVwdGhBdHRhY2htZW50
KTsKLSAgICAgICAgcnBEZXNjLmRlcHRoQXR0YWNobWVudC5sb2FkQWN0aW9uID0gTVRMTG9hZEFj
dGlvbkNsZWFyOwotICAgIH0KLSAgICBpZiAobVN0ZW5jaWxUZXh0dXJlKQorICAgIHJwRGVzYy5z
YW1wbGVDb3VudCA9IG1Db2xvclRleHR1cmUtPnNhbXBsZXMoKTsKKworICAgIHN3aXRjaCAoYmlu
ZGluZykKICAgICB7Ci0gICAgICAgIG1TdGVuY2lsUmVuZGVyVGFyZ2V0LnRvUmVuZGVyUGFzc0F0
dGFjaG1lbnREZXNjKCZycERlc2Muc3RlbmNpbEF0dGFjaG1lbnQpOwotICAgICAgICBycERlc2Mu
c3RlbmNpbEF0dGFjaG1lbnQubG9hZEFjdGlvbiA9IE1UTExvYWRBY3Rpb25DbGVhcjsKKyAgICAg
ICAgY2FzZSBHTF9CQUNLOgorICAgICAgICB7CisgICAgICAgICAgICBycERlc2MubnVtQ29sb3JB
dHRhY2htZW50cyA9IDE7CisgICAgICAgICAgICBtQ29sb3JSZW5kZXJUYXJnZXQudG9SZW5kZXJQ
YXNzQXR0YWNobWVudERlc2MoJnJwRGVzYy5jb2xvckF0dGFjaG1lbnRzWzBdKTsKKyAgICAgICAg
ICAgIHJwRGVzYy5jb2xvckF0dGFjaG1lbnRzWzBdLmxvYWRBY3Rpb24gPSBNVExMb2FkQWN0aW9u
Q2xlYXI7CisgICAgICAgICAgICBNVExDbGVhckNvbG9yIGJsYWNrICAgICAgICAgICAgICAgICAg
ID0ge307CisgICAgICAgICAgICBycERlc2MuY29sb3JBdHRhY2htZW50c1swXS5jbGVhckNvbG9y
ID0KKyAgICAgICAgICAgICAgICBtdGw6OkVtdWxhdGVkQWxwaGFDbGVhckNvbG9yKGJsYWNrLCBt
Q29sb3JUZXh0dXJlLT5nZXRDb2xvcldyaXRhYmxlTWFzaygpKTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICB9CisgICAgICAgIGNhc2UgR0xfREVQVEg6CisgICAgICAgIGNhc2UgR0xfU1RF
TkNJTDoKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKG1EZXB0aFRleHR1cmUpCisgICAgICAg
ICAgICB7CisgICAgICAgICAgICAgICAgbURlcHRoUmVuZGVyVGFyZ2V0LnRvUmVuZGVyUGFzc0F0
dGFjaG1lbnREZXNjKCZycERlc2MuZGVwdGhBdHRhY2htZW50KTsKKyAgICAgICAgICAgICAgICBy
cERlc2MuZGVwdGhBdHRhY2htZW50LmxvYWRBY3Rpb24gPSBNVExMb2FkQWN0aW9uQ2xlYXI7Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobVN0ZW5jaWxUZXh0dXJlKQorICAgICAgICAg
ICAgeworICAgICAgICAgICAgICAgIG1TdGVuY2lsUmVuZGVyVGFyZ2V0LnRvUmVuZGVyUGFzc0F0
dGFjaG1lbnREZXNjKCZycERlc2Muc3RlbmNpbEF0dGFjaG1lbnQpOworICAgICAgICAgICAgICAg
IHJwRGVzYy5zdGVuY2lsQXR0YWNobWVudC5sb2FkQWN0aW9uID0gTVRMTG9hZEFjdGlvbkNsZWFy
OworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAg
ZGVmYXVsdDoKKyAgICAgICAgICAgIFVOUkVBQ0hBQkxFKCk7CisgICAgICAgICAgICBicmVhazsK
ICAgICB9CiAgICAgbXRsOjpSZW5kZXJDb21tYW5kRW5jb2RlciAqZW5jb2RlciA9IGNvbnRleHRN
dGwtPmdldFJlbmRlclBhc3NDb21tYW5kRW5jb2RlcihycERlc2MpOwogICAgIGVuY29kZXItPnNl
dFN0b3JlQWN0aW9uKE1UTFN0b3JlQWN0aW9uU3RvcmUpOworICAgIG1Db250ZW50SW5pdGlhbGl6
ZWQgPSB0cnVlOwogCiAgICAgcmV0dXJuIGFuZ2xlOjpSZXN1bHQ6OkNvbnRpbnVlOwogfQpAQCAt
NDk3LDE3ICs1MjAsMTEgQEAgRUdMaW50IFdpbmRvd1N1cmZhY2VNdGw6OmdldFN3YXBCZWhhdmlv
cigpIGNvbnN0CiB9CiAKIGFuZ2xlOjpSZXN1bHQgV2luZG93U3VyZmFjZU10bDo6aW5pdGlhbGl6
ZUNvbnRlbnRzKGNvbnN0IGdsOjpDb250ZXh0ICpjb250ZXh0LAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0xlbnVtIGJpbmRpbmcsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnbDo6SW1h
Z2VJbmRleCAmaW1hZ2VJbmRleCkKIHsKLSAgICBib29sIG5ld0RyYXdhYmxlOwotICAgIEFOR0xF
X1RSWShlbnN1cmVDdXJyZW50RHJhd2FibGVPYnRhaW5lZChjb250ZXh0LCAmbmV3RHJhd2FibGUp
KTsKLQotICAgIGlmICghbmV3RHJhd2FibGUpCi0gICAgewotICAgICAgICByZXR1cm4gYW5nbGU6
OlJlc3VsdDo6Q29udGludWU7Ci0gICAgfQotCi0gICAgcmV0dXJuIFN1cmZhY2VNdGw6OmluaXRp
YWxpemVDb250ZW50cyhjb250ZXh0LCBpbWFnZUluZGV4KTsKKyAgICBBTkdMRV9UUlkoZW5zdXJl
Q3VycmVudERyYXdhYmxlT2J0YWluZWQoY29udGV4dCkpOworICAgIHJldHVybiBTdXJmYWNlTXRs
Ojppbml0aWFsaXplQ29udGVudHMoY29udGV4dCwgYmluZGluZywgaW1hZ2VJbmRleCk7CiB9CiAK
IGFuZ2xlOjpSZXN1bHQgV2luZG93U3VyZmFjZU10bDo6Z2V0QXR0YWNobWVudFJlbmRlclRhcmdl
dChjb25zdCBnbDo6Q29udGV4dCAqY29udGV4dCwKQEAgLTUxNiw3ICs1MzMsNyBAQCBhbmdsZTo6
UmVzdWx0IFdpbmRvd1N1cmZhY2VNdGw6OmdldEF0dGFjaG1lbnRSZW5kZXJUYXJnZXQoY29uc3Qg
Z2w6OkNvbnRleHQgKmNvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEdMc2l6ZWkgc2FtcGxlcywKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGcmFtZWJ1ZmZlckF0dGFjaG1l
bnRSZW5kZXJUYXJnZXQgKipydE91dCkKIHsKLSAgICBBTkdMRV9UUlkoZW5zdXJlQ3VycmVudERy
YXdhYmxlT2J0YWluZWQoY29udGV4dCwgbnVsbHB0cikpOworICAgIEFOR0xFX1RSWShlbnN1cmVD
dXJyZW50RHJhd2FibGVPYnRhaW5lZChjb250ZXh0KSk7CiAgICAgQU5HTEVfVFJZKGVuc3VyZUNv
bXBhbmlvblRleHR1cmVzU2l6ZUNvcnJlY3QoY29udGV4dCkpOwogCiAgICAgcmV0dXJuIFN1cmZh
Y2VNdGw6OmdldEF0dGFjaG1lbnRSZW5kZXJUYXJnZXQoY29udGV4dCwgYmluZGluZywgaW1hZ2VJ
bmRleCwgc2FtcGxlcywgcnRPdXQpOwpAQCAtNTI0LDE2ICs1NDEsNiBAQCBhbmdsZTo6UmVzdWx0
IFdpbmRvd1N1cmZhY2VNdGw6OmdldEF0dGFjaG1lbnRSZW5kZXJUYXJnZXQoY29uc3QgZ2w6OkNv
bnRleHQgKmNvbgogCiBhbmdsZTo6UmVzdWx0IFdpbmRvd1N1cmZhY2VNdGw6OmVuc3VyZUN1cnJl
bnREcmF3YWJsZU9idGFpbmVkKGNvbnN0IGdsOjpDb250ZXh0ICpjb250ZXh0KQogewotICAgIHJl
dHVybiBlbnN1cmVDdXJyZW50RHJhd2FibGVPYnRhaW5lZChjb250ZXh0LCBudWxscHRyKTsKLX0K
LWFuZ2xlOjpSZXN1bHQgV2luZG93U3VyZmFjZU10bDo6ZW5zdXJlQ3VycmVudERyYXdhYmxlT2J0
YWluZWQoY29uc3QgZ2w6OkNvbnRleHQgKmNvbnRleHQsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgKm5ld0RyYXdhYmxl
T3V0KQotewotICAgIGlmIChuZXdEcmF3YWJsZU91dCkKLSAgICB7Ci0gICAgICAgICpuZXdEcmF3
YWJsZU91dCA9ICFtQ3VycmVudERyYXdhYmxlOwotICAgIH0KLQogICAgIGlmICghbUN1cnJlbnRE
cmF3YWJsZSkKICAgICB7CiAgICAgICAgIEFOR0xFX1RSWShvYnRhaW5OZXh0RHJhd2FibGUoY29u
dGV4dCkpOwpAQCAtNTU2LDcgKzU2Myw3IEBAIGFuZ2xlOjpSZXN1bHQgV2luZG93U3VyZmFjZU10
bDo6ZW5zdXJlQ29tcGFuaW9uVGV4dHVyZXNTaXplQ29ycmVjdChjb25zdCBnbDo6Q29uCiAKIGFu
Z2xlOjpSZXN1bHQgV2luZG93U3VyZmFjZU10bDo6ZW5zdXJlQ29sb3JUZXh0dXJlUmVhZHlGb3JS
ZWFkUGl4ZWxzKGNvbnN0IGdsOjpDb250ZXh0ICpjb250ZXh0KQogewotICAgIEFOR0xFX1RSWShl
bnN1cmVDdXJyZW50RHJhd2FibGVPYnRhaW5lZChjb250ZXh0LCBudWxscHRyKSk7CisgICAgQU5H
TEVfVFJZKGVuc3VyZUN1cnJlbnREcmF3YWJsZU9idGFpbmVkKGNvbnRleHQpKTsKIAogICAgIGlm
IChtTVNDb2xvclRleHR1cmUpCiAgICAgewpAQCAtNjMyLDYgKzYzOSw3IEBAIGFuZ2xlOjpSZXN1
bHQgV2luZG93U3VyZmFjZU10bDo6b2J0YWluTmV4dERyYXdhYmxlKGNvbnN0IGdsOjpDb250ZXh0
ICpjb250ZXh0KQogICAgICAgICAgICAgbU1ldGFsTGF5ZXIuZ2V0KCkuYWxsb3dzTmV4dERyYXdh
YmxlVGltZW91dCA9IE5POwogICAgICAgICAgICAgbUN1cnJlbnREcmF3YWJsZS5yZXRhaW5Bc3Np
Z24oW21NZXRhbExheWVyIG5leHREcmF3YWJsZV0pOwogICAgICAgICAgICAgbU1ldGFsTGF5ZXIu
Z2V0KCkuYWxsb3dzTmV4dERyYXdhYmxlVGltZW91dCA9IFlFUzsKKyAgICAgICAgICAgIG1Db250
ZW50SW5pdGlhbGl6ZWQgICAgICAgICAgICAgICAgICAgICAgICAgPSBmYWxzZTsKICAgICAgICAg
fQogCiAgICAgICAgIGlmICghbUNvbG9yVGV4dHVyZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGly
ZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9tZXRhbC9UZXh0dXJlTXRsLmggYi9T
b3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvbWV0YWwvVGV4dHVy
ZU10bC5oCmluZGV4IGQ2MDgyYzgyYmZkY2Y1ZDM3OGYwNGZjMGQzOTU4YTUxYTFlNWE1OWMuLjI0
NmQ2MjQzNTllMmY0Mjc1NDYwODM0N2RlN2Q4MWNiNWM3NjA5NDUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9tZXRhbC9UZXh0dXJlTXRs
LmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL21l
dGFsL1RleHR1cmVNdGwuaApAQCAtMTU1LDYgKzE1NSw3IEBAIGNsYXNzIFRleHR1cmVNdGwgOiBw
dWJsaWMgVGV4dHVyZUltcGwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBib29sIGZpeGVkU2FtcGxlTG9jYXRpb25zKSBvdmVycmlkZTsKIAogICAgIGFuZ2xlOjpSZXN1
bHQgaW5pdGlhbGl6ZUNvbnRlbnRzKGNvbnN0IGdsOjpDb250ZXh0ICpjb250ZXh0LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMZW51bSBiaW5kaW5nLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdsOjpJbWFnZUluZGV4ICZpbWFnZUlu
ZGV4KSBvdmVycmlkZTsKIAogICAgIC8vIFRoZSB0ZXh0dXJlJ3MgZGF0YSBpcyBpbml0aWFsbHkg
aW5pdGlhbGl6ZWQgYW5kIHN0b3JlZCBpbiBhbiBhcnJheQpAQCAtMzQ2LDggKzM0Nyw2IEBAIGNs
YXNzIFRleHR1cmVNdGwgOiBwdWJsaWMgVGV4dHVyZUltcGwKIAogICAgIEdMdWludCBtQ3VycmVu
dEJhc2VMZXZlbCA9IDA7CiAgICAgR0x1aW50IG1DdXJyZW50TWF4TGV2ZWwgID0gMTAwMDsKLQot
ICAgIGJvb2wgbUlzUG93MiA9IGZhbHNlOwogfTsKIAogfSAgLy8gbmFtZXNwYWNlIHJ4CmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvbWV0
YWwvVGV4dHVyZU10bC5tbSBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9y
ZW5kZXJlci9tZXRhbC9UZXh0dXJlTXRsLm1tCmluZGV4IGYxZTdiOTU4Mzc3YTM3Njg0YzM5NjQz
MTUxNGJjYTQ4ZjFjNTRkZTQuLjg5ZjljNjg3OWEyNjNmZjg0NGM5NjU0YzcyYTUzMzBmODA2NjNm
N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5k
ZXJlci9tZXRhbC9UZXh0dXJlTXRsLm1tCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3Ny
Yy9saWJBTkdMRS9yZW5kZXJlci9tZXRhbC9UZXh0dXJlTXRsLm1tCkBAIC02NzcsNyArNjc3LDYg
QEAgdm9pZCBUZXh0dXJlTXRsOjpyZWxlYXNlVGV4dHVyZShib29sIHJlbGVhc2VJbWFnZXMsIGJv
b2wgcmVsZWFzZVRleHR1cmVPYmplY3RzT24KICAgICB7CiAgICAgICAgIG1NZXRhbFNhbXBsZXJT
dGF0ZSA9IG5pbDsKICAgICAgICAgbUZvcm1hdCAgICAgICAgICAgID0gbXRsOjpGb3JtYXQoKTsK
LSAgICAgICAgbUlzUG93MiAgICAgICAgICAgID0gZmFsc2U7CiAgICAgfQogfQogCkBAIC03MTQs
NyArNzEzLDYgQEAgYW5nbGU6OlJlc3VsdCBUZXh0dXJlTXRsOjpjcmVhdGVOYXRpdmVUZXh0dXJl
KGNvbnN0IGdsOjpDb250ZXh0ICpjb250ZXh0LAogICAgIG1DdXJyZW50QmFzZUxldmVsID0gbVN0
YXRlLmdldEVmZmVjdGl2ZUJhc2VMZXZlbCgpOwogICAgIG1DdXJyZW50TWF4TGV2ZWwgID0gbVN0
YXRlLmdldEVmZmVjdGl2ZU1heExldmVsKCk7CiAKLSAgICBtSXNQb3cyICAgICAgICAgID0gZ2w6
OmlzUG93MihzaXplLndpZHRoKSAmJiBnbDo6aXNQb3cyKHNpemUuaGVpZ2h0KSAmJiBnbDo6aXNQ
b3cyKHNpemUuZGVwdGgpOwogICAgIG1TbGljZXMgICAgICAgICAgPSAxOwogICAgIGludCBudW1D
dWJlRmFjZXMgPSAxOwogICAgIHN3aXRjaCAodHlwZSkKQEAgLTExMTMsNyArMTExMSw3IEBAIGFu
Z2xlOjpSZXN1bHQgVGV4dHVyZU10bDo6Y29weUltYWdlKGNvbnN0IGdsOjpDb250ZXh0ICpjb250
ZXh0LAogICAgIGdsOjpSZWN0YW5nbGUgZmJSZWN0KDAsIDAsIGZiU2l6ZS53aWR0aCwgZmJTaXpl
LmhlaWdodCk7CiAgICAgaWYgKGNvbnRleHQtPmlzV2ViR0woKSAmJiAhZmJSZWN0LmVuY2xvc2Vz
KHNvdXJjZUFyZWEpKQogICAgIHsKLSAgICAgICAgQU5HTEVfVFJZKGluaXRpYWxpemVDb250ZW50
cyhjb250ZXh0LCBpbmRleCkpOworICAgICAgICBBTkdMRV9UUlkoaW5pdGlhbGl6ZUNvbnRlbnRz
KGNvbnRleHQsIEdMX05PTkUsIGluZGV4KSk7CiAgICAgfQogCiAgICAgcmV0dXJuIGNvcHlTdWJJ
bWFnZUltcGwoY29udGV4dCwgaW5kZXgsIGdsOjpPZmZzZXQoMCwgMCwgMCksIHNvdXJjZUFyZWEs
IGludGVybmFsRm9ybWF0SW5mbywKQEAgLTEyNTIsOCArMTI1MCw2IEBAIGFuZ2xlOjpSZXN1bHQg
VGV4dHVyZU10bDo6c2V0RUdMSW1hZ2VUYXJnZXQoY29uc3QgZ2w6OkNvbnRleHQgKmNvbnRleHQs
CiAKICAgICBtU2xpY2VzID0gbU5hdGl2ZVRleHR1cmUtPmN1YmVGYWNlc09yQXJyYXlMZW5ndGgo
KTsKIAotICAgIGdsOjpFeHRlbnRzIHNpemUgPSBtTmF0aXZlVGV4dHVyZS0+c2l6ZUF0MCgpOwot
ICAgIG1Jc1BvdzIgICAgICAgICAgPSBnbDo6aXNQb3cyKHNpemUud2lkdGgpICYmIGdsOjppc1Bv
dzIoc2l6ZS5oZWlnaHQpICYmIGdsOjppc1BvdzIoc2l6ZS5kZXB0aCk7CiAgICAgQU5HTEVfVFJZ
KGVuc3VyZVNhbXBsZXJTdGF0ZUNyZWF0ZWQoY29udGV4dCkpOwogCiAgICAgLy8gVGVsbCBjb250
ZXh0IHRvIHJlYmluZCB0ZXh0dXJlcwpAQCAtMTM4OSwxMSArMTM4NSw5IEBAIGFuZ2xlOjpSZXN1
bHQgVGV4dHVyZU10bDo6YmluZFRleEltYWdlKGNvbnN0IGdsOjpDb250ZXh0ICpjb250ZXh0LCBl
Z2w6OlN1cmZhY2UKIHsKICAgICByZWxlYXNlVGV4dHVyZSh0cnVlKTsKIAotICAgIGF1dG8gcEJ1
ZmZlciAgICAgPSBHZXRJbXBsQXM8T2Zmc2NyZWVuU3VyZmFjZU10bD4oc3VyZmFjZSk7Ci0gICAg
bU5hdGl2ZVRleHR1cmUgICA9IHBCdWZmZXItPmdldENvbG9yVGV4dHVyZSgpOwotICAgIG1Gb3Jt
YXQgICAgICAgICAgPSBwQnVmZmVyLT5nZXRDb2xvckZvcm1hdCgpOwotICAgIGdsOjpFeHRlbnRz
IHNpemUgPSBtTmF0aXZlVGV4dHVyZS0+c2l6ZUF0MCgpOwotICAgIG1Jc1BvdzIgICAgICAgICAg
PSBnbDo6aXNQb3cyKHNpemUud2lkdGgpICYmIGdsOjppc1BvdzIoc2l6ZS5oZWlnaHQpICYmIGds
Ojppc1BvdzIoc2l6ZS5kZXB0aCk7CisgICAgYXV0byBwQnVmZmVyICAgPSBHZXRJbXBsQXM8T2Zm
c2NyZWVuU3VyZmFjZU10bD4oc3VyZmFjZSk7CisgICAgbU5hdGl2ZVRleHR1cmUgPSBwQnVmZmVy
LT5nZXRDb2xvclRleHR1cmUoKTsKKyAgICBtRm9ybWF0ICAgICAgICA9IHBCdWZmZXItPmdldENv
bG9yRm9ybWF0KCk7CiAgICAgQU5HTEVfVFJZKGVuc3VyZVNhbXBsZXJTdGF0ZUNyZWF0ZWQoY29u
dGV4dCkpOwogCiAgICAgLy8gVGVsbCBjb250ZXh0IHRvIHJlYmluZCB0ZXh0dXJlcwpAQCAtMjAy
NCw2ICsyMDE4LDcgQEAgYW5nbGU6OlJlc3VsdCBUZXh0dXJlTXRsOjpjaGVja0ZvckVtdWxhdGVk
Q2hhbm5lbHMoY29uc3QgZ2w6OkNvbnRleHQgKmNvbnRleHQsCiB9CiAKIGFuZ2xlOjpSZXN1bHQg
VGV4dHVyZU10bDo6aW5pdGlhbGl6ZUNvbnRlbnRzKGNvbnN0IGdsOjpDb250ZXh0ICpjb250ZXh0
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0xlbnVtIGJp
bmRpbmcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z
dCBnbDo6SW1hZ2VJbmRleCAmaW5kZXgpCiB7CiAgICAgaWYgKGluZGV4LmlzTGF5ZXJlZCgpKQpA
QCAtMjA0NCw3ICsyMDM5LDcgQEAgYW5nbGU6OlJlc3VsdCBUZXh0dXJlTXRsOjppbml0aWFsaXpl
Q29udGVudHMoY29uc3QgZ2w6OkNvbnRleHQgKmNvbnRleHQsCiAgICAgICAgIHdoaWxlIChpdGUu
aGFzTmV4dCgpKQogICAgICAgICB7CiAgICAgICAgICAgICBnbDo6SW1hZ2VJbmRleCBsYXllcklu
ZGV4ID0gaXRlLm5leHQoKTsKLSAgICAgICAgICAgIEFOR0xFX1RSWShpbml0aWFsaXplQ29udGVu
dHMoY29udGV4dCwgbGF5ZXJJbmRleCkpOworICAgICAgICAgICAgQU5HTEVfVFJZKGluaXRpYWxp
emVDb250ZW50cyhjb250ZXh0LCBHTF9OT05FLCBsYXllckluZGV4KSk7CiAgICAgICAgIH0KICAg
ICAgICAgcmV0dXJuIGFuZ2xlOjpSZXN1bHQ6OkNvbnRpbnVlOwogICAgIH0KQEAgLTIwNTUsNyAr
MjA1MCw3IEBAIGFuZ2xlOjpSZXN1bHQgVGV4dHVyZU10bDo6aW5pdGlhbGl6ZUNvbnRlbnRzKGNv
bnN0IGdsOjpDb250ZXh0ICpjb250ZXh0LAogICAgICAgICAgICAgaW50IGxheWVySWR4ID0gbGF5
ZXIgKyBpbmRleC5nZXRMYXllckluZGV4KCk7CiAgICAgICAgICAgICBnbDo6SW1hZ2VJbmRleCBs
YXllckluZGV4ID0KICAgICAgICAgICAgICAgICBnbDo6SW1hZ2VJbmRleDo6TWFrZUZyb21UeXBl
KGluZGV4LmdldFR5cGUoKSwgaW5kZXguZ2V0TGV2ZWxJbmRleCgpLCBsYXllcklkeCk7Ci0gICAg
ICAgICAgICBBTkdMRV9UUlkoaW5pdGlhbGl6ZUNvbnRlbnRzKGNvbnRleHQsIGxheWVySW5kZXgp
KTsKKyAgICAgICAgICAgIEFOR0xFX1RSWShpbml0aWFsaXplQ29udGVudHMoY29udGV4dCwgR0xf
Tk9ORSwgbGF5ZXJJbmRleCkpOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBhbmdsZTo6UmVz
dWx0OjpDb250aW51ZTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdM
RS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvbWV0YWwvbXRsX2dsc2xhbmdfdXRpbHMubW0gYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvbWV0YWwvbXRsX2dsc2xh
bmdfdXRpbHMubW0KaW5kZXggZTJlY2MwMzU5ODk3YzdlZWEyY2MyYzU0MjI4YmQ1MzEyNTJlYTMz
YS4uZjcwNzQyZWQ2OTQ1MTExYjg4ODY4MTQ2MTA2NjczNWNhODU0MzQ4YSAxMDA2NDQKLS0tIGEv
U291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL21ldGFsL210bF9n
bHNsYW5nX3V0aWxzLm1tCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdM
RS9yZW5kZXJlci9tZXRhbC9tdGxfZ2xzbGFuZ191dGlscy5tbQpAQCAtMzkzLDE1ICszOTMsMTcg
QEAgdm9pZCBHbHNsYW5nR2V0U2hhZGVyU3BpcnZDb2RlKGNvbnN0IGdsOjpQcm9ncmFtU3RhdGUg
JnByb2dyYW1TdGF0ZSwKICAgICByeDo6R2xzbGFuZ0dldFNoYWRlclNwaXJ2Q29kZShvcHRpb25z
LCBwcm9ncmFtU3RhdGUsIHJlc291cmNlcywgJnByb2dyYW1JbnRlcmZhY2VJbmZvLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwaXJ2QmxvYnNPdXQsIHZhcmlhYmxlSW5mb01h
cE91dCk7CiAKKyAgICBjb25zdCBnbDo6UHJvZ3JhbUV4ZWN1dGFibGUgJnByb2dyYW1FeGVjdXRh
YmxlID0gcHJvZ3JhbVN0YXRlLmdldEV4ZWN1dGFibGUoKTsKKwogICAgIC8vIEZpbGwgdmFyaWFi
bGUgaW5mbyBtYXAgd2l0aCB0cmFuc2Zvcm0gZmVlZGJhY2sgZW5hYmxlZC4KLSAgICBpZiAoIXBy
b2dyYW1TdGF0ZS5nZXRMaW5rZWRUcmFuc2Zvcm1GZWVkYmFja1ZhcnlpbmdzKCkuZW1wdHkoKSkK
KyAgICBpZiAoIXByb2dyYW1FeGVjdXRhYmxlLmdldExpbmtlZFRyYW5zZm9ybUZlZWRiYWNrVmFy
eWluZ3MoKS5lbXB0eSgpKQogICAgIHsKICAgICAgICAgR2xzbGFuZ1Byb2dyYW1JbnRlcmZhY2VJ
bmZvIHhmYk9ubHlJbnRlcmZhY2VJbmZvOwogICAgICAgICBSZXNldEdsc2xhbmdQcm9ncmFtSW50
ZXJmYWNlSW5mbygmeGZiT25seUludGVyZmFjZUluZm8pOwogCiAgICAgICAgIG9wdGlvbnMuZW5h
YmxlVHJhbnNmb3JtRmVlZGJhY2tFbXVsYXRpb24gPSB0cnVlOwogICAgICAgICBVbmlmb3JtQmlu
ZGluZ0luZGV4TWFwIHVuaWZvcm1CaW5kaW5nSW5kZXhNYXA7Ci0gICAgICAgIEdsc2xhbmdBc3Np
Z25Mb2NhdGlvbnMob3B0aW9ucywgcHJvZ3JhbVN0YXRlLCByZXNvdXJjZXMudmFyeWluZ1BhY2tp
bmcsCisgICAgICAgIEdsc2xhbmdBc3NpZ25Mb2NhdGlvbnMob3B0aW9ucywgcHJvZ3JhbUV4ZWN1
dGFibGUsIHJlc291cmNlcy52YXJ5aW5nUGFja2luZywKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBnbDo6U2hhZGVyVHlwZTo6VmVydGV4LCBnbDo6U2hhZGVyVHlwZTo6SW52YWxpZEVu
dW0sIHRydWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnhmYk9ubHlJbnRlcmZh
Y2VJbmZvLCAmdW5pZm9ybUJpbmRpbmdJbmRleE1hcCwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB4ZmJPbmx5VlNWYXJpYWJsZUluZm9NYXBPdXQpOwpAQCAtNDU3LDExICs0NTksMTAg
QEAgYW5nbGU6OlJlc3VsdCBTcGlydkNvZGVUb01zbChDb250ZXh0ICpjb250ZXh0LAogICAgIGFu
Z2xlOjpIYXNoTWFwPHVpbnQzMl90LCB1aW50MzJfdD4geGZiT3JpZ2luYWxCaW5kaW5nczsKICAg
ICBmb3IgKHVpbnQzMl90IGJ1ZmZlcklkeCA9IDA7IGJ1ZmZlcklkeCA8IGtNYXhTaGFkZXJYRkJz
OyArK2J1ZmZlcklkeCkKICAgICB7Ci0gICAgICAgIHN0ZDo6c3RyaW5nIGJ1ZmZlck5hbWUgPSBy
eDo6R2V0WGZiQnVmZmVyTmFtZShidWZmZXJJZHgpOwotICAgICAgICBpZiAoeGZiVlNWYXJpYWJs
ZUluZm9NYXAuY29udGFpbnMoZ2w6OlNoYWRlclR5cGU6OlZlcnRleCwgYnVmZmVyTmFtZSkpCisg
ICAgICAgIGlmICh4ZmJWU1ZhcmlhYmxlSW5mb01hcC5oYXNUcmFuc2Zvcm1GZWVkYmFja0luZm8o
Z2w6OlNoYWRlclR5cGU6OlZlcnRleCwgYnVmZmVySWR4KSkKICAgICAgICAgewogICAgICAgICAg
ICAgY29uc3QgU2hhZGVySW50ZXJmYWNlVmFyaWFibGVJbmZvICZpbmZvID0KLSAgICAgICAgICAg
ICAgICB4ZmJWU1ZhcmlhYmxlSW5mb01hcC5nZXQoZ2w6OlNoYWRlclR5cGU6OlZlcnRleCwgYnVm
ZmVyTmFtZSk7CisgICAgICAgICAgICAgICAgeGZiVlNWYXJpYWJsZUluZm9NYXAuZ2V0VHJhbnNm
b3JtRmVlZGJhY2tJbmZvKGdsOjpTaGFkZXJUeXBlOjpWZXJ0ZXgsIGJ1ZmZlcklkeCk7CiAgICAg
ICAgICAgICB4ZmJPcmlnaW5hbEJpbmRpbmdzW2luZm8uYmluZGluZ10gPSBidWZmZXJJZHg7CiAg
ICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMv
bGliQU5HTEUvcmVuZGVyZXIvbWV0YWwvbXRsX3JlbmRlcl91dGlscy5tbSBiL1NvdXJjZS9UaGly
ZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9tZXRhbC9tdGxfcmVuZGVyX3V0aWxz
Lm1tCmluZGV4IGUwNzUyOTVmODEwYzcyYmYwM2UyODk5ZGZiODMxM2ZlMjc2OGZkYTMuLjlmYTkz
MThmZGVlNzYwODhjZmNiOGE0MjQyMDQ2NTk0MDI3OTQ4MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9U
aGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9tZXRhbC9tdGxfcmVuZGVyX3V0
aWxzLm1tCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJl
ci9tZXRhbC9tdGxfcmVuZGVyX3V0aWxzLm1tCkBAIC0xNzQ2LDcgKzE3NDYsNyBAQCBhbmdsZTo6
UmVzdWx0IERlcHRoU3RlbmNpbEJsaXRVdGlsczo6c2V0dXBEZXB0aFN0ZW5jaWxCbGl0V2l0aERy
YXcoCiAgICAgewogICAgICAgICBjbWRFbmNvZGVyLT5zZXRGcmFnbWVudFRleHR1cmUocGFyYW1z
LnNyY1N0ZW5jaWwsIDEpOwogCi0gICAgICAgIGlmICghY29udGV4dE10bC0+Z2V0RGlzcGxheSgp
LT5nZXRGZWF0dXJlcygpLmhhc1N0ZW5jaWxPdXRwdXQuZW5hYmxlZCkKKyAgICAgICAgaWYgKCFj
b250ZXh0TXRsLT5nZXREaXNwbGF5KCktPmdldEZlYXR1cmVzKCkuaGFzU2hhZGVyU3RlbmNpbE91
dHB1dC5lbmFibGVkKQogICAgICAgICB7CiAgICAgICAgICAgICAvLyBIYXJkd2FyZSBtdXN0IHN1
cHBvcnQgc3RlbmNpbCB3cml0aW5nIGRpcmVjdGx5IGluIHNoYWRlci4KICAgICAgICAgICAgIFVO
UkVBQ0hBQkxFKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGli
QU5HTEUvcmVuZGVyZXIvbWV0YWwvbXRsX3Jlc291cmNlcy5oIGIvU291cmNlL1RoaXJkUGFydHkv
QU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL21ldGFsL210bF9yZXNvdXJjZXMuaAppbmRleCAx
OWE5NzQwODc5NmM3ODY5NGU2MGRhZjg2YzAxOGQzYjQzNGE0MjE2Li45ODA1YWE3MDVhMjU5YTk3
ZTkyNDE4Mzg3ZjEyMzg1MTcxYjJmYTU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9B
TkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvbWV0YWwvbXRsX3Jlc291cmNlcy5oCisrKyBiL1Nv
dXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9tZXRhbC9tdGxfcmVz
b3VyY2VzLmgKQEAgLTE2NSwxNSArMTY1LDYgQEAgY2xhc3MgVGV4dHVyZSBmaW5hbCA6IHB1Ymxp
YyBSZXNvdXJjZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wg
cmVuZGVyVGFyZ2V0T25seSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGJvb2wgYWxsb3dGb3JtYXRWaWV3LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgVGV4dHVyZVJlZiAqcmVmT3V0KTsKLQotICAgIHN0YXRpYyBhbmdsZTo6UmVzdWx0IE1h
a2VJT1N1cmZhY2VUZXh0dXJlKENvbnRleHRNdGwgKmNvbnRleHQsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgRm9ybWF0ICZmb3JtYXQsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3Qgd2lkdGgs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3Qg
aGVpZ2h0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElP
U3VyZmFjZVJlZiByZWYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdWludDMyX3QgcGxhbmUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgVGV4dHVyZVJlZiAqcmVmT3V0KTsKLQogICAgIHN0YXRpYyBUZXh0dXJlUmVm
IE1ha2VGcm9tTWV0YWwoaWQ8TVRMVGV4dHVyZT4gbWV0YWxUZXh0dXJlKTsKIAogICAgIC8vIEFs
bG93IENQVSB0byByZWFkICYgd3JpdGUgZGF0YSBkaXJlY3RseSB0byB0aGlzIHRleHR1cmU/CkBA
IC0yNDIsNiArMjMzLDkgQEAgY2xhc3MgVGV4dHVyZSBmaW5hbCA6IHB1YmxpYyBSZXNvdXJjZSwK
IAogICAgIHVpbnQzMl90IHNhbXBsZXMoKSBjb25zdDsKIAorICAgIGJvb2wgaGFzSU9TdXJmYWNl
KCkgY29uc3Q7CisgICAgYm9vbCBzYW1lVHlwZUFuZERpbWVtc2lvbnNBcyhjb25zdCBUZXh0dXJl
UmVmICZvdGhlcikgY29uc3Q7CisKICAgICBhbmdsZTo6UmVzdWx0IHJlc2l6ZShDb250ZXh0TXRs
ICpjb250ZXh0LCB1aW50MzJfdCB3aWR0aCwgdWludDMyX3QgaGVpZ2h0KTsKIAogICAgIC8vIEZv
ciByZW5kZXIgdGFyZ2V0CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMv
bGliQU5HTEUvcmVuZGVyZXIvbWV0YWwvbXRsX3Jlc291cmNlcy5tbSBiL1NvdXJjZS9UaGlyZFBh
cnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9tZXRhbC9tdGxfcmVzb3VyY2VzLm1tCmlu
ZGV4IDdlYmYzMTY5MDA1NWZkMzg0NjdmZWI5OWM0ZTEyYjgwMWQ3ZDFjZTMuLjlhNTUzYWJhMTVk
MDA0YWRjYmI4MTAwNTQ4N2E0OGY1YTI1ZTIxOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBh
cnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9tZXRhbC9tdGxfcmVzb3VyY2VzLm1tCisr
KyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9tZXRhbC9t
dGxfcmVzb3VyY2VzLm1tCkBAIC0yNDYsMjMgKzI0Niw2IEBAIGFuZ2xlOjpSZXN1bHQgVGV4dHVy
ZTo6TWFrZTNEVGV4dHVyZShDb250ZXh0TXRsICpjb250ZXh0LAogICAgICAgICByZXR1cm4gTWFr
ZVRleHR1cmUoY29udGV4dCwgZm9ybWF0LCBkZXNjLCBtaXBzLCByZW5kZXJUYXJnZXRPbmx5LCBh
bGxvd0Zvcm1hdFZpZXcsIHJlZk91dCk7CiAgICAgfSAgLy8gQU5HTEVfTVRMX09CSkNfU0NPUEUK
IH0KLWFuZ2xlOjpSZXN1bHQgVGV4dHVyZTo6TWFrZUlPU3VyZmFjZVRleHR1cmUoQ29udGV4dE10
bCAqY29udGV4dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgRm9ybWF0ICZmb3JtYXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHVpbnQzMl90IHdpZHRoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB1aW50MzJfdCBoZWlnaHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIElPU3VyZmFjZVJlZiByZWYsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IHBsYW5lLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0dXJlUmVmICpyZWZPdXQpCi17Ci0gICAg
TVRMVGV4dHVyZURlc2NyaXB0b3IgKmRlc2MgPSBbW01UTFRleHR1cmVEZXNjcmlwdG9yIG5ld10g
QU5HTEVfTVRMX0FVVE9SRUxFQVNFXTsKLSAgICBkZXNjLnRleHR1cmVUeXBlICAgICAgICAgICA9
IE1UTFRleHR1cmVUeXBlMkQ7Ci0gICAgZGVzYy5waXhlbEZvcm1hdCAgICAgICAgICAgPSBmb3Jt
YXQubWV0YWxGb3JtYXQ7Ci0gICAgZGVzYy53aWR0aCAgICAgICAgICAgICAgICAgPSB3aWR0aDsK
LSAgICBkZXNjLmhlaWdodCAgICAgICAgICAgICAgICA9IGhlaWdodDsKLSAgICBkZXNjLm1pcG1h
cExldmVsQ291bnQgICAgICA9IDE7Ci0gICAgZGVzYy5zYW1wbGVDb3VudCAgICAgICAgICAgPSAx
OwotICAgIHJldHVybiBNYWtlVGV4dHVyZShjb250ZXh0LCBmb3JtYXQsIGRlc2MsIHJlZiwgcGxh
bmUsIE5PLCByZWZPdXQpOwotfQogCiAvKiogc3RhdGljICovCiBhbmdsZTo6UmVzdWx0IFRleHR1
cmU6Ok1ha2VUZXh0dXJlKENvbnRleHRNdGwgKmNvbnRleHQsCkBAIC03NzEsNiArNzU0LDIwIEBA
IHVpbnQzMl90IFRleHR1cmU6OnNhbXBsZXMoKSBjb25zdAogICAgIHJldHVybiBzdGF0aWNfY2Fz
dDx1aW50MzJfdD4oZ2V0KCkuc2FtcGxlQ291bnQpOwogfQogCitib29sIFRleHR1cmU6Omhhc0lP
U3VyZmFjZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIChnZXQoKS5pb3N1cmZhY2UpICE9IG51bGxw
dHI7Cit9CisKK2Jvb2wgVGV4dHVyZTo6c2FtZVR5cGVBbmREaW1lbXNpb25zQXMoY29uc3QgVGV4
dHVyZVJlZiAmb3RoZXIpIGNvbnN0Cit7CisgICAgcmV0dXJuIHRleHR1cmVUeXBlKCkgPT0gb3Ro
ZXItPnRleHR1cmVUeXBlKCkgJiYgcGl4ZWxGb3JtYXQoKSA9PSBvdGhlci0+cGl4ZWxGb3JtYXQo
KSAmJgorICAgICAgICAgICBtaXBtYXBMZXZlbHMoKSA9PSBvdGhlci0+bWlwbWFwTGV2ZWxzKCkg
JiYKKyAgICAgICAgICAgY3ViZUZhY2VzT3JBcnJheUxlbmd0aCgpID09IG90aGVyLT5jdWJlRmFj
ZXNPckFycmF5TGVuZ3RoKCkgJiYKKyAgICAgICAgICAgd2lkdGhBdDAoKSA9PSBvdGhlci0+d2lk
dGhBdDAoKSAmJiBoZWlnaHRBdDAoKSA9PSBvdGhlci0+aGVpZ2h0QXQwKCkgJiYKKyAgICAgICAg
ICAgZGVwdGhBdDAoKSA9PSBvdGhlci0+ZGVwdGhBdDAoKTsKK30KKwogYW5nbGU6OlJlc3VsdCBU
ZXh0dXJlOjpyZXNpemUoQ29udGV4dE10bCAqY29udGV4dCwgdWludDMyX3Qgd2lkdGgsIHVpbnQz
Ml90IGhlaWdodCkKIHsKICAgICAvLyBSZXNpemluZyB0ZXh0dXJlIHZpZXcgaXMgbm90IHN1cHBv
cnRlZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9y
ZW5kZXJlci9tZXRhbC9tdGxfc3RhdGVfY2FjaGUubW0gYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdM
RS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvbWV0YWwvbXRsX3N0YXRlX2NhY2hlLm1tCmluZGV4IDNh
MzE4NDNiMDk5ZWM4M2Y0NWEzOWVmMDI0MDY1N2FlNjZlOGVhM2MuLjg3MDA2ZmM4NWZkZTAwNGZl
MGU1Y2I5YWVjZDM4NjJhZTE4ZGNiZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FO
R0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9tZXRhbC9tdGxfc3RhdGVfY2FjaGUubW0KKysrIGIv
U291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL21ldGFsL210bF9z
dGF0ZV9jYWNoZS5tbQpAQCAtMTcsNyArMTcsNyBAQAogI2luY2x1ZGUgImxpYkFOR0xFL3JlbmRl
cmVyL21ldGFsL0NvbnRleHRNdGwuaCIKICNpbmNsdWRlICJsaWJBTkdMRS9yZW5kZXJlci9tZXRh
bC9tdGxfcmVzb3VyY2VzLmgiCiAjaW5jbHVkZSAibGliQU5HTEUvcmVuZGVyZXIvbWV0YWwvbXRs
X3V0aWxzLmgiCi0jaW5jbHVkZSAicGxhdGZvcm0vRmVhdHVyZXNNdGwuaCIKKyNpbmNsdWRlICJw
bGF0Zm9ybS9GZWF0dXJlc010bF9hdXRvZ2VuLmgiCiAKICNkZWZpbmUgQU5HTEVfT0JKQ19DUF9Q
Uk9QRVJUWShEU1QsIFNSQywgUFJPUEVSVFkpIFwKICAgICAoRFNUKS5QUk9QRVJUWSA9IHN0YXRp
Y19jYXN0PF9fdHlwZW9mX18oKERTVCkuUFJPUEVSVFkpPihUb09iakMoKFNSQykuUFJPUEVSVFkp
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRl
cmVyL21ldGFsL210bF91dGlscy5tbSBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJB
TkdMRS9yZW5kZXJlci9tZXRhbC9tdGxfdXRpbHMubW0KaW5kZXggY2VkNWE3YmQ1ZDc1YmU1NzA5
Nzk4MDZmODUxNzgyYmRmOTg3OTA3Ny4uZDcwNjg0Y2FjMzEwOWU1YzUxNzgwYTU1MzFiNDAwNjU2
MDhmOTAzYSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xF
L3JlbmRlcmVyL21ldGFsL210bF91dGlscy5tbQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdM
RS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvbWV0YWwvbXRsX3V0aWxzLm1tCkBAIC0yNzgsMTkgKzI3
OCwyMCBAQCBib29sIEdldENvbXByZXNzZWRCdWZmZXJTaXplQW5kUm93TGVuZ3RoRm9yVGV4dHVy
ZVdpdGhGb3JtYXQoY29uc3QgVGV4dHVyZVJlZiAmdAogewogICAgIGdsOjpFeHRlbnRzIHNpemUg
PSB0ZXh0dXJlLT5zaXplKGluZGV4KTsKICAgICBHTHVpbnQgYnVmZmVyU2l6ZUluQnl0ZXM7Ci0g
ICAgdWludDMyX3QgYnVmZmVyUm93TGVuZ3RoOworICAgIEdMdWludCBidWZmZXJSb3dJbkJ5dGVz
OwogICAgIGlmICghdGV4dHVyZU9iakZvcm1hdC5pbnRlbmRlZEludGVybmFsRm9ybWF0KCkuY29t
cHV0ZUNvbXByZXNzZWRJbWFnZVNpemUoc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZidWZm
ZXJTaXplSW5CeXRlcykpCiAgICAgewogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQotICAg
IGlmICghdGV4dHVyZU9iakZvcm1hdC5pbnRlbmRlZEludGVybmFsRm9ybWF0KCkuY29tcHV0ZUJ1
ZmZlclJvd0xlbmd0aChzaXplLndpZHRoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmYnVmZmVyUm93TGVu
Z3RoKSkKKyAgICBzaXplLmhlaWdodCA9IDE7CisgICAgaWYgKCF0ZXh0dXJlT2JqRm9ybWF0Lmlu
dGVuZGVkSW50ZXJuYWxGb3JtYXQoKS5jb21wdXRlQ29tcHJlc3NlZEltYWdlU2l6ZShzaXplLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJmJ1ZmZlclJvd0luQnl0ZXMpKQogICAgIHsKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIH0KICAgICAqYnl0ZXNQZXJJbWFnZU91dCA9IGJ1ZmZlclNpemVJ
bkJ5dGVzOwotICAgICpieXRlc1BlclJvd091dCAgID0gYnVmZmVyUm93TGVuZ3RoOworICAgICpi
eXRlc1BlclJvd091dCAgID0gYnVmZmVyUm93SW5CeXRlczsKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IHN0YXRpYyBhbmdsZTo6UmVzdWx0IEluaXRpYWxpemVDb21wcmVzc2VkVGV4dHVyZUNvbnRlbnRz
KGNvbnN0IGdsOjpDb250ZXh0ICpjb250ZXh0LApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL251bGwvUmVuZGVyYnVmZmVyTlVMTC5jcHAg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvbnVsbC9SZW5k
ZXJidWZmZXJOVUxMLmNwcAppbmRleCA5ZDVhZDZmNWYzYjUwNzkyMmRhNWQ5ODcxZjlmMjhkZDZh
ZGNiMGZiLi5hNDFmNzcyOWE1NGIyODkzZDNjMmI2OGY4MDNlOGIwMTEzMzY0MzMwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvbnVsbC9S
ZW5kZXJidWZmZXJOVUxMLmNwcAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGli
QU5HTEUvcmVuZGVyZXIvbnVsbC9SZW5kZXJidWZmZXJOVUxMLmNwcApAQCAtNDMsNiArNDMsNyBA
QCBhbmdsZTo6UmVzdWx0IFJlbmRlcmJ1ZmZlck5VTEw6OnNldFN0b3JhZ2VFR0xJbWFnZVRhcmdl
dChjb25zdCBnbDo6Q29udGV4dCAqY29udAogfQogCiBhbmdsZTo6UmVzdWx0IFJlbmRlcmJ1ZmZl
ck5VTEw6OmluaXRpYWxpemVDb250ZW50cyhjb25zdCBnbDo6Q29udGV4dCAqY29udGV4dCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMZW51bSBi
aW5kaW5nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgZ2w6OkltYWdlSW5kZXggJmltYWdlSW5kZXgpCiB7CiAgICAgcmV0dXJuIGFuZ2xl
OjpSZXN1bHQ6OkNvbnRpbnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUv
c3JjL2xpYkFOR0xFL3JlbmRlcmVyL251bGwvUmVuZGVyYnVmZmVyTlVMTC5oIGIvU291cmNlL1Ro
aXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL251bGwvUmVuZGVyYnVmZmVyTlVM
TC5oCmluZGV4IDg2YWRkYTA0ZDBmZTIyMmJhYjJmNzc5NjBlZTQ3ZmM2MTlhYzA2OTAuLjBlZmIx
MzUxNjI3ZDczNmVhZGY3OGUzZGFlNWYyYWIzOWE2ZDFhNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9U
aGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9udWxsL1JlbmRlcmJ1ZmZlck5V
TEwuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIv
bnVsbC9SZW5kZXJidWZmZXJOVUxMLmgKQEAgLTM1LDYgKzM1LDcgQEAgY2xhc3MgUmVuZGVyYnVm
ZmVyTlVMTCA6IHB1YmxpYyBSZW5kZXJidWZmZXJJbXBsCiAgICAgYW5nbGU6OlJlc3VsdCBzZXRT
dG9yYWdlRUdMSW1hZ2VUYXJnZXQoY29uc3QgZ2w6OkNvbnRleHQgKmNvbnRleHQsIGVnbDo6SW1h
Z2UgKmltYWdlKSBvdmVycmlkZTsKIAogICAgIGFuZ2xlOjpSZXN1bHQgaW5pdGlhbGl6ZUNvbnRl
bnRzKGNvbnN0IGdsOjpDb250ZXh0ICpjb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEdMZW51bSBiaW5kaW5nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IGdsOjpJbWFnZUluZGV4ICZpbWFnZUluZGV4KSBvdmVycmlkZTsKIH07
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5k
ZXJlci9udWxsL1N1cmZhY2VOVUxMLmNwcCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9s
aWJBTkdMRS9yZW5kZXJlci9udWxsL1N1cmZhY2VOVUxMLmNwcAppbmRleCA2MzQ1ZTc3MmUwZGQ5
M2QzMWZiNTFkMWNmOTkyMTMxMTcyOTlmNDNiLi45N2ViOWQ5OGYwZmUyNjhiYmY1OTRhODQzOTVj
NTcyMGZiNDdlNDE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGli
QU5HTEUvcmVuZGVyZXIvbnVsbC9TdXJmYWNlTlVMTC5jcHAKKysrIGIvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL251bGwvU3VyZmFjZU5VTEwuY3BwCkBAIC0x
MDAsNiArMTAwLDcgQEAgRUdMaW50IFN1cmZhY2VOVUxMOjpnZXRTd2FwQmVoYXZpb3IoKSBjb25z
dAogfQogCiBhbmdsZTo6UmVzdWx0IFN1cmZhY2VOVUxMOjppbml0aWFsaXplQ29udGVudHMoY29u
c3QgZ2w6OkNvbnRleHQgKmNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgR0xlbnVtIGJpbmRpbmcsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2w6OkltYWdlSW5kZXggJmltYWdlSW5kZXgpCiB7
CiAgICAgcmV0dXJuIGFuZ2xlOjpSZXN1bHQ6OkNvbnRpbnVlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL251bGwvU3VyZmFjZU5VTEwu
aCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9udWxsL1N1
cmZhY2VOVUxMLmgKaW5kZXggOGE4Nzk0NmViOTIwOTczOGMyZGQzYTU0YmJkMjQ3NDliN2E5YzQ5
OS4uOTM4ODBhNzgzMjZhMjIyNzRjY2RkZTQwNGZlZWRhNDE4YTMwNmM5MCAxMDA2NDQKLS0tIGEv
U291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL251bGwvU3VyZmFj
ZU5VTEwuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVy
ZXIvbnVsbC9TdXJmYWNlTlVMTC5oCkBAIC00Nyw2ICs0Nyw3IEBAIGNsYXNzIFN1cmZhY2VOVUxM
IDogcHVibGljIFN1cmZhY2VJbXBsCiAgICAgRUdMaW50IGdldFN3YXBCZWhhdmlvcigpIGNvbnN0
IG92ZXJyaWRlOwogCiAgICAgYW5nbGU6OlJlc3VsdCBpbml0aWFsaXplQ29udGVudHMoY29uc3Qg
Z2w6OkNvbnRleHQgKmNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgR0xlbnVtIGJpbmRpbmcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgZ2w6OkltYWdlSW5kZXggJmltYWdlSW5kZXgpIG92ZXJyaWRlOwogfTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL251bGwv
VGV4dHVyZU5VTEwuY3BwIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3Jl
bmRlcmVyL251bGwvVGV4dHVyZU5VTEwuY3BwCmluZGV4IDRiYzMyN2QxZjVhZjkxNDliZGM2YzBi
NjM4Y2ZlM2ZiNjBmNDhmZTkuLmQ4ZTlkMmNiZjEzZWEyNjQ5MmI3ZjQ4MmMzY2IyOGMzZTM2OTkw
Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5k
ZXJlci9udWxsL1RleHR1cmVOVUxMLmNwcAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9z
cmMvbGliQU5HTEUvcmVuZGVyZXIvbnVsbC9UZXh0dXJlTlVMTC5jcHAKQEAgLTIyNyw2ICsyMjcs
NyBAQCBhbmdsZTo6UmVzdWx0IFRleHR1cmVOVUxMOjpzZXRTdG9yYWdlTXVsdGlzYW1wbGUoY29u
c3QgZ2w6OkNvbnRleHQgKmNvbnRleHQsCiB9CiAKIGFuZ2xlOjpSZXN1bHQgVGV4dHVyZU5VTEw6
OmluaXRpYWxpemVDb250ZW50cyhjb25zdCBnbDo6Q29udGV4dCAqY29udGV4dCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTGVudW0gYmluZGluZywKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnbDo6SW1h
Z2VJbmRleCAmaW1hZ2VJbmRleCkKIHsKICAgICByZXR1cm4gYW5nbGU6OlJlc3VsdDo6Q29udGlu
dWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVu
ZGVyZXIvbnVsbC9UZXh0dXJlTlVMTC5oIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xp
YkFOR0xFL3JlbmRlcmVyL251bGwvVGV4dHVyZU5VTEwuaAppbmRleCA1N2IzNzgyYzM5ZWNlNmIw
ZTNhYjMxZTU4NjFkZDA0ZmMxY2VlNmExLi45ZWM5Zjc1MTIyN2M2OWQ4YWM0MDhhYjBlYTEzYTgz
NDcxNmE0MWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5H
TEUvcmVuZGVyZXIvbnVsbC9UZXh0dXJlTlVMTC5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FO
R0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9udWxsL1RleHR1cmVOVUxMLmgKQEAgLTE2MCw2ICsx
NjAsNyBAQCBjbGFzcyBUZXh0dXJlTlVMTCA6IHB1YmxpYyBUZXh0dXJlSW1wbAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgZml4ZWRTYW1wbGVMb2NhdGlvbnMp
IG92ZXJyaWRlOwogCiAgICAgYW5nbGU6OlJlc3VsdCBpbml0aWFsaXplQ29udGVudHMoY29uc3Qg
Z2w6OkNvbnRleHQgKmNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgR0xlbnVtIGJpbmRpbmcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgZ2w6OkltYWdlSW5kZXggJmltYWdlSW5kZXgpIG92ZXJyaWRlOwogfTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL3JlbmRl
cmVyX3V0aWxzLmNwcCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5k
ZXJlci9yZW5kZXJlcl91dGlscy5jcHAKaW5kZXggMTg5MDQwMzMwMjZjNDkxZTI0MjVjNTc3NTk5
M2ZjNWI4ZDE5OGZlMy4uOWFjMmJlN2U4YzA5MmIwMDg2NGVmMjBjNjU1NzVjYTFiYWUxOTkxOSAx
MDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVy
L3JlbmRlcmVyX3V0aWxzLmNwcAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGli
QU5HTEUvcmVuZGVyZXIvcmVuZGVyZXJfdXRpbHMuY3BwCkBAIC0yNCw2ICsyNCw3NSBAQAogI2lu
Y2x1ZGUgInBsYXRmb3JtL0ZlYXR1cmUuaCIKIAogI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1
ZGUgPGNjdHlwZT4KKworbmFtZXNwYWNlIGFuZ2xlCit7CituYW1lc3BhY2UKK3sKKy8vIEZvciB0
aGUgc2FrZSBvZiBmZWF0dXJlIG5hbWUgbWF0Y2hpbmcsIHVuZGVyc2NvcmUgaXMgaWdub3JlZCwg
YW5kIHRoZSBuYW1lcyBhcmUgbWF0Y2hlZAorLy8gY2FzZS1pbnNlbnNpdGl2ZS4gIFRoaXMgYWxs
b3dzIGZlYXR1cmUgbmFtZXMgdG8gYmUgb3ZlcnJpZGVuIGJvdGggaW4gc25ha2VfY2FzZSAocHJl
dmlvdXNseSB1c2VkCisvLyBieSBBTkdMRSkgYW5kIGNhbWVsQ2FzZS4KK2Jvb2wgRmVhdHVyZU5h
bWVNYXRjaChjb25zdCBzdGQ6OnN0cmluZyAmYSwgY29uc3Qgc3RkOjpzdHJpbmcgJmIpCit7Cisg
ICAgc2l6ZV90IGFpID0gMDsKKyAgICBzaXplX3QgYmkgPSAwOworCisgICAgd2hpbGUgKGFpIDwg
YS5zaXplKCkgJiYgYmkgPCBiLnNpemUoKSkKKyAgICB7CisgICAgICAgIGlmIChhW2FpXSA9PSAn
XycpCisgICAgICAgIHsKKyAgICAgICAgICAgICsrYWk7CisgICAgICAgIH0KKyAgICAgICAgaWYg
KGJbYmldID09ICdfJykKKyAgICAgICAgeworICAgICAgICAgICAgKytiaTsKKyAgICAgICAgfQor
ICAgICAgICBpZiAoc3RkOjp0b2xvd2VyKGFbYWkrK10pICE9IHN0ZDo6dG9sb3dlcihiW2JpKytd
KSkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAg
fQorCisgICAgcmV0dXJuIGFpID09IGEuc2l6ZSgpICYmIGJpID09IGIuc2l6ZSgpOworfQorCisv
LyBTZWFyY2ggZm9yIGEgZmVhdHVyZSBieSBuYW1lLCBtYXRjaGluZyBpdCBsb29zZWx5IHNvIHRo
YXQgYm90aCBzbmFrZV9jYXNlIGFuZCBjYW1lbENhc2UgbmFtZXMgYXJlCisvLyBtYXRjaGVkLgor
RmVhdHVyZUluZm8gKkZpbmRGZWF0dXJlQnlOYW1lKEZlYXR1cmVNYXAgKmZlYXR1cmVzLCBjb25z
dCBzdGQ6OnN0cmluZyAmbmFtZSkKK3sKKyAgICBmb3IgKGF1dG8gaXRlciA6ICpmZWF0dXJlcykK
KyAgICB7CisgICAgICAgIGlmIChGZWF0dXJlTmFtZU1hdGNoKGl0ZXIuZmlyc3QsIG5hbWUpKQor
ICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gaXRlci5zZWNvbmQ7CisgICAgICAgIH0KKyAg
ICB9CisgICAgcmV0dXJuIG51bGxwdHI7Cit9Cit9ICAvLyBhbm9ueW1vdXMgbmFtZXNwYWNlCisK
Ky8vIEZlYXR1cmVTZXRCYXNlIGltcGxlbWVudGF0aW9uCit2b2lkIEZlYXR1cmVTZXRCYXNlOjpv
dmVycmlkZUZlYXR1cmVzKGNvbnN0IHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiAmZmVhdHVyZU5h
bWVzLCBib29sIGVuYWJsZWQpCit7CisgICAgZm9yIChjb25zdCBzdGQ6OnN0cmluZyAmbmFtZSA6
IGZlYXR1cmVOYW1lcykKKyAgICB7CisgICAgICAgIEZlYXR1cmVJbmZvICpmZWF0dXJlID0gRmlu
ZEZlYXR1cmVCeU5hbWUoJm1lbWJlcnMsIG5hbWUpOworICAgICAgICBpZiAoZmVhdHVyZSAhPSBu
dWxscHRyKQorICAgICAgICB7CisgICAgICAgICAgICBmZWF0dXJlLT5lbmFibGVkID0gZW5hYmxl
ZDsKKyAgICAgICAgfQorICAgIH0KK30KKwordm9pZCBGZWF0dXJlU2V0QmFzZTo6cG9wdWxhdGVG
ZWF0dXJlTGlzdChGZWF0dXJlTGlzdCAqZmVhdHVyZXMpIGNvbnN0Cit7CisgICAgZm9yIChGZWF0
dXJlTWFwOjpjb25zdF9pdGVyYXRvciBpdCA9IG1lbWJlcnMuYmVnaW4oKTsgaXQgIT0gbWVtYmVy
cy5lbmQoKTsgaXQrKykKKyAgICB7CisgICAgICAgIGZlYXR1cmVzLT5wdXNoX2JhY2soaXQtPnNl
Y29uZCk7CisgICAgfQorfQorfSAgLy8gbmFtZXNwYWNlIGFuZ2xlCiAKIG5hbWVzcGFjZSByeAog
ewpAQCAtMjI1LDcgKzI5NCw2IEBAIHZvaWQgU2V0RmxvYXRVbmlmb3JtTWF0cml4RmFzdCh1bnNp
Z25lZCBpbnQgYXJyYXlFbGVtZW50T2Zmc2V0LAogCiAgICAgbWVtY3B5KHRhcmdldERhdGEsIHZh
bHVlRGF0YSwgbWF0cml4U2l6ZSAqIGNvdW50KTsKIH0KLQogfSAgLy8gYW5vbnltb3VzIG5hbWVz
cGFjZQogCiB2b2lkIFJvdGF0ZVJlY3RhbmdsZShjb25zdCBTdXJmYWNlUm90YXRpb24gcm90YXRp
b24sCkBAIC0zODIsMjIgKzQ1MCwxMyBAQCB2b2lkIFBhY2tQaXhlbHMoY29uc3QgUGFja1BpeGVs
c1BhcmFtcyAmcGFyYW1zLAogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgUGl4ZWxDb3B5
RnVuY3Rpb24gZmFzdENvcHlGdW5jID0gc291cmNlRm9ybWF0LmZhc3RDb3B5RnVuY3Rpb25zLmdl
dChwYXJhbXMuZGVzdEZvcm1hdC0+aWQpOworICAgIEZhc3RDb3B5RnVuY3Rpb24gZmFzdENvcHlG
dW5jID0gc291cmNlRm9ybWF0LmZhc3RDb3B5RnVuY3Rpb25zLmdldChwYXJhbXMuZGVzdEZvcm1h
dC0+aWQpOwogCiAgICAgaWYgKGZhc3RDb3B5RnVuYykKICAgICB7CiAgICAgICAgIC8vIEZhc3Qg
Y29weSBpcyBwb3NzaWJsZSB0aHJvdWdoIHNvbWUgc3BlY2lhbCBmdW5jdGlvbgotICAgICAgICBm
b3IgKGludCB5ID0gMDsgeSA8IGRlc3RIZWlnaHQ7ICsreSkKLSAgICAgICAgewotICAgICAgICAg
ICAgZm9yIChpbnQgeCA9IDA7IHggPCBkZXN0V2lkdGg7ICsreCkKLSAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICB1aW50OF90ICpkZXN0ID0KLSAgICAgICAgICAgICAgICAgICAgZGVzdFdp
dGhPZmZzZXQgKyB5ICogcGFyYW1zLm91dHB1dFBpdGNoICsgeCAqIHBhcmFtcy5kZXN0Rm9ybWF0
LT5waXhlbEJ5dGVzOwotICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKnNyYyA9IHNvdXJj
ZSArIHkgKiB5QXhpc1BpdGNoICsgeCAqIHhBeGlzUGl0Y2g7Ci0KLSAgICAgICAgICAgICAgICBm
YXN0Q29weUZ1bmMoc3JjLCBkZXN0KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQorICAgICAg
ICBmYXN0Q29weUZ1bmMoc291cmNlLCB4QXhpc1BpdGNoLCB5QXhpc1BpdGNoLCBkZXN0V2l0aE9m
ZnNldCwgcGFyYW1zLmRlc3RGb3JtYXQtPnBpeGVsQnl0ZXMsCisgICAgICAgICAgICAgICAgICAg
ICBwYXJhbXMub3V0cHV0UGl0Y2gsIGRlc3RXaWR0aCwgZGVzdEhlaWdodCk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKQEAgLTQzNSwxOSArNDk0LDM0IEBAIGJvb2wgRmFzdENvcHlGdW5jdGlv
bk1hcDo6aGFzKGFuZ2xlOjpGb3JtYXRJRCBmb3JtYXRJRCkgY29uc3QKICAgICByZXR1cm4gKGdl
dChmb3JtYXRJRCkgIT0gbnVsbHB0cik7CiB9CiAKLVBpeGVsQ29weUZ1bmN0aW9uIEZhc3RDb3B5
RnVuY3Rpb25NYXA6OmdldChhbmdsZTo6Rm9ybWF0SUQgZm9ybWF0SUQpIGNvbnN0CituYW1lc3Bh
Y2UKIHsKLSAgICBmb3IgKHNpemVfdCBpbmRleCA9IDA7IGluZGV4IDwgbVNpemU7ICsraW5kZXgp
CisKK2NvbnN0IEZhc3RDb3B5RnVuY3Rpb25NYXA6OkVudHJ5ICpnZXRFbnRyeShjb25zdCBGYXN0
Q29weUZ1bmN0aW9uTWFwOjpFbnRyeSAqZW50cnksCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc2l6ZV90IG51bUVudHJpZXMsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYW5nbGU6OkZvcm1hdElEIGZvcm1hdElEKQoreworICAg
IGNvbnN0IEZhc3RDb3B5RnVuY3Rpb25NYXA6OkVudHJ5ICplbmQgPSBlbnRyeSArIG51bUVudHJp
ZXM7CisgICAgd2hpbGUgKGVudHJ5ICE9IGVuZCkKICAgICB7Ci0gICAgICAgIGlmIChtRGF0YVtp
bmRleF0uZm9ybWF0SUQgPT0gZm9ybWF0SUQpCisgICAgICAgIGlmIChlbnRyeS0+Zm9ybWF0SUQg
PT0gZm9ybWF0SUQpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBtRGF0YVtpbmRleF0u
ZnVuYzsKKyAgICAgICAgICAgIHJldHVybiBlbnRyeTsKICAgICAgICAgfQorICAgICAgICArK2Vu
dHJ5OwogICAgIH0KIAogICAgIHJldHVybiBudWxscHRyOwogfQogCit9ICAvLyBuYW1lc3BhY2UK
KworRmFzdENvcHlGdW5jdGlvbiBGYXN0Q29weUZ1bmN0aW9uTWFwOjpnZXQoYW5nbGU6OkZvcm1h
dElEIGZvcm1hdElEKSBjb25zdAoreworICAgIGNvbnN0IEZhc3RDb3B5RnVuY3Rpb25NYXA6OkVu
dHJ5ICplbnRyeSA9IGdldEVudHJ5KG1EYXRhLCBtU2l6ZSwgZm9ybWF0SUQpOworICAgIHJldHVy
biBlbnRyeSA/IGVudHJ5LT5mdW5jIDogbnVsbHB0cjsKK30KKwogYm9vbCBTaG91bGRVc2VEZWJ1
Z0xheWVycyhjb25zdCBlZ2w6OkF0dHJpYnV0ZU1hcCAmYXR0cmlicykKIHsKICAgICBFR0xBdHRy
aWIgZGVidWdTZXR0aW5nID0KQEAgLTEwMDYsNiArMTA4MCw3IEBAIHZvaWQgQXBwbHlGZWF0dXJl
T3ZlcnJpZGVzKGFuZ2xlOjpGZWF0dXJlU2V0QmFzZSAqZmVhdHVyZXMsIGNvbnN0IGVnbDo6RGlz
cGxheVN0CiAgICAgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+IG92ZXJyaWRlc0Rpc2FibGVkID0K
ICAgICAgICAgYW5nbGU6OkdldENhY2hlZFN0cmluZ3NGcm9tRW52aXJvbm1lbnRWYXJPckFuZHJv
aWRQcm9wZXJ0eSgKICAgICAgICAgICAgIGtBbmdsZUZlYXR1cmVPdmVycmlkZXNEaXNhYmxlZEVu
dk5hbWUsIGtBbmdsZUZlYXR1cmVPdmVycmlkZXNEaXNhYmxlZFByb3BlcnR5TmFtZSwgIjoiKTsK
KwogICAgIGZlYXR1cmVzLT5vdmVycmlkZUZlYXR1cmVzKG92ZXJyaWRlc0VuYWJsZWQsIHRydWUp
OwogICAgIExvZ0ZlYXR1cmVTdGF0dXMoKmZlYXR1cmVzLCBvdmVycmlkZXNFbmFibGVkLCB0cnVl
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3Jl
bmRlcmVyL3JlbmRlcmVyX3V0aWxzLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGli
QU5HTEUvcmVuZGVyZXIvcmVuZGVyZXJfdXRpbHMuaAppbmRleCBlY2RiYTJmZDM4ZjkwNjc2Y2Uw
MjI4ZTNlNDZiNDJlYzkyYmMzZTczLi44ZmIxOGZjNWQ1NjQwZjA2Mzc4MjJlZmE2ZTA3OTNlZjJh
NzIzY2YzIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUv
cmVuZGVyZXIvcmVuZGVyZXJfdXRpbHMuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9z
cmMvbGliQU5HTEUvcmVuZGVyZXIvcmVuZGVyZXJfdXRpbHMuaApAQCAtODIsNyArODIsMTQgQEAg
dXNpbmcgTWlwR2VuZXJhdGlvbkZ1bmN0aW9uID0gdm9pZCAoKikoc2l6ZV90IHNvdXJjZVdpZHRo
LAogCiB0eXBlZGVmIHZvaWQgKCpQaXhlbFJlYWRGdW5jdGlvbikoY29uc3QgdWludDhfdCAqc291
cmNlLCB1aW50OF90ICpkZXN0KTsKIHR5cGVkZWYgdm9pZCAoKlBpeGVsV3JpdGVGdW5jdGlvbiko
Y29uc3QgdWludDhfdCAqc291cmNlLCB1aW50OF90ICpkZXN0KTsKLXR5cGVkZWYgdm9pZCAoKlBp
eGVsQ29weUZ1bmN0aW9uKShjb25zdCB1aW50OF90ICpzb3VyY2UsIHVpbnQ4X3QgKmRlc3QpOwor
dHlwZWRlZiB2b2lkICgqRmFzdENvcHlGdW5jdGlvbikoY29uc3QgdWludDhfdCAqc291cmNlLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHNyY1hBeGlzUGl0Y2gsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc3JjWUF4aXNQaXRjaCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgKmRlc3QsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpbnQgZGVzdFhBeGlzUGl0Y2gsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpbnQgZGVzdFlBeGlzUGl0Y2gsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpbnQgd2lkdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
bnQgaGVpZ2h0KTsKIAogY2xhc3MgRmFzdENvcHlGdW5jdGlvbk1hcAogewpAQCAtOTAsNyArOTcs
NyBAQCBjbGFzcyBGYXN0Q29weUZ1bmN0aW9uTWFwCiAgICAgc3RydWN0IEVudHJ5CiAgICAgewog
ICAgICAgICBhbmdsZTo6Rm9ybWF0SUQgZm9ybWF0SUQ7Ci0gICAgICAgIFBpeGVsQ29weUZ1bmN0
aW9uIGZ1bmM7CisgICAgICAgIEZhc3RDb3B5RnVuY3Rpb24gZnVuYzsKICAgICB9OwogCiAgICAg
Y29uc3RleHByIEZhc3RDb3B5RnVuY3Rpb25NYXAoKSA6IEZhc3RDb3B5RnVuY3Rpb25NYXAobnVs
bHB0ciwgMCkge30KQEAgLTk4LDcgKzEwNSw3IEBAIGNsYXNzIEZhc3RDb3B5RnVuY3Rpb25NYXAK
ICAgICBjb25zdGV4cHIgRmFzdENvcHlGdW5jdGlvbk1hcChjb25zdCBFbnRyeSAqZGF0YSwgc2l6
ZV90IHNpemUpIDogbVNpemUoc2l6ZSksIG1EYXRhKGRhdGEpIHt9CiAKICAgICBib29sIGhhcyhh
bmdsZTo6Rm9ybWF0SUQgZm9ybWF0SUQpIGNvbnN0OwotICAgIFBpeGVsQ29weUZ1bmN0aW9uIGdl
dChhbmdsZTo6Rm9ybWF0SUQgZm9ybWF0SUQpIGNvbnN0OworICAgIEZhc3RDb3B5RnVuY3Rpb24g
Z2V0KGFuZ2xlOjpGb3JtYXRJRCBmb3JtYXRJRCkgY29uc3Q7CiAKICAgcHJpdmF0ZToKICAgICBz
aXplX3QgbVNpemU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGli
QU5HTEUvcmVuZGVyZXIvdnVsa2FuL0J1ZmZlclZrLmNwcCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FO
R0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci92dWxrYW4vQnVmZmVyVmsuY3BwCmluZGV4IDljOWNl
ZTc4ZDg5MGY1Y2MxM2Q4NzYyYWEwM2RlOWRjZjljMDBhYmYuLjI4Y2UyMjdlNGQyNDhkMzgxYjI1
MmNjNDAyNjI3OWIyNjZiNmVhNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xF
L3NyYy9saWJBTkdMRS9yZW5kZXJlci92dWxrYW4vQnVmZmVyVmsuY3BwCisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci92dWxrYW4vQnVmZmVyVmsuY3Bw
CkBAIC01NCwxMCArNTQsMTIgQEAgY29uc3RleHByIHNpemVfdCBrQ29udmVydGVkQXJyYXlCdWZm
ZXJJbml0aWFsU2l6ZSA9IDEwMjQgKiA4OwogLy8gZGV2aWNlIGxvY2FsIG1lbW9yeSB0byBzcGVl
ZCB1cCBhY2Nlc3MgdG8gYW5kIGZyb20gdGhlIEdQVS4KIC8vIER5bmFtaWMgdXNhZ2UgcGF0dGVy
bnMgb3IgdGhhdCBhcmUgZnJlcXVlbnRseSBtYXBwZWQKIC8vIHdpbGwgbm93IHJlcXVlc3QgaG9z
dCBjYWNoZWQgbWVtb3J5IHRvIHNwZWVkIHVwIGFjY2VzcyBmcm9tIHRoZSBDUFUuCi1BTkdMRV9J
TkxJTkUgVmtNZW1vcnlQcm9wZXJ0eUZsYWdzIEdldFByZWZlcnJlZE1lbW9yeVR5cGUoZ2w6OkJ1
ZmZlckJpbmRpbmcgdGFyZ2V0LAorQU5HTEVfSU5MSU5FIFZrTWVtb3J5UHJvcGVydHlGbGFncyBH
ZXRQcmVmZXJyZWRNZW1vcnlUeXBlKFJlbmRlcmVyVmsgKnJlbmRlcmVyLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdsOjpCdWZmZXJC
aW5kaW5nIHRhcmdldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBnbDo6QnVmZmVyVXNhZ2UgdXNhZ2UpCiB7Ci0gICAgY29uc3RleHBy
IFZrTWVtb3J5UHJvcGVydHlGbGFncyBrRGV2aWNlTG9jYWxGbGFncyA9CisgICAgY29uc3RleHBy
IFZrTWVtb3J5UHJvcGVydHlGbGFncyBrRGV2aWNlTG9jYWxGbGFncyA9IFZLX01FTU9SWV9QUk9Q
RVJUWV9ERVZJQ0VfTE9DQUxfQklUOworICAgIGNvbnN0ZXhwciBWa01lbW9yeVByb3BlcnR5Rmxh
Z3Mga0RldmljZUxvY2FsSG9zdFZpc2libGVGbGFncyA9CiAgICAgICAgIChWS19NRU1PUllfUFJP
UEVSVFlfSE9TVF9WSVNJQkxFX0JJVCB8IFZLX01FTU9SWV9QUk9QRVJUWV9IT1NUX0NPSEVSRU5U
X0JJVCB8CiAgICAgICAgICBWS19NRU1PUllfUFJPUEVSVFlfREVWSUNFX0xPQ0FMX0JJVCk7CiAg
ICAgY29uc3RleHByIFZrTWVtb3J5UHJvcGVydHlGbGFncyBrSG9zdENhY2hlZEZsYWdzID0KQEAg
LTc3LDcgKzc5LDkgQEAgQU5HTEVfSU5MSU5FIFZrTWVtb3J5UHJvcGVydHlGbGFncyBHZXRQcmVm
ZXJyZWRNZW1vcnlUeXBlKGdsOjpCdWZmZXJCaW5kaW5nIHRhcmcKICAgICAgICAgY2FzZSBnbDo6
QnVmZmVyVXNhZ2U6OlN0YXRpY0RyYXc6CiAgICAgICAgIGNhc2UgZ2w6OkJ1ZmZlclVzYWdlOjpT
dGF0aWNSZWFkOgogICAgICAgICAgICAgLy8gRm9yIHN0YXRpYyB1c2FnZSwgcmVxdWVzdCBhIGRl
dmljZSBsb2NhbCBtZW1vcnkKLSAgICAgICAgICAgIHJldHVybiBrRGV2aWNlTG9jYWxGbGFnczsK
KyAgICAgICAgICAgIHJldHVybiByZW5kZXJlci0+Z2V0RmVhdHVyZXMoKS5wcmVmZXJEZXZpY2VM
b2NhbE1lbW9yeUhvc3RWaXNpYmxlLmVuYWJsZWQKKyAgICAgICAgICAgICAgICAgICAgICAgPyBr
RGV2aWNlTG9jYWxIb3N0VmlzaWJsZUZsYWdzCisgICAgICAgICAgICAgICAgICAgICAgIDoga0Rl
dmljZUxvY2FsRmxhZ3M7CiAgICAgICAgIGNhc2UgZ2w6OkJ1ZmZlclVzYWdlOjpEeW5hbWljRHJh
dzoKICAgICAgICAgY2FzZSBnbDo6QnVmZmVyVXNhZ2U6OlN0cmVhbURyYXc6CiAgICAgICAgICAg
ICAvLyBGb3Igbm9uLXN0YXRpYyB1c2FnZSB3aGVyZSB0aGUgQ1BVIHBlcmZvcm1zIGEgd3JpdGUt
b25seSBhY2Nlc3MsIHJlcXVlc3QKQEAgLTk1LDE1ICs5OSwyNSBAQCBBTkdMRV9JTkxJTkUgVmtN
ZW1vcnlQcm9wZXJ0eUZsYWdzIEdldFByZWZlcnJlZE1lbW9yeVR5cGUoZ2w6OkJ1ZmZlckJpbmRp
bmcgdGFyZwogICAgIH0KIH0KIAotQU5HTEVfSU5MSU5FIFZrTWVtb3J5UHJvcGVydHlGbGFncyBH
ZXRTdG9yYWdlTWVtb3J5VHlwZShHTGJpdGZpZWxkIHN0b3JhZ2VGbGFncywKK0FOR0xFX0lOTElO
RSBWa01lbW9yeVByb3BlcnR5RmxhZ3MgR2V0U3RvcmFnZU1lbW9yeVR5cGUoUmVuZGVyZXJWayAq
cmVuZGVyZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEdMYml0ZmllbGQgc3RvcmFnZUZsYWdzLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGV4dGVybmFsQnVmZmVyKQog
eworICAgIGNvbnN0ZXhwciBWa01lbW9yeVByb3BlcnR5RmxhZ3Mga0RldmljZUxvY2FsRmxhZ3Mg
PSBWS19NRU1PUllfUFJPUEVSVFlfREVWSUNFX0xPQ0FMX0JJVDsKICAgICBjb25zdGV4cHIgVmtN
ZW1vcnlQcm9wZXJ0eUZsYWdzIGtEZXZpY2VMb2NhbEhvc3RWaXNpYmxlRmxhZ3MgPQogICAgICAg
ICAoVktfTUVNT1JZX1BST1BFUlRZX0RFVklDRV9MT0NBTF9CSVQgfCBWS19NRU1PUllfUFJPUEVS
VFlfSE9TVF9WSVNJQkxFX0JJVCk7CiAgICAgY29uc3RleHByIFZrTWVtb3J5UHJvcGVydHlGbGFn
cyBrRGV2aWNlTG9jYWxIb3N0Q29oZXJlbnRGbGFncyA9CiAgICAgICAgIChWS19NRU1PUllfUFJP
UEVSVFlfREVWSUNFX0xPQ0FMX0JJVCB8IFZLX01FTU9SWV9QUk9QRVJUWV9IT1NUX1ZJU0lCTEVf
QklUIHwKICAgICAgICAgIFZLX01FTU9SWV9QUk9QRVJUWV9IT1NUX0NPSEVSRU5UX0JJVCk7CiAK
KyAgICBjb25zdCBib29sIGhhc01hcEFjY2VzcyA9IChzdG9yYWdlRmxhZ3MgJiAoR0xfTUFQX1JF
QURfQklUIHwgR0xfTUFQX1dSSVRFX0JJVCkpICE9IDA7CisgICAgaWYgKCFyZW5kZXJlci0+Z2V0
RmVhdHVyZXMoKS5wcmVmZXJEZXZpY2VMb2NhbE1lbW9yeUhvc3RWaXNpYmxlLmVuYWJsZWQgJiYg
IWhhc01hcEFjY2VzcykKKyAgICB7CisgICAgICAgIC8vIERvbid0IHVzZSBob3N0IHZpc2libGUg
Yml0IGlmIGJ1ZmZlciBpcyBub3QgZ29pbmcgdG8gYmUgYWNjZXNzZWQgdmlhIG1hcCBhbmQgZmVh
dHVyZSBiaXRzCisgICAgICAgIC8vIGFsc28gZG9uJ3QgcHJlZmVyLgorICAgICAgICByZXR1cm4g
a0RldmljZUxvY2FsRmxhZ3M7CisgICAgfQorCiAgICAgY29uc3QgYm9vbCBpc0NvaGVyZW50TWFw
ICAgPSAoc3RvcmFnZUZsYWdzICYgR0xfTUFQX0NPSEVSRU5UX0JJVF9FWFQpICE9IDA7CiAgICAg
Y29uc3QgYm9vbCBpc1BlcnNpc3RlbnRNYXAgPSAoc3RvcmFnZUZsYWdzICYgR0xfTUFQX1BFUlNJ
U1RFTlRfQklUX0VYVCkgIT0gMDsKIApAQCAtMjMyLDcgKzI0Niw5IEBAIEJ1ZmZlclZrOjpCdWZm
ZXJWayhjb25zdCBnbDo6QnVmZmVyU3RhdGUgJnN0YXRlKQogICAgICAgbU1lbW9yeVByb3BlcnR5
RmxhZ3MoMCksCiAgICAgICBtSXNTdGFnaW5nQnVmZmVyTWFwcGVkKGZhbHNlKSwKICAgICAgIG1I
YXNWYWxpZERhdGEoZmFsc2UpLAotICAgICAgbUhhc0JlZW5SZWZlcmVuY2VkQnlHUFUoZmFsc2Up
CisgICAgICBtSXNNYXBwZWRGb3JXcml0ZShmYWxzZSksCisgICAgICBtTWFwcGVkT2Zmc2V0KDAp
LAorICAgICAgbU1hcHBlZExlbmd0aCgwKQoge30KIAogQnVmZmVyVms6On5CdWZmZXJWaygpIHt9
CkBAIC0yOTQsNiArMzEwLDcgQEAgYW5nbGU6OlJlc3VsdCBCdWZmZXJWazo6c2V0RGF0YVdpdGhV
c2FnZUZsYWdzKGNvbnN0IGdsOjpDb250ZXh0ICpjb250ZXh0LAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdsOjpCdWZmZXJVc2FnZSB1c2FnZSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTGJpdGZpZWxkIGZsYWdz
KQogeworICAgIENvbnRleHRWayAqY29udGV4dFZrICAgICAgICAgICAgICAgICAgICAgID0gdms6
OkdldEltcGwoY29udGV4dCk7CiAgICAgVmtNZW1vcnlQcm9wZXJ0eUZsYWdzIG1lbW9yeVByb3Bl
cnR5RmxhZ3MgPSAwOwogICAgIGJvb2wgcGVyc2lzdGVudE1hcFJlcXVpcmVkICAgICAgICAgICAg
ICAgID0gZmFsc2U7CiAgICAgY29uc3QgYm9vbCBpc0V4dGVybmFsQnVmZmVyICAgICAgICAgICAg
ICAgPSBjbGllbnRCdWZmZXIgIT0gbnVsbHB0cjsKQEAgLTMwMywxNCArMzIwLDE1IEBAIGFuZ2xl
OjpSZXN1bHQgQnVmZmVyVms6OnNldERhdGFXaXRoVXNhZ2VGbGFncyhjb25zdCBnbDo6Q29udGV4
dCAqY29udGV4dCwKICAgICAgICAgY2FzZSBnbDo6QnVmZmVyVXNhZ2U6OkludmFsaWRFbnVtOgog
ICAgICAgICB7CiAgICAgICAgICAgICAvLyBnbEJ1ZmZlclN0b3JhZ2UgQVBJIGNhbGwKLSAgICAg
ICAgICAgIG1lbW9yeVByb3BlcnR5RmxhZ3MgICA9IEdldFN0b3JhZ2VNZW1vcnlUeXBlKGZsYWdz
LCBpc0V4dGVybmFsQnVmZmVyKTsKKyAgICAgICAgICAgIG1lbW9yeVByb3BlcnR5RmxhZ3MgPQor
ICAgICAgICAgICAgICAgIEdldFN0b3JhZ2VNZW1vcnlUeXBlKGNvbnRleHRWay0+Z2V0UmVuZGVy
ZXIoKSwgZmxhZ3MsIGlzRXh0ZXJuYWxCdWZmZXIpOwogICAgICAgICAgICAgcGVyc2lzdGVudE1h
cFJlcXVpcmVkID0gKGZsYWdzICYgR0xfTUFQX1BFUlNJU1RFTlRfQklUX0VYVCkgIT0gMDsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgIHsK
ICAgICAgICAgICAgIC8vIGdsQnVmZmVyRGF0YSBBUEkgY2FsbAotICAgICAgICAgICAgbWVtb3J5
UHJvcGVydHlGbGFncyA9IEdldFByZWZlcnJlZE1lbW9yeVR5cGUodGFyZ2V0LCB1c2FnZSk7Cisg
ICAgICAgICAgICBtZW1vcnlQcm9wZXJ0eUZsYWdzID0gR2V0UHJlZmVycmVkTWVtb3J5VHlwZShj
b250ZXh0VmstPmdldFJlbmRlcmVyKCksIHRhcmdldCwgdXNhZ2UpOwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIH0KICAgICB9CkBAIC0zMjIsOCArMzQwLDcgQEAgYW5nbGU6OlJlc3VsdCBC
dWZmZXJWazo6c2V0RGF0YVdpdGhVc2FnZUZsYWdzKGNvbnN0IGdsOjpDb250ZXh0ICpjb250ZXh0
LAogICAgICAgICB7CiAgICAgICAgICAgICAvLyBJZiBleHRlcm5hbCBidWZmZXIncyBtZW1vcnkg
ZG9lcyBub3Qgc3VwcG9ydCBob3N0IHZpc2libGUgbWVtb3J5IHByb3BlcnR5LCB3ZSBjYW5ub3QK
ICAgICAgICAgICAgIC8vIHN1cHBvcnQgYSBwZXJzaXN0ZW50IG1hcCByZXF1ZXN0LgotICAgICAg
ICAgICAgQU5HTEVfVktfQ0hFQ0sodms6OkdldEltcGwoY29udGV4dCksICFwZXJzaXN0ZW50TWFw
UmVxdWlyZWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBWS19FUlJPUl9NRU1PUllfTUFQ
X0ZBSUxFRCk7CisgICAgICAgICAgICBBTkdMRV9WS19DSEVDSyhjb250ZXh0VmssICFwZXJzaXN0
ZW50TWFwUmVxdWlyZWQsIFZLX0VSUk9SX01FTU9SWV9NQVBfRkFJTEVEKTsKICAgICAgICAgfQog
CiAgICAgICAgIG1DbGllbnRCdWZmZXIgPSBjbGllbnRCdWZmZXI7CkBAIC0zNDAsOCArMzU3LDEw
IEBAIGFuZ2xlOjpSZXN1bHQgQnVmZmVyVms6OnNldERhdGEoY29uc3QgZ2w6OkNvbnRleHQgKmNv
bnRleHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBzaXplLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnbDo6QnVmZmVyVXNhZ2UgdXNhZ2UpCiB7Cisg
ICAgQ29udGV4dFZrICpjb250ZXh0VmsgPSB2azo6R2V0SW1wbChjb250ZXh0KTsKICAgICAvLyBB
c3N1bWUgaG9zdCB2aXNpYmxlL2NvaGVyZW50IG1lbW9yeSBhdmFpbGFibGUuCi0gICAgVmtNZW1v
cnlQcm9wZXJ0eUZsYWdzIG1lbW9yeVByb3BlcnR5RmxhZ3MgPSBHZXRQcmVmZXJyZWRNZW1vcnlU
eXBlKHRhcmdldCwgdXNhZ2UpOworICAgIFZrTWVtb3J5UHJvcGVydHlGbGFncyBtZW1vcnlQcm9w
ZXJ0eUZsYWdzID0KKyAgICAgICAgR2V0UHJlZmVycmVkTWVtb3J5VHlwZShjb250ZXh0VmstPmdl
dFJlbmRlcmVyKCksIHRhcmdldCwgdXNhZ2UpOwogICAgIHJldHVybiBzZXREYXRhV2l0aE1lbW9y
eVR5cGUoY29udGV4dCwgdGFyZ2V0LCBkYXRhLCBzaXplLCBtZW1vcnlQcm9wZXJ0eUZsYWdzLCBm
YWxzZSwgdXNhZ2UpOwogfQogCkBAIC0zNjUsMTEgKzM4NCwxMiBAQCBhbmdsZTo6UmVzdWx0IEJ1
ZmZlclZrOjpzZXREYXRhV2l0aE1lbW9yeVR5cGUoY29uc3QgZ2w6OkNvbnRleHQgKmNvbnRleHQs
CiAgICAgICAgIHJldHVybiBhbmdsZTo6UmVzdWx0OjpDb250aW51ZTsKICAgICB9CiAKLSAgICBj
b25zdCBib29sIHdob2xlU2l6ZSA9IHNpemUgPT0gc3RhdGljX2Nhc3Q8c2l6ZV90PihtU3RhdGUu
Z2V0U2l6ZSgpKTsKKyAgICBjb25zdCBib29sIGJ1ZmZlclNpemVDaGFuZ2VkICAgICAgICAgICAg
ICA9IHNpemUgIT0gc3RhdGljX2Nhc3Q8c2l6ZV90PihtU3RhdGUuZ2V0U2l6ZSgpKTsKKyAgICBj
b25zdCBib29sIGluVXNlQW5kUmVzcGVjaWZpZWRXaXRob3V0RGF0YSA9IChkYXRhID09IG51bGxw
dHIgJiYgaXNDdXJyZW50bHlJblVzZShjb250ZXh0VmspKTsKIAotICAgIC8vIEJ1ZmZlckRhdGEg
Y2FsbCBpcyByZS1zcGVjaWZ5aW5nIHRoZSBlbnRpcmUgYnVmZmVyCi0gICAgLy8gUmVsZWFzZSBh
bmQgaW5pdCBhIG5ldyBtQnVmZmVyIHdpdGggdGhpcyBuZXcgc2l6ZQotICAgIGlmICghd2hvbGVT
aXplKQorICAgIC8vIFRoZSBlbnRpcmUgYnVmZmVyIGlzIGJlaW5nIHJlc3BlY2lmaWVkLCBwb3Nz
aWJseSB3aXRoIG51bGwgZGF0YS4KKyAgICAvLyBSZWxlYXNlIGFuZCBpbml0IGEgbmV3IG1CdWZm
ZXIgd2l0aCByZXF1ZXN0ZWQgc2l6ZS4KKyAgICBpZiAoYnVmZmVyU2l6ZUNoYW5nZWQgfHwgaW5V
c2VBbmRSZXNwZWNpZmllZFdpdGhvdXREYXRhKQogICAgIHsKICAgICAgICAgLy8gUmVsZWFzZSBh
bmQgcmUtY3JlYXRlIHRoZSBtZW1vcnkgYW5kIGJ1ZmZlci4KICAgICAgICAgcmVsZWFzZShjb250
ZXh0VmspOwpAQCAtMzgzLDggKzQwMyw4IEBAIGFuZ2xlOjpSZXN1bHQgQnVmZmVyVms6OnNldERh
dGFXaXRoTWVtb3J5VHlwZShjb25zdCBnbDo6Q29udGV4dCAqY29udGV4dCwKICAgICBpZiAoZGF0
YSkKICAgICB7CiAgICAgICAgIC8vIFRyZWF0IGZ1bGwtYnVmZmVyIHVwZGF0ZXMgYXMgU3ViRGF0
YSBjYWxscy4KLSAgICAgICAgQnVmZmVyVXBkYXRlVHlwZSB1cGRhdGVUeXBlID0KLSAgICAgICAg
ICAgIHdob2xlU2l6ZSA/IEJ1ZmZlclVwZGF0ZVR5cGU6OkNvbnRlbnRzVXBkYXRlIDogQnVmZmVy
VXBkYXRlVHlwZTo6U3RvcmFnZVJlZGVmaW5lZDsKKyAgICAgICAgQnVmZmVyVXBkYXRlVHlwZSB1
cGRhdGVUeXBlID0gYnVmZmVyU2l6ZUNoYW5nZWQgPyBCdWZmZXJVcGRhdGVUeXBlOjpTdG9yYWdl
UmVkZWZpbmVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDogQnVmZmVyVXBkYXRlVHlwZTo6Q29udGVudHNVcGRhdGU7CiAKICAgICAgICAg
QU5HTEVfVFJZKHNldERhdGFJbXBsKGNvbnRleHRWaywgc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhf
dCAqPihkYXRhKSwgc2l6ZSwgMCwgdXBkYXRlVHlwZSkpOwogICAgIH0KQEAgLTQ0Miw3ICs0NjIs
NiBAQCBhbmdsZTo6UmVzdWx0IEJ1ZmZlclZrOjpjb3B5U3ViRGF0YShjb25zdCBnbDo6Q29udGV4
dCAqY29udGV4dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNf
Y2FzdDxWa0RldmljZVNpemU+KHNpemUpfTsKIAogICAgIGNvbW1hbmRCdWZmZXItPmNvcHlCdWZm
ZXIoc291cmNlQnVmZmVyLmdldEJ1ZmZlcigpLCBtQnVmZmVyLmdldEJ1ZmZlcigpLCAxLCAmY29w
eVJlZ2lvbik7Ci0gICAgbUhhc0JlZW5SZWZlcmVuY2VkQnlHUFUgPSB0cnVlOwogCiAgICAgLy8g
VGhlIG5ldyBkZXN0aW5hdGlvbiBidWZmZXIgZGF0YSBtYXkgcmVxdWlyZSBhIGNvbnZlcnNpb24g
Zm9yIHRoZSBuZXh0IGRyYXcsIHNvIG1hcmsgaXQgZGlydHkuCiAgICAgb25EYXRhQ2hhbmdlZCgp
OwpAQCAtNDk3LDggKzUxNiw2IEBAIGFuZ2xlOjpSZXN1bHQgQnVmZmVyVms6OmZsdXNoU3RhZ2lu
Z0J1ZmZlcihDb250ZXh0VmsgKmNvbnRleHRWaywKICAgICBWa0J1ZmZlckNvcHkgY29weVJlZ2lv
biA9IHttU3RhZ2luZ0J1ZmZlci5nZXRPZmZzZXQoKSwgbUJ1ZmZlci5nZXRPZmZzZXQoKSArIG9m
ZnNldCwgc2l6ZX07CiAgICAgQU5HTEVfVFJZKG1CdWZmZXIuY29weUZyb21CdWZmZXIoY29udGV4
dFZrLCAmbVN0YWdpbmdCdWZmZXIsIDEsICZjb3B5UmVnaW9uKSk7CiAKLSAgICBtSGFzQmVlblJl
ZmVyZW5jZWRCeUdQVSA9IHRydWU7Ci0KICAgICByZXR1cm4gYW5nbGU6OlJlc3VsdDo6Q29udGlu
dWU7CiB9CiAKQEAgLTU0OCw3ICs1NjUsNyBAQCBhbmdsZTo6UmVzdWx0IEJ1ZmZlclZrOjpnaG9z
dE1hcHBlZEJ1ZmZlcihDb250ZXh0VmsgKmNvbnRleHRWaywKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEdMYml0ZmllbGQgYWNjZXNzLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqKm1hcFB0cikKIHsKLSAgICAvLyBXZSBz
aG91bGQndCBnZXQgdG8gaGVyZSBpZiBpdCBpcyBleHRlcm5hbCBtZW1vcnkKKyAgICAvLyBXZSBz
aG91bGRuJ3QgZ2V0IGhlcmUgaWYgaXQgaXMgZXh0ZXJuYWwgbWVtb3J5CiAgICAgQVNTRVJUKCFp
c0V4dGVybmFsQnVmZmVyKCkpOwogCiAgICAgKytjb250ZXh0VmstPmdldFBlcmZDb3VudGVycygp
LmJ1ZmZlcnNHaG9zdGVkOwpAQCAtNTU4LDkgKzU3NSw2IEBAIGFuZ2xlOjpSZXN1bHQgQnVmZmVy
Vms6Omdob3N0TWFwcGVkQnVmZmVyKENvbnRleHRWayAqY29udGV4dFZrLAogICAgIC8vIGNhc2Ug
dGhlIGNhbGxlciBvbmx5IHVwZGF0ZXMgYSBwb3J0aW9uIG9mIHRoZSBuZXcgYnVmZmVyLgogICAg
IHZrOjpCdWZmZXJIZWxwZXIgc3JjID0gc3RkOjptb3ZlKG1CdWZmZXIpOwogCi0gICAgLy8gUmV0
YWluIGl0IHRvIHByZXZlbnQgYWNxdWlyZUJ1ZmZlckhlbHBlciBmcm9tIGFjdHVhbGx5IHJlbGVh
c2luZyBpdC4KLSAgICBzcmMucmV0YWluUmVhZE9ubHkoJmNvbnRleHRWay0+Z2V0UmVzb3VyY2VV
c2VMaXN0KCkpOwotCiAgICAgQU5HTEVfVFJZKGFjcXVpcmVCdWZmZXJIZWxwZXIoY29udGV4dFZr
LCBzdGF0aWNfY2FzdDxzaXplX3Q+KG1TdGF0ZS5nZXRTaXplKCkpLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEJ1ZmZlclVwZGF0ZVR5cGU6OkNvbnRlbnRzVXBkYXRlKSk7CiAK
QEAgLTYwOCwxMSArNjIyLDE2IEBAIGFuZ2xlOjpSZXN1bHQgQnVmZmVyVms6Om1hcFJhbmdlSW1w
bChDb250ZXh0VmsgKmNvbnRleHRWaywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBHTGJpdGZpZWxkIGFjY2VzcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB2b2lkICoqbWFwUHRyKQogewotICAgIHVpbnQ4X3QgKiptYXBQdHJCeXRlcyA9IHJlaW50
ZXJwcmV0X2Nhc3Q8dWludDhfdCAqKj4obWFwUHRyKTsKLQogICAgIEFTU0VSVChtQnVmZmVyLnZh
bGlkKCkpOwogCi0gICAgYm9vbCBob3N0VmlzaWJsZSA9IG1CdWZmZXIuaXNIb3N0VmlzaWJsZSgp
OworICAgIC8vIFJlY29yZCBtYXAgY2FsbCBwYXJhbWV0ZXJzIGluIGNhc2UgdGhpcyBjYWxsIGlz
IGZyb20gYW5nbGUgaW50ZXJuYWwgKHRoZSBhY2Nlc3Mvb2Zmc2V0L2xlbmd0aAorICAgIC8vIHdp
bGwgYmUgaW5jb25zaXN0ZW50IGZyb20gbVN0YXRlKS4KKyAgICBtSXNNYXBwZWRGb3JXcml0ZSA9
IChhY2Nlc3MgJiBHTF9NQVBfV1JJVEVfQklUKSAhPSAwOworICAgIG1NYXBwZWRPZmZzZXQgICAg
ID0gb2Zmc2V0OworICAgIG1NYXBwZWRMZW5ndGggICAgID0gbGVuZ3RoOworCisgICAgdWludDhf
dCAqKm1hcFB0ckJ5dGVzID0gcmVpbnRlcnByZXRfY2FzdDx1aW50OF90ICoqPihtYXBQdHIpOwor
ICAgIGJvb2wgaG9zdFZpc2libGUgICAgICA9IG1CdWZmZXIuaXNIb3N0VmlzaWJsZSgpOwogCiAg
ICAgLy8gTUFQX1VOU1lOQ0hST05JWkVEX0JJVCwgc28gaW1tZWRpYXRlbHkgbWFwLgogICAgIGlm
ICgoYWNjZXNzICYgR0xfTUFQX1VOU1lOQ0hST05JWkVEX0JJVCkgIT0gMCkKQEAgLTcxMywxNSAr
NzMyLDEzIEBAIGFuZ2xlOjpSZXN1bHQgQnVmZmVyVms6OnVubWFwSW1wbChDb250ZXh0VmsgKmNv
bnRleHRWaykKIHsKICAgICBBU1NFUlQobUJ1ZmZlci52YWxpZCgpKTsKIAotICAgIGJvb2wgd3Jp
dGVPcGVyYXRpb24gPSAoKG1TdGF0ZS5nZXRBY2Nlc3NGbGFncygpICYgR0xfTUFQX1dSSVRFX0JJ
VCkgIT0gMCk7Ci0KICAgICBpZiAobUlzU3RhZ2luZ0J1ZmZlck1hcHBlZCkKICAgICB7CiAgICAg
ICAgIEFTU0VSVChtU3RhZ2luZ0J1ZmZlci52YWxpZCgpKTsKICAgICAgICAgLy8gVGhlIGJ1ZmZl
ciBpcyBkZXZpY2UgbG9jYWwgb3Igb3B0aW1pemF0aW9uIG9mIHNtYWxsIHJhbmdlIG1hcC4KLSAg
ICAgICAgaWYgKHdyaXRlT3BlcmF0aW9uKQorICAgICAgICBpZiAobUlzTWFwcGVkRm9yV3JpdGUp
CiAgICAgICAgIHsKLSAgICAgICAgICAgIEFOR0xFX1RSWShmbHVzaFN0YWdpbmdCdWZmZXIoY29u
dGV4dFZrLCBtU3RhdGUuZ2V0TWFwT2Zmc2V0KCksIG1TdGF0ZS5nZXRNYXBMZW5ndGgoKSkpOwor
ICAgICAgICAgICAgQU5HTEVfVFJZKGZsdXNoU3RhZ2luZ0J1ZmZlcihjb250ZXh0VmssIG1NYXBw
ZWRPZmZzZXQsIG1NYXBwZWRMZW5ndGgpKTsKICAgICAgICAgfQogCiAgICAgICAgIG1Jc1N0YWdp
bmdCdWZmZXJNYXBwZWQgPSBmYWxzZTsKQEAgLTczMiwxMSArNzQ5LDE2IEBAIGFuZ2xlOjpSZXN1
bHQgQnVmZmVyVms6OnVubWFwSW1wbChDb250ZXh0VmsgKmNvbnRleHRWaykKICAgICAgICAgbUJ1
ZmZlci51bm1hcChjb250ZXh0VmstPmdldFJlbmRlcmVyKCkpOwogICAgIH0KIAotICAgIGlmICh3
cml0ZU9wZXJhdGlvbikKKyAgICBpZiAobUlzTWFwcGVkRm9yV3JpdGUpCiAgICAgewogICAgICAg
ICBkYXRhVXBkYXRlZCgpOwogICAgIH0KIAorICAgIC8vIFJlc2V0IHRoZSBtYXBwaW5nIHBhcmFt
ZXRlcnMKKyAgICBtSXNNYXBwZWRGb3JXcml0ZSA9IGZhbHNlOworICAgIG1NYXBwZWRPZmZzZXQg
ICAgID0gMDsKKyAgICBtTWFwcGVkTGVuZ3RoICAgICA9IDA7CisKICAgICByZXR1cm4gYW5nbGU6
OlJlc3VsdDo6Q29udGludWU7CiB9CiAKQEAgLTg0NSw2ICs4NjcsOCBAQCBhbmdsZTo6UmVzdWx0
IEJ1ZmZlclZrOjphY3F1aXJlQW5kVXBkYXRlKENvbnRleHRWayAqY29udGV4dFZrLAogewogICAg
IC8vIFdlIHNob3VsZG4ndCBnZXQgaGVyZSBpZiB0aGlzIGlzIGV4dGVybmFsIG1lbW9yeQogICAg
IEFTU0VSVCghaXNFeHRlcm5hbEJ1ZmZlcigpKTsKKyAgICAvLyBJZiBTdG9yYWdlUmVkZWZpbmVk
LCB3ZSBjYW4gbm90IHVzZSBtU3RhdGUuZ2V0U2l6ZSgpIHRvIGFsbG9jYXRlIGEgbmV3IGJ1ZmZl
ci4KKyAgICBBU1NFUlQodXBkYXRlVHlwZSAhPSBCdWZmZXJVcGRhdGVUeXBlOjpTdG9yYWdlUmVk
ZWZpbmVkKTsKIAogICAgIC8vIEhlcmUgd2UgYWNxdWlyZSBhIG5ldyBCdWZmZXJIZWxwZXIgYW5k
IGRpcmVjdFVwZGF0ZSgpIHRoZSBuZXcgYnVmZmVyLgogICAgIC8vIElmIHRoZSBzdWJEYXRhIHNp
emUgd2FzIGxlc3MgdGhhbiB0aGUgYnVmZmVyJ3Mgc2l6ZSB3ZSBhZGRpdGlvbmFsbHkgZW5xdWV1
ZQpAQCAtODYxLDEyICs4ODUsNiBAQCBhbmdsZTo6UmVzdWx0IEJ1ZmZlclZrOjphY3F1aXJlQW5k
VXBkYXRlKENvbnRleHRWayAqY29udGV4dFZrLAogICAgIHsKICAgICAgICAgc3JjID0gc3RkOjpt
b3ZlKG1CdWZmZXIpOwogCi0gICAgICAgIC8vIEl0J3MgcG9zc2libGUgZm9yIGFjcXVpcmVCdWZm
ZXJIZWxwZXIoKSB0byBnYXJiYWdlIGNvbGxlY3QgdGhlIG9yaWdpbmFsIChzcmMpIGJ1ZmZlcgot
ICAgICAgICAvLyBiZWZvcmUgY29weUZyb21CdWZmZXIoKSBoYXMgYSBjaGFuY2UgdG8gcmV0YWlu
IGl0LCBzbyByZXRhaW4gaXQgbm93LiBUaGlzIG1heSBlbmQgdXAKLSAgICAgICAgLy8gZG91Ymxl
LXJldGFpbmluZyB0aGUgYnVmZmVyLCB3aGljaCBpcyBhIG5lY2Vzc2FyeSBzaWRlLWVmZmVjdCB0
byBwcmV2ZW50IGEKLSAgICAgICAgLy8gdXNlLWFmdGVyLWZyZWUuCi0gICAgICAgIHNyYy5yZXRh
aW5SZWFkT25seSgmY29udGV4dFZrLT5nZXRSZXNvdXJjZVVzZUxpc3QoKSk7Ci0KICAgICAgICAg
Ly8gVGhlIHRvdGFsIGJ5dGVzIHRoYXQgd2UgbmVlZCB0byBjb3B5IGZyb20gb2xkIGJ1ZmZlciB0
byBuZXcgYnVmZmVyCiAgICAgICAgIHNpemVfdCBjb3B5U2l6ZSA9IGJ1ZmZlclNpemUgLSB1cGRh
dGVTaXplOwogCkBAIC05MjMsNyArOTQxLDYgQEAgYW5nbGU6OlJlc3VsdCBCdWZmZXJWazo6YWNx
dWlyZUFuZFVwZGF0ZShDb250ZXh0VmsgKmNvbnRleHRWaywKICAgICB7CiAgICAgICAgIEFOR0xF
X1RSWShtQnVmZmVyLmNvcHlGcm9tQnVmZmVyKGNvbnRleHRWaywgJnNyYywgc3RhdGljX2Nhc3Q8
dWludDMyX3Q+KGNvcHlSZWdpb25zLnNpemUoKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvcHlSZWdpb25zLmRhdGEoKSkpOwotICAgICAgICBtSGFzQmVlblJl
ZmVyZW5jZWRCeUdQVSA9IHRydWU7CiAgICAgfQogCiAgICAgaWYgKHNyYy52YWxpZCgpKQpAQCAt
OTQ3LDExICs5NjQsMTggQEAgYW5nbGU6OlJlc3VsdCBCdWZmZXJWazo6c2V0RGF0YUltcGwoQ29u
dGV4dFZrICpjb250ZXh0VmssCiAgICAgLy8gZWxzZSB1cGRhdGUgdGhlIGJ1ZmZlciBkaXJlY3Rs
eQogICAgIGlmIChpc0N1cnJlbnRseUluVXNlKGNvbnRleHRWaykpCiAgICAgeworICAgICAgICAv
LyBJZiBzdG9yYWdlIGhhcyBqdXN0IGJlZW4gcmVkZWZpbmVkLCBkb24ndCBnbyBkb3duIGFjcXVp
cmVBbmRVcGRhdGUgY29kZSBwYXRoLiBUaGVyZSBpcyBubworICAgICAgICAvLyByZWFzb24geW91
IGFjcXVpcmUgYW5vdGhlciBuZXcgYnVmZmVyIHJpZ2h0IGFmdGVyIHJlZGVmaW5lZC4gQW5kIGlm
IHdlIGRvIGdvIGludG8KKyAgICAgICAgLy8gYWNxdWlyZUFuZFVwZGF0ZSwgeW91IHdpbGwgYWxz
byBydW4gaW50IGNvcnJlY3RuZXNzIGJ1ZyB0aGF0IG1TdGF0ZS5nZXRTaXplKCkgaGFzIG5vdAor
ICAgICAgICAvLyBiZWVuIHVwZGF0ZWQgd2l0aCBuZXcgc2l6ZSBhbmQgeW91IHdpbGwgYWNxdWly
ZSBhIG5ldyBidWZmZXIgd2l0aCB3cm9uZyBzaXplLiBUaGlzIGNvdWxkCisgICAgICAgIC8vIGhh
cHBlbiBpZiB0aGUgYnVmZmVyIG1lbW9yeSBpcyBERVZJQ0VfTE9DQUwgYW5kCisgICAgICAgIC8v
IHJlbmRlcmVyLT5nZXRGZWF0dXJlcygpLmFsbG9jYXRlTm9uWmVyb01lbW9yeS5lbmFibGVkIGlz
IHRydWUuIEluIHRoaXMgY2FzZSB3ZSB3aWxsIGlzc3VlCisgICAgICAgIC8vIGEgY29weVRvQnVm
ZmVyIGltbWVkaWF0ZWx5IGFmdGVyIGFsbG9jYXRpb24gYW5kIGlzQ3VycmVudGx5SW5Vc2Ugd2ls
bCBiZSB0cnVlLgogICAgICAgICAvLyBJZiBCdWZmZXJWayBkb2VzIG5vdCBoYXZlIGFueSB2YWxp
ZCBkYXRhLCB3aGljaCBtZWFucyB0aGVyZSBpcyBubyBkYXRhIG5lZWRzIHRvIGJlIGNvcGllZAog
ICAgICAgICAvLyBmcm9tIG9sZCBidWZmZXIgdG8gbmV3IGJ1ZmZlciB3aGVuIHdlIGFjcXVpcmUg
YSBuZXcgYnVmZmVyLCB3ZSBhbHNvIGZhdm9yCiAgICAgICAgIC8vIGFjcXVpcmVBbmRVcGRhdGUg
b3ZlciBzdGFnZWRVcGRhdGUuIFRoaXMgY291bGQgaGFwcGVuIHdoZW4gYXBwIGNhbGxzIGdsQnVm
ZmVyRGF0YSB3aXRoCiAgICAgICAgIC8vIHNhbWUgc2l6ZSBhbmQgd2Ugd2lsbCB0cnkgdG8gcmV1
c2UgdGhlIGV4aXN0aW5nIGJ1ZmZlciBzdG9yYWdlLgotICAgICAgICBpZiAoIWlzRXh0ZXJuYWxC
dWZmZXIoKSAmJgorICAgICAgICBpZiAoIWlzRXh0ZXJuYWxCdWZmZXIoKSAmJiB1cGRhdGVUeXBl
ICE9IEJ1ZmZlclVwZGF0ZVR5cGU6OlN0b3JhZ2VSZWRlZmluZWQgJiYKICAgICAgICAgICAgICgh
bUhhc1ZhbGlkRGF0YSB8fCBTaG91bGRBbGxvY2F0ZU5ld01lbW9yeUZvclVwZGF0ZSgKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dFZrLCBzaXplLCBzdGF0aWNfY2Fz
dDxzaXplX3Q+KG1TdGF0ZS5nZXRTaXplKCkpKSkpCiAgICAgICAgIHsKQEAgLTEwNDIsOCArMTA2
Niw3IEBAIGFuZ2xlOjpSZXN1bHQgQnVmZmVyVms6OmFjcXVpcmVCdWZmZXJIZWxwZXIoQ29udGV4
dFZrICpjb250ZXh0VmssCiAKIGJvb2wgQnVmZmVyVms6OmlzQ3VycmVudGx5SW5Vc2UoQ29udGV4
dFZrICpjb250ZXh0VmspIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1IYXNCZWVuUmVmZXJlbmNlZEJ5
R1BVICYmCi0gICAgICAgICAgIG1CdWZmZXIuaXNDdXJyZW50bHlJblVzZShjb250ZXh0VmstPmdl
dExhc3RDb21wbGV0ZWRRdWV1ZVNlcmlhbCgpKTsKKyAgICByZXR1cm4gbUJ1ZmZlci5pc0N1cnJl
bnRseUluVXNlKGNvbnRleHRWay0+Z2V0TGFzdENvbXBsZXRlZFF1ZXVlU2VyaWFsKCkpOwogfQog
CiB9ICAvLyBuYW1lc3BhY2UgcngKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xF
L3NyYy9saWJBTkdMRS9yZW5kZXJlci92dWxrYW4vQnVmZmVyVmsuaCBiL1NvdXJjZS9UaGlyZFBh
cnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci92dWxrYW4vQnVmZmVyVmsuaAppbmRleCA3
NTc0MjEwZTA0NWFiOTE0YmQ1MmE1NjQ2Mzg0MzJhNTI4ZGVlN2Q4Li41YzVmYTg2ZWQwMjE5Y2Ex
OWZlMDdmNTRkZGNlNGYyNjk4ZWVmZjBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9B
TkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvdnVsa2FuL0J1ZmZlclZrLmgKKysrIGIvU291cmNl
L1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL3Z1bGthbi9CdWZmZXJWay5o
CkBAIC0xMDYsMTAgKzEwNiw2IEBAIGNsYXNzIEJ1ZmZlclZrIDogcHVibGljIEJ1ZmZlckltcGwK
ICAgICB2azo6QnVmZmVySGVscGVyICZnZXRCdWZmZXIoKQogICAgIHsKICAgICAgICAgQVNTRVJU
KGlzQnVmZmVyVmFsaWQoKSk7Ci0gICAgICAgIC8vIEFsd2F5cyBtYXJrIHRoZSBCdWZmZXJIZWxw
ZXIgYXMgcmVmZXJlbmNlZCBieSB0aGUgR1BVLCB3aGV0aGVyIG9yIG5vdCB0aGVyZSdzIGEgcGVu
ZGluZwotICAgICAgICAvLyBzdWJtaXNzaW9uLCBzaW5jZSB0aGlzIGZ1bmN0aW9uIGlzIG9ubHkg
Y2FsbGVkIHdoZW4gdHJ5aW5nIHRvIGdldCB0aGUgdW5kZXJseWluZwotICAgICAgICAvLyBCdWZm
ZXJIZWxwZXIgb2JqZWN0IHNvIGl0IGNhbiBiZSB1c2VkIGluIGEgY29tbWFuZC4KLSAgICAgICAg
bUhhc0JlZW5SZWZlcmVuY2VkQnlHUFUgPSB0cnVlOwogICAgICAgICByZXR1cm4gbUJ1ZmZlcjsK
ICAgICB9CiAKQEAgLTIyMiwxMyArMjE4LDE1IEBAIGNsYXNzIEJ1ZmZlclZrIDogcHVibGljIEJ1
ZmZlckltcGwKICAgICAvLyBUcmFja3MgaWYgQnVmZmVyVmsgb2JqZWN0IGhhcyB2YWxpZCBkYXRh
IG9yIG5vdC4KICAgICBib29sIG1IYXNWYWxpZERhdGE7CiAKLSAgICAvLyBUT0RPOiBodHRwczov
L2lzc3VldHJhY2tlci5nb29nbGUuY29tLzIwMTgyNjAyMSBSZW1vdmUgdGhpcyBvbmNlIHdlIGhh
dmUgYSBmdWxsIGZpeC4KLSAgICAvLyBUcmFja3MgaWYgQnVmZmVyVmsncyBkYXRhIGlzIGV2ZXIg
YmVlbiByZWZlcmVuY2VkIGJ5IEdQVSBzaW5jZSBuZXcgc3RvcmFnZSBoYXMgYmVlbgotICAgIC8v
IGFsbG9jYXRlZC4gRHVlIHRvIHN1Yi1hbGxvY2F0aW9uLCB3ZSBtYXkgZ2V0IGEgbmV3IHN1Yi1h
bGxvY2F0ZWQgcmFuZ2UgaW4gdGhlIHNhbWUKLSAgICAvLyBCdWZmZXJIZWxwZXIgb2JqZWN0LiBC
ZWNhdXNlIHdlIHRyYWNrIEdQVSBwcm9ncmVzcyBieSB0aGUgQnVmZmVySGVscGVyIG9iamVjdCwg
dGhpcyBmbGFnIHdpbGwKLSAgICAvLyBoZWxwIHVzIHRvIGF2b2lkIGRldGVjdGluZyB3ZSBhcmUg
c3RpbGwgR1BVIGJ1c3kgZXZlbiB0aG91Z2ggbm8gb25lIGhhcyB1c2VkIGl0IHlldCBzaW5jZQot
ICAgIC8vIHdlIGdvdCBsYXN0IHN1Yi1hbGxvY2F0aW9uLgotICAgIGJvb2wgbUhhc0JlZW5SZWZl
cmVuY2VkQnlHUFU7CisgICAgLy8gVHJ1ZSBpZiB0aGUgYnVmZmVyIGlzIGN1cnJlbnRseSBtYXBw
ZWQgZm9yIENQVSB3cml0ZSBhY2Nlc3MuIElmIHRoZSBtYXAgY2FsbCBpcyBvcmlnaW5hdGVkCisg
ICAgLy8gZnJvbSBPcGVuR0xFUyBBUEkgY2FsbCwgdGhlbiB0aGlzIHNob3VsZCBiZSBjb25zaXN0
ZW50IHdpdGggbVN0YXRlLmdldEFjY2Vzc0ZsYWdzKCkgYml0cy4KKyAgICAvLyBPdGhlcndpc2Ug
aXQgaXMgbWFwcGVkIGZyb20gQU5HTEUgaW50ZXJuYWwgYW5kIHdpbGwgbm90IGJlIGNvbnNpc3Rl
bnQgd2l0aCBtU3RhdGUgYWNjZXNzCisgICAgLy8gYml0cywgc28gd2UgaGF2ZSB0byBrZWVwIHJl
Y29yZCBvZiBpdC4KKyAgICBib29sIG1Jc01hcHBlZEZvcldyaXRlOworICAgIC8vIFNpbWlsYXIg
YXMgbUlzTWFwcGVkRm9yV3JpdGUsIHRoaXMgbWF5YmUgZGlmZmVyZW50IGZyb20gbVN0YXRlJ3Mg
Z2V0TWFwT2Zmc2V0L2dldE1hcExlbmd0aCBpZgorICAgIC8vIG1hcHBlZCBmcm9tIGFuZ2xlIGlu
dGVybmFsLgorICAgIFZrRGV2aWNlU2l6ZSBtTWFwcGVkT2Zmc2V0OworICAgIFZrRGV2aWNlU2l6
ZSBtTWFwcGVkTGVuZ3RoOwogfTsKIAogfSAgLy8gbmFtZXNwYWNlIHJ4CmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvdnVsa2FuL0NvbW1h
bmRQcm9jZXNzb3IuY3BwIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3Jl
bmRlcmVyL3Z1bGthbi9Db21tYW5kUHJvY2Vzc29yLmNwcAppbmRleCA0ZTM4NjM5OGFmZmQ4NzM0
YWZmNWY2NzgzZTI5NTM1Yjg5ZjY0ZDg0Li40MWJmNWQwZjhiZGU0MzJmMmEwMmM4NTc5ZWU3M2Vh
NjJiMjdlMjk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5H
TEUvcmVuZGVyZXIvdnVsa2FuL0NvbW1hbmRQcm9jZXNzb3IuY3BwCisrKyBiL1NvdXJjZS9UaGly
ZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci92dWxrYW4vQ29tbWFuZFByb2Nlc3Nv
ci5jcHAKQEAgLTgxLDYgKzgxLDI3IEBAIEFOR0xFX01BWUJFX1VOVVNFRCB2b2lkIFJlc2V0U2Vj
b25kYXJ5Q29tbWFuZEJ1ZmZlcnM8c3RkOjp2ZWN0b3I8VnVsa2FuU2Vjb25kYXJ5CiAgICAgfQog
ICAgIGNvbW1hbmRCdWZmZXJzLT5jbGVhcigpOwogfQorCisvLyBDb3VudCB0aGUgbnVtYmVyIG9m
IGJhdGNoZXMgd2l0aCBzZXJpYWwgPD0gZ2l2ZW4gc2VyaWFsLiAgQSByZWZlcmVuY2UgdG8gdGhl
IGZlbmNlIG9mIHRoZSBsYXN0CisvLyBiYXRjaCB3aXRoIGEgdmFsaWQgZmVuY2UgaXMgcmV0dXJu
ZWQgZm9yIHdhaXRpbmcgcHVycG9zZXMuICBOb3RlIHRoYXQgZHVlIHRvIGVtcHR5IHN1Ym1pc3Np
b25zCisvLyBiZWluZyBvcHRpbWl6ZWQgb3V0LCB0aGVyZSBtYXkgbm90IGJlIGEgZmVuY2UgYXNz
b2NpYXRlZCB3aXRoIGV2ZXJ5IGJhdGNoLgorc2l6ZV90IEdldEJhdGNoQ291bnRVcFRvU2VyaWFs
KHN0ZDo6dmVjdG9yPENvbW1hbmRCYXRjaD4gJmluRmxpZ2h0Q29tbWFuZHMsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgU2VyaWFsIHNlcmlhbCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBTaGFyZWQ8RmVuY2U+ICoqZmVuY2VUb1dhaXRPbk91dCkKK3sKKyAgICBzaXpl
X3QgYmF0Y2hDb3VudCA9IDA7CisgICAgd2hpbGUgKGJhdGNoQ291bnQgPCBpbkZsaWdodENvbW1h
bmRzLnNpemUoKSAmJiBpbkZsaWdodENvbW1hbmRzW2JhdGNoQ291bnRdLnNlcmlhbCA8PSBzZXJp
YWwpCisgICAgeworICAgICAgICBpZiAoaW5GbGlnaHRDb21tYW5kc1tiYXRjaENvdW50XS5mZW5j
ZS5pc1JlZmVyZW5jZWQoKSkKKyAgICAgICAgeworICAgICAgICAgICAgKmZlbmNlVG9XYWl0T25P
dXQgPSAmaW5GbGlnaHRDb21tYW5kc1tiYXRjaENvdW50XS5mZW5jZTsKKyAgICAgICAgfQorCisg
ICAgICAgIGJhdGNoQ291bnQrKzsKKyAgICB9CisKKyAgICByZXR1cm4gYmF0Y2hDb3VudDsKK30K
IH0gIC8vIG5hbWVzcGFjZQogCiBhbmdsZTo6UmVzdWx0IEZlbmNlUmVjeWNsZXI6Om5ld1NoYXJl
ZEZlbmNlKHZrOjpDb250ZXh0ICpjb250ZXh0LApAQCAtODI4LDcgKzg0OSw4IEBAIGFuZ2xlOjpS
ZXN1bHQgQ29tbWFuZFByb2Nlc3Nvcjo6ZW5zdXJlTm9QZW5kaW5nV29yayhDb250ZXh0ICpjb250
ZXh0KQogfQogCiAvLyBDb21tYW5kUXVldWUgaW1wbGVtZW50YXRpb24uCi1Db21tYW5kUXVldWU6
OkNvbW1hbmRRdWV1ZSgpIDogbUN1cnJlbnRRdWV1ZVNlcmlhbChtUXVldWVTZXJpYWxGYWN0b3J5
LmdlbmVyYXRlKCkpIHt9CitDb21tYW5kUXVldWU6OkNvbW1hbmRRdWV1ZSgpIDogbUN1cnJlbnRR
dWV1ZVNlcmlhbChtUXVldWVTZXJpYWxGYWN0b3J5LmdlbmVyYXRlKCkpLCBtUGVyZkNvdW50ZXJz
e30KK3t9CiAKIENvbW1hbmRRdWV1ZTo6fkNvbW1hbmRRdWV1ZSgpID0gZGVmYXVsdDsKIApAQCAt
ODg2LDEyICs5MDgsMTggQEAgYW5nbGU6OlJlc3VsdCBDb21tYW5kUXVldWU6OmNoZWNrQ29tcGxl
dGVkQ29tbWFuZHMoQ29udGV4dCAqY29udGV4dCkKIAogICAgIGZvciAoQ29tbWFuZEJhdGNoICZi
YXRjaCA6IG1JbkZsaWdodENvbW1hbmRzKQogICAgIHsKLSAgICAgICAgVmtSZXN1bHQgcmVzdWx0
ID0gYmF0Y2guZmVuY2UuZ2V0KCkuZ2V0U3RhdHVzKGRldmljZSk7Ci0gICAgICAgIGlmIChyZXN1
bHQgPT0gVktfTk9UX1JFQURZKQorICAgICAgICAvLyBGb3IgZW1wdHkgc3VibWlzc2lvbnMsIGZl
bmNlIGlzIG5vdCBzZXQgYnV0IHRoZXJlIG1heSBiZSBnYXJiYWdlIHRvIGJlIGNvbGxlY3RlZC4g
IEluCisgICAgICAgIC8vIHN1Y2ggYSBjYXNlLCB0aGUgZW1wdHkgc3VibWlzc2lvbiBpcyAiY29t
cGxldGVkIiBhdCB0aGUgc2FtZSB0aW1lIGFzIHRoZSBsYXN0IHN1Ym1pc3Npb24KKyAgICAgICAg
Ly8gdGhhdCBhY3R1YWxseSBoYXBwZW5lZC4KKyAgICAgICAgaWYgKGJhdGNoLmZlbmNlLmlzUmVm
ZXJlbmNlZCgpKQogICAgICAgICB7Ci0gICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIFZr
UmVzdWx0IHJlc3VsdCA9IGJhdGNoLmZlbmNlLmdldCgpLmdldFN0YXR1cyhkZXZpY2UpOworICAg
ICAgICAgICAgaWYgKHJlc3VsdCA9PSBWS19OT1RfUkVBRFkpCisgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBBTkdMRV9WS19U
UlkoY29udGV4dCwgcmVzdWx0KTsKICAgICAgICAgfQotICAgICAgICBBTkdMRV9WS19UUlkoY29u
dGV4dCwgcmVzdWx0KTsKICAgICAgICAgKytmaW5pc2hlZENvdW50OwogICAgIH0KIApAQCAtOTE1
LDExICs5NDMsMTggQEAgYW5nbGU6OlJlc3VsdCBDb21tYW5kUXVldWU6OnJldGlyZUZpbmlzaGVk
Q29tbWFuZHMoQ29udGV4dCAqY29udGV4dCwgc2l6ZV90IGZpbmkKICAgICAgICAgQ29tbWFuZEJh
dGNoICZiYXRjaCA9IG1JbkZsaWdodENvbW1hbmRzW2NvbW1hbmRJbmRleF07CiAKICAgICAgICAg
bUxhc3RDb21wbGV0ZWRRdWV1ZVNlcmlhbCA9IGJhdGNoLnNlcmlhbDsKLSAgICAgICAgbUZlbmNl
UmVjeWNsZXIucmVzZXRTaGFyZWRGZW5jZSgmYmF0Y2guZmVuY2UpOwotICAgICAgICBBTkdMRV9U
UkFDRV9FVkVOVDAoImdwdS5hbmdsZSIsICJjb21tYW5kIGJ1ZmZlciByZWN5Y2xpbmciKTsKKyAg
ICAgICAgaWYgKGJhdGNoLmZlbmNlLmlzUmVmZXJlbmNlZCgpKQorICAgICAgICB7CisgICAgICAg
ICAgICBtRmVuY2VSZWN5Y2xlci5yZXNldFNoYXJlZEZlbmNlKCZiYXRjaC5mZW5jZSk7CisgICAg
ICAgIH0KKyAgICAgICAgaWYgKGJhdGNoLnByaW1hcnlDb21tYW5kcy52YWxpZCgpKQorICAgICAg
ICB7CisgICAgICAgICAgICBBTkdMRV9UUkFDRV9FVkVOVDAoImdwdS5hbmdsZSIsICJQcmltYXJ5
IGNvbW1hbmQgYnVmZmVyIHJlY3ljbGluZyIpOworICAgICAgICAgICAgUGVyc2lzdGVudENvbW1h
bmRQb29sICZjb21tYW5kUG9vbCA9IGdldENvbW1hbmRQb29sKGJhdGNoLmhhc1Byb3RlY3RlZENv
bnRlbnQpOworICAgICAgICAgICAgQU5HTEVfVFJZKGNvbW1hbmRQb29sLmNvbGxlY3QoY29udGV4
dCwgc3RkOjptb3ZlKGJhdGNoLnByaW1hcnlDb21tYW5kcykpKTsKKyAgICAgICAgfQorICAgICAg
ICBBTkdMRV9UUkFDRV9FVkVOVDAoImdwdS5hbmdsZSIsICJTZWNvbmRhcnkgY29tbWFuZCBidWZm
ZXIgcmVjeWNsaW5nIik7CiAgICAgICAgIGJhdGNoLnJlc2V0U2Vjb25kYXJ5Q29tbWFuZEJ1ZmZl
cnMoZGV2aWNlKTsKLSAgICAgICAgUGVyc2lzdGVudENvbW1hbmRQb29sICZjb21tYW5kUG9vbCA9
IGdldENvbW1hbmRQb29sKGJhdGNoLmhhc1Byb3RlY3RlZENvbnRlbnQpOwotICAgICAgICBBTkdM
RV9UUlkoY29tbWFuZFBvb2wuY29sbGVjdChjb250ZXh0LCBzdGQ6Om1vdmUoYmF0Y2gucHJpbWFy
eUNvbW1hbmRzKSkpOwogICAgIH0KIAogICAgIGlmIChmaW5pc2hlZENvdW50ID4gMCkKQEAgLTk4
MiwxNiArMTAxNywyMyBAQCB2b2lkIENvbW1hbmRRdWV1ZTo6aGFuZGxlRGV2aWNlTG9zdChSZW5k
ZXJlclZrICpyZW5kZXJlcikKICAgICBmb3IgKENvbW1hbmRCYXRjaCAmYmF0Y2ggOiBtSW5GbGln
aHRDb21tYW5kcykKICAgICB7CiAgICAgICAgIC8vIE9uIGRldmljZSBsb3NzIHdlIG5lZWQgdG8g
d2FpdCBmb3IgZmVuY2UgdG8gYmUgc2lnbmFsZWQgYmVmb3JlIGRlc3Ryb3lpbmcgaXQKLSAgICAg
ICAgVmtSZXN1bHQgc3RhdHVzID0gYmF0Y2guZmVuY2UuZ2V0KCkud2FpdChkZXZpY2UsIHJlbmRl
cmVyLT5nZXRNYXhGZW5jZVdhaXRUaW1lTnMoKSk7Ci0gICAgICAgIC8vIElmIHRoZSB3YWl0IHRp
bWVzIG91dCwgaXQgaXMgcHJvYmFibHkgbm90IHBvc3NpYmxlIHRvIHJlY292ZXIgZnJvbSBsb3N0
IGRldmljZQotICAgICAgICBBU1NFUlQoc3RhdHVzID09IFZLX1NVQ0NFU1MgfHwgc3RhdHVzID09
IFZLX0VSUk9SX0RFVklDRV9MT1NUKTsKKyAgICAgICAgaWYgKGJhdGNoLmZlbmNlLmlzUmVmZXJl
bmNlZCgpKQorICAgICAgICB7CisgICAgICAgICAgICBWa1Jlc3VsdCBzdGF0dXMgPSBiYXRjaC5m
ZW5jZS5nZXQoKS53YWl0KGRldmljZSwgcmVuZGVyZXItPmdldE1heEZlbmNlV2FpdFRpbWVOcygp
KTsKKyAgICAgICAgICAgIC8vIElmIHRoZSB3YWl0IHRpbWVzIG91dCwgaXQgaXMgcHJvYmFibHkg
bm90IHBvc3NpYmxlIHRvIHJlY292ZXIgZnJvbSBsb3N0IGRldmljZQorICAgICAgICAgICAgQVNT
RVJUKHN0YXR1cyA9PSBWS19TVUNDRVNTIHx8IHN0YXR1cyA9PSBWS19FUlJPUl9ERVZJQ0VfTE9T
VCk7CisKKyAgICAgICAgICAgIGJhdGNoLmZlbmNlLnJlc2V0KGRldmljZSk7CisgICAgICAgIH0K
IAogICAgICAgICAvLyBPbiBkZXZpY2UgbG9zdCwgaGVyZSBzaW1wbHkgZGVzdHJveSB0aGUgQ29t
bWFuZEJ1ZmZlciwgaXQgd2lsbCBmdWxseSBjbGVhcmVkIGxhdGVyCiAgICAgICAgIC8vIGJ5IENv
bW1hbmRQb29sOjpkZXN0cm95Ci0gICAgICAgIGJhdGNoLnByaW1hcnlDb21tYW5kcy5kZXN0cm95
KGRldmljZSk7CisgICAgICAgIGlmIChiYXRjaC5wcmltYXJ5Q29tbWFuZHMudmFsaWQoKSkKKyAg
ICAgICAgeworICAgICAgICAgICAgYmF0Y2gucHJpbWFyeUNvbW1hbmRzLmRlc3Ryb3koZGV2aWNl
KTsKKyAgICAgICAgfQogCiAgICAgICAgIGJhdGNoLnJlc2V0U2Vjb25kYXJ5Q29tbWFuZEJ1ZmZl
cnMoZGV2aWNlKTsKLSAgICAgICAgYmF0Y2guZmVuY2UucmVzZXQoZGV2aWNlKTsKICAgICB9CiAg
ICAgbUluRmxpZ2h0Q29tbWFuZHMuY2xlYXIoKTsKIH0KQEAgLTEwMTMsMjggKzEwNTUsMjYgQEAg
YW5nbGU6OlJlc3VsdCBDb21tYW5kUXVldWU6OmZpbmlzaFRvU2VyaWFsKENvbnRleHQgKmNvbnRl
eHQsIFNlcmlhbCBmaW5pc2hTZXJpYWwKICAgICAvLyBGaW5kIHRoZSBzZXJpYWwgaW4gdGhlIHRo
ZSBsaXN0LiBUaGUgc2VyaWFscyBzaG91bGQgYmUgaW4gb3JkZXIuCiAgICAgQVNTRVJUKENvbW1h
bmRzSGF2ZVZhbGlkT3JkZXJpbmcobUluRmxpZ2h0Q29tbWFuZHMpKTsKIAotICAgIHNpemVfdCBm
aW5pc2hlZENvdW50ID0gMDsKLSAgICB3aGlsZSAoZmluaXNoZWRDb3VudCA8IG1JbkZsaWdodENv
bW1hbmRzLnNpemUoKSAmJgotICAgICAgICAgICBtSW5GbGlnaHRDb21tYW5kc1tmaW5pc2hlZENv
dW50XS5zZXJpYWwgPD0gZmluaXNoU2VyaWFsKQotICAgIHsKLSAgICAgICAgZmluaXNoZWRDb3Vu
dCsrOwotICAgIH0KKyAgICBTaGFyZWQ8RmVuY2U+ICpmZW5jZVRvV2FpdE9uID0gbnVsbHB0cjsK
KyAgICBzaXplX3QgZmluaXNoQ291bnQgPSBHZXRCYXRjaENvdW50VXBUb1NlcmlhbChtSW5GbGln
aHRDb21tYW5kcywgZmluaXNoU2VyaWFsLCAmZmVuY2VUb1dhaXRPbik7CiAKLSAgICBpZiAoZmlu
aXNoZWRDb3VudCA9PSAwKQorICAgIGlmIChmaW5pc2hDb3VudCA9PSAwKQogICAgIHsKICAgICAg
ICAgcmV0dXJuIGFuZ2xlOjpSZXN1bHQ6OkNvbnRpbnVlOwogICAgIH0KIAotICAgIGNvbnN0IENv
bW1hbmRCYXRjaCAmYmF0Y2ggPSBtSW5GbGlnaHRDb21tYW5kc1tmaW5pc2hlZENvdW50IC0gMV07
Ci0KLSAgICAvLyBXYWl0IGZvciBpdCBmaW5pc2gKLSAgICBWa0RldmljZSBkZXZpY2UgPSBjb250
ZXh0LT5nZXREZXZpY2UoKTsKLSAgICBWa1Jlc3VsdCBzdGF0dXMgPSBiYXRjaC5mZW5jZS5nZXQo
KS53YWl0KGRldmljZSwgdGltZW91dCk7CisgICAgLy8gV2FpdCBmb3IgaXQgZmluaXNoLiAgSWYg
bm8gZmVuY2UsIHRoZSBzZXJpYWwgaXMgYWxyZWFkeSBmaW5pc2hlZCwgaXQgbWlnaHQganVzdCBo
YXZlIGdhcmJhZ2UKKyAgICAvLyB0byBjbGVhbiB1cC4KKyAgICBpZiAoZmVuY2VUb1dhaXRPbiAh
PSBudWxscHRyKQorICAgIHsKKyAgICAgICAgVmtEZXZpY2UgZGV2aWNlID0gY29udGV4dC0+Z2V0
RGV2aWNlKCk7CisgICAgICAgIFZrUmVzdWx0IHN0YXR1cyA9IGZlbmNlVG9XYWl0T24tPmdldCgp
LndhaXQoZGV2aWNlLCB0aW1lb3V0KTsKIAotICAgIEFOR0xFX1ZLX1RSWShjb250ZXh0LCBzdGF0
dXMpOworICAgICAgICBBTkdMRV9WS19UUlkoY29udGV4dCwgc3RhdHVzKTsKKyAgICB9CiAKICAg
ICAvLyBDbGVhbiB1cCBmaW5pc2hlZCBiYXRjaGVzLgotICAgIEFOR0xFX1RSWShyZXRpcmVGaW5p
c2hlZENvbW1hbmRzKGNvbnRleHQsIGZpbmlzaGVkQ291bnQpKTsKKyAgICBBTkdMRV9UUlkocmV0
aXJlRmluaXNoZWRDb21tYW5kcyhjb250ZXh0LCBmaW5pc2hDb3VudCkpOwogICAgIEFTU0VSVChh
bGxJbkZsaWdodENvbW1hbmRzQXJlQWZ0ZXJTZXJpYWwoZmluaXNoU2VyaWFsKSk7CiAKICAgICBy
ZXR1cm4gYW5nbGU6OlJlc3VsdDo6Q29udGludWU7CkBAIC0xMDY0LDM4ICsxMTA0LDUxIEBAIGFu
Z2xlOjpSZXN1bHQgQ29tbWFuZFF1ZXVlOjpzdWJtaXRGcmFtZSgKICAgICBTZWNvbmRhcnlDb21t
YW5kUG9vbHMgKmNvbW1hbmRQb29scywKICAgICBTZXJpYWwgc3VibWl0UXVldWVTZXJpYWwpCiB7
Ci0gICAgLy8gU3RhcnQgYW4gZW1wdHkgcHJpbWFyeSBidWZmZXIgaWYgd2UgaGF2ZSBhbiBlbXB0
eSBzdWJtaXQuCi0gICAgUHJpbWFyeUNvbW1hbmRCdWZmZXIgJmNvbW1hbmRCdWZmZXIgPSBnZXRD
b21tYW5kQnVmZmVyKGhhc1Byb3RlY3RlZENvbnRlbnQpOwotICAgIEFOR0xFX1RSWShlbnN1cmVQ
cmltYXJ5Q29tbWFuZEJ1ZmZlclZhbGlkKGNvbnRleHQsIGhhc1Byb3RlY3RlZENvbnRlbnQpKTsK
LSAgICBBTkdMRV9WS19UUlkoY29udGV4dCwgY29tbWFuZEJ1ZmZlci5lbmQoKSk7Ci0KLSAgICBW
a1N1Ym1pdEluZm8gc3VibWl0SW5mbyA9IHt9OwotICAgIEluaXRpYWxpemVTdWJtaXRJbmZvKCZz
dWJtaXRJbmZvLCBjb21tYW5kQnVmZmVyLCB3YWl0U2VtYXBob3Jlcywgd2FpdFNlbWFwaG9yZVN0
YWdlTWFza3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgc2lnbmFsU2VtYXBob3JlKTsKLQot
ICAgIFZrUHJvdGVjdGVkU3VibWl0SW5mbyBwcm90ZWN0ZWRTdWJtaXRJbmZvID0ge307Ci0gICAg
aWYgKGhhc1Byb3RlY3RlZENvbnRlbnQpCi0gICAgewotICAgICAgICBwcm90ZWN0ZWRTdWJtaXRJ
bmZvLnNUeXBlICAgICAgICAgICA9IFZLX1NUUlVDVFVSRV9UWVBFX1BST1RFQ1RFRF9TVUJNSVRf
SU5GTzsKLSAgICAgICAgcHJvdGVjdGVkU3VibWl0SW5mby5wTmV4dCAgICAgICAgICAgPSBudWxs
cHRyOwotICAgICAgICBwcm90ZWN0ZWRTdWJtaXRJbmZvLnByb3RlY3RlZFN1Ym1pdCA9IHRydWU7
Ci0gICAgICAgIHN1Ym1pdEluZm8ucE5leHQgICAgICAgICAgICAgICAgICAgID0gJnByb3RlY3Rl
ZFN1Ym1pdEluZm87Ci0gICAgfQotCi0gICAgQU5HTEVfVFJBQ0VfRVZFTlQwKCJncHUuYW5nbGUi
LCAiQ29tbWFuZFF1ZXVlOjpzdWJtaXRGcmFtZSIpOwotCiAgICAgUmVuZGVyZXJWayAqcmVuZGVy
ZXIgPSBjb250ZXh0LT5nZXRSZW5kZXJlcigpOwogICAgIFZrRGV2aWNlIGRldmljZSAgICAgID0g
cmVuZGVyZXItPmdldERldmljZSgpOwogCisgICAgKyttUGVyZkNvdW50ZXJzLmNvbW1hbmRRdWV1
ZVN1Ym1pdENhbGxzVG90YWw7CisgICAgKyttUGVyZkNvdW50ZXJzLmNvbW1hbmRRdWV1ZVN1Ym1p
dENhbGxzUGVyRnJhbWU7CisKICAgICBEZXZpY2VTY29wZWQ8Q29tbWFuZEJhdGNoPiBzY29wZWRC
YXRjaChkZXZpY2UpOwogICAgIENvbW1hbmRCYXRjaCAmYmF0Y2ggPSBzY29wZWRCYXRjaC5nZXQo
KTsKIAotICAgIEFOR0xFX1RSWShtRmVuY2VSZWN5Y2xlci5uZXdTaGFyZWRGZW5jZShjb250ZXh0
LCAmYmF0Y2guZmVuY2UpKTsKICAgICBiYXRjaC5zZXJpYWwgICAgICAgICAgICAgICAgPSBzdWJt
aXRRdWV1ZVNlcmlhbDsKICAgICBiYXRjaC5oYXNQcm90ZWN0ZWRDb250ZW50ICAgPSBoYXNQcm90
ZWN0ZWRDb250ZW50OwogICAgIGJhdGNoLmNvbW1hbmRCdWZmZXJzVG9SZXNldCA9IHN0ZDo6bW92
ZShjb21tYW5kQnVmZmVyc1RvUmVzZXQpOwogCi0gICAgQU5HTEVfVFJZKHF1ZXVlU3VibWl0KGNv
bnRleHQsIHByaW9yaXR5LCBzdWJtaXRJbmZvLCAmYmF0Y2guZmVuY2UuZ2V0KCksIGJhdGNoLnNl
cmlhbCkpOworICAgIC8vIERvbid0IG1ha2UgYSBzdWJtaXNzaW9uIGlmIHRoZXJlIGlzIG5vdGhp
bmcgdG8gc3VibWl0LgorICAgIFByaW1hcnlDb21tYW5kQnVmZmVyICZjb21tYW5kQnVmZmVyID0g
Z2V0Q29tbWFuZEJ1ZmZlcihoYXNQcm90ZWN0ZWRDb250ZW50KTsKKyAgICBjb25zdCBib29sIGhh
c0FueVBlbmRpbmdDb21tYW5kcyAgICA9IGNvbW1hbmRCdWZmZXIudmFsaWQoKTsKKyAgICBpZiAo
aGFzQW55UGVuZGluZ0NvbW1hbmRzIHx8IHNpZ25hbFNlbWFwaG9yZSAhPSBudWxscHRyIHx8ICF3
YWl0U2VtYXBob3Jlcy5lbXB0eSgpKQorICAgIHsKKyAgICAgICAgaWYgKGNvbW1hbmRCdWZmZXIu
dmFsaWQoKSkKKyAgICAgICAgeworICAgICAgICAgICAgQU5HTEVfVktfVFJZKGNvbnRleHQsIGNv
bW1hbmRCdWZmZXIuZW5kKCkpOworICAgICAgICB9CisKKyAgICAgICAgVmtTdWJtaXRJbmZvIHN1
Ym1pdEluZm8gPSB7fTsKKyAgICAgICAgSW5pdGlhbGl6ZVN1Ym1pdEluZm8oJnN1Ym1pdEluZm8s
IGNvbW1hbmRCdWZmZXIsIHdhaXRTZW1hcGhvcmVzLCB3YWl0U2VtYXBob3JlU3RhZ2VNYXNrcywK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnbmFsU2VtYXBob3JlKTsKKworICAgICAg
ICBWa1Byb3RlY3RlZFN1Ym1pdEluZm8gcHJvdGVjdGVkU3VibWl0SW5mbyA9IHt9OworICAgICAg
ICBpZiAoaGFzUHJvdGVjdGVkQ29udGVudCkKKyAgICAgICAgeworICAgICAgICAgICAgcHJvdGVj
dGVkU3VibWl0SW5mby5zVHlwZSAgICAgICAgICAgPSBWS19TVFJVQ1RVUkVfVFlQRV9QUk9URUNU
RURfU1VCTUlUX0lORk87CisgICAgICAgICAgICBwcm90ZWN0ZWRTdWJtaXRJbmZvLnBOZXh0ICAg
ICAgICAgICA9IG51bGxwdHI7CisgICAgICAgICAgICBwcm90ZWN0ZWRTdWJtaXRJbmZvLnByb3Rl
Y3RlZFN1Ym1pdCA9IHRydWU7CisgICAgICAgICAgICBzdWJtaXRJbmZvLnBOZXh0ICAgICAgICAg
ICAgICAgICAgICA9ICZwcm90ZWN0ZWRTdWJtaXRJbmZvOworICAgICAgICB9CisKKyAgICAgICAg
QU5HTEVfVFJBQ0VfRVZFTlQwKCJncHUuYW5nbGUiLCAiQ29tbWFuZFF1ZXVlOjpzdWJtaXRGcmFt
ZSIpOworCisgICAgICAgIEFOR0xFX1RSWShtRmVuY2VSZWN5Y2xlci5uZXdTaGFyZWRGZW5jZShj
b250ZXh0LCAmYmF0Y2guZmVuY2UpKTsKKyAgICAgICAgQU5HTEVfVFJZKHF1ZXVlU3VibWl0KGNv
bnRleHQsIHByaW9yaXR5LCBzdWJtaXRJbmZvLCAmYmF0Y2guZmVuY2UuZ2V0KCksIGJhdGNoLnNl
cmlhbCkpOworICAgIH0KKyAgICBlbHNlCisgICAgeworICAgICAgICBtTGFzdFN1Ym1pdHRlZFF1
ZXVlU2VyaWFsID0gYmF0Y2guc2VyaWFsOworICAgIH0KIAogICAgIGlmICghY3VycmVudEdhcmJh
Z2UuZW1wdHkoKSkKICAgICB7CkBAIC0xMTM1LDM5ICsxMTg4LDM1IEBAIGFuZ2xlOjpSZXN1bHQg
Q29tbWFuZFF1ZXVlOjp3YWl0Rm9yU2VyaWFsV2l0aFVzZXJUaW1lb3V0KHZrOjpDb250ZXh0ICpj
b250ZXh0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdWludDY0X3QgdGltZW91dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZrUmVzdWx0ICpyZXN1bHQpCiB7Ci0gICAgLy8g
Tm8gaW4tZmxpZ2h0IHdvcmsuIFRoaXMgaW5kaWNhdGVzIHRoZSBzZXJpYWwgaXMgYWxyZWFkeSBj
b21wbGV0ZS4KLSAgICBpZiAobUluRmxpZ2h0Q29tbWFuZHMuZW1wdHkoKSkKLSAgICB7Ci0gICAg
ICAgICpyZXN1bHQgPSBWS19TVUNDRVNTOwotICAgICAgICByZXR1cm4gYW5nbGU6OlJlc3VsdDo6
Q29udGludWU7Ci0gICAgfQorICAgIFNoYXJlZDxGZW5jZT4gKmZlbmNlVG9XYWl0T24gPSBudWxs
cHRyOworICAgIHNpemVfdCBmaW5pc2hDb3VudCA9IEdldEJhdGNoQ291bnRVcFRvU2VyaWFsKG1J
bkZsaWdodENvbW1hbmRzLCBzZXJpYWwsICZmZW5jZVRvV2FpdE9uKTsKIAotICAgIC8vIFNlcmlh
bCBpcyBhbHJlYWR5IGNvbXBsZXRlLgotICAgIGlmIChzZXJpYWwgPCBtSW5GbGlnaHRDb21tYW5k
c1swXS5zZXJpYWwpCisgICAgLy8gVGhlIHNlcmlhbCBpcyBhbHJlYWR5IGNvbXBsZXRlIGlmOgor
ICAgIC8vCisgICAgLy8gLSBUaGVyZSBpcyBubyBpbi1mbGlnaHQgd29yayAoaS5lLiBtSW5GbGln
aHRDb21tYW5kcyBpcyBlbXB0eSksIG9yCisgICAgLy8gLSBUaGUgZ2l2ZW4gc2VyaWFsIGlzIHNt
YWxsZXIgdGhhbiB0aGUgc21hbGxlc3Qgc2VyaWFsLCBvcgorICAgIC8vIC0gRXZlcnkgYmF0Y2gg
dXAgdG8gdGhpcyBzZXJpYWwgaXMgYSBnYXJiYWdlLWNsZWFuLXVwLW9ubHkgYmF0Y2ggKGkuZS4g
ZW1wdHkgc3VibWlzc2lvbgorICAgIC8vICAgdGhhdCdzIG9wdGltaXplZCBvdXQpCisgICAgaWYg
KGZpbmlzaENvdW50ID09IDAgfHwgZmVuY2VUb1dhaXRPbiA9PSBudWxscHRyKQogICAgIHsKICAg
ICAgICAgKnJlc3VsdCA9IFZLX1NVQ0NFU1M7CiAgICAgICAgIHJldHVybiBhbmdsZTo6UmVzdWx0
OjpDb250aW51ZTsKICAgICB9CiAKLSAgICBzaXplX3QgYmF0Y2hJbmRleCA9IDA7Ci0gICAgd2hp
bGUgKGJhdGNoSW5kZXggIT0gbUluRmxpZ2h0Q29tbWFuZHMuc2l6ZSgpICYmIG1JbkZsaWdodENv
bW1hbmRzW2JhdGNoSW5kZXhdLnNlcmlhbCA8IHNlcmlhbCkKLSAgICB7Ci0gICAgICAgIGJhdGNo
SW5kZXgrKzsKLSAgICB9CisgICAgY29uc3QgQ29tbWFuZEJhdGNoICZiYXRjaCA9IG1JbkZsaWdo
dENvbW1hbmRzW2ZpbmlzaENvdW50IC0gMV07CiAKICAgICAvLyBTZXJpYWwgaXMgbm90IHlldCBz
dWJtaXR0ZWQuIFRoaXMgaXMgdW5kZWZpbmVkIGJlaGF2aW91ciwgc28gd2UgY2FuIGRvIGFueXRo
aW5nLgotICAgIGlmIChiYXRjaEluZGV4ID49IG1JbkZsaWdodENvbW1hbmRzLnNpemUoKSkKKyAg
ICBpZiAoc2VyaWFsID4gYmF0Y2guc2VyaWFsKQogICAgIHsKKyAgICAgICAgQVNTRVJUKGZpbmlz
aENvdW50ID09IG1JbkZsaWdodENvbW1hbmRzLnNpemUoKSk7CisKICAgICAgICAgV0FSTigpIDw8
ICJXYWl0aW5nIG9uIGFuIHVuc3VibWl0dGVkIHNlcmlhbC4iOwogICAgICAgICAqcmVzdWx0ID0g
VktfVElNRU9VVDsKICAgICAgICAgcmV0dXJuIGFuZ2xlOjpSZXN1bHQ6OkNvbnRpbnVlOwogICAg
IH0KKyAgICBBU1NFUlQoc2VyaWFsID09IGJhdGNoLnNlcmlhbCk7CiAKLSAgICBBU1NFUlQoc2Vy
aWFsID09IG1JbkZsaWdodENvbW1hbmRzW2JhdGNoSW5kZXhdLnNlcmlhbCk7Ci0KLSAgICB2azo6
RmVuY2UgJmZlbmNlID0gbUluRmxpZ2h0Q29tbWFuZHNbYmF0Y2hJbmRleF0uZmVuY2UuZ2V0KCk7
Ci0gICAgQVNTRVJUKGZlbmNlLnZhbGlkKCkpOwotICAgICpyZXN1bHQgPSBmZW5jZS53YWl0KGNv
bnRleHQtPmdldERldmljZSgpLCB0aW1lb3V0KTsKKyAgICAqcmVzdWx0ID0gZmVuY2VUb1dhaXRP
bi0+Z2V0KCkud2FpdChjb250ZXh0LT5nZXREZXZpY2UoKSwgdGltZW91dCk7CiAKICAgICAvLyBE
b24ndCB0cmlnZ2VyIGFuIGVycm9yIG9uIHRpbWVvdXQuCiAgICAgaWYgKCpyZXN1bHQgIT0gVktf
VElNRU9VVCkKQEAgLTEyNzgsMTAgKzEzMjcsMTkgQEAgYW5nbGU6OlJlc3VsdCBDb21tYW5kUXVl
dWU6OnF1ZXVlU3VibWl0KENvbnRleHQgKmNvbnRleHQsCiAgICAgQU5HTEVfVktfVFJZKGNvbnRl
eHQsIHZrUXVldWVTdWJtaXQocXVldWUsIDEsICZzdWJtaXRJbmZvLCBmZW5jZUhhbmRsZSkpOwog
ICAgIG1MYXN0U3VibWl0dGVkUXVldWVTZXJpYWwgPSBzdWJtaXRRdWV1ZVNlcmlhbDsKIAorICAg
ICsrbVBlcmZDb3VudGVycy52a1F1ZXVlU3VibWl0Q2FsbHNUb3RhbDsKKyAgICArK21QZXJmQ291
bnRlcnMudmtRdWV1ZVN1Ym1pdENhbGxzUGVyRnJhbWU7CisKICAgICAvLyBOb3cgdGhhdCB3ZSd2
ZSBzdWJtaXR0ZWQgd29yaywgY2xlYW4gdXAgUmVuZGVyZXJWayBnYXJiYWdlCiAgICAgcmV0dXJu
IHJlbmRlcmVyLT5jbGVhbnVwR2FyYmFnZShtTGFzdENvbXBsZXRlZFF1ZXVlU2VyaWFsKTsKIH0K
IAordm9pZCBDb21tYW5kUXVldWU6OnJlc2V0UGVyRnJhbWVQZXJmQ291bnRlcnMoKQoreworICAg
IG1QZXJmQ291bnRlcnMuY29tbWFuZFF1ZXVlU3VibWl0Q2FsbHNQZXJGcmFtZSA9IDA7CisgICAg
bVBlcmZDb3VudGVycy52a1F1ZXVlU3VibWl0Q2FsbHNQZXJGcmFtZSAgICAgID0gMDsKK30KKwog
VmtSZXN1bHQgQ29tbWFuZFF1ZXVlOjpxdWV1ZVByZXNlbnQoZWdsOjpDb250ZXh0UHJpb3JpdHkg
Y29udGV4dFByaW9yaXR5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
c3QgVmtQcmVzZW50SW5mb0tIUiAmcHJlc2VudEluZm8pCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvdnVsa2FuL0NvbW1hbmRQcm9j
ZXNzb3IuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci92
dWxrYW4vQ29tbWFuZFByb2Nlc3Nvci5oCmluZGV4IGRjYTU4NmU1MzdjY2I2NmIyMzU3ZjkxMmVh
MWE0ZTY2MjUyMjJiNDkuLmRiODYyYjY3NGNkMzBkOTA1ZDBjYmQwODhhZDE4YTJhNzg3NDc2OTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJl
ci92dWxrYW4vQ29tbWFuZFByb2Nlc3Nvci5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xF
L3NyYy9saWJBTkdMRS9yZW5kZXJlci92dWxrYW4vQ29tbWFuZFByb2Nlc3Nvci5oCkBAIC00MjUs
NiArNDI1LDkgQEAgY2xhc3MgQ29tbWFuZFF1ZXVlIGZpbmFsIDogcHVibGljIENvbW1hbmRRdWV1
ZUludGVyZmFjZQogCiAgICAgVmtRdWV1ZSBnZXRRdWV1ZShlZ2w6OkNvbnRleHRQcmlvcml0eSBw
cmlvcml0eSkgeyByZXR1cm4gbVF1ZXVlTWFwW3ByaW9yaXR5XTsgfQogCisgICAgY29uc3QgYW5n
bGU6OlZ1bGthblBlcmZDb3VudGVycyAmZ2V0UGVyZkNvdW50ZXJzKCkgY29uc3QgeyByZXR1cm4g
bVBlcmZDb3VudGVyczsgfQorICAgIHZvaWQgcmVzZXRQZXJGcmFtZVBlcmZDb3VudGVycygpOwor
CiAgIHByaXZhdGU6CiAgICAgdm9pZCByZWxlYXNlVG9Db21tYW5kQmF0Y2goYm9vbCBoYXNQcm90
ZWN0ZWRDb250ZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFByaW1hcnlDb21t
YW5kQnVmZmVyICYmY29tbWFuZEJ1ZmZlciwKQEAgLTQ3OSw2ICs0ODIsOCBAQCBjbGFzcyBDb21t
YW5kUXVldWUgZmluYWwgOiBwdWJsaWMgQ29tbWFuZFF1ZXVlSW50ZXJmYWNlCiAgICAgRGV2aWNl
UXVldWVNYXAgbVF1ZXVlTWFwOwogCiAgICAgRmVuY2VSZWN5Y2xlciBtRmVuY2VSZWN5Y2xlcjsK
KworICAgIGFuZ2xlOjpWdWxrYW5QZXJmQ291bnRlcnMgbVBlcmZDb3VudGVyczsKIH07CiAKIC8v
IENvbW1hbmRQcm9jZXNzb3IgaXMgdXNlZCB0byBkaXNwYXRjaCB3b3JrIHRvIHRoZSBHUFUgd2hl
biB0aGUgYXN5bmNDb21tYW5kUXVldWUgZmVhdHVyZSBpcwpAQCAtNTY4LDYgKzU3MywxNCBAQCBj
bGFzcyBDb21tYW5kUHJvY2Vzc29yIGZpbmFsIDogcHVibGljIENvbnRleHQsIHB1YmxpYyBDb21t
YW5kUXVldWVJbnRlcmZhY2UKICAgICB1aW50MzJfdCBnZXREZXZpY2VRdWV1ZUluZGV4KCkgY29u
c3QgeyByZXR1cm4gbUNvbW1hbmRRdWV1ZS5nZXREZXZpY2VRdWV1ZUluZGV4KCk7IH0KICAgICBW
a1F1ZXVlIGdldFF1ZXVlKGVnbDo6Q29udGV4dFByaW9yaXR5IHByaW9yaXR5KSB7IHJldHVybiBt
Q29tbWFuZFF1ZXVlLmdldFF1ZXVlKHByaW9yaXR5KTsgfQogCisgICAgLy8gTm90ZSB0aGF0IGR1
ZSB0byBpbmhlcml0YW5jZSBmcm9tIHZrOjpDb250ZXh0LCB0aGlzIGNsYXNzIGhhcyBhIHNldCBv
ZiBwZXJmIGNvdW50ZXJzIGFzIHdlbGwsCisgICAgLy8gYnV0IGN1cnJlbnRseSBvbmx5IHRoZSBj
b3VudGVycyBpbiB0aGUgbWVtYmVyIGNvbW1hbmQgcXVldWUgYXJlIG9mIGludGVyZXN0LgorICAg
IGNvbnN0IGFuZ2xlOjpWdWxrYW5QZXJmQ291bnRlcnMgJmdldFBlcmZDb3VudGVycygpIGNvbnN0
CisgICAgeworICAgICAgICByZXR1cm4gbUNvbW1hbmRRdWV1ZS5nZXRQZXJmQ291bnRlcnMoKTsK
KyAgICB9CisgICAgdm9pZCByZXNldFBlckZyYW1lUGVyZkNvdW50ZXJzKCkgeyBtQ29tbWFuZFF1
ZXVlLnJlc2V0UGVyRnJhbWVQZXJmQ291bnRlcnMoKTsgfQorCiAgIHByaXZhdGU6CiAgICAgYm9v
bCBoYXNQZW5kaW5nRXJyb3IoKSBjb25zdAogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGly
ZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci92dWxrYW4vQ29udGV4dFZrLmNwcCBi
L1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci92dWxrYW4vQ29u
dGV4dFZrLmNwcAppbmRleCBkZmY4ZTg4YTEwZjJhMjAyMDliOTllNTFmMmQ1YWQwNzBjMjkzZjll
Li5hYzQzN2FiMDQ5NjI2Njg0ZTZmNzcxODc1ZmY4M2I1MjI1MmI4YmZmIDEwMDY0NAotLS0gYS9T
b3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvdnVsa2FuL0NvbnRl
eHRWay5jcHAKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRl
cmVyL3Z1bGthbi9Db250ZXh0VmsuY3BwCkBAIC02Myw3ICs2Myw3IEBAIHN0cnVjdCBHcmFwaGlj
c0RyaXZlclVuaWZvcm1zCiAgICAgLy8gMzIgYml0cyBmb3IgMzIgY2xpcCBwbGFuZXMKICAgICB1
aW50MzJfdCBlbmFibGVkQ2xpcFBsYW5lczsKIAotICAgIHVpbnQzMl90IHVudXNlZDsgIC8vIEdh
cCB1c2FibGUgZm9yIGZ1dHVyZQorICAgIHVpbnQzMl90IGFkdmFuY2VkQmxlbmRFcXVhdGlvbjsK
ICAgICBpbnQzMl90IHhmYlZlcnRpY2VzUGVySW5zdGFuY2U7CiAKICAgICAvLyBVc2VkIHRvIHJl
cGxhY2UgZ2xfTnVtU2FtcGxlcy4gQmVjYXVzZSBnbF9OdW1TYW1wbGVzIGNhbm5vdCBiZSByZWNv
Z25pemVkIGluIFNQSVItVi4KQEAgLTMwMSw3ICszMDEsNyBAQCB2azo6UmVzb3VyY2VBY2Nlc3Mg
R2V0Q29sb3JBY2Nlc3MoY29uc3QgZ2w6OlN0YXRlICZzdGF0ZSwKIAogICAgIGNvbnN0IGdsOjpC
bGVuZFN0YXRlRXh0ICZibGVuZFN0YXRlRXh0ID0gc3RhdGUuZ2V0QmxlbmRTdGF0ZUV4dCgpOwog
ICAgIHVpbnQ4X3QgY29sb3JNYXNrICAgICAgICAgICAgICAgICAgICAgID0gZ2w6OkJsZW5kU3Rh
dGVFeHQ6OkNvbG9yTWFza1N0b3JhZ2U6OkdldFZhbHVlSW5kZXhlZCgKLSAgICAgICAgY29sb3JJ
bmRleEdMLCBibGVuZFN0YXRlRXh0Lm1Db2xvck1hc2spOworICAgICAgICBjb2xvckluZGV4R0ws
IGJsZW5kU3RhdGVFeHQuZ2V0Q29sb3JNYXNrQml0cygpKTsKICAgICBpZiAoZW11bGF0ZWRBbHBo
YU1hc2tbY29sb3JJbmRleEdMXSkKICAgICB7CiAgICAgICAgIGNvbG9yTWFzayAmPSB+VktfQ09M
T1JfQ09NUE9ORU5UX0FfQklUOwpAQCAtNzYwLDEyICs3NjAsMTAgQEAgQ29udGV4dFZrOjpDb250
ZXh0VmsoY29uc3QgZ2w6OlN0YXRlICZzdGF0ZSwgZ2w6OkVycm9yU2V0ICplcnJvclNldCwgUmVu
ZGVyZXJWawogICAgICAgbVJlbmRlclBhc3NDb21tYW5kcyhudWxscHRyKSwKICAgICAgIG1RdWVy
eUV2ZW50VHlwZShHcmFwaGljc0V2ZW50Q21kQnVmOjpOb3RJblF1ZXJ5Q21kKSwKICAgICAgIG1H
cHVFdmVudHNFbmFibGVkKGZhbHNlKSwKKyAgICAgIG1QcmltYXJ5QnVmZmVyRXZlbnRDb3VudGVy
KDApLAogICAgICAgbUhhc0RlZmVycmVkRmx1c2goZmFsc2UpLAotICAgICAgbUxhc3RQcm9ncmFt
VXNlc0ZyYW1lYnVmZmVyRmV0Y2goZmFsc2UpLAogICAgICAgbUdwdUNsb2NrU3luY3tzdGQ6Om51
bWVyaWNfbGltaXRzPGRvdWJsZT46Om1heCgpLCBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46
Om1heCgpfSwKICAgICAgIG1HcHVFdmVudFRpbWVzdGFtcE9yaWdpbigwKSwKLSAgICAgIG1Db250
ZXh0UGVyZkNvdW50ZXJze30sCi0gICAgICBtQ3VtdWxhdGl2ZUNvbnRleHRQZXJmQ291bnRlcnN7
fSwKICAgICAgIG1Db250ZXh0UHJpb3JpdHkocmVuZGVyZXItPmdldERyaXZlclByaW9yaXR5KEdl
dENvbnRleHRQcmlvcml0eShzdGF0ZSkpKSwKICAgICAgIG1TaGFyZUdyb3VwVmsodms6OkdldElt
cGwoc3RhdGUuZ2V0U2hhcmVHcm91cCgpKSkKIHsKQEAgLTgwNiw2ICs4MDQsMTAgQEAgQ29udGV4
dFZrOjpDb250ZXh0VmsoY29uc3QgZ2w6OlN0YXRlICZzdGF0ZSwgZ2w6OkVycm9yU2V0ICplcnJv
clNldCwgUmVuZGVyZXJWawogICAgIHsKICAgICAgICAgbU5ld0dyYXBoaWNzQ29tbWFuZEJ1ZmZl
ckRpcnR5Qml0cy5zZXQoRElSVFlfQklUX1RSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJTKTsKICAg
ICB9CisgICAgaWYgKGdldEZlYXR1cmVzKCkuc3VwcG9ydHNGcmFnbWVudFNoYWRpbmdSYXRlLmVu
YWJsZWQpCisgICAgeworICAgICAgICBtTmV3R3JhcGhpY3NDb21tYW5kQnVmZmVyRGlydHlCaXRz
LnNldChESVJUWV9CSVRfU0hBRElOR19SQVRFKTsKKyAgICB9CiAKICAgICBtTmV3Q29tcHV0ZUNv
bW1hbmRCdWZmZXJEaXJ0eUJpdHMgPQogICAgICAgICBEaXJ0eUJpdHN7RElSVFlfQklUX1BJUEVM
SU5FX0JJTkRJTkcsIERJUlRZX0JJVF9URVhUVVJFUywgRElSVFlfQklUX1NIQURFUl9SRVNPVVJD
RVMsCkBAIC04MzAsNiArODMyLDcgQEAgQ29udGV4dFZrOjpDb250ZXh0VmsoY29uc3QgZ2w6OlN0
YXRlICZzdGF0ZSwgZ2w6OkVycm9yU2V0ICplcnJvclNldCwgUmVuZGVyZXJWawogICAgIG1HcmFw
aGljc0RpcnR5Qml0SGFuZGxlcnNbRElSVFlfQklUX1ZFUlRFWF9CVUZGRVJTXSA9CiAgICAgICAg
ICZDb250ZXh0Vms6OmhhbmRsZURpcnR5R3JhcGhpY3NWZXJ0ZXhCdWZmZXJzOwogICAgIG1HcmFw
aGljc0RpcnR5Qml0SGFuZGxlcnNbRElSVFlfQklUX0lOREVYX0JVRkZFUl0gPSAmQ29udGV4dFZr
OjpoYW5kbGVEaXJ0eUdyYXBoaWNzSW5kZXhCdWZmZXI7CisgICAgbUdyYXBoaWNzRGlydHlCaXRI
YW5kbGVyc1tESVJUWV9CSVRfVU5JRk9STVNdICAgICA9ICZDb250ZXh0Vms6OmhhbmRsZURpcnR5
R3JhcGhpY3NVbmlmb3JtczsKICAgICBtR3JhcGhpY3NEaXJ0eUJpdEhhbmRsZXJzW0RJUlRZX0JJ
VF9EUklWRVJfVU5JRk9STVNdID0KICAgICAgICAgJkNvbnRleHRWazo6aGFuZGxlRGlydHlHcmFw
aGljc0RyaXZlclVuaWZvcm1zOwogICAgIG1HcmFwaGljc0RpcnR5Qml0SGFuZGxlcnNbRElSVFlf
QklUX0RSSVZFUl9VTklGT1JNU19CSU5ESU5HXSA9CkBAIC04NTYsOCArODU5LDkgQEAgQ29udGV4
dFZrOjpDb250ZXh0VmsoY29uc3QgZ2w6OlN0YXRlICZzdGF0ZSwgZ2w6OkVycm9yU2V0ICplcnJv
clNldCwgUmVuZGVyZXJWawogICAgIG1HcmFwaGljc0RpcnR5Qml0SGFuZGxlcnNbRElSVFlfQklU
X0RFU0NSSVBUT1JfU0VUU10gPQogICAgICAgICAmQ29udGV4dFZrOjpoYW5kbGVEaXJ0eUdyYXBo
aWNzRGVzY3JpcHRvclNldHM7CiAKLSAgICBtR3JhcGhpY3NEaXJ0eUJpdEhhbmRsZXJzW0RJUlRZ
X0JJVF9WSUVXUE9SVF0gPSAmQ29udGV4dFZrOjpoYW5kbGVEaXJ0eUdyYXBoaWNzVmlld3BvcnQ7
Ci0gICAgbUdyYXBoaWNzRGlydHlCaXRIYW5kbGVyc1tESVJUWV9CSVRfU0NJU1NPUl0gID0gJkNv
bnRleHRWazo6aGFuZGxlRGlydHlHcmFwaGljc1NjaXNzb3I7CisgICAgbUdyYXBoaWNzRGlydHlC
aXRIYW5kbGVyc1tESVJUWV9CSVRfVklFV1BPUlRdICAgICA9ICZDb250ZXh0Vms6OmhhbmRsZURp
cnR5R3JhcGhpY3NWaWV3cG9ydDsKKyAgICBtR3JhcGhpY3NEaXJ0eUJpdEhhbmRsZXJzW0RJUlRZ
X0JJVF9TQ0lTU09SXSAgICAgID0gJkNvbnRleHRWazo6aGFuZGxlRGlydHlHcmFwaGljc1NjaXNz
b3I7CisgICAgbUdyYXBoaWNzRGlydHlCaXRIYW5kbGVyc1tESVJUWV9CSVRfU0hBRElOR19SQVRF
XSA9ICZDb250ZXh0Vms6OmhhbmRsZURpcnR5R3JhcGhpY3NTaGFkaW5nUmF0ZTsKIAogICAgIG1D
b21wdXRlRGlydHlCaXRIYW5kbGVyc1tESVJUWV9CSVRfTUVNT1JZX0JBUlJJRVJdID0KICAgICAg
ICAgJkNvbnRleHRWazo6aGFuZGxlRGlydHlDb21wdXRlTWVtb3J5QmFycmllcjsKQEAgLTg2Niw2
ICs4NzAsNyBAQCBDb250ZXh0Vms6OkNvbnRleHRWayhjb25zdCBnbDo6U3RhdGUgJnN0YXRlLCBn
bDo6RXJyb3JTZXQgKmVycm9yU2V0LCBSZW5kZXJlclZrCiAgICAgbUNvbXB1dGVEaXJ0eUJpdEhh
bmRsZXJzW0RJUlRZX0JJVF9QSVBFTElORV9CSU5ESU5HXSA9CiAgICAgICAgICZDb250ZXh0Vms6
OmhhbmRsZURpcnR5Q29tcHV0ZVBpcGVsaW5lQmluZGluZzsKICAgICBtQ29tcHV0ZURpcnR5Qml0
SGFuZGxlcnNbRElSVFlfQklUX1RFWFRVUkVTXSA9ICZDb250ZXh0Vms6OmhhbmRsZURpcnR5Q29t
cHV0ZVRleHR1cmVzOworICAgIG1Db21wdXRlRGlydHlCaXRIYW5kbGVyc1tESVJUWV9CSVRfVU5J
Rk9STVNdID0gJkNvbnRleHRWazo6aGFuZGxlRGlydHlDb21wdXRlVW5pZm9ybXM7CiAgICAgbUNv
bXB1dGVEaXJ0eUJpdEhhbmRsZXJzW0RJUlRZX0JJVF9EUklWRVJfVU5JRk9STVNdID0KICAgICAg
ICAgJkNvbnRleHRWazo6aGFuZGxlRGlydHlDb21wdXRlRHJpdmVyVW5pZm9ybXM7CiAgICAgbUNv
bXB1dGVEaXJ0eUJpdEhhbmRsZXJzW0RJUlRZX0JJVF9EUklWRVJfVU5JRk9STVNfQklORElOR10g
PQpAQCAtOTMwLDEwICs5MzUsOCBAQCBDb250ZXh0Vms6On5Db250ZXh0VmsoKSA9IGRlZmF1bHQ7
CiAKIHZvaWQgQ29udGV4dFZrOjpvbkRlc3Ryb3koY29uc3QgZ2w6OkNvbnRleHQgKmNvbnRleHQp
CiB7Ci0gICAgb3V0cHV0Q3VtdWxhdGl2ZVBlcmZDb3VudGVycygpOwotCiAgICAgLy8gUmVtb3Zl
IGNvbnRleHQgZnJvbSB0aGUgc2hhcmUgZ3JvdXAKLSAgICBtU2hhcmVHcm91cFZrLT5nZXRDb250
ZXh0cygpLT5lcmFzZSh0aGlzKTsKKyAgICBtU2hhcmVHcm91cFZrLT5yZW1vdmVDb250ZXh0KHRo
aXMpOwogCiAgICAgLy8gVGhpcyB3aWxsIG5vdCBkZXN0cm95IGFueSByZXNvdXJjZXMuIEl0IHdp
bGwgcmVsZWFzZSB0aGVtIHRvIGJlIGNvbGxlY3RlZCBhZnRlciBmaW5pc2guCiAgICAgbUluY29t
cGxldGVUZXh0dXJlcy5vbkRlc3Ryb3koY29udGV4dCk7CkBAIC05NzAsOCArOTczLDYgQEAgdm9p
ZCBDb250ZXh0Vms6Om9uRGVzdHJveShjb25zdCBnbDo6Q29udGV4dCAqY29udGV4dCkKICAgICBt
UmVuZGVyZXItPnJlY3ljbGVPdXRzaWRlUmVuZGVyUGFzc0NvbW1hbmRCdWZmZXJIZWxwZXIoZGV2
aWNlLCAmbU91dHNpZGVSZW5kZXJQYXNzQ29tbWFuZHMpOwogICAgIG1SZW5kZXJlci0+cmVjeWNs
ZVJlbmRlclBhc3NDb21tYW5kQnVmZmVySGVscGVyKGRldmljZSwgJm1SZW5kZXJQYXNzQ29tbWFu
ZHMpOwogCi0gICAgbVJlbmRlcmVyLT5yZWxlYXNlU2hhcmVkUmVzb3VyY2VzKCZtUmVzb3VyY2VV
c2VMaXN0KTsKLQogICAgIG1VdGlscy5kZXN0cm95KG1SZW5kZXJlcik7CiAKICAgICBtUmVuZGVy
UGFzc0NhY2hlLmRlc3Ryb3kobVJlbmRlcmVyKTsKQEAgLTk4MSw3ICs5ODIsNiBAQCB2b2lkIENv
bnRleHRWazo6b25EZXN0cm95KGNvbnN0IGdsOjpDb250ZXh0ICpjb250ZXh0KQogICAgIG1Db21t
YW5kUG9vbHMucmVuZGVyUGFzc1Bvb2wuZGVzdHJveShkZXZpY2UpOwogCiAgICAgQVNTRVJUKG1D
dXJyZW50R2FyYmFnZS5lbXB0eSgpKTsKLSAgICBBU1NFUlQobVJlc291cmNlVXNlTGlzdC5lbXB0
eSgpKTsKIH0KIAogVmVydGV4QXJyYXlWayAqQ29udGV4dFZrOjpnZXRWZXJ0ZXhBcnJheSgpIGNv
bnN0CkBAIC0xMTI1LDkgKzExMjUsNyBAQCBhbmdsZTo6UmVzdWx0IENvbnRleHRWazo6aW5pdGlh
bGl6ZSgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2azo6a0Rl
ZmF1bHRUaW1lc3RhbXBRdWVyeVBvb2xTaXplKSk7CiAgICAgICAgIEFOR0xFX1RSWShzeW5jaHJv
bml6ZUNwdUdwdVRpbWUoKSk7CiAKLSAgICAgICAgbVBlcmZDb3VudGVycy5wcmltYXJ5QnVmZmVy
cysrOwotCi0gICAgICAgIEV2ZW50TmFtZSBldmVudE5hbWUgPSBHZXRUcmFjZUV2ZW50TmFtZSgi
UHJpbWFyeSIsIG1QZXJmQ291bnRlcnMucHJpbWFyeUJ1ZmZlcnMpOworICAgICAgICBFdmVudE5h
bWUgZXZlbnROYW1lID0gR2V0VHJhY2VFdmVudE5hbWUoIlByaW1hcnkiLCBtUHJpbWFyeUJ1ZmZl
ckV2ZW50Q291bnRlcik7CiAgICAgICAgIEFOR0xFX1RSWSh0cmFjZUdwdUV2ZW50KCZtT3V0c2lk
ZVJlbmRlclBhc3NDb21tYW5kcy0+Z2V0Q29tbWFuZEJ1ZmZlcigpLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBUUkFDRV9FVkVOVF9QSEFTRV9CRUdJTiwgZXZlbnROYW1lKSk7CiAg
ICAgfQpAQCAtMTE1NCw3ICsxMTUyLDcgQEAgYW5nbGU6OlJlc3VsdCBDb250ZXh0Vms6OmluaXRp
YWxpemUoKQogICAgIEFOR0xFX1RSWShtRW1wdHlCdWZmZXIuaW5pdCh0aGlzLCBlbXB0eUJ1ZmZl
ckluZm8sIGtNZW1vcnlUeXBlKSk7CiAKICAgICAvLyBBZGQgY29udGV4dCBpbnRvIHRoZSBzaGFy
ZSBncm91cAotICAgIG1TaGFyZUdyb3VwVmstPmdldENvbnRleHRzKCktPmluc2VydCh0aGlzKTsK
KyAgICBtU2hhcmVHcm91cFZrLT5hZGRDb250ZXh0KHRoaXMpOwogCiAgICAgcmV0dXJuIGFuZ2xl
OjpSZXN1bHQ6OkNvbnRpbnVlOwogfQpAQCAtMTE4NywxMCArMTE4NSwxNSBAQCBhbmdsZTo6UmVz
dWx0IENvbnRleHRWazo6ZmluaXNoKGNvbnN0IGdsOjpDb250ZXh0ICpjb250ZXh0KQogICAgIGlm
IChtUmVuZGVyZXItPmdldEZlYXR1cmVzKCkuc3dhcGJ1ZmZlcnNPbkZsdXNoT3JGaW5pc2hXaXRo
U2luZ2xlQnVmZmVyLmVuYWJsZWQgJiYKICAgICAgICAgKG1DdXJyZW50V2luZG93U3VyZmFjZSAh
PSBudWxscHRyKSAmJiBtQ3VycmVudFdpbmRvd1N1cmZhY2UtPmlzU2hhcmVkUHJlc2VudE1vZGUo
KSkKICAgICB7Ci0gICAgICAgIHJldHVybiBtQ3VycmVudFdpbmRvd1N1cmZhY2UtPm9uU2hhcmVk
UHJlc2VudENvbnRleHRGbHVzaChjb250ZXh0KTsKKyAgICAgICAgQU5HTEVfVFJZKG1DdXJyZW50
V2luZG93U3VyZmFjZS0+b25TaGFyZWRQcmVzZW50Q29udGV4dEZsdXNoKGNvbnRleHQpKTsKKyAg
ICB9CisgICAgZWxzZQorICAgIHsKKyAgICAgICAgQU5HTEVfVFJZKGZpbmlzaEltcGwoUmVuZGVy
UGFzc0Nsb3N1cmVSZWFzb246OkdMRmluaXNoKSk7CiAgICAgfQogCi0gICAgcmV0dXJuIGZpbmlz
aEltcGwoUmVuZGVyUGFzc0Nsb3N1cmVSZWFzb246OkdMRmluaXNoKTsKKyAgICBzeW5jT2JqZWN0
UGVyZkNvdW50ZXJzKG1SZW5kZXJlci0+Z2V0Q29tbWFuZFF1ZXVlUGVyZkNvdW50ZXJzKCkpOwor
ICAgIHJldHVybiBhbmdsZTo6UmVzdWx0OjpDb250aW51ZTsKIH0KIAogYW5nbGU6OlJlc3VsdCBD
b250ZXh0Vms6OnNldHVwRHJhdyhjb25zdCBnbDo6Q29udGV4dCAqY29udGV4dCwKQEAgLTEyMjUs
MTMgKzEyMjgsNyBAQCBhbmdsZTo6UmVzdWx0IENvbnRleHRWazo6c2V0dXBEcmF3KGNvbnN0IGds
OjpDb250ZXh0ICpjb250ZXh0LAogICAgIFByb2dyYW1FeGVjdXRhYmxlVmsgKnByb2dyYW1FeGVj
dXRhYmxlVmsgPSBnZXRFeGVjdXRhYmxlKCk7CiAgICAgaWYgKHByb2dyYW1FeGVjdXRhYmxlVmst
Pmhhc0RpcnR5VW5pZm9ybXMoKSkKICAgICB7Ci0gICAgICAgIFRyYW5zZm9ybUZlZWRiYWNrVmsg
KnRyYW5zZm9ybUZlZWRiYWNrVmsgPQotICAgICAgICAgICAgdms6OlNhZmVHZXRJbXBsKG1TdGF0
ZS5nZXRDdXJyZW50VHJhbnNmb3JtRmVlZGJhY2soKSk7Ci0gICAgICAgIEFOR0xFX1RSWShwcm9n
cmFtRXhlY3V0YWJsZVZrLT51cGRhdGVVbmlmb3JtcygKLSAgICAgICAgICAgIHRoaXMsICZtVXBk
YXRlRGVzY3JpcHRvclNldHNCdWlsZGVyLCAmbVJlc291cmNlVXNlTGlzdCwgJm1FbXB0eUJ1ZmZl
ciwKLSAgICAgICAgICAgICptU3RhdGUuZ2V0UHJvZ3JhbUV4ZWN1dGFibGUoKSwgJm1EZWZhdWx0
VW5pZm9ybVN0b3JhZ2UsCi0gICAgICAgICAgICBtU3RhdGUuaXNUcmFuc2Zvcm1GZWVkYmFja0Fj
dGl2ZVVucGF1c2VkKCksIHRyYW5zZm9ybUZlZWRiYWNrVmspKTsKLSAgICAgICAgbUdyYXBoaWNz
RGlydHlCaXRzLnNldChESVJUWV9CSVRfREVTQ1JJUFRPUl9TRVRTKTsKKyAgICAgICAgbUdyYXBo
aWNzRGlydHlCaXRzLnNldChESVJUWV9CSVRfVU5JRk9STVMpOwogICAgIH0KIAogICAgIC8vIFVw
ZGF0ZSB0cmFuc2Zvcm0gZmVlZGJhY2sgb2Zmc2V0cyBvbiBldmVyeSBkcmF3IGNhbGwgd2hlbiBl
bXVsYXRpbmcgdHJhbnNmb3JtIGZlZWRiYWNrLiAgVGhpcwpAQCAtMTQ4MSwxMiArMTQ3OCw3IEBA
IGFuZ2xlOjpSZXN1bHQgQ29udGV4dFZrOjpzZXR1cERpc3BhdGNoKGNvbnN0IGdsOjpDb250ZXh0
ICpjb250ZXh0KQogICAgIFByb2dyYW1FeGVjdXRhYmxlVmsgKnByb2dyYW1FeGVjdXRhYmxlVmsg
PSBnZXRFeGVjdXRhYmxlKCk7CiAgICAgaWYgKHByb2dyYW1FeGVjdXRhYmxlVmstPmhhc0RpcnR5
VW5pZm9ybXMoKSkKICAgICB7Ci0gICAgICAgIFRyYW5zZm9ybUZlZWRiYWNrVmsgKnRyYW5zZm9y
bUZlZWRiYWNrVmsgPQotICAgICAgICAgICAgdms6OlNhZmVHZXRJbXBsKG1TdGF0ZS5nZXRDdXJy
ZW50VHJhbnNmb3JtRmVlZGJhY2soKSk7Ci0gICAgICAgIEFOR0xFX1RSWShwcm9ncmFtRXhlY3V0
YWJsZVZrLT51cGRhdGVVbmlmb3JtcygKLSAgICAgICAgICAgIHRoaXMsICZtVXBkYXRlRGVzY3Jp
cHRvclNldHNCdWlsZGVyLCAmbVJlc291cmNlVXNlTGlzdCwgJm1FbXB0eUJ1ZmZlciwKLSAgICAg
ICAgICAgICptU3RhdGUuZ2V0UHJvZ3JhbUV4ZWN1dGFibGUoKSwgJm1EZWZhdWx0VW5pZm9ybVN0
b3JhZ2UsCi0gICAgICAgICAgICBtU3RhdGUuaXNUcmFuc2Zvcm1GZWVkYmFja0FjdGl2ZVVucGF1
c2VkKCksIHRyYW5zZm9ybUZlZWRiYWNrVmspKTsKKyAgICAgICAgbUNvbXB1dGVEaXJ0eUJpdHMu
c2V0KERJUlRZX0JJVF9VTklGT1JNUyk7CiAgICAgICAgIG1Db21wdXRlRGlydHlCaXRzLnNldChE
SVJUWV9CSVRfREVTQ1JJUFRPUl9TRVRTKTsKICAgICB9CiAKQEAgLTE3ODAsNyArMTc3Miw3IEBA
IGFuZ2xlOjpSZXN1bHQgQ29udGV4dFZrOjpoYW5kbGVEaXJ0eUdyYXBoaWNzUGlwZWxpbmVEZXNj
KERpcnR5Qml0czo6SXRlcmF0b3IgKmRpCiAgICAgLy8gVXBkYXRlIHRoZSBxdWV1ZSBzZXJpYWwg
Zm9yIHRoZSBwaXBlbGluZSBvYmplY3QuCiAgICAgQVNTRVJUKG1DdXJyZW50R3JhcGhpY3NQaXBl
bGluZSAmJiBtQ3VycmVudEdyYXBoaWNzUGlwZWxpbmUtPnZhbGlkKCkpOwogCi0gICAgbUN1cnJl
bnRHcmFwaGljc1BpcGVsaW5lLT5yZXRhaW4oJm1SZXNvdXJjZVVzZUxpc3QpOworICAgIG1DdXJy
ZW50R3JhcGhpY3NQaXBlbGluZS0+cmV0YWluKCZtUmVuZGVyUGFzc0NvbW1hbmRzLT5nZXRSZXNv
dXJjZVVzZUxpc3QoKSk7CiAKICAgICBjb25zdCBWa1BpcGVsaW5lIG5ld1BpcGVsaW5lID0gbUN1
cnJlbnRHcmFwaGljc1BpcGVsaW5lLT5nZXRQaXBlbGluZSgpLmdldEhhbmRsZSgpOwogCkBAIC0x
OTcxLDcgKzE5NjMsNyBAQCBhbmdsZTo6UmVzdWx0IENvbnRleHRWazo6aGFuZGxlRGlydHlDb21w
dXRlUGlwZWxpbmVCaW5kaW5nKCkKIAogICAgIG1PdXRzaWRlUmVuZGVyUGFzc0NvbW1hbmRzLT5n
ZXRDb21tYW5kQnVmZmVyKCkuYmluZENvbXB1dGVQaXBlbGluZSgKICAgICAgICAgbUN1cnJlbnRD
b21wdXRlUGlwZWxpbmUtPmdldFBpcGVsaW5lKCkpOwotICAgIG1DdXJyZW50Q29tcHV0ZVBpcGVs
aW5lLT5yZXRhaW4oJm1SZXNvdXJjZVVzZUxpc3QpOworICAgIG1DdXJyZW50Q29tcHV0ZVBpcGVs
aW5lLT5yZXRhaW4oJm1PdXRzaWRlUmVuZGVyUGFzc0NvbW1hbmRzLT5nZXRSZXNvdXJjZVVzZUxp
c3QoKSk7CiAKICAgICByZXR1cm4gYW5nbGU6OlJlc3VsdDo6Q29udGludWU7CiB9CkBAIC0xOTk5
LDcgKzE5OTEsNyBAQCBBTkdMRV9JTkxJTkUgYW5nbGU6OlJlc3VsdCBDb250ZXh0Vms6OmhhbmRs
ZURpcnR5VGV4dHVyZXNJbXBsKAogCiAgICAgICAgICAgICBPblRleHR1cmVCdWZmZXJSZWFkKHRo
aXMsIGJ1ZmZlclZrLCBzdGFnZXMsIGNvbW1hbmRCdWZmZXJIZWxwZXIpOwogCi0gICAgICAgICAg
ICB0ZXh0dXJlVmstPnJldGFpbkJ1ZmZlclZpZXdzKCZtUmVzb3VyY2VVc2VMaXN0KTsKKyAgICAg
ICAgICAgIHRleHR1cmVWay0+cmV0YWluQnVmZmVyVmlld3MoJmNvbW1hbmRCdWZmZXJIZWxwZXIt
PmdldFJlc291cmNlVXNlTGlzdCgpKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9
CiAKQEAgLTIwMTksOSArMjAxMSwxMCBAQCBBTkdMRV9JTkxJTkUgYW5nbGU6OlJlc3VsdCBDb250
ZXh0Vms6OmhhbmRsZURpcnR5VGV4dHVyZXNJbXBsKAogCiAgICAgaWYgKGV4ZWN1dGFibGUtPmhh
c1RleHR1cmVzKCkpCiAgICAgewotICAgICAgICBQcm9ncmFtRXhlY3V0YWJsZVZrICpleGVjdXRh
YmxlVmsgPSBnZXRFeGVjdXRhYmxlKCk7CisgICAgICAgIFByb2dyYW1FeGVjdXRhYmxlVmsgKmV4
ZWN1dGFibGVWayAgICA9IGdldEV4ZWN1dGFibGUoKTsKKyAgICAgICAgdms6OlJlc291cmNlVXNl
TGlzdCAmcmVzb3VyY2VVc2VMaXN0ID0gY29tbWFuZEJ1ZmZlckhlbHBlci0+Z2V0UmVzb3VyY2VV
c2VMaXN0KCk7CiAgICAgICAgIEFOR0xFX1RSWShleGVjdXRhYmxlVmstPnVwZGF0ZVRleHR1cmVz
RGVzY3JpcHRvclNldCgKLSAgICAgICAgICAgIHRoaXMsICZtVXBkYXRlRGVzY3JpcHRvclNldHNC
dWlsZGVyLCAmbVJlc291cmNlVXNlTGlzdCwgKmV4ZWN1dGFibGUsIG1BY3RpdmVUZXh0dXJlcywK
KyAgICAgICAgICAgIHRoaXMsICZtVXBkYXRlRGVzY3JpcHRvclNldHNCdWlsZGVyLCAmcmVzb3Vy
Y2VVc2VMaXN0LCAqZXhlY3V0YWJsZSwgbUFjdGl2ZVRleHR1cmVzLAogICAgICAgICAgICAgbUFj
dGl2ZVRleHR1cmVzRGVzYywgbUVtdWxhdGVTZWFtZnVsQ3ViZU1hcFNhbXBsaW5nKSk7CiAgICAg
fQogCkBAIC0yMTQ5LDEwICsyMTQyLDExIEBAIGFuZ2xlOjpSZXN1bHQgQ29udGV4dFZrOjpoYW5k
bGVEaXJ0eVNoYWRlclJlc291cmNlc0ltcGwoQ29tbWFuZEJ1ZmZlckhlbHBlclQgKmNvCiAKICAg
ICB1cGRhdGVTaGFkZXJSZXNvdXJjZXNEZXNjcmlwdG9yRGVzYyhwaXBlbGluZVR5cGUpOwogCi0g
ICAgUHJvZ3JhbUV4ZWN1dGFibGVWayAqZXhlY3V0YWJsZVZrID0gZ2V0RXhlY3V0YWJsZSgpOwot
ICAgIEZyYW1lYnVmZmVyVmsgKmRyYXdGcmFtZWJ1ZmZlclZrICA9IGdldERyYXdGcmFtZWJ1ZmZl
cigpOworICAgIFByb2dyYW1FeGVjdXRhYmxlVmsgKmV4ZWN1dGFibGVWayAgICA9IGdldEV4ZWN1
dGFibGUoKTsKKyAgICBGcmFtZWJ1ZmZlclZrICpkcmF3RnJhbWVidWZmZXJWayAgICAgPSBnZXRE
cmF3RnJhbWVidWZmZXIoKTsKKyAgICB2azo6UmVzb3VyY2VVc2VMaXN0ICZyZXNvdXJjZVVzZUxp
c3QgPSBjb21tYW5kQnVmZmVySGVscGVyLT5nZXRSZXNvdXJjZVVzZUxpc3QoKTsKICAgICBBTkdM
RV9UUlkoZXhlY3V0YWJsZVZrLT51cGRhdGVTaGFkZXJSZXNvdXJjZXNEZXNjcmlwdG9yU2V0KAot
ICAgICAgICB0aGlzLCBleGVjdXRhYmxlLCAmbVVwZGF0ZURlc2NyaXB0b3JTZXRzQnVpbGRlciwg
Jm1FbXB0eUJ1ZmZlciwgJm1SZXNvdXJjZVVzZUxpc3QsCisgICAgICAgIHRoaXMsIGV4ZWN1dGFi
bGUsICZtVXBkYXRlRGVzY3JpcHRvclNldHNCdWlsZGVyLCAmbUVtcHR5QnVmZmVyLCAmcmVzb3Vy
Y2VVc2VMaXN0LAogICAgICAgICBkcmF3RnJhbWVidWZmZXJWaywgbVNoYWRlckJ1ZmZlcnNEZXNj
cmlwdG9yRGVzYykpOwogCiAgICAgLy8gUmVjb3JkIHVzYWdlIG9mIHN0b3JhZ2UgYnVmZmVycyBh
bmQgaW1hZ2VzIGluIHRoZSBjb21tYW5kIGJ1ZmZlciB0byBhaWQgaGFuZGxpbmcgb2YKQEAgLTIy
ODcsMTUgKzIyODEsMTYgQEAgYW5nbGU6OlJlc3VsdCBDb250ZXh0Vms6OmhhbmRsZURpcnR5R3Jh
cGhpY3NUcmFuc2Zvcm1GZWVkYmFja0J1ZmZlcnNFbXVsYXRpb24oCiAgICAgICAgIH0KICAgICB9
CiAKLSAgICAvLyBUT0RPKGh0dHA6Ly9hbmdsZWJ1Zy5jb20vMzU3MCk6IE5lZWQgdG8gdXBkYXRl
IHRvIGhhbmRsZSBQcm9ncmFtIFBpcGVsaW5lcwotICAgIHZrOjpCdWZmZXJIZWxwZXIgKnVuaWZv
cm1CdWZmZXIgICAgID0gbURlZmF1bHRVbmlmb3JtU3RvcmFnZS5nZXRDdXJyZW50QnVmZmVyKCk7
Ci0gICAgdms6OkRlc2NyaXB0b3JTZXREZXNjIHhmYkJ1ZmZlckRlc2MgPSB0cmFuc2Zvcm1GZWVk
YmFja1ZrLT5nZXRUcmFuc2Zvcm1GZWVkYmFja0Rlc2MoKTsKKyAgICAvLyBUT0RPKGh0dHA6Ly9h
bmdsZWJ1Zy5jb20vNzIzMik6IE5lZWQgdG8gdXBkYXRlIHRvIGhhbmRsZSBQcm9ncmFtIFBpcGVs
aW5lcworICAgIHZrOjpCdWZmZXJIZWxwZXIgKnVuaWZvcm1CdWZmZXIgICAgICA9IG1EZWZhdWx0
VW5pZm9ybVN0b3JhZ2UuZ2V0Q3VycmVudEJ1ZmZlcigpOworICAgIHZrOjpEZXNjcmlwdG9yU2V0
RGVzYyB4ZmJCdWZmZXJEZXNjICA9IHRyYW5zZm9ybUZlZWRiYWNrVmstPmdldFRyYW5zZm9ybUZl
ZWRiYWNrRGVzYygpOworICAgIHZrOjpSZXNvdXJjZVVzZUxpc3QgJnJlc291cmNlVXNlTGlzdCA9
IG1SZW5kZXJQYXNzQ29tbWFuZHMtPmdldFJlc291cmNlVXNlTGlzdCgpOwogICAgIHhmYkJ1ZmZl
ckRlc2MudXBkYXRlRGVmYXVsdFVuaWZvcm1CdWZmZXIodW5pZm9ybUJ1ZmZlciA/IHVuaWZvcm1C
dWZmZXItPmdldEJ1ZmZlclNlcmlhbCgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdms6OmtJbnZhbGlkQnVmZmVyU2VyaWFsKTsK
IAogICAgIFByb2dyYW1WayAqcHJvZ3JhbVZrID0gZ2V0UHJvZ3JhbSgpOwogICAgIHJldHVybiBw
cm9ncmFtVmstPmdldEV4ZWN1dGFibGUoKS51cGRhdGVVbmlmb3Jtc0FuZFhmYkRlc2NyaXB0b3JT
ZXQoCi0gICAgICAgIHRoaXMsICZtVXBkYXRlRGVzY3JpcHRvclNldHNCdWlsZGVyLCAmbVJlc291
cmNlVXNlTGlzdCwgJm1FbXB0eUJ1ZmZlciwgKmV4ZWN1dGFibGUsCisgICAgICAgIHRoaXMsICZt
VXBkYXRlRGVzY3JpcHRvclNldHNCdWlsZGVyLCAmcmVzb3VyY2VVc2VMaXN0LCAmbUVtcHR5QnVm
ZmVyLCAqZXhlY3V0YWJsZSwKICAgICAgICAgdW5pZm9ybUJ1ZmZlciwgeGZiQnVmZmVyRGVzYywg
bVN0YXRlLmlzVHJhbnNmb3JtRmVlZGJhY2tBY3RpdmVVbnBhdXNlZCgpLAogICAgICAgICB0cmFu
c2Zvcm1GZWVkYmFja1ZrKTsKIH0KQEAgLTIzNDIsNyArMjMzNyw3IEBAIGFuZ2xlOjpSZXN1bHQg
Q29udGV4dFZrOjpoYW5kbGVEaXJ0eUdyYXBoaWNzVHJhbnNmb3JtRmVlZGJhY2tCdWZmZXJzRXh0
ZW5zaW9uKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZrOjpBbGlhc2lu
Z01vZGU6OkRpc2FsbG93ZWQsICZjb3VudGVyQnVmZmVyc1swXSk7CiAgICAgZm9yIChzaXplX3Qg
YnVmZmVySW5kZXggPSAxOyBidWZmZXJJbmRleCA8IGJ1ZmZlckNvdW50OyArK2J1ZmZlckluZGV4
KQogICAgIHsKLSAgICAgICAgY291bnRlckJ1ZmZlcnNbYnVmZmVySW5kZXhdLnJldGFpblJlYWRX
cml0ZSgmZ2V0UmVzb3VyY2VVc2VMaXN0KCkpOworICAgICAgICBjb3VudGVyQnVmZmVyc1tidWZm
ZXJJbmRleF0ucmV0YWluUmVhZFdyaXRlKCZtUmVuZGVyUGFzc0NvbW1hbmRzLT5nZXRSZXNvdXJj
ZVVzZUxpc3QoKSk7CiAgICAgfQogCiAgICAgY29uc3QgZ2w6OlRyYW5zZm9ybUZlZWRiYWNrQnVm
ZmVyc0FycmF5PFZrQnVmZmVyPiAmYnVmZmVySGFuZGxlcyA9CkBAIC0yMzkyLDcgKzIzODcsMzIg
QEAgYW5nbGU6OlJlc3VsdCBDb250ZXh0Vms6OmhhbmRsZURpcnR5R3JhcGhpY3NUcmFuc2Zvcm1G
ZWVkYmFja1Jlc3VtZSgKIGFuZ2xlOjpSZXN1bHQgQ29udGV4dFZrOjpoYW5kbGVEaXJ0eUdyYXBo
aWNzRGVzY3JpcHRvclNldHMoRGlydHlCaXRzOjpJdGVyYXRvciAqZGlydHlCaXRzSXRlcmF0b3Is
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIERpcnR5Qml0cyBkaXJ0eUJpdE1hc2spCiB7Ci0gICAgcmV0dXJuIGhhbmRsZURpcnR5RGVz
Y3JpcHRvclNldHNJbXBsKG1SZW5kZXJQYXNzQ29tbWFuZEJ1ZmZlciwgUGlwZWxpbmVUeXBlOjpH
cmFwaGljcyk7CisgICAgcmV0dXJuIGhhbmRsZURpcnR5RGVzY3JpcHRvclNldHNJbXBsKG1SZW5k
ZXJQYXNzQ29tbWFuZHMsIFBpcGVsaW5lVHlwZTo6R3JhcGhpY3MpOworfQorCithbmdsZTo6UmVz
dWx0IENvbnRleHRWazo6aGFuZGxlRGlydHlHcmFwaGljc1VuaWZvcm1zKERpcnR5Qml0czo6SXRl
cmF0b3IgKmRpcnR5Qml0c0l0ZXJhdG9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBEaXJ0eUJpdHMgZGlydHlCaXRNYXNrKQoreworICAgIGRp
cnR5Qml0c0l0ZXJhdG9yLT5zZXRMYXRlckJpdChESVJUWV9CSVRfREVTQ1JJUFRPUl9TRVRTKTsK
KyAgICByZXR1cm4gaGFuZGxlRGlydHlVbmlmb3Jtc0ltcGwoJm1SZW5kZXJQYXNzQ29tbWFuZHMt
PmdldFJlc291cmNlVXNlTGlzdCgpKTsKK30KKworYW5nbGU6OlJlc3VsdCBDb250ZXh0Vms6Omhh
bmRsZURpcnR5Q29tcHV0ZVVuaWZvcm1zKCkKK3sKKyAgICByZXR1cm4gaGFuZGxlRGlydHlVbmlm
b3Jtc0ltcGwoJm1PdXRzaWRlUmVuZGVyUGFzc0NvbW1hbmRzLT5nZXRSZXNvdXJjZVVzZUxpc3Qo
KSk7Cit9CisKK2FuZ2xlOjpSZXN1bHQgQ29udGV4dFZrOjpoYW5kbGVEaXJ0eVVuaWZvcm1zSW1w
bCh2azo6UmVzb3VyY2VVc2VMaXN0ICpyZXNvdXJjZVVzZUxpc3QpCit7CisgICAgUHJvZ3JhbUV4
ZWN1dGFibGVWayAqcHJvZ3JhbUV4ZWN1dGFibGVWayA9IGdldEV4ZWN1dGFibGUoKTsKKyAgICBU
cmFuc2Zvcm1GZWVkYmFja1ZrICp0cmFuc2Zvcm1GZWVkYmFja1ZrID0KKyAgICAgICAgdms6OlNh
ZmVHZXRJbXBsKG1TdGF0ZS5nZXRDdXJyZW50VHJhbnNmb3JtRmVlZGJhY2soKSk7CisgICAgQU5H
TEVfVFJZKHByb2dyYW1FeGVjdXRhYmxlVmstPnVwZGF0ZVVuaWZvcm1zKAorICAgICAgICB0aGlz
LCAmbVVwZGF0ZURlc2NyaXB0b3JTZXRzQnVpbGRlciwgcmVzb3VyY2VVc2VMaXN0LCAmbUVtcHR5
QnVmZmVyLAorICAgICAgICAqbVN0YXRlLmdldFByb2dyYW1FeGVjdXRhYmxlKCksICZtRGVmYXVs
dFVuaWZvcm1TdG9yYWdlLAorICAgICAgICBtU3RhdGUuaXNUcmFuc2Zvcm1GZWVkYmFja0FjdGl2
ZVVucGF1c2VkKCksIHRyYW5zZm9ybUZlZWRiYWNrVmspKTsKKworICAgIHJldHVybiBhbmdsZTo6
UmVzdWx0OjpDb250aW51ZTsKIH0KIAogYW5nbGU6OlJlc3VsdCBDb250ZXh0Vms6OmhhbmRsZURp
cnR5R3JhcGhpY3NWaWV3cG9ydChEaXJ0eUJpdHM6Okl0ZXJhdG9yICpkaXJ0eUJpdHNJdGVyYXRv
ciwKQEAgLTI0MDksNiArMjQyOSw3NSBAQCBhbmdsZTo6UmVzdWx0IENvbnRleHRWazo6aGFuZGxl
RGlydHlHcmFwaGljc1NjaXNzb3IoRGlydHlCaXRzOjpJdGVyYXRvciAqZGlydHlCaQogICAgIHJl
dHVybiBhbmdsZTo6UmVzdWx0OjpDb250aW51ZTsKIH0KIAorYW5nbGU6OlJlc3VsdCBDb250ZXh0
Vms6OmhhbmRsZURpcnR5R3JhcGhpY3NTaGFkaW5nUmF0ZShEaXJ0eUJpdHM6Okl0ZXJhdG9yICpk
aXJ0eUJpdHNJdGVyYXRvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgRGlydHlCaXRzIGRpcnR5Qml0TWFzaykKK3sKKyAgICBnbDo6U2hh
ZGluZ1JhdGUgc2hhZGluZ1JhdGUgICAgID0gZ2V0U3RhdGUoKS5nZXRTaGFkaW5nUmF0ZSgpOwor
ICAgIGNvbnN0IGJvb2wgc2hhZGluZ1JhdGVTdXBwb3J0ZWQgPSBtUmVuZGVyZXItPmlzU2hhZGlu
Z1JhdGVTdXBwb3J0ZWQoc2hhZGluZ1JhdGUpOworICAgIFZrRXh0ZW50MkQgZnJhZ21lbnRTaXpl
ICAgICAgICAgPSB7fTsKKyAgICBWa0ZyYWdtZW50U2hhZGluZ1JhdGVDb21iaW5lck9wS0hSIHNo
YWRpbmdSYXRlQ29tYmluZXJPcFsyXSA9IHsKKyAgICAgICAgVktfRlJBR01FTlRfU0hBRElOR19S
QVRFX0NPTUJJTkVSX09QX0tFRVBfS0hSLAorICAgICAgICBWS19GUkFHTUVOVF9TSEFESU5HX1JB
VEVfQ09NQklORVJfT1BfS0VFUF9LSFJ9OworCisgICAgc3dpdGNoIChzaGFkaW5nUmF0ZSkKKyAg
ICB7CisgICAgICAgIGNhc2UgZ2w6OlNoYWRpbmdSYXRlOjpfMXgxOgorICAgICAgICAgICAgQVNT
RVJUKHNoYWRpbmdSYXRlU3VwcG9ydGVkKTsKKyAgICAgICAgICAgIGZyYWdtZW50U2l6ZS53aWR0
aCAgPSAxOworICAgICAgICAgICAgZnJhZ21lbnRTaXplLmhlaWdodCA9IDE7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSBnbDo6U2hhZGluZ1JhdGU6Ol8xeDI6CisgICAgICAgICAg
ICBBU1NFUlQoc2hhZGluZ1JhdGVTdXBwb3J0ZWQpOworICAgICAgICAgICAgZnJhZ21lbnRTaXpl
LndpZHRoICA9IDE7CisgICAgICAgICAgICBmcmFnbWVudFNpemUuaGVpZ2h0ID0gMjsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIGdsOjpTaGFkaW5nUmF0ZTo6XzJ4MToKKyAgICAg
ICAgICAgIEFTU0VSVChzaGFkaW5nUmF0ZVN1cHBvcnRlZCk7CisgICAgICAgICAgICBmcmFnbWVu
dFNpemUud2lkdGggID0gMjsKKyAgICAgICAgICAgIGZyYWdtZW50U2l6ZS5oZWlnaHQgPSAxOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgZ2w6OlNoYWRpbmdSYXRlOjpfMngyOgor
ICAgICAgICAgICAgQVNTRVJUKHNoYWRpbmdSYXRlU3VwcG9ydGVkKTsKKyAgICAgICAgICAgIGZy
YWdtZW50U2l6ZS53aWR0aCAgPSAyOworICAgICAgICAgICAgZnJhZ21lbnRTaXplLmhlaWdodCA9
IDI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBnbDo6U2hhZGluZ1JhdGU6Ol80
eDI6CisgICAgICAgICAgICBpZiAoc2hhZGluZ1JhdGVTdXBwb3J0ZWQpCisgICAgICAgICAgICB7
CisgICAgICAgICAgICAgICAgZnJhZ21lbnRTaXplLndpZHRoICA9IDQ7CisgICAgICAgICAgICAg
ICAgZnJhZ21lbnRTaXplLmhlaWdodCA9IDI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBl
bHNlCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgLy8gRmFsbGJhY2sgdG8gc2hhZGlu
ZyByYXRlIHRoYXQgcHJlc2VydmVzIGFzcGVjdCByYXRpbworICAgICAgICAgICAgICAgIGZyYWdt
ZW50U2l6ZS53aWR0aCAgPSAyOworICAgICAgICAgICAgICAgIGZyYWdtZW50U2l6ZS5oZWlnaHQg
PSAxOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgZ2w6
OlNoYWRpbmdSYXRlOjpfNHg0OgorICAgICAgICAgICAgaWYgKHNoYWRpbmdSYXRlU3VwcG9ydGVk
KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGZyYWdtZW50U2l6ZS53aWR0aCAgPSA0
OworICAgICAgICAgICAgICAgIGZyYWdtZW50U2l6ZS5oZWlnaHQgPSA0OworICAgICAgICAgICAg
fQorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIC8vIEZh
bGxiYWNrIHRvIHNoYWRpbmcgcmF0ZSB0aGF0IHByZXNlcnZlcyBhc3BlY3QgcmF0aW8KKyAgICAg
ICAgICAgICAgICBmcmFnbWVudFNpemUud2lkdGggID0gMjsKKyAgICAgICAgICAgICAgICBmcmFn
bWVudFNpemUuaGVpZ2h0ID0gMjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgVU5SRUFDSEFCTEUoKTsKKyAgICAgICAgICAg
IHJldHVybiBhbmdsZTo6UmVzdWx0OjpTdG9wOworICAgIH0KKworICAgIEFTU0VSVChoYXNTdGFy
dGVkUmVuZGVyUGFzcygpKTsKKyAgICBtUmVuZGVyUGFzc0NvbW1hbmRCdWZmZXItPnNldFNoYWRp
bmdSYXRlKCZmcmFnbWVudFNpemUsIHNoYWRpbmdSYXRlQ29tYmluZXJPcCk7CisKKyAgICByZXR1
cm4gYW5nbGU6OlJlc3VsdDo6Q29udGludWU7Cit9CisKIHZvaWQgQ29udGV4dFZrOjpoYW5kbGVE
aXJ0eUdyYXBoaWNzU2Npc3NvckltcGwoYm9vbCBpc1ByaW1pdGl2ZXNHZW5lcmF0ZWRRdWVyeUFj
dGl2ZSkKIHsKICAgICAvLyBJZiBwcmltaXRpdmVzIGdlbmVyYXRlZCBxdWVyeSBhbmQgcmFzdGVy
aXplciBkaXNjYXJkIGFyZSBib3RoIGFjdGl2ZSwgYnV0IHRoZSBWdWxrYW4KQEAgLTI0MjgsNTMg
KzI1MTcsNDMgQEAgdm9pZCBDb250ZXh0Vms6OmhhbmRsZURpcnR5R3JhcGhpY3NTY2lzc29ySW1w
bChib29sIGlzUHJpbWl0aXZlc0dlbmVyYXRlZFF1ZXJ5QWMKIAogYW5nbGU6OlJlc3VsdCBDb250
ZXh0Vms6OmhhbmRsZURpcnR5Q29tcHV0ZURlc2NyaXB0b3JTZXRzKCkKIHsKLSAgICByZXR1cm4g
aGFuZGxlRGlydHlEZXNjcmlwdG9yU2V0c0ltcGwoJm1PdXRzaWRlUmVuZGVyUGFzc0NvbW1hbmRz
LT5nZXRDb21tYW5kQnVmZmVyKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFBpcGVsaW5lVHlwZTo6Q29tcHV0ZSk7CisgICAgcmV0dXJuIGhhbmRsZURpcnR5RGVz
Y3JpcHRvclNldHNJbXBsKG1PdXRzaWRlUmVuZGVyUGFzc0NvbW1hbmRzLCBQaXBlbGluZVR5cGU6
OkNvbXB1dGUpOwogfQogCi10ZW1wbGF0ZSA8dHlwZW5hbWUgQ29tbWFuZEJ1ZmZlclQ+Ci1hbmds
ZTo6UmVzdWx0IENvbnRleHRWazo6aGFuZGxlRGlydHlEZXNjcmlwdG9yU2V0c0ltcGwoQ29tbWFu
ZEJ1ZmZlclQgKmNvbW1hbmRCdWZmZXIsCit0ZW1wbGF0ZSA8dHlwZW5hbWUgQ29tbWFuZEJ1ZmZl
ckhlbHBlclQ+CithbmdsZTo6UmVzdWx0IENvbnRleHRWazo6aGFuZGxlRGlydHlEZXNjcmlwdG9y
U2V0c0ltcGwoQ29tbWFuZEJ1ZmZlckhlbHBlclQgKmNvbW1hbmRCdWZmZXJIZWxwZXIsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGlwZWxp
bmVUeXBlIHBpcGVsaW5lVHlwZSkKIHsKICAgICAvLyBXaGVuIHVzaW5nIFZ1bGthbiBzZWNvbmRh
cnkgY29tbWFuZCBidWZmZXJzLCB0aGUgZGVzY3JpcHRvciBzZXRzIG5lZWQgdG8gYmUgdXBkYXRl
ZCBiZWZvcmUKICAgICAvLyB0aGV5IGFyZSBib3VuZC4KLSAgICBpZiAoIUNvbW1hbmRCdWZmZXJU
OjpFeGVjdXRlc0lubGluZSgpKQorICAgIGlmICghY29tbWFuZEJ1ZmZlckhlbHBlci0+Z2V0Q29t
bWFuZEJ1ZmZlcigpLkV4ZWN1dGVzSW5saW5lKCkpCiAgICAgewogICAgICAgICBmbHVzaERlc2Ny
aXB0b3JTZXRVcGRhdGVzKCk7CiAgICAgfQogCiAgICAgUHJvZ3JhbUV4ZWN1dGFibGVWayAqZXhl
Y3V0YWJsZVZrID0gZ2V0RXhlY3V0YWJsZSgpOwotICAgIHJldHVybiBleGVjdXRhYmxlVmstPnVw
ZGF0ZURlc2NyaXB0b3JTZXRzKHRoaXMsICZtUmVzb3VyY2VVc2VMaXN0LCBjb21tYW5kQnVmZmVy
LCBwaXBlbGluZVR5cGUpOwotfQotCi12b2lkIENvbnRleHRWazo6c3luY09iamVjdFBlcmZDb3Vu
dGVycygpCi17Ci0gICAgbVBlcmZDb3VudGVycy5kZXNjcmlwdG9yU2V0QWxsb2NhdGlvbnMgICAg
ICAgICAgICAgICAgICA9IDA7Ci0gICAgbVBlcmZDb3VudGVycy5kZXNjcmlwdG9yU2V0Q2FjaGVU
b3RhbFNpemUgICAgICAgICAgICAgICA9IDA7Ci0gICAgbVBlcmZDb3VudGVycy5kZXNjcmlwdG9y
U2V0Q2FjaGVLZXlTaXplQnl0ZXMgICAgICAgICAgICA9IDA7Ci0gICAgbVBlcmZDb3VudGVycy51
bmlmb3Jtc0FuZFhmYkRlc2NyaXB0b3JTZXRDYWNoZUhpdHMgICAgICA9IDA7Ci0gICAgbVBlcmZD
b3VudGVycy51bmlmb3Jtc0FuZFhmYkRlc2NyaXB0b3JTZXRDYWNoZU1pc3NlcyAgICA9IDA7Ci0g
ICAgbVBlcmZDb3VudGVycy51bmlmb3Jtc0FuZFhmYkRlc2NyaXB0b3JTZXRDYWNoZVRvdGFsU2l6
ZSA9IDA7Ci0gICAgbVBlcmZDb3VudGVycy50ZXh0dXJlRGVzY3JpcHRvclNldENhY2hlSGl0cyAg
ICAgICAgICAgICA9IDA7Ci0gICAgbVBlcmZDb3VudGVycy50ZXh0dXJlRGVzY3JpcHRvclNldENh
Y2hlTWlzc2VzICAgICAgICAgICA9IDA7Ci0gICAgbVBlcmZDb3VudGVycy50ZXh0dXJlRGVzY3Jp
cHRvclNldENhY2hlVG90YWxTaXplICAgICAgICA9IDA7Ci0gICAgbVBlcmZDb3VudGVycy5zaGFk
ZXJCdWZmZXJzRGVzY3JpcHRvclNldENhY2hlSGl0cyAgICAgICA9IDA7Ci0gICAgbVBlcmZDb3Vu
dGVycy5zaGFkZXJCdWZmZXJzRGVzY3JpcHRvclNldENhY2hlTWlzc2VzICAgICA9IDA7Ci0gICAg
bVBlcmZDb3VudGVycy5zaGFkZXJCdWZmZXJzRGVzY3JpcHRvclNldENhY2hlVG90YWxTaXplICA9
IDA7Ci0gICAgbVBlcmZDb3VudGVycy5keW5hbWljQnVmZmVyQWxsb2NhdGlvbnMgICAgICAgICAg
ICAgICAgICA9IDA7Ci0KLSAgICAvLyBDb250ZXh0VmsncyBkZXNjcmlwdG9yIHNldCBhbGxvY2F0
aW9ucwotICAgIENvbnRleHRWa1BlcmZDb3VudGVycyBjb250ZXh0Q291bnRlcnMgPSBnZXRBbmRS
ZXNldE9iamVjdFBlcmZDb3VudGVycygpOwotICAgIGZvciAodWludDMyX3QgY291bnQgOiBjb250
ZXh0Q291bnRlcnMuZGVzY3JpcHRvclNldHNBbGxvY2F0ZWQpCi0gICAgewotICAgICAgICBtUGVy
ZkNvdW50ZXJzLmRlc2NyaXB0b3JTZXRBbGxvY2F0aW9ucyArPSBjb3VudDsKLSAgICB9Ci0gICAg
Ly8gVXRpbHNWaydzIGRlc2NyaXB0b3Igc2V0IGFsbG9jYXRpb25zCi0gICAgbVBlcmZDb3VudGVy
cy5kZXNjcmlwdG9yU2V0QWxsb2NhdGlvbnMgKz0KLSAgICAgICAgbVV0aWxzLmdldEFuZFJlc2V0
T2JqZWN0UGVyZkNvdW50ZXJzKCkuZGVzY3JpcHRvclNldHNBbGxvY2F0ZWQ7CisgICAgcmV0dXJu
IGV4ZWN1dGFibGVWay0+dXBkYXRlRGVzY3JpcHRvclNldHModGhpcywgJmNvbW1hbmRCdWZmZXJI
ZWxwZXItPmdldFJlc291cmNlVXNlTGlzdCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICZjb21tYW5kQnVmZmVySGVscGVyLT5nZXRDb21tYW5kQnVmZmVy
KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGlwZWxp
bmVUeXBlKTsKK30KKwordm9pZCBDb250ZXh0Vms6OnN5bmNPYmplY3RQZXJmQ291bnRlcnMoY29u
c3QgYW5nbGU6OlZ1bGthblBlcmZDb3VudGVycyAmY29tbWFuZFF1ZXVlUGVyZkNvdW50ZXJzKQor
eworICAgIG1QZXJmQ291bnRlcnMuZGVzY3JpcHRvclNldENhY2hlVG90YWxTaXplICAgICAgICAg
ICAgICAgID0gMDsKKyAgICBtUGVyZkNvdW50ZXJzLmRlc2NyaXB0b3JTZXRDYWNoZUtleVNpemVC
eXRlcyAgICAgICAgICAgICA9IDA7CisgICAgbVBlcmZDb3VudGVycy51bmlmb3Jtc0FuZFhmYkRl
c2NyaXB0b3JTZXRDYWNoZUhpdHMgICAgICAgPSAwOworICAgIG1QZXJmQ291bnRlcnMudW5pZm9y
bXNBbmRYZmJEZXNjcmlwdG9yU2V0Q2FjaGVNaXNzZXMgICAgID0gMDsKKyAgICBtUGVyZkNvdW50
ZXJzLnVuaWZvcm1zQW5kWGZiRGVzY3JpcHRvclNldENhY2hlVG90YWxTaXplICA9IDA7CisgICAg
bVBlcmZDb3VudGVycy50ZXh0dXJlRGVzY3JpcHRvclNldENhY2hlSGl0cyAgICAgICAgICAgICAg
PSAwOworICAgIG1QZXJmQ291bnRlcnMudGV4dHVyZURlc2NyaXB0b3JTZXRDYWNoZU1pc3NlcyAg
ICAgICAgICAgID0gMDsKKyAgICBtUGVyZkNvdW50ZXJzLnRleHR1cmVEZXNjcmlwdG9yU2V0Q2Fj
aGVUb3RhbFNpemUgICAgICAgICA9IDA7CisgICAgbVBlcmZDb3VudGVycy5zaGFkZXJSZXNvdXJj
ZXNEZXNjcmlwdG9yU2V0Q2FjaGVIaXRzICAgICAgPSAwOworICAgIG1QZXJmQ291bnRlcnMuc2hh
ZGVyUmVzb3VyY2VzRGVzY3JpcHRvclNldENhY2hlTWlzc2VzICAgID0gMDsKKyAgICBtUGVyZkNv
dW50ZXJzLnNoYWRlclJlc291cmNlc0Rlc2NyaXB0b3JTZXRDYWNoZVRvdGFsU2l6ZSA9IDA7Cisg
ICAgbVBlcmZDb3VudGVycy5keW5hbWljQnVmZmVyQWxsb2NhdGlvbnMgICAgICAgICAgICAgICAg
ICAgPSAwOworCiAgICAgLy8gUHJvZ3JhbUV4ZWN1dGFibGVWaydzIGRlc2NyaXB0b3Igc2V0IGFs
bG9jYXRpb25zCi0gICAgY29uc3QgZ2w6OlN0YXRlICZzdGF0ZSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPSBnZXRTdGF0ZSgpOwotICAgIGNvbnN0IGdsOjpTaGFkZXJQcm9ncmFtTWFuYWdl
ciAmc2hhZGVyc0FuZFByb2dyYW1zID0gc3RhdGUuZ2V0U2hhZGVyUHJvZ3JhbU1hbmFnZXJGb3JD
YXB0dXJlKCk7CisgICAgY29uc3QgZ2w6OlNoYWRlclByb2dyYW1NYW5hZ2VyICZzaGFkZXJzQW5k
UHJvZ3JhbXMgPSBtU3RhdGUuZ2V0U2hhZGVyUHJvZ3JhbU1hbmFnZXJGb3JDYXB0dXJlKCk7CiAg
ICAgY29uc3QgZ2w6OlJlc291cmNlTWFwPGdsOjpQcm9ncmFtLCBnbDo6U2hhZGVyUHJvZ3JhbUlE
PiAmcHJvZ3JhbXMgPQogICAgICAgICBzaGFkZXJzQW5kUHJvZ3JhbXMuZ2V0UHJvZ3JhbXNGb3JD
YXB0dXJlQW5kUGVyZigpOwogICAgIGZvciAoY29uc3Qgc3RkOjpwYWlyPEdMdWludCwgZ2w6OlBy
b2dyYW0gKj4gJnJlc291cmNlIDogcHJvZ3JhbXMpCkBAIC0yNDg2LDMxICsyNTY1LDI2IEBAIHZv
aWQgQ29udGV4dFZrOjpzeW5jT2JqZWN0UGVyZkNvdW50ZXJzKCkKICAgICAgICAgfQogICAgICAg
ICBQcm9ncmFtVmsgKnByb2dyYW1WayA9IHZrOjpHZXRJbXBsKHJlc291cmNlLnNlY29uZCk7CiAg
ICAgICAgIFByb2dyYW1FeGVjdXRhYmxlUGVyZkNvdW50ZXJzIHByb2dQZXJmQ291bnRlcnMgPQot
ICAgICAgICAgICAgcHJvZ3JhbVZrLT5nZXRFeGVjdXRhYmxlKCkuZ2V0QW5kUmVzZXRPYmplY3RQ
ZXJmQ291bnRlcnMoKTsKLQotICAgICAgICBmb3IgKHVpbnQzMl90IGNvdW50IDogcHJvZ1BlcmZD
b3VudGVycy5kZXNjcmlwdG9yU2V0QWxsb2NhdGlvbnMpCi0gICAgICAgIHsKLSAgICAgICAgICAg
IG1QZXJmQ291bnRlcnMuZGVzY3JpcHRvclNldEFsbG9jYXRpb25zICs9IGNvdW50OwotICAgICAg
ICB9CisgICAgICAgICAgICBwcm9ncmFtVmstPmdldEV4ZWN1dGFibGUoKS5nZXREZXNjcmlwdG9y
U2V0UGVyZkNvdW50ZXJzKCk7CiAKICAgICAgICAgbVBlcmZDb3VudGVycy51bmlmb3Jtc0FuZFhm
YkRlc2NyaXB0b3JTZXRDYWNoZUhpdHMgKz0KLSAgICAgICAgICAgIHByb2dQZXJmQ291bnRlcnMu
ZGVzY3JpcHRvclNldENhY2hlSGl0c1tEZXNjcmlwdG9yU2V0SW5kZXg6OlVuaWZvcm1zQW5kWGZi
XTsKKyAgICAgICAgICAgIHByb2dQZXJmQ291bnRlcnMuY2FjaGVTdGF0c1tEZXNjcmlwdG9yU2V0
SW5kZXg6OlVuaWZvcm1zQW5kWGZiXS5nZXRIaXRDb3VudCgpOwogICAgICAgICBtUGVyZkNvdW50
ZXJzLnVuaWZvcm1zQW5kWGZiRGVzY3JpcHRvclNldENhY2hlTWlzc2VzICs9Ci0gICAgICAgICAg
ICBwcm9nUGVyZkNvdW50ZXJzLmRlc2NyaXB0b3JTZXRDYWNoZU1pc3Nlc1tEZXNjcmlwdG9yU2V0
SW5kZXg6OlVuaWZvcm1zQW5kWGZiXTsKKyAgICAgICAgICAgIHByb2dQZXJmQ291bnRlcnMuY2Fj
aGVTdGF0c1tEZXNjcmlwdG9yU2V0SW5kZXg6OlVuaWZvcm1zQW5kWGZiXS5nZXRNaXNzQ291bnQo
KTsKICAgICAgICAgbVBlcmZDb3VudGVycy51bmlmb3Jtc0FuZFhmYkRlc2NyaXB0b3JTZXRDYWNo
ZVRvdGFsU2l6ZSArPQotICAgICAgICAgICAgcHJvZ1BlcmZDb3VudGVycy5kZXNjcmlwdG9yU2V0
Q2FjaGVTaXplc1tEZXNjcmlwdG9yU2V0SW5kZXg6OlVuaWZvcm1zQW5kWGZiXTsKKyAgICAgICAg
ICAgIHByb2dQZXJmQ291bnRlcnMuY2FjaGVTdGF0c1tEZXNjcmlwdG9yU2V0SW5kZXg6OlVuaWZv
cm1zQW5kWGZiXS5nZXRTaXplKCk7CiAgICAgICAgIG1QZXJmQ291bnRlcnMudGV4dHVyZURlc2Ny
aXB0b3JTZXRDYWNoZUhpdHMgKz0KLSAgICAgICAgICAgIHByb2dQZXJmQ291bnRlcnMuZGVzY3Jp
cHRvclNldENhY2hlSGl0c1tEZXNjcmlwdG9yU2V0SW5kZXg6OlRleHR1cmVdOworICAgICAgICAg
ICAgcHJvZ1BlcmZDb3VudGVycy5jYWNoZVN0YXRzW0Rlc2NyaXB0b3JTZXRJbmRleDo6VGV4dHVy
ZV0uZ2V0SGl0Q291bnQoKTsKICAgICAgICAgbVBlcmZDb3VudGVycy50ZXh0dXJlRGVzY3JpcHRv
clNldENhY2hlTWlzc2VzICs9Ci0gICAgICAgICAgICBwcm9nUGVyZkNvdW50ZXJzLmRlc2NyaXB0
b3JTZXRDYWNoZU1pc3Nlc1tEZXNjcmlwdG9yU2V0SW5kZXg6OlRleHR1cmVdOworICAgICAgICAg
ICAgcHJvZ1BlcmZDb3VudGVycy5jYWNoZVN0YXRzW0Rlc2NyaXB0b3JTZXRJbmRleDo6VGV4dHVy
ZV0uZ2V0TWlzc0NvdW50KCk7CiAgICAgICAgIG1QZXJmQ291bnRlcnMudGV4dHVyZURlc2NyaXB0
b3JTZXRDYWNoZVRvdGFsU2l6ZSArPQotICAgICAgICAgICAgcHJvZ1BlcmZDb3VudGVycy5kZXNj
cmlwdG9yU2V0Q2FjaGVTaXplc1tEZXNjcmlwdG9yU2V0SW5kZXg6OlRleHR1cmVdOwotICAgICAg
ICBtUGVyZkNvdW50ZXJzLnNoYWRlckJ1ZmZlcnNEZXNjcmlwdG9yU2V0Q2FjaGVIaXRzICs9Ci0g
ICAgICAgICAgICBwcm9nUGVyZkNvdW50ZXJzLmRlc2NyaXB0b3JTZXRDYWNoZUhpdHNbRGVzY3Jp
cHRvclNldEluZGV4OjpTaGFkZXJSZXNvdXJjZV07Ci0gICAgICAgIG1QZXJmQ291bnRlcnMuc2hh
ZGVyQnVmZmVyc0Rlc2NyaXB0b3JTZXRDYWNoZU1pc3NlcyArPQotICAgICAgICAgICAgcHJvZ1Bl
cmZDb3VudGVycy5kZXNjcmlwdG9yU2V0Q2FjaGVNaXNzZXNbRGVzY3JpcHRvclNldEluZGV4OjpT
aGFkZXJSZXNvdXJjZV07Ci0gICAgICAgIG1QZXJmQ291bnRlcnMuc2hhZGVyQnVmZmVyc0Rlc2Ny
aXB0b3JTZXRDYWNoZVRvdGFsU2l6ZSArPQotICAgICAgICAgICAgcHJvZ1BlcmZDb3VudGVycy5k
ZXNjcmlwdG9yU2V0Q2FjaGVTaXplc1tEZXNjcmlwdG9yU2V0SW5kZXg6OlNoYWRlclJlc291cmNl
XTsKKyAgICAgICAgICAgIHByb2dQZXJmQ291bnRlcnMuY2FjaGVTdGF0c1tEZXNjcmlwdG9yU2V0
SW5kZXg6OlRleHR1cmVdLmdldFNpemUoKTsKKyAgICAgICAgbVBlcmZDb3VudGVycy5zaGFkZXJS
ZXNvdXJjZXNEZXNjcmlwdG9yU2V0Q2FjaGVIaXRzICs9CisgICAgICAgICAgICBwcm9nUGVyZkNv
dW50ZXJzLmNhY2hlU3RhdHNbRGVzY3JpcHRvclNldEluZGV4OjpTaGFkZXJSZXNvdXJjZV0uZ2V0
SGl0Q291bnQoKTsKKyAgICAgICAgbVBlcmZDb3VudGVycy5zaGFkZXJSZXNvdXJjZXNEZXNjcmlw
dG9yU2V0Q2FjaGVNaXNzZXMgKz0KKyAgICAgICAgICAgIHByb2dQZXJmQ291bnRlcnMuY2FjaGVT
dGF0c1tEZXNjcmlwdG9yU2V0SW5kZXg6OlNoYWRlclJlc291cmNlXS5nZXRNaXNzQ291bnQoKTsK
KyAgICAgICAgbVBlcmZDb3VudGVycy5zaGFkZXJSZXNvdXJjZXNEZXNjcmlwdG9yU2V0Q2FjaGVU
b3RhbFNpemUgKz0KKyAgICAgICAgICAgIHByb2dQZXJmQ291bnRlcnMuY2FjaGVTdGF0c1tEZXNj
cmlwdG9yU2V0SW5kZXg6OlNoYWRlclJlc291cmNlXS5nZXRTaXplKCk7CiAKICAgICAgICAgZm9y
ICh1aW50MzJfdCBrZXlTaXplQnl0ZXMgOiBwcm9nUGVyZkNvdW50ZXJzLmRlc2NyaXB0b3JTZXRD
YWNoZUtleVNpemVzQnl0ZXMpCiAgICAgICAgIHsKQEAgLTI1MjIsMTIgKzI1OTYsMjAgQEAgdm9p
ZCBDb250ZXh0Vms6OnN5bmNPYmplY3RQZXJmQ291bnRlcnMoKQogICAgICAgICBtUGVyZkNvdW50
ZXJzLnVuaWZvcm1zQW5kWGZiRGVzY3JpcHRvclNldENhY2hlVG90YWxTaXplOwogICAgIG1QZXJm
Q291bnRlcnMuZGVzY3JpcHRvclNldENhY2hlVG90YWxTaXplICs9IG1QZXJmQ291bnRlcnMudGV4
dHVyZURlc2NyaXB0b3JTZXRDYWNoZVRvdGFsU2l6ZTsKICAgICBtUGVyZkNvdW50ZXJzLmRlc2Ny
aXB0b3JTZXRDYWNoZVRvdGFsU2l6ZSArPQotICAgICAgICBtUGVyZkNvdW50ZXJzLnNoYWRlckJ1
ZmZlcnNEZXNjcmlwdG9yU2V0Q2FjaGVUb3RhbFNpemU7CisgICAgICAgIG1QZXJmQ291bnRlcnMu
c2hhZGVyUmVzb3VyY2VzRGVzY3JpcHRvclNldENhY2hlVG90YWxTaXplOwogCiAgICAgZm9yIChj
b25zdCBEcml2ZXJVbmlmb3Jtc0Rlc2NyaXB0b3JTZXQgJmRyaXZlclNldCA6IG1Ecml2ZXJVbmlm
b3JtcykKICAgICB7CiAgICAgICAgIG1QZXJmQ291bnRlcnMuZGVzY3JpcHRvclNldENhY2hlVG90
YWxTaXplICs9IGRyaXZlclNldC5kZXNjcmlwdG9yU2V0Q2FjaGUuZ2V0U2l6ZSgpOwogICAgIH0K
KworICAgIC8vIFVwZGF0ZSBwZXJmIGNvdW50ZXJzIGZyb20gdGhlIHJlbmRlcmVyIGFzIHdlbGwK
KyAgICBtUGVyZkNvdW50ZXJzLmNvbW1hbmRRdWV1ZVN1Ym1pdENhbGxzVG90YWwgPQorICAgICAg
ICBjb21tYW5kUXVldWVQZXJmQ291bnRlcnMuY29tbWFuZFF1ZXVlU3VibWl0Q2FsbHNUb3RhbDsK
KyAgICBtUGVyZkNvdW50ZXJzLmNvbW1hbmRRdWV1ZVN1Ym1pdENhbGxzUGVyRnJhbWUgPQorICAg
ICAgICBjb21tYW5kUXVldWVQZXJmQ291bnRlcnMuY29tbWFuZFF1ZXVlU3VibWl0Q2FsbHNQZXJG
cmFtZTsKKyAgICBtUGVyZkNvdW50ZXJzLnZrUXVldWVTdWJtaXRDYWxsc1RvdGFsICAgID0gY29t
bWFuZFF1ZXVlUGVyZkNvdW50ZXJzLnZrUXVldWVTdWJtaXRDYWxsc1RvdGFsOworICAgIG1QZXJm
Q291bnRlcnMudmtRdWV1ZVN1Ym1pdENhbGxzUGVyRnJhbWUgPSBjb21tYW5kUXVldWVQZXJmQ291
bnRlcnMudmtRdWV1ZVN1Ym1pdENhbGxzUGVyRnJhbWU7CiB9CiAKIHZvaWQgQ29udGV4dFZrOjp1
cGRhdGVPdmVybGF5T25QcmVzZW50KCkKQEAgLTI1MzUsNyArMjYxNyw4IEBAIHZvaWQgQ29udGV4
dFZrOjp1cGRhdGVPdmVybGF5T25QcmVzZW50KCkKICAgICBjb25zdCBnbDo6T3ZlcmxheVR5cGUg
Km92ZXJsYXkgPSBtU3RhdGUuZ2V0T3ZlcmxheSgpOwogICAgIEFTU0VSVChvdmVybGF5LT5pc0Vu
YWJsZWQoKSk7CiAKLSAgICBzeW5jT2JqZWN0UGVyZkNvdW50ZXJzKCk7CisgICAgYW5nbGU6OlZ1
bGthblBlcmZDb3VudGVycyBjb21tYW5kUXVldWVQZXJmQ291bnRlcnMgPSBtUmVuZGVyZXItPmdl
dENvbW1hbmRRdWV1ZVBlcmZDb3VudGVycygpOworICAgIHN5bmNPYmplY3RQZXJmQ291bnRlcnMo
Y29tbWFuZFF1ZXVlUGVyZkNvdW50ZXJzKTsKIAogICAgIC8vIFVwZGF0ZSBvdmVybGF5IGlmIGFj
dGl2ZS4KICAgICB7CkBAIC0yNTUwLDggKzI2MzMsNiBAQCB2b2lkIENvbnRleHRWazo6dXBkYXRl
T3ZlcmxheU9uUHJlc2VudCgpCiAgICAgICAgICAgICBvdmVybGF5LT5nZXRSdW5uaW5nR3JhcGhX
aWRnZXQoZ2w6OldpZGdldElkOjpWdWxrYW5Xcml0ZURlc2NyaXB0b3JTZXRDb3VudCk7CiAgICAg
ICAgIHdyaXRlRGVzY3JpcHRvclNldENvdW50LT5hZGQobVBlcmZDb3VudGVycy53cml0ZURlc2Ny
aXB0b3JTZXRzKTsKICAgICAgICAgd3JpdGVEZXNjcmlwdG9yU2V0Q291bnQtPm5leHQoKTsKLQot
ICAgICAgICBtUGVyZkNvdW50ZXJzLndyaXRlRGVzY3JpcHRvclNldHMgPSAwOwogICAgIH0KIAog
ICAgIHsKQEAgLTI1NjIsMTggKzI2NDMsMTggQEAgdm9pZCBDb250ZXh0Vms6OnVwZGF0ZU92ZXJs
YXlPblByZXNlbnQoKQogICAgIH0KIAogICAgIHsKLSAgICAgICAgZ2w6OlJ1bm5pbmdHcmFwaFdp
ZGdldCAqc2hhZGVyQnVmZmVySGl0UmF0ZSA9Ci0gICAgICAgICAgICBvdmVybGF5LT5nZXRSdW5u
aW5nR3JhcGhXaWRnZXQoZ2w6OldpZGdldElkOjpWdWxrYW5TaGFkZXJCdWZmZXJEU0hpdFJhdGUp
OwotICAgICAgICBzaXplX3QgbnVtQ2FjaGVBY2Nlc3NlcyA9IG1QZXJmQ291bnRlcnMuc2hhZGVy
QnVmZmVyc0Rlc2NyaXB0b3JTZXRDYWNoZUhpdHMgKwotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG1QZXJmQ291bnRlcnMuc2hhZGVyQnVmZmVyc0Rlc2NyaXB0b3JTZXRDYWNoZU1p
c3NlczsKKyAgICAgICAgZ2w6OlJ1bm5pbmdHcmFwaFdpZGdldCAqc2hhZGVyUmVzb3VyY2VIaXRS
YXRlID0KKyAgICAgICAgICAgIG92ZXJsYXktPmdldFJ1bm5pbmdHcmFwaFdpZGdldChnbDo6V2lk
Z2V0SWQ6OlZ1bGthblNoYWRlclJlc291cmNlRFNIaXRSYXRlKTsKKyAgICAgICAgc2l6ZV90IG51
bUNhY2hlQWNjZXNzZXMgPSBtUGVyZkNvdW50ZXJzLnNoYWRlclJlc291cmNlc0Rlc2NyaXB0b3JT
ZXRDYWNoZUhpdHMgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1QZXJmQ291
bnRlcnMuc2hhZGVyUmVzb3VyY2VzRGVzY3JpcHRvclNldENhY2hlTWlzc2VzOwogICAgICAgICBp
ZiAobnVtQ2FjaGVBY2Nlc3NlcyA+IDApCiAgICAgICAgIHsKICAgICAgICAgICAgIGZsb2F0IGhp
dFJhdGVGbG9hdCA9Ci0gICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8ZmxvYXQ+KG1QZXJmQ291
bnRlcnMuc2hhZGVyQnVmZmVyc0Rlc2NyaXB0b3JTZXRDYWNoZUhpdHMpIC8KKyAgICAgICAgICAg
ICAgICBzdGF0aWNfY2FzdDxmbG9hdD4obVBlcmZDb3VudGVycy5zaGFkZXJSZXNvdXJjZXNEZXNj
cmlwdG9yU2V0Q2FjaGVIaXRzKSAvCiAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8ZmxvYXQ+
KG51bUNhY2hlQWNjZXNzZXMpOwogICAgICAgICAgICAgc2l6ZV90IGhpdFJhdGUgPSBzdGF0aWNf
Y2FzdDxzaXplX3Q+KGhpdFJhdGVGbG9hdCAqIDEwMC4wZik7Ci0gICAgICAgICAgICBzaGFkZXJC
dWZmZXJIaXRSYXRlLT5hZGQoaGl0UmF0ZSk7Ci0gICAgICAgICAgICBzaGFkZXJCdWZmZXJIaXRS
YXRlLT5uZXh0KCk7CisgICAgICAgICAgICBzaGFkZXJSZXNvdXJjZUhpdFJhdGUtPmFkZChoaXRS
YXRlKTsKKyAgICAgICAgICAgIHNoYWRlclJlc291cmNlSGl0UmF0ZS0+bmV4dCgpOwogICAgICAg
ICB9CiAgICAgfQogCkBAIC0yNTk1LDYgKzI2NzYsMTggQEAgdm9pZCBDb250ZXh0Vms6OnVwZGF0
ZU92ZXJsYXlPblByZXNlbnQoKQogICAgICAgICAgICAgb3ZlcmxheS0+Z2V0UnVubmluZ0dyYXBo
V2lkZ2V0KGdsOjpXaWRnZXRJZDo6VnVsa2FuRHluYW1pY0J1ZmZlckFsbG9jYXRpb25zKTsKICAg
ICAgICAgZHluYW1pY0J1ZmZlckFsbG9jYXRpb25zLT5hZGQobVBlcmZDb3VudGVycy5keW5hbWlj
QnVmZmVyQWxsb2NhdGlvbnMpOwogICAgIH0KKworICAgIHsKKyAgICAgICAgZ2w6OlJ1bm5pbmdH
cmFwaFdpZGdldCAqYXR0ZW1wdGVkU3VibWlzc2lvbnNXaWRnZXQgPQorICAgICAgICAgICAgb3Zl
cmxheS0+Z2V0UnVubmluZ0dyYXBoV2lkZ2V0KGdsOjpXaWRnZXRJZDo6VnVsa2FuQXR0ZW1wdGVk
U3VibWlzc2lvbnMpOworICAgICAgICBhdHRlbXB0ZWRTdWJtaXNzaW9uc1dpZGdldC0+YWRkKGNv
bW1hbmRRdWV1ZVBlcmZDb3VudGVycy5jb21tYW5kUXVldWVTdWJtaXRDYWxsc1BlckZyYW1lKTsK
KyAgICAgICAgYXR0ZW1wdGVkU3VibWlzc2lvbnNXaWRnZXQtPm5leHQoKTsKKworICAgICAgICBn
bDo6UnVubmluZ0dyYXBoV2lkZ2V0ICphY3R1YWxTdWJtaXNzaW9uc1dpZGdldCA9CisgICAgICAg
ICAgICBvdmVybGF5LT5nZXRSdW5uaW5nR3JhcGhXaWRnZXQoZ2w6OldpZGdldElkOjpWdWxrYW5B
Y3R1YWxTdWJtaXNzaW9ucyk7CisgICAgICAgIGFjdHVhbFN1Ym1pc3Npb25zV2lkZ2V0LT5hZGQo
Y29tbWFuZFF1ZXVlUGVyZkNvdW50ZXJzLnZrUXVldWVTdWJtaXRDYWxsc1BlckZyYW1lKTsKKyAg
ICAgICAgYWN0dWFsU3VibWlzc2lvbnNXaWRnZXQtPm5leHQoKTsKKyAgICB9CiB9CiAKIHZvaWQg
Q29udGV4dFZrOjphZGRPdmVybGF5VXNlZEJ1ZmZlcnNDb3VudCh2azo6Q29tbWFuZEJ1ZmZlckhl
bHBlckNvbW1vbiAqY29tbWFuZEJ1ZmZlcikKQEAgLTI2MzgsMTggKzI3MzEsMjcgQEAgdm9pZCBD
b250ZXh0Vms6OmFkZE92ZXJsYXlVc2VkQnVmZmVyc0NvdW50KHZrOjpDb21tYW5kQnVmZmVySGVs
cGVyQ29tbW9uICpjb21tYW4KIAogYW5nbGU6OlJlc3VsdCBDb250ZXh0Vms6OnN1Ym1pdEZyYW1l
KGNvbnN0IHZrOjpTZW1hcGhvcmUgKnNpZ25hbFNlbWFwaG9yZSwgU2VyaWFsICpzdWJtaXRTZXJp
YWxPdXQpCiB7Ci0gICAgcmV0dXJuIHN1Ym1pdEZyYW1lSW1wbChzaWduYWxTZW1hcGhvcmUsIHN1
Ym1pdFNlcmlhbE91dCwgU3VibWl0RnJhbWVUeXBlOjpPdXRzaWRlQW5kUlBDb21tYW5kcyk7Cisg
ICAgZ2V0U2hhcmVHcm91cFZrKCktPmFjcXVpcmVSZXNvdXJjZVVzZUxpc3QoCisgICAgICAgIHN0
ZDo6bW92ZShtT3V0c2lkZVJlbmRlclBhc3NDb21tYW5kcy0+Z2V0UmVzb3VyY2VVc2VMaXN0KCkp
KTsKKyAgICBnZXRTaGFyZUdyb3VwVmsoKS0+YWNxdWlyZVJlc291cmNlVXNlTGlzdChzdGQ6Om1v
dmUobVJlbmRlclBhc3NDb21tYW5kcy0+Z2V0UmVzb3VyY2VVc2VMaXN0KCkpKTsKKworICAgIEFO
R0xFX1RSWShzdWJtaXRDb21tYW5kcyhzaWduYWxTZW1hcGhvcmUsIHN1Ym1pdFNlcmlhbE91dCkp
OworCisgICAgb25SZW5kZXJQYXNzRmluaXNoZWQoUmVuZGVyUGFzc0Nsb3N1cmVSZWFzb246OkFs
cmVhZHlTcGVjaWZpZWRFbHNld2hlcmUpOworICAgIHJldHVybiBhbmdsZTo6UmVzdWx0OjpDb250
aW51ZTsKIH0KIAogYW5nbGU6OlJlc3VsdCBDb250ZXh0Vms6OnN1Ym1pdEZyYW1lT3V0c2lkZUNv
bW1hbmRCdWZmZXJPbmx5KFNlcmlhbCAqc3VibWl0U2VyaWFsT3V0KQogewogICAgIEFOR0xFX1RS
QUNFX0VWRU5UMCgiZ3B1LmFuZ2xlIiwgIkNvbnRleHRWazo6c3VibWl0RnJhbWVPdXRzaWRlQ29t
bWFuZEJ1ZmZlck9ubHkiKTsKLSAgICByZXR1cm4gc3VibWl0RnJhbWVJbXBsKG51bGxwdHIsIHN1
Ym1pdFNlcmlhbE91dCwgU3VibWl0RnJhbWVUeXBlOjpPdXRzaWRlUlBDb21tYW5kc09ubHkpOwor
ICAgIGdldFNoYXJlR3JvdXBWaygpLT5hY3F1aXJlUmVzb3VyY2VVc2VMaXN0KAorICAgICAgICBz
dGQ6Om1vdmUobU91dHNpZGVSZW5kZXJQYXNzQ29tbWFuZHMtPmdldFJlc291cmNlVXNlTGlzdCgp
KSk7CisKKyAgICByZXR1cm4gc3VibWl0Q29tbWFuZHMobnVsbHB0ciwgc3VibWl0U2VyaWFsT3V0
KTsKIH0KIAotYW5nbGU6OlJlc3VsdCBDb250ZXh0Vms6OnN1Ym1pdEZyYW1lSW1wbChjb25zdCB2
azo6U2VtYXBob3JlICpzaWduYWxTZW1hcGhvcmUsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFNlcmlhbCAqc3VibWl0U2VyaWFsT3V0LAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBTdWJtaXRGcmFtZVR5cGUgc3VibWl0RnJhbWVUeXBl
KQorYW5nbGU6OlJlc3VsdCBDb250ZXh0Vms6OnN1Ym1pdENvbW1hbmRzKGNvbnN0IHZrOjpTZW1h
cGhvcmUgKnNpZ25hbFNlbWFwaG9yZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBTZXJpYWwgKnN1Ym1pdFNlcmlhbE91dCkKIHsKICAgICBpZiAobUN1cnJlbnRXaW5k
b3dTdXJmYWNlKQogICAgIHsKQEAgLTI2NjcsMjggKzI3NjksMTUgQEAgYW5nbGU6OlJlc3VsdCBD
b250ZXh0Vms6OnN1Ym1pdEZyYW1lSW1wbChjb25zdCB2azo6U2VtYXBob3JlICpzaWduYWxTZW1h
cGhvcmUsCiAgICAgICAgIGR1bXBDb21tYW5kU3RyZWFtRGlhZ25vc3RpY3MoKTsKICAgICB9CiAK
LSAgICBpZiAoc3VibWl0RnJhbWVUeXBlID09IFN1Ym1pdEZyYW1lVHlwZTo6T3V0c2lkZUFuZFJQ
Q29tbWFuZHMpCi0gICAgewotICAgICAgICBnZXRTaGFyZUdyb3VwVmsoKS0+YWNxdWlyZVJlc291
cmNlVXNlTGlzdChzdGQ6Om1vdmUobVJlc291cmNlVXNlTGlzdCkpOwotICAgIH0KLSAgICBlbHNl
Ci0gICAgewotICAgICAgICBnZXRTaGFyZUdyb3VwVmsoKS0+Y29weVJlc291cmNlVXNlTGlzdCht
UmVzb3VyY2VVc2VMaXN0KTsKLSAgICB9Ci0KICAgICBBTkdMRV9UUlkobVJlbmRlcmVyLT5zdWJt
aXRGcmFtZSh0aGlzLCBoYXNQcm90ZWN0ZWRDb250ZW50KCksIG1Db250ZXh0UHJpb3JpdHksCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjptb3ZlKG1XYWl0U2VtYXBo
b3JlcyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjptb3ZlKG1X
YWl0U2VtYXBob3JlU3RhZ2VNYXNrcyksIHNpZ25hbFNlbWFwaG9yZSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzdGQ6Om1vdmUobUN1cnJlbnRHYXJiYWdlKSwgJm1Db21t
YW5kUG9vbHMsIHN1Ym1pdFNlcmlhbE91dCkpOwogCi0gICAgaWYgKHN1Ym1pdEZyYW1lVHlwZSA9
PSBTdWJtaXRGcmFtZVR5cGU6Ok91dHNpZGVBbmRSUENvbW1hbmRzKQotICAgIHsKLSAgICAgICAg
Z2V0U2hhcmVHcm91cFZrKCktPnJlbGVhc2VSZXNvdXJjZVVzZUxpc3RzKCpzdWJtaXRTZXJpYWxP
dXQpOwotICAgICAgICAvLyBOb3cgdGhhdCB3ZSBoYXZlIHByb2Nlc3NlZCByZXNvdXJjZVVzZUxp
c3QsIHNvbWUgb2YgcGVuZGluZyBnYXJiYWdlIG1heSBubyBsb25nZXIgcGVuZGluZwotICAgICAg
ICAvLyBhbmQgc2hvdWxkIGJlIG1vdmVkIHRvIGdhcmJhZ2UgbGlzdC4KLSAgICAgICAgbVJlbmRl
cmVyLT5jbGVhbnVwUGVuZGluZ1N1Ym1pc3Npb25HYXJiYWdlKCk7Ci0gICAgICAgIG9uUmVuZGVy
UGFzc0ZpbmlzaGVkKFJlbmRlclBhc3NDbG9zdXJlUmVhc29uOjpBbHJlYWR5U3BlY2lmaWVkRWxz
ZXdoZXJlKTsKLSAgICB9CisgICAgZ2V0U2hhcmVHcm91cFZrKCktPnJlbGVhc2VSZXNvdXJjZVVz
ZUxpc3RzKCpzdWJtaXRTZXJpYWxPdXQpOworICAgIC8vIE5vdyB0aGF0IHdlIGhhdmUgcHJvY2Vz
c2VkIHJlc291cmNlVXNlTGlzdCwgc29tZSBvZiBwZW5kaW5nIGdhcmJhZ2UgbWF5IG5vIGxvbmdl
ciBwZW5kaW5nCisgICAgLy8gYW5kIHNob3VsZCBiZSBtb3ZlZCB0byBnYXJiYWdlIGxpc3QuCisg
ICAgbVJlbmRlcmVyLT5jbGVhbnVwUGVuZGluZ1N1Ym1pc3Npb25HYXJiYWdlKCk7CiAKICAgICBt
Q29tcHV0ZURpcnR5Qml0cyB8PSBtTmV3Q29tcHV0ZUNvbW1hbmRCdWZmZXJEaXJ0eUJpdHM7CiAK
QEAgLTI2OTcsNyArMjc4Niw2IEBAIGFuZ2xlOjpSZXN1bHQgQ29udGV4dFZrOjpzdWJtaXRGcmFt
ZUltcGwoY29uc3Qgdms6OlNlbWFwaG9yZSAqc2lnbmFsU2VtYXBob3JlLAogICAgICAgICBBTkdM
RV9UUlkoY2hlY2tDb21wbGV0ZWRHcHVFdmVudHMoKSk7CiAgICAgfQogCi0gICAgbVBlcmZDb3Vu
dGVycy5zdWJtaXR0ZWRGcmFtZXMrKzsKICAgICByZXNldFRvdGFsQnVmZmVyVG9JbWFnZUNvcHlT
aXplKCk7CiAKICAgICByZXR1cm4gYW5nbGU6OlJlc3VsdDo6Q29udGludWU7CkBAIC0zNTI4LDE3
ICszNjE2LDIxIEBAIGFuZ2xlOjpSZXN1bHQgQ29udGV4dFZrOjptdWx0aURyYXdFbGVtZW50c0lu
c3RhbmNlZEJhc2VWZXJ0ZXhCYXNlSW5zdGFuY2UoCiAgICAgICAgIGRyYXdjb3VudCk7CiB9CiAK
LXZvaWQgQ29udGV4dFZrOjpvcHRpbWl6ZVJlbmRlclBhc3NGb3JQcmVzZW50KFZrRnJhbWVidWZm
ZXIgZnJhbWVidWZmZXJIYW5kbGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB2azo6SW1hZ2VIZWxwZXIgKmNvbG9ySW1hZ2UpCithbmdsZTo6UmVzdWx0IENv
bnRleHRWazo6b3B0aW1pemVSZW5kZXJQYXNzRm9yUHJlc2VudChWa0ZyYW1lYnVmZmVyIGZyYW1l
YnVmZmVySGFuZGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdms6OkltYWdlVmlld0hlbHBlciAqY29sb3JJbWFnZVZpZXcsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2azo6SW1hZ2VI
ZWxwZXIgKmNvbG9ySW1hZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB2azo6SW1hZ2VIZWxwZXIgKmNvbG9ySW1hZ2VNUywKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZrUHJlc2VudE1v
ZGVLSFIgcHJlc2VudE1vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBib29sICppbWFnZVJlc29sdmVkKQogewogICAgIGlmICghbVJlbmRl
clBhc3NDb21tYW5kcy0+c3RhcnRlZCgpKQogICAgIHsKLSAgICAgICAgcmV0dXJuOworICAgICAg
ICByZXR1cm4gYW5nbGU6OlJlc3VsdDo6Q29udGludWU7CiAgICAgfQogCiAgICAgaWYgKGZyYW1l
YnVmZmVySGFuZGxlICE9IG1SZW5kZXJQYXNzQ29tbWFuZHMtPmdldEZyYW1lYnVmZmVySGFuZGxl
KCkpCiAgICAgewotICAgICAgICByZXR1cm47CisgICAgICAgIHJldHVybiBhbmdsZTo6UmVzdWx0
OjpDb250aW51ZTsKICAgICB9CiAKICAgICAvLyBFR0wxLjUgc3BlYzogVGhlIGNvbnRlbnRzIG9m
IGFuY2lsbGFyeSBidWZmZXJzIGFyZSBhbHdheXMgdW5kZWZpbmVkIGFmdGVyIGNhbGxpbmcKQEAg
LTM1NjAsNiArMzY1Miw1NSBAQCB2b2lkIENvbnRleHRWazo6b3B0aW1pemVSZW5kZXJQYXNzRm9y
UHJlc2VudChWa0ZyYW1lYnVmZmVyIGZyYW1lYnVmZmVySGFuZGxlLAogICAgIHsKICAgICAgICAg
bVJlbmRlclBhc3NDb21tYW5kcy0+c2V0SW1hZ2VPcHRpbWl6ZUZvclByZXNlbnQoY29sb3JJbWFn
ZSk7CiAgICAgfQorCisgICAgLy8gUmVzb2x2ZSB0aGUgbXVsdGlzYW1wbGUgaW1hZ2UKKyAgICBp
ZiAoY29sb3JJbWFnZU1TLT52YWxpZCgpKQorICAgIHsKKyAgICAgICAgdms6OkltYWdlT3JCdWZm
ZXJWaWV3U3VicmVzb3VyY2VTZXJpYWwgcmVzb2x2ZUltYWdlVmlld1NlcmlhbCA9CisgICAgICAg
ICAgICBjb2xvckltYWdlVmlldy0+Z2V0U3VicmVzb3VyY2VTZXJpYWwoZ2w6OkxldmVsSW5kZXgo
MCksIDEsIDAsIHZrOjpMYXllck1vZGU6OkFsbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB2azo6U3JnYkRlY29kZU1vZGU6OlNraXBEZWNvZGUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2w6OlNyZ2JP
dmVycmlkZTo6RGVmYXVsdCk7CisgICAgICAgIEFTU0VSVChyZXNvbHZlSW1hZ2VWaWV3U2VyaWFs
LnZpZXdTZXJpYWwudmFsaWQoKSk7CisgICAgICAgIGRyYXdGcmFtZWJ1ZmZlclZrLT51cGRhdGVD
b2xvclJlc29sdmVBdHRhY2htZW50KDAsIHJlc29sdmVJbWFnZVZpZXdTZXJpYWwpOworCisgICAg
ICAgIGNvbnN0IHZrOjpJbWFnZVZpZXcgKnJlc29sdmVJbWFnZVZpZXcgPSBudWxscHRyOworICAg
ICAgICBBTkdMRV9UUlkoY29sb3JJbWFnZVZpZXctPmdldExldmVsTGF5ZXJEcmF3SW1hZ2VWaWV3
KHRoaXMsICpjb2xvckltYWdlLCB2azo6TGV2ZWxJbmRleCgwKSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCBnbDo6U3JnYldy
aXRlQ29udHJvbE1vZGU6OkRlZmF1bHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnJlc29sdmVJbWFnZVZpZXcpKTsKKyAgICAg
ICAgdms6OkZyYW1lYnVmZmVyICpuZXdGcmFtZWJ1ZmZlciAgICAgICAgICAgICAgICAgICAgICA9
IG51bGxwdHI7CisgICAgICAgIGNvbnN0ZXhwciBTd2FwY2hhaW5SZXNvbHZlTW9kZSBrU3dhcGNo
YWluUmVzb2x2ZU1vZGUgPSBTd2FwY2hhaW5SZXNvbHZlTW9kZTo6RW5hYmxlZDsKKyAgICAgICAg
QU5HTEVfVFJZKGRyYXdGcmFtZWJ1ZmZlclZrLT5nZXRGcmFtZWJ1ZmZlcih0aGlzLCAmbmV3RnJh
bWVidWZmZXIsIHJlc29sdmVJbWFnZVZpZXcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAga1N3YXBjaGFpblJlc29sdmVNb2RlKSk7CisKKyAgICAg
ICAgdms6OlJlbmRlclBhc3NDb21tYW5kQnVmZmVySGVscGVyICZjb21tYW5kQnVmZmVySGVscGVy
ID0gZ2V0U3RhcnRlZFJlbmRlclBhc3NDb21tYW5kcygpOworICAgICAgICBjb21tYW5kQnVmZmVy
SGVscGVyLnVwZGF0ZVJlbmRlclBhc3NGb3JSZXNvbHZlKHRoaXMsIG5ld0ZyYW1lYnVmZmVyLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRy
YXdGcmFtZWJ1ZmZlclZrLT5nZXRSZW5kZXJQYXNzRGVzYygpKTsKKworICAgICAgICBvbkltYWdl
UmVuZGVyUGFzc1dyaXRlKGdsOjpMZXZlbEluZGV4KDApLCAwLCAxLCBWS19JTUFHRV9BU1BFQ1Rf
Q09MT1JfQklULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZrOjpJbWFnZUxheW91
dDo6Q29sb3JBdHRhY2htZW50LCBjb2xvckltYWdlKTsKKworICAgICAgICAvLyBJbnZhbGlkYXRl
IHRoZSBzdXJmYWNlLiAgU2VlIGNvbW1lbnQgaW4gV2luZG93U3VyZmFjZVZrOjpkb0RlZmVycmVk
QWNxdWlyZU5leHRJbWFnZSBvbgorICAgICAgICAvLyB3aHkgdGhpcyBpcyBub3QgZG9uZSB3aGVu
IGluIERFTUFORF9SRUZSRVNIIG1vZGUuCisgICAgICAgIGlmIChwcmVzZW50TW9kZSAhPSBWS19Q
UkVTRU5UX01PREVfU0hBUkVEX0RFTUFORF9SRUZSRVNIX0tIUikKKyAgICAgICAgeworICAgICAg
ICAgICAgY29uc3QgZ2w6OlJlY3RhbmdsZSBpbnZhbGlkYXRlQXJlYSgwLCAwLCBjb2xvckltYWdl
TVMtPmdldEV4dGVudHMoKS53aWR0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29sb3JJbWFnZU1TLT5nZXRFeHRlbnRzKCkuaGVpZ2h0KTsKKyAgICAg
ICAgICAgIGNvbW1hbmRCdWZmZXJIZWxwZXIuaW52YWxpZGF0ZVJlbmRlclBhc3NDb2xvckF0dGFj
aG1lbnQoCisgICAgICAgICAgICAgICAgbVN0YXRlLCAwLCB2azo6UGFja2VkQXR0YWNobWVudElu
ZGV4KDApLCBpbnZhbGlkYXRlQXJlYSk7CisgICAgICAgIH0KKworICAgICAgICBBTkdMRV9UUlko
CisgICAgICAgICAgICBmbHVzaENvbW1hbmRzQW5kRW5kUmVuZGVyUGFzcyhSZW5kZXJQYXNzQ2xv
c3VyZVJlYXNvbjo6QWxyZWFkeVNwZWNpZmllZEVsc2V3aGVyZSkpOworCisgICAgICAgIC8vIFJl
bW92ZSB0aGUgcmVzb2x2ZSBhdHRhY2htZW50IGZyb20gdGhlIGRyYXcgZnJhbWVidWZmZXIuCisg
ICAgICAgIGRyYXdGcmFtZWJ1ZmZlclZrLT5yZW1vdmVDb2xvclJlc29sdmVBdHRhY2htZW50KDAp
OworCisgICAgICAgICppbWFnZVJlc29sdmVkID0gdHJ1ZTsKKworICAgICAgICBtUGVyZkNvdW50
ZXJzLnN3YXBjaGFpblJlc29sdmVJblN1YnBhc3MrKzsKKyAgICB9CisKKyAgICByZXR1cm4gYW5n
bGU6OlJlc3VsdDo6Q29udGludWU7CiB9CiAKIGdsOjpHcmFwaGljc1Jlc2V0U3RhdHVzIENvbnRl
eHRWazo6Z2V0UmVzZXRTdGF0dXMoKQpAQCAtMzc5Myw3ICszOTM0LDcgQEAgdm9pZCBDb250ZXh0
Vms6OnVwZGF0ZUNvbG9yTWFza3MoKQogewogICAgIGNvbnN0IGdsOjpCbGVuZFN0YXRlRXh0ICZi
bGVuZFN0YXRlRXh0ID0gbVN0YXRlLmdldEJsZW5kU3RhdGVFeHQoKTsKIAotICAgIG1DbGVhckNv
bG9yTWFza3MgPSBibGVuZFN0YXRlRXh0Lm1Db2xvck1hc2s7CisgICAgbUNsZWFyQ29sb3JNYXNr
cyA9IGJsZW5kU3RhdGVFeHQuZ2V0Q29sb3JNYXNrQml0cygpOwogCiAgICAgRnJhbWVidWZmZXJW
ayAqZnJhbWVidWZmZXJWayA9IHZrOjpHZXRJbXBsKG1TdGF0ZS5nZXREcmF3RnJhbWVidWZmZXIo
KSk7CiAgICAgbUdyYXBoaWNzUGlwZWxpbmVEZXNjLT51cGRhdGVDb2xvcldyaXRlTWFza3MoJm1H
cmFwaGljc1BpcGVsaW5lVHJhbnNpdGlvbiwgbUNsZWFyQ29sb3JNYXNrcywKQEAgLTQwMjMsNiAr
NDE2NCwyMSBAQCB2b2lkIENvbnRleHRWazo6dXBkYXRlUmFzdGVyaXplckRpc2NhcmRFbmFibGVk
KGJvb2wgaXNQcmltaXRpdmVzR2VuZXJhdGVkUXVlcnlBYwogICAgIH0KIH0KIAordm9pZCBDb250
ZXh0Vms6OnVwZGF0ZUFkdmFuY2VkQmxlbmRFcXVhdGlvbnMoY29uc3QgZ2w6OlByb2dyYW1FeGVj
dXRhYmxlICpleGVjdXRhYmxlKQoreworICAgIGlmICghZ2V0RmVhdHVyZXMoKS5lbXVsYXRlQWR2
YW5jZWRCbGVuZEVxdWF0aW9ucy5lbmFibGVkIHx8IGV4ZWN1dGFibGUgPT0gbnVsbHB0cikKKyAg
ICB7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBJZiBhZHZhbmNlZCBibGVuZCBl
cXVhdGlvbnMgaXMgZW11bGF0ZWQgYW5kIHRoZSBwcm9ncmFtIHVzZXMgYWR2YW5jZWQgZXF1YXRp
b25zLCB1cGRhdGUgdGhlCisgICAgLy8gZHJpdmVyIHVuaWZvcm1zIHRvIHBhc3MgdGhlIGVxdWF0
aW9uIHRvIHRoZSBzaGFkZXIuCisgICAgaWYgKGV4ZWN1dGFibGUtPmdldEFkdmFuY2VkQmxlbmRF
cXVhdGlvbnMoKS5hbnkoKSkKKyAgICB7CisgICAgICAgIGludmFsaWRhdGVHcmFwaGljc0RyaXZl
clVuaWZvcm1zKCk7CisgICAgfQorfQorCiB2b2lkIENvbnRleHRWazo6dXBkYXRlRGl0aGVyKCkK
IHsKICAgICBpZiAoIWdldEZlYXR1cmVzKCkuZW11bGF0ZURpdGhlcmluZy5lbmFibGVkKQpAQCAt
NDE0Nyw5ICs0MzAzLDkgQEAgYW5nbGU6OlJlc3VsdCBDb250ZXh0Vms6OmludmFsaWRhdGVQcm9n
cmFtRXhlY3V0YWJsZUhlbHBlcihjb25zdCBnbDo6Q29udGV4dCAqY28KICAgICAgICAgQVNTRVJU
KGV4ZWN1dGFibGVWayk7CiAgICAgICAgIGV4ZWN1dGFibGVWay0+dXBkYXRlRWFybHlGcmFnbWVu
dFRlc3RzT3B0aW1pemF0aW9uKHRoaXMsICpleGVjdXRhYmxlKTsKIAotICAgICAgICBpZiAobUxh
c3RQcm9ncmFtVXNlc0ZyYW1lYnVmZmVyRmV0Y2ggIT0gZXhlY3V0YWJsZS0+dXNlc0ZyYW1lYnVm
ZmVyRmV0Y2goKSkKKyAgICAgICAgaWYgKGdldERyYXdGcmFtZWJ1ZmZlcigpLT5nZXRSZW5kZXJQ
YXNzRGVzYygpLmdldEZyYW1lYnVmZmVyRmV0Y2hNb2RlKCkgIT0KKyAgICAgICAgICAgIGV4ZWN1
dGFibGUtPnVzZXNGcmFtZWJ1ZmZlckZldGNoKCkpCiAgICAgICAgIHsKLSAgICAgICAgICAgIG1M
YXN0UHJvZ3JhbVVzZXNGcmFtZWJ1ZmZlckZldGNoID0gZXhlY3V0YWJsZS0+dXNlc0ZyYW1lYnVm
ZmVyRmV0Y2goKTsKICAgICAgICAgICAgIEFOR0xFX1RSWSgKICAgICAgICAgICAgICAgICBmbHVz
aENvbW1hbmRzQW5kRW5kUmVuZGVyUGFzcyhSZW5kZXJQYXNzQ2xvc3VyZVJlYXNvbjo6RnJhbWVi
dWZmZXJGZXRjaEVtdWxhdGlvbikpOwogCkBAIC00MTk5LDggKzQzNTUsOCBAQCBhbmdsZTo6UmVz
dWx0IENvbnRleHRWazo6c3luY1N0YXRlKGNvbnN0IGdsOjpDb250ZXh0ICpjb250ZXh0LAogICAg
ICAgICAgICAgICAgIHVwZGF0ZURlcHRoUmFuZ2UoZ2xTdGF0ZS5nZXROZWFyUGxhbmUoKSwgZ2xT
dGF0ZS5nZXRGYXJQbGFuZSgpKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAg
IGNhc2UgZ2w6OlN0YXRlOjpESVJUWV9CSVRfQkxFTkRfRU5BQkxFRDoKLSAgICAgICAgICAgICAg
ICBtR3JhcGhpY3NQaXBlbGluZURlc2MtPnVwZGF0ZUJsZW5kRW5hYmxlZCgmbUdyYXBoaWNzUGlw
ZWxpbmVUcmFuc2l0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGdsU3RhdGUuZ2V0QmxlbmRTdGF0ZUV4dCgpLm1FbmFibGVkTWFz
ayk7CisgICAgICAgICAgICAgICAgbUdyYXBoaWNzUGlwZWxpbmVEZXNjLT51cGRhdGVCbGVuZEVu
YWJsZWQoCisgICAgICAgICAgICAgICAgICAgICZtR3JhcGhpY3NQaXBlbGluZVRyYW5zaXRpb24s
IGdsU3RhdGUuZ2V0QmxlbmRTdGF0ZUV4dCgpLmdldEVuYWJsZWRNYXNrKCkpOwogICAgICAgICAg
ICAgICAgIHVwZGF0ZURpdGhlcigpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg
ICAgY2FzZSBnbDo6U3RhdGU6OkRJUlRZX0JJVF9CTEVORF9DT0xPUjoKQEAgLTQyMTYsNiArNDM3
Miw3IEBAIGFuZ2xlOjpSZXN1bHQgQ29udGV4dFZrOjpzeW5jU3RhdGUoY29uc3QgZ2w6OkNvbnRl
eHQgKmNvbnRleHQsCiAgICAgICAgICAgICAgICAgbUdyYXBoaWNzUGlwZWxpbmVEZXNjLT51cGRh
dGVCbGVuZEVxdWF0aW9ucygKICAgICAgICAgICAgICAgICAgICAgJm1HcmFwaGljc1BpcGVsaW5l
VHJhbnNpdGlvbiwgZ2xTdGF0ZS5nZXRCbGVuZFN0YXRlRXh0KCksCiAgICAgICAgICAgICAgICAg
ICAgIGRyYXdGcmFtZWJ1ZmZlclZrLT5nZXRTdGF0ZSgpLmdldENvbG9yQXR0YWNobWVudHNNYXNr
KCkpOworICAgICAgICAgICAgICAgIHVwZGF0ZUFkdmFuY2VkQmxlbmRFcXVhdGlvbnMocHJvZ3Jh
bUV4ZWN1dGFibGUpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBn
bDo6U3RhdGU6OkRJUlRZX0JJVF9DT0xPUl9NQVNLOgogICAgICAgICAgICAgICAgIHVwZGF0ZUNv
bG9yTWFza3MoKTsKQEAgLTQ0NDIsNiArNDU5OSw3IEBAIGFuZ2xlOjpSZXN1bHQgQ29udGV4dFZr
OjpzeW5jU3RhdGUoY29uc3QgZ2w6OkNvbnRleHQgKmNvbnRleHQsCiAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgQVNTRVJUKHByb2dyYW1FeGVjdXRhYmxlKTsKICAgICAgICAgICAgICAg
ICBpbnZhbGlkYXRlQ3VycmVudERlZmF1bHRVbmlmb3JtcygpOworICAgICAgICAgICAgICAgIHVw
ZGF0ZUFkdmFuY2VkQmxlbmRFcXVhdGlvbnMocHJvZ3JhbUV4ZWN1dGFibGUpOwogICAgICAgICAg
ICAgICAgIGdldEV4ZWN1dGFibGUoKS0+b25Qcm9ncmFtQmluZCgqcHJvZ3JhbUV4ZWN1dGFibGUp
OwogICAgICAgICAgICAgICAgIHN0YXRpY19hc3NlcnQoCiAgICAgICAgICAgICAgICAgICAgIGds
OjpTdGF0ZTo6RElSVFlfQklUX1RFWFRVUkVfQklORElOR1MgPiBnbDo6U3RhdGU6OkRJUlRZX0JJ
VF9QUk9HUkFNX0VYRUNVVEFCTEUsCkBAIC00NTU0LDYgKzQ3MTIsOSBAQCBhbmdsZTo6UmVzdWx0
IENvbnRleHRWazo6c3luY1N0YXRlKGNvbnN0IGdsOjpDb250ZXh0ICpjb250ZXh0LAogICAgICAg
ICAgICAgICAgICAgICAgICAgY2FzZSBnbDo6U3RhdGU6OkV4dGVuZGVkRGlydHlCaXRUeXBlOjoK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFWFRFTkRFRF9ESVJUWV9CSVRfU0hBREVSX0RF
UklWQVRJVkVfSElOVDoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGNhc2UgZ2w6OlN0YXRlOjpFeHRlbmRlZERpcnR5Qml0VHlwZTo6
RVhURU5ERURfRElSVFlfQklUX1NIQURJTkdfUkFURToKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBtR3JhcGhpY3NEaXJ0eUJpdHMuc2V0KERJUlRZX0JJVF9TSEFESU5HX1JBVEUpOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICAg
ZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVTlJFQUNIQUJMRSgpOwogICAg
ICAgICAgICAgICAgICAgICB9CkBAIC01MzYwLDcgKzU1MjEsMTUgQEAgdm9pZCBDb250ZXh0Vms6
OmZyYW1lYnVmZmVyRmV0Y2hCYXJyaWVyKCkKIAogdm9pZCBDb250ZXh0Vms6OmJsZW5kQmFycmll
cigpCiB7Ci0gICAgbUdyYXBoaWNzRGlydHlCaXRzLnNldChESVJUWV9CSVRfQkxFTkRfQkFSUklF
Uik7CisgICAgaWYgKGdldEZlYXR1cmVzKCkuZW11bGF0ZUFkdmFuY2VkQmxlbmRFcXVhdGlvbnMu
ZW5hYmxlZCkKKyAgICB7CisgICAgICAgIC8vIFdoZW4gZW11bGF0ZWQsIGFkdmFuY2VkIGJsZW5k
IGlzIGltcGxlbWVudGVkIHRocm91Z2ggZnJhbWVidWZmZXIgZmV0Y2guCisgICAgICAgIGZyYW1l
YnVmZmVyRmV0Y2hCYXJyaWVyKCk7CisgICAgfQorICAgIGVsc2UKKyAgICB7CisgICAgICAgIG1H
cmFwaGljc0RpcnR5Qml0cy5zZXQoRElSVFlfQklUX0JMRU5EX0JBUlJJRVIpOworICAgIH0KIH0K
IAogYW5nbGU6OlJlc3VsdCBDb250ZXh0Vms6OmFjcXVpcmVUZXh0dXJlcyhjb25zdCBnbDo6Q29u
dGV4dCAqY29udGV4dCwKQEAgLTU1ODksMTIgKzU3NTgsMjUgQEAgYW5nbGU6OlJlc3VsdCBDb250
ZXh0Vms6OmhhbmRsZURpcnR5R3JhcGhpY3NEcml2ZXJVbmlmb3JtcyhEaXJ0eUJpdHM6Okl0ZXJh
dG9yICoKICAgICBmbG9hdCBkZXB0aFJhbmdlRGlmZiA9IGRlcHRoUmFuZ2VGYXIgLSBkZXB0aFJh
bmdlTmVhcjsKICAgICBpbnQzMl90IG51bVNhbXBsZXMgICA9IGRyYXdGcmFtZWJ1ZmZlclZrLT5n
ZXRTYW1wbGVzKCk7CiAKKyAgICB1aW50MzJfdCBhZHZhbmNlZEJsZW5kRXF1YXRpb24gPSAwOwor
ICAgIGlmIChnZXRGZWF0dXJlcygpLmVtdWxhdGVBZHZhbmNlZEJsZW5kRXF1YXRpb25zLmVuYWJs
ZWQpCisgICAgeworICAgICAgICAvLyBQYXNzIHRoZSBhZHZhbmNlZCBibGVuZCBlcXVhdGlvbiB0
byBzaGFkZXIgYXMtaXMuICBJZiB0aGUgZXF1YXRpb24gaXMgbm90IG9uZSBvZiB0aGUKKyAgICAg
ICAgLy8gYWR2YW5jZWQgb25lcywgMCBpcyBleHBlY3RlZC4KKyAgICAgICAgY29uc3QgZ2w6OkJs
ZW5kU3RhdGVFeHQgJmJsZW5kU3RhdGVFeHQgPSBtU3RhdGUuZ2V0QmxlbmRTdGF0ZUV4dCgpOwor
ICAgICAgICBpZiAoYmxlbmRTdGF0ZUV4dC5nZXRVc2VzQWR2YW5jZWRCbGVuZEVxdWF0aW9uTWFz
aygpLnRlc3QoMCkpCisgICAgICAgIHsKKyAgICAgICAgICAgIGFkdmFuY2VkQmxlbmRFcXVhdGlv
biA9IHN0YXRpY19jYXN0PHVpbnQzMl90PihnbDo6RnJvbUdMZW51bTxnbDo6QmxlbmRFcXVhdGlv
blR5cGU+KAorICAgICAgICAgICAgICAgIGdldFN0YXRlKCkuZ2V0QmxlbmRTdGF0ZUV4dCgpLmdl
dEVxdWF0aW9uQ29sb3JJbmRleGVkKDApKSk7CisgICAgICAgIH0KKyAgICB9CisKICAgICAvLyBD
b3B5IGFuZCBmbHVzaCB0byB0aGUgZGV2aWNlLgogICAgICpkcml2ZXJVbmlmb3JtcyA9IHsKICAg
ICAgICAge3N0YXRpY19jYXN0PGZsb2F0PihnbFZpZXdwb3J0LngpLCBzdGF0aWNfY2FzdDxmbG9h
dD4oZ2xWaWV3cG9ydC55KSwKICAgICAgICAgIHN0YXRpY19jYXN0PGZsb2F0PihnbFZpZXdwb3J0
LndpZHRoKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KGdsVmlld3BvcnQuaGVpZ2h0KX0sCiAgICAgICAg
IG1TdGF0ZS5nZXRFbmFibGVkQ2xpcERpc3RhbmNlcygpLmJpdHMoKSwKLSAgICAgICAgMCwKKyAg
ICAgICAgYWR2YW5jZWRCbGVuZEVxdWF0aW9uLAogICAgICAgICBzdGF0aWNfY2FzdDxpbnQzMl90
PihtWGZiVmVydGV4Q291bnRQZXJJbnN0YW5jZSksCiAgICAgICAgIG51bVNhbXBsZXMsCiAgICAg
ICAgIHt9LApAQCAtNTYxNiw3ICs1Nzk4LDggQEAgYW5nbGU6OlJlc3VsdCBDb250ZXh0Vms6Omhh
bmRsZURpcnR5R3JhcGhpY3NEcml2ZXJVbmlmb3JtcyhEaXJ0eUJpdHM6Okl0ZXJhdG9yICoKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHJpdmVy
VW5pZm9ybXMtPmFjYkJ1ZmZlck9mZnNldHMuc2l6ZSgpKTsKICAgICB9CiAKLSAgICByZXR1cm4g
dXBkYXRlRHJpdmVyVW5pZm9ybXNEZXNjcmlwdG9yU2V0KG5ld0J1ZmZlciwgZHJpdmVyVW5pZm9y
bVNpemUsIFBpcGVsaW5lVHlwZTo6R3JhcGhpY3MpOworICAgIHJldHVybiB1cGRhdGVEcml2ZXJV
bmlmb3Jtc0Rlc2NyaXB0b3JTZXQoJm1SZW5kZXJQYXNzQ29tbWFuZHMtPmdldFJlc291cmNlVXNl
TGlzdCgpLCBuZXdCdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBkcml2ZXJVbmlmb3JtU2l6ZSwgUGlwZWxpbmVUeXBlOjpHcmFwaGljcyk7CiB9CiAK
IGFuZ2xlOjpSZXN1bHQgQ29udGV4dFZrOjpoYW5kbGVEaXJ0eUNvbXB1dGVEcml2ZXJVbmlmb3Jt
cygpCkBAIC01NjM3LDEyICs1ODIwLDEzIEBAIGFuZ2xlOjpSZXN1bHQgQ29udGV4dFZrOjpoYW5k
bGVEaXJ0eUNvbXB1dGVEcml2ZXJVbmlmb3JtcygpCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRyaXZlclVuaWZvcm1zLT5hY2JCdWZmZXJPZmZz
ZXRzLnNpemUoKSk7CiAgICAgfQogCi0gICAgcmV0dXJuIHVwZGF0ZURyaXZlclVuaWZvcm1zRGVz
Y3JpcHRvclNldChuZXdCdWZmZXIsIHNpemVvZihDb21wdXRlRHJpdmVyVW5pZm9ybXMpLAorICAg
IHJldHVybiB1cGRhdGVEcml2ZXJVbmlmb3Jtc0Rlc2NyaXB0b3JTZXQoJm1PdXRzaWRlUmVuZGVy
UGFzc0NvbW1hbmRzLT5nZXRSZXNvdXJjZVVzZUxpc3QoKSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG5ld0J1ZmZlciwgc2l6ZW9mKENvbXB1dGVEcml2ZXJV
bmlmb3JtcyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ
aXBlbGluZVR5cGU6OkNvbXB1dGUpOwogfQogCi10ZW1wbGF0ZSA8dHlwZW5hbWUgQ29tbWFuZEJ1
ZmZlclQ+Ci12b2lkIENvbnRleHRWazo6aGFuZGxlRGlydHlEcml2ZXJVbmlmb3Jtc0JpbmRpbmdJ
bXBsKENvbW1hbmRCdWZmZXJUICpjb21tYW5kQnVmZmVyLAordGVtcGxhdGUgPHR5cGVuYW1lIENv
bW1hbmRCdWZmZXJIZWxwZXJUPgordm9pZCBDb250ZXh0Vms6OmhhbmRsZURpcnR5RHJpdmVyVW5p
Zm9ybXNCaW5kaW5nSW1wbChDb21tYW5kQnVmZmVySGVscGVyVCAqY29tbWFuZEJ1ZmZlckhlbHBl
ciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
VmtQaXBlbGluZUJpbmRQb2ludCBiaW5kUG9pbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIERyaXZlclVuaWZvcm1zRGVzY3JpcHRvclNldCAq
ZHJpdmVyVW5pZm9ybXMpCiB7CkBAIC01NjUyLDE1ICs1ODM2LDE2IEBAIHZvaWQgQ29udGV4dFZr
OjpoYW5kbGVEaXJ0eURyaXZlclVuaWZvcm1zQmluZGluZ0ltcGwoQ29tbWFuZEJ1ZmZlclQgKmNv
bW1hbmRCdWZmCiAgICAgLy8gdXBkYXRlZCBjb3JyZWN0bHkuCiAgICAgaWYgKCFkcml2ZXJVbmlm
b3Jtcy0+ZGVzY3JpcHRvclBvb2xCaW5kaW5nLmdldCgpLnVzZWRJblJlY29yZGVkQ29tbWFuZHMo
KSkKICAgICB7Ci0gICAgICAgIGRyaXZlclVuaWZvcm1zLT5kZXNjcmlwdG9yUG9vbEJpbmRpbmcu
Z2V0KCkucmV0YWluKCZtUmVzb3VyY2VVc2VMaXN0KTsKKyAgICAgICAgZHJpdmVyVW5pZm9ybXMt
PmRlc2NyaXB0b3JQb29sQmluZGluZy5nZXQoKS5yZXRhaW4oCisgICAgICAgICAgICAmY29tbWFu
ZEJ1ZmZlckhlbHBlci0+Z2V0UmVzb3VyY2VVc2VMaXN0KCkpOwogICAgIH0KIAogICAgIFByb2dy
YW1FeGVjdXRhYmxlVmsgKmV4ZWN1dGFibGVWayA9IGdldEV4ZWN1dGFibGUoKTsKICAgICBjb25z
dCB1aW50MzJfdCBkeW5hbWljT2Zmc2V0ID0KICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDMyX3Q+
KGRyaXZlclVuaWZvcm1zLT5jdXJyZW50QnVmZmVyLT5nZXRPZmZzZXQoKSk7Ci0gICAgY29tbWFu
ZEJ1ZmZlci0+YmluZERlc2NyaXB0b3JTZXRzKGV4ZWN1dGFibGVWay0+Z2V0UGlwZWxpbmVMYXlv
dXQoKSwgYmluZFBvaW50LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBE
ZXNjcmlwdG9yU2V0SW5kZXg6OkludGVybmFsLCAxLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAmZHJpdmVyVW5pZm9ybXMtPmRlc2NyaXB0b3JTZXQsIDEsICZkeW5hbWlj
T2Zmc2V0KTsKKyAgICBjb21tYW5kQnVmZmVySGVscGVyLT5nZXRDb21tYW5kQnVmZmVyKCkuYmlu
ZERlc2NyaXB0b3JTZXRzKAorICAgICAgICBleGVjdXRhYmxlVmstPmdldFBpcGVsaW5lTGF5b3V0
KCksIGJpbmRQb2ludCwgRGVzY3JpcHRvclNldEluZGV4OjpJbnRlcm5hbCwgMSwKKyAgICAgICAg
JmRyaXZlclVuaWZvcm1zLT5kZXNjcmlwdG9yU2V0LCAxLCAmZHluYW1pY09mZnNldCk7CiB9CiAK
IGFuZ2xlOjpSZXN1bHQgQ29udGV4dFZrOjpoYW5kbGVEaXJ0eUdyYXBoaWNzRHJpdmVyVW5pZm9y
bXNCaW5kaW5nKApAQCAtNTY2OCw3ICs1ODUzLDcgQEAgYW5nbGU6OlJlc3VsdCBDb250ZXh0Vms6
OmhhbmRsZURpcnR5R3JhcGhpY3NEcml2ZXJVbmlmb3Jtc0JpbmRpbmcoCiAgICAgRGlydHlCaXRz
IGRpcnR5Qml0TWFzaykKIHsKICAgICAvLyBCaW5kIHRoZSBkcml2ZXIgZGVzY3JpcHRvciBzZXQu
Ci0gICAgaGFuZGxlRGlydHlEcml2ZXJVbmlmb3Jtc0JpbmRpbmdJbXBsKG1SZW5kZXJQYXNzQ29t
bWFuZEJ1ZmZlciwgVktfUElQRUxJTkVfQklORF9QT0lOVF9HUkFQSElDUywKKyAgICBoYW5kbGVE
aXJ0eURyaXZlclVuaWZvcm1zQmluZGluZ0ltcGwobVJlbmRlclBhc3NDb21tYW5kcywgVktfUElQ
RUxJTkVfQklORF9QT0lOVF9HUkFQSElDUywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgJm1Ecml2ZXJVbmlmb3Jtc1tQaXBlbGluZVR5cGU6OkdyYXBoaWNzXSk7CiAg
ICAgcmV0dXJuIGFuZ2xlOjpSZXN1bHQ6OkNvbnRpbnVlOwogfQpAQCAtNTY3Niw4ICs1ODYxLDcg
QEAgYW5nbGU6OlJlc3VsdCBDb250ZXh0Vms6OmhhbmRsZURpcnR5R3JhcGhpY3NEcml2ZXJVbmlm
b3Jtc0JpbmRpbmcoCiBhbmdsZTo6UmVzdWx0IENvbnRleHRWazo6aGFuZGxlRGlydHlDb21wdXRl
RHJpdmVyVW5pZm9ybXNCaW5kaW5nKCkKIHsKICAgICAvLyBCaW5kIHRoZSBkcml2ZXIgZGVzY3Jp
cHRvciBzZXQuCi0gICAgaGFuZGxlRGlydHlEcml2ZXJVbmlmb3Jtc0JpbmRpbmdJbXBsKCZtT3V0
c2lkZVJlbmRlclBhc3NDb21tYW5kcy0+Z2V0Q29tbWFuZEJ1ZmZlcigpLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWS19QSVBFTElORV9CSU5EX1BPSU5UX0NPTVBV
VEUsCisgICAgaGFuZGxlRGlydHlEcml2ZXJVbmlmb3Jtc0JpbmRpbmdJbXBsKG1PdXRzaWRlUmVu
ZGVyUGFzc0NvbW1hbmRzLCBWS19QSVBFTElORV9CSU5EX1BPSU5UX0NPTVBVVEUsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZtRHJpdmVyVW5pZm9ybXNbUGlwZWxp
bmVUeXBlOjpDb21wdXRlXSk7CiAgICAgcmV0dXJuIGFuZ2xlOjpSZXN1bHQ6OkNvbnRpbnVlOwog
fQpAQCAtNTY4OSw3ICs1ODczLDcgQEAgYW5nbGU6OlJlc3VsdCBDb250ZXh0Vms6OmFsbG9jYXRl
RHJpdmVyVW5pZm9ybXMoc2l6ZV90IGRyaXZlclVuaWZvcm1zU2l6ZSwKIHsKICAgICAvLyBBbGxv
Y2F0ZSBhIG5ldyByZWdpb24gaW4gdGhlIGR5bmFtaWMgYnVmZmVyLiBUaGUgYWxsb2NhdGUgY2Fs
bCBtYXkgcHV0IGJ1ZmZlciBpbnRvIGR5bmFtaWMKICAgICAvLyBidWZmZXIncyBtSW5mbGlnaHRC
dWZmZXJzLiBEdXJpbmcgY29tbWFuZCBzdWJtaXNzaW9uIHRpbWUsIHRoZXNlIGluLWZsaWdodCBi
dWZmZXJzIGFyZSBhZGRlZAotICAgIC8vIGludG8gY29udGV4dCdzIG1SZXNvdXJjZVVzZUxpc3Qg
d2hpY2ggd2lsbCBlbnN1cmUgdGhleSBnZXQgdGFnZ2VkIHdpdGggcXVldWUgc2VyaWFsIG51bWJl
cgorICAgIC8vIGludG8gc2hhcmVncm91cCdzIG1SZXNvdXJjZVVzZUxpc3Qgd2hpY2ggd2lsbCBl
bnN1cmUgdGhleSBnZXQgdGFnZ2VkIHdpdGggcXVldWUgc2VyaWFsIG51bWJlcgogICAgIC8vIGJl
Zm9yZSBtb3ZpbmcgdGhlbSBpbnRvIHRoZSBmcmVlIGxpc3QuCiAgICAgQU5HTEVfVFJZKGRyaXZl
clVuaWZvcm1zLT5keW5hbWljQnVmZmVyLmFsbG9jYXRlKHRoaXMsIGRyaXZlclVuaWZvcm1zU2l6
ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
JmRyaXZlclVuaWZvcm1zLT5jdXJyZW50QnVmZmVyLCBuZXdCdWZmZXJPdXQpKTsKQEAgLTU2OTks
NyArNTg4Myw4IEBAIGFuZ2xlOjpSZXN1bHQgQ29udGV4dFZrOjphbGxvY2F0ZURyaXZlclVuaWZv
cm1zKHNpemVfdCBkcml2ZXJVbmlmb3Jtc1NpemUsCiAgICAgcmV0dXJuIGFuZ2xlOjpSZXN1bHQ6
OkNvbnRpbnVlOwogfQogCi1hbmdsZTo6UmVzdWx0IENvbnRleHRWazo6dXBkYXRlRHJpdmVyVW5p
Zm9ybXNEZXNjcmlwdG9yU2V0KGJvb2wgbmV3QnVmZmVyLAorYW5nbGU6OlJlc3VsdCBDb250ZXh0
Vms6OnVwZGF0ZURyaXZlclVuaWZvcm1zRGVzY3JpcHRvclNldCh2azo6UmVzb3VyY2VVc2VMaXN0
ICpyZXNvdXJjZVVzZUxpc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGJvb2wgbmV3QnVmZmVyLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgZHJpdmVyVW5p
Zm9ybXNTaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBQaXBlbGluZVR5cGUgcGlwZWxpbmVUeXBlKQogewpAQCAtNTcxOSwxNiAr
NTkwNCwxNSBAQCBhbmdsZTo6UmVzdWx0IENvbnRleHRWazo6dXBkYXRlRHJpdmVyVW5pZm9ybXNE
ZXNjcmlwdG9yU2V0KGJvb2wgbmV3QnVmZmVyLAogICAgIHsKICAgICAgICAgLy8gVGhlIGRlc2Ny
aXB0b3IgcG9vbCB0aGF0IHRoaXMgZGVzY3JpcHRvciBzZXQgd2FzIGFsbG9jYXRlZCBmcm9tIG5l
ZWRzIHRvIGJlIHJldGFpbmVkIGVhY2gKICAgICAgICAgLy8gdGltZSB0aGUgZGVzY3JpcHRvciBz
ZXQgaXMgdXNlZCBpbiBhIG5ldyBjb21tYW5kLgotICAgICAgICBkcml2ZXJVbmlmb3Jtcy5kZXNj
cmlwdG9yUG9vbEJpbmRpbmcuZ2V0KCkucmV0YWluKCZtUmVzb3VyY2VVc2VMaXN0KTsKKyAgICAg
ICAgZHJpdmVyVW5pZm9ybXMuZGVzY3JpcHRvclBvb2xCaW5kaW5nLmdldCgpLnJldGFpbihyZXNv
dXJjZVVzZUxpc3QpOwogICAgICAgICByZXR1cm4gYW5nbGU6OlJlc3VsdDo6Q29udGludWU7CiAg
ICAgfQogCiAgICAgLy8gQWxsb2NhdGUgYSBuZXcgZGVzY3JpcHRvciBzZXQuCiAgICAgYm9vbCBu
ZXdQb29sQWxsb2NhdGVkOwogICAgIEFOR0xFX1RSWShtRHJpdmVyVW5pZm9ybXNEZXNjcmlwdG9y
UG9vbHNbcGlwZWxpbmVUeXBlXS5hbGxvY2F0ZVNldHNBbmRHZXRJbmZvKAotICAgICAgICB0aGlz
LCAmbVJlc291cmNlVXNlTGlzdCwgZHJpdmVyVW5pZm9ybXMuZGVzY3JpcHRvclNldExheW91dC5n
ZXQoKSwgMSwKKyAgICAgICAgdGhpcywgcmVzb3VyY2VVc2VMaXN0LCBkcml2ZXJVbmlmb3Jtcy5k
ZXNjcmlwdG9yU2V0TGF5b3V0LmdldCgpLCAxLAogICAgICAgICAmZHJpdmVyVW5pZm9ybXMuZGVz
Y3JpcHRvclBvb2xCaW5kaW5nLCAmZHJpdmVyVW5pZm9ybXMuZGVzY3JpcHRvclNldCwgJm5ld1Bv
b2xBbGxvY2F0ZWQpKTsKLSAgICBtQ29udGV4dFBlcmZDb3VudGVycy5kZXNjcmlwdG9yU2V0c0Fs
bG9jYXRlZFtwaXBlbGluZVR5cGVdKys7CiAKICAgICAvLyBDbGVhciBkZXNjcmlwdG9yIHNldCBj
YWNoZS4gSXQgbWF5IG5vIGxvbmdlciBiZSB2YWxpZC4KICAgICBpZiAobmV3UG9vbEFsbG9jYXRl
ZCkKQEAgLTU5NjksNyArNjE1Myw3IEBAIGFuZ2xlOjpSZXN1bHQgQ29udGV4dFZrOjp1cGRhdGVB
Y3RpdmVJbWFnZXMoQ29tbWFuZEJ1ZmZlckhlbHBlclQgKmNvbW1hbmRCdWZmZXJICiAKICAgICAg
ICAgICAgIE9uSW1hZ2VCdWZmZXJXcml0ZSh0aGlzLCBidWZmZXJWaywgc2hhZGVyU3RhZ2VzLCBj
b21tYW5kQnVmZmVySGVscGVyKTsKIAotICAgICAgICAgICAgdGV4dHVyZVZrLT5yZXRhaW5CdWZm
ZXJWaWV3cygmbVJlc291cmNlVXNlTGlzdCk7CisgICAgICAgICAgICB0ZXh0dXJlVmstPnJldGFp
bkJ1ZmZlclZpZXdzKCZjb21tYW5kQnVmZmVySGVscGVyLT5nZXRSZXNvdXJjZVVzZUxpc3QoKSk7
CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogCkBAIC02MDQ1LDE1ICs2MjI5LDE1
IEBAIGFuZ2xlOjpSZXN1bHQgQ29udGV4dFZrOjpmbHVzaEFuZEdldFNlcmlhbChjb25zdCB2azo6
U2VtYXBob3JlICpzaWduYWxTZW1hcGhvcmUsCiAKICAgICBpZiAobUdwdUV2ZW50c0VuYWJsZWQp
CiAgICAgewotICAgICAgICBFdmVudE5hbWUgZXZlbnROYW1lID0gR2V0VHJhY2VFdmVudE5hbWUo
IlByaW1hcnkiLCBtUGVyZkNvdW50ZXJzLnByaW1hcnlCdWZmZXJzKTsKKyAgICAgICAgRXZlbnRO
YW1lIGV2ZW50TmFtZSA9IEdldFRyYWNlRXZlbnROYW1lKCJQcmltYXJ5IiwgbVByaW1hcnlCdWZm
ZXJFdmVudENvdW50ZXIpOwogICAgICAgICBBTkdMRV9UUlkodHJhY2VHcHVFdmVudCgmbU91dHNp
ZGVSZW5kZXJQYXNzQ29tbWFuZHMtPmdldENvbW1hbmRCdWZmZXIoKSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgVFJBQ0VfRVZFTlRfUEhBU0VfRU5ELCBldmVudE5hbWUpKTsKICAg
ICB9CiAgICAgQU5HTEVfVFJZKGZsdXNoT3V0c2lkZVJlbmRlclBhc3NDb21tYW5kcygpKTsKIAot
ICAgIC8vIFdlIG11c3QgYWRkIHRoZSBwZXIgY29udGV4dCBkeW5hbWljIGJ1ZmZlcnMgaW50byBt
UmVzb3VyY2VVc2VMaXN0IGJlZm9yZSBzdWJtaXNzaW9uIHNvIHRoYXQKKyAgICAvLyBXZSBtdXN0
IGFkZCB0aGUgcGVyIGNvbnRleHQgZHluYW1pYyBidWZmZXJzIGludG8gcmVzb3VyY2VVc2VMaXN0
IGJlZm9yZSBzdWJtaXNzaW9uIHNvIHRoYXQKICAgICAvLyB0aGV5IGdldCByZXRhaW5lZCBwcm9w
ZXJseSB1bnRpbCBHUFUgY29tcGxldGVzLiBXZSBkbyBub3QgYWRkIGN1cnJlbnQgYnVmZmVyIGlu
dG8KLSAgICAvLyBtUmVzb3VyY2VVc2VMaXN0IHNpbmNlIHRoZXkgbmV2ZXIgZ2V0IHJldXNlZCBv
ciBmcmVlZCB1bnRpbCBjb250ZXh0IGdldHMgZGVzdHJveWVkLCBhdCB3aGljaAorICAgIC8vIHJl
c291cmNlVXNlTGlzdCBzaW5jZSB0aGV5IG5ldmVyIGdldCByZXVzZWQgb3IgZnJlZWQgdW50aWwg
Y29udGV4dCBnZXRzIGRlc3Ryb3llZCwgYXQgd2hpY2gKICAgICAvLyB0aW1lIHdlIGFsd2F5cyB3
YWl0IGZvciBHUFUgdG8gZmluaXNoIGJlZm9yZSBkZXN0cm95aW5nIHRoZSBkeW5hbWljIGJ1ZmZl
cnMuCiAgICAgZm9yIChEcml2ZXJVbmlmb3Jtc0Rlc2NyaXB0b3JTZXQgJmRyaXZlclVuaWZvcm0g
OiBtRHJpdmVyVW5pZm9ybXMpCiAgICAgewpAQCAtNjA3MiwxOSArNjI1NiwxMiBAQCBhbmdsZTo6
UmVzdWx0IENvbnRleHRWazo6Zmx1c2hBbmRHZXRTZXJpYWwoY29uc3Qgdms6OlNlbWFwaG9yZSAq
c2lnbmFsU2VtYXBob3JlLAogCiAgICAgQU5HTEVfVFJZKHN1Ym1pdEZyYW1lKHNpZ25hbFNlbWFw
aG9yZSwgc3VibWl0U2VyaWFsT3V0KSk7CiAKLSAgICBtUGVyZkNvdW50ZXJzLnJlbmRlclBhc3Nl
cyAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMDsKLSAgICBtUGVyZkNvdW50ZXJzLndyaXRl
RGVzY3JpcHRvclNldHMgICAgICAgICAgICAgICAgICAgID0gMDsKLSAgICBtUGVyZkNvdW50ZXJz
LmZsdXNoZWRPdXRzaWRlUmVuZGVyUGFzc0NvbW1hbmRCdWZmZXJzID0gMDsKLSAgICBtUGVyZkNv
dW50ZXJzLnJlc29sdmVJbWFnZUNvbW1hbmRzICAgICAgICAgICAgICAgICAgID0gMDsKLQogICAg
IEFTU0VSVChtV2FpdFNlbWFwaG9yZXMuZW1wdHkoKSk7CiAgICAgQVNTRVJUKG1XYWl0U2VtYXBo
b3JlU3RhZ2VNYXNrcy5lbXB0eSgpKTsKIAotICAgIG1QZXJmQ291bnRlcnMucHJpbWFyeUJ1ZmZl
cnMrKzsKLQogICAgIGlmIChtR3B1RXZlbnRzRW5hYmxlZCkKICAgICB7Ci0gICAgICAgIEV2ZW50
TmFtZSBldmVudE5hbWUgPSBHZXRUcmFjZUV2ZW50TmFtZSgiUHJpbWFyeSIsIG1QZXJmQ291bnRl
cnMucHJpbWFyeUJ1ZmZlcnMpOworICAgICAgICBFdmVudE5hbWUgZXZlbnROYW1lID0gR2V0VHJh
Y2VFdmVudE5hbWUoIlByaW1hcnkiLCArK21QcmltYXJ5QnVmZmVyRXZlbnRDb3VudGVyKTsKICAg
ICAgICAgQU5HTEVfVFJZKHRyYWNlR3B1RXZlbnQoJm1PdXRzaWRlUmVuZGVyUGFzc0NvbW1hbmRz
LT5nZXRDb21tYW5kQnVmZmVyKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRS
QUNFX0VWRU5UX1BIQVNFX0JFR0lOLCBldmVudE5hbWUpKTsKICAgICB9CkBAIC02MDk0LDkgKzYy
NzEsOSBAQCBhbmdsZTo6UmVzdWx0IENvbnRleHRWazo6Zmx1c2hBbmRHZXRTZXJpYWwoY29uc3Qg
dms6OlNlbWFwaG9yZSAqc2lnbmFsU2VtYXBob3JlLAogICAgIGlmICgocmVuZGVyUGFzc0Nsb3N1
cmVSZWFzb24gPT0gUmVuZGVyUGFzc0Nsb3N1cmVSZWFzb246OkdMRmx1c2ggfHwKICAgICAgICAg
IHJlbmRlclBhc3NDbG9zdXJlUmVhc29uID09IFJlbmRlclBhc3NDbG9zdXJlUmVhc29uOjpHTEZp
bmlzaCB8fAogICAgICAgICAgcmVuZGVyUGFzc0Nsb3N1cmVSZWFzb24gPT0gUmVuZGVyUGFzc0Ns
b3N1cmVSZWFzb246OkVHTFN3YXBCdWZmZXJzKSAmJgotICAgICAgICBpc0R1ZUZvckJ1ZmZlclBv
b2xQcnVuZSgpKQorICAgICAgICBtU2hhcmVHcm91cFZrLT5pc0R1ZUZvckJ1ZmZlclBvb2xQcnVu
ZSgpKQogICAgIHsKLSAgICAgICAgcHJ1bmVEZWZhdWx0QnVmZmVyUG9vbHMoKTsKKyAgICAgICAg
bVNoYXJlR3JvdXBWay0+cHJ1bmVEZWZhdWx0QnVmZmVyUG9vbHMobVJlbmRlcmVyKTsKICAgICB9
CiAKICAgICByZXR1cm4gYW5nbGU6OlJlc3VsdDo6Q29udGludWU7CkBAIC02NDQ3LDYgKzY2MjQs
OSBAQCBhbmdsZTo6UmVzdWx0IENvbnRleHRWazo6Zmx1c2hDb21tYW5kc0FuZEVuZFJlbmRlclBh
c3NJbXBsKFF1ZXVlU3VibWl0VHlwZSBxdWV1ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtUmVuZGVyUGFzc0NvbW1hbmRzLT5nZXRBdHRhY2htZW50T3BzKCksICZyZW5kZXJQ
YXNzKSk7CiAKICAgICBmbHVzaERlc2NyaXB0b3JTZXRVcGRhdGVzKCk7CisKKyAgICBnZXRTaGFy
ZUdyb3VwVmsoKS0+YWNxdWlyZVJlc291cmNlVXNlTGlzdChzdGQ6Om1vdmUobVJlbmRlclBhc3ND
b21tYW5kcy0+Z2V0UmVzb3VyY2VVc2VMaXN0KCkpKTsKKwogICAgIEFOR0xFX1RSWShtUmVuZGVy
ZXItPmZsdXNoUmVuZGVyUGFzc0NvbW1hbmRzKHRoaXMsIGhhc1Byb3RlY3RlZENvbnRlbnQoKSwg
KnJlbmRlclBhc3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJm1SZW5kZXJQYXNzQ29tbWFuZHMpKTsKIApAQCAtNjYwMCw2ICs2NzgwLDEwIEBAIGFu
Z2xlOjpSZXN1bHQgQ29udGV4dFZrOjpmbHVzaE91dHNpZGVSZW5kZXJQYXNzQ29tbWFuZHMoKQog
ICAgIH0KIAogICAgIGZsdXNoRGVzY3JpcHRvclNldFVwZGF0ZXMoKTsKKworICAgIGdldFNoYXJl
R3JvdXBWaygpLT5hY3F1aXJlUmVzb3VyY2VVc2VMaXN0KAorICAgICAgICBzdGQ6Om1vdmUobU91
dHNpZGVSZW5kZXJQYXNzQ29tbWFuZHMtPmdldFJlc291cmNlVXNlTGlzdCgpKSk7CisKICAgICBB
TkdMRV9UUlkobVJlbmRlcmVyLT5mbHVzaE91dHNpZGVSUENvbW1hbmRzKHRoaXMsIGhhc1Byb3Rl
Y3RlZENvbnRlbnQoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICZtT3V0c2lkZVJlbmRlclBhc3NDb21tYW5kcykpOwogCkBAIC02NzcxLDcgKzY5NTUs
NyBAQCBhbmdsZTo6UmVzdWx0IENvbnRleHRWazo6aW5pdGlhbGl6ZU11bHRpc2FtcGxlVGV4dHVy
ZVRvQmxhY2soY29uc3QgZ2w6OkNvbnRleHQgKgogICAgIEFTU0VSVChnbFRleHR1cmUtPmdldFR5
cGUoKSA9PSBnbDo6VGV4dHVyZVR5cGU6Ol8yRE11bHRpc2FtcGxlKTsKICAgICBUZXh0dXJlVmsg
KnRleHR1cmVWayA9IHZrOjpHZXRJbXBsKGdsVGV4dHVyZSk7CiAKLSAgICByZXR1cm4gdGV4dHVy
ZVZrLT5pbml0aWFsaXplQ29udGVudHMoY29udGV4dCwgZ2w6OkltYWdlSW5kZXg6Ok1ha2UyRE11
bHRpc2FtcGxlKCkpOworICAgIHJldHVybiB0ZXh0dXJlVmstPmluaXRpYWxpemVDb250ZW50cyhj
b250ZXh0LCBHTF9OT05FLCBnbDo6SW1hZ2VJbmRleDo6TWFrZTJETXVsdGlzYW1wbGUoKSk7CiB9
CiAKIHZvaWQgQ29udGV4dFZrOjpvblByb2dyYW1FeGVjdXRhYmxlUmVzZXQoUHJvZ3JhbUV4ZWN1
dGFibGVWayAqZXhlY3V0YWJsZVZrKQpAQCAtNjg0MCw3ICs3MDI0LDcgQEAgYW5nbGU6OlJlc3Vs
dCBDb250ZXh0Vms6Om9uUmVzb3VyY2VBY2Nlc3MoY29uc3Qgdms6OkNvbW1hbmRCdWZmZXJBY2Nl
c3MgJmFjY2VzcykKIAogICAgICAgICBpbWFnZUFjY2Vzcy5pbWFnZS0+cmVjb3JkUmVhZEJhcnJp
ZXIodGhpcywgaW1hZ2VBY2Nlc3MuYXNwZWN0RmxhZ3MsIGltYWdlQWNjZXNzLmltYWdlTGF5b3V0
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tbWFuZEJ1
ZmZlcik7Ci0gICAgICAgIGltYWdlQWNjZXNzLmltYWdlLT5yZXRhaW4oJm1SZXNvdXJjZVVzZUxp
c3QpOworICAgICAgICBpbWFnZUFjY2Vzcy5pbWFnZS0+cmV0YWluKCZtT3V0c2lkZVJlbmRlclBh
c3NDb21tYW5kcy0+Z2V0UmVzb3VyY2VVc2VMaXN0KCkpOwogICAgIH0KIAogICAgIGZvciAoY29u
c3Qgdms6OkNvbW1hbmRCdWZmZXJJbWFnZVdyaXRlICZpbWFnZVdyaXRlIDogYWNjZXNzLmdldFdy
aXRlSW1hZ2VzKCkpCkBAIC02ODQ5LDcgKzcwMzMsNyBAQCBhbmdsZTo6UmVzdWx0IENvbnRleHRW
azo6b25SZXNvdXJjZUFjY2Vzcyhjb25zdCB2azo6Q29tbWFuZEJ1ZmZlckFjY2VzcyAmYWNjZXNz
KQogCiAgICAgICAgIGltYWdlV3JpdGUuYWNjZXNzLmltYWdlLT5yZWNvcmRXcml0ZUJhcnJpZXIo
dGhpcywgaW1hZ2VXcml0ZS5hY2Nlc3MuYXNwZWN0RmxhZ3MsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2VXcml0ZS5hY2Nlc3MuaW1hZ2VM
YXlvdXQsIGNvbW1hbmRCdWZmZXIpOwotICAgICAgICBpbWFnZVdyaXRlLmFjY2Vzcy5pbWFnZS0+
cmV0YWluKCZtUmVzb3VyY2VVc2VMaXN0KTsKKyAgICAgICAgaW1hZ2VXcml0ZS5hY2Nlc3MuaW1h
Z2UtPnJldGFpbigmbU91dHNpZGVSZW5kZXJQYXNzQ29tbWFuZHMtPmdldFJlc291cmNlVXNlTGlz
dCgpKTsKICAgICAgICAgaW1hZ2VXcml0ZS5hY2Nlc3MuaW1hZ2UtPm9uV3JpdGUoaW1hZ2VXcml0
ZS5sZXZlbFN0YXJ0LCBpbWFnZVdyaXRlLmxldmVsQ291bnQsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGltYWdlV3JpdGUubGF5ZXJTdGFydCwgaW1hZ2VXcml0ZS5s
YXllckNvdW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbWFn
ZVdyaXRlLmFjY2Vzcy5hc3BlY3RGbGFncyk7CkBAIC02ODczLDYgKzcwNTcsMTggQEAgYW5nbGU6
OlJlc3VsdCBDb250ZXh0Vms6Om9uUmVzb3VyY2VBY2Nlc3MoY29uc3Qgdms6OkNvbW1hbmRCdWZm
ZXJBY2Nlc3MgJmFjY2VzcykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHZrOjpBbGlhc2luZ01vZGU6OkRpc2FsbG93ZWQsIGJ1ZmZlckFjY2Vzcy5idWZm
ZXIpOwogICAgIH0KIAorICAgIGZvciAoY29uc3Qgdms6OkNvbW1hbmRCdWZmZXJCdWZmZXJFeHRl
cm5hbEFjcXVpcmVSZWxlYXNlICZidWZmZXJBY3F1aXJlUmVsZWFzZSA6CisgICAgICAgICBhY2Nl
c3MuZ2V0RXh0ZXJuYWxBY3F1aXJlUmVsZWFzZUJ1ZmZlcnMoKSkKKyAgICB7CisgICAgICAgIGJ1
ZmZlckFjcXVpcmVSZWxlYXNlLmJ1ZmZlci0+cmV0YWluUmVhZFdyaXRlKAorICAgICAgICAgICAg
Jm1PdXRzaWRlUmVuZGVyUGFzc0NvbW1hbmRzLT5nZXRSZXNvdXJjZVVzZUxpc3QoKSk7CisgICAg
fQorCisgICAgZm9yIChjb25zdCB2azo6Q29tbWFuZEJ1ZmZlclJlc291cmNlQWNjZXNzICZyZXNv
dXJjZUFjY2VzcyA6IGFjY2Vzcy5nZXRBY2Nlc3NSZXNvdXJjZXMoKSkKKyAgICB7CisgICAgICAg
IHJlc291cmNlQWNjZXNzLnJlc291cmNlLT5yZXRhaW4oJm1PdXRzaWRlUmVuZGVyUGFzc0NvbW1h
bmRzLT5nZXRSZXNvdXJjZVVzZUxpc3QoKSk7CisgICAgfQorCiAgICAgcmV0dXJuIGFuZ2xlOjpS
ZXN1bHQ6OkNvbnRpbnVlOwogfQogCkBAIC03MDE3LDM2ICs3MjEzLDYgQEAgYW5nbGU6OlJlc3Vs
dCBDb250ZXh0Vms6OmVuZFJlbmRlclBhc3NJZkNvbXB1dGVSZWFkQWZ0ZXJBdHRhY2htZW50V3Jp
dGUoKQogICAgIHJldHVybiBhbmdsZTo6UmVzdWx0OjpDb250aW51ZTsKIH0KIAotLy8gUmVxdWly
ZXMgdGhhdCB0cmFjZSBpcyBlbmFibGVkIHRvIHNlZSB0aGUgb3V0cHV0LCB3aGljaCBpcyBzdXBw
b3J0ZWQgd2l0aCBpc19kZWJ1Zz10cnVlCi12b2lkIENvbnRleHRWazo6b3V0cHV0Q3VtdWxhdGl2
ZVBlcmZDb3VudGVycygpCi17Ci0gICAgaWYgKCF2azo6a091dHB1dEN1bXVsYXRpdmVQZXJmQ291
bnRlcnMpCi0gICAgewotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgSU5GTygpIDw8ICJD
b250ZXh0IERlc2NyaXB0b3IgU2V0IEFsbG9jYXRpb25zOiAiOwotCi0gICAgZm9yIChQaXBlbGlu
ZVR5cGUgcGlwZWxpbmVUeXBlIDogYW5nbGU6OkFsbEVudW1zPFBpcGVsaW5lVHlwZT4oKSkKLSAg
ICB7Ci0gICAgICAgIHVpbnQzMl90IGNvdW50ID0gbUN1bXVsYXRpdmVDb250ZXh0UGVyZkNvdW50
ZXJzLmRlc2NyaXB0b3JTZXRzQWxsb2NhdGVkW3BpcGVsaW5lVHlwZV07Ci0gICAgICAgIGlmIChj
b3VudCA+IDApCi0gICAgICAgIHsKLSAgICAgICAgICAgIElORk8oKSA8PCAiICAgIFBpcGVsaW5l
VHlwZSAiIDw8IFRvVW5kZXJseWluZyhwaXBlbGluZVR5cGUpIDw8ICI6ICIgPDwgY291bnQ7Ci0g
ICAgICAgIH0KLSAgICB9Ci19Ci0KLUNvbnRleHRWa1BlcmZDb3VudGVycyBDb250ZXh0Vms6Omdl
dEFuZFJlc2V0T2JqZWN0UGVyZkNvdW50ZXJzKCkKLXsKLSAgICBtQ3VtdWxhdGl2ZUNvbnRleHRQ
ZXJmQ291bnRlcnMuZGVzY3JpcHRvclNldHNBbGxvY2F0ZWQgKz0KLSAgICAgICAgbUNvbnRleHRQ
ZXJmQ291bnRlcnMuZGVzY3JpcHRvclNldHNBbGxvY2F0ZWQ7Ci0KLSAgICBDb250ZXh0VmtQZXJm
Q291bnRlcnMgY291bnRlcnMgICAgICAgICAgICAgICA9IG1Db250ZXh0UGVyZkNvdW50ZXJzOwot
ICAgIG1Db250ZXh0UGVyZkNvdW50ZXJzLmRlc2NyaXB0b3JTZXRzQWxsb2NhdGVkID0ge307Ci0g
ICAgcmV0dXJuIGNvdW50ZXJzOwotfQotCiBQcm9ncmFtRXhlY3V0YWJsZVZrICpDb250ZXh0Vms6
OmdldEV4ZWN1dGFibGUoKSBjb25zdAogewogICAgIGdsOjpQcm9ncmFtICpwcm9ncmFtID0gbVN0
YXRlLmdldFByb2dyYW0oKTsKQEAgLTcwNzAsNyArNzIzNiw3IEBAIFByb2dyYW1FeGVjdXRhYmxl
VmsgKkNvbnRleHRWazo6Z2V0RXhlY3V0YWJsZSgpIGNvbnN0CiAKIGNvbnN0IGFuZ2xlOjpQZXJm
TW9uaXRvckNvdW50ZXJHcm91cHMgJkNvbnRleHRWazo6Z2V0UGVyZk1vbml0b3JDb3VudGVycygp
CiB7Ci0gICAgc3luY09iamVjdFBlcmZDb3VudGVycygpOworICAgIHN5bmNPYmplY3RQZXJmQ291
bnRlcnMobVJlbmRlcmVyLT5nZXRDb21tYW5kUXVldWVQZXJmQ291bnRlcnMoKSk7CiAKICAgICBh
bmdsZTo6UGVyZk1vbml0b3JDb3VudGVycyAmY291bnRlcnMgPQogICAgICAgICBhbmdsZTo6R2V0
UGVyZk1vbml0b3JDb3VudGVyR3JvdXAobVBlcmZNb25pdG9yQ291bnRlcnMsICJ2dWxrYW4iKS5j
b3VudGVyczsKQEAgLTcwODEsNiArNzI0Nyw3IEBAIGNvbnN0IGFuZ2xlOjpQZXJmTW9uaXRvckNv
dW50ZXJHcm91cHMgJkNvbnRleHRWazo6Z2V0UGVyZk1vbml0b3JDb3VudGVycygpCiAgICAgQU5H
TEVfVktfUEVSRl9DT1VOVEVSU19YKEFOR0xFX1VQREFURV9QRVJGX01BUCkKIAogI3VuZGVmIEFO
R0xFX1VQREFURV9QRVJGX01BUAorCiAgICAgcmV0dXJuIG1QZXJmTW9uaXRvckNvdW50ZXJzOwog
fQogCkBAIC03MTcyLDIxICs3MzM5LDI4IEBAIHVpbnQzMl90IFVwZGF0ZURlc2NyaXB0b3JTZXRz
QnVpbGRlcjo6Zmx1c2hEZXNjcmlwdG9yU2V0VXBkYXRlcyhWa0RldmljZSBkZXZpY2UpCiAKICAg
ICByZXR1cm4gcmV0VmFsOwogfQotYm9vbCBDb250ZXh0Vms6OmlzRHVlRm9yQnVmZmVyUG9vbFBy
dW5lKCkgY29uc3QKLXsKLSAgICBpZiAobVN0YXRlLmhhc0Rpc3BsYXlUZXh0dXJlU2hhcmVHcm91
cCgpKQotICAgIHsKLSAgICAgICAgcmV0dXJuIG1SZW5kZXJlci0+aXNEdWVGb3JCdWZmZXJQb29s
UHJ1bmUoKTsKLSAgICB9Ci0gICAgcmV0dXJuIG1TaGFyZUdyb3VwVmstPmlzRHVlRm9yQnVmZmVy
UG9vbFBydW5lKCk7Ci19CiAKLXZvaWQgQ29udGV4dFZrOjpwcnVuZURlZmF1bHRCdWZmZXJQb29s
cygpCit2b2lkIENvbnRleHRWazo6cmVzZXRQZXJGcmFtZVBlcmZDb3VudGVycygpCiB7Ci0gICAg
aWYgKG1TdGF0ZS5oYXNEaXNwbGF5VGV4dHVyZVNoYXJlR3JvdXAoKSkKKyAgICBtUGVyZkNvdW50
ZXJzLnJlbmRlclBhc3NlcyAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMDsKKyAgICBtUGVy
ZkNvdW50ZXJzLndyaXRlRGVzY3JpcHRvclNldHMgICAgICAgICAgICAgICAgICAgID0gMDsKKyAg
ICBtUGVyZkNvdW50ZXJzLmZsdXNoZWRPdXRzaWRlUmVuZGVyUGFzc0NvbW1hbmRCdWZmZXJzID0g
MDsKKyAgICBtUGVyZkNvdW50ZXJzLnJlc29sdmVJbWFnZUNvbW1hbmRzICAgICAgICAgICAgICAg
ICAgID0gMDsKKyAgICBtUGVyZkNvdW50ZXJzLmRlc2NyaXB0b3JTZXRBbGxvY2F0aW9ucyAgICAg
ICAgICAgICAgID0gMDsKKworICAgIGNvbnN0IGdsOjpSZXNvdXJjZU1hcDxnbDo6UHJvZ3JhbSwg
Z2w6OlNoYWRlclByb2dyYW1JRD4gJnByb2dyYW1zID0KKyAgICAgICAgbVN0YXRlLmdldFNoYWRl
clByb2dyYW1NYW5hZ2VyRm9yQ2FwdHVyZSgpLmdldFByb2dyYW1zRm9yQ2FwdHVyZUFuZFBlcmYo
KTsKKyAgICBmb3IgKGNvbnN0IHN0ZDo6cGFpcjxHTHVpbnQsIGdsOjpQcm9ncmFtICo+ICZyZXNv
dXJjZSA6IHByb2dyYW1zKQogICAgIHsKLSAgICAgICAgcmV0dXJuIG1SZW5kZXJlci0+cHJ1bmVE
ZWZhdWx0QnVmZmVyUG9vbHMoKTsKKyAgICAgICAgZ2w6OlByb2dyYW0gKnByb2dyYW0gPSByZXNv
dXJjZS5zZWNvbmQ7CisgICAgICAgIGlmIChwcm9ncmFtLT5oYXNMaW5raW5nU3RhdGUoKSkKKyAg
ICAgICAgeworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKyAgICAgICAgUHJvZ3Jh
bVZrICpwcm9ncmFtVmsgPSB2azo6R2V0SW1wbChwcm9ncmFtKTsKKyAgICAgICAgcHJvZ3JhbVZr
LT5nZXRFeGVjdXRhYmxlKCkucmVzZXREZXNjcmlwdG9yU2V0UGVyZkNvdW50ZXJzKCk7CiAgICAg
fQotICAgIHJldHVybiBtU2hhcmVHcm91cFZrLT5wcnVuZURlZmF1bHRCdWZmZXJQb29scyhtUmVu
ZGVyZXIpOworCisgICAgbVJlbmRlcmVyLT5yZXNldENvbW1hbmRRdWV1ZVBlckZyYW1lQ291bnRl
cnMoKTsKIH0KIH0gIC8vIG5hbWVzcGFjZSByeApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL3Z1bGthbi9Db250ZXh0VmsuaCBiL1NvdXJj
ZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci92dWxrYW4vQ29udGV4dFZr
LmgKaW5kZXggYzM2MTZmOTc2NGQ0MjYwNTQxOGU1ZWJiYzAwOWUwZDNlYWEyY2I0NS4uMTFjMzZm
ZjQzYzJjMjg1YTZhZjFiYWMzYjhlMDcxYTY0MDkwNmY4MyAxMDA2NDQKLS0tIGEvU291cmNlL1Ro
aXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL3Z1bGthbi9Db250ZXh0VmsuaAor
KysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvdnVsa2Fu
L0NvbnRleHRWay5oCkBAIC00MywxMSArNDMsNiBAQCBzdGF0aWMgY29uc3RleHByIFZrRGV2aWNl
U2l6ZSBrTWF4QnVmZmVyVG9JbWFnZUNvcHlTaXplID0gMSA8PCAyODsKIAogdXNpbmcgQ29udGV4
dFZrRGVzY3JpcHRvclNldExpc3QgPSBhbmdsZTo6UGFja2VkRW51bU1hcDxQaXBlbGluZVR5cGUs
IHVpbnQzMl90PjsKIAotc3RydWN0IENvbnRleHRWa1BlcmZDb3VudGVycwotewotICAgIENvbnRl
eHRWa0Rlc2NyaXB0b3JTZXRMaXN0IGRlc2NyaXB0b3JTZXRzQWxsb2NhdGVkOwotfTsKLQogZW51
bSBjbGFzcyBHcmFwaGljc0V2ZW50Q21kQnVmCiB7CiAgICAgTm90SW5RdWVyeUNtZCAgICAgICAg
ICAgICAgPSAwLApAQCAtOTIsMTIgKzg3LDYgQEAgY2xhc3MgVXBkYXRlRGVzY3JpcHRvclNldHNC
dWlsZGVyIGZpbmFsIDogYW5nbGU6Ok5vbkNvcHlhYmxlCiAgICAgc3RkOjp2ZWN0b3I8VmtXcml0
ZURlc2NyaXB0b3JTZXQ+IG1Xcml0ZURlc2NyaXB0b3JTZXRzOwogfTsKIAotZW51bSBjbGFzcyBT
dWJtaXRGcmFtZVR5cGUKLXsKLSAgICBPdXRzaWRlQW5kUlBDb21tYW5kcywKLSAgICBPdXRzaWRl
UlBDb21tYW5kc09ubHksCi19OwotCiAvLyBXaHkgZGVwdGgvc3RlbmNpbCBmZWVkYmFjayBsb29w
IGlzIGJlaW5nIHVwZGF0ZWQuICBCYXNlZCBvbiB3aGV0aGVyIGl0J3MgZHVlIHRvIGEgZHJhdyBv
ciBjbGVhciwKIC8vIGRpZmZlcmVudCBHTCBzdGF0ZSBhZmZlY3QgZGVwdGgvc3RlbmNpbCB3cml0
ZS4KIGVudW0gY2xhc3MgVXBkYXRlRGVwdGhGZWVkYmFja0xvb3BSZWFzb24KQEAgLTQ1NCw3ICs0
NDMsMTIgQEAgY2xhc3MgQ29udGV4dFZrIDogcHVibGljIENvbnRleHRJbXBsLCBwdWJsaWMgdms6
OkNvbnRleHQsIHB1YmxpYyBNdWx0aXNhbXBsZVRleHQKICAgICAgICAgVXBkYXRlRGVwdGhGZWVk
YmFja0xvb3BSZWFzb24gZGVwdGhSZWFzb24sCiAgICAgICAgIFVwZGF0ZURlcHRoRmVlZGJhY2tM
b29wUmVhc29uIHN0ZW5jaWxSZWFzb24pOwogCi0gICAgdm9pZCBvcHRpbWl6ZVJlbmRlclBhc3NG
b3JQcmVzZW50KFZrRnJhbWVidWZmZXIgZnJhbWVidWZmZXJIYW5kbGUsIHZrOjpJbWFnZUhlbHBl
ciAqY29sb3JJbWFnZSk7CisgICAgYW5nbGU6OlJlc3VsdCBvcHRpbWl6ZVJlbmRlclBhc3NGb3JQ
cmVzZW50KFZrRnJhbWVidWZmZXIgZnJhbWVidWZmZXJIYW5kbGUsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZrOjpJbWFnZVZpZXdIZWxwZXIgKmNvbG9y
SW1hZ2VWaWV3LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB2azo6SW1hZ2VIZWxwZXIgKmNvbG9ySW1hZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHZrOjpJbWFnZUhlbHBlciAqY29sb3JJbWFnZU1TLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWa1ByZXNlbnRNb2Rl
S0hSIHByZXNlbnRNb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBib29sICppbWFnZVJlc29sdmVkKTsKIAogICAgIHZrOjpEeW5hbWljUXVlcnlQb29s
ICpnZXRRdWVyeVBvb2woZ2w6OlF1ZXJ5VHlwZSBxdWVyeVR5cGUpOwogCkBAIC01NDYsOCArNTQw
LDYgQEAgY2xhc3MgQ29udGV4dFZrIDogcHVibGljIENvbnRleHRJbXBsLCBwdWJsaWMgdms6OkNv
bnRleHQsIHB1YmxpYyBNdWx0aXNhbXBsZVRleHQKICAgICBjb25zdCBnbDo6RGVidWcgJmdldERl
YnVnKCkgY29uc3QgeyByZXR1cm4gbVN0YXRlLmdldERlYnVnKCk7IH0KICAgICBjb25zdCBnbDo6
T3ZlcmxheVR5cGUgKmdldE92ZXJsYXkoKSBjb25zdCB7IHJldHVybiBtU3RhdGUuZ2V0T3Zlcmxh
eSgpOyB9CiAKLSAgICB2azo6UmVzb3VyY2VVc2VMaXN0ICZnZXRSZXNvdXJjZVVzZUxpc3QoKSB7
IHJldHVybiBtUmVzb3VyY2VVc2VMaXN0OyB9Ci0KICAgICBhbmdsZTo6UmVzdWx0IG9uQnVmZmVy
UmVsZWFzZVRvRXh0ZXJuYWwoY29uc3Qgdms6OkJ1ZmZlckhlbHBlciAmYnVmZmVyKTsKICAgICBh
bmdsZTo6UmVzdWx0IG9uSW1hZ2VSZWxlYXNlVG9FeHRlcm5hbChjb25zdCB2azo6SW1hZ2VIZWxw
ZXIgJmltYWdlKTsKIApAQCAtNTc5LDggKzU3MSw4IEBAIGNsYXNzIENvbnRleHRWayA6IHB1Ymxp
YyBDb250ZXh0SW1wbCwgcHVibGljIHZrOjpDb250ZXh0LCBwdWJsaWMgTXVsdGlzYW1wbGVUZXh0
CiAgICAgICAgICAgICAgICAgICAgICB2azo6UGFja2VkQXR0YWNobWVudEluZGV4IHBhY2tlZEF0
dGFjaG1lbnRJbmRleCkKICAgICB7CiAgICAgICAgIEFTU0VSVChtUmVuZGVyUGFzc0NvbW1hbmRz
LT5zdGFydGVkKCkpOwotICAgICAgICBtUmVuZGVyUGFzc0NvbW1hbmRzLT5jb2xvckltYWdlc0Ry
YXcoJm1SZXNvdXJjZVVzZUxpc3QsIGxldmVsLCBsYXllclN0YXJ0LCBsYXllckNvdW50LAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2UsIHJlc29sdmVJ
bWFnZSwgcGFja2VkQXR0YWNobWVudEluZGV4KTsKKyAgICAgICAgbVJlbmRlclBhc3NDb21tYW5k
cy0+Y29sb3JJbWFnZXNEcmF3KGxldmVsLCBsYXllclN0YXJ0LCBsYXllckNvdW50LCBpbWFnZSwg
cmVzb2x2ZUltYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcGFja2VkQXR0YWNobWVudEluZGV4KTsKICAgICB9CiAgICAgdm9pZCBvbkRlcHRoU3RlbmNp
bERyYXcoZ2w6OkxldmVsSW5kZXggbGV2ZWwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dWludDMyX3QgbGF5ZXJTdGFydCwKQEAgLTU4OSw4ICs1ODEsOCBAQCBjbGFzcyBDb250ZXh0Vmsg
OiBwdWJsaWMgQ29udGV4dEltcGwsIHB1YmxpYyB2azo6Q29udGV4dCwgcHVibGljIE11bHRpc2Ft
cGxlVGV4dAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZrOjpJbWFnZUhlbHBlciAqcmVz
b2x2ZUltYWdlKQogICAgIHsKICAgICAgICAgQVNTRVJUKG1SZW5kZXJQYXNzQ29tbWFuZHMtPnN0
YXJ0ZWQoKSk7Ci0gICAgICAgIG1SZW5kZXJQYXNzQ29tbWFuZHMtPmRlcHRoU3RlbmNpbEltYWdl
c0RyYXcoJm1SZXNvdXJjZVVzZUxpc3QsIGxldmVsLCBsYXllclN0YXJ0LAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxheWVyQ291bnQsIGltYWdl
LCByZXNvbHZlSW1hZ2UpOworICAgICAgICBtUmVuZGVyUGFzc0NvbW1hbmRzLT5kZXB0aFN0ZW5j
aWxJbWFnZXNEcmF3KGxldmVsLCBsYXllclN0YXJ0LCBsYXllckNvdW50LCBpbWFnZSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlSW1h
Z2UpOwogICAgIH0KIAogICAgIHZvaWQgZmluYWxpemVJbWFnZUxheW91dChjb25zdCB2azo6SW1h
Z2VIZWxwZXIgKmltYWdlKQpAQCAtNjEwLDYgKzYwMiwxNSBAQCBjbGFzcyBDb250ZXh0VmsgOiBw
dWJsaWMgQ29udGV4dEltcGwsIHB1YmxpYyB2azo6Q29udGV4dCwgcHVibGljIE11bHRpc2FtcGxl
VGV4dAogICAgICAgICByZXR1cm4gYW5nbGU6OlJlc3VsdDo6Q29udGludWU7CiAgICAgfQogCisg
ICAgYW5nbGU6OlJlc3VsdCBnZXRPdXRzaWRlUmVuZGVyUGFzc0NvbW1hbmRCdWZmZXJIZWxwZXIo
CisgICAgICAgIGNvbnN0IHZrOjpDb21tYW5kQnVmZmVyQWNjZXNzICZhY2Nlc3MsCisgICAgICAg
IHZrOjpPdXRzaWRlUmVuZGVyUGFzc0NvbW1hbmRCdWZmZXJIZWxwZXIgKipjb21tYW5kQnVmZmVy
SGVscGVyT3V0KQorICAgIHsKKyAgICAgICAgQU5HTEVfVFJZKG9uUmVzb3VyY2VBY2Nlc3MoYWNj
ZXNzKSk7CisgICAgICAgICpjb21tYW5kQnVmZmVySGVscGVyT3V0ID0gbU91dHNpZGVSZW5kZXJQ
YXNzQ29tbWFuZHM7CisgICAgICAgIHJldHVybiBhbmdsZTo6UmVzdWx0OjpDb250aW51ZTsKKyAg
ICB9CisKICAgICBhbmdsZTo6UmVzdWx0IHN1Ym1pdFN0YWdlZFRleHR1cmVVcGRhdGVzKCkKICAg
ICB7CiAgICAgICAgIC8vIFN0YWdlZCB1cGRhdGVzIGFyZSByZWNvcmRlZCBpbiBvdXRzaWRlIFJQ
IGNhbW1hbmQgYnVmZmVyLCBzdWJtaXQgdGhlbS4KQEAgLTY5NCw3ICs2OTUsNyBAQCBjbGFzcyBD
b250ZXh0VmsgOiBwdWJsaWMgQ29udGV4dEltcGwsIHB1YmxpYyB2azo6Q29udGV4dCwgcHVibGlj
IE11bHRpc2FtcGxlVGV4dAogICAgIC8vIFVzZWQgYnkgUXVlcnlWayB0byBzaGFyZSBxdWVyeSBo
ZWxwZXJzIGJldHdlZW4gdHJhbnNmb3JtIGZlZWRiYWNrIHF1ZXJpZXMuCiAgICAgUXVlcnlWayAq
Z2V0QWN0aXZlUmVuZGVyUGFzc1F1ZXJ5KGdsOjpRdWVyeVR5cGUgcXVlcnlUeXBlKSBjb25zdDsK
IAotICAgIHZvaWQgc3luY09iamVjdFBlcmZDb3VudGVycygpOworICAgIHZvaWQgc3luY09iamVj
dFBlcmZDb3VudGVycyhjb25zdCBhbmdsZTo6VnVsa2FuUGVyZkNvdW50ZXJzICZjb21tYW5kUXVl
dWVQZXJmQ291bnRlcnMpOwogICAgIHZvaWQgdXBkYXRlT3ZlcmxheU9uUHJlc2VudCgpOwogICAg
IHZvaWQgYWRkT3ZlcmxheVVzZWRCdWZmZXJzQ291bnQodms6OkNvbW1hbmRCdWZmZXJIZWxwZXJD
b21tb24gKmNvbW1hbmRCdWZmZXIpOwogCkBAIC03MjUsMTQgKzcyNiw3IEBAIGNsYXNzIENvbnRl
eHRWayA6IHB1YmxpYyBDb250ZXh0SW1wbCwgcHVibGljIHZrOjpDb250ZXh0LCBwdWJsaWMgTXVs
dGlzYW1wbGVUZXh0CiAKICAgICB2azo6QnVmZmVyUG9vbCAqZ2V0RGVmYXVsdEJ1ZmZlclBvb2wo
VmtEZXZpY2VTaXplIHNpemUsIHVpbnQzMl90IG1lbW9yeVR5cGVJbmRleCkKICAgICB7Ci0gICAg
ICAgIGlmIChtU3RhdGUuaGFzRGlzcGxheVRleHR1cmVTaGFyZUdyb3VwKCkpCi0gICAgICAgIHsK
LSAgICAgICAgICAgIHJldHVybiBtUmVuZGVyZXItPmdldERlZmF1bHRCdWZmZXJQb29sKHNpemUs
IG1lbW9yeVR5cGVJbmRleCk7Ci0gICAgICAgIH0KLSAgICAgICAgZWxzZQotICAgICAgICB7Ci0g
ICAgICAgICAgICByZXR1cm4gbVNoYXJlR3JvdXBWay0+Z2V0RGVmYXVsdEJ1ZmZlclBvb2wobVJl
bmRlcmVyLCBzaXplLCBtZW1vcnlUeXBlSW5kZXgpOwotICAgICAgICB9CisgICAgICAgIHJldHVy
biBtU2hhcmVHcm91cFZrLT5nZXREZWZhdWx0QnVmZmVyUG9vbChtUmVuZGVyZXIsIHNpemUsIG1l
bW9yeVR5cGVJbmRleCk7CiAgICAgfQogCiAgICAgYW5nbGU6OlJlc3VsdCBhbGxvY2F0ZVN0cmVh
bWVkVmVydGV4QnVmZmVyKHNpemVfdCBhdHRyaWJJbmRleCwKQEAgLTc1MSw2ICs3NDUsOCBAQCBj
bGFzcyBDb250ZXh0VmsgOiBwdWJsaWMgQ29udGV4dEltcGwsIHB1YmxpYyB2azo6Q29udGV4dCwg
cHVibGljIE11bHRpc2FtcGxlVGV4dAogCiAgICAgY29uc3QgYW5nbGU6OlBlcmZNb25pdG9yQ291
bnRlckdyb3VwcyAmZ2V0UGVyZk1vbml0b3JDb3VudGVycygpIG92ZXJyaWRlOwogCisgICAgdm9p
ZCByZXNldFBlckZyYW1lUGVyZkNvdW50ZXJzKCk7CisKICAgcHJpdmF0ZToKICAgICAvLyBEaXJ0
eSBiaXRzLgogICAgIGVudW0gRGlydHlCaXRUeXBlIDogc2l6ZV90CkBAIC03ODQsNiArNzgwLDcg
QEAgY2xhc3MgQ29udGV4dFZrIDogcHVibGljIENvbnRleHRJbXBsLCBwdWJsaWMgdms6OkNvbnRl
eHQsIHB1YmxpYyBNdWx0aXNhbXBsZVRleHQKICAgICAgICAgRElSVFlfQklUX1RFWFRVUkVTLAog
ICAgICAgICBESVJUWV9CSVRfVkVSVEVYX0JVRkZFUlMsCiAgICAgICAgIERJUlRZX0JJVF9JTkRF
WF9CVUZGRVIsCisgICAgICAgIERJUlRZX0JJVF9VTklGT1JNUywKICAgICAgICAgRElSVFlfQklU
X0RSSVZFUl9VTklGT1JNUywKICAgICAgICAgRElSVFlfQklUX0RSSVZFUl9VTklGT1JNU19CSU5E
SU5HLAogICAgICAgICAvLyBTaGFkZXIgcmVzb3VyY2VzIGV4Y2x1ZGluZyB0ZXh0dXJlcywgd2hp
Y2ggYXJlIGhhbmRsZWQgc2VwYXJhdGVseS4KQEAgLTc5Myw5ICs3OTAsMTAgQEAgY2xhc3MgQ29u
dGV4dFZrIDogcHVibGljIENvbnRleHRJbXBsLCBwdWJsaWMgdms6OkNvbnRleHQsIHB1YmxpYyBN
dWx0aXNhbXBsZVRleHQKICAgICAgICAgRElSVFlfQklUX0RFU0NSSVBUT1JfU0VUUywKICAgICAg
ICAgRElSVFlfQklUX0ZSQU1FQlVGRkVSX0ZFVENIX0JBUlJJRVIsCiAgICAgICAgIERJUlRZX0JJ
VF9CTEVORF9CQVJSSUVSLAotICAgICAgICAvLyBEeW5hbWljIHZpZXdwb3J0L3NjaXNzb3IKKyAg
ICAgICAgLy8gRHluYW1pYyB2aWV3cG9ydC9zY2lzc29yL3NoYWRpbmcgcmF0ZQogICAgICAgICBE
SVJUWV9CSVRfVklFV1BPUlQsCiAgICAgICAgIERJUlRZX0JJVF9TQ0lTU09SLAorICAgICAgICBE
SVJUWV9CSVRfU0hBRElOR19SQVRFLAogICAgICAgICBESVJUWV9CSVRfTUFYLAogICAgIH07CiAK
QEAgLTg0Miw2ICs4NDAsOCBAQCBjbGFzcyBDb250ZXh0VmsgOiBwdWJsaWMgQ29udGV4dEltcGws
IHB1YmxpYyB2azo6Q29udGV4dCwgcHVibGljIE11bHRpc2FtcGxlVGV4dAogICAgICAgICAgICAg
ICAgICAgIlJlbmRlciBwYXNzIHVzaW5nIGRpcnR5IGJpdCBtdXN0IGJlIGhhbmRsZWQgYWZ0ZXIg
dGhlIHJlbmRlciBwYXNzIGRpcnR5IGJpdCIpOwogICAgIHN0YXRpY19hc3NlcnQoRElSVFlfQklU
X0RFU0NSSVBUT1JfU0VUUyA+IERJUlRZX0JJVF9SRU5ERVJfUEFTUywKICAgICAgICAgICAgICAg
ICAgICJSZW5kZXIgcGFzcyB1c2luZyBkaXJ0eSBiaXQgbXVzdCBiZSBoYW5kbGVkIGFmdGVyIHRo
ZSByZW5kZXIgcGFzcyBkaXJ0eSBiaXQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KERJUlRZX0JJVF9V
TklGT1JNUyA+IERJUlRZX0JJVF9SRU5ERVJfUEFTUywKKyAgICAgICAgICAgICAgICAgICJSZW5k
ZXIgcGFzcyB1c2luZyBkaXJ0eSBiaXQgbXVzdCBiZSBoYW5kbGVkIGFmdGVyIHRoZSByZW5kZXIg
cGFzcyBkaXJ0eSBiaXQiKTsKICAgICBzdGF0aWNfYXNzZXJ0KERJUlRZX0JJVF9GUkFNRUJVRkZF
Ul9GRVRDSF9CQVJSSUVSID4gRElSVFlfQklUX1JFTkRFUl9QQVNTLAogICAgICAgICAgICAgICAg
ICAgIlJlbmRlciBwYXNzIHVzaW5nIGRpcnR5IGJpdCBtdXN0IGJlIGhhbmRsZWQgYWZ0ZXIgdGhl
IHJlbmRlciBwYXNzIGRpcnR5IGJpdCIpOwogICAgIHN0YXRpY19hc3NlcnQoRElSVFlfQklUX0JM
RU5EX0JBUlJJRVIgPiBESVJUWV9CSVRfUkVOREVSX1BBU1MsCkBAIC04NTAsNiArODUwLDggQEAg
Y2xhc3MgQ29udGV4dFZrIDogcHVibGljIENvbnRleHRJbXBsLCBwdWJsaWMgdms6OkNvbnRleHQs
IHB1YmxpYyBNdWx0aXNhbXBsZVRleHQKICAgICAgICAgICAgICAgICAgICJSZW5kZXIgcGFzcyB1
c2luZyBkaXJ0eSBiaXQgbXVzdCBiZSBoYW5kbGVkIGFmdGVyIHRoZSByZW5kZXIgcGFzcyBkaXJ0
eSBiaXQiKTsKICAgICBzdGF0aWNfYXNzZXJ0KERJUlRZX0JJVF9TQ0lTU09SID4gRElSVFlfQklU
X1JFTkRFUl9QQVNTLAogICAgICAgICAgICAgICAgICAgIlJlbmRlciBwYXNzIHVzaW5nIGRpcnR5
IGJpdCBtdXN0IGJlIGhhbmRsZWQgYWZ0ZXIgdGhlIHJlbmRlciBwYXNzIGRpcnR5IGJpdCIpOwor
ICAgIHN0YXRpY19hc3NlcnQoRElSVFlfQklUX1NIQURJTkdfUkFURSA+IERJUlRZX0JJVF9SRU5E
RVJfUEFTUywKKyAgICAgICAgICAgICAgICAgICJSZW5kZXIgcGFzcyB1c2luZyBkaXJ0eSBiaXQg
bXVzdCBiZSBoYW5kbGVkIGFmdGVyIHRoZSByZW5kZXIgcGFzcyBkaXJ0eSBiaXQiKTsKIAogICAg
IHVzaW5nIERpcnR5Qml0cyA9IGFuZ2xlOjpCaXRTZXQ8RElSVFlfQklUX01BWD47CiAKQEAgLTEw
MzgsMTAgKzEwNDAsMTQgQEAgY2xhc3MgQ29udGV4dFZrIDogcHVibGljIENvbnRleHRJbXBsLCBw
dWJsaWMgdms6OkNvbnRleHQsIHB1YmxpYyBNdWx0aXNhbXBsZVRleHQKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEaXJ0eUJpdHMg
ZGlydHlCaXRNYXNrKTsKICAgICBhbmdsZTo6UmVzdWx0IGhhbmRsZURpcnR5R3JhcGhpY3NEZXNj
cmlwdG9yU2V0cyhEaXJ0eUJpdHM6Okl0ZXJhdG9yICpkaXJ0eUJpdHNJdGVyYXRvciwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEaXJ0eUJpdHMg
ZGlydHlCaXRNYXNrKTsKKyAgICBhbmdsZTo6UmVzdWx0IGhhbmRsZURpcnR5R3JhcGhpY3NVbmlm
b3JtcyhEaXJ0eUJpdHM6Okl0ZXJhdG9yICpkaXJ0eUJpdHNJdGVyYXRvciwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEaXJ0eUJpdHMgZGlydHlCaXRNYXNr
KTsKICAgICBhbmdsZTo6UmVzdWx0IGhhbmRsZURpcnR5R3JhcGhpY3NWaWV3cG9ydChEaXJ0eUJp
dHM6Okl0ZXJhdG9yICpkaXJ0eUJpdHNJdGVyYXRvciwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBEaXJ0eUJpdHMgZGlydHlCaXRNYXNrKTsKICAgICBhbmds
ZTo6UmVzdWx0IGhhbmRsZURpcnR5R3JhcGhpY3NTY2lzc29yKERpcnR5Qml0czo6SXRlcmF0b3Ig
KmRpcnR5Qml0c0l0ZXJhdG9yLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgRGlydHlCaXRzIGRpcnR5Qml0TWFzayk7CisgICAgYW5nbGU6OlJlc3VsdCBoYW5k
bGVEaXJ0eUdyYXBoaWNzU2hhZGluZ1JhdGUoRGlydHlCaXRzOjpJdGVyYXRvciAqZGlydHlCaXRz
SXRlcmF0b3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgRGlydHlCaXRzIGRpcnR5Qml0TWFzayk7CiAKICAgICAvLyBIYW5kbGVycyBmb3IgY29tcHV0
ZSBwaXBlbGluZSBkaXJ0eSBiaXRzLgogICAgIGFuZ2xlOjpSZXN1bHQgaGFuZGxlRGlydHlDb21w
dXRlTWVtb3J5QmFycmllcigpOwpAQCAtMTA1Myw4ICsxMDU5LDEwIEBAIGNsYXNzIENvbnRleHRW
ayA6IHB1YmxpYyBDb250ZXh0SW1wbCwgcHVibGljIHZrOjpDb250ZXh0LCBwdWJsaWMgTXVsdGlz
YW1wbGVUZXh0CiAgICAgYW5nbGU6OlJlc3VsdCBoYW5kbGVEaXJ0eUNvbXB1dGVEcml2ZXJVbmlm
b3Jtc0JpbmRpbmcoKTsKICAgICBhbmdsZTo6UmVzdWx0IGhhbmRsZURpcnR5Q29tcHV0ZVNoYWRl
clJlc291cmNlcygpOwogICAgIGFuZ2xlOjpSZXN1bHQgaGFuZGxlRGlydHlDb21wdXRlRGVzY3Jp
cHRvclNldHMoKTsKKyAgICBhbmdsZTo6UmVzdWx0IGhhbmRsZURpcnR5Q29tcHV0ZVVuaWZvcm1z
KCk7CiAKICAgICAvLyBDb21tb24gcGFydHMgb2YgdGhlIGNvbW1vbiBkaXJ0eSBiaXQgaGFuZGxl
cnMuCisgICAgYW5nbGU6OlJlc3VsdCBoYW5kbGVEaXJ0eVVuaWZvcm1zSW1wbCh2azo6UmVzb3Vy
Y2VVc2VMaXN0ICpyZXNvdXJjZVVzZUxpc3QpOwogICAgIGFuZ2xlOjpSZXN1bHQgaGFuZGxlRGly
dHlNZW1vcnlCYXJyaWVySW1wbChEaXJ0eUJpdHM6Okl0ZXJhdG9yICpkaXJ0eUJpdHNJdGVyYXRv
ciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGlydHlC
aXRzIGRpcnR5Qml0TWFzayk7CiAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIENvbW1hbmRCdWZmZXJU
PgpAQCAtMTA2NiwxMiArMTA3NCwxMiBAQCBjbGFzcyBDb250ZXh0VmsgOiBwdWJsaWMgQ29udGV4
dEltcGwsIHB1YmxpYyB2azo6Q29udGV4dCwgcHVibGljIE11bHRpc2FtcGxlVGV4dAogICAgIGFu
Z2xlOjpSZXN1bHQgaGFuZGxlRGlydHlTaGFkZXJSZXNvdXJjZXNJbXBsKENvbW1hbmRCdWZmZXJI
ZWxwZXJUICpjb21tYW5kQnVmZmVySGVscGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFBpcGVsaW5lVHlwZSBwaXBlbGluZVR5cGUpOwogICAgIHZv
aWQgaGFuZGxlRGlydHlTaGFkZXJCdWZmZXJSZXNvdXJjZXNJbXBsKHZrOjpDb21tYW5kQnVmZmVy
SGVscGVyQ29tbW9uICpjb21tYW5kQnVmZmVySGVscGVyKTsKLSAgICB0ZW1wbGF0ZSA8dHlwZW5h
bWUgQ29tbWFuZEJ1ZmZlclQ+Ci0gICAgdm9pZCBoYW5kbGVEaXJ0eURyaXZlclVuaWZvcm1zQmlu
ZGluZ0ltcGwoQ29tbWFuZEJ1ZmZlclQgKmNvbW1hbmRCdWZmZXIsCisgICAgdGVtcGxhdGUgPHR5
cGVuYW1lIENvbW1hbmRCdWZmZXJIZWxwZXJUPgorICAgIHZvaWQgaGFuZGxlRGlydHlEcml2ZXJV
bmlmb3Jtc0JpbmRpbmdJbXBsKENvbW1hbmRCdWZmZXJIZWxwZXJUICpjb21tYW5kQnVmZmVySGVs
cGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZrUGlw
ZWxpbmVCaW5kUG9pbnQgYmluZFBvaW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIERyaXZlclVuaWZvcm1zRGVzY3JpcHRvclNldCAqZHJpdmVyVW5pZm9y
bXMpOwotICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBDb21tYW5kQnVmZmVyVD4KLSAgICBhbmdsZTo6
UmVzdWx0IGhhbmRsZURpcnR5RGVzY3JpcHRvclNldHNJbXBsKENvbW1hbmRCdWZmZXJUICpjb21t
YW5kQnVmZmVyLAorICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBDb21tYW5kQnVmZmVySGVscGVyVD4K
KyAgICBhbmdsZTo6UmVzdWx0IGhhbmRsZURpcnR5RGVzY3JpcHRvclNldHNJbXBsKENvbW1hbmRC
dWZmZXJIZWxwZXJUICpjb21tYW5kQnVmZmVySGVscGVyLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgUGlwZWxpbmVUeXBlIHBpcGVsaW5lVHlwZSk7CiAg
ICAgdm9pZCBoYW5kbGVEaXJ0eUdyYXBoaWNzU2Npc3NvckltcGwoYm9vbCBpc1ByaW1pdGl2ZXNH
ZW5lcmF0ZWRRdWVyeUFjdGl2ZSk7CiAKQEAgLTEwNzksNyArMTA4Nyw4IEBAIGNsYXNzIENvbnRl
eHRWayA6IHB1YmxpYyBDb250ZXh0SW1wbCwgcHVibGljIHZrOjpDb250ZXh0LCBwdWJsaWMgTXVs
dGlzYW1wbGVUZXh0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERy
aXZlclVuaWZvcm1zRGVzY3JpcHRvclNldCAqZHJpdmVyVW5pZm9ybXMsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgKipwdHJPdXQsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgKm5ld0J1ZmZlck91dCk7Ci0gICAg
YW5nbGU6OlJlc3VsdCB1cGRhdGVEcml2ZXJVbmlmb3Jtc0Rlc2NyaXB0b3JTZXQoYm9vbCBuZXdC
dWZmZXIsCisgICAgYW5nbGU6OlJlc3VsdCB1cGRhdGVEcml2ZXJVbmlmb3Jtc0Rlc2NyaXB0b3JT
ZXQodms6OlJlc291cmNlVXNlTGlzdCAqcmVzb3VyY2VVc2VMaXN0LAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgbmV3QnVmZmVyLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBk
cml2ZXJVbmlmb3Jtc1NpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgUGlwZWxpbmVUeXBlIHBpcGVsaW5lVHlwZSk7CiAKQEAgLTEwODcsOSAr
MTA5Niw3IEBAIGNsYXNzIENvbnRleHRWayA6IHB1YmxpYyBDb250ZXh0SW1wbCwgcHVibGljIHZr
OjpDb250ZXh0LCBwdWJsaWMgTXVsdGlzYW1wbGVUZXh0CiAKICAgICBhbmdsZTo6UmVzdWx0IHN1
Ym1pdEZyYW1lKGNvbnN0IHZrOjpTZW1hcGhvcmUgKnNpZ25hbFNlbWFwaG9yZSwgU2VyaWFsICpz
dWJtaXRTZXJpYWxPdXQpOwogICAgIGFuZ2xlOjpSZXN1bHQgc3VibWl0RnJhbWVPdXRzaWRlQ29t
bWFuZEJ1ZmZlck9ubHkoU2VyaWFsICpzdWJtaXRTZXJpYWxPdXQpOwotICAgIGFuZ2xlOjpSZXN1
bHQgc3VibWl0RnJhbWVJbXBsKGNvbnN0IHZrOjpTZW1hcGhvcmUgKnNpZ25hbFNlbWFwaG9yZSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZXJpYWwgKnN1Ym1pdFNlcmlhbE91
dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdWJtaXRGcmFtZVR5cGUgc3Vi
bWl0RnJhbWVUeXBlKTsKKyAgICBhbmdsZTo6UmVzdWx0IHN1Ym1pdENvbW1hbmRzKGNvbnN0IHZr
OjpTZW1hcGhvcmUgKnNpZ25hbFNlbWFwaG9yZSwgU2VyaWFsICpzdWJtaXRTZXJpYWxPdXQpOwog
CiAgICAgYW5nbGU6OlJlc3VsdCBzeW5jaHJvbml6ZUNwdUdwdVRpbWUoKTsKICAgICBhbmdsZTo6
UmVzdWx0IHRyYWNlR3B1RXZlbnRJbXBsKHZrOjpPdXRzaWRlUmVuZGVyUGFzc0NvbW1hbmRCdWZm
ZXIgKmNvbW1hbmRCdWZmZXIsCkBAIC0xMTYwLDEyICsxMTY3LDEyIEBAIGNsYXNzIENvbnRleHRW
ayA6IHB1YmxpYyBDb250ZXh0SW1wbCwgcHVibGljIHZrOjpDb250ZXh0LCBwdWJsaWMgTXVsdGlz
YW1wbGVUZXh0CiAgICAgYW5nbGU6OlJlc3VsdCBwdXNoRGVidWdHcm91cEltcGwoR0xlbnVtIHNv
dXJjZSwgR0x1aW50IGlkLCBjb25zdCBjaGFyICptZXNzYWdlKTsKICAgICBhbmdsZTo6UmVzdWx0
IHBvcERlYnVnR3JvdXBJbXBsKCk7CiAKLSAgICB2b2lkIG91dHB1dEN1bXVsYXRpdmVQZXJmQ291
bnRlcnMoKTsKLQogICAgIHZvaWQgdXBkYXRlU2FtcGxlU2hhZGluZ1dpdGhSYXN0ZXJpemF0aW9u
U2FtcGxlcyhjb25zdCB1aW50MzJfdCByYXN0ZXJpemF0aW9uU2FtcGxlcyk7CiAgICAgdm9pZCB1
cGRhdGVSYXN0ZXJpemF0aW9uU2FtcGxlcyhjb25zdCB1aW50MzJfdCByYXN0ZXJpemF0aW9uU2Ft
cGxlcyk7CiAgICAgdm9pZCB1cGRhdGVSYXN0ZXJpemVyRGlzY2FyZEVuYWJsZWQoYm9vbCBpc1By
aW1pdGl2ZXNHZW5lcmF0ZWRRdWVyeUFjdGl2ZSk7CiAKKyAgICB2b2lkIHVwZGF0ZUFkdmFuY2Vk
QmxlbmRFcXVhdGlvbnMoY29uc3QgZ2w6OlByb2dyYW1FeGVjdXRhYmxlICpleGVjdXRhYmxlKTsK
KwogICAgIHZvaWQgdXBkYXRlRGl0aGVyKCk7CiAKICAgICBTcGVjQ29uc3RVc2FnZUJpdHMgZ2V0
Q3VycmVudFByb2dyYW1TcGVjQ29uc3RVc2FnZUJpdHMoKSBjb25zdDsKQEAgLTExNzMsMTEgKzEx
ODAsNiBAQCBjbGFzcyBDb250ZXh0VmsgOiBwdWJsaWMgQ29udGV4dEltcGwsIHB1YmxpYyB2azo6
Q29udGV4dCwgcHVibGljIE11bHRpc2FtcGxlVGV4dAogCiAgICAgdm9pZCB1cGRhdGVTaGFkZXJS
ZXNvdXJjZXNEZXNjcmlwdG9yRGVzYyhQaXBlbGluZVR5cGUgcGlwZWxpbmVUeXBlKTsKIAotICAg
IENvbnRleHRWa1BlcmZDb3VudGVycyBnZXRBbmRSZXNldE9iamVjdFBlcmZDb3VudGVycygpOwot
Ci0gICAgYm9vbCBpc0R1ZUZvckJ1ZmZlclBvb2xQcnVuZSgpIGNvbnN0OwotICAgIHZvaWQgcHJ1
bmVEZWZhdWx0QnVmZmVyUG9vbHMoKTsKLQogICAgIHN0ZDo6YXJyYXk8R3JhcGhpY3NEaXJ0eUJp
dEhhbmRsZXIsIERJUlRZX0JJVF9NQVg+IG1HcmFwaGljc0RpcnR5Qml0SGFuZGxlcnM7CiAgICAg
c3RkOjphcnJheTxDb21wdXRlRGlydHlCaXRIYW5kbGVyLCBESVJUWV9CSVRfTUFYPiBtQ29tcHV0
ZURpcnR5Qml0SGFuZGxlcnM7CiAKQEAgLTEzMzAsNiArMTMzMiw4IEBAIGNsYXNzIENvbnRleHRW
ayA6IHB1YmxpYyBDb250ZXh0SW1wbCwgcHVibGljIHZrOjpDb250ZXh0LCBwdWJsaWMgTXVsdGlz
YW1wbGVUZXh0CiAgICAgc3RkOjp2ZWN0b3I8R3B1RXZlbnRRdWVyeT4gbUluRmxpZ2h0R3B1RXZl
bnRRdWVyaWVzOwogICAgIC8vIEEgbGlzdCBvZiBncHUgZXZlbnRzIHNpbmNlIHRoZSBsYXN0IGNs
b2NrIHN5bmMuCiAgICAgc3RkOjp2ZWN0b3I8R3B1RXZlbnQ+IG1HcHVFdmVudHM7CisgICAgLy8g
VGhlIGN1cnJlbnQgZnJhbWUgaW5kZXgsIHVzZWQgdG8gZ2VuZXJhdGUgYSBzdWJtaXNzaW9uLWVu
Y29tcGFzc2luZyBldmVudCB0YWdnZWQgd2l0aCBpdC4KKyAgICB1aW50MzJfdCBtUHJpbWFyeUJ1
ZmZlckV2ZW50Q291bnRlcjsKIAogICAgIC8vIENhY2hlZCB2YWx1ZSBvZiB0aGUgY29sb3IgYXR0
YWNobWVudCBtYXNrIG9mIHRoZSBjdXJyZW50IGRyYXcgZnJhbWVidWZmZXIuICBUaGlzIGlzIHVz
ZWQgdG8KICAgICAvLyBrbm93IHdoaWNoIGF0dGFjaG1lbnQgaW5kaWNlcyBoYXZlIHRoZWlyIGJs
ZW5kIHN0YXRlIHNldCBpbiB8bUdyYXBoaWNzUGlwZWxpbmVEZXNjfCwgYW5kCkBAIC0xMzM5LDkg
KzEzNDMsNiBAQCBjbGFzcyBDb250ZXh0VmsgOiBwdWJsaWMgQ29udGV4dEltcGwsIHB1YmxpYyB2
azo6Q29udGV4dCwgcHVibGljIE11bHRpc2FtcGxlVGV4dAogCiAgICAgYm9vbCBtSGFzRGVmZXJy
ZWRGbHVzaDsKIAotICAgIC8vIEdMX0VYVF9zaGFkZXJfZnJhbWVidWZmZXJfZmV0Y2hfbm9uX2Nv
aGVyZW50Ci0gICAgYm9vbCBtTGFzdFByb2dyYW1Vc2VzRnJhbWVidWZmZXJGZXRjaDsKLQogICAg
IC8vIFRoZSBzaXplIG9mIGNvcHkgY29tbWFuZHMgaXNzdWVkIGJldHdlZW4gYnVmZmVycyBhbmQg
aW1hZ2VzLiBVc2VkIHRvIHN1Ym1pdCB0aGUgY29tbWFuZAogICAgIC8vIGJ1ZmZlciBmb3IgdGhl
IG91dHNpZGUgcmVuZGVyIHBhc3MuCiAgICAgVmtEZXZpY2VTaXplIG1Ub3RhbEJ1ZmZlclRvSW1h
Z2VDb3B5U2l6ZSA9IDA7CkBAIC0xMzYwLDE0ICsxMzYxLDkgQEAgY2xhc3MgQ29udGV4dFZrIDog
cHVibGljIENvbnRleHRJbXBsLCBwdWJsaWMgdms6OkNvbnRleHQsIHB1YmxpYyBNdWx0aXNhbXBs
ZVRleHQKIAogICAgIC8vIEEgbWl4IG9mIHBlci1mcmFtZSBhbmQgcGVyLXJ1biBjb3VudGVycy4K
ICAgICBhbmdsZTo6UGVyZk1vbml0b3JDb3VudGVyR3JvdXBzIG1QZXJmTW9uaXRvckNvdW50ZXJz
OwotICAgIENvbnRleHRWa1BlcmZDb3VudGVycyBtQ29udGV4dFBlcmZDb3VudGVyczsKLSAgICBD
b250ZXh0VmtQZXJmQ291bnRlcnMgbUN1bXVsYXRpdmVDb250ZXh0UGVyZkNvdW50ZXJzOwogCiAg
ICAgZ2w6OlN0YXRlOjpEaXJ0eUJpdHMgbVBpcGVsaW5lRGlydHlCaXRzTWFzazsKIAotICAgIC8v
IExpc3Qgb2YgYWxsIHJlc291cmNlcyBjdXJyZW50bHkgYmVpbmcgdXNlZCBieSB0aGlzIENvbnRl
eHRWaydzIHJlY29yZGVkIGNvbW1hbmRzLgotICAgIHZrOjpSZXNvdXJjZVVzZUxpc3QgbVJlc291
cmNlVXNlTGlzdDsKLQogICAgIGVnbDo6Q29udGV4dFByaW9yaXR5IG1Db250ZXh0UHJpb3JpdHk7
CiAKICAgICAvLyBTdG9yYWdlIGZvciB2a1VwZGF0ZURlc2NyaXB0b3JTZXRzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvdnVsa2FuL0Rp
c3BsYXlWay5jcHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVy
ZXIvdnVsa2FuL0Rpc3BsYXlWay5jcHAKaW5kZXggMzI0YzRkNjA4ZmI3N2I5MTY4MDMzODZiMmZj
ODMzY2Y3NWVkNzkzNi4uMmY1YTQ4NDZlZjNmOGI3OTk2ZmYzZDNhZWYwNTQ2MWU0NmE5NTJhNyAx
MDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVy
L3Z1bGthbi9EaXNwbGF5VmsuY3BwCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9s
aWJBTkdMRS9yZW5kZXJlci92dWxrYW4vRGlzcGxheVZrLmNwcApAQCAtMjUsNiArMjUsOCBAQAog
CiBuYW1lc3BhY2UgcngKIHsKKy8vIFRpbWUgaW50ZXJ2YWwgaW4gc2Vjb25kcyB0aGF0IHdlIHNo
b3VsZCB0cnkgdG8gcHJ1bmUgZGVmYXVsdCBidWZmZXIgcG9vbHMuCitjb25zdGV4cHIgZG91Ymxl
IGtUaW1lRWxhcHNlZEZvclBydW5lRGVmYXVsdEJ1ZmZlclBvb2wgPSAwLjI1OwogCiBEaXNwbGF5
Vms6OkRpc3BsYXlWayhjb25zdCBlZ2w6OkRpc3BsYXlTdGF0ZSAmc3RhdGUpCiAgICAgOiBEaXNw
bGF5SW1wbChzdGF0ZSksCkBAIC00MDksNyArNDExLDIzIEBAIHZvaWQgRGlzcGxheVZrOjpwb3B1
bGF0ZUZlYXR1cmVMaXN0KGFuZ2xlOjpGZWF0dXJlTGlzdCAqZmVhdHVyZXMpCiAKIFNoYXJlR3Jv
dXBWazo6U2hhcmVHcm91cFZrKCkKIHsKLSAgICBtTGFzdFBydW5lVGltZSA9IGFuZ2xlOjpHZXRD
dXJyZW50U3lzdGVtVGltZSgpOworICAgIG1MYXN0UHJ1bmVUaW1lICAgICAgICAgICAgID0gYW5n
bGU6OkdldEN1cnJlbnRTeXN0ZW1UaW1lKCk7CisgICAgbU9ycGhhbk5vbkVtcHR5QnVmZmVyQmxv
Y2sgPSBmYWxzZTsKK30KKwordm9pZCBTaGFyZUdyb3VwVms6OmFkZENvbnRleHQoQ29udGV4dFZr
ICpjb250ZXh0VmspCit7CisgICAgbUNvbnRleHRzLmluc2VydChjb250ZXh0VmspOworCisgICAg
aWYgKGNvbnRleHRWay0+Z2V0U3RhdGUoKS5oYXNEaXNwbGF5VGV4dHVyZVNoYXJlR3JvdXAoKSkK
KyAgICB7CisgICAgICAgIG1PcnBoYW5Ob25FbXB0eUJ1ZmZlckJsb2NrID0gdHJ1ZTsKKyAgICB9
Cit9CisKK3ZvaWQgU2hhcmVHcm91cFZrOjpyZW1vdmVDb250ZXh0KENvbnRleHRWayAqY29udGV4
dFZrKQoreworICAgIG1Db250ZXh0cy5lcmFzZShjb250ZXh0VmspOwogfQogCiB2b2lkIFNoYXJl
R3JvdXBWazo6b25EZXN0cm95KGNvbnN0IGVnbDo6RGlzcGxheSAqZGlzcGxheSkKQEAgLTQyMCwx
MyArNDM4LDEzIEBAIHZvaWQgU2hhcmVHcm91cFZrOjpvbkRlc3Ryb3koY29uc3QgZWdsOjpEaXNw
bGF5ICpkaXNwbGF5KQogICAgIHsKICAgICAgICAgaWYgKHBvb2wpCiAgICAgICAgIHsKLSAgICAg
ICAgICAgIHBvb2wtPmRlc3Ryb3kocmVuZGVyZXIpOworICAgICAgICAgICAgcG9vbC0+ZGVzdHJv
eShyZW5kZXJlciwgbU9ycGhhbk5vbkVtcHR5QnVmZmVyQmxvY2spOwogICAgICAgICB9CiAgICAg
fQogCiAgICAgaWYgKG1TbWFsbEJ1ZmZlclBvb2wpCiAgICAgewotICAgICAgICBtU21hbGxCdWZm
ZXJQb29sLT5kZXN0cm95KHJlbmRlcmVyKTsKKyAgICAgICAgbVNtYWxsQnVmZmVyUG9vbC0+ZGVz
dHJveShyZW5kZXJlciwgbU9ycGhhbk5vbkVtcHR5QnVmZmVyQmxvY2spOwogICAgIH0KIAogICAg
IG1QaXBlbGluZUxheW91dENhY2hlLmRlc3Ryb3kocmVuZGVyZXIpOwpAQCAtNDUxLDE5ICs0Njks
NjIgQEAgdms6OkJ1ZmZlclBvb2wgKlNoYXJlR3JvdXBWazo6Z2V0RGVmYXVsdEJ1ZmZlclBvb2wo
UmVuZGVyZXJWayAqcmVuZGVyZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBWa0RldmljZVNpemUgc2l6ZSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IG1lbW9yeVR5cGVJbmRleCkK
IHsKLSAgICByZXR1cm4gdms6OkdldERlZmF1bHRCdWZmZXJQb29sKG1TbWFsbEJ1ZmZlclBvb2ws
IG1EZWZhdWx0QnVmZmVyUG9vbHMsIHJlbmRlcmVyLCBzaXplLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbWVtb3J5VHlwZUluZGV4KTsKKyAgICBpZiAoc2l6ZSA8PSBrTWF4
U2l6ZVRvVXNlU21hbGxCdWZmZXJQb29sICYmCisgICAgICAgIG1lbW9yeVR5cGVJbmRleCA9PQor
ICAgICAgICAgICAgcmVuZGVyZXItPmdldFZlcnRleENvbnZlcnNpb25CdWZmZXJNZW1vcnlUeXBl
SW5kZXgodms6Ok1lbW9yeUhvc3RWaXNpYmlsaXR5OjpWaXNpYmxlKSkKKyAgICB7CisgICAgICAg
IGlmICghbVNtYWxsQnVmZmVyUG9vbCkKKyAgICAgICAgeworICAgICAgICAgICAgY29uc3Qgdms6
OkFsbG9jYXRvciAmYWxsb2NhdG9yID0gcmVuZGVyZXItPmdldEFsbG9jYXRvcigpOworICAgICAg
ICAgICAgVmtCdWZmZXJVc2FnZUZsYWdzIHVzYWdlRmxhZ3MgID0gR2V0RGVmYXVsdEJ1ZmZlclVz
YWdlRmxhZ3MocmVuZGVyZXIpOworCisgICAgICAgICAgICBWa01lbW9yeVByb3BlcnR5RmxhZ3Mg
bWVtb3J5UHJvcGVydHlGbGFnczsKKyAgICAgICAgICAgIGFsbG9jYXRvci5nZXRNZW1vcnlUeXBl
UHJvcGVydGllcyhtZW1vcnlUeXBlSW5kZXgsICZtZW1vcnlQcm9wZXJ0eUZsYWdzKTsKKworICAg
ICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPHZrOjpCdWZmZXJQb29sPiBwb29sID0gc3RkOjptYWtl
X3VuaXF1ZTx2azo6QnVmZmVyUG9vbD4oKTsKKyAgICAgICAgICAgIHBvb2wtPmluaXRXaXRoRmxh
Z3MocmVuZGVyZXIsIHZtYTo6VmlydHVhbEJsb2NrQ3JlYXRlRmxhZ0JpdHM6OkJVRERZLCB1c2Fn
ZUZsYWdzLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZW1vcnlUeXBlSW5k
ZXgsIG1lbW9yeVByb3BlcnR5RmxhZ3MpOworICAgICAgICAgICAgbVNtYWxsQnVmZmVyUG9vbCA9
IHN0ZDo6bW92ZShwb29sKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbVNtYWxsQnVmZmVy
UG9vbC5nZXQoKTsKKyAgICB9CisgICAgZWxzZSBpZiAoIW1EZWZhdWx0QnVmZmVyUG9vbHNbbWVt
b3J5VHlwZUluZGV4XSkKKyAgICB7CisgICAgICAgIGNvbnN0IHZrOjpBbGxvY2F0b3IgJmFsbG9j
YXRvciA9IHJlbmRlcmVyLT5nZXRBbGxvY2F0b3IoKTsKKyAgICAgICAgVmtCdWZmZXJVc2FnZUZs
YWdzIHVzYWdlRmxhZ3MgID0gR2V0RGVmYXVsdEJ1ZmZlclVzYWdlRmxhZ3MocmVuZGVyZXIpOwor
CisgICAgICAgIFZrTWVtb3J5UHJvcGVydHlGbGFncyBtZW1vcnlQcm9wZXJ0eUZsYWdzOworICAg
ICAgICBhbGxvY2F0b3IuZ2V0TWVtb3J5VHlwZVByb3BlcnRpZXMobWVtb3J5VHlwZUluZGV4LCAm
bWVtb3J5UHJvcGVydHlGbGFncyk7CisKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPHZrOjpCdWZm
ZXJQb29sPiBwb29sID0gc3RkOjptYWtlX3VuaXF1ZTx2azo6QnVmZmVyUG9vbD4oKTsKKyAgICAg
ICAgcG9vbC0+aW5pdFdpdGhGbGFncyhyZW5kZXJlciwgdm1hOjpWaXJ0dWFsQmxvY2tDcmVhdGVG
bGFnQml0czo6R0VORVJBTCwgdXNhZ2VGbGFncywgMCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBtZW1vcnlUeXBlSW5kZXgsIG1lbW9yeVByb3BlcnR5RmxhZ3MpOworICAgICAgICBtRGVm
YXVsdEJ1ZmZlclBvb2xzW21lbW9yeVR5cGVJbmRleF0gPSBzdGQ6Om1vdmUocG9vbCk7CisgICAg
fQorCisgICAgcmV0dXJuIG1EZWZhdWx0QnVmZmVyUG9vbHNbbWVtb3J5VHlwZUluZGV4XS5nZXQo
KTsKIH0KIAogdm9pZCBTaGFyZUdyb3VwVms6OnBydW5lRGVmYXVsdEJ1ZmZlclBvb2xzKFJlbmRl
cmVyVmsgKnJlbmRlcmVyKQogewogICAgIG1MYXN0UHJ1bmVUaW1lID0gYW5nbGU6OkdldEN1cnJl
bnRTeXN0ZW1UaW1lKCk7CiAKLSAgICB2azo6UHJ1bmVEZWZhdWx0QnVmZmVyUG9vbHMocmVuZGVy
ZXIsIG1EZWZhdWx0QnVmZmVyUG9vbHMsIG1TbWFsbEJ1ZmZlclBvb2wpOworICAgIGZvciAoc3Rk
Ojp1bmlxdWVfcHRyPHZrOjpCdWZmZXJQb29sPiAmcG9vbCA6IG1EZWZhdWx0QnVmZmVyUG9vbHMp
CisgICAgeworICAgICAgICBpZiAocG9vbCkKKyAgICAgICAgeworICAgICAgICAgICAgcG9vbC0+
cHJ1bmVFbXB0eUJ1ZmZlcnMocmVuZGVyZXIpOworICAgICAgICB9CisgICAgfQorICAgIGlmICht
U21hbGxCdWZmZXJQb29sKQorICAgIHsKKyAgICAgICAgbVNtYWxsQnVmZmVyUG9vbC0+cHJ1bmVF
bXB0eUJ1ZmZlcnMocmVuZGVyZXIpOworICAgIH0KIH0KIAogYm9vbCBTaGFyZUdyb3VwVms6Omlz
RHVlRm9yQnVmZmVyUG9vbFBydW5lKCkKIHsKLSAgICByZXR1cm4gdms6OklzRHVlRm9yQnVmZmVy
UG9vbFBydW5lKG1MYXN0UHJ1bmVUaW1lKTsKKyAgICBkb3VibGUgdGltZUVsYXBzZWQgPSBhbmds
ZTo6R2V0Q3VycmVudFN5c3RlbVRpbWUoKSAtIG1MYXN0UHJ1bmVUaW1lOworICAgIHJldHVybiB0
aW1lRWxhcHNlZCA+IGtUaW1lRWxhcHNlZEZvclBydW5lRGVmYXVsdEJ1ZmZlclBvb2w7CiB9CiB9
ICAvLyBuYW1lc3BhY2UgcngKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3Ny
Yy9saWJBTkdMRS9yZW5kZXJlci92dWxrYW4vRGlzcGxheVZrLmggYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvdnVsa2FuL0Rpc3BsYXlWay5oCmluZGV4IGM1
ZjIyYzhmZGU4YTE3M2VjNzM1NWJkNjYzMTc4NDZiYWFkMDUwODMuLmE0YWU4ZDUxZjVjMWZjMjNj
YjMyNjA1NjA5MTEzNTkwNzJjNzY1NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FO
R0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci92dWxrYW4vRGlzcGxheVZrLmgKKysrIGIvU291cmNl
L1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL3Z1bGthbi9EaXNwbGF5Vmsu
aApAQCAtMzQsMTkgKzM0LDEzIEBAIGNsYXNzIFNoYXJlR3JvdXBWayA6IHB1YmxpYyBTaGFyZUdy
b3VwSW1wbAogICAgIC8vIHN5bmNocm9ub3VzIHVwZGF0ZSB0byB0aGUgY2FjaGVzLgogICAgIFBp
cGVsaW5lTGF5b3V0Q2FjaGUgJmdldFBpcGVsaW5lTGF5b3V0Q2FjaGUoKSB7IHJldHVybiBtUGlw
ZWxpbmVMYXlvdXRDYWNoZTsgfQogICAgIERlc2NyaXB0b3JTZXRMYXlvdXRDYWNoZSAmZ2V0RGVz
Y3JpcHRvclNldExheW91dENhY2hlKCkgeyByZXR1cm4gbURlc2NyaXB0b3JTZXRMYXlvdXRDYWNo
ZTsgfQotICAgIENvbnRleHRWa1NldCAqZ2V0Q29udGV4dHMoKSB7IHJldHVybiAmbUNvbnRleHRz
OyB9CisgICAgY29uc3QgQ29udGV4dFZrU2V0ICZnZXRDb250ZXh0cygpIGNvbnN0IHsgcmV0dXJu
IG1Db250ZXh0czsgfQogCiAgICAgdm9pZCByZWxlYXNlUmVzb3VyY2VVc2VMaXN0cyhjb25zdCBT
ZXJpYWwgJnN1Ym1pdFNlcmlhbCk7CiAgICAgdm9pZCBhY3F1aXJlUmVzb3VyY2VVc2VMaXN0KHZr
OjpSZXNvdXJjZVVzZUxpc3QgJiZyZXNvdXJjZVVzZUxpc3QpCiAgICAgewogICAgICAgICBtUmVz
b3VyY2VVc2VMaXN0cy5lbXBsYWNlX2JhY2soc3RkOjptb3ZlKHJlc291cmNlVXNlTGlzdCkpOwog
ICAgIH0KLSAgICB2b2lkIGNvcHlSZXNvdXJjZVVzZUxpc3Qodms6OlJlc291cmNlVXNlTGlzdCAm
cmVzb3VyY2VVc2VMaXN0KQotICAgIHsKLSAgICAgICAgdms6OlJlc291cmNlVXNlTGlzdCBjb3B5
UmVzb3VyY2VVc2VMaXN0OwotICAgICAgICBjb3B5UmVzb3VyY2VVc2VMaXN0LmNvcHkocmVzb3Vy
Y2VVc2VMaXN0KTsKLSAgICAgICAgbVJlc291cmNlVXNlTGlzdHMuZW1wbGFjZV9iYWNrKHN0ZDo6
bW92ZShjb3B5UmVzb3VyY2VVc2VMaXN0KSk7Ci0gICAgfQogCiAgICAgdms6OkJ1ZmZlclBvb2wg
KmdldERlZmF1bHRCdWZmZXJQb29sKFJlbmRlcmVyVmsgKnJlbmRlcmVyLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWa0RldmljZVNpemUgc2l6ZSwKQEAgLTU0LDYg
KzQ4LDkgQEAgY2xhc3MgU2hhcmVHcm91cFZrIDogcHVibGljIFNoYXJlR3JvdXBJbXBsCiAgICAg
dm9pZCBwcnVuZURlZmF1bHRCdWZmZXJQb29scyhSZW5kZXJlclZrICpyZW5kZXJlcik7CiAgICAg
Ym9vbCBpc0R1ZUZvckJ1ZmZlclBvb2xQcnVuZSgpOwogCisgICAgdm9pZCBhZGRDb250ZXh0KENv
bnRleHRWayAqY29udGV4dFZrKTsKKyAgICB2b2lkIHJlbW92ZUNvbnRleHQoQ29udGV4dFZrICpj
b250ZXh0VmspOworCiAgIHByaXZhdGU6CiAgICAgLy8gQU5HTEUgdXNlcyBhIFBpcGVsaW5lTGF5
b3V0IGNhY2hlIHRvIHN0b3JlIGNvbXBhdGlibGUgcGlwZWxpbmUgbGF5b3V0cy4KICAgICBQaXBl
bGluZUxheW91dENhY2hlIG1QaXBlbGluZUxheW91dENhY2hlOwpAQCAtNzMsOSArNzAsMTQgQEAg
Y2xhc3MgU2hhcmVHcm91cFZrIDogcHVibGljIFNoYXJlR3JvdXBJbXBsCiAKICAgICAvLyBUaGUg
cG9vbCBkZWRpY2F0ZWQgZm9yIHNtYWxsIGFsbG9jYXRpb25zIHRoYXQgdXNlcyBmYXN0ZXIgYnVk
ZHkgYWxnb3JpdGhtCiAgICAgc3RkOjp1bmlxdWVfcHRyPHZrOjpCdWZmZXJQb29sPiBtU21hbGxC
dWZmZXJQb29sOworICAgIHN0YXRpYyBjb25zdGV4cHIgVmtEZXZpY2VTaXplIGtNYXhTaXplVG9V
c2VTbWFsbEJ1ZmZlclBvb2wgPSAyNTY7CiAKICAgICAvLyBUaGUgc3lzdGVtIHRpbWUgd2hlbiBs
YXN0IHBydW5lRW1wdHlCdWZmZXIgZ2V0cyBjYWxsZWQuCiAgICAgZG91YmxlIG1MYXN0UHJ1bmVU
aW1lOworCisgICAgLy8gSWYgdHJ1ZSwgaXQgaXMgZXhwZWN0ZWQgdGhhdCBhIEJ1ZmZlckJsb2Nr
IG1heSBzdGlsbCBpbiB1c2VkIGJ5IHRleHR1cmVzIHRoYXQgb3V0bGl2ZWQKKyAgICAvLyBTaGFy
ZUdyb3VwLiBUaGUgbm9uLWVtcHR5IEJ1ZmZlckJsb2NrIHdpbGwgYmUgcHV0IGludG8gUmVuZGVy
ZXJWaydzIG9ycGhhbiBsaXN0IGluc3RlYWQuCisgICAgYm9vbCBtT3JwaGFuTm9uRW1wdHlCdWZm
ZXJCbG9jazsKIH07CiAKIGNsYXNzIERpc3BsYXlWayA6IHB1YmxpYyBEaXNwbGF5SW1wbCwgcHVi
bGljIHZrOjpDb250ZXh0CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMv
bGliQU5HTEUvcmVuZGVyZXIvdnVsa2FuL0ZyYW1lYnVmZmVyVmsuY3BwIGIvU291cmNlL1RoaXJk
UGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL3Z1bGthbi9GcmFtZWJ1ZmZlclZrLmNw
cAppbmRleCA0ODMwMjBjYjJlNmJlMTZlZjhkMGJiYTFiYzZjYzQ1ZDU1MmE1M2U1Li4yODc3YjA2
MmEyZmJkNTAzNzY4NGUxNzRhYzhmM2JhNzg4NmQxNGJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvdnVsa2FuL0ZyYW1lYnVmZmVyVmsu
Y3BwCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci92
dWxrYW4vRnJhbWVidWZmZXJWay5jcHAKQEAgLTQ5Nyw3ICs0OTcsOCBAQCBhbmdsZTo6UmVzdWx0
IEZyYW1lYnVmZmVyVms6OmNsZWFySW1wbChjb25zdCBnbDo6Q29udGV4dCAqY29udGV4dCwKICAg
ICAgICAgLy8gSWYgYSByZW5kZXIgcGFzcyBpcyBvcGVuIHdpdGggY29tbWFuZHMsIGl0IG11c3Qg
YmUgZm9yIHRoaXMgZnJhbWVidWZmZXIuICBPdGhlcndpc2UsCiAgICAgICAgIC8vIGVpdGhlciBG
cmFtZWJ1ZmZlclZrOjpzeW5jU3RhdGUoKSBvciBDb250ZXh0Vms6OnN5bmNTdGF0ZSgpIHdvdWxk
IGhhdmUgY2xvc2VkIGl0LgogICAgICAgICB2azo6RnJhbWVidWZmZXIgKmN1cnJlbnRGcmFtZWJ1
ZmZlciA9IG51bGxwdHI7Ci0gICAgICAgIEFOR0xFX1RSWShnZXRGcmFtZWJ1ZmZlcihjb250ZXh0
VmssICZjdXJyZW50RnJhbWVidWZmZXIsIG51bGxwdHIpKTsKKyAgICAgICAgQU5HTEVfVFJZKGdl
dEZyYW1lYnVmZmVyKGNvbnRleHRWaywgJmN1cnJlbnRGcmFtZWJ1ZmZlciwgbnVsbHB0ciwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN3YXBjaGFpblJlc29sdmVNb2RlOjpEaXNh
YmxlZCkpOwogICAgICAgICBBU1NFUlQoY29udGV4dFZrLT5oYXNTdGFydGVkUmVuZGVyUGFzc1dp
dGhGcmFtZWJ1ZmZlcihjdXJyZW50RnJhbWVidWZmZXIpKTsKIAogICAgICAgICAvLyBFbWl0IGRl
YnVnLXV0aWwgbWFya2VycyBmb3IgdGhpcyBtaWQtcmVuZGVyLXBhc3MgY2xlYXIKQEAgLTExMzks
MTAgKzExNDAsOSBAQCBhbmdsZTo6UmVzdWx0IEZyYW1lYnVmZmVyVms6OmJsaXQoY29uc3QgZ2w6
OkNvbnRleHQgKmNvbnRleHQsCiAgICAgICAgIC8vIE5vbi1pZGVudGl0eSBwcmUtcm90YXRpb24g
Y2FzZXMgZG8gbm90IHVzZSBWdWxrYW4ncyBidWlsdGluIGJsaXQuCiAgICAgICAgIC8vCiAgICAg
ICAgIC8vIEZvciBzaW1wbGljaXR5LCB3ZSBlaXRoZXIgYmxpdCBhbGwgcmVuZGVyIHRhcmdldHMg
d2l0aCBhIFZ1bGthbiBjb21tYW5kLCBvciBub25lLgotICAgICAgICBib29sIGNhbkJsaXRXaXRo
Q29tbWFuZCA9ICFpc0NvbG9yUmVzb2x2ZSAmJiBub0NsaXAgJiYKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAobm9GbGlwIHx8ICFkaXNhYmxlRmxpcHBpbmdCbGl0V2l0aENvbW1h
bmQpICYmCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSGFzU3JjQmxpdEZlYXR1
cmUocmVuZGVyZXIsIHJlYWRSZW5kZXJUYXJnZXQpICYmCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKHJvdGF0aW9uID09IFN1cmZhY2VSb3RhdGlvbjo6SWRlbnRpdHkpOworICAg
ICAgICBib29sIGNhbkJsaXRXaXRoQ29tbWFuZCA9CisgICAgICAgICAgICAhaXNDb2xvclJlc29s
dmUgJiYgbm9DbGlwICYmIChub0ZsaXAgfHwgIWRpc2FibGVGbGlwcGluZ0JsaXRXaXRoQ29tbWFu
ZCkgJiYKKyAgICAgICAgICAgIEhhc1NyY0JsaXRGZWF0dXJlKHJlbmRlcmVyLCByZWFkUmVuZGVy
VGFyZ2V0KSAmJiByb3RhdGlvbiA9PSBTdXJmYWNlUm90YXRpb246OklkZW50aXR5OwogICAgICAg
ICAvLyBJZiB3ZSBuZWVkIHRvIHJlaW50ZXJwcmV0IHRoZSBjb2xvcnNwYWNlIHRoZW4gdGhlIGJs
aXQgbXVzdCBiZSBkb25lIHRocm91Z2ggYSBzaGFkZXIKICAgICAgICAgYm9vbCByZWludGVycHJl
dHNDb2xvcnNwYWNlID0KICAgICAgICAgICAgIG1DdXJyZW50RnJhbWVidWZmZXJEZXNjLmdldFdy
aXRlQ29udHJvbE1vZGUoKSAhPSBnbDo6U3JnYldyaXRlQ29udHJvbE1vZGU6OkRlZmF1bHQ7CkBA
IC0xMTk0LDIxICsxMTk0LDM1IEBAIGFuZ2xlOjpSZXN1bHQgRnJhbWVidWZmZXJWazo6YmxpdChj
b25zdCBnbDo6Q29udGV4dCAqY29udGV4dCwKICAgICAgICAgICAgIC8vIHJlbmRlcmVyKSwgc28g
dGhlcmUncyBubyBjaGFuY2UgZm9yIHRoZSByZXNvbHZlIGF0dGFjaG1lbnQgdG8gdGFrZSBhZHZh
bnRhZ2Ugb2YgdGhlCiAgICAgICAgICAgICAvLyBkYXRhIGFscmVhZHkgYmVpbmcgcHJlc2VudCBp
biB0aGUgdGlsZS4KICAgICAgICAgICAgIHZrOjpGcmFtZWJ1ZmZlciAqc3JjVmtGcmFtZWJ1ZmZl
ciA9IG51bGxwdHI7Ci0gICAgICAgICAgICBBTkdMRV9UUlkoc3JjRnJhbWVidWZmZXJWay0+Z2V0
RnJhbWVidWZmZXIoY29udGV4dFZrLCAmc3JjVmtGcmFtZWJ1ZmZlciwgbnVsbHB0cikpOworICAg
ICAgICAgICAgQU5HTEVfVFJZKHNyY0ZyYW1lYnVmZmVyVmstPmdldEZyYW1lYnVmZmVyKGNvbnRl
eHRWaywgJnNyY1ZrRnJhbWVidWZmZXIsIG51bGxwdHIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3dhcGNoYWluUmVzb2x2ZU1vZGU6OkRp
c2FibGVkKSk7CiAKICAgICAgICAgICAgIC8vIFRPRE8oaHR0cHM6Ly9hbmdsZWJ1Zy5jb20vNDk2
OCk6IFN1cHBvcnQgbXVsdGlwbGUgb3BlbiByZW5kZXIgcGFzc2VzIHNvIHdlIGNhbiByZW1vdmUK
ICAgICAgICAgICAgIC8vICB0aGlzIGhhY2sgdG8gJ3Jlc3RvcmUnIHRoZSBmaW5pc2hlZCByZW5k
ZXIgcGFzcy4KICAgICAgICAgICAgIGNvbnRleHRWay0+cmVzdG9yZUZpbmlzaGVkUmVuZGVyUGFz
cyhzcmNWa0ZyYW1lYnVmZmVyKTsKIAotICAgICAgICAgICAgaWYgKG1TdGF0ZS5nZXRFbmFibGVk
RHJhd0J1ZmZlcnMoKS5jb3VudCgpID09IDEgJiYKKyAgICAgICAgICAgIC8vIGdsQmxpdEZyYW1l
YnVmZmVyKCkgbmVlZHMgdG8gY29weSB0aGUgcmVhZCBjb2xvciBhdHRhY2htZW50IHRvIGFsbCBl
bmFibGVkCisgICAgICAgICAgICAvLyBhdHRhY2htZW50cyBpbiB0aGUgZHJhdyBmcmFtZWJ1ZmZl
ciwgYnV0IFZ1bGthbiByZXF1aXJlcyBhIDE6MSByZWxhdGlvbnNoaXAgZm9yCisgICAgICAgICAg
ICAvLyBtdWx0aXNhbXBsZSBhdHRhY2htZW50cyB0byByZXNvbHZlIGF0dGFjaG1lbnRzIGluIHRo
ZSByZW5kZXIgcGFzcyBzdWJwYXNzLiAgRHVlIHRvCisgICAgICAgICAgICAvLyB0aGlzLCB3ZSBj
dXJyZW50bHkgb25seSBzdXBwb3J0IHVzaW5nIHJlc29sdmUgYXR0YWNobWVudHMgd2hlbiB0aGVy
ZSBpcyBhIHNpbmdsZSBkcmF3CisgICAgICAgICAgICAvLyBhdHRhY2htZW50IGVuYWJsZWQuCisg
ICAgICAgICAgICBib29sIGNhblJlc29sdmVXaXRoU3VicGFzcyA9CisgICAgICAgICAgICAgICAg
bVN0YXRlLmdldEVuYWJsZWREcmF3QnVmZmVycygpLmNvdW50KCkgPT0gMSAmJgogICAgICAgICAg
ICAgICAgIG1DdXJyZW50RnJhbWVidWZmZXJEZXNjLmdldExheWVyQ291bnQoKSA9PSAxICYmCi0g
ICAgICAgICAgICAgICAgY29udGV4dFZrLT5oYXNTdGFydGVkUmVuZGVyUGFzc1dpdGhGcmFtZWJ1
ZmZlcihzcmNWa0ZyYW1lYnVmZmVyKSkKKyAgICAgICAgICAgICAgICBjb250ZXh0VmstPmhhc1N0
YXJ0ZWRSZW5kZXJQYXNzV2l0aEZyYW1lYnVmZmVyKHNyY1ZrRnJhbWVidWZmZXIpOworCisgICAg
ICAgICAgICAvLyBBZGRpdGlvbmFsbHksIHdoZW4gcmVzb2x2aW5nIHdpdGggYSByZXNvbHZlIGF0
dGFjaG1lbnQsIHRoZSBzcmMgYW5kIGRlc3RpbmF0aW9uCisgICAgICAgICAgICAvLyBvZmZzZXRz
IG11c3QgbWF0Y2gsIHRoZSByZW5kZXIgYXJlYSBtdXN0IG1hdGNoIHRoZSByZXNvbHZlIGFyZWEs
IGFuZCB0aGVyZSBzaG91bGQgYmUKKyAgICAgICAgICAgIC8vIG5vIGZsaXBwaW5nIG9yIHJvdGF0
aW9uLiAgRm9ydHVuYXRlbHksIGluIEdMRVMgdGhlIGJsaXQgc291cmNlIGFuZCBkZXN0aW5hdGlv
biBhcmVhcworICAgICAgICAgICAgLy8gYXJlIGFscmVhZHkgcmVxdWlyZWQgdG8gYmUgaWRlbnRp
Y2FsLgorICAgICAgICAgICAgQVNTRVJUKHBhcmFtcy5zcmNPZmZzZXRbMF0gPT0gcGFyYW1zLmRz
dE9mZnNldFswXSAmJgorICAgICAgICAgICAgICAgICAgIHBhcmFtcy5zcmNPZmZzZXRbMV0gPT0g
cGFyYW1zLmRzdE9mZnNldFsxXSk7CisgICAgICAgICAgICBjYW5SZXNvbHZlV2l0aFN1YnBhc3Mg
PQorICAgICAgICAgICAgICAgIGNhblJlc29sdmVXaXRoU3VicGFzcyAmJiBub0ZsaXAgJiYgcm90
YXRpb24gPT0gU3VyZmFjZVJvdGF0aW9uOjpJZGVudGl0eSAmJgorICAgICAgICAgICAgICAgIGJs
aXRBcmVhID09IGNvbnRleHRWay0+Z2V0U3RhcnRlZFJlbmRlclBhc3NDb21tYW5kcygpLmdldFJl
bmRlckFyZWEoKTsKKworICAgICAgICAgICAgaWYgKGNhblJlc29sdmVXaXRoU3VicGFzcykKICAg
ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAvLyBnbEJsaXRGcmFtZWJ1ZmZlcigpIG5lZWRz
IHRvIGNvcHkgdGhlIHJlYWQgY29sb3IgYXR0YWNobWVudCB0byBhbGwgZW5hYmxlZAotICAgICAg
ICAgICAgICAgIC8vIGF0dGFjaG1lbnRzIGluIHRoZSBkcmF3IGZyYW1lYnVmZmVyLCBidXQgVnVs
a2FuIHJlcXVpcmVzIGEgMToxIHJlbGF0aW9uc2hpcCBmb3IKLSAgICAgICAgICAgICAgICAvLyBt
dWx0aXNhbXBsZSBhdHRhY2htZW50cyB0byByZXNvbHZlIGF0dGFjaG1lbnRzIGluIHRoZSByZW5k
ZXIgcGFzcyBzdWJwYXNzLgotICAgICAgICAgICAgICAgIC8vIER1ZSB0byB0aGlzLCB3ZSBjdXJy
ZW50bHkgb25seSBzdXBwb3J0IHVzaW5nIHJlc29sdmUgYXR0YWNobWVudHMgd2hlbiB0aGVyZSBp
cyBhCi0gICAgICAgICAgICAgICAgLy8gc2luZ2xlIGRyYXcgYXR0YWNobWVudCBlbmFibGVkLgog
ICAgICAgICAgICAgICAgIEFOR0xFX1RSWShyZXNvbHZlQ29sb3JXaXRoU3VicGFzcyhjb250ZXh0
VmssIHBhcmFtcykpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgZWxzZQpAQCAtMTI0NCwx
MSArMTI1OCwxMCBAQCBhbmdsZTo6UmVzdWx0IEZyYW1lYnVmZmVyVms6OmJsaXQoY29uc3QgZ2w6
OkNvbnRleHQgKmNvbnRleHQsCiAgICAgICAgIEFTU0VSVCghaXNEZXB0aFN0ZW5jaWxSZXNvbHZl
IHx8IHJlYWRSZW5kZXJUYXJnZXQtPmdldExldmVsSW5kZXgoKSA9PSBnbDo6TGV2ZWxJbmRleCgw
KSk7CiAKICAgICAgICAgLy8gU2ltaWxhcmx5LCBvbmx5IGJsaXQgaWYgdGhlcmUncyBiZWVuIG5v
IGNsaXBwaW5nIG9yIHJvdGF0aW5nLgotICAgICAgICBib29sIGNhbkJsaXRXaXRoQ29tbWFuZCA9
ICFpc0RlcHRoU3RlbmNpbFJlc29sdmUgJiYgbm9DbGlwICYmCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKG5vRmxpcCB8fCAhZGlzYWJsZUZsaXBwaW5nQmxpdFdpdGhDb21tYW5k
KSAmJgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhhc1NyY0JsaXRGZWF0dXJl
KHJlbmRlcmVyLCByZWFkUmVuZGVyVGFyZ2V0KSAmJgotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEhhc0RzdEJsaXRGZWF0dXJlKHJlbmRlcmVyLCBkcmF3UmVuZGVyVGFyZ2V0KSAm
JgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyb3RhdGlvbiA9PSBTdXJmYWNl
Um90YXRpb246OklkZW50aXR5KTsKKyAgICAgICAgYm9vbCBjYW5CbGl0V2l0aENvbW1hbmQgPQor
ICAgICAgICAgICAgIWlzRGVwdGhTdGVuY2lsUmVzb2x2ZSAmJiBub0NsaXAgJiYgKG5vRmxpcCB8
fCAhZGlzYWJsZUZsaXBwaW5nQmxpdFdpdGhDb21tYW5kKSAmJgorICAgICAgICAgICAgSGFzU3Jj
QmxpdEZlYXR1cmUocmVuZGVyZXIsIHJlYWRSZW5kZXJUYXJnZXQpICYmCisgICAgICAgICAgICBI
YXNEc3RCbGl0RmVhdHVyZShyZW5kZXJlciwgZHJhd1JlbmRlclRhcmdldCkgJiYgcm90YXRpb24g
PT0gU3VyZmFjZVJvdGF0aW9uOjpJZGVudGl0eTsKICAgICAgICAgYm9vbCBhcmVDaGFubmVsc0Js
aXRDb21wYXRpYmxlID0KICAgICAgICAgICAgIEFyZVNyY0FuZERzdERlcHRoU3RlbmNpbENoYW5u
ZWxzQmxpdENvbXBhdGlibGUocmVhZFJlbmRlclRhcmdldCwgZHJhd1JlbmRlclRhcmdldCk7CiAK
QEAgLTE0MjEsNyArMTQzNCw4IEBAIGFuZ2xlOjpSZXN1bHQgRnJhbWVidWZmZXJWazo6cmVzb2x2
ZUNvbG9yV2l0aFN1YnBhc3MoQ29udGV4dFZrICpjb250ZXh0VmssCiAgICAgY29uc3Qgdms6Oklt
YWdlVmlldyAqcmVzb2x2ZUltYWdlVmlldyA9IG51bGxwdHI7CiAgICAgQU5HTEVfVFJZKGRyYXdS
ZW5kZXJUYXJnZXQtPmdldEltYWdlVmlldyhjb250ZXh0VmssICZyZXNvbHZlSW1hZ2VWaWV3KSk7
CiAgICAgdms6OkZyYW1lYnVmZmVyICpuZXdTcmNGcmFtZWJ1ZmZlciA9IG51bGxwdHI7Ci0gICAg
QU5HTEVfVFJZKHNyY0ZyYW1lYnVmZmVyVmstPmdldEZyYW1lYnVmZmVyKGNvbnRleHRWaywgJm5l
d1NyY0ZyYW1lYnVmZmVyLCByZXNvbHZlSW1hZ2VWaWV3KSk7CisgICAgQU5HTEVfVFJZKHNyY0Zy
YW1lYnVmZmVyVmstPmdldEZyYW1lYnVmZmVyKGNvbnRleHRWaywgJm5ld1NyY0ZyYW1lYnVmZmVy
LCByZXNvbHZlSW1hZ2VWaWV3LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBTd2FwY2hhaW5SZXNvbHZlTW9kZTo6RGlzYWJsZWQpKTsKICAgICAvLyAyLiBV
cGRhdGUgdGhlIFJlbmRlclBhc3NDb21tYW5kQnVmZmVySGVscGVyIHdpdGggdGhlIG5ldyBmcmFt
ZWJ1ZmZlciBhbmQgcmVuZGVyIHBhc3MKICAgICB2azo6UmVuZGVyUGFzc0NvbW1hbmRCdWZmZXJI
ZWxwZXIgJmNvbW1hbmRCdWZmZXJIZWxwZXIgPQogICAgICAgICBjb250ZXh0VmstPmdldFN0YXJ0
ZWRSZW5kZXJQYXNzQ29tbWFuZHMoKTsKQEAgLTE2MjUsNyArMTYzOSw4IEBAIGFuZ2xlOjpSZXN1
bHQgRnJhbWVidWZmZXJWazo6aW52YWxpZGF0ZUltcGwoQ29udGV4dFZrICpjb250ZXh0VmssCiAg
ICAgLy8tIEJpbmQgRkJPIDEsIGludmFsaWRhdGUgRC9TCiAgICAgLy8gdG8gaW52YWxpZGF0ZSB0
aGUgRC9TIG9mIEZCTyAyIHNpbmNlIGl0IHdvdWxkIGJlIHRoZSBjdXJyZW50bHkgYWN0aXZlIHJl
bmRlcnBhc3MuCiAgICAgdms6OkZyYW1lYnVmZmVyICpjdXJyZW50RnJhbWVidWZmZXIgPSBudWxs
cHRyOwotICAgIEFOR0xFX1RSWShnZXRGcmFtZWJ1ZmZlcihjb250ZXh0VmssICZjdXJyZW50RnJh
bWVidWZmZXIsIG51bGxwdHIpKTsKKyAgICBBTkdMRV9UUlkoCisgICAgICAgIGdldEZyYW1lYnVm
ZmVyKGNvbnRleHRWaywgJmN1cnJlbnRGcmFtZWJ1ZmZlciwgbnVsbHB0ciwgU3dhcGNoYWluUmVz
b2x2ZU1vZGU6OkRpc2FibGVkKSk7CiAKICAgICBpZiAoY29udGV4dFZrLT5oYXNTdGFydGVkUmVu
ZGVyUGFzc1dpdGhGcmFtZWJ1ZmZlcihjdXJyZW50RnJhbWVidWZmZXIpKQogICAgIHsKQEAgLTIw
MzksNyArMjA1NCw3IEBAIHZvaWQgRnJhbWVidWZmZXJWazo6dXBkYXRlUmVuZGVyUGFzc0Rlc2Mo
Q29udGV4dFZrICpjb250ZXh0VmspCiAgICAgICAgIG1SZW5kZXJQYXNzRGVzYy5zZXRGcmFtZWJ1
ZmZlckZldGNoTW9kZShwcm9ncmFtVXNlc0ZyYW1lYnVmZmVyRmV0Y2gpOwogICAgIH0KIAotICAg
IGlmIChjb250ZXh0VmstPmdldEZlYXR1cmVzKCkuc3VwcG9ydHNNdWx0aXNhbXBsZWRSZW5kZXJU
b1NpbmdsZVNhbXBsZWQuZW5hYmxlZCkKKyAgICBpZiAoY29udGV4dFZrLT5nZXRGZWF0dXJlcygp
LmVuYWJsZU11bHRpc2FtcGxlZFJlbmRlclRvVGV4dHVyZS5lbmFibGVkKQogICAgIHsKICAgICAg
ICAgLy8gVXBkYXRlIGRlc2NyaXB0aW9ucyByZWdhcmRpbmcgbXVsdGlzYW1wbGVkLXJlbmRlci10
by10ZXh0dXJlIHVzZS4KICAgICAgICAgYm9vbCBpc1JlbmRlclRvVGV4dHVyZSA9IGZhbHNlOwpA
QCAtMjA3MCw3ICsyMDg1LDggQEAgdm9pZCBGcmFtZWJ1ZmZlclZrOjp1cGRhdGVSZW5kZXJQYXNz
RGVzYyhDb250ZXh0VmsgKmNvbnRleHRWaykKIAogYW5nbGU6OlJlc3VsdCBGcmFtZWJ1ZmZlclZr
OjpnZXRGcmFtZWJ1ZmZlcihDb250ZXh0VmsgKmNvbnRleHRWaywKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdms6OkZyYW1lYnVmZmVyICoqZnJhbWVidWZmZXJP
dXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZr
OjpJbWFnZVZpZXcgKnJlc29sdmVJbWFnZVZpZXdJbikKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3Qgdms6OkltYWdlVmlldyAqcmVzb2x2ZUltYWdlVmll
d0luLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBT
d2FwY2hhaW5SZXNvbHZlTW9kZSBzd2FwY2hhaW5SZXNvbHZlTW9kZSkKIHsKICAgICAvLyBGaXJz
dCByZXR1cm4gYSBwcmVzZW50bHkgdmFsaWQgRnJhbWVidWZmZXIKICAgICBpZiAobUZyYW1lYnVm
ZmVyICE9IG51bGxwdHIpCkBAIC0yMDkyLDExICsyMTA4LDExIEBAIGFuZ2xlOjpSZXN1bHQgRnJh
bWVidWZmZXJWazo6Z2V0RnJhbWVidWZmZXIoQ29udGV4dFZrICpjb250ZXh0VmssCiAgICAgLy8g
SWYgd2UndmUgYSBGcmFtZWJ1ZmZlciBwcm92aWRlZCBieSBhIFN1cmZhY2UgKGRlZmF1bHQgRkJP
L2JhY2tidWZmZXIpLCBxdWVyeSBpdC4KICAgICBpZiAobUJhY2tidWZmZXIpCiAgICAgewotICAg
ICAgICByZXR1cm4gbUJhY2tidWZmZXItPmdldEN1cnJlbnRGcmFtZWJ1ZmZlcihjb250ZXh0Vmss
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1SZW5k
ZXJQYXNzRGVzYy5nZXRGcmFtZWJ1ZmZlckZldGNoTW9kZSgpCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IEZyYW1lYnVmZmVyRmV0Y2hNb2Rl
OjpFbmFibGVkCisgICAgICAgIHJldHVybiBtQmFja2J1ZmZlci0+Z2V0Q3VycmVudEZyYW1lYnVm
ZmVyKAorICAgICAgICAgICAgY29udGV4dFZrLAorICAgICAgICAgICAgbVJlbmRlclBhc3NEZXNj
LmdldEZyYW1lYnVmZmVyRmV0Y2hNb2RlKCkgPyBGcmFtZWJ1ZmZlckZldGNoTW9kZTo6RW5hYmxl
ZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
OiBGcmFtZWJ1ZmZlckZldGNoTW9kZTo6RGlzYWJsZWQsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICpjb21wYXRpYmxlUmVuZGVyUGFzcywgZnJhbWVi
dWZmZXJPdXQpOworICAgICAgICAgICAgKmNvbXBhdGlibGVSZW5kZXJQYXNzLCBzd2FwY2hhaW5S
ZXNvbHZlTW9kZSwgZnJhbWVidWZmZXJPdXQpOwogICAgIH0KIAogICAgIC8vIEdhdGhlciBWa0lt
YWdlVmlld3Mgb3ZlciBhbGwgRkJPIGF0dGFjaG1lbnRzLCBhbHNvIHNpemUgb2YgYXR0YWNoZWQg
cmVnaW9uLgpAQCAtMjc0Nyw3ICsyNzYzLDcgQEAgYW5nbGU6OlJlc3VsdCBGcmFtZWJ1ZmZlclZr
OjpzdGFydE5ld1JlbmRlclBhc3MoQ29udGV4dFZrICpjb250ZXh0VmssCiAgICAgfQogCiAgICAg
dms6OkZyYW1lYnVmZmVyICpmcmFtZWJ1ZmZlciA9IG51bGxwdHI7Ci0gICAgQU5HTEVfVFJZKGdl
dEZyYW1lYnVmZmVyKGNvbnRleHRWaywgJmZyYW1lYnVmZmVyLCBudWxscHRyKSk7CisgICAgQU5H
TEVfVFJZKGdldEZyYW1lYnVmZmVyKGNvbnRleHRWaywgJmZyYW1lYnVmZmVyLCBudWxscHRyLCBT
d2FwY2hhaW5SZXNvbHZlTW9kZTo6RGlzYWJsZWQpKTsKIAogICAgIC8vIElmIGRlZmVycmVkIGNs
ZWFycyB3ZXJlIHVzZWQgaW4gdGhlIHJlbmRlciBwYXNzLCBleHBhbmQgdGhlIHJlbmRlciBhcmVh
IHRvIHRoZSB3aG9sZQogICAgIC8vIGZyYW1lYnVmZmVyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL3Z1bGthbi9GcmFtZWJ1ZmZlclZr
LmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvdnVsa2Fu
L0ZyYW1lYnVmZmVyVmsuaAppbmRleCA4NGVkYjQ4Nzc4OWUzMTkzOWNmYWZlNDI4MWQyYWU0YjE5
M2I5YmNmLi5lYTM4NmNkMGJiM2E1MDU2ZWQ3OGVmYTU3Njc1Yzg0MWEyN2ZmYjA5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvdnVsa2Fu
L0ZyYW1lYnVmZmVyVmsuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5H
TEUvcmVuZGVyZXIvdnVsa2FuL0ZyYW1lYnVmZmVyVmsuaApAQCAtMTUsNiArMTUsNyBAQAogI2lu
Y2x1ZGUgImxpYkFOR0xFL3JlbmRlcmVyL1JlbmRlclRhcmdldENhY2hlLmgiCiAjaW5jbHVkZSAi
bGliQU5HTEUvcmVuZGVyZXIvdnVsa2FuL0J1ZmZlclZrLmgiCiAjaW5jbHVkZSAibGliQU5HTEUv
cmVuZGVyZXIvdnVsa2FuL1Jlc291cmNlVmsuaCIKKyNpbmNsdWRlICJsaWJBTkdMRS9yZW5kZXJl
ci92dWxrYW4vU3VyZmFjZVZrLmgiCiAjaW5jbHVkZSAibGliQU5HTEUvcmVuZGVyZXIvdnVsa2Fu
L1V0aWxzVmsuaCIKICNpbmNsdWRlICJsaWJBTkdMRS9yZW5kZXJlci92dWxrYW4vdmtfY2FjaGVf
dXRpbHMuaCIKICNpbmNsdWRlICJsaWJBTkdMRS9yZW5kZXJlci92dWxrYW4vdmtfaGVscGVycy5o
IgpAQCAtMTQ1LDkgKzE0NiwxNCBAQCBjbGFzcyBGcmFtZWJ1ZmZlclZrIDogcHVibGljIEZyYW1l
YnVmZmVySW1wbAogCiAgICAgY29uc3Qgdms6OlJlbmRlclBhc3NEZXNjICZnZXRSZW5kZXJQYXNz
RGVzYygpIGNvbnN0IHsgcmV0dXJuIG1SZW5kZXJQYXNzRGVzYzsgfQogCisgICAgdm9pZCB1cGRh
dGVDb2xvclJlc29sdmVBdHRhY2htZW50KAorICAgICAgICB1aW50MzJfdCBjb2xvckluZGV4R0ws
CisgICAgICAgIHZrOjpJbWFnZU9yQnVmZmVyVmlld1N1YnJlc291cmNlU2VyaWFsIHJlc29sdmVJ
bWFnZVZpZXdTZXJpYWwpOworCiAgICAgYW5nbGU6OlJlc3VsdCBnZXRGcmFtZWJ1ZmZlcihDb250
ZXh0VmsgKmNvbnRleHRWaywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZrOjpG
cmFtZWJ1ZmZlciAqKmZyYW1lYnVmZmVyT3V0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29uc3Qgdms6OkltYWdlVmlldyAqcmVzb2x2ZUltYWdlVmlld0luKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZrOjpJbWFnZVZpZXcgKnJlc29sdmVJbWFn
ZVZpZXdJbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN3YXBjaGFp
blJlc29sdmVNb2RlIHN3YXBjaGFpblJlc29sdmVNb2RlKTsKIAogICAgIGJvb2wgaGFzRGVmZXJy
ZWRDbGVhcnMoKSBjb25zdCB7IHJldHVybiAhbURlZmVycmVkQ2xlYXJzLmVtcHR5KCk7IH0KICAg
ICBhbmdsZTo6UmVzdWx0IGZsdXNoRGVmZXJyZWRDbGVhcnMoQ29udGV4dFZrICpjb250ZXh0Vmsp
OwpAQCAtMTYyLDYgKzE2OCw4IEBAIGNsYXNzIEZyYW1lYnVmZmVyVmsgOiBwdWJsaWMgRnJhbWVi
dWZmZXJJbXBsCiAgICAgdm9pZCBvblN3aXRjaFByb2dyYW1GcmFtZWJ1ZmZlckZldGNoKENvbnRl
eHRWayAqY29udGV4dFZrLCBib29sIHByb2dyYW1Vc2VzRnJhbWVidWZmZXJGZXRjaCk7CiAgICAg
Ym9vbCBoYXNGcmFtZWJ1ZmZlckZldGNoKCkgY29uc3QgeyByZXR1cm4gbUN1cnJlbnRGcmFtZWJ1
ZmZlckRlc2MuaGFzRnJhbWVidWZmZXJGZXRjaCgpOyB9CiAKKyAgICB2b2lkIHJlbW92ZUNvbG9y
UmVzb2x2ZUF0dGFjaG1lbnQodWludDMyX3QgY29sb3JJbmRleEdMKTsKKwogICBwcml2YXRlOgog
ICAgIEZyYW1lYnVmZmVyVmsoUmVuZGVyZXJWayAqcmVuZGVyZXIsCiAgICAgICAgICAgICAgICAg
ICBjb25zdCBnbDo6RnJhbWVidWZmZXJTdGF0ZSAmc3RhdGUsCkBAIC0yMzQsMTEgKzI0Miw2IEBA
IGNsYXNzIEZyYW1lYnVmZmVyVmsgOiBwdWJsaWMgRnJhbWVidWZmZXJJbXBsCiAgICAgVmtDbGVh
clZhbHVlIGdldENvcnJlY3RlZENvbG9yQ2xlYXJWYWx1ZShzaXplX3QgY29sb3JJbmRleEdMLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVmtDbGVh
ckNvbG9yVmFsdWUgJmNsZWFyQ29sb3IpIGNvbnN0OwogCi0gICAgdm9pZCB1cGRhdGVDb2xvclJl
c29sdmVBdHRhY2htZW50KAotICAgICAgICB1aW50MzJfdCBjb2xvckluZGV4R0wsCi0gICAgICAg
IHZrOjpJbWFnZU9yQnVmZmVyVmlld1N1YnJlc291cmNlU2VyaWFsIHJlc29sdmVJbWFnZVZpZXdT
ZXJpYWwpOwotICAgIHZvaWQgcmVtb3ZlQ29sb3JSZXNvbHZlQXR0YWNobWVudCh1aW50MzJfdCBj
b2xvckluZGV4R0wpOwotCiAgICAgdm9pZCB1cGRhdGVMYXllckNvdW50KCk7CiAKICAgICBXaW5k
b3dTdXJmYWNlVmsgKm1CYWNrYnVmZmVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkv
QU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL3Z1bGthbi9JbWFnZVZrLmNwcCBiL1NvdXJjZS9U
aGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci92dWxrYW4vSW1hZ2VWay5jcHAK
aW5kZXggNWFiMTJjMjQxZWNhMTQ5OGU5OWNjNDIyMTYyMjY1MmVkOTNmYmRjNC4uZDE1NGMxYzM4
OGU4ZmZjODg1MzgwM2U0NDdhNjE5Yzk2NTZhMGRkMSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJk
UGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL3Z1bGthbi9JbWFnZVZrLmNwcAorKysg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvdnVsa2FuL0lt
YWdlVmsuY3BwCkBAIC02NCw3ICs2NCw4IEBAIGVnbDo6RXJyb3IgSW1hZ2VWazo6aW5pdGlhbGl6
ZShjb25zdCBlZ2w6OkRpc3BsYXkgKmRpc3BsYXkpCiAgICAgICAgIFRleHR1cmVWayAqdGV4dHVy
ZVZrID0gR2V0SW1wbEFzPFRleHR1cmVWaz4oR2V0QXM8Z2w6OlRleHR1cmU+KG1TdGF0ZS5zb3Vy
Y2UpKTsKIAogICAgICAgICAvLyBNYWtlIHN1cmUgdGhlIHRleHR1cmUgdXNlcyByZW5kZXJhYmxl
IGZvcm1hdAotICAgICAgICBBTkdMRV9UUlkoUmVzdWx0VG9FR0wodGV4dHVyZVZrLT5lbnN1cmVS
ZW5kZXJhYmxlKGNvbnRleHRWaykpKTsKKyAgICAgICAgVGV4dHVyZVVwZGF0ZVJlc3VsdCB1cGRh
dGVSZXN1bHQgPSBUZXh0dXJlVXBkYXRlUmVzdWx0OjpJbWFnZVVuYWZmZWN0ZWQ7CisgICAgICAg
IEFOR0xFX1RSWShSZXN1bHRUb0VHTCh0ZXh0dXJlVmstPmVuc3VyZVJlbmRlcmFibGUoY29udGV4
dFZrLCAmdXBkYXRlUmVzdWx0KSkpOwogCiAgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGUgdGV4dHVy
ZSBoYXMgY3JlYXRlZCBpdHMgYmFja2luZyBzdG9yYWdlCiAgICAgICAgIEFOR0xFX1RSWShSZXN1
bHRUb0VHTCgKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdM
RS9yZW5kZXJlci92dWxrYW4vTWVtb3J5T2JqZWN0VmsuY3BwIGIvU291cmNlL1RoaXJkUGFydHkv
QU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL3Z1bGthbi9NZW1vcnlPYmplY3RWay5jcHAKaW5k
ZXggYTA2ZjhhZmNlNmRhNzk1ZTFhYzZmZGMwNGY2NGZlNmU5MTcyY2MxMC4uYzkwNzgwYjAzZDMz
N2I0OTUyNjM0MzhmNmNmZTFiNjkyOTk3YTBlNCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL3Z1bGthbi9NZW1vcnlPYmplY3RWay5jcHAK
KysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL3Z1bGth
bi9NZW1vcnlPYmplY3RWay5jcHAKQEAgLTI0OSw3ICsyNDksNyBAQCBhbmdsZTo6UmVzdWx0IE1l
bW9yeU9iamVjdFZrOjpjcmVhdGVJbWFnZShDb250ZXh0VmsgKmNvbnRleHRWaywKIAogICAgIC8v
IFRPRE8oam1hZGlsbCwgc3BhbmcpOiBNZW1vcnkgc3ViLWFsbG9jYXRpb24uIGh0dHA6Ly9hbmds
ZWJ1Zy5jb20vMjE2MgogICAgIEFTU0VSVChvZmZzZXQgPT0gMCk7Ci0gICAgQVNTRVJUKGV4dGVy
bmFsTWVtb3J5UmVxdWlyZW1lbnRzLnNpemUgPT0gbVNpemUpOworICAgIEFTU0VSVChleHRlcm5h
bE1lbW9yeVJlcXVpcmVtZW50cy5zaXplIDw9IG1TaXplKTsKIAogICAgIFZrTWVtb3J5UHJvcGVy
dHlGbGFncyBmbGFncyA9IGhhc1Byb3RlY3RlZENvbnRlbnQgPyBWS19NRU1PUllfUFJPUEVSVFlf
UFJPVEVDVEVEX0JJVCA6IDA7CiAgICAgQU5HTEVfVFJZKGltYWdlLT5pbml0RXh0ZXJuYWxNZW1v
cnkoY29udGV4dFZrLCByZW5kZXJlci0+Z2V0TWVtb3J5UHJvcGVydGllcygpLApkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL3Z1bGthbi9Q
cm9ncmFtRXhlY3V0YWJsZVZrLmNwcCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJB
TkdMRS9yZW5kZXJlci92dWxrYW4vUHJvZ3JhbUV4ZWN1dGFibGVWay5jcHAKaW5kZXggMWRhZWE1
MmIyNzdmOTJlYzVhNTYwZDJkMDk2ZTg5NjRhZThlNDUwMi4uMTdhNDEwODM2NGU4NjQ0YzU0YTNk
MjNhMmNmZGIzMzEwNDU5ZDVlMiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUv
c3JjL2xpYkFOR0xFL3JlbmRlcmVyL3Z1bGthbi9Qcm9ncmFtRXhlY3V0YWJsZVZrLmNwcAorKysg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvdnVsa2FuL1By
b2dyYW1FeGVjdXRhYmxlVmsuY3BwCkBAIC05OSwyNCArOTksNiBAQCBjb25zdGV4cHIgYm9vbCBJ
c0R5bmFtaWNEZXNjcmlwdG9yKFZrRGVzY3JpcHRvclR5cGUgZGVzY3JpcHRvclR5cGUpCiB9CiAK
IGNvbnN0ZXhwciBWa0Rlc2NyaXB0b3JUeXBlIGtTdG9yYWdlQnVmZmVyRGVzY3JpcHRvclR5cGUg
PSBWS19ERVNDUklQVE9SX1RZUEVfU1RPUkFHRV9CVUZGRVI7Ci0KLURlc2NyaXB0b3JTZXRJbmRl
eCBDYWNoZVR5cGVUb0Rlc2NyaXB0b3JTZXRJbmRleChWdWxrYW5DYWNoZVR5cGUgY2FjaGVUeXBl
KQotewotICAgIHN3aXRjaCAoY2FjaGVUeXBlKQotICAgIHsKLSAgICAgICAgY2FzZSBWdWxrYW5D
YWNoZVR5cGU6OlRleHR1cmVEZXNjcmlwdG9yczoKLSAgICAgICAgICAgIHJldHVybiBEZXNjcmlw
dG9yU2V0SW5kZXg6OlRleHR1cmU7Ci0gICAgICAgIGNhc2UgVnVsa2FuQ2FjaGVUeXBlOjpTaGFk
ZXJCdWZmZXJzRGVzY3JpcHRvcnM6Ci0gICAgICAgICAgICByZXR1cm4gRGVzY3JpcHRvclNldElu
ZGV4OjpTaGFkZXJSZXNvdXJjZTsKLSAgICAgICAgY2FzZSBWdWxrYW5DYWNoZVR5cGU6OlVuaWZv
cm1zQW5kWGZiRGVzY3JpcHRvcnM6Ci0gICAgICAgICAgICByZXR1cm4gRGVzY3JpcHRvclNldElu
ZGV4OjpVbmlmb3Jtc0FuZFhmYjsKLSAgICAgICAgY2FzZSBWdWxrYW5DYWNoZVR5cGU6OkRyaXZl
clVuaWZvcm1zRGVzY3JpcHRvcnM6Ci0gICAgICAgICAgICByZXR1cm4gRGVzY3JpcHRvclNldElu
ZGV4OjpJbnRlcm5hbDsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIFVOUkVBQ0hBQkxF
KCk7Ci0gICAgICAgICAgICByZXR1cm4gRGVzY3JpcHRvclNldEluZGV4OjpJbnZhbGlkRW51bTsK
LSAgICB9Ci19CiB9ICAvLyBuYW1lc3BhY2UKIAogRGVmYXVsdFVuaWZvcm1CbG9jazo6RGVmYXVs
dFVuaWZvcm1CbG9jaygpID0gZGVmYXVsdDsKQEAgLTIxNyw3ICsxOTksNyBAQCBhbmdsZTo6UmVz
dWx0IFByb2dyYW1JbmZvOjppbml0UHJvZ3JhbShDb250ZXh0VmsgKmNvbnRleHRWaywKICAgICBv
cHRpb25zLnNoYWRlclR5cGUgPSBzaGFkZXJUeXBlOwogICAgIG9wdGlvbnMucmVtb3ZlRWFybHlG
cmFnbWVudFRlc3RzT3B0aW1pemF0aW9uID0KICAgICAgICAgc2hhZGVyVHlwZSA9PSBnbDo6U2hh
ZGVyVHlwZTo6RnJhZ21lbnQgJiYgb3B0aW9uQml0cy5yZW1vdmVFYXJseUZyYWdtZW50VGVzdHNP
cHRpbWl6YXRpb247Ci0gICAgb3B0aW9ucy5yZW1vdmVEZWJ1Z0luZm8gICAgICAgICAgPSAhY29u
dGV4dFZrLT5nZXRGZWF0dXJlcygpLnJldGFpblNwaXJ2RGVidWdJbmZvLmVuYWJsZWQ7CisgICAg
b3B0aW9ucy5yZW1vdmVEZWJ1Z0luZm8gICAgICAgICAgPSAhY29udGV4dFZrLT5nZXRGZWF0dXJl
cygpLnJldGFpblNQSVJWRGVidWdJbmZvLmVuYWJsZWQ7CiAgICAgb3B0aW9ucy5pc1RyYW5zZm9y
bUZlZWRiYWNrU3RhZ2UgPSBpc0xhc3RQcmVGcmFnbWVudFN0YWdlICYmIGlzVHJhbnNmb3JtRmVl
ZGJhY2tQcm9ncmFtICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAh
b3B0aW9uQml0cy5yZW1vdmVUcmFuc2Zvcm1GZWVkYmFja0VtdWxhdGlvbjsKICAgICBvcHRpb25z
LmlzVHJhbnNmb3JtRmVlZGJhY2tFbXVsYXRlZCA9IGNvbnRleHRWay0+Z2V0RmVhdHVyZXMoKS5l
bXVsYXRlVHJhbnNmb3JtRmVlZGJhY2suZW5hYmxlZDsKQEAgLTI3MiwxMCArMjU0LDcgQEAgUHJv
Z3JhbUV4ZWN1dGFibGVWazo6UHJvZ3JhbUV4ZWN1dGFibGVWaygpCiAgICAgfQogfQogCi1Qcm9n
cmFtRXhlY3V0YWJsZVZrOjp+UHJvZ3JhbUV4ZWN1dGFibGVWaygpCi17Ci0gICAgb3V0cHV0Q3Vt
dWxhdGl2ZVBlcmZDb3VudGVycygpOwotfQorUHJvZ3JhbUV4ZWN1dGFibGVWazo6flByb2dyYW1F
eGVjdXRhYmxlVmsoKSB7fQogCiB2b2lkIFByb2dyYW1FeGVjdXRhYmxlVms6OnJlc2V0KENvbnRl
eHRWayAqY29udGV4dFZrKQogewpAQCAtMzAyLDEwICsyODEsOSBAQCB2b2lkIFByb2dyYW1FeGVj
dXRhYmxlVms6OnJlc2V0KENvbnRleHRWayAqY29udGV4dFZrKQogICAgICAgICBkZXNjcmlwdG9y
UG9vbC5yZWxlYXNlKGNvbnRleHRWayk7CiAgICAgfQogCi0gICAgUmVuZGVyZXJWayAqcmVuZGVy
ZXJWayA9IGNvbnRleHRWay0+Z2V0UmVuZGVyZXIoKTsKLSAgICBtVGV4dHVyZURlc2NyaXB0b3Jz
Q2FjaGUuZGVzdHJveShyZW5kZXJlclZrLCBWdWxrYW5DYWNoZVR5cGU6OlRleHR1cmVEZXNjcmlw
dG9ycyk7Ci0gICAgbVVuaWZvcm1zQW5kWGZiRGVzY3JpcHRvcnNDYWNoZS5kZXN0cm95KHJlbmRl
cmVyVmssIFZ1bGthbkNhY2hlVHlwZTo6VW5pZm9ybXNBbmRYZmJEZXNjcmlwdG9ycyk7Ci0gICAg
bVNoYWRlckJ1ZmZlckRlc2NyaXB0b3JzQ2FjaGUuZGVzdHJveShyZW5kZXJlclZrLCBWdWxrYW5D
YWNoZVR5cGU6OlNoYWRlckJ1ZmZlcnNEZXNjcmlwdG9ycyk7CisgICAgbVRleHR1cmVEZXNjcmlw
dG9yc0NhY2hlLmNsZWFyKCk7CisgICAgbVVuaWZvcm1zQW5kWGZiRGVzY3JpcHRvcnNDYWNoZS5j
bGVhcigpOworICAgIG1TaGFkZXJCdWZmZXJEZXNjcmlwdG9yc0NhY2hlLmNsZWFyKCk7CiAKICAg
ICAvLyBJbml0aWFsaXplIHdpdGggYW4gaW52YWxpZCBCdWZmZXJTZXJpYWwKICAgICBtQ3VycmVu
dERlZmF1bHRVbmlmb3JtQnVmZmVyU2VyaWFsID0gdms6OkJ1ZmZlclNlcmlhbCgpOwpAQCAtMzIz
LDM5ICszMDEsNjIgQEAgc3RkOjp1bmlxdWVfcHRyPHJ4OjpMaW5rRXZlbnQ+IFByb2dyYW1FeGVj
dXRhYmxlVms6OmxvYWQoQ29udGV4dFZrICpjb250ZXh0VmssCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnbDo6UHJvZ3JhbUV4
ZWN1dGFibGUgJmdsRXhlY3V0YWJsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGdsOjpCaW5hcnlJbnB1dFN0cmVhbSAqc3RyZWFtKQog
ewotICAgIGNsZWFyVmFyaWFibGVJbmZvTWFwKCk7CisgICAgZ2w6OlNoYWRlck1hcDxTaGFkZXJJ
bnRlcmZhY2VWYXJpYWJsZUluZm9NYXA6OlZhcmlhYmxlVHlwZVRvSW5mb01hcD4gZGF0YTsKKyAg
ICBnbDo6U2hhZGVyTWFwPFNoYWRlckludGVyZmFjZVZhcmlhYmxlSW5mb01hcDo6TmFtZVRvVHlw
ZUFuZEluZGV4TWFwPiBuYW1lVG9UeXBlQW5kSW5kZXhNYXA7CisgICAgZ2w6OlNoYWRlck1hcDxT
aGFkZXJJbnRlcmZhY2VWYXJpYWJsZUluZm9NYXA6OlZhcmlhYmxlVHlwZVRvSW5kZXhNYXA+IGlu
ZGV4ZWRSZXNvdXJjZU1hcDsKIAogICAgIGZvciAoZ2w6OlNoYWRlclR5cGUgc2hhZGVyVHlwZSA6
IGdsOjpBbGxTaGFkZXJUeXBlcygpKQogICAgIHsKLSAgICAgICAgc2l6ZV90IHZhcmlhYmxlSW5m
b01hcFNpemUgPSBzdHJlYW0tPnJlYWRJbnQ8c2l6ZV90PigpOworICAgICAgICBzaXplX3QgbmFt
ZUNvdW50ID0gc3RyZWFtLT5yZWFkSW50PHNpemVfdD4oKTsKKyAgICAgICAgZm9yIChzaXplX3Qg
bmFtZUluZGV4ID0gMDsgbmFtZUluZGV4IDwgbmFtZUNvdW50OyArK25hbWVJbmRleCkKKyAgICAg
ICAgeworICAgICAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgdmFyaWFibGVOYW1lICA9IHN0cmVh
bS0+cmVhZFN0cmluZygpOworICAgICAgICAgICAgU2hhZGVyVmFyaWFibGVUeXBlIHZhcmlhYmxl
VHlwZSA9IHN0cmVhbS0+cmVhZEVudW08U2hhZGVyVmFyaWFibGVUeXBlPigpOworICAgICAgICAg
ICAgdWludDMyX3QgaW5kZXggICAgICAgICAgICAgICAgICA9IHN0cmVhbS0+cmVhZEludDx1aW50
MzJfdD4oKTsKKyAgICAgICAgICAgIG5hbWVUb1R5cGVBbmRJbmRleE1hcFtzaGFkZXJUeXBlXVt2
YXJpYWJsZU5hbWVdID0ge3ZhcmlhYmxlVHlwZSwgaW5kZXh9OworICAgICAgICB9CiAKLSAgICAg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB2YXJpYWJsZUluZm9NYXBTaXplOyArK2kpCisgICAg
ICAgIGZvciAoU2hhZGVyVmFyaWFibGVUeXBlIHZhcmlhYmxlVHlwZSA6IGFuZ2xlOjpBbGxFbnVt
czxTaGFkZXJWYXJpYWJsZVR5cGU+KCkpCiAgICAgICAgIHsKLSAgICAgICAgICAgIGNvbnN0IHN0
ZDo6c3RyaW5nIHZhcmlhYmxlTmFtZSAgICA9IHN0cmVhbS0+cmVhZFN0cmluZygpOwotICAgICAg
ICAgICAgU2hhZGVySW50ZXJmYWNlVmFyaWFibGVJbmZvICZpbmZvID0gbVZhcmlhYmxlSW5mb01h
cC5hZGQoc2hhZGVyVHlwZSwgdmFyaWFibGVOYW1lKTsKLQotICAgICAgICAgICAgaW5mby5kZXNj
cmlwdG9yU2V0ID0gc3RyZWFtLT5yZWFkSW50PHVpbnQzMl90PigpOwotICAgICAgICAgICAgaW5m
by5iaW5kaW5nICAgICAgID0gc3RyZWFtLT5yZWFkSW50PHVpbnQzMl90PigpOwotICAgICAgICAg
ICAgaW5mby5sb2NhdGlvbiAgICAgID0gc3RyZWFtLT5yZWFkSW50PHVpbnQzMl90PigpOwotICAg
ICAgICAgICAgaW5mby5jb21wb25lbnQgICAgID0gc3RyZWFtLT5yZWFkSW50PHVpbnQzMl90Pigp
OwotICAgICAgICAgICAgaW5mby5pbmRleCAgICAgICAgID0gc3RyZWFtLT5yZWFkSW50PHVpbnQz
Ml90PigpOwotICAgICAgICAgICAgLy8gUGFja2VkRW51bUJpdFNldCB1c2VzIHVpbnQ4X3QKLSAg
ICAgICAgICAgIGluZm8uYWN0aXZlU3RhZ2VzID0gZ2w6OlNoYWRlckJpdFNldChzdHJlYW0tPnJl
YWRJbnQ8dWludDhfdD4oKSk7Ci0gICAgICAgICAgICBMb2FkU2hhZGVySW50ZXJmYWNlVmFyaWFi
bGVYZmJJbmZvKHN0cmVhbSwgJmluZm8ueGZiKTsKLSAgICAgICAgICAgIGluZm8uZmllbGRYZmIu
cmVzaXplKHN0cmVhbS0+cmVhZEludDxzaXplX3Q+KCkpOwotICAgICAgICAgICAgZm9yIChTaGFk
ZXJJbnRlcmZhY2VWYXJpYWJsZVhmYkluZm8gJnhmYiA6IGluZm8uZmllbGRYZmIpCisgICAgICAg
ICAgICBzaXplX3QgaW5mb0FycmF5U2l6ZSA9IHN0cmVhbS0+cmVhZEludDxzaXplX3Q+KCk7Cisg
ICAgICAgICAgICBmb3IgKHNpemVfdCBpbmZvSW5kZXggPSAwOyBpbmZvSW5kZXggPCBpbmZvQXJy
YXlTaXplOyArK2luZm9JbmRleCkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBMb2Fk
U2hhZGVySW50ZXJmYWNlVmFyaWFibGVYZmJJbmZvKHN0cmVhbSwgJnhmYik7CisgICAgICAgICAg
ICAgICAgU2hhZGVySW50ZXJmYWNlVmFyaWFibGVJbmZvIGluZm87CisKKyAgICAgICAgICAgICAg
ICBpbmZvLmRlc2NyaXB0b3JTZXQgPSBzdHJlYW0tPnJlYWRJbnQ8dWludDMyX3Q+KCk7CisgICAg
ICAgICAgICAgICAgaW5mby5iaW5kaW5nICAgICAgID0gc3RyZWFtLT5yZWFkSW50PHVpbnQzMl90
PigpOworICAgICAgICAgICAgICAgIGluZm8ubG9jYXRpb24gICAgICA9IHN0cmVhbS0+cmVhZElu
dDx1aW50MzJfdD4oKTsKKyAgICAgICAgICAgICAgICBpbmZvLmNvbXBvbmVudCAgICAgPSBzdHJl
YW0tPnJlYWRJbnQ8dWludDMyX3Q+KCk7CisgICAgICAgICAgICAgICAgaW5mby5pbmRleCAgICAg
ICAgID0gc3RyZWFtLT5yZWFkSW50PHVpbnQzMl90PigpOworICAgICAgICAgICAgICAgIC8vIFBh
Y2tlZEVudW1CaXRTZXQgdXNlcyB1aW50OF90CisgICAgICAgICAgICAgICAgaW5mby5hY3RpdmVT
dGFnZXMgPSBnbDo6U2hhZGVyQml0U2V0KHN0cmVhbS0+cmVhZEludDx1aW50OF90PigpKTsKKyAg
ICAgICAgICAgICAgICBMb2FkU2hhZGVySW50ZXJmYWNlVmFyaWFibGVYZmJJbmZvKHN0cmVhbSwg
JmluZm8ueGZiKTsKKyAgICAgICAgICAgICAgICBpbmZvLmZpZWxkWGZiLnJlc2l6ZShzdHJlYW0t
PnJlYWRJbnQ8c2l6ZV90PigpKTsKKyAgICAgICAgICAgICAgICBmb3IgKFNoYWRlckludGVyZmFj
ZVZhcmlhYmxlWGZiSW5mbyAmeGZiIDogaW5mby5maWVsZFhmYikKKyAgICAgICAgICAgICAgICB7
CisgICAgICAgICAgICAgICAgICAgIExvYWRTaGFkZXJJbnRlcmZhY2VWYXJpYWJsZVhmYkluZm8o
c3RyZWFtLCAmeGZiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaW5mby51
c2VSZWxheGVkUHJlY2lzaW9uICAgICA9IHN0cmVhbS0+cmVhZEJvb2woKTsKKyAgICAgICAgICAg
ICAgICBpbmZvLnZhcnlpbmdJc0lucHV0ICAgICAgICAgID0gc3RyZWFtLT5yZWFkQm9vbCgpOwor
ICAgICAgICAgICAgICAgIGluZm8udmFyeWluZ0lzT3V0cHV0ICAgICAgICAgPSBzdHJlYW0tPnJl
YWRCb29sKCk7CisgICAgICAgICAgICAgICAgaW5mby5hdHRyaWJ1dGVDb21wb25lbnRDb3VudCA9
IHN0cmVhbS0+cmVhZEludDx1aW50OF90PigpOworICAgICAgICAgICAgICAgIGluZm8uYXR0cmli
dXRlTG9jYXRpb25Db3VudCAgPSBzdHJlYW0tPnJlYWRJbnQ8dWludDhfdD4oKTsKKyAgICAgICAg
ICAgICAgICBpbmZvLmlzRHVwbGljYXRlICAgICAgICAgICAgID0gc3RyZWFtLT5yZWFkQm9vbCgp
OworCisgICAgICAgICAgICAgICAgZGF0YVtzaGFkZXJUeXBlXVt2YXJpYWJsZVR5cGVdLnB1c2hf
YmFjayhpbmZvKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdWludDMyX3QgcmVzb3Vy
Y2VNYXBTaXplID0gc3RyZWFtLT5yZWFkSW50PHVpbnQzMl90PigpOworICAgICAgICAgICAgZm9y
ICh1aW50MzJfdCByZXNvdXJjZUluZGV4ID0gMDsgcmVzb3VyY2VJbmRleCA8IHJlc291cmNlTWFw
U2l6ZTsgKytyZXNvdXJjZUluZGV4KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHVp
bnQzMl90IHZhcmlhYmxlSW5kZXggPSBzdHJlYW0tPnJlYWRJbnQ8dWludDMyX3Q+KCk7CisgICAg
ICAgICAgICAgICAgaW5kZXhlZFJlc291cmNlTWFwW3NoYWRlclR5cGVdW3ZhcmlhYmxlVHlwZV1b
cmVzb3VyY2VJbmRleF0gPSB2YXJpYWJsZUluZGV4OwogICAgICAgICAgICAgfQotICAgICAgICAg
ICAgaW5mby51c2VSZWxheGVkUHJlY2lzaW9uICAgICA9IHN0cmVhbS0+cmVhZEJvb2woKTsKLSAg
ICAgICAgICAgIGluZm8udmFyeWluZ0lzSW5wdXQgICAgICAgICAgPSBzdHJlYW0tPnJlYWRCb29s
KCk7Ci0gICAgICAgICAgICBpbmZvLnZhcnlpbmdJc091dHB1dCAgICAgICAgID0gc3RyZWFtLT5y
ZWFkQm9vbCgpOwotICAgICAgICAgICAgaW5mby5hdHRyaWJ1dGVDb21wb25lbnRDb3VudCA9IHN0
cmVhbS0+cmVhZEludDx1aW50OF90PigpOwotICAgICAgICAgICAgaW5mby5hdHRyaWJ1dGVMb2Nh
dGlvbkNvdW50ICA9IHN0cmVhbS0+cmVhZEludDx1aW50OF90PigpOwotICAgICAgICAgICAgaW5m
by5pc0R1cGxpY2F0ZSAgICAgICAgICAgICA9IHN0cmVhbS0+cmVhZEJvb2woKTsKICAgICAgICAg
fQogICAgIH0KIAorICAgIG1WYXJpYWJsZUluZm9NYXAubG9hZChkYXRhLCBuYW1lVG9UeXBlQW5k
SW5kZXhNYXAsIGluZGV4ZWRSZXNvdXJjZU1hcCk7CisKICAgICBtT3JpZ2luYWxTaGFkZXJJbmZv
LmxvYWQoc3RyZWFtKTsKIAogICAgIC8vIERlc2VyaWFsaXplcyB0aGUgdW5pZm9ybUxheW91dCBk
YXRhIG9mIG1EZWZhdWx0VW5pZm9ybUJsb2NrcwpAQCAtMzkxLDM0ICszOTIsNjIgQEAgc3RkOjp1
bmlxdWVfcHRyPHJ4OjpMaW5rRXZlbnQ+IFByb2dyYW1FeGVjdXRhYmxlVms6OmxvYWQoQ29udGV4
dFZrICpjb250ZXh0VmssCiAKIHZvaWQgUHJvZ3JhbUV4ZWN1dGFibGVWazo6c2F2ZShnbDo6Qmlu
YXJ5T3V0cHV0U3RyZWFtICpzdHJlYW0pCiB7CisgICAgY29uc3QgZ2w6OlNoYWRlck1hcDxTaGFk
ZXJJbnRlcmZhY2VWYXJpYWJsZUluZm9NYXA6OlZhcmlhYmxlVHlwZVRvSW5mb01hcD4gJmRhdGEg
PQorICAgICAgICBtVmFyaWFibGVJbmZvTWFwLmdldERhdGEoKTsKKyAgICBjb25zdCBnbDo6U2hh
ZGVyTWFwPFNoYWRlckludGVyZmFjZVZhcmlhYmxlSW5mb01hcDo6TmFtZVRvVHlwZUFuZEluZGV4
TWFwPgorICAgICAgICAmbmFtZVRvVHlwZUFuZEluZGV4TWFwID0gbVZhcmlhYmxlSW5mb01hcC5n
ZXROYW1lVG9UeXBlQW5kSW5kZXhNYXAoKTsKKyAgICBjb25zdCBnbDo6U2hhZGVyTWFwPFNoYWRl
ckludGVyZmFjZVZhcmlhYmxlSW5mb01hcDo6VmFyaWFibGVUeXBlVG9JbmRleE1hcD4KKyAgICAg
ICAgJmluZGV4ZWRSZXNvdXJjZU1hcCA9IG1WYXJpYWJsZUluZm9NYXAuZ2V0SW5kZXhlZFJlc291
cmNlTWFwKCk7CisKICAgICBmb3IgKGdsOjpTaGFkZXJUeXBlIHNoYWRlclR5cGUgOiBnbDo6QWxs
U2hhZGVyVHlwZXMoKSkKICAgICB7Ci0gICAgICAgIHN0cmVhbS0+d3JpdGVJbnQobVZhcmlhYmxl
SW5mb01hcC52YXJpYWJsZUNvdW50KHNoYWRlclR5cGUpKTsKLSAgICAgICAgZm9yIChjb25zdCBh
dXRvICZpdCA6IG1WYXJpYWJsZUluZm9NYXAuZ2V0SXRlcmF0b3Ioc2hhZGVyVHlwZSkpCisgICAg
ICAgIHN0cmVhbS0+d3JpdGVJbnQobmFtZVRvVHlwZUFuZEluZGV4TWFwW3NoYWRlclR5cGVdLnNp
emUoKSk7CisgICAgICAgIGZvciAoY29uc3QgYXV0byAmaXRlciA6IG5hbWVUb1R5cGVBbmRJbmRl
eE1hcFtzaGFkZXJUeXBlXSkKICAgICAgICAgewotICAgICAgICAgICAgY29uc3Qgc3RkOjpzdHJp
bmcgJm5hbWUgICAgICAgICAgICAgICAgID0gaXQuZmlyc3Q7Ci0gICAgICAgICAgICBjb25zdCBT
aGFkZXJJbnRlcmZhY2VWYXJpYWJsZUluZm8gJmluZm8gPSBpdC5zZWNvbmQ7Ci0KKyAgICAgICAg
ICAgIGNvbnN0IHN0ZDo6c3RyaW5nICZuYW1lICAgICAgICAgID0gaXRlci5maXJzdDsKKyAgICAg
ICAgICAgIGNvbnN0IFR5cGVBbmRJbmRleCAmdHlwZUFuZEluZGV4ID0gaXRlci5zZWNvbmQ7CiAg
ICAgICAgICAgICBzdHJlYW0tPndyaXRlU3RyaW5nKG5hbWUpOwotICAgICAgICAgICAgc3RyZWFt
LT53cml0ZUludChpbmZvLmRlc2NyaXB0b3JTZXQpOwotICAgICAgICAgICAgc3RyZWFtLT53cml0
ZUludChpbmZvLmJpbmRpbmcpOwotICAgICAgICAgICAgc3RyZWFtLT53cml0ZUludChpbmZvLmxv
Y2F0aW9uKTsKLSAgICAgICAgICAgIHN0cmVhbS0+d3JpdGVJbnQoaW5mby5jb21wb25lbnQpOwot
ICAgICAgICAgICAgc3RyZWFtLT53cml0ZUludChpbmZvLmluZGV4KTsKLSAgICAgICAgICAgIC8v
IFBhY2tlZEVudW1CaXRTZXQgdXNlcyB1aW50OF90Ci0gICAgICAgICAgICBzdHJlYW0tPndyaXRl
SW50KGluZm8uYWN0aXZlU3RhZ2VzLmJpdHMoKSk7Ci0gICAgICAgICAgICBTYXZlU2hhZGVySW50
ZXJmYWNlVmFyaWFibGVYZmJJbmZvKGluZm8ueGZiLCBzdHJlYW0pOwotICAgICAgICAgICAgc3Ry
ZWFtLT53cml0ZUludChpbmZvLmZpZWxkWGZiLnNpemUoKSk7Ci0gICAgICAgICAgICBmb3IgKGNv
bnN0IFNoYWRlckludGVyZmFjZVZhcmlhYmxlWGZiSW5mbyAmeGZiIDogaW5mby5maWVsZFhmYikK
KyAgICAgICAgICAgIHN0cmVhbS0+d3JpdGVFbnVtKHR5cGVBbmRJbmRleC52YXJpYWJsZVR5cGUp
OworICAgICAgICAgICAgc3RyZWFtLT53cml0ZUludCh0eXBlQW5kSW5kZXguaW5kZXgpOworICAg
ICAgICB9CisKKyAgICAgICAgZm9yIChTaGFkZXJWYXJpYWJsZVR5cGUgdmFyaWFibGVUeXBlIDog
YW5nbGU6OkFsbEVudW1zPFNoYWRlclZhcmlhYmxlVHlwZT4oKSkKKyAgICAgICAgeworICAgICAg
ICAgICAgY29uc3QgU2hhZGVySW50ZXJmYWNlVmFyaWFibGVJbmZvTWFwOjpWYXJpYWJsZUluZm9B
cnJheSAmaW5mb0FycmF5ID0KKyAgICAgICAgICAgICAgICBkYXRhW3NoYWRlclR5cGVdW3Zhcmlh
YmxlVHlwZV07CisKKyAgICAgICAgICAgIHN0cmVhbS0+d3JpdGVJbnQoaW5mb0FycmF5LnNpemUo
KSk7CisgICAgICAgICAgICBmb3IgKGNvbnN0IFNoYWRlckludGVyZmFjZVZhcmlhYmxlSW5mbyAm
aW5mbyA6IGluZm9BcnJheSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBzdHJlYW0t
PndyaXRlSW50KGluZm8uZGVzY3JpcHRvclNldCk7CisgICAgICAgICAgICAgICAgc3RyZWFtLT53
cml0ZUludChpbmZvLmJpbmRpbmcpOworICAgICAgICAgICAgICAgIHN0cmVhbS0+d3JpdGVJbnQo
aW5mby5sb2NhdGlvbik7CisgICAgICAgICAgICAgICAgc3RyZWFtLT53cml0ZUludChpbmZvLmNv
bXBvbmVudCk7CisgICAgICAgICAgICAgICAgc3RyZWFtLT53cml0ZUludChpbmZvLmluZGV4KTsK
KyAgICAgICAgICAgICAgICAvLyBQYWNrZWRFbnVtQml0U2V0IHVzZXMgdWludDhfdAorICAgICAg
ICAgICAgICAgIHN0cmVhbS0+d3JpdGVJbnQoaW5mby5hY3RpdmVTdGFnZXMuYml0cygpKTsKKyAg
ICAgICAgICAgICAgICBTYXZlU2hhZGVySW50ZXJmYWNlVmFyaWFibGVYZmJJbmZvKGluZm8ueGZi
LCBzdHJlYW0pOworICAgICAgICAgICAgICAgIHN0cmVhbS0+d3JpdGVJbnQoaW5mby5maWVsZFhm
Yi5zaXplKCkpOworICAgICAgICAgICAgICAgIGZvciAoY29uc3QgU2hhZGVySW50ZXJmYWNlVmFy
aWFibGVYZmJJbmZvICZ4ZmIgOiBpbmZvLmZpZWxkWGZiKQorICAgICAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgICAgICAgU2F2ZVNoYWRlckludGVyZmFjZVZhcmlhYmxlWGZiSW5mbyh4ZmIs
IHN0cmVhbSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHN0cmVhbS0+d3Jp
dGVCb29sKGluZm8udXNlUmVsYXhlZFByZWNpc2lvbik7CisgICAgICAgICAgICAgICAgc3RyZWFt
LT53cml0ZUJvb2woaW5mby52YXJ5aW5nSXNJbnB1dCk7CisgICAgICAgICAgICAgICAgc3RyZWFt
LT53cml0ZUJvb2woaW5mby52YXJ5aW5nSXNPdXRwdXQpOworICAgICAgICAgICAgICAgIHN0cmVh
bS0+d3JpdGVJbnQoaW5mby5hdHRyaWJ1dGVDb21wb25lbnRDb3VudCk7CisgICAgICAgICAgICAg
ICAgc3RyZWFtLT53cml0ZUludChpbmZvLmF0dHJpYnV0ZUxvY2F0aW9uQ291bnQpOworICAgICAg
ICAgICAgICAgIHN0cmVhbS0+d3JpdGVCb29sKGluZm8uaXNEdXBsaWNhdGUpOworICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICBjb25zdCBTaGFkZXJJbnRlcmZhY2VWYXJpYWJsZUluZm9NYXA6
OlJlc291cmNlSW5kZXhNYXAgJnJlc291cmNlSW5kZXhNYXAgPQorICAgICAgICAgICAgICAgIGlu
ZGV4ZWRSZXNvdXJjZU1hcFtzaGFkZXJUeXBlXVt2YXJpYWJsZVR5cGVdOworICAgICAgICAgICAg
c3RyZWFtLT53cml0ZUludChzdGF0aWNfY2FzdDx1aW50MzJfdD4ocmVzb3VyY2VJbmRleE1hcC5z
aXplKCkpKTsKKyAgICAgICAgICAgIGZvciAodWludDMyX3QgcmVzb3VyY2VJbmRleCA9IDA7IHJl
c291cmNlSW5kZXggPCByZXNvdXJjZUluZGV4TWFwLnNpemUoKTsKKyAgICAgICAgICAgICAgICAg
KytyZXNvdXJjZUluZGV4KQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIFNhdmVTaGFk
ZXJJbnRlcmZhY2VWYXJpYWJsZVhmYkluZm8oeGZiLCBzdHJlYW0pOworICAgICAgICAgICAgICAg
IHN0cmVhbS0+d3JpdGVJbnQocmVzb3VyY2VJbmRleE1hcFtyZXNvdXJjZUluZGV4XSk7CiAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICBzdHJlYW0tPndyaXRlQm9vbChpbmZvLnVzZVJlbGF4ZWRQ
cmVjaXNpb24pOwotICAgICAgICAgICAgc3RyZWFtLT53cml0ZUJvb2woaW5mby52YXJ5aW5nSXNJ
bnB1dCk7Ci0gICAgICAgICAgICBzdHJlYW0tPndyaXRlQm9vbChpbmZvLnZhcnlpbmdJc091dHB1
dCk7Ci0gICAgICAgICAgICBzdHJlYW0tPndyaXRlSW50KGluZm8uYXR0cmlidXRlQ29tcG9uZW50
Q291bnQpOwotICAgICAgICAgICAgc3RyZWFtLT53cml0ZUludChpbmZvLmF0dHJpYnV0ZUxvY2F0
aW9uQ291bnQpOwotICAgICAgICAgICAgc3RyZWFtLT53cml0ZUJvb2woaW5mby5pc0R1cGxpY2F0
ZSk7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTQ5Myw3ICs1MjIsOSBAQCBhbmdsZTo6UmVzdWx0
IFByb2dyYW1FeGVjdXRhYmxlVms6OmFsbG9jVW5pZm9ybUFuZFhmYkRlc2NyaXB0b3JTZXQoCiAK
ICAgICAvLyBMb29rIHVwIGluIHRoZSBjYWNoZSBmaXJzdAogICAgIFZrRGVzY3JpcHRvclNldCBk
ZXNjcmlwdG9yU2V0ID0gVktfTlVMTF9IQU5ETEU7Ci0gICAgaWYgKG1Vbmlmb3Jtc0FuZFhmYkRl
c2NyaXB0b3JzQ2FjaGUuZ2V0KHhmYkJ1ZmZlckRlc2MsICZkZXNjcmlwdG9yU2V0KSkKKyAgICBp
ZiAobVVuaWZvcm1zQW5kWGZiRGVzY3JpcHRvcnNDYWNoZS5nZXQoCisgICAgICAgICAgICB4ZmJC
dWZmZXJEZXNjLCAmZGVzY3JpcHRvclNldCwKKyAgICAgICAgICAgICZtUGVyZkNvdW50ZXJzLmNh
Y2hlU3RhdHNbRGVzY3JpcHRvclNldEluZGV4OjpVbmlmb3Jtc0FuZFhmYl0pKQogICAgIHsKICAg
ICAgICAgKm5ld0Rlc2NyaXB0b3JTZXRBbGxvY2F0ZWQgICAgICAgICAgICAgICAgICAgICAgICAg
ID0gZmFsc2U7CiAgICAgICAgIG1EZXNjcmlwdG9yU2V0c1tEZXNjcmlwdG9yU2V0SW5kZXg6OlVu
aWZvcm1zQW5kWGZiXSA9IGRlc2NyaXB0b3JTZXQ7CkBAIC01MTAsMTMgKzU0MSwxMyBAQCBhbmds
ZTo6UmVzdWx0IFByb2dyYW1FeGVjdXRhYmxlVms6OmFsbG9jVW5pZm9ybUFuZFhmYkRlc2NyaXB0
b3JTZXQoCiAgICAgLy8gQ2xlYXIgZGVzY3JpcHRvciBzZXQgY2FjaGUuIEl0IG1heSBubyBsb25n
ZXIgYmUgdmFsaWQuCiAgICAgaWYgKG5ld1Bvb2xBbGxvY2F0ZWQpCiAgICAgewotICAgICAgICBt
VW5pZm9ybXNBbmRYZmJEZXNjcmlwdG9yc0NhY2hlLmRlc3Ryb3koY29udGV4dC0+Z2V0UmVuZGVy
ZXIoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZ1
bGthbkNhY2hlVHlwZTo6VW5pZm9ybXNBbmRYZmJEZXNjcmlwdG9ycyk7CisgICAgICAgIG1Vbmlm
b3Jtc0FuZFhmYkRlc2NyaXB0b3JzQ2FjaGUuY2xlYXIoKTsKICAgICB9CiAKICAgICAvLyBBZGQg
dGhlIGRlc2NyaXB0b3Igc2V0IGludG8gY2FjaGUKLSAgICBtVW5pZm9ybXNBbmRYZmJEZXNjcmlw
dG9yc0NhY2hlLmluc2VydCh4ZmJCdWZmZXJEZXNjLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG1EZXNjcmlwdG9yU2V0c1tEZXNjcmlwdG9yU2V0SW5kZXg6OlVu
aWZvcm1zQW5kWGZiXSk7CisgICAgbVVuaWZvcm1zQW5kWGZiRGVzY3JpcHRvcnNDYWNoZS5pbnNl
cnQoCisgICAgICAgIHhmYkJ1ZmZlckRlc2MsIG1EZXNjcmlwdG9yU2V0c1tEZXNjcmlwdG9yU2V0
SW5kZXg6OlVuaWZvcm1zQW5kWGZiXSwKKyAgICAgICAgJm1QZXJmQ291bnRlcnMuY2FjaGVTdGF0
c1tEZXNjcmlwdG9yU2V0SW5kZXg6OlVuaWZvcm1zQW5kWGZiXSk7CiAgICAgKm5ld0Rlc2NyaXB0
b3JTZXRBbGxvY2F0ZWQgPSB0cnVlOwogCiAgICAgcmV0dXJuIGFuZ2xlOjpSZXN1bHQ6OkNvbnRp
bnVlOwpAQCAtNTQ3LDMxICs1NzgsMjkgQEAgYW5nbGU6OlJlc3VsdCBQcm9ncmFtRXhlY3V0YWJs
ZVZrOjphbGxvY2F0ZURlc2NyaXB0b3JTZXRBbmRHZXRJbmZvKAogICAgICAgICBuZXdQb29sQWxs
b2NhdGVkT3V0KSk7CiAgICAgbUVtcHR5RGVzY3JpcHRvclNldHNbZGVzY3JpcHRvclNldEluZGV4
XSA9IFZLX05VTExfSEFORExFOwogCi0gICAgKyttUGVyZkNvdW50ZXJzLmRlc2NyaXB0b3JTZXRB
bGxvY2F0aW9uc1tkZXNjcmlwdG9yU2V0SW5kZXhdOwotCiAgICAgcmV0dXJuIGFuZ2xlOjpSZXN1
bHQ6OkNvbnRpbnVlOwogfQogCiB2b2lkIFByb2dyYW1FeGVjdXRhYmxlVms6OmFkZEludGVyZmFj
ZUJsb2NrRGVzY3JpcHRvclNldERlc2MoCiAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8Z2w6OkludGVy
ZmFjZUJsb2NrPiAmYmxvY2tzLAogICAgIGdsOjpTaGFkZXJUeXBlIHNoYWRlclR5cGUsCisgICAg
U2hhZGVyVmFyaWFibGVUeXBlIHZhcmlhYmxlVHlwZSwKICAgICBWa0Rlc2NyaXB0b3JUeXBlIGRl
c2NUeXBlLAogICAgIHZrOjpEZXNjcmlwdG9yU2V0TGF5b3V0RGVzYyAqZGVzY091dCkKIHsKLSAg
ICBmb3IgKHVpbnQzMl90IGJ1ZmZlckluZGV4ID0gMDsgYnVmZmVySW5kZXggPCBibG9ja3Muc2l6
ZSgpOykKKyAgICBmb3IgKHVpbnQzMl90IGJ1ZmZlckluZGV4ID0gMCwgYXJyYXlTaXplID0gMDsg
YnVmZmVySW5kZXggPCBibG9ja3Muc2l6ZSgpOworICAgICAgICAgYnVmZmVySW5kZXggKz0gYXJy
YXlTaXplKQogICAgIHsKICAgICAgICAgZ2w6OkludGVyZmFjZUJsb2NrIGJsb2NrID0gYmxvY2tz
W2J1ZmZlckluZGV4XTsKLSAgICAgICAgY29uc3QgdWludDMyX3QgYXJyYXlTaXplID0gR2V0SW50
ZXJmYWNlQmxvY2tBcnJheVNpemUoYmxvY2tzLCBidWZmZXJJbmRleCk7Ci0gICAgICAgIGJ1ZmZl
ckluZGV4ICs9IGFycmF5U2l6ZTsKKyAgICAgICAgYXJyYXlTaXplICAgICAgICAgICAgICAgID0g
R2V0SW50ZXJmYWNlQmxvY2tBcnJheVNpemUoYmxvY2tzLCBidWZmZXJJbmRleCk7CiAKICAgICAg
ICAgaWYgKCFibG9jay5pc0FjdGl2ZShzaGFkZXJUeXBlKSkKICAgICAgICAgewogICAgICAgICAg
ICAgY29udGludWU7CiAgICAgICAgIH0KIAotICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyBibG9j
a05hbWUgPSBibG9jay5tYXBwZWROYW1lOwotCi0gICAgICAgIGNvbnN0IFNoYWRlckludGVyZmFj
ZVZhcmlhYmxlSW5mbyAmaW5mbyA9IG1WYXJpYWJsZUluZm9NYXAuZ2V0KHNoYWRlclR5cGUsIGJs
b2NrTmFtZSk7CisgICAgICAgIGNvbnN0IFNoYWRlckludGVyZmFjZVZhcmlhYmxlSW5mbyAmaW5m
byA9CisgICAgICAgICAgICBtVmFyaWFibGVJbmZvTWFwLmdldEluZGV4ZWRWYXJpYWJsZUluZm8o
c2hhZGVyVHlwZSwgdmFyaWFibGVUeXBlLCBidWZmZXJJbmRleCk7CiAgICAgICAgIGlmIChpbmZv
LmlzRHVwbGljYXRlKQogICAgICAgICB7CiAgICAgICAgICAgICBjb250aW51ZTsKQEAgLTU4OCwx
OSArNjE3LDEyIEBAIHZvaWQgUHJvZ3JhbUV4ZWN1dGFibGVWazo6YWRkQXRvbWljQ291bnRlckJ1
ZmZlckRlc2NyaXB0b3JTZXREZXNjKAogICAgIGdsOjpTaGFkZXJUeXBlIHNoYWRlclR5cGUsCiAg
ICAgdms6OkRlc2NyaXB0b3JTZXRMYXlvdXREZXNjICpkZXNjT3V0KQogewotICAgIGlmIChhdG9t
aWNDb3VudGVyQnVmZmVycy5lbXB0eSgpKQorICAgIGlmIChhdG9taWNDb3VudGVyQnVmZmVycy5l
bXB0eSgpIHx8ICFtVmFyaWFibGVJbmZvTWFwLmhhc0F0b21pY0NvdW50ZXJJbmZvKHNoYWRlclR5
cGUpKQogICAgIHsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIHN0ZDo6c3RyaW5nIGJs
b2NrTmFtZShzaDo6dms6OmtBdG9taWNDb3VudGVyc0Jsb2NrTmFtZSk7Ci0KLSAgICBpZiAoIW1W
YXJpYWJsZUluZm9NYXAuY29udGFpbnMoc2hhZGVyVHlwZSwgYmxvY2tOYW1lKSkKLSAgICB7Ci0g
ICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBjb25zdCBTaGFkZXJJbnRlcmZhY2VWYXJpYWJs
ZUluZm8gJmluZm8gPSBtVmFyaWFibGVJbmZvTWFwLmdldChzaGFkZXJUeXBlLCBibG9ja05hbWUp
OworICAgIGNvbnN0IFNoYWRlckludGVyZmFjZVZhcmlhYmxlSW5mbyAmaW5mbyA9IG1WYXJpYWJs
ZUluZm9NYXAuZ2V0QXRvbWljQ291bnRlckluZm8oc2hhZGVyVHlwZSk7CiAgICAgaWYgKGluZm8u
aXNEdXBsaWNhdGUgfHwgIWluZm8uYWN0aXZlU3RhZ2VzW3NoYWRlclR5cGVdKQogICAgIHsKICAg
ICAgICAgcmV0dXJuOwpAQCAtNjIxLDIzICs2NDMsMjMgQEAgdm9pZCBQcm9ncmFtRXhlY3V0YWJs
ZVZrOjphZGRJbWFnZURlc2NyaXB0b3JTZXREZXNjKGNvbnN0IGdsOjpQcm9ncmFtRXhlY3V0YWJs
ZQogCiAgICAgZm9yICh1aW50MzJfdCBpbWFnZUluZGV4ID0gMDsgaW1hZ2VJbmRleCA8IGltYWdl
QmluZGluZ3Muc2l6ZSgpOyArK2ltYWdlSW5kZXgpCiAgICAgewotICAgICAgICBjb25zdCBnbDo6
SW1hZ2VCaW5kaW5nICZpbWFnZUJpbmRpbmcgPSBpbWFnZUJpbmRpbmdzW2ltYWdlSW5kZXhdOwot
ICAgICAgICB1aW50MzJfdCB1bmlmb3JtSW5kZXggICAgICAgICAgICAgICAgPSBleGVjdXRhYmxl
LmdldFVuaWZvcm1JbmRleEZyb21JbWFnZUluZGV4KGltYWdlSW5kZXgpOworICAgICAgICB1aW50
MzJfdCB1bmlmb3JtSW5kZXggPSBleGVjdXRhYmxlLmdldFVuaWZvcm1JbmRleEZyb21JbWFnZUlu
ZGV4KGltYWdlSW5kZXgpOwogICAgICAgICBjb25zdCBnbDo6TGlua2VkVW5pZm9ybSAmaW1hZ2VV
bmlmb3JtID0gdW5pZm9ybXNbdW5pZm9ybUluZGV4XTsKIAotICAgICAgICBzdGQ6OnN0cmluZyBp
bWFnZU5hbWUgPSBHbHNsYW5nR2V0TWFwcGVkU2FtcGxlck5hbWUoaW1hZ2VVbmlmb3JtLm5hbWUp
OwotCi0gICAgICAgIC8vIFRoZSBmcm9udC1lbmQgYWx3YXlzIGJpbmRzIGFycmF5IGltYWdlIHVu
aXRzIHNlcXVlbnRpYWxseS4KLSAgICAgICAgdWludDMyX3QgYXJyYXlTaXplID0gc3RhdGljX2Nh
c3Q8dWludDMyX3Q+KGltYWdlQmluZGluZy5ib3VuZEltYWdlVW5pdHMuc2l6ZSgpKTsKLQogICAg
ICAgICAvLyAyRCBhcnJheXMgYXJlIHNwbGl0IGludG8gbXVsdGlwbGUgMUQgYXJyYXlzIHdoZW4g
Z2VuZXJhdGluZyBMaW5rZWRVbmlmb3Jtcy4gU2luY2UgdGhleQogICAgICAgICAvLyBhcmUgZmxh
dHRlbmVkIGludG8gb25lIGFycmF5LCBpZ25vcmUgdGhlIG5vbnplcm8gZWxlbWVudHMgYW5kIGV4
cGFuZCB0aGUgYXJyYXkgdG8gdGhlCiAgICAgICAgIC8vIHRvdGFsIGFycmF5IHNpemUuCi0gICAg
ICAgIGlmIChnbDo6U2FtcGxlck5hbWVDb250YWluc05vblplcm9BcnJheUVsZW1lbnQoaW1hZ2VV
bmlmb3JtLm5hbWUpKQorICAgICAgICBpZiAoaW1hZ2VVbmlmb3JtLm91dGVyQXJyYXlPZmZzZXQg
PiAwKQogICAgICAgICB7CisgICAgICAgICAgICBBU1NFUlQoZ2w6OlNhbXBsZXJOYW1lQ29udGFp
bnNOb25aZXJvQXJyYXlFbGVtZW50KGltYWdlVW5pZm9ybS5uYW1lKSk7CiAgICAgICAgICAgICBj
b250aW51ZTsKICAgICAgICAgfQogCisgICAgICAgIEFTU0VSVCghZ2w6OlNhbXBsZXJOYW1lQ29u
dGFpbnNOb25aZXJvQXJyYXlFbGVtZW50KGltYWdlVW5pZm9ybS5uYW1lKSk7CisKKyAgICAgICAg
Ly8gVGhlIGZyb250LWVuZCBhbHdheXMgYmluZHMgYXJyYXkgaW1hZ2UgdW5pdHMgc2VxdWVudGlh
bGx5LgorICAgICAgICBjb25zdCBnbDo6SW1hZ2VCaW5kaW5nICZpbWFnZUJpbmRpbmcgPSBpbWFn
ZUJpbmRpbmdzW2ltYWdlSW5kZXhdOworICAgICAgICB1aW50MzJfdCBhcnJheVNpemUgPSBzdGF0
aWNfY2FzdDx1aW50MzJfdD4oaW1hZ2VCaW5kaW5nLmJvdW5kSW1hZ2VVbml0cy5zaXplKCkpOwog
ICAgICAgICBmb3IgKHVuc2lnbmVkIGludCBvdXRlckFycmF5U2l6ZSA6IGltYWdlVW5pZm9ybS5v
dXRlckFycmF5U2l6ZXMpCiAgICAgICAgIHsKICAgICAgICAgICAgIGFycmF5U2l6ZSAqPSBvdXRl
ckFycmF5U2l6ZTsKQEAgLTY1MCw4ICs2NzIsOCBAQCB2b2lkIFByb2dyYW1FeGVjdXRhYmxlVms6
OmFkZEltYWdlRGVzY3JpcHRvclNldERlc2MoY29uc3QgZ2w6OlByb2dyYW1FeGVjdXRhYmxlCiAg
ICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIEdl
dEltYWdlTmFtZVdpdGhvdXRJbmRpY2VzKCZpbWFnZU5hbWUpOwotICAgICAgICAgICAgY29uc3Qg
U2hhZGVySW50ZXJmYWNlVmFyaWFibGVJbmZvICZpbmZvID0gbVZhcmlhYmxlSW5mb01hcC5nZXQo
c2hhZGVyVHlwZSwgaW1hZ2VOYW1lKTsKKyAgICAgICAgICAgIGNvbnN0IFNoYWRlckludGVyZmFj
ZVZhcmlhYmxlSW5mbyAmaW5mbyA9IG1WYXJpYWJsZUluZm9NYXAuZ2V0SW5kZXhlZFZhcmlhYmxl
SW5mbygKKyAgICAgICAgICAgICAgICBzaGFkZXJUeXBlLCBTaGFkZXJWYXJpYWJsZVR5cGU6Oklt
YWdlLCBpbWFnZUluZGV4KTsKICAgICAgICAgICAgIGlmIChpbmZvLmlzRHVwbGljYXRlKQogICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwpAQCAtNjc3LDIzICs2OTksMjEg
QEAgdm9pZCBQcm9ncmFtRXhlY3V0YWJsZVZrOjphZGRJbnB1dEF0dGFjaG1lbnREZXNjcmlwdG9y
U2V0RGVzYygKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGNvbnN0IHN0ZDo6dmVjdG9y
PGdsOjpMaW5rZWRVbmlmb3JtPiAmdW5pZm9ybXMgPSBleGVjdXRhYmxlLmdldFVuaWZvcm1zKCk7
Ci0KICAgICBpZiAoIWV4ZWN1dGFibGUudXNlc0ZyYW1lYnVmZmVyRmV0Y2goKSkKICAgICB7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBjb25zdCB1aW50MzJfdCBiYXNlVW5pZm9ybUlu
ZGV4ICAgICAgICAgICAgICA9IGV4ZWN1dGFibGUuZ2V0RnJhZ21lbnRJbm91dFJhbmdlKCkubG93
KCk7Ci0gICAgY29uc3QgZ2w6OkxpbmtlZFVuaWZvcm0gJmJhc2VJbnB1dEF0dGFjaG1lbnQgPSB1
bmlmb3Jtcy5hdChiYXNlVW5pZm9ybUluZGV4KTsKLSAgICBzdGQ6OnN0cmluZyBiYXNlTWFwcGVk
TmFtZSAgICAgICAgICAgICAgICAgICA9IGJhc2VJbnB1dEF0dGFjaG1lbnQubWFwcGVkTmFtZTsK
LSAgICBTaGFkZXJJbnRlcmZhY2VWYXJpYWJsZUluZm8gJmJhc2VJbmZvICAgICAgICA9IG1WYXJp
YWJsZUluZm9NYXAuZ2V0KHNoYWRlclR5cGUsIGJhc2VNYXBwZWROYW1lKTsKLQorICAgIGNvbnN0
IFNoYWRlckludGVyZmFjZVZhcmlhYmxlSW5mbyAmYmFzZUluZm8gPQorICAgICAgICBtVmFyaWFi
bGVJbmZvTWFwLmdldEZyYW1lYnVmZmVyRmV0Y2hJbmZvKHNoYWRlclR5cGUpOwogICAgIGlmIChi
YXNlSW5mby5pc0R1cGxpY2F0ZSkKICAgICB7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAg
ICBjb25zdCBzdGQ6OnZlY3RvcjxnbDo6TGlua2VkVW5pZm9ybT4gJnVuaWZvcm1zID0gZXhlY3V0
YWJsZS5nZXRVbmlmb3JtcygpOworICAgIGNvbnN0IHVpbnQzMl90IGJhc2VVbmlmb3JtSW5kZXgg
ICAgICAgICAgICAgICAgPSBleGVjdXRhYmxlLmdldEZyYWdtZW50SW5vdXRSYW5nZSgpLmxvdygp
OworICAgIGNvbnN0IGdsOjpMaW5rZWRVbmlmb3JtICZiYXNlSW5wdXRBdHRhY2htZW50ICAgPSB1
bmlmb3Jtcy5hdChiYXNlVW5pZm9ybUluZGV4KTsKICAgICB1aW50MzJfdCBiYXNlQmluZGluZyA9
IGJhc2VJbmZvLmJpbmRpbmcgLSBiYXNlSW5wdXRBdHRhY2htZW50LmxvY2F0aW9uOwogCiAgICAg
Zm9yICh1aW50MzJfdCBjb2xvckluZGV4ID0gMDsgY29sb3JJbmRleCA8IGdsOjpJTVBMRU1FTlRB
VElPTl9NQVhfRFJBV19CVUZGRVJTOyArK2NvbG9ySW5kZXgpCkBAIC03MTUsMjQgKzczNSwyMyBA
QCBhbmdsZTo6UmVzdWx0IFByb2dyYW1FeGVjdXRhYmxlVms6OmFkZFRleHR1cmVEZXNjcmlwdG9y
U2V0RGVzYygKIAogICAgIGZvciAodWludDMyX3QgdGV4dHVyZUluZGV4ID0gMDsgdGV4dHVyZUlu
ZGV4IDwgc2FtcGxlckJpbmRpbmdzLnNpemUoKTsgKyt0ZXh0dXJlSW5kZXgpCiAgICAgewotICAg
ICAgICBjb25zdCBnbDo6U2FtcGxlckJpbmRpbmcgJnNhbXBsZXJCaW5kaW5nID0gc2FtcGxlckJp
bmRpbmdzW3RleHR1cmVJbmRleF07Ci0KICAgICAgICAgdWludDMyX3QgdW5pZm9ybUluZGV4ID0g
ZXhlY3V0YWJsZS5nZXRVbmlmb3JtSW5kZXhGcm9tU2FtcGxlckluZGV4KHRleHR1cmVJbmRleCk7
CiAgICAgICAgIGNvbnN0IGdsOjpMaW5rZWRVbmlmb3JtICZzYW1wbGVyVW5pZm9ybSA9IHVuaWZv
cm1zW3VuaWZvcm1JbmRleF07CiAKLSAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgc2FtcGxlck5h
bWUgPSBHbHNsYW5nR2V0TWFwcGVkU2FtcGxlck5hbWUoc2FtcGxlclVuaWZvcm0ubmFtZSk7Ci0K
LSAgICAgICAgLy8gVGhlIGZyb250LWVuZCBhbHdheXMgYmluZHMgYXJyYXkgc2FtcGxlciB1bml0
cyBzZXF1ZW50aWFsbHkuCi0gICAgICAgIHVpbnQzMl90IGFycmF5U2l6ZSA9IHN0YXRpY19jYXN0
PHVpbnQzMl90PihzYW1wbGVyQmluZGluZy5ib3VuZFRleHR1cmVVbml0cy5zaXplKCkpOwotCiAg
ICAgICAgIC8vIDJEIGFycmF5cyBhcmUgc3BsaXQgaW50byBtdWx0aXBsZSAxRCBhcnJheXMgd2hl
biBnZW5lcmF0aW5nIExpbmtlZFVuaWZvcm1zLiBTaW5jZSB0aGV5CiAgICAgICAgIC8vIGFyZSBm
bGF0dGVuZWQgaW50byBvbmUgYXJyYXksIGlnbm9yZSB0aGUgbm9uemVybyBlbGVtZW50cyBhbmQg
ZXhwYW5kIHRoZSBhcnJheSB0byB0aGUKICAgICAgICAgLy8gdG90YWwgYXJyYXkgc2l6ZS4KLSAg
ICAgICAgaWYgKGdsOjpTYW1wbGVyTmFtZUNvbnRhaW5zTm9uWmVyb0FycmF5RWxlbWVudChzYW1w
bGVyVW5pZm9ybS5uYW1lKSkKKyAgICAgICAgaWYgKHNhbXBsZXJVbmlmb3JtLm91dGVyQXJyYXlP
ZmZzZXQgPiAwKQogICAgICAgICB7CisgICAgICAgICAgICBBU1NFUlQoZ2w6OlNhbXBsZXJOYW1l
Q29udGFpbnNOb25aZXJvQXJyYXlFbGVtZW50KHNhbXBsZXJVbmlmb3JtLm5hbWUpKTsKICAgICAg
ICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKKyAgICAgICAgQVNTRVJUKCFnbDo6U2FtcGxl
ck5hbWVDb250YWluc05vblplcm9BcnJheUVsZW1lbnQoc2FtcGxlclVuaWZvcm0ubmFtZSkpOwor
CisgICAgICAgIC8vIFRoZSBmcm9udC1lbmQgYWx3YXlzIGJpbmRzIGFycmF5IHNhbXBsZXIgdW5p
dHMgc2VxdWVudGlhbGx5LgorICAgICAgICBjb25zdCBnbDo6U2FtcGxlckJpbmRpbmcgJnNhbXBs
ZXJCaW5kaW5nID0gc2FtcGxlckJpbmRpbmdzW3RleHR1cmVJbmRleF07CisgICAgICAgIHVpbnQz
Ml90IGFycmF5U2l6ZSA9IHN0YXRpY19jYXN0PHVpbnQzMl90PihzYW1wbGVyQmluZGluZy5ib3Vu
ZFRleHR1cmVVbml0cy5zaXplKCkpOwogICAgICAgICBmb3IgKHVuc2lnbmVkIGludCBvdXRlckFy
cmF5U2l6ZSA6IHNhbXBsZXJVbmlmb3JtLm91dGVyQXJyYXlTaXplcykKICAgICAgICAgewogICAg
ICAgICAgICAgYXJyYXlTaXplICo9IG91dGVyQXJyYXlTaXplOwpAQCAtNzQ1LDcgKzc2NCw4IEBA
IGFuZ2xlOjpSZXN1bHQgUHJvZ3JhbUV4ZWN1dGFibGVWazo6YWRkVGV4dHVyZURlc2NyaXB0b3JT
ZXREZXNjKAogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgfQogCi0gICAg
ICAgICAgICBjb25zdCBTaGFkZXJJbnRlcmZhY2VWYXJpYWJsZUluZm8gJmluZm8gPSBtVmFyaWFi
bGVJbmZvTWFwLmdldChzaGFkZXJUeXBlLCBzYW1wbGVyTmFtZSk7CisgICAgICAgICAgICBjb25z
dCBTaGFkZXJJbnRlcmZhY2VWYXJpYWJsZUluZm8gJmluZm8gPSBtVmFyaWFibGVJbmZvTWFwLmdl
dEluZGV4ZWRWYXJpYWJsZUluZm8oCisgICAgICAgICAgICAgICAgc2hhZGVyVHlwZSwgU2hhZGVy
VmFyaWFibGVUeXBlOjpUZXh0dXJlLCB0ZXh0dXJlSW5kZXgpOwogICAgICAgICAgICAgaWYgKGlu
Zm8uaXNEdXBsaWNhdGUpCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgY29udGludWU7
CkBAIC0xMDI3LDkgKzEwNDcsOCBAQCBhbmdsZTo6UmVzdWx0IFByb2dyYW1FeGVjdXRhYmxlVms6
OmNyZWF0ZVBpcGVsaW5lTGF5b3V0KAogICAgIG1OdW1EZWZhdWx0VW5pZm9ybURlc2NyaXB0b3Jz
ID0gMDsKICAgICBmb3IgKGdsOjpTaGFkZXJUeXBlIHNoYWRlclR5cGUgOiBsaW5rZWRTaGFkZXJT
dGFnZXMpCiAgICAgewotICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyB1bmlmb3JtQmxvY2tOYW1l
ID0ga0RlZmF1bHRVbmlmb3JtTmFtZXNbc2hhZGVyVHlwZV07CiAgICAgICAgIGNvbnN0IFNoYWRl
ckludGVyZmFjZVZhcmlhYmxlSW5mbyAmaW5mbyA9Ci0gICAgICAgICAgICBtVmFyaWFibGVJbmZv
TWFwLmdldChzaGFkZXJUeXBlLCB1bmlmb3JtQmxvY2tOYW1lKTsKKyAgICAgICAgICAgIG1WYXJp
YWJsZUluZm9NYXAuZ2V0RGVmYXVsdFVuaWZvcm1JbmZvKHNoYWRlclR5cGUpOwogICAgICAgICBp
ZiAoaW5mby5pc0R1cGxpY2F0ZSB8fCAhaW5mby5hY3RpdmVTdGFnZXNbc2hhZGVyVHlwZV0pCiAg
ICAgICAgIHsKICAgICAgICAgICAgIGNvbnRpbnVlOwpAQCAtMTA5NSw4ICsxMTE0LDEwIEBAIGFu
Z2xlOjpSZXN1bHQgUHJvZ3JhbUV4ZWN1dGFibGVWazo6Y3JlYXRlUGlwZWxpbmVMYXlvdXQoCiAg
ICAgZm9yIChnbDo6U2hhZGVyVHlwZSBzaGFkZXJUeXBlIDogbGlua2VkU2hhZGVyU3RhZ2VzKQog
ICAgIHsKICAgICAgICAgYWRkSW50ZXJmYWNlQmxvY2tEZXNjcmlwdG9yU2V0RGVzYyhnbEV4ZWN1
dGFibGUuZ2V0VW5pZm9ybUJsb2NrcygpLCBzaGFkZXJUeXBlLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFNoYWRlclZhcmlhYmxlVHlwZTo6VW5pZm9ybUJ1ZmZl
ciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtVW5pZm9ybUJ1
ZmZlckRlc2NyaXB0b3JUeXBlLCAmcmVzb3VyY2VzU2V0RGVzYyk7CiAgICAgICAgIGFkZEludGVy
ZmFjZUJsb2NrRGVzY3JpcHRvclNldERlc2MoZ2xFeGVjdXRhYmxlLmdldFNoYWRlclN0b3JhZ2VC
bG9ja3MoKSwgc2hhZGVyVHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBTaGFkZXJWYXJpYWJsZVR5cGU6OlNoYWRlclN0b3JhZ2VCdWZmZXIsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga1N0b3JhZ2VCdWZmZXJEZXNjcmlw
dG9yVHlwZSwgJnJlc291cmNlc1NldERlc2MpOwogICAgICAgICBhZGRBdG9taWNDb3VudGVyQnVm
ZmVyRGVzY3JpcHRvclNldERlc2MoZ2xFeGVjdXRhYmxlLmdldEF0b21pY0NvdW50ZXJCdWZmZXJz
KCksIHNoYWRlclR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAmcmVzb3VyY2VzU2V0RGVzYyk7CkBAIC0xMTg1LDggKzEyMDYsOSBAQCB2b2lkIFBy
b2dyYW1FeGVjdXRhYmxlVms6OnJlc29sdmVQcmVjaXNpb25NaXNtYXRjaChjb25zdCBnbDo6UHJv
Z3JhbU1lcmdlZFZhcnlpbgogICAgICAgICBpZiAoZnJvbnRQcmVjaXNpb24gPiBiYWNrUHJlY2lz
aW9uKQogICAgICAgICB7CiAgICAgICAgICAgICAvLyBUaGUgb3V0cHV0IGlzIGhpZ2hlciBwcmVj
aXNpb24gdGhhbiB0aGUgaW5wdXQKLSAgICAgICAgICAgIFNoYWRlckludGVyZmFjZVZhcmlhYmxl
SW5mbyAmaW5mbyA9IG1WYXJpYWJsZUluZm9NYXAuZ2V0KAotICAgICAgICAgICAgICAgIG1lcmdl
ZFZhcnlpbmcuZnJvbnRTaGFkZXJTdGFnZSwgbWVyZ2VkVmFyeWluZy5mcm9udFNoYWRlci0+bWFw
cGVkTmFtZSk7CisgICAgICAgICAgICBTaGFkZXJJbnRlcmZhY2VWYXJpYWJsZUluZm8gJmluZm8g
PSBtVmFyaWFibGVJbmZvTWFwLmdldE11dGFibGUoCisgICAgICAgICAgICAgICAgbWVyZ2VkVmFy
eWluZy5mcm9udFNoYWRlclN0YWdlLCBTaGFkZXJWYXJpYWJsZVR5cGU6OlZhcnlpbmcsCisgICAg
ICAgICAgICAgICAgbWVyZ2VkVmFyeWluZy5mcm9udFNoYWRlci0+bWFwcGVkTmFtZSk7CiAgICAg
ICAgICAgICBpbmZvLnZhcnlpbmdJc091dHB1dCAgICAgPSB0cnVlOwogICAgICAgICAgICAgaW5m
by51c2VSZWxheGVkUHJlY2lzaW9uID0gdHJ1ZTsKICAgICAgICAgfQpAQCAtMTE5NCw4ICsxMjE2
LDkgQEAgdm9pZCBQcm9ncmFtRXhlY3V0YWJsZVZrOjpyZXNvbHZlUHJlY2lzaW9uTWlzbWF0Y2go
Y29uc3QgZ2w6OlByb2dyYW1NZXJnZWRWYXJ5aW4KICAgICAgICAgewogICAgICAgICAgICAgLy8g
VGhlIG91dHB1dCBpcyBsb3dlciBwcmVjaXNpb24gdGhhbiB0aGUgaW5wdXQsIGFkanVzdCB0aGUg
aW5wdXQKICAgICAgICAgICAgIEFTU0VSVChiYWNrUHJlY2lzaW9uID4gZnJvbnRQcmVjaXNpb24p
OwotICAgICAgICAgICAgU2hhZGVySW50ZXJmYWNlVmFyaWFibGVJbmZvICZpbmZvID0gbVZhcmlh
YmxlSW5mb01hcC5nZXQoCi0gICAgICAgICAgICAgICAgbWVyZ2VkVmFyeWluZy5iYWNrU2hhZGVy
U3RhZ2UsIG1lcmdlZFZhcnlpbmcuYmFja1NoYWRlci0+bWFwcGVkTmFtZSk7CisgICAgICAgICAg
ICBTaGFkZXJJbnRlcmZhY2VWYXJpYWJsZUluZm8gJmluZm8gPSBtVmFyaWFibGVJbmZvTWFwLmdl
dE11dGFibGUoCisgICAgICAgICAgICAgICAgbWVyZ2VkVmFyeWluZy5iYWNrU2hhZGVyU3RhZ2Us
IFNoYWRlclZhcmlhYmxlVHlwZTo6VmFyeWluZywKKyAgICAgICAgICAgICAgICBtZXJnZWRWYXJ5
aW5nLmJhY2tTaGFkZXItPm1hcHBlZE5hbWUpOwogICAgICAgICAgICAgaW5mby52YXJ5aW5nSXNJ
bnB1dCAgICAgID0gdHJ1ZTsKICAgICAgICAgICAgIGluZm8udXNlUmVsYXhlZFByZWNpc2lvbiA9
IHRydWU7CiAgICAgICAgIH0KQEAgLTEyMTEsOSArMTIzNCw3IEBAIHZvaWQgUHJvZ3JhbUV4ZWN1
dGFibGVWazo6dXBkYXRlRGVmYXVsdFVuaWZvcm1zRGVzY3JpcHRvclNldCgKICAgICBjb25zdCBE
ZWZhdWx0VW5pZm9ybUJsb2NrICZkZWZhdWx0VW5pZm9ybUJsb2NrLAogICAgIHZrOjpCdWZmZXJI
ZWxwZXIgKmRlZmF1bHRVbmlmb3JtQnVmZmVyKQogewotICAgIGNvbnN0IHN0ZDo6c3RyaW5nIHVu
aWZvcm1CbG9ja05hbWUgPSBrRGVmYXVsdFVuaWZvcm1OYW1lc1tzaGFkZXJUeXBlXTsKLQotICAg
IGNvbnN0IFNoYWRlckludGVyZmFjZVZhcmlhYmxlSW5mbyAmaW5mbyA9IG1WYXJpYWJsZUluZm9N
YXAuZ2V0KHNoYWRlclR5cGUsIHVuaWZvcm1CbG9ja05hbWUpOworICAgIGNvbnN0IFNoYWRlcklu
dGVyZmFjZVZhcmlhYmxlSW5mbyAmaW5mbyA9IG1WYXJpYWJsZUluZm9NYXAuZ2V0RGVmYXVsdFVu
aWZvcm1JbmZvKHNoYWRlclR5cGUpOwogICAgIGlmIChpbmZvLmlzRHVwbGljYXRlIHx8ICFpbmZv
LmFjdGl2ZVN0YWdlc1tzaGFkZXJUeXBlXSkKICAgICB7CiAgICAgICAgIHJldHVybjsKQEAgLTEy
NDAsMjMgKzEyNjEsMjMgQEAgdm9pZCBQcm9ncmFtRXhlY3V0YWJsZVZrOjp1cGRhdGVEZWZhdWx0
VW5pZm9ybXNEZXNjcmlwdG9yU2V0KAogYW5nbGU6OlJlc3VsdCBQcm9ncmFtRXhlY3V0YWJsZVZr
OjphbGxvY2F0ZVNoYWRlclJlc291cmNlc0Rlc2NyaXB0b3JTZXQoCiAgICAgdms6OkNvbnRleHQg
KmNvbnRleHQsCiAgICAgdms6OlJlc291cmNlVXNlTGlzdCAqcmVzb3VyY2VVc2VMaXN0LAotICAg
IGNvbnN0IHZrOjpEZXNjcmlwdG9yU2V0RGVzYyAqc2hhZGVyQnVmZmVyc0Rlc2MpCisgICAgY29u
c3Qgdms6OkRlc2NyaXB0b3JTZXREZXNjICpzaGFkZXJSZXNvdXJjZXNEZXNjKQogewogICAgIGJv
b2wgbmV3UG9vbEFsbG9jYXRlZCA9IGZhbHNlOwogICAgIEFOR0xFX1RSWShhbGxvY2F0ZURlc2Ny
aXB0b3JTZXRBbmRHZXRJbmZvKAogICAgICAgICBjb250ZXh0LCByZXNvdXJjZVVzZUxpc3QsIERl
c2NyaXB0b3JTZXRJbmRleDo6U2hhZGVyUmVzb3VyY2UsICZuZXdQb29sQWxsb2NhdGVkKSk7CiAK
LSAgICBpZiAoc2hhZGVyQnVmZmVyc0Rlc2MpCisgICAgaWYgKHNoYWRlclJlc291cmNlc0Rlc2Mp
CiAgICAgewogICAgICAgICAvLyBDbGVhciBkZXNjcmlwdG9yIHNldCBjYWNoZS4gSXQgbWF5IG5v
IGxvbmdlciBiZSB2YWxpZC4KICAgICAgICAgaWYgKG5ld1Bvb2xBbGxvY2F0ZWQpCiAgICAgICAg
IHsKLSAgICAgICAgICAgIG1TaGFkZXJCdWZmZXJEZXNjcmlwdG9yc0NhY2hlLmRlc3Ryb3koY29u
dGV4dC0+Z2V0UmVuZGVyZXIoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgVnVsa2FuQ2FjaGVUeXBlOjpTaGFkZXJCdWZmZXJzRGVzY3JpcHRvcnMp
OworICAgICAgICAgICAgbVNoYWRlckJ1ZmZlckRlc2NyaXB0b3JzQ2FjaGUuY2xlYXIoKTsKICAg
ICAgICAgfQogCi0gICAgICAgIG1TaGFkZXJCdWZmZXJEZXNjcmlwdG9yc0NhY2hlLmluc2VydCgq
c2hhZGVyQnVmZmVyc0Rlc2MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtRGVzY3JpcHRvclNldHNbRGVzY3JpcHRvclNldEluZGV4OjpTaGFkZXJSZXNvdXJj
ZV0pOworICAgICAgICBtU2hhZGVyQnVmZmVyRGVzY3JpcHRvcnNDYWNoZS5pbnNlcnQoCisgICAg
ICAgICAgICAqc2hhZGVyUmVzb3VyY2VzRGVzYywgbURlc2NyaXB0b3JTZXRzW0Rlc2NyaXB0b3JT
ZXRJbmRleDo6U2hhZGVyUmVzb3VyY2VdLAorICAgICAgICAgICAgJm1QZXJmQ291bnRlcnMuY2Fj
aGVTdGF0c1tEZXNjcmlwdG9yU2V0SW5kZXg6OlNoYWRlclJlc291cmNlXSk7CiAgICAgfQogICAg
IHJldHVybiBhbmdsZTo6UmVzdWx0OjpDb250aW51ZTsKIH0KQEAgLTEyNjcsOSArMTI4OCwxMCBA
QCBhbmdsZTo6UmVzdWx0IFByb2dyYW1FeGVjdXRhYmxlVms6OnVwZGF0ZUJ1ZmZlcnNEZXNjcmlw
dG9yU2V0KAogICAgIHZrOjpCdWZmZXJIZWxwZXIgKmVtcHR5QnVmZmVyLAogICAgIHZrOjpSZXNv
dXJjZVVzZUxpc3QgKnJlc291cmNlVXNlTGlzdCwKICAgICBnbDo6U2hhZGVyVHlwZSBzaGFkZXJU
eXBlLAotICAgIGNvbnN0IHZrOjpEZXNjcmlwdG9yU2V0RGVzYyAmc2hhZGVyQnVmZmVyc0Rlc2Ms
CisgICAgY29uc3Qgdms6OkRlc2NyaXB0b3JTZXREZXNjICZzaGFkZXJSZXNvdXJjZXNEZXNjLAog
ICAgIGNvbnN0IGdsOjpCdWZmZXJWZWN0b3IgJmJ1ZmZlcnMsCiAgICAgY29uc3Qgc3RkOjp2ZWN0
b3I8Z2w6OkludGVyZmFjZUJsb2NrPiAmYmxvY2tzLAorICAgIFNoYWRlclZhcmlhYmxlVHlwZSB2
YXJpYWJsZVR5cGUsCiAgICAgVmtEZXNjcmlwdG9yVHlwZSBkZXNjcmlwdG9yVHlwZSwKICAgICBW
a0RldmljZVNpemUgbWF4Qm91bmRCdWZmZXJSYW5nZSwKICAgICBib29sIGNhY2hlSGl0KQpAQCAt
MTI4Nyw4ICsxMzA5LDkgQEAgYW5nbGU6OlJlc3VsdCBQcm9ncmFtRXhlY3V0YWJsZVZrOjp1cGRh
dGVCdWZmZXJzRGVzY3JpcHRvclNldCgKICAgICBBU1NFUlQoZGVzY3JpcHRvclNldCAhPSBWS19O
VUxMX0hBTkRMRSk7CiAKICAgICAvLyBXcml0ZSB1bmlmb3JtIG9yIHN0b3JhZ2UgYnVmZmVycy4K
LSAgICBmb3IgKGNvbnN0IGdsOjpJbnRlcmZhY2VCbG9jayAmYmxvY2sgOiBibG9ja3MpCisgICAg
Zm9yICh1aW50MzJfdCBibG9ja0luZGV4ID0gMDsgYmxvY2tJbmRleCA8IGJsb2Nrcy5zaXplKCk7
ICsrYmxvY2tJbmRleCkKICAgICB7CisgICAgICAgIGNvbnN0IGdsOjpJbnRlcmZhY2VCbG9jayAm
YmxvY2sgICAgICAgICAgICAgICAgICAgICAgICAgICA9IGJsb2Nrc1tibG9ja0luZGV4XTsKICAg
ICAgICAgY29uc3QgZ2w6Ok9mZnNldEJpbmRpbmdQb2ludGVyPGdsOjpCdWZmZXI+ICZidWZmZXJC
aW5kaW5nID0gYnVmZmVyc1tibG9jay5iaW5kaW5nXTsKIAogICAgICAgICBpZiAoIWJsb2NrLmlz
QWN0aXZlKHNoYWRlclR5cGUpKQpAQCAtMTI5NywxMyArMTMyMCwxMiBAQCBhbmdsZTo6UmVzdWx0
IFByb2dyYW1FeGVjdXRhYmxlVms6OnVwZGF0ZUJ1ZmZlcnNEZXNjcmlwdG9yU2V0KAogICAgICAg
ICB9CiAKICAgICAgICAgY29uc3QgU2hhZGVySW50ZXJmYWNlVmFyaWFibGVJbmZvICZpbmZvID0K
LSAgICAgICAgICAgIG1WYXJpYWJsZUluZm9NYXAuZ2V0KHNoYWRlclR5cGUsIGJsb2NrLm1hcHBl
ZE5hbWUpOworICAgICAgICAgICAgbVZhcmlhYmxlSW5mb01hcC5nZXRJbmRleGVkVmFyaWFibGVJ
bmZvKHNoYWRlclR5cGUsIHZhcmlhYmxlVHlwZSwgYmxvY2tJbmRleCk7CiAgICAgICAgIGlmIChp
bmZvLmlzRHVwbGljYXRlKQogICAgICAgICB7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAg
ICAgfQogCi0gICAgICAgIHVpbnQzMl90IGJpbmRpbmcgICAgICA9IGluZm8uYmluZGluZzsKICAg
ICAgICAgdWludDMyX3QgYXJyYXlFbGVtZW50ID0gYmxvY2suaXNBcnJheSA/IGJsb2NrLmFycmF5
RWxlbWVudCA6IDA7CiAKICAgICAgICAgaWYgKGJ1ZmZlckJpbmRpbmcuZ2V0KCkgPT0gbnVsbHB0
cikKQEAgLTEzMTUsNyArMTMzNyw3IEBAIGFuZ2xlOjpSZXN1bHQgUHJvZ3JhbUV4ZWN1dGFibGVW
azo6dXBkYXRlQnVmZmVyc0Rlc2NyaXB0b3JTZXQoCiAKICAgICAgICAgICAgICAgICBlbXB0eUJ1
ZmZlci0+cmV0YWluUmVhZE9ubHkocmVzb3VyY2VVc2VMaXN0KTsKICAgICAgICAgICAgICAgICBX
cml0ZUJ1ZmZlckRlc2NyaXB0b3JTZXRCaW5kaW5nKCplbXB0eUJ1ZmZlciwgMCwgZW1wdHlCdWZm
ZXItPmdldFNpemUoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGRlc2NyaXB0b3JTZXQsIGRlc2NyaXB0b3JUeXBlLCBiaW5kaW5nLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRvclNldCwgZGVz
Y3JpcHRvclR5cGUsIGluZm8uYmluZGluZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGFycmF5RWxlbWVudCwgMCwgJmJ1ZmZlckluZm8sICZ3cml0ZUlu
Zm8pOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgaWYgKElzRHluYW1pY0Rlc2NyaXB0b3Io
ZGVzY3JpcHRvclR5cGUpKQpAQCAtMTM0Niw4ICsxMzY4LDggQEAgYW5nbGU6OlJlc3VsdCBQcm9n
cmFtRXhlY3V0YWJsZVZrOjp1cGRhdGVCdWZmZXJzRGVzY3JpcHRvclNldCgKICAgICAgICAgICAg
IFZrRGV2aWNlU2l6ZSBvZmZzZXQgPQogICAgICAgICAgICAgICAgIElzRHluYW1pY0Rlc2NyaXB0
b3IoZGVzY3JpcHRvclR5cGUpID8gMCA6IGJ1ZmZlckJpbmRpbmcuZ2V0T2Zmc2V0KCk7CiAgICAg
ICAgICAgICBXcml0ZUJ1ZmZlckRlc2NyaXB0b3JTZXRCaW5kaW5nKGJ1ZmZlckhlbHBlciwgb2Zm
c2V0LCBzaXplLCBkZXNjcmlwdG9yU2V0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBkZXNjcmlwdG9yVHlwZSwgYmluZGluZywgYXJyYXlFbGVtZW50LCAwLCAm
YnVmZmVySW5mbywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
JndyaXRlSW5mbyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGRlc2NyaXB0b3JUeXBlLCBpbmZvLmJpbmRpbmcsIGFycmF5RWxlbWVudCwgMCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmJ1ZmZlckluZm8sICZ3cml0ZUlu
Zm8pOwogICAgICAgICB9CiAgICAgICAgIGlmIChJc0R5bmFtaWNEZXNjcmlwdG9yKGRlc2NyaXB0
b3JUeXBlKSkKICAgICAgICAgewpAQCAtMTM2NywyNSArMTM4OSwxOSBAQCBhbmdsZTo6UmVzdWx0
IFByb2dyYW1FeGVjdXRhYmxlVms6OnVwZGF0ZUF0b21pY0NvdW50ZXJCdWZmZXJzRGVzY3JpcHRv
clNldCgKICAgICBjb25zdCBnbDo6QnVmZmVyVmVjdG9yICZhdG9taWNDb3VudGVyQnVmZmVyQmlu
ZGluZ3MsCiAgICAgY29uc3QgZ2w6OlByb2dyYW1FeGVjdXRhYmxlICZleGVjdXRhYmxlLAogICAg
IGdsOjpTaGFkZXJUeXBlIHNoYWRlclR5cGUsCi0gICAgY29uc3Qgdms6OkRlc2NyaXB0b3JTZXRE
ZXNjICZzaGFkZXJCdWZmZXJzRGVzYywKKyAgICBjb25zdCB2azo6RGVzY3JpcHRvclNldERlc2Mg
JnNoYWRlclJlc291cmNlc0Rlc2MsCiAgICAgYm9vbCBjYWNoZUhpdCkKIHsKICAgICBjb25zdCBz
dGQ6OnZlY3RvcjxnbDo6QXRvbWljQ291bnRlckJ1ZmZlcj4gJmF0b21pY0NvdW50ZXJCdWZmZXJz
ID0KICAgICAgICAgZXhlY3V0YWJsZS5nZXRBdG9taWNDb3VudGVyQnVmZmVycygpOwogCi0gICAg
aWYgKGF0b21pY0NvdW50ZXJCdWZmZXJzLmVtcHR5KCkgfHwgY2FjaGVIaXQpCi0gICAgewotICAg
ICAgICByZXR1cm4gYW5nbGU6OlJlc3VsdDo6Q29udGludWU7Ci0gICAgfQotCi0gICAgc3RkOjpz
dHJpbmcgYmxvY2tOYW1lKHNoOjp2azo6a0F0b21pY0NvdW50ZXJzQmxvY2tOYW1lKTsKLQotICAg
IGlmICghbVZhcmlhYmxlSW5mb01hcC5jb250YWlucyhzaGFkZXJUeXBlLCBibG9ja05hbWUpKQor
ICAgIGlmIChhdG9taWNDb3VudGVyQnVmZmVycy5lbXB0eSgpIHx8IGNhY2hlSGl0IHx8CisgICAg
ICAgICFtVmFyaWFibGVJbmZvTWFwLmhhc0F0b21pY0NvdW50ZXJJbmZvKHNoYWRlclR5cGUpKQog
ICAgIHsKICAgICAgICAgcmV0dXJuIGFuZ2xlOjpSZXN1bHQ6OkNvbnRpbnVlOwogICAgIH0KIAot
ICAgIGNvbnN0IFNoYWRlckludGVyZmFjZVZhcmlhYmxlSW5mbyAmaW5mbyA9IG1WYXJpYWJsZUlu
Zm9NYXAuZ2V0KHNoYWRlclR5cGUsIGJsb2NrTmFtZSk7CisgICAgY29uc3QgU2hhZGVySW50ZXJm
YWNlVmFyaWFibGVJbmZvICZpbmZvID0gbVZhcmlhYmxlSW5mb01hcC5nZXRBdG9taWNDb3VudGVy
SW5mbyhzaGFkZXJUeXBlKTsKICAgICBpZiAoaW5mby5pc0R1cGxpY2F0ZSB8fCAhaW5mby5hY3Rp
dmVTdGFnZXNbc2hhZGVyVHlwZV0pCiAgICAgewogICAgICAgICByZXR1cm4gYW5nbGU6OlJlc3Vs
dDo6Q29udGludWU7CkBAIC0xNDgyLDE3ICsxNDk4LDE1IEBAIGFuZ2xlOjpSZXN1bHQgUHJvZ3Jh
bUV4ZWN1dGFibGVWazo6dXBkYXRlSW1hZ2VzRGVzY3JpcHRvclNldCgKICAgICAgICAgICAgIGNv
bnRpbnVlOwogICAgICAgICB9CiAKLSAgICAgICAgc3RkOjpzdHJpbmcgbWFwcGVkSW1hZ2VOYW1l
ID0gR2xzbGFuZ0dldE1hcHBlZFNhbXBsZXJOYW1lKGltYWdlVW5pZm9ybS5uYW1lKTsKLQotICAg
ICAgICBHZXRJbWFnZU5hbWVXaXRob3V0SW5kaWNlcygmbWFwcGVkSW1hZ2VOYW1lKTsKLQotICAg
ICAgICB1aW50MzJfdCBhcnJheU9mZnNldCA9IDA7CisgICAgICAgIHVpbnQzMl90IGFycmF5T2Zm
c2V0ID0gaW1hZ2VVbmlmb3JtLm91dGVyQXJyYXlPZmZzZXQ7CiAgICAgICAgIHVpbnQzMl90IGFy
cmF5U2l6ZSAgID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGltYWdlQmluZGluZy5ib3VuZEltYWdl
VW5pdHMuc2l6ZSgpKTsKIAotICAgICAgICBhcnJheU9mZnNldCA9IG1hcHBlZEltYWdlTmFtZVRv
QXJyYXlPZmZzZXRbbWFwcGVkSW1hZ2VOYW1lXTsKLSAgICAgICAgLy8gRnJvbnQtZW5kIGdlbmVy
YXRlcyBhcnJheSBlbGVtZW50cyBpbiBvcmRlciwgc28gd2UgY2FuIGp1c3QgaW5jcmVtZW50IHRo
ZSBvZmZzZXQgZWFjaAotICAgICAgICAvLyB0aW1lIHdlIHByb2Nlc3MgYSBuZXN0ZWQgYXJyYXku
Ci0gICAgICAgIG1hcHBlZEltYWdlTmFtZVRvQXJyYXlPZmZzZXRbbWFwcGVkSW1hZ2VOYW1lXSAr
PSBhcnJheVNpemU7CisgICAgICAgIGNvbnN0IFNoYWRlckludGVyZmFjZVZhcmlhYmxlSW5mbyAm
aW5mbyA9IG1WYXJpYWJsZUluZm9NYXAuZ2V0SW5kZXhlZFZhcmlhYmxlSW5mbygKKyAgICAgICAg
ICAgIHNoYWRlclR5cGUsIFNoYWRlclZhcmlhYmxlVHlwZTo6SW1hZ2UsIGltYWdlSW5kZXgpOwor
ICAgICAgICBpZiAoaW5mby5pc0R1cGxpY2F0ZSkKKyAgICAgICAgeworICAgICAgICAgICAgY29u
dGludWU7CisgICAgICAgIH0KIAogICAgICAgICAvLyBUZXh0dXJlIGJ1ZmZlcnMgdXNlIGJ1ZmZl
ciB2aWV3cywgc28gdGhleSBhcmUgZXNwZWNpYWxseSBoYW5kbGVkLgogICAgICAgICBpZiAoaW1h
Z2VCaW5kaW5nLnRleHR1cmVUeXBlID09IGdsOjpUZXh0dXJlVHlwZTo6QnVmZmVyKQpAQCAtMTUw
NSwxMyArMTUxOSw2IEBAIGFuZ2xlOjpSZXN1bHQgUHJvZ3JhbUV4ZWN1dGFibGVWazo6dXBkYXRl
SW1hZ2VzRGVzY3JpcHRvclNldCgKICAgICAgICAgICAgICAgICBmb3JtYXQgPSAmcmVuZGVyZXIt
PmdldEZvcm1hdChpbWFnZVVuaWZvcm0uaW1hZ2VVbml0Rm9ybWF0KTsKICAgICAgICAgICAgIH0K
IAotICAgICAgICAgICAgY29uc3QgU2hhZGVySW50ZXJmYWNlVmFyaWFibGVJbmZvICZpbmZvID0K
LSAgICAgICAgICAgICAgICBtVmFyaWFibGVJbmZvTWFwLmdldChzaGFkZXJUeXBlLCBtYXBwZWRJ
bWFnZU5hbWUpOwotICAgICAgICAgICAgaWYgKGluZm8uaXNEdXBsaWNhdGUpCi0gICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICB9Ci0KICAgICAgICAg
ICAgIFZrV3JpdGVEZXNjcmlwdG9yU2V0ICp3cml0ZUluZm9zID0gdXBkYXRlQnVpbGRlci0+YWxs
b2NXcml0ZURlc2NyaXB0b3JTZXRzKGFycmF5U2l6ZSk7CiAKICAgICAgICAgICAgIGZvciAodWlu
dDMyX3QgYXJyYXlFbGVtZW50ID0gMDsgYXJyYXlFbGVtZW50IDwgYXJyYXlTaXplOyArK2FycmF5
RWxlbWVudCkKQEAgLTE1MzYsMTMgKzE1NDMsNiBAQCBhbmdsZTo6UmVzdWx0IFByb2dyYW1FeGVj
dXRhYmxlVms6OnVwZGF0ZUltYWdlc0Rlc2NyaXB0b3JTZXQoCiAgICAgICAgICAgICBjb250aW51
ZTsKICAgICAgICAgfQogCi0gICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nIGltYWdlTmFtZSAgICAg
ICAgICAgICA9IEdsc2xhbmdHZXRNYXBwZWRTYW1wbGVyTmFtZShpbWFnZVVuaWZvcm0ubmFtZSk7
Ci0gICAgICAgIGNvbnN0IFNoYWRlckludGVyZmFjZVZhcmlhYmxlSW5mbyAmaW5mbyA9IG1WYXJp
YWJsZUluZm9NYXAuZ2V0KHNoYWRlclR5cGUsIGltYWdlTmFtZSk7Ci0gICAgICAgIGlmIChpbmZv
LmlzRHVwbGljYXRlKQotICAgICAgICB7Ci0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAg
fQotCiAgICAgICAgIFZrV3JpdGVEZXNjcmlwdG9yU2V0ICp3cml0ZUluZm9zICA9IHVwZGF0ZUJ1
aWxkZXItPmFsbG9jV3JpdGVEZXNjcmlwdG9yU2V0cyhhcnJheVNpemUpOwogICAgICAgICBWa0Rl
c2NyaXB0b3JJbWFnZUluZm8gKmltYWdlSW5mb3MgPSB1cGRhdGVCdWlsZGVyLT5hbGxvY0Rlc2Ny
aXB0b3JJbWFnZUluZm9zKGFycmF5U2l6ZSk7CiAgICAgICAgIGZvciAodWludDMyX3QgYXJyYXlF
bGVtZW50ID0gMDsgYXJyYXlFbGVtZW50IDwgYXJyYXlTaXplOyArK2FycmF5RWxlbWVudCkKQEAg
LTE1ODUsNyArMTU4NSw3IEBAIGFuZ2xlOjpSZXN1bHQgUHJvZ3JhbUV4ZWN1dGFibGVWazo6dXBk
YXRlU2hhZGVyUmVzb3VyY2VzRGVzY3JpcHRvclNldCgKICAgICB2azo6QnVmZmVySGVscGVyICpl
bXB0eUJ1ZmZlciwKICAgICB2azo6UmVzb3VyY2VVc2VMaXN0ICpyZXNvdXJjZVVzZUxpc3QsCiAg
ICAgRnJhbWVidWZmZXJWayAqZnJhbWVidWZmZXJWaywKLSAgICBjb25zdCB2azo6RGVzY3JpcHRv
clNldERlc2MgJnNoYWRlckJ1ZmZlcnNEZXNjKQorICAgIGNvbnN0IHZrOjpEZXNjcmlwdG9yU2V0
RGVzYyAmc2hhZGVyUmVzb3VyY2VzRGVzYykKIHsKICAgICAvLyBSZXNldCB0aGUgZGVzY3JpcHRv
ciBzZXQgaGFuZGxlcyBzbyB3ZSBvbmx5IGFsbG9jYXRlIGEgbmV3IG9uZSB3aGVuIG5lY2Vzc2Fy
eS4KICAgICBtRGVzY3JpcHRvclNldHNbRGVzY3JpcHRvclNldEluZGV4OjpTaGFkZXJSZXNvdXJj
ZV0gICAgICA9IFZLX05VTExfSEFORExFOwpAQCAtMTYwMiwxOSArMTYwMiwyMSBAQCBhbmdsZTo6
UmVzdWx0IFByb2dyYW1FeGVjdXRhYmxlVms6OnVwZGF0ZVNoYWRlclJlc291cmNlc0Rlc2NyaXB0
b3JTZXQoCiAgICAgaWYgKCFleGVjdXRhYmxlLT5oYXNJbWFnZXMoKSAmJiAhZXhlY3V0YWJsZS0+
dXNlc0ZyYW1lYnVmZmVyRmV0Y2goKSkKICAgICB7CiAgICAgICAgIFZrRGVzY3JpcHRvclNldCBk
ZXNjcmlwdG9yU2V0ID0gVktfTlVMTF9IQU5ETEU7Ci0gICAgICAgIGlmIChtU2hhZGVyQnVmZmVy
RGVzY3JpcHRvcnNDYWNoZS5nZXQoc2hhZGVyQnVmZmVyc0Rlc2MsICZkZXNjcmlwdG9yU2V0KSkK
KyAgICAgICAgaWYgKG1TaGFkZXJCdWZmZXJEZXNjcmlwdG9yc0NhY2hlLmdldCgKKyAgICAgICAg
ICAgICAgICBzaGFkZXJSZXNvdXJjZXNEZXNjLCAmZGVzY3JpcHRvclNldCwKKyAgICAgICAgICAg
ICAgICAmbVBlcmZDb3VudGVycy5jYWNoZVN0YXRzW0Rlc2NyaXB0b3JTZXRJbmRleDo6U2hhZGVy
UmVzb3VyY2VdKSkKICAgICAgICAgewogICAgICAgICAgICAgbURlc2NyaXB0b3JTZXRzW0Rlc2Ny
aXB0b3JTZXRJbmRleDo6U2hhZGVyUmVzb3VyY2VdID0gZGVzY3JpcHRvclNldDsKICAgICAgICAg
ICAgIC8vIFRoZSBkZXNjcmlwdG9yIHBvb2wgdGhhdCB0aGlzIGRlc2NyaXB0b3Igc2V0IHdhcyBh
bGxvY2F0ZWQgZnJvbSBuZWVkcyB0byBiZSByZXRhaW5lZAogICAgICAgICAgICAgLy8gZWFjaCB0
aW1lIHRoZSBkZXNjcmlwdG9yIHNldCBpcyB1c2VkIGluIGEgbmV3IGNvbW1hbmQuCiAgICAgICAg
ICAgICBtRGVzY3JpcHRvclBvb2xCaW5kaW5nc1tEZXNjcmlwdG9yU2V0SW5kZXg6OlNoYWRlclJl
c291cmNlXS5nZXQoKS5yZXRhaW4oCi0gICAgICAgICAgICAgICAgJmNvbnRleHRWay0+Z2V0UmVz
b3VyY2VVc2VMaXN0KCkpOworICAgICAgICAgICAgICAgIHJlc291cmNlVXNlTGlzdCk7CiAgICAg
ICAgICAgICBjYWNoZUhpdCA9IHRydWU7CiAgICAgICAgIH0KICAgICAgICAgZWxzZQogICAgICAg
ICB7CiAgICAgICAgICAgICBBTkdMRV9UUlkoYWxsb2NhdGVTaGFkZXJSZXNvdXJjZXNEZXNjcmlw
dG9yU2V0KGNvbnRleHRWaywgcmVzb3VyY2VVc2VMaXN0LAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmc2hhZGVyQnVmZmVyc0Rlc2Mp
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJnNoYWRlclJlc291cmNlc0Rlc2MpKTsKICAgICAgICAgfQogICAgIH0KICAgICBlbHNl
CkBAIC0xNjM4LDE2ICsxNjQwLDE3IEBAIGFuZ2xlOjpSZXN1bHQgUHJvZ3JhbUV4ZWN1dGFibGVW
azo6dXBkYXRlU2hhZGVyUmVzb3VyY2VzRGVzY3JpcHRvclNldCgKICAgICBmb3IgKGdsOjpTaGFk
ZXJUeXBlIHNoYWRlclR5cGUgOiBleGVjdXRhYmxlLT5nZXRMaW5rZWRTaGFkZXJTdGFnZXMoKSkK
ICAgICB7CiAgICAgICAgIEFOR0xFX1RSWSh1cGRhdGVCdWZmZXJzRGVzY3JpcHRvclNldCgKLSAg
ICAgICAgICAgIGNvbnRleHRWaywgdXBkYXRlQnVpbGRlciwgZW1wdHlCdWZmZXIsIHJlc291cmNl
VXNlTGlzdCwgc2hhZGVyVHlwZSwgc2hhZGVyQnVmZmVyc0Rlc2MsCi0gICAgICAgICAgICB1bmlm
b3JtQnVmZmVycywgZXhlY3V0YWJsZS0+Z2V0VW5pZm9ybUJsb2NrcygpLCBtVW5pZm9ybUJ1ZmZl
ckRlc2NyaXB0b3JUeXBlLAotICAgICAgICAgICAgbGltaXRzLm1heFVuaWZvcm1CdWZmZXJSYW5n
ZSwgY2FjaGVIaXQpKTsKKyAgICAgICAgICAgIGNvbnRleHRWaywgdXBkYXRlQnVpbGRlciwgZW1w
dHlCdWZmZXIsIHJlc291cmNlVXNlTGlzdCwgc2hhZGVyVHlwZSwgc2hhZGVyUmVzb3VyY2VzRGVz
YywKKyAgICAgICAgICAgIHVuaWZvcm1CdWZmZXJzLCBleGVjdXRhYmxlLT5nZXRVbmlmb3JtQmxv
Y2tzKCksIFNoYWRlclZhcmlhYmxlVHlwZTo6VW5pZm9ybUJ1ZmZlciwKKyAgICAgICAgICAgIG1V
bmlmb3JtQnVmZmVyRGVzY3JpcHRvclR5cGUsIGxpbWl0cy5tYXhVbmlmb3JtQnVmZmVyUmFuZ2Us
IGNhY2hlSGl0KSk7CiAgICAgICAgIEFOR0xFX1RSWSh1cGRhdGVCdWZmZXJzRGVzY3JpcHRvclNl
dCgKLSAgICAgICAgICAgIGNvbnRleHRWaywgdXBkYXRlQnVpbGRlciwgZW1wdHlCdWZmZXIsIHJl
c291cmNlVXNlTGlzdCwgc2hhZGVyVHlwZSwgc2hhZGVyQnVmZmVyc0Rlc2MsCi0gICAgICAgICAg
ICBzdG9yYWdlQnVmZmVycywgZXhlY3V0YWJsZS0+Z2V0U2hhZGVyU3RvcmFnZUJsb2NrcygpLCBr
U3RvcmFnZUJ1ZmZlckRlc2NyaXB0b3JUeXBlLAorICAgICAgICAgICAgY29udGV4dFZrLCB1cGRh
dGVCdWlsZGVyLCBlbXB0eUJ1ZmZlciwgcmVzb3VyY2VVc2VMaXN0LCBzaGFkZXJUeXBlLCBzaGFk
ZXJSZXNvdXJjZXNEZXNjLAorICAgICAgICAgICAgc3RvcmFnZUJ1ZmZlcnMsIGV4ZWN1dGFibGUt
PmdldFNoYWRlclN0b3JhZ2VCbG9ja3MoKSwKKyAgICAgICAgICAgIFNoYWRlclZhcmlhYmxlVHlw
ZTo6U2hhZGVyU3RvcmFnZUJ1ZmZlciwga1N0b3JhZ2VCdWZmZXJEZXNjcmlwdG9yVHlwZSwKICAg
ICAgICAgICAgIGxpbWl0cy5tYXhTdG9yYWdlQnVmZmVyUmFuZ2UsIGNhY2hlSGl0KSk7CiAgICAg
ICAgIEFOR0xFX1RSWSh1cGRhdGVBdG9taWNDb3VudGVyQnVmZmVyc0Rlc2NyaXB0b3JTZXQoCiAg
ICAgICAgICAgICBjb250ZXh0VmssIHVwZGF0ZUJ1aWxkZXIsIGVtcHR5QnVmZmVyLCByZXNvdXJj
ZVVzZUxpc3QsIGF0b21pY0NvdW50ZXJCdWZmZXJCaW5kaW5ncywKLSAgICAgICAgICAgICpleGVj
dXRhYmxlLCBzaGFkZXJUeXBlLCBzaGFkZXJCdWZmZXJzRGVzYywgY2FjaGVIaXQpKTsKKyAgICAg
ICAgICAgICpleGVjdXRhYmxlLCBzaGFkZXJUeXBlLCBzaGFkZXJSZXNvdXJjZXNEZXNjLCBjYWNo
ZUhpdCkpOwogICAgICAgICBBTkdMRV9UUlkodXBkYXRlSW1hZ2VzRGVzY3JpcHRvclNldChjb250
ZXh0VmssIHJlc291cmNlVXNlTGlzdCwgdXBkYXRlQnVpbGRlciwgYWN0aXZlSW1hZ2VzLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnbFN0YXRlLmdldEltYWdl
VW5pdHMoKSwgKmV4ZWN1dGFibGUsIHNoYWRlclR5cGUpKTsKICAgICAgICAgQU5HTEVfVFJZKHVw
ZGF0ZUlucHV0QXR0YWNobWVudERlc2NyaXB0b3JTZXQoY29udGV4dFZrLCByZXNvdXJjZVVzZUxp
c3QsIHVwZGF0ZUJ1aWxkZXIsCkBAIC0xNjc5LDkgKzE2ODIsOSBAQCBhbmdsZTo6UmVzdWx0IFBy
b2dyYW1FeGVjdXRhYmxlVms6OnVwZGF0ZUlucHV0QXR0YWNobWVudERlc2NyaXB0b3JTZXQoCiAK
ICAgICBjb25zdCB1aW50MzJfdCBiYXNlVW5pZm9ybUluZGV4ICAgICAgICAgICAgICA9IGV4ZWN1
dGFibGUuZ2V0RnJhZ21lbnRJbm91dFJhbmdlKCkubG93KCk7CiAgICAgY29uc3QgZ2w6Okxpbmtl
ZFVuaWZvcm0gJmJhc2VJbnB1dEF0dGFjaG1lbnQgPSB1bmlmb3Jtcy5hdChiYXNlVW5pZm9ybUlu
ZGV4KTsKLSAgICBzdGQ6OnN0cmluZyBiYXNlTWFwcGVkTmFtZSAgICAgICAgICAgICAgICAgICA9
IGJhc2VJbnB1dEF0dGFjaG1lbnQubWFwcGVkTmFtZTsKIAotICAgIFNoYWRlckludGVyZmFjZVZh
cmlhYmxlSW5mbyAmYmFzZUluZm8gPSBtVmFyaWFibGVJbmZvTWFwLmdldChzaGFkZXJUeXBlLCBi
YXNlTWFwcGVkTmFtZSk7CisgICAgY29uc3QgU2hhZGVySW50ZXJmYWNlVmFyaWFibGVJbmZvICZi
YXNlSW5mbyA9CisgICAgICAgIG1WYXJpYWJsZUluZm9NYXAuZ2V0RnJhbWVidWZmZXJGZXRjaElu
Zm8oc2hhZGVyVHlwZSk7CiAgICAgaWYgKGJhc2VJbmZvLmlzRHVwbGljYXRlKQogICAgIHsKICAg
ICAgICAgcmV0dXJuIGFuZ2xlOjpSZXN1bHQ6OkNvbnRpbnVlOwpAQCAtMTc5OCw3ICsxODAxLDgg
QEAgYW5nbGU6OlJlc3VsdCBQcm9ncmFtRXhlY3V0YWJsZVZrOjp1cGRhdGVUZXh0dXJlc0Rlc2Ny
aXB0b3JTZXQoCiAgICAgfQogCiAgICAgVmtEZXNjcmlwdG9yU2V0IGRlc2NyaXB0b3JTZXQgPSBW
S19OVUxMX0hBTkRMRTsKLSAgICBpZiAobVRleHR1cmVEZXNjcmlwdG9yc0NhY2hlLmdldCh0ZXh0
dXJlc0Rlc2MsICZkZXNjcmlwdG9yU2V0KSkKKyAgICBpZiAobVRleHR1cmVEZXNjcmlwdG9yc0Nh
Y2hlLmdldCh0ZXh0dXJlc0Rlc2MsICZkZXNjcmlwdG9yU2V0LAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICZtUGVyZkNvdW50ZXJzLmNhY2hlU3RhdHNbRGVzY3JpcHRvclNl
dEluZGV4OjpUZXh0dXJlXSkpCiAgICAgewogICAgICAgICBtRGVzY3JpcHRvclNldHNbRGVzY3Jp
cHRvclNldEluZGV4OjpUZXh0dXJlXSA9IGRlc2NyaXB0b3JTZXQ7CiAgICAgICAgIC8vIFRoZSBk
ZXNjcmlwdG9yIHBvb2wgdGhhdCB0aGlzIGRlc2NyaXB0b3Igc2V0IHdhcyBhbGxvY2F0ZWQgZnJv
bSBuZWVkcyB0byBiZSByZXRhaW5lZCBlYWNoCkBAIC0xODExLDIzICsxODE1LDIzIEBAIGFuZ2xl
OjpSZXN1bHQgUHJvZ3JhbUV4ZWN1dGFibGVWazo6dXBkYXRlVGV4dHVyZXNEZXNjcmlwdG9yU2V0
KAogCiAgICAgZm9yIChnbDo6U2hhZGVyVHlwZSBzaGFkZXJUeXBlIDogZXhlY3V0YWJsZS5nZXRM
aW5rZWRTaGFkZXJTdGFnZXMoKSkKICAgICB7Ci0gICAgICAgIGFuZ2xlOjpIYXNoTWFwPHN0ZDo6
c3RyaW5nLCB1aW50MzJfdD4gbWFwcGVkU2FtcGxlck5hbWVUb0FycmF5T2Zmc2V0OwogICAgICAg
ICBmb3IgKHVpbnQzMl90IHRleHR1cmVJbmRleCA9IDA7IHRleHR1cmVJbmRleCA8IGV4ZWN1dGFi
bGUuZ2V0U2FtcGxlckJpbmRpbmdzKCkuc2l6ZSgpOwogICAgICAgICAgICAgICsrdGV4dHVyZUlu
ZGV4KQogICAgICAgICB7CiAgICAgICAgICAgICBjb25zdCBnbDo6U2FtcGxlckJpbmRpbmcgJnNh
bXBsZXJCaW5kaW5nID0gc2FtcGxlckJpbmRpbmdzW3RleHR1cmVJbmRleF07CiAgICAgICAgICAg
ICB1aW50MzJfdCB1bmlmb3JtSW5kZXggPSBleGVjdXRhYmxlLmdldFVuaWZvcm1JbmRleEZyb21T
YW1wbGVySW5kZXgodGV4dHVyZUluZGV4KTsKICAgICAgICAgICAgIGNvbnN0IGdsOjpMaW5rZWRV
bmlmb3JtICZzYW1wbGVyVW5pZm9ybSA9IGV4ZWN1dGFibGUuZ2V0VW5pZm9ybXMoKVt1bmlmb3Jt
SW5kZXhdOwotICAgICAgICAgICAgc3RkOjpzdHJpbmcgbWFwcGVkU2FtcGxlck5hbWUgPSBHbHNs
YW5nR2V0TWFwcGVkU2FtcGxlck5hbWUoc2FtcGxlclVuaWZvcm0ubmFtZSk7CiAKICAgICAgICAg
ICAgIGlmICghc2FtcGxlclVuaWZvcm0uaXNBY3RpdmUoc2hhZGVyVHlwZSkpCiAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAg
ICAgIGNvbnN0IHN0ZDo6c3RyaW5nIHNhbXBsZXJOYW1lID0gR2xzbGFuZ0dldE1hcHBlZFNhbXBs
ZXJOYW1lKHNhbXBsZXJVbmlmb3JtLm5hbWUpOworICAgICAgICAgICAgdWludDMyX3QgYXJyYXlP
ZmZzZXQgPSBzYW1wbGVyVW5pZm9ybS5vdXRlckFycmF5T2Zmc2V0OworICAgICAgICAgICAgdWlu
dDMyX3QgYXJyYXlTaXplICAgPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4oc2FtcGxlckJpbmRpbmcu
Ym91bmRUZXh0dXJlVW5pdHMuc2l6ZSgpKTsKIAotICAgICAgICAgICAgY29uc3QgU2hhZGVySW50
ZXJmYWNlVmFyaWFibGVJbmZvICZpbmZvID0gbVZhcmlhYmxlSW5mb01hcC5nZXQoc2hhZGVyVHlw
ZSwgc2FtcGxlck5hbWUpOworICAgICAgICAgICAgY29uc3QgU2hhZGVySW50ZXJmYWNlVmFyaWFi
bGVJbmZvICZpbmZvID0gbVZhcmlhYmxlSW5mb01hcC5nZXRJbmRleGVkVmFyaWFibGVJbmZvKAor
ICAgICAgICAgICAgICAgIHNoYWRlclR5cGUsIFNoYWRlclZhcmlhYmxlVHlwZTo6VGV4dHVyZSwg
dGV4dHVyZUluZGV4KTsKICAgICAgICAgICAgIGlmIChpbmZvLmlzRHVwbGljYXRlKQogICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwpAQCAtMTg0NCwyMyArMTg0OCwxNiBA
QCBhbmdsZTo6UmVzdWx0IFByb2dyYW1FeGVjdXRhYmxlVms6OnVwZGF0ZVRleHR1cmVzRGVzY3Jp
cHRvclNldCgKICAgICAgICAgICAgICAgICAvLyBDbGVhciBkZXNjcmlwdG9yIHNldCBjYWNoZS4g
SXQgbWF5IG5vIGxvbmdlciBiZSB2YWxpZC4KICAgICAgICAgICAgICAgICBpZiAobmV3UG9vbEFs
bG9jYXRlZCkKICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIG1UZXh0dXJl
RGVzY3JpcHRvcnNDYWNoZS5kZXN0cm95KGNvbnRleHQtPmdldFJlbmRlcmVyKCksCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZ1bGthbkNhY2hl
VHlwZTo6VGV4dHVyZURlc2NyaXB0b3JzKTsKKyAgICAgICAgICAgICAgICAgICAgbVRleHR1cmVE
ZXNjcmlwdG9yc0NhY2hlLmNsZWFyKCk7CiAgICAgICAgICAgICAgICAgfQogCiAgICAgICAgICAg
ICAgICAgZGVzY3JpcHRvclNldCA9IG1EZXNjcmlwdG9yU2V0c1tEZXNjcmlwdG9yU2V0SW5kZXg6
OlRleHR1cmVdOwotICAgICAgICAgICAgICAgIG1UZXh0dXJlRGVzY3JpcHRvcnNDYWNoZS5pbnNl
cnQodGV4dHVyZXNEZXNjLCBkZXNjcmlwdG9yU2V0KTsKKyAgICAgICAgICAgICAgICBtVGV4dHVy
ZURlc2NyaXB0b3JzQ2FjaGUuaW5zZXJ0KAorICAgICAgICAgICAgICAgICAgICB0ZXh0dXJlc0Rl
c2MsIGRlc2NyaXB0b3JTZXQsCisgICAgICAgICAgICAgICAgICAgICZtUGVyZkNvdW50ZXJzLmNh
Y2hlU3RhdHNbRGVzY3JpcHRvclNldEluZGV4OjpUZXh0dXJlXSk7CiAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICBBU1NFUlQoZGVzY3JpcHRvclNldCAhPSBWS19OVUxMX0hBTkRMRSk7CiAKLSAg
ICAgICAgICAgIHVpbnQzMl90IGFycmF5T2Zmc2V0ID0gMDsKLSAgICAgICAgICAgIHVpbnQzMl90
IGFycmF5U2l6ZSAgID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHNhbXBsZXJCaW5kaW5nLmJvdW5k
VGV4dHVyZVVuaXRzLnNpemUoKSk7Ci0KLSAgICAgICAgICAgIGFycmF5T2Zmc2V0ID0gbWFwcGVk
U2FtcGxlck5hbWVUb0FycmF5T2Zmc2V0W21hcHBlZFNhbXBsZXJOYW1lXTsKLSAgICAgICAgICAg
IC8vIEZyb250LWVuZCBnZW5lcmF0ZXMgYXJyYXkgZWxlbWVudHMgaW4gb3JkZXIsIHNvIHdlIGNh
biBqdXN0IGluY3JlbWVudCB0aGUgb2Zmc2V0IGVhY2gKLSAgICAgICAgICAgIC8vIHRpbWUgd2Ug
cHJvY2VzcyBhIG5lc3RlZCBhcnJheS4KLSAgICAgICAgICAgIG1hcHBlZFNhbXBsZXJOYW1lVG9B
cnJheU9mZnNldFttYXBwZWRTYW1wbGVyTmFtZV0gKz0gYXJyYXlTaXplOwotCiAgICAgICAgICAg
ICBWa1dyaXRlRGVzY3JpcHRvclNldCAqd3JpdGVJbmZvcyA9IHVwZGF0ZUJ1aWxkZXItPmFsbG9j
V3JpdGVEZXNjcmlwdG9yU2V0cyhhcnJheVNpemUpOwogCiAgICAgICAgICAgICAvLyBUZXh0dXJl
IGJ1ZmZlcnMgdXNlIGJ1ZmZlciB2aWV3cywgc28gdGhleSBhcmUgZXNwZWNpYWxseSBoYW5kbGVk
LgpAQCAtMTk5Niw4ICsxOTkzLDYgQEAgYW5nbGU6OlJlc3VsdCBQcm9ncmFtRXhlY3V0YWJsZVZr
Ojp1cGRhdGVEZXNjcmlwdG9yU2V0cyh2azo6Q29udGV4dCAqY29udGV4dCwKICAgICAgICAgICAg
ICAgICAgICAgY29udGV4dCwgcmVzb3VyY2VVc2VMaXN0LCBkZXNjcmlwdG9yU2V0TGF5b3V0LCAx
LAogICAgICAgICAgICAgICAgICAgICAmbURlc2NyaXB0b3JQb29sQmluZGluZ3NbZGVzY3JpcHRv
clNldEluZGV4XSwKICAgICAgICAgICAgICAgICAgICAgJm1FbXB0eURlc2NyaXB0b3JTZXRzW2Rl
c2NyaXB0b3JTZXRJbmRleF0pKTsKLQotICAgICAgICAgICAgICAgICsrbVBlcmZDb3VudGVycy5k
ZXNjcmlwdG9yU2V0QWxsb2NhdGlvbnNbZGVzY3JpcHRvclNldEluZGV4XTsKICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIGRlc2NTZXQgPSBtRW1wdHlEZXNjcmlwdG9yU2V0c1tkZXNjcmlwdG9y
U2V0SW5kZXhdOwogICAgICAgICB9CkBAIC0yMDQwLDUxICsyMDM1LDkgQEAgdGVtcGxhdGUgYW5n
bGU6OlJlc3VsdCBQcm9ncmFtRXhlY3V0YWJsZVZrOjp1cGRhdGVEZXNjcmlwdG9yU2V0czx2azo6
VnVsa2FuU2Vjb24KICAgICB2azo6VnVsa2FuU2Vjb25kYXJ5Q29tbWFuZEJ1ZmZlciAqY29tbWFu
ZEJ1ZmZlciwKICAgICBQaXBlbGluZVR5cGUgcGlwZWxpbmVUeXBlKTsKIAotLy8gUmVxdWlyZXMg
dGhhdCB0cmFjZSBpcyBlbmFibGVkIHRvIHNlZSB0aGUgb3V0cHV0LCB3aGljaCBpcyBzdXBwb3J0
ZWQgd2l0aCBpc19kZWJ1Zz10cnVlCi12b2lkIFByb2dyYW1FeGVjdXRhYmxlVms6Om91dHB1dEN1
bXVsYXRpdmVQZXJmQ291bnRlcnMoKQotewotICAgIGlmICghdms6OmtPdXRwdXRDdW11bGF0aXZl
UGVyZkNvdW50ZXJzKQotICAgIHsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIHN0ZDo6
b3N0cmluZ3N0cmVhbSB0ZXh0OwotCi0gICAgZm9yIChEZXNjcmlwdG9yU2V0SW5kZXggZGVzY3Jp
cHRvclNldEluZGV4IDogYW5nbGU6OkFsbEVudW1zPERlc2NyaXB0b3JTZXRJbmRleD4oKSkKLSAg
ICB7Ci0gICAgICAgIHVpbnQzMl90IGNvdW50ID0gbUN1bXVsYXRpdmVQZXJmQ291bnRlcnMuZGVz
Y3JpcHRvclNldEFsbG9jYXRpb25zW2Rlc2NyaXB0b3JTZXRJbmRleF07Ci0gICAgICAgIGlmIChj
b3VudCA+IDApCi0gICAgICAgIHsKLSAgICAgICAgICAgIHRleHQgPDwgIiAgICBEZXNjcmlwdG9y
U2V0SW5kZXggIiA8PCBUb1VuZGVybHlpbmcoZGVzY3JpcHRvclNldEluZGV4KSA8PCAiOiAiIDw8
IGNvdW50Ci0gICAgICAgICAgICAgICAgIDw8ICJcbiI7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAg
ICAvLyBPbmx5IG91dHB1dCBpbmZvcm1hdGlvbiBmb3IgcHJvZ3JhbXMgdGhhdCBhbGxvY2F0ZWQg
ZGVzY3JpcHRvciBzZXRzLgotICAgIHN0ZDo6c3RyaW5nIHRleHRTdHIgPSB0ZXh0LnN0cigpOwot
ICAgIGlmICghdGV4dFN0ci5lbXB0eSgpKQotICAgIHsKLSAgICAgICAgSU5GTygpIDw8ICJQcm9n
cmFtRXhlY3V0YWJsZTogIiA8PCB0aGlzIDw8ICI6IjsKLQotICAgICAgICAvLyBPdXRwdXQgZWFj
aCBkZXNjcmlwdG9yIHNldCBhbGxvY2F0aW9uIG9uIGEgc2luZ2xlIGxpbmUsIHNvIHRoZXkncmUg
cHJlZml4ZWQgd2l0aCB0aGUKLSAgICAgICAgLy8gSU5GTyBpbmZvcm1hdGlvbiAoZmlsZSwgbGlu
ZSBudW1iZXIsIGV0Yy4pLgotICAgICAgICAvLyBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL2Ev
MTI1MTQ2NDEKLSAgICAgICAgc3RkOjppc3RyaW5nc3RyZWFtIGlzcyh0ZXh0U3RyKTsKLSAgICAg
ICAgZm9yIChzdGQ6OnN0cmluZyBsaW5lOyBzdGQ6OmdldGxpbmUoaXNzLCBsaW5lKTspCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIElORk8oKSA8PCBsaW5lOwotICAgICAgICB9Ci0gICAgfQotfQot
Ci1Qcm9ncmFtRXhlY3V0YWJsZVBlcmZDb3VudGVycyBQcm9ncmFtRXhlY3V0YWJsZVZrOjpnZXRB
bmRSZXNldE9iamVjdFBlcmZDb3VudGVycygpCitQcm9ncmFtRXhlY3V0YWJsZVBlcmZDb3VudGVy
cyBQcm9ncmFtRXhlY3V0YWJsZVZrOjpnZXREZXNjcmlwdG9yU2V0UGVyZkNvdW50ZXJzKCkKIHsK
LSAgICBtVW5pZm9ybXNBbmRYZmJEZXNjcmlwdG9yc0NhY2hlLmFjY3VtdWxhdGVDYWNoZVN0YXRz
KFZ1bGthbkNhY2hlVHlwZTo6VW5pZm9ybXNBbmRYZmJEZXNjcmlwdG9ycywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMpOwotICAg
IG1UZXh0dXJlRGVzY3JpcHRvcnNDYWNoZS5hY2N1bXVsYXRlQ2FjaGVTdGF0cyhWdWxrYW5DYWNo
ZVR5cGU6OlRleHR1cmVEZXNjcmlwdG9ycywgdGhpcyk7Ci0gICAgbVNoYWRlckJ1ZmZlckRlc2Ny
aXB0b3JzQ2FjaGUuYWNjdW11bGF0ZUNhY2hlU3RhdHMoVnVsa2FuQ2FjaGVUeXBlOjpTaGFkZXJC
dWZmZXJzRGVzY3JpcHRvcnMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdGhpcyk7Ci0KKyAgICBtUGVyZkNvdW50ZXJzLmRlc2NyaXB0b3JT
ZXRDYWNoZUtleVNpemVzQnl0ZXMgPSB7fTsKICAgICBtUGVyZkNvdW50ZXJzLmRlc2NyaXB0b3JT
ZXRDYWNoZUtleVNpemVzQnl0ZXNbRGVzY3JpcHRvclNldEluZGV4OjpVbmlmb3Jtc0FuZFhmYl0g
PQogICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4obVVuaWZvcm1zQW5kWGZiRGVzY3JpcHRv
cnNDYWNoZS5nZXRUb3RhbENhY2hlS2V5U2l6ZUJ5dGVzKCkpOwogICAgIG1QZXJmQ291bnRlcnMu
ZGVzY3JpcHRvclNldENhY2hlS2V5U2l6ZXNCeXRlc1tEZXNjcmlwdG9yU2V0SW5kZXg6OlRleHR1
cmVdID0KQEAgLTIwOTIsMjggKzIwNDUsMTUgQEAgUHJvZ3JhbUV4ZWN1dGFibGVQZXJmQ291bnRl
cnMgUHJvZ3JhbUV4ZWN1dGFibGVWazo6Z2V0QW5kUmVzZXRPYmplY3RQZXJmQ291bnRlcnMKICAg
ICBtUGVyZkNvdW50ZXJzLmRlc2NyaXB0b3JTZXRDYWNoZUtleVNpemVzQnl0ZXNbRGVzY3JpcHRv
clNldEluZGV4OjpTaGFkZXJSZXNvdXJjZV0gPQogICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJf
dD4obVNoYWRlckJ1ZmZlckRlc2NyaXB0b3JzQ2FjaGUuZ2V0VG90YWxDYWNoZUtleVNpemVCeXRl
cygpKTsKIAotICAgIG1DdW11bGF0aXZlUGVyZkNvdW50ZXJzLmRlc2NyaXB0b3JTZXRBbGxvY2F0
aW9ucyArPSBtUGVyZkNvdW50ZXJzLmRlc2NyaXB0b3JTZXRBbGxvY2F0aW9uczsKLSAgICBtQ3Vt
dWxhdGl2ZVBlcmZDb3VudGVycy5kZXNjcmlwdG9yU2V0Q2FjaGVIaXRzICs9IG1QZXJmQ291bnRl
cnMuZGVzY3JpcHRvclNldENhY2hlSGl0czsKLSAgICBtQ3VtdWxhdGl2ZVBlcmZDb3VudGVycy5k
ZXNjcmlwdG9yU2V0Q2FjaGVNaXNzZXMgKz0gbVBlcmZDb3VudGVycy5kZXNjcmlwdG9yU2V0Q2Fj
aGVNaXNzZXM7Ci0KLSAgICBQcm9ncmFtRXhlY3V0YWJsZVBlcmZDb3VudGVycyBjb3VudGVycyAg
ICAgICAgPSBtUGVyZkNvdW50ZXJzOwotICAgIG1QZXJmQ291bnRlcnMuZGVzY3JpcHRvclNldEFs
bG9jYXRpb25zICAgICAgICA9IHt9OwotICAgIG1QZXJmQ291bnRlcnMuZGVzY3JpcHRvclNldENh
Y2hlSGl0cyAgICAgICAgICA9IHt9OwotICAgIG1QZXJmQ291bnRlcnMuZGVzY3JpcHRvclNldENh
Y2hlTWlzc2VzICAgICAgICA9IHt9OwotICAgIG1QZXJmQ291bnRlcnMuZGVzY3JpcHRvclNldENh
Y2hlS2V5U2l6ZXNCeXRlcyA9IHt9OwotICAgIHJldHVybiBjb3VudGVyczsKKyAgICByZXR1cm4g
bVBlcmZDb3VudGVyczsKIH0KIAotdm9pZCBQcm9ncmFtRXhlY3V0YWJsZVZrOjphY2N1bXVsYXRl
Q2FjaGVTdGF0cyhWdWxrYW5DYWNoZVR5cGUgY2FjaGVUeXBlLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBDYWNoZVN0YXRzICZjYWNoZVN0YXRz
KQordm9pZCBQcm9ncmFtRXhlY3V0YWJsZVZrOjpyZXNldERlc2NyaXB0b3JTZXRQZXJmQ291bnRl
cnMoKQogewotICAgIERlc2NyaXB0b3JTZXRJbmRleCBkc0luZGV4ID0gQ2FjaGVUeXBlVG9EZXNj
cmlwdG9yU2V0SW5kZXgoY2FjaGVUeXBlKTsKLQotICAgIG1QZXJmQ291bnRlcnMuZGVzY3JpcHRv
clNldENhY2hlSGl0c1tkc0luZGV4XSArPQotICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4o
Y2FjaGVTdGF0cy5nZXRIaXRDb3VudCgpKTsKLSAgICBtUGVyZkNvdW50ZXJzLmRlc2NyaXB0b3JT
ZXRDYWNoZU1pc3Nlc1tkc0luZGV4XSArPQotICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4o
Y2FjaGVTdGF0cy5nZXRNaXNzQ291bnQoKSk7Ci0gICAgbVBlcmZDb3VudGVycy5kZXNjcmlwdG9y
U2V0Q2FjaGVTaXplc1tkc0luZGV4XSA9IHN0YXRpY19jYXN0PHVpbnQzMl90PihjYWNoZVN0YXRz
LmdldFNpemUoKSk7CisgICAgZm9yIChDYWNoZVN0YXRzICZjYWNoZVN0YXRzIDogbVBlcmZDb3Vu
dGVycy5jYWNoZVN0YXRzKQorICAgIHsKKyAgICAgICAgY2FjaGVTdGF0cy5yZXNldEhpdEFuZE1p
c3NDb3VudCgpOworICAgIH0KIH0KIAogdm9pZCBQcm9ncmFtRXhlY3V0YWJsZVZrOjpzZXRBbGxE
ZWZhdWx0VW5pZm9ybXNEaXJ0eShjb25zdCBnbDo6UHJvZ3JhbUV4ZWN1dGFibGUgJmV4ZWN1dGFi
bGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVu
ZGVyZXIvdnVsa2FuL1Byb2dyYW1FeGVjdXRhYmxlVmsuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FO
R0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci92dWxrYW4vUHJvZ3JhbUV4ZWN1dGFibGVWay5oCmlu
ZGV4IDk5MTA4NjIyYjljMjVlZmRiN2RhYjcyZjcwMWU4M2Y5ZmM5MWRiNzguLjMwODM5Mjc1MTdj
N2EwNDI3ZWMxYWE1ZDAzMGQ0ZTAzODY0ZDcyYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBh
cnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci92dWxrYW4vUHJvZ3JhbUV4ZWN1dGFibGVW
ay5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci92
dWxrYW4vUHJvZ3JhbUV4ZWN1dGFibGVWay5oCkBAIC0xMDksMTAgKzEwOSw3IEBAIHVzaW5nIElt
bXV0YWJsZVNhbXBsZXJJbmRleE1hcCA9IGFuZ2xlOjpIYXNoTWFwPHZrOjpZY2JjckNvbnZlcnNp
b25EZXNjLCB1aW50MzJfCiAKIHN0cnVjdCBQcm9ncmFtRXhlY3V0YWJsZVBlcmZDb3VudGVycwog
ewotICAgIERlc2NyaXB0b3JTZXRDb3VudExpc3QgZGVzY3JpcHRvclNldEFsbG9jYXRpb25zOwot
ICAgIERlc2NyaXB0b3JTZXRDb3VudExpc3QgZGVzY3JpcHRvclNldENhY2hlSGl0czsKLSAgICBE
ZXNjcmlwdG9yU2V0Q291bnRMaXN0IGRlc2NyaXB0b3JTZXRDYWNoZU1pc3NlczsKLSAgICBEZXNj
cmlwdG9yU2V0Q291bnRMaXN0IGRlc2NyaXB0b3JTZXRDYWNoZVNpemVzOworICAgIGFuZ2xlOjpQ
YWNrZWRFbnVtTWFwPERlc2NyaXB0b3JTZXRJbmRleCwgQ2FjaGVTdGF0cz4gY2FjaGVTdGF0czsK
ICAgICBEZXNjcmlwdG9yU2V0Q291bnRMaXN0IGRlc2NyaXB0b3JTZXRDYWNoZUtleVNpemVzQnl0
ZXM7CiB9OwogCkBAIC0xNzQsNyArMTcxLDcgQEAgY2xhc3MgUHJvZ3JhbUV4ZWN1dGFibGVWawog
ICAgICAgICB2azo6QnVmZmVySGVscGVyICplbXB0eUJ1ZmZlciwKICAgICAgICAgdms6OlJlc291
cmNlVXNlTGlzdCAqcmVzb3VyY2VVc2VMaXN0LAogICAgICAgICBGcmFtZWJ1ZmZlclZrICpmcmFt
ZWJ1ZmZlclZrLAotICAgICAgICBjb25zdCB2azo6RGVzY3JpcHRvclNldERlc2MgJnNoYWRlckJ1
ZmZlcnNEZXNjKTsKKyAgICAgICAgY29uc3Qgdms6OkRlc2NyaXB0b3JTZXREZXNjICZzaGFkZXJS
ZXNvdXJjZXNEZXNjKTsKICAgICBhbmdsZTo6UmVzdWx0IHVwZGF0ZVVuaWZvcm1zQW5kWGZiRGVz
Y3JpcHRvclNldCh2azo6Q29udGV4dCAqY29udGV4dCwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVcGRhdGVEZXNjcmlwdG9yU2V0c0J1aWxkZXIg
KnVwZGF0ZUJ1aWxkZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdms6OlJlc291cmNlVXNlTGlzdCAqcmVzb3VyY2VVc2VMaXN0LApAQCAtMjE0
LDcgKzIxMSw4IEBAIGNsYXNzIFByb2dyYW1FeGVjdXRhYmxlVmsKICAgICB9CiAKICAgICB2b2lk
IGFjY3VtdWxhdGVDYWNoZVN0YXRzKFZ1bGthbkNhY2hlVHlwZSBjYWNoZVR5cGUsIGNvbnN0IENh
Y2hlU3RhdHMgJmNhY2hlU3RhdHMpOwotICAgIFByb2dyYW1FeGVjdXRhYmxlUGVyZkNvdW50ZXJz
IGdldEFuZFJlc2V0T2JqZWN0UGVyZkNvdW50ZXJzKCk7CisgICAgUHJvZ3JhbUV4ZWN1dGFibGVQ
ZXJmQ291bnRlcnMgZ2V0RGVzY3JpcHRvclNldFBlcmZDb3VudGVycygpOworICAgIHZvaWQgcmVz
ZXREZXNjcmlwdG9yU2V0UGVyZkNvdW50ZXJzKCk7CiAKICAgICBzaXplX3QgZ2V0RGVmYXVsdFVu
aWZvcm1BbGlnbmVkU2l6ZSh2azo6Q29udGV4dCAqY29udGV4dCwgZ2w6OlNoYWRlclR5cGUgc2hh
ZGVyVHlwZSkgY29uc3QKICAgICB7CkBAIC0yNjEsNiArMjU5LDcgQEAgY2xhc3MgUHJvZ3JhbUV4
ZWN1dGFibGVWawogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBib29sICpuZXdQb29sQWxsb2NhdGVkT3V0KTsKICAgICB2b2lkIGFkZEludGVyZmFjZUJs
b2NrRGVzY3JpcHRvclNldERlc2MoY29uc3Qgc3RkOjp2ZWN0b3I8Z2w6OkludGVyZmFjZUJsb2Nr
PiAmYmxvY2tzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBn
bDo6U2hhZGVyVHlwZSBzaGFkZXJUeXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBTaGFkZXJWYXJpYWJsZVR5cGUgdmFyaWFibGVUeXBlLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWa0Rlc2NyaXB0b3JUeXBlIGRlc2NU
eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2azo6RGVz
Y3JpcHRvclNldExheW91dERlc2MgKmRlc2NPdXQpOwogICAgIHZvaWQgYWRkQXRvbWljQ291bnRl
ckJ1ZmZlckRlc2NyaXB0b3JTZXREZXNjKApAQCAtMjk1LDE1ICsyOTQsMTYgQEAgY2xhc3MgUHJv
Z3JhbUV4ZWN1dGFibGVWawogICAgIGFuZ2xlOjpSZXN1bHQgYWxsb2NhdGVTaGFkZXJSZXNvdXJj
ZXNEZXNjcmlwdG9yU2V0KAogICAgICAgICB2azo6Q29udGV4dCAqY29udGV4dCwKICAgICAgICAg
dms6OlJlc291cmNlVXNlTGlzdCAqcmVzb3VyY2VVc2VMaXN0LAotICAgICAgICBjb25zdCB2azo6
RGVzY3JpcHRvclNldERlc2MgKnNoYWRlckJ1ZmZlcnNEZXNjKTsKKyAgICAgICAgY29uc3Qgdms6
OkRlc2NyaXB0b3JTZXREZXNjICpzaGFkZXJSZXNvdXJjZXNEZXNjKTsKICAgICBhbmdsZTo6UmVz
dWx0IHVwZGF0ZUJ1ZmZlcnNEZXNjcmlwdG9yU2V0KHZrOjpDb250ZXh0ICpjb250ZXh0LAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVXBkYXRlRGVzY3JpcHRv
clNldHNCdWlsZGVyICp1cGRhdGVCdWlsZGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdms6OkJ1ZmZlckhlbHBlciAqZW1wdHlCdWZmZXIsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2azo6UmVzb3VyY2VVc2VMaXN0
ICpyZXNvdXJjZVVzZUxpc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBnbDo6U2hhZGVyVHlwZSBzaGFkZXJUeXBlLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgdms6OkRlc2NyaXB0b3JTZXREZXNjICZzaGFk
ZXJCdWZmZXJzRGVzYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IHZrOjpEZXNjcmlwdG9yU2V0RGVzYyAmc2hhZGVyUmVzb3VyY2VzRGVzYywKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdsOjpCdWZm
ZXJWZWN0b3IgJmJ1ZmZlcnMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdCBzdGQ6OnZlY3RvcjxnbDo6SW50ZXJmYWNlQmxvY2s+ICZibG9ja3MsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTaGFkZXJWYXJpYWJs
ZVR5cGUgdmFyaWFibGVUeXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgVmtEZXNjcmlwdG9yVHlwZSBkZXNjcmlwdG9yVHlwZSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZrRGV2aWNlU2l6ZSBtYXhCb3VuZEJ1ZmZl
clJhbmdlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9v
bCBjYWNoZUhpdCk7CkBAIC0zMTUsNyArMzE1LDcgQEAgY2xhc3MgUHJvZ3JhbUV4ZWN1dGFibGVW
awogICAgICAgICBjb25zdCBnbDo6QnVmZmVyVmVjdG9yICZhdG9taWNDb3VudGVyQnVmZmVyQmlu
ZGluZ3MsCiAgICAgICAgIGNvbnN0IGdsOjpQcm9ncmFtRXhlY3V0YWJsZSAmZXhlY3V0YWJsZSwK
ICAgICAgICAgZ2w6OlNoYWRlclR5cGUgc2hhZGVyVHlwZSwKLSAgICAgICAgY29uc3Qgdms6OkRl
c2NyaXB0b3JTZXREZXNjICZzaGFkZXJCdWZmZXJzRGVzYywKKyAgICAgICAgY29uc3Qgdms6OkRl
c2NyaXB0b3JTZXREZXNjICZzaGFkZXJSZXNvdXJjZXNEZXNjLAogICAgICAgICBib29sIGNhY2hl
SGl0KTsKICAgICBhbmdsZTo6UmVzdWx0IHVwZGF0ZUltYWdlc0Rlc2NyaXB0b3JTZXQodms6OkNv
bnRleHQgKmNvbnRleHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHZrOjpSZXNvdXJjZVVzZUxpc3QgKnJlc291cmNlVXNlTGlzdCwKQEAgLTMzMiw4ICszMzIs
NiBAQCBjbGFzcyBQcm9ncmFtRXhlY3V0YWJsZVZrCiAgICAgICAgIHVpbnQzMl90IGRlc2NyaXB0
b3JDb3VudE11bHRpcGxpZXIsCiAgICAgICAgIHZrOjpEeW5hbWljRGVzY3JpcHRvclBvb2wgKmR5
bmFtaWNEZXNjcmlwdG9yUG9vbCk7CiAKLSAgICB2b2lkIG91dHB1dEN1bXVsYXRpdmVQZXJmQ291
bnRlcnMoKTsKLQogICAgIHNpemVfdCBjYWxjVW5pZm9ybVVwZGF0ZVJlcXVpcmVkU3BhY2Uodms6
OkNvbnRleHQgKmNvbnRleHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb25zdCBnbDo6UHJvZ3JhbUV4ZWN1dGFibGUgJmdsRXhlY3V0YWJsZSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdsOjpTaGFkZXJNYXA8VmtEZXZpY2VT
aXplPiAqdW5pZm9ybU9mZnNldHMpIGNvbnN0OwpAQCAtNDE5LDggKzQxNyw2IEBAIGNsYXNzIFBy
b2dyYW1FeGVjdXRhYmxlVmsKICAgICBnbDo6U2hhZGVyVmVjdG9yPHVpbnQzMl90PiBtRHluYW1p
Y1VuaWZvcm1EZXNjcmlwdG9yT2Zmc2V0czsKICAgICBzdGQ6OnZlY3Rvcjx1aW50MzJfdD4gbUR5
bmFtaWNTaGFkZXJCdWZmZXJEZXNjcmlwdG9yT2Zmc2V0czsKIAotICAgIC8vIFRPRE86IGh0dHA6
Ly9hbmdsZWJ1Zy5jb20vNDUyNDogTmVlZCBhIGRpZmZlcmVudCBoYXNoIGtleSB0aGFuIGEgc3Ry
aW5nLAotICAgIC8vIHNpbmNlIHRoYXQncyBzbG93IHRvIGNhbGN1bGF0ZS4KICAgICBTaGFkZXJJ
bnRlcmZhY2VWYXJpYWJsZUluZm9NYXAgbVZhcmlhYmxlSW5mb01hcDsKIAogICAgIC8vIFdlIHN0
b3JlIGFsbCBwZXJtdXRhdGlvbnMgb2Ygc3VyZmFjZSByb3RhdGlvbiBhbmQgdHJhbnNmb3JtZWQg
U1BJUi1WIHByb2dyYW1zIGhlcmUuIFdlIG1heQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL3Z1bGthbi9Qcm9ncmFtUGlwZWxpbmVWay5j
cHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvdnVsa2Fu
L1Byb2dyYW1QaXBlbGluZVZrLmNwcAppbmRleCA0NDZjMDUxZjE4OWY0MjdkNWQwNzg5MTBlYzA4
MGZiNmFkZjA1ZTI3Li4zNjRkYjM5MWQ5MTQ1NTE2MDg4OWZjZWYyOGQ5MDlkMWZlMmM1ZDZmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIv
dnVsa2FuL1Byb2dyYW1QaXBlbGluZVZrLmNwcAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdM
RS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvdnVsa2FuL1Byb2dyYW1QaXBlbGluZVZrLmNwcApAQCAt
NjQsNyArNjQsNyBAQCBhbmdsZTo6UmVzdWx0IFByb2dyYW1QaXBlbGluZVZrOjpsaW5rKGNvbnN0
IGdsOjpDb250ZXh0ICpnbENvbnRleHQsCiAgICAgICAgICAgICAgICAgICAgICFnbFByb2dyYW0t
PmdldFN0YXRlKCkuZ2V0TGlua2VkVHJhbnNmb3JtRmVlZGJhY2tWYXJ5aW5ncygpLmVtcHR5KCk7
CiAKICAgICAgICAgICAgICAgICBHbHNsYW5nQXNzaWduVHJhbnNmb3JtRmVlZGJhY2tMb2NhdGlv
bnMoCi0gICAgICAgICAgICAgICAgICAgIHNoYWRlclR5cGUsIGdsUHJvZ3JhbS0+Z2V0U3RhdGUo
KSwgaXNUcmFuc2Zvcm1GZWVkYmFja1N0YWdlLAorICAgICAgICAgICAgICAgICAgICBzaGFkZXJU
eXBlLCBnbFByb2dyYW0tPmdldEV4ZWN1dGFibGUoKSwgaXNUcmFuc2Zvcm1GZWVkYmFja1N0YWdl
LAogICAgICAgICAgICAgICAgICAgICAmZ2xzbGFuZ1Byb2dyYW1JbnRlcmZhY2VJbmZvLCAmbUV4
ZWN1dGFibGUubVZhcmlhYmxlSW5mb01hcCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAg
LTc2LDI3ICs3NiwyMyBAQCBhbmdsZTo6UmVzdWx0IFByb2dyYW1QaXBlbGluZVZrOjpsaW5rKGNv
bnN0IGdsOjpDb250ZXh0ICpnbENvbnRleHQsCiAgICAgVW5pZm9ybUJpbmRpbmdJbmRleE1hcCB1
bmlmb3JtQmluZGluZ0luZGV4TWFwOwogICAgIGZvciAoY29uc3QgZ2w6OlNoYWRlclR5cGUgc2hh
ZGVyVHlwZSA6IGdsRXhlY3V0YWJsZS5nZXRMaW5rZWRTaGFkZXJTdGFnZXMoKSkKICAgICB7Ci0g
ICAgICAgIGNvbnN0IGdsOjpQcm9ncmFtICpnbFByb2dyYW0gPSBtU3RhdGUuZ2V0U2hhZGVyUHJv
Z3JhbShzaGFkZXJUeXBlKTsKLSAgICAgICAgaWYgKGdsUHJvZ3JhbSkKLSAgICAgICAgewotICAg
ICAgICAgICAgY29uc3QgYm9vbCBpc1RyYW5zZm9ybUZlZWRiYWNrU3RhZ2UgPQotICAgICAgICAg
ICAgICAgIHNoYWRlclR5cGUgPT0gbGlua2VkVHJhbnNmb3JtRmVlZGJhY2tTdGFnZSAmJgotICAg
ICAgICAgICAgICAgICFnbFByb2dyYW0tPmdldFN0YXRlKCkuZ2V0TGlua2VkVHJhbnNmb3JtRmVl
ZGJhY2tWYXJ5aW5ncygpLmVtcHR5KCk7Ci0KLSAgICAgICAgICAgIEdsc2xhbmdBc3NpZ25Mb2Nh
dGlvbnMob3B0aW9ucywgZ2xQcm9ncmFtLT5nZXRTdGF0ZSgpLCB2YXJ5aW5nUGFja2luZywgc2hh
ZGVyVHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbnRTaGFkZXJU
eXBlLCBpc1RyYW5zZm9ybUZlZWRiYWNrU3RhZ2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICZnbHNsYW5nUHJvZ3JhbUludGVyZmFjZUluZm8sICZ1bmlmb3JtQmluZGluZ0lu
ZGV4TWFwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbUV4ZWN1dGFibGUu
bVZhcmlhYmxlSW5mb01hcCk7Ci0gICAgICAgICAgICBmcm9udFNoYWRlclR5cGUgPSBzaGFkZXJU
eXBlOwotCi0gICAgICAgICAgICBQcm9ncmFtVmsgKnByb2dyYW1WayAgICAgICAgICAgICAgICAg
ICAgID0gdms6OkdldEltcGwoZ2xQcm9ncmFtKTsKLSAgICAgICAgICAgIFByb2dyYW1FeGVjdXRh
YmxlVmsgJnByb2dyYW1FeGVjdXRhYmxlVmsgPSBwcm9ncmFtVmstPmdldEV4ZWN1dGFibGUoKTsK
LSAgICAgICAgICAgIG1FeGVjdXRhYmxlLm1EZWZhdWx0VW5pZm9ybUJsb2Nrc1tzaGFkZXJUeXBl
XSA9Ci0gICAgICAgICAgICAgICAgcHJvZ3JhbUV4ZWN1dGFibGVWay5nZXRTaGFyZWREZWZhdWx0
VW5pZm9ybUJsb2NrKHNoYWRlclR5cGUpOwotCi0gICAgICAgICAgICBtRXhlY3V0YWJsZS5tT3Jp
Z2luYWxTaGFkZXJJbmZvLmluaXRTaGFkZXJGcm9tUHJvZ3JhbSgKLSAgICAgICAgICAgICAgICBz
aGFkZXJUeXBlLCBwcm9ncmFtRXhlY3V0YWJsZVZrLm1PcmlnaW5hbFNoYWRlckluZm8pOwotICAg
ICAgICB9CisgICAgICAgIGNvbnN0IGJvb2wgaXNUcmFuc2Zvcm1GZWVkYmFja1N0YWdlID0KKyAg
ICAgICAgICAgIHNoYWRlclR5cGUgPT0gbGlua2VkVHJhbnNmb3JtRmVlZGJhY2tTdGFnZSAmJgor
ICAgICAgICAgICAgIWdsRXhlY3V0YWJsZS5nZXRMaW5rZWRUcmFuc2Zvcm1GZWVkYmFja1Zhcnlp
bmdzKCkuZW1wdHkoKTsKKworICAgICAgICBHbHNsYW5nQXNzaWduTG9jYXRpb25zKG9wdGlvbnMs
IGdsRXhlY3V0YWJsZSwgdmFyeWluZ1BhY2tpbmcsIHNoYWRlclR5cGUsIGZyb250U2hhZGVyVHlw
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1RyYW5zZm9ybUZlZWRiYWNrU3Rh
Z2UsICZnbHNsYW5nUHJvZ3JhbUludGVyZmFjZUluZm8sCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJnVuaWZvcm1CaW5kaW5nSW5kZXhNYXAsICZtRXhlY3V0YWJsZS5tVmFyaWFibGVJ
bmZvTWFwKTsKKyAgICAgICAgZnJvbnRTaGFkZXJUeXBlID0gc2hhZGVyVHlwZTsKKworICAgICAg
ICBjb25zdCBnbDo6UHJvZ3JhbSAqcHJvZ3JhbSAgICAgICAgICAgICAgID0gbVN0YXRlLmdldFNo
YWRlclByb2dyYW0oc2hhZGVyVHlwZSk7CisgICAgICAgIFByb2dyYW1WayAqcHJvZ3JhbVZrICAg
ICAgICAgICAgICAgICAgICAgPSB2azo6R2V0SW1wbChwcm9ncmFtKTsKKyAgICAgICAgUHJvZ3Jh
bUV4ZWN1dGFibGVWayAmcHJvZ3JhbUV4ZWN1dGFibGVWayA9IHByb2dyYW1Way0+Z2V0RXhlY3V0
YWJsZSgpOworICAgICAgICBtRXhlY3V0YWJsZS5tRGVmYXVsdFVuaWZvcm1CbG9ja3Nbc2hhZGVy
VHlwZV0gPQorICAgICAgICAgICAgcHJvZ3JhbUV4ZWN1dGFibGVWay5nZXRTaGFyZWREZWZhdWx0
VW5pZm9ybUJsb2NrKHNoYWRlclR5cGUpOworCisgICAgICAgIG1FeGVjdXRhYmxlLm1PcmlnaW5h
bFNoYWRlckluZm8uaW5pdFNoYWRlckZyb21Qcm9ncmFtKAorICAgICAgICAgICAgc2hhZGVyVHlw
ZSwgcHJvZ3JhbUV4ZWN1dGFibGVWay5tT3JpZ2luYWxTaGFkZXJJbmZvKTsKICAgICB9CiAKICAg
ICBtRXhlY3V0YWJsZS5zZXRBbGxEZWZhdWx0VW5pZm9ybXNEaXJ0eShnbEV4ZWN1dGFibGUpOwpA
QCAtMTA3LDcgKzEwMyw3IEBAIGFuZ2xlOjpSZXN1bHQgUHJvZ3JhbVBpcGVsaW5lVms6Omxpbmso
Y29uc3QgZ2w6OkNvbnRleHQgKmdsQ29udGV4dCwKICAgICB9CiAKICAgICByZXR1cm4gbUV4ZWN1
dGFibGUuY3JlYXRlUGlwZWxpbmVMYXlvdXQoY29udGV4dFZrLCBtU3RhdGUuZ2V0RXhlY3V0YWJs
ZSgpLCBudWxscHRyKTsKLX0KK30gIC8vIG5hbWVzcGFjZSByeAogCiB2b2lkIFByb2dyYW1QaXBl
bGluZVZrOjpvblByb2dyYW1Vbmlmb3JtVXBkYXRlKGdsOjpTaGFkZXJUeXBlIHNoYWRlclR5cGUp
CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVu
ZGVyZXIvdnVsa2FuL1Byb2dyYW1QaXBlbGluZVZrLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdM
RS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvdnVsa2FuL1Byb2dyYW1QaXBlbGluZVZrLmgKaW5kZXgg
Nzk3NWIzNWQ3Y2M1MGI1YjBkYzE0MmFhZjc3ZDEzMDYwYTM3Mzg5OC4uNmM4NGI5ZGYzOWRjMjUx
MDM2OTUyMzc1Yzc2NWU4ZDFjNzA1MTcyNCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkv
QU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL3Z1bGthbi9Qcm9ncmFtUGlwZWxpbmVWay5oCisr
KyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci92dWxrYW4v
UHJvZ3JhbVBpcGVsaW5lVmsuaApAQCAtMzEsMTIgKzMxLDYgQEAgY2xhc3MgUHJvZ3JhbVBpcGVs
aW5lVmsgOiBwdWJsaWMgUHJvZ3JhbVBpcGVsaW5lSW1wbAogICAgIGNvbnN0IFByb2dyYW1FeGVj
dXRhYmxlVmsgJmdldEV4ZWN1dGFibGUoKSBjb25zdCB7IHJldHVybiBtRXhlY3V0YWJsZTsgfQog
ICAgIFByb2dyYW1FeGVjdXRhYmxlVmsgJmdldEV4ZWN1dGFibGUoKSB7IHJldHVybiBtRXhlY3V0
YWJsZTsgfQogCi0gICAgUHJvZ3JhbVZrICpnZXRTaGFkZXJQcm9ncmFtKGdsOjpTaGFkZXJUeXBl
IHNoYWRlclR5cGUpIGNvbnN0Ci0gICAgewotICAgICAgICBjb25zdCBnbDo6UHJvZ3JhbSAqcHJv
Z3JhbSA9IG1TdGF0ZS5nZXRTaGFkZXJQcm9ncmFtKHNoYWRlclR5cGUpOwotICAgICAgICByZXR1
cm4gU2FmZUdldEltcGxBczxQcm9ncmFtVms+KHByb2dyYW0pOwotICAgIH0KLQogICAgIGFuZ2xl
OjpSZXN1bHQgbGluayhjb25zdCBnbDo6Q29udGV4dCAqZ2xDb250ZXh0LAogICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBnbDo6UHJvZ3JhbU1lcmdlZFZhcnlpbmdzICZtZXJnZWRWYXJ5aW5n
cywKICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2w6OlByb2dyYW1WYXJ5aW5nUGFja2lu
ZyAmdmFyeWluZ1BhY2tpbmcpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL3Z1bGthbi9SZW5kZXJidWZmZXJWay5jcHAg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvdnVsa2FuL1Jl
bmRlcmJ1ZmZlclZrLmNwcAppbmRleCBkZjJmNzNkZTdiZjUxZGEwYTQ3ZWI5NmIxZDBmMjk2YzI4
ODBmZmM4Li5hZDMxZDEyYzJhYWFhMGZmYTE4YmViYmUwODE1ZDQzYWMyY2ZhOTljIDEwMDY0NAot
LS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvdnVsa2Fu
L1JlbmRlcmJ1ZmZlclZrLmNwcAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGli
QU5HTEUvcmVuZGVyZXIvdnVsa2FuL1JlbmRlcmJ1ZmZlclZrLmNwcApAQCAtODcsMTIgKzg3LDI1
IEBAIGFuZ2xlOjpSZXN1bHQgUmVuZGVyYnVmZmVyVms6OnNldFN0b3JhZ2VJbXBsKGNvbnN0IGds
OjpDb250ZXh0ICpjb250ZXh0LAogICAgIGNvbnN0IGJvb2wgaGFzUmVuZGVyVG9UZXh0dXJlRVhU
ID0KICAgICAgICAgcmVuZGVyZXItPmdldEZlYXR1cmVzKCkuc3VwcG9ydHNNdWx0aXNhbXBsZWRS
ZW5kZXJUb1NpbmdsZVNhbXBsZWQuZW5hYmxlZDsKIAotICAgIGNvbnN0IFZrSW1hZ2VVc2FnZUZs
YWdzIHVzYWdlID0KLSAgICAgICAgVktfSU1BR0VfVVNBR0VfVFJBTlNGRVJfRFNUX0JJVCB8IFZL
X0lNQUdFX1VTQUdFX1RSQU5TRkVSX1NSQ19CSVQgfAotICAgICAgICBWS19JTUFHRV9VU0FHRV9T
QU1QTEVEX0JJVCB8Ci0gICAgICAgIChpc0RlcHRoU3RlbmNpbEZvcm1hdCA/IFZLX0lNQUdFX1VT
QUdFX0RFUFRIX1NURU5DSUxfQVRUQUNITUVOVF9CSVQKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDogVktfSU1BR0VfVVNBR0VfQ09MT1JfQVRUQUNITUVOVF9CSVQpIHwKLSAgICAgICAg
KGlzUmVuZGVyVG9UZXh0dXJlICYmICFoYXNSZW5kZXJUb1RleHR1cmVFWFQgPyBWS19JTUFHRV9V
U0FHRV9JTlBVVF9BVFRBQ0hNRU5UX0JJVCA6IDApOworICAgIC8vIFRyYW5zZmVyIGFuZCBzYW1w
bGVkIHVzYWdlIGFyZSB1c2VkIGZvciB2YXJpb3VzIHV0aWxpdGllcyBzdWNoIGFzIHJlYWRiYWNr
IG9yIGJsaXQuCisgICAgVmtJbWFnZVVzYWdlRmxhZ3MgdXNhZ2UgPSBWS19JTUFHRV9VU0FHRV9U
UkFOU0ZFUl9EU1RfQklUIHwgVktfSU1BR0VfVVNBR0VfVFJBTlNGRVJfU1JDX0JJVCB8CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBWS19JTUFHRV9VU0FHRV9TQU1QTEVEX0JJVDsKKwor
ICAgIC8vIFJlbmRlcmJ1ZmZlcidzIG5vcm1hbCB1c2FnZSBpcyBhcyBmcmFtZWJ1ZmZlciBhdHRh
Y2htZW50LgorICAgIHVzYWdlIHw9IGlzRGVwdGhTdGVuY2lsRm9ybWF0ID8gVktfSU1BR0VfVVNB
R0VfREVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5UX0JJVAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDogVktfSU1BR0VfVVNBR0VfQ09MT1JfQVRUQUNITUVOVF9CSVQ7CisKKyAgICAv
LyBXaGVuIHVzZWQgdG8gZW11bGF0ZSBtdWx0aXNhbXBsZWQgcmVuZGVyIHRvIHRleHR1cmUsIGl0
IGNhbiBiZSByZWFkIGFzIGlucHV0IGF0dGFjaG1lbnQuCisgICAgaWYgKGlzUmVuZGVyVG9UZXh0
dXJlICYmICFoYXNSZW5kZXJUb1RleHR1cmVFWFQpCisgICAgeworICAgICAgICB1c2FnZSB8PSBW
S19JTUFHRV9VU0FHRV9JTlBVVF9BVFRBQ0hNRU5UX0JJVDsKKyAgICB9CisKKyAgICAvLyBGb3Ig
ZnJhbWVidWZmZXIgZmV0Y2ggYW5kIGFkdmFuY2VkIGJsZW5kIGVtdWxhdGlvbiwgY29sb3Igd2ls
bCBiZSByZWFkIGFzIGlucHV0IGF0dGFjaG1lbnQuCisgICAgaWYgKCFpc0RlcHRoU3RlbmNpbEZv
cm1hdCkKKyAgICB7CisgICAgICAgIHVzYWdlIHw9IFZLX0lNQUdFX1VTQUdFX0lOUFVUX0FUVEFD
SE1FTlRfQklUOworICAgIH0KIAogICAgIGNvbnN0IHVpbnQzMl90IGltYWdlU2FtcGxlcyA9IGlz
UmVuZGVyVG9UZXh0dXJlID8gMSA6IHNhbXBsZXM7CiAKQEAgLTE3NSw4ICsxODgsOSBAQCBhbmds
ZTo6UmVzdWx0IFJlbmRlcmJ1ZmZlclZrOjpzZXRTdG9yYWdlRUdMSW1hZ2VUYXJnZXQoY29uc3Qg
Z2w6OkNvbnRleHQgKmNvbnRleAogICAgIGlmIChtSW1hZ2UtPmlzUXVldWVDaGFuZ2VOZWNjZXNh
cnkocmVuZGVyZXJRdWV1ZUZhbWlseUluZGV4KSkKICAgICB7CiAgICAgICAgIHZrOjpPdXRzaWRl
UmVuZGVyUGFzc0NvbW1hbmRCdWZmZXIgKmNvbW1hbmRCdWZmZXI7Ci0gICAgICAgIEFOR0xFX1RS
WShjb250ZXh0VmstPmdldE91dHNpZGVSZW5kZXJQYXNzQ29tbWFuZEJ1ZmZlcih7fSwgJmNvbW1h
bmRCdWZmZXIpKTsKLSAgICAgICAgbUltYWdlLT5yZXRhaW4oJmNvbnRleHRWay0+Z2V0UmVzb3Vy
Y2VVc2VMaXN0KCkpOworICAgICAgICB2azo6Q29tbWFuZEJ1ZmZlckFjY2VzcyBhY2Nlc3M7Cisg
ICAgICAgIGFjY2Vzcy5vbkV4dGVybmFsQWNxdWlyZVJlbGVhc2UobUltYWdlKTsKKyAgICAgICAg
QU5HTEVfVFJZKGNvbnRleHRWay0+Z2V0T3V0c2lkZVJlbmRlclBhc3NDb21tYW5kQnVmZmVyKGFj
Y2VzcywgJmNvbW1hbmRCdWZmZXIpKTsKICAgICAgICAgbUltYWdlLT5jaGFuZ2VMYXlvdXRBbmRR
dWV1ZShjb250ZXh0VmssIGFzcGVjdCwgdms6OkltYWdlTGF5b3V0OjpDb2xvckF0dGFjaG1lbnQs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVuZGVyZXJRdWV1ZUZhbWls
eUluZGV4LCBjb21tYW5kQnVmZmVyKTsKICAgICB9CkBAIC0yNTAsNiArMjY0LDcgQEAgYW5nbGU6
OlJlc3VsdCBSZW5kZXJidWZmZXJWazo6Z2V0QXR0YWNobWVudFJlbmRlclRhcmdldChjb25zdCBn
bDo6Q29udGV4dCAqY29udGUKIH0KIAogYW5nbGU6OlJlc3VsdCBSZW5kZXJidWZmZXJWazo6aW5p
dGlhbGl6ZUNvbnRlbnRzKGNvbnN0IGdsOjpDb250ZXh0ICpjb250ZXh0LAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMZW51bSBiaW5kaW5nLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdsOjpJ
bWFnZUluZGV4ICZpbWFnZUluZGV4KQogewogICAgIC8vIE5vdGU6IHN0YWdlU3VicmVzb3VyY2VS
b2J1c3RDbGVhciBvbmx5IHVzZXMgdGhlIGludGVuZGVkIGZvcm1hdCB0byBjb3VudCBjaGFubmVs
cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5k
ZXJlci92dWxrYW4vUmVuZGVyYnVmZmVyVmsuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3Ny
Yy9saWJBTkdMRS9yZW5kZXJlci92dWxrYW4vUmVuZGVyYnVmZmVyVmsuaAppbmRleCBiZjQ5OWMw
NjFkNjkxODlkOWFkZDFiYzI0YzIwOTQ2OWI1NDZkODUzLi43ZjZhM2FjYmNjMmFhYWNhNjExZTk3
ZmFkZmJiOGVlNGM0YWVhNWMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9z
cmMvbGliQU5HTEUvcmVuZGVyZXIvdnVsa2FuL1JlbmRlcmJ1ZmZlclZrLmgKKysrIGIvU291cmNl
L1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL3Z1bGthbi9SZW5kZXJidWZm
ZXJWay5oCkBAIC03Miw2ICs3Miw3IEBAIGNsYXNzIFJlbmRlcmJ1ZmZlclZrIDogcHVibGljIFJl
bmRlcmJ1ZmZlckltcGwsIHB1YmxpYyBhbmdsZTo6T2JzZXJ2ZXJJbnRlcmZhY2UKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRnJhbWVidWZmZXJBdHRhY2htZW50
UmVuZGVyVGFyZ2V0ICoqcnRPdXQpIG92ZXJyaWRlOwogCiAgICAgYW5nbGU6OlJlc3VsdCBpbml0
aWFsaXplQ29udGVudHMoY29uc3QgZ2w6OkNvbnRleHQgKmNvbnRleHQsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgR0xlbnVtIGJpbmRpbmcsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2w6OkltYWdlSW5kZXggJmltYWdlSW5kZXgpIG92
ZXJyaWRlOwogCiAgICAgdms6OkltYWdlSGVscGVyICpnZXRJbWFnZSgpIGNvbnN0IHsgcmV0dXJu
IG1JbWFnZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFO
R0xFL3JlbmRlcmVyL3Z1bGthbi9SZW5kZXJlclZrLmNwcCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FO
R0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci92dWxrYW4vUmVuZGVyZXJWay5jcHAKaW5kZXggZGVk
NDg3NDFlZWQxZDNiNjk1OWZhM2Q2MDQ0M2Q5MTgxYzQ0OTI2Ni4uNDUyZjUwODVmMTQyZjgwNmEy
YzllNjc4OWM5OGZkOWY2NTY1MGIwNiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5H
TEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL3Z1bGthbi9SZW5kZXJlclZrLmNwcAorKysgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvdnVsa2FuL1JlbmRlcmVy
VmsuY3BwCkBAIC0xOTIsNiArMTkyLDggQEAgY29uc3RleHByIGNvbnN0IGNoYXIgKmtTa2lwcGVk
TWVzc2FnZXNbXSA9IHsKICAgICAvLyBodHRwOi8vYW5nbGVidWcuY29tLzcxMDUKICAgICAiVlVJ
RC12a0NtZERyYXctTm9uZS0wNjUzOCIsCiAgICAgIlZVSUQtdmtDbWREcmF3SW5kZXhlZC1Ob25l
LTA2NTM4IiwKKyAgICAvLyBodHRwOi8vYW5nbGVidWcuY29tLzcyMzEKKyAgICAiVU5BU1NJR05F
RC1CZXN0UHJhY3RpY2VzLVNlbWFwaG9yZUNvdW50IiwKIH07CiAKIHN0cnVjdCBTa2lwcGVkU3lu
Y3ZhbE1lc3NhZ2UKQEAgLTM0NCwxNCArMzQ2LDcgQEAgY29uc3RleHByIFNraXBwZWRTeW5jdmFs
TWVzc2FnZSBrU2tpcHBlZFN5bmN2YWxNZXNzYWdlc1tdID0gewogICAgICAgICAidHlwZTogVktf
REVTQ1JJUFRPUl9UWVBFX0NPTUJJTkVEX0lNQUdFX1NBTVBMRVIsIGltYWdlTGF5b3V0OiBWS19J
TUFHRV9MQVlPVVRfR0VORVJBTCwgIgogICAgICAgICAiYmluZGluZyAjMCwgaW5kZXggMC4gQWNj
ZXNzIGluZm8gKHVzYWdlOiBTWU5DX0ZSQUdNRU5UX1NIQURFUl9TSEFERVJfU1RPUkFHRV9SRUFE
LCAiCiAgICAgICAgICJwcmlvcl91c2FnZTogU1lOQ19DT0xPUl9BVFRBQ0hNRU5UX09VVFBVVF9D
T0xPUl9BVFRBQ0hNRU5UX1dSSVRFLCB3cml0ZV9iYXJyaWVyczogMCwgIgotICAgICAgICAiY29t
bWFuZDogdmtDbWREcmF3LCBzZXFfbm86IDYiLAotICAgIH0sCi0gICAgewotICAgICAgICAiU1lO
Qy1IQVpBUkQtUkVBRF9BRlRFUl9XUklURSIsCi0gICAgICAgICJ0eXBlOiBWS19ERVNDUklQVE9S
X1RZUEVfQ09NQklORURfSU1BR0VfU0FNUExFUiwgaW1hZ2VMYXlvdXQ6IFZLX0lNQUdFX0xBWU9V
VF9HRU5FUkFMLCAiCi0gICAgICAgICJiaW5kaW5nICMwLCBpbmRleCAwLiBBY2Nlc3MgaW5mbyAo
dXNhZ2U6IFNZTkNfRlJBR01FTlRfU0hBREVSX1NIQURFUl9TVE9SQUdFX1JFQUQsICIKLSAgICAg
ICAgInByaW9yX3VzYWdlOiBTWU5DX0NPTE9SX0FUVEFDSE1FTlRfT1VUUFVUX0NPTE9SX0FUVEFD
SE1FTlRfV1JJVEUsIHdyaXRlX2JhcnJpZXJzOiAwLCAiCi0gICAgICAgICJjb21tYW5kOiB2a0Nt
ZERyYXcsIHNlcV9ubzogNyIsCisgICAgICAgICJjb21tYW5kOiB2a0NtZERyYXciLAogICAgIH0s
CiAgICAgLy8gRnJvbTogRnJhbWVidWZmZXJUZXN0X0VTMy5GcmFtZWJ1ZmZlckJpbmRUb05ld0xl
dmVsQWZ0ZXJNYXhJbmNyZWFzZVNob3VsZG50Q3Jhc2gvRVMzX1Z1bGthbgogICAgIHsKQEAgLTQ4
MSw2ICs0NzYsMTIgQEAgY29uc3RleHByIFNraXBwZWRTeW5jdmFsTWVzc2FnZSBrU2tpcHBlZFN5
bmN2YWxNZXNzYWdlc1tdID0gewogICAgICAgICAiQWNjZXNzIGluZm8gKHVzYWdlOiBTWU5DX0NP
UFlfVFJBTlNGRVJfV1JJVEUsIHByaW9yX3VzYWdlOiAiCiAgICAgICAgICJTWU5DX1ZFUlRFWF9B
VFRSSUJVVEVfSU5QVVRfVkVSVEVYX0FUVFJJQlVURV9SRUFEIiwKICAgICB9LAorICAgIHsKKyAg
ICAgICAgIlNZTkMtSEFaQVJELVdSSVRFX0FGVEVSX1JFQUQiLAorICAgICAgICAidmtDbWRDb3B5
QnVmZmVyOiBIYXphcmQgV1JJVEVfQUZURVJfUkVBRCBmb3IgZHN0QnVmZmVyIFZrQnVmZmVyIiwK
KyAgICAgICAgIkFjY2VzcyBpbmZvICh1c2FnZTogU1lOQ19DT1BZX1RSQU5TRkVSX1dSSVRFLCBw
cmlvcl91c2FnZTogIgorICAgICAgICAiU1lOQ19WRVJURVhfQVRUUklCVVRFX0lOUFVUX1ZFUlRF
WF9BVFRSSUJVVEVfUkVBRCIsCisgICAgfSwKICAgICB7CiAgICAgICAgICJTWU5DLUhBWkFSRC1X
UklURV9BRlRFUl9SRUFEIiwKICAgICAgICAgInZrQ21kRGlzcGF0Y2g6IEhhemFyZCBXUklURV9B
RlRFUl9SRUFEIGZvciBWa0J1ZmZlciIsCkBAIC01NDIsNiArNTQzLDE4IEBAIGNvbnN0ZXhwciBT
a2lwcGVkU3luY3ZhbE1lc3NhZ2Uga1NraXBwZWRTeW5jdmFsTWVzc2FnZXNbXSA9IHsKICAgICAg
ICAgInByaW9yX3VzYWdlOiBTWU5DX0NPTE9SX0FUVEFDSE1FTlRfT1VUUFVUX0NPTE9SX0FUVEFD
SE1FTlRfV1JJVEUsIHdyaXRlX2JhcnJpZXJzOiAwLCAiCiAgICAgICAgICJjb21tYW5kOiB2a0Nt
ZEJlZ2luUmVuZGVyUGFzcyIsCiAgICAgfSwKKyAgICAvLyBGcm9tOiBUcmFjZVBlcmZUZXN0LlJ1
bi92dWxrYW5fY2FyX2NoYXNlIGh0dHA6Ly9hbmdsZWJ1Zy5jb20vNzEyNQorICAgIHsKKyAgICAg
ICAgIlNZTkMtSEFaQVJELVdSSVRFX0FGVEVSX1JFQUQiLAorICAgICAgICAidHlwZTogVktfREVT
Q1JJUFRPUl9UWVBFX1NUT1JBR0VfQlVGRkVSIiwKKyAgICB9LAorICAgIC8vIEZyb206IFRyYWNl
UGVyZlRlc3QuUnVuL3Z1bGthbl9zcGVjaWFsX2ZvcmNlc19ncm91cF8yIGh0dHA6Ly9hbmdsZWJ1
Zy5jb20vNTU5MgorICAgIHsKKyAgICAgICAgIlNZTkMtSEFaQVJELVdSSVRFX0FGVEVSX1JFQUQi
LAorICAgICAgICAiQWNjZXNzIGluZm8gKHVzYWdlOiBTWU5DX0lNQUdFX0xBWU9VVF9UUkFOU0lU
SU9OLCBwcmlvcl91c2FnZTogIgorICAgICAgICAiU1lOQ19GUkFHTUVOVF9TSEFERVJfU0hBREVS
X1NUT1JBR0VfUkVBRCwgcmVhZF9iYXJyaWVyczogIgorICAgICAgICAiVktfUElQRUxJTkVfU1RB
R0VfMl9CT1RUT01fT0ZfUElQRV9CSVQsIGNvbW1hbmQ6IHZrQ21kRHJhd0luZGV4ZWQiLAorICAg
IH0sCiB9OwogCiBlbnVtIGNsYXNzIERlYnVnTWVzc2FnZVJlcG9ydApAQCAtNTcyLDcgKzU4NSw3
IEBAIERlYnVnTWVzc2FnZVJlcG9ydCBTaG91bGRSZXBvcnREZWJ1Z01lc3NhZ2UoUmVuZGVyZXJW
ayAqcmVuZGVyZXIsCiAgICAgLy8gVGhlbiBjaGVjayB3aXRoIHN5bmN2YWwgbWVzc2FnZXM6CiAg
ICAgY29uc3QgYm9vbCBpc1N0b3JlT3BOb25lU3VwcG9ydGVkID0KICAgICAgICAgcmVuZGVyZXIt
PmdldEZlYXR1cmVzKCkuc3VwcG9ydHNSZW5kZXJQYXNzTG9hZFN0b3JlT3BOb25lLmVuYWJsZWQg
fHwKLSAgICAgICAgcmVuZGVyZXItPmdldEZlYXR1cmVzKCkuc3VwcG9ydHNSZW5kZXJQYXNzU3Rv
cmVPcE5vbmVRQ09NLmVuYWJsZWQ7CisgICAgICAgIHJlbmRlcmVyLT5nZXRGZWF0dXJlcygpLnN1
cHBvcnRzUmVuZGVyUGFzc1N0b3JlT3BOb25lLmVuYWJsZWQ7CiAgICAgY29uc3QgYm9vbCBpc0Zy
YW1lYnVmZmVyRmV0Y2hVc2VkID0gcmVuZGVyZXItPmlzRnJhbWVidWZmZXJGZXRjaFVzZWQoKTsK
ICAgICBmb3IgKGNvbnN0IFNraXBwZWRTeW5jdmFsTWVzc2FnZSAmbXNnIDoga1NraXBwZWRTeW5j
dmFsTWVzc2FnZXMpCiAgICAgewpAQCAtMTA5Niw2ICsxMTA5LDMyIEBAIGFuZ2xlOjpSZXN1bHQg
R2V0QW5kRGVjb21wcmVzc1BpcGVsaW5lQ2FjaGVWayhWa1BoeXNpY2FsRGV2aWNlUHJvcGVydGll
cyBwaHlzaWNhCiAvLyBFbnZpcm9ubWVudCB2YXJpYWJsZSAoYW5kIGFzc29jaWF0ZWQgQW5kcm9p
ZCBwcm9wZXJ0eSkgdG8gZW5hYmxlIFZ1bGthbiBkZWJ1Zy11dGlscyBtYXJrZXJzCiBjb25zdGV4
cHIgY2hhciBrRW5hYmxlRGVidWdNYXJrZXJzVmFyTmFtZVtdICAgICAgPSAiQU5HTEVfRU5BQkxF
X0RFQlVHX01BUktFUlMiOwogY29uc3RleHByIGNoYXIga0VuYWJsZURlYnVnTWFya2Vyc1Byb3Bl
cnR5TmFtZVtdID0gImRlYnVnLmFuZ2xlLm1hcmtlcnMiOworCitBTkdMRV9JTkxJTkUgZ2w6OlNo
YWRpbmdSYXRlIEdldFNoYWRpbmdSYXRlRnJvbVZrRXh0ZW50KGNvbnN0IFZrRXh0ZW50MkQgJmV4
dGVudCkKK3sKKyAgICBpZiAoZXh0ZW50LndpZHRoID09IDEgJiYgZXh0ZW50LmhlaWdodCA9PSAy
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGdsOjpTaGFkaW5nUmF0ZTo6XzF4MjsKKyAgICB9Cisg
ICAgZWxzZSBpZiAoZXh0ZW50LndpZHRoID09IDIgJiYgZXh0ZW50LmhlaWdodCA9PSAxKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIGdsOjpTaGFkaW5nUmF0ZTo6XzJ4MTsKKyAgICB9CisgICAgZWxz
ZSBpZiAoZXh0ZW50LndpZHRoID09IDIgJiYgZXh0ZW50LmhlaWdodCA9PSAyKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIGdsOjpTaGFkaW5nUmF0ZTo6XzJ4MjsKKyAgICB9CisgICAgZWxzZSBpZiAo
ZXh0ZW50LndpZHRoID09IDQgJiYgZXh0ZW50LmhlaWdodCA9PSAyKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIGdsOjpTaGFkaW5nUmF0ZTo6XzR4MjsKKyAgICB9CisgICAgZWxzZSBpZiAoZXh0ZW50
LndpZHRoID09IDQgJiYgZXh0ZW50LmhlaWdodCA9PSA0KQorICAgIHsKKyAgICAgICAgcmV0dXJu
IGdsOjpTaGFkaW5nUmF0ZTo6XzR4NDsKKyAgICB9CisKKyAgICByZXR1cm4gZ2w6OlNoYWRpbmdS
YXRlOjpfMXgxOworfQogfSAgLy8gbmFtZXNwYWNlCiAKIC8vIFJlbmRlcmVyVmsgaW1wbGVtZW50
YXRpb24uCkBAIC0xMTMwLDggKzExNjksNyBAQCBSZW5kZXJlclZrOjpSZW5kZXJlclZrKCkKICAg
ICAgIG1QaXBlbGluZUNhY2hlSW5pdGlhbGl6ZWQoZmFsc2UpLAogICAgICAgbVZhbGlkYXRpb25N
ZXNzYWdlQ291bnQoMCksCiAgICAgICBtQ29tbWFuZFByb2Nlc3Nvcih0aGlzKSwKLSAgICAgIG1T
dXBwb3J0ZWRWdWxrYW5QaXBlbGluZVN0YWdlTWFzaygwKSwKLSAgICAgIG1MYXN0UHJ1bmVUaW1l
KGFuZ2xlOjpHZXRDdXJyZW50U3lzdGVtVGltZSgpKQorICAgICAgbVN1cHBvcnRlZFZ1bGthblBp
cGVsaW5lU3RhZ2VNYXNrKDApCiB7CiAgICAgVmtGb3JtYXRQcm9wZXJ0aWVzIGludmFsaWQgPSB7
MCwgMCwga0ludmFsaWRGb3JtYXRGZWF0dXJlRmxhZ3N9OwogICAgIG1Gb3JtYXRQcm9wZXJ0aWVz
LmZpbGwoaW52YWxpZCk7CkBAIC0xMTg2LDE4ICsxMjI0LDEyIEBAIHZvaWQgUmVuZGVyZXJWazo6
b25EZXN0cm95KHZrOjpDb250ZXh0ICpjb250ZXh0KQogICAgICAgICBoYW5kbGVEZXZpY2VMb3N0
KCk7CiAgICAgfQogCi0gICAgZm9yIChzdGQ6OnVuaXF1ZV9wdHI8dms6OkJ1ZmZlclBvb2w+ICZw
b29sIDogbURlZmF1bHRCdWZmZXJQb29scykKKyAgICBmb3IgKHN0ZDo6dW5pcXVlX3B0cjx2azo6
QnVmZmVyQmxvY2s+ICZibG9jayA6IG1PcnBoYW5lZEJ1ZmZlckJsb2NrcykKICAgICB7Ci0gICAg
ICAgIGlmIChwb29sKQotICAgICAgICB7Ci0gICAgICAgICAgICBwb29sLT5kZXN0cm95KHRoaXMp
OwotICAgICAgICB9Ci0gICAgfQotCi0gICAgaWYgKG1TbWFsbEJ1ZmZlclBvb2wpCi0gICAgewot
ICAgICAgICBtU21hbGxCdWZmZXJQb29sLT5kZXN0cm95KHRoaXMpOworICAgICAgICBBU1NFUlQo
YmxvY2stPmlzRW1wdHkoKSk7CisgICAgICAgIGJsb2NrLT5kZXN0cm95KHRoaXMpOwogICAgIH0K
KyAgICBtT3JwaGFuZWRCdWZmZXJCbG9ja3MuY2xlYXIoKTsKIAogICAgIHsKICAgICAgICAgdms6
OlNjb3BlZENvbW1hbmRRdWV1ZUxvY2sgbG9jayh0aGlzLCBtQ29tbWFuZFF1ZXVlTXV0ZXgpOwpA
QCAtMTI4NywyNCArMTMxOSwyNyBAQCBhbmdsZTo6UmVzdWx0IFJlbmRlcmVyVms6OmluaXRpYWxp
emUoRGlzcGxheVZrICpkaXNwbGF5VmssCiB7CiAgICAgYm9vbCBjYW5Mb2FkRGVidWdVdGlscyA9
IHRydWU7CiAjaWYgZGVmaW5lZChBTkdMRV9TSEFSRURfTElCVlVMS0FOKQotICAgIG1MaWJWdWxr
YW5MaWJyYXJ5ID0gYW5nbGU6OnZrOjpPcGVuTGliVnVsa2FuKCk7Ci0gICAgQU5HTEVfVktfQ0hF
Q0soZGlzcGxheVZrLCBtTGliVnVsa2FuTGlicmFyeSwgVktfRVJST1JfSU5JVElBTElaQVRJT05f
RkFJTEVEKTsKKyAgICB7CisgICAgICAgIEFOR0xFX1NDT1BFRF9ESVNBQkxFX01TQU4oKTsKKyAg
ICAgICAgbUxpYlZ1bGthbkxpYnJhcnkgPSBhbmdsZTo6dms6Ok9wZW5MaWJWdWxrYW4oKTsKKyAg
ICAgICAgQU5HTEVfVktfQ0hFQ0soZGlzcGxheVZrLCBtTGliVnVsa2FuTGlicmFyeSwgVktfRVJS
T1JfSU5JVElBTElaQVRJT05fRkFJTEVEKTsKIAotICAgIFBGTl92a0dldEluc3RhbmNlUHJvY0Fk
ZHIgdnVsa2FuTG9hZGVyR2V0SW5zdGFuY2VQcm9jQWRkciA9Ci0gICAgICAgIHJlaW50ZXJwcmV0
X2Nhc3Q8UEZOX3ZrR2V0SW5zdGFuY2VQcm9jQWRkcj4oCi0gICAgICAgICAgICBhbmdsZTo6R2V0
TGlicmFyeVN5bWJvbChtTGliVnVsa2FuTGlicmFyeSwgInZrR2V0SW5zdGFuY2VQcm9jQWRkciIp
KTsKKyAgICAgICAgUEZOX3ZrR2V0SW5zdGFuY2VQcm9jQWRkciB2dWxrYW5Mb2FkZXJHZXRJbnN0
YW5jZVByb2NBZGRyID0KKyAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8UEZOX3ZrR2V0SW5z
dGFuY2VQcm9jQWRkcj4oCisgICAgICAgICAgICAgICAgYW5nbGU6OkdldExpYnJhcnlTeW1ib2wo
bUxpYlZ1bGthbkxpYnJhcnksICJ2a0dldEluc3RhbmNlUHJvY0FkZHIiKSk7CiAKLSAgICAvLyBT
ZXQgYWxsIHZrKiBmdW5jdGlvbiBwdHJzCi0gICAgdm9sa0luaXRpYWxpemVDdXN0b20odnVsa2Fu
TG9hZGVyR2V0SW5zdGFuY2VQcm9jQWRkcik7CisgICAgICAgIC8vIFNldCBhbGwgdmsqIGZ1bmN0
aW9uIHB0cnMKKyAgICAgICAgdm9sa0luaXRpYWxpemVDdXN0b20odnVsa2FuTG9hZGVyR2V0SW5z
dGFuY2VQcm9jQWRkcik7CiAKLSAgICB1aW50MzJfdCB2ZXIgPSB2b2xrR2V0SW5zdGFuY2VWZXJz
aW9uKCk7Ci0gICAgaWYgKCFJc0FuZHJvaWQoKSAmJiBWS19BUElfVkVSU0lPTl9NQUpPUih2ZXIp
ID09IDEgJiYKLSAgICAgICAgKFZLX0FQSV9WRVJTSU9OX01JTk9SKHZlcikgPCAxIHx8Ci0gICAg
ICAgICAoVktfQVBJX1ZFUlNJT05fTUlOT1IodmVyKSA9PSAxICYmIFZLX0FQSV9WRVJTSU9OX1BB
VENIKHZlcikgPCA5MSkpKQotICAgIHsKLSAgICAgICAgLy8gaHR0cDovL2NyYnVnLmNvbS8xMjA1
OTk5IC0gbm9uLUFuZHJvaWQgVnVsa2FuIExvYWRlciB2ZXJzaW9ucyBiZWZvcmUgMS4xLjkxIGhh
dmUgYSBidWcKLSAgICAgICAgLy8gd2hpY2ggcHJldmVudHMgbG9hZGluZyBWS19FWFRfZGVidWdf
dXRpbHMgZnVuY3Rpb24gcG9pbnRlcnMuCi0gICAgICAgIGNhbkxvYWREZWJ1Z1V0aWxzID0gZmFs
c2U7CisgICAgICAgIHVpbnQzMl90IHZlciA9IHZvbGtHZXRJbnN0YW5jZVZlcnNpb24oKTsKKyAg
ICAgICAgaWYgKCFJc0FuZHJvaWQoKSAmJiBWS19BUElfVkVSU0lPTl9NQUpPUih2ZXIpID09IDEg
JiYKKyAgICAgICAgICAgIChWS19BUElfVkVSU0lPTl9NSU5PUih2ZXIpIDwgMSB8fAorICAgICAg
ICAgICAgIChWS19BUElfVkVSU0lPTl9NSU5PUih2ZXIpID09IDEgJiYgVktfQVBJX1ZFUlNJT05f
UEFUQ0godmVyKSA8IDkxKSkpCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIGh0dHA6Ly9jcmJ1
Zy5jb20vMTIwNTk5OSAtIG5vbi1BbmRyb2lkIFZ1bGthbiBMb2FkZXIgdmVyc2lvbnMgYmVmb3Jl
IDEuMS45MSBoYXZlIGEKKyAgICAgICAgICAgIC8vIGJ1ZyB3aGljaCBwcmV2ZW50cyBsb2FkaW5n
IFZLX0VYVF9kZWJ1Z191dGlscyBmdW5jdGlvbiBwb2ludGVycy4KKyAgICAgICAgICAgIGNhbkxv
YWREZWJ1Z1V0aWxzID0gZmFsc2U7CisgICAgICAgIH0KICAgICB9CiAjZW5kaWYgIC8vIGRlZmlu
ZWQoQU5HTEVfU0hBUkVEX0xJQlZVTEtBTikKIApAQCAtMTMxOSw2ICsxMzU0LDcgQEAgYW5nbGU6
OlJlc3VsdCBSZW5kZXJlclZrOjppbml0aWFsaXplKERpc3BsYXlWayAqZGlzcGxheVZrLAogICAg
IHVpbnQzMl90IGluc3RhbmNlTGF5ZXJDb3VudCA9IDA7CiAgICAgewogICAgICAgICBBTkdMRV9T
Q09QRURfRElTQUJMRV9MU0FOKCk7CisgICAgICAgIEFOR0xFX1NDT1BFRF9ESVNBQkxFX01TQU4o
KTsKICAgICAgICAgQU5HTEVfVktfVFJZKGRpc3BsYXlWaywgdmtFbnVtZXJhdGVJbnN0YW5jZUxh
eWVyUHJvcGVydGllcygmaW5zdGFuY2VMYXllckNvdW50LCBudWxscHRyKSk7CiAgICAgfQogCkBA
IC0xMzI2LDYgKzEzNjIsNyBAQCBhbmdsZTo6UmVzdWx0IFJlbmRlcmVyVms6OmluaXRpYWxpemUo
RGlzcGxheVZrICpkaXNwbGF5VmssCiAgICAgaWYgKGluc3RhbmNlTGF5ZXJDb3VudCA+IDApCiAg
ICAgewogICAgICAgICBBTkdMRV9TQ09QRURfRElTQUJMRV9MU0FOKCk7CisgICAgICAgIEFOR0xF
X1NDT1BFRF9ESVNBQkxFX01TQU4oKTsKICAgICAgICAgQU5HTEVfVktfVFJZKGRpc3BsYXlWaywg
dmtFbnVtZXJhdGVJbnN0YW5jZUxheWVyUHJvcGVydGllcygmaW5zdGFuY2VMYXllckNvdW50LAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGluc3RhbmNlTGF5ZXJQcm9wcy5kYXRhKCkpKTsKICAgICB9CkBAIC0xMzQ5LDYg
KzEzODYsNyBAQCBhbmdsZTo6UmVzdWx0IFJlbmRlcmVyVms6OmluaXRpYWxpemUoRGlzcGxheVZr
ICpkaXNwbGF5VmssCiAgICAgdWludDMyX3QgaW5zdGFuY2VFeHRlbnNpb25Db3VudCA9IDA7CiAg
ICAgewogICAgICAgICBBTkdMRV9TQ09QRURfRElTQUJMRV9MU0FOKCk7CisgICAgICAgIEFOR0xF
X1NDT1BFRF9ESVNBQkxFX01TQU4oKTsKICAgICAgICAgQU5HTEVfVktfVFJZKGRpc3BsYXlWaywg
dmtFbnVtZXJhdGVJbnN0YW5jZUV4dGVuc2lvblByb3BlcnRpZXMoCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBudWxscHRyLCAmaW5zdGFuY2VFeHRlbnNpb25Db3VudCwgbnVs
bHB0cikpOwogICAgIH0KQEAgLTEzNTcsNiArMTM5NSw3IEBAIGFuZ2xlOjpSZXN1bHQgUmVuZGVy
ZXJWazo6aW5pdGlhbGl6ZShEaXNwbGF5VmsgKmRpc3BsYXlWaywKICAgICBpZiAoaW5zdGFuY2VF
eHRlbnNpb25Db3VudCA+IDApCiAgICAgewogICAgICAgICBBTkdMRV9TQ09QRURfRElTQUJMRV9M
U0FOKCk7CisgICAgICAgIEFOR0xFX1NDT1BFRF9ESVNBQkxFX01TQU4oKTsKICAgICAgICAgQU5H
TEVfVktfVFJZKGRpc3BsYXlWaywKICAgICAgICAgICAgICAgICAgICAgIHZrRW51bWVyYXRlSW5z
dGFuY2VFeHRlbnNpb25Qcm9wZXJ0aWVzKG51bGxwdHIsICZpbnN0YW5jZUV4dGVuc2lvbkNvdW50
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaW5zdGFuY2VFeHRlbnNpb25Qcm9wcy5kYXRhKCkpKTsKQEAgLTEzNjksMTIgKzE0MDgs
MTQgQEAgYW5nbGU6OlJlc3VsdCBSZW5kZXJlclZrOjppbml0aWFsaXplKERpc3BsYXlWayAqZGlz
cGxheVZrLAogICAgICAgICB1aW50MzJfdCBpbnN0YW5jZUxheWVyRXh0ZW5zaW9uQ291bnQgPSAw
OwogICAgICAgICB7CiAgICAgICAgICAgICBBTkdMRV9TQ09QRURfRElTQUJMRV9MU0FOKCk7Cisg
ICAgICAgICAgICBBTkdMRV9TQ09QRURfRElTQUJMRV9NU0FOKCk7CiAgICAgICAgICAgICBBTkdM
RV9WS19UUlkoZGlzcGxheVZrLCB2a0VudW1lcmF0ZUluc3RhbmNlRXh0ZW5zaW9uUHJvcGVydGll
cygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXllck5hbWUsICZp
bnN0YW5jZUxheWVyRXh0ZW5zaW9uQ291bnQsIG51bGxwdHIpKTsKICAgICAgICAgfQogICAgICAg
ICBpbnN0YW5jZUV4dGVuc2lvblByb3BzLnJlc2l6ZShwcmV2aW91c0V4dGVuc2lvbkNvdW50ICsg
aW5zdGFuY2VMYXllckV4dGVuc2lvbkNvdW50KTsKICAgICAgICAgewogICAgICAgICAgICAgQU5H
TEVfU0NPUEVEX0RJU0FCTEVfTFNBTigpOworICAgICAgICAgICAgQU5HTEVfU0NPUEVEX0RJU0FC
TEVfTVNBTigpOwogICAgICAgICAgICAgQU5HTEVfVktfVFJZKGRpc3BsYXlWaywgdmtFbnVtZXJh
dGVJbnN0YW5jZUV4dGVuc2lvblByb3BlcnRpZXMoCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbGF5ZXJOYW1lLCAmaW5zdGFuY2VMYXllckV4dGVuc2lvbkNvdW50LAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluc3RhbmNlRXh0ZW5zaW9u
UHJvcHMuZGF0YSgpICsgcHJldmlvdXNFeHRlbnNpb25Db3VudCkpOwpAQCAtMTQ2MSwxMyArMTUw
MiwxMyBAQCBhbmdsZTo6UmVzdWx0IFJlbmRlcmVyVms6OmluaXRpYWxpemUoRGlzcGxheVZrICpk
aXNwbGF5VmssCiAgICAgICAgIEFOR0xFX0ZFQVRVUkVfQ09ORElUSU9OKCZtRmVhdHVyZXMsIHN1
cHBvcnRzRXh0ZXJuYWxTZW1hcGhvcmVDYXBhYmlsaXRpZXMsIHRydWUpOwogICAgIH0KIAotICAg
IFZrQXBwbGljYXRpb25JbmZvIGFwcGxpY2F0aW9uSW5mbyAgPSB7fTsKLSAgICBhcHBsaWNhdGlv
bkluZm8uc1R5cGUgICAgICAgICAgICAgID0gVktfU1RSVUNUVVJFX1RZUEVfQVBQTElDQVRJT05f
SU5GTzsKLSAgICBzdGQ6OnN0cmluZyBhcHBOYW1lICAgICAgICAgICAgICAgID0gYW5nbGU6Okdl
dEV4ZWN1dGFibGVOYW1lKCk7Ci0gICAgYXBwbGljYXRpb25JbmZvLnBBcHBsaWNhdGlvbk5hbWUg
ICA9IGFwcE5hbWUuY19zdHIoKTsKLSAgICBhcHBsaWNhdGlvbkluZm8uYXBwbGljYXRpb25WZXJz
aW9uID0gMTsKLSAgICBhcHBsaWNhdGlvbkluZm8ucEVuZ2luZU5hbWUgICAgICAgID0gIkFOR0xF
IjsKLSAgICBhcHBsaWNhdGlvbkluZm8uZW5naW5lVmVyc2lvbiAgICAgID0gMTsKKyAgICBtQXBw
bGljYXRpb25JbmZvICAgICAgICAgICAgICAgICAgICA9IHt9OworICAgIG1BcHBsaWNhdGlvbklu
Zm8uc1R5cGUgICAgICAgICAgICAgID0gVktfU1RSVUNUVVJFX1RZUEVfQVBQTElDQVRJT05fSU5G
TzsKKyAgICBzdGQ6OnN0cmluZyBhcHBOYW1lICAgICAgICAgICAgICAgICA9IGFuZ2xlOjpHZXRF
eGVjdXRhYmxlTmFtZSgpOworICAgIG1BcHBsaWNhdGlvbkluZm8ucEFwcGxpY2F0aW9uTmFtZSAg
ID0gYXBwTmFtZS5jX3N0cigpOworICAgIG1BcHBsaWNhdGlvbkluZm8uYXBwbGljYXRpb25WZXJz
aW9uID0gMTsKKyAgICBtQXBwbGljYXRpb25JbmZvLnBFbmdpbmVOYW1lICAgICAgICA9ICJBTkdM
RSI7CisgICAgbUFwcGxpY2F0aW9uSW5mby5lbmdpbmVWZXJzaW9uICAgICAgPSAxOwogCiAgICAg
YXV0byBlbnVtZXJhdGVJbnN0YW5jZVZlcnNpb24gPSByZWludGVycHJldF9jYXN0PFBGTl92a0Vu
dW1lcmF0ZUluc3RhbmNlVmVyc2lvbj4oCiAgICAgICAgIHZrR2V0SW5zdGFuY2VQcm9jQWRkcihu
dWxscHRyLCAidmtFbnVtZXJhdGVJbnN0YW5jZVZlcnNpb24iKSk7CkBAIC0xNDgwLDYgKzE1MjEs
NyBAQCBhbmdsZTo6UmVzdWx0IFJlbmRlcmVyVms6OmluaXRpYWxpemUoRGlzcGxheVZrICpkaXNw
bGF5VmssCiAgICAgICAgIHVpbnQzMl90IGFwaVZlcnNpb24gPSBWS19BUElfVkVSU0lPTl8xXzA7
CiAgICAgICAgIHsKICAgICAgICAgICAgIEFOR0xFX1NDT1BFRF9ESVNBQkxFX0xTQU4oKTsKKyAg
ICAgICAgICAgIEFOR0xFX1NDT1BFRF9ESVNBQkxFX01TQU4oKTsKICAgICAgICAgICAgIEFOR0xF
X1ZLX1RSWShkaXNwbGF5VmssIGVudW1lcmF0ZUluc3RhbmNlVmVyc2lvbigmYXBpVmVyc2lvbikp
OwogICAgICAgICB9CiAgICAgICAgIGlmICgoVktfVkVSU0lPTl9NQUpPUihhcGlWZXJzaW9uKSA+
IDEpIHx8IChWS19WRVJTSU9OX01JTk9SKGFwaVZlcnNpb24pID49IDEpKQpAQCAtMTQ5MywxMiAr
MTUzNSwxMiBAQCBhbmdsZTo6UmVzdWx0IFJlbmRlcmVyVms6OmluaXRpYWxpemUoRGlzcGxheVZr
ICpkaXNwbGF5VmssCiAgICAgICAgICAgICBtQXBpVmVyc2lvbiA9IFZLX0FQSV9WRVJTSU9OXzFf
MDsKICAgICAgICAgfQogICAgIH0KLSAgICBhcHBsaWNhdGlvbkluZm8uYXBpVmVyc2lvbiA9IG1B
cGlWZXJzaW9uOworICAgIG1BcHBsaWNhdGlvbkluZm8uYXBpVmVyc2lvbiA9IG1BcGlWZXJzaW9u
OwogCiAgICAgVmtJbnN0YW5jZUNyZWF0ZUluZm8gaW5zdGFuY2VJbmZvID0ge307CiAgICAgaW5z
dGFuY2VJbmZvLnNUeXBlICAgICAgICAgICAgICAgID0gVktfU1RSVUNUVVJFX1RZUEVfSU5TVEFO
Q0VfQ1JFQVRFX0lORk87CiAgICAgaW5zdGFuY2VJbmZvLmZsYWdzICAgICAgICAgICAgICAgID0g
MDsKLSAgICBpbnN0YW5jZUluZm8ucEFwcGxpY2F0aW9uSW5mbyAgICAgPSAmYXBwbGljYXRpb25J
bmZvOworICAgIGluc3RhbmNlSW5mby5wQXBwbGljYXRpb25JbmZvICAgICA9ICZtQXBwbGljYXRp
b25JbmZvOwogCiAgICAgLy8gRW5hYmxlIHJlcXVlc3RlZCBsYXllcnMgYW5kIGV4dGVuc2lvbnMu
CiAgICAgaW5zdGFuY2VJbmZvLmVuYWJsZWRFeHRlbnNpb25Db3VudCA9IHN0YXRpY19jYXN0PHVp
bnQzMl90PihtRW5hYmxlZEluc3RhbmNlRXh0ZW5zaW9ucy5zaXplKCkpOwpAQCAtMTUzMSwxMSAr
MTU3MywxNCBAQCBhbmdsZTo6UmVzdWx0IFJlbmRlcmVyVms6OmluaXRpYWxpemUoRGlzcGxheVZr
ICpkaXNwbGF5VmssCiAgICAgICAgIHZrOjpBZGRUb1BOZXh0Q2hhaW4oJmluc3RhbmNlSW5mbywg
JnZhbGlkYXRpb25GZWF0dXJlcyk7CiAgICAgfQogCi0gICAgQU5HTEVfVktfVFJZKGRpc3BsYXlW
aywgdmtDcmVhdGVJbnN0YW5jZSgmaW5zdGFuY2VJbmZvLCBudWxscHRyLCAmbUluc3RhbmNlKSk7
CisgICAgeworICAgICAgICBBTkdMRV9TQ09QRURfRElTQUJMRV9NU0FOKCk7CisgICAgICAgIEFO
R0xFX1ZLX1RSWShkaXNwbGF5VmssIHZrQ3JlYXRlSW5zdGFuY2UoJmluc3RhbmNlSW5mbywgbnVs
bHB0ciwgJm1JbnN0YW5jZSkpOwogI2lmIGRlZmluZWQoQU5HTEVfU0hBUkVEX0xJQlZVTEtBTikK
LSAgICAvLyBMb2FkIHZvbGsgaWYgd2UgYXJlIGxpbmtpbmcgZHluYW1pY2FsbHkKLSAgICB2b2xr
TG9hZEluc3RhbmNlKG1JbnN0YW5jZSk7CisgICAgICAgIC8vIExvYWQgdm9sayBpZiB3ZSBhcmUg
bGlua2luZyBkeW5hbWljYWxseQorICAgICAgICB2b2xrTG9hZEluc3RhbmNlKG1JbnN0YW5jZSk7
CiAjZW5kaWYgIC8vIGRlZmluZWQoQU5HTEVfU0hBUkVEX0xJQlZVTEtBTikKKyAgICB9CiAKICAg
ICBpZiAobUVuYWJsZURlYnVnVXRpbHMpCiAgICAgewpAQCAtMTY0MSwyMSArMTY4NiwzNyBAQCBh
bmdsZTo6UmVzdWx0IFJlbmRlcmVyVms6OmluaXRpYWxpemUoRGlzcGxheVZrICpkaXNwbGF5Vmss
CiAgICAgICAgIEFOR0xFX1RSWShpbml0aWFsaXplRGV2aWNlKGRpc3BsYXlWaywgZmlyc3RHcmFw
aGljc1F1ZXVlRmFtaWx5KSk7CiAgICAgfQogCisgICAgLy8gU3RvcmUgdGhlIHBoeXNpY2FsIGRl
dmljZSBtZW1vcnkgcHJvcGVydGllcyBzbyB3ZSBjYW4gZmluZCB0aGUgcmlnaHQgbWVtb3J5IHBv
b2xzLgorICAgIG1NZW1vcnlQcm9wZXJ0aWVzLmluaXQobVBoeXNpY2FsRGV2aWNlKTsKKyAgICBB
TkdMRV9WS19DSEVDSyhkaXNwbGF5VmssIG1NZW1vcnlQcm9wZXJ0aWVzLmdldE1lbW9yeVR5cGVD
b3VudCgpID4gMCwKKyAgICAgICAgICAgICAgICAgICBWS19FUlJPUl9JTklUSUFMSVpBVElPTl9G
QUlMRUQpOworCisgICAgQU5HTEVfVFJZKGluaXRpYWxpemVNZW1vcnlBbGxvY2F0b3IoZGlzcGxh
eVZrKSk7CisKKyAgICB7CisgICAgICAgIEFOR0xFX1RSQUNFX0VWRU5UMCgiZ3B1LmFuZ2xlLHN0
YXJ0dXAiLCAiR2xzbGFuZ1dhcm11cCIpOworICAgICAgICBzaDo6SW5pdGlhbGl6ZUdsc2xhbmco
KTsKKyAgICB9CisKKyAgICAvLyBJbml0aWFsaXplIHRoZSBmb3JtYXQgdGFibGUuCisgICAgbUZv
cm1hdFRhYmxlLmluaXRpYWxpemUodGhpcywgJm1OYXRpdmVUZXh0dXJlQ2FwcywgJm1OYXRpdmVD
YXBzLmNvbXByZXNzZWRUZXh0dXJlRm9ybWF0cyk7CisKKyAgICBzZXRHbG9iYWxEZWJ1Z0Fubm90
YXRvcigpOworCisgICAgcmV0dXJuIGFuZ2xlOjpSZXN1bHQ6OkNvbnRpbnVlOworfQorCithbmds
ZTo6UmVzdWx0IFJlbmRlcmVyVms6OmluaXRpYWxpemVNZW1vcnlBbGxvY2F0b3IoRGlzcGxheVZr
ICpkaXNwbGF5VmspCit7CiAgICAgLy8gVGhpcyBudW1iZXIgbWF0Y2hlcyBDaHJvbWl1bSBhbmQg
d2FzIHBpY2tlZCBieSBsb29raW5nIGF0IG1lbW9yeSB1c2FnZSBvZgogICAgIC8vIEFuZHJvaWQg
YXBwcy4gVGhlIGFsbG9jYXRvciB3aWxsIHN0YXJ0IG1ha2luZyBibG9ja3MgYXQgMS84IHRoZSBt
YXggc2l6ZQogICAgIC8vIGFuZCBidWlsZHMgdXAgYmxvY2sgc2l6ZSBhcyBuZWVkZWQgYmVmb3Jl
IGNhcHBpbmcgYXQgdGhlIG1heCBzZXQgaGVyZS4KLSAgICBWa0RldmljZVNpemUgcHJlZmVycmVk
TGFyZ2VIZWFwQmxvY2tTaXplID0gNCAqIDEwMjQgKiAxMDI0OwotCi0gICAgLy8gU3RvcmUgdGhl
IHBoeXNpY2FsIGRldmljZSBtZW1vcnkgcHJvcGVydGllcyBzbyB3ZSBjYW4gZmluZCB0aGUgcmln
aHQgbWVtb3J5IHBvb2xzLgotICAgIG1NZW1vcnlQcm9wZXJ0aWVzLmluaXQobVBoeXNpY2FsRGV2
aWNlKTsKKyAgICBtUHJlZmVycmVkTGFyZ2VIZWFwQmxvY2tTaXplID0gNCAqIDEwMjQgKiAxMDI0
OwogCiAgICAgLy8gQ3JlYXRlIFZNQSBhbGxvY2F0b3IKICAgICBBTkdMRV9WS19UUlkoZGlzcGxh
eVZrLAotICAgICAgICAgICAgICAgICBtQWxsb2NhdG9yLmluaXQobVBoeXNpY2FsRGV2aWNlLCBt
RGV2aWNlLCBtSW5zdGFuY2UsIGFwcGxpY2F0aW9uSW5mby5hcGlWZXJzaW9uLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcHJlZmVycmVkTGFyZ2VIZWFwQmxvY2tTaXplKSk7Ci0K
LSAgICBBTkdMRV9WS19DSEVDSyhkaXNwbGF5VmssIG1NZW1vcnlQcm9wZXJ0aWVzLmdldE1lbW9y
eVR5cGVDb3VudCgpID4gMCwKLSAgICAgICAgICAgICAgICAgICBWS19FUlJPUl9JTklUSUFMSVpB
VElPTl9GQUlMRUQpOworICAgICAgICAgICAgICAgICBtQWxsb2NhdG9yLmluaXQobVBoeXNpY2Fs
RGV2aWNlLCBtRGV2aWNlLCBtSW5zdGFuY2UsIG1BcHBsaWNhdGlvbkluZm8uYXBpVmVyc2lvbiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1QcmVmZXJyZWRMYXJnZUhlYXBCbG9j
a1NpemUpKTsKIAogICAgIC8vIEZpZ3VyZSBvdXQgdGhlIGFsaWdubWVudCBmb3IgZGVmYXVsdCBi
dWZmZXIgYWxsb2NhdGlvbnMKICAgICBWa0J1ZmZlckNyZWF0ZUluZm8gY3JlYXRlSW5mbyAgICA9
IHt9OwpAQCAtMTY2NiwxMCArMTcyNywxMiBAQCBhbmdsZTo6UmVzdWx0IFJlbmRlcmVyVms6Omlu
aXRpYWxpemUoRGlzcGxheVZrICpkaXNwbGF5VmssCiAgICAgY3JlYXRlSW5mby5zaGFyaW5nTW9k
ZSAgICAgICAgICAgPSBWS19TSEFSSU5HX01PREVfRVhDTFVTSVZFOwogICAgIGNyZWF0ZUluZm8u
cXVldWVGYW1pbHlJbmRleENvdW50ID0gMDsKICAgICBjcmVhdGVJbmZvLnBRdWV1ZUZhbWlseUlu
ZGljZXMgICA9IG51bGxwdHI7Ci0gICAgdms6OkJ1ZmZlciB0ZW1wQnVmZmVyOwotICAgIHRlbXBC
dWZmZXIuaW5pdChtRGV2aWNlLCBjcmVhdGVJbmZvKTsKKworICAgIHZrOjpEZXZpY2VTY29wZWQ8
dms6OkJ1ZmZlcj4gdGVtcEJ1ZmZlcihtRGV2aWNlKTsKKyAgICB0ZW1wQnVmZmVyLmdldCgpLmlu
aXQobURldmljZSwgY3JlYXRlSW5mbyk7CisKICAgICBWa01lbW9yeVJlcXVpcmVtZW50cyBkZWZh
dWx0QnVmZmVyTWVtb3J5UmVxdWlyZW1lbnRzOwotICAgIHRlbXBCdWZmZXIuZ2V0TWVtb3J5UmVx
dWlyZW1lbnRzKG1EZXZpY2UsICZkZWZhdWx0QnVmZmVyTWVtb3J5UmVxdWlyZW1lbnRzKTsKKyAg
ICB0ZW1wQnVmZmVyLmdldCgpLmdldE1lbW9yeVJlcXVpcmVtZW50cyhtRGV2aWNlLCAmZGVmYXVs
dEJ1ZmZlck1lbW9yeVJlcXVpcmVtZW50cyk7CiAgICAgQVNTRVJUKGdsOjppc1BvdzIoZGVmYXVs
dEJ1ZmZlck1lbW9yeVJlcXVpcmVtZW50cy5hbGlnbm1lbnQpKTsKIAogICAgIGNvbnN0IFZrUGh5
c2ljYWxEZXZpY2VMaW1pdHMgJmxpbWl0c1ZrID0gZ2V0UGh5c2ljYWxEZXZpY2VQcm9wZXJ0aWVz
KCkubGltaXRzOwpAQCAtMTY3NywxMyArMTc0MCwxMyBAQCBhbmdsZTo6UmVzdWx0IFJlbmRlcmVy
Vms6OmluaXRpYWxpemUoRGlzcGxheVZrICpkaXNwbGF5VmssCiAgICAgQVNTRVJUKGdsOjppc1Bv
dzIobGltaXRzVmsubWluU3RvcmFnZUJ1ZmZlck9mZnNldEFsaWdubWVudCkpOwogICAgIEFTU0VS
VChnbDo6aXNQb3cyKGxpbWl0c1ZrLm1pblRleGVsQnVmZmVyT2Zmc2V0QWxpZ25tZW50KSk7CiAg
ICAgQVNTRVJUKGdsOjppc1BvdzIobGltaXRzVmsubWluTWVtb3J5TWFwQWxpZ25tZW50KSk7CisK
ICAgICBtRGVmYXVsdEJ1ZmZlckFsaWdubWVudCA9CiAgICAgICAgIHN0ZDo6bWF4KHtzdGF0aWNf
Y2FzdDxzaXplX3Q+KGxpbWl0c1ZrLm1pblVuaWZvcm1CdWZmZXJPZmZzZXRBbGlnbm1lbnQpLAog
ICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8c2l6ZV90PihsaW1pdHNWay5taW5TdG9yYWdl
QnVmZmVyT2Zmc2V0QWxpZ25tZW50KSwKICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHNp
emVfdD4obGltaXRzVmsubWluVGV4ZWxCdWZmZXJPZmZzZXRBbGlnbm1lbnQpLAogICAgICAgICAg
ICAgICAgICAgc3RhdGljX2Nhc3Q8c2l6ZV90PihsaW1pdHNWay5taW5NZW1vcnlNYXBBbGlnbm1l
bnQpLAogICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8c2l6ZV90PihkZWZhdWx0QnVmZmVy
TWVtb3J5UmVxdWlyZW1lbnRzLmFsaWdubWVudCl9KTsKLSAgICB0ZW1wQnVmZmVyLmRlc3Ryb3ko
bURldmljZSk7CiAKICAgICAvLyBJbml0aWFsaXplIHN0YWdpbmcgYnVmZmVyIG1lbW9yeSB0eXBl
IGluZGV4IGFuZCBhbGlnbm1lbnQuCiAgICAgLy8gVGhlc2UgYnVmZmVycyB3aWxsIG9ubHkgYmUg
dXNlZCBhcyB0cmFuc2ZlciBzb3VyY2VzIG9yIHRyYW5zZmVyIHRhcmdldHMuCkBAIC0xNzI4LDYg
KzE3OTEsNyBAQCBhbmdsZTo6UmVzdWx0IFJlbmRlcmVyVms6OmluaXRpYWxpemUoRGlzcGxheVZr
ICpkaXNwbGF5VmssCiAgICAgLy8gSG9zdCB2aXNpYmxlIGFuZCBub24tY29oZXJlbnQgdmVydGV4
IGNvbnZlcnNpb24gYnVmZmVyLCB3aGljaCBpcyB0aGUgc2FtZSBhcyBub24tY29oZXJlbnQKICAg
ICAvLyBzdGFnaW5nIGJ1ZmZlcgogICAgIG1Ib3N0VmlzaWJsZVZlcnRleENvbnZlcnNpb25CdWZm
ZXJNZW1vcnlUeXBlSW5kZXggPSBtTm9uQ29oZXJlbnRTdGFnaW5nQnVmZmVyTWVtb3J5VHlwZUlu
ZGV4OworCiAgICAgLy8gV2UgbWF5IHVzZSBjb21wdXRlIHNoYWRlciB0byBkbyBjb252ZXJzaW9u
LCBzbyB3ZSBtdXN0IG1lZXQKICAgICAvLyBtaW5TdG9yYWdlQnVmZmVyT2Zmc2V0QWxpZ25tZW50
IHJlcXVpcmVtZW50IGFzIHdlbGwuIEFsc28gdGFrZSBpbnRvIGFjY291bnQgbm9uLWNvaGVyZW50
CiAgICAgLy8gYWxpZ25tZW50IHJlcXVpcmVtZW50cy4KQEAgLTE3MzgsMTYgKzE4MDIsNiBAQCBh
bmdsZTo6UmVzdWx0IFJlbmRlcmVyVms6OmluaXRpYWxpemUoRGlzcGxheVZrICpkaXNwbGF5Vmss
CiAgICAgICAgICBzdGF0aWNfY2FzdDxzaXplX3Q+KGRlZmF1bHRCdWZmZXJNZW1vcnlSZXF1aXJl
bWVudHMuYWxpZ25tZW50KX0pOwogICAgIEFTU0VSVChnbDo6aXNQb3cyKG1WZXJ0ZXhDb252ZXJz
aW9uQnVmZmVyQWxpZ25tZW50KSk7CiAKLSAgICB7Ci0gICAgICAgIEFOR0xFX1RSQUNFX0VWRU5U
MCgiZ3B1LmFuZ2xlLHN0YXJ0dXAiLCAiR2xzbGFuZ1dhcm11cCIpOwotICAgICAgICBzaDo6SW5p
dGlhbGl6ZUdsc2xhbmcoKTsKLSAgICB9Ci0KLSAgICAvLyBJbml0aWFsaXplIHRoZSBmb3JtYXQg
dGFibGUuCi0gICAgbUZvcm1hdFRhYmxlLmluaXRpYWxpemUodGhpcywgJm1OYXRpdmVUZXh0dXJl
Q2FwcywgJm1OYXRpdmVDYXBzLmNvbXByZXNzZWRUZXh0dXJlRm9ybWF0cyk7Ci0KLSAgICBzZXRH
bG9iYWxEZWJ1Z0Fubm90YXRvcigpOwotCiAgICAgcmV0dXJuIGFuZ2xlOjpSZXN1bHQ6OkNvbnRp
bnVlOwogfQogCkBAIC0xODM5LDkgKzE4OTMsOSBAQCB2b2lkIFJlbmRlcmVyVms6OnF1ZXJ5RGV2
aWNlRXh0ZW5zaW9uRmVhdHVyZXMoY29uc3Qgdms6OkV4dGVuc2lvbk5hbWVMaXN0ICZkZXZpYwog
ICAgIG1CbGVuZE9wZXJhdGlvbkFkdmFuY2VkRmVhdHVyZXMuc1R5cGUgPQogICAgICAgICBWS19T
VFJVQ1RVUkVfVFlQRV9QSFlTSUNBTF9ERVZJQ0VfQkxFTkRfT1BFUkFUSU9OX0FEVkFOQ0VEX0ZF
QVRVUkVTX0VYVDsKIAotICAgIG1CbGVuZE9wZXJhdGlvbkFkdmFuY2VkUHJvcGVydGllcyA9IHt9
OwotICAgIG1CbGVuZE9wZXJhdGlvbkFkdmFuY2VkUHJvcGVydGllcy5zVHlwZSA9Ci0gICAgICAg
IFZLX1NUUlVDVFVSRV9UWVBFX1BIWVNJQ0FMX0RFVklDRV9CTEVORF9PUEVSQVRJT05fQURWQU5D
RURfUFJPUEVSVElFU19FWFQ7CisgICAgbUZyYWdtZW50U2hhZGluZ1JhdGVGZWF0dXJlcyA9IHt9
OworICAgIG1GcmFnbWVudFNoYWRpbmdSYXRlRmVhdHVyZXMuc1R5cGUgPQorICAgICAgICBWS19T
VFJVQ1RVUkVfVFlQRV9QSFlTSUNBTF9ERVZJQ0VfRlJBR01FTlRfU0hBRElOR19SQVRFX0ZFQVRV
UkVTX0tIUjsKIAogICAgIGlmICghdmtHZXRQaHlzaWNhbERldmljZVByb3BlcnRpZXMyS0hSIHx8
ICF2a0dldFBoeXNpY2FsRGV2aWNlRmVhdHVyZXMyS0hSKQogICAgIHsKQEAgLTE5NzMsNyArMjAy
NywxMSBAQCB2b2lkIFJlbmRlcmVyVms6OnF1ZXJ5RGV2aWNlRXh0ZW5zaW9uRmVhdHVyZXMoY29u
c3Qgdms6OkV4dGVuc2lvbk5hbWVMaXN0ICZkZXZpYwogICAgIGlmIChFeHRlbnNpb25Gb3VuZChW
S19FWFRfQkxFTkRfT1BFUkFUSU9OX0FEVkFOQ0VEX0VYVEVOU0lPTl9OQU1FLCBkZXZpY2VFeHRl
bnNpb25OYW1lcykpCiAgICAgewogICAgICAgICB2azo6QWRkVG9QTmV4dENoYWluKCZkZXZpY2VG
ZWF0dXJlcywgJm1CbGVuZE9wZXJhdGlvbkFkdmFuY2VkRmVhdHVyZXMpOwotICAgICAgICB2azo6
QWRkVG9QTmV4dENoYWluKCZkZXZpY2VQcm9wZXJ0aWVzLCAmbUJsZW5kT3BlcmF0aW9uQWR2YW5j
ZWRQcm9wZXJ0aWVzKTsKKyAgICB9CisKKyAgICBpZiAoRXh0ZW5zaW9uRm91bmQoVktfS0hSX0ZS
QUdNRU5UX1NIQURJTkdfUkFURV9FWFRFTlNJT05fTkFNRSwgZGV2aWNlRXh0ZW5zaW9uTmFtZXMp
KQorICAgIHsKKyAgICAgICAgdms6OkFkZFRvUE5leHRDaGFpbigmZGV2aWNlRmVhdHVyZXMsICZt
RnJhZ21lbnRTaGFkaW5nUmF0ZUZlYXR1cmVzKTsKICAgICB9CiAKICAgICB2a0dldFBoeXNpY2Fs
RGV2aWNlRmVhdHVyZXMyS0hSKG1QaHlzaWNhbERldmljZSwgJmRldmljZUZlYXR1cmVzKTsKQEAg
LTIwMDMsNyArMjA2MSw3IEBAIHZvaWQgUmVuZGVyZXJWazo6cXVlcnlEZXZpY2VFeHRlbnNpb25G
ZWF0dXJlcyhjb25zdCB2azo6RXh0ZW5zaW9uTmFtZUxpc3QgJmRldmljCiAgICAgbUhvc3RRdWVy
eVJlc2V0RmVhdHVyZXMucE5leHQgICAgICAgICAgICAgICAgICAgID0gbnVsbHB0cjsKICAgICBt
RGVwdGhDbGlwQ29udHJvbEZlYXR1cmVzLnBOZXh0ICAgICAgICAgICAgICAgICAgPSBudWxscHRy
OwogICAgIG1CbGVuZE9wZXJhdGlvbkFkdmFuY2VkRmVhdHVyZXMucE5leHQgICAgICAgICAgICA9
IG51bGxwdHI7Ci0gICAgbUJsZW5kT3BlcmF0aW9uQWR2YW5jZWRQcm9wZXJ0aWVzLnBOZXh0ICAg
ICAgICAgID0gbnVsbHB0cjsKKyAgICBtRnJhZ21lbnRTaGFkaW5nUmF0ZUZlYXR1cmVzLnBOZXh0
ICAgICAgICAgICAgICAgPSBudWxscHRyOwogfQogCiBhbmdsZTo6UmVzdWx0IFJlbmRlcmVyVms6
OmluaXRpYWxpemVEZXZpY2UoRGlzcGxheVZrICpkaXNwbGF5VmssIHVpbnQzMl90IHF1ZXVlRmFt
aWx5SW5kZXgpCkBAIC0yMjMwLDcgKzIyODgsNyBAQCBhbmdsZTo6UmVzdWx0IFJlbmRlcmVyVms6
OmluaXRpYWxpemVEZXZpY2UoRGlzcGxheVZrICpkaXNwbGF5VmssIHVpbnQzMl90IHF1ZXVlRgog
ICAgIHsKICAgICAgICAgbUVuYWJsZWREZXZpY2VFeHRlbnNpb25zLnB1c2hfYmFjayhWS19FWFRf
TE9BRF9TVE9SRV9PUF9OT05FX0VYVEVOU0lPTl9OQU1FKTsKICAgICB9Ci0gICAgZWxzZSBpZiAo
Z2V0RmVhdHVyZXMoKS5zdXBwb3J0c1JlbmRlclBhc3NTdG9yZU9wTm9uZVFDT00uZW5hYmxlZCkK
KyAgICBlbHNlIGlmIChnZXRGZWF0dXJlcygpLnN1cHBvcnRzUmVuZGVyUGFzc1N0b3JlT3BOb25l
LmVuYWJsZWQpCiAgICAgewogICAgICAgICBtRW5hYmxlZERldmljZUV4dGVuc2lvbnMucHVzaF9i
YWNrKFZLX1FDT01fUkVOREVSX1BBU1NfU1RPUkVfT1BTX0VYVEVOU0lPTl9OQU1FKTsKICAgICB9
CkBAIC0yNDU1LDYgKzI1MTMsMTIgQEAgYW5nbGU6OlJlc3VsdCBSZW5kZXJlclZrOjppbml0aWFs
aXplRGV2aWNlKERpc3BsYXlWayAqZGlzcGxheVZrLCB1aW50MzJfdCBxdWV1ZUYKICAgICAgICAg
dms6OkFkZFRvUE5leHRDaGFpbigmbUVuYWJsZWRGZWF0dXJlcywgJm1CbGVuZE9wZXJhdGlvbkFk
dmFuY2VkRmVhdHVyZXMpOwogICAgIH0KIAorICAgIGlmIChnZXRGZWF0dXJlcygpLnN1cHBvcnRz
RnJhZ21lbnRTaGFkaW5nUmF0ZS5lbmFibGVkKQorICAgIHsKKyAgICAgICAgbUVuYWJsZWREZXZp
Y2VFeHRlbnNpb25zLnB1c2hfYmFjayhWS19LSFJfRlJBR01FTlRfU0hBRElOR19SQVRFX0VYVEVO
U0lPTl9OQU1FKTsKKyAgICAgICAgdms6OkFkZFRvUE5leHRDaGFpbigmbUVuYWJsZWRGZWF0dXJl
cywgJm1GcmFnbWVudFNoYWRpbmdSYXRlRmVhdHVyZXMpOworICAgIH0KKwogICAgIG1DdXJyZW50
UXVldWVGYW1pbHlJbmRleCA9IHF1ZXVlRmFtaWx5SW5kZXg7CiAKICAgICB2azo6UXVldWVGYW1p
bHkgcXVldWVGYW1pbHk7CkBAIC0yODI5LDYgKzI4OTMsNjEgQEAgZ2w6OlZlcnNpb24gUmVuZGVy
ZXJWazo6Z2V0TWF4Q29uZm9ybWFudEVTVmVyc2lvbigpIGNvbnN0CiAgICAgcmV0dXJuIG1heFN1
cHBvcnRlZEVTVmVyc2lvbjsKIH0KIAorYm9vbCBSZW5kZXJlclZrOjpjYW5TdXBwb3J0RnJhZ21l
bnRTaGFkaW5nUmF0ZShjb25zdCB2azo6RXh0ZW5zaW9uTmFtZUxpc3QgJmRldmljZUV4dGVuc2lv
bk5hbWVzKQoreworICAgIC8vIERldmljZSBuZWVkcyB0byBzdXBwb3J0IFZLX0tIUl9mcmFnbWVu
dF9zaGFkaW5nX3JhdGUgYW5kIHNwZWNpZmljYWxseQorICAgIC8vIHBpcGVsaW5lIGZyYWdtZW50
IHNoYWRpbmcgcmF0ZS4KKyAgICBpZiAobUZyYWdtZW50U2hhZGluZ1JhdGVGZWF0dXJlcy5waXBl
bGluZUZyYWdtZW50U2hhZGluZ1JhdGUgIT0gVktfVFJVRSkKKyAgICB7CisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICB9CisKKyAgICAvLyBJbml0IHJlcXVpcmVkIGZ1bmN0aW9ucworI2lmICFk
ZWZpbmVkKEFOR0xFX1NIQVJFRF9MSUJWVUxLQU4pCisgICAgSW5pdEZyYWdtZW50U2hhZGluZ1Jh
dGVLSFJGdW5jdGlvbnMobURldmljZSk7CisjZW5kaWYgIC8vICFkZWZpbmVkKEFOR0xFX1NIQVJF
RF9MSUJWVUxLQU4pCisgICAgQVNTRVJUKHZrR2V0UGh5c2ljYWxEZXZpY2VGcmFnbWVudFNoYWRp
bmdSYXRlc0tIUik7CisgICAgQVNTRVJUKHZrQ21kU2V0RnJhZ21lbnRTaGFkaW5nUmF0ZUtIUik7
CisKKyAgICAvLyBRdWVyeSBzdXBwb3J0ZWQgc2hhZGluZyByYXRlcworICAgIGNvbnN0ZXhwciB1
aW50MzJfdCBrU2hhZGluZ1JhdGVzQ291bnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgID0gNjsKKyAgICB1aW50MzJfdCBzaGFkaW5nUmF0ZXNDb3VudCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDY7
CisgICAgc3RkOjphcnJheTxWa1BoeXNpY2FsRGV2aWNlRnJhZ21lbnRTaGFkaW5nUmF0ZUtIUiwg
a1NoYWRpbmdSYXRlc0NvdW50PiBzaGFkaW5nUmF0ZXMgPSB7CisgICAgICAgIHt7VktfU1RSVUNU
VVJFX1RZUEVfUEhZU0lDQUxfREVWSUNFX0ZSQUdNRU5UX1NIQURJTkdfUkFURV9LSFIsIG51bGxw
dHIsIDAsIHsxLCAxfX0sCisgICAgICAgICB7VktfU1RSVUNUVVJFX1RZUEVfUEhZU0lDQUxfREVW
SUNFX0ZSQUdNRU5UX1NIQURJTkdfUkFURV9LSFIsIG51bGxwdHIsIDAsIHsxLCAyfX0sCisgICAg
ICAgICB7VktfU1RSVUNUVVJFX1RZUEVfUEhZU0lDQUxfREVWSUNFX0ZSQUdNRU5UX1NIQURJTkdf
UkFURV9LSFIsIG51bGxwdHIsIDAsIHsyLCAxfX0sCisgICAgICAgICB7VktfU1RSVUNUVVJFX1RZ
UEVfUEhZU0lDQUxfREVWSUNFX0ZSQUdNRU5UX1NIQURJTkdfUkFURV9LSFIsIG51bGxwdHIsIDAs
IHsyLCAyfX0sCisgICAgICAgICB7VktfU1RSVUNUVVJFX1RZUEVfUEhZU0lDQUxfREVWSUNFX0ZS
QUdNRU5UX1NIQURJTkdfUkFURV9LSFIsIG51bGxwdHIsIDAsIHs0LCAyfX0sCisgICAgICAgICB7
VktfU1RSVUNUVVJFX1RZUEVfUEhZU0lDQUxfREVWSUNFX0ZSQUdNRU5UX1NIQURJTkdfUkFURV9L
SFIsIG51bGxwdHIsIDAsIHs0LCA0fX19fTsKKworICAgIFZrUmVzdWx0IHJlc3VsdCA9IHZrR2V0
UGh5c2ljYWxEZXZpY2VGcmFnbWVudFNoYWRpbmdSYXRlc0tIUigKKyAgICAgICAgbVBoeXNpY2Fs
RGV2aWNlLCAmc2hhZGluZ1JhdGVzQ291bnQsIHNoYWRpbmdSYXRlcy5kYXRhKCkpOworICAgIEFT
U0VSVChyZXN1bHQgPT0gVktfU1VDQ0VTUyB8fCByZXN1bHQgPT0gVktfSU5DT01QTEVURSk7Cisg
ICAgQVNTRVJUKHNoYWRpbmdSYXRlc0NvdW50ID4gMCAmJiBzaGFkaW5nUmF0ZXNDb3VudCA8PSBr
U2hhZGluZ1JhdGVzQ291bnQpOworCisgICAgLy8gQ2FjaGUgc3VwcG9ydGVkIGZyYWdtZW50IHNo
YWRpbmcgcmF0ZXMKKyAgICBtU3VwcG9ydGVkRnJhZ21lbnRTaGFkaW5nUmF0ZXMucmVzZXQoKTsK
KyAgICBmb3IgKGNvbnN0IFZrUGh5c2ljYWxEZXZpY2VGcmFnbWVudFNoYWRpbmdSYXRlS0hSICZz
aGFkaW5nUmF0ZSA6IHNoYWRpbmdSYXRlcykKKyAgICB7CisgICAgICAgIGlmIChzaGFkaW5nUmF0
ZS5zYW1wbGVDb3VudHMgPT0gMCkKKyAgICAgICAgeworICAgICAgICAgICAgY29udGludWU7Cisg
ICAgICAgIH0KKyAgICAgICAgbVN1cHBvcnRlZEZyYWdtZW50U2hhZGluZ1JhdGVzLnNldChHZXRT
aGFkaW5nUmF0ZUZyb21Wa0V4dGVudChzaGFkaW5nUmF0ZS5mcmFnbWVudFNpemUpKTsKKyAgICB9
CisKKyAgICAvLyBUbyBpbXBsZW1lbnQgR0xfUUNPTV9zaGFkaW5nX3JhdGUgZXh0ZW5zaW9uIHRo
ZSBWdWxrYW4gSUNEIG5lZWRzIHRvIHN1cHBvcnQgYXQgbGVhc3QgdGhlCisgICAgLy8gZm9sbG93
aW5nIHNoYWRpbmcgcmF0ZXMgLQorICAgIC8vICAgICB7MSwgMX0KKyAgICAvLyAgICAgezEsIDJ9
CisgICAgLy8gICAgIHsyLCAxfQorICAgIC8vICAgICB7MiwgMn0KKyAgICByZXR1cm4gbVN1cHBv
cnRlZEZyYWdtZW50U2hhZGluZ1JhdGVzLnRlc3QoZ2w6OlNoYWRpbmdSYXRlOjpfMXgxKSAmJgor
ICAgICAgICAgICBtU3VwcG9ydGVkRnJhZ21lbnRTaGFkaW5nUmF0ZXMudGVzdChnbDo6U2hhZGlu
Z1JhdGU6Ol8xeDIpICYmCisgICAgICAgICAgIG1TdXBwb3J0ZWRGcmFnbWVudFNoYWRpbmdSYXRl
cy50ZXN0KGdsOjpTaGFkaW5nUmF0ZTo6XzJ4MSkgJiYKKyAgICAgICAgICAgbVN1cHBvcnRlZEZy
YWdtZW50U2hhZGluZ1JhdGVzLnRlc3QoZ2w6OlNoYWRpbmdSYXRlOjpfMngyKTsKK30KKwogdm9p
ZCBSZW5kZXJlclZrOjppbml0RmVhdHVyZXMoRGlzcGxheVZrICpkaXNwbGF5VmssCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2azo6RXh0ZW5zaW9uTmFtZUxpc3QgJmRldmlj
ZUV4dGVuc2lvbk5hbWVzKQogewpAQCAtMjg2NSw2ICsyOTg0LDkgQEAgdm9pZCBSZW5kZXJlclZr
Ojppbml0RmVhdHVyZXMoRGlzcGxheVZrICpkaXNwbGF5VmssCiAgICAgY29uc3QgYm9vbCBpc0lt
bWVkaWF0ZU1vZGVSZW5kZXJlciA9IGlzTnZpZGlhIHx8IGlzQU1EIHx8IGlzSW50ZWwgfHwgaXNT
YW1zdW5nIHx8IGlzU3dpZnRTaGFkZXI7CiAgICAgY29uc3QgYm9vbCBpc1RpbGVCYXNlZFJlbmRl
cmVyICAgICA9IGlzQVJNIHx8IGlzUG93ZXJWUiB8fCBpc1F1YWxjb21tIHx8IGlzQnJvYWRjb207
CiAKKyAgICBib29sIGlzRGlzY3JldGVHUFUgPQorICAgICAgICBtUGh5c2ljYWxEZXZpY2VQcm9w
ZXJ0aWVzLmRldmljZVR5cGUgPT0gVktfUEhZU0lDQUxfREVWSUNFX1RZUEVfRElTQ1JFVEVfR1BV
OworCiAgICAgLy8gTWFrZSBzdXJlIGFsbCBrbm93biBhcmNoaXRlY3R1cmVzIGFyZSBhY2NvdW50
ZWQgZm9yLgogICAgIGlmICghaXNJbW1lZGlhdGVNb2RlUmVuZGVyZXIgJiYgIWlzVGlsZUJhc2Vk
UmVuZGVyZXIgJiYgIWlzTW9ja0lDREVuYWJsZWQoKSkKICAgICB7CkBAIC0zMDMwLDcgKzMxNTIs
NyBAQCB2b2lkIFJlbmRlcmVyVms6OmluaXRGZWF0dXJlcyhEaXNwbGF5VmsgKmRpc3BsYXlWaywK
ICAgICAgICAgRXh0ZW5zaW9uRm91bmQoVktfRVhUX0xPQURfU1RPUkVfT1BfTk9ORV9FWFRFTlNJ
T05fTkFNRSwgZGV2aWNlRXh0ZW5zaW9uTmFtZXMpKTsKIAogICAgIEFOR0xFX0ZFQVRVUkVfQ09O
RElUSU9OKAotICAgICAgICAmbUZlYXR1cmVzLCBzdXBwb3J0c1JlbmRlclBhc3NTdG9yZU9wTm9u
ZVFDT00sCisgICAgICAgICZtRmVhdHVyZXMsIHN1cHBvcnRzUmVuZGVyUGFzc1N0b3JlT3BOb25l
LAogICAgICAgICAhbUZlYXR1cmVzLnN1cHBvcnRzUmVuZGVyUGFzc0xvYWRTdG9yZU9wTm9uZS5l
bmFibGVkICYmCiAgICAgICAgICAgICBFeHRlbnNpb25Gb3VuZChWS19RQ09NX1JFTkRFUl9QQVNT
X1NUT1JFX09QU19FWFRFTlNJT05fTkFNRSwgZGV2aWNlRXh0ZW5zaW9uTmFtZXMpKTsKIApAQCAt
MzIzNCwxNiArMzM1Niw2IEBAIHZvaWQgUmVuZGVyZXJWazo6aW5pdEZlYXR1cmVzKERpc3BsYXlW
ayAqZGlzcGxheVZrLAogICAgIC8vIEFuZHJvaWQgbWlzdGFrZW5seSBkZXN0cm95cyB0aGUgb2xk
IHN3YXBjaGFpbiB3aGVuIGNyZWF0aW5nIGEgbmV3IG9uZS4KICAgICBBTkdMRV9GRUFUVVJFX0NP
TkRJVElPTigmbUZlYXR1cmVzLCB3YWl0SWRsZUJlZm9yZVN3YXBjaGFpblJlY3JlYXRpb24sIElz
QW5kcm9pZCgpICYmIGlzQVJNKTsKIAotICAgIGZvciAoc2l6ZV90IGxvZE9mZnNldEZlYXR1cmVJ
ZHggPSAwOwotICAgICAgICAgbG9kT2Zmc2V0RmVhdHVyZUlkeCA8IG1GZWF0dXJlcy5mb3JjZVRl
eHR1cmVMT0RPZmZzZXQuc2l6ZSgpOyBsb2RPZmZzZXRGZWF0dXJlSWR4KyspCi0gICAgewotICAg
ICAgICBBTkdMRV9GRUFUVVJFX0NPTkRJVElPTigmbUZlYXR1cmVzLCBmb3JjZVRleHR1cmVMT0RP
ZmZzZXRbbG9kT2Zmc2V0RmVhdHVyZUlkeF0sIGZhbHNlKTsKLSAgICB9Ci0gICAgQU5HTEVfRkVB
VFVSRV9DT05ESVRJT04oJm1GZWF0dXJlcywgZm9yY2VOZWFyZXN0RmlsdGVyaW5nLCBmYWxzZSk7
Ci0gICAgQU5HTEVfRkVBVFVSRV9DT05ESVRJT04oJm1GZWF0dXJlcywgZm9yY2VOZWFyZXN0TWlw
RmlsdGVyaW5nLCBmYWxzZSk7Ci0KLSAgICBBTkdMRV9GRUFUVVJFX0NPTkRJVElPTigmbUZlYXR1
cmVzLCBjb21wcmVzc1ZlcnRleERhdGEsIGZhbHNlKTsKLQogICAgIC8vIHZrQ21kQ2xlYXJBdHRh
Y2htZW50cyByYWNlcyB3aXRoIGRyYXcgY2FsbHMgb24gUXVhbGNvbW0gaGFyZHdhcmUgYXMgb2Jz
ZXJ2ZWQgb24gUGl4ZWwyIGFuZAogICAgIC8vIFBpeGVsNC4gIGh0dHBzOi8vaXNzdWV0cmFja2Vy
Lmdvb2dsZS5jb20vaXNzdWVzLzE2NjgwOTA5NwogICAgIEFOR0xFX0ZFQVRVUkVfQ09ORElUSU9O
KCZtRmVhdHVyZXMsIHByZWZlckRyYXdDbGVhck92ZXJWa0NtZENsZWFyQXR0YWNobWVudHMsIGlz
UXVhbGNvbW0pOwpAQCAtMzI3Nyw3ICszMzg5LDcgQEAgdm9pZCBSZW5kZXJlclZrOjppbml0RmVh
dHVyZXMoRGlzcGxheVZrICpkaXNwbGF5VmssCiAgICAgLy8gQW5kcm9pZCBwcmV2ZW50cyBjcmVh
dGluZyBzd2FwY2hhaW4gaW1hZ2VzIHdpdGggVktfRk9STUFUX1I4RzhCOF9VTk9STS4KICAgICAv
LyBEbyB0aGlzIGZvciBhbGwgcGxhdGZvcm1zLCBzaW5jZSBmZXcgKG5vbmU/KSBJSFZzIHN1cHBv
cnQgMjQtYml0IGZvcm1hdHMgd2l0aCB0aGVpciBIVwogICAgIC8vIG5hdGl2ZWx5IGFueXdheS4K
LSAgICBBTkdMRV9GRUFUVVJFX0NPTkRJVElPTigmbUZlYXR1cmVzLCBvdmVycmlkZVN1cmZhY2VG
b3JtYXRSR0I4dG9SR0JBOCwgdHJ1ZSk7CisgICAgQU5HTEVfRkVBVFVSRV9DT05ESVRJT04oJm1G
ZWF0dXJlcywgb3ZlcnJpZGVTdXJmYWNlRm9ybWF0UkdCOFRvUkdCQTgsIHRydWUpOwogCiAgICAg
Ly8gaHR0cDovL2FuZ2xlYnVnLmNvbS82ODcyCiAgICAgLy8gT24gQVJNIGhhcmR3YXJlLCBmcmFt
ZWJ1ZmZlci1mZXRjaC1saWtlIGJlaGF2aW9yIG9uIFZ1bGthbiBpcyBhbHJlYWR5IGNvaGVyZW50
LCBzbyB3ZSBjYW4KQEAgLTMzMDUsMTggKzM0MTcsMzMgQEAgdm9pZCBSZW5kZXJlclZrOjppbml0
RmVhdHVyZXMoRGlzcGxheVZrICpkaXNwbGF5VmssCiAgICAgLy8gKHdoaWNoIHdvdWxkIHJlcXVp
cmUgQ2hyb21pdW0gYW5kIENhcHR1cmUvUmVwbGF5IHRlc3QgZXhwZWN0YXRpb25zIHVwZGF0ZXMp
LgogICAgIEFOR0xFX0ZFQVRVUkVfQ09ORElUSU9OKCZtRmVhdHVyZXMsIGVtdWxhdGVEaXRoZXJp
bmcsIElzQW5kcm9pZCgpKTsKIAorICAgIC8vIEdMX0tIUl9ibGVuZF9lcXVhdGlvbl9hZHZhbmNl
ZCBpcyBlbXVsYXRlZCB3aGVuIHRoZSBlcXVpdmFsZW50IFZ1bGthbiBleHRlbnNpb24gaXMgbm90
CisgICAgLy8gdXNhYmxlLiAgQWRkaXRpb25hbGx5LCB0aGUgZm9sbG93aW5nIHBsYXRmb3JtcyBk
b24ndCBzdXBwb3J0IElOUFVUX0FUVEFDSE1FTlQgdXNhZ2UgZm9yIHRoZQorICAgIC8vIHN3YXBj
aGFpbiwgc28gdGhleSBhcmUgZXhjbHVkZWQ6CisgICAgLy8KKyAgICAvLyAtIEludGVsCisgICAg
Ly8KKyAgICAvLyBXaXRob3V0IFZLX0dPT0dMRV9zdXJmYWNlbGVzc19xdWVyeSwgdGhlcmUgaXMg
bm8gd2F5IHRvIGF1dG9tYXRpY2FsbHkgZGVkdWNlIHRoaXMgc3VwcG9ydC4KKyAgICBBTkdMRV9G
RUFUVVJFX0NPTkRJVElPTigmbUZlYXR1cmVzLCBlbXVsYXRlQWR2YW5jZWRCbGVuZEVxdWF0aW9u
cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAhbUZlYXR1cmVzLnN1cHBvcnRzQmxlbmRP
cGVyYXRpb25BZHZhbmNlZC5lbmFibGVkICYmICFpc0ludGVsKTsKKwogICAgIC8vIGh0dHA6Ly9h
bmdsZWJ1Zy5jb20vNjkzMwogICAgIC8vIEFuZHJvaWQgZXhwZWN0cyBWa1ByZXNlbnRSZWdpb25z
S0hSIHJlY3RhbmdsZXMgd2l0aCBhIGJvdHRvbS1sZWZ0IG9yaWdpbiwgd2hpbGUgc3BlYwogICAg
IC8vIHN0YXRlcyB0aGV5IHNob3VsZCBoYXZlIGEgdG9wLWxlZnQgb3JpZ2luLgogICAgIEFOR0xF
X0ZFQVRVUkVfQ09ORElUSU9OKCZtRmVhdHVyZXMsIGJvdHRvbUxlZnRPcmlnaW5QcmVzZW50UmVn
aW9uUmVjdGFuZ2xlcywgSXNBbmRyb2lkKCkpOwogCiAgICAgLy8gUmV0YWluIGRlYnVnIGluZm8g
aW4gU1BJUi1WIGJsb2IuCi0gICAgQU5HTEVfRkVBVFVSRV9DT05ESVRJT04oJm1GZWF0dXJlcywg
cmV0YWluU3BpcnZEZWJ1Z0luZm8sIGdldEVuYWJsZVZhbGlkYXRpb25MYXllcnMoKSk7CisgICAg
QU5HTEVfRkVBVFVSRV9DT05ESVRJT04oJm1GZWF0dXJlcywgcmV0YWluU1BJUlZEZWJ1Z0luZm8s
IGdldEVuYWJsZVZhbGlkYXRpb25MYXllcnMoKSk7CiAKICAgICBBTkdMRV9GRUFUVVJFX0NPTkRJ
VElPTigmbUZlYXR1cmVzLCBnZW5lcmF0ZVNQSVJWVGhyb3VnaEdsc2xhbmcsIGtVc2VTcGlydkdl
blRocm91Z2hHbHNsYW5nKTsKIAotICAgIGFuZ2xlOjpQbGF0Zm9ybU1ldGhvZHMgKnBsYXRmb3Jt
ID0gQU5HTEVQbGF0Zm9ybUN1cnJlbnQoKTsKLSAgICBwbGF0Zm9ybS0+b3ZlcnJpZGVGZWF0dXJl
c1ZrKHBsYXRmb3JtLCAmbUZlYXR1cmVzKTsKKyAgICAvLyBGb3IgZGlzY3JldGUgR1BVcywgbW9z
dCBvZiBkZXZpY2UgbG9jYWwgbWVtb3J5IGlzIGhvc3QgaW52aXNpYmxlLiBXZSBzaG91bGQgbm90
IGZvcmNlIHRoZQorICAgIC8vIGhvc3QgdmlzaWJsZSBmbGFnIGZvciB0aGVtIGFuZCByZXN1bHQg
aW4gYWxsb2NhdGlvbiBmYWlsdXJlLgorICAgIEFOR0xFX0ZFQVRVUkVfQ09ORElUSU9OKCZtRmVh
dHVyZXMsIHByZWZlckRldmljZUxvY2FsTWVtb3J5SG9zdFZpc2libGUsICFpc0Rpc2NyZXRlR1BV
KTsKKworICAgIC8vIFN1cHBvcnQgR0xfUUNPTV9zaGFkaW5nX3JhdGUgZXh0ZW5zaW9uCisgICAg
QU5HTEVfRkVBVFVSRV9DT05ESVRJT04oJm1GZWF0dXJlcywgc3VwcG9ydHNGcmFnbWVudFNoYWRp
bmdSYXRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhblN1cHBvcnRGcmFnbWVudFNo
YWRpbmdSYXRlKGRldmljZUV4dGVuc2lvbk5hbWVzKSk7CiAKICAgICBBcHBseUZlYXR1cmVPdmVy
cmlkZXMoJm1GZWF0dXJlcywgZGlzcGxheVZrLT5nZXRTdGF0ZSgpKTsKIApAQCAtMzY3OSwxMCAr
MzgwNiwzNSBAQCBib29sIFJlbmRlcmVyVms6OmhhdmVTYW1lRm9ybWF0RmVhdHVyZUJpdHMoYW5n
bGU6OkZvcm1hdElEIGZvcm1hdElEMSwKICAgICAgICAgICAgaGFzSW1hZ2VGb3JtYXRGZWF0dXJl
Qml0cyhmb3JtYXRJRDIsIGZtdDFPcHRpbWFsRmVhdHVyZUJpdHMpOwogfQogCit2b2lkIFJlbmRl
cmVyVms6OmFkZEJ1ZmZlckJsb2NrVG9PcnBoYW5MaXN0KHZrOjpCdWZmZXJCbG9jayAqYmxvY2sp
Cit7CisgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2sobUdhcmJhZ2VNdXRleCk7
CisgICAgbU9ycGhhbmVkQnVmZmVyQmxvY2tzLmVtcGxhY2VfYmFjayhibG9jayk7Cit9CisKK3Zv
aWQgUmVuZGVyZXJWazo6cHJ1bmVPcnBoYW5lZEJ1ZmZlckJsb2NrcygpCit7CisgICAgZm9yIChh
dXRvIGl0ZXIgPSBtT3JwaGFuZWRCdWZmZXJCbG9ja3MuYmVnaW4oKTsgaXRlciAhPSBtT3JwaGFu
ZWRCdWZmZXJCbG9ja3MuZW5kKCk7KQorICAgIHsKKyAgICAgICAgaWYgKCEoKml0ZXIpLT5pc0Vt
cHR5KCkpCisgICAgICAgIHsKKyAgICAgICAgICAgICsraXRlcjsKKyAgICAgICAgICAgIGNvbnRp
bnVlOworICAgICAgICB9CisgICAgICAgICgqaXRlciktPmRlc3Ryb3kodGhpcyk7CisgICAgICAg
IGl0ZXIgPSBtT3JwaGFuZWRCdWZmZXJCbG9ja3MuZXJhc2UoaXRlcik7CisgICAgfQorfQorCiBh
bmdsZTo6UmVzdWx0IFJlbmRlcmVyVms6OmNsZWFudXBHYXJiYWdlKFNlcmlhbCBsYXN0Q29tcGxl
dGVkUXVldWVTZXJpYWwpCiB7CiAgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2so
bUdhcmJhZ2VNdXRleCk7CiAKKyAgICBpZiAoIW1PcnBoYW5lZEJ1ZmZlckJsb2Nrcy5lbXB0eSgp
KQorICAgIHsKKyAgICAgICAgcHJ1bmVPcnBoYW5lZEJ1ZmZlckJsb2NrcygpOworICAgIH0KKwog
ICAgIC8vIENsZWFuIHVwIGdlbmVyYWwgZ2FyYmFnZXMKICAgICB3aGlsZSAoIW1TaGFyZWRHYXJi
YWdlLmVtcHR5KCkpCiAgICAgewpAQCAtNDIyMiwzNCArNDM3NCw5IEBAIHZvaWQgUmVuZGVyZXJW
azo6b25EZWFsbG9jYXRlSGFuZGxlKHZrOjpIYW5kbGVUeXBlIGhhbmRsZVR5cGUpCiAKIFZrRGV2
aWNlU2l6ZSBSZW5kZXJlclZrOjpnZXRQcmVmZXJlZEJ1ZmZlckJsb2NrU2l6ZSh1aW50MzJfdCBt
ZW1vcnlUeXBlSW5kZXgpIGNvbnN0CiB7Ci0gICAgLy8gVGhpcyBudW1iZXIgbWF0Y2hlcyBDaHJv
bWl1bSBhbmQgd2FzIHBpY2tlZCBieSBsb29raW5nIGF0IG1lbW9yeSB1c2FnZSBvZgotICAgIC8v
IEFuZHJvaWQgYXBwcy4gVGhlIGFsbG9jYXRvciB3aWxsIHN0YXJ0IG1ha2luZyBibG9ja3MgYXQg
MS84IHRoZSBtYXggc2l6ZQotICAgIC8vIGFuZCBidWlsZHMgdXAgYmxvY2sgc2l6ZSBhcyBuZWVk
ZWQgYmVmb3JlIGNhcHBpbmcgYXQgdGhlIG1heCBzZXQgaGVyZS4KLSAgICBWa0RldmljZVNpemUg
cHJlZmVycmVkQmxvY2tTaXplID0gNCAqIDEwMjQgKiAxMDI0OwotCiAgICAgLy8gVHJ5IG5vdCB0
byBleGNlZWQgMS82NCBvZiBoZWFwIHNpemUgdG8gYmVnaW4gd2l0aC4KICAgICBjb25zdCBWa0Rl
dmljZVNpemUgaGVhcFNpemUgPSBnZXRNZW1vcnlQcm9wZXJ0aWVzKCkuZ2V0SGVhcFNpemVGb3JN
ZW1vcnlUeXBlKG1lbW9yeVR5cGVJbmRleCk7Ci0gICAgcHJlZmVycmVkQmxvY2tTaXplICAgICAg
ICAgID0gc3RkOjptaW4oaGVhcFNpemUgLyA2NCwgcHJlZmVycmVkQmxvY2tTaXplKTsKLQotICAg
IHJldHVybiBwcmVmZXJyZWRCbG9ja1NpemU7Ci19Ci0KLXZrOjpCdWZmZXJQb29sICpSZW5kZXJl
clZrOjpnZXREZWZhdWx0QnVmZmVyUG9vbChWa0RldmljZVNpemUgc2l6ZSwgdWludDMyX3QgbWVt
b3J5VHlwZUluZGV4KQotewotICAgIHJldHVybiB2azo6R2V0RGVmYXVsdEJ1ZmZlclBvb2wobVNt
YWxsQnVmZmVyUG9vbCwgbURlZmF1bHRCdWZmZXJQb29scywgdGhpcywgc2l6ZSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lbW9yeVR5cGVJbmRleCk7Ci19Ci0KLXZvaWQg
UmVuZGVyZXJWazo6cHJ1bmVEZWZhdWx0QnVmZmVyUG9vbHMoKQotewotICAgIG1MYXN0UHJ1bmVU
aW1lID0gYW5nbGU6OkdldEN1cnJlbnRTeXN0ZW1UaW1lKCk7Ci0KLSAgICB2azo6UHJ1bmVEZWZh
dWx0QnVmZmVyUG9vbHModGhpcywgbURlZmF1bHRCdWZmZXJQb29scywgbVNtYWxsQnVmZmVyUG9v
bCk7Ci19Ci0KLWJvb2wgUmVuZGVyZXJWazo6aXNEdWVGb3JCdWZmZXJQb29sUHJ1bmUoKQotewot
ICAgIHJldHVybiB2azo6SXNEdWVGb3JCdWZmZXJQb29sUHJ1bmUobUxhc3RQcnVuZVRpbWUpOwor
ICAgIHJldHVybiBzdGQ6Om1pbihoZWFwU2l6ZSAvIDY0LCBtUHJlZmVycmVkTGFyZ2VIZWFwQmxv
Y2tTaXplKTsKIH0KIAogbmFtZXNwYWNlIHZrCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvdnVsa2FuL1JlbmRlcmVyVmsuaCBiL1NvdXJj
ZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci92dWxrYW4vUmVuZGVyZXJW
ay5oCmluZGV4IDIwN2I3YjlkMmZiYzcyM2ZkYzhlZmQwOTVlNjQ0NDNmM2JjYWRmOTcuLjk2OTUx
MzRiMTE5Nzk2YzJiOTU2M2JjZDlkODUwYTQ1ODU3Yjk2MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9U
aGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci92dWxrYW4vUmVuZGVyZXJWay5o
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci92dWxr
YW4vUmVuZGVyZXJWay5oCkBAIC0zOTMsNiArMzkzLDMxIEBAIGNsYXNzIFJlbmRlcmVyVmsgOiBh
bmdsZTo6Tm9uQ29weWFibGUKICAgICAgICAgfQogICAgIH0KIAorICAgIGFuZ2xlOjpWdWxrYW5Q
ZXJmQ291bnRlcnMgZ2V0Q29tbWFuZFF1ZXVlUGVyZkNvdW50ZXJzKCkKKyAgICB7CisgICAgICAg
IHZrOjpTY29wZWRDb21tYW5kUXVldWVMb2NrIGxvY2sodGhpcywgbUNvbW1hbmRRdWV1ZU11dGV4
KTsKKyAgICAgICAgaWYgKGlzQXN5bmNDb21tYW5kUXVldWVFbmFibGVkKCkpCisgICAgICAgIHsK
KyAgICAgICAgICAgIHJldHVybiBtQ29tbWFuZFByb2Nlc3Nvci5nZXRQZXJmQ291bnRlcnMoKTsK
KyAgICAgICAgfQorICAgICAgICBlbHNlCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBt
Q29tbWFuZFF1ZXVlLmdldFBlcmZDb3VudGVycygpOworICAgICAgICB9CisgICAgfQorICAgIHZv
aWQgcmVzZXRDb21tYW5kUXVldWVQZXJGcmFtZUNvdW50ZXJzKCkKKyAgICB7CisgICAgICAgIHZr
OjpTY29wZWRDb21tYW5kUXVldWVMb2NrIGxvY2sodGhpcywgbUNvbW1hbmRRdWV1ZU11dGV4KTsK
KyAgICAgICAgaWYgKGlzQXN5bmNDb21tYW5kUXVldWVFbmFibGVkKCkpCisgICAgICAgIHsKKyAg
ICAgICAgICAgIG1Db21tYW5kUHJvY2Vzc29yLnJlc2V0UGVyRnJhbWVQZXJmQ291bnRlcnMoKTsK
KyAgICAgICAgfQorICAgICAgICBlbHNlCisgICAgICAgIHsKKyAgICAgICAgICAgIG1Db21tYW5k
UXVldWUucmVzZXRQZXJGcmFtZVBlcmZDb3VudGVycygpOworICAgICAgICB9CisgICAgfQorCiAg
ICAgZWdsOjpEaXNwbGF5ICpnZXREaXNwbGF5KCkgY29uc3QgeyByZXR1cm4gbURpc3BsYXk7IH0K
IAogICAgIFZrUmVzdWx0IGdldExhc3RQcmVzZW50UmVzdWx0KFZrU3dhcGNoYWluS0hSIHN3YXBj
aGFpbikKQEAgLTU0NywxMCArNTcyLDEzIEBAIGNsYXNzIFJlbmRlcmVyVmsgOiBhbmdsZTo6Tm9u
Q29weWFibGUKICAgICAgICAgcmV0dXJuIG1EZXZpY2VMb2NhbFZlcnRleENvbnZlcnNpb25CdWZm
ZXJNZW1vcnlUeXBlSW5kZXg7CiAgICAgfQogCi0gICAgdms6OkJ1ZmZlclBvb2wgKmdldERlZmF1
bHRCdWZmZXJQb29sKFZrRGV2aWNlU2l6ZSBzaXplLCB1aW50MzJfdCBtZW1vcnlUeXBlSW5kZXgp
OworICAgIHZvaWQgYWRkQnVmZmVyQmxvY2tUb09ycGhhbkxpc3Qodms6OkJ1ZmZlckJsb2NrICpi
bG9jayk7CisgICAgdm9pZCBwcnVuZU9ycGhhbmVkQnVmZmVyQmxvY2tzKCk7CiAKLSAgICB2b2lk
IHBydW5lRGVmYXVsdEJ1ZmZlclBvb2xzKCk7Ci0gICAgYm9vbCBpc0R1ZUZvckJ1ZmZlclBvb2xQ
cnVuZSgpOworICAgIGJvb2wgaXNTaGFkaW5nUmF0ZVN1cHBvcnRlZChnbDo6U2hhZGluZ1JhdGUg
c2hhZGluZ1JhdGUpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbVN1cHBvcnRlZEZyYWdt
ZW50U2hhZGluZ1JhdGVzLnRlc3Qoc2hhZGluZ1JhdGUpOworICAgIH0KIAogICBwcml2YXRlOgog
ICAgIGFuZ2xlOjpSZXN1bHQgaW5pdGlhbGl6ZURldmljZShEaXNwbGF5VmsgKmRpc3BsYXlWaywg
dWludDMyX3QgcXVldWVGYW1pbHlJbmRleCk7CkBAIC01NzIsNiArNjAwLDEyIEBAIGNsYXNzIFJl
bmRlcmVyVmsgOiBhbmdsZTo6Tm9uQ29weWFibGUKICAgICBib29sIGhhc0Zvcm1hdEZlYXR1cmVC
aXRzKGFuZ2xlOjpGb3JtYXRJRCBmb3JtYXRJRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IFZrRm9ybWF0RmVhdHVyZUZsYWdzIGZlYXR1cmVCaXRzKSBjb25zdDsKIAorICAg
IC8vIEluaXRpYWxpemUgVk1BIGFsbG9jYXRvciBhbmQgYnVmZmVyIHN1YmFsbG9jYXRvciByZWxh
dGVkIGRhdGEuCisgICAgYW5nbGU6OlJlc3VsdCBpbml0aWFsaXplTWVtb3J5QWxsb2NhdG9yKERp
c3BsYXlWayAqZGlzcGxheVZrKTsKKworICAgIC8vIFF1ZXJ5IGFuZCBjYWNoZSBzdXBwb3J0ZWQg
ZnJhZ21lbnQgc2hhZGluZyByYXRlcworICAgIGJvb2wgY2FuU3VwcG9ydEZyYWdtZW50U2hhZGlu
Z1JhdGUoY29uc3Qgdms6OkV4dGVuc2lvbk5hbWVMaXN0ICZkZXZpY2VFeHRlbnNpb25OYW1lcyk7
CisKICAgICBlZ2w6OkRpc3BsYXkgKm1EaXNwbGF5OwogCiAgICAgdm9pZCAqbUxpYlZ1bGthbkxp
YnJhcnk7CkBAIC02MjQsOCArNjU4LDkgQEAgY2xhc3MgUmVuZGVyZXJWayA6IGFuZ2xlOjpOb25D
b3B5YWJsZQogICAgIFZrUGh5c2ljYWxEZXZpY2VIb3N0UXVlcnlSZXNldEZlYXR1cmVzRVhUIG1I
b3N0UXVlcnlSZXNldEZlYXR1cmVzOwogICAgIFZrUGh5c2ljYWxEZXZpY2VEZXB0aENsaXBDb250
cm9sRmVhdHVyZXNFWFQgbURlcHRoQ2xpcENvbnRyb2xGZWF0dXJlczsKICAgICBWa1BoeXNpY2Fs
RGV2aWNlQmxlbmRPcGVyYXRpb25BZHZhbmNlZEZlYXR1cmVzRVhUIG1CbGVuZE9wZXJhdGlvbkFk
dmFuY2VkRmVhdHVyZXM7Ci0gICAgVmtQaHlzaWNhbERldmljZUJsZW5kT3BlcmF0aW9uQWR2YW5j
ZWRQcm9wZXJ0aWVzRVhUIG1CbGVuZE9wZXJhdGlvbkFkdmFuY2VkUHJvcGVydGllczsKICAgICBW
a1BoeXNpY2FsRGV2aWNlU2FtcGxlclljYmNyQ29udmVyc2lvbkZlYXR1cmVzIG1TYW1wbGVyWWNi
Y3JDb252ZXJzaW9uRmVhdHVyZXM7CisgICAgVmtQaHlzaWNhbERldmljZUZyYWdtZW50U2hhZGlu
Z1JhdGVGZWF0dXJlc0tIUiBtRnJhZ21lbnRTaGFkaW5nUmF0ZUZlYXR1cmVzOworICAgIGFuZ2xl
OjpQYWNrZWRFbnVtQml0U2V0PGdsOjpTaGFkaW5nUmF0ZSwgdWludDhfdD4gbVN1cHBvcnRlZEZy
YWdtZW50U2hhZGluZ1JhdGVzOwogICAgIHN0ZDo6dmVjdG9yPFZrUXVldWVGYW1pbHlQcm9wZXJ0
aWVzPiBtUXVldWVGYW1pbHlQcm9wZXJ0aWVzOwogICAgIHVpbnQzMl90IG1NYXhWZXJ0ZXhBdHRy
aWJEaXZpc29yOwogICAgIHVpbnQzMl90IG1DdXJyZW50UXVldWVGYW1pbHlJbmRleDsKQEAgLTY0
OSwyMSArNjg0LDI4IEBAIGNsYXNzIFJlbmRlcmVyVmsgOiBhbmdsZTo6Tm9uQ29weWFibGUKICAg
ICB2azo6U2hhcmVkQnVmZmVyU3ViYWxsb2NhdGlvbkdhcmJhZ2VMaXN0IG1TdWJhbGxvY2F0aW9u
R2FyYmFnZTsKICAgICB2azo6U2hhcmVkQnVmZmVyU3ViYWxsb2NhdGlvbkdhcmJhZ2VMaXN0IG1Q
ZW5kaW5nU3VibWlzc2lvblN1YmFsbG9jYXRpb25HYXJiYWdlOwogCi0gICAgdms6Ok1lbW9yeVBy
b3BlcnRpZXMgbU1lbW9yeVByb3BlcnRpZXM7CiAgICAgdms6OkZvcm1hdFRhYmxlIG1Gb3JtYXRU
YWJsZTsKKyAgICAvLyBBIGNhY2hlIG9mIFZrRm9ybWF0UHJvcGVydGllcyBhcyBxdWVyaWVkIGZy
b20gdGhlIGRldmljZSBvdmVyIHRpbWUuCisgICAgbXV0YWJsZSBhbmdsZTo6Rm9ybWF0TWFwPFZr
Rm9ybWF0UHJvcGVydGllcz4gbUZvcm1hdFByb3BlcnRpZXM7CisKKyAgICB2azo6QWxsb2NhdG9y
IG1BbGxvY2F0b3I7CisgICAgdms6Ok1lbW9yeVByb3BlcnRpZXMgbU1lbW9yeVByb3BlcnRpZXM7
CisgICAgVmtEZXZpY2VTaXplIG1QcmVmZXJyZWRMYXJnZUhlYXBCbG9ja1NpemU7CiAKICAgICAv
LyBUaGUgZGVmYXVsdCBhbGlnbm1lbnQgZm9yIEJ1ZmZlclZrIG9iamVjdAogICAgIHNpemVfdCBt
RGVmYXVsdEJ1ZmZlckFsaWdubWVudDsKLQogICAgIC8vIFRoZSBjYWNoZWQgbWVtb3J5IHR5cGUg
aW5kZXggZm9yIHN0YWdpbmcgYnVmZmVyIHRoYXQgaXMgaG9zdCB2aXNpYmxlLgogICAgIHVpbnQz
Ml90IG1Db2hlcmVudFN0YWdpbmdCdWZmZXJNZW1vcnlUeXBlSW5kZXg7CiAgICAgdWludDMyX3Qg
bU5vbkNvaGVyZW50U3RhZ2luZ0J1ZmZlck1lbW9yeVR5cGVJbmRleDsKICAgICBzaXplX3QgbVN0
YWdpbmdCdWZmZXJBbGlnbm1lbnQ7Ci0KKyAgICAvLyBGb3IgdmVydGV4IGNvbnZlcnNpb24gYnVm
ZmVycwogICAgIHVpbnQzMl90IG1Ib3N0VmlzaWJsZVZlcnRleENvbnZlcnNpb25CdWZmZXJNZW1v
cnlUeXBlSW5kZXg7CiAgICAgdWludDMyX3QgbURldmljZUxvY2FsVmVydGV4Q29udmVyc2lvbkJ1
ZmZlck1lbW9yeVR5cGVJbmRleDsKICAgICBzaXplX3QgbVZlcnRleENvbnZlcnNpb25CdWZmZXJB
bGlnbm1lbnQ7CiAKKyAgICAvLyBIb2xkcyBvcnBoYW5lZCBCdWZmZXJCbG9ja3Mgd2hlbiBTaGFy
ZUdyb3VwIGdldHMgZGVzdHJveWVkCisgICAgdms6OkJ1ZmZlckJsb2NrUG9pbnRlclZlY3RvciBt
T3JwaGFuZWRCdWZmZXJCbG9ja3M7CisKICAgICAvLyBBbGwgYWNjZXNzIHRvIHRoZSBwaXBlbGlu
ZSBjYWNoZSBpcyBkb25lIHRocm91Z2ggRUdMIG9iamVjdHMgc28gaXQgaXMgdGhyZWFkIHNhZmUg
dG8gbm90IHVzZQogICAgIC8vIGEgbG9jay4KICAgICBzdGQ6Om11dGV4IG1QaXBlbGluZUNhY2hl
TXV0ZXg7CkBAIC02NzIsOSArNzE0LDYgQEAgY2xhc3MgUmVuZGVyZXJWayA6IGFuZ2xlOjpOb25D
b3B5YWJsZQogICAgIGJvb2wgbVBpcGVsaW5lQ2FjaGVEaXJ0eTsKICAgICBib29sIG1QaXBlbGlu
ZUNhY2hlSW5pdGlhbGl6ZWQ7CiAKLSAgICAvLyBBIGNhY2hlIG9mIFZrRm9ybWF0UHJvcGVydGll
cyBhcyBxdWVyaWVkIGZyb20gdGhlIGRldmljZSBvdmVyIHRpbWUuCi0gICAgbXV0YWJsZSBhbmds
ZTo6Rm9ybWF0TWFwPFZrRm9ybWF0UHJvcGVydGllcz4gbUZvcm1hdFByb3BlcnRpZXM7Ci0KICAg
ICAvLyBMYXRlc3QgdmFsaWRhdGlvbiBkYXRhIGZvciBkZWJ1ZyBvdmVybGF5LgogICAgIHN0ZDo6
c3RyaW5nIG1MYXN0VmFsaWRhdGlvbk1lc3NhZ2U7CiAgICAgdWludDMyX3QgbVZhbGlkYXRpb25N
ZXNzYWdlQ291bnQ7CkBAIC02ODMsOCArNzIyLDYgQEAgY2xhc3MgUmVuZGVyZXJWayA6IGFuZ2xl
OjpOb25Db3B5YWJsZQogICAgIC8vIGZpbHRlcmluZy4KICAgICBib29sIG1Jc0ZyYW1lYnVmZmVy
RmV0Y2hVc2VkOwogCi0gICAgRGVidWdBbm5vdGF0b3JWayBtQW5ub3RhdG9yOwotCiAgICAgLy8g
SG93IGNsb3NlIHRvIFZrUGh5c2ljYWxEZXZpY2VMaW1pdHM6Om1heE1lbW9yeUFsbG9jYXRpb25D
b3VudCB3ZSBhbGxvdyBvdXJzZWx2ZXMgdG8gZ2V0CiAgICAgc3RhdGljIGNvbnN0ZXhwciBkb3Vi
bGUga1BlcmNlbnRNYXhNZW1vcnlBbGxvY2F0aW9uQ291bnQgPSAwLjM7CiAgICAgLy8gSG93IG1h
bnkgb2JqZWN0cyB0byBnYXJiYWdlIGNvbGxlY3QgYmVmb3JlIGlzc3VpbmcgYSBmbHVzaCgpCkBA
IC03MTUsNyArNzUyLDYgQEAgY2xhc3MgUmVuZGVyZXJWayA6IGFuZ2xlOjpOb25Db3B5YWJsZQog
ICAgIHZrOjpDb21tYW5kQnVmZmVyUmVjeWNsZXI8dms6OlJlbmRlclBhc3NDb21tYW5kQnVmZmVy
LCB2azo6UmVuZGVyUGFzc0NvbW1hbmRCdWZmZXJIZWxwZXI+CiAgICAgICAgIG1SZW5kZXJQYXNz
Q29tbWFuZEJ1ZmZlclJlY3ljbGVyOwogCi0gICAgdms6OkFsbG9jYXRvciBtQWxsb2NhdG9yOwog
ICAgIFNhbXBsZXJDYWNoZSBtU2FtcGxlckNhY2hlOwogICAgIFNhbXBsZXJZY2JjckNvbnZlcnNp
b25DYWNoZSBtWXV2Q29udmVyc2lvbkNhY2hlOwogICAgIGFuZ2xlOjpIYXNoTWFwPFZrRm9ybWF0
LCB1aW50MzJfdD4gbVZrRm9ybWF0RGVzY3JpcHRvckNvdW50TWFwOwpAQCAtNzI1LDggKzc2MSwx
MiBAQCBjbGFzcyBSZW5kZXJlclZrIDogYW5nbGU6Ok5vbkNvcHlhYmxlCiAgICAgLy8gVHJhY2tz
IHJlc291cmNlIHNlcmlhbHMuCiAgICAgdms6OlJlc291cmNlU2VyaWFsRmFjdG9yeSBtUmVzb3Vy
Y2VTZXJpYWxGYWN0b3J5OwogCisgICAgLy8gQXBwbGljYXRpb24gZXhlY3V0YWJsZSBpbmZvcm1h
dGlvbgorICAgIFZrQXBwbGljYXRpb25JbmZvIG1BcHBsaWNhdGlvbkluZm87CiAgICAgLy8gUHJv
Y2VzcyBHUFUgbWVtb3J5IHJlcG9ydHMKICAgICB2azo6TWVtb3J5UmVwb3J0IG1NZW1vcnlSZXBv
cnQ7CisgICAgLy8gSGVscGVycyBmb3IgYWRkaW5nIHRyYWNlIGFubm90YXRpb25zCisgICAgRGVi
dWdBbm5vdGF0b3JWayBtQW5ub3RhdG9yOwogCiAgICAgLy8gU3RhdHMgYWJvdXQgYWxsIFZ1bGth
biBvYmplY3QgY2FjaGVzCiAgICAgdXNpbmcgVnVsa2FuQ2FjaGVTdGF0cyA9IGFuZ2xlOjpQYWNr
ZWRFbnVtTWFwPFZ1bGthbkNhY2hlVHlwZSwgQ2FjaGVTdGF0cz47CkBAIC03NDksMTIgKzc4OSw2
IEBAIGNsYXNzIFJlbmRlcmVyVmsgOiBhbmdsZTo6Tm9uQ29weWFibGUKIAogICAgIHZrOjpFeHRl
bnNpb25OYW1lTGlzdCBtRW5hYmxlZEluc3RhbmNlRXh0ZW5zaW9uczsKICAgICB2azo6RXh0ZW5z
aW9uTmFtZUxpc3QgbUVuYWJsZWREZXZpY2VFeHRlbnNpb25zOwotCi0gICAgdms6OkJ1ZmZlclBv
b2xQb2ludGVyQXJyYXkgbURlZmF1bHRCdWZmZXJQb29sczsKLQotICAgIHN0ZDo6dW5pcXVlX3B0
cjx2azo6QnVmZmVyUG9vbD4gbVNtYWxsQnVmZmVyUG9vbDsKLQotICAgIGRvdWJsZSBtTGFzdFBy
dW5lVGltZTsKIH07CiAKIH0gIC8vIG5hbWVzcGFjZSByeApkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL3Z1bGthbi9SZXNvdXJjZVZrLmNw
cCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci92dWxrYW4v
UmVzb3VyY2VWay5jcHAKaW5kZXggZjQ0OTkyODI2ZGFhMjcxOTM4NjA3MDZjMTNiMDU4ZjZmOGU0
YTliYi4uNDM3MjlkNDhhNjM1YTBhYWUwY2ZlMzFhY2ZiYmVlNDZhZjk3YmZhMCAxMDA2NDQKLS0t
IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL3Z1bGthbi9S
ZXNvdXJjZVZrLmNwcAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUv
cmVuZGVyZXIvdnVsa2FuL1Jlc291cmNlVmsuY3BwCkBAIC0yMDAsMTYgKzIwMCw2IEBAIFJlc291
cmNlVXNlTGlzdDo6flJlc291cmNlVXNlTGlzdCgpCiAgICAgQVNTRVJUKG1SZXNvdXJjZVVzZXMu
ZW1wdHkoKSk7CiB9CiAKLXZvaWQgUmVzb3VyY2VVc2VMaXN0Ojpjb3B5KFJlc291cmNlVXNlTGlz
dCAmc3JjUmVzb3VyY2VVc2UpCi17Ci0gICAgc2l6ZV90IHNpemUgPSBzcmNSZXNvdXJjZVVzZS5t
UmVzb3VyY2VVc2VzLnNpemUoKTsKLSAgICBtUmVzb3VyY2VVc2VzLnJlc2l6ZShzaXplKTsKLSAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7IGkrKykKLSAgICB7Ci0gICAgICAgIG1SZXNv
dXJjZVVzZXNbaV0uY29weShzcmNSZXNvdXJjZVVzZS5tUmVzb3VyY2VVc2VzW2ldKTsKLSAgICB9
Ci19Ci0KIFJlc291cmNlVXNlTGlzdCAmUmVzb3VyY2VVc2VMaXN0OjpvcGVyYXRvcj0oUmVzb3Vy
Y2VVc2VMaXN0ICYmcmhzKQogewogICAgIHN0ZDo6c3dhcChtUmVzb3VyY2VVc2VzLCByaHMubVJl
c291cmNlVXNlcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGli
QU5HTEUvcmVuZGVyZXIvdnVsa2FuL1Jlc291cmNlVmsuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FO
R0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci92dWxrYW4vUmVzb3VyY2VWay5oCmluZGV4IDAzMmMw
Mzg5MzhmYmM0NTI0Y2Y1NTIxMzQ4YzU5NWUyZDBhZjc2MTUuLjA4YmQxNTM3N2ExN2JkNmU4MjBk
YjhiMDkwNGE4YjY3ZGI5YTFjMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xF
L3NyYy9saWJBTkdMRS9yZW5kZXJlci92dWxrYW4vUmVzb3VyY2VWay5oCisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci92dWxrYW4vUmVzb3VyY2VWay5o
CkBAIC00NSwxMiArNDUsNiBAQCBjbGFzcyBTaGFyZWRSZXNvdXJjZVVzZSBmaW5hbCA6IGFuZ2xl
OjpOb25Db3B5YWJsZQogICAgICAgICByZXR1cm4gKnRoaXM7CiAgICAgfQogCi0gICAgdm9pZCBj
b3B5KFNoYXJlZFJlc291cmNlVXNlICZzcmMpCi0gICAgewotICAgICAgICBtVXNlID0gc3JjLm1V
c2U7Ci0gICAgICAgIG1Vc2UtPmNvdW50ZXIrKzsKLSAgICB9Ci0KICAgICBBTkdMRV9JTkxJTkUg
Ym9vbCB2YWxpZCgpIGNvbnN0IHsgcmV0dXJuIG1Vc2UgIT0gbnVsbHB0cjsgfQogCiAgICAgdm9p
ZCBpbml0KCkKQEAgLTE3OCw3ICsxNzIsNiBAQCBjbGFzcyBSZXNvdXJjZVVzZUxpc3QgZmluYWwg
OiBhbmdsZTo6Tm9uQ29weWFibGUKICAgICBSZXNvdXJjZVVzZUxpc3QgJm9wZXJhdG9yPShSZXNv
dXJjZVVzZUxpc3QgJiZyaHMpOwogCiAgICAgdm9pZCBhZGQoY29uc3QgU2hhcmVkUmVzb3VyY2VV
c2UgJnJlc291cmNlVXNlKTsKLSAgICB2b2lkIGNvcHkoUmVzb3VyY2VVc2VMaXN0ICZzcmNSZXNv
dXJjZVVzZSk7CiAKICAgICB2b2lkIHJlbGVhc2VSZXNvdXJjZVVzZXMoKTsKICAgICB2b2lkIHJl
bGVhc2VSZXNvdXJjZVVzZXNBbmRVcGRhdGVTZXJpYWxzKFNlcmlhbCBzZXJpYWwpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL3Z1bGth
bi9TZWNvbmRhcnlDb21tYW5kQnVmZmVyLmNwcCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3Ny
Yy9saWJBTkdMRS9yZW5kZXJlci92dWxrYW4vU2Vjb25kYXJ5Q29tbWFuZEJ1ZmZlci5jcHAKaW5k
ZXggNTFiMTQxN2Y0YWQ4ZTBlOWUxYmNjZmEzMGZjM2UxM2U1NGI4ZWEyNi4uZmEyYWVlNmZjMjM4
NmU4OTRhNTVlMGE0MjkzNjA1MWE2ZGEwM2U1NyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL3Z1bGthbi9TZWNvbmRhcnlDb21tYW5kQnVm
ZmVyLmNwcAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVy
ZXIvdnVsa2FuL1NlY29uZGFyeUNvbW1hbmRCdWZmZXIuY3BwCkBAIC0xMjIsNiArMTIyLDggQEAg
Y29uc3QgY2hhciAqR2V0Q29tbWFuZFN0cmluZyhDb21tYW5kSUQgaWQpCiAgICAgICAgICAgICBy
ZXR1cm4gIldhaXRFdmVudHMiOwogICAgICAgICBjYXNlIENvbW1hbmRJRDo6V3JpdGVUaW1lc3Rh
bXA6CiAgICAgICAgICAgICByZXR1cm4gIldyaXRlVGltZXN0YW1wIjsKKyAgICAgICAgY2FzZSBD
b21tYW5kSUQ6OlNldFNoYWRpbmdSYXRlOgorICAgICAgICAgICAgcmV0dXJuICJTZXRTaGFkaW5n
UmF0ZSI7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAvLyBOZWVkIHRoaXMgdG8gd29y
ayBhcm91bmQgTVNWQyB3YXJuaW5nIDQ3MTUuCiAgICAgICAgICAgICBVTlJFQUNIQUJMRSgpOwpA
QCAtNTc1LDYgKzU3NywxNyBAQCB2b2lkIFNlY29uZGFyeUNvbW1hbmRCdWZmZXI6OmV4ZWN1dGVD
b21tYW5kcyhQcmltYXJ5Q29tbWFuZEJ1ZmZlciAqcHJpbWFyeSkKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMtPnF1ZXJ5KTsKICAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNhc2UgQ29tbWFu
ZElEOjpTZXRTaGFkaW5nUmF0ZToKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IFNldFNoYWRpbmdSYXRlUGFyYW1zICpwYXJhbXMgPQorICAgICAgICAgICAgICAg
ICAgICAgICAgZ2V0UGFyYW1QdHI8U2V0U2hhZGluZ1JhdGVQYXJhbXM+KGN1cnJlbnRDb21tYW5k
KTsKKyAgICAgICAgICAgICAgICAgICAgY29uc3QgVmtFeHRlbnQyRCBmcmFnbWVudFNpemUgPSB7
cGFyYW1zLT5mcmFnbWVudFdpZHRoLCBwYXJhbXMtPmZyYWdtZW50SGVpZ2h0fTsKKyAgICAgICAg
ICAgICAgICAgICAgY29uc3QgVmtGcmFnbWVudFNoYWRpbmdSYXRlQ29tYmluZXJPcEtIUiBvcHNb
Ml0gPSB7CisgICAgICAgICAgICAgICAgICAgICAgICBWS19GUkFHTUVOVF9TSEFESU5HX1JBVEVf
Q09NQklORVJfT1BfS0VFUF9LSFIsCisgICAgICAgICAgICAgICAgICAgICAgICBWS19GUkFHTUVO
VF9TSEFESU5HX1JBVEVfQ09NQklORVJfT1BfS0VFUF9LSFJ9OworICAgICAgICAgICAgICAgICAg
ICB2a0NtZFNldEZyYWdtZW50U2hhZGluZ1JhdGVLSFIoY21kQnVmZmVyLCAmZnJhZ21lbnRTaXpl
LCBvcHMpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgIFVOUkVBQ0hBQkxFKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdM
RS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvdnVsa2FuL1NlY29uZGFyeUNvbW1hbmRCdWZmZXIuaCBi
L1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci92dWxrYW4vU2Vj
b25kYXJ5Q29tbWFuZEJ1ZmZlci5oCmluZGV4IDQxODBlYmIzNTIxZjdlYmMzNzgwZDc3YzM5ZDc5
YjRlMTBmZmZjZDIuLmI1NWU4NGNjOTYwMGE4NmM5YjUyZDAxZjU1OTFiZGQ2ODliNWVjNWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci92
dWxrYW4vU2Vjb25kYXJ5Q29tbWFuZEJ1ZmZlci5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FO
R0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci92dWxrYW4vU2Vjb25kYXJ5Q29tbWFuZEJ1ZmZlci5o
CkBAIC04Myw2ICs4Myw3IEBAIGVudW0gY2xhc3MgQ29tbWFuZElEIDogdWludDE2X3QKICAgICBT
ZXRWaWV3cG9ydCwKICAgICBXYWl0RXZlbnRzLAogICAgIFdyaXRlVGltZXN0YW1wLAorICAgIFNl
dFNoYWRpbmdSYXRlLAogfTsKIAogI2RlZmluZSBWRVJJRllfNF9CWVRFX0FMSUdOTUVOVChTdHJ1
Y3ROYW1lKSBcCkBAIC00NDgsNiArNDQ5LDEzIEBAIHN0cnVjdCBXcml0ZVRpbWVzdGFtcFBhcmFt
cwogfTsKIFZFUklGWV80X0JZVEVfQUxJR05NRU5UKFdyaXRlVGltZXN0YW1wUGFyYW1zKQogCitz
dHJ1Y3QgU2V0U2hhZGluZ1JhdGVQYXJhbXMKK3sKKyAgICB1aW50MTZfdCBmcmFnbWVudFdpZHRo
OworICAgIHVpbnQxNl90IGZyYWdtZW50SGVpZ2h0OworfTsKK1ZFUklGWV80X0JZVEVfQUxJR05N
RU5UKFNldFNoYWRpbmdSYXRlUGFyYW1zKQorCiAvLyBIZWFkZXIgZm9yIGV2ZXJ5IGNtZCBpbiBj
dXN0b20gY21kIGJ1ZmZlcgogc3RydWN0IENvbW1hbmRIZWFkZXIKIHsKQEAgLTY5MSw2ICs2OTks
OCBAQCBjbGFzcyBTZWNvbmRhcnlDb21tYW5kQnVmZmVyIGZpbmFsIDogYW5nbGU6Ok5vbkNvcHlh
YmxlCiAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBRdWVyeVBvb2wgJnF1ZXJ5UG9vbCwK
ICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IHF1ZXJ5KTsKIAorICAgIHZvaWQgc2V0
U2hhZGluZ1JhdGUoY29uc3QgVmtFeHRlbnQyRCAqZnJhZ21lbnRTaXplLCBWa0ZyYWdtZW50U2hh
ZGluZ1JhdGVDb21iaW5lck9wS0hSIG9wc1syXSk7CisKICAgICAvLyBOby1vcCBmb3IgY29tcGF0
aWJpbGl0eQogICAgIFZrUmVzdWx0IGVuZCgpIHsgcmV0dXJuIFZLX1NVQ0NFU1M7IH0KIApAQCAt
MTUxNCw2ICsxNTI0LDI1IEBAIEFOR0xFX0lOTElORSB2b2lkIFNlY29uZGFyeUNvbW1hbmRCdWZm
ZXI6OndyaXRlVGltZXN0YW1wKFZrUGlwZWxpbmVTdGFnZUZsYWdCaXRzCiAgICAgcGFyYW1TdHJ1
Y3QtPnF1ZXJ5UG9vbCAgICAgPSBxdWVyeVBvb2wuZ2V0SGFuZGxlKCk7CiAgICAgcGFyYW1TdHJ1
Y3QtPnF1ZXJ5ICAgICAgICAgPSBxdWVyeTsKIH0KKworQU5HTEVfSU5MSU5FIHZvaWQgU2Vjb25k
YXJ5Q29tbWFuZEJ1ZmZlcjo6c2V0U2hhZGluZ1JhdGUoY29uc3QgVmtFeHRlbnQyRCAqZnJhZ21l
bnRTaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgVmtGcmFnbWVudFNoYWRpbmdSYXRlQ29tYmluZXJPcEtIUiBvcHNbMl0pCit7Cisg
ICAgQVNTRVJUKGZyYWdtZW50U2l6ZSAhPSBudWxscHRyKTsKKworICAgIC8vIFN1cHBvcnRlZCBw
YXJhbWV0ZXIgdmFsdWVzIC0KKyAgICAvLyAxLiBDb21iaW5lck9wIG5lZWRzIHRvIGJlIFZLX0ZS
QUdNRU5UX1NIQURJTkdfUkFURV9DT01CSU5FUl9PUF9LRUVQX0tIUgorICAgIC8vIDIuIFRoZSBs
YXJnZXN0IGZyYWdtZW50IHNpemUgc3VwcG9ydGVkIGlzIDR4NAorICAgIEFTU0VSVChvcHNbMF0g
PT0gVktfRlJBR01FTlRfU0hBRElOR19SQVRFX0NPTUJJTkVSX09QX0tFRVBfS0hSKTsKKyAgICBB
U1NFUlQob3BzWzFdID09IFZLX0ZSQUdNRU5UX1NIQURJTkdfUkFURV9DT01CSU5FUl9PUF9LRUVQ
X0tIUik7CisgICAgQVNTRVJUKGZyYWdtZW50U2l6ZS0+d2lkdGggPD0gNCk7CisgICAgQVNTRVJU
KGZyYWdtZW50U2l6ZS0+aGVpZ2h0IDw9IDQpOworCisgICAgU2V0U2hhZGluZ1JhdGVQYXJhbXMg
KnBhcmFtU3RydWN0ID0KKyAgICAgICAgaW5pdENvbW1hbmQ8U2V0U2hhZGluZ1JhdGVQYXJhbXM+
KENvbW1hbmRJRDo6U2V0U2hhZGluZ1JhdGUpOworICAgIHBhcmFtU3RydWN0LT5mcmFnbWVudFdp
ZHRoICA9IHN0YXRpY19jYXN0PHVpbnQxNl90PihmcmFnbWVudFNpemUtPndpZHRoKTsKKyAgICBw
YXJhbVN0cnVjdC0+ZnJhZ21lbnRIZWlnaHQgPSBzdGF0aWNfY2FzdDx1aW50MTZfdD4oZnJhZ21l
bnRTaXplLT5oZWlnaHQpOworfQogfSAgLy8gbmFtZXNwYWNlIHByaXYKIH0gIC8vIG5hbWVzcGFj
ZSB2awogfSAgLy8gbmFtZXNwYWNlIHJ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9B
TkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvdnVsa2FuL1NlbWFwaG9yZVZrLmNwcCBiL1NvdXJj
ZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci92dWxrYW4vU2VtYXBob3Jl
VmsuY3BwCmluZGV4IGJhODNlNzUzMGFjYjE2M2M2ZDEyMWNkNDNlYjc2NzdmNGNiOTQ4NzkuLjgx
MThlMTIyYTc1MDkyYWUxNmYyNjExMmRlMmE2MTc2M2FhOTk0NWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci92dWxrYW4vU2VtYXBob3Jl
VmsuY3BwCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJl
ci92dWxrYW4vU2VtYXBob3JlVmsuY3BwCkBAIC04MSw4ICs4MSwxMCBAQCBhbmdsZTo6UmVzdWx0
IFNlbWFwaG9yZVZrOjp3YWl0KGdsOjpDb250ZXh0ICpjb250ZXh0LAogICAgICAgICAgICAgQnVm
ZmVyVmsgKmJ1ZmZlclZrICAgICAgICAgICAgID0gdms6OkdldEltcGwoYnVmZmVyKTsKICAgICAg
ICAgICAgIHZrOjpCdWZmZXJIZWxwZXIgJmJ1ZmZlckhlbHBlciA9IGJ1ZmZlclZrLT5nZXRCdWZm
ZXIoKTsKIAorICAgICAgICAgICAgdms6OkNvbW1hbmRCdWZmZXJBY2Nlc3MgYWNjZXNzOwogICAg
ICAgICAgICAgdms6Ok91dHNpZGVSZW5kZXJQYXNzQ29tbWFuZEJ1ZmZlciAqY29tbWFuZEJ1ZmZl
cjsKLSAgICAgICAgICAgIEFOR0xFX1RSWShjb250ZXh0VmstPmdldE91dHNpZGVSZW5kZXJQYXNz
Q29tbWFuZEJ1ZmZlcih7fSwgJmNvbW1hbmRCdWZmZXIpKTsKKyAgICAgICAgICAgIGFjY2Vzcy5v
bkJ1ZmZlckV4dGVybmFsQWNxdWlyZVJlbGVhc2UoJmJ1ZmZlckhlbHBlcik7CisgICAgICAgICAg
ICBBTkdMRV9UUlkoY29udGV4dFZrLT5nZXRPdXRzaWRlUmVuZGVyUGFzc0NvbW1hbmRCdWZmZXIo
YWNjZXNzLCAmY29tbWFuZEJ1ZmZlcikpOwogCiAgICAgICAgICAgICAvLyBRdWV1ZSBvd25lcnNo
aXAgdHJhbnNmZXIuCiAgICAgICAgICAgICBidWZmZXJIZWxwZXIuYWNxdWlyZUZyb21FeHRlcm5h
bChjb250ZXh0VmssIFZLX1FVRVVFX0ZBTUlMWV9FWFRFUk5BTCwKQEAgLTEwMSw4ICsxMDMsMTAg
QEAgYW5nbGU6OlJlc3VsdCBTZW1hcGhvcmVWazo6d2FpdChnbDo6Q29udGV4dCAqY29udGV4dCwK
ICAgICAgICAgICAgIHZrOjpJbWFnZUhlbHBlciAmaW1hZ2UgPSB0ZXh0dXJlVmstPmdldEltYWdl
KCk7CiAgICAgICAgICAgICB2azo6SW1hZ2VMYXlvdXQgbGF5b3V0ID0gdms6OkdldEltYWdlTGF5
b3V0RnJvbUdMSW1hZ2VMYXlvdXQodGV4dHVyZUJhcnJpZXIubGF5b3V0KTsKIAorICAgICAgICAg
ICAgdms6OkNvbW1hbmRCdWZmZXJBY2Nlc3MgYWNjZXNzOwogICAgICAgICAgICAgdms6Ok91dHNp
ZGVSZW5kZXJQYXNzQ29tbWFuZEJ1ZmZlciAqY29tbWFuZEJ1ZmZlcjsKLSAgICAgICAgICAgIEFO
R0xFX1RSWShjb250ZXh0VmstPmdldE91dHNpZGVSZW5kZXJQYXNzQ29tbWFuZEJ1ZmZlcih7fSwg
JmNvbW1hbmRCdWZmZXIpKTsKKyAgICAgICAgICAgIGFjY2Vzcy5vbkV4dGVybmFsQWNxdWlyZVJl
bGVhc2UoJmltYWdlKTsKKyAgICAgICAgICAgIEFOR0xFX1RSWShjb250ZXh0VmstPmdldE91dHNp
ZGVSZW5kZXJQYXNzQ29tbWFuZEJ1ZmZlcihhY2Nlc3MsICZjb21tYW5kQnVmZmVyKSk7CiAKICAg
ICAgICAgICAgIC8vIEltYWdlIHNob3VsZCBub3QgYmUgYWNjZXNzZWQgd2hpbGUgdW5vd25lZC4g
RW11bGF0ZWQgZm9ybWF0cyBtYXkgaGF2ZSBzdGFnZWQgdXBkYXRlcwogICAgICAgICAgICAgLy8g
dG8gY2xlYXIgdGhlIGltYWdlIGFmdGVyIGluaXRpYWxpemF0aW9uLgpAQCAtMTM2LDggKzE0MCwx
MCBAQCBhbmdsZTo6UmVzdWx0IFNlbWFwaG9yZVZrOjpzaWduYWwoZ2w6OkNvbnRleHQgKmNvbnRl
eHQsCiAgICAgICAgICAgICB2azo6QnVmZmVySGVscGVyICZidWZmZXJIZWxwZXIgPSBidWZmZXJW
ay0+Z2V0QnVmZmVyKCk7CiAKICAgICAgICAgICAgIEFOR0xFX1RSWShjb250ZXh0VmstPm9uQnVm
ZmVyUmVsZWFzZVRvRXh0ZXJuYWwoYnVmZmVySGVscGVyKSk7CisgICAgICAgICAgICB2azo6Q29t
bWFuZEJ1ZmZlckFjY2VzcyBhY2Nlc3M7CiAgICAgICAgICAgICB2azo6T3V0c2lkZVJlbmRlclBh
c3NDb21tYW5kQnVmZmVyICpjb21tYW5kQnVmZmVyOwotICAgICAgICAgICAgQU5HTEVfVFJZKGNv
bnRleHRWay0+Z2V0T3V0c2lkZVJlbmRlclBhc3NDb21tYW5kQnVmZmVyKHt9LCAmY29tbWFuZEJ1
ZmZlcikpOworICAgICAgICAgICAgYWNjZXNzLm9uQnVmZmVyRXh0ZXJuYWxBY3F1aXJlUmVsZWFz
ZSgmYnVmZmVySGVscGVyKTsKKyAgICAgICAgICAgIEFOR0xFX1RSWShjb250ZXh0VmstPmdldE91
dHNpZGVSZW5kZXJQYXNzQ29tbWFuZEJ1ZmZlcihhY2Nlc3MsICZjb21tYW5kQnVmZmVyKSk7CiAK
ICAgICAgICAgICAgIC8vIFF1ZXVlIG93bmVyc2hpcCB0cmFuc2Zlci4KICAgICAgICAgICAgIGJ1
ZmZlckhlbHBlci5yZWxlYXNlVG9FeHRlcm5hbChjb250ZXh0VmssIHJlbmRlcmVyUXVldWVGYW1p
bHlJbmRleCwKQEAgLTE2Niw4ICsxNzIsMTAgQEAgYW5nbGU6OlJlc3VsdCBTZW1hcGhvcmVWazo6
c2lnbmFsKGdsOjpDb250ZXh0ICpjb250ZXh0LAogICAgICAgICAgICAgQU5HTEVfVFJZKHRleHR1
cmVWay0+ZW5zdXJlSW1hZ2VJbml0aWFsaXplZChjb250ZXh0VmssIEltYWdlTWlwTGV2ZWxzOjpF
bmFibGVkTGV2ZWxzKSk7CiAKICAgICAgICAgICAgIEFOR0xFX1RSWShjb250ZXh0VmstPm9uSW1h
Z2VSZWxlYXNlVG9FeHRlcm5hbChpbWFnZSkpOworICAgICAgICAgICAgdms6OkNvbW1hbmRCdWZm
ZXJBY2Nlc3MgYWNjZXNzOwogICAgICAgICAgICAgdms6Ok91dHNpZGVSZW5kZXJQYXNzQ29tbWFu
ZEJ1ZmZlciAqY29tbWFuZEJ1ZmZlcjsKLSAgICAgICAgICAgIEFOR0xFX1RSWShjb250ZXh0Vmst
PmdldE91dHNpZGVSZW5kZXJQYXNzQ29tbWFuZEJ1ZmZlcih7fSwgJmNvbW1hbmRCdWZmZXIpKTsK
KyAgICAgICAgICAgIGFjY2Vzcy5vbkV4dGVybmFsQWNxdWlyZVJlbGVhc2UoJmltYWdlKTsKKyAg
ICAgICAgICAgIEFOR0xFX1RSWShjb250ZXh0VmstPmdldE91dHNpZGVSZW5kZXJQYXNzQ29tbWFu
ZEJ1ZmZlcihhY2Nlc3MsICZjb21tYW5kQnVmZmVyKSk7CiAKICAgICAgICAgICAgIC8vIFF1ZXVl
IG93bmVyc2hpcCB0cmFuc2ZlciBhbmQgbGF5b3V0IHRyYW5zaXRpb24uCiAgICAgICAgICAgICBp
bWFnZS5yZWxlYXNlVG9FeHRlcm5hbChjb250ZXh0VmssIHJlbmRlcmVyUXVldWVGYW1pbHlJbmRl
eCwgVktfUVVFVUVfRkFNSUxZX0VYVEVSTkFMLApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL3Z1bGthbi9TaGFkZXJWay5jcHAgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvdnVsa2FuL1NoYWRlclZr
LmNwcAppbmRleCBhNjdlYTc2NjJhNmM0MWEwYjAxNTVjNWQ2YzMwOGQ3Y2NhNGMyYTNjLi4zNzg2
M2VjMTQwNTJmODliZjFiYzI5Zjc2MmM0MGI2MGQ5NmQ0MWExIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvdnVsa2FuL1NoYWRlclZrLmNw
cAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvdnVs
a2FuL1NoYWRlclZrLmNwcApAQCAtMTIsNyArMTIsNyBAQAogI2luY2x1ZGUgImNvbW1vbi9kZWJ1
Zy5oIgogI2luY2x1ZGUgImxpYkFOR0xFL0NvbnRleHQuaCIKICNpbmNsdWRlICJsaWJBTkdMRS9y
ZW5kZXJlci92dWxrYW4vQ29udGV4dFZrLmgiCi0jaW5jbHVkZSAicGxhdGZvcm0vRmVhdHVyZXNW
ay5oIgorI2luY2x1ZGUgInBsYXRmb3JtL0ZlYXR1cmVzVmtfYXV0b2dlbi5oIgogCiBuYW1lc3Bh
Y2UgcngKIHsKQEAgLTU1LDYgKzU1LDExIEBAIHN0ZDo6c2hhcmVkX3B0cjxXYWl0YWJsZUNvbXBp
bGVFdmVudD4gU2hhZGVyVms6OmNvbXBpbGUoY29uc3QgZ2w6OkNvbnRleHQgKmNvbnRlCiAgICAg
ICAgIGNvbXBpbGVPcHRpb25zIHw9IFNIX0FERF9CUkVTRU5IQU1fTElORV9SQVNURVJfRU1VTEFU
SU9OOwogICAgIH0KIAorICAgIGlmIChjb250ZXh0VmstPmdldEZlYXR1cmVzKCkuZW11bGF0ZUFk
dmFuY2VkQmxlbmRFcXVhdGlvbnMuZW5hYmxlZCkKKyAgICB7CisgICAgICAgIGNvbXBpbGVPcHRp
b25zIHw9IFNIX0FERF9BRFZBTkNFRF9CTEVORF9FUVVBVElPTlNfRU1VTEFUSU9OOworICAgIH0K
KwogICAgIGlmIChjb250ZXh0VmstPmVtdWxhdGVTZWFtZnVsQ3ViZU1hcFNhbXBsaW5nKCkpCiAg
ICAgewogICAgICAgICBjb21waWxlT3B0aW9ucyB8PSBTSF9FTVVMQVRFX1NFQU1GVUxfQ1VCRV9N
QVBfU0FNUExJTkc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGli
QU5HTEUvcmVuZGVyZXIvdnVsa2FuL1N1cmZhY2VWay5jcHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9B
TkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvdnVsa2FuL1N1cmZhY2VWay5jcHAKaW5kZXggOGQ4
OTI4MzhmNzg2NzExMGVlYTY2MGRmYmQ1ZmE3M2IxMjg4NjVjNy4uOGYxM2M0NTE0MDZlZGIzYTQ3
YzE0OGRkOTY5ZWQ4YWQ0MmY4NTQ2MSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5H
TEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL3Z1bGthbi9TdXJmYWNlVmsuY3BwCisrKyBiL1NvdXJj
ZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci92dWxrYW4vU3VyZmFjZVZr
LmNwcApAQCAtMTE1LDYgKzExNSwxMyBAQCBib29sIElzOTBEZWdyZWVSb3RhdGlvbihWa1N1cmZh
Y2VUcmFuc2Zvcm1GbGFnc0tIUiB0cmFuc2Zvcm0pCiAgICAgcmV0dXJuICgodHJhbnNmb3JtICYg
azkwRGVncmVlUm90YXRpb25WYXJpYW50cykgIT0gMCk7CiB9CiAKK2Jvb2wgTmVlZHNJbnB1dEF0
dGFjaG1lbnRVc2FnZShjb25zdCBhbmdsZTo6RmVhdHVyZXNWayAmZmVhdHVyZXMpCit7CisgICAg
cmV0dXJuIGZlYXR1cmVzLnN1cHBvcnRzU2hhZGVyRnJhbWVidWZmZXJGZXRjaC5lbmFibGVkIHx8
CisgICAgICAgICAgIGZlYXR1cmVzLnN1cHBvcnRzU2hhZGVyRnJhbWVidWZmZXJGZXRjaE5vbkNv
aGVyZW50LmVuYWJsZWQgfHwKKyAgICAgICAgICAgZmVhdHVyZXMuZW11bGF0ZUFkdmFuY2VkQmxl
bmRFcXVhdGlvbnMuZW5hYmxlZDsKK30KKwogYW5nbGU6OlJlc3VsdCBJbml0SW1hZ2VIZWxwZXIo
RGlzcGxheVZrICpkaXNwbGF5VmssCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFR0xp
bnQgd2lkdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFR0xpbnQgaGVpZ2h0LApA
QCAtMTMxLDggKzEzOCw3IEBAIGFuZ2xlOjpSZXN1bHQgSW5pdEltYWdlSGVscGVyKERpc3BsYXlW
ayAqZGlzcGxheVZrLAogCiAgICAgUmVuZGVyZXJWayAqcmVuZGVyZXJWayA9IGRpc3BsYXlWay0+
Z2V0UmVuZGVyZXIoKTsKICAgICAvLyBJZiBzaGFkZXJzIG1heSBiZSBmZXRjaGluZyBmcm9tIHRo
aXMsIHdlIG5lZWQgdGhpcyBpbWFnZSB0byBiZSBhbiBpbnB1dAotICAgIGlmIChyZW5kZXJlclZr
LT5nZXRGZWF0dXJlcygpLnN1cHBvcnRzU2hhZGVyRnJhbWVidWZmZXJGZXRjaC5lbmFibGVkIHx8
Ci0gICAgICAgIHJlbmRlcmVyVmstPmdldEZlYXR1cmVzKCkuc3VwcG9ydHNTaGFkZXJGcmFtZWJ1
ZmZlckZldGNoTm9uQ29oZXJlbnQuZW5hYmxlZCkKKyAgICBpZiAoTmVlZHNJbnB1dEF0dGFjaG1l
bnRVc2FnZShyZW5kZXJlclZrLT5nZXRGZWF0dXJlcygpKSkKICAgICB7CiAgICAgICAgIHVzYWdl
IHw9IFZLX0lNQUdFX1VTQUdFX0lOUFVUX0FUVEFDSE1FTlRfQklUOwogICAgIH0KQEAgLTE0Miw3
ICsxNDgsNyBAQCBhbmdsZTo6UmVzdWx0IEluaXRJbWFnZUhlbHBlcihEaXNwbGF5VmsgKmRpc3Bs
YXlWaywKIAogICAgIGFuZ2xlOjpGb3JtYXRJRCByZW5kZXJhYmxlRm9ybWF0SWQgPSB2a0Zvcm1h
dC5nZXRBY3R1YWxSZW5kZXJhYmxlSW1hZ2VGb3JtYXRJRCgpOwogICAgIC8vIEZvciBkZXZpY2Vz
IHRoYXQgZG9uJ3Qgc3VwcG9ydCBjcmVhdGluZyBzd2FwY2hhaW4gaW1hZ2VzIHdpdGggUkdCOCwg
ZW11bGF0ZSB3aXRoIFJHQkE4LgotICAgIGlmIChyZW5kZXJlclZrLT5nZXRGZWF0dXJlcygpLm92
ZXJyaWRlU3VyZmFjZUZvcm1hdFJHQjh0b1JHQkE4LmVuYWJsZWQgJiYKKyAgICBpZiAocmVuZGVy
ZXJWay0+Z2V0RmVhdHVyZXMoKS5vdmVycmlkZVN1cmZhY2VGb3JtYXRSR0I4VG9SR0JBOC5lbmFi
bGVkICYmCiAgICAgICAgIHJlbmRlcmFibGVGb3JtYXRJZCA9PSBhbmdsZTo6Rm9ybWF0SUQ6OlI4
RzhCOF9VTk9STSkKICAgICB7CiAgICAgICAgIHJlbmRlcmFibGVGb3JtYXRJZCA9IGFuZ2xlOjpG
b3JtYXRJRDo6UjhHOEI4QThfVU5PUk07CkBAIC02MDAsMjAgKzYwNiwyOSBAQCBFR0xpbnQgT2Zm
c2NyZWVuU3VyZmFjZVZrOjpnZXRTd2FwQmVoYXZpb3IoKSBjb25zdAogfQogCiBhbmdsZTo6UmVz
dWx0IE9mZnNjcmVlblN1cmZhY2VWazo6aW5pdGlhbGl6ZUNvbnRlbnRzKGNvbnN0IGdsOjpDb250
ZXh0ICpjb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBHTGVudW0gYmluZGluZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2w6OkltYWdlSW5kZXggJmltYWdlSW5kZXgp
CiB7CiAgICAgQ29udGV4dFZrICpjb250ZXh0VmsgPSB2azo6R2V0SW1wbChjb250ZXh0KTsKIAot
ICAgIGlmIChtQ29sb3JBdHRhY2htZW50LmltYWdlLnZhbGlkKCkpCisgICAgc3dpdGNoIChiaW5k
aW5nKQogICAgIHsKLSAgICAgICAgbUNvbG9yQXR0YWNobWVudC5pbWFnZS5zdGFnZVJvYnVzdFJl
c291cmNlQ2xlYXIoaW1hZ2VJbmRleCk7Ci0gICAgICAgIEFOR0xFX1RSWShtQ29sb3JBdHRhY2ht
ZW50LmltYWdlLmZsdXNoQWxsU3RhZ2VkVXBkYXRlcyhjb250ZXh0VmspKTsKLSAgICB9CisgICAg
ICAgIGNhc2UgR0xfQkFDSzoKKyAgICAgICAgICAgIEFTU0VSVChtQ29sb3JBdHRhY2htZW50Lmlt
YWdlLnZhbGlkKCkpOworICAgICAgICAgICAgbUNvbG9yQXR0YWNobWVudC5pbWFnZS5zdGFnZVJv
YnVzdFJlc291cmNlQ2xlYXIoaW1hZ2VJbmRleCk7CisgICAgICAgICAgICBBTkdMRV9UUlkobUNv
bG9yQXR0YWNobWVudC5pbWFnZS5mbHVzaEFsbFN0YWdlZFVwZGF0ZXMoY29udGV4dFZrKSk7Cisg
ICAgICAgICAgICBicmVhazsKIAotICAgIGlmIChtRGVwdGhTdGVuY2lsQXR0YWNobWVudC5pbWFn
ZS52YWxpZCgpKQotICAgIHsKLSAgICAgICAgbURlcHRoU3RlbmNpbEF0dGFjaG1lbnQuaW1hZ2Uu
c3RhZ2VSb2J1c3RSZXNvdXJjZUNsZWFyKGltYWdlSW5kZXgpOwotICAgICAgICBBTkdMRV9UUlko
bURlcHRoU3RlbmNpbEF0dGFjaG1lbnQuaW1hZ2UuZmx1c2hBbGxTdGFnZWRVcGRhdGVzKGNvbnRl
eHRWaykpOworICAgICAgICBjYXNlIEdMX0RFUFRIOgorICAgICAgICBjYXNlIEdMX1NURU5DSUw6
CisgICAgICAgICAgICBBU1NFUlQobURlcHRoU3RlbmNpbEF0dGFjaG1lbnQuaW1hZ2UudmFsaWQo
KSk7CisgICAgICAgICAgICBtRGVwdGhTdGVuY2lsQXR0YWNobWVudC5pbWFnZS5zdGFnZVJvYnVz
dFJlc291cmNlQ2xlYXIoaW1hZ2VJbmRleCk7CisgICAgICAgICAgICBBTkdMRV9UUlkobURlcHRo
U3RlbmNpbEF0dGFjaG1lbnQuaW1hZ2UuZmx1c2hBbGxTdGFnZWRVcGRhdGVzKGNvbnRleHRWaykp
OworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIFVO
UkVBQ0hBQkxFKCk7CisgICAgICAgICAgICBicmVhazsKICAgICB9CiAgICAgcmV0dXJuIGFuZ2xl
OjpSZXN1bHQ6OkNvbnRpbnVlOwogfQpAQCAtNzEyLDYgKzcyNyw3IEBAIFN3YXBjaGFpbkltYWdl
OjpTd2FwY2hhaW5JbWFnZShTd2FwY2hhaW5JbWFnZSAmJm90aGVyKQogICAgICAgaW1hZ2VWaWV3
cyhzdGQ6Om1vdmUob3RoZXIuaW1hZ2VWaWV3cykpLAogICAgICAgZnJhbWVidWZmZXIoc3RkOjpt
b3ZlKG90aGVyLmZyYW1lYnVmZmVyKSksCiAgICAgICBmZXRjaEZyYW1lYnVmZmVyKHN0ZDo6bW92
ZShvdGhlci5mZXRjaEZyYW1lYnVmZmVyKSksCisgICAgICBmcmFtZWJ1ZmZlclJlc29sdmVNUyhz
dGQ6Om1vdmUob3RoZXIuZnJhbWVidWZmZXJSZXNvbHZlTVMpKSwKICAgICAgIHByZXNlbnRIaXN0
b3J5KHN0ZDo6bW92ZShvdGhlci5wcmVzZW50SGlzdG9yeSkpCiB7fQogfSAgLy8gbmFtZXNwYWNl
IGltcGwKQEAgLTEwMDYsNyArMTAyMiw3IEBAIGFuZ2xlOjpSZXN1bHQgV2luZG93U3VyZmFjZVZr
Ojppbml0aWFsaXplSW1wbChEaXNwbGF5VmsgKmRpc3BsYXlWaykKICAgICBWa0Zvcm1hdCBuYXRp
dmVGb3JtYXQgICAgPSBmb3JtYXQuZ2V0QWN0dWFsUmVuZGVyYWJsZUltYWdlVmtGb3JtYXQoKTsK
ICAgICBSZW5kZXJlclZrICpyZW5kZXJlclZrICAgPSBkaXNwbGF5VmstPmdldFJlbmRlcmVyKCk7
CiAgICAgLy8gRm9yIGRldmljZXMgdGhhdCBkb24ndCBzdXBwb3J0IGNyZWF0aW5nIHN3YXBjaGFp
biBpbWFnZXMgd2l0aCBSR0I4LCBlbXVsYXRlIHdpdGggUkdCQTguCi0gICAgaWYgKHJlbmRlcmVy
VmstPmdldEZlYXR1cmVzKCkub3ZlcnJpZGVTdXJmYWNlRm9ybWF0UkdCOHRvUkdCQTguZW5hYmxl
ZCAmJgorICAgIGlmIChyZW5kZXJlclZrLT5nZXRGZWF0dXJlcygpLm92ZXJyaWRlU3VyZmFjZUZv
cm1hdFJHQjhUb1JHQkE4LmVuYWJsZWQgJiYKICAgICAgICAgbmF0aXZlRm9ybWF0ID09IFZLX0ZP
Uk1BVF9SOEc4QjhfVU5PUk0pCiAgICAgewogICAgICAgICBuYXRpdmVGb3JtYXQgPSBWS19GT1JN
QVRfUjhHOEI4QThfVU5PUk07CkBAIC0xMjU0LDcgKzEyNzAsNyBAQCBhbmdsZTo6UmVzdWx0IFdp
bmRvd1N1cmZhY2VWazo6Y3JlYXRlU3dhcENoYWluKHZrOjpDb250ZXh0ICpjb250ZXh0LAogICAg
IGFuZ2xlOjpGb3JtYXRJRCBpbnRlbmRlZEZvcm1hdElEID0gZm9ybWF0LmdldEludGVuZGVkRm9y
bWF0SUQoKTsKIAogICAgIC8vIEZvciBkZXZpY2VzIHRoYXQgZG9uJ3Qgc3VwcG9ydCBjcmVhdGlu
ZyBzd2FwY2hhaW4gaW1hZ2VzIHdpdGggUkdCOCwgZW11bGF0ZSB3aXRoIFJHQkE4LgotICAgIGlm
IChyZW5kZXJlci0+Z2V0RmVhdHVyZXMoKS5vdmVycmlkZVN1cmZhY2VGb3JtYXRSR0I4dG9SR0JB
OC5lbmFibGVkICYmCisgICAgaWYgKHJlbmRlcmVyLT5nZXRGZWF0dXJlcygpLm92ZXJyaWRlU3Vy
ZmFjZUZvcm1hdFJHQjhUb1JHQkE4LmVuYWJsZWQgJiYKICAgICAgICAgaW50ZW5kZWRGb3JtYXRJ
RCA9PSBhbmdsZTo6Rm9ybWF0SUQ6OlI4RzhCOF9VTk9STSkKICAgICB7CiAgICAgICAgIGFjdHVh
bEZvcm1hdElEID0gYW5nbGU6OkZvcm1hdElEOjpSOEc4QjhBOF9VTk9STTsKQEAgLTEyNzcsOCAr
MTI5Myw3IEBAIGFuZ2xlOjpSZXN1bHQgV2luZG93U3VyZmFjZVZrOjpjcmVhdGVTd2FwQ2hhaW4o
dms6OkNvbnRleHQgKmNvbnRleHQsCiAgICAgVmtJbWFnZVVzYWdlRmxhZ3MgaW1hZ2VVc2FnZUZs
YWdzID0ga1N1cmZhY2VWa0NvbG9ySW1hZ2VVc2FnZUZsYWdzOwogCiAgICAgLy8gSWYgc2hhZGVy
cyBtYXkgYmUgZmV0Y2hpbmcgZnJvbSB0aGlzLCB3ZSBuZWVkIHRoaXMgaW1hZ2UgdG8gYmUgYW4g
aW5wdXQKLSAgICBpZiAocmVuZGVyZXItPmdldEZlYXR1cmVzKCkuc3VwcG9ydHNTaGFkZXJGcmFt
ZWJ1ZmZlckZldGNoLmVuYWJsZWQgfHwKLSAgICAgICAgcmVuZGVyZXItPmdldEZlYXR1cmVzKCku
c3VwcG9ydHNTaGFkZXJGcmFtZWJ1ZmZlckZldGNoTm9uQ29oZXJlbnQuZW5hYmxlZCkKKyAgICBp
ZiAoTmVlZHNJbnB1dEF0dGFjaG1lbnRVc2FnZShyZW5kZXJlci0+Z2V0RmVhdHVyZXMoKSkpCiAg
ICAgewogICAgICAgICBpbWFnZVVzYWdlRmxhZ3MgfD0gVktfSU1BR0VfVVNBR0VfSU5QVVRfQVRU
QUNITUVOVF9CSVQ7CiAgICAgfQpAQCAtMTUwOSw2ICsxNTI0LDEwIEBAIHZvaWQgV2luZG93U3Vy
ZmFjZVZrOjpyZWxlYXNlU3dhcGNoYWluSW1hZ2VzKENvbnRleHRWayAqY29udGV4dFZrKQogICAg
ICAgICB7CiAgICAgICAgICAgICBjb250ZXh0VmstPmFkZEdhcmJhZ2UoJnN3YXBjaGFpbkltYWdl
LmZldGNoRnJhbWVidWZmZXIpOwogICAgICAgICB9CisgICAgICAgIGlmIChzd2FwY2hhaW5JbWFn
ZS5mcmFtZWJ1ZmZlclJlc29sdmVNUy52YWxpZCgpKQorICAgICAgICB7CisgICAgICAgICAgICBj
b250ZXh0VmstPmFkZEdhcmJhZ2UoJnN3YXBjaGFpbkltYWdlLmZyYW1lYnVmZmVyUmVzb2x2ZU1T
KTsKKyAgICAgICAgfQogCiAgICAgICAgIC8vIHByZXNlbnQgaGlzdG9yeSBtdXN0IGhhdmUgYWxy
ZWFkeSBiZWVuIHRha2VuIGNhcmUgb2YuCiAgICAgICAgIGZvciAoSW1hZ2VQcmVzZW50SGlzdG9y
eSAmcHJlc2VudEhpc3RvcnkgOiBzd2FwY2hhaW5JbWFnZS5wcmVzZW50SGlzdG9yeSkKQEAgLTE1
NDMsNiArMTU2MiwxMCBAQCB2b2lkIFdpbmRvd1N1cmZhY2VWazo6ZGVzdHJveVN3YXBDaGFpbklt
YWdlcyhEaXNwbGF5VmsgKmRpc3BsYXlWaykKICAgICAgICAgewogICAgICAgICAgICAgc3dhcGNo
YWluSW1hZ2UuZmV0Y2hGcmFtZWJ1ZmZlci5kZXN0cm95KGRldmljZSk7CiAgICAgICAgIH0KKyAg
ICAgICAgaWYgKHN3YXBjaGFpbkltYWdlLmZyYW1lYnVmZmVyUmVzb2x2ZU1TLnZhbGlkKCkpCisg
ICAgICAgIHsKKyAgICAgICAgICAgIHN3YXBjaGFpbkltYWdlLmZyYW1lYnVmZmVyUmVzb2x2ZU1T
LmRlc3Ryb3koZGV2aWNlKTsKKyAgICAgICAgfQogCiAgICAgICAgIGZvciAoSW1hZ2VQcmVzZW50
SGlzdG9yeSAmcHJlc2VudEhpc3RvcnkgOiBzd2FwY2hhaW5JbWFnZS5wcmVzZW50SGlzdG9yeSkK
ICAgICAgICAgewpAQCAtMTYzNSwxNCArMTY1OCwxNyBAQCBhbmdsZTo6UmVzdWx0IFdpbmRvd1N1
cmZhY2VWazo6Y29tcHV0ZVByZXNlbnRPdXRPZkRhdGUodms6OkNvbnRleHQgKmNvbnRleHQsCiAg
ICAgcmV0dXJuIGFuZ2xlOjpSZXN1bHQ6OkNvbnRpbnVlOwogfQogCi12azo6RnJhbWVidWZmZXIg
JldpbmRvd1N1cmZhY2VWazo6Y2hvb3NlRnJhbWVidWZmZXIoKQordms6OkZyYW1lYnVmZmVyICZX
aW5kb3dTdXJmYWNlVms6OmNob29zZUZyYW1lYnVmZmVyKGNvbnN0IFN3YXBjaGFpblJlc29sdmVN
b2RlIHN3YXBjaGFpblJlc29sdmVNb2RlKQogewogICAgIGlmIChpc011bHRpU2FtcGxlZCgpKQog
ICAgIHsKLSAgICAgICAgcmV0dXJuIG1GcmFtZWJ1ZmZlck1TOworICAgICAgICByZXR1cm4gc3dh
cGNoYWluUmVzb2x2ZU1vZGUgPT0gU3dhcGNoYWluUmVzb2x2ZU1vZGU6OkVuYWJsZWQKKyAgICAg
ICAgICAgICAgICAgICA/IG1Td2FwY2hhaW5JbWFnZXNbbUN1cnJlbnRTd2FwY2hhaW5JbWFnZUlu
ZGV4XS5mcmFtZWJ1ZmZlclJlc29sdmVNUworICAgICAgICAgICAgICAgICAgIDogbUZyYW1lYnVm
ZmVyTVM7CiAgICAgfQogCiAgICAgLy8gQ2hvb3NlIHdoaWNoIGZyYW1lYnVmZmVyIHRvIHVzZSBi
YXNlZCBvbiBmZXRjaCwgc28gaXQgd2lsbCBoYXZlIGEgbWF0Y2hpbmcgcmVuZGVycGFzcworICAg
IEFTU0VSVChzd2FwY2hhaW5SZXNvbHZlTW9kZSA9PSBTd2FwY2hhaW5SZXNvbHZlTW9kZTo6RGlz
YWJsZWQpOwogICAgIHJldHVybiBtRnJhbWVidWZmZXJGZXRjaE1vZGUgPT0gRnJhbWVidWZmZXJG
ZXRjaE1vZGU6OkVuYWJsZWQKICAgICAgICAgICAgICAgID8gbVN3YXBjaGFpbkltYWdlc1ttQ3Vy
cmVudFN3YXBjaGFpbkltYWdlSW5kZXhdLmZldGNoRnJhbWVidWZmZXIKICAgICAgICAgICAgICAg
IDogbVN3YXBjaGFpbkltYWdlc1ttQ3VycmVudFN3YXBjaGFpbkltYWdlSW5kZXhdLmZyYW1lYnVm
ZmVyOwpAQCAtMTY2Nyw5ICsxNjkzLDcgQEAgYW5nbGU6OlJlc3VsdCBXaW5kb3dTdXJmYWNlVms6
OnByZXNlbnQoQ29udGV4dFZrICpjb250ZXh0VmssCiAgICAgfQogCiAgICAgU3dhcGNoYWluSW1h
Z2UgJmltYWdlICAgICAgICAgICAgICAgPSBtU3dhcGNoYWluSW1hZ2VzW21DdXJyZW50U3dhcGNo
YWluSW1hZ2VJbmRleF07Ci0gICAgdms6OkZyYW1lYnVmZmVyICZjdXJyZW50RnJhbWVidWZmZXIg
PSBjaG9vc2VGcmFtZWJ1ZmZlcigpOwotCi0gICAgdXBkYXRlT3ZlcmxheShjb250ZXh0VmspOwor
ICAgIHZrOjpGcmFtZWJ1ZmZlciAmY3VycmVudEZyYW1lYnVmZmVyID0gY2hvb3NlRnJhbWVidWZm
ZXIoU3dhcGNoYWluUmVzb2x2ZU1vZGU6OkRpc2FibGVkKTsKIAogICAgIC8vIE1ha2Ugc3VyZSBk
ZWZlcnJlZCBjbGVhcnMgYXJlIGFwcGxpZWQsIGlmIGFueS4KICAgICBBTkdMRV9UUlkoCkBAIC0x
Njc4LDIxICsxNzAyLDI0IEBAIGFuZ2xlOjpSZXN1bHQgV2luZG93U3VyZmFjZVZrOjpwcmVzZW50
KENvbnRleHRWayAqY29udGV4dFZrLAogICAgIC8vIFdlIGNhbiBvbmx5IGRvIHByZXNlbnQgcmVs
YXRlZCBvcHRpbWl6YXRpb24gaWYgdGhpcyBpcyB0aGUgbGFzdCByZW5kZXJwYXNzIHRoYXQgdG91
Y2hlcyB0aGUKICAgICAvLyBzd2FwY2hhaW4gaW1hZ2UuIE1TQUEgcmVzb2x2ZSBhbmQgb3Zlcmxh
eSB3aWxsIGluc2VydCBhbm90aGVyIHJlbmRlcnBhc3Mgd2hpY2ggZGlzcXVhbGlmaWVzCiAgICAg
Ly8gdGhlIG9wdGltaXphdGlvbi4KKyAgICBib29sIGltYWdlUmVzb2x2ZWQgPSBmYWxzZTsKICAg
ICBpZiAoY3VycmVudEZyYW1lYnVmZmVyLnZhbGlkKCkpCiAgICAgewotICAgICAgICBjb250ZXh0
VmstPm9wdGltaXplUmVuZGVyUGFzc0ZvclByZXNlbnQoCi0gICAgICAgICAgICBjdXJyZW50RnJh
bWVidWZmZXIuZ2V0SGFuZGxlKCksIG1Db2xvckltYWdlTVMudmFsaWQoKSA/ICZtQ29sb3JJbWFn
ZU1TIDogJmltYWdlLmltYWdlKTsKKyAgICAgICAgQU5HTEVfVFJZKGNvbnRleHRWay0+b3B0aW1p
emVSZW5kZXJQYXNzRm9yUHJlc2VudCgKKyAgICAgICAgICAgIGN1cnJlbnRGcmFtZWJ1ZmZlci5n
ZXRIYW5kbGUoKSwgJmltYWdlLmltYWdlVmlld3MsICZpbWFnZS5pbWFnZSwgJm1Db2xvckltYWdl
TVMsCisgICAgICAgICAgICBtU3dhcGNoYWluUHJlc2VudE1vZGUsICZpbWFnZVJlc29sdmVkKSk7
CiAgICAgfQogCiAgICAgLy8gQmVjYXVzZSB0aGUgY29sb3IgYXR0YWNobWVudCBkZWZlcnMgbGF5
b3V0IGNoYW5nZXMgdW50aWwgZW5kUmVuZGVyUGFzcyB0aW1lLCB3ZSBtdXN0IGNhbGwKICAgICAv
LyBmaW5hbGl6ZSB0aGUgbGF5b3V0IHRyYW5zaXRpb24gaW4gdGhlIHJlbmRlcnBhc3MgYmVmb3Jl
IHdlIGluc2VydCBsYXlvdXQgY2hhbmdlIHRvCiAgICAgLy8gSW1hZ2VMYXlvdXQ6OlByZXNlbnQg
YmVsbG93LgogICAgIGNvbnRleHRWay0+ZmluYWxpemVJbWFnZUxheW91dCgmaW1hZ2UuaW1hZ2Up
OworICAgIGNvbnRleHRWay0+ZmluYWxpemVJbWFnZUxheW91dCgmbUNvbG9ySW1hZ2VNUyk7CiAK
ICAgICB2azo6T3V0c2lkZVJlbmRlclBhc3NDb21tYW5kQnVmZmVyICpjb21tYW5kQnVmZmVyOwog
ICAgIEFOR0xFX1RSWShjb250ZXh0VmstPmdldE91dHNpZGVSZW5kZXJQYXNzQ29tbWFuZEJ1ZmZl
cih7fSwgJmNvbW1hbmRCdWZmZXIpKTsKIAotICAgIGlmIChtQ29sb3JJbWFnZU1TLnZhbGlkKCkp
CisgICAgaWYgKG1Db2xvckltYWdlTVMudmFsaWQoKSAmJiAhaW1hZ2VSZXNvbHZlZCkKICAgICB7
CiAgICAgICAgIC8vIFRyYW5zaXRpb24gdGhlIG11bHRpc2FtcGxlZCBpbWFnZSB0byBUUkFOU0ZF
Ul9TUkMgZm9yIHJlc29sdmUuCiAgICAgICAgIHZrOjpDb21tYW5kQnVmZmVyQWNjZXNzIGFjY2Vz
czsKQEAgLTE3MTMsMTIgKzE3NDAsNyBAQCBhbmdsZTo6UmVzdWx0IFdpbmRvd1N1cmZhY2VWazo6
cHJlc2VudChDb250ZXh0VmsgKmNvbnRleHRWaywKICAgICAgICAgcmVzb2x2ZVJlZ2lvbi5leHRl
bnQgICAgICAgICAgICAgICAgICAgICAgICA9IGltYWdlLmltYWdlLmdldFJvdGF0ZWRFeHRlbnRz
KCk7CiAKICAgICAgICAgbUNvbG9ySW1hZ2VNUy5yZXNvbHZlKCZpbWFnZS5pbWFnZSwgcmVzb2x2
ZVJlZ2lvbiwgY29tbWFuZEJ1ZmZlcik7Ci0gICAgfQotCi0gICAgaWYgKG92ZXJsYXlIYXNFbmFi
bGVkV2lkZ2V0KGNvbnRleHRWaykpCi0gICAgewotICAgICAgICBBTkdMRV9UUlkoZHJhd092ZXJs
YXkoY29udGV4dFZrLCAmaW1hZ2UpKTsKLSAgICAgICAgQU5HTEVfVFJZKGNvbnRleHRWay0+Z2V0
T3V0c2lkZVJlbmRlclBhc3NDb21tYW5kQnVmZmVyKHt9LCAmY29tbWFuZEJ1ZmZlcikpOworICAg
ICAgICBjb250ZXh0VmstPmdldFBlcmZDb3VudGVycygpLnN3YXBjaGFpblJlc29sdmVPdXRzaWRl
U3VicGFzcysrOwogICAgIH0KIAogICAgIC8vIFRoaXMgZG9lcyBub3RoaW5nIGlmIGl0J3MgYWxy
ZWFkeSBpbiB0aGUgcmVxdWVzdGVkIGxheW91dApAQCAtMTc0Niw4ICsxNzY4LDIwIEBAIGFuZ2xl
OjpSZXN1bHQgV2luZG93U3VyZmFjZVZrOjpwcmVzZW50KENvbnRleHRWayAqY29udGV4dFZrLAog
ICAgIC8vIHByZXNlbnQgY2FuIGJlIGRlc3Ryb3llZC4KICAgICBwcmVzZW50SGlzdG9yeS5vbGRT
d2FwY2hhaW5zID0gc3RkOjptb3ZlKG1PbGRTd2FwY2hhaW5zKTsKIAotICAgIEFOR0xFX1RSWShj
b250ZXh0VmstPmZsdXNoQW5kR2V0U2VyaWFsKHByZXNlbnRTZW1hcGhvcmUsIHN3YXBTZXJpYWws
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVuZGVyUGFzc0Ns
b3N1cmVSZWFzb246OkVHTFN3YXBCdWZmZXJzKSk7CisgICAgLy8gVGhlIG92ZXJsYXkgaXMgZHJh
d24gYWZ0ZXIgdGhpcy4gIFRoaXMgZW5zdXJlcyB0aGF0IGRyYXdpbmcgdGhlIG92ZXJsYXkgZG9l
cyBub3QgaW50ZXJmZXJlCisgICAgLy8gd2l0aCBvdGhlciBmdW5jdGlvbmFsaXR5LCBlc3BlY2lh
bGx5IGNvdW50ZXJzIHVzZWQgdG8gdmFsaWRhdGUgc2FpZCBmdW5jdGlvbmFsaXR5LgorICAgIGNv
bnN0IGJvb2wgc2hvdWxkRHJhd092ZXJsYXkgPSBvdmVybGF5SGFzRW5hYmxlZFdpZGdldChjb250
ZXh0VmspOworCisgICAgQU5HTEVfVFJZKGNvbnRleHRWay0+Zmx1c2hBbmRHZXRTZXJpYWwoc2hv
dWxkRHJhd092ZXJsYXkgPyBudWxscHRyIDogcHJlc2VudFNlbWFwaG9yZSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzd2FwU2VyaWFsLCBSZW5kZXJQYXNzQ2xv
c3VyZVJlYXNvbjo6RUdMU3dhcEJ1ZmZlcnMpKTsKKworICAgIGlmIChzaG91bGREcmF3T3Zlcmxh
eSkKKyAgICB7CisgICAgICAgIHVwZGF0ZU92ZXJsYXkoY29udGV4dFZrKTsKKyAgICAgICAgQU5H
TEVfVFJZKGRyYXdPdmVybGF5KGNvbnRleHRWaywgJmltYWdlKSk7CisgICAgICAgIEFOR0xFX1RS
WShjb250ZXh0VmstPmZsdXNoQW5kR2V0U2VyaWFsKHByZXNlbnRTZW1hcGhvcmUsIHN3YXBTZXJp
YWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlbmRl
clBhc3NDbG9zdXJlUmVhc29uOjpBbHJlYWR5U3BlY2lmaWVkRWxzZXdoZXJlKSk7CisgICAgfQog
CiAgICAgVmtQcmVzZW50SW5mb0tIUiBwcmVzZW50SW5mbyAgID0ge307CiAgICAgcHJlc2VudElu
Zm8uc1R5cGUgICAgICAgICAgICAgID0gVktfU1RSVUNUVVJFX1RZUEVfUFJFU0VOVF9JTkZPX0tI
UjsKQEAgLTE3OTUsNiArMTgyOSw4IEBAIGFuZ2xlOjpSZXN1bHQgV2luZG93U3VyZmFjZVZrOjpw
cmVzZW50KENvbnRleHRWayAqY29udGV4dFZrLAogCiAgICAgQU5HTEVfVFJZKGNvbXB1dGVQcmVz
ZW50T3V0T2ZEYXRlKGNvbnRleHRWaywgcmVzdWx0LCBwcmVzZW50T3V0T2ZEYXRlKSk7CiAKKyAg
ICBjb250ZXh0VmstPnJlc2V0UGVyRnJhbWVQZXJmQ291bnRlcnMoKTsKKwogICAgIHJldHVybiBh
bmdsZTo6UmVzdWx0OjpDb250aW51ZTsKIH0KIApAQCAtMTg4NiwyNSArMTkyMiwzMSBAQCBhbmds
ZTo6UmVzdWx0IFdpbmRvd1N1cmZhY2VWazo6ZG9EZWZlcnJlZEFjcXVpcmVOZXh0SW1hZ2UoY29u
c3QgZ2w6OkNvbnRleHQgKmNvbgogICAgICAgICBBTkdMRV9WS19UUlkoY29udGV4dFZrLCByZXN1
bHQpOwogICAgIH0KIAotICAgIGlmIChtU3RhdGUuc3dhcEJlaGF2aW9yID09IEVHTF9CVUZGRVJf
REVTVFJPWUVEICYmIG1CdWZmZXJBZ2VRdWVyeUZyYW1lTnVtYmVyID09IDApCisgICAgLy8gQXV0
by1pbnZhbGlkYXRlIHRoZSBjb250ZW50cyBvZiB0aGUgc3VyZmFjZS4gIEFjY29yZGluZyB0byBF
R0wsIG9uIHN3YXA6CisgICAgLy8KKyAgICAvLyAtIFdoZW4gRUdMX0JVRkZFUl9ERVNUUk9ZRUQg
aXMgc3BlY2lmaWVkLCB0aGUgY29udGVudHMgb2YgdGhlIGNvbG9yIGltYWdlIGNhbiBiZQorICAg
IC8vICAgaW52YWxpZGF0ZWQuCisgICAgLy8gICAgKiBUaGlzIGlzIGRpc2FibGVkIHdoZW4gYnVm
ZmVyIGFnZSBoYXMgYmVlbiBxdWVyaWVkIHRvIHdvcmsgYXJvdW5kIGEgZEVRUCB0ZXN0IGJ1Zy4K
KyAgICAvLyAtIERlcHRoL1N0ZW5jaWwgY2FuIGFsd2F5cyBiZSBpbnZhbGlkYXRlZAorICAgIC8v
CisgICAgLy8gSW4gYWxsIGNhc2VzLCB3aGVuIHRoZSBwcmVzZW50IG1vZGUgaXMgREVNQU5EX1JF
RlJFU0gsIHN3YXAgaXMgaW1wbGljaXQgYW5kIHRoZSBzd2FwIGJlaGF2aW9yCisgICAgLy8gZG9l
c24ndCBhcHBseSBzbyBubyBpbnZhbGlkYXRpb24gaXMgZG9uZS4KKyAgICBpZiAobVN3YXBjaGFp
blByZXNlbnRNb2RlICE9IFZLX1BSRVNFTlRfTU9ERV9TSEFSRURfREVNQU5EX1JFRlJFU0hfS0hS
KQogICAgIHsKLSAgICAgICAgbVN3YXBjaGFpbkltYWdlc1ttQ3VycmVudFN3YXBjaGFpbkltYWdl
SW5kZXhdLmltYWdlLmludmFsaWRhdGVTdWJyZXNvdXJjZUNvbnRlbnQoCi0gICAgICAgICAgICBj
b250ZXh0VmssIGdsOjpMZXZlbEluZGV4KDApLCAwLCAxLCBudWxscHRyKTsKLSAgICAgICAgaWYg
KG1Db2xvckltYWdlTVMudmFsaWQoKSkKKyAgICAgICAgaWYgKG1TdGF0ZS5zd2FwQmVoYXZpb3Ig
PT0gRUdMX0JVRkZFUl9ERVNUUk9ZRUQgJiYgbUJ1ZmZlckFnZVF1ZXJ5RnJhbWVOdW1iZXIgPT0g
MCkKICAgICAgICAgewotICAgICAgICAgICAgbUNvbG9ySW1hZ2VNUy5pbnZhbGlkYXRlU3VicmVz
b3VyY2VDb250ZW50KGNvbnRleHRWaywgZ2w6OkxldmVsSW5kZXgoMCksIDAsIDEsIG51bGxwdHIp
OworICAgICAgICAgICAgbVN3YXBjaGFpbkltYWdlc1ttQ3VycmVudFN3YXBjaGFpbkltYWdlSW5k
ZXhdLmltYWdlLmludmFsaWRhdGVTdWJyZXNvdXJjZUNvbnRlbnQoCisgICAgICAgICAgICAgICAg
Y29udGV4dFZrLCBnbDo6TGV2ZWxJbmRleCgwKSwgMCwgMSwgbnVsbHB0cik7CisgICAgICAgICAg
ICBpZiAobUNvbG9ySW1hZ2VNUy52YWxpZCgpKQorICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgIG1Db2xvckltYWdlTVMuaW52YWxpZGF0ZVN1YnJlc291cmNlQ29udGVudChjb250ZXh0Vmss
IGdsOjpMZXZlbEluZGV4KDApLCAwLCAxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxscHRyKTsKKyAgICAgICAgICAgIH0KICAg
ICAgICAgfQotICAgIH0KLSAgICBpZiAobURlcHRoU3RlbmNpbEltYWdlLnZhbGlkKCkpCi0gICAg
ewotICAgICAgICBWa0ltYWdlQXNwZWN0RmxhZ3MgZHNBc3BlY3RzID0gbURlcHRoU3RlbmNpbElt
YWdlLmdldEFzcGVjdEZsYWdzKCk7Ci0gICAgICAgIGlmICgoZHNBc3BlY3RzICYgVktfSU1BR0Vf
QVNQRUNUX0RFUFRIX0JJVCkgIT0gMCkKKyAgICAgICAgaWYgKG1EZXB0aFN0ZW5jaWxJbWFnZS52
YWxpZCgpKQogICAgICAgICB7CiAgICAgICAgICAgICBtRGVwdGhTdGVuY2lsSW1hZ2UuaW52YWxp
ZGF0ZVN1YnJlc291cmNlQ29udGVudChjb250ZXh0VmssIGdsOjpMZXZlbEluZGV4KDApLCAwLCAx
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbnVsbHB0cik7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKChkc0FzcGVjdHMgJiBWS19J
TUFHRV9BU1BFQ1RfU1RFTkNJTF9CSVQpICE9IDApCi0gICAgICAgIHsKICAgICAgICAgICAgIG1E
ZXB0aFN0ZW5jaWxJbWFnZS5pbnZhbGlkYXRlU3VicmVzb3VyY2VTdGVuY2lsQ29udGVudChjb250
ZXh0VmssIGdsOjpMZXZlbEluZGV4KDApLCAwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEsIG51bGxwdHIpOwogICAg
ICAgICB9CkBAIC0yMTY5LDEwICsyMjExLDEyIEBAIEVHTGludCBXaW5kb3dTdXJmYWNlVms6Omdl
dFN3YXBCZWhhdmlvcigpIGNvbnN0CiAgICAgcmV0dXJuIEVHTF9CVUZGRVJfREVTVFJPWUVEOwog
fQogCi1hbmdsZTo6UmVzdWx0IFdpbmRvd1N1cmZhY2VWazo6Z2V0Q3VycmVudEZyYW1lYnVmZmVy
KENvbnRleHRWayAqY29udGV4dFZrLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBGcmFtZWJ1ZmZlckZldGNoTW9kZSBmZXRjaE1vZGUsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZr
OjpSZW5kZXJQYXNzICZjb21wYXRpYmxlUmVuZGVyUGFzcywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdms6OkZyYW1lYnVmZmVyICoqZnJhbWVi
dWZmZXJPdXQpCithbmdsZTo6UmVzdWx0IFdpbmRvd1N1cmZhY2VWazo6Z2V0Q3VycmVudEZyYW1l
YnVmZmVyKAorICAgIENvbnRleHRWayAqY29udGV4dFZrLAorICAgIEZyYW1lYnVmZmVyRmV0Y2hN
b2RlIGZldGNoTW9kZSwKKyAgICBjb25zdCB2azo6UmVuZGVyUGFzcyAmY29tcGF0aWJsZVJlbmRl
clBhc3MsCisgICAgY29uc3QgU3dhcGNoYWluUmVzb2x2ZU1vZGUgc3dhcGNoYWluUmVzb2x2ZU1v
ZGUsCisgICAgdms6OkZyYW1lYnVmZmVyICoqZnJhbWVidWZmZXJPdXQpCiB7CiAgICAgLy8gRnJh
bWVidWZmZXJWayBkaXJ0eS1iaXQgcHJvY2Vzc2luZyBzaG91bGQgZW5zdXJlIHRoYXQgYSBuZXcg
aW1hZ2Ugd2FzIGFjcXVpcmVkLgogICAgIEFTU0VSVCghbU5lZWRUb0FjcXVpcmVOZXh0U3dhcGNo
YWluSW1hZ2UpOwpAQCAtMjE4MCw4ICsyMjI0LDcgQEAgYW5nbGU6OlJlc3VsdCBXaW5kb3dTdXJm
YWNlVms6OmdldEN1cnJlbnRGcmFtZWJ1ZmZlcihDb250ZXh0VmsgKmNvbnRleHRWaywKICAgICAv
LyBUcmFjayB0aGUgbmV3IGZldGNoIG1vZGUKICAgICBtRnJhbWVidWZmZXJGZXRjaE1vZGUgPSBm
ZXRjaE1vZGU7CiAKLSAgICB2azo6RnJhbWVidWZmZXIgJmN1cnJlbnRGcmFtZWJ1ZmZlciA9IGNo
b29zZUZyYW1lYnVmZmVyKCk7Ci0KKyAgICB2azo6RnJhbWVidWZmZXIgJmN1cnJlbnRGcmFtZWJ1
ZmZlciA9IGNob29zZUZyYW1lYnVmZmVyKHN3YXBjaGFpblJlc29sdmVNb2RlKTsKICAgICBpZiAo
Y3VycmVudEZyYW1lYnVmZmVyLnZhbGlkKCkpCiAgICAgewogICAgICAgICAvLyBWYWxpZGF0aW9u
IGxheWVycyBzaG91bGQgZGV0ZWN0IGlmIHRoZSByZW5kZXIgcGFzcyBpcyByZWFsbHkgY29tcGF0
aWJsZS4KQEAgLTIxOTAsOSArMjIzMywxMCBAQCBhbmdsZTo6UmVzdWx0IFdpbmRvd1N1cmZhY2VW
azo6Z2V0Q3VycmVudEZyYW1lYnVmZmVyKENvbnRleHRWayAqY29udGV4dFZrLAogICAgIH0KIAog
ICAgIFZrRnJhbWVidWZmZXJDcmVhdGVJbmZvIGZyYW1lYnVmZmVySW5mbyA9IHt9OworICAgIHVp
bnQzMl90IGF0dGFjaG1lbnRDb3VudCAgICAgICAgICAgICAgICA9IG1EZXB0aFN0ZW5jaWxJbWFn
ZS52YWxpZCgpID8gMnUgOiAxdTsKIAogICAgIGNvbnN0IGdsOjpFeHRlbnRzIHJvdGF0ZWRFeHRl
bnRzICAgICAgPSBtQ29sb3JSZW5kZXJUYXJnZXQuZ2V0Um90YXRlZEV4dGVudHMoKTsKLSAgICBz
dGQ6OmFycmF5PFZrSW1hZ2VWaWV3LCAyPiBpbWFnZVZpZXdzID0ge307CisgICAgc3RkOjphcnJh
eTxWa0ltYWdlVmlldywgMz4gaW1hZ2VWaWV3cyA9IHt9OwogCiAgICAgaWYgKG1EZXB0aFN0ZW5j
aWxJbWFnZS52YWxpZCgpKQogICAgIHsKQEAgLTIyMDQsNyArMjI0OCw3IEBAIGFuZ2xlOjpSZXN1
bHQgV2luZG93U3VyZmFjZVZrOjpnZXRDdXJyZW50RnJhbWVidWZmZXIoQ29udGV4dFZrICpjb250
ZXh0VmssCiAgICAgZnJhbWVidWZmZXJJbmZvLnNUeXBlICAgICAgICAgICA9IFZLX1NUUlVDVFVS
RV9UWVBFX0ZSQU1FQlVGRkVSX0NSRUFURV9JTkZPOwogICAgIGZyYW1lYnVmZmVySW5mby5mbGFn
cyAgICAgICAgICAgPSAwOwogICAgIGZyYW1lYnVmZmVySW5mby5yZW5kZXJQYXNzICAgICAgPSBj
b21wYXRpYmxlUmVuZGVyUGFzcy5nZXRIYW5kbGUoKTsKLSAgICBmcmFtZWJ1ZmZlckluZm8uYXR0
YWNobWVudENvdW50ID0gKG1EZXB0aFN0ZW5jaWxJbWFnZS52YWxpZCgpID8gMnUgOiAxdSk7Cisg
ICAgZnJhbWVidWZmZXJJbmZvLmF0dGFjaG1lbnRDb3VudCA9IGF0dGFjaG1lbnRDb3VudDsKICAg
ICBmcmFtZWJ1ZmZlckluZm8ucEF0dGFjaG1lbnRzICAgID0gaW1hZ2VWaWV3cy5kYXRhKCk7CiAg
ICAgZnJhbWVidWZmZXJJbmZvLndpZHRoICAgICAgICAgICA9IHN0YXRpY19jYXN0PHVpbnQzMl90
Pihyb3RhdGVkRXh0ZW50cy53aWR0aCk7CiAgICAgZnJhbWVidWZmZXJJbmZvLmhlaWdodCAgICAg
ICAgICA9IHN0YXRpY19jYXN0PHVpbnQzMl90Pihyb3RhdGVkRXh0ZW50cy5oZWlnaHQpOwpAQCAt
MjIxMiwxMSArMjI1NiwzMCBAQCBhbmdsZTo6UmVzdWx0IFdpbmRvd1N1cmZhY2VWazo6Z2V0Q3Vy
cmVudEZyYW1lYnVmZmVyKENvbnRleHRWayAqY29udGV4dFZrLAogCiAgICAgaWYgKGlzTXVsdGlT
YW1wbGVkKCkpCiAgICAgewotICAgICAgICAvLyBJZiBtdWx0aXNhbXBsZWQsIHRoZXJlIGlzIG9u
bHkgYSBzaW5nbGUgY29sb3IgaW1hZ2UgYW5kIGZyYW1lYnVmZmVyLgogICAgICAgICBjb25zdCB2
azo6SW1hZ2VWaWV3ICppbWFnZVZpZXcgPSBudWxscHRyOwogICAgICAgICBBTkdMRV9UUlkobUNv
bG9yUmVuZGVyVGFyZ2V0LmdldEltYWdlVmlldyhjb250ZXh0VmssICZpbWFnZVZpZXcpKTsKICAg
ICAgICAgaW1hZ2VWaWV3c1swXSA9IGltYWdlVmlldy0+Z2V0SGFuZGxlKCk7Ci0gICAgICAgIEFO
R0xFX1ZLX1RSWShjb250ZXh0VmssIG1GcmFtZWJ1ZmZlck1TLmluaXQoY29udGV4dFZrLT5nZXRE
ZXZpY2UoKSwgZnJhbWVidWZmZXJJbmZvKSk7CisKKyAgICAgICAgaWYgKHN3YXBjaGFpblJlc29s
dmVNb2RlID09IFN3YXBjaGFpblJlc29sdmVNb2RlOjpFbmFibGVkKQorICAgICAgICB7CisgICAg
ICAgICAgICBmcmFtZWJ1ZmZlckluZm8uYXR0YWNobWVudENvdW50ID0gYXR0YWNobWVudENvdW50
ICsgMTsKKworICAgICAgICAgICAgZm9yIChTd2FwY2hhaW5JbWFnZSAmc3dhcGNoYWluSW1hZ2Ug
OiBtU3dhcGNoYWluSW1hZ2VzKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIEFOR0xF
X1RSWShzd2FwY2hhaW5JbWFnZS5pbWFnZVZpZXdzLmdldExldmVsTGF5ZXJEcmF3SW1hZ2VWaWV3
KAorICAgICAgICAgICAgICAgICAgICBjb250ZXh0VmssIHN3YXBjaGFpbkltYWdlLmltYWdlLCB2
azo6TGV2ZWxJbmRleCgwKSwgMCwKKyAgICAgICAgICAgICAgICAgICAgZ2w6OlNyZ2JXcml0ZUNv
bnRyb2xNb2RlOjpEZWZhdWx0LCAmaW1hZ2VWaWV3KSk7CisgICAgICAgICAgICAgICAgaW1hZ2VW
aWV3c1thdHRhY2htZW50Q291bnRdID0gaW1hZ2VWaWV3LT5nZXRIYW5kbGUoKTsKKworICAgICAg
ICAgICAgICAgIEFOR0xFX1ZLX1RSWShjb250ZXh0VmssIHN3YXBjaGFpbkltYWdlLmZyYW1lYnVm
ZmVyUmVzb2x2ZU1TLmluaXQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnRleHRWay0+Z2V0RGV2aWNlKCksIGZyYW1lYnVmZmVySW5mbykpOworICAgICAg
ICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVsc2UKKyAgICAgICAgeworICAgICAgICAgICAg
Ly8gSWYgbXVsdGlzYW1wbGVkLCB0aGVyZSBpcyBvbmx5IGEgc2luZ2xlIGNvbG9yIGltYWdlIGFu
ZCBmcmFtZWJ1ZmZlci4KKyAgICAgICAgICAgIEFOR0xFX1ZLX1RSWShjb250ZXh0VmssIG1GcmFt
ZWJ1ZmZlck1TLmluaXQoY29udGV4dFZrLT5nZXREZXZpY2UoKSwgZnJhbWVidWZmZXJJbmZvKSk7
CisgICAgICAgIH0KICAgICB9CiAgICAgZWxzZQogICAgIHsKQEAgLTIyNTUsNiArMjMxOCw3IEBA
IGNvbnN0IHZrOjpTZW1hcGhvcmUgKldpbmRvd1N1cmZhY2VWazo6Z2V0QW5kUmVzZXRBY3F1aXJl
SW1hZ2VTZW1hcGhvcmUoKQogfQogCiBhbmdsZTo6UmVzdWx0IFdpbmRvd1N1cmZhY2VWazo6aW5p
dGlhbGl6ZUNvbnRlbnRzKGNvbnN0IGdsOjpDb250ZXh0ICpjb250ZXh0LAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTGVudW0gYmluZGluZywKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2w6
OkltYWdlSW5kZXggJmltYWdlSW5kZXgpCiB7CiAgICAgQ29udGV4dFZrICpjb250ZXh0VmsgPSB2
azo6R2V0SW1wbChjb250ZXh0KTsKQEAgLTIyNzEsMTUgKzIzMzUsMjYgQEAgYW5nbGU6OlJlc3Vs
dCBXaW5kb3dTdXJmYWNlVms6OmluaXRpYWxpemVDb250ZW50cyhjb25zdCBnbDo6Q29udGV4dCAq
Y29udGV4dCwKICAgICBBU1NFUlQobVN3YXBjaGFpbkltYWdlcy5zaXplKCkgPiAwKTsKICAgICBB
U1NFUlQobUN1cnJlbnRTd2FwY2hhaW5JbWFnZUluZGV4IDwgbVN3YXBjaGFpbkltYWdlcy5zaXpl
KCkpOwogCi0gICAgdms6OkltYWdlSGVscGVyICppbWFnZSA9Ci0gICAgICAgIGlzTXVsdGlTYW1w
bGVkKCkgPyAmbUNvbG9ySW1hZ2VNUyA6ICZtU3dhcGNoYWluSW1hZ2VzW21DdXJyZW50U3dhcGNo
YWluSW1hZ2VJbmRleF0uaW1hZ2U7Ci0gICAgaW1hZ2UtPnN0YWdlUm9idXN0UmVzb3VyY2VDbGVh
cihpbWFnZUluZGV4KTsKLSAgICBBTkdMRV9UUlkoaW1hZ2UtPmZsdXNoQWxsU3RhZ2VkVXBkYXRl
cyhjb250ZXh0VmspKTsKLQotICAgIGlmIChtRGVwdGhTdGVuY2lsSW1hZ2UudmFsaWQoKSkKKyAg
ICBzd2l0Y2ggKGJpbmRpbmcpCiAgICAgewotICAgICAgICBtRGVwdGhTdGVuY2lsSW1hZ2Uuc3Rh
Z2VSb2J1c3RSZXNvdXJjZUNsZWFyKGdsOjpJbWFnZUluZGV4OjpNYWtlMkQoMCkpOwotICAgICAg
ICBBTkdMRV9UUlkobURlcHRoU3RlbmNpbEltYWdlLmZsdXNoQWxsU3RhZ2VkVXBkYXRlcyhjb250
ZXh0VmspKTsKKyAgICAgICAgY2FzZSBHTF9CQUNLOgorICAgICAgICB7CisgICAgICAgICAgICB2
azo6SW1hZ2VIZWxwZXIgKmltYWdlID0gaXNNdWx0aVNhbXBsZWQoKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA/ICZtQ29sb3JJbWFnZU1TCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJm1Td2FwY2hhaW5JbWFnZXNbbUN1cnJlbnRT
d2FwY2hhaW5JbWFnZUluZGV4XS5pbWFnZTsKKyAgICAgICAgICAgIGltYWdlLT5zdGFnZVJvYnVz
dFJlc291cmNlQ2xlYXIoaW1hZ2VJbmRleCk7CisgICAgICAgICAgICBBTkdMRV9UUlkoaW1hZ2Ut
PmZsdXNoQWxsU3RhZ2VkVXBkYXRlcyhjb250ZXh0VmspKTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICB9CisgICAgICAgIGNhc2UgR0xfREVQVEg6CisgICAgICAgIGNhc2UgR0xfU1RFTkNJ
TDoKKyAgICAgICAgICAgIEFTU0VSVChtRGVwdGhTdGVuY2lsSW1hZ2UudmFsaWQoKSk7CisgICAg
ICAgICAgICBtRGVwdGhTdGVuY2lsSW1hZ2Uuc3RhZ2VSb2J1c3RSZXNvdXJjZUNsZWFyKGdsOjpJ
bWFnZUluZGV4OjpNYWtlMkQoMCkpOworICAgICAgICAgICAgQU5HTEVfVFJZKG1EZXB0aFN0ZW5j
aWxJbWFnZS5mbHVzaEFsbFN0YWdlZFVwZGF0ZXMoY29udGV4dFZrKSk7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIFVOUkVBQ0hBQkxFKCk7CisgICAg
ICAgICAgICBicmVhazsKICAgICB9CiAKICAgICByZXR1cm4gYW5nbGU6OlJlc3VsdDo6Q29udGlu
dWU7CkBAIC0yMzQ4LDYgKzI0MjMsMTIgQEAgZWdsOjpFcnJvciBXaW5kb3dTdXJmYWNlVms6Omdl
dEJ1ZmZlckFnZShjb25zdCBnbDo6Q29udGV4dCAqY29udGV4dCwgRUdMaW50ICphZ2UKICAgICAg
ICAgfQogICAgIH0KIAorICAgIGlmIChpc011bHRpU2FtcGxlZCgpKQorICAgIHsKKyAgICAgICAg
KmFnZSA9IDA7CisgICAgICAgIHJldHVybiBlZ2w6Ok5vRXJyb3IoKTsKKyAgICB9CisKICAgICBp
ZiAobUJ1ZmZlckFnZVF1ZXJ5RnJhbWVOdW1iZXIgPT0gMCkKICAgICB7CiAgICAgICAgIEFOR0xF
X1ZLX1BFUkZfV0FSTklORyh2azo6R2V0SW1wbChjb250ZXh0KSwgR0xfREVCVUdfU0VWRVJJVFlf
TE9XLApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3Jl
bmRlcmVyL3Z1bGthbi9TdXJmYWNlVmsuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9s
aWJBTkdMRS9yZW5kZXJlci92dWxrYW4vU3VyZmFjZVZrLmgKaW5kZXggYmY0YmVmNzZiYjZjYjdm
MGYzOTllNmE5ODQ2ZmZmMGY0NGJiMDJlZS4uNTE5ZmNkZjIwYTQ3MmU5NzBlNGY4ZDQzZjJmNWVi
NDI3OWNhMzA0YSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFO
R0xFL3JlbmRlcmVyL3Z1bGthbi9TdXJmYWNlVmsuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9B
TkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvdnVsa2FuL1N1cmZhY2VWay5oCkBAIC03NCw2ICs3
NCw3IEBAIGNsYXNzIE9mZnNjcmVlblN1cmZhY2VWayA6IHB1YmxpYyBTdXJmYWNlVmsKICAgICBF
R0xpbnQgZ2V0U3dhcEJlaGF2aW9yKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBhbmdsZTo6UmVz
dWx0IGluaXRpYWxpemVDb250ZW50cyhjb25zdCBnbDo6Q29udGV4dCAqY29udGV4dCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTGVudW0gYmluZGluZywKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnbDo6SW1hZ2VJbmRleCAmaW1hZ2VJ
bmRleCkgb3ZlcnJpZGU7CiAKICAgICB2azo6SW1hZ2VIZWxwZXIgKmdldENvbG9yQXR0YWNobWVu
dEltYWdlKCk7CkBAIC0xNzAsNiArMTcxLDcgQEAgc3RydWN0IFN3YXBjaGFpbkltYWdlIDogYW5n
bGU6Ok5vbkNvcHlhYmxlCiAgICAgdms6OkltYWdlVmlld0hlbHBlciBpbWFnZVZpZXdzOwogICAg
IHZrOjpGcmFtZWJ1ZmZlciBmcmFtZWJ1ZmZlcjsKICAgICB2azo6RnJhbWVidWZmZXIgZmV0Y2hG
cmFtZWJ1ZmZlcjsKKyAgICB2azo6RnJhbWVidWZmZXIgZnJhbWVidWZmZXJSZXNvbHZlTVM7CiAK
ICAgICAvLyBBIGNpcmN1bGFyIGFycmF5IG9mIHNlbWFwaG9yZXMgdXNlZCBmb3IgcHJlc2VudGlu
ZyB0aGlzIGltYWdlLgogICAgIHN0YXRpYyBjb25zdGV4cHIgc2l6ZV90IGtQcmVzZW50SGlzdG9y
eVNpemUgPSBrU3dhcEhpc3RvcnlTaXplICsgMTsKQEAgLTE4NCw2ICsxODYsMTIgQEAgZW51bSBj
bGFzcyBGcmFtZWJ1ZmZlckZldGNoTW9kZQogICAgIEVuYWJsZWQsCiB9OwogCitlbnVtIGNsYXNz
IFN3YXBjaGFpblJlc29sdmVNb2RlCit7CisgICAgRGlzYWJsZWQsCisgICAgRW5hYmxlZCwKK307
CisKIGNsYXNzIFdpbmRvd1N1cmZhY2VWayA6IHB1YmxpYyBTdXJmYWNlVmsKIHsKICAgcHVibGlj
OgpAQCAtMjQwLDEzICsyNDgsMTUgQEAgY2xhc3MgV2luZG93U3VyZmFjZVZrIDogcHVibGljIFN1
cmZhY2VWawogICAgIEVHTGludCBnZXRTd2FwQmVoYXZpb3IoKSBjb25zdCBvdmVycmlkZTsKIAog
ICAgIGFuZ2xlOjpSZXN1bHQgaW5pdGlhbGl6ZUNvbnRlbnRzKGNvbnN0IGdsOjpDb250ZXh0ICpj
b250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMZW51bSBiaW5k
aW5nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdsOjpJbWFn
ZUluZGV4ICZpbWFnZUluZGV4KSBvdmVycmlkZTsKIAotICAgIHZrOjpGcmFtZWJ1ZmZlciAmY2hv
b3NlRnJhbWVidWZmZXIoKTsKKyAgICB2azo6RnJhbWVidWZmZXIgJmNob29zZUZyYW1lYnVmZmVy
KGNvbnN0IFN3YXBjaGFpblJlc29sdmVNb2RlIHN3YXBjaGFpblJlc29sdmVNb2RlKTsKIAogICAg
IGFuZ2xlOjpSZXN1bHQgZ2V0Q3VycmVudEZyYW1lYnVmZmVyKENvbnRleHRWayAqY29udGV4dCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGcmFtZWJ1ZmZlckZldGNo
TW9kZSBmZXRjaE1vZGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3Qgdms6OlJlbmRlclBhc3MgJmNvbXBhdGlibGVSZW5kZXJQYXNzLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN3YXBjaGFpblJlc29sdmVNb2RlIHN3
YXBjaGFpblJlc29sdmVNb2RlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHZrOjpGcmFtZWJ1ZmZlciAqKmZyYW1lYnVmZmVyT3V0KTsKIAogICAgIGNvbnN0IHZrOjpT
ZW1hcGhvcmUgKmdldEFuZFJlc2V0QWNxdWlyZUltYWdlU2VtYXBob3JlKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvdnVsa2FuL1N5
bmNWay5jcHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIv
dnVsa2FuL1N5bmNWay5jcHAKaW5kZXggNzI4MTlmMTE5YmJmMDg2YmZlYzdiMjljYzY4MTMyZTA3
ODI5YzczMy4uMmJiNzc5NjBlMjZkZjJlNTFkMGQ4NDAwNjRkYjZjYjZkNTA1MjJmMSAxMDA2NDQK
LS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL3Z1bGth
bi9TeW5jVmsuY3BwCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9y
ZW5kZXJlci92dWxrYW4vU3luY1ZrLmNwcApAQCAtOTMsNyArOTMsMTAgQEAgYW5nbGU6OlJlc3Vs
dCBTeW5jSGVscGVyOjppbml0aWFsaXplKENvbnRleHRWayAqY29udGV4dFZrLCBib29sIGlzRWds
U3luY09iamVjdCkKICAgICAvLyAgIHdpbGwgYWxzbyBiZSBhd2FyZSB0aGF0IGl0J3MgZmluaXNo
ZWQgKGJhc2VkIG9uIHRoZSBzZXJpYWwpIGFuZCB3b24ndCBpbmN1ciBhIGZ1cnRoZXIgd2FpdAog
ICAgIC8vICAgKGZvciBleGFtcGxlIHdoZW4gYSBidWZmZXIgaXMgbWFwcGVkKS4KICAgICAvLwot
ICAgIHJldGFpbigmY29udGV4dFZrLT5nZXRSZXNvdXJjZVVzZUxpc3QoKSk7CisgICAgUmVzb3Vy
Y2VVc2VMaXN0IHJlc291cmNlVXNlTGlzdDsKKyAgICByZXRhaW4oJnJlc291cmNlVXNlTGlzdCk7
CisgICAgY29udGV4dFZrLT5nZXRTaGFyZUdyb3VwVmsoKS0+YWNxdWlyZVJlc291cmNlVXNlTGlz
dChzdGQ6Om1vdmUocmVzb3VyY2VVc2VMaXN0KSk7CisKICAgICByZXR1cm4gY29udGV4dFZrLT5m
bHVzaEltcGwobnVsbHB0ciwgUmVuZGVyUGFzc0Nsb3N1cmVSZWFzb246OlN5bmNPYmplY3RJbml0
KTsKIH0KIApAQCAtMjI2LDcgKzIyOSw5IEBAIGFuZ2xlOjpSZXN1bHQgU3luY0hlbHBlck5hdGl2
ZUZlbmNlOjppbml0aWFsaXplV2l0aEZkKENvbnRleHRWayAqY29udGV4dFZrLCBpbnQKICAgICAv
LyBGbHVzaCBmaXJzdCBiZWNhdXNlIHRoZSBmZW5jZSBjb21lcyBhZnRlciBjdXJyZW50IHBlbmRp
bmcgc2V0IG9mIGNvbW1hbmRzLgogICAgIEFOR0xFX1RSWShjb250ZXh0VmstPmZsdXNoSW1wbChu
dWxscHRyLCBSZW5kZXJQYXNzQ2xvc3VyZVJlYXNvbjo6U3luY09iamVjdFdpdGhGZEluaXQpKTsK
IAotICAgIHJldGFpbigmY29udGV4dFZrLT5nZXRSZXNvdXJjZVVzZUxpc3QoKSk7CisgICAgUmVz
b3VyY2VVc2VMaXN0IHJlc291cmNlVXNlTGlzdDsKKyAgICByZXRhaW4oJnJlc291cmNlVXNlTGlz
dCk7CisgICAgY29udGV4dFZrLT5nZXRTaGFyZUdyb3VwVmsoKS0+YWNxdWlyZVJlc291cmNlVXNl
TGlzdChzdGQ6Om1vdmUocmVzb3VyY2VVc2VMaXN0KSk7CiAKICAgICBTZXJpYWwgc2VyaWFsT3V0
OwogICAgIC8vIGV4cG9ydEZkIGlzIGV4cG9ydGluZyBWS19FWFRFUk5BTF9GRU5DRV9IQU5ETEVf
VFlQRV9TWU5DX0ZEX0JJVF9LSFIgdHlwZSBoYW5kbGUgd2hpY2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci92dWxrYW4vVGV4dHVyZVZr
LmNwcCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci92dWxr
YW4vVGV4dHVyZVZrLmNwcAppbmRleCAyMDk4ZjUxNjJiZTc5OTk5NzA1ZjZjMGY1ZDVlZWMyYzJl
MDJiNWQ2Li44ZTFlNTViZDcxMGJkMjZkNmIwZjRiYmIzODk3ZWQxZTRkNTRlNDM2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvdnVsa2Fu
L1RleHR1cmVWay5jcHAKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xF
L3JlbmRlcmVyL3Z1bGthbi9UZXh0dXJlVmsuY3BwCkBAIC0xMjkzLDcgKzEyOTMsOCBAQCBhbmds
ZTo6UmVzdWx0IFRleHR1cmVWazo6c2V0U3RvcmFnZU11bHRpc2FtcGxlKGNvbnN0IGdsOjpDb250
ZXh0ICpjb250ZXh0LAogICAgIC8vIEFzc3VtZSBhbGwgbXVsdGlzYW1wbGUgdGV4dHVyZSB0eXBl
cyBtdXN0IGJlIHJlbmRlcmFibGUuCiAgICAgaWYgKHR5cGUgPT0gZ2w6OlRleHR1cmVUeXBlOjpf
MkRNdWx0aXNhbXBsZSB8fCB0eXBlID09IGdsOjpUZXh0dXJlVHlwZTo6XzJETXVsdGlzYW1wbGVB
cnJheSkKICAgICB7Ci0gICAgICAgIEFOR0xFX1RSWShlbnN1cmVSZW5kZXJhYmxlKGNvbnRleHRW
aykpOworICAgICAgICBUZXh0dXJlVXBkYXRlUmVzdWx0IHVwZGF0ZVJlc3VsdCA9IFRleHR1cmVV
cGRhdGVSZXN1bHQ6OkltYWdlVW5hZmZlY3RlZDsKKyAgICAgICAgQU5HTEVfVFJZKGVuc3VyZVJl
bmRlcmFibGUoY29udGV4dFZrLCAmdXBkYXRlUmVzdWx0KSk7CiAgICAgfQogCiAgICAgY29uc3Qg
dms6OkZvcm1hdCAmZm9ybWF0ID0gcmVuZGVyZXItPmdldEZvcm1hdChpbnRlcm5hbGZvcm1hdCk7
CkBAIC0xNDI3LDggKzE0MjgsOSBAQCBhbmdsZTo6UmVzdWx0IFRleHR1cmVWazo6c2V0RUdMSW1h
Z2VUYXJnZXQoY29uc3QgZ2w6OkNvbnRleHQgKmNvbnRleHQsCiAgICAgICAgIH0KIAogICAgICAg
ICB2azo6T3V0c2lkZVJlbmRlclBhc3NDb21tYW5kQnVmZmVyICpjb21tYW5kQnVmZmVyOwotICAg
ICAgICBBTkdMRV9UUlkoY29udGV4dFZrLT5nZXRPdXRzaWRlUmVuZGVyUGFzc0NvbW1hbmRCdWZm
ZXIoe30sICZjb21tYW5kQnVmZmVyKSk7Ci0gICAgICAgIG1JbWFnZS0+cmV0YWluKCZjb250ZXh0
VmstPmdldFJlc291cmNlVXNlTGlzdCgpKTsKKyAgICAgICAgdms6OkNvbW1hbmRCdWZmZXJBY2Nl
c3MgYWNjZXNzOworICAgICAgICBhY2Nlc3Mub25FeHRlcm5hbEFjcXVpcmVSZWxlYXNlKG1JbWFn
ZSk7CisgICAgICAgIEFOR0xFX1RSWShjb250ZXh0VmstPmdldE91dHNpZGVSZW5kZXJQYXNzQ29t
bWFuZEJ1ZmZlcihhY2Nlc3MsICZjb21tYW5kQnVmZmVyKSk7CiAgICAgICAgIG1JbWFnZS0+Y2hh
bmdlTGF5b3V0QW5kUXVldWUoY29udGV4dFZrLCBtSW1hZ2UtPmdldEFzcGVjdEZsYWdzKCksIG5l
d0xheW91dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW5kZXJlclF1
ZXVlRmFtaWx5SW5kZXgsIGNvbW1hbmRCdWZmZXIpOwogICAgIH0KQEAgLTE5NDcsOSArMTk0OSw2
IEBAIGFuZ2xlOjpSZXN1bHQgVGV4dHVyZVZrOjpnZW5lcmF0ZU1pcG1hcChjb25zdCBnbDo6Q29u
dGV4dCAqY29udGV4dCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtSW1h
Z2UtPmdldFNhbXBsZXMoKSwgbU93bnNJbWFnZSkpCiAgICAgewogICAgICAgICBBU1NFUlQoKG1J
bWFnZVVzYWdlRmxhZ3MgJiBWS19JTUFHRV9VU0FHRV9TVE9SQUdFX0JJVCkgIT0gMCk7Ci0KLSAg
ICAgICAgbUltYWdlLT5yZXRhaW4oJmNvbnRleHRWay0+Z2V0UmVzb3VyY2VVc2VMaXN0KCkpOwot
CiAgICAgICAgIHJldHVybiBnZW5lcmF0ZU1pcG1hcHNXaXRoQ29tcHV0ZShjb250ZXh0VmspOwog
ICAgIH0KICAgICBlbHNlIGlmIChyZW5kZXJlci0+aGFzSW1hZ2VGb3JtYXRGZWF0dXJlQml0cyht
SW1hZ2UtPmdldEFjdHVhbEZvcm1hdElEKCksIGtCbGl0RmVhdHVyZUZsYWdzKSkKQEAgLTE5NzAs
NyArMTk2OSw4IEBAIGFuZ2xlOjpSZXN1bHQgVGV4dHVyZVZrOjpzZXRCYXNlTGV2ZWwoY29uc3Qg
Z2w6OkNvbnRleHQgKmNvbnRleHQsIEdMdWludCBiYXNlTGV2CiAgICAgcmV0dXJuIGFuZ2xlOjpS
ZXN1bHQ6OkNvbnRpbnVlOwogfQogCi1hbmdsZTo6UmVzdWx0IFRleHR1cmVWazo6bWF5YmVVcGRh
dGVCYXNlTWF4TGV2ZWxzKENvbnRleHRWayAqY29udGV4dFZrLCBib29sICpkaWRSZXNwZWNpZnlP
dXQpCithbmdsZTo6UmVzdWx0IFRleHR1cmVWazo6bWF5YmVVcGRhdGVCYXNlTWF4TGV2ZWxzKENv
bnRleHRWayAqY29udGV4dFZrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBUZXh0dXJlVXBkYXRlUmVzdWx0ICp1cGRhdGVSZXN1bHRPdXQpCiB7CiAg
ICAgaWYgKCFtSW1hZ2UpCiAgICAgewpAQCAtMTk5NSw3ICsxOTk1LDYgQEAgYW5nbGU6OlJlc3Vs
dCBUZXh0dXJlVms6Om1heWJlVXBkYXRlQmFzZU1heExldmVscyhDb250ZXh0VmsgKmNvbnRleHRW
aywgYm9vbCAqZGkKICAgICAgICAgcmV0dXJuIGFuZ2xlOjpSZXN1bHQ6OkNvbnRpbnVlOwogICAg
IH0KIAotICAgIGJvb2wgcmVzcGVjaWZ5SW1hZ2UgPSBmYWxzZTsKICAgICBpZiAobVN0YXRlLmdl
dEltbXV0YWJsZUZvcm1hdCgpKQogICAgIHsKICAgICAgICAgLy8gRm9yIGltbXV0YWJsZSB0ZXh0
dXJlLCBiYXNlTGV2ZWwvbWF4TGV2ZWwgc2hvdWxkIGJlIGEgc3Vic2V0IG9mIHRoZSB0ZXh0dXJl
J3MgYWN0dWFsCkBAIC0yMDExLDI5ICsyMDEwLDIwIEBAIGFuZ2xlOjpSZXN1bHQgVGV4dHVyZVZr
OjptYXliZVVwZGF0ZUJhc2VNYXhMZXZlbHMoQ29udGV4dFZrICpjb250ZXh0VmssIGJvb2wgKmRp
CiAgICAgfQogICAgIGVsc2UKICAgICB7Ci0gICAgICAgIHJlc3BlY2lmeUltYWdlID0gdHJ1ZTsK
KyAgICAgICAgKnVwZGF0ZVJlc3VsdE91dCA9IFRleHR1cmVVcGRhdGVSZXN1bHQ6OkltYWdlUmVz
cGVjaWZpZWQ7CisgICAgICAgIHJldHVybiByZXNwZWNpZnlJbWFnZVN0b3JhZ2UoY29udGV4dFZr
KTsKICAgICB9CiAKLSAgICAqZGlkUmVzcGVjaWZ5T3V0ID0gcmVzcGVjaWZ5SW1hZ2U7Ci0KLSAg
ICBpZiAocmVzcGVjaWZ5SW1hZ2UpCi0gICAgewotICAgICAgICBBTkdMRV9UUlkocmVzcGVjaWZ5
SW1hZ2VTdG9yYWdlKGNvbnRleHRWaykpOwotICAgIH0KLSAgICBlbHNlCi0gICAgewotICAgICAg
ICAvLyBEb24ndCBuZWVkIHRvIHJlc3BlY2lmeSB0aGUgdGV4dHVyZTsgYnV0IGRvIG5lZWQgdG8g
dXBkYXRlIHdoaWNoIHZrSW1hZ2VWaWV3J3MgYXJlCi0gICAgICAgIC8vIHNlcnZlZCB1cCBieSBJ
bWFnZVZpZXdIZWxwZXIKKyAgICAvLyBEb24ndCBuZWVkIHRvIHJlc3BlY2lmeSB0aGUgdGV4dHVy
ZTsgYnV0IGRvIG5lZWQgdG8gdXBkYXRlIHdoaWNoIHZrSW1hZ2VWaWV3J3MgYXJlIHNlcnZlZCB1
cAorICAgIC8vIGJ5IEltYWdlVmlld0hlbHBlcgogCi0gICAgICAgIC8vIFVwZGF0ZSB0aGUgY3Vy
cmVudCBtYXggbGV2ZWwgaW4gSW1hZ2VWaWV3SGVscGVyCi0gICAgICAgIGNvbnN0IGdsOjpJbWFn
ZURlc2MgJmJhc2VMZXZlbERlc2MgPSBtU3RhdGUuZ2V0QmFzZUxldmVsRGVzYygpOwotICAgICAg
ICBBTkdMRV9UUlkoaW5pdEltYWdlVmlld3MoY29udGV4dFZrLCBtSW1hZ2UtPmdldEFjdHVhbEZv
cm1hdCgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZUxldmVsRGVzYy5m
b3JtYXQuaW5mby0+c2l6ZWQsIG5ld01heExldmVsIC0gbmV3QmFzZUxldmVsICsgMSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldEltYWdlVmlld0xheWVyQ291bnQoKSkpOwor
ICAgIC8vIFVwZGF0ZSB0aGUgY3VycmVudCBtYXggbGV2ZWwgaW4gSW1hZ2VWaWV3SGVscGVyCisg
ICAgY29uc3QgZ2w6OkltYWdlRGVzYyAmYmFzZUxldmVsRGVzYyA9IG1TdGF0ZS5nZXRCYXNlTGV2
ZWxEZXNjKCk7CisgICAgQU5HTEVfVFJZKGluaXRJbWFnZVZpZXdzKGNvbnRleHRWaywgbUltYWdl
LT5nZXRBY3R1YWxGb3JtYXQoKSwgYmFzZUxldmVsRGVzYy5mb3JtYXQuaW5mby0+c2l6ZWQsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld01heExldmVsIC0gbmV3QmFzZUxldmVsICsg
MSwgZ2V0SW1hZ2VWaWV3TGF5ZXJDb3VudCgpKSk7CiAKLSAgICAgICAgbUN1cnJlbnRCYXNlTGV2
ZWwgPSBuZXdCYXNlTGV2ZWw7Ci0gICAgICAgIG1DdXJyZW50TWF4TGV2ZWwgID0gbmV3TWF4TGV2
ZWw7Ci0gICAgfQorICAgIG1DdXJyZW50QmFzZUxldmVsID0gbmV3QmFzZUxldmVsOworICAgIG1D
dXJyZW50TWF4TGV2ZWwgID0gbmV3TWF4TGV2ZWw7CiAKICAgICByZXR1cm4gYW5nbGU6OlJlc3Vs
dDo6Q29udGludWU7CiB9CkBAIC0yMjc1LDggKzIyNjUsNiBAQCBhbmdsZTo6UmVzdWx0IFRleHR1
cmVWazo6cmVzcGVjaWZ5SW1hZ2VTdG9yYWdlKENvbnRleHRWayAqY29udGV4dFZrKQogICAgICAg
ICByZWxlYXNlSW1hZ2UoY29udGV4dFZrKTsKICAgICB9CiAKLSAgICBtSW1hZ2UtPnJldGFpbigm
Y29udGV4dFZrLT5nZXRSZXNvdXJjZVVzZUxpc3QoKSk7Ci0KICAgICByZXR1cm4gYW5nbGU6OlJl
c3VsdDo6Q29udGludWU7CiB9CiAKQEAgLTIzMTksMjUgKzIzMDcsMTMgQEAgYW5nbGU6OlJlc3Vs
dCBUZXh0dXJlVms6OmdldEF0dGFjaG1lbnRSZW5kZXJUYXJnZXQoY29uc3QgZ2w6OkNvbnRleHQg
KmNvbnRleHQsCiAKICAgICBDb250ZXh0VmsgKmNvbnRleHRWayA9IHZrOjpHZXRJbXBsKGNvbnRl
eHQpOwogCi0gICAgYm9vbCBkaWRSZXNwZWNpZnkgPSBmYWxzZTsKLSAgICBBTkdMRV9UUlkobWF5
YmVVcGRhdGVCYXNlTWF4TGV2ZWxzKGNvbnRleHRWaywgJmRpZFJlc3BlY2lmeSkpOworICAgIC8v
IFN5bmMgdGhlIHRleHR1cmUncyBpbWFnZS4gIFNlZSBjb21tZW50IG9uIHRoaXMgZnVuY3Rpb24g
aW4gdGhlIGhlYWRlci4KKyAgICBBTkdMRV9UUlkocmVzcGVjaWZ5SW1hZ2VTdG9yYWdlSWZOZWNl
c3NhcnkoY29udGV4dFZrLCBnbDo6Q29tbWFuZDo6RHJhdykpOwogCi0gICAgQVNTRVJUKG1TdGF0
ZS5oYXNCZWVuQm91bmRBc0F0dGFjaG1lbnQoKSk7Ci0gICAgQU5HTEVfVFJZKGVuc3VyZVJlbmRl
cmFibGUoY29udGV4dFZrKSk7Ci0KLSAgICBpZiAobVJlZGVmaW5lZExldmVscy5hbnkoKSkKLSAg
ICB7Ci0gICAgICAgIC8vIElmIHdlIGhhdmUgcmVkZWZpbmVkIGxldmVscywgd2UgbXVzdCBmbHVz
aCB0aG9zZSBvdXQgdG8gZml4IHRoZSByZW5kZXIgdGFyZ2V0cy4KLSAgICAgICAgQU5HTEVfVFJZ
KHJlc3BlY2lmeUltYWdlU3RvcmFnZShjb250ZXh0VmspKTsKLSAgICB9Ci0KLSAgICAvLyBPdGhl
cndpc2UsIGRvbid0IGZsdXNoIHN0YWdlZCB1cGRhdGVzIGhlcmUuIFdlJ2xsIGhhbmRsZSB0aGF0
IGluIEZyYW1lYnVmZmVyVmsgc28gd2UgY2FuCi0gICAgLy8gZGVmZXIgY2xlYXJzLgorICAgIC8v
IERvbid0IGZsdXNoIHN0YWdlZCB1cGRhdGVzIGhlcmUuIFdlJ2xsIGhhbmRsZSB0aGF0IGluIEZy
YW1lYnVmZmVyVmsgc28gd2UgY2FuIGRlZmVyIGNsZWFycy4KIAogICAgIGlmICghbUltYWdlLT52
YWxpZCgpKQogICAgIHsKLSAgICAgICAgLy8gSW1tdXRhYmxlIHRleHR1cmUgbXVzdCBhbHJlYWR5
IGhhdmUgYSB2YWxpZCBpbWFnZQotICAgICAgICBBU1NFUlQoIW1TdGF0ZS5nZXRJbW11dGFibGVG
b3JtYXQoKSk7CiAgICAgICAgIGNvbnN0IHZrOjpGb3JtYXQgJmZvcm1hdCA9IGdldEJhc2VMZXZl
bEZvcm1hdChjb250ZXh0VmstPmdldFJlbmRlcmVyKCkpOwogICAgICAgICBBTkdMRV9UUlkoaW5p
dEltYWdlKGNvbnRleHRWaywgZm9ybWF0LmdldEludGVuZGVkRm9ybWF0SUQoKSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBmb3JtYXQuZ2V0QWN0dWFsSW1hZ2VGb3JtYXRJRChnZXRSZXF1
aXJlZEltYWdlQWNjZXNzKCkpLApAQCAtMjU3OCwyOCArMjU1NCw5IEBAIHZvaWQgVGV4dHVyZVZr
OjpwcmVwYXJlRm9yR2VuZXJhdGVNaXBtYXAoQ29udGV4dFZrICpjb250ZXh0VmspCiAgICAgfQog
fQogCi1hbmdsZTo6UmVzdWx0IFRleHR1cmVWazo6c3luY1N0YXRlKGNvbnN0IGdsOjpDb250ZXh0
ICpjb250ZXh0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnbDo6
VGV4dHVyZTo6RGlydHlCaXRzICZkaXJ0eUJpdHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGdsOjpDb21tYW5kIHNvdXJjZSkKK2FuZ2xlOjpSZXN1bHQgVGV4dHVyZVZrOjpy
ZXNwZWNpZnlJbWFnZVN0b3JhZ2VJZk5lY2Vzc2FyeShDb250ZXh0VmsgKmNvbnRleHRWaywgZ2w6
OkNvbW1hbmQgc291cmNlKQogewotICAgIENvbnRleHRWayAqY29udGV4dFZrID0gdms6OkdldElt
cGwoY29udGV4dCk7Ci0gICAgUmVuZGVyZXJWayAqcmVuZGVyZXIgPSBjb250ZXh0VmstPmdldFJl
bmRlcmVyKCk7Ci0KLSAgICAvLyBJZiB0aGlzIGlzIGEgdGV4dHVyZSBidWZmZXIsIHJlbGVhc2Ug
YnVmZmVyIHZpZXdzLiAgVGhlcmUncyBub3RoaW5nIGVsc2UgdG8gc3luYy4gIFRoZQotICAgIC8v
IGltYWdlIG11c3QgYWxyZWFkeSBiZSBkZWxldGVkLCBhbmQgdGhlIHNhbXBsZXIgcmVzZXQuCi0g
ICAgaWYgKG1TdGF0ZS5nZXRCdWZmZXIoKS5nZXQoKSAhPSBudWxscHRyKQotICAgIHsKLSAgICAg
ICAgQVNTRVJUKG1JbWFnZSA9PSBudWxscHRyKTsKLQotICAgICAgICBjb25zdCBnbDo6T2Zmc2V0
QmluZGluZ1BvaW50ZXI8Z2w6OkJ1ZmZlcj4gJmJ1ZmZlckJpbmRpbmcgPSBtU3RhdGUuZ2V0QnVm
ZmVyKCk7Ci0KLSAgICAgICAgY29uc3QgVmtEZXZpY2VTaXplIG9mZnNldCA9IGJ1ZmZlckJpbmRp
bmcuZ2V0T2Zmc2V0KCk7Ci0gICAgICAgIGNvbnN0IFZrRGV2aWNlU2l6ZSBzaXplICAgPSBnbDo6
R2V0Qm91bmRCdWZmZXJBdmFpbGFibGVTaXplKGJ1ZmZlckJpbmRpbmcpOwotCi0gICAgICAgIG1C
dWZmZXJWaWV3cy5yZWxlYXNlKGNvbnRleHRWayk7Ci0gICAgICAgIG1CdWZmZXJWaWV3cy5pbml0
KHJlbmRlcmVyLCBvZmZzZXQsIHNpemUpOwotICAgICAgICByZXR1cm4gYW5nbGU6OlJlc3VsdDo6
Q29udGludWU7Ci0gICAgfQorICAgIEFTU0VSVChtU3RhdGUuZ2V0QnVmZmVyKCkuZ2V0KCkgPT0g
bnVsbHB0cik7CiAKICAgICBWa0ltYWdlVXNhZ2VGbGFncyBvbGRVc2FnZUZsYWdzICAgPSBtSW1h
Z2VVc2FnZUZsYWdzOwogICAgIFZrSW1hZ2VDcmVhdGVGbGFncyBvbGRDcmVhdGVGbGFncyA9IG1J
bWFnZUNyZWF0ZUZsYWdzOwpAQCAtMjYyNCwxOCArMjU4MSwyNCBAQCBhbmdsZTo6UmVzdWx0IFRl
eHR1cmVWazo6c3luY1N0YXRlKGNvbnN0IGdsOjpDb250ZXh0ICpjb250ZXh0LAogICAgICAgICBt
SW1hZ2VDcmVhdGVGbGFncyB8PSBWS19JTUFHRV9DUkVBVEVfTVVUQUJMRV9GT1JNQVRfQklUOwog
ICAgIH0KIAotICAgIC8vIENyZWF0ZSBhIG5ldyBpbWFnZSBpZiB1c2VkIGFzIGF0dGFjaG1lbnQg
Zm9yIHRoZSBmaXJzdCB0aW1lLiBUaGlzIG11c3QgY2FsbGVkIGJlZm9yZQorICAgIC8vIENyZWF0
ZSBhIG5ldyBpbWFnZSBpZiB1c2VkIGFzIGF0dGFjaG1lbnQgZm9yIHRoZSBmaXJzdCB0aW1lLiBU
aGlzIG11c3QgYmUgY2FsbGVkIGJlZm9yZQogICAgIC8vIHByZXBhcmVGb3JHZW5lcmF0ZU1pcG1h
cCBzaW5jZSB0aGlzIGNoYW5nZXMgdGhlIGZvcm1hdCB3aGljaCBwcmVwYXJlRm9yR2VuZXJhdGVN
aXBtYXAgcmVsaWVzCiAgICAgLy8gb24uCiAgICAgaWYgKG1TdGF0ZS5oYXNCZWVuQm91bmRBc0F0
dGFjaG1lbnQoKSkKICAgICB7Ci0gICAgICAgIEFOR0xFX1RSWShlbnN1cmVSZW5kZXJhYmxlKGNv
bnRleHRWaykpOworICAgICAgICBUZXh0dXJlVXBkYXRlUmVzdWx0IHVwZGF0ZVJlc3VsdCA9IFRl
eHR1cmVVcGRhdGVSZXN1bHQ6OkltYWdlVW5hZmZlY3RlZDsKKyAgICAgICAgQU5HTEVfVFJZKGVu
c3VyZVJlbmRlcmFibGUoY29udGV4dFZrLCAmdXBkYXRlUmVzdWx0KSk7CisgICAgICAgIGlmICh1
cGRhdGVSZXN1bHQgPT0gVGV4dHVyZVVwZGF0ZVJlc3VsdDo6SW1hZ2VSZXNwZWNpZmllZCkKKyAg
ICAgICAgeworICAgICAgICAgICAgb2xkVXNhZ2VGbGFncyAgPSBtSW1hZ2VVc2FnZUZsYWdzOwor
ICAgICAgICAgICAgb2xkQ3JlYXRlRmxhZ3MgPSBtSW1hZ2VDcmVhdGVGbGFnczsKKyAgICAgICAg
fQogICAgIH0KIAogICAgIC8vIEJlZm9yZSByZWRlZmluaW5nIHRoZSBpbWFnZSBmb3IgYW55IHJl
YXNvbiwgY2hlY2sgdG8gc2VlIGlmIGl0J3MgYWJvdXQgdG8gZ28gdGhyb3VnaCBtaXBtYXAKICAg
ICAvLyBnZW5lcmF0aW9uLiAgSW4gdGhhdCBjYXNlLCBkcm9wIGV2ZXJ5IHN0YWdlZCBjaGFuZ2Ug
Zm9yIHRoZSBzdWJzZXF1ZW50IG1pcHMgYWZ0ZXIgYmFzZSwgYW5kCiAgICAgLy8gbWFrZSBzdXJl
IHRoZSBpbWFnZSBpcyBjcmVhdGVkIHdpdGggdGhlIGNvbXBsZXRlIG1pcCBjaGFpbi4KLSAgICBi
b29sIGlzR2VuZXJhdGVNaXBtYXAgPSBzb3VyY2UgPT0gZ2w6OkNvbW1hbmQ6OkdlbmVyYXRlTWlw
bWFwOworICAgIGNvbnN0IGJvb2wgaXNHZW5lcmF0ZU1pcG1hcCA9IHNvdXJjZSA9PSBnbDo6Q29t
bWFuZDo6R2VuZXJhdGVNaXBtYXA7CiAgICAgaWYgKGlzR2VuZXJhdGVNaXBtYXApCiAgICAgewog
ICAgICAgICBwcmVwYXJlRm9yR2VuZXJhdGVNaXBtYXAoY29udGV4dFZrKTsKQEAgLTI2NTUsMTIg
KzI2MTgsMTMgQEAgYW5nbGU6OlJlc3VsdCBUZXh0dXJlVms6OnN5bmNTdGF0ZShjb25zdCBnbDo6
Q29udGV4dCAqY29udGV4dCwKICAgICB9CiAKICAgICAvLyBTZXQgYmFzZSBhbmQgbWF4IGxldmVs
IGJlZm9yZSBpbml0aWFsaXppbmcgdGhlIGltYWdlCi0gICAgYm9vbCBkaWRSZXNwZWNpZnkgPSBm
YWxzZTsKLSAgICBBTkdMRV9UUlkobWF5YmVVcGRhdGVCYXNlTWF4TGV2ZWxzKGNvbnRleHRWaywg
JmRpZFJlc3BlY2lmeSkpOworICAgIFRleHR1cmVVcGRhdGVSZXN1bHQgdXBkYXRlUmVzdWx0ID0g
VGV4dHVyZVVwZGF0ZVJlc3VsdDo6SW1hZ2VVbmFmZmVjdGVkOworICAgIEFOR0xFX1RSWShtYXli
ZVVwZGF0ZUJhc2VNYXhMZXZlbHMoY29udGV4dFZrLCAmdXBkYXRlUmVzdWx0KSk7CiAKICAgICAv
LyBVcGRhdGluZyBsZXZlbHMgY291bGQgaGF2ZSByZXNwZWNpZmllZCB0aGUgc3RvcmFnZSwgcmVj
YXB0dXJlIG1JbWFnZUNyZWF0ZUZsYWdzCi0gICAgaWYgKGRpZFJlc3BlY2lmeSkKKyAgICBpZiAo
dXBkYXRlUmVzdWx0ID09IFRleHR1cmVVcGRhdGVSZXN1bHQ6OkltYWdlUmVzcGVjaWZpZWQpCiAg
ICAgeworICAgICAgICBvbGRVc2FnZUZsYWdzICA9IG1JbWFnZVVzYWdlRmxhZ3M7CiAgICAgICAg
IG9sZENyZWF0ZUZsYWdzID0gbUltYWdlQ3JlYXRlRmxhZ3M7CiAgICAgfQogCkBAIC0yNjY4LDgg
KzI2MzIsNyBAQCBhbmdsZTo6UmVzdWx0IFRleHR1cmVWazo6c3luY1N0YXRlKGNvbnN0IGdsOjpD
b250ZXh0ICpjb250ZXh0LAogICAgIC8vIHRoZW4gaGF2ZSBtb3JlIGxldmVscyBkZWZpbmVkIGlu
IGl0IGFuZCBtaXBtYXBwaW5nIGVuYWJsZWQuICBJbiB0aGF0IGNhc2UsIHRoZSBpbWFnZSBuZWVk
cwogICAgIC8vIHRvIGJlIHJlY3JlYXRlZC4KICAgICBib29sIGlzTWlwbWFwRW5hYmxlZEJ5TWlu
RmlsdGVyID0gZmFsc2U7Ci0gICAgaWYgKCFpc0dlbmVyYXRlTWlwbWFwICYmIG1JbWFnZSAmJiBt
SW1hZ2UtPnZhbGlkKCkgJiYKLSAgICAgICAgZGlydHlCaXRzLnRlc3QoZ2w6OlRleHR1cmU6OkRJ
UlRZX0JJVF9NSU5fRklMVEVSKSkKKyAgICBpZiAoIWlzR2VuZXJhdGVNaXBtYXAgJiYgbUltYWdl
ICYmIG1JbWFnZS0+dmFsaWQoKSkKICAgICB7CiAgICAgICAgIGlzTWlwbWFwRW5hYmxlZEJ5TWlu
RmlsdGVyID0KICAgICAgICAgICAgIG1JbWFnZS0+Z2V0TGV2ZWxDb3VudCgpIDwgZ2V0TWlwTGV2
ZWxDb3VudChJbWFnZU1pcExldmVsczo6RW5hYmxlZExldmVscyk7CkBAIC0yNzA4LDcgKzI2NzEs
MzYgQEAgYW5nbGU6OlJlc3VsdCBUZXh0dXJlVms6OnN5bmNTdGF0ZShjb25zdCBnbDo6Q29udGV4
dCAqY29udGV4dCwKICAgICAgICAgQU5HTEVfVFJZKHJlc3BlY2lmeUltYWdlU3RvcmFnZShjb250
ZXh0VmspKTsKICAgICB9CiAKKyAgICByZXR1cm4gYW5nbGU6OlJlc3VsdDo6Q29udGludWU7Cit9
CisKK2FuZ2xlOjpSZXN1bHQgVGV4dHVyZVZrOjpzeW5jU3RhdGUoY29uc3QgZ2w6OkNvbnRleHQg
KmNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdsOjpU
ZXh0dXJlOjpEaXJ0eUJpdHMgJmRpcnR5Qml0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZ2w6OkNvbW1hbmQgc291cmNlKQoreworICAgIENvbnRleHRWayAqY29udGV4dFZr
ID0gdms6OkdldEltcGwoY29udGV4dCk7CisgICAgUmVuZGVyZXJWayAqcmVuZGVyZXIgPSBjb250
ZXh0VmstPmdldFJlbmRlcmVyKCk7CisKKyAgICAvLyBJZiB0aGlzIGlzIGEgdGV4dHVyZSBidWZm
ZXIsIHJlbGVhc2UgYnVmZmVyIHZpZXdzLiAgVGhlcmUncyBub3RoaW5nIGVsc2UgdG8gc3luYy4g
IFRoZQorICAgIC8vIGltYWdlIG11c3QgYWxyZWFkeSBiZSBkZWxldGVkLCBhbmQgdGhlIHNhbXBs
ZXIgcmVzZXQuCisgICAgaWYgKG1TdGF0ZS5nZXRCdWZmZXIoKS5nZXQoKSAhPSBudWxscHRyKQor
ICAgIHsKKyAgICAgICAgQVNTRVJUKG1JbWFnZSA9PSBudWxscHRyKTsKKworICAgICAgICBjb25z
dCBnbDo6T2Zmc2V0QmluZGluZ1BvaW50ZXI8Z2w6OkJ1ZmZlcj4gJmJ1ZmZlckJpbmRpbmcgPSBt
U3RhdGUuZ2V0QnVmZmVyKCk7CisKKyAgICAgICAgY29uc3QgVmtEZXZpY2VTaXplIG9mZnNldCA9
IGJ1ZmZlckJpbmRpbmcuZ2V0T2Zmc2V0KCk7CisgICAgICAgIGNvbnN0IFZrRGV2aWNlU2l6ZSBz
aXplICAgPSBnbDo6R2V0Qm91bmRCdWZmZXJBdmFpbGFibGVTaXplKGJ1ZmZlckJpbmRpbmcpOwor
CisgICAgICAgIG1CdWZmZXJWaWV3cy5yZWxlYXNlKGNvbnRleHRWayk7CisgICAgICAgIG1CdWZm
ZXJWaWV3cy5pbml0KHJlbmRlcmVyLCBvZmZzZXQsIHNpemUpOworICAgICAgICByZXR1cm4gYW5n
bGU6OlJlc3VsdDo6Q29udGludWU7CisgICAgfQorCisgICAgQU5HTEVfVFJZKHJlc3BlY2lmeUlt
YWdlU3RvcmFnZUlmTmVjZXNzYXJ5KGNvbnRleHRWaywgc291cmNlKSk7CisKICAgICAvLyBJbml0
aWFsaXplIHRoZSBpbWFnZSBzdG9yYWdlIGFuZCBmbHVzaCB0aGUgcGl4ZWwgYnVmZmVyLgorICAg
IGNvbnN0IGJvb2wgaXNHZW5lcmF0ZU1pcG1hcCA9IHNvdXJjZSA9PSBnbDo6Q29tbWFuZDo6R2Vu
ZXJhdGVNaXBtYXA7CiAgICAgQU5HTEVfVFJZKGVuc3VyZUltYWdlSW5pdGlhbGl6ZWQoY29udGV4
dFZrLCBpc0dlbmVyYXRlTWlwbWFwID8gSW1hZ2VNaXBMZXZlbHM6OkZ1bGxNaXBDaGFpbgogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA6IEltYWdlTWlwTGV2ZWxzOjpFbmFibGVkTGV2ZWxzKSk7CiAKQEAgLTI3NjEsNiArMjc1
Myw3IEBAIGFuZ2xlOjpSZXN1bHQgVGV4dHVyZVZrOjpzeW5jU3RhdGUoY29uc3QgZ2w6OkNvbnRl
eHQgKmNvbnRleHQsCiB9CiAKIGFuZ2xlOjpSZXN1bHQgVGV4dHVyZVZrOjppbml0aWFsaXplQ29u
dGVudHMoY29uc3QgZ2w6OkNvbnRleHQgKmNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEdMZW51bSBiaW5kaW5nLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnbDo6SW1hZ2VJbmRleCAmaW1hZ2VJbmRl
eCkKIHsKICAgICBDb250ZXh0VmsgKmNvbnRleHRWayAgICAgID0gdms6OkdldEltcGwoY29udGV4
dCk7CkBAIC0zNDA2LDcgKzMzOTksOCBAQCBhbmdsZTo6UmVzdWx0IFRleHR1cmVWazo6ZW5zdXJl
TXV0YWJsZShDb250ZXh0VmsgKmNvbnRleHRWaykKICAgICByZXR1cm4gcmVmcmVzaEltYWdlVmll
d3MoY29udGV4dFZrKTsKIH0KIAotYW5nbGU6OlJlc3VsdCBUZXh0dXJlVms6OmVuc3VyZVJlbmRl
cmFibGUoQ29udGV4dFZrICpjb250ZXh0VmspCithbmdsZTo6UmVzdWx0IFRleHR1cmVWazo6ZW5z
dXJlUmVuZGVyYWJsZShDb250ZXh0VmsgKmNvbnRleHRWaywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFRleHR1cmVVcGRhdGVSZXN1bHQgKnVwZGF0ZVJlc3VsdE91
dCkKIHsKICAgICBpZiAobVJlcXVpcmVkSW1hZ2VBY2Nlc3MgPT0gdms6OkltYWdlQWNjZXNzOjpS
ZW5kZXJhYmxlKQogICAgIHsKQEAgLTM0ODQsNiArMzQ3OCw4IEBAIGFuZ2xlOjpSZXN1bHQgVGV4
dHVyZVZrOjplbnN1cmVSZW5kZXJhYmxlKENvbnRleHRWayAqY29udGV4dFZrKQogICAgIEFOR0xF
X1RSWShyZXNwZWNpZnlJbWFnZVN0b3JhZ2UoY29udGV4dFZrKSk7CiAgICAgQU5HTEVfVFJZKGVu
c3VyZUltYWdlSW5pdGlhbGl6ZWQoY29udGV4dFZrLCBJbWFnZU1pcExldmVsczo6RW5hYmxlZExl
dmVscykpOwogCisgICAgKnVwZGF0ZVJlc3VsdE91dCA9IFRleHR1cmVVcGRhdGVSZXN1bHQ6Oklt
YWdlUmVzcGVjaWZpZWQ7CisKICAgICByZXR1cm4gcmVmcmVzaEltYWdlVmlld3MoY29udGV4dFZr
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xF
L3JlbmRlcmVyL3Z1bGthbi9UZXh0dXJlVmsuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3Ny
Yy9saWJBTkdMRS9yZW5kZXJlci92dWxrYW4vVGV4dHVyZVZrLmgKaW5kZXggNGJlZTQ5MTAxYzE1
YTJjNGVlZWIzN2Q1MzdiNTBkZjNmZTZkZGFmYS4uMDVmMzczYTU0Nzk0ZTExOTZmYWVhZjE1MDlm
NWVmNzA5MjQ5MmIxOCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xp
YkFOR0xFL3JlbmRlcmVyL3Z1bGthbi9UZXh0dXJlVmsuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvdnVsa2FuL1RleHR1cmVWay5oCkBAIC0yNyw2
ICsyNywxMiBAQCBlbnVtIGNsYXNzIEltYWdlTWlwTGV2ZWxzCiAgICAgSW52YWxpZEVudW0gPSAy
LAogfTsKIAorZW51bSBjbGFzcyBUZXh0dXJlVXBkYXRlUmVzdWx0Cit7CisgICAgSW1hZ2VVbmFm
ZmVjdGVkLAorICAgIEltYWdlUmVzcGVjaWZpZWQsCit9OworCiBjbGFzcyBUZXh0dXJlVmsgOiBw
dWJsaWMgVGV4dHVyZUltcGwsIHB1YmxpYyBhbmdsZTo6T2JzZXJ2ZXJJbnRlcmZhY2UKIHsKICAg
cHVibGljOgpAQCAtMTgxLDYgKzE4Nyw3IEBAIGNsYXNzIFRleHR1cmVWayA6IHB1YmxpYyBUZXh0
dXJlSW1wbCwgcHVibGljIGFuZ2xlOjpPYnNlcnZlckludGVyZmFjZQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgZml4ZWRTYW1wbGVMb2NhdGlvbnMpIG92ZXJy
aWRlOwogCiAgICAgYW5nbGU6OlJlc3VsdCBpbml0aWFsaXplQ29udGVudHMoY29uc3QgZ2w6OkNv
bnRleHQgKmNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0xl
bnVtIGJpbmRpbmcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
Z2w6OkltYWdlSW5kZXggJmltYWdlSW5kZXgpIG92ZXJyaWRlOwogCiAgICAgY29uc3Qgdms6Oklt
YWdlSGVscGVyICZnZXRJbWFnZSgpIGNvbnN0CkBAIC0yNjcsNyArMjc0LDcgQEAgY2xhc3MgVGV4
dHVyZVZrIDogcHVibGljIFRleHR1cmVJbXBsLCBwdWJsaWMgYW5nbGU6Ok9ic2VydmVySW50ZXJm
YWNlCiAgICAgfQogCiAgICAgYW5nbGU6OlJlc3VsdCBlbnN1cmVNdXRhYmxlKENvbnRleHRWayAq
Y29udGV4dFZrKTsKLSAgICBhbmdsZTo6UmVzdWx0IGVuc3VyZVJlbmRlcmFibGUoQ29udGV4dFZr
ICpjb250ZXh0VmspOworICAgIGFuZ2xlOjpSZXN1bHQgZW5zdXJlUmVuZGVyYWJsZShDb250ZXh0
VmsgKmNvbnRleHRWaywgVGV4dHVyZVVwZGF0ZVJlc3VsdCAqdXBkYXRlUmVzdWx0T3V0KTsKIAog
ICAgIGJvb2wgZ2V0QW5kUmVzZXRJbW11dGFibGVTYW1wbGVyRGlydHlTdGF0ZSgpCiAgICAgewpA
QCAtNDUzLDYgKzQ2MCwxNCBAQCBjbGFzcyBUZXh0dXJlVmsgOiBwdWJsaWMgVGV4dHVyZUltcGws
IHB1YmxpYyBhbmdsZTo6T2JzZXJ2ZXJJbnRlcmZhY2UKICAgICAvLyBGbHVzaCBpbWFnZSdzIHN0
YWdlZCB1cGRhdGVzIGZvciBhbGwgbGV2ZWxzIGFuZCBsYXllcnMuCiAgICAgYW5nbGU6OlJlc3Vs
dCBmbHVzaEltYWdlU3RhZ2VkVXBkYXRlcyhDb250ZXh0VmsgKmNvbnRleHRWayk7CiAKKyAgICAv
LyBGb3IgdmFyaW91cyByZWFzb25zLCB0aGUgdW5kZXJseWluZyBpbWFnZSBtYXkgbmVlZCB0byBi
ZSByZXNwZWNpZmllZC4gIEZvciBleGFtcGxlIGJlY2F1c2UKKyAgICAvLyBiYXNlL21heCBsZXZl
bCBjaGFuZ2VkLCB1c2FnZS9jcmVhdGUgZmxhZ3MgaGF2ZSBjaGFuZ2VkLCB0aGUgZm9ybWF0IG5l
ZWRzIG1vZGlmaWNhdGlvbiB0bworICAgIC8vIGJlY29tZSByZW5kZXJhYmxlLCBnZW5lcmF0ZSBt
aXBtYXAgaXMgYWRkaW5nIGxldmVscywgZXRjLiAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkK
KyAgICAvLyBzeW5jU3RhdGUgYW5kIGdldEF0dGFjaG1lbnRSZW5kZXJUYXJnZXQuICBUaGUgbGF0
dGVyIGNhbGxzIHRoaXMgZnVuY3Rpb24gdG8gYmUgYWJsZSB0byBzeW5jCisgICAgLy8gdGhlIHRl
eHR1cmUncyBpbWFnZSB3aGlsZSBhbiBhdHRhY2hlZCBmcmFtZWJ1ZmZlciBpcyBiZWluZyBzeW5j
ZWQuICBOb3RlIHRoYXQgd2UgY3VycmVudGx5CisgICAgLy8gc3luYyBmcmFtZWJ1ZmZlcnMgYmVm
b3JlIHRleHR1cmVzIHNvIHRoYXQgdGhlIGRlZmVycmVkIGNsZWFyIG9wdGltaXphdGlvbiB3b3Jr
cy4KKyAgICBhbmdsZTo6UmVzdWx0IHJlc3BlY2lmeUltYWdlU3RvcmFnZUlmTmVjZXNzYXJ5KENv
bnRleHRWayAqY29udGV4dFZrLCBnbDo6Q29tbWFuZCBzb3VyY2UpOworCiAgICAgY29uc3QgZ2w6
OkludGVybmFsRm9ybWF0ICZnZXRJbXBsZW1lbnRhdGlvblNpemVkRm9ybWF0KGNvbnN0IGdsOjpD
b250ZXh0ICpjb250ZXh0KSBjb25zdDsKICAgICBjb25zdCB2azo6Rm9ybWF0ICZnZXRCYXNlTGV2
ZWxGb3JtYXQoUmVuZGVyZXJWayAqcmVuZGVyZXIpIGNvbnN0OwogICAgIC8vIFF1ZXVlcyBhIGZs
dXNoIG9mIGFueSBtb2RpZmllZCBpbWFnZSBhdHRyaWJ1dGVzLiBUaGUgaW1hZ2Ugd2lsbCBiZSBy
ZWFsbG9jYXRlZCB3aXRoIGl0cyBuZXcKQEAgLTQ2MCw3ICs0NzUsOCBAQCBjbGFzcyBUZXh0dXJl
VmsgOiBwdWJsaWMgVGV4dHVyZUltcGwsIHB1YmxpYyBhbmdsZTo6T2JzZXJ2ZXJJbnRlcmZhY2UK
ICAgICBhbmdsZTo6UmVzdWx0IHJlc3BlY2lmeUltYWdlU3RvcmFnZShDb250ZXh0VmsgKmNvbnRl
eHRWayk7CiAKICAgICAvLyBVcGRhdGUgYmFzZSBhbmQgbWF4IGxldmVscywgYW5kIHJlLWNyZWF0
ZSBpbWFnZSBpZiBuZWVkZWQuCi0gICAgYW5nbGU6OlJlc3VsdCBtYXliZVVwZGF0ZUJhc2VNYXhM
ZXZlbHMoQ29udGV4dFZrICpjb250ZXh0VmssIGJvb2wgKmRpZFJlc3BlY2lmeU91dCk7CisgICAg
YW5nbGU6OlJlc3VsdCBtYXliZVVwZGF0ZUJhc2VNYXhMZXZlbHMoQ29udGV4dFZrICpjb250ZXh0
VmssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGV4dHVyZVVw
ZGF0ZVJlc3VsdCAqY2hhbmdlUmVzdWx0T3V0KTsKIAogICAgIGJvb2wgaXNGYXN0VW5wYWNrUG9z
c2libGUoY29uc3Qgdms6OkZvcm1hdCAmdmtGb3JtYXQsIHNpemVfdCBvZmZzZXQpIGNvbnN0Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVy
ZXIvdnVsa2FuL1RyYW5zZm9ybUZlZWRiYWNrVmsuY3BwIGIvU291cmNlL1RoaXJkUGFydHkvQU5H
TEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL3Z1bGthbi9UcmFuc2Zvcm1GZWVkYmFja1ZrLmNwcApp
bmRleCBkYmFhNGVlZWRiZjM2YzRhM2Y2Y2I4MThiNTBiZGNhYzg1Njc2NmMyLi44MDdjZjgwYmU3
N2Q1NTA1MWYzZDM3NjRiOGVjYTU3YTg5NjUzZDA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvdnVsa2FuL1RyYW5zZm9ybUZlZWRiYWNr
VmsuY3BwCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJl
ci92dWxrYW4vVHJhbnNmb3JtRmVlZGJhY2tWay5jcHAKQEAgLTIyNyw5ICsyMjcsOCBAQCB2b2lk
IFRyYW5zZm9ybUZlZWRiYWNrVms6OnVwZGF0ZURlc2NyaXB0b3JTZXRMYXlvdXQoCiAKICAgICBm
b3IgKHVpbnQzMl90IGJ1ZmZlckluZGV4ID0gMDsgYnVmZmVySW5kZXggPCB4ZmJCdWZmZXJDb3Vu
dDsgKytidWZmZXJJbmRleCkKICAgICB7Ci0gICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nIGJ1ZmZl
ck5hbWUgPSBHZXRYZmJCdWZmZXJOYW1lKGJ1ZmZlckluZGV4KTsKICAgICAgICAgY29uc3QgU2hh
ZGVySW50ZXJmYWNlVmFyaWFibGVJbmZvICZpbmZvID0KLSAgICAgICAgICAgIHZhcmlhYmxlSW5m
b01hcC5nZXQoZ2w6OlNoYWRlclR5cGU6OlZlcnRleCwgYnVmZmVyTmFtZSk7CisgICAgICAgICAg
ICB2YXJpYWJsZUluZm9NYXAuZ2V0VHJhbnNmb3JtRmVlZGJhY2tJbmZvKGdsOjpTaGFkZXJUeXBl
OjpWZXJ0ZXgsIGJ1ZmZlckluZGV4KTsKIAogICAgICAgICBBU1NFUlQoaW5mby5iaW5kaW5nICE9
IHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDMyX3Q+OjptYXgoKSk7CiAKQEAgLTM4MSw5ICszODAs
OCBAQCB2b2lkIFRyYW5zZm9ybUZlZWRiYWNrVms6OndyaXRlRGVzY3JpcHRvclNldCh2azo6Q29u
dGV4dCAqY29udGV4dCwKIHsKICAgICBBU1NFUlQoY29udGV4dC0+Z2V0UmVuZGVyZXIoKS0+Z2V0
RmVhdHVyZXMoKS5lbXVsYXRlVHJhbnNmb3JtRmVlZGJhY2suZW5hYmxlZCk7CiAKLSAgICBjb25z
dCBzdGQ6OnN0cmluZyBidWZmZXJOYW1lID0gR2V0WGZiQnVmZmVyTmFtZSgwKTsKICAgICBjb25z
dCBTaGFkZXJJbnRlcmZhY2VWYXJpYWJsZUluZm8gJmluZm8gPQotICAgICAgICB2YXJpYWJsZUlu
Zm9NYXAuZ2V0KGdsOjpTaGFkZXJUeXBlOjpWZXJ0ZXgsIGJ1ZmZlck5hbWUpOworICAgICAgICB2
YXJpYWJsZUluZm9NYXAuZ2V0VHJhbnNmb3JtRmVlZGJhY2tJbmZvKGdsOjpTaGFkZXJUeXBlOjpW
ZXJ0ZXgsIDApOwogCiAgICAgVmtXcml0ZURlc2NyaXB0b3JTZXQgJndyaXRlRGVzY3JpcHRvcklu
Zm8gPSB1cGRhdGVCdWlsZGVyLT5hbGxvY1dyaXRlRGVzY3JpcHRvclNldCgpOwogICAgIHdyaXRl
RGVzY3JpcHRvckluZm8uc1R5cGUgICAgICAgICAgICAgICAgID0gVktfU1RSVUNUVVJFX1RZUEVf
V1JJVEVfREVTQ1JJUFRPUl9TRVQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdM
RS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvdnVsa2FuL1V0aWxzVmsuY3BwIGIvU291cmNlL1RoaXJk
UGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL3Z1bGthbi9VdGlsc1ZrLmNwcAppbmRl
eCAyM2I1NmVkMzY0YWFhMmRiMTdkM2Q5ZWUxY2Q2ZGM2MzdjN2IwMDJhLi43MTZlMmQ3Mzc3Y2M1
ODIxMGViOTdkNTJjZDFiZWU5OGRjZWRlYWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvdnVsa2FuL1V0aWxzVmsuY3BwCisrKyBiL1Nv
dXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci92dWxrYW4vVXRpbHNW
ay5jcHAKQEAgLTEzLDEwICsxMywxMCBAQAogCiAjaW5jbHVkZSAibGliQU5HTEUvcmVuZGVyZXIv
Z2xzbGFuZ193cmFwcGVyX3V0aWxzLmgiCiAjaW5jbHVkZSAibGliQU5HTEUvcmVuZGVyZXIvdnVs
a2FuL0NvbnRleHRWay5oIgotI2luY2x1ZGUgImxpYkFOR0xFL3JlbmRlcmVyL3Z1bGthbi9EaXNw
bGF5VmsuaCIKICNpbmNsdWRlICJsaWJBTkdMRS9yZW5kZXJlci92dWxrYW4vRnJhbWVidWZmZXJW
ay5oIgogI2luY2x1ZGUgImxpYkFOR0xFL3JlbmRlcmVyL3Z1bGthbi9SZW5kZXJUYXJnZXRWay5o
IgogI2luY2x1ZGUgImxpYkFOR0xFL3JlbmRlcmVyL3Z1bGthbi9SZW5kZXJlclZrLmgiCisjaW5j
bHVkZSAibGliQU5HTEUvcmVuZGVyZXIvdnVsa2FuL1N1cmZhY2VWay5oIgogI2luY2x1ZGUgImxp
YkFOR0xFL3JlbmRlcmVyL3Z1bGthbi92a191dGlscy5oIgogCiBuYW1lc3BhY2UgcngKQEAgLTEw
NjYsNyArMTA2Niw3IEBAIHVpbnQzMl90IFV0aWxzVms6OkdldEdlbmVyYXRlTWlwbWFwTWF4TGV2
ZWxzKENvbnRleHRWayAqY29udGV4dFZrKQogICAgICAgICAgICAgICAgOiBrR2VuZXJhdGVNaXBt
YXBNYXhMZXZlbHM7CiB9CiAKLVV0aWxzVms6OlV0aWxzVmsoKSA6IG1QZXJmQ291bnRlcnN7fSwg
bUN1bXVsYXRpdmVQZXJmQ291bnRlcnN7fSB7fQorVXRpbHNWazo6VXRpbHNWaygpID0gZGVmYXVs
dDsKIAogVXRpbHNWazo6flV0aWxzVmsoKSA9IGRlZmF1bHQ7CiAKQEAgLTEwNzQsOCArMTA3NCw2
IEBAIHZvaWQgVXRpbHNWazo6ZGVzdHJveShSZW5kZXJlclZrICpyZW5kZXJlcikKIHsKICAgICBW
a0RldmljZSBkZXZpY2UgPSByZW5kZXJlci0+Z2V0RGV2aWNlKCk7CiAKLSAgICBvdXRwdXRDdW11
bGF0aXZlUGVyZkNvdW50ZXJzKCk7Ci0KICAgICBmb3IgKEZ1bmN0aW9uIGYgOiBhbmdsZTo6QWxs
RW51bXM8RnVuY3Rpb24+KCkpCiAgICAgewogICAgICAgICBmb3IgKGF1dG8gJmRlc2NyaXB0b3JT
ZXRMYXlvdXQgOiBtRGVzY3JpcHRvclNldExheW91dHNbZl0pCkBAIC0xNDUwLDE0ICsxNDQ4LDE1
IEBAIGFuZ2xlOjpSZXN1bHQgVXRpbHNWazo6ZW5zdXJlU2FtcGxlcnNJbml0aWFsaXplZChDb250
ZXh0VmsgKmNvbnRleHRWaykKICAgICByZXR1cm4gYW5nbGU6OlJlc3VsdDo6Q29udGludWU7CiB9
CiAKLWFuZ2xlOjpSZXN1bHQgVXRpbHNWazo6c2V0dXBDb21wdXRlUHJvZ3JhbShDb250ZXh0Vmsg
KmNvbnRleHRWaywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBG
dW5jdGlvbiBmdW5jdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB2azo6UmVmQ291bnRlZDx2azo6U2hhZGVyQW5kU2VyaWFsPiAqY3NTaGFkZXIsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdms6OlNoYWRlclByb2dyYW1I
ZWxwZXIgKnByb2dyYW0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgVmtEZXNjcmlwdG9yU2V0IGRlc2NyaXB0b3JTZXQsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgdm9pZCAqcHVzaENvbnN0YW50cywKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgcHVzaENvbnN0
YW50c1NpemUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdms6
Ok91dHNpZGVSZW5kZXJQYXNzQ29tbWFuZEJ1ZmZlciAqY29tbWFuZEJ1ZmZlcikKK2FuZ2xlOjpS
ZXN1bHQgVXRpbHNWazo6c2V0dXBDb21wdXRlUHJvZ3JhbSgKKyAgICBDb250ZXh0VmsgKmNvbnRl
eHRWaywKKyAgICBGdW5jdGlvbiBmdW5jdGlvbiwKKyAgICB2azo6UmVmQ291bnRlZDx2azo6U2hh
ZGVyQW5kU2VyaWFsPiAqY3NTaGFkZXIsCisgICAgdms6OlNoYWRlclByb2dyYW1IZWxwZXIgKnBy
b2dyYW0sCisgICAgY29uc3QgVmtEZXNjcmlwdG9yU2V0IGRlc2NyaXB0b3JTZXQsCisgICAgY29u
c3Qgdm9pZCAqcHVzaENvbnN0YW50cywKKyAgICBzaXplX3QgcHVzaENvbnN0YW50c1NpemUsCisg
ICAgdms6Ok91dHNpZGVSZW5kZXJQYXNzQ29tbWFuZEJ1ZmZlckhlbHBlciAqY29tbWFuZEJ1ZmZl
ckhlbHBlcikKIHsKICAgICBBU1NFUlQoZnVuY3Rpb24gPj0gRnVuY3Rpb246OkNvbXB1dGVTdGFy
dEluZGV4KTsKIApAQCAtMTQ2Niw3ICsxNDY1LDkgQEAgYW5nbGU6OlJlc3VsdCBVdGlsc1ZrOjpz
ZXR1cENvbXB1dGVQcm9ncmFtKENvbnRleHRWayAqY29udGV4dFZrLAogICAgIHZrOjpQaXBlbGlu
ZUhlbHBlciAqcGlwZWxpbmU7CiAgICAgcHJvZ3JhbS0+c2V0U2hhZGVyKGdsOjpTaGFkZXJUeXBl
OjpDb21wdXRlLCBjc1NoYWRlcik7CiAgICAgQU5HTEVfVFJZKHByb2dyYW0tPmdldENvbXB1dGVQ
aXBlbGluZShjb250ZXh0VmssIHBpcGVsaW5lTGF5b3V0LmdldCgpLCAmcGlwZWxpbmUpKTsKLSAg
ICBwaXBlbGluZS0+cmV0YWluKCZjb250ZXh0VmstPmdldFJlc291cmNlVXNlTGlzdCgpKTsKKyAg
ICBwaXBlbGluZS0+cmV0YWluKCZjb21tYW5kQnVmZmVySGVscGVyLT5nZXRSZXNvdXJjZVVzZUxp
c3QoKSk7CisKKyAgICB2azo6T3V0c2lkZVJlbmRlclBhc3NDb21tYW5kQnVmZmVyICpjb21tYW5k
QnVmZmVyID0gJmNvbW1hbmRCdWZmZXJIZWxwZXItPmdldENvbW1hbmRCdWZmZXIoKTsKICAgICBj
b21tYW5kQnVmZmVyLT5iaW5kQ29tcHV0ZVBpcGVsaW5lKHBpcGVsaW5lLT5nZXRQaXBlbGluZSgp
KTsKIAogICAgIGNvbnRleHRWay0+aW52YWxpZGF0ZUNvbXB1dGVQaXBlbGluZUJpbmRpbmcoKTsK
QEAgLTE1MjAsNyArMTUyMSw3IEBAIGFuZ2xlOjpSZXN1bHQgVXRpbHNWazo6c2V0dXBHcmFwaGlj
c1Byb2dyYW0oQ29udGV4dFZrICpjb250ZXh0VmssCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKnBpcGVsaW5lQ2FjaGUsIHBpcGVsaW5lTGF5b3V0LmdldCgpLCAq
cGlwZWxpbmVEZXNjLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGdsOjpBdHRyaWJ1dGVzTWFzaygpLCBnbDo6Q29tcG9uZW50VHlwZU1hc2soKSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnbDo6RHJhd0J1ZmZlck1hc2soKSwg
JmRlc2NQdHIsICZoZWxwZXIpKTsKLSAgICBoZWxwZXItPnJldGFpbigmY29udGV4dFZrLT5nZXRS
ZXNvdXJjZVVzZUxpc3QoKSk7CisgICAgaGVscGVyLT5yZXRhaW4oJmNvbnRleHRWay0+Z2V0U3Rh
cnRlZFJlbmRlclBhc3NDb21tYW5kcygpLmdldFJlc291cmNlVXNlTGlzdCgpKTsKICAgICBjb21t
YW5kQnVmZmVyLT5iaW5kR3JhcGhpY3NQaXBlbGluZShoZWxwZXItPmdldFBpcGVsaW5lKCkpOwog
CiAgICAgY29udGV4dFZrLT5pbnZhbGlkYXRlR3JhcGhpY3NQaXBlbGluZUJpbmRpbmcoKTsKQEAg
LTE1NTMsMTIgKzE1NTQsMTUgQEAgYW5nbGU6OlJlc3VsdCBVdGlsc1ZrOjpjb252ZXJ0SW5kZXhC
dWZmZXIoQ29udGV4dFZrICpjb250ZXh0VmssCiAgICAgYWNjZXNzLm9uQnVmZmVyQ29tcHV0ZVNo
YWRlclJlYWQoc3JjKTsKICAgICBhY2Nlc3Mub25CdWZmZXJDb21wdXRlU2hhZGVyV3JpdGUoZHN0
KTsKIAorICAgIHZrOjpPdXRzaWRlUmVuZGVyUGFzc0NvbW1hbmRCdWZmZXJIZWxwZXIgKmNvbW1h
bmRCdWZmZXJIZWxwZXI7CiAgICAgdms6Ok91dHNpZGVSZW5kZXJQYXNzQ29tbWFuZEJ1ZmZlciAq
Y29tbWFuZEJ1ZmZlcjsKLSAgICBBTkdMRV9UUlkoY29udGV4dFZrLT5nZXRPdXRzaWRlUmVuZGVy
UGFzc0NvbW1hbmRCdWZmZXIoYWNjZXNzLCAmY29tbWFuZEJ1ZmZlcikpOworICAgIEFOR0xFX1RS
WShjb250ZXh0VmstPmdldE91dHNpZGVSZW5kZXJQYXNzQ29tbWFuZEJ1ZmZlckhlbHBlcihhY2Nl
c3MsICZjb21tYW5kQnVmZmVySGVscGVyKSk7CisgICAgY29tbWFuZEJ1ZmZlciA9ICZjb21tYW5k
QnVmZmVySGVscGVyLT5nZXRDb21tYW5kQnVmZmVyKCk7CiAKICAgICBWa0Rlc2NyaXB0b3JTZXQg
ZGVzY3JpcHRvclNldDsKICAgICB2azo6UmVmQ291bnRlZERlc2NyaXB0b3JQb29sQmluZGluZyBk
ZXNjcmlwdG9yUG9vbEJpbmRpbmc7Ci0gICAgQU5HTEVfVFJZKGFsbG9jYXRlRGVzY3JpcHRvclNl
dChjb250ZXh0VmssIEZ1bmN0aW9uOjpDb252ZXJ0SW5kZXhCdWZmZXIsICZkZXNjcmlwdG9yUG9v
bEJpbmRpbmcsCisgICAgQU5HTEVfVFJZKGFsbG9jYXRlRGVzY3JpcHRvclNldChjb250ZXh0Vmss
ICZjb21tYW5kQnVmZmVySGVscGVyLT5nZXRSZXNvdXJjZVVzZUxpc3QoKSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEZ1bmN0aW9uOjpDb252ZXJ0SW5kZXhCdWZmZXIsICZk
ZXNjcmlwdG9yUG9vbEJpbmRpbmcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAmZGVzY3JpcHRvclNldCkpOwogCiAgICAgc3RkOjphcnJheTxWa0Rlc2NyaXB0b3JCdWZmZXJJ
bmZvLCAyPiBidWZmZXJzID0ge3sKQEAgLTE1OTAsNyArMTU5NCw3IEBAIGFuZ2xlOjpSZXN1bHQg
VXRpbHNWazo6Y29udmVydEluZGV4QnVmZmVyKENvbnRleHRWayAqY29udGV4dFZrLAogCiAgICAg
QU5HTEVfVFJZKHNldHVwQ29tcHV0ZVByb2dyYW0oY29udGV4dFZrLCBGdW5jdGlvbjo6Q29udmVy
dEluZGV4QnVmZmVyLCBzaGFkZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Jm1Db252ZXJ0SW5kZXhQcm9ncmFtc1tmbGFnc10sIGRlc2NyaXB0b3JTZXQsICZzaGFkZXJQYXJh
bXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKENvbnZlcnRJbmRl
eFNoYWRlclBhcmFtcyksIGNvbW1hbmRCdWZmZXIpKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzaXplb2YoQ29udmVydEluZGV4U2hhZGVyUGFyYW1zKSwgY29tbWFuZEJ1ZmZl
ckhlbHBlcikpOwogCiAgICAgY29uc3RleHByIHVpbnQzMl90IGtJbnZvY2F0aW9uc1Blckdyb3Vw
ID0gNjQ7CiAgICAgY29uc3RleHByIHVpbnQzMl90IGtJbnZvY2F0aW9uc1BlckluZGV4ID0gMjsK
QEAgLTE2MTksMTMgKzE2MjMsMTYgQEAgYW5nbGU6OlJlc3VsdCBVdGlsc1ZrOjpjb252ZXJ0SW5k
ZXhJbmRpcmVjdEJ1ZmZlcihDb250ZXh0VmsgKmNvbnRleHRWaywKICAgICBhY2Nlc3Mub25CdWZm
ZXJDb21wdXRlU2hhZGVyV3JpdGUoZHN0SW5kaXJlY3RCdWYpOwogICAgIGFjY2Vzcy5vbkJ1ZmZl
ckNvbXB1dGVTaGFkZXJXcml0ZShkc3RJbmRleEJ1Zik7CiAKKyAgICB2azo6T3V0c2lkZVJlbmRl
clBhc3NDb21tYW5kQnVmZmVySGVscGVyICpjb21tYW5kQnVmZmVySGVscGVyOwogICAgIHZrOjpP
dXRzaWRlUmVuZGVyUGFzc0NvbW1hbmRCdWZmZXIgKmNvbW1hbmRCdWZmZXI7Ci0gICAgQU5HTEVf
VFJZKGNvbnRleHRWay0+Z2V0T3V0c2lkZVJlbmRlclBhc3NDb21tYW5kQnVmZmVyKGFjY2Vzcywg
JmNvbW1hbmRCdWZmZXIpKTsKKyAgICBBTkdMRV9UUlkoY29udGV4dFZrLT5nZXRPdXRzaWRlUmVu
ZGVyUGFzc0NvbW1hbmRCdWZmZXJIZWxwZXIoYWNjZXNzLCAmY29tbWFuZEJ1ZmZlckhlbHBlcikp
OworICAgIGNvbW1hbmRCdWZmZXIgPSAmY29tbWFuZEJ1ZmZlckhlbHBlci0+Z2V0Q29tbWFuZEJ1
ZmZlcigpOwogCiAgICAgVmtEZXNjcmlwdG9yU2V0IGRlc2NyaXB0b3JTZXQ7CiAgICAgdms6OlJl
ZkNvdW50ZWREZXNjcmlwdG9yUG9vbEJpbmRpbmcgZGVzY3JpcHRvclBvb2xCaW5kaW5nOwotICAg
IEFOR0xFX1RSWShhbGxvY2F0ZURlc2NyaXB0b3JTZXQoY29udGV4dFZrLCBGdW5jdGlvbjo6Q29u
dmVydEluZGV4SW5kaXJlY3RCdWZmZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAmZGVzY3JpcHRvclBvb2xCaW5kaW5nLCAmZGVzY3JpcHRvclNldCkpOworICAgIEFOR0xF
X1RSWShhbGxvY2F0ZURlc2NyaXB0b3JTZXQoY29udGV4dFZrLCAmY29tbWFuZEJ1ZmZlckhlbHBl
ci0+Z2V0UmVzb3VyY2VVc2VMaXN0KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBGdW5jdGlvbjo6Q29udmVydEluZGV4SW5kaXJlY3RCdWZmZXIsICZkZXNjcmlwdG9yUG9v
bEJpbmRpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZGVzY3JpcHRv
clNldCkpOwogCiAgICAgc3RkOjphcnJheTxWa0Rlc2NyaXB0b3JCdWZmZXJJbmZvLCA0PiBidWZm
ZXJzID0ge3sKICAgICAgICAge2RzdEluZGV4QnVmLT5nZXRCdWZmZXIoKS5nZXRIYW5kbGUoKSwg
ZHN0SW5kZXhCdWYtPmdldE9mZnNldCgpLCBkc3RJbmRleEJ1Zi0+Z2V0U2l6ZSgpfSwKQEAgLTE2
NjEsNyArMTY2OCw3IEBAIGFuZ2xlOjpSZXN1bHQgVXRpbHNWazo6Y29udmVydEluZGV4SW5kaXJl
Y3RCdWZmZXIoQ29udGV4dFZrICpjb250ZXh0VmssCiAKICAgICBBTkdMRV9UUlkoc2V0dXBDb21w
dXRlUHJvZ3JhbShjb250ZXh0VmssIEZ1bmN0aW9uOjpDb252ZXJ0SW5kZXhJbmRpcmVjdEJ1ZmZl
ciwgc2hhZGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZtQ29udmVydElu
ZGV4UHJvZ3JhbXNbZmxhZ3NdLCBkZXNjcmlwdG9yU2V0LCAmc2hhZGVyUGFyYW1zLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihDb252ZXJ0SW5kZXhJbmRpcmVjdFNo
YWRlclBhcmFtcyksIGNvbW1hbmRCdWZmZXIpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzaXplb2YoQ29udmVydEluZGV4SW5kaXJlY3RTaGFkZXJQYXJhbXMpLCBjb21tYW5k
QnVmZmVySGVscGVyKSk7CiAKICAgICBjb25zdGV4cHIgdWludDMyX3Qga0ludm9jYXRpb25zUGVy
R3JvdXAgPSA2NDsKICAgICBjb25zdGV4cHIgdWludDMyX3Qga0ludm9jYXRpb25zUGVySW5kZXgg
PSAyOwpAQCAtMTY5MSwxMiArMTY5OCwxNSBAQCBhbmdsZTo6UmVzdWx0IFV0aWxzVms6OmNvbnZl
cnRMaW5lTG9vcEluZGV4SW5kaXJlY3RCdWZmZXIoCiAgICAgYWNjZXNzLm9uQnVmZmVyQ29tcHV0
ZVNoYWRlcldyaXRlKGRzdEluZGlyZWN0QnVmZmVyKTsKICAgICBhY2Nlc3Mub25CdWZmZXJDb21w
dXRlU2hhZGVyV3JpdGUoZHN0SW5kZXhCdWZmZXIpOwogCisgICAgdms6Ok91dHNpZGVSZW5kZXJQ
YXNzQ29tbWFuZEJ1ZmZlckhlbHBlciAqY29tbWFuZEJ1ZmZlckhlbHBlcjsKICAgICB2azo6T3V0
c2lkZVJlbmRlclBhc3NDb21tYW5kQnVmZmVyICpjb21tYW5kQnVmZmVyOwotICAgIEFOR0xFX1RS
WShjb250ZXh0VmstPmdldE91dHNpZGVSZW5kZXJQYXNzQ29tbWFuZEJ1ZmZlcihhY2Nlc3MsICZj
b21tYW5kQnVmZmVyKSk7CisgICAgQU5HTEVfVFJZKGNvbnRleHRWay0+Z2V0T3V0c2lkZVJlbmRl
clBhc3NDb21tYW5kQnVmZmVySGVscGVyKGFjY2VzcywgJmNvbW1hbmRCdWZmZXJIZWxwZXIpKTsK
KyAgICBjb21tYW5kQnVmZmVyID0gJmNvbW1hbmRCdWZmZXJIZWxwZXItPmdldENvbW1hbmRCdWZm
ZXIoKTsKIAogICAgIFZrRGVzY3JpcHRvclNldCBkZXNjcmlwdG9yU2V0OwogICAgIHZrOjpSZWZD
b3VudGVkRGVzY3JpcHRvclBvb2xCaW5kaW5nIGRlc2NyaXB0b3JQb29sQmluZGluZzsKLSAgICBB
TkdMRV9UUlkoYWxsb2NhdGVEZXNjcmlwdG9yU2V0KGNvbnRleHRWaywgRnVuY3Rpb246OkNvbnZl
cnRJbmRleEluZGlyZWN0TGluZUxvb3BCdWZmZXIsCisgICAgQU5HTEVfVFJZKGFsbG9jYXRlRGVz
Y3JpcHRvclNldChjb250ZXh0VmssICZjb21tYW5kQnVmZmVySGVscGVyLT5nZXRSZXNvdXJjZVVz
ZUxpc3QoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZ1bmN0aW9uOjpD
b252ZXJ0SW5kZXhJbmRpcmVjdExpbmVMb29wQnVmZmVyLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJmRlc2NyaXB0b3JQb29sQmluZGluZywgJmRlc2NyaXB0b3JTZXQpKTsK
IAogICAgIHN0ZDo6YXJyYXk8VmtEZXNjcmlwdG9yQnVmZmVySW5mbywgND4gYnVmZmVycyA9IHt7
CkBAIC0xNzM0LDcgKzE3NDQsNyBAQCBhbmdsZTo6UmVzdWx0IFV0aWxzVms6OmNvbnZlcnRMaW5l
TG9vcEluZGV4SW5kaXJlY3RCdWZmZXIoCiAgICAgQU5HTEVfVFJZKHNldHVwQ29tcHV0ZVByb2dy
YW0oY29udGV4dFZrLCBGdW5jdGlvbjo6Q29udmVydEluZGV4SW5kaXJlY3RMaW5lTG9vcEJ1ZmZl
ciwgc2hhZGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZtQ29udmVydElu
ZGV4SW5kaXJlY3RMaW5lTG9vcFByb2dyYW1zW2ZsYWdzXSwgZGVzY3JpcHRvclNldCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmc2hhZGVyUGFyYW1zLCBzaXplb2YoQ29udmVy
dEluZGV4SW5kaXJlY3RMaW5lTG9vcFNoYWRlclBhcmFtcyksCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29tbWFuZEJ1ZmZlcikpOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbW1hbmRCdWZmZXJIZWxwZXIpKTsKIAogICAgIGNvbW1hbmRCdWZmZXItPmRp
c3BhdGNoKDEsIDEsIDEpOwogCkBAIC0xNzU3LDEzICsxNzY3LDE2IEBAIGFuZ2xlOjpSZXN1bHQg
VXRpbHNWazo6Y29udmVydExpbmVMb29wQXJyYXlJbmRpcmVjdEJ1ZmZlcigKICAgICBhY2Nlc3Mu
b25CdWZmZXJDb21wdXRlU2hhZGVyV3JpdGUoZHN0SW5kaXJlY3RCdWZmZXIpOwogICAgIGFjY2Vz
cy5vbkJ1ZmZlckNvbXB1dGVTaGFkZXJXcml0ZShkc3RJbmRleEJ1ZmZlcik7CiAKKyAgICB2azo6
T3V0c2lkZVJlbmRlclBhc3NDb21tYW5kQnVmZmVySGVscGVyICpjb21tYW5kQnVmZmVySGVscGVy
OwogICAgIHZrOjpPdXRzaWRlUmVuZGVyUGFzc0NvbW1hbmRCdWZmZXIgKmNvbW1hbmRCdWZmZXI7
Ci0gICAgQU5HTEVfVFJZKGNvbnRleHRWay0+Z2V0T3V0c2lkZVJlbmRlclBhc3NDb21tYW5kQnVm
ZmVyKGFjY2VzcywgJmNvbW1hbmRCdWZmZXIpKTsKKyAgICBBTkdMRV9UUlkoY29udGV4dFZrLT5n
ZXRPdXRzaWRlUmVuZGVyUGFzc0NvbW1hbmRCdWZmZXJIZWxwZXIoYWNjZXNzLCAmY29tbWFuZEJ1
ZmZlckhlbHBlcikpOworICAgIGNvbW1hbmRCdWZmZXIgPSAmY29tbWFuZEJ1ZmZlckhlbHBlci0+
Z2V0Q29tbWFuZEJ1ZmZlcigpOwogCiAgICAgVmtEZXNjcmlwdG9yU2V0IGRlc2NyaXB0b3JTZXQ7
CiAgICAgdms6OlJlZkNvdW50ZWREZXNjcmlwdG9yUG9vbEJpbmRpbmcgZGVzY3JpcHRvclBvb2xC
aW5kaW5nOwotICAgIEFOR0xFX1RSWShhbGxvY2F0ZURlc2NyaXB0b3JTZXQoY29udGV4dFZrLCBG
dW5jdGlvbjo6Q29udmVydEluZGlyZWN0TGluZUxvb3BCdWZmZXIsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAmZGVzY3JpcHRvclBvb2xCaW5kaW5nLCAmZGVzY3JpcHRvclNl
dCkpOworICAgIEFOR0xFX1RSWShhbGxvY2F0ZURlc2NyaXB0b3JTZXQoY29udGV4dFZrLCAmY29t
bWFuZEJ1ZmZlckhlbHBlci0+Z2V0UmVzb3VyY2VVc2VMaXN0KCksCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBGdW5jdGlvbjo6Q29udmVydEluZGlyZWN0TGluZUxvb3BCdWZm
ZXIsICZkZXNjcmlwdG9yUG9vbEJpbmRpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAmZGVzY3JpcHRvclNldCkpOwogCiAgICAgc3RkOjphcnJheTxWa0Rlc2NyaXB0b3JC
dWZmZXJJbmZvLCAzPiBidWZmZXJzID0ge3sKICAgICAgICAge3NyY0luZGlyZWN0QnVmZmVyLT5n
ZXRCdWZmZXIoKS5nZXRIYW5kbGUoKSwgc3JjSW5kaXJlY3RCdWZmZXItPmdldE9mZnNldCgpLApA
QCAtMTc5Nyw3ICsxODEwLDcgQEAgYW5nbGU6OlJlc3VsdCBVdGlsc1ZrOjpjb252ZXJ0TGluZUxv
b3BBcnJheUluZGlyZWN0QnVmZmVyKAogICAgIEFOR0xFX1RSWShzZXR1cENvbXB1dGVQcm9ncmFt
KGNvbnRleHRWaywgRnVuY3Rpb246OkNvbnZlcnRJbmRpcmVjdExpbmVMb29wQnVmZmVyLCBzaGFk
ZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm1Db252ZXJ0SW5kaXJlY3RM
aW5lTG9vcFByb2dyYW1zW2ZsYWdzXSwgZGVzY3JpcHRvclNldCwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAmc2hhZGVyUGFyYW1zLCBzaXplb2YoQ29udmVydEluZGlyZWN0TGlu
ZUxvb3BTaGFkZXJQYXJhbXMpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bW1hbmRCdWZmZXIpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21tYW5k
QnVmZmVySGVscGVyKSk7CiAKICAgICBjb21tYW5kQnVmZmVyLT5kaXNwYXRjaCgxLCAxLCAxKTsK
IApAQCAtMTgxNSw4ICsxODI4LDggQEAgYW5nbGU6OlJlc3VsdCBVdGlsc1ZrOjpjb252ZXJ0VmVy
dGV4QnVmZmVyKENvbnRleHRWayAqY29udGV4dFZrLAogICAgIGFjY2Vzcy5vbkJ1ZmZlckNvbXB1
dGVTaGFkZXJSZWFkKHNyYyk7CiAgICAgYWNjZXNzLm9uQnVmZmVyQ29tcHV0ZVNoYWRlcldyaXRl
KGRzdCk7CiAKLSAgICB2azo6T3V0c2lkZVJlbmRlclBhc3NDb21tYW5kQnVmZmVyICpjb21tYW5k
QnVmZmVyOwotICAgIEFOR0xFX1RSWShjb250ZXh0VmstPmdldE91dHNpZGVSZW5kZXJQYXNzQ29t
bWFuZEJ1ZmZlcihhY2Nlc3MsICZjb21tYW5kQnVmZmVyKSk7CisgICAgdms6Ok91dHNpZGVSZW5k
ZXJQYXNzQ29tbWFuZEJ1ZmZlckhlbHBlciAqY29tbWFuZEJ1ZmZlckhlbHBlcjsKKyAgICBBTkdM
RV9UUlkoY29udGV4dFZrLT5nZXRPdXRzaWRlUmVuZGVyUGFzc0NvbW1hbmRCdWZmZXJIZWxwZXIo
YWNjZXNzLCAmY29tbWFuZEJ1ZmZlckhlbHBlcikpOwogCiAgICAgQ29udmVydFZlcnRleFNoYWRl
clBhcmFtcyBzaGFkZXJQYXJhbXM7CiAgICAgc2hhZGVyUGFyYW1zLk5zID0gcGFyYW1zLnNyY0Zv
cm1hdC0+Y2hhbm5lbENvdW50OwpAQCAtMTkxMywyMiArMTkyNiwyNyBAQCBhbmdsZTo6UmVzdWx0
IFV0aWxzVms6OmNvbnZlcnRWZXJ0ZXhCdWZmZXIoQ29udGV4dFZrICpjb250ZXh0VmssCiAgICAg
ICAgICAgICBVTlJFQUNIQUJMRSgpOwogICAgIH0KIAotICAgIHJldHVybiBjb252ZXJ0VmVydGV4
QnVmZmVySW1wbChjb250ZXh0VmssIGRzdCwgc3JjLCBmbGFncywgY29tbWFuZEJ1ZmZlciwgc2hh
ZGVyUGFyYW1zKTsKKyAgICByZXR1cm4gY29udmVydFZlcnRleEJ1ZmZlckltcGwoY29udGV4dFZr
LCBkc3QsIHNyYywgZmxhZ3MsIGNvbW1hbmRCdWZmZXJIZWxwZXIsIHNoYWRlclBhcmFtcyk7CiB9
CiAKLWFuZ2xlOjpSZXN1bHQgVXRpbHNWazo6Y29udmVydFZlcnRleEJ1ZmZlckltcGwoQ29udGV4
dFZrICpjb250ZXh0VmssCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHZrOjpCdWZmZXJIZWxwZXIgKmRzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdms6OkJ1ZmZlckhlbHBlciAqc3JjLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBmbGFncywKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdms6Ok91dHNpZGVSZW5k
ZXJQYXNzQ29tbWFuZEJ1ZmZlciAqY29tbWFuZEJ1ZmZlciwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQ29udmVydFZlcnRleFNoYWRlclBhcmFt
cyAmc2hhZGVyUGFyYW1zKQorYW5nbGU6OlJlc3VsdCBVdGlsc1ZrOjpjb252ZXJ0VmVydGV4QnVm
ZmVySW1wbCgKKyAgICBDb250ZXh0VmsgKmNvbnRleHRWaywKKyAgICB2azo6QnVmZmVySGVscGVy
ICpkc3QsCisgICAgdms6OkJ1ZmZlckhlbHBlciAqc3JjLAorICAgIHVpbnQzMl90IGZsYWdzLAor
ICAgIHZrOjpPdXRzaWRlUmVuZGVyUGFzc0NvbW1hbmRCdWZmZXJIZWxwZXIgKmNvbW1hbmRCdWZm
ZXJIZWxwZXIsCisgICAgY29uc3QgQ29udmVydFZlcnRleFNoYWRlclBhcmFtcyAmc2hhZGVyUGFy
YW1zKQogewogICAgIEFOR0xFX1RSWShlbnN1cmVDb252ZXJ0VmVydGV4UmVzb3VyY2VzSW5pdGlh
bGl6ZWQoY29udGV4dFZrKSk7CiAKKyAgICB2azo6T3V0c2lkZVJlbmRlclBhc3NDb21tYW5kQnVm
ZmVyICpjb21tYW5kQnVmZmVyOworICAgIGNvbW1hbmRCdWZmZXIgPSAmY29tbWFuZEJ1ZmZlckhl
bHBlci0+Z2V0Q29tbWFuZEJ1ZmZlcigpOworCiAgICAgVmtEZXNjcmlwdG9yU2V0IGRlc2NyaXB0
b3JTZXQ7CiAgICAgdms6OlJlZkNvdW50ZWREZXNjcmlwdG9yUG9vbEJpbmRpbmcgZGVzY3JpcHRv
clBvb2xCaW5kaW5nOwotICAgIEFOR0xFX1RSWShhbGxvY2F0ZURlc2NyaXB0b3JTZXQoY29udGV4
dFZrLCBGdW5jdGlvbjo6Q29udmVydFZlcnRleEJ1ZmZlciwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICZkZXNjcmlwdG9yUG9vbEJpbmRpbmcsICZkZXNjcmlwdG9yU2V0KSk7
CisgICAgQU5HTEVfVFJZKGFsbG9jYXRlRGVzY3JpcHRvclNldChjb250ZXh0VmssICZjb21tYW5k
QnVmZmVySGVscGVyLT5nZXRSZXNvdXJjZVVzZUxpc3QoKSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEZ1bmN0aW9uOjpDb252ZXJ0VmVydGV4QnVmZmVyLCAmZGVzY3JpcHRv
clBvb2xCaW5kaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmRlc2Ny
aXB0b3JTZXQpKTsKIAogICAgIFZrV3JpdGVEZXNjcmlwdG9yU2V0IHdyaXRlSW5mbyAgICA9IHt9
OwogICAgIFZrRGVzY3JpcHRvckJ1ZmZlckluZm8gYnVmZmVyc1syXSA9IHsKQEAgLTE5NTIsNyAr
MTk3MCw3IEBAIGFuZ2xlOjpSZXN1bHQgVXRpbHNWazo6Y29udmVydFZlcnRleEJ1ZmZlckltcGwo
Q29udGV4dFZrICpjb250ZXh0VmssCiAKICAgICBBTkdMRV9UUlkoc2V0dXBDb21wdXRlUHJvZ3Jh
bShjb250ZXh0VmssIEZ1bmN0aW9uOjpDb252ZXJ0VmVydGV4QnVmZmVyLCBzaGFkZXIsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm1Db252ZXJ0VmVydGV4UHJvZ3JhbXNbZmxh
Z3NdLCBkZXNjcmlwdG9yU2V0LCAmc2hhZGVyUGFyYW1zLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNpemVvZihzaGFkZXJQYXJhbXMpLCBjb21tYW5kQnVmZmVyKSk7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHNoYWRlclBhcmFtcyksIGNvbW1h
bmRCdWZmZXJIZWxwZXIpKTsKIAogICAgIGNvbW1hbmRCdWZmZXItPmRpc3BhdGNoKFVuc2lnbmVk
Q2VpbERpdmlkZShzaGFkZXJQYXJhbXMub3V0cHV0Q291bnQsIDY0KSwgMSwgMSk7CiAKQEAgLTIw
MTQsNyArMjAzMiw4IEBAIGFuZ2xlOjpSZXN1bHQgVXRpbHNWazo6Y2xlYXJGcmFtZWJ1ZmZlcihD
b250ZXh0VmsgKmNvbnRleHRWaywKICAgICB2azo6UmVuZGVyUGFzc0NvbW1hbmRCdWZmZXIgKmNv
bW1hbmRCdWZmZXI7CiAKICAgICAvLyBTdGFydCBhIG5ldyByZW5kZXIgcGFzcyBpZiBub3QgYWxy
ZWFkeSBzdGFydGVkCi0gICAgQU5HTEVfVFJZKGZyYW1lYnVmZmVyLT5nZXRGcmFtZWJ1ZmZlcihj
b250ZXh0VmssICZjdXJyZW50RnJhbWVidWZmZXIsIG51bGxwdHIpKTsKKyAgICBBTkdMRV9UUlko
ZnJhbWVidWZmZXItPmdldEZyYW1lYnVmZmVyKGNvbnRleHRWaywgJmN1cnJlbnRGcmFtZWJ1ZmZl
ciwgbnVsbHB0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN3
YXBjaGFpblJlc29sdmVNb2RlOjpEaXNhYmxlZCkpOwogICAgIGlmIChjb250ZXh0VmstPmhhc1N0
YXJ0ZWRSZW5kZXJQYXNzV2l0aEZyYW1lYnVmZmVyKGN1cnJlbnRGcmFtZWJ1ZmZlcikpCiAgICAg
ewogICAgICAgICBjb21tYW5kQnVmZmVyID0gJmNvbnRleHRWay0+Z2V0U3RhcnRlZFJlbmRlclBh
c3NDb21tYW5kcygpLmdldENvbW1hbmRCdWZmZXIoKTsKQEAgLTIzOTEsMTEgKzI0MTAsNiBAQCBh
bmdsZTo6UmVzdWx0IFV0aWxzVms6OmJsaXRSZXNvbHZlSW1wbChDb250ZXh0VmsgKmNvbnRleHRW
aywKICAgICBmbGFncyB8PSBzcmMtPmdldExheWVyQ291bnQoKSA+IDEgPyBCbGl0UmVzb2x2ZV9m
cmFnOjprU3JjSXNBcnJheSA6IDA7CiAgICAgZmxhZ3MgfD0gaXNSZXNvbHZlID8gQmxpdFJlc29s
dmVfZnJhZzo6a0lzUmVzb2x2ZSA6IDA7CiAKLSAgICBWa0Rlc2NyaXB0b3JTZXQgZGVzY3JpcHRv
clNldDsKLSAgICB2azo6UmVmQ291bnRlZERlc2NyaXB0b3JQb29sQmluZGluZyBkZXNjcmlwdG9y
UG9vbEJpbmRpbmc7Ci0gICAgQU5HTEVfVFJZKGFsbG9jYXRlRGVzY3JpcHRvclNldChjb250ZXh0
VmssIEZ1bmN0aW9uOjpCbGl0UmVzb2x2ZSwgJmRlc2NyaXB0b3JQb29sQmluZGluZywKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZkZXNjcmlwdG9yU2V0KSk7Ci0KICAgICBj
b25zdGV4cHIgVmtDb2xvckNvbXBvbmVudEZsYWdzIGtBbGxDb2xvckNvbXBvbmVudHMgPQogICAg
ICAgICBWS19DT0xPUl9DT01QT05FTlRfUl9CSVQgfCBWS19DT0xPUl9DT01QT05FTlRfR19CSVQg
fCBWS19DT0xPUl9DT01QT05FTlRfQl9CSVQgfAogICAgICAgICBWS19DT0xPUl9DT01QT05FTlRf
QV9CSVQ7CkBAIC0yNDI4LDYgKzI0NDIsMTIgQEAgYW5nbGU6OlJlc3VsdCBVdGlsc1ZrOjpibGl0
UmVzb2x2ZUltcGwoQ29udGV4dFZrICpjb250ZXh0VmssCiAgICAgdms6OlJlbmRlclBhc3NDb21t
YW5kQnVmZmVyICpjb21tYW5kQnVmZmVyOwogICAgIEFOR0xFX1RSWShmcmFtZWJ1ZmZlci0+c3Rh
cnROZXdSZW5kZXJQYXNzKGNvbnRleHRWaywgcGFyYW1zLmJsaXRBcmVhLCAmY29tbWFuZEJ1ZmZl
ciwgbnVsbHB0cikpOwogCisgICAgVmtEZXNjcmlwdG9yU2V0IGRlc2NyaXB0b3JTZXQ7CisgICAg
dms6OlJlZkNvdW50ZWREZXNjcmlwdG9yUG9vbEJpbmRpbmcgZGVzY3JpcHRvclBvb2xCaW5kaW5n
OworICAgIEFOR0xFX1RSWShhbGxvY2F0ZURlc2NyaXB0b3JTZXQoY29udGV4dFZrLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmNvbnRleHRWay0+Z2V0U3RhcnRlZFJlbmRl
clBhc3NDb21tYW5kcygpLmdldFJlc291cmNlVXNlTGlzdCgpLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgRnVuY3Rpb246OkJsaXRSZXNvbHZlLCAmZGVzY3JpcHRvclBvb2xC
aW5kaW5nLCAmZGVzY3JpcHRvclNldCkpOworCiAgICAgVmtWaWV3cG9ydCB2aWV3cG9ydDsKICAg
ICBnbDo6UmVjdGFuZ2xlIGNvbXBsZXRlUmVuZGVyQXJlYSA9IGZyYW1lYnVmZmVyLT5nZXRSb3Rh
dGVkQ29tcGxldGVSZW5kZXJBcmVhKGNvbnRleHRWayk7CiAgICAgZ2xfdms6OkdldFZpZXdwb3J0
KGNvbXBsZXRlUmVuZGVyQXJlYSwgMC4wZiwgMS4wZiwgZmFsc2UsIGZhbHNlLCBjb21wbGV0ZVJl
bmRlckFyZWEuaGVpZ2h0LApAQCAtMjUyOSwxMSArMjU0OSw2IEBAIGFuZ2xlOjpSZXN1bHQgVXRp
bHNWazo6c3RlbmNpbEJsaXRSZXNvbHZlTm9TaGFkZXJFeHBvcnQoQ29udGV4dFZrICpjb250ZXh0
VmssCiAKICAgICBib29sIGlzUmVzb2x2ZSA9IHNyYy0+Z2V0U2FtcGxlcygpID4gMTsKIAotICAg
IFZrRGVzY3JpcHRvclNldCBkZXNjcmlwdG9yU2V0OwotICAgIHZrOjpSZWZDb3VudGVkRGVzY3Jp
cHRvclBvb2xCaW5kaW5nIGRlc2NyaXB0b3JQb29sQmluZGluZzsKLSAgICBBTkdMRV9UUlkoYWxs
b2NhdGVEZXNjcmlwdG9yU2V0KGNvbnRleHRWaywgRnVuY3Rpb246OkJsaXRSZXNvbHZlU3RlbmNp
bE5vRXhwb3J0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmRlc2NyaXB0
b3JQb29sQmluZGluZywgJmRlc2NyaXB0b3JTZXQpKTsKLQogICAgIC8vIENyZWF0ZSBhIHRlbXBv
cmFyeSBidWZmZXIgdG8gYmxpdC9yZXNvbHZlIHN0ZW5jaWwgaW50by4KICAgICB2azo6UmVuZGVy
ZXJTY29wZWQ8dms6OkJ1ZmZlckhlbHBlcj4gYmxpdEJ1ZmZlcihjb250ZXh0VmstPmdldFJlbmRl
cmVyKCkpOwogCkBAIC0yNTUyLDcgKzI1NjcsNiBAQCBhbmdsZTo6UmVzdWx0IFV0aWxzVms6OnN0
ZW5jaWxCbGl0UmVzb2x2ZU5vU2hhZGVyRXhwb3J0KENvbnRleHRWayAqY29udGV4dFZrLAogICAg
IEFOR0xFX1RSWShibGl0QnVmZmVyLmdldCgpLmluaXRTdWJhbGxvY2F0aW9uKAogICAgICAgICBj
b250ZXh0VmssIGNvbnRleHRWay0+Z2V0UmVuZGVyZXIoKS0+Z2V0RGV2aWNlTG9jYWxNZW1vcnlU
eXBlSW5kZXgoKSwKICAgICAgICAgc3RhdGljX2Nhc3Q8c2l6ZV90PihidWZmZXJTaXplKSwgY29u
dGV4dFZrLT5nZXRSZW5kZXJlcigpLT5nZXREZWZhdWx0QnVmZmVyQWxpZ25tZW50KCkpKTsKLSAg
ICBibGl0QnVmZmVyLmdldCgpLnJldGFpblJlYWRXcml0ZSgmY29udGV4dFZrLT5nZXRSZXNvdXJj
ZVVzZUxpc3QoKSk7CiAKICAgICBCbGl0UmVzb2x2ZVN0ZW5jaWxOb0V4cG9ydFNoYWRlclBhcmFt
cyBzaGFkZXJQYXJhbXM7CiAgICAgLy8gTm90ZTogYWRqdXN0bWVudHMgbWFkZSBmb3IgcHJlLXJv
dGF0YXRpb24gaW4gRnJhbWVidWZmZXJWazo6YmxpdCgpIGFmZmVjdCB0aGVzZQpAQCAtMjYzNyw5
ICsyNjUxLDE3IEBAIGFuZ2xlOjpSZXN1bHQgVXRpbHNWazo6c3RlbmNpbEJsaXRSZXNvbHZlTm9T
aGFkZXJFeHBvcnQoQ29udGV4dFZrICpjb250ZXh0VmssCiAgICAgYWNjZXNzLm9uSW1hZ2VUcmFu
c2ZlcldyaXRlKGRlcHRoU3RlbmNpbFJlbmRlclRhcmdldC0+Z2V0TGV2ZWxJbmRleCgpLCAxLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXB0aFN0ZW5jaWxSZW5kZXJUYXJnZXQt
PmdldExheWVySW5kZXgoKSwgMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVw
dGhTdGVuY2lsSW1hZ2UtPmdldEFzcGVjdEZsYWdzKCksIGRlcHRoU3RlbmNpbEltYWdlKTsKKyAg
ICBhY2Nlc3Mub25CdWZmZXJDb21wdXRlU2hhZGVyV3JpdGUoJmJsaXRCdWZmZXIuZ2V0KCkpOwog
CisgICAgVmtEZXNjcmlwdG9yU2V0IGRlc2NyaXB0b3JTZXQ7CisgICAgdms6OlJlZkNvdW50ZWRE
ZXNjcmlwdG9yUG9vbEJpbmRpbmcgZGVzY3JpcHRvclBvb2xCaW5kaW5nOworICAgIHZrOjpPdXRz
aWRlUmVuZGVyUGFzc0NvbW1hbmRCdWZmZXJIZWxwZXIgKmNvbW1hbmRCdWZmZXJIZWxwZXI7CiAg
ICAgdms6Ok91dHNpZGVSZW5kZXJQYXNzQ29tbWFuZEJ1ZmZlciAqY29tbWFuZEJ1ZmZlcjsKLSAg
ICBBTkdMRV9UUlkoY29udGV4dFZrLT5nZXRPdXRzaWRlUmVuZGVyUGFzc0NvbW1hbmRCdWZmZXIo
YWNjZXNzLCAmY29tbWFuZEJ1ZmZlcikpOworICAgIEFOR0xFX1RSWShjb250ZXh0VmstPmdldE91
dHNpZGVSZW5kZXJQYXNzQ29tbWFuZEJ1ZmZlckhlbHBlcihhY2Nlc3MsICZjb21tYW5kQnVmZmVy
SGVscGVyKSk7CisgICAgY29tbWFuZEJ1ZmZlciA9ICZjb21tYW5kQnVmZmVySGVscGVyLT5nZXRD
b21tYW5kQnVmZmVyKCk7CisgICAgQU5HTEVfVFJZKGFsbG9jYXRlRGVzY3JpcHRvclNldChjb250
ZXh0VmssICZjb21tYW5kQnVmZmVySGVscGVyLT5nZXRSZXNvdXJjZVVzZUxpc3QoKSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZ1bmN0aW9uOjpCbGl0UmVzb2x2ZVN0ZW5j
aWxOb0V4cG9ydCwgJmRlc2NyaXB0b3JQb29sQmluZGluZywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICZkZXNjcmlwdG9yU2V0KSk7CiAKICAgICAvLyBCbGl0L3Jlc29sdmUg
c3RlbmNpbCBpbnRvIHRoZSBidWZmZXIuCiAgICAgVmtEZXNjcmlwdG9ySW1hZ2VJbmZvIGltYWdl
SW5mbyA9IHt9OwpAQCAtMjY4NCw3ICsyNzA2LDcgQEAgYW5nbGU6OlJlc3VsdCBVdGlsc1ZrOjpz
dGVuY2lsQmxpdFJlc29sdmVOb1NoYWRlckV4cG9ydChDb250ZXh0VmsgKmNvbnRleHRWaywKIAog
ICAgIEFOR0xFX1RSWShzZXR1cENvbXB1dGVQcm9ncmFtKGNvbnRleHRWaywgRnVuY3Rpb246OkJs
aXRSZXNvbHZlU3RlbmNpbE5vRXhwb3J0LCBzaGFkZXIsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgJm1CbGl0UmVzb2x2ZVN0ZW5jaWxOb0V4cG9ydFByb2dyYW1zW2ZsYWdzXSwg
ZGVzY3JpcHRvclNldCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmc2hhZGVy
UGFyYW1zLCBzaXplb2Yoc2hhZGVyUGFyYW1zKSwgY29tbWFuZEJ1ZmZlcikpOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICZzaGFkZXJQYXJhbXMsIHNpemVvZihzaGFkZXJQYXJh
bXMpLCBjb21tYW5kQnVmZmVySGVscGVyKSk7CiAgICAgY29tbWFuZEJ1ZmZlci0+ZGlzcGF0Y2go
VW5zaWduZWRDZWlsRGl2aWRlKGJ1ZmZlclJvd0xlbmd0aEluVWludHMsIDgpLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFVuc2lnbmVkQ2VpbERpdmlkZShwYXJhbXMuYmxpdEFyZWEuaGVp
Z2h0LCA4KSwgMSk7CiAgICAgZGVzY3JpcHRvclBvb2xCaW5kaW5nLnJlc2V0KCk7CkBAIC0yODI0
LDExICsyODQ2LDYgQEAgYW5nbGU6OlJlc3VsdCBVdGlsc1ZrOjpjb3B5SW1hZ2UoQ29udGV4dFZr
ICpjb250ZXh0VmssCiAgICAgICAgIGZsYWdzIHw9IEltYWdlQ29weV9mcmFnOjprU3JjSXMyRDsK
ICAgICB9CiAKLSAgICBWa0Rlc2NyaXB0b3JTZXQgZGVzY3JpcHRvclNldDsKLSAgICB2azo6UmVm
Q291bnRlZERlc2NyaXB0b3JQb29sQmluZGluZyBkZXNjcmlwdG9yUG9vbEJpbmRpbmc7Ci0gICAg
QU5HTEVfVFJZKGFsbG9jYXRlRGVzY3JpcHRvclNldChjb250ZXh0VmssIEZ1bmN0aW9uOjpJbWFn
ZUNvcHksICZkZXNjcmlwdG9yUG9vbEJpbmRpbmcsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAmZGVzY3JpcHRvclNldCkpOwotCiAgICAgdms6OlJlbmRlclBhc3NEZXNjIHJl
bmRlclBhc3NEZXNjOwogICAgIHJlbmRlclBhc3NEZXNjLnNldFNhbXBsZXMoZHN0LT5nZXRTYW1w
bGVzKCkpOwogICAgIHJlbmRlclBhc3NEZXNjLnBhY2tDb2xvckF0dGFjaG1lbnQoMCwgZHN0LT5n
ZXRBY3R1YWxGb3JtYXRJRCgpKTsKQEAgLTI4NTksNiArMjg3NiwxMiBAQCBhbmdsZTo6UmVzdWx0
IFV0aWxzVms6OmNvcHlJbWFnZShDb250ZXh0VmsgKmNvbnRleHRWaywKICAgICBBTkdMRV9UUlko
CiAgICAgICAgIHN0YXJ0UmVuZGVyUGFzcyhjb250ZXh0VmssIGRzdCwgZGVzdFZpZXcsIHJlbmRl
clBhc3NEZXNjLCByZW5kZXJBcmVhLCAmY29tbWFuZEJ1ZmZlcikpOwogCisgICAgVmtEZXNjcmlw
dG9yU2V0IGRlc2NyaXB0b3JTZXQ7CisgICAgdms6OlJlZkNvdW50ZWREZXNjcmlwdG9yUG9vbEJp
bmRpbmcgZGVzY3JpcHRvclBvb2xCaW5kaW5nOworICAgIEFOR0xFX1RSWShhbGxvY2F0ZURlc2Ny
aXB0b3JTZXQoY29udGV4dFZrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
JmNvbnRleHRWay0+Z2V0U3RhcnRlZFJlbmRlclBhc3NDb21tYW5kcygpLmdldFJlc291cmNlVXNl
TGlzdCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRnVuY3Rpb246Oklt
YWdlQ29weSwgJmRlc2NyaXB0b3JQb29sQmluZGluZywgJmRlc2NyaXB0b3JTZXQpKTsKKwogICAg
IFVwZGF0ZUNvbG9yQWNjZXNzKGNvbnRleHRWaywgTWFrZUNvbG9yQnVmZmVyTWFzaygwKSwgTWFr
ZUNvbG9yQnVmZmVyTWFzaygwKSk7CiAKICAgICBWa1ZpZXdwb3J0IHZpZXdwb3J0OwpAQCAtMjk3
Nyw5ICszMDAwLDYgQEAgYW5nbGU6OlJlc3VsdCBVdGlsc1ZrOjpjb3B5SW1hZ2VCaXRzKENvbnRl
eHRWayAqY29udGV4dFZrLAogCiAgICAgQU5HTEVfVFJZKGRzdEJ1ZmZlci5nZXQoKS5pbml0KGNv
bnRleHRWaywgYnVmZmVySW5mbywgVktfTUVNT1JZX1BST1BFUlRZX0RFVklDRV9MT0NBTF9CSVQp
KTsKIAotICAgIHNyY0J1ZmZlci5nZXQoKS5yZXRhaW5SZWFkT25seSgmY29udGV4dFZrLT5nZXRS
ZXNvdXJjZVVzZUxpc3QoKSk7Ci0gICAgZHN0QnVmZmVyLmdldCgpLnJldGFpblJlYWRXcml0ZSgm
Y29udGV4dFZrLT5nZXRSZXNvdXJjZVVzZUxpc3QoKSk7Ci0KICAgICBib29sIGlzU3JjM0QgPSBz
cmMtPmdldFR5cGUoKSA9PSBWS19JTUFHRV9UWVBFXzNEOwogICAgIGJvb2wgaXNEc3QzRCA9IGRz
dC0+Z2V0VHlwZSgpID09IFZLX0lNQUdFX1RZUEVfM0Q7CiAKQEAgLTI5OTAsOCArMzAxMCwxNCBA
QCBhbmdsZTo6UmVzdWx0IFV0aWxzVms6OmNvcHlJbWFnZUJpdHMoQ29udGV4dFZrICpjb250ZXh0
VmssCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzRHN0M0QgPyAxIDogcGFyYW1z
LmNvcHlFeHRlbnRzWzJdLCBWS19JTUFHRV9BU1BFQ1RfQ09MT1JfQklULAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBkc3QpOwogCisgICAgLy8gc3JjQnVmZmVyIGlzIHRoZSBkZXN0
aW5hdGlvbiBvZiBjb3B5SW1hZ2VUb0J1ZmZlcigpIGJlbG93LgorICAgIGFjY2Vzcy5vbkJ1ZmZl
clRyYW5zZmVyV3JpdGUoJnNyY0J1ZmZlci5nZXQoKSk7CisgICAgYWNjZXNzLm9uQnVmZmVyQ29t
cHV0ZVNoYWRlcldyaXRlKCZkc3RCdWZmZXIuZ2V0KCkpOworCisgICAgdms6Ok91dHNpZGVSZW5k
ZXJQYXNzQ29tbWFuZEJ1ZmZlckhlbHBlciAqY29tbWFuZEJ1ZmZlckhlbHBlcjsKICAgICB2azo6
T3V0c2lkZVJlbmRlclBhc3NDb21tYW5kQnVmZmVyICpjb21tYW5kQnVmZmVyOwotICAgIEFOR0xF
X1RSWShjb250ZXh0VmstPmdldE91dHNpZGVSZW5kZXJQYXNzQ29tbWFuZEJ1ZmZlcihhY2Nlc3Ms
ICZjb21tYW5kQnVmZmVyKSk7CisgICAgQU5HTEVfVFJZKGNvbnRleHRWay0+Z2V0T3V0c2lkZVJl
bmRlclBhc3NDb21tYW5kQnVmZmVySGVscGVyKGFjY2VzcywgJmNvbW1hbmRCdWZmZXJIZWxwZXIp
KTsKKyAgICBjb21tYW5kQnVmZmVyID0gJmNvbW1hbmRCdWZmZXJIZWxwZXItPmdldENvbW1hbmRC
dWZmZXIoKTsKIAogICAgIC8vIENvcHkgc3JjIGludG8gYnVmZmVyLCBjb21wbGV0ZWx5IHBhY2tl
ZC4KICAgICBWa0J1ZmZlckltYWdlQ29weSBzcmNSZWdpb24gICAgICAgICAgICAgICA9IHt9OwpA
QCAtMzEwOSw3ICszMTM1LDcgQEAgYW5nbGU6OlJlc3VsdCBVdGlsc1ZrOjpjb3B5SW1hZ2VCaXRz
KENvbnRleHRWayAqY29udGV4dFZrLAogICAgIGNvbnN0IHVpbnQzMl90IGZsYWdzID0gQ29udmVy
dFZlcnRleF9jb21wOjprVWludFRvVWludDsKIAogICAgIEFOR0xFX1RSWShjb252ZXJ0VmVydGV4
QnVmZmVySW1wbChjb250ZXh0VmssICZkc3RCdWZmZXIuZ2V0KCksICZzcmNCdWZmZXIuZ2V0KCks
IGZsYWdzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21tYW5kQnVm
ZmVyLCBzaGFkZXJQYXJhbXMpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29tbWFuZEJ1ZmZlckhlbHBlciwgc2hhZGVyUGFyYW1zKSk7CiAKICAgICAvLyBBZGQgYSBi
YXJyaWVyIHByaW9yIHRvIGNvcHkuCiAgICAgbWVtb3J5QmFycmllci5zcmNBY2Nlc3NNYXNrID0g
VktfQUNDRVNTX1NIQURFUl9XUklURV9CSVQ7CkBAIC0zMTYyLDkgKzMxODgsMTMgQEAgYW5nbGU6
OlJlc3VsdCBVdGlsc1ZrOjpnZW5lcmF0ZU1pcG1hcChDb250ZXh0VmsgKmNvbnRleHRWaywKIAog
ICAgIHVpbnQzMl90IGZsYWdzID0gR2V0R2VuZXJhdGVNaXBtYXBGbGFncyhjb250ZXh0VmssIHNy
Yy0+Z2V0QWN0dWFsRm9ybWF0KCkpOwogCisgICAgdms6Ok91dHNpZGVSZW5kZXJQYXNzQ29tbWFu
ZEJ1ZmZlckhlbHBlciAqY29tbWFuZEJ1ZmZlckhlbHBlcjsKKyAgICBBTkdMRV9UUlkoY29udGV4
dFZrLT5nZXRPdXRzaWRlUmVuZGVyUGFzc0NvbW1hbmRCdWZmZXJIZWxwZXIoe30sICZjb21tYW5k
QnVmZmVySGVscGVyKSk7CisKICAgICBWa0Rlc2NyaXB0b3JTZXQgZGVzY3JpcHRvclNldDsKICAg
ICB2azo6UmVmQ291bnRlZERlc2NyaXB0b3JQb29sQmluZGluZyBkZXNjcmlwdG9yUG9vbEJpbmRp
bmc7Ci0gICAgQU5HTEVfVFJZKGFsbG9jYXRlRGVzY3JpcHRvclNldChjb250ZXh0VmssIEZ1bmN0
aW9uOjpHZW5lcmF0ZU1pcG1hcCwgJmRlc2NyaXB0b3JQb29sQmluZGluZywKKyAgICBBTkdMRV9U
UlkoYWxsb2NhdGVEZXNjcmlwdG9yU2V0KGNvbnRleHRWaywgJmNvbW1hbmRCdWZmZXJIZWxwZXIt
PmdldFJlc291cmNlVXNlTGlzdCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgRnVuY3Rpb246OkdlbmVyYXRlTWlwbWFwLCAmZGVzY3JpcHRvclBvb2xCaW5kaW5nLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmRlc2NyaXB0b3JTZXQpKTsKIAogICAg
IFZrRGVzY3JpcHRvckltYWdlSW5mbyBkZXN0SW1hZ2VJbmZvc1trR2VuZXJhdGVNaXBtYXBNYXhM
ZXZlbHNdID0ge307CkBAIC0zMjAyLDExICszMjMyLDExIEBAIGFuZ2xlOjpSZXN1bHQgVXRpbHNW
azo6Z2VuZXJhdGVNaXBtYXAoQ29udGV4dFZrICpjb250ZXh0VmssCiAgICAgLy8gTm90ZTogb25J
bWFnZVJlYWQvb25JbWFnZVdyaXRlIGlzIGV4cGVjdGVkIHRvIGJlIGNhbGxlZCBieSB0aGUgY2Fs
bGVyLiAgVGhpcyBhdm9pZHMgaW5zZXJ0aW5nCiAgICAgLy8gYmFycmllcnMgYmV0d2VlbiBjYWxs
cyBmb3IgZWFjaCBsYXllciBvZiB0aGUgaW1hZ2UuCiAgICAgdms6Ok91dHNpZGVSZW5kZXJQYXNz
Q29tbWFuZEJ1ZmZlciAqY29tbWFuZEJ1ZmZlcjsKLSAgICBBTkdMRV9UUlkoY29udGV4dFZrLT5n
ZXRPdXRzaWRlUmVuZGVyUGFzc0NvbW1hbmRCdWZmZXIoe30sICZjb21tYW5kQnVmZmVyKSk7Cisg
ICAgY29tbWFuZEJ1ZmZlciA9ICZjb21tYW5kQnVmZmVySGVscGVyLT5nZXRDb21tYW5kQnVmZmVy
KCk7CiAKICAgICBBTkdMRV9UUlkoc2V0dXBDb21wdXRlUHJvZ3JhbShjb250ZXh0VmssIEZ1bmN0
aW9uOjpHZW5lcmF0ZU1pcG1hcCwgc2hhZGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICZtR2VuZXJhdGVNaXBtYXBQcm9ncmFtc1tmbGFnc10sIGRlc2NyaXB0b3JTZXQsICZz
aGFkZXJQYXJhbXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHNo
YWRlclBhcmFtcyksIGNvbW1hbmRCdWZmZXIpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzaXplb2Yoc2hhZGVyUGFyYW1zKSwgY29tbWFuZEJ1ZmZlckhlbHBlcikpOwogCiAg
ICAgY29tbWFuZEJ1ZmZlci0+ZGlzcGF0Y2god29ya0dyb3VwWCwgd29ya0dyb3VwWSwgMSk7CiAg
ICAgZGVzY3JpcHRvclBvb2xCaW5kaW5nLnJlc2V0KCk7CkBAIC0zMzI2LDcgKzMzNTYsOSBAQCBh
bmdsZTo6UmVzdWx0IFV0aWxzVms6OnVucmVzb2x2ZShDb250ZXh0VmsgKmNvbnRleHRWaywKIAog
ICAgIFZrRGVzY3JpcHRvclNldCBkZXNjcmlwdG9yU2V0OwogICAgIHZrOjpSZWZDb3VudGVkRGVz
Y3JpcHRvclBvb2xCaW5kaW5nIGRlc2NyaXB0b3JQb29sQmluZGluZzsKLSAgICBBTkdMRV9UUlko
YWxsb2NhdGVEZXNjcmlwdG9yU2V0KGNvbnRleHRWaywgZnVuY3Rpb24sICZkZXNjcmlwdG9yUG9v
bEJpbmRpbmcsICZkZXNjcmlwdG9yU2V0KSk7CisgICAgQU5HTEVfVFJZKGFsbG9jYXRlRGVzY3Jp
cHRvclNldChjb250ZXh0VmssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAm
Y29udGV4dFZrLT5nZXRTdGFydGVkUmVuZGVyUGFzc0NvbW1hbmRzKCkuZ2V0UmVzb3VyY2VVc2VM
aXN0KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiwgJmRl
c2NyaXB0b3JQb29sQmluZGluZywgJmRlc2NyaXB0b3JTZXQpKTsKIAogICAgIHZrOjpGcmFtZWJ1
ZmZlckF0dGFjaG1lbnRBcnJheTxWa0Rlc2NyaXB0b3JJbWFnZUluZm8+IGlucHV0SW1hZ2VJbmZv
ID0ge307CiAgICAgZm9yICh1aW50MzJfdCBhdHRhY2htZW50SW5kZXggPSAwOyBhdHRhY2htZW50
SW5kZXggPCBjb2xvckF0dGFjaG1lbnRDb3VudDsgKythdHRhY2htZW50SW5kZXgpCkBAIC0zNDA5
LDExICszNDQxLDYgQEAgYW5nbGU6OlJlc3VsdCBVdGlsc1ZrOjpkcmF3T3ZlcmxheShDb250ZXh0
VmsgKmNvbnRleHRWaywKICAgICAgICAgc3RkOjpzd2FwKHNoYWRlclBhcmFtcy52aWV3cG9ydFNp
emVbMF0sIHNoYWRlclBhcmFtcy52aWV3cG9ydFNpemVbMV0pOwogICAgIH0KIAotICAgIFZrRGVz
Y3JpcHRvclNldCBkZXNjcmlwdG9yU2V0OwotICAgIHZrOjpSZWZDb3VudGVkRGVzY3JpcHRvclBv
b2xCaW5kaW5nIGRlc2NyaXB0b3JQb29sQmluZGluZzsKLSAgICBBTkdMRV9UUlkoYWxsb2NhdGVE
ZXNjcmlwdG9yU2V0KGNvbnRleHRWaywgRnVuY3Rpb246Ok92ZXJsYXlEcmF3LCAmZGVzY3JpcHRv
clBvb2xCaW5kaW5nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmRlc2Ny
aXB0b3JTZXQpKTsKLQogICAgIEFTU0VSVChkc3QtPmdldExldmVsQ291bnQoKSA9PSAxICYmIGRz
dC0+Z2V0TGF5ZXJDb3VudCgpID09IDEgJiYKICAgICAgICAgICAgZHN0LT5nZXRGaXJzdEFsbG9j
YXRlZExldmVsKCkgPT0gZ2w6OkxldmVsSW5kZXgoMCkpOwogCkBAIC0zNDQxLDYgKzM0NjgsMTIg
QEAgYW5nbGU6OlJlc3VsdCBVdGlsc1ZrOjpkcmF3T3ZlcmxheShDb250ZXh0VmsgKmNvbnRleHRW
aywKICAgICBBTkdMRV9UUlkoCiAgICAgICAgIHN0YXJ0UmVuZGVyUGFzcyhjb250ZXh0VmssIGRz
dCwgZGVzdFZpZXcsIHJlbmRlclBhc3NEZXNjLCByZW5kZXJBcmVhLCAmY29tbWFuZEJ1ZmZlcikp
OwogCisgICAgVmtEZXNjcmlwdG9yU2V0IGRlc2NyaXB0b3JTZXQ7CisgICAgdms6OlJlZkNvdW50
ZWREZXNjcmlwdG9yUG9vbEJpbmRpbmcgZGVzY3JpcHRvclBvb2xCaW5kaW5nOworICAgIEFOR0xF
X1RSWShhbGxvY2F0ZURlc2NyaXB0b3JTZXQoY29udGV4dFZrLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJmNvbnRleHRWay0+Z2V0U3RhcnRlZFJlbmRlclBhc3NDb21tYW5k
cygpLmdldFJlc291cmNlVXNlTGlzdCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgRnVuY3Rpb246Ok92ZXJsYXlEcmF3LCAmZGVzY3JpcHRvclBvb2xCaW5kaW5nLCAmZGVz
Y3JpcHRvclNldCkpOworCiAgICAgVXBkYXRlQ29sb3JBY2Nlc3MoY29udGV4dFZrLCBNYWtlQ29s
b3JCdWZmZXJNYXNrKDApLCBNYWtlQ29sb3JCdWZmZXJNYXNrKDApKTsKIAogICAgIFZrVmlld3Bv
cnQgdmlld3BvcnQ7CkBAIC0zNDUyLDggKzM0ODUsMTAgQEAgYW5nbGU6OlJlc3VsdCBVdGlsc1Zr
OjpkcmF3T3ZlcmxheShDb250ZXh0VmsgKmNvbnRleHRWaywKIAogICAgIGNvbnRleHRWay0+aW52
YWxpZGF0ZVZpZXdwb3J0QW5kU2Npc3NvcigpOwogCi0gICAgdGV4dFdpZGdldHNCdWZmZXItPnJl
dGFpblJlYWRPbmx5KCZjb250ZXh0VmstPmdldFJlc291cmNlVXNlTGlzdCgpKTsKLSAgICBncmFw
aFdpZGdldHNCdWZmZXItPnJldGFpblJlYWRPbmx5KCZjb250ZXh0VmstPmdldFJlc291cmNlVXNl
TGlzdCgpKTsKKyAgICB0ZXh0V2lkZ2V0c0J1ZmZlci0+cmV0YWluUmVhZE9ubHkoCisgICAgICAg
ICZjb250ZXh0VmstPmdldFN0YXJ0ZWRSZW5kZXJQYXNzQ29tbWFuZHMoKS5nZXRSZXNvdXJjZVVz
ZUxpc3QoKSk7CisgICAgZ3JhcGhXaWRnZXRzQnVmZmVyLT5yZXRhaW5SZWFkT25seSgKKyAgICAg
ICAgJmNvbnRleHRWay0+Z2V0U3RhcnRlZFJlbmRlclBhc3NDb21tYW5kcygpLmdldFJlc291cmNl
VXNlTGlzdCgpKTsKICAgICBjb250ZXh0VmstPm9uSW1hZ2VSZW5kZXJQYXNzUmVhZChWS19JTUFH
RV9BU1BFQ1RfQ09MT1JfQklULAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHZrOjpJbWFnZUxheW91dDo6RnJhZ21lbnRTaGFkZXJSZWFkT25seSwgZm9udCk7CiAgICAgY29u
dGV4dFZrLT5vbkltYWdlUmVuZGVyUGFzc1dyaXRlKGdsOjpMZXZlbEluZGV4KDApLCAwLCAxLCBW
S19JTUFHRV9BU1BFQ1RfQ09MT1JfQklULApAQCAtMzUyNCwyMyArMzU1OSwyOCBAQCBhbmdsZTo6
UmVzdWx0IFV0aWxzVms6OmRyYXdPdmVybGF5KENvbnRleHRWayAqY29udGV4dFZrLAogCiAgICAg
ZGVzY3JpcHRvclBvb2xCaW5kaW5nLnJlc2V0KCk7CiAKKyAgICAvLyBPdmVybGF5IGlzIGFsd2F5
cyBkcmF3biBhcyB0aGUgbGFzdCByZW5kZXIgcGFzcyBiZWZvcmUgcHJlc2VudC4gIEF1dG9tYXRp
Y2FsbHkgbW92ZSB0aGUKKyAgICAvLyBsYXlvdXQgdG8gUHJlc2VudFNyYy4KKyAgICBjb250ZXh0
VmstPm9uQ29sb3JEcmF3KGdsOjpMZXZlbEluZGV4KDApLCAwLCAxLCBkc3QsIG51bGxwdHIsIHZr
OjpQYWNrZWRBdHRhY2htZW50SW5kZXgoMCkpOworICAgIGNvbnRleHRWay0+Z2V0U3RhcnRlZFJl
bmRlclBhc3NDb21tYW5kcygpLnNldEltYWdlT3B0aW1pemVGb3JQcmVzZW50KGRzdCk7CisgICAg
Y29udGV4dFZrLT5maW5hbGl6ZUltYWdlTGF5b3V0KGRzdCk7CisKICAgICAvLyBDbG9zZSB0aGUg
cmVuZGVyIHBhc3MgZm9yIHRoaXMgdGVtcG9yYXJ5IGZyYW1lYnVmZmVyLgogICAgIHJldHVybiBj
b250ZXh0VmstPmZsdXNoQ29tbWFuZHNBbmRFbmRSZW5kZXJQYXNzKAogICAgICAgICBSZW5kZXJQ
YXNzQ2xvc3VyZVJlYXNvbjo6VGVtcG9yYXJ5Rm9yT3ZlcmxheURyYXcpOwogfQogCiBhbmdsZTo6
UmVzdWx0IFV0aWxzVms6OmFsbG9jYXRlRGVzY3JpcHRvclNldChDb250ZXh0VmsgKmNvbnRleHRW
aywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZrOjpSZXNv
dXJjZVVzZUxpc3QgKnJlc291cmNlVXNlTGlzdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEZ1bmN0aW9uIGZ1bmN0aW9uLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdms6OlJlZkNvdW50ZWREZXNjcmlwdG9yUG9vbEJp
bmRpbmcgKmJpbmRpbmdPdXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBWa0Rlc2NyaXB0b3JTZXQgKmRlc2NyaXB0b3JTZXRPdXQpCiB7CiAgICAgQU5HTEVf
VFJZKG1EZXNjcmlwdG9yUG9vbHNbZnVuY3Rpb25dLmFsbG9jYXRlRGVzY3JpcHRvclNldHMoCi0g
ICAgICAgIGNvbnRleHRWaywgJmNvbnRleHRWay0+Z2V0UmVzb3VyY2VVc2VMaXN0KCksCisgICAg
ICAgIGNvbnRleHRWaywgcmVzb3VyY2VVc2VMaXN0LAogICAgICAgICBtRGVzY3JpcHRvclNldExh
eW91dHNbZnVuY3Rpb25dW0Rlc2NyaXB0b3JTZXRJbmRleDo6SW50ZXJuYWxdLmdldCgpLCAxLCBi
aW5kaW5nT3V0LAogICAgICAgICBkZXNjcmlwdG9yU2V0T3V0KSk7CiAKLSAgICBtUGVyZkNvdW50
ZXJzLmRlc2NyaXB0b3JTZXRzQWxsb2NhdGVkKys7Ci0KICAgICByZXR1cm4gYW5nbGU6OlJlc3Vs
dDo6Q29udGludWU7CiB9CiAKQEAgLTM1NTUsMjUgKzM1OTUsNCBAQCBVdGlsc1ZrOjpDbGVhckZy
YW1lYnVmZmVyUGFyYW1ldGVyczo6Q2xlYXJGcmFtZWJ1ZmZlclBhcmFtZXRlcnMoKQogICAgICAg
Y29sb3JDbGVhclZhbHVle30sCiAgICAgICBkZXB0aFN0ZW5jaWxDbGVhclZhbHVle30KIHt9Ci0K
LS8vIFJlcXVpcmVzIHRoYXQgdHJhY2UgaXMgZW5hYmxlZCB0byBzZWUgdGhlIG91dHB1dCwgd2hp
Y2ggaXMgc3VwcG9ydGVkIHdpdGggaXNfZGVidWc9dHJ1ZQotdm9pZCBVdGlsc1ZrOjpvdXRwdXRD
dW11bGF0aXZlUGVyZkNvdW50ZXJzKCkKLXsKLSAgICBpZiAoIXZrOjprT3V0cHV0Q3VtdWxhdGl2
ZVBlcmZDb3VudGVycykKLSAgICB7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBJTkZP
KCkgPDwgIlV0aWxzIERlc2NyaXB0b3IgU2V0IEFsbG9jYXRpb25zOiAiCi0gICAgICAgICAgIDw8
IG1DdW11bGF0aXZlUGVyZkNvdW50ZXJzLmRlc2NyaXB0b3JTZXRzQWxsb2NhdGVkOwotfQotCi1J
bnRlcm5hbFNoYWRlclBlcmZDb3VudGVycyBVdGlsc1ZrOjpnZXRBbmRSZXNldE9iamVjdFBlcmZD
b3VudGVycygpCi17Ci0gICAgbUN1bXVsYXRpdmVQZXJmQ291bnRlcnMuZGVzY3JpcHRvclNldHNB
bGxvY2F0ZWQgKz0gbVBlcmZDb3VudGVycy5kZXNjcmlwdG9yU2V0c0FsbG9jYXRlZDsKLQotICAg
IEludGVybmFsU2hhZGVyUGVyZkNvdW50ZXJzIGNvdW50ZXJzICAgPSBtUGVyZkNvdW50ZXJzOwot
ICAgIG1QZXJmQ291bnRlcnMuZGVzY3JpcHRvclNldHNBbGxvY2F0ZWQgPSAwOwotICAgIHJldHVy
biBjb3VudGVyczsKLX0KIH0gIC8vIG5hbWVzcGFjZSByeApkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL3Z1bGthbi9VdGlsc1ZrLmggYi9T
b3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvdnVsa2FuL1V0aWxz
VmsuaAppbmRleCAxZmIyYjkzMGJkMDg3YjUzM2YwY2Q3Njg3ZWJmZjk5NWU4NDFjZThhLi45MmY1
NWIwMTYwMjJkNTBhNzkzZDExZjJiMzcxNWRhYzYwZWVjMTc5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvdnVsa2FuL1V0aWxzVmsuaAor
KysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvdnVsa2Fu
L1V0aWxzVmsuaApAQCAtMzQsMTIgKzM0LDYgQEAKIAogbmFtZXNwYWNlIHJ4CiB7Ci1zdHJ1Y3Qg
SW50ZXJuYWxTaGFkZXJQZXJmQ291bnRlcnMKLXsKLSAgICAvLyBUb3RhbCBkZXNjcmlwdG9yIHNl
dCBhbGxvY2F0aW9ucyBmb3IgYWxsIFV0aWxzVms6OkZ1bmN0aW9ucwotICAgIHVpbnQzMl90IGRl
c2NyaXB0b3JTZXRzQWxsb2NhdGVkOwotfTsKLQogY2xhc3MgVXRpbHNWayA6IGFuZ2xlOjpOb25D
b3B5YWJsZQogewogICBwdWJsaWM6CkBAIC0yOTAsOCArMjg0LDYgQEAgY2xhc3MgVXRpbHNWayA6
IGFuZ2xlOjpOb25Db3B5YWJsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
dms6OkltYWdlVmlldyAqZHN0VmlldywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IE92ZXJsYXlEcmF3UGFyYW1ldGVycyAmcGFyYW1zKTsKIAotICAgIEludGVybmFsU2hhZGVy
UGVyZkNvdW50ZXJzIGdldEFuZFJlc2V0T2JqZWN0UGVyZkNvdW50ZXJzKCk7Ci0KICAgcHJpdmF0
ZToKICAgICBBTkdMRV9FTkFCTEVfU1RSVUNUX1BBRERJTkdfV0FSTklOR1MKIApAQCAtNDY5LDE0
ICs0NjEsMTUgQEAgY2xhc3MgVXRpbHNWayA6IGFuZ2xlOjpOb25Db3B5YWJsZQogCiAgICAgLy8g
Q29tbW9uIGZ1bmN0aW9ucyB0aGF0IGNyZWF0ZSB0aGUgcGlwZWxpbmUgZm9yIHRoZSBzcGVjaWZp
ZWQgZnVuY3Rpb24sIGJpbmRzIGl0IGFuZCBwcmVwYXJlcwogICAgIC8vIHRoZSBkcmF3L2Rpc3Bh
dGNoIGNhbGwuCi0gICAgYW5nbGU6OlJlc3VsdCBzZXR1cENvbXB1dGVQcm9ncmFtKENvbnRleHRW
ayAqY29udGV4dFZrLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGdW5j
dGlvbiBmdW5jdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdms6
OlJlZkNvdW50ZWQ8dms6OlNoYWRlckFuZFNlcmlhbD4gKmNzU2hhZGVyLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB2azo6U2hhZGVyUHJvZ3JhbUhlbHBlciAqcHJvZ3Jh
bSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVmtEZXNjcmlw
dG9yU2V0IGRlc2NyaXB0b3JTZXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IHZvaWQgKnB1c2hDb25zdGFudHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNpemVfdCBwdXNoQ29uc3RhbnRzU2l6ZSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdms6Ok91dHNpZGVSZW5kZXJQYXNzQ29tbWFuZEJ1ZmZlciAq
Y29tbWFuZEJ1ZmZlcik7CisgICAgYW5nbGU6OlJlc3VsdCBzZXR1cENvbXB1dGVQcm9ncmFtKAor
ICAgICAgICBDb250ZXh0VmsgKmNvbnRleHRWaywKKyAgICAgICAgRnVuY3Rpb24gZnVuY3Rpb24s
CisgICAgICAgIHZrOjpSZWZDb3VudGVkPHZrOjpTaGFkZXJBbmRTZXJpYWw+ICpjc1NoYWRlciwK
KyAgICAgICAgdms6OlNoYWRlclByb2dyYW1IZWxwZXIgKnByb2dyYW0sCisgICAgICAgIGNvbnN0
IFZrRGVzY3JpcHRvclNldCBkZXNjcmlwdG9yU2V0LAorICAgICAgICBjb25zdCB2b2lkICpwdXNo
Q29uc3RhbnRzLAorICAgICAgICBzaXplX3QgcHVzaENvbnN0YW50c1NpemUsCisgICAgICAgIHZr
OjpPdXRzaWRlUmVuZGVyUGFzc0NvbW1hbmRCdWZmZXJIZWxwZXIgKmNvbW1hbmRCdWZmZXJIZWxw
ZXIpOwogICAgIGFuZ2xlOjpSZXN1bHQgc2V0dXBHcmFwaGljc1Byb2dyYW0oQ29udGV4dFZrICpj
b250ZXh0VmssCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGdW5jdGlv
biBmdW5jdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZrOjpS
ZWZDb3VudGVkPHZrOjpTaGFkZXJBbmRTZXJpYWw+ICp2c1NoYWRlciwKQEAgLTUyNiwxMiArNTE5
LDEzIEBAIGNsYXNzIFV0aWxzVmsgOiBhbmdsZTo6Tm9uQ29weWFibGUKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB2azo6UmVuZGVyUGFzc0NvbW1hbmRCdWZmZXIgKipjb21tYW5k
QnVmZmVyT3V0KTsKIAogICAgIC8vIFNldCB1cCBkZXNjcmlwdG9yIHNldCBhbmQgY2FsbCBkaXNw
YXRjaC4KLSAgICBhbmdsZTo6UmVzdWx0IGNvbnZlcnRWZXJ0ZXhCdWZmZXJJbXBsKENvbnRleHRW
ayAqY29udGV4dFZrLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dms6OkJ1ZmZlckhlbHBlciAqZHN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdms6OkJ1ZmZlckhlbHBlciAqc3JjLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdWludDMyX3QgZmxhZ3MsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB2azo6T3V0c2lkZVJlbmRlclBhc3NDb21tYW5kQnVmZmVyICpj
b21tYW5kQnVmZmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgQ29udmVydFZlcnRleFNoYWRlclBhcmFtcyAmc2hhZGVyUGFyYW1zKTsKKyAgICBhbmds
ZTo6UmVzdWx0IGNvbnZlcnRWZXJ0ZXhCdWZmZXJJbXBsKAorICAgICAgICBDb250ZXh0VmsgKmNv
bnRleHRWaywKKyAgICAgICAgdms6OkJ1ZmZlckhlbHBlciAqZHN0LAorICAgICAgICB2azo6QnVm
ZmVySGVscGVyICpzcmMsCisgICAgICAgIHVpbnQzMl90IGZsYWdzLAorICAgICAgICB2azo6T3V0
c2lkZVJlbmRlclBhc3NDb21tYW5kQnVmZmVySGVscGVyICpjb21tYW5kQnVmZmVySGVscGVyLAor
ICAgICAgICBjb25zdCBDb252ZXJ0VmVydGV4U2hhZGVyUGFyYW1zICZzaGFkZXJQYXJhbXMpOwog
CiAgICAgLy8gQmxpdHMgb3IgcmVzb2x2ZXMgZWl0aGVyIGNvbG9yIG9yIGRlcHRoL3N0ZW5jaWws
IGJhc2VkIG9uIHdoaWNoIHZpZXcgaXMgZ2l2ZW4uCiAgICAgYW5nbGU6OlJlc3VsdCBibGl0UmVz
b2x2ZUltcGwoQ29udGV4dFZrICpjb250ZXh0VmssCkBAIC01NDQsMTIgKzUzOCwxMSBAQCBjbGFz
cyBVdGlsc1ZrIDogYW5nbGU6Ok5vbkNvcHlhYmxlCiAKICAgICAvLyBBbGxvY2F0ZXMgYSBzaW5n
bGUgZGVzY3JpcHRvciBzZXQuCiAgICAgYW5nbGU6OlJlc3VsdCBhbGxvY2F0ZURlc2NyaXB0b3JT
ZXQoQ29udGV4dFZrICpjb250ZXh0VmssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdms6OlJlc291cmNlVXNlTGlzdCAqcmVzb3VyY2VVc2VMaXN0LAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZ1bmN0aW9uIGZ1bmN0aW9uLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZrOjpSZWZDb3VudGVkRGVzY3JpcHRv
clBvb2xCaW5kaW5nICpiaW5kaW5nT3V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFZrRGVzY3JpcHRvclNldCAqZGVzY3JpcHRvclNldE91dCk7CiAKLSAgICB2b2lk
IG91dHB1dEN1bXVsYXRpdmVQZXJmQ291bnRlcnMoKTsKLQogICAgIGFuZ2xlOjpQYWNrZWRFbnVt
TWFwPEZ1bmN0aW9uLCB2azo6RGVzY3JpcHRvclNldExheW91dFBvaW50ZXJBcnJheT4gbURlc2Ny
aXB0b3JTZXRMYXlvdXRzOwogICAgIGFuZ2xlOjpQYWNrZWRFbnVtTWFwPEZ1bmN0aW9uLCB2azo6
QmluZGluZ1BvaW50ZXI8dms6OlBpcGVsaW5lTGF5b3V0Pj4gbVBpcGVsaW5lTGF5b3V0czsKICAg
ICBhbmdsZTo6UGFja2VkRW51bU1hcDxGdW5jdGlvbiwgdms6OkR5bmFtaWNEZXNjcmlwdG9yUG9v
bD4gbURlc2NyaXB0b3JQb29sczsKQEAgLTU3OCw5ICs1NzEsNiBAQCBjbGFzcyBVdGlsc1ZrIDog
YW5nbGU6Ok5vbkNvcHlhYmxlCiAKICAgICB2azo6U2FtcGxlciBtUG9pbnRTYW1wbGVyOwogICAg
IHZrOjpTYW1wbGVyIG1MaW5lYXJTYW1wbGVyOwotCi0gICAgSW50ZXJuYWxTaGFkZXJQZXJmQ291
bnRlcnMgbVBlcmZDb3VudGVyczsKLSAgICBJbnRlcm5hbFNoYWRlclBlcmZDb3VudGVycyBtQ3Vt
dWxhdGl2ZVBlcmZDb3VudGVyczsKIH07CiAKIH0gIC8vIG5hbWVzcGFjZSByeApkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL3Z1bGthbi9W
a0ltYWdlSW1hZ2VTaWJsaW5nVmsuY3BwIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xp
YkFOR0xFL3JlbmRlcmVyL3Z1bGthbi9Wa0ltYWdlSW1hZ2VTaWJsaW5nVmsuY3BwCmluZGV4IGVk
ZjU3OWIxZGFjMjNjOTExNTk1N2JjZWQyNWNiNzdmM2E3Y2YxNjEuLmQ1MGY0MzcwYzMyOGNmZTc3
ZWUwMThiOWI0MzgyOWM0OTczNmViZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FO
R0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci92dWxrYW4vVmtJbWFnZUltYWdlU2libGluZ1ZrLmNw
cAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvdnVs
a2FuL1ZrSW1hZ2VJbWFnZVNpYmxpbmdWay5jcHAKQEAgLTQ4LDIwICs0OCwyNSBAQCBhbmdsZTo6
UmVzdWx0IFZrSW1hZ2VJbWFnZVNpYmxpbmdWazo6aW5pdEltcGwoRGlzcGxheVZrICpkaXNwbGF5
VmspCiAgICAgY29uc3QgYW5nbGU6OkZvcm1hdElEIGZvcm1hdElEID0gdms6OkdldEZvcm1hdElE
RnJvbVZrRm9ybWF0KG1Wa0ltYWdlSW5mby5mb3JtYXQpOwogICAgIEFOR0xFX1ZLX0NIRUNLKGRp
c3BsYXlWaywgZm9ybWF0SUQgIT0gYW5nbGU6OkZvcm1hdElEOjpOT05FLCBWS19FUlJPUl9GT1JN
QVRfTk9UX1NVUFBPUlRFRCk7CiAKLSAgICBjb25zdCB2azo6Rm9ybWF0ICZ2a0Zvcm1hdCAgICAg
ICAgICAgICA9IHJlbmRlcmVyLT5nZXRGb3JtYXQoZm9ybWF0SUQpOwotICAgIGNvbnN0IGFuZ2xl
OjpGb3JtYXRJRCBpbnRlbmRlZEZvcm1hdElEID0gdmtGb3JtYXQuZ2V0SW50ZW5kZWRGb3JtYXRJ
RCgpOworICAgIGNvbnN0IHZrOjpGb3JtYXQgJnZrRm9ybWF0ID0gcmVuZGVyZXItPmdldEZvcm1h
dChmb3JtYXRJRCk7CiAgICAgY29uc3Qgdms6OkltYWdlQWNjZXNzIGltYWdlQWNjZXNzID0KICAg
ICAgICAgaXNSZW5kZXJhYmxlKG51bGxwdHIpID8gdms6OkltYWdlQWNjZXNzOjpSZW5kZXJhYmxl
IDogdms6OkltYWdlQWNjZXNzOjpTYW1wbGVPbmx5OwogICAgIGNvbnN0IGFuZ2xlOjpGb3JtYXRJ
RCBhY3R1YWxJbWFnZUZvcm1hdElEID0gdmtGb3JtYXQuZ2V0QWN0dWFsSW1hZ2VGb3JtYXRJRChp
bWFnZUFjY2Vzcyk7CiAgICAgY29uc3QgYW5nbGU6OkZvcm1hdCAmZm9ybWF0ICAgICAgICAgICAg
ICAgPSBhbmdsZTo6Rm9ybWF0OjpHZXQoYWN0dWFsSW1hZ2VGb3JtYXRJRCk7CisKKyAgICBhbmds
ZTo6Rm9ybWF0SUQgaW50ZW5kZWRGb3JtYXRJRDsKICAgICBpZiAobUludGVybmFsRm9ybWF0ICE9
IEdMX05PTkUpCiAgICAgewotICAgICAgICBHTGVudW0gdHlwZSA9IGdsOjpHZXRTaXplZEludGVy
bmFsRm9ybWF0SW5mbyhmb3JtYXQuZ2xJbnRlcm5hbEZvcm1hdCkudHlwZTsKLSAgICAgICAgbUZv
cm1hdCAgICAgPSBnbDo6Rm9ybWF0KG1JbnRlcm5hbEZvcm1hdCwgdHlwZSk7CisgICAgICAgIC8v
IElmIEVHTF9URVhUVVJFX0lOVEVSTkFMX0ZPUk1BVF9BTkdMRSBpcyBwcm92aWRlZCBmb3IgZWds
Q3JlYXRlSW1hZ2VLSFIoKSwKKyAgICAgICAgLy8gdGhlIHByb3ZpZGVkIGZvcm1hdCB3aWxsIGJl
IHVzZWQgZm9yIG1Gb3JtYXQgYW5kIGludGVuZGVkRm9ybWF0LgorICAgICAgICBpbnRlbmRlZEZv
cm1hdElEID0gYW5nbGU6OkZvcm1hdDo6SW50ZXJuYWxGb3JtYXRUb0lEKG1JbnRlcm5hbEZvcm1h
dCk7CisgICAgICAgIEdMZW51bSB0eXBlICAgICAgPSBnbDo6R2V0U2l6ZWRJbnRlcm5hbEZvcm1h
dEluZm8oZm9ybWF0LmdsSW50ZXJuYWxGb3JtYXQpLnR5cGU7CisgICAgICAgIG1Gb3JtYXQgICAg
ICAgICAgPSBnbDo6Rm9ybWF0KG1JbnRlcm5hbEZvcm1hdCwgdHlwZSk7CiAgICAgfQogICAgIGVs
c2UKICAgICB7Ci0gICAgICAgIG1Gb3JtYXQgPSBnbDo6Rm9ybWF0KGZvcm1hdC5nbEludGVybmFs
Rm9ybWF0KTsKKyAgICAgICAgaW50ZW5kZWRGb3JtYXRJRCA9IHZrRm9ybWF0LmdldEludGVuZGVk
Rm9ybWF0SUQoKTsKKyAgICAgICAgbUZvcm1hdCAgICAgICAgICA9IGdsOjpGb3JtYXQoZm9ybWF0
LmdsSW50ZXJuYWxGb3JtYXQpOwogICAgIH0KIAogICAgIC8vIENyZWF0ZSB0aGUgaW1hZ2UKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci92
dWxrYW4vdmtfY2FjaGVfdXRpbHMuY3BwIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xp
YkFOR0xFL3JlbmRlcmVyL3Z1bGthbi92a19jYWNoZV91dGlscy5jcHAKaW5kZXggMDYwYWJjZGE1
NDEzNTc2ODk1NmRlNTZkZTBjOWM1NjNiNTc0NDdiNC4uZGZhY2JhYmM5N2ZhZjU1NDljNWJkY2M5
MzliYzMzZjJjNDQ5ODc1NyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3Jj
L2xpYkFOR0xFL3JlbmRlcmVyL3Z1bGthbi92a19jYWNoZV91dGlscy5jcHAKKysrIGIvU291cmNl
L1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL3Z1bGthbi92a19jYWNoZV91
dGlscy5jcHAKQEAgLTc0OSw3ICs3NDksNyBAQCBhbmdsZTo6UmVzdWx0IENyZWF0ZVJlbmRlclBh
c3MyKENvbnRleHQgKmNvbnRleHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IFZrUmVuZGVyUGFzc011bHRpdmlld0NyZWF0ZUluZm8gJm11bHRpdmlld0luZm8sCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgdW5yZXNvbHZlRGVwdGgsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgdW5yZXNvbHZlU3RlbmNpbCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBpc1JlbmRlclRvVGV4dHVyZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBpc1JlbmRlclRvVGV4dHVyZVRocm91Z2hFeHRl
bnNpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgcmVuZGVyVG9U
ZXh0dXJlU2FtcGxlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVuZGVyUGFz
cyAqcmVuZGVyUGFzcykKIHsKQEAgLTg0NSwxNCArODQ1LDE0IEBAIGFuZ2xlOjpSZXN1bHQgQ3Jl
YXRlUmVuZGVyUGFzczIoQ29udGV4dCAqY29udGV4dCwKICAgICAvLyBBcHBlbmQgdGhlIGRlcHRo
L3N0ZW5jaWwgcmVzb2x2ZSBhdHRhY2htZW50IHRvIHRoZSBwTmV4dCBjaGFpbiBvZiBsYXN0IHN1
YnBhc3MsIGlmIGFueS4KICAgICBpZiAoZGVwdGhTdGVuY2lsUmVzb2x2ZS5wRGVwdGhTdGVuY2ls
UmVzb2x2ZUF0dGFjaG1lbnQgIT0gbnVsbHB0cikKICAgICB7Ci0gICAgICAgIEFTU0VSVCghaXNS
ZW5kZXJUb1RleHR1cmUpOworICAgICAgICBBU1NFUlQoIWlzUmVuZGVyVG9UZXh0dXJlVGhyb3Vn
aEV4dGVuc2lvbik7CiAgICAgICAgIHN1YnBhc3NEZXNjcmlwdGlvbnMuYmFjaygpLnBOZXh0ID0g
JmRlcHRoU3RlbmNpbFJlc29sdmU7CiAgICAgfQogICAgIGVsc2UKICAgICB7CiAgICAgICAgIFJl
bmRlcmVyVmsgKnJlbmRlcmVyID0gY29udGV4dC0+Z2V0UmVuZGVyZXIoKTsKIAotICAgICAgICBB
U1NFUlQoaXNSZW5kZXJUb1RleHR1cmUpOworICAgICAgICBBU1NFUlQoaXNSZW5kZXJUb1RleHR1
cmVUaHJvdWdoRXh0ZW5zaW9uKTsKICAgICAgICAgQVNTRVJUKHJlbmRlcmVyLT5nZXRGZWF0dXJl
cygpLnN1cHBvcnRzTXVsdGlzYW1wbGVkUmVuZGVyVG9TaW5nbGVTYW1wbGVkLmVuYWJsZWQpOwog
ICAgICAgICBBU1NFUlQoc3VicGFzc0Rlc2NyaXB0aW9ucy5zaXplKCkgPT0gMSk7CiAKQEAgLTEw
NTgsMTEgKzEwNTgsMTUgQEAgYW5nbGU6OlJlc3VsdCBJbml0aWFsaXplUmVuZGVyUGFzc0Zyb21E
ZXNjKENvbnRleHRWayAqY29udGV4dFZrLAogICAgICAgICBWS19JTUFHRV9MQVlPVVRfVU5ERUZJ
TkVELCAwfTsKIAogICAgIGNvbnN0IGJvb2wgbmVlZElucHV0QXR0YWNobWVudHMgPSBkZXNjLmdl
dEZyYW1lYnVmZmVyRmV0Y2hNb2RlKCk7Ci0gICAgY29uc3QgYm9vbCBpc1JlbmRlclRvVGV4dHVy
ZSAgICA9IGRlc2MuaXNSZW5kZXJUb1RleHR1cmUoKTsKKyAgICBjb25zdCBib29sIGlzUmVuZGVy
VG9UZXh0dXJlVGhyb3VnaEV4dGVuc2lvbiA9CisgICAgICAgIGRlc2MuaXNSZW5kZXJUb1RleHR1
cmUoKSAmJgorICAgICAgICBjb250ZXh0VmstPmdldEZlYXR1cmVzKCkuc3VwcG9ydHNNdWx0aXNh
bXBsZWRSZW5kZXJUb1NpbmdsZVNhbXBsZWQuZW5hYmxlZDsKKyAgICBjb25zdCBib29sIGlzUmVu
ZGVyVG9UZXh0dXJlVGhyb3VnaEVtdWxhdGlvbiA9CisgICAgICAgIGRlc2MuaXNSZW5kZXJUb1Rl
eHR1cmUoKSAmJiAhaXNSZW5kZXJUb1RleHR1cmVUaHJvdWdoRXh0ZW5zaW9uOwogCiAgICAgY29u
c3QgdWludDhfdCBkZXNjU2FtcGxlcyAgICAgICAgICAgID0gZGVzYy5zYW1wbGVzKCk7Ci0gICAg
Y29uc3QgdWludDhfdCBhdHRhY2htZW50U2FtcGxlcyAgICAgID0gaXNSZW5kZXJUb1RleHR1cmUg
PyAxIDogZGVzY1NhbXBsZXM7Ci0gICAgY29uc3QgdWludDhfdCByZW5kZXJUb1RleHR1cmVTYW1w
bGVzID0gaXNSZW5kZXJUb1RleHR1cmUgPyBkZXNjU2FtcGxlcyA6IDE7CisgICAgY29uc3QgdWlu
dDhfdCBhdHRhY2htZW50U2FtcGxlcyAgICAgID0gaXNSZW5kZXJUb1RleHR1cmVUaHJvdWdoRXh0
ZW5zaW9uID8gMSA6IGRlc2NTYW1wbGVzOworICAgIGNvbnN0IHVpbnQ4X3QgcmVuZGVyVG9UZXh0
dXJlU2FtcGxlcyA9IGlzUmVuZGVyVG9UZXh0dXJlVGhyb3VnaEV4dGVuc2lvbiA/IGRlc2NTYW1w
bGVzIDogMTsKIAogICAgIC8vIFVucGFjayB0aGUgcGFja2VkIGFuZCBzcGxpdCByZXByZXNlbnRh
dGlvbiBpbnRvIHRoZSBmb3JtYXQgcmVxdWlyZWQgYnkgVnVsa2FuLgogICAgIGdsOjpEcmF3QnVm
ZmVyc1ZlY3RvcjxWa0F0dGFjaG1lbnRSZWZlcmVuY2U+IGNvbG9yQXR0YWNobWVudFJlZnM7CkBA
IC0xMTg0LDkgKzExODgsMTMgQEAgYW5nbGU6OlJlc3VsdCBJbml0aWFsaXplUmVuZGVyUGFzc0Zy
b21EZXNjKENvbnRleHRWayAqY29udGV4dFZrLAogICAgICAgICAgICAgY29sb3JSZXNvbHZlQXR0
YWNobWVudFJlZnMucHVzaF9iYWNrKGNvbG9yUmVmKTsKICAgICAgICAgfQogCisgICAgICAgIC8v
IFdoZW4gbXVsdGlzYW1wbGVkLXJlbmRlci10by10ZXh0dXJlIGlzIHVzZWQsIGludmFsaWRhdGlu
ZyBhbiBhdHRhY2htZW50IGludmFsaWRhdGVzIGJvdGgKKyAgICAgICAgLy8gdGhlIG11bHRpc2Ft
cGxlZCBhbmQgdGhlIHJlc29sdmUgYXR0YWNobWVudHMuICBPdGhlcndpc2UsIHRoZSByZXNvbHZl
IGF0dGFjaG1lbnQgaXMKKyAgICAgICAgLy8gaW5kZXBlbmRlbnQgb2YgdGhlIG11bHRpc2FtcGxl
ZCBhdHRhY2htZW50LCBhbmQgaXMgbmV2ZXIgaW52YWxpZGF0ZWQuCiAgICAgICAgIFVucGFja0Nv
bG9yUmVzb2x2ZUF0dGFjaG1lbnREZXNjKAogICAgICAgICAgICAgJmF0dGFjaG1lbnREZXNjc1th
dHRhY2htZW50Q291bnQuZ2V0KCldLCBhdHRhY2htZW50Rm9ybWF0SUQsCi0gICAgICAgICAgICBk
ZXNjLmhhc0NvbG9yVW5yZXNvbHZlQXR0YWNobWVudChjb2xvckluZGV4R0wpLCBpc0NvbG9ySW52
YWxpZGF0ZWQudGVzdChjb2xvckluZGV4R0wpKTsKKyAgICAgICAgICAgIGRlc2MuaGFzQ29sb3JV
bnJlc29sdmVBdHRhY2htZW50KGNvbG9ySW5kZXhHTCksCisgICAgICAgICAgICBpc0NvbG9ySW52
YWxpZGF0ZWQudGVzdChjb2xvckluZGV4R0wpICYmIGlzUmVuZGVyVG9UZXh0dXJlVGhyb3VnaEVt
dWxhdGlvbik7CiAKICAgICAgICAgKythdHRhY2htZW50Q291bnQ7CiAgICAgfQpAQCAtMTM0NCwx
MiArMTM1MiwxNCBAQCBhbmdsZTo6UmVzdWx0IEluaXRpYWxpemVSZW5kZXJQYXNzRnJvbURlc2Mo
Q29udGV4dFZrICpjb250ZXh0VmssCiAgICAgLy8gSWYgZGVwdGgvc3RlbmNpbCByZXNvbHZlIGlz
IHVzZWQsIHdlIG5lZWQgdG8gY3JlYXRlIHRoZSByZW5kZXIgcGFzcyB3aXRoCiAgICAgLy8gdmtD
cmVhdGVSZW5kZXJQYXNzMktIUi4gIFNhbWUgd2hlbiB1c2luZyB0aGUgVktfRVhUX211bHRpc2Ft
cGxlZF9yZW5kZXJfdG9fc2luZ2xlX3NhbXBsZWQKICAgICAvLyBleHRlbnNpb24uCi0gICAgaWYg
KGRlcHRoU3RlbmNpbFJlc29sdmUucERlcHRoU3RlbmNpbFJlc29sdmVBdHRhY2htZW50ICE9IG51
bGxwdHIgfHwgZGVzYy5pc1JlbmRlclRvVGV4dHVyZSgpKQorICAgIGlmIChkZXB0aFN0ZW5jaWxS
ZXNvbHZlLnBEZXB0aFN0ZW5jaWxSZXNvbHZlQXR0YWNobWVudCAhPSBudWxscHRyIHx8CisgICAg
ICAgIGlzUmVuZGVyVG9UZXh0dXJlVGhyb3VnaEV4dGVuc2lvbikKICAgICB7CiAgICAgICAgIEFO
R0xFX1RSWShDcmVhdGVSZW5kZXJQYXNzMihjb250ZXh0VmssIGNyZWF0ZUluZm8sIGRlcHRoU3Rl
bmNpbFJlc29sdmUsIG11bHRpdmlld0luZm8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBkZXNjLmhhc0RlcHRoVW5yZXNvbHZlQXR0YWNobWVudCgpLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZGVzYy5oYXNTdGVuY2lsVW5yZXNvbHZlQXR0YWNobWVu
dCgpLCBkZXNjLmlzUmVuZGVyVG9UZXh0dXJlKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICByZW5kZXJUb1RleHR1cmVTYW1wbGVzLCAmcmVuZGVyUGFzc0hlbHBlci0+Z2V0
UmVuZGVyUGFzcygpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNj
Lmhhc1N0ZW5jaWxVbnJlc29sdmVBdHRhY2htZW50KCksCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpc1JlbmRlclRvVGV4dHVyZVRocm91Z2hFeHRlbnNpb24sIHJlbmRlclRv
VGV4dHVyZVNhbXBsZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcmVu
ZGVyUGFzc0hlbHBlci0+Z2V0UmVuZGVyUGFzcygpKSk7CiAgICAgfQogICAgIGVsc2UKICAgICB7
CkBAIC0xNDUzLDE3ICsxNDYzLDI3IEBAIHZvaWQgSW5pdGlhbGl6ZVNwZWNpYWxpemF0aW9uSW5m
bygKIAogLy8gQWRqdXN0IGJvcmRlciBjb2xvciB2YWx1ZSBhY2NvcmRpbmcgdG8gaW50ZW5kZWQg
Zm9ybWF0LgogZ2w6OkNvbG9yR2VuZXJpYyBBZGp1c3RCb3JkZXJDb2xvcihjb25zdCBhbmdsZTo6
Q29sb3JHZW5lcmljICZib3JkZXJDb2xvckdlbmVyaWMsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnN0IGFuZ2xlOjpGb3JtYXQgJmZvcm1hdCkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgYW5nbGU6OkZvcm1hdCAmZm9ybWF0LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIHN0ZW5jaWxNb2RlKQogewogICAgIGds
OjpDb2xvckdlbmVyaWMgYWRqdXN0ZWRCb3JkZXJDb2xvciA9IGJvcmRlckNvbG9yR2VuZXJpYzsK
IAogICAgIC8vIEhhbmRsZSBkZXB0aCBmb3JtYXRzCiAgICAgaWYgKGZvcm1hdC5oYXNEZXB0aE9y
U3RlbmNpbEJpdHMoKSkKICAgICB7Ci0gICAgICAgIGlmIChmb3JtYXQuZGVwdGhCaXRzID4gMCAm
JiBmb3JtYXQuaXNVbm9ybSgpKQorICAgICAgICBpZiAoc3RlbmNpbE1vZGUpCiAgICAgICAgIHsK
LSAgICAgICAgICAgIC8vIEQgb3IgRC9TIGZvcm1hdHMKLSAgICAgICAgICAgIGFkanVzdGVkQm9y
ZGVyQ29sb3IuY29sb3JGLnJlZCA9IGdsOjpjbGFtcDAxKGJvcmRlckNvbG9yR2VuZXJpYy5jb2xv
ckYucmVkKTsKKyAgICAgICAgICAgIC8vIFN0ZW5jaWwgY29tcG9uZW50CisgICAgICAgICAgICBh
ZGp1c3RlZEJvcmRlckNvbG9yLmNvbG9yVUkucmVkID0gZ2w6OmNsYW1wRm9yQml0Q291bnQ8dW5z
aWduZWQgaW50PigKKyAgICAgICAgICAgICAgICBib3JkZXJDb2xvckdlbmVyaWMuY29sb3JVSS5y
ZWQsIGZvcm1hdC5zdGVuY2lsQml0cyk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZQorICAgICAg
ICB7CisgICAgICAgICAgICAvLyBEZXB0aCBjb21wb25lbnQKKyAgICAgICAgICAgIGlmIChmb3Jt
YXQuaXNVbm9ybSgpKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGFkanVzdGVkQm9y
ZGVyQ29sb3IuY29sb3JGLnJlZCA9IGdsOjpjbGFtcDAxKGJvcmRlckNvbG9yR2VuZXJpYy5jb2xv
ckYucmVkKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogCiAgICAgICAgIHJldHVybiBhZGp1
c3RlZEJvcmRlckNvbG9yOwpAQCAtMjI2OCw4ICsyMjg4LDE4IEBAIGFuZ2xlOjpSZXN1bHQgR3Jh
cGhpY3NQaXBlbGluZURlc2M6OmluaXRpYWxpemVQaXBlbGluZSgKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAtPmdldEZvcm1hdChtUmVuZGVyUGFzc0Rlc2NbY29sb3JJbmRleEdMXSkKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAuZ2V0QWN0dWFsUmVuZGVyYWJsZUltYWdlRm9ybWF0
KCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuaXNJbnQoKSk7Ci0gICAgICAgICAgICAg
ICAgc3RhdGUuYmxlbmRFbmFibGUgPSBWS19UUlVFOwotICAgICAgICAgICAgICAgIFVucGFja0Js
ZW5kQXR0YWNobWVudFN0YXRlKGlucHV0QW5kQmxlbmQuYXR0YWNobWVudHNbY29sb3JJbmRleEdM
XSwgJnN0YXRlKTsKKworICAgICAgICAgICAgICAgIC8vIFRoZSBibGVuZCBmaXhlZC1mdW5jdGlv
biBpcyBlbmFibGVkIHdpdGggbm9ybWFsIGJsZW5kIGFzIHdlbGwgYXMgYWR2YW5jZWQgYmxlbmQK
KyAgICAgICAgICAgICAgICAvLyB3aGVuIHRoZSBWdWxrYW4gZXh0ZW5zaW9uIGlzIHByZXNlbnQu
ICBXaGVuIGVtdWxhdGluZyBhZHZhbmNlZCBibGVuZCBpbiB0aGUKKyAgICAgICAgICAgICAgICAv
LyBzaGFkZXIsIHRoZSBibGVuZCBmaXhlZC1mdW5jdGlvbiBtdXN0IGJlIGRpc2FibGVkLgorICAg
ICAgICAgICAgICAgIGNvbnN0IFBhY2tlZENvbG9yQmxlbmRBdHRhY2htZW50U3RhdGUgJnBhY2tl
ZEJsZW5kU3RhdGUgPQorICAgICAgICAgICAgICAgICAgICBpbnB1dEFuZEJsZW5kLmF0dGFjaG1l
bnRzW2NvbG9ySW5kZXhHTF07CisgICAgICAgICAgICAgICAgaWYgKHBhY2tlZEJsZW5kU3RhdGUu
Y29sb3JCbGVuZE9wIDw9IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KFZLX0JMRU5EX09QX01BWCkgfHwK
KyAgICAgICAgICAgICAgICAgICAgY29udGV4dFZrLT5nZXRGZWF0dXJlcygpLnN1cHBvcnRzQmxl
bmRPcGVyYXRpb25BZHZhbmNlZC5lbmFibGVkKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAg
ICAgICAgICAgICAgc3RhdGUuYmxlbmRFbmFibGUgPSBWS19UUlVFOworICAgICAgICAgICAgICAg
ICAgICBVbnBhY2tCbGVuZEF0dGFjaG1lbnRTdGF0ZShwYWNrZWRCbGVuZFN0YXRlLCAmc3RhdGUp
OworICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgfQogCkBAIC0yMjg2
LDkgKzIzMTYsMTMgQEAgYW5nbGU6OlJlc3VsdCBHcmFwaGljc1BpcGVsaW5lRGVzYzo6aW5pdGlh
bGl6ZVBpcGVsaW5lKAogICAgIH0KIAogICAgIC8vIER5bmFtaWMgc3RhdGUKLSAgICBhbmdsZTo6
Rml4ZWRWZWN0b3I8VmtEeW5hbWljU3RhdGUsIDI+IGR5bmFtaWNTdGF0ZUxpc3Q7CisgICAgYW5n
bGU6OkZpeGVkVmVjdG9yPFZrRHluYW1pY1N0YXRlLCAzPiBkeW5hbWljU3RhdGVMaXN0OwogICAg
IGR5bmFtaWNTdGF0ZUxpc3QucHVzaF9iYWNrKFZLX0RZTkFNSUNfU1RBVEVfVklFV1BPUlQpOwog
ICAgIGR5bmFtaWNTdGF0ZUxpc3QucHVzaF9iYWNrKFZLX0RZTkFNSUNfU1RBVEVfU0NJU1NPUik7
CisgICAgaWYgKGNvbnRleHRWay0+Z2V0RmVhdHVyZXMoKS5zdXBwb3J0c0ZyYWdtZW50U2hhZGlu
Z1JhdGUuZW5hYmxlZCkKKyAgICB7CisgICAgICAgIGR5bmFtaWNTdGF0ZUxpc3QucHVzaF9iYWNr
KFZLX0RZTkFNSUNfU1RBVEVfRlJBR01FTlRfU0hBRElOR19SQVRFX0tIUik7CisgICAgfQogCiAg
ICAgVmtQaXBlbGluZUR5bmFtaWNTdGF0ZUNyZWF0ZUluZm8gZHluYW1pY1N0YXRlID0ge307CiAg
ICAgZHluYW1pY1N0YXRlLnNUeXBlICAgICAgICAgICAgID0gVktfU1RSVUNUVVJFX1RZUEVfUElQ
RUxJTkVfRFlOQU1JQ19TVEFURV9DUkVBVEVfSU5GTzsKQEAgLTM0MTYsMTUgKzM0NTAsMjEgQEAg
dm9pZCBTYW1wbGVyRGVzYzo6dXBkYXRlKENvbnRleHRWayAqY29udGV4dFZrLAogewogICAgIGNv
bnN0IGFuZ2xlOjpGZWF0dXJlc1ZrICZmZWF0dXJlc1ZrID0gY29udGV4dFZrLT5nZXRGZWF0dXJl
cygpOwogICAgIG1NaXBMb2RCaWFzICAgICAgICAgICAgICAgICAgICAgICAgID0gMC4wZjsKLSAg
ICBmb3IgKHNpemVfdCBsb2RPZmZzZXRGZWF0dXJlSWR4ID0gMDsKLSAgICAgICAgIGxvZE9mZnNl
dEZlYXR1cmVJZHggPCBmZWF0dXJlc1ZrLmZvcmNlVGV4dHVyZUxPRE9mZnNldC5zaXplKCk7IGxv
ZE9mZnNldEZlYXR1cmVJZHgrKykKKyAgICBpZiAoZmVhdHVyZXNWay5mb3JjZVRleHR1cmVMb2RP
ZmZzZXQxLmVuYWJsZWQpCiAgICAgewotICAgICAgICBpZiAoZmVhdHVyZXNWay5mb3JjZVRleHR1
cmVMT0RPZmZzZXRbbG9kT2Zmc2V0RmVhdHVyZUlkeF0uZW5hYmxlZCkKLSAgICAgICAgewotICAg
ICAgICAgICAgLy8gTWFrZSBzdXJlIG9ubHkgb25lIGZvcmNlVGV4dHVyZUxPRE9mZnNldCBmZWF0
dXJlIGlzIHNldC4KLSAgICAgICAgICAgIEFTU0VSVChtTWlwTG9kQmlhcyA9PSAwLjBmKTsKLSAg
ICAgICAgICAgIG1NaXBMb2RCaWFzID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KGxvZE9mZnNldEZlYXR1
cmVJZHggKyAxKTsKLSAgICAgICAgfQorICAgICAgICBtTWlwTG9kQmlhcyA9IDEuMGY7CisgICAg
fQorICAgIGVsc2UgaWYgKGZlYXR1cmVzVmsuZm9yY2VUZXh0dXJlTG9kT2Zmc2V0Mi5lbmFibGVk
KQorICAgIHsKKyAgICAgICAgbU1pcExvZEJpYXMgPSAyLjBmOworICAgIH0KKyAgICBlbHNlIGlm
IChmZWF0dXJlc1ZrLmZvcmNlVGV4dHVyZUxvZE9mZnNldDMuZW5hYmxlZCkKKyAgICB7CisgICAg
ICAgIG1NaXBMb2RCaWFzID0gMy4wZjsKKyAgICB9CisgICAgZWxzZSBpZiAoZmVhdHVyZXNWay5m
b3JjZVRleHR1cmVMb2RPZmZzZXQ0LmVuYWJsZWQpCisgICAgeworICAgICAgICBtTWlwTG9kQmlh
cyA9IDQuMGY7CiAgICAgfQogCiAgICAgbU1heEFuaXNvdHJvcHkgPSBzYW1wbGVyU3RhdGUuZ2V0
TWF4QW5pc290cm9weSgpOwpAQCAtMzQ4Niw3ICszNTI2LDcgQEAgdm9pZCBTYW1wbGVyRGVzYzo6
dXBkYXRlKENvbnRleHRWayAqY29udGV4dFZrLAogICAgIC8vIEFkanVzdCBib3JkZXIgY29sb3Ig
YWNjb3JkaW5nIHRvIGludGVuZGVkIGZvcm1hdAogICAgIGNvbnN0IHZrOjpGb3JtYXQgJnZrRm9y
bWF0ID0gY29udGV4dFZrLT5nZXRSZW5kZXJlcigpLT5nZXRGb3JtYXQoaW50ZW5kZWRGb3JtYXRJ
RCk7CiAgICAgZ2w6OkNvbG9yR2VuZXJpYyBhZGp1c3RlZEJvcmRlckNvbG9yID0KLSAgICAgICAg
QWRqdXN0Qm9yZGVyQ29sb3Ioc2FtcGxlclN0YXRlLmdldEJvcmRlckNvbG9yKCksIHZrRm9ybWF0
LmdldEludGVuZGVkRm9ybWF0KCkpOworICAgICAgICBBZGp1c3RCb3JkZXJDb2xvcihzYW1wbGVy
U3RhdGUuZ2V0Qm9yZGVyQ29sb3IoKSwgdmtGb3JtYXQuZ2V0SW50ZW5kZWRGb3JtYXQoKSwgc3Rl
bmNpbE1vZGUpOwogICAgIG1Cb3JkZXJDb2xvciA9IGFkanVzdGVkQm9yZGVyQ29sb3IuY29sb3JG
OwogCiAgICAgbVJlc2VydmVkID0gMDsKQEAgLTQxNDgsMTIgKzQxODgsNCBAQCB2b2lkIERyaXZl
clVuaWZvcm1zRGVzY3JpcHRvclNldENhY2hlOjpkZXN0cm95KFJlbmRlcmVyVmsgKnJlbmRlcmVy
VmspCiAgICAgYWNjdW11bGF0ZUNhY2hlU3RhdHMocmVuZGVyZXJWayk7CiAgICAgbVBheWxvYWQu
Y2xlYXIoKTsKIH0KLQotLy8gRGVzY3JpcHRvclNldENhY2hlIGltcGxlbWVudGF0aW9uLgotdm9p
ZCBEZXNjcmlwdG9yU2V0Q2FjaGU6OmRlc3Ryb3koUmVuZGVyZXJWayAqcmVuZGVyZXJWaywgVnVs
a2FuQ2FjaGVUeXBlIGNhY2hlVHlwZSkKLXsKLSAgICBhY2N1bXVsYXRlQ2FjaGVTdGF0cyhjYWNo
ZVR5cGUsIHJlbmRlcmVyVmspOwotICAgIG1QYXlsb2FkLmNsZWFyKCk7Ci0gICAgbUNhY2hlU3Rh
dHMucmVzZXQoKTsKLX0KIH0gIC8vIG5hbWVzcGFjZSByeApkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL3Z1bGthbi92a19jYWNoZV91dGls
cy5oIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL3Z1bGth
bi92a19jYWNoZV91dGlscy5oCmluZGV4IDk2NzI5YjQ0ZTExNDcxOWEwMWI0ODBlMGNiZjNlOWI2
MDBjNjY5ZWIuLjdkMzJkMzhhN2ZhZTM3M2JiZmM0Y2U0Mzg3MzcyNWU0NThmN2IzNDYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci92dWxr
YW4vdmtfY2FjaGVfdXRpbHMuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGli
QU5HTEUvcmVuZGVyZXIvdnVsa2FuL3ZrX2NhY2hlX3V0aWxzLmgKQEAgLTE1MTksNiArMTUxOSwx
OCBAQCBjbGFzcyBDYWNoZVN0YXRzIGZpbmFsIDogYW5nbGU6Ok5vbkNvcHlhYmxlCiAgICAgQ2Fj
aGVTdGF0cygpIHsgcmVzZXQoKTsgfQogICAgIH5DYWNoZVN0YXRzKCkge30KIAorICAgIENhY2hl
U3RhdHMoY29uc3QgQ2FjaGVTdGF0cyAmcmhzKQorICAgICAgICA6IG1IaXRDb3VudChyaHMubUhp
dENvdW50KSwgbU1pc3NDb3VudChyaHMubU1pc3NDb3VudCksIG1TaXplKHJocy5tU2l6ZSkKKyAg
ICB7fQorCisgICAgQ2FjaGVTdGF0cyAmb3BlcmF0b3I9KGNvbnN0IENhY2hlU3RhdHMgJnJocykK
KyAgICB7CisgICAgICAgIG1IaXRDb3VudCAgPSByaHMubUhpdENvdW50OworICAgICAgICBtTWlz
c0NvdW50ID0gcmhzLm1NaXNzQ291bnQ7CisgICAgICAgIG1TaXplICAgICAgPSByaHMubVNpemU7
CisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisKICAgICBBTkdMRV9JTkxJTkUgdm9pZCBo
aXQoKSB7IG1IaXRDb3VudCsrOyB9CiAgICAgQU5HTEVfSU5MSU5FIHZvaWQgbWlzcygpIHsgbU1p
c3NDb3VudCsrOyB9CiAgICAgQU5HTEVfSU5MSU5FIHZvaWQgYWNjdW11bGF0ZShjb25zdCBDYWNo
ZVN0YXRzICZzdGF0cykKQEAgLTE1NTQsNiArMTU2NiwxMiBAQCBjbGFzcyBDYWNoZVN0YXRzIGZp
bmFsIDogYW5nbGU6Ok5vbkNvcHlhYmxlCiAgICAgICAgIG1TaXplICAgICAgPSAwOwogICAgIH0K
IAorICAgIHZvaWQgcmVzZXRIaXRBbmRNaXNzQ291bnQoKQorICAgIHsKKyAgICAgICAgbUhpdENv
dW50ICA9IDA7CisgICAgICAgIG1NaXNzQ291bnQgPSAwOworICAgIH0KKwogICBwcml2YXRlOgog
ICAgIHVpbnQ2NF90IG1IaXRDb3VudDsKICAgICB1aW50NjRfdCBtTWlzc0NvdW50OwpAQCAtMTgw
NSwzMSArMTgyMywyOSBAQCBjbGFzcyBEZXNjcmlwdG9yU2V0Q2FjaGUgZmluYWwgOiBhbmdsZTo6
Tm9uQ29weWFibGUKICAgICBEZXNjcmlwdG9yU2V0Q2FjaGUoKSA9IGRlZmF1bHQ7CiAgICAgfkRl
c2NyaXB0b3JTZXRDYWNoZSgpIHsgQVNTRVJUKG1QYXlsb2FkLmVtcHR5KCkpOyB9CiAKLSAgICB2
b2lkIGRlc3Ryb3koUmVuZGVyZXJWayAqcmVuZGVyZXJWaywgVnVsa2FuQ2FjaGVUeXBlIGNhY2hl
VHlwZSk7CisgICAgQU5HTEVfSU5MSU5FIHZvaWQgY2xlYXIoKSB7IG1QYXlsb2FkLmNsZWFyKCk7
IH0KIAotICAgIEFOR0xFX0lOTElORSBib29sIGdldChjb25zdCB2azo6RGVzY3JpcHRvclNldERl
c2MgJmRlc2MsIFZrRGVzY3JpcHRvclNldCAqZGVzY3JpcHRvclNldCkKKyAgICBBTkdMRV9JTkxJ
TkUgYm9vbCBnZXQoY29uc3Qgdms6OkRlc2NyaXB0b3JTZXREZXNjICZkZXNjLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICBWa0Rlc2NyaXB0b3JTZXQgKmRlc2NyaXB0b3JTZXQsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgIENhY2hlU3RhdHMgKmNhY2hlU3RhdHMpCiAgICAgewogICAgICAg
ICBhdXRvIGl0ZXIgPSBtUGF5bG9hZC5maW5kKGRlc2MpOwogICAgICAgICBpZiAoaXRlciAhPSBt
UGF5bG9hZC5lbmQoKSkKICAgICAgICAgewogICAgICAgICAgICAgKmRlc2NyaXB0b3JTZXQgPSBp
dGVyLT5zZWNvbmQ7Ci0gICAgICAgICAgICBtQ2FjaGVTdGF0cy5oaXQoKTsKKyAgICAgICAgICAg
IGNhY2hlU3RhdHMtPmhpdCgpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0K
LSAgICAgICAgbUNhY2hlU3RhdHMubWlzcygpOworICAgICAgICBjYWNoZVN0YXRzLT5taXNzKCk7
CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKLSAgICBBTkdMRV9JTkxJTkUgdm9pZCBp
bnNlcnQoY29uc3Qgdms6OkRlc2NyaXB0b3JTZXREZXNjICZkZXNjLCBWa0Rlc2NyaXB0b3JTZXQg
ZGVzY3JpcHRvclNldCkKKyAgICBBTkdMRV9JTkxJTkUgdm9pZCBpbnNlcnQoY29uc3Qgdms6OkRl
c2NyaXB0b3JTZXREZXNjICZkZXNjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWa0Rl
c2NyaXB0b3JTZXQgZGVzY3JpcHRvclNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Q2FjaGVTdGF0cyAqY2FjaGVTdGF0cykKICAgICB7CiAgICAgICAgIG1QYXlsb2FkLmVtcGxhY2Uo
ZGVzYywgZGVzY3JpcHRvclNldCk7Ci0gICAgICAgIG1DYWNoZVN0YXRzLmluY3JlbWVudFNpemUo
KTsKLSAgICB9Ci0KLSAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgQWNjdW11bGF0b3I+Ci0gICAgdm9p
ZCBhY2N1bXVsYXRlQ2FjaGVTdGF0cyhWdWxrYW5DYWNoZVR5cGUgY2FjaGVUeXBlLCBBY2N1bXVs
YXRvciAqYWNjdW11bGF0b3IpCi0gICAgewotICAgICAgICBhY2N1bXVsYXRvci0+YWNjdW11bGF0
ZUNhY2hlU3RhdHMoY2FjaGVUeXBlLCBtQ2FjaGVTdGF0cyk7CisgICAgICAgIGNhY2hlU3RhdHMt
PmluY3JlbWVudFNpemUoKTsKICAgICB9CiAKICAgICBzaXplX3QgZ2V0VG90YWxDYWNoZUtleVNp
emVCeXRlcygpIGNvbnN0CkBAIC0xODQ1LDcgKzE4NjEsNiBAQCBjbGFzcyBEZXNjcmlwdG9yU2V0
Q2FjaGUgZmluYWwgOiBhbmdsZTo6Tm9uQ29weWFibGUKIAogICBwcml2YXRlOgogICAgIGFuZ2xl
OjpIYXNoTWFwPHZrOjpEZXNjcmlwdG9yU2V0RGVzYywgVmtEZXNjcmlwdG9yU2V0PiBtUGF5bG9h
ZDsKLSAgICBDYWNoZVN0YXRzIG1DYWNoZVN0YXRzOwogfTsKIAogLy8gT25seSAxIGRyaXZlciB1
bmlmb3JtIGJpbmRpbmcgaXMgdXNlZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FO
R0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci92dWxrYW4vdmtfY2Fwc191dGlscy5jcHAgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvdnVsa2FuL3ZrX2NhcHNf
dXRpbHMuY3BwCmluZGV4IGM5OGM5N2JhNzJiOGI1YTc2OGJhYWU1OGQ5ZGM2NjEzN2QzNTg3NmYu
LjQwZmM1ODEwZTE4NjgzODQxZTk4NzJjMzQ3MDc0MmEyMGJiMmM4Y2YgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci92dWxrYW4vdmtfY2Fw
c191dGlscy5jcHAKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3Jl
bmRlcmVyL3Z1bGthbi92a19jYXBzX3V0aWxzLmNwcApAQCAtNTI1LDE1ICs1MjUsMTcgQEAgdm9p
ZCBSZW5kZXJlclZrOjplbnN1cmVDYXBzSW5pdGlhbGl6ZWQoKSBjb25zdAogICAgIG1OYXRpdmVF
eHRlbnNpb25zLnNhbXBsZVZhcmlhYmxlc09FUyA9CiAgICAgICAgIHN1cHBvcnRTYW1wbGVSYXRl
U2hhZGluZyAmJiB2a19nbDo6R2V0TWF4U2FtcGxlQ291bnQoa05vdFN1cHBvcnRlZFNhbXBsZUNv
dW50cykgPT0gMDsKIAotICAgIC8vIEdMX0tIUl9ibGVuZF9lcXVhdGlvbl9hZHZhbmNlZAotICAg
IC8vIFdoaWxlIGFkdmFuY2VkIGJsZW5kIGlzIG9ubHkgYWxsb3dlZCBmb3Igb25lIGF0dGFjaG1l
bnQsIHRoYXQgY291bGQgYmUgYW55IGF0dGFjaG1lbnQgaW5kZXguCi0gICAgLy8gVktfRVhUX2Js
ZW5kX29wZXJhdGlvbl9hZHZhbmNlZCByZXF1aXJlcyB0aGF0IHRoZSBhdHRhY2htZW50IGluZGV4
IGJlIGxlc3MgdGhhbgotICAgIC8vIHxhZHZhbmNlZEJsZW5kTWF4Q29sb3JBdHRhY2htZW50c3ws
IHdoaWNoIG1lYW5zIHdlIGNhbiBvbmx5IHRyaXZpYWxseSB0YWtlIGFkdmFudGFnZSBvZiB0aGlz
Ci0gICAgLy8gZXh0ZW5zaW9uIGlmIHxhZHZhbmNlZEJsZW5kTWF4Q29sb3JBdHRhY2htZW50cyA+
PSBtYXhfZHJhd19idWZmZXJzfC4KLSAgICBtTmF0aXZlRXh0ZW5zaW9ucy5ibGVuZEVxdWF0aW9u
QWR2YW5jZWRLSFIgPQotICAgICAgICBtRmVhdHVyZXMuc3VwcG9ydHNCbGVuZE9wZXJhdGlvbkFk
dmFuY2VkLmVuYWJsZWQgJiYKLSAgICAgICAgbUJsZW5kT3BlcmF0aW9uQWR2YW5jZWRQcm9wZXJ0
aWVzLmFkdmFuY2VkQmxlbmRNYXhDb2xvckF0dGFjaG1lbnRzID49Ci0gICAgICAgICAgICBnbDo6
SU1QTEVNRU5UQVRJT05fTUFYX0RSQVdfQlVGRkVSUzsKKyAgICAvLyBHTF9LSFJfYmxlbmRfZXF1
YXRpb25fYWR2YW5jZWQuICBBY2NvcmRpbmcgdG8gdGhlIHNwZWMsIG9ubHkgY29sb3IgYXR0YWNo
bWVudCB6ZXJvIGNhbiBiZQorICAgIC8vIHVzZWQgd2l0aCBhZHZhbmNlZCBibGVuZDoKKyAgICAv
LworICAgIC8vID4gQWR2YW5jZWQgYmxlbmRpbmcgZXF1YXRpb25zIGFyZSBzdXBwb3J0ZWQgb25s
eSB3aGVuIHJlbmRlcmluZyB0byBhIHNpbmdsZQorICAgIC8vID4gY29sb3IgYnVmZmVyIHVzaW5n
IGZyYWdtZW50IGNvbG9yIHplcm8uCisgICAgLy8KKyAgICAvLyBWdWxrYW4gcmVxdWlyZXMgYWR2
YW5jZWRCbGVuZE1heENvbG9yQXR0YWNobWVudHMgdG8gYmUgYXQgbGVhc3Qgb25lLCBzbyB3ZSBj
YW4gc3VwcG9ydAorICAgIC8vIGFkdmFuY2VkIGJsZW5kIGFzIGxvbmcgYXMgdGhlIFZ1bGthbiBl
eHRlbnNpb24gaXMgc3VwcG9ydGVkLiAgT3RoZXJ3aXNlLCB0aGUgZXh0ZW5zaW9uIGlzCisgICAg
Ly8gZW11bGF0ZWQgd2hlcmUgcG9zc2libGUuCisgICAgbU5hdGl2ZUV4dGVuc2lvbnMuYmxlbmRF
cXVhdGlvbkFkdmFuY2VkS0hSID0gbUZlYXR1cmVzLnN1cHBvcnRzQmxlbmRPcGVyYXRpb25BZHZh
bmNlZC5lbmFibGVkIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbUZlYXR1cmVzLmVtdWxhdGVBZHZhbmNlZEJsZW5kRXF1YXRpb25zLmVuYWJsZWQ7
CiAKICAgICAvLyBFbmFibGUgRVhUX3VucGFja19zdWJpbWFnZQogICAgIG1OYXRpdmVFeHRlbnNp
b25zLnVucGFja1N1YmltYWdlRVhUID0gdHJ1ZTsKQEAgLTgwMCw3ICs4MDIsMTAgQEAgdm9pZCBS
ZW5kZXJlclZrOjplbnN1cmVDYXBzSW5pdGlhbGl6ZWQoKSBjb25zdAogICAgIC8vIFNldCBtYXhT
aGFkZXJBdG9taWNDb3VudGVycyB0byB6ZXJvIGlmIGF0b21pYyBpcyBub3Qgc3VwcG9ydGVkLgog
ICAgIGlmICghbVBoeXNpY2FsRGV2aWNlRmVhdHVyZXMudmVydGV4UGlwZWxpbmVTdG9yZXNBbmRB
dG9taWNzKQogICAgIHsKLSAgICAgICAgbU5hdGl2ZUNhcHMubWF4U2hhZGVyQXRvbWljQ291bnRl
cnNbZ2w6OlNoYWRlclR5cGU6OlZlcnRleF0gPSAwOworICAgICAgICBtTmF0aXZlQ2Fwcy5tYXhT
aGFkZXJBdG9taWNDb3VudGVyc1tnbDo6U2hhZGVyVHlwZTo6VmVydGV4XSAgICAgICAgID0gMDsK
KyAgICAgICAgbU5hdGl2ZUNhcHMubWF4U2hhZGVyQXRvbWljQ291bnRlcnNbZ2w6OlNoYWRlclR5
cGU6Okdlb21ldHJ5XSAgICAgICA9IDA7CisgICAgICAgIG1OYXRpdmVDYXBzLm1heFNoYWRlckF0
b21pY0NvdW50ZXJzW2dsOjpTaGFkZXJUeXBlOjpUZXNzQ29udHJvbF0gICAgPSAwOworICAgICAg
ICBtTmF0aXZlQ2Fwcy5tYXhTaGFkZXJBdG9taWNDb3VudGVyc1tnbDo6U2hhZGVyVHlwZTo6VGVz
c0V2YWx1YXRpb25dID0gMDsKICAgICB9CiAgICAgaWYgKCFtUGh5c2ljYWxEZXZpY2VGZWF0dXJl
cy5mcmFnbWVudFN0b3Jlc0FuZEF0b21pY3MpCiAgICAgewpAQCAtOTg4LDEyICs5OTMsOCBAQCB2
b2lkIFJlbmRlcmVyVms6OmVuc3VyZUNhcHNJbml0aWFsaXplZCgpIGNvbnN0CiAgICAgICAgIG1O
YXRpdmVFeHRlbnNpb25zLmdlb21ldHJ5U2hhZGVyT0VTID0gZ2VvbWV0cnlTaGFkZXI7CiAgICAg
ICAgIG1OYXRpdmVDYXBzLm1heEZyYW1lYnVmZmVyTGF5ZXJzICAgID0gTGltaXRUb0ludChsaW1p
dHNWay5tYXhGcmFtZWJ1ZmZlckxheWVycyk7CiAKLSAgICAgICAgLy8gSWYgdGhlIHByb3Zva2lu
ZyB2ZXJ0ZXggZmVhdHVyZSBpcyBlbmFibGVkLCBhbmdsZSBzcGVjaWZpZXMgdG8gdXNlCi0gICAg
ICAgIC8vIHRoZSAibGFzdCIgY29udmVudGlvbiBpbiBvcmRlciB0byBtYXRjaCBHTCBiZWhhdmlv
ci4gT3RoZXJ3aXNlLCB1c2UKLSAgICAgICAgLy8gImZpcnN0IiBhcyB2dWxrYW4gZm9sbG93cyB0
aGlzIGNvbnZlbnRpb24gZm9yIHByb3Zva2luZyB2ZXJ0ZXguCi0gICAgICAgIG1OYXRpdmVDYXBz
LmxheWVyUHJvdm9raW5nVmVydGV4ID0gKG1GZWF0dXJlcy5wcm92b2tpbmdWZXJ0ZXguZW5hYmxl
ZCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBHTF9M
QVNUX1ZFUlRFWF9DT05WRU5USU9OX0VYVAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA6IEdMX0ZJUlNUX1ZFUlRFWF9DT05WRU5USU9OX0VYVDsKKyAgICAg
ICAgLy8gVXNlICJ1bmRlZmluZWQiIHdoaWNoIG1lYW5zIEFQUCB3b3VsZCBoYXZlIHRvIHNldCBn
bF9MYXllciBpZGVudGljYWxseS4KKyAgICAgICAgbU5hdGl2ZUNhcHMubGF5ZXJQcm92b2tpbmdW
ZXJ0ZXggPSBHTF9VTkRFRklORURfVkVSVEVYX0VYVDsKIAogICAgICAgICBtTmF0aXZlQ2Fwcy5t
YXhHZW9tZXRyeUlucHV0Q29tcG9uZW50cyA9CiAgICAgICAgICAgICBMaW1pdFRvSW50KGxpbWl0
c1ZrLm1heEdlb21ldHJ5SW5wdXRDb21wb25lbnRzKSAtIHJlc2VydmVkVmFyeWluZ0NvbXBvbmVu
dENvdW50OwpAQCAtMTEyNiw2ICsxMTI3LDkgQEAgdm9pZCBSZW5kZXJlclZrOjplbnN1cmVDYXBz
SW5pdGlhbGl6ZWQoKSBjb25zdAogCiAgICAgLy8gR0xfS0hSX3BhcmFsbGVsX3NoYWRlcl9jb21w
aWxlCiAgICAgbU5hdGl2ZUV4dGVuc2lvbnMucGFyYWxsZWxTaGFkZXJDb21waWxlS0hSID0gZmFs
c2U7CisKKyAgICAvLyBHTF9RQ09NX3NoYWRpbmdfcmF0ZQorICAgIG1OYXRpdmVFeHRlbnNpb25z
LnNoYWRpbmdSYXRlUUNPTSA9IG1GZWF0dXJlcy5zdXBwb3J0c0ZyYWdtZW50U2hhZGluZ1JhdGUu
ZW5hYmxlZDsKIH0KIAogbmFtZXNwYWNlIHZrCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvdnVsa2FuL3ZrX2Zvcm1hdF91dGlscy5oIGIv
U291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL3Z1bGthbi92a19m
b3JtYXRfdXRpbHMuaAppbmRleCA3YWUzZjI5ZTMzODdiNTQyY2NlZDU2YWM5MDJiYTFiYTMzMGYw
YjNmLi4zODBiNjRhZjhmMzg0OThlYWQzYjNkMmFiMDUyMWY3OTlhZWY3NDhhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvdnVsa2FuL3Zr
X2Zvcm1hdF91dGlscy5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdM
RS9yZW5kZXJlci92dWxrYW4vdmtfZm9ybWF0X3V0aWxzLmgKQEAgLTE0LDcgKzE0LDcgQEAKICNp
bmNsdWRlICJsaWJBTkdMRS9yZW5kZXJlci9Gb3JtYXQuaCIKICNpbmNsdWRlICJsaWJBTkdMRS9y
ZW5kZXJlci9jb3B5dmVydGV4LmgiCiAjaW5jbHVkZSAibGliQU5HTEUvcmVuZGVyZXIvcmVuZGVy
ZXJfdXRpbHMuaCIKLSNpbmNsdWRlICJwbGF0Zm9ybS9GZWF0dXJlc1ZrLmgiCisjaW5jbHVkZSAi
cGxhdGZvcm0vRmVhdHVyZXNWa19hdXRvZ2VuLmgiCiAKICNpbmNsdWRlIDxhcnJheT4KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL3Z1
bGthbi92a19oZWxwZXJzLmNwcCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdM
RS9yZW5kZXJlci92dWxrYW4vdmtfaGVscGVycy5jcHAKaW5kZXggYWYzZjRjODY0NmU4NGIyZmU4
MDVkNzgxMzhlZjVlMGQ1NDViOGI4NC4uZmI2OWM0MmNkNDQ1N2IzMDJlOWU2NWU4YzBhMzQxZDhh
M2QxZWFmYSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xF
L3JlbmRlcmVyL3Z1bGthbi92a19oZWxwZXJzLmNwcAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9B
TkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvdnVsa2FuL3ZrX2hlbHBlcnMuY3BwCkBAIC0xMTI4
LDcgKzExMjgsNyBAQCB2b2lkIFJlbmRlclBhc3NBdHRhY2htZW50OjpmaW5hbGl6ZUxvYWRTdG9y
ZShDb250ZXh0ICpjb250ZXh0LAogICAgICAgICBjb250ZXh0LT5nZXRSZW5kZXJlcigpLT5nZXRG
ZWF0dXJlcygpLnN1cHBvcnRzUmVuZGVyUGFzc0xvYWRTdG9yZU9wTm9uZS5lbmFibGVkOwogICAg
IGNvbnN0IGJvb2wgc3VwcG9ydHNTdG9yZU9wTm9uZSA9CiAgICAgICAgIHN1cHBvcnRzTG9hZFN0
b3JlT3BOb25lIHx8Ci0gICAgICAgIGNvbnRleHQtPmdldFJlbmRlcmVyKCktPmdldEZlYXR1cmVz
KCkuc3VwcG9ydHNSZW5kZXJQYXNzU3RvcmVPcE5vbmVRQ09NLmVuYWJsZWQ7CisgICAgICAgIGNv
bnRleHQtPmdldFJlbmRlcmVyKCktPmdldEZlYXR1cmVzKCkuc3VwcG9ydHNSZW5kZXJQYXNzU3Rv
cmVPcE5vbmUuZW5hYmxlZDsKICAgICBpZiAobUFjY2VzcyA9PSBSZXNvdXJjZUFjY2Vzczo6UmVh
ZE9ubHkgJiYgc3VwcG9ydHNTdG9yZU9wTm9uZSkKICAgICB7CiAgICAgICAgIGlmICgqc3RvcmVP
cCA9PSBSZW5kZXJQYXNzU3RvcmVPcDo6U3RvcmUgJiYgKmxvYWRPcCAhPSBSZW5kZXJQYXNzTG9h
ZE9wOjpDbGVhcikKQEAgLTEyNTAsNyArMTI1MCw4IEBAIENvbW1hbmRCdWZmZXJIZWxwZXJDb21t
b246OkNvbW1hbmRCdWZmZXJIZWxwZXJDb21tb24oKQogICAgICAgbVBpcGVsaW5lQmFycmllck1h
c2soKSwKICAgICAgIG1Db21tYW5kUG9vbChudWxscHRyKSwKICAgICAgIG1IYXNTaGFkZXJTdG9y
YWdlT3V0cHV0KGZhbHNlKSwKLSAgICAgIG1IYXNHTE1lbW9yeUJhcnJpZXJJc3N1ZWQoZmFsc2Up
CisgICAgICBtSGFzR0xNZW1vcnlCYXJyaWVySXNzdWVkKGZhbHNlKSwKKyAgICAgIG1SZXNvdXJj
ZVVzZUxpc3QoKQoge30KIAogQ29tbWFuZEJ1ZmZlckhlbHBlckNvbW1vbjo6fkNvbW1hbmRCdWZm
ZXJIZWxwZXJDb21tb24oKSB7fQpAQCAtMTI3Miw2ICsxMjczLDcgQEAgdm9pZCBDb21tYW5kQnVm
ZmVySGVscGVyQ29tbW9uOjpyZXNldEltcGwoKQogICAgIG1BbGxvY2F0b3IucHVzaCgpOwogCiAg
ICAgbVVzZWRCdWZmZXJzLmNsZWFyKCk7CisgICAgQVNTRVJUKG1SZXNvdXJjZVVzZUxpc3QuZW1w
dHkoKSk7CiB9CiAKIHZvaWQgQ29tbWFuZEJ1ZmZlckhlbHBlckNvbW1vbjo6YnVmZmVyUmVhZChD
b250ZXh0VmsgKmNvbnRleHRWaywKQEAgLTEyODksNyArMTI5MSw3IEBAIHZvaWQgQ29tbWFuZEJ1
ZmZlckhlbHBlckNvbW1vbjo6YnVmZmVyUmVhZChDb250ZXh0VmsgKmNvbnRleHRWaywKICAgICBp
ZiAoIW1Vc2VkQnVmZmVycy5jb250YWlucyhidWZmZXItPmdldEJ1ZmZlclNlcmlhbCgpKSkKICAg
ICB7CiAgICAgICAgIG1Vc2VkQnVmZmVycy5pbnNlcnQoYnVmZmVyLT5nZXRCdWZmZXJTZXJpYWwo
KSwgQnVmZmVyQWNjZXNzOjpSZWFkKTsKLSAgICAgICAgYnVmZmVyLT5yZXRhaW5SZWFkT25seSgm
Y29udGV4dFZrLT5nZXRSZXNvdXJjZVVzZUxpc3QoKSk7CisgICAgICAgIGJ1ZmZlci0+cmV0YWlu
UmVhZE9ubHkoJm1SZXNvdXJjZVVzZUxpc3QpOwogICAgIH0KIH0KIApAQCAtMTI5OSw3ICsxMzAx
LDcgQEAgdm9pZCBDb21tYW5kQnVmZmVySGVscGVyQ29tbW9uOjpidWZmZXJXcml0ZShDb250ZXh0
VmsgKmNvbnRleHRWaywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgQWxpYXNpbmdNb2RlIGFsaWFzaW5nTW9kZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgQnVmZmVySGVscGVyICpidWZmZXIpCiB7Ci0gICAgYnVmZmVyLT5y
ZXRhaW5SZWFkV3JpdGUoJmNvbnRleHRWay0+Z2V0UmVzb3VyY2VVc2VMaXN0KCkpOworICAgIGJ1
ZmZlci0+cmV0YWluUmVhZFdyaXRlKCZtUmVzb3VyY2VVc2VMaXN0KTsKICAgICBWa1BpcGVsaW5l
U3RhZ2VGbGFnQml0cyBzdGFnZUJpdHMgPSBrUGlwZWxpbmVTdGFnZUZsYWdCaXRNYXBbd3JpdGVT
dGFnZV07CiAgICAgaWYgKGJ1ZmZlci0+cmVjb3JkV3JpdGVCYXJyaWVyKHdyaXRlQWNjZXNzVHlw
ZSwgc3RhZ2VCaXRzLCAmbVBpcGVsaW5lQmFycmllcnNbd3JpdGVTdGFnZV0pKQogICAgIHsKQEAg
LTEzOTEsNyArMTM5Myw3IEBAIHZvaWQgQ29tbWFuZEJ1ZmZlckhlbHBlckNvbW1vbjo6aW1hZ2VX
cml0ZUltcGwoQ29udGV4dFZrICpjb250ZXh0VmssCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEFsaWFzaW5nTW9kZSBhbGlhc2luZ01vZGUsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEltYWdlSGVscGVyICppbWFn
ZSkKIHsKLSAgICBpbWFnZS0+cmV0YWluKCZjb250ZXh0VmstPmdldFJlc291cmNlVXNlTGlzdCgp
KTsKKyAgICBpbWFnZS0+cmV0YWluKCZtUmVzb3VyY2VVc2VMaXN0KTsKICAgICBpbWFnZS0+b25X
cml0ZShsZXZlbCwgMSwgbGF5ZXJTdGFydCwgbGF5ZXJDb3VudCwgYXNwZWN0RmxhZ3MpOwogICAg
IC8vIFdyaXRlIGFsd2F5cyByZXF1aXJlcyBhIGJhcnJpZXIKICAgICB1cGRhdGVJbWFnZUxheW91
dEFuZEJhcnJpZXIoY29udGV4dFZrLCBpbWFnZSwgYXNwZWN0RmxhZ3MsIGltYWdlTGF5b3V0KTsK
QEAgLTE0NTYsNyArMTQ1OCw3IEBAIHZvaWQgT3V0c2lkZVJlbmRlclBhc3NDb21tYW5kQnVmZmVy
SGVscGVyOjppbWFnZVJlYWQoQ29udGV4dFZrICpjb250ZXh0VmssCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEltYWdlSGVscGVyICppbWFnZSkK
IHsKICAgICBpbWFnZVJlYWRJbXBsKGNvbnRleHRWaywgYXNwZWN0RmxhZ3MsIGltYWdlTGF5b3V0
LCBpbWFnZSk7Ci0gICAgaW1hZ2UtPnJldGFpbigmY29udGV4dFZrLT5nZXRSZXNvdXJjZVVzZUxp
c3QoKSk7CisgICAgaW1hZ2UtPnJldGFpbigmbVJlc291cmNlVXNlTGlzdCk7CiB9CiAKIHZvaWQg
T3V0c2lkZVJlbmRlclBhc3NDb21tYW5kQnVmZmVySGVscGVyOjppbWFnZVdyaXRlKENvbnRleHRW
ayAqY29udGV4dFZrLApAQCAtMTU3OSw3ICsxNTgxLDcgQEAgdm9pZCBSZW5kZXJQYXNzQ29tbWFu
ZEJ1ZmZlckhlbHBlcjo6aW1hZ2VSZWFkKENvbnRleHRWayAqY29udGV4dFZrLAogICAgIGlmICgh
dXNlc0ltYWdlKCppbWFnZSkpCiAgICAgewogICAgICAgICBtUmVuZGVyUGFzc1VzZWRJbWFnZXMu
aW5zZXJ0KGltYWdlLT5nZXRJbWFnZVNlcmlhbCgpKTsKLSAgICAgICAgaW1hZ2UtPnJldGFpbigm
Y29udGV4dFZrLT5nZXRSZXNvdXJjZVVzZUxpc3QoKSk7CisgICAgICAgIGltYWdlLT5yZXRhaW4o
Jm1SZXNvdXJjZVVzZUxpc3QpOwogICAgIH0KIH0KIApAQCAtMTYwNiw4ICsxNjA4LDcgQEAgdm9p
ZCBSZW5kZXJQYXNzQ29tbWFuZEJ1ZmZlckhlbHBlcjo6aW1hZ2VXcml0ZShDb250ZXh0VmsgKmNv
bnRleHRWaywKICAgICB9CiB9CiAKLXZvaWQgUmVuZGVyUGFzc0NvbW1hbmRCdWZmZXJIZWxwZXI6
OmNvbG9ySW1hZ2VzRHJhdyhSZXNvdXJjZVVzZUxpc3QgKnJlc291cmNlVXNlTGlzdCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnbDo6TGV2ZWxJ
bmRleCBsZXZlbCwKK3ZvaWQgUmVuZGVyUGFzc0NvbW1hbmRCdWZmZXJIZWxwZXI6OmNvbG9ySW1h
Z2VzRHJhdyhnbDo6TGV2ZWxJbmRleCBsZXZlbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBsYXllclN0YXJ0LAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGxheWVy
Q291bnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgSW1hZ2VIZWxwZXIgKmltYWdlLApAQCAtMTYxNiw3ICsxNjE3LDcgQEAgdm9pZCBSZW5kZXJQ
YXNzQ29tbWFuZEJ1ZmZlckhlbHBlcjo6Y29sb3JJbWFnZXNEcmF3KFJlc291cmNlVXNlTGlzdCAq
cmVzb3VyY2VVc2UKIHsKICAgICBBU1NFUlQocGFja2VkQXR0YWNobWVudEluZGV4IDwgbUNvbG9y
QXR0YWNobWVudHNDb3VudCk7CiAKLSAgICBpbWFnZS0+cmV0YWluKHJlc291cmNlVXNlTGlzdCk7
CisgICAgaW1hZ2UtPnJldGFpbigmbVJlc291cmNlVXNlTGlzdCk7CiAgICAgaWYgKCF1c2VzSW1h
Z2UoKmltYWdlKSkKICAgICB7CiAgICAgICAgIC8vIFRoaXMgaXMgcG9zc2libGUgZHVlIHRvIGRp
ZmZlcmVudCBsYXllcnMgb2YgdGhlIHNhbWUgdGV4dHVyZSBiZWluZyBhdHRhY2hlZCB0byBkaWZm
ZXJlbnQKQEAgLTE2MjgsNyArMTYyOSw3IEBAIHZvaWQgUmVuZGVyUGFzc0NvbW1hbmRCdWZmZXJI
ZWxwZXI6OmNvbG9ySW1hZ2VzRHJhdyhSZXNvdXJjZVVzZUxpc3QgKnJlc291cmNlVXNlCiAKICAg
ICBpZiAocmVzb2x2ZUltYWdlKQogICAgIHsKLSAgICAgICAgcmVzb2x2ZUltYWdlLT5yZXRhaW4o
cmVzb3VyY2VVc2VMaXN0KTsKKyAgICAgICAgcmVzb2x2ZUltYWdlLT5yZXRhaW4oJm1SZXNvdXJj
ZVVzZUxpc3QpOwogICAgICAgICBpZiAoIXVzZXNJbWFnZSgqcmVzb2x2ZUltYWdlKSkKICAgICAg
ICAgewogICAgICAgICAgICAgbVJlbmRlclBhc3NVc2VkSW1hZ2VzLmluc2VydChyZXNvbHZlSW1h
Z2UtPmdldEltYWdlU2VyaWFsKCkpOwpAQCAtMTYzOCw4ICsxNjM5LDcgQEAgdm9pZCBSZW5kZXJQ
YXNzQ29tbWFuZEJ1ZmZlckhlbHBlcjo6Y29sb3JJbWFnZXNEcmF3KFJlc291cmNlVXNlTGlzdCAq
cmVzb3VyY2VVc2UKICAgICB9CiB9CiAKLXZvaWQgUmVuZGVyUGFzc0NvbW1hbmRCdWZmZXJIZWxw
ZXI6OmRlcHRoU3RlbmNpbEltYWdlc0RyYXcoUmVzb3VyY2VVc2VMaXN0ICpyZXNvdXJjZVVzZUxp
c3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGdsOjpMZXZlbEluZGV4IGxldmVsLAordm9pZCBSZW5kZXJQYXNzQ29tbWFuZEJ1ZmZl
ckhlbHBlcjo6ZGVwdGhTdGVuY2lsSW1hZ2VzRHJhdyhnbDo6TGV2ZWxJbmRleCBsZXZlbCwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dWludDMyX3QgbGF5ZXJTdGFydCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgbGF5ZXJDb3VudCwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW1hZ2VIZWxw
ZXIgKmltYWdlLApAQCAtMTY1MSw3ICsxNjUxLDcgQEAgdm9pZCBSZW5kZXJQYXNzQ29tbWFuZEJ1
ZmZlckhlbHBlcjo6ZGVwdGhTdGVuY2lsSW1hZ2VzRHJhdyhSZXNvdXJjZVVzZUxpc3QgKnJlc28K
ICAgICAvLyBCZWNhdXNlIGRlcHRoU3RlbmNpbCBidWZmZXIncyByZWFkL3dyaXRlIHByb3BlcnR5
IGNhbiBjaGFuZ2Ugd2hpbGUgd2UgYnVpbGQgcmVuZGVycGFzcywgd2UKICAgICAvLyBkZWZlciB0
aGUgaW1hZ2UgbGF5b3V0IGNoYW5nZXMgdW50aWwgZW5kUmVuZGVyUGFzcyB0aW1lIG9yIHdoZW4g
aW1hZ2VzIGdvaW5nIGF3YXkgc28gdGhhdCB3ZQogICAgIC8vIG9ubHkgaW5zZXJ0IGxheW91dCBj
aGFuZ2UgYmFycmllciBvbmNlLgotICAgIGltYWdlLT5yZXRhaW4ocmVzb3VyY2VVc2VMaXN0KTsK
KyAgICBpbWFnZS0+cmV0YWluKCZtUmVzb3VyY2VVc2VMaXN0KTsKICAgICBtUmVuZGVyUGFzc1Vz
ZWRJbWFnZXMuaW5zZXJ0KGltYWdlLT5nZXRJbWFnZVNlcmlhbCgpKTsKIAogICAgIG1EZXB0aEF0
dGFjaG1lbnQuaW5pdChpbWFnZSwgbGV2ZWwsIGxheWVyU3RhcnQsIGxheWVyQ291bnQsIFZLX0lN
QUdFX0FTUEVDVF9ERVBUSF9CSVQpOwpAQCAtMTY2Miw3ICsxNjYyLDcgQEAgdm9pZCBSZW5kZXJQ
YXNzQ29tbWFuZEJ1ZmZlckhlbHBlcjo6ZGVwdGhTdGVuY2lsSW1hZ2VzRHJhdyhSZXNvdXJjZVVz
ZUxpc3QgKnJlc28KICAgICAgICAgLy8gTm90ZSB0aGF0IHRoZSByZXNvbHZlIGRlcHRoL3N0ZW5j
aWwgaW1hZ2UgaGFzIHRoZSBzYW1lIGxldmVsL2xheWVyIGluZGV4IGFzIHRoZQogICAgICAgICAv
LyBkZXB0aC9zdGVuY2lsIGltYWdlIGFzIGN1cnJlbnRseSBpdCBjYW4gb25seSBldmVyIGNvbWUg
ZnJvbQogICAgICAgICAvLyBtdWx0aXNhbXBsZWQtcmVuZGVyLXRvLXRleHR1cmUgcmVuZGVyYnVm
ZmVycy4KLSAgICAgICAgcmVzb2x2ZUltYWdlLT5yZXRhaW4ocmVzb3VyY2VVc2VMaXN0KTsKKyAg
ICAgICAgcmVzb2x2ZUltYWdlLT5yZXRhaW4oJm1SZXNvdXJjZVVzZUxpc3QpOwogICAgICAgICBt
UmVuZGVyUGFzc1VzZWRJbWFnZXMuaW5zZXJ0KHJlc29sdmVJbWFnZS0+Z2V0SW1hZ2VTZXJpYWwo
KSk7CiAKICAgICAgICAgbURlcHRoUmVzb2x2ZUF0dGFjaG1lbnQuaW5pdChyZXNvbHZlSW1hZ2Us
IGxldmVsLCBsYXllclN0YXJ0LCBsYXllckNvdW50LApAQCAtMTc2Miw3ICsxNzYyLDcgQEAgdm9p
ZCBSZW5kZXJQYXNzQ29tbWFuZEJ1ZmZlckhlbHBlcjo6ZmluYWxpemVDb2xvckltYWdlTGF5b3V0
KAogICAgICAgICBtSW1hZ2VPcHRpbWl6ZUZvclByZXNlbnQtPnNldEN1cnJlbnRJbWFnZUxheW91
dChJbWFnZUxheW91dDo6UHJlc2VudCk7CiAgICAgICAgIC8vIFRPRE8oc3lvdXNzZWZpKTogIFdl
IGN1cnJlbnRseSBkb24ndCBzdG9yZSB0aGUgbGF5b3V0IG9mIHRoZSByZXNvbHZlIGF0dGFjaG1l
bnRzLCBzbyBvbmNlCiAgICAgICAgIC8vIG11bHRpc2FtcGxlZCBiYWNrYnVmZmVycyBhcmUgb3B0
aW1pemVkIHRvIHVzZSByZXNvbHZlIGF0dGFjaG1lbnRzLCB0aGlzIGluZm9ybWF0aW9uIG5lZWRz
Ci0gICAgICAgIC8vIHRvIGJlIHN0b3JlZCBzb21ld2hlcmUuICBodHRwOi8vYW5nbGVidWcuY29t
LzQ4MzYKKyAgICAgICAgLy8gdG8gYmUgc3RvcmVkIHNvbWV3aGVyZS4gIGh0dHA6Ly9hbmdsZWJ1
Zy5jb20vNzE1MAogICAgICAgICBTZXRCaXRGaWVsZChtQXR0YWNobWVudE9wc1twYWNrZWRBdHRh
Y2htZW50SW5kZXhdLmZpbmFsTGF5b3V0LAogICAgICAgICAgICAgICAgICAgICBtSW1hZ2VPcHRp
bWl6ZUZvclByZXNlbnQtPmdldEN1cnJlbnRJbWFnZUxheW91dCgpKTsKICAgICAgICAgbUltYWdl
T3B0aW1pemVGb3JQcmVzZW50ID0gbnVsbHB0cjsKQEAgLTI2MjYsMTMgKzI2MjYsMTQgQEAgdm9p
ZCBEeW5hbWljQnVmZmVyOjpyZWxlYXNlKFJlbmRlcmVyVmsgKnJlbmRlcmVyKQogCiB2b2lkIER5
bmFtaWNCdWZmZXI6OnJlbGVhc2VJbkZsaWdodEJ1ZmZlcnNUb1Jlc291cmNlVXNlTGlzdChDb250
ZXh0VmsgKmNvbnRleHRWaykKIHsKLSAgICBSZXNvdXJjZVVzZUxpc3QgKnJlc291cmNlVXNlTGlz
dCA9ICZjb250ZXh0VmstPmdldFJlc291cmNlVXNlTGlzdCgpOworICAgIFJlc291cmNlVXNlTGlz
dCByZXNvdXJjZVVzZUxpc3Q7CisKICAgICBmb3IgKHN0ZDo6dW5pcXVlX3B0cjxCdWZmZXJIZWxw
ZXI+ICZidWZmZXJIZWxwZXIgOiBtSW5GbGlnaHRCdWZmZXJzKQogICAgIHsKICAgICAgICAgLy8g
VGhpcyBmdW5jdGlvbiBpcyB1c2VkIG9ubHkgZm9yIGludGVybmFsIGJ1ZmZlcnMsIGFuZCB0aGV5
IGFyZSBhbGwgcmVhZC1vbmx5LgogICAgICAgICAvLyBJdCdzIHBvc3NpYmxlIHRoaXMgbWF5IGNo
YW5nZSBpbiB0aGUgZnV0dXJlLCBidXQgdGhlcmUgaXNuJ3QgYSBnb29kIHdheSB0byBkZXRlY3Qg
dGhhdCwKICAgICAgICAgLy8gdW5mb3J0dW5hdGVseS4KLSAgICAgICAgYnVmZmVySGVscGVyLT5y
ZXRhaW5SZWFkT25seShyZXNvdXJjZVVzZUxpc3QpOworICAgICAgICBidWZmZXJIZWxwZXItPnJl
dGFpblJlYWRPbmx5KCZyZXNvdXJjZVVzZUxpc3QpOwogCiAgICAgICAgIC8vIFdlIG9ubHkga2Vl
cCBmcmVlIGJ1ZmZlcnMgdGhhdCBoYXZlIHRoZSBzYW1lIHNpemUuIE5vdGUgdGhhdCBidWZmZXJI
ZWxwZXIncyBzaXplIGlzCiAgICAgICAgIC8vIHN1YmFsbG9jYXRpb24ncyBzaXplLiBXZSBuZWVk
IHRvIHVzZSB0aGUgd2hvbGUgYmxvY2sgbWVtb3J5IHNpemUgaGVyZS4KQEAgLTI2NDYsNiArMjY0
Nyw4IEBAIHZvaWQgRHluYW1pY0J1ZmZlcjo6cmVsZWFzZUluRmxpZ2h0QnVmZmVyc1RvUmVzb3Vy
Y2VVc2VMaXN0KENvbnRleHRWayAqY29udGV4dFZrCiAgICAgICAgIH0KICAgICB9CiAgICAgbUlu
RmxpZ2h0QnVmZmVycy5jbGVhcigpOworCisgICAgY29udGV4dFZrLT5nZXRTaGFyZUdyb3VwVmso
KS0+YWNxdWlyZVJlc291cmNlVXNlTGlzdChzdGQ6Om1vdmUocmVzb3VyY2VVc2VMaXN0KSk7CiB9
CiAKIHZvaWQgRHluYW1pY0J1ZmZlcjo6ZGVzdHJveShSZW5kZXJlclZrICpyZW5kZXJlcikKQEAg
LTI4MTQsMTYgKzI4MTcsMTYgQEAgdm9pZCBCdWZmZXJQb29sOjpwcnVuZUVtcHR5QnVmZmVycyhS
ZW5kZXJlclZrICpyZW5kZXJlcikKICAgICB9CiB9CiAKLWFuZ2xlOjpSZXN1bHQgQnVmZmVyUG9v
bDo6YWxsb2NhdGVOZXdCdWZmZXIoQ29udGV4dFZrICpjb250ZXh0VmssIFZrRGV2aWNlU2l6ZSBz
aXplSW5CeXRlcykKK2FuZ2xlOjpSZXN1bHQgQnVmZmVyUG9vbDo6YWxsb2NhdGVOZXdCdWZmZXIo
Q29udGV4dCAqY29udGV4dCwgVmtEZXZpY2VTaXplIHNpemVJbkJ5dGVzKQogewotICAgIFJlbmRl
cmVyVmsgKnJlbmRlcmVyICAgICAgID0gY29udGV4dFZrLT5nZXRSZW5kZXJlcigpOworICAgIFJl
bmRlcmVyVmsgKnJlbmRlcmVyICAgICAgID0gY29udGV4dC0+Z2V0UmVuZGVyZXIoKTsKICAgICBj
b25zdCBBbGxvY2F0b3IgJmFsbG9jYXRvciA9IHJlbmRlcmVyLT5nZXRBbGxvY2F0b3IoKTsKIAog
ICAgIFZrRGV2aWNlU2l6ZSBoZWFwU2l6ZSA9CiAgICAgICAgIHJlbmRlcmVyLT5nZXRNZW1vcnlQ
cm9wZXJ0aWVzKCkuZ2V0SGVhcFNpemVGb3JNZW1vcnlUeXBlKG1NZW1vcnlUeXBlSW5kZXgpOwog
CiAgICAgLy8gRmlyc3QgZW5zdXJlIHdlIGFyZSBub3QgZXhjZWVkaW5nIHRoZSBoZWFwU2l6ZSB0
byBhdm9pZCB0aGUgdmFsaWRhdGlvbiBlcnJvci4KLSAgICBBTkdMRV9WS19DSEVDSyhjb250ZXh0
VmssIHNpemVJbkJ5dGVzIDw9IGhlYXBTaXplLCBWS19FUlJPUl9PVVRfT0ZfREVWSUNFX01FTU9S
WSk7CisgICAgQU5HTEVfVktfQ0hFQ0soY29udGV4dCwgc2l6ZUluQnl0ZXMgPD0gaGVhcFNpemUs
IFZLX0VSUk9SX09VVF9PRl9ERVZJQ0VfTUVNT1JZKTsKIAogICAgIC8vIERvdWJsZSB0aGUgc2l6
ZSB1bnRpbCBtZWV0IHRoZSByZXF1aXJlbWVudC4gVGhpcyBhbHNvIGhlbHBzIHJlZHVjaW5nIHRo
ZSBmcmFnbWVudGF0aW9uLiBTaW5jZQogICAgIC8vIHRoaXMgaXMgZ2xvYmFsIHBvb2wsIHdlIGhh
dmUgbGVzcyB3b3JyeSBhYm91dCBtZW1vcnkgd2FzdGUuCkBAIC0yODQ4LDMzICsyODUxLDMzIEBA
IGFuZ2xlOjpSZXN1bHQgQnVmZmVyUG9vbDo6YWxsb2NhdGVOZXdCdWZmZXIoQ29udGV4dFZrICpj
b250ZXh0VmssIFZrRGV2aWNlU2l6ZSBzCiAgICAgYWxsb2NhdG9yLmdldE1lbW9yeVR5cGVQcm9w
ZXJ0aWVzKG1NZW1vcnlUeXBlSW5kZXgsICZtZW1vcnlQcm9wZXJ0eUZsYWdzKTsKIAogICAgIERl
dmljZVNjb3BlZDxCdWZmZXI+IGJ1ZmZlcihyZW5kZXJlci0+Z2V0RGV2aWNlKCkpOwotICAgIEFO
R0xFX1ZLX1RSWShjb250ZXh0VmssIGJ1ZmZlci5nZXQoKS5pbml0KGNvbnRleHRWay0+Z2V0RGV2
aWNlKCksIGNyZWF0ZUluZm8pKTsKKyAgICBBTkdMRV9WS19UUlkoY29udGV4dCwgYnVmZmVyLmdl
dCgpLmluaXQoY29udGV4dC0+Z2V0RGV2aWNlKCksIGNyZWF0ZUluZm8pKTsKIAogICAgIERldmlj
ZVNjb3BlZDxEZXZpY2VNZW1vcnk+IGRldmljZU1lbW9yeShyZW5kZXJlci0+Z2V0RGV2aWNlKCkp
OwogICAgIFZrTWVtb3J5UHJvcGVydHlGbGFncyBtZW1vcnlQcm9wZXJ0eUZsYWdzT3V0OwogICAg
IFZrRGV2aWNlU2l6ZSBzaXplT3V0OwotICAgIEFOR0xFX1RSWShBbGxvY2F0ZUJ1ZmZlck1lbW9y
eShjb250ZXh0VmssIG1lbW9yeVByb3BlcnR5RmxhZ3MsICZtZW1vcnlQcm9wZXJ0eUZsYWdzT3V0
LCBudWxscHRyLAorICAgIEFOR0xFX1RSWShBbGxvY2F0ZUJ1ZmZlck1lbW9yeShjb250ZXh0LCBt
ZW1vcnlQcm9wZXJ0eUZsYWdzLCAmbWVtb3J5UHJvcGVydHlGbGFnc091dCwgbnVsbHB0ciwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmJ1ZmZlci5nZXQoKSwgJmRldmljZU1l
bW9yeS5nZXQoKSwgJnNpemVPdXQpKTsKICAgICBBU1NFUlQoc2l6ZU91dCA+PSBtU2l6ZSk7CiAK
ICAgICAvLyBBbGxvY2F0ZSBidWZmZXJCbG9jawogICAgIHN0ZDo6dW5pcXVlX3B0cjxCdWZmZXJC
bG9jaz4gYmxvY2sgPSBzdGQ6Om1ha2VfdW5pcXVlPEJ1ZmZlckJsb2NrPigpOwotICAgIEFOR0xF
X1RSWShibG9jay0+aW5pdChjb250ZXh0VmssIGJ1ZmZlci5nZXQoKSwgbVZpcnR1YWxCbG9ja0Ny
ZWF0ZUZsYWdzLCBkZXZpY2VNZW1vcnkuZ2V0KCksCisgICAgQU5HTEVfVFJZKGJsb2NrLT5pbml0
KGNvbnRleHQsIGJ1ZmZlci5nZXQoKSwgbVZpcnR1YWxCbG9ja0NyZWF0ZUZsYWdzLCBkZXZpY2VN
ZW1vcnkuZ2V0KCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lbW9yeVByb3BlcnR5Rmxh
Z3NPdXQsIG1TaXplKSk7CiAKICAgICBpZiAobUhvc3RWaXNpYmxlKQogICAgIHsKLSAgICAgICAg
QU5HTEVfVktfVFJZKGNvbnRleHRWaywgYmxvY2stPm1hcChjb250ZXh0VmstPmdldERldmljZSgp
KSk7CisgICAgICAgIEFOR0xFX1ZLX1RSWShjb250ZXh0LCBibG9jay0+bWFwKGNvbnRleHQtPmdl
dERldmljZSgpKSk7CiAgICAgfQogCiAgICAgLy8gQXBwZW5kIHRoZSBidWZmZXJCbG9jayBpbnRv
IHRoZSBwb29sCiAgICAgbUJ1ZmZlckJsb2Nrcy5wdXNoX2JhY2soc3RkOjptb3ZlKGJsb2NrKSk7
Ci0gICAgY29udGV4dFZrLT5nZXRQZXJmQ291bnRlcnMoKS5hbGxvY2F0ZU5ld0J1ZmZlckJsb2Nr
Q2FsbHMrKzsKKyAgICBjb250ZXh0LT5nZXRQZXJmQ291bnRlcnMoKS5hbGxvY2F0ZU5ld0J1ZmZl
ckJsb2NrQ2FsbHMrKzsKIAogICAgIHJldHVybiBhbmdsZTo6UmVzdWx0OjpDb250aW51ZTsKIH0K
IAotYW5nbGU6OlJlc3VsdCBCdWZmZXJQb29sOjphbGxvY2F0ZUJ1ZmZlcihDb250ZXh0VmsgKmNv
bnRleHRWaywKK2FuZ2xlOjpSZXN1bHQgQnVmZmVyUG9vbDo6YWxsb2NhdGVCdWZmZXIoQ29udGV4
dCAqY29udGV4dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmtE
ZXZpY2VTaXplIHNpemVJbkJ5dGVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBWa0RldmljZVNpemUgYWxpZ25tZW50LAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBCdWZmZXJTdWJhbGxvY2F0aW9uICpzdWJhbGxvY2F0aW9uKQpAQCAt
Mjg4Myw2ICsyODg2LDQ3IEBAIGFuZ2xlOjpSZXN1bHQgQnVmZmVyUG9vbDo6YWxsb2NhdGVCdWZm
ZXIoQ29udGV4dFZrICpjb250ZXh0VmssCiAgICAgVmtEZXZpY2VTaXplIG9mZnNldDsKICAgICBW
a0RldmljZVNpemUgYWxpZ25lZFNpemUgPSByb3VuZFVwKHNpemVJbkJ5dGVzLCBhbGlnbm1lbnQp
OwogCisgICAgaWYgKGFsaWduZWRTaXplID49IGtNYXhCdWZmZXJTaXplRm9yU3ViYWxsb2NhdGlv
bikKKyAgICB7CisgICAgICAgIFZrRGV2aWNlU2l6ZSBoZWFwU2l6ZSA9CisgICAgICAgICAgICBj
b250ZXh0LT5nZXRSZW5kZXJlcigpLT5nZXRNZW1vcnlQcm9wZXJ0aWVzKCkuZ2V0SGVhcFNpemVG
b3JNZW1vcnlUeXBlKAorICAgICAgICAgICAgICAgIG1NZW1vcnlUeXBlSW5kZXgpOworICAgICAg
ICAvLyBGaXJzdCBlbnN1cmUgd2UgYXJlIG5vdCBleGNlZWRpbmcgdGhlIGhlYXBTaXplIHRvIGF2
b2lkIHRoZSB2YWxpZGF0aW9uIGVycm9yLgorICAgICAgICBBTkdMRV9WS19DSEVDSyhjb250ZXh0
LCBzaXplSW5CeXRlcyA8PSBoZWFwU2l6ZSwgVktfRVJST1JfT1VUX09GX0RFVklDRV9NRU1PUlkp
OworCisgICAgICAgIC8vIEFsbG9jYXRlIGJ1ZmZlcgorICAgICAgICBWa0J1ZmZlckNyZWF0ZUlu
Zm8gY3JlYXRlSW5mbyAgICA9IHt9OworICAgICAgICBjcmVhdGVJbmZvLnNUeXBlICAgICAgICAg
ICAgICAgICA9IFZLX1NUUlVDVFVSRV9UWVBFX0JVRkZFUl9DUkVBVEVfSU5GTzsKKyAgICAgICAg
Y3JlYXRlSW5mby5mbGFncyAgICAgICAgICAgICAgICAgPSAwOworICAgICAgICBjcmVhdGVJbmZv
LnNpemUgICAgICAgICAgICAgICAgICA9IGFsaWduZWRTaXplOworICAgICAgICBjcmVhdGVJbmZv
LnVzYWdlICAgICAgICAgICAgICAgICA9IG1Vc2FnZTsKKyAgICAgICAgY3JlYXRlSW5mby5zaGFy
aW5nTW9kZSAgICAgICAgICAgPSBWS19TSEFSSU5HX01PREVfRVhDTFVTSVZFOworICAgICAgICBj
cmVhdGVJbmZvLnF1ZXVlRmFtaWx5SW5kZXhDb3VudCA9IDA7CisgICAgICAgIGNyZWF0ZUluZm8u
cFF1ZXVlRmFtaWx5SW5kaWNlcyAgID0gbnVsbHB0cjsKKworICAgICAgICBWa01lbW9yeVByb3Bl
cnR5RmxhZ3MgbWVtb3J5UHJvcGVydHlGbGFnczsKKyAgICAgICAgY29uc3QgQWxsb2NhdG9yICZh
bGxvY2F0b3IgPSBjb250ZXh0LT5nZXRSZW5kZXJlcigpLT5nZXRBbGxvY2F0b3IoKTsKKyAgICAg
ICAgYWxsb2NhdG9yLmdldE1lbW9yeVR5cGVQcm9wZXJ0aWVzKG1NZW1vcnlUeXBlSW5kZXgsICZt
ZW1vcnlQcm9wZXJ0eUZsYWdzKTsKKworICAgICAgICBEZXZpY2VTY29wZWQ8QnVmZmVyPiBidWZm
ZXIoY29udGV4dC0+Z2V0RGV2aWNlKCkpOworICAgICAgICBBTkdMRV9WS19UUlkoY29udGV4dCwg
YnVmZmVyLmdldCgpLmluaXQoY29udGV4dC0+Z2V0RGV2aWNlKCksIGNyZWF0ZUluZm8pKTsKKwor
ICAgICAgICBEZXZpY2VTY29wZWQ8RGV2aWNlTWVtb3J5PiBkZXZpY2VNZW1vcnkoY29udGV4dC0+
Z2V0RGV2aWNlKCkpOworICAgICAgICBWa01lbW9yeVByb3BlcnR5RmxhZ3MgbWVtb3J5UHJvcGVy
dHlGbGFnc091dDsKKyAgICAgICAgVmtEZXZpY2VTaXplIHNpemVPdXQ7CisgICAgICAgIEFOR0xF
X1RSWShBbGxvY2F0ZUJ1ZmZlck1lbW9yeShjb250ZXh0LCBtZW1vcnlQcm9wZXJ0eUZsYWdzLCAm
bWVtb3J5UHJvcGVydHlGbGFnc091dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG51bGxwdHIsICZidWZmZXIuZ2V0KCksICZkZXZpY2VNZW1vcnkuZ2V0KCksICZzaXpl
T3V0KSk7CisgICAgICAgIEFTU0VSVChzaXplT3V0ID49IGFsaWduZWRTaXplKTsKKworICAgICAg
ICBzdWJhbGxvY2F0aW9uLT5pbml0V2l0aEVudGlyZUJ1ZmZlcihjb250ZXh0LCBidWZmZXIuZ2V0
KCksIGRldmljZU1lbW9yeS5nZXQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbWVtb3J5UHJvcGVydHlGbGFnc091dCwgYWxpZ25lZFNpemUpOworICAgICAg
ICBpZiAobUhvc3RWaXNpYmxlKQorICAgICAgICB7CisgICAgICAgICAgICBBTkdMRV9WS19UUlko
Y29udGV4dCwgc3ViYWxsb2NhdGlvbi0+bWFwKGNvbnRleHQpKTsKKyAgICAgICAgfQorICAgICAg
ICByZXR1cm4gYW5nbGU6OlJlc3VsdDo6Q29udGludWU7CisgICAgfQorCiAgICAgLy8gV2UgYWx3
YXlzIGFsbG9jYXRlIGZyb20gcmV2ZXJzZSBvcmRlciBzbyB0aGF0IG9sZGVyIGJ1ZmZlcnMgaGF2
ZSBhIGNoYW5jZSB0byBhZ2Ugb3V0LiBUaGUKICAgICAvLyBhc3N1bXB0aW9uIGlzIHRoYXQgdG8g
YWxsb2NhdGUgZnJvbSBuZXcgYnVmZmVycyBmaXJzdCBtYXkgaGF2ZSBhIGJldHRlciBjaGFuY2Ug
dG8gbGVhdmUgdGhlCiAgICAgLy8gb2xkZXIgYnVmZmVycyBjb21wbGV0ZWx5IGVtcHR5IGFuZCB3
ZSBtYXkgYWJsZSB0byBmcmVlIGl0LgpAQCAtMjg5OSwyOSArMjk0MywzNyBAQCBhbmdsZTo6UmVz
dWx0IEJ1ZmZlclBvb2w6OmFsbG9jYXRlQnVmZmVyKENvbnRleHRWayAqY29udGV4dFZrLAogCiAg
ICAgICAgIGlmIChibG9jay0+YWxsb2NhdGUoYWxpZ25lZFNpemUsIGFsaWdubWVudCwgJm9mZnNl
dCkgPT0gVktfU1VDQ0VTUykKICAgICAgICAgewotICAgICAgICAgICAgc3ViYWxsb2NhdGlvbi0+
aW5pdChjb250ZXh0VmstPmdldERldmljZSgpLCBibG9jay5nZXQoKSwgb2Zmc2V0LCBhbGlnbmVk
U2l6ZSk7CisgICAgICAgICAgICBzdWJhbGxvY2F0aW9uLT5pbml0KGNvbnRleHQtPmdldERldmlj
ZSgpLCBibG9jay5nZXQoKSwgb2Zmc2V0LCBhbGlnbmVkU2l6ZSk7CiAgICAgICAgICAgICByZXR1
cm4gYW5nbGU6OlJlc3VsdDo6Q29udGludWU7CiAgICAgICAgIH0KICAgICAgICAgKytpdGVyOwog
ICAgIH0KIAotICAgIEFOR0xFX1RSWShhbGxvY2F0ZU5ld0J1ZmZlcihjb250ZXh0VmssIGFsaWdu
ZWRTaXplKSk7CisgICAgQU5HTEVfVFJZKGFsbG9jYXRlTmV3QnVmZmVyKGNvbnRleHQsIGFsaWdu
ZWRTaXplKSk7CiAKICAgICAvLyBTdWItYWxsb2NhdGUgZnJvbSB0aGUgYnVmZmVyQmxvY2suCiAg
ICAgc3RkOjp1bmlxdWVfcHRyPEJ1ZmZlckJsb2NrPiAmYmxvY2sgPSBtQnVmZmVyQmxvY2tzLmJh
Y2soKTsKLSAgICBBTkdMRV9WS19DSEVDSyhjb250ZXh0VmssIGJsb2NrLT5hbGxvY2F0ZShhbGln
bmVkU2l6ZSwgYWxpZ25tZW50LCAmb2Zmc2V0KSA9PSBWS19TVUNDRVNTLAorICAgIEFOR0xFX1ZL
X0NIRUNLKGNvbnRleHQsIGJsb2NrLT5hbGxvY2F0ZShhbGlnbmVkU2l6ZSwgYWxpZ25tZW50LCAm
b2Zmc2V0KSA9PSBWS19TVUNDRVNTLAogICAgICAgICAgICAgICAgICAgIFZLX0VSUk9SX09VVF9P
Rl9ERVZJQ0VfTUVNT1JZKTsKLSAgICBzdWJhbGxvY2F0aW9uLT5pbml0KGNvbnRleHRWay0+Z2V0
RGV2aWNlKCksIGJsb2NrLmdldCgpLCBvZmZzZXQsIGFsaWduZWRTaXplKTsKKyAgICBzdWJhbGxv
Y2F0aW9uLT5pbml0KGNvbnRleHQtPmdldERldmljZSgpLCBibG9jay5nZXQoKSwgb2Zmc2V0LCBh
bGlnbmVkU2l6ZSk7CiAKICAgICByZXR1cm4gYW5nbGU6OlJlc3VsdDo6Q29udGludWU7CiB9CiAK
LXZvaWQgQnVmZmVyUG9vbDo6ZGVzdHJveShSZW5kZXJlclZrICpyZW5kZXJlcikKK3ZvaWQgQnVm
ZmVyUG9vbDo6ZGVzdHJveShSZW5kZXJlclZrICpyZW5kZXJlciwgYm9vbCBvcnBoYW5Ob25FbXB0
eUJ1ZmZlckJsb2NrKQogewogICAgIGZvciAoc3RkOjp1bmlxdWVfcHRyPEJ1ZmZlckJsb2NrPiAm
YmxvY2sgOiBtQnVmZmVyQmxvY2tzKQogICAgIHsKLSAgICAgICAgQVNTRVJUKGJsb2NrLT5pc0Vt
cHR5KCkpOwotICAgICAgICBibG9jay0+ZGVzdHJveShyZW5kZXJlcik7CisgICAgICAgIGlmIChi
bG9jay0+aXNFbXB0eSgpKQorICAgICAgICB7CisgICAgICAgICAgICBibG9jay0+ZGVzdHJveShy
ZW5kZXJlcik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZQorICAgICAgICB7CisgICAgICAgICAg
ICAvLyBXaGVuIG9ycGhhbiBpcyBub3QgYWxsb3dlZCwgYWxsIEJ1ZmZlckJsb2NrcyBtdXN0IGJl
IGVtcHR5LgorICAgICAgICAgICAgQVNTRVJUKG9ycGhhbk5vbkVtcHR5QnVmZmVyQmxvY2spOwor
ICAgICAgICAgICAgcmVuZGVyZXItPmFkZEJ1ZmZlckJsb2NrVG9PcnBoYW5MaXN0KGJsb2NrLnJl
bGVhc2UoKSk7CisgICAgICAgIH0KICAgICB9CiAgICAgbUJ1ZmZlckJsb2Nrcy5jbGVhcigpOwog
fQpAQCAtMzA4Niw2ICszMTM4LDggQEAgYW5nbGU6OlJlc3VsdCBEeW5hbWljRGVzY3JpcHRvclBv
b2w6OmFsbG9jYXRlU2V0c0FuZEdldEluZm8oCiAgICAgICAgIGJpbmRpbmdPdXQtPnNldChtRGVz
Y3JpcHRvclBvb2xzW21DdXJyZW50UG9vbEluZGV4XSk7CiAgICAgfQogCisgICAgKytjb250ZXh0
LT5nZXRQZXJmQ291bnRlcnMoKS5kZXNjcmlwdG9yU2V0QWxsb2NhdGlvbnM7CisKICAgICByZXR1
cm4gYmluZGluZ091dC0+Z2V0KCkuYWxsb2NhdGVEZXNjcmlwdG9yU2V0cyhjb250ZXh0LCByZXNv
dXJjZVVzZUxpc3QsIGRlc2NyaXB0b3JTZXRMYXlvdXQsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRvclNldENvdW50LCBkZXNjcmlw
dG9yU2V0c091dCk7CiB9CkBAIC0zMjEzLDcgKzMyNjcsOSBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUg
UG9vbD4KIHZvaWQgRHluYW1pY2FsbHlHcm93aW5nUG9vbDxQb29sPjo6b25FbnRyeUZyZWVkKENv
bnRleHRWayAqY29udGV4dFZrLCBzaXplX3QgcG9vbEluZGV4KQogewogICAgIEFTU0VSVChwb29s
SW5kZXggPCBtUG9vbHMuc2l6ZSgpICYmIG1Qb29sc1twb29sSW5kZXhdLmZyZWVkQ291bnQgPCBt
UG9vbFNpemUpOwotICAgIG1Qb29sc1twb29sSW5kZXhdLnJldGFpbigmY29udGV4dFZrLT5nZXRS
ZXNvdXJjZVVzZUxpc3QoKSk7CisgICAgUmVzb3VyY2VVc2VMaXN0IHJlc291cmNlVXNlTGlzdDsK
KyAgICBtUG9vbHNbcG9vbEluZGV4XS5yZXRhaW4oJnJlc291cmNlVXNlTGlzdCk7CisgICAgY29u
dGV4dFZrLT5nZXRTaGFyZUdyb3VwVmsoKS0+YWNxdWlyZVJlc291cmNlVXNlTGlzdChzdGQ6Om1v
dmUocmVzb3VyY2VVc2VMaXN0KSk7CiAgICAgKyttUG9vbHNbcG9vbEluZGV4XS5mcmVlZENvdW50
OwogfQogCkBAIC0zNDE0LDkgKzM0NzAsNiBAQCB2b2lkIFF1ZXJ5SGVscGVyOjplbmRRdWVyeUlt
cGwoQ29udGV4dFZrICpjb250ZXh0VmssIENvbW1hbmRCdWZmZXJUICpjb21tYW5kQnVmZgogICAg
IEFTU0VSVChtU3RhdHVzICE9IFF1ZXJ5U3RhdHVzOjpFbmRlZCk7CiAgICAgY29tbWFuZEJ1ZmZl
ci0+ZW5kUXVlcnkoZ2V0UXVlcnlQb29sKCksIG1RdWVyeSk7CiAgICAgbVN0YXR1cyA9IFF1ZXJ5
U3RhdHVzOjpFbmRlZDsKLSAgICAvLyBRdWVyeSByZXN1bHRzIGFyZSBhdmFpbGFibGUgYWZ0ZXIg
ZW5kUXVlcnksIHJldGFpbiB0aGlzIHF1ZXJ5IHNvIHRoYXQgd2UgZ2V0IGl0cyBzZXJpYWwKLSAg
ICAvLyB1cGRhdGVkIHdoaWNoIGlzIHVzZWQgdG8gaW5kaWNhdGUgdGhhdCBxdWVyeSByZXN1bHRz
IGFyZSAob3Igd2lsbCBiZSkgYXZhaWxhYmxlLgotICAgIHJldGFpbigmY29udGV4dFZrLT5nZXRS
ZXNvdXJjZVVzZUxpc3QoKSk7CiB9CiAKIGFuZ2xlOjpSZXN1bHQgUXVlcnlIZWxwZXI6OmJlZ2lu
UXVlcnkoQ29udGV4dFZrICpjb250ZXh0VmspCkBAIC0zNDQ1LDggKzM0OTgsMTAgQEAgYW5nbGU6
OlJlc3VsdCBRdWVyeUhlbHBlcjo6ZW5kUXVlcnkoQ29udGV4dFZrICpjb250ZXh0VmspCiAgICAg
ICAgICAgICBSZW5kZXJQYXNzQ2xvc3VyZVJlYXNvbjo6RW5kTm9uUmVuZGVyUGFzc1F1ZXJ5KSk7
CiAgICAgfQogCisgICAgQ29tbWFuZEJ1ZmZlckFjY2VzcyBhY2Nlc3M7CiAgICAgT3V0c2lkZVJl
bmRlclBhc3NDb21tYW5kQnVmZmVyICpjb21tYW5kQnVmZmVyOwotICAgIEFOR0xFX1RSWShjb250
ZXh0VmstPmdldE91dHNpZGVSZW5kZXJQYXNzQ29tbWFuZEJ1ZmZlcih7fSwgJmNvbW1hbmRCdWZm
ZXIpKTsKKyAgICBhY2Nlc3Mub25RdWVyeUFjY2Vzcyh0aGlzKTsKKyAgICBBTkdMRV9UUlkoY29u
dGV4dFZrLT5nZXRPdXRzaWRlUmVuZGVyUGFzc0NvbW1hbmRCdWZmZXIoYWNjZXNzLCAmY29tbWFu
ZEJ1ZmZlcikpOwogCiAgICAgQU5HTEVfVFJZKGNvbnRleHRWay0+aGFuZGxlR3JhcGhpY3NFdmVu
dExvZyhyeDo6R3JhcGhpY3NFdmVudENtZEJ1Zjo6SW5PdXRzaWRlQ21kQnVmUXVlcnlDbWQpKTsK
IApAQCAtMzQ4OSw2ICszNTQ0LDcgQEAgdm9pZCBRdWVyeUhlbHBlcjo6ZW5kUmVuZGVyUGFzc1F1
ZXJ5KENvbnRleHRWayAqY29udGV4dFZrKQogICAgIGlmIChtU3RhdHVzID09IFF1ZXJ5U3RhdHVz
OjpBY3RpdmUpCiAgICAgewogICAgICAgICBlbmRRdWVyeUltcGwoY29udGV4dFZrLCAmY29udGV4
dFZrLT5nZXRTdGFydGVkUmVuZGVyUGFzc0NvbW1hbmRzKCkuZ2V0Q29tbWFuZEJ1ZmZlcigpKTsK
KyAgICAgICAgcmV0YWluKCZjb250ZXh0VmstPmdldFN0YXJ0ZWRSZW5kZXJQYXNzQ29tbWFuZHMo
KS5nZXRSZXNvdXJjZVVzZUxpc3QoKSk7CiAgICAgfQogfQogCkBAIC0zNTAwLDggKzM1NTYsMTAg
QEAgYW5nbGU6OlJlc3VsdCBRdWVyeUhlbHBlcjo6Zmx1c2hBbmRXcml0ZVRpbWVzdGFtcChDb250
ZXh0VmsgKmNvbnRleHRWaykKICAgICAgICAgICAgIGNvbnRleHRWay0+Zmx1c2hDb21tYW5kc0Fu
ZEVuZFJlbmRlclBhc3MoUmVuZGVyUGFzc0Nsb3N1cmVSZWFzb246OlRpbWVzdGFtcFF1ZXJ5KSk7
CiAgICAgfQogCisgICAgQ29tbWFuZEJ1ZmZlckFjY2VzcyBhY2Nlc3M7CiAgICAgT3V0c2lkZVJl
bmRlclBhc3NDb21tYW5kQnVmZmVyICpjb21tYW5kQnVmZmVyOwotICAgIEFOR0xFX1RSWShjb250
ZXh0VmstPmdldE91dHNpZGVSZW5kZXJQYXNzQ29tbWFuZEJ1ZmZlcih7fSwgJmNvbW1hbmRCdWZm
ZXIpKTsKKyAgICBhY2Nlc3Mub25RdWVyeUFjY2Vzcyh0aGlzKTsKKyAgICBBTkdMRV9UUlkoY29u
dGV4dFZrLT5nZXRPdXRzaWRlUmVuZGVyUGFzc0NvbW1hbmRCdWZmZXIoYWNjZXNzLCAmY29tbWFu
ZEJ1ZmZlcikpOwogICAgIHdyaXRlVGltZXN0YW1wKGNvbnRleHRWaywgY29tbWFuZEJ1ZmZlcik7
CiAgICAgcmV0dXJuIGFuZ2xlOjpSZXN1bHQ6OkNvbnRpbnVlOwogfQpAQCAtMzUyMSw5ICszNTc5
LDYgQEAgdm9pZCBRdWVyeUhlbHBlcjo6d3JpdGVUaW1lc3RhbXAoQ29udGV4dFZrICpjb250ZXh0
VmssCiAgICAgY29uc3QgUXVlcnlQb29sICZxdWVyeVBvb2wgPSBnZXRRdWVyeVBvb2woKTsKICAg
ICByZXNldFF1ZXJ5UG9vbEltcGwoY29udGV4dFZrLCBxdWVyeVBvb2wsIGNvbW1hbmRCdWZmZXIp
OwogICAgIGNvbW1hbmRCdWZmZXItPndyaXRlVGltZXN0YW1wKFZLX1BJUEVMSU5FX1NUQUdFX0JP
VFRPTV9PRl9QSVBFX0JJVCwgcXVlcnlQb29sLCBtUXVlcnkpOwotICAgIC8vIHRpbWVzdGFtcCBy
ZXN1bHRzIGFyZSBhdmFpbGFibGUgaW1tZWRpYXRlbHksIHJldGFpbiB0aGlzIHF1ZXJ5IHNvIHRo
YXQgd2UgZ2V0IGl0cyBzZXJpYWwKLSAgICAvLyB1cGRhdGVkIHdoaWNoIGlzIHVzZWQgdG8gaW5k
aWNhdGUgdGhhdCBxdWVyeSByZXN1bHRzIGFyZSAob3Igd2lsbCBiZSkgYXZhaWxhYmxlLgotICAg
IHJldGFpbigmY29udGV4dFZrLT5nZXRSZXNvdXJjZVVzZUxpc3QoKSk7CiB9CiAKIGJvb2wgUXVl
cnlIZWxwZXI6Omhhc1N1Ym1pdHRlZENvbW1hbmRzKCkgY29uc3QKQEAgLTQ0MzAsOCArNDQ4NSw2
IEBAIHZvaWQgQnVmZmVySGVscGVyOjphY3F1aXJlRnJvbUV4dGVybmFsKENvbnRleHRWayAqY29u
dGV4dFZrLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT3V0c2lkZVJl
bmRlclBhc3NDb21tYW5kQnVmZmVyICpjb21tYW5kQnVmZmVyKQogewogICAgIG1DdXJyZW50UXVl
dWVGYW1pbHlJbmRleCA9IGV4dGVybmFsUXVldWVGYW1pbHlJbmRleDsKLQotICAgIHJldGFpblJl
YWRXcml0ZSgmY29udGV4dFZrLT5nZXRSZXNvdXJjZVVzZUxpc3QoKSk7CiAgICAgY2hhbmdlUXVl
dWUocmVuZGVyZXJRdWV1ZUZhbWlseUluZGV4LCBjb21tYW5kQnVmZmVyKTsKIH0KIApAQCAtNDQ0
MSw4ICs0NDk0LDYgQEAgdm9pZCBCdWZmZXJIZWxwZXI6OnJlbGVhc2VUb0V4dGVybmFsKENvbnRl
eHRWayAqY29udGV4dFZrLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE91
dHNpZGVSZW5kZXJQYXNzQ29tbWFuZEJ1ZmZlciAqY29tbWFuZEJ1ZmZlcikKIHsKICAgICBBU1NF
UlQobUN1cnJlbnRRdWV1ZUZhbWlseUluZGV4ID09IHJlbmRlcmVyUXVldWVGYW1pbHlJbmRleCk7
Ci0KLSAgICByZXRhaW5SZWFkV3JpdGUoJmNvbnRleHRWay0+Z2V0UmVzb3VyY2VVc2VMaXN0KCkp
OwogICAgIGNoYW5nZVF1ZXVlKGV4dGVybmFsUXVldWVGYW1pbHlJbmRleCwgY29tbWFuZEJ1ZmZl
cik7CiB9CiAKQEAgLTQ5NTMsNyArNTAwNCw3IEBAIHZvaWQgSW1hZ2VIZWxwZXI6OnJlbGVhc2VJ
bWFnZUZyb21TaGFyZUNvbnRleHRzKFJlbmRlcmVyVmsgKnJlbmRlcmVyLCBDb250ZXh0VmsKIHsK
ICAgICBpZiAoY29udGV4dFZrICYmIG1JbWFnZVNlcmlhbC52YWxpZCgpKQogICAgIHsKLSAgICAg
ICAgQ29udGV4dFZrU2V0ICZzaGFyZUNvbnRleHRTZXQgPSAqY29udGV4dFZrLT5nZXRTaGFyZUdy
b3VwVmsoKS0+Z2V0Q29udGV4dHMoKTsKKyAgICAgICAgY29uc3QgQ29udGV4dFZrU2V0ICZzaGFy
ZUNvbnRleHRTZXQgPSBjb250ZXh0VmstPmdldFNoYXJlR3JvdXBWaygpLT5nZXRDb250ZXh0cygp
OwogICAgICAgICBmb3IgKENvbnRleHRWayAqY3R4IDogc2hhcmVDb250ZXh0U2V0KQogICAgICAg
ICB7CiAgICAgICAgICAgICBjdHgtPmZpbmFsaXplSW1hZ2VMYXlvdXQodGhpcyk7CkBAIC01NjY4
LDcgKzU3MTksNiBAQCB2b2lkIEltYWdlSGVscGVyOjphY3F1aXJlRnJvbUV4dGVybmFsKENvbnRl
eHRWayAqY29udGV4dFZrLAogICAgIG1DdXJyZW50TGF5b3V0ICAgICAgICAgICA9IGN1cnJlbnRM
YXlvdXQ7CiAgICAgbUN1cnJlbnRRdWV1ZUZhbWlseUluZGV4ID0gZXh0ZXJuYWxRdWV1ZUZhbWls
eUluZGV4OwogCi0gICAgcmV0YWluKCZjb250ZXh0VmstPmdldFJlc291cmNlVXNlTGlzdCgpKTsK
ICAgICBjaGFuZ2VMYXlvdXRBbmRRdWV1ZShjb250ZXh0VmssIGdldEFzcGVjdEZsYWdzKCksIG1D
dXJyZW50TGF5b3V0LCByZW5kZXJlclF1ZXVlRmFtaWx5SW5kZXgsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29tbWFuZEJ1ZmZlcik7CiAKQEAgLTU2OTEsOCArNTc0MSw2IEBAIHZvaWQgSW1h
Z2VIZWxwZXI6OnJlbGVhc2VUb0V4dGVybmFsKENvbnRleHRWayAqY29udGV4dFZrLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT3V0c2lkZVJlbmRlclBhc3NDb21tYW5kQnVm
ZmVyICpjb21tYW5kQnVmZmVyKQogewogICAgIEFTU0VSVChtQ3VycmVudFF1ZXVlRmFtaWx5SW5k
ZXggPT0gcmVuZGVyZXJRdWV1ZUZhbWlseUluZGV4KTsKLQotICAgIHJldGFpbigmY29udGV4dFZr
LT5nZXRSZXNvdXJjZVVzZUxpc3QoKSk7CiAgICAgY2hhbmdlTGF5b3V0QW5kUXVldWUoY29udGV4
dFZrLCBnZXRBc3BlY3RGbGFncygpLCBkZXNpcmVkTGF5b3V0LCBleHRlcm5hbFF1ZXVlRmFtaWx5
SW5kZXgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgY29tbWFuZEJ1ZmZlcik7CiB9CkBAIC02
MDUyLDkgKzYxMDAsNiBAQCBhbmdsZTo6UmVzdWx0IEltYWdlSGVscGVyOjpDb3B5SW1hZ2VTdWJE
YXRhKGNvbnN0IGdsOjpDb250ZXh0ICpjb250ZXh0LAogICAgICAgICBib29sIGlzU3JjM0QgPSBz
cmNJbWFnZS0+Z2V0VHlwZSgpID09IFZLX0lNQUdFX1RZUEVfM0Q7CiAgICAgICAgIGJvb2wgaXNE
c3QzRCA9IGRzdEltYWdlLT5nZXRUeXBlKCkgPT0gVktfSU1BR0VfVFlQRV8zRDsKIAotICAgICAg
ICBzcmNJbWFnZS0+cmV0YWluKCZjb250ZXh0VmstPmdldFJlc291cmNlVXNlTGlzdCgpKTsKLSAg
ICAgICAgZHN0SW1hZ2UtPnJldGFpbigmY29udGV4dFZrLT5nZXRSZXNvdXJjZVVzZUxpc3QoKSk7
Ci0KICAgICAgICAgVmtJbWFnZUNvcHkgcmVnaW9uID0ge307CiAKICAgICAgICAgcmVnaW9uLnNy
Y1N1YnJlc291cmNlLmFzcGVjdE1hc2sgICAgID0gVktfSU1BR0VfQVNQRUNUX0NPTE9SX0JJVDsK
QEAgLTY3NjcsNyArNjgxMiwxOCBAQCB2b2lkIEltYWdlSGVscGVyOjppbnZhbGlkYXRlU3VicmVz
b3VyY2VDb250ZW50SW1wbChDb250ZXh0VmsgKmNvbnRleHRWaywKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExldmVsQ29udGVudERlZmluZWRNYXNr
ICpjb250ZW50RGVmaW5lZE1hc2ssCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBib29sICpwcmVmZXJUb0tlZXBDb250ZW50c0RlZmluZWRPdXQpCiB7
Ci0gICAgLy8gSWYgdGhlIGNvbG9yIGZvcm1hdCBpcyBlbXVhbHRlZCBhbmQgaGFzIGV4dHJhIGNo
YW5uZWxzLCB0aG9zZSBjaGFubmVscyBuZWVkIHRvIHN0YXkgY2xlYXJlZC4KKyAgICAvLyBJZiB0
aGUgYXNwZWN0IGJlaW5nIGludmFsaWRhdGVkIGRvZXNuJ3QgZXhpc3QsIHNraXAgaW52YWxpZGF0
aW9uIGFsdG9nZXRoZXIuCisgICAgaWYgKChnZXRBc3BlY3RGbGFncygpICYgYXNwZWN0KSA9PSAw
KQorICAgIHsKKyAgICAgICAgaWYgKHByZWZlclRvS2VlcENvbnRlbnRzRGVmaW5lZE91dCkKKyAg
ICAgICAgeworICAgICAgICAgICAgLy8gTGV0IHRoZSBjYWxsZXIga25vdyB0aGF0IHRoaXMgaW52
YWxpZGF0ZSByZXF1ZXN0IHdhcyBpZ25vcmVkLgorICAgICAgICAgICAgKnByZWZlclRvS2VlcENv
bnRlbnRzRGVmaW5lZE91dCA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIC8vIElmIHRoZSBjb2xvciBmb3JtYXQgaXMgZW11bGF0ZWQgYW5kIGhhcyBleHRy
YSBjaGFubmVscywgdGhvc2UgY2hhbm5lbHMgbmVlZCB0byBzdGF5IGNsZWFyZWQuCiAgICAgLy8g
T24gc29tZSBkZXZpY2VzLCBpdCdzIGNoZWFwZXIgdG8gc2tpcCBpbnZhbGlkYXRpbmcgdGhlIGZy
YW1lYnVmZmVyIGF0dGFjaG1lbnQsIHdoaWxlIG9uCiAgICAgLy8gb3RoZXJzIGl0J3MgY2hlYXBl
ciB0byBpbnZhbGlkYXRlIGJ1dCB0aGVuIHJlLWNsZWFyIHRoZSBpbWFnZS4KICAgICAvLwpAQCAt
ODQxMSw3ICs4NDY3LDYgQEAgYW5nbGU6OlJlc3VsdCBJbWFnZUhlbHBlcjo6cmVhZFBpeGVscyhD
b250ZXh0VmsgKmNvbnRleHRWaywKICAgICAgICAgICAgIGNvbnRleHRWaywgY29udGV4dFZrLT5o
YXNQcm90ZWN0ZWRDb250ZW50KCksIHJlbmRlcmVyLT5nZXRNZW1vcnlQcm9wZXJ0aWVzKCksCiAg
ICAgICAgICAgICBnbDo6RXh0ZW50cyhhcmVhLndpZHRoLCBhcmVhLmhlaWdodCwgMSksIG1JbnRl
bmRlZEZvcm1hdElELCBtQWN0dWFsRm9ybWF0SUQsCiAgICAgICAgICAgICBWS19JTUFHRV9VU0FH
RV9UUkFOU0ZFUl9TUkNfQklUIHwgVktfSU1BR0VfVVNBR0VfVFJBTlNGRVJfRFNUX0JJVCwgMSkp
OwotICAgICAgICByZXNvbHZlZEltYWdlLmdldCgpLnJldGFpbigmY29udGV4dFZrLT5nZXRSZXNv
dXJjZVVzZUxpc3QoKSk7CiAgICAgfQogCiAgICAgVmtJbWFnZUFzcGVjdEZsYWdzIGxheW91dENo
YW5nZUFzcGVjdEZsYWdzID0gc3JjLT5nZXRBc3BlY3RGbGFncygpOwpAQCAtOTczNyw1ICs5Nzky
LDE1IEBAIHZvaWQgQ29tbWFuZEJ1ZmZlckFjY2Vzczo6b25JbWFnZVdyaXRlKGdsOjpMZXZlbElu
ZGV4IGxldmVsU3RhcnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXZlbENvdW50
LCBsYXllclN0YXJ0LCBsYXllckNvdW50KTsKIH0KIAordm9pZCBDb21tYW5kQnVmZmVyQWNjZXNz
OjpvbkJ1ZmZlckV4dGVybmFsQWNxdWlyZVJlbGVhc2UoQnVmZmVySGVscGVyICpidWZmZXIpCit7
CisgICAgbUV4dGVybmFsQWNxdWlyZVJlbGVhc2VCdWZmZXJzLmVtcGxhY2VfYmFjayhDb21tYW5k
QnVmZmVyQnVmZmVyRXh0ZXJuYWxBY3F1aXJlUmVsZWFzZXtidWZmZXJ9KTsKK30KKwordm9pZCBD
b21tYW5kQnVmZmVyQWNjZXNzOjpvblJlc291cmNlQWNjZXNzKFJlc291cmNlICpyZXNvdXJjZSkK
K3sKKyAgICBtQWNjZXNzUmVzb3VyY2VzLmVtcGxhY2VfYmFjayhDb21tYW5kQnVmZmVyUmVzb3Vy
Y2VBY2Nlc3N7cmVzb3VyY2V9KTsKK30KKwogfSAgLy8gbmFtZXNwYWNlIHZrCiB9ICAvLyBuYW1l
c3BhY2UgcngKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdM
RS9yZW5kZXJlci92dWxrYW4vdmtfaGVscGVycy5oIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUv
c3JjL2xpYkFOR0xFL3JlbmRlcmVyL3Z1bGthbi92a19oZWxwZXJzLmgKaW5kZXggZGY5MzQ1ODlh
ZDU4ZWFjNzM4MGJhNTgzMWY5MzliYjQ1YmY3N2QxMS4uYzQ1MWMwZWVlYjg3NTUzYjlmNjA4MTcz
NTEzNWEyMGEwNzVlMmY1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3Jj
L2xpYkFOR0xFL3JlbmRlcmVyL3Z1bGthbi92a19oZWxwZXJzLmgKKysrIGIvU291cmNlL1RoaXJk
UGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL3Z1bGthbi92a19oZWxwZXJzLmgKQEAg
LTkzLDcgKzkzLDcgQEAgY2xhc3MgRHluYW1pY0J1ZmZlciA6IGFuZ2xlOjpOb25Db3B5YWJsZQog
ICAgIC8vIFRoaXMgcmVsZWFzZXMgcmVzb3VyY2VzIHdoZW4gdGhleSBtaWdodCBjdXJyZW50bHkg
YmUgaW4gdXNlLgogICAgIHZvaWQgcmVsZWFzZShSZW5kZXJlclZrICpyZW5kZXJlcik7CiAKLSAg
ICAvLyBUaGlzIGFkZHMgaW4tZmxpZ2h0IGJ1ZmZlcnMgdG8gdGhlIGNvbnRleHQncyBtUmVzb3Vy
Y2VVc2VMaXN0IGFuZCB0aGVuIHJlbGVhc2VzIHRoZW0KKyAgICAvLyBUaGlzIGFkZHMgaW4tZmxp
Z2h0IGJ1ZmZlcnMgdG8gdGhlIG1SZXNvdXJjZVVzZUxpc3QgaW4gdGhlIHNoYXJlZ3JvdXAgYW5k
IHRoZW4gcmVsZWFzZXMgdGhlbS4KICAgICB2b2lkIHJlbGVhc2VJbkZsaWdodEJ1ZmZlcnNUb1Jl
c291cmNlVXNlTGlzdChDb250ZXh0VmsgKmNvbnRleHRWayk7CiAKICAgICAvLyBUaGlzIGZyZWVz
IHJlc291cmNlcyBpbW1lZGlhdGVseS4KQEAgLTg0MywyMCArODQzLDIxIEBAIGNsYXNzIEJ1ZmZl
clBvb2wgOiBhbmdsZTo6Tm9uQ29weWFibGUKICAgICAgICAgICAgICAgICAgICAgICAgdWludDMy
X3QgbWVtb3J5VHlwZUluZGV4LAogICAgICAgICAgICAgICAgICAgICAgICBWa01lbW9yeVByb3Bl
cnR5RmxhZ3MgbWVtb3J5UHJvcGVydHkpOwogCi0gICAgYW5nbGU6OlJlc3VsdCBhbGxvY2F0ZUJ1
ZmZlcihDb250ZXh0VmsgKmNvbnRleHRWaywKKyAgICBhbmdsZTo6UmVzdWx0IGFsbG9jYXRlQnVm
ZmVyKENvbnRleHQgKmNvbnRleHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBW
a0RldmljZVNpemUgc2l6ZUluQnl0ZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBWa0RldmljZVNpemUgYWxpZ25tZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgQnVmZmVyU3ViYWxsb2NhdGlvbiAqc3ViYWxsb2NhdGlvbik7CiAKLSAgICAvLyBUaGlzIGZy
ZWVzIHJlc291cmNlcyBpbW1lZGlhdGVseS4KLSAgICB2b2lkIGRlc3Ryb3koUmVuZGVyZXJWayAq
cmVuZGVyZXIpOwotCisgICAgLy8gRnJlZXMgcmVzb3VyY2VzIGltbWVkaWF0ZWx5LCBvciBvcnBo
YW4gdGhlIG5vbi1lbXB0eSBCdWZmZXJCbG9ja3MgaWYgYWxsb3dlZC4gSWYgb3JwaGFuIGlzCisg
ICAgLy8gbm90IGFsbG93ZWQsIGl0IHdpbGwgYXNzZXJ0IGlmIEJ1ZmZlckJsb2NrIGlzIHN0aWxs
IG5vdCBlbXB0eS4KKyAgICB2b2lkIGRlc3Ryb3koUmVuZGVyZXJWayAqcmVuZGVyZXIsIGJvb2wg
b3JwaGFuQWxsb3dlZCk7CisgICAgLy8gUmVtb3ZlIGFuZCBkZXN0cm95IGVtcHR5IEJ1ZmZlckJs
b2NrcwogICAgIHZvaWQgcHJ1bmVFbXB0eUJ1ZmZlcnMoUmVuZGVyZXJWayAqcmVuZGVyZXIpOwog
CiAgICAgYm9vbCB2YWxpZCgpIGNvbnN0IHsgcmV0dXJuIG1TaXplICE9IDA7IH0KIAogICBwcml2
YXRlOgotICAgIGFuZ2xlOjpSZXN1bHQgYWxsb2NhdGVOZXdCdWZmZXIoQ29udGV4dFZrICpjb250
ZXh0VmssIFZrRGV2aWNlU2l6ZSBzaXplSW5CeXRlcyk7CisgICAgYW5nbGU6OlJlc3VsdCBhbGxv
Y2F0ZU5ld0J1ZmZlcihDb250ZXh0ICpjb250ZXh0LCBWa0RldmljZVNpemUgc2l6ZUluQnl0ZXMp
OwogCiAgICAgdm1hOjpWaXJ0dWFsQmxvY2tDcmVhdGVGbGFncyBtVmlydHVhbEJsb2NrQ3JlYXRl
RmxhZ3M7CiAgICAgVmtCdWZmZXJVc2FnZUZsYWdzIG1Vc2FnZTsKQEAgLTg3MSw3ICs4NzIsMTEg
QEAgY2xhc3MgQnVmZmVyUG9vbCA6IGFuZ2xlOjpOb25Db3B5YWJsZQogICAgIC8vIGFuZCBvbmx5
IHRvIGZpbmQgb3V0IHRoYXQgd2UgaGF2ZSB0byBhbGxvY2F0ZSBhIG5ldyBvbmUgbmV4dCBmcmFt
ZS4KICAgICBzdGF0aWMgY29uc3RleHByIGludDMyX3Qga01heENvdW50UmVtYWluc0VtcHR5ID0g
NDsKICAgICBzdGF0aWMgY29uc3RleHByIGludDMyX3Qga01heEVtcHR5QnVmZmVyQ291bnQgID0g
MTY7CisgICAgLy8gbWF4IHNpemUgdG8gZ28gZG93biB0aGUgc3ViYWxsb2NhdGlvbiBjb2RlIHBh
dGguIEFueSBhbGxvY2F0aW9uIGdyZWF0ZXIgb3IgZXF1YWwgdGhpcyBzaXplCisgICAgLy8gd2ls
bCBjYWxsIGludG8gdnVsa2FuIGRpcmVjdGx5IHRvIGFsbG9jYXRlIGEgZGVkaWNhdGVkIFZrRGV2
aWNlTWVtb3J5LgorICAgIHN0YXRpYyBjb25zdGV4cHIgc2l6ZV90IGtNYXhCdWZmZXJTaXplRm9y
U3ViYWxsb2NhdGlvbiA9IDQgKiAxMDI0ICogMTAyNDsKIH07Cit1c2luZyBCdWZmZXJQb29sUG9p
bnRlckFycmF5ID0gc3RkOjphcnJheTxzdGQ6OnVuaXF1ZV9wdHI8QnVmZmVyUG9vbD4sIFZLX01B
WF9NRU1PUllfVFlQRVM+OwogCiBlbnVtIGNsYXNzIEJ1ZmZlckFjY2VzcwogewpAQCAtMTAzMiw2
ICsxMDM3LDggQEAgY2xhc3MgQ29tbWFuZEJ1ZmZlckhlbHBlckNvbW1vbiA6IGFuZ2xlOjpOb25D
b3B5YWJsZQogCiAgICAgYm9vbCBoYXNHTE1lbW9yeUJhcnJpZXJJc3N1ZWQoKSBjb25zdCB7IHJl
dHVybiBtSGFzR0xNZW1vcnlCYXJyaWVySXNzdWVkOyB9CiAKKyAgICB2azo6UmVzb3VyY2VVc2VM
aXN0ICZnZXRSZXNvdXJjZVVzZUxpc3QoKSB7IHJldHVybiBtUmVzb3VyY2VVc2VMaXN0OyB9CisK
ICAgICAvLyBEdW1waW5nIHRoZSBjb21tYW5kIHN0cmVhbSBpcyBkaXNhYmxlZCBieSBkZWZhdWx0
LgogICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBrRW5hYmxlQ29tbWFuZFN0cmVhbURpYWdub3N0
aWNzID0gZmFsc2U7CiAKQEAgLTEwODgsNiArMTA5NSw3IEBAIGNsYXNzIENvbW1hbmRCdWZmZXJI
ZWxwZXJDb21tb24gOiBhbmdsZTo6Tm9uQ29weWFibGUKICAgICAvLyBGb3IgQnVmZmVycywgd2Ug
dHJhY2sgdGhlIHJlYWQvd3JpdGUgYWNjZXNzIHR5cGUgc28gd2UgY2FuIGVuYWJsZSBzaW11bHRh
bmVvdXMgcmVhZHMuCiAgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBrRmxhdE1hcFNpemUg
PSAxNjsKICAgICBhbmdsZTo6RmxhdFVub3JkZXJlZE1hcDxCdWZmZXJTZXJpYWwsIEJ1ZmZlckFj
Y2Vzcywga0ZsYXRNYXBTaXplPiBtVXNlZEJ1ZmZlcnM7CisgICAgdms6OlJlc291cmNlVXNlTGlz
dCBtUmVzb3VyY2VVc2VMaXN0OwogfTsKIAogY2xhc3MgT3V0c2lkZVJlbmRlclBhc3NDb21tYW5k
QnVmZmVySGVscGVyIGZpbmFsIDogcHVibGljIENvbW1hbmRCdWZmZXJIZWxwZXJDb21tb24KQEAg
LTExNzIsMTUgKzExODAsMTMgQEAgY2xhc3MgUmVuZGVyUGFzc0NvbW1hbmRCdWZmZXJIZWxwZXIg
ZmluYWwgOiBwdWJsaWMgQ29tbWFuZEJ1ZmZlckhlbHBlckNvbW1vbgogICAgICAgICAgICAgICAg
ICAgICBBbGlhc2luZ01vZGUgYWxpYXNpbmdNb2RlLAogICAgICAgICAgICAgICAgICAgICBJbWFn
ZUhlbHBlciAqaW1hZ2UpOwogCi0gICAgdm9pZCBjb2xvckltYWdlc0RyYXcoUmVzb3VyY2VVc2VM
aXN0ICpyZXNvdXJjZVVzZUxpc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgZ2w6OkxldmVs
SW5kZXggbGV2ZWwsCisgICAgdm9pZCBjb2xvckltYWdlc0RyYXcoZ2w6OkxldmVsSW5kZXggbGV2
ZWwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgbGF5ZXJTdGFydCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBsYXllckNvdW50LAogICAgICAgICAgICAgICAg
ICAgICAgICAgIEltYWdlSGVscGVyICppbWFnZSwKICAgICAgICAgICAgICAgICAgICAgICAgICBJ
bWFnZUhlbHBlciAqcmVzb2x2ZUltYWdlLAogICAgICAgICAgICAgICAgICAgICAgICAgIFBhY2tl
ZEF0dGFjaG1lbnRJbmRleCBwYWNrZWRBdHRhY2htZW50SW5kZXgpOwotICAgIHZvaWQgZGVwdGhT
dGVuY2lsSW1hZ2VzRHJhdyhSZXNvdXJjZVVzZUxpc3QgKnJlc291cmNlVXNlTGlzdCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2w6OkxldmVsSW5kZXggbGV2ZWwsCisgICAgdm9p
ZCBkZXB0aFN0ZW5jaWxJbWFnZXNEcmF3KGdsOjpMZXZlbEluZGV4IGxldmVsLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBsYXllclN0YXJ0LAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBsYXllckNvdW50LAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBJbWFnZUhlbHBlciAqaW1hZ2UsCkBAIC0yODc5LDYgKzI4ODUsMTQg
QEAgc3RydWN0IENvbW1hbmRCdWZmZXJJbWFnZVdyaXRlCiAgICAgdWludDMyX3QgbGF5ZXJTdGFy
dDsKICAgICB1aW50MzJfdCBsYXllckNvdW50OwogfTsKK3N0cnVjdCBDb21tYW5kQnVmZmVyQnVm
ZmVyRXh0ZXJuYWxBY3F1aXJlUmVsZWFzZQoreworICAgIEJ1ZmZlckhlbHBlciAqYnVmZmVyOwor
fTsKK3N0cnVjdCBDb21tYW5kQnVmZmVyUmVzb3VyY2VBY2Nlc3MKK3sKKyAgICBSZXNvdXJjZSAq
cmVzb3VyY2U7Cit9OwogY2xhc3MgQ29tbWFuZEJ1ZmZlckFjY2VzcyA6IGFuZ2xlOjpOb25Db3B5
YWJsZQogewogICBwdWJsaWM6CkBAIC0yOTM1LDYgKzI5NDksOSBAQCBjbGFzcyBDb21tYW5kQnVm
ZmVyQWNjZXNzIDogYW5nbGU6Ok5vbkNvcHlhYmxlCiAgICAgICAgIG9uSW1hZ2VXcml0ZShsZXZl
bFN0YXJ0LCBsZXZlbENvdW50LCBsYXllclN0YXJ0LCBsYXllckNvdW50LCBhc3BlY3RGbGFncywK
ICAgICAgICAgICAgICAgICAgICAgIEltYWdlTGF5b3V0OjpDb21wdXRlU2hhZGVyV3JpdGUsIGlt
YWdlKTsKICAgICB9CisgICAgdm9pZCBvbkV4dGVybmFsQWNxdWlyZVJlbGVhc2UoSW1hZ2VIZWxw
ZXIgKmltYWdlKSB7IG9uUmVzb3VyY2VBY2Nlc3MoaW1hZ2UpOyB9CisgICAgdm9pZCBvblF1ZXJ5
QWNjZXNzKFF1ZXJ5SGVscGVyICpxdWVyeSkgeyBvblJlc291cmNlQWNjZXNzKHF1ZXJ5KTsgfQor
ICAgIHZvaWQgb25CdWZmZXJFeHRlcm5hbEFjcXVpcmVSZWxlYXNlKEJ1ZmZlckhlbHBlciAqYnVm
ZmVyKTsKIAogICAgIC8vIFRoZSBsaW1pdHMgcmVmbGVjdCB0aGUgY3VycmVudCBtYXhpbXVtIGNv
bmN1cnJlbnQgdXNhZ2Ugb2YgZWFjaCByZXNvdXJjZSB0eXBlLiAgQVNTRVJUcyB3aWxsCiAgICAg
Ly8gZmlyZSBpZiB0aGlzIGxpbWl0IGlzIGV4Y2VlZGVkIGluIHRoZSBmdXR1cmUuCkBAIC0yOTQy
LDExICsyOTU5LDE5IEBAIGNsYXNzIENvbW1hbmRCdWZmZXJBY2Nlc3MgOiBhbmdsZTo6Tm9uQ29w
eWFibGUKICAgICB1c2luZyBXcml0ZUJ1ZmZlcnMgPSBhbmdsZTo6Rml4ZWRWZWN0b3I8Q29tbWFu
ZEJ1ZmZlckJ1ZmZlckFjY2VzcywgMj47CiAgICAgdXNpbmcgUmVhZEltYWdlcyAgID0gYW5nbGU6
OkZpeGVkVmVjdG9yPENvbW1hbmRCdWZmZXJJbWFnZUFjY2VzcywgMj47CiAgICAgdXNpbmcgV3Jp
dGVJbWFnZXMgID0gYW5nbGU6OkZpeGVkVmVjdG9yPENvbW1hbmRCdWZmZXJJbWFnZVdyaXRlLCAx
PjsKKyAgICB1c2luZyBFeHRlcm5hbEFjcXVpcmVSZWxlYXNlQnVmZmVycyA9CisgICAgICAgIGFu
Z2xlOjpGaXhlZFZlY3RvcjxDb21tYW5kQnVmZmVyQnVmZmVyRXh0ZXJuYWxBY3F1aXJlUmVsZWFz
ZSwgMT47CisgICAgdXNpbmcgQWNjZXNzUmVzb3VyY2VzID0gYW5nbGU6OkZpeGVkVmVjdG9yPENv
bW1hbmRCdWZmZXJSZXNvdXJjZUFjY2VzcywgMT47CiAKICAgICBjb25zdCBSZWFkQnVmZmVycyAm
Z2V0UmVhZEJ1ZmZlcnMoKSBjb25zdCB7IHJldHVybiBtUmVhZEJ1ZmZlcnM7IH0KICAgICBjb25z
dCBXcml0ZUJ1ZmZlcnMgJmdldFdyaXRlQnVmZmVycygpIGNvbnN0IHsgcmV0dXJuIG1Xcml0ZUJ1
ZmZlcnM7IH0KICAgICBjb25zdCBSZWFkSW1hZ2VzICZnZXRSZWFkSW1hZ2VzKCkgY29uc3QgeyBy
ZXR1cm4gbVJlYWRJbWFnZXM7IH0KICAgICBjb25zdCBXcml0ZUltYWdlcyAmZ2V0V3JpdGVJbWFn
ZXMoKSBjb25zdCB7IHJldHVybiBtV3JpdGVJbWFnZXM7IH0KKyAgICBjb25zdCBFeHRlcm5hbEFj
cXVpcmVSZWxlYXNlQnVmZmVycyAmZ2V0RXh0ZXJuYWxBY3F1aXJlUmVsZWFzZUJ1ZmZlcnMoKSBj
b25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1FeHRlcm5hbEFjcXVpcmVSZWxlYXNlQnVmZmVy
czsKKyAgICB9CisgICAgY29uc3QgQWNjZXNzUmVzb3VyY2VzICZnZXRBY2Nlc3NSZXNvdXJjZXMo
KSBjb25zdCB7IHJldHVybiBtQWNjZXNzUmVzb3VyY2VzOyB9CiAKICAgcHJpdmF0ZToKICAgICB2
b2lkIG9uQnVmZmVyUmVhZChWa0FjY2Vzc0ZsYWdzIHJlYWRBY2Nlc3NUeXBlLCBQaXBlbGluZVN0
YWdlIHJlYWRTdGFnZSwgQnVmZmVySGVscGVyICpidWZmZXIpOwpAQCAtMjk2MiwxMSArMjk4Nywx
NCBAQCBjbGFzcyBDb21tYW5kQnVmZmVyQWNjZXNzIDogYW5nbGU6Ok5vbkNvcHlhYmxlCiAgICAg
ICAgICAgICAgICAgICAgICAgVmtJbWFnZUFzcGVjdEZsYWdzIGFzcGVjdEZsYWdzLAogICAgICAg
ICAgICAgICAgICAgICAgIEltYWdlTGF5b3V0IGltYWdlTGF5b3V0LAogICAgICAgICAgICAgICAg
ICAgICAgIEltYWdlSGVscGVyICppbWFnZSk7CisgICAgdm9pZCBvblJlc291cmNlQWNjZXNzKFJl
c291cmNlICpyZXNvdXJjZSk7CiAKICAgICBSZWFkQnVmZmVycyBtUmVhZEJ1ZmZlcnM7CiAgICAg
V3JpdGVCdWZmZXJzIG1Xcml0ZUJ1ZmZlcnM7CiAgICAgUmVhZEltYWdlcyBtUmVhZEltYWdlczsK
ICAgICBXcml0ZUltYWdlcyBtV3JpdGVJbWFnZXM7CisgICAgRXh0ZXJuYWxBY3F1aXJlUmVsZWFz
ZUJ1ZmZlcnMgbUV4dGVybmFsQWNxdWlyZVJlbGVhc2VCdWZmZXJzOworICAgIEFjY2Vzc1Jlc291
cmNlcyBtQWNjZXNzUmVzb3VyY2VzOwogfTsKIAogLy8gVGhpcyBjbGFzcycgcmVzcG9uc2liaWxp
dHkgaXMgdG8gY3JlYXRlIGluZGV4IGJ1ZmZlcnMgbmVlZGVkIHRvIHN1cHBvcnQgbGluZSBsb29w
cyBpbiBWdWxrYW4uCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGli
QU5HTEUvcmVuZGVyZXIvdnVsa2FuL3ZrX3V0aWxzLmNwcCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FO
R0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci92dWxrYW4vdmtfdXRpbHMuY3BwCmluZGV4IGY4MTM1
YzRmZTBkYTY1MmZhMTQ4ZDJiNjhhYzY2MWE4ZTBmNTZmZjkuLjBmZWNjZmM2MDUxNmQxYmVlMTA4
MDAzY2JlOWIzMTkzNzk2ZmM5NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xF
L3NyYy9saWJBTkdMRS9yZW5kZXJlci92dWxrYW4vdmtfdXRpbHMuY3BwCisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci92dWxrYW4vdmtfdXRpbHMuY3Bw
CkBAIC02LDggKzYsOCBAQAogLy8gdmtfdXRpbHM6CiAvLyAgICBIZWxwZXIgZnVuY3Rpb25zIGZv
ciB0aGUgVnVsa2FuIFJlbmRlcmVyLgogLy8KKwogI2luY2x1ZGUgImxpYkFOR0xFL3JlbmRlcmVy
L3Z1bGthbi92a191dGlscy5oIgotI2luY2x1ZGUgImNvbW1vbi9zeXN0ZW1fdXRpbHMuaCIKIAog
I2luY2x1ZGUgImxpYkFOR0xFL0NvbnRleHQuaCIKICNpbmNsdWRlICJsaWJBTkdMRS9yZW5kZXJl
ci92dWxrYW4vQnVmZmVyVmsuaCIKQEAgLTQwLDggKzQwLDYgQEAgbmFtZXNwYWNlCiAvLyBQaWNr
IGFuIGFyYml0cmFyeSB2YWx1ZSB0byBpbml0aWFsaXplIG5vbi16ZXJvIG1lbW9yeSBmb3Igc2Fu
aXRpemF0aW9uLiAgTm90ZSB0aGF0IDB4M0YzRjNGM0YKIC8vIGFzIGZsb2F0IGlzIGFib3V0IDAu
NzUuCiBjb25zdGV4cHIgaW50IGtOb25aZXJvSW5pdFZhbHVlID0gMHgzRjsKLS8vIFRpbWUgaW50
ZXJ2YWwgaW4gc2Vjb25kcyB0aGF0IHdlIHNob3VsZCB0cnkgdG8gcHJ1bmUgZGVmYXVsdCBidWZm
ZXIgcG9vbHMuCi1jb25zdGV4cHIgZG91YmxlIGtUaW1lRWxhcHNlZEZvclBydW5lRGVmYXVsdEJ1
ZmZlclBvb2wgPSAwLjI1OwogCiBWa0ltYWdlVXNhZ2VGbGFncyBHZXRTdGFnaW5nQnVmZmVyVXNh
Z2VGbGFncyh2azo6U3RhZ2luZ1VzYWdlIHVzYWdlKQogewpAQCAtNjQzLDcxICs2NDEsNiBAQCBh
bmdsZTo6UmVzdWx0IEFsbG9jYXRlQnVmZmVyTWVtb3J5V2l0aFJlcXVpcmVtZW50cyhDb250ZXh0
ICpjb250ZXh0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGJ1ZmZlciwgZGV2aWNlTWVtb3J5T3V0KTsKIH0KIAotQnVmZmVyUG9vbCAqR2V0RGVmYXVsdEJ1
ZmZlclBvb2woc3RkOjp1bmlxdWVfcHRyPHZrOjpCdWZmZXJQb29sPiAmc21hbGxCdWZmZXJQb29s
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdms6OkJ1ZmZlclBvb2xQb2ludGVy
QXJyYXkgJmRlZmF1bHRCdWZmZXJQb29scywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFJlbmRlcmVyVmsgKnJlbmRlcmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgVmtEZXZpY2VTaXplIHNpemUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1
aW50MzJfdCBtZW1vcnlUeXBlSW5kZXgpCi17Ci0gICAgaWYgKHNpemUgPD0ga01heFNpemVUb1Vz
ZVNtYWxsQnVmZmVyUG9vbCAmJgotICAgICAgICBtZW1vcnlUeXBlSW5kZXggPT0KLSAgICAgICAg
ICAgIHJlbmRlcmVyLT5nZXRWZXJ0ZXhDb252ZXJzaW9uQnVmZmVyTWVtb3J5VHlwZUluZGV4KHZr
OjpNZW1vcnlIb3N0VmlzaWJpbGl0eTo6VmlzaWJsZSkpCi0gICAgewotICAgICAgICBpZiAoIXNt
YWxsQnVmZmVyUG9vbCkKLSAgICAgICAgewotICAgICAgICAgICAgY29uc3Qgdms6OkFsbG9jYXRv
ciAmYWxsb2NhdG9yID0gcmVuZGVyZXItPmdldEFsbG9jYXRvcigpOwotICAgICAgICAgICAgVmtC
dWZmZXJVc2FnZUZsYWdzIHVzYWdlRmxhZ3MgID0gR2V0RGVmYXVsdEJ1ZmZlclVzYWdlRmxhZ3Mo
cmVuZGVyZXIpOwotCi0gICAgICAgICAgICBWa01lbW9yeVByb3BlcnR5RmxhZ3MgbWVtb3J5UHJv
cGVydHlGbGFnczsKLSAgICAgICAgICAgIGFsbG9jYXRvci5nZXRNZW1vcnlUeXBlUHJvcGVydGll
cyhtZW1vcnlUeXBlSW5kZXgsICZtZW1vcnlQcm9wZXJ0eUZsYWdzKTsKLQotICAgICAgICAgICAg
c3RkOjp1bmlxdWVfcHRyPHZrOjpCdWZmZXJQb29sPiBwb29sID0gc3RkOjptYWtlX3VuaXF1ZTx2
azo6QnVmZmVyUG9vbD4oKTsKLSAgICAgICAgICAgIHBvb2wtPmluaXRXaXRoRmxhZ3MocmVuZGVy
ZXIsIHZtYTo6VmlydHVhbEJsb2NrQ3JlYXRlRmxhZ0JpdHM6OkJVRERZLCB1c2FnZUZsYWdzLCAw
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZW1vcnlUeXBlSW5kZXgsIG1lbW9y
eVByb3BlcnR5RmxhZ3MpOwotICAgICAgICAgICAgc21hbGxCdWZmZXJQb29sID0gc3RkOjptb3Zl
KHBvb2wpOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBzbWFsbEJ1ZmZlclBvb2wuZ2V0KCk7
Ci0gICAgfQotICAgIGVsc2UgaWYgKCFkZWZhdWx0QnVmZmVyUG9vbHNbbWVtb3J5VHlwZUluZGV4
XSkKLSAgICB7Ci0gICAgICAgIGNvbnN0IHZrOjpBbGxvY2F0b3IgJmFsbG9jYXRvciA9IHJlbmRl
cmVyLT5nZXRBbGxvY2F0b3IoKTsKLSAgICAgICAgVmtCdWZmZXJVc2FnZUZsYWdzIHVzYWdlRmxh
Z3MgID0gR2V0RGVmYXVsdEJ1ZmZlclVzYWdlRmxhZ3MocmVuZGVyZXIpOwotCi0gICAgICAgIFZr
TWVtb3J5UHJvcGVydHlGbGFncyBtZW1vcnlQcm9wZXJ0eUZsYWdzOwotICAgICAgICBhbGxvY2F0
b3IuZ2V0TWVtb3J5VHlwZVByb3BlcnRpZXMobWVtb3J5VHlwZUluZGV4LCAmbWVtb3J5UHJvcGVy
dHlGbGFncyk7Ci0KLSAgICAgICAgc3RkOjp1bmlxdWVfcHRyPHZrOjpCdWZmZXJQb29sPiBwb29s
ID0gc3RkOjptYWtlX3VuaXF1ZTx2azo6QnVmZmVyUG9vbD4oKTsKLSAgICAgICAgcG9vbC0+aW5p
dFdpdGhGbGFncyhyZW5kZXJlciwgdm1hOjpWaXJ0dWFsQmxvY2tDcmVhdGVGbGFnQml0czo6R0VO
RVJBTCwgdXNhZ2VGbGFncywgMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZW1vcnlU
eXBlSW5kZXgsIG1lbW9yeVByb3BlcnR5RmxhZ3MpOwotICAgICAgICBkZWZhdWx0QnVmZmVyUG9v
bHNbbWVtb3J5VHlwZUluZGV4XSA9IHN0ZDo6bW92ZShwb29sKTsKLSAgICB9Ci0KLSAgICByZXR1
cm4gZGVmYXVsdEJ1ZmZlclBvb2xzW21lbW9yeVR5cGVJbmRleF0uZ2V0KCk7Ci19Ci0KLXZvaWQg
UHJ1bmVEZWZhdWx0QnVmZmVyUG9vbHMoUmVuZGVyZXJWayAqcmVuZGVyZXIsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEJ1ZmZlclBvb2xQb2ludGVyQXJyYXkgJmRlZmF1bHRCdWZmZXJQ
b29scywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPHZrOjpC
dWZmZXJQb29sPiAmc21hbGxCdWZmZXJQb29sKQotewotICAgIGZvciAoc3RkOjp1bmlxdWVfcHRy
PHZrOjpCdWZmZXJQb29sPiAmcG9vbCA6IGRlZmF1bHRCdWZmZXJQb29scykKLSAgICB7Ci0gICAg
ICAgIGlmIChwb29sKQotICAgICAgICB7Ci0gICAgICAgICAgICBwb29sLT5wcnVuZUVtcHR5QnVm
ZmVycyhyZW5kZXJlcik7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgaWYgKHNtYWxsQnVmZmVyUG9v
bCkKLSAgICB7Ci0gICAgICAgIHNtYWxsQnVmZmVyUG9vbC0+cHJ1bmVFbXB0eUJ1ZmZlcnMocmVu
ZGVyZXIpOwotICAgIH0KLX0KLQotYm9vbCBJc0R1ZUZvckJ1ZmZlclBvb2xQcnVuZShkb3VibGUg
bGFzdFBydW5lVGltZSkKLXsKLSAgICBkb3VibGUgdGltZUVsYXBzZWQgPSBhbmdsZTo6R2V0Q3Vy
cmVudFN5c3RlbVRpbWUoKSAtIGxhc3RQcnVuZVRpbWU7Ci0gICAgcmV0dXJuIHRpbWVFbGFwc2Vk
ID4ga1RpbWVFbGFwc2VkRm9yUHJ1bmVEZWZhdWx0QnVmZmVyUG9vbDsKLX0KLQogYW5nbGU6OlJl
c3VsdCBJbml0U2hhZGVyQW5kU2VyaWFsKENvbnRleHQgKmNvbnRleHQsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgU2hhZGVyQW5kU2VyaWFsICpzaGFkZXJBbmRTZXJpYWwsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDMyX3QgKnNoYWRlckNv
ZGUsCkBAIC0xMDQwLDYgKzk3MywxMCBAQCBQRk5fdmtDcmVhdGVTdHJlYW1EZXNjcmlwdG9yU3Vy
ZmFjZUdHUCB2a0NyZWF0ZVN0cmVhbURlc2NyaXB0b3JTdXJmYWNlR0dQID0gbnVsbAogLy8gVktf
S0hSX3NoYXJlZF9wcmVzZW50YWJsZV9pbWFnZQogUEZOX3ZrR2V0U3dhcGNoYWluU3RhdHVzS0hS
IHZrR2V0U3dhcGNoYWluU3RhdHVzS0hSID0gbnVsbHB0cjsKIAorLy8gVktfS0hSX2ZyYWdtZW50
X3NoYWRpbmdfcmF0ZQorUEZOX3ZrR2V0UGh5c2ljYWxEZXZpY2VGcmFnbWVudFNoYWRpbmdSYXRl
c0tIUiB2a0dldFBoeXNpY2FsRGV2aWNlRnJhZ21lbnRTaGFkaW5nUmF0ZXNLSFIgPSBudWxscHRy
OworUEZOX3ZrQ21kU2V0RnJhZ21lbnRTaGFkaW5nUmF0ZUtIUiB2a0NtZFNldEZyYWdtZW50U2hh
ZGluZ1JhdGVLSFIgICAgICAgICAgICAgICAgICAgICAgICAgPSBudWxscHRyOworCiB2b2lkIElu
aXREZWJ1Z1V0aWxzRVhURnVuY3Rpb25zKFZrSW5zdGFuY2UgaW5zdGFuY2UpCiB7CiAgICAgR0VU
X0lOU1RBTkNFX0ZVTkModmtDcmVhdGVEZWJ1Z1V0aWxzTWVzc2VuZ2VyRVhUKTsKQEAgLTExNjEs
NiArMTA5OCwxMyBAQCB2b2lkIEluaXRHZXRTd2FwY2hhaW5TdGF0dXNLSFJGdW5jdGlvbnMoVmtE
ZXZpY2UgZGV2aWNlKQogICAgIEdFVF9ERVZJQ0VfRlVOQyh2a0dldFN3YXBjaGFpblN0YXR1c0tI
Uik7CiB9CiAKKy8vIFZLX0tIUl9mcmFnbWVudF9zaGFkaW5nX3JhdGUKK3ZvaWQgSW5pdEZyYWdt
ZW50U2hhZGluZ1JhdGVLSFJGdW5jdGlvbnMoVmtEZXZpY2UgZGV2aWNlKQoreworICAgIEdFVF9E
RVZJQ0VfRlVOQyh2a0dldFBoeXNpY2FsRGV2aWNlRnJhZ21lbnRTaGFkaW5nUmF0ZXNLSFIpOwor
ICAgIEdFVF9ERVZJQ0VfRlVOQyh2a0NtZFNldEZyYWdtZW50U2hhZGluZ1JhdGVLSFIpOworfQor
CiAjICAgIHVuZGVmIEdFVF9JTlNUQU5DRV9GVU5DCiAjICAgIHVuZGVmIEdFVF9ERVZJQ0VfRlVO
QwogCkBAIC0xNjczLDIwICsxNjE3LDIwIEBAIHZvaWQgQnVmZmVyQmxvY2s6OmRlc3Ryb3koUmVu
ZGVyZXJWayAqcmVuZGVyZXIpCiAgICAgbURldmljZU1lbW9yeS5kZXN0cm95KGRldmljZSk7CiB9
CiAKLWFuZ2xlOjpSZXN1bHQgQnVmZmVyQmxvY2s6OmluaXQoQ29udGV4dFZrICpjb250ZXh0Vmss
CithbmdsZTo6UmVzdWx0IEJ1ZmZlckJsb2NrOjppbml0KENvbnRleHQgKmNvbnRleHQsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJ1ZmZlciAmYnVmZmVyLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB2bWE6OlZpcnR1YWxCbG9ja0NyZWF0ZUZsYWdzIGZsYWdzLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZXZpY2VNZW1vcnkgJmRldmljZU1lbW9y
eSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmtNZW1vcnlQcm9wZXJ0eUZsYWdz
IG1lbW9yeVByb3BlcnR5RmxhZ3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZr
RGV2aWNlU2l6ZSBzaXplKQogewotICAgIFJlbmRlcmVyVmsgKnJlbmRlcmVyID0gY29udGV4dFZr
LT5nZXRSZW5kZXJlcigpOworICAgIFJlbmRlcmVyVmsgKnJlbmRlcmVyID0gY29udGV4dC0+Z2V0
UmVuZGVyZXIoKTsKICAgICBBU1NFUlQoIW1WaXJ0dWFsQmxvY2sudmFsaWQoKSk7CiAgICAgQVNT
RVJUKCFtQnVmZmVyLnZhbGlkKCkpOwogICAgIEFTU0VSVCghbURldmljZU1lbW9yeS52YWxpZCgp
KTsKIAogICAgIG1WaXJ0dWFsQmxvY2tNdXRleC5pbml0KHJlbmRlcmVyLT5pc0FzeW5jQ29tbWFu
ZFF1ZXVlRW5hYmxlZCgpKTsKLSAgICBBTkdMRV9WS19UUlkoY29udGV4dFZrLCBtVmlydHVhbEJs
b2NrLmluaXQocmVuZGVyZXItPmdldERldmljZSgpLCBmbGFncywgc2l6ZSkpOworICAgIEFOR0xF
X1ZLX1RSWShjb250ZXh0LCBtVmlydHVhbEJsb2NrLmluaXQocmVuZGVyZXItPmdldERldmljZSgp
LCBmbGFncywgc2l6ZSkpOwogCiAgICAgbUJ1ZmZlciAgICAgICAgICAgICAgPSBzdGQ6Om1vdmUo
YnVmZmVyKTsKICAgICBtRGV2aWNlTWVtb3J5ICAgICAgICA9IHN0ZDo6bW92ZShkZXZpY2VNZW1v
cnkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3Jl
bmRlcmVyL3Z1bGthbi92a191dGlscy5oIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xp
YkFOR0xFL3JlbmRlcmVyL3Z1bGthbi92a191dGlscy5oCmluZGV4IDFhY2E5ZDAzYWU4NWFjOWU0
Zjk2OWNkMTZjZmMxNDg1NjdiYTIxYmUuLjM4NmZiNjhmNGNmYjljZGJlOGFiOWI3Mjg5YTE3NDQz
NjQ3MzgyMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdM
RS9yZW5kZXJlci92dWxrYW4vdmtfdXRpbHMuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdM
RS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvdnVsa2FuL3ZrX3V0aWxzLmgKQEAgLTQ2NiwxOCArNDY2
LDYgQEAgYW5nbGU6OlJlc3VsdCBBbGxvY2F0ZUJ1ZmZlck1lbW9yeVdpdGhSZXF1aXJlbWVudHMo
Q29udGV4dCAqY29udGV4dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEJ1ZmZlciAqYnVmZmVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgVmtNZW1vcnlQcm9wZXJ0eUZsYWdzICptZW1vcnlQcm9w
ZXJ0eUZsYWdzT3V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgRGV2aWNlTWVtb3J5ICpkZXZpY2VNZW1vcnlPdXQpOwotY2xhc3MgQnVmZmVyUG9v
bDsKLXN0YXRpYyBjb25zdGV4cHIgVmtEZXZpY2VTaXplIGtNYXhTaXplVG9Vc2VTbWFsbEJ1ZmZl
clBvb2wgPSAyNTY7Ci11c2luZyBCdWZmZXJQb29sUG9pbnRlckFycmF5ID0gc3RkOjphcnJheTxz
dGQ6OnVuaXF1ZV9wdHI8QnVmZmVyUG9vbD4sIFZLX01BWF9NRU1PUllfVFlQRVM+OwotQnVmZmVy
UG9vbCAqR2V0RGVmYXVsdEJ1ZmZlclBvb2woc3RkOjp1bmlxdWVfcHRyPHZrOjpCdWZmZXJQb29s
PiAmc21hbGxCdWZmZXJQb29sLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdms6
OkJ1ZmZlclBvb2xQb2ludGVyQXJyYXkgJmRlZmF1bHRCdWZmZXJQb29scywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFJlbmRlcmVyVmsgKnJlbmRlcmVyLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgVmtEZXZpY2VTaXplIHNpemUsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB1aW50MzJfdCBtZW1vcnlUeXBlSW5kZXgpOwotdm9pZCBQcnVuZURl
ZmF1bHRCdWZmZXJQb29scyhSZW5kZXJlclZrICpyZW5kZXJlciwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgQnVmZmVyUG9vbFBvaW50ZXJBcnJheSAmZGVmYXVsdEJ1ZmZlclBvb2xzLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8dms6OkJ1ZmZlclBv
b2w+ICZzbWFsbEJ1ZmZlclBvb2wpOwotYm9vbCBJc0R1ZUZvckJ1ZmZlclBvb2xQcnVuZShkb3Vi
bGUgbGFzdFBydW5lVGltZSk7CiAKIHVzaW5nIFNoYWRlckFuZFNlcmlhbCA9IE9iamVjdEFuZFNl
cmlhbDxTaGFkZXJNb2R1bGU+OwogCkBAIC05MTgsNyArOTA2LDcgQEAgY2xhc3MgQnVmZmVyQmxv
Y2sgZmluYWwgOiBhbmdsZTo6Tm9uQ29weWFibGUKICAgICB+QnVmZmVyQmxvY2soKTsKIAogICAg
IHZvaWQgZGVzdHJveShSZW5kZXJlclZrICpyZW5kZXJlcik7Ci0gICAgYW5nbGU6OlJlc3VsdCBp
bml0KENvbnRleHRWayAqY29udGV4dFZrLAorICAgIGFuZ2xlOjpSZXN1bHQgaW5pdChDb250ZXh0
ICpjb250ZXh0LAogICAgICAgICAgICAgICAgICAgICAgICBCdWZmZXIgJmJ1ZmZlciwKICAgICAg
ICAgICAgICAgICAgICAgICAgdm1hOjpWaXJ0dWFsQmxvY2tDcmVhdGVGbGFncyBmbGFncywKICAg
ICAgICAgICAgICAgICAgICAgICAgRGV2aWNlTWVtb3J5ICZkZXZpY2VNZW1vcnksCkBAIC0xMzMx
LDYgKzEzMTksOSBAQCB2b2lkIEluaXRFeHRlcm5hbFNlbWFwaG9yZUNhcGFiaWxpdGllc0Z1bmN0
aW9ucyhWa0luc3RhbmNlIGluc3RhbmNlKTsKIC8vIFZLX0tIUl9zaGFyZWRfcHJlc2VudGFibGVf
aW1hZ2UKIHZvaWQgSW5pdEdldFN3YXBjaGFpblN0YXR1c0tIUkZ1bmN0aW9ucyhWa0RldmljZSBk
ZXZpY2UpOwogCisvLyBWS19LSFJfZnJhZ21lbnRfc2hhZGluZ19yYXRlCit2b2lkIEluaXRGcmFn
bWVudFNoYWRpbmdSYXRlS0hSRnVuY3Rpb25zKFZrRGV2aWNlIGRldmljZSk7CisKICNlbmRpZiAg
Ly8gIWRlZmluZWQoQU5HTEVfU0hBUkVEX0xJQlZVTEtBTikKIAogR0xlbnVtIENhbGN1bGF0ZUdl
bmVyYXRlTWlwbWFwRmlsdGVyKENvbnRleHRWayAqY29udGV4dFZrLCBhbmdsZTo6Rm9ybWF0SUQg
Zm9ybWF0SUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFO
R0xFL3JlbmRlcmVyL3Z1bGthbi92a193cmFwcGVyLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdM
RS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvdnVsa2FuL3ZrX3dyYXBwZXIuaAppbmRleCAwN2EzMDk0
ZTk3MDY0MTc5NDA3NzkxNWI2YzU4ZTc2MjQ2MzcyMjgyLi4xOTM4MzQ5Mjk3ODk1OTRiNjA0NThl
ZmZlYzYyMWNiYzQ4NTQ3ZmY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9z
cmMvbGliQU5HTEUvcmVuZGVyZXIvdnVsa2FuL3ZrX3dyYXBwZXIuaAorKysgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvdnVsa2FuL3ZrX3dyYXBwZXIuaApA
QCAtMzQ0LDYgKzM0NCw3IEBAIGNsYXNzIENvbW1hbmRCdWZmZXIgOiBwdWJsaWMgV3JhcHBlZE9i
amVjdDxDb21tYW5kQnVmZmVyLCBWa0NvbW1hbmRCdWZmZXI+CiAgICAgdm9pZCB3cml0ZVRpbWVz
dGFtcChWa1BpcGVsaW5lU3RhZ2VGbGFnQml0cyBwaXBlbGluZVN0YWdlLAogICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgUXVlcnlQb29sICZxdWVyeVBvb2wsCiAgICAgICAgICAgICAgICAg
ICAgICAgICB1aW50MzJfdCBxdWVyeSk7CisgICAgdm9pZCBzZXRTaGFkaW5nUmF0ZShjb25zdCBW
a0V4dGVudDJEICpmcmFnbWVudFNpemUsIFZrRnJhZ21lbnRTaGFkaW5nUmF0ZUNvbWJpbmVyT3BL
SFIgb3BzWzJdKTsKIAogICAgIC8vIFZLX0VYVF90cmFuc2Zvcm1fZmVlZGJhY2sKICAgICB2b2lk
IGJlZ2luVHJhbnNmb3JtRmVlZGJhY2sodWludDMyX3QgZmlyc3RDb3VudGVyQnVmZmVyLApAQCAt
MTAzNCw2ICsxMDM1LDEzIEBAIEFOR0xFX0lOTElORSB2b2lkIENvbW1hbmRCdWZmZXI6OndyaXRl
VGltZXN0YW1wKFZrUGlwZWxpbmVTdGFnZUZsYWdCaXRzIHBpcGVsaW5lCiAgICAgdmtDbWRXcml0
ZVRpbWVzdGFtcChtSGFuZGxlLCBwaXBlbGluZVN0YWdlLCBxdWVyeVBvb2wuZ2V0SGFuZGxlKCks
IHF1ZXJ5KTsKIH0KIAorQU5HTEVfSU5MSU5FIHZvaWQgQ29tbWFuZEJ1ZmZlcjo6c2V0U2hhZGlu
Z1JhdGUoY29uc3QgVmtFeHRlbnQyRCAqZnJhZ21lbnRTaXplLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmtGcmFnbWVudFNoYWRpbmdSYXRlQ29tYmlu
ZXJPcEtIUiBvcHNbMl0pCit7CisgICAgQVNTRVJUKHZhbGlkKCkgJiYgZnJhZ21lbnRTaXplICE9
IG51bGxwdHIpOworICAgIHZrQ21kU2V0RnJhZ21lbnRTaGFkaW5nUmF0ZUtIUihtSGFuZGxlLCBm
cmFnbWVudFNpemUsIG9wcyk7Cit9CisKIEFOR0xFX0lOTElORSB2b2lkIENvbW1hbmRCdWZmZXI6
OmRyYXcodWludDMyX3QgdmVydGV4Q291bnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHVpbnQzMl90IGluc3RhbmNlQ291bnQsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHVpbnQzMl90IGZpcnN0VmVydGV4LApkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3ZhbGlkYXRpb25FR0wuY3BwIGIvU291cmNl
L1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3ZhbGlkYXRpb25FR0wuY3BwCmluZGV4IDQ3
MjQwNWQ1YjJiNDE4ZmFkZGZmZGUxYTE4OWUxZDI5NGYwMTU1ZTMuLjkzZmI5NDk4YTdlZGViNTg2
YjFlOGQ5MmEyNWM0M2M0ODFkNDdiZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FO
R0xFL3NyYy9saWJBTkdMRS92YWxpZGF0aW9uRUdMLmNwcAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9BTkdMRS9zcmMvbGliQU5HTEUvdmFsaWRhdGlvbkVHTC5jcHAKQEAgLTU1OCwzODMgKzU1OCwz
OTMgQEAgYm9vbCBWYWxpZGF0ZUdldFBsYXRmb3JtRGlzcGxheUNvbW1vbihjb25zdCBWYWxpZGF0
aW9uQ29udGV4dCAqdmFsLAogCiAgICAgYXR0cmliTWFwLmluaXRpYWxpemVXaXRob3V0VmFsaWRh
dGlvbigpOwogCi0gICAgaWYgKHBsYXRmb3JtID09IEVHTF9QTEFURk9STV9BTkdMRV9BTkdMRSkK
KyAgICBzd2l0Y2ggKHBsYXRmb3JtKQogICAgIHsKLSAgICAgICAgRUdMQXR0cmliIHBsYXRmb3Jt
VHlwZSAgICAgICA9IEVHTF9QTEFURk9STV9BTkdMRV9UWVBFX0RFRkFVTFRfQU5HTEU7Ci0gICAg
ICAgIGJvb2wgZW5hYmxlQXV0b1RyaW1TcGVjaWZpZWQgPSBmYWxzZTsKLSAgICAgICAgYm9vbCBl
bmFibGVEM0QxMW9uMTIgICAgICAgICA9IGZhbHNlOwotICAgICAgICBib29sIHByZXNlbnRQYXRo
U3BlY2lmaWVkICAgID0gZmFsc2U7Ci0gICAgICAgIGJvb2wgbHVpZFNwZWNpZmllZCAgICAgICAg
ICAgPSBmYWxzZTsKLSAgICAgICAgYm9vbCBkZXZpY2VJZFNwZWNpZmllZCAgICAgICA9IGZhbHNl
OwotCi0gICAgICAgIE9wdGlvbmFsPEVHTEF0dHJpYj4gbWFqb3JWZXJzaW9uOwotICAgICAgICBP
cHRpb25hbDxFR0xBdHRyaWI+IG1pbm9yVmVyc2lvbjsKLSAgICAgICAgT3B0aW9uYWw8RUdMQXR0
cmliPiBkZXZpY2VUeXBlOwotICAgICAgICBPcHRpb25hbDxFR0xBdHRyaWI+IGVnbEhhbmRsZTsK
LQotICAgICAgICBmb3IgKGNvbnN0IGF1dG8gJmN1ckF0dHJpYiA6IGF0dHJpYk1hcCkKKyAgICAg
ICAgY2FzZSBFR0xfUExBVEZPUk1fQU5HTEVfQU5HTEU6CiAgICAgICAgIHsKLSAgICAgICAgICAg
IGNvbnN0IEVHTEF0dHJpYiB2YWx1ZSA9IGN1ckF0dHJpYi5zZWNvbmQ7CisgICAgICAgICAgICBF
R0xBdHRyaWIgcGxhdGZvcm1UeXBlICAgICAgID0gRUdMX1BMQVRGT1JNX0FOR0xFX1RZUEVfREVG
QVVMVF9BTkdMRTsKKyAgICAgICAgICAgIGJvb2wgZW5hYmxlQXV0b1RyaW1TcGVjaWZpZWQgPSBm
YWxzZTsKKyAgICAgICAgICAgIGJvb2wgZW5hYmxlRDNEMTFvbjEyICAgICAgICAgPSBmYWxzZTsK
KyAgICAgICAgICAgIGJvb2wgcHJlc2VudFBhdGhTcGVjaWZpZWQgICAgPSBmYWxzZTsKKyAgICAg
ICAgICAgIGJvb2wgbHVpZFNwZWNpZmllZCAgICAgICAgICAgPSBmYWxzZTsKKyAgICAgICAgICAg
IGJvb2wgZGV2aWNlSWRTcGVjaWZpZWQgICAgICAgPSBmYWxzZTsKIAotICAgICAgICAgICAgc3dp
dGNoIChjdXJBdHRyaWIuZmlyc3QpCisgICAgICAgICAgICBPcHRpb25hbDxFR0xBdHRyaWI+IG1h
am9yVmVyc2lvbjsKKyAgICAgICAgICAgIE9wdGlvbmFsPEVHTEF0dHJpYj4gbWlub3JWZXJzaW9u
OworICAgICAgICAgICAgT3B0aW9uYWw8RUdMQXR0cmliPiBkZXZpY2VUeXBlOworICAgICAgICAg
ICAgT3B0aW9uYWw8RUdMQXR0cmliPiBlZ2xIYW5kbGU7CisKKyAgICAgICAgICAgIGZvciAoY29u
c3QgYXV0byAmY3VyQXR0cmliIDogYXR0cmliTWFwKQogICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgIGNhc2UgRUdMX1BMQVRGT1JNX0FOR0xFX1RZUEVfQU5HTEU6Ci0gICAgICAgICAgICAg
ICAgewotICAgICAgICAgICAgICAgICAgICBBTkdMRV9WQUxJREFUSU9OX1RSWShWYWxpZGF0ZVBs
YXRmb3JtVHlwZSh2YWwsIGNsaWVudEV4dGVuc2lvbnMsIHZhbHVlKSk7Ci0gICAgICAgICAgICAg
ICAgICAgIHBsYXRmb3JtVHlwZSA9IHZhbHVlOwotICAgICAgICAgICAgICAgICAgICBicmVhazsK
LSAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY29uc3QgRUdMQXR0cmliIHZhbHVl
ID0gY3VyQXR0cmliLnNlY29uZDsKIAotICAgICAgICAgICAgICAgIGNhc2UgRUdMX1BMQVRGT1JN
X0FOR0xFX01BWF9WRVJTSU9OX01BSk9SX0FOR0xFOgotICAgICAgICAgICAgICAgICAgICBpZiAo
dmFsdWUgIT0gRUdMX0RPTlRfQ0FSRSkKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKGN1ckF0dHJp
Yi5maXJzdCkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgRUdM
X1BMQVRGT1JNX0FOR0xFX1RZUEVfQU5HTEU6CiAgICAgICAgICAgICAgICAgICAgIHsKLSAgICAg
ICAgICAgICAgICAgICAgICAgIG1ham9yVmVyc2lvbiA9IHZhbHVlOworICAgICAgICAgICAgICAg
ICAgICAgICAgQU5HTEVfVkFMSURBVElPTl9UUlkoVmFsaWRhdGVQbGF0Zm9ybVR5cGUodmFsLCBj
bGllbnRFeHRlbnNpb25zLCB2YWx1ZSkpOworICAgICAgICAgICAgICAgICAgICAgICAgcGxhdGZv
cm1UeXBlID0gdmFsdWU7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBicmVhazsKIAotICAgICAgICAgICAg
ICAgIGNhc2UgRUdMX1BMQVRGT1JNX0FOR0xFX01BWF9WRVJTSU9OX01JTk9SX0FOR0xFOgotICAg
ICAgICAgICAgICAgICAgICBpZiAodmFsdWUgIT0gRUdMX0RPTlRfQ0FSRSkKLSAgICAgICAgICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgbWlub3JWZXJzaW9uID0gdmFsdWU7
Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICAgICAgICAgIGNhc2UgRUdMX1BMQVRGT1JNX0FOR0xFX01BWF9WRVJTSU9OX01BSk9S
X0FOR0xFOgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlICE9IEVHTF9ET05UX0NB
UkUpCisgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbWFqb3JWZXJzaW9uID0gdmFsdWU7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgICAgICAgICBicmVhazsKIAotICAgICAgICAgICAgICAgIGNhc2UgRUdMX1BM
QVRGT1JNX0FOR0xFX0VOQUJMRV9BVVRPTUFUSUNfVFJJTV9BTkdMRToKLSAgICAgICAgICAgICAg
ICAgICAgc3dpdGNoICh2YWx1ZSkKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgICAgICAgICAgY2FzZSBFR0xfVFJVRToKLSAgICAgICAgICAgICAgICAgICAgICAgIGNhc2Ug
RUdMX0ZBTFNFOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAg
ICAgICAgICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWwt
PnNldEVycm9yKEVHTF9CQURfQVRUUklCVVRFLCAiSW52YWxpZCBhdXRvbWF0aWMgdHJpbSBhdHRy
aWJ1dGUiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgZW5hYmxlQXV0b1RyaW1TcGVj
aWZpZWQgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAg
ICAgICAgY2FzZSBFR0xfUExBVEZPUk1fQU5HTEVfTUFYX1ZFUlNJT05fTUlOT1JfQU5HTEU6Cisg
ICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgIT0gRUdMX0RPTlRfQ0FSRSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW5vclZl
cnNpb24gPSB2YWx1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOwogCi0gICAgICAgICAgICAgICAgY2FzZSBFR0xfUExBVEZPUk1fQU5H
TEVfRDNEMTFPTjEyX0FOR0xFOgotICAgICAgICAgICAgICAgICAgICBpZiAoIWNsaWVudEV4dGVu
c2lvbnMucGxhdGZvcm1BTkdMRUQzRCB8fAotICAgICAgICAgICAgICAgICAgICAgICAgIWNsaWVu
dEV4dGVuc2lvbnMucGxhdGZvcm1BTkdMRUQzRDExT04xMikKLSAgICAgICAgICAgICAgICAgICAg
ewotICAgICAgICAgICAgICAgICAgICAgICAgdmFsLT5zZXRFcnJvcihFR0xfQkFEX0FUVFJJQlVU
RSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkVHTF9QTEFURk9STV9B
TkdMRV9EM0QxMU9OMTJfQU5HTEUgZXh0ZW5zaW9uIG5vdCBhY3RpdmUuIik7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICAgICAgY2FzZSBFR0xfUExBVEZPUk1fQU5HTEVfRU5BQkxFX0FVVE9NQVRJQ19U
UklNX0FOR0xFOgorICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoICh2YWx1ZSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIEVH
TF9UUlVFOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgRUdMX0ZBTFNFOgorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWwtPnNl
dEVycm9yKEVHTF9CQURfQVRUUklCVVRFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJJbnZhbGlkIGF1dG9tYXRpYyB0cmltIGF0dHJpYnV0ZSIpOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBlbmFibGVBdXRvVHJpbVNwZWNp
ZmllZCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKIAotICAgICAgICAg
ICAgICAgICAgICBzd2l0Y2ggKHZhbHVlKQotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBjYXNlIEVHTF9UUlVFOgotICAgICAgICAgICAgICAgICAgICAgICAg
Y2FzZSBFR0xfRkFMU0U6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHZhbC0+c2V0RXJyb3IoRUdMX0JBRF9BVFRSSUJVVEUsICJJbnZhbGlkIEQzRDExb24xMiBhdHRy
aWJ1dGUiKTsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBFR0xfUExBVEZPUk1fQU5HTEVfRDNE
MTFPTjEyX0FOR0xFOgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFjbGllbnRFeHRlbnNp
b25zLnBsYXRmb3JtQU5HTEVEM0QgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAhY2xp
ZW50RXh0ZW5zaW9ucy5wbGF0Zm9ybUFOR0xFRDNEMTFPTjEyKQorICAgICAgICAgICAgICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbC0+c2V0RXJyb3IoCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVHTF9CQURfQVRUUklCVVRFLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiRUdMX1BMQVRGT1JNX0FOR0xFX0QzRDExT04xMl9BTkdM
RSBleHRlbnNpb24gbm90IGFjdGl2ZS4iKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAg
ZW5hYmxlRDNEMTFvbjEyID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICBjYXNlIEVHTF9FWFBFUklN
RU5UQUxfUFJFU0VOVF9QQVRIX0FOR0xFOgotICAgICAgICAgICAgICAgICAgICBpZiAoIWNsaWVu
dEV4dGVuc2lvbnMuZXhwZXJpbWVudGFsUHJlc2VudFBhdGgpCi0gICAgICAgICAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHZhbC0+c2V0RXJyb3IoRUdMX0JBRF9BVFRSSUJV
VEUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFR0xfQU5HTEVfZXhw
ZXJpbWVudGFsX3ByZXNlbnRfcGF0aCBleHRlbnNpb24gbm90IGFjdGl2ZSIpOwotICAgICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKHZhbHVlKQorICAgICAgICAgICAgICAgICAgICAg
ICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgRUdMX1RSVUU6CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY2FzZSBFR0xfRkFMU0U6CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbC0+c2V0RXJyb3IoRUdMX0JBRF9B
VFRSSUJVVEUsICJJbnZhbGlkIEQzRDExb24xMiBhdHRyaWJ1dGUiKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgICAgICAgICAgZW5hYmxlRDNEMTFvbjEyID0gdHJ1ZTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGJyZWFrOwogCi0gICAgICAgICAgICAgICAgICAgIHN3aXRjaCAo
dmFsdWUpCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGNh
c2UgRUdMX0VYUEVSSU1FTlRBTF9QUkVTRU5UX1BBVEhfRkFTVF9BTkdMRToKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGNhc2UgRUdMX0VYUEVSSU1FTlRBTF9QUkVTRU5UX1BBVEhfQ09QWV9BTkdM
RToKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsLT5zZXRFcnJv
cihFR0xfQkFEX0FUVFJJQlVURSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJJbnZhbGlkIHZhbHVlIGZvciBFR0xfRVhQRVJJTUVOVEFMX1BSRVNFTlRfUEFUSF9B
TkdMRSIpOworICAgICAgICAgICAgICAgICAgICBjYXNlIEVHTF9FWFBFUklNRU5UQUxfUFJFU0VO
VF9QQVRIX0FOR0xFOgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFjbGllbnRFeHRlbnNp
b25zLmV4cGVyaW1lbnRhbFByZXNlbnRQYXRoKQorICAgICAgICAgICAgICAgICAgICAgICAgewor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbC0+c2V0RXJyb3IoCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEVHTF9CQURfQVRUUklCVVRFLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiRUdMX0FOR0xFX2V4cGVyaW1lbnRhbF9wcmVzZW50X3BhdGggZXh0ZW5z
aW9uIG5vdCBhY3RpdmUiKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgcHJlc2VudFBh
dGhTcGVjaWZpZWQgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICBicmVhazsKLQotICAgICAg
ICAgICAgICAgIGNhc2UgRUdMX1BMQVRGT1JNX0FOR0xFX0RFVklDRV9UWVBFX0FOR0xFOgotICAg
ICAgICAgICAgICAgICAgICBzd2l0Y2ggKHZhbHVlKQotICAgICAgICAgICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICBjYXNlIEVHTF9QTEFURk9STV9BTkdMRV9ERVZJQ0VfVFlQ
RV9IQVJEV0FSRV9BTkdMRToKLSAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgRUdMX1BMQVRG
T1JNX0FOR0xFX0RFVklDRV9UWVBFX05VTExfQU5HTEU6Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7Ci0KLSAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgRUdMX1BMQVRGT1JN
X0FOR0xFX0RFVklDRV9UWVBFX0QzRF9XQVJQX0FOR0xFOgotICAgICAgICAgICAgICAgICAgICAg
ICAgY2FzZSBFR0xfUExBVEZPUk1fQU5HTEVfREVWSUNFX1RZUEVfRDNEX1JFRkVSRU5DRV9BTkdM
RToKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWNsaWVudEV4dGVuc2lvbnMucGxh
dGZvcm1BTkdMRUQzRCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHZhbC0+c2V0RXJyb3IoRUdMX0JBRF9BVFRSSUJVVEUsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkVHTF9BTkdMRV9w
bGF0Zm9ybV9hbmdsZV9kM2QgaXMgbm90IHN1cHBvcnRlZCIpOwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAg
ICAgICAgfQogCi0gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIEVHTF9QTEFURk9STV9BTkdM
RV9ERVZJQ0VfVFlQRV9FR0xfQU5HTEU6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KCFjbGllbnRFeHRlbnNpb25zLnBsYXRmb3JtQU5HTEVEZXZpY2VUeXBlRUdMQU5HTEUpCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB2YWwtPnNldEVycm9yKEVHTF9CQURfQVRUUklCVVRFLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJFR0xfQU5HTEVfcGxhdGZvcm1fYW5nbGVfZGV2aWNl
X3R5cGVfIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJl
Z2xfYW5nbGUgaXMgbm90IHN1cHBvcnRlZCIpOworICAgICAgICAgICAgICAgICAgICAgICAgc3dp
dGNoICh2YWx1ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjYXNlIEVHTF9FWFBFUklNRU5UQUxfUFJFU0VOVF9QQVRIX0ZBU1RfQU5HTEU6
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBFR0xfRVhQRVJJTUVOVEFMX1BSRVNF
TlRfUEFUSF9DT1BZX0FOR0xFOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB2YWwtPnNldEVycm9yKAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgRUdMX0JBRF9BVFRSSUJVVEUsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiSW52YWxpZCB2YWx1ZSBmb3IgRUdMX0VYUEVSSU1FTlRBTF9QUkVTRU5UX1BB
VEhfQU5HTEUiKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgICAgIHByZXNlbnRQYXRoU3BlY2lmaWVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOwogCi0gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIEVHTF9QTEFURk9STV9B
TkdMRV9ERVZJQ0VfVFlQRV9TV0lGVFNIQURFUl9BTkdMRToKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAoIWNsaWVudEV4dGVuc2lvbnMucGxhdGZvcm1BTkdMRURldmljZVR5cGVTd2lm
dFNoYWRlcikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
ICAgIGNhc2UgRUdMX1BMQVRGT1JNX0FOR0xFX0RFVklDRV9UWVBFX0FOR0xFOgorICAgICAgICAg
ICAgICAgICAgICAgICAgc3dpdGNoICh2YWx1ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIEVHTF9QTEFURk9STV9BTkdMRV9ERVZJ
Q0VfVFlQRV9IQVJEV0FSRV9BTkdMRToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNl
IEVHTF9QTEFURk9STV9BTkdMRV9ERVZJQ0VfVFlQRV9OVUxMX0FOR0xFOgorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNhc2UgRUdMX1BMQVRGT1JNX0FOR0xFX0RFVklDRV9UWVBFX0QzRF9XQVJQX0FOR0xFOgorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgRUdMX1BMQVRGT1JNX0FOR0xFX0RFVklDRV9U
WVBFX0QzRF9SRUZFUkVOQ0VfQU5HTEU6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGlmICghY2xpZW50RXh0ZW5zaW9ucy5wbGF0Zm9ybUFOR0xFRDNEKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2
YWwtPnNldEVycm9yKEVHTF9CQURfQVRUUklCVVRFLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiRUdMX0FOR0xFX3BsYXRmb3JtX2FuZ2xlX2QzZCBp
cyBub3Qgc3VwcG9ydGVkIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjYXNlIEVHTF9QTEFURk9STV9BTkdMRV9ERVZJQ0VfVFlQRV9FR0xfQU5HTEU6CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghY2xpZW50RXh0ZW5zaW9ucy5wbGF0Zm9y
bUFOR0xFRGV2aWNlVHlwZUVHTEFOR0xFKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWwtPnNldEVycm9yKEVH
TF9CQURfQVRUUklCVVRFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiRUdMX0FOR0xFX3BsYXRmb3JtX2FuZ2xlX2RldmljZV90eXBlXyIKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImVnbF9hbmdsZSBp
cyBub3Qgc3VwcG9ydGVkIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjYXNlIEVHTF9QTEFURk9STV9BTkdMRV9ERVZJQ0VfVFlQRV9TV0lGVFNIQURFUl9BTkdM
RToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFjbGllbnRFeHRlbnNpb25z
LnBsYXRmb3JtQU5HTEVEZXZpY2VUeXBlU3dpZnRTaGFkZXIpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbC0+
c2V0RXJyb3IoRUdMX0JBRF9BVFRSSUJVVEUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJFR0xfQU5HTEVfcGxhdGZvcm1fYW5nbGVfZGV2aWNlX3R5
cGVfIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
c3dpZnRzaGFkZXIgaXMgbm90IHN1cHBvcnRlZCIpOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdmFsLT5zZXRFcnJvcihFR0xfQkFEX0FUVFJJQlVURSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiRUdMX0FOR0xFX3BsYXRmb3JtX2FuZ2xlX2Rldmlj
ZV90eXBlXyIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
c3dpZnRzaGFkZXIgaXMgbm90IHN1cHBvcnRlZCIpOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJJbnZhbGlkIHZhbHVlIGZvciAiCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkVHTF9QTEFURk9STV9BTkdMRV9ERVZJ
Q0VfVFlQRV9BTkdMRSAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgImF0dHJpYiIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICAgICAgZGV2aWNlVHlwZSA9IHZhbHVlOworICAgICAgICAgICAgICAgICAgICAgICAg
YnJlYWs7CiAKLSAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAg
ICAgICAgIGNhc2UgRUdMX1BMQVRGT1JNX0FOR0xFX0RFQlVHX0xBWUVSU19FTkFCTEVEX0FOR0xF
OgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFjbGllbnRFeHRlbnNpb25zLnBsYXRmb3Jt
QU5HTEUpCisgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdmFsLT5zZXRFcnJvcihFR0xfQkFEX0FUVFJJQlVURSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJJbnZhbGlkIHZhbHVlIGZvciAiCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRUdMX1BMQVRGT1JNX0FOR0xFX0RFVklD
RV9UWVBFX0FOR0xFICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJhdHRyaWIiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJF
R0xfQU5HTEVfcGxhdGZvcm1fYW5nbGUgZXh0ZW5zaW9uIG5vdCBhY3RpdmUiKTsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICAgICAgICAgZGV2aWNlVHlwZSA9IHZhbHVlOwotICAgICAgICAgICAgICAg
ICAgICBicmVhazsKLQotICAgICAgICAgICAgICAgIGNhc2UgRUdMX1BMQVRGT1JNX0FOR0xFX0RF
QlVHX0xBWUVSU19FTkFCTEVEX0FOR0xFOgotICAgICAgICAgICAgICAgICAgICBpZiAoIWNsaWVu
dEV4dGVuc2lvbnMucGxhdGZvcm1BTkdMRSkKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAg
ICAgICAgICAgICAgICAgICAgdmFsLT5zZXRFcnJvcihFR0xfQkFEX0FUVFJJQlVURSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkVHTF9BTkdMRV9wbGF0Zm9ybV9hbmds
ZSBleHRlbnNpb24gbm90IGFjdGl2ZSIpOwotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIGlmICh2
YWx1ZSAhPSBFR0xfVFJVRSAmJiB2YWx1ZSAhPSBFR0xfRkFMU0UgJiYgdmFsdWUgIT0gRUdMX0RP
TlRfQ0FSRSkKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAg
dmFsLT5zZXRFcnJvcihFR0xfQkFEX0FUVFJJQlVURSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIkVHTF9QTEFURk9STV9BTkdMRV9ERUJVR19MQVlFUlNfRU5BQkxFRF9B
TkdMRSAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtdXN0IGJlIEVH
TF9UUlVFLCBFR0xfRkFMU0UsIG9yICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIkVHTF9ET05UX0NBUkUuIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7
Ci0KLSAgICAgICAgICAgICAgICBjYXNlIEVHTF9QTEFURk9STV9BTkdMRV9FR0xfSEFORExFX0FO
R0xFOgotICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgIT0gRUdMX0RPTlRfQ0FSRSkKLSAg
ICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgZWdsSGFuZGxlID0g
dmFsdWU7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7
Ci0KLSAgICAgICAgICAgICAgICBjYXNlIEVHTF9QTEFURk9STV9BTkdMRV9EM0RfTFVJRF9ISUdI
X0FOR0xFOgotICAgICAgICAgICAgICAgIGNhc2UgRUdMX1BMQVRGT1JNX0FOR0xFX0QzRF9MVUlE
X0xPV19BTkdMRToKLSAgICAgICAgICAgICAgICAgICAgbHVpZFNwZWNpZmllZCA9IHRydWU7Ci0g
ICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGNhc2UgRUdMX1BMQVRG
T1JNX0FOR0xFX0RFVklDRV9DT05URVhUX1ZPTEFUSUxFX0VBR0xfQU5HTEU6Ci0gICAgICAgICAg
ICAgICAgICAgIC8vIFRoZSBwcm9wZXJ0eSBkb2VzIG5vdCBoYXZlIGFuIGVmZmVjdCBpZiBpdCdz
IG5vdCBhY3RpdmUsIHNvIGRvIG5vdCBjaGVjawotICAgICAgICAgICAgICAgICAgICAvLyBmb3Ig
bm9uLXN1cHBvcnQuCi0gICAgICAgICAgICAgICAgICAgIHN3aXRjaCAodmFsdWUpCi0gICAgICAg
ICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgRUdMX0ZBTFNFOgot
ICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBFR0xfVFJVRToKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAg
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUg
IT0gRUdMX1RSVUUgJiYgdmFsdWUgIT0gRUdMX0ZBTFNFICYmIHZhbHVlICE9IEVHTF9ET05UX0NB
UkUpCisgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdmFsLT5zZXRFcnJvcihFR0xfQkFEX0FUVFJJQlVURSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJJbnZhbGlkIHZhbHVlIGZvciAiCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRUdMX1BMQVRGT1JNX0FOR0xFX0RFVklDRV9D
T05URVhUX1ZPTEFUSUxFXyIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJFQUdMX0FOR0xFIGF0dHJpYiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIkVHTF9QTEFURk9STV9BTkdMRV9ERUJVR19MQVlFUlNfRU5BQkxFRF9BTkdM
RSAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibXVzdCBiZSBF
R0xfVFJVRSwgRUdMX0ZBTFNFLCBvciAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiRUdMX0RPTlRfQ0FSRS4iKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgY2FzZSBFR0xfUExBVEZPUk1fQU5HTEVfREVWSUNF
X0NPTlRFWFRfVk9MQVRJTEVfQ0dMX0FOR0xFOgotICAgICAgICAgICAgICAgICAgICAvLyBUaGUg
cHJvcGVydHkgZG9lcyBub3QgaGF2ZSBhbiBlZmZlY3QgaWYgaXQncyBub3QgYWN0aXZlLCBzbyBk
byBub3QgY2hlY2sKLSAgICAgICAgICAgICAgICAgICAgLy8gZm9yIG5vbi1zdXBwb3J0LgotICAg
ICAgICAgICAgICAgICAgICBzd2l0Y2ggKHZhbHVlKQotICAgICAgICAgICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICBjYXNlIEVHTF9GQUxTRToKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGNhc2UgRUdMX1RSVUU6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAg
ICAgY2FzZSBFR0xfUExBVEZPUk1fQU5HTEVfRUdMX0hBTkRMRV9BTkdMRToKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGlmICh2YWx1ZSAhPSBFR0xfRE9OVF9DQVJFKQorICAgICAgICAgICAgICAg
ICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVnbEhhbmRsZSA9IHZhbHVl
OworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYnJl
YWs7CisKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBFR0xfUExBVEZPUk1fQU5HTEVfRDNEX0xV
SURfSElHSF9BTkdMRToKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBFR0xfUExBVEZPUk1fQU5H
TEVfRDNEX0xVSURfTE9XX0FOR0xFOgorICAgICAgICAgICAgICAgICAgICAgICAgbHVpZFNwZWNp
ZmllZCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
ICAgICAgICAgY2FzZSBFR0xfUExBVEZPUk1fQU5HTEVfREVWSUNFX0NPTlRFWFRfVk9MQVRJTEVf
RUFHTF9BTkdMRToKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSBwcm9wZXJ0eSBkb2Vz
IG5vdCBoYXZlIGFuIGVmZmVjdCBpZiBpdCdzIG5vdCBhY3RpdmUsIHNvIGRvIG5vdCBjaGVjawor
ICAgICAgICAgICAgICAgICAgICAgICAgLy8gZm9yIG5vbi1zdXBwb3J0LgorICAgICAgICAgICAg
ICAgICAgICAgICAgc3dpdGNoICh2YWx1ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIEVHTF9GQUxTRToKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjYXNlIEVHTF9UUlVFOgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB2YWwtPnNldEVycm9yKEVHTF9CQURfQVRUUklCVVRF
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJbnZhbGlk
IHZhbHVlIGZvciAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIkVHTF9QTEFURk9STV9BTkdMRV9ERVZJQ0VfQ09OVEVYVF9WT0xBVElMRV8iCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkVBR0xfQU5HTEUgYXR0cmli
Iik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgICAgICAgICBjYXNlIEVHTF9QTEFURk9STV9BTkdMRV9ERVZJQ0VfQ09OVEVYVF9W
T0xBVElMRV9DR0xfQU5HTEU6CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUgcHJvcGVy
dHkgZG9lcyBub3QgaGF2ZSBhbiBlZmZlY3QgaWYgaXQncyBub3QgYWN0aXZlLCBzbyBkbyBub3Qg
Y2hlY2sKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZvciBub24tc3VwcG9ydC4KKyAgICAg
ICAgICAgICAgICAgICAgICAgIHN3aXRjaCAodmFsdWUpCisgICAgICAgICAgICAgICAgICAgICAg
ICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBFR0xfRkFMU0U6CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY2FzZSBFR0xfVFJVRToKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsLT5zZXRFcnJvcihFR0xfQkFEX0FU
VFJJQlVURSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
SW52YWxpZCB2YWx1ZSBmb3IgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJFR0xfUExBVEZPUk1fQU5HTEVfREVWSUNFX0NPTlRFWFRfVk9MQVRJTEVfIgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDR0xfQU5HTEUg
YXR0cmliIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgICAgICAgICBjYXNlIEVHTF9QTEFURk9STV9BTkdMRV9ERVZJQ0VfSURf
SElHSF9BTkdMRToKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBFR0xfUExBVEZPUk1fQU5HTEVf
REVWSUNFX0lEX0xPV19BTkdMRToKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICghY2xpZW50
RXh0ZW5zaW9ucy5wbGF0Zm9ybUFOR0xFRGV2aWNlSWQpCisgICAgICAgICAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsLT5zZXRFcnJvcihFR0xfQkFEX0FU
VFJJQlVURSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJbnZh
bGlkIHZhbHVlIGZvciAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiRUdMX1BMQVRGT1JNX0FOR0xFX0RFVklDRV9DT05URVhUX1ZPTEFUSUxFXyIKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDR0xfQU5HTEUgYXR0cmliIik7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRUdMX0FOR0xFX3BsYXRm
b3JtX2FuZ2xlX2RldmljZV9pZCBpcyBub3Qgc3VwcG9ydGVkIik7CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGNhc2UgRUdMX1BMQVRGT1JNX0FO
R0xFX0RFVklDRV9JRF9ISUdIX0FOR0xFOgotICAgICAgICAgICAgICAgIGNhc2UgRUdMX1BMQVRG
T1JNX0FOR0xFX0RFVklDRV9JRF9MT1dfQU5HTEU6Ci0gICAgICAgICAgICAgICAgICAgIGlmICgh
Y2xpZW50RXh0ZW5zaW9ucy5wbGF0Zm9ybUFOR0xFRGV2aWNlSWQpCi0gICAgICAgICAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHZhbC0+c2V0RXJyb3IoRUdMX0JBRF9BVFRS
SUJVVEUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFR0xfQU5HTEVf
cGxhdGZvcm1fYW5nbGVfZGV2aWNlX2lkIGlzIG5vdCBzdXBwb3J0ZWQiKTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgICAgICBkZXZpY2VJZFNwZWNpZmllZCA9IHRydWU7Ci0gICAgICAgICAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAg
ICAgZGV2aWNlSWRTcGVjaWZpZWQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9Ci0gICAgICAgIH0KLQot
ICAgICAgICBpZiAoIW1ham9yVmVyc2lvbi52YWxpZCgpICYmIG1pbm9yVmVyc2lvbi52YWxpZCgp
KQotICAgICAgICB7Ci0gICAgICAgICAgICB2YWwtPnNldEVycm9yKEVHTF9CQURfQVRUUklCVVRF
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAiTXVzdCBzcGVjaWZ5IG1ham9yIHZlcnNpb24g
aWYgeW91IHNwZWNpZnkgYSBtaW5vciB2ZXJzaW9uLiIpOwotICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgICAgICB9CiAKLSAgICAgICAgaWYgKGRldmljZVR5cGUgPT0gRUdMX1BMQVRGT1JN
X0FOR0xFX0RFVklDRV9UWVBFX0QzRF9XQVJQX0FOR0xFICYmCi0gICAgICAgICAgICBwbGF0Zm9y
bVR5cGUgIT0gRUdMX1BMQVRGT1JNX0FOR0xFX1RZUEVfRDNEMTFfQU5HTEUpCi0gICAgICAgIHsK
LSAgICAgICAgICAgIHZhbC0+c2V0RXJyb3IoRUdMX0JBRF9BVFRSSUJVVEUsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICJFR0xfUExBVEZPUk1fQU5HTEVfREVWSUNFX1RZUEVfV0FSUF9BTkdM
RSByZXF1aXJlcyBhICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgImRldmljZSB0eXBlIG9m
IEVHTF9QTEFURk9STV9BTkdMRV9UWVBFX0QzRDExX0FOR0xFLiIpOwotICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKGVuYWJsZUF1dG9UcmltU3BlY2lm
aWVkICYmIHBsYXRmb3JtVHlwZSAhPSBFR0xfUExBVEZPUk1fQU5HTEVfVFlQRV9EM0QxMV9BTkdM
RSkKLSAgICAgICAgewotICAgICAgICAgICAgdmFsLT5zZXRFcnJvcihFR0xfQkFEX0FUVFJJQlVU
RSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIkVHTF9QTEFURk9STV9BTkdMRV9FTkFCTEVf
QVVUT01BVElDX1RSSU1fQU5HTEUgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAicmVxdWly
ZXMgYSBkZXZpY2UgdHlwZSBvZiAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICJFR0xfUExB
VEZPUk1fQU5HTEVfVFlQRV9EM0QxMV9BTkdMRS4iKTsKLSAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChlbmFibGVEM0QxMW9uMTIpCi0gICAgICAgIHsK
LSAgICAgICAgICAgIGlmIChwbGF0Zm9ybVR5cGUgIT0gRUdMX1BMQVRGT1JNX0FOR0xFX1RZUEVf
RDNEMTFfQU5HTEUpCisgICAgICAgICAgICBpZiAoIW1ham9yVmVyc2lvbi52YWxpZCgpICYmIG1p
bm9yVmVyc2lvbi52YWxpZCgpKQogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIHZhbC0+
c2V0RXJyb3IoRUdMX0JBRF9BVFRSSUJVVEUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiRUdMX1BMQVRGT1JNX0FOR0xFX0QzRDExT04xMl9BTkdMRSAiCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAicmVxdWlyZXMgYSBwbGF0Zm9ybSB0eXBlIG9mICIKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJFR0xfUExBVEZPUk1fQU5HTEVfVFlQRV9EM0QxMV9BTkdMRS4i
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNdXN0IHNwZWNpZnkgbWFqb3IgdmVy
c2lvbiBpZiB5b3Ugc3BlY2lmeSBhIG1pbm9yIHZlcnNpb24uIik7CiAgICAgICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBpZiAoZGV2aWNlVHlw
ZS52YWxpZCgpICYmIGRldmljZVR5cGUgIT0gRUdMX1BMQVRGT1JNX0FOR0xFX0RFVklDRV9UWVBF
X0hBUkRXQVJFX0FOR0xFICYmCi0gICAgICAgICAgICAgICAgZGV2aWNlVHlwZSAhPSBFR0xfUExB
VEZPUk1fQU5HTEVfREVWSUNFX1RZUEVfRDNEX1dBUlBfQU5HTEUpCisgICAgICAgICAgICBpZiAo
ZGV2aWNlVHlwZSA9PSBFR0xfUExBVEZPUk1fQU5HTEVfREVWSUNFX1RZUEVfRDNEX1dBUlBfQU5H
TEUgJiYKKyAgICAgICAgICAgICAgICBwbGF0Zm9ybVR5cGUgIT0gRUdMX1BMQVRGT1JNX0FOR0xF
X1RZUEVfRDNEMTFfQU5HTEUpCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgdmFsLT5z
ZXRFcnJvcihFR0xfQkFEX0FUVFJJQlVURSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJFR0xfUExBVEZPUk1fQU5HTEVfRDNEMTFPTjEyX0FOR0xFIHJlcXVpcmVzIGEgZGV2aWNlICIK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIG9mIEVHTF9QTEFURk9STV9BTkdM
RV9ERVZJQ0VfVFlQRV9IQVJEV0FSRV9BTkdMRSAiCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAib3IgRUdMX1BMQVRGT1JNX0FOR0xFX0RFVklDRV9UWVBFX0QzRF9XQVJQX0FOR0xFIik7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRUdMX1BMQVRGT1JNX0FOR0xFX0RFVklD
RV9UWVBFX1dBUlBfQU5HTEUgcmVxdWlyZXMgYSAiCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiZGV2aWNlIHR5cGUgb2YgRUdMX1BMQVRGT1JNX0FOR0xFX1RZUEVfRDNEMTFfQU5HTEUu
Iik7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgfQotICAgICAg
ICB9Ci0KLSAgICAgICAgaWYgKHByZXNlbnRQYXRoU3BlY2lmaWVkICYmIHBsYXRmb3JtVHlwZSAh
PSBFR0xfUExBVEZPUk1fQU5HTEVfVFlQRV9EM0QxMV9BTkdMRSkKLSAgICAgICAgewotICAgICAg
ICAgICAgdmFsLT5zZXRFcnJvcihFR0xfQkFEX0FUVFJJQlVURSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgIkVHTF9FWFBFUklNRU5UQUxfUFJFU0VOVF9QQVRIX0FOR0xFIHJlcXVpcmVzIGEg
IgotICAgICAgICAgICAgICAgICAgICAgICAgICAiZGV2aWNlIHR5cGUgb2YgRUdMX1BMQVRGT1JN
X0FOR0xFX1RZUEVfRDNEMTFfQU5HTEUuIik7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgICAgIH0KIAotICAgICAgICBpZiAobHVpZFNwZWNpZmllZCkKLSAgICAgICAgewotICAgICAg
ICAgICAgaWYgKHBsYXRmb3JtVHlwZSAhPSBFR0xfUExBVEZPUk1fQU5HTEVfVFlQRV9EM0QxMV9B
TkdMRSkKKyAgICAgICAgICAgIGlmIChlbmFibGVBdXRvVHJpbVNwZWNpZmllZCAmJiBwbGF0Zm9y
bVR5cGUgIT0gRUdMX1BMQVRGT1JNX0FOR0xFX1RZUEVfRDNEMTFfQU5HTEUpCiAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgdmFsLT5zZXRFcnJvcihFR0xfQkFEX0FUVFJJQlVURSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFR0xfUExBVEZPUk1fQU5HTEVfRDNEX0xVSURf
SElHSF9BTkdMRSBhbmQgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkVHTF9QTEFU
Rk9STV9BTkdMRV9EM0RfTFVJRF9MT1dfQU5HTEUgIgotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgInJlcXVpcmUgYSBwbGF0Zm9ybSB0eXBlIG9mICIKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJFR0xfUExBVEZPUk1fQU5HTEVfRU5BQkxFX0FVVE9NQVRJQ19UUklNX0FOR0xF
ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZXF1aXJlcyBhIGRldmljZSB0eXBl
IG9mICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFR0xfUExBVEZPUk1fQU5HTEVf
VFlQRV9EM0QxMV9BTkdMRS4iKTsKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
ICAgICAgICB9CiAKLSAgICAgICAgICAgIGlmIChhdHRyaWJNYXAuZ2V0KEVHTF9QTEFURk9STV9B
TkdMRV9EM0RfTFVJRF9ISUdIX0FOR0xFLCAwKSA9PSAwICYmCi0gICAgICAgICAgICAgICAgYXR0
cmliTWFwLmdldChFR0xfUExBVEZPUk1fQU5HTEVfRDNEX0xVSURfTE9XX0FOR0xFLCAwKSA9PSAw
KQorICAgICAgICAgICAgaWYgKGVuYWJsZUQzRDExb24xMikKICAgICAgICAgICAgIHsKLSAgICAg
ICAgICAgICAgICB2YWwtPnNldEVycm9yKEVHTF9CQURfQVRUUklCVVRFLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIklmIGVpdGhlciBFR0xfUExBVEZPUk1fQU5HTEVfRDNEX0xVSURf
SElHSF9BTkdMRSAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYW5kL29yIEVHTF9Q
TEFURk9STV9BTkdMRV9EM0RfTFVJRF9MT1dfQU5HTEUgYXJlICIKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJzcGVjaWZpZWQsIGF0IGxlYXN0IG9uZSBtdXN0IG5vbi16ZXJvLiIpOwot
ICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICBpZiAocGxhdGZv
cm1UeXBlICE9IEVHTF9QTEFURk9STV9BTkdMRV9UWVBFX0QzRDExX0FOR0xFKQorICAgICAgICAg
ICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgdmFsLT5zZXRFcnJvcihFR0xfQkFEX0FUVFJJ
QlVURSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRUdMX1BMQVRGT1JNX0FO
R0xFX0QzRDExT04xMl9BTkdMRSAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
InJlcXVpcmVzIGEgcGxhdGZvcm0gdHlwZSBvZiAiCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIkVHTF9QTEFURk9STV9BTkdMRV9UWVBFX0QzRDExX0FOR0xFLiIpOworICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICAgICAgaWYgKGRldmljZVR5cGUudmFsaWQoKSAmJgorICAgICAgICAgICAgICAgICAgICBk
ZXZpY2VUeXBlICE9IEVHTF9QTEFURk9STV9BTkdMRV9ERVZJQ0VfVFlQRV9IQVJEV0FSRV9BTkdM
RSAmJgorICAgICAgICAgICAgICAgICAgICBkZXZpY2VUeXBlICE9IEVHTF9QTEFURk9STV9BTkdM
RV9ERVZJQ0VfVFlQRV9EM0RfV0FSUF9BTkdMRSkKKyAgICAgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgICAgIHZhbC0+c2V0RXJyb3IoRUdMX0JBRF9BVFRSSUJVVEUsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIkVHTF9QTEFURk9STV9BTkdMRV9EM0QxMU9OMTJfQU5H
TEUgcmVxdWlyZXMgYSBkZXZpY2UgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJ0eXBlIG9mIEVHTF9QTEFURk9STV9BTkdMRV9ERVZJQ0VfVFlQRV9IQVJEV0FSRV9BTkdMRSAi
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9yIEVHTF9QTEFURk9STV9BTkdM
RV9ERVZJQ0VfVFlQRV9EM0RfV0FSUF9BTkdMRSIpOworICAgICAgICAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQotICAgICAgICB9CiAK
LSAgICAgICAgaWYgKGRldmljZUlkU3BlY2lmaWVkKQotICAgICAgICB7Ci0gICAgICAgICAgICBp
ZiAoYXR0cmliTWFwLmdldChFR0xfUExBVEZPUk1fQU5HTEVfREVWSUNFX0lEX0hJR0hfQU5HTEUs
IDApID09IDAgJiYKLSAgICAgICAgICAgICAgICBhdHRyaWJNYXAuZ2V0KEVHTF9QTEFURk9STV9B
TkdMRV9ERVZJQ0VfSURfTE9XX0FOR0xFLCAwKSA9PSAwKQorICAgICAgICAgICAgaWYgKHByZXNl
bnRQYXRoU3BlY2lmaWVkICYmIHBsYXRmb3JtVHlwZSAhPSBFR0xfUExBVEZPUk1fQU5HTEVfVFlQ
RV9EM0QxMV9BTkdMRSkKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICB2YWwtPnNldEVy
cm9yKEVHTF9CQURfQVRUUklCVVRFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIklm
IGVpdGhlciBFR0xfUExBVEZPUk1fQU5HTEVfREVWSUNFX0lEX0hJR0hfQU5HTEUgIgotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgImFuZC9vciBFR0xfUExBVEZPUk1fQU5HTEVfREVWSUNF
X0lEX0xPV19BTkdMRSBhcmUgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNwZWNp
ZmllZCwgYXQgbGVhc3Qgb25lIG11c3Qgbm9uLXplcm8uIik7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiRUdMX0VYUEVSSU1FTlRBTF9QUkVTRU5UX1BBVEhfQU5HTEUgcmVxdWlyZXMg
YSAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGV2aWNlIHR5cGUgb2YgRUdMX1BM
QVRGT1JNX0FOR0xFX1RZUEVfRDNEMTFfQU5HTEUuIik7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgICAgICAgICAgfQotICAgICAgICB9CiAKLSAgICAgICAgaWYgKGRldmljZVR5
cGUudmFsaWQoKSkKLSAgICAgICAgewotICAgICAgICAgICAgc3dpdGNoIChkZXZpY2VUeXBlLnZh
bHVlKCkpCisgICAgICAgICAgICBpZiAobHVpZFNwZWNpZmllZCkKICAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICBjYXNlIEVHTF9QTEFURk9STV9BTkdMRV9ERVZJQ0VfVFlQRV9EM0RfUkVG
RVJFTkNFX0FOR0xFOgotICAgICAgICAgICAgICAgIGNhc2UgRUdMX1BMQVRGT1JNX0FOR0xFX0RF
VklDRV9UWVBFX0QzRF9XQVJQX0FOR0xFOgotICAgICAgICAgICAgICAgICAgICBpZiAocGxhdGZv
cm1UeXBlICE9IEVHTF9QTEFURk9STV9BTkdMRV9UWVBFX0QzRDlfQU5HTEUgJiYKLSAgICAgICAg
ICAgICAgICAgICAgICAgIHBsYXRmb3JtVHlwZSAhPSBFR0xfUExBVEZPUk1fQU5HTEVfVFlQRV9E
M0QxMV9BTkdMRSkKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAg
ICAgdmFsLT5zZXRFcnJvcihFR0xfQkFEX0FUVFJJQlVURSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIlRoaXMgZGV2aWNlIHR5cGUgcmVxdWlyZXMgYSAiCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwbGF0Zm9ybSB0eXBlIG9mIEVHTF9QTEFU
Rk9STV9BTkdMRV9UWVBFX0QzRDlfQU5HTEUgb3IgIgotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiRUdMX1BMQVRGT1JNX0FOR0xFX1RZUEVfRDNEOV9BTkdMRS4iKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBpZiAocGxhdGZv
cm1UeXBlICE9IEVHTF9QTEFURk9STV9BTkdMRV9UWVBFX0QzRDExX0FOR0xFKQorICAgICAgICAg
ICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgdmFsLT5zZXRFcnJvcihFR0xfQkFEX0FUVFJJ
QlVURSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRUdMX1BMQVRGT1JNX0FO
R0xFX0QzRF9MVUlEX0hJR0hfQU5HTEUgYW5kICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiRUdMX1BMQVRGT1JNX0FOR0xFX0QzRF9MVUlEX0xPV19BTkdMRSAiCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlcXVpcmUgYSBwbGF0Zm9ybSB0eXBlIG9mICIK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRUdMX1BMQVRGT1JNX0FOR0xFX1RZ
UEVfRDNEMTFfQU5HTEUuIik7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICBjYXNlIEVHTF9QTEFURk9STV9BTkdM
RV9ERVZJQ0VfVFlQRV9TV0lGVFNIQURFUl9BTkdMRToKLSAgICAgICAgICAgICAgICAgICAgaWYg
KHBsYXRmb3JtVHlwZSAhPSBFR0xfUExBVEZPUk1fQU5HTEVfVFlQRV9WVUxLQU5fQU5HTEUpCi0g
ICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHZhbC0+c2V0RXJy
b3IoRUdMX0JBRF9BVFRSSUJVVEUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJUaGlzIGRldmljZSB0eXBlIHJlcXVpcmVzIGEgIgotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAicGxhdGZvcm0gdHlwZSBvZiBFR0xfUExBVEZPUk1fQU5HTEVfVFlQ
RV9WVUxLQU5fQU5HTEUuIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICAgICAgaWYgKGF0dHJpYk1hcC5nZXQoRUdMX1BMQVRGT1JNX0FOR0xFX0QzRF9MVUlE
X0hJR0hfQU5HTEUsIDApID09IDAgJiYKKyAgICAgICAgICAgICAgICAgICAgYXR0cmliTWFwLmdl
dChFR0xfUExBVEZPUk1fQU5HTEVfRDNEX0xVSURfTE9XX0FOR0xFLCAwKSA9PSAwKQorICAgICAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgdmFsLT5zZXRFcnJvcihFR0xfQkFEX0FU
VFJJQlVURSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSWYgZWl0aGVyIEVH
TF9QTEFURk9STV9BTkdMRV9EM0RfTFVJRF9ISUdIX0FOR0xFICIKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiYW5kL29yIEVHTF9QTEFURk9STV9BTkdMRV9EM0RfTFVJRF9MT1df
QU5HTEUgYXJlICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3BlY2lmaWVk
LCBhdCBsZWFzdCBvbmUgbXVzdCBub24temVyby4iKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KIAotICAgICAgICAg
ICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
aWYgKGRldmljZUlkU3BlY2lmaWVkKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGlm
IChhdHRyaWJNYXAuZ2V0KEVHTF9QTEFURk9STV9BTkdMRV9ERVZJQ0VfSURfSElHSF9BTkdMRSwg
MCkgPT0gMCAmJgorICAgICAgICAgICAgICAgICAgICBhdHRyaWJNYXAuZ2V0KEVHTF9QTEFURk9S
TV9BTkdMRV9ERVZJQ0VfSURfTE9XX0FOR0xFLCAwKSA9PSAwKQorICAgICAgICAgICAgICAgIHsK
KyAgICAgICAgICAgICAgICAgICAgdmFsLT5zZXRFcnJvcihFR0xfQkFEX0FUVFJJQlVURSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSWYgZWl0aGVyIEVHTF9QTEFURk9STV9B
TkdMRV9ERVZJQ0VfSURfSElHSF9BTkdMRSAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgImFuZC9vciBFR0xfUExBVEZPUk1fQU5HTEVfREVWSUNFX0lEX0xPV19BTkdMRSBhcmUg
IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzcGVjaWZpZWQsIGF0IGxlYXN0
IG9uZSBtdXN0IG5vbi16ZXJvLiIpOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQotICAgICAgICB9CiAKLSAgICAgICAg
aWYgKHBsYXRmb3JtVHlwZSA9PSBFR0xfUExBVEZPUk1fQU5HTEVfVFlQRV9WVUxLQU5fQU5HTEUp
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIGlmICgobWFqb3JWZXJzaW9uLnZhbGlkKCkgJiYgbWFq
b3JWZXJzaW9uLnZhbHVlKCkgIT0gMSkgfHwKLSAgICAgICAgICAgICAgICAobWlub3JWZXJzaW9u
LnZhbGlkKCkgJiYgbWlub3JWZXJzaW9uLnZhbHVlKCkgIT0gMCkpCisgICAgICAgICAgICBpZiAo
ZGV2aWNlVHlwZS52YWxpZCgpKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHN3aXRj
aCAoZGV2aWNlVHlwZS52YWx1ZSgpKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg
ICAgICAgY2FzZSBFR0xfUExBVEZPUk1fQU5HTEVfREVWSUNFX1RZUEVfRDNEX1JFRkVSRU5DRV9B
TkdMRToKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBFR0xfUExBVEZPUk1fQU5HTEVfREVWSUNF
X1RZUEVfRDNEX1dBUlBfQU5HTEU6CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGxhdGZv
cm1UeXBlICE9IEVHTF9QTEFURk9STV9BTkdMRV9UWVBFX0QzRDlfQU5HTEUgJiYKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwbGF0Zm9ybVR5cGUgIT0gRUdMX1BMQVRGT1JNX0FOR0xFX1RZ
UEVfRDNEMTFfQU5HTEUpCisgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdmFsLT5zZXRFcnJvcihFR0xfQkFEX0FUVFJJQlVURSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUaGlzIGRldmljZSB0eXBlIHJlcXVp
cmVzIGEgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBsYXRm
b3JtIHR5cGUgb2YgRUdMX1BMQVRGT1JNX0FOR0xFX1RZUEVfRDNEOV9BTkdMRSBvciAiCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRUdMX1BMQVRGT1JNX0FOR0xF
X1RZUEVfRDNEOV9BTkdMRS4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAg
ICBicmVhazsKKworICAgICAgICAgICAgICAgICAgICBjYXNlIEVHTF9QTEFURk9STV9BTkdMRV9E
RVZJQ0VfVFlQRV9TV0lGVFNIQURFUl9BTkdMRToKKyAgICAgICAgICAgICAgICAgICAgICAgIGlm
IChwbGF0Zm9ybVR5cGUgIT0gRUdMX1BMQVRGT1JNX0FOR0xFX1RZUEVfVlVMS0FOX0FOR0xFKQor
ICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZh
bC0+c2V0RXJyb3IoRUdMX0JBRF9BVFRSSUJVVEUsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiVGhpcyBkZXZpY2UgdHlwZSByZXF1aXJlcyBhICIKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwbGF0Zm9ybSB0eXBlIG9mIEVHTF9Q
TEFURk9STV9BTkdMRV9UWVBFX1ZVTEtBTl9BTkdMRS4iKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgICAgICBkZWZhdWx0Ogor
ICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICBpZiAocGxhdGZvcm1UeXBlID09IEVHTF9QTEFURk9STV9B
TkdMRV9UWVBFX1ZVTEtBTl9BTkdMRSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBp
ZiAoKG1ham9yVmVyc2lvbi52YWxpZCgpICYmIG1ham9yVmVyc2lvbi52YWx1ZSgpICE9IDEpIHx8
CisgICAgICAgICAgICAgICAgICAgIChtaW5vclZlcnNpb24udmFsaWQoKSAmJiBtaW5vclZlcnNp
b24udmFsdWUoKSAhPSAwKSkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAg
IHZhbC0+c2V0RXJyb3IoRUdMX0JBRF9BVFRSSUJVVEUsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIkVHTF9QTEFURk9STV9BTkdMRV9UWVBFX1ZVTEtBTl9BTkdMRSBjdXJyZW50
bHkgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJvbmx5IHN1cHBvcnRzIFZ1
bGthbiAxLjAuIik7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChlZ2xIYW5kbGUudmFs
aWQoKSAmJiBwbGF0Zm9ybVR5cGUgIT0gRUdMX1BMQVRGT1JNX0FOR0xFX1RZUEVfT1BFTkdMRVNf
QU5HTEUgJiYKKyAgICAgICAgICAgICAgICBwbGF0Zm9ybVR5cGUgIT0gRUdMX1BMQVRGT1JNX0FO
R0xFX1RZUEVfREVGQVVMVF9BTkdMRSkKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICB2
YWwtPnNldEVycm9yKEVHTF9CQURfQVRUUklCVVRFLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIkVHTF9QTEFURk9STV9BTkdMRV9UWVBFX1ZVTEtBTl9BTkdMRSBjdXJyZW50bHkgIgot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9ubHkgc3VwcG9ydHMgVnVsa2FuIDEuMC4i
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFR0xfUExBVEZPUk1fQU5HTEVfRUdM
X0hBTkRMRV9BTkdMRSByZXF1aXJlcyBhICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJkZXZpY2UgdHlwZSBvZiBFR0xfUExBVEZPUk1fQU5HTEVfVFlQRV9PUEVOR0xFU19BTkdMRS4i
KTsKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICB9CisgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgfQotCi0gICAgICAgIGlmIChlZ2xIYW5kbGUudmFsaWQoKSAm
JiBwbGF0Zm9ybVR5cGUgIT0gRUdMX1BMQVRGT1JNX0FOR0xFX1RZUEVfT1BFTkdMRVNfQU5HTEUg
JiYKLSAgICAgICAgICAgIHBsYXRmb3JtVHlwZSAhPSBFR0xfUExBVEZPUk1fQU5HTEVfVFlQRV9E
RUZBVUxUX0FOR0xFKQorICAgICAgICBjYXNlIEVHTF9QTEFURk9STV9ERVZJQ0VfRVhUOgogICAg
ICAgICB7Ci0gICAgICAgICAgICB2YWwtPnNldEVycm9yKEVHTF9CQURfQVRUUklCVVRFLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAiRUdMX1BMQVRGT1JNX0FOR0xFX0VHTF9IQU5ETEVfQU5H
TEUgcmVxdWlyZXMgYSAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICJkZXZpY2UgdHlwZSBv
ZiBFR0xfUExBVEZPUk1fQU5HTEVfVFlQRV9PUEVOR0xFU19BTkdMRS4iKTsKLSAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGNvbnN0IERldmljZSAqZWdsRGV2aWNlID0gc3Rh
dGljX2Nhc3Q8Y29uc3QgRGV2aWNlICo+KG5hdGl2ZV9kaXNwbGF5KTsKKyAgICAgICAgICAgIGlm
IChlZ2xEZXZpY2UgPT0gbnVsbHB0ciB8fCAhRGV2aWNlOjpJc1ZhbGlkRGV2aWNlKGVnbERldmlj
ZSkpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdmFsLT5zZXRFcnJvcihFR0xfQkFE
X0FUVFJJQlVURSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJuYXRpdmVfZGlzcGxh
eSBzaG91bGQgYmUgYSB2YWxpZCBFR0wgZGV2aWNlIGlmICIKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJwbGF0Zm9ybSBlcXVhbHMgRUdMX1BMQVRGT1JNX0RFVklDRV9FWFQiKTsKKyAg
ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgfQotICAgIH0KLSAgICBlbHNlIGlmIChwbGF0Zm9ybSA9PSBFR0xfUExB
VEZPUk1fREVWSUNFX0VYVCkKLSAgICB7Ci0gICAgICAgIGNvbnN0IERldmljZSAqZWdsRGV2aWNl
ID0gc3RhdGljX2Nhc3Q8Y29uc3QgRGV2aWNlICo+KG5hdGl2ZV9kaXNwbGF5KTsKLSAgICAgICAg
aWYgKGVnbERldmljZSA9PSBudWxscHRyIHx8ICFEZXZpY2U6OklzVmFsaWREZXZpY2UoZWdsRGV2
aWNlKSkKKyAgICAgICAgZGVmYXVsdDoKICAgICAgICAgewotICAgICAgICAgICAgdmFsLT5zZXRF
cnJvcihFR0xfQkFEX0FUVFJJQlVURSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIm5hdGl2
ZV9kaXNwbGF5IHNob3VsZCBiZSBhIHZhbGlkIEVHTCBkZXZpY2UgaWYgIgotICAgICAgICAgICAg
ICAgICAgICAgICAgICAicGxhdGZvcm0gZXF1YWxzIEVHTF9QTEFURk9STV9ERVZJQ0VfRVhUIik7
Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBVTlJFQUNIQUJMRSgpOwog
ICAgICAgICB9CiAgICAgfQotICAgIGVsc2UKLSAgICB7Ci0gICAgICAgIFVOUkVBQ0hBQkxFKCk7
Ci0gICAgfQogCiAgICAgaWYgKGF0dHJpYk1hcC5jb250YWlucyhFR0xfUE9XRVJfUFJFRkVSRU5D
RV9BTkdMRSkpCiAgICAgewpAQCAtNjI3MCw3ICs2MjgwLDExIEBAIGJvb2wgVmFsaWRhdGVHZXRQ
cm9jQWRkcmVzcyhjb25zdCBWYWxpZGF0aW9uQ29udGV4dCAqdmFsLCBjb25zdCBjaGFyICpwcm9j
bmFtZSkKIAogYm9vbCBWYWxpZGF0ZVF1ZXJ5U3RyaW5nKGNvbnN0IFZhbGlkYXRpb25Db250ZXh0
ICp2YWwsIGNvbnN0IERpc3BsYXkgKmRweVBhY2tlZCwgRUdMaW50IG5hbWUpCiB7Ci0gICAgaWYg
KG5hbWUgIT0gRUdMX0VYVEVOU0lPTlMgfHwgZHB5UGFja2VkICE9IG51bGxwdHIpCisgICAgLy8g
VGhlIG9ubHkgc2l0dWF0aW9uIHdoZXJlIEVHTF9OT19ESVNQTEFZIGlzIGFsbG93ZWQgaXMgd2hl
biBxdWVyeWluZworICAgIC8vIEVHTF9FWFRFTlNJT05TIG9yIEVHTF9WRVJTSU9OLgorICAgIGNv
bnN0IGJvb2wgY2FuUXVlcnlXaXRob3V0RGlzcGxheSA9IChuYW1lID09IEVHTF9WRVJTSU9OIHx8
IG5hbWUgPT0gRUdMX0VYVEVOU0lPTlMpOworCisgICAgaWYgKGRweVBhY2tlZCAhPSBudWxscHRy
IHx8ICFjYW5RdWVyeVdpdGhvdXREaXNwbGF5KQogICAgIHsKICAgICAgICAgQU5HTEVfVkFMSURB
VElPTl9UUlkoVmFsaWRhdGVEaXNwbGF5KHZhbCwgZHB5UGFja2VkKSk7CiAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3ZhbGlkYXRpb25FUy5j
cHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvdmFsaWRhdGlvbkVTLmNw
cAppbmRleCAwMDgyMTVmZWNjMzkxZDI4MTcxZTdlMmY4MWE0MGEyN2NjNzYyMjM4Li5mNWRiZGE2
MzRkNDVkZGEyNGQ5MzU1YTkxZjQ2ODU1Njc4MDdmMmIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvdmFsaWRhdGlvbkVTLmNwcAorKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvdmFsaWRhdGlvbkVTLmNwcApAQCAtNTYyLDgg
KzU2Miw4IEBAIGNvbnN0IGNoYXIgKlZhbGlkYXRlUHJvZ3JhbURyYXdBZHZhbmNlZEJsZW5kU3Rh
dGUoY29uc3QgQ29udGV4dCAqY29udGV4dCwgUHJvZ3JhCiB7CiAgICAgY29uc3QgU3RhdGUgJnN0
YXRlID0gY29udGV4dC0+Z2V0U3RhdGUoKTsKICAgICBjb25zdCBCbGVuZEVxdWF0aW9uQml0U2V0
ICZzdXBwb3J0ZWRCbGVuZEVxdWF0aW9ucyA9Ci0gICAgICAgIHByb2dyYW0tPmdldFN0YXRlKCku
Z2V0QWR2YW5jZWRCbGVuZEVxdWF0aW9ucygpOwotICAgIGNvbnN0IERyYXdCdWZmZXJNYXNrICZl
bmFibGVkRHJhd0J1ZmZlck1hc2sgPSBzdGF0ZS5nZXRCbGVuZFN0YXRlRXh0KCkubUVuYWJsZWRN
YXNrOworICAgICAgICBwcm9ncmFtLT5nZXRFeGVjdXRhYmxlKCkuZ2V0QWR2YW5jZWRCbGVuZEVx
dWF0aW9ucygpOworICAgIGNvbnN0IERyYXdCdWZmZXJNYXNrICZlbmFibGVkRHJhd0J1ZmZlck1h
c2sgPSBzdGF0ZS5nZXRCbGVuZFN0YXRlRXh0KCkuZ2V0RW5hYmxlZE1hc2soKTsKIAogICAgIGZv
ciAoc2l6ZV90IGJsZW5kRW5hYmxlZEJ1ZmZlckluZGV4IDogZW5hYmxlZERyYXdCdWZmZXJNYXNr
KQogICAgIHsKQEAgLTkxOCw3ICs5MTgsNyBAQCBib29sIFZhbGlkYXRlRHJhd0luc3RhbmNlZEFO
R0xFKGNvbnN0IENvbnRleHQgKmNvbnRleHQsIGFuZ2xlOjpFbnRyeVBvaW50IGVudHJ5UAogCiAg
ICAgY29uc3QgYXV0byAmYXR0cmlicyAgPSBzdGF0ZS5nZXRWZXJ0ZXhBcnJheSgpLT5nZXRWZXJ0
ZXhBdHRyaWJ1dGVzKCk7CiAgICAgY29uc3QgYXV0byAmYmluZGluZ3MgPSBzdGF0ZS5nZXRWZXJ0
ZXhBcnJheSgpLT5nZXRWZXJ0ZXhCaW5kaW5ncygpOwotICAgIGZvciAoc2l6ZV90IGF0dHJpYnV0
ZUluZGV4ID0gMDsgYXR0cmlidXRlSW5kZXggPCBNQVhfVkVSVEVYX0FUVFJJQlM7IGF0dHJpYnV0
ZUluZGV4KyspCisgICAgZm9yIChzaXplX3QgYXR0cmlidXRlSW5kZXggPSAwOyBhdHRyaWJ1dGVJ
bmRleCA8IGF0dHJpYnMuc2l6ZSgpOyBhdHRyaWJ1dGVJbmRleCsrKQogICAgIHsKICAgICAgICAg
Y29uc3QgVmVydGV4QXR0cmlidXRlICZhdHRyaWIgPSBhdHRyaWJzW2F0dHJpYnV0ZUluZGV4XTsK
ICAgICAgICAgY29uc3QgVmVydGV4QmluZGluZyAmYmluZGluZyAgPSBiaW5kaW5nc1thdHRyaWIu
YmluZGluZ0luZGV4XTsKQEAgLTMwMTIsNiArMzAxMiwxNCBAQCBib29sIFZhbGlkYXRlU3RhdGVR
dWVyeShjb25zdCBDb250ZXh0ICpjb250ZXh0LAogICAgICAgICAgICAgfQogICAgICAgICAgICAg
YnJlYWs7CiAKKyAgICAgICAgY2FzZSBHTF9TSEFESU5HX1JBVEVfUUNPTToKKyAgICAgICAgICAg
IGlmICghY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnNoYWRpbmdSYXRlUUNPTSkKKyAgICAgICAg
ICAgIHsKKyAgICAgICAgICAgICAgICBjb250ZXh0LT52YWxpZGF0aW9uRXJyb3IoZW50cnlQb2lu
dCwgR0xfSU5WQUxJRF9FTlVNLCBrRXh0ZW5zaW9uTm90RW5hYmxlZCk7CisgICAgICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisKICAg
ICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIGJyZWFrOwogICAgIH0KQEAgLTQxMzUsMTcgKzQx
NDMsMTcgQEAgY29uc3QgY2hhciAqVmFsaWRhdGVEcmF3U3RhdGVzKGNvbnN0IENvbnRleHQgKmNv
bnRleHQpCiAKICAgICAvLyBBZHZhbmNlZCBibGVuZCBlcXVhdGlvbiBjYW4gb25seSBiZSBlbmFi
bGVkIGZvciBhIHNpbmdsZSByZW5kZXIgdGFyZ2V0LgogICAgIGNvbnN0IEJsZW5kU3RhdGVFeHQg
JmJsZW5kU3RhdGVFeHQgPSBzdGF0ZS5nZXRCbGVuZFN0YXRlRXh0KCk7Ci0gICAgaWYgKGJsZW5k
U3RhdGVFeHQubVVzZXNBZHZhbmNlZEJsZW5kRXF1YXRpb25NYXNrLmFueSgpKQorICAgIGlmIChi
bGVuZFN0YXRlRXh0LmdldFVzZXNBZHZhbmNlZEJsZW5kRXF1YXRpb25NYXNrKCkuYW55KCkpCiAg
ICAgewogICAgICAgICBjb25zdCBzaXplX3QgZHJhd0J1ZmZlckNvdW50ICAgICAgICAgICAgPSBm
cmFtZWJ1ZmZlci0+Z2V0RHJhd2J1ZmZlclN0YXRlQ291bnQoKTsKICAgICAgICAgdWludDMyX3Qg
YWR2YW5jZWRCbGVuZFJlbmRlclRhcmdldENvdW50ID0gMDsKIAotICAgICAgICBmb3IgKHNpemVf
dCBkcmF3QnVmZmVySW5kZXggOiBibGVuZFN0YXRlRXh0Lm1Vc2VzQWR2YW5jZWRCbGVuZEVxdWF0
aW9uTWFzaykKKyAgICAgICAgZm9yIChzaXplX3QgZHJhd0J1ZmZlckluZGV4IDogYmxlbmRTdGF0
ZUV4dC5nZXRVc2VzQWR2YW5jZWRCbGVuZEVxdWF0aW9uTWFzaygpKQogICAgICAgICB7CiAgICAg
ICAgICAgICBpZiAoZHJhd0J1ZmZlckluZGV4IDwgZHJhd0J1ZmZlckNvdW50ICYmCiAgICAgICAg
ICAgICAgICAgZnJhbWVidWZmZXItPmdldERyYXdCdWZmZXJTdGF0ZShkcmF3QnVmZmVySW5kZXgp
ICE9IEdMX05PTkUgJiYKLSAgICAgICAgICAgICAgICBibGVuZFN0YXRlRXh0Lm1FbmFibGVkTWFz
ay50ZXN0KGRyYXdCdWZmZXJJbmRleCkgJiYKLSAgICAgICAgICAgICAgICBibGVuZFN0YXRlRXh0
Lm1Vc2VzQWR2YW5jZWRCbGVuZEVxdWF0aW9uTWFzay50ZXN0KGRyYXdCdWZmZXJJbmRleCkpCisg
ICAgICAgICAgICAgICAgYmxlbmRTdGF0ZUV4dC5nZXRFbmFibGVkTWFzaygpLnRlc3QoZHJhd0J1
ZmZlckluZGV4KSAmJgorICAgICAgICAgICAgICAgIGJsZW5kU3RhdGVFeHQuZ2V0VXNlc0FkdmFu
Y2VkQmxlbmRFcXVhdGlvbk1hc2soKS50ZXN0KGRyYXdCdWZmZXJJbmRleCkpCiAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgKythZHZhbmNlZEJsZW5kUmVuZGVyVGFyZ2V0Q291bnQ7CiAg
ICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGli
QU5HTEUvdmFsaWRhdGlvbkVTLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5H
TEUvdmFsaWRhdGlvbkVTLmgKaW5kZXggZWYzYzNmMTg4MzM0YzIyNDEzMzQ2ZmQyOWEyNjQ0YWJm
Yjc2OTQzYS4uNTk4NGUwNzcxNjVjZmRkODFmNThlZTNhNWJjOWJkN2QzYTVlMDk0MCAxMDA2NDQK
LS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3ZhbGlkYXRpb25FUy5o
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS92YWxpZGF0aW9uRVMu
aApAQCAtMTI1Myw3ICsxMjUzLDcgQEAgQU5HTEVfSU5MSU5FIGJvb2wgVmFsaWRhdGVWZXJ0ZXhB
dHRyaWJJbmRleChjb25zdCBDb250ZXh0ICpjb250ZXh0LAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBhbmdsZTo6RW50cnlQb2ludCBlbnRyeVBvaW50LAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTHVpbnQgaW5kZXgpCiB7
Ci0gICAgaWYgKGluZGV4ID49IE1BWF9WRVJURVhfQVRUUklCUykKKyAgICBpZiAoaW5kZXggPj0g
c3RhdGljX2Nhc3Q8R0x1aW50Pihjb250ZXh0LT5nZXRDYXBzKCkubWF4VmVydGV4QXR0cmlidXRl
cykpCiAgICAgewogICAgICAgICBjb250ZXh0LT52YWxpZGF0aW9uRXJyb3IoZW50cnlQb2ludCwg
R0xfSU5WQUxJRF9WQUxVRSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycjo6
a0luZGV4RXhjZWVkc01heFZlcnRleEF0dHJpYnV0ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvdmFsaWRhdGlvbkVTMi5jcHAgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvdmFsaWRhdGlvbkVTMi5jcHAKaW5kZXggNjQ3NzU1
M2YzYjY2Mzk4Njg0Mjg1YzYxMDBkN2FlNjlkN2NkZmU2Yi4uYzgyMDUwYjRiNDk2OWJhMDdiMTgw
M2Y5NTQ5NWM3Yjc4ZmVmYzEzMSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUv
c3JjL2xpYkFOR0xFL3ZhbGlkYXRpb25FUzIuY3BwCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FO
R0xFL3NyYy9saWJBTkdMRS92YWxpZGF0aW9uRVMyLmNwcApAQCAtNjMyLDYgKzYzMiw4IEBAIGJv
b2wgVmFsaWRDYXAoY29uc3QgQ29udGV4dCAqY29udGV4dCwgR0xlbnVtIGNhcCwgYm9vbCBxdWVy
eU9ubHkpCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBHTF9TQU1QTEVfU0hBRElO
RzoKICAgICAgICAgICAgIHJldHVybiBjb250ZXh0LT5nZXRFeHRlbnNpb25zKCkuc2FtcGxlU2hh
ZGluZ09FUzsKKyAgICAgICAgY2FzZSBHTF9TSEFESU5HX1JBVEVfUFJFU0VSVkVfQVNQRUNUX1JB
VElPX1FDT006CisgICAgICAgICAgICByZXR1cm4gY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLnNo
YWRpbmdSYXRlUUNPTTsKICAgICB9CiAKICAgICAvLyBHTEVTMSBlbXVsYXRpb246IEdMRVMxLXNw
ZWNpZmljIGNhcHMgYWZ0ZXIgdGhpcyBwb2ludApAQCAtMzYzOCw3ICszNjQwLDcgQEAgYm9vbCBW
YWxpZGF0ZUJ1ZmZlclN1YkRhdGEoY29uc3QgQ29udGV4dCAqY29udGV4dCwKICAgICB9CiAKICAg
ICAvLyBDaGVjayBmb3IgcG9zc2libGUgb3ZlcmZsb3cgb2Ygc2l6ZSArIG9mZnNldAotICAgIGFu
Z2xlOjpDaGVja2VkTnVtZXJpYzxzaXplX3Q+IGNoZWNrZWRTaXplKHNpemUpOworICAgIGFuZ2xl
OjpDaGVja2VkTnVtZXJpYzxkZWNsdHlwZShzaXplICsgb2Zmc2V0KT4gY2hlY2tlZFNpemUoc2l6
ZSk7CiAgICAgY2hlY2tlZFNpemUgKz0gb2Zmc2V0OwogICAgIGlmICghY2hlY2tlZFNpemUuSXNW
YWxpZCgpKQogICAgIHsKQEAgLTM3NDMsNyArMzc0NSw3IEBAIGJvb2wgVmFsaWRhdGVCaW5kQXR0
cmliTG9jYXRpb24oY29uc3QgQ29udGV4dCAqY29udGV4dCwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgR0x1aW50IGluZGV4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjb25zdCBHTGNoYXIgKm5hbWUpCiB7Ci0gICAgaWYgKGluZGV4ID49IE1BWF9WRVJURVhfQVRU
UklCUykKKyAgICBpZiAoaW5kZXggPj0gc3RhdGljX2Nhc3Q8R0x1aW50Pihjb250ZXh0LT5nZXRD
YXBzKCkubWF4VmVydGV4QXR0cmlidXRlcykpCiAgICAgewogICAgICAgICBjb250ZXh0LT52YWxp
ZGF0aW9uRXJyb3IoZW50cnlQb2ludCwgR0xfSU5WQUxJRF9WQUxVRSwga0luZGV4RXhjZWVkc01h
eFZlcnRleEF0dHJpYnV0ZSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTQyNDEsNyArNDI0
Myw3IEBAIGJvb2wgVmFsaWRhdGVEaXNhYmxlVmVydGV4QXR0cmliQXJyYXkoY29uc3QgQ29udGV4
dCAqY29udGV4dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5nbGU6
OkVudHJ5UG9pbnQgZW50cnlQb2ludCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgR0x1aW50IGluZGV4KQogewotICAgIGlmIChpbmRleCA+PSBNQVhfVkVSVEVYX0FUVFJJ
QlMpCisgICAgaWYgKGluZGV4ID49IHN0YXRpY19jYXN0PEdMdWludD4oY29udGV4dC0+Z2V0Q2Fw
cygpLm1heFZlcnRleEF0dHJpYnV0ZXMpKQogICAgIHsKICAgICAgICAgY29udGV4dC0+dmFsaWRh
dGlvbkVycm9yKGVudHJ5UG9pbnQsIEdMX0lOVkFMSURfVkFMVUUsIGtJbmRleEV4Y2VlZHNNYXhW
ZXJ0ZXhBdHRyaWJ1dGUpOwogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC00MjU0LDcgKzQyNTYs
NyBAQCBib29sIFZhbGlkYXRlRW5hYmxlVmVydGV4QXR0cmliQXJyYXkoY29uc3QgQ29udGV4dCAq
Y29udGV4dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmdsZTo6RW50
cnlQb2ludCBlbnRyeVBvaW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEdMdWludCBpbmRleCkKIHsKLSAgICBpZiAoaW5kZXggPj0gTUFYX1ZFUlRFWF9BVFRSSUJTKQor
ICAgIGlmIChpbmRleCA+PSBzdGF0aWNfY2FzdDxHTHVpbnQ+KGNvbnRleHQtPmdldENhcHMoKS5t
YXhWZXJ0ZXhBdHRyaWJ1dGVzKSkKICAgICB7CiAgICAgICAgIGNvbnRleHQtPnZhbGlkYXRpb25F
cnJvcihlbnRyeVBvaW50LCBHTF9JTlZBTElEX1ZBTFVFLCBrSW5kZXhFeGNlZWRzTWF4VmVydGV4
QXR0cmlidXRlKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtNjEyNSw3ICs2MTI3LDcgQEAg
Ym9vbCBWYWxpZGF0ZVZlcnRleEF0dHJpYkRpdmlzb3JBTkdMRShjb25zdCBDb250ZXh0ICpjb250
ZXh0LAogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCi0gICAgaWYgKGluZGV4ID49IE1B
WF9WRVJURVhfQVRUUklCUykKKyAgICBpZiAoaW5kZXggPj0gc3RhdGljX2Nhc3Q8R0x1aW50Pihj
b250ZXh0LT5nZXRDYXBzKCkubWF4VmVydGV4QXR0cmlidXRlcykpCiAgICAgewogICAgICAgICBj
b250ZXh0LT52YWxpZGF0aW9uRXJyb3IoZW50cnlQb2ludCwgR0xfSU5WQUxJRF9WQUxVRSwga0lu
ZGV4RXhjZWVkc01heFZlcnRleEF0dHJpYnV0ZSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAg
LTYxNTksNyArNjE2MSw3IEBAIGJvb2wgVmFsaWRhdGVWZXJ0ZXhBdHRyaWJEaXZpc29yRVhUKGNv
bnN0IENvbnRleHQgKmNvbnRleHQsCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKLSAg
ICBpZiAoaW5kZXggPj0gTUFYX1ZFUlRFWF9BVFRSSUJTKQorICAgIGlmIChpbmRleCA+PSBzdGF0
aWNfY2FzdDxHTHVpbnQ+KGNvbnRleHQtPmdldENhcHMoKS5tYXhWZXJ0ZXhBdHRyaWJ1dGVzKSkK
ICAgICB7CiAgICAgICAgIGNvbnRleHQtPnZhbGlkYXRpb25FcnJvcihlbnRyeVBvaW50LCBHTF9J
TlZBTElEX1ZBTFVFLCBrSW5kZXhFeGNlZWRzTWF4VmVydGV4QXR0cmlidXRlKTsKICAgICAgICAg
cmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xp
YkFOR0xFL3ZhbGlkYXRpb25FUzMuY3BwIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xp
YkFOR0xFL3ZhbGlkYXRpb25FUzMuY3BwCmluZGV4IDBmMmZiZjY1MGRkZDliNWNhZmFiNmJlMzYx
OTM0YjVkYmI2ODYwYmYuLjc1YTk0YzE3MmJhZDU3NDgzNGU2OWNkODU1YzkwMGUzNDJiN2FmNTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS92YWxpZGF0
aW9uRVMzLmNwcAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvdmFs
aWRhdGlvbkVTMy5jcHAKQEAgLTE3NzEsNiArMTc3MSwyNCBAQCBib29sIFZhbGlkYXRlRnJhbWVi
dWZmZXJUZXh0dXJlTGF5ZXIoY29uc3QgQ29udGV4dCAqY29udGV4dCwKICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIGJyZWFrOwogCisgICAgICAgICAgICBjYXNlIFRleHR1cmVUeXBlOjpDdWJl
TWFwOgorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGlmIChsZXZlbCA+IGxvZzIoY2Fw
cy5tYXhDdWJlTWFwVGV4dHVyZVNpemUpKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICAgICAgY29udGV4dC0+dmFsaWRhdGlvbkVycm9yKGVudHJ5UG9pbnQsIEdMX0lOVkFMSURf
VkFMVUUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrRnJh
bWVidWZmZXJUZXh0dXJlSW52YWxpZE1pcExldmVsKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmIChsYXll
ciA+PSBzdGF0aWNfY2FzdDxHTGludD4oa0N1YmVGYWNlQ291bnQpKQorICAgICAgICAgICAgICAg
IHsKKyAgICAgICAgICAgICAgICAgICAgY29udGV4dC0+dmFsaWRhdGlvbkVycm9yKGVudHJ5UG9p
bnQsIEdMX0lOVkFMSURfVkFMVUUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBrRnJhbWVidWZmZXJUZXh0dXJlSW52YWxpZExheWVyKTsKKyAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIGJyZWFrOworCiAgICAgICAgICAgICBjYXNlIFRleHR1cmVUeXBlOjpDdWJl
TWFwQXJyYXk6CiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgaWYgKGxldmVsID4gbG9n
MihjYXBzLm1heDNEVGV4dHVyZVNpemUpKQpAQCAtMTc5NSw3ICsxODEzLDcgQEAgYm9vbCBWYWxp
ZGF0ZUZyYW1lYnVmZmVyVGV4dHVyZUxheWVyKGNvbnN0IENvbnRleHQgKmNvbnRleHQsCiAgICAg
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAKLSAgICAgICAgY29uc3QgYXV0
byAmZm9ybWF0ID0gdGV4LT5nZXRGb3JtYXQoTm9uQ3ViZVRleHR1cmVUeXBlVG9UYXJnZXQodGV4
LT5nZXRUeXBlKCkpLCBsZXZlbCk7CisgICAgICAgIGNvbnN0IGF1dG8gJmZvcm1hdCA9IHRleC0+
Z2V0Rm9ybWF0KFRleHR1cmVUeXBlVG9UYXJnZXQodGV4LT5nZXRUeXBlKCksIGxheWVyKSwgbGV2
ZWwpOwogICAgICAgICBpZiAoZm9ybWF0LmluZm8tPmNvbXByZXNzZWQpCiAgICAgICAgIHsKICAg
ICAgICAgICAgIGNvbnRleHQtPnZhbGlkYXRpb25FcnJvcihlbnRyeVBvaW50LCBHTF9JTlZBTElE
X09QRVJBVElPTiwKQEAgLTQzNTksNiArNDM3NywxMyBAQCBib29sIFZhbGlkYXRlUmVzdW1lVHJh
bnNmb3JtRmVlZGJhY2soY29uc3QgQ29udGV4dCAqY29udGV4dCwgYW5nbGU6OkVudHJ5UG9pbnQg
ZQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCisgICAgaWYgKCFWYWxpZGF0ZVByb2dy
YW1FeGVjdXRhYmxlWEZCQnVmZmVyc1ByZXNlbnQoY29udGV4dCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LT5nZXRTdGF0ZSgpLmdl
dFByb2dyYW1FeGVjdXRhYmxlKCkpKQorICAgIHsKKyAgICAgICAgY29udGV4dC0+dmFsaWRhdGlv
bkVycm9yKGVudHJ5UG9pbnQsIEdMX0lOVkFMSURfT1BFUkFUSU9OLCBrVHJhbnNmb3JtRmVlZGJh
Y2tCdWZmZXJNaXNzaW5nKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKwogICAgIHJl
dHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMv
bGliQU5HTEUvdmFsaWRhdGlvbkVTRVhULmNwcCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3Ny
Yy9saWJBTkdMRS92YWxpZGF0aW9uRVNFWFQuY3BwCmluZGV4IDc5YWY5YTI2Mzg3OWUxNWU5Y2Rl
MzVhNzEyZGFjMzU5YTZhMzk0MzAuLjVkNGNkZTM4MGVkNjFlNWFiNTNkYTNhZjhlOGJiYjY3M2Iz
ODZkM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS92
YWxpZGF0aW9uRVNFWFQuY3BwCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJB
TkdMRS92YWxpZGF0aW9uRVNFWFQuY3BwCkBAIC0zMDMwLDQgKzMwMzAsMjEgQEAgYm9vbCBWYWxp
ZGF0ZVNlbGVjdFBlcmZNb25pdG9yQ291bnRlcnNBTUQoY29uc3QgQ29udGV4dCAqY29udGV4dCwK
ICAgICBVTklNUExFTUVOVEVEKCk7CiAgICAgcmV0dXJuIGZhbHNlOwogfQorCitib29sIFZhbGlk
YXRlU2hhZGluZ1JhdGVRQ09NKGNvbnN0IENvbnRleHQgKmNvbnRleHQsIGFuZ2xlOjpFbnRyeVBv
aW50IGVudHJ5UG9pbnQsIEdMZW51bSByYXRlKQoreworICAgIGlmICghY29udGV4dC0+Z2V0RXh0
ZW5zaW9ucygpLnNoYWRpbmdSYXRlUUNPTSkKKyAgICB7CisgICAgICAgIGNvbnRleHQtPnZhbGlk
YXRpb25FcnJvcihlbnRyeVBvaW50LCBHTF9JTlZBTElEX09QRVJBVElPTiwga0V4dGVuc2lvbk5v
dEVuYWJsZWQpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgaWYgKGdsOjpG
cm9tR0xlbnVtPGdsOjpTaGFkaW5nUmF0ZT4ocmF0ZSkgPT0gZ2w6OlNoYWRpbmdSYXRlOjpJbnZh
bGlkRW51bSkKKyAgICB7CisgICAgICAgIGNvbnRleHQtPnZhbGlkYXRpb25FcnJvcihlbnRyeVBv
aW50LCBHTF9JTlZBTElEX0VOVU0sIGtJbnZhbGlkU2hhZGluZ1JhdGUpOworICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9CiB9ICAvLyBuYW1lc3BhY2Ug
Z2wKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS92YWxp
ZGF0aW9uRVNFWFRfYXV0b2dlbi5oIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFO
R0xFL3ZhbGlkYXRpb25FU0VYVF9hdXRvZ2VuLmgKaW5kZXggYjZjNmIyYmY2YWYyOGUyMjI2YmRk
MDRkNDZlZWY5MTNiYmJkYWQ0YS4uNzBhZWE4YTRkY2RiMTFhNDM1ZWVhMWExYTIwZDk4ZDhjMzA3
MWQ3NyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3Zh
bGlkYXRpb25FU0VYVF9hdXRvZ2VuLmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3Jj
L2xpYkFOR0xFL3ZhbGlkYXRpb25FU0VYVF9hdXRvZ2VuLmgKQEAgLTgzNiw2ICs4MzYsOCBAQCBi
b29sIFZhbGlkYXRlR2V0UXVlcnlPYmplY3R1aTY0dlJvYnVzdEFOR0xFKGNvbnN0IENvbnRleHQg
KmNvbnRleHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IEdMc2l6ZWkgKmxlbmd0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3QgR0x1aW50NjQgKnBhcmFtcyk7CiAKKy8vIEdMX0FOR0xFX3JvYnVzdF9y
ZXNvdXJjZV9pbml0aWFsaXphdGlvbgorCiAvLyBHTF9BTkdMRV9zZW1hcGhvcmVfZnVjaHNpYQog
Ym9vbCBWYWxpZGF0ZUltcG9ydFNlbWFwaG9yZVppcmNvbkhhbmRsZUFOR0xFKGNvbnN0IENvbnRl
eHQgKmNvbnRleHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYW5nbGU6OkVudHJ5UG9pbnQgZW50cnlQb2ludCwKQEAgLTI1ODAsNiArMjU4Miw5IEBAIGJv
b2wgVmFsaWRhdGVGcmFtZWJ1ZmZlclRleHR1cmVNdWx0aXZpZXdPVlIoY29uc3QgQ29udGV4dCAq
Y29udGV4dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0xz
aXplaSBudW1WaWV3cyk7CiAKIC8vIEdMX09WUl9tdWx0aXZpZXcyCisKKy8vIEdMX1FDT01fc2hh
ZGluZ19yYXRlCitib29sIFZhbGlkYXRlU2hhZGluZ1JhdGVRQ09NKGNvbnN0IENvbnRleHQgKmNv
bnRleHQsIGFuZ2xlOjpFbnRyeVBvaW50IGVudHJ5UG9pbnQsIEdMZW51bSByYXRlKTsKIH0gIC8v
IG5hbWVzcGFjZSBnbAogCiAjZW5kaWYgIC8vIExJQkFOR0xFX1ZBTElEQVRJT05fRVNFWFRfQVVU
T0dFTl9IXwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkdML2Vu
dHJ5X3BvaW50c193Z2wuY3BwIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkdML2Vu
dHJ5X3BvaW50c193Z2wuY3BwCmluZGV4IGYwMDQ1ZDA4YWNlZWJmNDEyZDUyZTc2NDAxODNmNmY4
YmZmZDljNDMuLmU4YTUwOTRmZjYzNTQ4NTIxYWE5ZDIwYTgxYmFmZjFiNzk4YTE3NWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJHTC9lbnRyeV9wb2ludHNfd2ds
LmNwcAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliR0wvZW50cnlfcG9pbnRz
X3dnbC5jcHAKQEAgLTEzMiw3ICsxMzIsOCBAQCBIR0xSQyBHTF9BUElFTlRSWSB3Z2xDcmVhdGVD
b250ZXh0KEhEQyBoRGMpCiAKICAgICBjb25zdCBhdXRvICZhdHRyaWJNYXBEaXNwbGF5ID0gQXR0
cmlidXRlTWFwOjpDcmVhdGVGcm9tQXR0cmliQXJyYXkoZGlzcGxheUF0dHJpYnV0ZXMuZGF0YSgp
KTsKIAotICAgIGVnbDo6RGlzcGxheSAqZGlzcGxheSA9IGVnbDo6RGlzcGxheTo6R2V0RGlzcGxh
eUZyb21OYXRpdmVEaXNwbGF5KGhEYywgYXR0cmliTWFwRGlzcGxheSk7CisgICAgZWdsOjpEaXNw
bGF5ICpkaXNwbGF5ID0KKyAgICAgICAgZWdsOjpEaXNwbGF5OjpHZXREaXNwbGF5RnJvbU5hdGl2
ZURpc3BsYXkoRUdMX1BMQVRGT1JNX0FOR0xFX0FOR0xFLCBoRGMsIGF0dHJpYk1hcERpc3BsYXkp
OwogCiAgICAgQU5HTEVfRUdMX1RSWV9SRVRVUk4odGhyZWFkLCBkaXNwbGF5LT5pbml0aWFsaXpl
KCksICJ3Z2xDcmVhdGVDb250ZXh0IiwgZGlzcGxheSwgbnVsbHB0cik7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJHTEVTdjIuZ25pIGIvU291cmNlL1RoaXJk
UGFydHkvQU5HTEUvc3JjL2xpYkdMRVN2Mi5nbmkKaW5kZXggMDI0OGZiMzVlMWZiY2FiYTMxYzNh
ZTUyMDBjYWE0YWVlYjQ1ODY3Mi4uOGM4NzIwYWM4MmU0MjM0ZWY0Yzg0NjRmZDYzNmY3M2Q2YWEz
MWQzOCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkdMRVN2Mi5n
bmkKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkdMRVN2Mi5nbmkKQEAgLTE5
NSwxMSArMTk1LDExIEBAIGxpYmFuZ2xlX2luY2x1ZGVzID0gWwogICAiaW5jbHVkZS9LSFIva2hy
cGxhdGZvcm0uaCIsCiAgICJpbmNsdWRlL1dHTC93Z2wuaCIsCiAgICJpbmNsdWRlL3BsYXRmb3Jt
L0ZlYXR1cmUuaCIsCi0gICJpbmNsdWRlL3BsYXRmb3JtL0ZlYXR1cmVzRDNELmgiLAotICAiaW5j
bHVkZS9wbGF0Zm9ybS9GZWF0dXJlc0dMLmgiLAotICAiaW5jbHVkZS9wbGF0Zm9ybS9GZWF0dXJl
c010bC5oIiwKLSAgImluY2x1ZGUvcGxhdGZvcm0vRmVhdHVyZXNWay5oIiwKLSAgImluY2x1ZGUv
cGxhdGZvcm0vRnJvbnRlbmRGZWF0dXJlcy5oIiwKKyAgImluY2x1ZGUvcGxhdGZvcm0vRmVhdHVy
ZXNEM0RfYXV0b2dlbi5oIiwKKyAgImluY2x1ZGUvcGxhdGZvcm0vRmVhdHVyZXNHTF9hdXRvZ2Vu
LmgiLAorICAiaW5jbHVkZS9wbGF0Zm9ybS9GZWF0dXJlc010bF9hdXRvZ2VuLmgiLAorICAiaW5j
bHVkZS9wbGF0Zm9ybS9GZWF0dXJlc1ZrX2F1dG9nZW4uaCIsCisgICJpbmNsdWRlL3BsYXRmb3Jt
L0Zyb250ZW5kRmVhdHVyZXNfYXV0b2dlbi5oIiwKICAgImluY2x1ZGUvcGxhdGZvcm0vUGxhdGZv
cm0uaCIsCiAgICJpbmNsdWRlL3BsYXRmb3JtL1BsYXRmb3JtTWV0aG9kcy5oIiwKICAgImluY2x1
ZGUvdnVsa2FuL3Z1bGthbl9mdWNoc2lhX2V4dC5oIiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGly
ZFBhcnR5L0FOR0xFL3NyYy9saWJHTEVTdjIvZWdsX2V4dF9zdHVicy5jcHAgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9BTkdMRS9zcmMvbGliR0xFU3YyL2VnbF9leHRfc3R1YnMuY3BwCmluZGV4IDBiZDdm
MGZlYTg5MTllNDdlOTBhZjZiNjczODUyMmVlNTJmMzc3ZTAuLjliMGU3NDkyNzAxYWYwMzUzMzk4
ODUwNzBjYmQ1YmQ4M2JmNjM0NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xF
L3NyYy9saWJHTEVTdjIvZWdsX2V4dF9zdHVicy5jcHAKKysrIGIvU291cmNlL1RoaXJkUGFydHkv
QU5HTEUvc3JjL2xpYkdMRVN2Mi9lZ2xfZXh0X3N0dWJzLmNwcApAQCAtMTk5LDIwICsxOTksMjMg
QEAgRUdMRGlzcGxheSBHZXRQbGF0Zm9ybURpc3BsYXlFWFQoVGhyZWFkICp0aHJlYWQsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpuYXRpdmVfZGlzcGxheSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEF0dHJpYnV0ZU1hcCAmYXR0cmliTWFw
KQogewotICAgIGlmIChwbGF0Zm9ybSA9PSBFR0xfUExBVEZPUk1fQU5HTEVfQU5HTEUpCisgICAg
c3dpdGNoIChwbGF0Zm9ybSkKICAgICB7Ci0gICAgICAgIHJldHVybiBlZ2w6OkRpc3BsYXk6Okdl
dERpc3BsYXlGcm9tTmF0aXZlRGlzcGxheSgKLSAgICAgICAgICAgIGdsOjpiaXRDYXN0PEVHTE5h
dGl2ZURpc3BsYXlUeXBlPihuYXRpdmVfZGlzcGxheSksIGF0dHJpYk1hcCk7Ci0gICAgfQotICAg
IGVsc2UgaWYgKHBsYXRmb3JtID09IEVHTF9QTEFURk9STV9ERVZJQ0VfRVhUKQotICAgIHsKLSAg
ICAgICAgRGV2aWNlICplZ2xEZXZpY2UgPSBzdGF0aWNfY2FzdDxEZXZpY2UgKj4obmF0aXZlX2Rp
c3BsYXkpOwotICAgICAgICByZXR1cm4gZWdsOjpEaXNwbGF5OjpHZXREaXNwbGF5RnJvbURldmlj
ZShlZ2xEZXZpY2UsIGF0dHJpYk1hcCk7Ci0gICAgfQotICAgIGVsc2UKLSAgICB7Ci0gICAgICAg
IFVOUkVBQ0hBQkxFKCk7Ci0gICAgICAgIHJldHVybiBFR0xfTk9fRElTUExBWTsKKyAgICAgICAg
Y2FzZSBFR0xfUExBVEZPUk1fQU5HTEVfQU5HTEU6CisgICAgICAgIHsKKyAgICAgICAgICAgIHJl
dHVybiBlZ2w6OkRpc3BsYXk6OkdldERpc3BsYXlGcm9tTmF0aXZlRGlzcGxheSgKKyAgICAgICAg
ICAgICAgICBwbGF0Zm9ybSwgZ2w6OmJpdENhc3Q8RUdMTmF0aXZlRGlzcGxheVR5cGU+KG5hdGl2
ZV9kaXNwbGF5KSwgYXR0cmliTWFwKTsKKyAgICAgICAgfQorICAgICAgICBjYXNlIEVHTF9QTEFU
Rk9STV9ERVZJQ0VfRVhUOgorICAgICAgICB7CisgICAgICAgICAgICBEZXZpY2UgKmVnbERldmlj
ZSA9IHN0YXRpY19jYXN0PERldmljZSAqPihuYXRpdmVfZGlzcGxheSk7CisgICAgICAgICAgICBy
ZXR1cm4gZWdsOjpEaXNwbGF5OjpHZXREaXNwbGF5RnJvbURldmljZShlZ2xEZXZpY2UsIGF0dHJp
Yk1hcCk7CisgICAgICAgIH0KKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgeworICAgICAgICAg
ICAgVU5SRUFDSEFCTEUoKTsKKyAgICAgICAgICAgIHJldHVybiBFR0xfTk9fRElTUExBWTsKKyAg
ICAgICAgfQogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUv
c3JjL2xpYkdMRVN2Mi9lZ2xfc3R1YnMuY3BwIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3Jj
L2xpYkdMRVN2Mi9lZ2xfc3R1YnMuY3BwCmluZGV4IDA1NTRiN2Y0MGM2NWQ2YTI2OTAzODBmZTc0
ODM4MTg4ODZlMjA1MzMuLjg1ODNkN2UxZjk2M2Y2NWRhMWNiNDQ1NzNiMWUzYjBjZGQ4YzA4NWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJHTEVTdjIvZWdsX3N0
dWJzLmNwcAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliR0xFU3YyL2VnbF9z
dHVicy5jcHAKQEAgLTM4MSw3ICszODEsOCBAQCBFR0xTdXJmYWNlIEdldEN1cnJlbnRTdXJmYWNl
KFRocmVhZCAqdGhyZWFkLCBFR0xpbnQgcmVhZGRyYXcpCiAKIEVHTERpc3BsYXkgR2V0RGlzcGxh
eShUaHJlYWQgKnRocmVhZCwgRUdMTmF0aXZlRGlzcGxheVR5cGUgZGlzcGxheV9pZCkKIHsKLSAg
ICByZXR1cm4gRGlzcGxheTo6R2V0RGlzcGxheUZyb21OYXRpdmVEaXNwbGF5KGRpc3BsYXlfaWQs
IEF0dHJpYnV0ZU1hcCgpKTsKKyAgICByZXR1cm4gRGlzcGxheTo6R2V0RGlzcGxheUZyb21OYXRp
dmVEaXNwbGF5KEVHTF9QTEFURk9STV9BTkdMRV9BTkdMRSwgZGlzcGxheV9pZCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF0dHJpYnV0ZU1hcCgpKTsK
IH0KIAogRUdMaW50IEdldEVycm9yKFRocmVhZCAqdGhyZWFkKQpAQCAtMzk2LDIwICszOTcsMjMg
QEAgRUdMRGlzcGxheSBHZXRQbGF0Zm9ybURpc3BsYXkoVGhyZWFkICp0aHJlYWQsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpuYXRpdmVfZGlzcGxheSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IEF0dHJpYnV0ZU1hcCAmYXR0cmliTWFwKQogewotICAg
IGlmIChwbGF0Zm9ybSA9PSBFR0xfUExBVEZPUk1fQU5HTEVfQU5HTEUpCisgICAgc3dpdGNoIChw
bGF0Zm9ybSkKICAgICB7Ci0gICAgICAgIHJldHVybiBEaXNwbGF5OjpHZXREaXNwbGF5RnJvbU5h
dGl2ZURpc3BsYXkoCi0gICAgICAgICAgICBnbDo6Yml0Q2FzdDxFR0xOYXRpdmVEaXNwbGF5VHlw
ZT4obmF0aXZlX2Rpc3BsYXkpLCBhdHRyaWJNYXApOwotICAgIH0KLSAgICBlbHNlIGlmIChwbGF0
Zm9ybSA9PSBFR0xfUExBVEZPUk1fREVWSUNFX0VYVCkKLSAgICB7Ci0gICAgICAgIERldmljZSAq
ZWdsRGV2aWNlID0gc3RhdGljX2Nhc3Q8RGV2aWNlICo+KG5hdGl2ZV9kaXNwbGF5KTsKLSAgICAg
ICAgcmV0dXJuIERpc3BsYXk6OkdldERpc3BsYXlGcm9tRGV2aWNlKGVnbERldmljZSwgYXR0cmli
TWFwKTsKLSAgICB9Ci0gICAgZWxzZQotICAgIHsKLSAgICAgICAgVU5SRUFDSEFCTEUoKTsKLSAg
ICAgICAgcmV0dXJuIEVHTF9OT19ESVNQTEFZOworICAgICAgICBjYXNlIEVHTF9QTEFURk9STV9B
TkdMRV9BTkdMRToKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIERpc3BsYXk6OkdldERp
c3BsYXlGcm9tTmF0aXZlRGlzcGxheSgKKyAgICAgICAgICAgICAgICBwbGF0Zm9ybSwgZ2w6OmJp
dENhc3Q8RUdMTmF0aXZlRGlzcGxheVR5cGU+KG5hdGl2ZV9kaXNwbGF5KSwgYXR0cmliTWFwKTsK
KyAgICAgICAgfQorICAgICAgICBjYXNlIEVHTF9QTEFURk9STV9ERVZJQ0VfRVhUOgorICAgICAg
ICB7CisgICAgICAgICAgICBEZXZpY2UgKmVnbERldmljZSA9IHN0YXRpY19jYXN0PERldmljZSAq
PihuYXRpdmVfZGlzcGxheSk7CisgICAgICAgICAgICByZXR1cm4gRGlzcGxheTo6R2V0RGlzcGxh
eUZyb21EZXZpY2UoZWdsRGV2aWNlLCBhdHRyaWJNYXApOworICAgICAgICB9CisgICAgICAgIGRl
ZmF1bHQ6CisgICAgICAgIHsKKyAgICAgICAgICAgIFVOUkVBQ0hBQkxFKCk7CisgICAgICAgICAg
ICByZXR1cm4gRUdMX05PX0RJU1BMQVk7CisgICAgICAgIH0KICAgICB9CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJHTEVTdjIvZW50cnlfcG9pbnRzX2ds
ZXNfZXh0X2F1dG9nZW4uY3BwIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkdMRVN2
Mi9lbnRyeV9wb2ludHNfZ2xlc19leHRfYXV0b2dlbi5jcHAKaW5kZXggYTIzYzRmYmY1YTEwZDlh
NGEzMWQ4MzIzOGRjMzgyMDM3YWFjOWE1My4uYTkyNmNlMjU0MDU0YjdiODI4OTgyNTgwODk4ZTcy
NzVlNWQ4MmNiMyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkdM
RVN2Mi9lbnRyeV9wb2ludHNfZ2xlc19leHRfYXV0b2dlbi5jcHAKKysrIGIvU291cmNlL1RoaXJk
UGFydHkvQU5HTEUvc3JjL2xpYkdMRVN2Mi9lbnRyeV9wb2ludHNfZ2xlc19leHRfYXV0b2dlbi5j
cHAKQEAgLTM2NTYsNiArMzY1Niw4IEBAIHZvaWQgR0xfQVBJRU5UUlkgR0xfR2V0UXVlcnlPYmpl
Y3R1aTY0dlJvYnVzdEFOR0xFKEdMdWludCBpZCwKICAgICB9CiB9CiAKKy8vIEdMX0FOR0xFX3Jv
YnVzdF9yZXNvdXJjZV9pbml0aWFsaXphdGlvbgorCiAvLyBHTF9BTkdMRV9zZW1hcGhvcmVfZnVj
aHNpYQogdm9pZCBHTF9BUElFTlRSWSBHTF9JbXBvcnRTZW1hcGhvcmVaaXJjb25IYW5kbGVBTkdM
RShHTHVpbnQgc2VtYXBob3JlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBHTGVudW0gaGFuZGxlVHlwZSwKQEAgLTExNjc5LDQgKzExNjgxLDMw
IEBAIHZvaWQgR0xfQVBJRU5UUlkgR0xfRnJhbWVidWZmZXJUZXh0dXJlTXVsdGl2aWV3T1ZSKEdM
ZW51bSB0YXJnZXQsCiB9CiAKIC8vIEdMX09WUl9tdWx0aXZpZXcyCisKKy8vIEdMX1FDT01fc2hh
ZGluZ19yYXRlCit2b2lkIEdMX0FQSUVOVFJZIEdMX1NoYWRpbmdSYXRlUUNPTShHTGVudW0gcmF0
ZSkKK3sKKyAgICBDb250ZXh0ICpjb250ZXh0ID0gR2V0VmFsaWRHbG9iYWxDb250ZXh0KCk7Cisg
ICAgRVZFTlQoY29udGV4dCwgR0xTaGFkaW5nUmF0ZVFDT00sICJjb250ZXh0ID0gJWQsIHJhdGUg
PSAlcyIsIENJRChjb250ZXh0KSwKKyAgICAgICAgICBHTGVudW1Ub1N0cmluZyhHTGVudW1Hcm91
cDo6U2hhZGluZ1JhdGUsIHJhdGUpKTsKKworICAgIGlmIChjb250ZXh0KQorICAgIHsKKyAgICAg
ICAgc3RkOjp1bmlxdWVfbG9jazxhbmdsZTo6R2xvYmFsTXV0ZXg+IHNoYXJlQ29udGV4dExvY2sg
PSBHZXRDb250ZXh0TG9jayhjb250ZXh0KTsKKyAgICAgICAgYm9vbCBpc0NhbGxWYWxpZCA9Cisg
ICAgICAgICAgICAoY29udGV4dC0+c2tpcFZhbGlkYXRpb24oKSB8fAorICAgICAgICAgICAgIFZh
bGlkYXRlU2hhZGluZ1JhdGVRQ09NKGNvbnRleHQsIGFuZ2xlOjpFbnRyeVBvaW50OjpHTFNoYWRp
bmdSYXRlUUNPTSwgcmF0ZSkpOworICAgICAgICBpZiAoaXNDYWxsVmFsaWQpCisgICAgICAgIHsK
KyAgICAgICAgICAgIGNvbnRleHQtPnNoYWRpbmdSYXRlUUNPTShyYXRlKTsKKyAgICAgICAgfQor
ICAgICAgICBBTkdMRV9DQVBUVVJFKFNoYWRpbmdSYXRlUUNPTSwgaXNDYWxsVmFsaWQsIGNvbnRl
eHQsIHJhdGUpOworICAgIH0KKyAgICBlbHNlCisgICAgeworICAgICAgICBHZW5lcmF0ZUNvbnRl
eHRMb3N0RXJyb3JPbkN1cnJlbnRHbG9iYWxDb250ZXh0KCk7CisgICAgfQorfQorCiB9ICAvLyBl
eHRlcm4gIkMiCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliR0xF
U3YyL2VudHJ5X3BvaW50c19nbGVzX2V4dF9hdXRvZ2VuLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9B
TkdMRS9zcmMvbGliR0xFU3YyL2VudHJ5X3BvaW50c19nbGVzX2V4dF9hdXRvZ2VuLmgKaW5kZXgg
MGEwZmFkZWNkZjkyOWVhNmMxYzE1ZmM1ZGU5MTM1ZDNhMDMyNGExZi4uYzcwNWYzMTIyMDZkMmI1
M2YxNGYxNWM0ZGQ5ZDA3MDUxYjdmMGE5OCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkv
QU5HTEUvc3JjL2xpYkdMRVN2Mi9lbnRyeV9wb2ludHNfZ2xlc19leHRfYXV0b2dlbi5oCisrKyBi
L1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJHTEVTdjIvZW50cnlfcG9pbnRzX2dsZXNf
ZXh0X2F1dG9nZW4uaApAQCAtNjMxLDYgKzYzMSw4IEBAIEFOR0xFX0VYUE9SVCB2b2lkIEdMX0FQ
SUVOVFJZIEdMX0dldFF1ZXJ5T2JqZWN0dWk2NHZSb2J1c3RBTkdMRShHTHVpbnQgaWQsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgR0xzaXplaSAqbGVuZ3RoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMdWludDY0ICpwYXJhbXMpOwogCisvLyBHTF9B
TkdMRV9yb2J1c3RfcmVzb3VyY2VfaW5pdGlhbGl6YXRpb24KKwogLy8gR0xfQU5HTEVfc2VtYXBo
b3JlX2Z1Y2hzaWEKIEFOR0xFX0VYUE9SVCB2b2lkIEdMX0FQSUVOVFJZIEdMX0ltcG9ydFNlbWFw
aG9yZVppcmNvbkhhbmRsZUFOR0xFKEdMdWludCBzZW1hcGhvcmUsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTGVudW0g
aGFuZGxlVHlwZSwKQEAgLTE3MzUsNiArMTczNyw5IEBAIEFOR0xFX0VYUE9SVCB2b2lkIEdMX0FQ
SUVOVFJZIEdMX0ZyYW1lYnVmZmVyVGV4dHVyZU11bHRpdmlld09WUihHTGVudW0gdGFyZ2V0LAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEdMc2l6ZWkgbnVtVmlld3MpOwogCiAvLyBHTF9PVlJfbXVsdGl2aWV3MgorCisvLyBH
TF9RQ09NX3NoYWRpbmdfcmF0ZQorQU5HTEVfRVhQT1JUIHZvaWQgR0xfQVBJRU5UUlkgR0xfU2hh
ZGluZ1JhdGVRQ09NKEdMZW51bSByYXRlKTsKIH0gIC8vIGV4dGVybiAiQyIKIAogI2VuZGlmICAv
LyBMSUJHTEVTVjJfRU5UUllfUE9JTlRTX0dMRVNfRVhUX0FVVE9HRU5fSF8KZGlmZiAtLWdpdCBh
L1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJHTEVTdjIvbGliR0xFU3YyX2F1dG9nZW4u
Y3BwIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkdMRVN2Mi9saWJHTEVTdjJfYXV0
b2dlbi5jcHAKaW5kZXggZTNlODA5OTUzZmQ2ZDAyMDQxOGJhZDFiMjQ1OWQ3ZDc2MDUzZDA1Ni4u
MmM0MDQ2Y2QxNWE3MmU1NTE4NjUxODVlOWI1ZTJmYjRiODc5N2QxYiAxMDA2NDQKLS0tIGEvU291
cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkdMRVN2Mi9saWJHTEVTdjJfYXV0b2dlbi5jcHAK
KysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkdMRVN2Mi9saWJHTEVTdjJfYXV0
b2dlbi5jcHAKQEAgLTM3NDUsNiArMzc0NSw4IEBAIHZvaWQgR0xfQVBJRU5UUlkgZ2xHZXRRdWVy
eU9iamVjdHVpNjR2Um9idXN0QU5HTEUoR0x1aW50IGlkLAogICAgIHJldHVybiBHTF9HZXRRdWVy
eU9iamVjdHVpNjR2Um9idXN0QU5HTEUoaWQsIHBuYW1lLCBidWZTaXplLCBsZW5ndGgsIHBhcmFt
cyk7CiB9CiAKKy8vIEdMX0FOR0xFX3JvYnVzdF9yZXNvdXJjZV9pbml0aWFsaXphdGlvbgorCiAv
LyBHTF9BTkdMRV9zZW1hcGhvcmVfZnVjaHNpYQogdm9pZCBHTF9BUElFTlRSWSBnbEltcG9ydFNl
bWFwaG9yZVppcmNvbkhhbmRsZUFOR0xFKEdMdWludCBzZW1hcGhvcmUsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0xlbnVtIGhhbmRsZVR5cGUs
CkBAIC01NzM2LDQgKzU3MzgsMTEgQEAgdm9pZCBHTF9BUElFTlRSWSBnbEZyYW1lYnVmZmVyVGV4
dHVyZU11bHRpdmlld09WUihHTGVudW0gdGFyZ2V0LAogfQogCiAvLyBHTF9PVlJfbXVsdGl2aWV3
MgorCisvLyBHTF9RQ09NX3NoYWRpbmdfcmF0ZQordm9pZCBHTF9BUElFTlRSWSBnbFNoYWRpbmdS
YXRlUUNPTShHTGVudW0gcmF0ZSkKK3sKKyAgICByZXR1cm4gR0xfU2hhZGluZ1JhdGVRQ09NKHJh
dGUpOworfQorCiB9ICAvLyBleHRlcm4gIkMiCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9BTkdMRS9zcmMvbGliR0xFU3YyL2xpYkdMRVN2Ml9hdXRvZ2VuLmRlZiBiL1NvdXJjZS9UaGly
ZFBhcnR5L0FOR0xFL3NyYy9saWJHTEVTdjIvbGliR0xFU3YyX2F1dG9nZW4uZGVmCmluZGV4IDE5
YTNhYWQ1MTJkMDg2OTA1MWE2MmRhMTZkNmM3MzBiNWZkM2ZhNmUuLjUzOTYzNjVjODFmZGM4Njc1
Yjc4ZmExZWJmMzc4YjJjZTljNjliZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FO
R0xFL3NyYy9saWJHTEVTdjIvbGliR0xFU3YyX2F1dG9nZW4uZGVmCisrKyBiL1NvdXJjZS9UaGly
ZFBhcnR5L0FOR0xFL3NyYy9saWJHTEVTdjIvbGliR0xFU3YyX2F1dG9nZW4uZGVmCkBAIC01OTks
NiArNTk5LDggQEAgRVhQT1JUUwogICAgIGdsVGV4U3ViSW1hZ2UyRFJvYnVzdEFOR0xFCiAgICAg
Z2xUZXhTdWJJbWFnZTNEUm9idXN0QU5HTEUKIAorICAgIDsgR0xfQU5HTEVfcm9idXN0X3Jlc291
cmNlX2luaXRpYWxpemF0aW9uCisKICAgICA7IEdMX0FOR0xFX3NlbWFwaG9yZV9mdWNoc2lhCiAg
ICAgZ2xJbXBvcnRTZW1hcGhvcmVaaXJjb25IYW5kbGVBTkdMRQogCkBAIC0xMTUwLDYgKzExNTIs
OSBAQCBFWFBPUlRTCiAKICAgICA7IEdMX09WUl9tdWx0aXZpZXcyCiAKKyAgICA7IEdMX1FDT01f
c2hhZGluZ19yYXRlCisgICAgZ2xTaGFkaW5nUmF0ZVFDT00KKwogICAgIDsgRUdMIDEuMAogICAg
IEVHTF9DaG9vc2VDb25maWcKICAgICBFR0xfQ29weUJ1ZmZlcnMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJHTEVTdjIvbGliR0xFU3YyX25vX2NhcHR1cmVfYXV0
b2dlbi5kZWYgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliR0xFU3YyL2xpYkdMRVN2
Ml9ub19jYXB0dXJlX2F1dG9nZW4uZGVmCmluZGV4IDMzOGMzNWM0NTYyYzNlZWU4ZDEyNmZiZjE0
ODVlNTI1MzdhMzhiNjguLjJhZjBkMThlZmUyMTU0ZjkxNDg0ODIyMDMxYzJmZmY5ZTA5MGJhZTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJHTEVTdjIvbGliR0xF
U3YyX25vX2NhcHR1cmVfYXV0b2dlbi5kZWYKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUv
c3JjL2xpYkdMRVN2Mi9saWJHTEVTdjJfbm9fY2FwdHVyZV9hdXRvZ2VuLmRlZgpAQCAtNTk5LDYg
KzU5OSw4IEBAIEVYUE9SVFMKICAgICBnbFRleFN1YkltYWdlMkRSb2J1c3RBTkdMRQogICAgIGds
VGV4U3ViSW1hZ2UzRFJvYnVzdEFOR0xFCiAKKyAgICA7IEdMX0FOR0xFX3JvYnVzdF9yZXNvdXJj
ZV9pbml0aWFsaXphdGlvbgorCiAgICAgOyBHTF9BTkdMRV9zZW1hcGhvcmVfZnVjaHNpYQogICAg
IGdsSW1wb3J0U2VtYXBob3JlWmlyY29uSGFuZGxlQU5HTEUKIApAQCAtMTE1MCw2ICsxMTUyLDkg
QEAgRVhQT1JUUwogCiAgICAgOyBHTF9PVlJfbXVsdGl2aWV3MgogCisgICAgOyBHTF9RQ09NX3No
YWRpbmdfcmF0ZQorICAgIGdsU2hhZGluZ1JhdGVRQ09NCisKICAgICA7IEVHTCAxLjAKICAgICBF
R0xfQ2hvb3NlQ29uZmlnCiAgICAgRUdMX0NvcHlCdWZmZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliR0xFU3YyL2xpYkdMRVN2Ml93aXRoX2NhcHR1cmVfYXV0
b2dlbi5kZWYgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliR0xFU3YyL2xpYkdMRVN2
Ml93aXRoX2NhcHR1cmVfYXV0b2dlbi5kZWYKaW5kZXggZGRiMGM3MGY0MDgzMDdlYzE2NmE4YWQ5
ZjEyNjNhZDc4ZjIyZWY2ZS4uYjgzM2QzNDA5YmE2YTgwODQ0ZjFkNWYzNWYxZDkzZDM1YTA1YmZi
NyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkdMRVN2Mi9saWJH
TEVTdjJfd2l0aF9jYXB0dXJlX2F1dG9nZW4uZGVmCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FO
R0xFL3NyYy9saWJHTEVTdjIvbGliR0xFU3YyX3dpdGhfY2FwdHVyZV9hdXRvZ2VuLmRlZgpAQCAt
NTk5LDYgKzU5OSw4IEBAIEVYUE9SVFMKICAgICBnbFRleFN1YkltYWdlMkRSb2J1c3RBTkdMRQog
ICAgIGdsVGV4U3ViSW1hZ2UzRFJvYnVzdEFOR0xFCiAKKyAgICA7IEdMX0FOR0xFX3JvYnVzdF9y
ZXNvdXJjZV9pbml0aWFsaXphdGlvbgorCiAgICAgOyBHTF9BTkdMRV9zZW1hcGhvcmVfZnVjaHNp
YQogICAgIGdsSW1wb3J0U2VtYXBob3JlWmlyY29uSGFuZGxlQU5HTEUKIApAQCAtMTE1MCw2ICsx
MTUyLDkgQEAgRVhQT1JUUwogCiAgICAgOyBHTF9PVlJfbXVsdGl2aWV3MgogCisgICAgOyBHTF9R
Q09NX3NoYWRpbmdfcmF0ZQorICAgIGdsU2hhZGluZ1JhdGVRQ09NCisKICAgICA7IEVHTCAxLjAK
ICAgICBFR0xfQ2hvb3NlQ29uZmlnCiAgICAgRUdMX0NvcHlCdWZmZXJzCmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliR0xFU3YyL3Byb2NfdGFibGVfZWdsX2F1dG9n
ZW4uY3BwIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkdMRVN2Mi9wcm9jX3RhYmxl
X2VnbF9hdXRvZ2VuLmNwcAppbmRleCA1ZGUzMDY1ZjQ4ODA3M2M3NDkyMjU5YjdkMGNiZWE1Yzky
OWFiMDk1Li4yMTE2ODQ2MzEzNmRjNzI0NmZmM2Q5MDJiYzFiNjM0ODk4MDU2YWZjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliR0xFU3YyL3Byb2NfdGFibGVfZWds
X2F1dG9nZW4uY3BwCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJHTEVTdjIv
cHJvY190YWJsZV9lZ2xfYXV0b2dlbi5jcHAKQEAgLTgwMyw2ICs4MDMsNyBAQCBjb25zdCBQcm9j
RW50cnkgZ19wcm9jVGFibGVbXSA9IHsKICAgICB7ImdsU2hhZGVNb2RlbCIsIFAoR0xfU2hhZGVN
b2RlbCl9LAogICAgIHsiZ2xTaGFkZXJCaW5hcnkiLCBQKEdMX1NoYWRlckJpbmFyeSl9LAogICAg
IHsiZ2xTaGFkZXJTb3VyY2UiLCBQKEdMX1NoYWRlclNvdXJjZSl9LAorICAgIHsiZ2xTaGFkaW5n
UmF0ZVFDT00iLCBQKEdMX1NoYWRpbmdSYXRlUUNPTSl9LAogICAgIHsiZ2xTaWduYWxTZW1hcGhv
cmVFWFQiLCBQKEdMX1NpZ25hbFNlbWFwaG9yZUVYVCl9LAogICAgIHsiZ2xTdGVuY2lsRnVuYyIs
IFAoR0xfU3RlbmNpbEZ1bmMpfSwKICAgICB7ImdsU3RlbmNpbEZ1bmNTZXBhcmF0ZSIsIFAoR0xf
U3RlbmNpbEZ1bmNTZXBhcmF0ZSl9LApAQCAtOTQ2LDUgKzk0Nyw1IEBAIGNvbnN0IFByb2NFbnRy
eSBnX3Byb2NUYWJsZVtdID0gewogICAgIHsiZ2xXYWl0U3luYyIsIFAoR0xfV2FpdFN5bmMpfSwK
ICAgICB7ImdsV2VpZ2h0UG9pbnRlck9FUyIsIFAoR0xfV2VpZ2h0UG9pbnRlck9FUyl9fTsKIAot
Y29uc3Qgc2l6ZV90IGdfbnVtUHJvY3MgPSA5MTM7Citjb25zdCBzaXplX3QgZ19udW1Qcm9jcyA9
IDkxNDsKIH0gIC8vIG5hbWVzcGFjZSBlZ2wKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L0FOR0xFL3NyYy90ZXN0cy9CVUlMRC5nbiBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90
ZXN0cy9CVUlMRC5nbgppbmRleCBiM2FkYjljNzI2NjU5NDg0YzgwMjVmNGRkNTVjNTQ0ODE1OTg3
ZTYwLi42NDI0YWVkZmIwMDNlYzdjOGYxMDc3NDc3MGQ4ODc2NGVmMjZhNTI0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvQlVJTEQuZ24KKysrIGIvU291cmNl
L1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3RzL0JVSUxELmduCkBAIC0yNiw3ICsyNiw3IEBAIGlm
IChpc19hbmRyb2lkKSB7CiAgICAgXQogCiAgICAgZGVwcyA9IFsKLSAgICAgICIvL2J1aWxkL2Fu
ZHJvaWQ6bmF0aXZlX2xpYnJhcmllc19qYXZhIiwKKyAgICAgICIvL2J1aWxkL2FuZHJvaWQ6YnVp
bGRfamF2YSIsCiAgICAgICAiLy9idWlsZC9hbmRyb2lkL2d0ZXN0X2FwazpuYXRpdmVfdGVzdF9p
bnN0cnVtZW50YXRpb25fdGVzdF9ydW5uZXJfamF2YSIsCiAgICAgXQogICB9CkBAIC00MDEsNyAr
NDAxLDEwIEBAIGlmIChpc193aW4gfHwgaXNfbGludXggfHwgaXNfY2hyb21lb3MgfHwgaXNfYW5k
cm9pZCB8fCBpc19hcHBsZSkgewogICAgICAgIiRhbmdsZV9yb290OmxpYkdMRVN2Ml9zdGF0aWMi
LAogICAgIF0KIAotICAgIGRhdGEgPSBbICIkYW5nbGVfcm9vdC9zcmMvdGVzdHMvcnVuX3BlcmZf
dGVzdHMucHkiIF0KKyAgICBkYXRhID0gWworICAgICAgIiRhbmdsZV9yb290L3NyYy90ZXN0cy9w
eV91dGlscy9hbmRyb2lkX2hlbHBlci5weSIsCisgICAgICAiJGFuZ2xlX3Jvb3Qvc3JjL3Rlc3Rz
L3J1bl9wZXJmX3Rlc3RzLnB5IiwKKyAgICBdCiAgICAgZGF0YV9kZXBzID0gWyAiLy90ZXN0aW5n
OnJ1bl9wZXJmX3Rlc3QiIF0KIAogICAgICMgVGhlc2UgdGVzdHMgZGVwZW5kIG9uIHZ1bGthbl9j
b21tYW5kX2J1ZmZlcl91dGlscywgd2hpY2ggaXMKQEAgLTQ2Miw3ICs0NjUsMTAgQEAgaWYgKGJ1
aWxkX2FuZ2xlX3BlcmZ0ZXN0cykgewogICAgICAgIiRhbmdsZV9zcGlydl90b29sc19kaXI6c3B2
dG9vbHNfdmFsIiwKICAgICBdCiAKLSAgICBkYXRhID0gWyAiJGFuZ2xlX3Jvb3Qvc3JjL3Rlc3Rz
L3J1bl9wZXJmX3Rlc3RzLnB5IiBdCisgICAgZGF0YSA9IFsKKyAgICAgICIkYW5nbGVfcm9vdC9z
cmMvdGVzdHMvcHlfdXRpbHMvYW5kcm9pZF9oZWxwZXIucHkiLAorICAgICAgIiRhbmdsZV9yb290
L3NyYy90ZXN0cy9ydW5fcGVyZl90ZXN0cy5weSIsCisgICAgXQogCiAgICAgZGF0YV9kZXBzID0g
WwogICAgICAgIiR7YW5nbGVfcm9vdH06bGliRUdMIiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGly
ZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9hbmdsZV9lbmQyZW5kX3Rlc3RzLmduaSBiL1NvdXJjZS9U
aGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9hbmdsZV9lbmQyZW5kX3Rlc3RzLmduaQppbmRleCA5
NTc0YzliOGQyMWE1YTFkODA4MjQzNTc5YmRmYzIwMGMyZTg5ZDRiLi43NWRlMGVmODk3NWE1Mjk0
ODkyOGY4NTkwOTc0ZGYzNzNiYTc4YTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9B
TkdMRS9zcmMvdGVzdHMvYW5nbGVfZW5kMmVuZF90ZXN0cy5nbmkKKysrIGIvU291cmNlL1RoaXJk
UGFydHkvQU5HTEUvc3JjL3Rlc3RzL2FuZ2xlX2VuZDJlbmRfdGVzdHMuZ25pCkBAIC0xMzEsNiAr
MTMxLDcgQEAgYW5nbGVfZW5kMmVuZF90ZXN0c19zb3VyY2VzID0gWwogICAiZ2xfdGVzdHMvU2hh
ZGVySW50ZXJwVGVzdC5jcHAiLAogICAiZ2xfdGVzdHMvU2hhZGVyTm9uQ29uc3RHbG9iYWxJbml0
aWFsaXplclRlc3QuY3BwIiwKICAgImdsX3Rlc3RzL1NoYWRlclN0b3JhZ2VCdWZmZXJUZXN0LmNw
cCIsCisgICJnbF90ZXN0cy9TaGFkaW5nUmF0ZVFjb21UZXN0LmNwcCIsCiAgICJnbF90ZXN0cy9T
aW1wbGVPcGVyYXRpb25UZXN0LmNwcCIsCiAgICJnbF90ZXN0cy9TaXh0ZWVuQnBwVGV4dHVyZVRl
c3QuY3BwIiwKICAgImdsX3Rlc3RzL1N0YXRlQ2hhbmdlVGVzdC5jcHAiLApkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3RzL2FuZ2xlX2VuZDJlbmRfdGVzdHNfZXhw
ZWN0YXRpb25zLnR4dCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9hbmdsZV9l
bmQyZW5kX3Rlc3RzX2V4cGVjdGF0aW9ucy50eHQKaW5kZXggMWNkYjQ3NTFjNzY0MGVhYzZlNjll
OTQ1OGU4YTBmYzYwYWZkNGEyNy4uNDM5NmQ0N2M1ZDQyMGY0NzUxYzkwOGMyODZiYTFjMzY1OGE2
MWRkYSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3RzL2FuZ2xl
X2VuZDJlbmRfdGVzdHNfZXhwZWN0YXRpb25zLnR4dAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9B
TkdMRS9zcmMvdGVzdHMvYW5nbGVfZW5kMmVuZF90ZXN0c19leHBlY3RhdGlvbnMudHh0CkBAIC03
LDggKzcsOSBAQAogLy8gVGhyZWFkIHNhbml0aXplciBza2lwcy4KIDY3MTggVFNBTiA6IE11bHRp
dGhyZWFkaW5nVGVzdEVTMy5NdWx0aXRocmVhZEZlbmNlRHJhdy8qID0gU0tJUAogNjcxOCBUU0FO
IDogTXVsdGl0aHJlYWRpbmdUZXN0RVMzLk11bHRpdGhyZWFkRmVuY2VUZXhJbWFnZS8qID0gU0tJ
UAotNjc0NiBUU0FOIDogKkFzeW5jUXVldWUqID0gU0tJUAotNjgwNCBMSU5VWCBWVUxLQU4gVFNB
TiA6IE11bHRpdGhyZWFkaW5nVGVzdC5NdWx0aUNvbnRleHREcmF3V2l0aFN3YXBCdWZmZXJzLyog
PSBTS0lQCis2NzQ2IFRTQU4gOiAqX0FzeW5jQ29tbWFuZFF1ZXVlKiA9IFNLSVAKKzY4MDQgVFNB
TiA6IE11bHRpdGhyZWFkaW5nVGVzdC5NdWx0aUNvbnRleHREcmF3V2l0aFN3YXBCdWZmZXJzLyog
PSBTS0lQCis3MTU5IFRTQU4gOiBJbnN0YW5jaW5nVGVzdEVTMy5MYXJnZURpdmlzb3IvKiA9IFNL
SVAKIAogLy8gR2VuZXJpYwogLy8gRmFpbHMgaW4gdGhlIGZsdXNoIHRocmVhZCB3aGVuIGNhbGxp
bmcgZWdsTWFrZUN1cnJlbnQuCkBAIC00Nyw2ICs0OCwxMiBAQAogNjkyNiBWVUxLQU4gOiBUZXh0
dXJlMkRUZXN0RVMzLlRleHR1cmVSR0JVcGRhdGVXaXRoUEJPL0VTM19WdWxrYW4qID0gU0tJUAog
NjczMCBWVUxLQU4gOiBHTFNMVGVzdF9FUzMuR0xWZXJ0ZXhJREludGVnZXJUZXh0dXJlRHJhd0Vs
ZW1lbnRzVThMaW5lLyogPSBTS0lQCiA2NzMwIFZVTEtBTiA6IEdMU0xUZXN0X0VTMy5HTFZlcnRl
eElESW50ZWdlclRleHR1cmVEcmF3RWxlbWVudHNVOExpbmVJZHMvKiA9IFNLSVAKKzcxNTEgVlVM
S0FOIDogSW5jb21wbGV0ZVRleHR1cmVUZXN0RVMzMS5NdWx0aXNhbXBsZVRleHR1cmUvKiA9IFNL
SVAKKzcxOTcgVlVMS0FOIDogQmxpdEZyYW1lYnVmZmVyVGVzdC5SZXNvbHZlV2l0aFJvdGF0aW9u
L0VTM19WdWxrYW5fRW11bGF0ZWRQcmVyb3RhdGlvbjE4MCA9IFNLSVAKKzcxOTcgVlVMS0FOIDog
QmxpdEZyYW1lYnVmZmVyVGVzdC5SZXNvbHZlV2l0aFJvdGF0aW9uL0VTM19WdWxrYW5fRW11bGF0
ZWRQcmVyb3RhdGlvbjI3MCA9IFNLSVAKKzcxOTcgVlVMS0FOIDogQmxpdEZyYW1lYnVmZmVyVGVz
dC5CbGl0TXVsdGlzYW1wbGVTdGVuY2lsVG9EZWZhdWx0L0VTM19WdWxrYW5fRW11bGF0ZWRQcmVy
b3RhdGlvbjE4MCA9IFNLSVAKKzcxOTggVlVMS0FOIDogQmxpdEZyYW1lYnVmZmVyVGVzdC5CbGl0
TXVsdGlzYW1wbGVTdGVuY2lsVG9EZWZhdWx0L0VTM19WdWxrYW5fRW11bGF0ZWRQcmVyb3RhdGlv
bjkwID0gU0tJUAorNzE5OCBWVUxLQU4gOiBCbGl0RnJhbWVidWZmZXJUZXN0LkJsaXRNdWx0aXNh
bXBsZVN0ZW5jaWxUb0RlZmF1bHQvRVMzX1Z1bGthbl9FbXVsYXRlZFByZXJvdGF0aW9uMjcwID0g
U0tJUAogCiAvLyBXaW5kb3dzCiAzNzg2IFdJTiBOVklESUEgRDNEMTEgOiBCdWZmZXJEYXRhT3Zl
cmZsb3dUZXN0LlZlcnRleEJ1ZmZlckludGVnZXJPdmVyZmxvdy8qID0gU0tJUApAQCAtOTIsOCAr
OTksOSBAQAogLy8gR2VuZXJhdGVzIGludmFsaWQgZXJyb3JzIHdoZW4gY29tcGlsaW5nIHRoZSBz
aGFkZXIgaW4gdGhlIEdMIGJhY2tlbmQKIDYxNzIgTlZJRElBIE9wZW5HTCA6IEdMU0xUZXN0X0VT
MzEuVHlwZXNVc2VkSW5EaWZmZXJlbnRCbG9ja1N0b3JhZ2VzLyogPSBTS0lQCiA2MTcyIE5WSURJ
QSBHTEVTIDogR0xTTFRlc3RfRVMzMS5UeXBlc1VzZWRJbkRpZmZlcmVudEJsb2NrU3RvcmFnZXMv
KiA9IFNLSVAKLTY5NzcgTlZJRElBIE9wZW5HTCA6IE1pcG1hcFRlc3RFUzMxLlVwZGF0ZUJhc2VM
ZXZlbC8qID0gU0tJUAotNjk3NyBOVklESUEgR0xFUyA6IE1pcG1hcFRlc3RFUzMxLlVwZGF0ZUJh
c2VMZXZlbC8qID0gU0tJUAorNjk3NyBOVklESUEgT3BlbkdMIDogTWlwbWFwVGVzdEVTMzEuR2Vu
ZXJhdGVNaXBtYXBXaXRoRHJhdy8qID0gU0tJUAorNjk3NyBOVklESUEgR0xFUyA6IE1pcG1hcFRl
c3RFUzMxLkdlbmVyYXRlTWlwbWFwV2l0aERyYXcvKiA9IFNLSVAKKzY5NzcgTElOVVggTlZJRElB
IE9wZW5HTCA6IE1pcG1hcFRlc3RFUzMxLkdlbmVyYXRlTG93ZXJNaXBzV2l0aERyYXcvKiA9IFNL
SVAKIAogLy8gSW50ZWwgVnVsa2FuCiAKQEAgLTExMiw2ICsxMjAsNyBAQAogLy8gRmFpbHMgb24g
b2xkZXIgbWVzYSBpbiBzb21lIHNlcXVlbmNlIG9mIHRlc3QKIDY1NjMgTElOVVggSU5URUwgVlVM
S0FOIDogVHJhbnNmb3JtRmVlZGJhY2tUZXN0LkVuZFdpdGhEaWZmZXJlbnRQcm9ncmFtLyogPSBT
S0lQCiA2OTYyIFdJTiBJTlRFTCBWVUxLQU4gOiBCbGl0RnJhbWVidWZmZXJUZXN0RVMzMS5QYXJ0
aWFsUmVzb2x2ZS8qID0gU0tJUAorNzE3NyBJTlRFTCBWVUxLQU4gOiBFWFRCbGVuZEZ1bmNFeHRl
bmRlZERyYXdUZXN0LkZyYWdEYXRhLyogPSBTS0lQCiAKIC8vIExpbnV4IEFNRAogNjg1NSBMSU5V
WCBBTUQgT1BFTkdMIDogQ2xlYXJUZXN0RVMzLkNsZWFyTWF4QXR0YWNobWVudHNBZnRlckRyYXcv
KiA9IFNLSVAKQEAgLTE1Miw2ICsxNjEsMjAgQEAKIDY2NDMgTUFDIEFNRCBPUEVOR0wgOiBUcmFu
c2Zvcm1GZWVkYmFja1Rlc3QuVHJhbnNmb3JtRmVlZGJhY2tQYXVzZWREcmF3VGhlblJlc3VtZS8q
ID0gU0tJUAogNjczOCBNQUMgQU1EIE9QRU5HTCA6IFRleHR1cmUzRFRlc3RFUzMuUGl4ZWxVbnBh
Y2tTdGF0ZVRleCogPSBTS0lQCiAxMjk2NDY3IE1BQyBPUEVOR0wgOiBWZXJ0ZXhBdHRyaWJ1dGVU
ZXN0RVMzLmVtcHR5QnVmZmVyLyogPSBTS0lQCis3MjAzIE1BQyBJTlRFTCBPUEVOR0wgOiBDb3B5
VGV4dHVyZVRlc3QuQ29weVRvTWlwbWFwLyogPSBTS0lQCis3MjA2IE1BQyBOVklESUEgT1BFTkdM
IDogQ29weVRleHR1cmVUZXN0LkN1YmVNYXAqL0VTMl9PcGVuR0wgPSBTS0lQCis3MjA2IE1BQyBO
VklESUEgT1BFTkdMIDogQ29weVRleHR1cmVUZXN0LkNvcHlUb01pcG1hcC9FUzJfT3BlbkdMID0g
U0tJUAorNzIwNiBNQUMgTlZJRElBIE9QRU5HTCA6IEJsaXRGcmFtZWJ1ZmZlclRlc3QuTm9uWmVy
b0Jhc2VEZXN0aW5hdGlvblN0ZW5jaWwvRVMzX09wZW5HTCA9IFNLSVAKKzcyMDYgTUFDIE5WSURJ
QSBPUEVOR0wgOiBCbGVuZEludGVnZXJUZXN0Lk1SVFVuc2lnbmVkL0VTM19PcGVuR0wgPSBTS0lQ
Cis3MjA2IE1BQyBOVklESUEgT1BFTkdMIDogQmxlbmRJbnRlZ2VyVGVzdC5NUlRTaWduZWQvRVMz
X09wZW5HTCA9IFNLSVAKKzcyMDYgTUFDIE5WSURJQSBPUEVOR0wgOiBEcmF3QnVmZmVyc1Rlc3Qu
QmxlbmRXaXRoR2Fwcy9FUzNfT3BlbkdMID0gU0tJUAorCisvLyBCbGl0RnJhbWVidWZmZXJUZXN0
LlNjaXNzb3JlZE11bHRpc2FtcGxlU3RlbmNpbCBmYWlsdXJlcworMzQ5NiBNQUMgSU5URUwgT1BF
TkdMIDogQmxpdEZyYW1lYnVmZmVyVGVzdC5TY2lzc29yZWRNdWx0aXNhbXBsZVN0ZW5jaWwvKiA9
IFNLSVAKKzM0OTYgTUFDIEFNRCBPUEVOR0wgOiBCbGl0RnJhbWVidWZmZXJUZXN0LlNjaXNzb3Jl
ZE11bHRpc2FtcGxlU3RlbmNpbC8qID0gU0tJUAorNzE5MSBNQUMgTlZJRElBIE9QRU5HTCA6IEJs
aXRGcmFtZWJ1ZmZlclRlc3QuU2Npc3NvcmVkTXVsdGlzYW1wbGVTdGVuY2lsL0VTM19PcGVuR0wg
PSBTS0lQCisKKy8vIE1hYyBNZXRhbAogCiAvLyBGYWlsdXJlcyBmcm9tIFRyYW5zZm9ybSBGZWVk
YmFjayBFbmFibGVtZW50LiBQYXNzZXMgb24gQmlnU3VyCiA2NDA3IE1BQyBOVklESUEgTUVUQUwg
OiBUcmFuc2Zvcm1GZWVkYmFja1Rlc3QuT3B0aW1pemVkVmFyeWluZ3MvRVMzX01ldGFsID0gU0tJ
UApAQCAtMjY1LDcgKzI4OCw4IEBACiA3MTA5IFdJTiBEM0QxMSA6IFNpbXBsZVN0YXRlQ2hhbmdl
VGVzdEVTMy5JbnZhbGlkYXRlUkdCVGhlbkRyYXcvKiA9IFNLSVAKIDcxMDkgV0lOIEQzRDExIDog
U2ltcGxlU3RhdGVDaGFuZ2VUZXN0RVMzLkRyYXdBbmRJbnZhbGlkYXRlUkdCVGhlblZlcmlmeUFs
cGhhLyogPSBTS0lQCiA3MTEzIFdJTiBEM0Q5IDogR0xTTFRlc3QuTG9vcEJvZHlFbmRpbmdJbkJy
YW5jaCovKiA9IFNLSVAKLTEzMTIxNjcgV0lOIEQzRDkgOiBSb2J1c3RSZXNvdXJjZUluaXRUZXN0
Lk91dE9mQm91bmRzQXJyYXlCdWZmZXJzLyogPSBTS0lQCis3MTQ4IFdJTiBEM0Q5IDogUm9idXN0
UmVzb3VyY2VJbml0VGVzdC5PdXRPZkJvdW5kc0FycmF5QnVmZmVycy8qID0gU0tJUAorNzIxMyBX
SU4gRDNEMTEgOiBCdWZmZXJEYXRhVGVzdEVTMy5CdWZmZXJEYXRhV2l0aE51bGxGb2xsb3dlZEJ5
TWFwLyogPSBTS0lQCiAKIC8vIEFuZHJvaWQKIDYwOTUgQU5EUk9JRCBHTEVTIDogR0xTTFRlc3Rf
RVMzLkluaXRHbG9iYWxDb21wbGV4Q29uc3RhbnQvKiA9IFNLSVAKQEAgLTI5NCw4ICszMTgsOCBA
QAogMjAwMDY3OTI5IE5FWFVTNVggR0xFUyA6IFNoYWRlclN0b3JhZ2VCdWZmZXJUZXN0MzEuU2hh
ZGVyU3RvcmFnZUJ1ZmZlclJlYWRXcml0ZUFuZEJ1ZmZlclN1YkRhdGEvKiA9IFNLSVAKIAogLy8g
UGl4ZWwgNCBleHBlY3RhdGlvbnMuCi02MzQ0IFBJWEVMNE9SWEwgOiBHTFNMVGVzdF9FUzMxX0lu
aXRTaGFkZXJWYXJpYWJsZXMuSW5pdElPQmxvY2tXaXRoU3RydWN0L0VTM18xX1Z1bGthbl9Jbml0
U2hhZGVyVmFycyA9IFNLSVAKLTYzNDQgUElYRUw0T1JYTCA6IEdMU0xUZXN0X0VTMzFfSW5pdFNo
YWRlclZhcmlhYmxlcy5Jbml0SU9CbG9ja1dpdGhDb21wbGV4VHlwZXMvRVMzXzFfVnVsa2FuX0lu
aXRTaGFkZXJWYXJzID0gU0tJUAorNjM0NCBQSVhFTDRPUlhMIDogR0xTTFRlc3RfRVMzMV9Jbml0
U2hhZGVyVmFyaWFibGVzLkluaXRJT0Jsb2NrV2l0aFN0cnVjdC9FUzNfMV9WdWxrYW5fRm9yY2VJ
bml0U2hhZGVyVmFyaWFibGVzID0gU0tJUAorNjM0NCBQSVhFTDRPUlhMIDogR0xTTFRlc3RfRVMz
MV9Jbml0U2hhZGVyVmFyaWFibGVzLkluaXRJT0Jsb2NrV2l0aENvbXBsZXhUeXBlcy9FUzNfMV9W
dWxrYW5fRm9yY2VJbml0U2hhZGVyVmFyaWFibGVzID0gU0tJUAogCiA1OTgxIFBJWEVMNE9SWEwg
R0xFUyA6IEJsaXRGcmFtZWJ1ZmZlclRlc3QuQmxpdFNSR0JUb1JHQk92ZXJzaXplZERlc3RBcmVh
LyogPSBTS0lQCiA1OTgxIFBJWEVMNE9SWEwgR0xFUyA6IENvcHlUZXhJbWFnZVRlc3QuQ29weVRl
eFN1YkltYWdlRnJvbTNEVGV4dXJlT0VTLyogPSBTS0lQCkBAIC0zNTYsNiArMzgwLDcgQEAKIDU5
ODEgUElYRUw0T1JYTCBHTEVTIDogVnVsa2FuRXh0ZXJuYWxJbWFnZVRlc3QuU2hvdWxkQ2xlYXJP
cGFxdWVGZFJHQkE4LyogPSBTS0lQCiA1OTgxIFBJWEVMNE9SWEwgR0xFUyA6IFZ1bGthbkV4dGVy
bmFsSW1hZ2VUZXN0LlRleHR1cmVGb3JtYXRDb21wYXRDaHJvbWl1bUZkLyogPSBTS0lQCiA3MTQy
IFBJWEVMNE9SWEwgR0xFUyA6IEdMU0xUZXN0LkFsaWFzaW5nRnVuY3Rpb25PdXRQYXJhbUFuZEds
b2JhbC8qID0gU0tJUAorNzIxMyBQSVhFTDRPUlhMIEdMRVMgOiBCdWZmZXJEYXRhVGVzdEVTMy5C
dWZmZXJEYXRhV2l0aE51bGxGb2xsb3dlZEJ5TWFwLyogPSBTS0lQCiAKIDU5NDYgUElYRUw0T1JY
TCBWVUxLQU4gOiBUcmFuc2Zvcm1GZWVkYmFja1Rlc3RFUzMyLlByaW1pdGl2ZXNXcml0dGVuQW5k
R2VuZXJhdGVkLyogPSBTS0lQCiA1OTQ3IFBJWEVMNE9SWEwgVlVMS0FOIDogRnJhbWVidWZmZXJG
ZXRjaEVTMzEuRHJhd0ZldGNoQmxpdERyYXdGZXRjaF9Ob25Db2hlcmVudC8qID0gU0tJUApAQCAt
NDAyLDYgKzQyNyw4IEBACiA3MTQwIFBJWEVMNE9SWEwgVlVMS0FOIDogRHJhd0J1ZmZlcnNUZXN0
Lk1pZFJlbmRlclBhc3NDbGVhcldpdGhHYXBzLyogPSBTS0lQCiA3MTQwIFBJWEVMNE9SWEwgVlVM
S0FOIDogRHJhd0J1ZmZlcnNUZXN0Lk1pZFJlbmRlclBhc3NDbGVhcldpdGhHYXBzUkdCLyogPSBT
S0lQCiAKKzcyMDcgUElYRUw0T1JYTCBWVUxLQU4gOiBWdWxrYW5QZXJmb3JtYW5jZUNvdW50ZXJU
ZXN0LkluUmVuZGVycGFzc0ZsdXNoU2hvdWxkTm90QnJlYWtSZW5kZXJwYXNzLyogPSBTS0lQCisK
IDYxNjcgTkVYVVM1WCBHTEVTIDogRGVwdGhTdGVuY2lsVGVzdEVTMy5GcmFtZWJ1ZmZlckNsZWFy
VGhlblN0ZW5jaWxBdHRhY2hlZFRoZW5TdGVuY2lsVGVzdFN0YXRlLyogPSBTS0lQCiA2MTY3IE5F
WFVTNVggR0xFUyA6IERlcHRoU3RlbmNpbFRlc3RFUzMuRnJhbWVidWZmZXJDbGVhclRoZW5TdGVu
Y2lsVGVzdFN0YXRlVGhlblN0ZW5jaWxBdHRhY2hlZC8qID0gU0tJUAogNjE2NyBORVhVUzVYIEdM
RVMgOiBEZXB0aFN0ZW5jaWxUZXN0RVMzLlN0ZW5jaWxUZXN0U3RhdGVUaGVuRnJhbWVidWZmZXJD
bGVhclRoZW5TdGVuY2lsQXR0YWNoZWQvKiA9IFNLSVAKQEAgLTQ1NCw2ICs0ODEsMTAgQEAKIDcw
OTYgUElYRUw2IFZVTEtBTiA6IFZ1bGthblBlcmZvcm1hbmNlQ291bnRlclRlc3QuTWFwcGluZ0dw
dVJlYWRPbmx5QnVmZmVyR2hvc3RzQnVmZmVyLyogPSBTS0lQCiA3MDk2IFBJWEVMNiBWVUxLQU4g
OiBWdWxrYW5QZXJmb3JtYW5jZUNvdW50ZXJUZXN0LkNsZWFyVGhlblNjaXNzb3JlZERyYXcvKiA9
IFNLSVAKIDcwOTYgUElYRUw2IFZVTEtBTiA6IFZ1bGthblBlcmZvcm1hbmNlQ291bnRlclRlc3Qu
UmVhZE9ubHlEZXB0aFN0ZW5jaWxGZWVkYmFja0xvb3BVc2VzU2luZ2xlUmVuZGVyUGFzcy8qID0g
U0tJUAorNzE1OCBQSVhFTDYgVlVMS0FOIDogSW1hZ2VUZXN0RVMzLlNvdXJjZUFIQkN1YmVUYXJn
ZXRDdWJlLyogPSBTS0lQCis3MTU4IFBJWEVMNiBWVUxLQU4gOiBJbWFnZVRlc3RFUzMxLlNvdXJj
ZUFIQkN1YmVBcnJheVRhcmdldEN1YmVBcnJheS8qID0gU0tJUAorNzE1OCBQSVhFTDYgVlVMS0FO
IDogSW1hZ2VUZXN0RVMzLlNvdXJjZUFIQk1pcFRhcmdldDJETWlwLyogPSBTS0lQCis3MTU4IFBJ
WEVMNiBWVUxLQU4gOiBJbWFnZVRlc3RFUzMuU291cmNlQUhCTWlwVGFyZ2V0MkRNaXBHZW5lcmF0
ZU1pcG1hcC8qID0gU0tJUAogCiAvLyBBTUQgd2luZG93cyBmYWlsdXJlcy4gIFRoZSBHUFUgYW5k
IGRyaXZlciBvbiBvdXIgYm90cyBhcmUgdmVyeSBvbGQgYW5kIGJ1Z2d5LgogLy8gaHR0cDovL2Ny
YnVnLmNvbS8xMjI0OTk2CkBAIC00NjgsOSArNDk5LDI0IEBACiAxMjI0OTk2IFdJTiBBTUQgVlVM
S0FOIDogR0xTTFRlc3RfRVMzLkluaXRHbG9iYWxDb21wbGV4Q29uc3RhbnQvKiA9IFNLSVAKIDEy
MjQ5OTYgV0lOIEFNRCBWVUxLQU4gOiBHTFNMVGVzdF9FUzMxLlR5cGVzVXNlZEluRGlmZmVyZW50
QmxvY2tTdG9yYWdlcy8qID0gU0tJUAogNzE0NCBXSU4gQU1EIFZVTEtBTiA6IEdMU0xUZXN0LkFs
aWFzaW5nRnVuY3Rpb25PdXRQYXJhbUFuZEdsb2JhbC8qID0gU0tJUAotCiAvLyBUZXN0IGlzIGRp
c2FibGVkIGFzIGl0IG9ubHkgcGVydGFpbnMgdG8gZGVza3RvcCBHTFNMCiA2MTk3IDogR0xTTFRl
c3RfRVMzMS5JbnRlcnBvbGF0ZUF0V2l0aFN3aXp6bGUvKiA9IFNLSVAKKy8vIFRoZSBmb2xsb3dp
bmcgdGVzdHMgYXJlIGRpc2FibGVkIGJlY2F1c2Ugb2YgQU1EIHZ1bGthbiBkcml2ZXIgY3Jhc2gg
b24gY29tcGlsaW5nIGNvbXB1dGUgc2hhZGVyIGZvciBjb252ZXJ0SW5kZXhCdWZmZXJHUFUKKzcy
MjcgV0lOIEFNRCBWVUxLQU4gOiBEcmF3RWxlbWVudHNUZXN0LlBhcnRPZkluZGV4QnVmZmVyVGhl
bkFsbC8qID0gU0tJUAorNzIyNyBXSU4gQU1EIFZVTEtBTiA6IEdMU0xUZXN0X0VTMy5HTFZlcnRl
eElESW50ZWdlclRleHR1cmVEcmF3RWxlbWVudHNVOC8qID0gU0tJUAorNzIyNyBXSU4gQU1EIFZV
TEtBTiA6IEluZGV4ZWRQb2ludHNUZXN0VUJ5dGUuKiA9IFNLSVAKKzcyMjcgV0lOIEFNRCBWVUxL
QU4gOiBJbnN0YW5jaW5nVGVzdC5JbmRleGVkQXR0cmliMFRyaUZhbkJ1ZmZlciogPSBTS0lQCis3
MjI3IFdJTiBBTUQgVlVMS0FOIDogSW5zdGFuY2luZ1Rlc3QuSW5kZXhlZEF0dHJpYjFUcmlGYW5C
dWZmZXIqID0gU0tJUAorNzIyNyBXSU4gQU1EIFZVTEtBTiA6IE11bHRpc2FtcGxlVGVzdC5Db250
ZW50UHJlc2V2ZWRBZnRlckludGVycnVwdGlvbi8qID0gU0tJUAorNzIyNyBXSU4gQU1EIFZVTEtB
TiA6IFJvYnVzdFJlc291cmNlSW5pdFRlc3QuT3V0T2ZCb3VuZHNJbmRleEJ1ZmZlcnMvKiA9IFNL
SVAKKzcyMjcgV0lOIEFNRCBWVUxLQU4gOiBTaW1wbGVTdGF0ZUNoYW5nZVRlc3QuRHJhd0VsZW1l
bnRzVGhlbkRyYXdFbGVtZW50c05ld0luZGV4QnVmZmVyLyogPSBTS0lQCis3MjI3IFdJTiBBTUQg
VlVMS0FOIDogU2ltcGxlU3RhdGVDaGFuZ2VUZXN0LkRyYXdFbGVtZW50c1VCWVRFWDJUaGVuRHJh
d0VsZW1lbnRzVVNIT1JULyogPSBTS0lQCis3MjI3IFdJTiBBTUQgVlVMS0FOIDogU2ltcGxlU3Rh
dGVDaGFuZ2VUZXN0LlVwZGF0ZUJvdW5kRWxlbWVudEFycmF5QnVmZmVyLyogPSBTS0lQCis3MjI3
IFdJTiBBTUQgVlVMS0FOIDogVHJpYW5nbGVGYW5EcmF3VGVzdC5EcmF3VHJpYW5nbGVGYW5FbGVt
ZW50cy8qID0gU0tJUAorNzIyNyBXSU4gQU1EIFZVTEtBTiA6IFRyaWFuZ2xlRmFuRHJhd1Rlc3Qu
RHJhd1RyaWFuZ2xlRmFuUHJpbWl0aXZlUmVzdGFydEF0KiA9IFNLSVAKKzcyMjcgV0lOIEFNRCBW
VUxLQU4gOiBXZWJHTENvbXBhdGliaWxpdHlUZXN0LkRyYXdFbGVtZW50c0J1ZmZlck91dE9mQm91
bmRzSW5JbmRleEJ1ZmZlci8qID0gU0tJUAorNzIyNyBXSU4gQU1EIFZVTEtBTiA6IFdlYkdMQ29t
cGF0aWJpbGl0eVRlc3QuRHJhd0VsZW1lbnRzQnVmZmVyT3V0T2ZCb3VuZHNJblZlcnRleEJ1ZmZl
ci8qID0gU0tJUAorNzIyNyBXSU4gQU1EIFZVTEtBTiA6IFdlYkdMQ29tcGF0aWJpbGl0eVRlc3Qu
RHJhd0VsZW1lbnRzT2Zmc2V0UmVzdHJpY3Rpb24vKiA9IFNLSVAKIAogLy8gU2xvdyB0ZXN0cwog
NTA3NiA6IEdMU0xUZXN0LlZlcmlmeU1heFZlcnRleFVuaWZvcm1WZWN0b3JzKiA9IFRJTUVPVVQK
QEAgLTUxNSw4ICs1NjEsOCBAQAogNjc1MSBEM0QxMSA6IE11bHRpRHJhd0luZGlyZWN0VGVzdC5N
dWx0aURyYXdFbGVtZW50c0luZGlyZWN0KiA9IFNLSVAKIDY3NTEgRDNEMTEgOiBEcmF3QmFzZVZl
cnRleEJhc2VJbnN0YW5jZVRlc3QuTXVsdGlEcmF3RWxlbWVudHNJbnN0YW5jZWRCYXNlVmVydGV4
QmFzZUluc3RhbmNlLyogPSBTS0lQCiAKLS8vIEFTQU4gZmxha2VzIHdpdGggVnVsa2FuIC8gU3dp
ZnRTaGFkZXIgLyBBc3luY1F1ZXVlCi02ODc1IEFTQU4gVlVMS0FOIFNXSUZUU0hBREVSIDogQ29t
cHV0ZVNoYWRlclRlc3QuKi9FUzNfMV9WdWxrYW5fU3dpZnRTaGFkZXJfQXN5bmNRdWV1ZSA9IFNL
SVAKKy8vIEFTQU4gZmxha2VzIHdpdGggVnVsa2FuIC8gU3dpZnRTaGFkZXIgLyBBc3luY0NvbW1h
bmRRdWV1ZQorNjg3NSBBU0FOIFZVTEtBTiBTV0lGVFNIQURFUiA6IENvbXB1dGVTaGFkZXJUZXN0
LiovRVMzXzFfVnVsa2FuX1N3aWZ0U2hhZGVyX0FzeW5jQ29tbWFuZFF1ZXVlID0gU0tJUAogNjg3
NSBTV0lGVFNIQURFUiA6IFRyYW5zZm9ybUZlZWRiYWNrVGVzdC5TcGFuTXVsdGlwbGVSZW5kZXJQ
YXNzZXMvKiA9IFNLSVAKIAogNzExMiBTV0lGVFNIQURFUiA6IFRyYW5zZm9ybUZlZWRiYWNrVGVz
dC5CYXNlSW5zdGFuY2UvKiA9IFNLSVAKQEAgLTUyNiw2ICs1NzIsNyBAQAogLy8gQVNBTiBmbGFr
eSB0aW1lb3V0cyBhbmQgY3Jhc2hlcyB3aXRoIFdpbiAvIFZ1bGthbiAvIFN3aWZ0c2hhZGVyCiA2
OTY1IEFTQU4gV0lOIFZVTEtBTiBTV0lGVFNIQURFUiA6IE1pcG1hcFRlc3QqID0gU0tJUAogNjk2
OCBBU0FOIFdJTiBWVUxLQU4gU1dJRlRTSEFERVIgOiBNdWx0aXRocmVhZGluZ1Rlc3QuTXVsdGlD
b250ZXh0RHJhd1dpdGhTd2FwQnVmZmVycy9FUzNfVnVsa2FuX1N3aWZ0U2hhZGVyID0gU0tJUAor
NzE2MCBBU0FOIFdJTiBWVUxLQU4gU1dJRlRTSEFERVIgOiBHZW9tZXRyeVNoYWRlclRlc3QuTGF5
ZXJlZEZyYW1lYnVmZmVyTWlkUmVuZGVyQ2xlYXIzRENvbG9yL0VTM18xX1Z1bGthbl9Td2lmdFNo
YWRlciA9IFNLSVAKIAogLy8gUmVncmVzc2lvbiBhZnRlciBhIGJ1ZmZlciBjaGFuZ2UuCiA2ODgx
IElOVEVMIFZVTEtBTiBMSU5VWCA6IFRleHR1cmUyRFRlc3QuVGV4U3RvcmFnZVdpdGhQQk9NaWRk
bGVQaXhlbERpZmZlcmVudC8qID0gU0tJUApAQCAtNTU5LDMgKzYwNiwxMCBAQAogNzAyOSBOVklE
SUEgR0xFUyA6IEdMU0xUZXN0LlN3aXp6bGVkQ2hhaW5lZEFzc2lnbkluY3JlbWVudC8qID0gU0tJ
UAogCiA3MDg1IDogVnVsa2FuUGVyZm9ybWFuY2VDb3VudGVyVGVzdC5EZXB0aFN0ZW5jaWxJbnZh
bGlkYXRlRHJhd0Rpc2FibGUvKiA9IFNLSVAKKworLy8gRmxha2luZyBkdWUgdG8gdGhyZWFkaW5n
IHVzYWdlIG9mIHRoZSBxdWV1ZQorNzIwNCA6IFZ1bGthbkltYWdlVGVzdC5QcmVJbml0aWFsaXpl
ZE9uR0xJbXBvcnQvKkFzeW5jQ29tbWFuZFF1ZXVlID0gU0tJUAorCisvLyBDYXVzZXMgaW5jb21w
YXRpYmxlIGVycm9yIGluIEdMIGJhY2stZW5kLgorNzIxOCBPUEVOR0wgOiBUcmFuc2Zvcm1GZWVk
YmFja1Rlc3QuRHJhd0FmdGVyRGVsZXRpbmdQYXVzZWRCdWZmZXIvKiA9IFNLSVAKKzcyMTggR0xF
UyA6IFRyYW5zZm9ybUZlZWRiYWNrVGVzdC5EcmF3QWZ0ZXJEZWxldGluZ1BhdXNlZEJ1ZmZlci8q
ID0gU0tJUApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3RzL2Fu
Z2xlX3BlcmZ0ZXN0cy5nbmkgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvYW5n
bGVfcGVyZnRlc3RzLmduaQppbmRleCBkZDRlMTRlMzNjYmY5YmNhZWUxMmUwZjAzYzJhNzNmMjg1
NjVlMjBjLi5lMjYyNjZlZjAzMGJjNjhiNWY5NmIyMWI2ZDVjMzRiYmU2ZGU4NjMxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvYW5nbGVfcGVyZnRlc3RzLmdu
aQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvYW5nbGVfcGVyZnRlc3Rz
LmduaQpAQCAtMjAsNiArMjAsNyBAQCBhbmdsZV9wZXJmX3Rlc3RzX3NvdXJjZXMgPSBbCiAgICJw
ZXJmX3Rlc3RzL0xpbmtQcm9ncmFtUGVyZlRlc3QuY3BwIiwKICAgInBlcmZfdGVzdHMvTWFwQnVm
ZmVyUmFuZ2UuY3BwIiwKICAgInBlcmZfdGVzdHMvTXVsdGlzYW1wbGVkUmVuZGVyVG9UZXh0dXJl
UGVyZi5jcHAiLAorICAicGVyZl90ZXN0cy9NdWx0aXNhbXBsZWRTd2FwY2hhaW5SZXNvbHZlLmNw
cCIsCiAgICJwZXJmX3Rlc3RzL011bHRpdmlld1BlcmYuY3BwIiwKICAgInBlcmZfdGVzdHMvUG9p
bnRTcHJpdGVzLmNwcCIsCiAgICJwZXJmX3Rlc3RzL1ByZVJvdGF0aW9uUGVyZi5jcHAiLApkaWZm
IC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3RzL2NhcHR1cmVfcmVwbGF5
X3Rlc3RzLnB5IGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3RzL2NhcHR1cmVfcmVw
bGF5X3Rlc3RzLnB5CmluZGV4IDNiZDUxMDAzNGE5ZDlhYjkwYjYwYzM5MWZhZDMyNzcwMjljMWY5
ODMuLjBlY2UxNGQ0MmE1YjljMWVmNDRmOWMwMTQ4ZjZlZWY4Y2NhYTdhZWEgMTAwNzU1Ci0tLSBh
L1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9jYXB0dXJlX3JlcGxheV90ZXN0cy5w
eQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvY2FwdHVyZV9yZXBsYXlf
dGVzdHMucHkKQEAgLTg1LDcgKzg1LDEzIEBAIGRlZiB3aW5leHQobmFtZSwgZXh0KToKIAogCiBk
ZWYgQXV0b2RldGVjdEdvbWEoKToKLSAgICByZXR1cm4gd2luZXh0KCdjb21waWxlcl9wcm94eScs
ICdleGUnKSBpbiAocC5uYW1lKCkgZm9yIHAgaW4gcHN1dGlsLnByb2Nlc3NfaXRlcigpKQorICAg
IGZvciBwIGluIHBzdXRpbC5wcm9jZXNzX2l0ZXIoKToKKyAgICAgICAgdHJ5OgorICAgICAgICAg
ICAgaWYgd2luZXh0KCdjb21waWxlcl9wcm94eScsICdleGUnKSA9PSBwLm5hbWUoKToKKyAgICAg
ICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICBleGNlcHQ6CisgICAgICAgICAgICBwYXNz
CisgICAgcmV0dXJuIEZhbHNlCiAKIAogY2xhc3MgU3ViUHJvY2VzcygpOgpkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3RzL2NhcHR1cmVfcmVwbGF5X3Rlc3RzL0Nh
cHR1cmVSZXBsYXlUZXN0cy5jcHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMv
Y2FwdHVyZV9yZXBsYXlfdGVzdHMvQ2FwdHVyZVJlcGxheVRlc3RzLmNwcAppbmRleCA1NTNhZWMw
NWMwMjUyNzhiNWVlZmQwMGZhYWNlZGUwMGVmMWE3ZDIyLi5iYTdmM2Y0MzkwZDlkM2NhNDVkYzkz
OTQ3MWUxYWFiOTY0Njk5MTNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9z
cmMvdGVzdHMvY2FwdHVyZV9yZXBsYXlfdGVzdHMvQ2FwdHVyZVJlcGxheVRlc3RzLmNwcAorKysg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvY2FwdHVyZV9yZXBsYXlfdGVzdHMv
Q2FwdHVyZVJlcGxheVRlc3RzLmNwcApAQCAtODUsOSArODUsOSBAQCBjbGFzcyBDYXB0dXJlUmVw
bGF5VGVzdHMKICAgICAgICAgY29uZmlnUGFyYW1zLndlYkdMQ29tcGF0aWJpbGl0eSAgICA9IHRy
YWNlSW5mby5pc1dlYkdMQ29tcGF0aWJpbGl0eUVuYWJsZWQ7CiAgICAgICAgIGNvbmZpZ1BhcmFt
cy5yb2J1c3RSZXNvdXJjZUluaXQgICAgPSB0cmFjZUluZm8uaXNSb2J1c3RSZXNvdXJjZUluaXRF
bmFibGVkOwogCi0gICAgICAgIG1QbGF0Zm9ybVBhcmFtcy5yZW5kZXJlciAgICAgICAgICAgICAg
ICAgPSB0cmFjZUluZm8uZGlzcGxheVBsYXRmb3JtVHlwZTsKLSAgICAgICAgbVBsYXRmb3JtUGFy
YW1zLmRldmljZVR5cGUgICAgICAgICAgICAgICA9IHRyYWNlSW5mby5kaXNwbGF5RGV2aWNlVHlw
ZTsKLSAgICAgICAgbVBsYXRmb3JtUGFyYW1zLmZvcmNlSW5pdFNoYWRlclZhcmlhYmxlcyA9IEVH
TF9UUlVFOworICAgICAgICBtUGxhdGZvcm1QYXJhbXMucmVuZGVyZXIgICA9IHRyYWNlSW5mby5k
aXNwbGF5UGxhdGZvcm1UeXBlOworICAgICAgICBtUGxhdGZvcm1QYXJhbXMuZGV2aWNlVHlwZSA9
IHRyYWNlSW5mby5kaXNwbGF5RGV2aWNlVHlwZTsKKyAgICAgICAgbVBsYXRmb3JtUGFyYW1zLmVu
YWJsZShhbmdsZTo6RmVhdHVyZTo6Rm9yY2VJbml0U2hhZGVyVmFyaWFibGVzKTsKIAogICAgICAg
ICBpZiAoIW1FR0xXaW5kb3ctPmluaXRpYWxpemVHTChtT1NXaW5kb3csIG1FbnRyeVBvaW50c0xp
Yi5nZXQoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5nbGU6OkdM
RVNEcml2ZXJUeXBlOjpBbmdsZUVHTCwgbVBsYXRmb3JtUGFyYW1zLApkaWZmIC0tZ2l0IGEvU291
cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3RzL2NhcHR1cmVfcmVwbGF5X3Rlc3RzL2NhcHR1
cmVfcmVwbGF5X2V4cGVjdGF0aW9ucy50eHQgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMv
dGVzdHMvY2FwdHVyZV9yZXBsYXlfdGVzdHMvY2FwdHVyZV9yZXBsYXlfZXhwZWN0YXRpb25zLnR4
dAppbmRleCA0MTU0MmIyOWMzOTc2Y2YzMjcxNjVmN2RlMmY4YzU4NTMxOTM0Y2IzLi5iNmFmZjlk
NjgzYzMwZTM2ZTZlYWQ0NDdhNzkxMWFhZmY0YjBiYTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvY2FwdHVyZV9yZXBsYXlfdGVzdHMvY2FwdHVyZV9yZXBs
YXlfZXhwZWN0YXRpb25zLnR4dAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVz
dHMvY2FwdHVyZV9yZXBsYXlfdGVzdHMvY2FwdHVyZV9yZXBsYXlfZXhwZWN0YXRpb25zLnR4dApA
QCAtNzYsNiArNzYsOCBAQAogNjY1NCA6IFVuaWZvcm1UZXN0LlVudXNlZFN0cnVjdElubGluZVVu
aWZvcm0vKiA9IFNLSVBfRk9SX0NBUFRVUkUKIDY2NTQgOiBVbmlmb3JtVGVzdC5VbnVzZWRTdHJ1
Y3RJbmxpbmVVbmlmb3JtV2l0aFNhbXBsZXIvKiA9IFNLSVBfRk9SX0NBUFRVUkUKIAorNzE1MyA6
IEluc3RhbmNpbmdUZXN0RVMzLkxhcmdlc3REaXZpc29yLyogPSBDT01QSUxFX0ZBSUwKKwogIyBG
YWlscyBiZWNhdXNlIG9mIHVuc3VwcG9ydGVkIGNvbWJpbmVkIGRlcHRoL3N0ZW5jaWwgR2V0SW1h
Z2UuCiA0Njg4IEFTQU4gOiBEZXB0aFN0ZW5jaWxUZXN0LkRlcHRoT25seUVtdWxhdGVkV2l0aFBh
Y2tlZC8qID0gRkFJTAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMv
dGVzdHMvY29tcGlsZXJfdGVzdHMvR2VvbWV0cnlTaGFkZXJfdGVzdC5jcHAgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvY29tcGlsZXJfdGVzdHMvR2VvbWV0cnlTaGFkZXJfdGVz
dC5jcHAKaW5kZXggMTRjMDYyNDEyN2FhYjhiYjJiZmI0MGVkNjFkY2QyMDk5YWZiNzA3MS4uZjY5
MTIwZTc4YTViNDgzNmIwNTc1ODExMjJlNzI5ZjgyMmU4Nzk4NiAxMDA2NDQKLS0tIGEvU291cmNl
L1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3RzL2NvbXBpbGVyX3Rlc3RzL0dlb21ldHJ5U2hhZGVy
X3Rlc3QuY3BwCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9jb21waWxl
cl90ZXN0cy9HZW9tZXRyeVNoYWRlcl90ZXN0LmNwcApAQCAtMTIyMCw4ICsxMjIwLDggQEAgVEVT
VF9GKEdlb21ldHJ5U2hhZGVyVGVzdCwgTm9uQXJyYXlJbnB1dCkKICAgICB9CiB9CiAKLS8vIFZl
cmlmeSB0aGF0IGl0IGlzIGEgY29tcGlsZSBlcnJvciB0byBkZWNsYXJlIGFuIHVuc2l6ZWQgR2Vv
bWV0cnkgU2hhZGVyIGlucHV0IGJlZm9yZSBhIHZhbGlkCi0vLyBpbnB1dCBwcmltaXRpdmUgZGVj
bGFyYXRpb24uCisvLyBWZXJpZnkgdGhhdCBjb21waWxhdGlvbiBlcnJvcnMgZG8gbm90IG9jY3Vy
IGV2ZW4gaWYgZGVjbGFyaW5nIGFuIHVuc2l6ZWQgR2VvbWV0cnkgU2hhZGVyIGlucHV0CisvLyBi
ZWZvcmUgYSB2YWxpZCBpbnB1dCBwcmltaXRpdmUgZGVjbGFyYXRpb24uCiBURVNUX0YoR2VvbWV0
cnlTaGFkZXJUZXN0LCBEZWNsYXJlVW5zaXplZElucHV0QmVmb3JlSW5wdXRQcmltaXRpdmUpCiB7
CiAgICAgY29uc3Qgc3RkOjpzdHJpbmcgJnNoYWRlclN0cmluZzEgPQpAQCAtMTI0OSw5ICsxMjQ5
LDkgQEAgVEVTVF9GKEdlb21ldHJ5U2hhZGVyVGVzdCwgRGVjbGFyZVVuc2l6ZWRJbnB1dEJlZm9y
ZUlucHV0UHJpbWl0aXZlKQogICAgICAgICAgICAgaW50IGxlbmd0aCA9IHRleGNvb3JkMi5sZW5n
dGgoKTsKICAgICAgICAgfSkiOwogCi0gICAgaWYgKGNvbXBpbGUoc2hhZGVyU3RyaW5nMSkgfHwg
Y29tcGlsZShzaGFkZXJTdHJpbmcyKSkKKyAgICBpZiAoIWNvbXBpbGUoc2hhZGVyU3RyaW5nMSkg
fHwgIWNvbXBpbGUoc2hhZGVyU3RyaW5nMikpCiAgICAgewotICAgICAgICBGQUlMKCkgPDwgIlNo
YWRlciBjb21waWxhdGlvbiBzdWNjZWVkZWQsIGV4cGVjdGluZyBmYWlsdXJlOlxuIiA8PCBtSW5m
b0xvZzsKKyAgICAgICAgRkFJTCgpIDw8ICJTaGFkZXIgY29tcGlsYXRpb24gZmFpbGVkLCBleHBl
Y3Rpbmcgc3VjY2VzczpcbiIgPDwgbUluZm9Mb2c7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvY29tcGlsZXJfdGVzdHMvS0hSX2JsZW5k
X2VxdWF0aW9uX2FkdmFuY2VkX3Rlc3QuY3BwIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3Jj
L3Rlc3RzL2NvbXBpbGVyX3Rlc3RzL0tIUl9ibGVuZF9lcXVhdGlvbl9hZHZhbmNlZF90ZXN0LmNw
cAppbmRleCA1ZTcyOWI1ZjQyOWUxYTc3MGJmODNmZWYwYmJjYmFkM2M4M2ZmNTk2Li5iM2MzMDJk
Y2MyY2IzY2ZmY2U0MjkxY2E2NWE5ZThhZjQyOWFiZTlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvY29tcGlsZXJfdGVzdHMvS0hSX2JsZW5kX2VxdWF0aW9u
X2FkdmFuY2VkX3Rlc3QuY3BwCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0
cy9jb21waWxlcl90ZXN0cy9LSFJfYmxlbmRfZXF1YXRpb25fYWR2YW5jZWRfdGVzdC5jcHAKQEAg
LTc1LDYgKzc1LDIwIEBAIGNvbnN0IGNoYXIgRVNTTDMxMF9XaXRoX0ZyYW1lYnVmZmVyRmV0Y2hb
XSA9CiAgICAgICAgIG9Db2wgPSBtaXgob0NvbCwgdVNyY0NvbCwgMC41Zik7CiAgICAgfSkiOwog
Citjb25zdCBjaGFyIEVTU0wzMTBfV2l0aF9GcmFtZWJ1ZmZlckZldGNoVmVjM1tdID0KKyAgICBS
IigKKyAgICBwcmVjaXNpb24gaGlnaHAgZmxvYXQ7CisKKyAgICBsYXlvdXQgKGJsZW5kX3N1cHBv
cnRfbXVsdGlwbHkpIG91dDsKKyAgICBsYXlvdXQgKGxvY2F0aW9uID0gMCwgbm9uY29oZXJlbnQp
IGlub3V0IHZlYzMgb0NvbDsKKworICAgIHVuaWZvcm0gdmVjMyB1U3JjQ29sOworCisgICAgdm9p
ZCBtYWluICh2b2lkKQorICAgIHsKKyAgICAgICAgb0NvbCA9IG1peChvQ29sLCB1U3JjQ29sLCAw
LjVmKTsKKyAgICB9KSI7CisKIGNsYXNzIEtIUkJsZW5kRXF1YXRpb25BZHZhbmNlZFRlc3QgOiBw
dWJsaWMgc2g6OlNoYWRlckV4dGVuc2lvblRlc3QKIHsKICAgcHVibGljOgpAQCAtMTM4LDEzICsx
NTIsMjYgQEAgY2xhc3MgS0hSQmxlbmRFcXVhdGlvbkFkdmFuY2VkVGVzdCA6IHB1YmxpYyBzaDo6
U2hhZGVyRXh0ZW5zaW9uVGVzdAogICAgICAgICAgICAgPDwgIiBjb3VsZCBub3QgYmUgY29uc3Ry
dWN0ZWQuIjsKICAgICB9CiAKLSAgICB0ZXN0aW5nOjpBc3NlcnRpb25SZXN1bHQgVGVzdFNoYWRl
ckNvbXBpbGUoU2hTaGFkZXJPdXRwdXQgc2hhZGVyT3V0cHV0VHlwZSwgY29uc3QgY2hhciAqcHJh
Z21hKQorICAgIGVudW0gY2xhc3MgRW11bGF0aW9uCisgICAgeworICAgICAgICBEaXNhYmxlZCwK
KyAgICAgICAgRW5hYmxlZAorICAgIH07CisKKyAgICB0ZXN0aW5nOjpBc3NlcnRpb25SZXN1bHQg
VGVzdFNoYWRlckNvbXBpbGUoU2hTaGFkZXJPdXRwdXQgc2hhZGVyT3V0cHV0VHlwZSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqcHJh
Z21hLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXVs
YXRpb24gZW11bGF0ZSkKICAgICB7CiAgICAgICAgIGNvbnN0IGNoYXIgKnNoYWRlclN0cmluZ3Nb
XSA9IHt0ZXN0aW5nOjpnZXQ8MT4oR2V0UGFyYW0oKSksIHByYWdtYSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3Rpbmc6OmdldDwyPihHZXRQYXJhbSgpKX07CiAK
LSAgICAgICAgYm9vbCBzdWNjZXNzID0gc2g6OkNvbXBpbGUobUNvbXBpbGVyTGlzdFtzaGFkZXJP
dXRwdXRUeXBlXSwgc2hhZGVyU3RyaW5ncywgMywKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgU0hfVkFSSUFCTEVTIHwgU0hfT0JKRUNUX0NPREUpOworICAgICAgICBTaENvbXBp
bGVPcHRpb25zIGNvbXBpbGVGbGFncyA9IFNIX1ZBUklBQkxFUyB8IFNIX09CSkVDVF9DT0RFOwor
ICAgICAgICBpZiAoZW11bGF0ZSA9PSBFbXVsYXRpb246OkVuYWJsZWQpCisgICAgICAgIHsKKyAg
ICAgICAgICAgIGNvbXBpbGVGbGFncyB8PSBTSF9BRERfQURWQU5DRURfQkxFTkRfRVFVQVRJT05T
X0VNVUxBVElPTjsKKyAgICAgICAgfQorCisgICAgICAgIGJvb2wgc3VjY2VzcyA9IHNoOjpDb21w
aWxlKG1Db21waWxlckxpc3Rbc2hhZGVyT3V0cHV0VHlwZV0sIHNoYWRlclN0cmluZ3MsIDMsIGNv
bXBpbGVGbGFncyk7CiAgICAgICAgIGlmIChzdWNjZXNzKQogICAgICAgICB7CiAgICAgICAgICAg
ICByZXR1cm4gOjp0ZXN0aW5nOjpBc3NlcnRpb25TdWNjZXNzKCkKQEAgLTE1MywxNyArMTgwLDE3
IEBAIGNsYXNzIEtIUkJsZW5kRXF1YXRpb25BZHZhbmNlZFRlc3QgOiBwdWJsaWMgc2g6OlNoYWRl
ckV4dGVuc2lvblRlc3QKICAgICAgICAgcmV0dXJuIDo6dGVzdGluZzo6QXNzZXJ0aW9uRmFpbHVy
ZSgpIDw8IHNoOjpHZXRJbmZvTG9nKG1Db21waWxlckxpc3Rbc2hhZGVyT3V0cHV0VHlwZV0pOwog
ICAgIH0KIAotICAgIHZvaWQgVGVzdFNoYWRlckNvbXBpbGUoYm9vbCBleHBlY3RhdGlvbiwgY29u
c3QgY2hhciAqcHJhZ21hKQorICAgIHZvaWQgVGVzdFNoYWRlckNvbXBpbGUoYm9vbCBleHBlY3Rh
dGlvbiwgY29uc3QgY2hhciAqcHJhZ21hLCBFbXVsYXRpb24gZW11bGF0ZSkKICAgICB7CiAgICAg
ICAgIGZvciAoYXV0byBzaGFkZXJPdXRwdXRUeXBlIDogbVNoYWRlck91dHB1dExpc3QpCiAgICAg
ICAgIHsKICAgICAgICAgICAgIGlmIChleHBlY3RhdGlvbikKICAgICAgICAgICAgIHsKLSAgICAg
ICAgICAgICAgICBFWFBFQ1RfVFJVRShUZXN0U2hhZGVyQ29tcGlsZShzaGFkZXJPdXRwdXRUeXBl
LmZpcnN0LCBwcmFnbWEpKTsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfVFJVRShUZXN0U2hhZGVy
Q29tcGlsZShzaGFkZXJPdXRwdXRUeXBlLmZpcnN0LCBwcmFnbWEsIGVtdWxhdGUpKTsKICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg
ICBFWFBFQ1RfRkFMU0UoVGVzdFNoYWRlckNvbXBpbGUoc2hhZGVyT3V0cHV0VHlwZS5maXJzdCwg
cHJhZ21hKSk7CisgICAgICAgICAgICAgICAgRVhQRUNUX0ZBTFNFKFRlc3RTaGFkZXJDb21waWxl
KHNoYWRlck91dHB1dFR5cGUuZmlyc3QsIHByYWdtYSwgZW11bGF0ZSkpOwogICAgICAgICAgICAg
fQogICAgICAgICB9CiAgICAgfQpAQCAtMTg3LDIyICsyMTQsMjAgQEAgY2xhc3MgS0hSQmxlbmRF
cXVhdGlvbkFkdmFuY2VkVGVzdCA6IHB1YmxpYyBzaDo6U2hhZGVyRXh0ZW5zaW9uVGVzdAogY2xh
c3MgS0hSQmxlbmRFcXVhdGlvbkFkdmFuY2VkRVMzMTBUZXN0IDogcHVibGljIEtIUkJsZW5kRXF1
YXRpb25BZHZhbmNlZFRlc3QKIHt9OwogCi0vLyBFeHRlbnNpb24gZmxhZyBpcyByZXF1aXJlZCB0
byBjb21waWxlIHByb3Blcmx5LiBFeHBlY3QgZmFpbHVyZSB3aGVuIGl0IGlzCi0vLyBub3QgcHJl
c2VudC4KKy8vIEV4dGVuc2lvbiBmbGFnIGlzIHJlcXVpcmVkIHRvIGNvbXBpbGUgcHJvcGVybHku
IEV4cGVjdCBmYWlsdXJlIHdoZW4gaXQgaXMgbm90IHByZXNlbnQuCiBURVNUX1AoS0hSQmxlbmRF
cXVhdGlvbkFkdmFuY2VkRVMzMTBUZXN0LCBDb21waWxlRmFpbHNXaXRob3V0RXh0ZW5zaW9uKQog
ewogICAgIFNldEV4dGVuc2lvbkVuYWJsZShmYWxzZSk7CiAgICAgSW5pdGlhbGl6ZUNvbXBpbGVy
KCk7Ci0gICAgVGVzdFNoYWRlckNvbXBpbGUoZmFsc2UsIEVYVFByYWdtYSk7CisgICAgVGVzdFNo
YWRlckNvbXBpbGUoZmFsc2UsIEVYVFByYWdtYSwgRW11bGF0aW9uOjpEaXNhYmxlZCk7CiB9CiAK
LS8vIEV4dGVuc2lvbiBkaXJlY3RpdmUgaXMgcmVxdWlyZWQgdG8gY29tcGlsZSBwcm9wZXJseS4g
RXhwZWN0IGZhaWx1cmUgd2hlbgotLy8gaXQgaXMgbm90IHByZXNlbnQuCisvLyBFeHRlbnNpb24g
ZGlyZWN0aXZlIGlzIHJlcXVpcmVkIHRvIGNvbXBpbGUgcHJvcGVybHkuIEV4cGVjdCBmYWlsdXJl
IHdoZW4gaXQgaXMgbm90IHByZXNlbnQuCiBURVNUX1AoS0hSQmxlbmRFcXVhdGlvbkFkdmFuY2Vk
RVMzMTBUZXN0LCBDb21waWxlRmFpbHNXaXRoRXh0ZW5zaW9uV2l0aG91dFByYWdtYSkKIHsKICAg
ICBTZXRFeHRlbnNpb25FbmFibGUodHJ1ZSk7CiAgICAgSW5pdGlhbGl6ZUNvbXBpbGVyKCk7Ci0g
ICAgVGVzdFNoYWRlckNvbXBpbGUoZmFsc2UsICIiKTsKKyAgICBUZXN0U2hhZGVyQ29tcGlsZShm
YWxzZSwgIiIsIEVtdWxhdGlvbjo6RGlzYWJsZWQpOwogfQogCiBJTlNUQU5USUFURV9URVNUX1NV
SVRFX1AoQ29ycmVjdEVTU0wzMTBTaGFkZXJzLApAQCAtMjExLDYgKzIzNiw3IEBAIElOU1RBTlRJ
QVRFX1RFU1RfU1VJVEVfUChDb3JyZWN0RVNTTDMxMFNoYWRlcnMsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBWYWx1ZXMoc2g6OkVTU0xWZXJzaW9uMzEwKSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFZhbHVlcyhFU1NMMzEwX1NpbXBsZSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFU1NMMzEwX1dpdGhfRnJhbWVidWZmZXJGZXRj
aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFU1NMMzEwX1dpdGhf
RnJhbWVidWZmZXJGZXRjaFZlYzMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgRVNTTDMxMF9EZWNsYXJlZE11bHRpcGx5U2NyZWVuU2VwYXJhdGVseSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFU1NMMzEwX0RlY2xhcmVkTXVsdGlwbHlT
Y3JlZW5TdWNjZXNzaXZlbHkpKSk7CiAKQEAgLTIzMSwxNiArMjU3LDI0IEBAIGNsYXNzIEtIUkJs
ZW5kRXF1YXRpb25BZHZhbmNlZFN1Y2Nlc3NUZXN0IDogcHVibGljIEtIUkJsZW5kRXF1YXRpb25B
ZHZhbmNlZFRlc3QKIGNsYXNzIEtIUkJsZW5kRXF1YXRpb25BZHZhbmNlZEVTMzEwU3VjY2Vzc1Rl
c3QgOiBwdWJsaWMgS0hSQmxlbmRFcXVhdGlvbkFkdmFuY2VkU3VjY2Vzc1Rlc3QKIHt9OwogCi0v
LyBXaXRoIGV4dGVuc2lvbiBmbGFnIGFuZCBleHRlbnNpb24gZGlyZWN0aXZlLCBjb21waWxpbmcg
c3VjY2VlZHMuCi0vLyBBbHNvIHRlc3QgdGhhdCB0aGUgZXh0ZW5zaW9uIGRpcmVjdGl2ZSBzdGF0
ZSBpcyByZXNldCBjb3JyZWN0bHkuCisvLyBXaXRoIGV4dGVuc2lvbiBmbGFnIGFuZCBleHRlbnNp
b24gZGlyZWN0aXZlLCBjb21waWxpbmcgc3VjY2VlZHMuICBBbHNvIHRlc3QgdGhhdCB0aGUgZXh0
ZW5zaW9uCisvLyBkaXJlY3RpdmUgc3RhdGUgaXMgcmVzZXQgY29ycmVjdGx5LgogVEVTVF9QKEtI
UkJsZW5kRXF1YXRpb25BZHZhbmNlZEVTMzEwU3VjY2Vzc1Rlc3QsIENvbXBpbGVTdWNjZWVkc1dp
dGhFeHRlbnNpb25BbmRQcmFnbWEpCiB7CiAgICAgU2V0RXh0ZW5zaW9uRW5hYmxlKHRydWUpOwog
ICAgIEluaXRpYWxpemVDb21waWxlcigpOwotICAgIFRlc3RTaGFkZXJDb21waWxlKHRydWUsIEVY
VFByYWdtYSk7CisgICAgVGVzdFNoYWRlckNvbXBpbGUodHJ1ZSwgRVhUUHJhZ21hLCBFbXVsYXRp
b246OkRpc2FibGVkKTsKICAgICAvLyBUZXN0IHJlc2V0IGZ1bmN0aW9uYWxpdHkuCi0gICAgVGVz
dFNoYWRlckNvbXBpbGUoZmFsc2UsICIiKTsKLSAgICBUZXN0U2hhZGVyQ29tcGlsZSh0cnVlLCBF
WFRQcmFnbWEpOworICAgIFRlc3RTaGFkZXJDb21waWxlKGZhbHNlLCAiIiwgRW11bGF0aW9uOjpE
aXNhYmxlZCk7CisgICAgVGVzdFNoYWRlckNvbXBpbGUodHJ1ZSwgRVhUUHJhZ21hLCBFbXVsYXRp
b246OkRpc2FibGVkKTsKK30KKworLy8gU2FtZSBhcyBDb21waWxlU3VjY2VlZHNXaXRoRXh0ZW5z
aW9uQW5kUHJhZ21hIGJ1dCB3aXRoIGVtdWxhdGlvbi4KK1RFU1RfUChLSFJCbGVuZEVxdWF0aW9u
QWR2YW5jZWRFUzMxMFN1Y2Nlc3NUZXN0LCBDb21waWxlU3VjY2VlZHNXaXRoRXh0ZW5zaW9uQW5k
UHJhZ21hV2l0aEVtdWxhdGlvbikKK3sKKyAgICBTZXRFeHRlbnNpb25FbmFibGUodHJ1ZSk7Cisg
ICAgSW5pdGlhbGl6ZUNvbXBpbGVyKCk7CisgICAgVGVzdFNoYWRlckNvbXBpbGUodHJ1ZSwgRVhU
UHJhZ21hLCBFbXVsYXRpb246OkVuYWJsZWQpOwogfQogCiAvLyBUaGUgU0wgI3ZlcnNpb24gMTAw
IHNoYWRlcnMgdGhhdCBhcmUgY29ycmVjdCB3b3JrIHNpbWlsYXJseQpAQCAtMjUxLDYgKzI4NSw3
IEBAIElOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUChDb3JyZWN0RVNTTDMxMFNoYWRlcnMsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZXMoc2g6OkVTU0xWZXJzaW9uMzEwKSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlcyhFU1NMMzEwX1NpbXBsZSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFU1NMMzEwX1dpdGhfRnJh
bWVidWZmZXJGZXRjaCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBF
U1NMMzEwX1dpdGhfRnJhbWVidWZmZXJGZXRjaFZlYzMsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgRVNTTDMxMF9EZWNsYXJlZE11bHRpcGx5U2NyZWVuU2VwYXJhdGVs
eSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFU1NMMzEwX0RlY2xh
cmVkTXVsdGlwbHlTY3JlZW5TdWNjZXNzaXZlbHkpKSk7CiAKQEAgLTI4MCw3ICszMTUsNyBAQCBU
RVNUX1AoS0hSQmxlbmRFcXVhdGlvbkFkdmFuY2VkRW5hYmxlZFNlcGFyYXRlbHlUZXN0LCBEZWNs
YXJlZEVxdWF0aW9uU2VwYXJhdGVseQogewogICAgIFNldEV4dGVuc2lvbkVuYWJsZSh0cnVlKTsK
ICAgICBJbml0aWFsaXplQ29tcGlsZXIoKTsKLSAgICBUZXN0U2hhZGVyQ29tcGlsZSh0cnVlLCBF
WFRQcmFnbWEpOworICAgIFRlc3RTaGFkZXJDb21waWxlKHRydWUsIEVYVFByYWdtYSwgRW11bGF0
aW9uOjpEaXNhYmxlZCk7CiAKICAgICBjb25zdCBTaEhhbmRsZSBjb21waWxlckhhbmRsZSA9IEdl
dENvbXBpbGVySGFuZGxlKFNIX1NQSVJWX1ZVTEtBTl9PVVRQVVQpOwogICAgIGdsOjpCbGVuZEVx
dWF0aW9uQml0U2V0IGVuYWJsZWRCbGVuZEVxdWF0aW9uKHNoOjpHZXRBZHZhbmNlZEJsZW5kRXF1
YXRpb25zKGNvbXBpbGVySGFuZGxlKSk7CkBAIC0yODgsNiArMzIzLDE0IEBAIFRFU1RfUChLSFJC
bGVuZEVxdWF0aW9uQWR2YW5jZWRFbmFibGVkU2VwYXJhdGVseVRlc3QsIERlY2xhcmVkRXF1YXRp
b25TZXBhcmF0ZWx5CiAgICAgRVhQRUNUX1RSVUUoZW5hYmxlZEJsZW5kRXF1YXRpb24udGVzdChn
bDo6QmxlbmRFcXVhdGlvblR5cGU6OlNjcmVlbikpOwogfQogCisvLyBTYW1lIGFzIERlY2xhcmVk
RXF1YXRpb25TZXBhcmF0ZWx5IGJ1dCB3aXRoIGVtdWxhdGlvbi4KK1RFU1RfUChLSFJCbGVuZEVx
dWF0aW9uQWR2YW5jZWRFbmFibGVkU2VwYXJhdGVseVRlc3QsIERlY2xhcmVkRXF1YXRpb25TZXBh
cmF0ZWx5V2l0aEVtdWxhdGlvbikKK3sKKyAgICBTZXRFeHRlbnNpb25FbmFibGUodHJ1ZSk7Cisg
ICAgSW5pdGlhbGl6ZUNvbXBpbGVyKCk7CisgICAgVGVzdFNoYWRlckNvbXBpbGUodHJ1ZSwgRVhU
UHJhZ21hLCBFbXVsYXRpb246OkVuYWJsZWQpOworfQorCiBJTlNUQU5USUFURV9URVNUX1NVSVRF
X1AoQ29ycmVjdEVTU0wzMTBTaGFkZXJzLAogICAgICAgICAgICAgICAgICAgICAgICAgIEtIUkJs
ZW5kRXF1YXRpb25BZHZhbmNlZEVuYWJsZWRTZXBhcmF0ZWx5VGVzdCwKICAgICAgICAgICAgICAg
ICAgICAgICAgICBDb21iaW5lKFZhbHVlcyhTSF9HTEVTM18xX1NQRUMpLApAQCAtMzAzLDcgKzM0
Niw3IEBAIFRFU1RfUChLSFJCbGVuZEVxdWF0aW9uQWR2YW5jZWRFbmFibGVkU3VjY2Vzc2l2ZWx5
VGVzdCwgRGVjbGFyZWRFcXVhdGlvblN1Y2Nlc3NpCiB7CiAgICAgU2V0RXh0ZW5zaW9uRW5hYmxl
KHRydWUpOwogICAgIEluaXRpYWxpemVDb21waWxlcigpOwotICAgIFRlc3RTaGFkZXJDb21waWxl
KHRydWUsIEVYVFByYWdtYSk7CisgICAgVGVzdFNoYWRlckNvbXBpbGUodHJ1ZSwgRVhUUHJhZ21h
LCBFbXVsYXRpb246OkRpc2FibGVkKTsKIAogICAgIGNvbnN0IFNoSGFuZGxlIGNvbXBpbGVySGFu
ZGxlID0gR2V0Q29tcGlsZXJIYW5kbGUoU0hfU1BJUlZfVlVMS0FOX09VVFBVVCk7CiAgICAgZ2w6
OkJsZW5kRXF1YXRpb25CaXRTZXQgZW5hYmxlZEJsZW5kRXF1YXRpb24oc2g6OkdldEFkdmFuY2Vk
QmxlbmRFcXVhdGlvbnMoY29tcGlsZXJIYW5kbGUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGly
ZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9kZXFwX3N1cHBvcnQvZGVxcF9nbGVzMl9UZXN0RXhwZWN0
YXRpb25zIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3RzL2RlcXBfc3VwcG9ydC9k
ZXFwX2dsZXMyX1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMDJhZWZmMzc5ODc3NTAzOGFiOGZlNjVl
ZDAxODA2YjIxZTgzYjM0Ni4uZjk4MzU4Zjc3ZDRlODIxZGZkYWUxYzE1NzRiNTliMzE5YzhlYTUx
NiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3RzL2RlcXBfc3Vw
cG9ydC9kZXFwX2dsZXMyX1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvU291cmNlL1RoaXJkUGFydHkv
QU5HTEUvc3JjL3Rlc3RzL2RlcXBfc3VwcG9ydC9kZXFwX2dsZXMyX1Rlc3RFeHBlY3RhdGlvbnMK
QEAgLTkwLDExICs5MCw2IEBACiAzMjk5IEQzRDExIEFNRCA6IGRFUVAtR0xFUzIuZnVuY3Rpb25h
bC50ZXh0dXJlLnZlcnRleC5jdWJlLndyYXAucmVwZWF0X3JlcGVhdCA9IEZBSUwKIDMyOTkgRDNE
MTEgQU1EIDogZEVRUC1HTEVTMi5mdW5jdGlvbmFsLnRleHR1cmUudmVydGV4LmN1YmUud3JhcC5y
ZXBlYXRfbWlycm9yID0gRkFJTAogCi0vLyBRdWFkcm8gUDQwMAotLy8gVE9ETyhqbWFkaWxsKTog
TmFycm93IHRvIFA0MDAgZGV2aWNlIG9ubHk6IDB4MUNCMy4KLTIyMjIgRDNEMTEgTlZJRElBIDog
ZEVRUC1HTEVTMi5mdW5jdGlvbmFsLnNoYWRlcnMuZnVuY3Rpb25zLmNvbnRyb2xfZmxvdy5yZXR1
cm5faW5fbmVzdGVkX2xvb3BfZnJhZ21lbnQgPSBGQUlMCi0yMjIyIEQzRDExIE5WSURJQSA6IGRF
UVAtR0xFUzIuZnVuY3Rpb25hbC5zaGFkZXJzLmZ1bmN0aW9ucy5jb250cm9sX2Zsb3cucmV0dXJu
X2luX25lc3RlZF9sb29wX3ZlcnRleCA9IEZBSUwKLQogLy8gQU1EIEdQVSB2ZXJ0ZXggc2hhZGVy
IHRleHR1cmUgc2FtcGxpbmcgaXMgbm90IHByZWNpc2UgZW5vdWdoIHdoZW4gcmVuZGVyaW5nIHRv
IDMyLWJpdCBiYWNrYnVmZmVycwogMjMzNyBEM0QxMSBBTUQgOiBkRVFQLUdMRVMyLmZ1bmN0aW9u
YWwudGV4dHVyZS52ZXJ0ZXguMmQud3JhcC4qID0gRkFJTAogMjMzNyBEM0QxMSBBTUQgOiBkRVFQ
LUdMRVMyLmZ1bmN0aW9uYWwudGV4dHVyZS52ZXJ0ZXguMmQuZmlsdGVyaW5nLmxpbmVhcl9taXBt
YXBfbGluZWFyXyogPSBGQUlMCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9z
cmMvdGVzdHMvZGVxcF9zdXBwb3J0L2RlcXBfZ2xlczMxX1Rlc3RFeHBlY3RhdGlvbnMgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvZGVxcF9zdXBwb3J0L2RlcXBfZ2xlczMxX1Rl
c3RFeHBlY3RhdGlvbnMKaW5kZXggZmU5ODIzZTVmZWQwNWIwZDdkOGQ0Zjc2YmU2NTY0MjQzMjRk
ZWI2Ni4uNTM0ZWUzMmVkN2JlNjAzNGI2YThiNmMxYjVlYTk3ZWVhZjhhYWE2OSAxMDA2NDQKLS0t
IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3RzL2RlcXBfc3VwcG9ydC9kZXFwX2ds
ZXMzMV9UZXN0RXhwZWN0YXRpb25zCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90
ZXN0cy9kZXFwX3N1cHBvcnQvZGVxcF9nbGVzMzFfVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjQsNyAr
MjQsNiBAQAogLy8gQmVsb3cgY2FzZXMgYXJlIGZhaWxlZCBkdWUgdG8gYmluZGluZyBtdWx0aS1V
QVZzIHRvIGEgc2luZ2xlIGJ1ZmZlciBpcyBub3Qgc3VwcG9ydGVkIGluIEQzRCBiYWNrZW5kLgog
Ly8gaHR0cDovL2FuZ2xlYnVnLmNvbS8zMDMyCiAzMDMyIEQzRDExIDogZEVRUC1HTEVTMzEuZnVu
Y3Rpb25hbC5zc2JvLmxheW91dC4qLnNpbmdsZV9idWZmZXIqID0gRkFJTAotMzAzMiBEM0QxMSA6
IGRFUVAtR0xFUzMxLmZ1bmN0aW9uYWwuc3Niby5sYXlvdXQucmFuZG9tLm5lc3RlZF9zdHJ1Y3Rz
X2FycmF5c19pbnN0YW5jZV9hcnJheXMuMTMgPSBGQUlMCiAzMDMyIEQzRDExIDogZEVRUC1HTEVT
MzEuZnVuY3Rpb25hbC5zc2JvLmxheW91dC5yYW5kb20uYWxsX3NoYXJlZF9idWZmZXIqID0gRkFJ
TAogCiAxNDQyIEQzRDExIDogZEVRUC1HTEVTMzEuZnVuY3Rpb25hbC5zdGF0ZV9xdWVyeS5pbnRl
Z2VyLm1heF9jb21wdXRlX2F0b21pY19jb3VudGVyc18qID0gRkFJTApAQCAtMTA2LDEzICsxMDUs
MTEgQEAKIDUxOTcgTElOVVggT1BFTkdMIDogZEVRUC1HTEVTMzEuZnVuY3Rpb25hbC5jb21wdXRl
LmluZGlyZWN0X2Rpc3BhdGNoLmdlbl9pbl9jb21wdXRlLmxhcmdlX29mZnNldF9tdWx0aXBsZV9p
bnZvY2F0aW9ucyA9IFRJTUVPVVQKIAogLy8gT3BlbkdML0QzRDExIEZhaWxpbmcgVGVzdHMKLTE5
NTEgRDNEMTEgOiBkRVFQLUdMRVMzMS5mdW5jdGlvbmFsLnNoYWRlcnMub3BhcXVlX3R5cGVfaW5k
ZXhpbmcuc3Niby4qID0gU0tJUAogMTQ0MiBPUEVOR0wgOiBkRVFQLUdMRVMzMS5mdW5jdGlvbmFs
LnNoYWRlcnMub3BhcXVlX3R5cGVfaW5kZXhpbmcuKiA9IEZBSUwKIDE0NDIgRDNEMTEgOiBkRVFQ
LUdMRVMzMS5mdW5jdGlvbmFsLnNoYWRlcnMub3BhcXVlX3R5cGVfaW5kZXhpbmcuKiA9IEZBSUwK
IDE0NDIgT1BFTkdMIDogZEVRUC1HTEVTMzEuZnVuY3Rpb25hbC5zZXBhcmF0ZV9zaGFkZXIuKiA9
IFNLSVAKIDE0NDIgRDNEMTEgOiBkRVFQLUdMRVMzMS5mdW5jdGlvbmFsLnNlcGFyYXRlX3NoYWRl
ci4qID0gU0tJUAogMTQ0MiBPUEVOR0wgOiBkRVFQLUdMRVMzMS5mdW5jdGlvbmFsLnN0YXRlX3F1
ZXJ5LnByb2dyYW0ucHJvZ3JhbV9zZXBhcmFibGVfZ2V0X3Byb2dyYW1pdiA9IEZBSUwKLTE0NDIg
RDNEMTEgOiBkRVFQLUdMRVMzMS5mdW5jdGlvbmFsLnN0YXRlX3F1ZXJ5LnByb2dyYW0ucHJvZ3Jh
bV9zZXBhcmFibGVfZ2V0X3Byb2dyYW1pdiA9IEZBSUwKIDE0NDIgT1BFTkdMIDogZEVRUC1HTEVT
MzEuZnVuY3Rpb25hbC5zdGF0ZV9xdWVyeS5wcm9ncmFtX3BpcGVsaW5lLiogPSBTS0lQCiAxNDQy
IEQzRDExIDogZEVRUC1HTEVTMzEuZnVuY3Rpb25hbC5zdGF0ZV9xdWVyeS5wcm9ncmFtX3BpcGVs
aW5lLiogPSBTS0lQCiAKQEAgLTE2Myw4ICsxNjAsMTEgQEAKIC8vIENhbm5vdCBjcmVhdGUgMkQg
KGFycmF5KSB2aWV3IG9mIDNEIHRleHR1cmUuICBUaGVzZSBmYWlsIHdpdGggdmFsaWRhdGlvbiBl
cnJvcnMsIGFuZCBjYXVzZSBhIGNyYXNoIGluIHN5bmN2YWwuCiAzODg2IFZVTEtBTiA6IGRFUVAt
R0xFUzMxLmZ1bmN0aW9uYWwuaW1hZ2VfbG9hZF9zdG9yZS4zZC4qc2luZ2xlX2xheWVyID0gU0tJ
UAogCi0vLyBGcmFtZWJ1ZmZlciBmZXRjaCBpbXBsZW1lbnRhdGlvbiBidWcKLTY5MDkgVlVMS0FO
IDogZEVRUC1HTEVTMzEuZnVuY3Rpb25hbC5zaGFkZXJzLmZyYW1lYnVmZmVyX2ZldGNoLmJhc2lj
LmZyYW1lYnVmZmVyX3RleHR1cmVfbGF5ZXIgPSBTS0lQCisvLyBFbXVsYXRlZCBhZHZhbmNlZCBi
bGVuZCBlcXVhdGlvbnMgKG9ubHkgTnZpZGlhIGFuZCBTd2lmdFNoYWRlciBzdXBwb3J0IHRoZSBW
dWxrYW4gZXh0ZW5zaW9uKToKKzM1ODYgQU1EIFZVTEtBTiA6IGRFUVAtR0xFUzMxLmZ1bmN0aW9u
YWwuYmxlbmRfZXF1YXRpb25fYWR2YW5jZWQubXNhYS4qID0gRkFJTAorMzU4NiBJTlRFTCBWVUxL
QU4gOiBkRVFQLUdMRVMzMS5mdW5jdGlvbmFsLmJsZW5kX2VxdWF0aW9uX2FkdmFuY2VkLm1zYWEu
KiA9IEZBSUwKKzM1ODYgUElYRUw0T1JYTCBWVUxLQU4gOiBkRVFQLUdMRVMzMS5mdW5jdGlvbmFs
LmJsZW5kX2VxdWF0aW9uX2FkdmFuY2VkLm1zYWEuKiA9IEZBSUwKKzM1ODYgUElYRUw2IFZVTEtB
TiA6IGRFUVAtR0xFUzMxLmZ1bmN0aW9uYWwuYmxlbmRfZXF1YXRpb25fYWR2YW5jZWQubXNhYS4q
ID0gRkFJTAogCiAvLy8vCiAvLy8vIEFNRCBWdWxrYW4gZXhwZWN0YXRpb25zCkBAIC0zODAsNiAr
MzgwLDEyIEBACiAvLyBUaGlzIGZhaWxzIG9uIHByZS1yZWxlYXNlIEFuZHJvaWQgVCBkcml2ZXJz
IGFzIG9mIDMvMjUvMjI6CiA1NDMwIFBJWEVMNiBWVUxLQU4gOiBkRVFQLUdMRVMzMS5mdW5jdGlv
bmFsLmdlb21ldHJ5X3NoYWRpbmcucXVlcnkucHJpbWl0aXZlc19nZW5lcmF0ZWRfKiA9IEZBSUwK
IAorLy8gRmFpbHMgb24gQW5kcm9pZCAxMyBEUDIKKzY4NzYgUElYRUw2IFZVTEtBTiA6IGRFUVAt
R0xFUzMxLmZ1bmN0aW9uYWwuc2hhZGVycy5tdWx0aXNhbXBsZV9pbnRlcnBvbGF0aW9uLnNhbXBs
ZV9xdWFsaWZpZXIubXVsdGlzYW1wbGVfKjEgPSBGQUlMCis2ODc2IFBJWEVMNiBWVUxLQU4gOiBk
RVFQLUdMRVMzMS5mdW5jdGlvbmFsLnNoYWRlcnMubXVsdGlzYW1wbGVfaW50ZXJwb2xhdGlvbi5z
YW1wbGVfcXVhbGlmaWVyLm11bHRpc2FtcGxlXyoyID0gRkFJTAorNjg3NiBQSVhFTDYgVlVMS0FO
IDogZEVRUC1HTEVTMzEuZnVuY3Rpb25hbC5zaGFkZXJzLm11bHRpc2FtcGxlX2ludGVycG9sYXRp
b24uc2FtcGxlX3F1YWxpZmllci5tdWx0aXNhbXBsZV8qNCA9IEZBSUwKKzY4NzYgUElYRUw2IFZV
TEtBTiA6IGRFUVAtR0xFUzMxLmZ1bmN0aW9uYWwuc2hhZGVycy5tdWx0aXNhbXBsZV9pbnRlcnBv
bGF0aW9uLnNhbXBsZV9xdWFsaWZpZXIubXVsdGlzYW1wbGVfKjggPSBGQUlMCisKIC8vIEFTQU4g
VGVzdCBidWdzCiA2Njc4IEFTQU4gOiBkRVFQLUdMRVMzMS5mdW5jdGlvbmFsLnNzYm8uYXJyYXlf
bGVuZ3RoLiogPSBTS0lQCiA2Njc4IEFTQU4gOiBkRVFQLUdMRVMzMS5mdW5jdGlvbmFsLmRlYnVn
Lm5lZ2F0aXZlX2NvdmVyYWdlLioudGV4cGFyYW1ldGVyKnYgPSBTS0lQCmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvZGVxcF9zdXBwb3J0L2RlcXBfZ2xlczNf
VGVzdEV4cGVjdGF0aW9ucyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9kZXFw
X3N1cHBvcnQvZGVxcF9nbGVzM19UZXN0RXhwZWN0YXRpb25zCmluZGV4IDViMGQzNWYxNWQyNThl
NWU5MDFmMWE4ZTEyNWU4NjEyZmE0ZjdmNjkuLjllMTAzYjA3OGU0YzJmZTVjYWJiZmI1MWY3NmM2
NmRlOGQwNGZjZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0
cy9kZXFwX3N1cHBvcnQvZGVxcF9nbGVzM19UZXN0RXhwZWN0YXRpb25zCisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9kZXFwX3N1cHBvcnQvZGVxcF9nbGVzM19UZXN0RXhw
ZWN0YXRpb25zCkBAIC02OSwxOCArNjksNiBAQAogLy8gRHJhd0J1ZmZlcnMgdGVzdCBmYWlsaW5n
IG9uIEQzRDExLgogMzI5OCBXSU4gRDNEMTEgOiBkRVFQLUdMRVMzLmZ1bmN0aW9uYWwuc2hhZGVy
cy5mcmFnZGF0YS5kcmF3X2J1ZmZlcnMgPSBGQUlMCiAKLS8vIFRPRE8oam1hZGlsbCwgY3dhbGxl
eik6IHRyaWFnZSB0aGUgZmFpbHVyZXMgYmVsb3cgaW50byBwZXJtYW5lbnQgYW5kIHRlbXBvcmFy
eSBmYWlsdXJlcwotCi0vLyBRdWFkcm8gUDQwMAotLy8gVE9ETyhqbWFkaWxsKTogTmFycm93IHRv
IFA0MDAgZGV2aWNlIG9ubHk6IDB4MUNCMy4KLTIyMjIgRDNEMTEgTlZJRElBIDogZEVRUC1HTEVT
My5mdW5jdGlvbmFsLnNoYWRlcnMuZnVuY3Rpb25zLmNvbnRyb2xfZmxvdy5yZXR1cm5faW5fbmVz
dGVkX2xvb3BfZnJhZ21lbnQgPSBGQUlMCi0yMjIyIEQzRDExIE5WSURJQSA6IGRFUVAtR0xFUzMu
ZnVuY3Rpb25hbC5zaGFkZXJzLmZ1bmN0aW9ucy5jb250cm9sX2Zsb3cucmV0dXJuX2luX25lc3Rl
ZF9sb29wX3ZlcnRleCA9IEZBSUwKLTIyMjIgRDNEMTEgTlZJRElBIDogZEVRUC1HTEVTMy5mdW5j
dGlvbmFsLnRleHR1cmUubWlwbWFwLjJkLm1pbl9sb2QubGluZWFyX25lYXJlc3QgPSBGQUlMCi0y
MjIyIEQzRDExIE5WSURJQSA6IGRFUVAtR0xFUzMuZnVuY3Rpb25hbC50ZXh0dXJlLm1pcG1hcC4y
ZC5taW5fbG9kLm5lYXJlc3RfbmVhcmVzdCA9IEZBSUwKLTIyMjIgRDNEMTEgTlZJRElBIDogZEVR
UC1HTEVTMy5mdW5jdGlvbmFsLnRleHR1cmUubWlwbWFwLjNkLm1pbl9sb2QubGluZWFyX25lYXJl
c3QgPSBGQUlMCi0yMjIyIEQzRDExIE5WSURJQSA6IGRFUVAtR0xFUzMuZnVuY3Rpb25hbC50ZXh0
dXJlLm1pcG1hcC4zZC5taW5fbG9kLm5lYXJlc3RfbmVhcmVzdCA9IEZBSUwKLTIyMjIgRDNEMTEg
TlZJRElBIDogZEVRUC1HTEVTMy5mdW5jdGlvbmFsLnRleHR1cmUubWlwbWFwLmN1YmUubWluX2xv
ZC5saW5lYXJfbmVhcmVzdCA9IEZBSUwKLTIyMjIgRDNEMTEgTlZJRElBIDogZEVRUC1HTEVTMy5m
dW5jdGlvbmFsLnRleHR1cmUubWlwbWFwLmN1YmUubWluX2xvZC5uZWFyZXN0X25lYXJlc3QgPSBG
QUlMCiAvLyBGYWlscyBvbiA0NTEuNDggZHJpdmVyIHZlcnNpb24KIDQ5NDggRDNEMTEgTlZJRElB
IDogZEVRUC1HTEVTMy5mdW5jdGlvbmFsLnNoYWRlcnMudGV4dHVyZV9mdW5jdGlvbnMudGV4dHVy
ZXNpemUuKiA9IEZBSUwKIApAQCAtNTM4LDkgKzUyNiw2IEBACiA0MDE2IFNXSUZUU0hBREVSIDog
ZEVRUC1HTEVTMy5mdW5jdGlvbmFsLmZyYWdtZW50X29wcy5pbnRlcmFjdGlvbi5iYXNpY19zaGFk
ZXIuMjcgPSBGQUlMCiA0MDE2IFNXSUZUU0hBREVSIDogZEVRUC1HTEVTMy5mdW5jdGlvbmFsLmZy
YWdtZW50X29wcy5pbnRlcmFjdGlvbi5iYXNpY19zaGFkZXIuODAgPSBGQUlMCiAKLS8vIEZhaWxz
IG9uIFN3QU5HTEUgYm90cwotNDQxOCBTV0lGVFNIQURFUiA6IGRFUVAtR0xFUzMuZnVuY3Rpb25h
bC5uZWdhdGl2ZV9hcGkuYnVmZmVyLmZyYW1lYnVmZmVyX3RleHR1cmVfbGF5ZXIgPSBGQUlMCi0K
IC8vIEZsYWt5IHRpbWVvdXRzIG9uIFN3QU5HTEUKIDExNzMyMzcgU1dJRlRTSEFERVIgOiBkRVFQ
LUdMRVMzLmZ1bmN0aW9uYWwuc2hhZGVycy5idWlsdGluX2Z1bmN0aW9ucy5wcmVjaXNpb24uZmFj
ZWZvcndhcmQubG93cF9mcmFnbWVudC52ZWM0ID0gVElNRU9VVAogMTE3MzIzNyBTV0lGVFNIQURF
UiA6IGRFUVAtR0xFUzMuZnVuY3Rpb25hbC5zaGFkZXJzLmJ1aWx0aW5fZnVuY3Rpb25zLnByZWNp
c2lvbi5mYWNlZm9yd2FyZC5sb3dwX3ZlcnRleC52ZWM0ID0gVElNRU9VVApkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3RzL2RlcXBfc3VwcG9ydC9kZXFwX2tocl9n
bGVzMzFfVGVzdEV4cGVjdGF0aW9ucyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0
cy9kZXFwX3N1cHBvcnQvZGVxcF9raHJfZ2xlczMxX1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggOWYw
NDUwYjdhYWMzZmQ0NDY5NjMxY2Y2OTdiYzM5MTMyOTllZDI5My4uNWM1OWUyMGU3Y2VmZTliNzNi
ZmU3MzMyZWEyZDJjZjViZjk0MjFjYSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5H
TEUvc3JjL3Rlc3RzL2RlcXBfc3VwcG9ydC9kZXFwX2tocl9nbGVzMzFfVGVzdEV4cGVjdGF0aW9u
cworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvZGVxcF9zdXBwb3J0L2Rl
cXBfa2hyX2dsZXMzMV9UZXN0RXhwZWN0YXRpb25zCkBAIC0yNzMsMTEgKzI3Myw5IEBACiA2OTE4
IFBJWEVMNiBWVUxLQU4gOiBLSFItR0xFUzMxLmNvcmUuc2hhZGVyX3N0b3JhZ2VfYnVmZmVyX29i
amVjdC5hZHZhbmNlZC11c2FnZS1vcGVyYXRvcnMtY3MgPSBGQUlMCiA2OTE4IFBJWEVMNiBWVUxL
QU4gOiBLSFItR0xFUzMxLmNvcmUuc2hhZGVyX3N0b3JhZ2VfYnVmZmVyX29iamVjdC5iYXNpYy1v
cGVyYXRpb25zLWNhc2UxLWNzID0gRkFJTAogCi0vLyBUaGVzZSB0ZXN0cyBmYWlsIG9uIHByZS1y
ZWxlYXNlIEFuZHJvaWQgVCBkcml2ZXJzIGFzIG9mIDMvMjUvMjI6Ci02OTE4IFBJWEVMNiBWVUxL
QU4gOiBLSFItR0xFUzMxLmNvcmUuZ2VvbWV0cnlfc2hhZGVyLmFwaS5tYXhfYXRvbWljX2NvdW50
ZXJzID0gRkFJTAotNjkxOCBQSVhFTDYgVlVMS0FOIDogS0hSLUdMRVMzMS5jb3JlLmdlb21ldHJ5
X3NoYWRlci5sYXllcmVkX3JlbmRlcmluZy5sYXllcmVkX3JlbmRlcmluZyA9IEZBSUwKLTY5MTgg
UElYRUw2IFZVTEtBTiA6IEtIUi1HTEVTMzEuY29yZS5nZW9tZXRyeV9zaGFkZXIubGlua2luZy5t
b3JlX0FDQnNfaW5fR1NfdGhhbl9zdXBwb3J0ZWQgPSBGQUlMCi0KKy8vIEZhaWxzIG9uIEFuZHJv
aWQgMTMgRFAyCis2ODc2IFBJWEVMNiBWVUxLQU4gOiBLSFItR0xFUzMxLmNvcmUuc2hhZGVyX211
bHRpc2FtcGxlX2ludGVycG9sYXRpb24ucmVuZGVyLnNhbXBsZS4qMiA9IEZBSUwKKzY4NzYgUElY
RUw2IFZVTEtBTiA6IEtIUi1HTEVTMzEuY29yZS5zaGFkZXJfbXVsdGlzYW1wbGVfaW50ZXJwb2xh
dGlvbi5yZW5kZXIuc2FtcGxlLio0ID0gRkFJTAogCiAvLyBTbG93IHRlc3RzCiA1NzU1IFNXSUZU
U0hBREVSIDogS0hSLUdMRVMzMS5jb3JlLmFycmF5c19vZl9hcnJheXMuU2l6ZWREZWNsYXJhdGlv
bnNQcmltaXRpdmUgPSBUSU1FT1VUCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdM
RS9zcmMvdGVzdHMvZGVxcF9zdXBwb3J0L3RjdUFOR0xFTmF0aXZlRGlzcGxheUZhY3RvcnkuY3Bw
IGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3RzL2RlcXBfc3VwcG9ydC90Y3VBTkdM
RU5hdGl2ZURpc3BsYXlGYWN0b3J5LmNwcAppbmRleCAwYzcxOWI4NThhNjYwNWQ5NjVkMzg0MGE1
ZDg4N2EwOWVmMmE3YmI0Li41NDAzNjg2ZjBmZDI5MTdmYzI1ZjIyMDg1YmU2NjU4MWIwMDZlZWU4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvZGVxcF9zdXBw
b3J0L3RjdUFOR0xFTmF0aXZlRGlzcGxheUZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9UaGlyZFBh
cnR5L0FOR0xFL3NyYy90ZXN0cy9kZXFwX3N1cHBvcnQvdGN1QU5HTEVOYXRpdmVEaXNwbGF5RmFj
dG9yeS5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJ0Y3VUZXh0dXJlLmhwcCIKICNp
bmNsdWRlICJ1dGlsL09TUGl4bWFwLmgiCiAjaW5jbHVkZSAidXRpbC9PU1dpbmRvdy5oIgorI2lu
Y2x1ZGUgInV0aWwvYW5nbGVfZmVhdHVyZXNfYXV0b2dlbi5oIgogCiAvLyBjbGFuZy1mb3JtYXQg
b2ZmCiAjaWYgKERFX09TID09IERFX09TX1dJTjMyKQpAQCAtNDQxLDE1ICs0NDIsMTggQEAgQU5H
TEVOYXRpdmVEaXNwbGF5RmFjdG9yeTo6QU5HTEVOYXRpdmVEaXNwbGF5RmFjdG9yeSgKIAogICAg
ICAgICBmb3IgKDsgKmVuYWJsZWRGZWF0dXJlczsgKytlbmFibGVkRmVhdHVyZXMpCiAgICAgICAg
IHsKLSAgICAgICAgICAgIGlmIChzdHJjbXAoZW5hYmxlZEZlYXR1cmVzWzBdLCAiZW11bGF0ZWRQ
cmVyb3RhdGlvbjkwIikgPT0gMCkKKyAgICAgICAgICAgIGlmIChzdHJjbXAoZW5hYmxlZEZlYXR1
cmVzWzBdLAorICAgICAgICAgICAgICAgICAgICAgICBhbmdsZTo6R2V0RmVhdHVyZU5hbWUoYW5n
bGU6OkZlYXR1cmU6OkVtdWxhdGVkUHJlcm90YXRpb245MCkpID09IDApCiAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgcHJlUm90YXRpb24gPSA5MDsKICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIGVsc2UgaWYgKHN0cmNtcChlbmFibGVkRmVhdHVyZXNbMF0sICJlbXVsYXRlZFByZXJv
dGF0aW9uMTgwIikgPT0gMCkKKyAgICAgICAgICAgIGVsc2UgaWYgKHN0cmNtcChlbmFibGVkRmVh
dHVyZXNbMF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5nbGU6OkdldEZlYXR1cmVO
YW1lKGFuZ2xlOjpGZWF0dXJlOjpFbXVsYXRlZFByZXJvdGF0aW9uMTgwKSkgPT0gMCkKICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICBwcmVSb3RhdGlvbiA9IDE4MDsKICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIGVsc2UgaWYgKHN0cmNtcChlbmFibGVkRmVhdHVyZXNbMF0sICJlbXVs
YXRlZFByZXJvdGF0aW9uMjcwIikgPT0gMCkKKyAgICAgICAgICAgIGVsc2UgaWYgKHN0cmNtcChl
bmFibGVkRmVhdHVyZXNbMF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5nbGU6Okdl
dEZlYXR1cmVOYW1lKGFuZ2xlOjpGZWF0dXJlOjpFbXVsYXRlZFByZXJvdGF0aW9uMjcwKSkgPT0g
MCkKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBwcmVSb3RhdGlvbiA9IDI3MDsKICAg
ICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0
cy9kZXFwX3N1cHBvcnQvdGN1QU5HTEVQbGF0Zm9ybS5jcHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9B
TkdMRS9zcmMvdGVzdHMvZGVxcF9zdXBwb3J0L3RjdUFOR0xFUGxhdGZvcm0uY3BwCmluZGV4IDUw
ZjQ1YTdmOTc5OGE3ZmNlMWY5YjdmYjM1NmJkNjEwODFlNGIzYWMuLmIxMTlhOWZjZjI3ZGU3OTg2
ZmZlYjY2NDY0NzM1MTI2NmEzNzkwNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FO
R0xFL3NyYy90ZXN0cy9kZXFwX3N1cHBvcnQvdGN1QU5HTEVQbGF0Zm9ybS5jcHAKKysrIGIvU291
cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3RzL2RlcXBfc3VwcG9ydC90Y3VBTkdMRVBsYXRm
b3JtLmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImVnbHVHTENvbnRleHRGYWN0b3J5
LmhwcCIKICNpbmNsdWRlICJ0Y3VBTkdMRU5hdGl2ZURpc3BsYXlGYWN0b3J5LmgiCiAjaW5jbHVk
ZSAidGN1TnVsbENvbnRleHRGYWN0b3J5LmhwcCIKKyNpbmNsdWRlICJ1dGlsL2FuZ2xlX2ZlYXR1
cmVzX2F1dG9nZW4uaCIKICNpbmNsdWRlICJ1dGlsL3Rlc3RfdXRpbHMuaCIKIAogc3RhdGljX2Fz
c2VydChFR0xfRE9OVF9DQVJFID09IC0xLCAiVW5leHBlY3RlZCB2YWx1ZSBmb3IgRUdMX0RPTlRf
Q0FSRSIpOwpAQCAtNDAsMTkgKzQxLDIzIEBAIEFOR0xFUGxhdGZvcm06OkFOR0xFUGxhdGZvcm0o
YW5nbGU6OkxvZ0Vycm9yRnVuYyBsb2dFcnJvckZ1bmMsIHVpbnQzMl90IHByZVJvdGF0CiAKICAg
ICAvLyBFbmFibGUgbm9uLWNvbmZvcm1hbnQgRVMgdmVyc2lvbnMgYW5kIGV4dGVuc2lvbnMgZm9y
IHRlc3RpbmcuICBPdXIgdGVzdCBleHBlY3RhdGlvbnMgd291bGQKICAgICAvLyBzdXBwcmVzcyBm
YWlsaW5nIHRlc3RzLCBidXQgYWxsb3dpbmcgY29udGludW91cyB0ZXN0aW5nIG9mIHRoZSBwaWVj
ZXMgdGhhdCBhcmUgaW1wbGVtZW50ZWQuCi0gICAgbUVuYWJsZUZlYXR1cmVPdmVycmlkZXMucHVz
aF9iYWNrKCJleHBvc2VOb25Db25mb3JtYW50RXh0ZW5zaW9uc0FuZFZlcnNpb25zIik7CisgICAg
bUVuYWJsZUZlYXR1cmVPdmVycmlkZXMucHVzaF9iYWNrKAorICAgICAgICBhbmdsZTo6R2V0RmVh
dHVyZU5hbWUoYW5nbGU6OkZlYXR1cmU6OkV4cG9zZU5vbkNvbmZvcm1hbnRFeHRlbnNpb25zQW5k
VmVyc2lvbnMpKTsKIAogICAgIC8vIENyZWF0ZSBwcmUtcm90YXRpb24gYXR0cmlidXRlcy4KICAg
ICBzd2l0Y2ggKHByZVJvdGF0aW9uKQogICAgIHsKICAgICAgICAgY2FzZSA5MDoKLSAgICAgICAg
ICAgIG1FbmFibGVGZWF0dXJlT3ZlcnJpZGVzLnB1c2hfYmFjaygiZW11bGF0ZWRQcmVyb3RhdGlv
bjkwIik7CisgICAgICAgICAgICBtRW5hYmxlRmVhdHVyZU92ZXJyaWRlcy5wdXNoX2JhY2soCisg
ICAgICAgICAgICAgICAgYW5nbGU6OkdldEZlYXR1cmVOYW1lKGFuZ2xlOjpGZWF0dXJlOjpFbXVs
YXRlZFByZXJvdGF0aW9uOTApKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIDE4
MDoKLSAgICAgICAgICAgIG1FbmFibGVGZWF0dXJlT3ZlcnJpZGVzLnB1c2hfYmFjaygiZW11bGF0
ZWRQcmVyb3RhdGlvbjE4MCIpOworICAgICAgICAgICAgbUVuYWJsZUZlYXR1cmVPdmVycmlkZXMu
cHVzaF9iYWNrKAorICAgICAgICAgICAgICAgIGFuZ2xlOjpHZXRGZWF0dXJlTmFtZShhbmdsZTo6
RmVhdHVyZTo6RW11bGF0ZWRQcmVyb3RhdGlvbjE4MCkpOwogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIGNhc2UgMjcwOgotICAgICAgICAgICAgbUVuYWJsZUZlYXR1cmVPdmVycmlkZXMucHVz
aF9iYWNrKCJlbXVsYXRlZFByZXJvdGF0aW9uMjcwIik7CisgICAgICAgICAgICBtRW5hYmxlRmVh
dHVyZU92ZXJyaWRlcy5wdXNoX2JhY2soCisgICAgICAgICAgICAgICAgYW5nbGU6OkdldEZlYXR1
cmVOYW1lKGFuZ2xlOjpGZWF0dXJlOjpFbXVsYXRlZFByZXJvdGF0aW9uMjcwKSk7CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIGJyZWFrOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3RzL2VnbF90ZXN0cy9FR0xCdWZm
ZXJBZ2VUZXN0LmNwcCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9lZ2xfdGVz
dHMvRUdMQnVmZmVyQWdlVGVzdC5jcHAKaW5kZXggMjY0NzY4YjIzMWIxZjYzYmNiM2UxMDA1OTg5
YzMwMjY1YTViNGEyNy4uMmI2YjdhN2QzMTk4ZDY3MGQxMDRhOTNhNzUxNzA4YWY2YzgzZDA4NSAx
MDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3RzL2VnbF90ZXN0cy9F
R0xCdWZmZXJBZ2VUZXN0LmNwcAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVz
dHMvZWdsX3Rlc3RzL0VHTEJ1ZmZlckFnZVRlc3QuY3BwCkBAIC00Miw3ICs0Miw3IEBAIGNsYXNz
IEVHTEJ1ZmZlckFnZVRlc3QgOiBwdWJsaWMgQU5HTEVUZXN0CiAgICAgICAgIEFTU0VSVF9FR0xf
U1VDQ0VTUygpIDw8ICJFcnJvciBkdXJpbmcgdGVzdCBUZWFyRG93biI7CiAgICAgfQogCi0gICAg
Ym9vbCBjaG9vc2VDb25maWcoRUdMQ29uZmlnICpjb25maWcpIGNvbnN0CisgICAgdmlydHVhbCBi
b29sIGNob29zZUNvbmZpZyhFR0xDb25maWcgKmNvbmZpZykgY29uc3QKICAgICB7CiAgICAgICAg
IGJvb2wgcmVzdWx0ICAgICAgICAgID0gZmFsc2U7CiAgICAgICAgIEVHTGludCBjb3VudCAgICAg
ICAgID0gMDsKQEAgLTEwMyw2ICsxMDMsNzggQEAgY2xhc3MgRUdMQnVmZmVyQWdlVGVzdCA6IHB1
YmxpYyBBTkdMRVRlc3QKICAgICBib29sIG1FeHRlbnNpb25TdXBwb3J0ZWQgPSBmYWxzZTsKIH07
CiAKK2NsYXNzIEVHTEJ1ZmZlckFnZVRlc3RfTVNBQSA6IHB1YmxpYyBFR0xCdWZmZXJBZ2VUZXN0
Cit7CisgIHB1YmxpYzoKKyAgICBFR0xCdWZmZXJBZ2VUZXN0X01TQUEoKSA6IEVHTEJ1ZmZlckFn
ZVRlc3QoKSB7fQorCisgICAgYm9vbCBjaG9vc2VDb25maWcoRUdMQ29uZmlnICpjb25maWcpIGNv
bnN0IG92ZXJyaWRlCisgICAgeworICAgICAgICBib29sIHJlc3VsdCAgICAgICAgICA9IGZhbHNl
OworICAgICAgICBFR0xpbnQgY291bnQgICAgICAgICA9IDA7CisgICAgICAgIEVHTGludCBjbGll
bnRWZXJzaW9uID0gbU1ham9yVmVyc2lvbiA9PSAzID8gRUdMX09QRU5HTF9FUzNfQklUIDogRUdM
X09QRU5HTF9FUzJfQklUOworICAgICAgICBFR0xpbnQgYXR0cmlic1tdICAgICA9IHtFR0xfUkVE
X1NJWkUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgOCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBFR0xfR1JFRU5fU0laRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA4
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVHTF9CTFVFX1NJWkUsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgOCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBFR0xfQUxQ
SEFfU0laRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA4LAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEVHTF9SRU5ERVJBQkxFX1RZUEUsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY2xpZW50VmVyc2lvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBFR0xfU0FN
UExFX0JVRkZFUlMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBFR0xfU0FNUExFUywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVHTF9TVVJGQUNFX1RZUEUsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgRUdMX1dJTkRPV19CSVQsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgRUdMX05PTkV9OworCisgICAgICAgIHJlc3VsdCA9IGVnbENob29zZUNvbmZp
ZyhtRGlzcGxheSwgYXR0cmlicywgY29uZmlnLCAxLCAmY291bnQpOworICAgICAgICBFWFBFQ1Rf
RUdMX1RSVUUocmVzdWx0ICYmIChjb3VudCA+IDApKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsK
KyAgICB9Cit9OworCitjbGFzcyBFR0xCdWZmZXJBZ2VUZXN0X01TQUFfRFMgOiBwdWJsaWMgRUdM
QnVmZmVyQWdlVGVzdAoreworICBwdWJsaWM6CisgICAgRUdMQnVmZmVyQWdlVGVzdF9NU0FBX0RT
KCkgOiBFR0xCdWZmZXJBZ2VUZXN0KCkge30KKworICAgIGJvb2wgY2hvb3NlQ29uZmlnKEVHTENv
bmZpZyAqY29uZmlnKSBjb25zdCBvdmVycmlkZQorICAgIHsKKyAgICAgICAgYm9vbCByZXN1bHQg
ICAgICAgICAgPSBmYWxzZTsKKyAgICAgICAgRUdMaW50IGNvdW50ICAgICAgICAgPSAwOworICAg
ICAgICBFR0xpbnQgY2xpZW50VmVyc2lvbiA9IG1NYWpvclZlcnNpb24gPT0gMyA/IEVHTF9PUEVO
R0xfRVMzX0JJVCA6IEVHTF9PUEVOR0xfRVMyX0JJVDsKKyAgICAgICAgRUdMaW50IGF0dHJpYnNb
XSAgICAgPSB7RUdMX1JFRF9TSVpFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDgsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgRUdMX0dSRUVOX1NJWkUsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgOCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBFR0xfQkxVRV9T
SVpFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDgsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgRUdMX0FMUEhBX1NJWkUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgOCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBFR0xfREVQVEhfU0laRSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVHTF9TVEVO
Q0lMX1NJWkUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgOCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBFR0xfUkVOREVSQUJMRV9UWVBFLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNsaWVudFZlcnNpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgRUdMX1NB
TVBMRV9CVUZGRVJTLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgRUdMX1NBTVBMRVMsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgNCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBFR0xfU1VSRkFDRV9UWVBFLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEVHTF9XSU5ET1dfQklULAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEVHTF9OT05FfTsKKworICAgICAgICByZXN1bHQgPSBlZ2xDaG9vc2VDb25m
aWcobURpc3BsYXksIGF0dHJpYnMsIGNvbmZpZywgMSwgJmNvdW50KTsKKyAgICAgICAgRVhQRUNU
X0VHTF9UUlVFKHJlc3VsdCAmJiAoY291bnQgPiAwKSk7CisgICAgICAgIHJldHVybiByZXN1bHQ7
CisgICAgfQorfTsKKwogLy8gUXVlcnkgZm9yIGJ1ZmZlciBhZ2UKIFRFU1RfUChFR0xCdWZmZXJB
Z2VUZXN0LCBRdWVyeUJ1ZmZlckFnZSkKIHsKQEAgLTIyOCw2ICszMDAsMTQ0IEBAIFRFU1RfUChF
R0xCdWZmZXJBZ2VUZXN0LCBWZXJpZnlDb250ZW50cykKICAgICBjb250ZXh0ID0gRUdMX05PX0NP
TlRFWFQ7CiB9CiAKKy8vIFZlcmlmeSBjb250ZW50cyBvZiBidWZmZXIgYXJlIGFzIGV4cGVjdGVk
IGZvciBhIG11bHRpc2FtcGxlIGltYWdlCitURVNUX1AoRUdMQnVmZmVyQWdlVGVzdF9NU0FBLCBW
ZXJpZnlDb250ZW50c0Zvck11bHRpc2FtcGxlZCkKK3sKKyAgICBBTkdMRV9TS0lQX1RFU1RfSUYo
IW1FeHRlbnNpb25TdXBwb3J0ZWQpOworCisgICAgRUdMQ29uZmlnIGNvbmZpZyA9IEVHTF9OT19D
T05GSUdfS0hSOworICAgIEVYUEVDVF9UUlVFKGNob29zZUNvbmZpZygmY29uZmlnKSk7CisKKyAg
ICBFR0xDb250ZXh0IGNvbnRleHQgPSBFR0xfTk9fQ09OVEVYVDsKKyAgICBFWFBFQ1RfVFJVRShj
cmVhdGVDb250ZXh0KGNvbmZpZywgJmNvbnRleHQpKTsKKyAgICBBU1NFUlRfRUdMX1NVQ0NFU1Mo
KSA8PCAiZWdsQ3JlYXRlQ29udGV4dCBmYWlsZWQuIjsKKworICAgIEVHTFN1cmZhY2Ugc3VyZmFj
ZSA9IEVHTF9OT19TVVJGQUNFOworCisgICAgT1NXaW5kb3cgKm9zV2luZG93ID0gT1NXaW5kb3c6
Ok5ldygpOworICAgIG9zV2luZG93LT5pbml0aWFsaXplKCJFR0xCdWZmZXJBZ2VUZXN0X01TQUEi
LCBrV2lkdGgsIGtIZWlnaHQpOworICAgIEVYUEVDVF9UUlVFKGNyZWF0ZVdpbmRvd1N1cmZhY2Uo
Y29uZmlnLCBvc1dpbmRvdy0+Z2V0TmF0aXZlV2luZG93KCksICZzdXJmYWNlKSk7CisgICAgQVNT
RVJUX0VHTF9TVUNDRVNTKCkgPDwgImVnbENyZWF0ZVdpbmRvd1N1cmZhY2UgZmFpbGVkLiI7CisK
KyAgICBFWFBFQ1RfVFJVRShlZ2xNYWtlQ3VycmVudChtRGlzcGxheSwgc3VyZmFjZSwgc3VyZmFj
ZSwgY29udGV4dCkpOworICAgIEFTU0VSVF9FR0xfU1VDQ0VTUygpIDw8ICJlZ2xNYWtlQ3VycmVu
dCBmYWlsZWQuIjsKKworICAgIHN0ZDo6dmVjdG9yPGFuZ2xlOjpHTENvbG9yPiBrQ29sb3JTZXQ7
CisgICAgZm9yICh1aW50MzJfdCBpID0gMDsgaSA8IDE2OyBpKyspCisgICAgeworICAgICAgICBr
Q29sb3JTZXQuZW1wbGFjZV9iYWNrKGkgKiAxMCwgMCwgMCwgMjU1KTsKKyAgICB9CisKKyAgICAv
LyBTZXQgdXAKKyAgICBnbENsZWFyQ29sb3IoMCwgMCwgMCwgMCk7CisgICAgZ2xDbGVhckRlcHRo
ZigwLjApOworICAgIGdsQ2xlYXIoR0xfQ09MT1JfQlVGRkVSX0JJVCB8IEdMX0RFUFRIX0JVRkZF
Ul9CSVQpOworCisgICAgRUdMaW50IGFnZSAgICAgPSAwOworICAgIEdMdWludCBwcm9ncmFtID0g
Q29tcGlsZVByb2dyYW0oZXNzbDFfc2hhZGVyczo6dnM6OlNpbXBsZSgpLCBlc3NsMV9zaGFkZXJz
Ojpmczo6VW5pZm9ybUNvbG9yKCkpOworICAgIEdMaW50IGNvbG9yTG9jYXRpb24gPSBnbEdldFVu
aWZvcm1Mb2NhdGlvbihwcm9ncmFtLCBlc3NsMV9zaGFkZXJzOjpDb2xvclVuaWZvcm0oKSk7CisK
KyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGtDb2xvclNldC5zaXplKCk7IGkrKykKKyAgICB7
CisgICAgICAgIGFnZSA9IHF1ZXJ5QWdlKHN1cmZhY2UpOworICAgICAgICBpZiAoYWdlID4gMCkK
KyAgICAgICAgeworICAgICAgICAgICAgLy8gQ2hlY2sgdGhhdCBjb2xvci9jb250ZW50IGlzIHdo
YXQgd2UgZXhwZWN0CisgICAgICAgICAgICBhbmdsZTo6R0xDb2xvciBleHBlY3RlZENvbG9yID0g
a0NvbG9yU2V0W2kgLSBhZ2VdOworICAgICAgICAgICAgRVhQRUNUX1BJWEVMX0NPTE9SX0VRKDEs
IDEsIGV4cGVjdGVkQ29sb3IpOworICAgICAgICB9CisgICAgICAgIGdsQmluZEZyYW1lYnVmZmVy
KEdMX0ZSQU1FQlVGRkVSLCAwKTsKKyAgICAgICAgZ2xVc2VQcm9ncmFtKHByb2dyYW0pOworICAg
ICAgICBnbFVuaWZvcm00ZnYoY29sb3JMb2NhdGlvbiwgMSwga0NvbG9yU2V0W2ldLnRvTm9ybWFs
aXplZFZlY3RvcigpLmRhdGEoKSk7CisgICAgICAgIGRyYXdRdWFkKHByb2dyYW0sIGVzc2wxX3No
YWRlcnM6OlBvc2l0aW9uQXR0cmliKCksIDAuNWYpOworCisgICAgICAgIGVnbFN3YXBCdWZmZXJz
KG1EaXNwbGF5LCBzdXJmYWNlKTsKKyAgICAgICAgQVNTRVJUX0VHTF9TVUNDRVNTKCkgPDwgImVn
bFN3YXBCdWZmZXJzIGZhaWxlZC4iOworICAgIH0KKworICAgIEVYUEVDVF9HRShhZ2UsIDApOwor
CisgICAgRVhQRUNUX1RSVUUoZWdsTWFrZUN1cnJlbnQobURpc3BsYXksIEVHTF9OT19TVVJGQUNF
LCBFR0xfTk9fU1VSRkFDRSwgY29udGV4dCkpOworICAgIEFTU0VSVF9FR0xfU1VDQ0VTUygpIDw8
ICJlZ2xNYWtlQ3VycmVudCAtIHVuY3VycmVudCBmYWlsZWQuIjsKKworICAgIGVnbERlc3Ryb3lT
dXJmYWNlKG1EaXNwbGF5LCBzdXJmYWNlKTsKKyAgICBzdXJmYWNlID0gRUdMX05PX1NVUkZBQ0U7
CisgICAgb3NXaW5kb3ctPmRlc3Ryb3koKTsKKyAgICBPU1dpbmRvdzo6RGVsZXRlKCZvc1dpbmRv
dyk7CisKKyAgICBlZ2xEZXN0cm95Q29udGV4dChtRGlzcGxheSwgY29udGV4dCk7CisgICAgY29u
dGV4dCA9IEVHTF9OT19DT05URVhUOworfQorCisvLyBWZXJpZnkgY29udGVudHMgb2YgYnVmZmVy
IGFyZSBhcyBleHBlY3RlZCBmb3IgYSBtdWx0aXNhbXBsZSBpbWFnZSB3aXRoIGRlcHRoL3N0ZW5j
aWwgZW5hYmxlZAorVEVTVF9QKEVHTEJ1ZmZlckFnZVRlc3RfTVNBQV9EUywgVmVyaWZ5Q29udGVu
dHNGb3JNdWx0aXNhbXBsZWRXaXRoRGVwdGhTdGVuY2lsKQoreworICAgIEFOR0xFX1NLSVBfVEVT
VF9JRighbUV4dGVuc2lvblN1cHBvcnRlZCk7CisKKyAgICBFR0xDb25maWcgY29uZmlnID0gRUdM
X05PX0NPTkZJR19LSFI7CisgICAgRVhQRUNUX1RSVUUoY2hvb3NlQ29uZmlnKCZjb25maWcpKTsK
KworICAgIEVHTENvbnRleHQgY29udGV4dCA9IEVHTF9OT19DT05URVhUOworICAgIEVYUEVDVF9U
UlVFKGNyZWF0ZUNvbnRleHQoY29uZmlnLCAmY29udGV4dCkpOworICAgIEFTU0VSVF9FR0xfU1VD
Q0VTUygpIDw8ICJlZ2xDcmVhdGVDb250ZXh0IGZhaWxlZC4iOworCisgICAgRUdMU3VyZmFjZSBz
dXJmYWNlID0gRUdMX05PX1NVUkZBQ0U7CisKKyAgICBPU1dpbmRvdyAqb3NXaW5kb3cgPSBPU1dp
bmRvdzo6TmV3KCk7CisgICAgb3NXaW5kb3ctPmluaXRpYWxpemUoIkVHTEJ1ZmZlckFnZVRlc3Rf
TVNBQSIsIGtXaWR0aCwga0hlaWdodCk7CisgICAgRVhQRUNUX1RSVUUoY3JlYXRlV2luZG93U3Vy
ZmFjZShjb25maWcsIG9zV2luZG93LT5nZXROYXRpdmVXaW5kb3coKSwgJnN1cmZhY2UpKTsKKyAg
ICBBU1NFUlRfRUdMX1NVQ0NFU1MoKSA8PCAiZWdsQ3JlYXRlV2luZG93U3VyZmFjZSBmYWlsZWQu
IjsKKworICAgIEVYUEVDVF9UUlVFKGVnbE1ha2VDdXJyZW50KG1EaXNwbGF5LCBzdXJmYWNlLCBz
dXJmYWNlLCBjb250ZXh0KSk7CisgICAgQVNTRVJUX0VHTF9TVUNDRVNTKCkgPDwgImVnbE1ha2VD
dXJyZW50IGZhaWxlZC4iOworCisgICAgc3RkOjp2ZWN0b3I8YW5nbGU6OkdMQ29sb3I+IGtDb2xv
clNldDsKKyAgICBmb3IgKHVpbnQzMl90IGkgPSAwOyBpIDwgMTY7IGkrKykKKyAgICB7CisgICAg
ICAgIGtDb2xvclNldC5lbXBsYWNlX2JhY2soaSAqIDEwLCAwLCAwLCAyNTUpOworICAgIH0KKwor
ICAgIC8vIFNldCB1cAorICAgIGdsQ2xlYXJDb2xvcigwLCAwLCAwLCAwKTsKKyAgICBnbENsZWFy
RGVwdGhmKDAuMCk7CisgICAgZ2xDbGVhcihHTF9DT0xPUl9CVUZGRVJfQklUIHwgR0xfREVQVEhf
QlVGRkVSX0JJVCB8IEdMX1NURU5DSUxfQlVGRkVSX0JJVCk7CisKKyAgICBFR0xpbnQgYWdlICAg
ICA9IDA7CisgICAgR0x1aW50IHByb2dyYW0gPSBDb21waWxlUHJvZ3JhbShlc3NsMV9zaGFkZXJz
Ojp2czo6U2ltcGxlKCksIGVzc2wxX3NoYWRlcnM6OmZzOjpVbmlmb3JtQ29sb3IoKSk7CisgICAg
R0xpbnQgY29sb3JMb2NhdGlvbiA9IGdsR2V0VW5pZm9ybUxvY2F0aW9uKHByb2dyYW0sIGVzc2wx
X3NoYWRlcnM6OkNvbG9yVW5pZm9ybSgpKTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
a0NvbG9yU2V0LnNpemUoKTsgaSsrKQorICAgIHsKKyAgICAgICAgYWdlID0gcXVlcnlBZ2Uoc3Vy
ZmFjZSk7CisgICAgICAgIGlmIChhZ2UgPiAwKQorICAgICAgICB7CisgICAgICAgICAgICAvLyBD
aGVjayB0aGF0IGNvbG9yL2NvbnRlbnQgaXMgd2hhdCB3ZSBleHBlY3QKKyAgICAgICAgICAgIGFu
Z2xlOjpHTENvbG9yIGV4cGVjdGVkQ29sb3IgPSBrQ29sb3JTZXRbaSAtIGFnZV07CisgICAgICAg
ICAgICBFWFBFQ1RfUElYRUxfQ09MT1JfRVEoMSwgMSwgZXhwZWN0ZWRDb2xvcik7CisgICAgICAg
IH0KKyAgICAgICAgZ2xCaW5kRnJhbWVidWZmZXIoR0xfRlJBTUVCVUZGRVIsIDApOworICAgICAg
ICBnbFVzZVByb2dyYW0ocHJvZ3JhbSk7CisgICAgICAgIGdsVW5pZm9ybTRmdihjb2xvckxvY2F0
aW9uLCAxLCBrQ29sb3JTZXRbaV0udG9Ob3JtYWxpemVkVmVjdG9yKCkuZGF0YSgpKTsKKyAgICAg
ICAgZHJhd1F1YWQocHJvZ3JhbSwgZXNzbDFfc2hhZGVyczo6UG9zaXRpb25BdHRyaWIoKSwgMC41
Zik7CisKKyAgICAgICAgZWdsU3dhcEJ1ZmZlcnMobURpc3BsYXksIHN1cmZhY2UpOworICAgICAg
ICBBU1NFUlRfRUdMX1NVQ0NFU1MoKSA8PCAiZWdsU3dhcEJ1ZmZlcnMgZmFpbGVkLiI7CisgICAg
fQorCisgICAgRVhQRUNUX0dFKGFnZSwgMCk7CisKKyAgICBFWFBFQ1RfVFJVRShlZ2xNYWtlQ3Vy
cmVudChtRGlzcGxheSwgRUdMX05PX1NVUkZBQ0UsIEVHTF9OT19TVVJGQUNFLCBjb250ZXh0KSk7
CisgICAgQVNTRVJUX0VHTF9TVUNDRVNTKCkgPDwgImVnbE1ha2VDdXJyZW50IC0gdW5jdXJyZW50
IGZhaWxlZC4iOworCisgICAgZWdsRGVzdHJveVN1cmZhY2UobURpc3BsYXksIHN1cmZhY2UpOwor
ICAgIHN1cmZhY2UgPSBFR0xfTk9fU1VSRkFDRTsKKyAgICBvc1dpbmRvdy0+ZGVzdHJveSgpOwor
ICAgIE9TV2luZG93OjpEZWxldGUoJm9zV2luZG93KTsKKworICAgIGVnbERlc3Ryb3lDb250ZXh0
KG1EaXNwbGF5LCBjb250ZXh0KTsKKyAgICBjb250ZXh0ID0gRUdMX05PX0NPTlRFWFQ7Cit9CisK
IC8vIFZlcmlmeSBFR0xfQkFEX1NVUkZBQ0Ugd2hlbiBub3QgY3VycmVudAogVEVTVF9QKEVHTEJ1
ZmZlckFnZVRlc3QsIFVuY3VycmVudENvbnRleHRCYWRTdXJmYWNlKQogewpAQCAtMzUyLDMgKzU2
MiwxNyBAQCBBTkdMRV9JTlNUQU5USUFURV9URVNUKEVHTEJ1ZmZlckFnZVRlc3QsCiAgICAgICAg
ICAgICAgICAgICAgICAgIFdpdGhOb0ZpeHR1cmUoRVMzX09QRU5HTCgpKSwKICAgICAgICAgICAg
ICAgICAgICAgICAgV2l0aE5vRml4dHVyZShFUzJfVlVMS0FOKCkpLAogICAgICAgICAgICAgICAg
ICAgICAgICBXaXRoTm9GaXh0dXJlKEVTM19WVUxLQU4oKSkpOworQU5HTEVfSU5TVEFOVElBVEVf
VEVTVChFR0xCdWZmZXJBZ2VUZXN0X01TQUEsCisgICAgICAgICAgICAgICAgICAgICAgIFdpdGhO
b0ZpeHR1cmUoRVMyX09QRU5HTEVTKCkpLAorICAgICAgICAgICAgICAgICAgICAgICBXaXRoTm9G
aXh0dXJlKEVTM19PUEVOR0xFUygpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgV2l0aE5vRml4
dHVyZShFUzJfT1BFTkdMKCkpLAorICAgICAgICAgICAgICAgICAgICAgICBXaXRoTm9GaXh0dXJl
KEVTM19PUEVOR0woKSksCisgICAgICAgICAgICAgICAgICAgICAgIFdpdGhOb0ZpeHR1cmUoRVMy
X1ZVTEtBTigpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgV2l0aE5vRml4dHVyZShFUzNfVlVM
S0FOKCkpKTsKK0FOR0xFX0lOU1RBTlRJQVRFX1RFU1QoRUdMQnVmZmVyQWdlVGVzdF9NU0FBX0RT
LAorICAgICAgICAgICAgICAgICAgICAgICBXaXRoTm9GaXh0dXJlKEVTMl9PUEVOR0xFUygpKSwK
KyAgICAgICAgICAgICAgICAgICAgICAgV2l0aE5vRml4dHVyZShFUzNfT1BFTkdMRVMoKSksCisg
ICAgICAgICAgICAgICAgICAgICAgIFdpdGhOb0ZpeHR1cmUoRVMyX09QRU5HTCgpKSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgV2l0aE5vRml4dHVyZShFUzNfT1BFTkdMKCkpLAorICAgICAgICAg
ICAgICAgICAgICAgICBXaXRoTm9GaXh0dXJlKEVTMl9WVUxLQU4oKSksCisgICAgICAgICAgICAg
ICAgICAgICAgIFdpdGhOb0ZpeHR1cmUoRVMzX1ZVTEtBTigpKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvZWdsX3Rlc3RzL0VHTENvbnRleHRTaGFyaW5n
VGVzdC5jcHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvZWdsX3Rlc3RzL0VH
TENvbnRleHRTaGFyaW5nVGVzdC5jcHAKaW5kZXggMmViMWY1YWIxNTljYmRiYmNjNzk3ODk0MDNk
YzZiYmE2ODRmMzZhZi4uZDRlYzdhMjY3OWZhZDU3MTI2N2NiZjAwNjM4YWU2NDY0M2RlMjJjNiAx
MDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3RzL2VnbF90ZXN0cy9F
R0xDb250ZXh0U2hhcmluZ1Rlc3QuY3BwCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3Ny
Yy90ZXN0cy9lZ2xfdGVzdHMvRUdMQ29udGV4dFNoYXJpbmdUZXN0LmNwcApAQCAtMTI4Niw1ICsx
Mjg2LDUgQEAgQU5HTEVfSU5TVEFOVElBVEVfVEVTVChFR0xDb250ZXh0U2hhcmluZ1Rlc3ROb0Zp
eHR1cmUsCiAKIEdURVNUX0FMTE9XX1VOSU5TVEFOVElBVEVEX1BBUkFNRVRFUklaRURfVEVTVChF
R0xDb250ZXh0U2hhcmluZ1Rlc3ROb1N5bmNUZXh0dXJlVXBsb2Fkcyk7CiBBTkdMRV9JTlNUQU5U
SUFURV9URVNUKEVHTENvbnRleHRTaGFyaW5nVGVzdE5vU3luY1RleHR1cmVVcGxvYWRzLAotICAg
ICAgICAgICAgICAgICAgICAgICBXaXRoRm9yY2VTdWJtaXRJbW11dGFibGVUZXh0dXJlVXBkYXRl
cyhFUzJfVlVMS0FOKCkpLAotICAgICAgICAgICAgICAgICAgICAgICBXaXRoRm9yY2VTdWJtaXRJ
bW11dGFibGVUZXh0dXJlVXBkYXRlcyhFUzNfVlVMS0FOKCkpKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgRVMyX1ZVTEtBTigpLmVuYWJsZShGZWF0dXJlOjpGb3JjZVN1Ym1pdEltbXV0YWJsZVRl
eHR1cmVVcGRhdGVzKSwKKyAgICAgICAgICAgICAgICAgICAgICAgRVMzX1ZVTEtBTigpLmVuYWJs
ZShGZWF0dXJlOjpGb3JjZVN1Ym1pdEltbXV0YWJsZVRleHR1cmVVcGRhdGVzKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvZWdsX3Rlc3RzL0VHTEZlYXR1
cmVDb250cm9sVGVzdC5jcHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvZWds
X3Rlc3RzL0VHTEZlYXR1cmVDb250cm9sVGVzdC5jcHAKaW5kZXggODMyNjRmYjJiMGFmMzFmYzc0
ZjM5OTc4YzNiNjBhYTYzOTc5OTAxNi4uOTE3ZjkwZGUzODY0NzU0NmZhOTlkODhiMWNhZGQ0YTgx
NjI3N2JkNiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3RzL2Vn
bF90ZXN0cy9FR0xGZWF0dXJlQ29udHJvbFRlc3QuY3BwCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L0FOR0xFL3NyYy90ZXN0cy9lZ2xfdGVzdHMvRUdMRmVhdHVyZUNvbnRyb2xUZXN0LmNwcApAQCAt
OCw2ICs4LDcgQEAKIAogI2luY2x1ZGUgPGd0ZXN0L2d0ZXN0Lmg+CiAKKyNpbmNsdWRlICJjb21t
b24vc3RyaW5nX3V0aWxzLmgiCiAjaW5jbHVkZSAibGliQU5HTEUvRGlzcGxheS5oIgogI2luY2x1
ZGUgInRlc3RfdXRpbHMvQU5HTEVUZXN0LmgiCiAKQEAgLTQ2LDYgKzQ3LDkgQEAgY2xhc3MgRUdM
RmVhdHVyZUNvbnRyb2xUZXN0IDogcHVibGljIEFOR0xFVGVzdAogCiAgICAgICAgIHJldHVybiB0
cnVlOwogICAgIH0KKworICAgIHVzaW5nIEZlYXR1cmVOYW1lTW9kaWZpZXIgPSBzdGQ6OmZ1bmN0
aW9uPHN0ZDo6c3RyaW5nKGNvbnN0IHN0ZDo6c3RyaW5nICYpPjsKKyAgICB2b2lkIHRlc3RPdmVy
cmlkZUZlYXR1cmVzKEZlYXR1cmVOYW1lTW9kaWZpZXIgbW9kaWZ5TmFtZSk7CiB9OwogCiAvLyBF
bnN1cmUgZWdsUXVlcnlTdHJpbmdpQU5HTEUgZ2VuZXJhdGVzIEVHTF9CQURfRElTUExBWSBpZiB0
aGUgZGlzcGxheSBwYXNzZWQgaW4gaXMgaW52YWxpZC4KQEAgLTEyMCw5ICsxMjQsNyBAQCBURVNU
X1AoRUdMRmVhdHVyZUNvbnRyb2xUZXN0LCBGZWF0dXJlQ291bnQpCiAgICAgQVNTRVJUX0VHTF9T
VUNDRVNTKCk7CiB9CiAKLS8vIFN1Ym1pdCBhIGxpc3Qgb2YgZmVhdHVyZXMgdG8gb3ZlcnJpZGUg
d2hlbiBjcmVhdGluZyB0aGUgZGlzcGxheSB3aXRoIGVnbEdldFBsYXRmb3JtRGlzcGxheSwgYW5k
Ci0vLyBlbnN1cmUgdGhhdCB0aGUgZmVhdHVyZXMgYXJlIGNvcnJlY3RseSBvdmVycmlkZGVuLgot
VEVTVF9QKEVHTEZlYXR1cmVDb250cm9sVGVzdCwgT3ZlcnJpZGVGZWF0dXJlcykKK3ZvaWQgRUdM
RmVhdHVyZUNvbnRyb2xUZXN0Ojp0ZXN0T3ZlcnJpZGVGZWF0dXJlcyhGZWF0dXJlTmFtZU1vZGlm
aWVyIG1vZGlmeU5hbWUpCiB7CiAgICAgQU5HTEVfU0tJUF9URVNUX0lGKCFpbml0VGVzdCgpKTsK
ICAgICBlZ2w6OkRpc3BsYXkgKmRpc3BsYXkgICAgICAgPSBzdGF0aWNfY2FzdDxlZ2w6OkRpc3Bs
YXkgKj4obURpc3BsYXkpOwpAQCAtMTMwLDI5ICsxMzIsMzggQEAgVEVTVF9QKEVHTEZlYXR1cmVD
b250cm9sVGVzdCwgT3ZlcnJpZGVGZWF0dXJlcykKIAogICAgIC8vIEJ1aWxkIGxpc3RzIG9mIGZl
YXR1cmVzIHRvIGVuYWJsZS9kaXNhYmxlZC4gVG9nZ2xlIGZlYXR1cmVzIHdlIGtub3cgYXJlIG9r
IHRvIHRvZ2dsZSBiYXNlZAogICAgIC8vIGZyb20gdGhpcyBsaXN0LgotICAgIHN0ZDo6dmVjdG9y
PGNvbnN0IGNoYXIgKj4gZW5hYmxlZCAgICAgICA9IHN0ZDo6dmVjdG9yPGNvbnN0IGNoYXIgKj4o
KTsKLSAgICBzdGQ6OnZlY3Rvcjxjb25zdCBjaGFyICo+IGRpc2FibGVkICAgICAgPSBzdGQ6OnZl
Y3Rvcjxjb25zdCBjaGFyICo+KCk7Ci0gICAgc3RkOjp2ZWN0b3I8Ym9vbD4gc2hvdWxkQmUgICAg
ICAgICAgICAgID0gc3RkOjp2ZWN0b3I8Ym9vbD4oKTsKLSAgICBzdGQ6OnZlY3RvcjxzdGQ6OnN0
cmluZz4gdGVzdGVkRmVhdHVyZXMgPSB7Ci0gICAgICAgICJhZGRfYW5kX3RydWVfdG9fbG9vcF9j
b25kaXRpb24iLCAgLy8gU2FmZSB0byB0b2dnbGUgR0wKLSAgICAgICAgImNsYW1wX2ZyYWdfZGVw
dGgiLCAgICAgICAgICAgICAgICAvLyBTYWZlIHRvIHRvZ2dsZSBHTAotICAgICAgICAiY2xhbXBf
cG9pbnRfc2l6ZSIsICAgICAgICAgICAgICAgIC8vIFNhZmUgdG8gdG9nZ2xlIEdMIGFuZCBWdWxr
YW4KLSAgICAgICAgImZsaXBfdmlld3BvcnRfeSIsICAgICAgICAgICAgICAgICAvLyBTYWZlIHRv
IHRvZ2dsZSBvbiBWdWxrYW4KLSAgICAgICAgInplcm9fbWF4X2xvZCIsICAgICAgICAgICAgICAg
ICAgICAvLyBTYWZlIHRvIHRvZ2dsZSBvbiBEM0QKLSAgICAgICAgImV4cGFuZF9pbnRlZ2VyX3Bv
d19leHByZXNzaW9ucyIsICAvLyBTYWZlIHRvIHRvZ2dsZSBvbiBEM0QKLSAgICAgICAgInJld3Jp
dGVfdW5hcnlfbWludXNfb3BlcmF0b3IiLCAgICAvLyBTYWZlIHRvIHRvZ2dsZSBvbiBEM0QKKyAg
ICBzdGQ6OnZlY3Rvcjxjb25zdCBjaGFyICo+IGVuYWJsZWQgICAgICAgICAgICA9IHN0ZDo6dmVj
dG9yPGNvbnN0IGNoYXIgKj4oKTsKKyAgICBzdGQ6OnZlY3Rvcjxjb25zdCBjaGFyICo+IGRpc2Fi
bGVkICAgICAgICAgICA9IHN0ZDo6dmVjdG9yPGNvbnN0IGNoYXIgKj4oKTsKKyAgICBzdGQ6OnZl
Y3RvcjxzdGQ6OnN0cmluZz4gbW9kaWZpZWROYW1lU3RvcmFnZSA9IHN0ZDo6dmVjdG9yPHN0ZDo6
c3RyaW5nPigpOworICAgIHN0ZDo6dmVjdG9yPGJvb2w+IHNob3VsZEJlICAgICAgICAgICAgICAg
ICAgID0gc3RkOjp2ZWN0b3I8Ym9vbD4oKTsKKyAgICBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4g
dGVzdGVkRmVhdHVyZXMgICAgICA9IHsKKyAgICAgICAgLy8gU2FmZSB0byB0b2dnbGUgb24gR0wK
KyAgICAgICAgYW5nbGU6OkdldEZlYXR1cmVOYW1lKGFuZ2xlOjpGZWF0dXJlOjpBZGRBbmRUcnVl
VG9Mb29wQ29uZGl0aW9uKSwKKyAgICAgICAgYW5nbGU6OkdldEZlYXR1cmVOYW1lKGFuZ2xlOjpG
ZWF0dXJlOjpDbGFtcEZyYWdEZXB0aCksCisgICAgICAgIC8vIFNhZmUgdG8gdG9nZ2xlIG9uIEdM
IGFuZCBWdWxrYW4KKyAgICAgICAgYW5nbGU6OkdldEZlYXR1cmVOYW1lKGFuZ2xlOjpGZWF0dXJl
OjpDbGFtcFBvaW50U2l6ZSksCisgICAgICAgIC8vIFNhZmUgdG8gdG9nZ2xlIG9uIFZ1bGthbgor
ICAgICAgICBhbmdsZTo6R2V0RmVhdHVyZU5hbWUoYW5nbGU6OkZlYXR1cmU6OlN1cHBvcnRzTmVn
YXRpdmVWaWV3cG9ydCksCisgICAgICAgIC8vIFNhZmUgdG8gdG9nZ2xlIG9uIEQzRAorICAgICAg
ICBhbmdsZTo6R2V0RmVhdHVyZU5hbWUoYW5nbGU6OkZlYXR1cmU6Olplcm9NYXhMb2RXb3JrYXJv
dW5kKSwKKyAgICAgICAgYW5nbGU6OkdldEZlYXR1cmVOYW1lKGFuZ2xlOjpGZWF0dXJlOjpFeHBh
bmRJbnRlZ2VyUG93RXhwcmVzc2lvbnMpLAorICAgICAgICBhbmdsZTo6R2V0RmVhdHVyZU5hbWUo
YW5nbGU6OkZlYXR1cmU6OlJld3JpdGVVbmFyeU1pbnVzT3BlcmF0b3IpLAogICAgIH07CiAgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBmZWF0dXJlcy5zaXplKCk7IGkrKykKKyAgICB7CisgICAg
ICAgIG1vZGlmaWVkTmFtZVN0b3JhZ2UucHVzaF9iYWNrKG1vZGlmeU5hbWUoZmVhdHVyZXNbaV0t
Pm5hbWUpKTsKKyAgICB9CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBmZWF0dXJlcy5zaXpl
KCk7IGkrKykKICAgICB7CiAgICAgICAgIGJvb2wgdG9nZ2xlID0gc3RkOjpmaW5kKHRlc3RlZEZl
YXR1cmVzLmJlZ2luKCksIHRlc3RlZEZlYXR1cmVzLmVuZCgpLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzdGQ6OnN0cmluZyhmZWF0dXJlc1tpXS0+bmFtZSkpICE9IHRlc3RlZEZl
YXR1cmVzLmVuZCgpOwogICAgICAgICBpZiAoZmVhdHVyZXNbaV0tPmVuYWJsZWQgXiB0b2dnbGUp
CiAgICAgICAgIHsKLSAgICAgICAgICAgIGVuYWJsZWQucHVzaF9iYWNrKGZlYXR1cmVzW2ldLT5u
YW1lKTsKKyAgICAgICAgICAgIGVuYWJsZWQucHVzaF9iYWNrKG1vZGlmaWVkTmFtZVN0b3JhZ2Vb
aV0uY19zdHIoKSk7CiAgICAgICAgIH0KICAgICAgICAgZWxzZQogICAgICAgICB7Ci0gICAgICAg
ICAgICBkaXNhYmxlZC5wdXNoX2JhY2soZmVhdHVyZXNbaV0tPm5hbWUpOworICAgICAgICAgICAg
ZGlzYWJsZWQucHVzaF9iYWNrKG1vZGlmaWVkTmFtZVN0b3JhZ2VbaV0uY19zdHIoKSk7CiAgICAg
ICAgIH0KICAgICAgICAgLy8gU2F2ZSB3aGF0IHdlIGV4cGVjdCB0aGUgZmVhdHVyZSBzdGF0dXMg
d2lsbCBiZSB3aGVuIGNoZWNraW5nIGxhdGVyLgogICAgICAgICBzaG91bGRCZS5wdXNoX2JhY2so
ZmVhdHVyZXNbaV0tPmVuYWJsZWQgXiB0b2dnbGUpOwpAQCAtMTgxLDEwICsxOTIsMjUgQEAgVEVT
VF9QKEVHTEZlYXR1cmVDb250cm9sVGVzdCwgT3ZlcnJpZGVGZWF0dXJlcykKICAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IGZlYXR1cmVzLnNpemUoKTsgaSsrKQogICAgIHsKICAgICAgICAgRVhQ
RUNUX1NUUkVRKEZlYXR1cmVTdGF0dXNUb1N0cmluZyhzaG91bGRCZVtpXSksCi0gICAgICAgICAg
ICAgICAgICAgICBlZ2xRdWVyeVN0cmluZ2lBTkdMRShkcHlfb3ZlcnJpZGUsIEVHTF9GRUFUVVJF
X1NUQVRVU19BTkdMRSwgaSkpOworICAgICAgICAgICAgICAgICAgICAgZWdsUXVlcnlTdHJpbmdp
QU5HTEUoZHB5X292ZXJyaWRlLCBFR0xfRkVBVFVSRV9TVEFUVVNfQU5HTEUsIGkpKQorICAgICAg
ICAgICAgPDwgbW9kaWZpZWROYW1lU3RvcmFnZVtpXTsKICAgICB9CiB9CiAKKy8vIFN1Ym1pdCBh
IGxpc3Qgb2YgZmVhdHVyZXMgdG8gb3ZlcnJpZGUgd2hlbiBjcmVhdGluZyB0aGUgZGlzcGxheSB3
aXRoIGVnbEdldFBsYXRmb3JtRGlzcGxheSwgYW5kCisvLyBlbnN1cmUgdGhhdCB0aGUgZmVhdHVy
ZXMgYXJlIGNvcnJlY3RseSBvdmVycmlkZGVuLgorVEVTVF9QKEVHTEZlYXR1cmVDb250cm9sVGVz
dCwgT3ZlcnJpZGVGZWF0dXJlcykKK3sKKyAgICB0ZXN0T3ZlcnJpZGVGZWF0dXJlcyhbXShjb25z
dCBzdGQ6OnN0cmluZyAmZmVhdHVyZU5hbWUpIHsgcmV0dXJuIGZlYXR1cmVOYW1lOyB9KTsKK30K
KworLy8gU2ltaWxhciB0byBPdmVycmlkZUZlYXR1cmVzLCBidXQgZW5zdXJlcyB0aGF0IGNhbWVs
Q2FzZSB2YXJpYW50cyBvZiB0aGUgbmFtZSBtYXRjaCBhcyB3ZWxsLgorVEVTVF9QKEVHTEZlYXR1
cmVDb250cm9sVGVzdCwgT3ZlcnJpZGVGZWF0dXJlc0NhbWVsQ2FzZSkKK3sKKyAgICB0ZXN0T3Zl
cnJpZGVGZWF0dXJlcygKKyAgICAgICAgW10oY29uc3Qgc3RkOjpzdHJpbmcgJmZlYXR1cmVOYW1l
KSB7IHJldHVybiBhbmdsZTo6VG9DYW1lbENhc2UoZmVhdHVyZU5hbWUpOyB9KTsKK30KKwogQU5H
TEVfSU5TVEFOVElBVEVfVEVTVChFR0xGZWF0dXJlQ29udHJvbFRlc3QsCiAgICAgICAgICAgICAg
ICAgICAgICAgIFdpdGhOb0ZpeHR1cmUoRVMyX0QzRDkoKSksCiAgICAgICAgICAgICAgICAgICAg
ICAgIFdpdGhOb0ZpeHR1cmUoRVMyX0QzRDExKCkpLApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJk
UGFydHkvQU5HTEUvc3JjL3Rlc3RzL2VnbF90ZXN0cy9FR0xQb3dlclByZWZlcmVuY2VUZXN0LmNw
cCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9lZ2xfdGVzdHMvRUdMUG93ZXJQ
cmVmZXJlbmNlVGVzdC5jcHAKaW5kZXggZDY5M2NiNGM4NDY2OTUwNzE2YzdhMjZhMzU0ZjU2ZWI3
NzVjMDI1MS4uZWMwMmU5MzRkZGVmYjI1NDg5NmNiMzY2ZGUzNTI5ZTZkODViNTU1OCAxMDA2NDQK
LS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3RzL2VnbF90ZXN0cy9FR0xQb3dl
clByZWZlcmVuY2VUZXN0LmNwcAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVz
dHMvZWdsX3Rlc3RzL0VHTFBvd2VyUHJlZmVyZW5jZVRlc3QuY3BwCkBAIC0xOSwxMyArMTksNyBA
QAogI2luY2x1ZGUgInV0aWwvT1NXaW5kb3cuaCIKIAogdXNpbmcgbmFtZXNwYWNlIGFuZ2xlOwot
bmFtZXNwYWNlCi17Ci0vLyBUT0RPKGFuZ2xlYnVnLmNvbS83MDkzKTogSW1wbGVtZW50IGJ1bmRs
aW5nIG9mIEluZm8ucGxpc3QgdG8gYW5nbGVfZW5kMmVuZF90ZXN0cwotLy8gSW4gdGhlIG1lYW4g
dGltZSwgY2hhbmdlIHRoaXMgbWFudWFsbHkgdG8gdHJ1ZSBhbmQgY3Agc3JjL3Rlc3RzL2VuZDJl
bmRfdGVzdHMvbWFjL0luZm8ucGxpc3QKLS8vIG91dC9EZWJ1Zy8KLWNvbnN0IGJvb2wgdGVzdFJ1
bm5lclN1cHBvcnRzQXV0b21hdGljR3JhcGhpY3NTd2l0Y2hpbmcgPSBmYWxzZTsKLX0gIC8vIG5h
bWVzcGFjZQorCiBjbGFzcyBFR0xQb3dlclByZWZlcmVuY2VUZXN0IDogcHVibGljIEFOR0xFVGVz
dAogewogICBwdWJsaWM6CkBAIC00Niw3ICs0MCw2IEBAIGNsYXNzIEVHTFBvd2VyUHJlZmVyZW5j
ZVRlc3QgOiBwdWJsaWMgQU5HTEVUZXN0CiAKIFRFU1RfUChFR0xQb3dlclByZWZlcmVuY2VUZXN0
LCBGb3JjZUdQVVN3aXRjaCkKIHsKLSAgICBBTkdMRV9TS0lQX1RFU1RfSUYoIXRlc3RSdW5uZXJT
dXBwb3J0c0F1dG9tYXRpY0dyYXBoaWNzU3dpdGNoaW5nKTsKICAgICBBTkdMRV9TS0lQX1RFU1Rf
SUYoIUlzRUdMRGlzcGxheUV4dGVuc2lvbkVuYWJsZWQoZ2V0RGlzcGxheSgpLCAiRUdMX0FOR0xF
X3Bvd2VyX3ByZWZlcmVuY2UiKSk7CiAgICAgc2l6ZV90IGxvd1Bvd2VyICAgPSBGaW5kTG93UG93
ZXJHUFUobVN5c3RlbUluZm8pOwogICAgIHNpemVfdCBoaWdoUG93ZXIgID0gRmluZEhpZ2hQb3dl
ckdQVShtU3lzdGVtSW5mbyk7CkBAIC02OSwxNCArNjIsMTYgQEAgVEVTVF9QKEVHTFBvd2VyUHJl
ZmVyZW5jZVRlc3QsIEZvcmNlR1BVU3dpdGNoKQogCiBURVNUX1AoRUdMUG93ZXJQcmVmZXJlbmNl
VGVzdCwgSGFuZGxlR1BVU3dpdGNoQWZ0ZXJGb3JjZUdQVVN3aXRjaCkKIHsKLSAgICBBTkdMRV9T
S0lQX1RFU1RfSUYoIXRlc3RSdW5uZXJTdXBwb3J0c0F1dG9tYXRpY0dyYXBoaWNzU3dpdGNoaW5n
KTsKICAgICBBTkdMRV9TS0lQX1RFU1RfSUYoIUlzRUdMRGlzcGxheUV4dGVuc2lvbkVuYWJsZWQo
Z2V0RGlzcGxheSgpLCAiRUdMX0FOR0xFX3Bvd2VyX3ByZWZlcmVuY2UiKSk7CiAgICAgc2l6ZV90
IGluaXRpYWxHUFUgPSBGaW5kQWN0aXZlT3BlbkdMR1BVKG1TeXN0ZW1JbmZvKTsKICAgICBzaXpl
X3QgY2hhbmdlZEdQVSA9IEZpbmRMb3dQb3dlckdQVShtU3lzdGVtSW5mbyk7Ci0gICAgaWYgKGlu
aXRpYWxHUFUgPT0gY2hhbmdlZEdQVSkKLSAgICB7Ci0gICAgICAgIGNoYW5nZWRHUFUgPSBGaW5k
SGlnaFBvd2VyR1BVKG1TeXN0ZW1JbmZvKTsKLSAgICB9CisgICAgLy8gT24gYWxsIHBsYXRmb3Jt
cyB0aGUgZXh0ZW5zaW9uIGlzIGltcGxlbWVudGVkIChlLmcuIENHTCk6IElmIHdlIHN0YXJ0IHdp
dGggaW50ZWdyYXRlZCwgYW5kCisgICAgLy8gZm9yY2UgREdQVSwgd2UgY2Fubm90IGVnbEhhbmRs
ZUdQVVN3aXRjaEFOR0xFKCkgZnJvbSBER1BVIHRvIGludGVncmF0ZWQuCisgICAgLy8gZWdsSGFu
ZGxlR1BVU3dpdGNoQU5HTEUoKSB3aWxsIHN3aXRjaCB0byB0aGUgImRlZmF1bHQiLCB3aGljaCB3
aWxsIGJlIERHUFUuCisgICAgLy8gSWYgd2Ugc3RhcnQgd2l0aCBER1BVIGFuZCBzd2l0Y2ggdG8g
aW50ZWdyYXRlZCwgd2UgKmNhbiogZWdsSGFuZGxlR1BVU3dpdGNoQU5HTEUoKSBiYWNrCisgICAg
Ly8gdG8gdGhlIGRlZmF1bHQsIERHUFUuCisgICAgQU5HTEVfU0tJUF9URVNUX0lGKGluaXRpYWxH
UFUgPT0gY2hhbmdlZEdQVSk7CisKICAgICBFR0xpbnQgaGkgPSAwOwogICAgIEVHTGludCBsbyA9
IDA7CiAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCA1OyArK2kpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvZWdsX3Rlc3RzL0VHTFByaW50RUdMaW5mb1Rlc3Qu
Y3BwIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3RzL2VnbF90ZXN0cy9FR0xQcmlu
dEVHTGluZm9UZXN0LmNwcAppbmRleCBmYWJhNGUzMzhiYjY2MjdhZThkZWZiYzdlOGY5ODE4MDlm
ZWJkZjMwLi4xZGFhY2ZjN2QyYjA1MWI3MDUyYmM0NWM4ODA4ODZhNDY2ZTdmNTQzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvZWdsX3Rlc3RzL0VHTFByaW50
RUdMaW5mb1Rlc3QuY3BwCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9l
Z2xfdGVzdHMvRUdMUHJpbnRFR0xpbmZvVGVzdC5jcHAKQEAgLTU3LDYgKzU3LDcgQEAgY29uc3Qg
Y2hhciAqR2V0RUdMU3RyaW5nKEVHTERpc3BsYXkgZGlzcGxheSwgRUdMaW50IG5hbWUpCiB7CiAg
ICAgY29uc3QgY2hhciAqdmFsdWUgPSAiIjsKICAgICB2YWx1ZSAgICAgICAgICAgICA9IGVnbFF1
ZXJ5U3RyaW5nKGRpc3BsYXksIG5hbWUpOworICAgIEVYUEVDVF9FR0xfRVJST1IoRUdMX1NVQ0NF
U1MpOwogICAgIEVYUEVDVF9UUlVFKHZhbHVlICE9IG51bGxwdHIpOwogICAgIHJldHVybiB2YWx1
ZTsKIH0KQEAgLTY2LDYgKzY3LDcgQEAgY29uc3QgY2hhciAqR2V0R0xTdHJpbmcoRUdMaW50IG5h
bWUpCiB7CiAgICAgY29uc3QgY2hhciAqdmFsdWUgPSAiIjsKICAgICB2YWx1ZSAgICAgICAgICAg
ICA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhciAqPihnbEdldFN0cmluZyhuYW1lKSk7Cisg
ICAgRVhQRUNUX0dMX0VSUk9SKEdMX05PX0VSUk9SKTsKICAgICBFWFBFQ1RfVFJVRSh2YWx1ZSAh
PSBudWxscHRyKTsKICAgICByZXR1cm4gdmFsdWU7CiB9CkBAIC03Nyw2ICs3OSw4IEBAIFRFU1Rf
UChFR0xQcmludEVHTGluZm9UZXN0LCBQcmludEVHTEluZm8pCiB7CiAgICAgc3RkOjpjb3V0IDw8
ICIgICAgRUdMIEluZm9ybWF0aW9uOiIgPDwgc3RkOjplbmRsOwogICAgIHN0ZDo6Y291dCA8PCAi
XHRWZW5kb3I6ICIgPDwgR2V0RUdMU3RyaW5nKG1EaXNwbGF5LCBFR0xfVkVORE9SKSA8PCBzdGQ6
OmVuZGw7CisgICAgc3RkOjpjb3V0IDw8ICJcdFZlcnNpb24gKEVHTF9OT19ESVNQTEFZKTogIiA8
PCBHZXRFR0xTdHJpbmcoRUdMX05PX0RJU1BMQVksIEVHTF9WRVJTSU9OKQorICAgICAgICAgICAg
ICA8PCBzdGQ6OmVuZGw7CiAgICAgc3RkOjpjb3V0IDw8ICJcdFZlcnNpb246ICIgPDwgR2V0RUdM
U3RyaW5nKG1EaXNwbGF5LCBFR0xfVkVSU0lPTikgPDwgc3RkOjplbmRsOwogICAgIHN0ZDo6Y291
dCA8PCAiXHRDbGllbnQgQVBJczogIiA8PCBHZXRFR0xTdHJpbmcobURpc3BsYXksIEVHTF9DTElF
TlRfQVBJUykgPDwgc3RkOjplbmRsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9B
TkdMRS9zcmMvdGVzdHMvZW5kMmVuZF90ZXN0cy9tYWMvSW5mby5wbGlzdCBiL1NvdXJjZS9UaGly
ZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9lbmQyZW5kX3Rlc3RzL21hYy9JbmZvLnBsaXN0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3OTk0YWYwMzc3MjNkMTEzZjUwZmUxYmVhM2I1Nzdj
YTEyMmNkNWVlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9lbmQyZW5kX3Rlc3RzL21hYy9JbmZv
LnBsaXN0CisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4w
IiBlbmNvZGluZz0iVVRGLTgiPz4KLTwhRE9DVFlQRSBwbGlzdCBQVUJMSUMgIi0vL0FwcGxlLy9E
VEQgUExJU1QgMS4wLy9FTiIgImh0dHA6Ly93d3cuYXBwbGUuY29tL0RURHMvUHJvcGVydHlMaXN0
LTEuMC5kdGQiPgotPHBsaXN0IHZlcnNpb249IjEuMCI+Ci08ZGljdD4KLQk8a2V5PkNGQnVuZGxl
TmFtZTwva2V5PgotCTxzdHJpbmc+YW5nbGVfZW5kMmVuZF90ZXN0czwvc3RyaW5nPgotCTxrZXk+
Q0ZCdW5kbGVJZGVudGlmaWVyPC9rZXk+Ci0JPHN0cmluZz5vcmcuY2hyb21pdW0uYW5nbGUuYW5n
bGVfZW5kMmVuZF90ZXN0czwvc3RyaW5nPgotCTxrZXk+TlNTdXBwb3J0c0F1dG9tYXRpY0dyYXBo
aWNzU3dpdGNoaW5nPC9rZXk+Ci0JPHRydWUvPgotPC9kaWN0PgotPC9wbGlzdD4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9nbF90ZXN0cy9BdG9taWNDb3Vu
dGVyQnVmZmVyVGVzdC5jcHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvZ2xf
dGVzdHMvQXRvbWljQ291bnRlckJ1ZmZlclRlc3QuY3BwCmluZGV4IGU3ZjJiNmVmZTY1ZTZmZjQ2
M2QyYzA5YTA4ZGNhMGI2MGQ0MzI2ZjQuLmQyNjQ2NDI2MTZkYjIzOTE5NjZhZTYzZmNhYTRhOTZi
ZjA0YjJhNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9n
bF90ZXN0cy9BdG9taWNDb3VudGVyQnVmZmVyVGVzdC5jcHAKKysrIGIvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvc3JjL3Rlc3RzL2dsX3Rlc3RzL0F0b21pY0NvdW50ZXJCdWZmZXJUZXN0LmNwcApA
QCAtNjgsNiArNjgsMjkwIEBAIFRFU1RfUChBdG9taWNDb3VudGVyQnVmZmVyVGVzdDMxLCBFeGNl
ZWRNYXhWZXJ0ZXhBdG9taWNDb3VudGVycykKICAgICBFWFBFQ1RfRVEoMHUsIHByb2dyYW0pOwog
fQogCisvLyBUZXN0IHRoYXQgVGVzc2VsbGF0aW9uIENvbnRyb2wgU2hhZGVyIENhbiBSZWFkL1dy
aXRlIHRvIGF0b21pYyBjb3VudGVyIGJ1ZmZlcnMKK1RFU1RfUChBdG9taWNDb3VudGVyQnVmZmVy
VGVzdDMxLCBUZXNzZWxsYXRpb25Db250cm9sU2hhZGVyTWF4QXRvbWljQ291bnRlclRlc3RzKQor
eworICAgIEFOR0xFX1NLSVBfVEVTVF9JRighSXNHTEV4dGVuc2lvbkVuYWJsZWQoIkdMX0VYVF90
ZXNzZWxsYXRpb25fc2hhZGVyIikpOworICAgIEdMaW50IG1heFRlc3NlbGxhdGlvbkNvbnRyb2xB
dG9taWNDb3VudGVycyA9IDA7CisgICAgZ2xHZXRJbnRlZ2VydihHTF9NQVhfVEVTU19DT05UUk9M
X0FUT01JQ19DT1VOVEVSUywgJm1heFRlc3NlbGxhdGlvbkNvbnRyb2xBdG9taWNDb3VudGVycyk7
CisgICAgQU5HTEVfU0tJUF9URVNUX0lGKG1heFRlc3NlbGxhdGlvbkNvbnRyb2xBdG9taWNDb3Vu
dGVycyA8PSAwKTsKKworICAgIC8vIENhcCB0aGUgYXRvbWljIGNvdW50ZXJzIHRvIGFuIGFyYml0
cmFyeSB2YWx1ZSAxNiBpbiBjYXNlIHdlIGRvIG5vdCBoYXZlIGEgbGltaXQgZm9yCisgICAgLy8g
R0xfTUFYX1RFU1NfQ09OVFJPTF9BVE9NSUNfQ09VTlRFUlMgb24gY2VydGFpbiBkZXZpY2VzCisg
ICAgR0xpbnQgbWF4VGVzc2VsbGF0aW9uQ29udHJvbEF0b21pY0NvdW50ZXJzQ2FwID0gMTZ1Owor
ICAgIG1heFRlc3NlbGxhdGlvbkNvbnRyb2xBdG9taWNDb3VudGVycyA9CisgICAgICAgIHN0ZDo6
bWluKG1heFRlc3NlbGxhdGlvbkNvbnRyb2xBdG9taWNDb3VudGVycywgbWF4VGVzc2VsbGF0aW9u
Q29udHJvbEF0b21pY0NvdW50ZXJzQ2FwKTsKKworICAgIGNvbnN0IHVuc2lnbmVkIGludCB0ZXNz
ZWxsYXRpb25Db250cm9sUG9pbnRzQ291bnQgPSAzOworCisgICAgLy8gVmVydGV4IFNoYWRlciBD
b2RlCisgICAgY29uc3QgY2hhciAqa1ZTID0KKyAgICAgICAgIiN2ZXJzaW9uIDMxMCBlc1xuIgor
ICAgICAgICAiXG4iCisgICAgICAgICJpbiB2ZWM0IGFfcG9zaXRpb247XG4iCisgICAgICAgICJm
bGF0IG91dCBpbnQgdmVydGV4X2lkO1xuIgorICAgICAgICAiXG4iCisgICAgICAgICJ2b2lkIG1h
aW4oKVxuIgorICAgICAgICAie1xuIgorICAgICAgICAiICAgIGdsX1Bvc2l0aW9uICA9IGFfcG9z
aXRpb247XG4iCisgICAgICAgICJ9XG4iOworCisgICAgLy8gVGVzc2VsbGF0aW9uIENvbnRyb2wg
U2hhZGVyIENvZGUKKyAgICAvLyBnbF9JbnZvY2F0aW9uSUQgPSAwOiBpbmNyZW1lbnQgYWxsIGVs
ZW1lbnRzIGluIGF0b21pYyBjb3VudGVycyBhY3NbXS4KKyAgICAvLyBnbF9JbnZvY2F0aW9uSUQg
PSAxOiBpbmNyZW1lbnQgYWNzW2luZGV4XSB3aGVyZSBpbmRleD09MAorICAgIC8vIGdsX0ludm9j
YXRpb25JRCA9IDI6IGluY3JlbWVudCBhY3NbaW5kZXhdIHdoZXJlIGluZGV4PT0wLDEKKyAgICAv
LyBXZSBoYXZlIHRlc3NlbGxhdGlvbkNvbnRyb2xQb2ludHNDb3VudD0zIHZlcnRpY2VzIG91dHB1
dCBmcm9tIHRoZSBUZXNzZWxsYXRpb24gQ29udHJvbAorICAgIC8vIFNoYWRlciBTdGFnZSwgbWVh
bmluZyB3ZSBoYXZlIHRocmVlIHRlc3NlbGxhdGlvbiBzaGFkZXIgY29kZSBydW5uaW5nIGluIHBh
cmFsbGVsLCBlYWNoIHdpdGggYQorICAgIC8vIHVuaXF1ZSBnbF9JbnZvY2F0aW9uSUQuCisgICAg
c3RkOjpzdHJpbmdzdHJlYW0gdGNzX2NvZGVfc3N0cmVhbTsKKyAgICB0Y3NfY29kZV9zc3RyZWFt
CisgICAgICAgIDw8ICIjdmVyc2lvbiAzMTAgZXNcbiIKKyAgICAgICAgICAgIiNleHRlbnNpb24g
R0xfRVhUX3Rlc3NlbGxhdGlvbl9zaGFkZXIgOiByZXF1aXJlXG4iCisgICAgICAgICAgICJsYXlv
dXQodmVydGljZXMgPSIKKyAgICAgICAgPDwgdGVzc2VsbGF0aW9uQ29udHJvbFBvaW50c0NvdW50
CisgICAgICAgIDw8ICIpIG91dDtcbiIKKyAgICAgICAgICAgInVuaWZvcm0gaW50IG5Mb29wSXRl
cmF0aW9ucztcbiIKKyAgICAgICAgICAgImxheW91dChiaW5kaW5nID0gMCkgdW5pZm9ybSBhdG9t
aWNfdWludCBhY3NbIgorICAgICAgICA8PCBtYXhUZXNzZWxsYXRpb25Db250cm9sQXRvbWljQ291
bnRlcnMKKyAgICAgICAgPDwgIl07XG4iCisgICAgICAgICAgICJ2b2lkIG1haW4oKVxuIgorICAg
ICAgICAgICAie1xuIgorICAgICAgICAgICAiZm9yIChpbnQgY291bnRlcl9pZCA9IDE7XG4iCisg
ICAgICAgICAgICJjb3VudGVyX2lkIDw9IG5Mb29wSXRlcmF0aW9ucztcbiIKKyAgICAgICAgICAg
IisrY291bnRlcl9pZClcbiIKKyAgICAgICAgICAgIntcbiIKKyAgICAgICAgICAgImlmICgoZ2xf
SW52b2NhdGlvbklEICUgY291bnRlcl9pZCkgPT0gMClcbiIKKyAgICAgICAgICAgIntcbiIKKyAg
ICAgICAgICAgIiAgIGF0b21pY0NvdW50ZXJJbmNyZW1lbnQoYWNzW2NvdW50ZXJfaWQgLSAxXSk7
XG4iCisgICAgICAgICAgICJ9XG4iCisgICAgICAgICAgICJ9XG4iCisgICAgICAgICAgICJcbiIK
KyAgICAgICAgICAgIiAgICAgICBnbF9vdXQgW2dsX0ludm9jYXRpb25JRF0uZ2xfUG9zaXRpb24g
PSBnbF9pbltnbF9JbnZvY2F0aW9uSURdLmdsX1Bvc2l0aW9uO1xuIgorICAgICAgICAgICAiICAg
ICAgIGdsX1Rlc3NMZXZlbElubmVyWzBdID0gMS4wO1xuIgorICAgICAgICAgICAiICAgICAgIGds
X1Rlc3NMZXZlbE91dGVyWzBdID0gMS4wO1xuIgorICAgICAgICAgICAiICAgICAgIGdsX1Rlc3NM
ZXZlbE91dGVyWzFdID0gMS4wO1xuIgorICAgICAgICAgICAiICAgICAgIGdsX1Rlc3NMZXZlbE91
dGVyWzJdID0gMS4wO1xuIgorICAgICAgICAgICAifVxuIjsKKyAgICBzdGQ6OnN0cmluZyB0Y3Nf
Y29kZSA9IHRjc19jb2RlX3NzdHJlYW0uc3RyKCk7CisgICAgY29uc3QgY2hhciAqa1RDICAgICAg
PSB0Y3NfY29kZS5jX3N0cigpOworCisgICAgLy8gVGVzc2VsbGF0aW9uIEV2YWx1YXRpb24gU2hh
ZGVyIENvZGUKKyAgICBjb25zdGV4cHIgY2hhciBrVEVTW10gPQorICAgICAgICAiI3ZlcnNpb24g
MzEwIGVzXG4iCisgICAgICAgICIjZXh0ZW5zaW9uIEdMX0VYVF90ZXNzZWxsYXRpb25fc2hhZGVy
IDogcmVxdWlyZVxuIgorICAgICAgICAibGF5b3V0ICh0cmlhbmdsZXMpIGluO1xuIgorICAgICAg
ICAidm9pZCBtYWluKClcbiIKKyAgICAgICAgIntcbiIKKyAgICAgICAgIiAgIGdsX1Bvc2l0aW9u
ID0gZ2xfVGVzc0Nvb3JkWzBdICogZ2xfaW5bMF0uZ2xfUG9zaXRpb24gKyIKKyAgICAgICAgIiAg
ICAgICAgICAgICAgICAgZ2xfVGVzc0Nvb3JkWzFdICogZ2xfaW5bMV0uZ2xfUG9zaXRpb24gKyIK
KyAgICAgICAgIiAgICAgICAgICAgICAgICAgZ2xfVGVzc0Nvb3JkWzJdICogZ2xfaW5bMl0uZ2xf
UG9zaXRpb247XG4iCisgICAgICAgICJ9XG4iOworCisgICAgLy8gRnJhZ21lbnQgU2hhZGVyIENv
ZGUKKyAgICBjb25zdCBjaGFyICprRlMgPQorICAgICAgICAiI3ZlcnNpb24gMzEwIGVzXG4iCisg
ICAgICAgICJcbiIKKyAgICAgICAgInByZWNpc2lvbiBoaWdocCBmbG9hdDtcbiIKKyAgICAgICAg
IlxuIgorICAgICAgICAib3V0IHZlYzQgcmVzdWx0O1xuIgorICAgICAgICAiXG4iCisgICAgICAg
ICJ2b2lkIG1haW4oKVxuIgorICAgICAgICAie1xuIgorICAgICAgICAiICAgIHJlc3VsdCA9IHZl
YzQoMS4wKTtcbiIKKyAgICAgICAgIn1cbiI7CisgICAgR0x1aW50IHByb2dyYW0gPSBDb21waWxl
UHJvZ3JhbVdpdGhURVNTKGtWUywga1RDLCBrVEVTLCBrRlMpOworICAgIEVYUEVDVF9ORSgwdSwg
cHJvZ3JhbSk7CisgICAgZ2xVc2VQcm9ncmFtKHByb2dyYW0pOworCisgICAgLy8gQ3JlYXRlIGFu
ZCBCaW5kIEF0b21pYyBDb3VudGVyIEJ1ZmZlciBPYmplY3QKKyAgICBHTHVpbnQgYXRvbWljQnVm
ZmVySUQ7CisgICAgZ2xHZW5CdWZmZXJzKDEsICZhdG9taWNCdWZmZXJJRCk7CisgICAgR0x1aW50
ICphdG9taWNCdWZmZXJEYXRhID0gbmV3IEdMdWludFttYXhUZXNzZWxsYXRpb25Db250cm9sQXRv
bWljQ291bnRlcnNdOworICAgIG1lbXNldChhdG9taWNCdWZmZXJEYXRhLCAwLCBzaXplb2YoR0x1
aW50KSAqIG1heFRlc3NlbGxhdGlvbkNvbnRyb2xBdG9taWNDb3VudGVycyk7CisgICAgZ2xCaW5k
QnVmZmVyKEdMX0FUT01JQ19DT1VOVEVSX0JVRkZFUiwgYXRvbWljQnVmZmVySUQpOworICAgIGds
QnVmZmVyRGF0YShHTF9BVE9NSUNfQ09VTlRFUl9CVUZGRVIsIHNpemVvZihHTHVpbnQpICogbWF4
VGVzc2VsbGF0aW9uQ29udHJvbEF0b21pY0NvdW50ZXJzLAorICAgICAgICAgICAgICAgICBOVUxM
LCBHTF9EWU5BTUlDX0NPUFkpOworICAgIGdsQnVmZmVyU3ViRGF0YShHTF9BVE9NSUNfQ09VTlRF
Ul9CVUZGRVIsIDAsCisgICAgICAgICAgICAgICAgICAgIHNpemVvZihHTHVpbnQpICogbWF4VGVz
c2VsbGF0aW9uQ29udHJvbEF0b21pY0NvdW50ZXJzLCBhdG9taWNCdWZmZXJEYXRhKTsKKyAgICBn
bEJpbmRCdWZmZXJCYXNlKEdMX0FUT01JQ19DT1VOVEVSX0JVRkZFUiwgMCwgYXRvbWljQnVmZmVy
SUQpOworCisgICAgLy8gQmluZCBuTG9vcEl0ZXJhdGlvbnNVbmlmb3JtTG9jYXRpb24gdW5pZm9y
bQorICAgIEdMaW50IG5Mb29wSXRlcmF0aW9uc1VuaWZvcm1Mb2NhdGlvbiA9IC0xOworICAgIG5M
b29wSXRlcmF0aW9uc1VuaWZvcm1Mb2NhdGlvbiAgICAgICA9IGdsR2V0VW5pZm9ybUxvY2F0aW9u
KHByb2dyYW0sICJuTG9vcEl0ZXJhdGlvbnMiKTsKKyAgICBFWFBFQ1RfTkUoLTEsIG5Mb29wSXRl
cmF0aW9uc1VuaWZvcm1Mb2NhdGlvbik7CisgICAgZ2xVbmlmb3JtMWkobkxvb3BJdGVyYXRpb25z
VW5pZm9ybUxvY2F0aW9uLCBtYXhUZXNzZWxsYXRpb25Db250cm9sQXRvbWljQ291bnRlcnMpOwor
CisgICAgLy8gSXNzdWUgYSBEcmF3Y2FsbAorICAgIHN0ZDo6YXJyYXk8VmVjdG9yMywgMz4gdHJp
YW5nbGVWZXJ0aWNlcyA9IHsKKyAgICAgICAgVmVjdG9yMygtMS4wZiwgMS4wZiwgMC41ZiksIFZl
Y3RvcjMoLTEuMGYsIC0xLjBmLCAwLjVmKSwgVmVjdG9yMygxLjBmLCAtMS4wZiwgMC41Zil9Owor
ICAgIEdMaW50IHBvc2l0aW9uTG9jYXRpb24gPSBnbEdldEF0dHJpYkxvY2F0aW9uKHByb2dyYW0s
ICJhX3Bvc2l0aW9uIik7CisgICAgZ2xWZXJ0ZXhBdHRyaWJQb2ludGVyKHBvc2l0aW9uTG9jYXRp
b24sIDMsIEdMX0ZMT0FULCBHTF9GQUxTRSwgMCwgdHJpYW5nbGVWZXJ0aWNlcy5kYXRhKCkpOwor
ICAgIGdsRW5hYmxlVmVydGV4QXR0cmliQXJyYXkocG9zaXRpb25Mb2NhdGlvbik7CisgICAgZ2xE
cmF3QXJyYXlzKEdMX1BBVENIRVMsIDAsIDMpOworICAgIEFTU0VSVF9HTF9OT19FUlJPUigpOwor
CisgICAgLy8gQ2hlY2sgdGhlIHZhbHVlIG9mIGF0b21pYyBjb3VudGVyIGJ1ZmZlcgorICAgIEdM
dWludCAqYXRvbWljQnVmZmVyUmVzdWx0ID0gKEdMdWludCAqKWdsTWFwQnVmZmVyUmFuZ2UoCisg
ICAgICAgIEdMX0FUT01JQ19DT1VOVEVSX0JVRkZFUiwgMCwgc2l6ZW9mKEdMdWludCkgKiBtYXhU
ZXNzZWxsYXRpb25Db250cm9sQXRvbWljQ291bnRlcnMsCisgICAgICAgIEdMX01BUF9SRUFEX0JJ
VCk7CisKKyAgICBmb3IgKEdMaW50IG5fYWMgPSAxOyBuX2FjIDw9IG1heFRlc3NlbGxhdGlvbkNv
bnRyb2xBdG9taWNDb3VudGVyczsgKytuX2FjKQorICAgIHsKKyAgICAgICAgdW5zaWduZWQgaW50
IGV4cGVjdGVkX3ZhbHVlID0gMDsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpbnQgbl9kcmF3X2Nh
bGxfdmVydGV4ID0gMDsKKyAgICAgICAgICAgICBuX2RyYXdfY2FsbF92ZXJ0ZXggPCB0ZXNzZWxs
YXRpb25Db250cm9sUG9pbnRzQ291bnQ7ICsrbl9kcmF3X2NhbGxfdmVydGV4KQorICAgICAgICB7
CisgICAgICAgICAgICBpZiAoKG5fZHJhd19jYWxsX3ZlcnRleCAlIG5fYWMpID09IDApCisgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgZXhwZWN0ZWRfdmFsdWUrKzsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgfQorICAgICAgICBFWFBFQ1RfRVEoYXRvbWljQnVmZmVyUmVzdWx0W25fYWMg
LSAxXSwgZXhwZWN0ZWRfdmFsdWUpOworICAgIH0KKworICAgIGdsVW5tYXBCdWZmZXIoR0xfQVRP
TUlDX0NPVU5URVJfQlVGRkVSKTsKKyAgICBnbERpc2FibGVWZXJ0ZXhBdHRyaWJBcnJheShwb3Np
dGlvbkxvY2F0aW9uKTsKKyAgICBnbERlbGV0ZUJ1ZmZlcnMoMSwgJmF0b21pY0J1ZmZlcklEKTsK
KyAgICBnbERlbGV0ZVByb2dyYW0ocHJvZ3JhbSk7Cit9CisKKy8vIFRlc3QgdGhhdCBUZXNzZWxs
YXRpb24gRXZhbHVhdGlvbiBTaGFkZXIgQ2FuIFJlYWQvV3JpdGUgdG8gYXRvbWljIGNvdW50ZXIg
YnVmZmVycworVEVTVF9QKEF0b21pY0NvdW50ZXJCdWZmZXJUZXN0MzEsIFRlc3NlbGxhdGlvbkV2
YWx1YXRpb25TaGFkZXJNYXhBdG9taWNDb3VudGVyVGVzdHMpCit7CisgICAgQU5HTEVfU0tJUF9U
RVNUX0lGKCFJc0dMRXh0ZW5zaW9uRW5hYmxlZCgiR0xfRVhUX3Rlc3NlbGxhdGlvbl9zaGFkZXIi
KSk7CisgICAgR0xpbnQgbWF4VGVzc2VsbGF0aW9uRXZhbHVhdGlvbkF0b21pY0NvdW50ZXJzID0g
MDsKKyAgICBnbEdldEludGVnZXJ2KEdMX01BWF9URVNTX0VWQUxVQVRJT05fQVRPTUlDX0NPVU5U
RVJTLCAmbWF4VGVzc2VsbGF0aW9uRXZhbHVhdGlvbkF0b21pY0NvdW50ZXJzKTsKKyAgICBBTkdM
RV9TS0lQX1RFU1RfSUYobWF4VGVzc2VsbGF0aW9uRXZhbHVhdGlvbkF0b21pY0NvdW50ZXJzIDw9
IDApOworCisgICAgLy8gQ2FwIHRoZSBhdG9taWMgY291bnRlcnMgdG8gYW4gYXJiaXRyYXJ5IHZh
bHVlIDE2IGluIGNhc2Ugd2UgZG8gbm90IGhhdmUgYSBsaW1pdCBmb3IKKyAgICAvLyBHTF9NQVhf
VEVTU19DT05UUk9MX0FUT01JQ19DT1VOVEVSUyBvbiBjZXJ0YWluIGRldmljZXMKKyAgICBHTGlu
dCBtYXhUZXNzZWxsYXRpb25FdmFsdWF0aW9uQXRvbWljQ291bnRlcnNDYXAgPSAxNnU7CisgICAg
bWF4VGVzc2VsbGF0aW9uRXZhbHVhdGlvbkF0b21pY0NvdW50ZXJzID0gc3RkOjptaW4obWF4VGVz
c2VsbGF0aW9uRXZhbHVhdGlvbkF0b21pY0NvdW50ZXJzLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heFRlc3NlbGxhdGlvbkV2YWx1YXRp
b25BdG9taWNDb3VudGVyc0NhcCk7CisKKyAgICBjb25zdCB1bnNpZ25lZCBpbnQgdGVzc2VsbGF0
aW9uQ29udHJvbFBvaW50c0NvdW50ID0gMzsKKworICAgIC8vIFZlcnRleCBTaGFkZXIgQ29kZQor
ICAgIGNvbnN0IGNoYXIgKmtWUyA9CisgICAgICAgICIjdmVyc2lvbiAzMTAgZXNcbiIKKyAgICAg
ICAgIlxuIgorICAgICAgICAiaW4gdmVjNCBhX3Bvc2l0aW9uO1xuIgorICAgICAgICAiXG4iCisg
ICAgICAgICJ2b2lkIG1haW4oKVxuIgorICAgICAgICAie1xuIgorICAgICAgICAiICAgIGdsX1Bv
c2l0aW9uICA9IGFfcG9zaXRpb247XG4iCisgICAgICAgICJ9XG4iOworCisgICAgLy8gVGVzc2Vs
bGF0aW9uIENvbnRyb2wgU2hhZGVyIENvZGUKKyAgICBzdGQ6OnN0cmluZ3N0cmVhbSB0Y3NfY29k
ZV9zc3RyZWFtOworICAgIHRjc19jb2RlX3NzdHJlYW0KKyAgICAgICAgPDwgIiN2ZXJzaW9uIDMx
MCBlc1xuIgorICAgICAgICAgICAiI2V4dGVuc2lvbiBHTF9FWFRfdGVzc2VsbGF0aW9uX3NoYWRl
ciA6IHJlcXVpcmVcbiIKKyAgICAgICAgICAgImxheW91dCh2ZXJ0aWNlcyA9ICIKKyAgICAgICAg
PDwgdGVzc2VsbGF0aW9uQ29udHJvbFBvaW50c0NvdW50CisgICAgICAgIDw8ICIpIG91dDtcbiIK
KyAgICAgICAgICAgInZvaWQgbWFpbigpXG4iCisgICAgICAgICAgICJ7XG4iCisgICAgICAgICAg
ICIgICAgICAgZ2xfb3V0W2dsX0ludm9jYXRpb25JRF0uZ2xfUG9zaXRpb24gPSBnbF9pbltnbF9J
bnZvY2F0aW9uSURdLmdsX1Bvc2l0aW9uO1xuIgorICAgICAgICAgICAiICAgICAgIGdsX1Rlc3NM
ZXZlbElubmVyWzBdID0gMS4wO1xuIgorICAgICAgICAgICAiICAgICAgIGdsX1Rlc3NMZXZlbE91
dGVyWzBdID0gMS4wO1xuIgorICAgICAgICAgICAiICAgICAgIGdsX1Rlc3NMZXZlbE91dGVyWzFd
ID0gMS4wO1xuIgorICAgICAgICAgICAiICAgICAgIGdsX1Rlc3NMZXZlbE91dGVyWzJdID0gMS4w
O1xuIgorICAgICAgICAgICAifVxuIjsKKyAgICBzdGQ6OnN0cmluZyB0Y3NfY29kZSA9IHRjc19j
b2RlX3NzdHJlYW0uc3RyKCk7CisgICAgY29uc3QgY2hhciAqa1RDICAgICAgPSB0Y3NfY29kZS5j
X3N0cigpOworCisgICAgLy8gVGVzc2VsbGF0aW9uIEV2YWx1YXRpb24gU2hhZGVyIENvZGUKKyAg
ICAvLyBUaGUgZ2xfVGVzc0xldmVsSW5uZXIgYW5kIGdsX1Rlc3NMZXZlbE91dGVyIHZhbHVlcyBp
biB0ZXNzZWxsYXRpb24gY29udHJvbCBzaGFkZXIgKHRjcykgY29kZQorICAgIC8vIGFyZSBzZXQg
dG8gMSwgbWVhbmluZyB3ZSBkbyBub3Qgc3ViZGl2aWRlIHRoZSBwYXRjaCBhbmQgY3JlYXRlIG1v
cmUgdmVydGljZXMuIFRoZSBudW1iZXIgb2YKKyAgICAvLyB0ZXNzZWxsYXRpb24gZXZhbHVhdGlv
biBzaGFkZXIgKHRlcykgaW52b2NhdGlvbnMgaXMgdGhlIHNhbWUgYXMgbnVtYmVyIG9mIHZlcnRl
eCBvdXRwdXQgZnJvbQorICAgIC8vIHRjcyAoZS5nLiB0ZXNzZWxsYXRpb25Db250cm9sUG9pbnRz
Q291bnQpLgorICAgIC8vIEluY3JlbWVudCBhbGwgZWxlbWVudHMgaW4gYXRvbWljIGNvdW50ZXJz
IGFjc1tdIGluIGV2ZXJ5IHRlcyBpbnZvY2F0aW9uLgorICAgIC8vIEZpbmFsIHZhbHVlIGluIGF0
b21pYyBjb3VudGVycyBhY3NbXSBzaG91bGQgYmUgdGhlIHNhbWUgYXMgdGhlIG51bWJlciBvZgor
ICAgIC8vIHRlcyBpbnZvY2F0aW9ucyAoZS5nLiB0ZXNzZWxsYXRpb25Db250cm9sUG9pbnRzQ291
bnQpLgorICAgIHN0ZDo6c3RyaW5nc3RyZWFtIHRlc19jb2RlX3NzdHJlYW07CisgICAgdGVzX2Nv
ZGVfc3N0cmVhbSA8PCAiI3ZlcnNpb24gMzEwIGVzXG4iCisgICAgICAgICAgICAgICAgICAgICAg
ICAiI2V4dGVuc2lvbiBHTF9FWFRfdGVzc2VsbGF0aW9uX3NoYWRlciA6IHJlcXVpcmVcbiIKKyAg
ICAgICAgICAgICAgICAgICAgICAgICJsYXlvdXQgKHRyaWFuZ2xlcykgaW47XG4iCisgICAgICAg
ICAgICAgICAgICAgICAgICAidW5pZm9ybSBpbnQgbkxvb3BJdGVyYXRpb25zO1xuIgorICAgICAg
ICAgICAgICAgICAgICAgICAgImxheW91dChiaW5kaW5nID0gMCkgdW5pZm9ybSBhdG9taWNfdWlu
dCBhY3NbIgorICAgICAgICAgICAgICAgICAgICAgPDwgbWF4VGVzc2VsbGF0aW9uRXZhbHVhdGlv
bkF0b21pY0NvdW50ZXJzCisgICAgICAgICAgICAgICAgICAgICA8PCAiXTtcbiIKKyAgICAgICAg
ICAgICAgICAgICAgICAgICJ2b2lkIG1haW4oKVxuIgorICAgICAgICAgICAgICAgICAgICAgICAg
IntcbiIKKyAgICAgICAgICAgICAgICAgICAgICAgICJmb3IgKGludCBjb3VudGVyX2lkID0gMDtc
biIKKyAgICAgICAgICAgICAgICAgICAgICAgICJjb3VudGVyX2lkIDwgbkxvb3BJdGVyYXRpb25z
O1xuIgorICAgICAgICAgICAgICAgICAgICAgICAgIisrY291bnRlcl9pZClcbiIKKyAgICAgICAg
ICAgICAgICAgICAgICAgICJ7XG4iCisgICAgICAgICAgICAgICAgICAgICAgICAiICAgYXRvbWlj
Q291bnRlckluY3JlbWVudChhY3NbY291bnRlcl9pZF0pO1xuIgorICAgICAgICAgICAgICAgICAg
ICAgICAgIn1cbiIKKyAgICAgICAgICAgICAgICAgICAgICAgICJcbiIKKyAgICAgICAgICAgICAg
ICAgICAgICAgICIgICBnbF9Qb3NpdGlvbiA9IGdsX1Rlc3NDb29yZFswXSAqIGdsX2luWzBdLmds
X1Bvc2l0aW9uICsiCisgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgICAgICBn
bF9UZXNzQ29vcmRbMV0gKiBnbF9pblsxXS5nbF9Qb3NpdGlvbiArIgorICAgICAgICAgICAgICAg
ICAgICAgICAgIiAgICAgICAgICAgICAgICAgZ2xfVGVzc0Nvb3JkWzJdICogZ2xfaW5bMl0uZ2xf
UG9zaXRpb247XG4iCisgICAgICAgICAgICAgICAgICAgICAgICAifVxuIjsKKyAgICBzdGQ6OnN0
cmluZyB0ZXNfY29kZSA9IHRlc19jb2RlX3NzdHJlYW0uc3RyKCk7CisgICAgY29uc3QgY2hhciAq
a1RFUyAgICAgPSB0ZXNfY29kZS5jX3N0cigpOworCisgICAgLy8gRnJhZ21lbnQgU2hhZGVyIENv
ZGUKKyAgICBjb25zdCBjaGFyICprRlMgPQorICAgICAgICAiI3ZlcnNpb24gMzEwIGVzXG4iCisg
ICAgICAgICJcbiIKKyAgICAgICAgInByZWNpc2lvbiBoaWdocCBmbG9hdDtcbiIKKyAgICAgICAg
IlxuIgorICAgICAgICAib3V0IHZlYzQgcmVzdWx0O1xuIgorICAgICAgICAiXG4iCisgICAgICAg
ICJ2b2lkIG1haW4oKVxuIgorICAgICAgICAie1xuIgorICAgICAgICAiICAgIHJlc3VsdCA9IHZl
YzQoMS4wKTtcbiIKKyAgICAgICAgIn1cbiI7CisgICAgR0x1aW50IHByb2dyYW0gPSBDb21waWxl
UHJvZ3JhbVdpdGhURVNTKGtWUywga1RDLCBrVEVTLCBrRlMpOworICAgIEVYUEVDVF9ORSgwdSwg
cHJvZ3JhbSk7CisgICAgZ2xVc2VQcm9ncmFtKHByb2dyYW0pOworCisgICAgLy8gQ3JlYXRlIGFu
ZCBCaW5kIEF0b21pYyBDb3VudGVyIEJ1ZmZlciBPYmplY3QKKyAgICBHTHVpbnQgYXRvbWljQnVm
ZmVySUQ7CisgICAgZ2xHZW5CdWZmZXJzKDEsICZhdG9taWNCdWZmZXJJRCk7CisgICAgR0x1aW50
ICphdG9taWNCdWZmZXJEYXRhID0gbmV3IEdMdWludFttYXhUZXNzZWxsYXRpb25FdmFsdWF0aW9u
QXRvbWljQ291bnRlcnNdOworICAgIG1lbXNldChhdG9taWNCdWZmZXJEYXRhLCAwLCBzaXplb2Yo
R0x1aW50KSAqIG1heFRlc3NlbGxhdGlvbkV2YWx1YXRpb25BdG9taWNDb3VudGVycyk7CisgICAg
Z2xCaW5kQnVmZmVyKEdMX0FUT01JQ19DT1VOVEVSX0JVRkZFUiwgYXRvbWljQnVmZmVySUQpOwor
ICAgIGdsQnVmZmVyRGF0YShHTF9BVE9NSUNfQ09VTlRFUl9CVUZGRVIsIHNpemVvZihHTHVpbnQp
ICogbWF4VGVzc2VsbGF0aW9uRXZhbHVhdGlvbkF0b21pY0NvdW50ZXJzLAorICAgICAgICAgICAg
ICAgICBOVUxMLCBHTF9EWU5BTUlDX0NPUFkpOworICAgIGdsQnVmZmVyU3ViRGF0YShHTF9BVE9N
SUNfQ09VTlRFUl9CVUZGRVIsIDAsCisgICAgICAgICAgICAgICAgICAgIHNpemVvZihHTHVpbnQp
ICogbWF4VGVzc2VsbGF0aW9uRXZhbHVhdGlvbkF0b21pY0NvdW50ZXJzLCBhdG9taWNCdWZmZXJE
YXRhKTsKKyAgICBnbEJpbmRCdWZmZXJCYXNlKEdMX0FUT01JQ19DT1VOVEVSX0JVRkZFUiwgMCwg
YXRvbWljQnVmZmVySUQpOworCisgICAgLy8gQmluZCBuTG9vcEl0ZXJhdGlvbnNVbmlmb3JtTG9j
YXRpb24gdW5pZm9ybQorICAgIEdMaW50IG5Mb29wSXRlcmF0aW9uc1VuaWZvcm1Mb2NhdGlvbiA9
IC0xOworICAgIG5Mb29wSXRlcmF0aW9uc1VuaWZvcm1Mb2NhdGlvbiAgICAgICA9IGdsR2V0VW5p
Zm9ybUxvY2F0aW9uKHByb2dyYW0sICJuTG9vcEl0ZXJhdGlvbnMiKTsKKyAgICBFWFBFQ1RfTkUo
LTEsIG5Mb29wSXRlcmF0aW9uc1VuaWZvcm1Mb2NhdGlvbik7CisgICAgZ2xVbmlmb3JtMWkobkxv
b3BJdGVyYXRpb25zVW5pZm9ybUxvY2F0aW9uLCBtYXhUZXNzZWxsYXRpb25FdmFsdWF0aW9uQXRv
bWljQ291bnRlcnMpOworCisgICAgLy8gSXNzdWUgRHJhd2NhbGwKKyAgICBzdGQ6OmFycmF5PFZl
Y3RvcjMsIDM+IHRyaWFuZ2xlVmVydGljZXMgPSB7CisgICAgICAgIFZlY3RvcjMoLTEuMGYsIDEu
MGYsIDAuNWYpLCBWZWN0b3IzKC0xLjBmLCAtMS4wZiwgMC41ZiksIFZlY3RvcjMoMS4wZiwgLTEu
MGYsIDAuNWYpfTsKKyAgICBHTGludCBwb3NpdGlvbkxvY2F0aW9uID0gZ2xHZXRBdHRyaWJMb2Nh
dGlvbihwcm9ncmFtLCAiYV9wb3NpdGlvbiIpOworICAgIGdsVmVydGV4QXR0cmliUG9pbnRlcihw
b3NpdGlvbkxvY2F0aW9uLCAzLCBHTF9GTE9BVCwgR0xfRkFMU0UsIDAsIHRyaWFuZ2xlVmVydGlj
ZXMuZGF0YSgpKTsKKyAgICBnbEVuYWJsZVZlcnRleEF0dHJpYkFycmF5KHBvc2l0aW9uTG9jYXRp
b24pOworICAgIGdsRHJhd0FycmF5cyhHTF9QQVRDSEVTLCAwLCAzKTsKKyAgICBBU1NFUlRfR0xf
Tk9fRVJST1IoKTsKKworICAgIC8vIENoZWNrIHRoZSB2YWx1ZSBvZiBhdG9taWMgY291bnRlciBi
dWZmZXIKKyAgICBHTHVpbnQgKmF0b21pY0J1ZmZlclJlc3VsdCA9IChHTHVpbnQgKilnbE1hcEJ1
ZmZlclJhbmdlKAorICAgICAgICBHTF9BVE9NSUNfQ09VTlRFUl9CVUZGRVIsIDAsIHNpemVvZihH
THVpbnQpICogbWF4VGVzc2VsbGF0aW9uRXZhbHVhdGlvbkF0b21pY0NvdW50ZXJzLAorICAgICAg
ICBHTF9NQVBfUkVBRF9CSVQpOworICAgIHVuc2lnbmVkIGludCBleHBlY3RlZF92YWx1ZSA9IHRl
c3NlbGxhdGlvbkNvbnRyb2xQb2ludHNDb3VudDsKKyAgICBmb3IgKEdMaW50IG5fYWMgPSAwOyBu
X2FjIDwgbWF4VGVzc2VsbGF0aW9uRXZhbHVhdGlvbkF0b21pY0NvdW50ZXJzOyArK25fYWMpCisg
ICAgeworICAgICAgICBFWFBFQ1RfRVEoYXRvbWljQnVmZmVyUmVzdWx0W25fYWNdLCBleHBlY3Rl
ZF92YWx1ZSk7CisgICAgfQorCisgICAgZ2xVbm1hcEJ1ZmZlcihHTF9BVE9NSUNfQ09VTlRFUl9C
VUZGRVIpOworICAgIGdsRGlzYWJsZVZlcnRleEF0dHJpYkFycmF5KHBvc2l0aW9uTG9jYXRpb24p
OworICAgIGdsRGVsZXRlQnVmZmVycygxLCAmYXRvbWljQnVmZmVySUQpOworICAgIGdsRGVsZXRl
UHJvZ3JhbShwcm9ncmFtKTsKK30KKwogLy8gQ291bnRlcnMgbWF0Y2hpbmcgYWNyb3NzIHNoYWRl
ciBzdGFnZXMgc2hvdWxkIGZhaWwgaWYgb2Zmc2V0cyBhcmVuJ3QgYWxsIHNwZWNpZmllZC4KIC8v
IEdMU0wgRVMgU3BlYyAzLjEwLjQsIHNlY3Rpb24gOS4yLjEuCiBURVNUX1AoQXRvbWljQ291bnRl
ckJ1ZmZlclRlc3QzMSwgT2Zmc2V0Tm90QWxsU3BlY2lmaWVkKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3RzL2dsX3Rlc3RzL0JsZW5kTWluTWF4VGVzdC5jcHAg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvZ2xfdGVzdHMvQmxlbmRNaW5NYXhU
ZXN0LmNwcAppbmRleCAyNzM0Njg4NmU1ZGNjY2IwMzRhYjMxN2JhZjI1MzE3YjIwYTJiN2IzLi40
ZjlmYWEzN2I3YmY1YjYyNTRlYmVjMzEzMTVjZTc5NGFmOGQ3ZTIwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvZ2xfdGVzdHMvQmxlbmRNaW5NYXhUZXN0LmNw
cAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvZ2xfdGVzdHMvQmxlbmRN
aW5NYXhUZXN0LmNwcApAQCAtMTg3LDggKzE4Nyw2IEBAIFRFU1RfUChCbGVuZE1pbk1heFRlc3Qs
IFJHQkExNkYpCiB7CiAgICAgQU5HTEVfU0tJUF9URVNUX0lGKGdldENsaWVudE1ham9yVmVyc2lv
bigpIDwgMyAmJgogICAgICAgICAgICAgICAgICAgICAgICAhSXNHTEV4dGVuc2lvbkVuYWJsZWQo
IkdMX0VYVF9jb2xvcl9idWZmZXJfaGFsZl9mbG9hdCIpKTsKLSAgICAvLyBodHRwOi8vYW5nbGVi
dWcuY29tLzQwOTIKLSAgICBBTkdMRV9TS0lQX1RFU1RfSUYoKElzQW5kcm9pZCgpICYmIElzVnVs
a2FuKCkpIHx8IGlzU3dpZnRzaGFkZXIoKSk7CiAKICAgICAvLyBUT0RPKGFuZ2xlYnVnLmNvbS81
NDkxKSBDb250ZXh0LmNwcCBkaXNhbGxvd3MgR0xfRVhUX2NvbG9yX2J1ZmZlcl9oYWxmX2Zsb2F0
IG9uIGlPUyBiZWNhdXNlCiAgICAgLy8gaXQgZG9lc24ndCBzdXBwb3J0IEdMX0VYVF9jb2xvcl9i
dWZmZXJfZmxvYXQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVz
dHMvZ2xfdGVzdHMvQmxpdEZyYW1lYnVmZmVyQU5HTEVUZXN0LmNwcCBiL1NvdXJjZS9UaGlyZFBh
cnR5L0FOR0xFL3NyYy90ZXN0cy9nbF90ZXN0cy9CbGl0RnJhbWVidWZmZXJBTkdMRVRlc3QuY3Bw
CmluZGV4IDczNWNhODQ5MThiZGMxMjlhMWJmNjE0NjVlOWZhOTljOWVhM2IxMjEuLmQ4NmE5NzRi
NTMyOWM4ODVkYWM1MjZjMjY2NDI5OWQwYTY5NGIzNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGly
ZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9nbF90ZXN0cy9CbGl0RnJhbWVidWZmZXJBTkdMRVRlc3Qu
Y3BwCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9nbF90ZXN0cy9CbGl0
RnJhbWVidWZmZXJBTkdMRVRlc3QuY3BwCkBAIC0xODUwLDkgKzE4NTAsNiBAQCBURVNUX1AoQmxp
dEZyYW1lYnVmZmVyVGVzdCwgTXVsdGlzYW1wbGVTdGVuY2lsKQogLy8gVGVzdCByZXNvbHZpbmcg
YSBtdWx0aXNhbXBsZWQgc3RlbmNpbCBidWZmZXIgd2l0aCBzY2lzc29yLgogVEVTVF9QKEJsaXRG
cmFtZWJ1ZmZlclRlc3QsIFNjaXNzb3JlZE11bHRpc2FtcGxlU3RlbmNpbCkKIHsKLSAgICAvLyBG
YWlscyB2ZXJpZnlpbmcgdGhhdCB0aGUgbWlkZGxlIHBpeGVsIGlzIHJlZC4gaHR0cDovL2FuZ2xl
YnVnLmNvbS8zNDk2Ci0gICAgQU5HTEVfU0tJUF9URVNUX0lGKChJc0ludGVsKCkgfHwgSXNBTUQo
KSkgJiYgSXNPU1goKSk7Ci0KICAgICBjb25zdGV4cHIgR0x1aW50IGtTaXplID0gMjU2OwogCiAg
ICAgLy8gQ3JlYXRlIHRoZSByZXNvbHZlIGZyYW1lYnVmZmVyLgpAQCAtMzM1OCw2ICszMzU1LDEx
NCBAQCBURVNUX1AoQmxpdEZyYW1lYnVmZmVyVGVzdEVTMzEsIE11bHRpc2FtcGxlRmxpcHBlZFJl
c29sdmVXaXRoQmxpdEFuZE5vbkZsaXBwZWREcgogICAgIEVYUEVDVF9QSVhFTF9ORUFSKGtSZXNv
bHZlRkJPV2lkdGggLSAxLCBrUmVzb2x2ZUZCT0hlaWdodCAtIDEsIDE5OSwgNDAsIDAsIDI1NSwg
MS4wKTsKIH0KIAorLy8gVGVzdCByZXNvbHZpbmcgaW50byBzbWFsbGVyIGZyYW1lYnVmZmVyLgor
VEVTVF9QKEJsaXRGcmFtZWJ1ZmZlclRlc3QsIFJlc29sdmVJbnRvU21hbGxlckZyYW1lYnVmZmVy
KQoreworICAgIGNvbnN0ZXhwciBHTHVpbnQga1NpemVbMl0gPSB7NDAsIDMyfTsKKyAgICBnbFZp
ZXdwb3J0KDAsIDAsIGtTaXplWzBdLCBrU2l6ZVswXSk7CisKKyAgICBHTFJlbmRlcmJ1ZmZlciBy
Ym9bMl07CisgICAgR0xSZW5kZXJidWZmZXIgZmJvWzJdOworCisgICAgZm9yIChpbnQgaSA9IDA7
IGkgPCAyOyArK2kpCisgICAgeworICAgICAgICBnbEJpbmRSZW5kZXJidWZmZXIoR0xfUkVOREVS
QlVGRkVSLCByYm9baV0pOworICAgICAgICBpZiAoaSA9PSAwKQorICAgICAgICB7CisgICAgICAg
ICAgICBnbFJlbmRlcmJ1ZmZlclN0b3JhZ2VNdWx0aXNhbXBsZShHTF9SRU5ERVJCVUZGRVIsIDQs
IEdMX1JHQkE4LCBrU2l6ZVtpXSwga1NpemVbaV0pOworICAgICAgICB9CisgICAgICAgIGVsc2UK
KyAgICAgICAgeworICAgICAgICAgICAgZ2xSZW5kZXJidWZmZXJTdG9yYWdlKEdMX1JFTkRFUkJV
RkZFUiwgR0xfUkdCQTgsIGtTaXplW2ldLCBrU2l6ZVtpXSk7CisgICAgICAgIH0KKyAgICAgICAg
Z2xCaW5kRnJhbWVidWZmZXIoR0xfRlJBTUVCVUZGRVIsIGZib1tpXSk7CisgICAgICAgIGdsRnJh
bWVidWZmZXJSZW5kZXJidWZmZXIoR0xfRlJBTUVCVUZGRVIsIEdMX0NPTE9SX0FUVEFDSE1FTlQw
LCBHTF9SRU5ERVJCVUZGRVIsIHJib1tpXSk7CisgICAgfQorCisgICAgQU5HTEVfR0xfUFJPR1JB
TShwcm9ncmFtLCBlc3NsMV9zaGFkZXJzOjp2czo6U2ltcGxlKCksIGVzc2wxX3NoYWRlcnM6OmZz
OjpSZWQoKSk7CisgICAgZ2xVc2VQcm9ncmFtKHByb2dyYW0pOworCisgICAgZ2xCaW5kRnJhbWVi
dWZmZXIoR0xfRlJBTUVCVUZGRVIsIGZib1swXSk7CisgICAgZHJhd1F1YWQocHJvZ3JhbSwgZXNz
bDFfc2hhZGVyczo6UG9zaXRpb25BdHRyaWIoKSwgMC4zZik7CisKKyAgICBnbEJpbmRGcmFtZWJ1
ZmZlcihHTF9EUkFXX0ZSQU1FQlVGRkVSLCBmYm9bMV0pOworICAgIGdsQmxpdEZyYW1lYnVmZmVy
KDAsIDAsIGtTaXplWzFdLCBrU2l6ZVsxXSwgMCwgMCwga1NpemVbMV0sIGtTaXplWzFdLCBHTF9D
T0xPUl9CVUZGRVJfQklULAorICAgICAgICAgICAgICAgICAgICAgIEdMX05FQVJFU1QpOworCisg
ICAgZ2xCaW5kRnJhbWVidWZmZXIoR0xfUkVBRF9GUkFNRUJVRkZFUiwgZmJvWzFdKTsKKyAgICBF
WFBFQ1RfUElYRUxfUkVDVF9FUSgwLCAwLCBrU2l6ZVsxXSwga1NpemVbMV0sIEdMQ29sb3I6OnJl
ZCk7Cit9CisKKy8vIFRlc3QgcmVzb2x2aW5nIGludG8gYmlnZ2VyIGZyYW1lYnVmZmVyLgorVEVT
VF9QKEJsaXRGcmFtZWJ1ZmZlclRlc3QsIFJlc29sdmVJbnRvQmlnZ2VyRnJhbWVidWZmZXIpCit7
CisgICAgY29uc3RleHByIEdMdWludCBrU2l6ZVsyXSA9IHszMiwgNDB9OworICAgIGdsVmlld3Bv
cnQoMCwgMCwga1NpemVbMF0sIGtTaXplWzBdKTsKKworICAgIEdMUmVuZGVyYnVmZmVyIHJib1sy
XTsKKyAgICBHTFJlbmRlcmJ1ZmZlciBmYm9bMl07CisKKyAgICBmb3IgKGludCBpID0gMDsgaSA8
IDI7ICsraSkKKyAgICB7CisgICAgICAgIGdsQmluZFJlbmRlcmJ1ZmZlcihHTF9SRU5ERVJCVUZG
RVIsIHJib1tpXSk7CisgICAgICAgIGlmIChpID09IDApCisgICAgICAgIHsKKyAgICAgICAgICAg
IGdsUmVuZGVyYnVmZmVyU3RvcmFnZU11bHRpc2FtcGxlKEdMX1JFTkRFUkJVRkZFUiwgNCwgR0xf
UkdCQTgsIGtTaXplW2ldLCBrU2l6ZVtpXSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZQorICAg
ICAgICB7CisgICAgICAgICAgICBnbFJlbmRlcmJ1ZmZlclN0b3JhZ2UoR0xfUkVOREVSQlVGRkVS
LCBHTF9SR0JBOCwga1NpemVbaV0sIGtTaXplW2ldKTsKKyAgICAgICAgfQorICAgICAgICBnbEJp
bmRGcmFtZWJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgZmJvW2ldKTsKKyAgICAgICAgZ2xGcmFtZWJ1
ZmZlclJlbmRlcmJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgR0xfQ09MT1JfQVRUQUNITUVOVDAsIEdM
X1JFTkRFUkJVRkZFUiwgcmJvW2ldKTsKKyAgICB9CisKKyAgICBBTkdMRV9HTF9QUk9HUkFNKHBy
b2dyYW0sIGVzc2wxX3NoYWRlcnM6OnZzOjpTaW1wbGUoKSwgZXNzbDFfc2hhZGVyczo6ZnM6OlJl
ZCgpKTsKKyAgICBnbFVzZVByb2dyYW0ocHJvZ3JhbSk7CisKKyAgICBnbEJpbmRGcmFtZWJ1ZmZl
cihHTF9GUkFNRUJVRkZFUiwgZmJvWzBdKTsKKyAgICBkcmF3UXVhZChwcm9ncmFtLCBlc3NsMV9z
aGFkZXJzOjpQb3NpdGlvbkF0dHJpYigpLCAwLjNmKTsKKworICAgIGdsQmluZEZyYW1lYnVmZmVy
KEdMX0RSQVdfRlJBTUVCVUZGRVIsIGZib1sxXSk7CisgICAgZ2xCbGl0RnJhbWVidWZmZXIoMCwg
MCwga1NpemVbMV0sIGtTaXplWzFdLCAwLCAwLCBrU2l6ZVsxXSwga1NpemVbMV0sIEdMX0NPTE9S
X0JVRkZFUl9CSVQsCisgICAgICAgICAgICAgICAgICAgICAgR0xfTkVBUkVTVCk7CisKKyAgICBn
bEJpbmRGcmFtZWJ1ZmZlcihHTF9SRUFEX0ZSQU1FQlVGRkVSLCBmYm9bMV0pOworICAgIEVYUEVD
VF9QSVhFTF9SRUNUX0VRKDAsIDAsIGtTaXplWzBdLCBrU2l6ZVswXSwgR0xDb2xvcjo6cmVkKTsK
K30KKworLy8gVGVzdCByZXNvbHZpbmcgaW50byBhIHJvdGF0ZWQgZnJhbWVidWZmZXIKK1RFU1Rf
UChCbGl0RnJhbWVidWZmZXJUZXN0LCBSZXNvbHZlV2l0aFJvdGF0aW9uKQoreworICAgIGNvbnN0
IEdMaW50IHcgPSBnZXRXaW5kb3dXaWR0aCgpOworICAgIGNvbnN0IEdMaW50IGggPSBnZXRXaW5k
b3dIZWlnaHQoKTsKKworICAgIGdsVmlld3BvcnQoMCwgMCwgdywgaCk7CisKKyAgICBHTFJlbmRl
cmJ1ZmZlciByYm87CisgICAgR0xSZW5kZXJidWZmZXIgZmJvOworCisgICAgZ2xCaW5kUmVuZGVy
YnVmZmVyKEdMX1JFTkRFUkJVRkZFUiwgcmJvKTsKKyAgICBnbFJlbmRlcmJ1ZmZlclN0b3JhZ2VN
dWx0aXNhbXBsZShHTF9SRU5ERVJCVUZGRVIsIDQsIEdMX1JHQkE4LCB3LCBoKTsKKyAgICBnbEJp
bmRGcmFtZWJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgZmJvKTsKKyAgICBnbEZyYW1lYnVmZmVyUmVu
ZGVyYnVmZmVyKEdMX0ZSQU1FQlVGRkVSLCBHTF9DT0xPUl9BVFRBQ0hNRU5UMCwgR0xfUkVOREVS
QlVGRkVSLCByYm8pOworCisgICAgQU5HTEVfR0xfUFJPR1JBTShwcm9ncmFtLCBlc3NsMV9zaGFk
ZXJzOjp2czo6UGFzc3Rocm91Z2goKSwgZXNzbDFfc2hhZGVyczo6ZnM6OkNoZWNrZXJlZCgpKTsK
KyAgICBnbFVzZVByb2dyYW0ocHJvZ3JhbSk7CisKKyAgICBnbEJpbmRGcmFtZWJ1ZmZlcihHTF9G
UkFNRUJVRkZFUiwgZmJvKTsKKyAgICBkcmF3UXVhZChwcm9ncmFtLCBlc3NsMV9zaGFkZXJzOjpQ
b3NpdGlvbkF0dHJpYigpLCAwLjNmKTsKKworICAgIGdsQmluZEZyYW1lYnVmZmVyKEdMX0RSQVdf
RlJBTUVCVUZGRVIsIDApOworICAgIGdsQmxpdEZyYW1lYnVmZmVyKDAsIDAsIHcsIGgsIDAsIDAs
IHcsIGgsIEdMX0NPTE9SX0JVRkZFUl9CSVQsIEdMX05FQVJFU1QpOworCisgICAgZ2xCaW5kRnJh
bWVidWZmZXIoR0xfUkVBRF9GUkFNRUJVRkZFUiwgMCk7CisgICAgRVhQRUNUX1BJWEVMX1JFQ1Rf
RVEoMCwgMCwgdyAvIDIsIGggLyAyLCBHTENvbG9yOjpyZWQpOworICAgIEVYUEVDVF9QSVhFTF9S
RUNUX0VRKHcgLyAyLCAwLCB3IC8gMiwgaCAvIDIsIEdMQ29sb3I6OmJsdWUpOworICAgIEVYUEVD
VF9QSVhFTF9SRUNUX0VRKDAsIGggLyAyLCB3IC8gMiwgaCAvIDIsIEdMQ29sb3I6OmdyZWVuKTsK
KyAgICBFWFBFQ1RfUElYRUxfUkVDVF9FUSh3IC8gMiwgaCAvIDIsIHcgLyAyLCBoIC8gMiwgR0xD
b2xvcjo6eWVsbG93KTsKK30KKwogLy8gVXNlIHRoaXMgdG8gc2VsZWN0IHdoaWNoIGNvbmZpZ3Vy
YXRpb25zIChlLmcuIHdoaWNoIHJlbmRlcmVyLCB3aGljaCBHTEVTIG1ham9yIHZlcnNpb24pIHRo
ZXNlCiAvLyB0ZXN0cyBzaG91bGQgYmUgcnVuIGFnYWluc3QuCiBHVEVTVF9BTExPV19VTklOU1RB
TlRJQVRFRF9QQVJBTUVURVJJWkVEX1RFU1QoQmxpdEZyYW1lYnVmZmVyQU5HTEVUZXN0KTsKQEAg
LTMzNjksMTQgKzM0NzQsMTggQEAgQU5HTEVfSU5TVEFOVElBVEVfVEVTVChCbGl0RnJhbWVidWZm
ZXJBTkdMRVRlc3QsCiAgICAgICAgICAgICAgICAgICAgICAgIEVTM19PUEVOR0woKSwKICAgICAg
ICAgICAgICAgICAgICAgICAgRVMyX1ZVTEtBTigpLAogICAgICAgICAgICAgICAgICAgICAgICBF
UzNfVlVMS0FOKCksCi0gICAgICAgICAgICAgICAgICAgICAgIFdpdGhFbXVsYXRlZFByZXJvdGF0
aW9uKEVTM19WVUxLQU4oKSwgOTApLAotICAgICAgICAgICAgICAgICAgICAgICBXaXRoRW11bGF0
ZWRQcmVyb3RhdGlvbihFUzNfVlVMS0FOKCksIDE4MCksCi0gICAgICAgICAgICAgICAgICAgICAg
IFdpdGhFbXVsYXRlZFByZXJvdGF0aW9uKEVTM19WVUxLQU4oKSwgMjcwKSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgRVMzX1ZVTEtBTigpLmVuYWJsZShGZWF0dXJlOjpFbXVsYXRlZFByZXJvdGF0
aW9uOTApLAorICAgICAgICAgICAgICAgICAgICAgICBFUzNfVlVMS0FOKCkuZW5hYmxlKEZlYXR1
cmU6OkVtdWxhdGVkUHJlcm90YXRpb24xODApLAorICAgICAgICAgICAgICAgICAgICAgICBFUzNf
VlVMS0FOKCkuZW5hYmxlKEZlYXR1cmU6OkVtdWxhdGVkUHJlcm90YXRpb24yNzApLAogICAgICAg
ICAgICAgICAgICAgICAgICBFUzJfTUVUQUwoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgV2l0
aE5vU2hhZGVyU3RlbmNpbE91dHB1dChFUzJfTUVUQUwoKSkpOworICAgICAgICAgICAgICAgICAg
ICAgICBFUzJfTUVUQUwoKS5kaXNhYmxlKEZlYXR1cmU6Okhhc1NoYWRlclN0ZW5jaWxPdXRwdXQp
KTsKIAogR1RFU1RfQUxMT1dfVU5JTlNUQU5USUFURURfUEFSQU1FVEVSSVpFRF9URVNUKEJsaXRG
cmFtZWJ1ZmZlclRlc3QpOwotQU5HTEVfSU5TVEFOVElBVEVfVEVTVF9FUzNfQU5EKEJsaXRGcmFt
ZWJ1ZmZlclRlc3QsIFdpdGhOb1NoYWRlclN0ZW5jaWxPdXRwdXQoRVMzX01FVEFMKCkpKTsKK0FO
R0xFX0lOU1RBTlRJQVRFX1RFU1RfRVMzX0FORChCbGl0RnJhbWVidWZmZXJUZXN0LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEVTM19WVUxLQU4oKS5lbmFibGUoRmVhdHVyZTo6RW11
bGF0ZWRQcmVyb3RhdGlvbjkwKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFUzNf
VlVMS0FOKCkuZW5hYmxlKEZlYXR1cmU6OkVtdWxhdGVkUHJlcm90YXRpb24xODApLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEVTM19WVUxLQU4oKS5lbmFibGUoRmVhdHVyZTo6RW11
bGF0ZWRQcmVyb3RhdGlvbjI3MCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRVMz
X01FVEFMKCkuZGlzYWJsZShGZWF0dXJlOjpIYXNTaGFkZXJTdGVuY2lsT3V0cHV0KSk7CiAKIEdU
RVNUX0FMTE9XX1VOSU5TVEFOVElBVEVEX1BBUkFNRVRFUklaRURfVEVTVChCbGl0RnJhbWVidWZm
ZXJUZXN0RVMzMSk7CiBBTkdMRV9JTlNUQU5USUFURV9URVNUX0VTMzEoQmxpdEZyYW1lYnVmZmVy
VGVzdEVTMzEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3Rz
L2dsX3Rlc3RzL0J1ZmZlckRhdGFUZXN0LmNwcCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3Ny
Yy90ZXN0cy9nbF90ZXN0cy9CdWZmZXJEYXRhVGVzdC5jcHAKaW5kZXggNDNmMmM1MmM3YTI0MDcw
YTI1MWNjMDkzMWU1ODdhYTU3OGY0YTNmNi4uNjQ5YmRlNTdjZDFlZGNmMmVjY2YyMzAxZTUxODhj
ZTMxY2RmMWExMCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3Rz
L2dsX3Rlc3RzL0J1ZmZlckRhdGFUZXN0LmNwcAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdM
RS9zcmMvdGVzdHMvZ2xfdGVzdHMvQnVmZmVyRGF0YVRlc3QuY3BwCkBAIC00MTYsOCArNDE2LDYg
QEAgdm9pZCBtYWluKCkKIC8vIGh0dHBzOi8vY29kZS5nb29nbGUuY29tL3AvYW5nbGVwcm9qZWN0
L2lzc3Vlcy9kZXRhaWw/aWQ9NzA5CiBURVNUX1AoSW5kZXhlZEJ1ZmZlckNvcHlUZXN0LCBJbmRl
eFJhbmdlQnVnKQogewotICAgIC8vIGh0dHA6Ly9hbmdsZWJ1Zy5jb20vNDA5MgotICAgIEFOR0xF
X1NLSVBfVEVTVF9JRihpc1N3aWZ0c2hhZGVyKCkpOwogICAgIC8vIFRPRE8oZ2VvZmZsYW5nKTog
RmlndXJlIG91dCB3aHkgdGhpcyBmYWlscyBvbiBBTUQgT3BlbkdMIChodHRwOi8vYW5nbGVidWcu
Y29tLzEyOTEpCiAgICAgQU5HTEVfU0tJUF9URVNUX0lGKElzQU1EKCkgJiYgSXNPcGVuR0woKSk7
CiAKQEAgLTk2OCw2ICs5NjYsMTkgQEAgVEVTVF9QKEJ1ZmZlckRhdGFUZXN0LCBNYXBXcml0ZUFy
cmF5QnVmZmVyRGF0YURyYXdBcnJheXMpCiAgICAgRVhQRUNUX0dMX05PX0VSUk9SKCk7CiB9CiAK
Ky8vIFZlcmlmeSB0aGF0IGJ1ZmZlciBzdWIgZGF0YSB1cGxvYWRzIGFyZSBwcm9wZXJseSB2YWxp
ZGF0ZWQgd2l0aGluIHRoZSBidWZmZXIgc2l6ZSByYW5nZSBvbiAzMi1iaXQKKy8vIHN5c3RlbXMu
CitURVNUX1AoQnVmZmVyRGF0YVRlc3QsIEJ1ZmZlclNpemVWYWxpZGF0aW9uMzJCaXQpCit7Cisg
ICAgR0xCdWZmZXIgYnVmZmVyOworICAgIGdsQmluZEJ1ZmZlcihHTF9BUlJBWV9CVUZGRVIsIGJ1
ZmZlcik7CisgICAgZ2xCdWZmZXJEYXRhKEdMX0FSUkFZX0JVRkZFUiwgMTAwLCBudWxscHRyLCBH
TF9TVEFUSUNfRFJBVyk7CisKKyAgICBHTHVieXRlIGRhdGEgPSAwOworICAgIGdsQnVmZmVyU3Vi
RGF0YShHTF9BUlJBWV9CVUZGRVIsIHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDMyX3Q+OjptYXgo
KSwgMSwgJmRhdGEpOworICAgIEVYUEVDVF9HTF9FUlJPUihHTF9JTlZBTElEX1ZBTFVFKTsKK30K
KwogLy8gVGVzdHMgYSBudWxsIGNyYXNoIGJ1ZyBjYXVzZWQgYnkgY29weWluZyBmcm9tIG51bGwg
YmFjay1lbmQgYnVmZmVyIHBvaW50ZXIKIC8vIHdoZW4gY2FsbGluZyBidWZmZXJEYXRhIGFnYWlu
IGFmdGVyIGRyYXdpbmcgd2l0aG91dCBjYWxsaW5nIGJ1ZmZlckRhdGEgaW4gRDNEMTEuCiBURVNU
X1AoQnVmZmVyRGF0YVRlc3RFUzMsIERyYXdXaXRoTm90Q2FsbGluZ0J1ZmZlckRhdGEpCkBAIC0x
MTMyLDYgKzExNDMsNjAgQEAgdm9pZCBtYWluKCkKICAgICBFWFBFQ1RfUElYRUxfQ09MT1JfRVEo
MCwgMCwgR0xDb2xvcjo6Y3lhbik7CiB9CiAKKy8vIFZlcmlmeSB0aGF0IHByZXZpb3VzIGRyYXdz
IGFyZSBub3QgYWZmZWN0ZWQgd2hlbiBhIGJ1ZmZlciBpcyByZXNwZWNpZmllZCB3aXRoIG51bGwg
ZGF0YQorLy8gYW5kIHVwZGF0ZWQgYnkgY2FsbGluZyBtYXAuCitURVNUX1AoQnVmZmVyRGF0YVRl
c3RFUzMsIEJ1ZmZlckRhdGFXaXRoTnVsbEZvbGxvd2VkQnlNYXApCit7CisgICAgLy8gRHJhdyB3
aXRob3V0IHVzaW5nIGRyYXdRdWFkLgorICAgIGdsVXNlUHJvZ3JhbShtUHJvZ3JhbSk7CisKKyAg
ICAvLyBTZXQgdXAgcG9zaXRpb24gYXR0cmlidXRlCisgICAgY29uc3QgYXV0byAmcXVhZFZlcnRp
Y2VzID0gR2V0UXVhZFZlcnRpY2VzKCk7CisgICAgR0xpbnQgcG9zaXRpb25Mb2NhdGlvbiAgID0g
Z2xHZXRBdHRyaWJMb2NhdGlvbihtUHJvZ3JhbSwgInBvc2l0aW9uIik7CisgICAgQVNTRVJUX05F
KC0xLCBwb3NpdGlvbkxvY2F0aW9uKTsKKyAgICBHTEJ1ZmZlciBwb3NpdGlvbkJ1ZmZlcjsKKyAg
ICBnbEJpbmRCdWZmZXIoR0xfQVJSQVlfQlVGRkVSLCBwb3NpdGlvbkJ1ZmZlcik7CisgICAgZ2xC
dWZmZXJEYXRhKEdMX0FSUkFZX0JVRkZFUiwgc2l6ZW9mKEdMZmxvYXQpICogcXVhZFZlcnRpY2Vz
LnNpemUoKSAqIDMsIHF1YWRWZXJ0aWNlcy5kYXRhKCksCisgICAgICAgICAgICAgICAgIEdMX0RZ
TkFNSUNfRFJBVyk7CisgICAgZ2xWZXJ0ZXhBdHRyaWJQb2ludGVyKHBvc2l0aW9uTG9jYXRpb24s
IDMsIEdMX0ZMT0FULCBHTF9GQUxTRSwgMCwgbnVsbHB0cik7CisgICAgZ2xFbmFibGVWZXJ0ZXhB
dHRyaWJBcnJheShwb3NpdGlvbkxvY2F0aW9uKTsKKyAgICBFWFBFQ1RfR0xfTk9fRVJST1IoKTsK
KworICAgIC8vIFNldCB1cCAiaW5fYXR0cmliIiBhdHRyaWJ1dGUKKyAgICBjb25zdCBzdGQ6OnZl
Y3RvcjxHTGZsb2F0PiBrRGF0YSg2LCAxLjBmKTsKKyAgICBnbEJpbmRCdWZmZXIoR0xfQVJSQVlf
QlVGRkVSLCBtQnVmZmVyKTsKKyAgICBnbEJ1ZmZlckRhdGEoR0xfQVJSQVlfQlVGRkVSLCBzaXpl
b2YoR0xmbG9hdCkgKiBrRGF0YS5zaXplKCksIGtEYXRhLmRhdGEoKSwgR0xfU1RBVElDX0RSQVcp
OworICAgIGdsVmVydGV4QXR0cmliUG9pbnRlcihtQXR0cmliTG9jYXRpb24sIDEsIEdMX0ZMT0FU
LCBHTF9GQUxTRSwgMCwgbnVsbHB0cik7CisgICAgZ2xFbmFibGVWZXJ0ZXhBdHRyaWJBcnJheSht
QXR0cmliTG9jYXRpb24pOworICAgIEVYUEVDVF9HTF9OT19FUlJPUigpOworCisgICAgLy8gVGhp
cyBkcmF3IChkcmF3XzApIHJlbmRlcnMgcmVkIHRvIHRoZSBlbnRpcmUgd2luZG93LgorICAgIGds
RHJhd0FycmF5cyhHTF9UUklBTkdMRVMsIDAsIDYpOworICAgIEVYUEVDVF9HTF9OT19FUlJPUigp
OworCisgICAgLy8gUmVzcGVjaWZ5IGJ1ZmZlciBib3VuZCB0byAiaW5fYXR0cmliIiBhdHRyaWJ1
dGUgdGhlbiBtYXAgaXQgYW5kIGZpbGwgaXQgd2l0aCB6ZXJvZXMuCisgICAgY29uc3Qgc3RkOjp2
ZWN0b3I8R0xmbG9hdD4ga1plcm9zKDYsIDAuMGYpOworICAgIGdsQnVmZmVyRGF0YShHTF9BUlJB
WV9CVUZGRVIsIHNpemVvZihHTGZsb2F0KSAqIGtaZXJvcy5zaXplKCksIG51bGxwdHIsIEdMX1NU
QVRJQ19EUkFXKTsKKyAgICB1aW50OF90ICptYXBQdHIgPSByZWludGVycHJldF9jYXN0PHVpbnQ4
X3QgKj4oCisgICAgICAgIGdsTWFwQnVmZmVyUmFuZ2UoR0xfQVJSQVlfQlVGRkVSLCAwLCBzaXpl
b2YoR0xmbG9hdCkgKiBrWmVyb3Muc2l6ZSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgIEdM
X01BUF9XUklURV9CSVQgfCBHTF9NQVBfVU5TWU5DSFJPTklaRURfQklUKSk7CisgICAgQVNTRVJU
X05FKG51bGxwdHIsIG1hcFB0cik7CisgICAgQVNTRVJUX0dMX05PX0VSUk9SKCk7CisgICAgbWVt
Y3B5KG1hcFB0ciwga1plcm9zLmRhdGEoKSwgc2l6ZW9mKEdMZmxvYXQpICoga1plcm9zLnNpemUo
KSk7CisgICAgZ2xVbm1hcEJ1ZmZlcihHTF9BUlJBWV9CVUZGRVIpOworICAgIEFTU0VSVF9HTF9O
T19FUlJPUigpOworCisgICAgLy8gVGhpcyBkcmF3IChkcmF3XzEpIHJlbmRlcnMgYmxhY2sgdG8g
dGhlIHVwcGVyIHJpZ2h0IHRyaWFuZ2xlLgorICAgIGdsRHJhd0FycmF5cyhHTF9UUklBTkdMRVMs
IDMsIDMpOworICAgIEVYUEVDVF9HTF9OT19FUlJPUigpOworCisgICAgLy8gUmVzcGVjaWZpY2F0
aW9uIGFuZCBkYXRhIHVwZGF0ZSBvZiBtQnVmZmVyIHNob3VsZCBub3QgaGF2ZSBhZmZlY3RlZCBk
cmF3XzAuCisgICAgLy8gRXhwZWN0IGJvdHRvbSBsZWZ0IHRvIGJlIHJlZCBhbmQgdG9wIHJpZ2h0
IHRvIGJlIGJsYWNrLgorICAgIEVYUEVDVF9QSVhFTF9DT0xPUl9FUSgxLCAxLCBHTENvbG9yOjpy
ZWQpOworICAgIEVYUEVDVF9QSVhFTF9DT0xPUl9FUShnZXRXaW5kb3dXaWR0aCgpIC0gMSwgZ2V0
V2luZG93SGVpZ2h0KCkgLSAxLCBHTENvbG9yOjpibGFjayk7CisgICAgRVhQRUNUX0dMX05PX0VS
Uk9SKCk7Cit9CisKIGNsYXNzIEJ1ZmZlclN0b3JhZ2VUZXN0RVMzIDogcHVibGljIEJ1ZmZlckRh
dGFUZXN0CiB7fTsKIApAQCAtMTg0Miw3ICsxOTA3LDcgQEAgQU5HTEVfSU5TVEFOVElBVEVfVEVT
VF9FUzIoQnVmZmVyRGF0YVRlc3QpOwogCiBHVEVTVF9BTExPV19VTklOU1RBTlRJQVRFRF9QQVJB
TUVURVJJWkVEX1RFU1QoQnVmZmVyU3ViRGF0YVRlc3QpOwogQU5HTEVfSU5TVEFOVElBVEVfVEVT
VF9FUzNfQU5EKEJ1ZmZlclN1YkRhdGFUZXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFdpdGhWdWxrYW5QcmVmZXJDUFVGb3JCdWZmZXJTdWJEYXRhKEVTM19WVUxLQU4oKSkpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVTM19WVUxLQU4oKS5lbmFibGUoRmVhdHVy
ZTo6UHJlZmVyQ1BVRm9yQnVmZmVyU3ViRGF0YSkpOwogCiBHVEVTVF9BTExPV19VTklOU1RBTlRJ
QVRFRF9QQVJBTUVURVJJWkVEX1RFU1QoQnVmZmVyRGF0YVRlc3RFUzMpOwogQU5HTEVfSU5TVEFO
VElBVEVfVEVTVF9FUzMoQnVmZmVyRGF0YVRlc3RFUzMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvQU5HTEUvc3JjL3Rlc3RzL2dsX3Rlc3RzL0NsZWFyVGVzdC5jcHAgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvZ2xfdGVzdHMvQ2xlYXJUZXN0LmNwcAppbmRleCAw
ZTQyOWU1NDMwOTBkNDg0Mzg1YmJjYTc0MmIyZWI4NmJiZDk0NTg3Li5hMDgwNTAwNWNiYjZkMjI5
Njk2YjkzNGRjMTAxNGMxYjFhNDQ3MmJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9B
TkdMRS9zcmMvdGVzdHMvZ2xfdGVzdHMvQ2xlYXJUZXN0LmNwcAorKysgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9BTkdMRS9zcmMvdGVzdHMvZ2xfdGVzdHMvQ2xlYXJUZXN0LmNwcApAQCAtNiw3ICs2LDcg
QEAKIAogI2luY2x1ZGUgInRlc3RfdXRpbHMvQU5HTEVUZXN0LmgiCiAKLSNpbmNsdWRlICJwbGF0
Zm9ybS9GZWF0dXJlc1ZrLmgiCisjaW5jbHVkZSAicGxhdGZvcm0vRmVhdHVyZXNWa19hdXRvZ2Vu
LmgiCiAjaW5jbHVkZSAidGVzdF91dGlscy9nbF9yYWlpLmgiCiAjaW5jbHVkZSAidXRpbC9yYW5k
b21fdXRpbHMuaCIKICNpbmNsdWRlICJ1dGlsL3NoYWRlcl91dGlscy5oIgpAQCAtMjM1LDYgKzIz
NSw4IEBAIGNsYXNzIE1hc2tlZFNjaXNzb3JlZENsZWFyVGVzdEJhc2UKIGNsYXNzIE1hc2tlZFNj
aXNzb3JlZENsZWFyVGVzdCA6IHB1YmxpYyBNYXNrZWRTY2lzc29yZWRDbGVhclRlc3RCYXNlCiB7
fTsKIAorLy8gT3ZlcnJpZGVzIGEgZmVhdHVyZSB0byBmb3JjZSBlbXVsYXRpb24gb2Ygc3RlbmNp
bC1vbmx5IGFuZCBkZXB0aC1vbmx5IGZvcm1hdHMgd2l0aCBhIHBhY2tlZAorLy8gZGVwdGgvc3Rl
bmNpbCBmb3JtYXQKIGNsYXNzIFZ1bGthbkNsZWFyVGVzdCA6IHB1YmxpYyBNYXNrZWRTY2lzc29y
ZWRDbGVhclRlc3RCYXNlCiB7CiAgIHByb3RlY3RlZDoKQEAgLTI4NywxMyArMjg5LDYgQEAgY2xh
c3MgVnVsa2FuQ2xlYXJUZXN0IDogcHVibGljIE1hc2tlZFNjaXNzb3JlZENsZWFyVGVzdEJhc2UK
ICAgICAgICAgbUhhc1N0ZW5jaWwgPSBmYWxzZTsKICAgICB9CiAKLSAgICAvLyBPdmVycmlkZSBh
IGZlYXR1cmUgdG8gZm9yY2UgZW11bGF0aW9uIG9mIHN0ZW5jaWwtb25seSBhbmQgZGVwdGgtb25s
eSBmb3JtYXRzIHdpdGggYSBwYWNrZWQKLSAgICAvLyBkZXB0aC9zdGVuY2lsIGZvcm1hdAotICAg
IHZvaWQgb3ZlcnJpZGVGZWF0dXJlc1ZrKEZlYXR1cmVzVmsgKmZlYXR1cmVzVmspIG92ZXJyaWRl
Ci0gICAgewotICAgICAgICBmZWF0dXJlc1ZrLT5vdmVycmlkZUZlYXR1cmVzKHsiZm9yY2VfZmFs
bGJhY2tfZm9ybWF0In0sIHRydWUpOwotICAgIH0KLQogICBwcml2YXRlOgogICAgIEdMRnJhbWVi
dWZmZXIgbUNvbG9yU3RlbmNpbEZCTzsKICAgICBHTEZyYW1lYnVmZmVyIG1Db2xvckRlcHRoRkJP
OwpAQCAtNzQ4LDggKzc0Myw2IEBAIFRFU1RfUChDbGVhclRlc3RFUzMsIENsZWFyUGx1c01hc2tE
cmF3QW5kQ2xlYXIpCiAvLyBjbGVhcnMgdG8gdGhlIGNvcnJlY3QgdmFsdWVzLgogVEVTVF9QKENs
ZWFyVGVzdEVTMywgQ2xlYXJNdWx0aXBsZUF0dGFjaG1lbnRzRm9sbG93ZWRCeVNwZWNpZmljT25l
KQogewotICAgIC8vIGh0dHA6Ly9hbmdsZWJ1Zy5jb20vNDA5MgotICAgIEFOR0xFX1NLSVBfVEVT
VF9JRihpc1N3aWZ0c2hhZGVyKCkpOwogICAgIGNvbnN0ZXhwciB1aW50MzJfdCBrU2l6ZSAgICAg
ICAgICAgID0gMTY7CiAgICAgY29uc3RleHByIHVpbnQzMl90IGtBdHRhY2htZW50Q291bnQgPSA0
OwogICAgIHN0ZDo6dmVjdG9yPHVuc2lnbmVkIGNoYXI+IHBpeGVsRGF0YShrU2l6ZSAqIGtTaXpl
ICogNCwgMjU1KTsKQEAgLTI4ODIsMTcgKzI4NzUsOCBAQCBBTkdMRV9JTlNUQU5USUFURV9URVNU
X0NPTUJJTkVfNChNYXNrZWRTY2lzc29yZWRDbGVhclRlc3QsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB0ZXN0aW5nOjpSYW5nZSgwLCAzKSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHRlc3Rpbmc6OlJhbmdlKDAsIDMpLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdGVzdGluZzo6Qm9vbCgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgRVMyX0QzRDkoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVTMl9E
M0QxMSgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRVMzX0QzRDExKCksCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFUzJfT1BFTkdMKCksCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBFUzNfT1BFTkdMKCksCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBFUzJfT1BFTkdMRVMoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEVTM19PUEVOR0xFUygpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
RVMyX1ZVTEtBTigpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRVMzX1ZVTEtB
TigpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRVMyX01FVEFMKCksCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFUzNfTUVUQUwoKSk7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBBTkdMRV9BTExfVEVTVF9QTEFURk9STVNfRVMyLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgQU5HTEVfQUxMX1RFU1RfUExBVEZPUk1TX0VTMyk7
CiAKIEdURVNUX0FMTE9XX1VOSU5TVEFOVElBVEVEX1BBUkFNRVRFUklaRURfVEVTVChWdWxrYW5D
bGVhclRlc3QpOwogQU5HTEVfSU5TVEFOVElBVEVfVEVTVF9DT01CSU5FXzQoVnVsa2FuQ2xlYXJU
ZXN0LApAQCAtMjkwMSw4ICsyODg1LDEwIEBAIEFOR0xFX0lOU1RBTlRJQVRFX1RFU1RfQ09NQklO
RV80KFZ1bGthbkNsZWFyVGVzdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRl
c3Rpbmc6OlJhbmdlKDAsIDMpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVz
dGluZzo6UmFuZ2UoMCwgMyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0
aW5nOjpCb29sKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFUzJfVlVMS0FO
KCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFUzNfVlVMS0FOKCkpOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRVMyX1ZVTEtBTigpLmVuYWJsZShGZWF0dXJl
OjpGb3JjZUZhbGxiYWNrRm9ybWF0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEVTMl9WVUxLQU5fU1dJRlRTSEFERVIoKS5lbmFibGUoRmVhdHVyZTo6Rm9yY2VGYWxsYmFja0Zv
cm1hdCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFUzNfVlVMS0FOKCkuZW5h
YmxlKEZlYXR1cmU6OkZvcmNlRmFsbGJhY2tGb3JtYXQpLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgRVMzX1ZVTEtBTl9TV0lGVFNIQURFUigpLmVuYWJsZShGZWF0dXJlOjpGb3Jj
ZUZhbGxiYWNrRm9ybWF0KSk7CiAKIC8vIE5vdCBhbGwgQU5HTEUgYmFja2VuZHMgc3VwcG9ydCBS
R0IgYmFja2J1ZmZlcnMKIEdURVNUX0FMTE9XX1VOSU5TVEFOVElBVEVEX1BBUkFNRVRFUklaRURf
VEVTVChDbGVhclRlc3RSR0IpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUv
c3JjL3Rlc3RzL2dsX3Rlc3RzL0NvbXB1dGVTaGFkZXJUZXN0LmNwcCBiL1NvdXJjZS9UaGlyZFBh
cnR5L0FOR0xFL3NyYy90ZXN0cy9nbF90ZXN0cy9Db21wdXRlU2hhZGVyVGVzdC5jcHAKaW5kZXgg
YjY5MzkzZTI2NDMwN2RkODU1MDVlMGQyN2I4N2M3YzhmNmJlN2IyMy4uZDE0OTk3MWRlMTBhMmNl
MzA1MGMzYjE2YWY3Mzk3YWMwNmUyZTIyMiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkv
QU5HTEUvc3JjL3Rlc3RzL2dsX3Rlc3RzL0NvbXB1dGVTaGFkZXJUZXN0LmNwcAorKysgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvZ2xfdGVzdHMvQ29tcHV0ZVNoYWRlclRlc3Qu
Y3BwCkBAIC01MjMsNyArNTIzLDcgQEAgdm9pZCBtYWluKCkKICAgICBnbERpc3BhdGNoQ29tcHV0
ZSgxLCAxLCAxKTsKICAgICBnbE1lbW9yeUJhcnJpZXIoR0xfQlVGRkVSX1VQREFURV9CQVJSSUVS
X0JJVCk7CiAgICAgbWFwcGVkQnVmZmVyID0KLSAgICAgICAgZ2xNYXBCdWZmZXJSYW5nZShHTF9B
VE9NSUNfQ09VTlRFUl9CVUZGRVIsIDAsIHNpemVvZihHTHVpbnQpICogMywgR0xfTUFQX1JFQURf
QklUKTsKKyAgICAgICAgZ2xNYXBCdWZmZXJSYW5nZShHTF9BVE9NSUNfQ09VTlRFUl9CVUZGRVIs
IDAsIHNpemVvZihHTHVpbnQpICogMywgR0xfTUFQX1dSSVRFX0JJVCk7CiAKICAgICBtZW1jcHko
bWFwcGVkQnVmZmVyLCBleHBlY3RlZEJ1ZmZlckRhdGEsIHNpemVvZihleHBlY3RlZEJ1ZmZlckRh
dGEpKTsKICAgICBnbFVubWFwQnVmZmVyKEdMX0FUT01JQ19DT1VOVEVSX0JVRkZFUik7CkBAIC0x
MTA0LDggKzExMDQsNiBAQCB2b2lkIG1haW4oKQogLy8gVGVzdCB0aGF0IHRleGVsRmV0Y2ggd29y
a3Mgd2VsbCBpbiBjb21wdXRlIHNoYWRlci4KIFRFU1RfUChDb21wdXRlU2hhZGVyVGVzdCwgVGV4
ZWxGZXRjaEZ1bmN0aW9uKQogewotICAgIC8vIGh0dHA6Ly9hbmdsZWJ1Zy5jb20vNDA5MgotICAg
IEFOR0xFX1NLSVBfVEVTVF9JRihpc1N3aWZ0c2hhZGVyKCkpOwogICAgIGNvbnN0ZXhwciBjaGFy
IGtDU1tdID0gUiIoI3ZlcnNpb24gMzEwIGVzCiBsYXlvdXQobG9jYWxfc2l6ZV94PTE2LCBsb2Nh
bF9zaXplX3k9MTIpIGluOwogcHJlY2lzaW9uIGhpZ2hwIHVzYW1wbGVyMkQ7CkBAIC0xMTc0LDgg
KzExNzIsNiBAQCB2b2lkIG1haW4oKQogLy8gVGVzdCB0aGF0IHRleHR1cmUgZnVuY3Rpb24gd29y
a3Mgd2VsbCBpbiBjb21wdXRlIHNoYWRlci4KIFRFU1RfUChDb21wdXRlU2hhZGVyVGVzdCwgVGV4
dHVyZUZ1bmN0aW9uKQogewotICAgIC8vIGh0dHA6Ly9hbmdsZWJ1Zy5jb20vNDA5MgotICAgIEFO
R0xFX1NLSVBfVEVTVF9JRihpc1N3aWZ0c2hhZGVyKCkpOwogICAgIGNvbnN0ZXhwciBjaGFyIGtD
U1tdID0gUiIoI3ZlcnNpb24gMzEwIGVzCiBsYXlvdXQobG9jYWxfc2l6ZV94PTE2LCBsb2NhbF9z
aXplX3k9MTYpIGluOwogcHJlY2lzaW9uIGhpZ2hwIHVzYW1wbGVyMkQ7CmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvZ2xfdGVzdHMvQ29weVRleEltYWdlVGVz
dC5jcHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvZ2xfdGVzdHMvQ29weVRl
eEltYWdlVGVzdC5jcHAKaW5kZXggNzg1OTk3ZjBhNTVjZjYzMDM0NGUyOTU4MDdkZTY5Y2QxYmVl
ZTk4Zi4uNjJkM2I1Mzg1OTNhNTEzMzYzZWJkMDljN2U5ZmZjMDZlYTQzYWQxZiAxMDA2NDQKLS0t
IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3RzL2dsX3Rlc3RzL0NvcHlUZXhJbWFn
ZVRlc3QuY3BwCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9nbF90ZXN0
cy9Db3B5VGV4SW1hZ2VUZXN0LmNwcApAQCAtMTIzMSwxMiArMTIzMSwxMiBAQCBBTkdMRV9JTlNU
QU5USUFURV9URVNUKENvcHlUZXhJbWFnZVRlc3QsCiAgICAgICAgICAgICAgICAgICAgICAgIEFO
R0xFX0FMTF9URVNUX1BMQVRGT1JNU19FUzIsCiAgICAgICAgICAgICAgICAgICAgICAgIEVTMl9E
M0QxMV9QUkVTRU5UX1BBVEhfRkFTVCgpLAogICAgICAgICAgICAgICAgICAgICAgICBFUzNfVlVM
S0FOKCksCi0gICAgICAgICAgICAgICAgICAgICAgIFdpdGhFbXVsYXRlQ29weVRleEltYWdlMkRG
cm9tUmVuZGVyYnVmZmVycyhFUzJfT1BFTkdMKCkpLAotICAgICAgICAgICAgICAgICAgICAgICBX
aXRoRW11bGF0ZUNvcHlUZXhJbWFnZTJERnJvbVJlbmRlcmJ1ZmZlcnMoRVMyX09QRU5HTEVTKCkp
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgRVMyX09QRU5HTCgpLmVuYWJsZShGZWF0dXJlOjpF
bXVsYXRlQ29weVRleEltYWdlMkRGcm9tUmVuZGVyYnVmZmVycyksCisgICAgICAgICAgICAgICAg
ICAgICAgIEVTMl9PUEVOR0xFUygpLmVuYWJsZShGZWF0dXJlOjpFbXVsYXRlQ29weVRleEltYWdl
MkRGcm9tUmVuZGVyYnVmZmVycykpOwogCiBHVEVTVF9BTExPV19VTklOU1RBTlRJQVRFRF9QQVJB
TUVURVJJWkVEX1RFU1QoQ29weVRleEltYWdlVGVzdEVTMyk7CiBBTkdMRV9JTlNUQU5USUFURV9U
RVNUKENvcHlUZXhJbWFnZVRlc3RFUzMsCiAgICAgICAgICAgICAgICAgICAgICAgIEFOR0xFX0FM
TF9URVNUX1BMQVRGT1JNU19FUzMsCi0gICAgICAgICAgICAgICAgICAgICAgIFdpdGhFbXVsYXRl
Q29weVRleEltYWdlMkRGcm9tUmVuZGVyYnVmZmVycyhFUzNfT1BFTkdMKCkpLAotICAgICAgICAg
ICAgICAgICAgICAgICBXaXRoRW11bGF0ZUNvcHlUZXhJbWFnZTJERnJvbVJlbmRlcmJ1ZmZlcnMo
RVMzX09QRU5HTEVTKCkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgRVMzX09QRU5HTCgpLmVu
YWJsZShGZWF0dXJlOjpFbXVsYXRlQ29weVRleEltYWdlMkRGcm9tUmVuZGVyYnVmZmVycyksCisg
ICAgICAgICAgICAgICAgICAgICAgIEVTM19PUEVOR0xFUygpLmVuYWJsZShGZWF0dXJlOjpFbXVs
YXRlQ29weVRleEltYWdlMkRGcm9tUmVuZGVyYnVmZmVycykpOwogfSAgLy8gbmFtZXNwYWNlIGFu
Z2xlCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvZ2xfdGVz
dHMvRGVwdGhTdGVuY2lsRm9ybWF0c1Rlc3QuY3BwIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUv
c3JjL3Rlc3RzL2dsX3Rlc3RzL0RlcHRoU3RlbmNpbEZvcm1hdHNUZXN0LmNwcAppbmRleCBkYTA3
N2ZmMzk3YTMwYzNhNzk2Nzk0ODc4NTZlNGM4Y2IzY2MxODJiLi5kOTMyNmU1NTUwYzRiYTIzZWY3
MjE4MDIwNmFiYzNiNGZmZGEyZmRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdM
RS9zcmMvdGVzdHMvZ2xfdGVzdHMvRGVwdGhTdGVuY2lsRm9ybWF0c1Rlc3QuY3BwCisrKyBiL1Nv
dXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9nbF90ZXN0cy9EZXB0aFN0ZW5jaWxGb3Jt
YXRzVGVzdC5jcHAKQEAgLTgsNyArOCw3IEBACiAjaW5jbHVkZSAidGVzdF91dGlscy9nbF9yYWlp
LmgiCiAKICNpbmNsdWRlICJjb21tb24vbWF0aHV0aWwuaCIKLSNpbmNsdWRlICJwbGF0Zm9ybS9G
ZWF0dXJlc0QzRC5oIgorI2luY2x1ZGUgInBsYXRmb3JtL0ZlYXR1cmVzRDNEX2F1dG9nZW4uaCIK
IAogdXNpbmcgbmFtZXNwYWNlIGFuZ2xlOwogCkBAIC0xMTM3LDEyICsxMTM3LDYgQEAgY2xhc3Mg
VGlueURlcHRoU3RlbmNpbFdvcmthcm91bmRUZXN0IDogcHVibGljIEFOR0xFVGVzdAogICAgICAg
ICBzZXRDb25maWdCbHVlQml0cyg4KTsKICAgICAgICAgc2V0Q29uZmlnQWxwaGFCaXRzKDgpOwog
ICAgIH0KLQotICAgIC8vIE92ZXJyaWRlIHRoZSBmZWF0dXJlcyB0byBlbmFibGUgInRpbnkiIGRl
cHRoL3N0ZW5jaWwgdGV4dHVyZXMuCi0gICAgdm9pZCBvdmVycmlkZVdvcmthcm91bmRzRDNEKEZl
YXR1cmVzRDNEICpmZWF0dXJlcykgb3ZlcnJpZGUKLSAgICB7Ci0gICAgICAgIGZlYXR1cmVzLT5v
dmVycmlkZUZlYXR1cmVzKHsiZW11bGF0ZV90aW55X3N0ZW5jaWxfdGV4dHVyZXMifSwgdHJ1ZSk7
Ci0gICAgfQogfTsKIAogLy8gVGVzdHMgdGhhdCB0aGUgdGlueSBkZXB0aCBzdGVuY2lsIHRleHR1
cmVzIHdvcmthcm91bmQgZG9lcyBub3QgInN0aWNrIiBkZXB0aCB0ZXh0dXJlcy4KQEAgLTExNTEs
NyArMTE0NSw2IEBAIFRFU1RfUChUaW55RGVwdGhTdGVuY2lsV29ya2Fyb3VuZFRlc3QsIERlcHRo
VGV4dHVyZXNTdGljaykKIHsKICAgICAvLyBodHRwOi8vYW5nbGVidWcuY29tLzQwOTIKICAgICBB
TkdMRV9TS0lQX1RFU1RfSUYoKElzQW5kcm9pZCgpICYmIElzT3BlbkdMRVMoKSkgfHwgKElzTGlu
dXgoKSAmJiBJc1Z1bGthbigpKSk7Ci0gICAgQU5HTEVfU0tJUF9URVNUX0lGKGlzU3dpZnRzaGFk
ZXIoKSk7CiAKICAgICAvLyBUT0RPKGFuZ2xlYnVnLmNvbS81NDkxKQogICAgIEFOR0xFX1NLSVBf
VEVTVF9JRihJc0lPUygpICYmIElzT3BlbkdMRVMoKSk7CkBAIC0xMjYxLDQgKzEyNTQsNSBAQCBU
RVNUX1AoVGlueURlcHRoU3RlbmNpbFdvcmthcm91bmRUZXN0LCBEZXB0aFRleHR1cmVzU3RpY2sp
CiB9CiAKIEdURVNUX0FMTE9XX1VOSU5TVEFOVElBVEVEX1BBUkFNRVRFUklaRURfVEVTVChUaW55
RGVwdGhTdGVuY2lsV29ya2Fyb3VuZFRlc3QpOwotQU5HTEVfSU5TVEFOVElBVEVfVEVTVF9FUzMo
VGlueURlcHRoU3RlbmNpbFdvcmthcm91bmRUZXN0KTsKK0FOR0xFX0lOU1RBTlRJQVRFX1RFU1Rf
RVMzX0FORChUaW55RGVwdGhTdGVuY2lsV29ya2Fyb3VuZFRlc3QsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgRVMzX0QzRDExKCkuZW5hYmxlKEZlYXR1cmU6OkVtdWxhdGVUaW55U3Rl
bmNpbFRleHR1cmVzKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMv
dGVzdHMvZ2xfdGVzdHMvRGVwdGhTdGVuY2lsVGVzdC5jcHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9B
TkdMRS9zcmMvdGVzdHMvZ2xfdGVzdHMvRGVwdGhTdGVuY2lsVGVzdC5jcHAKaW5kZXggOGRhMzM5
NTMyYTAzZWU5M2JmZjVhNDRjNmJmZGJmZGM5ODBmNDJlNS4uZTA5MGNmMjg4ZTg4MDJkN2NlMzM1
ODQ4ZmQ3ZTRjOGYxYzNlZDczMyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUv
c3JjL3Rlc3RzL2dsX3Rlc3RzL0RlcHRoU3RlbmNpbFRlc3QuY3BwCisrKyBiL1NvdXJjZS9UaGly
ZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9nbF90ZXN0cy9EZXB0aFN0ZW5jaWxUZXN0LmNwcApAQCAt
MTAsNyArMTAsNyBAQAogCiAjaW5jbHVkZSAidGVzdF91dGlscy9BTkdMRVRlc3QuaCIKIAotI2lu
Y2x1ZGUgInBsYXRmb3JtL0ZlYXR1cmVzVmsuaCIKKyNpbmNsdWRlICJwbGF0Zm9ybS9GZWF0dXJl
c1ZrX2F1dG9nZW4uaCIKICNpbmNsdWRlICJ0ZXN0X3V0aWxzL2dsX3JhaWkuaCIKIAogdXNpbmcg
bmFtZXNwYWNlIGFuZ2xlOwpAQCAtODIsMTMgKzgyLDYgQEAgY2xhc3MgRGVwdGhTdGVuY2lsVGVz
dCA6IHB1YmxpYyBBTkdMRVRlc3QKICAgICAgICAgbUhhc1N0ZW5jaWwgPSBmYWxzZTsKICAgICB9
CiAKLSAgICAvLyBPdmVycmlkZSBhIGZlYXR1cmUgdG8gZm9yY2UgZW11bGF0aW9uIG9mIHN0ZW5j
aWwtb25seSBhbmQgZGVwdGgtb25seSBmb3JtYXRzIHdpdGggYSBwYWNrZWQKLSAgICAvLyBkZXB0
aC9zdGVuY2lsIGZvcm1hdAotICAgIHZvaWQgb3ZlcnJpZGVGZWF0dXJlc1ZrKEZlYXR1cmVzVmsg
KmZlYXR1cmVzVmspIG92ZXJyaWRlCi0gICAgewotICAgICAgICBmZWF0dXJlc1ZrLT5vdmVycmlk
ZUZlYXR1cmVzKHsiZm9yY2VfZmFsbGJhY2tfZm9ybWF0In0sIHRydWUpOwotICAgIH0KLQogICAg
IHZvaWQgcHJlcGFyZVNpbmdsZUVtdWxhdGVkV2l0aFBhY2tlZCgpOwogICAgIHZvaWQgZW5zdXJl
Q29sb3IoR0xDb2xvciBjb2xvcik7CiAgICAgdm9pZCBlbnN1cmVEZXB0aFVuYWZmZWN0ZWQoKTsK
QEAgLTY3OCw5ICs2NzEsMTYgQEAgVEVTVF9QKERlcHRoU3RlbmNpbFRlc3RFUzMsIFJlYWRPbmx5
RGVwdGhTdGVuY2lsVGhlbk91dHB1dERlcHRoU3RlbmNpbCkKICAgICBFWFBFQ1RfUElYRUxfQ09M
T1JfRVEoa1NpemUgLyAyLCBrU2l6ZSAvIDIsIEdMQ29sb3I6OnllbGxvdyk7CiB9CiAKLUFOR0xF
X0lOU1RBTlRJQVRFX1RFU1RfRVMyX0FORF9FUzMoRGVwdGhTdGVuY2lsVGVzdCk7CitBTkdMRV9J
TlNUQU5USUFURV9URVNUX0VTMl9BTkRfRVMzX0FORCgKKyAgICBEZXB0aFN0ZW5jaWxUZXN0LAor
ICAgIEVTMl9WVUxLQU4oKS5lbmFibGUoRmVhdHVyZTo6Rm9yY2VGYWxsYmFja0Zvcm1hdCksCisg
ICAgRVMyX1ZVTEtBTl9TV0lGVFNIQURFUigpLmVuYWJsZShGZWF0dXJlOjpGb3JjZUZhbGxiYWNr
Rm9ybWF0KSwKKyAgICBFUzNfVlVMS0FOKCkuZW5hYmxlKEZlYXR1cmU6OkZvcmNlRmFsbGJhY2tG
b3JtYXQpLAorICAgIEVTM19WVUxLQU5fU1dJRlRTSEFERVIoKS5lbmFibGUoRmVhdHVyZTo6Rm9y
Y2VGYWxsYmFja0Zvcm1hdCkpOwogCiBHVEVTVF9BTExPV19VTklOU1RBTlRJQVRFRF9QQVJBTUVU
RVJJWkVEX1RFU1QoRGVwdGhTdGVuY2lsVGVzdEVTMyk7Ci1BTkdMRV9JTlNUQU5USUFURV9URVNU
X0VTMyhEZXB0aFN0ZW5jaWxUZXN0RVMzKTsKK0FOR0xFX0lOU1RBTlRJQVRFX1RFU1RfRVMzX0FO
RChEZXB0aFN0ZW5jaWxUZXN0RVMzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVT
M19WVUxLQU4oKS5lbmFibGUoRmVhdHVyZTo6Rm9yY2VGYWxsYmFja0Zvcm1hdCksCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgRVMzX1ZVTEtBTl9TV0lGVFNIQURFUigpLmVuYWJsZShG
ZWF0dXJlOjpGb3JjZUZhbGxiYWNrRm9ybWF0KSk7CiAKIH0gIC8vIGFub255bW91cyBuYW1lc3Bh
Y2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9nbF90ZXN0
cy9EcmF3QnVmZmVyc1Rlc3QuY3BwIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3Rz
L2dsX3Rlc3RzL0RyYXdCdWZmZXJzVGVzdC5jcHAKaW5kZXggNjZmNWIzN2YwMzU5ZDU5OGI4ZDAy
OGUyNDcyMTRmNzQzOTE5MDAwNS4uZTJmNGU4MTIwNDIyNTI5YzczOTc4N2JhMDZiMTc0MmQ3M2Nl
YmQ1NSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3RzL2dsX3Rl
c3RzL0RyYXdCdWZmZXJzVGVzdC5jcHAKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3Jj
L3Rlc3RzL2dsX3Rlc3RzL0RyYXdCdWZmZXJzVGVzdC5jcHAKQEAgLTk5Niw2ICs5OTYsOTAgQEAg
VEVTVF9QKERyYXdCdWZmZXJzVGVzdEVTMywgMkRBcnJheVRleHR1cmVzKQogICAgIGdsRGVsZXRl
UHJvZ3JhbShwcm9ncmFtKTsKIH0KIAorLy8gVGVzdCB0aGF0IGJpbmRpbmcgbXVsdGlwbGUgZmFj
ZXMgb2YgYSBDdWJlTWFwIHRleHR1cmUgd29ya3MgY29ycmVjdGx5CitURVNUX1AoRHJhd0J1ZmZl
cnNUZXN0RVMzLCBDdWJlTWFwVGV4dHVyZXMpCit7CisgICAgQU5HTEVfU0tJUF9URVNUX0lGKCFz
ZXR1cFRlc3QoKSk7CisKKyAgICBHTFRleHR1cmUgdGV4dHVyZTsKKyAgICBnbEJpbmRUZXh0dXJl
KEdMX1RFWFRVUkVfQ1VCRV9NQVAsIHRleHR1cmUuZ2V0KCkpOworICAgIGdsVGV4U3RvcmFnZTJE
KEdMX1RFWFRVUkVfQ1VCRV9NQVAsIDEsIEdMX1JHQkE4LCBnZXRXaW5kb3dXaWR0aCgpLCBnZXRX
aW5kb3dIZWlnaHQoKSk7CisgICAgRVhQRUNUX0dMX05PX0VSUk9SKCk7CisKKyAgICBnbEZyYW1l
YnVmZmVyVGV4dHVyZUxheWVyKEdMX0ZSQU1FQlVGRkVSLCBHTF9DT0xPUl9BVFRBQ0hNRU5UMCwg
dGV4dHVyZS5nZXQoKSwgMCwgMyk7CisgICAgZ2xGcmFtZWJ1ZmZlclRleHR1cmVMYXllcihHTF9G
UkFNRUJVRkZFUiwgR0xfQ09MT1JfQVRUQUNITUVOVDEsIHRleHR1cmUuZ2V0KCksIDAsIDIpOwor
ICAgIGdsRnJhbWVidWZmZXJUZXh0dXJlTGF5ZXIoR0xfRlJBTUVCVUZGRVIsIEdMX0NPTE9SX0FU
VEFDSE1FTlQyLCB0ZXh0dXJlLmdldCgpLCAwLCAxKTsKKyAgICBnbEZyYW1lYnVmZmVyVGV4dHVy
ZUxheWVyKEdMX0ZSQU1FQlVGRkVSLCBHTF9DT0xPUl9BVFRBQ0hNRU5UMywgdGV4dHVyZS5nZXQo
KSwgMCwgMCk7CisgICAgRVhQRUNUX0dMX05PX0VSUk9SKCk7CisKKyAgICBib29sIGZsYWdzWzhd
ID0ge3RydWUsIHRydWUsIHRydWUsIHRydWUsIGZhbHNlfTsKKworICAgIEdMdWludCBwcm9ncmFt
OworICAgIHNldHVwTVJUUHJvZ3JhbShmbGFncywgJnByb2dyYW0pOworCisgICAgY29uc3QgR0xl
bnVtIGJ1ZnNbXSA9IHsKKyAgICAgICAgR0xfQ09MT1JfQVRUQUNITUVOVDAsCisgICAgICAgIEdM
X0NPTE9SX0FUVEFDSE1FTlQxLAorICAgICAgICBHTF9DT0xPUl9BVFRBQ0hNRU5UMiwKKyAgICAg
ICAgR0xfQ09MT1JfQVRUQUNITUVOVDMsCisgICAgfTsKKworICAgIGdsRHJhd0J1ZmZlcnMoNCwg
YnVmcyk7CisgICAgZHJhd1F1YWQocHJvZ3JhbSwgcG9zaXRpb25BdHRyaWIoKSwgMC41KTsKKwor
ICAgIHZlcmlmeUF0dGFjaG1lbnRMYXllcigwLCB0ZXh0dXJlLmdldCgpLCAwLCAzKTsKKyAgICB2
ZXJpZnlBdHRhY2htZW50TGF5ZXIoMSwgdGV4dHVyZS5nZXQoKSwgMCwgMik7CisgICAgdmVyaWZ5
QXR0YWNobWVudExheWVyKDIsIHRleHR1cmUuZ2V0KCksIDAsIDEpOworICAgIHZlcmlmeUF0dGFj
aG1lbnRMYXllcigzLCB0ZXh0dXJlLmdldCgpLCAwLCAwKTsKKworICAgIEVYUEVDVF9HTF9OT19F
UlJPUigpOworCisgICAgZ2xEZWxldGVQcm9ncmFtKHByb2dyYW0pOworfQorCisvLyBUZXN0IHRo
YXQgYmluZGluZyBtdWx0aXBsZSBsYXllcnMgb2YgYSBDdWJlTWFwIGFycmF5IHRleHR1cmUgd29y
a3MgY29ycmVjdGx5CitURVNUX1AoRHJhd0J1ZmZlcnNUZXN0RVMzLCBDdWJlTWFwQXJyYXlUZXh0
dXJlcykKK3sKKyAgICBBTkdMRV9TS0lQX1RFU1RfSUYoIXNldHVwVGVzdCgpKTsKKyAgICBBTkdM
RV9TS0lQX1RFU1RfSUYoIUlzR0xFeHRlbnNpb25FbmFibGVkKCJHTF9FWFRfdGV4dHVyZV9jdWJl
X21hcF9hcnJheSIpKTsKKworICAgIEdMVGV4dHVyZSB0ZXh0dXJlOworICAgIGdsQmluZFRleHR1
cmUoR0xfVEVYVFVSRV9DVUJFX01BUF9BUlJBWSwgdGV4dHVyZS5nZXQoKSk7CisgICAgZ2xUZXhT
dG9yYWdlM0QoR0xfVEVYVFVSRV9DVUJFX01BUF9BUlJBWSwgMSwgR0xfUkdCQTgsIGdldFdpbmRv
d1dpZHRoKCksIGdldFdpbmRvd0hlaWdodCgpLAorICAgICAgICAgICAgICAgICAgIHN0YXRpY19j
YXN0PEdMaW50PihrQ3ViZUZhY2VzLnNpemUoKSkpOworICAgIEVYUEVDVF9HTF9OT19FUlJPUigp
OworCisgICAgZ2xGcmFtZWJ1ZmZlclRleHR1cmVMYXllcihHTF9GUkFNRUJVRkZFUiwgR0xfQ09M
T1JfQVRUQUNITUVOVDAsIHRleHR1cmUuZ2V0KCksIDAsIDMpOworICAgIGdsRnJhbWVidWZmZXJU
ZXh0dXJlTGF5ZXIoR0xfRlJBTUVCVUZGRVIsIEdMX0NPTE9SX0FUVEFDSE1FTlQxLCB0ZXh0dXJl
LmdldCgpLCAwLCAyKTsKKyAgICBnbEZyYW1lYnVmZmVyVGV4dHVyZUxheWVyKEdMX0ZSQU1FQlVG
RkVSLCBHTF9DT0xPUl9BVFRBQ0hNRU5UMiwgdGV4dHVyZS5nZXQoKSwgMCwgMSk7CisgICAgZ2xG
cmFtZWJ1ZmZlclRleHR1cmVMYXllcihHTF9GUkFNRUJVRkZFUiwgR0xfQ09MT1JfQVRUQUNITUVO
VDMsIHRleHR1cmUuZ2V0KCksIDAsIDApOworICAgIEVYUEVDVF9HTF9OT19FUlJPUigpOworCisg
ICAgYm9vbCBmbGFnc1s4XSA9IHt0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCBmYWxzZX07CisKKyAg
ICBHTHVpbnQgcHJvZ3JhbTsKKyAgICBzZXR1cE1SVFByb2dyYW0oZmxhZ3MsICZwcm9ncmFtKTsK
KworICAgIGNvbnN0IEdMZW51bSBidWZzW10gPSB7CisgICAgICAgIEdMX0NPTE9SX0FUVEFDSE1F
TlQwLAorICAgICAgICBHTF9DT0xPUl9BVFRBQ0hNRU5UMSwKKyAgICAgICAgR0xfQ09MT1JfQVRU
QUNITUVOVDIsCisgICAgICAgIEdMX0NPTE9SX0FUVEFDSE1FTlQzLAorICAgIH07CisKKyAgICBn
bERyYXdCdWZmZXJzKDQsIGJ1ZnMpOworICAgIGRyYXdRdWFkKHByb2dyYW0sIHBvc2l0aW9uQXR0
cmliKCksIDAuNSk7CisKKyAgICB2ZXJpZnlBdHRhY2htZW50TGF5ZXIoMCwgdGV4dHVyZS5nZXQo
KSwgMCwgMyk7CisgICAgdmVyaWZ5QXR0YWNobWVudExheWVyKDEsIHRleHR1cmUuZ2V0KCksIDAs
IDIpOworICAgIHZlcmlmeUF0dGFjaG1lbnRMYXllcigyLCB0ZXh0dXJlLmdldCgpLCAwLCAxKTsK
KyAgICB2ZXJpZnlBdHRhY2htZW50TGF5ZXIoMywgdGV4dHVyZS5nZXQoKSwgMCwgMCk7CisKKyAg
ICBFWFBFQ1RfR0xfTk9fRVJST1IoKTsKKworICAgIGdsRGVsZXRlUHJvZ3JhbShwcm9ncmFtKTsK
K30KKwogLy8gVGVzdCB0aGF0IGJsZW5kIHdvcmtzIHdoZW4gZHJhdyBidWZmZXJzIGFuZCBmcmFt
ZWJ1ZmZlcnMgY2hhbmdlLgogVEVTVF9QKERyYXdCdWZmZXJzVGVzdEVTMywgQmxlbmRXaXRoRHJh
d0J1ZmZlckFuZEZyYW1lYnVmZmVyQ2hhbmdlcykKIHsKQEAgLTEzNzAsNyArMTQ1NCwxMCBAQCBU
RVNUX1AoQ29sb3JNYXNrRm9yRHJhd0J1ZmZlcnNUZXN0LCBCbGl0KQogQU5HTEVfSU5TVEFOVElB
VEVfVEVTVChEcmF3QnVmZmVyc1Rlc3QsCiAgICAgICAgICAgICAgICAgICAgICAgIEFOR0xFX0FM
TF9URVNUX1BMQVRGT1JNU19FUzIsCiAgICAgICAgICAgICAgICAgICAgICAgIEFOR0xFX0FMTF9U
RVNUX1BMQVRGT1JNU19FUzMsCi0gICAgICAgICAgICAgICAgICAgICAgIFdpdGhOb1RyYW5zZm9y
bUZlZWRiYWNrKEVTMl9WVUxLQU4oKSkpOworICAgICAgICAgICAgICAgICAgICAgICBFUzJfVlVM
S0FOKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIC5kaXNhYmxlKEZlYXR1cmU6OlN1cHBv
cnRzVHJhbnNmb3JtRmVlZGJhY2tFeHRlbnNpb24pCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAuZGlzYWJsZShGZWF0dXJlOjpTdXBwb3J0c0dlb21ldHJ5U3RyZWFtc0NhcGFiaWxpdHkpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAuZGlzYWJsZShGZWF0dXJlOjpFbXVsYXRlVHJhbnNm
b3JtRmVlZGJhY2spKTsKIAogR1RFU1RfQUxMT1dfVU5JTlNUQU5USUFURURfUEFSQU1FVEVSSVpF
RF9URVNUKERyYXdCdWZmZXJzV2ViR0wyVGVzdCk7CiBBTkdMRV9JTlNUQU5USUFURV9URVNUX0VT
MyhEcmF3QnVmZmVyc1dlYkdMMlRlc3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkv
QU5HTEUvc3JjL3Rlc3RzL2dsX3Rlc3RzL0ZyYW1lYnVmZmVyRmV0Y2hUZXN0LmNwcCBiL1NvdXJj
ZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9nbF90ZXN0cy9GcmFtZWJ1ZmZlckZldGNoVGVz
dC5jcHAKaW5kZXggYjA4OTJhN2M3ZGY0OTBjMmE4ZTFjZGY1MDI2MzVjNTQyOGYyNDVmNy4uYjAx
NTYyMDUzOGZmMTEyN2YzZGVkYWEzMTk2OTUzYjE1ZGE1OGVhMCAxMDA2NDQKLS0tIGEvU291cmNl
L1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3RzL2dsX3Rlc3RzL0ZyYW1lYnVmZmVyRmV0Y2hUZXN0
LmNwcAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvZ2xfdGVzdHMvRnJh
bWVidWZmZXJGZXRjaFRlc3QuY3BwCkBAIC0xMTAsNyArMTEwLDcgQEAgdm9pZCBtYWluICh2b2lk
KQogLy8gYXJyYXkKIHN0YXRpYyBjb25zdGV4cHIgY2hhciBrMzEwQ29oZXJlbnQ0QXR0YWNobWVu
dEFycmF5RlNbXSA9IFIiKCN2ZXJzaW9uIDMxMCBlcwogI2V4dGVuc2lvbiBHTF9FWFRfc2hhZGVy
X2ZyYW1lYnVmZmVyX2ZldGNoIDogcmVxdWlyZQotbGF5b3V0KGxvY2F0aW9uID0gMCkgaW5vdXQg
aGlnaHAgdmVjNCBvX2NvbG9yWzRdOworaW5vdXQgaGlnaHAgdmVjNCBvX2NvbG9yWzRdOwogdW5p
Zm9ybSBoaWdocCB2ZWM0IHVfY29sb3I7CiAKIHZvaWQgbWFpbiAodm9pZCkKQEAgLTE4NCw3ICsx
ODQsNyBAQCB2b2lkIG1haW4gKHZvaWQpCiAvLyBOb24tY29oZXJlbnQgdmVyc2lvbiBvZiBhIDMu
MSBHTFNMIGZyYWdtZW50IHNoYWRlciB0aGF0IHdyaXRlcyB0aGUgb3V0cHV0IHRvIGEgc3RvcmFn
ZSBidWZmZXIuCiBzdGF0aWMgY29uc3RleHByIGNoYXIgazMxME5vbkNvaGVyZW50U3RvcmFnZUJ1
ZmZlcltdID0gUiIoI3ZlcnNpb24gMzEwIGVzCiAjZXh0ZW5zaW9uIEdMX0VYVF9zaGFkZXJfZnJh
bWVidWZmZXJfZmV0Y2hfbm9uX2NvaGVyZW50IDogcmVxdWlyZQotbGF5b3V0KG5vbmNvaGVyZW50
LCBsb2NhdGlvbiA9IDApIGlub3V0IGhpZ2hwIHZlYzQgb19jb2xvcjsKK2xheW91dChub25jb2hl
cmVudCkgaW5vdXQgaGlnaHAgdmVjNCBvX2NvbG9yOwogCiBsYXlvdXQoc3RkMTQwLCBiaW5kaW5n
ID0gMCkgYnVmZmVyIG91dEJsb2NrIHsKICAgICBoaWdocCB2ZWM0IGRhdGFbMjU2XTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9nbF90ZXN0cy9GcmFtZWJ1
ZmZlclJlbmRlck1pcG1hcFRlc3QuY3BwIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rl
c3RzL2dsX3Rlc3RzL0ZyYW1lYnVmZmVyUmVuZGVyTWlwbWFwVGVzdC5jcHAKaW5kZXggNmY0NDJm
Y2I1ZTYxNGVhNDlkOTRhOGFlNzQ0ZjdmNjJmNjJhZGIxOS4uN2RjNTRlNjE0Zjc5MGM2ZGExNGFj
YmQ4Njc3MWM1YzVkMGY2OTUxMyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUv
c3JjL3Rlc3RzL2dsX3Rlc3RzL0ZyYW1lYnVmZmVyUmVuZGVyTWlwbWFwVGVzdC5jcHAKKysrIGIv
U291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3RzL2dsX3Rlc3RzL0ZyYW1lYnVmZmVyUmVu
ZGVyTWlwbWFwVGVzdC5jcHAKQEAgLTUzLDggKzUzLDYgQEAgY2xhc3MgRnJhbWVidWZmZXJSZW5k
ZXJNaXBtYXBUZXN0IDogcHVibGljIEFOR0xFVGVzdAogLy8gd2hlbiB1c2luZyBhIG5vbi16ZXJv
IGxldmVsIGluIGdsRnJhbWVidWZmZXJUZXh0dXJlMkQuCiBURVNUX1AoRnJhbWVidWZmZXJSZW5k
ZXJNaXBtYXBUZXN0LCBWYWxpZGF0aW9uKQogewotICAgIC8vIGh0dHA6Ly9hbmdsZWJ1Zy5jb20v
NDA5MgotICAgIEFOR0xFX1NLSVBfVEVTVF9JRihpc1N3aWZ0c2hhZGVyKCkpOwogICAgIGJvb2wg
cmVuZGVyVG9NaXBtYXBTdXBwb3J0ZWQgPQogICAgICAgICBJc0dMRXh0ZW5zaW9uRW5hYmxlZCgi
R0xfT0VTX2Zib19yZW5kZXJfbWlwbWFwIikgfHwgZ2V0Q2xpZW50TWFqb3JWZXJzaW9uKCkgPiAy
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvZ2xfdGVz
dHMvRnJhbWVidWZmZXJUZXN0LmNwcCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0
cy9nbF90ZXN0cy9GcmFtZWJ1ZmZlclRlc3QuY3BwCmluZGV4IGE5OTk2ZDEwNjRmZGVhYzdlYjRj
YzNkNGEzMzc3MDRmMDM1ZmM1MjMuLmJjNDI5ZTA3ZDAwYjViMTI0NTgwMWM3YzBjOWM3MDU3ODY2
Y2I4N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9nbF90
ZXN0cy9GcmFtZWJ1ZmZlclRlc3QuY3BwCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3Ny
Yy90ZXN0cy9nbF90ZXN0cy9GcmFtZWJ1ZmZlclRlc3QuY3BwCkBAIC04LDcgKzgsNyBAQAogLy8K
IAogI2luY2x1ZGUgImNvbW1vbi9tYXRodXRpbC5oIgotI2luY2x1ZGUgInBsYXRmb3JtL0ZlYXR1
cmVzRDNELmgiCisjaW5jbHVkZSAicGxhdGZvcm0vRmVhdHVyZXNEM0RfYXV0b2dlbi5oIgogI2lu
Y2x1ZGUgInRlc3RfdXRpbHMvQU5HTEVUZXN0LmgiCiAjaW5jbHVkZSAidGVzdF91dGlscy9nbF9y
YWlpLmgiCiAKQEAgLTQ3OCw2ICs0NzgsNTYgQEAgVEVTVF9QKEZyYW1lYnVmZmVyVGVzdF9FUzMs
IFN1YkludmFsaWRhdGVQYXJ0aWFsKQogICAgIEVYUEVDVF9QSVhFTF9DT0xPUl9FUShrV2lkdGgg
LSAxLCBrSGVpZ2h0IC0gMSwgR0xDb2xvcjo6cmVkKTsKIH0KIAorLy8gVGVzdCB0aGF0IGludmFs
aWRhdGluZyBzdGVuY2lsIG9mIGEgZGVwdGgtb25seSBhdHRhY2htZW50IGRvZXNuJ3QgY3Jhc2gu
CitURVNUX1AoRnJhbWVidWZmZXJUZXN0X0VTMywgRGVwdGhPbmx5QXR0YWNobWVudEludmFsaWRh
dGVTdGVuY2lsKQoreworICAgIC8vIENyZWF0ZSB0aGUgZnJhbWVidWZmZXIgdGhhdCB3aWxsIGJl
IGludmFsaWRhdGVkCisgICAgR0xSZW5kZXJidWZmZXIgZGVwdGg7CisgICAgZ2xCaW5kUmVuZGVy
YnVmZmVyKEdMX1JFTkRFUkJVRkZFUiwgZGVwdGgpOworICAgIGdsUmVuZGVyYnVmZmVyU3RvcmFn
ZShHTF9SRU5ERVJCVUZGRVIsIEdMX0RFUFRIX0NPTVBPTkVOVDE2LCAyLCAyKTsKKworICAgIEdM
RnJhbWVidWZmZXIgZmJvOworICAgIGdsQmluZEZyYW1lYnVmZmVyKEdMX0ZSQU1FQlVGRkVSLCBm
Ym8pOworICAgIGdsRnJhbWVidWZmZXJSZW5kZXJidWZmZXIoR0xfRlJBTUVCVUZGRVIsIEdMX0RF
UFRIX0FUVEFDSE1FTlQsIEdMX1JFTkRFUkJVRkZFUiwgZGVwdGgpOworICAgIEFTU0VSVF9HTF9G
UkFNRUJVRkZFUl9DT01QTEVURShHTF9GUkFNRUJVRkZFUik7CisKKyAgICBFWFBFQ1RfR0xfTk9f
RVJST1IoKTsKKworICAgIC8vIEludmFsaWRhdGUgc3RlbmNpbCBvbmx5LgorICAgIHN0ZDo6YXJy
YXk8R0xlbnVtLCAyPiBhdHRhY2htZW50cyA9IHtHTF9TVEVOQ0lMX0FUVEFDSE1FTlQsIEdMX0RF
UFRIX0FUVEFDSE1FTlR9OworICAgIGdsSW52YWxpZGF0ZUZyYW1lYnVmZmVyKEdMX0ZSQU1FQlVG
RkVSLCAxLCBhdHRhY2htZW50cy5kYXRhKCkpOworICAgIEVYUEVDVF9HTF9OT19FUlJPUigpOwor
CisgICAgLy8gSW52YWxpZGF0ZSBib3RoIGRlcHRoIGFuZCBzdGVuY2lsLgorICAgIGdsSW52YWxp
ZGF0ZUZyYW1lYnVmZmVyKEdMX0ZSQU1FQlVGRkVSLCAyLCBhdHRhY2htZW50cy5kYXRhKCkpOwor
ICAgIEVYUEVDVF9HTF9OT19FUlJPUigpOworfQorCisvLyBUZXN0IHRoYXQgaW52YWxpZGF0aW5n
IGRlcHRoIG9mIGEgc3RlbmNpbC1vbmx5IGF0dGFjaG1lbnQgZG9lc24ndCBjcmFzaC4KK1RFU1Rf
UChGcmFtZWJ1ZmZlclRlc3RfRVMzLCBTdGVuY2lsT25seUF0dGFjaG1lbnRJbnZhbGlkYXRlRGVw
dGgpCit7CisgICAgLy8gQ3JlYXRlIHRoZSBmcmFtZWJ1ZmZlciB0aGF0IHdpbGwgYmUgaW52YWxp
ZGF0ZWQKKyAgICBHTFJlbmRlcmJ1ZmZlciBkZXB0aDsKKyAgICBnbEJpbmRSZW5kZXJidWZmZXIo
R0xfUkVOREVSQlVGRkVSLCBkZXB0aCk7CisgICAgZ2xSZW5kZXJidWZmZXJTdG9yYWdlKEdMX1JF
TkRFUkJVRkZFUiwgR0xfU1RFTkNJTF9JTkRFWDgsIDIsIDIpOworCisgICAgR0xGcmFtZWJ1ZmZl
ciBmYm87CisgICAgZ2xCaW5kRnJhbWVidWZmZXIoR0xfRlJBTUVCVUZGRVIsIGZibyk7CisgICAg
Z2xGcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgR0xfU1RFTkNJTF9BVFRB
Q0hNRU5ULCBHTF9SRU5ERVJCVUZGRVIsIGRlcHRoKTsKKyAgICBBU1NFUlRfR0xfRlJBTUVCVUZG
RVJfQ09NUExFVEUoR0xfRlJBTUVCVUZGRVIpOworCisgICAgRVhQRUNUX0dMX05PX0VSUk9SKCk7
CisKKyAgICAvLyBJbnZhbGlkYXRlIGRlcHRoIG9ubHkuCisgICAgc3RkOjphcnJheTxHTGVudW0s
IDI+IGF0dGFjaG1lbnRzID0ge0dMX0RFUFRIX0FUVEFDSE1FTlQsIEdMX1NURU5DSUxfQVRUQUNI
TUVOVH07CisgICAgZ2xJbnZhbGlkYXRlRnJhbWVidWZmZXIoR0xfRlJBTUVCVUZGRVIsIDEsIGF0
dGFjaG1lbnRzLmRhdGEoKSk7CisgICAgRVhQRUNUX0dMX05PX0VSUk9SKCk7CisKKyAgICAvLyBJ
bnZhbGlkYXRlIGJvdGggZGVwdGggYW5kIHN0ZW5jaWwuCisgICAgZ2xJbnZhbGlkYXRlRnJhbWVi
dWZmZXIoR0xfRlJBTUVCVUZGRVIsIDIsIGF0dGFjaG1lbnRzLmRhdGEoKSk7CisgICAgRVhQRUNU
X0dMX05PX0VSUk9SKCk7Cit9CisKIC8vIFRlc3QgdGhhdCBhIHNjaXNzb3JlZCBkcmF3IGZvbGxv
d2VkIGJ5IHN1YmludmFsaWRhdGUgZm9sbG93ZWQgYnkgYSBub24tc2Npc3NvcmVkIGRyYXcgcmV0
YWlucyB0aGUKIC8vIHBhcnQgdGhhdCBpcyBub3QgaW52YWxpZGF0ZWQuICBVc2VzIHN3YXBwZWQg
d2lkdGgvaGVpZ2h0IGZvciBpbnZhbGlkYXRlIHdoaWNoIHJlc3VsdHMgaW4gYQogLy8gcGFydGlh
bCBpbnZhbGlkYXRlLCBidXQgYWxzbyBwcmV2ZW50cyBidWdzIHdpdGggVnVsa2FuIHByZS1yb3Rh
dGlvbi4KQEAgLTI4MzUsMTEgKzI4ODUsNiBAQCBjbGFzcyBBZGRNb2NrVGV4dHVyZU5vUmVuZGVy
VGFyZ2V0VGVzdCA6IHB1YmxpYyBBTkdMRVRlc3QKICAgICAgICAgc2V0Q29uZmlnQmx1ZUJpdHMo
OCk7CiAgICAgICAgIHNldENvbmZpZ0FscGhhQml0cyg4KTsKICAgICB9Ci0KLSAgICB2b2lkIG92
ZXJyaWRlV29ya2Fyb3VuZHNEM0QoRmVhdHVyZXNEM0QgKmZlYXR1cmVzKSBvdmVycmlkZQotICAg
IHsKLSAgICAgICAgZmVhdHVyZXMtPm92ZXJyaWRlRmVhdHVyZXMoeyJhZGRfbW9ja190ZXh0dXJl
X25vX3JlbmRlcl90YXJnZXQifSwgdHJ1ZSk7Ci0gICAgfQogfTsKIAogLy8gVGVzdCB0byB2ZXJp
Znkgd29ya2Fyb3VuZCBzdWNjZWVkcyB3aGVuIG5vIHByb2dyYW0gb3V0cHV0cyBleGlzdCBodHRw
Oi8vYW5nbGVidWcuY29tLzIyODMKQEAgLTQ0OTUsMTUgKzQ1NDAsMTggQEAgVEVTVF9QKEZyYW1l
YnVmZmVyVGVzdF9FUzMsIEludmFsaWRhdGVDbGVhckRyYXcpCiAgICAgRVhQRUNUX1BJWEVMX0NP
TE9SX0VRKDAsIDAsIEdMQ29sb3I6Om1hZ2VudGEpOwogfQogCi1BTkdMRV9JTlNUQU5USUFURV9U
RVNUX0VTMihBZGRNb2NrVGV4dHVyZU5vUmVuZGVyVGFyZ2V0VGVzdCk7CitBTkdMRV9JTlNUQU5U
SUFURV9URVNUX0VTMl9BTkQoQWRkTW9ja1RleHR1cmVOb1JlbmRlclRhcmdldFRlc3QsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgRVMyX0QzRDkoKS5lbmFibGUoRmVhdHVyZTo6QWRk
TW9ja1RleHR1cmVOb1JlbmRlclRhcmdldCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgRVMyX0QzRDExKCkuZW5hYmxlKEZlYXR1cmU6OkFkZE1vY2tUZXh0dXJlTm9SZW5kZXJUYXJn
ZXQpKTsKKwogQU5HTEVfSU5TVEFOVElBVEVfVEVTVF9FUzIoRnJhbWVidWZmZXJUZXN0KTsKIEFO
R0xFX0lOU1RBTlRJQVRFX1RFU1RfRVMyX0FORF9FUzMoRnJhbWVidWZmZXJGb3JtYXRzVGVzdCk7
CiAKIEdURVNUX0FMTE9XX1VOSU5TVEFOVElBVEVEX1BBUkFNRVRFUklaRURfVEVTVChGcmFtZWJ1
ZmZlclRlc3RfRVMzKTsKIEFOR0xFX0lOU1RBTlRJQVRFX1RFU1RfRVMzX0FORChGcmFtZWJ1ZmZl
clRlc3RfRVMzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdpdGhFbXVsYXRlZFBy
ZXJvdGF0aW9uKEVTM19WVUxLQU4oKSwgOTApLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFdpdGhFbXVsYXRlZFByZXJvdGF0aW9uKEVTM19WVUxLQU4oKSwgMTgwKSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBXaXRoRW11bGF0ZWRQcmVyb3RhdGlvbihFUzNfVlVMS0FO
KCksIDI3MCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVTM19WVUxLQU4oKS5l
bmFibGUoRmVhdHVyZTo6RW11bGF0ZWRQcmVyb3RhdGlvbjkwKSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBFUzNfVlVMS0FOKCkuZW5hYmxlKEZlYXR1cmU6OkVtdWxhdGVkUHJlcm90
YXRpb24xODApLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVTM19WVUxLQU4oKS5l
bmFibGUoRmVhdHVyZTo6RW11bGF0ZWRQcmVyb3RhdGlvbjI3MCkpOwogCiBHVEVTVF9BTExPV19V
TklOU1RBTlRJQVRFRF9QQVJBTUVURVJJWkVEX1RFU1QoRnJhbWVidWZmZXJUZXN0X0VTMzEpOwog
QU5HTEVfSU5TVEFOVElBVEVfVEVTVF9FUzMxKEZyYW1lYnVmZmVyVGVzdF9FUzMxKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9nbF90ZXN0cy9HTFNMVGVz
dC5jcHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvZ2xfdGVzdHMvR0xTTFRl
c3QuY3BwCmluZGV4IGE0ZDQzMjdjY2VjN2VhYWQ0ZTE5MWFiMTM2NGU3ZTA2ZDEwYjJhMGEuLmVl
MWE3MTA0MmJiOGVjNjZjYTRmZDhlNjhjNDVkNzgxMTUwNWZhN2QgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9nbF90ZXN0cy9HTFNMVGVzdC5jcHAKKysrIGIv
U291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3RzL2dsX3Rlc3RzL0dMU0xUZXN0LmNwcApA
QCAtMTE2Myw4ICsxMTYzLDYgQEAgdm9pZCBtYWluKCkKIC8vIERyYXcgYW4gYXJyYXkgb2YgcG9p
bnRzIHdpdGggdGhlIGZpcnN0IHZlcnRleCBvZmZzZXQgYXQgMCB1c2luZyBnbF9WZXJ0ZXhJRAog
VEVTVF9QKEdMU0xUZXN0X0VTMywgR0xWZXJ0ZXhJRE9mZnNldFplcm9EcmF3QXJyYXkpCiB7Ci0g
ICAgLy8gaHR0cDovL2FuZ2xlYnVnLmNvbS80MDkyCi0gICAgQU5HTEVfU0tJUF9URVNUX0lGKGlz
U3dpZnRzaGFkZXIoKSk7CiAgICAgY29uc3RleHByIGludCBrU3RhcnRJbmRleCAgPSAwOwogICAg
IGNvbnN0ZXhwciBpbnQga0FycmF5TGVuZ3RoID0gNTsKICAgICBjb25zdGV4cHIgY2hhciBrVlNb
XSAgICAgICA9IFIiKCN2ZXJzaW9uIDMwMCBlcwpAQCAtMTU1NCw4ICsxNTUyLDYgQEAgdm9pZCBt
YWluKCkgewogLy8gRHJhdyBhbiBhcnJheSBvZiBwb2ludHMgd2l0aCB0aGUgZmlyc3QgdmVydGV4
IG9mZnNldCBhdCA1IHVzaW5nIGdsX1ZlcnRleElECiBURVNUX1AoR0xTTFRlc3RfRVMzLCBHTFZl
cnRleElET2Zmc2V0Rml2ZURyYXdBcnJheSkKIHsKLSAgICAvLyBodHRwOi8vYW5nbGVidWcuY29t
LzQwOTIKLSAgICBBTkdMRV9TS0lQX1RFU1RfSUYoaXNTd2lmdHNoYWRlcigpKTsKICAgICAvLyBC
dWcgaW4gTmV4dXMgZHJpdmVycywgb2Zmc2V0IGRvZXMgbm90IHdvcmsuIChhbmdsZWJ1Zy5jb20v
MzI2NCkKICAgICBBTkdMRV9TS0lQX1RFU1RfSUYoSXNOZXh1czVYKCkgJiYgSXNPcGVuR0xFUygp
KTsKIApAQCAtOTAzMSw5ICs5MDI3LDYgQEAgdm9pZCBtYWluKCkKIC8vIFRlc3RzIHRoYXQgUG9p
bnRDb29yZCBiZWhhdmVzIHRoZSBzYW1lIGJldHdlZWVuIGEgdXNlciBGQk8gYW5kIHRoZSBiYWNr
IGJ1ZmZlci4KIFRFU1RfUChHTFNMVGVzdCwgUG9pbnRDb29yZENvbnNpc3RlbmN5KQogewotICAg
IC8vIGh0dHA6Ly9hbmdsZWJ1Zy5jb20vNDA5MgotICAgIEFOR0xFX1NLSVBfVEVTVF9JRihpc1N3
aWZ0c2hhZGVyKCkpOwotCiAgICAgY29uc3RleHByIGNoYXIga1BvaW50Q29vcmRWU1tdID0gUiIo
YXR0cmlidXRlIHZlYzIgcG9zaXRpb247CiB1bmlmb3JtIHZlYzIgdmlld3BvcnRTaXplOwogdm9p
ZCBtYWluKCkKQEAgLTk2NjYsMTIgKzk2NTksMTYgQEAgdm9pZCBJbml0QnVmZmVyKEdMdWludCBw
cm9ncmFtLAogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiBib29sIFZlcmlmeUJ1ZmZlcihHTHVpbnQg
YnVmZmVyLCBjb25zdCBUIGRhdGFbXSwgdWludDMyX3QgZGF0YVNpemUpCiB7CisgICAgdWludDMy
X3Qgc2l6ZUluQnl0ZXMgPSBkYXRhU2l6ZSAqIHNpemVvZigqZGF0YSk7CisKKyAgICBnbE1lbW9y
eUJhcnJpZXIoR0xfQlVGRkVSX1VQREFURV9CQVJSSUVSX0JJVCk7CisKICAgICBnbEJpbmRCdWZm
ZXIoR0xfU0hBREVSX1NUT1JBR0VfQlVGRkVSLCBidWZmZXIpOwogCiAgICAgY29uc3QgVCAqcHRy
ID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBUICo+KAotICAgICAgICBnbE1hcEJ1ZmZlclJhbmdl
KEdMX1NIQURFUl9TVE9SQUdFX0JVRkZFUiwgMCwgZGF0YVNpemUsIEdMX01BUF9SRUFEX0JJVCkp
OworICAgICAgICBnbE1hcEJ1ZmZlclJhbmdlKEdMX1NIQURFUl9TVE9SQUdFX0JVRkZFUiwgMCwg
c2l6ZUluQnl0ZXMsIEdMX01BUF9SRUFEX0JJVCkpOwogCi0gICAgYm9vbCBpc0NvcnJlY3QgPSBt
ZW1jbXAocHRyLCBkYXRhLCBkYXRhU2l6ZSAqIHNpemVvZigqZGF0YSkpID09IDA7CisgICAgYm9v
bCBpc0NvcnJlY3QgPSBtZW1jbXAocHRyLCBkYXRhLCBzaXplSW5CeXRlcykgPT0gMDsKICAgICBn
bFVubWFwQnVmZmVyKEdMX1NIQURFUl9TVE9SQUdFX0JVRkZFUik7CiAKICAgICByZXR1cm4gaXND
b3JyZWN0OwpAQCAtMTUyNjAsMjUgKzE1MjU3LDcyIEBAIHZvaWQgbWFpbigpIHsKICAgICBBU1NF
UlRfR0xfTk9fRVJST1IoKTsKIH0KIAorLy8gTWFrZSBzdXJlIGNvbnN0IHNhbXBsZXIgcGFyYW1l
dGVycyB3b3JrLgorVEVTVF9QKEdMU0xUZXN0LCBDb25zdFNhbXBsZXJQYXJhbWV0ZXIpCit7Cisg
ICAgY29uc3RleHByIGNoYXIga0ZTW10gPSBSIihwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsKK3Vu
aWZvcm0gc2FtcGxlcjJEIHNhbXA7CisKK3ZlYzQgc2FtcGxlQ29uc3RTYW1wbGVyKGNvbnN0IHNh
bXBsZXIyRCBzKSB7CisgICAgcmV0dXJuIHRleHR1cmUyRChzLCB2ZWMyKDApKTsKK30KKwordm9p
ZCBtYWluKCkgeworICAgIGdsX0ZyYWdDb2xvciA9IHNhbXBsZUNvbnN0U2FtcGxlcihzYW1wKTsK
K30KKykiOworICAgIENvbXBpbGVTaGFkZXIoR0xfRlJBR01FTlRfU0hBREVSLCBrRlMpOworICAg
IEFTU0VSVF9HTF9OT19FUlJPUigpOworfQorCisvLyBNYWtlIHN1cmUgcGFzc2luZyBjb25zdCBz
YW1wbGVyIHBhcmFtZXRlcnMgdG8gYW5vdGhlciBmdW5jdGlvbiB3b3JrLgorVEVTVF9QKEdMU0xU
ZXN0LCBDb25zdFNhbXBsZXJQYXJhbWV0ZXJBc0FyZ3VtZW50KQoreworICAgIGNvbnN0ZXhwciBj
aGFyIGtGU1tdID0gUiIocHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7CisKK3VuaWZvcm0gc2FtcGxl
cjJEIHNhbXA7CisKK3ZlYzQgc2FtcGxlU2FtcGxlcihzYW1wbGVyMkQgcykgeworICAgIHJldHVy
biB0ZXh0dXJlMkQocywgdmVjMigwKSk7Cit9CisKK3ZlYzQgc2FtcGxlQ29uc3RTYW1wbGVyKGNv
bnN0IHNhbXBsZXIyRCBzKSB7CisgICAgcmV0dXJuIHNhbXBsZVNhbXBsZXIocyk7Cit9CisKK3Zv
aWQgbWFpbigpIHsKKyAgICBnbF9GcmFnQ29sb3IgPSBzYW1wbGVDb25zdFNhbXBsZXIoc2FtcCk7
Cit9CispIjsKKyAgICBDb21waWxlU2hhZGVyKEdMX0ZSQUdNRU5UX1NIQURFUiwga0ZTKTsKKyAg
ICBBU1NFUlRfR0xfTk9fRVJST1IoKTsKK30KIH0gIC8vIGFub255bW91cyBuYW1lc3BhY2UKIAot
QU5HTEVfSU5TVEFOVElBVEVfVEVTVF9FUzJfQU5EX0VTM19BTkQoR0xTTFRlc3QsIFdpdGhHbHNs
YW5nKEVTMl9WVUxLQU4oKSkpOworQU5HTEVfSU5TVEFOVElBVEVfVEVTVF9FUzJfQU5EX0VTM19B
TkQoR0xTTFRlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFUzJf
VlVMS0FOKCkuZW5hYmxlKEZlYXR1cmU6OkdlbmVyYXRlU1BJUlZUaHJvdWdoR2xzbGFuZykpOwog
CiBBTkdMRV9JTlNUQU5USUFURV9URVNUX0VTMl9BTkRfRVMzKEdMU0xUZXN0Tm9WYWxpZGF0aW9u
KTsKIAogR1RFU1RfQUxMT1dfVU5JTlNUQU5USUFURURfUEFSQU1FVEVSSVpFRF9URVNUKEdMU0xU
ZXN0X0VTMyk7Ci1BTkdMRV9JTlNUQU5USUFURV9URVNUX0VTM19BTkQoR0xTTFRlc3RfRVMzLCBX
aXRoR2xzbGFuZyhFUzNfVlVMS0FOKCkpKTsKK0FOR0xFX0lOU1RBTlRJQVRFX1RFU1RfRVMzX0FO
RChHTFNMVGVzdF9FUzMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRVMzX1ZVTEtB
TigpLmVuYWJsZShGZWF0dXJlOjpHZW5lcmF0ZVNQSVJWVGhyb3VnaEdsc2xhbmcpKTsKIAogR1RF
U1RfQUxMT1dfVU5JTlNUQU5USUFURURfUEFSQU1FVEVSSVpFRF9URVNUKEdMU0xUZXN0TG9vcHMp
OwotQU5HTEVfSU5TVEFOVElBVEVfVEVTVF9FUzNfQU5EKEdMU0xUZXN0TG9vcHMsIFdpdGhHbHNs
YW5nKEVTM19WVUxLQU4oKSkpOworQU5HTEVfSU5TVEFOVElBVEVfVEVTVF9FUzNfQU5EKEdMU0xU
ZXN0TG9vcHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRVMzX1ZVTEtBTigpLmVu
YWJsZShGZWF0dXJlOjpHZW5lcmF0ZVNQSVJWVGhyb3VnaEdsc2xhbmcpKTsKIAotQU5HTEVfSU5T
VEFOVElBVEVfVEVTVF9FUzJfQU5EKFdlYkdMR0xTTFRlc3QsIFdpdGhHbHNsYW5nKEVTMl9WVUxL
QU4oKSkpOworQU5HTEVfSU5TVEFOVElBVEVfVEVTVF9FUzJfQU5EKFdlYkdMR0xTTFRlc3QsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRVMyX1ZVTEtBTigpLmVuYWJsZShGZWF0dXJl
OjpHZW5lcmF0ZVNQSVJWVGhyb3VnaEdsc2xhbmcpKTsKIAogR1RFU1RfQUxMT1dfVU5JTlNUQU5U
SUFURURfUEFSQU1FVEVSSVpFRF9URVNUKFdlYkdMMkdMU0xUZXN0KTsKLUFOR0xFX0lOU1RBTlRJ
QVRFX1RFU1RfRVMzX0FORChXZWJHTDJHTFNMVGVzdCwgV2l0aEdsc2xhbmcoRVMzX1ZVTEtBTigp
KSk7CitBTkdMRV9JTlNUQU5USUFURV9URVNUX0VTM19BTkQoV2ViR0wyR0xTTFRlc3QsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgRVMzX1ZVTEtBTigpLmVuYWJsZShGZWF0dXJlOjpH
ZW5lcmF0ZVNQSVJWVGhyb3VnaEdsc2xhbmcpKTsKIAogR1RFU1RfQUxMT1dfVU5JTlNUQU5USUFU
RURfUEFSQU1FVEVSSVpFRF9URVNUKEdMU0xUZXN0X0VTMzEpOwotQU5HTEVfSU5TVEFOVElBVEVf
VEVTVF9FUzMxX0FORChHTFNMVGVzdF9FUzMxLCBXaXRoR2xzbGFuZyhFUzMxX1ZVTEtBTigpKSk7
CitBTkdMRV9JTlNUQU5USUFURV9URVNUX0VTMzFfQU5EKEdMU0xUZXN0X0VTMzEsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEVTMzFfVlVMS0FOKCkuZW5hYmxlKEZlYXR1cmU6Okdl
bmVyYXRlU1BJUlZUaHJvdWdoR2xzbGFuZykpOwogCiBHVEVTVF9BTExPV19VTklOU1RBTlRJQVRF
RF9QQVJBTUVURVJJWkVEX1RFU1QoR0xTTFRlc3RfRVMzMV9Jbml0U2hhZGVyVmFyaWFibGVzKTsK
LUFOR0xFX0lOU1RBTlRJQVRFX1RFU1QoR0xTTFRlc3RfRVMzMV9Jbml0U2hhZGVyVmFyaWFibGVz
LCBXaXRoSW5pdFNoYWRlclZhcmlhYmxlcyhFUzMxX1ZVTEtBTigpKSk7CitBTkdMRV9JTlNUQU5U
SUFURV9URVNUKEdMU0xUZXN0X0VTMzFfSW5pdFNoYWRlclZhcmlhYmxlcywKKyAgICAgICAgICAg
ICAgICAgICAgICAgRVMzMV9WVUxLQU4oKS5lbmFibGUoRmVhdHVyZTo6Rm9yY2VJbml0U2hhZGVy
VmFyaWFibGVzKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVz
dHMvZ2xfdGVzdHMvR2VvbWV0cnlTaGFkZXJUZXN0LmNwcCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FO
R0xFL3NyYy90ZXN0cy9nbF90ZXN0cy9HZW9tZXRyeVNoYWRlclRlc3QuY3BwCmluZGV4IDQxZWJm
YmU1YmI3MGJmYTFkODU1Y2U4NzgyNGVkYzgzYmZmZDJhZGUuLmRmOTMzM2E5OTMxMDFlZTE0ZjZj
ZjlhNjYwMTNhOTMzNzFjNmZiYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xF
L3NyYy90ZXN0cy9nbF90ZXN0cy9HZW9tZXRyeVNoYWRlclRlc3QuY3BwCisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9nbF90ZXN0cy9HZW9tZXRyeVNoYWRlclRlc3QuY3Bw
CkBAIC0xNDQsNiArMTQ0LDQyIEBAIHZvaWQgbWFpbigpCiAgICAgRVhQRUNUX0dMX05PX0VSUk9S
KCk7CiB9CiAKKy8vIFZlcmlmeSB0aGF0IEdlb21ldHJ5IFNoYWRlciBjYW4gYmUgY29tcGlsZWQg
d2hlbiBnZW9tZXRyeSBzaGFkZXIgYXJyYXkgaW5wdXQgc2l6ZQorLy8gaXMgc2V0IGFmdGVyIHNo
YWRlciBpbnB1dCB2YXJpYWJsZXMuCisvLyBodHRwOi8vYW5nbGVidWcuY29tLzcxMjUgR0ZYQmVu
Y2ggQ2FyIENoYXNlIHVzZXMgdGhpcyBwYXR0ZXJuCitURVNUX1AoR2VvbWV0cnlTaGFkZXJUZXN0
LCBEZWZlcnJlZFNldE9mQXJyYXlJbnB1dFNpemUpCit7CisgICAgQU5HTEVfU0tJUF9URVNUX0lG
KCFJc0dMRXh0ZW5zaW9uRW5hYmxlZCgiR0xfRVhUX2dlb21ldHJ5X3NoYWRlciIpKTsKKyAgICAv
LyAibGF5b3V0IChpbnZvY2F0aW9ucyA9IDMsIHRyaWFuZ2xlcykgaW47IiBzaG91bGQgYmUgZGVj
bGFyZWQgYmVmb3JlICJpbiB2ZWM0IHRleGNvb3JkIFtdOyIsCisgICAgLy8gYnV0IGhlcmUgaXQg
aXMgZGVjbGFyZWQgbGF0ZXIuCisgICAgY29uc3RleHByIGNoYXIga0dTW10gID0gUiIoI3ZlcnNp
b24gMzEwIGVzCisjZXh0ZW5zaW9uIEdMX0VYVF9nZW9tZXRyeV9zaGFkZXIgOiByZXF1aXJlCitp
biB2ZWM0IHRleGNvb3JkW107CitvdXQgdmVjNCBvX3RleGNvb3JkOworbGF5b3V0IChpbnZvY2F0
aW9ucyA9IDMsIHRyaWFuZ2xlc19hZGphY2VuY3kpIGluOworbGF5b3V0ICh0cmlhbmdsZV9zdHJp
cCwgbWF4X3ZlcnRpY2VzID0gMykgb3V0Owordm9pZCBtYWluKCkKK3sKKyAgICBpbnQgbjsKKyAg
ICBmb3IgKG4gPSAwOyBuIDwgZ2xfaW4ubGVuZ3RoKCk7IG4rKykKKyAgICB7CisgICAgICAgIGds
X1Bvc2l0aW9uID0gZ2xfaW5bbl0uZ2xfUG9zaXRpb247CisgICAgICAgIGdsX0xheWVyICAgPSBn
bF9JbnZvY2F0aW9uSUQ7CisgICAgICAgIG9fdGV4Y29vcmQgPSB0ZXhjb29yZFtuXTsKKyAgICAg
ICAgRW1pdFZlcnRleCgpOworICAgIH0KKyAgICBFbmRQcmltaXRpdmUoKTsKK30pIjsKKyAgICBH
THVpbnQgZ2VvbWV0cnlTaGFkZXIgPSBDb21waWxlU2hhZGVyKEdMX0dFT01FVFJZX1NIQURFUl9F
WFQsIGtHUyk7CisgICAgRVhQRUNUX05FKDB1LCBnZW9tZXRyeVNoYWRlcik7CisgICAgR0x1aW50
IHByb2dyYW1JRCA9IGdsQ3JlYXRlUHJvZ3JhbSgpOworICAgIGdsQXR0YWNoU2hhZGVyKHByb2dy
YW1JRCwgZ2VvbWV0cnlTaGFkZXIpOworICAgIGdsRGV0YWNoU2hhZGVyKHByb2dyYW1JRCwgZ2Vv
bWV0cnlTaGFkZXIpOworICAgIGdsRGVsZXRlU2hhZGVyKGdlb21ldHJ5U2hhZGVyKTsKKyAgICBn
bERlbGV0ZVByb2dyYW0ocHJvZ3JhbUlEKTsKKyAgICBFWFBFQ1RfR0xfTk9fRVJST1IoKTsKK30K
KwogLy8gVmVyaWZ5IHRoYXQgYWxsIHRoZSBpbXBsZW1lbnRhdGlvbiBkZXBlbmRlbnQgZ2VvbWV0
cnkgc2hhZGVyIHJlbGF0ZWQgcmVzb3VyY2UgbGltaXRzIG1lZXQgdGhlCiAvLyByZXF1aXJlbWVu
dCBvZiBHTF9FWFRfZ2VvbWV0cnlfc2hhZGVyIFNQRUMuCiBURVNUX1AoR2VvbWV0cnlTaGFkZXJU
ZXN0LCBHZW9tZXRyeVNoYWRlckltcGxlbWVudGF0aW9uRGVwZW5kZW50TGltaXRzKQpAQCAtMTg1
Miw5ICsxODg4LDkgQEAgQU5HTEVfSU5TVEFOVElBVEVfVEVTVF9FUzMoR2VvbWV0cnlTaGFkZXJU
ZXN0RVMzKTsKIAogR1RFU1RfQUxMT1dfVU5JTlNUQU5USUFURURfUEFSQU1FVEVSSVpFRF9URVNU
KEdlb21ldHJ5U2hhZGVyVGVzdCk7CiBBTkdMRV9JTlNUQU5USUFURV9URVNUX0VTMzFfQU5EKEdl
b21ldHJ5U2hhZGVyVGVzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2l0aEVt
dWxhdGVkUHJlcm90YXRpb24oRVMzMV9WVUxLQU4oKSwgOTApLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBXaXRoRW11bGF0ZWRQcmVyb3RhdGlvbihFUzMxX1ZVTEtBTigpLCAxODAp
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXaXRoRW11bGF0ZWRQcmVyb3RhdGlv
bihFUzMxX1ZVTEtBTigpLCAyNzApKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
RVMzMV9WVUxLQU4oKS5lbmFibGUoRmVhdHVyZTo6RW11bGF0ZWRQcmVyb3RhdGlvbjkwKSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRVMzMV9WVUxLQU4oKS5lbmFibGUoRmVhdHVy
ZTo6RW11bGF0ZWRQcmVyb3RhdGlvbjE4MCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEVTMzFfVlVMS0FOKCkuZW5hYmxlKEZlYXR1cmU6OkVtdWxhdGVkUHJlcm90YXRpb24yNzAp
KTsKIAogR1RFU1RfQUxMT1dfVU5JTlNUQU5USUFURURfUEFSQU1FVEVSSVpFRF9URVNUKEdlb21l
dHJ5U2hhZGVyVGVzdEVTMzIpOwogQU5HTEVfSU5TVEFOVElBVEVfVEVTVF9FUzMyKEdlb21ldHJ5
U2hhZGVyVGVzdEVTMzIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3Jj
L3Rlc3RzL2dsX3Rlc3RzL0luY29tcGxldGVUZXh0dXJlVGVzdC5jcHAgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9BTkdMRS9zcmMvdGVzdHMvZ2xfdGVzdHMvSW5jb21wbGV0ZVRleHR1cmVUZXN0LmNwcApp
bmRleCAwYzg3OTBiZTA2YjYzODY0ZGNjNDI5NjhmNTVmYzExZjcxZTlhODk3Li5lMTlkZTMyOTUy
ZjJkMjU3NmNlMThiN2QzODQzNzU1NTgxNDAxZTE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9BTkdMRS9zcmMvdGVzdHMvZ2xfdGVzdHMvSW5jb21wbGV0ZVRleHR1cmVUZXN0LmNwcAor
KysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvZ2xfdGVzdHMvSW5jb21wbGV0
ZVRleHR1cmVUZXN0LmNwcApAQCAtMTkwLDggKzE5MCw2IEBAIFRFU1RfUChJbmNvbXBsZXRlVGV4
dHVyZVRlc3QsIFVwZGF0ZVRleHR1cmUpCiAvLyBUZXN0cyB0aGF0IGluY29tcGxldGUgdGV4dHVy
ZXMgZG9uJ3QgZ2V0IGluaXRpYWxpemVkIHdpdGggdGhlIHVucGFjayBidWZmZXIgY29udGVudHMu
CiBURVNUX1AoSW5jb21wbGV0ZVRleHR1cmVUZXN0RVMzLCBVbnBhY2tCdWZmZXJCb3VuZCkKIHsK
LSAgICAvLyBodHRwOi8vYW5nbGVidWcuY29tLzQwOTIKLSAgICBBTkdMRV9TS0lQX1RFU1RfSUYo
SXNWdWxrYW4oKSk7CiAgICAgc3RkOjp2ZWN0b3I8R0xDb2xvcj4gcmVkKDE2LCBHTENvbG9yOjpy
ZWQpOwogCiAgICAgR0xCdWZmZXIgdW5wYWNrQnVmZmVyOwpAQCAtMjA3LDggKzIwNSw2IEBAIFRF
U1RfUChJbmNvbXBsZXRlVGV4dHVyZVRlc3RFUzMsIFVucGFja0J1ZmZlckJvdW5kKQogLy8gVGVz
dHMgdGhhdCB0aGUgaW5jb21wbGV0ZSBtdWx0aXNhbXBsZSB0ZXh0dXJlIGhhcyB0aGUgY29ycmVj
dCBhbHBoYSB2YWx1ZS4KIFRFU1RfUChJbmNvbXBsZXRlVGV4dHVyZVRlc3RFUzMxLCBNdWx0aXNh
bXBsZVRleHR1cmUpCiB7Ci0gICAgLy8gaHR0cDovL2FuZ2xlYnVnLmNvbS80MDkyCi0gICAgQU5H
TEVfU0tJUF9URVNUX0lGKElzVnVsa2FuKCkpOwogICAgIGNvbnN0ZXhwciBjaGFyIGtWU1tdID0g
UiIoI3ZlcnNpb24gMzEwIGVzCiBpbiB2ZWMyIHBvc2l0aW9uOwogb3V0IHZlYzIgdGV4Q29vcmQ7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvZ2xfdGVzdHMv
SW5kZXhlZFBvaW50c1Rlc3QuY3BwIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3Rz
L2dsX3Rlc3RzL0luZGV4ZWRQb2ludHNUZXN0LmNwcAppbmRleCAxYjFmYzg2NGU4ODc4NjBhMWMw
MWY5YzIyOWQ1ZmM2MzI0NDM0N2EyLi4zYTllNTMwZWQ0MmY1MWZkYzU0N2QzYWY2YjhiOWYyN2Q0
MTkzOTIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvZ2xf
dGVzdHMvSW5kZXhlZFBvaW50c1Rlc3QuY3BwCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xF
L3NyYy90ZXN0cy9nbF90ZXN0cy9JbmRleGVkUG9pbnRzVGVzdC5jcHAKQEAgLTE5Miw2MSArMTky
LDQxIEBAIHR5cGVkZWYgSW5kZXhlZFBvaW50c1Rlc3Q8R0x1Ynl0ZSwgR0xfVU5TSUdORURfQllU
RT4gSW5kZXhlZFBvaW50c1Rlc3RVQnl0ZTsKIAogVEVTVF9QKEluZGV4ZWRQb2ludHNUZXN0VUJ5
dGUsIFVuc2lnbmVkQnl0ZU9mZnNldDApCiB7Ci0gICAgLy8gaHR0cDovL2FuZ2xlYnVnLmNvbS80
MDkyCi0gICAgQU5HTEVfU0tJUF9URVNUX0lGKGlzU3dpZnRzaGFkZXIoKSk7CiAgICAgcnVuVGVz
dCgwKTsKIH0KIAogVEVTVF9QKEluZGV4ZWRQb2ludHNUZXN0VUJ5dGUsIFVuc2lnbmVkQnl0ZU9m
ZnNldDEpCiB7Ci0gICAgLy8gaHR0cDovL2FuZ2xlYnVnLmNvbS80MDkyCi0gICAgQU5HTEVfU0tJ
UF9URVNUX0lGKGlzU3dpZnRzaGFkZXIoKSk7CiAgICAgcnVuVGVzdCgxKTsKIH0KIAogVEVTVF9Q
KEluZGV4ZWRQb2ludHNUZXN0VUJ5dGUsIFVuc2lnbmVkQnl0ZU9mZnNldDIpCiB7Ci0gICAgLy8g
aHR0cDovL2FuZ2xlYnVnLmNvbS80MDkyCi0gICAgQU5HTEVfU0tJUF9URVNUX0lGKGlzU3dpZnRz
aGFkZXIoKSk7CiAgICAgcnVuVGVzdCgyKTsKIH0KIAogVEVTVF9QKEluZGV4ZWRQb2ludHNUZXN0
VUJ5dGUsIFVuc2lnbmVkQnl0ZU9mZnNldDMpCiB7Ci0gICAgLy8gaHR0cDovL2FuZ2xlYnVnLmNv
bS80MDkyCi0gICAgQU5HTEVfU0tJUF9URVNUX0lGKGlzU3dpZnRzaGFkZXIoKSk7CiAgICAgcnVu
VGVzdCgzKTsKIH0KIAogVEVTVF9QKEluZGV4ZWRQb2ludHNUZXN0VUJ5dGUsIFZlcnRleFdpdGhD
b2xvclVuc2lnbmVkQnl0ZU9mZnNldDApCiB7Ci0gICAgLy8gaHR0cDovL2FuZ2xlYnVnLmNvbS80
MDkyCi0gICAgQU5HTEVfU0tJUF9URVNUX0lGKGlzU3dpZnRzaGFkZXIoKSk7Ci0KICAgICBydW5U
ZXN0KDAsIHRydWUpOwogfQogCiBURVNUX1AoSW5kZXhlZFBvaW50c1Rlc3RVQnl0ZSwgVmVydGV4
V2l0aENvbG9yVW5zaWduZWRCeXRlT2Zmc2V0MSkKIHsKLSAgICAvLyBodHRwOi8vYW5nbGVidWcu
Y29tLzQwOTIKLSAgICBBTkdMRV9TS0lQX1RFU1RfSUYoaXNTd2lmdHNoYWRlcigpKTsKLQogICAg
IHJ1blRlc3QoMSwgdHJ1ZSk7CiB9CiAKIFRFU1RfUChJbmRleGVkUG9pbnRzVGVzdFVCeXRlLCBW
ZXJ0ZXhXaXRoQ29sb3JVbnNpZ25lZEJ5dGVPZmZzZXQyKQogewotICAgIC8vIGh0dHA6Ly9hbmds
ZWJ1Zy5jb20vNDA5MgotICAgIEFOR0xFX1NLSVBfVEVTVF9JRihpc1N3aWZ0c2hhZGVyKCkpOwot
CiAgICAgcnVuVGVzdCgyLCB0cnVlKTsKIH0KIAogVEVTVF9QKEluZGV4ZWRQb2ludHNUZXN0VUJ5
dGUsIFZlcnRleFdpdGhDb2xvclVuc2lnbmVkQnl0ZU9mZnNldDMpCiB7Ci0gICAgLy8gaHR0cDov
L2FuZ2xlYnVnLmNvbS80MDkyCi0gICAgQU5HTEVfU0tJUF9URVNUX0lGKGlzU3dpZnRzaGFkZXIo
KSk7Ci0KICAgICBydW5UZXN0KDMsIHRydWUpOwogfQogCkBAIC0yNTQsNjkgKzIzNCw0NiBAQCB0
eXBlZGVmIEluZGV4ZWRQb2ludHNUZXN0PEdMdXNob3J0LCBHTF9VTlNJR05FRF9TSE9SVD4gSW5k
ZXhlZFBvaW50c1Rlc3RVU2hvcnQ7CiAKIFRFU1RfUChJbmRleGVkUG9pbnRzVGVzdFVTaG9ydCwg
VW5zaWduZWRTaG9ydE9mZnNldDApCiB7Ci0gICAgLy8gaHR0cDovL2FuZ2xlYnVnLmNvbS80MDky
Ci0gICAgQU5HTEVfU0tJUF9URVNUX0lGKGlzU3dpZnRzaGFkZXIoKSk7CiAgICAgcnVuVGVzdCgw
KTsKIH0KIAogVEVTVF9QKEluZGV4ZWRQb2ludHNUZXN0VVNob3J0LCBVbnNpZ25lZFNob3J0T2Zm
c2V0MSkKIHsKLSAgICAvLyBodHRwOi8vYW5nbGVidWcuY29tLzQwOTIKLSAgICBBTkdMRV9TS0lQ
X1RFU1RfSUYoaXNTd2lmdHNoYWRlcigpKTsKICAgICBydW5UZXN0KDEpOwogfQogCiBURVNUX1Ao
SW5kZXhlZFBvaW50c1Rlc3RVU2hvcnQsIFVuc2lnbmVkU2hvcnRPZmZzZXQyKQogewotICAgIC8v
IGh0dHA6Ly9hbmdsZWJ1Zy5jb20vNDA5MgotICAgIEFOR0xFX1NLSVBfVEVTVF9JRihpc1N3aWZ0
c2hhZGVyKCkpOwogICAgIHJ1blRlc3QoMik7CiB9CiAKIFRFU1RfUChJbmRleGVkUG9pbnRzVGVz
dFVTaG9ydCwgVW5zaWduZWRTaG9ydE9mZnNldDMpCiB7Ci0gICAgLy8gaHR0cDovL2FuZ2xlYnVn
LmNvbS80MDkyCi0gICAgQU5HTEVfU0tJUF9URVNUX0lGKGlzU3dpZnRzaGFkZXIoKSk7CiAgICAg
cnVuVGVzdCgzKTsKIH0KIAogVEVTVF9QKEluZGV4ZWRQb2ludHNUZXN0VVNob3J0LCBWZXJ0ZXhX
aXRoQ29sb3JVbnNpZ25lZFNob3J0T2Zmc2V0MCkKIHsKLSAgICAvLyBodHRwOi8vYW5nbGVidWcu
Y29tLzQwOTIKLSAgICBBTkdMRV9TS0lQX1RFU1RfSUYoaXNTd2lmdHNoYWRlcigpKTsKLQogICAg
IHJ1blRlc3QoMCwgdHJ1ZSk7CiB9CiAKIFRFU1RfUChJbmRleGVkUG9pbnRzVGVzdFVTaG9ydCwg
VmVydGV4V2l0aENvbG9yVW5zaWduZWRTaG9ydE9mZnNldDEpCiB7Ci0gICAgLy8gaHR0cDovL2Fu
Z2xlYnVnLmNvbS80MDkyCi0gICAgQU5HTEVfU0tJUF9URVNUX0lGKGlzU3dpZnRzaGFkZXIoKSk7
Ci0KICAgICBydW5UZXN0KDEsIHRydWUpOwogfQogCiBURVNUX1AoSW5kZXhlZFBvaW50c1Rlc3RV
U2hvcnQsIFZlcnRleFdpdGhDb2xvclVuc2lnbmVkU2hvcnRPZmZzZXQyKQogewotICAgIC8vIGh0
dHA6Ly9hbmdsZWJ1Zy5jb20vNDA5MgotICAgIEFOR0xFX1NLSVBfVEVTVF9JRihpc1N3aWZ0c2hh
ZGVyKCkpOwotCiAgICAgcnVuVGVzdCgyLCB0cnVlKTsKIH0KIAogVEVTVF9QKEluZGV4ZWRQb2lu
dHNUZXN0VVNob3J0LCBWZXJ0ZXhXaXRoQ29sb3JVbnNpZ25lZFNob3J0T2Zmc2V0MykKIHsKLSAg
ICAvLyBodHRwOi8vYW5nbGVidWcuY29tLzQwOTIKLSAgICBBTkdMRV9TS0lQX1RFU1RfSUYoaXNT
d2lmdHNoYWRlcigpKTsKLQogICAgIHJ1blRlc3QoMywgdHJ1ZSk7CiB9CiAKIFRFU1RfUChJbmRl
eGVkUG9pbnRzVGVzdFVTaG9ydCwgVmVydGV4V2l0aENvbG9yVW5zaWduZWRTaG9ydE9mZnNldENo
YW5naW5nSW5kaWNlcykKIHsKLSAgICAvLyBodHRwOi8vYW5nbGVidWcuY29tLzQwOTIKLSAgICBB
TkdMRV9TS0lQX1RFU1RfSUYoaXNTd2lmdHNoYWRlcigpKTsKLQogICAgIC8vIFRPRE8oZmpoZW5p
Z21hbik6IEZpZ3VyZSBvdXQgd2h5IHRoaXMgZmFpbHMgb24gT3pvbmUgSW50ZWwuCiAgICAgQU5H
TEVfU0tJUF9URVNUX0lGKElzT3pvbmUoKSAmJiBJc0ludGVsKCkgJiYgSXNPcGVuR0xFUygpKTsK
IApAQCAtMzM0LDggKzI5MSw2IEBAIFRFU1RfUChJbmRleGVkUG9pbnRzVGVzdFVJbnQsIFVuc2ln
bmVkSW50T2Zmc2V0MCkKICAgICB7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgLy8gaHR0
cDovL2FuZ2xlYnVnLmNvbS80MDkyCi0gICAgQU5HTEVfU0tJUF9URVNUX0lGKGlzU3dpZnRzaGFk
ZXIoKSk7CiAgICAgcnVuVGVzdCgwKTsKIH0KIApAQCAtMzQ1LDggKzMwMCw2IEBAIFRFU1RfUChJ
bmRleGVkUG9pbnRzVGVzdFVJbnQsIFVuc2lnbmVkSW50T2Zmc2V0MSkKICAgICB7CiAgICAgICAg
IHJldHVybjsKICAgICB9Ci0gICAgLy8gaHR0cDovL2FuZ2xlYnVnLmNvbS80MDkyCi0gICAgQU5H
TEVfU0tJUF9URVNUX0lGKGlzU3dpZnRzaGFkZXIoKSk7CiAgICAgcnVuVGVzdCgxKTsKIH0KIApA
QCAtMzU2LDggKzMwOSw2IEBAIFRFU1RfUChJbmRleGVkUG9pbnRzVGVzdFVJbnQsIFVuc2lnbmVk
SW50T2Zmc2V0MikKICAgICB7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgLy8gaHR0cDov
L2FuZ2xlYnVnLmNvbS80MDkyCi0gICAgQU5HTEVfU0tJUF9URVNUX0lGKGlzU3dpZnRzaGFkZXIo
KSk7CiAgICAgcnVuVGVzdCgyKTsKIH0KIApAQCAtMzY3LDggKzMxOCw2IEBAIFRFU1RfUChJbmRl
eGVkUG9pbnRzVGVzdFVJbnQsIFVuc2lnbmVkSW50T2Zmc2V0MykKICAgICB7CiAgICAgICAgIHJl
dHVybjsKICAgICB9Ci0gICAgLy8gaHR0cDovL2FuZ2xlYnVnLmNvbS80MDkyCi0gICAgQU5HTEVf
U0tJUF9URVNUX0lGKGlzU3dpZnRzaGFkZXIoKSk7CiAgICAgcnVuVGVzdCgzKTsKIH0KIApAQCAt
Mzc4LDggKzMyNyw2IEBAIFRFU1RfUChJbmRleGVkUG9pbnRzVGVzdFVJbnQsIFZlcnRleFdpdGhD
b2xvclVuc2lnbmVkSW50T2Zmc2V0MCkKICAgICB7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0g
ICAgLy8gaHR0cDovL2FuZ2xlYnVnLmNvbS80MDkyCi0gICAgQU5HTEVfU0tJUF9URVNUX0lGKGlz
U3dpZnRzaGFkZXIoKSk7CiAgICAgcnVuVGVzdCgwLCB0cnVlKTsKIH0KIApAQCAtMzg5LDggKzMz
Niw2IEBAIFRFU1RfUChJbmRleGVkUG9pbnRzVGVzdFVJbnQsIFZlcnRleFdpdGhDb2xvclVuc2ln
bmVkSW50T2Zmc2V0MSkKICAgICB7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgLy8gaHR0
cDovL2FuZ2xlYnVnLmNvbS80MDkyCi0gICAgQU5HTEVfU0tJUF9URVNUX0lGKGlzU3dpZnRzaGFk
ZXIoKSk7CiAgICAgcnVuVGVzdCgxLCB0cnVlKTsKIH0KIApAQCAtNDAwLDggKzM0NSw2IEBAIFRF
U1RfUChJbmRleGVkUG9pbnRzVGVzdFVJbnQsIFZlcnRleFdpdGhDb2xvclVuc2lnbmVkSW50T2Zm
c2V0MikKICAgICB7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgLy8gaHR0cDovL2FuZ2xl
YnVnLmNvbS80MDkyCi0gICAgQU5HTEVfU0tJUF9URVNUX0lGKGlzU3dpZnRzaGFkZXIoKSk7CiAg
ICAgcnVuVGVzdCgyLCB0cnVlKTsKIH0KIApAQCAtNDExLDggKzM1NCw2IEBAIFRFU1RfUChJbmRl
eGVkUG9pbnRzVGVzdFVJbnQsIFZlcnRleFdpdGhDb2xvclVuc2lnbmVkSW50T2Zmc2V0MykKICAg
ICB7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgLy8gaHR0cDovL2FuZ2xlYnVnLmNvbS80
MDkyCi0gICAgQU5HTEVfU0tJUF9URVNUX0lGKGlzU3dpZnRzaGFkZXIoKSk7CiAgICAgcnVuVGVz
dCgzLCB0cnVlKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3Jj
L3Rlc3RzL2dsX3Rlc3RzL0luc3RhbmNpbmdUZXN0LmNwcCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FO
R0xFL3NyYy90ZXN0cy9nbF90ZXN0cy9JbnN0YW5jaW5nVGVzdC5jcHAKaW5kZXggYTQzNjUxN2I2
YzdlYzkyM2ZjMDBkMzA4YzA3YTY4ODhmZjU0NTAzZC4uZGE3MjJjODE2OGU4ZWNlYzJjZjUwZDhj
MzRiZTJiZTQ3ODU1MTVhOCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3Jj
L3Rlc3RzL2dsX3Rlc3RzL0luc3RhbmNpbmdUZXN0LmNwcAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9BTkdMRS9zcmMvdGVzdHMvZ2xfdGVzdHMvSW5zdGFuY2luZ1Rlc3QuY3BwCkBAIC02OTYsOCAr
Njk2LDYgQEAgVEVTVF9QKEluc3RhbmNpbmdUZXN0RVMzMSwgVXBkYXRlQXR0cmliQmluZGluZ0J5
VmVydGV4QXR0cmliRGl2aXNvcikKIC8vIFZlcmlmeSB0aGF0IGEgbGFyZ2UgZGl2aXNvciB0aGF0
IGFsc28gY2hhbmdlcyBkb2Vzbid0IGNhdXNlIGlzc3VlcyBhbmQgcmVuZGVycyBjb3JyZWN0bHku
CiBURVNUX1AoSW5zdGFuY2luZ1Rlc3RFUzMsIExhcmdlRGl2aXNvcikKIHsKLSAgICAvLyBodHRw
Oi8vYW5nbGVidWcuY29tLzQwOTIKLSAgICBBTkdMRV9TS0lQX1RFU1RfSUYoaXNTd2lmdHNoYWRl
cigpKTsKICAgICBjb25zdGV4cHIgY2hhciBrVlNbXSA9IFIiKCN2ZXJzaW9uIDMwMCBlcwogbGF5
b3V0KGxvY2F0aW9uID0gMCkgaW4gdmVjNCBhX3Bvc2l0aW9uOwogbGF5b3V0KGxvY2F0aW9uID0g
MSkgaW4gdmVjNCBhX2NvbG9yOwpAQCAtNzk3LDggKzc5NSw2IEBAIHZvaWQgbWFpbigpCiAvLyBp
bmNvcnJlY3RseSBjbGFtcGVkIGRvd24gdG8gdGhlIG1heGltdW0gc2lnbmVkIGludGVnZXIuCiBU
RVNUX1AoSW5zdGFuY2luZ1Rlc3RFUzMsIExhcmdlc3REaXZpc29yKQogewotICAgIC8vIGh0dHA6
Ly9hbmdsZWJ1Zy5jb20vNDA5MgotICAgIEFOR0xFX1NLSVBfVEVTVF9JRihpc1N3aWZ0c2hhZGVy
KCkpOwogICAgIGNvbnN0ZXhwciBHTHVpbnQga0xhcmdlRGl2aXNvciA9IHN0ZDo6bnVtZXJpY19s
aW1pdHM8R0x1aW50Pjo6bWF4KCk7CiAgICAgZ2xWZXJ0ZXhBdHRyaWJEaXZpc29yKDAsIGtMYXJn
ZURpdmlzb3IpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVz
dHMvZ2xfdGVzdHMvTGluZUxvb3BUZXN0LmNwcCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3Ny
Yy90ZXN0cy9nbF90ZXN0cy9MaW5lTG9vcFRlc3QuY3BwCmluZGV4IDQ2YzAwNDQ1MThkODJmNWVl
NDc4ZWQxODkxN2FjYTAzOTkyYjQ1YmEuLjgwNGZlMDQ3ZTE3NjhhOWIzMWQ0ZThmNzMyODJmNmVm
NGI2OGVlMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9n
bF90ZXN0cy9MaW5lTG9vcFRlc3QuY3BwCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3Ny
Yy90ZXN0cy9nbF90ZXN0cy9MaW5lTG9vcFRlc3QuY3BwCkBAIC02NjEsMTAgKzY2MSw4IEBAIEFO
R0xFX0lOU1RBTlRJQVRFX1RFU1RfRVMzKExpbmVMb29wVGVzdEVTMyk7CiBHVEVTVF9BTExPV19V
TklOU1RBTlRJQVRFRF9QQVJBTUVURVJJWkVEX1RFU1QoTGluZUxvb3BQcmltaXRpdmVSZXN0YXJ0
VGVzdCk7CiBBTkdMRV9JTlNUQU5USUFURV9URVNUX0VTM19BTkQoCiAgICAgTGluZUxvb3BQcmlt
aXRpdmVSZXN0YXJ0VGVzdCwKLSAgICBXaXRoTWV0YWxGb3JjZWRCdWZmZXJHUFVTdG9yYWdlKEVT
M19NRVRBTCgpKSwKLSAgICBXaXRoTWV0YWxNZW1vcnlCYXJyaWVyQW5kQ2hlYXBSZW5kZXJQYXNz
KEVTM19NRVRBTCgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgLyogaGFzQmFycmllciAqLyBmYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIC8qIGNoZWFwUmVuZGVyUGFzcyAqLyBmYWxzZSkpOworICAgIEVTM19N
RVRBTCgpLmVuYWJsZShGZWF0dXJlOjpGb3JjZUJ1ZmZlckdQVVN0b3JhZ2UpLAorICAgIEVTM19N
RVRBTCgpLmRpc2FibGUoRmVhdHVyZTo6SGFzRXhwbGljaXRNZW1CYXJyaWVyKS5kaXNhYmxlKEZl
YXR1cmU6Okhhc0NoZWFwUmVuZGVyUGFzcykpOwogCiBHVEVTVF9BTExPV19VTklOU1RBTlRJQVRF
RF9QQVJBTUVURVJJWkVEX1RFU1QoTGluZUxvb3BJbmRpcmVjdFRlc3QpOwogQU5HTEVfSU5TVEFO
VElBVEVfVEVTVF9FUzMxKExpbmVMb29wSW5kaXJlY3RUZXN0KTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9nbF90ZXN0cy9NaXBtYXBUZXN0LmNwcCBiL1Nv
dXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9nbF90ZXN0cy9NaXBtYXBUZXN0LmNwcApp
bmRleCAzNjA4NDJkMzcwNDVhZTdmNmEzYWI2ODk3OGE1MWUwY2RmOTFjMzkwLi5lYjY5Mjk5Zjdl
NTAyMmM2MmE5OWU3NGE0ODJjMDk4YmY0MjUzMzMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9BTkdMRS9zcmMvdGVzdHMvZ2xfdGVzdHMvTWlwbWFwVGVzdC5jcHAKKysrIGIvU291cmNl
L1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3RzL2dsX3Rlc3RzL01pcG1hcFRlc3QuY3BwCkBAIC0y
MTM0LDcgKzIxMzQsNyBAQCBURVNUX1AoTWlwbWFwVGVzdEVTMywgR2VuZXJhdGVNaXBtYXBXaXRo
UmVkZWZpbmVMZXZlbEFuZFRleHR1cmUpCiB9CiAKIC8vIFRlc3QgdGhhdCBtYW51YWxseSBnZW5l
cmF0aW5nIG1pcG1hcHMgdXNpbmcgZHJhdyBjYWxscyBpcyBmdW5jdGlvbmFsCi1URVNUX1AoTWlw
bWFwVGVzdEVTMzEsIFVwZGF0ZUJhc2VMZXZlbCkKK1RFU1RfUChNaXBtYXBUZXN0RVMzMSwgR2Vu
ZXJhdGVNaXBtYXBXaXRoRHJhdykKIHsKICAgICBjb25zdGV4cHIgY2hhciBrVlNbXSA9IFIiKCN2
ZXJzaW9uIDMxMCBlcwogcHJlY2lzaW9uIGhpZ2hwIGZsb2F0OwpAQCAtMjI2NywxOCArMjI2Nywx
MzEgQEAgdm9pZCBtYWluKCkKICAgICB9CiB9CiAKKy8vIFRlc3QgdGhhdCBtYW51YWxseSBnZW5l
cmF0aW5nIGxvd2VyIG1pcG1hcHMgdXNpbmcgZHJhdyBjYWxscyBpcyBmdW5jdGlvbmFsCitURVNU
X1AoTWlwbWFwVGVzdEVTMzEsIEdlbmVyYXRlTG93ZXJNaXBzV2l0aERyYXcpCit7CisgICAgQU5H
TEVfR0xfUFJPR1JBTShwcm9ncmFtLCBlc3NsMV9zaGFkZXJzOjp2czo6VGV4dHVyZTJEKCksIGVz
c2wxX3NoYWRlcnM6OmZzOjpUZXh0dXJlMkQoKSk7CisgICAgZ2xVc2VQcm9ncmFtKHByb2dyYW0p
OworICAgIGdsVW5pZm9ybTFpKGdsR2V0VW5pZm9ybUxvY2F0aW9uKHByb2dyYW0sIGVzc2wxX3No
YWRlcnM6OlRleHR1cmUyRFVuaWZvcm0oKSksIDApOworCisgICAgR0xUZXh0dXJlIHRleDsKKyAg
ICBnbEJpbmRUZXh0dXJlKEdMX1RFWFRVUkVfMkQsIHRleCk7CisgICAgZ2xUZXhTdG9yYWdlMkQo
R0xfVEVYVFVSRV8yRCwgNCwgR0xfUkdCQTgsIDgsIDgpOworICAgIEVYUEVDVF9HTF9OT19FUlJP
UigpOworCisgICAgZ2xBY3RpdmVUZXh0dXJlKEdMX1RFWFRVUkUwKTsKKyAgICBnbFRleFBhcmFt
ZXRlcmkoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9NSU5fRklMVEVSLCBHTF9MSU5FQVIpOwor
ICAgIGdsVGV4UGFyYW1ldGVyaShHTF9URVhUVVJFXzJELCBHTF9URVhUVVJFX01BR19GSUxURVIs
IEdMX0xJTkVBUik7CisgICAgZ2xUZXhQYXJhbWV0ZXJpKEdMX1RFWFRVUkVfMkQsIEdMX1RFWFRV
UkVfV1JBUF9TLCBHTF9DTEFNUF9UT19FREdFKTsKKyAgICBnbFRleFBhcmFtZXRlcmkoR0xfVEVY
VFVSRV8yRCwgR0xfVEVYVFVSRV9XUkFQX1QsIEdMX0NMQU1QX1RPX0VER0UpOworCisgICAgY29u
c3Qgc3RkOjphcnJheTxHTENvbG9yLCA0PiBrTWlwMkNvbG9yID0geworICAgICAgICBHTENvbG9y
OjpyZWQsCisgICAgICAgIEdMQ29sb3I6OmdyZWVuLAorICAgICAgICBHTENvbG9yOjpibHVlLAor
ICAgICAgICBHTENvbG9yOjp3aGl0ZSwKKyAgICB9OworCisgICAgR0xGcmFtZWJ1ZmZlciBmYjAs
IGZiMSwgZmIyOworCisgICAgZ2xCaW5kRnJhbWVidWZmZXIoR0xfRlJBTUVCVUZGRVIsIGZiMCk7
CisgICAgZ2xGcmFtZWJ1ZmZlclRleHR1cmUyRChHTF9GUkFNRUJVRkZFUiwgR0xfQ09MT1JfQVRU
QUNITUVOVDAsIEdMX1RFWFRVUkVfMkQsIHRleCwgMCk7CisgICAgRVhQRUNUX0dMX05PX0VSUk9S
KCk7CisgICAgZ2xCaW5kRnJhbWVidWZmZXIoR0xfRlJBTUVCVUZGRVIsIGZiMSk7CisgICAgZ2xG
cmFtZWJ1ZmZlclRleHR1cmUyRChHTF9GUkFNRUJVRkZFUiwgR0xfQ09MT1JfQVRUQUNITUVOVDAs
IEdMX1RFWFRVUkVfMkQsIHRleCwgMSk7CisgICAgRVhQRUNUX0dMX05PX0VSUk9SKCk7CisgICAg
Z2xCaW5kRnJhbWVidWZmZXIoR0xfRlJBTUVCVUZGRVIsIGZiMik7CisgICAgZ2xGcmFtZWJ1ZmZl
clRleHR1cmUyRChHTF9GUkFNRUJVRkZFUiwgR0xfQ09MT1JfQVRUQUNITUVOVDAsIEdMX1RFWFRV
UkVfMkQsIHRleCwgMik7CisgICAgRVhQRUNUX0dMX05PX0VSUk9SKCk7CisKKyAgICAvLyBpbml0
aWFsaXplIG1pcCAyCisgICAgZ2xCaW5kRnJhbWVidWZmZXIoR0xfRlJBTUVCVUZGRVIsIGZiMik7
CisgICAgZ2xUZXhTdWJJbWFnZTJEKEdMX1RFWFRVUkVfMkQsIDIsIDAsIDAsIDIsIDIsIEdMX1JH
QkEsIEdMX1VOU0lHTkVEX0JZVEUsIGtNaXAyQ29sb3IuZGF0YSgpKTsKKyAgICBFWFBFQ1RfR0xf
Tk9fRVJST1IoKTsKKworICAgIC8vIGRyYXcgbWlwIDEgd2l0aCBtaXAgMgorICAgIGdsVGV4UGFy
YW1ldGVyaShHTF9URVhUVVJFXzJELCBHTF9URVhUVVJFX0JBU0VfTEVWRUwsIDIpOworICAgIGds
VGV4UGFyYW1ldGVyaShHTF9URVhUVVJFXzJELCBHTF9URVhUVVJFX01BWF9MRVZFTCwgMik7CisK
KyAgICBnbFZpZXdwb3J0KDAsIDAsIDQsIDQpOworICAgIGdsQmluZEZyYW1lYnVmZmVyKEdMX0ZS
QU1FQlVGRkVSLCBmYjEpOworICAgIEVYUEVDVF9HTF9GUkFNRUJVRkZFUl9DT01QTEVURShHTF9G
UkFNRUJVRkZFUik7CisKKyAgICBkcmF3UXVhZChwcm9ncmFtLCBlc3NsMV9zaGFkZXJzOjpQb3Np
dGlvbkF0dHJpYigpLCAwLjUpOworICAgIEVYUEVDVF9HTF9OT19FUlJPUigpOworCisgICAgLy8g
ZHJhdyBtaXAgMCB3aXRoIG1pcCAxCisgICAgZ2xUZXhQYXJhbWV0ZXJpKEdMX1RFWFRVUkVfMkQs
IEdMX1RFWFRVUkVfQkFTRV9MRVZFTCwgMSk7CisgICAgZ2xUZXhQYXJhbWV0ZXJpKEdMX1RFWFRV
UkVfMkQsIEdMX1RFWFRVUkVfTUFYX0xFVkVMLCAxKTsKKworICAgIGdsVmlld3BvcnQoMCwgMCwg
OCwgOCk7CisgICAgZ2xCaW5kRnJhbWVidWZmZXIoR0xfRlJBTUVCVUZGRVIsIGZiMCk7CisgICAg
RVhQRUNUX0dMX0ZSQU1FQlVGRkVSX0NPTVBMRVRFKEdMX0ZSQU1FQlVGRkVSKTsKKworICAgIGRy
YXdRdWFkKHByb2dyYW0sIGVzc2wxX3NoYWRlcnM6OlBvc2l0aW9uQXR0cmliKCksIDAuNSk7Cisg
ICAgRVhQRUNUX0dMX05PX0VSUk9SKCk7CisKKyAgICAvLyBSZWFkIGJhY2sgcmVuZGVyZWQgcGl4
ZWwgdmFsdWVzIGFuZCBjb21wYXJlCisgICAgYXV0byBnZXRDb2VmZiA9IFtdKHVpbnQzMl90IHgs
IHVpbnQzMl90IGRpbWVuc2lvbikgeworICAgICAgICBjb25zdCB1aW50MzJfdCBkaW1EaXYyID0g
ZGltZW5zaW9uIC8gMjsKKyAgICAgICAgY29uc3QgdWludDMyX3QgeDIgICAgICA9IHggPiBkaW1E
aXYyID8gKGRpbWVuc2lvbiAtIDEgLSB4KSA6IHg7CisKKyAgICAgICAgY29uc3QgdWludDMyX3Qg
ZGVub21pbmF0b3IgPSBkaW1lbnNpb24gKiBkaW1lbnNpb24gLyA0OworICAgICAgICB1aW50MzJf
dCBudW1lcmF0b3IgICAgICAgICA9IHgyICogKHgyICsgMSkgLyAyOworICAgICAgICBpZiAoeCA+
IGRpbURpdjIpCisgICAgICAgIHsKKyAgICAgICAgICAgIG51bWVyYXRvciA9IGRlbm9taW5hdG9y
IC0gbnVtZXJhdG9yOworICAgICAgICB9CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxmbG9h
dD4obnVtZXJhdG9yKSAvIHN0YXRpY19jYXN0PGZsb2F0PihkZW5vbWluYXRvcik7CisgICAgfTsK
KyAgICBhdXRvIHVwc2NhbGUgPSBbJl0odWludDMyX3QgaW5kZXgsIHVpbnQzMl90IGRpbWVuc2lv
bikgeworICAgICAgICB1aW50MzJfdCB4ID0gaW5kZXggJSBkaW1lbnNpb247CisgICAgICAgIHVp
bnQzMl90IHkgPSBpbmRleCAvIGRpbWVuc2lvbjsKKworICAgICAgICBjb25zdCBmbG9hdCB4Q29l
ZmYgPSBnZXRDb2VmZih4LCBkaW1lbnNpb24pOworICAgICAgICBjb25zdCBmbG9hdCB5Q29lZmYg
PSBnZXRDb2VmZih5LCBkaW1lbnNpb24pOworCisgICAgICAgIEdMQ29sb3IgcmVzdWx0OworICAg
ICAgICBmb3IgKHVpbnQzMl90IGNoYW5uZWwgPSAwOyBjaGFubmVsIDwgNDsgKytjaGFubmVsKQor
ICAgICAgICB7CisgICAgICAgICAgICBjb25zdCBmbG9hdCBtaXhYMCA9CisgICAgICAgICAgICAg
ICAga01pcDJDb2xvclswXVtjaGFubmVsXSAqICgxIC0geENvZWZmKSArIGtNaXAyQ29sb3JbMV1b
Y2hhbm5lbF0gKiB4Q29lZmY7CisgICAgICAgICAgICBjb25zdCBmbG9hdCBtaXhYMSA9CisgICAg
ICAgICAgICAgICAga01pcDJDb2xvclsyXVtjaGFubmVsXSAqICgxIC0geENvZWZmKSArIGtNaXAy
Q29sb3JbM11bY2hhbm5lbF0gKiB4Q29lZmY7CisgICAgICAgICAgICBjb25zdCBmbG9hdCBtaXgg
PSBtaXhYMCAqICgxIC0geUNvZWZmKSArIG1peFgxICogeUNvZWZmOworCisgICAgICAgICAgICBy
ZXN1bHRbY2hhbm5lbF0gPSBzdGF0aWNfY2FzdDxHTHVieXRlPihyb3VuZChtaXgpKTsKKyAgICAg
ICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH07CisKKyAgICBnbEJpbmRGcmFtZWJ1
ZmZlcihHTF9GUkFNRUJVRkZFUiwgZmIwKTsKKyAgICBmb3IgKHVpbnQzMl90IGkgPSAwOyBpIDwg
NjQ7ICsraSkKKyAgICB7CisgICAgICAgIGNvbnN0IEdMQ29sb3IgZXhwZWN0ID0gdXBzY2FsZShp
LCA4KTsKKyAgICAgICAgRVhQRUNUX1BJWEVMX0NPTE9SX05FQVIoaSAlIDgsIGkgLyA4LCBleHBl
Y3QsIDEpOworICAgIH0KKworICAgIGdsQmluZEZyYW1lYnVmZmVyKEdMX0ZSQU1FQlVGRkVSLCBm
YjEpOworICAgIGZvciAodWludDMyX3QgaSA9IDA7IGkgPCAxNjsgKytpKQorICAgIHsKKyAgICAg
ICAgY29uc3QgR0xDb2xvciBleHBlY3QgPSB1cHNjYWxlKGksIDQpOworICAgICAgICBFWFBFQ1Rf
UElYRUxfQ09MT1JfTkVBUihpICUgNCwgaSAvIDQsIGV4cGVjdCwgMSk7CisgICAgfQorfQorCiAv
LyBVc2UgdGhpcyB0byBzZWxlY3Qgd2hpY2ggY29uZmlndXJhdGlvbnMgKGUuZy4gd2hpY2ggcmVu
ZGVyZXIsIHdoaWNoIEdMRVMgbWFqb3IgdmVyc2lvbikgdGhlc2UKIC8vIHRlc3RzIHNob3VsZCBi
ZSBydW4gYWdhaW5zdC4KIEFOR0xFX0lOU1RBTlRJQVRFX1RFU1RfRVMyX0FORF9FUzMoTWlwbWFw
VGVzdCk7CiAKIG5hbWVzcGFjZSBleHRyYVBsYXRmb3JtcwogewotQU5HTEVfSU5TVEFOVElBVEVf
VEVTVChNaXBtYXBUZXN0LCBXaXRoTm9HZW5NdWx0aXBsZU1pcHNQZXJQYXNzKEVTMl9NRVRBTCgp
KSk7CitBTkdMRV9JTlNUQU5USUFURV9URVNUKE1pcG1hcFRlc3QsIEVTMl9NRVRBTCgpLmRpc2Fi
bGUoRmVhdHVyZTo6QWxsb3dHZW5NdWx0aXBsZU1pcHNQZXJQYXNzKSk7CiAKIEdURVNUX0FMTE9X
X1VOSU5TVEFOVElBVEVEX1BBUkFNRVRFUklaRURfVEVTVChNaXBtYXAzREJveEZpbHRlclRlc3Qp
OwogQU5HTEVfSU5TVEFOVElBVEVfVEVTVChNaXBtYXAzREJveEZpbHRlclRlc3QsCiAgICAgICAg
ICAgICAgICAgICAgICAgIEVTMl9NRVRBTCgpLAotICAgICAgICAgICAgICAgICAgICAgICBXaXRo
Tm9HZW5NdWx0aXBsZU1pcHNQZXJQYXNzKEVTMl9NRVRBTCgpKSk7CisgICAgICAgICAgICAgICAg
ICAgICAgIEVTMl9NRVRBTCgpLmRpc2FibGUoRmVhdHVyZTo6QWxsb3dHZW5NdWx0aXBsZU1pcHNQ
ZXJQYXNzKSk7CiB9ICAvLyBuYW1lc3BhY2UgZXh0cmFQbGF0Zm9ybXMKIAogR1RFU1RfQUxMT1df
VU5JTlNUQU5USUFURURfUEFSQU1FVEVSSVpFRF9URVNUKE1pcG1hcFRlc3RFUzMpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3RzL2dsX3Rlc3RzL011bHRpRHJh
d1Rlc3QuY3BwIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3RzL2dsX3Rlc3RzL011
bHRpRHJhd1Rlc3QuY3BwCmluZGV4IGM3MjA3ZWNiNjdjYjgxNzVmZjgwYmFiNmY4ZDc2OGU2MmUw
ZWQ2NmIuLmJjZWViMGVjOGMzMGQ3YTI4MjYyNWFhYWMwMWY1NmQ4NTI2MzJmYTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9nbF90ZXN0cy9NdWx0aURyYXdU
ZXN0LmNwcAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvZ2xfdGVzdHMv
TXVsdGlEcmF3VGVzdC5jcHAKQEAgLTEwODksNSArMTA4OSw1IEBAIElOU1RBTlRJQVRFX1RFU1Rf
U1VJVEVfUCgKIEdURVNUX0FMTE9XX1VOSU5TVEFOVElBVEVEX1BBUkFNRVRFUklaRURfVEVTVChN
dWx0aURyYXdJbmRpcmVjdFRlc3QpOwogCiBBTkdMRV9JTlNUQU5USUFURV9URVNUX0VTMzFfQU5E
KE11bHRpRHJhd0luZGlyZWN0VGVzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
V2l0aE5vVnVsa2FuTXVsdGlEcmF3SW5kaXJlY3QoRVMzMV9WVUxLQU4oKSkpOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBFUzMxX1ZVTEtBTigpLmRpc2FibGUoRmVhdHVyZTo6U3Vw
cG9ydHNNdWx0aURyYXdJbmRpcmVjdCkpOwogfSAgLy8gbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvZ2xfdGVzdHMvTXVsdGlzYW1wbGVUZXN0
LmNwcCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9nbF90ZXN0cy9NdWx0aXNh
bXBsZVRlc3QuY3BwCmluZGV4IDA2ZDdiNmUwZjhhMGI2NWVkZjNlZGQ5N2JkZThlZjcyMmU3MmVj
ZDguLjRhMGFmY2U1NmRjNzc0ZmUxYmIxZmFhOTZjNzBiNmUyMzNkZDEyNDEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9nbF90ZXN0cy9NdWx0aXNhbXBsZVRl
c3QuY3BwCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9nbF90ZXN0cy9N
dWx0aXNhbXBsZVRlc3QuY3BwCkBAIC0xMSw2ICsxMSw3IEBACiAjaW5jbHVkZSAidGVzdF91dGls
cy9nbF9yYWlpLmgiCiAjaW5jbHVkZSAidXRpbC9PU1dpbmRvdy5oIgogI2luY2x1ZGUgInV0aWwv
c2hhZGVyX3V0aWxzLmgiCisjaW5jbHVkZSAidXRpbC90ZXN0X3V0aWxzLmgiCiAKIHVzaW5nIG5h
bWVzcGFjZSBhbmdsZTsKIApAQCAtODY0LDYgKzg2NSwxOSBAQCBjbGFzcyBNdWx0aXNhbXBsZVJl
c29sdmVUZXN0IDogcHVibGljIEFOR0xFVGVzdAogICAgIH0KIH07CiAKKy8vIFRlc3QgdGhlIG11
bHRpc2FtcGxlZCBvcHRpbWl6ZWQgcmVzb2x2ZSBzdWJwYXNzCitURVNUX1AoTXVsdGlzYW1wbGVS
ZXNvbHZlVGVzdCwgRElTQUJMRURfUmVzb2x2ZVN1YnBhc3NNU0ltYWdlKQoreworICAgIEFOR0xF
X0dMX1BST0dSQU0oZ3JlZW5Qcm9ncmFtLCBlc3NsMV9zaGFkZXJzOjp2czo6U2ltcGxlKCksIGVz
c2wxX3NoYWRlcnM6OmZzOjpHcmVlbigpKTsKKworICAgIC8vIERyYXcgZ3JlZW4uCisgICAgZHJh
d1F1YWQoZ3JlZW5Qcm9ncmFtLCBlc3NsMV9zaGFkZXJzOjpQb3NpdGlvbkF0dHJpYigpLCAwLjVm
KTsKKyAgICBzd2FwQnVmZmVycygpOworCisgICAgLy8gV2FpdCBmb3IgdmlzdWFsIHZlcmlmaWNh
dGlvbi4KKyAgICBhbmdsZTo6U2xlZXAoMjAwMCk7Cit9CisKIC8vIFRoZXNlIGNvbG9ycyBtYXRj
aCB0aGUgc2hhZGVyIGluIHJlc29sdmVUb0ZCTyB3aGljaCByZXR1cm5zICgwLjUsIDAuNiwgMC43
LCAwLjgpLgogY29uc3QgR0xDb2xvciBNdWx0aXNhbXBsZVJlc29sdmVUZXN0OjprRVhQRUNURURf
UjgoMTI4LCAwLCAwLCAyNTUpOwogY29uc3QgR0xDb2xvciBNdWx0aXNhbXBsZVJlc29sdmVUZXN0
OjprRVhQRUNURURfUkc4KDEyOCwgMTUzLCAwLCAyNTUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvQU5HTEUvc3JjL3Rlc3RzL2dsX3Rlc3RzL011bHRpdGhyZWFkaW5nVGVzdC5jcHAg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvZ2xfdGVzdHMvTXVsdGl0aHJlYWRp
bmdUZXN0LmNwcAppbmRleCA4MDZmMWVhMmI3MjA4MTE5Y2M5NGY4MzI3YjA0OWRmYjA2NTNjZjRm
Li5jYTA3MDU1OGExYzVhODBmODA0NjY3MWRiYzM0YzgyN2M5ZGRlNTljIDEwMDY0NAotLS0gYS9T
b3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvZ2xfdGVzdHMvTXVsdGl0aHJlYWRpbmdU
ZXN0LmNwcAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvZ2xfdGVzdHMv
TXVsdGl0aHJlYWRpbmdUZXN0LmNwcApAQCAtNSw3ICs1LDcgQEAKIC8vCiAvLyBNdWxpdGhyZWFk
aW5nVGVzdC5jcHAgOiBUZXN0cyBvZiBtdWx0aXRocmVhZGVkIHJlbmRlcmluZwogCi0jaW5jbHVk
ZSAicGxhdGZvcm0vRmVhdHVyZXNWay5oIgorI2luY2x1ZGUgInBsYXRmb3JtL0ZlYXR1cmVzVmtf
YXV0b2dlbi5oIgogI2luY2x1ZGUgInRlc3RfdXRpbHMvQU5HTEVUZXN0LmgiCiAjaW5jbHVkZSAi
dGVzdF91dGlscy9NdWx0aVRocmVhZFN0ZXBzLmgiCiAjaW5jbHVkZSAidGVzdF91dGlscy9nbF9y
YWlpLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvZ2xf
dGVzdHMvTXVsdGl2aWV3RHJhd1Rlc3QuY3BwIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3Jj
L3Rlc3RzL2dsX3Rlc3RzL011bHRpdmlld0RyYXdUZXN0LmNwcAppbmRleCA2MGQzOTkwODdiNzA3
ZTQyYWE3NTUzZDUyZWExZGI5YjAzZWRhNTQ1Li45NjQ1ZWFkMzRkN2RmZWU2NTExM2NkZjk5MGU2
MWI0NzJiMDA2OWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVz
dHMvZ2xfdGVzdHMvTXVsdGl2aWV3RHJhd1Rlc3QuY3BwCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L0FOR0xFL3NyYy90ZXN0cy9nbF90ZXN0cy9NdWx0aXZpZXdEcmF3VGVzdC5jcHAKQEAgLTcsNyAr
Nyw3IEBACiAvLyBUZXN0IGlzc3VpbmcgbXVsdGl2aWV3IERyYXcqIGNvbW1hbmRzLgogLy8KIAot
I2luY2x1ZGUgInBsYXRmb3JtL0ZlYXR1cmVzRDNELmgiCisjaW5jbHVkZSAicGxhdGZvcm0vRmVh
dHVyZXNEM0RfYXV0b2dlbi5oIgogI2luY2x1ZGUgInRlc3RfdXRpbHMvTXVsdGl2aWV3VGVzdC5o
IgogI2luY2x1ZGUgInRlc3RfdXRpbHMvZ2xfcmFpaS5oIgogCkBAIC0yODUsMTIgKzI4NSw2IEBA
IGNsYXNzIE11bHRpdmlld1JlbmRlclRlc3QgOiBwdWJsaWMgTXVsdGl2aWV3RnJhbWVidWZmZXJU
ZXN0QmFzZQogICBwcm90ZWN0ZWQ6CiAgICAgTXVsdGl2aWV3UmVuZGVyVGVzdCgpIDogTXVsdGl2
aWV3RnJhbWVidWZmZXJUZXN0QmFzZShHZXRQYXJhbSgpLCBHZXRQYXJhbSgpLm1TYW1wbGVzKSB7
fQogCi0gICAgdm9pZCBvdmVycmlkZVdvcmthcm91bmRzRDNEKEZlYXR1cmVzRDNEICpmZWF0dXJl
cykgb3ZlcnJpZGUKLSAgICB7Ci0gICAgICAgIGZlYXR1cmVzLT5vdmVycmlkZUZlYXR1cmVzKHsi
c2VsZWN0X3ZpZXdfaW5fZ2VvbWV0cnlfc2hhZGVyIn0sCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEdldFBhcmFtKCkubUZvcmNlVXNlR2VvbWV0cnlTaGFkZXJPbkQzRCk7Ci0g
ICAgfQotCiAgICAgdmlydHVhbCB2b2lkIHRlc3RTZXRVcCgpIHt9CiAgICAgdmlydHVhbCB2b2lk
IHRlc3RUZWFyRG93bigpIHt9CiAKQEAgLTUyOCwxMSArNTIyLDYgQEAgY2xhc3MgTXVsdGl2aWV3
TGF5ZXJlZFJlbmRlclRlc3QgOiBwdWJsaWMgTXVsdGl2aWV3RnJhbWVidWZmZXJUZXN0QmFzZQog
ICAgIE11bHRpdmlld0xheWVyZWRSZW5kZXJUZXN0KCkgOiBNdWx0aXZpZXdGcmFtZWJ1ZmZlclRl
c3RCYXNlKEdldFBhcmFtKCksIDApIHt9CiAgICAgdm9pZCBTZXRVcCgpIGZpbmFsIHsgTXVsdGl2
aWV3RnJhbWVidWZmZXJUZXN0QmFzZTo6RnJhbWVidWZmZXJUZXN0U2V0VXAoKTsgfQogICAgIHZv
aWQgVGVhckRvd24oKSBmaW5hbCB7IE11bHRpdmlld0ZyYW1lYnVmZmVyVGVzdEJhc2U6OkZyYW1l
YnVmZmVyVGVzdFRlYXJEb3duKCk7IH0KLSAgICB2b2lkIG92ZXJyaWRlV29ya2Fyb3VuZHNEM0Qo
RmVhdHVyZXNEM0QgKmZlYXR1cmVzKSBmaW5hbAotICAgIHsKLSAgICAgICAgZmVhdHVyZXMtPm92
ZXJyaWRlRmVhdHVyZXMoeyJzZWxlY3Rfdmlld19pbl9nZW9tZXRyeV9zaGFkZXIifSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR2V0UGFyYW0oKS5tRm9yY2VVc2VHZW9tZXRy
eVNoYWRlck9uRDNEKTsKLSAgICB9CiB9OwogCiAvLyBUaGUgdGVzdCB2ZXJpZmllcyB0aGF0IGds
RHJhdypJbmRpcmVjdCB3b3JrcyBmb3IgYW55IG51bWJlciBvZiB2aWV3cy4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9nbF90ZXN0cy9Qcm9ncmFtQmluYXJ5
VGVzdC5jcHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvZ2xfdGVzdHMvUHJv
Z3JhbUJpbmFyeVRlc3QuY3BwCmluZGV4IDQ1OGI1MmJkZWI2NTc2YTk3Y2U2NTA1MmQ5Yjg3ZDMx
NGIyNGE3ZDQuLjk0ODEzNjdiNTIwYWU5MzIxYjc0YjhmZDU3MmJlYWYzOGEzYWYxMDcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9nbF90ZXN0cy9Qcm9ncmFt
QmluYXJ5VGVzdC5jcHAKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3RzL2ds
X3Rlc3RzL1Byb2dyYW1CaW5hcnlUZXN0LmNwcApAQCAtMjkwLDEwICsyOTAsNyBAQCBjbGFzcyBQ
cm9ncmFtQmluYXJ5RVMzVGVzdCA6IHB1YmxpYyBQcm9ncmFtQmluYXJ5VGVzdAogCiB2b2lkIFBy
b2dyYW1CaW5hcnlFUzNUZXN0Ojp0ZXN0QmluYXJ5QW5kVUJPQmxvY2tJbmRleGVzKGJvb2wgZHJh
d1dpdGhQcm9ncmFtRmlyc3QpCiB7Ci0gICAgLy8gV2UgY2FuJ3QgcnVuIHRoZSB0ZXN0IGlmIG5v
IHByb2dyYW0gYmluYXJ5IGZvcm1hdHMgYXJlIHN1cHBvcnRlZC4KLSAgICBHTGludCBiaW5hcnlG
b3JtYXRDb3VudCA9IDA7Ci0gICAgZ2xHZXRJbnRlZ2VydihHTF9OVU1fUFJPR1JBTV9CSU5BUllf
Rk9STUFUUywgJmJpbmFyeUZvcm1hdENvdW50KTsKLSAgICBBTkdMRV9TS0lQX1RFU1RfSUYoYmlu
YXJ5Rm9ybWF0Q291bnQgPT0gMCk7CisgICAgQU5HTEVfU0tJUF9URVNUX0lGKGdldEF2YWlsYWJs
ZVByb2dyYW1CaW5hcnlGb3JtYXRDb3VudCgpID09IDApOwogCiAgICAgY29uc3RleHByIGNoYXIg
a1ZTW10gPQogICAgICAgICAiI3ZlcnNpb24gMzAwIGVzXG4iCkBAIC0zODQsMTAgKzM4MSw3IEBA
IFRFU1RfUChQcm9ncmFtQmluYXJ5RVMzVGVzdCwgVW5pZm9ybUJsb2NrQmluZGluZ05vRHJhdykK
IC8vIFRlc3QgdGhlIHNoYWRlcnMgd2l0aCBhcnJheXMtb2Ytc3RydWN0IHVuaWZvcm1zIGFyZSBw
cm9wZXJseSBzYXZlZCBhbmQgcmVzdG9yZWQKIFRFU1RfUChQcm9ncmFtQmluYXJ5RVMzVGVzdCwg
VGVzdEFycmF5T2ZTdHJ1Y3RVbmlmb3JtKQogewotICAgIC8vIFdlIGNhbid0IHJ1biB0aGUgdGVz
dCBpZiBubyBwcm9ncmFtIGJpbmFyeSBmb3JtYXRzIGFyZSBzdXBwb3J0ZWQuCi0gICAgR0xpbnQg
YmluYXJ5Rm9ybWF0Q291bnQgPSAwOwotICAgIGdsR2V0SW50ZWdlcnYoR0xfTlVNX1BST0dSQU1f
QklOQVJZX0ZPUk1BVFMsICZiaW5hcnlGb3JtYXRDb3VudCk7Ci0gICAgQU5HTEVfU0tJUF9URVNU
X0lGKGJpbmFyeUZvcm1hdENvdW50ID09IDApOworICAgIEFOR0xFX1NLSVBfVEVTVF9JRihnZXRB
dmFpbGFibGVQcm9ncmFtQmluYXJ5Rm9ybWF0Q291bnQoKSA9PSAwKTsKIAogICAgIGNvbnN0ZXhw
ciBjaGFyIGtWU1tdID0KICAgICAgICAgIiN2ZXJzaW9uIDMwMCBlc1xuIgpAQCAtNTE5LDkgKzUx
Myw3IEBAIFRFU1RfUChQcm9ncmFtQmluYXJ5RVMzVGVzdCwgVGVzdEFycmF5T2ZTdHJ1Y3RVbmlm
b3JtKQogLy8gZHJhd2luZyB3b3Jrcy4KIFRFU1RfUChQcm9ncmFtQmluYXJ5RVMzVGVzdCwgU2F2
ZUFuZExvYWREZXRhY2hlZFNoYWRlcnMpCiB7Ci0gICAgR0xpbnQgYmluYXJ5Rm9ybWF0Q291bnQg
PSAwOwotICAgIGdsR2V0SW50ZWdlcnYoR0xfTlVNX1BST0dSQU1fQklOQVJZX0ZPUk1BVFMsICZi
aW5hcnlGb3JtYXRDb3VudCk7Ci0gICAgQU5HTEVfU0tJUF9URVNUX0lGKGJpbmFyeUZvcm1hdENv
dW50ID09IDApOworICAgIEFOR0xFX1NLSVBfVEVTVF9JRihnZXRBdmFpbGFibGVQcm9ncmFtQmlu
YXJ5Rm9ybWF0Q291bnQoKSA9PSAwKTsKIAogICAgIC8vIFdlIHVzZSBzaGFkZXJzIHdpdGggdGhl
ICJmbGF0IiBxdWFsaWZpZXIsIHRvIGVuc3VyZSB0aGF0ICJmbGF0IiBiZWhhdmVzCiAgICAgLy8g
YWNyb3NzIHNhdmUvbG9hZC4gVGhpcyBpcyBwcmltYXJpbHkgdG8gY2F0Y2ggcG9zc2libGUgYnVn
cyBpbiB0aGUgTWV0YWwKQEAgLTYyOSwxMCArNjIxLDcgQEAgdm9pZCBtYWluKCkKIC8vIFRlc3Rz
IHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdW5pZm9ybSBzdGF0aWMgYW5kIGFjdGl2ZSB1c2UKIFRF
U1RfUChQcm9ncmFtQmluYXJ5RVMzVGVzdCwgQWN0aXZlVW5pZm9ybVNoYWRlcikKIHsKLSAgICAv
LyBXZSBjYW4ndCBydW4gdGhlIHRlc3QgaWYgbm8gcHJvZ3JhbSBiaW5hcnkgZm9ybWF0cyBhcmUg
c3VwcG9ydGVkLgotICAgIEdMaW50IGJpbmFyeUZvcm1hdENvdW50ID0gMDsKLSAgICBnbEdldElu
dGVnZXJ2KEdMX05VTV9QUk9HUkFNX0JJTkFSWV9GT1JNQVRTLCAmYmluYXJ5Rm9ybWF0Q291bnQp
OwotICAgIEFOR0xFX1NLSVBfVEVTVF9JRihiaW5hcnlGb3JtYXRDb3VudCA9PSAwKTsKKyAgICBB
TkdMRV9TS0lQX1RFU1RfSUYoZ2V0QXZhaWxhYmxlUHJvZ3JhbUJpbmFyeUZvcm1hdENvdW50KCkg
PT0gMCk7CiAKICAgICBjb25zdGV4cHIgY2hhciBrVlNbXSA9CiAgICAgICAgICIjdmVyc2lvbiAz
MDAgZXNcbiIKQEAgLTcxMiwxMCArNzAxLDcgQEAgVEVTVF9QKFByb2dyYW1CaW5hcnlFUzNUZXN0
LCBCaW5hcnlXaXRoTGFyZ2VVbmlmb3JtQ291bnQpCiAgICAgLy8gaHR0cDovL2FuZ2xlYnVnLmNv
bS8zNzIxCiAgICAgQU5HTEVfU0tJUF9URVNUX0lGKElzQU1EKCkgJiYgSXNPcGVuR0woKSAmJiBJ
c1dpbmRvd3MoKSk7CiAKLSAgICAvLyBXZSBjYW4ndCBydW4gdGhlIHRlc3QgaWYgbm8gcHJvZ3Jh
bSBiaW5hcnkgZm9ybWF0cyBhcmUgc3VwcG9ydGVkLgotICAgIEdMaW50IGJpbmFyeUZvcm1hdENv
dW50ID0gMDsKLSAgICBnbEdldEludGVnZXJ2KEdMX05VTV9QUk9HUkFNX0JJTkFSWV9GT1JNQVRT
LCAmYmluYXJ5Rm9ybWF0Q291bnQpOwotICAgIEFOR0xFX1NLSVBfVEVTVF9JRihiaW5hcnlGb3Jt
YXRDb3VudCA9PSAwKTsKKyAgICBBTkdMRV9TS0lQX1RFU1RfSUYoZ2V0QXZhaWxhYmxlUHJvZ3Jh
bUJpbmFyeUZvcm1hdENvdW50KCkgPT0gMCk7CiAKICAgICBjb25zdGV4cHIgY2hhciBrVlNbXSA9
CiAgICAgICAgICIjdmVyc2lvbiAzMDAgZXNcbiIKQEAgLTkzNyw5ICs5MjMsOTAgQEAgVEVTVF9Q
KFByb2dyYW1CaW5hcnlUZXN0LCBTUkdCRGVjb2RlV2l0aFNhbXBsZXJBbmRUZXhlbEZldGNoVGVz
dCkKICAgICBnbERlbGV0ZVByb2dyYW0ocmVsb2FkZWRQcm9ncmFtKTsKIH0KIAorLy8gVGVzdCB0
aGF0IGFycmF5IG9mIHN0cnVjdHMgY29udGFpbmluZyBhcnJheSBvZiBzYW1wbGVycyB3b3JrIGFz
IGV4cGVjdGVkLgorVEVTVF9QKFByb2dyYW1CaW5hcnlFUzNUZXN0LCBBcnJheU9mU3RydWN0Q29u
dGFpbmluZ0FycmF5T2ZTYW1wbGVycykKK3sKKyAgICBBTkdMRV9TS0lQX1RFU1RfSUYoZ2V0QXZh
aWxhYmxlUHJvZ3JhbUJpbmFyeUZvcm1hdENvdW50KCkgPT0gMCk7CisKKyAgICBjb25zdGV4cHIg
Y2hhciBrRlNbXSA9CisgICAgICAgICJwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDtcbiIKKyAgICAg
ICAgInN0cnVjdCBEYXRhIHsgbWVkaXVtcCBzYW1wbGVyMkQgZGF0YVsyXTsgfTtcbiIKKyAgICAg
ICAgInVuaWZvcm0gRGF0YSB0ZXN0WzJdO1xuIgorICAgICAgICAidm9pZCBtYWluKCkge1xuIgor
ICAgICAgICAiICAgIGdsX0ZyYWdDb2xvciA9IHZlYzQodGV4dHVyZTJEKHRlc3RbMV0uZGF0YVsx
XSwgdmVjMigwLjAsIDAuMCkpLnIsXG4iCisgICAgICAgICIgICAgICAgICAgICAgICAgICAgICAg
ICB0ZXh0dXJlMkQodGVzdFsxXS5kYXRhWzBdLCB2ZWMyKDAuMCwgMC4wKSkucixcbiIKKyAgICAg
ICAgIiAgICAgICAgICAgICAgICAgICAgICAgIHRleHR1cmUyRCh0ZXN0WzBdLmRhdGFbMV0sIHZl
YzIoMC4wLCAwLjApKS5yLFxuIgorICAgICAgICAiICAgICAgICAgICAgICAgICAgICAgICAgdGV4
dHVyZTJEKHRlc3RbMF0uZGF0YVswXSwgdmVjMigwLjAsIDAuMCkpLnIpO1xuIgorICAgICAgICAi
fVxuIjsKKworICAgIEFOR0xFX0dMX1BST0dSQU0ocHJvZ3JhbSwgZXNzbDFfc2hhZGVyczo6dnM6
OlNpbXBsZSgpLCBrRlMpOworICAgIGdsVXNlUHJvZ3JhbShwcm9ncmFtLmdldCgpKTsKKyAgICBH
TFRleHR1cmUgdGV4dHVyZXNbNF07CisgICAgR0xDb2xvciBleHBlY3RlZCA9IE1ha2VHTENvbG9y
KDMyLCA2NCwgOTYsIDI1NSk7CisgICAgR0x1Ynl0ZSBkYXRhWzhdICA9IHt9OyAgLy8gNCBieXRl
cyBvZiBwYWRkaW5nLCBzbyB0aGF0IHRleHR1cmUgY2FuIGJlIGluaXRpYWxpemVkIHdpdGggNCBi
eXRlcworICAgIG1lbWNweShkYXRhLCBleHBlY3RlZC5kYXRhKCksIHNpemVvZihleHBlY3RlZCkp
OworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgNDsgaSsrKQorICAgIHsKKyAgICAgICAgaW50IG91
dGVySWR4ID0gaSAlIDI7CisgICAgICAgIGludCBpbm5lcklkeCA9IGkgLyAyOworICAgICAgICBn
bEFjdGl2ZVRleHR1cmUoR0xfVEVYVFVSRTAgKyBpKTsKKyAgICAgICAgZ2xCaW5kVGV4dHVyZShH
TF9URVhUVVJFXzJELCB0ZXh0dXJlc1tpXSk7CisgICAgICAgIC8vIEVhY2ggZWxlbWVudCBwcm92
aWRlcyB0d28gY29tcG9uZW50cy4KKyAgICAgICAgZ2xUZXhJbWFnZTJEKEdMX1RFWFRVUkVfMkQs
IDAsIEdMX1JHQkEsIDEsIDEsIDAsIEdMX1JHQkEsIEdMX1VOU0lHTkVEX0JZVEUsIGRhdGEgKyBp
KTsKKyAgICAgICAgc3RkOjpzdHJpbmdzdHJlYW0gdW5pZm9ybU5hbWU7CisgICAgICAgIHVuaWZv
cm1OYW1lIDw8ICJ0ZXN0WyIgPDwgaW5uZXJJZHggPDwgIl0uZGF0YVsiIDw8IG91dGVySWR4IDw8
ICJdIjsKKyAgICAgICAgLy8gVGhlbiBzZW5kIGl0IGFzIGEgdW5pZm9ybQorICAgICAgICBHTGlu
dCB1bmlmb3JtTG9jYXRpb24gPSBnbEdldFVuaWZvcm1Mb2NhdGlvbihwcm9ncmFtLmdldCgpLCB1
bmlmb3JtTmFtZS5zdHIoKS5jX3N0cigpKTsKKyAgICAgICAgLy8gVGhlIHVuaWZvcm0gc2hvdWxk
IGJlIGFjdGl2ZS4KKyAgICAgICAgRVhQRUNUX05FKHVuaWZvcm1Mb2NhdGlvbiwgLTEpOworCisg
ICAgICAgIGdsVW5pZm9ybTFpKHVuaWZvcm1Mb2NhdGlvbiwgMyAtIGkpOworICAgICAgICBBU1NF
UlRfR0xfTk9fRVJST1IoKTsKKyAgICB9CisKKyAgICBkcmF3UXVhZChwcm9ncmFtLmdldCgpLCBl
c3NsMV9zaGFkZXJzOjpQb3NpdGlvbkF0dHJpYigpLCAwLjVmKTsKKyAgICBBU1NFUlRfR0xfTk9f
RVJST1IoKTsKKyAgICBFWFBFQ1RfUElYRUxfQ09MT1JfRVEoMCwgMCwgZXhwZWN0ZWQpOworCisg
ICAgLy8gUmVhZCBiYWNrIHRoZSBiaW5hcnkuCisgICAgR0xpbnQgcHJvZ3JhbUxlbmd0aCA9IDA7
CisgICAgZ2xHZXRQcm9ncmFtaXYocHJvZ3JhbSwgR0xfUFJPR1JBTV9CSU5BUllfTEVOR1RILCAm
cHJvZ3JhbUxlbmd0aCk7CisgICAgQVNTRVJUX0dMX05PX0VSUk9SKCk7CisKKyAgICBHTHNpemVp
IHJlYWRMZW5ndGggID0gMDsKKyAgICBHTGVudW0gYmluYXJ5Rm9ybWF0ID0gR0xfTk9ORTsKKyAg
ICBzdGQ6OnZlY3Rvcjx1aW50OF90PiBiaW5hcnkocHJvZ3JhbUxlbmd0aCk7CisgICAgZ2xHZXRQ
cm9ncmFtQmluYXJ5KHByb2dyYW0sIHByb2dyYW1MZW5ndGgsICZyZWFkTGVuZ3RoLCAmYmluYXJ5
Rm9ybWF0LCBiaW5hcnkuZGF0YSgpKTsKKyAgICBBU1NFUlRfR0xfTk9fRVJST1IoKTsKKworICAg
IC8vIExvYWQgYSBuZXcgcHJvZ3JhbSB3aXRoIHRoZSBiaW5hcnkuCisgICAgQU5HTEVfR0xfQklO
QVJZX0VTM19QUk9HUkFNKGJpbmFyeVByb2dyYW0sIGJpbmFyeSwgYmluYXJ5Rm9ybWF0KTsKKyAg
ICBnbFVzZVByb2dyYW0oYmluYXJ5UHJvZ3JhbSk7CisKKyAgICBmb3IgKGludCBpID0gMDsgaSA8
IDQ7IGkrKykKKyAgICB7CisgICAgICAgIGludCBvdXRlcklkeCA9IGkgJSAyOworICAgICAgICBp
bnQgaW5uZXJJZHggPSBpIC8gMjsKKyAgICAgICAgc3RkOjpzdHJpbmdzdHJlYW0gdW5pZm9ybU5h
bWU7CisgICAgICAgIHVuaWZvcm1OYW1lIDw8ICJ0ZXN0WyIgPDwgaW5uZXJJZHggPDwgIl0uZGF0
YVsiIDw8IG91dGVySWR4IDw8ICJdIjsKKyAgICAgICAgLy8gVGhlbiBzZW5kIGl0IGFzIGEgdW5p
Zm9ybQorICAgICAgICBHTGludCB1bmlmb3JtTG9jYXRpb24gPSBnbEdldFVuaWZvcm1Mb2NhdGlv
bihwcm9ncmFtLCB1bmlmb3JtTmFtZS5zdHIoKS5jX3N0cigpKTsKKyAgICAgICAgLy8gVGhlIHVu
aWZvcm0gc2hvdWxkIGJlIGFjdGl2ZS4KKyAgICAgICAgRVhQRUNUX05FKHVuaWZvcm1Mb2NhdGlv
biwgLTEpOworCisgICAgICAgIGdsVW5pZm9ybTFpKHVuaWZvcm1Mb2NhdGlvbiwgMyAtIGkpOwor
ICAgICAgICBBU1NFUlRfR0xfTk9fRVJST1IoKTsKKyAgICB9CisKKyAgICAvLyBWZXJpZnkgdGhl
IHVuaWZvcm0gZGF0YSB3aXRoIHRoZSBiaW5hcnkgcHJvZ3JhbS4KKyAgICBkcmF3UXVhZChiaW5h
cnlQcm9ncmFtLCBlc3NsMV9zaGFkZXJzOjpQb3NpdGlvbkF0dHJpYigpLCAwLjVmKTsKKyAgICBB
U1NFUlRfR0xfTk9fRVJST1IoKTsKKyAgICBFWFBFQ1RfUElYRUxfQ09MT1JfRVEoMCwgMCwgZXhw
ZWN0ZWQpOworfQorCiBHVEVTVF9BTExPV19VTklOU1RBTlRJQVRFRF9QQVJBTUVURVJJWkVEX1RF
U1QoUHJvZ3JhbUJpbmFyeUVTM1Rlc3QpOwogQU5HTEVfSU5TVEFOVElBVEVfVEVTVF9FUzNfQU5E
KFByb2dyYW1CaW5hcnlFUzNUZXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdp
dGhDcmVhdGVWdWxrYW5QaXBlbGluZUR1cmluZ0xpbmsoRVMzX1ZVTEtBTigpKSk7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgRVMzX1ZVTEtBTigpLmVuYWJsZShGZWF0dXJlOjpDcmVh
dGVQaXBlbGluZUR1cmluZ0xpbmspKTsKIAogY2xhc3MgUHJvZ3JhbUJpbmFyeUVTMzFUZXN0IDog
cHVibGljIEFOR0xFVGVzdAogewpAQCAtOTU2LDE1ICsxMDIzLDIwIEBAIGNsYXNzIFByb2dyYW1C
aW5hcnlFUzMxVGVzdCA6IHB1YmxpYyBBTkdMRVRlc3QKICAgICAgICAgLy8gVGVzdCBmbGFraW5l
c3Mgd2FzIG5vdGljZWQgd2hlbiByZXVzaW5nIGRpc3BsYXlzLgogICAgICAgICBmb3JjZU5ld0Rp
c3BsYXkoKTsKICAgICB9CisKKyAgICBHTGludCBnZXRBdmFpbGFibGVQcm9ncmFtQmluYXJ5Rm9y
bWF0Q291bnQoKSBjb25zdAorICAgIHsKKyAgICAgICAgR0xpbnQgZm9ybWF0Q291bnQ7CisgICAg
ICAgIGdsR2V0SW50ZWdlcnYoR0xfTlVNX1BST0dSQU1fQklOQVJZX0ZPUk1BVFNfT0VTLCAmZm9y
bWF0Q291bnQpOworICAgICAgICByZXR1cm4gZm9ybWF0Q291bnQ7CisgICAgfQogfTsKIAogLy8g
VGVzdHMgdGhhdCBzYXZpbmcgYW5kIGxvYWRpbmcgYSBwcm9ncmFtIGF0dGFjaGVkIHdpdGggY29t
cHV0ZXIgc2hhZGVyLgogVEVTVF9QKFByb2dyYW1CaW5hcnlFUzMxVGVzdCwgUHJvZ3JhbUJpbmFy
eVdpdGhDb21wdXRlU2hhZGVyKQogewotICAgIC8vIFdlIGNhbid0IHJ1biB0aGUgdGVzdCBpZiBu
byBwcm9ncmFtIGJpbmFyeSBmb3JtYXRzIGFyZSBzdXBwb3J0ZWQuCi0gICAgR0xpbnQgYmluYXJ5
Rm9ybWF0Q291bnQgPSAwOwotICAgIGdsR2V0SW50ZWdlcnYoR0xfTlVNX1BST0dSQU1fQklOQVJZ
X0ZPUk1BVFMsICZiaW5hcnlGb3JtYXRDb3VudCk7Ci0gICAgQU5HTEVfU0tJUF9URVNUX0lGKGJp
bmFyeUZvcm1hdENvdW50ID09IDApOworICAgIEFOR0xFX1NLSVBfVEVTVF9JRihnZXRBdmFpbGFi
bGVQcm9ncmFtQmluYXJ5Rm9ybWF0Q291bnQoKSA9PSAwKTsKKwogICAgIC8vIGh0dHA6Ly9hbmds
ZWJ1Zy5jb20vNDA5MgogICAgIEFOR0xFX1NLSVBfVEVTVF9JRihJc1Z1bGthbigpKTsKIApAQCAt
MTAwOSwxMCArMTA4MSw3IEBAIFRFU1RfUChQcm9ncmFtQmluYXJ5RVMzMVRlc3QsIFByb2dyYW1C
aW5hcnlXaXRoQ29tcHV0ZVNoYWRlcikKIC8vIHVuaWZvcm0gYmxvY2suCiBURVNUX1AoUHJvZ3Jh
bUJpbmFyeUVTMzFUZXN0LCBTZXBhcmFibGVQcm9ncmFtTGlua2VkVW5pZm9ybXMpCiB7Ci0gICAg
Ly8gV2UgY2FuJ3QgcnVuIHRoZSB0ZXN0IGlmIG5vIHByb2dyYW0gYmluYXJ5IGZvcm1hdHMgYXJl
IHN1cHBvcnRlZC4KLSAgICBHTGludCBiaW5hcnlGb3JtYXRDb3VudCA9IDA7Ci0gICAgZ2xHZXRJ
bnRlZ2VydihHTF9OVU1fUFJPR1JBTV9CSU5BUllfRk9STUFUUywgJmJpbmFyeUZvcm1hdENvdW50
KTsKLSAgICBBTkdMRV9TS0lQX1RFU1RfSUYoYmluYXJ5Rm9ybWF0Q291bnQgPT0gMCk7CisgICAg
QU5HTEVfU0tJUF9URVNUX0lGKGdldEF2YWlsYWJsZVByb2dyYW1CaW5hcnlGb3JtYXRDb3VudCgp
ID09IDApOwogCiAgICAgY29uc3RleHByIGNoYXIga0NvbXB1dGVTaGFkZXJbXSA9IFIiKCN2ZXJz
aW9uIDMxMCBlcwogbGF5b3V0KGxvY2FsX3NpemVfeD00LCBsb2NhbF9zaXplX3k9MywgbG9jYWxf
c2l6ZV96PTEpIGluOwpAQCAtMTA1MywxMCArMTEyMiw3IEBAIHZvaWQgbWFpbigpIHsKIC8vIFRl
c3RzIHRoYXQgc2F2aW5nIGFuZCBsb2FkaW5nIGEgcHJvZ3JhbSBhdHRhY2hlZCB3aXRoIGNvbXB1
dGVyIHNoYWRlci4KIFRFU1RfUChQcm9ncmFtQmluYXJ5RVMzMVRlc3QsIFByb2dyYW1CaW5hcnlX
aXRoQXRvbWljQ291bnRlckNvbXB1dGVTaGFkZXIpCiB7Ci0gICAgLy8gV2UgY2FuJ3QgcnVuIHRo
ZSB0ZXN0IGlmIG5vIHByb2dyYW0gYmluYXJ5IGZvcm1hdHMgYXJlIHN1cHBvcnRlZC4KLSAgICBH
TGludCBiaW5hcnlGb3JtYXRDb3VudCA9IDA7Ci0gICAgZ2xHZXRJbnRlZ2VydihHTF9OVU1fUFJP
R1JBTV9CSU5BUllfRk9STUFUUywgJmJpbmFyeUZvcm1hdENvdW50KTsKLSAgICBBTkdMRV9TS0lQ
X1RFU1RfSUYoYmluYXJ5Rm9ybWF0Q291bnQgPT0gMCk7CisgICAgQU5HTEVfU0tJUF9URVNUX0lG
KGdldEF2YWlsYWJsZVByb2dyYW1CaW5hcnlGb3JtYXRDb3VudCgpID09IDApOwogCiAgICAgY29u
c3RleHByIGNoYXIga0NvbXB1dGVTaGFkZXJbXSA9IFIiKCN2ZXJzaW9uIDMxMCBlcwogbGF5b3V0
KGxvY2FsX3NpemVfeD0xLCBsb2NhbF9zaXplX3k9MSwgbG9jYWxfc2l6ZV96PTEpIGluOwpAQCAt
MTExNiwxMCArMTE4Miw3IEBAIHZvaWQgbWFpbigpIHsKIC8vIFRlc3RzIHRoYXQgaW1hZ2UgdGV4
dHVyZSB3b3JrcyBjb3JyZWN0bHkgd2hlbiBsb2FkaW5nIGEgcHJvZ3JhbSBmcm9tIGJpbmFyeS4K
IFRFU1RfUChQcm9ncmFtQmluYXJ5RVMzMVRlc3QsIEltYWdlVGV4dHVyZUJpbmRpbmcpCiB7Ci0g
ICAgLy8gV2UgY2FuJ3QgcnVuIHRoZSB0ZXN0IGlmIG5vIHByb2dyYW0gYmluYXJ5IGZvcm1hdHMg
YXJlIHN1cHBvcnRlZC4KLSAgICBHTGludCBiaW5hcnlGb3JtYXRDb3VudCA9IDA7Ci0gICAgZ2xH
ZXRJbnRlZ2VydihHTF9OVU1fUFJPR1JBTV9CSU5BUllfRk9STUFUUywgJmJpbmFyeUZvcm1hdENv
dW50KTsKLSAgICBBTkdMRV9TS0lQX1RFU1RfSUYoYmluYXJ5Rm9ybWF0Q291bnQgPT0gMCk7Cisg
ICAgQU5HTEVfU0tJUF9URVNUX0lGKGdldEF2YWlsYWJsZVByb2dyYW1CaW5hcnlGb3JtYXRDb3Vu
dCgpID09IDApOwogCiAgICAgY29uc3QgY2hhciBrQ29tcHV0ZVNoYWRlcltdID0KICAgICAgICAg
UiIoI3ZlcnNpb24gMzEwIGVzCkBAIC0xMTc1LDcgKzEyMzgsNyBAQCBURVNUX1AoUHJvZ3JhbUJp
bmFyeUVTMzFUZXN0LCBJbWFnZVRleHR1cmVCaW5kaW5nKQogCiBHVEVTVF9BTExPV19VTklOU1RB
TlRJQVRFRF9QQVJBTUVURVJJWkVEX1RFU1QoUHJvZ3JhbUJpbmFyeUVTMzFUZXN0KTsKIEFOR0xF
X0lOU1RBTlRJQVRFX1RFU1RfRVMzMV9BTkQoUHJvZ3JhbUJpbmFyeUVTMzFUZXN0LAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBXaXRoQ3JlYXRlVnVsa2FuUGlwZWxpbmVEdXJpbmdM
aW5rKEVTMzFfVlVMS0FOKCkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRVMz
MV9WVUxLQU4oKS5lbmFibGUoRmVhdHVyZTo6Q3JlYXRlUGlwZWxpbmVEdXJpbmdMaW5rKSk7CiAK
IGNsYXNzIFByb2dyYW1CaW5hcnlUcmFuc2Zvcm1GZWVkYmFja1Rlc3QgOiBwdWJsaWMgQU5HTEVU
ZXN0CiB7CkBAIC0xMjM5LDcgKzEzMDIsNyBAQCBURVNUX1AoUHJvZ3JhbUJpbmFyeVRyYW5zZm9y
bUZlZWRiYWNrVGVzdCwgR2V0VHJhbnNmb3JtRmVlZGJhY2tWYXJ5aW5nKQogewogICAgIEFOR0xF
X1NLSVBfVEVTVF9JRighSXNHTEV4dGVuc2lvbkVuYWJsZWQoIkdMX09FU19nZXRfcHJvZ3JhbV9i
aW5hcnkiKSk7CiAKLSAgICBBTkdMRV9TS0lQX1RFU1RfSUYoIWdldEF2YWlsYWJsZVByb2dyYW1C
aW5hcnlGb3JtYXRDb3VudCgpKTsKKyAgICBBTkdMRV9TS0lQX1RFU1RfSUYoZ2V0QXZhaWxhYmxl
UHJvZ3JhbUJpbmFyeUZvcm1hdENvdW50KCkgPT0gMCk7CiAKICAgICAvLyBodHRwOi8vYW5nbGVi
dWcuY29tLzM2OTAKICAgICBBTkdMRV9TS0lQX1RFU1RfSUYoSXNBbmRyb2lkKCkgJiYgKElzUGl4
ZWwyKCkgfHwgSXNQaXhlbDJYTCgpKSAmJiBJc1Z1bGthbigpKTsKQEAgLTEyODgsNyArMTM1MSw3
IEBAIFRFU1RfUChQcm9ncmFtQmluYXJ5VHJhbnNmb3JtRmVlZGJhY2tUZXN0LCBHZXRUcmFuc2Zv
cm1GZWVkYmFja1ZhcnlpbmcpCiAKIEdURVNUX0FMTE9XX1VOSU5TVEFOVElBVEVEX1BBUkFNRVRF
UklaRURfVEVTVChQcm9ncmFtQmluYXJ5VHJhbnNmb3JtRmVlZGJhY2tUZXN0KTsKIEFOR0xFX0lO
U1RBTlRJQVRFX1RFU1RfRVMzX0FORChQcm9ncmFtQmluYXJ5VHJhbnNmb3JtRmVlZGJhY2tUZXN0
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdpdGhDcmVhdGVWdWxrYW5QaXBlbGlu
ZUR1cmluZ0xpbmsoRVMzX1ZVTEtBTigpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgRVMzX1ZVTEtBTigpLmVuYWJsZShGZWF0dXJlOjpDcmVhdGVQaXBlbGluZUR1cmluZ0xpbmsp
KTsKIAogLy8gRm9yIHRoZSBQcm9ncmFtQmluYXJpZXNBY3Jvc3NQbGF0Zm9ybXMgdGVzdHMsIHdl
IG5lZWQgdHdvIHNldHMgb2YgcGFyYW1zOgogLy8gLSBhIHNldCB0byBzYXZlIHRoZSBwcm9ncmFt
IGJpbmFyeQpAQCAtMTUxOCwxOCArMTU4MSwxOSBAQCBURVNUX1AoUHJvZ3JhbUJpbmFyaWVzQWNy
b3NzUGxhdGZvcm1zLCBDcmVhdGVBbmRSZWxvYWRCaW5hcnkpCiAvLyBjbGFuZy1mb3JtYXQgb2Zm
CiBHVEVTVF9BTExPV19VTklOU1RBTlRJQVRFRF9QQVJBTUVURVJJWkVEX1RFU1QoUHJvZ3JhbUJp
bmFyaWVzQWNyb3NzUGxhdGZvcm1zKTsKIEFOR0xFX0lOU1RBTlRJQVRFX1RFU1QoUHJvZ3JhbUJp
bmFyaWVzQWNyb3NzUGxhdGZvcm1zLAotICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAg
ICAgICAgICAgICAgIHwgU2F2ZSB0aGUgcHJvZ3JhbSAgIHwgTG9hZCB0aGUgcHJvZ3JhbSAgICAg
IHwgRXhwZWN0ZWQKLSAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAg
ICB8IHVzaW5nIHRoZXNlIHBhcmFtcyB8IHVzaW5nIHRoZXNlIHBhcmFtcyAgICB8IGxpbmsgcmVz
dWx0Ci0gICAgICAgICAgICAgICAgICAgICAgIFBsYXRmb3Jtc1dpdGhMaW5rUmVzdWx0KEVTMl9E
M0QxMSgpLCAgICAgICAgIEVTMl9EM0QxMSgpLCAgICAgICAgICAgIHRydWUgICAgICAgICApLCAv
LyBMb2FkaW5nICsgcmVsb2FkaW5nIGJpbmFyeSBzaG91bGQgd29yawotICAgICAgICAgICAgICAg
ICAgICAgICBQbGF0Zm9ybXNXaXRoTGlua1Jlc3VsdChFUzNfRDNEMTEoKSwgICAgICAgICBFUzNf
RDNEMTEoKSwgICAgICAgICAgICB0cnVlICAgICAgICAgKSwgLy8gTG9hZGluZyArIHJlbG9hZGlu
ZyBiaW5hcnkgc2hvdWxkIHdvcmsKLSAgICAgICAgICAgICAgICAgICAgICAgUGxhdGZvcm1zV2l0
aExpbmtSZXN1bHQoRVMyX0QzRDExKCksICAgICAgICAgRVMyX0QzRDkoKSwgICAgICAgICAgICAg
ZmFsc2UgICAgICAgICksIC8vIFN3aXRjaGluZyBmcm9tIEQzRDExIHRvIEQzRDkgc2hvdWxkbid0
IHdvcmsKLSAgICAgICAgICAgICAgICAgICAgICAgUGxhdGZvcm1zV2l0aExpbmtSZXN1bHQoRVMy
X0QzRDkoKSwgICAgICAgICAgRVMyX0QzRDExKCksICAgICAgICAgICAgZmFsc2UgICAgICAgICks
IC8vIFN3aXRjaGluZyBmcm9tIEQzRDkgdG8gRDNEMTEgc2hvdWxkbid0IHdvcmsKLSAgICAgICAg
ICAgICAgICAgICAgICAgUGxhdGZvcm1zV2l0aExpbmtSZXN1bHQoRVMyX0QzRDExKCksICAgICAg
ICAgRVMzX0QzRDExKCksICAgICAgICAgICAgZmFsc2UgICAgICAgICksIC8vIFN3aXRjaGluZyB0
byBuZXdlciBjbGllbnQgdmVyc2lvbiBzaG91bGRuJ3Qgd29yawotICAgICAgICAgICAgICAgICAg
ICAgICBQbGF0Zm9ybXNXaXRoTGlua1Jlc3VsdChFUzJfVlVMS0FOKCksICAgICAgICBFUzJfVlVM
S0FOKCksICAgICAgICAgICB0cnVlICAgICAgICAgKSwgLy8gTG9hZGluZyArIHJlbG9hZGluZyBi
aW5hcnkgc2hvdWxkIHdvcmsKLSAgICAgICAgICAgICAgICAgICAgICAgUGxhdGZvcm1zV2l0aExp
bmtSZXN1bHQoRVMzX1ZVTEtBTigpLCAgICAgICAgRVMzX1ZVTEtBTigpLCAgICAgICAgICAgdHJ1
ZSAgICAgICAgICksIC8vIExvYWRpbmcgKyByZWxvYWRpbmcgYmluYXJ5IHNob3VsZCB3b3JrCi0g
ICAgICAgICAgICAgICAgICAgICAgIFBsYXRmb3Jtc1dpdGhMaW5rUmVzdWx0KEVTMzFfVlVMS0FO
KCksICAgICAgIEVTMzFfVlVMS0FOKCksICAgICAgICAgIHRydWUgICAgICAgICApLCAvLyBMb2Fk
aW5nICsgcmVsb2FkaW5nIGJpbmFyeSBzaG91bGQgd29yawotICAgICAgICAgICAgICAgICAgICAg
ICBQbGF0Zm9ybXNXaXRoTGlua1Jlc3VsdChFUzNfVlVMS0FOKCksICAgICAgICBFUzMxX1ZVTEtB
TigpLCAgICAgICAgICBmYWxzZSAgICAgICAgKSwgLy8gU3dpdGNoaW5nIHRvIG5ld2VyIGNsaWVu
dCB2ZXJzaW9uIHNob3VsZG4ndCB3b3JrIHdpdGggVnVsa2FuCi0gICAgICAgICAgICAgICAgICAg
ICAgIFBsYXRmb3Jtc1dpdGhMaW5rUmVzdWx0KFdpdGhDcmVhdGVWdWxrYW5QaXBlbGluZUR1cmlu
Z0xpbmsoRVMyX1ZVTEtBTigpKSwgICAgICAgIFdpdGhDcmVhdGVWdWxrYW5QaXBlbGluZUR1cmlu
Z0xpbmsoRVMyX1ZVTEtBTigpKSwgICAgICAgICAgIHRydWUgICAgICAgICApLCAvLyBMb2FkaW5n
ICsgcmVsb2FkaW5nIGJpbmFyeSB3aXRoIGNvbXBpbGluZyBzaGFkZXJzIGF0IGxpbmsgdGltZSBz
aG91bGQgd29yawotICAgICAgICAgICAgICAgICAgICAgICBQbGF0Zm9ybXNXaXRoTGlua1Jlc3Vs
dChXaXRoQ3JlYXRlVnVsa2FuUGlwZWxpbmVEdXJpbmdMaW5rKEVTM19WVUxLQU4oKSksICAgICAg
ICBXaXRoQ3JlYXRlVnVsa2FuUGlwZWxpbmVEdXJpbmdMaW5rKEVTM19WVUxLQU4oKSksICAgICAg
ICAgICB0cnVlICAgICAgICAgKSwgLy8gTG9hZGluZyArIHJlbG9hZGluZyBiaW5hcnkgd2l0aCBj
b21waWxpbmcgc2hhZGVycyBhdCBsaW5rIHRpbWUgc2hvdWxkIHdvcmsKLSAgICAgICAgICAgICAg
ICAgICAgICAgKTsKKyAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAg
ICB8IFNhdmUgdGhlICAgICB8IExvYWQgdGhlICAgICB8IEV4cGVjdGVkCisgICAgICAgICAgICAg
ICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAgfCBwcm9ncmFtIGluICAgfCBwcm9ncmFt
IGluICAgfCBsaW5rCisgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAg
ICAgfCB0aGlzIGNvbmZpZyAgfCB0aGlzIGNvbmZpZyAgfCByZXN1bHQKKyAgICAgICAgICAgICAg
ICAgICAgICAgUGxhdGZvcm1zV2l0aExpbmtSZXN1bHQoRVMyX0QzRDExKCksICAgRVMyX0QzRDEx
KCksICAgdHJ1ZSApLCAvLyBMb2FkaW5nICsgcmVsb2FkaW5nIGJpbmFyeSBzaG91bGQgd29yawor
ICAgICAgICAgICAgICAgICAgICAgICBQbGF0Zm9ybXNXaXRoTGlua1Jlc3VsdChFUzNfRDNEMTEo
KSwgICBFUzNfRDNEMTEoKSwgICB0cnVlICksIC8vIExvYWRpbmcgKyByZWxvYWRpbmcgYmluYXJ5
IHNob3VsZCB3b3JrCisgICAgICAgICAgICAgICAgICAgICAgIFBsYXRmb3Jtc1dpdGhMaW5rUmVz
dWx0KEVTMl9EM0QxMSgpLCAgIEVTMl9EM0Q5KCksICAgIGZhbHNlKSwgLy8gU3dpdGNoaW5nIGZy
b20gRDNEMTEgdG8gRDNEOSBzaG91bGRuJ3Qgd29yaworICAgICAgICAgICAgICAgICAgICAgICBQ
bGF0Zm9ybXNXaXRoTGlua1Jlc3VsdChFUzJfRDNEOSgpLCAgICBFUzJfRDNEMTEoKSwgICBmYWxz
ZSksIC8vIFN3aXRjaGluZyBmcm9tIEQzRDkgdG8gRDNEMTEgc2hvdWxkbid0IHdvcmsKKyAgICAg
ICAgICAgICAgICAgICAgICAgUGxhdGZvcm1zV2l0aExpbmtSZXN1bHQoRVMyX0QzRDExKCksICAg
RVMzX0QzRDExKCksICAgZmFsc2UpLCAvLyBTd2l0Y2hpbmcgdG8gbmV3ZXIgY2xpZW50IHZlcnNp
b24gc2hvdWxkbid0IHdvcmsKKyAgICAgICAgICAgICAgICAgICAgICAgUGxhdGZvcm1zV2l0aExp
bmtSZXN1bHQoRVMyX1ZVTEtBTigpLCAgRVMyX1ZVTEtBTigpLCAgdHJ1ZSApLCAvLyBMb2FkaW5n
ICsgcmVsb2FkaW5nIGJpbmFyeSBzaG91bGQgd29yaworICAgICAgICAgICAgICAgICAgICAgICBQ
bGF0Zm9ybXNXaXRoTGlua1Jlc3VsdChFUzNfVlVMS0FOKCksICBFUzNfVlVMS0FOKCksICB0cnVl
ICksIC8vIExvYWRpbmcgKyByZWxvYWRpbmcgYmluYXJ5IHNob3VsZCB3b3JrCisgICAgICAgICAg
ICAgICAgICAgICAgIFBsYXRmb3Jtc1dpdGhMaW5rUmVzdWx0KEVTMzFfVlVMS0FOKCksIEVTMzFf
VlVMS0FOKCksIHRydWUgKSwgLy8gTG9hZGluZyArIHJlbG9hZGluZyBiaW5hcnkgc2hvdWxkIHdv
cmsKKyAgICAgICAgICAgICAgICAgICAgICAgUGxhdGZvcm1zV2l0aExpbmtSZXN1bHQoRVMzX1ZV
TEtBTigpLCAgRVMzMV9WVUxLQU4oKSwgZmFsc2UpLCAvLyBTd2l0Y2hpbmcgdG8gbmV3ZXIgY2xp
ZW50IHZlcnNpb24gc2hvdWxkbid0IHdvcmsgd2l0aCBWdWxrYW4KKyAgICAgICAgICAgICAgICAg
ICAgICAgUGxhdGZvcm1zV2l0aExpbmtSZXN1bHQoRVMyX1ZVTEtBTigpLmVuYWJsZShGZWF0dXJl
OjpDcmVhdGVQaXBlbGluZUR1cmluZ0xpbmspLCBFUzJfVlVMS0FOKCkuZW5hYmxlKEZlYXR1cmU6
OkNyZWF0ZVBpcGVsaW5lRHVyaW5nTGluayksdHJ1ZSksIC8vIExvYWRpbmcgKyByZWxvYWRpbmcg
YmluYXJ5IHdpdGggY29tcGlsaW5nIHNoYWRlcnMgYXQgbGluayB0aW1lIHNob3VsZCB3b3JrCisg
ICAgICAgICAgICAgICAgICAgICAgIFBsYXRmb3Jtc1dpdGhMaW5rUmVzdWx0KEVTM19WVUxLQU4o
KS5lbmFibGUoRmVhdHVyZTo6Q3JlYXRlUGlwZWxpbmVEdXJpbmdMaW5rKSwgRVMzX1ZVTEtBTigp
LmVuYWJsZShGZWF0dXJlOjpDcmVhdGVQaXBlbGluZUR1cmluZ0xpbmspLHRydWUpLCAvLyBMb2Fk
aW5nICsgcmVsb2FkaW5nIGJpbmFyeSB3aXRoIGNvbXBpbGluZyBzaGFkZXJzIGF0IGxpbmsgdGlt
ZSBzaG91bGQgd29yaworICAgICAgICAgICAgICAgICAgICAgICk7CiAvLyBjbGFuZy1mb3JtYXQg
b24KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9nbF90ZXN0
cy9Qcm9ncmFtSW50ZXJmYWNlVGVzdC5jcHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMv
dGVzdHMvZ2xfdGVzdHMvUHJvZ3JhbUludGVyZmFjZVRlc3QuY3BwCmluZGV4IDNlZjI5Nzg0ZTc5
YTYwZmFhMjI0MjY3NjRmMWM4NTRkZDI0ZTEyZmEuLjljY2Y1NjVlNmM1YjBlYmNhNjg4OThjYWYx
MDQ3ZGE5ODYzMmU5YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90
ZXN0cy9nbF90ZXN0cy9Qcm9ncmFtSW50ZXJmYWNlVGVzdC5jcHAKKysrIGIvU291cmNlL1RoaXJk
UGFydHkvQU5HTEUvc3JjL3Rlc3RzL2dsX3Rlc3RzL1Byb2dyYW1JbnRlcmZhY2VUZXN0LmNwcApA
QCAtMTgyLDggKzE4Miw2IEBAIFRFU1RfUChQcm9ncmFtSW50ZXJmYWNlVGVzdEVTMzEsIEdldFJl
c291cmNlTmFtZSkKIC8vIFRlc3RzIGdsR2V0UHJvZ3JhbVJlc291cmNlTG9jYXRpb24uCiBURVNU
X1AoUHJvZ3JhbUludGVyZmFjZVRlc3RFUzMxLCBHZXRSZXNvdXJjZUxvY2F0aW9uKQogewotICAg
IC8vIGh0dHA6Ly9hbmdsZWJ1Zy5jb20vNDA5MgotICAgIEFOR0xFX1NLSVBfVEVTVF9JRihpc1N3
aWZ0c2hhZGVyKCkpOwogICAgIGNvbnN0ZXhwciBjaGFyIGtWU1tdID0KICAgICAgICAgIiN2ZXJz
aW9uIDMxMCBlc1xuIgogICAgICAgICAicHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xuIgpAQCAtMjQ0
LDggKzI0Miw2IEBAIFRFU1RfUChQcm9ncmFtSW50ZXJmYWNlVGVzdEVTMzEsIEdldFJlc291cmNl
TG9jYXRpb24pCiAvLyBUZXN0cyBnbEdldFByb2dyYW1SZXNvdXJjZS4KIFRFU1RfUChQcm9ncmFt
SW50ZXJmYWNlVGVzdEVTMzEsIEdldFJlc291cmNlKQogewotICAgIC8vIGh0dHA6Ly9hbmdsZWJ1
Zy5jb20vNDA5MgotICAgIEFOR0xFX1NLSVBfVEVTVF9JRihpc1N3aWZ0c2hhZGVyKCkpOwogICAg
IGNvbnN0ZXhwciBjaGFyIGtWU1tdID0KICAgICAgICAgIiN2ZXJzaW9uIDMxMCBlc1xuIgogICAg
ICAgICAicHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xuIgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJk
UGFydHkvQU5HTEUvc3JjL3Rlc3RzL2dsX3Rlc3RzL1Byb3Zva2luZ1ZlcnRleFRlc3QuY3BwIGIv
U291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3RzL2dsX3Rlc3RzL1Byb3Zva2luZ1ZlcnRl
eFRlc3QuY3BwCmluZGV4IDQ5OTM4ODhkY2IyNTUwZWE1ZTQxOWVmNjM2MmYwYWJjNTgxYWNhNzku
LmU5MWI1MzJkNTVlODM2YWZjN2EzYWQ5YWFhYWMxMDZlMGY4NzliYWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9nbF90ZXN0cy9Qcm92b2tpbmdWZXJ0ZXhU
ZXN0LmNwcAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvZ2xfdGVzdHMv
UHJvdm9raW5nVmVydGV4VGVzdC5jcHAKQEAgLTEzNSw5ICsxMzUsNiBAQCBURVNUX1AoUHJvdm9r
aW5nVmVydGV4VGVzdCwgRmxhdFRyaWFuZ2xlKQogLy8gRW5zdXJlIHRoYXQgYW55IHByb3Zva2lu
ZyB2ZXJ0ZXggc2hlbmFuaWdhbnMgc3RpbGwgZ2l2ZXMgY29ycmVjdCB2ZXJ0ZXggc3RyZWFtcy4K
IFRFU1RfUChQcm92b2tpbmdWZXJ0ZXhUZXN0LCBGbGF0VHJpV2l0aFRyYW5zZm9ybUZlZWRiYWNr
KQogewotICAgIC8vIGh0dHA6Ly9hbmdsZWJ1Zy5jb20vNDA5MgotICAgIEFOR0xFX1NLSVBfVEVT
VF9JRihJc0FuZHJvaWQoKSAmJiBJc1Z1bGthbigpKTsKLQogICAgIC8vIFRPRE8oY3dhbGxleikg
ZmlndXJlIG91dCB3aHkgaXQgaXMgYnJva2VuIG9uIEFNRCBvbiBNYWMKICAgICBBTkdMRV9TS0lQ
X1RFU1RfSUYoSXNPU1goKSAmJiBJc0FNRCgpKTsKIApAQCAtMTc5LDggKzE3Niw2IEBAIFRFU1Rf
UChQcm92b2tpbmdWZXJ0ZXhUZXN0LCBGbGF0VHJpV2l0aFRyYW5zZm9ybUZlZWRiYWNrKQogLy8g
VGVzdCBkcmF3aW5nIGEgc2ltcGxlIGxpbmUgd2l0aCBmbGF0IHNoYWRpbmcsIGFuZCBkaWZmZXJl
bnQgdmFsdWVkIHZlcnRpY2VzLgogVEVTVF9QKFByb3Zva2luZ1ZlcnRleFRlc3QsIEZsYXRMaW5l
KQogewotICAgIC8vIGh0dHA6Ly9hbmdsZWJ1Zy5jb20vNDA5MgotICAgIEFOR0xFX1NLSVBfVEVT
VF9JRigoSXNXaW5kb3dzKCkgfHwgSXNMaW51eCgpKSAmJiBJc1Z1bGthbigpKTsKICAgICBHTGZs
b2F0IGhhbGZQaXhlbCA9IDEuMGYgLyBzdGF0aWNfY2FzdDxHTGZsb2F0PihnZXRXaW5kb3dXaWR0
aCgpKTsKIAogICAgIEdMaW50IHZlcnRleERhdGFbXSAgICAgPSB7MSwgMn07CkBAIC0yMDUsOCAr
MjAwLDYgQEAgVEVTVF9QKFByb3Zva2luZ1ZlcnRleFRlc3QsIEZsYXRMaW5lKQogLy8gVGVzdCBk
cmF3aW5nIGEgc2ltcGxlIGxpbmUgd2l0aCBmbGF0IHNoYWRpbmcsIGFuZCBkaWZmZXJlbnQgdmFs
dWVkIHZlcnRpY2VzLgogVEVTVF9QKFByb3Zva2luZ1ZlcnRleFRlc3QsIEZsYXRMaW5lV2l0aEZp
cnN0SW5kZXgpCiB7Ci0gICAgLy8gaHR0cDovL2FuZ2xlYnVnLmNvbS80MDkyCi0gICAgQU5HTEVf
U0tJUF9URVNUX0lGKChJc1dpbmRvd3MoKSB8fCBJc0xpbnV4KCkpICYmIElzVnVsa2FuKCkpOwog
ICAgIEdMZmxvYXQgaGFsZlBpeGVsID0gMS4wZiAvIHN0YXRpY19jYXN0PEdMZmxvYXQ+KGdldFdp
bmRvd1dpZHRoKCkpOwogCiAgICAgR0xpbnQgdmVydGV4RGF0YVtdICAgICA9IHswLCAwLCAwLCAw
LCAwLCAwLCAwLCAwLCAwLCAwLCAxLCAyfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L0FOR0xFL3NyYy90ZXN0cy9nbF90ZXN0cy9SZWFkUGl4ZWxzVGVzdC5jcHAgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvZ2xfdGVzdHMvUmVhZFBpeGVsc1Rlc3QuY3BwCmluZGV4
IGY5Njk4OGQ3OWM3MjA2MzYzMDE4NTg3N2E2ZWQ3NWQ4YzE1N2RmYmQuLjE3MmU5MTI5YTg3N2Uw
MTc0NTBmMDFmNWEwZWIwOTEzNjkxMjljM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5
L0FOR0xFL3NyYy90ZXN0cy9nbF90ZXN0cy9SZWFkUGl4ZWxzVGVzdC5jcHAKKysrIGIvU291cmNl
L1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3RzL2dsX3Rlc3RzL1JlYWRQaXhlbHNUZXN0LmNwcApA
QCAtNzksOCArNzksOSBAQCBjbGFzcyBSZWFkUGl4ZWxzUEJPTlZUZXN0IDogcHVibGljIFJlYWRQ
aXhlbHNUZXN0CiAgICAgewogICAgICAgICBBTkdMRV9TS0lQX1RFU1RfSUYoIWhhc1BCT0V4dHMo
KSk7CiAKKyAgICAgICAgbVBCT0J1ZmZlclNpemUgPSBidWZmZXJTaXplOwogICAgICAgICBnbEJp
bmRCdWZmZXIoR0xfUElYRUxfUEFDS19CVUZGRVIsIG1QQk8pOwotICAgICAgICBnbEJ1ZmZlckRh
dGEoR0xfUElYRUxfUEFDS19CVUZGRVIsIGJ1ZmZlclNpemUsIG51bGxwdHIsIEdMX1NUQVRJQ19E
UkFXKTsKKyAgICAgICAgZ2xCdWZmZXJEYXRhKEdMX1BJWEVMX1BBQ0tfQlVGRkVSLCBtUEJPQnVm
ZmVyU2l6ZSwgbnVsbHB0ciwgR0xfU1RBVElDX0RSQVcpOwogICAgICAgICBnbEJpbmRCdWZmZXIo
R0xfUElYRUxfUEFDS19CVUZGRVIsIDApOwogCiAgICAgICAgIGdsRGVsZXRlVGV4dHVyZXMoMSwg
Jm1UZXh0dXJlKTsKQEAgLTExMCwxMSArMTExLDEyIEBAIGNsYXNzIFJlYWRQaXhlbHNQQk9OVlRl
c3QgOiBwdWJsaWMgUmVhZFBpeGVsc1Rlc3QKICAgICAgICAgICAgICAgIElzR0xFeHRlbnNpb25F
bmFibGVkKCJHTF9FWFRfdGV4dHVyZV9zdG9yYWdlIik7CiAgICAgfQogCi0gICAgR0x1aW50IG1Q
Qk8gICAgICAgPSAwOwotICAgIEdMdWludCBtVGV4dHVyZSAgID0gMDsKLSAgICBHTHVpbnQgbUZC
TyAgICAgICA9IDA7Ci0gICAgR0x1aW50IG1GQk9XaWR0aCAgPSAwOwotICAgIEdMdWludCBtRkJP
SGVpZ2h0ID0gMDsKKyAgICBHTHVpbnQgbVBCTyAgICAgICAgICAgPSAwOworICAgIEdMdWludCBt
VGV4dHVyZSAgICAgICA9IDA7CisgICAgR0x1aW50IG1GQk8gICAgICAgICAgID0gMDsKKyAgICBH
THVpbnQgbUZCT1dpZHRoICAgICAgPSAwOworICAgIEdMdWludCBtRkJPSGVpZ2h0ICAgICA9IDA7
CisgICAgR0x1aW50IG1QQk9CdWZmZXJTaXplID0gMDsKIH07CiAKIC8vIFRlc3QgYmFzaWMgdXNh
Z2Ugb2YgUEJPcy4KQEAgLTE0MCw3ICsxNDIsNyBAQCBURVNUX1AoUmVhZFBpeGVsc1BCT05WVGVz
dCwgQmFzaWMpCiAgICAgZ2xCaW5kQnVmZmVyKEdMX1BJWEVMX1BBQ0tfQlVGRkVSLCBtUEJPKTsK
ICAgICBnbFJlYWRQaXhlbHMoMCwgMCwgMTYsIDE2LCBHTF9SR0JBLCBHTF9VTlNJR05FRF9CWVRF
LCAwKTsKIAotICAgIHZvaWQgKm1hcHBlZFB0ciAgICA9IGdsTWFwQnVmZmVyUmFuZ2VFWFQoR0xf
UElYRUxfUEFDS19CVUZGRVIsIDAsIDMyLCBHTF9NQVBfUkVBRF9CSVQpOworICAgIHZvaWQgKm1h
cHBlZFB0ciA9IGdsTWFwQnVmZmVyUmFuZ2VFWFQoR0xfUElYRUxfUEFDS19CVUZGRVIsIDAsIG1Q
Qk9CdWZmZXJTaXplLCBHTF9NQVBfUkVBRF9CSVQpOwogICAgIEdMQ29sb3IgKmRhdGFDb2xvciA9
IHN0YXRpY19jYXN0PEdMQ29sb3IgKj4obWFwcGVkUHRyKTsKICAgICBFWFBFQ1RfR0xfTk9fRVJS
T1IoKTsKIApAQCAtMTExMSw3ICsxMTEzLDggQEAgR1RFU1RfQUxMT1dfVU5JTlNUQU5USUFURURf
UEFSQU1FVEVSSVpFRF9URVNUKFJlYWRQaXhlbHNQQk9UZXN0KTsKIEFOR0xFX0lOU1RBTlRJQVRF
X1RFU1RfRVMzKFJlYWRQaXhlbHNQQk9UZXN0KTsKIAogR1RFU1RfQUxMT1dfVU5JTlNUQU5USUFU
RURfUEFSQU1FVEVSSVpFRF9URVNUKFJlYWRQaXhlbHNQQk9EcmF3VGVzdCk7Ci1BTkdMRV9JTlNU
QU5USUFURV9URVNUX0VTM19BTkQoUmVhZFBpeGVsc1BCT0RyYXdUZXN0LCBXaXRoRm9yY2VWdWxr
YW5GYWxsYmFja0Zvcm1hdChFUzNfVlVMS0FOKCkpKTsKK0FOR0xFX0lOU1RBTlRJQVRFX1RFU1Rf
RVMzX0FORChSZWFkUGl4ZWxzUEJPRHJhd1Rlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgRVMzX1ZVTEtBTigpLmVuYWJsZShGZWF0dXJlOjpGb3JjZUZhbGxiYWNrRm9ybWF0KSk7
CiAKIEdURVNUX0FMTE9XX1VOSU5TVEFOVElBVEVEX1BBUkFNRVRFUklaRURfVEVTVChSZWFkUGl4
ZWxzTXVsdGlzYW1wbGVUZXN0KTsKIEFOR0xFX0lOU1RBTlRJQVRFX1RFU1RfRVMzKFJlYWRQaXhl
bHNNdWx0aXNhbXBsZVRlc3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUv
c3JjL3Rlc3RzL2dsX3Rlc3RzL1JvYnVzdFJlc291cmNlSW5pdFRlc3QuY3BwIGIvU291cmNlL1Ro
aXJkUGFydHkvQU5HTEUvc3JjL3Rlc3RzL2dsX3Rlc3RzL1JvYnVzdFJlc291cmNlSW5pdFRlc3Qu
Y3BwCmluZGV4IGM2OTYwOTU3NWNjMjhkZmE0MTZiYjk5NWU0YzM5M2NkMzNkNzQzNDYuLmRiNWFj
Y2RjZDFlMjMzNWVjNzc3NDU5ODZhODhhNGM1NmViNzZkOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9U
aGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9nbF90ZXN0cy9Sb2J1c3RSZXNvdXJjZUluaXRUZXN0
LmNwcAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvZ2xfdGVzdHMvUm9i
dXN0UmVzb3VyY2VJbml0VGVzdC5jcHAKQEAgLTI3MzIsMTMgKzI3MzIsMTQgQEAgVEVTVF9QKFJv
YnVzdFJlc291cmNlSW5pdFRlc3RFUzMsIEJsaXREZXB0aFN0ZW5jaWxBZnRlckNsZWFyQnVmZmVy
KQogfQogCiBBTkdMRV9JTlNUQU5USUFURV9URVNUX0VTMl9BTkRfRVMzX0FORChSb2J1c3RSZXNv
dXJjZUluaXRUZXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2l0
aEFsbG9jYXRlTm9uWmVyb01lbW9yeShFUzJfVlVMS0FOKCkpKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEVTMl9WVUxLQU4oKS5lbmFibGUoRmVhdHVyZTo6QWxsb2Nh
dGVOb25aZXJvTWVtb3J5KSk7CiAKIEdURVNUX0FMTE9XX1VOSU5TVEFOVElBVEVEX1BBUkFNRVRF
UklaRURfVEVTVChSb2J1c3RSZXNvdXJjZUluaXRUZXN0RVMzKTsKLUFOR0xFX0lOU1RBTlRJQVRF
X1RFU1RfRVMzX0FORChSb2J1c3RSZXNvdXJjZUluaXRUZXN0RVMzLCBXaXRoQWxsb2NhdGVOb25a
ZXJvTWVtb3J5KEVTM19WVUxLQU4oKSkpOworQU5HTEVfSU5TVEFOVElBVEVfVEVTVF9FUzNfQU5E
KFJvYnVzdFJlc291cmNlSW5pdFRlc3RFUzMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgRVMzX1ZVTEtBTigpLmVuYWJsZShGZWF0dXJlOjpBbGxvY2F0ZU5vblplcm9NZW1vcnkpKTsK
IAogR1RFU1RfQUxMT1dfVU5JTlNUQU5USUFURURfUEFSQU1FVEVSSVpFRF9URVNUKFJvYnVzdFJl
c291cmNlSW5pdFRlc3RFUzMxKTsKIEFOR0xFX0lOU1RBTlRJQVRFX1RFU1RfRVMzMV9BTkQoUm9i
dXN0UmVzb3VyY2VJbml0VGVzdEVTMzEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFdpdGhBbGxvY2F0ZU5vblplcm9NZW1vcnkoRVMzMV9WVUxLQU4oKSkpOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBFUzMxX1ZVTEtBTigpLmVuYWJsZShGZWF0dXJlOjpBbGxvY2F0
ZU5vblplcm9NZW1vcnkpKTsKIAogfSAgLy8gbmFtZXNwYWNlIGFuZ2xlCmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvZ2xfdGVzdHMvU2FtcGxlcnNUZXN0LmNw
cCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9nbF90ZXN0cy9TYW1wbGVyc1Rl
c3QuY3BwCmluZGV4IDY1NTRmNzkxMThhNDE3YWVlYjFjMzk3ODNlMGM0M2MzOWJjMjI3M2MuLjlk
MTdmMmIxYjZjNzc3MTU0MDFiMWQwNGExNGQxZjViMDZmYzg4NzkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9nbF90ZXN0cy9TYW1wbGVyc1Rlc3QuY3BwCisr
KyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9nbF90ZXN0cy9TYW1wbGVyc1Rl
c3QuY3BwCkBAIC00Myw4ICs0Myw2IEBAIGNsYXNzIFNhbXBsZXJzVGVzdDMxIDogcHVibGljIFNh
bXBsZXJzVGVzdAogLy8gVmVyaWZ5IHRoYXQgc2FtcGxlclBhcmFtZXRlcmYgc3VwcG9ydHMgVEVY
VFVSRV9NQVhfQU5JU09UUk9QWV9FWFQgdmFsaWQgdmFsdWVzLgogVEVTVF9QKFNhbXBsZXJzVGVz
dCwgVmFsaWRUZXh0dXJlU2FtcGxlck1heEFuaXNvdHJvcHlFeHQpCiB7Ci0gICAgLy8gaHR0cDov
L2FuZ2xlYnVnLmNvbS80MDkyCi0gICAgQU5HTEVfU0tJUF9URVNUX0lGKGlzU3dpZnRzaGFkZXIo
KSk7CiAgICAgR0xTYW1wbGVyIHNhbXBsZXI7CiAKICAgICAvLyBFeGFjdCBtaW4KQEAgLTY1LDgg
KzYzLDYgQEAgVEVTVF9QKFNhbXBsZXJzVGVzdCwgVmFsaWRUZXh0dXJlU2FtcGxlck1heEFuaXNv
dHJvcHlFeHQpCiAvLyBHTF9URVhUVVJFX01BWF9BTklTT1RST1BZX0VYVAogVEVTVF9QKFNhbXBs
ZXJzVGVzdCwgSW52YWxpZFVuZGVyVGV4dHVyZVNhbXBsZXJNYXhBbmlzb3Ryb3B5RXh0KQogewot
ICAgIC8vIGh0dHA6Ly9hbmdsZWJ1Zy5jb20vNDA5MgotICAgIEFOR0xFX1NLSVBfVEVTVF9JRihp
c1N3aWZ0c2hhZGVyKCkpOwogICAgIEdMU2FtcGxlciBzYW1wbGVyOwogCiAgICAgLy8gVW5kZXIg
bWluCkBAIC03Nyw4ICs3Myw2IEBAIFRFU1RfUChTYW1wbGVyc1Rlc3QsIEludmFsaWRVbmRlclRl
eHR1cmVTYW1wbGVyTWF4QW5pc290cm9weUV4dCkKIC8vIEdMX1RFWFRVUkVfTUFYX0FOSVNPVFJP
UFlfRVhUCiBURVNUX1AoU2FtcGxlcnNUZXN0LCBJbnZhbGlkT3ZlclRleHR1cmVTYW1wbGVyTWF4
QW5pc290cm9weUV4dCkKIHsKLSAgICAvLyBodHRwOi8vYW5nbGVidWcuY29tLzQwOTIKLSAgICBB
TkdMRV9TS0lQX1RFU1RfSUYoaXNTd2lmdHNoYWRlcigpKTsKICAgICBHTFNhbXBsZXIgc2FtcGxl
cjsKIAogICAgIEdMZmxvYXQgbWF4VmFsdWUgPSAwLjBmOwpkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvQU5HTEUvc3JjL3Rlc3RzL2dsX3Rlc3RzL1NoYWRlclN0b3JhZ2VCdWZmZXJUZXN0
LmNwcCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9nbF90ZXN0cy9TaGFkZXJT
dG9yYWdlQnVmZmVyVGVzdC5jcHAKaW5kZXggMGFmNGMxYjI4ZGRkNTJkMWZhODRhNTY0YmNlYWZj
NGEzMjViM2NiOS4uMGJlNDgxNDA0NTJhZTNlNGU2N2UxNTVjYmU3ZWQwZDBjNzk2YzUxMSAxMDA2
NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3RzL2dsX3Rlc3RzL1NoYWRl
clN0b3JhZ2VCdWZmZXJUZXN0LmNwcAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMv
dGVzdHMvZ2xfdGVzdHMvU2hhZGVyU3RvcmFnZUJ1ZmZlclRlc3QuY3BwCkBAIC01MzQsOCArNTM0
LDYgQEAgdm9pZCBtYWluKCkKIC8vIFRlc3RzIHJlYWRpbmcgYW5kIHdyaXRpbmcgdG8gYSBzaGFk
ZXIgc3RvcmFnZSBidWZmZXIgYm91bmQgYXQgYW4gb2Zmc2V0LgogVEVTVF9QKFNoYWRlclN0b3Jh
Z2VCdWZmZXJUZXN0MzEsIFNoYWRlclN0b3JhZ2VCdWZmZXJSZWFkV3JpdGVPZmZzZXQpCiB7Ci0g
ICAgLy8gaHR0cDovL2FuZ2xlYnVnLmNvbS80MDkyCi0gICAgQU5HTEVfU0tJUF9URVNUX0lGKGlz
U3dpZnRzaGFkZXIoKSk7CiAgICAgY29uc3RleHByIGNoYXIga0NTW10gPSBSIigjdmVyc2lvbiAz
MTAgZXMKIGxheW91dChsb2NhbF9zaXplX3g9MSwgbG9jYWxfc2l6ZV95PTEsIGxvY2FsX3NpemVf
ej0xKSBpbjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3Rz
L2dsX3Rlc3RzL1NoYWRpbmdSYXRlUWNvbVRlc3QuY3BwIGIvU291cmNlL1RoaXJkUGFydHkvQU5H
TEUvc3JjL3Rlc3RzL2dsX3Rlc3RzL1NoYWRpbmdSYXRlUWNvbVRlc3QuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjRiZWE3YzcxYjg0ZTJjMTgxNThlZmI2NGJkNjA2ZDhkYWNmNmFhNmQKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvZ2xfdGVzdHMvU2hhZGluZ1Jh
dGVRY29tVGVzdC5jcHAKQEAgLTAsMCArMSw4OSBAQAorLy8KKy8vIENvcHlyaWdodCAyMDIyIFRo
ZSBBTkdMRSBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBVc2Ugb2Yg
dGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQg
Y2FuIGJlCisvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLy8KKworLy8gU2hhZGluZ1Jh
dGVRY29tVGVzdC5jcHAgOiBUZXN0cyBvZiB0aGUgR0xfUUNPTV9zaGFkaW5nX3JhdGUgZXh0ZW5z
aW9uLgorCisjaW5jbHVkZSAidGVzdF91dGlscy9BTkdMRVRlc3QuaCIKKworI2luY2x1ZGUgInRl
c3RfdXRpbHMvZ2xfcmFpaS5oIgorCituYW1lc3BhY2UgYW5nbGUKK3sKKworY2xhc3MgU2hhZGlu
Z1JhdGVRY29tVGVzdCA6IHB1YmxpYyBBTkdMRVRlc3QKK3sKKyAgcHJvdGVjdGVkOgorICAgIFNo
YWRpbmdSYXRlUWNvbVRlc3QoKQorICAgIHsKKyAgICAgICAgc2V0V2luZG93V2lkdGgoMjU2KTsK
KyAgICAgICAgc2V0V2luZG93SGVpZ2h0KDI1Nik7CisgICAgICAgIHNldENvbmZpZ1JlZEJpdHMo
OCk7CisgICAgICAgIHNldENvbmZpZ0dyZWVuQml0cyg4KTsKKyAgICAgICAgc2V0Q29uZmlnQmx1
ZUJpdHMoOCk7CisgICAgICAgIHNldENvbmZpZ0FscGhhQml0cyg4KTsKKyAgICB9Cit9OworCisv
LyBUZXN0IGJhc2ljIGZ1bmN0aW9uYWxpdHkgb2YgUUNPTV9zaGFkaW5nX3JhdGUKK1RFU1RfUChT
aGFkaW5nUmF0ZVFjb21UZXN0LCBCYXNpYykKK3sKKyAgICBBTkdMRV9TS0lQX1RFU1RfSUYoIUlz
R0xFeHRlbnNpb25FbmFibGVkKCJHTF9RQ09NX3NoYWRpbmdfcmF0ZSIpKTsKKworICAgIGdsQ2xl
YXJDb2xvcigwLjI1ZiwgMC41ZiwgMC41ZiwgMC41Zik7CisgICAgZ2xTaGFkaW5nUmF0ZVFDT00o
R0xfU0hBRElOR19SQVRFXzFYMV9QSVhFTFNfUUNPTSk7CisgICAgZ2xDbGVhcihHTF9DT0xPUl9C
VUZGRVJfQklUKTsKKyAgICBFWFBFQ1RfUElYRUxfTkVBUigwLCAwLCA2NCwgMTI4LCAxMjgsIDEy
OCwgMS4wKTsKKworICAgIEFOR0xFX0dMX1BST0dSQU0odW5pZm9ybUNvbG9yUHJvZ3JhbSwgZXNz
bDFfc2hhZGVyczo6dnM6OlNpbXBsZSgpLAorICAgICAgICAgICAgICAgICAgICAgZXNzbDFfc2hh
ZGVyczo6ZnM6OlVuaWZvcm1Db2xvcigpKTsKKyAgICBnbFVzZVByb2dyYW0odW5pZm9ybUNvbG9y
UHJvZ3JhbSk7CisgICAgR0xpbnQgY29sb3JVbmlmb3JtTG9jYXRpb24gPQorICAgICAgICBnbEdl
dFVuaWZvcm1Mb2NhdGlvbih1bmlmb3JtQ29sb3JQcm9ncmFtLCBhbmdsZTo6ZXNzbDFfc2hhZGVy
czo6Q29sb3JVbmlmb3JtKCkpOworICAgIEFTU0VSVF9ORShjb2xvclVuaWZvcm1Mb2NhdGlvbiwg
LTEpOworCisgICAgZ2xTaGFkaW5nUmF0ZVFDT00oR0xfU0hBRElOR19SQVRFXzFYMl9QSVhFTFNf
UUNPTSk7CisgICAgZ2xVbmlmb3JtNGYoY29sb3JVbmlmb3JtTG9jYXRpb24sIDEuMGYsIDAuMGYs
IDAuMGYsIDEuMGYpOworICAgIGRyYXdRdWFkKHVuaWZvcm1Db2xvclByb2dyYW0sIGVzc2wxX3No
YWRlcnM6OlBvc2l0aW9uQXR0cmliKCksIDAuNWYpOworICAgIEFTU0VSVF9HTF9OT19FUlJPUigp
OworICAgIEVYUEVDVF9QSVhFTF9DT0xPUl9FUSgwLCAwLCBHTENvbG9yOjpyZWQpOworCisgICAg
Z2xTaGFkaW5nUmF0ZVFDT00oR0xfU0hBRElOR19SQVRFXzJYMV9QSVhFTFNfUUNPTSk7CisgICAg
Z2xVbmlmb3JtNGYoY29sb3JVbmlmb3JtTG9jYXRpb24sIDAuMGYsIDEuMGYsIDAuMGYsIDEuMGYp
OworICAgIGRyYXdRdWFkKHVuaWZvcm1Db2xvclByb2dyYW0sIGVzc2wxX3NoYWRlcnM6OlBvc2l0
aW9uQXR0cmliKCksIDAuNWYpOworICAgIEFTU0VSVF9HTF9OT19FUlJPUigpOworICAgIEVYUEVD
VF9QSVhFTF9DT0xPUl9FUSgwLCAwLCBHTENvbG9yOjpncmVlbik7CisKKyAgICBnbFNoYWRpbmdS
YXRlUUNPTShHTF9TSEFESU5HX1JBVEVfMlgyX1BJWEVMU19RQ09NKTsKKyAgICBnbFVuaWZvcm00
Zihjb2xvclVuaWZvcm1Mb2NhdGlvbiwgMC4wZiwgMC4wZiwgMS4wZiwgMS4wZik7CisgICAgZHJh
d1F1YWQodW5pZm9ybUNvbG9yUHJvZ3JhbSwgZXNzbDFfc2hhZGVyczo6UG9zaXRpb25BdHRyaWIo
KSwgMC41Zik7CisgICAgQVNTRVJUX0dMX05PX0VSUk9SKCk7CisgICAgRVhQRUNUX1BJWEVMX0NP
TE9SX0VRKDAsIDAsIEdMQ29sb3I6OmJsdWUpOworCisgICAgZ2xTaGFkaW5nUmF0ZVFDT00oR0xf
U0hBRElOR19SQVRFXzRYMl9QSVhFTFNfUUNPTSk7CisgICAgZ2xVbmlmb3JtNGYoY29sb3JVbmlm
b3JtTG9jYXRpb24sIDEuMGYsIDEuMGYsIDAuMGYsIDEuMGYpOworICAgIGRyYXdRdWFkKHVuaWZv
cm1Db2xvclByb2dyYW0sIGVzc2wxX3NoYWRlcnM6OlBvc2l0aW9uQXR0cmliKCksIDAuNWYpOwor
ICAgIEFTU0VSVF9HTF9OT19FUlJPUigpOworICAgIEVYUEVDVF9QSVhFTF9DT0xPUl9FUSgwLCAw
LCBHTENvbG9yOjp5ZWxsb3cpOworCisgICAgZ2xTaGFkaW5nUmF0ZVFDT00oR0xfU0hBRElOR19S
QVRFXzRYNF9QSVhFTFNfUUNPTSk7CisgICAgZ2xVbmlmb3JtNGYoY29sb3JVbmlmb3JtTG9jYXRp
b24sIDAuMGYsIDEuMGYsIDEuMGYsIDEuMGYpOworICAgIGRyYXdRdWFkKHVuaWZvcm1Db2xvclBy
b2dyYW0sIGVzc2wxX3NoYWRlcnM6OlBvc2l0aW9uQXR0cmliKCksIDAuNWYpOworICAgIEFTU0VS
VF9HTF9OT19FUlJPUigpOworICAgIEVYUEVDVF9QSVhFTF9DT0xPUl9FUSgwLCAwLCBHTENvbG9y
OjpjeWFuKTsKKworICAgIGdsRW5hYmxlKEdMX1NIQURJTkdfUkFURV9QUkVTRVJWRV9BU1BFQ1Rf
UkFUSU9fUUNPTSk7CisgICAgZ2xVbmlmb3JtNGYoY29sb3JVbmlmb3JtTG9jYXRpb24sIDEuMGYs
IDAuMGYsIDEuMGYsIDEuMGYpOworICAgIGRyYXdRdWFkKHVuaWZvcm1Db2xvclByb2dyYW0sIGVz
c2wxX3NoYWRlcnM6OlBvc2l0aW9uQXR0cmliKCksIDAuNWYpOworICAgIEFTU0VSVF9HTF9OT19F
UlJPUigpOworICAgIEVYUEVDVF9QSVhFTF9DT0xPUl9FUSgwLCAwLCBHTENvbG9yOjptYWdlbnRh
KTsKK30KKworLy8gVXNlIHRoaXMgdG8gc2VsZWN0IHdoaWNoIGNvbmZpZ3VyYXRpb25zIChlLmcu
IHdoaWNoIHJlbmRlcmVyLCB3aGljaCBHTEVTIG1ham9yIHZlcnNpb24pIHRoZXNlCisvLyB0ZXN0
cyBzaG91bGQgYmUgcnVuIGFnYWluc3QuCitHVEVTVF9BTExPV19VTklOU1RBTlRJQVRFRF9QQVJB
TUVURVJJWkVEX1RFU1QoU2hhZGluZ1JhdGVRY29tVGVzdCk7CitBTkdMRV9JTlNUQU5USUFURV9U
RVNUX0VTMl9BTkRfRVMzX0FORF9FUzMxKFNoYWRpbmdSYXRlUWNvbVRlc3QpOworCit9ICAvLyBu
YW1lc3BhY2UgYW5nbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90
ZXN0cy9nbF90ZXN0cy9TaW1wbGVPcGVyYXRpb25UZXN0LmNwcCBiL1NvdXJjZS9UaGlyZFBhcnR5
L0FOR0xFL3NyYy90ZXN0cy9nbF90ZXN0cy9TaW1wbGVPcGVyYXRpb25UZXN0LmNwcAppbmRleCA4
NmJjZDZlMGM1NzhiMmIyZDZlZDQyZDg1NGQ3N2NlZmRmNzU3MTBlLi4zM2FlNDBkODM2MjNjYmU0
MjhkYjZmMzFkMjcwZGU2ZDM0ZWZjMTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9B
TkdMRS9zcmMvdGVzdHMvZ2xfdGVzdHMvU2ltcGxlT3BlcmF0aW9uVGVzdC5jcHAKKysrIGIvU291
cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3RzL2dsX3Rlc3RzL1NpbXBsZU9wZXJhdGlvblRl
c3QuY3BwCkBAIC0xMzM0LDE5ICsxMzM0LDE1IEBAIFRFU1RfUChTaW1wbGVPcGVyYXRpb25UZXN0
LCBEcmF3RWxlbWVudHNaZXJvSW5zdGFuY2VDb3VudElzTm9PcCkKIC8vIHRlc3RzIHNob3VsZCBi
ZSBydW4gYWdhaW5zdC4KIEFOR0xFX0lOU1RBTlRJQVRFX1RFU1RfRVMyX0FORF9FUzNfQU5EKAog
ICAgIFNpbXBsZU9wZXJhdGlvblRlc3QsCi0gICAgV2l0aE1ldGFsRm9yY2VkQnVmZmVyR1BVU3Rv
cmFnZShFUzNfTUVUQUwoKSksCi0gICAgV2l0aE1ldGFsTWVtb3J5QmFycmllckFuZENoZWFwUmVu
ZGVyUGFzcyhFUzNfTUVUQUwoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIC8qIGhhc0JhcnJpZXIgKi8gZmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAvKiBjaGVhcFJlbmRlclBhc3MgKi8gZmFsc2UpLAotICAg
IFdpdGhOb1Z1bGthblZpZXdwb3J0RmxpcChFUzJfVlVMS0FOKCkpKTsKKyAgICBFUzNfTUVUQUwo
KS5lbmFibGUoRmVhdHVyZTo6Rm9yY2VCdWZmZXJHUFVTdG9yYWdlKSwKKyAgICBFUzNfTUVUQUwo
KS5kaXNhYmxlKEZlYXR1cmU6Okhhc0V4cGxpY2l0TWVtQmFycmllcikuZGlzYWJsZShGZWF0dXJl
OjpIYXNDaGVhcFJlbmRlclBhc3MpLAorICAgIEVTMl9WVUxLQU4oKS5kaXNhYmxlKEZlYXR1cmU6
OlN1cHBvcnRzTmVnYXRpdmVWaWV3cG9ydCkpOwogCiBBTkdMRV9JTlNUQU5USUFURV9URVNUX0VT
Ml9BTkRfRVMzX0FORCgKICAgICBUcmlhbmdsZUZhbkRyYXdUZXN0LAotICAgIFdpdGhNZXRhbEZv
cmNlZEJ1ZmZlckdQVVN0b3JhZ2UoRVMzX01FVEFMKCkpLAotICAgIFdpdGhNZXRhbE1lbW9yeUJh
cnJpZXJBbmRDaGVhcFJlbmRlclBhc3MoRVMzX01FVEFMKCksCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBoYXNCYXJyaWVyICovIGZhbHNlLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogY2hlYXBSZW5kZXJQYXNz
ICovIGZhbHNlKSwKLSAgICBXaXRoTm9WdWxrYW5WaWV3cG9ydEZsaXAoRVMyX1ZVTEtBTigpKSk7
CisgICAgRVMzX01FVEFMKCkuZW5hYmxlKEZlYXR1cmU6OkZvcmNlQnVmZmVyR1BVU3RvcmFnZSks
CisgICAgRVMzX01FVEFMKCkuZGlzYWJsZShGZWF0dXJlOjpIYXNFeHBsaWNpdE1lbUJhcnJpZXIp
LmRpc2FibGUoRmVhdHVyZTo6SGFzQ2hlYXBSZW5kZXJQYXNzKSwKKyAgICBFUzJfVlVMS0FOKCku
ZGlzYWJsZShGZWF0dXJlOjpTdXBwb3J0c05lZ2F0aXZlVmlld3BvcnQpKTsKIAogQU5HTEVfSU5T
VEFOVElBVEVfVEVTVF9FUzJfQU5EX0VTM19BTkRfRVMzMShTaW1wbGVPcGVyYXRpb25UZXN0MzEp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvZ2xfdGVz
dHMvU3RhdGVDaGFuZ2VUZXN0LmNwcCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0
cy9nbF90ZXN0cy9TdGF0ZUNoYW5nZVRlc3QuY3BwCmluZGV4IDVmYmM0OTFiYzZhZDQ5MGQwMDIz
NTVjZWI0N2VhNDAxNDliNjBmZTYuLjJiMTM0NTBiZWEwZWY4ZjVmOTljNWFkMzIxZjlmMzJmOGEx
MjU5ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9nbF90
ZXN0cy9TdGF0ZUNoYW5nZVRlc3QuY3BwCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3Ny
Yy90ZXN0cy9nbF90ZXN0cy9TdGF0ZUNoYW5nZVRlc3QuY3BwCkBAIC01NTAsOCArNTUwLDYgQEAg
VEVTVF9QKFN0YXRlQ2hhbmdlVGVzdEVTMywgQ29weVRleFN1YkltYWdlM0RTeW5jKQogLy8gRW5z
dXJlIHRoYXQgQmxpdEZyYW1lYnVmZmVyIHN5bmNzIGZyYW1lYnVmZmVyIGNoYW5nZXMuCiBURVNU
X1AoU3RhdGVDaGFuZ2VUZXN0RVMzLCBCbGl0RnJhbWVidWZmZXJTeW5jKQogewotICAgIC8vIGh0
dHA6Ly9hbmdsZWJ1Zy5jb20vNDA5MgotICAgIEFOR0xFX1NLSVBfVEVTVF9JRihJc1Z1bGthbigp
KTsKICAgICBnbEJpbmRGcmFtZWJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgbUZyYW1lYnVmZmVyKTsK
IAogICAgIC8vIEluaXQgZmlyc3QgdGV4dHVyZSB0byByZWQKQEAgLTYyMSw4ICs2MTksNiBAQCBU
RVNUX1AoU3RhdGVDaGFuZ2VUZXN0RVMzLCBSZWFkQnVmZmVyQW5kRHJhd0J1ZmZlcnNTeW5jKQog
Ly8gQWRhcHRlZCBwYXJ0aWFsbHkgZnJvbSBXZWJHTCAyIHRlc3QgInJlbmRlcmJ1ZmZlcnMvaW52
YWxpZGF0ZS1mcmFtZWJ1ZmZlciIKIFRFU1RfUChTdGF0ZUNoYW5nZVRlc3RFUzMsIEluY29tcGxl
dGVSZW5kZXJidWZmZXJBdHRhY2htZW50SW52YWxpZGF0ZVN5bmMpCiB7Ci0gICAgLy8gaHR0cDov
L2FuZ2xlYnVnLmNvbS80MDkyCi0gICAgQU5HTEVfU0tJUF9URVNUX0lGKElzVnVsa2FuKCkpOwog
ICAgIGdsQmluZEZyYW1lYnVmZmVyKEdMX0ZSQU1FQlVGRkVSLCBtRnJhbWVidWZmZXIpOwogICAg
IGdsQmluZFJlbmRlcmJ1ZmZlcihHTF9SRU5ERVJCVUZGRVIsIG1SZW5kZXJidWZmZXIpOwogICAg
IEdMaW50IHNhbXBsZXMgPSAwOwpAQCAtMTIxNyw4ICsxMjEzLDYgQEAgVEVTVF9QKFN0YXRlQ2hh
bmdlVGVzdEVTMywgU2FtcGxlck1ldGFkYXRhVXBkYXRlT25TZXRQcm9ncmFtKQogLy8gVGVzdHMg
dGhhdCByZWRlZmluaW5nIEJ1ZmZlciBzdG9yYWdlIHN5bmNzIHdpdGggdGhlIFRyYW5zZm9ybSBG
ZWVkYmFjayBvYmplY3QuCiBURVNUX1AoU3RhdGVDaGFuZ2VUZXN0RVMzLCBSZWRlZmluZVRyYW5z
Zm9ybUZlZWRiYWNrQnVmZmVyKQogewotICAgIC8vIGh0dHA6Ly9hbmdsZWJ1Zy5jb20vNDA5Mgot
ICAgIEFOR0xFX1NLSVBfVEVTVF9JRihJc1Z1bGthbigpKTsKICAgICAvLyBDcmVhdGUgdGhlIG1v
c3Qgc2ltcGxlIHByb2dyYW0gcG9zc2libGUgLSBzaW1wbGUgYSBwYXNzdGhyb3VnaCBmb3IgYSBm
bG9hdCBhdHRyaWJ1dGUuCiAgICAgY29uc3RleHByIGNoYXIga1ZlcnRleFNoYWRlcltdID0gUiIo
I3ZlcnNpb24gMzAwIGVzCiBpbiBmbG9hdCB2YWx1ZUluOwpAQCAtNDU2Niw5ICs0NTYwLDYgQEAg
dm9pZCBtYWluKCkKIC8vIGNhbGwgd29ya3MgY29ycmVjdGx5LiAgVGhpcyByZXF1aXJlcyBhIGJh
cnJpZXIgaW4gYmV0d2VlbiB0aGUgZHJhdyBjYWxscy4KIFRFU1RfUChTaW1wbGVTdGF0ZUNoYW5n
ZVRlc3RFUzMxLCBEcmF3V2l0aFVCT1RoZW5EcmF3V2l0aFNTQk8pCiB7Ci0gICAgLy8gaHR0cDov
L2FuZ2xlYnVnLmNvbS81NTkzCi0gICAgQU5HTEVfU0tJUF9URVNUX0lGKElzRDNEMTEoKSk7Ci0K
ICAgICBHTGludCBtYXhGcmFnbWVudFNoYWRlclN0b3JhZ2VCbG9ja3M7CiAgICAgZ2xHZXRJbnRl
Z2VydihHTF9NQVhfRlJBR01FTlRfU0hBREVSX1NUT1JBR0VfQkxPQ0tTLCAmbWF4RnJhZ21lbnRT
aGFkZXJTdG9yYWdlQmxvY2tzKTsKIApAQCAtNDY3MCw2ICs0NjYxLDIyMyBAQCB2b2lkIG1haW4o
KQogICAgIGdsVW5tYXBCdWZmZXIoR0xfU0hBREVSX1NUT1JBR0VfQlVGRkVSKTsKIH0KIAorLy8g
VGVzdHMgdGhhdCB3cml0aW5nIHRvIGFuIFNTQk8gaW4gdGhlIGZyYWdtZW50IHNoYWRlciBiZWZv
cmUgYW5kIGFmdGVyIGEgY2hhbmdlIHRvIHRoZSBkcmF3YnVmZmVycworLy8gc3RpbGwgd29ya3MK
K1RFU1RfUChTaW1wbGVTdGF0ZUNoYW5nZVRlc3RFUzMxLCBGcmFnV3JpdGVTU0JPVGhlbkNoYW5n
ZURyYXdidWZmZXJzVGhlbldyaXRlU1NCTykKK3sKKyAgICBHTGludCBtYXhGcmFnbWVudFNoYWRl
clN0b3JhZ2VCbG9ja3M7CisgICAgZ2xHZXRJbnRlZ2VydihHTF9NQVhfRlJBR01FTlRfU0hBREVS
X1NUT1JBR0VfQkxPQ0tTLCAmbWF4RnJhZ21lbnRTaGFkZXJTdG9yYWdlQmxvY2tzKTsKKworICAg
IEFOR0xFX1NLSVBfVEVTVF9JRihtYXhGcmFnbWVudFNoYWRlclN0b3JhZ2VCbG9ja3MgPCAxKTsK
KworICAgIGNvbnN0ZXhwciBHTHNpemVpIGtTaXplID0gMTsKKworICAgIEdMVGV4dHVyZSBjb2xv
cjsKKyAgICBnbEJpbmRUZXh0dXJlKEdMX1RFWFRVUkVfMkQsIGNvbG9yKTsKKyAgICBnbFRleFN0
b3JhZ2UyRChHTF9URVhUVVJFXzJELCAxLCBHTF9SR0JBOCwga1NpemUsIGtTaXplKTsKKyAgICBF
WFBFQ1RfR0xfTk9fRVJST1IoKTsKKworICAgIEdMRnJhbWVidWZmZXIgZmJvOworICAgIGdsQmlu
ZEZyYW1lYnVmZmVyKEdMX0ZSQU1FQlVGRkVSLCBmYm8pOworICAgIGdsRnJhbWVidWZmZXJUZXh0
dXJlMkQoR0xfRlJBTUVCVUZGRVIsIEdMX0NPTE9SX0FUVEFDSE1FTlQwLCBHTF9URVhUVVJFXzJE
LCBjb2xvciwgMCk7CisgICAgRVhQRUNUX0dMX05PX0VSUk9SKCk7CisKKyAgICBjb25zdGV4cHIg
c3RkOjphcnJheTxmbG9hdCwgND4ga0J1ZmZlckluaXRWYWx1ZSA9IHswLjEyNWYsIDAuMjVmLCAw
LjVmLCAxLjBmfTsKKyAgICBHTEJ1ZmZlciBidWZmZXI7CisgICAgZ2xCaW5kQnVmZmVyKEdMX1NI
QURFUl9TVE9SQUdFX0JVRkZFUiwgYnVmZmVyKTsKKyAgICBnbEJ1ZmZlckRhdGEoR0xfU0hBREVS
X1NUT1JBR0VfQlVGRkVSLCBzaXplb2Yoa0J1ZmZlckluaXRWYWx1ZSksIGtCdWZmZXJJbml0VmFs
dWUuZGF0YSgpLAorICAgICAgICAgICAgICAgICBHTF9TVEFUSUNfRFJBVyk7CisgICAgZ2xCaW5k
QnVmZmVyQmFzZShHTF9TSEFERVJfU1RPUkFHRV9CVUZGRVIsIDAsIGJ1ZmZlcik7CisKKyAgICAv
LyBDcmVhdGUgYSBwcm9ncmFtIHRoYXQgd3JpdGVzIHRvIHRoZSBTU0JPIGluIHRoZSBmcmFnbWVu
dCBzaGFkZXIuCisgICAgY29uc3RleHByIGNoYXIga0ZTW10gPSBSIigjdmVyc2lvbiAzMTAgZXMK
K3ByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OworbGF5b3V0KGJpbmRpbmcgPSAwLCBzdGQ0MzApIGJ1
ZmZlciBPdXRwdXQgeworICAgIHZlYzQgdmFsdWU7Cit9IGI7CitvdXQgdmVjNCBjb2xvck91dDsK
K3VuaWZvcm0gdmVjNCB2YWx1ZTsKK3ZvaWQgbWFpbigpCit7CisgICAgYi52YWx1ZSA9IHZhbHVl
OworICAgIGNvbG9yT3V0ID0gdmVjNCgxLCAxLCAxLCAwKTsKK30pIjsKKworICAgIEdMdWludCB2
cyA9IENvbXBpbGVTaGFkZXIoR0xfVkVSVEVYX1NIQURFUiwgZXNzbDMxX3NoYWRlcnM6OnZzOjpT
aW1wbGUoKSk7CisgICAgR0x1aW50IGZzID0gQ29tcGlsZVNoYWRlcihHTF9GUkFHTUVOVF9TSEFE
RVIsIGtGUyk7CisKKyAgICBjb25zdCBHTHVpbnQgcHJvZ3JhbSA9IGdsQ3JlYXRlUHJvZ3JhbSgp
OworICAgIGdsQXR0YWNoU2hhZGVyKHByb2dyYW0sIHZzKTsKKyAgICBnbEF0dGFjaFNoYWRlcihw
cm9ncmFtLCBmcyk7CisgICAgZ2xMaW5rUHJvZ3JhbShwcm9ncmFtKTsKKyAgICBDaGVja0xpbmtT
dGF0dXNBbmRSZXR1cm5Qcm9ncmFtKHByb2dyYW0sIHRydWUpOworCisgICAgLy8gRGV0YWNoIHRo
ZSBzaGFkZXJzLCBzbyBhbnkgZHJhdy10aW1lIHNoYWRlciByZXdyaXRpbmcgd29uJ3QgYmUgYWJs
ZSB0byB1c2UgdGhlbS4KKyAgICBnbERldGFjaFNoYWRlcihwcm9ncmFtLCB2cyk7CisgICAgZ2xE
ZXRhY2hTaGFkZXIocHJvZ3JhbSwgZnMpOworCisgICAgZ2xVc2VQcm9ncmFtKHByb2dyYW0pOwor
ICAgIEdMaW50IHBvc2l0aW9uTG9jID0gZ2xHZXRBdHRyaWJMb2NhdGlvbihwcm9ncmFtLCBlc3Ns
MzFfc2hhZGVyczo6UG9zaXRpb25BdHRyaWIoKSk7CisgICAgQVNTRVJUX05FKC0xLCBwb3NpdGlv
bkxvYyk7CisgICAgR0xpbnQgdmFsdWVMb2MgPSBnbEdldFVuaWZvcm1Mb2NhdGlvbihwcm9ncmFt
LCAidmFsdWUiKTsKKyAgICBBU1NFUlRfTkUoLTEsIHZhbHVlTG9jKTsKKworICAgIGNvbnN0IHN0
ZDo6YXJyYXk8VmVjdG9yMywgNj4gJnF1YWRWZXJ0aWNlcyA9IEdldFF1YWRWZXJ0aWNlcygpOwor
ICAgIGNvbnN0IHNpemVfdCBwb3NCdWZmZXJTaXplICAgICAgICAgICAgICAgICA9IHF1YWRWZXJ0
aWNlcy5zaXplKCkgKiBzaXplb2YoVmVjdG9yMyk7CisKKyAgICBHTEJ1ZmZlciBwb3NCdWZmZXI7
CisgICAgZ2xCaW5kQnVmZmVyKEdMX0FSUkFZX0JVRkZFUiwgcG9zQnVmZmVyKTsKKyAgICBnbEJ1
ZmZlckRhdGEoR0xfQVJSQVlfQlVGRkVSLCBwb3NCdWZmZXJTaXplLCBxdWFkVmVydGljZXMuZGF0
YSgpLCBHTF9TVEFUSUNfRFJBVyk7CisgICAgZ2xWZXJ0ZXhBdHRyaWJQb2ludGVyKHBvc2l0aW9u
TG9jLCAzLCBHTF9GTE9BVCwgR0xfRkFMU0UsIDAsIG51bGxwdHIpOworICAgIGdsRW5hYmxlVmVy
dGV4QXR0cmliQXJyYXkocG9zaXRpb25Mb2MpOworCisgICAgZ2xVc2VQcm9ncmFtKHByb2dyYW0p
OworICAgIGNvbnN0ZXhwciBmbG9hdCBrVmFsdWUxWzRdID0gezAuMWYsIDAuMmYsIDAuM2YsIDAu
NGZ9OworCisgICAgZ2xVbmlmb3JtNGZ2KHZhbHVlTG9jLCAxLCBrVmFsdWUxKTsKKyAgICBnbERy
YXdBcnJheXMoR0xfVFJJQU5HTEVTLCAwLCA2KTsKKyAgICBnbE1lbW9yeUJhcnJpZXIoR0xfU0hB
REVSX1NUT1JBR0VfQkFSUklFUl9CSVQpOworICAgIEVYUEVDVF9HTF9OT19FUlJPUigpOworCisg
ICAgLy8gVmVyaWZ5IHRoYXQgdGhlIHByb2dyYW0gd3JvdGUgdGhlIFNTQk8gY29ycmVjdGx5Lgor
ICAgIGNvbnN0IGZsb2F0ICpwdHIgPSByZWludGVycHJldF9jYXN0PGNvbnN0IGZsb2F0ICo+KAor
ICAgICAgICBnbE1hcEJ1ZmZlclJhbmdlKEdMX1NIQURFUl9TVE9SQUdFX0JVRkZFUiwgMCwgc2l6
ZW9mKGtCdWZmZXJJbml0VmFsdWUpLCBHTF9NQVBfUkVBRF9CSVQpKTsKKworICAgIGZvciAoaW50
IGkgPSAwOyBpIDwgNDsgKytpKQorICAgIHsKKyAgICAgICAgRVhQRUNUX05FQVIocHRyW2ldLCBr
VmFsdWUxW2ldLCAwLjAwMSk7CisgICAgfQorCisgICAgZ2xVbm1hcEJ1ZmZlcihHTF9TSEFERVJf
U1RPUkFHRV9CVUZGRVIpOworCisgICAgR0xlbnVtIGRyYXdCdWZmZXJzW10gPSB7R0xfTk9ORX07
CisgICAgZ2xEcmF3QnVmZmVycygxLCBkcmF3QnVmZmVycyk7CisKKyAgICBjb25zdGV4cHIgZmxv
YXQga1ZhbHVlMls0XSA9IHswLjVmLCAwLjZmLCAwLjdmLCAwLjlmfTsKKyAgICBnbFVuaWZvcm00
ZnYodmFsdWVMb2MsIDEsIGtWYWx1ZTIpOworICAgIGdsRHJhd0FycmF5cyhHTF9UUklBTkdMRVMs
IDAsIDYpOworICAgIGdsTWVtb3J5QmFycmllcihHTF9TSEFERVJfU1RPUkFHRV9CQVJSSUVSX0JJ
VCk7CisgICAgRVhQRUNUX0dMX05PX0VSUk9SKCk7CisgICAgLy8gVmVyaWZ5IHRoYXQgdGhlIHBy
b2dyYW0gd3JvdGUgdGhlIFNTQk8gY29ycmVjdGx5LgorICAgIHB0ciA9IHJlaW50ZXJwcmV0X2Nh
c3Q8Y29uc3QgZmxvYXQgKj4oCisgICAgICAgIGdsTWFwQnVmZmVyUmFuZ2UoR0xfU0hBREVSX1NU
T1JBR0VfQlVGRkVSLCAwLCBzaXplb2Yoa0J1ZmZlckluaXRWYWx1ZSksIEdMX01BUF9SRUFEX0JJ
VCkpOworCisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCA0OyArK2kpCisgICAgeworICAgICAgICBF
WFBFQ1RfTkVBUihwdHJbaV0sIGtWYWx1ZTJbaV0sIDAuMDAxKTsKKyAgICB9CisKKyAgICBnbFVu
bWFwQnVmZmVyKEdMX1NIQURFUl9TVE9SQUdFX0JVRkZFUik7Cit9CisKKy8vIFRlc3RzIHRoYXQg
d3JpdGluZyB0byBhbiBTU0JPIGluIHRoZSB2ZXJ0ZXggc2hhZGVyIGJlZm9yZSBhbmQgYWZ0ZXIg
YSBjaGFuZ2UgdG8gdGhlIGRyYXdidWZmZXJzCisvLyBzdGlsbCB3b3JrcworVEVTVF9QKFNpbXBs
ZVN0YXRlQ2hhbmdlVGVzdEVTMzEsIFZlcnRXcml0ZVNTQk9UaGVuQ2hhbmdlRHJhd2J1ZmZlcnNU
aGVuV3JpdGVTU0JPKQoreworICAgIEdMaW50IG1heFZlcnRleFNoYWRlclN0b3JhZ2VCbG9ja3M7
CisgICAgZ2xHZXRJbnRlZ2VydihHTF9NQVhfVkVSVEVYX1NIQURFUl9TVE9SQUdFX0JMT0NLUywg
Jm1heFZlcnRleFNoYWRlclN0b3JhZ2VCbG9ja3MpOworCisgICAgQU5HTEVfU0tJUF9URVNUX0lG
KG1heFZlcnRleFNoYWRlclN0b3JhZ2VCbG9ja3MgPCAxKTsKKworICAgIGNvbnN0ZXhwciBHTHNp
emVpIGtTaXplID0gMTsKKworICAgIEdMVGV4dHVyZSBjb2xvcjsKKyAgICBnbEJpbmRUZXh0dXJl
KEdMX1RFWFRVUkVfMkQsIGNvbG9yKTsKKyAgICBnbFRleFN0b3JhZ2UyRChHTF9URVhUVVJFXzJE
LCAxLCBHTF9SR0JBOCwga1NpemUsIGtTaXplKTsKKyAgICBFWFBFQ1RfR0xfTk9fRVJST1IoKTsK
KworICAgIEdMRnJhbWVidWZmZXIgZmJvOworICAgIGdsQmluZEZyYW1lYnVmZmVyKEdMX0ZSQU1F
QlVGRkVSLCBmYm8pOworICAgIGdsRnJhbWVidWZmZXJUZXh0dXJlMkQoR0xfRlJBTUVCVUZGRVIs
IEdMX0NPTE9SX0FUVEFDSE1FTlQwLCBHTF9URVhUVVJFXzJELCBjb2xvciwgMCk7CisgICAgRVhQ
RUNUX0dMX05PX0VSUk9SKCk7CisKKyAgICBjb25zdGV4cHIgc3RkOjphcnJheTxmbG9hdCwgND4g
a0J1ZmZlckluaXRWYWx1ZSA9IHswLjEyNWYsIDAuMjVmLCAwLjVmLCAxLjBmfTsKKyAgICBHTEJ1
ZmZlciBidWZmZXI7CisgICAgZ2xCaW5kQnVmZmVyKEdMX1NIQURFUl9TVE9SQUdFX0JVRkZFUiwg
YnVmZmVyKTsKKyAgICBnbEJ1ZmZlckRhdGEoR0xfU0hBREVSX1NUT1JBR0VfQlVGRkVSLCBzaXpl
b2Yoa0J1ZmZlckluaXRWYWx1ZSksIGtCdWZmZXJJbml0VmFsdWUuZGF0YSgpLAorICAgICAgICAg
ICAgICAgICBHTF9TVEFUSUNfRFJBVyk7CisgICAgZ2xCaW5kQnVmZmVyQmFzZShHTF9TSEFERVJf
U1RPUkFHRV9CVUZGRVIsIDAsIGJ1ZmZlcik7CisKKyAgICAvLyBDcmVhdGUgYSBwcm9ncmFtIHRo
YXQgd3JpdGVzIHRvIHRoZSBTU0JPIGluIHRoZSB2ZXJ0ZXggc2hhZGVyLgorICAgIGNvbnN0ZXhw
ciBjaGFyIGtWU1tdID0gUiIoI3ZlcnNpb24gMzEwIGVzCitpbiB2ZWM0IGFfcG9zaXRpb247Cit1
bmlmb3JtIHZlYzQgdmFsdWU7CitsYXlvdXQoYmluZGluZyA9IDAsIHN0ZDQzMCkgYnVmZmVyIE91
dHB1dCB7CisgICAgdmVjNCB2YWx1ZTsKK30gYjsKK3ZvaWQgbWFpbigpCit7CisgICAgYi52YWx1
ZSA9IHZhbHVlOworICAgIGdsX1Bvc2l0aW9uID0gYV9wb3NpdGlvbjsKK30pIjsKKworICAgIEdM
dWludCB2cyA9IENvbXBpbGVTaGFkZXIoR0xfVkVSVEVYX1NIQURFUiwga1ZTKTsKKyAgICBHTHVp
bnQgZnMgPSBDb21waWxlU2hhZGVyKEdMX0ZSQUdNRU5UX1NIQURFUiwgZXNzbDMxX3NoYWRlcnM6
OmZzOjpHcmVlbigpKTsKKworICAgIGNvbnN0IEdMdWludCBwcm9ncmFtID0gZ2xDcmVhdGVQcm9n
cmFtKCk7CisgICAgZ2xBdHRhY2hTaGFkZXIocHJvZ3JhbSwgdnMpOworICAgIGdsQXR0YWNoU2hh
ZGVyKHByb2dyYW0sIGZzKTsKKyAgICBnbExpbmtQcm9ncmFtKHByb2dyYW0pOworICAgIENoZWNr
TGlua1N0YXR1c0FuZFJldHVyblByb2dyYW0ocHJvZ3JhbSwgdHJ1ZSk7CisKKyAgICAvLyBEZXRh
Y2ggdGhlIHNoYWRlcnMsIHNvIGFueSBkcmF3LXRpbWUgc2hhZGVyIHJld3JpdGluZyB3b24ndCBi
ZSBhYmxlIHRvIHVzZSB0aGVtLgorICAgIGdsRGV0YWNoU2hhZGVyKHByb2dyYW0sIHZzKTsKKyAg
ICBnbERldGFjaFNoYWRlcihwcm9ncmFtLCBmcyk7CisKKyAgICBnbFVzZVByb2dyYW0ocHJvZ3Jh
bSk7CisgICAgR0xpbnQgcG9zaXRpb25Mb2MgPSBnbEdldEF0dHJpYkxvY2F0aW9uKHByb2dyYW0s
IGVzc2wzMV9zaGFkZXJzOjpQb3NpdGlvbkF0dHJpYigpKTsKKyAgICBBU1NFUlRfTkUoLTEsIHBv
c2l0aW9uTG9jKTsKKyAgICBHTGludCB2YWx1ZUxvYyA9IGdsR2V0VW5pZm9ybUxvY2F0aW9uKHBy
b2dyYW0sICJ2YWx1ZSIpOworICAgIEFTU0VSVF9ORSgtMSwgdmFsdWVMb2MpOworCisgICAgY29u
c3Qgc3RkOjphcnJheTxWZWN0b3IzLCA2PiAmcXVhZFZlcnRpY2VzID0gR2V0UXVhZFZlcnRpY2Vz
KCk7CisgICAgY29uc3Qgc2l6ZV90IHBvc0J1ZmZlclNpemUgICAgICAgICAgICAgICAgID0gcXVh
ZFZlcnRpY2VzLnNpemUoKSAqIHNpemVvZihWZWN0b3IzKTsKKworICAgIEdMQnVmZmVyIHBvc0J1
ZmZlcjsKKyAgICBnbEJpbmRCdWZmZXIoR0xfQVJSQVlfQlVGRkVSLCBwb3NCdWZmZXIpOworICAg
IGdsQnVmZmVyRGF0YShHTF9BUlJBWV9CVUZGRVIsIHBvc0J1ZmZlclNpemUsIHF1YWRWZXJ0aWNl
cy5kYXRhKCksIEdMX1NUQVRJQ19EUkFXKTsKKyAgICBnbFZlcnRleEF0dHJpYlBvaW50ZXIocG9z
aXRpb25Mb2MsIDMsIEdMX0ZMT0FULCBHTF9GQUxTRSwgMCwgbnVsbHB0cik7CisgICAgZ2xFbmFi
bGVWZXJ0ZXhBdHRyaWJBcnJheShwb3NpdGlvbkxvYyk7CisKKyAgICBnbFVzZVByb2dyYW0ocHJv
Z3JhbSk7CisgICAgY29uc3RleHByIGZsb2F0IGtWYWx1ZTFbNF0gPSB7MC4xZiwgMC4yZiwgMC4z
ZiwgMC40Zn07CisKKyAgICBnbFVuaWZvcm00ZnYodmFsdWVMb2MsIDEsIGtWYWx1ZTEpOworICAg
IGdsRHJhd0FycmF5cyhHTF9UUklBTkdMRVMsIDAsIDYpOworICAgIGdsTWVtb3J5QmFycmllcihH
TF9TSEFERVJfU1RPUkFHRV9CQVJSSUVSX0JJVCk7CisgICAgRVhQRUNUX0dMX05PX0VSUk9SKCk7
CisKKyAgICAvLyBWZXJpZnkgdGhhdCB0aGUgcHJvZ3JhbSB3cm90ZSB0aGUgU1NCTyBjb3JyZWN0
bHkuCisgICAgY29uc3QgZmxvYXQgKnB0ciA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgZmxvYXQg
Kj4oCisgICAgICAgIGdsTWFwQnVmZmVyUmFuZ2UoR0xfU0hBREVSX1NUT1JBR0VfQlVGRkVSLCAw
LCBzaXplb2Yoa0J1ZmZlckluaXRWYWx1ZSksIEdMX01BUF9SRUFEX0JJVCkpOworCisgICAgZm9y
IChpbnQgaSA9IDA7IGkgPCA0OyArK2kpCisgICAgeworICAgICAgICBFWFBFQ1RfTkVBUihwdHJb
aV0sIGtWYWx1ZTFbaV0sIDAuMDAxKTsKKyAgICB9CisKKyAgICBnbFVubWFwQnVmZmVyKEdMX1NI
QURFUl9TVE9SQUdFX0JVRkZFUik7CisKKyAgICBHTGVudW0gZHJhd0J1ZmZlcnNbXSA9IHtHTF9O
T05FfTsKKyAgICBnbERyYXdCdWZmZXJzKDEsIGRyYXdCdWZmZXJzKTsKKworICAgIGNvbnN0ZXhw
ciBmbG9hdCBrVmFsdWUyWzRdID0gezAuNWYsIDAuNmYsIDAuN2YsIDAuOWZ9OworICAgIGdsVW5p
Zm9ybTRmdih2YWx1ZUxvYywgMSwga1ZhbHVlMik7CisgICAgZ2xEcmF3QXJyYXlzKEdMX1RSSUFO
R0xFUywgMCwgNik7CisgICAgZ2xNZW1vcnlCYXJyaWVyKEdMX1NIQURFUl9TVE9SQUdFX0JBUlJJ
RVJfQklUKTsKKyAgICBFWFBFQ1RfR0xfTk9fRVJST1IoKTsKKyAgICAvLyBWZXJpZnkgdGhhdCB0
aGUgcHJvZ3JhbSB3cm90ZSB0aGUgU1NCTyBjb3JyZWN0bHkuCisgICAgcHRyID0gcmVpbnRlcnBy
ZXRfY2FzdDxjb25zdCBmbG9hdCAqPigKKyAgICAgICAgZ2xNYXBCdWZmZXJSYW5nZShHTF9TSEFE
RVJfU1RPUkFHRV9CVUZGRVIsIDAsIHNpemVvZihrQnVmZmVySW5pdFZhbHVlKSwgR0xfTUFQX1JF
QURfQklUKSk7CisKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IDQ7ICsraSkKKyAgICB7CisgICAg
ICAgIEVYUEVDVF9ORUFSKHB0cltpXSwga1ZhbHVlMltpXSwgMC4wMDEpOworICAgIH0KKworICAg
IGdsVW5tYXBCdWZmZXIoR0xfU0hBREVSX1NUT1JBR0VfQlVGRkVSKTsKK30KKwogLy8gVGVzdHMg
dGhhdCByZW5kZXJpbmcgdG8gYSB0ZXh0dXJlIGluIG9uZSBkcmF3IGNhbGwgZm9sbG93ZWQgYnkg
c2FtcGxpbmcgZnJvbSBpdCBpbiBhIGRpc3BhdGNoCiAvLyBjYWxsIHdvcmtzIGNvcnJlY3RseS4g
IFRoaXMgcmVxdWlyZXMgYW4gaW1wbGljaXQgYmFycmllciBpbiBiZXR3ZWVuIHRoZSBjYWxscy4K
IFRFU1RfUChTaW1wbGVTdGF0ZUNoYW5nZVRlc3RFUzMxLCBEcmF3VGhlblNhbXBsZVdpdGhDb21w
dXRlKQpAQCAtODA3NCw2ICs4MjgyLDI0IEBAIFRFU1RfUChTaW1wbGVTdGF0ZUNoYW5nZVRlc3RF
UzMsIE1heExldmVsQ2hhbmdlKQogICAgIEVYUEVDVF9QSVhFTF9DT0xPUl9FUSgwLCAyLCBHTENv
bG9yOjpibHVlKTsKICAgICBFWFBFQ1RfUElYRUxfQ09MT1JfRVEoMiwgMiwgR0xDb2xvcjo6eWVs
bG93KTsKIH0KKworLy8gVGVzdHMgYSBidWcgd2hlbiByZW1vdmluZyBhbiBlbGVtZW50IGFycmF5
IGJ1ZmZlciBib3VuZCB0byB0d28gdmVydGV4IGFycmF5cy4KK1RFU1RfUChTaW1wbGVTdGF0ZUNo
YW5nZVRlc3RFUzMsIERlbGV0ZURvdWJsZUJvdW5kQnVmZmVyQW5kVmVydGV4QXJyYXkpCit7Cisg
ICAgc3RkOjp2ZWN0b3I8dWludDhfdD4gYnVmRGF0YSgxMDAsIDApOworICAgIEdMQnVmZmVyIGJ1
ZmZlcjsKKyAgICBHTFZlcnRleEFycmF5IHZhbzsKKworICAgIGdsQmluZEJ1ZmZlcihHTF9FTEVN
RU5UX0FSUkFZX0JVRkZFUiwgYnVmZmVyKTsKKyAgICBnbEJpbmRWZXJ0ZXhBcnJheSh2YW8pOwor
ICAgIGdsQmluZEJ1ZmZlcihHTF9FTEVNRU5UX0FSUkFZX0JVRkZFUiwgYnVmZmVyKTsKKyAgICBi
dWZmZXIucmVzZXQoKTsKKyAgICB2YW8ucmVzZXQoKTsKKworICAgIGdsQnVmZmVyRGF0YShHTF9F
TEVNRU5UX0FSUkFZX0JVRkZFUiwgYnVmRGF0YS5zaXplKCksIGJ1ZkRhdGEuZGF0YSgpLCBHTF9T
VEFUSUNfRFJBVyk7CisgICAgZ2xCdWZmZXJEYXRhKEdMX0VMRU1FTlRfQVJSQVlfQlVGRkVSLCBi
dWZEYXRhLnNpemUoKSwgYnVmRGF0YS5kYXRhKCksIEdMX1NUQVRJQ19EUkFXKTsKKyAgICBBU1NF
UlRfR0xfTk9fRVJST1IoKTsKK30KIH0gIC8vIGFub255bW91cyBuYW1lc3BhY2UKIAogQU5HTEVf
SU5TVEFOVElBVEVfVEVTVF9FUzIoU3RhdGVDaGFuZ2VUZXN0KTsKQEAgLTgwOTUsNyArODMyMSw4
IEBAIEFOR0xFX0lOU1RBTlRJQVRFX1RFU1RfRVMzKFN0YXRlQ2hhbmdlUmVuZGVyVGVzdEVTMyk7
CiBBTkdMRV9JTlNUQU5USUFURV9URVNUX0VTMihTaW1wbGVTdGF0ZUNoYW5nZVRlc3QpOwogCiBH
VEVTVF9BTExPV19VTklOU1RBTlRJQVRFRF9QQVJBTUVURVJJWkVEX1RFU1QoU2ltcGxlU3RhdGVD
aGFuZ2VUZXN0RVMzKTsKLUFOR0xFX0lOU1RBTlRJQVRFX1RFU1RfRVMzX0FORChTaW1wbGVTdGF0
ZUNoYW5nZVRlc3RFUzMsIFdpdGhBbGxvY2F0ZU5vblplcm9NZW1vcnkoRVMzX1ZVTEtBTigpKSk7
CitBTkdMRV9JTlNUQU5USUFURV9URVNUX0VTM19BTkQoU2ltcGxlU3RhdGVDaGFuZ2VUZXN0RVMz
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVTM19WVUxLQU4oKS5lbmFibGUoRmVh
dHVyZTo6QWxsb2NhdGVOb25aZXJvTWVtb3J5KSk7CiAKIEdURVNUX0FMTE9XX1VOSU5TVEFOVElB
VEVEX1BBUkFNRVRFUklaRURfVEVTVChJbWFnZVJlc3BlY2lmaWNhdGlvblRlc3QpOwogQU5HTEVf
SU5TVEFOVElBVEVfVEVTVF9FUzMoSW1hZ2VSZXNwZWNpZmljYXRpb25UZXN0KTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9nbF90ZXN0cy9UZXh0dXJlVGVz
dC5jcHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvZ2xfdGVzdHMvVGV4dHVy
ZVRlc3QuY3BwCmluZGV4IDk3MzA2M2VkYmE3NTYxMjkwNDRkMWFhY2YxZWExMmVhZTUxZTRmZWIu
LjcwNjY0ZmY3MDFjOGRmM2NmNmYwNjIwYmJlMTIxOTkzNTY2NDRlYzMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9nbF90ZXN0cy9UZXh0dXJlVGVzdC5jcHAK
KysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3RzL2dsX3Rlc3RzL1RleHR1cmVU
ZXN0LmNwcApAQCAtNDc0Miw3ICs0NzQyLDcgQEAgVEVTVF9QKFRleHR1cmUyRFRlc3RFUzMsIENv
cHlDb21wcmVzc2VkSW1hZ2VNaXBNYXBzKQogICAgIEFOR0xFX1NLSVBfVEVTVF9JRighSXNHTEV4
dGVuc2lvbkVuYWJsZWQoIkdMX0VYVF9jb3B5X2ltYWdlIikpOwogICAgIC8vIFRPRE8oaHR0cDov
L2FuZ2xlYnVnLmNvbS81NjM0KTogRml4IGNhbGxzIHRvIHZrQ21kQ29weUJ1ZmZlclRvSW1hZ2Uo
KSB3aXRoIGltYWdlcyBzbWFsbGVyCiAgICAgLy8gdGhhbiB0aGUgY29tcHJlc3NlZCBmb3JtYXQg
YmxvY2sgc2l6ZS4KLSAgICBBTkdMRV9TS0lQX1RFU1RfSUYoaXNBbGxvY2F0ZU5vblplcm9NZW1v
cnlFbmFibGVkKCkpOworICAgIEFOR0xFX1NLSVBfVEVTVF9JRihHZXRQYXJhbSgpLmlzRW5hYmxl
ZChGZWF0dXJlOjpBbGxvY2F0ZU5vblplcm9NZW1vcnkpKTsKIAogICAgIGNvbnN0ZXhwciB1aW50
MzJfdCBrU2l6ZSAgICAgICAgICAgICA9IDQ7CiAgICAgY29uc3RleHByIHNpemVfdCBrTnVtTGV2
ZWxzICAgICAgICAgID0gMzsKQEAgLTc2NDMsNyArNzY0Myw3IEBAIFRFU1RfUChUZXh0dXJlMkRS
R1Rlc3QsIFRleHR1cmVSR1VOb3JtVGVzdCkKICAgICBBTkdMRV9TS0lQX1RFU1RfSUYoIUlzR0xF
eHRlbnNpb25FbmFibGVkKCJHTF9FWFRfdGV4dHVyZV9yZyIpKTsKICAgICAvLyBUaGlzIHdvcmth
cm91bmQgY2F1c2VzIGEgR0wgZXJyb3Igb24gV2luZG93cyBBTUQsIHdoaWNoIGlzIGxpa2VseSBh
IGRyaXZlciBidWcuCiAgICAgLy8gVGhlIHdvcmthcm91bmQgaXMgbm90IGludGVuZGVkIHRvIGJl
IGVuYWJsZWQgaW4gdGhpcyBjb25maWd1cmF0aW9uIHNvIHNraXAgaXQuCi0gICAgQU5HTEVfU0tJ
UF9URVNUX0lGKEdldFBhcmFtKCkuZWdsUGFyYW1ldGVycy5lbXVsYXRlQ29weVRleEltYWdlMkRG
cm9tUmVuZGVyYnVmZmVycyAmJgorICAgIEFOR0xFX1NLSVBfVEVTVF9JRihHZXRQYXJhbSgpLmlz
RW5hYmxlZChGZWF0dXJlOjpFbXVsYXRlQ29weVRleEltYWdlMkRGcm9tUmVuZGVyYnVmZmVycykg
JiYKICAgICAgICAgICAgICAgICAgICAgICAgSXNXaW5kb3dzKCkgJiYgSXNBTUQoKSk7CiAKICAg
ICBHTHVieXRlIHBpeGVsVmFsdWUgID0gMHhhYjsKQEAgLTk1MTMsMTEgKzk1MTMsMTIgQEAgVEVT
VF9QKFRleHR1cmUyRFRlc3RFUzMsIE5vblplcm9CYXNlRW11bGF0ZWRDbGVhcikKICAgICAvLyBU
ZXN0cyBiZWhhdmlvciBvZiB0aGUgVnVsa2FuIGJhY2tlbmQgd2l0aCBlbXVsYXRlZCBmb3JtYXRz
LgogICAgIEFOR0xFX1NLSVBfVEVTVF9JRighSXNWdWxrYW4oKSk7CiAKLSAgICAvLyBUaGlzIHRl
c3QgYXNzdW1lcyBHTF9SR0IgaXMgYWx3YXlzIGVtdWxhdGVkLCB3aGljaCBvdmVycmlkZXMgdGhl
IFdpdGhBbGxvY2F0ZU5vblplcm9NZW1vcnkKLSAgICAvLyBtZW1vcnkgZmVhdHVyZSwgY2xlYXJp
bmcgdGhlIG1lbW9yeSB0byB6ZXJvLiBIb3dldmVyLCBpZiB0aGUgZm9ybWF0IGlzICpub3QqIGVt
dWxhdGVkIGFuZCB0aGUKLSAgICAvLyBmZWF0dXJlIFdpdGhBbGxvY2F0ZU5vblplcm9NZW1vcnkg
aXMgZW5hYmxlZCwgdGhlIHRleHR1cmUgbWVtb3J5IHdpbGwgY29udGFpbiBub24temVybwotICAg
IC8vIG1lbW9yeSwgd2hpY2ggbWVhbnMgdGhlIGNvbG9yIGlzIG5vdCBibGFjayAoY2F1c2luZyB0
aGUgdGVzdCB0byBmYWlsKS4KLSAgICBBTkdMRV9TS0lQX1RFU1RfSUYoaXNBbGxvY2F0ZU5vblpl
cm9NZW1vcnlFbmFibGVkKCkpOworICAgIC8vIFRoaXMgdGVzdCBhc3N1bWVzIEdMX1JHQiBpcyBh
bHdheXMgZW11bGF0ZWQsIHdoaWNoIG92ZXJyaWRlcyB0aGUKKyAgICAvLyBGZWF0dXJlOjpBbGxv
Y2F0ZU5vblplcm9NZW1vcnkgbWVtb3J5IGZlYXR1cmUsIGNsZWFyaW5nIHRoZSBtZW1vcnkgdG8g
emVyby4gSG93ZXZlciwgaWYgdGhlCisgICAgLy8gZm9ybWF0IGlzICpub3QqIGVtdWxhdGVkIGFu
ZCB0aGUgZmVhdHVyZSBGZWF0dXJlOjpBbGxvY2F0ZU5vblplcm9NZW1vcnkgaXMgZW5hYmxlZCwg
dGhlCisgICAgLy8gdGV4dHVyZSBtZW1vcnkgd2lsbCBjb250YWluIG5vbi16ZXJvIG1lbW9yeSwg
d2hpY2ggbWVhbnMgdGhlIGNvbG9yIGlzIG5vdCBibGFjayAoY2F1c2luZyB0aGUKKyAgICAvLyB0
ZXN0IHRvIGZhaWwpLgorICAgIEFOR0xFX1NLSVBfVEVTVF9JRihHZXRQYXJhbSgpLmlzRW5hYmxl
ZChGZWF0dXJlOjpBbGxvY2F0ZU5vblplcm9NZW1vcnkpKTsKIAogICAgIHNldFVwUHJvZ3JhbSgp
OwogCkBAIC0xMDQ4NywxMiArMTA0ODgsMTIgQEAgVEVTVF9QKEV4dHJhU2FtcGxlckN1YmVTaGFk
b3dVc2VUZXN0LCBCYXNpYykKIAogLy8gVXNlIHRoaXMgdG8gc2VsZWN0IHdoaWNoIGNvbmZpZ3Vy
YXRpb25zIChlLmcuIHdoaWNoIHJlbmRlcmVyLCB3aGljaCBHTEVTIG1ham9yIHZlcnNpb24pIHRo
ZXNlCiAvLyB0ZXN0cyBzaG91bGQgYmUgcnVuIGFnYWluc3QuCi0jZGVmaW5lIEVTMl9FTVVMQVRF
X0NPUFlfVEVYX0lNQUdFKCkgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBXaXRoRW11
bGF0ZUNvcHlUZXhJbWFnZTJERnJvbVJlbmRlcmJ1ZmZlcnMoRVMyX09QRU5HTCgpKSwgXAotICAg
ICAgICBXaXRoRW11bGF0ZUNvcHlUZXhJbWFnZTJERnJvbVJlbmRlcmJ1ZmZlcnMoRVMyX09QRU5H
TEVTKCkpCi0jZGVmaW5lIEVTM19FTVVMQVRFX0NPUFlfVEVYX0lNQUdFKCkgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKLSAgICBXaXRoRW11bGF0ZUNvcHlUZXhJbWFnZTJERnJvbVJlbmRlcmJ1
ZmZlcnMoRVMzX09QRU5HTCgpKSwgXAotICAgICAgICBXaXRoRW11bGF0ZUNvcHlUZXhJbWFnZTJE
RnJvbVJlbmRlcmJ1ZmZlcnMoRVMzX09QRU5HTEVTKCkpCisjZGVmaW5lIEVTMl9FTVVMQVRFX0NP
UFlfVEVYX0lNQUdFKCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAg
ICBFUzJfT1BFTkdMKCkuZW5hYmxlKEZlYXR1cmU6OkVtdWxhdGVDb3B5VGV4SW1hZ2UyREZyb21S
ZW5kZXJidWZmZXJzKSwgXAorICAgICAgICBFUzJfT1BFTkdMRVMoKS5lbmFibGUoRmVhdHVyZTo6
RW11bGF0ZUNvcHlUZXhJbWFnZTJERnJvbVJlbmRlcmJ1ZmZlcnMpCisjZGVmaW5lIEVTM19FTVVM
QVRFX0NPUFlfVEVYX0lNQUdFKCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKKyAgICBFUzNfT1BFTkdMKCkuZW5hYmxlKEZlYXR1cmU6OkVtdWxhdGVDb3B5VGV4SW1hZ2Uy
REZyb21SZW5kZXJidWZmZXJzKSwgXAorICAgICAgICBFUzNfT1BFTkdMRVMoKS5lbmFibGUoRmVh
dHVyZTo6RW11bGF0ZUNvcHlUZXhJbWFnZTJERnJvbVJlbmRlcmJ1ZmZlcnMpCiBBTkdMRV9JTlNU
QU5USUFURV9URVNUKFRleHR1cmUyRFRlc3QsIEFOR0xFX0FMTF9URVNUX1BMQVRGT1JNU19FUzIs
IEVTMl9FTVVMQVRFX0NPUFlfVEVYX0lNQUdFKCkpOwogQU5HTEVfSU5TVEFOVElBVEVfVEVTVF9F
UzIoVGV4dHVyZUN1YmVUZXN0KTsKIEFOR0xFX0lOU1RBTlRJQVRFX1RFU1RfRVMyKFRleHR1cmUy
RFRlc3RXaXRoRHJhd1NjYWxlKTsKQEAgLTEwNTAxLDcgKzEwNTAyLDggQEAgQU5HTEVfSU5TVEFO
VElBVEVfVEVTVF9FUzIoU2FtcGxlckFycmF5VGVzdCk7CiBBTkdMRV9JTlNUQU5USUFURV9URVNU
X0VTMihTYW1wbGVyQXJyYXlBc0Z1bmN0aW9uUGFyYW1ldGVyVGVzdCk7CiAKIEdURVNUX0FMTE9X
X1VOSU5TVEFOVElBVEVEX1BBUkFNRVRFUklaRURfVEVTVChUZXh0dXJlMkRUZXN0RVMzKTsKLUFO
R0xFX0lOU1RBTlRJQVRFX1RFU1RfRVMzX0FORChUZXh0dXJlMkRUZXN0RVMzLCBXaXRoQWxsb2Nh
dGVOb25aZXJvTWVtb3J5KEVTM19WVUxLQU4oKSkpOworQU5HTEVfSU5TVEFOVElBVEVfVEVTVF9F
UzNfQU5EKFRleHR1cmUyRFRlc3RFUzMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
RVMzX1ZVTEtBTigpLmVuYWJsZShGZWF0dXJlOjpBbGxvY2F0ZU5vblplcm9NZW1vcnkpKTsKIAog
R1RFU1RfQUxMT1dfVU5JTlNUQU5USUFURURfUEFSQU1FVEVSSVpFRF9URVNUKFRleHR1cmUyRFRl
c3RFUzNSb2J1c3RJbml0KTsKIEFOR0xFX0lOU1RBTlRJQVRFX1RFU1RfRVMzKFRleHR1cmUyRFRl
c3RFUzNSb2J1c3RJbml0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3Ny
Yy90ZXN0cy9nbF90ZXN0cy9UcmFuc2Zvcm1GZWVkYmFja1Rlc3QuY3BwIGIvU291cmNlL1RoaXJk
UGFydHkvQU5HTEUvc3JjL3Rlc3RzL2dsX3Rlc3RzL1RyYW5zZm9ybUZlZWRiYWNrVGVzdC5jcHAK
aW5kZXggYWUxYTZhZjZhZDZmODkxYTllZDNhMTBlOTIxYjFmMzU2NzdlNjE3Yi4uOTdiNDRmMWZl
ZDMxYjA2MTRlZjc0NGMxOTNjMzA3MTgxZjkwOWE1YSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJk
UGFydHkvQU5HTEUvc3JjL3Rlc3RzL2dsX3Rlc3RzL1RyYW5zZm9ybUZlZWRiYWNrVGVzdC5jcHAK
KysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3RzL2dsX3Rlc3RzL1RyYW5zZm9y
bUZlZWRiYWNrVGVzdC5jcHAKQEAgLTIyNDMsNyArMjI0Myw3IEBAIFRFU1RfUChUcmFuc2Zvcm1G
ZWVkYmFja1Rlc3QsIEVuZFdpdGhEaWZmZXJlbnRQcm9ncmFtKQogICAgIC8vIEFNRCBkcml2ZXJz
IGZhaWwgYmVjYXVzZSB0aGV5IHBlcmZvcm0gdHJhbnNmb3JtIGZlZWRiYWNrIHdoZW4gaXQgc2hv
dWxkIGJlIHBhdXNlZC4KICAgICBBTkdMRV9TS0lQX1RFU1RfSUYoSXNBTUQoKSAmJiBJc09wZW5H
TCgpKTsKIAotICAgIC8vIGh0dHBzOi8vY3JidWcuY29tLzEyMDczODAgUGl4ZWwgMiBpcyBjcmFz
aGluZyBkdXJpbmcgRVMzX1Z1bGthbl9Bc3luY1F1ZXVlIHRlc3RpbmcKKyAgICAvLyBodHRwczov
L2NyYnVnLmNvbS8xMjA3MzgwIFBpeGVsIDIgaXMgY3Jhc2hpbmcgZHVyaW5nIEVTM19WdWxrYW5f
QXN5bmNDb21tYW5kUXVldWUgdGVzdGluZwogICAgIEFOR0xFX1NLSVBfVEVTVF9JRihJc1Z1bGth
bigpICYmIElzUGl4ZWwyKCkpOwogCiAgICAgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+IHRmVmFy
eWluZ3M7CkBAIC00MDgwLDYgKzQwODAsNjYgQEAgVEVTVF9QKFRyYW5zZm9ybUZlZWRiYWNrVGVz
dCwgQmFzZUluc3RhbmNlKQogICAgIEVYUEVDVF9HTF9OT19FUlJPUigpOwogfQogCisvLyBUZXN0
cyB0aGF0IGRlbGV0aW5nIGEgYnVmZmVyIHRoZW4gcmVzdW1pbmcgdHJhbnNmb3JtIGZlZWRiYWNr
IHByb2R1Y2VzIGFuIGVycm9yLgorVEVTVF9QKFRyYW5zZm9ybUZlZWRiYWNrVGVzdCwgUmVzdW1p
bmdUcmFuc2Zvcm1GZWVkYmFja0FmdGVyRGVsZXRlYnVmZmVyKQoreworICAgIEFOR0xFX0dMX1BS
T0dSQU1fVFJBTlNGT1JNX0ZFRURCQUNLKHRlc3RQcm9ncmFtLCBlc3NsMV9zaGFkZXJzOjp2czo6
U2ltcGxlKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXNzbDFf
c2hhZGVyczo6ZnM6OkdyZWVuKCksIHsiZ2xfUG9zaXRpb24ifSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBHTF9JTlRFUkxFQVZFRF9BVFRSSUJTKTsKKyAgICBnbFVz
ZVByb2dyYW0odGVzdFByb2dyYW0pOworCisgICAgc3RkOjp2ZWN0b3I8dWludDhfdD4gYnVmRGF0
YSgxMDAsIDApOworCisgICAgR0xCdWZmZXIgYnVmOworICAgIGdsQmluZEJ1ZmZlcihHTF9QSVhF
TF9VTlBBQ0tfQlVGRkVSLCBidWYpOworICAgIGdsQnVmZmVyRGF0YShHTF9QSVhFTF9VTlBBQ0tf
QlVGRkVSLCBidWZEYXRhLnNpemUoKSwgYnVmRGF0YS5kYXRhKCksIEdMX0RZTkFNSUNfQ09QWSk7
CisgICAgZ2xCaW5kQnVmZmVyQmFzZShHTF9UUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSLCAwLCBi
dWYpOworICAgIGdsQmVnaW5UcmFuc2Zvcm1GZWVkYmFjayhHTF9QT0lOVFMpOworICAgIGdsUGF1
c2VUcmFuc2Zvcm1GZWVkYmFjaygpOworICAgIGdsQmluZEJ1ZmZlcihHTF9QSVhFTF9VTlBBQ0tf
QlVGRkVSLCAwKTsKKyAgICBidWYucmVzZXQoKTsKKyAgICBBU1NFUlRfR0xfTk9fRVJST1IoKTsK
KworICAgIC8vIFNob3VsZCBwcm9kdWNlIGFuIGVycm9yIGJlY2F1c2Ugb2YgYSBtaXNzaW5nIGJ1
ZmZlciBiaW5kaW5nLgorICAgIGdsUmVzdW1lVHJhbnNmb3JtRmVlZGJhY2soKTsKKyAgICBBU1NF
UlRfR0xfRVJST1IoR0xfSU5WQUxJRF9PUEVSQVRJT04pOworfQorCisvLyBWYWxpZGF0ZXMgdGhh
dCBkcmF3aW5nIGFmdGVyIGRlbGV0aW5nIGEgYnVmZmVyIGluIGEgcGF1c2VkIFhGQi4KK1RFU1Rf
UChUcmFuc2Zvcm1GZWVkYmFja1Rlc3QsIERyYXdBZnRlckRlbGV0aW5nUGF1c2VkQnVmZmVyKQor
eworICAgIEFOR0xFX0dMX1BST0dSQU1fVFJBTlNGT1JNX0ZFRURCQUNLKHRlc3RQcm9ncmFtLCBl
c3NsMV9zaGFkZXJzOjp2czo6U2ltcGxlKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZXNzbDFfc2hhZGVyczo6ZnM6OkdyZWVuKCksIHsiZ2xfUG9zaXRpb24ifSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTF9JTlRFUkxFQVZFRF9B
VFRSSUJTKTsKKyAgICBnbFVzZVByb2dyYW0odGVzdFByb2dyYW0pOworCisgICAgc3RkOjp2ZWN0
b3I8dWludDhfdD4gZGF0YSgxMDAsIDApOworCisgICAgc3RkOjphcnJheTxWZWN0b3IzLCA2PiBx
dWFkVmVydHMgPSBHZXRRdWFkVmVydGljZXMoKTsKKworICAgIEdMaW50IGxvYyA9IGdsR2V0QXR0
cmliTG9jYXRpb24odGVzdFByb2dyYW0sIGVzc2wxX3NoYWRlcnM6OlBvc2l0aW9uQXR0cmliKCkp
OworICAgIEFTU0VSVF9ORSgtMSwgbG9jKTsKKworICAgIEdMQnVmZmVyIHBvc0J1ZjsKKyAgICBn
bEJpbmRCdWZmZXIoR0xfQVJSQVlfQlVGRkVSLCBwb3NCdWYpOworICAgIGdsQnVmZmVyRGF0YShH
TF9BUlJBWV9CVUZGRVIsIHF1YWRWZXJ0cy5zaXplKCkgKiBzaXplb2YocXVhZFZlcnRzWzBdKSwg
cXVhZFZlcnRzLmRhdGEoKSwKKyAgICAgICAgICAgICAgICAgR0xfU1RBVElDX0RSQVcpOworICAg
IGdsVmVydGV4QXR0cmliUG9pbnRlcihsb2MsIDMsIEdMX0ZMT0FULCBHTF9GQUxTRSwgMCwgbnVs
bHB0cik7CisgICAgZ2xFbmFibGVWZXJ0ZXhBdHRyaWJBcnJheShsb2MpOworICAgIGdsQmluZEJ1
ZmZlcihHTF9BUlJBWV9CVUZGRVIsIDApOworCisgICAgR0xCdWZmZXIgYnVmOworICAgIGdsQmlu
ZEJ1ZmZlckJhc2UoR0xfVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUiwgMCwgYnVmKTsKKyAgICBn
bEJ1ZmZlckRhdGEoR0xfVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUiwgZGF0YS5zaXplKCkgKiBz
aXplb2YoZGF0YVswXSksIGRhdGEuZGF0YSgpLAorICAgICAgICAgICAgICAgICBHTF9TVEFUSUNf
RFJBVyk7CisgICAgZ2xCZWdpblRyYW5zZm9ybUZlZWRiYWNrKEdMX1BPSU5UUyk7CisgICAgZ2xQ
YXVzZVRyYW5zZm9ybUZlZWRiYWNrKCk7CisgICAgZ2xEcmF3QXJyYXlzKEdMX1BPSU5UUywgMCwg
MSk7CisgICAgYnVmLnJlc2V0KCk7CisgICAgZ2xEcmF3QXJyYXlzKEdMX1BPSU5UUywgMCwgMSk7
CisgICAgRVhQRUNUX0dMX0VSUk9SKEdMX0lOVkFMSURfT1BFUkFUSU9OKTsKK30KKwogR1RFU1Rf
QUxMT1dfVU5JTlNUQU5USUFURURfUEFSQU1FVEVSSVpFRF9URVNUKFRyYW5zZm9ybUZlZWRiYWNr
VGVzdCk7CiBBTkdMRV9JTlNUQU5USUFURV9URVNUX0VTMyhUcmFuc2Zvcm1GZWVkYmFja1Rlc3Qp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvZ2xfdGVz
dHMvVmVydGV4QXR0cmlidXRlVGVzdC5jcHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMv
dGVzdHMvZ2xfdGVzdHMvVmVydGV4QXR0cmlidXRlVGVzdC5jcHAKaW5kZXggOTYzM2JkNWEzZjBi
YjRjMTc3ZjNhNzU4NTJhNzVlY2YxMzllYmZkZS4uOWQ4Mjc3N2Q5MThiOGJmNWI4NzQ2ODYwNmUx
Y2M3YTBhN2Q0Y2IxNiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rl
c3RzL2dsX3Rlc3RzL1ZlcnRleEF0dHJpYnV0ZVRlc3QuY3BwCisrKyBiL1NvdXJjZS9UaGlyZFBh
cnR5L0FOR0xFL3NyYy90ZXN0cy9nbF90ZXN0cy9WZXJ0ZXhBdHRyaWJ1dGVUZXN0LmNwcApAQCAt
NSw3ICs1LDcgQEAKIC8vCiAjaW5jbHVkZSAiYW5nbGViYXNlL251bWVyaWNzL3NhZmVfY29udmVy
c2lvbnMuaCIKICNpbmNsdWRlICJjb21tb24vbWF0aHV0aWwuaCIKLSNpbmNsdWRlICJwbGF0Zm9y
bS9GZWF0dXJlc1ZrLmgiCisjaW5jbHVkZSAicGxhdGZvcm0vRmVhdHVyZXNWa19hdXRvZ2VuLmgi
CiAjaW5jbHVkZSAidGVzdF91dGlscy9BTkdMRVRlc3QuaCIKICNpbmNsdWRlICJ0ZXN0X3V0aWxz
L2dsX3JhaWkuaCIKICNpbmNsdWRlICJ1dGlsL3JhbmRvbV91dGlscy5oIgpAQCAtMjk4LDEyICsy
OTgsNiBAQCBjbGFzcyBWZXJ0ZXhBdHRyaWJ1dGVUZXN0IDogcHVibGljIEFOR0xFVGVzdAogICAg
ICAgICBnbERlbGV0ZUJ1ZmZlcnMoMSwgJm1CdWZmZXIpOwogICAgIH0KIAotICAgIC8vIE92ZXJy
aWRlIGEgZmVhdHVyZSB0byBmb3JjZSBlbXVsYXRpb24gb2YgYXR0cmlidXRlIGZvcm1hdHMuCi0g
ICAgdm9pZCBvdmVycmlkZUZlYXR1cmVzVmsoRmVhdHVyZXNWayAqZmVhdHVyZXNWaykgb3ZlcnJp
ZGUKLSAgICB7Ci0gICAgICAgIGZlYXR1cmVzVmstPm92ZXJyaWRlRmVhdHVyZXMoeyJmb3JjZV9m
YWxsYmFja19mb3JtYXQifSwgdHJ1ZSk7Ci0gICAgfQotCiAgICAgR0x1aW50IGNvbXBpbGVNdWx0
aUF0dHJpYlByb2dyYW0oR0xpbnQgYXR0cmliQ291bnQpCiAgICAgewogICAgICAgICBzdGQ6OnN0
cmluZ3N0cmVhbSBzaGFkZXJTdHJlYW07CkBAIC00MTI3LDU2ICs0MTIxLDU0IEBAIFRFU1RfUChW
ZXJ0ZXhBdHRyaWJ1dGVUZXN0RVMzLCBlbXB0eUJ1ZmZlcikKIAogLy8gVkFPIGVtdWxhdGlvbiBm
YWlscyBvbiBNYWMgYnV0IGlzIG5vdCB1c2VkIG9uIE1hYyBpbiB0aGUgd2lsZC4gaHR0cDovL2Fu
Z2xlYnVnLmNvbS81NTc3CiAjaWYgIWRlZmluZWQoX19BUFBMRV9fKQotIyAgICBkZWZpbmUgRU1V
TEFURURfVkFPX0NPTkZJR1MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCi0gICAgICAgIFdpdGhFbXVsYXRlZFZBT3MoRVMyX09QRU5HTCgpKSwgV2l0aEVtdWxhdGVk
VkFPcyhFUzJfT1BFTkdMRVMoKSksIFwKLSAgICAgICAgICAgIFdpdGhFbXVsYXRlZFZBT3MoRVMz
X09QRU5HTCgpKSwgV2l0aEVtdWxhdGVkVkFPcyhFUzNfT1BFTkdMRVMoKSksCisjICAgIGRlZmlu
ZSBFTVVMQVRFRF9WQU9fQ09ORklHUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKKyAgICAgICAgRVMyX09QRU5HTCgpLmVuYWJsZShGZWF0dXJlOjpTeW5jVmVydGV4QXJy
YXlzVG9EZWZhdWx0KSwgICAgICAgXAorICAgICAgICAgICAgRVMyX09QRU5HTEVTKCkuZW5hYmxl
KEZlYXR1cmU6OlN5bmNWZXJ0ZXhBcnJheXNUb0RlZmF1bHQpLCBcCisgICAgICAgICAgICBFUzNf
T1BFTkdMKCkuZW5hYmxlKEZlYXR1cmU6OlN5bmNWZXJ0ZXhBcnJheXNUb0RlZmF1bHQpLCAgIFwK
KyAgICAgICAgICAgIEVTM19PUEVOR0xFUygpLmVuYWJsZShGZWF0dXJlOjpTeW5jVmVydGV4QXJy
YXlzVG9EZWZhdWx0KSwKICNlbHNlCiAjICAgIGRlZmluZSBFTVVMQVRFRF9WQU9fQ09ORklHUwog
I2VuZGlmCiAKLS8vIFVzZSB0aGlzIHRvIHNlbGVjdCB3aGljaCBjb25maWd1cmF0aW9ucyAoZS5n
LiB3aGljaCByZW5kZXJlciwgd2hpY2ggR0xFUyBtYWpvciB2ZXJzaW9uKSB0aGVzZQotLy8gdGVz
dHMgc2hvdWxkIGJlIHJ1biBhZ2FpbnN0LgotLy8gRDNEMTEgRmVhdHVyZSBMZXZlbCA5XzMgdXNl
cyBkaWZmZXJlbnQgRDNEIGZvcm1hdHMgZm9yIHZlcnRleCBhdHRyaWJzIGNvbXBhcmVkIHRvIEZl
YXR1cmUgTGV2ZWxzCi0vLyAxMF8wKywgc28gd2Ugc2hvdWxkIHRlc3QgdGhlbSBzZXBhcmF0ZWx5
LgogQU5HTEVfSU5TVEFOVElBVEVfVEVTVF9FUzJfQU5EX0VTM19BTkQoCiAgICAgVmVydGV4QXR0
cmlidXRlVGVzdCwKLSAgICBXaXRoTWV0YWxNZW1vcnlCYXJyaWVyQW5kQ2hlYXBSZW5kZXJQYXNz
KEVTM19NRVRBTCgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgLyogaGFzQmFycmllciAqLyBmYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIC8qIGNoZWFwUmVuZGVyUGFzcyAqLyB0cnVlKSwKLSAgICBXaXRoTWV0
YWxNZW1vcnlCYXJyaWVyQW5kQ2hlYXBSZW5kZXJQYXNzKEVTM19NRVRBTCgpLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaGFzQmFycmllciAqLyBmYWxz
ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGNoZWFw
UmVuZGVyUGFzcyAqLyBmYWxzZSksCisgICAgRVMyX1ZVTEtBTigpLmVuYWJsZShGZWF0dXJlOjpG
b3JjZUZhbGxiYWNrRm9ybWF0KSwKKyAgICBFUzJfVlVMS0FOX1NXSUZUU0hBREVSKCkuZW5hYmxl
KEZlYXR1cmU6OkZvcmNlRmFsbGJhY2tGb3JtYXQpLAorICAgIEVTM19WVUxLQU4oKS5lbmFibGUo
RmVhdHVyZTo6Rm9yY2VGYWxsYmFja0Zvcm1hdCksCisgICAgRVMzX1ZVTEtBTl9TV0lGVFNIQURF
UigpLmVuYWJsZShGZWF0dXJlOjpGb3JjZUZhbGxiYWNrRm9ybWF0KSwKKyAgICBFUzNfTUVUQUwo
KS5kaXNhYmxlKEZlYXR1cmU6Okhhc0V4cGxpY2l0TWVtQmFycmllcikuZGlzYWJsZShGZWF0dXJl
OjpIYXNDaGVhcFJlbmRlclBhc3MpLAorICAgIEVTM19NRVRBTCgpLmRpc2FibGUoRmVhdHVyZTo6
SGFzRXhwbGljaXRNZW1CYXJyaWVyKS5lbmFibGUoRmVhdHVyZTo6SGFzQ2hlYXBSZW5kZXJQYXNz
KSwKICAgICBFTVVMQVRFRF9WQU9fQ09ORklHUyk7CiAKIEFOR0xFX0lOU1RBTlRJQVRFX1RFU1Rf
RVMyX0FORF9FUzNfQU5EKAogICAgIFZlcnRleEF0dHJpYnV0ZU9PUlRlc3QsCi0gICAgV2l0aE1l
dGFsTWVtb3J5QmFycmllckFuZENoZWFwUmVuZGVyUGFzcyhFUzNfTUVUQUwoKSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGhhc0JhcnJpZXIgKi8gZmFs
c2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBjaGVh
cFJlbmRlclBhc3MgKi8gdHJ1ZSksCi0gICAgV2l0aE1ldGFsTWVtb3J5QmFycmllckFuZENoZWFw
UmVuZGVyUGFzcyhFUzNfTUVUQUwoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIC8qIGhhc0JhcnJpZXIgKi8gZmFsc2UsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBjaGVhcFJlbmRlclBhc3MgKi8gZmFsc2UpKTsK
KyAgICBFUzJfVlVMS0FOKCkuZW5hYmxlKEZlYXR1cmU6OkZvcmNlRmFsbGJhY2tGb3JtYXQpLAor
ICAgIEVTMl9WVUxLQU5fU1dJRlRTSEFERVIoKS5lbmFibGUoRmVhdHVyZTo6Rm9yY2VGYWxsYmFj
a0Zvcm1hdCksCisgICAgRVMzX1ZVTEtBTigpLmVuYWJsZShGZWF0dXJlOjpGb3JjZUZhbGxiYWNr
Rm9ybWF0KSwKKyAgICBFUzNfVlVMS0FOX1NXSUZUU0hBREVSKCkuZW5hYmxlKEZlYXR1cmU6OkZv
cmNlRmFsbGJhY2tGb3JtYXQpLAorICAgIEVTM19NRVRBTCgpLmRpc2FibGUoRmVhdHVyZTo6SGFz
RXhwbGljaXRNZW1CYXJyaWVyKS5kaXNhYmxlKEZlYXR1cmU6Okhhc0NoZWFwUmVuZGVyUGFzcyks
CisgICAgRVMzX01FVEFMKCkuZGlzYWJsZShGZWF0dXJlOjpIYXNFeHBsaWNpdE1lbUJhcnJpZXIp
LmVuYWJsZShGZWF0dXJlOjpIYXNDaGVhcFJlbmRlclBhc3MpKTsKIAogR1RFU1RfQUxMT1dfVU5J
TlNUQU5USUFURURfUEFSQU1FVEVSSVpFRF9URVNUKFZlcnRleEF0dHJpYnV0ZVRlc3RFUzMpOwog
QU5HTEVfSU5TVEFOVElBVEVfVEVTVF9FUzNfQU5EKAogICAgIFZlcnRleEF0dHJpYnV0ZVRlc3RF
UzMsCi0gICAgV2l0aE1ldGFsTWVtb3J5QmFycmllckFuZENoZWFwUmVuZGVyUGFzcyhFUzNfTUVU
QUwoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGhh
c0JhcnJpZXIgKi8gZmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAvKiBjaGVhcFJlbmRlclBhc3MgKi8gdHJ1ZSksCi0gICAgV2l0aE1ldGFsTWVtb3J5
QmFycmllckFuZENoZWFwUmVuZGVyUGFzcyhFUzNfTUVUQUwoKSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGhhc0JhcnJpZXIgKi8gZmFsc2UsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBjaGVhcFJlbmRlclBh
c3MgKi8gZmFsc2UpKTsKKyAgICBFUzNfVlVMS0FOKCkuZW5hYmxlKEZlYXR1cmU6OkZvcmNlRmFs
bGJhY2tGb3JtYXQpLAorICAgIEVTM19WVUxLQU5fU1dJRlRTSEFERVIoKS5lbmFibGUoRmVhdHVy
ZTo6Rm9yY2VGYWxsYmFja0Zvcm1hdCksCisgICAgRVMzX01FVEFMKCkuZGlzYWJsZShGZWF0dXJl
OjpIYXNFeHBsaWNpdE1lbUJhcnJpZXIpLmRpc2FibGUoRmVhdHVyZTo6SGFzQ2hlYXBSZW5kZXJQ
YXNzKSwKKyAgICBFUzNfTUVUQUwoKS5kaXNhYmxlKEZlYXR1cmU6Okhhc0V4cGxpY2l0TWVtQmFy
cmllcikuZW5hYmxlKEZlYXR1cmU6Okhhc0NoZWFwUmVuZGVyUGFzcykpOwogCiBHVEVTVF9BTExP
V19VTklOU1RBTlRJQVRFRF9QQVJBTUVURVJJWkVEX1RFU1QoVmVydGV4QXR0cmlidXRlVGVzdEVT
MzEpOwotQU5HTEVfSU5TVEFOVElBVEVfVEVTVF9FUzMxKFZlcnRleEF0dHJpYnV0ZVRlc3RFUzMx
KTsKK0FOR0xFX0lOU1RBTlRJQVRFX1RFU1RfRVMzMV9BTkQoVmVydGV4QXR0cmlidXRlVGVzdEVT
MzEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVTMzFfVlVMS0FOKCkuZW5hYmxl
KEZlYXR1cmU6OkZvcmNlRmFsbGJhY2tGb3JtYXQpLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBFUzMxX1ZVTEtBTl9TV0lGVFNIQURFUigpLmVuYWJsZShGZWF0dXJlOjpGb3JjZUZh
bGxiYWNrRm9ybWF0KSk7CiAKIEFOR0xFX0lOU1RBTlRJQVRFX1RFU1RfRVMyX0FORF9FUzNfQU5E
KAogICAgIFZlcnRleEF0dHJpYnV0ZUNhY2hpbmdUZXN0LAotICAgIFdpdGhNZXRhbE1lbW9yeUJh
cnJpZXJBbmRDaGVhcFJlbmRlclBhc3MoRVMzX01FVEFMKCksCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBoYXNCYXJyaWVyICovIGZhbHNlLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogY2hlYXBSZW5kZXJQYXNz
ICovIHRydWUpLAotICAgIFdpdGhNZXRhbE1lbW9yeUJhcnJpZXJBbmRDaGVhcFJlbmRlclBhc3Mo
RVMzX01FVEFMKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAvKiBoYXNCYXJyaWVyICovIGZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLyogY2hlYXBSZW5kZXJQYXNzICovIGZhbHNlKSk7CisgICAgRVMyX1ZV
TEtBTigpLmVuYWJsZShGZWF0dXJlOjpGb3JjZUZhbGxiYWNrRm9ybWF0KSwKKyAgICBFUzJfVlVM
S0FOX1NXSUZUU0hBREVSKCkuZW5hYmxlKEZlYXR1cmU6OkZvcmNlRmFsbGJhY2tGb3JtYXQpLAor
ICAgIEVTM19WVUxLQU4oKS5lbmFibGUoRmVhdHVyZTo6Rm9yY2VGYWxsYmFja0Zvcm1hdCksCisg
ICAgRVMzX1ZVTEtBTl9TV0lGVFNIQURFUigpLmVuYWJsZShGZWF0dXJlOjpGb3JjZUZhbGxiYWNr
Rm9ybWF0KSwKKyAgICBFUzNfTUVUQUwoKS5kaXNhYmxlKEZlYXR1cmU6Okhhc0V4cGxpY2l0TWVt
QmFycmllcikuZGlzYWJsZShGZWF0dXJlOjpIYXNDaGVhcFJlbmRlclBhc3MpLAorICAgIEVTM19N
RVRBTCgpLmRpc2FibGUoRmVhdHVyZTo6SGFzRXhwbGljaXRNZW1CYXJyaWVyKS5lbmFibGUoRmVh
dHVyZTo6SGFzQ2hlYXBSZW5kZXJQYXNzKSk7CiAKIH0gIC8vIGFub255bW91cyBuYW1lc3BhY2UK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9nbF90ZXN0cy9W
dWxrYW5FeHRlcm5hbEltYWdlVGVzdC5jcHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMv
dGVzdHMvZ2xfdGVzdHMvVnVsa2FuRXh0ZXJuYWxJbWFnZVRlc3QuY3BwCmluZGV4IDU1N2MwMzYz
MzU2MTgzMzU1ZDJkMzJiMjliMGQ0NjA4Yjg3YjU2OWMuLjQxNTU0ODQ2ZDg2MDUxYTYwYjA2MmFi
ZmE4MjZlZDJiNjg5OTlkNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3Ny
Yy90ZXN0cy9nbF90ZXN0cy9WdWxrYW5FeHRlcm5hbEltYWdlVGVzdC5jcHAKKysrIGIvU291cmNl
L1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3RzL2dsX3Rlc3RzL1Z1bGthbkV4dGVybmFsSW1hZ2VU
ZXN0LmNwcApAQCAtNzYzLDcgKzc2Myw4IEBAIFRFU1RfUChWdWxrYW5FeHRlcm5hbEltYWdlVGVz
dCwgU2hvdWxkQ2xlYXJPcGFxdWVGZFdpdGhTZW1hcGhvcmVzKQogICAgIEFOR0xFX1NLSVBfVEVT
VF9JRighRW5zdXJlR0xFeHRlbnNpb25FbmFibGVkKCJHTF9FWFRfc2VtYXBob3JlX2ZkIikpOwog
CiAgICAgLy8gaHR0cDovL2lzc3VldHJhY2tlci5nb29nbGUuY29tLzE3MzAwNDA4MQotICAgIEFO
R0xFX1NLSVBfVEVTVF9JRihJc1Z1bGthbigpICYmIElzSW50ZWwoKSAmJiBJc0xpbnV4KCkgJiYg
aXNBc3luY0NvbW1hbmRRdWV1ZUZlYXR1cmVFbmFibGVkKCkpOworICAgIEFOR0xFX1NLSVBfVEVT
VF9JRihJc1Z1bGthbigpICYmIElzSW50ZWwoKSAmJiBJc0xpbnV4KCkgJiYKKyAgICAgICAgICAg
ICAgICAgICAgICAgR2V0UGFyYW0oKS5pc0VuYWJsZWQoRmVhdHVyZTo6QXN5bmNDb21tYW5kUXVl
dWUpKTsKICAgICAvLyBodHRwOi8vYW5nbGVidWcuY29tLzUzODMKICAgICBBTkdMRV9TS0lQX1RF
U1RfSUYoSXNMaW51eCgpICYmIElzQU1EKCkgJiYgSXNEZXNrdG9wT3BlbkdMKCkpOwogCkBAIC03
ODEsNyArNzgyLDggQEAgVEVTVF9QKFZ1bGthbkV4dGVybmFsSW1hZ2VUZXN0LCBTaG91bGRDbGVh
ck9wYXF1ZUZkV2l0aFNlbWFwaG9yZXNXaXRoRmxhZ3MpCiAgICAgQU5HTEVfU0tJUF9URVNUX0lG
KCFFbnN1cmVHTEV4dGVuc2lvbkVuYWJsZWQoIkdMX0FOR0xFX21lbW9yeV9vYmplY3RfZmxhZ3Mi
KSk7CiAKICAgICAvLyBodHRwOi8vaXNzdWV0cmFja2VyLmdvb2dsZS5jb20vMTczMDA0MDgxCi0g
ICAgQU5HTEVfU0tJUF9URVNUX0lGKElzVnVsa2FuKCkgJiYgSXNJbnRlbCgpICYmIElzTGludXgo
KSAmJiBpc0FzeW5jQ29tbWFuZFF1ZXVlRmVhdHVyZUVuYWJsZWQoKSk7CisgICAgQU5HTEVfU0tJ
UF9URVNUX0lGKElzVnVsa2FuKCkgJiYgSXNJbnRlbCgpICYmIElzTGludXgoKSAmJgorICAgICAg
ICAgICAgICAgICAgICAgICBHZXRQYXJhbSgpLmlzRW5hYmxlZChGZWF0dXJlOjpBc3luY0NvbW1h
bmRRdWV1ZSkpOwogCiAgICAgUnVuU2hvdWxkQ2xlYXJXaXRoU2VtYXBob3Jlc1Rlc3Q8T3BhcXVl
RmRUcmFpdHM+KHRydWUsIGtEZWZhdWx0SW1hZ2VDcmVhdGVGbGFncywKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga0RlZmF1bHRJbWFnZVVzYWdl
RmxhZ3MsIGlzU3dpZnRzaGFkZXIoKSwKQEAgLTc5Niw3ICs3OTgsOCBAQCBURVNUX1AoVnVsa2Fu
RXh0ZXJuYWxJbWFnZVRlc3QsIFNob3VsZENsZWFyT3BhcXVlRmRXaXRoU2VtYXBob3Jlc05vU3Rv
cmFnZSkKICAgICBBTkdMRV9TS0lQX1RFU1RfSUYoIUVuc3VyZUdMRXh0ZW5zaW9uRW5hYmxlZCgi
R0xfQU5HTEVfbWVtb3J5X29iamVjdF9mbGFncyIpKTsKIAogICAgIC8vIGh0dHA6Ly9pc3N1ZXRy
YWNrZXIuZ29vZ2xlLmNvbS8xNzMwMDQwODEKLSAgICBBTkdMRV9TS0lQX1RFU1RfSUYoSXNWdWxr
YW4oKSAmJiBJc0ludGVsKCkgJiYgSXNMaW51eCgpICYmIGlzQXN5bmNDb21tYW5kUXVldWVGZWF0
dXJlRW5hYmxlZCgpKTsKKyAgICBBTkdMRV9TS0lQX1RFU1RfSUYoSXNWdWxrYW4oKSAmJiBJc0lu
dGVsKCkgJiYgSXNMaW51eCgpICYmCisgICAgICAgICAgICAgICAgICAgICAgIEdldFBhcmFtKCku
aXNFbmFibGVkKEZlYXR1cmU6OkFzeW5jQ29tbWFuZFF1ZXVlKSk7CiAKICAgICBSdW5TaG91bGRD
bGVhcldpdGhTZW1hcGhvcmVzVGVzdDxPcGFxdWVGZFRyYWl0cz4odHJ1ZSwga0RlZmF1bHRJbWFn
ZUNyZWF0ZUZsYWdzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBrTm9TdG9yYWdlSW1hZ2VVc2FnZUZsYWdzLCBpc1N3aWZ0c2hhZGVyKCksCkBA
IC04MTIsNyArODE1LDggQEAgVEVTVF9QKFZ1bGthbkV4dGVybmFsSW1hZ2VUZXN0LCBTaG91bGRD
bGVhck9wYXF1ZUZkV2l0aFNlbWFwaG9yZXNNdXRhYmxlTm9TdG9yYWcKICAgICBBTkdMRV9TS0lQ
X1RFU1RfSUYoIUVuc3VyZUdMRXh0ZW5zaW9uRW5hYmxlZCgiR0xfQU5HTEVfbWVtb3J5X29iamVj
dF9mbGFncyIpKTsKIAogICAgIC8vIGh0dHA6Ly9pc3N1ZXRyYWNrZXIuZ29vZ2xlLmNvbS8xNzMw
MDQwODEKLSAgICBBTkdMRV9TS0lQX1RFU1RfSUYoSXNWdWxrYW4oKSAmJiBJc0ludGVsKCkgJiYg
SXNMaW51eCgpICYmIGlzQXN5bmNDb21tYW5kUXVldWVGZWF0dXJlRW5hYmxlZCgpKTsKKyAgICBB
TkdMRV9TS0lQX1RFU1RfSUYoSXNWdWxrYW4oKSAmJiBJc0ludGVsKCkgJiYgSXNMaW51eCgpICYm
CisgICAgICAgICAgICAgICAgICAgICAgIEdldFBhcmFtKCkuaXNFbmFibGVkKEZlYXR1cmU6OkFz
eW5jQ29tbWFuZFF1ZXVlKSk7CiAKICAgICBSdW5TaG91bGRDbGVhcldpdGhTZW1hcGhvcmVzVGVz
dDxPcGFxdWVGZFRyYWl0cz4odHJ1ZSwga011dGFibGVJbWFnZUNyZWF0ZUZsYWdzLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrTm9TdG9yYWdl
SW1hZ2VVc2FnZUZsYWdzLCBpc1N3aWZ0c2hhZGVyKCksCkBAIC0xMDAwLDcgKzEwMDQsOCBAQCBU
RVNUX1AoVnVsa2FuRXh0ZXJuYWxJbWFnZVRlc3QsIFNob3VsZERyYXdPcGFxdWVGZFdpdGhTZW1h
cGhvcmVzKQogICAgIEFOR0xFX1NLSVBfVEVTVF9JRighRW5zdXJlR0xFeHRlbnNpb25FbmFibGVk
KCJHTF9FWFRfc2VtYXBob3JlX2ZkIikpOwogCiAgICAgLy8gaHR0cDovL2lzc3VldHJhY2tlci5n
b29nbGUuY29tLzE3MzAwNDA4MQotICAgIEFOR0xFX1NLSVBfVEVTVF9JRihJc1Z1bGthbigpICYm
IElzSW50ZWwoKSAmJiBJc0xpbnV4KCkgJiYgaXNBc3luY0NvbW1hbmRRdWV1ZUZlYXR1cmVFbmFi
bGVkKCkpOworICAgIEFOR0xFX1NLSVBfVEVTVF9JRihJc1Z1bGthbigpICYmIElzSW50ZWwoKSAm
JiBJc0xpbnV4KCkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgR2V0UGFyYW0oKS5pc0VuYWJs
ZWQoRmVhdHVyZTo6QXN5bmNDb21tYW5kUXVldWUpKTsKICAgICAvLyBodHRwOi8vYW5nbGVidWcu
Y29tLzUzODMKICAgICBBTkdMRV9TS0lQX1RFU1RfSUYoSXNMaW51eCgpICYmIElzQU1EKCkgJiYg
SXNEZXNrdG9wT3BlbkdMKCkpOwogCkBAIC0xMTcwLDcgKzExNzUsOCBAQCBURVNUX1AoVnVsa2Fu
RXh0ZXJuYWxJbWFnZVRlc3QsIFdhaXRTZW1hcGhvcmVzUmV0YWluc0NvbnRlbnRPcGFxdWVGZCkK
ICAgICBBTkdMRV9TS0lQX1RFU1RfSUYoIUVuc3VyZUdMRXh0ZW5zaW9uRW5hYmxlZCgiR0xfRVhU
X3NlbWFwaG9yZV9mZCIpKTsKIAogICAgIC8vIGh0dHA6Ly9pc3N1ZXRyYWNrZXIuZ29vZ2xlLmNv
bS8xNzMwMDQwODEKLSAgICBBTkdMRV9TS0lQX1RFU1RfSUYoSXNWdWxrYW4oKSAmJiBJc0ludGVs
KCkgJiYgSXNMaW51eCgpICYmIGlzQXN5bmNDb21tYW5kUXVldWVGZWF0dXJlRW5hYmxlZCgpKTsK
KyAgICBBTkdMRV9TS0lQX1RFU1RfSUYoSXNWdWxrYW4oKSAmJiBJc0ludGVsKCkgJiYgSXNMaW51
eCgpICYmCisgICAgICAgICAgICAgICAgICAgICAgIEdldFBhcmFtKCkuaXNFbmFibGVkKEZlYXR1
cmU6OkFzeW5jQ29tbWFuZFF1ZXVlKSk7CiAgICAgLy8gaHR0cDovL2FuZ2xlYnVnLmNvbS81Mzgz
CiAgICAgQU5HTEVfU0tJUF9URVNUX0lGKElzTGludXgoKSAmJiBJc0FNRCgpICYmIElzRGVza3Rv
cE9wZW5HTCgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rl
c3RzL2dsX3Rlc3RzL1Z1bGthbkltYWdlVGVzdC5jcHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdM
RS9zcmMvdGVzdHMvZ2xfdGVzdHMvVnVsa2FuSW1hZ2VUZXN0LmNwcAppbmRleCBhNThmODUwMzdm
ZjU1YTg4MTYyMDExYTlkNmE2YzNlNWM3Nzc1ZGIxLi5jZWZiZmYyMTEyMjdiMGE3YmM3MDI1ZTE4
ODIzMzYwNWE0ZmVlNzgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMv
dGVzdHMvZ2xfdGVzdHMvVnVsa2FuSW1hZ2VUZXN0LmNwcAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9BTkdMRS9zcmMvdGVzdHMvZ2xfdGVzdHMvVnVsa2FuSW1hZ2VUZXN0LmNwcApAQCAtMTAsNiAr
MTAsNyBAQAogCiAjaW5jbHVkZSAiY29tbW9uL2RlYnVnLmgiCiAjaW5jbHVkZSAidGVzdF91dGls
cy9WdWxrYW5IZWxwZXIuaCIKKyNpbmNsdWRlICJ0ZXN0X3V0aWxzL2FuZ2xlX3Rlc3RfaW5zdGFu
dGlhdGUuaCIKICNpbmNsdWRlICJ0ZXN0X3V0aWxzL2dsX3JhaWkuaCIKIAogbmFtZXNwYWNlIGFu
Z2xlCkBAIC0yMCw3ICsyMSwxMSBAQCBjb25zdGV4cHIgR0x1aW50IGtIZWlnaHQgPSA2NHU7CiBj
b25zdGV4cHIgR0x1aW50IGtXaGl0ZSAgPSAweGZmZmZmZmZmOwogY29uc3RleHByIEdMdWludCBr
UmVkICAgID0gMHhmZjAwMDBmZjsKIAotdXNpbmcgVnVsa2FuSW1hZ2VUZXN0ID0gQU5HTEVUZXN0
OworY2xhc3MgVnVsa2FuSW1hZ2VUZXN0IDogcHVibGljIEFOR0xFVGVzdAoreworICBwcm90ZWN0
ZWQ6CisgICAgVnVsa2FuSW1hZ2VUZXN0KCkgeyBzZXRSb2J1c3RSZXNvdXJjZUluaXQodHJ1ZSk7
IH0KK307CiAKIC8vIENoZWNrIGV4dGVuc2lvbnMgd2l0aCBWdWthbiBiYWNrZW5kLgogVEVTVF9Q
KFZ1bGthbkltYWdlVGVzdCwgSGFzVnVsa2FuSW1hZ2VFeHRlbnNpb25zKQpAQCAtNDIxLDYgKzQy
NiwxMTAgQEAgVEVTVF9QKFZ1bGthbkltYWdlVGVzdCwgQ2xpZW50QnVmZmVyKQogICAgIHZrRGVz
dHJveUltYWdlKGhlbHBlci5nZXREZXZpY2UoKSwgdmtJbWFnZSwgbnVsbHB0cik7CiAgICAgdmtG
cmVlTWVtb3J5KGhlbHBlci5nZXREZXZpY2UoKSwgdmtEZXZpY2VNZW1vcnksIG51bGxwdHIpOwog
fQorCisvLyBUZXN0IHRoYXQgdGV4dHVyZSBzdG9yYWdlIGNyZWF0ZWQgZnJvbSBWa0ltYWdlIG1l
bW9yeSBpcyBjb25zaWRlcmVkIHByZS1pbml0aWFsaXplZCBpbiBHTC4KK1RFU1RfUChWdWxrYW5J
bWFnZVRlc3QsIFByZUluaXRpYWxpemVkT25HTEltcG9ydCkKK3sKKyAgICBBTkdMRV9TS0lQX1RF
U1RfSUYoIUVuc3VyZUdMRXh0ZW5zaW9uRW5hYmxlZCgiR0xfRVhUX21lbW9yeV9vYmplY3QiKSk7
CisKKyAgICAvLyBodHRwOi8vYW5nbGVidWcuY29tLzUzODEKKyAgICBBTkdMRV9TS0lQX1RFU1Rf
SUYoSXNMaW51eCgpICYmIElzQU1EKCkgJiYgSXNEZXNrdG9wT3BlbkdMKCkpOworCisgICAgRVhQ
RUNUX1RSVUUoRW5zdXJlR0xFeHRlbnNpb25FbmFibGVkKCJHTF9BTkdMRV9yb2J1c3RfcmVzb3Vy
Y2VfaW5pdGlhbGl6YXRpb24iKSk7CisKKyAgICBFR0xXaW5kb3cgKndpbmRvdyAgPSBnZXRFR0xX
aW5kb3coKTsKKyAgICBFR0xEaXNwbGF5IGRpc3BsYXkgPSB3aW5kb3ctPmdldERpc3BsYXkoKTsK
KyAgICBBTkdMRV9TS0lQX1RFU1RfSUYoIUlzRUdMRGlzcGxheUV4dGVuc2lvbkVuYWJsZWQoZGlz
cGxheSwgIkVHTF9BTkdMRV92dWxrYW5faW1hZ2UiKSk7CisKKyAgICBWdWxrYW5IZWxwZXIgaGVs
cGVyOworICAgIGhlbHBlci5pbml0aWFsaXplRnJvbUFOR0xFKCk7CisKKyAgICBjb25zdGV4cHIg
VmtJbWFnZVVzYWdlRmxhZ3Mga0RlZmF1bHRJbWFnZVVzYWdlRmxhZ3MgPQorICAgICAgICBWS19J
TUFHRV9VU0FHRV9UUkFOU0ZFUl9TUkNfQklUIHwgVktfSU1BR0VfVVNBR0VfVFJBTlNGRVJfRFNU
X0JJVCB8CisgICAgICAgIFZLX0lNQUdFX1VTQUdFX1NBTVBMRURfQklUIHwgVktfSU1BR0VfVVNB
R0VfU1RPUkFHRV9CSVQgfAorICAgICAgICBWS19JTUFHRV9VU0FHRV9DT0xPUl9BVFRBQ0hNRU5U
X0JJVCB8IFZLX0lNQUdFX1VTQUdFX0lOUFVUX0FUVEFDSE1FTlRfQklUOworCisgICAgQU5HTEVf
U0tJUF9URVNUX0lGKCFoZWxwZXIuY2FuQ3JlYXRlSW1hZ2VPcGFxdWVGZChWS19GT1JNQVRfUjhH
OEI4QThfVU5PUk0sIFZLX0lNQUdFX1RZUEVfMkQsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWS19JTUFHRV9USUxJTkdfT1BUSU1BTCwgMCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtE
ZWZhdWx0SW1hZ2VVc2FnZUZsYWdzKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAhaGVscGVy
LmNhbkNyZWF0ZVNlbWFwaG9yZU9wYXF1ZUZkKCkpOworCisgICAgVmtJbWFnZSB2a0ltYWdlICAg
ICAgICAgICAgICAgICA9IFZLX05VTExfSEFORExFOworICAgIFZrRGV2aWNlTWVtb3J5IHZrRGV2
aWNlTWVtb3J5ICAgPSBWS19OVUxMX0hBTkRMRTsKKyAgICBWa0RldmljZVNpemUgdmtEZXZpY2VN
ZW1vcnlTaXplID0gMHU7CisKKyAgICBWa1Jlc3VsdCByZXN1bHQgPSBWS19TVUNDRVNTOworICAg
IHJlc3VsdCA9IGhlbHBlci5jcmVhdGVJbWFnZTJET3BhcXVlRmQoVktfRk9STUFUX1I4RzhCOEE4
X1VOT1JNLCAwLCBrRGVmYXVsdEltYWdlVXNhZ2VGbGFncywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG51bGxwdHIsIHtrV2lkdGgsIGtIZWlnaHQsIDF9LCAmdmtJ
bWFnZSwgJnZrRGV2aWNlTWVtb3J5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJnZrRGV2aWNlTWVtb3J5U2l6ZSk7CisgICAgRVhQRUNUX0VRKHJlc3VsdCwgVktf
U1VDQ0VTUyk7CisKKyAgICBjb25zdGV4cHIgdWludDMyX3Qga1BpeGVsID0gMHgxMjM0NTY3ODsK
KyAgICBoZWxwZXIud3JpdGVQaXhlbHModmtJbWFnZSwgVktfSU1BR0VfTEFZT1VUX1VOREVGSU5F
RCwgVktfRk9STUFUX1I4RzhCOEE4X1VOT1JNLCB7MCwgMCwgMH0sCisgICAgICAgICAgICAgICAg
ICAgICAgIHsxLCAxLCAxfSwgc3RhdGljX2Nhc3Q8Y29uc3Qgdm9pZCAqPigma1BpeGVsKSwgc2l6
ZW9mKGtQaXhlbCkpOworCisgICAgVmtTZW1hcGhvcmUgdmtTZW1hcGhvcmUgPSBWS19OVUxMX0hB
TkRMRTsKKyAgICByZXN1bHQgICAgICAgICAgICAgICAgICA9IGhlbHBlci5jcmVhdGVTZW1hcGhv
cmVPcGFxdWVGZCgmdmtTZW1hcGhvcmUpOworICAgIEVYUEVDVF9FUShyZXN1bHQsIFZLX1NVQ0NF
U1MpOworCisgICAgLy8gTm90ZTogd3JpdGVQaXhlbHMgbGVhdmVzIHRoZSBpbWFnZSBpbiBUUkFO
U0ZFUl9EU1RfT1BUSU1BTCBsYXlvdXQuCisgICAgaGVscGVyLnJlbGVhc2VJbWFnZUFuZFNpZ25h
bFNlbWFwaG9yZSh2a0ltYWdlLCBWS19JTUFHRV9MQVlPVVRfVFJBTlNGRVJfRFNUX09QVElNQUws
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWS19JTUFHRV9MQVlP
VVRfQ09MT1JfQVRUQUNITUVOVF9PUFRJTUFMLCB2a1NlbWFwaG9yZSk7CisKKyAgICBpbnQgc2Vt
ZmQgPSAtMTsKKyAgICByZXN1bHQgICAgPSBoZWxwZXIuZXhwb3J0U2VtYXBob3JlT3BhcXVlRmQo
dmtTZW1hcGhvcmUsICZzZW1mZCk7CisgICAgRVhQRUNUX0VRKHJlc3VsdCwgVktfU1VDQ0VTUyk7
CisKKyAgICBpbnQgbWVtZmQgPSAtMTsKKyAgICByZXN1bHQgICAgPSBoZWxwZXIuZXhwb3J0TWVt
b3J5T3BhcXVlRmQodmtEZXZpY2VNZW1vcnksICZtZW1mZCk7CisgICAgRVhQRUNUX0VRKHJlc3Vs
dCwgVktfU1VDQ0VTUyk7CisKKyAgICBHTHVpbnQgc2VtYXBob3JlT2JqZWN0ID0gMHU7CisgICAg
Z2xHZW5TZW1hcGhvcmVzRVhUKDF1LCAmc2VtYXBob3JlT2JqZWN0KTsKKyAgICBFWFBFQ1RfVFJV
RShnbElzU2VtYXBob3JlRVhUKHNlbWFwaG9yZU9iamVjdCkpOworCisgICAgZ2xJbXBvcnRTZW1h
cGhvcmVGZEVYVChzZW1hcGhvcmVPYmplY3QsIEdMX0hBTkRMRV9UWVBFX09QQVFVRV9GRF9FWFQs
IHNlbWZkKTsKKyAgICBFWFBFQ1RfR0xfTk9fRVJST1IoKTsKKworICAgIEdMdWludCBtZW1vcnlP
YmplY3QgPSAwdTsKKyAgICBnbENyZWF0ZU1lbW9yeU9iamVjdHNFWFQoMXUsICZtZW1vcnlPYmpl
Y3QpOworICAgIEVYUEVDVF9UUlVFKGdsSXNNZW1vcnlPYmplY3RFWFQobWVtb3J5T2JqZWN0KSk7
CisKKyAgICBnbEltcG9ydE1lbW9yeUZkRVhUKG1lbW9yeU9iamVjdCwgdmtEZXZpY2VNZW1vcnlT
aXplLCBHTF9IQU5ETEVfVFlQRV9PUEFRVUVfRkRfRVhULCBtZW1mZCk7CisgICAgRVhQRUNUX0dM
X05PX0VSUk9SKCk7CisKKyAgICBHTHVpbnQgdGV4dHVyZSA9IDB1OworICAgIGdsR2VuVGV4dHVy
ZXMoMXUsICZ0ZXh0dXJlKTsKKyAgICBnbEJpbmRUZXh0dXJlKEdMX1RFWFRVUkVfMkQsIHRleHR1
cmUpOworICAgIGdsVGV4UGFyYW1ldGVyaShHTF9URVhUVVJFXzJELCBHTF9URVhUVVJFX01JTl9G
SUxURVIsIEdMX0xJTkVBUik7CisgICAgZ2xUZXhQYXJhbWV0ZXJpKEdMX1RFWFRVUkVfMkQsIEdM
X1RFWFRVUkVfTUFHX0ZJTFRFUiwgR0xfTElORUFSKTsKKyAgICBnbFRleFBhcmFtZXRlcmkoR0xf
VEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9XUkFQX1MsIEdMX0NMQU1QX1RPX0VER0UpOworICAgIGds
VGV4UGFyYW1ldGVyaShHTF9URVhUVVJFXzJELCBHTF9URVhUVVJFX1dSQVBfVCwgR0xfQ0xBTVBf
VE9fRURHRSk7CisKKyAgICBnbFRleFN0b3JhZ2VNZW0yREVYVChHTF9URVhUVVJFXzJELCAxLCBH
TF9SR0JBOF9PRVMsIDEsIDEsIG1lbW9yeU9iamVjdCwgMCk7CisgICAgRVhQRUNUX0dMX05PX0VS
Uk9SKCk7CisKKyAgICBHTGVudW0gZ2xMYXlvdXQgPSBHTF9MQVlPVVRfQ09MT1JfQVRUQUNITUVO
VF9FWFQ7CisgICAgZ2xXYWl0U2VtYXBob3JlRVhUKHNlbWFwaG9yZU9iamVjdCwgMCwgbnVsbHB0
ciwgMSwgJnRleHR1cmUsICZnbExheW91dCk7CisgICAgRVhQRUNUX0dMX05PX0VSUk9SKCk7CisK
KyAgICBHTHVpbnQgZmJvID0gMHU7CisgICAgZ2xHZW5GcmFtZWJ1ZmZlcnMoMXUsICZmYm8pOwor
ICAgIGdsQmluZEZyYW1lYnVmZmVyKEdMX0ZSQU1FQlVGRkVSLCBmYm8pOworICAgIGdsRnJhbWVi
dWZmZXJUZXh0dXJlMkQoR0xfRlJBTUVCVUZGRVIsIEdMX0NPTE9SX0FUVEFDSE1FTlQwLCBHTF9U
RVhUVVJFXzJELCB0ZXh0dXJlLCAwKTsKKyAgICBFWFBFQ1RfR0xfTk9fRVJST1IoKTsKKworICAg
IHVpbnQzMl90IHBpeGVsID0gMHU7CisgICAgZ2xSZWFkUGl4ZWxzKDAsIDAsIDEsIDEsIEdMX1JH
QkEsIEdMX1VOU0lHTkVEX0JZVEUsICZwaXhlbCk7CisgICAgRVhQRUNUX0dMX05PX0VSUk9SKCk7
CisKKyAgICBFWFBFQ1RfRVEocGl4ZWwsIGtQaXhlbCk7CisKKyAgICB2a0Rlc3Ryb3lTZW1hcGhv
cmUoaGVscGVyLmdldERldmljZSgpLCB2a1NlbWFwaG9yZSwgbnVsbHB0cik7CisgICAgdmtEZXN0
cm95SW1hZ2UoaGVscGVyLmdldERldmljZSgpLCB2a0ltYWdlLCBudWxscHRyKTsKKyAgICB2a0Zy
ZWVNZW1vcnkoaGVscGVyLmdldERldmljZSgpLCB2a0RldmljZU1lbW9yeSwgbnVsbHB0cik7Cit9
CisKIC8vIFVzZSB0aGlzIHRvIHNlbGVjdCB3aGljaCBjb25maWd1cmF0aW9ucyAoZS5nLiB3aGlj
aCByZW5kZXJlciwgd2hpY2ggR0xFUyBtYWpvciB2ZXJzaW9uKSB0aGVzZQogLy8gdGVzdHMgc2hv
dWxkIGJlIHJ1biBhZ2FpbnN0LgogQU5HTEVfSU5TVEFOVElBVEVfVEVTVF9FUzJfQU5EX0VTMyhW
dWxrYW5JbWFnZVRlc3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3Jj
L3Rlc3RzL2dsX3Rlc3RzL1Z1bGthbk11bHRpdGhyZWFkaW5nVGVzdC5jcHAgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvZ2xfdGVzdHMvVnVsa2FuTXVsdGl0aHJlYWRpbmdUZXN0
LmNwcAppbmRleCBjMGE3NGExNzZmYzdkOTU3MDI3MjQ2MTRlZjlhODg1ODgzMGI4MTM2Li45ZTZk
OTU5NjRiYzVjMWYxOTM1YjA2OTRiZDg0YjNhMjFkYTY2NTEwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvZ2xfdGVzdHMvVnVsa2FuTXVsdGl0aHJlYWRpbmdU
ZXN0LmNwcAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvZ2xfdGVzdHMv
VnVsa2FuTXVsdGl0aHJlYWRpbmdUZXN0LmNwcApAQCAtNSw3ICs1LDcgQEAKIC8vCiAvLyBWdWxr
YW5NdWx0aXRocmVhZGluZ1Rlc3QuY3BwIDogVGVzdHMgb2YgbXVsdGl0aHJlYWRlZCByZW5kZXJp
bmcgc3BlY2lmaWMgdG8gdGhlIFZ1bGthbiBiYWNrIGVuZC4KIAotI2luY2x1ZGUgInBsYXRmb3Jt
L0ZlYXR1cmVzVmsuaCIKKyNpbmNsdWRlICJwbGF0Zm9ybS9GZWF0dXJlc1ZrX2F1dG9nZW4uaCIK
ICNpbmNsdWRlICJ0ZXN0X3V0aWxzL0FOR0xFVGVzdC5oIgogI2luY2x1ZGUgInRlc3RfdXRpbHMv
Z2xfcmFpaS5oIgogI2luY2x1ZGUgInV0aWwvRUdMV2luZG93LmgiCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvZ2xfdGVzdHMvVnVsa2FuUGVyZm9ybWFuY2VD
b3VudGVyVGVzdC5jcHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvZ2xfdGVz
dHMvVnVsa2FuUGVyZm9ybWFuY2VDb3VudGVyVGVzdC5jcHAKaW5kZXggYzU3NDA4YzgyOWZhYzVh
OTBlM2ZjMDVjZTJjMmQ3YWQ2NmQ2MjU3Ny4uZWQ4ZWNlNmM0Njg3ZjAyM2RjNGY2MTI4OTE0NzBk
OWI5YzlmNzkxZSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3Rz
L2dsX3Rlc3RzL1Z1bGthblBlcmZvcm1hbmNlQ291bnRlclRlc3QuY3BwCisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9nbF90ZXN0cy9WdWxrYW5QZXJmb3JtYW5jZUNvdW50
ZXJUZXN0LmNwcApAQCAtNzMsMTAgKzczLDExIEBAIGNsYXNzIFZ1bGthblBlcmZvcm1hbmNlQ291
bnRlclRlc3QgOiBwdWJsaWMgQU5HTEVUZXN0CiAgICAgICAgICAgICBBU1NFUlRfTkUoZmVhdHVy
ZU5hbWUsIG51bGxwdHIpOwogICAgICAgICAgICAgQVNTRVJUX05FKGZlYXR1cmVTdGF0dXMsIG51
bGxwdHIpOwogCi0gICAgICAgICAgICBjb25zdCBib29sIGlzU3RvcmVPcE5vbmVRQ09NID0KLSAg
ICAgICAgICAgICAgICBzdHJjbXAoZmVhdHVyZU5hbWUsICJzdXBwb3J0c1JlbmRlclBhc3NTdG9y
ZU9wTm9uZVFDT00iKSA9PSAwOworICAgICAgICAgICAgY29uc3QgYm9vbCBpc1N0b3JlT3BOb25l
ID0KKyAgICAgICAgICAgICAgICBzdHJjbXAoZmVhdHVyZU5hbWUsIEdldEZlYXR1cmVOYW1lKEZl
YXR1cmU6OlN1cHBvcnRzUmVuZGVyUGFzc1N0b3JlT3BOb25lKSkgPT0gMDsKICAgICAgICAgICAg
IGNvbnN0IGJvb2wgaXNMb2FkU3RvcmVPcE5vbmVFWFQgPQotICAgICAgICAgICAgICAgIHN0cmNt
cChmZWF0dXJlTmFtZSwgInN1cHBvcnRzUmVuZGVyUGFzc0xvYWRTdG9yZU9wTm9uZSIpID09IDA7
CisgICAgICAgICAgICAgICAgc3RyY21wKGZlYXR1cmVOYW1lLCBHZXRGZWF0dXJlTmFtZShGZWF0
dXJlOjpTdXBwb3J0c1JlbmRlclBhc3NMb2FkU3RvcmVPcE5vbmUpKSA9PQorICAgICAgICAgICAg
ICAgIDA7CiAgICAgICAgICAgICBjb25zdCBib29sIGlzRW5hYmxlZCAgPSBzdHJjbXAoZmVhdHVy
ZVN0YXR1cywgYW5nbGU6OmtGZWF0dXJlU3RhdHVzRW5hYmxlZCkgPT0gMDsKICAgICAgICAgICAg
IGNvbnN0IGJvb2wgaXNEaXNhYmxlZCA9IHN0cmNtcChmZWF0dXJlU3RhdHVzLCBhbmdsZTo6a0Zl
YXR1cmVTdGF0dXNEaXNhYmxlZCkgPT0gMDsKICAgICAgICAgICAgIEFTU0VSVF9UUlVFKGlzRW5h
YmxlZCB8fCBpc0Rpc2FibGVkKTsKQEAgLTg4LDcgKzg5LDcgQEAgY2xhc3MgVnVsa2FuUGVyZm9y
bWFuY2VDb3VudGVyVGVzdCA6IHB1YmxpYyBBTkdMRVRlc3QKICAgICAgICAgICAgICAgICBtTG9h
ZE9wTm9uZVN1cHBvcnQgPSBpc1N1cHBvcnRlZDsKICAgICAgICAgICAgIH0KIAotICAgICAgICAg
ICAgaWYgKGlzU3RvcmVPcE5vbmVRQ09NIHx8IGlzTG9hZFN0b3JlT3BOb25lRVhUKQorICAgICAg
ICAgICAgaWYgKGlzU3RvcmVPcE5vbmUgfHwgaXNMb2FkU3RvcmVPcE5vbmVFWFQpCiAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgaWYgKG1TdG9yZU9wTm9uZVN1cHBvcnQgPT0gQU5HTEVG
ZWF0dXJlOjpVbmtub3duIHx8CiAgICAgICAgICAgICAgICAgICAgIG1TdG9yZU9wTm9uZVN1cHBv
cnQgPT0gQU5HTEVGZWF0dXJlOjpVbnN1cHBvcnRlZCkKQEAgLTk3LDcgKzk4LDggQEAgY2xhc3Mg
VnVsa2FuUGVyZm9ybWFuY2VDb3VudGVyVGVzdCA6IHB1YmxpYyBBTkdMRVRlc3QKICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGlmIChzdHJjbXAoZmVhdHVy
ZU5hbWUsICJwcmVmZXJEcmF3Q2xlYXJPdmVyVmtDbWRDbGVhckF0dGFjaG1lbnRzIikgPT0gMCkK
KyAgICAgICAgICAgIGlmIChzdHJjbXAoZmVhdHVyZU5hbWUsCisgICAgICAgICAgICAgICAgICAg
ICAgIEdldEZlYXR1cmVOYW1lKEZlYXR1cmU6OlByZWZlckRyYXdDbGVhck92ZXJWa0NtZENsZWFy
QXR0YWNobWVudHMpKSA9PSAwKQogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIG1QcmVm
ZXJEcmF3T3ZlckNsZWFyQXR0YWNobWVudHMgPSBpc1N1cHBvcnRlZDsKICAgICAgICAgICAgIH0K
QEAgLTE4OSw3ICsxOTEsNyBAQCBjbGFzcyBWdWxrYW5QZXJmb3JtYW5jZUNvdW50ZXJUZXN0IDog
cHVibGljIEFOR0xFVGVzdAogICAgICAgICAvLyBDbGVhciBhbmQgZHJhdyB3aXRoIGRlcHRoIGFu
ZCBzdGVuY2lsIGJ1ZmZlciBlbmFibGVkCiAgICAgICAgIGdsQ2xlYXIoR0xfQ09MT1JfQlVGRkVS
X0JJVCB8IEdMX0RFUFRIX0JVRkZFUl9CSVQgfAogICAgICAgICAgICAgICAgIChjbGVhclN0ZW5j
aWwgPyBHTF9TVEVOQ0lMX0JVRkZFUl9CSVQgOiAwKSk7Ci0gICAgICAgIGRyYXdRdWFkKCpwcm9n
cmFtLCBlc3NsMV9zaGFkZXJzOjpQb3NpdGlvbkF0dHJpYigpLCAwLjVmKTsKKyAgICAgICAgZHJh
d1F1YWQoKnByb2dyYW0sIGVzc2wxX3NoYWRlcnM6OlBvc2l0aW9uQXR0cmliKCksIDEuZik7CiAg
ICAgICAgIEFTU0VSVF9HTF9OT19FUlJPUigpOwogICAgIH0KIApAQCAtNTYzLDEwICs1NjUsMTAg
QEAgVEVTVF9QKFZ1bGthblBlcmZvcm1hbmNlQ291bnRlclRlc3QsIFN1Ym1pdHRpbmdPdXRzaWRl
Q29tbWFuZEJ1ZmZlckRvZXNOb3RCcmVha1IKICAgICBpbml0QU5HTEVGZWF0dXJlcygpOwogICAg
IC8vIGh0dHA6Ly9hbmdsZWJ1Zy5jb20vNjM1NAogCi0gICAgc2l6ZV90IGtNYXhCdWZmZXJUb0lt
YWdlQ29weVNpemUgID0gMSA8PCAyODsKLSAgICB1aW50MzJfdCBrTnVtU3VibWl0cyAgICAgICAg
ICAgICAgPSAyOwotICAgIHVpbnQzMl90IGV4cGVjdGVkUmVuZGVyUGFzc0NvdW50ICA9IGdldFBl
cmZDb3VudGVycygpLnJlbmRlclBhc3NlcyArIDE7Ci0gICAgdWludDMyX3QgZXhwZWN0ZWRTdWJt
aXRGcmFtZUNvdW50ID0gZ2V0UGVyZkNvdW50ZXJzKCkuc3VibWl0dGVkRnJhbWVzICsga051bVN1
Ym1pdHM7CisgICAgc2l6ZV90IGtNYXhCdWZmZXJUb0ltYWdlQ29weVNpemUgICAgID0gMSA8PCAy
ODsKKyAgICB1aW50MzJfdCBrTnVtU3VibWl0cyAgICAgICAgICAgICAgICAgPSAyOworICAgIHVp
bnQzMl90IGV4cGVjdGVkUmVuZGVyUGFzc0NvdW50ICAgICA9IGdldFBlcmZDb3VudGVycygpLnJl
bmRlclBhc3NlcyArIDE7CisgICAgdWludDMyX3QgZXhwZWN0ZWRTdWJtaXRDb21tYW5kc0NvdW50
ID0gZ2V0UGVyZkNvdW50ZXJzKCkudmtRdWV1ZVN1Ym1pdENhbGxzVG90YWwgKyBrTnVtU3VibWl0
czsKIAogICAgIC8vIFN0ZXAgMTogU2V0IHVwIGEgc2ltcGxlIDJEIHRleHR1cmUuCiAgICAgR0xU
ZXh0dXJlIHRleHR1cmU7CkBAIC02MjAsNyArNjIyLDcgQEAgVEVTVF9QKFZ1bGthblBlcmZvcm1h
bmNlQ291bnRlclRlc3QsIFN1Ym1pdHRpbmdPdXRzaWRlQ29tbWFuZEJ1ZmZlckRvZXNOb3RCcmVh
a1IKIAogICAgIC8vIFZlcmlmeSByZW5kZXIgcGFzcyBhbmQgc3VibWl0dGVkIGZyYW1lIGNvdW50
cy4KICAgICBFWFBFQ1RfRVEoZ2V0UGVyZkNvdW50ZXJzKCkucmVuZGVyUGFzc2VzLCBleHBlY3Rl
ZFJlbmRlclBhc3NDb3VudCk7Ci0gICAgRVhQRUNUX0VRKGdldFBlcmZDb3VudGVycygpLnN1Ym1p
dHRlZEZyYW1lcywgZXhwZWN0ZWRTdWJtaXRGcmFtZUNvdW50KTsKKyAgICBFWFBFQ1RfRVEoZ2V0
UGVyZkNvdW50ZXJzKCkudmtRdWV1ZVN1Ym1pdENhbGxzVG90YWwsIGV4cGVjdGVkU3VibWl0Q29t
bWFuZHNDb3VudCk7CiB9CiAKIC8vIFRlc3RzIHRoYXQgUkdCIHRleHR1cmUgc2hvdWxkIG5vdCBi
cmVhayByZW5kZXJwYXNzLgpAQCAtNzcyLDE5ICs3NzQsMjcgQEAgVEVTVF9QKFZ1bGthblBlcmZv
cm1hbmNlQ291bnRlclRlc3QsIEluZGVwZW5kZW50QnVmZmVyQ29waWVzU2hhcmVTaW5nbGVCYXJy
aWVyKQogICAgIC8vIFN0ZXAgMTogU2V0IHVwIGZvdXIgYnVmZmVycyBmb3IgdHdvIGNvcGllcy4K
ICAgICBHTEJ1ZmZlciBzcmNBOwogICAgIGdsQmluZEJ1ZmZlcihHTF9DT1BZX1JFQURfQlVGRkVS
LCBzcmNBKTsKLSAgICBnbEJ1ZmZlckRhdGEoR0xfQ09QWV9SRUFEX0JVRkZFUiwgc2l6ZW9mKHNy
Y0RhdGFBKSwgc3JjRGF0YUEsIEdMX1NUQVRJQ19DT1BZKTsKKyAgICAvLyBOb3RlOiBXZSBjYW4n
dCB1c2UgR0xfU1RBVElDX0NPUFkuIFVzaW5nIFNUQVRJQyB3aWxsIGNhdXNlIGRyaXZlciB0byBh
bGxvY2F0ZSBhIGhvc3QKKyAgICAvLyBpbnZpc2libGUgbWVtb3J5IGFuZCBpc3N1ZSBhIGNvcHlU
b0J1ZmZlciwgd2hpY2ggd2lsbCB0cmlnZ2VyIG91dHNpZGVSZW5kZXJQYXNzQ29tbWFuZEJ1ZmZl
cgorICAgIC8vIGZsdXNoIHdoZW4gZ2xDb3B5QnVmZmVyU3ViRGF0YSBpcyBjYWxsZWQgZHVlIHRv
IHJlYWQgYWZ0ZXIgd3JpdGUuIFRoYXQgd2lsbCBicmVhayB0aGUKKyAgICAvLyBleHBlY3RhdGlv
bnMgYW5kIGNhdXNlIHRlc3QgdG8gZmFpbC4KKyAgICBnbEJ1ZmZlckRhdGEoR0xfQ09QWV9SRUFE
X0JVRkZFUiwgc2l6ZW9mKHNyY0RhdGFBKSwgc3JjRGF0YUEsIEdMX0RZTkFNSUNfQ09QWSk7CiAK
ICAgICBHTEJ1ZmZlciBkc3RBOwogICAgIGdsQmluZEJ1ZmZlcihHTF9DT1BZX1dSSVRFX0JVRkZF
UiwgZHN0QSk7Ci0gICAgZ2xCdWZmZXJEYXRhKEdMX0NPUFlfV1JJVEVfQlVGRkVSLCBzaXplb2Yo
c3JjRGF0YUFbMF0pICogMiwgbnVsbHB0ciwgR0xfU1RBVElDX0NPUFkpOworICAgIC8vIE5vdGU6
IFdlIGNhbid0IHVzZSBHTF9TVEFUSUNfQ09QWS4gVXNpbmcgU1RBVElDIHdpbGwgY2F1c2UgZHJp
dmVyIHRvIGFsbG9jYXRlIGEgaG9zdAorICAgIC8vIGludmlzaWJsZSBtZW1vcnkgYW5kIGlzc3Vl
IGEgY29weVRvQnVmZmVyLCB3aGljaCB3aWxsIHRyaWdnZXIgb3V0c2lkZVJlbmRlclBhc3NDb21t
YW5kQnVmZmVyCisgICAgLy8gZmx1c2ggd2hlbiBnbENvcHlCdWZmZXJTdWJEYXRhIGlzIGNhbGxl
ZCBkdWUgdG8gd3JpdGUgYWZ0ZXIgd3JpdGUuIFRoYXQgd2lsbCBicmVhayB0aGUKKyAgICAvLyBl
eHBlY3RhdGlvbnMgYW5kIGNhdXNlIHRlc3QgdG8gZmFpbC4KKyAgICBnbEJ1ZmZlckRhdGEoR0xf
Q09QWV9XUklURV9CVUZGRVIsIHNpemVvZihzcmNEYXRhQVswXSkgKiAyLCBudWxscHRyLCBHTF9E
WU5BTUlDX0NPUFkpOwogCiAgICAgR0xCdWZmZXIgc3JjQjsKICAgICBnbEJpbmRCdWZmZXIoR0xf
Q09QWV9SRUFEX0JVRkZFUiwgc3JjQik7Ci0gICAgZ2xCdWZmZXJEYXRhKEdMX0NPUFlfUkVBRF9C
VUZGRVIsIHNpemVvZihzcmNEYXRhQiksIHNyY0RhdGFCLCBHTF9TVEFUSUNfQ09QWSk7CisgICAg
Z2xCdWZmZXJEYXRhKEdMX0NPUFlfUkVBRF9CVUZGRVIsIHNpemVvZihzcmNEYXRhQiksIHNyY0Rh
dGFCLCBHTF9EWU5BTUlDX0NPUFkpOwogCiAgICAgR0xCdWZmZXIgZHN0QjsKICAgICBnbEJpbmRC
dWZmZXIoR0xfQ09QWV9XUklURV9CVUZGRVIsIGRzdEIpOwotICAgIGdsQnVmZmVyRGF0YShHTF9D
T1BZX1dSSVRFX0JVRkZFUiwgc2l6ZW9mKHNyY0RhdGFCWzBdKSAqIDIsIG51bGxwdHIsIEdMX1NU
QVRJQ19DT1BZKTsKKyAgICBnbEJ1ZmZlckRhdGEoR0xfQ09QWV9XUklURV9CVUZGRVIsIHNpemVv
ZihzcmNEYXRhQlswXSkgKiAyLCBudWxscHRyLCBHTF9EWU5BTUlDX0NPUFkpOwogCiAgICAgLy8g
V2UgZXhwZWN0IHRoYXQgQU5HTEUgZ2VuZXJhdGUgemVybyBhZGRpdGlvbmFsIGNvbW1hbmQgYnVm
ZmVycy4KICAgICB1aW50MzJfdCBleHBlY3RlZEZsdXNoQ291bnQgPSBnZXRQZXJmQ291bnRlcnMo
KS5mbHVzaGVkT3V0c2lkZVJlbmRlclBhc3NDb21tYW5kQnVmZmVyczsKQEAgLTE1NTgsNiArMTU2
OCw4MCBAQCBURVNUX1AoVnVsa2FuUGVyZm9ybWFuY2VDb3VudGVyVGVzdCwgRGVwdGhTdGVuY2ls
SW52YWxpZGF0ZVN1YikKICAgICBjb21wYXJlRGVwdGhTdGVuY2lsTG9hZE9wQ291bnRlcnMoZ2V0
UGVyZkNvdW50ZXJzKCksIGV4cGVjdGVkKTsKIH0KIAorLy8gU2ltaWxhciB0byBJbnZhbGlkYXRl
U3ViLCBidXQgdXNlcyBnbEludmFsaWRhdGVTdWJGcmFtZWJ1ZmZlciBzdWNoIHRoYXQgdGhlIGdp
dmVuIGFyZWEgZG9lcyBOT1QKKy8vIGNvdmVycyB0aGUgd2hvbGUgZnJhbWVidWZmZXIuCitURVNU
X1AoVnVsa2FuUGVyZm9ybWFuY2VDb3VudGVyVGVzdCwgRGVwdGhTdGVuY2lsUGFydGlhbEludmFs
aWRhdGVTdWIpCit7CisgICAgQU5HTEVfU0tJUF9URVNUX0lGKCFJc0dMRXh0ZW5zaW9uRW5hYmxl
ZChrUGVyZk1vbml0b3JFeHRlbnNpb25OYW1lKSk7CisgICAgaW5pdEFOR0xFRmVhdHVyZXMoKTsK
KworICAgIGFuZ2xlOjpWdWxrYW5QZXJmQ291bnRlcnMgZXhwZWN0ZWQ7CisKKyAgICAvLyBFeHBl
Y3QgcnBDb3VudCsxLCBkZXB0aChDbGVhcnMrMSwgTG9hZHMrMCwgTG9hZE5vbmVzKzAsIFN0b3Jl
cysxLCBTdG9yZU5vbmVzKzApLAorICAgIC8vIHN0ZW5jaWwoQ2xlYXJzKzEsIExvYWRzKzAsIExv
YWROb25lcyswLCBTdG9yZXMrMSwgU3RvcmVOb25lcyswKQorICAgIHNldEV4cGVjdGVkQ291bnRl
cnNGb3JEZXB0aE9wcyhnZXRQZXJmQ291bnRlcnMoKSwgMSwgMSwgMCwgMCwgMSwgMCwgJmV4cGVj
dGVkKTsKKyAgICBzZXRFeHBlY3RlZENvdW50ZXJzRm9yU3RlbmNpbE9wcyhnZXRQZXJmQ291bnRl
cnMoKSwgMSwgMCwgMCwgMSwgMCwgJmV4cGVjdGVkKTsKKworICAgIC8vIENyZWF0ZSB0aGUgZnJh
bWVidWZmZXIgYW5kIG1ha2Ugc3VyZSBkZXB0aC9zdGVuY2lsIGhhdmUgdmFsaWQgY29udGVudHMu
CisgICAgQU5HTEVfR0xfUFJPR1JBTShkcmF3UmVkLCBlc3NsMV9zaGFkZXJzOjp2czo6U2ltcGxl
KCksIGVzc2wxX3NoYWRlcnM6OmZzOjpSZWQoKSk7CisgICAgR0xGcmFtZWJ1ZmZlciBmcmFtZWJ1
ZmZlcjsKKyAgICBHTFRleHR1cmUgdGV4dHVyZTsKKyAgICBHTFJlbmRlcmJ1ZmZlciByZW5kZXJi
dWZmZXI7CisgICAgc2V0dXBDbGVhckFuZERyYXdGb3JEZXB0aFN0ZW5jaWxPcHNUZXN0KCZkcmF3
UmVkLCAmZnJhbWVidWZmZXIsICZ0ZXh0dXJlLCAmcmVuZGVyYnVmZmVyLCB0cnVlKTsKKworICAg
IC8vIEJyZWFrIHRoZSByZW5kZXIgcGFzcyBzbyBkZXB0aC9zdGVuY2lsIHZhbHVlcyBhcmUgc3Rv
cmVkLgorICAgIEVYUEVDVF9FUShleHBlY3RlZC5yZW5kZXJQYXNzZXMsIGdldFBlcmZDb3VudGVy
cygpLnJlbmRlclBhc3Nlcyk7CisgICAgRVhQRUNUX1BJWEVMX0NPTE9SX0VRKDAsIDAsIEdMQ29s
b3I6OnJlZCk7CisgICAgY29tcGFyZURlcHRoU3RlbmNpbE9wQ291bnRlcnMoZ2V0UGVyZkNvdW50
ZXJzKCksIGV4cGVjdGVkKTsKKworICAgIC8vIFN0YXJ0IGEgbmV3IHJlbmRlciBwYXNzIHRoYXQg
aXMgc2Npc3NvcmVkLiAgRGVwdGgvc3RlbmNpbCBzaG91bGQgYmUgbG9hZGVkLiAgVGhlIGRyYXcg
Y2FsbCBpcworICAgIC8vIGZvbGxvd2VkIGJ5IGFuIGludmFsaWRhdGUsIHNvIHN0b3JlIHNob3Vs
ZG4ndCBoYXBwZW4uCisKKyAgICAvLyBFeHBlY3QgcnBDb3VudCsxLCBkZXB0aChDbGVhcnMrMCwg
TG9hZHMrMSwgTG9hZE5vbmVzKzAsIFN0b3JlcyswLCBTdG9yZU5vbmVzKzApLAorICAgIC8vIHN0
ZW5jaWwoQ2xlYXJzKzAsIExvYWRzKzEsIExvYWROb25lcyswLCBTdG9yZXMrMCwgU3RvcmVOb25l
cyswKQorICAgIHNldEV4cGVjdGVkQ291bnRlcnNGb3JEZXB0aE9wcyhnZXRQZXJmQ291bnRlcnMo
KSwgMSwgMCwgMSwgMCwgMCwgMCwgJmV4cGVjdGVkKTsKKyAgICBzZXRFeHBlY3RlZENvdW50ZXJz
Rm9yU3RlbmNpbE9wcyhnZXRQZXJmQ291bnRlcnMoKSwgMCwgMSwgMCwgMCwgMCwgJmV4cGVjdGVk
KTsKKworICAgIGdsRW5hYmxlKEdMX1NDSVNTT1JfVEVTVCk7CisgICAgZ2xTY2lzc29yKGtPcHNU
ZXN0U2l6ZSAvIDgsIGtPcHNUZXN0U2l6ZSAvIDQsIGtPcHNUZXN0U2l6ZSAvIDIsIGtPcHNUZXN0
U2l6ZSAvIDMpOworCisgICAgZ2xTdGVuY2lsT3AoR0xfUkVQTEFDRSwgR0xfUkVQTEFDRSwgR0xf
UkVQTEFDRSk7CisgICAgZ2xTdGVuY2lsRnVuYyhHTF9BTFdBWVMsIDB4NTUsIDB4RkYpOworICAg
IGdsRGVwdGhGdW5jKEdMX0FMV0FZUyk7CisKKyAgICBBTkdMRV9HTF9QUk9HUkFNKGRyYXdHcmVl
biwgZXNzbDFfc2hhZGVyczo6dnM6OlNpbXBsZSgpLCBlc3NsMV9zaGFkZXJzOjpmczo6R3JlZW4o
KSk7CisgICAgZHJhd1F1YWQoZHJhd0dyZWVuLCBlc3NsMV9zaGFkZXJzOjpQb3NpdGlvbkF0dHJp
YigpLCAwLjVmKTsKKyAgICBBU1NFUlRfR0xfTk9fRVJST1IoKTsKKworICAgIGNvbnN0IEdMZW51
bSBkaXNjYXJkc1tdID0ge0dMX0RFUFRIX0FUVEFDSE1FTlQsIEdMX1NURU5DSUxfQVRUQUNITUVO
VH07CisgICAgZ2xJbnZhbGlkYXRlU3ViRnJhbWVidWZmZXIoR0xfRlJBTUVCVUZGRVIsIDIsIGRp
c2NhcmRzLCBrT3BzVGVzdFNpemUgLyA4LCBrT3BzVGVzdFNpemUgLyA4LAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDcgKiBrT3BzVGVzdFNpemUgLyA4LCA3ICoga09wc1Rlc3RTaXpl
IC8gOCk7CisKKyAgICAvLyBCcmVhayB0aGUgcmVuZGVyIHBhc3Mgc28gZGVwdGgvc3RlbmNpbCB2
YWx1ZXMgYXJlIGRpc2NhcmRlZC4KKyAgICBFWFBFQ1RfRVEoZXhwZWN0ZWQucmVuZGVyUGFzc2Vz
LCBnZXRQZXJmQ291bnRlcnMoKS5yZW5kZXJQYXNzZXMpOworICAgIEVYUEVDVF9QSVhFTF9DT0xP
Ul9FUShrT3BzVGVzdFNpemUgLyAyLCBrT3BzVGVzdFNpemUgLyAyLCBHTENvbG9yOjpncmVlbik7
CisgICAgY29tcGFyZURlcHRoU3RlbmNpbE9wQ291bnRlcnMoZ2V0UGVyZkNvdW50ZXJzKCksIGV4
cGVjdGVkKTsKKworICAgIC8vIFN0YXJ0IGFub3RoZXIgcmVuZGVyIHBhc3Mgd2l0aG91dCBzY2lz
c29yLiAgQmVjYXVzZSBwYXJ0cyBvZiB0aGUgZnJhbWVidWZmZXIgYXR0YWNobWVudHMgd2VyZQor
ICAgIC8vIG5vdCBpbnZhbGlkYXRlZCwgZGVwdGgvc3RlbmNpbCBzaG91bGQgYmUgbG9hZGVkLgor
CisgICAgLy8gRXhwZWN0IHJwQ291bnQrMSwgZGVwdGgoQ2xlYXJzKzAsIExvYWRzKzEsIExvYWRO
b25lcyswLCBTdG9yZXMrMSwgU3RvcmVOb25lcyswKSwKKyAgICAvLyBzdGVuY2lsKENsZWFycysw
LCBMb2FkcysxLCBMb2FkTm9uZXMrMCwgU3RvcmVzKzEsIFN0b3JlTm9uZXMrMCkKKyAgICBzZXRF
eHBlY3RlZENvdW50ZXJzRm9yRGVwdGhPcHMoZ2V0UGVyZkNvdW50ZXJzKCksIDEsIDAsIDEsIDAs
IDEsIDAsICZleHBlY3RlZCk7CisgICAgc2V0RXhwZWN0ZWRDb3VudGVyc0ZvclN0ZW5jaWxPcHMo
Z2V0UGVyZkNvdW50ZXJzKCksIDAsIDEsIDAsIDEsIDAsICZleHBlY3RlZCk7CisKKyAgICBnbERp
c2FibGUoR0xfU0NJU1NPUl9URVNUKTsKKworICAgIEFOR0xFX0dMX1BST0dSQU0oZHJhd0JsdWUs
IGVzc2wxX3NoYWRlcnM6OnZzOjpTaW1wbGUoKSwgZXNzbDFfc2hhZGVyczo6ZnM6OkJsdWUoKSk7
CisgICAgZHJhd1F1YWQoZHJhd0JsdWUsIGVzc2wxX3NoYWRlcnM6OlBvc2l0aW9uQXR0cmliKCks
IDAuNWYpOworICAgIEFTU0VSVF9HTF9OT19FUlJPUigpOworCisgICAgLy8gVmVyaWZ5IHJlc3Vs
dHMKKyAgICBFWFBFQ1RfRVEoZXhwZWN0ZWQucmVuZGVyUGFzc2VzLCBnZXRQZXJmQ291bnRlcnMo
KS5yZW5kZXJQYXNzZXMpOworICAgIEVYUEVDVF9QSVhFTF9DT0xPUl9FUSgwLCAwLCBHTENvbG9y
OjpibHVlKTsKKyAgICBjb21wYXJlRGVwdGhTdGVuY2lsT3BDb3VudGVycyhnZXRQZXJmQ291bnRl
cnMoKSwgZXhwZWN0ZWQpOworfQorCiAvLyBUZXN0cyB0aGF0IGFub3RoZXIgY2FzZSBkb2VzIG5v
dCBicmVhayByZW5kZXIgcGFzcywgYW5kIHRoYXQgY291bnRzIGFyZSBjb3JyZWN0OgogLy8KIC8v
IC0gU2NlbmFyaW86IGludmFsaWRhdGUsIGRyYXcKQEAgLTM5ODUsOCArNDA2OSw3IEBAIHZvaWQg
bWFpbigpCiAgICAgICAgIH0KICAgICB9CiAKLSAgICAvLyBUT0RPKHN5b3Vzc2VmaSk6IFZhbGlk
YXRlLgotICAgIEFOR0xFX1VOVVNFRF9WQVJJQUJMRShkZXNjcmlwdG9yU2V0QWxsb2NhdGlvbnNC
ZWZvcmUpOworICAgIEVYUEVDVF9HVChkZXNjcmlwdG9yU2V0QWxsb2NhdGlvbnNCZWZvcmUsIDB1
KTsKIAogICAgIEFTU0VSVF9HTF9OT19FUlJPUigpOwogCkBAIC00MDA0LDcgKzQwODcsNyBAQCB2
b2lkIG1haW4oKQogCiAgICAgLy8gQ2hlY2sgZm9yIHVubmVjZXNzYXJ5IGRlc2NyaXB0b3Igc2V0
IGFsbG9jYXRpb25zLgogICAgIHVpbnQzMl90IGRlc2NyaXB0b3JTZXRBbGxvY2F0aW9uc0FmdGVy
ID0gZ2V0UGVyZkNvdW50ZXJzKCkuZGVzY3JpcHRvclNldEFsbG9jYXRpb25zOwotICAgIEVYUEVD
VF9FUShkZXNjcmlwdG9yU2V0QWxsb2NhdGlvbnNBZnRlciwgMHUpOworICAgIEVYUEVDVF9FUShk
ZXNjcmlwdG9yU2V0QWxsb2NhdGlvbnNBZnRlciwgZGVzY3JpcHRvclNldEFsbG9jYXRpb25zQmVm
b3JlKTsKIH0KIAogLy8gVGVzdCB0aGF0IG1hcHBpbmcgYSBidWZmZXIgdGhhdCB0aGUgR1BVIGlz
IHVzaW5nIGFzIHJlYWQtb25seSBnaG9zdHMgdGhlIGJ1ZmZlciwgcmF0aGVyIHRoYW4KQEAgLTQy
MTUsNiArNDI5OCw5MiBAQCBURVNUX1AoVnVsa2FuUGVyZm9ybWFuY2VDb3VudGVyVGVzdF9NU0FB
LCBTd2FwU2hvdWxkSW52YWxpZGF0ZURlcHRoU3RlbmNpbCkKICAgICBjb21wYXJlRGVwdGhTdGVu
Y2lsT3BDb3VudGVycyhnZXRQZXJmQ291bnRlcnMoKSwgZXhwZWN0ZWQpOwogfQogCisvLyBWZXJp
ZmllcyB0aGF0IG11bHRpc2FtcGxlIHN3YXBjaGFpbiByZXNvbHZlIG9jY3VycyBpbiBzdWJwYXNz
LgorVEVTVF9QKFZ1bGthblBlcmZvcm1hbmNlQ291bnRlclRlc3RfTVNBQSwgU3dhcFNob3VsZFJl
c29sdmVXaXRoU3VicGFzcykKK3sKKyAgICBhbmdsZTo6VnVsa2FuUGVyZkNvdW50ZXJzIGV4cGVj
dGVkOworICAgIC8vIEV4cGVjdCBycENvdW50KzEsIGNvbG9yKENsZWFycysxLCBMb2FkcyswLCBM
b2FkTm9uZXMrMCwgU3RvcmVzKzEsIFN0b3JlTm9uZXMrMCkKKyAgICBzZXRFeHBlY3RlZENvdW50
ZXJzRm9yQ29sb3JPcHMoZ2V0UGVyZkNvdW50ZXJzKCksIDEsIDEsIDAsIDAsIDEsIDAsICZleHBl
Y3RlZCk7CisKKyAgICB1aW50MzJfdCBleHBlY3RlZFJlc29sdmVzU3VicGFzcyA9IGdldFBlcmZD
b3VudGVycygpLnN3YXBjaGFpblJlc29sdmVJblN1YnBhc3MgKyAxOworICAgIHVpbnQzMl90IGV4
cGVjdGVkUmVzb2x2ZXNPdXRzaWRlID0gZ2V0UGVyZkNvdW50ZXJzKCkuc3dhcGNoYWluUmVzb2x2
ZU91dHNpZGVTdWJwYXNzOworCisgICAgLy8gQ2xlYXIgY29sb3IuCisgICAgZ2xDbGVhckNvbG9y
KDAuMGYsIDAuMGYsIDAuMGYsIDEuMGYpOworICAgIGdsQ2xlYXIoR0xfQ09MT1JfQlVGRkVSX0JJ
VCB8IEdMX0RFUFRIX0JVRkZFUl9CSVQpOworCisgICAgLy8gU2V0IHVwIHByb2dyYW0KKyAgICBB
TkdMRV9HTF9QUk9HUkFNKGRyYXdDb2xvciwgZXNzbDFfc2hhZGVyczo6dnM6OlNpbXBsZSgpLCBl
c3NsMV9zaGFkZXJzOjpmczo6VW5pZm9ybUNvbG9yKCkpOworICAgIGdsVXNlUHJvZ3JhbShkcmF3
Q29sb3IpOworICAgIEdMaW50IGNvbG9yVW5pZm9ybUxvY2F0aW9uID0KKyAgICAgICAgZ2xHZXRV
bmlmb3JtTG9jYXRpb24oZHJhd0NvbG9yLCBhbmdsZTo6ZXNzbDFfc2hhZGVyczo6Q29sb3JVbmlm
b3JtKCkpOworICAgIEFTU0VSVF9ORShjb2xvclVuaWZvcm1Mb2NhdGlvbiwgLTEpOworCisgICAg
Ly8gRHJhdyBncmVlbgorICAgIGdsVW5pZm9ybTRmKGNvbG9yVW5pZm9ybUxvY2F0aW9uLCAwLjBm
LCAxLjBmLCAwLjBmLCAxLjBmKTsKKyAgICBkcmF3UXVhZChkcmF3Q29sb3IsIGVzc2wxX3NoYWRl
cnM6OlBvc2l0aW9uQXR0cmliKCksIDAuOTVmKTsKKyAgICBBU1NFUlRfR0xfTk9fRVJST1IoKTsK
KworICAgIC8vIFN3YXAgYnVmZmVycyB0byBpbXBsaWNpdGx5IHJlc29sdmUKKyAgICBzd2FwQnVm
ZmVycygpOworICAgIEVYUEVDVF9FUShnZXRQZXJmQ291bnRlcnMoKS5zd2FwY2hhaW5SZXNvbHZl
SW5TdWJwYXNzLCBleHBlY3RlZFJlc29sdmVzU3VicGFzcyk7CisgICAgRVhQRUNUX0VRKGdldFBl
cmZDb3VudGVycygpLnN3YXBjaGFpblJlc29sdmVPdXRzaWRlU3VicGFzcywgZXhwZWN0ZWRSZXNv
bHZlc091dHNpZGUpOworCisgICAgY29tcGFyZUNvbG9yT3BDb3VudGVycyhnZXRQZXJmQ291bnRl
cnMoKSwgZXhwZWN0ZWQpOworfQorCisvLyBWZXJpZmllcyB0aGF0IGluIGEgbXVsdGlzYW1wbGUg
c3dhcGNoYWluLCBkcmF3aW5nIHRvIHRoZSBkZWZhdWx0IEZCTyBmb2xsb3dlZCBieSB1c2VyIEZC
TyBhbmQKKy8vIHRoZW4gc3dhcHBpbmcgdHJpZ2dlcnMgdGhlIHJlc29sdmUgb3V0c2lkZSB0aGUg
b3B0aW1pemF0aW9uIHN1YnBhc3MuCitURVNUX1AoVnVsa2FuUGVyZm9ybWFuY2VDb3VudGVyVGVz
dF9NU0FBLCBTd2FwQWZ0ZXJEcmF3VG9EaWZmZXJlbnRGQk9zU2hvdWxkUmVzb2x2ZU91dHNpZGVT
dWJwYXNzKQoreworICAgIGNvbnN0ZXhwciBHTHNpemVpIGtTaXplID0gMTY7CisgICAgYW5nbGU6
OlZ1bGthblBlcmZDb3VudGVycyBleHBlY3RlZDsKKyAgICAvLyBFeHBlY3QgcnBDb3VudCsxLCBj
b2xvcihDbGVhcnMrMSwgTG9hZHMrMCwgTG9hZE5vbmVzKzAsIFN0b3JlcysyLCBTdG9yZU5vbmVz
KzApCisgICAgc2V0RXhwZWN0ZWRDb3VudGVyc0ZvckNvbG9yT3BzKGdldFBlcmZDb3VudGVycygp
LCAxLCAxLCAwLCAwLCAyLCAwLCAmZXhwZWN0ZWQpOworCisgICAgdWludDMyX3QgZXhwZWN0ZWRS
ZXNvbHZlc1N1YnBhc3MgPSBnZXRQZXJmQ291bnRlcnMoKS5zd2FwY2hhaW5SZXNvbHZlSW5TdWJw
YXNzOworICAgIHVpbnQzMl90IGV4cGVjdGVkUmVzb2x2ZXNPdXRzaWRlID0gZ2V0UGVyZkNvdW50
ZXJzKCkuc3dhcGNoYWluUmVzb2x2ZU91dHNpZGVTdWJwYXNzICsgMTsKKworICAgIC8vIENyZWF0
ZSBhIGZyYW1lYnVmZmVyIHRvIGNsZWFyLgorICAgIEdMVGV4dHVyZSBjb2xvcjsKKyAgICBnbEJp
bmRUZXh0dXJlKEdMX1RFWFRVUkVfMkQsIGNvbG9yKTsKKyAgICBnbFRleEltYWdlMkQoR0xfVEVY
VFVSRV8yRCwgMCwgR0xfUkdCQSwga1NpemUsIGtTaXplLCAwLCBHTF9SR0JBLCBHTF9VTlNJR05F
RF9CWVRFLCBudWxscHRyKTsKKyAgICBHTEZyYW1lYnVmZmVyIGZibzsKKyAgICBnbEJpbmRGcmFt
ZWJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgZmJvKTsKKyAgICBnbEZyYW1lYnVmZmVyVGV4dHVyZTJE
KEdMX0ZSQU1FQlVGRkVSLCBHTF9DT0xPUl9BVFRBQ0hNRU5UMCwgR0xfVEVYVFVSRV8yRCwgY29s
b3IsIDApOworICAgIEFTU0VSVF9HTF9OT19FUlJPUigpOworCisgICAgLy8gQ2xlYXIgY29sb3Iu
CisgICAgZ2xDbGVhckNvbG9yKDAuMGYsIDAuMGYsIDAuMGYsIDEuMGYpOworICAgIGdsQ2xlYXIo
R0xfQ09MT1JfQlVGRkVSX0JJVCB8IEdMX0RFUFRIX0JVRkZFUl9CSVQpOworCisgICAgLy8gU2V0
IHVwIHByb2dyYW0KKyAgICBBTkdMRV9HTF9QUk9HUkFNKGRyYXdDb2xvciwgZXNzbDFfc2hhZGVy
czo6dnM6OlNpbXBsZSgpLCBlc3NsMV9zaGFkZXJzOjpmczo6VW5pZm9ybUNvbG9yKCkpOworICAg
IGdsVXNlUHJvZ3JhbShkcmF3Q29sb3IpOworICAgIEdMaW50IGNvbG9yVW5pZm9ybUxvY2F0aW9u
ID0KKyAgICAgICAgZ2xHZXRVbmlmb3JtTG9jYXRpb24oZHJhd0NvbG9yLCBhbmdsZTo6ZXNzbDFf
c2hhZGVyczo6Q29sb3JVbmlmb3JtKCkpOworICAgIEFTU0VSVF9ORShjb2xvclVuaWZvcm1Mb2Nh
dGlvbiwgLTEpOworCisgICAgLy8gRHJhdyBncmVlbiB0byBkZWZhdWx0IGZyYW1lYnVmZmVyCisg
ICAgZ2xCaW5kRnJhbWVidWZmZXIoR0xfRlJBTUVCVUZGRVIsIDApOworICAgIGdsVW5pZm9ybTRm
KGNvbG9yVW5pZm9ybUxvY2F0aW9uLCAwLjBmLCAxLjBmLCAwLjBmLCAxLjBmKTsKKyAgICBkcmF3
UXVhZChkcmF3Q29sb3IsIGVzc2wxX3NoYWRlcnM6OlBvc2l0aW9uQXR0cmliKCksIDAuOTVmKTsK
KyAgICBBU1NFUlRfR0xfTk9fRVJST1IoKTsKKworICAgIC8vIERyYXcgYmx1ZSB0byB0aGUgdXNl
ciBmcmFtZWJ1ZmZlcgorICAgIGdsQmluZEZyYW1lYnVmZmVyKEdMX0ZSQU1FQlVGRkVSLCBmYm8p
OworICAgIGdsVW5pZm9ybTRmKGNvbG9yVW5pZm9ybUxvY2F0aW9uLCAwLjBmLCAwLjBmLCAxLjBm
LCAxLjBmKTsKKyAgICBkcmF3UXVhZChkcmF3Q29sb3IsIGVzc2wxX3NoYWRlcnM6OlBvc2l0aW9u
QXR0cmliKCksIDAuOTVmKTsKKyAgICBBU1NFUlRfR0xfTk9fRVJST1IoKTsKKworICAgIC8vIFN3
YXAgYnVmZmVycyB0byByZXNvbHZlIG91dHNpZGUgdGhlIG9wdGltaXphdGlvbiBzdWJwYXNzCisg
ICAgc3dhcEJ1ZmZlcnMoKTsKKyAgICBFWFBFQ1RfRVEoZ2V0UGVyZkNvdW50ZXJzKCkuc3dhcGNo
YWluUmVzb2x2ZUluU3VicGFzcywgZXhwZWN0ZWRSZXNvbHZlc1N1YnBhc3MpOworICAgIEVYUEVD
VF9FUShnZXRQZXJmQ291bnRlcnMoKS5zd2FwY2hhaW5SZXNvbHZlT3V0c2lkZVN1YnBhc3MsIGV4
cGVjdGVkUmVzb2x2ZXNPdXRzaWRlKTsKKworICAgIGNvbXBhcmVDb2xvck9wQ291bnRlcnMoZ2V0
UGVyZkNvdW50ZXJzKCksIGV4cGVjdGVkKTsKK30KKwogLy8gVGVzdHMgdGhhdCB1bmlmb3JtIHVw
ZGF0ZXMgZXZlbnR1YWxseSBzdG9wIHVwZGF0aW5nIGRlc2NyaXB0b3Igc2V0cy4KIFRFU1RfUChW
dWxrYW5QZXJmb3JtYW5jZUNvdW50ZXJUZXN0LCBVbmlmb3JtVXBkYXRlc0hpdERlc2NyaXB0b3JT
ZXRDYWNoZSkKIHsKQEAgLTQ3NDEsNiArNDkxMCw4OSBAQCBURVNUX1AoVnVsa2FuUGVyZm9ybWFu
Y2VDb3VudGVyVGVzdCwgSW52YWxpZGF0ZVRoZW5SZXBlYXRlZENsZWFyVGhlblJlYWRiYWNrVGhl
bgogICAgIGNvbXBhcmVDb2xvck9wQ291bnRlcnMoZ2V0UGVyZkNvdW50ZXJzKCksIGV4cGVjdGVk
KTsKIH0KIAorLy8gVGVzdHMgdGhhdCB0aGUgc3VibWlzc2lvbiBjb3VudGVycyBjb3VudCB0aGUg
aW1wbGljaXQgc3VibWlzc2lvbiBpbiBlZ2xTd2FwQnVmZmVycygpLgorVEVTVF9QKFZ1bGthblBl
cmZvcm1hbmNlQ291bnRlclRlc3QsIFZlcmlmeVN1Ym1pdENvdW50ZXJzKQoreworICAgIGluaXRB
TkdMRUZlYXR1cmVzKCk7CisKKyAgICB1aW50MzJfdCBleHBlY3RlZFZrUXVldWVTdWJtaXRDb3Vu
dCAgICAgID0gZ2V0UGVyZkNvdW50ZXJzKCkudmtRdWV1ZVN1Ym1pdENhbGxzVG90YWw7CisgICAg
dWludDMyX3QgZXhwZWN0ZWRDb21tYW5kUXVldWVTdWJtaXRDb3VudCA9IGdldFBlcmZDb3VudGVy
cygpLmNvbW1hbmRRdWV1ZVN1Ym1pdENhbGxzVG90YWw7CisKKyAgICAvLyBPbmUgc3VibWlzc2lv
biBjb21pbmcgZnJvbSBjbGVhciBhbmQgcmVhZCBiYWNrCisgICAgKytleHBlY3RlZFZrUXVldWVT
dWJtaXRDb3VudDsKKyAgICArK2V4cGVjdGVkQ29tbWFuZFF1ZXVlU3VibWl0Q291bnQ7CisKKyAg
ICBnbENsZWFyQ29sb3IoMSwgMCwgMCwgMSk7CisgICAgZ2xDbGVhcihHTF9DT0xPUl9CVUZGRVJf
QklUKTsKKyAgICBFWFBFQ1RfUElYRUxfQ09MT1JfRVEoMCwgMCwgR0xDb2xvcjo6cmVkKTsKKwor
ICAgIEVYUEVDVF9FUShnZXRQZXJmQ291bnRlcnMoKS52a1F1ZXVlU3VibWl0Q2FsbHNUb3RhbCwg
ZXhwZWN0ZWRWa1F1ZXVlU3VibWl0Q291bnQpOworICAgIEVYUEVDVF9FUShnZXRQZXJmQ291bnRl
cnMoKS5jb21tYW5kUXVldWVTdWJtaXRDYWxsc1RvdGFsLCBleHBlY3RlZENvbW1hbmRRdWV1ZVN1
Ym1pdENvdW50KTsKKworICAgIC8vIE9uZSBzdWJtaXNzaW9uIGNvbWluZyBmcm9tIGRyYXcgYW5k
IGltcGxpY2l0IHN1Ym1pc3Npb24gZnJvbSBlZ2xTd2FwQnVmZmVycworICAgICsrZXhwZWN0ZWRW
a1F1ZXVlU3VibWl0Q291bnQ7CisgICAgKytleHBlY3RlZENvbW1hbmRRdWV1ZVN1Ym1pdENvdW50
OworCisgICAgQU5HTEVfR0xfUFJPR1JBTShkcmF3R3JlZW4sIGVzc2wxX3NoYWRlcnM6OnZzOjpT
aW1wbGUoKSwgZXNzbDFfc2hhZGVyczo6ZnM6OkdyZWVuKCkpOworICAgIGRyYXdRdWFkKGRyYXdH
cmVlbiwgZXNzbDFfc2hhZGVyczo6UG9zaXRpb25BdHRyaWIoKSwgMS5mKTsKKyAgICBzd2FwQnVm
ZmVycygpOworCisgICAgRVhQRUNUX0VRKGdldFBlcmZDb3VudGVycygpLnZrUXVldWVTdWJtaXRD
YWxsc1RvdGFsLCBleHBlY3RlZFZrUXVldWVTdWJtaXRDb3VudCk7CisgICAgRVhQRUNUX0VRKGdl
dFBlcmZDb3VudGVycygpLmNvbW1hbmRRdWV1ZVN1Ym1pdENhbGxzVG90YWwsIGV4cGVjdGVkQ29t
bWFuZFF1ZXVlU3VibWl0Q291bnQpOworfQorCisvLyBFbnN1cmUgdGhhdCBnbEZsdXNoIGRvZXNu
J3QgbGVhZCB0byB2a1F1ZXVlU3VibWl0IGlmIHRoZXJlJ3Mgbm90aGluZyB0byBzdWJtaXQuCitU
RVNUX1AoVnVsa2FuUGVyZm9ybWFuY2VDb3VudGVyVGVzdCwgVW5uZWNlc3NhcnlGbHVzaERvZXNu
dENhdXNlU3VibWlzc2lvbikKK3sKKyAgICBBTkdMRV9TS0lQX1RFU1RfSUYoIUlzR0xFeHRlbnNp
b25FbmFibGVkKGtQZXJmTW9uaXRvckV4dGVuc2lvbk5hbWUpKTsKKyAgICBpbml0QU5HTEVGZWF0
dXJlcygpOworCisgICAgc3dhcEJ1ZmZlcnMoKTsKKyAgICB1aW50MzJfdCBleHBlY3RlZFZrUXVl
dWVTdWJtaXRDYWxscyA9IGdldFBlcmZDb3VudGVycygpLnZrUXVldWVTdWJtaXRDYWxsc1RvdGFs
OworCisgICAgZ2xGbHVzaCgpOworICAgIGdsRmx1c2goKTsKKyAgICBnbEZsdXNoKCk7CisKKyAg
ICAvLyBOb3RoaW5nIHdhcyByZWNvcmRlZCwgc28gdGhlcmUgc2hvdWxkbid0IGJlIGFueXRoaW5n
IHRvIGZsdXNoLgorICAgIGdsRmluaXNoKCk7CisgICAgRVhQRUNUX0VRKGdldFBlcmZDb3VudGVy
cygpLnZrUXVldWVTdWJtaXRDYWxsc1RvdGFsLCBleHBlY3RlZFZrUXVldWVTdWJtaXRDYWxscyk7
CisKKyAgICBnbENsZWFyQ29sb3IoMSwgMCwgMCwgMSk7CisgICAgZ2xDbGVhcihHTF9DT0xPUl9C
VUZGRVJfQklUKTsKKyAgICBFWFBFQ1RfUElYRUxfQ09MT1JfRVEoMCwgMCwgR0xDb2xvcjo6cmVk
KTsKKworICAgIC8vIE9uZSBzdWJtaXNzaW9uIGZvciB0aGUgYWJvdmUgcmVhZGJhY2sKKyAgICAr
K2V4cGVjdGVkVmtRdWV1ZVN1Ym1pdENhbGxzOworCisgICAgZ2xGaW5pc2goKTsKKyAgICBFWFBF
Q1RfRVEoZ2V0UGVyZkNvdW50ZXJzKCkudmtRdWV1ZVN1Ym1pdENhbGxzVG90YWwsIGV4cGVjdGVk
VmtRdWV1ZVN1Ym1pdENhbGxzKTsKKworICAgIGdsRmx1c2goKTsKKyAgICBnbEZsdXNoKCk7Cisg
ICAgZ2xGbHVzaCgpOworCisgICAgLy8gTm8gYWRkaW9uYWwgc3VibWlzc2lvbnMgc2luY2UgbGFz
dCBvbmUKKyAgICBnbEZpbmlzaCgpOworICAgIEVYUEVDVF9FUShnZXRQZXJmQ291bnRlcnMoKS52
a1F1ZXVlU3VibWl0Q2FsbHNUb3RhbCwgZXhwZWN0ZWRWa1F1ZXVlU3VibWl0Q2FsbHMpOworfQor
CisvLyBFbnN1cmUgdGhhdCBnbEZlbmNlU3luYyBkb2Vzbid0IGxlYWQgdG8gdmtRdWV1ZVN1Ym1p
dCBpZiB0aGVyZSdzIG5vdGhpbmcgdG8gc3VibWl0LgorVEVTVF9QKFZ1bGthblBlcmZvcm1hbmNl
Q291bnRlclRlc3QsIFN5bmNXaWh0b3V0Q29tbWFuZHNEb2VzbnRDYXVzZVN1Ym1pc3Npb24pCit7
CisgICAgQU5HTEVfU0tJUF9URVNUX0lGKCFJc0dMRXh0ZW5zaW9uRW5hYmxlZChrUGVyZk1vbml0
b3JFeHRlbnNpb25OYW1lKSk7CisgICAgaW5pdEFOR0xFRmVhdHVyZXMoKTsKKworICAgIHN3YXBC
dWZmZXJzKCk7CisgICAgdWludDMyX3QgZXhwZWN0ZWRWa1F1ZXVlU3VibWl0Q2FsbHMgPSBnZXRQ
ZXJmQ291bnRlcnMoKS52a1F1ZXVlU3VibWl0Q2FsbHNUb3RhbDsKKworICAgIGdsRmVuY2VTeW5j
KEdMX1NZTkNfR1BVX0NPTU1BTkRTX0NPTVBMRVRFLCAwKTsKKworICAgIC8vIE5vdGhpbmcgd2Fz
IHJlY29yZGVkLCBzbyB0aGVyZSBzaG91bGRuJ3QgYmUgYW55dGhpbmcgdG8gZmx1c2guCisgICAg
Z2xGaW5pc2goKTsKKyAgICBFWFBFQ1RfRVEoZ2V0UGVyZkNvdW50ZXJzKCkudmtRdWV1ZVN1Ym1p
dENhbGxzVG90YWwsIGV4cGVjdGVkVmtRdWV1ZVN1Ym1pdENhbGxzKTsKK30KKwogQU5HTEVfSU5T
VEFOVElBVEVfVEVTVChWdWxrYW5QZXJmb3JtYW5jZUNvdW50ZXJUZXN0LCBFUzNfVlVMS0FOKCks
IEVTM19WVUxLQU5fU1dJRlRTSEFERVIoKSk7CiBBTkdMRV9JTlNUQU5USUFURV9URVNUKFZ1bGth
blBlcmZvcm1hbmNlQ291bnRlclRlc3RfRVMzMSwgRVMzMV9WVUxLQU4oKSwgRVMzMV9WVUxLQU5f
U1dJRlRTSEFERVIoKSk7CiBBTkdMRV9JTlNUQU5USUFURV9URVNUKFZ1bGthblBlcmZvcm1hbmNl
Q291bnRlclRlc3RfTVNBQSwgRVMzX1ZVTEtBTigpLCBFUzNfVlVMS0FOX1NXSUZUU0hBREVSKCkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3RzL2dsX3Rlc3Rz
L1dlYkdMQ29tcGF0aWJpbGl0eVRlc3QuY3BwIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3Jj
L3Rlc3RzL2dsX3Rlc3RzL1dlYkdMQ29tcGF0aWJpbGl0eVRlc3QuY3BwCmluZGV4IDhjOWRmYmI2
ZGJmNWYxZWY0YmYyYzQxZDg1N2YxYjFmMzdmZGY3ZWQuLjk0NDQ3MTVmYzdkNDUzOTBlMjRiMDg4
YTYyNzZlOTUxMjE1ZDljMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3Ny
Yy90ZXN0cy9nbF90ZXN0cy9XZWJHTENvbXBhdGliaWxpdHlUZXN0LmNwcAorKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvZ2xfdGVzdHMvV2ViR0xDb21wYXRpYmlsaXR5VGVz
dC5jcHAKQEAgLTQyNzgsOCArNDI3OCw2IEBAIHZvaWQgbWFpbigpIHsKIC8vIEJ1dCB0aGUgbGV2
ZWwgb2YgdGhlIDNEIHRleHR1cmUgIT0gdGhlIGxldmVsIG9mIHRoZSByZWFkIGF0dGFjaG1lbnQu
CiBURVNUX1AoV2ViR0wyQ29tcGF0aWJpbGl0eVRlc3QsIE5vVGV4dHVyZUNvcHlpbmdGZWVkYmFj
a0xvb3BCZXR3ZWVuM0RMZXZlbHMpCiB7Ci0gICAgLy8gaHR0cDovL2FuZ2xlYnVnLmNvbS80MDky
Ci0gICAgQU5HTEVfU0tJUF9URVNUX0lGKElzVnVsa2FuKCkpOwogICAgIEdMVGV4dHVyZSB0ZXh0
dXJlOwogICAgIEdMRnJhbWVidWZmZXIgZnJhbWVidWZmZXI7CiAKQEAgLTQyOTksOCArNDI5Nyw2
IEBAIFRFU1RfUChXZWJHTDJDb21wYXRpYmlsaXR5VGVzdCwgTm9UZXh0dXJlQ29weWluZ0ZlZWRi
YWNrTG9vcEJldHdlZW4zRExldmVscykKIC8vIEJ1dCB0aGUgem9mZnNldCBvZiB0aGUgM0QgdGV4
dHVyZSAhPSB0aGUgbGF5ZXIgb2YgdGhlIHJlYWQgYXR0YWNobWVudC4KIFRFU1RfUChXZWJHTDJD
b21wYXRpYmlsaXR5VGVzdCwgTm9UZXh0dXJlQ29weWluZ0ZlZWRiYWNrTG9vcEJldHdlZW4zRExh
eWVycykKIHsKLSAgICAvLyBodHRwOi8vYW5nbGVidWcuY29tLzQwOTIKLSAgICBBTkdMRV9TS0lQ
X1RFU1RfSUYoSXNWdWxrYW4oKSk7CiAgICAgR0xUZXh0dXJlIHRleHR1cmU7CiAgICAgR0xGcmFt
ZWJ1ZmZlciBmcmFtZWJ1ZmZlcjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5H
TEUvc3JjL3Rlc3RzL3BlcmZfdGVzdHMvQU5HTEVQZXJmVGVzdC5jcHAgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9BTkdMRS9zcmMvdGVzdHMvcGVyZl90ZXN0cy9BTkdMRVBlcmZUZXN0LmNwcAppbmRleCBk
NjI2ODBkN2UwYzMxMjE5MWM3MTg5ODM2ZjYyMDdkZGEwOTdkY2Q5Li4zZWI3ZWVhOTZkNTQwMDBk
YmI5MjY1MzdlZDQyMzIxZjE1N2ZkMDI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9B
TkdMRS9zcmMvdGVzdHMvcGVyZl90ZXN0cy9BTkdMRVBlcmZUZXN0LmNwcAorKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvcGVyZl90ZXN0cy9BTkdMRVBlcmZUZXN0LmNwcApA
QCAtNDcsOCArNDcsOCBAQCBjb25zdGV4cHIgc2l6ZV90IGtJbml0aWFsVHJhY2VFdmVudEJ1ZmZl
clNpemUgPSA1MDAwMDsKIGNvbnN0ZXhwciBkb3VibGUga01pbGxpU2Vjb25kc1BlclNlY29uZCAg
ICAgICA9IDFlMzsKIGNvbnN0ZXhwciBkb3VibGUga01pY3JvU2Vjb25kc1BlclNlY29uZCAgICAg
ICA9IDFlNjsKIGNvbnN0ZXhwciBkb3VibGUga05hbm9TZWNvbmRzUGVyU2Vjb25kICAgICAgICA9
IDFlOTsKLWNvbnN0ZXhwciBjaGFyIGtQZWFrTWVtb3J5TWV0cmljW10gICAgICAgICAgICA9ICIu
cGVha19tZW1vcnkiOwotY29uc3RleHByIGNoYXIga01lZGlhbk1lbW9yeU1ldHJpY1tdICAgICAg
ICAgID0gIi5tZWRpYW5fbWVtb3J5IjsKK2NvbnN0ZXhwciBjaGFyIGtQZWFrTWVtb3J5TWV0cmlj
W10gICAgICAgICAgICA9ICIubWVtb3J5X21heCI7Citjb25zdGV4cHIgY2hhciBrTWVkaWFuTWVt
b3J5TWV0cmljW10gICAgICAgICAgPSAiLm1lbW9yeV9tZWRpYW4iOwogCiBzdHJ1Y3QgVHJhY2VD
YXRlZ29yeQogewpAQCAtNjksMTIgKzY5LDYgQEAgdm9pZCBDdXN0b21Mb2dFcnJvcihQbGF0Zm9y
bU1ldGhvZHMgKnBsYXRmb3JtLCBjb25zdCBjaGFyICplcnJvck1lc3NhZ2UpCiAgICAgYW5nbGVS
ZW5kZXJUZXN0LT5vbkVycm9yTWVzc2FnZShlcnJvck1lc3NhZ2UpOwogfQogCi12b2lkIE92ZXJy
aWRlV29ya2Fyb3VuZHNEM0QoUGxhdGZvcm1NZXRob2RzICpwbGF0Zm9ybSwgRmVhdHVyZXNEM0Qg
KmZlYXR1cmVzRDNEKQotewotICAgIGF1dG8gKmFuZ2xlUmVuZGVyVGVzdCA9IHN0YXRpY19jYXN0
PEFOR0xFUmVuZGVyVGVzdCAqPihwbGF0Zm9ybS0+Y29udGV4dCk7Ci0gICAgYW5nbGVSZW5kZXJU
ZXN0LT5vdmVycmlkZVdvcmthcm91bmRzRDNEKGZlYXR1cmVzRDNEKTsKLX0KLQogVHJhY2VFdmVu
dEhhbmRsZSBBZGRQZXJmVHJhY2VFdmVudChQbGF0Zm9ybU1ldGhvZHMgKnBsYXRmb3JtLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyIHBoYXNlLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpjYXRlZ29yeUVuYWJs
ZWRGbGFnLApAQCAtMjc4LDcgKzI3Miw4IEBAIHZvaWQgQU5HTEVQZXJmVGVzdDo6cnVuKCkKIHsK
ICAgICBpZiAobVNraXBUZXN0KQogICAgIHsKLSAgICAgICAgcmV0dXJuOworICAgICAgICBHVEVT
VF9TS0lQKCkgPDwgbVNraXBUZXN0UmVhc29uOworICAgICAgICAvLyBHVEVTVF9TS0lQIHJldHVy
bnMuCiAgICAgfQogCiAgICAgaWYgKG1TdGVwc1RvUnVuIDw9IDApCkBAIC00MzYsMzYgKzQzMSw0
NyBAQCB2b2lkIEFOR0xFUGVyZlRlc3Q6OnByb2Nlc3NSZXN1bHRzKCkKICAgICAgICAgY29uc3Qg
c3RkOjpzdHJpbmcgJmNvdW50ZXJOYW1lID0gaXRlci5zZWNvbmQubmFtZTsKICAgICAgICAgc3Rk
Ojp2ZWN0b3I8R0x1aW50PiBzYW1wbGVzICAgID0gaXRlci5zZWNvbmQuc2FtcGxlczsKIAotICAg
ICAgICBzaXplX3QgbWlkcG9pbnQgPSBzYW1wbGVzLnNpemUoKSA+PiAxOwotICAgICAgICBzdGQ6
Om50aF9lbGVtZW50KHNhbXBsZXMuYmVnaW4oKSwgc2FtcGxlcy5iZWdpbigpICsgbWlkcG9pbnQs
IHNhbXBsZXMuZW5kKCkpOwotCisgICAgICAgIC8vIE1lZGlhbgogICAgICAgICB7CisgICAgICAg
ICAgICBzaXplX3QgbWlkcG9pbnQgPSBzYW1wbGVzLnNpemUoKSA+PiAxOworICAgICAgICAgICAg
c3RkOjpudGhfZWxlbWVudChzYW1wbGVzLmJlZ2luKCksIHNhbXBsZXMuYmVnaW4oKSArIG1pZHBv
aW50LCBzYW1wbGVzLmVuZCgpKTsKKwogICAgICAgICAgICAgc3RkOjpzdHJpbmdzdHJlYW0gbWVk
aWFuU3RyOwogICAgICAgICAgICAgbWVkaWFuU3RyIDw8ICIuIiA8PCBjb3VudGVyTmFtZSA8PCAi
X21lZGlhbiI7CiAgICAgICAgICAgICBzdGQ6OnN0cmluZyBtZWRpYW5OYW1lID0gbWVkaWFuU3Ry
LnN0cigpOwogCiAgICAgICAgICAgICBtUmVwb3J0ZXItPkFkZFJlc3VsdChtZWRpYW5OYW1lLCBz
dGF0aWNfY2FzdDxzaXplX3Q+KHNhbXBsZXNbbWlkcG9pbnRdKSk7Ci0gICAgICAgIH0KIAotICAg
ICAgICB7CiAgICAgICAgICAgICBzdGQ6OnN0cmluZyBtZWFzdXJlbWVudCA9IG1OYW1lICsgbUJh
Y2tlbmQgKyAiLiIgKyBjb3VudGVyTmFtZSArICJfbWVkaWFuIjsKICAgICAgICAgICAgIFRlc3RT
dWl0ZTo6R2V0SW5zdGFuY2UoKS0+YWRkSGlzdG9ncmFtU2FtcGxlKG1lYXN1cmVtZW50LCBtU3Rv
cnksIHNhbXBsZXNbbWlkcG9pbnRdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgImNvdW50Iik7CiAgICAgICAgIH0KIAotICAgICAgICBj
b25zdCBhdXRvICZtYXhJdCA9IHN0ZDo6bWF4X2VsZW1lbnQoc2FtcGxlcy5iZWdpbigpLCBzYW1w
bGVzLmVuZCgpKTsKLQorICAgICAgICAvLyBNYXhpbXVtCiAgICAgICAgIHsKKyAgICAgICAgICAg
IGNvbnN0IGF1dG8gJm1heEl0ID0gc3RkOjptYXhfZWxlbWVudChzYW1wbGVzLmJlZ2luKCksIHNh
bXBsZXMuZW5kKCkpOworCiAgICAgICAgICAgICBzdGQ6OnN0cmluZ3N0cmVhbSBtYXhTdHI7CiAg
ICAgICAgICAgICBtYXhTdHIgPDwgIi4iIDw8IGNvdW50ZXJOYW1lIDw8ICJfbWF4IjsKICAgICAg
ICAgICAgIHN0ZDo6c3RyaW5nIG1heE5hbWUgPSBtYXhTdHIuc3RyKCk7CiAgICAgICAgICAgICBt
UmVwb3J0ZXItPkFkZFJlc3VsdChtYXhOYW1lLCBzdGF0aWNfY2FzdDxzaXplX3Q+KCptYXhJdCkp
OwotICAgICAgICB9CiAKLSAgICAgICAgewogICAgICAgICAgICAgc3RkOjpzdHJpbmcgbWVhc3Vy
ZW1lbnQgPSBtTmFtZSArIG1CYWNrZW5kICsgIi4iICsgY291bnRlck5hbWUgKyAiX21heCI7CiAg
ICAgICAgICAgICBUZXN0U3VpdGU6OkdldEluc3RhbmNlKCktPmFkZEhpc3RvZ3JhbVNhbXBsZSht
ZWFzdXJlbWVudCwgbVN0b3J5LCAqbWF4SXQsICJjb3VudCIpOwogICAgICAgICB9CisKKyAgICAg
ICAgLy8gU3VtCisgICAgICAgIHsKKyAgICAgICAgICAgIEdMdWludCBzdW0gPSBzdGQ6OmFjY3Vt
dWxhdGUoc2FtcGxlcy5iZWdpbigpLCBzYW1wbGVzLmVuZCgpLCAwKTsKKworICAgICAgICAgICAg
c3RkOjpzdHJpbmdzdHJlYW0gc3VtU3RyOworICAgICAgICAgICAgc3VtU3RyIDw8ICIuIiA8PCBj
b3VudGVyTmFtZSA8PCAiX3N1bSI7CisgICAgICAgICAgICBzdGQ6OnN0cmluZyBzdW1OYW1lID0g
c3VtU3RyLnN0cigpOworICAgICAgICAgICAgbVJlcG9ydGVyLT5BZGRSZXN1bHQoc3VtTmFtZSwg
c3RhdGljX2Nhc3Q8c2l6ZV90PihzdW0pKTsKKworICAgICAgICAgICAgc3RkOjpzdHJpbmcgbWVh
c3VyZW1lbnQgPSBtTmFtZSArIG1CYWNrZW5kICsgIi4iICsgY291bnRlck5hbWUgKyAiX3N1bSI7
CisgICAgICAgICAgICBUZXN0U3VpdGU6OkdldEluc3RhbmNlKCktPmFkZEhpc3RvZ3JhbVNhbXBs
ZShtZWFzdXJlbWVudCwgbVN0b3J5LCBzdW0sICJjb3VudCIpOworICAgICAgICB9CiAgICAgfQog
fQogCkBAIC02NjAsMTggKzY2NiwyOSBAQCBzdGQ6OnN0cmluZyBSZW5kZXJUZXN0UGFyYW1zOjpi
YWNrZW5kKCkgY29uc3QKIAogc3RkOjpzdHJpbmcgUmVuZGVyVGVzdFBhcmFtczo6c3RvcnkoKSBj
b25zdAogeworICAgIHN0ZDo6c3RyaW5nc3RyZWFtIHN0cnN0cjsKKwogICAgIHN3aXRjaCAoc3Vy
ZmFjZVR5cGUpCiAgICAgewogICAgICAgICBjYXNlIFN1cmZhY2VUeXBlOjpXaW5kb3c6Ci0gICAg
ICAgICAgICByZXR1cm4gIiI7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBTdXJm
YWNlVHlwZTo6V2luZG93V2l0aFZTeW5jOgotICAgICAgICAgICAgcmV0dXJuICJfdnN5bmMiOwor
ICAgICAgICAgICAgc3Ryc3RyIDw8ICJfdnN5bmMiOworICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIGNhc2UgU3VyZmFjZVR5cGU6Ok9mZnNjcmVlbjoKLSAgICAgICAgICAgIHJldHVybiAiX29m
ZnNjcmVlbiI7CisgICAgICAgICAgICBzdHJzdHIgPDwgIl9vZmZzY3JlZW4iOworICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBVTlJFQUNIQUJMRSgpOwog
ICAgICAgICAgICAgcmV0dXJuICIiOwogICAgIH0KKworICAgIGlmIChtdWx0aXNhbXBsZSkKKyAg
ICB7CisgICAgICAgIHN0cnN0ciA8PCAiXyIgPDwgc2FtcGxlcyA8PCAiX3NhbXBsZXMiOworICAg
IH0KKworICAgIHJldHVybiBzdHJzdHIuc3RyKCk7CiB9CiAKIHN0ZDo6c3RyaW5nIFJlbmRlclRl
c3RQYXJhbXM6OmJhY2tlbmRBbmRTdG9yeSgpIGNvbnN0CkBAIC03MTQsOCArNzMxLDcgQEAgQU5H
TEVSZW5kZXJUZXN0OjpBTkdMRVJlbmRlclRlc3QoY29uc3Qgc3RkOjpzdHJpbmcgJm5hbWUsCiAg
ICAgICAgICAgICBtRW50cnlQb2ludHNMaWIucmVzZXQoT3BlblNoYXJlZExpYnJhcnlXaXRoRXh0
ZW5zaW9uKAogICAgICAgICAgICAgICAgIEdldE5hdGl2ZUVHTExpYnJhcnlOYW1lV2l0aEV4dGVu
c2lvbigpLCBTZWFyY2hUeXBlOjpTeXN0ZW1EaXIpKTsKICNlbHNlCi0gICAgICAgICAgICBzdGQ6
OmNlcnIgPDwgIk5vdCBpbXBsZW1lbnRlZC4iIDw8IHN0ZDo6ZW5kbDsKLSAgICAgICAgICAgIG1T
a2lwVGVzdCA9IHRydWU7CisgICAgICAgICAgICBza2lwVGVzdCgiTm90IGltcGxlbWVudGVkLiIp
OwogI2VuZGlmICAvLyBkZWZpbmVkKEFOR0xFX1VTRV9VVElMX0xPQURFUikgJiYgIWRlZmluZWQo
QU5HTEVfUExBVEZPUk1fV0lORE9XUykKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNl
IEdMRVNEcml2ZXJUeXBlOjpTeXN0ZW1XR0w6CkBAIC03MjMsMTMgKzczOSwxMSBAQCBBTkdMRVJl
bmRlclRlc3Q6OkFOR0xFUmVuZGVyVGVzdChjb25zdCBzdGQ6OnN0cmluZyAmbmFtZSwKICAgICAg
ICAgICAgIG1HTFdpbmRvdyA9IFdHTFdpbmRvdzo6TmV3KHRlc3RQYXJhbXMubWFqb3JWZXJzaW9u
LCB0ZXN0UGFyYW1zLm1pbm9yVmVyc2lvbik7CiAgICAgICAgICAgICBtRW50cnlQb2ludHNMaWIu
cmVzZXQoT3BlblNoYXJlZExpYnJhcnkoIm9wZW5nbDMyIiwgU2VhcmNoVHlwZTo6U3lzdGVtRGly
KSk7CiAjZWxzZQotICAgICAgICAgICAgc3RkOjpjb3V0IDw8ICJXR0wgZHJpdmVyIG5vdCBhdmFp
bGFibGUuIFNraXBwaW5nIHRlc3QuIiA8PCBzdGQ6OmVuZGw7Ci0gICAgICAgICAgICBtU2tpcFRl
c3QgPSB0cnVlOworICAgICAgICAgICAgc2tpcFRlc3QoIldHTCBkcml2ZXIgbm90IGF2YWlsYWJs
ZS4iKTsKICNlbmRpZiAgLy8gZGVmaW5lZChBTkdMRV9VU0VfVVRJTF9MT0FERVIpICYmIGRlZmlu
ZWQoQU5HTEVfUExBVEZPUk1fV0lORE9XUykKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBk
ZWZhdWx0OgotICAgICAgICAgICAgc3RkOjpjZXJyIDw8ICJFcnJvciBpbiBzd2l0Y2guIiA8PCBz
dGQ6OmVuZGw7Ci0gICAgICAgICAgICBtU2tpcFRlc3QgPSB0cnVlOworICAgICAgICAgICAgc2tp
cFRlc3QoIkVycm9yIGluIHN3aXRjaC4iKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgIH0KIH0K
QEAgLTc2MSwxMSArNzc1LDEwIEBAIHZvaWQgQU5HTEVSZW5kZXJUZXN0OjpTZXRVcCgpCiAKICAg
ICBpZiAoIW1HTFdpbmRvdykKICAgICB7Ci0gICAgICAgIG1Ta2lwVGVzdCA9IHRydWU7CisgICAg
ICAgIHNraXBUZXN0KCIhbUdMV2luZG93Iik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAg
ICBtUGxhdGZvcm1NZXRob2RzLm92ZXJyaWRlV29ya2Fyb3VuZHNEM0QgICAgICA9IE92ZXJyaWRl
V29ya2Fyb3VuZHNEM0Q7CiAgICAgbVBsYXRmb3JtTWV0aG9kcy5sb2dFcnJvciAgICAgICAgICAg
ICAgICAgICAgPSBDdXN0b21Mb2dFcnJvcjsKICAgICBtUGxhdGZvcm1NZXRob2RzLmxvZ1dhcm5p
bmcgICAgICAgICAgICAgICAgICA9IEVtcHR5UGxhdGZvcm1NZXRob2Q7CiAgICAgbVBsYXRmb3Jt
TWV0aG9kcy5sb2dJbmZvICAgICAgICAgICAgICAgICAgICAgPSBFbXB0eVBsYXRmb3JtTWV0aG9k
OwpAQCAtNzc3LDkgKzc5MCw4IEBAIHZvaWQgQU5HTEVSZW5kZXJUZXN0OjpTZXRVcCgpCiAKICAg
ICBpZiAoIW1PU1dpbmRvdy0+aW5pdGlhbGl6ZShtTmFtZSwgbVRlc3RQYXJhbXMud2luZG93V2lk
dGgsIG1UZXN0UGFyYW1zLndpbmRvd0hlaWdodCkpCiAgICAgewotICAgICAgICBtU2tpcFRlc3Qg
PSB0cnVlOwotICAgICAgICBGQUlMKCkgPDwgIkZhaWxlZCBpbml0aWFsaXppbmcgT1NXaW5kb3ci
OwotICAgICAgICAvLyBGQUlMIHJldHVybnMuCisgICAgICAgIGZhaWxUZXN0KCJGYWlsZWQgaW5p
dGlhbGl6aW5nIE9TV2luZG93Iik7CisgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICAvLyBP
dmVycmlkZSBwbGF0Zm9ybSBtZXRob2QgcGFyYW1ldGVyLgpAQCAtNzk0LDYgKzgwNiw4IEBAIHZv
aWQgQU5HTEVSZW5kZXJUZXN0OjpTZXRVcCgpCiAgICAgbUNvbmZpZ1BhcmFtcy5kZXB0aEJpdHMg
ICA9IDI0OwogICAgIG1Db25maWdQYXJhbXMuc3RlbmNpbEJpdHMgPSA4OwogICAgIG1Db25maWdQ
YXJhbXMuY29sb3JTcGFjZSAgPSBtVGVzdFBhcmFtcy5jb2xvclNwYWNlOworICAgIG1Db25maWdQ
YXJhbXMubXVsdGlzYW1wbGUgPSBtVGVzdFBhcmFtcy5tdWx0aXNhbXBsZTsKKyAgICBtQ29uZmln
UGFyYW1zLnNhbXBsZXMgICAgID0gbVRlc3RQYXJhbXMuc2FtcGxlczsKICAgICBpZiAobVRlc3RQ
YXJhbXMuc3VyZmFjZVR5cGUgIT0gU3VyZmFjZVR5cGU6OldpbmRvd1dpdGhWU3luYykKICAgICB7
CiAgICAgICAgIG1Db25maWdQYXJhbXMuc3dhcEludGVydmFsID0gMDsKQEAgLTgwNCwxMyArODE4
LDExIEBAIHZvaWQgQU5HTEVSZW5kZXJUZXN0OjpTZXRVcCgpCiAgICAgc3dpdGNoIChyZXMpCiAg
ICAgewogICAgICAgICBjYXNlIEdMV2luZG93UmVzdWx0OjpOb0NvbG9yc3BhY2VTdXBwb3J0Ogot
ICAgICAgICAgICAgbVNraXBUZXN0ID0gdHJ1ZTsKLSAgICAgICAgICAgIHN0ZDo6Y291dCA8PCAi
VGVzdCBza2lwcGVkIGR1ZSB0byBtaXNzaW5nIHN1cHBvcnQgZm9yIGNvbG9yIHNwYWNlcy4iIDw8
IHN0ZDo6ZW5kbDsKKyAgICAgICAgICAgIHNraXBUZXN0KCJNaXNzaW5nIHN1cHBvcnQgZm9yIGNv
bG9yIHNwYWNlcy4iKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgY2FzZSBHTFdpbmRv
d1Jlc3VsdDo6RXJyb3I6Ci0gICAgICAgICAgICBtU2tpcFRlc3QgPSB0cnVlOwotICAgICAgICAg
ICAgRkFJTCgpIDw8ICJGYWlsZWQgaW5pdGlhbGl6aW5nIEdMIFdpbmRvdyI7Ci0gICAgICAgICAg
ICAvLyBGQUlMIHJldHVybnMuCisgICAgICAgICAgICBmYWlsVGVzdCgiRmFpbGVkIGluaXRpYWxp
emluZyBHTCBXaW5kb3ciKTsKKyAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgZGVmYXVsdDoK
ICAgICAgICAgICAgIGJyZWFrOwogICAgIH0KQEAgLTgyMCw5ICs4MzIsOCBAQCB2b2lkIEFOR0xF
UmVuZGVyVGVzdDo6U2V0VXAoKQogICAgIHsKICAgICAgICAgaWYgKCFtR0xXaW5kb3ctPnNldFN3
YXBJbnRlcnZhbCgwKSkKICAgICAgICAgewotICAgICAgICAgICAgbVNraXBUZXN0ID0gdHJ1ZTsK
LSAgICAgICAgICAgIEZBSUwoKSA8PCAiRmFpbGVkIHNldHRpbmcgc3dhcCBpbnRlcnZhbCI7Ci0g
ICAgICAgICAgICAvLyBGQUlMIHJldHVybnMuCisgICAgICAgICAgICBmYWlsVGVzdCgiRmFpbGVk
IHNldHRpbmcgc3dhcCBpbnRlcnZhbCIpOworICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9
CiAgICAgfQogCkBAIC04MzEsMTQgKzg0MiwxMiBAQCB2b2lkIEFOR0xFUmVuZGVyVGVzdDo6U2V0
VXAoKQogICAgICAgICBtSXNUaW1lc3RhbXBRdWVyeUF2YWlsYWJsZSA9IEVuc3VyZUdMRXh0ZW5z
aW9uRW5hYmxlZCgiR0xfRVhUX2Rpc2pvaW50X3RpbWVyX3F1ZXJ5Iik7CiAgICAgfQogCi0gICAg
aWYgKCFhcmVFeHRlbnNpb25QcmVyZXF1aXNpdGVzRnVsZmlsbGVkKCkpCi0gICAgewotICAgICAg
ICBtU2tpcFRlc3QgPSB0cnVlOwotICAgIH0KKyAgICBza2lwVGVzdElmTWlzc2luZ0V4dGVuc2lv
blByZXJlcXVpc2l0ZXMoKTsKIAogICAgIGlmIChtU2tpcFRlc3QpCiAgICAgewotICAgICAgICBy
ZXR1cm47CisgICAgICAgIEdURVNUX1NLSVAoKSA8PCBtU2tpcFRlc3RSZWFzb247CisgICAgICAg
IC8vIEdURVNUX1NLSVAgcmV0dXJucy4KICAgICB9CiAKICNpZiBkZWZpbmVkKEFOR0xFX0VOQUJM
RV9BU1NFUlRTKQpAQCAtODUyLDE0ICs4NjEsMTQgQEAgdm9pZCBBTkdMRVJlbmRlclRlc3Q6OlNl
dFVwKCkKIAogICAgIGlmIChtU2tpcFRlc3QpCiAgICAgewotICAgICAgICByZXR1cm47CisgICAg
ICAgIEdURVNUX1NLSVAoKSA8PCBtU2tpcFRlc3RSZWFzb247CisgICAgICAgIC8vIEdURVNUX1NL
SVAgcmV0dXJucy4KICAgICB9CiAKICAgICBpZiAobVRlc3RQYXJhbXMuaXRlcmF0aW9uc1BlclN0
ZXAgPT0gMCkKICAgICB7Ci0gICAgICAgIG1Ta2lwVGVzdCA9IHRydWU7Ci0gICAgICAgIEZBSUwo
KSA8PCAiUGxlYXNlIGluaXRpYWxpemUgJ2l0ZXJhdGlvbnNQZXJTdGVwJy4iOwotICAgICAgICAv
LyBGQUlMIHJldHVybnMuCisgICAgICAgIGZhaWxUZXN0KCJQbGVhc2UgaW5pdGlhbGl6ZSAnaXRl
cmF0aW9uc1BlclN0ZXAnLiIpOworICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgaWYgKGdW
ZXJib3NlTG9nZ2luZykKQEAgLTg3Miw4ICs4ODEsNyBAQCB2b2lkIEFOR0xFUmVuZGVyVGVzdDo6
U2V0VXAoKQogCiAgICAgZm9yIChpbnQgbG9vcEluZGV4ID0gMDsgbG9vcEluZGV4IDwgZ1dhcm11
cExvb3BzOyArK2xvb3BJbmRleCkKICAgICB7Ci0gICAgICAgIGRvUnVuTG9vcChnQ2FsaWJyYXRp
b25UaW1lU2Vjb25kcywgc3RkOjpudW1lcmljX2xpbWl0czxpbnQ+OjptYXgoKSwKLSAgICAgICAg
ICAgICAgICAgIFJ1bkxvb3BQb2xpY3k6OkZpbmlzaEV2ZXJ5U3RlcCk7CisgICAgICAgIGRvUnVu
TG9vcChnQ2FsaWJyYXRpb25UaW1lU2Vjb25kcywgZ1dhcm11cFN0ZXBzLCBSdW5Mb29wUG9saWN5
OjpGaW5pc2hFdmVyeVN0ZXApOwogICAgICAgICBpZiAoZ1ZlcmJvc2VMb2dnaW5nKQogICAgICAg
ICB7CiAgICAgICAgICAgICBwcmludGYoIldhcm0tdXAgbG9vcCB0b29rICUuMmxmIHNlY29uZHMu
XG4iLCBtVGltZXIuZ2V0RWxhcHNlZFdhbGxDbG9ja1RpbWUoKSk7CkBAIC05MzksMzAgKzk0Nyw0
NCBAQCB2b2lkIEFOR0xFUmVuZGVyVGVzdDo6aW5pdFBlcmZDb3VudGVycygpCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBhbmdsZTo6U3BsaXRSZXN1bHQ6OlNQTElUX1dBTlRfTk9ORU1QVFkp
OwogICAgIGZvciAoY29uc3Qgc3RkOjpzdHJpbmcgJmNvdW50ZXIgOiBjb3VudGVycykKICAgICB7
Ci0gICAgICAgIGF1dG8gaXRlciA9IGluZGV4TWFwLmZpbmQoY291bnRlcik7Ci0gICAgICAgIGlm
IChpdGVyID09IGluZGV4TWFwLmVuZCgpKQotICAgICAgICB7Ci0gICAgICAgICAgICBmcHJpbnRm
KHN0ZGVyciwgIkNvdW50ZXIgJyVzJyBub3QgaW4gbGlzdCBvZiBhdmFpbGFibGUgcGVyZiBjb3Vu
dGVycy5cbiIsCi0gICAgICAgICAgICAgICAgICAgIGNvdW50ZXIuY19zdHIoKSk7Ci0gICAgICAg
IH0KLSAgICAgICAgZWxzZQotICAgICAgICB7Ci0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgc3RkOjpzdHJpbmdzdHJlYW0gbWVkaWFuU3RyOwotICAgICAgICAgICAgICAgIG1lZGlhblN0
ciA8PCAnLicgPDwgY291bnRlciA8PCAiX21lZGlhbiI7Ci0gICAgICAgICAgICAgICAgc3RkOjpz
dHJpbmcgbWVkaWFuTmFtZSA9IG1lZGlhblN0ci5zdHIoKTsKLSAgICAgICAgICAgICAgICBtUmVw
b3J0ZXItPlJlZ2lzdGVySW1wb3J0YW50TWV0cmljKG1lZGlhbk5hbWUsICJjb3VudCIpOwotICAg
ICAgICAgICAgfQorICAgICAgICBib29sIGZvdW5kID0gZmFsc2U7CiAKKyAgICAgICAgZm9yIChj
b25zdCBhdXRvICZpbmRleE1hcEl0ZXIgOiBpbmRleE1hcCkKKyAgICAgICAgeworICAgICAgICAg
ICAgY29uc3Qgc3RkOjpzdHJpbmcgJmluZGV4TWFwTmFtZSA9IGluZGV4TWFwSXRlci5maXJzdDsK
KyAgICAgICAgICAgIGlmIChOYW1lc01hdGNoV2l0aFdpbGRjYXJkKGNvdW50ZXIuY19zdHIoKSwg
aW5kZXhNYXBOYW1lLmNfc3RyKCkpKQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHN0
ZDo6c3RyaW5nc3RyZWFtIG1heFN0cjsKLSAgICAgICAgICAgICAgICBtYXhTdHIgPDwgJy4nIDw8
IGNvdW50ZXIgPDwgIl9tYXgiOwotICAgICAgICAgICAgICAgIHN0ZDo6c3RyaW5nIG1heE5hbWUg
PSBtYXhTdHIuc3RyKCk7Ci0gICAgICAgICAgICAgICAgbVJlcG9ydGVyLT5SZWdpc3RlckltcG9y
dGFudE1ldHJpYyhtYXhOYW1lLCAiY291bnQiKTsKKyAgICAgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgICAgIHN0ZDo6c3RyaW5nc3RyZWFtIG1lZGlhblN0cjsKKyAgICAgICAgICAgICAg
ICAgICAgbWVkaWFuU3RyIDw8ICcuJyA8PCBpbmRleE1hcE5hbWUgPDwgIl9tZWRpYW4iOworICAg
ICAgICAgICAgICAgICAgICBzdGQ6OnN0cmluZyBtZWRpYW5OYW1lID0gbWVkaWFuU3RyLnN0cigp
OworICAgICAgICAgICAgICAgICAgICBtUmVwb3J0ZXItPlJlZ2lzdGVySW1wb3J0YW50TWV0cmlj
KG1lZGlhbk5hbWUsICJjb3VudCIpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
ICAgIHsKKyAgICAgICAgICAgICAgICAgICAgc3RkOjpzdHJpbmdzdHJlYW0gbWF4U3RyOworICAg
ICAgICAgICAgICAgICAgICBtYXhTdHIgPDwgJy4nIDw8IGluZGV4TWFwTmFtZSA8PCAiX21heCI7
CisgICAgICAgICAgICAgICAgICAgIHN0ZDo6c3RyaW5nIG1heE5hbWUgPSBtYXhTdHIuc3RyKCk7
CisgICAgICAgICAgICAgICAgICAgIG1SZXBvcnRlci0+UmVnaXN0ZXJJbXBvcnRhbnRNZXRyaWMo
bWF4TmFtZSwgImNvdW50Iik7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgICAgICBzdGQ6OnN0cmluZ3N0cmVhbSBzdW1TdHI7CisgICAgICAg
ICAgICAgICAgICAgIHN1bVN0ciA8PCAnLicgPDwgaW5kZXhNYXBOYW1lIDw8ICJfc3VtIjsKKyAg
ICAgICAgICAgICAgICAgICAgc3RkOjpzdHJpbmcgc3VtTmFtZSA9IHN1bVN0ci5zdHIoKTsKKyAg
ICAgICAgICAgICAgICAgICAgbVJlcG9ydGVyLT5SZWdpc3RlckltcG9ydGFudE1ldHJpYyhzdW1O
YW1lLCAiY291bnQiKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBHTHVp
bnQgaW5kZXggICAgICAgICAgICA9IGluZGV4TWFwSXRlci5zZWNvbmQ7CisgICAgICAgICAgICAg
ICAgbVBlcmZDb3VudGVySW5mb1tpbmRleF0gPSB7aW5kZXhNYXBOYW1lLCB7fX07CisKKyAgICAg
ICAgICAgICAgICBmb3VuZCA9IHRydWU7CiAgICAgICAgICAgICB9CisgICAgICAgIH0KIAotICAg
ICAgICAgICAgR0x1aW50IGluZGV4ICAgICAgICAgICAgPSBpbmRleE1hcFtjb3VudGVyXTsKLSAg
ICAgICAgICAgIG1QZXJmQ291bnRlckluZm9baW5kZXhdID0ge2NvdW50ZXIsIHt9fTsKKyAgICAg
ICAgaWYgKCFmb3VuZCkKKyAgICAgICAgeworICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICIn
JXMnIGRvZXMgbm90IG1hdGNoIGFueSBhdmFpbGFibGUgcGVyZiBjb3VudGVycy5cbiIsIGNvdW50
ZXIuY19zdHIoKSk7CiAgICAgICAgIH0KICAgICB9CiB9CkBAIC0xMTQxLDE4ICsxMTYzLDE3IEBA
IEdMV2luZG93QmFzZSAqQU5HTEVSZW5kZXJUZXN0OjpnZXRHTFdpbmRvdygpCiAgICAgcmV0dXJu
IG1HTFdpbmRvdzsKIH0KIAotYm9vbCBBTkdMRVJlbmRlclRlc3Q6OmFyZUV4dGVuc2lvblByZXJl
cXVpc2l0ZXNGdWxmaWxsZWQoKSBjb25zdAordm9pZCBBTkdMRVJlbmRlclRlc3Q6OnNraXBUZXN0
SWZNaXNzaW5nRXh0ZW5zaW9uUHJlcmVxdWlzaXRlcygpCiB7CiAgICAgZm9yIChjb25zdCBjaGFy
ICpleHRlbnNpb24gOiBtRXh0ZW5zaW9uUHJlcmVxdWlzaXRlcykKICAgICB7CiAgICAgICAgIGlm
ICghQ2hlY2tFeHRlbnNpb25FeGlzdHMocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyICo+KGds
R2V0U3RyaW5nKEdMX0VYVEVOU0lPTlMpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBleHRlbnNpb24pKQogICAgICAgICB7Ci0gICAgICAgICAgICBzdGQ6OmNvdXQgPDwgIlRl
c3Qgc2tpcHBlZCBkdWUgdG8gbWlzc2luZyBleHRlbnNpb246ICIgPDwgZXh0ZW5zaW9uIDw8IHN0
ZDo6ZW5kbDsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIHNraXBUZXN0
KHN0ZDo6c3RyaW5nKCJUZXN0IHNraXBwZWQgZHVlIHRvIG1pc3NpbmcgZXh0ZW5zaW9uOiAiKSAr
IGV4dGVuc2lvbik7CisgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICB9Ci0gICAg
cmV0dXJuIHRydWU7CiB9CiAKIHZvaWQgQU5HTEVSZW5kZXJUZXN0OjpzZXRXZWJHTENvbXBhdGli
aWxpdHlFbmFibGVkKGJvb2wgd2ViZ2xDb21wYXRpYmlsaXR5KQpAQCAtMTE3Myw3ICsxMTk0LDkg
QEAgc3RkOjp2ZWN0b3I8VHJhY2VFdmVudD4gJkFOR0xFUmVuZGVyVGVzdDo6Z2V0VHJhY2VFdmVu
dEJ1ZmZlcigpCiB2b2lkIEFOR0xFUmVuZGVyVGVzdDo6b25FcnJvck1lc3NhZ2UoY29uc3QgY2hh
ciAqZXJyb3JNZXNzYWdlKQogewogICAgIGFib3J0VGVzdCgpOwotICAgIEZBSUwoKSA8PCAiRmFp
bGluZyB0ZXN0IGJlY2F1c2Ugb2YgdW5leHBlY3RlZCBlcnJvcjpcbiIgPDwgZXJyb3JNZXNzYWdl
IDw8ICJcbiI7CisgICAgc3RkOjpvc3RyaW5nc3RyZWFtIGVycjsKKyAgICBlcnIgPDwgIkZhaWxp
bmcgdGVzdCBiZWNhdXNlIG9mIHVuZXhwZWN0ZWQgZXJyb3I6XG4iIDw8IGVycm9yTWVzc2FnZSA8
PCAiXG4iOworICAgIGZhaWxUZXN0KGVyci5zdHIoKSk7CiB9CiAKIHVpbnQzMl90IEFOR0xFUmVu
ZGVyVGVzdDo6Z2V0Q3VycmVudFRocmVhZFNlcmlhbCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvcGVyZl90ZXN0cy9BTkdMRVBlcmZUZXN0LmggYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvcGVyZl90ZXN0cy9BTkdMRVBlcmZUZXN0LmgK
aW5kZXggYTFiMWY2OTE5ZDFmZmFjM2FmZTRhMTdjMjVkYmVjODYyZjQ5OTkzMC4uNGEwY2RlNTI4
YTFiNmMzMTA3ZTY0NWU5YzI4N2Y3NTQ4MzgxOTA3NCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJk
UGFydHkvQU5HTEUvc3JjL3Rlc3RzL3BlcmZfdGVzdHMvQU5HTEVQZXJmVGVzdC5oCisrKyBiL1Nv
dXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9wZXJmX3Rlc3RzL0FOR0xFUGVyZlRlc3Qu
aApAQCAtMTEyLDEyICsxMTIsMjUgQEAgY2xhc3MgQU5HTEVQZXJmVGVzdCA6IHB1YmxpYyB0ZXN0
aW5nOjpUZXN0LCBhbmdsZTo6Tm9uQ29weWFibGUKICAgICB2b2lkIHByb2Nlc3NDbG9ja1Jlc3Vs
dChjb25zdCBjaGFyICptZXRyaWMsIGRvdWJsZSByZXN1bHRTZWNvbmRzKTsKICAgICB2b2lkIHBy
b2Nlc3NNZW1vcnlSZXN1bHQoY29uc3QgY2hhciAqbWV0cmljLCB1aW50NjRfdCByZXN1bHRLQik7
CiAKKyAgICB2b2lkIHNraXBUZXN0KGNvbnN0IHN0ZDo6c3RyaW5nICZyZWFzb24pCisgICAgewor
ICAgICAgICBtU2tpcFRlc3RSZWFzb24gPSByZWFzb247CisgICAgICAgIG1Ta2lwVGVzdCAgICAg
ICA9IHRydWU7CisgICAgfQorCisgICAgdm9pZCBmYWlsVGVzdChjb25zdCBzdGQ6OnN0cmluZyAm
cmVhc29uKQorICAgIHsKKyAgICAgICAgc2tpcFRlc3QocmVhc29uKTsKKyAgICAgICAgRkFJTCgp
IDw8IHJlYXNvbjsKKyAgICB9CisKICAgICBzdGQ6OnN0cmluZyBtTmFtZTsKICAgICBzdGQ6OnN0
cmluZyBtQmFja2VuZDsKICAgICBzdGQ6OnN0cmluZyBtU3Rvcnk7CiAgICAgVGltZXIgbVRpbWVy
OwogICAgIHVpbnQ2NF90IG1HUFVUaW1lTnM7CiAgICAgYm9vbCBtU2tpcFRlc3Q7CisgICAgc3Rk
OjpzdHJpbmcgbVNraXBUZXN0UmVhc29uOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxwZXJmX3Rlc3Q6
OlBlcmZSZXN1bHRSZXBvcnRlcj4gbVJlcG9ydGVyOwogICAgIGludCBtU3RlcHNUb1J1bjsKICAg
ICBpbnQgbVRyaWFsTnVtU3RlcHNQZXJmb3JtZWQ7CkBAIC0xMzEsNyArMTQ0LDcgQEAgY2xhc3Mg
QU5HTEVQZXJmVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0LCBhbmdsZTo6Tm9uQ29weWFibGUK
ICAgICAgICAgc3RkOjpzdHJpbmcgbmFtZTsKICAgICAgICAgc3RkOjp2ZWN0b3I8R0x1aW50PiBz
YW1wbGVzOwogICAgIH07Ci0gICAgYW5nbGU6Okhhc2hNYXA8R0x1aW50LCBDb3VudGVySW5mbz4g
bVBlcmZDb3VudGVySW5mbzsKKyAgICBzdGQ6Om1hcDxHTHVpbnQsIENvdW50ZXJJbmZvPiBtUGVy
ZkNvdW50ZXJJbmZvOwogICAgIHN0ZDo6dmVjdG9yPHVpbnQ2NF90PiBtUHJvY2Vzc01lbW9yeVVz
YWdlS0JTYW1wbGVzOwogfTsKIApAQCAtMTU2LDYgKzE2OSw4IEBAIHN0cnVjdCBSZW5kZXJUZXN0
UGFyYW1zIDogcHVibGljIGFuZ2xlOjpQbGF0Zm9ybVBhcmFtZXRlcnMKICAgICBib29sIHRyYWNr
R3B1VGltZSAgICAgICAgICAgICAgPSBmYWxzZTsKICAgICBTdXJmYWNlVHlwZSBzdXJmYWNlVHlw
ZSAgICAgICAgPSBTdXJmYWNlVHlwZTo6V2luZG93OwogICAgIEVHTGVudW0gY29sb3JTcGFjZSAg
ICAgICAgICAgICA9IEVHTF9DT0xPUlNQQUNFX0xJTkVBUjsKKyAgICBib29sIG11bHRpc2FtcGxl
ICAgICAgICAgICAgICAgPSBmYWxzZTsKKyAgICBFR0xpbnQgc2FtcGxlcyAgICAgICAgICAgICAg
ICAgPSAtMTsKIH07CiAKIGNsYXNzIEFOR0xFUmVuZGVyVGVzdCA6IHB1YmxpYyBBTkdMRVBlcmZU
ZXN0CkBAIC0yMTQsNyArMjI5LDcgQEAgY2xhc3MgQU5HTEVSZW5kZXJUZXN0IDogcHVibGljIEFO
R0xFUGVyZlRlc3QKICAgICB2b2lkIGZpbmlzaFRlc3QoKSBvdmVycmlkZTsKICAgICB2b2lkIGNv
bXB1dGVHUFVUaW1lKCkgb3ZlcnJpZGU7CiAKLSAgICBib29sIGFyZUV4dGVuc2lvblByZXJlcXVp
c2l0ZXNGdWxmaWxsZWQoKSBjb25zdDsKKyAgICB2b2lkIHNraXBUZXN0SWZNaXNzaW5nRXh0ZW5z
aW9uUHJlcmVxdWlzaXRlcygpOwogCiAgICAgdm9pZCBpbml0UGVyZkNvdW50ZXJzKCk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9wZXJmX3Rlc3RzL0FO
R0xFUGVyZlRlc3RBcmdzLmNwcCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9w
ZXJmX3Rlc3RzL0FOR0xFUGVyZlRlc3RBcmdzLmNwcAppbmRleCBhZjI3NDY0Yjc5MjVlMzVjMzQw
OWFhZmRiMTg4NjY3MTUxMjJlZjQwLi5jOTYzMWRiMjU1MDVkMzNkMDE1NzVkNzczMTdmYTU2OWZi
ZmI5YThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvcGVy
Zl90ZXN0cy9BTkdMRVBlcmZUZXN0QXJncy5jcHAKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5H
TEUvc3JjL3Rlc3RzL3BlcmZfdGVzdHMvQU5HTEVQZXJmVGVzdEFyZ3MuY3BwCkBAIC0zNCw2ICsz
NCw3IEBAIGNvbnN0IGNoYXIgKmdQZXJmQ291bnRlcnMgICAgICA9IG51bGxwdHI7CiAvLyBEZWZh
dWx0IHRvIHRocmVlIHdhcm11cCBsb29wcy4gVGhlcmUncyBubyBzY2llbmNlIHRvIHRoaXMuIE1v
cmUgdGhhbiB0d28gbG9vcHMgd2FzIGV4cGVyaW1lbnRhbGx5CiAvLyBoZWxwZnVsIG9uIGEgV2lu
ZG93cyBOVklESUEgc2V0dXAgd2hlbiB0ZXN0aW5nIHdpdGggVnVsa2FuIGFuZCBuYXRpdmUgdHJh
Y2UgdGVzdHMuCiBpbnQgZ1dhcm11cExvb3BzID0gMzsKK2ludCBnV2FybXVwU3RlcHMgPSBzdGQ6
Om51bWVyaWNfbGltaXRzPGludD46Om1heCgpOwogfSAgLy8gbmFtZXNwYWNlIGFuZ2xlCiAKIG5h
bWVzcGFjZQpAQCAtMTIzLDYgKzEyNCwxMiBAQCB2b2lkIEFOR0xFUHJvY2Vzc1BlcmZUZXN0QXJn
cyhpbnQgKmFyZ2MsIGNoYXIgKiphcmd2KQogICAgICAgICAgICAgLy8gU2tpcCBhbiBhZGRpdGlv
bmFsIGFyZ3VtZW50LgogICAgICAgICAgICAgYXJnSW5kZXgrKzsKICAgICAgICAgfQorICAgICAg
ICBlbHNlIGlmIChzdHJjbXAoIi0td2FybXVwLXN0ZXBzIiwgYXJndlthcmdJbmRleF0pID09IDAp
CisgICAgICAgIHsKKyAgICAgICAgICAgIGdXYXJtdXBTdGVwcyA9IFJlYWRJbnRBcmd1bWVudChh
cmd2W2FyZ0luZGV4ICsgMV0pOworICAgICAgICAgICAgLy8gU2tpcCBhbiBhZGRpdGlvbmFsIGFy
Z3VtZW50LgorICAgICAgICAgICAgYXJnSW5kZXgrKzsKKyAgICAgICAgfQogICAgICAgICBlbHNl
IGlmIChzdHJjbXAoIi0tbm8td2FybXVwIiwgYXJndlthcmdJbmRleF0pID09IDApCiAgICAgICAg
IHsKICAgICAgICAgICAgIGdXYXJtdXBMb29wcyA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvcGVyZl90ZXN0cy9BTkdMRVBlcmZUZXN0QXJncy5oIGIv
U291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3RzL3BlcmZfdGVzdHMvQU5HTEVQZXJmVGVz
dEFyZ3MuaAppbmRleCAzYzcxNzM2OGE1YzJiNDg0MWYyNWQzYTVkMWU0Y2I0YmE4NzJhNGZhLi5l
MWZjYTU0NjRjMWZhYTMzNDNiMWM0YzUwNTFjZTMzMDk2N2ZjOWE4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvcGVyZl90ZXN0cy9BTkdMRVBlcmZUZXN0QXJn
cy5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9wZXJmX3Rlc3RzL0FO
R0xFUGVyZlRlc3RBcmdzLmgKQEAgLTIzLDYgKzIzLDcgQEAgZXh0ZXJuIGNvbnN0IGNoYXIgKmdT
Y3JlZW5TaG90RGlyOwogZXh0ZXJuIGludCBnU2NyZWVuU2hvdEZyYW1lOwogZXh0ZXJuIGJvb2wg
Z1ZlcmJvc2VMb2dnaW5nOwogZXh0ZXJuIGludCBnV2FybXVwTG9vcHM7CitleHRlcm4gaW50IGdX
YXJtdXBTdGVwczsKIGV4dGVybiBkb3VibGUgZ0NhbGlicmF0aW9uVGltZVNlY29uZHM7CiBleHRl
cm4gZG91YmxlIGdNYXhUcmlhbFRpbWVTZWNvbmRzOwogZXh0ZXJuIGludCBnVGVzdFRyaWFsczsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9wZXJmX3Rlc3Rz
L0JpbmRpbmdQZXJmLmNwcCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9wZXJm
X3Rlc3RzL0JpbmRpbmdQZXJmLmNwcAppbmRleCBkYzJmN2Y5NGU2ODhlZDE4MTdiNDVkMWI1MDNm
NDIyMDAxYzNhNDEwLi4wMThiMjQ0YzA0OTI2YmE3YTA0ZmJlZDk5Y2RmNTVhMjAwMTgxZDJiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvcGVyZl90ZXN0cy9C
aW5kaW5nUGVyZi5jcHAKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3RzL3Bl
cmZfdGVzdHMvQmluZGluZ1BlcmYuY3BwCkBAIC0xMTEsMTAgKzExMSw5IEBAIGNsYXNzIEJpbmRp
bmdzQmVuY2htYXJrIDogcHVibGljIEFOR0xFUmVuZGVyVGVzdCwKIAogQmluZGluZ3NCZW5jaG1h
cms6OkJpbmRpbmdzQmVuY2htYXJrKCkgOiBBTkdMRVJlbmRlclRlc3QoIkJpbmRpbmdzIiwgR2V0
UGFyYW0oKSkKIHsKLSAgICAvLyBGbGFreSBvbiBPcGVuR0wuIGh0dHA6Ly9hbmdsZWJ1Zy5jb20v
NjI2NAogICAgIGlmIChHZXRQYXJhbSgpLmVnbFBhcmFtZXRlcnMucmVuZGVyZXIgPT0gRUdMX1BM
QVRGT1JNX0FOR0xFX1RZUEVfT1BFTkdMX0FOR0xFKQogICAgIHsKLSAgICAgICAgbVNraXBUZXN0
ID0gdHJ1ZTsKKyAgICAgICAgc2tpcFRlc3QoImh0dHA6Ly9hbmdsZWJ1Zy5jb20vNjI2NCBGbGFr
eSBvbiBPcGVuR0wiKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L0FOR0xFL3NyYy90ZXN0cy9wZXJmX3Rlc3RzL0NsZWFyUGVyZi5jcHAgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9BTkdMRS9zcmMvdGVzdHMvcGVyZl90ZXN0cy9DbGVhclBlcmYuY3BwCmluZGV4IDBkNzM4
MjAzZWM1M2E2NDg5MGMxZGQzODVhM2IyZGUxYzNjNGYyODEuLjBiNDcwYTNlNzdjNDZkY2FiNTM1
YWFkNWZlZDVlODQ2YzM1MjM3ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xF
L3NyYy90ZXN0cy9wZXJmX3Rlc3RzL0NsZWFyUGVyZi5jcHAKKysrIGIvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvc3JjL3Rlc3RzL3BlcmZfdGVzdHMvQ2xlYXJQZXJmLmNwcApAQCAtOTIsMTAgKzky
LDkgQEAgY2xhc3MgQ2xlYXJCZW5jaG1hcmsgOiBwdWJsaWMgQU5HTEVSZW5kZXJUZXN0LCBwdWJs
aWMgOjp0ZXN0aW5nOjpXaXRoUGFyYW1JbnRlcmYKIAogQ2xlYXJCZW5jaG1hcms6OkNsZWFyQmVu
Y2htYXJrKCkgOiBBTkdMRVJlbmRlclRlc3QoIkNsZWFyIiwgR2V0UGFyYW0oKSksIG1Qcm9ncmFt
KDB1KQogewotICAgIC8vIENyYXNoZXMgb24gbnZpZGlhK2QzZDExLiBodHRwOi8vY3JidWcuY29t
Lzk0NTQxNQogICAgIGlmIChHZXRQYXJhbSgpLmdldFJlbmRlcmVyKCkgPT0gRUdMX1BMQVRGT1JN
X0FOR0xFX1RZUEVfRDNEMTFfQU5HTEUpCiAgICAgewotICAgICAgICBtU2tpcFRlc3QgPSB0cnVl
OworICAgICAgICBza2lwVGVzdCgiaHR0cDovL2NyYnVnLmNvbS85NDU0MTUgQ3Jhc2hlcyBvbiBu
dmlkaWErZDNkMTEiKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L0FOR0xFL3NyYy90ZXN0cy9wZXJmX3Rlc3RzL0ZyYW1lYnVmZmVyQXR0YWNobWVudFBlcmZUZXN0
LmNwcCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9wZXJmX3Rlc3RzL0ZyYW1l
YnVmZmVyQXR0YWNobWVudFBlcmZUZXN0LmNwcAppbmRleCBlMzk0NDhkNzRkZTY3ZjU4MTBjMWE4
ZDQwZDhjNGFiMDhhMzIxZDIzLi5kYzk5MmMxNzZhNGEwYTdlMjgyNmQ0OTkxMmNmYzI3NjcyYmJm
ZDMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvcGVyZl90
ZXN0cy9GcmFtZWJ1ZmZlckF0dGFjaG1lbnRQZXJmVGVzdC5jcHAKKysrIGIvU291cmNlL1RoaXJk
UGFydHkvQU5HTEUvc3JjL3Rlc3RzL3BlcmZfdGVzdHMvRnJhbWVidWZmZXJBdHRhY2htZW50UGVy
ZlRlc3QuY3BwCkBAIC04Miw4ICs4Miw3IEBAIHZvaWQgRnJhbWVidWZmZXJBdHRhY2htZW50QmVu
Y2htYXJrOjppbml0aWFsaXplQmVuY2htYXJrKCkKICAgICBnbEdldEludGVnZXJ2KEdMX01BWF9D
T0xPUl9BVFRBQ0hNRU5UUywgJm1heEF0dGFjaG1lbnRDb3VudCk7CiAgICAgaWYgKG1UZXh0dXJl
cy5zaXplKCkgPiBzdGF0aWNfY2FzdDxzaXplX3Q+KG1heEF0dGFjaG1lbnRDb3VudCkpCiAgICAg
ewotICAgICAgICAvLyBUZXh0dXJlIGNvdW50IGV4Y2VlZHMgbWF4aW11bSBhdHRhY2htZW50IHVu
aXQgY291bnQsIHNraXAgdGhlIHRlc3QKLSAgICAgICAgbVNraXBUZXN0ID0gdHJ1ZTsKKyAgICAg
ICAgc2tpcFRlc3QoIlRleHR1cmUgY291bnQgZXhjZWVkcyBtYXhpbXVtIGF0dGFjaG1lbnQgdW5p
dCBjb3VudCIpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5H
TEUvc3JjL3Rlc3RzL3BlcmZfdGVzdHMvR2VuZXJhdGVNaXBtYXBQZXJmLmNwcCBiL1NvdXJjZS9U
aGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9wZXJmX3Rlc3RzL0dlbmVyYXRlTWlwbWFwUGVyZi5j
cHAKaW5kZXggNGZlOGNlZmUxYzczYmQ3M2U0M2RhYWFjYWYzNjc4NzVhYWNiYmI2OS4uYjRlNGFj
M2IyZGNhNTgyZmJjMmQxNjJiMjM2ZmQ5OWMzNDFjOTBjZCAxMDA2NDQKLS0tIGEvU291cmNlL1Ro
aXJkUGFydHkvQU5HTEUvc3JjL3Rlc3RzL3BlcmZfdGVzdHMvR2VuZXJhdGVNaXBtYXBQZXJmLmNw
cAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvcGVyZl90ZXN0cy9HZW5l
cmF0ZU1pcG1hcFBlcmYuY3BwCkBAIC0xMjQsMTcgKzEyNCwxNyBAQCBHZW5lcmF0ZU1pcG1hcEJl
bmNobWFya0Jhc2U6OkdlbmVyYXRlTWlwbWFwQmVuY2htYXJrQmFzZShjb25zdCBjaGFyICpiZW5j
aG1hcmtOYQogICAgIHNldFdlYkdMQ29tcGF0aWJpbGl0eUVuYWJsZWQoR2V0UGFyYW0oKS53ZWJn
bCk7CiAgICAgc2V0Um9idXN0UmVzb3VyY2VJbml0KEdldFBhcmFtKCkud2ViZ2wpOwogCi0gICAg
Ly8gQ3Jhc2hlcyBvbiBudmlkaWErZDNkMTEuIGh0dHA6Ly9jcmJ1Zy5jb20vOTQ1NDE1CiAgICAg
aWYgKEdldFBhcmFtKCkuZ2V0UmVuZGVyZXIoKSA9PSBFR0xfUExBVEZPUk1fQU5HTEVfVFlQRV9E
M0QxMV9BTkdMRSkKICAgICB7Ci0gICAgICAgIG1Ta2lwVGVzdCA9IHRydWU7CisgICAgICAgIHNr
aXBUZXN0KCJodHRwOi8vY3JidWcuY29tLzk0NTQxNSBDcmFzaGVzIG9uIG52aWRpYStkM2QxMSIp
OwogICAgIH0KIAotICAgIC8vIEZhaWxzIG9uIFdpbmRvd3M3IE5WSURJQSBWdWxrYW4sIHByZXN1
bWFibHkgZHVlIHRvIG9sZCBkcml2ZXJzLiBodHRwOi8vY3JidWcuY29tLzEwOTY1MTAKICAgICBp
ZiAoSXNXaW5kb3dzNygpICYmIElzTlZJRElBKCkgJiYKICAgICAgICAgR2V0UGFyYW0oKS5lZ2xQ
YXJhbWV0ZXJzLnJlbmRlcmVyID09IEVHTF9QTEFURk9STV9BTkdMRV9UWVBFX1ZVTEtBTl9BTkdM
RSkKICAgICB7Ci0gICAgICAgIG1Ta2lwVGVzdCA9IHRydWU7CisgICAgICAgIHNraXBUZXN0KAor
ICAgICAgICAgICAgImh0dHA6Ly9jcmJ1Zy5jb20vMTA5NjUxMCBGYWlscyBvbiBXaW5kb3dzNyBO
VklESUEgVnVsa2FuLCBwcmVzdW1hYmx5IGR1ZSB0byBvbGQgIgorICAgICAgICAgICAgImRyaXZl
cnMiKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3Ny
Yy90ZXN0cy9wZXJmX3Rlc3RzL0ludGVybGVhdmVkQXR0cmlidXRlRGF0YS5jcHAgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvcGVyZl90ZXN0cy9JbnRlcmxlYXZlZEF0dHJpYnV0
ZURhdGEuY3BwCmluZGV4IDU4ODM0MjZkYmY1OTZlMWM2Njg1YTkwODhjNTE0NDgwOGQyNTc0NTAu
LjIyN2YxZDE4MjA5NDQ5ZjgxYzQwNzFiYzMzMGVmYmFkMGFlZDZlYWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9wZXJmX3Rlc3RzL0ludGVybGVhdmVkQXR0
cmlidXRlRGF0YS5jcHAKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3RzL3Bl
cmZfdGVzdHMvSW50ZXJsZWF2ZWRBdHRyaWJ1dGVEYXRhLmNwcApAQCAtNzIsMTAgKzcyLDkgQEAg
Y2xhc3MgSW50ZXJsZWF2ZWRBdHRyaWJ1dGVEYXRhQmVuY2htYXJrCiBJbnRlcmxlYXZlZEF0dHJp
YnV0ZURhdGFCZW5jaG1hcms6OkludGVybGVhdmVkQXR0cmlidXRlRGF0YUJlbmNobWFyaygpCiAg
ICAgOiBBTkdMRVJlbmRlclRlc3QoIkludGVybGVhdmVkQXR0cmlidXRlRGF0YSIsIEdldFBhcmFt
KCkpLCBtUG9pbnRTcHJpdGVQcm9ncmFtKDApCiB7Ci0gICAgLy8gVGltaW5nIG91dCBvbiBJbnRl
bC4gaHR0cDovL2NyYnVnLmNvbS85MjEwMDQKICAgICBpZiAoR2V0UGFyYW0oKS5lZ2xQYXJhbWV0
ZXJzLnJlbmRlcmVyID09IEVHTF9QTEFURk9STV9BTkdMRV9UWVBFX09QRU5HTF9BTkdMRSkKICAg
ICB7Ci0gICAgICAgIG1Ta2lwVGVzdCA9IHRydWU7CisgICAgICAgIHNraXBUZXN0KCJodHRwOi8v
Y3JidWcuY29tLzkyMTAwNCBUaW1pbmcgb3V0IG9uIEludGVsIik7CiAgICAgfQogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvcGVyZl90ZXN0cy9MaW5r
UHJvZ3JhbVBlcmZUZXN0LmNwcCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9w
ZXJmX3Rlc3RzL0xpbmtQcm9ncmFtUGVyZlRlc3QuY3BwCmluZGV4IGNiMmVhZTA2MDJmYjY1YzAw
MTMwNjZmMDMzODc5ZWI0Yzk2N2NmMWQuLjJhYWY4NGEwMWI4NWVkMTNhOWY0NzhjNjM4ZTdmZWUy
NDI3MGUwZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9w
ZXJmX3Rlc3RzL0xpbmtQcm9ncmFtUGVyZlRlc3QuY3BwCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L0FOR0xFL3NyYy90ZXN0cy9wZXJmX3Rlc3RzL0xpbmtQcm9ncmFtUGVyZlRlc3QuY3BwCkBAIC0x
MTEsNyArMTExLDcgQEAgdm9pZCBMaW5rUHJvZ3JhbUJlbmNobWFyazo6aW5pdGlhbGl6ZUJlbmNo
bWFyaygpCiAgICAgaWYgKEdldFBhcmFtKCkudGhyZWFkT3B0aW9uICE9IFRocmVhZE9wdGlvbjo6
U2luZ2xlVGhyZWFkICYmCiAgICAgICAgICFJc0dMRXh0ZW5zaW9uRW5hYmxlZCgiR0xfS0hSX3Bh
cmFsbGVsX3NoYWRlcl9jb21waWxlIikpCiAgICAgewotICAgICAgICBtU2tpcFRlc3QgPSB0cnVl
OworICAgICAgICBza2lwVGVzdCgibm9uLXNpbmdsZS10aHJlYWQgYnV0IG1pc3NpbmcgR0xfS0hS
X3BhcmFsbGVsX3NoYWRlcl9jb21waWxlIik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9wZXJmX3Rlc3RzL011
bHRpc2FtcGxlZFJlbmRlclRvVGV4dHVyZVBlcmYuY3BwIGIvU291cmNlL1RoaXJkUGFydHkvQU5H
TEUvc3JjL3Rlc3RzL3BlcmZfdGVzdHMvTXVsdGlzYW1wbGVkUmVuZGVyVG9UZXh0dXJlUGVyZi5j
cHAKaW5kZXggM2Q3MTE5YWRkMWVlM2M3MWVkZjA5YTQ3ZDk2N2Y3ZDg0ZmYxN2QyNi4uZTBmNDE1
NmJmNzUzZjZlZmZmYjg4ZDNiZTZjN2Q5YTZjOTlhZmMxNiAxMDA2NDQKLS0tIGEvU291cmNlL1Ro
aXJkUGFydHkvQU5HTEUvc3JjL3Rlc3RzL3BlcmZfdGVzdHMvTXVsdGlzYW1wbGVkUmVuZGVyVG9U
ZXh0dXJlUGVyZi5jcHAKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3RzL3Bl
cmZfdGVzdHMvTXVsdGlzYW1wbGVkUmVuZGVyVG9UZXh0dXJlUGVyZi5jcHAKQEAgLTk0LDM4ICs5
NCwzNSBAQCBjbGFzcyBNdWx0aXNhbXBsZWRSZW5kZXJUb1RleHR1cmVCZW5jaG1hcmsKIE11bHRp
c2FtcGxlZFJlbmRlclRvVGV4dHVyZUJlbmNobWFyazo6TXVsdGlzYW1wbGVkUmVuZGVyVG9UZXh0
dXJlQmVuY2htYXJrKCkKICAgICA6IEFOR0xFUmVuZGVyVGVzdCgiTXVsdGlzYW1wbGVkUmVuZGVy
VG9UZXh0dXJlIiwgR2V0UGFyYW0oKSkKIHsKLSAgICAvLyBDcmFzaGVzIG9uIG52aWRpYStkM2Qx
MS4gaHR0cDovL2NyYnVnLmNvbS85NDU0MTUKICAgICBpZiAoR2V0UGFyYW0oKS5nZXRSZW5kZXJl
cigpID09IEVHTF9QTEFURk9STV9BTkdMRV9UWVBFX0QzRDExX0FOR0xFKQogICAgIHsKLSAgICAg
ICAgbVNraXBUZXN0ID0gdHJ1ZTsKKyAgICAgICAgc2tpcFRlc3QoImh0dHA6Ly9jcmJ1Zy5jb20v
OTQ1NDE1IENyYXNoZXMgb24gbnZpZGlhK2QzZDExIik7CiAgICAgfQogCi0gICAgLy8gRmFpbHMg
b24gV2luZG93czcgTlZJRElBIFZ1bGthbiwgcHJlc3VtYWJseSBkdWUgdG8gb2xkIGRyaXZlcnMu
IGh0dHA6Ly9jcmJ1Zy5jb20vMTA5NjUxMAogICAgIGlmIChJc1dpbmRvd3M3KCkgJiYgSXNOVklE
SUEoKSAmJgogICAgICAgICBHZXRQYXJhbSgpLmVnbFBhcmFtZXRlcnMucmVuZGVyZXIgPT0gRUdM
X1BMQVRGT1JNX0FOR0xFX1RZUEVfVlVMS0FOX0FOR0xFKQogICAgIHsKLSAgICAgICAgbVNraXBU
ZXN0ID0gdHJ1ZTsKKyAgICAgICAgc2tpcFRlc3QoCisgICAgICAgICAgICAiaHR0cDovL2NyYnVn
LmNvbS8xMDk2NTEwIEZhaWxzIG9uIFdpbmRvd3M3IE5WSURJQSBWdWxrYW4sIHByZXN1bWFibHkg
ZHVlIHRvIG9sZCAiCisgICAgICAgICAgICAiZHJpdmVycyIpOwogICAgIH0KIAotICAgIC8vIEZh
aWxzIG9uIFBpeGVsIDQgR0xFUzogaHR0cDovL2FuZ2xlYnVnLmNvbS81MTIwCiAgICAgaWYgKElz
UGl4ZWw0KCkgJiYgR2V0UGFyYW0oKS5lZ2xQYXJhbWV0ZXJzLnJlbmRlcmVyID09IEVHTF9QTEFU
Rk9STV9BTkdMRV9UWVBFX09QRU5HTEVTX0FOR0xFKQogICAgIHsKLSAgICAgICAgbVNraXBUZXN0
ID0gdHJ1ZTsKKyAgICAgICAgc2tpcFRlc3QoImh0dHA6Ly9hbmdsZWJ1Zy5jb20vNTEyMCBGYWls
cyBvbiBQaXhlbCA0IEdMRVMiKTsKICAgICB9CiAKLSAgICAvLyBodHRwOi8vYW5nbGVidWcuY29t
LzUzODAKICAgICBpZiAoSXNMaW51eCgpICYmIElzQU1EKCkgJiYKICAgICAgICAgR2V0UGFyYW0o
KS5lZ2xQYXJhbWV0ZXJzLnJlbmRlcmVyID09IEVHTF9QTEFURk9STV9BTkdMRV9UWVBFX1ZVTEtB
Tl9BTkdMRSAmJgogICAgICAgICBHZXRQYXJhbSgpLm11bHRpcGxlUGFzc2VzICYmIEdldFBhcmFt
KCkud2l0aERlcHRoU3RlbmNpbCkKICAgICB7Ci0gICAgICAgIG1Ta2lwVGVzdCA9IHRydWU7Cisg
ICAgICAgIHNraXBUZXN0KCJodHRwOi8vYW5nbGVidWcuY29tLzUzODAiKTsKICAgICB9CiAKLSAg
ICAvLyBodHRwOi8vYW5nbGVidWcuY29tLzYzMTkKICAgICBpZiAoSXNMaW51eCgpICYmIElzSW50
ZWwoKSAmJgogICAgICAgICBHZXRQYXJhbSgpLmVnbFBhcmFtZXRlcnMucmVuZGVyZXIgPT0gRUdM
X1BMQVRGT1JNX0FOR0xFX1RZUEVfT1BFTkdMX0FOR0xFKQogICAgIHsKLSAgICAgICAgbVNraXBU
ZXN0ID0gdHJ1ZTsKKyAgICAgICAgc2tpcFRlc3QoImh0dHA6Ly9hbmdsZWJ1Zy5jb20vNjMxOSIp
OwogICAgIH0KIH0KIApAQCAtMTMzLDcgKzEzMCw3IEBAIHZvaWQgTXVsdGlzYW1wbGVkUmVuZGVy
VG9UZXh0dXJlQmVuY2htYXJrOjppbml0aWFsaXplQmVuY2htYXJrKCkKIHsKICAgICBpZiAoIUlz
R0xFeHRlbnNpb25FbmFibGVkKCJHTF9FWFRfbXVsdGlzYW1wbGVkX3JlbmRlcl90b190ZXh0dXJl
IikpCiAgICAgewotICAgICAgICBtU2tpcFRlc3QgPSB0cnVlOworICAgICAgICBza2lwVGVzdCgi
bWlzc2luZyBHTF9FWFRfbXVsdGlzYW1wbGVkX3JlbmRlcl90b190ZXh0dXJlIik7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3Ny
Yy90ZXN0cy9wZXJmX3Rlc3RzL011bHRpc2FtcGxlZFN3YXBjaGFpblJlc29sdmUuY3BwIGIvU291
cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3RzL3BlcmZfdGVzdHMvTXVsdGlzYW1wbGVkU3dh
cGNoYWluUmVzb2x2ZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmI4NGViYTM3NDJmODU4MTNlZDVjOGQ1YzE2
YjA4NDBiZjViMzIxNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xF
L3NyYy90ZXN0cy9wZXJmX3Rlc3RzL011bHRpc2FtcGxlZFN3YXBjaGFpblJlc29sdmUuY3BwCkBA
IC0wLDAgKzEsMTM3IEBACisvLworLy8gQ29weXJpZ2h0IDIwMjIgVGhlIEFOR0xFIFByb2plY3Qg
QXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2Rl
IGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKy8vIGZvdW5k
IGluIHRoZSBMSUNFTlNFIGZpbGUuCisvLworLy8gTXVsdGlzYW1wbGVkU3dhcGNoYWluUmVzb2x2
ZUJlbmNobWFyazoKKy8vICAgUGVyZm9ybWFuY2UgdGVzdCBmb3IgcmVzb2x2aW5nIG11bHRpc2Ft
cGxlIHN3YXBjaGFpbnMgaW4gc3VicGFzcworLy8KKworI2luY2x1ZGUgIkFOR0xFUGVyZlRlc3Qu
aCIKKworI2luY2x1ZGUgPGlvc3RyZWFtPgorI2luY2x1ZGUgPHJhbmRvbT4KKyNpbmNsdWRlIDxz
c3RyZWFtPgorCisjaW5jbHVkZSAidGVzdF91dGlscy9nbF9yYWlpLmgiCisjaW5jbHVkZSAidXRp
bC9zaGFkZXJfdXRpbHMuaCIKKwordXNpbmcgbmFtZXNwYWNlIGFuZ2xlOworCituYW1lc3BhY2UK
K3sKK3N0cnVjdCBNdWx0aXNhbXBsZWRTd2FwY2hhaW5SZXNvbHZlUGFyYW1zIGZpbmFsIDogcHVi
bGljIFJlbmRlclRlc3RQYXJhbXMKK3sKKyAgICBNdWx0aXNhbXBsZWRTd2FwY2hhaW5SZXNvbHZl
UGFyYW1zKCkKKyAgICB7CisgICAgICAgIGl0ZXJhdGlvbnNQZXJTdGVwID0gMTsKKworICAgICAg
ICB3aW5kb3dXaWR0aCAgPSAxOTIwOworICAgICAgICB3aW5kb3dIZWlnaHQgPSAxMDgwOworICAg
ICAgICBtdWx0aXNhbXBsZSAgPSB0cnVlOworICAgICAgICBzYW1wbGVzICAgICAgPSA0OworICAg
IH0KKworICAgIHN0ZDo6c3RyaW5nIHN0b3J5KCkgY29uc3Qgb3ZlcnJpZGU7Cit9OworCitzdGQ6
Om9zdHJlYW0gJm9wZXJhdG9yPDwoc3RkOjpvc3RyZWFtICZvcywgY29uc3QgTXVsdGlzYW1wbGVk
U3dhcGNoYWluUmVzb2x2ZVBhcmFtcyAmcGFyYW1zKQoreworICAgIHJldHVybiBvcyA8PCBwYXJh
bXMuYmFja2VuZEFuZFN0b3J5KCkuc3Vic3RyKDEpOworfQorCitzdGQ6OnN0cmluZyBNdWx0aXNh
bXBsZWRTd2FwY2hhaW5SZXNvbHZlUGFyYW1zOjpzdG9yeSgpIGNvbnN0Cit7CisgICAgc3RkOjpz
dHJpbmdzdHJlYW0gc3Ryc3RyOworCisgICAgc3Ryc3RyIDw8IFJlbmRlclRlc3RQYXJhbXM6OnN0
b3J5KCk7CisKKyAgICByZXR1cm4gc3Ryc3RyLnN0cigpOworfQorCitjbGFzcyBNdWx0aXNhbXBs
ZWRTd2FwY2hhaW5SZXNvbHZlQmVuY2htYXJrCisgICAgOiBwdWJsaWMgQU5HTEVSZW5kZXJUZXN0
LAorICAgICAgcHVibGljIDo6dGVzdGluZzo6V2l0aFBhcmFtSW50ZXJmYWNlPE11bHRpc2FtcGxl
ZFN3YXBjaGFpblJlc29sdmVQYXJhbXM+Cit7CisgIHB1YmxpYzoKKyAgICBNdWx0aXNhbXBsZWRT
d2FwY2hhaW5SZXNvbHZlQmVuY2htYXJrKCk7CisKKyAgICB2b2lkIGluaXRpYWxpemVCZW5jaG1h
cmsoKSBvdmVycmlkZTsKKyAgICB2b2lkIGRlc3Ryb3lCZW5jaG1hcmsoKSBvdmVycmlkZTsKKyAg
ICB2b2lkIGRyYXdCZW5jaG1hcmsoKSBvdmVycmlkZTsKKworICBwcm90ZWN0ZWQ6CisgICAgdm9p
ZCBpbml0U2hhZGVycygpOworCisgICAgR0x1aW50IG1Qcm9ncmFtID0gMDsKK307CisKK011bHRp
c2FtcGxlZFN3YXBjaGFpblJlc29sdmVCZW5jaG1hcms6Ok11bHRpc2FtcGxlZFN3YXBjaGFpblJl
c29sdmVCZW5jaG1hcmsoKQorICAgIDogQU5HTEVSZW5kZXJUZXN0KCJNdWx0aXNhbXBsZWRTd2Fw
Y2hhaW5SZXNvbHZlIiwgR2V0UGFyYW0oKSkKK3t9CisKK3ZvaWQgTXVsdGlzYW1wbGVkU3dhcGNo
YWluUmVzb2x2ZUJlbmNobWFyazo6aW5pdGlhbGl6ZUJlbmNobWFyaygpCit7CisgICAgaW5pdFNo
YWRlcnMoKTsKKyAgICBnbFZpZXdwb3J0KDAsIDAsIGdldFdpbmRvdygpLT5nZXRXaWR0aCgpLCBn
ZXRXaW5kb3coKS0+Z2V0SGVpZ2h0KCkpOworCisgICAgQVNTRVJUX0dMX05PX0VSUk9SKCk7Cit9
CisKK3ZvaWQgTXVsdGlzYW1wbGVkU3dhcGNoYWluUmVzb2x2ZUJlbmNobWFyazo6aW5pdFNoYWRl
cnMoKQoreworICAgIGNvbnN0ZXhwciBjaGFyIGtWU1tdID0gUiIodm9pZCBtYWluKCkKK3sKKyAg
ICBnbF9Qb3NpdGlvbiA9IHZlYzQoMCk7Cit9KSI7CisKKyAgICBjb25zdGV4cHIgY2hhciBrRlNb
XSA9IFIiKHZvaWQgbWFpbih2b2lkKQoreworICAgIGdsX0ZyYWdDb2xvciA9IHZlYzQoMC4wLCAx
LjAsIDAuMCwgMS4wKTsKK30pIjsKKworICAgIG1Qcm9ncmFtID0gQ29tcGlsZVByb2dyYW0oa1ZT
LCBrRlMpOworICAgIEFTU0VSVF9ORSgwdSwgbVByb2dyYW0pOworCisgICAgZ2xVc2VQcm9ncmFt
KG1Qcm9ncmFtKTsKKworICAgIEFTU0VSVF9HTF9OT19FUlJPUigpOworfQorCit2b2lkIE11bHRp
c2FtcGxlZFN3YXBjaGFpblJlc29sdmVCZW5jaG1hcms6OmRlc3Ryb3lCZW5jaG1hcmsoKQorewor
ICAgIGdsRGVsZXRlUHJvZ3JhbShtUHJvZ3JhbSk7Cit9CisKK3ZvaWQgTXVsdGlzYW1wbGVkU3dh
cGNoYWluUmVzb2x2ZUJlbmNobWFyazo6ZHJhd0JlbmNobWFyaygpCit7CisgICAgLy8gSW5pdGlh
bGx5IGNsZWFyIHRoZSBjb2xvciBhdHRhY2htZW50IHRvIGF2b2lkIGhhdmluZyB0byBsb2FkIGZy
b20gdGhlIHJlc29sdmVkIGltYWdlLgorICAgIGdsQ2xlYXJDb2xvcigxLjBmLCAxLjBmLCAxLjBm
LCAxLjBmKTsKKyAgICBnbENsZWFyKEdMX0NPTE9SX0JVRkZFUl9CSVQgfCBHTF9ERVBUSF9CVUZG
RVJfQklUKTsKKworICAgIC8vIFBlcmZvcm0gYSBkcmF3IGp1c3QgdG8gaGF2ZSBzb21ldGhpbmcg
aW4gdGhlIHJlbmRlciBwYXNzLiAgV2l0aCB0aGUgcG9zaXRpb24gYXR0cmlidXRlcworICAgIC8v
IG5vdCBzZXQsIGEgY29uc3RhbnQgZGVmYXVsdCB2YWx1ZSBpcyB1c2VkLCByZXN1bHRpbmcgaW4g
YSB2ZXJ5IGNoZWFwIGRyYXcuCisgICAgZ2xEcmF3QXJyYXlzKEdMX1RSSUFOR0xFUywgMCwgMyk7
CisKKyAgICBBU1NFUlRfR0xfTk9fRVJST1IoKTsKK30KKworTXVsdGlzYW1wbGVkU3dhcGNoYWlu
UmVzb2x2ZVBhcmFtcyBWdWxrYW5QYXJhbXMoKQoreworICAgIE11bHRpc2FtcGxlZFN3YXBjaGFp
blJlc29sdmVQYXJhbXMgcGFyYW1zOworICAgIHBhcmFtcy5lZ2xQYXJhbWV0ZXJzID0gZWdsX3Bs
YXRmb3JtOjpWVUxLQU4oKTsKKyAgICBwYXJhbXMubWFqb3JWZXJzaW9uICA9IDM7CisgICAgcGFy
YW1zLm1pbm9yVmVyc2lvbiAgPSAwOworICAgIHJldHVybiBwYXJhbXM7Cit9CisKK30gIC8vIGFu
b255bW91cyBuYW1lc3BhY2UKKworVEVTVF9QKE11bHRpc2FtcGxlZFN3YXBjaGFpblJlc29sdmVC
ZW5jaG1hcmssIFJ1bikKK3sKKyAgICBydW4oKTsKK30KKwordXNpbmcgbmFtZXNwYWNlIHBhcmFt
czsKKworQU5HTEVfSU5TVEFOVElBVEVfVEVTVChNdWx0aXNhbXBsZWRTd2FwY2hhaW5SZXNvbHZl
QmVuY2htYXJrLCBWdWxrYW5QYXJhbXMoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9BTkdMRS9zcmMvdGVzdHMvcGVyZl90ZXN0cy9NdWx0aXZpZXdQZXJmLmNwcCBiL1NvdXJjZS9U
aGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9wZXJmX3Rlc3RzL011bHRpdmlld1BlcmYuY3BwCmlu
ZGV4IDZkYjVmMTkzY2U0MzNiZWViYmE1NjRlZGY5OTMyYWM4NGVlMmFkMTIuLjFjMTg4YzUyNGRk
ZmQ2M2E3NGE4MzViMTRmMDRjZDc2MTM0N2RlYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBh
cnR5L0FOR0xFL3NyYy90ZXN0cy9wZXJmX3Rlc3RzL011bHRpdmlld1BlcmYuY3BwCisrKyBiL1Nv
dXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9wZXJmX3Rlc3RzL011bHRpdmlld1BlcmYu
Y3BwCkBAIC0xMiw3ICsxMiw3IEBACiAKICNpbmNsdWRlICJBTkdMRVBlcmZUZXN0LmgiCiAjaW5j
bHVkZSAiY29tbW9uL3ZlY3Rvcl91dGlscy5oIgotI2luY2x1ZGUgInBsYXRmb3JtL0ZlYXR1cmVz
RDNELmgiCisjaW5jbHVkZSAicGxhdGZvcm0vRmVhdHVyZXNEM0RfYXV0b2dlbi5oIgogI2luY2x1
ZGUgInRlc3RfdXRpbHMvTXVsdGl2aWV3VGVzdC5oIgogI2luY2x1ZGUgInRlc3RfdXRpbHMvZ2xf
cmFpaS5oIgogI2luY2x1ZGUgInV0aWwvc2hhZGVyX3V0aWxzLmgiCkBAIC04OCw2ICs4OCwxMSBA
QCBzdHJ1Y3QgTXVsdGl2aWV3UGVyZlBhcmFtcyBmaW5hbCA6IHB1YmxpYyBSZW5kZXJUZXN0UGFy
YW1zCiAgICAgICAgIG11bHRpdmlld09wdGlvbiAgICA9IG11bHRpdmlld09wdGlvbkluOwogICAg
ICAgICBudW1WaWV3cyAgICAgICAgICAgPSAyOwogICAgICAgICBtdWx0aXZpZXdFeHRlbnNpb24g
PSBtdWx0aXZpZXdFeHRlbnNpb25JbjsKKworICAgICAgICBpZiAobXVsdGl2aWV3T3B0aW9uID09
IE11bHRpdmlld09wdGlvbjo6SW5zdGFuY2VkTXVsdGl2aWV3R2VvbWV0cnlTaGFkZXIpCisgICAg
ICAgIHsKKyAgICAgICAgICAgIGVnbFBhcmFtZXRlcnMuZW5hYmxlKEZlYXR1cmU6OlNlbGVjdFZp
ZXdJbkdlb21ldHJ5U2hhZGVyKTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIHN0ZDo6c3RyaW5n
IHN0b3J5KCkgY29uc3Qgb3ZlcnJpZGUKQEAgLTE2OSwxMyArMTc0LDYgQEAgY2xhc3MgTXVsdGl2
aWV3QmVuY2htYXJrIDogcHVibGljIEFOR0xFUmVuZGVyVGVzdCwKICAgICB2b2lkIGluaXRpYWxp
emVCZW5jaG1hcmsoKSBvdmVycmlkZTsKICAgICB2b2lkIGRyYXdCZW5jaG1hcmsoKSBmaW5hbDsK
IAotICAgIHZvaWQgb3ZlcnJpZGVXb3JrYXJvdW5kc0QzRChGZWF0dXJlc0QzRCAqZmVhdHVyZXMp
IG92ZXJyaWRlCi0gICAgewotICAgICAgICBmZWF0dXJlcy0+b3ZlcnJpZGVGZWF0dXJlcygKLSAg
ICAgICAgICAgIHsic2VsZWN0X3ZpZXdfaW5fZ2VvbWV0cnlfc2hhZGVyIn0sCi0gICAgICAgICAg
ICBHZXRQYXJhbSgpLm11bHRpdmlld09wdGlvbiA9PSBNdWx0aXZpZXdPcHRpb246Okluc3RhbmNl
ZE11bHRpdmlld0dlb21ldHJ5U2hhZGVyKTsKLSAgICB9Ci0KICAgcHJvdGVjdGVkOgogICAgIHZp
cnR1YWwgdm9pZCByZW5kZXJTY2VuZSgpID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJk
UGFydHkvQU5HTEUvc3JjL3Rlc3RzL3BlcmZfdGVzdHMvUHJlUm90YXRpb25QZXJmLmNwcCBiL1Nv
dXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9wZXJmX3Rlc3RzL1ByZVJvdGF0aW9uUGVy
Zi5jcHAKaW5kZXggNGYzNWUzMDQxYWJlMGVjYzE4YTcxYzEyZWM0ZTQ5MjNjMjRkZDZlNi4uYmMz
YzA1NTM5MTY4ZTI5ZjJhNTAzZTI4NGIyNjkyZmRiNjE3MjYxZiAxMDA2NDQKLS0tIGEvU291cmNl
L1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3RzL3BlcmZfdGVzdHMvUHJlUm90YXRpb25QZXJmLmNw
cAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvcGVyZl90ZXN0cy9QcmVS
b3RhdGlvblBlcmYuY3BwCkBAIC0xODIsMTMgKzE4MiwxMyBAQCBQcmVSb3RhdGlvblBhcmFtcyBW
dWxrYW5QYXJhbXMoUHJlUm90YXRpb24gcHJlUm90YXRpb24pCiAgICAgICAgIGNhc2UgUHJlUm90
YXRpb246Ol8wOgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgUHJlUm90YXRpb246
Ol85MDoKLSAgICAgICAgICAgIHBhcmFtcy5lZ2xQYXJhbWV0ZXJzLmVtdWxhdGVkUHJlcm90YXRp
b24gPSA5MDsKKyAgICAgICAgICAgIHBhcmFtcy5lZ2xQYXJhbWV0ZXJzLmVuYWJsZShGZWF0dXJl
OjpFbXVsYXRlZFByZXJvdGF0aW9uOTApOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNh
c2UgUHJlUm90YXRpb246Ol8xODA6Ci0gICAgICAgICAgICBwYXJhbXMuZWdsUGFyYW1ldGVycy5l
bXVsYXRlZFByZXJvdGF0aW9uID0gMTgwOworICAgICAgICAgICAgcGFyYW1zLmVnbFBhcmFtZXRl
cnMuZW5hYmxlKEZlYXR1cmU6OkVtdWxhdGVkUHJlcm90YXRpb24xODApOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIGNhc2UgUHJlUm90YXRpb246Ol8yNzA6Ci0gICAgICAgICAgICBwYXJh
bXMuZWdsUGFyYW1ldGVycy5lbXVsYXRlZFByZXJvdGF0aW9uID0gMjcwOworICAgICAgICAgICAg
cGFyYW1zLmVnbFBhcmFtZXRlcnMuZW5hYmxlKEZlYXR1cmU6OkVtdWxhdGVkUHJlcm90YXRpb24y
NzApOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvcGVyZl90ZXN0cy9SRUFETUUubWQgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvcGVyZl90ZXN0cy9SRUFETUUubWQKaW5kZXggZjBkMWJh
OTljZGIxMDNhYjAxNmJkYWYxNzA0YTY5Mzc4N2Q2MTdiMi4uNDE3MjRmMzczNzU5ZjZhMzBmMjk0
OTJmMjZiYTI4MWRlNjc1MDcxNCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUv
c3JjL3Rlc3RzL3BlcmZfdGVzdHMvUkVBRE1FLm1kCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FO
R0xFL3NyYy90ZXN0cy9wZXJmX3Rlc3RzL1JFQURNRS5tZApAQCAtMzMsNiArMzMsNyBAQCBTZXZl
cmFsIGNvbW1hbmQtbGluZSBhcmd1bWVudHMgY29udHJvbCBob3cgdGhlIHRlc3RzIHJ1bjoKICog
YC0tcmVuZGVyLXRlc3Qtb3V0cHV0LWRpcj1kaXJgOiBFcXVpdmFsZW50IHRvIGAtLXNjcmVlbnNo
b3QtZGlyIGRpcmAuCiAqIGAtLXZlcmJvc2VgOiBQcmludCBleHRyYSB0aW1pbmcgaW5mb3JtYXRp
b24uCiAqIGAtLXdhcm11cC1sb29wcyB4YDogTnVtYmVyIG9mIHRpbWVzIHRvIHdhcm0gdXAgdGhl
IHRlc3QgYmVmb3JlIHN0YXJ0aW5nIHRpbWluZy4gRGVmYXVsdHMgdG8gMy4KKyogYC0td2FybXVw
LXN0ZXBzIHhgOiBNYXhpbXVtIG51bWJlciBvZiBzdGVwcyBmb3IgdGhlIHdhcm11cCBsb29wcy4g
RGVmYXVsdHMgdG8gdW5saW1pdGVkLgogKiBgLS1uby13YXJtdXBgOiBTa2lwIHdhcm1pbmcgdXAg
dGhlIHRlc3RzLiBFcXVpdmFsZW50IHRvIGAtLXdhcm11cC1zdGVwcyAwYC4KICogYC0tY2FsaWJy
YXRpb24tdGltZWA6IFJ1biBlYWNoIHRlc3QgY2FsaWJyYXRpb24gc3RlcCBpbiBhIGZpeGVkIHRp
bWUuIERlZmF1bHRzIHRvIDEgc2Vjb25kLgogKiBgLS1tYXgtdHJpYWwtdGltZSB4YDogUnVuIGVh
Y2ggdGVzdCB0cmlhbCB1bmRlciB0aGlzIG1heCB0aW1lLiBEZWZhdWx0cyB0byAxMCBzZWNvbmRz
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3RzL3BlcmZfdGVz
dHMvVGV4dHVyZVVwbG9hZFBlcmYuY3BwIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rl
c3RzL3BlcmZfdGVzdHMvVGV4dHVyZVVwbG9hZFBlcmYuY3BwCmluZGV4IGE1MmY2YTVkMzZjNzZm
YzE5MTdiZjk1YWExYzNjN2JkNzhkOTNhYzguLjA2NDgwNDc1ZjVhYmUyZDQ4M2FmYzVlMTI3MWFl
MGRjZjhjNGU0NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0
cy9wZXJmX3Rlc3RzL1RleHR1cmVVcGxvYWRQZXJmLmNwcAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9BTkdMRS9zcmMvdGVzdHMvcGVyZl90ZXN0cy9UZXh0dXJlVXBsb2FkUGVyZi5jcHAKQEAgLTg5
LDExICs4OSwxMCBAQCBjbGFzcyBUZXh0dXJlVXBsb2FkU3ViSW1hZ2VCZW5jaG1hcmsgOiBwdWJs
aWMgVGV4dHVyZVVwbG9hZEJlbmNobWFya0Jhc2UKICAgICB7CiAgICAgICAgIGFkZEV4dGVuc2lv
blByZXJlcXVpc2l0ZSgiR0xfRVhUX3RleHR1cmVfc3RvcmFnZSIpOwogCi0gICAgICAgIC8vIGh0
dHA6Ly9hbmdsZWJ1Zy5jb20vNjMxOQogICAgICAgICBpZiAoSXNMaW51eCgpICYmIElzSW50ZWwo
KSAmJgogICAgICAgICAgICAgR2V0UGFyYW0oKS5lZ2xQYXJhbWV0ZXJzLnJlbmRlcmVyID09IEVH
TF9QTEFURk9STV9BTkdMRV9UWVBFX09QRU5HTF9BTkdMRSkKICAgICAgICAgewotICAgICAgICAg
ICAgbVNraXBUZXN0ID0gdHJ1ZTsKKyAgICAgICAgICAgIHNraXBUZXN0KCJodHRwOi8vYW5nbGVi
dWcuY29tLzYzMTkiKTsKICAgICAgICAgfQogICAgIH0KIApAQCAtMTg1LDEwICsxODQsOSBAQCBU
ZXh0dXJlVXBsb2FkQmVuY2htYXJrQmFzZTo6VGV4dHVyZVVwbG9hZEJlbmNobWFya0Jhc2UoY29u
c3QgY2hhciAqYmVuY2htYXJrTmFtZQogICAgIHNldFdlYkdMQ29tcGF0aWJpbGl0eUVuYWJsZWQo
R2V0UGFyYW0oKS53ZWJnbCk7CiAgICAgc2V0Um9idXN0UmVzb3VyY2VJbml0KEdldFBhcmFtKCku
d2ViZ2wpOwogCi0gICAgLy8gQ3Jhc2hlcyBvbiBudmlkaWErZDNkMTEuIGh0dHA6Ly9jcmJ1Zy5j
b20vOTQ1NDE1CiAgICAgaWYgKEdldFBhcmFtKCkuZ2V0UmVuZGVyZXIoKSA9PSBFR0xfUExBVEZP
Uk1fQU5HTEVfVFlQRV9EM0QxMV9BTkdMRSkKICAgICB7Ci0gICAgICAgIG1Ta2lwVGVzdCA9IHRy
dWU7CisgICAgICAgIHNraXBUZXN0KCJodHRwOi8vY3JidWcuY29tLzk0NTQxNSBDcmFzaGVzIG9u
IG52aWRpYStkM2QxMSIpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvc3JjL3Rlc3RzL3BlcmZfdGVzdHMvVHJhY2VQZXJmVGVzdC5jcHAgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvcGVyZl90ZXN0cy9UcmFjZVBlcmZUZXN0LmNwcApp
bmRleCBiNzY0MjJjNzg1OWYyOGQxOTEzNDc5MWYwMDEwZDhiMzIwMjI0MGNmLi40MmI2ODU3Mjlj
MDczZDM1ZmJkZDA3YzlmNjIwNDBkMmQzYjc0YmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9BTkdMRS9zcmMvdGVzdHMvcGVyZl90ZXN0cy9UcmFjZVBlcmZUZXN0LmNwcAorKysgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvcGVyZl90ZXN0cy9UcmFjZVBlcmZUZXN0
LmNwcApAQCAtNjY1LDE2ICs2NjUsMTYgQEAgYm9vbCBGaW5kUm9vdFRyYWNlVGVzdERhdGFQYXRo
KGNoYXIgKnRlc3REYXRhRGlyT3V0LCBzaXplX3QgbWF4RGF0YURpckxlbikKIFRyYWNlUGVyZlRl
c3Q6OlRyYWNlUGVyZlRlc3QoY29uc3QgVHJhY2VQZXJmUGFyYW1zICZwYXJhbXMpCiAgICAgOiBB
TkdMRVJlbmRlclRlc3QoIlRyYWNlUGVyZiIsIHBhcmFtcywgIm1zIiksIG1QYXJhbXMocGFyYW1z
KSwgbVN0YXJ0RnJhbWUoMCksIG1FbmRGcmFtZSgwKQogewotICAgIC8vIFRPRE86IGh0dHA6Ly9h
bmdsZWJ1Zy5jb20vNDUzMyBUaGlzIGZhaWxzIGFmdGVyIHRoZSB1cGdyYWRlIHRvIHRoZSAyNi4y
MC4xMDAuNzg3MCBkcml2ZXIuCiAgICAgaWYgKElzV2luZG93cygpICYmIElzSW50ZWwoKSAmJiBt
UGFyYW1zLmlzVnVsa2FuKCkgJiYgdHJhY2VOYW1lSXMoIm1hbmhhdHRhbl8xMCIpKQogICAgIHsK
LSAgICAgICAgbVNraXBUZXN0ID0gdHJ1ZTsKKyAgICAgICAgc2tpcFRlc3QoCisgICAgICAgICAg
ICAiVE9ETzogaHR0cDovL2FuZ2xlYnVnLmNvbS80NTMzIFRoaXMgZmFpbHMgYWZ0ZXIgdGhlIHVw
Z3JhZGUgdG8gdGhlIDI2LjIwLjEwMC43ODcwICIKKyAgICAgICAgICAgICJkcml2ZXIiKTsKICAg
ICB9CiAKLSAgICAvLyBUT0RPOiBodHRwOi8vYW5nbGVidWcuY29tLzQ3MzEgRmFpbHMgb24gb2xk
ZXIgSW50ZWwgZHJpdmVycy4gUGFzc2VzIGluIG5ld2VyLgogICAgIGlmIChJc1dpbmRvd3MoKSAm
JiBJc0ludGVsKCkgJiYgIW1QYXJhbXMuaXNBTkdMRSgpICYmIHRyYWNlTmFtZUlzKCJhbmdyeV9i
aXJkc18yXzE1MDAiKSkKICAgICB7Ci0gICAgICAgIG1Ta2lwVGVzdCA9IHRydWU7CisgICAgICAg
IHNraXBUZXN0KCJUT0RPOiBodHRwOi8vYW5nbGVidWcuY29tLzQ3MzEgRmFpbHMgb24gb2xkZXIg
SW50ZWwgZHJpdmVycy4gUGFzc2VzIGluIG5ld2VyIik7CiAgICAgfQogCiAgICAgaWYgKHRyYWNl
TmFtZUlzKCJjb2RfbW9iaWxlIikpCkBAIC02OTAsMTAgKzY5MCw5IEBAIFRyYWNlUGVyZlRlc3Q6
OlRyYWNlUGVyZlRlc3QoY29uc3QgVHJhY2VQZXJmUGFyYW1zICZwYXJhbXMpCiAgICAgICAgIC8v
IFRPRE86IGh0dHA6Ly9hbmdsZWJ1Zy5jb20vNDczMSBUaGlzIGV4dGVuc2lvbiBpcyBtaXNzaW5n
IG9uIG9sZGVyIEludGVsIGRyaXZlcnMuCiAgICAgICAgIGFkZEV4dGVuc2lvblByZXJlcXVpc2l0
ZSgiR0xfT0VTX0VHTF9pbWFnZV9leHRlcm5hbCIpOwogCi0gICAgICAgIC8vIEZsYWt5IG9uIElu
dGVsL3dpbmRvd3MgaHR0cDovL2FuZ2xlYnVnLmNvbS82NTY4CiAgICAgICAgIGlmIChJc1dpbmRv
d3MoKSAmJiBJc0ludGVsKCkpCiAgICAgICAgIHsKLSAgICAgICAgICAgIG1Ta2lwVGVzdCA9IHRy
dWU7CisgICAgICAgICAgICBza2lwVGVzdCgiaHR0cDovL2FuZ2xlYnVnLmNvbS82NTY4IEZsYWt5
IG9uIEludGVsL3dpbmRvd3MiKTsKICAgICAgICAgfQogICAgIH0KIApAQCAtNzM3LDEwICs3MzYs
MTEgQEAgVHJhY2VQZXJmVGVzdDo6VHJhY2VQZXJmVGVzdChjb25zdCBUcmFjZVBlcmZQYXJhbXMg
JnBhcmFtcykKICAgICB7CiAgICAgICAgIGFkZEV4dGVuc2lvblByZXJlcXVpc2l0ZSgiR0xfRVhU
X3NoYWRvd19zYW1wbGVycyIpOwogCi0gICAgICAgIC8vIFRPRE8oaHR0cHM6Ly9hbmdsZWJ1Zy5j
b20vNTUxNykgTGludXgrSW50ZWwgZ2VuZXJhdGVzICJGcmFtZWJ1ZmZlciBpcyBpbmNvbXBsZXRl
IiBlcnJvcnMuCiAgICAgICAgIGlmIChJc0xpbnV4KCkgJiYgSXNJbnRlbCgpICYmIG1QYXJhbXMu
aXNWdWxrYW4oKSkKICAgICAgICAgewotICAgICAgICAgICAgbVNraXBUZXN0ID0gdHJ1ZTsKKyAg
ICAgICAgICAgIHNraXBUZXN0KAorICAgICAgICAgICAgICAgICJUT0RPOiBodHRwczovL2FuZ2xl
YnVnLmNvbS81NTE3IExpbnV4K0ludGVsIGdlbmVyYXRlcyAnRnJhbWVidWZmZXIgaXMgaW5jb21w
bGV0ZScgIgorICAgICAgICAgICAgICAgICJlcnJvcnMiKTsKICAgICAgICAgfQogICAgIH0KIApA
QCAtNzU4LDEwICs3NTgsOSBAQCBUcmFjZVBlcmZUZXN0OjpUcmFjZVBlcmZUZXN0KGNvbnN0IFRy
YWNlUGVyZlBhcmFtcyAmcGFyYW1zKQogICAgICAgICAvLyBJbnRlbCBkb2Vzbid0IHN1cHBvcnQg
ZXh0ZXJuYWwgaW1hZ2VzLgogICAgICAgICBhZGRFeHRlbnNpb25QcmVyZXF1aXNpdGUoIkdMX09F
U19FR0xfaW1hZ2VfZXh0ZXJuYWwiKTsKIAotICAgICAgICAvLyBGYWlsaW5nIG9uIExpbnV4IElu
dGVsIGFuZCBBTUQgZHVlIHRvIGludmFsaWQgZW51bS4gaHR0cDovL2FuZ2xlYnVnLmNvbS81ODIy
CiAgICAgICAgIGlmIChJc0xpbnV4KCkgJiYgKElzSW50ZWwoKSB8fCBJc0FNRCgpKSAmJiBtUGFy
YW1zLmRyaXZlciAhPSBHTEVTRHJpdmVyVHlwZTo6QW5nbGVFR0wpCiAgICAgICAgIHsKLSAgICAg
ICAgICAgIG1Ta2lwVGVzdCA9IHRydWU7CisgICAgICAgICAgICBza2lwVGVzdCgiaHR0cDovL2Fu
Z2xlYnVnLmNvbS81ODIyIEZhaWxpbmcgb24gTGludXggSW50ZWwgYW5kIEFNRCBkdWUgdG8gaW52
YWxpZCBlbnVtIik7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTc3NywyOSArNzc2LDI3IEBAIFRy
YWNlUGVyZlRlc3Q6OlRyYWNlUGVyZlRlc3QoY29uc3QgVHJhY2VQZXJmUGFyYW1zICZwYXJhbXMp
CiAKICAgICBpZiAodHJhY2VOYW1lSXMoImVmb290YmFsbF9wZXNfMjAyMSIpKQogICAgIHsKLSAg
ICAgICAgLy8gVE9ETyhodHRwczovL2FuZ2xlYnVnLmNvbS81NTE3KSBMaW51eCtJbnRlbCBhbmQg
UGl4ZWwgMiBnZW5lcmF0ZSAiRnJhbWVidWZmZXIgaXMKLSAgICAgICAgLy8gaW5jb21wbGV0ZSIg
ZXJyb3JzIHdpdGggdGhlIFZ1bGthbiBiYWNrZW5kLgogICAgICAgICBpZiAobVBhcmFtcy5pc1Z1
bGthbigpICYmICgoSXNMaW51eCgpICYmIElzSW50ZWwoKSkgfHwgSXNQaXhlbDIoKSkpCiAgICAg
ICAgIHsKLSAgICAgICAgICAgIG1Ta2lwVGVzdCA9IHRydWU7CisgICAgICAgICAgICBza2lwVGVz
dCgKKyAgICAgICAgICAgICAgICAiVE9ETzogaHR0cHM6Ly9hbmdsZWJ1Zy5jb20vNTUxNyBMaW51
eCtJbnRlbCBhbmQgUGl4ZWwgMiBnZW5lcmF0ZSAnRnJhbWVidWZmZXIgaXMgIgorICAgICAgICAg
ICAgICAgICJpbmNvbXBsZXRlJyBlcnJvcnMgd2l0aCB0aGUgVnVsa2FuIGJhY2tlbmQiKTsKICAg
ICAgICAgfQogICAgIH0KIAogICAgIGlmICh0cmFjZU5hbWVJcygibWFuaGF0dGFuXzMxIikpCiAg
ICAgewotICAgICAgICAvLyBUT0RPOiBodHRwOi8vYW5nbGVidWcuY29tLzU1OTEgVHJhY2UgY3Jh
c2hlcyBvbiBQaXhlbCAyIGluIHZ1bGthbiBkcml2ZXIKICAgICAgICAgaWYgKElzUGl4ZWwyKCkg
JiYgbVBhcmFtcy5pc1Z1bGthbigpKQogICAgICAgICB7Ci0gICAgICAgICAgICBtU2tpcFRlc3Qg
PSB0cnVlOworICAgICAgICAgICAgc2tpcFRlc3QoIlRPRE86IGh0dHA6Ly9hbmdsZWJ1Zy5jb20v
NTU5MSBUcmFjZSBjcmFzaGVzIG9uIFBpeGVsIDIgaW4gdnVsa2FuIGRyaXZlciIpOwogICAgICAg
ICB9CiAgICAgfQogCiAgICAgaWYgKHRyYWNlTmFtZUlzKCJpZGxlX2hlcm9lcyIpKQogICAgIHsK
LSAgICAgICAgLy8gVE9ETzogaHR0cDovL2FuZ2xlYnVnLmNvbS81NTkxIFRyYWNlIGNyYXNoZXMg
b24gUGl4ZWwgMgogICAgICAgICBpZiAoSXNQaXhlbDIoKSkKICAgICAgICAgewotICAgICAgICAg
ICAgbVNraXBUZXN0ID0gdHJ1ZTsKKyAgICAgICAgICAgIHNraXBUZXN0KCJUT0RPOiBodHRwOi8v
YW5nbGVidWcuY29tLzU1OTEgVHJhY2UgY3Jhc2hlcyBvbiBQaXhlbCAyIik7CiAgICAgICAgIH0K
ICAgICB9CiAKQEAgLTgxOCwyNiArODE1LDI0IEBAIFRyYWNlUGVyZlRlc3Q6OlRyYWNlUGVyZlRl
c3QoY29uc3QgVHJhY2VQZXJmUGFyYW1zICZwYXJhbXMpCiAgICAgewogICAgICAgICBpZiAoSXNX
aW5kb3dzKCkgJiYgSXNBTUQoKSAmJiBtUGFyYW1zLmlzVnVsa2FuKCkpCiAgICAgICAgIHsKLSAg
ICAgICAgICAgIG1Ta2lwVGVzdCA9IHRydWU7CisgICAgICAgICAgICBza2lwVGVzdCgiaHR0cDov
L2FuZ2xlYnVnLmNvbS81NjIzIEdlbmVyYXRlcyBpbmNvcnJlY3QgcmVzdWx0cyBvbiBBTUQgV2lu
ZG93cyBWdWxrYW4iKTsKICAgICAgICAgfQogICAgIH0KIAogICAgIGlmICh0cmFjZU5hbWVJcygi
YnVzX3NpbXVsYXRvcl9pbmRvbmVzaWEiKSkKICAgICB7Ci0gICAgICAgIC8vIFRPRE8oaHR0cHM6
Ly9hbmdsZWJ1Zy5jb20vNTYyOSkgTGludXgrKEludGVsfEFNRCkgbmF0aXZlIEdMRVMgZ2VuZXJh
dGVzCi0gICAgICAgIC8vIEdMX0lOVkFMSURfT1BFUkFUSU9OCiAgICAgICAgIGlmIChJc0xpbnV4
KCkgJiYgKElzSW50ZWwoKSB8fCBJc0FNRCgpKSAmJiAhbVBhcmFtcy5pc1Z1bGthbigpKQogICAg
ICAgICB7Ci0gICAgICAgICAgICBtU2tpcFRlc3QgPSB0cnVlOworICAgICAgICAgICAgc2tpcFRl
c3QoIlRPRE86IGh0dHBzOi8vYW5nbGVidWcuY29tLzU2MjkgbmF0aXZlIEdMRVMgZ2VuZXJhdGVz
IEdMX0lOVkFMSURfT1BFUkFUSU9OIik7CiAgICAgICAgIH0KICAgICB9CiAKICAgICBpZiAodHJh
Y2VOYW1lSXMoIm1lc3Nlbmdlcl9saXRlIikpCiAgICAgewotICAgICAgICAvLyBUT0RPOiBodHRw
czovL2FuZ2xlYnVnLmNvbS81NjYzIEluY29ycmVjdCBwaXhlbHMgb24gTlZJRElBIFdpbmRvd3Mg
Zm9yIGZpcnN0IGZyYW1lCiAgICAgICAgIGlmIChJc1dpbmRvd3MoKSAmJiBJc05WSURJQSgpICYm
IG1QYXJhbXMuaXNWdWxrYW4oKSAmJiAhbVBhcmFtcy5pc1N3aWZ0c2hhZGVyKCkpCiAgICAgICAg
IHsKLSAgICAgICAgICAgIG1Ta2lwVGVzdCA9IHRydWU7CisgICAgICAgICAgICBza2lwVGVzdCgK
KyAgICAgICAgICAgICAgICAiaHR0cHM6Ly9hbmdsZWJ1Zy5jb20vNTY2MyBJbmNvcnJlY3QgcGl4
ZWxzIG9uIE5WSURJQSBXaW5kb3dzIGZvciBmaXJzdCBmcmFtZSIpOwogICAgICAgICB9CiAgICAg
fQogCkBAIC04NDgsMzMgKzg0MywzMyBAQCBUcmFjZVBlcmZUZXN0OjpUcmFjZVBlcmZUZXN0KGNv
bnN0IFRyYWNlUGVyZlBhcmFtcyAmcGFyYW1zKQogCiAgICAgaWYgKHRyYWNlTmFtZUlzKCJjYXJf
cGFya2luZ19tdWx0aXBsYXllciIpKQogICAgIHsKLSAgICAgICAgLy8gVE9ETzogaHR0cHM6Ly9h
bmdsZWJ1Zy5jb20vNTYxMyBOVklESUEgbmF0aXZlIGRyaXZlciBzcGV3cyB1bmRlZmluZWQgYmVo
YXZpb3Igd2FybmluZ3MKICAgICAgICAgaWYgKElzTlZJRElBKCkgJiYgIW1QYXJhbXMuaXNWdWxr
YW4oKSkKICAgICAgICAgewotICAgICAgICAgICAgbVNraXBUZXN0ID0gdHJ1ZTsKKyAgICAgICAg
ICAgIHNraXBUZXN0KAorICAgICAgICAgICAgICAgICJUT0RPOiBodHRwczovL2FuZ2xlYnVnLmNv
bS81NjEzIE5WSURJQSBuYXRpdmUgZHJpdmVyIHNwZXdzIHVuZGVmaW5lZCBiZWhhdmlvciAiCisg
ICAgICAgICAgICAgICAgIndhcm5pbmdzIik7CiAgICAgICAgIH0KLSAgICAgICAgLy8gVE9ETzog
aHR0cHM6Ly9hbmdsZWJ1Zy5jb20vNTcyNCBEZXZpY2UgbG9zdCBvbiBXaW4gSW50ZWwKICAgICAg
ICAgaWYgKElzV2luZG93cygpICYmIElzSW50ZWwoKSAmJiBtUGFyYW1zLmlzVnVsa2FuKCkpCiAg
ICAgICAgIHsKLSAgICAgICAgICAgIG1Ta2lwVGVzdCA9IHRydWU7CisgICAgICAgICAgICBza2lw
VGVzdCgiaHR0cHM6Ly9hbmdsZWJ1Zy5jb20vNTcyNCBEZXZpY2UgbG9zdCBvbiBXaW4gSW50ZWwi
KTsKICAgICAgICAgfQogICAgIH0KIAogICAgIGlmICh0cmFjZU5hbWVJcygiZmlmYV9tb2JpbGUi
KSkKICAgICB7Ci0gICAgICAgIC8vIFRPRE86IGh0dHA6Ly9hbmdsZWJ1Zy5jb20vNTg3NSBJbnRl
bCBXaW5kb3dzIFZ1bGthbiBmbGFraWx5IHJlbmRlcnMgZW50aXJlbHkgYmxhY2sKICAgICAgICAg
aWYgKElzV2luZG93cygpICYmIElzSW50ZWwoKSAmJiBtUGFyYW1zLmlzVnVsa2FuKCkpCiAgICAg
ICAgIHsKLSAgICAgICAgICAgIG1Ta2lwVGVzdCA9IHRydWU7CisgICAgICAgICAgICBza2lwVGVz
dCgKKyAgICAgICAgICAgICAgICAiVE9ETzogaHR0cDovL2FuZ2xlYnVnLmNvbS81ODc1IEludGVs
IFdpbmRvd3MgVnVsa2FuIGZsYWtpbHkgcmVuZGVycyBlbnRpcmVseSAiCisgICAgICAgICAgICAg
ICAgImJsYWNrIik7CiAgICAgICAgIH0KICAgICB9CiAKICAgICBpZiAodHJhY2VOYW1lSXMoInJv
cGVfaGVyb192aWNlX3Rvd24iKSkKICAgICB7Ci0gICAgICAgIC8vIFRPRE86IGh0dHA6Ly9hbmds
ZWJ1Zy5jb20vNTcxNiBUcmFjZSBjcmFzaGVzIG9uIFBpeGVsIDIgaW4gdnVsa2FuIGRyaXZlcgog
ICAgICAgICBpZiAoSXNQaXhlbDIoKSAmJiBtUGFyYW1zLmlzVnVsa2FuKCkpCiAgICAgICAgIHsK
LSAgICAgICAgICAgIG1Ta2lwVGVzdCA9IHRydWU7CisgICAgICAgICAgICBza2lwVGVzdCgiVE9E
TzogaHR0cDovL2FuZ2xlYnVnLmNvbS81NzE2IFRyYWNlIGNyYXNoZXMgb24gUGl4ZWwgMiBpbiB2
dWxrYW4gZHJpdmVyIik7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTg4NSwxMCArODgwLDkgQEAg
VHJhY2VQZXJmVGVzdDo6VHJhY2VQZXJmVGVzdChjb25zdCBUcmFjZVBlcmZQYXJhbXMgJnBhcmFt
cykKIAogICAgIGlmICh0cmFjZU5hbWVJcygicGxhbnRzX3ZzX3pvbWJpZXNfMiIpKQogICAgIHsK
LSAgICAgICAgLy8gVE9ETzogaHR0cDovL2NyYnVnLmNvbS8xMTg3NzUyIENvcnJ1cHRlZCBpbWFn
ZQogICAgICAgICBpZiAoSXNXaW5kb3dzKCkgJiYgSXNBTUQoKSAmJiBtUGFyYW1zLmlzVnVsa2Fu
KCkpCiAgICAgICAgIHsKLSAgICAgICAgICAgIG1Ta2lwVGVzdCA9IHRydWU7CisgICAgICAgICAg
ICBza2lwVGVzdCgiVE9ETzogaHR0cDovL2NyYnVnLmNvbS8xMTg3NzUyIENvcnJ1cHRlZCBpbWFn
ZSIpOwogICAgICAgICB9CiAgICAgfQogCkBAIC05MDIsMTkgKzg5NiwxOSBAQCBUcmFjZVBlcmZU
ZXN0OjpUcmFjZVBlcmZUZXN0KGNvbnN0IFRyYWNlUGVyZlBhcmFtcyAmcGFyYW1zKQogICAgICAg
ICBhZGRFeHRlbnNpb25QcmVyZXF1aXNpdGUoIkdMX09FU19FR0xfaW1hZ2VfZXh0ZXJuYWwiKTsK
ICAgICAgICAgYWRkRXh0ZW5zaW9uUHJlcmVxdWlzaXRlKCJHTF9LSFJfdGV4dHVyZV9jb21wcmVz
c2lvbl9hc3RjX2xkciIpOwogCi0gICAgICAgIC8vIFRPRE86IGh0dHA6Ly9hbmdsZWJ1Zy5jb20v
NTc3MiBQaXhlbCAyIGVycm9ycyB3aXRoICJGcmFtZWJ1ZmZlciBpcyBpbmNvbXBsZXRlIiBvbiBW
dWxrYW4KICAgICAgICAgaWYgKElzUGl4ZWwyKCkgJiYgbVBhcmFtcy5pc1Z1bGthbigpKQogICAg
ICAgICB7Ci0gICAgICAgICAgICBtU2tpcFRlc3QgPSB0cnVlOworICAgICAgICAgICAgc2tpcFRl
c3QoCisgICAgICAgICAgICAgICAgIlRPRE86IGh0dHA6Ly9hbmdsZWJ1Zy5jb20vNTc3MiBQaXhl
bCAyIGVycm9ycyB3aXRoICdGcmFtZWJ1ZmZlciBpcyBpbmNvbXBsZXRlJyBvbiAiCisgICAgICAg
ICAgICAgICAgIlZ1bGthbiIpOwogICAgICAgICB9CiAgICAgfQogCiAgICAgaWYgKHRyYWNlTmFt
ZUlzKCJyZWFsX2NyaWNrZXRfMjAiKSkKICAgICB7Ci0gICAgICAgIC8vIFRPRE86IGh0dHA6Ly9h
bmdsZWJ1Zy5jb20vNTc3NyBBUk0gZG9lc24ndCBoYXZlIGVub3VnaCBWUyBzdG9yYWdlIGJsb2Nr
cwogICAgICAgICBpZiAoSXNBbmRyb2lkKCkgJiYgSXNBUk0oKSkKICAgICAgICAgewotICAgICAg
ICAgICAgbVNraXBUZXN0ID0gdHJ1ZTsKKyAgICAgICAgICAgIHNraXBUZXN0KCJUT0RPOiBodHRw
Oi8vYW5nbGVidWcuY29tLzU3NzcgQVJNIGRvZXNuJ3QgaGF2ZSBlbm91Z2ggVlMgc3RvcmFnZSBi
bG9ja3MiKTsKICAgICAgICAgfQogICAgIH0KIApAQCAtOTIzLDEwICs5MTcsOSBAQCBUcmFjZVBl
cmZUZXN0OjpUcmFjZVBlcmZUZXN0KGNvbnN0IFRyYWNlUGVyZlBhcmFtcyAmcGFyYW1zKQogICAg
ICAgICBhZGRFeHRlbnNpb25QcmVyZXF1aXNpdGUoIkdMX09FU19FR0xfaW1hZ2VfZXh0ZXJuYWwi
KTsKICAgICAgICAgYWRkRXh0ZW5zaW9uUHJlcmVxdWlzaXRlKCJHTF9LSFJfdGV4dHVyZV9jb21w
cmVzc2lvbl9hc3RjX2xkciIpOwogCi0gICAgICAgIC8vIFRPRE86IGh0dHA6Ly9hbmdsZWJ1Zy5j
b20vNTgxNSBUcmFjZSBpcyBjcmFzaGluZyBvbiBJbnRlbCBMaW51eAogICAgICAgICBpZiAoSXNM
aW51eCgpICYmIElzSW50ZWwoKSAmJiBtUGFyYW1zLmlzVnVsa2FuKCkpCiAgICAgICAgIHsKLSAg
ICAgICAgICAgIG1Ta2lwVGVzdCA9IHRydWU7CisgICAgICAgICAgICBza2lwVGVzdCgiVE9ETzog
aHR0cDovL2FuZ2xlYnVnLmNvbS81ODE1IFRyYWNlIGlzIGNyYXNoaW5nIG9uIEludGVsIExpbnV4
Iik7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTkzNCwxMCArOTI3LDExIEBAIFRyYWNlUGVyZlRl
c3Q6OlRyYWNlUGVyZlRlc3QoY29uc3QgVHJhY2VQZXJmUGFyYW1zICZwYXJhbXMpCiAgICAgewog
ICAgICAgICBhZGRFeHRlbnNpb25QcmVyZXF1aXNpdGUoIkdMX0tIUl90ZXh0dXJlX2NvbXByZXNz
aW9uX2FzdGNfbGRyIik7CiAKLSAgICAgICAgLy8gVE9ETzogaHR0cDovL2FuZ2xlYnVnLmNvbS81
NTUzIFBpeGVsIDIgZXJyb3JzIHdpdGggIkZyYW1lYnVmZmVyIGlzIGluY29tcGxldGUiIG9uIFZ1
bGthbgogICAgICAgICBpZiAoSXNQaXhlbDIoKSAmJiBtUGFyYW1zLmlzVnVsa2FuKCkpCiAgICAg
ICAgIHsKLSAgICAgICAgICAgIG1Ta2lwVGVzdCA9IHRydWU7CisgICAgICAgICAgICBza2lwVGVz
dCgKKyAgICAgICAgICAgICAgICAiVE9ETzogaHR0cDovL2FuZ2xlYnVnLmNvbS81NTUzIFBpeGVs
IDIgZXJyb3JzIHdpdGggJ0ZyYW1lYnVmZmVyIGlzIGluY29tcGxldGUnIG9uICIKKyAgICAgICAg
ICAgICAgICAiVnVsa2FuIik7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTk0NSwyMSArOTM5LDIx
IEBAIFRyYWNlUGVyZlRlc3Q6OlRyYWNlUGVyZlRlc3QoY29uc3QgVHJhY2VQZXJmUGFyYW1zICZw
YXJhbXMpCiAgICAgewogICAgICAgICBhZGRFeHRlbnNpb25QcmVyZXF1aXNpdGUoIkdMX09FU19F
R0xfaW1hZ2VfZXh0ZXJuYWwiKTsKIAotICAgICAgICAvLyBUT0RPOiBodHRwOi8vYW5nbGVidWcu
Y29tLzU4MDcgSW50ZWwgTGludXggYW5kIFBpeGVsIDIgZXJyb3Igd2l0aCAiRnJhbWVidWZmZXIg
aXMKLSAgICAgICAgLy8gaW5jb21wbGV0ZSIgb24gVnVsa2FuCiAgICAgICAgIGlmICgoKElzTGlu
dXgoKSAmJiBJc0ludGVsKCkpIHx8IElzUGl4ZWwyKCkpICYmIG1QYXJhbXMuaXNWdWxrYW4oKSkK
ICAgICAgICAgewotICAgICAgICAgICAgbVNraXBUZXN0ID0gdHJ1ZTsKKyAgICAgICAgICAgIHNr
aXBUZXN0KAorICAgICAgICAgICAgICAgICJUT0RPOiBodHRwOi8vYW5nbGVidWcuY29tLzU4MDcg
SW50ZWwgTGludXggYW5kIFBpeGVsIDIgZXJyb3Igd2l0aCAnRnJhbWVidWZmZXIgaXMgIgorICAg
ICAgICAgICAgICAgICJpbmNvbXBsZXRlJyBvbiBWdWxrYW4iKTsKICAgICAgICAgfQogICAgIH0K
IAotICAgIC8vIEFkcmVubyBnaXZlcyBhIGRyaXZlciBlcnJvciB3aXRoIGVtcHR5L3NtYWxsIGRy
YXcgY2FsbHMuIGh0dHA6Ly9hbmdsZWJ1Zy5jb20vNTgyMwogICAgIGlmICh0cmFjZU5hbWVJcygi
aGlsbF9jbGltYl9yYWNpbmciKSB8fCB0cmFjZU5hbWVJcygiZGVhZF90cmlnZ2VyXzIiKSkKICAg
ICB7CiAgICAgICAgIGlmIChJc0FuZHJvaWQoKSAmJiAoSXNQaXhlbDIoKSB8fCBJc1BpeGVsNCgp
IHx8IElzUGl4ZWw0WEwoKSkgJiYKICAgICAgICAgICAgIG1QYXJhbXMuZHJpdmVyID09IEdMRVNE
cml2ZXJUeXBlOjpTeXN0ZW1FR0wpCiAgICAgICAgIHsKLSAgICAgICAgICAgIG1Ta2lwVGVzdCA9
IHRydWU7CisgICAgICAgICAgICBza2lwVGVzdCgKKyAgICAgICAgICAgICAgICAiaHR0cDovL2Fu
Z2xlYnVnLmNvbS81ODIzIEFkcmVubyBnaXZlcyBhIGRyaXZlciBlcnJvciB3aXRoIGVtcHR5L3Nt
YWxsIGRyYXcgY2FsbHMiKTsKICAgICAgICAgfQogICAgIH0KIApAQCAtOTcwLDMwICs5NjQsMzAg
QEAgVHJhY2VQZXJmVGVzdDo6VHJhY2VQZXJmVGVzdChjb25zdCBUcmFjZVBlcmZQYXJhbXMgJnBh
cmFtcykKIAogICAgIGlmICh0cmFjZU5hbWVJcygicHJvZmVzc2lvbmFsX2Jhc2ViYWxsX3NwaXJp
dHMiKSkKICAgICB7Ci0gICAgICAgIC8vIFRPRE8oaHR0cHM6Ly9hbmdsZWJ1Zy5jb20vNTgyNykg
TGludXgrTWVzYS9SQURWIFZ1bGthbiBnZW5lcmF0ZXMKLSAgICAgICAgLy8gR0xfSU5WQUxJRF9G
UkFNRUJVRkZFUl9PUEVSQVRJT04uCi0gICAgICAgIC8vIE1lc2EgdmVyc2lvbnMgYmVsb3cgMjAu
My41IHByb2R1Y2UgdGhlIHNhbWUgaXNzdWUgb24gTGludXgrTWVzYS9JbnRlbCBWdWxrYW4KICAg
ICAgICAgaWYgKElzTGludXgoKSAmJiAoSXNBTUQoKSB8fCBJc0ludGVsKCkpICYmIG1QYXJhbXMu
aXNWdWxrYW4oKSAmJiAhbVBhcmFtcy5pc1N3aWZ0c2hhZGVyKCkpCiAgICAgICAgIHsKLSAgICAg
ICAgICAgIG1Ta2lwVGVzdCA9IHRydWU7CisgICAgICAgICAgICBza2lwVGVzdCgKKyAgICAgICAg
ICAgICAgICAiVE9ETzogaHR0cHM6Ly9hbmdsZWJ1Zy5jb20vNTgyNyBMaW51eCtNZXNhL1JBRFYg
VnVsa2FuIGdlbmVyYXRlcyAiCisgICAgICAgICAgICAgICAgIkdMX0lOVkFMSURfRlJBTUVCVUZG
RVJfT1BFUkFUSU9OLiBNZXNhIHZlcnNpb25zIGJlbG93IDIwLjMuNSBwcm9kdWNlIHRoZSBzYW1l
ICIKKyAgICAgICAgICAgICAgICAiaXNzdWUgb24gTGludXgrTWVzYS9JbnRlbCBWdWxrYW4iKTsK
ICAgICAgICAgfQogICAgIH0KIAogICAgIGlmICh0cmFjZU5hbWVJcygiY2FsbF9icmVha19vZmZs
aW5lX2NhcmRfZ2FtZSIpKQogICAgIHsKLSAgICAgICAgLy8gVE9ETzogaHR0cDovL2FuZ2xlYnVn
LmNvbS81ODM3IEludGVsIExpbnV4IFZ1bGthbiBlcnJvcnMgd2l0aCAiRnJhbWVidWZmZXIgaXMg
aW5jb21wbGV0ZSIKICAgICAgICAgaWYgKChJc0xpbnV4KCkgJiYgSXNJbnRlbCgpKSAmJiBtUGFy
YW1zLmlzVnVsa2FuKCkpCiAgICAgICAgIHsKLSAgICAgICAgICAgIG1Ta2lwVGVzdCA9IHRydWU7
CisgICAgICAgICAgICBza2lwVGVzdCgKKyAgICAgICAgICAgICAgICAiVE9ETzogaHR0cDovL2Fu
Z2xlYnVnLmNvbS81ODM3IEludGVsIExpbnV4IFZ1bGthbiBlcnJvcnMgd2l0aCAnRnJhbWVidWZm
ZXIgaXMgIgorICAgICAgICAgICAgICAgICJpbmNvbXBsZXRlJyIpOwogICAgICAgICB9CiAgICAg
fQogCiAgICAgaWYgKHRyYWNlTmFtZUlzKCJzbGluZ3Nob3RfdGVzdDEiKSB8fCB0cmFjZU5hbWVJ
cygic2xpbmdzaG90X3Rlc3QyIikpCiAgICAgewotICAgICAgICAvLyBUT0RPOiBodHRwOi8vYW5n
bGVidWcuY29tLzU4NzcgVHJhY2UgY3Jhc2hlcyBvbiBQaXhlbCAyIGluIHZ1bGthbiBkcml2ZXIK
ICAgICAgICAgaWYgKElzUGl4ZWwyKCkgJiYgbVBhcmFtcy5pc1Z1bGthbigpKQogICAgICAgICB7
Ci0gICAgICAgICAgICBtU2tpcFRlc3QgPSB0cnVlOworICAgICAgICAgICAgc2tpcFRlc3QoIlRP
RE86IGh0dHA6Ly9hbmdsZWJ1Zy5jb20vNTg3NyBUcmFjZSBjcmFzaGVzIG9uIFBpeGVsIDIgaW4g
dnVsa2FuIGRyaXZlciIpOwogICAgICAgICB9CiAgICAgfQogCkBAIC0xMDAyLDEyICs5OTYsMTEg
QEAgVHJhY2VQZXJmVGVzdDo6VHJhY2VQZXJmVGVzdChjb25zdCBUcmFjZVBlcmZQYXJhbXMgJnBh
cmFtcykKICAgICAgICAgYWRkRXh0ZW5zaW9uUHJlcmVxdWlzaXRlKCJHTF9LSFJfdGV4dHVyZV9j
b21wcmVzc2lvbl9hc3RjX2xkciIpOwogICAgIH0KIAotICAgIC8vIFRPRE86IGh0dHA6Ly9hbmds
ZWJ1Zy5jb20vNTk0MyBHTF9JTlZBTElEX0VOVU0gb24gV2luZG93cy9JbnRlbC4KICAgICBpZiAo
dHJhY2VOYW1lSXMoInN1bW1vbmVyc193YXIiKSkKICAgICB7CiAgICAgICAgIGlmIChJc1dpbmRv
d3MoKSAmJiBJc0ludGVsKCkgJiYgbVBhcmFtcy5kcml2ZXIgIT0gR0xFU0RyaXZlclR5cGU6OkFu
Z2xlRUdMKQogICAgICAgICB7Ci0gICAgICAgICAgICBtU2tpcFRlc3QgPSB0cnVlOworICAgICAg
ICAgICAgc2tpcFRlc3QoIlRPRE86IGh0dHA6Ly9hbmdsZWJ1Zy5jb20vNTk0MyBHTF9JTlZBTElE
X0VOVU0gb24gV2luZG93cy9JbnRlbCIpOwogICAgICAgICB9CiAgICAgfQogCkBAIC0xMDE2LDEx
ICsxMDA5LDE0IEBAIFRyYWNlUGVyZlRlc3Q6OlRyYWNlUGVyZlRlc3QoY29uc3QgVHJhY2VQZXJm
UGFyYW1zICZwYXJhbXMpCiAgICAgICAgIGFkZEV4dGVuc2lvblByZXJlcXVpc2l0ZSgiR0xfRVhU
X3RleHR1cmVfY3ViZV9tYXBfYXJyYXkiKTsKICAgICAgICAgYWRkRXh0ZW5zaW9uUHJlcmVxdWlz
aXRlKCJHTF9LSFJfdGV4dHVyZV9jb21wcmVzc2lvbl9hc3RjX2xkciIpOwogCi0gICAgICAgIC8v
IFRPRE86IGh0dHA6Ly9hbmdsZWJ1Zy5jb20vNTk4OSBJbnRlbCBMaW51eCBjcmFzaGluZyBvbiB0
ZWFyZG93bgotICAgICAgICAvLyBUT0RPOiBodHRwOi8vYW5nbGVidWcuY29tLzU5OTQgSW50ZWwg
V2luZG93cyB0aW1pbmcgb3V0IHBlcmlvZGljYWxseQotICAgICAgICBpZiAoKElzTGludXgoKSB8
fCBJc1dpbmRvd3MoKSkgJiYgSXNJbnRlbCgpICYmIG1QYXJhbXMuaXNWdWxrYW4oKSkKKyAgICAg
ICAgaWYgKElzTGludXgoKSAmJiBJc0ludGVsKCkgJiYgbVBhcmFtcy5pc1Z1bGthbigpKQorICAg
ICAgICB7CisgICAgICAgICAgICBza2lwVGVzdCgiVE9ETzogaHR0cDovL2FuZ2xlYnVnLmNvbS81
OTg5IEludGVsIExpbnV4IGNyYXNoaW5nIG9uIHRlYXJkb3duIik7CisgICAgICAgIH0KKworICAg
ICAgICBpZiAoSXNXaW5kb3dzKCkgJiYgSXNJbnRlbCgpICYmIG1QYXJhbXMuaXNWdWxrYW4oKSkK
ICAgICAgICAgewotICAgICAgICAgICAgbVNraXBUZXN0ID0gdHJ1ZTsKKyAgICAgICAgICAgIHNr
aXBUZXN0KCJUT0RPOiBodHRwOi8vYW5nbGVidWcuY29tLzU5OTQgSW50ZWwgV2luZG93cyB0aW1p
bmcgb3V0IHBlcmlvZGljYWxseSIpOwogICAgICAgICB9CiAgICAgfQogCkBAIC0xMDI5LDEwICsx
MDI1LDkgQEAgVHJhY2VQZXJmVGVzdDo6VHJhY2VQZXJmVGVzdChjb25zdCBUcmFjZVBlcmZQYXJh
bXMgJnBhcmFtcykKICAgICAgICAgYWRkRXh0ZW5zaW9uUHJlcmVxdWlzaXRlKCJHTF9FWFRfdGV4
dHVyZV9jdWJlX21hcF9hcnJheSIpOwogICAgICAgICBhZGRFeHRlbnNpb25QcmVyZXF1aXNpdGUo
IkdMX09FU19FR0xfaW1hZ2VfZXh0ZXJuYWwiKTsKIAotICAgICAgICAvLyBUT0RPOiBodHRwOi8v
YW5nbGVidWcuY29tLzYwMTcgQVJNIGRvZXNuJ3QgaGF2ZSBlbm91Z2ggVlMgc3RvcmFnZSBibG9j
a3MKICAgICAgICAgaWYgKElzQW5kcm9pZCgpICYmIElzQVJNKCkpCiAgICAgICAgIHsKLSAgICAg
ICAgICAgIG1Ta2lwVGVzdCA9IHRydWU7CisgICAgICAgICAgICBza2lwVGVzdCgiVE9ETzogaHR0
cDovL2FuZ2xlYnVnLmNvbS82MDE3IEFSTSBkb2Vzbid0IGhhdmUgZW5vdWdoIFZTIHN0b3JhZ2Ug
YmxvY2tzIik7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTEwNDAsMjYgKzEwMzUsMjcgQEAgVHJh
Y2VQZXJmVGVzdDo6VHJhY2VQZXJmVGVzdChjb25zdCBUcmFjZVBlcmZQYXJhbXMgJnBhcmFtcykK
ICAgICB7CiAgICAgICAgIGFkZEV4dGVuc2lvblByZXJlcXVpc2l0ZSgiR0xfS0hSX3RleHR1cmVf
Y29tcHJlc3Npb25fYXN0Y19sZHIiKTsKIAotICAgICAgICAvLyBUT0RPOiBodHRwOi8vYW5nbGVi
dWcuY29tLzYwMjMgQ3Jhc2hlcyBvbiBQaXhlbCAyIGluIHZ1bGthbiBkcml2ZXIKLSAgICAgICAg
Ly8gVE9ETzogaHR0cDovL2FuZ2xlYnVnLmNvbS82MDI5IENyYXNoZXMgb24gTGludXggSW50ZWwg
VnVsa2FuCi0gICAgICAgIGlmICgoKElzTGludXgoKSAmJiBJc0ludGVsKCkpIHx8IElzUGl4ZWwy
KCkpICYmIG1QYXJhbXMuaXNWdWxrYW4oKSkKKyAgICAgICAgaWYgKElzUGl4ZWwyKCkgJiYgbVBh
cmFtcy5pc1Z1bGthbigpKQorICAgICAgICB7CisgICAgICAgICAgICBza2lwVGVzdCgiVE9ETzog
aHR0cDovL2FuZ2xlYnVnLmNvbS82MDIzIENyYXNoZXMgb24gUGl4ZWwgMiBpbiB2dWxrYW4gZHJp
dmVyIik7CisgICAgICAgIH0KKworICAgICAgICBpZiAoKElzTGludXgoKSAmJiBJc0ludGVsKCkp
ICYmIG1QYXJhbXMuaXNWdWxrYW4oKSkKICAgICAgICAgewotICAgICAgICAgICAgbVNraXBUZXN0
ID0gdHJ1ZTsKKyAgICAgICAgICAgIHNraXBUZXN0KCJUT0RPOiBodHRwOi8vYW5nbGVidWcuY29t
LzYwMjkgQ3Jhc2hlcyBvbiBMaW51eCBJbnRlbCBWdWxrYW4iKTsKICAgICAgICAgfQogCi0gICAg
ICAgIC8vIEdlbnNoaW4gaXMgdG9vIGxhcmdlIHRvIGhhbmRsZSBpbiAzMi1iaXQgbW9kZS4KICAg
ICAgICAgaWYgKCFJczY0Qml0KCkpCiAgICAgICAgIHsKLSAgICAgICAgICAgIG1Ta2lwVGVzdCA9
IHRydWU7CisgICAgICAgICAgICBza2lwVGVzdCgiR2Vuc2hpbiBpcyB0b28gbGFyZ2UgdG8gaGFu
ZGxlIGluIDMyLWJpdCBtb2RlIik7CiAgICAgICAgIH0KICAgICB9CiAKICAgICBpZiAodHJhY2VO
YW1lSXMoIm1hcmlvX2thcnRfdG91ciIpKQogICAgIHsKLSAgICAgICAgLy8gRmFpbHMgb24gbmF0
aXZlIE1lc2EuIGh0dHA6Ly9hbmdsZWJ1Zy5jb20vNjcxMQogICAgICAgICBpZiAoSXNMaW51eCgp
ICYmIElzSW50ZWwoKSAmJiAhbVBhcmFtcy5pc1Z1bGthbigpKQogICAgICAgICB7Ci0gICAgICAg
ICAgICBtU2tpcFRlc3QgPSB0cnVlOworICAgICAgICAgICAgc2tpcFRlc3QoImh0dHA6Ly9hbmds
ZWJ1Zy5jb20vNjcxMSBGYWlscyBvbiBuYXRpdmUgTWVzYSIpOwogICAgICAgICB9CiAgICAgfQog
CkBAIC0xMDY3LDE5ICsxMDYzLDE3IEBAIFRyYWNlUGVyZlRlc3Q6OlRyYWNlUGVyZlRlc3QoY29u
c3QgVHJhY2VQZXJmUGFyYW1zICZwYXJhbXMpCiAgICAgewogICAgICAgICBhZGRFeHRlbnNpb25Q
cmVyZXF1aXNpdGUoIkdMX0VYVF90ZXh0dXJlX2J1ZmZlciIpOwogCi0gICAgICAgIC8vIFRPRE86
IGh0dHA6Ly9hbmdsZWJ1Zy5jb20vNjI0MCBJbnRlcm5hbCBlcnJvcnMgb24gV2luZG93cy9JbnRl
bCBhbmQgTlZJRElBCiAgICAgICAgIGlmICgoKElzV2luZG93cygpICYmIElzSW50ZWwoKSkgfHwg
SXNOVklESUEoKSkgJiYgIW1QYXJhbXMuaXNWdWxrYW4oKSkKICAgICAgICAgewotICAgICAgICAg
ICAgbVNraXBUZXN0ID0gdHJ1ZTsKKyAgICAgICAgICAgIHNraXBUZXN0KCJUT0RPOiBodHRwOi8v
YW5nbGVidWcuY29tLzYyNDAgSW50ZXJuYWwgZXJyb3JzIG9uIFdpbmRvd3MvSW50ZWwgYW5kIE5W
SURJQSIpOwogICAgICAgICB9CiAgICAgfQogCiAgICAgaWYgKHRyYWNlTmFtZUlzKCJzYWt1cmFf
c2Nob29sX3NpbXVsYXRvciIpKQogICAgIHsKLSAgICAgICAgLy8gRmxha3kgb24gSW50ZWwuIGh0
dHA6Ly9hbmdsZWJ1Zy5jb20vNjI5NAogICAgICAgICBpZiAoSXNXaW5kb3dzKCkgJiYgSXNJbnRl
bCgpKQogICAgICAgICB7Ci0gICAgICAgICAgICBtU2tpcFRlc3QgPSB0cnVlOworICAgICAgICAg
ICAgc2tpcFRlc3QoImh0dHA6Ly9hbmdsZWJ1Zy5jb20vNjI5NCBGbGFreSBvbiBJbnRlbCIpOwog
ICAgICAgICB9CiAgICAgfQogCkBAIC0xMDkxLDEwICsxMDg1LDkgQEAgVHJhY2VQZXJmVGVzdDo6
VHJhY2VQZXJmVGVzdChjb25zdCBUcmFjZVBlcmZQYXJhbXMgJnBhcmFtcykKICAgICBpZiAodHJh
Y2VOYW1lSXMoIndvcmxkX29mX2tpbmdzIikpCiAgICAgewogICAgICAgICBhZGRFeHRlbnNpb25Q
cmVyZXF1aXNpdGUoIkdMX09FU19FR0xfaW1hZ2VfZXh0ZXJuYWwiKTsKLSAgICAgICAgLy8gRmxh
a3kgb24gSW50ZWwuIGh0dHA6Ly9hbmdsZWJ1Zy5jb20vNjM3MgogICAgICAgICBpZiAoSXNXaW5k
b3dzKCkgJiYgSXNJbnRlbCgpKQogICAgICAgICB7Ci0gICAgICAgICAgICBtU2tpcFRlc3QgPSB0
cnVlOworICAgICAgICAgICAgc2tpcFRlc3QoImh0dHA6Ly9hbmdsZWJ1Zy5jb20vNjM3MiBGbGFr
eSBvbiBJbnRlbCIpOwogICAgICAgICB9CiAgICAgfQogCkBAIC0xMTA1LDExICsxMDk4LDExIEBA
IFRyYWNlUGVyZlRlc3Q6OlRyYWNlUGVyZlRlc3QoY29uc3QgVHJhY2VQZXJmUGFyYW1zICZwYXJh
bXMpCiAKICAgICBpZiAodHJhY2VOYW1lSXMoIm1pbmlfd29ybGQiKSkKICAgICB7Ci0gICAgICAg
IC8vIFRPRE86IGh0dHA6Ly9hbmdsZWJ1Zy5jb20vNjQ0MyBWdWxrYW4gVGVzdCBmYWlsdXJlIG9u
IFBpeGVsNFhMIGR1ZSB0byB2dWxrYW4gdmFsaWRhdGlvbgotICAgICAgICAvLyBlcnJvciBWVUlE
LXZrRGVzdHJveUJ1ZmZlci1idWZmZXItMDA5MjIKICAgICAgICAgaWYgKElzUXVhbGNvbW0oKSAm
JiBtUGFyYW1zLmlzVnVsa2FuKCkpCiAgICAgICAgIHsKLSAgICAgICAgICAgIG1Ta2lwVGVzdCA9
IHRydWU7CisgICAgICAgICAgICBza2lwVGVzdCgKKyAgICAgICAgICAgICAgICAiVE9ETzogaHR0
cDovL2FuZ2xlYnVnLmNvbS82NDQzIFZ1bGthbiBUZXN0IGZhaWx1cmUgb24gUGl4ZWw0WEwgZHVl
IHRvIHZ1bGthbiAiCisgICAgICAgICAgICAgICAgInZhbGlkYXRpb24gZXJyb3IgVlVJRC12a0Rl
c3Ryb3lCdWZmZXItYnVmZmVyLTAwOTIyIik7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTExMTcs
MTEgKzExMTAsMTEgQEAgVHJhY2VQZXJmVGVzdDo6VHJhY2VQZXJmVGVzdChjb25zdCBUcmFjZVBl
cmZQYXJhbXMgJnBhcmFtcykKICAgICB7CiAgICAgICAgIGFkZEV4dGVuc2lvblByZXJlcXVpc2l0
ZSgiR0xfS0hSX3RleHR1cmVfY29tcHJlc3Npb25fYXN0Y19sZHIiKTsKIAotICAgICAgICAvLyBo
dHRwOi8vYW5nbGVidWcuY29tLzY1NDggLSBub25kZXRlcm1pbmlzdGljIG9uIEludGVsK1dpbmRv
d3MKLSAgICAgICAgLy8gQ3Jhc2hlcyBvbiBMaW51eCBJbnRlbAogICAgICAgICBpZiAoSXNJbnRl
bCgpKQogICAgICAgICB7Ci0gICAgICAgICAgICBtU2tpcFRlc3QgPSB0cnVlOworICAgICAgICAg
ICAgc2tpcFRlc3QoCisgICAgICAgICAgICAgICAgImh0dHA6Ly9hbmdsZWJ1Zy5jb20vNjU0OCBu
b25kZXRlcm1pbmlzdGljIG9uIEludGVsK1dpbmRvd3MuIENyYXNoZXMgb24gTGludXggIgorICAg
ICAgICAgICAgICAgICJJbnRlbCIpOwogICAgICAgICB9CiAgICAgfQogCkBAIC0xMTI5LDIwICsx
MTIyLDE4IEBAIFRyYWNlUGVyZlRlc3Q6OlRyYWNlUGVyZlRlc3QoY29uc3QgVHJhY2VQZXJmUGFy
YW1zICZwYXJhbXMpCiAgICAgewogICAgICAgICBhZGRFeHRlbnNpb25QcmVyZXF1aXNpdGUoIkdM
X0tIUl90ZXh0dXJlX2NvbXByZXNzaW9uX2FzdGNfbGRyIik7CiAKLSAgICAgICAgLy8gaHR0cDov
L2FuZ2xlYnVnLmNvbS82NjU3IC0gTmF0aXZlIHRlc3QgdGltaW5nIG91dCBvbiBJbnRlbCBMaW51
eAogICAgICAgICBpZiAoSXNMaW51eCgpICYmIElzSW50ZWwoKSAmJiAhbVBhcmFtcy5pc1Z1bGth
bigpKQogICAgICAgICB7Ci0gICAgICAgICAgICBtU2tpcFRlc3QgPSB0cnVlOworICAgICAgICAg
ICAgc2tpcFRlc3QoImh0dHA6Ly9hbmdsZWJ1Zy5jb20vNjY1NyBOYXRpdmUgdGVzdCB0aW1pbmcg
b3V0IG9uIEludGVsIExpbnV4Iik7CiAgICAgICAgIH0KICAgICB9CiAKICAgICBpZiAodHJhY2VO
YW1lSXMoInppbGxvdyIpKQogICAgIHsKLSAgICAgICAgLy8gaHR0cDovL2FuZ2xlYnVnLmNvbS82
NjU4IC0gQ3Jhc2hpbmcgaW4gVnVsa2FuIGJhY2tlbmQKICAgICAgICAgaWYgKChJc0xpbnV4KCkg
fHwgSXNXaW5kb3dzKCkpICYmIElzTlZJRElBKCkgJiYKICAgICAgICAgICAgIG1QYXJhbXMuZHJp
dmVyID09IEdMRVNEcml2ZXJUeXBlOjpBbmdsZUVHTCAmJiAhbVBhcmFtcy5pc1N3aWZ0c2hhZGVy
KCkpCiAgICAgICAgIHsKLSAgICAgICAgICAgIG1Ta2lwVGVzdCA9IHRydWU7CisgICAgICAgICAg
ICBza2lwVGVzdCgiaHR0cDovL2FuZ2xlYnVnLmNvbS82NjU4IENyYXNoaW5nIGluIFZ1bGthbiBi
YWNrZW5kIik7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTExNTgsMTAgKzExNDksOSBAQCBUcmFj
ZVBlcmZUZXN0OjpUcmFjZVBlcmZUZXN0KGNvbnN0IFRyYWNlUGVyZlBhcmFtcyAmcGFyYW1zKQog
CiAgICAgaWYgKHRyYWNlTmFtZUlzKCJwdWJnX21vYmlsZV9sYXVuY2giKSkKICAgICB7Ci0gICAg
ICAgIC8vIGh0dHA6Ly9hbmdsZWJ1Zy5jb20vNjg1MCAtIENyYXNoaW5nIGluIE52aWRpYSBHTEVT
IGRyaXZlci4KICAgICAgICAgaWYgKElzTGludXgoKSAmJiBJc05WSURJQSgpICYmIG1QYXJhbXMu
ZHJpdmVyICE9IEdMRVNEcml2ZXJUeXBlOjpBbmdsZUVHTCkKICAgICAgICAgewotICAgICAgICAg
ICAgbVNraXBUZXN0ID0gdHJ1ZTsKKyAgICAgICAgICAgIHNraXBUZXN0KCJodHRwOi8vYW5nbGVi
dWcuY29tLzY4NTAgQ3Jhc2hpbmcgaW4gTnZpZGlhIEdMRVMgZHJpdmVyIik7CiAgICAgICAgIH0K
ICAgICB9CiAKQEAgLTExODMsMTEgKzExNzMsMTEgQEAgVHJhY2VQZXJmVGVzdDo6VHJhY2VQZXJm
VGVzdChjb25zdCBUcmFjZVBlcmZQYXJhbXMgJnBhcmFtcykKIAogICAgIGlmICh0cmFjZU5hbWVJ
cygibWFydmVsX3N0cmlrZV9mb3JjZSIpKQogICAgIHsKLSAgICAgICAgLy8gaHR0cDovL2FuZ2xl
YnVnLmNvbS83MDE3IC0gUXVhbGNvbW0gbmF0aXZlIGRyaXZlciBnZXRzIGNvbmZ1c2VkIGFib3V0
IHRoZSBzdGF0ZSBvZiBhCi0gICAgICAgIC8vIGJ1ZmZlciB0aGF0IHdhcyByZWNyZWF0ZWQgZHVy
aW5nIHRoZSB0cmFjZQogICAgICAgICBpZiAoKElzQW5kcm9pZCgpICYmIElzUXVhbGNvbW0oKSkg
JiYgbVBhcmFtcy5kcml2ZXIgIT0gR0xFU0RyaXZlclR5cGU6OkFuZ2xlRUdMKQogICAgICAgICB7
Ci0gICAgICAgICAgICBtU2tpcFRlc3QgPSB0cnVlOworICAgICAgICAgICAgc2tpcFRlc3QoCisg
ICAgICAgICAgICAgICAgImh0dHA6Ly9hbmdsZWJ1Zy5jb20vNzAxNyBRdWFsY29tbSBuYXRpdmUg
ZHJpdmVyIGdldHMgY29uZnVzZWQgYWJvdXQgdGhlIHN0YXRlIG9mICIKKyAgICAgICAgICAgICAg
ICAiYSBidWZmZXIgdGhhdCB3YXMgcmVjcmVhdGVkIGR1cmluZyB0aGUgdHJhY2UiKTsKICAgICAg
ICAgfQogICAgIH0KIApAQCAtMTIwMyw2ICsxMTkzLDM1IEBAIFRyYWNlUGVyZlRlc3Q6OlRyYWNl
UGVyZlRlc3QoY29uc3QgVHJhY2VQZXJmUGFyYW1zICZwYXJhbXMpCiAgICAgICAgIGFkZEV4dGVu
c2lvblByZXJlcXVpc2l0ZSgiR0xfS0hSX3RleHR1cmVfY29tcHJlc3Npb25fYXN0Y19sZHIiKTsK
ICAgICB9CiAKKyAgICBpZiAodHJhY2VOYW1lSXMoInNjYXJ5X3RlYWNoZXJfM2QiKSkKKyAgICB7
CisgICAgICAgIGFkZEV4dGVuc2lvblByZXJlcXVpc2l0ZSgiR0xfS0hSX3RleHR1cmVfY29tcHJl
c3Npb25fYXN0Y19sZHIiKTsKKyAgICB9CisKKyAgICBpZiAodHJhY2VOYW1lSXMoImNhcl9jaGFz
ZSIpKQorICAgIHsKKyAgICAgICAgaWYgKElzV2luZG93cygpICYmIElzSW50ZWwoKSkKKyAgICAg
ICAgeworICAgICAgICAgICAgc2tpcFRlc3QoImh0dHA6Ly9hbmdsZWJ1Zy5jb20vNzE3MyBGYWls
cyBvbiBJbnRlbCBIRCA2MzAgTW9iaWxlIik7CisgICAgICAgIH0KKworICAgICAgICBhZGRFeHRl
bnNpb25QcmVyZXF1aXNpdGUoIkdMX0VYVF9nZW9tZXRyeV9zaGFkZXIiKTsKKyAgICAgICAgYWRk
RXh0ZW5zaW9uUHJlcmVxdWlzaXRlKCJHTF9FWFRfcHJpbWl0aXZlX2JvdW5kaW5nX2JveCIpOwor
ICAgICAgICBhZGRFeHRlbnNpb25QcmVyZXF1aXNpdGUoIkdMX0VYVF90ZXNzZWxsYXRpb25fc2hh
ZGVyIik7CisgICAgICAgIGFkZEV4dGVuc2lvblByZXJlcXVpc2l0ZSgiR0xfS0hSX3RleHR1cmVf
Y29tcHJlc3Npb25fYXN0Y19sZHIiKTsKKyAgICAgICAgYWRkRXh0ZW5zaW9uUHJlcmVxdWlzaXRl
KCJHTF9FWFRfdGV4dHVyZV9jdWJlX21hcF9hcnJheSIpOworICAgIH0KKworICAgIGlmICh0cmFj
ZU5hbWVJcygiYXp0ZWNfcnVpbnNfaGlnaCIpKQorICAgIHsKKyAgICAgICAgYWRkRXh0ZW5zaW9u
UHJlcmVxdWlzaXRlKCJHTF9LSFJfdGV4dHVyZV9jb21wcmVzc2lvbl9hc3RjX2xkciIpOworICAg
IH0KKworICAgIGlmICh0cmFjZU5hbWVJcygic3BlY2lhbF9mb3JjZXNfZ3JvdXBfMiIpKQorICAg
IHsKKyAgICAgICAgYWRkRXh0ZW5zaW9uUHJlcmVxdWlzaXRlKCJHTF9FWFRfdGV4dHVyZV9idWZm
ZXIiKTsKKyAgICB9CisKICAgICBBU1NFUlQobVBhcmFtcy5zdXJmYWNlVHlwZSA9PSBTdXJmYWNl
VHlwZTo6V2luZG93IHx8IGdFbmFibGVBbGxUcmFjZVRlc3RzKTsKICAgICBBU1NFUlQobVBhcmFt
cy5lZ2xQYXJhbWV0ZXJzLmRldmljZVR5cGUgPT0gRUdMX1BMQVRGT1JNX0FOR0xFX0RFVklDRV9U
WVBFX0hBUkRXQVJFX0FOR0xFIHx8CiAgICAgICAgICAgIGdFbmFibGVBbGxUcmFjZVRlc3RzKTsK
QEAgLTEyNDEsOCArMTI2MCw4IEBAIHZvaWQgVHJhY2VQZXJmVGVzdDo6aW5pdGlhbGl6ZUJlbmNo
bWFyaygpCiAKICAgICBpZiAoIW1UcmFjZUxpYnJhcnktPnZhbGlkKCkpCiAgICAgewotICAgICAg
ICBtU2tpcFRlc3QgPSB0cnVlOwotICAgICAgICBGQUlMKCkgPDwgIkNvdWxkIG5vdCBsb2FkIHRy
YWNlIGxpYnJhcnkuIjsKKyAgICAgICAgZmFpbFRlc3QoIkNvdWxkIG5vdCBsb2FkIHRyYWNlIGxp
YnJhcnkuIik7CisgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBtU3RhcnRGcmFtZSA9IHRy
YWNlSW5mby5mcmFtZVN0YXJ0OwpAQCAtMTI1NCw4ICsxMjczLDggQEAgdm9pZCBUcmFjZVBlcmZU
ZXN0Ojppbml0aWFsaXplQmVuY2htYXJrKCkKICAgICBjaGFyIHRlc3REYXRhRGlyW2tNYXhQYXRo
XSA9IHt9OwogICAgIGlmICghRmluZFRyYWNlVGVzdERhdGFQYXRoKHRyYWNlSW5mby5uYW1lLCB0
ZXN0RGF0YURpciwga01heFBhdGgpKQogICAgIHsKLSAgICAgICAgbVNraXBUZXN0ID0gdHJ1ZTsK
LSAgICAgICAgRkFJTCgpIDw8ICJDb3VsZCBub3QgZmluZCB0ZXN0IGRhdGEgZm9sZGVyLiI7Cisg
ICAgICAgIGZhaWxUZXN0KCJDb3VsZCBub3QgZmluZCB0ZXN0IGRhdGEgZm9sZGVyLiIpOworICAg
ICAgICByZXR1cm47CiAgICAgfQogCiAgICAgbVRyYWNlTGlicmFyeS0+c2V0QmluYXJ5RGF0YURp
cih0ZXN0RGF0YURpcik7CkBAIC0xOTIyLDcgKzE5NDEsOCBAQCB2b2lkIFRyYWNlUGVyZlRlc3Q6
OnNhdmVTY3JlZW5zaG90KGNvbnN0IHN0ZDo6c3RyaW5nICZzY3JlZW5zaG90TmFtZSkKICAgICBp
ZiAoIWFuZ2xlOjpTYXZlUE5HUkdCKHNjcmVlbnNob3ROYW1lLmNfc3RyKCksICJBTkdMRSBTY3Jl
ZW5zaG90IiwgbVRlc3RQYXJhbXMud2luZG93V2lkdGgsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBtVGVzdFBhcmFtcy53aW5kb3dIZWlnaHQsIHJnYkRhdGEpKQogICAgIHsKLSAgICAgICAg
RkFJTCgpIDw8ICJFcnJvciBzYXZpbmcgc2NyZWVuc2hvdDogIiA8PCBzY3JlZW5zaG90TmFtZTsK
KyAgICAgICAgZmFpbFRlc3Qoc3RkOjpzdHJpbmcoIkVycm9yIHNhdmluZyBzY3JlZW5zaG90OiAi
KSArIHNjcmVlbnNob3ROYW1lKTsKKyAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBlbHNlCiAg
ICAgewpAQCAtMjA0OCwxMCArMjA2OCwxMCBAQCB2b2lkIFJlZ2lzdGVyVHJhY2VUZXN0cygpCiAg
ICAgICAgIGlmIChnVHJhY2VUZXN0VmFsaWRhdGlvbikKICAgICAgICAgewogICAgICAgICAgICAg
Ly8gRW5hYmxlIGxpbWl0cyB3aGVuIHZhbGlkYXRpbmcgdHJhY2VzIGJlY2F1c2Ugd2UgdXN1YWxs
eSB0dXJuIG9mZiBjYXB0dXJlLgotICAgICAgICAgICAgb3ZlcnJpZGVQYXJhbXMuZWdsUGFyYW1l
dGVycy5jYXB0dXJlTGltaXRzID0gRUdMX1RSVUU7CisgICAgICAgICAgICBvdmVycmlkZVBhcmFt
cy5lZ2xQYXJhbWV0ZXJzLmVuYWJsZShGZWF0dXJlOjpFbmFibGVDYXB0dXJlTGltaXRzKTsKIAog
ICAgICAgICAgICAgLy8gVGhpcyBmZWF0dXJlIHNob3VsZCBhbHNvIGJlIGVuYWJsZWQgaW4gY2Fw
dHVyZSB0byBtaXJyb3IgdGhlIHJlcGxheS4KLSAgICAgICAgICAgIG92ZXJyaWRlUGFyYW1zLmVn
bFBhcmFtZXRlcnMuZm9yY2VJbml0U2hhZGVyVmFyaWFibGVzID0gRUdMX1RSVUU7CisgICAgICAg
ICAgICBvdmVycmlkZVBhcmFtcy5lZ2xQYXJhbWV0ZXJzLmVuYWJsZShGZWF0dXJlOjpGb3JjZUlu
aXRTaGFkZXJWYXJpYWJsZXMpOwogICAgICAgICB9CiAKICAgICAgICAgYXV0byBmYWN0b3J5ICAg
ICAgICAgID0gW292ZXJyaWRlUGFyYW1zXSgpIHsgcmV0dXJuIG5ldyBUcmFjZVBlcmZUZXN0KG92
ZXJyaWRlUGFyYW1zKTsgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3Ny
Yy90ZXN0cy9wZXJmX3Rlc3RzL1VuaWZvcm1zUGVyZi5jcHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9B
TkdMRS9zcmMvdGVzdHMvcGVyZl90ZXN0cy9Vbmlmb3Jtc1BlcmYuY3BwCmluZGV4IDg4YTlkOTZh
ZmQxMjFiNjRlY2M1NjNhYTgwMDc0OTM2MGI0ZjE2YTcuLjNlM2QzMTZlZWJlY2UwYzEzMDIzNmRj
MmE0ZGU2NWU3NGIzZTEwMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3Ny
Yy90ZXN0cy9wZXJmX3Rlc3RzL1VuaWZvcm1zUGVyZi5jcHAKKysrIGIvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvc3JjL3Rlc3RzL3BlcmZfdGVzdHMvVW5pZm9ybXNQZXJmLmNwcApAQCAtMTcxLDEx
ICsxNzEsMTIgQEAgc3RkOjp2ZWN0b3I8TWF0cml4ND4gR2VuTWF0cml4RGF0YShzaXplX3QgY291
bnQsIGludCBwYXJpdHkpCiAKIFVuaWZvcm1zQmVuY2htYXJrOjpVbmlmb3Jtc0JlbmNobWFyaygp
IDogQU5HTEVSZW5kZXJUZXN0KCJVbmlmb3JtcyIsIEdldFBhcmFtKCkpLCBtUHJvZ3JhbXMoe30p
CiB7Ci0gICAgLy8gRmFpbHMgb24gV2luZG93czcgTlZJRElBIFZ1bGthbiwgcHJlc3VtYWJseSBk
dWUgdG8gb2xkIGRyaXZlcnMuIGh0dHA6Ly9jcmJ1Zy5jb20vMTA5NjUxMAogICAgIGlmIChJc1dp
bmRvd3M3KCkgJiYgSXNOVklESUEoKSAmJgogICAgICAgICBHZXRQYXJhbSgpLmVnbFBhcmFtZXRl
cnMucmVuZGVyZXIgPT0gRUdMX1BMQVRGT1JNX0FOR0xFX1RZUEVfVlVMS0FOX0FOR0xFKQogICAg
IHsKLSAgICAgICAgbVNraXBUZXN0ID0gdHJ1ZTsKKyAgICAgICAgc2tpcFRlc3QoCisgICAgICAg
ICAgICAiaHR0cDovL2NyYnVnLmNvbS8xMDk2NTEwIEZhaWxzIG9uIFdpbmRvd3M3IE5WSURJQSBW
dWxrYW4sIHByZXN1bWFibHkgZHVlIHRvIG9sZCAiCisgICAgICAgICAgICAiZHJpdmVycyIpOwog
ICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3Rz
L3BlcmZfdGVzdHMvVnVsa2FuQmFycmllcnNQZXJmLmNwcCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FO
R0xFL3NyYy90ZXN0cy9wZXJmX3Rlc3RzL1Z1bGthbkJhcnJpZXJzUGVyZi5jcHAKaW5kZXggYzNj
MGE5MDMxMjM2MTY1NTQ0MzY3MDYwOTYxOTk4MTczNDA5NDJjMS4uZjJhYWJmODZmOTA5N2NmMDli
MTE5M2E5YTI1MGRiNDQ5YzdjZGMzYyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5H
TEUvc3JjL3Rlc3RzL3BlcmZfdGVzdHMvVnVsa2FuQmFycmllcnNQZXJmLmNwcAorKysgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvcGVyZl90ZXN0cy9WdWxrYW5CYXJyaWVyc1Bl
cmYuY3BwCkBAIC0xNDAsMTAgKzE0MCwxMSBAQCBWdWxrYW5CYXJyaWVyc1BlcmZCZW5jaG1hcms6
OlZ1bGthbkJhcnJpZXJzUGVyZkJlbmNobWFyaygpCiAgICAgICBtVGV4Q29vcmRMb2MoLTEpLAog
ICAgICAgbVNhbXBsZXJMb2MoLTEpCiB7Ci0gICAgLy8gRmFpbHMgb24gV2luZG93czcgTlZJRElB
IFZ1bGthbiwgcHJlc3VtYWJseSBkdWUgdG8gb2xkIGRyaXZlcnMuIGh0dHA6Ly9jcmJ1Zy5jb20v
MTA5NjUxMAogICAgIGlmIChJc05WSURJQSgpICYmIElzV2luZG93czcoKSkKICAgICB7Ci0gICAg
ICAgIG1Ta2lwVGVzdCA9IHRydWU7CisgICAgICAgIHNraXBUZXN0KAorICAgICAgICAgICAgImh0
dHA6Ly9jcmJ1Zy5jb20vMTA5NjUxMCBGYWlscyBvbiBXaW5kb3dzNyBOVklESUEgVnVsa2FuLCBw
cmVzdW1hYmx5IGR1ZSB0byBvbGQgIgorICAgICAgICAgICAgImRyaXZlcnMiKTsKICAgICB9CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9wZXJmX3Rl
c3RzL1Z1bGthbkNvbW1hbmRCdWZmZXJQZXJmLmNwcCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xF
L3NyYy90ZXN0cy9wZXJmX3Rlc3RzL1Z1bGthbkNvbW1hbmRCdWZmZXJQZXJmLmNwcAppbmRleCBi
NGJlMWU5MjA3NDk4ZDI3YWQyNDY2YmM0ZTJmZjk2MWE3NzlkMGVlLi45OTI3Zjc2MDM1YzlmNTEz
NTdkY2ZmMmNiMDc4NDBhNGI5YTA1NjEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9B
TkdMRS9zcmMvdGVzdHMvcGVyZl90ZXN0cy9WdWxrYW5Db21tYW5kQnVmZmVyUGVyZi5jcHAKKysr
IGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3RzL3BlcmZfdGVzdHMvVnVsa2FuQ29t
bWFuZEJ1ZmZlclBlcmYuY3BwCkBAIC05NiwyMCArOTYsMTAgQEAgVnVsa2FuQ29tbWFuZEJ1ZmZl
clBlcmZUZXN0OjpWdWxrYW5Db21tYW5kQnVmZmVyUGVyZlRlc3QoKQogICAgIG1DQkltcGxlbWVu
dGF0aW9uID0gR2V0UGFyYW0oKS5DQkltcGxlbWVudGF0aW9uOwogICAgIG1GcmFtZXMgICAgICAg
ICAgID0gR2V0UGFyYW0oKS5mcmFtZXM7CiAgICAgbUJ1ZmZlcnMgICAgICAgICAgPSBHZXRQYXJh
bSgpLmJ1ZmZlcnM7Ci0KLS8vIFRoaXMgdGVzdCBhcHBlYXJzIHRvIGJlIGZsYWt5IG9uIG11bHRp
cGxlIHBsYXRmb3Jtcy4KLSNpZiAhZGVmaW5lZChBTkdMRV9QTEFURk9STV9BTkRST0lEKQotICAg
IC8vIG1Ta2lwVGVzdCA9IHRydWU7Ci0jZW5kaWYgIC8vICFkZWZpbmVkKEFOR0xFX1BMQVRGT1JN
X0FORFJPSUQpCiB9CiAKIHZvaWQgVnVsa2FuQ29tbWFuZEJ1ZmZlclBlcmZUZXN0OjpTZXRVcCgp
CiB7Ci0gICAgaWYgKG1Ta2lwVGVzdCkKLSAgICB7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0K
ICAgICBpbml0X2dsb2JhbF9sYXllcl9wcm9wZXJ0aWVzKG1JbmZvKTsKICAgICBpbml0X2luc3Rh
bmNlX2V4dGVuc2lvbl9uYW1lcyhtSW5mbyk7CiAgICAgaW5pdF9kZXZpY2VfZXh0ZW5zaW9uX25h
bWVzKG1JbmZvKTsKQEAgLTE4MSwxMSArMTcxLDYgQEAgdm9pZCBWdWxrYW5Db21tYW5kQnVmZmVy
UGVyZlRlc3Q6OnN0ZXAoKQogCiB2b2lkIFZ1bGthbkNvbW1hbmRCdWZmZXJQZXJmVGVzdDo6VGVh
ckRvd24oKQogewotICAgIGlmIChtU2tpcFRlc3QpCi0gICAgewotICAgICAgICByZXR1cm47Ci0g
ICAgfQotCiAgICAgdmtEZXN0cm95U2VtYXBob3JlKG1JbmZvLmRldmljZSwgbUltYWdlQWNxdWly
ZWRTZW1hcGhvcmUsIE5VTEwpOwogICAgIHZrRGVzdHJveUZlbmNlKG1JbmZvLmRldmljZSwgbURy
YXdGZW5jZSwgTlVMTCk7CiAgICAgZGVzdHJveV9waXBlbGluZShtSW5mbyk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvcHlfdXRpbHMvYW5kcm9pZF9oZWxw
ZXIucHkgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvcHlfdXRpbHMvYW5kcm9p
ZF9oZWxwZXIucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzdkOGJlOTdmMGQ5YmE4MWM5ODE1M2IzNWUyNTMzMmEx
OTRkM2IzZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90
ZXN0cy9weV91dGlscy9hbmRyb2lkX2hlbHBlci5weQpAQCAtMCwwICsxLDI5MyBAQAorIyBDb3B5
cmlnaHQgMjAyMiBUaGUgQU5HTEUgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBs
aWNlbnNlIHRoYXQgY2FuIGJlCisjIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKK2ltcG9y
dCBjb250ZXh0bGliCitpbXBvcnQgZnVuY3Rvb2xzCitpbXBvcnQgZ2xvYgoraW1wb3J0IGpzb24K
K2ltcG9ydCBsb2dnaW5nCitpbXBvcnQgb3MKK2ltcG9ydCBwYXRobGliCitpbXBvcnQgcG9zaXhw
YXRoCitpbXBvcnQgcmFuZG9tCitpbXBvcnQgcmUKK2ltcG9ydCBzdWJwcm9jZXNzCitpbXBvcnQg
dGFyZmlsZQoraW1wb3J0IHRlbXBmaWxlCitpbXBvcnQgdGltZQorCitpbXBvcnQgYW5nbGVfcGF0
aF91dGlsCisKKworZGVmIF9BcGtQYXRoKHN1aXRlX25hbWUpOgorICAgIHJldHVybiBvcy5wYXRo
LmpvaW4oJyVzX2FwaycgJSBzdWl0ZV9uYW1lLCAnJXMtZGVidWcuYXBrJyAlIHN1aXRlX25hbWUp
CisKKworZGVmIEFwa0ZpbGVFeGlzdHMoc3VpdGVfbmFtZSk6CisgICAgcmV0dXJuIG9zLnBhdGgu
ZXhpc3RzKF9BcGtQYXRoKHN1aXRlX25hbWUpKQorCisKK2RlZiBfUnVuKGNtZCk6CisgICAgbG9n
Z2luZy5kZWJ1ZygnRXhlY3V0aW5nIGNvbW1hbmQ6ICVzJywgY21kKQorICAgIHN0YXJ0dXBpbmZv
ID0gTm9uZQorICAgIGlmIGhhc2F0dHIoc3VicHJvY2VzcywgJ1NUQVJUVVBJTkZPJyk6CisgICAg
ICAgICMgUHJldmVudCBjb25zb2xlIHdpbmRvdyBwb3BwaW5nIHVwIG9uIFdpbmRvd3MKKyAgICAg
ICAgc3RhcnR1cGluZm8gPSBzdWJwcm9jZXNzLlNUQVJUVVBJTkZPKCkKKyAgICAgICAgc3RhcnR1
cGluZm8uZHdGbGFncyB8PSBzdWJwcm9jZXNzLlNUQVJURl9VU0VTSE9XV0lORE9XCisgICAgICAg
IHN0YXJ0dXBpbmZvLndTaG93V2luZG93ID0gc3VicHJvY2Vzcy5TV19ISURFCisgICAgb3V0cHV0
ID0gc3VicHJvY2Vzcy5jaGVja19vdXRwdXQoY21kLCBzdGFydHVwaW5mbz1zdGFydHVwaW5mbykK
KyAgICByZXR1cm4gb3V0cHV0CisKKworQGZ1bmN0b29scy5scnVfY2FjaGUoKQorZGVmIF9GaW5k
QWRiKCk6CisgICAgcGxhdGZvcm1fdG9vbHMgPSAoCisgICAgICAgIHBhdGhsaWIuUGF0aChhbmds
ZV9wYXRoX3V0aWwuQU5HTEVfUk9PVF9ESVIpIC8gJ3RoaXJkX3BhcnR5JyAvICdhbmRyb2lkX3Nk
aycgLyAncHVibGljJyAvCisgICAgICAgICdwbGF0Zm9ybS10b29scycpCisKKyAgICBpZiBwbGF0
Zm9ybV90b29scy5leGlzdHMoKToKKyAgICAgICAgYWRiID0gc3RyKHBsYXRmb3JtX3Rvb2xzIC8g
J2FkYicpCisgICAgZWxzZToKKyAgICAgICAgYWRiID0gJ2FkYicKKworICAgIGFkYl9pbmZvID0g
c3VicHJvY2Vzcy5jaGVja19vdXRwdXQoW2FkYiwgJy0tdmVyc2lvbiddKS5kZWNvZGUoKQorICAg
IGxvZ2dpbmcuaW5mbygnYWRiIC0tdmVyc2lvbjogJXMnLCBhZGJfaW5mbykKKworICAgIHJldHVy
biBhZGIKKworCitkZWYgX0FkYlJ1bihhcmdzKToKKyAgICByZXR1cm4gX1J1bihbX0ZpbmRBZGIo
KV0gKyBhcmdzKQorCisKK2RlZiBfQWRiU2hlbGwoY21kKToKKyAgICByZXR1cm4gX1J1bihbX0Zp
bmRBZGIoKSwgJ3NoZWxsJywgY21kXSkKKworCitkZWYgX0dldEFkYlJvb3QoKToKKyAgICBfQWRi
UnVuKFsncm9vdCddKQorCisgICAgZm9yIF8gaW4gcmFuZ2UoMjApOgorICAgICAgICB0aW1lLnNs
ZWVwKDAuNSkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgaWRfb3V0ID0gX0FkYlNoZWxsKCdp
ZCcpLmRlY29kZSgnYXNjaWknKQorICAgICAgICAgICAgaWYgJ3VpZD0wKHJvb3QpJyBpbiBpZF9v
dXQ6CisgICAgICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246Cisg
ICAgICAgICAgICBjb250aW51ZQorICAgIHJhaXNlIEV4Y2VwdGlvbigiYWRiIHJvb3QgZmFpbGVk
IikKKworCitkZWYgX1JlYWREZXZpY2VGaWxlKGRldmljZV9wYXRoKToKKyAgICB3aXRoIF9UZW1w
TG9jYWxGaWxlKCkgYXMgdGVtcGZpbGVfcGF0aDoKKyAgICAgICAgX0FkYlJ1bihbJ3B1bGwnLCBk
ZXZpY2VfcGF0aCwgdGVtcGZpbGVfcGF0aF0pCisgICAgICAgIHdpdGggb3Blbih0ZW1wZmlsZV9w
YXRoLCAncmInKSBhcyBmOgorICAgICAgICAgICAgcmV0dXJuIGYucmVhZCgpCisKKworZGVmIF9S
ZW1vdmVEZXZpY2VGaWxlKGRldmljZV9wYXRoKToKKyAgICBfQWRiU2hlbGwoJ3JtIC1mICcgKyBk
ZXZpY2VfcGF0aCArICcgfHwgdHJ1ZScpICAjIGlnbm9yZSBlcnJvcnMKKworCitkZWYgX0FkZFJl
c3RyaWN0ZWRUcmFjZXNKc29uKCk6CisgICAgX0FkYlNoZWxsKCdta2RpciAtcCAvc2RjYXJkL2No
cm9taXVtX3Rlc3RzX3Jvb3QvJykKKworICAgIGRlZiBhZGQodGFyLCBmbik6CisgICAgICAgIGFz
c2VydCAoZm4uc3RhcnRzd2l0aCgnLi4vLi4vJykpCisgICAgICAgIHRhci5hZGQoZm4sIGFyY25h
bWU9Zm4ucmVwbGFjZSgnLi4vLi4vJywgJycpKQorCisgICAgd2l0aCBfVGVtcExvY2FsRmlsZSgp
IGFzIHRlbXBmaWxlX3BhdGg6CisgICAgICAgIHdpdGggdGFyZmlsZS5vcGVuKHRlbXBmaWxlX3Bh
dGgsICd3JywgZm9ybWF0PXRhcmZpbGUuR05VX0ZPUk1BVCkgYXMgdGFyOgorICAgICAgICAgICAg
Zm9yIGYgaW4gZ2xvYi5nbG9iKCcuLi8uLi9zcmMvdGVzdHMvcmVzdHJpY3RlZF90cmFjZXMvKi8q
Lmpzb24nLCByZWN1cnNpdmU9VHJ1ZSk6CisgICAgICAgICAgICAgICAgYWRkKHRhciwgZikKKyAg
ICAgICAgICAgIGFkZCh0YXIsICcuLi8uLi9zcmMvdGVzdHMvcmVzdHJpY3RlZF90cmFjZXMvcmVz
dHJpY3RlZF90cmFjZXMuanNvbicpCisgICAgICAgIF9BZGJSdW4oWydwdXNoJywgdGVtcGZpbGVf
cGF0aCwgJy9zZGNhcmQvY2hyb21pdW1fdGVzdHNfcm9vdC90LnRhciddKQorCisgICAgX0FkYlNo
ZWxsKCdyPS9zZGNhcmQvY2hyb21pdW1fdGVzdHNfcm9vdDsgdGFyIC14ZiAkci90LnRhciAtQyAk
ci8gJiYgcm0gJHIvdC50YXInKQorCisKK2RlZiBQcmVwYXJlVGVzdFN1aXRlKHN1aXRlX25hbWUp
OgorICAgIF9HZXRBZGJSb290KCkKKworICAgIGFwa19wYXRoID0gX0Fwa1BhdGgoc3VpdGVfbmFt
ZSkKKyAgICBsb2dnaW5nLmluZm8oJ0luc3RhbGxpbmcgYXBrIHBhdGg9JXMgc2l6ZT0lcycgJSAo
YXBrX3BhdGgsIG9zLnBhdGguZ2V0c2l6ZShhcGtfcGF0aCkpKQorCisgICAgX0FkYlJ1bihbJ2lu
c3RhbGwnLCAnLXInLCAnLWQnLCBhcGtfcGF0aF0pCisKKyAgICBwZXJtaXNzaW9ucyA9IFsKKyAg
ICAgICAgJ2FuZHJvaWQucGVybWlzc2lvbi5DQU1FUkEnLCAnYW5kcm9pZC5wZXJtaXNzaW9uLkNI
QU5HRV9DT05GSUdVUkFUSU9OJywKKyAgICAgICAgJ2FuZHJvaWQucGVybWlzc2lvbi5SRUFEX0VY
VEVSTkFMX1NUT1JBR0UnLCAnYW5kcm9pZC5wZXJtaXNzaW9uLlJFQ09SRF9BVURJTycsCisgICAg
ICAgICdhbmRyb2lkLnBlcm1pc3Npb24uV1JJVEVfRVhURVJOQUxfU1RPUkFHRScKKyAgICBdCisg
ICAgX0FkYlNoZWxsKCdwPWNvbS5hbmRyb2lkLmFuZ2xlLnRlc3Q7JworICAgICAgICAgICAgICAn
Zm9yIHEgaW4gJXM7ZG8gcG0gZ3JhbnQgIiRwIiAiJHEiO2RvbmU7JyAlICcgJy5qb2luKHBlcm1p
c3Npb25zKSkKKworICAgIGlmIHN1aXRlX25hbWUgPT0gJ2FuZ2xlX3BlcmZ0ZXN0cyc6CisgICAg
ICAgIF9BZGRSZXN0cmljdGVkVHJhY2VzSnNvbigpCisKKworZGVmIFByZXBhcmVSZXN0cmljdGVk
VHJhY2VzKHRyYWNlcyk6CisgICAgc3RhcnQgPSB0aW1lLnRpbWUoKQorICAgIHRvdGFsX3NpemUg
PSAwCisgICAgZm9yIHRyYWNlIGluIHRyYWNlczoKKyAgICAgICAgcGF0aF9mcm9tX3Jvb3QgPSAn
c3JjL3Rlc3RzL3Jlc3RyaWN0ZWRfdHJhY2VzLycgKyB0cmFjZSArICcvJyArIHRyYWNlICsgJy5h
bmdsZWRhdGEuZ3onCisgICAgICAgIGxvY2FsX3BhdGggPSAnLi4vLi4vJyArIHBhdGhfZnJvbV9y
b290CisgICAgICAgIHRvdGFsX3NpemUgKz0gb3MucGF0aC5nZXRzaXplKGxvY2FsX3BhdGgpCisg
ICAgICAgIF9BZGJSdW4oWydwdXNoJywgbG9jYWxfcGF0aCwgJy9zZGNhcmQvY2hyb21pdW1fdGVz
dHNfcm9vdC8nICsgcGF0aF9mcm9tX3Jvb3RdKQorCisgICAgbG9nZ2luZy5pbmZvKCdQdXNoZWQg
JWQgdHJhY2UgZmlsZXMgKCUuMWZNQikgaW4gJS4xZnMnLCBsZW4odHJhY2VzKSwgdG90YWxfc2l6
ZSAvIDFlNiwKKyAgICAgICAgICAgICAgICAgdGltZS50aW1lKCkgLSBzdGFydCkKKworCitkZWYg
X1JhbmRvbUhleCgpOgorICAgIHJldHVybiBoZXgocmFuZG9tLnJhbmRpbnQoMCwgMioqNjQpKVsy
Ol0KKworCitAY29udGV4dGxpYi5jb250ZXh0bWFuYWdlcgorZGVmIF9UZW1wRGV2aWNlRGlyKCk6
CisgICAgcGF0aCA9ICcvc2RjYXJkL0Rvd25sb2FkL3RlbXBfZGlyLSVzJyAlIF9SYW5kb21IZXgo
KQorICAgIF9BZGJTaGVsbCgnbWtkaXIgLXAgJyArIHBhdGgpCisgICAgdHJ5OgorICAgICAgICB5
aWVsZCBwYXRoCisgICAgZmluYWxseToKKyAgICAgICAgX0FkYlNoZWxsKCdybSAtcmYgJyArIHBh
dGgpCisKKworQGNvbnRleHRsaWIuY29udGV4dG1hbmFnZXIKK2RlZiBfVGVtcERldmljZUZpbGUo
KToKKyAgICBwYXRoID0gJy9zZGNhcmQvRG93bmxvYWQvdGVtcF9maWxlLSVzJyAlIF9SYW5kb21I
ZXgoKQorICAgIHRyeToKKyAgICAgICAgeWllbGQgcGF0aAorICAgIGZpbmFsbHk6CisgICAgICAg
IF9BZGJTaGVsbCgncm0gLWYgJyArIHBhdGgpCisKKworQGNvbnRleHRsaWIuY29udGV4dG1hbmFn
ZXIKK2RlZiBfVGVtcExvY2FsRmlsZSgpOgorICAgIGZkLCBwYXRoID0gdGVtcGZpbGUubWtzdGVt
cCgpCisgICAgb3MuY2xvc2UoZmQpCisgICAgdHJ5OgorICAgICAgICB5aWVsZCBwYXRoCisgICAg
ZmluYWxseToKKyAgICAgICAgb3MucmVtb3ZlKHBhdGgpCisKKworZGVmIF9SdW5JbnN0cnVtZW50
YXRpb24oZmxhZ3MpOgorICAgIHdpdGggX1RlbXBEZXZpY2VGaWxlKCkgYXMgdGVtcF9kZXZpY2Vf
ZmlsZToKKyAgICAgICAgY21kID0gJyAnLmpvaW4oWworICAgICAgICAgICAgJ3A9Y29tLmFuZHJv
aWQuYW5nbGUudGVzdDsnLAorICAgICAgICAgICAgJ250cj1vcmcuY2hyb21pdW0ubmF0aXZlX3Rl
c3QuTmF0aXZlVGVzdEluc3RydW1lbnRhdGlvblRlc3RSdW5uZXI7JywKKyAgICAgICAgICAgICdh
bSBpbnN0cnVtZW50IC13JywKKyAgICAgICAgICAgICctZSAkbnRyLk5hdGl2ZVRlc3RBY3Rpdml0
eSAiJHAiLkFuZ2xlVW5pdFRlc3RBY3Rpdml0eScsCisgICAgICAgICAgICAnLWUgJG50ci5TaGFy
ZE5hbm9UaW1lb3V0IDI0MDAwMDAwMDAwMDAnLAorICAgICAgICAgICAgJy1lIG9yZy5jaHJvbWl1
bS5uYXRpdmVfdGVzdC5OYXRpdmVUZXN0LkNvbW1hbmRMaW5lRmxhZ3MgIiVzIicgJSAnICcuam9p
bihmbGFncyksCisgICAgICAgICAgICAnLWUgJG50ci5TdGRvdXRGaWxlICcgKyB0ZW1wX2Rldmlj
ZV9maWxlLAorICAgICAgICAgICAgJyIkcCIvb3JnLmNocm9taXVtLmJ1aWxkLmd0ZXN0X2Fway5O
YXRpdmVUZXN0SW5zdHJ1bWVudGF0aW9uVGVzdFJ1bm5lcicsCisgICAgICAgIF0pCisKKyAgICAg
ICAgX0FkYlNoZWxsKGNtZCkKKyAgICAgICAgcmV0dXJuIF9SZWFkRGV2aWNlRmlsZSh0ZW1wX2Rl
dmljZV9maWxlKQorCisKK2RlZiBBbmdsZVN5c3RlbUluZm8oYXJncyk6CisgICAgUHJlcGFyZVRl
c3RTdWl0ZSgnYW5nbGVfc3lzdGVtX2luZm9fdGVzdCcpCisKKyAgICB3aXRoIF9UZW1wRGV2aWNl
RGlyKCkgYXMgdGVtcF9kaXI6CisgICAgICAgIF9SdW5JbnN0cnVtZW50YXRpb24oYXJncyArIFsn
LS1yZW5kZXItdGVzdC1vdXRwdXQtZGlyPScgKyB0ZW1wX2Rpcl0pCisgICAgICAgIG91dHB1dF9m
aWxlID0gcG9zaXhwYXRoLmpvaW4odGVtcF9kaXIsICdhbmdsZV9zeXN0ZW1faW5mby5qc29uJykK
KyAgICAgICAgcmV0dXJuIGpzb24ubG9hZHMoX1JlYWREZXZpY2VGaWxlKG91dHB1dF9maWxlKSkK
KworCitkZWYgTGlzdFRlc3RzKCk6CisgICAgb3V0X2xpbmVzID0gX1J1bkluc3RydW1lbnRhdGlv
bihbIi0tbGlzdC10ZXN0cyJdKS5kZWNvZGUoJ2FzY2lpJykuc3BsaXQoJ1xuJykKKworICAgIHN0
YXJ0ID0gb3V0X2xpbmVzLmluZGV4KCdUZXN0cyBsaXN0OicpCisgICAgZW5kID0gb3V0X2xpbmVz
LmluZGV4KCdFbmQgdGVzdHMgbGlzdC4nKQorICAgIHJldHVybiBvdXRfbGluZXNbc3RhcnQgKyAx
OmVuZF0KKworCitkZWYgX1B1bGxEaXIoZGV2aWNlX2RpciwgbG9jYWxfZGlyKToKKyAgICBmaWxl
cyA9IF9BZGJTaGVsbCgnbHMgLTEgJXMnICUgZGV2aWNlX2RpcikuZGVjb2RlKCdhc2NpaScpLnNw
bGl0KCdcbicpCisgICAgZm9yIGYgaW4gZmlsZXM6CisgICAgICAgIGYgPSBmLnN0cmlwKCkKKyAg
ICAgICAgaWYgZjoKKyAgICAgICAgICAgIF9BZGJSdW4oWydwdWxsJywgcG9zaXhwYXRoLmpvaW4o
ZGV2aWNlX2RpciwgZiksIHBvc2l4cGF0aC5qb2luKGxvY2FsX2RpciwgZildKQorCisKK2RlZiBf
UmVtb3ZlRmxhZyhhcmdzLCBmKToKKyAgICBtYXRjaGVzID0gW2EgZm9yIGEgaW4gYXJncyBpZiBh
LnN0YXJ0c3dpdGgoZiArICc9JyldCisgICAgYXNzZXJ0IGxlbihtYXRjaGVzKSA8PSAxCisgICAg
aWYgbWF0Y2hlczoKKyAgICAgICAgb3JpZ2luYWxfdmFsdWUgPSBtYXRjaGVzWzBdLnNwbGl0KCc9
JylbMV0KKyAgICAgICAgYXJncy5yZW1vdmUobWF0Y2hlc1swXSkKKyAgICBlbHNlOgorICAgICAg
ICBvcmlnaW5hbF92YWx1ZSA9IE5vbmUKKworICAgIHJldHVybiBvcmlnaW5hbF92YWx1ZQorCisK
K2RlZiBSdW5UZXN0cyh0ZXN0X3N1aXRlLCBhcmdzLCBzdGRvdXRmaWxlPU5vbmUsIG91dHB1dF9k
aXI9Tm9uZSwgbG9nX291dHB1dD1UcnVlKToKKyAgICBhcmdzID0gYXJnc1s6XQorICAgIHRlc3Rf
b3V0cHV0X3BhdGggPSBfUmVtb3ZlRmxhZyhhcmdzLCAnLS1pc29sYXRlZC1zY3JpcHQtdGVzdC1v
dXRwdXQnKQorICAgIHBlcmZfb3V0cHV0X3BhdGggPSBfUmVtb3ZlRmxhZyhhcmdzLCAnLS1pc29s
YXRlZC1zY3JpcHQtdGVzdC1wZXJmLW91dHB1dCcpCisgICAgdGVzdF9vdXRwdXRfZGlyID0gX1Jl
bW92ZUZsYWcoYXJncywgJy0tcmVuZGVyLXRlc3Qtb3V0cHV0LWRpcicpCisKKyAgICByZXN1bHQg
PSAwCisgICAgb3V0cHV0ID0gYicnCisgICAgdHJ5OgorICAgICAgICB3aXRoIGNvbnRleHRsaWIu
RXhpdFN0YWNrKCkgYXMgc3RhY2s6CisgICAgICAgICAgICBkZXZpY2VfdGVzdF9vdXRwdXRfcGF0
aCA9IHN0YWNrLmVudGVyX2NvbnRleHQoX1RlbXBEZXZpY2VGaWxlKCkpCisgICAgICAgICAgICBh
cmdzLmFwcGVuZCgnLS1pc29sYXRlZC1zY3JpcHQtdGVzdC1vdXRwdXQ9JyArIGRldmljZV90ZXN0
X291dHB1dF9wYXRoKQorCisgICAgICAgICAgICBpZiBwZXJmX291dHB1dF9wYXRoOgorICAgICAg
ICAgICAgICAgIGRldmljZV9wZXJmX3BhdGggPSBzdGFjay5lbnRlcl9jb250ZXh0KF9UZW1wRGV2
aWNlRmlsZSgpKQorICAgICAgICAgICAgICAgIGFyZ3MuYXBwZW5kKCctLWlzb2xhdGVkLXNjcmlw
dC10ZXN0LXBlcmYtb3V0cHV0PSVzJyAlIGRldmljZV9wZXJmX3BhdGgpCisKKyAgICAgICAgICAg
IGlmIHRlc3Rfb3V0cHV0X2RpcjoKKyAgICAgICAgICAgICAgICBkZXZpY2Vfb3V0cHV0X2RpciA9
IHN0YWNrLmVudGVyX2NvbnRleHQoX1RlbXBEZXZpY2VEaXIoKSkKKyAgICAgICAgICAgICAgICBh
cmdzLmFwcGVuZCgnLS1yZW5kZXItdGVzdC1vdXRwdXQtZGlyPScgKyBkZXZpY2Vfb3V0cHV0X2Rp
cikKKworICAgICAgICAgICAgb3V0cHV0ID0gX1J1bkluc3RydW1lbnRhdGlvbihhcmdzKQorCisg
ICAgICAgICAgICB0ZXN0X291dHB1dCA9IF9SZWFkRGV2aWNlRmlsZShkZXZpY2VfdGVzdF9vdXRw
dXRfcGF0aCkKKyAgICAgICAgICAgIGlmIHRlc3Rfb3V0cHV0X3BhdGg6CisgICAgICAgICAgICAg
ICAgd2l0aCBvcGVuKHRlc3Rfb3V0cHV0X3BhdGgsICd3YicpIGFzIGY6CisgICAgICAgICAgICAg
ICAgICAgIGYud3JpdGUodGVzdF9vdXRwdXQpCisKKyAgICAgICAgICAgIG91dHB1dF9qc29uID0g
anNvbi5sb2Fkcyh0ZXN0X291dHB1dCkKKworICAgICAgICAgICAgbnVtX2ZhaWx1cmVzID0gb3V0
cHV0X2pzb24uZ2V0KCdudW1fZmFpbHVyZXNfYnlfdHlwZScsIHt9KS5nZXQoJ0ZBSUwnLCAwKQor
ICAgICAgICAgICAgaW50ZXJydXB0ZWQgPSBvdXRwdXRfanNvbi5nZXQoJ2ludGVycnVwdGVkJywg
VHJ1ZSkgICMgTm9ybWFsbHkgc2V0IHRvIEZhbHNlCisgICAgICAgICAgICBpZiBudW1fZmFpbHVy
ZXMgIT0gMCBvciBpbnRlcnJ1cHRlZCBvciBvdXRwdXRfanNvbi5nZXQoJ2lzX3VuZXhwZWN0ZWQn
LCBGYWxzZSk6CisgICAgICAgICAgICAgICAgbG9nZ2luZy5lcnJvcignVGVzdHMgZmFpbGVkOiAl
cycsIHRlc3Rfb3V0cHV0LmRlY29kZSgpKQorICAgICAgICAgICAgICAgIHJlc3VsdCA9IDEKKwor
ICAgICAgICAgICAgaWYgdGVzdF9vdXRwdXRfZGlyOgorICAgICAgICAgICAgICAgIF9QdWxsRGly
KGRldmljZV9vdXRwdXRfZGlyLCB0ZXN0X291dHB1dF9kaXIpCisKKyAgICAgICAgICAgIGlmIHBl
cmZfb3V0cHV0X3BhdGg6CisgICAgICAgICAgICAgICAgX0FkYlJ1bihbJ3B1bGwnLCBkZXZpY2Vf
cGVyZl9wYXRoLCBwZXJmX291dHB1dF9wYXRoXSkKKworICAgICAgICBpZiBsb2dfb3V0cHV0Ogor
ICAgICAgICAgICAgbG9nZ2luZy5pbmZvKG91dHB1dC5kZWNvZGUoKSkKKworICAgICAgICBpZiBz
dGRvdXRmaWxlOgorICAgICAgICAgICAgd2l0aCBvcGVuKHN0ZG91dGZpbGUsICd3YicpIGFzIGY6
CisgICAgICAgICAgICAgICAgZi53cml0ZShvdXRwdXQpCisgICAgZXhjZXB0IEV4Y2VwdGlvbiBh
cyBlOgorICAgICAgICBsb2dnaW5nLmV4Y2VwdGlvbihlKQorICAgICAgICByZXN1bHQgPSAxCisK
KyAgICByZXR1cm4gcmVzdWx0LCBvdXRwdXQKKworCitkZWYgR2V0VHJhY2VGcm9tVGVzdE5hbWUo
dGVzdF9uYW1lKToKKyAgICBtID0gcmUuc2VhcmNoKHInVHJhY2VQZXJmVGVzdC5SdW4vKG5hdGl2
ZXx2dWxrYW4pXyguKiknLCB0ZXN0X25hbWUpCisgICAgaWYgbToKKyAgICAgICAgcmV0dXJuIG0u
Z3JvdXAoMikKKworICAgIGlmIHRlc3RfbmFtZS5zdGFydHN3aXRoKCdUcmFjZVBlcmZUZXN0LlJ1
bi8nKToKKyAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdVbmV4cGVjdGVkIHRlc3Q6ICVzJyAlIHRl
c3RfbmFtZSkKKworICAgIHJldHVybiBOb25lCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9BTkdMRS9zcmMvdGVzdHMvcHlfdXRpbHMvYW5nbGVfcGF0aF91dGlsLnB5IGIvU291cmNlL1Ro
aXJkUGFydHkvQU5HTEUvc3JjL3Rlc3RzL3B5X3V0aWxzL2FuZ2xlX3BhdGhfdXRpbC5weQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5hYzgxNTdkZjQ1NGE1ZmU2N2U3YmIyNTQwZjhkYTY0MmQ3OWVhYmMzCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3RzL3B5X3V0aWxzL2Fu
Z2xlX3BhdGhfdXRpbC5weQpAQCAtMCwwICsxLDIzIEBACisjIENvcHlyaWdodCAyMDIyIFRoZSBB
TkdMRSBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIFVzZSBvZiB0aGlz
IHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4g
YmUKKyMgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworaW1wb3J0IG9zCitpbXBvcnQgcGF0
aGxpYgoraW1wb3J0IHBvc2l4cGF0aAoraW1wb3J0IHN5cworCitBTkdMRV9ST09UX0RJUiA9IHN0
cihwYXRobGliLlBhdGgoX19maWxlX18pLnJlc29sdmUoKS5wYXJlbnRzWzNdKQorCisKK2RlZiBB
ZGREZXBzRGlyVG9QYXRoKHBvc2l4cGF0aF9mcm9tX3Jvb3QpOgorICAgIHJlbGF0aXZlX3BhdGgg
PSBvcy5wYXRoLmpvaW4oKnBvc2l4cGF0aC5zcGxpdChwb3NpeHBhdGhfZnJvbV9yb290KSkKKyAg
ICBmdWxsX3BhdGggPSBvcy5wYXRoLmpvaW4oQU5HTEVfUk9PVF9ESVIsIHJlbGF0aXZlX3BhdGgp
CisgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKGZ1bGxfcGF0aCk6CisgICAgICAgICMgQXNzdW1l
IENocm9taXVtIGNoZWNrb3V0CisgICAgICAgIGNocm9taXVtX3Jvb3RfZGlyID0gb3MucGF0aC5h
YnNwYXRoKG9zLnBhdGguam9pbihBTkdMRV9ST09UX0RJUiwgJy4uJywgJy4uJykpCisgICAgICAg
IGZ1bGxfcGF0aCA9IG9zLnBhdGguam9pbihjaHJvbWl1bV9yb290X2RpciwgcmVsYXRpdmVfcGF0
aCkKKyAgICAgICAgYXNzZXJ0IG9zLnBhdGguZXhpc3RzKGZ1bGxfcGF0aCkKKworICAgIGlmIGZ1
bGxfcGF0aCBub3QgaW4gc3lzLnBhdGg6CisgICAgICAgIHN5cy5wYXRoLmluc2VydCgwLCBmdWxs
X3BhdGgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvcHlf
dXRpbHMvc2tpYV9nb2xkL19faW5pdF9fLnB5IGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3Jj
L3Rlc3RzL3B5X3V0aWxzL3NraWFfZ29sZC9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2RlIDEwMDc1
NQppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYzRmODAx
MzM3MjNhNDA5MWQ4N2Q3ZWRiNjkwYjg0OTYyOGJlNTlkCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3RzL3B5X3V0aWxzL3NraWFfZ29sZC9fX2luaXRf
Xy5weQpAQCAtMCwwICsxLDcgQEAKKyMgQ29weXJpZ2h0IDIwMjAgVGhlIEFOR0xFIFByb2plY3Qg
QXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUg
aXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorIyBmb3VuZCBp
biB0aGUgTElDRU5TRSBmaWxlLgorCitpbXBvcnQgYW5nbGVfcGF0aF91dGlsCisKK2FuZ2xlX3Bh
dGhfdXRpbC5BZGREZXBzRGlyVG9QYXRoKCdidWlsZCcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvcHlfdXRpbHMvc2tpYV9nb2xkL2FuZ2xlX3NraWFfZ29s
ZF9wcm9wZXJ0aWVzLnB5IGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3RzL3B5X3V0
aWxzL3NraWFfZ29sZC9hbmdsZV9za2lhX2dvbGRfcHJvcGVydGllcy5weQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40
ZmE2N2I2NmMyZGIxYjk4Yjg4OTYwMDA3NjBhZDI3ODgxYmI1NmU5Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3RzL3B5X3V0aWxzL3NraWFfZ29sZC9h
bmdsZV9za2lhX2dvbGRfcHJvcGVydGllcy5weQpAQCAtMCwwICsxLDI1IEBACisjIENvcHlyaWdo
dCAyMDIwIFRoZSBBTkdMRSBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisj
IFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vu
c2UgdGhhdCBjYW4gYmUKKyMgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKyIiIkFOR0xFIGlt
cGxlbWVudGF0aW9uIG9mIC8vYnVpbGQvc2tpYV9nb2xkX2NvbW1vbi9za2lhX2dvbGRfcHJvcGVy
dGllcy5weS4iIiIKKworaW1wb3J0IHN1YnByb2Nlc3MKK2ltcG9ydCBzeXMKKworZnJvbSBza2lh
X2dvbGRfY29tbW9uIGltcG9ydCBza2lhX2dvbGRfcHJvcGVydGllcworCisKK2NsYXNzIEFOR0xF
U2tpYUdvbGRQcm9wZXJ0aWVzKHNraWFfZ29sZF9wcm9wZXJ0aWVzLlNraWFHb2xkUHJvcGVydGll
cyk6CisKKyAgICBAc3RhdGljbWV0aG9kCisgICAgZGVmIF9HZXRHaXRPcmlnaW5NYWluSGVhZFNo
YTEoKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcmV0dXJuIHN1YnByb2Nlc3MuY2hlY2tf
b3V0cHV0KFsnZ2l0JywgJ3Jldi1wYXJzZScsICdvcmlnaW4vbWFpbiddLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoZWxsPV9Jc1dpbigpLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN3ZD1BTkdMRV9TUkNfRElSKS5zdHJp
cCgpCisgICAgICAgIGV4Y2VwdCBzdWJwcm9jZXNzLkNhbGxlZFByb2Nlc3NFcnJvcjoKKyAgICAg
ICAgICAgIHJldHVybiBOb25lCisKKworZGVmIF9Jc1dpbigpOgorICAgIHJldHVybiBzeXMucGxh
dGZvcm0gPT0gJ3dpbjMyJwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3Jj
L3Rlc3RzL3B5X3V0aWxzL3NraWFfZ29sZC9hbmdsZV9za2lhX2dvbGRfc2Vzc2lvbi5weSBiL1Nv
dXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9weV91dGlscy9za2lhX2dvbGQvYW5nbGVf
c2tpYV9nb2xkX3Nlc3Npb24ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzM0ZWJjMDZhYmI1ZWIxYWIwODdkNTU4
NmUyZWRhMWVkMzBmNmUxYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FO
R0xFL3NyYy90ZXN0cy9weV91dGlscy9za2lhX2dvbGQvYW5nbGVfc2tpYV9nb2xkX3Nlc3Npb24u
cHkKQEAgLTAsMCArMSwxMiBAQAorIyBDb3B5cmlnaHQgMjAyMCBUaGUgQU5HTEUgUHJvamVjdCBB
dXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBp
cyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisjIGZvdW5kIGlu
IHRoZSBMSUNFTlNFIGZpbGUuCisiIiJBTkdMRSBpbXBsZW1lbnRhdGlvbiBvZiAvL2J1aWxkL3Nr
aWFfZ29sZF9jb21tb24vc2tpYV9nb2xkX3Nlc3Npb24ucHkuIiIiCisKK2Zyb20gc2tpYV9nb2xk
X2NvbW1vbiBpbXBvcnQgb3V0cHV0X21hbmFnZXJsZXNzX3NraWFfZ29sZF9zZXNzaW9uIGFzIG9t
c2dzCisKKworY2xhc3MgQU5HTEVTa2lhR29sZFNlc3Npb24ob21zZ3MuT3V0cHV0TWFuYWdlcmxl
c3NTa2lhR29sZFNlc3Npb24pOgorCisgICAgZGVmIF9HZXREaWZmR29sZEluc3RhbmNlKHNlbGYp
OgorICAgICAgICByZXR1cm4gc3RyKHNlbGYuX2luc3RhbmNlKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3RzL3B5X3V0aWxzL3NraWFfZ29sZC9hbmdsZV9za2lh
X2dvbGRfc2Vzc2lvbl9tYW5hZ2VyLnB5IGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rl
c3RzL3B5X3V0aWxzL3NraWFfZ29sZC9hbmdsZV9za2lhX2dvbGRfc2Vzc2lvbl9tYW5hZ2VyLnB5
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjE4M2NhNzQ1ODY4ZjM1Zjc5MDE4MGMwMWVjYmUwODFjOTY0ZmM3MDkKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvcHlfdXRp
bHMvc2tpYV9nb2xkL2FuZ2xlX3NraWFfZ29sZF9zZXNzaW9uX21hbmFnZXIucHkKQEAgLTAsMCAr
MSwxOCBAQAorIyBDb3B5cmlnaHQgMjAyMCBUaGUgQU5HTEUgUHJvamVjdCBBdXRob3JzLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBi
eSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisjIGZvdW5kIGluIHRoZSBMSUNFTlNF
IGZpbGUuCisiIiJBTkdMRSBpbXBsZW1lbnRhdGlvbiBvZiAvL2J1aWxkL3NraWFfZ29sZF9jb21t
b24vc2tpYV9nb2xkX3Nlc3Npb25fbWFuYWdlci5weS4iIiIKKworZnJvbSBza2lhX2dvbGRfY29t
bW9uIGltcG9ydCBza2lhX2dvbGRfc2Vzc2lvbl9tYW5hZ2VyIGFzIHNnc20KK2Zyb20gLmFuZ2xl
X3NraWFfZ29sZF9zZXNzaW9uIGltcG9ydCBBTkdMRVNraWFHb2xkU2Vzc2lvbgorCisKK2NsYXNz
IEFOR0xFU2tpYUdvbGRTZXNzaW9uTWFuYWdlcihzZ3NtLlNraWFHb2xkU2Vzc2lvbk1hbmFnZXIp
OgorCisgICAgQHN0YXRpY21ldGhvZAorICAgIGRlZiBfR2V0RGVmYXVsdEluc3RhbmNlKCk6Cisg
ICAgICAgIHJldHVybiAnYW5nbGUnCisKKyAgICBAc3RhdGljbWV0aG9kCisgICAgZGVmIEdldFNl
c3Npb25DbGFzcygpOgorICAgICAgICByZXR1cm4gQU5HTEVTa2lhR29sZFNlc3Npb24KZGlmZiAt
LWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9yZXN0cmljdGVkX3RyYWNl
cy9CVUlMRC5nbiBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9yZXN0cmljdGVk
X3RyYWNlcy9CVUlMRC5nbgppbmRleCAyMTBkNjY5NThhOWFiZTU0YjVmMzI1MTI0MDY4ZjA2MmIx
NGMxNTlmLi4zMjBhZGRmZjBmYjNhODdkNTkwYTYzZTMyODk5MTQwMGYwNjU4YTU0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvcmVzdHJpY3RlZF90cmFjZXMv
QlVJTEQuZ24KKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3RzL3Jlc3RyaWN0
ZWRfdHJhY2VzL0JVSUxELmduCkBAIC03OCw3ICs3OCw5IEBAIGdyb3VwKCJhbmdsZV9yZXN0cmlj
dGVkX3RyYWNlX2dvbGRfdGVzdHMiKSB7CiAgIGRhdGEgPSBbCiAgICAgInJlc3RyaWN0ZWRfdHJh
Y2VfZ29sZF90ZXN0cy5weSIsCiAgICAgInJlc3RyaWN0ZWRfdHJhY2VzLmpzb24iLAotICAgICIu
Li9za2lhX2dvbGQvIiwKKyAgICAiLi4vcHlfdXRpbHMvYW5kcm9pZF9oZWxwZXIucHkiLAorICAg
ICIuLi9weV91dGlscy9hbmdsZV9wYXRoX3V0aWwucHkiLAorICAgICIuLi9weV91dGlscy9za2lh
X2dvbGQvIiwKICAgICAiLy9idWlsZC9za2lhX2dvbGRfY29tbW9uLyIsCiAgICAgIi8vdGVzdGlu
Zy9zY3JpcHRzL2NvbW1vbi5weSIsCiAgICAgIi8vdGVzdGluZy94dmZiLnB5IiwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9yZXN0cmljdGVkX3RyYWNlcy9n
cHVtZW0uc2ggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvcmVzdHJpY3RlZF90
cmFjZXMvZ3B1bWVtLnNoCmluZGV4IDZhMjY3YmNmMDA2MGY3YzIzNjUzZTgxM2MyNzdiOWIzMDg4
MDg2YWYuLjVkOTlkZmExNzZlMTA4YTRhNTUzMzYyNTdkY2VmZmE3Mjg5MmMwMTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9yZXN0cmljdGVkX3RyYWNlcy9n
cHVtZW0uc2gKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3RzL3Jlc3RyaWN0
ZWRfdHJhY2VzL2dwdW1lbS5zaApAQCAtNCw2ICs0LDE0IEBACiAjIFVzZSBvZiB0aGlzIHNvdXJj
ZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICMg
Zm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KICMKKworc2xlZXBfZHVyYXRpb249JDEKK2lmIFsg
JHNsZWVwX2R1cmF0aW9uIC1lcSAwIF07IHRoZW4KKyAgICBlY2hvICJObyBzbGVlcF9kdXJhdGlv
biBwcm92aWRlZCIKKyAgICBleGl0IDEKK2ZpCisKK3N0YXJ0X3RpbWU9JFNFQ09ORFMKIHdoaWxl
IHRydWU7IGRvCiAgICAgcGlkPSQocGlkb2YgY29tLmFuZHJvaWQuYW5nbGUudGVzdDp0ZXN0X3By
b2Nlc3MpCiAgICAgY2FzZSAkcGlkIGluCkBAIC0xMSw1ICsxOSw3IEBAIHdoaWxlIHRydWU7IGRv
CiAgICAgICAgICopIGVjaG8gY29tLmFuZHJvaWQuYW5nbGUudGVzdDp0ZXN0X3Byb2Nlc3MgJHBp
ZCA+PiAvc2RjYXJkL0Rvd25sb2FkL2dwdW1lbS50eHQgOzsKICAgICBlc2FjCiAgICAgZHVtcHN5
cyBncHUgLS1ncHVtZW0gPj4gL3NkY2FyZC9Eb3dubG9hZC9ncHVtZW0udHh0Ci0gICAgc2xlZXAg
MTsKKyAgICB0aW1lX2VsYXBzZWQ9JCgoIFNFQ09ORFMgLSBzdGFydF90aW1lICkpCisgICAgZWNo
byAidGltZV9lbGFwc2VkOiAkdGltZV9lbGFwc2VkIiA+PiAvc2RjYXJkL0Rvd25sb2FkL2dwdW1l
bS50eHQKKyAgICBzbGVlcCAkc2xlZXBfZHVyYXRpb247CiBkb25lCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvcmVzdHJpY3RlZF90cmFjZXMvcmVzdHJpY3Rl
ZF90cmFjZV9nb2xkX3Rlc3RzLnB5IGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3Rz
L3Jlc3RyaWN0ZWRfdHJhY2VzL3Jlc3RyaWN0ZWRfdHJhY2VfZ29sZF90ZXN0cy5weQppbmRleCBk
Mzg2NWNiNDhlYzE5NmUyZjUzMzQ1YTM5MGYxMzAwMjZiMzE4Y2MwLi5jYTRjMTVkMDAxNzk4NjNj
NTY3NWI2NjJjMjc0MjQ0MWM3NjcyZDc5IDEwMDc1NQotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9B
TkdMRS9zcmMvdGVzdHMvcmVzdHJpY3RlZF90cmFjZXMvcmVzdHJpY3RlZF90cmFjZV9nb2xkX3Rl
c3RzLnB5CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9yZXN0cmljdGVk
X3RyYWNlcy9yZXN0cmljdGVkX3RyYWNlX2dvbGRfdGVzdHMucHkKQEAgLTEyLDkgKzEyLDExIEBA
CiBpbXBvcnQgYXJncGFyc2UKIGltcG9ydCBjb250ZXh0bGliCiBpbXBvcnQgZm5tYXRjaAoraW1w
b3J0IGZ1bmN0b29scwogaW1wb3J0IGpzb24KIGltcG9ydCBsb2dnaW5nCiBpbXBvcnQgb3MKK2lt
cG9ydCBwYXRobGliCiBpbXBvcnQgcGxhdGZvcm0KIGltcG9ydCByZQogaW1wb3J0IHNodXRpbApA
QCAtMjMsMjQgKzI1LDE2IEBAIGltcG9ydCB0ZW1wZmlsZQogaW1wb3J0IHRpbWUKIGltcG9ydCB0
cmFjZWJhY2sKIAotIyBBZGQgLy9zcmMvdGVzdGluZyBpbnRvIHN5cy5wYXRoIGZvciBpbXBvcnRp
bmcgeHZmYiBhbmQgdGVzdF9lbnYsIGFuZAotIyAvL3NyYy90ZXN0aW5nL3NjcmlwdHMgZm9yIGlt
cG9ydGluZyBjb21tb24uCi1kID0gb3MucGF0aC5kaXJuYW1lCi1USElTX0RJUiA9IGQob3MucGF0
aC5hYnNwYXRoKF9fZmlsZV9fKSkKLXN5cy5wYXRoLmluc2VydCgwLCBkKFRISVNfRElSKSkKIAor
UFlfVVRJTFMgPSBzdHIocGF0aGxpYi5QYXRoKF9fZmlsZV9fKS5yZXNvbHZlKCkucGFyZW50c1sx
XSAvICdweV91dGlscycpCitpZiBQWV9VVElMUyBub3QgaW4gc3lzLnBhdGg6CisgICAgb3Muc3Rh
dChQWV9VVElMUykgYW5kIHN5cy5wYXRoLmluc2VydCgwLCBQWV9VVElMUykKK2ltcG9ydCBhbmRy
b2lkX2hlbHBlcgoraW1wb3J0IGFuZ2xlX3BhdGhfdXRpbAogZnJvbSBza2lhX2dvbGQgaW1wb3J0
IGFuZ2xlX3NraWFfZ29sZF9wcm9wZXJ0aWVzCiBmcm9tIHNraWFfZ29sZCBpbXBvcnQgYW5nbGVf
c2tpYV9nb2xkX3Nlc3Npb25fbWFuYWdlcgogCi1BTkdMRV9TUkNfRElSID0gZChkKGQoVEhJU19E
SVIpKSkKLXN5cy5wYXRoLmluc2VydCgwLCBvcy5wYXRoLmpvaW4oQU5HTEVfU1JDX0RJUiwgJ3Rl
c3RpbmcnKSkKLXN5cy5wYXRoLmluc2VydCgwLCBvcy5wYXRoLmpvaW4oQU5HTEVfU1JDX0RJUiwg
J3Rlc3RpbmcnLCAnc2NyaXB0cycpKQotIyBIYW5kbGUgdGhlIENocm9taXVtLXJlbGF0aXZlIGRp
cmVjdG9yeSBhcyB3ZWxsLiBBcyBsb25nIGFzIG9uZSBkaXJlY3RvcnkKLSMgaXMgdmFsaWQsIFB5
dGhvbiBpcyBoYXBweS4KLUNIUk9NSVVNX1NSQ19ESVIgPSBkKGQoQU5HTEVfU1JDX0RJUikpCi1z
eXMucGF0aC5pbnNlcnQoMCwgb3MucGF0aC5qb2luKENIUk9NSVVNX1NSQ19ESVIsICd0ZXN0aW5n
JykpCi1zeXMucGF0aC5pbnNlcnQoMCwgb3MucGF0aC5qb2luKENIUk9NSVVNX1NSQ19ESVIsICd0
ZXN0aW5nJywgJ3NjcmlwdHMnKSkKLQorYW5nbGVfcGF0aF91dGlsLkFkZERlcHNEaXJUb1BhdGgo
J3Rlc3Rpbmcvc2NyaXB0cycpCiBpbXBvcnQgY29tbW9uCiBpbXBvcnQgdGVzdF9lbnYKIGltcG9y
dCB4dmZiCkBAIC01Nyw2ICs1MSw3IEBAIERFRkFVTFRfU0NSRUVOU0hPVF9QUkVGSVggPSAnYW5n
bGVfdnVsa2FuXycKIFNXSUZUU0hBREVSX1NDUkVFTlNIT1RfUFJFRklYID0gJ2FuZ2xlX3Z1bGth
bl9zd2lmdHNoYWRlcl8nCiBERUZBVUxUX0JBVENIX1NJWkUgPSA1CiBERUZBVUxUX0xPRyA9ICdp
bmZvJworREVGQVVMVF9HT0xEX0lOU1RBTkNFID0gJ2FuZ2xlJwogCiAjIEZpbHRlcnMgb3V0IHN0
dWZmIGxpa2U6ICIgSSAgIDcyLjU3MnMgcnVuX3Rlc3RzX29uX2RldmljZSg5NjA3MUZGQVowMDA5
NikgIgogQU5EUk9JRF9MT0dHSU5HX1BSRUZJWCA9IHInSSArXGQrLlxkK3MgXHcrXChcdytcKSAg
JwpAQCAtMTI1LDEzICsxMjAsMzUgQEAgZGVmIGFkZF9za2lhX2dvbGRfYXJncyhwYXJzZXIpOgog
ICAgICAgICAncHJlLWF1dGhlbnRpY2F0ZWQuIE1lYW50IGZvciB0ZXN0aW5nIGxvY2FsbHkgaW5z
dGVhZCBvZiBvbiB0aGUgYm90cy4nKQogCiAKLWRlZiBydW5fd3JhcHBlcihhcmdzLCBjbWQsIGVu
diwgc3Rkb3V0ZmlsZT1Ob25lKToKK0BmdW5jdG9vbHMubHJ1X2NhY2hlKCkKK2RlZiBfdXNlX2Fk
Yih0ZXN0X3N1aXRlKToKKyAgICByZXR1cm4gYW5kcm9pZF9oZWxwZXIuQXBrRmlsZUV4aXN0cyh0
ZXN0X3N1aXRlKQorCisKK2RlZiBydW5fd3JhcHBlcih0ZXN0X3N1aXRlLCBjbWRfYXJncywgYXJn
cywgZW52LCBzdGRvdXRmaWxlKToKKyAgICBpZiBfdXNlX2FkYihhcmdzLnRlc3Rfc3VpdGUpOgor
ICAgICAgICByZXR1cm4gYW5kcm9pZF9oZWxwZXIuUnVuVGVzdHModGVzdF9zdWl0ZSwgY21kX2Fy
Z3MsIHN0ZG91dGZpbGUpWzBdCisKKyAgICBjbWQgPSBbZ2V0X2JpbmFyeV9uYW1lKHRlc3Rfc3Vp
dGUpXSArIGNtZF9hcmdzCisKICAgICBpZiBhcmdzLnh2ZmI6CiAgICAgICAgIHJldHVybiB4dmZi
LnJ1bl9leGVjdXRhYmxlKGNtZCwgZW52LCBzdGRvdXRmaWxlPXN0ZG91dGZpbGUpCiAgICAgZWxz
ZToKICAgICAgICAgcmV0dXJuIHRlc3RfZW52LnJ1bl9jb21tYW5kX3dpdGhfb3V0cHV0KGNtZCwg
ZW52PWVudiwgc3Rkb3V0ZmlsZT1zdGRvdXRmaWxlKQogCiAKK2RlZiBydW5fYW5nbGVfc3lzdGVt
X2luZm9fdGVzdChzeXNpbmZvX2FyZ3MsIGFyZ3MsIGVudik6CisgICAgd2l0aCB0ZW1wb3Jhcnlf
ZGlyKCkgYXMgdGVtcF9kaXI6CisgICAgICAgIHRlbXBmaWxlX3BhdGggPSBvcy5wYXRoLmpvaW4o
dGVtcF9kaXIsICdzdGRvdXQnKQorICAgICAgICBzeXNpbmZvX2FyZ3MgKz0gWyctLXJlbmRlci10
ZXN0LW91dHB1dC1kaXI9JyArIHRlbXBfZGlyXQorCisgICAgICAgIGlmIHJ1bl93cmFwcGVyKCdh
bmdsZV9zeXN0ZW1faW5mb190ZXN0Jywgc3lzaW5mb19hcmdzLCBhcmdzLCBlbnYsIHRlbXBmaWxl
X3BhdGgpOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdFcnJvciBnZXR0aW5nIHN5c3Rl
bSBpbmZvLicpCisKKyAgICAgICAgd2l0aCBvcGVuKG9zLnBhdGguam9pbih0ZW1wX2RpciwgJ2Fu
Z2xlX3N5c3RlbV9pbmZvLmpzb24nKSkgYXMgZjoKKyAgICAgICAgICAgIHJldHVybiBqc29uLmxv
YWQoZikKKworCiBkZWYgdG9faGV4KG51bSk6CiAgICAgcmV0dXJuIGhleChpbnQobnVtKSkKIApA
QCAtMTY0LDE3ICsxODEsMTUgQEAgZGVmIGdldF9za2lhX2dvbGRfa2V5cyhhcmdzLCBlbnYpOgog
ICAgICAgICBsb2dnaW5nLmV4Y2VwdGlvbignZ2V0X3NraWFfZ29sZF9rZXlzIG1heSBvbmx5IGJl
IGNhbGxlZCBvbmNlJykKICAgICBnZXRfc2tpYV9nb2xkX2tleXMuY2FsbGVkID0gVHJ1ZQogCi0g
ICAgd2l0aCB0ZW1wb3JhcnlfZGlyKCkgYXMgdGVtcF9kaXI6Ci0gICAgICAgIGJpbmFyeSA9IGdl
dF9iaW5hcnlfbmFtZSgnYW5nbGVfc3lzdGVtX2luZm9fdGVzdCcpCi0gICAgICAgIHN5c2luZm9f
YXJncyA9IFtiaW5hcnksICctLXZ1bGthbicsICctdicsICctLXJlbmRlci10ZXN0LW91dHB1dC1k
aXI9JyArIHRlbXBfZGlyXQotICAgICAgICBpZiBhcmdzLnN3aWZ0c2hhZGVyOgotICAgICAgICAg
ICAgc3lzaW5mb19hcmdzLmFwcGVuZCgnLS1zd2lmdHNoYWRlcicpCi0gICAgICAgIHRlbXBmaWxl
X3BhdGggPSBvcy5wYXRoLmpvaW4odGVtcF9kaXIsICdzdGRvdXQnKQotICAgICAgICBpZiBydW5f
d3JhcHBlcihhcmdzLCBzeXNpbmZvX2FyZ3MsIGVudiwgdGVtcGZpbGVfcGF0aCk6Ci0gICAgICAg
ICAgICByYWlzZSBFeGNlcHRpb24oJ0Vycm9yIGdldHRpbmcgc3lzdGVtIGluZm8uJykKKyAgICBz
eXNpbmZvX2FyZ3MgPSBbJy0tdnVsa2FuJywgJy12J10KKyAgICBpZiBhcmdzLnN3aWZ0c2hhZGVy
OgorICAgICAgICBzeXNpbmZvX2FyZ3MuYXBwZW5kKCctLXN3aWZ0c2hhZGVyJykKIAotICAgICAg
ICB3aXRoIG9wZW4ob3MucGF0aC5qb2luKHRlbXBfZGlyLCAnYW5nbGVfc3lzdGVtX2luZm8uanNv
bicpKSBhcyBmOgotICAgICAgICAgICAganNvbl9kYXRhID0ganNvbi5sb2FkKGYpCisgICAgaWYg
X3VzZV9hZGIoYXJncy50ZXN0X3N1aXRlKToKKyAgICAgICAganNvbl9kYXRhID0gYW5kcm9pZF9o
ZWxwZXIuQW5nbGVTeXN0ZW1JbmZvKHN5c2luZm9fYXJncykKKyAgICAgICAgbG9nZ2luZy5pbmZv
KGpzb25fZGF0YSkKKyAgICBlbHNlOgorICAgICAgICBqc29uX2RhdGEgPSBydW5fYW5nbGVfc3lz
dGVtX2luZm9fdGVzdChzeXNpbmZvX2FyZ3MsIGFyZ3MsIGVudikKIAogICAgIGlmIGxlbihqc29u
X2RhdGEuZ2V0KCdncHVzJywgW10pKSA9PSAwIG9yIG5vdCAnYWN0aXZlR1BVSW5kZXgnIGluIGpz
b25fZGF0YToKICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdFcnJvciBnZXR0aW5nIHN5c3RlbSBp
bmZvLicpCkBAIC0yMzgsOCArMjUzLDcgQEAgZGVmIHVwbG9hZF90ZXN0X3Jlc3VsdF90b19za2lh
X2dvbGQoYXJncywgZ29sZF9zZXNzaW9uX21hbmFnZXIsIGdvbGRfc2Vzc2lvbiwgZ28KICAgICBw
bmdfZmlsZV9uYW1lID0gb3MucGF0aC5qb2luKHNjcmVlbnNob3RfZGlyLCBwcmVmaXggKyBpbWFn
ZV9uYW1lICsgJy5wbmcnKQogCiAgICAgaWYgbm90IG9zLnBhdGguaXNmaWxlKHBuZ19maWxlX25h
bWUpOgotICAgICAgICBsb2dnaW5nLmluZm8oJ1NjcmVlbnNob3Qgbm90IGZvdW5kLCB0ZXN0IHNr
aXBwZWQuJykKLSAgICAgICAgcmV0dXJuIFNLSVAKKyAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdT
Y3JlZW5zaG90IG5vdCBmb3VuZDogJyArIHBuZ19maWxlX25hbWUpCiAKICAgICBzdGF0dXMsIGVy
cm9yID0gZ29sZF9zZXNzaW9uLlJ1bkNvbXBhcmlzb24oCiAgICAgICAgIG5hbWU9aW1hZ2VfbmFt
ZSwgcG5nX2ZpbGU9cG5nX2ZpbGVfbmFtZSwgdXNlX2x1Y2k9dXNlX2x1Y2kpCkBAIC0yOTcsMTEg
KzMxMSwxNCBAQCBkZWYgX2dldF9ndGVzdF9maWx0ZXJfZm9yX2JhdGNoKGFyZ3MsIGJhdGNoKToK
IGRlZiBfcnVuX3Rlc3RzKGFyZ3MsIHRlc3RzLCBleHRyYV9mbGFncywgZW52LCBzY3JlZW5zaG90
X2RpciwgcmVzdWx0cywgdGVzdF9yZXN1bHRzKToKICAgICBrZXlzID0gZ2V0X3NraWFfZ29sZF9r
ZXlzKGFyZ3MsIGVudikKIAorICAgIGlmIF91c2VfYWRiKGFyZ3MudGVzdF9zdWl0ZSk6CisgICAg
ICAgIGFuZHJvaWRfaGVscGVyLlByZXBhcmVUZXN0U3VpdGUoYXJncy50ZXN0X3N1aXRlKQorCiAg
ICAgd2l0aCB0ZW1wb3JhcnlfZGlyKCdhbmdsZV9za2lhX2dvbGRfJykgYXMgc2tpYV9nb2xkX3Rl
bXBfZGlyOgogICAgICAgICBnb2xkX3Byb3BlcnRpZXMgPSBhbmdsZV9za2lhX2dvbGRfcHJvcGVy
dGllcy5BTkdMRVNraWFHb2xkUHJvcGVydGllcyhhcmdzKQogICAgICAgICBnb2xkX3Nlc3Npb25f
bWFuYWdlciA9IGFuZ2xlX3NraWFfZ29sZF9zZXNzaW9uX21hbmFnZXIuQU5HTEVTa2lhR29sZFNl
c3Npb25NYW5hZ2VyKAogICAgICAgICAgICAgc2tpYV9nb2xkX3RlbXBfZGlyLCBnb2xkX3Byb3Bl
cnRpZXMpCi0gICAgICAgIGdvbGRfc2Vzc2lvbiA9IGdvbGRfc2Vzc2lvbl9tYW5hZ2VyLkdldFNr
aWFHb2xkU2Vzc2lvbihrZXlzKQorICAgICAgICBnb2xkX3Nlc3Npb24gPSBnb2xkX3Nlc3Npb25f
bWFuYWdlci5HZXRTa2lhR29sZFNlc3Npb24oa2V5cywgaW5zdGFuY2U9YXJncy5pbnN0YW5jZSkK
IAogICAgICAgICB0cmFjZXMgPSBbdHJhY2Uuc3BsaXQoJyAnKVswXSBmb3IgdHJhY2UgaW4gdGVz
dHNdCiAKQEAgLTMyMCw2ICszMzcsOSBAQCBkZWYgX3J1bl90ZXN0cyhhcmdzLCB0ZXN0cywgZXh0
cmFfZmxhZ3MsIGVudiwgc2NyZWVuc2hvdF9kaXIsIHJlc3VsdHMsIHRlc3RfcmVzdQogICAgICAg
ICBiYXRjaGVzID0gX2dldF9iYXRjaGVzKHRyYWNlcywgYXJncy5iYXRjaF9zaXplKQogCiAgICAg
ICAgIGZvciBiYXRjaCBpbiBiYXRjaGVzOgorICAgICAgICAgICAgaWYgX3VzZV9hZGIoYXJncy50
ZXN0X3N1aXRlKToKKyAgICAgICAgICAgICAgICBhbmRyb2lkX2hlbHBlci5QcmVwYXJlUmVzdHJp
Y3RlZFRyYWNlcyhiYXRjaCkKKwogICAgICAgICAgICAgZm9yIGl0ZXJhdGlvbiBpbiByYW5nZSgw
LCBhcmdzLmZsYWt5X3JldHJpZXMgKyAxKToKICAgICAgICAgICAgICAgICB3aXRoIGNvbW1vbi50
ZW1wb3JhcnlfZmlsZSgpIGFzIHRlbXBmaWxlX3BhdGg6CiAgICAgICAgICAgICAgICAgICAgICMg
VGhpcyBpcyBob3cgd2Ugc2lnbmFsIGVhcmx5IGV4aXQKQEAgLTMzMCwyNyArMzUwLDMzIEBAIGRl
ZiBfcnVuX3Rlc3RzKGFyZ3MsIHRlc3RzLCBleHRyYV9mbGFncywgZW52LCBzY3JlZW5zaG90X2Rp
ciwgcmVzdWx0cywgdGVzdF9yZXN1CiAgICAgICAgICAgICAgICAgICAgICAgICBsb2dnaW5nLmlu
Zm8oJ1Rlc3QgcnVuIGZhaWxlZCwgcnVubmluZyByZXRyeSAjJWQuLi4nICUgaXRlcmF0aW9uKQog
CiAgICAgICAgICAgICAgICAgICAgIGd0ZXN0X2ZpbHRlciA9IF9nZXRfZ3Rlc3RfZmlsdGVyX2Zv
cl9iYXRjaChhcmdzLCBiYXRjaCkKLSAgICAgICAgICAgICAgICAgICAgY21kID0gWwotICAgICAg
ICAgICAgICAgICAgICAgICAgZ2V0X2JpbmFyeV9uYW1lKGFyZ3MudGVzdF9zdWl0ZSksCisgICAg
ICAgICAgICAgICAgICAgIGNtZF9hcmdzID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgZ3Rl
c3RfZmlsdGVyLAotICAgICAgICAgICAgICAgICAgICAgICAgJy0tcmVuZGVyLXRlc3Qtb3V0cHV0
LWRpcj0lcycgJSBzY3JlZW5zaG90X2RpciwKICAgICAgICAgICAgICAgICAgICAgICAgICctLW9u
ZS1mcmFtZS1vbmx5JywKICAgICAgICAgICAgICAgICAgICAgICAgICctLXZlcmJvc2UtbG9nZ2lu
ZycsCiAgICAgICAgICAgICAgICAgICAgICAgICAnLS1lbmFibGUtYWxsLXRyYWNlLXRlc3RzJywK
KyAgICAgICAgICAgICAgICAgICAgICAgICctLXJlbmRlci10ZXN0LW91dHB1dC1kaXI9JXMnICUg
c2NyZWVuc2hvdF9kaXIsCiAgICAgICAgICAgICAgICAgICAgIF0gKyBleHRyYV9mbGFncwotICAg
ICAgICAgICAgICAgICAgICBiYXRjaF9yZXN1bHQgPSBQQVNTIGlmIHJ1bl93cmFwcGVyKGFyZ3Ms
IGNtZCwgZW52LAorICAgICAgICAgICAgICAgICAgICBiYXRjaF9yZXN1bHQgPSBQQVNTIGlmIHJ1
bl93cmFwcGVyKGFyZ3MudGVzdF9zdWl0ZSwgY21kX2FyZ3MsIGFyZ3MsIGVudiwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wZmlsZV9w
YXRoKSA9PSAwIGVsc2UgRkFJTAogCisgICAgICAgICAgICAgICAgICAgIHdpdGggb3Blbih0ZW1w
ZmlsZV9wYXRoKSBhcyBmOgorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9vdXRwdXQgPSBm
LnJlYWQoKSArICdcbicKKwogICAgICAgICAgICAgICAgICAgICBuZXh0X2JhdGNoID0gW10KICAg
ICAgICAgICAgICAgICAgICAgZm9yIHRyYWNlIGluIGJhdGNoOgogICAgICAgICAgICAgICAgICAg
ICAgICAgYXJ0aWZhY3RzID0ge30KIAogICAgICAgICAgICAgICAgICAgICAgICAgaWYgYmF0Y2hf
cmVzdWx0ID09IFBBU1M6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nZ2luZy5kZWJ1
ZygndXBsb2FkIHRlc3QgcmVzdWx0OiAlcycgJSB0cmFjZSkKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZXN1bHQgPSB1cGxvYWRfdGVzdF9yZXN1bHRfdG9fc2tpYV9nb2xkKGFyZ3MsIGdv
bGRfc2Vzc2lvbl9tYW5hZ2VyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ29sZF9zZXNzaW9uLCBnb2xkX3Byb3Bl
cnRpZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzY3JlZW5zaG90X2RpciwgdHJhY2UsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBh
cnRpZmFjdHMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9wcmVmaXggPSBTV0lG
VFNIQURFUl9URVNUX1BSRUZJWCBpZiBhcmdzLnN3aWZ0c2hhZGVyIGVsc2UgREVGQVVMVF9URVNU
X1BSRUZJWAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNlX3NraXBwZWRfbm90aWNl
ID0gJ1sgIFNLSVBQRUQgXSAnICsgdGVzdF9wcmVmaXggKyB0cmFjZSArICdcbicKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpZiB0cmFjZV9za2lwcGVkX25vdGljZSBpbiB0ZXN0X291dHB1
dDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gU0tJUAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGxvZ2dpbmcuZGVidWcoJ3VwbG9hZCB0ZXN0IHJlc3VsdDogJXMnICUgdHJhY2UpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHVwbG9hZF90ZXN0X3Jlc3VsdF90
b19za2lhX2dvbGQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzLCBn
b2xkX3Nlc3Npb25fbWFuYWdlciwgZ29sZF9zZXNzaW9uLCBnb2xkX3Byb3BlcnRpZXMsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JlZW5zaG90X2RpciwgdHJhY2UsIGFy
dGlmYWN0cykKICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcmVzdWx0ID0gYmF0Y2hfcmVzdWx0CiAKQEAgLTQwNCw2ICs0MzAsMTMgQEAg
ZGVmIG1haW4oKToKICAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KAogICAgICAgICAnLWwnLCAnLS1s
b2cnLCBoZWxwPSdMb2cgb3V0cHV0IGxldmVsLiBEZWZhdWx0IGlzICVzLicgJSBERUZBVUxUX0xP
RywgZGVmYXVsdD1ERUZBVUxUX0xPRykKICAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCctLXN3aWZ0
c2hhZGVyJywgaGVscD0nVGVzdCB3aXRoIFN3aWZ0U2hhZGVyLicsIGFjdGlvbj0nc3RvcmVfdHJ1
ZScpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgKKyAgICAgICAgJy1pJywKKyAgICAgICAgJy0t
aW5zdGFuY2UnLAorICAgICAgICAnLS1nb2xkLWluc3RhbmNlJywKKyAgICAgICAgJy0tc2tpYS1n
b2xkLWluc3RhbmNlJywKKyAgICAgICAgaGVscD0nU2tpYSBHb2xkIGluc3RhbmNlLiBEZWZhdWx0
IGlzICIlcyIuJyAlIERFRkFVTFRfR09MRF9JTlNUQU5DRSwKKyAgICAgICAgZGVmYXVsdD1ERUZB
VUxUX0dPTERfSU5TVEFOQ0UpCiAKICAgICBhZGRfc2tpYV9nb2xkX2FyZ3MocGFyc2VyKQogCkBA
IC00NDIsOCArNDc1LDggQEAgZGVmIG1haW4oKToKIAogICAgIHRyeToKICAgICAgICAgIyByZWFk
IHRlc3Qgc2V0Ci0gICAgICAgIGpzb25fbmFtZSA9IG9zLnBhdGguam9pbihBTkdMRV9TUkNfRElS
LCAnc3JjJywgJ3Rlc3RzJywgJ3Jlc3RyaWN0ZWRfdHJhY2VzJywKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICdyZXN0cmljdGVkX3RyYWNlcy5qc29uJykKKyAgICAgICAganNvbl9u
YW1lID0gb3MucGF0aC5qb2luKGFuZ2xlX3BhdGhfdXRpbC5BTkdMRV9ST09UX0RJUiwgJ3NyYycs
ICd0ZXN0cycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncmVzdHJpY3RlZF90
cmFjZXMnLCAncmVzdHJpY3RlZF90cmFjZXMuanNvbicpCiAgICAgICAgIHdpdGggb3Blbihqc29u
X25hbWUpIGFzIGZwOgogICAgICAgICAgICAgdGVzdHMgPSBqc29uLmxvYWQoZnApCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9yZXN0cmljdGVkX3RyYWNl
cy9yZXN0cmljdGVkX3RyYWNlX3BlcmYucHkgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMv
dGVzdHMvcmVzdHJpY3RlZF90cmFjZXMvcmVzdHJpY3RlZF90cmFjZV9wZXJmLnB5CmluZGV4IGYw
NzE0ZTE4MTI1MzA2YmE3OGRkOWEzMzU5NjM4ZTVmZDE1YjA5NGYuLmU3YTg3YzZmZTZlNTI3YjI0
ODAzNzE3MzliZjI0Zjc3N2ViZGI0NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FO
R0xFL3NyYy90ZXN0cy9yZXN0cmljdGVkX3RyYWNlcy9yZXN0cmljdGVkX3RyYWNlX3BlcmYucHkK
KysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3RzL3Jlc3RyaWN0ZWRfdHJhY2Vz
L3Jlc3RyaWN0ZWRfdHJhY2VfcGVyZi5weQpAQCAtMzksNyArMzksNyBAQCBpbXBvcnQgc3lzCiBp
bXBvcnQgdGltZQogaW1wb3J0IHN0YXRpc3RpY3MKIAotZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQg
ZGVmYXVsdGRpY3QKK2Zyb20gY29sbGVjdGlvbnMgaW1wb3J0IGRlZmF1bHRkaWN0LCBuYW1lZHR1
cGxlCiBmcm9tIGRhdGV0aW1lIGltcG9ydCBkYXRldGltZQogZnJvbSBwc3V0aWwgaW1wb3J0IHBy
b2Nlc3NfaXRlcgogCkBAIC00NywxMCArNDcsMTQgQEAgREVGQVVMVF9URVNUX0RJUiA9ICcuJwog
REVGQVVMVF9URVNUX0pTT04gPSAncmVzdHJpY3RlZF90cmFjZXMuanNvbicKIERFRkFVTFRfTE9H
X0xFVkVMID0gJ2luZm8nCiAKK1Jlc3VsdCA9IG5hbWVkdHVwbGUoJ1Jlc3VsdCcsIFsncHJvY2Vz
cycsICd0aW1lJ10pCisKIAogZGVmIHJ1bl9jb21tYW5kKGFyZ3MpOgogICAgIGxvZ2dpbmcuZGVi
dWcoJ1J1bm5pbmcgJXMnICUgYXJncykKIAorICAgIHN0YXJ0X3RpbWUgPSB0aW1lLnRpbWUoKQor
CiAgICAgdHJ5OgogICAgICAgICBwcm9jZXNzID0gc3VicHJvY2Vzcy5Qb3BlbigKICAgICAgICAg
ICAgIGFyZ3MsCkBAIC02NCw3ICs2OCw5IEBAIGRlZiBydW5fY29tbWFuZChhcmdzKToKIAogICAg
IHByb2Nlc3Mud2FpdCgpCiAKLSAgICByZXR1cm4gcHJvY2VzcworICAgIHRpbWVfZWxhcHNlZCA9
IHRpbWUudGltZSgpIC0gc3RhcnRfdGltZQorCisgICAgcmV0dXJuIFJlc3VsdChwcm9jZXNzLCB0
aW1lX2VsYXBzZWQpCiAKIAogZGVmIHJ1bl9hc3luY19jb21tYW5kKGFyZ3MpOgpAQCAtODcsNyAr
OTMsNyBAQCBkZWYgcnVuX2FzeW5jX2NvbW1hbmQoYXJncyk6CiAKIAogZGVmIGNsZWFudXAoKToK
LSAgICBwcm9jZXNzID0gcnVuX2NvbW1hbmQoJ2FkYiBzaGVsbCBybSAtZiAvc2RjYXJkL0Rvd25s
b2FkL291dC50eHQgL3NkY2FyZC9Eb3dubG9hZC9ncHVtZW0udHh0JykKKyAgICBydW5fY29tbWFu
ZCgnYWRiIHNoZWxsIHJtIC1mIC9zZGNhcmQvRG93bmxvYWQvb3V0LnR4dCAvc2RjYXJkL0Rvd25s
b2FkL2dwdW1lbS50eHQnKQogCiAKIGRlZiBnZXRfbW9kZShhcmdzKToKQEAgLTExNSwxMCArMTIx
LDExIEBAIGRlZiBydW5fdHJhY2UodHJhY2UsIHJlbmRlcmVyLCBhcmdzKToKICAgICBpZiBtb2Rl
ICE9ICcnOgogICAgICAgICBtb2RlID0gJ18nICsgbW9kZQogCi0gICAgIyBLaWNrIG9mZiBhIHN1
YnByb2Nlc3MgdGhhdCBjb2xsZWN0cyBncHVtZW0gZXZlcnkgc2Vjb25kCisgICAgIyBLaWNrIG9m
ZiBhIHN1YnByb2Nlc3MgdGhhdCBjb2xsZWN0cyBwZWFrIGdwdSBtZW1vcnkgcGVyaW9kaWNhbGx5
CisgICAgIyBOb3RlIHRoZSAwLjI1IGJlbG93IGlzIHRoZSBkZWxheSAoaW4gc2Vjb25kcykgYmV0
d2VlbiBtZW1vcnkgY2hlY2tzCiAgICAgcnVuX2NvbW1hbmQoJ2FkYiBwdXNoIGdwdW1lbS5zaCAv
ZGF0YS9sb2NhbC90bXAnKQotICAgIHBvd2VyX2NvbW1hbmQgPSAnYWRiIHNoZWxsIHNoIC9kYXRh
L2xvY2FsL3RtcC9ncHVtZW0uc2gnCi0gICAgcG93ZXJfcHJvY2VzcyA9IHJ1bl9hc3luY19jb21t
YW5kKHBvd2VyX2NvbW1hbmQpCisgICAgbWVtb3J5X2NvbW1hbmQgPSAnYWRiIHNoZWxsIHNoIC9k
YXRhL2xvY2FsL3RtcC9ncHVtZW0uc2ggMC4yNScKKyAgICBtZW1vcnlfcHJvY2VzcyA9IHJ1bl9h
c3luY19jb21tYW5kKG1lbW9yeV9jb21tYW5kKQogCiAgICAgYWRiX2NvbW1hbmQgPSAnYWRiIHNo
ZWxsIGFtIGluc3RydW1lbnQgLXcgJwogICAgIGFkYl9jb21tYW5kICs9ICctZSBvcmcuY2hyb21p
dW0ubmF0aXZlX3Rlc3QuTmF0aXZlVGVzdEluc3RydW1lbnRhdGlvblRlc3RSdW5uZXIuU3Rkb3V0
RmlsZSAvc2RjYXJkL0Rvd25sb2FkL291dC50eHQgJwpAQCAtMTM3LDIwICsxNDQsMjIgQEAgZGVm
IHJ1bl90cmFjZSh0cmFjZSwgcmVuZGVyZXIsIGFyZ3MpOgogICAgIGFkYl9jb21tYW5kICs9ICct
ZSBvcmcuY2hyb21pdW0ubmF0aXZlX3Rlc3QuTmF0aXZlVGVzdEluc3RydW1lbnRhdGlvblRlc3RS
dW5uZXIuTmF0aXZlVGVzdEFjdGl2aXR5IGNvbS5hbmRyb2lkLmFuZ2xlLnRlc3QuQW5nbGVVbml0
VGVzdEFjdGl2aXR5ICcKICAgICBhZGJfY29tbWFuZCArPSAnY29tLmFuZHJvaWQuYW5nbGUudGVz
dC9vcmcuY2hyb21pdW0uYnVpbGQuZ3Rlc3RfYXBrLk5hdGl2ZVRlc3RJbnN0cnVtZW50YXRpb25U
ZXN0UnVubmVyJwogCi0gICAgcHJvY2VzcyA9IHJ1bl9jb21tYW5kKGFkYl9jb21tYW5kKQorICAg
IHJlc3VsdCA9IHJ1bl9jb21tYW5kKGFkYl9jb21tYW5kKQogCiAgICAgbG9nZ2luZy5kZWJ1Zygn
S2lsbGluZyBncHVtZW0gc3VicHJvY2VzcycpCi0gICAgcG93ZXJfcHJvY2Vzcy5raWxsKCkKKyAg
ICBtZW1vcnlfcHJvY2Vzcy5raWxsKCkKKworICAgIHJldHVybiByZXN1bHQudGltZQogCiAKIGRl
ZiBnZXRfdGVzdF90aW1lKHJlbmRlcmVyLCB0aW1lKToKICAgICAjIFB1bGwgdGhlIHJlc3VsdHMg
ZnJvbSB0aGUgZGV2aWNlIGFuZCBwYXJzZQotICAgIHByb2Nlc3MgPSBydW5fY29tbWFuZCgnYWRi
IHNoZWxsIGNhdCAvc2RjYXJkL0Rvd25sb2FkL291dC50eHQgfCBncmVwIC12IEVycm9yIHwgZ3Jl
cCAtdiBGcmFtZScpCisgICAgcmVzdWx0ID0gcnVuX2NvbW1hbmQoJ2FkYiBzaGVsbCBjYXQgL3Nk
Y2FyZC9Eb3dubG9hZC9vdXQudHh0IHwgZ3JlcCAtdiBFcnJvciB8IGdyZXAgLXYgRnJhbWUnKQog
CiAgICAgbWVhc3VyZWRfdGltZSA9ICcnCiAKICAgICB3aGlsZSBUcnVlOgotICAgICAgICBsaW5l
ID0gcHJvY2Vzcy5zdGRvdXQucmVhZGxpbmUoKQorICAgICAgICBsaW5lID0gcmVzdWx0LnByb2Nl
c3Muc3Rkb3V0LnJlYWRsaW5lKCkKICAgICAgICAgbG9nZ2luZy5kZWJ1ZygnQ2hlY2tpbmcgbGlu
ZTogJXMnICUgbGluZSkKICAgICAgICAgaWYgbm90IGxpbmU6CiAgICAgICAgICAgICBicmVhawpA
QCAtMTcxLDM0ICsxODAsNDAgQEAgZGVmIGdldF90ZXN0X3RpbWUocmVuZGVyZXIsIHRpbWUpOgog
ICAgIHJldHVybiBtZWFzdXJlZF90aW1lCiAKIAotZGVmIGdldF9ncHVfbWVtb3J5KCk6CitkZWYg
Z2V0X2dwdV9tZW1vcnkodHJhY2VfZHVyYXRpb24pOgogICAgICMgUHVsbCB0aGUgcmVzdWx0cyBm
cm9tIHRoZSBkZXZpY2UgYW5kIHBhcnNlCi0gICAgcHJvY2VzcyA9IHJ1bl9jb21tYW5kKCdhZGIg
c2hlbGwgY2F0IC9zZGNhcmQvRG93bmxvYWQvZ3B1bWVtLnR4dCB8IGF3ayAiTkYiJykKKyAgICBy
ZXN1bHQgPSBydW5fY29tbWFuZCgnYWRiIHNoZWxsIGNhdCAvc2RjYXJkL0Rvd25sb2FkL2dwdW1l
bS50eHQgfCBhd2sgIk5GIicpCiAKICAgICAjIFRoZSBncHVtZW0gc2NyaXB0IGdyYWJzIHNuYXBz
aG90cyBvZiBtZW1vcnkgcGVyIHByb2Nlc3MKLSAgICAjIE91dHB1dCBsb29rcyBsaWtlIHRoaXMs
IHJlcGVhdGVkIG9uY2UgcGVyIHNlY29uZCBvZiB0aGUgdGVzdDoKKyAgICAjIE91dHB1dCBsb29r
cyBsaWtlIHRoaXMsIHJlcGVhdGVkIG9uY2UgcGVyIHNsZWVwX2R1cmF0aW9uIG9mIHRoZSB0ZXN0
OgogICAgICMKLSAgICAjIGNvbS5hbmRyb2lkLmFuZ2xlLnRlc3Q6dGVzdF9wcm9jZXNzIDMxOTMz
CisgICAgIyB0aW1lX2VsYXBzZWQ6IDkKKyAgICAjIGNvbS5hbmRyb2lkLmFuZ2xlLnRlc3Q6dGVz
dF9wcm9jZXNzIDE2NTEzCiAgICAgIyBNZW1vcnkgc25hcHNob3QgZm9yIEdQVSAwOgotICAgICMg
R2xvYmFsIHRvdGFsOiAzOTE2MjY3NTIKLSAgICAjIFByb2MgMTI4NzUgdG90YWw6IDEyMzM1NTEz
NgotICAgICMgUHJvYyAxMzAzMyB0b3RhbDogMzExNjY0NjQKLSAgICAjIFByb2MgMTMyMzggdG90
YWw6IDE0Mzg5MjQ4Ci0gICAgIyBQcm9jIDEzNzA1IHRvdGFsOiAyNTEyODk2MAotICAgICMgUHJv
YyAxNDA5OCB0b3RhbDogMTI4MjA0OAotICAgICMgUHJvYyAxNDYwMCB0b3RhbDogMTAyODA5Ngot
ICAgICMgUHJvYyAxNTE0NCB0b3RhbDogMTQyMTMxMgotICAgICMgUHJvYyAzMTkzMyB0b3RhbDog
MjM1MTg0MTI4CisgICAgIyBHbG9iYWwgdG90YWw6IDUxNjgzMzI4MAorICAgICMgUHJvYyA1MDQg
dG90YWw6IDE3MDM4NTQwOAorICAgICMgUHJvYyAxNzA4IHRvdGFsOiAzMzc2NzQyNAorICAgICMg
UHJvYyAyMDExIHRvdGFsOiAxNzAxODg4MAorICAgICMgUHJvYyAxNjUxMyB0b3RhbDogMzQ4NDc5
NDg4CisgICAgIyBQcm9jIDI3Mjg2IHRvdGFsOiAyMDg3NzMxMgorICAgICMgUHJvYyAyNzM5OCB0
b3RhbDogMTAyODA5NgogCiAgICAgIyBHYXRoZXIgdGhlIG1lbW9yeSBhdCBlYWNoIHNuYXBzaG90
CisgICAgdGltZV9lbGFwc2VkID0gJycKICAgICB0ZXN0X3Byb2Nlc3MgPSAnJwogICAgIGdwdV9t
ZW0gPSBbXQorICAgIGdwdV9tZW1fc3VzdGFpbmVkID0gW10KICAgICB3aGlsZSBUcnVlOgotICAg
ICAgICBsaW5lID0gcHJvY2Vzcy5zdGRvdXQucmVhZGxpbmUoKQorICAgICAgICBsaW5lID0gcmVz
dWx0LnByb2Nlc3Muc3Rkb3V0LnJlYWRsaW5lKCkKICAgICAgICAgbG9nZ2luZy5kZWJ1ZygnQ2hl
Y2tpbmcgbGluZTogJXMnICUgbGluZSkKICAgICAgICAgaWYgbm90IGxpbmU6CiAgICAgICAgICAg
ICBicmVhawogCisgICAgICAgIGlmICJ0aW1lX2VsYXBzZWQiIGluIGxpbmU6CisgICAgICAgICAg
ICB0aW1lX2VsYXBzZWQgPSBsaW5lLnNwbGl0KClbLTFdCisgICAgICAgICAgICBsb2dnaW5nLmRl
YnVnKCd0aW1lX2VsYXBzZWQ6ICVzJyAlIHRpbWVfZWxhcHNlZCkKKyAgICAgICAgICAgIGNvbnRp
bnVlCisKICAgICAgICAgIyBMb29rIGZvciB0aGlzIGxpbmUgYW5kIGdyYWIgdGhlIGxhc3QgZW50
cnk6CiAgICAgICAgICMgICBjb20uYW5kcm9pZC5hbmdsZS50ZXN0OnRlc3RfcHJvY2VzcyAzMTkz
MwogICAgICAgICBpZiAiY29tLmFuZHJvaWQuYW5nbGUudGVzdCIgaW4gbGluZToKQEAgLTIxNiwy
OCArMjMxLDM0IEBAIGRlZiBnZXRfZ3B1X21lbW9yeSgpOgogICAgICAgICAjICAgUHJvYyAzMTkz
MyB0b3RhbDogMjM1MTg0MTI4CiAgICAgICAgIGlmIHRlc3RfcHJvY2VzcyBpbiBsaW5lOgogICAg
ICAgICAgICAgZ3B1X21lbV9lbnRyeSA9IGxpbmUuc3BsaXQoKVstMV0KLSAgICAgICAgICAgIGxv
Z2dpbmcuZGVidWcoJ0FkZGluZzogJXMnICUgZ3B1X21lbV9lbnRyeSkKKyAgICAgICAgICAgIGxv
Z2dpbmcuZGVidWcoJ0FkZGluZzogJXMgdG8gZ3B1X21lbScgJSBncHVfbWVtX2VudHJ5KQogICAg
ICAgICAgICAgZ3B1X21lbS5hcHBlbmQoaW50KGdwdV9tZW1fZW50cnkpKQogICAgICAgICAgICAg
IyBsb2dnaW5nLmRlYnVnKCdncHVfbWVtIGNvbnRhaW5zOiAlaScgJSAnICcuam9pbihncHVfbWVt
KSkKKyAgICAgICAgICAgIGlmIHNhZmVfY2FzdF9mbG9hdCh0aW1lX2VsYXBzZWQpID49IChzYWZl
X2Nhc3RfZmxvYXQodHJhY2VfZHVyYXRpb24pIC8gMik6CisgICAgICAgICAgICAgICAgIyBTdGFy
dCB0cmFja2luZyBzdXN0YWluZWQgbWVtb3J5IHVzYWdlIGF0IHRoZSBoYWxmIHdheSBwb2ludAor
ICAgICAgICAgICAgICAgIGxvZ2dpbmcuZGVidWcoJ0FkZGluZzogJXMgdG8gZ3B1X21lbV9zdXN0
YWluZWQnICUgZ3B1X21lbV9lbnRyeSkKKyAgICAgICAgICAgICAgICBncHVfbWVtX3N1c3RhaW5l
ZC5hcHBlbmQoaW50KGdwdV9tZW1fZW50cnkpKQogICAgICAgICAgICAgY29udGludWUKIAotICAg
IGdwdV9tZW1fYXZlcmFnZSA9IDAKICAgICBncHVfbWVtX21heCA9IDAKICAgICBpZiBsZW4oZ3B1
X21lbSkgIT0gMDoKLSAgICAgICAgZ3B1X21lbV9hdmVyYWdlID0gc3RhdGlzdGljcy5tZWFuKGdw
dV9tZW0pCiAgICAgICAgIGdwdV9tZW1fbWF4ID0gbWF4KGdwdV9tZW0pCiAKKyAgICBncHVfbWVt
X2F2ZXJhZ2UgPSAwCisgICAgaWYgbGVuKGdwdV9tZW1fc3VzdGFpbmVkKSAhPSAwOgorICAgICAg
ICBncHVfbWVtX2F2ZXJhZ2UgPSBzdGF0aXN0aWNzLm1lYW4oZ3B1X21lbV9zdXN0YWluZWQpCisK
ICAgICByZXR1cm4gZ3B1X21lbV9hdmVyYWdlLCBncHVfbWVtX21heAogCiAKIGRlZiBnZXRfZ3B1
X3RpbWUoKToKICAgICAjIFB1bGwgdGhlIHJlc3VsdHMgZnJvbSB0aGUgZGV2aWNlIGFuZCBwYXJz
ZQotICAgIHByb2Nlc3MgPSBydW5fY29tbWFuZCgnYWRiIHNoZWxsIGNhdCAvc2RjYXJkL0Rvd25s
b2FkL291dC50eHQnKQorICAgIHJlc3VsdCA9IHJ1bl9jb21tYW5kKCdhZGIgc2hlbGwgY2F0IC9z
ZGNhcmQvRG93bmxvYWQvb3V0LnR4dCcpCiAgICAgZ3B1X3RpbWUgPSAnJwogCiAgICAgd2hpbGUg
VHJ1ZToKICAgICAgICAgIyBMb29rIGZvciAiZ3B1X3RpbWUiIGluIHRoZSBsaW5lIGFuZCBncmFi
IHRoZSBzZWNvbmQgdG8gbGFzdCBlbnRyeToKLSAgICAgICAgbGluZSA9IHByb2Nlc3Muc3Rkb3V0
LnJlYWRsaW5lKCkKKyAgICAgICAgbGluZSA9IHJlc3VsdC5wcm9jZXNzLnN0ZG91dC5yZWFkbGlu
ZSgpCiAgICAgICAgIGxvZ2dpbmcuZGVidWcoJ0NoZWNraW5nIGxpbmU6ICVzJyAlIGxpbmUpCiAg
ICAgICAgIGlmIG5vdCBsaW5lOgogICAgICAgICAgICAgYnJlYWsKQEAgLTI1MSwxMiArMjcyLDEy
IEBAIGRlZiBnZXRfZ3B1X3RpbWUoKToKIAogZGVmIGdldF9jcHVfdGltZSgpOgogICAgICMgUHVs
bCB0aGUgcmVzdWx0cyBmcm9tIHRoZSBkZXZpY2UgYW5kIHBhcnNlCi0gICAgcHJvY2VzcyA9IHJ1
bl9jb21tYW5kKCdhZGIgc2hlbGwgY2F0IC9zZGNhcmQvRG93bmxvYWQvb3V0LnR4dCcpCisgICAg
cmVzdWx0ID0gcnVuX2NvbW1hbmQoJ2FkYiBzaGVsbCBjYXQgL3NkY2FyZC9Eb3dubG9hZC9vdXQu
dHh0JykKICAgICBjcHVfdGltZSA9ICcnCiAKICAgICB3aGlsZSBUcnVlOgogICAgICAgICAjIExv
b2sgZm9yICJjcHVfdGltZSIgaW4gdGhlIGxpbmUgYW5kIGdyYWIgdGhlIHNlY29uZCB0byBsYXN0
IGVudHJ5OgotICAgICAgICBsaW5lID0gcHJvY2Vzcy5zdGRvdXQucmVhZGxpbmUoKQorICAgICAg
ICBsaW5lID0gcmVzdWx0LnByb2Nlc3Muc3Rkb3V0LnJlYWRsaW5lKCkKICAgICAgICAgbG9nZ2lu
Zy5kZWJ1ZygnQ2hlY2tpbmcgbGluZTogJXMnICUgbGluZSkKICAgICAgICAgaWYgbm90IGxpbmU6
CiAgICAgICAgICAgICBicmVhawpAQCAtMjcwLDEyICsyOTEsMTIgQEAgZGVmIGdldF9jcHVfdGlt
ZSgpOgogCiBkZWYgZ2V0X2ZyYW1lX2NvdW50KCk6CiAgICAgIyBQdWxsIHRoZSByZXN1bHRzIGZy
b20gdGhlIGRldmljZSBhbmQgcGFyc2UKLSAgICBwcm9jZXNzID0gcnVuX2NvbW1hbmQoJ2FkYiBz
aGVsbCBjYXQgL3NkY2FyZC9Eb3dubG9hZC9vdXQudHh0IHwgZ3JlcCAtdiBFcnJvciB8IGdyZXAg
LXYgRnJhbWUnKQorICAgIHJlc3VsdCA9IHJ1bl9jb21tYW5kKCdhZGIgc2hlbGwgY2F0IC9zZGNh
cmQvRG93bmxvYWQvb3V0LnR4dCB8IGdyZXAgLXYgRXJyb3IgfCBncmVwIC12IEZyYW1lJykKIAog
ICAgIGZyYW1lX2NvdW50ID0gMAogCiAgICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgbGluZSA9IHBy
b2Nlc3Muc3Rkb3V0LnJlYWRsaW5lKCkKKyAgICAgICAgbGluZSA9IHJlc3VsdC5wcm9jZXNzLnN0
ZG91dC5yZWFkbGluZSgpCiAgICAgICAgIGxvZ2dpbmcuZGVidWcoJ0NoZWNraW5nIGxpbmU6ICVz
JyAlIGxpbmUpCiAgICAgICAgIGlmIG5vdCBsaW5lOgogICAgICAgICAgICAgYnJlYWsKQEAgLTMw
Miw3ICszMjMsNyBAQCBjbGFzcyBHUFVQb3dlclN0YXRzKCk6CiAgICAgICAgIGdwdV9wb3dlcl9j
b21tYW5kICs9ICdjYXQgL3N5cy9idXMvaWlvL2RldmljZXMvaWlvOmRldmljZTEvZW5lcmd5X3Zh
bHVlJwogICAgICAgICBncHVfcG93ZXJfY29tbWFuZCArPSAnIicKIAotICAgICAgICBncHVfcHJv
Y2VzcyA9IHJ1bl9jb21tYW5kKGdwdV9wb3dlcl9jb21tYW5kKQorICAgICAgICBncHVfcmVzdWx0
ID0gcnVuX2NvbW1hbmQoZ3B1X3Bvd2VyX2NvbW1hbmQpCiAKICAgICAgICAgIyBSZWFkIHRoZSBs
YXN0IHZhbHVlIGZyb20gdGhpcyBsaW5lOgogICAgICAgICAjIENINihUPTI1MTc0MTYxNylbUzJT
X1ZERF9HM0RdLCAzNzAyMDQxNjA3CkBAIC0zMjAsNyArMzQxLDcgQEAgY2xhc3MgR1BVUG93ZXJT
dGF0cygpOgogCiAgICAgICAgICMgUmVhZCB0aGUgc3RhcnRpbmcgcG93ZXIKICAgICAgICAgd2hp
bGUgVHJ1ZToKLSAgICAgICAgICAgIGxpbmUgPSBncHVfcHJvY2Vzcy5zdGRvdXQucmVhZGxpbmUo
KQorICAgICAgICAgICAgbGluZSA9IGdwdV9yZXN1bHQucHJvY2Vzcy5zdGRvdXQucmVhZGxpbmUo
KQogICAgICAgICAgICAgbG9nZ2luZy5kZWJ1ZygnQ2hlY2tpbmcgbGluZTogJXMnICUgbGluZSkK
ICAgICAgICAgICAgIGlmIG5vdCBsaW5lOgogICAgICAgICAgICAgICAgIGJyZWFrCkBAIC0zMzUs
NyArMzU2LDcgQEAgY2xhc3MgR1BVUG93ZXJTdGF0cygpOgogICAgICAgICBjcHVfcG93ZXJfY29t
bWFuZCArPSAnY2F0IC9zeXMvYnVzL2lpby9kZXZpY2VzL2lpbzpkZXZpY2UwL2VuZXJneV92YWx1
ZScKICAgICAgICAgY3B1X3Bvd2VyX2NvbW1hbmQgKz0gJyInCiAKLSAgICAgICAgY3B1X3Byb2Nl
c3MgPSBydW5fY29tbWFuZChjcHVfcG93ZXJfY29tbWFuZCkKKyAgICAgICAgY3B1X3Jlc3VsdCA9
IHJ1bl9jb21tYW5kKGNwdV9wb3dlcl9jb21tYW5kKQogCiAgICAgICAgICMgT3V0cHV0IGxpa2Ug
dGhpcwogICAgICAgICAjIHQ9MTYwODY2NDUKQEAgLTM1MCw3ICszNzEsNyBAQCBjbGFzcyBHUFVQ
b3dlclN0YXRzKCk6CiAKICAgICAgICAgIyBTdW0gdXAgdGhlIENQVSBwYXJ0cwogICAgICAgICB3
aGlsZSBUcnVlOgotICAgICAgICAgICAgbGluZSA9IGNwdV9wcm9jZXNzLnN0ZG91dC5yZWFkbGlu
ZSgpCisgICAgICAgICAgICBsaW5lID0gY3B1X3Jlc3VsdC5wcm9jZXNzLnN0ZG91dC5yZWFkbGlu
ZSgpCiAgICAgICAgICAgICBsb2dnaW5nLmRlYnVnKCdDaGVja2luZyBsaW5lOiAlcycgJSBsaW5l
KQogICAgICAgICAgICAgaWYgbm90IGxpbmU6CiAgICAgICAgICAgICAgICAgYnJlYWsKQEAgLTM2
MCw3ICszODEsNyBAQCBjbGFzcyBHUFVQb3dlclN0YXRzKCk6CiAgICAgICAgIGxvZ2dpbmcuZGVi
dWcoInNlbGYuYmlnX2NwdV9wb3dlciAlcyIgJSBzZWxmLmJpZ19jcHVfcG93ZXIpCiAKICAgICAg
ICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgICAgIGxpbmUgPSBjcHVfcHJvY2Vzcy5zdGRvdXQucmVh
ZGxpbmUoKQorICAgICAgICAgICAgbGluZSA9IGNwdV9yZXN1bHQucHJvY2Vzcy5zdGRvdXQucmVh
ZGxpbmUoKQogICAgICAgICAgICAgbG9nZ2luZy5kZWJ1ZygnQ2hlY2tpbmcgbGluZTogJXMnICUg
bGluZSkKICAgICAgICAgICAgIGlmIG5vdCBsaW5lOgogICAgICAgICAgICAgICAgIGJyZWFrCkBA
IC0zNzAsNyArMzkxLDcgQEAgY2xhc3MgR1BVUG93ZXJTdGF0cygpOgogICAgICAgICBsb2dnaW5n
LmRlYnVnKCJzZWxmLm1pZF9jcHVfcG93ZXIgJXMiICUgc2VsZi5taWRfY3B1X3Bvd2VyKQogCiAg
ICAgICAgIHdoaWxlIFRydWU6Ci0gICAgICAgICAgICBsaW5lID0gY3B1X3Byb2Nlc3Muc3Rkb3V0
LnJlYWRsaW5lKCkKKyAgICAgICAgICAgIGxpbmUgPSBjcHVfcmVzdWx0LnByb2Nlc3Muc3Rkb3V0
LnJlYWRsaW5lKCkKICAgICAgICAgICAgIGxvZ2dpbmcuZGVidWcoJ0NoZWNraW5nIGxpbmU6ICVz
JyAlIGxpbmUpCiAgICAgICAgICAgICBpZiBub3QgbGluZToKICAgICAgICAgICAgICAgICBicmVh
awpAQCAtNDgzLDEyICs1MDQsMTIgQEAgZGVmIG1haW4oKToKICAgICBpZiBhcmdzLndhbGx0aW1l
b25seToKICAgICAgICAgcHJpbnQoJyUtKnMnICUgKHRyYWNlX3dpZHRoLCAnd2FsbF90aW1lX3Bl
cl9mcmFtZScpKQogICAgIGVsaWYgYXJncy5wb3dlcjoKLSAgICAgICAgcHJpbnQoJyUtKnMgJS0q
cyAlLSpzICUtKnMgJS0qcyAlLSpzICUtKnMnICUKKyAgICAgICAgcHJpbnQoJyUtKnMgJS0qcyAl
LSpzICUtKnMgJS0qcyAlLSpzICUtKnMgJS0qcycgJQogICAgICAgICAgICAgICAodHJhY2Vfd2lk
dGgsICd0cmFjZScsIDMwLCAnd2FsbF90aW1lJywgMzAsICdncHVfdGltZScsIDIwLCAnY3B1X3Rp
bWUnLCAyMCwKLSAgICAgICAgICAgICAgICdncHVfcG93ZXInLCAyMCwgJ2NwdV9wb3dlcicsIDIw
LCAnZ3B1X21lbScpKQorICAgICAgICAgICAgICAgJ2dwdV9wb3dlcicsIDIwLCAnY3B1X3Bvd2Vy
JywgMjAsICdncHVfbWVtX3N1c3RhaW5lZCcsIDIwLCAnZ3B1X21lbV9wZWFrJykpCiAgICAgICAg
IG91dHB1dF93cml0ZXIud3JpdGVyb3coWwogICAgICAgICAgICAgJ3RyYWNlJywgJ3dhbGxfdGlt
ZShtcyknLCAnZ3B1X3RpbWUobXMpJywgJ2NwdV90aW1lKG1zKScsICdncHVfcG93ZXIodVdzKScs
Ci0gICAgICAgICAgICAnY3B1X3Bvd2VyKHVXcyknLCAnZ3B1X21lbScKKyAgICAgICAgICAgICdj
cHVfcG93ZXIodVdzKScsICdncHVfbWVtX3N1c3RhaW5lZCcsICdncHVfbWVtX3BlYWsnCiAgICAg
ICAgIF0pCiAgICAgZWxzZToKICAgICAgICAgcHJpbnQoJyUtKnMgJS0qcyAlLSpzJyAlCkBAIC01
MTEsNyArNTMyLDggQEAgZGVmIG1haW4oKToKICAgICBjcHVfdGltZXMgPSBkZWZhdWx0ZGljdChk
aWN0KQogICAgIGdwdV9wb3dlcl9wZXJfZnJhbWVzID0gZGVmYXVsdGRpY3QoZGljdCkKICAgICBj
cHVfcG93ZXJfcGVyX2ZyYW1lcyA9IGRlZmF1bHRkaWN0KGRpY3QpCi0gICAgZ3B1X21lbSA9IGRl
ZmF1bHRkaWN0KGRpY3QpCisgICAgZ3B1X21lbV9zdXN0YWluZWRzID0gZGVmYXVsdGRpY3QoZGlj
dCkKKyAgICBncHVfbWVtX3BlYWtzID0gZGVmYXVsdGRpY3QoZGljdCkKIAogICAgIGZvciByZW5k
ZXJlciBpbiByZW5kZXJlcnM6CiAgICAgICAgIGZvciBpIGluIHJhbmdlKGludChhcmdzLmxvb3Bf
Y291bnQpKToKQEAgLTUzMiw3ICs1NTQsNyBAQCBkZWYgbWFpbigpOgogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGludChzdGFydGluZ19wb3dlci5saXR0bGVfY3B1X3Bvd2VyKSkK
IAogICAgICAgICAgICAgICAgIGxvZ2dpbmcuZGVidWcoJ1J1bm5pbmcgJXMnICUgdGVzdCkKLSAg
ICAgICAgICAgICAgICBydW5fdHJhY2UodGVzdCwgcmVuZGVyZXIsIGFyZ3MpCisgICAgICAgICAg
ICAgICAgdGVzdF90aW1lID0gcnVuX3RyYWNlKHRlc3QsIHJlbmRlcmVyLCBhcmdzKQogCiAgICAg
ICAgICAgICAgICAgaWYgYXJncy5wb3dlcjoKICAgICAgICAgICAgICAgICAgICAgZW5kaW5nX3Bv
d2VyLmdldF9wb3dlcl9kYXRhKCkKQEAgLTU2Nyw5ICs1ODksMTAgQEAgZGVmIG1haW4oKToKICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN1bWVkX2NwdV9wb3dlciA9IGNvbnN1bWVkX2JpZ19j
cHVfcG93ZXIgKyBjb25zdW1lZF9taWRfY3B1X3Bvd2VyICsgY29uc3VtZWRfbGl0dGxlX2NwdV9w
b3dlcgogICAgICAgICAgICAgICAgICAgICAgICAgY3B1X3Bvd2VyX3Blcl9mcmFtZSA9IGNvbnN1
bWVkX2NwdV9wb3dlciAvIGludChmcmFtZV9jb3VudCkKIAotICAgICAgICAgICAgICAgIGdwdV9h
dmVyYWdlX21lbSwgZ3B1X21heF9tZW0gPSBnZXRfZ3B1X21lbW9yeSgpCi0gICAgICAgICAgICAg
ICAgbG9nZ2luZy5kZWJ1ZygnJXMgPSAlaSwgJXMgPSAlaScgJQotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKCdncHVfYXZlcmFnZV9tZW0nLCBncHVfYXZlcmFnZV9tZW0sICdncHVfbWF4
X21lbScsIGdwdV9tYXhfbWVtKSkKKyAgICAgICAgICAgICAgICBncHVfbWVtX3N1c3RhaW5lZCwg
Z3B1X21lbV9wZWFrID0gZ2V0X2dwdV9tZW1vcnkodGVzdF90aW1lKQorICAgICAgICAgICAgICAg
IGxvZ2dpbmcuZGVidWcoCisgICAgICAgICAgICAgICAgICAgICclcyA9ICVpLCAlcyA9ICVpJyAl
CisgICAgICAgICAgICAgICAgICAgICgnZ3B1X21lbV9zdXN0YWluZWQnLCBncHVfbWVtX3N1c3Rh
aW5lZCwgJ2dwdV9tZW1fcGVhaycsIGdwdV9tZW1fcGVhaykpCiAKICAgICAgICAgICAgICAgICB0
cmFjZV9uYW1lID0gbW9kZSArIHJlbmRlcmVyICsgJ18nICsgdGVzdAogCkBAIC01ODksOSArNjEy
LDEzIEBAIGRlZiBtYWluKCk6CiAgICAgICAgICAgICAgICAgICAgIGNwdV9wb3dlcl9wZXJfZnJh
bWVzW3Rlc3RdID0gZGVmYXVsdGRpY3QobGlzdCkKICAgICAgICAgICAgICAgICBjcHVfcG93ZXJf
cGVyX2ZyYW1lc1t0ZXN0XVtyZW5kZXJlcl0uYXBwZW5kKHNhZmVfY2FzdF9pbnQoY3B1X3Bvd2Vy
X3Blcl9mcmFtZSkpCiAKLSAgICAgICAgICAgICAgICBpZiBsZW4oZ3B1X21lbVt0ZXN0XSkgPT0g
MDoKLSAgICAgICAgICAgICAgICAgICAgZ3B1X21lbVt0ZXN0XSA9IGRlZmF1bHRkaWN0KGxpc3Qp
Ci0gICAgICAgICAgICAgICAgZ3B1X21lbVt0ZXN0XVtyZW5kZXJlcl0uYXBwZW5kKHNhZmVfY2Fz
dF9pbnQoZ3B1X2F2ZXJhZ2VfbWVtKSkKKyAgICAgICAgICAgICAgICBpZiBsZW4oZ3B1X21lbV9z
dXN0YWluZWRzW3Rlc3RdKSA9PSAwOgorICAgICAgICAgICAgICAgICAgICBncHVfbWVtX3N1c3Rh
aW5lZHNbdGVzdF0gPSBkZWZhdWx0ZGljdChsaXN0KQorICAgICAgICAgICAgICAgIGdwdV9tZW1f
c3VzdGFpbmVkc1t0ZXN0XVtyZW5kZXJlcl0uYXBwZW5kKHNhZmVfY2FzdF9pbnQoZ3B1X21lbV9z
dXN0YWluZWQpKQorCisgICAgICAgICAgICAgICAgaWYgbGVuKGdwdV9tZW1fcGVha3NbdGVzdF0p
ID09IDA6CisgICAgICAgICAgICAgICAgICAgIGdwdV9tZW1fcGVha3NbdGVzdF0gPSBkZWZhdWx0
ZGljdChsaXN0KQorICAgICAgICAgICAgICAgIGdwdV9tZW1fcGVha3NbdGVzdF1bcmVuZGVyZXJd
LmFwcGVuZChzYWZlX2Nhc3RfaW50KGdwdV9tZW1fcGVhaykpCiAKICAgICAgICAgICAgICAgICBp
ZiBsZW4oY3B1X3RpbWVzW3Rlc3RdKSA9PSAwOgogICAgICAgICAgICAgICAgICAgICBjcHVfdGlt
ZXNbdGVzdF0gPSBkZWZhdWx0ZGljdChsaXN0KQpAQCAtNjAwLDEyICs2MjcsMTMgQEAgZGVmIG1h
aW4oKToKICAgICAgICAgICAgICAgICBpZiBhcmdzLndhbGx0aW1lb25seToKICAgICAgICAgICAg
ICAgICAgICAgcHJpbnQoJyUtKnMnICUgKHRyYWNlX3dpZHRoLCB3YWxsX3RpbWUpKQogICAgICAg
ICAgICAgICAgIGVsaWYgYXJncy5wb3dlcjoKLSAgICAgICAgICAgICAgICAgICAgcHJpbnQoJyUt
KnMgJS0qcyAlLSpzICUtKnMgJS0qaSAlLSppICUtKmknICUKKyAgICAgICAgICAgICAgICAgICAg
cHJpbnQoJyUtKnMgJS0qcyAlLSpzICUtKnMgJS0qaSAlLSppICUtKmkgJS0qaScgJQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAodHJhY2Vfd2lkdGgsIHRyYWNlX25hbWUsIDMwLCB3YWxsX3Rp
bWUsIDMwLCBncHVfdGltZSwgMjAsIGNwdV90aW1lLCAyMCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGdwdV9wb3dlcl9wZXJfZnJhbWUsIDIwLCBjcHVfcG93ZXJfcGVyX2ZyYW1lLCAyMCwg
Z3B1X2F2ZXJhZ2VfbWVtKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGdwdV9wb3dlcl9w
ZXJfZnJhbWUsIDIwLCBjcHVfcG93ZXJfcGVyX2ZyYW1lLCAyMCwgZ3B1X21lbV9zdXN0YWluZWQs
IDIwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3B1X21lbV9wZWFrKSkKICAgICAgICAg
ICAgICAgICAgICAgb3V0cHV0X3dyaXRlci53cml0ZXJvdyhbCiAgICAgICAgICAgICAgICAgICAg
ICAgICBtb2RlICsgcmVuZGVyZXIgKyAnXycgKyB0ZXN0LCB3YWxsX3RpbWUsIGdwdV90aW1lLCBj
cHVfdGltZSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGdwdV9wb3dlcl9wZXJfZnJhbWUsIGNw
dV9wb3dlcl9wZXJfZnJhbWUsIGdwdV9hdmVyYWdlX21lbQorICAgICAgICAgICAgICAgICAgICAg
ICAgZ3B1X3Bvd2VyX3Blcl9mcmFtZSwgY3B1X3Bvd2VyX3Blcl9mcmFtZSwgZ3B1X21lbV9zdXN0
YWluZWQsIGdwdV9tZW1fcGVhawogICAgICAgICAgICAgICAgICAgICBdKQogICAgICAgICAgICAg
ICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgICAgIHByaW50KCclLSpzICUtKnMgJS0qcycgJQpA
QCAtNjE5LDggKzY0NywxMSBAQCBkZWYgbWFpbigpOgogICAgIHN1bW1hcnlfZmlsZSA9IG9wZW4o
InN1bW1hcnkuIiArIGFyZ3Mub3V0cHV0X3RhZyArICIuY3N2IiwgJ3cnLCBuZXdsaW5lPScnKQog
ICAgIHN1bW1hcnlfd3JpdGVyID0gY3N2LndyaXRlcihzdW1tYXJ5X2ZpbGUpCiAKLSAgICBhbmRy
b2lkX3ZlcnNpb24gPSBydW5fY29tbWFuZCgnYWRiIHNoZWxsIGdldHByb3Agcm8uYnVpbGQuZmlu
Z2VycHJpbnQnKS5zdGRvdXQucmVhZCgpLnN0cmlwKCkKLSAgICBhbmdsZV92ZXJzaW9uID0gcnVu
X2NvbW1hbmQoJ2dpdCByZXYtcGFyc2UgSEVBRCcpLnN0ZG91dC5yZWFkKCkuc3RyaXAoKQorICAg
IGFuZHJvaWRfcmVzdWx0ID0gcnVuX2NvbW1hbmQoJ2FkYiBzaGVsbCBnZXRwcm9wIHJvLmJ1aWxk
LmZpbmdlcnByaW50JykKKyAgICBhbmRyb2lkX3ZlcnNpb24gPSBhbmRyb2lkX3Jlc3VsdC5wcm9j
ZXNzLnN0ZG91dC5yZWFkKCkuc3RyaXAoKQorCisgICAgYW5nbGVfcmVzdWx0ID0gcnVuX2NvbW1h
bmQoJ2dpdCByZXYtcGFyc2UgSEVBRCcpCisgICAgYW5nbGVfdmVyc2lvbiA9IGFuZ2xlX3Jlc3Vs
dC5wcm9jZXNzLnN0ZG91dC5yZWFkKCkuc3RyaXAoKQogICAgICMgdGVzdF90aW1lID0gcnVuX2Nv
bW1hbmQoJ2RhdGUgXCIrJVklbSVkXCInKS5zdGRvdXQucmVhZCgpLnN0cmlwKCkKIAogICAgIHN1
bW1hcnlfd3JpdGVyLndyaXRlcm93KFsKQEAgLTY0Myw3ICs2NzQsMTAgQEAgZGVmIG1haW4oKToK
ICAgICAgICAgIlwiTmF0aXZlXG5DUFVcbnBvd2VyXG52YXJpYW5jZVwiIiwgIlwiQU5HTEVcbkNQ
VVxucG93ZXJcbnBlclxuZnJhbWVcbih1V3MpXCIiLAogICAgICAgICAiXCJBTkdMRVxuQ1BVXG5w
b3dlclxudmFyaWFuY2VcIiIsICJcIkNQVVxucG93ZXJcbmNvbXBhcmVcIiIsICJcIk5hdGl2ZVxu
R1BVXG5tZW1cbihCKVwiIiwKICAgICAgICAgIlwiTmF0aXZlXG5HUFVcbm1lbVxudmFyaWFuY2Vc
IiIsICJcIkFOR0xFXG5HUFVcbm1lbVxuKEIpXCIiLAotICAgICAgICAiXCJBTkdMRVxuR1BVXG5t
ZW1cbnZhcmlhbmNlXCIiLCAiXCJHUFVcbm1lbVxuY29tcGFyZVwiIgorICAgICAgICAiXCJBTkdM
RVxuR1BVXG5tZW1cbnZhcmlhbmNlXCIiLCAiXCJHUFVcbm1lbVxuY29tcGFyZVwiIiwKKyAgICAg
ICAgIlwiTmF0aXZlXG5wZWFrXG5HUFVcbm1lbVxuKEIpXCIiLCAiXCJOYXRpdmVcbnBlYWtcbkdQ
VVxubWVtXG52YXJpYW5jZVwiIiwKKyAgICAgICAgIlwiQU5HTEVcbnBlYWtcbkdQVVxubWVtXG4o
QilcIiIsICJcIkFOR0xFXG5wZWFrXG5HUFVcbm1lbVxudmFyaWFuY2VcIiIsCisgICAgICAgICJc
IkdQVVxucGVha1xubWVtXG5jb21wYXJlXCIiCiAgICAgXSkKIAogICAgIHJvd3MgPSBkZWZhdWx0
ZGljdChkaWN0KQpAQCAtNjcxLDkgKzcwNSwyMCBAQCBkZWYgbWFpbigpOgogICAgIGZvciBuYW1l
LCByZXN1bHRzIGluIGNwdV9wb3dlcl9wZXJfZnJhbWVzLml0ZW1zKCk6CiAgICAgICAgIHBvcHVs
YXRlX3Jvdyhyb3dzLCBuYW1lLCByZXN1bHRzKQogCi0gICAgZm9yIG5hbWUsIHJlc3VsdHMgaW4g
Z3B1X21lbS5pdGVtcygpOgorICAgIGZvciBuYW1lLCByZXN1bHRzIGluIGdwdV9tZW1fc3VzdGFp
bmVkcy5pdGVtcygpOgorICAgICAgICBwb3B1bGF0ZV9yb3cocm93cywgbmFtZSwgcmVzdWx0cykK
KworICAgIGZvciBuYW1lLCByZXN1bHRzIGluIGdwdV9tZW1fcGVha3MuaXRlbXMoKToKICAgICAg
ICAgcG9wdWxhdGVfcm93KHJvd3MsIG5hbWUsIHJlc3VsdHMpCiAKKyAgICBmb3IgbmFtZSwgZGF0
YSBpbiByb3dzLml0ZW1zKCk6CisgICAgICAgIGlmICJuYXRpdmUiIGluIGRhdGEgYW5kICJ2dWxr
YW4iIGluIGRhdGE6CisgICAgICAgICAgICAjIFRoZSByZW1haW5pbmcgY29kZSBpbiB0aGlzIHNj
cmlwdCBleHBlY3RzIGJvdGggbmF0aXZlIGFuZCB2dWxrYW4gcmVzdWx0cworICAgICAgICAgICAg
YnJlYWsKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGxvZ2dpbmcuaW5mbygiU2tpcHBpbmcg
c3VtbWFyeSBmaWxlIGR1ZSB0byBzaW5nbGUgcmVuZGVyZXIiKQorICAgICAgICAgICAgZXhpdCgp
CisKICAgICAjIFdyaXRlIHRoZSBzdW1tYXJ5IGZpbGUKICAgICB0cmFjZV9udW1iZXIgPSAwCiAg
ICAgZm9yIG5hbWUsIGRhdGEgaW4gcm93cy5pdGVtcygpOgpAQCAtNzA5LDcgKzc1NCwxMiBAQCBk
ZWYgbWFpbigpOgogICAgICAgICAgICAgcGVyY2VudChkYXRhWyJuYXRpdmUiXVsxMV0pLAogICAg
ICAgICAgICAgaW50KGRhdGFbInZ1bGthbiJdWzEwXSksCiAgICAgICAgICAgICBwZXJjZW50KGRh
dGFbInZ1bGthbiJdWzExXSksCi0gICAgICAgICAgICBwZXJjZW50KHNhZmVfZGl2aWRlKGRhdGFb
Im5hdGl2ZSJdWzEwXSwgZGF0YVsidnVsa2FuIl1bMTBdKSkKKyAgICAgICAgICAgIHBlcmNlbnQo
c2FmZV9kaXZpZGUoZGF0YVsibmF0aXZlIl1bMTBdLCBkYXRhWyJ2dWxrYW4iXVsxMF0pKSwKKyAg
ICAgICAgICAgIGludChkYXRhWyJuYXRpdmUiXVsxMl0pLAorICAgICAgICAgICAgcGVyY2VudChk
YXRhWyJuYXRpdmUiXVsxM10pLAorICAgICAgICAgICAgaW50KGRhdGFbInZ1bGthbiJdWzEyXSks
CisgICAgICAgICAgICBwZXJjZW50KGRhdGFbInZ1bGthbiJdWzEzXSksCisgICAgICAgICAgICBw
ZXJjZW50KHNhZmVfZGl2aWRlKGRhdGFbIm5hdGl2ZSJdWzEyXSwgZGF0YVsidnVsa2FuIl1bMTJd
KSkKICAgICAgICAgXSkKIAogICAgIHJldHVybiAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9BTkdMRS9zcmMvdGVzdHMvcmVzdHJpY3RlZF90cmFjZXMvcmVzdHJpY3RlZF90cmFjZXMu
anNvbiBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9yZXN0cmljdGVkX3RyYWNl
cy9yZXN0cmljdGVkX3RyYWNlcy5qc29uCmluZGV4IDgzZWJjZmYwZjg4ZWRlZmMwYjFjNTEzMmFm
OWM1ZWE0ZTIwYjViZmQuLjY5NWJkYjkyNThhNjM0MGZhZjczYmFiZTZjYmYwODMyYThmMzI4Yjcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9yZXN0cmljdGVk
X3RyYWNlcy9yZXN0cmljdGVkX3RyYWNlcy5qc29uCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FO
R0xFL3NyYy90ZXN0cy9yZXN0cmljdGVkX3RyYWNlcy9yZXN0cmljdGVkX3RyYWNlcy5qc29uCkBA
IC0xNyw2ICsxNyw3IEBACiAgICAgImFzcGhhbHRfOSA1IiwKICAgICAiYXZha2luX2xpZmUgNSIs
CiAgICAgImF6dGVjX3J1aW5zIDUiLAorICAgICJhenRlY19ydWluc19oaWdoIDEiLAogICAgICJi
YWRsYW5kIDUiLAogICAgICJiZWFjaF9idWdneV9yYWNpbmcgNSIsCiAgICAgImJsYWRlX2FuZF9z
b3VsX3Jldm9sdXRpb24gMSIsCkBAIC0yOCw2ICsyOSw3IEBACiAgICAgImNhbGxfYnJlYWtfb2Zm
bGluZV9jYXJkX2dhbWUgNSIsCiAgICAgImNhbmR5X2NydXNoXzUwMCA1IiwKICAgICAiY2FuZHlf
Y3J1c2hfc29kYV9zYWdhIDUiLAorICAgICJjYXJfY2hhc2UgMSIsCiAgICAgImNhcl9wYXJraW5n
X211bHRpcGxheWVyIDUiLAogICAgICJjYXN0bGV2YW5pYV9zb3RuIDEiLAogICAgICJjbGFzaF9v
Zl9jbGFucyA1IiwKQEAgLTU3LDYgKzU5LDcgQEAKICAgICAiZmlyZV9lbWJsZW1faGVyb2VzIDEi
LAogICAgICJmaXZlX25pZ2h0c19hdF9mcmVkZHlzIDEiLAogICAgICJmcmVlX2ZpcmUgNSIsCisg
ICAgImZyZWVfZmlyZV9tYXggMSIsCiAgICAgImdhcmRlbnNjYXBlcyA1IiwKICAgICAiZ2Vuc2hp
bl9pbXBhY3QgNSIsCiAgICAgImdvb2dsZV9tYXBzIDUiLApAQCAtODcsNiArOTAsNyBAQAogICAg
ICJtaW5lY3JhZnQgNSIsCiAgICAgIm1pbmlfd29ybGQgNSIsCiAgICAgIm1vYmlsZV9sZWdlbmRz
IDUiLAorICAgICJtb25zdGVyX3N0cmlrZSAxIiwKICAgICAibXlfdGFsa2luZ190b20yIDUiLAog
ICAgICJteV90YWxraW5nX3RvbV9mcmllbmRzIDUiLAogICAgICJuYmEyazIwXzgwMCA1IiwKQEAg
LTExMiw2ICsxMTYsNyBAQAogICAgICJyb3BlX2hlcm9fdmljZV90b3duIDUiLAogICAgICJzYWlu
dF9zZWl5YV9hd2FrZW5pbmcgNSIsCiAgICAgInNha3VyYV9zY2hvb2xfc2ltdWxhdG9yIDUiLAor
ICAgICJzY2FyeV90ZWFjaGVyXzNkIDEiLAogICAgICJzY3JhYmJsZV9nbyA1IiwKICAgICAic2hh
ZG93X2ZpZ2h0XzIgNSIsCiAgICAgInNoYWRvd2d1bl9sZWdlbmRzIDEiLApAQCAtMTIwLDYgKzEy
NSw3IEBACiAgICAgInNuaXBlcl8zZCA1IiwKICAgICAic29sYXJfc21hc2ggMiIsCiAgICAgInNv
bmljX3RoZV9oZWRnZWhvZyA1IiwKKyAgICAic3BlY2lhbF9mb3JjZXNfZ3JvdXBfMiAxIiwKICAg
ICAic3RhbmRvZmZfMiA1IiwKICAgICAic3RhdGVfb2Zfc3Vydml2YWwgMSIsCiAgICAgInN1Yndh
eV9wcmluY2Vzc19ydW5uZXIgNSIsCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdM
RS9zcmMvdGVzdHMvcmVzdHJpY3RlZF90cmFjZXMvcmV0cmFjZV9yZXN0cmljdGVkX3RyYWNlcy5w
eSBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9yZXN0cmljdGVkX3RyYWNlcy9y
ZXRyYWNlX3Jlc3RyaWN0ZWRfdHJhY2VzLnB5CmluZGV4IGI0ZTI2ODBkMDhlM2RhZWJmNmNhZWNl
ZTI2MzRmZTI2MTFhZDQ2NTMuLmQ5MTI2Y2E2Njk3ODk3NGE5NjFmNDZiMGU0MGMzMDkzNWNhZWIw
NjAgMTAwNzU1Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9yZXN0cmlj
dGVkX3RyYWNlcy9yZXRyYWNlX3Jlc3RyaWN0ZWRfdHJhY2VzLnB5CisrKyBiL1NvdXJjZS9UaGly
ZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9yZXN0cmljdGVkX3RyYWNlcy9yZXRyYWNlX3Jlc3RyaWN0
ZWRfdHJhY2VzLnB5CkBAIC0xNCw3ICsxNCw2IEBAIGltcG9ydCBmbm1hdGNoCiBpbXBvcnQganNv
bgogaW1wb3J0IGxvZ2dpbmcKIGltcG9ydCBvcwotaW1wb3J0IHJlCiBpbXBvcnQgc2h1dGlsCiBp
bXBvcnQgc3RhdAogaW1wb3J0IHN1YnByb2Nlc3MKQEAgLTMxLDEyICszMCwxNiBAQCBFWElUX1NV
Q0NFU1MgPSAwCiBFWElUX0ZBSUxVUkUgPSAxCiAKIAorZGVmIGdldF90cmFjZV9qc29uX3BhdGgo
dHJhY2UpOgorICAgIHJldHVybiBvcy5wYXRoLmpvaW4oZ2V0X3NjcmlwdF9kaXIoKSwgdHJhY2Us
IGYne3RyYWNlfS5qc29uJykKKworCiBkZWYgbG9hZF90cmFjZV9qc29uKHRyYWNlKToKLSAgICBq
c29uX2ZpbGVfbmFtZSA9IG9zLnBhdGguam9pbihnZXRfc2NyaXB0X2RpcigpLCAnJXMnLCAnJXMu
anNvbicpICUgKHRyYWNlLCB0cmFjZSkKKyAgICBqc29uX2ZpbGVfbmFtZSA9IGdldF90cmFjZV9q
c29uX3BhdGgodHJhY2UpCiAgICAgcmV0dXJuIHJlYWRfanNvbihqc29uX2ZpbGVfbmFtZSkKIAog
Ci1kZWYgZ2V0X2NvbnRleHQodHJhY2UsIHRyYWNlX3BhdGgpOgorZGVmIGdldF9jb250ZXh0KHRy
YWNlKToKICAgICAiIiJSZXR1cm5zIHRoZSB0cmFjZSBjb250ZXh0IG51bWJlci4iIiIKICAgICBq
c29uX2RhdGEgPSBsb2FkX3RyYWNlX2pzb24odHJhY2UpCiAgICAgcmV0dXJuIHN0cihqc29uX2Rh
dGFbJ1dpbmRvd1N1cmZhY2VDb250ZXh0SUQnXSkKQEAgLTQ3LDU1ICs1MCwxNSBAQCBkZWYgZ2V0
X3NjcmlwdF9kaXIoKToKIAogCiBkZWYgY29udGV4dF9oZWFkZXIodHJhY2UsIHRyYWNlX3BhdGgp
OgotICAgIGNvbnRleHRfaWQgPSBnZXRfY29udGV4dCh0cmFjZSwgdHJhY2VfcGF0aCkKKyAgICBj
b250ZXh0X2lkID0gZ2V0X2NvbnRleHQodHJhY2UpCiAgICAgaGVhZGVyID0gJyVzX2NvbnRleHQl
cy5oJyAlICh0cmFjZSwgY29udGV4dF9pZCkKICAgICByZXR1cm4gb3MucGF0aC5qb2luKHRyYWNl
X3BhdGgsIGhlYWRlcikKIAogCi1kZWYgbG9hZF9qc29uX21ldGFkYXRhKHRyYWNlKToKLSAgICBq
c29uX2ZpbGVfbmFtZSA9IG9zLnBhdGguam9pbihnZXRfc2NyaXB0X2RpcigpLCAnJXMvJXMuanNv
bicpICUgKHRyYWNlLCB0cmFjZSkKLSAgICB3aXRoIG9wZW4oanNvbl9maWxlX25hbWUpIGFzIGY6
Ci0gICAgICAgIHJldHVybiBqc29uLmxvYWRzKGYucmVhZCgpKVsnVHJhY2VNZXRhZGF0YSddCi0K
LQogZGVmIHNyY190cmFjZV9wYXRoKHRyYWNlKToKICAgICByZXR1cm4gb3MucGF0aC5qb2luKGdl
dF9zY3JpcHRfZGlyKCksIHRyYWNlKQogCiAKLWRlZiBnZXRfdHJhY2VfbWV0YWRhdGEodHJhY2Up
OgotICAgIHRyYWNlX3BhdGggPSBzcmNfdHJhY2VfcGF0aCh0cmFjZSkKLSAgICBoZWFkZXJfZmls
ZSA9IGNvbnRleHRfaGVhZGVyKHRyYWNlLCB0cmFjZV9wYXRoKQotICAgIG1ldGFkYXRhID0gW10K
LSAgICB3aXRoIG9wZW4oaGVhZGVyX2ZpbGUsICdydCcpIGFzIGY6Ci0gICAgICAgIGZvciBsaW5l
IGluIGYucmVhZGxpbmVzKCk6Ci0gICAgICAgICAgICBmb3Iga2V5d29yZCBpbiBNRVRBREFUQV9L
RVlXT1JEUzoKLSAgICAgICAgICAgICAgICBpZiBrZXl3b3JkIGluIGxpbmU6Ci0gICAgICAgICAg
ICAgICAgICAgIG1ldGFkYXRhICs9IFtsaW5lXQotICAgIHJldHVybiBtZXRhZGF0YQotCi0KLWRl
ZiByZXBsYWNlX21ldGFkYXRhKGhlYWRlcl9maWxlLCBtZXRhZGF0YSk6Ci0gICAgbGluZXMgPSBb
XQotICAgIHJlcGxhY2VkID0gRmFsc2UKLSAgICB3aXRoIG9wZW4oaGVhZGVyX2ZpbGUsICdydCcp
IGFzIGY6Ci0gICAgICAgIGZvciBsaW5lIGluIGYucmVhZGxpbmVzKCk6Ci0gICAgICAgICAgICBm
b3VuZF9rZXl3b3JkID0gRmFsc2UKLSAgICAgICAgICAgIGZvciBrZXl3b3JkIGluIE1FVEFEQVRB
X0tFWVdPUkRTOgotICAgICAgICAgICAgICAgIGlmIGtleXdvcmQgaW4gbGluZToKLSAgICAgICAg
ICAgICAgICAgICAgZm91bmRfa2V5d29yZCA9IFRydWUKLSAgICAgICAgICAgICAgICAgICAgYnJl
YWsKLQotICAgICAgICAgICAgaWYgZm91bmRfa2V5d29yZDoKLSAgICAgICAgICAgICAgICBpZiBu
b3QgcmVwbGFjZWQ6Ci0gICAgICAgICAgICAgICAgICAgIHJlcGxhY2VkID0gVHJ1ZQotICAgICAg
ICAgICAgICAgICAgICBsaW5lcyArPSBtZXRhZGF0YQotICAgICAgICAgICAgZWxzZToKLSAgICAg
ICAgICAgICAgICBsaW5lcyArPSBbbGluZV0KLQotICAgIHdpdGggb3BlbihoZWFkZXJfZmlsZSwg
J3d0JykgYXMgZjoKLSAgICAgICAgZi53cml0ZWxpbmVzKGxpbmVzKQotCi0KIGRlZiBnZXRfbnVt
X2ZyYW1lcyhqc29uX2RhdGEpOgogICAgIG1ldGFkYXRhID0ganNvbl9kYXRhWydUcmFjZU1ldGFk
YXRhJ10KICAgICByZXR1cm4gbWV0YWRhdGFbJ0ZyYW1lRW5kJ10gLSBtZXRhZGF0YVsnRnJhbWVT
dGFydCddICsgMQpAQCAtMjI4LDExICsxOTEsMTEgQEAgZGVmIHVwZ3JhZGVfdHJhY2VzKGFyZ3Ms
IHRyYWNlcyk6CiAgICAgICAgIHRyeToKICAgICAgICAgICAgIHJ1bl90ZXN0X3N1aXRlKGFyZ3Ms
IHRyYWNlLCBtYXhfc3RlcHMsIGFkZGl0aW9uYWxfYXJncywgYWRkaXRpb25hbF9lbnYpCiAKLSAg
ICAgICAgICAgIGhlYWRlcl9maWxlID0gY29udGV4dF9oZWFkZXIodHJhY2UsIHRyYWNlX3BhdGgp
Ci0KLSAgICAgICAgICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyhoZWFkZXJfZmlsZSk6Ci0gICAg
ICAgICAgICAgICAgbG9nZ2luZy5lcnJvcignVGhlcmUgd2FzIGEgcHJvYmxlbSB0cmFjaW5nICIl
cyIsIGNvdWxkIG5vdCBmaW5kIGhlYWRlciBmaWxlOiAlcycgJQotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKHRyYWNlLCBoZWFkZXJfZmlsZSkpCisgICAgICAgICAgICBqc29uX2ZpbGUg
PSBnZXRfdHJhY2VfanNvbl9wYXRoKHRyYWNlKQorICAgICAgICAgICAgaWYgbm90IG9zLnBhdGgu
ZXhpc3RzKGpzb25fZmlsZSk6CisgICAgICAgICAgICAgICAgbG9nZ2luZy5lcnJvcigKKyAgICAg
ICAgICAgICAgICAgICAgZidUaGVyZSB3YXMgYSBwcm9ibGVtIHRyYWNpbmcgInt0cmFjZX0iLCBj
b3VsZCBub3QgZmluZCBqc29uIGZpbGU6IHtqc29uX2ZpbGV9JworICAgICAgICAgICAgICAgICkK
ICAgICAgICAgICAgICAgICBmYWlsdXJlcyArPSBbdHJhY2VdCiAgICAgICAgIGV4Y2VwdDoKICAg
ICAgICAgICAgIGxvZ2dpbmcuZXhjZXB0aW9uKCdUaGVyZSB3YXMgYW4gZXhjZXB0aW9uIHJ1bm5p
bmcgIiVzIjonICUgdHJhY2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9z
cmMvdGVzdHMvcmVzdHJpY3RlZF90cmFjZXMvdHJhY2VfZ2xlc19sb2FkZXJfYXV0b2dlbi5jcHAg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvcmVzdHJpY3RlZF90cmFjZXMvdHJh
Y2VfZ2xlc19sb2FkZXJfYXV0b2dlbi5jcHAKaW5kZXggYmZlZmI4MmMxZGUwZjljMDRkZDBjNmE0
N2IwMTU5MDRjYWRiODRlOC4uNDc0YjI3N2VkMmIyODhlZGM1NjVmMWNiYWQzZmFmMDU3MmU4OGJk
NiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3RzL3Jlc3RyaWN0
ZWRfdHJhY2VzL3RyYWNlX2dsZXNfbG9hZGVyX2F1dG9nZW4uY3BwCisrKyBiL1NvdXJjZS9UaGly
ZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9yZXN0cmljdGVkX3RyYWNlcy90cmFjZV9nbGVzX2xvYWRl
cl9hdXRvZ2VuLmNwcApAQCAtODI2LDYgKzgyNiw3IEBAIEFOR0xFX1RSQUNFX0xPQURFUl9FWFBP
UlQgUEZOR0xHRU5WRVJURVhBUlJBWVNPRVNQUk9DIHRfZ2xHZW5WZXJ0ZXhBcnJheXNPRVM7CiBB
TkdMRV9UUkFDRV9MT0FERVJfRVhQT1JUIFBGTkdMSVNWRVJURVhBUlJBWU9FU1BST0MgdF9nbElz
VmVydGV4QXJyYXlPRVM7CiBBTkdMRV9UUkFDRV9MT0FERVJfRVhQT1JUIFBGTkdMRlJBTUVCVUZG
RVJURVhUVVJFTVVMVElWSUVXT1ZSUFJPQwogICAgIHRfZ2xGcmFtZWJ1ZmZlclRleHR1cmVNdWx0
aXZpZXdPVlI7CitBTkdMRV9UUkFDRV9MT0FERVJfRVhQT1JUIFBGTkdMU0hBRElOR1JBVEVRQ09N
UFJPQyB0X2dsU2hhZGluZ1JhdGVRQ09NOwogQU5HTEVfVFJBQ0VfTE9BREVSX0VYUE9SVCBQRk5H
TERSQVdURVhGT0VTUFJPQyB0X2dsRHJhd1RleGZPRVM7CiBBTkdMRV9UUkFDRV9MT0FERVJfRVhQ
T1JUIFBGTkdMRFJBV1RFWEZWT0VTUFJPQyB0X2dsRHJhd1RleGZ2T0VTOwogQU5HTEVfVFJBQ0Vf
TE9BREVSX0VYUE9SVCBQRk5HTERSQVdURVhJT0VTUFJPQyB0X2dsRHJhd1RleGlPRVM7CkBAIC0y
MTQ0LDE0ICsyMTQ1LDE1IEBAIHZvaWQgTG9hZEdMRVMoTG9hZFByb2MgbG9hZFByb2MpCiAgICAg
ICAgIHJlaW50ZXJwcmV0X2Nhc3Q8UEZOR0xJU1ZFUlRFWEFSUkFZT0VTUFJPQz4obG9hZFByb2Mo
ImdsSXNWZXJ0ZXhBcnJheU9FUyIpKTsKICAgICB0X2dsRnJhbWVidWZmZXJUZXh0dXJlTXVsdGl2
aWV3T1ZSID0gcmVpbnRlcnByZXRfY2FzdDxQRk5HTEZSQU1FQlVGRkVSVEVYVFVSRU1VTFRJVklF
V09WUlBST0M+KAogICAgICAgICBsb2FkUHJvYygiZ2xGcmFtZWJ1ZmZlclRleHR1cmVNdWx0aXZp
ZXdPVlIiKSk7Ci0gICAgdF9nbERyYXdUZXhmT0VTICA9IHJlaW50ZXJwcmV0X2Nhc3Q8UEZOR0xE
UkFXVEVYRk9FU1BST0M+KGxvYWRQcm9jKCJnbERyYXdUZXhmT0VTIikpOwotICAgIHRfZ2xEcmF3
VGV4ZnZPRVMgPSByZWludGVycHJldF9jYXN0PFBGTkdMRFJBV1RFWEZWT0VTUFJPQz4obG9hZFBy
b2MoImdsRHJhd1RleGZ2T0VTIikpOwotICAgIHRfZ2xEcmF3VGV4aU9FUyAgPSByZWludGVycHJl
dF9jYXN0PFBGTkdMRFJBV1RFWElPRVNQUk9DPihsb2FkUHJvYygiZ2xEcmF3VGV4aU9FUyIpKTsK
LSAgICB0X2dsRHJhd1RleGl2T0VTID0gcmVpbnRlcnByZXRfY2FzdDxQRk5HTERSQVdURVhJVk9F
U1BST0M+KGxvYWRQcm9jKCJnbERyYXdUZXhpdk9FUyIpKTsKLSAgICB0X2dsRHJhd1RleHNPRVMg
ID0gcmVpbnRlcnByZXRfY2FzdDxQRk5HTERSQVdURVhTT0VTUFJPQz4obG9hZFByb2MoImdsRHJh
d1RleHNPRVMiKSk7Ci0gICAgdF9nbERyYXdUZXhzdk9FUyA9IHJlaW50ZXJwcmV0X2Nhc3Q8UEZO
R0xEUkFXVEVYU1ZPRVNQUk9DPihsb2FkUHJvYygiZ2xEcmF3VGV4c3ZPRVMiKSk7Ci0gICAgdF9n
bERyYXdUZXh4T0VTICA9IHJlaW50ZXJwcmV0X2Nhc3Q8UEZOR0xEUkFXVEVYWE9FU1BST0M+KGxv
YWRQcm9jKCJnbERyYXdUZXh4T0VTIikpOwotICAgIHRfZ2xEcmF3VGV4eHZPRVMgPSByZWludGVy
cHJldF9jYXN0PFBGTkdMRFJBV1RFWFhWT0VTUFJPQz4obG9hZFByb2MoImdsRHJhd1RleHh2T0VT
IikpOworICAgIHRfZ2xTaGFkaW5nUmF0ZVFDT00gPSByZWludGVycHJldF9jYXN0PFBGTkdMU0hB
RElOR1JBVEVRQ09NUFJPQz4obG9hZFByb2MoImdsU2hhZGluZ1JhdGVRQ09NIikpOworICAgIHRf
Z2xEcmF3VGV4Zk9FUyAgICAgPSByZWludGVycHJldF9jYXN0PFBGTkdMRFJBV1RFWEZPRVNQUk9D
Pihsb2FkUHJvYygiZ2xEcmF3VGV4Zk9FUyIpKTsKKyAgICB0X2dsRHJhd1RleGZ2T0VTICAgID0g
cmVpbnRlcnByZXRfY2FzdDxQRk5HTERSQVdURVhGVk9FU1BST0M+KGxvYWRQcm9jKCJnbERyYXdU
ZXhmdk9FUyIpKTsKKyAgICB0X2dsRHJhd1RleGlPRVMgICAgID0gcmVpbnRlcnByZXRfY2FzdDxQ
Rk5HTERSQVdURVhJT0VTUFJPQz4obG9hZFByb2MoImdsRHJhd1RleGlPRVMiKSk7CisgICAgdF9n
bERyYXdUZXhpdk9FUyAgICA9IHJlaW50ZXJwcmV0X2Nhc3Q8UEZOR0xEUkFXVEVYSVZPRVNQUk9D
Pihsb2FkUHJvYygiZ2xEcmF3VGV4aXZPRVMiKSk7CisgICAgdF9nbERyYXdUZXhzT0VTICAgICA9
IHJlaW50ZXJwcmV0X2Nhc3Q8UEZOR0xEUkFXVEVYU09FU1BST0M+KGxvYWRQcm9jKCJnbERyYXdU
ZXhzT0VTIikpOworICAgIHRfZ2xEcmF3VGV4c3ZPRVMgICAgPSByZWludGVycHJldF9jYXN0PFBG
TkdMRFJBV1RFWFNWT0VTUFJPQz4obG9hZFByb2MoImdsRHJhd1RleHN2T0VTIikpOworICAgIHRf
Z2xEcmF3VGV4eE9FUyAgICAgPSByZWludGVycHJldF9jYXN0PFBGTkdMRFJBV1RFWFhPRVNQUk9D
Pihsb2FkUHJvYygiZ2xEcmF3VGV4eE9FUyIpKTsKKyAgICB0X2dsRHJhd1RleHh2T0VTICAgID0g
cmVpbnRlcnByZXRfY2FzdDxQRk5HTERSQVdURVhYVk9FU1BST0M+KGxvYWRQcm9jKCJnbERyYXdU
ZXh4dk9FUyIpKTsKICAgICB0X2dsQmluZEZyYW1lYnVmZmVyT0VTID0KICAgICAgICAgcmVpbnRl
cnByZXRfY2FzdDxQRk5HTEJJTkRGUkFNRUJVRkZFUk9FU1BST0M+KGxvYWRQcm9jKCJnbEJpbmRG
cmFtZWJ1ZmZlck9FUyIpKTsKICAgICB0X2dsQmluZFJlbmRlcmJ1ZmZlck9FUyA9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvcmVzdHJpY3RlZF90cmFjZXMv
dHJhY2VfZ2xlc19sb2FkZXJfYXV0b2dlbi5oIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3Jj
L3Rlc3RzL3Jlc3RyaWN0ZWRfdHJhY2VzL3RyYWNlX2dsZXNfbG9hZGVyX2F1dG9nZW4uaAppbmRl
eCAwMmUwY2M2YzI4ZDU5NDhmYjU1MjU1ZmY3NzBiODJiMjMwZDNjOGJkLi5hZjFkNmQxNGIzZjY5
ZWE4NDk4M2JmOTIzNWQ1Yjg4OTUyMWM4YjY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9BTkdMRS9zcmMvdGVzdHMvcmVzdHJpY3RlZF90cmFjZXMvdHJhY2VfZ2xlc19sb2FkZXJfYXV0
b2dlbi5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9yZXN0cmljdGVk
X3RyYWNlcy90cmFjZV9nbGVzX2xvYWRlcl9hdXRvZ2VuLmgKQEAgLTc4Niw2ICs3ODYsNyBAQAog
I2RlZmluZSBnbEdlblZlcnRleEFycmF5c09FUyB0X2dsR2VuVmVydGV4QXJyYXlzT0VTCiAjZGVm
aW5lIGdsSXNWZXJ0ZXhBcnJheU9FUyB0X2dsSXNWZXJ0ZXhBcnJheU9FUwogI2RlZmluZSBnbEZy
YW1lYnVmZmVyVGV4dHVyZU11bHRpdmlld09WUiB0X2dsRnJhbWVidWZmZXJUZXh0dXJlTXVsdGl2
aWV3T1ZSCisjZGVmaW5lIGdsU2hhZGluZ1JhdGVRQ09NIHRfZ2xTaGFkaW5nUmF0ZVFDT00KICNk
ZWZpbmUgZ2xEcmF3VGV4Zk9FUyB0X2dsRHJhd1RleGZPRVMKICNkZWZpbmUgZ2xEcmF3VGV4ZnZP
RVMgdF9nbERyYXdUZXhmdk9FUwogI2RlZmluZSBnbERyYXdUZXhpT0VTIHRfZ2xEcmF3VGV4aU9F
UwpAQCAtMTY4Myw2ICsxNjg0LDcgQEAgQU5HTEVfVFJBQ0VfTE9BREVSX0VYUE9SVCBleHRlcm4g
UEZOR0xHRU5WRVJURVhBUlJBWVNPRVNQUk9DIHRfZ2xHZW5WZXJ0ZXhBcnJheXMKIEFOR0xFX1RS
QUNFX0xPQURFUl9FWFBPUlQgZXh0ZXJuIFBGTkdMSVNWRVJURVhBUlJBWU9FU1BST0MgdF9nbElz
VmVydGV4QXJyYXlPRVM7CiBBTkdMRV9UUkFDRV9MT0FERVJfRVhQT1JUIGV4dGVybiBQRk5HTEZS
QU1FQlVGRkVSVEVYVFVSRU1VTFRJVklFV09WUlBST0MKICAgICB0X2dsRnJhbWVidWZmZXJUZXh0
dXJlTXVsdGl2aWV3T1ZSOworQU5HTEVfVFJBQ0VfTE9BREVSX0VYUE9SVCBleHRlcm4gUEZOR0xT
SEFESU5HUkFURVFDT01QUk9DIHRfZ2xTaGFkaW5nUmF0ZVFDT007CiBBTkdMRV9UUkFDRV9MT0FE
RVJfRVhQT1JUIGV4dGVybiBQRk5HTERSQVdURVhGT0VTUFJPQyB0X2dsRHJhd1RleGZPRVM7CiBB
TkdMRV9UUkFDRV9MT0FERVJfRVhQT1JUIGV4dGVybiBQRk5HTERSQVdURVhGVk9FU1BST0MgdF9n
bERyYXdUZXhmdk9FUzsKIEFOR0xFX1RSQUNFX0xPQURFUl9FWFBPUlQgZXh0ZXJuIFBGTkdMRFJB
V1RFWElPRVNQUk9DIHRfZ2xEcmF3VGV4aU9FUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBh
cnR5L0FOR0xFL3NyYy90ZXN0cy9ydW5fcGVyZl90ZXN0cy5weSBiL1NvdXJjZS9UaGlyZFBhcnR5
L0FOR0xFL3NyYy90ZXN0cy9ydW5fcGVyZl90ZXN0cy5weQppbmRleCA2OTNlNGM4ODAwNzIyMWRk
YzEyYmQ3MGFhZTY1OTU2ZTYxMzJmYzlmLi5lZjE1YTEyMmZiNjM3OGVjNzlmNzQ0NmNhMWI1MmFh
ODBiMzk5M2JlIDEwMDc1NQotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMv
cnVuX3BlcmZfdGVzdHMucHkKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3Rz
L3J1bl9wZXJmX3Rlc3RzLnB5CkBAIC05LDI5ICs5LDMwIEBACiAKIGltcG9ydCBhcmdwYXJzZQog
aW1wb3J0IGZubWF0Y2gKK2ltcG9ydCBmdW5jdG9vbHMKIGltcG9ydCBpbXBvcnRsaWIKIGltcG9y
dCBpbwogaW1wb3J0IGpzb24KIGltcG9ydCBsb2dnaW5nCiBpbXBvcnQgdGltZQogaW1wb3J0IG9z
CitpbXBvcnQgcGF0aGxpYgogaW1wb3J0IHJlCiBpbXBvcnQgc3VicHJvY2VzcwogaW1wb3J0IHN5
cwogCi0jIEFkZCAvL3NyYy90ZXN0aW5nIGludG8gc3lzLnBhdGggZm9yIGltcG9ydGluZyB4dmZi
IGFuZCB0ZXN0X2VudiwgYW5kCi0jIC8vc3JjL3Rlc3Rpbmcvc2NyaXB0cyBmb3IgaW1wb3J0aW5n
IGNvbW1vbi4KLWQgPSBvcy5wYXRoLmRpcm5hbWUKLVRISVNfRElSID0gZChvcy5wYXRoLmFic3Bh
dGgoX19maWxlX18pKQotQU5HTEVfRElSID0gZChkKFRISVNfRElSKSkKLXN5cy5wYXRoLmFwcGVu
ZChvcy5wYXRoLmpvaW4oQU5HTEVfRElSLCAndGVzdGluZycpKQotc3lzLnBhdGguYXBwZW5kKG9z
LnBhdGguam9pbihBTkdMRV9ESVIsICd0ZXN0aW5nJywgJ3NjcmlwdHMnKSkKK1BZX1VUSUxTID0g
c3RyKHBhdGhsaWIuUGF0aChfX2ZpbGVfXykucmVzb2x2ZSgpLnBhcmVudCAvICdweV91dGlscycp
CitpZiBQWV9VVElMUyBub3QgaW4gc3lzLnBhdGg6CisgICAgb3Muc3RhdChQWV9VVElMUykgYW5k
IHN5cy5wYXRoLmluc2VydCgwLCBQWV9VVElMUykKK2ltcG9ydCBhbmRyb2lkX2hlbHBlcgoraW1w
b3J0IGFuZ2xlX3BhdGhfdXRpbAogCithbmdsZV9wYXRoX3V0aWwuQWRkRGVwc0RpclRvUGF0aCgn
dGVzdGluZy9zY3JpcHRzJykKIGltcG9ydCBjb21tb24KIGltcG9ydCB0ZXN0X2VudgogaW1wb3J0
IHh2ZmIKIAotc3lzLnBhdGguYXBwZW5kKG9zLnBhdGguam9pbihBTkdMRV9ESVIsICd0aGlyZF9w
YXJ0eScsICdjYXRhcHVsdCcsICd0cmFjaW5nJykpCithbmdsZV9wYXRoX3V0aWwuQWRkRGVwc0Rp
clRvUGF0aCgndGhpcmRfcGFydHkvY2F0YXB1bHQvdHJhY2luZycpCiBmcm9tIHRyYWNpbmcudmFs
dWUgaW1wb3J0IGhpc3RvZ3JhbQogZnJvbSB0cmFjaW5nLnZhbHVlIGltcG9ydCBoaXN0b2dyYW1f
c2V0CiBmcm9tIHRyYWNpbmcudmFsdWUgaW1wb3J0IG1lcmdlX2hpc3RvZ3JhbXMKQEAgLTkyLDE1
ICs5MywyNyBAQCBkZWYgcnVuX2NvbW1hbmRfd2l0aF9vdXRwdXQoYXJndiwgc3Rkb3V0ZmlsZSwg
ZW52PU5vbmUsIGN3ZD1Ob25lLCBsb2c9VHJ1ZSk6CiAgICAgICAgIHJldHVybiBwcm9jZXNzLnJl
dHVybmNvZGUKIAogCi1kZWYgX3J1bl9hbmRfZ2V0X291dHB1dChhcmdzLCBjbWQsIGVudik6CitA
ZnVuY3Rvb2xzLmxydV9jYWNoZSgpCitkZWYgX3VzZV9hZGIodGVzdF9zdWl0ZSk6CisgICAgcmV0
dXJuIGFuZHJvaWRfaGVscGVyLkFwa0ZpbGVFeGlzdHModGVzdF9zdWl0ZSkKKworCitkZWYgX3J1
bl9hbmRfZ2V0X291dHB1dChhcmdzLCBjbWQsIGVudiwgcnVubmVyX2FyZ3MpOgorICAgIGlmIF91
c2VfYWRiKGFyZ3MudGVzdF9zdWl0ZSk6CisgICAgICAgIHJlc3VsdCwgb3V0cHV0ID0gYW5kcm9p
ZF9oZWxwZXIuUnVuVGVzdHMoCisgICAgICAgICAgICBhcmdzLnRlc3Rfc3VpdGUsIGNtZFsxOl0s
IGxvZ19vdXRwdXQ9YXJncy5zaG93X3Rlc3Rfc3Rkb3V0KQorICAgICAgICByZXR1cm4gcmVzdWx0
LCBvdXRwdXQuZGVjb2RlKCkuc3BsaXQoJ1xuJykKKworICAgIHJ1bm5lcl9jbWQgPSBjbWQgKyBy
dW5uZXJfYXJncworCiAgICAgbGluZXMgPSBbXQotICAgIGxvZ2dpbmcuZGVidWcoJyAnLmpvaW4o
Y21kKSkKKyAgICBsb2dnaW5nLmRlYnVnKCcgJy5qb2luKHJ1bm5lcl9jbWQpKQogICAgIHdpdGgg
Y29tbW9uLnRlbXBvcmFyeV9maWxlKCkgYXMgdGVtcGZpbGVfcGF0aDoKICAgICAgICAgaWYgYXJn
cy54dmZiOgotICAgICAgICAgICAgZXhpdF9jb2RlID0geHZmYi5ydW5fZXhlY3V0YWJsZShjbWQs
IGVudiwgc3Rkb3V0ZmlsZT10ZW1wZmlsZV9wYXRoKQorICAgICAgICAgICAgZXhpdF9jb2RlID0g
eHZmYi5ydW5fZXhlY3V0YWJsZShydW5uZXJfY21kLCBlbnYsIHN0ZG91dGZpbGU9dGVtcGZpbGVf
cGF0aCkKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIGV4aXRfY29kZSA9IHJ1bl9jb21tYW5k
X3dpdGhfb3V0cHV0KAotICAgICAgICAgICAgICAgIGNtZCwgZW52PWVudiwgc3Rkb3V0ZmlsZT10
ZW1wZmlsZV9wYXRoLCBsb2c9YXJncy5zaG93X3Rlc3Rfc3Rkb3V0KQorICAgICAgICAgICAgICAg
IHJ1bm5lcl9jbWQsIGVudj1lbnYsIHN0ZG91dGZpbGU9dGVtcGZpbGVfcGF0aCwgbG9nPWFyZ3Mu
c2hvd190ZXN0X3N0ZG91dCkKICAgICAgICAgd2l0aCBvcGVuKHRlbXBmaWxlX3BhdGgpIGFzIGY6
CiAgICAgICAgICAgICBmb3IgbGluZSBpbiBmOgogICAgICAgICAgICAgICAgIGxpbmVzLmFwcGVu
ZChsaW5lLnN0cmlwKCkpCkBAIC0zMzQsMTEgKzM0NywxNSBAQCBkZWYgbWFpbigpOgogICAgIGVu
dlsnREVWSUNFX1RJTUVPVVRfTVVMVElQTElFUiddID0gJzIwJwogCiAgICAgIyBHZXQgdGVzdCBs
aXN0Ci0gICAgY21kID0gW2dldF9iaW5hcnlfbmFtZShhcmdzLnRlc3Rfc3VpdGUpLCAnLS1saXN0
LXRlc3RzJywgJy0tdmVyYm9zZSddCi0gICAgZXhpdF9jb2RlLCBsaW5lcyA9IF9ydW5fYW5kX2dl
dF9vdXRwdXQoYXJncywgY21kLCBlbnYpCi0gICAgaWYgZXhpdF9jb2RlICE9IEVYSVRfU1VDQ0VT
UzoKLSAgICAgICAgbG9nZ2luZy5mYXRhbCgnQ291bGQgbm90IGZpbmQgdGVzdCBsaXN0IGZyb20g
dGVzdCBvdXRwdXQ6XG4lcycgJSAnXG4nLmpvaW4obGluZXMpKQotICAgIHRlc3RzID0gX2dldF90
ZXN0c19mcm9tX291dHB1dChsaW5lcykKKyAgICBpZiBfdXNlX2FkYihhcmdzLnRlc3Rfc3VpdGUp
OgorICAgICAgICBhbmRyb2lkX2hlbHBlci5QcmVwYXJlVGVzdFN1aXRlKGFyZ3MudGVzdF9zdWl0
ZSkKKyAgICAgICAgdGVzdHMgPSBhbmRyb2lkX2hlbHBlci5MaXN0VGVzdHMoKQorICAgIGVsc2U6
CisgICAgICAgIGNtZCA9IFtnZXRfYmluYXJ5X25hbWUoYXJncy50ZXN0X3N1aXRlKSwgJy0tbGlz
dC10ZXN0cycsICctLXZlcmJvc2UnXQorICAgICAgICBleGl0X2NvZGUsIGxpbmVzID0gX3J1bl9h
bmRfZ2V0X291dHB1dChhcmdzLCBjbWQsIGVudiwgW10pCisgICAgICAgIGlmIGV4aXRfY29kZSAh
PSBFWElUX1NVQ0NFU1M6CisgICAgICAgICAgICBsb2dnaW5nLmZhdGFsKCdDb3VsZCBub3QgZmlu
ZCB0ZXN0IGxpc3QgZnJvbSB0ZXN0IG91dHB1dDpcbiVzJyAlICdcbicuam9pbihsaW5lcykpCisg
ICAgICAgIHRlc3RzID0gX2dldF90ZXN0c19mcm9tX291dHB1dChsaW5lcykKIAogICAgIGlmIGFy
Z3MuZmlsdGVyOgogICAgICAgICB0ZXN0cyA9IF9maWx0ZXJfdGVzdHModGVzdHMsIGFyZ3MuZmls
dGVyKQpAQCAtMzU5LDE4ICszNzYsMjggQEAgZGVmIG1haW4oKToKICAgICBoaXN0b2dyYW1zID0g
aGlzdG9ncmFtX3NldC5IaXN0b2dyYW1TZXQoKQogICAgIHRvdGFsX2Vycm9ycyA9IDAKIAorICAg
IHByZXBhcmVkX3RyYWNlcyA9IHNldCgpCiAgICAgZm9yIHRlc3RfaW5kZXggaW4gcmFuZ2UobnVt
X3Rlc3RzKToKICAgICAgICAgdGVzdCA9IHRlc3RzW3Rlc3RfaW5kZXhdCisKKyAgICAgICAgaWYg
X3VzZV9hZGIoYXJncy50ZXN0X3N1aXRlKToKKyAgICAgICAgICAgIHRyYWNlID0gYW5kcm9pZF9o
ZWxwZXIuR2V0VHJhY2VGcm9tVGVzdE5hbWUodGVzdCkKKyAgICAgICAgICAgIGlmIHRyYWNlIGFu
ZCB0cmFjZSBub3QgaW4gcHJlcGFyZWRfdHJhY2VzOgorICAgICAgICAgICAgICAgIGFuZHJvaWRf
aGVscGVyLlByZXBhcmVSZXN0cmljdGVkVHJhY2VzKFt0cmFjZV0pCisgICAgICAgICAgICAgICAg
cHJlcGFyZWRfdHJhY2VzLmFkZCh0cmFjZSkKKwogICAgICAgICBjbWQgPSBbCiAgICAgICAgICAg
ICBnZXRfYmluYXJ5X25hbWUoYXJncy50ZXN0X3N1aXRlKSwKICAgICAgICAgICAgICctLWd0ZXN0
X2ZpbHRlcj0lcycgJSB0ZXN0LAorICAgICAgICAgICAgJy0tdmVyYm9zZScsCisgICAgICAgICAg
ICAnLS1jYWxpYnJhdGlvbi10aW1lJywKKyAgICAgICAgICAgIHN0cihhcmdzLmNhbGlicmF0aW9u
X3RpbWUpLAorICAgICAgICBdCisgICAgICAgIHJ1bm5lcl9hcmdzID0gWwogICAgICAgICAgICAg
Jy0tZXh0cmFjdC10ZXN0LWxpc3QtZnJvbS1maWx0ZXInLAogICAgICAgICAgICAgJy0tZW5hYmxl
LWRldmljZS1jYWNoZScsCiAgICAgICAgICAgICAnLS1za2lwLWNsZWFyLWRhdGEnLAogICAgICAg
ICAgICAgJy0tdXNlLWV4aXN0aW5nLXRlc3QtZGF0YScsCi0gICAgICAgICAgICAnLS12ZXJib3Nl
JywKLSAgICAgICAgICAgICctLWNhbGlicmF0aW9uLXRpbWUnLAotICAgICAgICAgICAgc3RyKGFy
Z3MuY2FsaWJyYXRpb25fdGltZSksCiAgICAgICAgIF0KICAgICAgICAgaWYgYXJncy5zdGVwc19w
ZXJfdHJpYWw6CiAgICAgICAgICAgICBzdGVwc19wZXJfdHJpYWwgPSBhcmdzLnN0ZXBzX3Blcl90
cmlhbApAQCAtMzgwLDcgKzQwNyw4IEBAIGRlZiBtYWluKCk6CiAgICAgICAgICAgICAgICAgJy0t
d2FybXVwLWxvb3BzJywKICAgICAgICAgICAgICAgICBzdHIoYXJncy53YXJtdXBfbG9vcHMpLAog
ICAgICAgICAgICAgXQotICAgICAgICAgICAgZXhpdF9jb2RlLCBjYWxpYnJhdGVfb3V0cHV0ID0g
X3J1bl9hbmRfZ2V0X291dHB1dChhcmdzLCBjbWRfY2FsaWJyYXRlLCBlbnYpCisgICAgICAgICAg
ICBleGl0X2NvZGUsIGNhbGlicmF0ZV9vdXRwdXQgPSBfcnVuX2FuZF9nZXRfb3V0cHV0KGFyZ3Ms
IGNtZF9jYWxpYnJhdGUsIGVudiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVubmVyX2FyZ3MpCiAgICAgICAgICAgICBpZiBl
eGl0X2NvZGUgIT0gRVhJVF9TVUNDRVNTOgogICAgICAgICAgICAgICAgIGxvZ2dpbmcuZmF0YWwo
JyVzIGZhaWxlZC4gT3V0cHV0OlxuJXMnICUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IChjbWRfY2FsaWJyYXRlWzBdLCAnXG4nLmpvaW4oY2FsaWJyYXRlX291dHB1dCkpKQpAQCAtNDIw
LDcgKzQ0OCw3IEBAIGRlZiBtYWluKCk6CiAKICAgICAgICAgICAgIHdpdGggY29tbW9uLnRlbXBv
cmFyeV9maWxlKCkgYXMgaGlzdG9ncmFtX2ZpbGVfcGF0aDoKICAgICAgICAgICAgICAgICBjbWRf
cnVuICs9IFsnLS1pc29sYXRlZC1zY3JpcHQtdGVzdC1wZXJmLW91dHB1dD0lcycgJSBoaXN0b2dy
YW1fZmlsZV9wYXRoXQotICAgICAgICAgICAgICAgIGV4aXRfY29kZSwgb3V0cHV0ID0gX3J1bl9h
bmRfZ2V0X291dHB1dChhcmdzLCBjbWRfcnVuLCBlbnYpCisgICAgICAgICAgICAgICAgZXhpdF9j
b2RlLCBvdXRwdXQgPSBfcnVuX2FuZF9nZXRfb3V0cHV0KGFyZ3MsIGNtZF9ydW4sIGVudiwgcnVu
bmVyX2FyZ3MpCiAgICAgICAgICAgICAgICAgaWYgZXhpdF9jb2RlICE9IEVYSVRfU1VDQ0VTUzoK
ICAgICAgICAgICAgICAgICAgICAgbG9nZ2luZy5lcnJvcignJXMgZmFpbGVkLiBPdXRwdXQ6XG4l
cycgJSAoY21kX3J1blswXSwgJ1xuJy5qb2luKG91dHB1dCkpKQogICAgICAgICAgICAgICAgICAg
ICByZXN1bHRzLnJlc3VsdF9mYWlsKHRlc3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9BTkdMRS9zcmMvdGVzdHMvc2tpYV9nb2xkL19faW5pdF9fLnB5IGIvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvc3JjL3Rlc3RzL3NraWFfZ29sZC9fX2luaXRfXy5weQpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA3NTUKaW5kZXggNzBmY2RiYzdmNDQ4MGQzMzhjOTFjMjhjNDUzZjlhZTdmOTY1ZTk2ZC4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvc2tpYV9nb2xkL19faW5pdF9fLnB5CisrKyAvZGV2L251
bGwKQEAgLTEsMTMgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAyMCBUaGUgQU5HTEUgUHJvamVjdCBB
dXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBp
cyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi0jIGZvdW5kIGlu
IHRoZSBMSUNFTlNFIGZpbGUuCi0KLWltcG9ydCBvcwotaW1wb3J0IHN5cwotCi1kID0gb3MucGF0
aC5kaXJuYW1lCi1USElTX0RJUiA9IGQob3MucGF0aC5hYnNwYXRoKF9fZmlsZV9fKSkKLUFOR0xF
X1NSQ19ESVIgPSBkKGQoZChkKFRISVNfRElSKSkpKQotc3lzLnBhdGguaW5zZXJ0KDAsIG9zLnBh
dGguam9pbihBTkdMRV9TUkNfRElSLCAnYnVpbGQnKSkKLUNIUk9NSVVNX1NSQ19ESVIgPSBkKGQo
QU5HTEVfU1JDX0RJUikpCi1zeXMucGF0aC5pbnNlcnQoMCwgb3MucGF0aC5qb2luKENIUk9NSVVN
X1NSQ19ESVIsICdidWlsZCcpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUv
c3JjL3Rlc3RzL3NraWFfZ29sZC9hbmdsZV9za2lhX2dvbGRfcHJvcGVydGllcy5weSBiL1NvdXJj
ZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9za2lhX2dvbGQvYW5nbGVfc2tpYV9nb2xkX3By
b3BlcnRpZXMucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY5Mjk2YzIzMzBmZTNj
MjllNWYwZmVmOTVhYzI3NTcwMDBlOTkyNzcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3RzL3NraWFf
Z29sZC9hbmdsZV9za2lhX2dvbGRfcHJvcGVydGllcy5weQorKysgL2Rldi9udWxsCkBAIC0xLDM0
ICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMjAgVGhlIEFOR0xFIFByb2plY3QgQXV0aG9ycy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQg
YnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotIyBmb3VuZCBpbiB0aGUgTElDRU5T
RSBmaWxlLgotIiIiQU5HTEUgaW1wbGVtZW50YXRpb24gb2YgLy9idWlsZC9za2lhX2dvbGRfY29t
bW9uL3NraWFfZ29sZF9wcm9wZXJ0aWVzLnB5LiIiIgotCi1pbXBvcnQgb3MKLWltcG9ydCBzeXMK
LWltcG9ydCBzdWJwcm9jZXNzCi1pbXBvcnQgc3lzCi0KLWQgPSBvcy5wYXRoLmRpcm5hbWUKLVRI
SVNfRElSID0gZChvcy5wYXRoLmFic3BhdGgoX19maWxlX18pKQotQU5HTEVfU1JDX0RJUiA9IGQo
ZChkKFRISVNfRElSKSkpCi1zeXMucGF0aC5pbnNlcnQoMCwgb3MucGF0aC5qb2luKEFOR0xFX1NS
Q19ESVIsICdidWlsZCcpKQotQ0hST01JVU1fU1JDX0RJUiA9IGQoZChBTkdMRV9TUkNfRElSKSkK
LXN5cy5wYXRoLmluc2VydCgwLCBvcy5wYXRoLmpvaW4oQ0hST01JVU1fU1JDX0RJUiwgJ2J1aWxk
JykpCi0KLWZyb20gc2tpYV9nb2xkX2NvbW1vbiBpbXBvcnQgc2tpYV9nb2xkX3Byb3BlcnRpZXMK
LQotCi1jbGFzcyBBTkdMRVNraWFHb2xkUHJvcGVydGllcyhza2lhX2dvbGRfcHJvcGVydGllcy5T
a2lhR29sZFByb3BlcnRpZXMpOgotCi0gICAgQHN0YXRpY21ldGhvZAotICAgIGRlZiBfR2V0R2l0
T3JpZ2luTWFpbkhlYWRTaGExKCk6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHJldHVybiBz
dWJwcm9jZXNzLmNoZWNrX291dHB1dChbJ2dpdCcsICdyZXYtcGFyc2UnLCAnb3JpZ2luL21haW4n
XSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGVsbD1fSXNX
aW4oKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjd2Q9QU5H
TEVfU1JDX0RJUikuc3RyaXAoKQotICAgICAgICBleGNlcHQgc3VicHJvY2Vzcy5DYWxsZWRQcm9j
ZXNzRXJyb3I6Ci0gICAgICAgICAgICByZXR1cm4gTm9uZQotCi0KLWRlZiBfSXNXaW4oKToKLSAg
ICByZXR1cm4gc3lzLnBsYXRmb3JtID09ICd3aW4zMicKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGly
ZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy9za2lhX2dvbGQvYW5nbGVfc2tpYV9nb2xkX3Nlc3Npb24u
cHkgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvc2tpYV9nb2xkL2FuZ2xlX3Nr
aWFfZ29sZF9zZXNzaW9uLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZGE2MGRm
ZDM0N2Y4MGI1NjQwNmE1OGFhOGVhY2U3YjBhYzMzZGVkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0
cy9za2lhX2dvbGQvYW5nbGVfc2tpYV9nb2xkX3Nlc3Npb24ucHkKKysrIC9kZXYvbnVsbApAQCAt
MSwyMiArMCwwIEBACi0jIENvcHlyaWdodCAyMDIwIFRoZSBBTkdMRSBQcm9qZWN0IEF1dGhvcnMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVy
bmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLSMgZm91bmQgaW4gdGhlIExJ
Q0VOU0UgZmlsZS4KLSIiIkFOR0xFIGltcGxlbWVudGF0aW9uIG9mIC8vYnVpbGQvc2tpYV9nb2xk
X2NvbW1vbi9za2lhX2dvbGRfc2Vzc2lvbi5weS4iIiIKLQotaW1wb3J0IG9zCi1pbXBvcnQgc3lz
Ci0KLWQgPSBvcy5wYXRoLmRpcm5hbWUKLVRISVNfRElSID0gZChvcy5wYXRoLmFic3BhdGgoX19m
aWxlX18pKQotQU5HTEVfU1JDX0RJUiA9IGQoZChkKFRISVNfRElSKSkpCi1zeXMucGF0aC5pbnNl
cnQoMCwgb3MucGF0aC5qb2luKEFOR0xFX1NSQ19ESVIsICdidWlsZCcpKQotQ0hST01JVU1fU1JD
X0RJUiA9IGQoZChBTkdMRV9TUkNfRElSKSkKLXN5cy5wYXRoLmluc2VydCgwLCBvcy5wYXRoLmpv
aW4oQ0hST01JVU1fU1JDX0RJUiwgJ2J1aWxkJykpCi0KLWZyb20gc2tpYV9nb2xkX2NvbW1vbiBp
bXBvcnQgb3V0cHV0X21hbmFnZXJsZXNzX3NraWFfZ29sZF9zZXNzaW9uIGFzIG9tc2dzCi0KLQot
Y2xhc3MgQU5HTEVTa2lhR29sZFNlc3Npb24ob21zZ3MuT3V0cHV0TWFuYWdlcmxlc3NTa2lhR29s
ZFNlc3Npb24pOgotCi0gICAgZGVmIF9HZXREaWZmR29sZEluc3RhbmNlKHNlbGYpOgotICAgICAg
ICByZXR1cm4gc3RyKHNlbGYuX2luc3RhbmNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvc3JjL3Rlc3RzL3NraWFfZ29sZC9hbmdsZV9za2lhX2dvbGRfc2Vzc2lvbl9tYW5h
Z2VyLnB5IGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3RzL3NraWFfZ29sZC9hbmds
ZV9za2lhX2dvbGRfc2Vzc2lvbl9tYW5hZ2VyLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwNDEzYjkxZGE3YzNjOGE2Y2FhYjRlODJhNDg4MTIzYzlhMjQ2Njk0Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FO
R0xFL3NyYy90ZXN0cy9za2lhX2dvbGQvYW5nbGVfc2tpYV9nb2xkX3Nlc3Npb25fbWFuYWdlci5w
eQorKysgL2Rldi9udWxsCkBAIC0xLDI4ICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMjAgVGhlIEFO
R0xFIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMgVXNlIG9mIHRoaXMg
c291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBi
ZQotIyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotIiIiQU5HTEUgaW1wbGVtZW50YXRpb24g
b2YgLy9idWlsZC9za2lhX2dvbGRfY29tbW9uL3NraWFfZ29sZF9zZXNzaW9uX21hbmFnZXIucHku
IiIiCi0KLWltcG9ydCBvcwotaW1wb3J0IHN5cwotCi1kID0gb3MucGF0aC5kaXJuYW1lCi1USElT
X0RJUiA9IGQob3MucGF0aC5hYnNwYXRoKF9fZmlsZV9fKSkKLUFOR0xFX1NSQ19ESVIgPSBkKGQo
ZChUSElTX0RJUikpKQotc3lzLnBhdGguaW5zZXJ0KDAsIG9zLnBhdGguam9pbihBTkdMRV9TUkNf
RElSLCAnYnVpbGQnKSkKLUNIUk9NSVVNX1NSQ19ESVIgPSBkKGQoQU5HTEVfU1JDX0RJUikpCi1z
eXMucGF0aC5pbnNlcnQoMCwgb3MucGF0aC5qb2luKENIUk9NSVVNX1NSQ19ESVIsICdidWlsZCcp
KQotCi1mcm9tIHNraWFfZ29sZF9jb21tb24gaW1wb3J0IHNraWFfZ29sZF9zZXNzaW9uX21hbmFn
ZXIgYXMgc2dzbQotZnJvbSAuYW5nbGVfc2tpYV9nb2xkX3Nlc3Npb24gaW1wb3J0IEFOR0xFU2tp
YUdvbGRTZXNzaW9uCi0KLQotY2xhc3MgQU5HTEVTa2lhR29sZFNlc3Npb25NYW5hZ2VyKHNnc20u
U2tpYUdvbGRTZXNzaW9uTWFuYWdlcik6Ci0KLSAgICBAc3RhdGljbWV0aG9kCi0gICAgZGVmIF9H
ZXREZWZhdWx0SW5zdGFuY2UoKToKLSAgICAgICAgcmV0dXJuICdhbmdsZScKLQotICAgIEBzdGF0
aWNtZXRob2QKLSAgICBkZWYgR2V0U2Vzc2lvbkNsYXNzKCk6Ci0gICAgICAgIHJldHVybiBBTkdM
RVNraWFHb2xkU2Vzc2lvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3Jj
L3Rlc3RzL3Rlc3RfdXRpbHMvQU5HTEVUZXN0LmNwcCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xF
L3NyYy90ZXN0cy90ZXN0X3V0aWxzL0FOR0xFVGVzdC5jcHAKaW5kZXggZDAyYWU1YTJlNDFlM2U5
MDkzNzRjMWE2MTdhMGE1YWZkMTlmYjU1NC4uYTc4MDI0NWQxYWJjYTg3NmZkNTZjMjA4ODRmNjkx
NjM3NjBiOWZkZSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3Rz
L3Rlc3RfdXRpbHMvQU5HTEVUZXN0LmNwcAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9z
cmMvdGVzdHMvdGVzdF91dGlscy9BTkdMRVRlc3QuY3BwCkBAIC04NCwyNCArODQsNiBAQCB2b2lk
IFRlc3RQbGF0Zm9ybV9sb2dXYXJuaW5nKFBsYXRmb3JtTWV0aG9kcyAqcGxhdGZvcm0sIGNvbnN0
IGNoYXIgKndhcm5pbmdNZXNzYQogCiB2b2lkIFRlc3RQbGF0Zm9ybV9sb2dJbmZvKFBsYXRmb3Jt
TWV0aG9kcyAqcGxhdGZvcm0sIGNvbnN0IGNoYXIgKmluZm9NZXNzYWdlKSB7fQogCi12b2lkIFRl
c3RQbGF0Zm9ybV9vdmVycmlkZVdvcmthcm91bmRzRDNEKFBsYXRmb3JtTWV0aG9kcyAqcGxhdGZv
cm0sIEZlYXR1cmVzRDNEICpmZWF0dXJlc0QzRCkKLXsKLSAgICBhdXRvICp0ZXN0UGxhdGZvcm1D
b250ZXh0ID0gc3RhdGljX2Nhc3Q8VGVzdFBsYXRmb3JtQ29udGV4dCAqPihwbGF0Zm9ybS0+Y29u
dGV4dCk7Ci0gICAgaWYgKHRlc3RQbGF0Zm9ybUNvbnRleHQtPmN1cnJlbnRUZXN0KQotICAgIHsK
LSAgICAgICAgdGVzdFBsYXRmb3JtQ29udGV4dC0+Y3VycmVudFRlc3QtPm92ZXJyaWRlV29ya2Fy
b3VuZHNEM0QoZmVhdHVyZXNEM0QpOwotICAgIH0KLX0KLQotdm9pZCBUZXN0UGxhdGZvcm1fb3Zl
cnJpZGVGZWF0dXJlc1ZrKFBsYXRmb3JtTWV0aG9kcyAqcGxhdGZvcm0sIEZlYXR1cmVzVmsgKmZl
YXR1cmVzVnVsa2FuKQotewotICAgIGF1dG8gKnRlc3RQbGF0Zm9ybUNvbnRleHQgPSBzdGF0aWNf
Y2FzdDxUZXN0UGxhdGZvcm1Db250ZXh0ICo+KHBsYXRmb3JtLT5jb250ZXh0KTsKLSAgICBpZiAo
dGVzdFBsYXRmb3JtQ29udGV4dC0+Y3VycmVudFRlc3QpCi0gICAgewotICAgICAgICB0ZXN0UGxh
dGZvcm1Db250ZXh0LT5jdXJyZW50VGVzdC0+b3ZlcnJpZGVGZWF0dXJlc1ZrKGZlYXR1cmVzVnVs
a2FuKTsKLSAgICB9Ci19Ci0KIGNvbnN0IHN0ZDo6YXJyYXk8VmVjdG9yMywgNj4ga1F1YWRWZXJ0
aWNlcyA9IHt7CiAgICAgVmVjdG9yMygtMS4wZiwgMS4wZiwgMC41ZiksCiAgICAgVmVjdG9yMygt
MS4wZiwgLTEuMGYsIDAuNWYpLApAQCAtNjExLDEyICs1OTMsMTAgQEAgdm9pZCBBTkdMRVRlc3RC
YXNlOjpBTkdMRVRlc3RTZXRVcCgpCiAgICAgICAgIGFuZ2xlOjpTbGVlcChHZXRUZXN0U3RhcnRE
ZWxheVNlY29uZHMoKSAqIDEwMDApOwogICAgIH0KIAotICAgIGdEZWZhdWx0UGxhdGZvcm1NZXRo
b2RzLm92ZXJyaWRlV29ya2Fyb3VuZHNEM0QgPSBUZXN0UGxhdGZvcm1fb3ZlcnJpZGVXb3JrYXJv
dW5kc0QzRDsKLSAgICBnRGVmYXVsdFBsYXRmb3JtTWV0aG9kcy5vdmVycmlkZUZlYXR1cmVzVmsg
ICAgID0gVGVzdFBsYXRmb3JtX292ZXJyaWRlRmVhdHVyZXNWazsKLSAgICBnRGVmYXVsdFBsYXRm
b3JtTWV0aG9kcy5sb2dFcnJvciAgICAgICAgICAgICAgID0gVGVzdFBsYXRmb3JtX2xvZ0Vycm9y
OwotICAgIGdEZWZhdWx0UGxhdGZvcm1NZXRob2RzLmxvZ1dhcm5pbmcgICAgICAgICAgICAgPSBU
ZXN0UGxhdGZvcm1fbG9nV2FybmluZzsKLSAgICBnRGVmYXVsdFBsYXRmb3JtTWV0aG9kcy5sb2dJ
bmZvICAgICAgICAgICAgICAgID0gVGVzdFBsYXRmb3JtX2xvZ0luZm87Ci0gICAgZ0RlZmF1bHRQ
bGF0Zm9ybU1ldGhvZHMuY29udGV4dCAgICAgICAgICAgICAgICA9ICZnUGxhdGZvcm1Db250ZXh0
OworICAgIGdEZWZhdWx0UGxhdGZvcm1NZXRob2RzLmxvZ0Vycm9yICAgPSBUZXN0UGxhdGZvcm1f
bG9nRXJyb3I7CisgICAgZ0RlZmF1bHRQbGF0Zm9ybU1ldGhvZHMubG9nV2FybmluZyA9IFRlc3RQ
bGF0Zm9ybV9sb2dXYXJuaW5nOworICAgIGdEZWZhdWx0UGxhdGZvcm1NZXRob2RzLmxvZ0luZm8g
ICAgPSBUZXN0UGxhdGZvcm1fbG9nSW5mbzsKKyAgICBnRGVmYXVsdFBsYXRmb3JtTWV0aG9kcy5j
b250ZXh0ICAgID0gJmdQbGF0Zm9ybUNvbnRleHQ7CiAKICAgICBnUGxhdGZvcm1Db250ZXh0Lmln
bm9yZU1lc3NhZ2VzICAgPSBmYWxzZTsKICAgICBnUGxhdGZvcm1Db250ZXh0Lndhcm5pbmdzQXNF
cnJvcnMgPSBmYWxzZTsKQEAgLTY3OSw4ICs2NTksOCBAQCB2b2lkIEFOR0xFVGVzdEJhc2U6OkFO
R0xFVGVzdFNldFVwKCkKICAgICBpbnQgb3NXaW5kb3dXaWR0aCAgPSBtRml4dHVyZS0+b3NXaW5k
b3ctPmdldFdpZHRoKCk7CiAgICAgaW50IG9zV2luZG93SGVpZ2h0ID0gbUZpeHR1cmUtPm9zV2lu
ZG93LT5nZXRIZWlnaHQoKTsKIAotICAgIGNvbnN0IGJvb2wgaXNSb3RhdGVkID0gbUN1cnJlbnRQ
YXJhbXMtPmVnbFBhcmFtZXRlcnMuZW11bGF0ZWRQcmVyb3RhdGlvbiA9PSA5MCB8fAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbUN1cnJlbnRQYXJhbXMtPmVnbFBhcmFtZXRlcnMuZW11bGF0
ZWRQcmVyb3RhdGlvbiA9PSAyNzA7CisgICAgY29uc3QgYm9vbCBpc1JvdGF0ZWQgPSBtQ3VycmVu
dFBhcmFtcy0+aXNFbmFibGVkKEZlYXR1cmU6OkVtdWxhdGVkUHJlcm90YXRpb245MCkgfHwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG1DdXJyZW50UGFyYW1zLT5pc0VuYWJsZWQoRmVhdHVy
ZTo6RW11bGF0ZWRQcmVyb3RhdGlvbjI3MCk7CiAgICAgaWYgKGlzUm90YXRlZCkKICAgICB7CiAg
ICAgICAgIHN0ZDo6c3dhcChvc1dpbmRvd1dpZHRoLCBvc1dpbmRvd0hlaWdodCk7CkBAIC0xNDYw
LDExICsxNDQwLDYgQEAgaW50IEFOR0xFVGVzdEJhc2U6OmdldFdpbmRvd0hlaWdodCgpIGNvbnN0
CiAgICAgcmV0dXJuIG1IZWlnaHQ7CiB9CiAKLWJvb2wgQU5HTEVUZXN0QmFzZTo6aXNFbXVsYXRl
ZFByZXJvdGF0aW9uKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbUN1cnJlbnRQYXJhbXMtPmVnbFBh
cmFtZXRlcnMuZW11bGF0ZWRQcmVyb3RhdGlvbiAhPSAwOwotfQotCiB2b2lkIEFOR0xFVGVzdEJh
c2U6OnNldFdpbmRvd1Zpc2libGUoT1NXaW5kb3cgKm9zV2luZG93LCBib29sIGlzVmlzaWJsZSkK
IHsKICAgICAvLyBTd2lmdFNoYWRlciB3aW5kb3dzIGFyZSBub3QgcmVxdWlyZWQgdG8gYmUgdmlz
aWJsZSBmb3IgdGVzdCBjb3JyZWN0bmVzcywKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L0FOR0xFL3NyYy90ZXN0cy90ZXN0X3V0aWxzL0FOR0xFVGVzdC5oIGIvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvc3JjL3Rlc3RzL3Rlc3RfdXRpbHMvQU5HTEVUZXN0LmgKaW5kZXggZjU0YjgzZjFj
MWNmZGM3ZTVmMjJiYWNlYTc4YWJkZjZhOTA5ZjA1YS4uYTZhNTRkODg0OTRlNjU4ZTkyODYzM2U3
MmNiNTNmMDZjNzZmMjZlYiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3Jj
L3Rlc3RzL3Rlc3RfdXRpbHMvQU5HTEVUZXN0LmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5H
TEUvc3JjL3Rlc3RzL3Rlc3RfdXRpbHMvQU5HTEVUZXN0LmgKQEAgLTM2Miw5ICszNjIsNiBAQCBj
bGFzcyBBTkdMRVRlc3RCYXNlCiAgIHB1YmxpYzoKICAgICB2b2lkIHNldFdpbmRvd1Zpc2libGUo
T1NXaW5kb3cgKm9zV2luZG93LCBib29sIGlzVmlzaWJsZSk7CiAKLSAgICB2aXJ0dWFsIHZvaWQg
b3ZlcnJpZGVXb3JrYXJvdW5kc0QzRChhbmdsZTo6RmVhdHVyZXNEM0QgKmZlYXR1cmVzRDNEKSB7
fQotICAgIHZpcnR1YWwgdm9pZCBvdmVycmlkZUZlYXR1cmVzVmsoYW5nbGU6OkZlYXR1cmVzVmsg
KmZlYXR1cmVzVnVsa2FuKSB7fQotCiAgICAgc3RhdGljIHZvaWQgUmVsZWFzZUZpeHR1cmVzKCk7
CiAKICAgICBib29sIGlzU3dpZnRzaGFkZXIoKSBjb25zdApAQCAtNDgzLDcgKzQ4MCw2IEBAIGNs
YXNzIEFOR0xFVGVzdEJhc2UKICAgICBFR0xXaW5kb3cgKmdldEVHTFdpbmRvdygpIGNvbnN0Owog
ICAgIGludCBnZXRXaW5kb3dXaWR0aCgpIGNvbnN0OwogICAgIGludCBnZXRXaW5kb3dIZWlnaHQo
KSBjb25zdDsKLSAgICBib29sIGlzRW11bGF0ZWRQcmVyb3RhdGlvbigpIGNvbnN0OwogCiAgICAg
RUdMaW50IGdldFBsYXRmb3JtUmVuZGVyZXIoKSBjb25zdDsKIApAQCAtNTMzLDE4ICs1MjksOCBA
QCBjbGFzcyBBTkdMRVRlc3RCYXNlCiAgICAgICAgICAgICAgICBtQ3VycmVudFBhcmFtcy0+aXNT
d2lmdHNoYWRlcigpOwogICAgIH0KIAotICAgIGJvb2wgaXNBc3luY0NvbW1hbmRRdWV1ZUZlYXR1
cmVFbmFibGVkKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiBtQ3VycmVudFBhcmFtcy0+
ZWdsUGFyYW1ldGVycy5hc3luY0NvbW1hbmRRdWV1ZUZlYXR1cmVWdWxrYW4gPT0gRUdMX1RSVUU7
Ci0gICAgfQotCiAgICAgYm9vbCBwbGF0Zm9ybVN1cHBvcnRzTXVsdGl0aHJlYWRpbmcoKSBjb25z
dDsKIAotICAgIGJvb2wgaXNBbGxvY2F0ZU5vblplcm9NZW1vcnlFbmFibGVkKCkgY29uc3QKLSAg
ICB7Ci0gICAgICAgIHJldHVybiBtQ3VycmVudFBhcmFtcy0+Z2V0QWxsb2NhdGVOb25aZXJvTWVt
b3J5RmVhdHVyZSgpID09IEVHTF9UUlVFOwotICAgIH0KLQogICAgIGJvb2wgbUlzU2V0VXAgPSBm
YWxzZTsKIAogICBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUv
c3JjL3Rlc3RzL3Rlc3RfdXRpbHMvTXVsdGl2aWV3VGVzdC5jcHAgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9BTkdMRS9zcmMvdGVzdHMvdGVzdF91dGlscy9NdWx0aXZpZXdUZXN0LmNwcAppbmRleCBhNTg1
MmJmZTc0NzczNWNmMmFmNGJlNzgxNmU3MDY4ZjQ4ZTg1Yjc2Li41OGE1NDdkOTg0NTQ0OGZmYzlk
ZjZlZWFiMWI3MTVmMmY2ZDc5NzcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdM
RS9zcmMvdGVzdHMvdGVzdF91dGlscy9NdWx0aXZpZXdUZXN0LmNwcAorKysgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvdGVzdF91dGlscy9NdWx0aXZpZXdUZXN0LmNwcApAQCAt
OCw3ICs4LDcgQEAKIC8vCiAKICNpbmNsdWRlICJ0ZXN0X3V0aWxzL011bHRpdmlld1Rlc3QuaCIK
LSNpbmNsdWRlICJwbGF0Zm9ybS9GZWF0dXJlc0QzRC5oIgorI2luY2x1ZGUgInBsYXRmb3JtL0Zl
YXR1cmVzRDNEX2F1dG9nZW4uaCIKICNpbmNsdWRlICJ0ZXN0X3V0aWxzL2dsX3JhaWkuaCIKIAog
bmFtZXNwYWNlIGFuZ2xlCkBAIC0yMjAsMTQgKzIyMCw2IEBAIHN0ZDo6b3N0cmVhbSAmb3BlcmF0
b3I8PChzdGQ6Om9zdHJlYW0gJm9zLCBjb25zdCBNdWx0aXZpZXdJbXBsZW1lbnRhdGlvblBhcmFt
cyAmCiB7CiAgICAgY29uc3QgUGxhdGZvcm1QYXJhbWV0ZXJzICZiYXNlID0gc3RhdGljX2Nhc3Q8
Y29uc3QgUGxhdGZvcm1QYXJhbWV0ZXJzICY+KHBhcmFtcyk7CiAgICAgb3MgPDwgYmFzZSA8PCAi
XyI7Ci0gICAgaWYgKHBhcmFtcy5tRm9yY2VVc2VHZW9tZXRyeVNoYWRlck9uRDNEKQotICAgIHsK
LSAgICAgICAgb3MgPDwgIl9mb3JjZV9nZW9tX3NoYWRlciI7Ci0gICAgfQotICAgIGVsc2UKLSAg
ICB7Ci0gICAgICAgIG9zIDw8ICJfdmVydGV4X3NoYWRlciI7Ci0gICAgfQogICAgIGlmIChwYXJh
bXMubU11bHRpdmlld0V4dGVuc2lvbikKICAgICB7CiAgICAgICAgIG9zIDw8ICJfbXVsdGl2aWV3
IjsKQEAgLTI0Myw3ICsyMzUsNyBAQCBNdWx0aXZpZXdJbXBsZW1lbnRhdGlvblBhcmFtcyBWZXJ0
ZXhTaGFkZXJPcGVuR0woR0xpbnQgbWFqb3JWZXJzaW9uLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMaW50IG1pbm9yVmVyc2lvbiwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFeHRlbnNpb25OYW1lIG11
bHRpdmlld0V4dGVuc2lvbikKIHsKLSAgICByZXR1cm4gTXVsdGl2aWV3SW1wbGVtZW50YXRpb25Q
YXJhbXMobWFqb3JWZXJzaW9uLCBtaW5vclZlcnNpb24sIGZhbHNlLCBlZ2xfcGxhdGZvcm06Ok9Q
RU5HTCgpLAorICAgIHJldHVybiBNdWx0aXZpZXdJbXBsZW1lbnRhdGlvblBhcmFtcyhtYWpvclZl
cnNpb24sIG1pbm9yVmVyc2lvbiwgZWdsX3BsYXRmb3JtOjpPUEVOR0woKSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGl2aWV3RXh0ZW5zaW9uKTsKIH0KIApA
QCAtMjUxLDcgKzI0Myw3IEBAIE11bHRpdmlld0ltcGxlbWVudGF0aW9uUGFyYW1zIFZlcnRleFNo
YWRlclZ1bGthbihHTGludCBtYWpvclZlcnNpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgR0xpbnQgbWlub3JWZXJzaW9uLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV4dGVuc2lvbk5hbWUgbXVsdGl2
aWV3RXh0ZW5zaW9uKQogewotICAgIHJldHVybiBNdWx0aXZpZXdJbXBsZW1lbnRhdGlvblBhcmFt
cyhtYWpvclZlcnNpb24sIG1pbm9yVmVyc2lvbiwgZmFsc2UsIGVnbF9wbGF0Zm9ybTo6VlVMS0FO
KCksCisgICAgcmV0dXJuIE11bHRpdmlld0ltcGxlbWVudGF0aW9uUGFyYW1zKG1ham9yVmVyc2lv
biwgbWlub3JWZXJzaW9uLCBlZ2xfcGxhdGZvcm06OlZVTEtBTigpLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aXZpZXdFeHRlbnNpb24pOwogfQogCkBAIC0y
NTksNyArMjUxLDcgQEAgTXVsdGl2aWV3SW1wbGVtZW50YXRpb25QYXJhbXMgVmVydGV4U2hhZGVy
RDNEMTEoR0xpbnQgbWFqb3JWZXJzaW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgR0xpbnQgbWlub3JWZXJzaW9uLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXh0ZW5zaW9uTmFtZSBtdWx0aXZpZXdFeHRl
bnNpb24pCiB7Ci0gICAgcmV0dXJuIE11bHRpdmlld0ltcGxlbWVudGF0aW9uUGFyYW1zKG1ham9y
VmVyc2lvbiwgbWlub3JWZXJzaW9uLCBmYWxzZSwgZWdsX3BsYXRmb3JtOjpEM0QxMSgpLAorICAg
IHJldHVybiBNdWx0aXZpZXdJbXBsZW1lbnRhdGlvblBhcmFtcyhtYWpvclZlcnNpb24sIG1pbm9y
VmVyc2lvbiwgZWdsX3BsYXRmb3JtOjpEM0QxMSgpLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBtdWx0aXZpZXdFeHRlbnNpb24pOwogfQogCkBAIC0yNjcsMTQgKzI1
OSw5IEBAIE11bHRpdmlld0ltcGxlbWVudGF0aW9uUGFyYW1zIEdlb21TaGFkZXJEM0QxMShHTGlu
dCBtYWpvclZlcnNpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgR0xpbnQgbWlub3JWZXJzaW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEV4dGVuc2lvbk5hbWUgbXVsdGl2aWV3RXh0ZW5zaW9uKQogewotICAg
IHJldHVybiBNdWx0aXZpZXdJbXBsZW1lbnRhdGlvblBhcmFtcyhtYWpvclZlcnNpb24sIG1pbm9y
VmVyc2lvbiwgdHJ1ZSwgZWdsX3BsYXRmb3JtOjpEM0QxMSgpLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBtdWx0aXZpZXdFeHRlbnNpb24pOwotfQotCi12b2lkIE11
bHRpdmlld1Rlc3Q6Om92ZXJyaWRlV29ya2Fyb3VuZHNEM0QoRmVhdHVyZXNEM0QgKmZlYXR1cmVz
KQotewotICAgIGZlYXR1cmVzLT5vdmVycmlkZUZlYXR1cmVzKHsic2VsZWN0X3ZpZXdfaW5fZ2Vv
bWV0cnlfc2hhZGVyIn0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR2V0UGFyYW0o
KS5tRm9yY2VVc2VHZW9tZXRyeVNoYWRlck9uRDNEKTsKKyAgICByZXR1cm4gTXVsdGl2aWV3SW1w
bGVtZW50YXRpb25QYXJhbXMoCisgICAgICAgIG1ham9yVmVyc2lvbiwgbWlub3JWZXJzaW9uLAor
ICAgICAgICBlZ2xfcGxhdGZvcm06OkQzRDExKCkuZW5hYmxlKEZlYXR1cmU6OlNlbGVjdFZpZXdJ
bkdlb21ldHJ5U2hhZGVyKSwgbXVsdGl2aWV3RXh0ZW5zaW9uKTsKIH0KIAogfSAgLy8gbmFtZXNw
YWNlIGFuZ2xlCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMv
dGVzdF91dGlscy9NdWx0aXZpZXdUZXN0LmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMv
dGVzdHMvdGVzdF91dGlscy9NdWx0aXZpZXdUZXN0LmgKaW5kZXggNGY5MDA3YWZjMGU4ZWY0MTNl
N2UwNDYwNWNkMjkyN2M3Yjk4M2VkMy4uNTRmN2E5OGVmMDI4NmQ0YzMyZTM1NjQ2ODk4YTczZWRj
NTI3NzI0NiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3RzL3Rl
c3RfdXRpbHMvTXVsdGl2aWV3VGVzdC5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3Ny
Yy90ZXN0cy90ZXN0X3V0aWxzL011bHRpdmlld1Rlc3QuaApAQCAtNjQsMTQgKzY0LDExIEBAIHN0
cnVjdCBNdWx0aXZpZXdJbXBsZW1lbnRhdGlvblBhcmFtcyA6IHB1YmxpYyBQbGF0Zm9ybVBhcmFt
ZXRlcnMKIHsKICAgICBNdWx0aXZpZXdJbXBsZW1lbnRhdGlvblBhcmFtcyhHTGludCBtYWpvclZl
cnNpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0xpbnQgbWlub3JWZXJz
aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgZm9yY2VVc2VHZW9t
ZXRyeVNoYWRlck9uRDNELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IEVHTFBsYXRmb3JtUGFyYW1ldGVycyAmZWdsUGxhdGZvcm1QYXJhbWV0ZXJzLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEV4dGVuc2lvbk5hbWUgbXVsdGl2aWV3RXh0ZW5zaW9u
KQogICAgICAgICA6IFBsYXRmb3JtUGFyYW1ldGVycyhtYWpvclZlcnNpb24sIG1pbm9yVmVyc2lv
biwgZWdsUGxhdGZvcm1QYXJhbWV0ZXJzKSwKLSAgICAgICAgICBtRm9yY2VVc2VHZW9tZXRyeVNo
YWRlck9uRDNEKGZvcmNlVXNlR2VvbWV0cnlTaGFkZXJPbkQzRCksCiAgICAgICAgICAgbU11bHRp
dmlld0V4dGVuc2lvbihtdWx0aXZpZXdFeHRlbnNpb24pCiAgICAge30KLSAgICBib29sIG1Gb3Jj
ZVVzZUdlb21ldHJ5U2hhZGVyT25EM0Q7CiAgICAgRXh0ZW5zaW9uTmFtZSBtTXVsdGl2aWV3RXh0
ZW5zaW9uOwogfTsKIHN0ZDo6b3N0cmVhbSAmb3BlcmF0b3I8PChzdGQ6Om9zdHJlYW0gJm9zLCBj
b25zdCBNdWx0aXZpZXdJbXBsZW1lbnRhdGlvblBhcmFtcyAmcGFyYW1zKTsKQEAgLTExMiw4ICsx
MDksNiBAQCBjbGFzcyBNdWx0aXZpZXdUZXN0IDogcHVibGljIE11bHRpdmlld1Rlc3RCYXNlLAog
ICBwcm90ZWN0ZWQ6CiAgICAgTXVsdGl2aWV3VGVzdCgpIDogTXVsdGl2aWV3VGVzdEJhc2UoR2V0
UGFyYW0oKSkge30KIAotICAgIHZvaWQgb3ZlcnJpZGVXb3JrYXJvdW5kc0QzRChGZWF0dXJlc0Qz
RCAqZmVhdHVyZXMpIGZpbmFsOwotCiAgICAgdmlydHVhbCB2b2lkIHRlc3RTZXRVcCgpIHt9CiAg
ICAgdmlydHVhbCB2b2lkIHRlc3RUZWFyRG93bigpIHt9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9U
aGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy90ZXN0X3V0aWxzL1Z1bGthbkhlbHBlci5jcHAgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvdGVzdF91dGlscy9WdWxrYW5IZWxwZXIu
Y3BwCmluZGV4IGRiZDI1OTBhNDNlZjZlZTE4NmEwMzU2Yzg0YzYxYWMzYTU1YWQ0NGEuLmJlMTc4
ZTU4OWJjNWRhZjY2NGQ5ZjdkNjk3NDY5N2MwY2I3MTBmZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9U
aGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy90ZXN0X3V0aWxzL1Z1bGthbkhlbHBlci5jcHAKKysr
IGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3RzL3Rlc3RfdXRpbHMvVnVsa2FuSGVs
cGVyLmNwcApAQCAtMTUsNiArMTUsNyBAQAogI2luY2x1ZGUgImNvbW1vbi9zeXN0ZW1fdXRpbHMu
aCIKICNpbmNsdWRlICJjb21tb24vdnVsa2FuL3Z1bGthbl9pY2QuaCIKICNpbmNsdWRlICJ0ZXN0
X3V0aWxzL0FOR0xFVGVzdC5oIgorI2luY2x1ZGUgInZ1bGthbi92dWxrYW5fY29yZS5oIgogCiBu
YW1lc3BhY2UgYW5nbGUKIHsKQEAgLTk1LDYgKzk2LDE4IEBAIGJvb2wgSGFzRXh0ZW5zaW9uKGNv
bnN0IHN0ZDo6dmVjdG9yPGNvbnN0IGNoYXIgKj4gZW5hYmxlZEV4dGVuc2lvbnMsIGNvbnN0IGNo
YXIKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK2Jvb2wgSGFzRXh0ZW5zaW9uKGNvbnN0IGNoYXIg
KmNvbnN0ICplbmFibGVkRXh0ZW5zaW9ucywgY29uc3QgY2hhciAqZXh0ZW5zaW9uTmFtZSkKK3sK
KyAgICBzaXplX3QgaSA9IDA7CisgICAgd2hpbGUgKGVuYWJsZWRFeHRlbnNpb25zW2ldKQorICAg
IHsKKyAgICAgICAgaWYgKCFzdHJjbXAoZW5hYmxlZEV4dGVuc2lvbnNbaV0sIGV4dGVuc2lvbk5h
bWUpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGkrKzsKKyAgICB9CisgICAg
cmV0dXJuIGZhbHNlOworfQorCiB1aW50MzJfdCBGaW5kTWVtb3J5VHlwZShjb25zdCBWa1BoeXNp
Y2FsRGV2aWNlTWVtb3J5UHJvcGVydGllcyAmbWVtb3J5UHJvcGVydGllcywKICAgICAgICAgICAg
ICAgICAgICAgICAgIHVpbnQzMl90IG1lbW9yeVR5cGVCaXRzLAogICAgICAgICAgICAgICAgICAg
ICAgICAgVmtNZW1vcnlQcm9wZXJ0eUZsYWdzIHJlcXVpcmVkTWVtb3J5UHJvcGVydHlGbGFncykK
QEAgLTQyNiw2ICs0MzksMTggQEAgdm9pZCBWdWxrYW5IZWxwZXI6OmluaXRpYWxpemVGcm9tQU5H
TEUoKQogICAgIEVYUEVDVF9FR0xfVFJVRShlZ2xRdWVyeURldmljZUF0dHJpYkVYVChkZXZpY2Us
IEVHTF9WVUxLQU5fUVVFVUVfRkFNSUxJWV9JTkRFWF9BTkdMRSwgJnJlc3VsdCkpOwogICAgIG1H
cmFwaGljc1F1ZXVlRmFtaWx5SW5kZXggPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4ocmVzdWx0KTsK
IAorICAgIEVYUEVDVF9FR0xfVFJVRShlZ2xRdWVyeURldmljZUF0dHJpYkVYVChkZXZpY2UsIEVH
TF9WVUxLQU5fREVWSUNFX0VYVEVOU0lPTlNfQU5HTEUsICZyZXN1bHQpKTsKKyAgICBjb25zdCBj
aGFyICpjb25zdCAqZW5hYmxlZERldmljZUV4dGVuc2lvbnMgPSByZWludGVycHJldF9jYXN0PGNv
bnN0IGNoYXIgKmNvbnN0ICo+KHJlc3VsdCk7CisKKyAgICBtSGFzRXh0ZXJuYWxNZW1vcnlGZCA9
CisgICAgICAgIEhhc0V4dGVuc2lvbihlbmFibGVkRGV2aWNlRXh0ZW5zaW9ucywgVktfS0hSX0VY
VEVSTkFMX01FTU9SWV9GRF9FWFRFTlNJT05fTkFNRSk7CisgICAgbUhhc0V4dGVybmFsU2VtYXBo
b3JlRmQgPQorICAgICAgICBIYXNFeHRlbnNpb24oZW5hYmxlZERldmljZUV4dGVuc2lvbnMsIFZL
X0tIUl9FWFRFUk5BTF9TRU1BUEhPUkVfRkRfRVhURU5TSU9OX05BTUUpOworICAgIG1IYXNFeHRl
cm5hbE1lbW9yeUZ1Y2hzaWEgPQorICAgICAgICBIYXNFeHRlbnNpb24oZW5hYmxlZERldmljZUV4
dGVuc2lvbnMsIFZLX0ZVQ0hTSUFfRVhURVJOQUxfTUVNT1JZX0VYVEVOU0lPTl9OQU1FKTsKKyAg
ICBtSGFzRXh0ZXJuYWxTZW1hcGhvcmVGdWNoc2lhID0KKyAgICAgICAgSGFzRXh0ZW5zaW9uKGVu
YWJsZWREZXZpY2VFeHRlbnNpb25zLCBWS19GVUNIU0lBX0VYVEVSTkFMX1NFTUFQSE9SRV9FWFRF
TlNJT05fTkFNRSk7CisKICNpZiBBTkdMRV9TSEFSRURfTElCVlVMS0FOCiAgICAgdm9sa0xvYWRE
ZXZpY2UobURldmljZSk7CiAjZW5kaWYgIC8vIEFOR0xFX1NIQVJFRF9MSUJWVUxLQU4KQEAgLTEx
OTYsNCArMTIyMSwxOTcgQEAgdm9pZCBWdWxrYW5IZWxwZXI6OnJlYWRQaXhlbHMoVmtJbWFnZSBz
cmNJbWFnZSwKICAgICB2a0ZyZWVNZW1vcnkobURldmljZSwgZGV2aWNlTWVtb3J5LCBudWxscHRy
KTsKIH0KIAordm9pZCBWdWxrYW5IZWxwZXI6OndyaXRlUGl4ZWxzKFZrSW1hZ2UgZHN0SW1hZ2Us
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmtJbWFnZUxheW91dCBpbWFnZUxheW91
dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWa0Zvcm1hdCBpbWFnZUZvcm1hdCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWa09mZnNldDNEIGltYWdlT2Zmc2V0LAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZrRXh0ZW50M0QgaW1hZ2VFeHRlbnQsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgdm9pZCAqcGl4ZWxzLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBwaXhlbHNTaXplKQoreworICAgIEFTU0VS
VChpbWFnZUZvcm1hdCA9PSBWS19GT1JNQVRfQjhHOFI4QThfVU5PUk0gfHwgaW1hZ2VGb3JtYXQg
PT0gVktfRk9STUFUX1I4RzhCOEE4X1VOT1JNKTsKKyAgICBBU1NFUlQoaW1hZ2VFeHRlbnQuZGVw
dGggPT0gMSk7CisgICAgQVNTRVJUKHBpeGVsc1NpemUgPT0gNCAqIGltYWdlRXh0ZW50LndpZHRo
ICogaW1hZ2VFeHRlbnQuaGVpZ2h0KTsKKworICAgIFZrQnVmZmVyQ3JlYXRlSW5mbyBidWZmZXJD
cmVhdGVJbmZvID0geworICAgICAgICAvKiAuc1R5cGUgPSAqLyBWS19TVFJVQ1RVUkVfVFlQRV9C
VUZGRVJfQ1JFQVRFX0lORk8sCisgICAgICAgIC8qIC5wTmV4dCA9ICovIG51bGxwdHIsCisgICAg
ICAgIC8qIC5mbGFncyA9ICovIDAsCisgICAgICAgIC8qIC5zaXplID0gKi8gcGl4ZWxzU2l6ZSwK
KyAgICAgICAgLyogLnVzYWdlID0gKi8gVktfQlVGRkVSX1VTQUdFX1RSQU5TRkVSX1NSQ19CSVQs
CisgICAgICAgIC8qIC5zaGFyaW5nTW9kZSA9ICovIFZLX1NIQVJJTkdfTU9ERV9FWENMVVNJVkUs
CisgICAgICAgIC8qIC5xdWV1ZUZhbWlseUluZGV4Q291bnQgPSAqLyAwLAorICAgICAgICAvKiAu
cFF1ZXVlRmFtaWx5SW5kaWNlcyA9ICovIG51bGxwdHIsCisgICAgfTsKKyAgICBWa0J1ZmZlciBz
dGFnaW5nQnVmZmVyID0gVktfTlVMTF9IQU5ETEU7CisgICAgVmtSZXN1bHQgcmVzdWx0ICAgICAg
ICA9IHZrQ3JlYXRlQnVmZmVyKG1EZXZpY2UsICZidWZmZXJDcmVhdGVJbmZvLCBudWxscHRyLCAm
c3RhZ2luZ0J1ZmZlcik7CisgICAgQVNTRVJUKHJlc3VsdCA9PSBWS19TVUNDRVNTKTsKKworICAg
IFZrTWVtb3J5UHJvcGVydHlGbGFncyByZXF1ZXN0ZWRNZW1vcnlQcm9wZXJ0eUZsYWdzID0gVktf
TUVNT1JZX1BST1BFUlRZX0hPU1RfVklTSUJMRV9CSVQ7CisgICAgVmtNZW1vcnlSZXF1aXJlbWVu
dHMgbWVtb3J5UmVxdWlyZW1lbnRzOworICAgIHZrR2V0QnVmZmVyTWVtb3J5UmVxdWlyZW1lbnRz
KG1EZXZpY2UsIHN0YWdpbmdCdWZmZXIsICZtZW1vcnlSZXF1aXJlbWVudHMpOworICAgIHVpbnQz
Ml90IG1lbW9yeVR5cGVJbmRleCA9IEZpbmRNZW1vcnlUeXBlKG1NZW1vcnlQcm9wZXJ0aWVzLCBt
ZW1vcnlSZXF1aXJlbWVudHMubWVtb3J5VHlwZUJpdHMsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdGVkTWVtb3J5UHJvcGVydHlGbGFncyk7Cisg
ICAgQVNTRVJUKG1lbW9yeVR5cGVJbmRleCAhPSBVSU5UMzJfTUFYKTsKKyAgICBWa0RldmljZVNp
emUgZGV2aWNlTWVtb3J5U2l6ZSA9IG1lbW9yeVJlcXVpcmVtZW50cy5zaXplOworCisgICAgVmtN
ZW1vcnlEZWRpY2F0ZWRBbGxvY2F0ZUluZm9LSFIgbWVtb3J5RGVkaWNhdGVkQWxsb2NhdGVJbmZv
ID0geworICAgICAgICAvKiAuc1R5cGUgPSAqLyBWS19TVFJVQ1RVUkVfVFlQRV9NRU1PUllfREVE
SUNBVEVEX0FMTE9DQVRFX0lORk9fS0hSLAorICAgICAgICAvKiAucE5leHQgPSAqLyBudWxscHRy
LAorICAgICAgICAvKiAuaW1hZ2UgPSAqLyBWS19OVUxMX0hBTkRMRSwKKyAgICAgICAgLyogLmJ1
ZmZlciA9ICovIHN0YWdpbmdCdWZmZXIsCisgICAgfTsKKyAgICBWa01lbW9yeUFsbG9jYXRlSW5m
byBtZW1vcnlBbGxvY2F0ZUluZm8gPSB7CisgICAgICAgIC8qIC5zVHlwZSA9ICovIFZLX1NUUlVD
VFVSRV9UWVBFX01FTU9SWV9BTExPQ0FURV9JTkZPLAorICAgICAgICAvKiAucE5leHQgPSAqLyAm
bWVtb3J5RGVkaWNhdGVkQWxsb2NhdGVJbmZvLAorICAgICAgICAvKiAuYWxsb2NhdGlvblNpemUg
PSAqLyBkZXZpY2VNZW1vcnlTaXplLAorICAgICAgICAvKiAubWVtb3J5VHlwZUluZGV4ID0gKi8g
bWVtb3J5VHlwZUluZGV4LAorICAgIH07CisKKyAgICBWa0RldmljZU1lbW9yeSBkZXZpY2VNZW1v
cnkgPSBWS19OVUxMX0hBTkRMRTsKKyAgICByZXN1bHQgPSB2a0FsbG9jYXRlTWVtb3J5KG1EZXZp
Y2UsICZtZW1vcnlBbGxvY2F0ZUluZm8sIG51bGxwdHIsICZkZXZpY2VNZW1vcnkpOworICAgIEFT
U0VSVChyZXN1bHQgPT0gVktfU1VDQ0VTUyk7CisKKyAgICByZXN1bHQgPSB2a0JpbmRCdWZmZXJN
ZW1vcnkobURldmljZSwgc3RhZ2luZ0J1ZmZlciwgZGV2aWNlTWVtb3J5LCAwIC8qIG1lbW9yeU9m
ZnNldCAqLyk7CisgICAgQVNTRVJUKHJlc3VsdCA9PSBWS19TVUNDRVNTKTsKKworICAgIHZvaWQg
KnN0YWdpbmdNZW1vcnkgPSBudWxscHRyOworICAgIHJlc3VsdCA9IHZrTWFwTWVtb3J5KG1EZXZp
Y2UsIGRldmljZU1lbW9yeSwgMCAvKiBvZmZzZXQgKi8sIGRldmljZU1lbW9yeVNpemUsIDAgLyog
ZmxhZ3MgKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgJnN0YWdpbmdNZW1vcnkpOworICAg
IEFTU0VSVChyZXN1bHQgPT0gVktfU1VDQ0VTUyk7CisKKyAgICBWa01hcHBlZE1lbW9yeVJhbmdl
IG1lbW9yeVJhbmdlc1tdID0geworICAgICAgICAvKiBbMF0gPSAqLyB7CisgICAgICAgICAgICAv
KiAuc1R5cGUgPSAqLyBWS19TVFJVQ1RVUkVfVFlQRV9NQVBQRURfTUVNT1JZX1JBTkdFLAorICAg
ICAgICAgICAgLyogLnBOZXh0ID0gKi8gbnVsbHB0ciwKKyAgICAgICAgICAgIC8qIC5tZW1vcnkg
PSAqLyBkZXZpY2VNZW1vcnksCisgICAgICAgICAgICAvKiAub2Zmc2V0ID0gKi8gMCwKKyAgICAg
ICAgICAgIC8qIC5zaXplID0gKi8gZGV2aWNlTWVtb3J5U2l6ZSwKKyAgICAgICAgfSwKKyAgICB9
OworICAgIGNvbnN0ZXhwciB1aW50MzJfdCBtZW1vcnlSYW5nZUNvdW50ID0gc3RkOjpleHRlbnQ8
ZGVjbHR5cGUobWVtb3J5UmFuZ2VzKT4oKTsKKworICAgIHJlc3VsdCA9IHZrSW52YWxpZGF0ZU1h
cHBlZE1lbW9yeVJhbmdlcyhtRGV2aWNlLCBtZW1vcnlSYW5nZUNvdW50LCBtZW1vcnlSYW5nZXMp
OworICAgIEFTU0VSVChyZXN1bHQgPT0gVktfU1VDQ0VTUyk7CisKKyAgICBtZW1jcHkoc3RhZ2lu
Z01lbW9yeSwgcGl4ZWxzLCBwaXhlbHNTaXplKTsKKworICAgIHZrVW5tYXBNZW1vcnkobURldmlj
ZSwgZGV2aWNlTWVtb3J5KTsKKworICAgIFZrQ29tbWFuZEJ1ZmZlciBjb21tYW5kQnVmZmVyc1td
ICAgICAgICAgICAgICAgICAgICAgID0ge1ZLX05VTExfSEFORExFfTsKKyAgICBjb25zdGV4cHIg
dWludDMyX3QgY29tbWFuZEJ1ZmZlckNvdW50ICAgICAgICAgICAgICAgICA9IHN0ZDo6ZXh0ZW50
PGRlY2x0eXBlKGNvbW1hbmRCdWZmZXJzKT4oKTsKKyAgICBWa0NvbW1hbmRCdWZmZXJBbGxvY2F0
ZUluZm8gY29tbWFuZEJ1ZmZlckFsbG9jYXRlSW5mbyA9IHsKKyAgICAgICAgLyogLnNUeXBlID0g
Ki8gVktfU1RSVUNUVVJFX1RZUEVfQ09NTUFORF9CVUZGRVJfQUxMT0NBVEVfSU5GTywKKyAgICAg
ICAgLyogLnBOZXh0ID0gKi8gbnVsbHB0ciwKKyAgICAgICAgLyogLmNvbW1hbmRQb29sID0gKi8g
bUNvbW1hbmRQb29sLAorICAgICAgICAvKiAubGV2ZWwgPSAqLyBWS19DT01NQU5EX0JVRkZFUl9M
RVZFTF9QUklNQVJZLAorICAgICAgICAvKiAuY29tbWFuZEJ1ZmZlckNvdW50ID0gKi8gY29tbWFu
ZEJ1ZmZlckNvdW50LAorICAgIH07CisKKyAgICByZXN1bHQgPSB2a0FsbG9jYXRlQ29tbWFuZEJ1
ZmZlcnMobURldmljZSwgJmNvbW1hbmRCdWZmZXJBbGxvY2F0ZUluZm8sIGNvbW1hbmRCdWZmZXJz
KTsKKyAgICBBU1NFUlQocmVzdWx0ID09IFZLX1NVQ0NFU1MpOworCisgICAgVmtDb21tYW5kQnVm
ZmVyQmVnaW5JbmZvIGNvbW1hbmRCdWZmZXJCZWdpbkluZm8gPSB7CisgICAgICAgIC8qIC5zVHlw
ZSA9ICovIFZLX1NUUlVDVFVSRV9UWVBFX0NPTU1BTkRfQlVGRkVSX0JFR0lOX0lORk8sCisgICAg
ICAgIC8qIC5wTmV4dCA9ICovIG51bGxwdHIsCisgICAgICAgIC8qIC5mbGFncyA9ICovIFZLX0NP
TU1BTkRfQlVGRkVSX1VTQUdFX09ORV9USU1FX1NVQk1JVF9CSVQsCisgICAgICAgIC8qIC5wSW5o
ZXJpdGFuY2VJbmZvID0gKi8gbnVsbHB0ciwKKyAgICB9OworICAgIHJlc3VsdCA9IHZrQmVnaW5D
b21tYW5kQnVmZmVyKGNvbW1hbmRCdWZmZXJzWzBdLCAmY29tbWFuZEJ1ZmZlckJlZ2luSW5mbyk7
CisgICAgQVNTRVJUKHJlc3VsdCA9PSBWS19TVUNDRVNTKTsKKworICAgIC8vIE1lbW9yeSBiYXJy
aWVyIGZvciBwaXBlbGluZSBmcm9tIEhvc3QtV3JpdGUgdG8gVHJhbnNmZXItUmVhZC4KKyAgICBW
a01lbW9yeUJhcnJpZXIgbWVtb3J5QmFycmllcnNbXSA9IHsKKyAgICAgICAgLyogWzBdID0gKi8g
ey8qIC5zVHlwZSA9ICovIFZLX1NUUlVDVFVSRV9UWVBFX01FTU9SWV9CQVJSSUVSLAorICAgICAg
ICAgICAgICAgICAgICAgLyogLnBOZXh0ID0gKi8gbnVsbHB0ciwKKyAgICAgICAgICAgICAgICAg
ICAgIC8qIC5zcmNBY2Nlc3NNYXNrID0gKi8gVktfQUNDRVNTX0hPU1RfV1JJVEVfQklULAorICAg
ICAgICAgICAgICAgICAgICAgLyogLmRzdEFjY2Vzc01hc2sgPSAqLyBWS19BQ0NFU1NfVFJBTlNG
RVJfUkVBRF9CSVR9LAorICAgIH07CisgICAgY29uc3RleHByIHVpbnQzMl90IG1lbW9yeUJhcnJp
ZXJDb3VudCA9IHN0ZDo6ZXh0ZW50PGRlY2x0eXBlKG1lbW9yeUJhcnJpZXJzKT4oKTsKKyAgICB2
a0NtZFBpcGVsaW5lQmFycmllcihjb21tYW5kQnVmZmVyc1swXSwgVktfUElQRUxJTkVfU1RBR0Vf
SE9TVF9CSVQsCisgICAgICAgICAgICAgICAgICAgICAgICAgVktfUElQRUxJTkVfU1RBR0VfVFJB
TlNGRVJfQklULCAwIC8qIGRlcGVuZGVuY3lGbGFncyAqLywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICBtZW1vcnlCYXJyaWVyQ291bnQsIG1lbW9yeUJhcnJpZXJzLCAwLCBudWxscHRyLCAwLCBu
dWxscHRyKTsKKworICAgIC8vIE1lbW9yeS1iYXJyaWVyIGZvciBpbWFnZSB0byBUcmFuc2Zlci1X
cml0ZS4KKyAgICBpZiAoaW1hZ2VMYXlvdXQgIT0gVktfSU1BR0VfTEFZT1VUX1RSQU5TRkVSX0RT
VF9PUFRJTUFMKQorICAgIHsKKyAgICAgICAgVmtJbWFnZU1lbW9yeUJhcnJpZXIgaW1hZ2VNZW1v
cnlCYXJyaWVycyA9IHsKKyAgICAgICAgICAgIC8qIC5zVHlwZSA9ICovIFZLX1NUUlVDVFVSRV9U
WVBFX0lNQUdFX01FTU9SWV9CQVJSSUVSLAorICAgICAgICAgICAgLyogLnBOZXh0ID0gKi8gbnVs
bHB0ciwKKyAgICAgICAgICAgIC8qIC5zcmNBY2Nlc3NNYXNrID0gKi8gVktfQUNDRVNTX05PTkUs
CisgICAgICAgICAgICAvKiAuZHN0QWNjZXNzTWFzayA9ICovIFZLX0FDQ0VTU19UUkFOU0ZFUl9X
UklURV9CSVQsCisgICAgICAgICAgICAvKiAub2xkTGF5b3V0ID0gKi8gaW1hZ2VMYXlvdXQsCisg
ICAgICAgICAgICAvKiAubmV3TGF5b3V0ID0gKi8gVktfSU1BR0VfTEFZT1VUX1RSQU5TRkVSX0RT
VF9PUFRJTUFMLAorICAgICAgICAgICAgLyogLnNyY1F1ZXVlRmFtaWx5SW5kZXggPSAqLyBtR3Jh
cGhpY3NRdWV1ZUZhbWlseUluZGV4LAorICAgICAgICAgICAgLyogLmRzdFF1ZXVlRmFtaWx5SW5k
ZXggPSAqLyBtR3JhcGhpY3NRdWV1ZUZhbWlseUluZGV4LAorICAgICAgICAgICAgLyogLmltYWdl
ID0gKi8gZHN0SW1hZ2UsCisgICAgICAgICAgICAvKiAuc3VicmVzb3VyY2VSYW5nZSA9ICovCisg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgLyogLmFzcGVjdE1hc2sgPSAqLyBWS19JTUFH
RV9BU1BFQ1RfQ09MT1JfQklULAorICAgICAgICAgICAgICAgIC8qIC5iYXNlTWlwTGV2ZWwgPSAq
LyAwLAorICAgICAgICAgICAgICAgIC8qIC5sZXZlbENvdW50ID0gKi8gMSwKKyAgICAgICAgICAg
ICAgICAvKiAuYmFzZUFycmF5TGF5ZXIgPSAqLyAwLAorICAgICAgICAgICAgICAgIC8qIC5sYXll
ckNvdW50ID0gKi8gMSwKKyAgICAgICAgICAgIH0sCisKKyAgICAgICAgfTsKKyAgICAgICAgdmtD
bWRQaXBlbGluZUJhcnJpZXIoY29tbWFuZEJ1ZmZlcnNbMF0sIFZLX1BJUEVMSU5FX1NUQUdFX1RS
QU5TRkVSX0JJVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVktfUElQRUxJTkVfU1RB
R0VfVFJBTlNGRVJfQklULCAwLCAwLCBudWxscHRyLCAwLCBudWxscHRyLCAxLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAmaW1hZ2VNZW1vcnlCYXJyaWVycyk7CisgICAgICAgIGltYWdl
TGF5b3V0ID0gVktfSU1BR0VfTEFZT1VUX1RSQU5TRkVSX0RTVF9PUFRJTUFMOworICAgIH0KKwor
ICAgIC8vIElzc3VlIHRoZSBidWZmZXIgdG8gaW1hZ2UgY29weS4KKyAgICBWa0J1ZmZlckltYWdl
Q29weSBidWZmZXJJbWFnZUNvcGllc1tdID0geworICAgICAgICAvKiBbMF0gPSAqLyB7CisgICAg
ICAgICAgICAvKiAuYnVmZmVyT2Zmc2V0ID0gKi8gMCwKKyAgICAgICAgICAgIC8qIC5idWZmZXJS
b3dMZW5ndGggPSAqLyAwLAorICAgICAgICAgICAgLyogLmJ1ZmZlckltYWdlSGVpZ2h0ID0gKi8g
MCwKKyAgICAgICAgICAgIC8qIC5pbWFnZVN1YnJlc291cmNlcyA9ICovCisgICAgICAgICAgICB7
CisgICAgICAgICAgICAgICAgLyogLmFzcGVjdE1hc2sgPSAqLyBWS19JTUFHRV9BU1BFQ1RfQ09M
T1JfQklULAorICAgICAgICAgICAgICAgIC8qIC5taXBMZXZlbCA9ICovIDAsCisgICAgICAgICAg
ICAgICAgLyogLmJhc2VBcnJheUxheWVyID0gKi8gMCwKKyAgICAgICAgICAgICAgICAvKiAubGF5
ZXJDb3VudCA9ICovIDEsCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgLyogLmltYWdlT2Zm
c2V0ID0gKi8gaW1hZ2VPZmZzZXQsCisgICAgICAgICAgICAvKiAuaW1hZ2VFeHRlbnQgPSAqLyBp
bWFnZUV4dGVudCwKKyAgICAgICAgfSwKKyAgICB9OworCisgICAgY29uc3RleHByIHVpbnQzMl90
IGJ1ZmZlckltYWdlQ29weUNvdW50ID0gc3RkOjpleHRlbnQ8ZGVjbHR5cGUoYnVmZmVySW1hZ2VD
b3BpZXMpPigpOworCisgICAgdmtDbWRDb3B5QnVmZmVyVG9JbWFnZShjb21tYW5kQnVmZmVyc1sw
XSwgc3RhZ2luZ0J1ZmZlciwgZHN0SW1hZ2UsIGltYWdlTGF5b3V0LAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYnVmZmVySW1hZ2VDb3B5Q291bnQsIGJ1ZmZlckltYWdlQ29waWVzKTsKKwor
ICAgIHJlc3VsdCA9IHZrRW5kQ29tbWFuZEJ1ZmZlcihjb21tYW5kQnVmZmVyc1swXSk7CisgICAg
QVNTRVJUKHJlc3VsdCA9PSBWS19TVUNDRVNTKTsKKworICAgIGNvbnN0IFZrU3VibWl0SW5mbyBz
dWJtaXRzW10gPSB7CisgICAgICAgIC8qIFswXSA9ICovIHsKKyAgICAgICAgICAgIC8qIC5zVHlw
ZSAqLyBWS19TVFJVQ1RVUkVfVFlQRV9TVUJNSVRfSU5GTywKKyAgICAgICAgICAgIC8qIC5wTmV4
dCA9ICovIG51bGxwdHIsCisgICAgICAgICAgICAvKiAud2FpdFNlbWFwaG9yZUNvdW50ID0gKi8g
MCwKKyAgICAgICAgICAgIC8qIC5wV2FpdFNlbWFwaG9yZXMgPSAqLyBudWxscHRyLAorICAgICAg
ICAgICAgLyogLnBXYWl0RHN0U3RhZ2VNYXNrID0gKi8gbnVsbHB0ciwKKyAgICAgICAgICAgIC8q
IC5jb21tYW5kQnVmZmVyQ291bnQgPSAqLyBjb21tYW5kQnVmZmVyQ291bnQsCisgICAgICAgICAg
ICAvKiAucENvbW1hbmRCdWZmZXJzID0gKi8gY29tbWFuZEJ1ZmZlcnMsCisgICAgICAgICAgICAv
KiAuc2lnbmFsU2VtYXBob3JlQ291bnQgPSAqLyAwLAorICAgICAgICAgICAgLyogLnBTaWduYWxT
ZW1hcGhvcmVzID0gKi8gbnVsbHB0ciwKKyAgICAgICAgfSwKKyAgICB9OworICAgIGNvbnN0ZXhw
ciB1aW50MzJfdCBzdWJtaXRDb3VudCA9IHN0ZDo6ZXh0ZW50PGRlY2x0eXBlKHN1Ym1pdHMpPigp
OworCisgICAgY29uc3QgVmtGZW5jZSBmZW5jZSA9IFZLX05VTExfSEFORExFOworICAgIHJlc3Vs
dCAgICAgICAgICAgICAgPSB2a1F1ZXVlU3VibWl0KG1HcmFwaGljc1F1ZXVlLCBzdWJtaXRDb3Vu
dCwgc3VibWl0cywgZmVuY2UpOworICAgIEFTU0VSVChyZXN1bHQgPT0gVktfU1VDQ0VTUyk7CisK
KyAgICByZXN1bHQgPSB2a1F1ZXVlV2FpdElkbGUobUdyYXBoaWNzUXVldWUpOworICAgIEFTU0VS
VChyZXN1bHQgPT0gVktfU1VDQ0VTUyk7CisKKyAgICB2a0ZyZWVDb21tYW5kQnVmZmVycyhtRGV2
aWNlLCBtQ29tbWFuZFBvb2wsIGNvbW1hbmRCdWZmZXJDb3VudCwgY29tbWFuZEJ1ZmZlcnMpOwor
ICAgIHZrRGVzdHJveUJ1ZmZlcihtRGV2aWNlLCBzdGFnaW5nQnVmZmVyLCBudWxscHRyKTsKKyAg
ICB2a0ZyZWVNZW1vcnkobURldmljZSwgZGV2aWNlTWVtb3J5LCBudWxscHRyKTsKK30KKwogfSAg
Ly8gbmFtZXNwYWNlIGFuZ2xlCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9z
cmMvdGVzdHMvdGVzdF91dGlscy9WdWxrYW5IZWxwZXIuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FO
R0xFL3NyYy90ZXN0cy90ZXN0X3V0aWxzL1Z1bGthbkhlbHBlci5oCmluZGV4IDkxNzdhYjExNjRj
MmNmYTYyYmY3OTQxYTkxZDRmYjcxMzBiOWUyNTMuLjFhOTNiZmY3ZGRiMTFlZTNjOGMyODhkNTVm
ODRkMDAwMTU1YjQyMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90
ZXN0cy90ZXN0X3V0aWxzL1Z1bGthbkhlbHBlci5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FO
R0xFL3NyYy90ZXN0cy90ZXN0X3V0aWxzL1Z1bGthbkhlbHBlci5oCkBAIC0xMTIsNiArMTEyLDE2
IEBAIGNsYXNzIFZ1bGthbkhlbHBlcgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBWa0ltYWdlTGF5b3V0IG5ld0xheW91dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgVmtTZW1hcGhvcmUgc2VtYXBob3JlKTsKIAorICAgIC8vIFdyaXRlcyBwaXhl
bHMgaW50byBhbiBpbWFnZS4gQ3VycmVudGx5IG9ubHkgVktfRk9STUFUX1I4RzhCOEE4X1VOT1JN
CisgICAgLy8gYW5kIFZLX0ZPUk1BVF9COEc4UjhBOF9VTk9STSBmb3JtYXRzIGFyZSBzdXBwb3J0
ZWQuCisgICAgdm9pZCB3cml0ZVBpeGVscyhWa0ltYWdlIGRzdEltYWdlLAorICAgICAgICAgICAg
ICAgICAgICAgVmtJbWFnZUxheW91dCBpbWFnZUxheW91dCwKKyAgICAgICAgICAgICAgICAgICAg
IFZrRm9ybWF0IGltYWdlRm9ybWF0LAorICAgICAgICAgICAgICAgICAgICAgVmtPZmZzZXQzRCBp
bWFnZU9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgIFZrRXh0ZW50M0QgaW1hZ2VFeHRlbnQs
CisgICAgICAgICAgICAgICAgICAgICBjb25zdCB2b2lkICpwaXhlbHMsCisgICAgICAgICAgICAg
ICAgICAgICBzaXplX3QgcGl4ZWxzU2l6ZSk7CisKICAgICAvLyBDb3BpZXMgcGl4ZWxzIG91dCBv
ZiBhbiBpbWFnZS4gQ3VycmVudGx5IG9ubHkgVktfRk9STUFUX1I4RzhCOEE4X1VOT1JNCiAgICAg
Ly8gYW5kIFZLX0ZPUk1BVF9COEc4UjhBOF9VTk9STSBmb3JtYXRzIGFyZSBzdXBwb3J0ZWQuCiAg
ICAgdm9pZCByZWFkUGl4ZWxzKFZrSW1hZ2Ugc3JjSW1hZ2UsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvdGVzdF91dGlscy9hbmdsZV90ZXN0X2NvbmZpZ3Mu
Y3BwIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3RzL3Rlc3RfdXRpbHMvYW5nbGVf
dGVzdF9jb25maWdzLmNwcAppbmRleCA3ODYxNzA5OTBmNzg3MzZlMTVmNDIyMTJhZTYwYWE0NzU0
Y2U1MDQ4Li45YTRjMjVlOWNhMDYzMTMzNjRkZDc3ZDMxMGVjZGI1MzI5NzI3NzRiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvdGVzdF91dGlscy9hbmdsZV90
ZXN0X2NvbmZpZ3MuY3BwCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy90
ZXN0X3V0aWxzL2FuZ2xlX3Rlc3RfY29uZmlncy5jcHAKQEAgLTcsMTAgKzcsMzYgQEAKICNpbmNs
dWRlICJ0ZXN0X3V0aWxzL2FuZ2xlX3Rlc3RfY29uZmlncy5oIgogCiAjaW5jbHVkZSAiY29tbW9u
L3BsYXRmb3JtLmgiCisjaW5jbHVkZSAiY29tbW9uL3N0cmluZ191dGlscy5oIgogI2luY2x1ZGUg
InV0aWwvdXRpbF9nbC5oIgogCisjaW5jbHVkZSA8YWxnb3JpdGhtPgorI2luY2x1ZGUgPGNjdHlw
ZT4KKwogbmFtZXNwYWNlIGFuZ2xlCiB7CituYW1lc3BhY2UKK3sKK3ZvaWQgQXBwZW5kQ2FwaXRh
bGl6ZWRGZWF0dXJlKHN0ZDo6b3N0cmVhbSAmc3RyZWFtLCBGZWF0dXJlIGZlYXR1cmUpCit7Cisg
ICAgY29uc3QgY2hhciAqbmFtZSA9IEdldEZlYXR1cmVOYW1lKGZlYXR1cmUpOworCisgICAgaWYg
KG5hbWUgPT0gbnVsbHB0cikKKyAgICB7CisgICAgICAgIHN0cmVhbSA8PCAiSW50ZXJuYWxFcnJv
ciI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBjb25zdCBzdGQ6OnN0cmluZyBjYW1l
bENhc2UgPSBhbmdsZTo6VG9DYW1lbENhc2UobmFtZSk7CisKKyAgICBzdHJlYW0gPDwgc3RhdGlj
X2Nhc3Q8Y2hhcj4oc3RkOjp0b3VwcGVyKGNhbWVsQ2FzZVswXSkpIDw8IChjYW1lbENhc2UuY19z
dHIoKSArIDEpOworfQorCitib29sIEhhc0ZlYXR1cmVPdmVycmlkZShjb25zdCBzdGQ6OnZlY3Rv
cjxGZWF0dXJlPiAmb3ZlcnJpZGVzLCBGZWF0dXJlIGZlYXR1cmUpCit7CisgICAgcmV0dXJuIHN0
ZDo6ZmluZChvdmVycmlkZXMuYmVnaW4oKSwgb3ZlcnJpZGVzLmVuZCgpLCBmZWF0dXJlKSAhPSBv
dmVycmlkZXMuZW5kKCk7Cit9Cit9ICAvLyBuYW1lc3BhY2UKIAogUGxhdGZvcm1QYXJhbWV0ZXJz
OjpQbGF0Zm9ybVBhcmFtZXRlcnMoKSA6IFBsYXRmb3JtUGFyYW1ldGVycygyLCAwLCBHTEVTRHJp
dmVyVHlwZTo6QW5nbGVFR0wpIHt9CiAKQEAgLTU5LDE3ICs4NSwyMiBAQCBib29sIFBsYXRmb3Jt
UGFyYW1ldGVyczo6aXNBTkdMRSgpIGNvbnN0CiAgICAgcmV0dXJuIGRyaXZlciA9PSBHTEVTRHJp
dmVyVHlwZTo6QW5nbGVFR0w7CiB9CiAKLUVHTGludCBQbGF0Zm9ybVBhcmFtZXRlcnM6OmdldEFs
bG9jYXRlTm9uWmVyb01lbW9yeUZlYXR1cmUoKSBjb25zdAotewotICAgIHJldHVybiBlZ2xQYXJh
bWV0ZXJzLmFsbG9jYXRlTm9uWmVyb01lbW9yeUZlYXR1cmU7Ci19Ci0KIHZvaWQgUGxhdGZvcm1Q
YXJhbWV0ZXJzOjppbml0RGVmYXVsdFBhcmFtZXRlcnMoKQogewogICAgIC8vIERlZmF1bHQgZGVi
dWcgbGF5ZXJzIHRvIGVuYWJsZWQgaW4gdGVzdHMuCiAgICAgZWdsUGFyYW1ldGVycy5kZWJ1Z0xh
eWVyc0VuYWJsZWQgPSBFR0xfVFJVRTsKIH0KIAorYm9vbCBQbGF0Zm9ybVBhcmFtZXRlcnM6Omlz
RW5hYmxlZChGZWF0dXJlIGZlYXR1cmUpIGNvbnN0Cit7CisgICAgcmV0dXJuIEhhc0ZlYXR1cmVP
dmVycmlkZShlZ2xQYXJhbWV0ZXJzLmVuYWJsZWRGZWF0dXJlT3ZlcnJpZGVzLCBmZWF0dXJlKTsK
K30KKworYm9vbCBQbGF0Zm9ybVBhcmFtZXRlcnM6OmlzRGlzYWJsZWQoRmVhdHVyZSBmZWF0dXJl
KSBjb25zdAoreworICAgIHJldHVybiBIYXNGZWF0dXJlT3ZlcnJpZGUoZWdsUGFyYW1ldGVycy5k
aXNhYmxlZEZlYXR1cmVPdmVycmlkZXMsIGZlYXR1cmUpOworfQorCiBib29sIG9wZXJhdG9yPChj
b25zdCBQbGF0Zm9ybVBhcmFtZXRlcnMgJmEsIGNvbnN0IFBsYXRmb3JtUGFyYW1ldGVycyAmYikK
IHsKICAgICByZXR1cm4gYS50aWUoKSA8IGIudGllKCk7CkBAIC0xOTYsMTI2ICsyMjcsNiBAQCBz
dGQ6Om9zdHJlYW0gJm9wZXJhdG9yPDwoc3RkOjpvc3RyZWFtICZzdHJlYW0sIGNvbnN0IFBsYXRm
b3JtUGFyYW1ldGVycyAmcHApCiAgICAgICAgIHN0cmVhbSA8PCAiX05vRml4dHVyZSI7CiAgICAg
fQogCi0gICAgaWYgKHBwLmVnbFBhcmFtZXRlcnMudHJhbnNmb3JtRmVlZGJhY2tGZWF0dXJlID09
IEVHTF9GQUxTRSkKLSAgICB7Ci0gICAgICAgIHN0cmVhbSA8PCAiX05vVHJhbnNmb3JtRmVlZGJh
Y2siOwotICAgIH0KLSAgICBlbHNlIGlmIChwcC5lZ2xQYXJhbWV0ZXJzLnRyYW5zZm9ybUZlZWRi
YWNrRmVhdHVyZSA9PSBFR0xfVFJVRSkKLSAgICB7Ci0gICAgICAgIHN0cmVhbSA8PCAiX1RyYW5z
Zm9ybUZlZWRiYWNrIjsKLSAgICB9Ci0KLSAgICBpZiAocHAuZWdsUGFyYW1ldGVycy5hbGxvY2F0
ZU5vblplcm9NZW1vcnlGZWF0dXJlID09IEVHTF9GQUxTRSkKLSAgICB7Ci0gICAgICAgIHN0cmVh
bSA8PCAiX05vQWxsb2NhdGVOb25aZXJvTWVtb3J5IjsKLSAgICB9Ci0gICAgZWxzZSBpZiAocHAu
ZWdsUGFyYW1ldGVycy5hbGxvY2F0ZU5vblplcm9NZW1vcnlGZWF0dXJlID09IEVHTF9UUlVFKQot
ICAgIHsKLSAgICAgICAgc3RyZWFtIDw8ICJfQWxsb2NhdGVOb25aZXJvTWVtb3J5IjsKLSAgICB9
Ci0KLSAgICBpZiAocHAuZWdsUGFyYW1ldGVycy5lbXVsYXRlQ29weVRleEltYWdlMkRGcm9tUmVu
ZGVyYnVmZmVycyA9PSBFR0xfVFJVRSkKLSAgICB7Ci0gICAgICAgIHN0cmVhbSA8PCAiX0VtdWxh
dGVDb3B5VGV4SW1hZ2UyREZyb21SZW5kZXJidWZmZXJzIjsKLSAgICB9Ci0KLSAgICBpZiAocHAu
ZWdsUGFyYW1ldGVycy5zaGFkZXJTdGVuY2lsT3V0cHV0RmVhdHVyZSA9PSBFR0xfRkFMU0UpCi0g
ICAgewotICAgICAgICBzdHJlYW0gPDwgIl9Ob1N0ZW5jaWxPdXRwdXQiOwotICAgIH0KLQotICAg
IGlmIChwcC5lZ2xQYXJhbWV0ZXJzLmdlbk11bHRpcGxlTWlwc1BlclBhc3NGZWF0dXJlID09IEVH
TF9GQUxTRSkKLSAgICB7Ci0gICAgICAgIHN0cmVhbSA8PCAiX05vR2VuTXVsdGlwbGVNaXBzUGVy
UGFzcyI7Ci0gICAgfQotCi0gICAgc3dpdGNoIChwcC5lZ2xQYXJhbWV0ZXJzLmVtdWxhdGVkUHJl
cm90YXRpb24pCi0gICAgewotICAgICAgICBjYXNlIDkwOgotICAgICAgICAgICAgc3RyZWFtIDw8
ICJfUHJlUm90YXRlOTAiOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgMTgwOgot
ICAgICAgICAgICAgc3RyZWFtIDw8ICJfUHJlUm90YXRlMTgwIjsKLSAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICBjYXNlIDI3MDoKLSAgICAgICAgICAgIHN0cmVhbSA8PCAiX1ByZVJvdGF0ZTI3
MCI7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIGJy
ZWFrOwotICAgIH0KLQotICAgIGlmIChwcC5lZ2xQYXJhbWV0ZXJzLmFzeW5jQ29tbWFuZFF1ZXVl
RmVhdHVyZVZ1bGthbiA9PSBFR0xfVFJVRSkKLSAgICB7Ci0gICAgICAgIHN0cmVhbSA8PCAiX0Fz
eW5jUXVldWUiOwotICAgIH0KLQotICAgIGlmIChwcC5lZ2xQYXJhbWV0ZXJzLmhhc0V4cGxpY2l0
TWVtQmFycmllckZlYXR1cmVNdGwgPT0gRUdMX0ZBTFNFKQotICAgIHsKLSAgICAgICAgc3RyZWFt
IDw8ICJfTm9NZXRhbEV4cGxpY2l0TWVtb3J5QmFycmllciI7Ci0gICAgfQotCi0gICAgaWYgKHBw
LmVnbFBhcmFtZXRlcnMuaGFzQ2hlYXBSZW5kZXJQYXNzRmVhdHVyZU10bCA9PSBFR0xfRkFMU0Up
Ci0gICAgewotICAgICAgICBzdHJlYW0gPDwgIl9Ob01ldGFsQ2hlYXBSZW5kZXJQYXNzIjsKLSAg
ICB9Ci0KLSAgICBpZiAocHAuZWdsUGFyYW1ldGVycy5mb3JjZUJ1ZmZlckdQVVN0b3JhZ2VGZWF0
dXJlTXRsID09IEVHTF9UUlVFKQotICAgIHsKLSAgICAgICAgc3RyZWFtIDw8ICJfRm9yY2VNZXRh
bEJ1ZmZlckdQVVN0b3JhZ2UiOwotICAgIH0KLQotICAgIGlmIChwcC5lZ2xQYXJhbWV0ZXJzLnN1
cHBvcnRzVnVsa2FuVmlld3BvcnRGbGlwID09IEVHTF9UUlVFKQotICAgIHsKLSAgICAgICAgc3Ry
ZWFtIDw8ICJfVnVsa2FuVmlld3BvcnRGbGlwIjsKLSAgICB9Ci0gICAgZWxzZSBpZiAocHAuZWds
UGFyYW1ldGVycy5zdXBwb3J0c1Z1bGthblZpZXdwb3J0RmxpcCA9PSBFR0xfRkFMU0UpCi0gICAg
ewotICAgICAgICBzdHJlYW0gPDwgIl9Ob1Z1bGthblZpZXdwb3J0RmxpcCI7Ci0gICAgfQotCi0g
ICAgaWYgKHBwLmVnbFBhcmFtZXRlcnMuc3VwcG9ydHNWdWxrYW5NdWx0aURyYXdJbmRpcmVjdCA9
PSBFR0xfVFJVRSkKLSAgICB7Ci0gICAgICAgIHN0cmVhbSA8PCAiX1Z1bGthbk11bHRpRHJhd0lu
ZGlyZWN0IjsKLSAgICB9Ci0gICAgZWxzZSBpZiAocHAuZWdsUGFyYW1ldGVycy5zdXBwb3J0c1Z1
bGthbk11bHRpRHJhd0luZGlyZWN0ID09IEVHTF9GQUxTRSkKLSAgICB7Ci0gICAgICAgIHN0cmVh
bSA8PCAiX1Z1bGthbk5vTXVsdGlEcmF3SW5kaXJlY3QiOwotICAgIH0KLQotICAgIGlmIChwcC5l
Z2xQYXJhbWV0ZXJzLldpdGhWdWxrYW5QcmVmZXJDUFVGb3JCdWZmZXJTdWJEYXRhID09IEVHTF9U
UlVFKQotICAgIHsKLSAgICAgICAgc3RyZWFtIDw8ICJfVnVsa2FuUHJlZmVyQ1BVRm9yQnVmZmVy
U3ViRGF0YSI7Ci0gICAgfQotICAgIGVsc2UgaWYgKHBwLmVnbFBhcmFtZXRlcnMuV2l0aFZ1bGth
blByZWZlckNQVUZvckJ1ZmZlclN1YkRhdGEgPT0gRUdMX0ZBTFNFKQotICAgIHsKLSAgICAgICAg
c3RyZWFtIDw8ICJfVnVsa2FuTm9QcmVmZXJDUFVGb3JCdWZmZXJTdWJEYXRhIjsKLSAgICB9Ci0K
LSAgICBpZiAocHAuZWdsUGFyYW1ldGVycy5lbXVsYXRlZFZBT3MgPT0gRUdMX1RSVUUpCi0gICAg
ewotICAgICAgICBzdHJlYW0gPDwgIl9FbXVsYXRlZFZBT3MiOwotICAgIH0KLQotICAgIGlmIChw
cC5lZ2xQYXJhbWV0ZXJzLmdlbmVyYXRlU1BJUlZUaHJvdWdoR2xzbGFuZyA9PSBFR0xfVFJVRSkK
LSAgICB7Ci0gICAgICAgIHN0cmVhbSA8PCAiX0dsc2xhbmciOwotICAgIH0KLQotICAgIGlmIChw
cC5lZ2xQYXJhbWV0ZXJzLmRpcmVjdE1ldGFsR2VuZXJhdGlvbiA9PSBFR0xfVFJVRSkKLSAgICB7
Ci0gICAgICAgIHN0cmVhbSA8PCAiX0RpcmVjdE1ldGFsR2VuIjsKLSAgICB9Ci0KLSAgICBpZiAo
cHAuZWdsUGFyYW1ldGVycy5mb3JjZUluaXRTaGFkZXJWYXJpYWJsZXMgPT0gRUdMX1RSVUUpCi0g
ICAgewotICAgICAgICBzdHJlYW0gPDwgIl9Jbml0U2hhZGVyVmFycyI7Ci0gICAgfQotCi0gICAg
aWYgKHBwLmVnbFBhcmFtZXRlcnMuZm9yY2VWdWxrYW5GYWxsYmFja0Zvcm1hdCA9PSBFR0xfVFJV
RSkKLSAgICB7Ci0gICAgICAgIHN0cmVhbSA8PCAiX0ZhbGxiYWNrRm9ybWF0IjsKLSAgICB9Ci0K
ICAgICBpZiAocHAuZWdsUGFyYW1ldGVycy5kaXNwbGF5UG93ZXJQcmVmZXJlbmNlID09IEVHTF9M
T1dfUE9XRVJfQU5HTEUpCiAgICAgewogICAgICAgICBzdHJlYW0gPDwgIl9Mb3dQb3dlckdQVSI7
CkBAIC0zMjYsMTQgKzIzNywxNSBAQCBzdGQ6Om9zdHJlYW0gJm9wZXJhdG9yPDwoc3RkOjpvc3Ry
ZWFtICZzdHJlYW0sIGNvbnN0IFBsYXRmb3JtUGFyYW1ldGVycyAmcHApCiAgICAgICAgIHN0cmVh
bSA8PCAiX0hpZ2hQb3dlckdQVSI7CiAgICAgfQogCi0gICAgaWYgKHBwLmVnbFBhcmFtZXRlcnMu
Zm9yY2VTdWJtaXRJbW11dGFibGVUZXh0dXJlVXBkYXRlcyA9PSBFR0xfVFJVRSkKKyAgICBmb3Ig
KEZlYXR1cmUgZmVhdHVyZSA6IHBwLmVnbFBhcmFtZXRlcnMuZW5hYmxlZEZlYXR1cmVPdmVycmlk
ZXMpCiAgICAgewotICAgICAgICBzdHJlYW0gPDwgIl9WdWxrYW5Gb3JjZVN1Ym1pdEltbXV0YWJs
ZVRleHR1cmVVcGRhdGVzIjsKKyAgICAgICAgc3RyZWFtIDw8ICJfIjsKKyAgICAgICAgQXBwZW5k
Q2FwaXRhbGl6ZWRGZWF0dXJlKHN0cmVhbSwgZmVhdHVyZSk7CiAgICAgfQotCi0gICAgaWYgKHBw
LmVnbFBhcmFtZXRlcnMuY3JlYXRlUGlwZWxpbmVEdXJpbmdMaW5rID09IEVHTF9UUlVFKQorICAg
IGZvciAoRmVhdHVyZSBmZWF0dXJlIDogcHAuZWdsUGFyYW1ldGVycy5kaXNhYmxlZEZlYXR1cmVP
dmVycmlkZXMpCiAgICAgewotICAgICAgICBzdHJlYW0gPDwgIl9DcmVhdGVQaXBlbGluZUR1cmlu
Z0xpbmsiOworICAgICAgICBzdHJlYW0gPDwgIl9ObyI7CisgICAgICAgIEFwcGVuZENhcGl0YWxp
emVkRmVhdHVyZShzdHJlYW0sIGZlYXR1cmUpOwogICAgIH0KIAogICAgIHJldHVybiBzdHJlYW07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvdGVzdF91dGls
cy9hbmdsZV90ZXN0X2NvbmZpZ3MuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0
cy90ZXN0X3V0aWxzL2FuZ2xlX3Rlc3RfY29uZmlncy5oCmluZGV4IGNkYzVkNzZmOGY0ZTBkZGZh
Y2M1YjVjMGExYjllYmJjNjFkY2ViNTQuLjYyOTJmZWRhYjg1NzNkNDVjYWRkZjAzMWE2MGI3NTVl
MDNlN2ZhOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy90
ZXN0X3V0aWxzL2FuZ2xlX3Rlc3RfY29uZmlncy5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FO
R0xFL3NyYy90ZXN0cy90ZXN0X3V0aWxzL2FuZ2xlX3Rlc3RfY29uZmlncy5oCkBAIC0zNiw3ICsz
Niw2IEBAIHN0cnVjdCBQbGF0Zm9ybVBhcmFtZXRlcnMKICAgICBib29sIGlzU3dpZnRzaGFkZXIo
KSBjb25zdDsKICAgICBib29sIGlzVnVsa2FuKCkgY29uc3Q7CiAgICAgYm9vbCBpc0FOR0xFKCkg
Y29uc3Q7Ci0gICAgRUdMaW50IGdldEFsbG9jYXRlTm9uWmVyb01lbW9yeUZlYXR1cmUoKSBjb25z
dDsKIAogICAgIHZvaWQgaW5pdERlZmF1bHRQYXJhbWV0ZXJzKCk7CiAKQEAgLTQ1LDYgKzQ0LDIx
IEBAIHN0cnVjdCBQbGF0Zm9ybVBhcmFtZXRlcnMKICAgICAgICAgcmV0dXJuIHN0ZDo6dGllKGRy
aXZlciwgbm9GaXh0dXJlLCBlZ2xQYXJhbWV0ZXJzLCBtYWpvclZlcnNpb24sIG1pbm9yVmVyc2lv
bik7CiAgICAgfQogCisgICAgLy8gSGVscGVycyB0byBlbmFibGUgYW5kIGRpc2FibGUgQU5HTEUg
ZmVhdHVyZXMuICBFeHBlY3RzIGEgRmVhdHVyZTo6KiB2YWx1ZSBmcm9tCisgICAgLy8gYW5nbGVf
ZmVhdHVyZXNfYXV0b2dlbi5oLgorICAgIFBsYXRmb3JtUGFyYW1ldGVycyAmZW5hYmxlKEZlYXR1
cmUgZmVhdHVyZSkKKyAgICB7CisgICAgICAgIGVnbFBhcmFtZXRlcnMuZW5hYmxlKGZlYXR1cmUp
OworICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorICAgIFBsYXRmb3JtUGFyYW1ldGVycyAm
ZGlzYWJsZShGZWF0dXJlIGZlYXR1cmUpCisgICAgeworICAgICAgICBlZ2xQYXJhbWV0ZXJzLmRp
c2FibGUoZmVhdHVyZSk7CisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisgICAgYm9vbCBp
c0VuYWJsZWQoRmVhdHVyZSBmZWF0dXJlKSBjb25zdDsKKyAgICBib29sIGlzRGlzYWJsZWQoRmVh
dHVyZSBmZWF0dXJlKSBjb25zdDsKKwogICAgIEdMRVNEcml2ZXJUeXBlIGRyaXZlcjsKICAgICBi
b29sIG5vRml4dHVyZTsKICAgICBFR0xQbGF0Zm9ybVBhcmFtZXRlcnMgZWdsUGFyYW1ldGVyczsK
QEAgLTE5OCw1OSArMjEyLDYgQEAgaW5saW5lIFBsYXRmb3JtUGFyYW1ldGVycyBXaXRoTm9GaXh0
dXJlKGNvbnN0IFBsYXRmb3JtUGFyYW1ldGVycyAmcGFyYW1zKQogICAgIHJldHVybiB3aXRoTm9G
aXh0dXJlOwogfQogCi1pbmxpbmUgUGxhdGZvcm1QYXJhbWV0ZXJzIFdpdGhOb1RyYW5zZm9ybUZl
ZWRiYWNrKGNvbnN0IFBsYXRmb3JtUGFyYW1ldGVycyAmcGFyYW1zKQotewotICAgIFBsYXRmb3Jt
UGFyYW1ldGVycyB3aXRoTm9UcmFuc2Zvcm1GZWVkYmFjayAgICAgICAgICAgICAgICAgICAgID0g
cGFyYW1zOwotICAgIHdpdGhOb1RyYW5zZm9ybUZlZWRiYWNrLmVnbFBhcmFtZXRlcnMudHJhbnNm
b3JtRmVlZGJhY2tGZWF0dXJlID0gRUdMX0ZBTFNFOwotICAgIHJldHVybiB3aXRoTm9UcmFuc2Zv
cm1GZWVkYmFjazsKLX0KLQotaW5saW5lIFBsYXRmb3JtUGFyYW1ldGVycyBXaXRoQWxsb2NhdGVO
b25aZXJvTWVtb3J5KGNvbnN0IFBsYXRmb3JtUGFyYW1ldGVycyAmcGFyYW1zKQotewotICAgIFBs
YXRmb3JtUGFyYW1ldGVycyBhbGxvY2F0ZU5vblplcm8gICAgICAgICAgICAgICAgICAgICAgICAg
PSBwYXJhbXM7Ci0gICAgYWxsb2NhdGVOb25aZXJvLmVnbFBhcmFtZXRlcnMuYWxsb2NhdGVOb25a
ZXJvTWVtb3J5RmVhdHVyZSA9IEVHTF9UUlVFOwotICAgIHJldHVybiBhbGxvY2F0ZU5vblplcm87
Ci19Ci0KLWlubGluZSBQbGF0Zm9ybVBhcmFtZXRlcnMgV2l0aEVtdWxhdGVDb3B5VGV4SW1hZ2Uy
REZyb21SZW5kZXJidWZmZXJzKAotICAgIGNvbnN0IFBsYXRmb3JtUGFyYW1ldGVycyAmcGFyYW1z
KQotewotICAgIFBsYXRmb3JtUGFyYW1ldGVycyBwICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA9IHBhcmFtczsKLSAgICBwLmVnbFBhcmFtZXRlcnMuZW11bGF0ZUNvcHlUZXhJbWFn
ZTJERnJvbVJlbmRlcmJ1ZmZlcnMgPSBFR0xfVFJVRTsKLSAgICByZXR1cm4gcDsKLX0KLQotaW5s
aW5lIFBsYXRmb3JtUGFyYW1ldGVycyBXaXRoTm9TaGFkZXJTdGVuY2lsT3V0cHV0KGNvbnN0IFBs
YXRmb3JtUGFyYW1ldGVycyAmcGFyYW1zKQotewotICAgIFBsYXRmb3JtUGFyYW1ldGVycyByZSAg
ICAgICAgICAgICAgICAgICAgICAgPSBwYXJhbXM7Ci0gICAgcmUuZWdsUGFyYW1ldGVycy5zaGFk
ZXJTdGVuY2lsT3V0cHV0RmVhdHVyZSA9IEVHTF9GQUxTRTsKLSAgICByZXR1cm4gcmU7Ci19Ci0K
LWlubGluZSBQbGF0Zm9ybVBhcmFtZXRlcnMgV2l0aE5vR2VuTXVsdGlwbGVNaXBzUGVyUGFzcyhj
b25zdCBQbGF0Zm9ybVBhcmFtZXRlcnMgJnBhcmFtcykKLXsKLSAgICBQbGF0Zm9ybVBhcmFtZXRl
cnMgcmUgICAgICAgICAgICAgICAgICAgICAgICAgID0gcGFyYW1zOwotICAgIHJlLmVnbFBhcmFt
ZXRlcnMuZ2VuTXVsdGlwbGVNaXBzUGVyUGFzc0ZlYXR1cmUgPSBFR0xfRkFMU0U7Ci0gICAgcmV0
dXJuIHJlOwotfQotCi1pbmxpbmUgUGxhdGZvcm1QYXJhbWV0ZXJzIFdpdGhNZXRhbE1lbW9yeUJh
cnJpZXJBbmRDaGVhcFJlbmRlclBhc3MoY29uc3QgUGxhdGZvcm1QYXJhbWV0ZXJzICZwYXJhbXMs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYm9vbCBoYXNCYXJyaWVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgY2hlYXBSZW5kZXJQ
YXNzKQotewotICAgIFBsYXRmb3JtUGFyYW1ldGVycyByZSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA9IHBhcmFtczsKLSAgICByZS5lZ2xQYXJhbWV0ZXJzLmhhc0V4cGxpY2l0TWVtQmFycmll
ckZlYXR1cmVNdGwgPSBoYXNCYXJyaWVyID8gRUdMX1RSVUUgOiBFR0xfRkFMU0U7Ci0gICAgcmUu
ZWdsUGFyYW1ldGVycy5oYXNDaGVhcFJlbmRlclBhc3NGZWF0dXJlTXRsICAgID0gY2hlYXBSZW5k
ZXJQYXNzID8gRUdMX1RSVUUgOiBFR0xfRkFMU0U7Ci0gICAgcmV0dXJuIHJlOwotfQotCi1pbmxp
bmUgUGxhdGZvcm1QYXJhbWV0ZXJzIFdpdGhNZXRhbEZvcmNlZEJ1ZmZlckdQVVN0b3JhZ2UoY29u
c3QgUGxhdGZvcm1QYXJhbWV0ZXJzICZwYXJhbXMpCi17Ci0gICAgUGxhdGZvcm1QYXJhbWV0ZXJz
IHJlICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gcGFyYW1zOwotICAgIHJlLmVnbFBhcmFt
ZXRlcnMuZm9yY2VCdWZmZXJHUFVTdG9yYWdlRmVhdHVyZU10bCA9IEVHTF9UUlVFOwotICAgIHJl
dHVybiByZTsKLX0KLQogaW5saW5lIFBsYXRmb3JtUGFyYW1ldGVycyBXaXRoUm9idXN0bmVzcyhj
b25zdCBQbGF0Zm9ybVBhcmFtZXRlcnMgJnBhcmFtcykKIHsKICAgICBQbGF0Zm9ybVBhcmFtZXRl
cnMgd2l0aFJvYnVzdG5lc3MgICAgICAgPSBwYXJhbXM7CkBAIC0yNTgsNjkgKzIxOSw2IEBAIGlu
bGluZSBQbGF0Zm9ybVBhcmFtZXRlcnMgV2l0aFJvYnVzdG5lc3MoY29uc3QgUGxhdGZvcm1QYXJh
bWV0ZXJzICZwYXJhbXMpCiAgICAgcmV0dXJuIHdpdGhSb2J1c3RuZXNzOwogfQogCi1pbmxpbmUg
UGxhdGZvcm1QYXJhbWV0ZXJzIFdpdGhFbXVsYXRlZFByZXJvdGF0aW9uKGNvbnN0IFBsYXRmb3Jt
UGFyYW1ldGVycyAmcGFyYW1zLCBFR0xpbnQgcm90YXRpb24pCi17Ci0gICAgUGxhdGZvcm1QYXJh
bWV0ZXJzIHByZXJvdGF0aW9uICAgICAgICAgICAgICAgID0gcGFyYW1zOwotICAgIHByZXJvdGF0
aW9uLmVnbFBhcmFtZXRlcnMuZW11bGF0ZWRQcmVyb3RhdGlvbiA9IHJvdGF0aW9uOwotICAgIHJl
dHVybiBwcmVyb3RhdGlvbjsKLX0KLQotaW5saW5lIFBsYXRmb3JtUGFyYW1ldGVycyBXaXRoQXN5
bmNDb21tYW5kUXVldWVGZWF0dXJlVnVsa2FuKGNvbnN0IFBsYXRmb3JtUGFyYW1ldGVycyAmcGFy
YW1zKQotewotICAgIFBsYXRmb3JtUGFyYW1ldGVycyB3aXRoQXN5bmNDb21tYW5kUXVldWUgICAg
ICAgICAgICAgICAgICAgICAgICAgICA9IHBhcmFtczsKLSAgICB3aXRoQXN5bmNDb21tYW5kUXVl
dWUuZWdsUGFyYW1ldGVycy5hc3luY0NvbW1hbmRRdWV1ZUZlYXR1cmVWdWxrYW4gPSBFR0xfVFJV
RTsKLSAgICByZXR1cm4gd2l0aEFzeW5jQ29tbWFuZFF1ZXVlOwotfQotCi1pbmxpbmUgUGxhdGZv
cm1QYXJhbWV0ZXJzIFdpdGhOb1Z1bGthblZpZXdwb3J0RmxpcChjb25zdCBQbGF0Zm9ybVBhcmFt
ZXRlcnMgJnBhcmFtcykKLXsKLSAgICBQbGF0Zm9ybVBhcmFtZXRlcnMgd2l0aG91dFZ1bGthblZp
ZXdwb3J0RmxpcCAgICAgICAgICAgICAgICAgICAgICAgPSBwYXJhbXM7Ci0gICAgd2l0aG91dFZ1
bGthblZpZXdwb3J0RmxpcC5lZ2xQYXJhbWV0ZXJzLnN1cHBvcnRzVnVsa2FuVmlld3BvcnRGbGlw
ID0gRUdMX0ZBTFNFOwotICAgIHJldHVybiB3aXRob3V0VnVsa2FuVmlld3BvcnRGbGlwOwotfQot
Ci1pbmxpbmUgUGxhdGZvcm1QYXJhbWV0ZXJzIFdpdGhOb1Z1bGthbk11bHRpRHJhd0luZGlyZWN0
KGNvbnN0IFBsYXRmb3JtUGFyYW1ldGVycyAmcGFyYW1zKQotewotICAgIFBsYXRmb3JtUGFyYW1l
dGVycyB3aXRob3V0VnVsa2FuTXVsdGlEcmF3SW5kaXJlY3RTdXBwb3J0ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID0gcGFyYW1zOwotICAgIHdpdGhvdXRWdWxrYW5NdWx0aURyYXdJbmRpcmVj
dFN1cHBvcnQuZWdsUGFyYW1ldGVycy5zdXBwb3J0c1Z1bGthbk11bHRpRHJhd0luZGlyZWN0ID0g
RUdMX0ZBTFNFOwotICAgIHJldHVybiB3aXRob3V0VnVsa2FuTXVsdGlEcmF3SW5kaXJlY3RTdXBw
b3J0OwotfQotCi1pbmxpbmUgUGxhdGZvcm1QYXJhbWV0ZXJzIFdpdGhFbXVsYXRlZFZBT3MoY29u
c3QgUGxhdGZvcm1QYXJhbWV0ZXJzICZwYXJhbXMpCi17Ci0gICAgUGxhdGZvcm1QYXJhbWV0ZXJz
IGVtdWFsdGVkVkFPUGFyYW1zICAgICAgICAgPSBwYXJhbXM7Ci0gICAgZW11YWx0ZWRWQU9QYXJh
bXMuZWdsUGFyYW1ldGVycy5lbXVsYXRlZFZBT3MgPSBFR0xfVFJVRTsKLSAgICByZXR1cm4gZW11
YWx0ZWRWQU9QYXJhbXM7Ci19Ci0KLWlubGluZSBQbGF0Zm9ybVBhcmFtZXRlcnMgV2l0aEdsc2xh
bmcoY29uc3QgUGxhdGZvcm1QYXJhbWV0ZXJzICZwYXJhbXMpCi17Ci0gICAgUGxhdGZvcm1QYXJh
bWV0ZXJzIGdlbmVyYXRlU1BJUlZUaHJvdWdoR2xzbGFuZyAgICAgICAgICAgICAgICAgICAgICAg
ID0gcGFyYW1zOwotICAgIGdlbmVyYXRlU1BJUlZUaHJvdWdoR2xzbGFuZy5lZ2xQYXJhbWV0ZXJz
LmdlbmVyYXRlU1BJUlZUaHJvdWdoR2xzbGFuZyA9IEVHTF9UUlVFOwotICAgIHJldHVybiBnZW5l
cmF0ZVNQSVJWVGhyb3VnaEdsc2xhbmc7Ci19Ci0KLWlubGluZSBQbGF0Zm9ybVBhcmFtZXRlcnMg
V2l0aERpcmVjdE1ldGFsR2VuZXJhdGlvbihjb25zdCBQbGF0Zm9ybVBhcmFtZXRlcnMgJnBhcmFt
cykKLXsKLSAgICBQbGF0Zm9ybVBhcmFtZXRlcnMgZGlyZWN0TWV0YWxHZW5lcmF0aW9uICAgICAg
ICAgICAgICAgICAgPSBwYXJhbXM7Ci0gICAgZGlyZWN0TWV0YWxHZW5lcmF0aW9uLmVnbFBhcmFt
ZXRlcnMuZGlyZWN0TWV0YWxHZW5lcmF0aW9uID0gRUdMX1RSVUU7Ci0gICAgcmV0dXJuIGRpcmVj
dE1ldGFsR2VuZXJhdGlvbjsKLX0KLQotaW5saW5lIFBsYXRmb3JtUGFyYW1ldGVycyBXaXRoSW5p
dFNoYWRlclZhcmlhYmxlcyhjb25zdCBQbGF0Zm9ybVBhcmFtZXRlcnMgJnBhcmFtcykKLXsKLSAg
ICBQbGF0Zm9ybVBhcmFtZXRlcnMgaW5pdFNoYWRlclZhcmlhYmxlcyAgICAgICAgICAgICAgICAg
ICAgID0gcGFyYW1zOwotICAgIGluaXRTaGFkZXJWYXJpYWJsZXMuZWdsUGFyYW1ldGVycy5mb3Jj
ZUluaXRTaGFkZXJWYXJpYWJsZXMgPSBFR0xfVFJVRTsKLSAgICByZXR1cm4gaW5pdFNoYWRlclZh
cmlhYmxlczsKLX0KLQotaW5saW5lIFBsYXRmb3JtUGFyYW1ldGVycyBXaXRoRm9yY2VWdWxrYW5G
YWxsYmFja0Zvcm1hdChjb25zdCBQbGF0Zm9ybVBhcmFtZXRlcnMgJnBhcmFtc0luKQotewotICAg
IFBsYXRmb3JtUGFyYW1ldGVycyBwYXJhbXNPdXQgICAgICAgICAgICAgICAgICAgICAgPSBwYXJh
bXNJbjsKLSAgICBwYXJhbXNPdXQuZWdsUGFyYW1ldGVycy5mb3JjZVZ1bGthbkZhbGxiYWNrRm9y
bWF0ID0gRUdMX1RSVUU7Ci0gICAgcmV0dXJuIHBhcmFtc091dDsKLX0KLQogaW5saW5lIFBsYXRm
b3JtUGFyYW1ldGVycyBXaXRoTG93UG93ZXJHUFUoY29uc3QgUGxhdGZvcm1QYXJhbWV0ZXJzICZw
YXJhbXNJbikKIHsKICAgICBQbGF0Zm9ybVBhcmFtZXRlcnMgcGFyYW1zT3V0ICAgICAgICAgICAg
ICAgICAgID0gcGFyYW1zSW47CkBAIC0zMzQsMjggKzIzMiw2IEBAIGlubGluZSBQbGF0Zm9ybVBh
cmFtZXRlcnMgV2l0aEhpZ2hQb3dlckdQVShjb25zdCBQbGF0Zm9ybVBhcmFtZXRlcnMgJnBhcmFt
c0luKQogICAgIHBhcmFtc091dC5lZ2xQYXJhbWV0ZXJzLmRpc3BsYXlQb3dlclByZWZlcmVuY2Ug
PSBFR0xfSElHSF9QT1dFUl9BTkdMRTsKICAgICByZXR1cm4gcGFyYW1zT3V0OwogfQotCi1pbmxp
bmUgUGxhdGZvcm1QYXJhbWV0ZXJzIFdpdGhWdWxrYW5QcmVmZXJDUFVGb3JCdWZmZXJTdWJEYXRh
KGNvbnN0IFBsYXRmb3JtUGFyYW1ldGVycyAmcGFyYW1zSW4pCi17Ci0gICAgUGxhdGZvcm1QYXJh
bWV0ZXJzIHBhcmFtc091dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBwYXJhbXNJ
bjsKLSAgICBwYXJhbXNPdXQuZWdsUGFyYW1ldGVycy5XaXRoVnVsa2FuUHJlZmVyQ1BVRm9yQnVm
ZmVyU3ViRGF0YSA9IEVHTF9UUlVFOwotICAgIHJldHVybiBwYXJhbXNPdXQ7Ci19Ci0KLWlubGlu
ZSBQbGF0Zm9ybVBhcmFtZXRlcnMgV2l0aEZvcmNlU3VibWl0SW1tdXRhYmxlVGV4dHVyZVVwZGF0
ZXMoY29uc3QgUGxhdGZvcm1QYXJhbWV0ZXJzICZwYXJhbXMpCi17Ci0gICAgUGxhdGZvcm1QYXJh
bWV0ZXJzIHdpdGhGb3JjZVN1Ym1pdEltbXV0YWJsZVRleHR1cmVVcGRhdGVzID0gcGFyYW1zOwot
ICAgIHdpdGhGb3JjZVN1Ym1pdEltbXV0YWJsZVRleHR1cmVVcGRhdGVzLmVnbFBhcmFtZXRlcnMu
Zm9yY2VTdWJtaXRJbW11dGFibGVUZXh0dXJlVXBkYXRlcyA9Ci0gICAgICAgIEVHTF9UUlVFOwot
ICAgIHJldHVybiB3aXRoRm9yY2VTdWJtaXRJbW11dGFibGVUZXh0dXJlVXBkYXRlczsKLX0KLQot
aW5saW5lIFBsYXRmb3JtUGFyYW1ldGVycyBXaXRoQ3JlYXRlVnVsa2FuUGlwZWxpbmVEdXJpbmdM
aW5rKGNvbnN0IFBsYXRmb3JtUGFyYW1ldGVycyAmcGFyYW1zKQotewotICAgIFBsYXRmb3JtUGFy
YW1ldGVycyB3aXRoQ3JlYXRlVnVsa2FuUGlwZWxpbmVEdXJpbmdMaW5rICAgICAgICAgICAgICAg
ICAgICAgPSBwYXJhbXM7Ci0gICAgd2l0aENyZWF0ZVZ1bGthblBpcGVsaW5lRHVyaW5nTGluay5l
Z2xQYXJhbWV0ZXJzLmNyZWF0ZVBpcGVsaW5lRHVyaW5nTGluayA9IEVHTF9UUlVFOwotICAgIHJl
dHVybiB3aXRoQ3JlYXRlVnVsa2FuUGlwZWxpbmVEdXJpbmdMaW5rOwotfQogfSAgLy8gbmFtZXNw
YWNlIGFuZ2xlCiAKICNlbmRpZiAgLy8gQU5HTEVfVEVTVF9DT05GSUdTX0hfCmRpZmYgLS1naXQg
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvdGVzdF91dGlscy9hbmdsZV90ZXN0
X2luc3RhbnRpYXRlLmNwcCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy90ZXN0
X3V0aWxzL2FuZ2xlX3Rlc3RfaW5zdGFudGlhdGUuY3BwCmluZGV4IDIyZDQ2OGI4NTZkMDZlOWQ4
ODNlZjU0MTEzMTAxZjVmNmVhNDEzODQuLjE3MzU2ZmY4ZTAwZTA5MzkxOWViY2FkMzg5ZGViZDJi
YjM4OTQ5OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy90
ZXN0X3V0aWxzL2FuZ2xlX3Rlc3RfaW5zdGFudGlhdGUuY3BwCisrKyBiL1NvdXJjZS9UaGlyZFBh
cnR5L0FOR0xFL3NyYy90ZXN0cy90ZXN0X3V0aWxzL2FuZ2xlX3Rlc3RfaW5zdGFudGlhdGUuY3Bw
CkBAIC0zNjIsNiArMzYyLDExIEBAIGJvb2wgSXNJbnRlbFVIRDYzME1vYmlsZSgpCiAgICAgcmV0
dXJuIEhhc1N5c3RlbURldmljZUlEKGtWZW5kb3JJRF9JbnRlbCwga0RldmljZUlEX1VIRDYzME1v
YmlsZSk7CiB9CiAKK2Jvb2wgSXNJbnRlbEhENjMwTW9iaWxlKCkKK3sKKyAgICByZXR1cm4gSGFz
U3lzdGVtRGV2aWNlSUQoa1ZlbmRvcklEX0ludGVsLCBrRGV2aWNlSURfSEQ2MzBNb2JpbGUpOwor
fQorCiBib29sIElzQU1EKCkKIHsKICAgICByZXR1cm4gSGFzU3lzdGVtVmVuZG9ySUQoa1ZlbmRv
cklEX0FNRCk7CkBAIC01NzIsNyArNTc3LDggQEAgYm9vbCBJc0NvbmZpZ0FsbG93bGlzdGVkKGNv
bnN0IFN5c3RlbUluZm8gJnN5c3RlbUluZm8sIGNvbnN0IFBsYXRmb3JtUGFyYW1ldGVycwogICAg
ICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgY2FzZSBFR0xfUExBVEZPUk1f
QU5HTEVfVFlQRV9WVUxLQU5fQU5HTEU6CiAgICAgICAgICAgICAgICAgLy8gaHR0cDovL2lzc3Vl
dHJhY2tlci5nb29nbGUuY29tLzE3MzAwNDA4MQotICAgICAgICAgICAgICAgIHJldHVybiAhSXNJ
bnRlbCgpIHx8IHBhcmFtLmVnbFBhcmFtZXRlcnMuYXN5bmNDb21tYW5kUXVldWVGZWF0dXJlVnVs
a2FuICE9IEVHTF9UUlVFOworICAgICAgICAgICAgICAgIHJldHVybiAhSXNJbnRlbCgpIHx8ICFw
YXJhbS5pc0VuYWJsZWQoRmVhdHVyZTo6QXN5bmNDb21tYW5kUXVldWUpIHx8CisgICAgICAgICAg
ICAgICAgICAgICAgIHBhcmFtLmlzRGlzYWJsZWQoRmVhdHVyZTo6QXN5bmNDb21tYW5kUXVldWUp
OwogICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgICAgIH0KQEAgLTYwNiw3ICs2MTIsNyBAQCBib29sIElzQ29uZmlnQWxsb3dsaXN0ZWQoY29u
c3QgU3lzdGVtSW5mbyAmc3lzdGVtSW5mbywgY29uc3QgUGxhdGZvcm1QYXJhbWV0ZXJzCiAgICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChwYXJhbS5lZ2xQYXJhbWV0ZXJzLnN1cHBv
cnRzVnVsa2FuVmlld3BvcnRGbGlwID09IEVHTF9GQUxTRSkKKyAgICAgICAgICAgICAgICBpZiAo
cGFyYW0uaXNEaXNhYmxlZChGZWF0dXJlOjpTdXBwb3J0c05lZ2F0aXZlVmlld3BvcnQpKQogICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAg
ICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0
cy90ZXN0X3V0aWxzL2FuZ2xlX3Rlc3RfaW5zdGFudGlhdGUuaCBiL1NvdXJjZS9UaGlyZFBhcnR5
L0FOR0xFL3NyYy90ZXN0cy90ZXN0X3V0aWxzL2FuZ2xlX3Rlc3RfaW5zdGFudGlhdGUuaAppbmRl
eCBhYmY4ZjVhYTllNTRiNTJhZGNhMGE2MjU2Njk0NzYwMGU0MTcwOGVkLi5iYzNmZDIxNDcwZWU2
YWEwMGZiMmZkM2U1NmE5OGNlODNmYmYyN2RiIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9BTkdMRS9zcmMvdGVzdHMvdGVzdF91dGlscy9hbmdsZV90ZXN0X2luc3RhbnRpYXRlLmgKKysr
IGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3RzL3Rlc3RfdXRpbHMvYW5nbGVfdGVz
dF9pbnN0YW50aWF0ZS5oCkBAIC01Myw2ICs1Myw3IEBAIGJvb2wgSXNRdWFsY29tbSgpOwogLy8g
R1BVIGRldmljZXMuCiBib29sIElzU3dpZnRzaGFkZXJEZXZpY2UoKTsKIGJvb2wgSXNJbnRlbFVI
RDYzME1vYmlsZSgpOworYm9vbCBJc0ludGVsSEQ2MzBNb2JpbGUoKTsKIAogYm9vbCBJczY0Qml0
KCk7CiAKQEAgLTExMSw5ICsxMTIsMTAgQEAgc3RydWN0IENvbWJpbmVkUHJpbnRUb1N0cmluZ1Bh
cmFtTmFtZQogCiAvLyBJbnN0YW50aWF0ZSB0aGUgdGVzdCBvbmNlIGZvciBlYWNoIGV4dHJhIGFy
Z3VtZW50LiBUaGUgdHlwZXMgb2YgYWxsIHRoZQogLy8gYXJndW1lbnRzIG11c3QgbWF0Y2gsIGFu
ZCBnZXRSZW5kZXJlciBtdXN0IGJlIGltcGxlbWVudGVkIGZvciB0aGF0IHR5cGUuCi0jZGVmaW5l
IEFOR0xFX0lOU1RBTlRJQVRFX1RFU1QodGVzdE5hbWUsIGZpcnN0LCAuLi4pICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXAotICAgIGNvbnN0IGRlY2x0eXBlKGZpcnN0KSB0ZXN0TmFt
ZSMjcGFyYW1zW10gPSB7Zmlyc3QsICMjX19WQV9BUkdTX199OyAgICAgICAgICAgICAgIFwKLSAg
ICBJTlNUQU5USUFURV9URVNUX1NVSVRFX1AoLCB0ZXN0TmFtZSwgQU5HTEVfSU5TVEFOVElBVEVf
VEVTVF9QTEFURk9STVModGVzdE5hbWUpLCBcCisjZGVmaW5lIEFOR0xFX0lOU1RBTlRJQVRFX1RF
U1QodGVzdE5hbWUsIGZpcnN0LCAuLi4pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCisgICAgY29uc3Qgc3RkOjpyZW1vdmVfcmVmZXJlbmNlPGRlY2x0eXBlKGZpcnN0
KT46OnR5cGUgdGVzdE5hbWUjI3BhcmFtc1tdID0ge2ZpcnN0LCAgICAgICAgICBcCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICMjX19WQV9BUkdTX199OyBcCisgICAgSU5TVEFOVElBVEVfVEVTVF9TVUlU
RV9QKCwgdGVzdE5hbWUsIEFOR0xFX0lOU1RBTlRJQVRFX1RFU1RfUExBVEZPUk1TKHRlc3ROYW1l
KSwgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3Rpbmc6OlByaW50
VG9TdHJpbmdQYXJhbU5hbWUoKSkKIAogI2RlZmluZSBBTkdMRV9JTlNUQU5USUFURV9URVNUX0FS
UkFZKHRlc3ROYW1lLCB2YWx1ZXNpbikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwKQEAgLTEyMiwyNiArMTI0LDI2IEBAIHN0cnVjdCBDb21iaW5lZFByaW50VG9TdHJp
bmdQYXJhbU5hbWUKIAogI2RlZmluZSBBTkdMRV9BTExfVEVTVF9QTEFURk9STVNfRVMxICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIEVTMV9E
M0QxMSgpLCBFUzFfT1BFTkdMKCksIEVTMV9PUEVOR0xFUygpLCBFUzFfVlVMS0FOKCksIEVTMV9W
VUxLQU5fU1dJRlRTSEFERVIoKSwgXAotICAgICAgICBXaXRoQXN5bmNDb21tYW5kUXVldWVGZWF0
dXJlVnVsa2FuKEVTMV9WVUxLQU4oKSksICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAot
ICAgICAgICBXaXRoQXN5bmNDb21tYW5kUXVldWVGZWF0dXJlVnVsa2FuKEVTMV9WVUxLQU5fU1dJ
RlRTSEFERVIoKSkKKyAgICAgICAgRVMxX1ZVTEtBTigpLmVuYWJsZShGZWF0dXJlOjpBc3luY0Nv
bW1hbmRRdWV1ZSksICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgRVMx
X1ZVTEtBTl9TV0lGVFNIQURFUigpLmVuYWJsZShGZWF0dXJlOjpBc3luY0NvbW1hbmRRdWV1ZSkK
IAogI2RlZmluZSBBTkdMRV9BTExfVEVTVF9QTEFURk9STVNfRVMyICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIEVTMl9E
M0Q5KCksIEVTMl9EM0QxMSgpLCBFUzJfT1BFTkdMKCksIEVTMl9PUEVOR0xFUygpLCBFUzJfVlVM
S0FOKCksIEVTMl9WVUxLQU5fU1dJRlRTSEFERVIoKSwgXAotICAgICAgICBFUzJfTUVUQUwoKSwg
V2l0aEFzeW5jQ29tbWFuZFF1ZXVlRmVhdHVyZVZ1bGthbihFUzJfVlVMS0FOKCkpLCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICBXaXRoQXN5bmNDb21tYW5kUXVldWVGZWF0
dXJlVnVsa2FuKEVTMl9WVUxLQU5fU1dJRlRTSEFERVIoKSkKKyAgICAgICAgRVMyX01FVEFMKCks
IEVTMl9WVUxLQU4oKS5lbmFibGUoRmVhdHVyZTo6QXN5bmNDb21tYW5kUXVldWUpLCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgRVMyX1ZVTEtBTl9TV0lGVFNIQURFUigp
LmVuYWJsZShGZWF0dXJlOjpBc3luY0NvbW1hbmRRdWV1ZSkKIAogI2RlZmluZSBBTkdMRV9BTExf
VEVTVF9QTEFURk9STVNfRVMzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAogICAgIEVTM19EM0QxMSgpLCBFUzNfT1BFTkdMKCksIEVTM19PUEVOR0xF
UygpLCBFUzNfVlVMS0FOKCksIEVTM19WVUxLQU5fU1dJRlRTSEFERVIoKSwgXAotICAgICAgICBF
UzNfTUVUQUwoKSwgV2l0aEFzeW5jQ29tbWFuZFF1ZXVlRmVhdHVyZVZ1bGthbihFUzNfVlVMS0FO
KCkpLCAgICAgICAgICAgICAgICAgXAotICAgICAgICBXaXRoQXN5bmNDb21tYW5kUXVldWVGZWF0
dXJlVnVsa2FuKEVTM19WVUxLQU5fU1dJRlRTSEFERVIoKSkKKyAgICAgICAgRVMzX01FVEFMKCks
IEVTM19WVUxLQU4oKS5lbmFibGUoRmVhdHVyZTo6QXN5bmNDb21tYW5kUXVldWUpLCAgICAgICAg
ICAgICAgICAgIFwKKyAgICAgICAgRVMzX1ZVTEtBTl9TV0lGVFNIQURFUigpLmVuYWJsZShGZWF0
dXJlOjpBc3luY0NvbW1hbmRRdWV1ZSkKIAogI2RlZmluZSBBTkdMRV9BTExfVEVTVF9QTEFURk9S
TVNfRVMzMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCiAgICAgRVMzMV9EM0QxMSgpLCBFUzMxX09QRU5HTCgpLCBFUzMxX09QRU5HTEVTKCks
IEVTMzFfVlVMS0FOKCksIEVTMzFfVlVMS0FOX1NXSUZUU0hBREVSKCksIFwKLSAgICAgICAgV2l0
aEFzeW5jQ29tbWFuZFF1ZXVlRmVhdHVyZVZ1bGthbihFUzMxX1ZVTEtBTigpKSwgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICBXaXRoQXN5bmNDb21tYW5kUXVldWVG
ZWF0dXJlVnVsa2FuKEVTMzFfVlVMS0FOX1NXSUZUU0hBREVSKCkpCisgICAgICAgIEVTMzFfVlVM
S0FOKCkuZW5hYmxlKEZlYXR1cmU6OkFzeW5jQ29tbWFuZFF1ZXVlKSwgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgRVMzMV9WVUxLQU5fU1dJRlRTSEFERVIoKS5l
bmFibGUoRmVhdHVyZTo6QXN5bmNDb21tYW5kUXVldWUpCiAKICNkZWZpbmUgQU5HTEVfQUxMX1RF
U1RfUExBVEZPUk1TX0VTMzIgXAotICAgIEVTMzJfVlVMS0FOKCksIFdpdGhBc3luY0NvbW1hbmRR
dWV1ZUZlYXR1cmVWdWxrYW4oRVMzMl9WVUxLQU4oKSkKKyAgICBFUzMyX1ZVTEtBTigpLCBFUzMy
X1ZVTEtBTigpLmVuYWJsZShGZWF0dXJlOjpBc3luY0NvbW1hbmRRdWV1ZSkKIAogI2RlZmluZSBB
TkdMRV9BTExfVEVTVF9QTEFURk9STVNfTlVMTCBFUzJfTlVMTCgpLCBFUzNfTlVMTCgpLCBFUzMx
X05VTEwoKQogCkBAIC0yMzgsMjcgKzI0MCwzMSBAQCBzdHJ1Y3QgQ29tYmluZWRQcmludFRvU3Ry
aW5nUGFyYW1OYW1lCiAvLyBlbnVtZXJhdGlvbiBvZiBwbGF0Zm9ybXMgaW4gdGhlIGV4dHJhIGFy
Z3MsIHNpbWlsYXIgdG8KIC8vIEFOR0xFX0lOU1RBTlRJQVRFX1RFU1QuICBUaGUgbWFjcm9zIGFy
ZSBkZWZpbmVkIG9ubHkgZm9yIHRoZSBOcwogLy8gY3VycmVudGx5IGluIHVzZSwgYW5kIGNhbiBi
ZSBleHBhbmRlZCBhcyBuZWNlc3NhcnkuCi0jZGVmaW5lIEFOR0xFX0lOU1RBTlRJQVRFX1RFU1Rf
Q09NQklORV8xKHRlc3ROYW1lLCBwcmludCwgY29tYmluZTEsIGZpcnN0LCAuLi4pIFwKLSAgICBj
b25zdCBkZWNsdHlwZShmaXJzdCkgdGVzdE5hbWUjI3BhcmFtc1tdID0ge2ZpcnN0LCAjI19fVkFf
QVJHU19ffTsgICAgICAgICAgXAotICAgIElOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUCggICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisjZGVmaW5lIEFO
R0xFX0lOU1RBTlRJQVRFX1RFU1RfQ09NQklORV8xKHRlc3ROYW1lLCBwcmludCwgY29tYmluZTEs
IGZpcnN0LCAuLi4pICAgICAgICAgICAgICBcCisgICAgY29uc3Qgc3RkOjpyZW1vdmVfcmVmZXJl
bmNlPGRlY2x0eXBlKGZpcnN0KT46OnR5cGUgdGVzdE5hbWUjI3BhcmFtc1tdID0ge2ZpcnN0LCAg
ICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMjX19WQV9BUkdTX199OyBcCisgICAgSU5T
VEFOVElBVEVfVEVTVF9TVUlURV9QKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICwgdGVzdE5hbWUsIHRlc3Rp
bmc6OkNvbWJpbmUoQU5HTEVfSU5TVEFOVElBVEVfVEVTVF9QTEFURk9STVModGVzdE5hbWUpLCBj
b21iaW5lMSksIHByaW50KQogI2RlZmluZSBBTkdMRV9JTlNUQU5USUFURV9URVNUX0NPTUJJTkVf
NCh0ZXN0TmFtZSwgcHJpbnQsIGNvbWJpbmUxLCBjb21iaW5lMiwgY29tYmluZTMsIGNvbWJpbmU0
LCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0LCAuLi4p
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBjb25z
dCBkZWNsdHlwZShmaXJzdCkgdGVzdE5hbWUjI3BhcmFtc1tdID0ge2ZpcnN0LCAjI19fVkFfQVJH
U19ffTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGNvbnN0IHN0ZDo6cmVtb3Zl
X3JlZmVyZW5jZTxkZWNsdHlwZShmaXJzdCk+Ojp0eXBlIHRlc3ROYW1lIyNwYXJhbXNbXSA9IHtm
aXJzdCwgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMjX19WQV9BUkdTX199
OyAgICAgIFwKICAgICBJTlNUQU5USUFURV9URVNUX1NVSVRFX1AoLCB0ZXN0TmFtZSwgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0aW5nOjpDb21iaW5lKEFOR0xFX0lOU1RBTlRJ
QVRFX1RFU1RfUExBVEZPUk1TKHRlc3ROYW1lKSwgICAgICAgICBcCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tYmluZTEsIGNvbWJpbmUyLCBjb21iaW5l
MywgY29tYmluZTQpLCAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cHJpbnQpCiAjZGVmaW5lIEFOR0xFX0lOU1RBTlRJQVRFX1RFU1RfQ09NQklORV81KHRlc3ROYW1l
LCBwcmludCwgY29tYmluZTEsIGNvbWJpbmUyLCBjb21iaW5lMywgY29tYmluZTQsIFwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tYmluZTUsIGZpcnN0LCAuLi4p
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIGNvbnN0IGRlY2x0eXBl
KGZpcnN0KSB0ZXN0TmFtZSMjcGFyYW1zW10gPSB7Zmlyc3QsICMjX19WQV9BUkdTX199OyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgY29uc3Qgc3RkOjpyZW1vdmVfcmVmZXJlbmNl
PGRlY2x0eXBlKGZpcnN0KT46OnR5cGUgdGVzdE5hbWUjI3BhcmFtc1tdID0ge2ZpcnN0LCAgICAg
ICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyNfX1ZBX0FSR1NfX307ICAgICAgXAog
ICAgIElOU1RBTlRJQVRFX1RFU1RfU1VJVEVfUCgsIHRlc3ROYW1lLCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRlc3Rpbmc6OkNvbWJpbmUoQU5HTEVfSU5TVEFOVElBVEVfVEVTVF9Q
TEFURk9STVModGVzdE5hbWUpLCAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb21iaW5lMSwgY29tYmluZTIsIGNvbWJpbmUzLCBjb21iaW5l
NCwgY29tYmluZTUpLCAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludCkKICNk
ZWZpbmUgQU5HTEVfSU5TVEFOVElBVEVfVEVTVF9DT01CSU5FXzYodGVzdE5hbWUsIHByaW50LCBj
b21iaW5lMSwgY29tYmluZTIsIGNvbWJpbmUzLCBjb21iaW5lNCwgIFwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tYmluZTUsIGNvbWJpbmU2LCBmaXJzdCwgLi4u
KSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBjb25zdCBkZWNsdHlwZShmaXJzdCkg
dGVzdE5hbWUjI3BhcmFtc1tdID0ge2ZpcnN0LCAjI19fVkFfQVJHU19ffTsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKKyAgICBjb25zdCBzdGQ6OnJlbW92ZV9yZWZlcmVuY2U8ZGVjbHR5
cGUoZmlyc3QpPjo6dHlwZSB0ZXN0TmFtZSMjcGFyYW1zW10gPSB7Zmlyc3QsICAgICAgICAgICAg
ICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIyNfX1ZBX0FSR1NfX307ICAgICAgIFwKICAgICBJ
TlNUQU5USUFURV9URVNUX1NVSVRFX1AoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgLCB0ZXN0TmFt
ZSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgdGVzdGluZzo6Q29tYmluZShBTkdM
RV9JTlNUQU5USUFURV9URVNUX1BMQVRGT1JNUyh0ZXN0TmFtZSksIGNvbWJpbmUxLCBjb21iaW5l
MiwgY29tYmluZTMsIFwKQEAgLTM1OSwxNCArMzY1LDE0IEBAIHN0ZDo6dmVjdG9yPFBhcmFtVD4g
RmlsdGVyV2l0aEZ1bmMoY29uc3Qgc3RkOjp2ZWN0b3I8UGFyYW1UPiAmaW4sIEZpbHRlckZ1bmMg
ZmlsCiB9CiB9ICAvLyBuYW1lc3BhY2UgYW5nbGUKIAotI2RlZmluZSBBTkdMRV9TS0lQX1RFU1Rf
SUYoQ09ORCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIGRvICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAot
ICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXAotICAgICAgICBpZiAoQ09ORCkgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICB7ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgICAgc3RkOjpjb3V0
IDw8ICJUZXN0IHNraXBwZWQ6ICIgI0NPTkQgIi4iIDw8IHN0ZDo6ZW5kbDsgXAotICAgICAgICAg
ICAgcmV0dXJuOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XAotICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAorI2RlZmluZSBBTkdMRV9TS0lQX1RFU1RfSUYoQ09ORCkgICAgICAgICAg
ICAgICAgICAgICAgICBcCisgICAgZG8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKKyAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAorICAgICAgICBpZiAoQ09ORCkgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIEdURVNUX1NLSVAoKSA8PCAiVGVz
dCBza2lwcGVkOiAiICNDT05EICIuIjsgXAorICAgICAgICAgICAgcmV0dXJuOyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIH0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICB9IHdoaWxlICgwKQogCiAjZW5kaWYg
IC8vIEFOR0xFX1RFU1RfSU5TVEFOVElBVEVfSF8KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBh
cnR5L0FOR0xFL3NyYy90ZXN0cy90ZXN0X3V0aWxzL3J1bm5lci9UZXN0U3VpdGUuY3BwIGIvU291
cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3RzL3Rlc3RfdXRpbHMvcnVubmVyL1Rlc3RTdWl0
ZS5jcHAKaW5kZXggMmE2NmMxMGZmYzEyM2E0OGUxNWQ0MDZjMzgxZWNjNGVmNjFmNGJkMS4uZGRj
OGZkODAzYmZjNjU0YjA5NDBjYTA0OWJkY2M3MjVkNjVjYTViNSAxMDA2NDQKLS0tIGEvU291cmNl
L1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3RzL3Rlc3RfdXRpbHMvcnVubmVyL1Rlc3RTdWl0ZS5j
cHAKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3RzL3Rlc3RfdXRpbHMvcnVu
bmVyL1Rlc3RTdWl0ZS5jcHAKQEAgLTM0MSw3ICszNDEsMTAgQEAgdm9pZCBXcml0ZVJlc3VsdHNG
aWxlKGJvb2wgaW50ZXJydXB0ZWQsCiAKICAgICAgICAganM6OlZhbHVlIHRpbWVzOwogICAgICAg
ICB0aW1lcy5TZXRBcnJheSgpOwotICAgICAgICB0aW1lcy5QdXNoQmFjayhyZXN1bHQuZWxhcHNl
ZFRpbWVTZWNvbmRzLCBhbGxvY2F0b3IpOworICAgICAgICBmb3IgKGRvdWJsZSBlbGFwc2VkVGlt
ZVNlY29uZHMgOiByZXN1bHQuZWxhcHNlZFRpbWVTZWNvbmRzKQorICAgICAgICB7CisgICAgICAg
ICAgICB0aW1lcy5QdXNoQmFjayhlbGFwc2VkVGltZVNlY29uZHMsIGFsbG9jYXRvcik7CisgICAg
ICAgIH0KIAogICAgICAgICBqc1Jlc3VsdC5BZGRNZW1iZXIoInRpbWVzIiwgdGltZXMsIGFsbG9j
YXRvcik7CiAKQEAgLTQzMCw3ICs0MzMsNyBAQCB2b2lkIFVwZGF0ZUN1cnJlbnRUZXN0UmVzdWx0
KGNvbnN0IHRlc3Rpbmc6OlRlc3RSZXN1bHQgJnJlc3VsdEluLCBUZXN0UmVzdWx0cyAqcgogICAg
ICAgICByZXN1bHRPdXQudHlwZSA9IFRlc3RSZXN1bHRUeXBlOjpQYXNzOwogICAgIH0KIAotICAg
IHJlc3VsdE91dC5lbGFwc2VkVGltZVNlY29uZHMgPSByZXN1bHRzT3V0LT5jdXJyZW50VGVzdFRp
bWVyLmdldEVsYXBzZWRXYWxsQ2xvY2tUaW1lKCk7CisgICAgcmVzdWx0T3V0LmVsYXBzZWRUaW1l
U2Vjb25kcy5iYWNrKCkgPSByZXN1bHRzT3V0LT5jdXJyZW50VGVzdFRpbWVyLmdldEVsYXBzZWRX
YWxsQ2xvY2tUaW1lKCk7CiB9CiAKIFRlc3RJZGVudGlmaWVyIEdldFRlc3RJZGVudGlmaWVyKGNv
bnN0IHRlc3Rpbmc6OlRlc3RJbmZvICZ0ZXN0SW5mbykKQEAgLTcwMCw3ICs3MDMsNyBAQCBib29s
IEdldFNpbmdsZVRlc3RSZXN1bHRGcm9tSlNPTihjb25zdCBqczo6VmFsdWUgJm5hbWUsCiAgICAg
ICAgIH0KICAgICB9CiAKLSAgICBkb3VibGUgZWxhcHNlZFRpbWVTZWNvbmRzID0gMC4wOworICAg
IHN0ZDo6dmVjdG9yPGRvdWJsZT4gZWxhcHNlZFRpbWVTZWNvbmRzOwogICAgIGlmIChvYmouSGFz
TWVtYmVyKCJ0aW1lcyIpKQogICAgIHsKICAgICAgICAgY29uc3QganM6OlZhbHVlICZ0aW1lcyA9
IG9ialsidGltZXMiXTsKQEAgLTcxMCwxMiArNzEzLDE5IEBAIGJvb2wgR2V0U2luZ2xlVGVzdFJl
c3VsdEZyb21KU09OKGNvbnN0IGpzOjpWYWx1ZSAmbmFtZSwKICAgICAgICAgfQogCiAgICAgICAg
IGNvbnN0IGpzOjpWYWx1ZTo6Q29uc3RBcnJheSAmdGltZXNBcnJheSA9IHRpbWVzLkdldEFycmF5
KCk7Ci0gICAgICAgIGlmICh0aW1lc0FycmF5LlNpemUoKSAhPSAxIHx8ICF0aW1lc0FycmF5WzBd
LklzRG91YmxlKCkpCisgICAgICAgIGlmICh0aW1lc0FycmF5LlNpemUoKSA8IDEpCiAgICAgICAg
IHsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQorICAgICAgICBmb3IgKGNv
bnN0IGpzOjpWYWx1ZSAmdGltZSA6IHRpbWVzQXJyYXkpCisgICAgICAgIHsKKyAgICAgICAgICAg
IGlmICghdGltZS5Jc0RvdWJsZSgpKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KIAotICAgICAgICBlbGFwc2VkVGltZVNlY29uZHMg
PSB0aW1lc0FycmF5WzBdLkdldERvdWJsZSgpOworICAgICAgICAgICAgZWxhcHNlZFRpbWVTZWNv
bmRzLnB1c2hfYmFjayh0aW1lLkdldERvdWJsZSgpKTsKKyAgICAgICAgfQogICAgIH0KIAogICAg
IFRlc3RSZXN1bHQgJnJlc3VsdCAgICAgICAgPSByZXN1bHRzT3V0LT5yZXN1bHRzW2lkXTsKQEAg
LTgwMSw5ICs4MTEsMTggQEAgYm9vbCBNZXJnZVRlc3RSZXN1bHRzKFRlc3RSZXN1bHRzICppbnB1
dCwgVGVzdFJlc3VsdHMgKm91dHB1dCwgaW50IGZsYWt5UmV0cmllcykKICAgICAgICAgICAgICAg
ICBvdXRwdXRSZXN1bHQuZmxha3lGYWlsdXJlcysrOwogICAgICAgICAgICAgfQogICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIG91dHB1dFJlc3VsdC50eXBl
ID0gaW5wdXRSZXN1bHQudHlwZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChydW5D
b3VudCA9PSAxKQogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIG91dHB1dFJlc3VsdC5l
bGFwc2VkVGltZVNlY29uZHMgPSBpbnB1dFJlc3VsdC5lbGFwc2VkVGltZVNlY29uZHM7Ci0gICAg
ICAgICAgICAgICAgb3V0cHV0UmVzdWx0LnR5cGUgICAgICAgICAgICAgICA9IGlucHV0UmVzdWx0
LnR5cGU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgb3V0cHV0UmVzdWx0LmVsYXBzZWRUaW1lU2Vjb25kcy5pbnNlcnQob3V0
cHV0UmVzdWx0LmVsYXBzZWRUaW1lU2Vjb25kcy5lbmQoKSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFJlc3VsdC5lbGFwc2VkVGlt
ZVNlY29uZHMuYmVnaW4oKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpbnB1dFJlc3VsdC5lbGFwc2VkVGltZVNlY29uZHMuZW5kKCkpOwog
ICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQpAQCAtMTM4Miw5ICsxNDAxLDkgQEAgdm9p
ZCBUZXN0U3VpdGU6Om9uQ3Jhc2hPclRpbWVvdXQoVGVzdFJlc3VsdFR5cGUgY3Jhc2hPclRpbWVv
dXQpCiAgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGd1YXJkKG1UZXN0UmVzdWx0cy5j
dXJyZW50VGVzdE11dGV4KTsKICAgICBpZiAobVRlc3RSZXN1bHRzLmN1cnJlbnRUZXN0LnZhbGlk
KCkpCiAgICAgewotICAgICAgICBUZXN0UmVzdWx0ICZyZXN1bHQgICAgICAgID0gbVRlc3RSZXN1
bHRzLnJlc3VsdHNbbVRlc3RSZXN1bHRzLmN1cnJlbnRUZXN0XTsKLSAgICAgICAgcmVzdWx0LnR5
cGUgICAgICAgICAgICAgICA9IGNyYXNoT3JUaW1lb3V0OwotICAgICAgICByZXN1bHQuZWxhcHNl
ZFRpbWVTZWNvbmRzID0gbVRlc3RSZXN1bHRzLmN1cnJlbnRUZXN0VGltZXIuZ2V0RWxhcHNlZFdh
bGxDbG9ja1RpbWUoKTsKKyAgICAgICAgVGVzdFJlc3VsdCAmcmVzdWx0ICAgICAgICAgICAgICAg
PSBtVGVzdFJlc3VsdHMucmVzdWx0c1ttVGVzdFJlc3VsdHMuY3VycmVudFRlc3RdOworICAgICAg
ICByZXN1bHQudHlwZSAgICAgICAgICAgICAgICAgICAgICA9IGNyYXNoT3JUaW1lb3V0OworICAg
ICAgICByZXN1bHQuZWxhcHNlZFRpbWVTZWNvbmRzLmJhY2soKSA9IG1UZXN0UmVzdWx0cy5jdXJy
ZW50VGVzdFRpbWVyLmdldEVsYXBzZWRXYWxsQ2xvY2tUaW1lKCk7CiAgICAgfQogCiAgICAgaWYg
KG1SZXN1bHRzRmlsZS5lbXB0eSgpKQpAQCAtMTYxMiw3ICsxNjMxLDcgQEAgYm9vbCBUZXN0U3Vp
dGU6OmZpbmlzaFByb2Nlc3MoUHJvY2Vzc0luZm8gKnByb2Nlc3NJbmZvKQogICAgICAgICB9CiAg
ICAgICAgIGVsc2UgaWYgKHJlc3VsdC50eXBlID09IFRlc3RSZXN1bHRUeXBlOjpQYXNzKQogICAg
ICAgICB7Ci0gICAgICAgICAgICBwcmludGYoIiAoJTAuMWxmIG1zKVxuIiwgcmVzdWx0LmVsYXBz
ZWRUaW1lU2Vjb25kcyAqIDEwMDAuMCk7CisgICAgICAgICAgICBwcmludGYoIiAoJTAuMWxmIG1z
KVxuIiwgcmVzdWx0LmVsYXBzZWRUaW1lU2Vjb25kcy5iYWNrKCkgKiAxMDAwLjApOwogICAgICAg
ICB9CiAgICAgICAgIGVsc2UgaWYgKHJlc3VsdC50eXBlID09IFRlc3RSZXN1bHRUeXBlOjpTa2lw
KQogICAgICAgICB7CkBAIC0xNjIwLDcgKzE2MzksNyBAQCBib29sIFRlc3RTdWl0ZTo6ZmluaXNo
UHJvY2VzcyhQcm9jZXNzSW5mbyAqcHJvY2Vzc0luZm8pCiAgICAgICAgIH0KICAgICAgICAgZWxz
ZSBpZiAocmVzdWx0LnR5cGUgPT0gVGVzdFJlc3VsdFR5cGU6OlRpbWVvdXQpCiAgICAgICAgIHsK
LSAgICAgICAgICAgIHByaW50ZigiIChUSU1FT1VUIGluICUwLjFsZiBzKVxuIiwgcmVzdWx0LmVs
YXBzZWRUaW1lU2Vjb25kcyk7CisgICAgICAgICAgICBwcmludGYoIiAoVElNRU9VVCBpbiAlMC4x
bGYgcylcbiIsIHJlc3VsdC5lbGFwc2VkVGltZVNlY29uZHMuYmFjaygpKTsKICAgICAgICAgICAg
IG1GYWlsdXJlQ291bnQrKzsKICAgICAgICAgfQogICAgICAgICBlbHNlCmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvdGVzdF91dGlscy9ydW5uZXIvVGVzdFN1
aXRlLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGVzdHMvdGVzdF91dGlscy9ydW5u
ZXIvVGVzdFN1aXRlLmgKaW5kZXggOWRmMmMyMTU5NmI2NjhmYzY4ODFiZmNjNGQ0MmRkOGMzOGQ2
M2M5NC4uMWUwODdkMTMwZGYxMjM5NjAxYmIwOTViNTk5ZDlkMGM1Yzc0NDdmNiAxMDA2NDQKLS0t
IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3RzL3Rlc3RfdXRpbHMvcnVubmVyL1Rl
c3RTdWl0ZS5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy90ZXN0X3V0
aWxzL3J1bm5lci9UZXN0U3VpdGUuaApAQCAtNzAsOSArNzAsOSBAQCBjb25zdCBjaGFyICpUZXN0
UmVzdWx0VHlwZVRvU3RyaW5nKFRlc3RSZXN1bHRUeXBlIHR5cGUpOwogCiBzdHJ1Y3QgVGVzdFJl
c3VsdAogewotICAgIFRlc3RSZXN1bHRUeXBlIHR5cGUgICAgICAgPSBUZXN0UmVzdWx0VHlwZTo6
Tm9SZXN1bHQ7Ci0gICAgZG91YmxlIGVsYXBzZWRUaW1lU2Vjb25kcyA9IDAuMDsKLSAgICB1aW50
MzJfdCBmbGFreUZhaWx1cmVzICAgID0gMDsKKyAgICBUZXN0UmVzdWx0VHlwZSB0eXBlICAgICAg
ICAgICAgICAgICAgICA9IFRlc3RSZXN1bHRUeXBlOjpOb1Jlc3VsdDsKKyAgICBzdGQ6OnZlY3Rv
cjxkb3VibGU+IGVsYXBzZWRUaW1lU2Vjb25kcyA9IHN0ZDo6dmVjdG9yPGRvdWJsZT4oezAuMH0p
OworICAgIHVpbnQzMl90IGZsYWt5RmFpbHVyZXMgICAgICAgICAgICAgICAgID0gMDsKIH07CiAK
IGlubGluZSBib29sIG9wZXJhdG9yPT0oY29uc3QgVGVzdFJlc3VsdCAmYSwgY29uc3QgVGVzdFJl
c3VsdCAmYikKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90ZXN0cy90
ZXN0X3V0aWxzL3J1bm5lci9UZXN0U3VpdGVfdW5pdHRlc3QuY3BwIGIvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvc3JjL3Rlc3RzL3Rlc3RfdXRpbHMvcnVubmVyL1Rlc3RTdWl0ZV91bml0dGVzdC5j
cHAKaW5kZXggYWNmOTA2NDEzYjA5NzY2NjJjOGYwNzkyNzgyZDBjZDRjNTBiNWVmOC4uNTNiNzhi
NWVhYTU3MDM4ZjE0ZmZhNWRmOGU4M2JmMDE3MTM1MzMzNyAxMDA2NDQKLS0tIGEvU291cmNlL1Ro
aXJkUGFydHkvQU5HTEUvc3JjL3Rlc3RzL3Rlc3RfdXRpbHMvcnVubmVyL1Rlc3RTdWl0ZV91bml0
dGVzdC5jcHAKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL3Rlc3RzL3Rlc3RfdXRp
bHMvcnVubmVyL1Rlc3RTdWl0ZV91bml0dGVzdC5jcHAKQEAgLTExMywxMCArMTEzLDE0IEBAIFRF
U1RfRihUZXN0U3VpdGVUZXN0LCBSdW5Nb2NrVGVzdHMpCiAgICAgQVNTRVJUX1RSVUUocnVuVGVz
dFN1aXRlKGV4dHJhQXJncywgJmFjdHVhbCwgdHJ1ZSkpOwogCiAgICAgc3RkOjptYXA8VGVzdElk
ZW50aWZpZXIsIFRlc3RSZXN1bHQ+IGV4cGVjdGVkUmVzdWx0cyA9IHsKLSAgICAgICAge3siTW9j
a1Rlc3RTdWl0ZVRlc3QiLCAiRElTQUJMRURfUGFzcyJ9LCB7VGVzdFJlc3VsdFR5cGU6OlBhc3Ms
IDAuMH19LAotICAgICAgICB7eyJNb2NrVGVzdFN1aXRlVGVzdCIsICJESVNBQkxFRF9GYWlsIn0s
IHtUZXN0UmVzdWx0VHlwZTo6RmFpbCwgMC4wfX0sCi0gICAgICAgIHt7Ik1vY2tUZXN0U3VpdGVU
ZXN0IiwgIkRJU0FCTEVEX1NraXAifSwge1Rlc3RSZXN1bHRUeXBlOjpTa2lwLCAwLjB9fSwKLSAg
ICAgICAge3siTW9ja1Rlc3RTdWl0ZVRlc3QiLCAiRElTQUJMRURfVGltZW91dCJ9LCB7VGVzdFJl
c3VsdFR5cGU6OlRpbWVvdXQsIDAuMH19LAorICAgICAgICB7eyJNb2NrVGVzdFN1aXRlVGVzdCIs
ICJESVNBQkxFRF9QYXNzIn0sCisgICAgICAgICB7VGVzdFJlc3VsdFR5cGU6OlBhc3MsIHN0ZDo6
dmVjdG9yPGRvdWJsZT4oezAuMH0pfX0sCisgICAgICAgIHt7Ik1vY2tUZXN0U3VpdGVUZXN0Iiwg
IkRJU0FCTEVEX0ZhaWwifSwKKyAgICAgICAgIHtUZXN0UmVzdWx0VHlwZTo6RmFpbCwgc3RkOjp2
ZWN0b3I8ZG91YmxlPih7MC4wfSl9fSwKKyAgICAgICAge3siTW9ja1Rlc3RTdWl0ZVRlc3QiLCAi
RElTQUJMRURfU2tpcCJ9LAorICAgICAgICAge1Rlc3RSZXN1bHRUeXBlOjpTa2lwLCBzdGQ6OnZl
Y3Rvcjxkb3VibGU+KHswLjB9KX19LAorICAgICAgICB7eyJNb2NrVGVzdFN1aXRlVGVzdCIsICJE
SVNBQkxFRF9UaW1lb3V0In0sCisgICAgICAgICB7VGVzdFJlc3VsdFR5cGU6OlRpbWVvdXQsIHN0
ZDo6dmVjdG9yPGRvdWJsZT4oezAuMH0pfX0sCiAgICAgfTsKIAogICAgIEVYUEVDVF9FUShleHBl
Y3RlZFJlc3VsdHMsIGFjdHVhbC5yZXN1bHRzKTsKQEAgLTEzMSw5ICsxMzUsMTQgQEAgVEVTVF9G
KFRlc3RTdWl0ZVRlc3QsIFJ1bkZsYWt5VGVzdHMpCiAgICAgVGVzdFJlc3VsdHMgYWN0dWFsOwog
ICAgIEFTU0VSVF9UUlVFKHJ1blRlc3RTdWl0ZShleHRyYUFyZ3MsICZhY3R1YWwsIHRydWUpKTsK
IAorICAgIHN0ZDo6dmVjdG9yPGRvdWJsZT4gdGltZXM7CisgICAgZm9yIChpbnQgaSA9IDA7IGkg
PCBrRmxha3lSZXRyaWVzOyBpKyspCisgICAgeworICAgICAgICB0aW1lcy5wdXNoX2JhY2soMC4w
KTsKKyAgICB9CiAgICAgc3RkOjptYXA8VGVzdElkZW50aWZpZXIsIFRlc3RSZXN1bHQ+IGV4cGVj
dGVkUmVzdWx0cyA9IHsKICAgICAgICAge3siTW9ja0ZsYWt5VGVzdFN1aXRlVGVzdCIsICJESVNB
QkxFRF9GbGFreSJ9LAotICAgICAgICAge1Rlc3RSZXN1bHRUeXBlOjpQYXNzLCAwLjAsIGtGbGFr
eVJldHJpZXMgLSAxfX19OworICAgICAgICAge1Rlc3RSZXN1bHRUeXBlOjpQYXNzLCB0aW1lcywg
a0ZsYWt5UmV0cmllcyAtIDF9fX07CiAKICAgICBFWFBFQ1RfRVEoZXhwZWN0ZWRSZXN1bHRzLCBh
Y3R1YWwucmVzdWx0cyk7CiB9CkBAIC0xNTEsMTIgKzE2MCwxOCBAQCBURVNUX0YoVGVzdFN1aXRl
VGVzdCwgUnVuQ3Jhc2hpbmdUZXN0cykKICAgICBBU1NFUlRfVFJVRShydW5UZXN0U3VpdGUoZXh0
cmFBcmdzLCAmYWN0dWFsLCBmYWxzZSkpOwogCiAgICAgc3RkOjptYXA8VGVzdElkZW50aWZpZXIs
IFRlc3RSZXN1bHQ+IGV4cGVjdGVkUmVzdWx0cyA9IHsKLSAgICAgICAge3siTW9ja1Rlc3RTdWl0
ZVRlc3QiLCAiRElTQUJMRURfUGFzcyJ9LCB7VGVzdFJlc3VsdFR5cGU6OlBhc3MsIDAuMH19LAot
ICAgICAgICB7eyJNb2NrVGVzdFN1aXRlVGVzdCIsICJESVNBQkxFRF9GYWlsIn0sIHtUZXN0UmVz
dWx0VHlwZTo6RmFpbCwgMC4wfX0sCi0gICAgICAgIHt7Ik1vY2tUZXN0U3VpdGVUZXN0IiwgIkRJ
U0FCTEVEX1NraXAifSwge1Rlc3RSZXN1bHRUeXBlOjpTa2lwLCAwLjB9fSwKLSAgICAgICAge3si
TW9ja0NyYXNoVGVzdFN1aXRlVGVzdCIsICJESVNBQkxFRF9DcmFzaCJ9LCB7VGVzdFJlc3VsdFR5
cGU6OkNyYXNoLCAwLjB9fSwKLSAgICAgICAge3siTW9ja0NyYXNoVGVzdFN1aXRlVGVzdCIsICJE
SVNBQkxFRF9QYXNzQWZ0ZXJDcmFzaCJ9LCB7VGVzdFJlc3VsdFR5cGU6OlBhc3MsIDAuMH19LAot
ICAgICAgICB7eyJNb2NrQ3Jhc2hUZXN0U3VpdGVUZXN0IiwgIkRJU0FCTEVEX1NraXBBZnRlckNy
YXNoIn0sIHtUZXN0UmVzdWx0VHlwZTo6U2tpcCwgMC4wfX0sCisgICAgICAgIHt7Ik1vY2tUZXN0
U3VpdGVUZXN0IiwgIkRJU0FCTEVEX1Bhc3MifSwKKyAgICAgICAgIHtUZXN0UmVzdWx0VHlwZTo6
UGFzcywgc3RkOjp2ZWN0b3I8ZG91YmxlPih7MC4wfSl9fSwKKyAgICAgICAge3siTW9ja1Rlc3RT
dWl0ZVRlc3QiLCAiRElTQUJMRURfRmFpbCJ9LAorICAgICAgICAge1Rlc3RSZXN1bHRUeXBlOjpG
YWlsLCBzdGQ6OnZlY3Rvcjxkb3VibGU+KHswLjB9KX19LAorICAgICAgICB7eyJNb2NrVGVzdFN1
aXRlVGVzdCIsICJESVNBQkxFRF9Ta2lwIn0sCisgICAgICAgICB7VGVzdFJlc3VsdFR5cGU6OlNr
aXAsIHN0ZDo6dmVjdG9yPGRvdWJsZT4oezAuMH0pfX0sCisgICAgICAgIHt7Ik1vY2tDcmFzaFRl
c3RTdWl0ZVRlc3QiLCAiRElTQUJMRURfQ3Jhc2gifSwKKyAgICAgICAgIHtUZXN0UmVzdWx0VHlw
ZTo6Q3Jhc2gsIHN0ZDo6dmVjdG9yPGRvdWJsZT4oezAuMH0pfX0sCisgICAgICAgIHt7Ik1vY2tD
cmFzaFRlc3RTdWl0ZVRlc3QiLCAiRElTQUJMRURfUGFzc0FmdGVyQ3Jhc2gifSwKKyAgICAgICAg
IHtUZXN0UmVzdWx0VHlwZTo6UGFzcywgc3RkOjp2ZWN0b3I8ZG91YmxlPih7MC4wfSl9fSwKKyAg
ICAgICAge3siTW9ja0NyYXNoVGVzdFN1aXRlVGVzdCIsICJESVNBQkxFRF9Ta2lwQWZ0ZXJDcmFz
aCJ9LAorICAgICAgICAge1Rlc3RSZXN1bHRUeXBlOjpTa2lwLCBzdGQ6OnZlY3Rvcjxkb3VibGU+
KHswLjB9KX19LAogICAgIH07CiAKICAgICBFWFBFQ1RfRVEoZXhwZWN0ZWRSZXN1bHRzLCBhY3R1
YWwucmVzdWx0cyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGhp
cmRfcGFydHkvbGliWE5WQ3RybC9CVUlMRC5nbiBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3Ny
Yy90aGlyZF9wYXJ0eS9saWJYTlZDdHJsL0JVSUxELmduCmluZGV4IDIzMjVkMjI0OWRlNjNiODQx
MDQzZDJlZjFlOTI0MzZiMmI3NTc1OGIuLjEzMWM3ZmZkNjZjNGJhYzc4NDRhYmFjMTY5ZjQwMWMy
N2JkN2RjMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90aGlyZF9w
YXJ0eS9saWJYTlZDdHJsL0JVSUxELmduCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3Ny
Yy90aGlyZF9wYXJ0eS9saWJYTlZDdHJsL0JVSUxELmduCkBAIC04LDcgKzgsMTAgQEAgY29uZmln
KCJsaWJYTlZDdHJsX2NvbmZpZyIpIHsKICAgIyBUaGlzIHdpbGwgYnVpbGQgdW5kZXIgbW9zdCBj
b25maWd1cmF0aW9ucyB3aXRoIHRoaXMgd2FybmluZyBlbmFibGVkLCBidXQKICAgIyBzb21lIG9s
ZGVyIHN5c3RlbSBoZWFkZXJzIGFyZSBtaXNzaW5nIGEgImNvbnN0IiBvbiB0aGUgdGhpcmQgcGFy
YW1ldGVyIG9mCiAgICMgWGV4dEFkZERpc3BsYXkgd2hpY2ggd2lsbCBjYXVzZSBhIGZhaWx1cmUu
Ci0gIGNmbGFncyA9IFsgIi1Xbm8taW5jb21wYXRpYmxlLXBvaW50ZXItdHlwZXMtZGlzY2FyZHMt
cXVhbGlmaWVycyIgXQorICBjZmxhZ3MgPSBbCisgICAgIi1Xbm8taW5jb21wYXRpYmxlLXBvaW50
ZXItdHlwZXMtZGlzY2FyZHMtcXVhbGlmaWVycyIsCisgICAgIi1Xbm8tZGVwcmVjYXRlZC1ub24t
cHJvdG90eXBlIiwKKyAgXQogfQogCiBzb3VyY2Vfc2V0KCJsaWJYTlZDdHJsIikgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL3RoaXJkX3BhcnR5L3ZvbGsvdm9say5j
IGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL3RoaXJkX3BhcnR5L3ZvbGsvdm9say5jCmlu
ZGV4IDY4ZDI2NWE1YWNjMWQxYjFmMjdlZTIxMjdkODczYjkzMDA2YTNiYmIuLjk4YWRmM2Y2ZDJj
ZWI2NWYyZmIyZjA2NGQxMzU4MDg5NjliNjNiMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBh
cnR5L0FOR0xFL3NyYy90aGlyZF9wYXJ0eS92b2xrL3ZvbGsuYworKysgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9BTkdMRS9zcmMvdGhpcmRfcGFydHkvdm9say92b2xrLmMKQEAgLTEwNCw2ICsxMDQsMTIg
QEAgdm9pZCB2b2xrTG9hZEluc3RhbmNlKFZrSW5zdGFuY2UgaW5zdGFuY2UpCiAgICAgdm9sa0dl
bkxvYWREZXZpY2UoaW5zdGFuY2UsIHZrR2V0SW5zdGFuY2VQcm9jQWRkclN0dWIpOwogfQogCit2
b2lkIHZvbGtMb2FkSW5zdGFuY2VPbmx5KFZrSW5zdGFuY2UgaW5zdGFuY2UpCit7CisgICAgbG9h
ZGVkSW5zdGFuY2UgPSBpbnN0YW5jZTsKKyAgICB2b2xrR2VuTG9hZEluc3RhbmNlKGluc3RhbmNl
LCB2a0dldEluc3RhbmNlUHJvY0FkZHJTdHViKTsKK30KKwogVmtJbnN0YW5jZSB2b2xrR2V0TG9h
ZGVkSW5zdGFuY2UoKQogewogICAgIHJldHVybiBsb2FkZWRJbnN0YW5jZTsKQEAgLTE3MCw2ICsx
NzYsMTMgQEAgc3RhdGljIHZvaWQgdm9sa0dlbkxvYWRJbnN0YW5jZSh2b2lkKiBjb250ZXh0LCBQ
Rk5fdmtWb2lkRnVuY3Rpb24gKCpsb2FkKSh2b2lkKiwKICAgICB2a0dldFBoeXNpY2FsRGV2aWNl
UXVldWVGYW1pbHlQcm9wZXJ0aWVzMiA9IChQRk5fdmtHZXRQaHlzaWNhbERldmljZVF1ZXVlRmFt
aWx5UHJvcGVydGllczIpbG9hZChjb250ZXh0LCAidmtHZXRQaHlzaWNhbERldmljZVF1ZXVlRmFt
aWx5UHJvcGVydGllczIiKTsKICAgICB2a0dldFBoeXNpY2FsRGV2aWNlU3BhcnNlSW1hZ2VGb3Jt
YXRQcm9wZXJ0aWVzMiA9IChQRk5fdmtHZXRQaHlzaWNhbERldmljZVNwYXJzZUltYWdlRm9ybWF0
UHJvcGVydGllczIpbG9hZChjb250ZXh0LCAidmtHZXRQaHlzaWNhbERldmljZVNwYXJzZUltYWdl
Rm9ybWF0UHJvcGVydGllczIiKTsKICNlbmRpZiAvKiBkZWZpbmVkKFZLX1ZFUlNJT05fMV8xKSAq
LworI2lmIGRlZmluZWQoVktfVkVSU0lPTl8xXzMpCisgICAgdmtHZXRQaHlzaWNhbERldmljZVRv
b2xQcm9wZXJ0aWVzID0gKFBGTl92a0dldFBoeXNpY2FsRGV2aWNlVG9vbFByb3BlcnRpZXMpbG9h
ZChjb250ZXh0LCAidmtHZXRQaHlzaWNhbERldmljZVRvb2xQcm9wZXJ0aWVzIik7CisjZW5kaWYg
LyogZGVmaW5lZChWS19WRVJTSU9OXzFfMykgKi8KKyNpZiBkZWZpbmVkKFZLX0VYVF9hY3F1aXJl
X2RybV9kaXNwbGF5KQorICAgIHZrQWNxdWlyZURybURpc3BsYXlFWFQgPSAoUEZOX3ZrQWNxdWly
ZURybURpc3BsYXlFWFQpbG9hZChjb250ZXh0LCAidmtBY3F1aXJlRHJtRGlzcGxheUVYVCIpOwor
ICAgIHZrR2V0RHJtRGlzcGxheUVYVCA9IChQRk5fdmtHZXREcm1EaXNwbGF5RVhUKWxvYWQoY29u
dGV4dCwgInZrR2V0RHJtRGlzcGxheUVYVCIpOworI2VuZGlmIC8qIGRlZmluZWQoVktfRVhUX2Fj
cXVpcmVfZHJtX2Rpc3BsYXkpICovCiAjaWYgZGVmaW5lZChWS19FWFRfYWNxdWlyZV94bGliX2Rp
c3BsYXkpCiAgICAgdmtBY3F1aXJlWGxpYkRpc3BsYXlFWFQgPSAoUEZOX3ZrQWNxdWlyZVhsaWJE
aXNwbGF5RVhUKWxvYWQoY29udGV4dCwgInZrQWNxdWlyZVhsaWJEaXNwbGF5RVhUIik7CiAgICAg
dmtHZXRSYW5kUk91dHB1dERpc3BsYXlFWFQgPSAoUEZOX3ZrR2V0UmFuZFJPdXRwdXREaXNwbGF5
RVhUKWxvYWQoY29udGV4dCwgInZrR2V0UmFuZFJPdXRwdXREaXNwbGF5RVhUIik7CkBAIC0xOTgs
NiArMjExLDEwIEBAIHN0YXRpYyB2b2lkIHZvbGtHZW5Mb2FkSW5zdGFuY2Uodm9pZCogY29udGV4
dCwgUEZOX3ZrVm9pZEZ1bmN0aW9uICgqbG9hZCkodm9pZCosCiAjaWYgZGVmaW5lZChWS19FWFRf
ZGlyZWN0X21vZGVfZGlzcGxheSkKICAgICB2a1JlbGVhc2VEaXNwbGF5RVhUID0gKFBGTl92a1Jl
bGVhc2VEaXNwbGF5RVhUKWxvYWQoY29udGV4dCwgInZrUmVsZWFzZURpc3BsYXlFWFQiKTsKICNl
bmRpZiAvKiBkZWZpbmVkKFZLX0VYVF9kaXJlY3RfbW9kZV9kaXNwbGF5KSAqLworI2lmIGRlZmlu
ZWQoVktfRVhUX2RpcmVjdGZiX3N1cmZhY2UpCisgICAgdmtDcmVhdGVEaXJlY3RGQlN1cmZhY2VF
WFQgPSAoUEZOX3ZrQ3JlYXRlRGlyZWN0RkJTdXJmYWNlRVhUKWxvYWQoY29udGV4dCwgInZrQ3Jl
YXRlRGlyZWN0RkJTdXJmYWNlRVhUIik7CisgICAgdmtHZXRQaHlzaWNhbERldmljZURpcmVjdEZC
UHJlc2VudGF0aW9uU3VwcG9ydEVYVCA9IChQRk5fdmtHZXRQaHlzaWNhbERldmljZURpcmVjdEZC
UHJlc2VudGF0aW9uU3VwcG9ydEVYVClsb2FkKGNvbnRleHQsICJ2a0dldFBoeXNpY2FsRGV2aWNl
RGlyZWN0RkJQcmVzZW50YXRpb25TdXBwb3J0RVhUIik7CisjZW5kaWYgLyogZGVmaW5lZChWS19F
WFRfZGlyZWN0ZmJfc3VyZmFjZSkgKi8KICNpZiBkZWZpbmVkKFZLX0VYVF9kaXNwbGF5X3N1cmZh
Y2VfY291bnRlcikKICAgICB2a0dldFBoeXNpY2FsRGV2aWNlU3VyZmFjZUNhcGFiaWxpdGllczJF
WFQgPSAoUEZOX3ZrR2V0UGh5c2ljYWxEZXZpY2VTdXJmYWNlQ2FwYWJpbGl0aWVzMkVYVClsb2Fk
KGNvbnRleHQsICJ2a0dldFBoeXNpY2FsRGV2aWNlU3VyZmFjZUNhcGFiaWxpdGllczJFWFQiKTsK
ICNlbmRpZiAvKiBkZWZpbmVkKFZLX0VYVF9kaXNwbGF5X3N1cmZhY2VfY291bnRlcikgKi8KQEAg
LTI0Niw2ICsyNjMsOSBAQCBzdGF0aWMgdm9pZCB2b2xrR2VuTG9hZEluc3RhbmNlKHZvaWQqIGNv
bnRleHQsIFBGTl92a1ZvaWRGdW5jdGlvbiAoKmxvYWQpKHZvaWQqLAogI2lmIGRlZmluZWQoVktf
S0hSX2V4dGVybmFsX3NlbWFwaG9yZV9jYXBhYmlsaXRpZXMpCiAgICAgdmtHZXRQaHlzaWNhbERl
dmljZUV4dGVybmFsU2VtYXBob3JlUHJvcGVydGllc0tIUiA9IChQRk5fdmtHZXRQaHlzaWNhbERl
dmljZUV4dGVybmFsU2VtYXBob3JlUHJvcGVydGllc0tIUilsb2FkKGNvbnRleHQsICJ2a0dldFBo
eXNpY2FsRGV2aWNlRXh0ZXJuYWxTZW1hcGhvcmVQcm9wZXJ0aWVzS0hSIik7CiAjZW5kaWYgLyog
ZGVmaW5lZChWS19LSFJfZXh0ZXJuYWxfc2VtYXBob3JlX2NhcGFiaWxpdGllcykgKi8KKyNpZiBk
ZWZpbmVkKFZLX0tIUl9mcmFnbWVudF9zaGFkaW5nX3JhdGUpCisgICAgdmtHZXRQaHlzaWNhbERl
dmljZUZyYWdtZW50U2hhZGluZ1JhdGVzS0hSID0gKFBGTl92a0dldFBoeXNpY2FsRGV2aWNlRnJh
Z21lbnRTaGFkaW5nUmF0ZXNLSFIpbG9hZChjb250ZXh0LCAidmtHZXRQaHlzaWNhbERldmljZUZy
YWdtZW50U2hhZGluZ1JhdGVzS0hSIik7CisjZW5kaWYgLyogZGVmaW5lZChWS19LSFJfZnJhZ21l
bnRfc2hhZGluZ19yYXRlKSAqLwogI2lmIGRlZmluZWQoVktfS0hSX2dldF9kaXNwbGF5X3Byb3Bl
cnRpZXMyKQogICAgIHZrR2V0RGlzcGxheU1vZGVQcm9wZXJ0aWVzMktIUiA9IChQRk5fdmtHZXRE
aXNwbGF5TW9kZVByb3BlcnRpZXMyS0hSKWxvYWQoY29udGV4dCwgInZrR2V0RGlzcGxheU1vZGVQ
cm9wZXJ0aWVzMktIUiIpOwogICAgIHZrR2V0RGlzcGxheVBsYW5lQ2FwYWJpbGl0aWVzMktIUiA9
IChQRk5fdmtHZXREaXNwbGF5UGxhbmVDYXBhYmlsaXRpZXMyS0hSKWxvYWQoY29udGV4dCwgInZr
R2V0RGlzcGxheVBsYW5lQ2FwYWJpbGl0aWVzMktIUiIpOwpAQCAtMjc2LDYgKzI5NiwxMCBAQCBz
dGF0aWMgdm9pZCB2b2xrR2VuTG9hZEluc3RhbmNlKHZvaWQqIGNvbnRleHQsIFBGTl92a1ZvaWRG
dW5jdGlvbiAoKmxvYWQpKHZvaWQqLAogICAgIHZrR2V0UGh5c2ljYWxEZXZpY2VTdXJmYWNlUHJl
c2VudE1vZGVzS0hSID0gKFBGTl92a0dldFBoeXNpY2FsRGV2aWNlU3VyZmFjZVByZXNlbnRNb2Rl
c0tIUilsb2FkKGNvbnRleHQsICJ2a0dldFBoeXNpY2FsRGV2aWNlU3VyZmFjZVByZXNlbnRNb2Rl
c0tIUiIpOwogICAgIHZrR2V0UGh5c2ljYWxEZXZpY2VTdXJmYWNlU3VwcG9ydEtIUiA9IChQRk5f
dmtHZXRQaHlzaWNhbERldmljZVN1cmZhY2VTdXBwb3J0S0hSKWxvYWQoY29udGV4dCwgInZrR2V0
UGh5c2ljYWxEZXZpY2VTdXJmYWNlU3VwcG9ydEtIUiIpOwogI2VuZGlmIC8qIGRlZmluZWQoVktf
S0hSX3N1cmZhY2UpICovCisjaWYgZGVmaW5lZChWS19LSFJfdmlkZW9fcXVldWUpCisgICAgdmtH
ZXRQaHlzaWNhbERldmljZVZpZGVvQ2FwYWJpbGl0aWVzS0hSID0gKFBGTl92a0dldFBoeXNpY2Fs
RGV2aWNlVmlkZW9DYXBhYmlsaXRpZXNLSFIpbG9hZChjb250ZXh0LCAidmtHZXRQaHlzaWNhbERl
dmljZVZpZGVvQ2FwYWJpbGl0aWVzS0hSIik7CisgICAgdmtHZXRQaHlzaWNhbERldmljZVZpZGVv
Rm9ybWF0UHJvcGVydGllc0tIUiA9IChQRk5fdmtHZXRQaHlzaWNhbERldmljZVZpZGVvRm9ybWF0
UHJvcGVydGllc0tIUilsb2FkKGNvbnRleHQsICJ2a0dldFBoeXNpY2FsRGV2aWNlVmlkZW9Gb3Jt
YXRQcm9wZXJ0aWVzS0hSIik7CisjZW5kaWYgLyogZGVmaW5lZChWS19LSFJfdmlkZW9fcXVldWUp
ICovCiAjaWYgZGVmaW5lZChWS19LSFJfd2F5bGFuZF9zdXJmYWNlKQogICAgIHZrQ3JlYXRlV2F5
bGFuZFN1cmZhY2VLSFIgPSAoUEZOX3ZrQ3JlYXRlV2F5bGFuZFN1cmZhY2VLSFIpbG9hZChjb250
ZXh0LCAidmtDcmVhdGVXYXlsYW5kU3VyZmFjZUtIUiIpOwogICAgIHZrR2V0UGh5c2ljYWxEZXZp
Y2VXYXlsYW5kUHJlc2VudGF0aW9uU3VwcG9ydEtIUiA9IChQRk5fdmtHZXRQaHlzaWNhbERldmlj
ZVdheWxhbmRQcmVzZW50YXRpb25TdXBwb3J0S0hSKWxvYWQoY29udGV4dCwgInZrR2V0UGh5c2lj
YWxEZXZpY2VXYXlsYW5kUHJlc2VudGF0aW9uU3VwcG9ydEtIUiIpOwpAQCAtMzAxLDkgKzMyNSwx
MCBAQCBzdGF0aWMgdm9pZCB2b2xrR2VuTG9hZEluc3RhbmNlKHZvaWQqIGNvbnRleHQsIFBGTl92
a1ZvaWRGdW5jdGlvbiAoKmxvYWQpKHZvaWQqLAogI2lmIGRlZmluZWQoVktfTk5fdmlfc3VyZmFj
ZSkKICAgICB2a0NyZWF0ZVZpU3VyZmFjZU5OID0gKFBGTl92a0NyZWF0ZVZpU3VyZmFjZU5OKWxv
YWQoY29udGV4dCwgInZrQ3JlYXRlVmlTdXJmYWNlTk4iKTsKICNlbmRpZiAvKiBkZWZpbmVkKFZL
X05OX3ZpX3N1cmZhY2UpICovCi0jaWYgZGVmaW5lZChWS19OVlhfZGV2aWNlX2dlbmVyYXRlZF9j
b21tYW5kcykKLSAgICB2a0dldFBoeXNpY2FsRGV2aWNlR2VuZXJhdGVkQ29tbWFuZHNQcm9wZXJ0
aWVzTlZYID0gKFBGTl92a0dldFBoeXNpY2FsRGV2aWNlR2VuZXJhdGVkQ29tbWFuZHNQcm9wZXJ0
aWVzTlZYKWxvYWQoY29udGV4dCwgInZrR2V0UGh5c2ljYWxEZXZpY2VHZW5lcmF0ZWRDb21tYW5k
c1Byb3BlcnRpZXNOVlgiKTsKLSNlbmRpZiAvKiBkZWZpbmVkKFZLX05WWF9kZXZpY2VfZ2VuZXJh
dGVkX2NvbW1hbmRzKSAqLworI2lmIGRlZmluZWQoVktfTlZfYWNxdWlyZV93aW5ydF9kaXNwbGF5
KQorICAgIHZrQWNxdWlyZVdpbnJ0RGlzcGxheU5WID0gKFBGTl92a0FjcXVpcmVXaW5ydERpc3Bs
YXlOVilsb2FkKGNvbnRleHQsICJ2a0FjcXVpcmVXaW5ydERpc3BsYXlOViIpOworICAgIHZrR2V0
V2lucnREaXNwbGF5TlYgPSAoUEZOX3ZrR2V0V2lucnREaXNwbGF5TlYpbG9hZChjb250ZXh0LCAi
dmtHZXRXaW5ydERpc3BsYXlOViIpOworI2VuZGlmIC8qIGRlZmluZWQoVktfTlZfYWNxdWlyZV93
aW5ydF9kaXNwbGF5KSAqLwogI2lmIGRlZmluZWQoVktfTlZfY29vcGVyYXRpdmVfbWF0cml4KQog
ICAgIHZrR2V0UGh5c2ljYWxEZXZpY2VDb29wZXJhdGl2ZU1hdHJpeFByb3BlcnRpZXNOViA9IChQ
Rk5fdmtHZXRQaHlzaWNhbERldmljZUNvb3BlcmF0aXZlTWF0cml4UHJvcGVydGllc05WKWxvYWQo
Y29udGV4dCwgInZrR2V0UGh5c2ljYWxEZXZpY2VDb29wZXJhdGl2ZU1hdHJpeFByb3BlcnRpZXNO
ViIpOwogI2VuZGlmIC8qIGRlZmluZWQoVktfTlZfY29vcGVyYXRpdmVfbWF0cml4KSAqLwpAQCAt
MzEzLDYgKzMzOCwxMCBAQCBzdGF0aWMgdm9pZCB2b2xrR2VuTG9hZEluc3RhbmNlKHZvaWQqIGNv
bnRleHQsIFBGTl92a1ZvaWRGdW5jdGlvbiAoKmxvYWQpKHZvaWQqLAogI2lmIGRlZmluZWQoVktf
TlZfZXh0ZXJuYWxfbWVtb3J5X2NhcGFiaWxpdGllcykKICAgICB2a0dldFBoeXNpY2FsRGV2aWNl
RXh0ZXJuYWxJbWFnZUZvcm1hdFByb3BlcnRpZXNOViA9IChQRk5fdmtHZXRQaHlzaWNhbERldmlj
ZUV4dGVybmFsSW1hZ2VGb3JtYXRQcm9wZXJ0aWVzTlYpbG9hZChjb250ZXh0LCAidmtHZXRQaHlz
aWNhbERldmljZUV4dGVybmFsSW1hZ2VGb3JtYXRQcm9wZXJ0aWVzTlYiKTsKICNlbmRpZiAvKiBk
ZWZpbmVkKFZLX05WX2V4dGVybmFsX21lbW9yeV9jYXBhYmlsaXRpZXMpICovCisjaWYgZGVmaW5l
ZChWS19RTlhfc2NyZWVuX3N1cmZhY2UpCisgICAgdmtDcmVhdGVTY3JlZW5TdXJmYWNlUU5YID0g
KFBGTl92a0NyZWF0ZVNjcmVlblN1cmZhY2VRTlgpbG9hZChjb250ZXh0LCAidmtDcmVhdGVTY3Jl
ZW5TdXJmYWNlUU5YIik7CisgICAgdmtHZXRQaHlzaWNhbERldmljZVNjcmVlblByZXNlbnRhdGlv
blN1cHBvcnRRTlggPSAoUEZOX3ZrR2V0UGh5c2ljYWxEZXZpY2VTY3JlZW5QcmVzZW50YXRpb25T
dXBwb3J0UU5YKWxvYWQoY29udGV4dCwgInZrR2V0UGh5c2ljYWxEZXZpY2VTY3JlZW5QcmVzZW50
YXRpb25TdXBwb3J0UU5YIik7CisjZW5kaWYgLyogZGVmaW5lZChWS19RTlhfc2NyZWVuX3N1cmZh
Y2UpICovCiAjaWYgKGRlZmluZWQoVktfS0hSX2RldmljZV9ncm91cCkgJiYgZGVmaW5lZChWS19L
SFJfc3VyZmFjZSkpIHx8IChkZWZpbmVkKFZLX0tIUl9zd2FwY2hhaW4pICYmIGRlZmluZWQoVktf
VkVSU0lPTl8xXzEpKQogICAgIHZrR2V0UGh5c2ljYWxEZXZpY2VQcmVzZW50UmVjdGFuZ2xlc0tI
UiA9IChQRk5fdmtHZXRQaHlzaWNhbERldmljZVByZXNlbnRSZWN0YW5nbGVzS0hSKWxvYWQoY29u
dGV4dCwgInZrR2V0UGh5c2ljYWxEZXZpY2VQcmVzZW50UmVjdGFuZ2xlc0tIUiIpOwogI2VuZGlm
IC8qIChkZWZpbmVkKFZLX0tIUl9kZXZpY2VfZ3JvdXApICYmIGRlZmluZWQoVktfS0hSX3N1cmZh
Y2UpKSB8fCAoZGVmaW5lZChWS19LSFJfc3dhcGNoYWluKSAmJiBkZWZpbmVkKFZLX1ZFUlNJT05f
MV8xKSkgKi8KQEAgLTQ2Miw2ICs0OTEsNTkgQEAgc3RhdGljIHZvaWQgdm9sa0dlbkxvYWREZXZp
Y2Uodm9pZCogY29udGV4dCwgUEZOX3ZrVm9pZEZ1bmN0aW9uICgqbG9hZCkodm9pZCosIGMKICAg
ICB2a1RyaW1Db21tYW5kUG9vbCA9IChQRk5fdmtUcmltQ29tbWFuZFBvb2wpbG9hZChjb250ZXh0
LCAidmtUcmltQ29tbWFuZFBvb2wiKTsKICAgICB2a1VwZGF0ZURlc2NyaXB0b3JTZXRXaXRoVGVt
cGxhdGUgPSAoUEZOX3ZrVXBkYXRlRGVzY3JpcHRvclNldFdpdGhUZW1wbGF0ZSlsb2FkKGNvbnRl
eHQsICJ2a1VwZGF0ZURlc2NyaXB0b3JTZXRXaXRoVGVtcGxhdGUiKTsKICNlbmRpZiAvKiBkZWZp
bmVkKFZLX1ZFUlNJT05fMV8xKSAqLworI2lmIGRlZmluZWQoVktfVkVSU0lPTl8xXzIpCisgICAg
dmtDbWRCZWdpblJlbmRlclBhc3MyID0gKFBGTl92a0NtZEJlZ2luUmVuZGVyUGFzczIpbG9hZChj
b250ZXh0LCAidmtDbWRCZWdpblJlbmRlclBhc3MyIik7CisgICAgdmtDbWREcmF3SW5kZXhlZElu
ZGlyZWN0Q291bnQgPSAoUEZOX3ZrQ21kRHJhd0luZGV4ZWRJbmRpcmVjdENvdW50KWxvYWQoY29u
dGV4dCwgInZrQ21kRHJhd0luZGV4ZWRJbmRpcmVjdENvdW50Iik7CisgICAgdmtDbWREcmF3SW5k
aXJlY3RDb3VudCA9IChQRk5fdmtDbWREcmF3SW5kaXJlY3RDb3VudClsb2FkKGNvbnRleHQsICJ2
a0NtZERyYXdJbmRpcmVjdENvdW50Iik7CisgICAgdmtDbWRFbmRSZW5kZXJQYXNzMiA9IChQRk5f
dmtDbWRFbmRSZW5kZXJQYXNzMilsb2FkKGNvbnRleHQsICJ2a0NtZEVuZFJlbmRlclBhc3MyIik7
CisgICAgdmtDbWROZXh0U3VicGFzczIgPSAoUEZOX3ZrQ21kTmV4dFN1YnBhc3MyKWxvYWQoY29u
dGV4dCwgInZrQ21kTmV4dFN1YnBhc3MyIik7CisgICAgdmtDcmVhdGVSZW5kZXJQYXNzMiA9IChQ
Rk5fdmtDcmVhdGVSZW5kZXJQYXNzMilsb2FkKGNvbnRleHQsICJ2a0NyZWF0ZVJlbmRlclBhc3My
Iik7CisgICAgdmtHZXRCdWZmZXJEZXZpY2VBZGRyZXNzID0gKFBGTl92a0dldEJ1ZmZlckRldmlj
ZUFkZHJlc3MpbG9hZChjb250ZXh0LCAidmtHZXRCdWZmZXJEZXZpY2VBZGRyZXNzIik7CisgICAg
dmtHZXRCdWZmZXJPcGFxdWVDYXB0dXJlQWRkcmVzcyA9IChQRk5fdmtHZXRCdWZmZXJPcGFxdWVD
YXB0dXJlQWRkcmVzcylsb2FkKGNvbnRleHQsICJ2a0dldEJ1ZmZlck9wYXF1ZUNhcHR1cmVBZGRy
ZXNzIik7CisgICAgdmtHZXREZXZpY2VNZW1vcnlPcGFxdWVDYXB0dXJlQWRkcmVzcyA9IChQRk5f
dmtHZXREZXZpY2VNZW1vcnlPcGFxdWVDYXB0dXJlQWRkcmVzcylsb2FkKGNvbnRleHQsICJ2a0dl
dERldmljZU1lbW9yeU9wYXF1ZUNhcHR1cmVBZGRyZXNzIik7CisgICAgdmtHZXRTZW1hcGhvcmVD
b3VudGVyVmFsdWUgPSAoUEZOX3ZrR2V0U2VtYXBob3JlQ291bnRlclZhbHVlKWxvYWQoY29udGV4
dCwgInZrR2V0U2VtYXBob3JlQ291bnRlclZhbHVlIik7CisgICAgdmtSZXNldFF1ZXJ5UG9vbCA9
IChQRk5fdmtSZXNldFF1ZXJ5UG9vbClsb2FkKGNvbnRleHQsICJ2a1Jlc2V0UXVlcnlQb29sIik7
CisgICAgdmtTaWduYWxTZW1hcGhvcmUgPSAoUEZOX3ZrU2lnbmFsU2VtYXBob3JlKWxvYWQoY29u
dGV4dCwgInZrU2lnbmFsU2VtYXBob3JlIik7CisgICAgdmtXYWl0U2VtYXBob3JlcyA9IChQRk5f
dmtXYWl0U2VtYXBob3Jlcylsb2FkKGNvbnRleHQsICJ2a1dhaXRTZW1hcGhvcmVzIik7CisjZW5k
aWYgLyogZGVmaW5lZChWS19WRVJTSU9OXzFfMikgKi8KKyNpZiBkZWZpbmVkKFZLX1ZFUlNJT05f
MV8zKQorICAgIHZrQ21kQmVnaW5SZW5kZXJpbmcgPSAoUEZOX3ZrQ21kQmVnaW5SZW5kZXJpbmcp
bG9hZChjb250ZXh0LCAidmtDbWRCZWdpblJlbmRlcmluZyIpOworICAgIHZrQ21kQmluZFZlcnRl
eEJ1ZmZlcnMyID0gKFBGTl92a0NtZEJpbmRWZXJ0ZXhCdWZmZXJzMilsb2FkKGNvbnRleHQsICJ2
a0NtZEJpbmRWZXJ0ZXhCdWZmZXJzMiIpOworICAgIHZrQ21kQmxpdEltYWdlMiA9IChQRk5fdmtD
bWRCbGl0SW1hZ2UyKWxvYWQoY29udGV4dCwgInZrQ21kQmxpdEltYWdlMiIpOworICAgIHZrQ21k
Q29weUJ1ZmZlcjIgPSAoUEZOX3ZrQ21kQ29weUJ1ZmZlcjIpbG9hZChjb250ZXh0LCAidmtDbWRD
b3B5QnVmZmVyMiIpOworICAgIHZrQ21kQ29weUJ1ZmZlclRvSW1hZ2UyID0gKFBGTl92a0NtZENv
cHlCdWZmZXJUb0ltYWdlMilsb2FkKGNvbnRleHQsICJ2a0NtZENvcHlCdWZmZXJUb0ltYWdlMiIp
OworICAgIHZrQ21kQ29weUltYWdlMiA9IChQRk5fdmtDbWRDb3B5SW1hZ2UyKWxvYWQoY29udGV4
dCwgInZrQ21kQ29weUltYWdlMiIpOworICAgIHZrQ21kQ29weUltYWdlVG9CdWZmZXIyID0gKFBG
Tl92a0NtZENvcHlJbWFnZVRvQnVmZmVyMilsb2FkKGNvbnRleHQsICJ2a0NtZENvcHlJbWFnZVRv
QnVmZmVyMiIpOworICAgIHZrQ21kRW5kUmVuZGVyaW5nID0gKFBGTl92a0NtZEVuZFJlbmRlcmlu
Zylsb2FkKGNvbnRleHQsICJ2a0NtZEVuZFJlbmRlcmluZyIpOworICAgIHZrQ21kUGlwZWxpbmVC
YXJyaWVyMiA9IChQRk5fdmtDbWRQaXBlbGluZUJhcnJpZXIyKWxvYWQoY29udGV4dCwgInZrQ21k
UGlwZWxpbmVCYXJyaWVyMiIpOworICAgIHZrQ21kUmVzZXRFdmVudDIgPSAoUEZOX3ZrQ21kUmVz
ZXRFdmVudDIpbG9hZChjb250ZXh0LCAidmtDbWRSZXNldEV2ZW50MiIpOworICAgIHZrQ21kUmVz
b2x2ZUltYWdlMiA9IChQRk5fdmtDbWRSZXNvbHZlSW1hZ2UyKWxvYWQoY29udGV4dCwgInZrQ21k
UmVzb2x2ZUltYWdlMiIpOworICAgIHZrQ21kU2V0Q3VsbE1vZGUgPSAoUEZOX3ZrQ21kU2V0Q3Vs
bE1vZGUpbG9hZChjb250ZXh0LCAidmtDbWRTZXRDdWxsTW9kZSIpOworICAgIHZrQ21kU2V0RGVw
dGhCaWFzRW5hYmxlID0gKFBGTl92a0NtZFNldERlcHRoQmlhc0VuYWJsZSlsb2FkKGNvbnRleHQs
ICJ2a0NtZFNldERlcHRoQmlhc0VuYWJsZSIpOworICAgIHZrQ21kU2V0RGVwdGhCb3VuZHNUZXN0
RW5hYmxlID0gKFBGTl92a0NtZFNldERlcHRoQm91bmRzVGVzdEVuYWJsZSlsb2FkKGNvbnRleHQs
ICJ2a0NtZFNldERlcHRoQm91bmRzVGVzdEVuYWJsZSIpOworICAgIHZrQ21kU2V0RGVwdGhDb21w
YXJlT3AgPSAoUEZOX3ZrQ21kU2V0RGVwdGhDb21wYXJlT3ApbG9hZChjb250ZXh0LCAidmtDbWRT
ZXREZXB0aENvbXBhcmVPcCIpOworICAgIHZrQ21kU2V0RGVwdGhUZXN0RW5hYmxlID0gKFBGTl92
a0NtZFNldERlcHRoVGVzdEVuYWJsZSlsb2FkKGNvbnRleHQsICJ2a0NtZFNldERlcHRoVGVzdEVu
YWJsZSIpOworICAgIHZrQ21kU2V0RGVwdGhXcml0ZUVuYWJsZSA9IChQRk5fdmtDbWRTZXREZXB0
aFdyaXRlRW5hYmxlKWxvYWQoY29udGV4dCwgInZrQ21kU2V0RGVwdGhXcml0ZUVuYWJsZSIpOwor
ICAgIHZrQ21kU2V0RXZlbnQyID0gKFBGTl92a0NtZFNldEV2ZW50Milsb2FkKGNvbnRleHQsICJ2
a0NtZFNldEV2ZW50MiIpOworICAgIHZrQ21kU2V0RnJvbnRGYWNlID0gKFBGTl92a0NtZFNldEZy
b250RmFjZSlsb2FkKGNvbnRleHQsICJ2a0NtZFNldEZyb250RmFjZSIpOworICAgIHZrQ21kU2V0
UHJpbWl0aXZlUmVzdGFydEVuYWJsZSA9IChQRk5fdmtDbWRTZXRQcmltaXRpdmVSZXN0YXJ0RW5h
YmxlKWxvYWQoY29udGV4dCwgInZrQ21kU2V0UHJpbWl0aXZlUmVzdGFydEVuYWJsZSIpOworICAg
IHZrQ21kU2V0UHJpbWl0aXZlVG9wb2xvZ3kgPSAoUEZOX3ZrQ21kU2V0UHJpbWl0aXZlVG9wb2xv
Z3kpbG9hZChjb250ZXh0LCAidmtDbWRTZXRQcmltaXRpdmVUb3BvbG9neSIpOworICAgIHZrQ21k
U2V0UmFzdGVyaXplckRpc2NhcmRFbmFibGUgPSAoUEZOX3ZrQ21kU2V0UmFzdGVyaXplckRpc2Nh
cmRFbmFibGUpbG9hZChjb250ZXh0LCAidmtDbWRTZXRSYXN0ZXJpemVyRGlzY2FyZEVuYWJsZSIp
OworICAgIHZrQ21kU2V0U2Npc3NvcldpdGhDb3VudCA9IChQRk5fdmtDbWRTZXRTY2lzc29yV2l0
aENvdW50KWxvYWQoY29udGV4dCwgInZrQ21kU2V0U2Npc3NvcldpdGhDb3VudCIpOworICAgIHZr
Q21kU2V0U3RlbmNpbE9wID0gKFBGTl92a0NtZFNldFN0ZW5jaWxPcClsb2FkKGNvbnRleHQsICJ2
a0NtZFNldFN0ZW5jaWxPcCIpOworICAgIHZrQ21kU2V0U3RlbmNpbFRlc3RFbmFibGUgPSAoUEZO
X3ZrQ21kU2V0U3RlbmNpbFRlc3RFbmFibGUpbG9hZChjb250ZXh0LCAidmtDbWRTZXRTdGVuY2ls
VGVzdEVuYWJsZSIpOworICAgIHZrQ21kU2V0Vmlld3BvcnRXaXRoQ291bnQgPSAoUEZOX3ZrQ21k
U2V0Vmlld3BvcnRXaXRoQ291bnQpbG9hZChjb250ZXh0LCAidmtDbWRTZXRWaWV3cG9ydFdpdGhD
b3VudCIpOworICAgIHZrQ21kV2FpdEV2ZW50czIgPSAoUEZOX3ZrQ21kV2FpdEV2ZW50czIpbG9h
ZChjb250ZXh0LCAidmtDbWRXYWl0RXZlbnRzMiIpOworICAgIHZrQ21kV3JpdGVUaW1lc3RhbXAy
ID0gKFBGTl92a0NtZFdyaXRlVGltZXN0YW1wMilsb2FkKGNvbnRleHQsICJ2a0NtZFdyaXRlVGlt
ZXN0YW1wMiIpOworICAgIHZrQ3JlYXRlUHJpdmF0ZURhdGFTbG90ID0gKFBGTl92a0NyZWF0ZVBy
aXZhdGVEYXRhU2xvdClsb2FkKGNvbnRleHQsICJ2a0NyZWF0ZVByaXZhdGVEYXRhU2xvdCIpOwor
ICAgIHZrRGVzdHJveVByaXZhdGVEYXRhU2xvdCA9IChQRk5fdmtEZXN0cm95UHJpdmF0ZURhdGFT
bG90KWxvYWQoY29udGV4dCwgInZrRGVzdHJveVByaXZhdGVEYXRhU2xvdCIpOworICAgIHZrR2V0
RGV2aWNlQnVmZmVyTWVtb3J5UmVxdWlyZW1lbnRzID0gKFBGTl92a0dldERldmljZUJ1ZmZlck1l
bW9yeVJlcXVpcmVtZW50cylsb2FkKGNvbnRleHQsICJ2a0dldERldmljZUJ1ZmZlck1lbW9yeVJl
cXVpcmVtZW50cyIpOworICAgIHZrR2V0RGV2aWNlSW1hZ2VNZW1vcnlSZXF1aXJlbWVudHMgPSAo
UEZOX3ZrR2V0RGV2aWNlSW1hZ2VNZW1vcnlSZXF1aXJlbWVudHMpbG9hZChjb250ZXh0LCAidmtH
ZXREZXZpY2VJbWFnZU1lbW9yeVJlcXVpcmVtZW50cyIpOworICAgIHZrR2V0RGV2aWNlSW1hZ2VT
cGFyc2VNZW1vcnlSZXF1aXJlbWVudHMgPSAoUEZOX3ZrR2V0RGV2aWNlSW1hZ2VTcGFyc2VNZW1v
cnlSZXF1aXJlbWVudHMpbG9hZChjb250ZXh0LCAidmtHZXREZXZpY2VJbWFnZVNwYXJzZU1lbW9y
eVJlcXVpcmVtZW50cyIpOworICAgIHZrR2V0UHJpdmF0ZURhdGEgPSAoUEZOX3ZrR2V0UHJpdmF0
ZURhdGEpbG9hZChjb250ZXh0LCAidmtHZXRQcml2YXRlRGF0YSIpOworICAgIHZrUXVldWVTdWJt
aXQyID0gKFBGTl92a1F1ZXVlU3VibWl0Milsb2FkKGNvbnRleHQsICJ2a1F1ZXVlU3VibWl0MiIp
OworICAgIHZrU2V0UHJpdmF0ZURhdGEgPSAoUEZOX3ZrU2V0UHJpdmF0ZURhdGEpbG9hZChjb250
ZXh0LCAidmtTZXRQcml2YXRlRGF0YSIpOworI2VuZGlmIC8qIGRlZmluZWQoVktfVkVSU0lPTl8x
XzMpICovCiAjaWYgZGVmaW5lZChWS19BTURfYnVmZmVyX21hcmtlcikKICAgICB2a0NtZFdyaXRl
QnVmZmVyTWFya2VyQU1EID0gKFBGTl92a0NtZFdyaXRlQnVmZmVyTWFya2VyQU1EKWxvYWQoY29u
dGV4dCwgInZrQ21kV3JpdGVCdWZmZXJNYXJrZXJBTUQiKTsKICNlbmRpZiAvKiBkZWZpbmVkKFZL
X0FNRF9idWZmZXJfbWFya2VyKSAqLwpAQCAtNDg1LDYgKzU2Nyw5IEBAIHN0YXRpYyB2b2lkIHZv
bGtHZW5Mb2FkRGV2aWNlKHZvaWQqIGNvbnRleHQsIFBGTl92a1ZvaWRGdW5jdGlvbiAoKmxvYWQp
KHZvaWQqLCBjCiAjaWYgZGVmaW5lZChWS19FWFRfY2FsaWJyYXRlZF90aW1lc3RhbXBzKQogICAg
IHZrR2V0Q2FsaWJyYXRlZFRpbWVzdGFtcHNFWFQgPSAoUEZOX3ZrR2V0Q2FsaWJyYXRlZFRpbWVz
dGFtcHNFWFQpbG9hZChjb250ZXh0LCAidmtHZXRDYWxpYnJhdGVkVGltZXN0YW1wc0VYVCIpOwog
I2VuZGlmIC8qIGRlZmluZWQoVktfRVhUX2NhbGlicmF0ZWRfdGltZXN0YW1wcykgKi8KKyNpZiBk
ZWZpbmVkKFZLX0VYVF9jb2xvcl93cml0ZV9lbmFibGUpCisgICAgdmtDbWRTZXRDb2xvcldyaXRl
RW5hYmxlRVhUID0gKFBGTl92a0NtZFNldENvbG9yV3JpdGVFbmFibGVFWFQpbG9hZChjb250ZXh0
LCAidmtDbWRTZXRDb2xvcldyaXRlRW5hYmxlRVhUIik7CisjZW5kaWYgLyogZGVmaW5lZChWS19F
WFRfY29sb3Jfd3JpdGVfZW5hYmxlKSAqLwogI2lmIGRlZmluZWQoVktfRVhUX2NvbmRpdGlvbmFs
X3JlbmRlcmluZykKICAgICB2a0NtZEJlZ2luQ29uZGl0aW9uYWxSZW5kZXJpbmdFWFQgPSAoUEZO
X3ZrQ21kQmVnaW5Db25kaXRpb25hbFJlbmRlcmluZ0VYVClsb2FkKGNvbnRleHQsICJ2a0NtZEJl
Z2luQ29uZGl0aW9uYWxSZW5kZXJpbmdFWFQiKTsKICAgICB2a0NtZEVuZENvbmRpdGlvbmFsUmVu
ZGVyaW5nRVhUID0gKFBGTl92a0NtZEVuZENvbmRpdGlvbmFsUmVuZGVyaW5nRVhUKWxvYWQoY29u
dGV4dCwgInZrQ21kRW5kQ29uZGl0aW9uYWxSZW5kZXJpbmdFWFQiKTsKQEAgLTUwNSw2ICs1OTAs
MjcgQEAgc3RhdGljIHZvaWQgdm9sa0dlbkxvYWREZXZpY2Uodm9pZCogY29udGV4dCwgUEZOX3Zr
Vm9pZEZ1bmN0aW9uICgqbG9hZCkodm9pZCosIGMKICAgICB2a1JlZ2lzdGVyRGV2aWNlRXZlbnRF
WFQgPSAoUEZOX3ZrUmVnaXN0ZXJEZXZpY2VFdmVudEVYVClsb2FkKGNvbnRleHQsICJ2a1JlZ2lz
dGVyRGV2aWNlRXZlbnRFWFQiKTsKICAgICB2a1JlZ2lzdGVyRGlzcGxheUV2ZW50RVhUID0gKFBG
Tl92a1JlZ2lzdGVyRGlzcGxheUV2ZW50RVhUKWxvYWQoY29udGV4dCwgInZrUmVnaXN0ZXJEaXNw
bGF5RXZlbnRFWFQiKTsKICNlbmRpZiAvKiBkZWZpbmVkKFZLX0VYVF9kaXNwbGF5X2NvbnRyb2wp
ICovCisjaWYgZGVmaW5lZChWS19FWFRfZXh0ZW5kZWRfZHluYW1pY19zdGF0ZSkKKyAgICB2a0Nt
ZEJpbmRWZXJ0ZXhCdWZmZXJzMkVYVCA9IChQRk5fdmtDbWRCaW5kVmVydGV4QnVmZmVyczJFWFQp
bG9hZChjb250ZXh0LCAidmtDbWRCaW5kVmVydGV4QnVmZmVyczJFWFQiKTsKKyAgICB2a0NtZFNl
dEN1bGxNb2RlRVhUID0gKFBGTl92a0NtZFNldEN1bGxNb2RlRVhUKWxvYWQoY29udGV4dCwgInZr
Q21kU2V0Q3VsbE1vZGVFWFQiKTsKKyAgICB2a0NtZFNldERlcHRoQm91bmRzVGVzdEVuYWJsZUVY
VCA9IChQRk5fdmtDbWRTZXREZXB0aEJvdW5kc1Rlc3RFbmFibGVFWFQpbG9hZChjb250ZXh0LCAi
dmtDbWRTZXREZXB0aEJvdW5kc1Rlc3RFbmFibGVFWFQiKTsKKyAgICB2a0NtZFNldERlcHRoQ29t
cGFyZU9wRVhUID0gKFBGTl92a0NtZFNldERlcHRoQ29tcGFyZU9wRVhUKWxvYWQoY29udGV4dCwg
InZrQ21kU2V0RGVwdGhDb21wYXJlT3BFWFQiKTsKKyAgICB2a0NtZFNldERlcHRoVGVzdEVuYWJs
ZUVYVCA9IChQRk5fdmtDbWRTZXREZXB0aFRlc3RFbmFibGVFWFQpbG9hZChjb250ZXh0LCAidmtD
bWRTZXREZXB0aFRlc3RFbmFibGVFWFQiKTsKKyAgICB2a0NtZFNldERlcHRoV3JpdGVFbmFibGVF
WFQgPSAoUEZOX3ZrQ21kU2V0RGVwdGhXcml0ZUVuYWJsZUVYVClsb2FkKGNvbnRleHQsICJ2a0Nt
ZFNldERlcHRoV3JpdGVFbmFibGVFWFQiKTsKKyAgICB2a0NtZFNldEZyb250RmFjZUVYVCA9IChQ
Rk5fdmtDbWRTZXRGcm9udEZhY2VFWFQpbG9hZChjb250ZXh0LCAidmtDbWRTZXRGcm9udEZhY2VF
WFQiKTsKKyAgICB2a0NtZFNldFByaW1pdGl2ZVRvcG9sb2d5RVhUID0gKFBGTl92a0NtZFNldFBy
aW1pdGl2ZVRvcG9sb2d5RVhUKWxvYWQoY29udGV4dCwgInZrQ21kU2V0UHJpbWl0aXZlVG9wb2xv
Z3lFWFQiKTsKKyAgICB2a0NtZFNldFNjaXNzb3JXaXRoQ291bnRFWFQgPSAoUEZOX3ZrQ21kU2V0
U2Npc3NvcldpdGhDb3VudEVYVClsb2FkKGNvbnRleHQsICJ2a0NtZFNldFNjaXNzb3JXaXRoQ291
bnRFWFQiKTsKKyAgICB2a0NtZFNldFN0ZW5jaWxPcEVYVCA9IChQRk5fdmtDbWRTZXRTdGVuY2ls
T3BFWFQpbG9hZChjb250ZXh0LCAidmtDbWRTZXRTdGVuY2lsT3BFWFQiKTsKKyAgICB2a0NtZFNl
dFN0ZW5jaWxUZXN0RW5hYmxlRVhUID0gKFBGTl92a0NtZFNldFN0ZW5jaWxUZXN0RW5hYmxlRVhU
KWxvYWQoY29udGV4dCwgInZrQ21kU2V0U3RlbmNpbFRlc3RFbmFibGVFWFQiKTsKKyAgICB2a0Nt
ZFNldFZpZXdwb3J0V2l0aENvdW50RVhUID0gKFBGTl92a0NtZFNldFZpZXdwb3J0V2l0aENvdW50
RVhUKWxvYWQoY29udGV4dCwgInZrQ21kU2V0Vmlld3BvcnRXaXRoQ291bnRFWFQiKTsKKyNlbmRp
ZiAvKiBkZWZpbmVkKFZLX0VYVF9leHRlbmRlZF9keW5hbWljX3N0YXRlKSAqLworI2lmIGRlZmlu
ZWQoVktfRVhUX2V4dGVuZGVkX2R5bmFtaWNfc3RhdGUyKQorICAgIHZrQ21kU2V0RGVwdGhCaWFz
RW5hYmxlRVhUID0gKFBGTl92a0NtZFNldERlcHRoQmlhc0VuYWJsZUVYVClsb2FkKGNvbnRleHQs
ICJ2a0NtZFNldERlcHRoQmlhc0VuYWJsZUVYVCIpOworICAgIHZrQ21kU2V0TG9naWNPcEVYVCA9
IChQRk5fdmtDbWRTZXRMb2dpY09wRVhUKWxvYWQoY29udGV4dCwgInZrQ21kU2V0TG9naWNPcEVY
VCIpOworICAgIHZrQ21kU2V0UGF0Y2hDb250cm9sUG9pbnRzRVhUID0gKFBGTl92a0NtZFNldFBh
dGNoQ29udHJvbFBvaW50c0VYVClsb2FkKGNvbnRleHQsICJ2a0NtZFNldFBhdGNoQ29udHJvbFBv
aW50c0VYVCIpOworICAgIHZrQ21kU2V0UHJpbWl0aXZlUmVzdGFydEVuYWJsZUVYVCA9IChQRk5f
dmtDbWRTZXRQcmltaXRpdmVSZXN0YXJ0RW5hYmxlRVhUKWxvYWQoY29udGV4dCwgInZrQ21kU2V0
UHJpbWl0aXZlUmVzdGFydEVuYWJsZUVYVCIpOworICAgIHZrQ21kU2V0UmFzdGVyaXplckRpc2Nh
cmRFbmFibGVFWFQgPSAoUEZOX3ZrQ21kU2V0UmFzdGVyaXplckRpc2NhcmRFbmFibGVFWFQpbG9h
ZChjb250ZXh0LCAidmtDbWRTZXRSYXN0ZXJpemVyRGlzY2FyZEVuYWJsZUVYVCIpOworI2VuZGlm
IC8qIGRlZmluZWQoVktfRVhUX2V4dGVuZGVkX2R5bmFtaWNfc3RhdGUyKSAqLwogI2lmIGRlZmlu
ZWQoVktfRVhUX2V4dGVybmFsX21lbW9yeV9ob3N0KQogICAgIHZrR2V0TWVtb3J5SG9zdFBvaW50
ZXJQcm9wZXJ0aWVzRVhUID0gKFBGTl92a0dldE1lbW9yeUhvc3RQb2ludGVyUHJvcGVydGllc0VY
VClsb2FkKGNvbnRleHQsICJ2a0dldE1lbW9yeUhvc3RQb2ludGVyUHJvcGVydGllc0VYVCIpOwog
I2VuZGlmIC8qIGRlZmluZWQoVktfRVhUX2V4dGVybmFsX21lbW9yeV9ob3N0KSAqLwpAQCAtNTI0
LDYgKzYzMCwxOSBAQCBzdGF0aWMgdm9pZCB2b2xrR2VuTG9hZERldmljZSh2b2lkKiBjb250ZXh0
LCBQRk5fdmtWb2lkRnVuY3Rpb24gKCpsb2FkKSh2b2lkKiwgYwogI2lmIGRlZmluZWQoVktfRVhU
X2xpbmVfcmFzdGVyaXphdGlvbikKICAgICB2a0NtZFNldExpbmVTdGlwcGxlRVhUID0gKFBGTl92
a0NtZFNldExpbmVTdGlwcGxlRVhUKWxvYWQoY29udGV4dCwgInZrQ21kU2V0TGluZVN0aXBwbGVF
WFQiKTsKICNlbmRpZiAvKiBkZWZpbmVkKFZLX0VYVF9saW5lX3Jhc3Rlcml6YXRpb24pICovCisj
aWYgZGVmaW5lZChWS19FWFRfbXVsdGlfZHJhdykKKyAgICB2a0NtZERyYXdNdWx0aUVYVCA9IChQ
Rk5fdmtDbWREcmF3TXVsdGlFWFQpbG9hZChjb250ZXh0LCAidmtDbWREcmF3TXVsdGlFWFQiKTsK
KyAgICB2a0NtZERyYXdNdWx0aUluZGV4ZWRFWFQgPSAoUEZOX3ZrQ21kRHJhd011bHRpSW5kZXhl
ZEVYVClsb2FkKGNvbnRleHQsICJ2a0NtZERyYXdNdWx0aUluZGV4ZWRFWFQiKTsKKyNlbmRpZiAv
KiBkZWZpbmVkKFZLX0VYVF9tdWx0aV9kcmF3KSAqLworI2lmIGRlZmluZWQoVktfRVhUX3BhZ2Vh
YmxlX2RldmljZV9sb2NhbF9tZW1vcnkpCisgICAgdmtTZXREZXZpY2VNZW1vcnlQcmlvcml0eUVY
VCA9IChQRk5fdmtTZXREZXZpY2VNZW1vcnlQcmlvcml0eUVYVClsb2FkKGNvbnRleHQsICJ2a1Nl
dERldmljZU1lbW9yeVByaW9yaXR5RVhUIik7CisjZW5kaWYgLyogZGVmaW5lZChWS19FWFRfcGFn
ZWFibGVfZGV2aWNlX2xvY2FsX21lbW9yeSkgKi8KKyNpZiBkZWZpbmVkKFZLX0VYVF9wcml2YXRl
X2RhdGEpCisgICAgdmtDcmVhdGVQcml2YXRlRGF0YVNsb3RFWFQgPSAoUEZOX3ZrQ3JlYXRlUHJp
dmF0ZURhdGFTbG90RVhUKWxvYWQoY29udGV4dCwgInZrQ3JlYXRlUHJpdmF0ZURhdGFTbG90RVhU
Iik7CisgICAgdmtEZXN0cm95UHJpdmF0ZURhdGFTbG90RVhUID0gKFBGTl92a0Rlc3Ryb3lQcml2
YXRlRGF0YVNsb3RFWFQpbG9hZChjb250ZXh0LCAidmtEZXN0cm95UHJpdmF0ZURhdGFTbG90RVhU
Iik7CisgICAgdmtHZXRQcml2YXRlRGF0YUVYVCA9IChQRk5fdmtHZXRQcml2YXRlRGF0YUVYVCls
b2FkKGNvbnRleHQsICJ2a0dldFByaXZhdGVEYXRhRVhUIik7CisgICAgdmtTZXRQcml2YXRlRGF0
YUVYVCA9IChQRk5fdmtTZXRQcml2YXRlRGF0YUVYVClsb2FkKGNvbnRleHQsICJ2a1NldFByaXZh
dGVEYXRhRVhUIik7CisjZW5kaWYgLyogZGVmaW5lZChWS19FWFRfcHJpdmF0ZV9kYXRhKSAqLwog
I2lmIGRlZmluZWQoVktfRVhUX3NhbXBsZV9sb2NhdGlvbnMpCiAgICAgdmtDbWRTZXRTYW1wbGVM
b2NhdGlvbnNFWFQgPSAoUEZOX3ZrQ21kU2V0U2FtcGxlTG9jYXRpb25zRVhUKWxvYWQoY29udGV4
dCwgInZrQ21kU2V0U2FtcGxlTG9jYXRpb25zRVhUIik7CiAjZW5kaWYgLyogZGVmaW5lZChWS19F
WFRfc2FtcGxlX2xvY2F0aW9ucykgKi8KQEAgLTU0MSwxMCArNjYwLDM1IEBAIHN0YXRpYyB2b2lk
IHZvbGtHZW5Mb2FkRGV2aWNlKHZvaWQqIGNvbnRleHQsIFBGTl92a1ZvaWRGdW5jdGlvbiAoKmxv
YWQpKHZvaWQqLCBjCiAgICAgdmtHZXRWYWxpZGF0aW9uQ2FjaGVEYXRhRVhUID0gKFBGTl92a0dl
dFZhbGlkYXRpb25DYWNoZURhdGFFWFQpbG9hZChjb250ZXh0LCAidmtHZXRWYWxpZGF0aW9uQ2Fj
aGVEYXRhRVhUIik7CiAgICAgdmtNZXJnZVZhbGlkYXRpb25DYWNoZXNFWFQgPSAoUEZOX3ZrTWVy
Z2VWYWxpZGF0aW9uQ2FjaGVzRVhUKWxvYWQoY29udGV4dCwgInZrTWVyZ2VWYWxpZGF0aW9uQ2Fj
aGVzRVhUIik7CiAjZW5kaWYgLyogZGVmaW5lZChWS19FWFRfdmFsaWRhdGlvbl9jYWNoZSkgKi8K
KyNpZiBkZWZpbmVkKFZLX0VYVF92ZXJ0ZXhfaW5wdXRfZHluYW1pY19zdGF0ZSkKKyAgICB2a0Nt
ZFNldFZlcnRleElucHV0RVhUID0gKFBGTl92a0NtZFNldFZlcnRleElucHV0RVhUKWxvYWQoY29u
dGV4dCwgInZrQ21kU2V0VmVydGV4SW5wdXRFWFQiKTsKKyNlbmRpZiAvKiBkZWZpbmVkKFZLX0VY
VF92ZXJ0ZXhfaW5wdXRfZHluYW1pY19zdGF0ZSkgKi8KKyNpZiBkZWZpbmVkKFZLX0ZVQ0hTSUFf
YnVmZmVyX2NvbGxlY3Rpb24pCisgICAgdmtDcmVhdGVCdWZmZXJDb2xsZWN0aW9uRlVDSFNJQSA9
IChQRk5fdmtDcmVhdGVCdWZmZXJDb2xsZWN0aW9uRlVDSFNJQSlsb2FkKGNvbnRleHQsICJ2a0Ny
ZWF0ZUJ1ZmZlckNvbGxlY3Rpb25GVUNIU0lBIik7CisgICAgdmtEZXN0cm95QnVmZmVyQ29sbGVj
dGlvbkZVQ0hTSUEgPSAoUEZOX3ZrRGVzdHJveUJ1ZmZlckNvbGxlY3Rpb25GVUNIU0lBKWxvYWQo
Y29udGV4dCwgInZrRGVzdHJveUJ1ZmZlckNvbGxlY3Rpb25GVUNIU0lBIik7CisgICAgdmtHZXRC
dWZmZXJDb2xsZWN0aW9uUHJvcGVydGllc0ZVQ0hTSUEgPSAoUEZOX3ZrR2V0QnVmZmVyQ29sbGVj
dGlvblByb3BlcnRpZXNGVUNIU0lBKWxvYWQoY29udGV4dCwgInZrR2V0QnVmZmVyQ29sbGVjdGlv
blByb3BlcnRpZXNGVUNIU0lBIik7CisgICAgdmtTZXRCdWZmZXJDb2xsZWN0aW9uQnVmZmVyQ29u
c3RyYWludHNGVUNIU0lBID0gKFBGTl92a1NldEJ1ZmZlckNvbGxlY3Rpb25CdWZmZXJDb25zdHJh
aW50c0ZVQ0hTSUEpbG9hZChjb250ZXh0LCAidmtTZXRCdWZmZXJDb2xsZWN0aW9uQnVmZmVyQ29u
c3RyYWludHNGVUNIU0lBIik7CisgICAgdmtTZXRCdWZmZXJDb2xsZWN0aW9uSW1hZ2VDb25zdHJh
aW50c0ZVQ0hTSUEgPSAoUEZOX3ZrU2V0QnVmZmVyQ29sbGVjdGlvbkltYWdlQ29uc3RyYWludHNG
VUNIU0lBKWxvYWQoY29udGV4dCwgInZrU2V0QnVmZmVyQ29sbGVjdGlvbkltYWdlQ29uc3RyYWlu
dHNGVUNIU0lBIik7CisjZW5kaWYgLyogZGVmaW5lZChWS19GVUNIU0lBX2J1ZmZlcl9jb2xsZWN0
aW9uKSAqLworI2lmIGRlZmluZWQoVktfRlVDSFNJQV9leHRlcm5hbF9tZW1vcnkpCisgICAgdmtH
ZXRNZW1vcnlaaXJjb25IYW5kbGVGVUNIU0lBID0gKFBGTl92a0dldE1lbW9yeVppcmNvbkhhbmRs
ZUZVQ0hTSUEpbG9hZChjb250ZXh0LCAidmtHZXRNZW1vcnlaaXJjb25IYW5kbGVGVUNIU0lBIik7
CisgICAgdmtHZXRNZW1vcnlaaXJjb25IYW5kbGVQcm9wZXJ0aWVzRlVDSFNJQSA9IChQRk5fdmtH
ZXRNZW1vcnlaaXJjb25IYW5kbGVQcm9wZXJ0aWVzRlVDSFNJQSlsb2FkKGNvbnRleHQsICJ2a0dl
dE1lbW9yeVppcmNvbkhhbmRsZVByb3BlcnRpZXNGVUNIU0lBIik7CisjZW5kaWYgLyogZGVmaW5l
ZChWS19GVUNIU0lBX2V4dGVybmFsX21lbW9yeSkgKi8KKyNpZiBkZWZpbmVkKFZLX0ZVQ0hTSUFf
ZXh0ZXJuYWxfc2VtYXBob3JlKQorICAgIHZrR2V0U2VtYXBob3JlWmlyY29uSGFuZGxlRlVDSFNJ
QSA9IChQRk5fdmtHZXRTZW1hcGhvcmVaaXJjb25IYW5kbGVGVUNIU0lBKWxvYWQoY29udGV4dCwg
InZrR2V0U2VtYXBob3JlWmlyY29uSGFuZGxlRlVDSFNJQSIpOworICAgIHZrSW1wb3J0U2VtYXBo
b3JlWmlyY29uSGFuZGxlRlVDSFNJQSA9IChQRk5fdmtJbXBvcnRTZW1hcGhvcmVaaXJjb25IYW5k
bGVGVUNIU0lBKWxvYWQoY29udGV4dCwgInZrSW1wb3J0U2VtYXBob3JlWmlyY29uSGFuZGxlRlVD
SFNJQSIpOworI2VuZGlmIC8qIGRlZmluZWQoVktfRlVDSFNJQV9leHRlcm5hbF9zZW1hcGhvcmUp
ICovCiAjaWYgZGVmaW5lZChWS19HT09HTEVfZGlzcGxheV90aW1pbmcpCiAgICAgdmtHZXRQYXN0
UHJlc2VudGF0aW9uVGltaW5nR09PR0xFID0gKFBGTl92a0dldFBhc3RQcmVzZW50YXRpb25UaW1p
bmdHT09HTEUpbG9hZChjb250ZXh0LCAidmtHZXRQYXN0UHJlc2VudGF0aW9uVGltaW5nR09PR0xF
Iik7CiAgICAgdmtHZXRSZWZyZXNoQ3ljbGVEdXJhdGlvbkdPT0dMRSA9IChQRk5fdmtHZXRSZWZy
ZXNoQ3ljbGVEdXJhdGlvbkdPT0dMRSlsb2FkKGNvbnRleHQsICJ2a0dldFJlZnJlc2hDeWNsZUR1
cmF0aW9uR09PR0xFIik7CiAjZW5kaWYgLyogZGVmaW5lZChWS19HT09HTEVfZGlzcGxheV90aW1p
bmcpICovCisjaWYgZGVmaW5lZChWS19IVUFXRUlfaW52b2NhdGlvbl9tYXNrKQorICAgIHZrQ21k
QmluZEludm9jYXRpb25NYXNrSFVBV0VJID0gKFBGTl92a0NtZEJpbmRJbnZvY2F0aW9uTWFza0hV
QVdFSSlsb2FkKGNvbnRleHQsICJ2a0NtZEJpbmRJbnZvY2F0aW9uTWFza0hVQVdFSSIpOworI2Vu
ZGlmIC8qIGRlZmluZWQoVktfSFVBV0VJX2ludm9jYXRpb25fbWFzaykgKi8KKyNpZiBkZWZpbmVk
KFZLX0hVQVdFSV9zdWJwYXNzX3NoYWRpbmcpCisgICAgdmtDbWRTdWJwYXNzU2hhZGluZ0hVQVdF
SSA9IChQRk5fdmtDbWRTdWJwYXNzU2hhZGluZ0hVQVdFSSlsb2FkKGNvbnRleHQsICJ2a0NtZFN1
YnBhc3NTaGFkaW5nSFVBV0VJIik7CisgICAgdmtHZXREZXZpY2VTdWJwYXNzU2hhZGluZ01heFdv
cmtncm91cFNpemVIVUFXRUkgPSAoUEZOX3ZrR2V0RGV2aWNlU3VicGFzc1NoYWRpbmdNYXhXb3Jr
Z3JvdXBTaXplSFVBV0VJKWxvYWQoY29udGV4dCwgInZrR2V0RGV2aWNlU3VicGFzc1NoYWRpbmdN
YXhXb3JrZ3JvdXBTaXplSFVBV0VJIik7CisjZW5kaWYgLyogZGVmaW5lZChWS19IVUFXRUlfc3Vi
cGFzc19zaGFkaW5nKSAqLwogI2lmIGRlZmluZWQoVktfSU5URUxfcGVyZm9ybWFuY2VfcXVlcnkp
CiAgICAgdmtBY3F1aXJlUGVyZm9ybWFuY2VDb25maWd1cmF0aW9uSU5URUwgPSAoUEZOX3ZrQWNx
dWlyZVBlcmZvcm1hbmNlQ29uZmlndXJhdGlvbklOVEVMKWxvYWQoY29udGV4dCwgInZrQWNxdWly
ZVBlcmZvcm1hbmNlQ29uZmlndXJhdGlvbklOVEVMIik7CiAgICAgdmtDbWRTZXRQZXJmb3JtYW5j
ZU1hcmtlcklOVEVMID0gKFBGTl92a0NtZFNldFBlcmZvcm1hbmNlTWFya2VySU5URUwpbG9hZChj
b250ZXh0LCAidmtDbWRTZXRQZXJmb3JtYW5jZU1hcmtlcklOVEVMIik7CkBAIC01NTYsNiArNzAw
LDI0IEBAIHN0YXRpYyB2b2lkIHZvbGtHZW5Mb2FkRGV2aWNlKHZvaWQqIGNvbnRleHQsIFBGTl92
a1ZvaWRGdW5jdGlvbiAoKmxvYWQpKHZvaWQqLCBjCiAgICAgdmtSZWxlYXNlUGVyZm9ybWFuY2VD
b25maWd1cmF0aW9uSU5URUwgPSAoUEZOX3ZrUmVsZWFzZVBlcmZvcm1hbmNlQ29uZmlndXJhdGlv
bklOVEVMKWxvYWQoY29udGV4dCwgInZrUmVsZWFzZVBlcmZvcm1hbmNlQ29uZmlndXJhdGlvbklO
VEVMIik7CiAgICAgdmtVbmluaXRpYWxpemVQZXJmb3JtYW5jZUFwaUlOVEVMID0gKFBGTl92a1Vu
aW5pdGlhbGl6ZVBlcmZvcm1hbmNlQXBpSU5URUwpbG9hZChjb250ZXh0LCAidmtVbmluaXRpYWxp
emVQZXJmb3JtYW5jZUFwaUlOVEVMIik7CiAjZW5kaWYgLyogZGVmaW5lZChWS19JTlRFTF9wZXJm
b3JtYW5jZV9xdWVyeSkgKi8KKyNpZiBkZWZpbmVkKFZLX0tIUl9hY2NlbGVyYXRpb25fc3RydWN0
dXJlKQorICAgIHZrQnVpbGRBY2NlbGVyYXRpb25TdHJ1Y3R1cmVzS0hSID0gKFBGTl92a0J1aWxk
QWNjZWxlcmF0aW9uU3RydWN0dXJlc0tIUilsb2FkKGNvbnRleHQsICJ2a0J1aWxkQWNjZWxlcmF0
aW9uU3RydWN0dXJlc0tIUiIpOworICAgIHZrQ21kQnVpbGRBY2NlbGVyYXRpb25TdHJ1Y3R1cmVz
SW5kaXJlY3RLSFIgPSAoUEZOX3ZrQ21kQnVpbGRBY2NlbGVyYXRpb25TdHJ1Y3R1cmVzSW5kaXJl
Y3RLSFIpbG9hZChjb250ZXh0LCAidmtDbWRCdWlsZEFjY2VsZXJhdGlvblN0cnVjdHVyZXNJbmRp
cmVjdEtIUiIpOworICAgIHZrQ21kQnVpbGRBY2NlbGVyYXRpb25TdHJ1Y3R1cmVzS0hSID0gKFBG
Tl92a0NtZEJ1aWxkQWNjZWxlcmF0aW9uU3RydWN0dXJlc0tIUilsb2FkKGNvbnRleHQsICJ2a0Nt
ZEJ1aWxkQWNjZWxlcmF0aW9uU3RydWN0dXJlc0tIUiIpOworICAgIHZrQ21kQ29weUFjY2VsZXJh
dGlvblN0cnVjdHVyZUtIUiA9IChQRk5fdmtDbWRDb3B5QWNjZWxlcmF0aW9uU3RydWN0dXJlS0hS
KWxvYWQoY29udGV4dCwgInZrQ21kQ29weUFjY2VsZXJhdGlvblN0cnVjdHVyZUtIUiIpOworICAg
IHZrQ21kQ29weUFjY2VsZXJhdGlvblN0cnVjdHVyZVRvTWVtb3J5S0hSID0gKFBGTl92a0NtZENv
cHlBY2NlbGVyYXRpb25TdHJ1Y3R1cmVUb01lbW9yeUtIUilsb2FkKGNvbnRleHQsICJ2a0NtZENv
cHlBY2NlbGVyYXRpb25TdHJ1Y3R1cmVUb01lbW9yeUtIUiIpOworICAgIHZrQ21kQ29weU1lbW9y
eVRvQWNjZWxlcmF0aW9uU3RydWN0dXJlS0hSID0gKFBGTl92a0NtZENvcHlNZW1vcnlUb0FjY2Vs
ZXJhdGlvblN0cnVjdHVyZUtIUilsb2FkKGNvbnRleHQsICJ2a0NtZENvcHlNZW1vcnlUb0FjY2Vs
ZXJhdGlvblN0cnVjdHVyZUtIUiIpOworICAgIHZrQ21kV3JpdGVBY2NlbGVyYXRpb25TdHJ1Y3R1
cmVzUHJvcGVydGllc0tIUiA9IChQRk5fdmtDbWRXcml0ZUFjY2VsZXJhdGlvblN0cnVjdHVyZXNQ
cm9wZXJ0aWVzS0hSKWxvYWQoY29udGV4dCwgInZrQ21kV3JpdGVBY2NlbGVyYXRpb25TdHJ1Y3R1
cmVzUHJvcGVydGllc0tIUiIpOworICAgIHZrQ29weUFjY2VsZXJhdGlvblN0cnVjdHVyZUtIUiA9
IChQRk5fdmtDb3B5QWNjZWxlcmF0aW9uU3RydWN0dXJlS0hSKWxvYWQoY29udGV4dCwgInZrQ29w
eUFjY2VsZXJhdGlvblN0cnVjdHVyZUtIUiIpOworICAgIHZrQ29weUFjY2VsZXJhdGlvblN0cnVj
dHVyZVRvTWVtb3J5S0hSID0gKFBGTl92a0NvcHlBY2NlbGVyYXRpb25TdHJ1Y3R1cmVUb01lbW9y
eUtIUilsb2FkKGNvbnRleHQsICJ2a0NvcHlBY2NlbGVyYXRpb25TdHJ1Y3R1cmVUb01lbW9yeUtI
UiIpOworICAgIHZrQ29weU1lbW9yeVRvQWNjZWxlcmF0aW9uU3RydWN0dXJlS0hSID0gKFBGTl92
a0NvcHlNZW1vcnlUb0FjY2VsZXJhdGlvblN0cnVjdHVyZUtIUilsb2FkKGNvbnRleHQsICJ2a0Nv
cHlNZW1vcnlUb0FjY2VsZXJhdGlvblN0cnVjdHVyZUtIUiIpOworICAgIHZrQ3JlYXRlQWNjZWxl
cmF0aW9uU3RydWN0dXJlS0hSID0gKFBGTl92a0NyZWF0ZUFjY2VsZXJhdGlvblN0cnVjdHVyZUtI
Uilsb2FkKGNvbnRleHQsICJ2a0NyZWF0ZUFjY2VsZXJhdGlvblN0cnVjdHVyZUtIUiIpOworICAg
IHZrRGVzdHJveUFjY2VsZXJhdGlvblN0cnVjdHVyZUtIUiA9IChQRk5fdmtEZXN0cm95QWNjZWxl
cmF0aW9uU3RydWN0dXJlS0hSKWxvYWQoY29udGV4dCwgInZrRGVzdHJveUFjY2VsZXJhdGlvblN0
cnVjdHVyZUtIUiIpOworICAgIHZrR2V0QWNjZWxlcmF0aW9uU3RydWN0dXJlQnVpbGRTaXplc0tI
UiA9IChQRk5fdmtHZXRBY2NlbGVyYXRpb25TdHJ1Y3R1cmVCdWlsZFNpemVzS0hSKWxvYWQoY29u
dGV4dCwgInZrR2V0QWNjZWxlcmF0aW9uU3RydWN0dXJlQnVpbGRTaXplc0tIUiIpOworICAgIHZr
R2V0QWNjZWxlcmF0aW9uU3RydWN0dXJlRGV2aWNlQWRkcmVzc0tIUiA9IChQRk5fdmtHZXRBY2Nl
bGVyYXRpb25TdHJ1Y3R1cmVEZXZpY2VBZGRyZXNzS0hSKWxvYWQoY29udGV4dCwgInZrR2V0QWNj
ZWxlcmF0aW9uU3RydWN0dXJlRGV2aWNlQWRkcmVzc0tIUiIpOworICAgIHZrR2V0RGV2aWNlQWNj
ZWxlcmF0aW9uU3RydWN0dXJlQ29tcGF0aWJpbGl0eUtIUiA9IChQRk5fdmtHZXREZXZpY2VBY2Nl
bGVyYXRpb25TdHJ1Y3R1cmVDb21wYXRpYmlsaXR5S0hSKWxvYWQoY29udGV4dCwgInZrR2V0RGV2
aWNlQWNjZWxlcmF0aW9uU3RydWN0dXJlQ29tcGF0aWJpbGl0eUtIUiIpOworICAgIHZrV3JpdGVB
Y2NlbGVyYXRpb25TdHJ1Y3R1cmVzUHJvcGVydGllc0tIUiA9IChQRk5fdmtXcml0ZUFjY2VsZXJh
dGlvblN0cnVjdHVyZXNQcm9wZXJ0aWVzS0hSKWxvYWQoY29udGV4dCwgInZrV3JpdGVBY2NlbGVy
YXRpb25TdHJ1Y3R1cmVzUHJvcGVydGllc0tIUiIpOworI2VuZGlmIC8qIGRlZmluZWQoVktfS0hS
X2FjY2VsZXJhdGlvbl9zdHJ1Y3R1cmUpICovCiAjaWYgZGVmaW5lZChWS19LSFJfYmluZF9tZW1v
cnkyKQogICAgIHZrQmluZEJ1ZmZlck1lbW9yeTJLSFIgPSAoUEZOX3ZrQmluZEJ1ZmZlck1lbW9y
eTJLSFIpbG9hZChjb250ZXh0LCAidmtCaW5kQnVmZmVyTWVtb3J5MktIUiIpOwogICAgIHZrQmlu
ZEltYWdlTWVtb3J5MktIUiA9IChQRk5fdmtCaW5kSW1hZ2VNZW1vcnkyS0hSKWxvYWQoY29udGV4
dCwgInZrQmluZEltYWdlTWVtb3J5MktIUiIpOwpAQCAtNTY1LDEyICs3MjcsMjcgQEAgc3RhdGlj
IHZvaWQgdm9sa0dlbkxvYWREZXZpY2Uodm9pZCogY29udGV4dCwgUEZOX3ZrVm9pZEZ1bmN0aW9u
ICgqbG9hZCkodm9pZCosIGMKICAgICB2a0dldEJ1ZmZlck9wYXF1ZUNhcHR1cmVBZGRyZXNzS0hS
ID0gKFBGTl92a0dldEJ1ZmZlck9wYXF1ZUNhcHR1cmVBZGRyZXNzS0hSKWxvYWQoY29udGV4dCwg
InZrR2V0QnVmZmVyT3BhcXVlQ2FwdHVyZUFkZHJlc3NLSFIiKTsKICAgICB2a0dldERldmljZU1l
bW9yeU9wYXF1ZUNhcHR1cmVBZGRyZXNzS0hSID0gKFBGTl92a0dldERldmljZU1lbW9yeU9wYXF1
ZUNhcHR1cmVBZGRyZXNzS0hSKWxvYWQoY29udGV4dCwgInZrR2V0RGV2aWNlTWVtb3J5T3BhcXVl
Q2FwdHVyZUFkZHJlc3NLSFIiKTsKICNlbmRpZiAvKiBkZWZpbmVkKFZLX0tIUl9idWZmZXJfZGV2
aWNlX2FkZHJlc3MpICovCisjaWYgZGVmaW5lZChWS19LSFJfY29weV9jb21tYW5kczIpCisgICAg
dmtDbWRCbGl0SW1hZ2UyS0hSID0gKFBGTl92a0NtZEJsaXRJbWFnZTJLSFIpbG9hZChjb250ZXh0
LCAidmtDbWRCbGl0SW1hZ2UyS0hSIik7CisgICAgdmtDbWRDb3B5QnVmZmVyMktIUiA9IChQRk5f
dmtDbWRDb3B5QnVmZmVyMktIUilsb2FkKGNvbnRleHQsICJ2a0NtZENvcHlCdWZmZXIyS0hSIik7
CisgICAgdmtDbWRDb3B5QnVmZmVyVG9JbWFnZTJLSFIgPSAoUEZOX3ZrQ21kQ29weUJ1ZmZlclRv
SW1hZ2UyS0hSKWxvYWQoY29udGV4dCwgInZrQ21kQ29weUJ1ZmZlclRvSW1hZ2UyS0hSIik7Cisg
ICAgdmtDbWRDb3B5SW1hZ2UyS0hSID0gKFBGTl92a0NtZENvcHlJbWFnZTJLSFIpbG9hZChjb250
ZXh0LCAidmtDbWRDb3B5SW1hZ2UyS0hSIik7CisgICAgdmtDbWRDb3B5SW1hZ2VUb0J1ZmZlcjJL
SFIgPSAoUEZOX3ZrQ21kQ29weUltYWdlVG9CdWZmZXIyS0hSKWxvYWQoY29udGV4dCwgInZrQ21k
Q29weUltYWdlVG9CdWZmZXIyS0hSIik7CisgICAgdmtDbWRSZXNvbHZlSW1hZ2UyS0hSID0gKFBG
Tl92a0NtZFJlc29sdmVJbWFnZTJLSFIpbG9hZChjb250ZXh0LCAidmtDbWRSZXNvbHZlSW1hZ2Uy
S0hSIik7CisjZW5kaWYgLyogZGVmaW5lZChWS19LSFJfY29weV9jb21tYW5kczIpICovCiAjaWYg
ZGVmaW5lZChWS19LSFJfY3JlYXRlX3JlbmRlcnBhc3MyKQogICAgIHZrQ21kQmVnaW5SZW5kZXJQ
YXNzMktIUiA9IChQRk5fdmtDbWRCZWdpblJlbmRlclBhc3MyS0hSKWxvYWQoY29udGV4dCwgInZr
Q21kQmVnaW5SZW5kZXJQYXNzMktIUiIpOwogICAgIHZrQ21kRW5kUmVuZGVyUGFzczJLSFIgPSAo
UEZOX3ZrQ21kRW5kUmVuZGVyUGFzczJLSFIpbG9hZChjb250ZXh0LCAidmtDbWRFbmRSZW5kZXJQ
YXNzMktIUiIpOwogICAgIHZrQ21kTmV4dFN1YnBhc3MyS0hSID0gKFBGTl92a0NtZE5leHRTdWJw
YXNzMktIUilsb2FkKGNvbnRleHQsICJ2a0NtZE5leHRTdWJwYXNzMktIUiIpOwogICAgIHZrQ3Jl
YXRlUmVuZGVyUGFzczJLSFIgPSAoUEZOX3ZrQ3JlYXRlUmVuZGVyUGFzczJLSFIpbG9hZChjb250
ZXh0LCAidmtDcmVhdGVSZW5kZXJQYXNzMktIUiIpOwogI2VuZGlmIC8qIGRlZmluZWQoVktfS0hS
X2NyZWF0ZV9yZW5kZXJwYXNzMikgKi8KKyNpZiBkZWZpbmVkKFZLX0tIUl9kZWZlcnJlZF9ob3N0
X29wZXJhdGlvbnMpCisgICAgdmtDcmVhdGVEZWZlcnJlZE9wZXJhdGlvbktIUiA9IChQRk5fdmtD
cmVhdGVEZWZlcnJlZE9wZXJhdGlvbktIUilsb2FkKGNvbnRleHQsICJ2a0NyZWF0ZURlZmVycmVk
T3BlcmF0aW9uS0hSIik7CisgICAgdmtEZWZlcnJlZE9wZXJhdGlvbkpvaW5LSFIgPSAoUEZOX3Zr
RGVmZXJyZWRPcGVyYXRpb25Kb2luS0hSKWxvYWQoY29udGV4dCwgInZrRGVmZXJyZWRPcGVyYXRp
b25Kb2luS0hSIik7CisgICAgdmtEZXN0cm95RGVmZXJyZWRPcGVyYXRpb25LSFIgPSAoUEZOX3Zr
RGVzdHJveURlZmVycmVkT3BlcmF0aW9uS0hSKWxvYWQoY29udGV4dCwgInZrRGVzdHJveURlZmVy
cmVkT3BlcmF0aW9uS0hSIik7CisgICAgdmtHZXREZWZlcnJlZE9wZXJhdGlvbk1heENvbmN1cnJl
bmN5S0hSID0gKFBGTl92a0dldERlZmVycmVkT3BlcmF0aW9uTWF4Q29uY3VycmVuY3lLSFIpbG9h
ZChjb250ZXh0LCAidmtHZXREZWZlcnJlZE9wZXJhdGlvbk1heENvbmN1cnJlbmN5S0hSIik7Cisg
ICAgdmtHZXREZWZlcnJlZE9wZXJhdGlvblJlc3VsdEtIUiA9IChQRk5fdmtHZXREZWZlcnJlZE9w
ZXJhdGlvblJlc3VsdEtIUilsb2FkKGNvbnRleHQsICJ2a0dldERlZmVycmVkT3BlcmF0aW9uUmVz
dWx0S0hSIik7CisjZW5kaWYgLyogZGVmaW5lZChWS19LSFJfZGVmZXJyZWRfaG9zdF9vcGVyYXRp
b25zKSAqLwogI2lmIGRlZmluZWQoVktfS0hSX2Rlc2NyaXB0b3JfdXBkYXRlX3RlbXBsYXRlKQog
ICAgIHZrQ3JlYXRlRGVzY3JpcHRvclVwZGF0ZVRlbXBsYXRlS0hSID0gKFBGTl92a0NyZWF0ZURl
c2NyaXB0b3JVcGRhdGVUZW1wbGF0ZUtIUilsb2FkKGNvbnRleHQsICJ2a0NyZWF0ZURlc2NyaXB0
b3JVcGRhdGVUZW1wbGF0ZUtIUiIpOwogICAgIHZrRGVzdHJveURlc2NyaXB0b3JVcGRhdGVUZW1w
bGF0ZUtIUiA9IChQRk5fdmtEZXN0cm95RGVzY3JpcHRvclVwZGF0ZVRlbXBsYXRlS0hSKWxvYWQo
Y29udGV4dCwgInZrRGVzdHJveURlc2NyaXB0b3JVcGRhdGVUZW1wbGF0ZUtIUiIpOwpAQCAtNTg4
LDYgKzc2NSwxMCBAQCBzdGF0aWMgdm9pZCB2b2xrR2VuTG9hZERldmljZSh2b2lkKiBjb250ZXh0
LCBQRk5fdmtWb2lkRnVuY3Rpb24gKCpsb2FkKSh2b2lkKiwgYwogICAgIHZrQ21kRHJhd0luZGV4
ZWRJbmRpcmVjdENvdW50S0hSID0gKFBGTl92a0NtZERyYXdJbmRleGVkSW5kaXJlY3RDb3VudEtI
Uilsb2FkKGNvbnRleHQsICJ2a0NtZERyYXdJbmRleGVkSW5kaXJlY3RDb3VudEtIUiIpOwogICAg
IHZrQ21kRHJhd0luZGlyZWN0Q291bnRLSFIgPSAoUEZOX3ZrQ21kRHJhd0luZGlyZWN0Q291bnRL
SFIpbG9hZChjb250ZXh0LCAidmtDbWREcmF3SW5kaXJlY3RDb3VudEtIUiIpOwogI2VuZGlmIC8q
IGRlZmluZWQoVktfS0hSX2RyYXdfaW5kaXJlY3RfY291bnQpICovCisjaWYgZGVmaW5lZChWS19L
SFJfZHluYW1pY19yZW5kZXJpbmcpCisgICAgdmtDbWRCZWdpblJlbmRlcmluZ0tIUiA9IChQRk5f
dmtDbWRCZWdpblJlbmRlcmluZ0tIUilsb2FkKGNvbnRleHQsICJ2a0NtZEJlZ2luUmVuZGVyaW5n
S0hSIik7CisgICAgdmtDbWRFbmRSZW5kZXJpbmdLSFIgPSAoUEZOX3ZrQ21kRW5kUmVuZGVyaW5n
S0hSKWxvYWQoY29udGV4dCwgInZrQ21kRW5kUmVuZGVyaW5nS0hSIik7CisjZW5kaWYgLyogZGVm
aW5lZChWS19LSFJfZHluYW1pY19yZW5kZXJpbmcpICovCiAjaWYgZGVmaW5lZChWS19LSFJfZXh0
ZXJuYWxfZmVuY2VfZmQpCiAgICAgdmtHZXRGZW5jZUZkS0hSID0gKFBGTl92a0dldEZlbmNlRmRL
SFIpbG9hZChjb250ZXh0LCAidmtHZXRGZW5jZUZkS0hSIik7CiAgICAgdmtJbXBvcnRGZW5jZUZk
S0hSID0gKFBGTl92a0ltcG9ydEZlbmNlRmRLSFIpbG9hZChjb250ZXh0LCAidmtJbXBvcnRGZW5j
ZUZkS0hSIik7CkBAIC02MTIsNiArNzkzLDkgQEAgc3RhdGljIHZvaWQgdm9sa0dlbkxvYWREZXZp
Y2Uodm9pZCogY29udGV4dCwgUEZOX3ZrVm9pZEZ1bmN0aW9uICgqbG9hZCkodm9pZCosIGMKICAg
ICB2a0dldFNlbWFwaG9yZVdpbjMySGFuZGxlS0hSID0gKFBGTl92a0dldFNlbWFwaG9yZVdpbjMy
SGFuZGxlS0hSKWxvYWQoY29udGV4dCwgInZrR2V0U2VtYXBob3JlV2luMzJIYW5kbGVLSFIiKTsK
ICAgICB2a0ltcG9ydFNlbWFwaG9yZVdpbjMySGFuZGxlS0hSID0gKFBGTl92a0ltcG9ydFNlbWFw
aG9yZVdpbjMySGFuZGxlS0hSKWxvYWQoY29udGV4dCwgInZrSW1wb3J0U2VtYXBob3JlV2luMzJI
YW5kbGVLSFIiKTsKICNlbmRpZiAvKiBkZWZpbmVkKFZLX0tIUl9leHRlcm5hbF9zZW1hcGhvcmVf
d2luMzIpICovCisjaWYgZGVmaW5lZChWS19LSFJfZnJhZ21lbnRfc2hhZGluZ19yYXRlKQorICAg
IHZrQ21kU2V0RnJhZ21lbnRTaGFkaW5nUmF0ZUtIUiA9IChQRk5fdmtDbWRTZXRGcmFnbWVudFNo
YWRpbmdSYXRlS0hSKWxvYWQoY29udGV4dCwgInZrQ21kU2V0RnJhZ21lbnRTaGFkaW5nUmF0ZUtI
UiIpOworI2VuZGlmIC8qIGRlZmluZWQoVktfS0hSX2ZyYWdtZW50X3NoYWRpbmdfcmF0ZSkgKi8K
ICNpZiBkZWZpbmVkKFZLX0tIUl9nZXRfbWVtb3J5X3JlcXVpcmVtZW50czIpCiAgICAgdmtHZXRC
dWZmZXJNZW1vcnlSZXF1aXJlbWVudHMyS0hSID0gKFBGTl92a0dldEJ1ZmZlck1lbW9yeVJlcXVp
cmVtZW50czJLSFIpbG9hZChjb250ZXh0LCAidmtHZXRCdWZmZXJNZW1vcnlSZXF1aXJlbWVudHMy
S0hSIik7CiAgICAgdmtHZXRJbWFnZU1lbW9yeVJlcXVpcmVtZW50czJLSFIgPSAoUEZOX3ZrR2V0
SW1hZ2VNZW1vcnlSZXF1aXJlbWVudHMyS0hSKWxvYWQoY29udGV4dCwgInZrR2V0SW1hZ2VNZW1v
cnlSZXF1aXJlbWVudHMyS0hSIik7CkBAIC02MjMsNiArODA3LDExIEBAIHN0YXRpYyB2b2lkIHZv
bGtHZW5Mb2FkRGV2aWNlKHZvaWQqIGNvbnRleHQsIFBGTl92a1ZvaWRGdW5jdGlvbiAoKmxvYWQp
KHZvaWQqLCBjCiAjaWYgZGVmaW5lZChWS19LSFJfbWFpbnRlbmFuY2UzKQogICAgIHZrR2V0RGVz
Y3JpcHRvclNldExheW91dFN1cHBvcnRLSFIgPSAoUEZOX3ZrR2V0RGVzY3JpcHRvclNldExheW91
dFN1cHBvcnRLSFIpbG9hZChjb250ZXh0LCAidmtHZXREZXNjcmlwdG9yU2V0TGF5b3V0U3VwcG9y
dEtIUiIpOwogI2VuZGlmIC8qIGRlZmluZWQoVktfS0hSX21haW50ZW5hbmNlMykgKi8KKyNpZiBk
ZWZpbmVkKFZLX0tIUl9tYWludGVuYW5jZTQpCisgICAgdmtHZXREZXZpY2VCdWZmZXJNZW1vcnlS
ZXF1aXJlbWVudHNLSFIgPSAoUEZOX3ZrR2V0RGV2aWNlQnVmZmVyTWVtb3J5UmVxdWlyZW1lbnRz
S0hSKWxvYWQoY29udGV4dCwgInZrR2V0RGV2aWNlQnVmZmVyTWVtb3J5UmVxdWlyZW1lbnRzS0hS
Iik7CisgICAgdmtHZXREZXZpY2VJbWFnZU1lbW9yeVJlcXVpcmVtZW50c0tIUiA9IChQRk5fdmtH
ZXREZXZpY2VJbWFnZU1lbW9yeVJlcXVpcmVtZW50c0tIUilsb2FkKGNvbnRleHQsICJ2a0dldERl
dmljZUltYWdlTWVtb3J5UmVxdWlyZW1lbnRzS0hSIik7CisgICAgdmtHZXREZXZpY2VJbWFnZVNw
YXJzZU1lbW9yeVJlcXVpcmVtZW50c0tIUiA9IChQRk5fdmtHZXREZXZpY2VJbWFnZVNwYXJzZU1l
bW9yeVJlcXVpcmVtZW50c0tIUilsb2FkKGNvbnRleHQsICJ2a0dldERldmljZUltYWdlU3BhcnNl
TWVtb3J5UmVxdWlyZW1lbnRzS0hSIik7CisjZW5kaWYgLyogZGVmaW5lZChWS19LSFJfbWFpbnRl
bmFuY2U0KSAqLwogI2lmIGRlZmluZWQoVktfS0hSX3BlcmZvcm1hbmNlX3F1ZXJ5KQogICAgIHZr
QWNxdWlyZVByb2ZpbGluZ0xvY2tLSFIgPSAoUEZOX3ZrQWNxdWlyZVByb2ZpbGluZ0xvY2tLSFIp
bG9hZChjb250ZXh0LCAidmtBY3F1aXJlUHJvZmlsaW5nTG9ja0tIUiIpOwogICAgIHZrUmVsZWFz
ZVByb2ZpbGluZ0xvY2tLSFIgPSAoUEZOX3ZrUmVsZWFzZVByb2ZpbGluZ0xvY2tLSFIpbG9hZChj
b250ZXh0LCAidmtSZWxlYXNlUHJvZmlsaW5nTG9ja0tIUiIpOwpAQCAtNjMyLDkgKzgyMSwyMSBA
QCBzdGF0aWMgdm9pZCB2b2xrR2VuTG9hZERldmljZSh2b2lkKiBjb250ZXh0LCBQRk5fdmtWb2lk
RnVuY3Rpb24gKCpsb2FkKSh2b2lkKiwgYwogICAgIHZrR2V0UGlwZWxpbmVFeGVjdXRhYmxlUHJv
cGVydGllc0tIUiA9IChQRk5fdmtHZXRQaXBlbGluZUV4ZWN1dGFibGVQcm9wZXJ0aWVzS0hSKWxv
YWQoY29udGV4dCwgInZrR2V0UGlwZWxpbmVFeGVjdXRhYmxlUHJvcGVydGllc0tIUiIpOwogICAg
IHZrR2V0UGlwZWxpbmVFeGVjdXRhYmxlU3RhdGlzdGljc0tIUiA9IChQRk5fdmtHZXRQaXBlbGlu
ZUV4ZWN1dGFibGVTdGF0aXN0aWNzS0hSKWxvYWQoY29udGV4dCwgInZrR2V0UGlwZWxpbmVFeGVj
dXRhYmxlU3RhdGlzdGljc0tIUiIpOwogI2VuZGlmIC8qIGRlZmluZWQoVktfS0hSX3BpcGVsaW5l
X2V4ZWN1dGFibGVfcHJvcGVydGllcykgKi8KKyNpZiBkZWZpbmVkKFZLX0tIUl9wcmVzZW50X3dh
aXQpCisgICAgdmtXYWl0Rm9yUHJlc2VudEtIUiA9IChQRk5fdmtXYWl0Rm9yUHJlc2VudEtIUils
b2FkKGNvbnRleHQsICJ2a1dhaXRGb3JQcmVzZW50S0hSIik7CisjZW5kaWYgLyogZGVmaW5lZChW
S19LSFJfcHJlc2VudF93YWl0KSAqLwogI2lmIGRlZmluZWQoVktfS0hSX3B1c2hfZGVzY3JpcHRv
cikKICAgICB2a0NtZFB1c2hEZXNjcmlwdG9yU2V0S0hSID0gKFBGTl92a0NtZFB1c2hEZXNjcmlw
dG9yU2V0S0hSKWxvYWQoY29udGV4dCwgInZrQ21kUHVzaERlc2NyaXB0b3JTZXRLSFIiKTsKICNl
bmRpZiAvKiBkZWZpbmVkKFZLX0tIUl9wdXNoX2Rlc2NyaXB0b3IpICovCisjaWYgZGVmaW5lZChW
S19LSFJfcmF5X3RyYWNpbmdfcGlwZWxpbmUpCisgICAgdmtDbWRTZXRSYXlUcmFjaW5nUGlwZWxp
bmVTdGFja1NpemVLSFIgPSAoUEZOX3ZrQ21kU2V0UmF5VHJhY2luZ1BpcGVsaW5lU3RhY2tTaXpl
S0hSKWxvYWQoY29udGV4dCwgInZrQ21kU2V0UmF5VHJhY2luZ1BpcGVsaW5lU3RhY2tTaXplS0hS
Iik7CisgICAgdmtDbWRUcmFjZVJheXNJbmRpcmVjdEtIUiA9IChQRk5fdmtDbWRUcmFjZVJheXNJ
bmRpcmVjdEtIUilsb2FkKGNvbnRleHQsICJ2a0NtZFRyYWNlUmF5c0luZGlyZWN0S0hSIik7Cisg
ICAgdmtDbWRUcmFjZVJheXNLSFIgPSAoUEZOX3ZrQ21kVHJhY2VSYXlzS0hSKWxvYWQoY29udGV4
dCwgInZrQ21kVHJhY2VSYXlzS0hSIik7CisgICAgdmtDcmVhdGVSYXlUcmFjaW5nUGlwZWxpbmVz
S0hSID0gKFBGTl92a0NyZWF0ZVJheVRyYWNpbmdQaXBlbGluZXNLSFIpbG9hZChjb250ZXh0LCAi
dmtDcmVhdGVSYXlUcmFjaW5nUGlwZWxpbmVzS0hSIik7CisgICAgdmtHZXRSYXlUcmFjaW5nQ2Fw
dHVyZVJlcGxheVNoYWRlckdyb3VwSGFuZGxlc0tIUiA9IChQRk5fdmtHZXRSYXlUcmFjaW5nQ2Fw
dHVyZVJlcGxheVNoYWRlckdyb3VwSGFuZGxlc0tIUilsb2FkKGNvbnRleHQsICJ2a0dldFJheVRy
YWNpbmdDYXB0dXJlUmVwbGF5U2hhZGVyR3JvdXBIYW5kbGVzS0hSIik7CisgICAgdmtHZXRSYXlU
cmFjaW5nU2hhZGVyR3JvdXBIYW5kbGVzS0hSID0gKFBGTl92a0dldFJheVRyYWNpbmdTaGFkZXJH
cm91cEhhbmRsZXNLSFIpbG9hZChjb250ZXh0LCAidmtHZXRSYXlUcmFjaW5nU2hhZGVyR3JvdXBI
YW5kbGVzS0hSIik7CisgICAgdmtHZXRSYXlUcmFjaW5nU2hhZGVyR3JvdXBTdGFja1NpemVLSFIg
PSAoUEZOX3ZrR2V0UmF5VHJhY2luZ1NoYWRlckdyb3VwU3RhY2tTaXplS0hSKWxvYWQoY29udGV4
dCwgInZrR2V0UmF5VHJhY2luZ1NoYWRlckdyb3VwU3RhY2tTaXplS0hSIik7CisjZW5kaWYgLyog
ZGVmaW5lZChWS19LSFJfcmF5X3RyYWNpbmdfcGlwZWxpbmUpICovCiAjaWYgZGVmaW5lZChWS19L
SFJfc2FtcGxlcl95Y2Jjcl9jb252ZXJzaW9uKQogICAgIHZrQ3JlYXRlU2FtcGxlclljYmNyQ29u
dmVyc2lvbktIUiA9IChQRk5fdmtDcmVhdGVTYW1wbGVyWWNiY3JDb252ZXJzaW9uS0hSKWxvYWQo
Y29udGV4dCwgInZrQ3JlYXRlU2FtcGxlclljYmNyQ29udmVyc2lvbktIUiIpOwogICAgIHZrRGVz
dHJveVNhbXBsZXJZY2JjckNvbnZlcnNpb25LSFIgPSAoUEZOX3ZrRGVzdHJveVNhbXBsZXJZY2Jj
ckNvbnZlcnNpb25LSFIpbG9hZChjb250ZXh0LCAidmtEZXN0cm95U2FtcGxlclljYmNyQ29udmVy
c2lvbktIUiIpOwpAQCAtNjQ5LDIyICs4NTAsNTIgQEAgc3RhdGljIHZvaWQgdm9sa0dlbkxvYWRE
ZXZpY2Uodm9pZCogY29udGV4dCwgUEZOX3ZrVm9pZEZ1bmN0aW9uICgqbG9hZCkodm9pZCosIGMK
ICAgICB2a0dldFN3YXBjaGFpbkltYWdlc0tIUiA9IChQRk5fdmtHZXRTd2FwY2hhaW5JbWFnZXNL
SFIpbG9hZChjb250ZXh0LCAidmtHZXRTd2FwY2hhaW5JbWFnZXNLSFIiKTsKICAgICB2a1F1ZXVl
UHJlc2VudEtIUiA9IChQRk5fdmtRdWV1ZVByZXNlbnRLSFIpbG9hZChjb250ZXh0LCAidmtRdWV1
ZVByZXNlbnRLSFIiKTsKICNlbmRpZiAvKiBkZWZpbmVkKFZLX0tIUl9zd2FwY2hhaW4pICovCisj
aWYgZGVmaW5lZChWS19LSFJfc3luY2hyb25pemF0aW9uMikKKyAgICB2a0NtZFBpcGVsaW5lQmFy
cmllcjJLSFIgPSAoUEZOX3ZrQ21kUGlwZWxpbmVCYXJyaWVyMktIUilsb2FkKGNvbnRleHQsICJ2
a0NtZFBpcGVsaW5lQmFycmllcjJLSFIiKTsKKyAgICB2a0NtZFJlc2V0RXZlbnQyS0hSID0gKFBG
Tl92a0NtZFJlc2V0RXZlbnQyS0hSKWxvYWQoY29udGV4dCwgInZrQ21kUmVzZXRFdmVudDJLSFIi
KTsKKyAgICB2a0NtZFNldEV2ZW50MktIUiA9IChQRk5fdmtDbWRTZXRFdmVudDJLSFIpbG9hZChj
b250ZXh0LCAidmtDbWRTZXRFdmVudDJLSFIiKTsKKyAgICB2a0NtZFdhaXRFdmVudHMyS0hSID0g
KFBGTl92a0NtZFdhaXRFdmVudHMyS0hSKWxvYWQoY29udGV4dCwgInZrQ21kV2FpdEV2ZW50czJL
SFIiKTsKKyAgICB2a0NtZFdyaXRlVGltZXN0YW1wMktIUiA9IChQRk5fdmtDbWRXcml0ZVRpbWVz
dGFtcDJLSFIpbG9hZChjb250ZXh0LCAidmtDbWRXcml0ZVRpbWVzdGFtcDJLSFIiKTsKKyAgICB2
a1F1ZXVlU3VibWl0MktIUiA9IChQRk5fdmtRdWV1ZVN1Ym1pdDJLSFIpbG9hZChjb250ZXh0LCAi
dmtRdWV1ZVN1Ym1pdDJLSFIiKTsKKyNlbmRpZiAvKiBkZWZpbmVkKFZLX0tIUl9zeW5jaHJvbml6
YXRpb24yKSAqLworI2lmIGRlZmluZWQoVktfS0hSX3N5bmNocm9uaXphdGlvbjIpICYmIGRlZmlu
ZWQoVktfQU1EX2J1ZmZlcl9tYXJrZXIpCisgICAgdmtDbWRXcml0ZUJ1ZmZlck1hcmtlcjJBTUQg
PSAoUEZOX3ZrQ21kV3JpdGVCdWZmZXJNYXJrZXIyQU1EKWxvYWQoY29udGV4dCwgInZrQ21kV3Jp
dGVCdWZmZXJNYXJrZXIyQU1EIik7CisjZW5kaWYgLyogZGVmaW5lZChWS19LSFJfc3luY2hyb25p
emF0aW9uMikgJiYgZGVmaW5lZChWS19BTURfYnVmZmVyX21hcmtlcikgKi8KKyNpZiBkZWZpbmVk
KFZLX0tIUl9zeW5jaHJvbml6YXRpb24yKSAmJiBkZWZpbmVkKFZLX05WX2RldmljZV9kaWFnbm9z
dGljX2NoZWNrcG9pbnRzKQorICAgIHZrR2V0UXVldWVDaGVja3BvaW50RGF0YTJOViA9IChQRk5f
dmtHZXRRdWV1ZUNoZWNrcG9pbnREYXRhMk5WKWxvYWQoY29udGV4dCwgInZrR2V0UXVldWVDaGVj
a3BvaW50RGF0YTJOViIpOworI2VuZGlmIC8qIGRlZmluZWQoVktfS0hSX3N5bmNocm9uaXphdGlv
bjIpICYmIGRlZmluZWQoVktfTlZfZGV2aWNlX2RpYWdub3N0aWNfY2hlY2twb2ludHMpICovCiAj
aWYgZGVmaW5lZChWS19LSFJfdGltZWxpbmVfc2VtYXBob3JlKQogICAgIHZrR2V0U2VtYXBob3Jl
Q291bnRlclZhbHVlS0hSID0gKFBGTl92a0dldFNlbWFwaG9yZUNvdW50ZXJWYWx1ZUtIUilsb2Fk
KGNvbnRleHQsICJ2a0dldFNlbWFwaG9yZUNvdW50ZXJWYWx1ZUtIUiIpOwogICAgIHZrU2lnbmFs
U2VtYXBob3JlS0hSID0gKFBGTl92a1NpZ25hbFNlbWFwaG9yZUtIUilsb2FkKGNvbnRleHQsICJ2
a1NpZ25hbFNlbWFwaG9yZUtIUiIpOwogICAgIHZrV2FpdFNlbWFwaG9yZXNLSFIgPSAoUEZOX3Zr
V2FpdFNlbWFwaG9yZXNLSFIpbG9hZChjb250ZXh0LCAidmtXYWl0U2VtYXBob3Jlc0tIUiIpOwog
I2VuZGlmIC8qIGRlZmluZWQoVktfS0hSX3RpbWVsaW5lX3NlbWFwaG9yZSkgKi8KLSNpZiBkZWZp
bmVkKFZLX05WWF9kZXZpY2VfZ2VuZXJhdGVkX2NvbW1hbmRzKQotICAgIHZrQ21kUHJvY2Vzc0Nv
bW1hbmRzTlZYID0gKFBGTl92a0NtZFByb2Nlc3NDb21tYW5kc05WWClsb2FkKGNvbnRleHQsICJ2
a0NtZFByb2Nlc3NDb21tYW5kc05WWCIpOwotICAgIHZrQ21kUmVzZXJ2ZVNwYWNlRm9yQ29tbWFu
ZHNOVlggPSAoUEZOX3ZrQ21kUmVzZXJ2ZVNwYWNlRm9yQ29tbWFuZHNOVlgpbG9hZChjb250ZXh0
LCAidmtDbWRSZXNlcnZlU3BhY2VGb3JDb21tYW5kc05WWCIpOwotICAgIHZrQ3JlYXRlSW5kaXJl
Y3RDb21tYW5kc0xheW91dE5WWCA9IChQRk5fdmtDcmVhdGVJbmRpcmVjdENvbW1hbmRzTGF5b3V0
TlZYKWxvYWQoY29udGV4dCwgInZrQ3JlYXRlSW5kaXJlY3RDb21tYW5kc0xheW91dE5WWCIpOwot
ICAgIHZrQ3JlYXRlT2JqZWN0VGFibGVOVlggPSAoUEZOX3ZrQ3JlYXRlT2JqZWN0VGFibGVOVlgp
bG9hZChjb250ZXh0LCAidmtDcmVhdGVPYmplY3RUYWJsZU5WWCIpOwotICAgIHZrRGVzdHJveUlu
ZGlyZWN0Q29tbWFuZHNMYXlvdXROVlggPSAoUEZOX3ZrRGVzdHJveUluZGlyZWN0Q29tbWFuZHNM
YXlvdXROVlgpbG9hZChjb250ZXh0LCAidmtEZXN0cm95SW5kaXJlY3RDb21tYW5kc0xheW91dE5W
WCIpOwotICAgIHZrRGVzdHJveU9iamVjdFRhYmxlTlZYID0gKFBGTl92a0Rlc3Ryb3lPYmplY3RU
YWJsZU5WWClsb2FkKGNvbnRleHQsICJ2a0Rlc3Ryb3lPYmplY3RUYWJsZU5WWCIpOwotICAgIHZr
UmVnaXN0ZXJPYmplY3RzTlZYID0gKFBGTl92a1JlZ2lzdGVyT2JqZWN0c05WWClsb2FkKGNvbnRl
eHQsICJ2a1JlZ2lzdGVyT2JqZWN0c05WWCIpOwotICAgIHZrVW5yZWdpc3Rlck9iamVjdHNOVlgg
PSAoUEZOX3ZrVW5yZWdpc3Rlck9iamVjdHNOVlgpbG9hZChjb250ZXh0LCAidmtVbnJlZ2lzdGVy
T2JqZWN0c05WWCIpOwotI2VuZGlmIC8qIGRlZmluZWQoVktfTlZYX2RldmljZV9nZW5lcmF0ZWRf
Y29tbWFuZHMpICovCisjaWYgZGVmaW5lZChWS19LSFJfdmlkZW9fZGVjb2RlX3F1ZXVlKQorICAg
IHZrQ21kRGVjb2RlVmlkZW9LSFIgPSAoUEZOX3ZrQ21kRGVjb2RlVmlkZW9LSFIpbG9hZChjb250
ZXh0LCAidmtDbWREZWNvZGVWaWRlb0tIUiIpOworI2VuZGlmIC8qIGRlZmluZWQoVktfS0hSX3Zp
ZGVvX2RlY29kZV9xdWV1ZSkgKi8KKyNpZiBkZWZpbmVkKFZLX0tIUl92aWRlb19lbmNvZGVfcXVl
dWUpCisgICAgdmtDbWRFbmNvZGVWaWRlb0tIUiA9IChQRk5fdmtDbWRFbmNvZGVWaWRlb0tIUils
b2FkKGNvbnRleHQsICJ2a0NtZEVuY29kZVZpZGVvS0hSIik7CisjZW5kaWYgLyogZGVmaW5lZChW
S19LSFJfdmlkZW9fZW5jb2RlX3F1ZXVlKSAqLworI2lmIGRlZmluZWQoVktfS0hSX3ZpZGVvX3F1
ZXVlKQorICAgIHZrQmluZFZpZGVvU2Vzc2lvbk1lbW9yeUtIUiA9IChQRk5fdmtCaW5kVmlkZW9T
ZXNzaW9uTWVtb3J5S0hSKWxvYWQoY29udGV4dCwgInZrQmluZFZpZGVvU2Vzc2lvbk1lbW9yeUtI
UiIpOworICAgIHZrQ21kQmVnaW5WaWRlb0NvZGluZ0tIUiA9IChQRk5fdmtDbWRCZWdpblZpZGVv
Q29kaW5nS0hSKWxvYWQoY29udGV4dCwgInZrQ21kQmVnaW5WaWRlb0NvZGluZ0tIUiIpOworICAg
IHZrQ21kQ29udHJvbFZpZGVvQ29kaW5nS0hSID0gKFBGTl92a0NtZENvbnRyb2xWaWRlb0NvZGlu
Z0tIUilsb2FkKGNvbnRleHQsICJ2a0NtZENvbnRyb2xWaWRlb0NvZGluZ0tIUiIpOworICAgIHZr
Q21kRW5kVmlkZW9Db2RpbmdLSFIgPSAoUEZOX3ZrQ21kRW5kVmlkZW9Db2RpbmdLSFIpbG9hZChj
b250ZXh0LCAidmtDbWRFbmRWaWRlb0NvZGluZ0tIUiIpOworICAgIHZrQ3JlYXRlVmlkZW9TZXNz
aW9uS0hSID0gKFBGTl92a0NyZWF0ZVZpZGVvU2Vzc2lvbktIUilsb2FkKGNvbnRleHQsICJ2a0Ny
ZWF0ZVZpZGVvU2Vzc2lvbktIUiIpOworICAgIHZrQ3JlYXRlVmlkZW9TZXNzaW9uUGFyYW1ldGVy
c0tIUiA9IChQRk5fdmtDcmVhdGVWaWRlb1Nlc3Npb25QYXJhbWV0ZXJzS0hSKWxvYWQoY29udGV4
dCwgInZrQ3JlYXRlVmlkZW9TZXNzaW9uUGFyYW1ldGVyc0tIUiIpOworICAgIHZrRGVzdHJveVZp
ZGVvU2Vzc2lvbktIUiA9IChQRk5fdmtEZXN0cm95VmlkZW9TZXNzaW9uS0hSKWxvYWQoY29udGV4
dCwgInZrRGVzdHJveVZpZGVvU2Vzc2lvbktIUiIpOworICAgIHZrRGVzdHJveVZpZGVvU2Vzc2lv
blBhcmFtZXRlcnNLSFIgPSAoUEZOX3ZrRGVzdHJveVZpZGVvU2Vzc2lvblBhcmFtZXRlcnNLSFIp
bG9hZChjb250ZXh0LCAidmtEZXN0cm95VmlkZW9TZXNzaW9uUGFyYW1ldGVyc0tIUiIpOworICAg
IHZrR2V0VmlkZW9TZXNzaW9uTWVtb3J5UmVxdWlyZW1lbnRzS0hSID0gKFBGTl92a0dldFZpZGVv
U2Vzc2lvbk1lbW9yeVJlcXVpcmVtZW50c0tIUilsb2FkKGNvbnRleHQsICJ2a0dldFZpZGVvU2Vz
c2lvbk1lbW9yeVJlcXVpcmVtZW50c0tIUiIpOworICAgIHZrVXBkYXRlVmlkZW9TZXNzaW9uUGFy
YW1ldGVyc0tIUiA9IChQRk5fdmtVcGRhdGVWaWRlb1Nlc3Npb25QYXJhbWV0ZXJzS0hSKWxvYWQo
Y29udGV4dCwgInZrVXBkYXRlVmlkZW9TZXNzaW9uUGFyYW1ldGVyc0tIUiIpOworI2VuZGlmIC8q
IGRlZmluZWQoVktfS0hSX3ZpZGVvX3F1ZXVlKSAqLworI2lmIGRlZmluZWQoVktfTlZYX2JpbmFy
eV9pbXBvcnQpCisgICAgdmtDbWRDdUxhdW5jaEtlcm5lbE5WWCA9IChQRk5fdmtDbWRDdUxhdW5j
aEtlcm5lbE5WWClsb2FkKGNvbnRleHQsICJ2a0NtZEN1TGF1bmNoS2VybmVsTlZYIik7CisgICAg
dmtDcmVhdGVDdUZ1bmN0aW9uTlZYID0gKFBGTl92a0NyZWF0ZUN1RnVuY3Rpb25OVlgpbG9hZChj
b250ZXh0LCAidmtDcmVhdGVDdUZ1bmN0aW9uTlZYIik7CisgICAgdmtDcmVhdGVDdU1vZHVsZU5W
WCA9IChQRk5fdmtDcmVhdGVDdU1vZHVsZU5WWClsb2FkKGNvbnRleHQsICJ2a0NyZWF0ZUN1TW9k
dWxlTlZYIik7CisgICAgdmtEZXN0cm95Q3VGdW5jdGlvbk5WWCA9IChQRk5fdmtEZXN0cm95Q3VG
dW5jdGlvbk5WWClsb2FkKGNvbnRleHQsICJ2a0Rlc3Ryb3lDdUZ1bmN0aW9uTlZYIik7CisgICAg
dmtEZXN0cm95Q3VNb2R1bGVOVlggPSAoUEZOX3ZrRGVzdHJveUN1TW9kdWxlTlZYKWxvYWQoY29u
dGV4dCwgInZrRGVzdHJveUN1TW9kdWxlTlZYIik7CisjZW5kaWYgLyogZGVmaW5lZChWS19OVlhf
YmluYXJ5X2ltcG9ydCkgKi8KICNpZiBkZWZpbmVkKFZLX05WWF9pbWFnZV92aWV3X2hhbmRsZSkK
KyAgICB2a0dldEltYWdlVmlld0FkZHJlc3NOVlggPSAoUEZOX3ZrR2V0SW1hZ2VWaWV3QWRkcmVz
c05WWClsb2FkKGNvbnRleHQsICJ2a0dldEltYWdlVmlld0FkZHJlc3NOVlgiKTsKICAgICB2a0dl
dEltYWdlVmlld0hhbmRsZU5WWCA9IChQRk5fdmtHZXRJbWFnZVZpZXdIYW5kbGVOVlgpbG9hZChj
b250ZXh0LCAidmtHZXRJbWFnZVZpZXdIYW5kbGVOVlgiKTsKICNlbmRpZiAvKiBkZWZpbmVkKFZL
X05WWF9pbWFnZV92aWV3X2hhbmRsZSkgKi8KICNpZiBkZWZpbmVkKFZLX05WX2NsaXBfc3BhY2Vf
d19zY2FsaW5nKQpAQCAtNjc0LDkgKzkwNSwyMyBAQCBzdGF0aWMgdm9pZCB2b2xrR2VuTG9hZERl
dmljZSh2b2lkKiBjb250ZXh0LCBQRk5fdmtWb2lkRnVuY3Rpb24gKCpsb2FkKSh2b2lkKiwgYwog
ICAgIHZrQ21kU2V0Q2hlY2twb2ludE5WID0gKFBGTl92a0NtZFNldENoZWNrcG9pbnROVilsb2Fk
KGNvbnRleHQsICJ2a0NtZFNldENoZWNrcG9pbnROViIpOwogICAgIHZrR2V0UXVldWVDaGVja3Bv
aW50RGF0YU5WID0gKFBGTl92a0dldFF1ZXVlQ2hlY2twb2ludERhdGFOVilsb2FkKGNvbnRleHQs
ICJ2a0dldFF1ZXVlQ2hlY2twb2ludERhdGFOViIpOwogI2VuZGlmIC8qIGRlZmluZWQoVktfTlZf
ZGV2aWNlX2RpYWdub3N0aWNfY2hlY2twb2ludHMpICovCisjaWYgZGVmaW5lZChWS19OVl9kZXZp
Y2VfZ2VuZXJhdGVkX2NvbW1hbmRzKQorICAgIHZrQ21kQmluZFBpcGVsaW5lU2hhZGVyR3JvdXBO
ViA9IChQRk5fdmtDbWRCaW5kUGlwZWxpbmVTaGFkZXJHcm91cE5WKWxvYWQoY29udGV4dCwgInZr
Q21kQmluZFBpcGVsaW5lU2hhZGVyR3JvdXBOViIpOworICAgIHZrQ21kRXhlY3V0ZUdlbmVyYXRl
ZENvbW1hbmRzTlYgPSAoUEZOX3ZrQ21kRXhlY3V0ZUdlbmVyYXRlZENvbW1hbmRzTlYpbG9hZChj
b250ZXh0LCAidmtDbWRFeGVjdXRlR2VuZXJhdGVkQ29tbWFuZHNOViIpOworICAgIHZrQ21kUHJl
cHJvY2Vzc0dlbmVyYXRlZENvbW1hbmRzTlYgPSAoUEZOX3ZrQ21kUHJlcHJvY2Vzc0dlbmVyYXRl
ZENvbW1hbmRzTlYpbG9hZChjb250ZXh0LCAidmtDbWRQcmVwcm9jZXNzR2VuZXJhdGVkQ29tbWFu
ZHNOViIpOworICAgIHZrQ3JlYXRlSW5kaXJlY3RDb21tYW5kc0xheW91dE5WID0gKFBGTl92a0Ny
ZWF0ZUluZGlyZWN0Q29tbWFuZHNMYXlvdXROVilsb2FkKGNvbnRleHQsICJ2a0NyZWF0ZUluZGly
ZWN0Q29tbWFuZHNMYXlvdXROViIpOworICAgIHZrRGVzdHJveUluZGlyZWN0Q29tbWFuZHNMYXlv
dXROViA9IChQRk5fdmtEZXN0cm95SW5kaXJlY3RDb21tYW5kc0xheW91dE5WKWxvYWQoY29udGV4
dCwgInZrRGVzdHJveUluZGlyZWN0Q29tbWFuZHNMYXlvdXROViIpOworICAgIHZrR2V0R2VuZXJh
dGVkQ29tbWFuZHNNZW1vcnlSZXF1aXJlbWVudHNOViA9IChQRk5fdmtHZXRHZW5lcmF0ZWRDb21t
YW5kc01lbW9yeVJlcXVpcmVtZW50c05WKWxvYWQoY29udGV4dCwgInZrR2V0R2VuZXJhdGVkQ29t
bWFuZHNNZW1vcnlSZXF1aXJlbWVudHNOViIpOworI2VuZGlmIC8qIGRlZmluZWQoVktfTlZfZGV2
aWNlX2dlbmVyYXRlZF9jb21tYW5kcykgKi8KKyNpZiBkZWZpbmVkKFZLX05WX2V4dGVybmFsX21l
bW9yeV9yZG1hKQorICAgIHZrR2V0TWVtb3J5UmVtb3RlQWRkcmVzc05WID0gKFBGTl92a0dldE1l
bW9yeVJlbW90ZUFkZHJlc3NOVilsb2FkKGNvbnRleHQsICJ2a0dldE1lbW9yeVJlbW90ZUFkZHJl
c3NOViIpOworI2VuZGlmIC8qIGRlZmluZWQoVktfTlZfZXh0ZXJuYWxfbWVtb3J5X3JkbWEpICov
CiAjaWYgZGVmaW5lZChWS19OVl9leHRlcm5hbF9tZW1vcnlfd2luMzIpCiAgICAgdmtHZXRNZW1v
cnlXaW4zMkhhbmRsZU5WID0gKFBGTl92a0dldE1lbW9yeVdpbjMySGFuZGxlTlYpbG9hZChjb250
ZXh0LCAidmtHZXRNZW1vcnlXaW4zMkhhbmRsZU5WIik7CiAjZW5kaWYgLyogZGVmaW5lZChWS19O
Vl9leHRlcm5hbF9tZW1vcnlfd2luMzIpICovCisjaWYgZGVmaW5lZChWS19OVl9mcmFnbWVudF9z
aGFkaW5nX3JhdGVfZW51bXMpCisgICAgdmtDbWRTZXRGcmFnbWVudFNoYWRpbmdSYXRlRW51bU5W
ID0gKFBGTl92a0NtZFNldEZyYWdtZW50U2hhZGluZ1JhdGVFbnVtTlYpbG9hZChjb250ZXh0LCAi
dmtDbWRTZXRGcmFnbWVudFNoYWRpbmdSYXRlRW51bU5WIik7CisjZW5kaWYgLyogZGVmaW5lZChW
S19OVl9mcmFnbWVudF9zaGFkaW5nX3JhdGVfZW51bXMpICovCiAjaWYgZGVmaW5lZChWS19OVl9t
ZXNoX3NoYWRlcikKICAgICB2a0NtZERyYXdNZXNoVGFza3NJbmRpcmVjdENvdW50TlYgPSAoUEZO
X3ZrQ21kRHJhd01lc2hUYXNrc0luZGlyZWN0Q291bnROVilsb2FkKGNvbnRleHQsICJ2a0NtZERy
YXdNZXNoVGFza3NJbmRpcmVjdENvdW50TlYiKTsKICAgICB2a0NtZERyYXdNZXNoVGFza3NJbmRp
cmVjdE5WID0gKFBGTl92a0NtZERyYXdNZXNoVGFza3NJbmRpcmVjdE5WKWxvYWQoY29udGV4dCwg
InZrQ21kRHJhd01lc2hUYXNrc0luZGlyZWN0TlYiKTsKQEAgLTcwNyw5ICs5NTIsOSBAQCBzdGF0
aWMgdm9pZCB2b2xrR2VuTG9hZERldmljZSh2b2lkKiBjb250ZXh0LCBQRk5fdmtWb2lkRnVuY3Rp
b24gKCpsb2FkKSh2b2lkKiwgYwogI2lmIChkZWZpbmVkKFZLX0VYVF9mdWxsX3NjcmVlbl9leGNs
dXNpdmUpICYmIGRlZmluZWQoVktfS0hSX2RldmljZV9ncm91cCkpIHx8IChkZWZpbmVkKFZLX0VY
VF9mdWxsX3NjcmVlbl9leGNsdXNpdmUpICYmIGRlZmluZWQoVktfVkVSU0lPTl8xXzEpKQogICAg
IHZrR2V0RGV2aWNlR3JvdXBTdXJmYWNlUHJlc2VudE1vZGVzMkVYVCA9IChQRk5fdmtHZXREZXZp
Y2VHcm91cFN1cmZhY2VQcmVzZW50TW9kZXMyRVhUKWxvYWQoY29udGV4dCwgInZrR2V0RGV2aWNl
R3JvdXBTdXJmYWNlUHJlc2VudE1vZGVzMkVYVCIpOwogI2VuZGlmIC8qIChkZWZpbmVkKFZLX0VY
VF9mdWxsX3NjcmVlbl9leGNsdXNpdmUpICYmIGRlZmluZWQoVktfS0hSX2RldmljZV9ncm91cCkp
IHx8IChkZWZpbmVkKFZLX0VYVF9mdWxsX3NjcmVlbl9leGNsdXNpdmUpICYmIGRlZmluZWQoVktf
VkVSU0lPTl8xXzEpKSAqLwotI2lmIChkZWZpbmVkKFZLX0tIUl9kZXNjcmlwdG9yX3VwZGF0ZV90
ZW1wbGF0ZSkgJiYgZGVmaW5lZChWS19LSFJfcHVzaF9kZXNjcmlwdG9yKSkgfHwgKGRlZmluZWQo
VktfS0hSX3B1c2hfZGVzY3JpcHRvcikgJiYgZGVmaW5lZChWS19WRVJTSU9OXzFfMSkpCisjaWYg
KGRlZmluZWQoVktfS0hSX2Rlc2NyaXB0b3JfdXBkYXRlX3RlbXBsYXRlKSAmJiBkZWZpbmVkKFZL
X0tIUl9wdXNoX2Rlc2NyaXB0b3IpKSB8fCAoZGVmaW5lZChWS19LSFJfcHVzaF9kZXNjcmlwdG9y
KSAmJiBkZWZpbmVkKFZLX1ZFUlNJT05fMV8xKSkgfHwgKGRlZmluZWQoVktfS0hSX3B1c2hfZGVz
Y3JpcHRvcikgJiYgZGVmaW5lZChWS19LSFJfZGVzY3JpcHRvcl91cGRhdGVfdGVtcGxhdGUpKQog
ICAgIHZrQ21kUHVzaERlc2NyaXB0b3JTZXRXaXRoVGVtcGxhdGVLSFIgPSAoUEZOX3ZrQ21kUHVz
aERlc2NyaXB0b3JTZXRXaXRoVGVtcGxhdGVLSFIpbG9hZChjb250ZXh0LCAidmtDbWRQdXNoRGVz
Y3JpcHRvclNldFdpdGhUZW1wbGF0ZUtIUiIpOwotI2VuZGlmIC8qIChkZWZpbmVkKFZLX0tIUl9k
ZXNjcmlwdG9yX3VwZGF0ZV90ZW1wbGF0ZSkgJiYgZGVmaW5lZChWS19LSFJfcHVzaF9kZXNjcmlw
dG9yKSkgfHwgKGRlZmluZWQoVktfS0hSX3B1c2hfZGVzY3JpcHRvcikgJiYgZGVmaW5lZChWS19W
RVJTSU9OXzFfMSkpICovCisjZW5kaWYgLyogKGRlZmluZWQoVktfS0hSX2Rlc2NyaXB0b3JfdXBk
YXRlX3RlbXBsYXRlKSAmJiBkZWZpbmVkKFZLX0tIUl9wdXNoX2Rlc2NyaXB0b3IpKSB8fCAoZGVm
aW5lZChWS19LSFJfcHVzaF9kZXNjcmlwdG9yKSAmJiBkZWZpbmVkKFZLX1ZFUlNJT05fMV8xKSkg
fHwgKGRlZmluZWQoVktfS0hSX3B1c2hfZGVzY3JpcHRvcikgJiYgZGVmaW5lZChWS19LSFJfZGVz
Y3JpcHRvcl91cGRhdGVfdGVtcGxhdGUpKSAqLwogI2lmIChkZWZpbmVkKFZLX0tIUl9kZXZpY2Vf
Z3JvdXApICYmIGRlZmluZWQoVktfS0hSX3N1cmZhY2UpKSB8fCAoZGVmaW5lZChWS19LSFJfc3dh
cGNoYWluKSAmJiBkZWZpbmVkKFZLX1ZFUlNJT05fMV8xKSkKICAgICB2a0dldERldmljZUdyb3Vw
UHJlc2VudENhcGFiaWxpdGllc0tIUiA9IChQRk5fdmtHZXREZXZpY2VHcm91cFByZXNlbnRDYXBh
YmlsaXRpZXNLSFIpbG9hZChjb250ZXh0LCAidmtHZXREZXZpY2VHcm91cFByZXNlbnRDYXBhYmls
aXRpZXNLSFIiKTsKICAgICB2a0dldERldmljZUdyb3VwU3VyZmFjZVByZXNlbnRNb2Rlc0tIUiA9
IChQRk5fdmtHZXREZXZpY2VHcm91cFN1cmZhY2VQcmVzZW50TW9kZXNLSFIpbG9hZChjb250ZXh0
LCAidmtHZXREZXZpY2VHcm91cFN1cmZhY2VQcmVzZW50TW9kZXNLSFIiKTsKQEAgLTg2Myw2ICsx
MTA4LDU5IEBAIHN0YXRpYyB2b2lkIHZvbGtHZW5Mb2FkRGV2aWNlVGFibGUoc3RydWN0IFZvbGtE
ZXZpY2VUYWJsZSogdGFibGUsIHZvaWQqIGNvbnRleHQsCiAgICAgdGFibGUtPnZrVHJpbUNvbW1h
bmRQb29sID0gKFBGTl92a1RyaW1Db21tYW5kUG9vbClsb2FkKGNvbnRleHQsICJ2a1RyaW1Db21t
YW5kUG9vbCIpOwogICAgIHRhYmxlLT52a1VwZGF0ZURlc2NyaXB0b3JTZXRXaXRoVGVtcGxhdGUg
PSAoUEZOX3ZrVXBkYXRlRGVzY3JpcHRvclNldFdpdGhUZW1wbGF0ZSlsb2FkKGNvbnRleHQsICJ2
a1VwZGF0ZURlc2NyaXB0b3JTZXRXaXRoVGVtcGxhdGUiKTsKICNlbmRpZiAvKiBkZWZpbmVkKFZL
X1ZFUlNJT05fMV8xKSAqLworI2lmIGRlZmluZWQoVktfVkVSU0lPTl8xXzIpCisgICAgdGFibGUt
PnZrQ21kQmVnaW5SZW5kZXJQYXNzMiA9IChQRk5fdmtDbWRCZWdpblJlbmRlclBhc3MyKWxvYWQo
Y29udGV4dCwgInZrQ21kQmVnaW5SZW5kZXJQYXNzMiIpOworICAgIHRhYmxlLT52a0NtZERyYXdJ
bmRleGVkSW5kaXJlY3RDb3VudCA9IChQRk5fdmtDbWREcmF3SW5kZXhlZEluZGlyZWN0Q291bnQp
bG9hZChjb250ZXh0LCAidmtDbWREcmF3SW5kZXhlZEluZGlyZWN0Q291bnQiKTsKKyAgICB0YWJs
ZS0+dmtDbWREcmF3SW5kaXJlY3RDb3VudCA9IChQRk5fdmtDbWREcmF3SW5kaXJlY3RDb3VudCls
b2FkKGNvbnRleHQsICJ2a0NtZERyYXdJbmRpcmVjdENvdW50Iik7CisgICAgdGFibGUtPnZrQ21k
RW5kUmVuZGVyUGFzczIgPSAoUEZOX3ZrQ21kRW5kUmVuZGVyUGFzczIpbG9hZChjb250ZXh0LCAi
dmtDbWRFbmRSZW5kZXJQYXNzMiIpOworICAgIHRhYmxlLT52a0NtZE5leHRTdWJwYXNzMiA9IChQ
Rk5fdmtDbWROZXh0U3VicGFzczIpbG9hZChjb250ZXh0LCAidmtDbWROZXh0U3VicGFzczIiKTsK
KyAgICB0YWJsZS0+dmtDcmVhdGVSZW5kZXJQYXNzMiA9IChQRk5fdmtDcmVhdGVSZW5kZXJQYXNz
Milsb2FkKGNvbnRleHQsICJ2a0NyZWF0ZVJlbmRlclBhc3MyIik7CisgICAgdGFibGUtPnZrR2V0
QnVmZmVyRGV2aWNlQWRkcmVzcyA9IChQRk5fdmtHZXRCdWZmZXJEZXZpY2VBZGRyZXNzKWxvYWQo
Y29udGV4dCwgInZrR2V0QnVmZmVyRGV2aWNlQWRkcmVzcyIpOworICAgIHRhYmxlLT52a0dldEJ1
ZmZlck9wYXF1ZUNhcHR1cmVBZGRyZXNzID0gKFBGTl92a0dldEJ1ZmZlck9wYXF1ZUNhcHR1cmVB
ZGRyZXNzKWxvYWQoY29udGV4dCwgInZrR2V0QnVmZmVyT3BhcXVlQ2FwdHVyZUFkZHJlc3MiKTsK
KyAgICB0YWJsZS0+dmtHZXREZXZpY2VNZW1vcnlPcGFxdWVDYXB0dXJlQWRkcmVzcyA9IChQRk5f
dmtHZXREZXZpY2VNZW1vcnlPcGFxdWVDYXB0dXJlQWRkcmVzcylsb2FkKGNvbnRleHQsICJ2a0dl
dERldmljZU1lbW9yeU9wYXF1ZUNhcHR1cmVBZGRyZXNzIik7CisgICAgdGFibGUtPnZrR2V0U2Vt
YXBob3JlQ291bnRlclZhbHVlID0gKFBGTl92a0dldFNlbWFwaG9yZUNvdW50ZXJWYWx1ZSlsb2Fk
KGNvbnRleHQsICJ2a0dldFNlbWFwaG9yZUNvdW50ZXJWYWx1ZSIpOworICAgIHRhYmxlLT52a1Jl
c2V0UXVlcnlQb29sID0gKFBGTl92a1Jlc2V0UXVlcnlQb29sKWxvYWQoY29udGV4dCwgInZrUmVz
ZXRRdWVyeVBvb2wiKTsKKyAgICB0YWJsZS0+dmtTaWduYWxTZW1hcGhvcmUgPSAoUEZOX3ZrU2ln
bmFsU2VtYXBob3JlKWxvYWQoY29udGV4dCwgInZrU2lnbmFsU2VtYXBob3JlIik7CisgICAgdGFi
bGUtPnZrV2FpdFNlbWFwaG9yZXMgPSAoUEZOX3ZrV2FpdFNlbWFwaG9yZXMpbG9hZChjb250ZXh0
LCAidmtXYWl0U2VtYXBob3JlcyIpOworI2VuZGlmIC8qIGRlZmluZWQoVktfVkVSU0lPTl8xXzIp
ICovCisjaWYgZGVmaW5lZChWS19WRVJTSU9OXzFfMykKKyAgICB0YWJsZS0+dmtDbWRCZWdpblJl
bmRlcmluZyA9IChQRk5fdmtDbWRCZWdpblJlbmRlcmluZylsb2FkKGNvbnRleHQsICJ2a0NtZEJl
Z2luUmVuZGVyaW5nIik7CisgICAgdGFibGUtPnZrQ21kQmluZFZlcnRleEJ1ZmZlcnMyID0gKFBG
Tl92a0NtZEJpbmRWZXJ0ZXhCdWZmZXJzMilsb2FkKGNvbnRleHQsICJ2a0NtZEJpbmRWZXJ0ZXhC
dWZmZXJzMiIpOworICAgIHRhYmxlLT52a0NtZEJsaXRJbWFnZTIgPSAoUEZOX3ZrQ21kQmxpdElt
YWdlMilsb2FkKGNvbnRleHQsICJ2a0NtZEJsaXRJbWFnZTIiKTsKKyAgICB0YWJsZS0+dmtDbWRD
b3B5QnVmZmVyMiA9IChQRk5fdmtDbWRDb3B5QnVmZmVyMilsb2FkKGNvbnRleHQsICJ2a0NtZENv
cHlCdWZmZXIyIik7CisgICAgdGFibGUtPnZrQ21kQ29weUJ1ZmZlclRvSW1hZ2UyID0gKFBGTl92
a0NtZENvcHlCdWZmZXJUb0ltYWdlMilsb2FkKGNvbnRleHQsICJ2a0NtZENvcHlCdWZmZXJUb0lt
YWdlMiIpOworICAgIHRhYmxlLT52a0NtZENvcHlJbWFnZTIgPSAoUEZOX3ZrQ21kQ29weUltYWdl
Milsb2FkKGNvbnRleHQsICJ2a0NtZENvcHlJbWFnZTIiKTsKKyAgICB0YWJsZS0+dmtDbWRDb3B5
SW1hZ2VUb0J1ZmZlcjIgPSAoUEZOX3ZrQ21kQ29weUltYWdlVG9CdWZmZXIyKWxvYWQoY29udGV4
dCwgInZrQ21kQ29weUltYWdlVG9CdWZmZXIyIik7CisgICAgdGFibGUtPnZrQ21kRW5kUmVuZGVy
aW5nID0gKFBGTl92a0NtZEVuZFJlbmRlcmluZylsb2FkKGNvbnRleHQsICJ2a0NtZEVuZFJlbmRl
cmluZyIpOworICAgIHRhYmxlLT52a0NtZFBpcGVsaW5lQmFycmllcjIgPSAoUEZOX3ZrQ21kUGlw
ZWxpbmVCYXJyaWVyMilsb2FkKGNvbnRleHQsICJ2a0NtZFBpcGVsaW5lQmFycmllcjIiKTsKKyAg
ICB0YWJsZS0+dmtDbWRSZXNldEV2ZW50MiA9IChQRk5fdmtDbWRSZXNldEV2ZW50Milsb2FkKGNv
bnRleHQsICJ2a0NtZFJlc2V0RXZlbnQyIik7CisgICAgdGFibGUtPnZrQ21kUmVzb2x2ZUltYWdl
MiA9IChQRk5fdmtDbWRSZXNvbHZlSW1hZ2UyKWxvYWQoY29udGV4dCwgInZrQ21kUmVzb2x2ZUlt
YWdlMiIpOworICAgIHRhYmxlLT52a0NtZFNldEN1bGxNb2RlID0gKFBGTl92a0NtZFNldEN1bGxN
b2RlKWxvYWQoY29udGV4dCwgInZrQ21kU2V0Q3VsbE1vZGUiKTsKKyAgICB0YWJsZS0+dmtDbWRT
ZXREZXB0aEJpYXNFbmFibGUgPSAoUEZOX3ZrQ21kU2V0RGVwdGhCaWFzRW5hYmxlKWxvYWQoY29u
dGV4dCwgInZrQ21kU2V0RGVwdGhCaWFzRW5hYmxlIik7CisgICAgdGFibGUtPnZrQ21kU2V0RGVw
dGhCb3VuZHNUZXN0RW5hYmxlID0gKFBGTl92a0NtZFNldERlcHRoQm91bmRzVGVzdEVuYWJsZSls
b2FkKGNvbnRleHQsICJ2a0NtZFNldERlcHRoQm91bmRzVGVzdEVuYWJsZSIpOworICAgIHRhYmxl
LT52a0NtZFNldERlcHRoQ29tcGFyZU9wID0gKFBGTl92a0NtZFNldERlcHRoQ29tcGFyZU9wKWxv
YWQoY29udGV4dCwgInZrQ21kU2V0RGVwdGhDb21wYXJlT3AiKTsKKyAgICB0YWJsZS0+dmtDbWRT
ZXREZXB0aFRlc3RFbmFibGUgPSAoUEZOX3ZrQ21kU2V0RGVwdGhUZXN0RW5hYmxlKWxvYWQoY29u
dGV4dCwgInZrQ21kU2V0RGVwdGhUZXN0RW5hYmxlIik7CisgICAgdGFibGUtPnZrQ21kU2V0RGVw
dGhXcml0ZUVuYWJsZSA9IChQRk5fdmtDbWRTZXREZXB0aFdyaXRlRW5hYmxlKWxvYWQoY29udGV4
dCwgInZrQ21kU2V0RGVwdGhXcml0ZUVuYWJsZSIpOworICAgIHRhYmxlLT52a0NtZFNldEV2ZW50
MiA9IChQRk5fdmtDbWRTZXRFdmVudDIpbG9hZChjb250ZXh0LCAidmtDbWRTZXRFdmVudDIiKTsK
KyAgICB0YWJsZS0+dmtDbWRTZXRGcm9udEZhY2UgPSAoUEZOX3ZrQ21kU2V0RnJvbnRGYWNlKWxv
YWQoY29udGV4dCwgInZrQ21kU2V0RnJvbnRGYWNlIik7CisgICAgdGFibGUtPnZrQ21kU2V0UHJp
bWl0aXZlUmVzdGFydEVuYWJsZSA9IChQRk5fdmtDbWRTZXRQcmltaXRpdmVSZXN0YXJ0RW5hYmxl
KWxvYWQoY29udGV4dCwgInZrQ21kU2V0UHJpbWl0aXZlUmVzdGFydEVuYWJsZSIpOworICAgIHRh
YmxlLT52a0NtZFNldFByaW1pdGl2ZVRvcG9sb2d5ID0gKFBGTl92a0NtZFNldFByaW1pdGl2ZVRv
cG9sb2d5KWxvYWQoY29udGV4dCwgInZrQ21kU2V0UHJpbWl0aXZlVG9wb2xvZ3kiKTsKKyAgICB0
YWJsZS0+dmtDbWRTZXRSYXN0ZXJpemVyRGlzY2FyZEVuYWJsZSA9IChQRk5fdmtDbWRTZXRSYXN0
ZXJpemVyRGlzY2FyZEVuYWJsZSlsb2FkKGNvbnRleHQsICJ2a0NtZFNldFJhc3Rlcml6ZXJEaXNj
YXJkRW5hYmxlIik7CisgICAgdGFibGUtPnZrQ21kU2V0U2Npc3NvcldpdGhDb3VudCA9IChQRk5f
dmtDbWRTZXRTY2lzc29yV2l0aENvdW50KWxvYWQoY29udGV4dCwgInZrQ21kU2V0U2Npc3Nvcldp
dGhDb3VudCIpOworICAgIHRhYmxlLT52a0NtZFNldFN0ZW5jaWxPcCA9IChQRk5fdmtDbWRTZXRT
dGVuY2lsT3ApbG9hZChjb250ZXh0LCAidmtDbWRTZXRTdGVuY2lsT3AiKTsKKyAgICB0YWJsZS0+
dmtDbWRTZXRTdGVuY2lsVGVzdEVuYWJsZSA9IChQRk5fdmtDbWRTZXRTdGVuY2lsVGVzdEVuYWJs
ZSlsb2FkKGNvbnRleHQsICJ2a0NtZFNldFN0ZW5jaWxUZXN0RW5hYmxlIik7CisgICAgdGFibGUt
PnZrQ21kU2V0Vmlld3BvcnRXaXRoQ291bnQgPSAoUEZOX3ZrQ21kU2V0Vmlld3BvcnRXaXRoQ291
bnQpbG9hZChjb250ZXh0LCAidmtDbWRTZXRWaWV3cG9ydFdpdGhDb3VudCIpOworICAgIHRhYmxl
LT52a0NtZFdhaXRFdmVudHMyID0gKFBGTl92a0NtZFdhaXRFdmVudHMyKWxvYWQoY29udGV4dCwg
InZrQ21kV2FpdEV2ZW50czIiKTsKKyAgICB0YWJsZS0+dmtDbWRXcml0ZVRpbWVzdGFtcDIgPSAo
UEZOX3ZrQ21kV3JpdGVUaW1lc3RhbXAyKWxvYWQoY29udGV4dCwgInZrQ21kV3JpdGVUaW1lc3Rh
bXAyIik7CisgICAgdGFibGUtPnZrQ3JlYXRlUHJpdmF0ZURhdGFTbG90ID0gKFBGTl92a0NyZWF0
ZVByaXZhdGVEYXRhU2xvdClsb2FkKGNvbnRleHQsICJ2a0NyZWF0ZVByaXZhdGVEYXRhU2xvdCIp
OworICAgIHRhYmxlLT52a0Rlc3Ryb3lQcml2YXRlRGF0YVNsb3QgPSAoUEZOX3ZrRGVzdHJveVBy
aXZhdGVEYXRhU2xvdClsb2FkKGNvbnRleHQsICJ2a0Rlc3Ryb3lQcml2YXRlRGF0YVNsb3QiKTsK
KyAgICB0YWJsZS0+dmtHZXREZXZpY2VCdWZmZXJNZW1vcnlSZXF1aXJlbWVudHMgPSAoUEZOX3Zr
R2V0RGV2aWNlQnVmZmVyTWVtb3J5UmVxdWlyZW1lbnRzKWxvYWQoY29udGV4dCwgInZrR2V0RGV2
aWNlQnVmZmVyTWVtb3J5UmVxdWlyZW1lbnRzIik7CisgICAgdGFibGUtPnZrR2V0RGV2aWNlSW1h
Z2VNZW1vcnlSZXF1aXJlbWVudHMgPSAoUEZOX3ZrR2V0RGV2aWNlSW1hZ2VNZW1vcnlSZXF1aXJl
bWVudHMpbG9hZChjb250ZXh0LCAidmtHZXREZXZpY2VJbWFnZU1lbW9yeVJlcXVpcmVtZW50cyIp
OworICAgIHRhYmxlLT52a0dldERldmljZUltYWdlU3BhcnNlTWVtb3J5UmVxdWlyZW1lbnRzID0g
KFBGTl92a0dldERldmljZUltYWdlU3BhcnNlTWVtb3J5UmVxdWlyZW1lbnRzKWxvYWQoY29udGV4
dCwgInZrR2V0RGV2aWNlSW1hZ2VTcGFyc2VNZW1vcnlSZXF1aXJlbWVudHMiKTsKKyAgICB0YWJs
ZS0+dmtHZXRQcml2YXRlRGF0YSA9IChQRk5fdmtHZXRQcml2YXRlRGF0YSlsb2FkKGNvbnRleHQs
ICJ2a0dldFByaXZhdGVEYXRhIik7CisgICAgdGFibGUtPnZrUXVldWVTdWJtaXQyID0gKFBGTl92
a1F1ZXVlU3VibWl0Milsb2FkKGNvbnRleHQsICJ2a1F1ZXVlU3VibWl0MiIpOworICAgIHRhYmxl
LT52a1NldFByaXZhdGVEYXRhID0gKFBGTl92a1NldFByaXZhdGVEYXRhKWxvYWQoY29udGV4dCwg
InZrU2V0UHJpdmF0ZURhdGEiKTsKKyNlbmRpZiAvKiBkZWZpbmVkKFZLX1ZFUlNJT05fMV8zKSAq
LwogI2lmIGRlZmluZWQoVktfQU1EX2J1ZmZlcl9tYXJrZXIpCiAgICAgdGFibGUtPnZrQ21kV3Jp
dGVCdWZmZXJNYXJrZXJBTUQgPSAoUEZOX3ZrQ21kV3JpdGVCdWZmZXJNYXJrZXJBTUQpbG9hZChj
b250ZXh0LCAidmtDbWRXcml0ZUJ1ZmZlck1hcmtlckFNRCIpOwogI2VuZGlmIC8qIGRlZmluZWQo
VktfQU1EX2J1ZmZlcl9tYXJrZXIpICovCkBAIC04ODYsNiArMTE4NCw5IEBAIHN0YXRpYyB2b2lk
IHZvbGtHZW5Mb2FkRGV2aWNlVGFibGUoc3RydWN0IFZvbGtEZXZpY2VUYWJsZSogdGFibGUsIHZv
aWQqIGNvbnRleHQsCiAjaWYgZGVmaW5lZChWS19FWFRfY2FsaWJyYXRlZF90aW1lc3RhbXBzKQog
ICAgIHRhYmxlLT52a0dldENhbGlicmF0ZWRUaW1lc3RhbXBzRVhUID0gKFBGTl92a0dldENhbGli
cmF0ZWRUaW1lc3RhbXBzRVhUKWxvYWQoY29udGV4dCwgInZrR2V0Q2FsaWJyYXRlZFRpbWVzdGFt
cHNFWFQiKTsKICNlbmRpZiAvKiBkZWZpbmVkKFZLX0VYVF9jYWxpYnJhdGVkX3RpbWVzdGFtcHMp
ICovCisjaWYgZGVmaW5lZChWS19FWFRfY29sb3Jfd3JpdGVfZW5hYmxlKQorICAgIHRhYmxlLT52
a0NtZFNldENvbG9yV3JpdGVFbmFibGVFWFQgPSAoUEZOX3ZrQ21kU2V0Q29sb3JXcml0ZUVuYWJs
ZUVYVClsb2FkKGNvbnRleHQsICJ2a0NtZFNldENvbG9yV3JpdGVFbmFibGVFWFQiKTsKKyNlbmRp
ZiAvKiBkZWZpbmVkKFZLX0VYVF9jb2xvcl93cml0ZV9lbmFibGUpICovCiAjaWYgZGVmaW5lZChW
S19FWFRfY29uZGl0aW9uYWxfcmVuZGVyaW5nKQogICAgIHRhYmxlLT52a0NtZEJlZ2luQ29uZGl0
aW9uYWxSZW5kZXJpbmdFWFQgPSAoUEZOX3ZrQ21kQmVnaW5Db25kaXRpb25hbFJlbmRlcmluZ0VY
VClsb2FkKGNvbnRleHQsICJ2a0NtZEJlZ2luQ29uZGl0aW9uYWxSZW5kZXJpbmdFWFQiKTsKICAg
ICB0YWJsZS0+dmtDbWRFbmRDb25kaXRpb25hbFJlbmRlcmluZ0VYVCA9IChQRk5fdmtDbWRFbmRD
b25kaXRpb25hbFJlbmRlcmluZ0VYVClsb2FkKGNvbnRleHQsICJ2a0NtZEVuZENvbmRpdGlvbmFs
UmVuZGVyaW5nRVhUIik7CkBAIC05MDYsNiArMTIwNywyNyBAQCBzdGF0aWMgdm9pZCB2b2xrR2Vu
TG9hZERldmljZVRhYmxlKHN0cnVjdCBWb2xrRGV2aWNlVGFibGUqIHRhYmxlLCB2b2lkKiBjb250
ZXh0LAogICAgIHRhYmxlLT52a1JlZ2lzdGVyRGV2aWNlRXZlbnRFWFQgPSAoUEZOX3ZrUmVnaXN0
ZXJEZXZpY2VFdmVudEVYVClsb2FkKGNvbnRleHQsICJ2a1JlZ2lzdGVyRGV2aWNlRXZlbnRFWFQi
KTsKICAgICB0YWJsZS0+dmtSZWdpc3RlckRpc3BsYXlFdmVudEVYVCA9IChQRk5fdmtSZWdpc3Rl
ckRpc3BsYXlFdmVudEVYVClsb2FkKGNvbnRleHQsICJ2a1JlZ2lzdGVyRGlzcGxheUV2ZW50RVhU
Iik7CiAjZW5kaWYgLyogZGVmaW5lZChWS19FWFRfZGlzcGxheV9jb250cm9sKSAqLworI2lmIGRl
ZmluZWQoVktfRVhUX2V4dGVuZGVkX2R5bmFtaWNfc3RhdGUpCisgICAgdGFibGUtPnZrQ21kQmlu
ZFZlcnRleEJ1ZmZlcnMyRVhUID0gKFBGTl92a0NtZEJpbmRWZXJ0ZXhCdWZmZXJzMkVYVClsb2Fk
KGNvbnRleHQsICJ2a0NtZEJpbmRWZXJ0ZXhCdWZmZXJzMkVYVCIpOworICAgIHRhYmxlLT52a0Nt
ZFNldEN1bGxNb2RlRVhUID0gKFBGTl92a0NtZFNldEN1bGxNb2RlRVhUKWxvYWQoY29udGV4dCwg
InZrQ21kU2V0Q3VsbE1vZGVFWFQiKTsKKyAgICB0YWJsZS0+dmtDbWRTZXREZXB0aEJvdW5kc1Rl
c3RFbmFibGVFWFQgPSAoUEZOX3ZrQ21kU2V0RGVwdGhCb3VuZHNUZXN0RW5hYmxlRVhUKWxvYWQo
Y29udGV4dCwgInZrQ21kU2V0RGVwdGhCb3VuZHNUZXN0RW5hYmxlRVhUIik7CisgICAgdGFibGUt
PnZrQ21kU2V0RGVwdGhDb21wYXJlT3BFWFQgPSAoUEZOX3ZrQ21kU2V0RGVwdGhDb21wYXJlT3BF
WFQpbG9hZChjb250ZXh0LCAidmtDbWRTZXREZXB0aENvbXBhcmVPcEVYVCIpOworICAgIHRhYmxl
LT52a0NtZFNldERlcHRoVGVzdEVuYWJsZUVYVCA9IChQRk5fdmtDbWRTZXREZXB0aFRlc3RFbmFi
bGVFWFQpbG9hZChjb250ZXh0LCAidmtDbWRTZXREZXB0aFRlc3RFbmFibGVFWFQiKTsKKyAgICB0
YWJsZS0+dmtDbWRTZXREZXB0aFdyaXRlRW5hYmxlRVhUID0gKFBGTl92a0NtZFNldERlcHRoV3Jp
dGVFbmFibGVFWFQpbG9hZChjb250ZXh0LCAidmtDbWRTZXREZXB0aFdyaXRlRW5hYmxlRVhUIik7
CisgICAgdGFibGUtPnZrQ21kU2V0RnJvbnRGYWNlRVhUID0gKFBGTl92a0NtZFNldEZyb250RmFj
ZUVYVClsb2FkKGNvbnRleHQsICJ2a0NtZFNldEZyb250RmFjZUVYVCIpOworICAgIHRhYmxlLT52
a0NtZFNldFByaW1pdGl2ZVRvcG9sb2d5RVhUID0gKFBGTl92a0NtZFNldFByaW1pdGl2ZVRvcG9s
b2d5RVhUKWxvYWQoY29udGV4dCwgInZrQ21kU2V0UHJpbWl0aXZlVG9wb2xvZ3lFWFQiKTsKKyAg
ICB0YWJsZS0+dmtDbWRTZXRTY2lzc29yV2l0aENvdW50RVhUID0gKFBGTl92a0NtZFNldFNjaXNz
b3JXaXRoQ291bnRFWFQpbG9hZChjb250ZXh0LCAidmtDbWRTZXRTY2lzc29yV2l0aENvdW50RVhU
Iik7CisgICAgdGFibGUtPnZrQ21kU2V0U3RlbmNpbE9wRVhUID0gKFBGTl92a0NtZFNldFN0ZW5j
aWxPcEVYVClsb2FkKGNvbnRleHQsICJ2a0NtZFNldFN0ZW5jaWxPcEVYVCIpOworICAgIHRhYmxl
LT52a0NtZFNldFN0ZW5jaWxUZXN0RW5hYmxlRVhUID0gKFBGTl92a0NtZFNldFN0ZW5jaWxUZXN0
RW5hYmxlRVhUKWxvYWQoY29udGV4dCwgInZrQ21kU2V0U3RlbmNpbFRlc3RFbmFibGVFWFQiKTsK
KyAgICB0YWJsZS0+dmtDbWRTZXRWaWV3cG9ydFdpdGhDb3VudEVYVCA9IChQRk5fdmtDbWRTZXRW
aWV3cG9ydFdpdGhDb3VudEVYVClsb2FkKGNvbnRleHQsICJ2a0NtZFNldFZpZXdwb3J0V2l0aENv
dW50RVhUIik7CisjZW5kaWYgLyogZGVmaW5lZChWS19FWFRfZXh0ZW5kZWRfZHluYW1pY19zdGF0
ZSkgKi8KKyNpZiBkZWZpbmVkKFZLX0VYVF9leHRlbmRlZF9keW5hbWljX3N0YXRlMikKKyAgICB0
YWJsZS0+dmtDbWRTZXREZXB0aEJpYXNFbmFibGVFWFQgPSAoUEZOX3ZrQ21kU2V0RGVwdGhCaWFz
RW5hYmxlRVhUKWxvYWQoY29udGV4dCwgInZrQ21kU2V0RGVwdGhCaWFzRW5hYmxlRVhUIik7Cisg
ICAgdGFibGUtPnZrQ21kU2V0TG9naWNPcEVYVCA9IChQRk5fdmtDbWRTZXRMb2dpY09wRVhUKWxv
YWQoY29udGV4dCwgInZrQ21kU2V0TG9naWNPcEVYVCIpOworICAgIHRhYmxlLT52a0NtZFNldFBh
dGNoQ29udHJvbFBvaW50c0VYVCA9IChQRk5fdmtDbWRTZXRQYXRjaENvbnRyb2xQb2ludHNFWFQp
bG9hZChjb250ZXh0LCAidmtDbWRTZXRQYXRjaENvbnRyb2xQb2ludHNFWFQiKTsKKyAgICB0YWJs
ZS0+dmtDbWRTZXRQcmltaXRpdmVSZXN0YXJ0RW5hYmxlRVhUID0gKFBGTl92a0NtZFNldFByaW1p
dGl2ZVJlc3RhcnRFbmFibGVFWFQpbG9hZChjb250ZXh0LCAidmtDbWRTZXRQcmltaXRpdmVSZXN0
YXJ0RW5hYmxlRVhUIik7CisgICAgdGFibGUtPnZrQ21kU2V0UmFzdGVyaXplckRpc2NhcmRFbmFi
bGVFWFQgPSAoUEZOX3ZrQ21kU2V0UmFzdGVyaXplckRpc2NhcmRFbmFibGVFWFQpbG9hZChjb250
ZXh0LCAidmtDbWRTZXRSYXN0ZXJpemVyRGlzY2FyZEVuYWJsZUVYVCIpOworI2VuZGlmIC8qIGRl
ZmluZWQoVktfRVhUX2V4dGVuZGVkX2R5bmFtaWNfc3RhdGUyKSAqLwogI2lmIGRlZmluZWQoVktf
RVhUX2V4dGVybmFsX21lbW9yeV9ob3N0KQogICAgIHRhYmxlLT52a0dldE1lbW9yeUhvc3RQb2lu
dGVyUHJvcGVydGllc0VYVCA9IChQRk5fdmtHZXRNZW1vcnlIb3N0UG9pbnRlclByb3BlcnRpZXNF
WFQpbG9hZChjb250ZXh0LCAidmtHZXRNZW1vcnlIb3N0UG9pbnRlclByb3BlcnRpZXNFWFQiKTsK
ICNlbmRpZiAvKiBkZWZpbmVkKFZLX0VYVF9leHRlcm5hbF9tZW1vcnlfaG9zdCkgKi8KQEAgLTky
NSw2ICsxMjQ3LDE5IEBAIHN0YXRpYyB2b2lkIHZvbGtHZW5Mb2FkRGV2aWNlVGFibGUoc3RydWN0
IFZvbGtEZXZpY2VUYWJsZSogdGFibGUsIHZvaWQqIGNvbnRleHQsCiAjaWYgZGVmaW5lZChWS19F
WFRfbGluZV9yYXN0ZXJpemF0aW9uKQogICAgIHRhYmxlLT52a0NtZFNldExpbmVTdGlwcGxlRVhU
ID0gKFBGTl92a0NtZFNldExpbmVTdGlwcGxlRVhUKWxvYWQoY29udGV4dCwgInZrQ21kU2V0TGlu
ZVN0aXBwbGVFWFQiKTsKICNlbmRpZiAvKiBkZWZpbmVkKFZLX0VYVF9saW5lX3Jhc3Rlcml6YXRp
b24pICovCisjaWYgZGVmaW5lZChWS19FWFRfbXVsdGlfZHJhdykKKyAgICB0YWJsZS0+dmtDbWRE
cmF3TXVsdGlFWFQgPSAoUEZOX3ZrQ21kRHJhd011bHRpRVhUKWxvYWQoY29udGV4dCwgInZrQ21k
RHJhd011bHRpRVhUIik7CisgICAgdGFibGUtPnZrQ21kRHJhd011bHRpSW5kZXhlZEVYVCA9IChQ
Rk5fdmtDbWREcmF3TXVsdGlJbmRleGVkRVhUKWxvYWQoY29udGV4dCwgInZrQ21kRHJhd011bHRp
SW5kZXhlZEVYVCIpOworI2VuZGlmIC8qIGRlZmluZWQoVktfRVhUX211bHRpX2RyYXcpICovCisj
aWYgZGVmaW5lZChWS19FWFRfcGFnZWFibGVfZGV2aWNlX2xvY2FsX21lbW9yeSkKKyAgICB0YWJs
ZS0+dmtTZXREZXZpY2VNZW1vcnlQcmlvcml0eUVYVCA9IChQRk5fdmtTZXREZXZpY2VNZW1vcnlQ
cmlvcml0eUVYVClsb2FkKGNvbnRleHQsICJ2a1NldERldmljZU1lbW9yeVByaW9yaXR5RVhUIik7
CisjZW5kaWYgLyogZGVmaW5lZChWS19FWFRfcGFnZWFibGVfZGV2aWNlX2xvY2FsX21lbW9yeSkg
Ki8KKyNpZiBkZWZpbmVkKFZLX0VYVF9wcml2YXRlX2RhdGEpCisgICAgdGFibGUtPnZrQ3JlYXRl
UHJpdmF0ZURhdGFTbG90RVhUID0gKFBGTl92a0NyZWF0ZVByaXZhdGVEYXRhU2xvdEVYVClsb2Fk
KGNvbnRleHQsICJ2a0NyZWF0ZVByaXZhdGVEYXRhU2xvdEVYVCIpOworICAgIHRhYmxlLT52a0Rl
c3Ryb3lQcml2YXRlRGF0YVNsb3RFWFQgPSAoUEZOX3ZrRGVzdHJveVByaXZhdGVEYXRhU2xvdEVY
VClsb2FkKGNvbnRleHQsICJ2a0Rlc3Ryb3lQcml2YXRlRGF0YVNsb3RFWFQiKTsKKyAgICB0YWJs
ZS0+dmtHZXRQcml2YXRlRGF0YUVYVCA9IChQRk5fdmtHZXRQcml2YXRlRGF0YUVYVClsb2FkKGNv
bnRleHQsICJ2a0dldFByaXZhdGVEYXRhRVhUIik7CisgICAgdGFibGUtPnZrU2V0UHJpdmF0ZURh
dGFFWFQgPSAoUEZOX3ZrU2V0UHJpdmF0ZURhdGFFWFQpbG9hZChjb250ZXh0LCAidmtTZXRQcml2
YXRlRGF0YUVYVCIpOworI2VuZGlmIC8qIGRlZmluZWQoVktfRVhUX3ByaXZhdGVfZGF0YSkgKi8K
ICNpZiBkZWZpbmVkKFZLX0VYVF9zYW1wbGVfbG9jYXRpb25zKQogICAgIHRhYmxlLT52a0NtZFNl
dFNhbXBsZUxvY2F0aW9uc0VYVCA9IChQRk5fdmtDbWRTZXRTYW1wbGVMb2NhdGlvbnNFWFQpbG9h
ZChjb250ZXh0LCAidmtDbWRTZXRTYW1wbGVMb2NhdGlvbnNFWFQiKTsKICNlbmRpZiAvKiBkZWZp
bmVkKFZLX0VYVF9zYW1wbGVfbG9jYXRpb25zKSAqLwpAQCAtOTQyLDEwICsxMjc3LDM1IEBAIHN0
YXRpYyB2b2lkIHZvbGtHZW5Mb2FkRGV2aWNlVGFibGUoc3RydWN0IFZvbGtEZXZpY2VUYWJsZSog
dGFibGUsIHZvaWQqIGNvbnRleHQsCiAgICAgdGFibGUtPnZrR2V0VmFsaWRhdGlvbkNhY2hlRGF0
YUVYVCA9IChQRk5fdmtHZXRWYWxpZGF0aW9uQ2FjaGVEYXRhRVhUKWxvYWQoY29udGV4dCwgInZr
R2V0VmFsaWRhdGlvbkNhY2hlRGF0YUVYVCIpOwogICAgIHRhYmxlLT52a01lcmdlVmFsaWRhdGlv
bkNhY2hlc0VYVCA9IChQRk5fdmtNZXJnZVZhbGlkYXRpb25DYWNoZXNFWFQpbG9hZChjb250ZXh0
LCAidmtNZXJnZVZhbGlkYXRpb25DYWNoZXNFWFQiKTsKICNlbmRpZiAvKiBkZWZpbmVkKFZLX0VY
VF92YWxpZGF0aW9uX2NhY2hlKSAqLworI2lmIGRlZmluZWQoVktfRVhUX3ZlcnRleF9pbnB1dF9k
eW5hbWljX3N0YXRlKQorICAgIHRhYmxlLT52a0NtZFNldFZlcnRleElucHV0RVhUID0gKFBGTl92
a0NtZFNldFZlcnRleElucHV0RVhUKWxvYWQoY29udGV4dCwgInZrQ21kU2V0VmVydGV4SW5wdXRF
WFQiKTsKKyNlbmRpZiAvKiBkZWZpbmVkKFZLX0VYVF92ZXJ0ZXhfaW5wdXRfZHluYW1pY19zdGF0
ZSkgKi8KKyNpZiBkZWZpbmVkKFZLX0ZVQ0hTSUFfYnVmZmVyX2NvbGxlY3Rpb24pCisgICAgdGFi
bGUtPnZrQ3JlYXRlQnVmZmVyQ29sbGVjdGlvbkZVQ0hTSUEgPSAoUEZOX3ZrQ3JlYXRlQnVmZmVy
Q29sbGVjdGlvbkZVQ0hTSUEpbG9hZChjb250ZXh0LCAidmtDcmVhdGVCdWZmZXJDb2xsZWN0aW9u
RlVDSFNJQSIpOworICAgIHRhYmxlLT52a0Rlc3Ryb3lCdWZmZXJDb2xsZWN0aW9uRlVDSFNJQSA9
IChQRk5fdmtEZXN0cm95QnVmZmVyQ29sbGVjdGlvbkZVQ0hTSUEpbG9hZChjb250ZXh0LCAidmtE
ZXN0cm95QnVmZmVyQ29sbGVjdGlvbkZVQ0hTSUEiKTsKKyAgICB0YWJsZS0+dmtHZXRCdWZmZXJD
b2xsZWN0aW9uUHJvcGVydGllc0ZVQ0hTSUEgPSAoUEZOX3ZrR2V0QnVmZmVyQ29sbGVjdGlvblBy
b3BlcnRpZXNGVUNIU0lBKWxvYWQoY29udGV4dCwgInZrR2V0QnVmZmVyQ29sbGVjdGlvblByb3Bl
cnRpZXNGVUNIU0lBIik7CisgICAgdGFibGUtPnZrU2V0QnVmZmVyQ29sbGVjdGlvbkJ1ZmZlckNv
bnN0cmFpbnRzRlVDSFNJQSA9IChQRk5fdmtTZXRCdWZmZXJDb2xsZWN0aW9uQnVmZmVyQ29uc3Ry
YWludHNGVUNIU0lBKWxvYWQoY29udGV4dCwgInZrU2V0QnVmZmVyQ29sbGVjdGlvbkJ1ZmZlckNv
bnN0cmFpbnRzRlVDSFNJQSIpOworICAgIHRhYmxlLT52a1NldEJ1ZmZlckNvbGxlY3Rpb25JbWFn
ZUNvbnN0cmFpbnRzRlVDSFNJQSA9IChQRk5fdmtTZXRCdWZmZXJDb2xsZWN0aW9uSW1hZ2VDb25z
dHJhaW50c0ZVQ0hTSUEpbG9hZChjb250ZXh0LCAidmtTZXRCdWZmZXJDb2xsZWN0aW9uSW1hZ2VD
b25zdHJhaW50c0ZVQ0hTSUEiKTsKKyNlbmRpZiAvKiBkZWZpbmVkKFZLX0ZVQ0hTSUFfYnVmZmVy
X2NvbGxlY3Rpb24pICovCisjaWYgZGVmaW5lZChWS19GVUNIU0lBX2V4dGVybmFsX21lbW9yeSkK
KyAgICB0YWJsZS0+dmtHZXRNZW1vcnlaaXJjb25IYW5kbGVGVUNIU0lBID0gKFBGTl92a0dldE1l
bW9yeVppcmNvbkhhbmRsZUZVQ0hTSUEpbG9hZChjb250ZXh0LCAidmtHZXRNZW1vcnlaaXJjb25I
YW5kbGVGVUNIU0lBIik7CisgICAgdGFibGUtPnZrR2V0TWVtb3J5WmlyY29uSGFuZGxlUHJvcGVy
dGllc0ZVQ0hTSUEgPSAoUEZOX3ZrR2V0TWVtb3J5WmlyY29uSGFuZGxlUHJvcGVydGllc0ZVQ0hT
SUEpbG9hZChjb250ZXh0LCAidmtHZXRNZW1vcnlaaXJjb25IYW5kbGVQcm9wZXJ0aWVzRlVDSFNJ
QSIpOworI2VuZGlmIC8qIGRlZmluZWQoVktfRlVDSFNJQV9leHRlcm5hbF9tZW1vcnkpICovCisj
aWYgZGVmaW5lZChWS19GVUNIU0lBX2V4dGVybmFsX3NlbWFwaG9yZSkKKyAgICB0YWJsZS0+dmtH
ZXRTZW1hcGhvcmVaaXJjb25IYW5kbGVGVUNIU0lBID0gKFBGTl92a0dldFNlbWFwaG9yZVppcmNv
bkhhbmRsZUZVQ0hTSUEpbG9hZChjb250ZXh0LCAidmtHZXRTZW1hcGhvcmVaaXJjb25IYW5kbGVG
VUNIU0lBIik7CisgICAgdGFibGUtPnZrSW1wb3J0U2VtYXBob3JlWmlyY29uSGFuZGxlRlVDSFNJ
QSA9IChQRk5fdmtJbXBvcnRTZW1hcGhvcmVaaXJjb25IYW5kbGVGVUNIU0lBKWxvYWQoY29udGV4
dCwgInZrSW1wb3J0U2VtYXBob3JlWmlyY29uSGFuZGxlRlVDSFNJQSIpOworI2VuZGlmIC8qIGRl
ZmluZWQoVktfRlVDSFNJQV9leHRlcm5hbF9zZW1hcGhvcmUpICovCiAjaWYgZGVmaW5lZChWS19H
T09HTEVfZGlzcGxheV90aW1pbmcpCiAgICAgdGFibGUtPnZrR2V0UGFzdFByZXNlbnRhdGlvblRp
bWluZ0dPT0dMRSA9IChQRk5fdmtHZXRQYXN0UHJlc2VudGF0aW9uVGltaW5nR09PR0xFKWxvYWQo
Y29udGV4dCwgInZrR2V0UGFzdFByZXNlbnRhdGlvblRpbWluZ0dPT0dMRSIpOwogICAgIHRhYmxl
LT52a0dldFJlZnJlc2hDeWNsZUR1cmF0aW9uR09PR0xFID0gKFBGTl92a0dldFJlZnJlc2hDeWNs
ZUR1cmF0aW9uR09PR0xFKWxvYWQoY29udGV4dCwgInZrR2V0UmVmcmVzaEN5Y2xlRHVyYXRpb25H
T09HTEUiKTsKICNlbmRpZiAvKiBkZWZpbmVkKFZLX0dPT0dMRV9kaXNwbGF5X3RpbWluZykgKi8K
KyNpZiBkZWZpbmVkKFZLX0hVQVdFSV9pbnZvY2F0aW9uX21hc2spCisgICAgdGFibGUtPnZrQ21k
QmluZEludm9jYXRpb25NYXNrSFVBV0VJID0gKFBGTl92a0NtZEJpbmRJbnZvY2F0aW9uTWFza0hV
QVdFSSlsb2FkKGNvbnRleHQsICJ2a0NtZEJpbmRJbnZvY2F0aW9uTWFza0hVQVdFSSIpOworI2Vu
ZGlmIC8qIGRlZmluZWQoVktfSFVBV0VJX2ludm9jYXRpb25fbWFzaykgKi8KKyNpZiBkZWZpbmVk
KFZLX0hVQVdFSV9zdWJwYXNzX3NoYWRpbmcpCisgICAgdGFibGUtPnZrQ21kU3VicGFzc1NoYWRp
bmdIVUFXRUkgPSAoUEZOX3ZrQ21kU3VicGFzc1NoYWRpbmdIVUFXRUkpbG9hZChjb250ZXh0LCAi
dmtDbWRTdWJwYXNzU2hhZGluZ0hVQVdFSSIpOworICAgIHRhYmxlLT52a0dldERldmljZVN1YnBh
c3NTaGFkaW5nTWF4V29ya2dyb3VwU2l6ZUhVQVdFSSA9IChQRk5fdmtHZXREZXZpY2VTdWJwYXNz
U2hhZGluZ01heFdvcmtncm91cFNpemVIVUFXRUkpbG9hZChjb250ZXh0LCAidmtHZXREZXZpY2VT
dWJwYXNzU2hhZGluZ01heFdvcmtncm91cFNpemVIVUFXRUkiKTsKKyNlbmRpZiAvKiBkZWZpbmVk
KFZLX0hVQVdFSV9zdWJwYXNzX3NoYWRpbmcpICovCiAjaWYgZGVmaW5lZChWS19JTlRFTF9wZXJm
b3JtYW5jZV9xdWVyeSkKICAgICB0YWJsZS0+dmtBY3F1aXJlUGVyZm9ybWFuY2VDb25maWd1cmF0
aW9uSU5URUwgPSAoUEZOX3ZrQWNxdWlyZVBlcmZvcm1hbmNlQ29uZmlndXJhdGlvbklOVEVMKWxv
YWQoY29udGV4dCwgInZrQWNxdWlyZVBlcmZvcm1hbmNlQ29uZmlndXJhdGlvbklOVEVMIik7CiAg
ICAgdGFibGUtPnZrQ21kU2V0UGVyZm9ybWFuY2VNYXJrZXJJTlRFTCA9IChQRk5fdmtDbWRTZXRQ
ZXJmb3JtYW5jZU1hcmtlcklOVEVMKWxvYWQoY29udGV4dCwgInZrQ21kU2V0UGVyZm9ybWFuY2VN
YXJrZXJJTlRFTCIpOwpAQCAtOTU3LDYgKzEzMTcsMjQgQEAgc3RhdGljIHZvaWQgdm9sa0dlbkxv
YWREZXZpY2VUYWJsZShzdHJ1Y3QgVm9sa0RldmljZVRhYmxlKiB0YWJsZSwgdm9pZCogY29udGV4
dCwKICAgICB0YWJsZS0+dmtSZWxlYXNlUGVyZm9ybWFuY2VDb25maWd1cmF0aW9uSU5URUwgPSAo
UEZOX3ZrUmVsZWFzZVBlcmZvcm1hbmNlQ29uZmlndXJhdGlvbklOVEVMKWxvYWQoY29udGV4dCwg
InZrUmVsZWFzZVBlcmZvcm1hbmNlQ29uZmlndXJhdGlvbklOVEVMIik7CiAgICAgdGFibGUtPnZr
VW5pbml0aWFsaXplUGVyZm9ybWFuY2VBcGlJTlRFTCA9IChQRk5fdmtVbmluaXRpYWxpemVQZXJm
b3JtYW5jZUFwaUlOVEVMKWxvYWQoY29udGV4dCwgInZrVW5pbml0aWFsaXplUGVyZm9ybWFuY2VB
cGlJTlRFTCIpOwogI2VuZGlmIC8qIGRlZmluZWQoVktfSU5URUxfcGVyZm9ybWFuY2VfcXVlcnkp
ICovCisjaWYgZGVmaW5lZChWS19LSFJfYWNjZWxlcmF0aW9uX3N0cnVjdHVyZSkKKyAgICB0YWJs
ZS0+dmtCdWlsZEFjY2VsZXJhdGlvblN0cnVjdHVyZXNLSFIgPSAoUEZOX3ZrQnVpbGRBY2NlbGVy
YXRpb25TdHJ1Y3R1cmVzS0hSKWxvYWQoY29udGV4dCwgInZrQnVpbGRBY2NlbGVyYXRpb25TdHJ1
Y3R1cmVzS0hSIik7CisgICAgdGFibGUtPnZrQ21kQnVpbGRBY2NlbGVyYXRpb25TdHJ1Y3R1cmVz
SW5kaXJlY3RLSFIgPSAoUEZOX3ZrQ21kQnVpbGRBY2NlbGVyYXRpb25TdHJ1Y3R1cmVzSW5kaXJl
Y3RLSFIpbG9hZChjb250ZXh0LCAidmtDbWRCdWlsZEFjY2VsZXJhdGlvblN0cnVjdHVyZXNJbmRp
cmVjdEtIUiIpOworICAgIHRhYmxlLT52a0NtZEJ1aWxkQWNjZWxlcmF0aW9uU3RydWN0dXJlc0tI
UiA9IChQRk5fdmtDbWRCdWlsZEFjY2VsZXJhdGlvblN0cnVjdHVyZXNLSFIpbG9hZChjb250ZXh0
LCAidmtDbWRCdWlsZEFjY2VsZXJhdGlvblN0cnVjdHVyZXNLSFIiKTsKKyAgICB0YWJsZS0+dmtD
bWRDb3B5QWNjZWxlcmF0aW9uU3RydWN0dXJlS0hSID0gKFBGTl92a0NtZENvcHlBY2NlbGVyYXRp
b25TdHJ1Y3R1cmVLSFIpbG9hZChjb250ZXh0LCAidmtDbWRDb3B5QWNjZWxlcmF0aW9uU3RydWN0
dXJlS0hSIik7CisgICAgdGFibGUtPnZrQ21kQ29weUFjY2VsZXJhdGlvblN0cnVjdHVyZVRvTWVt
b3J5S0hSID0gKFBGTl92a0NtZENvcHlBY2NlbGVyYXRpb25TdHJ1Y3R1cmVUb01lbW9yeUtIUils
b2FkKGNvbnRleHQsICJ2a0NtZENvcHlBY2NlbGVyYXRpb25TdHJ1Y3R1cmVUb01lbW9yeUtIUiIp
OworICAgIHRhYmxlLT52a0NtZENvcHlNZW1vcnlUb0FjY2VsZXJhdGlvblN0cnVjdHVyZUtIUiA9
IChQRk5fdmtDbWRDb3B5TWVtb3J5VG9BY2NlbGVyYXRpb25TdHJ1Y3R1cmVLSFIpbG9hZChjb250
ZXh0LCAidmtDbWRDb3B5TWVtb3J5VG9BY2NlbGVyYXRpb25TdHJ1Y3R1cmVLSFIiKTsKKyAgICB0
YWJsZS0+dmtDbWRXcml0ZUFjY2VsZXJhdGlvblN0cnVjdHVyZXNQcm9wZXJ0aWVzS0hSID0gKFBG
Tl92a0NtZFdyaXRlQWNjZWxlcmF0aW9uU3RydWN0dXJlc1Byb3BlcnRpZXNLSFIpbG9hZChjb250
ZXh0LCAidmtDbWRXcml0ZUFjY2VsZXJhdGlvblN0cnVjdHVyZXNQcm9wZXJ0aWVzS0hSIik7Cisg
ICAgdGFibGUtPnZrQ29weUFjY2VsZXJhdGlvblN0cnVjdHVyZUtIUiA9IChQRk5fdmtDb3B5QWNj
ZWxlcmF0aW9uU3RydWN0dXJlS0hSKWxvYWQoY29udGV4dCwgInZrQ29weUFjY2VsZXJhdGlvblN0
cnVjdHVyZUtIUiIpOworICAgIHRhYmxlLT52a0NvcHlBY2NlbGVyYXRpb25TdHJ1Y3R1cmVUb01l
bW9yeUtIUiA9IChQRk5fdmtDb3B5QWNjZWxlcmF0aW9uU3RydWN0dXJlVG9NZW1vcnlLSFIpbG9h
ZChjb250ZXh0LCAidmtDb3B5QWNjZWxlcmF0aW9uU3RydWN0dXJlVG9NZW1vcnlLSFIiKTsKKyAg
ICB0YWJsZS0+dmtDb3B5TWVtb3J5VG9BY2NlbGVyYXRpb25TdHJ1Y3R1cmVLSFIgPSAoUEZOX3Zr
Q29weU1lbW9yeVRvQWNjZWxlcmF0aW9uU3RydWN0dXJlS0hSKWxvYWQoY29udGV4dCwgInZrQ29w
eU1lbW9yeVRvQWNjZWxlcmF0aW9uU3RydWN0dXJlS0hSIik7CisgICAgdGFibGUtPnZrQ3JlYXRl
QWNjZWxlcmF0aW9uU3RydWN0dXJlS0hSID0gKFBGTl92a0NyZWF0ZUFjY2VsZXJhdGlvblN0cnVj
dHVyZUtIUilsb2FkKGNvbnRleHQsICJ2a0NyZWF0ZUFjY2VsZXJhdGlvblN0cnVjdHVyZUtIUiIp
OworICAgIHRhYmxlLT52a0Rlc3Ryb3lBY2NlbGVyYXRpb25TdHJ1Y3R1cmVLSFIgPSAoUEZOX3Zr
RGVzdHJveUFjY2VsZXJhdGlvblN0cnVjdHVyZUtIUilsb2FkKGNvbnRleHQsICJ2a0Rlc3Ryb3lB
Y2NlbGVyYXRpb25TdHJ1Y3R1cmVLSFIiKTsKKyAgICB0YWJsZS0+dmtHZXRBY2NlbGVyYXRpb25T
dHJ1Y3R1cmVCdWlsZFNpemVzS0hSID0gKFBGTl92a0dldEFjY2VsZXJhdGlvblN0cnVjdHVyZUJ1
aWxkU2l6ZXNLSFIpbG9hZChjb250ZXh0LCAidmtHZXRBY2NlbGVyYXRpb25TdHJ1Y3R1cmVCdWls
ZFNpemVzS0hSIik7CisgICAgdGFibGUtPnZrR2V0QWNjZWxlcmF0aW9uU3RydWN0dXJlRGV2aWNl
QWRkcmVzc0tIUiA9IChQRk5fdmtHZXRBY2NlbGVyYXRpb25TdHJ1Y3R1cmVEZXZpY2VBZGRyZXNz
S0hSKWxvYWQoY29udGV4dCwgInZrR2V0QWNjZWxlcmF0aW9uU3RydWN0dXJlRGV2aWNlQWRkcmVz
c0tIUiIpOworICAgIHRhYmxlLT52a0dldERldmljZUFjY2VsZXJhdGlvblN0cnVjdHVyZUNvbXBh
dGliaWxpdHlLSFIgPSAoUEZOX3ZrR2V0RGV2aWNlQWNjZWxlcmF0aW9uU3RydWN0dXJlQ29tcGF0
aWJpbGl0eUtIUilsb2FkKGNvbnRleHQsICJ2a0dldERldmljZUFjY2VsZXJhdGlvblN0cnVjdHVy
ZUNvbXBhdGliaWxpdHlLSFIiKTsKKyAgICB0YWJsZS0+dmtXcml0ZUFjY2VsZXJhdGlvblN0cnVj
dHVyZXNQcm9wZXJ0aWVzS0hSID0gKFBGTl92a1dyaXRlQWNjZWxlcmF0aW9uU3RydWN0dXJlc1By
b3BlcnRpZXNLSFIpbG9hZChjb250ZXh0LCAidmtXcml0ZUFjY2VsZXJhdGlvblN0cnVjdHVyZXNQ
cm9wZXJ0aWVzS0hSIik7CisjZW5kaWYgLyogZGVmaW5lZChWS19LSFJfYWNjZWxlcmF0aW9uX3N0
cnVjdHVyZSkgKi8KICNpZiBkZWZpbmVkKFZLX0tIUl9iaW5kX21lbW9yeTIpCiAgICAgdGFibGUt
PnZrQmluZEJ1ZmZlck1lbW9yeTJLSFIgPSAoUEZOX3ZrQmluZEJ1ZmZlck1lbW9yeTJLSFIpbG9h
ZChjb250ZXh0LCAidmtCaW5kQnVmZmVyTWVtb3J5MktIUiIpOwogICAgIHRhYmxlLT52a0JpbmRJ
bWFnZU1lbW9yeTJLSFIgPSAoUEZOX3ZrQmluZEltYWdlTWVtb3J5MktIUilsb2FkKGNvbnRleHQs
ICJ2a0JpbmRJbWFnZU1lbW9yeTJLSFIiKTsKQEAgLTk2NiwxMiArMTM0NCwyNyBAQCBzdGF0aWMg
dm9pZCB2b2xrR2VuTG9hZERldmljZVRhYmxlKHN0cnVjdCBWb2xrRGV2aWNlVGFibGUqIHRhYmxl
LCB2b2lkKiBjb250ZXh0LAogICAgIHRhYmxlLT52a0dldEJ1ZmZlck9wYXF1ZUNhcHR1cmVBZGRy
ZXNzS0hSID0gKFBGTl92a0dldEJ1ZmZlck9wYXF1ZUNhcHR1cmVBZGRyZXNzS0hSKWxvYWQoY29u
dGV4dCwgInZrR2V0QnVmZmVyT3BhcXVlQ2FwdHVyZUFkZHJlc3NLSFIiKTsKICAgICB0YWJsZS0+
dmtHZXREZXZpY2VNZW1vcnlPcGFxdWVDYXB0dXJlQWRkcmVzc0tIUiA9IChQRk5fdmtHZXREZXZp
Y2VNZW1vcnlPcGFxdWVDYXB0dXJlQWRkcmVzc0tIUilsb2FkKGNvbnRleHQsICJ2a0dldERldmlj
ZU1lbW9yeU9wYXF1ZUNhcHR1cmVBZGRyZXNzS0hSIik7CiAjZW5kaWYgLyogZGVmaW5lZChWS19L
SFJfYnVmZmVyX2RldmljZV9hZGRyZXNzKSAqLworI2lmIGRlZmluZWQoVktfS0hSX2NvcHlfY29t
bWFuZHMyKQorICAgIHRhYmxlLT52a0NtZEJsaXRJbWFnZTJLSFIgPSAoUEZOX3ZrQ21kQmxpdElt
YWdlMktIUilsb2FkKGNvbnRleHQsICJ2a0NtZEJsaXRJbWFnZTJLSFIiKTsKKyAgICB0YWJsZS0+
dmtDbWRDb3B5QnVmZmVyMktIUiA9IChQRk5fdmtDbWRDb3B5QnVmZmVyMktIUilsb2FkKGNvbnRl
eHQsICJ2a0NtZENvcHlCdWZmZXIyS0hSIik7CisgICAgdGFibGUtPnZrQ21kQ29weUJ1ZmZlclRv
SW1hZ2UyS0hSID0gKFBGTl92a0NtZENvcHlCdWZmZXJUb0ltYWdlMktIUilsb2FkKGNvbnRleHQs
ICJ2a0NtZENvcHlCdWZmZXJUb0ltYWdlMktIUiIpOworICAgIHRhYmxlLT52a0NtZENvcHlJbWFn
ZTJLSFIgPSAoUEZOX3ZrQ21kQ29weUltYWdlMktIUilsb2FkKGNvbnRleHQsICJ2a0NtZENvcHlJ
bWFnZTJLSFIiKTsKKyAgICB0YWJsZS0+dmtDbWRDb3B5SW1hZ2VUb0J1ZmZlcjJLSFIgPSAoUEZO
X3ZrQ21kQ29weUltYWdlVG9CdWZmZXIyS0hSKWxvYWQoY29udGV4dCwgInZrQ21kQ29weUltYWdl
VG9CdWZmZXIyS0hSIik7CisgICAgdGFibGUtPnZrQ21kUmVzb2x2ZUltYWdlMktIUiA9IChQRk5f
dmtDbWRSZXNvbHZlSW1hZ2UyS0hSKWxvYWQoY29udGV4dCwgInZrQ21kUmVzb2x2ZUltYWdlMktI
UiIpOworI2VuZGlmIC8qIGRlZmluZWQoVktfS0hSX2NvcHlfY29tbWFuZHMyKSAqLwogI2lmIGRl
ZmluZWQoVktfS0hSX2NyZWF0ZV9yZW5kZXJwYXNzMikKICAgICB0YWJsZS0+dmtDbWRCZWdpblJl
bmRlclBhc3MyS0hSID0gKFBGTl92a0NtZEJlZ2luUmVuZGVyUGFzczJLSFIpbG9hZChjb250ZXh0
LCAidmtDbWRCZWdpblJlbmRlclBhc3MyS0hSIik7CiAgICAgdGFibGUtPnZrQ21kRW5kUmVuZGVy
UGFzczJLSFIgPSAoUEZOX3ZrQ21kRW5kUmVuZGVyUGFzczJLSFIpbG9hZChjb250ZXh0LCAidmtD
bWRFbmRSZW5kZXJQYXNzMktIUiIpOwogICAgIHRhYmxlLT52a0NtZE5leHRTdWJwYXNzMktIUiA9
IChQRk5fdmtDbWROZXh0U3VicGFzczJLSFIpbG9hZChjb250ZXh0LCAidmtDbWROZXh0U3VicGFz
czJLSFIiKTsKICAgICB0YWJsZS0+dmtDcmVhdGVSZW5kZXJQYXNzMktIUiA9IChQRk5fdmtDcmVh
dGVSZW5kZXJQYXNzMktIUilsb2FkKGNvbnRleHQsICJ2a0NyZWF0ZVJlbmRlclBhc3MyS0hSIik7
CiAjZW5kaWYgLyogZGVmaW5lZChWS19LSFJfY3JlYXRlX3JlbmRlcnBhc3MyKSAqLworI2lmIGRl
ZmluZWQoVktfS0hSX2RlZmVycmVkX2hvc3Rfb3BlcmF0aW9ucykKKyAgICB0YWJsZS0+dmtDcmVh
dGVEZWZlcnJlZE9wZXJhdGlvbktIUiA9IChQRk5fdmtDcmVhdGVEZWZlcnJlZE9wZXJhdGlvbktI
Uilsb2FkKGNvbnRleHQsICJ2a0NyZWF0ZURlZmVycmVkT3BlcmF0aW9uS0hSIik7CisgICAgdGFi
bGUtPnZrRGVmZXJyZWRPcGVyYXRpb25Kb2luS0hSID0gKFBGTl92a0RlZmVycmVkT3BlcmF0aW9u
Sm9pbktIUilsb2FkKGNvbnRleHQsICJ2a0RlZmVycmVkT3BlcmF0aW9uSm9pbktIUiIpOworICAg
IHRhYmxlLT52a0Rlc3Ryb3lEZWZlcnJlZE9wZXJhdGlvbktIUiA9IChQRk5fdmtEZXN0cm95RGVm
ZXJyZWRPcGVyYXRpb25LSFIpbG9hZChjb250ZXh0LCAidmtEZXN0cm95RGVmZXJyZWRPcGVyYXRp
b25LSFIiKTsKKyAgICB0YWJsZS0+dmtHZXREZWZlcnJlZE9wZXJhdGlvbk1heENvbmN1cnJlbmN5
S0hSID0gKFBGTl92a0dldERlZmVycmVkT3BlcmF0aW9uTWF4Q29uY3VycmVuY3lLSFIpbG9hZChj
b250ZXh0LCAidmtHZXREZWZlcnJlZE9wZXJhdGlvbk1heENvbmN1cnJlbmN5S0hSIik7CisgICAg
dGFibGUtPnZrR2V0RGVmZXJyZWRPcGVyYXRpb25SZXN1bHRLSFIgPSAoUEZOX3ZrR2V0RGVmZXJy
ZWRPcGVyYXRpb25SZXN1bHRLSFIpbG9hZChjb250ZXh0LCAidmtHZXREZWZlcnJlZE9wZXJhdGlv
blJlc3VsdEtIUiIpOworI2VuZGlmIC8qIGRlZmluZWQoVktfS0hSX2RlZmVycmVkX2hvc3Rfb3Bl
cmF0aW9ucykgKi8KICNpZiBkZWZpbmVkKFZLX0tIUl9kZXNjcmlwdG9yX3VwZGF0ZV90ZW1wbGF0
ZSkKICAgICB0YWJsZS0+dmtDcmVhdGVEZXNjcmlwdG9yVXBkYXRlVGVtcGxhdGVLSFIgPSAoUEZO
X3ZrQ3JlYXRlRGVzY3JpcHRvclVwZGF0ZVRlbXBsYXRlS0hSKWxvYWQoY29udGV4dCwgInZrQ3Jl
YXRlRGVzY3JpcHRvclVwZGF0ZVRlbXBsYXRlS0hSIik7CiAgICAgdGFibGUtPnZrRGVzdHJveURl
c2NyaXB0b3JVcGRhdGVUZW1wbGF0ZUtIUiA9IChQRk5fdmtEZXN0cm95RGVzY3JpcHRvclVwZGF0
ZVRlbXBsYXRlS0hSKWxvYWQoY29udGV4dCwgInZrRGVzdHJveURlc2NyaXB0b3JVcGRhdGVUZW1w
bGF0ZUtIUiIpOwpAQCAtOTg5LDYgKzEzODIsMTAgQEAgc3RhdGljIHZvaWQgdm9sa0dlbkxvYWRE
ZXZpY2VUYWJsZShzdHJ1Y3QgVm9sa0RldmljZVRhYmxlKiB0YWJsZSwgdm9pZCogY29udGV4dCwK
ICAgICB0YWJsZS0+dmtDbWREcmF3SW5kZXhlZEluZGlyZWN0Q291bnRLSFIgPSAoUEZOX3ZrQ21k
RHJhd0luZGV4ZWRJbmRpcmVjdENvdW50S0hSKWxvYWQoY29udGV4dCwgInZrQ21kRHJhd0luZGV4
ZWRJbmRpcmVjdENvdW50S0hSIik7CiAgICAgdGFibGUtPnZrQ21kRHJhd0luZGlyZWN0Q291bnRL
SFIgPSAoUEZOX3ZrQ21kRHJhd0luZGlyZWN0Q291bnRLSFIpbG9hZChjb250ZXh0LCAidmtDbWRE
cmF3SW5kaXJlY3RDb3VudEtIUiIpOwogI2VuZGlmIC8qIGRlZmluZWQoVktfS0hSX2RyYXdfaW5k
aXJlY3RfY291bnQpICovCisjaWYgZGVmaW5lZChWS19LSFJfZHluYW1pY19yZW5kZXJpbmcpCisg
ICAgdGFibGUtPnZrQ21kQmVnaW5SZW5kZXJpbmdLSFIgPSAoUEZOX3ZrQ21kQmVnaW5SZW5kZXJp
bmdLSFIpbG9hZChjb250ZXh0LCAidmtDbWRCZWdpblJlbmRlcmluZ0tIUiIpOworICAgIHRhYmxl
LT52a0NtZEVuZFJlbmRlcmluZ0tIUiA9IChQRk5fdmtDbWRFbmRSZW5kZXJpbmdLSFIpbG9hZChj
b250ZXh0LCAidmtDbWRFbmRSZW5kZXJpbmdLSFIiKTsKKyNlbmRpZiAvKiBkZWZpbmVkKFZLX0tI
Ul9keW5hbWljX3JlbmRlcmluZykgKi8KICNpZiBkZWZpbmVkKFZLX0tIUl9leHRlcm5hbF9mZW5j
ZV9mZCkKICAgICB0YWJsZS0+dmtHZXRGZW5jZUZkS0hSID0gKFBGTl92a0dldEZlbmNlRmRLSFIp
bG9hZChjb250ZXh0LCAidmtHZXRGZW5jZUZkS0hSIik7CiAgICAgdGFibGUtPnZrSW1wb3J0RmVu
Y2VGZEtIUiA9IChQRk5fdmtJbXBvcnRGZW5jZUZkS0hSKWxvYWQoY29udGV4dCwgInZrSW1wb3J0
RmVuY2VGZEtIUiIpOwpAQCAtMTAxMyw2ICsxNDEwLDkgQEAgc3RhdGljIHZvaWQgdm9sa0dlbkxv
YWREZXZpY2VUYWJsZShzdHJ1Y3QgVm9sa0RldmljZVRhYmxlKiB0YWJsZSwgdm9pZCogY29udGV4
dCwKICAgICB0YWJsZS0+dmtHZXRTZW1hcGhvcmVXaW4zMkhhbmRsZUtIUiA9IChQRk5fdmtHZXRT
ZW1hcGhvcmVXaW4zMkhhbmRsZUtIUilsb2FkKGNvbnRleHQsICJ2a0dldFNlbWFwaG9yZVdpbjMy
SGFuZGxlS0hSIik7CiAgICAgdGFibGUtPnZrSW1wb3J0U2VtYXBob3JlV2luMzJIYW5kbGVLSFIg
PSAoUEZOX3ZrSW1wb3J0U2VtYXBob3JlV2luMzJIYW5kbGVLSFIpbG9hZChjb250ZXh0LCAidmtJ
bXBvcnRTZW1hcGhvcmVXaW4zMkhhbmRsZUtIUiIpOwogI2VuZGlmIC8qIGRlZmluZWQoVktfS0hS
X2V4dGVybmFsX3NlbWFwaG9yZV93aW4zMikgKi8KKyNpZiBkZWZpbmVkKFZLX0tIUl9mcmFnbWVu
dF9zaGFkaW5nX3JhdGUpCisgICAgdGFibGUtPnZrQ21kU2V0RnJhZ21lbnRTaGFkaW5nUmF0ZUtI
UiA9IChQRk5fdmtDbWRTZXRGcmFnbWVudFNoYWRpbmdSYXRlS0hSKWxvYWQoY29udGV4dCwgInZr
Q21kU2V0RnJhZ21lbnRTaGFkaW5nUmF0ZUtIUiIpOworI2VuZGlmIC8qIGRlZmluZWQoVktfS0hS
X2ZyYWdtZW50X3NoYWRpbmdfcmF0ZSkgKi8KICNpZiBkZWZpbmVkKFZLX0tIUl9nZXRfbWVtb3J5
X3JlcXVpcmVtZW50czIpCiAgICAgdGFibGUtPnZrR2V0QnVmZmVyTWVtb3J5UmVxdWlyZW1lbnRz
MktIUiA9IChQRk5fdmtHZXRCdWZmZXJNZW1vcnlSZXF1aXJlbWVudHMyS0hSKWxvYWQoY29udGV4
dCwgInZrR2V0QnVmZmVyTWVtb3J5UmVxdWlyZW1lbnRzMktIUiIpOwogICAgIHRhYmxlLT52a0dl
dEltYWdlTWVtb3J5UmVxdWlyZW1lbnRzMktIUiA9IChQRk5fdmtHZXRJbWFnZU1lbW9yeVJlcXVp
cmVtZW50czJLSFIpbG9hZChjb250ZXh0LCAidmtHZXRJbWFnZU1lbW9yeVJlcXVpcmVtZW50czJL
SFIiKTsKQEAgLTEwMjQsNiArMTQyNCwxMSBAQCBzdGF0aWMgdm9pZCB2b2xrR2VuTG9hZERldmlj
ZVRhYmxlKHN0cnVjdCBWb2xrRGV2aWNlVGFibGUqIHRhYmxlLCB2b2lkKiBjb250ZXh0LAogI2lm
IGRlZmluZWQoVktfS0hSX21haW50ZW5hbmNlMykKICAgICB0YWJsZS0+dmtHZXREZXNjcmlwdG9y
U2V0TGF5b3V0U3VwcG9ydEtIUiA9IChQRk5fdmtHZXREZXNjcmlwdG9yU2V0TGF5b3V0U3VwcG9y
dEtIUilsb2FkKGNvbnRleHQsICJ2a0dldERlc2NyaXB0b3JTZXRMYXlvdXRTdXBwb3J0S0hSIik7
CiAjZW5kaWYgLyogZGVmaW5lZChWS19LSFJfbWFpbnRlbmFuY2UzKSAqLworI2lmIGRlZmluZWQo
VktfS0hSX21haW50ZW5hbmNlNCkKKyAgICB0YWJsZS0+dmtHZXREZXZpY2VCdWZmZXJNZW1vcnlS
ZXF1aXJlbWVudHNLSFIgPSAoUEZOX3ZrR2V0RGV2aWNlQnVmZmVyTWVtb3J5UmVxdWlyZW1lbnRz
S0hSKWxvYWQoY29udGV4dCwgInZrR2V0RGV2aWNlQnVmZmVyTWVtb3J5UmVxdWlyZW1lbnRzS0hS
Iik7CisgICAgdGFibGUtPnZrR2V0RGV2aWNlSW1hZ2VNZW1vcnlSZXF1aXJlbWVudHNLSFIgPSAo
UEZOX3ZrR2V0RGV2aWNlSW1hZ2VNZW1vcnlSZXF1aXJlbWVudHNLSFIpbG9hZChjb250ZXh0LCAi
dmtHZXREZXZpY2VJbWFnZU1lbW9yeVJlcXVpcmVtZW50c0tIUiIpOworICAgIHRhYmxlLT52a0dl
dERldmljZUltYWdlU3BhcnNlTWVtb3J5UmVxdWlyZW1lbnRzS0hSID0gKFBGTl92a0dldERldmlj
ZUltYWdlU3BhcnNlTWVtb3J5UmVxdWlyZW1lbnRzS0hSKWxvYWQoY29udGV4dCwgInZrR2V0RGV2
aWNlSW1hZ2VTcGFyc2VNZW1vcnlSZXF1aXJlbWVudHNLSFIiKTsKKyNlbmRpZiAvKiBkZWZpbmVk
KFZLX0tIUl9tYWludGVuYW5jZTQpICovCiAjaWYgZGVmaW5lZChWS19LSFJfcGVyZm9ybWFuY2Vf
cXVlcnkpCiAgICAgdGFibGUtPnZrQWNxdWlyZVByb2ZpbGluZ0xvY2tLSFIgPSAoUEZOX3ZrQWNx
dWlyZVByb2ZpbGluZ0xvY2tLSFIpbG9hZChjb250ZXh0LCAidmtBY3F1aXJlUHJvZmlsaW5nTG9j
a0tIUiIpOwogICAgIHRhYmxlLT52a1JlbGVhc2VQcm9maWxpbmdMb2NrS0hSID0gKFBGTl92a1Jl
bGVhc2VQcm9maWxpbmdMb2NrS0hSKWxvYWQoY29udGV4dCwgInZrUmVsZWFzZVByb2ZpbGluZ0xv
Y2tLSFIiKTsKQEAgLTEwMzMsOSArMTQzOCwyMSBAQCBzdGF0aWMgdm9pZCB2b2xrR2VuTG9hZERl
dmljZVRhYmxlKHN0cnVjdCBWb2xrRGV2aWNlVGFibGUqIHRhYmxlLCB2b2lkKiBjb250ZXh0LAog
ICAgIHRhYmxlLT52a0dldFBpcGVsaW5lRXhlY3V0YWJsZVByb3BlcnRpZXNLSFIgPSAoUEZOX3Zr
R2V0UGlwZWxpbmVFeGVjdXRhYmxlUHJvcGVydGllc0tIUilsb2FkKGNvbnRleHQsICJ2a0dldFBp
cGVsaW5lRXhlY3V0YWJsZVByb3BlcnRpZXNLSFIiKTsKICAgICB0YWJsZS0+dmtHZXRQaXBlbGlu
ZUV4ZWN1dGFibGVTdGF0aXN0aWNzS0hSID0gKFBGTl92a0dldFBpcGVsaW5lRXhlY3V0YWJsZVN0
YXRpc3RpY3NLSFIpbG9hZChjb250ZXh0LCAidmtHZXRQaXBlbGluZUV4ZWN1dGFibGVTdGF0aXN0
aWNzS0hSIik7CiAjZW5kaWYgLyogZGVmaW5lZChWS19LSFJfcGlwZWxpbmVfZXhlY3V0YWJsZV9w
cm9wZXJ0aWVzKSAqLworI2lmIGRlZmluZWQoVktfS0hSX3ByZXNlbnRfd2FpdCkKKyAgICB0YWJs
ZS0+dmtXYWl0Rm9yUHJlc2VudEtIUiA9IChQRk5fdmtXYWl0Rm9yUHJlc2VudEtIUilsb2FkKGNv
bnRleHQsICJ2a1dhaXRGb3JQcmVzZW50S0hSIik7CisjZW5kaWYgLyogZGVmaW5lZChWS19LSFJf
cHJlc2VudF93YWl0KSAqLwogI2lmIGRlZmluZWQoVktfS0hSX3B1c2hfZGVzY3JpcHRvcikKICAg
ICB0YWJsZS0+dmtDbWRQdXNoRGVzY3JpcHRvclNldEtIUiA9IChQRk5fdmtDbWRQdXNoRGVzY3Jp
cHRvclNldEtIUilsb2FkKGNvbnRleHQsICJ2a0NtZFB1c2hEZXNjcmlwdG9yU2V0S0hSIik7CiAj
ZW5kaWYgLyogZGVmaW5lZChWS19LSFJfcHVzaF9kZXNjcmlwdG9yKSAqLworI2lmIGRlZmluZWQo
VktfS0hSX3JheV90cmFjaW5nX3BpcGVsaW5lKQorICAgIHRhYmxlLT52a0NtZFNldFJheVRyYWNp
bmdQaXBlbGluZVN0YWNrU2l6ZUtIUiA9IChQRk5fdmtDbWRTZXRSYXlUcmFjaW5nUGlwZWxpbmVT
dGFja1NpemVLSFIpbG9hZChjb250ZXh0LCAidmtDbWRTZXRSYXlUcmFjaW5nUGlwZWxpbmVTdGFj
a1NpemVLSFIiKTsKKyAgICB0YWJsZS0+dmtDbWRUcmFjZVJheXNJbmRpcmVjdEtIUiA9IChQRk5f
dmtDbWRUcmFjZVJheXNJbmRpcmVjdEtIUilsb2FkKGNvbnRleHQsICJ2a0NtZFRyYWNlUmF5c0lu
ZGlyZWN0S0hSIik7CisgICAgdGFibGUtPnZrQ21kVHJhY2VSYXlzS0hSID0gKFBGTl92a0NtZFRy
YWNlUmF5c0tIUilsb2FkKGNvbnRleHQsICJ2a0NtZFRyYWNlUmF5c0tIUiIpOworICAgIHRhYmxl
LT52a0NyZWF0ZVJheVRyYWNpbmdQaXBlbGluZXNLSFIgPSAoUEZOX3ZrQ3JlYXRlUmF5VHJhY2lu
Z1BpcGVsaW5lc0tIUilsb2FkKGNvbnRleHQsICJ2a0NyZWF0ZVJheVRyYWNpbmdQaXBlbGluZXNL
SFIiKTsKKyAgICB0YWJsZS0+dmtHZXRSYXlUcmFjaW5nQ2FwdHVyZVJlcGxheVNoYWRlckdyb3Vw
SGFuZGxlc0tIUiA9IChQRk5fdmtHZXRSYXlUcmFjaW5nQ2FwdHVyZVJlcGxheVNoYWRlckdyb3Vw
SGFuZGxlc0tIUilsb2FkKGNvbnRleHQsICJ2a0dldFJheVRyYWNpbmdDYXB0dXJlUmVwbGF5U2hh
ZGVyR3JvdXBIYW5kbGVzS0hSIik7CisgICAgdGFibGUtPnZrR2V0UmF5VHJhY2luZ1NoYWRlckdy
b3VwSGFuZGxlc0tIUiA9IChQRk5fdmtHZXRSYXlUcmFjaW5nU2hhZGVyR3JvdXBIYW5kbGVzS0hS
KWxvYWQoY29udGV4dCwgInZrR2V0UmF5VHJhY2luZ1NoYWRlckdyb3VwSGFuZGxlc0tIUiIpOwor
ICAgIHRhYmxlLT52a0dldFJheVRyYWNpbmdTaGFkZXJHcm91cFN0YWNrU2l6ZUtIUiA9IChQRk5f
dmtHZXRSYXlUcmFjaW5nU2hhZGVyR3JvdXBTdGFja1NpemVLSFIpbG9hZChjb250ZXh0LCAidmtH
ZXRSYXlUcmFjaW5nU2hhZGVyR3JvdXBTdGFja1NpemVLSFIiKTsKKyNlbmRpZiAvKiBkZWZpbmVk
KFZLX0tIUl9yYXlfdHJhY2luZ19waXBlbGluZSkgKi8KICNpZiBkZWZpbmVkKFZLX0tIUl9zYW1w
bGVyX3ljYmNyX2NvbnZlcnNpb24pCiAgICAgdGFibGUtPnZrQ3JlYXRlU2FtcGxlclljYmNyQ29u
dmVyc2lvbktIUiA9IChQRk5fdmtDcmVhdGVTYW1wbGVyWWNiY3JDb252ZXJzaW9uS0hSKWxvYWQo
Y29udGV4dCwgInZrQ3JlYXRlU2FtcGxlclljYmNyQ29udmVyc2lvbktIUiIpOwogICAgIHRhYmxl
LT52a0Rlc3Ryb3lTYW1wbGVyWWNiY3JDb252ZXJzaW9uS0hSID0gKFBGTl92a0Rlc3Ryb3lTYW1w
bGVyWWNiY3JDb252ZXJzaW9uS0hSKWxvYWQoY29udGV4dCwgInZrRGVzdHJveVNhbXBsZXJZY2Jj
ckNvbnZlcnNpb25LSFIiKTsKQEAgLTEwNTAsMjIgKzE0NjcsNTIgQEAgc3RhdGljIHZvaWQgdm9s
a0dlbkxvYWREZXZpY2VUYWJsZShzdHJ1Y3QgVm9sa0RldmljZVRhYmxlKiB0YWJsZSwgdm9pZCog
Y29udGV4dCwKICAgICB0YWJsZS0+dmtHZXRTd2FwY2hhaW5JbWFnZXNLSFIgPSAoUEZOX3ZrR2V0
U3dhcGNoYWluSW1hZ2VzS0hSKWxvYWQoY29udGV4dCwgInZrR2V0U3dhcGNoYWluSW1hZ2VzS0hS
Iik7CiAgICAgdGFibGUtPnZrUXVldWVQcmVzZW50S0hSID0gKFBGTl92a1F1ZXVlUHJlc2VudEtI
Uilsb2FkKGNvbnRleHQsICJ2a1F1ZXVlUHJlc2VudEtIUiIpOwogI2VuZGlmIC8qIGRlZmluZWQo
VktfS0hSX3N3YXBjaGFpbikgKi8KKyNpZiBkZWZpbmVkKFZLX0tIUl9zeW5jaHJvbml6YXRpb24y
KQorICAgIHRhYmxlLT52a0NtZFBpcGVsaW5lQmFycmllcjJLSFIgPSAoUEZOX3ZrQ21kUGlwZWxp
bmVCYXJyaWVyMktIUilsb2FkKGNvbnRleHQsICJ2a0NtZFBpcGVsaW5lQmFycmllcjJLSFIiKTsK
KyAgICB0YWJsZS0+dmtDbWRSZXNldEV2ZW50MktIUiA9IChQRk5fdmtDbWRSZXNldEV2ZW50MktI
Uilsb2FkKGNvbnRleHQsICJ2a0NtZFJlc2V0RXZlbnQyS0hSIik7CisgICAgdGFibGUtPnZrQ21k
U2V0RXZlbnQyS0hSID0gKFBGTl92a0NtZFNldEV2ZW50MktIUilsb2FkKGNvbnRleHQsICJ2a0Nt
ZFNldEV2ZW50MktIUiIpOworICAgIHRhYmxlLT52a0NtZFdhaXRFdmVudHMyS0hSID0gKFBGTl92
a0NtZFdhaXRFdmVudHMyS0hSKWxvYWQoY29udGV4dCwgInZrQ21kV2FpdEV2ZW50czJLSFIiKTsK
KyAgICB0YWJsZS0+dmtDbWRXcml0ZVRpbWVzdGFtcDJLSFIgPSAoUEZOX3ZrQ21kV3JpdGVUaW1l
c3RhbXAyS0hSKWxvYWQoY29udGV4dCwgInZrQ21kV3JpdGVUaW1lc3RhbXAyS0hSIik7CisgICAg
dGFibGUtPnZrUXVldWVTdWJtaXQyS0hSID0gKFBGTl92a1F1ZXVlU3VibWl0MktIUilsb2FkKGNv
bnRleHQsICJ2a1F1ZXVlU3VibWl0MktIUiIpOworI2VuZGlmIC8qIGRlZmluZWQoVktfS0hSX3N5
bmNocm9uaXphdGlvbjIpICovCisjaWYgZGVmaW5lZChWS19LSFJfc3luY2hyb25pemF0aW9uMikg
JiYgZGVmaW5lZChWS19BTURfYnVmZmVyX21hcmtlcikKKyAgICB0YWJsZS0+dmtDbWRXcml0ZUJ1
ZmZlck1hcmtlcjJBTUQgPSAoUEZOX3ZrQ21kV3JpdGVCdWZmZXJNYXJrZXIyQU1EKWxvYWQoY29u
dGV4dCwgInZrQ21kV3JpdGVCdWZmZXJNYXJrZXIyQU1EIik7CisjZW5kaWYgLyogZGVmaW5lZChW
S19LSFJfc3luY2hyb25pemF0aW9uMikgJiYgZGVmaW5lZChWS19BTURfYnVmZmVyX21hcmtlcikg
Ki8KKyNpZiBkZWZpbmVkKFZLX0tIUl9zeW5jaHJvbml6YXRpb24yKSAmJiBkZWZpbmVkKFZLX05W
X2RldmljZV9kaWFnbm9zdGljX2NoZWNrcG9pbnRzKQorICAgIHRhYmxlLT52a0dldFF1ZXVlQ2hl
Y2twb2ludERhdGEyTlYgPSAoUEZOX3ZrR2V0UXVldWVDaGVja3BvaW50RGF0YTJOVilsb2FkKGNv
bnRleHQsICJ2a0dldFF1ZXVlQ2hlY2twb2ludERhdGEyTlYiKTsKKyNlbmRpZiAvKiBkZWZpbmVk
KFZLX0tIUl9zeW5jaHJvbml6YXRpb24yKSAmJiBkZWZpbmVkKFZLX05WX2RldmljZV9kaWFnbm9z
dGljX2NoZWNrcG9pbnRzKSAqLwogI2lmIGRlZmluZWQoVktfS0hSX3RpbWVsaW5lX3NlbWFwaG9y
ZSkKICAgICB0YWJsZS0+dmtHZXRTZW1hcGhvcmVDb3VudGVyVmFsdWVLSFIgPSAoUEZOX3ZrR2V0
U2VtYXBob3JlQ291bnRlclZhbHVlS0hSKWxvYWQoY29udGV4dCwgInZrR2V0U2VtYXBob3JlQ291
bnRlclZhbHVlS0hSIik7CiAgICAgdGFibGUtPnZrU2lnbmFsU2VtYXBob3JlS0hSID0gKFBGTl92
a1NpZ25hbFNlbWFwaG9yZUtIUilsb2FkKGNvbnRleHQsICJ2a1NpZ25hbFNlbWFwaG9yZUtIUiIp
OwogICAgIHRhYmxlLT52a1dhaXRTZW1hcGhvcmVzS0hSID0gKFBGTl92a1dhaXRTZW1hcGhvcmVz
S0hSKWxvYWQoY29udGV4dCwgInZrV2FpdFNlbWFwaG9yZXNLSFIiKTsKICNlbmRpZiAvKiBkZWZp
bmVkKFZLX0tIUl90aW1lbGluZV9zZW1hcGhvcmUpICovCi0jaWYgZGVmaW5lZChWS19OVlhfZGV2
aWNlX2dlbmVyYXRlZF9jb21tYW5kcykKLSAgICB0YWJsZS0+dmtDbWRQcm9jZXNzQ29tbWFuZHNO
VlggPSAoUEZOX3ZrQ21kUHJvY2Vzc0NvbW1hbmRzTlZYKWxvYWQoY29udGV4dCwgInZrQ21kUHJv
Y2Vzc0NvbW1hbmRzTlZYIik7Ci0gICAgdGFibGUtPnZrQ21kUmVzZXJ2ZVNwYWNlRm9yQ29tbWFu
ZHNOVlggPSAoUEZOX3ZrQ21kUmVzZXJ2ZVNwYWNlRm9yQ29tbWFuZHNOVlgpbG9hZChjb250ZXh0
LCAidmtDbWRSZXNlcnZlU3BhY2VGb3JDb21tYW5kc05WWCIpOwotICAgIHRhYmxlLT52a0NyZWF0
ZUluZGlyZWN0Q29tbWFuZHNMYXlvdXROVlggPSAoUEZOX3ZrQ3JlYXRlSW5kaXJlY3RDb21tYW5k
c0xheW91dE5WWClsb2FkKGNvbnRleHQsICJ2a0NyZWF0ZUluZGlyZWN0Q29tbWFuZHNMYXlvdXRO
VlgiKTsKLSAgICB0YWJsZS0+dmtDcmVhdGVPYmplY3RUYWJsZU5WWCA9IChQRk5fdmtDcmVhdGVP
YmplY3RUYWJsZU5WWClsb2FkKGNvbnRleHQsICJ2a0NyZWF0ZU9iamVjdFRhYmxlTlZYIik7Ci0g
ICAgdGFibGUtPnZrRGVzdHJveUluZGlyZWN0Q29tbWFuZHNMYXlvdXROVlggPSAoUEZOX3ZrRGVz
dHJveUluZGlyZWN0Q29tbWFuZHNMYXlvdXROVlgpbG9hZChjb250ZXh0LCAidmtEZXN0cm95SW5k
aXJlY3RDb21tYW5kc0xheW91dE5WWCIpOwotICAgIHRhYmxlLT52a0Rlc3Ryb3lPYmplY3RUYWJs
ZU5WWCA9IChQRk5fdmtEZXN0cm95T2JqZWN0VGFibGVOVlgpbG9hZChjb250ZXh0LCAidmtEZXN0
cm95T2JqZWN0VGFibGVOVlgiKTsKLSAgICB0YWJsZS0+dmtSZWdpc3Rlck9iamVjdHNOVlggPSAo
UEZOX3ZrUmVnaXN0ZXJPYmplY3RzTlZYKWxvYWQoY29udGV4dCwgInZrUmVnaXN0ZXJPYmplY3Rz
TlZYIik7Ci0gICAgdGFibGUtPnZrVW5yZWdpc3Rlck9iamVjdHNOVlggPSAoUEZOX3ZrVW5yZWdp
c3Rlck9iamVjdHNOVlgpbG9hZChjb250ZXh0LCAidmtVbnJlZ2lzdGVyT2JqZWN0c05WWCIpOwot
I2VuZGlmIC8qIGRlZmluZWQoVktfTlZYX2RldmljZV9nZW5lcmF0ZWRfY29tbWFuZHMpICovCisj
aWYgZGVmaW5lZChWS19LSFJfdmlkZW9fZGVjb2RlX3F1ZXVlKQorICAgIHRhYmxlLT52a0NtZERl
Y29kZVZpZGVvS0hSID0gKFBGTl92a0NtZERlY29kZVZpZGVvS0hSKWxvYWQoY29udGV4dCwgInZr
Q21kRGVjb2RlVmlkZW9LSFIiKTsKKyNlbmRpZiAvKiBkZWZpbmVkKFZLX0tIUl92aWRlb19kZWNv
ZGVfcXVldWUpICovCisjaWYgZGVmaW5lZChWS19LSFJfdmlkZW9fZW5jb2RlX3F1ZXVlKQorICAg
IHRhYmxlLT52a0NtZEVuY29kZVZpZGVvS0hSID0gKFBGTl92a0NtZEVuY29kZVZpZGVvS0hSKWxv
YWQoY29udGV4dCwgInZrQ21kRW5jb2RlVmlkZW9LSFIiKTsKKyNlbmRpZiAvKiBkZWZpbmVkKFZL
X0tIUl92aWRlb19lbmNvZGVfcXVldWUpICovCisjaWYgZGVmaW5lZChWS19LSFJfdmlkZW9fcXVl
dWUpCisgICAgdGFibGUtPnZrQmluZFZpZGVvU2Vzc2lvbk1lbW9yeUtIUiA9IChQRk5fdmtCaW5k
VmlkZW9TZXNzaW9uTWVtb3J5S0hSKWxvYWQoY29udGV4dCwgInZrQmluZFZpZGVvU2Vzc2lvbk1l
bW9yeUtIUiIpOworICAgIHRhYmxlLT52a0NtZEJlZ2luVmlkZW9Db2RpbmdLSFIgPSAoUEZOX3Zr
Q21kQmVnaW5WaWRlb0NvZGluZ0tIUilsb2FkKGNvbnRleHQsICJ2a0NtZEJlZ2luVmlkZW9Db2Rp
bmdLSFIiKTsKKyAgICB0YWJsZS0+dmtDbWRDb250cm9sVmlkZW9Db2RpbmdLSFIgPSAoUEZOX3Zr
Q21kQ29udHJvbFZpZGVvQ29kaW5nS0hSKWxvYWQoY29udGV4dCwgInZrQ21kQ29udHJvbFZpZGVv
Q29kaW5nS0hSIik7CisgICAgdGFibGUtPnZrQ21kRW5kVmlkZW9Db2RpbmdLSFIgPSAoUEZOX3Zr
Q21kRW5kVmlkZW9Db2RpbmdLSFIpbG9hZChjb250ZXh0LCAidmtDbWRFbmRWaWRlb0NvZGluZ0tI
UiIpOworICAgIHRhYmxlLT52a0NyZWF0ZVZpZGVvU2Vzc2lvbktIUiA9IChQRk5fdmtDcmVhdGVW
aWRlb1Nlc3Npb25LSFIpbG9hZChjb250ZXh0LCAidmtDcmVhdGVWaWRlb1Nlc3Npb25LSFIiKTsK
KyAgICB0YWJsZS0+dmtDcmVhdGVWaWRlb1Nlc3Npb25QYXJhbWV0ZXJzS0hSID0gKFBGTl92a0Ny
ZWF0ZVZpZGVvU2Vzc2lvblBhcmFtZXRlcnNLSFIpbG9hZChjb250ZXh0LCAidmtDcmVhdGVWaWRl
b1Nlc3Npb25QYXJhbWV0ZXJzS0hSIik7CisgICAgdGFibGUtPnZrRGVzdHJveVZpZGVvU2Vzc2lv
bktIUiA9IChQRk5fdmtEZXN0cm95VmlkZW9TZXNzaW9uS0hSKWxvYWQoY29udGV4dCwgInZrRGVz
dHJveVZpZGVvU2Vzc2lvbktIUiIpOworICAgIHRhYmxlLT52a0Rlc3Ryb3lWaWRlb1Nlc3Npb25Q
YXJhbWV0ZXJzS0hSID0gKFBGTl92a0Rlc3Ryb3lWaWRlb1Nlc3Npb25QYXJhbWV0ZXJzS0hSKWxv
YWQoY29udGV4dCwgInZrRGVzdHJveVZpZGVvU2Vzc2lvblBhcmFtZXRlcnNLSFIiKTsKKyAgICB0
YWJsZS0+dmtHZXRWaWRlb1Nlc3Npb25NZW1vcnlSZXF1aXJlbWVudHNLSFIgPSAoUEZOX3ZrR2V0
VmlkZW9TZXNzaW9uTWVtb3J5UmVxdWlyZW1lbnRzS0hSKWxvYWQoY29udGV4dCwgInZrR2V0Vmlk
ZW9TZXNzaW9uTWVtb3J5UmVxdWlyZW1lbnRzS0hSIik7CisgICAgdGFibGUtPnZrVXBkYXRlVmlk
ZW9TZXNzaW9uUGFyYW1ldGVyc0tIUiA9IChQRk5fdmtVcGRhdGVWaWRlb1Nlc3Npb25QYXJhbWV0
ZXJzS0hSKWxvYWQoY29udGV4dCwgInZrVXBkYXRlVmlkZW9TZXNzaW9uUGFyYW1ldGVyc0tIUiIp
OworI2VuZGlmIC8qIGRlZmluZWQoVktfS0hSX3ZpZGVvX3F1ZXVlKSAqLworI2lmIGRlZmluZWQo
VktfTlZYX2JpbmFyeV9pbXBvcnQpCisgICAgdGFibGUtPnZrQ21kQ3VMYXVuY2hLZXJuZWxOVlgg
PSAoUEZOX3ZrQ21kQ3VMYXVuY2hLZXJuZWxOVlgpbG9hZChjb250ZXh0LCAidmtDbWRDdUxhdW5j
aEtlcm5lbE5WWCIpOworICAgIHRhYmxlLT52a0NyZWF0ZUN1RnVuY3Rpb25OVlggPSAoUEZOX3Zr
Q3JlYXRlQ3VGdW5jdGlvbk5WWClsb2FkKGNvbnRleHQsICJ2a0NyZWF0ZUN1RnVuY3Rpb25OVlgi
KTsKKyAgICB0YWJsZS0+dmtDcmVhdGVDdU1vZHVsZU5WWCA9IChQRk5fdmtDcmVhdGVDdU1vZHVs
ZU5WWClsb2FkKGNvbnRleHQsICJ2a0NyZWF0ZUN1TW9kdWxlTlZYIik7CisgICAgdGFibGUtPnZr
RGVzdHJveUN1RnVuY3Rpb25OVlggPSAoUEZOX3ZrRGVzdHJveUN1RnVuY3Rpb25OVlgpbG9hZChj
b250ZXh0LCAidmtEZXN0cm95Q3VGdW5jdGlvbk5WWCIpOworICAgIHRhYmxlLT52a0Rlc3Ryb3lD
dU1vZHVsZU5WWCA9IChQRk5fdmtEZXN0cm95Q3VNb2R1bGVOVlgpbG9hZChjb250ZXh0LCAidmtE
ZXN0cm95Q3VNb2R1bGVOVlgiKTsKKyNlbmRpZiAvKiBkZWZpbmVkKFZLX05WWF9iaW5hcnlfaW1w
b3J0KSAqLwogI2lmIGRlZmluZWQoVktfTlZYX2ltYWdlX3ZpZXdfaGFuZGxlKQorICAgIHRhYmxl
LT52a0dldEltYWdlVmlld0FkZHJlc3NOVlggPSAoUEZOX3ZrR2V0SW1hZ2VWaWV3QWRkcmVzc05W
WClsb2FkKGNvbnRleHQsICJ2a0dldEltYWdlVmlld0FkZHJlc3NOVlgiKTsKICAgICB0YWJsZS0+
dmtHZXRJbWFnZVZpZXdIYW5kbGVOVlggPSAoUEZOX3ZrR2V0SW1hZ2VWaWV3SGFuZGxlTlZYKWxv
YWQoY29udGV4dCwgInZrR2V0SW1hZ2VWaWV3SGFuZGxlTlZYIik7CiAjZW5kaWYgLyogZGVmaW5l
ZChWS19OVlhfaW1hZ2Vfdmlld19oYW5kbGUpICovCiAjaWYgZGVmaW5lZChWS19OVl9jbGlwX3Nw
YWNlX3dfc2NhbGluZykKQEAgLTEwNzUsOSArMTUyMiwyMyBAQCBzdGF0aWMgdm9pZCB2b2xrR2Vu
TG9hZERldmljZVRhYmxlKHN0cnVjdCBWb2xrRGV2aWNlVGFibGUqIHRhYmxlLCB2b2lkKiBjb250
ZXh0LAogICAgIHRhYmxlLT52a0NtZFNldENoZWNrcG9pbnROViA9IChQRk5fdmtDbWRTZXRDaGVj
a3BvaW50TlYpbG9hZChjb250ZXh0LCAidmtDbWRTZXRDaGVja3BvaW50TlYiKTsKICAgICB0YWJs
ZS0+dmtHZXRRdWV1ZUNoZWNrcG9pbnREYXRhTlYgPSAoUEZOX3ZrR2V0UXVldWVDaGVja3BvaW50
RGF0YU5WKWxvYWQoY29udGV4dCwgInZrR2V0UXVldWVDaGVja3BvaW50RGF0YU5WIik7CiAjZW5k
aWYgLyogZGVmaW5lZChWS19OVl9kZXZpY2VfZGlhZ25vc3RpY19jaGVja3BvaW50cykgKi8KKyNp
ZiBkZWZpbmVkKFZLX05WX2RldmljZV9nZW5lcmF0ZWRfY29tbWFuZHMpCisgICAgdGFibGUtPnZr
Q21kQmluZFBpcGVsaW5lU2hhZGVyR3JvdXBOViA9IChQRk5fdmtDbWRCaW5kUGlwZWxpbmVTaGFk
ZXJHcm91cE5WKWxvYWQoY29udGV4dCwgInZrQ21kQmluZFBpcGVsaW5lU2hhZGVyR3JvdXBOViIp
OworICAgIHRhYmxlLT52a0NtZEV4ZWN1dGVHZW5lcmF0ZWRDb21tYW5kc05WID0gKFBGTl92a0Nt
ZEV4ZWN1dGVHZW5lcmF0ZWRDb21tYW5kc05WKWxvYWQoY29udGV4dCwgInZrQ21kRXhlY3V0ZUdl
bmVyYXRlZENvbW1hbmRzTlYiKTsKKyAgICB0YWJsZS0+dmtDbWRQcmVwcm9jZXNzR2VuZXJhdGVk
Q29tbWFuZHNOViA9IChQRk5fdmtDbWRQcmVwcm9jZXNzR2VuZXJhdGVkQ29tbWFuZHNOVilsb2Fk
KGNvbnRleHQsICJ2a0NtZFByZXByb2Nlc3NHZW5lcmF0ZWRDb21tYW5kc05WIik7CisgICAgdGFi
bGUtPnZrQ3JlYXRlSW5kaXJlY3RDb21tYW5kc0xheW91dE5WID0gKFBGTl92a0NyZWF0ZUluZGly
ZWN0Q29tbWFuZHNMYXlvdXROVilsb2FkKGNvbnRleHQsICJ2a0NyZWF0ZUluZGlyZWN0Q29tbWFu
ZHNMYXlvdXROViIpOworICAgIHRhYmxlLT52a0Rlc3Ryb3lJbmRpcmVjdENvbW1hbmRzTGF5b3V0
TlYgPSAoUEZOX3ZrRGVzdHJveUluZGlyZWN0Q29tbWFuZHNMYXlvdXROVilsb2FkKGNvbnRleHQs
ICJ2a0Rlc3Ryb3lJbmRpcmVjdENvbW1hbmRzTGF5b3V0TlYiKTsKKyAgICB0YWJsZS0+dmtHZXRH
ZW5lcmF0ZWRDb21tYW5kc01lbW9yeVJlcXVpcmVtZW50c05WID0gKFBGTl92a0dldEdlbmVyYXRl
ZENvbW1hbmRzTWVtb3J5UmVxdWlyZW1lbnRzTlYpbG9hZChjb250ZXh0LCAidmtHZXRHZW5lcmF0
ZWRDb21tYW5kc01lbW9yeVJlcXVpcmVtZW50c05WIik7CisjZW5kaWYgLyogZGVmaW5lZChWS19O
Vl9kZXZpY2VfZ2VuZXJhdGVkX2NvbW1hbmRzKSAqLworI2lmIGRlZmluZWQoVktfTlZfZXh0ZXJu
YWxfbWVtb3J5X3JkbWEpCisgICAgdGFibGUtPnZrR2V0TWVtb3J5UmVtb3RlQWRkcmVzc05WID0g
KFBGTl92a0dldE1lbW9yeVJlbW90ZUFkZHJlc3NOVilsb2FkKGNvbnRleHQsICJ2a0dldE1lbW9y
eVJlbW90ZUFkZHJlc3NOViIpOworI2VuZGlmIC8qIGRlZmluZWQoVktfTlZfZXh0ZXJuYWxfbWVt
b3J5X3JkbWEpICovCiAjaWYgZGVmaW5lZChWS19OVl9leHRlcm5hbF9tZW1vcnlfd2luMzIpCiAg
ICAgdGFibGUtPnZrR2V0TWVtb3J5V2luMzJIYW5kbGVOViA9IChQRk5fdmtHZXRNZW1vcnlXaW4z
MkhhbmRsZU5WKWxvYWQoY29udGV4dCwgInZrR2V0TWVtb3J5V2luMzJIYW5kbGVOViIpOwogI2Vu
ZGlmIC8qIGRlZmluZWQoVktfTlZfZXh0ZXJuYWxfbWVtb3J5X3dpbjMyKSAqLworI2lmIGRlZmlu
ZWQoVktfTlZfZnJhZ21lbnRfc2hhZGluZ19yYXRlX2VudW1zKQorICAgIHRhYmxlLT52a0NtZFNl
dEZyYWdtZW50U2hhZGluZ1JhdGVFbnVtTlYgPSAoUEZOX3ZrQ21kU2V0RnJhZ21lbnRTaGFkaW5n
UmF0ZUVudW1OVilsb2FkKGNvbnRleHQsICJ2a0NtZFNldEZyYWdtZW50U2hhZGluZ1JhdGVFbnVt
TlYiKTsKKyNlbmRpZiAvKiBkZWZpbmVkKFZLX05WX2ZyYWdtZW50X3NoYWRpbmdfcmF0ZV9lbnVt
cykgKi8KICNpZiBkZWZpbmVkKFZLX05WX21lc2hfc2hhZGVyKQogICAgIHRhYmxlLT52a0NtZERy
YXdNZXNoVGFza3NJbmRpcmVjdENvdW50TlYgPSAoUEZOX3ZrQ21kRHJhd01lc2hUYXNrc0luZGly
ZWN0Q291bnROVilsb2FkKGNvbnRleHQsICJ2a0NtZERyYXdNZXNoVGFza3NJbmRpcmVjdENvdW50
TlYiKTsKICAgICB0YWJsZS0+dmtDbWREcmF3TWVzaFRhc2tzSW5kaXJlY3ROViA9IChQRk5fdmtD
bWREcmF3TWVzaFRhc2tzSW5kaXJlY3ROVilsb2FkKGNvbnRleHQsICJ2a0NtZERyYXdNZXNoVGFz
a3NJbmRpcmVjdE5WIik7CkBAIC0xMTA4LDkgKzE1NjksOSBAQCBzdGF0aWMgdm9pZCB2b2xrR2Vu
TG9hZERldmljZVRhYmxlKHN0cnVjdCBWb2xrRGV2aWNlVGFibGUqIHRhYmxlLCB2b2lkKiBjb250
ZXh0LAogI2lmIChkZWZpbmVkKFZLX0VYVF9mdWxsX3NjcmVlbl9leGNsdXNpdmUpICYmIGRlZmlu
ZWQoVktfS0hSX2RldmljZV9ncm91cCkpIHx8IChkZWZpbmVkKFZLX0VYVF9mdWxsX3NjcmVlbl9l
eGNsdXNpdmUpICYmIGRlZmluZWQoVktfVkVSU0lPTl8xXzEpKQogICAgIHRhYmxlLT52a0dldERl
dmljZUdyb3VwU3VyZmFjZVByZXNlbnRNb2RlczJFWFQgPSAoUEZOX3ZrR2V0RGV2aWNlR3JvdXBT
dXJmYWNlUHJlc2VudE1vZGVzMkVYVClsb2FkKGNvbnRleHQsICJ2a0dldERldmljZUdyb3VwU3Vy
ZmFjZVByZXNlbnRNb2RlczJFWFQiKTsKICNlbmRpZiAvKiAoZGVmaW5lZChWS19FWFRfZnVsbF9z
Y3JlZW5fZXhjbHVzaXZlKSAmJiBkZWZpbmVkKFZLX0tIUl9kZXZpY2VfZ3JvdXApKSB8fCAoZGVm
aW5lZChWS19FWFRfZnVsbF9zY3JlZW5fZXhjbHVzaXZlKSAmJiBkZWZpbmVkKFZLX1ZFUlNJT05f
MV8xKSkgKi8KLSNpZiAoZGVmaW5lZChWS19LSFJfZGVzY3JpcHRvcl91cGRhdGVfdGVtcGxhdGUp
ICYmIGRlZmluZWQoVktfS0hSX3B1c2hfZGVzY3JpcHRvcikpIHx8IChkZWZpbmVkKFZLX0tIUl9w
dXNoX2Rlc2NyaXB0b3IpICYmIGRlZmluZWQoVktfVkVSU0lPTl8xXzEpKQorI2lmIChkZWZpbmVk
KFZLX0tIUl9kZXNjcmlwdG9yX3VwZGF0ZV90ZW1wbGF0ZSkgJiYgZGVmaW5lZChWS19LSFJfcHVz
aF9kZXNjcmlwdG9yKSkgfHwgKGRlZmluZWQoVktfS0hSX3B1c2hfZGVzY3JpcHRvcikgJiYgZGVm
aW5lZChWS19WRVJTSU9OXzFfMSkpIHx8IChkZWZpbmVkKFZLX0tIUl9wdXNoX2Rlc2NyaXB0b3Ip
ICYmIGRlZmluZWQoVktfS0hSX2Rlc2NyaXB0b3JfdXBkYXRlX3RlbXBsYXRlKSkKICAgICB0YWJs
ZS0+dmtDbWRQdXNoRGVzY3JpcHRvclNldFdpdGhUZW1wbGF0ZUtIUiA9IChQRk5fdmtDbWRQdXNo
RGVzY3JpcHRvclNldFdpdGhUZW1wbGF0ZUtIUilsb2FkKGNvbnRleHQsICJ2a0NtZFB1c2hEZXNj
cmlwdG9yU2V0V2l0aFRlbXBsYXRlS0hSIik7Ci0jZW5kaWYgLyogKGRlZmluZWQoVktfS0hSX2Rl
c2NyaXB0b3JfdXBkYXRlX3RlbXBsYXRlKSAmJiBkZWZpbmVkKFZLX0tIUl9wdXNoX2Rlc2NyaXB0
b3IpKSB8fCAoZGVmaW5lZChWS19LSFJfcHVzaF9kZXNjcmlwdG9yKSAmJiBkZWZpbmVkKFZLX1ZF
UlNJT05fMV8xKSkgKi8KKyNlbmRpZiAvKiAoZGVmaW5lZChWS19LSFJfZGVzY3JpcHRvcl91cGRh
dGVfdGVtcGxhdGUpICYmIGRlZmluZWQoVktfS0hSX3B1c2hfZGVzY3JpcHRvcikpIHx8IChkZWZp
bmVkKFZLX0tIUl9wdXNoX2Rlc2NyaXB0b3IpICYmIGRlZmluZWQoVktfVkVSU0lPTl8xXzEpKSB8
fCAoZGVmaW5lZChWS19LSFJfcHVzaF9kZXNjcmlwdG9yKSAmJiBkZWZpbmVkKFZLX0tIUl9kZXNj
cmlwdG9yX3VwZGF0ZV90ZW1wbGF0ZSkpICovCiAjaWYgKGRlZmluZWQoVktfS0hSX2RldmljZV9n
cm91cCkgJiYgZGVmaW5lZChWS19LSFJfc3VyZmFjZSkpIHx8IChkZWZpbmVkKFZLX0tIUl9zd2Fw
Y2hhaW4pICYmIGRlZmluZWQoVktfVkVSU0lPTl8xXzEpKQogICAgIHRhYmxlLT52a0dldERldmlj
ZUdyb3VwUHJlc2VudENhcGFiaWxpdGllc0tIUiA9IChQRk5fdmtHZXREZXZpY2VHcm91cFByZXNl
bnRDYXBhYmlsaXRpZXNLSFIpbG9hZChjb250ZXh0LCAidmtHZXREZXZpY2VHcm91cFByZXNlbnRD
YXBhYmlsaXRpZXNLSFIiKTsKICAgICB0YWJsZS0+dmtHZXREZXZpY2VHcm91cFN1cmZhY2VQcmVz
ZW50TW9kZXNLSFIgPSAoUEZOX3ZrR2V0RGV2aWNlR3JvdXBTdXJmYWNlUHJlc2VudE1vZGVzS0hS
KWxvYWQoY29udGV4dCwgInZrR2V0RGV2aWNlR3JvdXBTdXJmYWNlUHJlc2VudE1vZGVzS0hSIik7
CkBAIC0xMTIyLDggKzE1ODMsMTIgQEAgc3RhdGljIHZvaWQgdm9sa0dlbkxvYWREZXZpY2VUYWJs
ZShzdHJ1Y3QgVm9sa0RldmljZVRhYmxlKiB0YWJsZSwgdm9pZCogY29udGV4dCwKIH0KIAogI2lm
ZGVmIF9fR05VQ19fCisjaWZkZWYgVk9MS19ERUZBVUxUX1ZJU0lCSUxJVFkKKyMgICBwcmFnbWEg
R0NDIHZpc2liaWxpdHkgcHVzaChkZWZhdWx0KQorI2Vsc2UKICMgICBwcmFnbWEgR0NDIHZpc2li
aWxpdHkgcHVzaChoaWRkZW4pCiAjZW5kaWYKKyNlbmRpZgogCiAvKiBWT0xLX0dFTkVSQVRFX1BS
T1RPVFlQRVNfQyAqLwogI2lmIGRlZmluZWQoVktfVkVSU0lPTl8xXzApCkBAIC0xMjk1LDYgKzE3
NjAsNjAgQEAgUEZOX3ZrR2V0UGh5c2ljYWxEZXZpY2VTcGFyc2VJbWFnZUZvcm1hdFByb3BlcnRp
ZXMyIHZrR2V0UGh5c2ljYWxEZXZpY2VTcGFyc2VJbWEKIFBGTl92a1RyaW1Db21tYW5kUG9vbCB2
a1RyaW1Db21tYW5kUG9vbDsKIFBGTl92a1VwZGF0ZURlc2NyaXB0b3JTZXRXaXRoVGVtcGxhdGUg
dmtVcGRhdGVEZXNjcmlwdG9yU2V0V2l0aFRlbXBsYXRlOwogI2VuZGlmIC8qIGRlZmluZWQoVktf
VkVSU0lPTl8xXzEpICovCisjaWYgZGVmaW5lZChWS19WRVJTSU9OXzFfMikKK1BGTl92a0NtZEJl
Z2luUmVuZGVyUGFzczIgdmtDbWRCZWdpblJlbmRlclBhc3MyOworUEZOX3ZrQ21kRHJhd0luZGV4
ZWRJbmRpcmVjdENvdW50IHZrQ21kRHJhd0luZGV4ZWRJbmRpcmVjdENvdW50OworUEZOX3ZrQ21k
RHJhd0luZGlyZWN0Q291bnQgdmtDbWREcmF3SW5kaXJlY3RDb3VudDsKK1BGTl92a0NtZEVuZFJl
bmRlclBhc3MyIHZrQ21kRW5kUmVuZGVyUGFzczI7CitQRk5fdmtDbWROZXh0U3VicGFzczIgdmtD
bWROZXh0U3VicGFzczI7CitQRk5fdmtDcmVhdGVSZW5kZXJQYXNzMiB2a0NyZWF0ZVJlbmRlclBh
c3MyOworUEZOX3ZrR2V0QnVmZmVyRGV2aWNlQWRkcmVzcyB2a0dldEJ1ZmZlckRldmljZUFkZHJl
c3M7CitQRk5fdmtHZXRCdWZmZXJPcGFxdWVDYXB0dXJlQWRkcmVzcyB2a0dldEJ1ZmZlck9wYXF1
ZUNhcHR1cmVBZGRyZXNzOworUEZOX3ZrR2V0RGV2aWNlTWVtb3J5T3BhcXVlQ2FwdHVyZUFkZHJl
c3MgdmtHZXREZXZpY2VNZW1vcnlPcGFxdWVDYXB0dXJlQWRkcmVzczsKK1BGTl92a0dldFNlbWFw
aG9yZUNvdW50ZXJWYWx1ZSB2a0dldFNlbWFwaG9yZUNvdW50ZXJWYWx1ZTsKK1BGTl92a1Jlc2V0
UXVlcnlQb29sIHZrUmVzZXRRdWVyeVBvb2w7CitQRk5fdmtTaWduYWxTZW1hcGhvcmUgdmtTaWdu
YWxTZW1hcGhvcmU7CitQRk5fdmtXYWl0U2VtYXBob3JlcyB2a1dhaXRTZW1hcGhvcmVzOworI2Vu
ZGlmIC8qIGRlZmluZWQoVktfVkVSU0lPTl8xXzIpICovCisjaWYgZGVmaW5lZChWS19WRVJTSU9O
XzFfMykKK1BGTl92a0NtZEJlZ2luUmVuZGVyaW5nIHZrQ21kQmVnaW5SZW5kZXJpbmc7CitQRk5f
dmtDbWRCaW5kVmVydGV4QnVmZmVyczIgdmtDbWRCaW5kVmVydGV4QnVmZmVyczI7CitQRk5fdmtD
bWRCbGl0SW1hZ2UyIHZrQ21kQmxpdEltYWdlMjsKK1BGTl92a0NtZENvcHlCdWZmZXIyIHZrQ21k
Q29weUJ1ZmZlcjI7CitQRk5fdmtDbWRDb3B5QnVmZmVyVG9JbWFnZTIgdmtDbWRDb3B5QnVmZmVy
VG9JbWFnZTI7CitQRk5fdmtDbWRDb3B5SW1hZ2UyIHZrQ21kQ29weUltYWdlMjsKK1BGTl92a0Nt
ZENvcHlJbWFnZVRvQnVmZmVyMiB2a0NtZENvcHlJbWFnZVRvQnVmZmVyMjsKK1BGTl92a0NtZEVu
ZFJlbmRlcmluZyB2a0NtZEVuZFJlbmRlcmluZzsKK1BGTl92a0NtZFBpcGVsaW5lQmFycmllcjIg
dmtDbWRQaXBlbGluZUJhcnJpZXIyOworUEZOX3ZrQ21kUmVzZXRFdmVudDIgdmtDbWRSZXNldEV2
ZW50MjsKK1BGTl92a0NtZFJlc29sdmVJbWFnZTIgdmtDbWRSZXNvbHZlSW1hZ2UyOworUEZOX3Zr
Q21kU2V0Q3VsbE1vZGUgdmtDbWRTZXRDdWxsTW9kZTsKK1BGTl92a0NtZFNldERlcHRoQmlhc0Vu
YWJsZSB2a0NtZFNldERlcHRoQmlhc0VuYWJsZTsKK1BGTl92a0NtZFNldERlcHRoQm91bmRzVGVz
dEVuYWJsZSB2a0NtZFNldERlcHRoQm91bmRzVGVzdEVuYWJsZTsKK1BGTl92a0NtZFNldERlcHRo
Q29tcGFyZU9wIHZrQ21kU2V0RGVwdGhDb21wYXJlT3A7CitQRk5fdmtDbWRTZXREZXB0aFRlc3RF
bmFibGUgdmtDbWRTZXREZXB0aFRlc3RFbmFibGU7CitQRk5fdmtDbWRTZXREZXB0aFdyaXRlRW5h
YmxlIHZrQ21kU2V0RGVwdGhXcml0ZUVuYWJsZTsKK1BGTl92a0NtZFNldEV2ZW50MiB2a0NtZFNl
dEV2ZW50MjsKK1BGTl92a0NtZFNldEZyb250RmFjZSB2a0NtZFNldEZyb250RmFjZTsKK1BGTl92
a0NtZFNldFByaW1pdGl2ZVJlc3RhcnRFbmFibGUgdmtDbWRTZXRQcmltaXRpdmVSZXN0YXJ0RW5h
YmxlOworUEZOX3ZrQ21kU2V0UHJpbWl0aXZlVG9wb2xvZ3kgdmtDbWRTZXRQcmltaXRpdmVUb3Bv
bG9neTsKK1BGTl92a0NtZFNldFJhc3Rlcml6ZXJEaXNjYXJkRW5hYmxlIHZrQ21kU2V0UmFzdGVy
aXplckRpc2NhcmRFbmFibGU7CitQRk5fdmtDbWRTZXRTY2lzc29yV2l0aENvdW50IHZrQ21kU2V0
U2Npc3NvcldpdGhDb3VudDsKK1BGTl92a0NtZFNldFN0ZW5jaWxPcCB2a0NtZFNldFN0ZW5jaWxP
cDsKK1BGTl92a0NtZFNldFN0ZW5jaWxUZXN0RW5hYmxlIHZrQ21kU2V0U3RlbmNpbFRlc3RFbmFi
bGU7CitQRk5fdmtDbWRTZXRWaWV3cG9ydFdpdGhDb3VudCB2a0NtZFNldFZpZXdwb3J0V2l0aENv
dW50OworUEZOX3ZrQ21kV2FpdEV2ZW50czIgdmtDbWRXYWl0RXZlbnRzMjsKK1BGTl92a0NtZFdy
aXRlVGltZXN0YW1wMiB2a0NtZFdyaXRlVGltZXN0YW1wMjsKK1BGTl92a0NyZWF0ZVByaXZhdGVE
YXRhU2xvdCB2a0NyZWF0ZVByaXZhdGVEYXRhU2xvdDsKK1BGTl92a0Rlc3Ryb3lQcml2YXRlRGF0
YVNsb3QgdmtEZXN0cm95UHJpdmF0ZURhdGFTbG90OworUEZOX3ZrR2V0RGV2aWNlQnVmZmVyTWVt
b3J5UmVxdWlyZW1lbnRzIHZrR2V0RGV2aWNlQnVmZmVyTWVtb3J5UmVxdWlyZW1lbnRzOworUEZO
X3ZrR2V0RGV2aWNlSW1hZ2VNZW1vcnlSZXF1aXJlbWVudHMgdmtHZXREZXZpY2VJbWFnZU1lbW9y
eVJlcXVpcmVtZW50czsKK1BGTl92a0dldERldmljZUltYWdlU3BhcnNlTWVtb3J5UmVxdWlyZW1l
bnRzIHZrR2V0RGV2aWNlSW1hZ2VTcGFyc2VNZW1vcnlSZXF1aXJlbWVudHM7CitQRk5fdmtHZXRQ
aHlzaWNhbERldmljZVRvb2xQcm9wZXJ0aWVzIHZrR2V0UGh5c2ljYWxEZXZpY2VUb29sUHJvcGVy
dGllczsKK1BGTl92a0dldFByaXZhdGVEYXRhIHZrR2V0UHJpdmF0ZURhdGE7CitQRk5fdmtRdWV1
ZVN1Ym1pdDIgdmtRdWV1ZVN1Ym1pdDI7CitQRk5fdmtTZXRQcml2YXRlRGF0YSB2a1NldFByaXZh
dGVEYXRhOworI2VuZGlmIC8qIGRlZmluZWQoVktfVkVSU0lPTl8xXzMpICovCiAjaWYgZGVmaW5l
ZChWS19BTURfYnVmZmVyX21hcmtlcikKIFBGTl92a0NtZFdyaXRlQnVmZmVyTWFya2VyQU1EIHZr
Q21kV3JpdGVCdWZmZXJNYXJrZXJBTUQ7CiAjZW5kaWYgLyogZGVmaW5lZChWS19BTURfYnVmZmVy
X21hcmtlcikgKi8KQEAgLTEzMTIsNiArMTgzMSwxMCBAQCBQRk5fdmtHZXRTaGFkZXJJbmZvQU1E
IHZrR2V0U2hhZGVySW5mb0FNRDsKIFBGTl92a0dldEFuZHJvaWRIYXJkd2FyZUJ1ZmZlclByb3Bl
cnRpZXNBTkRST0lEIHZrR2V0QW5kcm9pZEhhcmR3YXJlQnVmZmVyUHJvcGVydGllc0FORFJPSUQ7
CiBQRk5fdmtHZXRNZW1vcnlBbmRyb2lkSGFyZHdhcmVCdWZmZXJBTkRST0lEIHZrR2V0TWVtb3J5
QW5kcm9pZEhhcmR3YXJlQnVmZmVyQU5EUk9JRDsKICNlbmRpZiAvKiBkZWZpbmVkKFZLX0FORFJP
SURfZXh0ZXJuYWxfbWVtb3J5X2FuZHJvaWRfaGFyZHdhcmVfYnVmZmVyKSAqLworI2lmIGRlZmlu
ZWQoVktfRVhUX2FjcXVpcmVfZHJtX2Rpc3BsYXkpCitQRk5fdmtBY3F1aXJlRHJtRGlzcGxheUVY
VCB2a0FjcXVpcmVEcm1EaXNwbGF5RVhUOworUEZOX3ZrR2V0RHJtRGlzcGxheUVYVCB2a0dldERy
bURpc3BsYXlFWFQ7CisjZW5kaWYgLyogZGVmaW5lZChWS19FWFRfYWNxdWlyZV9kcm1fZGlzcGxh
eSkgKi8KICNpZiBkZWZpbmVkKFZLX0VYVF9hY3F1aXJlX3hsaWJfZGlzcGxheSkKIFBGTl92a0Fj
cXVpcmVYbGliRGlzcGxheUVYVCB2a0FjcXVpcmVYbGliRGlzcGxheUVYVDsKIFBGTl92a0dldFJh
bmRST3V0cHV0RGlzcGxheUVYVCB2a0dldFJhbmRST3V0cHV0RGlzcGxheUVYVDsKQEAgLTEzMjMs
NiArMTg0Niw5IEBAIFBGTl92a0dldEJ1ZmZlckRldmljZUFkZHJlc3NFWFQgdmtHZXRCdWZmZXJE
ZXZpY2VBZGRyZXNzRVhUOwogUEZOX3ZrR2V0Q2FsaWJyYXRlZFRpbWVzdGFtcHNFWFQgdmtHZXRD
YWxpYnJhdGVkVGltZXN0YW1wc0VYVDsKIFBGTl92a0dldFBoeXNpY2FsRGV2aWNlQ2FsaWJyYXRl
YWJsZVRpbWVEb21haW5zRVhUIHZrR2V0UGh5c2ljYWxEZXZpY2VDYWxpYnJhdGVhYmxlVGltZURv
bWFpbnNFWFQ7CiAjZW5kaWYgLyogZGVmaW5lZChWS19FWFRfY2FsaWJyYXRlZF90aW1lc3RhbXBz
KSAqLworI2lmIGRlZmluZWQoVktfRVhUX2NvbG9yX3dyaXRlX2VuYWJsZSkKK1BGTl92a0NtZFNl
dENvbG9yV3JpdGVFbmFibGVFWFQgdmtDbWRTZXRDb2xvcldyaXRlRW5hYmxlRVhUOworI2VuZGlm
IC8qIGRlZmluZWQoVktfRVhUX2NvbG9yX3dyaXRlX2VuYWJsZSkgKi8KICNpZiBkZWZpbmVkKFZL
X0VYVF9jb25kaXRpb25hbF9yZW5kZXJpbmcpCiBQRk5fdmtDbWRCZWdpbkNvbmRpdGlvbmFsUmVu
ZGVyaW5nRVhUIHZrQ21kQmVnaW5Db25kaXRpb25hbFJlbmRlcmluZ0VYVDsKIFBGTl92a0NtZEVu
ZENvbmRpdGlvbmFsUmVuZGVyaW5nRVhUIHZrQ21kRW5kQ29uZGl0aW9uYWxSZW5kZXJpbmdFWFQ7
CkBAIC0xMzU1LDYgKzE4ODEsMTAgQEAgUEZOX3ZrU3VibWl0RGVidWdVdGlsc01lc3NhZ2VFWFQg
dmtTdWJtaXREZWJ1Z1V0aWxzTWVzc2FnZUVYVDsKICNpZiBkZWZpbmVkKFZLX0VYVF9kaXJlY3Rf
bW9kZV9kaXNwbGF5KQogUEZOX3ZrUmVsZWFzZURpc3BsYXlFWFQgdmtSZWxlYXNlRGlzcGxheUVY
VDsKICNlbmRpZiAvKiBkZWZpbmVkKFZLX0VYVF9kaXJlY3RfbW9kZV9kaXNwbGF5KSAqLworI2lm
IGRlZmluZWQoVktfRVhUX2RpcmVjdGZiX3N1cmZhY2UpCitQRk5fdmtDcmVhdGVEaXJlY3RGQlN1
cmZhY2VFWFQgdmtDcmVhdGVEaXJlY3RGQlN1cmZhY2VFWFQ7CitQRk5fdmtHZXRQaHlzaWNhbERl
dmljZURpcmVjdEZCUHJlc2VudGF0aW9uU3VwcG9ydEVYVCB2a0dldFBoeXNpY2FsRGV2aWNlRGly
ZWN0RkJQcmVzZW50YXRpb25TdXBwb3J0RVhUOworI2VuZGlmIC8qIGRlZmluZWQoVktfRVhUX2Rp
cmVjdGZiX3N1cmZhY2UpICovCiAjaWYgZGVmaW5lZChWS19FWFRfZGlzY2FyZF9yZWN0YW5nbGVz
KQogUEZOX3ZrQ21kU2V0RGlzY2FyZFJlY3RhbmdsZUVYVCB2a0NtZFNldERpc2NhcmRSZWN0YW5n
bGVFWFQ7CiAjZW5kaWYgLyogZGVmaW5lZChWS19FWFRfZGlzY2FyZF9yZWN0YW5nbGVzKSAqLwpA
QCAtMTM2Nyw2ICsxODk3LDI3IEBAIFBGTl92a1JlZ2lzdGVyRGlzcGxheUV2ZW50RVhUIHZrUmVn
aXN0ZXJEaXNwbGF5RXZlbnRFWFQ7CiAjaWYgZGVmaW5lZChWS19FWFRfZGlzcGxheV9zdXJmYWNl
X2NvdW50ZXIpCiBQRk5fdmtHZXRQaHlzaWNhbERldmljZVN1cmZhY2VDYXBhYmlsaXRpZXMyRVhU
IHZrR2V0UGh5c2ljYWxEZXZpY2VTdXJmYWNlQ2FwYWJpbGl0aWVzMkVYVDsKICNlbmRpZiAvKiBk
ZWZpbmVkKFZLX0VYVF9kaXNwbGF5X3N1cmZhY2VfY291bnRlcikgKi8KKyNpZiBkZWZpbmVkKFZL
X0VYVF9leHRlbmRlZF9keW5hbWljX3N0YXRlKQorUEZOX3ZrQ21kQmluZFZlcnRleEJ1ZmZlcnMy
RVhUIHZrQ21kQmluZFZlcnRleEJ1ZmZlcnMyRVhUOworUEZOX3ZrQ21kU2V0Q3VsbE1vZGVFWFQg
dmtDbWRTZXRDdWxsTW9kZUVYVDsKK1BGTl92a0NtZFNldERlcHRoQm91bmRzVGVzdEVuYWJsZUVY
VCB2a0NtZFNldERlcHRoQm91bmRzVGVzdEVuYWJsZUVYVDsKK1BGTl92a0NtZFNldERlcHRoQ29t
cGFyZU9wRVhUIHZrQ21kU2V0RGVwdGhDb21wYXJlT3BFWFQ7CitQRk5fdmtDbWRTZXREZXB0aFRl
c3RFbmFibGVFWFQgdmtDbWRTZXREZXB0aFRlc3RFbmFibGVFWFQ7CitQRk5fdmtDbWRTZXREZXB0
aFdyaXRlRW5hYmxlRVhUIHZrQ21kU2V0RGVwdGhXcml0ZUVuYWJsZUVYVDsKK1BGTl92a0NtZFNl
dEZyb250RmFjZUVYVCB2a0NtZFNldEZyb250RmFjZUVYVDsKK1BGTl92a0NtZFNldFByaW1pdGl2
ZVRvcG9sb2d5RVhUIHZrQ21kU2V0UHJpbWl0aXZlVG9wb2xvZ3lFWFQ7CitQRk5fdmtDbWRTZXRT
Y2lzc29yV2l0aENvdW50RVhUIHZrQ21kU2V0U2Npc3NvcldpdGhDb3VudEVYVDsKK1BGTl92a0Nt
ZFNldFN0ZW5jaWxPcEVYVCB2a0NtZFNldFN0ZW5jaWxPcEVYVDsKK1BGTl92a0NtZFNldFN0ZW5j
aWxUZXN0RW5hYmxlRVhUIHZrQ21kU2V0U3RlbmNpbFRlc3RFbmFibGVFWFQ7CitQRk5fdmtDbWRT
ZXRWaWV3cG9ydFdpdGhDb3VudEVYVCB2a0NtZFNldFZpZXdwb3J0V2l0aENvdW50RVhUOworI2Vu
ZGlmIC8qIGRlZmluZWQoVktfRVhUX2V4dGVuZGVkX2R5bmFtaWNfc3RhdGUpICovCisjaWYgZGVm
aW5lZChWS19FWFRfZXh0ZW5kZWRfZHluYW1pY19zdGF0ZTIpCitQRk5fdmtDbWRTZXREZXB0aEJp
YXNFbmFibGVFWFQgdmtDbWRTZXREZXB0aEJpYXNFbmFibGVFWFQ7CitQRk5fdmtDbWRTZXRMb2dp
Y09wRVhUIHZrQ21kU2V0TG9naWNPcEVYVDsKK1BGTl92a0NtZFNldFBhdGNoQ29udHJvbFBvaW50
c0VYVCB2a0NtZFNldFBhdGNoQ29udHJvbFBvaW50c0VYVDsKK1BGTl92a0NtZFNldFByaW1pdGl2
ZVJlc3RhcnRFbmFibGVFWFQgdmtDbWRTZXRQcmltaXRpdmVSZXN0YXJ0RW5hYmxlRVhUOworUEZO
X3ZrQ21kU2V0UmFzdGVyaXplckRpc2NhcmRFbmFibGVFWFQgdmtDbWRTZXRSYXN0ZXJpemVyRGlz
Y2FyZEVuYWJsZUVYVDsKKyNlbmRpZiAvKiBkZWZpbmVkKFZLX0VYVF9leHRlbmRlZF9keW5hbWlj
X3N0YXRlMikgKi8KICNpZiBkZWZpbmVkKFZLX0VYVF9leHRlcm5hbF9tZW1vcnlfaG9zdCkKIFBG
Tl92a0dldE1lbW9yeUhvc3RQb2ludGVyUHJvcGVydGllc0VYVCB2a0dldE1lbW9yeUhvc3RQb2lu
dGVyUHJvcGVydGllc0VYVDsKICNlbmRpZiAvKiBkZWZpbmVkKFZLX0VYVF9leHRlcm5hbF9tZW1v
cnlfaG9zdCkgKi8KQEAgLTEzOTMsNiArMTk0NCwxOSBAQCBQRk5fdmtDbWRTZXRMaW5lU3RpcHBs
ZUVYVCB2a0NtZFNldExpbmVTdGlwcGxlRVhUOwogI2lmIGRlZmluZWQoVktfRVhUX21ldGFsX3N1
cmZhY2UpCiBQRk5fdmtDcmVhdGVNZXRhbFN1cmZhY2VFWFQgdmtDcmVhdGVNZXRhbFN1cmZhY2VF
WFQ7CiAjZW5kaWYgLyogZGVmaW5lZChWS19FWFRfbWV0YWxfc3VyZmFjZSkgKi8KKyNpZiBkZWZp
bmVkKFZLX0VYVF9tdWx0aV9kcmF3KQorUEZOX3ZrQ21kRHJhd011bHRpRVhUIHZrQ21kRHJhd011
bHRpRVhUOworUEZOX3ZrQ21kRHJhd011bHRpSW5kZXhlZEVYVCB2a0NtZERyYXdNdWx0aUluZGV4
ZWRFWFQ7CisjZW5kaWYgLyogZGVmaW5lZChWS19FWFRfbXVsdGlfZHJhdykgKi8KKyNpZiBkZWZp
bmVkKFZLX0VYVF9wYWdlYWJsZV9kZXZpY2VfbG9jYWxfbWVtb3J5KQorUEZOX3ZrU2V0RGV2aWNl
TWVtb3J5UHJpb3JpdHlFWFQgdmtTZXREZXZpY2VNZW1vcnlQcmlvcml0eUVYVDsKKyNlbmRpZiAv
KiBkZWZpbmVkKFZLX0VYVF9wYWdlYWJsZV9kZXZpY2VfbG9jYWxfbWVtb3J5KSAqLworI2lmIGRl
ZmluZWQoVktfRVhUX3ByaXZhdGVfZGF0YSkKK1BGTl92a0NyZWF0ZVByaXZhdGVEYXRhU2xvdEVY
VCB2a0NyZWF0ZVByaXZhdGVEYXRhU2xvdEVYVDsKK1BGTl92a0Rlc3Ryb3lQcml2YXRlRGF0YVNs
b3RFWFQgdmtEZXN0cm95UHJpdmF0ZURhdGFTbG90RVhUOworUEZOX3ZrR2V0UHJpdmF0ZURhdGFF
WFQgdmtHZXRQcml2YXRlRGF0YUVYVDsKK1BGTl92a1NldFByaXZhdGVEYXRhRVhUIHZrU2V0UHJp
dmF0ZURhdGFFWFQ7CisjZW5kaWYgLyogZGVmaW5lZChWS19FWFRfcHJpdmF0ZV9kYXRhKSAqLwog
I2lmIGRlZmluZWQoVktfRVhUX3NhbXBsZV9sb2NhdGlvbnMpCiBQRk5fdmtDbWRTZXRTYW1wbGVM
b2NhdGlvbnNFWFQgdmtDbWRTZXRTYW1wbGVMb2NhdGlvbnNFWFQ7CiBQRk5fdmtHZXRQaHlzaWNh
bERldmljZU11bHRpc2FtcGxlUHJvcGVydGllc0VYVCB2a0dldFBoeXNpY2FsRGV2aWNlTXVsdGlz
YW1wbGVQcm9wZXJ0aWVzRVhUOwpAQCAtMTQxNCw2ICsxOTc4LDI0IEBAIFBGTl92a0Rlc3Ryb3lW
YWxpZGF0aW9uQ2FjaGVFWFQgdmtEZXN0cm95VmFsaWRhdGlvbkNhY2hlRVhUOwogUEZOX3ZrR2V0
VmFsaWRhdGlvbkNhY2hlRGF0YUVYVCB2a0dldFZhbGlkYXRpb25DYWNoZURhdGFFWFQ7CiBQRk5f
dmtNZXJnZVZhbGlkYXRpb25DYWNoZXNFWFQgdmtNZXJnZVZhbGlkYXRpb25DYWNoZXNFWFQ7CiAj
ZW5kaWYgLyogZGVmaW5lZChWS19FWFRfdmFsaWRhdGlvbl9jYWNoZSkgKi8KKyNpZiBkZWZpbmVk
KFZLX0VYVF92ZXJ0ZXhfaW5wdXRfZHluYW1pY19zdGF0ZSkKK1BGTl92a0NtZFNldFZlcnRleElu
cHV0RVhUIHZrQ21kU2V0VmVydGV4SW5wdXRFWFQ7CisjZW5kaWYgLyogZGVmaW5lZChWS19FWFRf
dmVydGV4X2lucHV0X2R5bmFtaWNfc3RhdGUpICovCisjaWYgZGVmaW5lZChWS19GVUNIU0lBX2J1
ZmZlcl9jb2xsZWN0aW9uKQorUEZOX3ZrQ3JlYXRlQnVmZmVyQ29sbGVjdGlvbkZVQ0hTSUEgdmtD
cmVhdGVCdWZmZXJDb2xsZWN0aW9uRlVDSFNJQTsKK1BGTl92a0Rlc3Ryb3lCdWZmZXJDb2xsZWN0
aW9uRlVDSFNJQSB2a0Rlc3Ryb3lCdWZmZXJDb2xsZWN0aW9uRlVDSFNJQTsKK1BGTl92a0dldEJ1
ZmZlckNvbGxlY3Rpb25Qcm9wZXJ0aWVzRlVDSFNJQSB2a0dldEJ1ZmZlckNvbGxlY3Rpb25Qcm9w
ZXJ0aWVzRlVDSFNJQTsKK1BGTl92a1NldEJ1ZmZlckNvbGxlY3Rpb25CdWZmZXJDb25zdHJhaW50
c0ZVQ0hTSUEgdmtTZXRCdWZmZXJDb2xsZWN0aW9uQnVmZmVyQ29uc3RyYWludHNGVUNIU0lBOwor
UEZOX3ZrU2V0QnVmZmVyQ29sbGVjdGlvbkltYWdlQ29uc3RyYWludHNGVUNIU0lBIHZrU2V0QnVm
ZmVyQ29sbGVjdGlvbkltYWdlQ29uc3RyYWludHNGVUNIU0lBOworI2VuZGlmIC8qIGRlZmluZWQo
VktfRlVDSFNJQV9idWZmZXJfY29sbGVjdGlvbikgKi8KKyNpZiBkZWZpbmVkKFZLX0ZVQ0hTSUFf
ZXh0ZXJuYWxfbWVtb3J5KQorUEZOX3ZrR2V0TWVtb3J5WmlyY29uSGFuZGxlRlVDSFNJQSB2a0dl
dE1lbW9yeVppcmNvbkhhbmRsZUZVQ0hTSUE7CitQRk5fdmtHZXRNZW1vcnlaaXJjb25IYW5kbGVQ
cm9wZXJ0aWVzRlVDSFNJQSB2a0dldE1lbW9yeVppcmNvbkhhbmRsZVByb3BlcnRpZXNGVUNIU0lB
OworI2VuZGlmIC8qIGRlZmluZWQoVktfRlVDSFNJQV9leHRlcm5hbF9tZW1vcnkpICovCisjaWYg
ZGVmaW5lZChWS19GVUNIU0lBX2V4dGVybmFsX3NlbWFwaG9yZSkKK1BGTl92a0dldFNlbWFwaG9y
ZVppcmNvbkhhbmRsZUZVQ0hTSUEgdmtHZXRTZW1hcGhvcmVaaXJjb25IYW5kbGVGVUNIU0lBOwor
UEZOX3ZrSW1wb3J0U2VtYXBob3JlWmlyY29uSGFuZGxlRlVDSFNJQSB2a0ltcG9ydFNlbWFwaG9y
ZVppcmNvbkhhbmRsZUZVQ0hTSUE7CisjZW5kaWYgLyogZGVmaW5lZChWS19GVUNIU0lBX2V4dGVy
bmFsX3NlbWFwaG9yZSkgKi8KICNpZiBkZWZpbmVkKFZLX0ZVQ0hTSUFfaW1hZ2VwaXBlX3N1cmZh
Y2UpCiBQRk5fdmtDcmVhdGVJbWFnZVBpcGVTdXJmYWNlRlVDSFNJQSB2a0NyZWF0ZUltYWdlUGlw
ZVN1cmZhY2VGVUNIU0lBOwogI2VuZGlmIC8qIGRlZmluZWQoVktfRlVDSFNJQV9pbWFnZXBpcGVf
c3VyZmFjZSkgKi8KQEAgLTE0MjQsNiArMjAwNiwxMyBAQCBQRk5fdmtDcmVhdGVTdHJlYW1EZXNj
cmlwdG9yU3VyZmFjZUdHUCB2a0NyZWF0ZVN0cmVhbURlc2NyaXB0b3JTdXJmYWNlR0dQOwogUEZO
X3ZrR2V0UGFzdFByZXNlbnRhdGlvblRpbWluZ0dPT0dMRSB2a0dldFBhc3RQcmVzZW50YXRpb25U
aW1pbmdHT09HTEU7CiBQRk5fdmtHZXRSZWZyZXNoQ3ljbGVEdXJhdGlvbkdPT0dMRSB2a0dldFJl
ZnJlc2hDeWNsZUR1cmF0aW9uR09PR0xFOwogI2VuZGlmIC8qIGRlZmluZWQoVktfR09PR0xFX2Rp
c3BsYXlfdGltaW5nKSAqLworI2lmIGRlZmluZWQoVktfSFVBV0VJX2ludm9jYXRpb25fbWFzaykK
K1BGTl92a0NtZEJpbmRJbnZvY2F0aW9uTWFza0hVQVdFSSB2a0NtZEJpbmRJbnZvY2F0aW9uTWFz
a0hVQVdFSTsKKyNlbmRpZiAvKiBkZWZpbmVkKFZLX0hVQVdFSV9pbnZvY2F0aW9uX21hc2spICov
CisjaWYgZGVmaW5lZChWS19IVUFXRUlfc3VicGFzc19zaGFkaW5nKQorUEZOX3ZrQ21kU3VicGFz
c1NoYWRpbmdIVUFXRUkgdmtDbWRTdWJwYXNzU2hhZGluZ0hVQVdFSTsKK1BGTl92a0dldERldmlj
ZVN1YnBhc3NTaGFkaW5nTWF4V29ya2dyb3VwU2l6ZUhVQVdFSSB2a0dldERldmljZVN1YnBhc3NT
aGFkaW5nTWF4V29ya2dyb3VwU2l6ZUhVQVdFSTsKKyNlbmRpZiAvKiBkZWZpbmVkKFZLX0hVQVdF
SV9zdWJwYXNzX3NoYWRpbmcpICovCiAjaWYgZGVmaW5lZChWS19JTlRFTF9wZXJmb3JtYW5jZV9x
dWVyeSkKIFBGTl92a0FjcXVpcmVQZXJmb3JtYW5jZUNvbmZpZ3VyYXRpb25JTlRFTCB2a0FjcXVp
cmVQZXJmb3JtYW5jZUNvbmZpZ3VyYXRpb25JTlRFTDsKIFBGTl92a0NtZFNldFBlcmZvcm1hbmNl
TWFya2VySU5URUwgdmtDbWRTZXRQZXJmb3JtYW5jZU1hcmtlcklOVEVMOwpAQCAtMTQzNSw2ICsy
MDI0LDI0IEBAIFBGTl92a1F1ZXVlU2V0UGVyZm9ybWFuY2VDb25maWd1cmF0aW9uSU5URUwgdmtR
dWV1ZVNldFBlcmZvcm1hbmNlQ29uZmlndXJhdGlvbklOCiBQRk5fdmtSZWxlYXNlUGVyZm9ybWFu
Y2VDb25maWd1cmF0aW9uSU5URUwgdmtSZWxlYXNlUGVyZm9ybWFuY2VDb25maWd1cmF0aW9uSU5U
RUw7CiBQRk5fdmtVbmluaXRpYWxpemVQZXJmb3JtYW5jZUFwaUlOVEVMIHZrVW5pbml0aWFsaXpl
UGVyZm9ybWFuY2VBcGlJTlRFTDsKICNlbmRpZiAvKiBkZWZpbmVkKFZLX0lOVEVMX3BlcmZvcm1h
bmNlX3F1ZXJ5KSAqLworI2lmIGRlZmluZWQoVktfS0hSX2FjY2VsZXJhdGlvbl9zdHJ1Y3R1cmUp
CitQRk5fdmtCdWlsZEFjY2VsZXJhdGlvblN0cnVjdHVyZXNLSFIgdmtCdWlsZEFjY2VsZXJhdGlv
blN0cnVjdHVyZXNLSFI7CitQRk5fdmtDbWRCdWlsZEFjY2VsZXJhdGlvblN0cnVjdHVyZXNJbmRp
cmVjdEtIUiB2a0NtZEJ1aWxkQWNjZWxlcmF0aW9uU3RydWN0dXJlc0luZGlyZWN0S0hSOworUEZO
X3ZrQ21kQnVpbGRBY2NlbGVyYXRpb25TdHJ1Y3R1cmVzS0hSIHZrQ21kQnVpbGRBY2NlbGVyYXRp
b25TdHJ1Y3R1cmVzS0hSOworUEZOX3ZrQ21kQ29weUFjY2VsZXJhdGlvblN0cnVjdHVyZUtIUiB2
a0NtZENvcHlBY2NlbGVyYXRpb25TdHJ1Y3R1cmVLSFI7CitQRk5fdmtDbWRDb3B5QWNjZWxlcmF0
aW9uU3RydWN0dXJlVG9NZW1vcnlLSFIgdmtDbWRDb3B5QWNjZWxlcmF0aW9uU3RydWN0dXJlVG9N
ZW1vcnlLSFI7CitQRk5fdmtDbWRDb3B5TWVtb3J5VG9BY2NlbGVyYXRpb25TdHJ1Y3R1cmVLSFIg
dmtDbWRDb3B5TWVtb3J5VG9BY2NlbGVyYXRpb25TdHJ1Y3R1cmVLSFI7CitQRk5fdmtDbWRXcml0
ZUFjY2VsZXJhdGlvblN0cnVjdHVyZXNQcm9wZXJ0aWVzS0hSIHZrQ21kV3JpdGVBY2NlbGVyYXRp
b25TdHJ1Y3R1cmVzUHJvcGVydGllc0tIUjsKK1BGTl92a0NvcHlBY2NlbGVyYXRpb25TdHJ1Y3R1
cmVLSFIgdmtDb3B5QWNjZWxlcmF0aW9uU3RydWN0dXJlS0hSOworUEZOX3ZrQ29weUFjY2VsZXJh
dGlvblN0cnVjdHVyZVRvTWVtb3J5S0hSIHZrQ29weUFjY2VsZXJhdGlvblN0cnVjdHVyZVRvTWVt
b3J5S0hSOworUEZOX3ZrQ29weU1lbW9yeVRvQWNjZWxlcmF0aW9uU3RydWN0dXJlS0hSIHZrQ29w
eU1lbW9yeVRvQWNjZWxlcmF0aW9uU3RydWN0dXJlS0hSOworUEZOX3ZrQ3JlYXRlQWNjZWxlcmF0
aW9uU3RydWN0dXJlS0hSIHZrQ3JlYXRlQWNjZWxlcmF0aW9uU3RydWN0dXJlS0hSOworUEZOX3Zr
RGVzdHJveUFjY2VsZXJhdGlvblN0cnVjdHVyZUtIUiB2a0Rlc3Ryb3lBY2NlbGVyYXRpb25TdHJ1
Y3R1cmVLSFI7CitQRk5fdmtHZXRBY2NlbGVyYXRpb25TdHJ1Y3R1cmVCdWlsZFNpemVzS0hSIHZr
R2V0QWNjZWxlcmF0aW9uU3RydWN0dXJlQnVpbGRTaXplc0tIUjsKK1BGTl92a0dldEFjY2VsZXJh
dGlvblN0cnVjdHVyZURldmljZUFkZHJlc3NLSFIgdmtHZXRBY2NlbGVyYXRpb25TdHJ1Y3R1cmVE
ZXZpY2VBZGRyZXNzS0hSOworUEZOX3ZrR2V0RGV2aWNlQWNjZWxlcmF0aW9uU3RydWN0dXJlQ29t
cGF0aWJpbGl0eUtIUiB2a0dldERldmljZUFjY2VsZXJhdGlvblN0cnVjdHVyZUNvbXBhdGliaWxp
dHlLSFI7CitQRk5fdmtXcml0ZUFjY2VsZXJhdGlvblN0cnVjdHVyZXNQcm9wZXJ0aWVzS0hSIHZr
V3JpdGVBY2NlbGVyYXRpb25TdHJ1Y3R1cmVzUHJvcGVydGllc0tIUjsKKyNlbmRpZiAvKiBkZWZp
bmVkKFZLX0tIUl9hY2NlbGVyYXRpb25fc3RydWN0dXJlKSAqLwogI2lmIGRlZmluZWQoVktfS0hS
X2FuZHJvaWRfc3VyZmFjZSkKIFBGTl92a0NyZWF0ZUFuZHJvaWRTdXJmYWNlS0hSIHZrQ3JlYXRl
QW5kcm9pZFN1cmZhY2VLSFI7CiAjZW5kaWYgLyogZGVmaW5lZChWS19LSFJfYW5kcm9pZF9zdXJm
YWNlKSAqLwpAQCAtMTQ0NywxMiArMjA1NCwyNyBAQCBQRk5fdmtHZXRCdWZmZXJEZXZpY2VBZGRy
ZXNzS0hSIHZrR2V0QnVmZmVyRGV2aWNlQWRkcmVzc0tIUjsKIFBGTl92a0dldEJ1ZmZlck9wYXF1
ZUNhcHR1cmVBZGRyZXNzS0hSIHZrR2V0QnVmZmVyT3BhcXVlQ2FwdHVyZUFkZHJlc3NLSFI7CiBQ
Rk5fdmtHZXREZXZpY2VNZW1vcnlPcGFxdWVDYXB0dXJlQWRkcmVzc0tIUiB2a0dldERldmljZU1l
bW9yeU9wYXF1ZUNhcHR1cmVBZGRyZXNzS0hSOwogI2VuZGlmIC8qIGRlZmluZWQoVktfS0hSX2J1
ZmZlcl9kZXZpY2VfYWRkcmVzcykgKi8KKyNpZiBkZWZpbmVkKFZLX0tIUl9jb3B5X2NvbW1hbmRz
MikKK1BGTl92a0NtZEJsaXRJbWFnZTJLSFIgdmtDbWRCbGl0SW1hZ2UyS0hSOworUEZOX3ZrQ21k
Q29weUJ1ZmZlcjJLSFIgdmtDbWRDb3B5QnVmZmVyMktIUjsKK1BGTl92a0NtZENvcHlCdWZmZXJU
b0ltYWdlMktIUiB2a0NtZENvcHlCdWZmZXJUb0ltYWdlMktIUjsKK1BGTl92a0NtZENvcHlJbWFn
ZTJLSFIgdmtDbWRDb3B5SW1hZ2UyS0hSOworUEZOX3ZrQ21kQ29weUltYWdlVG9CdWZmZXIyS0hS
IHZrQ21kQ29weUltYWdlVG9CdWZmZXIyS0hSOworUEZOX3ZrQ21kUmVzb2x2ZUltYWdlMktIUiB2
a0NtZFJlc29sdmVJbWFnZTJLSFI7CisjZW5kaWYgLyogZGVmaW5lZChWS19LSFJfY29weV9jb21t
YW5kczIpICovCiAjaWYgZGVmaW5lZChWS19LSFJfY3JlYXRlX3JlbmRlcnBhc3MyKQogUEZOX3Zr
Q21kQmVnaW5SZW5kZXJQYXNzMktIUiB2a0NtZEJlZ2luUmVuZGVyUGFzczJLSFI7CiBQRk5fdmtD
bWRFbmRSZW5kZXJQYXNzMktIUiB2a0NtZEVuZFJlbmRlclBhc3MyS0hSOwogUEZOX3ZrQ21kTmV4
dFN1YnBhc3MyS0hSIHZrQ21kTmV4dFN1YnBhc3MyS0hSOwogUEZOX3ZrQ3JlYXRlUmVuZGVyUGFz
czJLSFIgdmtDcmVhdGVSZW5kZXJQYXNzMktIUjsKICNlbmRpZiAvKiBkZWZpbmVkKFZLX0tIUl9j
cmVhdGVfcmVuZGVycGFzczIpICovCisjaWYgZGVmaW5lZChWS19LSFJfZGVmZXJyZWRfaG9zdF9v
cGVyYXRpb25zKQorUEZOX3ZrQ3JlYXRlRGVmZXJyZWRPcGVyYXRpb25LSFIgdmtDcmVhdGVEZWZl
cnJlZE9wZXJhdGlvbktIUjsKK1BGTl92a0RlZmVycmVkT3BlcmF0aW9uSm9pbktIUiB2a0RlZmVy
cmVkT3BlcmF0aW9uSm9pbktIUjsKK1BGTl92a0Rlc3Ryb3lEZWZlcnJlZE9wZXJhdGlvbktIUiB2
a0Rlc3Ryb3lEZWZlcnJlZE9wZXJhdGlvbktIUjsKK1BGTl92a0dldERlZmVycmVkT3BlcmF0aW9u
TWF4Q29uY3VycmVuY3lLSFIgdmtHZXREZWZlcnJlZE9wZXJhdGlvbk1heENvbmN1cnJlbmN5S0hS
OworUEZOX3ZrR2V0RGVmZXJyZWRPcGVyYXRpb25SZXN1bHRLSFIgdmtHZXREZWZlcnJlZE9wZXJh
dGlvblJlc3VsdEtIUjsKKyNlbmRpZiAvKiBkZWZpbmVkKFZLX0tIUl9kZWZlcnJlZF9ob3N0X29w
ZXJhdGlvbnMpICovCiAjaWYgZGVmaW5lZChWS19LSFJfZGVzY3JpcHRvcl91cGRhdGVfdGVtcGxh
dGUpCiBQRk5fdmtDcmVhdGVEZXNjcmlwdG9yVXBkYXRlVGVtcGxhdGVLSFIgdmtDcmVhdGVEZXNj
cmlwdG9yVXBkYXRlVGVtcGxhdGVLSFI7CiBQRk5fdmtEZXN0cm95RGVzY3JpcHRvclVwZGF0ZVRl
bXBsYXRlS0hSIHZrRGVzdHJveURlc2NyaXB0b3JVcGRhdGVUZW1wbGF0ZUtIUjsKQEAgLTE0ODIs
NiArMjEwNCwxMCBAQCBQRk5fdmtDcmVhdGVTaGFyZWRTd2FwY2hhaW5zS0hSIHZrQ3JlYXRlU2hh
cmVkU3dhcGNoYWluc0tIUjsKIFBGTl92a0NtZERyYXdJbmRleGVkSW5kaXJlY3RDb3VudEtIUiB2
a0NtZERyYXdJbmRleGVkSW5kaXJlY3RDb3VudEtIUjsKIFBGTl92a0NtZERyYXdJbmRpcmVjdENv
dW50S0hSIHZrQ21kRHJhd0luZGlyZWN0Q291bnRLSFI7CiAjZW5kaWYgLyogZGVmaW5lZChWS19L
SFJfZHJhd19pbmRpcmVjdF9jb3VudCkgKi8KKyNpZiBkZWZpbmVkKFZLX0tIUl9keW5hbWljX3Jl
bmRlcmluZykKK1BGTl92a0NtZEJlZ2luUmVuZGVyaW5nS0hSIHZrQ21kQmVnaW5SZW5kZXJpbmdL
SFI7CitQRk5fdmtDbWRFbmRSZW5kZXJpbmdLSFIgdmtDbWRFbmRSZW5kZXJpbmdLSFI7CisjZW5k
aWYgLyogZGVmaW5lZChWS19LSFJfZHluYW1pY19yZW5kZXJpbmcpICovCiAjaWYgZGVmaW5lZChW
S19LSFJfZXh0ZXJuYWxfZmVuY2VfY2FwYWJpbGl0aWVzKQogUEZOX3ZrR2V0UGh5c2ljYWxEZXZp
Y2VFeHRlcm5hbEZlbmNlUHJvcGVydGllc0tIUiB2a0dldFBoeXNpY2FsRGV2aWNlRXh0ZXJuYWxG
ZW5jZVByb3BlcnRpZXNLSFI7CiAjZW5kaWYgLyogZGVmaW5lZChWS19LSFJfZXh0ZXJuYWxfZmVu
Y2VfY2FwYWJpbGl0aWVzKSAqLwpAQCAtMTUxNSw2ICsyMTQxLDEwIEBAIFBGTl92a0ltcG9ydFNl
bWFwaG9yZUZkS0hSIHZrSW1wb3J0U2VtYXBob3JlRmRLSFI7CiBQRk5fdmtHZXRTZW1hcGhvcmVX
aW4zMkhhbmRsZUtIUiB2a0dldFNlbWFwaG9yZVdpbjMySGFuZGxlS0hSOwogUEZOX3ZrSW1wb3J0
U2VtYXBob3JlV2luMzJIYW5kbGVLSFIgdmtJbXBvcnRTZW1hcGhvcmVXaW4zMkhhbmRsZUtIUjsK
ICNlbmRpZiAvKiBkZWZpbmVkKFZLX0tIUl9leHRlcm5hbF9zZW1hcGhvcmVfd2luMzIpICovCisj
aWYgZGVmaW5lZChWS19LSFJfZnJhZ21lbnRfc2hhZGluZ19yYXRlKQorUEZOX3ZrQ21kU2V0RnJh
Z21lbnRTaGFkaW5nUmF0ZUtIUiB2a0NtZFNldEZyYWdtZW50U2hhZGluZ1JhdGVLSFI7CitQRk5f
dmtHZXRQaHlzaWNhbERldmljZUZyYWdtZW50U2hhZGluZ1JhdGVzS0hSIHZrR2V0UGh5c2ljYWxE
ZXZpY2VGcmFnbWVudFNoYWRpbmdSYXRlc0tIUjsKKyNlbmRpZiAvKiBkZWZpbmVkKFZLX0tIUl9m
cmFnbWVudF9zaGFkaW5nX3JhdGUpICovCiAjaWYgZGVmaW5lZChWS19LSFJfZ2V0X2Rpc3BsYXlf
cHJvcGVydGllczIpCiBQRk5fdmtHZXREaXNwbGF5TW9kZVByb3BlcnRpZXMyS0hSIHZrR2V0RGlz
cGxheU1vZGVQcm9wZXJ0aWVzMktIUjsKIFBGTl92a0dldERpc3BsYXlQbGFuZUNhcGFiaWxpdGll
czJLSFIgdmtHZXREaXNwbGF5UGxhbmVDYXBhYmlsaXRpZXMyS0hSOwpAQCAtMTU0NSw2ICsyMTc1
LDExIEBAIFBGTl92a1RyaW1Db21tYW5kUG9vbEtIUiB2a1RyaW1Db21tYW5kUG9vbEtIUjsKICNp
ZiBkZWZpbmVkKFZLX0tIUl9tYWludGVuYW5jZTMpCiBQRk5fdmtHZXREZXNjcmlwdG9yU2V0TGF5
b3V0U3VwcG9ydEtIUiB2a0dldERlc2NyaXB0b3JTZXRMYXlvdXRTdXBwb3J0S0hSOwogI2VuZGlm
IC8qIGRlZmluZWQoVktfS0hSX21haW50ZW5hbmNlMykgKi8KKyNpZiBkZWZpbmVkKFZLX0tIUl9t
YWludGVuYW5jZTQpCitQRk5fdmtHZXREZXZpY2VCdWZmZXJNZW1vcnlSZXF1aXJlbWVudHNLSFIg
dmtHZXREZXZpY2VCdWZmZXJNZW1vcnlSZXF1aXJlbWVudHNLSFI7CitQRk5fdmtHZXREZXZpY2VJ
bWFnZU1lbW9yeVJlcXVpcmVtZW50c0tIUiB2a0dldERldmljZUltYWdlTWVtb3J5UmVxdWlyZW1l
bnRzS0hSOworUEZOX3ZrR2V0RGV2aWNlSW1hZ2VTcGFyc2VNZW1vcnlSZXF1aXJlbWVudHNLSFIg
dmtHZXREZXZpY2VJbWFnZVNwYXJzZU1lbW9yeVJlcXVpcmVtZW50c0tIUjsKKyNlbmRpZiAvKiBk
ZWZpbmVkKFZLX0tIUl9tYWludGVuYW5jZTQpICovCiAjaWYgZGVmaW5lZChWS19LSFJfcGVyZm9y
bWFuY2VfcXVlcnkpCiBQRk5fdmtBY3F1aXJlUHJvZmlsaW5nTG9ja0tIUiB2a0FjcXVpcmVQcm9m
aWxpbmdMb2NrS0hSOwogUEZOX3ZrRW51bWVyYXRlUGh5c2ljYWxEZXZpY2VRdWV1ZUZhbWlseVBl
cmZvcm1hbmNlUXVlcnlDb3VudGVyc0tIUiB2a0VudW1lcmF0ZVBoeXNpY2FsRGV2aWNlUXVldWVG
YW1pbHlQZXJmb3JtYW5jZVF1ZXJ5Q291bnRlcnNLSFI7CkBAIC0xNTU2LDkgKzIxOTEsMjEgQEAg
UEZOX3ZrR2V0UGlwZWxpbmVFeGVjdXRhYmxlSW50ZXJuYWxSZXByZXNlbnRhdGlvbnNLSFIgdmtH
ZXRQaXBlbGluZUV4ZWN1dGFibGVJbnQKIFBGTl92a0dldFBpcGVsaW5lRXhlY3V0YWJsZVByb3Bl
cnRpZXNLSFIgdmtHZXRQaXBlbGluZUV4ZWN1dGFibGVQcm9wZXJ0aWVzS0hSOwogUEZOX3ZrR2V0
UGlwZWxpbmVFeGVjdXRhYmxlU3RhdGlzdGljc0tIUiB2a0dldFBpcGVsaW5lRXhlY3V0YWJsZVN0
YXRpc3RpY3NLSFI7CiAjZW5kaWYgLyogZGVmaW5lZChWS19LSFJfcGlwZWxpbmVfZXhlY3V0YWJs
ZV9wcm9wZXJ0aWVzKSAqLworI2lmIGRlZmluZWQoVktfS0hSX3ByZXNlbnRfd2FpdCkKK1BGTl92
a1dhaXRGb3JQcmVzZW50S0hSIHZrV2FpdEZvclByZXNlbnRLSFI7CisjZW5kaWYgLyogZGVmaW5l
ZChWS19LSFJfcHJlc2VudF93YWl0KSAqLwogI2lmIGRlZmluZWQoVktfS0hSX3B1c2hfZGVzY3Jp
cHRvcikKIFBGTl92a0NtZFB1c2hEZXNjcmlwdG9yU2V0S0hSIHZrQ21kUHVzaERlc2NyaXB0b3JT
ZXRLSFI7CiAjZW5kaWYgLyogZGVmaW5lZChWS19LSFJfcHVzaF9kZXNjcmlwdG9yKSAqLworI2lm
IGRlZmluZWQoVktfS0hSX3JheV90cmFjaW5nX3BpcGVsaW5lKQorUEZOX3ZrQ21kU2V0UmF5VHJh
Y2luZ1BpcGVsaW5lU3RhY2tTaXplS0hSIHZrQ21kU2V0UmF5VHJhY2luZ1BpcGVsaW5lU3RhY2tT
aXplS0hSOworUEZOX3ZrQ21kVHJhY2VSYXlzSW5kaXJlY3RLSFIgdmtDbWRUcmFjZVJheXNJbmRp
cmVjdEtIUjsKK1BGTl92a0NtZFRyYWNlUmF5c0tIUiB2a0NtZFRyYWNlUmF5c0tIUjsKK1BGTl92
a0NyZWF0ZVJheVRyYWNpbmdQaXBlbGluZXNLSFIgdmtDcmVhdGVSYXlUcmFjaW5nUGlwZWxpbmVz
S0hSOworUEZOX3ZrR2V0UmF5VHJhY2luZ0NhcHR1cmVSZXBsYXlTaGFkZXJHcm91cEhhbmRsZXNL
SFIgdmtHZXRSYXlUcmFjaW5nQ2FwdHVyZVJlcGxheVNoYWRlckdyb3VwSGFuZGxlc0tIUjsKK1BG
Tl92a0dldFJheVRyYWNpbmdTaGFkZXJHcm91cEhhbmRsZXNLSFIgdmtHZXRSYXlUcmFjaW5nU2hh
ZGVyR3JvdXBIYW5kbGVzS0hSOworUEZOX3ZrR2V0UmF5VHJhY2luZ1NoYWRlckdyb3VwU3RhY2tT
aXplS0hSIHZrR2V0UmF5VHJhY2luZ1NoYWRlckdyb3VwU3RhY2tTaXplS0hSOworI2VuZGlmIC8q
IGRlZmluZWQoVktfS0hSX3JheV90cmFjaW5nX3BpcGVsaW5lKSAqLwogI2lmIGRlZmluZWQoVktf
S0hSX3NhbXBsZXJfeWNiY3JfY29udmVyc2lvbikKIFBGTl92a0NyZWF0ZVNhbXBsZXJZY2JjckNv
bnZlcnNpb25LSFIgdmtDcmVhdGVTYW1wbGVyWWNiY3JDb252ZXJzaW9uS0hSOwogUEZOX3ZrRGVz
dHJveVNhbXBsZXJZY2JjckNvbnZlcnNpb25LSFIgdmtEZXN0cm95U2FtcGxlclljYmNyQ29udmVy
c2lvbktIUjsKQEAgLTE1ODAsMTEgKzIyMjcsNDUgQEAgUEZOX3ZrRGVzdHJveVN3YXBjaGFpbktI
UiB2a0Rlc3Ryb3lTd2FwY2hhaW5LSFI7CiBQRk5fdmtHZXRTd2FwY2hhaW5JbWFnZXNLSFIgdmtH
ZXRTd2FwY2hhaW5JbWFnZXNLSFI7CiBQRk5fdmtRdWV1ZVByZXNlbnRLSFIgdmtRdWV1ZVByZXNl
bnRLSFI7CiAjZW5kaWYgLyogZGVmaW5lZChWS19LSFJfc3dhcGNoYWluKSAqLworI2lmIGRlZmlu
ZWQoVktfS0hSX3N5bmNocm9uaXphdGlvbjIpCitQRk5fdmtDbWRQaXBlbGluZUJhcnJpZXIyS0hS
IHZrQ21kUGlwZWxpbmVCYXJyaWVyMktIUjsKK1BGTl92a0NtZFJlc2V0RXZlbnQyS0hSIHZrQ21k
UmVzZXRFdmVudDJLSFI7CitQRk5fdmtDbWRTZXRFdmVudDJLSFIgdmtDbWRTZXRFdmVudDJLSFI7
CitQRk5fdmtDbWRXYWl0RXZlbnRzMktIUiB2a0NtZFdhaXRFdmVudHMyS0hSOworUEZOX3ZrQ21k
V3JpdGVUaW1lc3RhbXAyS0hSIHZrQ21kV3JpdGVUaW1lc3RhbXAyS0hSOworUEZOX3ZrUXVldWVT
dWJtaXQyS0hSIHZrUXVldWVTdWJtaXQyS0hSOworI2VuZGlmIC8qIGRlZmluZWQoVktfS0hSX3N5
bmNocm9uaXphdGlvbjIpICovCisjaWYgZGVmaW5lZChWS19LSFJfc3luY2hyb25pemF0aW9uMikg
JiYgZGVmaW5lZChWS19BTURfYnVmZmVyX21hcmtlcikKK1BGTl92a0NtZFdyaXRlQnVmZmVyTWFy
a2VyMkFNRCB2a0NtZFdyaXRlQnVmZmVyTWFya2VyMkFNRDsKKyNlbmRpZiAvKiBkZWZpbmVkKFZL
X0tIUl9zeW5jaHJvbml6YXRpb24yKSAmJiBkZWZpbmVkKFZLX0FNRF9idWZmZXJfbWFya2VyKSAq
LworI2lmIGRlZmluZWQoVktfS0hSX3N5bmNocm9uaXphdGlvbjIpICYmIGRlZmluZWQoVktfTlZf
ZGV2aWNlX2RpYWdub3N0aWNfY2hlY2twb2ludHMpCitQRk5fdmtHZXRRdWV1ZUNoZWNrcG9pbnRE
YXRhMk5WIHZrR2V0UXVldWVDaGVja3BvaW50RGF0YTJOVjsKKyNlbmRpZiAvKiBkZWZpbmVkKFZL
X0tIUl9zeW5jaHJvbml6YXRpb24yKSAmJiBkZWZpbmVkKFZLX05WX2RldmljZV9kaWFnbm9zdGlj
X2NoZWNrcG9pbnRzKSAqLwogI2lmIGRlZmluZWQoVktfS0hSX3RpbWVsaW5lX3NlbWFwaG9yZSkK
IFBGTl92a0dldFNlbWFwaG9yZUNvdW50ZXJWYWx1ZUtIUiB2a0dldFNlbWFwaG9yZUNvdW50ZXJW
YWx1ZUtIUjsKIFBGTl92a1NpZ25hbFNlbWFwaG9yZUtIUiB2a1NpZ25hbFNlbWFwaG9yZUtIUjsK
IFBGTl92a1dhaXRTZW1hcGhvcmVzS0hSIHZrV2FpdFNlbWFwaG9yZXNLSFI7CiAjZW5kaWYgLyog
ZGVmaW5lZChWS19LSFJfdGltZWxpbmVfc2VtYXBob3JlKSAqLworI2lmIGRlZmluZWQoVktfS0hS
X3ZpZGVvX2RlY29kZV9xdWV1ZSkKK1BGTl92a0NtZERlY29kZVZpZGVvS0hSIHZrQ21kRGVjb2Rl
VmlkZW9LSFI7CisjZW5kaWYgLyogZGVmaW5lZChWS19LSFJfdmlkZW9fZGVjb2RlX3F1ZXVlKSAq
LworI2lmIGRlZmluZWQoVktfS0hSX3ZpZGVvX2VuY29kZV9xdWV1ZSkKK1BGTl92a0NtZEVuY29k
ZVZpZGVvS0hSIHZrQ21kRW5jb2RlVmlkZW9LSFI7CisjZW5kaWYgLyogZGVmaW5lZChWS19LSFJf
dmlkZW9fZW5jb2RlX3F1ZXVlKSAqLworI2lmIGRlZmluZWQoVktfS0hSX3ZpZGVvX3F1ZXVlKQor
UEZOX3ZrQmluZFZpZGVvU2Vzc2lvbk1lbW9yeUtIUiB2a0JpbmRWaWRlb1Nlc3Npb25NZW1vcnlL
SFI7CitQRk5fdmtDbWRCZWdpblZpZGVvQ29kaW5nS0hSIHZrQ21kQmVnaW5WaWRlb0NvZGluZ0tI
UjsKK1BGTl92a0NtZENvbnRyb2xWaWRlb0NvZGluZ0tIUiB2a0NtZENvbnRyb2xWaWRlb0NvZGlu
Z0tIUjsKK1BGTl92a0NtZEVuZFZpZGVvQ29kaW5nS0hSIHZrQ21kRW5kVmlkZW9Db2RpbmdLSFI7
CitQRk5fdmtDcmVhdGVWaWRlb1Nlc3Npb25LSFIgdmtDcmVhdGVWaWRlb1Nlc3Npb25LSFI7CitQ
Rk5fdmtDcmVhdGVWaWRlb1Nlc3Npb25QYXJhbWV0ZXJzS0hSIHZrQ3JlYXRlVmlkZW9TZXNzaW9u
UGFyYW1ldGVyc0tIUjsKK1BGTl92a0Rlc3Ryb3lWaWRlb1Nlc3Npb25LSFIgdmtEZXN0cm95Vmlk
ZW9TZXNzaW9uS0hSOworUEZOX3ZrRGVzdHJveVZpZGVvU2Vzc2lvblBhcmFtZXRlcnNLSFIgdmtE
ZXN0cm95VmlkZW9TZXNzaW9uUGFyYW1ldGVyc0tIUjsKK1BGTl92a0dldFBoeXNpY2FsRGV2aWNl
VmlkZW9DYXBhYmlsaXRpZXNLSFIgdmtHZXRQaHlzaWNhbERldmljZVZpZGVvQ2FwYWJpbGl0aWVz
S0hSOworUEZOX3ZrR2V0UGh5c2ljYWxEZXZpY2VWaWRlb0Zvcm1hdFByb3BlcnRpZXNLSFIgdmtH
ZXRQaHlzaWNhbERldmljZVZpZGVvRm9ybWF0UHJvcGVydGllc0tIUjsKK1BGTl92a0dldFZpZGVv
U2Vzc2lvbk1lbW9yeVJlcXVpcmVtZW50c0tIUiB2a0dldFZpZGVvU2Vzc2lvbk1lbW9yeVJlcXVp
cmVtZW50c0tIUjsKK1BGTl92a1VwZGF0ZVZpZGVvU2Vzc2lvblBhcmFtZXRlcnNLSFIgdmtVcGRh
dGVWaWRlb1Nlc3Npb25QYXJhbWV0ZXJzS0hSOworI2VuZGlmIC8qIGRlZmluZWQoVktfS0hSX3Zp
ZGVvX3F1ZXVlKSAqLwogI2lmIGRlZmluZWQoVktfS0hSX3dheWxhbmRfc3VyZmFjZSkKIFBGTl92
a0NyZWF0ZVdheWxhbmRTdXJmYWNlS0hSIHZrQ3JlYXRlV2F5bGFuZFN1cmZhY2VLSFI7CiBQRk5f
dmtHZXRQaHlzaWNhbERldmljZVdheWxhbmRQcmVzZW50YXRpb25TdXBwb3J0S0hSIHZrR2V0UGh5
c2ljYWxEZXZpY2VXYXlsYW5kUHJlc2VudGF0aW9uU3VwcG9ydEtIUjsKQEAgLTE2MTAsMjAgKzIy
OTEsMjEgQEAgUEZOX3ZrQ3JlYXRlTWFjT1NTdXJmYWNlTVZLIHZrQ3JlYXRlTWFjT1NTdXJmYWNl
TVZLOwogI2lmIGRlZmluZWQoVktfTk5fdmlfc3VyZmFjZSkKIFBGTl92a0NyZWF0ZVZpU3VyZmFj
ZU5OIHZrQ3JlYXRlVmlTdXJmYWNlTk47CiAjZW5kaWYgLyogZGVmaW5lZChWS19OTl92aV9zdXJm
YWNlKSAqLwotI2lmIGRlZmluZWQoVktfTlZYX2RldmljZV9nZW5lcmF0ZWRfY29tbWFuZHMpCi1Q
Rk5fdmtDbWRQcm9jZXNzQ29tbWFuZHNOVlggdmtDbWRQcm9jZXNzQ29tbWFuZHNOVlg7Ci1QRk5f
dmtDbWRSZXNlcnZlU3BhY2VGb3JDb21tYW5kc05WWCB2a0NtZFJlc2VydmVTcGFjZUZvckNvbW1h
bmRzTlZYOwotUEZOX3ZrQ3JlYXRlSW5kaXJlY3RDb21tYW5kc0xheW91dE5WWCB2a0NyZWF0ZUlu
ZGlyZWN0Q29tbWFuZHNMYXlvdXROVlg7Ci1QRk5fdmtDcmVhdGVPYmplY3RUYWJsZU5WWCB2a0Ny
ZWF0ZU9iamVjdFRhYmxlTlZYOwotUEZOX3ZrRGVzdHJveUluZGlyZWN0Q29tbWFuZHNMYXlvdXRO
VlggdmtEZXN0cm95SW5kaXJlY3RDb21tYW5kc0xheW91dE5WWDsKLVBGTl92a0Rlc3Ryb3lPYmpl
Y3RUYWJsZU5WWCB2a0Rlc3Ryb3lPYmplY3RUYWJsZU5WWDsKLVBGTl92a0dldFBoeXNpY2FsRGV2
aWNlR2VuZXJhdGVkQ29tbWFuZHNQcm9wZXJ0aWVzTlZYIHZrR2V0UGh5c2ljYWxEZXZpY2VHZW5l
cmF0ZWRDb21tYW5kc1Byb3BlcnRpZXNOVlg7Ci1QRk5fdmtSZWdpc3Rlck9iamVjdHNOVlggdmtS
ZWdpc3Rlck9iamVjdHNOVlg7Ci1QRk5fdmtVbnJlZ2lzdGVyT2JqZWN0c05WWCB2a1VucmVnaXN0
ZXJPYmplY3RzTlZYOwotI2VuZGlmIC8qIGRlZmluZWQoVktfTlZYX2RldmljZV9nZW5lcmF0ZWRf
Y29tbWFuZHMpICovCisjaWYgZGVmaW5lZChWS19OVlhfYmluYXJ5X2ltcG9ydCkKK1BGTl92a0Nt
ZEN1TGF1bmNoS2VybmVsTlZYIHZrQ21kQ3VMYXVuY2hLZXJuZWxOVlg7CitQRk5fdmtDcmVhdGVD
dUZ1bmN0aW9uTlZYIHZrQ3JlYXRlQ3VGdW5jdGlvbk5WWDsKK1BGTl92a0NyZWF0ZUN1TW9kdWxl
TlZYIHZrQ3JlYXRlQ3VNb2R1bGVOVlg7CitQRk5fdmtEZXN0cm95Q3VGdW5jdGlvbk5WWCB2a0Rl
c3Ryb3lDdUZ1bmN0aW9uTlZYOworUEZOX3ZrRGVzdHJveUN1TW9kdWxlTlZYIHZrRGVzdHJveUN1
TW9kdWxlTlZYOworI2VuZGlmIC8qIGRlZmluZWQoVktfTlZYX2JpbmFyeV9pbXBvcnQpICovCiAj
aWYgZGVmaW5lZChWS19OVlhfaW1hZ2Vfdmlld19oYW5kbGUpCitQRk5fdmtHZXRJbWFnZVZpZXdB
ZGRyZXNzTlZYIHZrR2V0SW1hZ2VWaWV3QWRkcmVzc05WWDsKIFBGTl92a0dldEltYWdlVmlld0hh
bmRsZU5WWCB2a0dldEltYWdlVmlld0hhbmRsZU5WWDsKICNlbmRpZiAvKiBkZWZpbmVkKFZLX05W
WF9pbWFnZV92aWV3X2hhbmRsZSkgKi8KKyNpZiBkZWZpbmVkKFZLX05WX2FjcXVpcmVfd2lucnRf
ZGlzcGxheSkKK1BGTl92a0FjcXVpcmVXaW5ydERpc3BsYXlOViB2a0FjcXVpcmVXaW5ydERpc3Bs
YXlOVjsKK1BGTl92a0dldFdpbnJ0RGlzcGxheU5WIHZrR2V0V2lucnREaXNwbGF5TlY7CisjZW5k
aWYgLyogZGVmaW5lZChWS19OVl9hY3F1aXJlX3dpbnJ0X2Rpc3BsYXkpICovCiAjaWYgZGVmaW5l
ZChWS19OVl9jbGlwX3NwYWNlX3dfc2NhbGluZykKIFBGTl92a0NtZFNldFZpZXdwb3J0V1NjYWxp
bmdOViB2a0NtZFNldFZpZXdwb3J0V1NjYWxpbmdOVjsKICNlbmRpZiAvKiBkZWZpbmVkKFZLX05W
X2NsaXBfc3BhY2Vfd19zY2FsaW5nKSAqLwpAQCAtMTYzNywxMiArMjMxOSwyNiBAQCBQRk5fdmtH
ZXRQaHlzaWNhbERldmljZVN1cHBvcnRlZEZyYW1lYnVmZmVyTWl4ZWRTYW1wbGVzQ29tYmluYXRp
b25zTlYgdmtHZXRQaHlzaQogUEZOX3ZrQ21kU2V0Q2hlY2twb2ludE5WIHZrQ21kU2V0Q2hlY2tw
b2ludE5WOwogUEZOX3ZrR2V0UXVldWVDaGVja3BvaW50RGF0YU5WIHZrR2V0UXVldWVDaGVja3Bv
aW50RGF0YU5WOwogI2VuZGlmIC8qIGRlZmluZWQoVktfTlZfZGV2aWNlX2RpYWdub3N0aWNfY2hl
Y2twb2ludHMpICovCisjaWYgZGVmaW5lZChWS19OVl9kZXZpY2VfZ2VuZXJhdGVkX2NvbW1hbmRz
KQorUEZOX3ZrQ21kQmluZFBpcGVsaW5lU2hhZGVyR3JvdXBOViB2a0NtZEJpbmRQaXBlbGluZVNo
YWRlckdyb3VwTlY7CitQRk5fdmtDbWRFeGVjdXRlR2VuZXJhdGVkQ29tbWFuZHNOViB2a0NtZEV4
ZWN1dGVHZW5lcmF0ZWRDb21tYW5kc05WOworUEZOX3ZrQ21kUHJlcHJvY2Vzc0dlbmVyYXRlZENv
bW1hbmRzTlYgdmtDbWRQcmVwcm9jZXNzR2VuZXJhdGVkQ29tbWFuZHNOVjsKK1BGTl92a0NyZWF0
ZUluZGlyZWN0Q29tbWFuZHNMYXlvdXROViB2a0NyZWF0ZUluZGlyZWN0Q29tbWFuZHNMYXlvdXRO
VjsKK1BGTl92a0Rlc3Ryb3lJbmRpcmVjdENvbW1hbmRzTGF5b3V0TlYgdmtEZXN0cm95SW5kaXJl
Y3RDb21tYW5kc0xheW91dE5WOworUEZOX3ZrR2V0R2VuZXJhdGVkQ29tbWFuZHNNZW1vcnlSZXF1
aXJlbWVudHNOViB2a0dldEdlbmVyYXRlZENvbW1hbmRzTWVtb3J5UmVxdWlyZW1lbnRzTlY7Cisj
ZW5kaWYgLyogZGVmaW5lZChWS19OVl9kZXZpY2VfZ2VuZXJhdGVkX2NvbW1hbmRzKSAqLwogI2lm
IGRlZmluZWQoVktfTlZfZXh0ZXJuYWxfbWVtb3J5X2NhcGFiaWxpdGllcykKIFBGTl92a0dldFBo
eXNpY2FsRGV2aWNlRXh0ZXJuYWxJbWFnZUZvcm1hdFByb3BlcnRpZXNOViB2a0dldFBoeXNpY2Fs
RGV2aWNlRXh0ZXJuYWxJbWFnZUZvcm1hdFByb3BlcnRpZXNOVjsKICNlbmRpZiAvKiBkZWZpbmVk
KFZLX05WX2V4dGVybmFsX21lbW9yeV9jYXBhYmlsaXRpZXMpICovCisjaWYgZGVmaW5lZChWS19O
Vl9leHRlcm5hbF9tZW1vcnlfcmRtYSkKK1BGTl92a0dldE1lbW9yeVJlbW90ZUFkZHJlc3NOViB2
a0dldE1lbW9yeVJlbW90ZUFkZHJlc3NOVjsKKyNlbmRpZiAvKiBkZWZpbmVkKFZLX05WX2V4dGVy
bmFsX21lbW9yeV9yZG1hKSAqLwogI2lmIGRlZmluZWQoVktfTlZfZXh0ZXJuYWxfbWVtb3J5X3dp
bjMyKQogUEZOX3ZrR2V0TWVtb3J5V2luMzJIYW5kbGVOViB2a0dldE1lbW9yeVdpbjMySGFuZGxl
TlY7CiAjZW5kaWYgLyogZGVmaW5lZChWS19OVl9leHRlcm5hbF9tZW1vcnlfd2luMzIpICovCisj
aWYgZGVmaW5lZChWS19OVl9mcmFnbWVudF9zaGFkaW5nX3JhdGVfZW51bXMpCitQRk5fdmtDbWRT
ZXRGcmFnbWVudFNoYWRpbmdSYXRlRW51bU5WIHZrQ21kU2V0RnJhZ21lbnRTaGFkaW5nUmF0ZUVu
dW1OVjsKKyNlbmRpZiAvKiBkZWZpbmVkKFZLX05WX2ZyYWdtZW50X3NoYWRpbmdfcmF0ZV9lbnVt
cykgKi8KICNpZiBkZWZpbmVkKFZLX05WX21lc2hfc2hhZGVyKQogUEZOX3ZrQ21kRHJhd01lc2hU
YXNrc0luZGlyZWN0Q291bnROViB2a0NtZERyYXdNZXNoVGFza3NJbmRpcmVjdENvdW50TlY7CiBQ
Rk5fdmtDbWREcmF3TWVzaFRhc2tzSW5kaXJlY3ROViB2a0NtZERyYXdNZXNoVGFza3NJbmRpcmVj
dE5WOwpAQCAtMTY3MCwxMiArMjM2NiwxNiBAQCBQRk5fdmtDbWRCaW5kU2hhZGluZ1JhdGVJbWFn
ZU5WIHZrQ21kQmluZFNoYWRpbmdSYXRlSW1hZ2VOVjsKIFBGTl92a0NtZFNldENvYXJzZVNhbXBs
ZU9yZGVyTlYgdmtDbWRTZXRDb2Fyc2VTYW1wbGVPcmRlck5WOwogUEZOX3ZrQ21kU2V0Vmlld3Bv
cnRTaGFkaW5nUmF0ZVBhbGV0dGVOViB2a0NtZFNldFZpZXdwb3J0U2hhZGluZ1JhdGVQYWxldHRl
TlY7CiAjZW5kaWYgLyogZGVmaW5lZChWS19OVl9zaGFkaW5nX3JhdGVfaW1hZ2UpICovCisjaWYg
ZGVmaW5lZChWS19RTlhfc2NyZWVuX3N1cmZhY2UpCitQRk5fdmtDcmVhdGVTY3JlZW5TdXJmYWNl
UU5YIHZrQ3JlYXRlU2NyZWVuU3VyZmFjZVFOWDsKK1BGTl92a0dldFBoeXNpY2FsRGV2aWNlU2Ny
ZWVuUHJlc2VudGF0aW9uU3VwcG9ydFFOWCB2a0dldFBoeXNpY2FsRGV2aWNlU2NyZWVuUHJlc2Vu
dGF0aW9uU3VwcG9ydFFOWDsKKyNlbmRpZiAvKiBkZWZpbmVkKFZLX1FOWF9zY3JlZW5fc3VyZmFj
ZSkgKi8KICNpZiAoZGVmaW5lZChWS19FWFRfZnVsbF9zY3JlZW5fZXhjbHVzaXZlKSAmJiBkZWZp
bmVkKFZLX0tIUl9kZXZpY2VfZ3JvdXApKSB8fCAoZGVmaW5lZChWS19FWFRfZnVsbF9zY3JlZW5f
ZXhjbHVzaXZlKSAmJiBkZWZpbmVkKFZLX1ZFUlNJT05fMV8xKSkKIFBGTl92a0dldERldmljZUdy
b3VwU3VyZmFjZVByZXNlbnRNb2RlczJFWFQgdmtHZXREZXZpY2VHcm91cFN1cmZhY2VQcmVzZW50
TW9kZXMyRVhUOwogI2VuZGlmIC8qIChkZWZpbmVkKFZLX0VYVF9mdWxsX3NjcmVlbl9leGNsdXNp
dmUpICYmIGRlZmluZWQoVktfS0hSX2RldmljZV9ncm91cCkpIHx8IChkZWZpbmVkKFZLX0VYVF9m
dWxsX3NjcmVlbl9leGNsdXNpdmUpICYmIGRlZmluZWQoVktfVkVSU0lPTl8xXzEpKSAqLwotI2lm
IChkZWZpbmVkKFZLX0tIUl9kZXNjcmlwdG9yX3VwZGF0ZV90ZW1wbGF0ZSkgJiYgZGVmaW5lZChW
S19LSFJfcHVzaF9kZXNjcmlwdG9yKSkgfHwgKGRlZmluZWQoVktfS0hSX3B1c2hfZGVzY3JpcHRv
cikgJiYgZGVmaW5lZChWS19WRVJTSU9OXzFfMSkpCisjaWYgKGRlZmluZWQoVktfS0hSX2Rlc2Ny
aXB0b3JfdXBkYXRlX3RlbXBsYXRlKSAmJiBkZWZpbmVkKFZLX0tIUl9wdXNoX2Rlc2NyaXB0b3Ip
KSB8fCAoZGVmaW5lZChWS19LSFJfcHVzaF9kZXNjcmlwdG9yKSAmJiBkZWZpbmVkKFZLX1ZFUlNJ
T05fMV8xKSkgfHwgKGRlZmluZWQoVktfS0hSX3B1c2hfZGVzY3JpcHRvcikgJiYgZGVmaW5lZChW
S19LSFJfZGVzY3JpcHRvcl91cGRhdGVfdGVtcGxhdGUpKQogUEZOX3ZrQ21kUHVzaERlc2NyaXB0
b3JTZXRXaXRoVGVtcGxhdGVLSFIgdmtDbWRQdXNoRGVzY3JpcHRvclNldFdpdGhUZW1wbGF0ZUtI
UjsKLSNlbmRpZiAvKiAoZGVmaW5lZChWS19LSFJfZGVzY3JpcHRvcl91cGRhdGVfdGVtcGxhdGUp
ICYmIGRlZmluZWQoVktfS0hSX3B1c2hfZGVzY3JpcHRvcikpIHx8IChkZWZpbmVkKFZLX0tIUl9w
dXNoX2Rlc2NyaXB0b3IpICYmIGRlZmluZWQoVktfVkVSU0lPTl8xXzEpKSAqLworI2VuZGlmIC8q
IChkZWZpbmVkKFZLX0tIUl9kZXNjcmlwdG9yX3VwZGF0ZV90ZW1wbGF0ZSkgJiYgZGVmaW5lZChW
S19LSFJfcHVzaF9kZXNjcmlwdG9yKSkgfHwgKGRlZmluZWQoVktfS0hSX3B1c2hfZGVzY3JpcHRv
cikgJiYgZGVmaW5lZChWS19WRVJTSU9OXzFfMSkpIHx8IChkZWZpbmVkKFZLX0tIUl9wdXNoX2Rl
c2NyaXB0b3IpICYmIGRlZmluZWQoVktfS0hSX2Rlc2NyaXB0b3JfdXBkYXRlX3RlbXBsYXRlKSkg
Ki8KICNpZiAoZGVmaW5lZChWS19LSFJfZGV2aWNlX2dyb3VwKSAmJiBkZWZpbmVkKFZLX0tIUl9z
dXJmYWNlKSkgfHwgKGRlZmluZWQoVktfS0hSX3N3YXBjaGFpbikgJiYgZGVmaW5lZChWS19WRVJT
SU9OXzFfMSkpCiBQRk5fdmtHZXREZXZpY2VHcm91cFByZXNlbnRDYXBhYmlsaXRpZXNLSFIgdmtH
ZXREZXZpY2VHcm91cFByZXNlbnRDYXBhYmlsaXRpZXNLSFI7CiBQRk5fdmtHZXREZXZpY2VHcm91
cFN1cmZhY2VQcmVzZW50TW9kZXNLSFIgdmtHZXREZXZpY2VHcm91cFN1cmZhY2VQcmVzZW50TW9k
ZXNLSFI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGhpcmRfcGFy
dHkvdm9say92b2xrLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvdGhpcmRfcGFydHkv
dm9say92b2xrLmgKaW5kZXggODRmMGU1NDkzMTJkM2E5NDUyYjU0NjIwNjdkMTgyOTY5NzRiNDMz
NS4uMDg3MjFiNWVkYmJkYTQwYzI4N2U5OGRiNjIwMjcwNjdiZjc1ZjJiZiAxMDA2NDQKLS0tIGEv
U291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL3RoaXJkX3BhcnR5L3ZvbGsvdm9say5oCisrKyBi
L1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy90aGlyZF9wYXJ0eS92b2xrL3ZvbGsuaApAQCAt
MTUsNyArMTUsNyBAQAogI2VuZGlmCiAKIC8qIFZPTEtfR0VORVJBVEVfVkVSU0lPTl9ERUZJTkUg
Ki8KLSNkZWZpbmUgVk9MS19IRUFERVJfVkVSU0lPTiAxMzAKKyNkZWZpbmUgVk9MS19IRUFERVJf
VkVSU0lPTiAyMDQKIC8qIFZPTEtfR0VORVJBVEVfVkVSU0lPTl9ERUZJTkUgKi8KIAogI2lmbmRl
ZiBWS19OT19QUk9UT1RZUEVTCkBAIC00MiwxMSArNDIsMjMgQEAKICAgICAgICAgdHlwZWRlZiBz
dHJ1Y3QgX1NFQ1VSSVRZX0FUVFJJQlVURVMgU0VDVVJJVFlfQVRUUklCVVRFUzsKIAogIyAgICAg
ICBpbmNsdWRlIDx2dWxrYW4vdnVsa2FuX3dpbjMyLmg+CisKKyMgICAgICAgaWZkZWYgVktfRU5B
QkxFX0JFVEFfRVhURU5TSU9OUworIyAgICAgICAgICAgaW5jbHVkZSA8dnVsa2FuL3Z1bGthbl9i
ZXRhLmg+CisjICAgICAgIGVuZGlmCiAjICAgZWxzZQogIyAgICAgICBpbmNsdWRlIDx2dWxrYW4v
dnVsa2FuLmg+CiAjICAgZW5kaWYKICNlbmRpZgogCisvKiBEaXNhYmxlIHNldmVyYWwgZXh0ZW5z
aW9ucyBvbiBlYXJsaWVyIFNES3MgYmVjYXVzZSBsYXRlciBTREtzIGludHJvZHVjZSBhIGJhY2t3
YXJkcyBpbmNvbXBhdGlibGUgY2hhbmdlIHRvIGZ1bmN0aW9uIHNpZ25hdHVyZXMgKi8KKyNpZiBW
S19IRUFERVJfVkVSU0lPTiA8IDE0MAorIyAgIHVuZGVmIFZLX05WWF9pbWFnZV92aWV3X2hhbmRs
ZQorI2VuZGlmCisjaWYgVktfSEVBREVSX1ZFUlNJT04gPCAxODQKKyMgICB1bmRlZiBWS19IVUFX
RUlfc3VicGFzc19zaGFkaW5nCisjZW5kaWYKKwogI2lmZGVmIF9fY3BsdXNwbHVzCiBleHRlcm4g
IkMiIHsKICNlbmRpZgpAQCAtODEsNiArOTMsMTIgQEAgdWludDMyX3Qgdm9sa0dldEluc3RhbmNl
VmVyc2lvbih2b2lkKTsKICAqLwogdm9pZCB2b2xrTG9hZEluc3RhbmNlKFZrSW5zdGFuY2UgaW5z
dGFuY2UpOwogCisvKioKKyAqIExvYWQgZ2xvYmFsIGZ1bmN0aW9uIHBvaW50ZXJzIHVzaW5nIGFw
cGxpY2F0aW9uLWNyZWF0ZWQgVmtJbnN0YW5jZTsgY2FsbCB0aGlzIGZ1bmN0aW9uIGFmdGVyIGNy
ZWF0aW5nIHRoZSBWdWxrYW4gaW5zdGFuY2UuCisgKiBTa2lwcyBsb2FkaW5nIGRldmljZS1iYXNl
ZCBmdW5jdGlvbiBwb2ludGVycywgcmVxdWlyZXMgdXNhZ2Ugb2Ygdm9sa0xvYWREZXZpY2UgYWZ0
ZXJ3YXJkcy4KKyAqLwordm9pZCB2b2xrTG9hZEluc3RhbmNlT25seShWa0luc3RhbmNlIGluc3Rh
bmNlKTsKKwogLyoqCiAgKiBMb2FkIGdsb2JhbCBmdW5jdGlvbiBwb2ludGVycyB1c2luZyBhcHBs
aWNhdGlvbi1jcmVhdGVkIFZrRGV2aWNlOyBjYWxsIHRoaXMgZnVuY3Rpb24gYWZ0ZXIgY3JlYXRp
bmcgdGhlIFZ1bGthbiBkZXZpY2UuCiAgKgpAQCAtOTIsMTMgKzExMCwxMyBAQCB2b2lkIHZvbGtM
b2FkRGV2aWNlKFZrRGV2aWNlIGRldmljZSk7CiAgKiBSZXR1cm4gbGFzdCBWa0luc3RhbmNlIGZv
ciB3aGljaCBnbG9iYWwgZnVuY3Rpb24gcG9pbnRlcnMgaGF2ZSBiZWVuIGxvYWRlZCB2aWEgdm9s
a0xvYWRJbnN0YW5jZSgpLAogICogb3IgVktfTlVMTF9IQU5ETEUgaWYgdm9sa0xvYWRJbnN0YW5j
ZSgpIGhhcyBub3QgYmVlbiBjYWxsZWQuCiAgKi8KLVZrSW5zdGFuY2Ugdm9sa0dldExvYWRlZElu
c3RhbmNlKCk7CitWa0luc3RhbmNlIHZvbGtHZXRMb2FkZWRJbnN0YW5jZSh2b2lkKTsKIAogLyoq
CiAgKiBSZXR1cm4gbGFzdCBWa0RldmljZSBmb3Igd2hpY2ggZ2xvYmFsIGZ1bmN0aW9uIHBvaW50
ZXJzIGhhdmUgYmVlbiBsb2FkZWQgdmlhIHZvbGtMb2FkRGV2aWNlKCksCiAgKiBvciBWS19OVUxM
X0hBTkRMRSBpZiB2b2xrTG9hZERldmljZSgpIGhhcyBub3QgYmVlbiBjYWxsZWQuCiAgKi8KLVZr
RGV2aWNlIHZvbGtHZXRMb2FkZWREZXZpY2UoKTsKK1ZrRGV2aWNlIHZvbGtHZXRMb2FkZWREZXZp
Y2Uodm9pZCk7CiAKIC8qKgogICogTG9hZCBmdW5jdGlvbiBwb2ludGVycyB1c2luZyBhcHBsaWNh
dGlvbi1jcmVhdGVkIFZrRGV2aWNlIGludG8gYSB0YWJsZS4KQEAgLTI1Miw2ICsyNzAsNTkgQEAg
c3RydWN0IFZvbGtEZXZpY2VUYWJsZQogICAgIFBGTl92a1RyaW1Db21tYW5kUG9vbCB2a1RyaW1D
b21tYW5kUG9vbDsKICAgICBQRk5fdmtVcGRhdGVEZXNjcmlwdG9yU2V0V2l0aFRlbXBsYXRlIHZr
VXBkYXRlRGVzY3JpcHRvclNldFdpdGhUZW1wbGF0ZTsKICNlbmRpZiAvKiBkZWZpbmVkKFZLX1ZF
UlNJT05fMV8xKSAqLworI2lmIGRlZmluZWQoVktfVkVSU0lPTl8xXzIpCisgICAgUEZOX3ZrQ21k
QmVnaW5SZW5kZXJQYXNzMiB2a0NtZEJlZ2luUmVuZGVyUGFzczI7CisgICAgUEZOX3ZrQ21kRHJh
d0luZGV4ZWRJbmRpcmVjdENvdW50IHZrQ21kRHJhd0luZGV4ZWRJbmRpcmVjdENvdW50OworICAg
IFBGTl92a0NtZERyYXdJbmRpcmVjdENvdW50IHZrQ21kRHJhd0luZGlyZWN0Q291bnQ7CisgICAg
UEZOX3ZrQ21kRW5kUmVuZGVyUGFzczIgdmtDbWRFbmRSZW5kZXJQYXNzMjsKKyAgICBQRk5fdmtD
bWROZXh0U3VicGFzczIgdmtDbWROZXh0U3VicGFzczI7CisgICAgUEZOX3ZrQ3JlYXRlUmVuZGVy
UGFzczIgdmtDcmVhdGVSZW5kZXJQYXNzMjsKKyAgICBQRk5fdmtHZXRCdWZmZXJEZXZpY2VBZGRy
ZXNzIHZrR2V0QnVmZmVyRGV2aWNlQWRkcmVzczsKKyAgICBQRk5fdmtHZXRCdWZmZXJPcGFxdWVD
YXB0dXJlQWRkcmVzcyB2a0dldEJ1ZmZlck9wYXF1ZUNhcHR1cmVBZGRyZXNzOworICAgIFBGTl92
a0dldERldmljZU1lbW9yeU9wYXF1ZUNhcHR1cmVBZGRyZXNzIHZrR2V0RGV2aWNlTWVtb3J5T3Bh
cXVlQ2FwdHVyZUFkZHJlc3M7CisgICAgUEZOX3ZrR2V0U2VtYXBob3JlQ291bnRlclZhbHVlIHZr
R2V0U2VtYXBob3JlQ291bnRlclZhbHVlOworICAgIFBGTl92a1Jlc2V0UXVlcnlQb29sIHZrUmVz
ZXRRdWVyeVBvb2w7CisgICAgUEZOX3ZrU2lnbmFsU2VtYXBob3JlIHZrU2lnbmFsU2VtYXBob3Jl
OworICAgIFBGTl92a1dhaXRTZW1hcGhvcmVzIHZrV2FpdFNlbWFwaG9yZXM7CisjZW5kaWYgLyog
ZGVmaW5lZChWS19WRVJTSU9OXzFfMikgKi8KKyNpZiBkZWZpbmVkKFZLX1ZFUlNJT05fMV8zKQor
ICAgIFBGTl92a0NtZEJlZ2luUmVuZGVyaW5nIHZrQ21kQmVnaW5SZW5kZXJpbmc7CisgICAgUEZO
X3ZrQ21kQmluZFZlcnRleEJ1ZmZlcnMyIHZrQ21kQmluZFZlcnRleEJ1ZmZlcnMyOworICAgIFBG
Tl92a0NtZEJsaXRJbWFnZTIgdmtDbWRCbGl0SW1hZ2UyOworICAgIFBGTl92a0NtZENvcHlCdWZm
ZXIyIHZrQ21kQ29weUJ1ZmZlcjI7CisgICAgUEZOX3ZrQ21kQ29weUJ1ZmZlclRvSW1hZ2UyIHZr
Q21kQ29weUJ1ZmZlclRvSW1hZ2UyOworICAgIFBGTl92a0NtZENvcHlJbWFnZTIgdmtDbWRDb3B5
SW1hZ2UyOworICAgIFBGTl92a0NtZENvcHlJbWFnZVRvQnVmZmVyMiB2a0NtZENvcHlJbWFnZVRv
QnVmZmVyMjsKKyAgICBQRk5fdmtDbWRFbmRSZW5kZXJpbmcgdmtDbWRFbmRSZW5kZXJpbmc7Cisg
ICAgUEZOX3ZrQ21kUGlwZWxpbmVCYXJyaWVyMiB2a0NtZFBpcGVsaW5lQmFycmllcjI7CisgICAg
UEZOX3ZrQ21kUmVzZXRFdmVudDIgdmtDbWRSZXNldEV2ZW50MjsKKyAgICBQRk5fdmtDbWRSZXNv
bHZlSW1hZ2UyIHZrQ21kUmVzb2x2ZUltYWdlMjsKKyAgICBQRk5fdmtDbWRTZXRDdWxsTW9kZSB2
a0NtZFNldEN1bGxNb2RlOworICAgIFBGTl92a0NtZFNldERlcHRoQmlhc0VuYWJsZSB2a0NtZFNl
dERlcHRoQmlhc0VuYWJsZTsKKyAgICBQRk5fdmtDbWRTZXREZXB0aEJvdW5kc1Rlc3RFbmFibGUg
dmtDbWRTZXREZXB0aEJvdW5kc1Rlc3RFbmFibGU7CisgICAgUEZOX3ZrQ21kU2V0RGVwdGhDb21w
YXJlT3AgdmtDbWRTZXREZXB0aENvbXBhcmVPcDsKKyAgICBQRk5fdmtDbWRTZXREZXB0aFRlc3RF
bmFibGUgdmtDbWRTZXREZXB0aFRlc3RFbmFibGU7CisgICAgUEZOX3ZrQ21kU2V0RGVwdGhXcml0
ZUVuYWJsZSB2a0NtZFNldERlcHRoV3JpdGVFbmFibGU7CisgICAgUEZOX3ZrQ21kU2V0RXZlbnQy
IHZrQ21kU2V0RXZlbnQyOworICAgIFBGTl92a0NtZFNldEZyb250RmFjZSB2a0NtZFNldEZyb250
RmFjZTsKKyAgICBQRk5fdmtDbWRTZXRQcmltaXRpdmVSZXN0YXJ0RW5hYmxlIHZrQ21kU2V0UHJp
bWl0aXZlUmVzdGFydEVuYWJsZTsKKyAgICBQRk5fdmtDbWRTZXRQcmltaXRpdmVUb3BvbG9neSB2
a0NtZFNldFByaW1pdGl2ZVRvcG9sb2d5OworICAgIFBGTl92a0NtZFNldFJhc3Rlcml6ZXJEaXNj
YXJkRW5hYmxlIHZrQ21kU2V0UmFzdGVyaXplckRpc2NhcmRFbmFibGU7CisgICAgUEZOX3ZrQ21k
U2V0U2Npc3NvcldpdGhDb3VudCB2a0NtZFNldFNjaXNzb3JXaXRoQ291bnQ7CisgICAgUEZOX3Zr
Q21kU2V0U3RlbmNpbE9wIHZrQ21kU2V0U3RlbmNpbE9wOworICAgIFBGTl92a0NtZFNldFN0ZW5j
aWxUZXN0RW5hYmxlIHZrQ21kU2V0U3RlbmNpbFRlc3RFbmFibGU7CisgICAgUEZOX3ZrQ21kU2V0
Vmlld3BvcnRXaXRoQ291bnQgdmtDbWRTZXRWaWV3cG9ydFdpdGhDb3VudDsKKyAgICBQRk5fdmtD
bWRXYWl0RXZlbnRzMiB2a0NtZFdhaXRFdmVudHMyOworICAgIFBGTl92a0NtZFdyaXRlVGltZXN0
YW1wMiB2a0NtZFdyaXRlVGltZXN0YW1wMjsKKyAgICBQRk5fdmtDcmVhdGVQcml2YXRlRGF0YVNs
b3QgdmtDcmVhdGVQcml2YXRlRGF0YVNsb3Q7CisgICAgUEZOX3ZrRGVzdHJveVByaXZhdGVEYXRh
U2xvdCB2a0Rlc3Ryb3lQcml2YXRlRGF0YVNsb3Q7CisgICAgUEZOX3ZrR2V0RGV2aWNlQnVmZmVy
TWVtb3J5UmVxdWlyZW1lbnRzIHZrR2V0RGV2aWNlQnVmZmVyTWVtb3J5UmVxdWlyZW1lbnRzOwor
ICAgIFBGTl92a0dldERldmljZUltYWdlTWVtb3J5UmVxdWlyZW1lbnRzIHZrR2V0RGV2aWNlSW1h
Z2VNZW1vcnlSZXF1aXJlbWVudHM7CisgICAgUEZOX3ZrR2V0RGV2aWNlSW1hZ2VTcGFyc2VNZW1v
cnlSZXF1aXJlbWVudHMgdmtHZXREZXZpY2VJbWFnZVNwYXJzZU1lbW9yeVJlcXVpcmVtZW50czsK
KyAgICBQRk5fdmtHZXRQcml2YXRlRGF0YSB2a0dldFByaXZhdGVEYXRhOworICAgIFBGTl92a1F1
ZXVlU3VibWl0MiB2a1F1ZXVlU3VibWl0MjsKKyAgICBQRk5fdmtTZXRQcml2YXRlRGF0YSB2a1Nl
dFByaXZhdGVEYXRhOworI2VuZGlmIC8qIGRlZmluZWQoVktfVkVSU0lPTl8xXzMpICovCiAjaWYg
ZGVmaW5lZChWS19BTURfYnVmZmVyX21hcmtlcikKICAgICBQRk5fdmtDbWRXcml0ZUJ1ZmZlck1h
cmtlckFNRCB2a0NtZFdyaXRlQnVmZmVyTWFya2VyQU1EOwogI2VuZGlmIC8qIGRlZmluZWQoVktf
QU1EX2J1ZmZlcl9tYXJrZXIpICovCkBAIC0yNzUsNiArMzQ2LDkgQEAgc3RydWN0IFZvbGtEZXZp
Y2VUYWJsZQogI2lmIGRlZmluZWQoVktfRVhUX2NhbGlicmF0ZWRfdGltZXN0YW1wcykKICAgICBQ
Rk5fdmtHZXRDYWxpYnJhdGVkVGltZXN0YW1wc0VYVCB2a0dldENhbGlicmF0ZWRUaW1lc3RhbXBz
RVhUOwogI2VuZGlmIC8qIGRlZmluZWQoVktfRVhUX2NhbGlicmF0ZWRfdGltZXN0YW1wcykgKi8K
KyNpZiBkZWZpbmVkKFZLX0VYVF9jb2xvcl93cml0ZV9lbmFibGUpCisgICAgUEZOX3ZrQ21kU2V0
Q29sb3JXcml0ZUVuYWJsZUVYVCB2a0NtZFNldENvbG9yV3JpdGVFbmFibGVFWFQ7CisjZW5kaWYg
LyogZGVmaW5lZChWS19FWFRfY29sb3Jfd3JpdGVfZW5hYmxlKSAqLwogI2lmIGRlZmluZWQoVktf
RVhUX2NvbmRpdGlvbmFsX3JlbmRlcmluZykKICAgICBQRk5fdmtDbWRCZWdpbkNvbmRpdGlvbmFs
UmVuZGVyaW5nRVhUIHZrQ21kQmVnaW5Db25kaXRpb25hbFJlbmRlcmluZ0VYVDsKICAgICBQRk5f
dmtDbWRFbmRDb25kaXRpb25hbFJlbmRlcmluZ0VYVCB2a0NtZEVuZENvbmRpdGlvbmFsUmVuZGVy
aW5nRVhUOwpAQCAtMjk1LDYgKzM2OSwyNyBAQCBzdHJ1Y3QgVm9sa0RldmljZVRhYmxlCiAgICAg
UEZOX3ZrUmVnaXN0ZXJEZXZpY2VFdmVudEVYVCB2a1JlZ2lzdGVyRGV2aWNlRXZlbnRFWFQ7CiAg
ICAgUEZOX3ZrUmVnaXN0ZXJEaXNwbGF5RXZlbnRFWFQgdmtSZWdpc3RlckRpc3BsYXlFdmVudEVY
VDsKICNlbmRpZiAvKiBkZWZpbmVkKFZLX0VYVF9kaXNwbGF5X2NvbnRyb2wpICovCisjaWYgZGVm
aW5lZChWS19FWFRfZXh0ZW5kZWRfZHluYW1pY19zdGF0ZSkKKyAgICBQRk5fdmtDbWRCaW5kVmVy
dGV4QnVmZmVyczJFWFQgdmtDbWRCaW5kVmVydGV4QnVmZmVyczJFWFQ7CisgICAgUEZOX3ZrQ21k
U2V0Q3VsbE1vZGVFWFQgdmtDbWRTZXRDdWxsTW9kZUVYVDsKKyAgICBQRk5fdmtDbWRTZXREZXB0
aEJvdW5kc1Rlc3RFbmFibGVFWFQgdmtDbWRTZXREZXB0aEJvdW5kc1Rlc3RFbmFibGVFWFQ7Cisg
ICAgUEZOX3ZrQ21kU2V0RGVwdGhDb21wYXJlT3BFWFQgdmtDbWRTZXREZXB0aENvbXBhcmVPcEVY
VDsKKyAgICBQRk5fdmtDbWRTZXREZXB0aFRlc3RFbmFibGVFWFQgdmtDbWRTZXREZXB0aFRlc3RF
bmFibGVFWFQ7CisgICAgUEZOX3ZrQ21kU2V0RGVwdGhXcml0ZUVuYWJsZUVYVCB2a0NtZFNldERl
cHRoV3JpdGVFbmFibGVFWFQ7CisgICAgUEZOX3ZrQ21kU2V0RnJvbnRGYWNlRVhUIHZrQ21kU2V0
RnJvbnRGYWNlRVhUOworICAgIFBGTl92a0NtZFNldFByaW1pdGl2ZVRvcG9sb2d5RVhUIHZrQ21k
U2V0UHJpbWl0aXZlVG9wb2xvZ3lFWFQ7CisgICAgUEZOX3ZrQ21kU2V0U2Npc3NvcldpdGhDb3Vu
dEVYVCB2a0NtZFNldFNjaXNzb3JXaXRoQ291bnRFWFQ7CisgICAgUEZOX3ZrQ21kU2V0U3RlbmNp
bE9wRVhUIHZrQ21kU2V0U3RlbmNpbE9wRVhUOworICAgIFBGTl92a0NtZFNldFN0ZW5jaWxUZXN0
RW5hYmxlRVhUIHZrQ21kU2V0U3RlbmNpbFRlc3RFbmFibGVFWFQ7CisgICAgUEZOX3ZrQ21kU2V0
Vmlld3BvcnRXaXRoQ291bnRFWFQgdmtDbWRTZXRWaWV3cG9ydFdpdGhDb3VudEVYVDsKKyNlbmRp
ZiAvKiBkZWZpbmVkKFZLX0VYVF9leHRlbmRlZF9keW5hbWljX3N0YXRlKSAqLworI2lmIGRlZmlu
ZWQoVktfRVhUX2V4dGVuZGVkX2R5bmFtaWNfc3RhdGUyKQorICAgIFBGTl92a0NtZFNldERlcHRo
Qmlhc0VuYWJsZUVYVCB2a0NtZFNldERlcHRoQmlhc0VuYWJsZUVYVDsKKyAgICBQRk5fdmtDbWRT
ZXRMb2dpY09wRVhUIHZrQ21kU2V0TG9naWNPcEVYVDsKKyAgICBQRk5fdmtDbWRTZXRQYXRjaENv
bnRyb2xQb2ludHNFWFQgdmtDbWRTZXRQYXRjaENvbnRyb2xQb2ludHNFWFQ7CisgICAgUEZOX3Zr
Q21kU2V0UHJpbWl0aXZlUmVzdGFydEVuYWJsZUVYVCB2a0NtZFNldFByaW1pdGl2ZVJlc3RhcnRF
bmFibGVFWFQ7CisgICAgUEZOX3ZrQ21kU2V0UmFzdGVyaXplckRpc2NhcmRFbmFibGVFWFQgdmtD
bWRTZXRSYXN0ZXJpemVyRGlzY2FyZEVuYWJsZUVYVDsKKyNlbmRpZiAvKiBkZWZpbmVkKFZLX0VY
VF9leHRlbmRlZF9keW5hbWljX3N0YXRlMikgKi8KICNpZiBkZWZpbmVkKFZLX0VYVF9leHRlcm5h
bF9tZW1vcnlfaG9zdCkKICAgICBQRk5fdmtHZXRNZW1vcnlIb3N0UG9pbnRlclByb3BlcnRpZXNF
WFQgdmtHZXRNZW1vcnlIb3N0UG9pbnRlclByb3BlcnRpZXNFWFQ7CiAjZW5kaWYgLyogZGVmaW5l
ZChWS19FWFRfZXh0ZXJuYWxfbWVtb3J5X2hvc3QpICovCkBAIC0zMTQsNiArNDA5LDE5IEBAIHN0
cnVjdCBWb2xrRGV2aWNlVGFibGUKICNpZiBkZWZpbmVkKFZLX0VYVF9saW5lX3Jhc3Rlcml6YXRp
b24pCiAgICAgUEZOX3ZrQ21kU2V0TGluZVN0aXBwbGVFWFQgdmtDbWRTZXRMaW5lU3RpcHBsZUVY
VDsKICNlbmRpZiAvKiBkZWZpbmVkKFZLX0VYVF9saW5lX3Jhc3Rlcml6YXRpb24pICovCisjaWYg
ZGVmaW5lZChWS19FWFRfbXVsdGlfZHJhdykKKyAgICBQRk5fdmtDbWREcmF3TXVsdGlFWFQgdmtD
bWREcmF3TXVsdGlFWFQ7CisgICAgUEZOX3ZrQ21kRHJhd011bHRpSW5kZXhlZEVYVCB2a0NtZERy
YXdNdWx0aUluZGV4ZWRFWFQ7CisjZW5kaWYgLyogZGVmaW5lZChWS19FWFRfbXVsdGlfZHJhdykg
Ki8KKyNpZiBkZWZpbmVkKFZLX0VYVF9wYWdlYWJsZV9kZXZpY2VfbG9jYWxfbWVtb3J5KQorICAg
IFBGTl92a1NldERldmljZU1lbW9yeVByaW9yaXR5RVhUIHZrU2V0RGV2aWNlTWVtb3J5UHJpb3Jp
dHlFWFQ7CisjZW5kaWYgLyogZGVmaW5lZChWS19FWFRfcGFnZWFibGVfZGV2aWNlX2xvY2FsX21l
bW9yeSkgKi8KKyNpZiBkZWZpbmVkKFZLX0VYVF9wcml2YXRlX2RhdGEpCisgICAgUEZOX3ZrQ3Jl
YXRlUHJpdmF0ZURhdGFTbG90RVhUIHZrQ3JlYXRlUHJpdmF0ZURhdGFTbG90RVhUOworICAgIFBG
Tl92a0Rlc3Ryb3lQcml2YXRlRGF0YVNsb3RFWFQgdmtEZXN0cm95UHJpdmF0ZURhdGFTbG90RVhU
OworICAgIFBGTl92a0dldFByaXZhdGVEYXRhRVhUIHZrR2V0UHJpdmF0ZURhdGFFWFQ7CisgICAg
UEZOX3ZrU2V0UHJpdmF0ZURhdGFFWFQgdmtTZXRQcml2YXRlRGF0YUVYVDsKKyNlbmRpZiAvKiBk
ZWZpbmVkKFZLX0VYVF9wcml2YXRlX2RhdGEpICovCiAjaWYgZGVmaW5lZChWS19FWFRfc2FtcGxl
X2xvY2F0aW9ucykKICAgICBQRk5fdmtDbWRTZXRTYW1wbGVMb2NhdGlvbnNFWFQgdmtDbWRTZXRT
YW1wbGVMb2NhdGlvbnNFWFQ7CiAjZW5kaWYgLyogZGVmaW5lZChWS19FWFRfc2FtcGxlX2xvY2F0
aW9ucykgKi8KQEAgLTMzMSwxMCArNDM5LDM1IEBAIHN0cnVjdCBWb2xrRGV2aWNlVGFibGUKICAg
ICBQRk5fdmtHZXRWYWxpZGF0aW9uQ2FjaGVEYXRhRVhUIHZrR2V0VmFsaWRhdGlvbkNhY2hlRGF0
YUVYVDsKICAgICBQRk5fdmtNZXJnZVZhbGlkYXRpb25DYWNoZXNFWFQgdmtNZXJnZVZhbGlkYXRp
b25DYWNoZXNFWFQ7CiAjZW5kaWYgLyogZGVmaW5lZChWS19FWFRfdmFsaWRhdGlvbl9jYWNoZSkg
Ki8KKyNpZiBkZWZpbmVkKFZLX0VYVF92ZXJ0ZXhfaW5wdXRfZHluYW1pY19zdGF0ZSkKKyAgICBQ
Rk5fdmtDbWRTZXRWZXJ0ZXhJbnB1dEVYVCB2a0NtZFNldFZlcnRleElucHV0RVhUOworI2VuZGlm
IC8qIGRlZmluZWQoVktfRVhUX3ZlcnRleF9pbnB1dF9keW5hbWljX3N0YXRlKSAqLworI2lmIGRl
ZmluZWQoVktfRlVDSFNJQV9idWZmZXJfY29sbGVjdGlvbikKKyAgICBQRk5fdmtDcmVhdGVCdWZm
ZXJDb2xsZWN0aW9uRlVDSFNJQSB2a0NyZWF0ZUJ1ZmZlckNvbGxlY3Rpb25GVUNIU0lBOworICAg
IFBGTl92a0Rlc3Ryb3lCdWZmZXJDb2xsZWN0aW9uRlVDSFNJQSB2a0Rlc3Ryb3lCdWZmZXJDb2xs
ZWN0aW9uRlVDSFNJQTsKKyAgICBQRk5fdmtHZXRCdWZmZXJDb2xsZWN0aW9uUHJvcGVydGllc0ZV
Q0hTSUEgdmtHZXRCdWZmZXJDb2xsZWN0aW9uUHJvcGVydGllc0ZVQ0hTSUE7CisgICAgUEZOX3Zr
U2V0QnVmZmVyQ29sbGVjdGlvbkJ1ZmZlckNvbnN0cmFpbnRzRlVDSFNJQSB2a1NldEJ1ZmZlckNv
bGxlY3Rpb25CdWZmZXJDb25zdHJhaW50c0ZVQ0hTSUE7CisgICAgUEZOX3ZrU2V0QnVmZmVyQ29s
bGVjdGlvbkltYWdlQ29uc3RyYWludHNGVUNIU0lBIHZrU2V0QnVmZmVyQ29sbGVjdGlvbkltYWdl
Q29uc3RyYWludHNGVUNIU0lBOworI2VuZGlmIC8qIGRlZmluZWQoVktfRlVDSFNJQV9idWZmZXJf
Y29sbGVjdGlvbikgKi8KKyNpZiBkZWZpbmVkKFZLX0ZVQ0hTSUFfZXh0ZXJuYWxfbWVtb3J5KQor
ICAgIFBGTl92a0dldE1lbW9yeVppcmNvbkhhbmRsZUZVQ0hTSUEgdmtHZXRNZW1vcnlaaXJjb25I
YW5kbGVGVUNIU0lBOworICAgIFBGTl92a0dldE1lbW9yeVppcmNvbkhhbmRsZVByb3BlcnRpZXNG
VUNIU0lBIHZrR2V0TWVtb3J5WmlyY29uSGFuZGxlUHJvcGVydGllc0ZVQ0hTSUE7CisjZW5kaWYg
LyogZGVmaW5lZChWS19GVUNIU0lBX2V4dGVybmFsX21lbW9yeSkgKi8KKyNpZiBkZWZpbmVkKFZL
X0ZVQ0hTSUFfZXh0ZXJuYWxfc2VtYXBob3JlKQorICAgIFBGTl92a0dldFNlbWFwaG9yZVppcmNv
bkhhbmRsZUZVQ0hTSUEgdmtHZXRTZW1hcGhvcmVaaXJjb25IYW5kbGVGVUNIU0lBOworICAgIFBG
Tl92a0ltcG9ydFNlbWFwaG9yZVppcmNvbkhhbmRsZUZVQ0hTSUEgdmtJbXBvcnRTZW1hcGhvcmVa
aXJjb25IYW5kbGVGVUNIU0lBOworI2VuZGlmIC8qIGRlZmluZWQoVktfRlVDSFNJQV9leHRlcm5h
bF9zZW1hcGhvcmUpICovCiAjaWYgZGVmaW5lZChWS19HT09HTEVfZGlzcGxheV90aW1pbmcpCiAg
ICAgUEZOX3ZrR2V0UGFzdFByZXNlbnRhdGlvblRpbWluZ0dPT0dMRSB2a0dldFBhc3RQcmVzZW50
YXRpb25UaW1pbmdHT09HTEU7CiAgICAgUEZOX3ZrR2V0UmVmcmVzaEN5Y2xlRHVyYXRpb25HT09H
TEUgdmtHZXRSZWZyZXNoQ3ljbGVEdXJhdGlvbkdPT0dMRTsKICNlbmRpZiAvKiBkZWZpbmVkKFZL
X0dPT0dMRV9kaXNwbGF5X3RpbWluZykgKi8KKyNpZiBkZWZpbmVkKFZLX0hVQVdFSV9pbnZvY2F0
aW9uX21hc2spCisgICAgUEZOX3ZrQ21kQmluZEludm9jYXRpb25NYXNrSFVBV0VJIHZrQ21kQmlu
ZEludm9jYXRpb25NYXNrSFVBV0VJOworI2VuZGlmIC8qIGRlZmluZWQoVktfSFVBV0VJX2ludm9j
YXRpb25fbWFzaykgKi8KKyNpZiBkZWZpbmVkKFZLX0hVQVdFSV9zdWJwYXNzX3NoYWRpbmcpCisg
ICAgUEZOX3ZrQ21kU3VicGFzc1NoYWRpbmdIVUFXRUkgdmtDbWRTdWJwYXNzU2hhZGluZ0hVQVdF
STsKKyAgICBQRk5fdmtHZXREZXZpY2VTdWJwYXNzU2hhZGluZ01heFdvcmtncm91cFNpemVIVUFX
RUkgdmtHZXREZXZpY2VTdWJwYXNzU2hhZGluZ01heFdvcmtncm91cFNpemVIVUFXRUk7CisjZW5k
aWYgLyogZGVmaW5lZChWS19IVUFXRUlfc3VicGFzc19zaGFkaW5nKSAqLwogI2lmIGRlZmluZWQo
VktfSU5URUxfcGVyZm9ybWFuY2VfcXVlcnkpCiAgICAgUEZOX3ZrQWNxdWlyZVBlcmZvcm1hbmNl
Q29uZmlndXJhdGlvbklOVEVMIHZrQWNxdWlyZVBlcmZvcm1hbmNlQ29uZmlndXJhdGlvbklOVEVM
OwogICAgIFBGTl92a0NtZFNldFBlcmZvcm1hbmNlTWFya2VySU5URUwgdmtDbWRTZXRQZXJmb3Jt
YW5jZU1hcmtlcklOVEVMOwpAQCAtMzQ2LDYgKzQ3OSwyNCBAQCBzdHJ1Y3QgVm9sa0RldmljZVRh
YmxlCiAgICAgUEZOX3ZrUmVsZWFzZVBlcmZvcm1hbmNlQ29uZmlndXJhdGlvbklOVEVMIHZrUmVs
ZWFzZVBlcmZvcm1hbmNlQ29uZmlndXJhdGlvbklOVEVMOwogICAgIFBGTl92a1VuaW5pdGlhbGl6
ZVBlcmZvcm1hbmNlQXBpSU5URUwgdmtVbmluaXRpYWxpemVQZXJmb3JtYW5jZUFwaUlOVEVMOwog
I2VuZGlmIC8qIGRlZmluZWQoVktfSU5URUxfcGVyZm9ybWFuY2VfcXVlcnkpICovCisjaWYgZGVm
aW5lZChWS19LSFJfYWNjZWxlcmF0aW9uX3N0cnVjdHVyZSkKKyAgICBQRk5fdmtCdWlsZEFjY2Vs
ZXJhdGlvblN0cnVjdHVyZXNLSFIgdmtCdWlsZEFjY2VsZXJhdGlvblN0cnVjdHVyZXNLSFI7Cisg
ICAgUEZOX3ZrQ21kQnVpbGRBY2NlbGVyYXRpb25TdHJ1Y3R1cmVzSW5kaXJlY3RLSFIgdmtDbWRC
dWlsZEFjY2VsZXJhdGlvblN0cnVjdHVyZXNJbmRpcmVjdEtIUjsKKyAgICBQRk5fdmtDbWRCdWls
ZEFjY2VsZXJhdGlvblN0cnVjdHVyZXNLSFIgdmtDbWRCdWlsZEFjY2VsZXJhdGlvblN0cnVjdHVy
ZXNLSFI7CisgICAgUEZOX3ZrQ21kQ29weUFjY2VsZXJhdGlvblN0cnVjdHVyZUtIUiB2a0NtZENv
cHlBY2NlbGVyYXRpb25TdHJ1Y3R1cmVLSFI7CisgICAgUEZOX3ZrQ21kQ29weUFjY2VsZXJhdGlv
blN0cnVjdHVyZVRvTWVtb3J5S0hSIHZrQ21kQ29weUFjY2VsZXJhdGlvblN0cnVjdHVyZVRvTWVt
b3J5S0hSOworICAgIFBGTl92a0NtZENvcHlNZW1vcnlUb0FjY2VsZXJhdGlvblN0cnVjdHVyZUtI
UiB2a0NtZENvcHlNZW1vcnlUb0FjY2VsZXJhdGlvblN0cnVjdHVyZUtIUjsKKyAgICBQRk5fdmtD
bWRXcml0ZUFjY2VsZXJhdGlvblN0cnVjdHVyZXNQcm9wZXJ0aWVzS0hSIHZrQ21kV3JpdGVBY2Nl
bGVyYXRpb25TdHJ1Y3R1cmVzUHJvcGVydGllc0tIUjsKKyAgICBQRk5fdmtDb3B5QWNjZWxlcmF0
aW9uU3RydWN0dXJlS0hSIHZrQ29weUFjY2VsZXJhdGlvblN0cnVjdHVyZUtIUjsKKyAgICBQRk5f
dmtDb3B5QWNjZWxlcmF0aW9uU3RydWN0dXJlVG9NZW1vcnlLSFIgdmtDb3B5QWNjZWxlcmF0aW9u
U3RydWN0dXJlVG9NZW1vcnlLSFI7CisgICAgUEZOX3ZrQ29weU1lbW9yeVRvQWNjZWxlcmF0aW9u
U3RydWN0dXJlS0hSIHZrQ29weU1lbW9yeVRvQWNjZWxlcmF0aW9uU3RydWN0dXJlS0hSOworICAg
IFBGTl92a0NyZWF0ZUFjY2VsZXJhdGlvblN0cnVjdHVyZUtIUiB2a0NyZWF0ZUFjY2VsZXJhdGlv
blN0cnVjdHVyZUtIUjsKKyAgICBQRk5fdmtEZXN0cm95QWNjZWxlcmF0aW9uU3RydWN0dXJlS0hS
IHZrRGVzdHJveUFjY2VsZXJhdGlvblN0cnVjdHVyZUtIUjsKKyAgICBQRk5fdmtHZXRBY2NlbGVy
YXRpb25TdHJ1Y3R1cmVCdWlsZFNpemVzS0hSIHZrR2V0QWNjZWxlcmF0aW9uU3RydWN0dXJlQnVp
bGRTaXplc0tIUjsKKyAgICBQRk5fdmtHZXRBY2NlbGVyYXRpb25TdHJ1Y3R1cmVEZXZpY2VBZGRy
ZXNzS0hSIHZrR2V0QWNjZWxlcmF0aW9uU3RydWN0dXJlRGV2aWNlQWRkcmVzc0tIUjsKKyAgICBQ
Rk5fdmtHZXREZXZpY2VBY2NlbGVyYXRpb25TdHJ1Y3R1cmVDb21wYXRpYmlsaXR5S0hSIHZrR2V0
RGV2aWNlQWNjZWxlcmF0aW9uU3RydWN0dXJlQ29tcGF0aWJpbGl0eUtIUjsKKyAgICBQRk5fdmtX
cml0ZUFjY2VsZXJhdGlvblN0cnVjdHVyZXNQcm9wZXJ0aWVzS0hSIHZrV3JpdGVBY2NlbGVyYXRp
b25TdHJ1Y3R1cmVzUHJvcGVydGllc0tIUjsKKyNlbmRpZiAvKiBkZWZpbmVkKFZLX0tIUl9hY2Nl
bGVyYXRpb25fc3RydWN0dXJlKSAqLwogI2lmIGRlZmluZWQoVktfS0hSX2JpbmRfbWVtb3J5MikK
ICAgICBQRk5fdmtCaW5kQnVmZmVyTWVtb3J5MktIUiB2a0JpbmRCdWZmZXJNZW1vcnkyS0hSOwog
ICAgIFBGTl92a0JpbmRJbWFnZU1lbW9yeTJLSFIgdmtCaW5kSW1hZ2VNZW1vcnkyS0hSOwpAQCAt
MzU1LDEyICs1MDYsMjcgQEAgc3RydWN0IFZvbGtEZXZpY2VUYWJsZQogICAgIFBGTl92a0dldEJ1
ZmZlck9wYXF1ZUNhcHR1cmVBZGRyZXNzS0hSIHZrR2V0QnVmZmVyT3BhcXVlQ2FwdHVyZUFkZHJl
c3NLSFI7CiAgICAgUEZOX3ZrR2V0RGV2aWNlTWVtb3J5T3BhcXVlQ2FwdHVyZUFkZHJlc3NLSFIg
dmtHZXREZXZpY2VNZW1vcnlPcGFxdWVDYXB0dXJlQWRkcmVzc0tIUjsKICNlbmRpZiAvKiBkZWZp
bmVkKFZLX0tIUl9idWZmZXJfZGV2aWNlX2FkZHJlc3MpICovCisjaWYgZGVmaW5lZChWS19LSFJf
Y29weV9jb21tYW5kczIpCisgICAgUEZOX3ZrQ21kQmxpdEltYWdlMktIUiB2a0NtZEJsaXRJbWFn
ZTJLSFI7CisgICAgUEZOX3ZrQ21kQ29weUJ1ZmZlcjJLSFIgdmtDbWRDb3B5QnVmZmVyMktIUjsK
KyAgICBQRk5fdmtDbWRDb3B5QnVmZmVyVG9JbWFnZTJLSFIgdmtDbWRDb3B5QnVmZmVyVG9JbWFn
ZTJLSFI7CisgICAgUEZOX3ZrQ21kQ29weUltYWdlMktIUiB2a0NtZENvcHlJbWFnZTJLSFI7Cisg
ICAgUEZOX3ZrQ21kQ29weUltYWdlVG9CdWZmZXIyS0hSIHZrQ21kQ29weUltYWdlVG9CdWZmZXIy
S0hSOworICAgIFBGTl92a0NtZFJlc29sdmVJbWFnZTJLSFIgdmtDbWRSZXNvbHZlSW1hZ2UyS0hS
OworI2VuZGlmIC8qIGRlZmluZWQoVktfS0hSX2NvcHlfY29tbWFuZHMyKSAqLwogI2lmIGRlZmlu
ZWQoVktfS0hSX2NyZWF0ZV9yZW5kZXJwYXNzMikKICAgICBQRk5fdmtDbWRCZWdpblJlbmRlclBh
c3MyS0hSIHZrQ21kQmVnaW5SZW5kZXJQYXNzMktIUjsKICAgICBQRk5fdmtDbWRFbmRSZW5kZXJQ
YXNzMktIUiB2a0NtZEVuZFJlbmRlclBhc3MyS0hSOwogICAgIFBGTl92a0NtZE5leHRTdWJwYXNz
MktIUiB2a0NtZE5leHRTdWJwYXNzMktIUjsKICAgICBQRk5fdmtDcmVhdGVSZW5kZXJQYXNzMktI
UiB2a0NyZWF0ZVJlbmRlclBhc3MyS0hSOwogI2VuZGlmIC8qIGRlZmluZWQoVktfS0hSX2NyZWF0
ZV9yZW5kZXJwYXNzMikgKi8KKyNpZiBkZWZpbmVkKFZLX0tIUl9kZWZlcnJlZF9ob3N0X29wZXJh
dGlvbnMpCisgICAgUEZOX3ZrQ3JlYXRlRGVmZXJyZWRPcGVyYXRpb25LSFIgdmtDcmVhdGVEZWZl
cnJlZE9wZXJhdGlvbktIUjsKKyAgICBQRk5fdmtEZWZlcnJlZE9wZXJhdGlvbkpvaW5LSFIgdmtE
ZWZlcnJlZE9wZXJhdGlvbkpvaW5LSFI7CisgICAgUEZOX3ZrRGVzdHJveURlZmVycmVkT3BlcmF0
aW9uS0hSIHZrRGVzdHJveURlZmVycmVkT3BlcmF0aW9uS0hSOworICAgIFBGTl92a0dldERlZmVy
cmVkT3BlcmF0aW9uTWF4Q29uY3VycmVuY3lLSFIgdmtHZXREZWZlcnJlZE9wZXJhdGlvbk1heENv
bmN1cnJlbmN5S0hSOworICAgIFBGTl92a0dldERlZmVycmVkT3BlcmF0aW9uUmVzdWx0S0hSIHZr
R2V0RGVmZXJyZWRPcGVyYXRpb25SZXN1bHRLSFI7CisjZW5kaWYgLyogZGVmaW5lZChWS19LSFJf
ZGVmZXJyZWRfaG9zdF9vcGVyYXRpb25zKSAqLwogI2lmIGRlZmluZWQoVktfS0hSX2Rlc2NyaXB0
b3JfdXBkYXRlX3RlbXBsYXRlKQogICAgIFBGTl92a0NyZWF0ZURlc2NyaXB0b3JVcGRhdGVUZW1w
bGF0ZUtIUiB2a0NyZWF0ZURlc2NyaXB0b3JVcGRhdGVUZW1wbGF0ZUtIUjsKICAgICBQRk5fdmtE
ZXN0cm95RGVzY3JpcHRvclVwZGF0ZVRlbXBsYXRlS0hSIHZrRGVzdHJveURlc2NyaXB0b3JVcGRh
dGVUZW1wbGF0ZUtIUjsKQEAgLTM3OCw2ICs1NDQsMTAgQEAgc3RydWN0IFZvbGtEZXZpY2VUYWJs
ZQogICAgIFBGTl92a0NtZERyYXdJbmRleGVkSW5kaXJlY3RDb3VudEtIUiB2a0NtZERyYXdJbmRl
eGVkSW5kaXJlY3RDb3VudEtIUjsKICAgICBQRk5fdmtDbWREcmF3SW5kaXJlY3RDb3VudEtIUiB2
a0NtZERyYXdJbmRpcmVjdENvdW50S0hSOwogI2VuZGlmIC8qIGRlZmluZWQoVktfS0hSX2RyYXdf
aW5kaXJlY3RfY291bnQpICovCisjaWYgZGVmaW5lZChWS19LSFJfZHluYW1pY19yZW5kZXJpbmcp
CisgICAgUEZOX3ZrQ21kQmVnaW5SZW5kZXJpbmdLSFIgdmtDbWRCZWdpblJlbmRlcmluZ0tIUjsK
KyAgICBQRk5fdmtDbWRFbmRSZW5kZXJpbmdLSFIgdmtDbWRFbmRSZW5kZXJpbmdLSFI7CisjZW5k
aWYgLyogZGVmaW5lZChWS19LSFJfZHluYW1pY19yZW5kZXJpbmcpICovCiAjaWYgZGVmaW5lZChW
S19LSFJfZXh0ZXJuYWxfZmVuY2VfZmQpCiAgICAgUEZOX3ZrR2V0RmVuY2VGZEtIUiB2a0dldEZl
bmNlRmRLSFI7CiAgICAgUEZOX3ZrSW1wb3J0RmVuY2VGZEtIUiB2a0ltcG9ydEZlbmNlRmRLSFI7
CkBAIC00MDIsNiArNTcyLDkgQEAgc3RydWN0IFZvbGtEZXZpY2VUYWJsZQogICAgIFBGTl92a0dl
dFNlbWFwaG9yZVdpbjMySGFuZGxlS0hSIHZrR2V0U2VtYXBob3JlV2luMzJIYW5kbGVLSFI7CiAg
ICAgUEZOX3ZrSW1wb3J0U2VtYXBob3JlV2luMzJIYW5kbGVLSFIgdmtJbXBvcnRTZW1hcGhvcmVX
aW4zMkhhbmRsZUtIUjsKICNlbmRpZiAvKiBkZWZpbmVkKFZLX0tIUl9leHRlcm5hbF9zZW1hcGhv
cmVfd2luMzIpICovCisjaWYgZGVmaW5lZChWS19LSFJfZnJhZ21lbnRfc2hhZGluZ19yYXRlKQor
ICAgIFBGTl92a0NtZFNldEZyYWdtZW50U2hhZGluZ1JhdGVLSFIgdmtDbWRTZXRGcmFnbWVudFNo
YWRpbmdSYXRlS0hSOworI2VuZGlmIC8qIGRlZmluZWQoVktfS0hSX2ZyYWdtZW50X3NoYWRpbmdf
cmF0ZSkgKi8KICNpZiBkZWZpbmVkKFZLX0tIUl9nZXRfbWVtb3J5X3JlcXVpcmVtZW50czIpCiAg
ICAgUEZOX3ZrR2V0QnVmZmVyTWVtb3J5UmVxdWlyZW1lbnRzMktIUiB2a0dldEJ1ZmZlck1lbW9y
eVJlcXVpcmVtZW50czJLSFI7CiAgICAgUEZOX3ZrR2V0SW1hZ2VNZW1vcnlSZXF1aXJlbWVudHMy
S0hSIHZrR2V0SW1hZ2VNZW1vcnlSZXF1aXJlbWVudHMyS0hSOwpAQCAtNDEzLDYgKzU4NiwxMSBA
QCBzdHJ1Y3QgVm9sa0RldmljZVRhYmxlCiAjaWYgZGVmaW5lZChWS19LSFJfbWFpbnRlbmFuY2Uz
KQogICAgIFBGTl92a0dldERlc2NyaXB0b3JTZXRMYXlvdXRTdXBwb3J0S0hSIHZrR2V0RGVzY3Jp
cHRvclNldExheW91dFN1cHBvcnRLSFI7CiAjZW5kaWYgLyogZGVmaW5lZChWS19LSFJfbWFpbnRl
bmFuY2UzKSAqLworI2lmIGRlZmluZWQoVktfS0hSX21haW50ZW5hbmNlNCkKKyAgICBQRk5fdmtH
ZXREZXZpY2VCdWZmZXJNZW1vcnlSZXF1aXJlbWVudHNLSFIgdmtHZXREZXZpY2VCdWZmZXJNZW1v
cnlSZXF1aXJlbWVudHNLSFI7CisgICAgUEZOX3ZrR2V0RGV2aWNlSW1hZ2VNZW1vcnlSZXF1aXJl
bWVudHNLSFIgdmtHZXREZXZpY2VJbWFnZU1lbW9yeVJlcXVpcmVtZW50c0tIUjsKKyAgICBQRk5f
dmtHZXREZXZpY2VJbWFnZVNwYXJzZU1lbW9yeVJlcXVpcmVtZW50c0tIUiB2a0dldERldmljZUlt
YWdlU3BhcnNlTWVtb3J5UmVxdWlyZW1lbnRzS0hSOworI2VuZGlmIC8qIGRlZmluZWQoVktfS0hS
X21haW50ZW5hbmNlNCkgKi8KICNpZiBkZWZpbmVkKFZLX0tIUl9wZXJmb3JtYW5jZV9xdWVyeSkK
ICAgICBQRk5fdmtBY3F1aXJlUHJvZmlsaW5nTG9ja0tIUiB2a0FjcXVpcmVQcm9maWxpbmdMb2Nr
S0hSOwogICAgIFBGTl92a1JlbGVhc2VQcm9maWxpbmdMb2NrS0hSIHZrUmVsZWFzZVByb2ZpbGlu
Z0xvY2tLSFI7CkBAIC00MjIsOSArNjAwLDIxIEBAIHN0cnVjdCBWb2xrRGV2aWNlVGFibGUKICAg
ICBQRk5fdmtHZXRQaXBlbGluZUV4ZWN1dGFibGVQcm9wZXJ0aWVzS0hSIHZrR2V0UGlwZWxpbmVF
eGVjdXRhYmxlUHJvcGVydGllc0tIUjsKICAgICBQRk5fdmtHZXRQaXBlbGluZUV4ZWN1dGFibGVT
dGF0aXN0aWNzS0hSIHZrR2V0UGlwZWxpbmVFeGVjdXRhYmxlU3RhdGlzdGljc0tIUjsKICNlbmRp
ZiAvKiBkZWZpbmVkKFZLX0tIUl9waXBlbGluZV9leGVjdXRhYmxlX3Byb3BlcnRpZXMpICovCisj
aWYgZGVmaW5lZChWS19LSFJfcHJlc2VudF93YWl0KQorICAgIFBGTl92a1dhaXRGb3JQcmVzZW50
S0hSIHZrV2FpdEZvclByZXNlbnRLSFI7CisjZW5kaWYgLyogZGVmaW5lZChWS19LSFJfcHJlc2Vu
dF93YWl0KSAqLwogI2lmIGRlZmluZWQoVktfS0hSX3B1c2hfZGVzY3JpcHRvcikKICAgICBQRk5f
dmtDbWRQdXNoRGVzY3JpcHRvclNldEtIUiB2a0NtZFB1c2hEZXNjcmlwdG9yU2V0S0hSOwogI2Vu
ZGlmIC8qIGRlZmluZWQoVktfS0hSX3B1c2hfZGVzY3JpcHRvcikgKi8KKyNpZiBkZWZpbmVkKFZL
X0tIUl9yYXlfdHJhY2luZ19waXBlbGluZSkKKyAgICBQRk5fdmtDbWRTZXRSYXlUcmFjaW5nUGlw
ZWxpbmVTdGFja1NpemVLSFIgdmtDbWRTZXRSYXlUcmFjaW5nUGlwZWxpbmVTdGFja1NpemVLSFI7
CisgICAgUEZOX3ZrQ21kVHJhY2VSYXlzSW5kaXJlY3RLSFIgdmtDbWRUcmFjZVJheXNJbmRpcmVj
dEtIUjsKKyAgICBQRk5fdmtDbWRUcmFjZVJheXNLSFIgdmtDbWRUcmFjZVJheXNLSFI7CisgICAg
UEZOX3ZrQ3JlYXRlUmF5VHJhY2luZ1BpcGVsaW5lc0tIUiB2a0NyZWF0ZVJheVRyYWNpbmdQaXBl
bGluZXNLSFI7CisgICAgUEZOX3ZrR2V0UmF5VHJhY2luZ0NhcHR1cmVSZXBsYXlTaGFkZXJHcm91
cEhhbmRsZXNLSFIgdmtHZXRSYXlUcmFjaW5nQ2FwdHVyZVJlcGxheVNoYWRlckdyb3VwSGFuZGxl
c0tIUjsKKyAgICBQRk5fdmtHZXRSYXlUcmFjaW5nU2hhZGVyR3JvdXBIYW5kbGVzS0hSIHZrR2V0
UmF5VHJhY2luZ1NoYWRlckdyb3VwSGFuZGxlc0tIUjsKKyAgICBQRk5fdmtHZXRSYXlUcmFjaW5n
U2hhZGVyR3JvdXBTdGFja1NpemVLSFIgdmtHZXRSYXlUcmFjaW5nU2hhZGVyR3JvdXBTdGFja1Np
emVLSFI7CisjZW5kaWYgLyogZGVmaW5lZChWS19LSFJfcmF5X3RyYWNpbmdfcGlwZWxpbmUpICov
CiAjaWYgZGVmaW5lZChWS19LSFJfc2FtcGxlcl95Y2Jjcl9jb252ZXJzaW9uKQogICAgIFBGTl92
a0NyZWF0ZVNhbXBsZXJZY2JjckNvbnZlcnNpb25LSFIgdmtDcmVhdGVTYW1wbGVyWWNiY3JDb252
ZXJzaW9uS0hSOwogICAgIFBGTl92a0Rlc3Ryb3lTYW1wbGVyWWNiY3JDb252ZXJzaW9uS0hSIHZr
RGVzdHJveVNhbXBsZXJZY2JjckNvbnZlcnNpb25LSFI7CkBAIC00MzksMjIgKzYyOSw1MiBAQCBz
dHJ1Y3QgVm9sa0RldmljZVRhYmxlCiAgICAgUEZOX3ZrR2V0U3dhcGNoYWluSW1hZ2VzS0hSIHZr
R2V0U3dhcGNoYWluSW1hZ2VzS0hSOwogICAgIFBGTl92a1F1ZXVlUHJlc2VudEtIUiB2a1F1ZXVl
UHJlc2VudEtIUjsKICNlbmRpZiAvKiBkZWZpbmVkKFZLX0tIUl9zd2FwY2hhaW4pICovCisjaWYg
ZGVmaW5lZChWS19LSFJfc3luY2hyb25pemF0aW9uMikKKyAgICBQRk5fdmtDbWRQaXBlbGluZUJh
cnJpZXIyS0hSIHZrQ21kUGlwZWxpbmVCYXJyaWVyMktIUjsKKyAgICBQRk5fdmtDbWRSZXNldEV2
ZW50MktIUiB2a0NtZFJlc2V0RXZlbnQyS0hSOworICAgIFBGTl92a0NtZFNldEV2ZW50MktIUiB2
a0NtZFNldEV2ZW50MktIUjsKKyAgICBQRk5fdmtDbWRXYWl0RXZlbnRzMktIUiB2a0NtZFdhaXRF
dmVudHMyS0hSOworICAgIFBGTl92a0NtZFdyaXRlVGltZXN0YW1wMktIUiB2a0NtZFdyaXRlVGlt
ZXN0YW1wMktIUjsKKyAgICBQRk5fdmtRdWV1ZVN1Ym1pdDJLSFIgdmtRdWV1ZVN1Ym1pdDJLSFI7
CisjZW5kaWYgLyogZGVmaW5lZChWS19LSFJfc3luY2hyb25pemF0aW9uMikgKi8KKyNpZiBkZWZp
bmVkKFZLX0tIUl9zeW5jaHJvbml6YXRpb24yKSAmJiBkZWZpbmVkKFZLX0FNRF9idWZmZXJfbWFy
a2VyKQorICAgIFBGTl92a0NtZFdyaXRlQnVmZmVyTWFya2VyMkFNRCB2a0NtZFdyaXRlQnVmZmVy
TWFya2VyMkFNRDsKKyNlbmRpZiAvKiBkZWZpbmVkKFZLX0tIUl9zeW5jaHJvbml6YXRpb24yKSAm
JiBkZWZpbmVkKFZLX0FNRF9idWZmZXJfbWFya2VyKSAqLworI2lmIGRlZmluZWQoVktfS0hSX3N5
bmNocm9uaXphdGlvbjIpICYmIGRlZmluZWQoVktfTlZfZGV2aWNlX2RpYWdub3N0aWNfY2hlY2tw
b2ludHMpCisgICAgUEZOX3ZrR2V0UXVldWVDaGVja3BvaW50RGF0YTJOViB2a0dldFF1ZXVlQ2hl
Y2twb2ludERhdGEyTlY7CisjZW5kaWYgLyogZGVmaW5lZChWS19LSFJfc3luY2hyb25pemF0aW9u
MikgJiYgZGVmaW5lZChWS19OVl9kZXZpY2VfZGlhZ25vc3RpY19jaGVja3BvaW50cykgKi8KICNp
ZiBkZWZpbmVkKFZLX0tIUl90aW1lbGluZV9zZW1hcGhvcmUpCiAgICAgUEZOX3ZrR2V0U2VtYXBo
b3JlQ291bnRlclZhbHVlS0hSIHZrR2V0U2VtYXBob3JlQ291bnRlclZhbHVlS0hSOwogICAgIFBG
Tl92a1NpZ25hbFNlbWFwaG9yZUtIUiB2a1NpZ25hbFNlbWFwaG9yZUtIUjsKICAgICBQRk5fdmtX
YWl0U2VtYXBob3Jlc0tIUiB2a1dhaXRTZW1hcGhvcmVzS0hSOwogI2VuZGlmIC8qIGRlZmluZWQo
VktfS0hSX3RpbWVsaW5lX3NlbWFwaG9yZSkgKi8KLSNpZiBkZWZpbmVkKFZLX05WWF9kZXZpY2Vf
Z2VuZXJhdGVkX2NvbW1hbmRzKQotICAgIFBGTl92a0NtZFByb2Nlc3NDb21tYW5kc05WWCB2a0Nt
ZFByb2Nlc3NDb21tYW5kc05WWDsKLSAgICBQRk5fdmtDbWRSZXNlcnZlU3BhY2VGb3JDb21tYW5k
c05WWCB2a0NtZFJlc2VydmVTcGFjZUZvckNvbW1hbmRzTlZYOwotICAgIFBGTl92a0NyZWF0ZUlu
ZGlyZWN0Q29tbWFuZHNMYXlvdXROVlggdmtDcmVhdGVJbmRpcmVjdENvbW1hbmRzTGF5b3V0TlZY
OwotICAgIFBGTl92a0NyZWF0ZU9iamVjdFRhYmxlTlZYIHZrQ3JlYXRlT2JqZWN0VGFibGVOVlg7
Ci0gICAgUEZOX3ZrRGVzdHJveUluZGlyZWN0Q29tbWFuZHNMYXlvdXROVlggdmtEZXN0cm95SW5k
aXJlY3RDb21tYW5kc0xheW91dE5WWDsKLSAgICBQRk5fdmtEZXN0cm95T2JqZWN0VGFibGVOVlgg
dmtEZXN0cm95T2JqZWN0VGFibGVOVlg7Ci0gICAgUEZOX3ZrUmVnaXN0ZXJPYmplY3RzTlZYIHZr
UmVnaXN0ZXJPYmplY3RzTlZYOwotICAgIFBGTl92a1VucmVnaXN0ZXJPYmplY3RzTlZYIHZrVW5y
ZWdpc3Rlck9iamVjdHNOVlg7Ci0jZW5kaWYgLyogZGVmaW5lZChWS19OVlhfZGV2aWNlX2dlbmVy
YXRlZF9jb21tYW5kcykgKi8KKyNpZiBkZWZpbmVkKFZLX0tIUl92aWRlb19kZWNvZGVfcXVldWUp
CisgICAgUEZOX3ZrQ21kRGVjb2RlVmlkZW9LSFIgdmtDbWREZWNvZGVWaWRlb0tIUjsKKyNlbmRp
ZiAvKiBkZWZpbmVkKFZLX0tIUl92aWRlb19kZWNvZGVfcXVldWUpICovCisjaWYgZGVmaW5lZChW
S19LSFJfdmlkZW9fZW5jb2RlX3F1ZXVlKQorICAgIFBGTl92a0NtZEVuY29kZVZpZGVvS0hSIHZr
Q21kRW5jb2RlVmlkZW9LSFI7CisjZW5kaWYgLyogZGVmaW5lZChWS19LSFJfdmlkZW9fZW5jb2Rl
X3F1ZXVlKSAqLworI2lmIGRlZmluZWQoVktfS0hSX3ZpZGVvX3F1ZXVlKQorICAgIFBGTl92a0Jp
bmRWaWRlb1Nlc3Npb25NZW1vcnlLSFIgdmtCaW5kVmlkZW9TZXNzaW9uTWVtb3J5S0hSOworICAg
IFBGTl92a0NtZEJlZ2luVmlkZW9Db2RpbmdLSFIgdmtDbWRCZWdpblZpZGVvQ29kaW5nS0hSOwor
ICAgIFBGTl92a0NtZENvbnRyb2xWaWRlb0NvZGluZ0tIUiB2a0NtZENvbnRyb2xWaWRlb0NvZGlu
Z0tIUjsKKyAgICBQRk5fdmtDbWRFbmRWaWRlb0NvZGluZ0tIUiB2a0NtZEVuZFZpZGVvQ29kaW5n
S0hSOworICAgIFBGTl92a0NyZWF0ZVZpZGVvU2Vzc2lvbktIUiB2a0NyZWF0ZVZpZGVvU2Vzc2lv
bktIUjsKKyAgICBQRk5fdmtDcmVhdGVWaWRlb1Nlc3Npb25QYXJhbWV0ZXJzS0hSIHZrQ3JlYXRl
VmlkZW9TZXNzaW9uUGFyYW1ldGVyc0tIUjsKKyAgICBQRk5fdmtEZXN0cm95VmlkZW9TZXNzaW9u
S0hSIHZrRGVzdHJveVZpZGVvU2Vzc2lvbktIUjsKKyAgICBQRk5fdmtEZXN0cm95VmlkZW9TZXNz
aW9uUGFyYW1ldGVyc0tIUiB2a0Rlc3Ryb3lWaWRlb1Nlc3Npb25QYXJhbWV0ZXJzS0hSOworICAg
IFBGTl92a0dldFZpZGVvU2Vzc2lvbk1lbW9yeVJlcXVpcmVtZW50c0tIUiB2a0dldFZpZGVvU2Vz
c2lvbk1lbW9yeVJlcXVpcmVtZW50c0tIUjsKKyAgICBQRk5fdmtVcGRhdGVWaWRlb1Nlc3Npb25Q
YXJhbWV0ZXJzS0hSIHZrVXBkYXRlVmlkZW9TZXNzaW9uUGFyYW1ldGVyc0tIUjsKKyNlbmRpZiAv
KiBkZWZpbmVkKFZLX0tIUl92aWRlb19xdWV1ZSkgKi8KKyNpZiBkZWZpbmVkKFZLX05WWF9iaW5h
cnlfaW1wb3J0KQorICAgIFBGTl92a0NtZEN1TGF1bmNoS2VybmVsTlZYIHZrQ21kQ3VMYXVuY2hL
ZXJuZWxOVlg7CisgICAgUEZOX3ZrQ3JlYXRlQ3VGdW5jdGlvbk5WWCB2a0NyZWF0ZUN1RnVuY3Rp
b25OVlg7CisgICAgUEZOX3ZrQ3JlYXRlQ3VNb2R1bGVOVlggdmtDcmVhdGVDdU1vZHVsZU5WWDsK
KyAgICBQRk5fdmtEZXN0cm95Q3VGdW5jdGlvbk5WWCB2a0Rlc3Ryb3lDdUZ1bmN0aW9uTlZYOwor
ICAgIFBGTl92a0Rlc3Ryb3lDdU1vZHVsZU5WWCB2a0Rlc3Ryb3lDdU1vZHVsZU5WWDsKKyNlbmRp
ZiAvKiBkZWZpbmVkKFZLX05WWF9iaW5hcnlfaW1wb3J0KSAqLwogI2lmIGRlZmluZWQoVktfTlZY
X2ltYWdlX3ZpZXdfaGFuZGxlKQorICAgIFBGTl92a0dldEltYWdlVmlld0FkZHJlc3NOVlggdmtH
ZXRJbWFnZVZpZXdBZGRyZXNzTlZYOwogICAgIFBGTl92a0dldEltYWdlVmlld0hhbmRsZU5WWCB2
a0dldEltYWdlVmlld0hhbmRsZU5WWDsKICNlbmRpZiAvKiBkZWZpbmVkKFZLX05WWF9pbWFnZV92
aWV3X2hhbmRsZSkgKi8KICNpZiBkZWZpbmVkKFZLX05WX2NsaXBfc3BhY2Vfd19zY2FsaW5nKQpA
QCAtNDY0LDkgKzY4NCwyMyBAQCBzdHJ1Y3QgVm9sa0RldmljZVRhYmxlCiAgICAgUEZOX3ZrQ21k
U2V0Q2hlY2twb2ludE5WIHZrQ21kU2V0Q2hlY2twb2ludE5WOwogICAgIFBGTl92a0dldFF1ZXVl
Q2hlY2twb2ludERhdGFOViB2a0dldFF1ZXVlQ2hlY2twb2ludERhdGFOVjsKICNlbmRpZiAvKiBk
ZWZpbmVkKFZLX05WX2RldmljZV9kaWFnbm9zdGljX2NoZWNrcG9pbnRzKSAqLworI2lmIGRlZmlu
ZWQoVktfTlZfZGV2aWNlX2dlbmVyYXRlZF9jb21tYW5kcykKKyAgICBQRk5fdmtDbWRCaW5kUGlw
ZWxpbmVTaGFkZXJHcm91cE5WIHZrQ21kQmluZFBpcGVsaW5lU2hhZGVyR3JvdXBOVjsKKyAgICBQ
Rk5fdmtDbWRFeGVjdXRlR2VuZXJhdGVkQ29tbWFuZHNOViB2a0NtZEV4ZWN1dGVHZW5lcmF0ZWRD
b21tYW5kc05WOworICAgIFBGTl92a0NtZFByZXByb2Nlc3NHZW5lcmF0ZWRDb21tYW5kc05WIHZr
Q21kUHJlcHJvY2Vzc0dlbmVyYXRlZENvbW1hbmRzTlY7CisgICAgUEZOX3ZrQ3JlYXRlSW5kaXJl
Y3RDb21tYW5kc0xheW91dE5WIHZrQ3JlYXRlSW5kaXJlY3RDb21tYW5kc0xheW91dE5WOworICAg
IFBGTl92a0Rlc3Ryb3lJbmRpcmVjdENvbW1hbmRzTGF5b3V0TlYgdmtEZXN0cm95SW5kaXJlY3RD
b21tYW5kc0xheW91dE5WOworICAgIFBGTl92a0dldEdlbmVyYXRlZENvbW1hbmRzTWVtb3J5UmVx
dWlyZW1lbnRzTlYgdmtHZXRHZW5lcmF0ZWRDb21tYW5kc01lbW9yeVJlcXVpcmVtZW50c05WOwor
I2VuZGlmIC8qIGRlZmluZWQoVktfTlZfZGV2aWNlX2dlbmVyYXRlZF9jb21tYW5kcykgKi8KKyNp
ZiBkZWZpbmVkKFZLX05WX2V4dGVybmFsX21lbW9yeV9yZG1hKQorICAgIFBGTl92a0dldE1lbW9y
eVJlbW90ZUFkZHJlc3NOViB2a0dldE1lbW9yeVJlbW90ZUFkZHJlc3NOVjsKKyNlbmRpZiAvKiBk
ZWZpbmVkKFZLX05WX2V4dGVybmFsX21lbW9yeV9yZG1hKSAqLwogI2lmIGRlZmluZWQoVktfTlZf
ZXh0ZXJuYWxfbWVtb3J5X3dpbjMyKQogICAgIFBGTl92a0dldE1lbW9yeVdpbjMySGFuZGxlTlYg
dmtHZXRNZW1vcnlXaW4zMkhhbmRsZU5WOwogI2VuZGlmIC8qIGRlZmluZWQoVktfTlZfZXh0ZXJu
YWxfbWVtb3J5X3dpbjMyKSAqLworI2lmIGRlZmluZWQoVktfTlZfZnJhZ21lbnRfc2hhZGluZ19y
YXRlX2VudW1zKQorICAgIFBGTl92a0NtZFNldEZyYWdtZW50U2hhZGluZ1JhdGVFbnVtTlYgdmtD
bWRTZXRGcmFnbWVudFNoYWRpbmdSYXRlRW51bU5WOworI2VuZGlmIC8qIGRlZmluZWQoVktfTlZf
ZnJhZ21lbnRfc2hhZGluZ19yYXRlX2VudW1zKSAqLwogI2lmIGRlZmluZWQoVktfTlZfbWVzaF9z
aGFkZXIpCiAgICAgUEZOX3ZrQ21kRHJhd01lc2hUYXNrc0luZGlyZWN0Q291bnROViB2a0NtZERy
YXdNZXNoVGFza3NJbmRpcmVjdENvdW50TlY7CiAgICAgUEZOX3ZrQ21kRHJhd01lc2hUYXNrc0lu
ZGlyZWN0TlYgdmtDbWREcmF3TWVzaFRhc2tzSW5kaXJlY3ROVjsKQEAgLTQ5Nyw5ICs3MzEsOSBA
QCBzdHJ1Y3QgVm9sa0RldmljZVRhYmxlCiAjaWYgKGRlZmluZWQoVktfRVhUX2Z1bGxfc2NyZWVu
X2V4Y2x1c2l2ZSkgJiYgZGVmaW5lZChWS19LSFJfZGV2aWNlX2dyb3VwKSkgfHwgKGRlZmluZWQo
VktfRVhUX2Z1bGxfc2NyZWVuX2V4Y2x1c2l2ZSkgJiYgZGVmaW5lZChWS19WRVJTSU9OXzFfMSkp
CiAgICAgUEZOX3ZrR2V0RGV2aWNlR3JvdXBTdXJmYWNlUHJlc2VudE1vZGVzMkVYVCB2a0dldERl
dmljZUdyb3VwU3VyZmFjZVByZXNlbnRNb2RlczJFWFQ7CiAjZW5kaWYgLyogKGRlZmluZWQoVktf
RVhUX2Z1bGxfc2NyZWVuX2V4Y2x1c2l2ZSkgJiYgZGVmaW5lZChWS19LSFJfZGV2aWNlX2dyb3Vw
KSkgfHwgKGRlZmluZWQoVktfRVhUX2Z1bGxfc2NyZWVuX2V4Y2x1c2l2ZSkgJiYgZGVmaW5lZChW
S19WRVJTSU9OXzFfMSkpICovCi0jaWYgKGRlZmluZWQoVktfS0hSX2Rlc2NyaXB0b3JfdXBkYXRl
X3RlbXBsYXRlKSAmJiBkZWZpbmVkKFZLX0tIUl9wdXNoX2Rlc2NyaXB0b3IpKSB8fCAoZGVmaW5l
ZChWS19LSFJfcHVzaF9kZXNjcmlwdG9yKSAmJiBkZWZpbmVkKFZLX1ZFUlNJT05fMV8xKSkKKyNp
ZiAoZGVmaW5lZChWS19LSFJfZGVzY3JpcHRvcl91cGRhdGVfdGVtcGxhdGUpICYmIGRlZmluZWQo
VktfS0hSX3B1c2hfZGVzY3JpcHRvcikpIHx8IChkZWZpbmVkKFZLX0tIUl9wdXNoX2Rlc2NyaXB0
b3IpICYmIGRlZmluZWQoVktfVkVSU0lPTl8xXzEpKSB8fCAoZGVmaW5lZChWS19LSFJfcHVzaF9k
ZXNjcmlwdG9yKSAmJiBkZWZpbmVkKFZLX0tIUl9kZXNjcmlwdG9yX3VwZGF0ZV90ZW1wbGF0ZSkp
CiAgICAgUEZOX3ZrQ21kUHVzaERlc2NyaXB0b3JTZXRXaXRoVGVtcGxhdGVLSFIgdmtDbWRQdXNo
RGVzY3JpcHRvclNldFdpdGhUZW1wbGF0ZUtIUjsKLSNlbmRpZiAvKiAoZGVmaW5lZChWS19LSFJf
ZGVzY3JpcHRvcl91cGRhdGVfdGVtcGxhdGUpICYmIGRlZmluZWQoVktfS0hSX3B1c2hfZGVzY3Jp
cHRvcikpIHx8IChkZWZpbmVkKFZLX0tIUl9wdXNoX2Rlc2NyaXB0b3IpICYmIGRlZmluZWQoVktf
VkVSU0lPTl8xXzEpKSAqLworI2VuZGlmIC8qIChkZWZpbmVkKFZLX0tIUl9kZXNjcmlwdG9yX3Vw
ZGF0ZV90ZW1wbGF0ZSkgJiYgZGVmaW5lZChWS19LSFJfcHVzaF9kZXNjcmlwdG9yKSkgfHwgKGRl
ZmluZWQoVktfS0hSX3B1c2hfZGVzY3JpcHRvcikgJiYgZGVmaW5lZChWS19WRVJTSU9OXzFfMSkp
IHx8IChkZWZpbmVkKFZLX0tIUl9wdXNoX2Rlc2NyaXB0b3IpICYmIGRlZmluZWQoVktfS0hSX2Rl
c2NyaXB0b3JfdXBkYXRlX3RlbXBsYXRlKSkgKi8KICNpZiAoZGVmaW5lZChWS19LSFJfZGV2aWNl
X2dyb3VwKSAmJiBkZWZpbmVkKFZLX0tIUl9zdXJmYWNlKSkgfHwgKGRlZmluZWQoVktfS0hSX3N3
YXBjaGFpbikgJiYgZGVmaW5lZChWS19WRVJTSU9OXzFfMSkpCiAgICAgUEZOX3ZrR2V0RGV2aWNl
R3JvdXBQcmVzZW50Q2FwYWJpbGl0aWVzS0hSIHZrR2V0RGV2aWNlR3JvdXBQcmVzZW50Q2FwYWJp
bGl0aWVzS0hSOwogICAgIFBGTl92a0dldERldmljZUdyb3VwU3VyZmFjZVByZXNlbnRNb2Rlc0tI
UiB2a0dldERldmljZUdyb3VwU3VyZmFjZVByZXNlbnRNb2Rlc0tIUjsKQEAgLTY4MCw2ICs5MTQs
NjAgQEAgZXh0ZXJuIFBGTl92a0dldFBoeXNpY2FsRGV2aWNlU3BhcnNlSW1hZ2VGb3JtYXRQcm9w
ZXJ0aWVzMiB2a0dldFBoeXNpY2FsRGV2aWNlU3AKIGV4dGVybiBQRk5fdmtUcmltQ29tbWFuZFBv
b2wgdmtUcmltQ29tbWFuZFBvb2w7CiBleHRlcm4gUEZOX3ZrVXBkYXRlRGVzY3JpcHRvclNldFdp
dGhUZW1wbGF0ZSB2a1VwZGF0ZURlc2NyaXB0b3JTZXRXaXRoVGVtcGxhdGU7CiAjZW5kaWYgLyog
ZGVmaW5lZChWS19WRVJTSU9OXzFfMSkgKi8KKyNpZiBkZWZpbmVkKFZLX1ZFUlNJT05fMV8yKQor
ZXh0ZXJuIFBGTl92a0NtZEJlZ2luUmVuZGVyUGFzczIgdmtDbWRCZWdpblJlbmRlclBhc3MyOwor
ZXh0ZXJuIFBGTl92a0NtZERyYXdJbmRleGVkSW5kaXJlY3RDb3VudCB2a0NtZERyYXdJbmRleGVk
SW5kaXJlY3RDb3VudDsKK2V4dGVybiBQRk5fdmtDbWREcmF3SW5kaXJlY3RDb3VudCB2a0NtZERy
YXdJbmRpcmVjdENvdW50OworZXh0ZXJuIFBGTl92a0NtZEVuZFJlbmRlclBhc3MyIHZrQ21kRW5k
UmVuZGVyUGFzczI7CitleHRlcm4gUEZOX3ZrQ21kTmV4dFN1YnBhc3MyIHZrQ21kTmV4dFN1YnBh
c3MyOworZXh0ZXJuIFBGTl92a0NyZWF0ZVJlbmRlclBhc3MyIHZrQ3JlYXRlUmVuZGVyUGFzczI7
CitleHRlcm4gUEZOX3ZrR2V0QnVmZmVyRGV2aWNlQWRkcmVzcyB2a0dldEJ1ZmZlckRldmljZUFk
ZHJlc3M7CitleHRlcm4gUEZOX3ZrR2V0QnVmZmVyT3BhcXVlQ2FwdHVyZUFkZHJlc3MgdmtHZXRC
dWZmZXJPcGFxdWVDYXB0dXJlQWRkcmVzczsKK2V4dGVybiBQRk5fdmtHZXREZXZpY2VNZW1vcnlP
cGFxdWVDYXB0dXJlQWRkcmVzcyB2a0dldERldmljZU1lbW9yeU9wYXF1ZUNhcHR1cmVBZGRyZXNz
OworZXh0ZXJuIFBGTl92a0dldFNlbWFwaG9yZUNvdW50ZXJWYWx1ZSB2a0dldFNlbWFwaG9yZUNv
dW50ZXJWYWx1ZTsKK2V4dGVybiBQRk5fdmtSZXNldFF1ZXJ5UG9vbCB2a1Jlc2V0UXVlcnlQb29s
OworZXh0ZXJuIFBGTl92a1NpZ25hbFNlbWFwaG9yZSB2a1NpZ25hbFNlbWFwaG9yZTsKK2V4dGVy
biBQRk5fdmtXYWl0U2VtYXBob3JlcyB2a1dhaXRTZW1hcGhvcmVzOworI2VuZGlmIC8qIGRlZmlu
ZWQoVktfVkVSU0lPTl8xXzIpICovCisjaWYgZGVmaW5lZChWS19WRVJTSU9OXzFfMykKK2V4dGVy
biBQRk5fdmtDbWRCZWdpblJlbmRlcmluZyB2a0NtZEJlZ2luUmVuZGVyaW5nOworZXh0ZXJuIFBG
Tl92a0NtZEJpbmRWZXJ0ZXhCdWZmZXJzMiB2a0NtZEJpbmRWZXJ0ZXhCdWZmZXJzMjsKK2V4dGVy
biBQRk5fdmtDbWRCbGl0SW1hZ2UyIHZrQ21kQmxpdEltYWdlMjsKK2V4dGVybiBQRk5fdmtDbWRD
b3B5QnVmZmVyMiB2a0NtZENvcHlCdWZmZXIyOworZXh0ZXJuIFBGTl92a0NtZENvcHlCdWZmZXJU
b0ltYWdlMiB2a0NtZENvcHlCdWZmZXJUb0ltYWdlMjsKK2V4dGVybiBQRk5fdmtDbWRDb3B5SW1h
Z2UyIHZrQ21kQ29weUltYWdlMjsKK2V4dGVybiBQRk5fdmtDbWRDb3B5SW1hZ2VUb0J1ZmZlcjIg
dmtDbWRDb3B5SW1hZ2VUb0J1ZmZlcjI7CitleHRlcm4gUEZOX3ZrQ21kRW5kUmVuZGVyaW5nIHZr
Q21kRW5kUmVuZGVyaW5nOworZXh0ZXJuIFBGTl92a0NtZFBpcGVsaW5lQmFycmllcjIgdmtDbWRQ
aXBlbGluZUJhcnJpZXIyOworZXh0ZXJuIFBGTl92a0NtZFJlc2V0RXZlbnQyIHZrQ21kUmVzZXRF
dmVudDI7CitleHRlcm4gUEZOX3ZrQ21kUmVzb2x2ZUltYWdlMiB2a0NtZFJlc29sdmVJbWFnZTI7
CitleHRlcm4gUEZOX3ZrQ21kU2V0Q3VsbE1vZGUgdmtDbWRTZXRDdWxsTW9kZTsKK2V4dGVybiBQ
Rk5fdmtDbWRTZXREZXB0aEJpYXNFbmFibGUgdmtDbWRTZXREZXB0aEJpYXNFbmFibGU7CitleHRl
cm4gUEZOX3ZrQ21kU2V0RGVwdGhCb3VuZHNUZXN0RW5hYmxlIHZrQ21kU2V0RGVwdGhCb3VuZHNU
ZXN0RW5hYmxlOworZXh0ZXJuIFBGTl92a0NtZFNldERlcHRoQ29tcGFyZU9wIHZrQ21kU2V0RGVw
dGhDb21wYXJlT3A7CitleHRlcm4gUEZOX3ZrQ21kU2V0RGVwdGhUZXN0RW5hYmxlIHZrQ21kU2V0
RGVwdGhUZXN0RW5hYmxlOworZXh0ZXJuIFBGTl92a0NtZFNldERlcHRoV3JpdGVFbmFibGUgdmtD
bWRTZXREZXB0aFdyaXRlRW5hYmxlOworZXh0ZXJuIFBGTl92a0NtZFNldEV2ZW50MiB2a0NtZFNl
dEV2ZW50MjsKK2V4dGVybiBQRk5fdmtDbWRTZXRGcm9udEZhY2UgdmtDbWRTZXRGcm9udEZhY2U7
CitleHRlcm4gUEZOX3ZrQ21kU2V0UHJpbWl0aXZlUmVzdGFydEVuYWJsZSB2a0NtZFNldFByaW1p
dGl2ZVJlc3RhcnRFbmFibGU7CitleHRlcm4gUEZOX3ZrQ21kU2V0UHJpbWl0aXZlVG9wb2xvZ3kg
dmtDbWRTZXRQcmltaXRpdmVUb3BvbG9neTsKK2V4dGVybiBQRk5fdmtDbWRTZXRSYXN0ZXJpemVy
RGlzY2FyZEVuYWJsZSB2a0NtZFNldFJhc3Rlcml6ZXJEaXNjYXJkRW5hYmxlOworZXh0ZXJuIFBG
Tl92a0NtZFNldFNjaXNzb3JXaXRoQ291bnQgdmtDbWRTZXRTY2lzc29yV2l0aENvdW50OworZXh0
ZXJuIFBGTl92a0NtZFNldFN0ZW5jaWxPcCB2a0NtZFNldFN0ZW5jaWxPcDsKK2V4dGVybiBQRk5f
dmtDbWRTZXRTdGVuY2lsVGVzdEVuYWJsZSB2a0NtZFNldFN0ZW5jaWxUZXN0RW5hYmxlOworZXh0
ZXJuIFBGTl92a0NtZFNldFZpZXdwb3J0V2l0aENvdW50IHZrQ21kU2V0Vmlld3BvcnRXaXRoQ291
bnQ7CitleHRlcm4gUEZOX3ZrQ21kV2FpdEV2ZW50czIgdmtDbWRXYWl0RXZlbnRzMjsKK2V4dGVy
biBQRk5fdmtDbWRXcml0ZVRpbWVzdGFtcDIgdmtDbWRXcml0ZVRpbWVzdGFtcDI7CitleHRlcm4g
UEZOX3ZrQ3JlYXRlUHJpdmF0ZURhdGFTbG90IHZrQ3JlYXRlUHJpdmF0ZURhdGFTbG90OworZXh0
ZXJuIFBGTl92a0Rlc3Ryb3lQcml2YXRlRGF0YVNsb3QgdmtEZXN0cm95UHJpdmF0ZURhdGFTbG90
OworZXh0ZXJuIFBGTl92a0dldERldmljZUJ1ZmZlck1lbW9yeVJlcXVpcmVtZW50cyB2a0dldERl
dmljZUJ1ZmZlck1lbW9yeVJlcXVpcmVtZW50czsKK2V4dGVybiBQRk5fdmtHZXREZXZpY2VJbWFn
ZU1lbW9yeVJlcXVpcmVtZW50cyB2a0dldERldmljZUltYWdlTWVtb3J5UmVxdWlyZW1lbnRzOwor
ZXh0ZXJuIFBGTl92a0dldERldmljZUltYWdlU3BhcnNlTWVtb3J5UmVxdWlyZW1lbnRzIHZrR2V0
RGV2aWNlSW1hZ2VTcGFyc2VNZW1vcnlSZXF1aXJlbWVudHM7CitleHRlcm4gUEZOX3ZrR2V0UGh5
c2ljYWxEZXZpY2VUb29sUHJvcGVydGllcyB2a0dldFBoeXNpY2FsRGV2aWNlVG9vbFByb3BlcnRp
ZXM7CitleHRlcm4gUEZOX3ZrR2V0UHJpdmF0ZURhdGEgdmtHZXRQcml2YXRlRGF0YTsKK2V4dGVy
biBQRk5fdmtRdWV1ZVN1Ym1pdDIgdmtRdWV1ZVN1Ym1pdDI7CitleHRlcm4gUEZOX3ZrU2V0UHJp
dmF0ZURhdGEgdmtTZXRQcml2YXRlRGF0YTsKKyNlbmRpZiAvKiBkZWZpbmVkKFZLX1ZFUlNJT05f
MV8zKSAqLwogI2lmIGRlZmluZWQoVktfQU1EX2J1ZmZlcl9tYXJrZXIpCiBleHRlcm4gUEZOX3Zr
Q21kV3JpdGVCdWZmZXJNYXJrZXJBTUQgdmtDbWRXcml0ZUJ1ZmZlck1hcmtlckFNRDsKICNlbmRp
ZiAvKiBkZWZpbmVkKFZLX0FNRF9idWZmZXJfbWFya2VyKSAqLwpAQCAtNjk3LDYgKzk4NSwxMCBA
QCBleHRlcm4gUEZOX3ZrR2V0U2hhZGVySW5mb0FNRCB2a0dldFNoYWRlckluZm9BTUQ7CiBleHRl
cm4gUEZOX3ZrR2V0QW5kcm9pZEhhcmR3YXJlQnVmZmVyUHJvcGVydGllc0FORFJPSUQgdmtHZXRB
bmRyb2lkSGFyZHdhcmVCdWZmZXJQcm9wZXJ0aWVzQU5EUk9JRDsKIGV4dGVybiBQRk5fdmtHZXRN
ZW1vcnlBbmRyb2lkSGFyZHdhcmVCdWZmZXJBTkRST0lEIHZrR2V0TWVtb3J5QW5kcm9pZEhhcmR3
YXJlQnVmZmVyQU5EUk9JRDsKICNlbmRpZiAvKiBkZWZpbmVkKFZLX0FORFJPSURfZXh0ZXJuYWxf
bWVtb3J5X2FuZHJvaWRfaGFyZHdhcmVfYnVmZmVyKSAqLworI2lmIGRlZmluZWQoVktfRVhUX2Fj
cXVpcmVfZHJtX2Rpc3BsYXkpCitleHRlcm4gUEZOX3ZrQWNxdWlyZURybURpc3BsYXlFWFQgdmtB
Y3F1aXJlRHJtRGlzcGxheUVYVDsKK2V4dGVybiBQRk5fdmtHZXREcm1EaXNwbGF5RVhUIHZrR2V0
RHJtRGlzcGxheUVYVDsKKyNlbmRpZiAvKiBkZWZpbmVkKFZLX0VYVF9hY3F1aXJlX2RybV9kaXNw
bGF5KSAqLwogI2lmIGRlZmluZWQoVktfRVhUX2FjcXVpcmVfeGxpYl9kaXNwbGF5KQogZXh0ZXJu
IFBGTl92a0FjcXVpcmVYbGliRGlzcGxheUVYVCB2a0FjcXVpcmVYbGliRGlzcGxheUVYVDsKIGV4
dGVybiBQRk5fdmtHZXRSYW5kUk91dHB1dERpc3BsYXlFWFQgdmtHZXRSYW5kUk91dHB1dERpc3Bs
YXlFWFQ7CkBAIC03MDgsNiArMTAwMCw5IEBAIGV4dGVybiBQRk5fdmtHZXRCdWZmZXJEZXZpY2VB
ZGRyZXNzRVhUIHZrR2V0QnVmZmVyRGV2aWNlQWRkcmVzc0VYVDsKIGV4dGVybiBQRk5fdmtHZXRD
YWxpYnJhdGVkVGltZXN0YW1wc0VYVCB2a0dldENhbGlicmF0ZWRUaW1lc3RhbXBzRVhUOwogZXh0
ZXJuIFBGTl92a0dldFBoeXNpY2FsRGV2aWNlQ2FsaWJyYXRlYWJsZVRpbWVEb21haW5zRVhUIHZr
R2V0UGh5c2ljYWxEZXZpY2VDYWxpYnJhdGVhYmxlVGltZURvbWFpbnNFWFQ7CiAjZW5kaWYgLyog
ZGVmaW5lZChWS19FWFRfY2FsaWJyYXRlZF90aW1lc3RhbXBzKSAqLworI2lmIGRlZmluZWQoVktf
RVhUX2NvbG9yX3dyaXRlX2VuYWJsZSkKK2V4dGVybiBQRk5fdmtDbWRTZXRDb2xvcldyaXRlRW5h
YmxlRVhUIHZrQ21kU2V0Q29sb3JXcml0ZUVuYWJsZUVYVDsKKyNlbmRpZiAvKiBkZWZpbmVkKFZL
X0VYVF9jb2xvcl93cml0ZV9lbmFibGUpICovCiAjaWYgZGVmaW5lZChWS19FWFRfY29uZGl0aW9u
YWxfcmVuZGVyaW5nKQogZXh0ZXJuIFBGTl92a0NtZEJlZ2luQ29uZGl0aW9uYWxSZW5kZXJpbmdF
WFQgdmtDbWRCZWdpbkNvbmRpdGlvbmFsUmVuZGVyaW5nRVhUOwogZXh0ZXJuIFBGTl92a0NtZEVu
ZENvbmRpdGlvbmFsUmVuZGVyaW5nRVhUIHZrQ21kRW5kQ29uZGl0aW9uYWxSZW5kZXJpbmdFWFQ7
CkBAIC03NDAsNiArMTAzNSwxMCBAQCBleHRlcm4gUEZOX3ZrU3VibWl0RGVidWdVdGlsc01lc3Nh
Z2VFWFQgdmtTdWJtaXREZWJ1Z1V0aWxzTWVzc2FnZUVYVDsKICNpZiBkZWZpbmVkKFZLX0VYVF9k
aXJlY3RfbW9kZV9kaXNwbGF5KQogZXh0ZXJuIFBGTl92a1JlbGVhc2VEaXNwbGF5RVhUIHZrUmVs
ZWFzZURpc3BsYXlFWFQ7CiAjZW5kaWYgLyogZGVmaW5lZChWS19FWFRfZGlyZWN0X21vZGVfZGlz
cGxheSkgKi8KKyNpZiBkZWZpbmVkKFZLX0VYVF9kaXJlY3RmYl9zdXJmYWNlKQorZXh0ZXJuIFBG
Tl92a0NyZWF0ZURpcmVjdEZCU3VyZmFjZUVYVCB2a0NyZWF0ZURpcmVjdEZCU3VyZmFjZUVYVDsK
K2V4dGVybiBQRk5fdmtHZXRQaHlzaWNhbERldmljZURpcmVjdEZCUHJlc2VudGF0aW9uU3VwcG9y
dEVYVCB2a0dldFBoeXNpY2FsRGV2aWNlRGlyZWN0RkJQcmVzZW50YXRpb25TdXBwb3J0RVhUOwor
I2VuZGlmIC8qIGRlZmluZWQoVktfRVhUX2RpcmVjdGZiX3N1cmZhY2UpICovCiAjaWYgZGVmaW5l
ZChWS19FWFRfZGlzY2FyZF9yZWN0YW5nbGVzKQogZXh0ZXJuIFBGTl92a0NtZFNldERpc2NhcmRS
ZWN0YW5nbGVFWFQgdmtDbWRTZXREaXNjYXJkUmVjdGFuZ2xlRVhUOwogI2VuZGlmIC8qIGRlZmlu
ZWQoVktfRVhUX2Rpc2NhcmRfcmVjdGFuZ2xlcykgKi8KQEAgLTc1Miw2ICsxMDUxLDI3IEBAIGV4
dGVybiBQRk5fdmtSZWdpc3RlckRpc3BsYXlFdmVudEVYVCB2a1JlZ2lzdGVyRGlzcGxheUV2ZW50
RVhUOwogI2lmIGRlZmluZWQoVktfRVhUX2Rpc3BsYXlfc3VyZmFjZV9jb3VudGVyKQogZXh0ZXJu
IFBGTl92a0dldFBoeXNpY2FsRGV2aWNlU3VyZmFjZUNhcGFiaWxpdGllczJFWFQgdmtHZXRQaHlz
aWNhbERldmljZVN1cmZhY2VDYXBhYmlsaXRpZXMyRVhUOwogI2VuZGlmIC8qIGRlZmluZWQoVktf
RVhUX2Rpc3BsYXlfc3VyZmFjZV9jb3VudGVyKSAqLworI2lmIGRlZmluZWQoVktfRVhUX2V4dGVu
ZGVkX2R5bmFtaWNfc3RhdGUpCitleHRlcm4gUEZOX3ZrQ21kQmluZFZlcnRleEJ1ZmZlcnMyRVhU
IHZrQ21kQmluZFZlcnRleEJ1ZmZlcnMyRVhUOworZXh0ZXJuIFBGTl92a0NtZFNldEN1bGxNb2Rl
RVhUIHZrQ21kU2V0Q3VsbE1vZGVFWFQ7CitleHRlcm4gUEZOX3ZrQ21kU2V0RGVwdGhCb3VuZHNU
ZXN0RW5hYmxlRVhUIHZrQ21kU2V0RGVwdGhCb3VuZHNUZXN0RW5hYmxlRVhUOworZXh0ZXJuIFBG
Tl92a0NtZFNldERlcHRoQ29tcGFyZU9wRVhUIHZrQ21kU2V0RGVwdGhDb21wYXJlT3BFWFQ7Citl
eHRlcm4gUEZOX3ZrQ21kU2V0RGVwdGhUZXN0RW5hYmxlRVhUIHZrQ21kU2V0RGVwdGhUZXN0RW5h
YmxlRVhUOworZXh0ZXJuIFBGTl92a0NtZFNldERlcHRoV3JpdGVFbmFibGVFWFQgdmtDbWRTZXRE
ZXB0aFdyaXRlRW5hYmxlRVhUOworZXh0ZXJuIFBGTl92a0NtZFNldEZyb250RmFjZUVYVCB2a0Nt
ZFNldEZyb250RmFjZUVYVDsKK2V4dGVybiBQRk5fdmtDbWRTZXRQcmltaXRpdmVUb3BvbG9neUVY
VCB2a0NtZFNldFByaW1pdGl2ZVRvcG9sb2d5RVhUOworZXh0ZXJuIFBGTl92a0NtZFNldFNjaXNz
b3JXaXRoQ291bnRFWFQgdmtDbWRTZXRTY2lzc29yV2l0aENvdW50RVhUOworZXh0ZXJuIFBGTl92
a0NtZFNldFN0ZW5jaWxPcEVYVCB2a0NtZFNldFN0ZW5jaWxPcEVYVDsKK2V4dGVybiBQRk5fdmtD
bWRTZXRTdGVuY2lsVGVzdEVuYWJsZUVYVCB2a0NtZFNldFN0ZW5jaWxUZXN0RW5hYmxlRVhUOwor
ZXh0ZXJuIFBGTl92a0NtZFNldFZpZXdwb3J0V2l0aENvdW50RVhUIHZrQ21kU2V0Vmlld3BvcnRX
aXRoQ291bnRFWFQ7CisjZW5kaWYgLyogZGVmaW5lZChWS19FWFRfZXh0ZW5kZWRfZHluYW1pY19z
dGF0ZSkgKi8KKyNpZiBkZWZpbmVkKFZLX0VYVF9leHRlbmRlZF9keW5hbWljX3N0YXRlMikKK2V4
dGVybiBQRk5fdmtDbWRTZXREZXB0aEJpYXNFbmFibGVFWFQgdmtDbWRTZXREZXB0aEJpYXNFbmFi
bGVFWFQ7CitleHRlcm4gUEZOX3ZrQ21kU2V0TG9naWNPcEVYVCB2a0NtZFNldExvZ2ljT3BFWFQ7
CitleHRlcm4gUEZOX3ZrQ21kU2V0UGF0Y2hDb250cm9sUG9pbnRzRVhUIHZrQ21kU2V0UGF0Y2hD
b250cm9sUG9pbnRzRVhUOworZXh0ZXJuIFBGTl92a0NtZFNldFByaW1pdGl2ZVJlc3RhcnRFbmFi
bGVFWFQgdmtDbWRTZXRQcmltaXRpdmVSZXN0YXJ0RW5hYmxlRVhUOworZXh0ZXJuIFBGTl92a0Nt
ZFNldFJhc3Rlcml6ZXJEaXNjYXJkRW5hYmxlRVhUIHZrQ21kU2V0UmFzdGVyaXplckRpc2NhcmRF
bmFibGVFWFQ7CisjZW5kaWYgLyogZGVmaW5lZChWS19FWFRfZXh0ZW5kZWRfZHluYW1pY19zdGF0
ZTIpICovCiAjaWYgZGVmaW5lZChWS19FWFRfZXh0ZXJuYWxfbWVtb3J5X2hvc3QpCiBleHRlcm4g
UEZOX3ZrR2V0TWVtb3J5SG9zdFBvaW50ZXJQcm9wZXJ0aWVzRVhUIHZrR2V0TWVtb3J5SG9zdFBv
aW50ZXJQcm9wZXJ0aWVzRVhUOwogI2VuZGlmIC8qIGRlZmluZWQoVktfRVhUX2V4dGVybmFsX21l
bW9yeV9ob3N0KSAqLwpAQCAtNzc4LDYgKzEwOTgsMTkgQEAgZXh0ZXJuIFBGTl92a0NtZFNldExp
bmVTdGlwcGxlRVhUIHZrQ21kU2V0TGluZVN0aXBwbGVFWFQ7CiAjaWYgZGVmaW5lZChWS19FWFRf
bWV0YWxfc3VyZmFjZSkKIGV4dGVybiBQRk5fdmtDcmVhdGVNZXRhbFN1cmZhY2VFWFQgdmtDcmVh
dGVNZXRhbFN1cmZhY2VFWFQ7CiAjZW5kaWYgLyogZGVmaW5lZChWS19FWFRfbWV0YWxfc3VyZmFj
ZSkgKi8KKyNpZiBkZWZpbmVkKFZLX0VYVF9tdWx0aV9kcmF3KQorZXh0ZXJuIFBGTl92a0NtZERy
YXdNdWx0aUVYVCB2a0NtZERyYXdNdWx0aUVYVDsKK2V4dGVybiBQRk5fdmtDbWREcmF3TXVsdGlJ
bmRleGVkRVhUIHZrQ21kRHJhd011bHRpSW5kZXhlZEVYVDsKKyNlbmRpZiAvKiBkZWZpbmVkKFZL
X0VYVF9tdWx0aV9kcmF3KSAqLworI2lmIGRlZmluZWQoVktfRVhUX3BhZ2VhYmxlX2RldmljZV9s
b2NhbF9tZW1vcnkpCitleHRlcm4gUEZOX3ZrU2V0RGV2aWNlTWVtb3J5UHJpb3JpdHlFWFQgdmtT
ZXREZXZpY2VNZW1vcnlQcmlvcml0eUVYVDsKKyNlbmRpZiAvKiBkZWZpbmVkKFZLX0VYVF9wYWdl
YWJsZV9kZXZpY2VfbG9jYWxfbWVtb3J5KSAqLworI2lmIGRlZmluZWQoVktfRVhUX3ByaXZhdGVf
ZGF0YSkKK2V4dGVybiBQRk5fdmtDcmVhdGVQcml2YXRlRGF0YVNsb3RFWFQgdmtDcmVhdGVQcml2
YXRlRGF0YVNsb3RFWFQ7CitleHRlcm4gUEZOX3ZrRGVzdHJveVByaXZhdGVEYXRhU2xvdEVYVCB2
a0Rlc3Ryb3lQcml2YXRlRGF0YVNsb3RFWFQ7CitleHRlcm4gUEZOX3ZrR2V0UHJpdmF0ZURhdGFF
WFQgdmtHZXRQcml2YXRlRGF0YUVYVDsKK2V4dGVybiBQRk5fdmtTZXRQcml2YXRlRGF0YUVYVCB2
a1NldFByaXZhdGVEYXRhRVhUOworI2VuZGlmIC8qIGRlZmluZWQoVktfRVhUX3ByaXZhdGVfZGF0
YSkgKi8KICNpZiBkZWZpbmVkKFZLX0VYVF9zYW1wbGVfbG9jYXRpb25zKQogZXh0ZXJuIFBGTl92
a0NtZFNldFNhbXBsZUxvY2F0aW9uc0VYVCB2a0NtZFNldFNhbXBsZUxvY2F0aW9uc0VYVDsKIGV4
dGVybiBQRk5fdmtHZXRQaHlzaWNhbERldmljZU11bHRpc2FtcGxlUHJvcGVydGllc0VYVCB2a0dl
dFBoeXNpY2FsRGV2aWNlTXVsdGlzYW1wbGVQcm9wZXJ0aWVzRVhUOwpAQCAtNzk5LDYgKzExMzIs
MjQgQEAgZXh0ZXJuIFBGTl92a0Rlc3Ryb3lWYWxpZGF0aW9uQ2FjaGVFWFQgdmtEZXN0cm95VmFs
aWRhdGlvbkNhY2hlRVhUOwogZXh0ZXJuIFBGTl92a0dldFZhbGlkYXRpb25DYWNoZURhdGFFWFQg
dmtHZXRWYWxpZGF0aW9uQ2FjaGVEYXRhRVhUOwogZXh0ZXJuIFBGTl92a01lcmdlVmFsaWRhdGlv
bkNhY2hlc0VYVCB2a01lcmdlVmFsaWRhdGlvbkNhY2hlc0VYVDsKICNlbmRpZiAvKiBkZWZpbmVk
KFZLX0VYVF92YWxpZGF0aW9uX2NhY2hlKSAqLworI2lmIGRlZmluZWQoVktfRVhUX3ZlcnRleF9p
bnB1dF9keW5hbWljX3N0YXRlKQorZXh0ZXJuIFBGTl92a0NtZFNldFZlcnRleElucHV0RVhUIHZr
Q21kU2V0VmVydGV4SW5wdXRFWFQ7CisjZW5kaWYgLyogZGVmaW5lZChWS19FWFRfdmVydGV4X2lu
cHV0X2R5bmFtaWNfc3RhdGUpICovCisjaWYgZGVmaW5lZChWS19GVUNIU0lBX2J1ZmZlcl9jb2xs
ZWN0aW9uKQorZXh0ZXJuIFBGTl92a0NyZWF0ZUJ1ZmZlckNvbGxlY3Rpb25GVUNIU0lBIHZrQ3Jl
YXRlQnVmZmVyQ29sbGVjdGlvbkZVQ0hTSUE7CitleHRlcm4gUEZOX3ZrRGVzdHJveUJ1ZmZlckNv
bGxlY3Rpb25GVUNIU0lBIHZrRGVzdHJveUJ1ZmZlckNvbGxlY3Rpb25GVUNIU0lBOworZXh0ZXJu
IFBGTl92a0dldEJ1ZmZlckNvbGxlY3Rpb25Qcm9wZXJ0aWVzRlVDSFNJQSB2a0dldEJ1ZmZlckNv
bGxlY3Rpb25Qcm9wZXJ0aWVzRlVDSFNJQTsKK2V4dGVybiBQRk5fdmtTZXRCdWZmZXJDb2xsZWN0
aW9uQnVmZmVyQ29uc3RyYWludHNGVUNIU0lBIHZrU2V0QnVmZmVyQ29sbGVjdGlvbkJ1ZmZlckNv
bnN0cmFpbnRzRlVDSFNJQTsKK2V4dGVybiBQRk5fdmtTZXRCdWZmZXJDb2xsZWN0aW9uSW1hZ2VD
b25zdHJhaW50c0ZVQ0hTSUEgdmtTZXRCdWZmZXJDb2xsZWN0aW9uSW1hZ2VDb25zdHJhaW50c0ZV
Q0hTSUE7CisjZW5kaWYgLyogZGVmaW5lZChWS19GVUNIU0lBX2J1ZmZlcl9jb2xsZWN0aW9uKSAq
LworI2lmIGRlZmluZWQoVktfRlVDSFNJQV9leHRlcm5hbF9tZW1vcnkpCitleHRlcm4gUEZOX3Zr
R2V0TWVtb3J5WmlyY29uSGFuZGxlRlVDSFNJQSB2a0dldE1lbW9yeVppcmNvbkhhbmRsZUZVQ0hT
SUE7CitleHRlcm4gUEZOX3ZrR2V0TWVtb3J5WmlyY29uSGFuZGxlUHJvcGVydGllc0ZVQ0hTSUEg
dmtHZXRNZW1vcnlaaXJjb25IYW5kbGVQcm9wZXJ0aWVzRlVDSFNJQTsKKyNlbmRpZiAvKiBkZWZp
bmVkKFZLX0ZVQ0hTSUFfZXh0ZXJuYWxfbWVtb3J5KSAqLworI2lmIGRlZmluZWQoVktfRlVDSFNJ
QV9leHRlcm5hbF9zZW1hcGhvcmUpCitleHRlcm4gUEZOX3ZrR2V0U2VtYXBob3JlWmlyY29uSGFu
ZGxlRlVDSFNJQSB2a0dldFNlbWFwaG9yZVppcmNvbkhhbmRsZUZVQ0hTSUE7CitleHRlcm4gUEZO
X3ZrSW1wb3J0U2VtYXBob3JlWmlyY29uSGFuZGxlRlVDSFNJQSB2a0ltcG9ydFNlbWFwaG9yZVpp
cmNvbkhhbmRsZUZVQ0hTSUE7CisjZW5kaWYgLyogZGVmaW5lZChWS19GVUNIU0lBX2V4dGVybmFs
X3NlbWFwaG9yZSkgKi8KICNpZiBkZWZpbmVkKFZLX0ZVQ0hTSUFfaW1hZ2VwaXBlX3N1cmZhY2Up
CiBleHRlcm4gUEZOX3ZrQ3JlYXRlSW1hZ2VQaXBlU3VyZmFjZUZVQ0hTSUEgdmtDcmVhdGVJbWFn
ZVBpcGVTdXJmYWNlRlVDSFNJQTsKICNlbmRpZiAvKiBkZWZpbmVkKFZLX0ZVQ0hTSUFfaW1hZ2Vw
aXBlX3N1cmZhY2UpICovCkBAIC04MDksNiArMTE2MCwxMyBAQCBleHRlcm4gUEZOX3ZrQ3JlYXRl
U3RyZWFtRGVzY3JpcHRvclN1cmZhY2VHR1AgdmtDcmVhdGVTdHJlYW1EZXNjcmlwdG9yU3VyZmFj
ZUdHUAogZXh0ZXJuIFBGTl92a0dldFBhc3RQcmVzZW50YXRpb25UaW1pbmdHT09HTEUgdmtHZXRQ
YXN0UHJlc2VudGF0aW9uVGltaW5nR09PR0xFOwogZXh0ZXJuIFBGTl92a0dldFJlZnJlc2hDeWNs
ZUR1cmF0aW9uR09PR0xFIHZrR2V0UmVmcmVzaEN5Y2xlRHVyYXRpb25HT09HTEU7CiAjZW5kaWYg
LyogZGVmaW5lZChWS19HT09HTEVfZGlzcGxheV90aW1pbmcpICovCisjaWYgZGVmaW5lZChWS19I
VUFXRUlfaW52b2NhdGlvbl9tYXNrKQorZXh0ZXJuIFBGTl92a0NtZEJpbmRJbnZvY2F0aW9uTWFz
a0hVQVdFSSB2a0NtZEJpbmRJbnZvY2F0aW9uTWFza0hVQVdFSTsKKyNlbmRpZiAvKiBkZWZpbmVk
KFZLX0hVQVdFSV9pbnZvY2F0aW9uX21hc2spICovCisjaWYgZGVmaW5lZChWS19IVUFXRUlfc3Vi
cGFzc19zaGFkaW5nKQorZXh0ZXJuIFBGTl92a0NtZFN1YnBhc3NTaGFkaW5nSFVBV0VJIHZrQ21k
U3VicGFzc1NoYWRpbmdIVUFXRUk7CitleHRlcm4gUEZOX3ZrR2V0RGV2aWNlU3VicGFzc1NoYWRp
bmdNYXhXb3JrZ3JvdXBTaXplSFVBV0VJIHZrR2V0RGV2aWNlU3VicGFzc1NoYWRpbmdNYXhXb3Jr
Z3JvdXBTaXplSFVBV0VJOworI2VuZGlmIC8qIGRlZmluZWQoVktfSFVBV0VJX3N1YnBhc3Nfc2hh
ZGluZykgKi8KICNpZiBkZWZpbmVkKFZLX0lOVEVMX3BlcmZvcm1hbmNlX3F1ZXJ5KQogZXh0ZXJu
IFBGTl92a0FjcXVpcmVQZXJmb3JtYW5jZUNvbmZpZ3VyYXRpb25JTlRFTCB2a0FjcXVpcmVQZXJm
b3JtYW5jZUNvbmZpZ3VyYXRpb25JTlRFTDsKIGV4dGVybiBQRk5fdmtDbWRTZXRQZXJmb3JtYW5j
ZU1hcmtlcklOVEVMIHZrQ21kU2V0UGVyZm9ybWFuY2VNYXJrZXJJTlRFTDsKQEAgLTgyMCw2ICsx
MTc4LDI0IEBAIGV4dGVybiBQRk5fdmtRdWV1ZVNldFBlcmZvcm1hbmNlQ29uZmlndXJhdGlvbklO
VEVMIHZrUXVldWVTZXRQZXJmb3JtYW5jZUNvbmZpZ3VyCiBleHRlcm4gUEZOX3ZrUmVsZWFzZVBl
cmZvcm1hbmNlQ29uZmlndXJhdGlvbklOVEVMIHZrUmVsZWFzZVBlcmZvcm1hbmNlQ29uZmlndXJh
dGlvbklOVEVMOwogZXh0ZXJuIFBGTl92a1VuaW5pdGlhbGl6ZVBlcmZvcm1hbmNlQXBpSU5URUwg
dmtVbmluaXRpYWxpemVQZXJmb3JtYW5jZUFwaUlOVEVMOwogI2VuZGlmIC8qIGRlZmluZWQoVktf
SU5URUxfcGVyZm9ybWFuY2VfcXVlcnkpICovCisjaWYgZGVmaW5lZChWS19LSFJfYWNjZWxlcmF0
aW9uX3N0cnVjdHVyZSkKK2V4dGVybiBQRk5fdmtCdWlsZEFjY2VsZXJhdGlvblN0cnVjdHVyZXNL
SFIgdmtCdWlsZEFjY2VsZXJhdGlvblN0cnVjdHVyZXNLSFI7CitleHRlcm4gUEZOX3ZrQ21kQnVp
bGRBY2NlbGVyYXRpb25TdHJ1Y3R1cmVzSW5kaXJlY3RLSFIgdmtDbWRCdWlsZEFjY2VsZXJhdGlv
blN0cnVjdHVyZXNJbmRpcmVjdEtIUjsKK2V4dGVybiBQRk5fdmtDbWRCdWlsZEFjY2VsZXJhdGlv
blN0cnVjdHVyZXNLSFIgdmtDbWRCdWlsZEFjY2VsZXJhdGlvblN0cnVjdHVyZXNLSFI7CitleHRl
cm4gUEZOX3ZrQ21kQ29weUFjY2VsZXJhdGlvblN0cnVjdHVyZUtIUiB2a0NtZENvcHlBY2NlbGVy
YXRpb25TdHJ1Y3R1cmVLSFI7CitleHRlcm4gUEZOX3ZrQ21kQ29weUFjY2VsZXJhdGlvblN0cnVj
dHVyZVRvTWVtb3J5S0hSIHZrQ21kQ29weUFjY2VsZXJhdGlvblN0cnVjdHVyZVRvTWVtb3J5S0hS
OworZXh0ZXJuIFBGTl92a0NtZENvcHlNZW1vcnlUb0FjY2VsZXJhdGlvblN0cnVjdHVyZUtIUiB2
a0NtZENvcHlNZW1vcnlUb0FjY2VsZXJhdGlvblN0cnVjdHVyZUtIUjsKK2V4dGVybiBQRk5fdmtD
bWRXcml0ZUFjY2VsZXJhdGlvblN0cnVjdHVyZXNQcm9wZXJ0aWVzS0hSIHZrQ21kV3JpdGVBY2Nl
bGVyYXRpb25TdHJ1Y3R1cmVzUHJvcGVydGllc0tIUjsKK2V4dGVybiBQRk5fdmtDb3B5QWNjZWxl
cmF0aW9uU3RydWN0dXJlS0hSIHZrQ29weUFjY2VsZXJhdGlvblN0cnVjdHVyZUtIUjsKK2V4dGVy
biBQRk5fdmtDb3B5QWNjZWxlcmF0aW9uU3RydWN0dXJlVG9NZW1vcnlLSFIgdmtDb3B5QWNjZWxl
cmF0aW9uU3RydWN0dXJlVG9NZW1vcnlLSFI7CitleHRlcm4gUEZOX3ZrQ29weU1lbW9yeVRvQWNj
ZWxlcmF0aW9uU3RydWN0dXJlS0hSIHZrQ29weU1lbW9yeVRvQWNjZWxlcmF0aW9uU3RydWN0dXJl
S0hSOworZXh0ZXJuIFBGTl92a0NyZWF0ZUFjY2VsZXJhdGlvblN0cnVjdHVyZUtIUiB2a0NyZWF0
ZUFjY2VsZXJhdGlvblN0cnVjdHVyZUtIUjsKK2V4dGVybiBQRk5fdmtEZXN0cm95QWNjZWxlcmF0
aW9uU3RydWN0dXJlS0hSIHZrRGVzdHJveUFjY2VsZXJhdGlvblN0cnVjdHVyZUtIUjsKK2V4dGVy
biBQRk5fdmtHZXRBY2NlbGVyYXRpb25TdHJ1Y3R1cmVCdWlsZFNpemVzS0hSIHZrR2V0QWNjZWxl
cmF0aW9uU3RydWN0dXJlQnVpbGRTaXplc0tIUjsKK2V4dGVybiBQRk5fdmtHZXRBY2NlbGVyYXRp
b25TdHJ1Y3R1cmVEZXZpY2VBZGRyZXNzS0hSIHZrR2V0QWNjZWxlcmF0aW9uU3RydWN0dXJlRGV2
aWNlQWRkcmVzc0tIUjsKK2V4dGVybiBQRk5fdmtHZXREZXZpY2VBY2NlbGVyYXRpb25TdHJ1Y3R1
cmVDb21wYXRpYmlsaXR5S0hSIHZrR2V0RGV2aWNlQWNjZWxlcmF0aW9uU3RydWN0dXJlQ29tcGF0
aWJpbGl0eUtIUjsKK2V4dGVybiBQRk5fdmtXcml0ZUFjY2VsZXJhdGlvblN0cnVjdHVyZXNQcm9w
ZXJ0aWVzS0hSIHZrV3JpdGVBY2NlbGVyYXRpb25TdHJ1Y3R1cmVzUHJvcGVydGllc0tIUjsKKyNl
bmRpZiAvKiBkZWZpbmVkKFZLX0tIUl9hY2NlbGVyYXRpb25fc3RydWN0dXJlKSAqLwogI2lmIGRl
ZmluZWQoVktfS0hSX2FuZHJvaWRfc3VyZmFjZSkKIGV4dGVybiBQRk5fdmtDcmVhdGVBbmRyb2lk
U3VyZmFjZUtIUiB2a0NyZWF0ZUFuZHJvaWRTdXJmYWNlS0hSOwogI2VuZGlmIC8qIGRlZmluZWQo
VktfS0hSX2FuZHJvaWRfc3VyZmFjZSkgKi8KQEAgLTgzMiwxMiArMTIwOCwyNyBAQCBleHRlcm4g
UEZOX3ZrR2V0QnVmZmVyRGV2aWNlQWRkcmVzc0tIUiB2a0dldEJ1ZmZlckRldmljZUFkZHJlc3NL
SFI7CiBleHRlcm4gUEZOX3ZrR2V0QnVmZmVyT3BhcXVlQ2FwdHVyZUFkZHJlc3NLSFIgdmtHZXRC
dWZmZXJPcGFxdWVDYXB0dXJlQWRkcmVzc0tIUjsKIGV4dGVybiBQRk5fdmtHZXREZXZpY2VNZW1v
cnlPcGFxdWVDYXB0dXJlQWRkcmVzc0tIUiB2a0dldERldmljZU1lbW9yeU9wYXF1ZUNhcHR1cmVB
ZGRyZXNzS0hSOwogI2VuZGlmIC8qIGRlZmluZWQoVktfS0hSX2J1ZmZlcl9kZXZpY2VfYWRkcmVz
cykgKi8KKyNpZiBkZWZpbmVkKFZLX0tIUl9jb3B5X2NvbW1hbmRzMikKK2V4dGVybiBQRk5fdmtD
bWRCbGl0SW1hZ2UyS0hSIHZrQ21kQmxpdEltYWdlMktIUjsKK2V4dGVybiBQRk5fdmtDbWRDb3B5
QnVmZmVyMktIUiB2a0NtZENvcHlCdWZmZXIyS0hSOworZXh0ZXJuIFBGTl92a0NtZENvcHlCdWZm
ZXJUb0ltYWdlMktIUiB2a0NtZENvcHlCdWZmZXJUb0ltYWdlMktIUjsKK2V4dGVybiBQRk5fdmtD
bWRDb3B5SW1hZ2UyS0hSIHZrQ21kQ29weUltYWdlMktIUjsKK2V4dGVybiBQRk5fdmtDbWRDb3B5
SW1hZ2VUb0J1ZmZlcjJLSFIgdmtDbWRDb3B5SW1hZ2VUb0J1ZmZlcjJLSFI7CitleHRlcm4gUEZO
X3ZrQ21kUmVzb2x2ZUltYWdlMktIUiB2a0NtZFJlc29sdmVJbWFnZTJLSFI7CisjZW5kaWYgLyog
ZGVmaW5lZChWS19LSFJfY29weV9jb21tYW5kczIpICovCiAjaWYgZGVmaW5lZChWS19LSFJfY3Jl
YXRlX3JlbmRlcnBhc3MyKQogZXh0ZXJuIFBGTl92a0NtZEJlZ2luUmVuZGVyUGFzczJLSFIgdmtD
bWRCZWdpblJlbmRlclBhc3MyS0hSOwogZXh0ZXJuIFBGTl92a0NtZEVuZFJlbmRlclBhc3MyS0hS
IHZrQ21kRW5kUmVuZGVyUGFzczJLSFI7CiBleHRlcm4gUEZOX3ZrQ21kTmV4dFN1YnBhc3MyS0hS
IHZrQ21kTmV4dFN1YnBhc3MyS0hSOwogZXh0ZXJuIFBGTl92a0NyZWF0ZVJlbmRlclBhc3MyS0hS
IHZrQ3JlYXRlUmVuZGVyUGFzczJLSFI7CiAjZW5kaWYgLyogZGVmaW5lZChWS19LSFJfY3JlYXRl
X3JlbmRlcnBhc3MyKSAqLworI2lmIGRlZmluZWQoVktfS0hSX2RlZmVycmVkX2hvc3Rfb3BlcmF0
aW9ucykKK2V4dGVybiBQRk5fdmtDcmVhdGVEZWZlcnJlZE9wZXJhdGlvbktIUiB2a0NyZWF0ZURl
ZmVycmVkT3BlcmF0aW9uS0hSOworZXh0ZXJuIFBGTl92a0RlZmVycmVkT3BlcmF0aW9uSm9pbktI
UiB2a0RlZmVycmVkT3BlcmF0aW9uSm9pbktIUjsKK2V4dGVybiBQRk5fdmtEZXN0cm95RGVmZXJy
ZWRPcGVyYXRpb25LSFIgdmtEZXN0cm95RGVmZXJyZWRPcGVyYXRpb25LSFI7CitleHRlcm4gUEZO
X3ZrR2V0RGVmZXJyZWRPcGVyYXRpb25NYXhDb25jdXJyZW5jeUtIUiB2a0dldERlZmVycmVkT3Bl
cmF0aW9uTWF4Q29uY3VycmVuY3lLSFI7CitleHRlcm4gUEZOX3ZrR2V0RGVmZXJyZWRPcGVyYXRp
b25SZXN1bHRLSFIgdmtHZXREZWZlcnJlZE9wZXJhdGlvblJlc3VsdEtIUjsKKyNlbmRpZiAvKiBk
ZWZpbmVkKFZLX0tIUl9kZWZlcnJlZF9ob3N0X29wZXJhdGlvbnMpICovCiAjaWYgZGVmaW5lZChW
S19LSFJfZGVzY3JpcHRvcl91cGRhdGVfdGVtcGxhdGUpCiBleHRlcm4gUEZOX3ZrQ3JlYXRlRGVz
Y3JpcHRvclVwZGF0ZVRlbXBsYXRlS0hSIHZrQ3JlYXRlRGVzY3JpcHRvclVwZGF0ZVRlbXBsYXRl
S0hSOwogZXh0ZXJuIFBGTl92a0Rlc3Ryb3lEZXNjcmlwdG9yVXBkYXRlVGVtcGxhdGVLSFIgdmtE
ZXN0cm95RGVzY3JpcHRvclVwZGF0ZVRlbXBsYXRlS0hSOwpAQCAtODY3LDYgKzEyNTgsMTAgQEAg
ZXh0ZXJuIFBGTl92a0NyZWF0ZVNoYXJlZFN3YXBjaGFpbnNLSFIgdmtDcmVhdGVTaGFyZWRTd2Fw
Y2hhaW5zS0hSOwogZXh0ZXJuIFBGTl92a0NtZERyYXdJbmRleGVkSW5kaXJlY3RDb3VudEtIUiB2
a0NtZERyYXdJbmRleGVkSW5kaXJlY3RDb3VudEtIUjsKIGV4dGVybiBQRk5fdmtDbWREcmF3SW5k
aXJlY3RDb3VudEtIUiB2a0NtZERyYXdJbmRpcmVjdENvdW50S0hSOwogI2VuZGlmIC8qIGRlZmlu
ZWQoVktfS0hSX2RyYXdfaW5kaXJlY3RfY291bnQpICovCisjaWYgZGVmaW5lZChWS19LSFJfZHlu
YW1pY19yZW5kZXJpbmcpCitleHRlcm4gUEZOX3ZrQ21kQmVnaW5SZW5kZXJpbmdLSFIgdmtDbWRC
ZWdpblJlbmRlcmluZ0tIUjsKK2V4dGVybiBQRk5fdmtDbWRFbmRSZW5kZXJpbmdLSFIgdmtDbWRF
bmRSZW5kZXJpbmdLSFI7CisjZW5kaWYgLyogZGVmaW5lZChWS19LSFJfZHluYW1pY19yZW5kZXJp
bmcpICovCiAjaWYgZGVmaW5lZChWS19LSFJfZXh0ZXJuYWxfZmVuY2VfY2FwYWJpbGl0aWVzKQog
ZXh0ZXJuIFBGTl92a0dldFBoeXNpY2FsRGV2aWNlRXh0ZXJuYWxGZW5jZVByb3BlcnRpZXNLSFIg
dmtHZXRQaHlzaWNhbERldmljZUV4dGVybmFsRmVuY2VQcm9wZXJ0aWVzS0hSOwogI2VuZGlmIC8q
IGRlZmluZWQoVktfS0hSX2V4dGVybmFsX2ZlbmNlX2NhcGFiaWxpdGllcykgKi8KQEAgLTkwMCw2
ICsxMjk1LDEwIEBAIGV4dGVybiBQRk5fdmtJbXBvcnRTZW1hcGhvcmVGZEtIUiB2a0ltcG9ydFNl
bWFwaG9yZUZkS0hSOwogZXh0ZXJuIFBGTl92a0dldFNlbWFwaG9yZVdpbjMySGFuZGxlS0hSIHZr
R2V0U2VtYXBob3JlV2luMzJIYW5kbGVLSFI7CiBleHRlcm4gUEZOX3ZrSW1wb3J0U2VtYXBob3Jl
V2luMzJIYW5kbGVLSFIgdmtJbXBvcnRTZW1hcGhvcmVXaW4zMkhhbmRsZUtIUjsKICNlbmRpZiAv
KiBkZWZpbmVkKFZLX0tIUl9leHRlcm5hbF9zZW1hcGhvcmVfd2luMzIpICovCisjaWYgZGVmaW5l
ZChWS19LSFJfZnJhZ21lbnRfc2hhZGluZ19yYXRlKQorZXh0ZXJuIFBGTl92a0NtZFNldEZyYWdt
ZW50U2hhZGluZ1JhdGVLSFIgdmtDbWRTZXRGcmFnbWVudFNoYWRpbmdSYXRlS0hSOworZXh0ZXJu
IFBGTl92a0dldFBoeXNpY2FsRGV2aWNlRnJhZ21lbnRTaGFkaW5nUmF0ZXNLSFIgdmtHZXRQaHlz
aWNhbERldmljZUZyYWdtZW50U2hhZGluZ1JhdGVzS0hSOworI2VuZGlmIC8qIGRlZmluZWQoVktf
S0hSX2ZyYWdtZW50X3NoYWRpbmdfcmF0ZSkgKi8KICNpZiBkZWZpbmVkKFZLX0tIUl9nZXRfZGlz
cGxheV9wcm9wZXJ0aWVzMikKIGV4dGVybiBQRk5fdmtHZXREaXNwbGF5TW9kZVByb3BlcnRpZXMy
S0hSIHZrR2V0RGlzcGxheU1vZGVQcm9wZXJ0aWVzMktIUjsKIGV4dGVybiBQRk5fdmtHZXREaXNw
bGF5UGxhbmVDYXBhYmlsaXRpZXMyS0hSIHZrR2V0RGlzcGxheVBsYW5lQ2FwYWJpbGl0aWVzMktI
UjsKQEAgLTkzMCw2ICsxMzI5LDExIEBAIGV4dGVybiBQRk5fdmtUcmltQ29tbWFuZFBvb2xLSFIg
dmtUcmltQ29tbWFuZFBvb2xLSFI7CiAjaWYgZGVmaW5lZChWS19LSFJfbWFpbnRlbmFuY2UzKQog
ZXh0ZXJuIFBGTl92a0dldERlc2NyaXB0b3JTZXRMYXlvdXRTdXBwb3J0S0hSIHZrR2V0RGVzY3Jp
cHRvclNldExheW91dFN1cHBvcnRLSFI7CiAjZW5kaWYgLyogZGVmaW5lZChWS19LSFJfbWFpbnRl
bmFuY2UzKSAqLworI2lmIGRlZmluZWQoVktfS0hSX21haW50ZW5hbmNlNCkKK2V4dGVybiBQRk5f
dmtHZXREZXZpY2VCdWZmZXJNZW1vcnlSZXF1aXJlbWVudHNLSFIgdmtHZXREZXZpY2VCdWZmZXJN
ZW1vcnlSZXF1aXJlbWVudHNLSFI7CitleHRlcm4gUEZOX3ZrR2V0RGV2aWNlSW1hZ2VNZW1vcnlS
ZXF1aXJlbWVudHNLSFIgdmtHZXREZXZpY2VJbWFnZU1lbW9yeVJlcXVpcmVtZW50c0tIUjsKK2V4
dGVybiBQRk5fdmtHZXREZXZpY2VJbWFnZVNwYXJzZU1lbW9yeVJlcXVpcmVtZW50c0tIUiB2a0dl
dERldmljZUltYWdlU3BhcnNlTWVtb3J5UmVxdWlyZW1lbnRzS0hSOworI2VuZGlmIC8qIGRlZmlu
ZWQoVktfS0hSX21haW50ZW5hbmNlNCkgKi8KICNpZiBkZWZpbmVkKFZLX0tIUl9wZXJmb3JtYW5j
ZV9xdWVyeSkKIGV4dGVybiBQRk5fdmtBY3F1aXJlUHJvZmlsaW5nTG9ja0tIUiB2a0FjcXVpcmVQ
cm9maWxpbmdMb2NrS0hSOwogZXh0ZXJuIFBGTl92a0VudW1lcmF0ZVBoeXNpY2FsRGV2aWNlUXVl
dWVGYW1pbHlQZXJmb3JtYW5jZVF1ZXJ5Q291bnRlcnNLSFIgdmtFbnVtZXJhdGVQaHlzaWNhbERl
dmljZVF1ZXVlRmFtaWx5UGVyZm9ybWFuY2VRdWVyeUNvdW50ZXJzS0hSOwpAQCAtOTQxLDkgKzEz
NDUsMjEgQEAgZXh0ZXJuIFBGTl92a0dldFBpcGVsaW5lRXhlY3V0YWJsZUludGVybmFsUmVwcmVz
ZW50YXRpb25zS0hSIHZrR2V0UGlwZWxpbmVFeGVjdXQKIGV4dGVybiBQRk5fdmtHZXRQaXBlbGlu
ZUV4ZWN1dGFibGVQcm9wZXJ0aWVzS0hSIHZrR2V0UGlwZWxpbmVFeGVjdXRhYmxlUHJvcGVydGll
c0tIUjsKIGV4dGVybiBQRk5fdmtHZXRQaXBlbGluZUV4ZWN1dGFibGVTdGF0aXN0aWNzS0hSIHZr
R2V0UGlwZWxpbmVFeGVjdXRhYmxlU3RhdGlzdGljc0tIUjsKICNlbmRpZiAvKiBkZWZpbmVkKFZL
X0tIUl9waXBlbGluZV9leGVjdXRhYmxlX3Byb3BlcnRpZXMpICovCisjaWYgZGVmaW5lZChWS19L
SFJfcHJlc2VudF93YWl0KQorZXh0ZXJuIFBGTl92a1dhaXRGb3JQcmVzZW50S0hSIHZrV2FpdEZv
clByZXNlbnRLSFI7CisjZW5kaWYgLyogZGVmaW5lZChWS19LSFJfcHJlc2VudF93YWl0KSAqLwog
I2lmIGRlZmluZWQoVktfS0hSX3B1c2hfZGVzY3JpcHRvcikKIGV4dGVybiBQRk5fdmtDbWRQdXNo
RGVzY3JpcHRvclNldEtIUiB2a0NtZFB1c2hEZXNjcmlwdG9yU2V0S0hSOwogI2VuZGlmIC8qIGRl
ZmluZWQoVktfS0hSX3B1c2hfZGVzY3JpcHRvcikgKi8KKyNpZiBkZWZpbmVkKFZLX0tIUl9yYXlf
dHJhY2luZ19waXBlbGluZSkKK2V4dGVybiBQRk5fdmtDbWRTZXRSYXlUcmFjaW5nUGlwZWxpbmVT
dGFja1NpemVLSFIgdmtDbWRTZXRSYXlUcmFjaW5nUGlwZWxpbmVTdGFja1NpemVLSFI7CitleHRl
cm4gUEZOX3ZrQ21kVHJhY2VSYXlzSW5kaXJlY3RLSFIgdmtDbWRUcmFjZVJheXNJbmRpcmVjdEtI
UjsKK2V4dGVybiBQRk5fdmtDbWRUcmFjZVJheXNLSFIgdmtDbWRUcmFjZVJheXNLSFI7CitleHRl
cm4gUEZOX3ZrQ3JlYXRlUmF5VHJhY2luZ1BpcGVsaW5lc0tIUiB2a0NyZWF0ZVJheVRyYWNpbmdQ
aXBlbGluZXNLSFI7CitleHRlcm4gUEZOX3ZrR2V0UmF5VHJhY2luZ0NhcHR1cmVSZXBsYXlTaGFk
ZXJHcm91cEhhbmRsZXNLSFIgdmtHZXRSYXlUcmFjaW5nQ2FwdHVyZVJlcGxheVNoYWRlckdyb3Vw
SGFuZGxlc0tIUjsKK2V4dGVybiBQRk5fdmtHZXRSYXlUcmFjaW5nU2hhZGVyR3JvdXBIYW5kbGVz
S0hSIHZrR2V0UmF5VHJhY2luZ1NoYWRlckdyb3VwSGFuZGxlc0tIUjsKK2V4dGVybiBQRk5fdmtH
ZXRSYXlUcmFjaW5nU2hhZGVyR3JvdXBTdGFja1NpemVLSFIgdmtHZXRSYXlUcmFjaW5nU2hhZGVy
R3JvdXBTdGFja1NpemVLSFI7CisjZW5kaWYgLyogZGVmaW5lZChWS19LSFJfcmF5X3RyYWNpbmdf
cGlwZWxpbmUpICovCiAjaWYgZGVmaW5lZChWS19LSFJfc2FtcGxlcl95Y2Jjcl9jb252ZXJzaW9u
KQogZXh0ZXJuIFBGTl92a0NyZWF0ZVNhbXBsZXJZY2JjckNvbnZlcnNpb25LSFIgdmtDcmVhdGVT
YW1wbGVyWWNiY3JDb252ZXJzaW9uS0hSOwogZXh0ZXJuIFBGTl92a0Rlc3Ryb3lTYW1wbGVyWWNi
Y3JDb252ZXJzaW9uS0hSIHZrRGVzdHJveVNhbXBsZXJZY2JjckNvbnZlcnNpb25LSFI7CkBAIC05
NjUsMTEgKzEzODEsNDUgQEAgZXh0ZXJuIFBGTl92a0Rlc3Ryb3lTd2FwY2hhaW5LSFIgdmtEZXN0
cm95U3dhcGNoYWluS0hSOwogZXh0ZXJuIFBGTl92a0dldFN3YXBjaGFpbkltYWdlc0tIUiB2a0dl
dFN3YXBjaGFpbkltYWdlc0tIUjsKIGV4dGVybiBQRk5fdmtRdWV1ZVByZXNlbnRLSFIgdmtRdWV1
ZVByZXNlbnRLSFI7CiAjZW5kaWYgLyogZGVmaW5lZChWS19LSFJfc3dhcGNoYWluKSAqLworI2lm
IGRlZmluZWQoVktfS0hSX3N5bmNocm9uaXphdGlvbjIpCitleHRlcm4gUEZOX3ZrQ21kUGlwZWxp
bmVCYXJyaWVyMktIUiB2a0NtZFBpcGVsaW5lQmFycmllcjJLSFI7CitleHRlcm4gUEZOX3ZrQ21k
UmVzZXRFdmVudDJLSFIgdmtDbWRSZXNldEV2ZW50MktIUjsKK2V4dGVybiBQRk5fdmtDbWRTZXRF
dmVudDJLSFIgdmtDbWRTZXRFdmVudDJLSFI7CitleHRlcm4gUEZOX3ZrQ21kV2FpdEV2ZW50czJL
SFIgdmtDbWRXYWl0RXZlbnRzMktIUjsKK2V4dGVybiBQRk5fdmtDbWRXcml0ZVRpbWVzdGFtcDJL
SFIgdmtDbWRXcml0ZVRpbWVzdGFtcDJLSFI7CitleHRlcm4gUEZOX3ZrUXVldWVTdWJtaXQyS0hS
IHZrUXVldWVTdWJtaXQyS0hSOworI2VuZGlmIC8qIGRlZmluZWQoVktfS0hSX3N5bmNocm9uaXph
dGlvbjIpICovCisjaWYgZGVmaW5lZChWS19LSFJfc3luY2hyb25pemF0aW9uMikgJiYgZGVmaW5l
ZChWS19BTURfYnVmZmVyX21hcmtlcikKK2V4dGVybiBQRk5fdmtDbWRXcml0ZUJ1ZmZlck1hcmtl
cjJBTUQgdmtDbWRXcml0ZUJ1ZmZlck1hcmtlcjJBTUQ7CisjZW5kaWYgLyogZGVmaW5lZChWS19L
SFJfc3luY2hyb25pemF0aW9uMikgJiYgZGVmaW5lZChWS19BTURfYnVmZmVyX21hcmtlcikgKi8K
KyNpZiBkZWZpbmVkKFZLX0tIUl9zeW5jaHJvbml6YXRpb24yKSAmJiBkZWZpbmVkKFZLX05WX2Rl
dmljZV9kaWFnbm9zdGljX2NoZWNrcG9pbnRzKQorZXh0ZXJuIFBGTl92a0dldFF1ZXVlQ2hlY2tw
b2ludERhdGEyTlYgdmtHZXRRdWV1ZUNoZWNrcG9pbnREYXRhMk5WOworI2VuZGlmIC8qIGRlZmlu
ZWQoVktfS0hSX3N5bmNocm9uaXphdGlvbjIpICYmIGRlZmluZWQoVktfTlZfZGV2aWNlX2RpYWdu
b3N0aWNfY2hlY2twb2ludHMpICovCiAjaWYgZGVmaW5lZChWS19LSFJfdGltZWxpbmVfc2VtYXBo
b3JlKQogZXh0ZXJuIFBGTl92a0dldFNlbWFwaG9yZUNvdW50ZXJWYWx1ZUtIUiB2a0dldFNlbWFw
aG9yZUNvdW50ZXJWYWx1ZUtIUjsKIGV4dGVybiBQRk5fdmtTaWduYWxTZW1hcGhvcmVLSFIgdmtT
aWduYWxTZW1hcGhvcmVLSFI7CiBleHRlcm4gUEZOX3ZrV2FpdFNlbWFwaG9yZXNLSFIgdmtXYWl0
U2VtYXBob3Jlc0tIUjsKICNlbmRpZiAvKiBkZWZpbmVkKFZLX0tIUl90aW1lbGluZV9zZW1hcGhv
cmUpICovCisjaWYgZGVmaW5lZChWS19LSFJfdmlkZW9fZGVjb2RlX3F1ZXVlKQorZXh0ZXJuIFBG
Tl92a0NtZERlY29kZVZpZGVvS0hSIHZrQ21kRGVjb2RlVmlkZW9LSFI7CisjZW5kaWYgLyogZGVm
aW5lZChWS19LSFJfdmlkZW9fZGVjb2RlX3F1ZXVlKSAqLworI2lmIGRlZmluZWQoVktfS0hSX3Zp
ZGVvX2VuY29kZV9xdWV1ZSkKK2V4dGVybiBQRk5fdmtDbWRFbmNvZGVWaWRlb0tIUiB2a0NtZEVu
Y29kZVZpZGVvS0hSOworI2VuZGlmIC8qIGRlZmluZWQoVktfS0hSX3ZpZGVvX2VuY29kZV9xdWV1
ZSkgKi8KKyNpZiBkZWZpbmVkKFZLX0tIUl92aWRlb19xdWV1ZSkKK2V4dGVybiBQRk5fdmtCaW5k
VmlkZW9TZXNzaW9uTWVtb3J5S0hSIHZrQmluZFZpZGVvU2Vzc2lvbk1lbW9yeUtIUjsKK2V4dGVy
biBQRk5fdmtDbWRCZWdpblZpZGVvQ29kaW5nS0hSIHZrQ21kQmVnaW5WaWRlb0NvZGluZ0tIUjsK
K2V4dGVybiBQRk5fdmtDbWRDb250cm9sVmlkZW9Db2RpbmdLSFIgdmtDbWRDb250cm9sVmlkZW9D
b2RpbmdLSFI7CitleHRlcm4gUEZOX3ZrQ21kRW5kVmlkZW9Db2RpbmdLSFIgdmtDbWRFbmRWaWRl
b0NvZGluZ0tIUjsKK2V4dGVybiBQRk5fdmtDcmVhdGVWaWRlb1Nlc3Npb25LSFIgdmtDcmVhdGVW
aWRlb1Nlc3Npb25LSFI7CitleHRlcm4gUEZOX3ZrQ3JlYXRlVmlkZW9TZXNzaW9uUGFyYW1ldGVy
c0tIUiB2a0NyZWF0ZVZpZGVvU2Vzc2lvblBhcmFtZXRlcnNLSFI7CitleHRlcm4gUEZOX3ZrRGVz
dHJveVZpZGVvU2Vzc2lvbktIUiB2a0Rlc3Ryb3lWaWRlb1Nlc3Npb25LSFI7CitleHRlcm4gUEZO
X3ZrRGVzdHJveVZpZGVvU2Vzc2lvblBhcmFtZXRlcnNLSFIgdmtEZXN0cm95VmlkZW9TZXNzaW9u
UGFyYW1ldGVyc0tIUjsKK2V4dGVybiBQRk5fdmtHZXRQaHlzaWNhbERldmljZVZpZGVvQ2FwYWJp
bGl0aWVzS0hSIHZrR2V0UGh5c2ljYWxEZXZpY2VWaWRlb0NhcGFiaWxpdGllc0tIUjsKK2V4dGVy
biBQRk5fdmtHZXRQaHlzaWNhbERldmljZVZpZGVvRm9ybWF0UHJvcGVydGllc0tIUiB2a0dldFBo
eXNpY2FsRGV2aWNlVmlkZW9Gb3JtYXRQcm9wZXJ0aWVzS0hSOworZXh0ZXJuIFBGTl92a0dldFZp
ZGVvU2Vzc2lvbk1lbW9yeVJlcXVpcmVtZW50c0tIUiB2a0dldFZpZGVvU2Vzc2lvbk1lbW9yeVJl
cXVpcmVtZW50c0tIUjsKK2V4dGVybiBQRk5fdmtVcGRhdGVWaWRlb1Nlc3Npb25QYXJhbWV0ZXJz
S0hSIHZrVXBkYXRlVmlkZW9TZXNzaW9uUGFyYW1ldGVyc0tIUjsKKyNlbmRpZiAvKiBkZWZpbmVk
KFZLX0tIUl92aWRlb19xdWV1ZSkgKi8KICNpZiBkZWZpbmVkKFZLX0tIUl93YXlsYW5kX3N1cmZh
Y2UpCiBleHRlcm4gUEZOX3ZrQ3JlYXRlV2F5bGFuZFN1cmZhY2VLSFIgdmtDcmVhdGVXYXlsYW5k
U3VyZmFjZUtIUjsKIGV4dGVybiBQRk5fdmtHZXRQaHlzaWNhbERldmljZVdheWxhbmRQcmVzZW50
YXRpb25TdXBwb3J0S0hSIHZrR2V0UGh5c2ljYWxEZXZpY2VXYXlsYW5kUHJlc2VudGF0aW9uU3Vw
cG9ydEtIUjsKQEAgLTk5NSwyMCArMTQ0NSwyMSBAQCBleHRlcm4gUEZOX3ZrQ3JlYXRlTWFjT1NT
dXJmYWNlTVZLIHZrQ3JlYXRlTWFjT1NTdXJmYWNlTVZLOwogI2lmIGRlZmluZWQoVktfTk5fdmlf
c3VyZmFjZSkKIGV4dGVybiBQRk5fdmtDcmVhdGVWaVN1cmZhY2VOTiB2a0NyZWF0ZVZpU3VyZmFj
ZU5OOwogI2VuZGlmIC8qIGRlZmluZWQoVktfTk5fdmlfc3VyZmFjZSkgKi8KLSNpZiBkZWZpbmVk
KFZLX05WWF9kZXZpY2VfZ2VuZXJhdGVkX2NvbW1hbmRzKQotZXh0ZXJuIFBGTl92a0NtZFByb2Nl
c3NDb21tYW5kc05WWCB2a0NtZFByb2Nlc3NDb21tYW5kc05WWDsKLWV4dGVybiBQRk5fdmtDbWRS
ZXNlcnZlU3BhY2VGb3JDb21tYW5kc05WWCB2a0NtZFJlc2VydmVTcGFjZUZvckNvbW1hbmRzTlZY
OwotZXh0ZXJuIFBGTl92a0NyZWF0ZUluZGlyZWN0Q29tbWFuZHNMYXlvdXROVlggdmtDcmVhdGVJ
bmRpcmVjdENvbW1hbmRzTGF5b3V0TlZYOwotZXh0ZXJuIFBGTl92a0NyZWF0ZU9iamVjdFRhYmxl
TlZYIHZrQ3JlYXRlT2JqZWN0VGFibGVOVlg7Ci1leHRlcm4gUEZOX3ZrRGVzdHJveUluZGlyZWN0
Q29tbWFuZHNMYXlvdXROVlggdmtEZXN0cm95SW5kaXJlY3RDb21tYW5kc0xheW91dE5WWDsKLWV4
dGVybiBQRk5fdmtEZXN0cm95T2JqZWN0VGFibGVOVlggdmtEZXN0cm95T2JqZWN0VGFibGVOVlg7
Ci1leHRlcm4gUEZOX3ZrR2V0UGh5c2ljYWxEZXZpY2VHZW5lcmF0ZWRDb21tYW5kc1Byb3BlcnRp
ZXNOVlggdmtHZXRQaHlzaWNhbERldmljZUdlbmVyYXRlZENvbW1hbmRzUHJvcGVydGllc05WWDsK
LWV4dGVybiBQRk5fdmtSZWdpc3Rlck9iamVjdHNOVlggdmtSZWdpc3Rlck9iamVjdHNOVlg7Ci1l
eHRlcm4gUEZOX3ZrVW5yZWdpc3Rlck9iamVjdHNOVlggdmtVbnJlZ2lzdGVyT2JqZWN0c05WWDsK
LSNlbmRpZiAvKiBkZWZpbmVkKFZLX05WWF9kZXZpY2VfZ2VuZXJhdGVkX2NvbW1hbmRzKSAqLwor
I2lmIGRlZmluZWQoVktfTlZYX2JpbmFyeV9pbXBvcnQpCitleHRlcm4gUEZOX3ZrQ21kQ3VMYXVu
Y2hLZXJuZWxOVlggdmtDbWRDdUxhdW5jaEtlcm5lbE5WWDsKK2V4dGVybiBQRk5fdmtDcmVhdGVD
dUZ1bmN0aW9uTlZYIHZrQ3JlYXRlQ3VGdW5jdGlvbk5WWDsKK2V4dGVybiBQRk5fdmtDcmVhdGVD
dU1vZHVsZU5WWCB2a0NyZWF0ZUN1TW9kdWxlTlZYOworZXh0ZXJuIFBGTl92a0Rlc3Ryb3lDdUZ1
bmN0aW9uTlZYIHZrRGVzdHJveUN1RnVuY3Rpb25OVlg7CitleHRlcm4gUEZOX3ZrRGVzdHJveUN1
TW9kdWxlTlZYIHZrRGVzdHJveUN1TW9kdWxlTlZYOworI2VuZGlmIC8qIGRlZmluZWQoVktfTlZY
X2JpbmFyeV9pbXBvcnQpICovCiAjaWYgZGVmaW5lZChWS19OVlhfaW1hZ2Vfdmlld19oYW5kbGUp
CitleHRlcm4gUEZOX3ZrR2V0SW1hZ2VWaWV3QWRkcmVzc05WWCB2a0dldEltYWdlVmlld0FkZHJl
c3NOVlg7CiBleHRlcm4gUEZOX3ZrR2V0SW1hZ2VWaWV3SGFuZGxlTlZYIHZrR2V0SW1hZ2VWaWV3
SGFuZGxlTlZYOwogI2VuZGlmIC8qIGRlZmluZWQoVktfTlZYX2ltYWdlX3ZpZXdfaGFuZGxlKSAq
LworI2lmIGRlZmluZWQoVktfTlZfYWNxdWlyZV93aW5ydF9kaXNwbGF5KQorZXh0ZXJuIFBGTl92
a0FjcXVpcmVXaW5ydERpc3BsYXlOViB2a0FjcXVpcmVXaW5ydERpc3BsYXlOVjsKK2V4dGVybiBQ
Rk5fdmtHZXRXaW5ydERpc3BsYXlOViB2a0dldFdpbnJ0RGlzcGxheU5WOworI2VuZGlmIC8qIGRl
ZmluZWQoVktfTlZfYWNxdWlyZV93aW5ydF9kaXNwbGF5KSAqLwogI2lmIGRlZmluZWQoVktfTlZf
Y2xpcF9zcGFjZV93X3NjYWxpbmcpCiBleHRlcm4gUEZOX3ZrQ21kU2V0Vmlld3BvcnRXU2NhbGlu
Z05WIHZrQ21kU2V0Vmlld3BvcnRXU2NhbGluZ05WOwogI2VuZGlmIC8qIGRlZmluZWQoVktfTlZf
Y2xpcF9zcGFjZV93X3NjYWxpbmcpICovCkBAIC0xMDIyLDEyICsxNDczLDI2IEBAIGV4dGVybiBQ
Rk5fdmtHZXRQaHlzaWNhbERldmljZVN1cHBvcnRlZEZyYW1lYnVmZmVyTWl4ZWRTYW1wbGVzQ29t
YmluYXRpb25zTlYgdmtHCiBleHRlcm4gUEZOX3ZrQ21kU2V0Q2hlY2twb2ludE5WIHZrQ21kU2V0
Q2hlY2twb2ludE5WOwogZXh0ZXJuIFBGTl92a0dldFF1ZXVlQ2hlY2twb2ludERhdGFOViB2a0dl
dFF1ZXVlQ2hlY2twb2ludERhdGFOVjsKICNlbmRpZiAvKiBkZWZpbmVkKFZLX05WX2RldmljZV9k
aWFnbm9zdGljX2NoZWNrcG9pbnRzKSAqLworI2lmIGRlZmluZWQoVktfTlZfZGV2aWNlX2dlbmVy
YXRlZF9jb21tYW5kcykKK2V4dGVybiBQRk5fdmtDbWRCaW5kUGlwZWxpbmVTaGFkZXJHcm91cE5W
IHZrQ21kQmluZFBpcGVsaW5lU2hhZGVyR3JvdXBOVjsKK2V4dGVybiBQRk5fdmtDbWRFeGVjdXRl
R2VuZXJhdGVkQ29tbWFuZHNOViB2a0NtZEV4ZWN1dGVHZW5lcmF0ZWRDb21tYW5kc05WOworZXh0
ZXJuIFBGTl92a0NtZFByZXByb2Nlc3NHZW5lcmF0ZWRDb21tYW5kc05WIHZrQ21kUHJlcHJvY2Vz
c0dlbmVyYXRlZENvbW1hbmRzTlY7CitleHRlcm4gUEZOX3ZrQ3JlYXRlSW5kaXJlY3RDb21tYW5k
c0xheW91dE5WIHZrQ3JlYXRlSW5kaXJlY3RDb21tYW5kc0xheW91dE5WOworZXh0ZXJuIFBGTl92
a0Rlc3Ryb3lJbmRpcmVjdENvbW1hbmRzTGF5b3V0TlYgdmtEZXN0cm95SW5kaXJlY3RDb21tYW5k
c0xheW91dE5WOworZXh0ZXJuIFBGTl92a0dldEdlbmVyYXRlZENvbW1hbmRzTWVtb3J5UmVxdWly
ZW1lbnRzTlYgdmtHZXRHZW5lcmF0ZWRDb21tYW5kc01lbW9yeVJlcXVpcmVtZW50c05WOworI2Vu
ZGlmIC8qIGRlZmluZWQoVktfTlZfZGV2aWNlX2dlbmVyYXRlZF9jb21tYW5kcykgKi8KICNpZiBk
ZWZpbmVkKFZLX05WX2V4dGVybmFsX21lbW9yeV9jYXBhYmlsaXRpZXMpCiBleHRlcm4gUEZOX3Zr
R2V0UGh5c2ljYWxEZXZpY2VFeHRlcm5hbEltYWdlRm9ybWF0UHJvcGVydGllc05WIHZrR2V0UGh5
c2ljYWxEZXZpY2VFeHRlcm5hbEltYWdlRm9ybWF0UHJvcGVydGllc05WOwogI2VuZGlmIC8qIGRl
ZmluZWQoVktfTlZfZXh0ZXJuYWxfbWVtb3J5X2NhcGFiaWxpdGllcykgKi8KKyNpZiBkZWZpbmVk
KFZLX05WX2V4dGVybmFsX21lbW9yeV9yZG1hKQorZXh0ZXJuIFBGTl92a0dldE1lbW9yeVJlbW90
ZUFkZHJlc3NOViB2a0dldE1lbW9yeVJlbW90ZUFkZHJlc3NOVjsKKyNlbmRpZiAvKiBkZWZpbmVk
KFZLX05WX2V4dGVybmFsX21lbW9yeV9yZG1hKSAqLwogI2lmIGRlZmluZWQoVktfTlZfZXh0ZXJu
YWxfbWVtb3J5X3dpbjMyKQogZXh0ZXJuIFBGTl92a0dldE1lbW9yeVdpbjMySGFuZGxlTlYgdmtH
ZXRNZW1vcnlXaW4zMkhhbmRsZU5WOwogI2VuZGlmIC8qIGRlZmluZWQoVktfTlZfZXh0ZXJuYWxf
bWVtb3J5X3dpbjMyKSAqLworI2lmIGRlZmluZWQoVktfTlZfZnJhZ21lbnRfc2hhZGluZ19yYXRl
X2VudW1zKQorZXh0ZXJuIFBGTl92a0NtZFNldEZyYWdtZW50U2hhZGluZ1JhdGVFbnVtTlYgdmtD
bWRTZXRGcmFnbWVudFNoYWRpbmdSYXRlRW51bU5WOworI2VuZGlmIC8qIGRlZmluZWQoVktfTlZf
ZnJhZ21lbnRfc2hhZGluZ19yYXRlX2VudW1zKSAqLwogI2lmIGRlZmluZWQoVktfTlZfbWVzaF9z
aGFkZXIpCiBleHRlcm4gUEZOX3ZrQ21kRHJhd01lc2hUYXNrc0luZGlyZWN0Q291bnROViB2a0Nt
ZERyYXdNZXNoVGFza3NJbmRpcmVjdENvdW50TlY7CiBleHRlcm4gUEZOX3ZrQ21kRHJhd01lc2hU
YXNrc0luZGlyZWN0TlYgdmtDbWREcmF3TWVzaFRhc2tzSW5kaXJlY3ROVjsKQEAgLTEwNTUsMTIg
KzE1MjAsMTYgQEAgZXh0ZXJuIFBGTl92a0NtZEJpbmRTaGFkaW5nUmF0ZUltYWdlTlYgdmtDbWRC
aW5kU2hhZGluZ1JhdGVJbWFnZU5WOwogZXh0ZXJuIFBGTl92a0NtZFNldENvYXJzZVNhbXBsZU9y
ZGVyTlYgdmtDbWRTZXRDb2Fyc2VTYW1wbGVPcmRlck5WOwogZXh0ZXJuIFBGTl92a0NtZFNldFZp
ZXdwb3J0U2hhZGluZ1JhdGVQYWxldHRlTlYgdmtDbWRTZXRWaWV3cG9ydFNoYWRpbmdSYXRlUGFs
ZXR0ZU5WOwogI2VuZGlmIC8qIGRlZmluZWQoVktfTlZfc2hhZGluZ19yYXRlX2ltYWdlKSAqLwor
I2lmIGRlZmluZWQoVktfUU5YX3NjcmVlbl9zdXJmYWNlKQorZXh0ZXJuIFBGTl92a0NyZWF0ZVNj
cmVlblN1cmZhY2VRTlggdmtDcmVhdGVTY3JlZW5TdXJmYWNlUU5YOworZXh0ZXJuIFBGTl92a0dl
dFBoeXNpY2FsRGV2aWNlU2NyZWVuUHJlc2VudGF0aW9uU3VwcG9ydFFOWCB2a0dldFBoeXNpY2Fs
RGV2aWNlU2NyZWVuUHJlc2VudGF0aW9uU3VwcG9ydFFOWDsKKyNlbmRpZiAvKiBkZWZpbmVkKFZL
X1FOWF9zY3JlZW5fc3VyZmFjZSkgKi8KICNpZiAoZGVmaW5lZChWS19FWFRfZnVsbF9zY3JlZW5f
ZXhjbHVzaXZlKSAmJiBkZWZpbmVkKFZLX0tIUl9kZXZpY2VfZ3JvdXApKSB8fCAoZGVmaW5lZChW
S19FWFRfZnVsbF9zY3JlZW5fZXhjbHVzaXZlKSAmJiBkZWZpbmVkKFZLX1ZFUlNJT05fMV8xKSkK
IGV4dGVybiBQRk5fdmtHZXREZXZpY2VHcm91cFN1cmZhY2VQcmVzZW50TW9kZXMyRVhUIHZrR2V0
RGV2aWNlR3JvdXBTdXJmYWNlUHJlc2VudE1vZGVzMkVYVDsKICNlbmRpZiAvKiAoZGVmaW5lZChW
S19FWFRfZnVsbF9zY3JlZW5fZXhjbHVzaXZlKSAmJiBkZWZpbmVkKFZLX0tIUl9kZXZpY2VfZ3Jv
dXApKSB8fCAoZGVmaW5lZChWS19FWFRfZnVsbF9zY3JlZW5fZXhjbHVzaXZlKSAmJiBkZWZpbmVk
KFZLX1ZFUlNJT05fMV8xKSkgKi8KLSNpZiAoZGVmaW5lZChWS19LSFJfZGVzY3JpcHRvcl91cGRh
dGVfdGVtcGxhdGUpICYmIGRlZmluZWQoVktfS0hSX3B1c2hfZGVzY3JpcHRvcikpIHx8IChkZWZp
bmVkKFZLX0tIUl9wdXNoX2Rlc2NyaXB0b3IpICYmIGRlZmluZWQoVktfVkVSU0lPTl8xXzEpKQor
I2lmIChkZWZpbmVkKFZLX0tIUl9kZXNjcmlwdG9yX3VwZGF0ZV90ZW1wbGF0ZSkgJiYgZGVmaW5l
ZChWS19LSFJfcHVzaF9kZXNjcmlwdG9yKSkgfHwgKGRlZmluZWQoVktfS0hSX3B1c2hfZGVzY3Jp
cHRvcikgJiYgZGVmaW5lZChWS19WRVJTSU9OXzFfMSkpIHx8IChkZWZpbmVkKFZLX0tIUl9wdXNo
X2Rlc2NyaXB0b3IpICYmIGRlZmluZWQoVktfS0hSX2Rlc2NyaXB0b3JfdXBkYXRlX3RlbXBsYXRl
KSkKIGV4dGVybiBQRk5fdmtDbWRQdXNoRGVzY3JpcHRvclNldFdpdGhUZW1wbGF0ZUtIUiB2a0Nt
ZFB1c2hEZXNjcmlwdG9yU2V0V2l0aFRlbXBsYXRlS0hSOwotI2VuZGlmIC8qIChkZWZpbmVkKFZL
X0tIUl9kZXNjcmlwdG9yX3VwZGF0ZV90ZW1wbGF0ZSkgJiYgZGVmaW5lZChWS19LSFJfcHVzaF9k
ZXNjcmlwdG9yKSkgfHwgKGRlZmluZWQoVktfS0hSX3B1c2hfZGVzY3JpcHRvcikgJiYgZGVmaW5l
ZChWS19WRVJTSU9OXzFfMSkpICovCisjZW5kaWYgLyogKGRlZmluZWQoVktfS0hSX2Rlc2NyaXB0
b3JfdXBkYXRlX3RlbXBsYXRlKSAmJiBkZWZpbmVkKFZLX0tIUl9wdXNoX2Rlc2NyaXB0b3IpKSB8
fCAoZGVmaW5lZChWS19LSFJfcHVzaF9kZXNjcmlwdG9yKSAmJiBkZWZpbmVkKFZLX1ZFUlNJT05f
MV8xKSkgfHwgKGRlZmluZWQoVktfS0hSX3B1c2hfZGVzY3JpcHRvcikgJiYgZGVmaW5lZChWS19L
SFJfZGVzY3JpcHRvcl91cGRhdGVfdGVtcGxhdGUpKSAqLwogI2lmIChkZWZpbmVkKFZLX0tIUl9k
ZXZpY2VfZ3JvdXApICYmIGRlZmluZWQoVktfS0hSX3N1cmZhY2UpKSB8fCAoZGVmaW5lZChWS19L
SFJfc3dhcGNoYWluKSAmJiBkZWZpbmVkKFZLX1ZFUlNJT05fMV8xKSkKIGV4dGVybiBQRk5fdmtH
ZXREZXZpY2VHcm91cFByZXNlbnRDYXBhYmlsaXRpZXNLSFIgdmtHZXREZXZpY2VHcm91cFByZXNl
bnRDYXBhYmlsaXRpZXNLSFI7CiBleHRlcm4gUEZOX3ZrR2V0RGV2aWNlR3JvdXBTdXJmYWNlUHJl
c2VudE1vZGVzS0hSIHZrR2V0RGV2aWNlR3JvdXBTdXJmYWNlUHJlc2VudE1vZGVzS0hSOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvdXRpbC9CVUlMRC5nbiBiL1NvdXJjZS9U
aGlyZFBhcnR5L0FOR0xFL3V0aWwvQlVJTEQuZ24KaW5kZXggYWE3Zjk1NGM4NWUxMTdjOWVhNTAw
Yzg0NDEwZjVmZjk3NTc1NDE0OS4uYTE1ODFjYWFjZGJlYzk3MjhmZjQ5ZDQ1MDcwZGMxYjgwNmRj
ZTZhNiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvdXRpbC9CVUlMRC5nbgor
KysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS91dGlsL0JVSUxELmduCkBAIC0xNCw2ICsxNCw4
IEBAIF91dGlsX3NvdXJjZXMgPSBbCiAgICJPU1BpeG1hcC5oIiwKICAgIk9TV2luZG93LmNwcCIs
CiAgICJPU1dpbmRvdy5oIiwKKyAgImFuZ2xlX2ZlYXR1cmVzX2F1dG9nZW4uY3BwIiwKKyAgImFu
Z2xlX2ZlYXR1cmVzX2F1dG9nZW4uaCIsCiAgICJjb21fdXRpbHMuaCIsCiAgICJnZW9tZXRyeV91
dGlscy5jcHAiLAogICAiZ2VvbWV0cnlfdXRpbHMuaCIsCkBAIC02Myw3ICs2NSw3IEBAIGlmIChp
c19mdWNoc2lhKSB7CiAgICAgImZ1Y2hzaWEvU2NlbmljV2luZG93LmNwcCIsCiAgICAgImZ1Y2hz
aWEvU2NlbmljV2luZG93LmgiLAogICBdCi19IGVsc2UgaWYgKHVzZV9vem9uZSAmJiAhYW5nbGVf
dXNlX3gxMSkgeworfSBlbHNlIGlmICh1c2Vfb3pvbmUgJiYgIShhbmdsZV91c2VfeDExIHx8IGFu
Z2xlX3VzZV93YXlsYW5kKSkgewogICAjIFVzZSBYMTEgaW1wbCBieSBkZWZhdWx0IG90aGVyd2lz
ZSBzd2l0Y2ggdG8gZmFrZSBPem9uZSBpbXBsIHRoYXQgZG9lcyBub3QKICAgIyBzZWVtIHRvIGRv
IGFueXRoaW5nIHJlYWwuCiAgICMgVE9ETyhtc2lzb3YpOiBwcm9iYWJseSwgd2UgbmVlZCB0byBo
YXZlIGEgcHJvcGVyIHN1cHBvcnQgZm9yIGRpZmZlcmVudApAQCAtMTc0LDYgKzE3Niw3IEBAIGNv
bmZpZygiYW5nbGVfdXRpbF9jb25maWciKSB7CiAgIGlmICgoaXNfbGludXggfHwgaXNfY2hyb21l
b3MpICYmIGFuZ2xlX3VzZV94MTEpIHsKICAgICBsaWJzID0gWyAiWDExIiBdCiAgIH0KKyAgY29u
ZmlncyA9IFsgIiRhbmdsZV9yb290OmFuZ2xlX3Z1bGthbl93YXlsYW5kX2NvbmZpZyIgXQogfQog
CiBmb3JlYWNoKGlzX3NoYXJlZF9saWJyYXJ5LApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvdXRpbC9FR0xQbGF0Zm9ybVBhcmFtZXRlcnMuaCBiL1NvdXJjZS9UaGlyZFBhcnR5
L0FOR0xFL3V0aWwvRUdMUGxhdGZvcm1QYXJhbWV0ZXJzLmgKaW5kZXggYzdlMmFlYTYzYzk3NTBl
MmNhYmYxNzdhNWFiNDczMWJmOWYyNGE0NS4uNWQ5ZjdmYjQ5MGEzMWNkNGVjNDc2ODU5MmFjMTJm
Y2ZhMzFhM2NhZSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvdXRpbC9FR0xQ
bGF0Zm9ybVBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS91dGlsL0VH
TFBsYXRmb3JtUGFyYW1ldGVycy5oCkBAIC0xMCw3ICsxMCwxMSBAQAogCiAjaW5jbHVkZSAidXRp
bC91dGlsX2dsLmgiCiAKKyNpbmNsdWRlICJhbmdsZV9mZWF0dXJlc19hdXRvZ2VuLmgiCisKKyNp
bmNsdWRlIDxzdHJpbmc+CiAjaW5jbHVkZSA8dHVwbGU+CisjaW5jbHVkZSA8dmVjdG9yPgogCiBu
YW1lc3BhY2UgYW5nbGUKIHsKQEAgLTU5LDQ5ICs2MywzNCBAQCBzdHJ1Y3QgRUdMUGxhdGZvcm1Q
YXJhbWV0ZXJzCiAgICAgYXV0byB0aWUoKSBjb25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIHN0
ZDo6dGllKHJlbmRlcmVyLCBtYWpvclZlcnNpb24sIG1pbm9yVmVyc2lvbiwgZGV2aWNlVHlwZSwg
cHJlc2VudFBhdGgsCi0gICAgICAgICAgICAgICAgICAgICAgICBkZWJ1Z0xheWVyc0VuYWJsZWQs
IHRyYW5zZm9ybUZlZWRiYWNrRmVhdHVyZSwgYWxsb2NhdGVOb25aZXJvTWVtb3J5RmVhdHVyZSwK
LSAgICAgICAgICAgICAgICAgICAgICAgIGVtdWxhdGVDb3B5VGV4SW1hZ2UyREZyb21SZW5kZXJi
dWZmZXJzLCBzaGFkZXJTdGVuY2lsT3V0cHV0RmVhdHVyZSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGdlbk11bHRpcGxlTWlwc1BlclBhc3NGZWF0dXJlLCBwbGF0Zm9ybU1ldGhvZHMsIHJvYnVz
dG5lc3MsCi0gICAgICAgICAgICAgICAgICAgICAgICBlbXVsYXRlZFByZXJvdGF0aW9uLCBhc3lu
Y0NvbW1hbmRRdWV1ZUZlYXR1cmVWdWxrYW4sCi0gICAgICAgICAgICAgICAgICAgICAgICBoYXNF
eHBsaWNpdE1lbUJhcnJpZXJGZWF0dXJlTXRsLCBoYXNDaGVhcFJlbmRlclBhc3NGZWF0dXJlTXRs
LAotICAgICAgICAgICAgICAgICAgICAgICAgZm9yY2VCdWZmZXJHUFVTdG9yYWdlRmVhdHVyZU10
bCwgc3VwcG9ydHNWdWxrYW5WaWV3cG9ydEZsaXAsCi0gICAgICAgICAgICAgICAgICAgICAgICBz
dXBwb3J0c1Z1bGthbk11bHRpRHJhd0luZGlyZWN0LCBXaXRoVnVsa2FuUHJlZmVyQ1BVRm9yQnVm
ZmVyU3ViRGF0YSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGVtdWxhdGVkVkFPcywgZ2VuZXJh
dGVTUElSVlRocm91Z2hHbHNsYW5nLCBjYXB0dXJlTGltaXRzLAotICAgICAgICAgICAgICAgICAg
ICAgICAgZm9yY2VSb2J1c3RSZXNvdXJjZUluaXQsIGRpcmVjdE1ldGFsR2VuZXJhdGlvbiwgZm9y
Y2VJbml0U2hhZGVyVmFyaWFibGVzLAotICAgICAgICAgICAgICAgICAgICAgICAgZm9yY2VWdWxr
YW5GYWxsYmFja0Zvcm1hdCwgZGlzcGxheVBvd2VyUHJlZmVyZW5jZSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGZvcmNlU3VibWl0SW1tdXRhYmxlVGV4dHVyZVVwZGF0ZXMsIGNyZWF0ZVBpcGVs
aW5lRHVyaW5nTGluayk7CisgICAgICAgICAgICAgICAgICAgICAgICBkZWJ1Z0xheWVyc0VuYWJs
ZWQsIHJvYnVzdG5lc3MsIGRpc3BsYXlQb3dlclByZWZlcmVuY2UsCisgICAgICAgICAgICAgICAg
ICAgICAgICBkaXNhYmxlZEZlYXR1cmVPdmVycmlkZXMsIGVuYWJsZWRGZWF0dXJlT3ZlcnJpZGVz
LCBwbGF0Zm9ybU1ldGhvZHMpOworICAgIH0KKworICAgIC8vIEhlbHBlcnMgdG8gZW5hYmxlIGFu
ZCBkaXNhYmxlIEFOR0xFIGZlYXR1cmVzLiAgRXhwZWN0cyBhIGtGZWF0dXJlKiB2YWx1ZSBmcm9t
CisgICAgLy8gYW5nbGVfZmVhdHVyZXNfYXV0b2dlbi5oLgorICAgIEVHTFBsYXRmb3JtUGFyYW1l
dGVycyAmZW5hYmxlKGFuZ2xlOjpGZWF0dXJlIGZlYXR1cmUpCisgICAgeworICAgICAgICBlbmFi
bGVkRmVhdHVyZU92ZXJyaWRlcy5wdXNoX2JhY2soZmVhdHVyZSk7CisgICAgICAgIHJldHVybiAq
dGhpczsKKyAgICB9CisgICAgRUdMUGxhdGZvcm1QYXJhbWV0ZXJzICZkaXNhYmxlKGFuZ2xlOjpG
ZWF0dXJlIGZlYXR1cmUpCisgICAgeworICAgICAgICBkaXNhYmxlZEZlYXR1cmVPdmVycmlkZXMu
cHVzaF9iYWNrKGZlYXR1cmUpOworICAgICAgICByZXR1cm4gKnRoaXM7CiAgICAgfQogCi0gICAg
RUdMaW50IHJlbmRlcmVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gRUdMX1BMQVRG
T1JNX0FOR0xFX1RZUEVfREVGQVVMVF9BTkdMRTsKLSAgICBFR0xpbnQgbWFqb3JWZXJzaW9uICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPSBFR0xfRE9OVF9DQVJFOwotICAgIEVHTGludCBtaW5v
clZlcnNpb24gICAgICAgICAgICAgICAgICAgICAgICAgICA9IEVHTF9ET05UX0NBUkU7Ci0gICAg
RUdMaW50IGRldmljZVR5cGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gRUdMX1BMQVRG
T1JNX0FOR0xFX0RFVklDRV9UWVBFX0hBUkRXQVJFX0FOR0xFOwotICAgIEVHTGludCBwcmVzZW50
UGF0aCAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IEVHTF9ET05UX0NBUkU7Ci0gICAgRUdM
aW50IGRlYnVnTGF5ZXJzRW5hYmxlZCAgICAgICAgICAgICAgICAgICAgID0gRUdMX0RPTlRfQ0FS
RTsKLSAgICBFR0xpbnQgcm9idXN0bmVzcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBF
R0xfRE9OVF9DQVJFOwotICAgIEVHTGludCB0cmFuc2Zvcm1GZWVkYmFja0ZlYXR1cmUgICAgICAg
ICAgICAgICA9IEVHTF9ET05UX0NBUkU7Ci0gICAgRUdMaW50IGFsbG9jYXRlTm9uWmVyb01lbW9y
eUZlYXR1cmUgICAgICAgICAgID0gRUdMX0RPTlRfQ0FSRTsKLSAgICBFR0xpbnQgZW11bGF0ZUNv
cHlUZXhJbWFnZTJERnJvbVJlbmRlcmJ1ZmZlcnMgPSBFR0xfRE9OVF9DQVJFOwotICAgIEVHTGlu
dCBzaGFkZXJTdGVuY2lsT3V0cHV0RmVhdHVyZSAgICAgICAgICAgICA9IEVHTF9ET05UX0NBUkU7
Ci0gICAgRUdMaW50IGdlbk11bHRpcGxlTWlwc1BlclBhc3NGZWF0dXJlICAgICAgICAgID0gRUdM
X0RPTlRfQ0FSRTsKLSAgICB1aW50MzJfdCBlbXVsYXRlZFByZXJvdGF0aW9uICAgICAgICAgICAg
ICAgICAgPSAwOyAgLy8gQ2FuIGJlIDAsIDkwLCAxODAgb3IgMjcwCi0gICAgRUdMaW50IGFzeW5j
Q29tbWFuZFF1ZXVlRmVhdHVyZVZ1bGthbiAgICAgICAgID0gRUdMX0RPTlRfQ0FSRTsKLSAgICBF
R0xpbnQgaGFzRXhwbGljaXRNZW1CYXJyaWVyRmVhdHVyZU10bCAgICAgICAgPSBFR0xfRE9OVF9D
QVJFOwotICAgIEVHTGludCBoYXNDaGVhcFJlbmRlclBhc3NGZWF0dXJlTXRsICAgICAgICAgICA9
IEVHTF9ET05UX0NBUkU7Ci0gICAgRUdMaW50IGZvcmNlQnVmZmVyR1BVU3RvcmFnZUZlYXR1cmVN
dGwgICAgICAgID0gRUdMX0RPTlRfQ0FSRTsKLSAgICBFR0xpbnQgc3VwcG9ydHNWdWxrYW5WaWV3
cG9ydEZsaXAgICAgICAgICAgICAgPSBFR0xfRE9OVF9DQVJFOwotICAgIEVHTGludCBzdXBwb3J0
c1Z1bGthbk11bHRpRHJhd0luZGlyZWN0ICAgICAgICA9IEVHTF9ET05UX0NBUkU7Ci0gICAgRUdM
aW50IFdpdGhWdWxrYW5QcmVmZXJDUFVGb3JCdWZmZXJTdWJEYXRhICAgID0gRUdMX0RPTlRfQ0FS
RTsKLSAgICBFR0xpbnQgZW11bGF0ZWRWQU9zICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBF
R0xfRE9OVF9DQVJFOwotICAgIEVHTGludCBnZW5lcmF0ZVNQSVJWVGhyb3VnaEdsc2xhbmcgICAg
ICAgICAgICA9IEVHTF9ET05UX0NBUkU7Ci0gICAgRUdMaW50IGNhcHR1cmVMaW1pdHMgICAgICAg
ICAgICAgICAgICAgICAgICAgID0gRUdMX0RPTlRfQ0FSRTsKLSAgICBFR0xpbnQgZm9yY2VSb2J1
c3RSZXNvdXJjZUluaXQgICAgICAgICAgICAgICAgPSBFR0xfRE9OVF9DQVJFOwotICAgIEVHTGlu
dCBkaXJlY3RNZXRhbEdlbmVyYXRpb24gICAgICAgICAgICAgICAgICA9IEVHTF9ET05UX0NBUkU7
Ci0gICAgRUdMaW50IGZvcmNlSW5pdFNoYWRlclZhcmlhYmxlcyAgICAgICAgICAgICAgID0gRUdM
X0RPTlRfQ0FSRTsKLSAgICBFR0xpbnQgZm9yY2VWdWxrYW5GYWxsYmFja0Zvcm1hdCAgICAgICAg
ICAgICAgPSBFR0xfRE9OVF9DQVJFOwotICAgIEVHTGludCBkaXNwbGF5UG93ZXJQcmVmZXJlbmNl
ICAgICAgICAgICAgICAgICA9IEVHTF9ET05UX0NBUkU7Ci0gICAgRUdMaW50IGZvcmNlU3VibWl0
SW1tdXRhYmxlVGV4dHVyZVVwZGF0ZXMgICAgID0gRUdMX0RPTlRfQ0FSRTsKLSAgICBFR0xpbnQg
Y3JlYXRlUGlwZWxpbmVEdXJpbmdMaW5rICAgICAgICAgICAgICAgPSBFR0xfRE9OVF9DQVJFOwor
ICAgIEVHTGludCByZW5kZXJlciAgICAgICAgICAgICAgID0gRUdMX1BMQVRGT1JNX0FOR0xFX1RZ
UEVfREVGQVVMVF9BTkdMRTsKKyAgICBFR0xpbnQgbWFqb3JWZXJzaW9uICAgICAgICAgICA9IEVH
TF9ET05UX0NBUkU7CisgICAgRUdMaW50IG1pbm9yVmVyc2lvbiAgICAgICAgICAgPSBFR0xfRE9O
VF9DQVJFOworICAgIEVHTGludCBkZXZpY2VUeXBlICAgICAgICAgICAgID0gRUdMX1BMQVRGT1JN
X0FOR0xFX0RFVklDRV9UWVBFX0hBUkRXQVJFX0FOR0xFOworICAgIEVHTGludCBwcmVzZW50UGF0
aCAgICAgICAgICAgID0gRUdMX0RPTlRfQ0FSRTsKKyAgICBFR0xpbnQgZGVidWdMYXllcnNFbmFi
bGVkICAgICA9IEVHTF9ET05UX0NBUkU7CisgICAgRUdMaW50IHJvYnVzdG5lc3MgICAgICAgICAg
ICAgPSBFR0xfRE9OVF9DQVJFOworICAgIEVHTGludCBkaXNwbGF5UG93ZXJQcmVmZXJlbmNlID0g
RUdMX0RPTlRfQ0FSRTsKKworICAgIHN0ZDo6dmVjdG9yPGFuZ2xlOjpGZWF0dXJlPiBlbmFibGVk
RmVhdHVyZU92ZXJyaWRlczsKKyAgICBzdGQ6OnZlY3RvcjxhbmdsZTo6RmVhdHVyZT4gZGlzYWJs
ZWRGZWF0dXJlT3ZlcnJpZGVzOwogCiAgICAgYW5nbGU6OlBsYXRmb3JtTWV0aG9kcyAqcGxhdGZv
cm1NZXRob2RzID0gbnVsbHB0cjsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9B
TkdMRS91dGlsL0VHTFdpbmRvdy5jcHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS91dGlsL0VH
TFdpbmRvdy5jcHAKaW5kZXggMWJiNzdiMjNjODlkMzNmMDg4YzhiZGFiZTA1NWI3NWM0NTI4Njcx
NS4uZjFiMjA1MDJmZTI2NzkwZWEwZjRjYzIzY2UyMzIxNzk0ZmQ2YmM3YyAxMDA2NDQKLS0tIGEv
U291cmNlL1RoaXJkUGFydHkvQU5HTEUvdXRpbC9FR0xXaW5kb3cuY3BwCisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L0FOR0xFL3V0aWwvRUdMV2luZG93LmNwcApAQCAtMjAyLDE0NSArMjAyLDE2IEBA
IGJvb2wgRUdMV2luZG93Ojppbml0aWFsaXplRGlzcGxheShPU1dpbmRvdyAqb3NXaW5kb3csCiAg
ICAgICAgIGRpc3BsYXlBdHRyaWJ1dGVzLnB1c2hfYmFjayhwYXJhbXMuZGlzcGxheVBvd2VyUHJl
ZmVyZW5jZSk7CiAgICAgfQogCi0gICAgc3RkOjp2ZWN0b3I8Y29uc3QgY2hhciAqPiBkaXNhYmxl
ZEZlYXR1cmVPdmVycmlkZXM7CiAgICAgc3RkOjp2ZWN0b3I8Y29uc3QgY2hhciAqPiBlbmFibGVk
RmVhdHVyZU92ZXJyaWRlczsKKyAgICBzdGQ6OnZlY3Rvcjxjb25zdCBjaGFyICo+IGRpc2FibGVk
RmVhdHVyZU92ZXJyaWRlczsKIAotICAgIGlmIChwYXJhbXMudHJhbnNmb3JtRmVlZGJhY2tGZWF0
dXJlID09IEVHTF9GQUxTRSkKLSAgICB7Ci0gICAgICAgIGRpc2FibGVkRmVhdHVyZU92ZXJyaWRl
cy5wdXNoX2JhY2soInN1cHBvcnRzVHJhbnNmb3JtRmVlZGJhY2tFeHRlbnNpb24iKTsKLSAgICAg
ICAgZGlzYWJsZWRGZWF0dXJlT3ZlcnJpZGVzLnB1c2hfYmFjaygic3VwcG9ydHNHZW9tZXRyeVN0
cmVhbXNDYXBhYmlsaXR5Iik7Ci0gICAgICAgIGRpc2FibGVkRmVhdHVyZU92ZXJyaWRlcy5wdXNo
X2JhY2soImVtdWxhdGVUcmFuc2Zvcm1GZWVkYmFjayIpOwotICAgIH0KLQotICAgIGlmIChwYXJh
bXMuYWxsb2NhdGVOb25aZXJvTWVtb3J5RmVhdHVyZSA9PSBFR0xfVFJVRSkKLSAgICB7Ci0gICAg
ICAgIGVuYWJsZWRGZWF0dXJlT3ZlcnJpZGVzLnB1c2hfYmFjaygiYWxsb2NhdGVOb25aZXJvTWVt
b3J5Iik7Ci0gICAgfQotICAgIGVsc2UgaWYgKHBhcmFtcy5hbGxvY2F0ZU5vblplcm9NZW1vcnlG
ZWF0dXJlID09IEVHTF9GQUxTRSkKLSAgICB7Ci0gICAgICAgIGRpc2FibGVkRmVhdHVyZU92ZXJy
aWRlcy5wdXNoX2JhY2soImFsbG9jYXRlTm9uWmVyb01lbW9yeSIpOwotICAgIH0KLQotICAgIGlm
IChwYXJhbXMuZW11bGF0ZUNvcHlUZXhJbWFnZTJERnJvbVJlbmRlcmJ1ZmZlcnMgPT0gRUdMX1RS
VUUpCi0gICAgewotICAgICAgICBlbmFibGVkRmVhdHVyZU92ZXJyaWRlcy5wdXNoX2JhY2soImVt
dWxhdGVfY29weXRleGltYWdlMmRfZnJvbV9yZW5kZXJidWZmZXJzIik7Ci0gICAgfQotCi0gICAg
aWYgKHBhcmFtcy5zaGFkZXJTdGVuY2lsT3V0cHV0RmVhdHVyZSA9PSBFR0xfRkFMU0UpCi0gICAg
ewotICAgICAgICBkaXNhYmxlZEZlYXR1cmVPdmVycmlkZXMucHVzaF9iYWNrKCJoYXNfc2hhZGVy
X3N0ZW5jaWxfb3V0cHV0Iik7Ci0gICAgfQotCi0gICAgaWYgKHBhcmFtcy5nZW5NdWx0aXBsZU1p
cHNQZXJQYXNzRmVhdHVyZSA9PSBFR0xfRkFMU0UpCi0gICAgewotICAgICAgICBkaXNhYmxlZEZl
YXR1cmVPdmVycmlkZXMucHVzaF9iYWNrKCJnZW5fbXVsdGlwbGVfbWlwc19wZXJfcGFzcyIpOwot
ICAgIH0KLQotICAgIGlmIChwYXJhbXMuc3VwcG9ydHNWdWxrYW5WaWV3cG9ydEZsaXAgPT0gRUdM
X1RSVUUpCi0gICAgewotICAgICAgICBlbmFibGVkRmVhdHVyZU92ZXJyaWRlcy5wdXNoX2JhY2so
InN1cHBvcnRzVmlld3BvcnRGbGlwIik7Ci0gICAgfQotICAgIGVsc2UgaWYgKHBhcmFtcy5zdXBw
b3J0c1Z1bGthblZpZXdwb3J0RmxpcCA9PSBFR0xfRkFMU0UpCi0gICAgewotICAgICAgICBkaXNh
YmxlZEZlYXR1cmVPdmVycmlkZXMucHVzaF9iYWNrKCJzdXBwb3J0c1ZpZXdwb3J0RmxpcCIpOwot
ICAgIH0KLQotICAgIGlmIChwYXJhbXMuc3VwcG9ydHNWdWxrYW5NdWx0aURyYXdJbmRpcmVjdCA9
PSBFR0xfVFJVRSkKLSAgICB7Ci0gICAgICAgIGVuYWJsZWRGZWF0dXJlT3ZlcnJpZGVzLnB1c2hf
YmFjaygic3VwcG9ydHNNdWx0aURyYXdJbmRpcmVjdCIpOwotICAgIH0KLSAgICBlbHNlIGlmIChw
YXJhbXMuc3VwcG9ydHNWdWxrYW5NdWx0aURyYXdJbmRpcmVjdCA9PSBFR0xfRkFMU0UpCi0gICAg
ewotICAgICAgICBkaXNhYmxlZEZlYXR1cmVPdmVycmlkZXMucHVzaF9iYWNrKCJzdXBwb3J0c011
bHRpRHJhd0luZGlyZWN0Iik7Ci0gICAgfQotCi0gICAgaWYgKHBhcmFtcy5XaXRoVnVsa2FuUHJl
ZmVyQ1BVRm9yQnVmZmVyU3ViRGF0YSA9PSBFR0xfVFJVRSkKLSAgICB7Ci0gICAgICAgIGVuYWJs
ZWRGZWF0dXJlT3ZlcnJpZGVzLnB1c2hfYmFjaygicHJlZmVyQ1BVRm9yQnVmZmVyU3ViRGF0YSIp
OwotICAgIH0KLSAgICBlbHNlIGlmIChwYXJhbXMuV2l0aFZ1bGthblByZWZlckNQVUZvckJ1ZmZl
clN1YkRhdGEgPT0gRUdMX0ZBTFNFKQotICAgIHsKLSAgICAgICAgZGlzYWJsZWRGZWF0dXJlT3Zl
cnJpZGVzLnB1c2hfYmFjaygicHJlZmVyQ1BVRm9yQnVmZmVyU3ViRGF0YSIpOwotICAgIH0KLQot
ICAgIHN3aXRjaCAocGFyYW1zLmVtdWxhdGVkUHJlcm90YXRpb24pCi0gICAgewotICAgICAgICBj
YXNlIDkwOgotICAgICAgICAgICAgZW5hYmxlZEZlYXR1cmVPdmVycmlkZXMucHVzaF9iYWNrKCJl
bXVsYXRlZFByZXJvdGF0aW9uOTAiKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNl
IDE4MDoKLSAgICAgICAgICAgIGVuYWJsZWRGZWF0dXJlT3ZlcnJpZGVzLnB1c2hfYmFjaygiZW11
bGF0ZWRQcmVyb3RhdGlvbjE4MCIpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2Ug
MjcwOgotICAgICAgICAgICAgZW5hYmxlZEZlYXR1cmVPdmVycmlkZXMucHVzaF9iYWNrKCJlbXVs
YXRlZFByZXJvdGF0aW9uMjcwIik7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgZGVmYXVs
dDoKLSAgICAgICAgICAgIGJyZWFrOwotICAgIH0KLQotICAgIGlmIChwYXJhbXMuYXN5bmNDb21t
YW5kUXVldWVGZWF0dXJlVnVsa2FuID09IEVHTF9UUlVFKQotICAgIHsKLSAgICAgICAgZW5hYmxl
ZEZlYXR1cmVPdmVycmlkZXMucHVzaF9iYWNrKCJhc3luY0NvbW1hbmRRdWV1ZSIpOwotICAgIH0K
LQotICAgIGlmIChwYXJhbXMuZ2VuZXJhdGVTUElSVlRocm91Z2hHbHNsYW5nID09IEVHTF9UUlVF
KQotICAgIHsKLSAgICAgICAgZW5hYmxlZEZlYXR1cmVPdmVycmlkZXMucHVzaF9iYWNrKCJnZW5l
cmF0ZVNQSVJWVGhyb3VnaEdsc2xhbmciKTsKLSAgICB9Ci0KLSAgICBpZiAocGFyYW1zLmRpcmVj
dE1ldGFsR2VuZXJhdGlvbiA9PSBFR0xfVFJVRSkKLSAgICB7Ci0gICAgICAgIGVuYWJsZWRGZWF0
dXJlT3ZlcnJpZGVzLnB1c2hfYmFjaygiZGlyZWN0TWV0YWxHZW5lcmF0aW9uIik7Ci0gICAgfQot
Ci0gICAgaWYgKHBhcmFtcy5oYXNFeHBsaWNpdE1lbUJhcnJpZXJGZWF0dXJlTXRsID09IEVHTF9G
QUxTRSkKLSAgICB7Ci0gICAgICAgIGRpc2FibGVkRmVhdHVyZU92ZXJyaWRlcy5wdXNoX2JhY2so
Imhhc19leHBsaWNpdF9tZW1fYmFycmllcl9tdGwiKTsKLSAgICB9Ci0KLSAgICBpZiAocGFyYW1z
Lmhhc0NoZWFwUmVuZGVyUGFzc0ZlYXR1cmVNdGwgPT0gRUdMX0ZBTFNFKQotICAgIHsKLSAgICAg
ICAgZGlzYWJsZWRGZWF0dXJlT3ZlcnJpZGVzLnB1c2hfYmFjaygiaGFzX2NoZWFwX3JlbmRlcl9w
YXNzX210bCIpOwotICAgIH0KLQotICAgIGlmIChwYXJhbXMuZm9yY2VCdWZmZXJHUFVTdG9yYWdl
RmVhdHVyZU10bCA9PSBFR0xfVFJVRSkKLSAgICB7Ci0gICAgICAgIGVuYWJsZWRGZWF0dXJlT3Zl
cnJpZGVzLnB1c2hfYmFjaygiZm9yY2VfYnVmZmVyX2dwdV9zdG9yYWdlX210bCIpOwotICAgIH0K
LQotICAgIGlmIChwYXJhbXMuZW11bGF0ZWRWQU9zID09IEVHTF9UUlVFKQotICAgIHsKLSAgICAg
ICAgZW5hYmxlZEZlYXR1cmVPdmVycmlkZXMucHVzaF9iYWNrKCJzeW5jX3ZlcnRleF9hcnJheXNf
dG9fZGVmYXVsdCIpOwotICAgIH0KLQotICAgIGlmIChwYXJhbXMuY2FwdHVyZUxpbWl0cyA9PSBF
R0xfVFJVRSkKLSAgICB7Ci0gICAgICAgIGVuYWJsZWRGZWF0dXJlT3ZlcnJpZGVzLnB1c2hfYmFj
aygiZW5hYmxlX2NhcHR1cmVfbGltaXRzIik7Ci0gICAgfQotCi0gICAgaWYgKHBhcmFtcy5mb3Jj
ZVJvYnVzdFJlc291cmNlSW5pdCA9PSBFR0xfVFJVRSkKLSAgICB7Ci0gICAgICAgIGVuYWJsZWRG
ZWF0dXJlT3ZlcnJpZGVzLnB1c2hfYmFjaygiZm9yY2VSb2J1c3RSZXNvdXJjZUluaXQiKTsKLSAg
ICB9Ci0KLSAgICBpZiAocGFyYW1zLmZvcmNlSW5pdFNoYWRlclZhcmlhYmxlcyA9PSBFR0xfVFJV
RSkKLSAgICB7Ci0gICAgICAgIGVuYWJsZWRGZWF0dXJlT3ZlcnJpZGVzLnB1c2hfYmFjaygiZm9y
Y2VJbml0U2hhZGVyVmFyaWFibGVzIik7Ci0gICAgfQotCi0gICAgaWYgKHBhcmFtcy5mb3JjZVZ1
bGthbkZhbGxiYWNrRm9ybWF0ID09IEVHTF9UUlVFKQotICAgIHsKLSAgICAgICAgZW5hYmxlZEZl
YXR1cmVPdmVycmlkZXMucHVzaF9iYWNrKCJmb3JjZUZhbGxiYWNrRm9ybWF0Iik7Ci0gICAgfQot
Ci0gICAgaWYgKHBhcmFtcy5mb3JjZVN1Ym1pdEltbXV0YWJsZVRleHR1cmVVcGRhdGVzID09IEVH
TF9UUlVFKQorICAgIGZvciAoYW5nbGU6OkZlYXR1cmUgZmVhdHVyZSA6IHBhcmFtcy5lbmFibGVk
RmVhdHVyZU92ZXJyaWRlcykKICAgICB7Ci0gICAgICAgIGVuYWJsZWRGZWF0dXJlT3ZlcnJpZGVz
LnB1c2hfYmFjaygiZm9yY2VTdWJtaXRJbW11dGFibGVUZXh0dXJlVXBkYXRlcyIpOworICAgICAg
ICBlbmFibGVkRmVhdHVyZU92ZXJyaWRlcy5wdXNoX2JhY2soYW5nbGU6OkdldEZlYXR1cmVOYW1l
KGZlYXR1cmUpKTsKICAgICB9Ci0KLSAgICBpZiAocGFyYW1zLmNyZWF0ZVBpcGVsaW5lRHVyaW5n
TGluayA9PSBFR0xfVFJVRSkKKyAgICBmb3IgKGFuZ2xlOjpGZWF0dXJlIGZlYXR1cmUgOiBwYXJh
bXMuZGlzYWJsZWRGZWF0dXJlT3ZlcnJpZGVzKQogICAgIHsKLSAgICAgICAgZW5hYmxlZEZlYXR1
cmVPdmVycmlkZXMucHVzaF9iYWNrKCJjcmVhdGVQaXBlbGluZUR1cmluZ0xpbmsiKTsKKyAgICAg
ICAgZGlzYWJsZWRGZWF0dXJlT3ZlcnJpZGVzLnB1c2hfYmFjayhhbmdsZTo6R2V0RmVhdHVyZU5h
bWUoZmVhdHVyZSkpOwogICAgIH0KIAogICAgIGNvbnN0IGJvb2wgaGFzRmVhdHVyZUNvbnRyb2xB
TkdMRSA9CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS91dGlsL2FuZ2xlX2Zl
YXR1cmVzX2F1dG9nZW4uY3BwIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvdXRpbC9hbmdsZV9m
ZWF0dXJlc19hdXRvZ2VuLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMDBkODZjOGYzYTc1ZTFmNmRhMjkyMWJh
OTBjZWI4OGI3MzA2MWVjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5H
TEUvdXRpbC9hbmdsZV9mZWF0dXJlc19hdXRvZ2VuLmNwcApAQCAtMCwwICsxLDI3OCBAQAorLy8g
R0VORVJBVEVEIEZJTEUgLSBETyBOT1QgRURJVC4KKy8vIEdlbmVyYXRlZCBieSBnZW5fZmVhdHVy
ZXMucHkgdXNpbmcgZGF0YSBmcm9tICpfZmVhdHVyZXMuanNvbi4KKy8vCisvLyBDb3B5cmlnaHQg
MjAyMiBUaGUgQU5HTEUgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8g
VXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5z
ZSB0aGF0IGNhbiBiZQorLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy8vCisvLyBhbmds
ZV9mZWF0dXJlc19hdXRvZ2VuLmNwcDogTGlzdCBvZiBBTkdMRSBmZWF0dXJlcyB0byBoZWxwIGVu
YWJsZS9kaXNhYmxlIHRoZW0gaW4gdGVzdHMuCisKKyNpbmNsdWRlICJhbmdsZV9mZWF0dXJlc19h
dXRvZ2VuLmgiCisKKyNpbmNsdWRlICJjb21tb24vUGFja2VkRW51bXMuaCIKKworbmFtZXNwYWNl
IGFuZ2xlCit7CituYW1lc3BhY2UKK3sKK2NvbnN0ZXhwciBQYWNrZWRFbnVtTWFwPEZlYXR1cmUs
IGNvbnN0IGNoYXIgKj4ga0ZlYXR1cmVOYW1lcyA9IHt7CisgICAge0ZlYXR1cmU6OkFkZEFuZFRy
dWVUb0xvb3BDb25kaXRpb24sICJhZGRBbmRUcnVlVG9Mb29wQ29uZGl0aW9uIn0sCisgICAge0Zl
YXR1cmU6OkFkZE1vY2tUZXh0dXJlTm9SZW5kZXJUYXJnZXQsICJhZGRNb2NrVGV4dHVyZU5vUmVu
ZGVyVGFyZ2V0In0sCisgICAge0ZlYXR1cmU6OkFkanVzdFNyY0RzdFJlZ2lvbkZvckJsaXRGcmFt
ZWJ1ZmZlciwgImFkanVzdFNyY0RzdFJlZ2lvbkZvckJsaXRGcmFtZWJ1ZmZlciJ9LAorICAgIHtG
ZWF0dXJlOjpBbGxvY2F0ZU5vblplcm9NZW1vcnksICJhbGxvY2F0ZU5vblplcm9NZW1vcnkifSwK
KyAgICB7RmVhdHVyZTo6QWxsb3dCdWZmZXJSZWFkV3JpdGUsICJhbGxvd0J1ZmZlclJlYWRXcml0
ZSJ9LAorICAgIHtGZWF0dXJlOjpBbGxvd0NsZWFyRm9yUm9idXN0UmVzb3VyY2VJbml0LCAiYWxs
b3dDbGVhckZvclJvYnVzdFJlc291cmNlSW5pdCJ9LAorICAgIHtGZWF0dXJlOjpBbGxvd0NvbXBy
ZXNzZWRGb3JtYXRzLCAiYWxsb3dDb21wcmVzc2VkRm9ybWF0cyJ9LAorICAgIHtGZWF0dXJlOjpB
bGxvd0VTM09uRkwxMDAsICJhbGxvd0VTM09uRkwxMDAifSwKKyAgICB7RmVhdHVyZTo6QWxsb3dF
VENGb3JtYXRzLCAiYWxsb3dFVENGb3JtYXRzIn0sCisgICAge0ZlYXR1cmU6OkFsbG93R2VuZXJh
dGVNaXBtYXBXaXRoQ29tcHV0ZSwgImFsbG93R2VuZXJhdGVNaXBtYXBXaXRoQ29tcHV0ZSJ9LAor
ICAgIHtGZWF0dXJlOjpBbGxvd0dlbk11bHRpcGxlTWlwc1BlclBhc3MsICJhbGxvd0dlbk11bHRp
cGxlTWlwc1BlclBhc3MifSwKKyAgICB7RmVhdHVyZTo6QWxsb3dJbmxpbmVDb25zdFZlcnRleERh
dGEsICJhbGxvd0lubGluZUNvbnN0VmVydGV4RGF0YSJ9LAorICAgIHtGZWF0dXJlOjpBbGxvd011
bHRpc2FtcGxlU3RvcmVBbmRSZXNvbHZlLCAiYWxsb3dNdWx0aXNhbXBsZVN0b3JlQW5kUmVzb2x2
ZSJ9LAorICAgIHtGZWF0dXJlOjpBbGxvd1J1bnRpbWVTYW1wbGVyQ29tcGFyZU1vZGUsICJhbGxv
d1J1bnRpbWVTYW1wbGVyQ29tcGFyZU1vZGUifSwKKyAgICB7RmVhdHVyZTo6QWxsb3dTYW1wbGVy
Q29tcGFyZUdyYWRpZW50LCAiYWxsb3dTYW1wbGVyQ29tcGFyZUdyYWRpZW50In0sCisgICAge0Zl
YXR1cmU6OkFsbG93U2FtcGxlckNvbXBhcmVMb2QsICJhbGxvd1NhbXBsZXJDb21wYXJlTG9kIn0s
CisgICAge0ZlYXR1cmU6OkFsbG93U2VwYXJhdGVEZXB0aFN0ZW5jaWxCdWZmZXJzLCAiYWxsb3dT
ZXBhcmF0ZURlcHRoU3RlbmNpbEJ1ZmZlcnMifSwKKyAgICB7RmVhdHVyZTo6QWxsb3dUcmFuc2xh
dGVVbmlmb3JtQmxvY2tUb1N0cnVjdHVyZWRCdWZmZXIsCisgICAgICJhbGxvd1RyYW5zbGF0ZVVu
aWZvcm1CbG9ja1RvU3RydWN0dXJlZEJ1ZmZlciJ9LAorICAgIHtGZWF0dXJlOjpBbHdheXNDYWxs
VXNlUHJvZ3JhbUFmdGVyTGluaywgImFsd2F5c0NhbGxVc2VQcm9ncmFtQWZ0ZXJMaW5rIn0sCisg
ICAge0ZlYXR1cmU6OkFsd2F5c1VuYmluZEZyYW1lYnVmZmVyVGV4dHVyZTJELCAiYWx3YXlzVW5i
aW5kRnJhbWVidWZmZXJUZXh0dXJlMkQifSwKKyAgICB7RmVhdHVyZTo6QXN5bmNDb21tYW5kUXVl
dWUsICJhc3luY0NvbW1hbmRRdWV1ZSJ9LAorICAgIHtGZWF0dXJlOjpBdm9pZDFCaXRBbHBoYVRl
eHR1cmVGb3JtYXRzLCAiYXZvaWQxQml0QWxwaGFUZXh0dXJlRm9ybWF0cyJ9LAorICAgIHtGZWF0
dXJlOjpCYXNpY0dMTGluZVJhc3Rlcml6YXRpb24sICJiYXNpY0dMTGluZVJhc3Rlcml6YXRpb24i
fSwKKyAgICB7RmVhdHVyZTo6QmluZEVtcHR5Rm9yVW51c2VkRGVzY3JpcHRvclNldHMsICJiaW5k
RW1wdHlGb3JVbnVzZWREZXNjcmlwdG9yU2V0cyJ9LAorICAgIHtGZWF0dXJlOjpCaW5kVHJhbnNm
b3JtRmVlZGJhY2tCdWZmZXJCZWZvcmVCaW5kQnVmZmVyUmFuZ2UsCisgICAgICJiaW5kVHJhbnNm
b3JtRmVlZGJhY2tCdWZmZXJCZWZvcmVCaW5kQnVmZmVyUmFuZ2UifSwKKyAgICB7RmVhdHVyZTo6
Qm90dG9tTGVmdE9yaWdpblByZXNlbnRSZWdpb25SZWN0YW5nbGVzLCAiYm90dG9tTGVmdE9yaWdp
blByZXNlbnRSZWdpb25SZWN0YW5nbGVzIn0sCisgICAge0ZlYXR1cmU6OkJyZXNlbmhhbUxpbmVS
YXN0ZXJpemF0aW9uLCAiYnJlc2VuaGFtTGluZVJhc3Rlcml6YXRpb24ifSwKKyAgICB7RmVhdHVy
ZTo6Q2FsbENsZWFyVHdpY2UsICJjYWxsQ2xlYXJUd2ljZSJ9LAorICAgIHtGZWF0dXJlOjpDbGFt
cEFycmF5QWNjZXNzLCAiY2xhbXBBcnJheUFjY2VzcyJ9LAorICAgIHtGZWF0dXJlOjpDbGFtcEZy
YWdEZXB0aCwgImNsYW1wRnJhZ0RlcHRoIn0sCisgICAge0ZlYXR1cmU6OkNsYW1wTXNjUmF0ZSwg
ImNsYW1wTXNjUmF0ZSJ9LAorICAgIHtGZWF0dXJlOjpDbGFtcFBvaW50U2l6ZSwgImNsYW1wUG9p
bnRTaXplIn0sCisgICAge0ZlYXR1cmU6OkNsZWFyVG9aZXJvT3JPbmVCcm9rZW4sICJjbGVhclRv
WmVyb09yT25lQnJva2VuIn0sCisgICAge0ZlYXR1cmU6OkNsaXBTcmNSZWdpb25Gb3JCbGl0RnJh
bWVidWZmZXIsICJjbGlwU3JjUmVnaW9uRm9yQmxpdEZyYW1lYnVmZmVyIn0sCisgICAge0ZlYXR1
cmU6OkNvbXByZXNzVmVydGV4RGF0YSwgImNvbXByZXNzVmVydGV4RGF0YSJ9LAorICAgIHtGZWF0
dXJlOjpDb3B5SU9TdXJmYWNlVG9Ob25JT1N1cmZhY2VGb3JSZWFkT3B0aW1pemF0aW9uLAorICAg
ICAiY29weUlPU3VyZmFjZVRvTm9uSU9TdXJmYWNlRm9yUmVhZE9wdGltaXphdGlvbiJ9LAorICAg
IHtGZWF0dXJlOjpDcmVhdGVQaXBlbGluZUR1cmluZ0xpbmssICJjcmVhdGVQaXBlbGluZUR1cmlu
Z0xpbmsifSwKKyAgICB7RmVhdHVyZTo6RGVjb2RlRW5jb2RlU1JHQkZvckdlbmVyYXRlTWlwbWFw
LCAiZGVjb2RlRW5jb2RlU1JHQkZvckdlbmVyYXRlTWlwbWFwIn0sCisgICAge0ZlYXR1cmU6OkRl
ZmVyRmx1c2hVbnRpbEVuZFJlbmRlclBhc3MsICJkZWZlckZsdXNoVW50aWxFbmRSZW5kZXJQYXNz
In0sCisgICAge0ZlYXR1cmU6OkRlcHRoQ2xhbXBpbmcsICJkZXB0aENsYW1waW5nIn0sCisgICAg
e0ZlYXR1cmU6OkRlcHRoU3RlbmNpbEJsaXRFeHRyYUNvcHksICJkZXB0aFN0ZW5jaWxCbGl0RXh0
cmFDb3B5In0sCisgICAge0ZlYXR1cmU6OkRpcmVjdE1ldGFsR2VuZXJhdGlvbiwgImRpcmVjdE1l
dGFsR2VuZXJhdGlvbiJ9LAorICAgIHtGZWF0dXJlOjpEaXNhYmxlQW5pc290cm9waWNGaWx0ZXJp
bmcsICJkaXNhYmxlQW5pc290cm9waWNGaWx0ZXJpbmcifSwKKyAgICB7RmVhdHVyZTo6RGlzYWJs
ZUI1RzZSNVN1cHBvcnQsICJkaXNhYmxlQjVHNlI1U3VwcG9ydCJ9LAorICAgIHtGZWF0dXJlOjpE
aXNhYmxlQmxlbmRGdW5jRXh0ZW5kZWQsICJkaXNhYmxlQmxlbmRGdW5jRXh0ZW5kZWQifSwKKyAg
ICB7RmVhdHVyZTo6RGlzYWJsZURyYXdCdWZmZXJzSW5kZXhlZCwgImRpc2FibGVEcmF3QnVmZmVy
c0luZGV4ZWQifSwKKyAgICB7RmVhdHVyZTo6RGlzYWJsZUZpZm9QcmVzZW50TW9kZSwgImRpc2Fi
bGVGaWZvUHJlc2VudE1vZGUifSwKKyAgICB7RmVhdHVyZTo6RGlzYWJsZUZsaXBwaW5nQmxpdFdp
dGhDb21tYW5kLCAiZGlzYWJsZUZsaXBwaW5nQmxpdFdpdGhDb21tYW5kIn0sCisgICAge0ZlYXR1
cmU6OkRpc2FibGVHUFVTd2l0Y2hpbmdTdXBwb3J0LCAiZGlzYWJsZUdQVVN3aXRjaGluZ1N1cHBv
cnQifSwKKyAgICB7RmVhdHVyZTo6RGlzYWJsZU11bHRpc2FtcGxlZFJlbmRlclRvVGV4dHVyZSwg
ImRpc2FibGVNdWx0aXNhbXBsZWRSZW5kZXJUb1RleHR1cmUifSwKKyAgICB7RmVhdHVyZTo6RGlz
YWJsZU5hdGl2ZVBhcmFsbGVsQ29tcGlsZSwgImRpc2FibGVOYXRpdmVQYXJhbGxlbENvbXBpbGUi
fSwKKyAgICB7RmVhdHVyZTo6RGlzYWJsZVByb2dyYW1CaW5hcnksICJkaXNhYmxlUHJvZ3JhbUJp
bmFyeSJ9LAorICAgIHtGZWF0dXJlOjpEaXNhYmxlUHJvZ3JhbUNhY2hpbmdGb3JUcmFuc2Zvcm1G
ZWVkYmFjaywKKyAgICAgImRpc2FibGVQcm9ncmFtQ2FjaGluZ0ZvclRyYW5zZm9ybUZlZWRiYWNr
In0sCisgICAge0ZlYXR1cmU6OkRpc2FibGVTZW1hcGhvcmVGZCwgImRpc2FibGVTZW1hcGhvcmVG
ZCJ9LAorICAgIHtGZWF0dXJlOjpEaXNhYmxlU3luY0NvbnRyb2xTdXBwb3J0LCAiZGlzYWJsZVN5
bmNDb250cm9sU3VwcG9ydCJ9LAorICAgIHtGZWF0dXJlOjpEaXNhYmxlVGltZXN0YW1wUXVlcmll
cywgImRpc2FibGVUaW1lc3RhbXBRdWVyaWVzIn0sCisgICAge0ZlYXR1cmU6OkRpc2FibGVXb3Jr
ZXJDb250ZXh0cywgImRpc2FibGVXb3JrZXJDb250ZXh0cyJ9LAorICAgIHtGZWF0dXJlOjpEaXNh
bGxvd1NlYW1mdWxDdWJlTWFwRW11bGF0aW9uLCAiZGlzYWxsb3dTZWFtZnVsQ3ViZU1hcEVtdWxh
dGlvbiJ9LAorICAgIHtGZWF0dXJlOjpEb2VzU1JHQkNsZWFyc09uTGluZWFyRnJhbWVidWZmZXJB
dHRhY2htZW50cywKKyAgICAgImRvZXNTUkdCQ2xlYXJzT25MaW5lYXJGcmFtZWJ1ZmZlckF0dGFj
aG1lbnRzIn0sCisgICAge0ZlYXR1cmU6OkRvbnRJbml0aWFsaXplVW5pbml0aWFsaXplZExvY2Fs
cywgImRvbnRJbml0aWFsaXplVW5pbml0aWFsaXplZExvY2FscyJ9LAorICAgIHtGZWF0dXJlOjpE
b250UmVsaW5rUHJvZ3JhbXNJblBhcmFsbGVsLCAiZG9udFJlbGlua1Byb2dyYW1zSW5QYXJhbGxl
bCJ9LAorICAgIHtGZWF0dXJlOjpEb250VXNlTG9vcHNUb0luaXRpYWxpemVWYXJpYWJsZXMsICJk
b250VXNlTG9vcHNUb0luaXRpYWxpemVWYXJpYWJsZXMifSwKKyAgICB7RmVhdHVyZTo6RG9XaGls
ZUdMU0xDYXVzZXNHUFVIYW5nLCAiZG9XaGlsZUdMU0xDYXVzZXNHUFVIYW5nIn0sCisgICAge0Zl
YXR1cmU6OkVtdWxhdGVBYnNJbnRGdW5jdGlvbiwgImVtdWxhdGVBYnNJbnRGdW5jdGlvbiJ9LAor
ICAgIHtGZWF0dXJlOjpFbXVsYXRlQWR2YW5jZWRCbGVuZEVxdWF0aW9ucywgImVtdWxhdGVBZHZh
bmNlZEJsZW5kRXF1YXRpb25zIn0sCisgICAge0ZlYXR1cmU6OkVtdWxhdGVBdGFuMkZsb2F0LCAi
ZW11bGF0ZUF0YW4yRmxvYXQifSwKKyAgICB7RmVhdHVyZTo6RW11bGF0ZUNvcHlUZXhJbWFnZTJE
RnJvbVJlbmRlcmJ1ZmZlcnMsICJlbXVsYXRlQ29weVRleEltYWdlMkRGcm9tUmVuZGVyYnVmZmVy
cyJ9LAorICAgIHtGZWF0dXJlOjpFbXVsYXRlRGl0aGVyaW5nLCAiZW11bGF0ZURpdGhlcmluZyJ9
LAorICAgIHtGZWF0dXJlOjpFbXVsYXRlZFByZXJvdGF0aW9uMTgwLCAiZW11bGF0ZWRQcmVyb3Rh
dGlvbjE4MCJ9LAorICAgIHtGZWF0dXJlOjpFbXVsYXRlZFByZXJvdGF0aW9uMjcwLCAiZW11bGF0
ZWRQcmVyb3RhdGlvbjI3MCJ9LAorICAgIHtGZWF0dXJlOjpFbXVsYXRlZFByZXJvdGF0aW9uOTAs
ICJlbXVsYXRlZFByZXJvdGF0aW9uOTAifSwKKyAgICB7RmVhdHVyZTo6RW11bGF0ZUltbXV0YWJs
ZUNvbXByZXNzZWRUZXh0dXJlM0QsICJlbXVsYXRlSW1tdXRhYmxlQ29tcHJlc3NlZFRleHR1cmUz
RCJ9LAorICAgIHtGZWF0dXJlOjpFbXVsYXRlSXNuYW5GbG9hdCwgImVtdWxhdGVJc25hbkZsb2F0
In0sCisgICAge0ZlYXR1cmU6OkVtdWxhdGVNYXhWZXJ0ZXhBdHRyaWJTdHJpZGUsICJlbXVsYXRl
TWF4VmVydGV4QXR0cmliU3RyaWRlIn0sCisgICAge0ZlYXR1cmU6OkVtdWxhdGVQYWNrU2tpcFJv
d3NBbmRQYWNrU2tpcFBpeGVscywgImVtdWxhdGVQYWNrU2tpcFJvd3NBbmRQYWNrU2tpcFBpeGVs
cyJ9LAorICAgIHtGZWF0dXJlOjpFbXVsYXRlUHJpbWl0aXZlUmVzdGFydEZpeGVkSW5kZXgsICJl
bXVsYXRlUHJpbWl0aXZlUmVzdGFydEZpeGVkSW5kZXgifSwKKyAgICB7RmVhdHVyZTo6RW11bGF0
ZVIzMmZJbWFnZUF0b21pY0V4Y2hhbmdlLCAiZW11bGF0ZVIzMmZJbWFnZUF0b21pY0V4Y2hhbmdl
In0sCisgICAge0ZlYXR1cmU6OkVtdWxhdGVSR0IxMCwgImVtdWxhdGVSR0IxMCJ9LAorICAgIHtG
ZWF0dXJlOjpFbXVsYXRlVGlueVN0ZW5jaWxUZXh0dXJlcywgImVtdWxhdGVUaW55U3RlbmNpbFRl
eHR1cmVzIn0sCisgICAge0ZlYXR1cmU6OkVtdWxhdGVUcmFuc2Zvcm1GZWVkYmFjaywgImVtdWxh
dGVUcmFuc2Zvcm1GZWVkYmFjayJ9LAorICAgIHtGZWF0dXJlOjpFbmFibGVDYXB0dXJlTGltaXRz
LCAiZW5hYmxlQ2FwdHVyZUxpbWl0cyJ9LAorICAgIHtGZWF0dXJlOjpFbmFibGVDb21wcmVzc2lu
Z1BpcGVsaW5lQ2FjaGVJblRocmVhZFBvb2wsCisgICAgICJlbmFibGVDb21wcmVzc2luZ1BpcGVs
aW5lQ2FjaGVJblRocmVhZFBvb2wifSwKKyAgICB7RmVhdHVyZTo6RW5hYmxlTXVsdGlzYW1wbGVk
UmVuZGVyVG9UZXh0dXJlLCAiZW5hYmxlTXVsdGlzYW1wbGVkUmVuZGVyVG9UZXh0dXJlIn0sCisg
ICAge0ZlYXR1cmU6OkVuYWJsZVByZWNpc2lvblF1YWxpZmllcnMsICJlbmFibGVQcmVjaXNpb25R
dWFsaWZpZXJzIn0sCisgICAge0ZlYXR1cmU6OkVuYWJsZVByZVJvdGF0ZVN1cmZhY2VzLCAiZW5h
YmxlUHJlUm90YXRlU3VyZmFjZXMifSwKKyAgICB7RmVhdHVyZTo6RW5hYmxlUHJvZ3JhbUJpbmFy
eUZvckNhcHR1cmUsICJlbmFibGVQcm9ncmFtQmluYXJ5Rm9yQ2FwdHVyZSJ9LAorICAgIHtGZWF0
dXJlOjpFeHBhbmRJbnRlZ2VyUG93RXhwcmVzc2lvbnMsICJleHBhbmRJbnRlZ2VyUG93RXhwcmVz
c2lvbnMifSwKKyAgICB7RmVhdHVyZTo6RXhwb3NlTm9uQ29uZm9ybWFudEV4dGVuc2lvbnNBbmRW
ZXJzaW9ucywgImV4cG9zZU5vbkNvbmZvcm1hbnRFeHRlbnNpb25zQW5kVmVyc2lvbnMifSwKKyAg
ICB7RmVhdHVyZTo6RmluaXNoRG9lc05vdENhdXNlUXVlcmllc1RvQmVBdmFpbGFibGUsICJmaW5p
c2hEb2VzTm90Q2F1c2VRdWVyaWVzVG9CZUF2YWlsYWJsZSJ9LAorICAgIHtGZWF0dXJlOjpGbHVz
aEFmdGVyRW5kaW5nVHJhbnNmb3JtRmVlZGJhY2ssICJmbHVzaEFmdGVyRW5kaW5nVHJhbnNmb3Jt
RmVlZGJhY2sifSwKKyAgICB7RmVhdHVyZTo6Rmx1c2hCZWZvcmVEZWxldGVUZXh0dXJlSWZDb3Bp
ZWRUbywgImZsdXNoQmVmb3JlRGVsZXRlVGV4dHVyZUlmQ29waWVkVG8ifSwKKyAgICB7RmVhdHVy
ZTo6Rmx1c2hPbkZyYW1lYnVmZmVyQ2hhbmdlLCAiZmx1c2hPbkZyYW1lYnVmZmVyQ2hhbmdlIn0s
CisgICAge0ZlYXR1cmU6OkZvcmNlQXRvbWljVmFsdWVSZXNvbHV0aW9uLCAiZm9yY2VBdG9taWNW
YWx1ZVJlc29sdXRpb24ifSwKKyAgICB7RmVhdHVyZTo6Rm9yY2VCdWZmZXJHUFVTdG9yYWdlLCAi
Zm9yY2VCdWZmZXJHUFVTdG9yYWdlIn0sCisgICAge0ZlYXR1cmU6OkZvcmNlRDE2VGV4RmlsdGVy
LCAiZm9yY2VEMTZUZXhGaWx0ZXIifSwKKyAgICB7RmVhdHVyZTo6Rm9yY2VEMjRTOEFzVW5zdXBw
b3J0ZWQsICJmb3JjZUQyNFM4QXNVbnN1cHBvcnRlZCJ9LAorICAgIHtGZWF0dXJlOjpGb3JjZURy
aXZlclVuaWZvcm1PdmVyU3BlY0NvbnN0LCAiZm9yY2VEcml2ZXJVbmlmb3JtT3ZlclNwZWNDb25z
dCJ9LAorICAgIHtGZWF0dXJlOjpGb3JjZUZhbGxiYWNrRm9ybWF0LCAiZm9yY2VGYWxsYmFja0Zv
cm1hdCJ9LAorICAgIHtGZWF0dXJlOjpGb3JjZUZyYWdtZW50U2hhZGVyUHJlY2lzaW9uSGlnaHBU
b01lZGl1bXAsCisgICAgICJmb3JjZUZyYWdtZW50U2hhZGVyUHJlY2lzaW9uSGlnaHBUb01lZGl1
bXAifSwKKyAgICB7RmVhdHVyZTo6Rm9yY2VJbml0U2hhZGVyVmFyaWFibGVzLCAiZm9yY2VJbml0
U2hhZGVyVmFyaWFibGVzIn0sCisgICAge0ZlYXR1cmU6OkZvcmNlTWF4VW5pZm9ybUJ1ZmZlclNp
emUxNktCLCAiZm9yY2VNYXhVbmlmb3JtQnVmZmVyU2l6ZTE2S0IifSwKKyAgICB7RmVhdHVyZTo6
Rm9yY2VOZWFyZXN0RmlsdGVyaW5nLCAiZm9yY2VOZWFyZXN0RmlsdGVyaW5nIn0sCisgICAge0Zl
YXR1cmU6OkZvcmNlTmVhcmVzdE1pcEZpbHRlcmluZywgImZvcmNlTmVhcmVzdE1pcEZpbHRlcmlu
ZyJ9LAorICAgIHtGZWF0dXJlOjpGb3JjZU5vbkNTQmFzZU1pcG1hcEdlbmVyYXRpb24sICJmb3Jj
ZU5vbkNTQmFzZU1pcG1hcEdlbmVyYXRpb24ifSwKKyAgICB7RmVhdHVyZTo6Rm9yY2VSb2J1c3RS
ZXNvdXJjZUluaXQsICJmb3JjZVJvYnVzdFJlc291cmNlSW5pdCJ9LAorICAgIHtGZWF0dXJlOjpG
b3JjZVN1Ym1pdEltbXV0YWJsZVRleHR1cmVVcGRhdGVzLCAiZm9yY2VTdWJtaXRJbW11dGFibGVU
ZXh0dXJlVXBkYXRlcyJ9LAorICAgIHtGZWF0dXJlOjpGb3JjZVRleHR1cmVMb2RPZmZzZXQxLCAi
Zm9yY2VUZXh0dXJlTG9kT2Zmc2V0MSJ9LAorICAgIHtGZWF0dXJlOjpGb3JjZVRleHR1cmVMb2RP
ZmZzZXQyLCAiZm9yY2VUZXh0dXJlTG9kT2Zmc2V0MiJ9LAorICAgIHtGZWF0dXJlOjpGb3JjZVRl
eHR1cmVMb2RPZmZzZXQzLCAiZm9yY2VUZXh0dXJlTG9kT2Zmc2V0MyJ9LAorICAgIHtGZWF0dXJl
OjpGb3JjZVRleHR1cmVMb2RPZmZzZXQ0LCAiZm9yY2VUZXh0dXJlTG9kT2Zmc2V0NCJ9LAorICAg
IHtGZWF0dXJlOjpHZW5lcmF0ZVNQSVJWVGhyb3VnaEdsc2xhbmcsICJnZW5lcmF0ZVNQSVJWVGhy
b3VnaEdsc2xhbmcifSwKKyAgICB7RmVhdHVyZTo6R2V0RGltZW5zaW9uc0lnbm9yZXNCYXNlTGV2
ZWwsICJnZXREaW1lbnNpb25zSWdub3Jlc0Jhc2VMZXZlbCJ9LAorICAgIHtGZWF0dXJlOjpIYXNC
YXNlVmVydGV4SW5zdGFuY2VkRHJhdywgImhhc0Jhc2VWZXJ0ZXhJbnN0YW5jZWREcmF3In0sCisg
ICAge0ZlYXR1cmU6Okhhc0NoZWFwUmVuZGVyUGFzcywgImhhc0NoZWFwUmVuZGVyUGFzcyJ9LAor
ICAgIHtGZWF0dXJlOjpIYXNEZXB0aEF1dG9SZXNvbHZlLCAiaGFzRGVwdGhBdXRvUmVzb2x2ZSJ9
LAorICAgIHtGZWF0dXJlOjpIYXNFdmVudHMsICJoYXNFdmVudHMifSwKKyAgICB7RmVhdHVyZTo6
SGFzRXhwbGljaXRNZW1CYXJyaWVyLCAiaGFzRXhwbGljaXRNZW1CYXJyaWVyIn0sCisgICAge0Zl
YXR1cmU6Okhhc05vblVuaWZvcm1EaXNwYXRjaCwgImhhc05vblVuaWZvcm1EaXNwYXRjaCJ9LAor
ICAgIHtGZWF0dXJlOjpIYXNTaGFkZXJTdGVuY2lsT3V0cHV0LCAiaGFzU2hhZGVyU3RlbmNpbE91
dHB1dCJ9LAorICAgIHtGZWF0dXJlOjpIYXNTdGVuY2lsQXV0b1Jlc29sdmUsICJoYXNTdGVuY2ls
QXV0b1Jlc29sdmUifSwKKyAgICB7RmVhdHVyZTo6SGFzVGV4dHVyZVN3aXp6bGUsICJoYXNUZXh0
dXJlU3dpenpsZSJ9LAorICAgIHtGZWF0dXJlOjpJbml0RnJhZ21lbnRPdXRwdXRWYXJpYWJsZXMs
ICJpbml0RnJhZ21lbnRPdXRwdXRWYXJpYWJsZXMifSwKKyAgICB7RmVhdHVyZTo6SW5pdGlhbGl6
ZUN1cnJlbnRWZXJ0ZXhBdHRyaWJ1dGVzLCAiaW5pdGlhbGl6ZUN1cnJlbnRWZXJ0ZXhBdHRyaWJ1
dGVzIn0sCisgICAge0ZlYXR1cmU6OkludGVsRGlzYWJsZUZhc3RNYXRoLCAiaW50ZWxEaXNhYmxl
RmFzdE1hdGgifSwKKyAgICB7RmVhdHVyZTo6SW50ZWxFeHBsaWNpdEJvb2xDYXN0V29ya2Fyb3Vu
ZCwgImludGVsRXhwbGljaXRCb29sQ2FzdFdvcmthcm91bmQifSwKKyAgICB7RmVhdHVyZTo6S2Vl
cEJ1ZmZlclNoYWRvd0NvcHksICJrZWVwQnVmZmVyU2hhZG93Q29weSJ9LAorICAgIHtGZWF0dXJl
OjpMaW1pdE1heDNkQXJyYXlUZXh0dXJlU2l6ZVRvMTAyNCwgImxpbWl0TWF4M2RBcnJheVRleHR1
cmVTaXplVG8xMDI0In0sCisgICAge0ZlYXR1cmU6OkxpbWl0TWF4TVNBQVNhbXBsZXNUbzQsICJs
aW1pdE1heE1TQUFTYW1wbGVzVG80In0sCisgICAge0ZlYXR1cmU6OkxpbWl0TWF4VGV4dHVyZVNp
emVUbzQwOTYsICJsaW1pdE1heFRleHR1cmVTaXplVG80MDk2In0sCisgICAge0ZlYXR1cmU6Okxv
Z01lbW9yeVJlcG9ydENhbGxiYWNrcywgImxvZ01lbW9yeVJlcG9ydENhbGxiYWNrcyJ9LAorICAg
IHtGZWF0dXJlOjpMb2dNZW1vcnlSZXBvcnRTdGF0cywgImxvZ01lbW9yeVJlcG9ydFN0YXRzIn0s
CisgICAge0ZlYXR1cmU6Okxvc2VDb250ZXh0T25PdXRPZk1lbW9yeSwgImxvc2VDb250ZXh0T25P
dXRPZk1lbW9yeSJ9LAorICAgIHtGZWF0dXJlOjpNcnRQZXJmV29ya2Fyb3VuZCwgIm1ydFBlcmZX
b3JrYXJvdW5kIn0sCisgICAge0ZlYXR1cmU6Ok11bHRpc2FtcGxlQ29sb3JGb3JtYXRTaGFkZXJS
ZWFkV29ya2Fyb3VuZCwKKyAgICAgIm11bHRpc2FtcGxlQ29sb3JGb3JtYXRTaGFkZXJSZWFkV29y
a2Fyb3VuZCJ9LAorICAgIHtGZWF0dXJlOjpPdmVycmlkZVN1cmZhY2VGb3JtYXRSR0I4VG9SR0JB
OCwgIm92ZXJyaWRlU3VyZmFjZUZvcm1hdFJHQjhUb1JHQkE4In0sCisgICAge0ZlYXR1cmU6OlBh
Y2tMYXN0Um93U2VwYXJhdGVseUZvclBhZGRpbmdJbmNsdXNpb24sICJwYWNrTGFzdFJvd1NlcGFy
YXRlbHlGb3JQYWRkaW5nSW5jbHVzaW9uIn0sCisgICAge0ZlYXR1cmU6OlBhY2tPdmVybGFwcGlu
Z1Jvd3NTZXBhcmF0ZWx5UGFja0J1ZmZlciwgInBhY2tPdmVybGFwcGluZ1Jvd3NTZXBhcmF0ZWx5
UGFja0J1ZmZlciJ9LAorICAgIHtGZWF0dXJlOjpQYWRCdWZmZXJzVG9NYXhWZXJ0ZXhBdHRyaWJT
dHJpZGUsICJwYWRCdWZmZXJzVG9NYXhWZXJ0ZXhBdHRyaWJTdHJpZGUifSwKKyAgICB7RmVhdHVy
ZTo6UGVyRnJhbWVXaW5kb3dTaXplUXVlcnksICJwZXJGcmFtZVdpbmRvd1NpemVRdWVyeSJ9LAor
ICAgIHtGZWF0dXJlOjpQZXJzaXN0ZW50bHlNYXBwZWRCdWZmZXJzLCAicGVyc2lzdGVudGx5TWFw
cGVkQnVmZmVycyJ9LAorICAgIHtGZWF0dXJlOjpQcmVBZGRUZXhlbEZldGNoT2Zmc2V0cywgInBy
ZUFkZFRleGVsRmV0Y2hPZmZzZXRzIn0sCisgICAge0ZlYXR1cmU6OlByZWZlckFnZ3JlZ2F0ZUJh
cnJpZXJDYWxscywgInByZWZlckFnZ3JlZ2F0ZUJhcnJpZXJDYWxscyJ9LAorICAgIHtGZWF0dXJl
OjpQcmVmZXJDUFVGb3JCdWZmZXJTdWJEYXRhLCAicHJlZmVyQ1BVRm9yQnVmZmVyU3ViRGF0YSJ9
LAorICAgIHtGZWF0dXJlOjpQcmVmZXJEZXZpY2VMb2NhbE1lbW9yeUhvc3RWaXNpYmxlLCAicHJl
ZmVyRGV2aWNlTG9jYWxNZW1vcnlIb3N0VmlzaWJsZSJ9LAorICAgIHtGZWF0dXJlOjpQcmVmZXJE
cmF3Q2xlYXJPdmVyVmtDbWRDbGVhckF0dGFjaG1lbnRzLCAicHJlZmVyRHJhd0NsZWFyT3ZlclZr
Q21kQ2xlYXJBdHRhY2htZW50cyJ9LAorICAgIHtGZWF0dXJlOjpQcmVmZXJTa2lwcGluZ0ludmFs
aWRhdGVGb3JFbXVsYXRlZEZvcm1hdHMsCisgICAgICJwcmVmZXJTa2lwcGluZ0ludmFsaWRhdGVG
b3JFbXVsYXRlZEZvcm1hdHMifSwKKyAgICB7RmVhdHVyZTo6UHJlZmVyU3VibWl0QXRGQk9Cb3Vu
ZGFyeSwgInByZWZlclN1Ym1pdEF0RkJPQm91bmRhcnkifSwKKyAgICB7RmVhdHVyZTo6UHJvbW90
ZVBhY2tlZEZvcm1hdHNUbzhCaXRQZXJDaGFubmVsLCAicHJvbW90ZVBhY2tlZEZvcm1hdHNUbzhC
aXRQZXJDaGFubmVsIn0sCisgICAge0ZlYXR1cmU6OlByb3Zva2luZ1ZlcnRleCwgInByb3Zva2lu
Z1ZlcnRleCJ9LAorICAgIHtGZWF0dXJlOjpRdWVyeUNvdW50ZXJCaXRzR2VuZXJhdGVzRXJyb3Jz
LCAicXVlcnlDb3VudGVyQml0c0dlbmVyYXRlc0Vycm9ycyJ9LAorICAgIHtGZWF0dXJlOjpSZWFk
UGl4ZWxzVXNpbmdJbXBsZW1lbnRhdGlvbkNvbG9yUmVhZEZvcm1hdEZvck5vcm0xNiwKKyAgICAg
InJlYWRQaXhlbHNVc2luZ0ltcGxlbWVudGF0aW9uQ29sb3JSZWFkRm9ybWF0Rm9yTm9ybTE2In0s
CisgICAge0ZlYXR1cmU6OlJlYXBwbHlVQk9CaW5kaW5nc0FmdGVyVXNpbmdCaW5hcnlQcm9ncmFt
LAorICAgICAicmVhcHBseVVCT0JpbmRpbmdzQWZ0ZXJVc2luZ0JpbmFyeVByb2dyYW0ifSwKKyAg
ICB7RmVhdHVyZTo6UmVnZW5lcmF0ZVN0cnVjdE5hbWVzLCAicmVnZW5lcmF0ZVN0cnVjdE5hbWVz
In0sCisgICAge0ZlYXR1cmU6OlJlbW92ZUR5bmFtaWNJbmRleGluZ09mU3dpenpsZWRWZWN0b3Is
ICJyZW1vdmVEeW5hbWljSW5kZXhpbmdPZlN3aXp6bGVkVmVjdG9yIn0sCisgICAge0ZlYXR1cmU6
OlJlbW92ZUludmFyaWFudEFuZENlbnRyb2lkRm9yRVNTTDMsICJyZW1vdmVJbnZhcmlhbnRBbmRD
ZW50cm9pZEZvckVTU0wzIn0sCisgICAge0ZlYXR1cmU6OlJlc2V0VGV4SW1hZ2UyREJhc2VMZXZl
bCwgInJlc2V0VGV4SW1hZ2UyREJhc2VMZXZlbCJ9LAorICAgIHtGZWF0dXJlOjpSZXRhaW5TUElS
VkRlYnVnSW5mbywgInJldGFpblNQSVJWRGVidWdJbmZvIn0sCisgICAge0ZlYXR1cmU6OlJld3Jp
dGVGbG9hdFVuYXJ5TWludXNPcGVyYXRvciwgInJld3JpdGVGbG9hdFVuYXJ5TWludXNPcGVyYXRv
ciJ9LAorICAgIHtGZWF0dXJlOjpSZXdyaXRlUmVwZWF0ZWRBc3NpZ25Ub1N3aXp6bGVkLCAicmV3
cml0ZVJlcGVhdGVkQXNzaWduVG9Td2l6emxlZCJ9LAorICAgIHtGZWF0dXJlOjpSZXdyaXRlUm93
TWFqb3JNYXRyaWNlcywgInJld3JpdGVSb3dNYWpvck1hdHJpY2VzIn0sCisgICAge0ZlYXR1cmU6
OlJld3JpdGVVbmFyeU1pbnVzT3BlcmF0b3IsICJyZXdyaXRlVW5hcnlNaW51c09wZXJhdG9yIn0s
CisgICAge0ZlYXR1cmU6OlJHQkE0SXNOb3RTdXBwb3J0ZWRGb3JDb2xvclJlbmRlcmluZywgIlJH
QkE0SXNOb3RTdXBwb3J0ZWRGb3JDb2xvclJlbmRlcmluZyJ9LAorICAgIHtGZWF0dXJlOjpSR0JE
WFQxVGV4dHVyZXNTYW1wbGVaZXJvQWxwaGEsICJSR0JEWFQxVGV4dHVyZXNTYW1wbGVaZXJvQWxw
aGEifSwKKyAgICB7RmVhdHVyZTo6U2FuaXRpemVBTURHUFVSZW5kZXJlclN0cmluZywgInNhbml0
aXplQU1ER1BVUmVuZGVyZXJTdHJpbmcifSwKKyAgICB7RmVhdHVyZTo6U2NhbGFyaXplVmVjQW5k
TWF0Q29uc3RydWN0b3JBcmdzLCAic2NhbGFyaXplVmVjQW5kTWF0Q29uc3RydWN0b3JBcmdzIn0s
CisgICAge0ZlYXR1cmU6OlNlbGVjdFZpZXdJbkdlb21ldHJ5U2hhZGVyLCAic2VsZWN0Vmlld0lu
R2VvbWV0cnlTaGFkZXIifSwKKyAgICB7RmVhdHVyZTo6U2V0RGF0YUZhc3RlclRoYW5JbWFnZVVw
bG9hZCwgInNldERhdGFGYXN0ZXJUaGFuSW1hZ2VVcGxvYWQifSwKKyAgICB7RmVhdHVyZTo6U2V0
UHJpbWl0aXZlUmVzdGFydEZpeGVkSW5kZXhGb3JEcmF3QXJyYXlzLAorICAgICAic2V0UHJpbWl0
aXZlUmVzdGFydEZpeGVkSW5kZXhGb3JEcmF3QXJyYXlzIn0sCisgICAge0ZlYXR1cmU6OlNldFpl
cm9MZXZlbEJlZm9yZUdlbmVyYXRlTWlwbWFwLCAic2V0WmVyb0xldmVsQmVmb3JlR2VuZXJhdGVN
aXBtYXAifSwKKyAgICB7RmVhdHVyZTo6U2hhZG93QnVmZmVycywgInNoYWRvd0J1ZmZlcnMifSwK
KyAgICB7RmVhdHVyZTo6U2hpZnRJbnN0YW5jZWRBcnJheURhdGFXaXRoT2Zmc2V0LCAic2hpZnRJ
bnN0YW5jZWRBcnJheURhdGFXaXRoT2Zmc2V0In0sCisgICAge0ZlYXR1cmU6OlNraXBWU0NvbnN0
YW50UmVnaXN0ZXJaZXJvLCAic2tpcFZTQ29uc3RhbnRSZWdpc3Rlclplcm8ifSwKKyAgICB7RmVh
dHVyZTo6U3VwcG9ydHNBbmRyb2lkSGFyZHdhcmVCdWZmZXIsICJzdXBwb3J0c0FuZHJvaWRIYXJk
d2FyZUJ1ZmZlciJ9LAorICAgIHtGZWF0dXJlOjpTdXBwb3J0c0FuZHJvaWROYXRpdmVGZW5jZVN5
bmMsICJzdXBwb3J0c0FuZHJvaWROYXRpdmVGZW5jZVN5bmMifSwKKyAgICB7RmVhdHVyZTo6U3Vw
cG9ydHNCbGVuZE9wZXJhdGlvbkFkdmFuY2VkLCAic3VwcG9ydHNCbGVuZE9wZXJhdGlvbkFkdmFu
Y2VkIn0sCisgICAge0ZlYXR1cmU6OlN1cHBvcnRzQ3VzdG9tQm9yZGVyQ29sb3IsICJzdXBwb3J0
c0N1c3RvbUJvcmRlckNvbG9yIn0sCisgICAge0ZlYXR1cmU6OlN1cHBvcnRzRGVwdGhDbGlwQ29u
dHJvbCwgInN1cHBvcnRzRGVwdGhDbGlwQ29udHJvbCJ9LAorICAgIHtGZWF0dXJlOjpTdXBwb3J0
c0RlcHRoU3RlbmNpbFJlc29sdmUsICJzdXBwb3J0c0RlcHRoU3RlbmNpbFJlc29sdmUifSwKKyAg
ICB7RmVhdHVyZTo6U3VwcG9ydHNFeHRlcm5hbEZlbmNlQ2FwYWJpbGl0aWVzLCAic3VwcG9ydHNF
eHRlcm5hbEZlbmNlQ2FwYWJpbGl0aWVzIn0sCisgICAge0ZlYXR1cmU6OlN1cHBvcnRzRXh0ZXJu
YWxGZW5jZUZkLCAic3VwcG9ydHNFeHRlcm5hbEZlbmNlRmQifSwKKyAgICB7RmVhdHVyZTo6U3Vw
cG9ydHNFeHRlcm5hbE1lbW9yeURtYUJ1ZkFuZE1vZGlmaWVycywgInN1cHBvcnRzRXh0ZXJuYWxN
ZW1vcnlEbWFCdWZBbmRNb2RpZmllcnMifSwKKyAgICB7RmVhdHVyZTo6U3VwcG9ydHNFeHRlcm5h
bE1lbW9yeUZkLCAic3VwcG9ydHNFeHRlcm5hbE1lbW9yeUZkIn0sCisgICAge0ZlYXR1cmU6OlN1
cHBvcnRzRXh0ZXJuYWxNZW1vcnlGdWNoc2lhLCAic3VwcG9ydHNFeHRlcm5hbE1lbW9yeUZ1Y2hz
aWEifSwKKyAgICB7RmVhdHVyZTo6U3VwcG9ydHNFeHRlcm5hbE1lbW9yeUhvc3QsICJzdXBwb3J0
c0V4dGVybmFsTWVtb3J5SG9zdCJ9LAorICAgIHtGZWF0dXJlOjpTdXBwb3J0c0V4dGVybmFsU2Vt
YXBob3JlQ2FwYWJpbGl0aWVzLCAic3VwcG9ydHNFeHRlcm5hbFNlbWFwaG9yZUNhcGFiaWxpdGll
cyJ9LAorICAgIHtGZWF0dXJlOjpTdXBwb3J0c0V4dGVybmFsU2VtYXBob3JlRmQsICJzdXBwb3J0
c0V4dGVybmFsU2VtYXBob3JlRmQifSwKKyAgICB7RmVhdHVyZTo6U3VwcG9ydHNFeHRlcm5hbFNl
bWFwaG9yZUZ1Y2hzaWEsICJzdXBwb3J0c0V4dGVybmFsU2VtYXBob3JlRnVjaHNpYSJ9LAorICAg
IHtGZWF0dXJlOjpTdXBwb3J0c0ZpbHRlcmluZ1ByZWNpc2lvbiwgInN1cHBvcnRzRmlsdGVyaW5n
UHJlY2lzaW9uIn0sCisgICAge0ZlYXR1cmU6OlN1cHBvcnRzRnJhZ21lbnRTaGFkaW5nUmF0ZSwg
InN1cHBvcnRzRnJhZ21lbnRTaGFkaW5nUmF0ZSJ9LAorICAgIHtGZWF0dXJlOjpTdXBwb3J0c0dl
b21ldHJ5U3RyZWFtc0NhcGFiaWxpdHksICJzdXBwb3J0c0dlb21ldHJ5U3RyZWFtc0NhcGFiaWxp
dHkifSwKKyAgICB7RmVhdHVyZTo6U3VwcG9ydHNHR1BGcmFtZVRva2VuLCAic3VwcG9ydHNHR1BG
cmFtZVRva2VuIn0sCisgICAge0ZlYXR1cmU6OlN1cHBvcnRzSG9zdFF1ZXJ5UmVzZXQsICJzdXBw
b3J0c0hvc3RRdWVyeVJlc2V0In0sCisgICAge0ZlYXR1cmU6OlN1cHBvcnRzSW1hZ2VDdWJlQXJy
YXksICJzdXBwb3J0c0ltYWdlQ3ViZUFycmF5In0sCisgICAge0ZlYXR1cmU6OlN1cHBvcnRzSW1h
Z2VGb3JtYXRMaXN0LCAic3VwcG9ydHNJbWFnZUZvcm1hdExpc3QifSwKKyAgICB7RmVhdHVyZTo6
U3VwcG9ydHNJbmNyZW1lbnRhbFByZXNlbnQsICJzdXBwb3J0c0luY3JlbWVudGFsUHJlc2VudCJ9
LAorICAgIHtGZWF0dXJlOjpTdXBwb3J0c0luZGV4VHlwZVVpbnQ4LCAic3VwcG9ydHNJbmRleFR5
cGVVaW50OCJ9LAorICAgIHtGZWF0dXJlOjpTdXBwb3J0c0xvY2tTdXJmYWNlRXh0ZW5zaW9uLCAi
c3VwcG9ydHNMb2NrU3VyZmFjZUV4dGVuc2lvbiJ9LAorICAgIHtGZWF0dXJlOjpTdXBwb3J0c011
bHRpRHJhd0luZGlyZWN0LCAic3VwcG9ydHNNdWx0aURyYXdJbmRpcmVjdCJ9LAorICAgIHtGZWF0
dXJlOjpTdXBwb3J0c011bHRpc2FtcGxlZFJlbmRlclRvU2luZ2xlU2FtcGxlZCwKKyAgICAgInN1
cHBvcnRzTXVsdGlzYW1wbGVkUmVuZGVyVG9TaW5nbGVTYW1wbGVkIn0sCisgICAge0ZlYXR1cmU6
OlN1cHBvcnRzTXVsdGl2aWV3LCAic3VwcG9ydHNNdWx0aXZpZXcifSwKKyAgICB7RmVhdHVyZTo6
U3VwcG9ydHNOZWdhdGl2ZVZpZXdwb3J0LCAic3VwcG9ydHNOZWdhdGl2ZVZpZXdwb3J0In0sCisg
ICAge0ZlYXR1cmU6OlN1cHBvcnRzUGlwZWxpbmVTdGF0aXN0aWNzUXVlcnksICJzdXBwb3J0c1Bp
cGVsaW5lU3RhdGlzdGljc1F1ZXJ5In0sCisgICAge0ZlYXR1cmU6OlN1cHBvcnRzUHJvdGVjdGVk
TWVtb3J5LCAic3VwcG9ydHNQcm90ZWN0ZWRNZW1vcnkifSwKKyAgICB7RmVhdHVyZTo6U3VwcG9y
dHNSZW5kZXJwYXNzMiwgInN1cHBvcnRzUmVuZGVycGFzczIifSwKKyAgICB7RmVhdHVyZTo6U3Vw
cG9ydHNSZW5kZXJQYXNzTG9hZFN0b3JlT3BOb25lLCAic3VwcG9ydHNSZW5kZXJQYXNzTG9hZFN0
b3JlT3BOb25lIn0sCisgICAge0ZlYXR1cmU6OlN1cHBvcnRzUmVuZGVyUGFzc1N0b3JlT3BOb25l
LCAic3VwcG9ydHNSZW5kZXJQYXNzU3RvcmVPcE5vbmUifSwKKyAgICB7RmVhdHVyZTo6U3VwcG9y
dHNTaGFkZXJGbG9hdDE2LCAic3VwcG9ydHNTaGFkZXJGbG9hdDE2In0sCisgICAge0ZlYXR1cmU6
OlN1cHBvcnRzU2hhZGVyRnJhbWVidWZmZXJGZXRjaCwgInN1cHBvcnRzU2hhZGVyRnJhbWVidWZm
ZXJGZXRjaCJ9LAorICAgIHtGZWF0dXJlOjpTdXBwb3J0c1NoYWRlckZyYW1lYnVmZmVyRmV0Y2hO
b25Db2hlcmVudCwKKyAgICAgInN1cHBvcnRzU2hhZGVyRnJhbWVidWZmZXJGZXRjaE5vbkNvaGVy
ZW50In0sCisgICAge0ZlYXR1cmU6OlN1cHBvcnRzU2hhZGVyU3RlbmNpbEV4cG9ydCwgInN1cHBv
cnRzU2hhZGVyU3RlbmNpbEV4cG9ydCJ9LAorICAgIHtGZWF0dXJlOjpTdXBwb3J0c1NoYXJlZFBy
ZXNlbnRhYmxlSW1hZ2VFeHRlbnNpb24sICJzdXBwb3J0c1NoYXJlZFByZXNlbnRhYmxlSW1hZ2VF
eHRlbnNpb24ifSwKKyAgICB7RmVhdHVyZTo6U3VwcG9ydHNTdXJmYWNlQ2FwYWJpbGl0aWVzMkV4
dGVuc2lvbiwgInN1cHBvcnRzU3VyZmFjZUNhcGFiaWxpdGllczJFeHRlbnNpb24ifSwKKyAgICB7
RmVhdHVyZTo6U3VwcG9ydHNTdXJmYWNlbGVzc1F1ZXJ5RXh0ZW5zaW9uLCAic3VwcG9ydHNTdXJm
YWNlbGVzc1F1ZXJ5RXh0ZW5zaW9uIn0sCisgICAge0ZlYXR1cmU6OlN1cHBvcnRzU3VyZmFjZVBy
b3RlY3RlZENhcGFiaWxpdGllc0V4dGVuc2lvbiwKKyAgICAgInN1cHBvcnRzU3VyZmFjZVByb3Rl
Y3RlZENhcGFiaWxpdGllc0V4dGVuc2lvbiJ9LAorICAgIHtGZWF0dXJlOjpTdXBwb3J0c1N1cmZh
Y2VQcm90ZWN0ZWRTd2FwY2hhaW5zLCAic3VwcG9ydHNTdXJmYWNlUHJvdGVjdGVkU3dhcGNoYWlu
cyJ9LAorICAgIHtGZWF0dXJlOjpTdXBwb3J0c1RyYW5zZm9ybUZlZWRiYWNrRXh0ZW5zaW9uLCAi
c3VwcG9ydHNUcmFuc2Zvcm1GZWVkYmFja0V4dGVuc2lvbiJ9LAorICAgIHtGZWF0dXJlOjpTdXBw
b3J0c1lVVlNhbXBsZXJDb252ZXJzaW9uLCAic3VwcG9ydHNZVVZTYW1wbGVyQ29udmVyc2lvbiJ9
LAorICAgIHtGZWF0dXJlOjpTd2FwYnVmZmVyc09uRmx1c2hPckZpbmlzaFdpdGhTaW5nbGVCdWZm
ZXIsCisgICAgICJzd2FwYnVmZmVyc09uRmx1c2hPckZpbmlzaFdpdGhTaW5nbGVCdWZmZXIifSwK
KyAgICB7RmVhdHVyZTo6U3luY1ZlcnRleEFycmF5c1RvRGVmYXVsdCwgInN5bmNWZXJ0ZXhBcnJh
eXNUb0RlZmF1bHQifSwKKyAgICB7RmVhdHVyZTo6VW5iaW5kRkJPQmVmb3JlU3dpdGNoaW5nQ29u
dGV4dCwgInVuYmluZEZCT0JlZm9yZVN3aXRjaGluZ0NvbnRleHQifSwKKyAgICB7RmVhdHVyZTo6
VW5mb2xkU2hvcnRDaXJjdWl0cywgInVuZm9sZFNob3J0Q2lyY3VpdHMifSwKKyAgICB7RmVhdHVy
ZTo6VW5wYWNrTGFzdFJvd1NlcGFyYXRlbHlGb3JQYWRkaW5nSW5jbHVzaW9uLAorICAgICAidW5w
YWNrTGFzdFJvd1NlcGFyYXRlbHlGb3JQYWRkaW5nSW5jbHVzaW9uIn0sCisgICAge0ZlYXR1cmU6
OlVucGFja092ZXJsYXBwaW5nUm93c1NlcGFyYXRlbHlVbnBhY2tCdWZmZXIsCisgICAgICJ1bnBh
Y2tPdmVybGFwcGluZ1Jvd3NTZXBhcmF0ZWx5VW5wYWNrQnVmZmVyIn0sCisgICAge0ZlYXR1cmU6
OlVuc2l6ZWRTUkdCUmVhZFBpeGVsc0RvZXNudFRyYW5zZm9ybSwgInVuc2l6ZWRTUkdCUmVhZFBp
eGVsc0RvZXNudFRyYW5zZm9ybSJ9LAorICAgIHtGZWF0dXJlOjpVcGxvYWRUZXh0dXJlRGF0YUlu
Q2h1bmtzLCAidXBsb2FkVGV4dHVyZURhdGFJbkNodW5rcyJ9LAorICAgIHtGZWF0dXJlOjpVc2VJ
bnN0YW5jZWRQb2ludFNwcml0ZUVtdWxhdGlvbiwgInVzZUluc3RhbmNlZFBvaW50U3ByaXRlRW11
bGF0aW9uIn0sCisgICAge0ZlYXR1cmU6OlVzZU11bHRpcGxlRGVzY3JpcHRvcnNGb3JFeHRlcm5h
bEZvcm1hdHMsICJ1c2VNdWx0aXBsZURlc2NyaXB0b3JzRm9yRXh0ZXJuYWxGb3JtYXRzIn0sCisg
ICAge0ZlYXR1cmU6OlVzZVN5c3RlbU1lbW9yeUZvckNvbnN0YW50QnVmZmVycywgInVzZVN5c3Rl
bU1lbW9yeUZvckNvbnN0YW50QnVmZmVycyJ9LAorICAgIHtGZWF0dXJlOjpVc2VVbnVzZWRCbG9j
a3NXaXRoU3RhbmRhcmRPclNoYXJlZExheW91dCwKKyAgICAgInVzZVVudXNlZEJsb2Nrc1dpdGhT
dGFuZGFyZE9yU2hhcmVkTGF5b3V0In0sCisgICAge0ZlYXR1cmU6OlZlcnRleElERG9lc05vdElu
Y2x1ZGVCYXNlVmVydGV4LCAidmVydGV4SUREb2VzTm90SW5jbHVkZUJhc2VWZXJ0ZXgifSwKKyAg
ICB7RmVhdHVyZTo6V2FpdElkbGVCZWZvcmVTd2FwY2hhaW5SZWNyZWF0aW9uLCAid2FpdElkbGVC
ZWZvcmVTd2FwY2hhaW5SZWNyZWF0aW9uIn0sCisgICAge0ZlYXR1cmU6Olplcm9NYXhMb2RXb3Jr
YXJvdW5kLCAiemVyb01heExvZFdvcmthcm91bmQifSwKK319OworfSAgLy8gYW5vbnltb3VzIG5h
bWVzcGFjZQorCitjb25zdCBjaGFyICpHZXRGZWF0dXJlTmFtZShGZWF0dXJlIGZlYXR1cmUpCit7
CisgICAgcmV0dXJuIGtGZWF0dXJlTmFtZXNbZmVhdHVyZV07Cit9CisKK30gIC8vIG5hbWVzcGFj
ZSBhbmdsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvdXRpbC9hbmdsZV9m
ZWF0dXJlc19hdXRvZ2VuLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS91dGlsL2FuZ2xlX2Zl
YXR1cmVzX2F1dG9nZW4uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNTkzYTMxNTAyZTRiZDIwMDJlYjIwZGIxMWEx
YzBkNTgyMjVkMTM3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUv
dXRpbC9hbmdsZV9mZWF0dXJlc19hdXRvZ2VuLmgKQEAgLTAsMCArMSwyNjAgQEAKKy8vIEdFTkVS
QVRFRCBGSUxFIC0gRE8gTk9UIEVESVQuCisvLyBHZW5lcmF0ZWQgYnkgZ2VuX2ZlYXR1cmVzLnB5
IHVzaW5nIGRhdGEgZnJvbSAqX2ZlYXR1cmVzLmpzb24uCisvLworLy8gQ29weXJpZ2h0IDIwMjIg
VGhlIEFOR0xFIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFVzZSBv
ZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhh
dCBjYW4gYmUKKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisvLworLy8gYW5nbGVfZmVh
dHVyZXNfYXV0b2dlbi5oOiBMaXN0IG9mIEFOR0xFIGZlYXR1cmVzIHRvIGhlbHAgZW5hYmxlL2Rp
c2FibGUgdGhlbSBpbiB0ZXN0cy4KKworI2lmbmRlZiBBTkdMRV9TUkNfVEVTVFNfVEVTVF9VVElM
U19BTkdMRV9GRUFUVVJFU19BVVRPR0VOX0hfCisjZGVmaW5lIEFOR0xFX1NSQ19URVNUU19URVNU
X1VUSUxTX0FOR0xFX0ZFQVRVUkVTX0FVVE9HRU5fSF8KKworI2luY2x1ZGUgInV0aWxfZXhwb3J0
LmgiCisKK25hbWVzcGFjZSBhbmdsZQoreworZW51bSBjbGFzcyBGZWF0dXJlCit7CisgICAgQWRk
QW5kVHJ1ZVRvTG9vcENvbmRpdGlvbiwKKyAgICBBZGRNb2NrVGV4dHVyZU5vUmVuZGVyVGFyZ2V0
LAorICAgIEFkanVzdFNyY0RzdFJlZ2lvbkZvckJsaXRGcmFtZWJ1ZmZlciwKKyAgICBBbGxvY2F0
ZU5vblplcm9NZW1vcnksCisgICAgQWxsb3dCdWZmZXJSZWFkV3JpdGUsCisgICAgQWxsb3dDbGVh
ckZvclJvYnVzdFJlc291cmNlSW5pdCwKKyAgICBBbGxvd0NvbXByZXNzZWRGb3JtYXRzLAorICAg
IEFsbG93RVMzT25GTDEwMCwKKyAgICBBbGxvd0VUQ0Zvcm1hdHMsCisgICAgQWxsb3dHZW5lcmF0
ZU1pcG1hcFdpdGhDb21wdXRlLAorICAgIEFsbG93R2VuTXVsdGlwbGVNaXBzUGVyUGFzcywKKyAg
ICBBbGxvd0lubGluZUNvbnN0VmVydGV4RGF0YSwKKyAgICBBbGxvd011bHRpc2FtcGxlU3RvcmVB
bmRSZXNvbHZlLAorICAgIEFsbG93UnVudGltZVNhbXBsZXJDb21wYXJlTW9kZSwKKyAgICBBbGxv
d1NhbXBsZXJDb21wYXJlR3JhZGllbnQsCisgICAgQWxsb3dTYW1wbGVyQ29tcGFyZUxvZCwKKyAg
ICBBbGxvd1NlcGFyYXRlRGVwdGhTdGVuY2lsQnVmZmVycywKKyAgICBBbGxvd1RyYW5zbGF0ZVVu
aWZvcm1CbG9ja1RvU3RydWN0dXJlZEJ1ZmZlciwKKyAgICBBbHdheXNDYWxsVXNlUHJvZ3JhbUFm
dGVyTGluaywKKyAgICBBbHdheXNVbmJpbmRGcmFtZWJ1ZmZlclRleHR1cmUyRCwKKyAgICBBc3lu
Y0NvbW1hbmRRdWV1ZSwKKyAgICBBdm9pZDFCaXRBbHBoYVRleHR1cmVGb3JtYXRzLAorICAgIEJh
c2ljR0xMaW5lUmFzdGVyaXphdGlvbiwKKyAgICBCaW5kRW1wdHlGb3JVbnVzZWREZXNjcmlwdG9y
U2V0cywKKyAgICBCaW5kVHJhbnNmb3JtRmVlZGJhY2tCdWZmZXJCZWZvcmVCaW5kQnVmZmVyUmFu
Z2UsCisgICAgQm90dG9tTGVmdE9yaWdpblByZXNlbnRSZWdpb25SZWN0YW5nbGVzLAorICAgIEJy
ZXNlbmhhbUxpbmVSYXN0ZXJpemF0aW9uLAorICAgIENhbGxDbGVhclR3aWNlLAorICAgIENsYW1w
QXJyYXlBY2Nlc3MsCisgICAgQ2xhbXBGcmFnRGVwdGgsCisgICAgQ2xhbXBNc2NSYXRlLAorICAg
IENsYW1wUG9pbnRTaXplLAorICAgIENsZWFyVG9aZXJvT3JPbmVCcm9rZW4sCisgICAgQ2xpcFNy
Y1JlZ2lvbkZvckJsaXRGcmFtZWJ1ZmZlciwKKyAgICBDb21wcmVzc1ZlcnRleERhdGEsCisgICAg
Q29weUlPU3VyZmFjZVRvTm9uSU9TdXJmYWNlRm9yUmVhZE9wdGltaXphdGlvbiwKKyAgICBDcmVh
dGVQaXBlbGluZUR1cmluZ0xpbmssCisgICAgRGVjb2RlRW5jb2RlU1JHQkZvckdlbmVyYXRlTWlw
bWFwLAorICAgIERlZmVyRmx1c2hVbnRpbEVuZFJlbmRlclBhc3MsCisgICAgRGVwdGhDbGFtcGlu
ZywKKyAgICBEZXB0aFN0ZW5jaWxCbGl0RXh0cmFDb3B5LAorICAgIERpcmVjdE1ldGFsR2VuZXJh
dGlvbiwKKyAgICBEaXNhYmxlQW5pc290cm9waWNGaWx0ZXJpbmcsCisgICAgRGlzYWJsZUI1RzZS
NVN1cHBvcnQsCisgICAgRGlzYWJsZUJsZW5kRnVuY0V4dGVuZGVkLAorICAgIERpc2FibGVEcmF3
QnVmZmVyc0luZGV4ZWQsCisgICAgRGlzYWJsZUZpZm9QcmVzZW50TW9kZSwKKyAgICBEaXNhYmxl
RmxpcHBpbmdCbGl0V2l0aENvbW1hbmQsCisgICAgRGlzYWJsZUdQVVN3aXRjaGluZ1N1cHBvcnQs
CisgICAgRGlzYWJsZU11bHRpc2FtcGxlZFJlbmRlclRvVGV4dHVyZSwKKyAgICBEaXNhYmxlTmF0
aXZlUGFyYWxsZWxDb21waWxlLAorICAgIERpc2FibGVQcm9ncmFtQmluYXJ5LAorICAgIERpc2Fi
bGVQcm9ncmFtQ2FjaGluZ0ZvclRyYW5zZm9ybUZlZWRiYWNrLAorICAgIERpc2FibGVTZW1hcGhv
cmVGZCwKKyAgICBEaXNhYmxlU3luY0NvbnRyb2xTdXBwb3J0LAorICAgIERpc2FibGVUaW1lc3Rh
bXBRdWVyaWVzLAorICAgIERpc2FibGVXb3JrZXJDb250ZXh0cywKKyAgICBEaXNhbGxvd1NlYW1m
dWxDdWJlTWFwRW11bGF0aW9uLAorICAgIERvZXNTUkdCQ2xlYXJzT25MaW5lYXJGcmFtZWJ1ZmZl
ckF0dGFjaG1lbnRzLAorICAgIERvbnRJbml0aWFsaXplVW5pbml0aWFsaXplZExvY2FscywKKyAg
ICBEb250UmVsaW5rUHJvZ3JhbXNJblBhcmFsbGVsLAorICAgIERvbnRVc2VMb29wc1RvSW5pdGlh
bGl6ZVZhcmlhYmxlcywKKyAgICBEb1doaWxlR0xTTENhdXNlc0dQVUhhbmcsCisgICAgRW11bGF0
ZUFic0ludEZ1bmN0aW9uLAorICAgIEVtdWxhdGVBZHZhbmNlZEJsZW5kRXF1YXRpb25zLAorICAg
IEVtdWxhdGVBdGFuMkZsb2F0LAorICAgIEVtdWxhdGVDb3B5VGV4SW1hZ2UyREZyb21SZW5kZXJi
dWZmZXJzLAorICAgIEVtdWxhdGVEaXRoZXJpbmcsCisgICAgRW11bGF0ZWRQcmVyb3RhdGlvbjE4
MCwKKyAgICBFbXVsYXRlZFByZXJvdGF0aW9uMjcwLAorICAgIEVtdWxhdGVkUHJlcm90YXRpb245
MCwKKyAgICBFbXVsYXRlSW1tdXRhYmxlQ29tcHJlc3NlZFRleHR1cmUzRCwKKyAgICBFbXVsYXRl
SXNuYW5GbG9hdCwKKyAgICBFbXVsYXRlTWF4VmVydGV4QXR0cmliU3RyaWRlLAorICAgIEVtdWxh
dGVQYWNrU2tpcFJvd3NBbmRQYWNrU2tpcFBpeGVscywKKyAgICBFbXVsYXRlUHJpbWl0aXZlUmVz
dGFydEZpeGVkSW5kZXgsCisgICAgRW11bGF0ZVIzMmZJbWFnZUF0b21pY0V4Y2hhbmdlLAorICAg
IEVtdWxhdGVSR0IxMCwKKyAgICBFbXVsYXRlVGlueVN0ZW5jaWxUZXh0dXJlcywKKyAgICBFbXVs
YXRlVHJhbnNmb3JtRmVlZGJhY2ssCisgICAgRW5hYmxlQ2FwdHVyZUxpbWl0cywKKyAgICBFbmFi
bGVDb21wcmVzc2luZ1BpcGVsaW5lQ2FjaGVJblRocmVhZFBvb2wsCisgICAgRW5hYmxlTXVsdGlz
YW1wbGVkUmVuZGVyVG9UZXh0dXJlLAorICAgIEVuYWJsZVByZWNpc2lvblF1YWxpZmllcnMsCisg
ICAgRW5hYmxlUHJlUm90YXRlU3VyZmFjZXMsCisgICAgRW5hYmxlUHJvZ3JhbUJpbmFyeUZvckNh
cHR1cmUsCisgICAgRXhwYW5kSW50ZWdlclBvd0V4cHJlc3Npb25zLAorICAgIEV4cG9zZU5vbkNv
bmZvcm1hbnRFeHRlbnNpb25zQW5kVmVyc2lvbnMsCisgICAgRmluaXNoRG9lc05vdENhdXNlUXVl
cmllc1RvQmVBdmFpbGFibGUsCisgICAgRmx1c2hBZnRlckVuZGluZ1RyYW5zZm9ybUZlZWRiYWNr
LAorICAgIEZsdXNoQmVmb3JlRGVsZXRlVGV4dHVyZUlmQ29waWVkVG8sCisgICAgRmx1c2hPbkZy
YW1lYnVmZmVyQ2hhbmdlLAorICAgIEZvcmNlQXRvbWljVmFsdWVSZXNvbHV0aW9uLAorICAgIEZv
cmNlQnVmZmVyR1BVU3RvcmFnZSwKKyAgICBGb3JjZUQxNlRleEZpbHRlciwKKyAgICBGb3JjZUQy
NFM4QXNVbnN1cHBvcnRlZCwKKyAgICBGb3JjZURyaXZlclVuaWZvcm1PdmVyU3BlY0NvbnN0LAor
ICAgIEZvcmNlRmFsbGJhY2tGb3JtYXQsCisgICAgRm9yY2VGcmFnbWVudFNoYWRlclByZWNpc2lv
bkhpZ2hwVG9NZWRpdW1wLAorICAgIEZvcmNlSW5pdFNoYWRlclZhcmlhYmxlcywKKyAgICBGb3Jj
ZU1heFVuaWZvcm1CdWZmZXJTaXplMTZLQiwKKyAgICBGb3JjZU5lYXJlc3RGaWx0ZXJpbmcsCisg
ICAgRm9yY2VOZWFyZXN0TWlwRmlsdGVyaW5nLAorICAgIEZvcmNlTm9uQ1NCYXNlTWlwbWFwR2Vu
ZXJhdGlvbiwKKyAgICBGb3JjZVJvYnVzdFJlc291cmNlSW5pdCwKKyAgICBGb3JjZVN1Ym1pdElt
bXV0YWJsZVRleHR1cmVVcGRhdGVzLAorICAgIEZvcmNlVGV4dHVyZUxvZE9mZnNldDEsCisgICAg
Rm9yY2VUZXh0dXJlTG9kT2Zmc2V0MiwKKyAgICBGb3JjZVRleHR1cmVMb2RPZmZzZXQzLAorICAg
IEZvcmNlVGV4dHVyZUxvZE9mZnNldDQsCisgICAgR2VuZXJhdGVTUElSVlRocm91Z2hHbHNsYW5n
LAorICAgIEdldERpbWVuc2lvbnNJZ25vcmVzQmFzZUxldmVsLAorICAgIEhhc0Jhc2VWZXJ0ZXhJ
bnN0YW5jZWREcmF3LAorICAgIEhhc0NoZWFwUmVuZGVyUGFzcywKKyAgICBIYXNEZXB0aEF1dG9S
ZXNvbHZlLAorICAgIEhhc0V2ZW50cywKKyAgICBIYXNFeHBsaWNpdE1lbUJhcnJpZXIsCisgICAg
SGFzTm9uVW5pZm9ybURpc3BhdGNoLAorICAgIEhhc1NoYWRlclN0ZW5jaWxPdXRwdXQsCisgICAg
SGFzU3RlbmNpbEF1dG9SZXNvbHZlLAorICAgIEhhc1RleHR1cmVTd2l6emxlLAorICAgIEluaXRG
cmFnbWVudE91dHB1dFZhcmlhYmxlcywKKyAgICBJbml0aWFsaXplQ3VycmVudFZlcnRleEF0dHJp
YnV0ZXMsCisgICAgSW50ZWxEaXNhYmxlRmFzdE1hdGgsCisgICAgSW50ZWxFeHBsaWNpdEJvb2xD
YXN0V29ya2Fyb3VuZCwKKyAgICBLZWVwQnVmZmVyU2hhZG93Q29weSwKKyAgICBMaW1pdE1heDNk
QXJyYXlUZXh0dXJlU2l6ZVRvMTAyNCwKKyAgICBMaW1pdE1heE1TQUFTYW1wbGVzVG80LAorICAg
IExpbWl0TWF4VGV4dHVyZVNpemVUbzQwOTYsCisgICAgTG9nTWVtb3J5UmVwb3J0Q2FsbGJhY2tz
LAorICAgIExvZ01lbW9yeVJlcG9ydFN0YXRzLAorICAgIExvc2VDb250ZXh0T25PdXRPZk1lbW9y
eSwKKyAgICBNcnRQZXJmV29ya2Fyb3VuZCwKKyAgICBNdWx0aXNhbXBsZUNvbG9yRm9ybWF0U2hh
ZGVyUmVhZFdvcmthcm91bmQsCisgICAgT3ZlcnJpZGVTdXJmYWNlRm9ybWF0UkdCOFRvUkdCQTgs
CisgICAgUGFja0xhc3RSb3dTZXBhcmF0ZWx5Rm9yUGFkZGluZ0luY2x1c2lvbiwKKyAgICBQYWNr
T3ZlcmxhcHBpbmdSb3dzU2VwYXJhdGVseVBhY2tCdWZmZXIsCisgICAgUGFkQnVmZmVyc1RvTWF4
VmVydGV4QXR0cmliU3RyaWRlLAorICAgIFBlckZyYW1lV2luZG93U2l6ZVF1ZXJ5LAorICAgIFBl
cnNpc3RlbnRseU1hcHBlZEJ1ZmZlcnMsCisgICAgUHJlQWRkVGV4ZWxGZXRjaE9mZnNldHMsCisg
ICAgUHJlZmVyQWdncmVnYXRlQmFycmllckNhbGxzLAorICAgIFByZWZlckNQVUZvckJ1ZmZlclN1
YkRhdGEsCisgICAgUHJlZmVyRGV2aWNlTG9jYWxNZW1vcnlIb3N0VmlzaWJsZSwKKyAgICBQcmVm
ZXJEcmF3Q2xlYXJPdmVyVmtDbWRDbGVhckF0dGFjaG1lbnRzLAorICAgIFByZWZlclNraXBwaW5n
SW52YWxpZGF0ZUZvckVtdWxhdGVkRm9ybWF0cywKKyAgICBQcmVmZXJTdWJtaXRBdEZCT0JvdW5k
YXJ5LAorICAgIFByb21vdGVQYWNrZWRGb3JtYXRzVG84Qml0UGVyQ2hhbm5lbCwKKyAgICBQcm92
b2tpbmdWZXJ0ZXgsCisgICAgUXVlcnlDb3VudGVyQml0c0dlbmVyYXRlc0Vycm9ycywKKyAgICBS
ZWFkUGl4ZWxzVXNpbmdJbXBsZW1lbnRhdGlvbkNvbG9yUmVhZEZvcm1hdEZvck5vcm0xNiwKKyAg
ICBSZWFwcGx5VUJPQmluZGluZ3NBZnRlclVzaW5nQmluYXJ5UHJvZ3JhbSwKKyAgICBSZWdlbmVy
YXRlU3RydWN0TmFtZXMsCisgICAgUmVtb3ZlRHluYW1pY0luZGV4aW5nT2ZTd2l6emxlZFZlY3Rv
ciwKKyAgICBSZW1vdmVJbnZhcmlhbnRBbmRDZW50cm9pZEZvckVTU0wzLAorICAgIFJlc2V0VGV4
SW1hZ2UyREJhc2VMZXZlbCwKKyAgICBSZXRhaW5TUElSVkRlYnVnSW5mbywKKyAgICBSZXdyaXRl
RmxvYXRVbmFyeU1pbnVzT3BlcmF0b3IsCisgICAgUmV3cml0ZVJlcGVhdGVkQXNzaWduVG9Td2l6
emxlZCwKKyAgICBSZXdyaXRlUm93TWFqb3JNYXRyaWNlcywKKyAgICBSZXdyaXRlVW5hcnlNaW51
c09wZXJhdG9yLAorICAgIFJHQkE0SXNOb3RTdXBwb3J0ZWRGb3JDb2xvclJlbmRlcmluZywKKyAg
ICBSR0JEWFQxVGV4dHVyZXNTYW1wbGVaZXJvQWxwaGEsCisgICAgU2FuaXRpemVBTURHUFVSZW5k
ZXJlclN0cmluZywKKyAgICBTY2FsYXJpemVWZWNBbmRNYXRDb25zdHJ1Y3RvckFyZ3MsCisgICAg
U2VsZWN0Vmlld0luR2VvbWV0cnlTaGFkZXIsCisgICAgU2V0RGF0YUZhc3RlclRoYW5JbWFnZVVw
bG9hZCwKKyAgICBTZXRQcmltaXRpdmVSZXN0YXJ0Rml4ZWRJbmRleEZvckRyYXdBcnJheXMsCisg
ICAgU2V0WmVyb0xldmVsQmVmb3JlR2VuZXJhdGVNaXBtYXAsCisgICAgU2hhZG93QnVmZmVycywK
KyAgICBTaGlmdEluc3RhbmNlZEFycmF5RGF0YVdpdGhPZmZzZXQsCisgICAgU2tpcFZTQ29uc3Rh
bnRSZWdpc3Rlclplcm8sCisgICAgU3VwcG9ydHNBbmRyb2lkSGFyZHdhcmVCdWZmZXIsCisgICAg
U3VwcG9ydHNBbmRyb2lkTmF0aXZlRmVuY2VTeW5jLAorICAgIFN1cHBvcnRzQmxlbmRPcGVyYXRp
b25BZHZhbmNlZCwKKyAgICBTdXBwb3J0c0N1c3RvbUJvcmRlckNvbG9yLAorICAgIFN1cHBvcnRz
RGVwdGhDbGlwQ29udHJvbCwKKyAgICBTdXBwb3J0c0RlcHRoU3RlbmNpbFJlc29sdmUsCisgICAg
U3VwcG9ydHNFeHRlcm5hbEZlbmNlQ2FwYWJpbGl0aWVzLAorICAgIFN1cHBvcnRzRXh0ZXJuYWxG
ZW5jZUZkLAorICAgIFN1cHBvcnRzRXh0ZXJuYWxNZW1vcnlEbWFCdWZBbmRNb2RpZmllcnMsCisg
ICAgU3VwcG9ydHNFeHRlcm5hbE1lbW9yeUZkLAorICAgIFN1cHBvcnRzRXh0ZXJuYWxNZW1vcnlG
dWNoc2lhLAorICAgIFN1cHBvcnRzRXh0ZXJuYWxNZW1vcnlIb3N0LAorICAgIFN1cHBvcnRzRXh0
ZXJuYWxTZW1hcGhvcmVDYXBhYmlsaXRpZXMsCisgICAgU3VwcG9ydHNFeHRlcm5hbFNlbWFwaG9y
ZUZkLAorICAgIFN1cHBvcnRzRXh0ZXJuYWxTZW1hcGhvcmVGdWNoc2lhLAorICAgIFN1cHBvcnRz
RmlsdGVyaW5nUHJlY2lzaW9uLAorICAgIFN1cHBvcnRzRnJhZ21lbnRTaGFkaW5nUmF0ZSwKKyAg
ICBTdXBwb3J0c0dlb21ldHJ5U3RyZWFtc0NhcGFiaWxpdHksCisgICAgU3VwcG9ydHNHR1BGcmFt
ZVRva2VuLAorICAgIFN1cHBvcnRzSG9zdFF1ZXJ5UmVzZXQsCisgICAgU3VwcG9ydHNJbWFnZUN1
YmVBcnJheSwKKyAgICBTdXBwb3J0c0ltYWdlRm9ybWF0TGlzdCwKKyAgICBTdXBwb3J0c0luY3Jl
bWVudGFsUHJlc2VudCwKKyAgICBTdXBwb3J0c0luZGV4VHlwZVVpbnQ4LAorICAgIFN1cHBvcnRz
TG9ja1N1cmZhY2VFeHRlbnNpb24sCisgICAgU3VwcG9ydHNNdWx0aURyYXdJbmRpcmVjdCwKKyAg
ICBTdXBwb3J0c011bHRpc2FtcGxlZFJlbmRlclRvU2luZ2xlU2FtcGxlZCwKKyAgICBTdXBwb3J0
c011bHRpdmlldywKKyAgICBTdXBwb3J0c05lZ2F0aXZlVmlld3BvcnQsCisgICAgU3VwcG9ydHNQ
aXBlbGluZVN0YXRpc3RpY3NRdWVyeSwKKyAgICBTdXBwb3J0c1Byb3RlY3RlZE1lbW9yeSwKKyAg
ICBTdXBwb3J0c1JlbmRlcnBhc3MyLAorICAgIFN1cHBvcnRzUmVuZGVyUGFzc0xvYWRTdG9yZU9w
Tm9uZSwKKyAgICBTdXBwb3J0c1JlbmRlclBhc3NTdG9yZU9wTm9uZSwKKyAgICBTdXBwb3J0c1No
YWRlckZsb2F0MTYsCisgICAgU3VwcG9ydHNTaGFkZXJGcmFtZWJ1ZmZlckZldGNoLAorICAgIFN1
cHBvcnRzU2hhZGVyRnJhbWVidWZmZXJGZXRjaE5vbkNvaGVyZW50LAorICAgIFN1cHBvcnRzU2hh
ZGVyU3RlbmNpbEV4cG9ydCwKKyAgICBTdXBwb3J0c1NoYXJlZFByZXNlbnRhYmxlSW1hZ2VFeHRl
bnNpb24sCisgICAgU3VwcG9ydHNTdXJmYWNlQ2FwYWJpbGl0aWVzMkV4dGVuc2lvbiwKKyAgICBT
dXBwb3J0c1N1cmZhY2VsZXNzUXVlcnlFeHRlbnNpb24sCisgICAgU3VwcG9ydHNTdXJmYWNlUHJv
dGVjdGVkQ2FwYWJpbGl0aWVzRXh0ZW5zaW9uLAorICAgIFN1cHBvcnRzU3VyZmFjZVByb3RlY3Rl
ZFN3YXBjaGFpbnMsCisgICAgU3VwcG9ydHNUcmFuc2Zvcm1GZWVkYmFja0V4dGVuc2lvbiwKKyAg
ICBTdXBwb3J0c1lVVlNhbXBsZXJDb252ZXJzaW9uLAorICAgIFN3YXBidWZmZXJzT25GbHVzaE9y
RmluaXNoV2l0aFNpbmdsZUJ1ZmZlciwKKyAgICBTeW5jVmVydGV4QXJyYXlzVG9EZWZhdWx0LAor
ICAgIFVuYmluZEZCT0JlZm9yZVN3aXRjaGluZ0NvbnRleHQsCisgICAgVW5mb2xkU2hvcnRDaXJj
dWl0cywKKyAgICBVbnBhY2tMYXN0Um93U2VwYXJhdGVseUZvclBhZGRpbmdJbmNsdXNpb24sCisg
ICAgVW5wYWNrT3ZlcmxhcHBpbmdSb3dzU2VwYXJhdGVseVVucGFja0J1ZmZlciwKKyAgICBVbnNp
emVkU1JHQlJlYWRQaXhlbHNEb2VzbnRUcmFuc2Zvcm0sCisgICAgVXBsb2FkVGV4dHVyZURhdGFJ
bkNodW5rcywKKyAgICBVc2VJbnN0YW5jZWRQb2ludFNwcml0ZUVtdWxhdGlvbiwKKyAgICBVc2VN
dWx0aXBsZURlc2NyaXB0b3JzRm9yRXh0ZXJuYWxGb3JtYXRzLAorICAgIFVzZVN5c3RlbU1lbW9y
eUZvckNvbnN0YW50QnVmZmVycywKKyAgICBVc2VVbnVzZWRCbG9ja3NXaXRoU3RhbmRhcmRPclNo
YXJlZExheW91dCwKKyAgICBWZXJ0ZXhJRERvZXNOb3RJbmNsdWRlQmFzZVZlcnRleCwKKyAgICBX
YWl0SWRsZUJlZm9yZVN3YXBjaGFpblJlY3JlYXRpb24sCisgICAgWmVyb01heExvZFdvcmthcm91
bmQsCisKKyAgICBJbnZhbGlkRW51bSwKKyAgICBFbnVtQ291bnQgPSBJbnZhbGlkRW51bSwKK307
CisKK0FOR0xFX1VUSUxfRVhQT1JUIGV4dGVybiBjb25zdCBjaGFyICpHZXRGZWF0dXJlTmFtZShG
ZWF0dXJlIGZlYXR1cmUpOworCit9ICAvLyBuYW1lc3BhY2UgYW5nbGUKKworI2VuZGlmICAvLyBB
TkdMRV9TUkNfVEVTVFNfVEVTVF9VVElMU19BTkdMRV9GRUFUVVJFU19BVVRPR0VOX0hfCmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS91dGlsL2dsZXNfbG9hZGVyX2F1dG9nZW4u
Y3BwIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvdXRpbC9nbGVzX2xvYWRlcl9hdXRvZ2VuLmNw
cAppbmRleCA2ZGQwMjRiYTNmNGFlNzVmNWIyNDUzOGViZDUzNDFjMGU4ZjBkZjk4Li5iZTgyZjQ5
NTE2OGZlZDRiM2M2ZmY4MmIzNTBkNDI4NzRjZmIzMDg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9BTkdMRS91dGlsL2dsZXNfbG9hZGVyX2F1dG9nZW4uY3BwCisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L0FOR0xFL3V0aWwvZ2xlc19sb2FkZXJfYXV0b2dlbi5jcHAKQEAgLTc5Niw2ICs3
OTYsNyBAQCBBTkdMRV9VVElMX0VYUE9SVCBQRk5HTERFTEVURVZFUlRFWEFSUkFZU09FU1BST0Mg
bF9nbERlbGV0ZVZlcnRleEFycmF5c09FUzsKIEFOR0xFX1VUSUxfRVhQT1JUIFBGTkdMR0VOVkVS
VEVYQVJSQVlTT0VTUFJPQyBsX2dsR2VuVmVydGV4QXJyYXlzT0VTOwogQU5HTEVfVVRJTF9FWFBP
UlQgUEZOR0xJU1ZFUlRFWEFSUkFZT0VTUFJPQyBsX2dsSXNWZXJ0ZXhBcnJheU9FUzsKIEFOR0xF
X1VUSUxfRVhQT1JUIFBGTkdMRlJBTUVCVUZGRVJURVhUVVJFTVVMVElWSUVXT1ZSUFJPQyBsX2ds
RnJhbWVidWZmZXJUZXh0dXJlTXVsdGl2aWV3T1ZSOworQU5HTEVfVVRJTF9FWFBPUlQgUEZOR0xT
SEFESU5HUkFURVFDT01QUk9DIGxfZ2xTaGFkaW5nUmF0ZVFDT007CiBBTkdMRV9VVElMX0VYUE9S
VCBQRk5HTERSQVdURVhGT0VTUFJPQyBsX2dsRHJhd1RleGZPRVM7CiBBTkdMRV9VVElMX0VYUE9S
VCBQRk5HTERSQVdURVhGVk9FU1BST0MgbF9nbERyYXdUZXhmdk9FUzsKIEFOR0xFX1VUSUxfRVhQ
T1JUIFBGTkdMRFJBV1RFWElPRVNQUk9DIGxfZ2xEcmF3VGV4aU9FUzsKQEAgLTIxMTMsMTQgKzIx
MTQsMTUgQEAgdm9pZCBMb2FkR0xFUyhMb2FkUHJvYyBsb2FkUHJvYykKICAgICAgICAgcmVpbnRl
cnByZXRfY2FzdDxQRk5HTElTVkVSVEVYQVJSQVlPRVNQUk9DPihsb2FkUHJvYygiZ2xJc1ZlcnRl
eEFycmF5T0VTIikpOwogICAgIGxfZ2xGcmFtZWJ1ZmZlclRleHR1cmVNdWx0aXZpZXdPVlIgPSBy
ZWludGVycHJldF9jYXN0PFBGTkdMRlJBTUVCVUZGRVJURVhUVVJFTVVMVElWSUVXT1ZSUFJPQz4o
CiAgICAgICAgIGxvYWRQcm9jKCJnbEZyYW1lYnVmZmVyVGV4dHVyZU11bHRpdmlld09WUiIpKTsK
LSAgICBsX2dsRHJhd1RleGZPRVMgID0gcmVpbnRlcnByZXRfY2FzdDxQRk5HTERSQVdURVhGT0VT
UFJPQz4obG9hZFByb2MoImdsRHJhd1RleGZPRVMiKSk7Ci0gICAgbF9nbERyYXdUZXhmdk9FUyA9
IHJlaW50ZXJwcmV0X2Nhc3Q8UEZOR0xEUkFXVEVYRlZPRVNQUk9DPihsb2FkUHJvYygiZ2xEcmF3
VGV4ZnZPRVMiKSk7Ci0gICAgbF9nbERyYXdUZXhpT0VTICA9IHJlaW50ZXJwcmV0X2Nhc3Q8UEZO
R0xEUkFXVEVYSU9FU1BST0M+KGxvYWRQcm9jKCJnbERyYXdUZXhpT0VTIikpOwotICAgIGxfZ2xE
cmF3VGV4aXZPRVMgPSByZWludGVycHJldF9jYXN0PFBGTkdMRFJBV1RFWElWT0VTUFJPQz4obG9h
ZFByb2MoImdsRHJhd1RleGl2T0VTIikpOwotICAgIGxfZ2xEcmF3VGV4c09FUyAgPSByZWludGVy
cHJldF9jYXN0PFBGTkdMRFJBV1RFWFNPRVNQUk9DPihsb2FkUHJvYygiZ2xEcmF3VGV4c09FUyIp
KTsKLSAgICBsX2dsRHJhd1RleHN2T0VTID0gcmVpbnRlcnByZXRfY2FzdDxQRk5HTERSQVdURVhT
Vk9FU1BST0M+KGxvYWRQcm9jKCJnbERyYXdUZXhzdk9FUyIpKTsKLSAgICBsX2dsRHJhd1RleHhP
RVMgID0gcmVpbnRlcnByZXRfY2FzdDxQRk5HTERSQVdURVhYT0VTUFJPQz4obG9hZFByb2MoImds
RHJhd1RleHhPRVMiKSk7Ci0gICAgbF9nbERyYXdUZXh4dk9FUyA9IHJlaW50ZXJwcmV0X2Nhc3Q8
UEZOR0xEUkFXVEVYWFZPRVNQUk9DPihsb2FkUHJvYygiZ2xEcmF3VGV4eHZPRVMiKSk7CisgICAg
bF9nbFNoYWRpbmdSYXRlUUNPTSA9IHJlaW50ZXJwcmV0X2Nhc3Q8UEZOR0xTSEFESU5HUkFURVFD
T01QUk9DPihsb2FkUHJvYygiZ2xTaGFkaW5nUmF0ZVFDT00iKSk7CisgICAgbF9nbERyYXdUZXhm
T0VTICAgICA9IHJlaW50ZXJwcmV0X2Nhc3Q8UEZOR0xEUkFXVEVYRk9FU1BST0M+KGxvYWRQcm9j
KCJnbERyYXdUZXhmT0VTIikpOworICAgIGxfZ2xEcmF3VGV4ZnZPRVMgICAgPSByZWludGVycHJl
dF9jYXN0PFBGTkdMRFJBV1RFWEZWT0VTUFJPQz4obG9hZFByb2MoImdsRHJhd1RleGZ2T0VTIikp
OworICAgIGxfZ2xEcmF3VGV4aU9FUyAgICAgPSByZWludGVycHJldF9jYXN0PFBGTkdMRFJBV1RF
WElPRVNQUk9DPihsb2FkUHJvYygiZ2xEcmF3VGV4aU9FUyIpKTsKKyAgICBsX2dsRHJhd1RleGl2
T0VTICAgID0gcmVpbnRlcnByZXRfY2FzdDxQRk5HTERSQVdURVhJVk9FU1BST0M+KGxvYWRQcm9j
KCJnbERyYXdUZXhpdk9FUyIpKTsKKyAgICBsX2dsRHJhd1RleHNPRVMgICAgID0gcmVpbnRlcnBy
ZXRfY2FzdDxQRk5HTERSQVdURVhTT0VTUFJPQz4obG9hZFByb2MoImdsRHJhd1RleHNPRVMiKSk7
CisgICAgbF9nbERyYXdUZXhzdk9FUyAgICA9IHJlaW50ZXJwcmV0X2Nhc3Q8UEZOR0xEUkFXVEVY
U1ZPRVNQUk9DPihsb2FkUHJvYygiZ2xEcmF3VGV4c3ZPRVMiKSk7CisgICAgbF9nbERyYXdUZXh4
T0VTICAgICA9IHJlaW50ZXJwcmV0X2Nhc3Q8UEZOR0xEUkFXVEVYWE9FU1BST0M+KGxvYWRQcm9j
KCJnbERyYXdUZXh4T0VTIikpOworICAgIGxfZ2xEcmF3VGV4eHZPRVMgICAgPSByZWludGVycHJl
dF9jYXN0PFBGTkdMRFJBV1RFWFhWT0VTUFJPQz4obG9hZFByb2MoImdsRHJhd1RleHh2T0VTIikp
OwogICAgIGxfZ2xCaW5kRnJhbWVidWZmZXJPRVMgPQogICAgICAgICByZWludGVycHJldF9jYXN0
PFBGTkdMQklOREZSQU1FQlVGRkVST0VTUFJPQz4obG9hZFByb2MoImdsQmluZEZyYW1lYnVmZmVy
T0VTIikpOwogICAgIGxfZ2xCaW5kUmVuZGVyYnVmZmVyT0VTID0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9UaGlyZFBhcnR5L0FOR0xFL3V0aWwvZ2xlc19sb2FkZXJfYXV0b2dlbi5oIGIvU291cmNlL1Ro
aXJkUGFydHkvQU5HTEUvdXRpbC9nbGVzX2xvYWRlcl9hdXRvZ2VuLmgKaW5kZXggYmM5ZDViNDI4
YmIzOWM0NGY2MWE1Yjg4YTJkNTBjNTNjYjliMDZkYi4uMGQzYWU2MWZjMGI3MDk3ZjU5MDc3Nzhk
YzVlMDcyYjlmM2Q4NzgzNSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvdXRp
bC9nbGVzX2xvYWRlcl9hdXRvZ2VuLmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvdXRp
bC9nbGVzX2xvYWRlcl9hdXRvZ2VuLmgKQEAgLTc4Niw2ICs3ODYsNyBAQAogI2RlZmluZSBnbEdl
blZlcnRleEFycmF5c09FUyBsX2dsR2VuVmVydGV4QXJyYXlzT0VTCiAjZGVmaW5lIGdsSXNWZXJ0
ZXhBcnJheU9FUyBsX2dsSXNWZXJ0ZXhBcnJheU9FUwogI2RlZmluZSBnbEZyYW1lYnVmZmVyVGV4
dHVyZU11bHRpdmlld09WUiBsX2dsRnJhbWVidWZmZXJUZXh0dXJlTXVsdGl2aWV3T1ZSCisjZGVm
aW5lIGdsU2hhZGluZ1JhdGVRQ09NIGxfZ2xTaGFkaW5nUmF0ZVFDT00KICNkZWZpbmUgZ2xEcmF3
VGV4Zk9FUyBsX2dsRHJhd1RleGZPRVMKICNkZWZpbmUgZ2xEcmF3VGV4ZnZPRVMgbF9nbERyYXdU
ZXhmdk9FUwogI2RlZmluZSBnbERyYXdUZXhpT0VTIGxfZ2xEcmF3VGV4aU9FUwpAQCAtMTYyNyw2
ICsxNjI4LDcgQEAgQU5HTEVfVVRJTF9FWFBPUlQgZXh0ZXJuIFBGTkdMREVMRVRFVkVSVEVYQVJS
QVlTT0VTUFJPQyBsX2dsRGVsZXRlVmVydGV4QXJyYXlzT0UKIEFOR0xFX1VUSUxfRVhQT1JUIGV4
dGVybiBQRk5HTEdFTlZFUlRFWEFSUkFZU09FU1BST0MgbF9nbEdlblZlcnRleEFycmF5c09FUzsK
IEFOR0xFX1VUSUxfRVhQT1JUIGV4dGVybiBQRk5HTElTVkVSVEVYQVJSQVlPRVNQUk9DIGxfZ2xJ
c1ZlcnRleEFycmF5T0VTOwogQU5HTEVfVVRJTF9FWFBPUlQgZXh0ZXJuIFBGTkdMRlJBTUVCVUZG
RVJURVhUVVJFTVVMVElWSUVXT1ZSUFJPQyBsX2dsRnJhbWVidWZmZXJUZXh0dXJlTXVsdGl2aWV3
T1ZSOworQU5HTEVfVVRJTF9FWFBPUlQgZXh0ZXJuIFBGTkdMU0hBRElOR1JBVEVRQ09NUFJPQyBs
X2dsU2hhZGluZ1JhdGVRQ09NOwogQU5HTEVfVVRJTF9FWFBPUlQgZXh0ZXJuIFBGTkdMRFJBV1RF
WEZPRVNQUk9DIGxfZ2xEcmF3VGV4Zk9FUzsKIEFOR0xFX1VUSUxfRVhQT1JUIGV4dGVybiBQRk5H
TERSQVdURVhGVk9FU1BST0MgbF9nbERyYXdUZXhmdk9FUzsKIEFOR0xFX1VUSUxfRVhQT1JUIGV4
dGVybiBQRk5HTERSQVdURVhJT0VTUFJPQyBsX2dsRHJhd1RleGlPRVM7CmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS91dGlsL29zeC9zdXBwb3J0c19hdXRvbWF0aWNfZ3JhcGhp
Y3Nfc3dpdGNoaW5nLnBsaXN0IGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvdXRpbC9vc3gvc3Vw
cG9ydHNfYXV0b21hdGljX2dyYXBoaWNzX3N3aXRjaGluZy5wbGlzdApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZDBl
YzEzZmY5MDI1NjBjMmY4MjA5MGM2MmVhZjQ5ZTMwMDZiN2QzCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1RoaXJkUGFydHkvQU5HTEUvdXRpbC9vc3gvc3VwcG9ydHNfYXV0b21hdGljX2dyYXBo
aWNzX3N3aXRjaGluZy5wbGlzdApAQCAtMCwwICsxLDEyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAi
IGVuY29kaW5nPSJVVEYtOCI/PgorPCFET0NUWVBFIHBsaXN0IFBVQkxJQyAiLS8vQXBwbGUvL0RU
RCBQTElTVCAxLjAvL0VOIiAiaHR0cDovL3d3dy5hcHBsZS5jb20vRFREcy9Qcm9wZXJ0eUxpc3Qt
MS4wLmR0ZCI+Cis8cGxpc3QgdmVyc2lvbj0iMS4wIj4KKzxkaWN0PgorCTxrZXk+Q0ZCdW5kbGVO
YW1lPC9rZXk+CisJPHN0cmluZz5hbmdsZV90ZXN0PC9zdHJpbmc+IDwhLS0gR2VuZXJpYyBuYW1l
IHNvIHdlIGRvbid0IG5lZWQgcGVyIHRhcmdldCAucGxpc3QgZmlsZS4tLT4KKwk8a2V5PkNGQnVu
ZGxlSWRlbnRpZmllcjwva2V5PgorCTxzdHJpbmc+b3JnLmNocm9taXVtLmFuZ2xlLmFuZ2xlX3Rl
c3Q8L3N0cmluZz4KKwk8a2V5Pk5TU3VwcG9ydHNBdXRvbWF0aWNHcmFwaGljc1N3aXRjaGluZzwv
a2V5PgorCTx0cnVlLz4KKzwvZGljdD4KKzwvcGxpc3Q+CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9BTkdMRS91dGlsL3Bvc2l4L2NyYXNoX2hhbmRsZXJfcG9zaXguY3BwIGIvU291cmNl
L1RoaXJkUGFydHkvQU5HTEUvdXRpbC9wb3NpeC9jcmFzaF9oYW5kbGVyX3Bvc2l4LmNwcAppbmRl
eCAxNTAzNGExMjM0MWNjMTgxZjJiM2EyNzc5MGQ5MTExNTM4YWRkZjYyLi41NTg3YzQ5NWQxMGFj
YTg2NWY0N2ExNjE2MzQ0MWVkYTBjMjg5OTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9BTkdMRS91dGlsL3Bvc2l4L2NyYXNoX2hhbmRsZXJfcG9zaXguY3BwCisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L0FOR0xFL3V0aWwvcG9zaXgvY3Jhc2hfaGFuZGxlcl9wb3NpeC5jcHAKQEAgLTQy
OCwxMSArNDI4LDExIEBAIGNvbnN0IGNoYXIgKlJlc29sdmVBZGRyZXNzKGNvbnN0IE1lbW9yeVJl
Z2lvbkFycmF5ICZyZWdpb25zLAogICAgICAgICBpZiAocGF0aFNsYXNoUG9zICE9IHN0ZDo6c3Ry
aW5nOjpucG9zICYmIHJlZ2lvbi5wYXRoLnN1YnN0cihwYXRoU2xhc2hQb3MpID09IGJhc2VNb2R1
bGUpCiAgICAgICAgIHsKICAgICAgICAgICAgIHVpbnRwdHJfdCBzY2FubmVkQWRkcmVzczsKLSAg
ICAgICAgICAgIGludCBzY2FuUmV0dXJuID0gc3NjYW5mKGFkZHJlc3MsICIlbFgiLCAmc2Nhbm5l
ZEFkZHJlc3MpOworICAgICAgICAgICAgaW50IHNjYW5SZXR1cm4gPSBzc2NhbmYoYWRkcmVzcywg
IiUiIFNDTnhQVFIsICZzY2FubmVkQWRkcmVzcyk7CiAgICAgICAgICAgICBBU1NFUlQoc2NhblJl
dHVybiA9PSAxKTsKICAgICAgICAgICAgIHNjYW5uZWRBZGRyZXNzIC09IHJlZ2lvbi5iYXNlOwog
ICAgICAgICAgICAgY2hhciBwcmludEJ1ZmZlclsyNTVdID0ge307Ci0gICAgICAgICAgICBzaXpl
X3Qgc2Nhbm5lZFNpemUgICAgPSBzcHJpbnRmKHByaW50QnVmZmVyLCAiMHglbFgiLCBzY2FubmVk
QWRkcmVzcyk7CisgICAgICAgICAgICBzaXplX3Qgc2Nhbm5lZFNpemUgICAgPSBzcHJpbnRmKHBy
aW50QnVmZmVyLCAiMHglIiBQUklYUFRSLCBzY2FubmVkQWRkcmVzcyk7CiAgICAgICAgICAgICBz
aXplX3QgYnVmZmVyU2l6ZSAgICAgPSBidWZmZXIuc2l6ZSgpOwogICAgICAgICAgICAgYnVmZmVy
LnJlc2l6ZShidWZmZXJTaXplICsgc2Nhbm5lZFNpemUgKyAxLCAwKTsKICAgICAgICAgICAgIG1l
bWNweSgmYnVmZmVyW2J1ZmZlclNpemVdLCBwcmludEJ1ZmZlciwgc2Nhbm5lZFNpemUpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>