<?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>186029</bug_id>
          
          <creation_ts>2018-05-27 22:40:54 -0700</creation_ts>
          <short_desc>[Win][MiniBrowser] Move WK1 specific code from Common.cpp to MiniBrowser.cpp</short_desc>
          <delta_ts>2018-05-29 12:28:36 -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>Tools / Tests</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>184770</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Fujii Hironori">fujii</reporter>
          <assigned_to name="Fujii Hironori">fujii</assigned_to>
          <cc>achristensen</cc>
    
    <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>don.olmstead</cc>
    
    <cc>lforschler</cc>
    
    <cc>pvollan</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1427893</commentid>
    <comment_count>0</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2018-05-27 22:40:54 -0700</bug_when>
    <thetext>[Win][MiniBrowser] Move WK1 specific code from Common.cpp to MiniBrowser.cpp

This is a sub task of Bug 184770.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1427896</commentid>
    <comment_count>1</comment_count>
      <attachid>341448</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2018-05-27 22:55:00 -0700</bug_when>
    <thetext>Created attachment 341448
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1428167</commentid>
    <comment_count>2</comment_count>
      <attachid>341448</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-05-29 12:27:19 -0700</bug_when>
    <thetext>Comment on attachment 341448
Patch

Clearing flags on attachment: 341448

Committed r232270: &lt;https://trac.webkit.org/changeset/232270&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1428168</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-05-29 12:27:21 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1428169</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-05-29 12:28:36 -0700</bug_when>
    <thetext>&lt;rdar://problem/40624398&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>341448</attachid>
            <date>2018-05-27 22:55:00 -0700</date>
            <delta_ts>2018-05-29 12:27:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-186029-20180528145459.patch</filename>
            <type>text/plain</type>
            <size>30596</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMyMjM0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYzViMjkwYzFiMDdkNjQ3NDU2NWIwNDMyYTI1NDEyZmE5
ZDRmNDc1NC4uMmNlN2NjYTA5YTJjYmQ0MDU1ZjllYTMwNDJhOTJkY2U4OTE0ZTk1NyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1
IEBACisyMDE4LTA1LTI3ICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29t
PgorCisgICAgICAgIFtXaW5dW01pbmlCcm93c2VyXSBNb3ZlIFdLMSBzcGVjaWZpYyBjb2RlIGZy
b20gQ29tbW9uLmNwcCB0byBNaW5pQnJvd3Nlci5jcHAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NjAyOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgaXMgYSBzdWIgdGFzayBvZiBCdWcgMTg0Nzcw
LgorCisgICAgICAgICogTWluaUJyb3dzZXIvd2luL0NvbW1vbi5jcHA6CisgICAgICAgIChUb2dn
bGVNZW51SXRlbSk6IEV4dHJhY3RlZCBXSzEgc3BlY2lmaWMgY29kZSB0byBNaW5pQnJvd3Nlcjo6
c2V0UHJlZmVyZW5jZS4KKyAgICAgICAgKENhY2hlcyk6IENhbGwgTWluaUJyb3dzZXI6OnVwZGF0
ZVN0YXRpc3RpY3MgaW5zdGVhZCBvZiB1cGRhdGVTdGF0aXN0aWNzLgorICAgICAgICAoQWJvcnRQ
cm9jKTogTW92ZWQgdG8gTWluaUJyb3dzZXIuY3BwLgorICAgICAgICAoZ2V0UHJpbnRlckRDKTog
RGl0dG8uCisgICAgICAgIChpbml0RG9jU3RydWN0KTogRGl0dG8uCisgICAgICAgIChQcmludFZp
ZXcpOiBEaXR0by4KKyAgICAgICAgKFRvZ2dsZU1lbnVGbGFnKTogRGl0dG8uCisgICAgICAgIChz
ZXRXaW5kb3dUZXh0KTogRGl0dG8uCisgICAgICAgICh1cGRhdGVTdGF0aXN0aWNzKTogRGl0dG8u
CisgICAgICAgICogTWluaUJyb3dzZXIvd2luL01haW5XaW5kb3cuY3BwOgorICAgICAgICAoTWFp
bldpbmRvdzo6V25kUHJvYyk6IENhbGwgTWluaUJyb3dzZXI6OnByaW50IGluc3RlYWQgb2YgUHJp
bnRWaWV3LgorICAgICAgICAqIE1pbmlCcm93c2VyL3dpbi9NaW5pQnJvd3Nlci5jcHA6CisgICAg
ICAgIChBYm9ydFByb2MpOiBNb3ZlZCBmcm9tIENvbW1vbi5jcHAuCisgICAgICAgIChnZXRQcmlu
dGVyREMpOiBNb3ZlZCBmcm9tIENvbW1vbi5jcHAuCisgICAgICAgIChpbml0RG9jU3RydWN0KTog
TW92ZWQgZnJvbSBDb21tb24uY3BwLgorICAgICAgICAoc2V0V2luZG93VGV4dCk6IE1vdmVkIGZy
b20gQ29tbW9uLmNwcC4KKyAgICAgICAgKE1pbmlCcm93c2VyOjpwcmludCk6IFJlbmFtZWQgZnJv
bSBQcmludFZpZXcgb2YgQ29tbW9uLmNwcC4KKyAgICAgICAgKE1pbmlCcm93c2VyOjp1cGRhdGVT
dGF0aXN0aWNzKTogUmVuYW1lZCBmcm9tIHVwZGF0ZVN0YXRpc3RpY3Mgb2YgQ29tbW9uLmNwcC4K
KyAgICAgICAgKE1pbmlCcm93c2VyOjpzZXRQcmVmZXJlbmNlKTogRXh0cmFjdGVkIGZyb20gVG9n
Z2xlTWVudUl0ZW0gb2YgQ29tbW9uLmNwcC4KKyAgICAgICAgKiBNaW5pQnJvd3Nlci93aW4vTWlu
aUJyb3dzZXIuaDogQWRkIG1ldGhvZCBkZWNsYXJhdGlvbnMuCisgICAgICAgICogTWluaUJyb3dz
ZXIvd2luL01pbmlCcm93c2VyV2ViSG9zdC5jcHA6IFJlbW92ZWQgZHVwbGljYXRlZCBJV2ViRnJh
bWVQdHIgdHlwZWRlZi4KKwogMjAxOC0wNS0yNyAgRnVqaWkgSGlyb25vcmkgIDxIaXJvbm9yaS5G
dWppaUBzb255LmNvbT4KIAogICAgICAgICBbV2luXVtNaW5pQnJvd3Nlcl0gQWRkIE1haW5XaW5k
b3cgY2xhc3MKZGlmZiAtLWdpdCBhL1Rvb2xzL01pbmlCcm93c2VyL3dpbi9Db21tb24uY3BwIGIv
VG9vbHMvTWluaUJyb3dzZXIvd2luL0NvbW1vbi5jcHAKaW5kZXggM2VkN2UzOWU2NTZiZGViODVh
MzA1ZWEyNzE5OGRkYmY4MTBiYTdjMy4uMmI4MjViY2Q2NDg1NTQ0Njk2MDYxOGM1NWU1MTE5Njhh
ZGMwMmY2NiAxMDA2NDQKLS0tIGEvVG9vbHMvTWluaUJyb3dzZXIvd2luL0NvbW1vbi5jcHAKKysr
IGIvVG9vbHMvTWluaUJyb3dzZXIvd2luL0NvbW1vbi5jcHAKQEAgLTMxLDE0ICszMSw5IEBACiAj
aW5jbHVkZSAiTWluaUJyb3dzZXIuaCIKICNpbmNsdWRlICJNaW5pQnJvd3NlclJlcGxhY2UuaCIK
ICNpbmNsdWRlIDxXZWJLaXRMZWdhY3kvV2ViS2l0Q09NQVBJLmg+Ci0jaW5jbHVkZSA8d3RmL0V4
cG9ydE1hY3Jvcy5oPgotI2luY2x1ZGUgPHd0Zi9QbGF0Zm9ybS5oPgotI2luY2x1ZGUgPHd0Zi90
ZXh0L0NTdHJpbmcuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogI2lmIFVT
RShDRikKICNpbmNsdWRlIDxDb3JlRm91bmRhdGlvbi9DRlJ1bkxvb3AuaD4KLSNpbmNsdWRlIDxX
ZWJLaXRMZWdhY3kvQ0ZEaWN0aW9uYXJ5UHJvcGVydHlCYWcuaD4KICNlbmRpZgogCiAjaW5jbHVk
ZSA8Y2Fzc2VydD4KQEAgLTYwLDkgKzU1LDYgQEAKICNkZWZpbmUgV01fRFBJQ0hBTkdFRCAweDAy
RTAKICNlbmRpZgogCi10eXBlZGVmIF9jb21fcHRyX3Q8X2NvbV9JSUlEPElXZWJGcmFtZSwgJl9f
dXVpZG9mKElXZWJGcmFtZSk+PiBJV2ViRnJhbWVQdHI7Ci10eXBlZGVmIF9jb21fcHRyX3Q8X2Nv
bV9JSUlEPElXZWJNdXRhYmxlVVJMUmVxdWVzdCwgJl9fdXVpZG9mKElXZWJNdXRhYmxlVVJMUmVx
dWVzdCk+PiBJV2ViTXV0YWJsZVVSTFJlcXVlc3RQdHI7Ci0KIC8vIEdsb2JhbCBWYXJpYWJsZXM6
CiBISU5TVEFOQ0UgaEluc3Q7CiBIV05EIGhDYWNoZVduZDsKQEAgLTgwLDcgKzcyLDYgQEAgU0la
RSBzX3dpbmRvd1NpemUgPSB7IDUwMCwgMjAwIH07CiBJTlRfUFRSIENBTExCQUNLIEF1dGhEaWFs
b2dQcm9jKEhXTkQsIFVJTlQsIFdQQVJBTSwgTFBBUkFNKTsKIAogc3RhdGljIHZvaWQgbG9hZFVS
TChCU1RSIHVybEJTdHIpOwotc3RhdGljIHZvaWQgdXBkYXRlU3RhdGlzdGljcyhIV05EIGhEbGcp
OwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvckZvcldpbmRv
dyhIV05EKTsKQEAgLTE1OSwxMDAgKzE1MCw2IEBAIHZvaWQgY3JlYXRlQ3Jhc2hSZXBvcnQoRVhD
RVBUSU9OX1BPSU5URVJTKiBleGNlcHRpb25Qb2ludGVycykKICAgICB9CiB9CiAKLXN0YXRpYyBC
T09MIENBTExCQUNLIEFib3J0UHJvYyhIREMgaERDLCBpbnQgRXJyb3IpCi17Ci0gICAgTVNHIG1z
ZzsKLSAgICB3aGlsZSAoOjpQZWVrTWVzc2FnZSgmbXNnLCAwLCAwLCAwLCBQTV9SRU1PVkUpKSB7
Ci0gICAgICAgIDo6VHJhbnNsYXRlTWVzc2FnZSgmbXNnKTsKLSAgICAgICAgOjpEaXNwYXRjaE1l
c3NhZ2UoJm1zZyk7Ci0gICAgfQotCi0gICAgcmV0dXJuIFRSVUU7Ci19Ci0KLXN0YXRpYyBIREMg
Z2V0UHJpbnRlckRDKCkKLXsKLSAgICBQUklOVERMRyBwZGxnOwotICAgIG1lbXNldCgmcGRsZywg
MCwgc2l6ZW9mKFBSSU5URExHKSk7Ci0gICAgcGRsZy5sU3RydWN0U2l6ZSA9IHNpemVvZihQUklO
VERMRyk7Ci0gICAgcGRsZy5GbGFncyA9IFBEX1BSSU5UU0VUVVAgfCBQRF9SRVRVUk5EQzsKLQot
ICAgIDo6UHJpbnREbGcoJnBkbGcpOwotCi0gICAgcmV0dXJuIHBkbGcuaERDOwotfQotCi1zdGF0
aWMgdm9pZCBpbml0RG9jU3RydWN0KERPQ0lORk8qIGRpLCBUQ0hBUiogZG9jbmFtZSkKLXsKLSAg
ICBtZW1zZXQoZGksIDAsIHNpemVvZihET0NJTkZPKSk7Ci0gICAgZGktPmNiU2l6ZSA9IHNpemVv
ZihET0NJTkZPKTsKLSAgICBkaS0+bHBzekRvY05hbWUgPSBkb2NuYW1lOwotfQotCi10eXBlZGVm
IF9jb21fcHRyX3Q8X2NvbV9JSUlEPElXZWJGcmFtZVByaXZhdGUsICZfX3V1aWRvZihJV2ViRnJh
bWVQcml2YXRlKT4+IElXZWJGcmFtZVByaXZhdGVQdHI7Ci0KLXZvaWQgUHJpbnRWaWV3KEhXTkQg
aFduZCwgVUlOVCBtZXNzYWdlLCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0gbFBhcmFtKQotewotICAg
IEhEQyBwcmludERDID0gZ2V0UHJpbnRlckRDKCk7Ci0gICAgaWYgKCFwcmludERDKSB7Ci0gICAg
ICAgIDo6TWVzc2FnZUJveFcoMCwgTCJFcnJvciBjcmVhdGluZyBwcmludGluZyBEQyIsIEwiRXJy
b3IiLCBNQl9BUFBMTU9EQUwgfCBNQl9PSyk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAg
ICBpZiAoOjpTZXRBYm9ydFByb2MocHJpbnREQywgQWJvcnRQcm9jKSA9PSBTUF9FUlJPUikgewot
ICAgICAgICA6Ok1lc3NhZ2VCb3hXKDAsIEwiRXJyb3Igc2V0dGluZyB1cCBBYm9ydFByb2MiLCBM
IkVycm9yIiwgTUJfQVBQTE1PREFMIHwgTUJfT0spOwotICAgICAgICByZXR1cm47Ci0gICAgfQot
Ci0gICAgSVdlYkZyYW1lUHRyIGZyYW1lID0gZ01pbmlCcm93c2VyLT5tYWluRnJhbWUoKTsKLSAg
ICBpZiAoIWZyYW1lKQotICAgICAgICByZXR1cm47Ci0KLSAgICBJV2ViRnJhbWVQcml2YXRlUHRy
IGZyYW1lUHJpdmF0ZTsKLSAgICBpZiAoRkFJTEVEKGZyYW1lLT5RdWVyeUludGVyZmFjZSgmZnJh
bWVQcml2YXRlLkdldEludGVyZmFjZVB0cigpKSkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGZy
YW1lUHJpdmF0ZS0+c2V0SW5QcmludGluZ01vZGUoVFJVRSwgcHJpbnREQyk7Ci0KLSAgICBVSU5U
IHBhZ2VDb3VudCA9IDA7Ci0gICAgZnJhbWVQcml2YXRlLT5nZXRQcmludGVkUGFnZUNvdW50KHBy
aW50REMsICZwYWdlQ291bnQpOwotCi0gICAgRE9DSU5GTyBkaTsKLSAgICBpbml0RG9jU3RydWN0
KCZkaSwgTCJXZWJLaXQgRG9jIik7Ci0gICAgOjpTdGFydERvYyhwcmludERDLCAmZGkpOwotCi0g
ICAgLy8gRklYTUU6IE5lZWQgQ29yZUdyYXBoaWNzIGltcGxlbWVudGF0aW9uCi0gICAgdm9pZCog
Z3JhcGhpY3NDb250ZXh0ID0gMDsKLSAgICBmb3IgKHNpemVfdCBwYWdlID0gMTsgcGFnZSA8PSBw
YWdlQ291bnQ7ICsrcGFnZSkgewotICAgICAgICA6OlN0YXJ0UGFnZShwcmludERDKTsKLSAgICAg
ICAgZnJhbWVQcml2YXRlLT5zcG9vbFBhZ2VzKHByaW50REMsIHBhZ2UsIHBhZ2UsIGdyYXBoaWNz
Q29udGV4dCk7Ci0gICAgICAgIDo6RW5kUGFnZShwcmludERDKTsKLSAgICB9Ci0KLSAgICBmcmFt
ZVByaXZhdGUtPnNldEluUHJpbnRpbmdNb2RlKEZBTFNFLCBwcmludERDKTsKLQotICAgIDo6RW5k
RG9jKHByaW50REMpOwotICAgIDo6RGVsZXRlREMocHJpbnREQyk7Ci19Ci0KLXZvaWQgVG9nZ2xl
TWVudUZsYWcoSFdORCBoV25kLCBVSU5UIG1lbnVJRCkKLXsKLSAgICBITUVOVSBtZW51ID0gOjpH
ZXRNZW51KGhXbmQpOwotCi0gICAgTUVOVUlURU1JTkZPIGluZm87Ci0gICAgOjptZW1zZXQoJmlu
Zm8sIDB4MDAsIHNpemVvZihpbmZvKSk7Ci0gICAgaW5mby5jYlNpemUgPSBzaXplb2YoaW5mbyk7
Ci0gICAgaW5mby5mTWFzayA9IE1JSU1fU1RBVEU7Ci0KLSAgICBpZiAoITo6R2V0TWVudUl0ZW1J
bmZvKG1lbnUsIG1lbnVJRCwgRkFMU0UsICZpbmZvKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
Qk9PTCBuZXdTdGF0ZSA9ICEoaW5mby5mU3RhdGUgJiBNRlNfQ0hFQ0tFRCk7Ci0gICAgaW5mby5m
U3RhdGUgPSAobmV3U3RhdGUpID8gTUZTX0NIRUNLRUQgOiBNRlNfVU5DSEVDS0VEOwotCi0gICAg
OjpTZXRNZW51SXRlbUluZm8obWVudSwgbWVudUlELCBGQUxTRSwgJmluZm8pOwotfQotCiBzdGF0
aWMgYm9vbCBtZW51SXRlbUlzQ2hlY2tlZChjb25zdCBNRU5VSVRFTUlORk8mIGluZm8pCiB7CiAg
ICAgcmV0dXJuIGluZm8uZlN0YXRlICYgTUZTX0NIRUNLRUQ7CkBAIC0yODQsNTIgKzE4MSw3IEBA
IGJvb2wgVG9nZ2xlTWVudUl0ZW0oSFdORCBoV25kLCBVSU5UIG1lbnVJRCkKIAogICAgIEhNRU5V
IG1lbnUgPSA6OkdldE1lbnUoaFduZCk7CiAKLSAgICBNRU5VSVRFTUlORk8gaW5mbzsKLSAgICA6
Om1lbXNldCgmaW5mbywgMHgwMCwgc2l6ZW9mKGluZm8pKTsKLSAgICBpbmZvLmNiU2l6ZSA9IHNp
emVvZihpbmZvKTsKLSAgICBpbmZvLmZNYXNrID0gTUlJTV9TVEFURTsKLQotICAgIGlmICghOjpH
ZXRNZW51SXRlbUluZm8obWVudSwgbWVudUlELCBGQUxTRSwgJmluZm8pKQotICAgICAgICByZXR1
cm4gZmFsc2U7Ci0KLSAgICBCT09MIG5ld1N0YXRlID0gIW1lbnVJdGVtSXNDaGVja2VkKGluZm8p
OwotCi0gICAgaWYgKCFnTWluaUJyb3dzZXItPnN0YW5kYXJkUHJlZmVyZW5jZXMoKSB8fCAhZ01p
bmlCcm93c2VyLT5wcml2YXRlUHJlZmVyZW5jZXMoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwot
CiAgICAgc3dpdGNoIChtZW51SUQpIHsKLSAgICBjYXNlIElETV9BVkZPVU5EQVRJT046Ci0gICAg
ICAgIGdNaW5pQnJvd3Nlci0+c3RhbmRhcmRQcmVmZXJlbmNlcygpLT5zZXRBVkZvdW5kYXRpb25F
bmFibGVkKG5ld1N0YXRlKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJRE1fQUNDX0NPTVBP
U0lUSU5HOgotICAgICAgICBnTWluaUJyb3dzZXItPnByaXZhdGVQcmVmZXJlbmNlcygpLT5zZXRB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZChuZXdTdGF0ZSk7Ci0gICAgICAgIGJyZWFrOwot
ICAgIGNhc2UgSURNX1dLX0ZVTExTQ1JFRU46Ci0gICAgICAgIGdNaW5pQnJvd3Nlci0+cHJpdmF0
ZVByZWZlcmVuY2VzKCktPnNldEZ1bGxTY3JlZW5FbmFibGVkKG5ld1N0YXRlKTsKLSAgICAgICAg
YnJlYWs7Ci0gICAgY2FzZSBJRE1fQ09NUE9TSVRJTkdfQk9SREVSUzoKLSAgICAgICAgZ01pbmlC
cm93c2VyLT5wcml2YXRlUHJlZmVyZW5jZXMoKS0+c2V0U2hvd0RlYnVnQm9yZGVycyhuZXdTdGF0
ZSk7Ci0gICAgICAgIGdNaW5pQnJvd3Nlci0+cHJpdmF0ZVByZWZlcmVuY2VzKCktPnNldFNob3dS
ZXBhaW50Q291bnRlcihuZXdTdGF0ZSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSURNX0RF
QlVHX0lORk9fTEFZRVI6Ci0gICAgICAgIGdNaW5pQnJvd3Nlci0+cHJpdmF0ZVByZWZlcmVuY2Vz
KCktPnNldFNob3dUaWxlZFNjcm9sbGluZ0luZGljYXRvcihuZXdTdGF0ZSk7Ci0gICAgICAgIGJy
ZWFrOwotICAgIGNhc2UgSURNX0lOVkVSVF9DT0xPUlM6Ci0gICAgICAgIGdNaW5pQnJvd3Nlci0+
cHJpdmF0ZVByZWZlcmVuY2VzKCktPnNldFNob3VsZEludmVydENvbG9ycyhuZXdTdGF0ZSk7Ci0g
ICAgICAgIGJyZWFrOwotICAgIGNhc2UgSURNX0RJU0FCTEVfSU1BR0VTOgotICAgICAgICBnTWlu
aUJyb3dzZXItPnN0YW5kYXJkUHJlZmVyZW5jZXMoKS0+c2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNh
bGx5KCFuZXdTdGF0ZSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSURNX0RJU0FCTEVfU1RZ
TEVTOgotICAgICAgICBnTWluaUJyb3dzZXItPnByaXZhdGVQcmVmZXJlbmNlcygpLT5zZXRBdXRo
b3JBbmRVc2VyU3R5bGVzRW5hYmxlZCghbmV3U3RhdGUpOwotICAgICAgICBicmVhazsKLSAgICBj
YXNlIElETV9ESVNBQkxFX0pBVkFTQ1JJUFQ6Ci0gICAgICAgIGdNaW5pQnJvd3Nlci0+c3RhbmRh
cmRQcmVmZXJlbmNlcygpLT5zZXRKYXZhU2NyaXB0RW5hYmxlZCghbmV3U3RhdGUpOwotICAgICAg
ICBicmVhazsKLSAgICBjYXNlIElETV9ESVNBQkxFX0xPQ0FMX0ZJTEVfUkVTVFJJQ1RJT05TOgot
ICAgICAgICBnTWluaUJyb3dzZXItPnByaXZhdGVQcmVmZXJlbmNlcygpLT5zZXRBbGxvd1VuaXZl
cnNhbEFjY2Vzc0Zyb21GaWxlVVJMcyhuZXdTdGF0ZSk7Ci0gICAgICAgIGdNaW5pQnJvd3Nlci0+
cHJpdmF0ZVByZWZlcmVuY2VzKCktPnNldEFsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMcyhuZXdT
dGF0ZSk7Ci0gICAgICAgIGJyZWFrOwogICAgIGNhc2UgSURNX1VBX0RFRkFVTFQ6CiAgICAgY2Fz
ZSBJRE1fVUFfU0FGQVJJXzhfMDoKICAgICBjYXNlIElETV9VQV9TQUZBUklfSU9TXzhfSVBIT05F
OgpAQCAtMzQ2LDE0ICsxOTgsMjEgQEAgYm9vbCBUb2dnbGVNZW51SXRlbShIV05EIGhXbmQsIFVJ
TlQgbWVudUlEKQogICAgICAgICAvLyBUaGUgYWN0dWFsIHVzZXIgYWdlbnQgc3RyaW5nIHdpbGwg
YmUgc2V0IGJ5IHRoZSBjdXN0b20gdXNlciBhZ2VudCBkaWFsb2cKICAgICAgICAgdHVybk9mZk90
aGVyVXNlckFnZW50cyhtZW51KTsKICAgICAgICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoKLSAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAotICAgIGluZm8uZlN0YXRlID0gKG5ld1N0YXRlKSA/
IE1GU19DSEVDS0VEIDogTUZTX1VOQ0hFQ0tFRDsKKyAgICBNRU5VSVRFTUlORk8gaW5mbyA9IHsg
fTsKKyAgICBpbmZvLmNiU2l6ZSA9IHNpemVvZihpbmZvKTsKKyAgICBpbmZvLmZNYXNrID0gTUlJ
TV9TVEFURTsKIAorICAgIGlmICghOjpHZXRNZW51SXRlbUluZm8obWVudSwgbWVudUlELCBGQUxT
RSwgJmluZm8pKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBCT09MIG5ld1N0YXRlID0g
IW1lbnVJdGVtSXNDaGVja2VkKGluZm8pOworICAgIGluZm8uZlN0YXRlID0gKG5ld1N0YXRlKSA/
IE1GU19DSEVDS0VEIDogTUZTX1VOQ0hFQ0tFRDsKICAgICA6OlNldE1lbnVJdGVtSW5mbyhtZW51
LCBtZW51SUQsIEZBTFNFLCAmaW5mbyk7CiAKKyAgICBnTWluaUJyb3dzZXItPnNldFByZWZlcmVu
Y2UobWVudUlELCBuZXdTdGF0ZSk7CisKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtNDM3LDcg
KzI5Niw3IEBAIElOVF9QVFIgQ0FMTEJBQ0sgQ2FjaGVzKEhXTkQgaERsZywgVUlOVCBtZXNzYWdl
LCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0gbFBhcmFtKQogICAgICAgICByZXR1cm4gKElOVF9QVFIp
VFJVRTsKIAogICAgIGNhc2UgV01fUEFJTlQ6Ci0gICAgICAgIHVwZGF0ZVN0YXRpc3RpY3MoaERs
Zyk7CisgICAgICAgIGdNaW5pQnJvd3Nlci0+dXBkYXRlU3RhdGlzdGljcyhoRGxnKTsKICAgICAg
ICAgYnJlYWs7CiAgICAgfQogCkBAIC01NDAsMTYzICszOTksNiBAQCBzdGF0aWMgdm9pZCBsb2Fk
VVJMKEJTVFIgcGFzc2VkVVJMKQogICAgIFNldEZvY3VzKGdNaW5pQnJvd3Nlci0+aHduZCgpKTsK
IH0KIAotc3RhdGljIHZvaWQgc2V0V2luZG93VGV4dChIV05EIGRpYWxvZywgVUlOVCBmaWVsZCwg
X2JzdHJfdCB2YWx1ZSkKLXsKLSAgICA6OlNldERsZ0l0ZW1UZXh0KGRpYWxvZywgZmllbGQsIHZh
bHVlKTsKLX0KLQotc3RhdGljIHZvaWQgc2V0V2luZG93VGV4dChIV05EIGRpYWxvZywgVUlOVCBm
aWVsZCwgVUlOVCB2YWx1ZSkKLXsKLSAgICBTdHJpbmcgdmFsdWVTdHIgPSBXVEY6OlN0cmluZzo6
bnVtYmVyKHZhbHVlKTsKLQotICAgIHNldFdpbmRvd1RleHQoZGlhbG9nLCBmaWVsZCwgX2JzdHJf
dCh2YWx1ZVN0ci51dGY4KCkuZGF0YSgpKSk7Ci19Ci0KLXR5cGVkZWYgX2NvbV9wdHJfdDxfY29t
X0lJSUQ8SVByb3BlcnR5QmFnLCAmX191dWlkb2YoSVByb3BlcnR5QmFnKT4+IElQcm9wZXJ0eUJh
Z1B0cjsKLQotc3RhdGljIHZvaWQgc2V0V2luZG93VGV4dChIV05EIGRpYWxvZywgVUlOVCBmaWVs
ZCwgSVByb3BlcnR5QmFnUHRyIHN0YXRpc3RpY3MsIGNvbnN0IF9ic3RyX3QmIGtleSkKLXsKLSAg
ICBfdmFyaWFudF90IHZhcjsKLSAgICBWX1ZUKCZ2YXIpID0gVlRfVUk4OwotICAgIGlmIChGQUlM
RUQoc3RhdGlzdGljcy0+UmVhZChrZXksICZ2YXIuR2V0VkFSSUFOVCgpLCBudWxscHRyKSkpCi0g
ICAgICAgIHJldHVybjsKLQotICAgIHVuc2lnbmVkIGxvbmcgbG9uZyB2YWx1ZSA9IFZfVUk4KCZ2
YXIpOwotICAgIFN0cmluZyB2YWx1ZVN0ciA9IFdURjo6U3RyaW5nOjpudW1iZXIodmFsdWUpOwot
Ci0gICAgc2V0V2luZG93VGV4dChkaWFsb2csIGZpZWxkLCBfYnN0cl90KHZhbHVlU3RyLnV0Zjgo
KS5kYXRhKCkpKTsKLX0KLQotc3RhdGljIHZvaWQgc2V0V2luZG93VGV4dChIV05EIGRpYWxvZywg
VUlOVCBmaWVsZCwgQ0ZEaWN0aW9uYXJ5UmVmIGRpY3Rpb25hcnksIENGU3RyaW5nUmVmIGtleSwg
VUlOVCYgdG90YWwpCi17Ci0gICAgQ0ZOdW1iZXJSZWYgY291bnROdW0gPSBzdGF0aWNfY2FzdDxD
Rk51bWJlclJlZj4oQ0ZEaWN0aW9uYXJ5R2V0VmFsdWUoZGljdGlvbmFyeSwga2V5KSk7Ci0gICAg
aWYgKCFjb3VudE51bSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaW50IGNvdW50ID0gMDsKLSAg
ICBDRk51bWJlckdldFZhbHVlKGNvdW50TnVtLCBrQ0ZOdW1iZXJJbnRUeXBlLCAmY291bnQpOwot
Ci0gICAgc2V0V2luZG93VGV4dChkaWFsb2csIGZpZWxkLCBzdGF0aWNfY2FzdDxVSU5UPihjb3Vu
dCkpOwotICAgIHRvdGFsICs9IGNvdW50OwotfQotCi1zdGF0aWMgdm9pZCB1cGRhdGVTdGF0aXN0
aWNzKEhXTkQgZGlhbG9nKQotewotICAgIGlmICghZ01pbmlCcm93c2VyKQotICAgICAgICByZXR1
cm47Ci0KLSAgICBJV2ViQ29yZVN0YXRpc3RpY3NQdHIgd2ViQ29yZVN0YXRpc3RpY3MgPSBnTWlu
aUJyb3dzZXItPnN0YXRpc3RpY3MoKTsKLSAgICBpZiAoIXdlYkNvcmVTdGF0aXN0aWNzKQotICAg
ICAgICByZXR1cm47Ci0KLSAgICBJUHJvcGVydHlCYWdQdHIgc3RhdGlzdGljczsKLSAgICBIUkVT
VUxUIGhyID0gd2ViQ29yZVN0YXRpc3RpY3MtPm1lbW9yeVN0YXRpc3RpY3MoJnN0YXRpc3RpY3Mu
R2V0SW50ZXJmYWNlUHRyKCkpOwotICAgIGlmIChGQUlMRUQoaHIpKQotICAgICAgICByZXR1cm47
Ci0KLSAgICAvLyBGYXN0TWFsbG9jLgotICAgIHNldFdpbmRvd1RleHQoZGlhbG9nLCBJRENfUkVT
RVJWRURfVk0sIHN0YXRpc3RpY3MsICJGYXN0TWFsbG9jUmVzZXJ2ZWRWTUJ5dGVzIik7Ci0gICAg
c2V0V2luZG93VGV4dChkaWFsb2csIElEQ19DT01NSVRURURfVk0sIHN0YXRpc3RpY3MsICJGYXN0
TWFsbG9jQ29tbWl0dGVkVk1CeXRlcyIpOwotICAgIHNldFdpbmRvd1RleHQoZGlhbG9nLCBJRENf
RlJFRV9MSVNUX0JZVEVTLCBzdGF0aXN0aWNzLCAiRmFzdE1hbGxvY0ZyZWVMaXN0Qnl0ZXMiKTsK
LQotICAgIC8vIFdlYkNvcmUgQ2FjaGUuCi0jaWYgVVNFKENGKQotICAgIElXZWJDYWNoZVB0ciB3
ZWJDYWNoZSA9IGdNaW5pQnJvd3Nlci0+d2ViQ2FjaGUoKTsKLQotICAgIGludCBkaWN0Q291bnQg
PSA2OwotICAgIElQcm9wZXJ0eUJhZyogY2FjaGVEaWN0WzZdID0geyAwIH07Ci0gICAgaWYgKEZB
SUxFRCh3ZWJDYWNoZS0+c3RhdGlzdGljcygmZGljdENvdW50LCBjYWNoZURpY3QpKSkKLSAgICAg
ICAgcmV0dXJuOwotCi0gICAgQ09NUHRyPENGRGljdGlvbmFyeVByb3BlcnR5QmFnPiBjb3VudHMs
IHNpemVzLCBsaXZlU2l6ZXMsIGRlY29kZWRTaXplcywgcHVyZ2FibGVTaXplczsKLSAgICBjb3Vu
dHMuYWRvcHRSZWYocmVpbnRlcnByZXRfY2FzdDxDRkRpY3Rpb25hcnlQcm9wZXJ0eUJhZyo+KGNh
Y2hlRGljdFswXSkpOwotICAgIHNpemVzLmFkb3B0UmVmKHJlaW50ZXJwcmV0X2Nhc3Q8Q0ZEaWN0
aW9uYXJ5UHJvcGVydHlCYWcqPihjYWNoZURpY3RbMV0pKTsKLSAgICBsaXZlU2l6ZXMuYWRvcHRS
ZWYocmVpbnRlcnByZXRfY2FzdDxDRkRpY3Rpb25hcnlQcm9wZXJ0eUJhZyo+KGNhY2hlRGljdFsy
XSkpOwotICAgIGRlY29kZWRTaXplcy5hZG9wdFJlZihyZWludGVycHJldF9jYXN0PENGRGljdGlv
bmFyeVByb3BlcnR5QmFnKj4oY2FjaGVEaWN0WzNdKSk7Ci0gICAgcHVyZ2FibGVTaXplcy5hZG9w
dFJlZihyZWludGVycHJldF9jYXN0PENGRGljdGlvbmFyeVByb3BlcnR5QmFnKj4oY2FjaGVEaWN0
WzRdKSk7Ci0KLSAgICBzdGF0aWMgQ0ZTdHJpbmdSZWYgaW1hZ2VzS2V5ID0gQ0ZTVFIoImltYWdl
cyIpOwotICAgIHN0YXRpYyBDRlN0cmluZ1JlZiBzdHlsZXNoZWV0c0tleSA9IENGU1RSKCJzdHls
ZSBzaGVldHMiKTsKLSAgICBzdGF0aWMgQ0ZTdHJpbmdSZWYgeHNsS2V5ID0gQ0ZTVFIoInhzbCIp
OwotICAgIHN0YXRpYyBDRlN0cmluZ1JlZiBzY3JpcHRzS2V5ID0gQ0ZTVFIoInNjcmlwdHMiKTsK
LQotICAgIGlmIChjb3VudHMpIHsKLSAgICAgICAgVUlOVCB0b3RhbE9iamVjdHMgPSAwOwotICAg
ICAgICBzZXRXaW5kb3dUZXh0KGRpYWxvZywgSURDX0lNQUdFU19PQkpFQ1RfQ09VTlQsIGNvdW50
cy0+ZGljdGlvbmFyeSgpLCBpbWFnZXNLZXksIHRvdGFsT2JqZWN0cyk7Ci0gICAgICAgIHNldFdp
bmRvd1RleHQoZGlhbG9nLCBJRENfQ1NTX09CSkVDVF9DT1VOVCwgY291bnRzLT5kaWN0aW9uYXJ5
KCksIHN0eWxlc2hlZXRzS2V5LCB0b3RhbE9iamVjdHMpOwotICAgICAgICBzZXRXaW5kb3dUZXh0
KGRpYWxvZywgSURDX1hTTF9PQkpFQ1RfQ09VTlQsIGNvdW50cy0+ZGljdGlvbmFyeSgpLCB4c2xL
ZXksIHRvdGFsT2JqZWN0cyk7Ci0gICAgICAgIHNldFdpbmRvd1RleHQoZGlhbG9nLCBJRENfSlND
X09CSkVDVF9DT1VOVCwgY291bnRzLT5kaWN0aW9uYXJ5KCksIHNjcmlwdHNLZXksIHRvdGFsT2Jq
ZWN0cyk7Ci0gICAgICAgIHNldFdpbmRvd1RleHQoZGlhbG9nLCBJRENfVE9UQUxfT0JKRUNUX0NP
VU5ULCB0b3RhbE9iamVjdHMpOwotICAgIH0KLQotICAgIGlmIChzaXplcykgewotICAgICAgICBV
SU5UIHRvdGFsQnl0ZXMgPSAwOwotICAgICAgICBzZXRXaW5kb3dUZXh0KGRpYWxvZywgSURDX0lN
QUdFU19CWVRFUywgc2l6ZXMtPmRpY3Rpb25hcnkoKSwgaW1hZ2VzS2V5LCB0b3RhbEJ5dGVzKTsK
LSAgICAgICAgc2V0V2luZG93VGV4dChkaWFsb2csIElEQ19DU1NfQllURVMsIHNpemVzLT5kaWN0
aW9uYXJ5KCksIHN0eWxlc2hlZXRzS2V5LCB0b3RhbEJ5dGVzKTsKLSAgICAgICAgc2V0V2luZG93
VGV4dChkaWFsb2csIElEQ19YU0xfQllURVMsIHNpemVzLT5kaWN0aW9uYXJ5KCksIHhzbEtleSwg
dG90YWxCeXRlcyk7Ci0gICAgICAgIHNldFdpbmRvd1RleHQoZGlhbG9nLCBJRENfSlNDX0JZVEVT
LCBzaXplcy0+ZGljdGlvbmFyeSgpLCBzY3JpcHRzS2V5LCB0b3RhbEJ5dGVzKTsKLSAgICAgICAg
c2V0V2luZG93VGV4dChkaWFsb2csIElEQ19UT1RBTF9CWVRFUywgdG90YWxCeXRlcyk7Ci0gICAg
fQotCi0gICAgaWYgKGxpdmVTaXplcykgewotICAgICAgICBVSU5UIHRvdGFsTGl2ZUJ5dGVzID0g
MDsKLSAgICAgICAgc2V0V2luZG93VGV4dChkaWFsb2csIElEQ19JTUFHRVNfTElWRV9DT1VOVCwg
bGl2ZVNpemVzLT5kaWN0aW9uYXJ5KCksIGltYWdlc0tleSwgdG90YWxMaXZlQnl0ZXMpOwotICAg
ICAgICBzZXRXaW5kb3dUZXh0KGRpYWxvZywgSURDX0NTU19MSVZFX0NPVU5ULCBsaXZlU2l6ZXMt
PmRpY3Rpb25hcnkoKSwgc3R5bGVzaGVldHNLZXksIHRvdGFsTGl2ZUJ5dGVzKTsKLSAgICAgICAg
c2V0V2luZG93VGV4dChkaWFsb2csIElEQ19YU0xfTElWRV9DT1VOVCwgbGl2ZVNpemVzLT5kaWN0
aW9uYXJ5KCksIHhzbEtleSwgdG90YWxMaXZlQnl0ZXMpOwotICAgICAgICBzZXRXaW5kb3dUZXh0
KGRpYWxvZywgSURDX0pTQ19MSVZFX0NPVU5ULCBsaXZlU2l6ZXMtPmRpY3Rpb25hcnkoKSwgc2Ny
aXB0c0tleSwgdG90YWxMaXZlQnl0ZXMpOwotICAgICAgICBzZXRXaW5kb3dUZXh0KGRpYWxvZywg
SURDX1RPVEFMX0xJVkVfQ09VTlQsIHRvdGFsTGl2ZUJ5dGVzKTsKLSAgICB9Ci0KLSAgICBpZiAo
ZGVjb2RlZFNpemVzKSB7Ci0gICAgICAgIFVJTlQgdG90YWxEZWNvZGVkID0gMDsKLSAgICAgICAg
c2V0V2luZG93VGV4dChkaWFsb2csIElEQ19JTUFHRVNfREVDT0RFRF9DT1VOVCwgZGVjb2RlZFNp
emVzLT5kaWN0aW9uYXJ5KCksIGltYWdlc0tleSwgdG90YWxEZWNvZGVkKTsKLSAgICAgICAgc2V0
V2luZG93VGV4dChkaWFsb2csIElEQ19DU1NfREVDT0RFRF9DT1VOVCwgZGVjb2RlZFNpemVzLT5k
aWN0aW9uYXJ5KCksIHN0eWxlc2hlZXRzS2V5LCB0b3RhbERlY29kZWQpOwotICAgICAgICBzZXRX
aW5kb3dUZXh0KGRpYWxvZywgSURDX1hTTF9ERUNPREVEX0NPVU5ULCBkZWNvZGVkU2l6ZXMtPmRp
Y3Rpb25hcnkoKSwgeHNsS2V5LCB0b3RhbERlY29kZWQpOwotICAgICAgICBzZXRXaW5kb3dUZXh0
KGRpYWxvZywgSURDX0pTQ19ERUNPREVEX0NPVU5ULCBkZWNvZGVkU2l6ZXMtPmRpY3Rpb25hcnko
KSwgc2NyaXB0c0tleSwgdG90YWxEZWNvZGVkKTsKLSAgICAgICAgc2V0V2luZG93VGV4dChkaWFs
b2csIElEQ19UT1RBTF9ERUNPREVELCB0b3RhbERlY29kZWQpOwotICAgIH0KLQotICAgIGlmIChw
dXJnYWJsZVNpemVzKSB7Ci0gICAgICAgIFVJTlQgdG90YWxQdXJnYWJsZSA9IDA7Ci0gICAgICAg
IHNldFdpbmRvd1RleHQoZGlhbG9nLCBJRENfSU1BR0VTX1BVUkdFQUJMRV9DT1VOVCwgcHVyZ2Fi
bGVTaXplcy0+ZGljdGlvbmFyeSgpLCBpbWFnZXNLZXksIHRvdGFsUHVyZ2FibGUpOwotICAgICAg
ICBzZXRXaW5kb3dUZXh0KGRpYWxvZywgSURDX0NTU19QVVJHRUFCTEVfQ09VTlQsIHB1cmdhYmxl
U2l6ZXMtPmRpY3Rpb25hcnkoKSwgc3R5bGVzaGVldHNLZXksIHRvdGFsUHVyZ2FibGUpOwotICAg
ICAgICBzZXRXaW5kb3dUZXh0KGRpYWxvZywgSURDX1hTTF9QVVJHRUFCTEVfQ09VTlQsIHB1cmdh
YmxlU2l6ZXMtPmRpY3Rpb25hcnkoKSwgeHNsS2V5LCB0b3RhbFB1cmdhYmxlKTsKLSAgICAgICAg
c2V0V2luZG93VGV4dChkaWFsb2csIElEQ19KU0NfUFVSR0VBQkxFX0NPVU5ULCBwdXJnYWJsZVNp
emVzLT5kaWN0aW9uYXJ5KCksIHNjcmlwdHNLZXksIHRvdGFsUHVyZ2FibGUpOwotICAgICAgICBz
ZXRXaW5kb3dUZXh0KGRpYWxvZywgSURDX1RPVEFMX1BVUkdFQUJMRSwgdG90YWxQdXJnYWJsZSk7
Ci0gICAgfQotI2VuZGlmCi0KLSAgICAvLyBKYXZhU2NyaXB0IEhlYXAuCi0gICAgc2V0V2luZG93
VGV4dChkaWFsb2csIElEQ19KU0NfSEVBUF9TSVpFLCBzdGF0aXN0aWNzLCAiSmF2YVNjcmlwdEhl
YXBTaXplIik7Ci0gICAgc2V0V2luZG93VGV4dChkaWFsb2csIElEQ19KU0NfSEVBUF9GUkVFLCBz
dGF0aXN0aWNzLCAiSmF2YVNjcmlwdEZyZWVTaXplIik7Ci0KLSAgICBVSU5UIGNvdW50OwotICAg
IGlmIChTVUNDRUVERUQod2ViQ29yZVN0YXRpc3RpY3MtPmphdmFTY3JpcHRPYmplY3RzQ291bnQo
JmNvdW50KSkpCi0gICAgICAgIHNldFdpbmRvd1RleHQoZGlhbG9nLCBJRENfVE9UQUxfSlNDX0hF
QVBfT0JKRUNUUywgY291bnQpOwotICAgIGlmIChTVUNDRUVERUQod2ViQ29yZVN0YXRpc3RpY3Mt
PmphdmFTY3JpcHRHbG9iYWxPYmplY3RzQ291bnQoJmNvdW50KSkpCi0gICAgICAgIHNldFdpbmRv
d1RleHQoZGlhbG9nLCBJRENfR0xPQkFMX0pTQ19IRUFQX09CSkVDVFMsIGNvdW50KTsKLSAgICBp
ZiAoU1VDQ0VFREVEKHdlYkNvcmVTdGF0aXN0aWNzLT5qYXZhU2NyaXB0UHJvdGVjdGVkT2JqZWN0
c0NvdW50KCZjb3VudCkpKQotICAgICAgICBzZXRXaW5kb3dUZXh0KGRpYWxvZywgSURDX1BST1RF
Q1RFRF9KU0NfSEVBUF9PQkpFQ1RTLCBjb3VudCk7Ci0KLSAgICAvLyBGb250IGFuZCBHbHlwaCBD
YWNoZXMuCi0gICAgaWYgKFNVQ0NFRURFRCh3ZWJDb3JlU3RhdGlzdGljcy0+Y2FjaGVkRm9udERh
dGFDb3VudCgmY291bnQpKSkKLSAgICAgICAgc2V0V2luZG93VGV4dChkaWFsb2csIElEQ19UT1RB
TF9GT05UX09CSkVDVFMsIGNvdW50KTsKLSAgICBpZiAoU1VDQ0VFREVEKHdlYkNvcmVTdGF0aXN0
aWNzLT5jYWNoZWRGb250RGF0YUluYWN0aXZlQ291bnQoJmNvdW50KSkpCi0gICAgICAgIHNldFdp
bmRvd1RleHQoZGlhbG9nLCBJRENfSU5BQ1RJVkVfRk9OVF9PQkpFQ1RTLCBjb3VudCk7Ci0gICAg
aWYgKFNVQ0NFRURFRCh3ZWJDb3JlU3RhdGlzdGljcy0+Z2x5cGhQYWdlQ291bnQoJmNvdW50KSkp
Ci0gICAgICAgIHNldFdpbmRvd1RleHQoZGlhbG9nLCBJRENfR0xZUEhfUEFHRVMsIGNvdW50KTsK
LQotICAgIC8vIFNpdGUgSWNvbiBEYXRhYmFzZS4KLSAgICBpZiAoU1VDQ0VFREVEKHdlYkNvcmVT
dGF0aXN0aWNzLT5pY29uUGFnZVVSTE1hcHBpbmdDb3VudCgmY291bnQpKSkKLSAgICAgICAgc2V0
V2luZG93VGV4dChkaWFsb2csIElEQ19QQUdFX1VSTF9NQVBQSU5HUywgY291bnQpOwotICAgIGlm
IChTVUNDRUVERUQod2ViQ29yZVN0YXRpc3RpY3MtPmljb25SZXRhaW5lZFBhZ2VVUkxDb3VudCgm
Y291bnQpKSkKLSAgICAgICAgc2V0V2luZG93VGV4dChkaWFsb2csIElEQ19SRVRBSU5FRF9QQUdF
X1VSTFMsIGNvdW50KTsKLSAgICBpZiAoU1VDQ0VFREVEKHdlYkNvcmVTdGF0aXN0aWNzLT5pY29u
UmVjb3JkQ291bnQoJmNvdW50KSkpCi0gICAgICAgIHNldFdpbmRvd1RleHQoZGlhbG9nLCBJRENf
U0lURV9JQ09OX1JFQ09SRFMsIGNvdW50KTsKLSAgICBpZiAoU1VDQ0VFREVEKHdlYkNvcmVTdGF0
aXN0aWNzLT5pY29uc1dpdGhEYXRhQ291bnQoJmNvdW50KSkpCi0gICAgICAgIHNldFdpbmRvd1Rl
eHQoZGlhbG9nLCBJRENfU0lURV9JQ09OU19XSVRIX0RBVEEsIGNvdW50KTsKLX0KLQogc3RhdGlj
IHZvaWQgcGFyc2VDb21tYW5kTGluZShib29sJiB1c2VzTGF5ZXJlZFdlYlZpZXcsIGJvb2wmIHVz
ZUZ1bGxEZXNrdG9wLCBib29sJiBwYWdlTG9hZFRlc3RpbmcsIF9ic3RyX3QmIHJlcXVlc3RlZFVS
TCkKIHsKICAgICB1c2VzTGF5ZXJlZFdlYlZpZXcgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L01pbmlCcm93c2VyL3dpbi9NYWluV2luZG93LmNwcCBiL1Rvb2xzL01pbmlCcm93c2VyL3dpbi9N
YWluV2luZG93LmNwcAppbmRleCA3YmZjNmRmZTk4YTlhZDk5MTQyYjIyYzYyOTU5OTM5OWM3MTAw
ZWNiLi5hOGRlMGM2NmJhNjUwOTFhMzdjOTQyZDAxZGY3NDg2ZWY2OGVjYzczIDEwMDY0NAotLS0g
YS9Ub29scy9NaW5pQnJvd3Nlci93aW4vTWFpbldpbmRvdy5jcHAKKysrIGIvVG9vbHMvTWluaUJy
b3dzZXIvd2luL01haW5XaW5kb3cuY3BwCkBAIC00OSw3ICs0OSw2IEBAIElOVF9QVFIgQ0FMTEJB
Q0sgQWJvdXQoSFdORCwgVUlOVCwgV1BBUkFNLCBMUEFSQU0pOwogSU5UX1BUUiBDQUxMQkFDSyBD
dXN0b21Vc2VyQWdlbnQoSFdORCwgVUlOVCwgV1BBUkFNLCBMUEFSQU0pOwogSU5UX1BUUiBDQUxM
QkFDSyBDYWNoZXMoSFdORCwgVUlOVCwgV1BBUkFNLCBMUEFSQU0pOwogSU5UX1BUUiBDQUxMQkFD
SyBBdXRoRGlhbG9nUHJvYyhIV05ELCBVSU5ULCBXUEFSQU0sIExQQVJBTSk7Ci12b2lkIFByaW50
VmlldyhIV05EIGhXbmQsIFVJTlQgbWVzc2FnZSwgV1BBUkFNIHdQYXJhbSwgTFBBUkFNIGxQYXJh
bSk7CiBib29sIFRvZ2dsZU1lbnVJdGVtKEhXTkQgaFduZCwgVUlOVCBtZW51SUQpOwogCiBzdGQ6
OndzdHJpbmcgTWFpbldpbmRvdzo6c193aW5kb3dDbGFzczsKQEAgLTE2Niw3ICsxNjUsNyBAQCBM
UkVTVUxUIENBTExCQUNLIE1haW5XaW5kb3c6OlduZFByb2MoSFdORCBoV25kLCBVSU5UIG1lc3Nh
Z2UsIFdQQVJBTSB3UGFyYW0sIExQQQogICAgICAgICAgICAgRGVzdHJveVdpbmRvdyhoV25kKTsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIElETV9QUklOVDoKLSAgICAgICAgICAg
IFByaW50VmlldyhoV25kLCBtZXNzYWdlLCB3UGFyYW0sIGxQYXJhbSk7CisgICAgICAgICAgICBn
TWluaUJyb3dzZXItPnByaW50KCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBJ
RE1fV0VCX0lOU1BFQ1RPUjoKICAgICAgICAgICAgIGlmIChnTWluaUJyb3dzZXIpCmRpZmYgLS1n
aXQgYS9Ub29scy9NaW5pQnJvd3Nlci93aW4vTWluaUJyb3dzZXIuY3BwIGIvVG9vbHMvTWluaUJy
b3dzZXIvd2luL01pbmlCcm93c2VyLmNwcAppbmRleCAyNzZhZTdkMzAwNDcwMTIzMTcwNGE0NmU4
MDQ2NzU4ODc3OWZlNmZkLi45NmVjM2VhYzVmYjI4ODQ4ZmExNzU1YzgzNTBiYzE1YTkyNDFmYWVm
IDEwMDY0NAotLS0gYS9Ub29scy9NaW5pQnJvd3Nlci93aW4vTWluaUJyb3dzZXIuY3BwCisrKyBi
L1Rvb2xzL01pbmlCcm93c2VyL3dpbi9NaW5pQnJvd3Nlci5jcHAKQEAgLTM4LDIwICszOCwxOSBA
QAogI2luY2x1ZGUgIlByaW50V2ViVUlEZWxlZ2F0ZS5oIgogI2luY2x1ZGUgIlJlc291cmNlTG9h
ZERlbGVnYXRlLmgiCiAjaW5jbHVkZSAiV2ViRG93bmxvYWREZWxlZ2F0ZS5oIgorI2luY2x1ZGUg
PFdlYkNvcmUvQ09NUHRyLmg+CiAjaW5jbHVkZSA8V2ViS2l0TGVnYWN5L1dlYktpdENPTUFQSS5o
PgotI2luY2x1ZGUgPHd0Zi9FeHBvcnRNYWNyb3MuaD4KLSNpbmNsdWRlIDx3dGYvUGxhdGZvcm0u
aD4KLQotI2lmIFVTRShDRikKLSNpbmNsdWRlIDxDb3JlRm91bmRhdGlvbi9DRlJ1bkxvb3AuaD4K
LSNlbmRpZgotCiAjaW5jbHVkZSA8YWxnb3JpdGhtPgogI2luY2x1ZGUgPGNhc3NlcnQ+CiAjaW5j
bHVkZSA8ZnVuY3Rpb25hbD4KICNpbmNsdWRlIDxtZW1vcnk+CiAjaW5jbHVkZSA8c3RyaW5nPgog
I2luY2x1ZGUgPHZlY3Rvcj4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworI2lm
IFVTRShDRikKKyNpbmNsdWRlIDxXZWJLaXRMZWdhY3kvQ0ZEaWN0aW9uYXJ5UHJvcGVydHlCYWcu
aD4KKyNlbmRpZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBmbG9hdCBkZXZpY2VTY2FsZUZhY3Rv
ckZvcldpbmRvdyhIV05EKTsKQEAgLTYyNSwzICs2MjQsMjcyIEBAIHZvaWQgTWluaUJyb3dzZXI6
OnVwZGF0ZURldmljZVNjYWxlRmFjdG9yKCkKICAgICBtX2RldmljZVNjYWxlRmFjdG9yID0gV2Vi
Q29yZTo6ZGV2aWNlU2NhbGVGYWN0b3JGb3JXaW5kb3cobV9oTWFpblduZCk7CiAgICAgZ2VuZXJh
dGVGb250Rm9yU2NhbGVGYWN0b3IobV9kZXZpY2VTY2FsZUZhY3Rvcik7CiB9CisKK3N0YXRpYyBC
T09MIENBTExCQUNLIEFib3J0UHJvYyhIREMgaERDLCBpbnQgRXJyb3IpCit7CisgICAgTVNHIG1z
ZzsKKyAgICB3aGlsZSAoOjpQZWVrTWVzc2FnZSgmbXNnLCAwLCAwLCAwLCBQTV9SRU1PVkUpKSB7
CisgICAgICAgIDo6VHJhbnNsYXRlTWVzc2FnZSgmbXNnKTsKKyAgICAgICAgOjpEaXNwYXRjaE1l
c3NhZ2UoJm1zZyk7CisgICAgfQorCisgICAgcmV0dXJuIFRSVUU7Cit9CisKK3N0YXRpYyBIREMg
Z2V0UHJpbnRlckRDKCkKK3sKKyAgICBQUklOVERMRyBwZGxnOworICAgIG1lbXNldCgmcGRsZywg
MCwgc2l6ZW9mKFBSSU5URExHKSk7CisgICAgcGRsZy5sU3RydWN0U2l6ZSA9IHNpemVvZihQUklO
VERMRyk7CisgICAgcGRsZy5GbGFncyA9IFBEX1BSSU5UU0VUVVAgfCBQRF9SRVRVUk5EQzsKKwor
ICAgIDo6UHJpbnREbGcoJnBkbGcpOworCisgICAgcmV0dXJuIHBkbGcuaERDOworfQorCitzdGF0
aWMgdm9pZCBpbml0RG9jU3RydWN0KERPQ0lORk8qIGRpLCBUQ0hBUiogZG9jbmFtZSkKK3sKKyAg
ICBtZW1zZXQoZGksIDAsIHNpemVvZihET0NJTkZPKSk7CisgICAgZGktPmNiU2l6ZSA9IHNpemVv
ZihET0NJTkZPKTsKKyAgICBkaS0+bHBzekRvY05hbWUgPSBkb2NuYW1lOworfQorCit2b2lkIE1p
bmlCcm93c2VyOjpwcmludCgpCit7CisgICAgSERDIHByaW50REMgPSBnZXRQcmludGVyREMoKTsK
KyAgICBpZiAoIXByaW50REMpIHsKKyAgICAgICAgOjpNZXNzYWdlQm94KDAsIEwiRXJyb3IgY3Jl
YXRpbmcgcHJpbnRpbmcgREMiLCBMIkVycm9yIiwgTUJfQVBQTE1PREFMIHwgTUJfT0spOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKDo6U2V0QWJvcnRQcm9jKHByaW50REMsIEFi
b3J0UHJvYykgPT0gU1BfRVJST1IpIHsKKyAgICAgICAgOjpNZXNzYWdlQm94KDAsIEwiRXJyb3Ig
c2V0dGluZyB1cCBBYm9ydFByb2MiLCBMIkVycm9yIiwgTUJfQVBQTE1PREFMIHwgTUJfT0spOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgSVdlYkZyYW1lUHRyIGZyYW1lID0gbWFpbkZy
YW1lKCk7CisgICAgaWYgKCFmcmFtZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgSVdlYkZyYW1l
UHJpdmF0ZVB0ciBmcmFtZVByaXZhdGU7CisgICAgaWYgKEZBSUxFRChmcmFtZS0+UXVlcnlJbnRl
cmZhY2UoJmZyYW1lUHJpdmF0ZS5HZXRJbnRlcmZhY2VQdHIoKSkpKQorICAgICAgICByZXR1cm47
CisKKyAgICBmcmFtZVByaXZhdGUtPnNldEluUHJpbnRpbmdNb2RlKFRSVUUsIHByaW50REMpOwor
CisgICAgVUlOVCBwYWdlQ291bnQgPSAwOworICAgIGZyYW1lUHJpdmF0ZS0+Z2V0UHJpbnRlZFBh
Z2VDb3VudChwcmludERDLCAmcGFnZUNvdW50KTsKKworICAgIERPQ0lORk8gZGk7CisgICAgaW5p
dERvY1N0cnVjdCgmZGksIEwiV2ViS2l0IERvYyIpOworICAgIDo6U3RhcnREb2MocHJpbnREQywg
JmRpKTsKKworICAgIC8vIEZJWE1FOiBOZWVkIENvcmVHcmFwaGljcyBpbXBsZW1lbnRhdGlvbgor
ICAgIHZvaWQqIGdyYXBoaWNzQ29udGV4dCA9IDA7CisgICAgZm9yIChzaXplX3QgcGFnZSA9IDE7
IHBhZ2UgPD0gcGFnZUNvdW50OyArK3BhZ2UpIHsKKyAgICAgICAgOjpTdGFydFBhZ2UocHJpbnRE
Qyk7CisgICAgICAgIGZyYW1lUHJpdmF0ZS0+c3Bvb2xQYWdlcyhwcmludERDLCBwYWdlLCBwYWdl
LCBncmFwaGljc0NvbnRleHQpOworICAgICAgICA6OkVuZFBhZ2UocHJpbnREQyk7CisgICAgfQor
CisgICAgZnJhbWVQcml2YXRlLT5zZXRJblByaW50aW5nTW9kZShGQUxTRSwgcHJpbnREQyk7CisK
KyAgICA6OkVuZERvYyhwcmludERDKTsKKyAgICA6OkRlbGV0ZURDKHByaW50REMpOworfQorCitz
dGF0aWMgdm9pZCBzZXRXaW5kb3dUZXh0KEhXTkQgZGlhbG9nLCBVSU5UIGZpZWxkLCBfYnN0cl90
IHZhbHVlKQoreworICAgIDo6U2V0RGxnSXRlbVRleHQoZGlhbG9nLCBmaWVsZCwgdmFsdWUpOwor
fQorCitzdGF0aWMgdm9pZCBzZXRXaW5kb3dUZXh0KEhXTkQgZGlhbG9nLCBVSU5UIGZpZWxkLCBV
SU5UIHZhbHVlKQoreworICAgIFN0cmluZyB2YWx1ZVN0ciA9IFdURjo6U3RyaW5nOjpudW1iZXIo
dmFsdWUpOworCisgICAgc2V0V2luZG93VGV4dChkaWFsb2csIGZpZWxkLCBfYnN0cl90KHZhbHVl
U3RyLnV0ZjgoKS5kYXRhKCkpKTsKK30KKwordHlwZWRlZiBfY29tX3B0cl90PF9jb21fSUlJRDxJ
UHJvcGVydHlCYWcsICZfX3V1aWRvZihJUHJvcGVydHlCYWcpPj4gSVByb3BlcnR5QmFnUHRyOwor
CitzdGF0aWMgdm9pZCBzZXRXaW5kb3dUZXh0KEhXTkQgZGlhbG9nLCBVSU5UIGZpZWxkLCBJUHJv
cGVydHlCYWdQdHIgc3RhdGlzdGljcywgY29uc3QgX2JzdHJfdCYga2V5KQoreworICAgIF92YXJp
YW50X3QgdmFyOworICAgIFZfVlQoJnZhcikgPSBWVF9VSTg7CisgICAgaWYgKEZBSUxFRChzdGF0
aXN0aWNzLT5SZWFkKGtleSwgJnZhci5HZXRWQVJJQU5UKCksIG51bGxwdHIpKSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgdW5zaWduZWQgbG9uZyBsb25nIHZhbHVlID0gVl9VSTgoJnZhcik7Cisg
ICAgU3RyaW5nIHZhbHVlU3RyID0gV1RGOjpTdHJpbmc6Om51bWJlcih2YWx1ZSk7CisKKyAgICBz
ZXRXaW5kb3dUZXh0KGRpYWxvZywgZmllbGQsIF9ic3RyX3QodmFsdWVTdHIudXRmOCgpLmRhdGEo
KSkpOworfQorCitzdGF0aWMgdm9pZCBzZXRXaW5kb3dUZXh0KEhXTkQgZGlhbG9nLCBVSU5UIGZp
ZWxkLCBDRkRpY3Rpb25hcnlSZWYgZGljdGlvbmFyeSwgQ0ZTdHJpbmdSZWYga2V5LCBVSU5UJiB0
b3RhbCkKK3sKKyAgICBDRk51bWJlclJlZiBjb3VudE51bSA9IHN0YXRpY19jYXN0PENGTnVtYmVy
UmVmPihDRkRpY3Rpb25hcnlHZXRWYWx1ZShkaWN0aW9uYXJ5LCBrZXkpKTsKKyAgICBpZiAoIWNv
dW50TnVtKQorICAgICAgICByZXR1cm47CisKKyAgICBpbnQgY291bnQgPSAwOworICAgIENGTnVt
YmVyR2V0VmFsdWUoY291bnROdW0sIGtDRk51bWJlckludFR5cGUsICZjb3VudCk7CisKKyAgICBz
ZXRXaW5kb3dUZXh0KGRpYWxvZywgZmllbGQsIHN0YXRpY19jYXN0PFVJTlQ+KGNvdW50KSk7Cisg
ICAgdG90YWwgKz0gY291bnQ7Cit9CisKK3ZvaWQgTWluaUJyb3dzZXI6OnVwZGF0ZVN0YXRpc3Rp
Y3MoSFdORCBkaWFsb2cpCit7CisgICAgSVdlYkNvcmVTdGF0aXN0aWNzUHRyIHdlYkNvcmVTdGF0
aXN0aWNzID0gc3RhdGlzdGljcygpOworICAgIGlmICghd2ViQ29yZVN0YXRpc3RpY3MpCisgICAg
ICAgIHJldHVybjsKKworICAgIElQcm9wZXJ0eUJhZ1B0ciBzdGF0aXN0aWNzOworICAgIEhSRVNV
TFQgaHIgPSB3ZWJDb3JlU3RhdGlzdGljcy0+bWVtb3J5U3RhdGlzdGljcygmc3RhdGlzdGljcy5H
ZXRJbnRlcmZhY2VQdHIoKSk7CisgICAgaWYgKEZBSUxFRChocikpCisgICAgICAgIHJldHVybjsK
KworICAgIC8vIEZhc3RNYWxsb2MuCisgICAgc2V0V2luZG93VGV4dChkaWFsb2csIElEQ19SRVNF
UlZFRF9WTSwgc3RhdGlzdGljcywgIkZhc3RNYWxsb2NSZXNlcnZlZFZNQnl0ZXMiKTsKKyAgICBz
ZXRXaW5kb3dUZXh0KGRpYWxvZywgSURDX0NPTU1JVFRFRF9WTSwgc3RhdGlzdGljcywgIkZhc3RN
YWxsb2NDb21taXR0ZWRWTUJ5dGVzIik7CisgICAgc2V0V2luZG93VGV4dChkaWFsb2csIElEQ19G
UkVFX0xJU1RfQllURVMsIHN0YXRpc3RpY3MsICJGYXN0TWFsbG9jRnJlZUxpc3RCeXRlcyIpOwor
CisgICAgLy8gV2ViQ29yZSBDYWNoZS4KKyNpZiBVU0UoQ0YpCisgICAgSVdlYkNhY2hlUHRyIHdl
YkNhY2hlID0gdGhpcy0+d2ViQ2FjaGUoKTsKKworICAgIGludCBkaWN0Q291bnQgPSA2OworICAg
IElQcm9wZXJ0eUJhZyogY2FjaGVEaWN0WzZdID0geyAwIH07CisgICAgaWYgKEZBSUxFRCh3ZWJD
YWNoZS0+c3RhdGlzdGljcygmZGljdENvdW50LCBjYWNoZURpY3QpKSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgQ09NUHRyPENGRGljdGlvbmFyeVByb3BlcnR5QmFnPiBjb3VudHMsIHNpemVzLCBs
aXZlU2l6ZXMsIGRlY29kZWRTaXplcywgcHVyZ2FibGVTaXplczsKKyAgICBjb3VudHMuYWRvcHRS
ZWYocmVpbnRlcnByZXRfY2FzdDxDRkRpY3Rpb25hcnlQcm9wZXJ0eUJhZyo+KGNhY2hlRGljdFsw
XSkpOworICAgIHNpemVzLmFkb3B0UmVmKHJlaW50ZXJwcmV0X2Nhc3Q8Q0ZEaWN0aW9uYXJ5UHJv
cGVydHlCYWcqPihjYWNoZURpY3RbMV0pKTsKKyAgICBsaXZlU2l6ZXMuYWRvcHRSZWYocmVpbnRl
cnByZXRfY2FzdDxDRkRpY3Rpb25hcnlQcm9wZXJ0eUJhZyo+KGNhY2hlRGljdFsyXSkpOworICAg
IGRlY29kZWRTaXplcy5hZG9wdFJlZihyZWludGVycHJldF9jYXN0PENGRGljdGlvbmFyeVByb3Bl
cnR5QmFnKj4oY2FjaGVEaWN0WzNdKSk7CisgICAgcHVyZ2FibGVTaXplcy5hZG9wdFJlZihyZWlu
dGVycHJldF9jYXN0PENGRGljdGlvbmFyeVByb3BlcnR5QmFnKj4oY2FjaGVEaWN0WzRdKSk7CisK
KyAgICBzdGF0aWMgQ0ZTdHJpbmdSZWYgaW1hZ2VzS2V5ID0gQ0ZTVFIoImltYWdlcyIpOworICAg
IHN0YXRpYyBDRlN0cmluZ1JlZiBzdHlsZXNoZWV0c0tleSA9IENGU1RSKCJzdHlsZSBzaGVldHMi
KTsKKyAgICBzdGF0aWMgQ0ZTdHJpbmdSZWYgeHNsS2V5ID0gQ0ZTVFIoInhzbCIpOworICAgIHN0
YXRpYyBDRlN0cmluZ1JlZiBzY3JpcHRzS2V5ID0gQ0ZTVFIoInNjcmlwdHMiKTsKKworICAgIGlm
IChjb3VudHMpIHsKKyAgICAgICAgVUlOVCB0b3RhbE9iamVjdHMgPSAwOworICAgICAgICBzZXRX
aW5kb3dUZXh0KGRpYWxvZywgSURDX0lNQUdFU19PQkpFQ1RfQ09VTlQsIGNvdW50cy0+ZGljdGlv
bmFyeSgpLCBpbWFnZXNLZXksIHRvdGFsT2JqZWN0cyk7CisgICAgICAgIHNldFdpbmRvd1RleHQo
ZGlhbG9nLCBJRENfQ1NTX09CSkVDVF9DT1VOVCwgY291bnRzLT5kaWN0aW9uYXJ5KCksIHN0eWxl
c2hlZXRzS2V5LCB0b3RhbE9iamVjdHMpOworICAgICAgICBzZXRXaW5kb3dUZXh0KGRpYWxvZywg
SURDX1hTTF9PQkpFQ1RfQ09VTlQsIGNvdW50cy0+ZGljdGlvbmFyeSgpLCB4c2xLZXksIHRvdGFs
T2JqZWN0cyk7CisgICAgICAgIHNldFdpbmRvd1RleHQoZGlhbG9nLCBJRENfSlNDX09CSkVDVF9D
T1VOVCwgY291bnRzLT5kaWN0aW9uYXJ5KCksIHNjcmlwdHNLZXksIHRvdGFsT2JqZWN0cyk7Cisg
ICAgICAgIHNldFdpbmRvd1RleHQoZGlhbG9nLCBJRENfVE9UQUxfT0JKRUNUX0NPVU5ULCB0b3Rh
bE9iamVjdHMpOworICAgIH0KKworICAgIGlmIChzaXplcykgeworICAgICAgICBVSU5UIHRvdGFs
Qnl0ZXMgPSAwOworICAgICAgICBzZXRXaW5kb3dUZXh0KGRpYWxvZywgSURDX0lNQUdFU19CWVRF
Uywgc2l6ZXMtPmRpY3Rpb25hcnkoKSwgaW1hZ2VzS2V5LCB0b3RhbEJ5dGVzKTsKKyAgICAgICAg
c2V0V2luZG93VGV4dChkaWFsb2csIElEQ19DU1NfQllURVMsIHNpemVzLT5kaWN0aW9uYXJ5KCks
IHN0eWxlc2hlZXRzS2V5LCB0b3RhbEJ5dGVzKTsKKyAgICAgICAgc2V0V2luZG93VGV4dChkaWFs
b2csIElEQ19YU0xfQllURVMsIHNpemVzLT5kaWN0aW9uYXJ5KCksIHhzbEtleSwgdG90YWxCeXRl
cyk7CisgICAgICAgIHNldFdpbmRvd1RleHQoZGlhbG9nLCBJRENfSlNDX0JZVEVTLCBzaXplcy0+
ZGljdGlvbmFyeSgpLCBzY3JpcHRzS2V5LCB0b3RhbEJ5dGVzKTsKKyAgICAgICAgc2V0V2luZG93
VGV4dChkaWFsb2csIElEQ19UT1RBTF9CWVRFUywgdG90YWxCeXRlcyk7CisgICAgfQorCisgICAg
aWYgKGxpdmVTaXplcykgeworICAgICAgICBVSU5UIHRvdGFsTGl2ZUJ5dGVzID0gMDsKKyAgICAg
ICAgc2V0V2luZG93VGV4dChkaWFsb2csIElEQ19JTUFHRVNfTElWRV9DT1VOVCwgbGl2ZVNpemVz
LT5kaWN0aW9uYXJ5KCksIGltYWdlc0tleSwgdG90YWxMaXZlQnl0ZXMpOworICAgICAgICBzZXRX
aW5kb3dUZXh0KGRpYWxvZywgSURDX0NTU19MSVZFX0NPVU5ULCBsaXZlU2l6ZXMtPmRpY3Rpb25h
cnkoKSwgc3R5bGVzaGVldHNLZXksIHRvdGFsTGl2ZUJ5dGVzKTsKKyAgICAgICAgc2V0V2luZG93
VGV4dChkaWFsb2csIElEQ19YU0xfTElWRV9DT1VOVCwgbGl2ZVNpemVzLT5kaWN0aW9uYXJ5KCks
IHhzbEtleSwgdG90YWxMaXZlQnl0ZXMpOworICAgICAgICBzZXRXaW5kb3dUZXh0KGRpYWxvZywg
SURDX0pTQ19MSVZFX0NPVU5ULCBsaXZlU2l6ZXMtPmRpY3Rpb25hcnkoKSwgc2NyaXB0c0tleSwg
dG90YWxMaXZlQnl0ZXMpOworICAgICAgICBzZXRXaW5kb3dUZXh0KGRpYWxvZywgSURDX1RPVEFM
X0xJVkVfQ09VTlQsIHRvdGFsTGl2ZUJ5dGVzKTsKKyAgICB9CisKKyAgICBpZiAoZGVjb2RlZFNp
emVzKSB7CisgICAgICAgIFVJTlQgdG90YWxEZWNvZGVkID0gMDsKKyAgICAgICAgc2V0V2luZG93
VGV4dChkaWFsb2csIElEQ19JTUFHRVNfREVDT0RFRF9DT1VOVCwgZGVjb2RlZFNpemVzLT5kaWN0
aW9uYXJ5KCksIGltYWdlc0tleSwgdG90YWxEZWNvZGVkKTsKKyAgICAgICAgc2V0V2luZG93VGV4
dChkaWFsb2csIElEQ19DU1NfREVDT0RFRF9DT1VOVCwgZGVjb2RlZFNpemVzLT5kaWN0aW9uYXJ5
KCksIHN0eWxlc2hlZXRzS2V5LCB0b3RhbERlY29kZWQpOworICAgICAgICBzZXRXaW5kb3dUZXh0
KGRpYWxvZywgSURDX1hTTF9ERUNPREVEX0NPVU5ULCBkZWNvZGVkU2l6ZXMtPmRpY3Rpb25hcnko
KSwgeHNsS2V5LCB0b3RhbERlY29kZWQpOworICAgICAgICBzZXRXaW5kb3dUZXh0KGRpYWxvZywg
SURDX0pTQ19ERUNPREVEX0NPVU5ULCBkZWNvZGVkU2l6ZXMtPmRpY3Rpb25hcnkoKSwgc2NyaXB0
c0tleSwgdG90YWxEZWNvZGVkKTsKKyAgICAgICAgc2V0V2luZG93VGV4dChkaWFsb2csIElEQ19U
T1RBTF9ERUNPREVELCB0b3RhbERlY29kZWQpOworICAgIH0KKworICAgIGlmIChwdXJnYWJsZVNp
emVzKSB7CisgICAgICAgIFVJTlQgdG90YWxQdXJnYWJsZSA9IDA7CisgICAgICAgIHNldFdpbmRv
d1RleHQoZGlhbG9nLCBJRENfSU1BR0VTX1BVUkdFQUJMRV9DT1VOVCwgcHVyZ2FibGVTaXplcy0+
ZGljdGlvbmFyeSgpLCBpbWFnZXNLZXksIHRvdGFsUHVyZ2FibGUpOworICAgICAgICBzZXRXaW5k
b3dUZXh0KGRpYWxvZywgSURDX0NTU19QVVJHRUFCTEVfQ09VTlQsIHB1cmdhYmxlU2l6ZXMtPmRp
Y3Rpb25hcnkoKSwgc3R5bGVzaGVldHNLZXksIHRvdGFsUHVyZ2FibGUpOworICAgICAgICBzZXRX
aW5kb3dUZXh0KGRpYWxvZywgSURDX1hTTF9QVVJHRUFCTEVfQ09VTlQsIHB1cmdhYmxlU2l6ZXMt
PmRpY3Rpb25hcnkoKSwgeHNsS2V5LCB0b3RhbFB1cmdhYmxlKTsKKyAgICAgICAgc2V0V2luZG93
VGV4dChkaWFsb2csIElEQ19KU0NfUFVSR0VBQkxFX0NPVU5ULCBwdXJnYWJsZVNpemVzLT5kaWN0
aW9uYXJ5KCksIHNjcmlwdHNLZXksIHRvdGFsUHVyZ2FibGUpOworICAgICAgICBzZXRXaW5kb3dU
ZXh0KGRpYWxvZywgSURDX1RPVEFMX1BVUkdFQUJMRSwgdG90YWxQdXJnYWJsZSk7CisgICAgfQor
I2VuZGlmCisKKyAgICAvLyBKYXZhU2NyaXB0IEhlYXAuCisgICAgc2V0V2luZG93VGV4dChkaWFs
b2csIElEQ19KU0NfSEVBUF9TSVpFLCBzdGF0aXN0aWNzLCAiSmF2YVNjcmlwdEhlYXBTaXplIik7
CisgICAgc2V0V2luZG93VGV4dChkaWFsb2csIElEQ19KU0NfSEVBUF9GUkVFLCBzdGF0aXN0aWNz
LCAiSmF2YVNjcmlwdEZyZWVTaXplIik7CisKKyAgICBVSU5UIGNvdW50OworICAgIGlmIChTVUND
RUVERUQod2ViQ29yZVN0YXRpc3RpY3MtPmphdmFTY3JpcHRPYmplY3RzQ291bnQoJmNvdW50KSkp
CisgICAgICAgIHNldFdpbmRvd1RleHQoZGlhbG9nLCBJRENfVE9UQUxfSlNDX0hFQVBfT0JKRUNU
UywgY291bnQpOworICAgIGlmIChTVUNDRUVERUQod2ViQ29yZVN0YXRpc3RpY3MtPmphdmFTY3Jp
cHRHbG9iYWxPYmplY3RzQ291bnQoJmNvdW50KSkpCisgICAgICAgIHNldFdpbmRvd1RleHQoZGlh
bG9nLCBJRENfR0xPQkFMX0pTQ19IRUFQX09CSkVDVFMsIGNvdW50KTsKKyAgICBpZiAoU1VDQ0VF
REVEKHdlYkNvcmVTdGF0aXN0aWNzLT5qYXZhU2NyaXB0UHJvdGVjdGVkT2JqZWN0c0NvdW50KCZj
b3VudCkpKQorICAgICAgICBzZXRXaW5kb3dUZXh0KGRpYWxvZywgSURDX1BST1RFQ1RFRF9KU0Nf
SEVBUF9PQkpFQ1RTLCBjb3VudCk7CisKKyAgICAvLyBGb250IGFuZCBHbHlwaCBDYWNoZXMuCisg
ICAgaWYgKFNVQ0NFRURFRCh3ZWJDb3JlU3RhdGlzdGljcy0+Y2FjaGVkRm9udERhdGFDb3VudCgm
Y291bnQpKSkKKyAgICAgICAgc2V0V2luZG93VGV4dChkaWFsb2csIElEQ19UT1RBTF9GT05UX09C
SkVDVFMsIGNvdW50KTsKKyAgICBpZiAoU1VDQ0VFREVEKHdlYkNvcmVTdGF0aXN0aWNzLT5jYWNo
ZWRGb250RGF0YUluYWN0aXZlQ291bnQoJmNvdW50KSkpCisgICAgICAgIHNldFdpbmRvd1RleHQo
ZGlhbG9nLCBJRENfSU5BQ1RJVkVfRk9OVF9PQkpFQ1RTLCBjb3VudCk7CisgICAgaWYgKFNVQ0NF
RURFRCh3ZWJDb3JlU3RhdGlzdGljcy0+Z2x5cGhQYWdlQ291bnQoJmNvdW50KSkpCisgICAgICAg
IHNldFdpbmRvd1RleHQoZGlhbG9nLCBJRENfR0xZUEhfUEFHRVMsIGNvdW50KTsKKworICAgIC8v
IFNpdGUgSWNvbiBEYXRhYmFzZS4KKyAgICBpZiAoU1VDQ0VFREVEKHdlYkNvcmVTdGF0aXN0aWNz
LT5pY29uUGFnZVVSTE1hcHBpbmdDb3VudCgmY291bnQpKSkKKyAgICAgICAgc2V0V2luZG93VGV4
dChkaWFsb2csIElEQ19QQUdFX1VSTF9NQVBQSU5HUywgY291bnQpOworICAgIGlmIChTVUNDRUVE
RUQod2ViQ29yZVN0YXRpc3RpY3MtPmljb25SZXRhaW5lZFBhZ2VVUkxDb3VudCgmY291bnQpKSkK
KyAgICAgICAgc2V0V2luZG93VGV4dChkaWFsb2csIElEQ19SRVRBSU5FRF9QQUdFX1VSTFMsIGNv
dW50KTsKKyAgICBpZiAoU1VDQ0VFREVEKHdlYkNvcmVTdGF0aXN0aWNzLT5pY29uUmVjb3JkQ291
bnQoJmNvdW50KSkpCisgICAgICAgIHNldFdpbmRvd1RleHQoZGlhbG9nLCBJRENfU0lURV9JQ09O
X1JFQ09SRFMsIGNvdW50KTsKKyAgICBpZiAoU1VDQ0VFREVEKHdlYkNvcmVTdGF0aXN0aWNzLT5p
Y29uc1dpdGhEYXRhQ291bnQoJmNvdW50KSkpCisgICAgICAgIHNldFdpbmRvd1RleHQoZGlhbG9n
LCBJRENfU0lURV9JQ09OU19XSVRIX0RBVEEsIGNvdW50KTsKK30KKwordm9pZCBNaW5pQnJvd3Nl
cjo6c2V0UHJlZmVyZW5jZShVSU5UIG1lbnVJRCwgYm9vbCBlbmFibGUpCit7CisgICAgaWYgKCFz
dGFuZGFyZFByZWZlcmVuY2VzKCkgfHwgIXByaXZhdGVQcmVmZXJlbmNlcygpKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBzd2l0Y2ggKG1lbnVJRCkgeworICAgIGNhc2UgSURNX0FWRk9VTkRBVElP
TjoKKyAgICAgICAgc3RhbmRhcmRQcmVmZXJlbmNlcygpLT5zZXRBVkZvdW5kYXRpb25FbmFibGVk
KGVuYWJsZSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSURNX0FDQ19DT01QT1NJVElORzoK
KyAgICAgICAgcHJpdmF0ZVByZWZlcmVuY2VzKCktPnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdF
bmFibGVkKGVuYWJsZSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSURNX1dLX0ZVTExTQ1JF
RU46CisgICAgICAgIHByaXZhdGVQcmVmZXJlbmNlcygpLT5zZXRGdWxsU2NyZWVuRW5hYmxlZChl
bmFibGUpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIElETV9DT01QT1NJVElOR19CT1JERVJT
OgorICAgICAgICBwcml2YXRlUHJlZmVyZW5jZXMoKS0+c2V0U2hvd0RlYnVnQm9yZGVycyhlbmFi
bGUpOworICAgICAgICBwcml2YXRlUHJlZmVyZW5jZXMoKS0+c2V0U2hvd1JlcGFpbnRDb3VudGVy
KGVuYWJsZSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSURNX0RFQlVHX0lORk9fTEFZRVI6
CisgICAgICAgIHByaXZhdGVQcmVmZXJlbmNlcygpLT5zZXRTaG93VGlsZWRTY3JvbGxpbmdJbmRp
Y2F0b3IoZW5hYmxlKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJRE1fSU5WRVJUX0NPTE9S
UzoKKyAgICAgICAgcHJpdmF0ZVByZWZlcmVuY2VzKCktPnNldFNob3VsZEludmVydENvbG9ycyhl
bmFibGUpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIElETV9ESVNBQkxFX0lNQUdFUzoKKyAg
ICAgICAgc3RhbmRhcmRQcmVmZXJlbmNlcygpLT5zZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHko
IWVuYWJsZSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSURNX0RJU0FCTEVfU1RZTEVTOgor
ICAgICAgICBwcml2YXRlUHJlZmVyZW5jZXMoKS0+c2V0QXV0aG9yQW5kVXNlclN0eWxlc0VuYWJs
ZWQoIWVuYWJsZSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSURNX0RJU0FCTEVfSkFWQVND
UklQVDoKKyAgICAgICAgc3RhbmRhcmRQcmVmZXJlbmNlcygpLT5zZXRKYXZhU2NyaXB0RW5hYmxl
ZCghZW5hYmxlKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJRE1fRElTQUJMRV9MT0NBTF9G
SUxFX1JFU1RSSUNUSU9OUzoKKyAgICAgICAgcHJpdmF0ZVByZWZlcmVuY2VzKCktPnNldEFsbG93
VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzKGVuYWJsZSk7CisgICAgICAgIHByaXZhdGVQcmVm
ZXJlbmNlcygpLT5zZXRBbGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHMoZW5hYmxlKTsKKyAgICAg
ICAgYnJlYWs7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dzZXIvd2luL01p
bmlCcm93c2VyLmggYi9Ub29scy9NaW5pQnJvd3Nlci93aW4vTWluaUJyb3dzZXIuaAppbmRleCBk
YWU5ZGE5MDJkMWYzMWJhMmFlZmJjZjJhYmY3YzA1OGI4ZmVhZmI3Li5mNTk2OTE5MWMzYjFlMGZi
MTg5NWEwYzc5MTVlMzA2ODQwYzRhNGFjIDEwMDY0NAotLS0gYS9Ub29scy9NaW5pQnJvd3Nlci93
aW4vTWluaUJyb3dzZXIuaAorKysgYi9Ub29scy9NaW5pQnJvd3Nlci93aW4vTWluaUJyb3dzZXIu
aApAQCAtNDQsNiArNDQsNyBAQCB0eXBlZGVmIF9jb21fcHRyX3Q8X2NvbV9JSUlEPElXZWJDb3Jl
U3RhdGlzdGljcywgJl9fdXVpZG9mKElXZWJDb3JlU3RhdGlzdGljcyk+PgogdHlwZWRlZiBfY29t
X3B0cl90PF9jb21fSUlJRDxJV2ViQ2FjaGUsICZfX3V1aWRvZihJV2ViQ2FjaGUpPj4gSVdlYkNh
Y2hlUHRyOwogdHlwZWRlZiBfY29tX3B0cl90PF9jb21fSUlJRDxJV2ViUmVzb3VyY2VMb2FkRGVs
ZWdhdGUsICZfX3V1aWRvZihJV2ViUmVzb3VyY2VMb2FkRGVsZWdhdGUpPj4gSVdlYlJlc291cmNl
TG9hZERlbGVnYXRlUHRyOwogdHlwZWRlZiBfY29tX3B0cl90PF9jb21fSUlJRDxJV2ViRG93bmxv
YWREZWxlZ2F0ZSwgJl9fdXVpZG9mKElXZWJEb3dubG9hZERlbGVnYXRlKT4+IElXZWJEb3dubG9h
ZERlbGVnYXRlUHRyOwordHlwZWRlZiBfY29tX3B0cl90PF9jb21fSUlJRDxJV2ViRnJhbWVQcml2
YXRlLCAmX191dWlkb2YoSVdlYkZyYW1lUHJpdmF0ZSk+PiBJV2ViRnJhbWVQcml2YXRlUHRyOwog
CiBjbGFzcyBNaW5pQnJvd3NlciB7CiBwdWJsaWM6CkBAIC0xMDAsNiArMTAxLDEwIEBAIHB1Ymxp
YzoKICAgICBIR0RJT0JKIHVybEJhckZvbnQoKSB7IHJldHVybiBtX2hVUkxCYXJGb250OyB9CiAg
ICAgSFdORCBod25kKCkgeyByZXR1cm4gbV92aWV3V25kOyB9CiAKKyAgICB2b2lkIHByaW50KCk7
CisgICAgdm9pZCB1cGRhdGVTdGF0aXN0aWNzKEhXTkQgZGlhbG9nKTsKKyAgICB2b2lkIHNldFBy
ZWZlcmVuY2UoVUlOVCBtZW51SUQsIGJvb2wgZW5hYmxlKTsKKwogcHJpdmF0ZToKICAgICB2b2lk
IHN1YmNsYXNzRm9yTGF5ZXJlZFdpbmRvdygpOwogICAgIHZvaWQgZ2VuZXJhdGVGb250Rm9yU2Nh
bGVGYWN0b3IoZmxvYXQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dzZXIvd2luL01pbmlC
cm93c2VyV2ViSG9zdC5jcHAgYi9Ub29scy9NaW5pQnJvd3Nlci93aW4vTWluaUJyb3dzZXJXZWJI
b3N0LmNwcAppbmRleCAxNmE4N2MwY2I2NGY2Y2FmYTE2Y2IzMGM2OTdkZGQ1MjdhZTRmZGRjLi4x
MTVlN2E0NjdhNzJhYWI5NTAzZDMwYTJkYTJmMDcyOTdiYTRkNDUzIDEwMDY0NAotLS0gYS9Ub29s
cy9NaW5pQnJvd3Nlci93aW4vTWluaUJyb3dzZXJXZWJIb3N0LmNwcAorKysgYi9Ub29scy9NaW5p
QnJvd3Nlci93aW4vTWluaUJyb3dzZXJXZWJIb3N0LmNwcApAQCAtNTUsNyArNTUsNiBAQCBwcml2
YXRlOgogICAgIHdjaGFyX3QgbV9ldmVudFR5cGVbMTAwXTsKIH07CiAKLXR5cGVkZWYgX2NvbV9w
dHJfdDxfY29tX0lJSUQ8SVdlYkZyYW1lLCAmX191dWlkb2YoSVdlYkZyYW1lKT4+IElXZWJGcmFt
ZVB0cjsKIHR5cGVkZWYgX2NvbV9wdHJfdDxfY29tX0lJSUQ8SVdlYkRhdGFTb3VyY2UsICZfX3V1
aWRvZihJV2ViRGF0YVNvdXJjZSk+PiBJV2ViRGF0YVNvdXJjZVB0cjsKIHR5cGVkZWYgX2NvbV9w
dHJfdDxfY29tX0lJSUQ8SVdlYk11dGFibGVVUkxSZXF1ZXN0LCAmX191dWlkb2YoSVdlYk11dGFi
bGVVUkxSZXF1ZXN0KT4+IElXZWJNdXRhYmxlVVJMUmVxdWVzdFB0cjsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>