<?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>179599</bug_id>
          
          <creation_ts>2017-11-12 11:37:14 -0800</creation_ts>
          <short_desc>[Cairo] Move rectangle and path filling, stroking, clearing operations in GraphicsContextCairo to CairoOperations</short_desc>
          <delta_ts>2017-11-15 09:33:26 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Zan Dobersek">zan</reporter>
          <assigned_to name="Zan Dobersek">zan</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>cgarcia</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1370771</commentid>
    <comment_count>0</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-11-12 11:37:14 -0800</bug_when>
    <thetext>[Cairo] Move rectangle filling, stroking, clearing operations in GraphicsContextCairo to CairoOperations</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1370772</commentid>
    <comment_count>1</comment_count>
      <attachid>326722</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-11-12 11:40:05 -0800</bug_when>
    <thetext>Created attachment 326722
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1370852</commentid>
    <comment_count>2</comment_count>
      <attachid>326748</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-11-12 23:42:54 -0800</bug_when>
    <thetext>Created attachment 326748
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1370853</commentid>
    <comment_count>3</comment_count>
      <attachid>326748</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-11-12 23:43:24 -0800</bug_when>
    <thetext>Comment on attachment 326748
Patch for landing

Clearing flags on attachment: 326748

Committed r224746: &lt;https://trac.webkit.org/changeset/224746&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1370854</commentid>
    <comment_count>4</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-11-12 23:43:28 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1371884</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-11-15 09:33:26 -0800</bug_when>
    <thetext>&lt;rdar://problem/35561945&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>326722</attachid>
            <date>2017-11-12 11:40:05 -0800</date>
            <delta_ts>2017-11-12 23:42:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-179599-20171112204004.patch</filename>
            <type>text/plain</type>
            <size>18113</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI0NzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTBhODJiYjI3YWUyOTQ5
YTg4NGU0N2MyM2QzYmM1M2ZkZjYzMzZlZi4uODZjMWUxZmRmYTA3NmEwMmRhNjcxNGEzZmUxN2Fj
MTI3ZTMxN2M4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDE3LTExLTEyICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBbQ2Fpcm9dIE1vdmUg
cmVjdGFuZ2xlIGFuZCBwYXRoIGZpbGxpbmcsIHN0cm9raW5nLCBjbGVhcmluZyBvcGVyYXRpb25z
IGluIEdyYXBoaWNzQ29udGV4dENhaXJvIHRvIENhaXJvT3BlcmF0aW9ucworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc5NTk5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZSBvcGVyYXRpb25zIHRoYXQg
cGVyZm9ybSBmaWxsaW5nLCBzdHJva2luZyBhbmQgY2xlYXJpbmcgZm9yCisgICAgICAgIHNwZWNp
ZmllZCByZWN0YW5nbGVzIGFuZCBwYXRocyB0byB0aGUgQ2Fpcm9PcGVyYXRpb25zIGZpbGUuIFRo
aXMgbGltaXRzCisgICAgICAgIG9wZXJhdGlvbnMgdG8gb25seSB3b3JrIHdpdGggYSBQbGF0Zm9y
bUNvbnRleHRDYWlybyBvYmplY3QsIGFsb25nIHdpdGgKKyAgICAgICAgYW55IHJlcXVpcmVkIHBh
cmFtZXRlciwgYW5kIHdpbGwgaGVscCB3aXRoIGZ1dHVyZSB3b3JrIGluIHRoaXMgYXJlYS4KKwor
ICAgICAgICBIZWxwZXIgZnVuY3Rpb25zIGFyZSBjb3BpZWQgYWxvbmcgZm9yIHRoZSB0aW1lIGJl
aW5nLCBidXQgd2lsbCBsYXRlciBiZQorICAgICAgICByZW1vdmVkIGZyb20gdGhlIEdyYXBoaWNz
Q29udGV4dENhaXJvIGltcGxlbWVudGF0aW9uIGZpbGUuCisKKyAgICAgICAgTm8gbmV3IHRlc3Rz
IC0tIG5vIGNoYW5nZSBpbiBiZWhhdmlvci4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvL0NhaXJvT3BlcmF0aW9ucy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWlybzo6Zmls
bFJlY3RXaXRoQ29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6Q2Fpcm86OmRyYXdQYXRoU2hhZG93
KToKKyAgICAgICAgKFdlYkNvcmU6OkNhaXJvOjpmaWxsQ3VycmVudENhaXJvUGF0aCk6CisgICAg
ICAgIChXZWJDb3JlOjpDYWlybzo6ZmlsbFJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6Q2Fpcm86
OmZpbGxSb3VuZGVkUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpDYWlybzo6ZmlsbFJlY3RXaXRo
Um91bmRlZEhvbGUpOgorICAgICAgICAoV2ViQ29yZTo6Q2Fpcm86OmZpbGxQYXRoKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNhaXJvOjpzdHJva2VSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNhaXJv
OjpzdHJva2VQYXRoKToKKyAgICAgICAgKFdlYkNvcmU6OkNhaXJvOjpjbGVhclJlY3QpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvT3BlcmF0aW9ucy5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYWRpZW50Q2Fpcm8uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6R3JhZGllbnQ6OmZpbGwpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nh
aXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dDo6ZmlsbFBhdGgpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0Ojpz
dHJva2VQYXRoKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZmlsbFJlY3Qp
OgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpjbGVhclJlY3QpOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpzdHJva2VSZWN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dDo6cGxhdGZvcm1GaWxsUm91bmRlZFJlY3QpOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpmaWxsUmVjdFdpdGhSb3VuZGVkSG9sZSk6CisKIDIw
MTctMTEtMTEgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBbWGNv
ZGVdIFdlYkNvcmUgZ2VuZXJhdGVzIHVuaWZpZWQgc291cmNlcyBkdXJpbmcgaW5zdGFsbGhkcnMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJv
T3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9D
YWlyb09wZXJhdGlvbnMuY3BwCmluZGV4IGRjMTdmMWQzOWY5MmUxNWJiZDE4NTEzNmM5MzUyZDM5
Y2Y1Mzg5ODYuLmM2MmE0ZjVlYmZlMGIyZDVjNDFiYTA2MTJiMzEyZWRjMjQyMzQyOWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvT3BlcmF0
aW9ucy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fp
cm9PcGVyYXRpb25zLmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2lmIFVTRShDQUlSTykKIAogI2lu
Y2x1ZGUgIkZsb2F0UmVjdC5oIgorI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1
ZGUgIkltYWdlLmgiCiAjaW5jbHVkZSAiUGF0aC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtQ29udGV4
dENhaXJvLmgiCkBAIC00NSw2ICs0NiwyMDIgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIG5hbWVz
cGFjZSBDYWlybyB7CiAKK3N0YXRpYyBpbmxpbmUgdm9pZCBmaWxsUmVjdFdpdGhDb2xvcihjYWly
b190KiBjciwgY29uc3QgRmxvYXRSZWN0JiByZWN0LCBjb25zdCBDb2xvciYgY29sb3IpCit7Cisg
ICAgaWYgKCFjb2xvci5pc1Zpc2libGUoKSAmJiBjYWlyb19nZXRfb3BlcmF0b3IoY3IpID09IENB
SVJPX09QRVJBVE9SX09WRVIpCisgICAgICAgIHJldHVybjsKKworICAgIHNldFNvdXJjZVJHQkFG
cm9tQ29sb3IoY3IsIGNvbG9yKTsKKyAgICBjYWlyb19yZWN0YW5nbGUoY3IsIHJlY3QueCgpLCBy
ZWN0LnkoKSwgcmVjdC53aWR0aCgpLCByZWN0LmhlaWdodCgpKTsKKyAgICBjYWlyb19maWxsKGNy
KTsKK30KKworZW51bSBQYXRoRHJhd2luZ1N0eWxlIHsKKyAgICBGaWxsID0gMSwKKyAgICBTdHJv
a2UgPSAyLAorICAgIEZpbGxBbmRTdHJva2UgPSBGaWxsICsgU3Ryb2tlCit9OworCitzdGF0aWMg
aW5saW5lIHZvaWQgZHJhd1BhdGhTaGFkb3coUGxhdGZvcm1Db250ZXh0Q2Fpcm8mIHBsYXRmb3Jt
Q29udGV4dCwgY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGUmIGNvbnRleHRTdGF0ZSwgR3JhcGhp
Y3NDb250ZXh0JiB0YXJnZXRDb250ZXh0LCBQYXRoRHJhd2luZ1N0eWxlIGRyYXdpbmdTdHlsZSkK
K3sKKyAgICBTaGFkb3dCbHVyJiBzaGFkb3cgPSBwbGF0Zm9ybUNvbnRleHQuc2hhZG93Qmx1cigp
OworICAgIGlmIChzaGFkb3cudHlwZSgpID09IFNoYWRvd0JsdXI6Ok5vU2hhZG93KQorICAgICAg
ICByZXR1cm47CisKKyAgICAvLyBDYWxjdWxhdGUgdGhlIGV4dGVudHMgb2YgdGhlIHJlbmRlcmVk
IHNvbGlkIHBhdGhzLgorICAgIGNhaXJvX3QqIGNhaXJvQ29udGV4dCA9IHBsYXRmb3JtQ29udGV4
dC5jcigpOworICAgIHN0ZDo6dW5pcXVlX3B0cjxjYWlyb19wYXRoX3QsIHZvaWQoKikoY2Fpcm9f
cGF0aF90Kik+IHBhdGgoY2Fpcm9fY29weV9wYXRoKGNhaXJvQ29udGV4dCksIFtdKGNhaXJvX3Bh
dGhfdCogcGF0aCkgeworICAgICAgICBjYWlyb19wYXRoX2Rlc3Ryb3kocGF0aCk7CisgICAgfSk7
CisKKyAgICBGbG9hdFJlY3Qgc29saWRGaWd1cmVFeHRlbnRzOworICAgIGRvdWJsZSB4MCA9IDA7
CisgICAgZG91YmxlIHgxID0gMDsKKyAgICBkb3VibGUgeTAgPSAwOworICAgIGRvdWJsZSB5MSA9
IDA7CisgICAgaWYgKGRyYXdpbmdTdHlsZSAmIFN0cm9rZSkgeworICAgICAgICBjYWlyb19zdHJv
a2VfZXh0ZW50cyhjYWlyb0NvbnRleHQsICZ4MCwgJnkwLCAmeDEsICZ5MSk7CisgICAgICAgIHNv
bGlkRmlndXJlRXh0ZW50cyA9IEZsb2F0UmVjdCh4MCwgeTAsIHgxIC0geDAsIHkxIC0geTApOwor
ICAgIH0KKyAgICBpZiAoZHJhd2luZ1N0eWxlICYgRmlsbCkgeworICAgICAgICBjYWlyb19maWxs
X2V4dGVudHMoY2Fpcm9Db250ZXh0LCAmeDAsICZ5MCwgJngxLCAmeTEpOworICAgICAgICBGbG9h
dFJlY3QgZmlsbEV4dGVudHMoeDAsIHkwLCB4MSAtIHgwLCB5MSAtIHkwKTsKKyAgICAgICAgc29s
aWRGaWd1cmVFeHRlbnRzLnVuaXRlKGZpbGxFeHRlbnRzKTsKKyAgICB9CisKKyAgICBHcmFwaGlj
c0NvbnRleHQqIHNoYWRvd0NvbnRleHQgPSBzaGFkb3cuYmVnaW5TaGFkb3dMYXllcih0YXJnZXRD
b250ZXh0LCBzb2xpZEZpZ3VyZUV4dGVudHMpOworICAgIGlmICghc2hhZG93Q29udGV4dCkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgY2Fpcm9fdCogY2Fpcm9TaGFkb3dDb250ZXh0ID0gc2hhZG93
Q29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCktPmNyKCk7CisKKyAgICAvLyBJdCdzIGltcG9ydGFu
dCB0byBjb3B5IHRoZSBjb250ZXh0IHByb3BlcnRpZXMgdG8gdGhlIG5ldyBzaGFkb3cKKyAgICAv
LyBjb250ZXh0IHRvIHByZXNlcnZlIHRoaW5ncyBzdWNoIGFzIHRoZSBmaWxsIHJ1bGUgYW5kIHN0
cm9rZSB3aWR0aC4KKyAgICBjb3B5Q29udGV4dFByb3BlcnRpZXMoY2Fpcm9Db250ZXh0LCBjYWly
b1NoYWRvd0NvbnRleHQpOworCisgICAgaWYgKGRyYXdpbmdTdHlsZSAmIEZpbGwpIHsKKyAgICAg
ICAgY2Fpcm9fc2F2ZShjYWlyb1NoYWRvd0NvbnRleHQpOworICAgICAgICBjYWlyb19hcHBlbmRf
cGF0aChjYWlyb1NoYWRvd0NvbnRleHQsIHBhdGguZ2V0KCkpOworICAgICAgICBzaGFkb3dDb250
ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKS0+cHJlcGFyZUZvckZpbGxpbmcoY29udGV4dFN0YXRlLCBQ
bGF0Zm9ybUNvbnRleHRDYWlybzo6Tm9BZGp1c3RtZW50KTsKKyAgICAgICAgY2Fpcm9fZmlsbChj
YWlyb1NoYWRvd0NvbnRleHQpOworICAgICAgICBjYWlyb19yZXN0b3JlKGNhaXJvU2hhZG93Q29u
dGV4dCk7CisgICAgfQorCisgICAgaWYgKGRyYXdpbmdTdHlsZSAmIFN0cm9rZSkgeworICAgICAg
ICBjYWlyb19hcHBlbmRfcGF0aChjYWlyb1NoYWRvd0NvbnRleHQsIHBhdGguZ2V0KCkpOworICAg
ICAgICBzaGFkb3dDb250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKS0+cHJlcGFyZUZvclN0cm9raW5n
KGNvbnRleHRTdGF0ZSwgUGxhdGZvcm1Db250ZXh0Q2Fpcm86OkRvTm90UHJlc2VydmVBbHBoYSk7
CisgICAgICAgIGNhaXJvX3N0cm9rZShjYWlyb1NoYWRvd0NvbnRleHQpOworICAgIH0KKworICAg
IC8vIFRoZSBvcmlnaW5hbCBwYXRoIG1heSBzdGlsbCBiZSBoYW5naW5nIGFyb3VuZCBvbiB0aGUg
Y29udGV4dCBhbmQgZW5kU2hhZG93TGF5ZXIKKyAgICAvLyB3aWxsIHRha2UgY2FyZSBvZiBwcm9w
ZXJseSBjcmVhdGluZyBhIHBhdGggdG8gZHJhdyB0aGUgcmVzdWx0IHNoYWRvdy4gV2UgcmVtb3Zl
IHRoZSBwYXRoCisgICAgLy8gdGVtcG9yYXJpbHkgYW5kIHRoZW4gcmVzdG9yZSBpdC4KKyAgICAv
LyBTZWU6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDg4OTcKKyAg
ICBjYWlyb19uZXdfcGF0aChjYWlyb0NvbnRleHQpOworICAgIHNoYWRvdy5lbmRTaGFkb3dMYXll
cih0YXJnZXRDb250ZXh0KTsKKyAgICBjYWlyb19hcHBlbmRfcGF0aChjYWlyb0NvbnRleHQsIHBh
dGguZ2V0KCkpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgZmlsbEN1cnJlbnRDYWlyb1BhdGgo
UGxhdGZvcm1Db250ZXh0Q2Fpcm8mIHBsYXRmb3JtQ29udGV4dCwgY29uc3QgR3JhcGhpY3NDb250
ZXh0U3RhdGUmIGNvbnRleHRTdGF0ZSkKK3sKKyAgICBjYWlyb190KiBjciA9IHBsYXRmb3JtQ29u
dGV4dC5jcigpOworICAgIGNhaXJvX3NhdmUoY3IpOworCisgICAgcGxhdGZvcm1Db250ZXh0LnBy
ZXBhcmVGb3JGaWxsaW5nKGNvbnRleHRTdGF0ZSwgUGxhdGZvcm1Db250ZXh0Q2Fpcm86OkFkanVz
dFBhdHRlcm5Gb3JHbG9iYWxBbHBoYSk7CisgICAgY2Fpcm9fZmlsbChjcik7CisKKyAgICBjYWly
b19yZXN0b3JlKGNyKTsKK30KKwordm9pZCBmaWxsUmVjdChQbGF0Zm9ybUNvbnRleHRDYWlybyYg
cGxhdGZvcm1Db250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHJlY3QsIGNvbnN0IEdyYXBoaWNzQ29u
dGV4dFN0YXRlJiBjb250ZXh0U3RhdGUsIEdyYXBoaWNzQ29udGV4dCYgdGFyZ2V0Q29udGV4dCkK
K3sKKyAgICBjYWlyb190KiBjciA9IHBsYXRmb3JtQ29udGV4dC5jcigpOworCisgICAgY2Fpcm9f
cmVjdGFuZ2xlKGNyLCByZWN0LngoKSwgcmVjdC55KCksIHJlY3Qud2lkdGgoKSwgcmVjdC5oZWln
aHQoKSk7CisgICAgZHJhd1BhdGhTaGFkb3cocGxhdGZvcm1Db250ZXh0LCBjb250ZXh0U3RhdGUs
IHRhcmdldENvbnRleHQsIEZpbGwpOworICAgIGZpbGxDdXJyZW50Q2Fpcm9QYXRoKHBsYXRmb3Jt
Q29udGV4dCwgY29udGV4dFN0YXRlKTsKK30KKwordm9pZCBmaWxsUmVjdChQbGF0Zm9ybUNvbnRl
eHRDYWlybyYgcGxhdGZvcm1Db250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHJlY3QsIGNvbnN0IENv
bG9yJiBjb2xvciwgYm9vbCBoYXNTaGFkb3csIEdyYXBoaWNzQ29udGV4dCYgdGFyZ2V0Q29udGV4
dCkKK3sKKyAgICBpZiAoaGFzU2hhZG93KQorICAgICAgICBwbGF0Zm9ybUNvbnRleHQuc2hhZG93
Qmx1cigpLmRyYXdSZWN0U2hhZG93KHRhcmdldENvbnRleHQsIEZsb2F0Um91bmRlZFJlY3QocmVj
dCkpOworCisgICAgZmlsbFJlY3RXaXRoQ29sb3IocGxhdGZvcm1Db250ZXh0LmNyKCksIHJlY3Qs
IGNvbG9yKTsKK30KKwordm9pZCBmaWxsUmVjdChQbGF0Zm9ybUNvbnRleHRDYWlybyYgcGxhdGZv
cm1Db250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHJlY3QsIGNhaXJvX3BhdHRlcm5fdCogcGxhdGZv
cm1QYXR0ZXJuKQoreworICAgIGNhaXJvX3QqIGNyID0gcGxhdGZvcm1Db250ZXh0LmNyKCk7CisK
KyAgICBjYWlyb19zZXRfc291cmNlKGNyLCBwbGF0Zm9ybVBhdHRlcm4pOworICAgIGNhaXJvX3Jl
Y3RhbmdsZShjciwgcmVjdC54KCksIHJlY3QueSgpLCByZWN0LndpZHRoKCksIHJlY3QuaGVpZ2h0
KCkpOworICAgIGNhaXJvX2ZpbGwoY3IpOworfQorCit2b2lkIGZpbGxSb3VuZGVkUmVjdChQbGF0
Zm9ybUNvbnRleHRDYWlybyYgcGxhdGZvcm1Db250ZXh0LCBjb25zdCBGbG9hdFJvdW5kZWRSZWN0
JiByZWN0LCBjb25zdCBDb2xvciYgY29sb3IsIGJvb2wgaGFzU2hhZG93LCBHcmFwaGljc0NvbnRl
eHQmIHRhcmdldENvbnRleHQpCit7CisgICAgaWYgKGhhc1NoYWRvdykKKyAgICAgICAgcGxhdGZv
cm1Db250ZXh0LnNoYWRvd0JsdXIoKS5kcmF3UmVjdFNoYWRvdyh0YXJnZXRDb250ZXh0LCByZWN0
KTsKKworICAgIGNhaXJvX3QqIGNyID0gcGxhdGZvcm1Db250ZXh0LmNyKCk7CisgICAgY2Fpcm9f
c2F2ZShjcik7CisKKyAgICBQYXRoIHBhdGg7CisgICAgcGF0aC5hZGRSb3VuZGVkUmVjdChyZWN0
KTsKKyAgICBhcHBlbmRXZWJDb3JlUGF0aFRvQ2Fpcm9Db250ZXh0KGNyLCBwYXRoKTsKKyAgICBz
ZXRTb3VyY2VSR0JBRnJvbUNvbG9yKGNyLCBjb2xvcik7CisgICAgY2Fpcm9fZmlsbChjcik7CisK
KyAgICBjYWlyb19yZXN0b3JlKGNyKTsKK30KKwordm9pZCBmaWxsUmVjdFdpdGhSb3VuZGVkSG9s
ZShQbGF0Zm9ybUNvbnRleHRDYWlybyYgcGxhdGZvcm1Db250ZXh0LCBjb25zdCBGbG9hdFJlY3Qm
IHJlY3QsIGNvbnN0IEZsb2F0Um91bmRlZFJlY3QmIHJvdW5kZWRIb2xlUmVjdCwgY29uc3QgR3Jh
cGhpY3NDb250ZXh0U3RhdGUmIGNvbnRleHRTdGF0ZSwgYm9vbCBtdXN0VXNlU2hhZG93Qmx1ciwg
R3JhcGhpY3NDb250ZXh0JiB0YXJnZXRDb250ZXh0KQoreworICAgIC8vIEZJWE1FOiB0aGlzIHNo
b3VsZCBsZXZlcmFnZSB0aGUgc3BlY2lmaWVkIGNvbG9yLgorCisgICAgaWYgKG11c3RVc2VTaGFk
b3dCbHVyKQorICAgICAgICBwbGF0Zm9ybUNvbnRleHQuc2hhZG93Qmx1cigpLmRyYXdJbnNldFNo
YWRvdyh0YXJnZXRDb250ZXh0LCByZWN0LCByb3VuZGVkSG9sZVJlY3QpOworCisgICAgUGF0aCBw
YXRoOworICAgIHBhdGguYWRkUmVjdChyZWN0KTsKKyAgICBpZiAoIXJvdW5kZWRIb2xlUmVjdC5y
YWRpaSgpLmlzWmVybygpKQorICAgICAgICBwYXRoLmFkZFJvdW5kZWRSZWN0KHJvdW5kZWRIb2xl
UmVjdCk7CisgICAgZWxzZQorICAgICAgICBwYXRoLmFkZFJlY3Qocm91bmRlZEhvbGVSZWN0LnJl
Y3QoKSk7CisKKyAgICBjYWlyb190KiBjciA9IHBsYXRmb3JtQ29udGV4dC5jcigpOworCisgICAg
Y2Fpcm9fc2F2ZShjcik7CisgICAgc2V0UGF0aE9uQ2Fpcm9Db250ZXh0KHBsYXRmb3JtQ29udGV4
dC5jcigpLCBwYXRoLnBsYXRmb3JtUGF0aCgpLT5jb250ZXh0KCkpOworICAgIGZpbGxDdXJyZW50
Q2Fpcm9QYXRoKHBsYXRmb3JtQ29udGV4dCwgY29udGV4dFN0YXRlKTsKKyAgICBjYWlyb19yZXN0
b3JlKGNyKTsKK30KKwordm9pZCBmaWxsUGF0aChQbGF0Zm9ybUNvbnRleHRDYWlybyYgcGxhdGZv
cm1Db250ZXh0LCBjb25zdCBQYXRoJiBwYXRoLCBjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZSYg
Y29udGV4dFN0YXRlLCBHcmFwaGljc0NvbnRleHQmIHRhcmdldENvbnRleHQpCit7CisgICAgY2Fp
cm9fdCogY3IgPSBwbGF0Zm9ybUNvbnRleHQuY3IoKTsKKworICAgIHNldFBhdGhPbkNhaXJvQ29u
dGV4dChjciwgcGF0aC5wbGF0Zm9ybVBhdGgoKS0+Y29udGV4dCgpKTsKKyAgICBkcmF3UGF0aFNo
YWRvdyhwbGF0Zm9ybUNvbnRleHQsIGNvbnRleHRTdGF0ZSwgdGFyZ2V0Q29udGV4dCwgRmlsbCk7
CisgICAgZmlsbEN1cnJlbnRDYWlyb1BhdGgocGxhdGZvcm1Db250ZXh0LCBjb250ZXh0U3RhdGUp
OworfQorCit2b2lkIHN0cm9rZVJlY3QoUGxhdGZvcm1Db250ZXh0Q2Fpcm8mIHBsYXRmb3JtQ29u
dGV4dCwgY29uc3QgRmxvYXRSZWN0JiByZWN0LCBmbG9hdCBsaW5lV2lkdGgsIGNvbnN0IEdyYXBo
aWNzQ29udGV4dFN0YXRlJiBjb250ZXh0U3RhdGUsIEdyYXBoaWNzQ29udGV4dCYgdGFyZ2V0Q29u
dGV4dCkKK3sKKyAgICBjYWlyb190KiBjciA9IHBsYXRmb3JtQ29udGV4dC5jcigpOworICAgIGNh
aXJvX3NhdmUoY3IpOworCisgICAgY2Fpcm9fcmVjdGFuZ2xlKGNyLCByZWN0LngoKSwgcmVjdC55
KCksIHJlY3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQoKSk7CisgICAgY2Fpcm9fc2V0X2xpbmVfd2lk
dGgoY3IsIGxpbmVXaWR0aCk7CisgICAgZHJhd1BhdGhTaGFkb3cocGxhdGZvcm1Db250ZXh0LCBj
b250ZXh0U3RhdGUsIHRhcmdldENvbnRleHQsIFN0cm9rZSk7CisgICAgcGxhdGZvcm1Db250ZXh0
LnByZXBhcmVGb3JTdHJva2luZyhjb250ZXh0U3RhdGUpOworICAgIGNhaXJvX3N0cm9rZShjcik7
CisKKyAgICBjYWlyb19yZXN0b3JlKGNyKTsKK30KKwordm9pZCBzdHJva2VQYXRoKFBsYXRmb3Jt
Q29udGV4dENhaXJvJiBwbGF0Zm9ybUNvbnRleHQsIGNvbnN0IFBhdGgmIHBhdGgsIGNvbnN0IEdy
YXBoaWNzQ29udGV4dFN0YXRlJiBjb250ZXh0U3RhdGUsIEdyYXBoaWNzQ29udGV4dCYgdGFyZ2V0
Q29udGV4dCkKK3sKKyAgICBjYWlyb190KiBjciA9IHBsYXRmb3JtQ29udGV4dC5jcigpOworCisg
ICAgc2V0UGF0aE9uQ2Fpcm9Db250ZXh0KGNyLCBwYXRoLnBsYXRmb3JtUGF0aCgpLT5jb250ZXh0
KCkpOworICAgIGRyYXdQYXRoU2hhZG93KHBsYXRmb3JtQ29udGV4dCwgY29udGV4dFN0YXRlLCB0
YXJnZXRDb250ZXh0LCBTdHJva2UpOworICAgIHBsYXRmb3JtQ29udGV4dC5wcmVwYXJlRm9yU3Ry
b2tpbmcoY29udGV4dFN0YXRlKTsKKyAgICBjYWlyb19zdHJva2UoY3IpOworfQorCit2b2lkIGNs
ZWFyUmVjdChQbGF0Zm9ybUNvbnRleHRDYWlybyYgcGxhdGZvcm1Db250ZXh0LCBjb25zdCBGbG9h
dFJlY3QmIHJlY3QpCit7CisgICAgY2Fpcm9fdCogY3IgPSBwbGF0Zm9ybUNvbnRleHQuY3IoKTsK
KworICAgIGNhaXJvX3NhdmUoY3IpOworICAgIGNhaXJvX3JlY3RhbmdsZShjciwgcmVjdC54KCks
IHJlY3QueSgpLCByZWN0LndpZHRoKCksIHJlY3QuaGVpZ2h0KCkpOworICAgIGNhaXJvX3NldF9v
cGVyYXRvcihjciwgQ0FJUk9fT1BFUkFUT1JfQ0xFQVIpOworICAgIGNhaXJvX2ZpbGwoY3IpOwor
ICAgIGNhaXJvX3Jlc3RvcmUoY3IpOworfQorCiB2b2lkIGNsaXAoUGxhdGZvcm1Db250ZXh0Q2Fp
cm8mIHBsYXRmb3JtQ29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiByZWN0KQogewogICAgIGNhaXJv
X3QqIGNyID0gcGxhdGZvcm1Db250ZXh0LmNyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb09wZXJhdGlvbnMuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvT3BlcmF0aW9ucy5oCmluZGV4IGM0NDMw
ZDc4YzFkYjViZGZiMDliNTZlYmMyNjcwNDBjYjA3OTVjN2MuLjI2ZjRlYzc1YmFiNDc4ZDVmZjE5
ZTYyM2JkYzRlYTBkOGQwNDE0NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL0NhaXJvT3BlcmF0aW9ucy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvT3BlcmF0aW9ucy5oCkBAIC0zNiwxNSArMzYsMzEg
QEAKIAogI2luY2x1ZGUgIkdyYXBoaWNzVHlwZXMuaCIKIAordHlwZWRlZiBzdHJ1Y3QgX2NhaXJv
X3BhdHRlcm4gY2Fpcm9fcGF0dGVybl90OworCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNz
IENvbG9yOwogY2xhc3MgRmxvYXRSZWN0OworY2xhc3MgRmxvYXRSb3VuZGVkUmVjdDsKK2NsYXNz
IEdyYXBoaWNzQ29udGV4dDsKK2NsYXNzIEdyYXBoaWNzQ29udGV4dFN0YXRlOwogY2xhc3MgSW1h
Z2U7CiBjbGFzcyBQYXRoOwogY2xhc3MgUGxhdGZvcm1Db250ZXh0Q2Fpcm87CiAKIG5hbWVzcGFj
ZSBDYWlybyB7CiAKK3ZvaWQgZmlsbFJlY3QoUGxhdGZvcm1Db250ZXh0Q2Fpcm8mLCBjb25zdCBG
bG9hdFJlY3QmLCBjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZSYsIEdyYXBoaWNzQ29udGV4dCYp
Owordm9pZCBmaWxsUmVjdChQbGF0Zm9ybUNvbnRleHRDYWlybyYsIGNvbnN0IEZsb2F0UmVjdCYs
IGNvbnN0IENvbG9yJiwgYm9vbCwgR3JhcGhpY3NDb250ZXh0Jik7Cit2b2lkIGZpbGxSZWN0KFBs
YXRmb3JtQ29udGV4dENhaXJvJiwgY29uc3QgRmxvYXRSZWN0JiwgY2Fpcm9fcGF0dGVybl90Kik7
Cit2b2lkIGZpbGxSb3VuZGVkUmVjdChQbGF0Zm9ybUNvbnRleHRDYWlybyYsIGNvbnN0IEZsb2F0
Um91bmRlZFJlY3QmLCBjb25zdCBDb2xvciYsIGJvb2wsIEdyYXBoaWNzQ29udGV4dCYpOwordm9p
ZCBmaWxsUmVjdFdpdGhSb3VuZGVkSG9sZShQbGF0Zm9ybUNvbnRleHRDYWlybyYsIGNvbnN0IEZs
b2F0UmVjdCYsIGNvbnN0IEZsb2F0Um91bmRlZFJlY3QmLCBjb25zdCBHcmFwaGljc0NvbnRleHRT
dGF0ZSYsIGJvb2wsIEdyYXBoaWNzQ29udGV4dCYpOwordm9pZCBmaWxsUGF0aChQbGF0Zm9ybUNv
bnRleHRDYWlybyYsIGNvbnN0IFBhdGgmLCBjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZSYsIEdy
YXBoaWNzQ29udGV4dCYpOwordm9pZCBzdHJva2VSZWN0KFBsYXRmb3JtQ29udGV4dENhaXJvJiwg
Y29uc3QgRmxvYXRSZWN0JiwgZmxvYXQsIGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlJiwgR3Jh
cGhpY3NDb250ZXh0Jik7Cit2b2lkIHN0cm9rZVBhdGgoUGxhdGZvcm1Db250ZXh0Q2Fpcm8mLCBj
b25zdCBQYXRoJiwgY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGUmLCBHcmFwaGljc0NvbnRleHQm
KTsKK3ZvaWQgY2xlYXJSZWN0KFBsYXRmb3JtQ29udGV4dENhaXJvJiwgY29uc3QgRmxvYXRSZWN0
Jik7CisKIHZvaWQgY2xpcChQbGF0Zm9ybUNvbnRleHRDYWlybyYsIGNvbnN0IEZsb2F0UmVjdCYp
Owogdm9pZCBjbGlwT3V0KFBsYXRmb3JtQ29udGV4dENhaXJvJiwgY29uc3QgRmxvYXRSZWN0Jik7
CiB2b2lkIGNsaXBPdXQoUGxhdGZvcm1Db250ZXh0Q2Fpcm8mLCBjb25zdCBQYXRoJik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFkaWVudENh
aXJvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYWRpZW50
Q2Fpcm8uY3BwCmluZGV4IGE5YmZmMGVlYWNiOTZiYWY3NTNkZTJiZjI1MjZiM2IxYjY4NGJjM2Uu
LmEzM2JjMTIzMTBmMTUwZGNhNTBlM2NkZjVjMjhiOWQ1YWIwZWQ4OTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYWRpZW50Q2Fpcm8uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYWRpZW50Q2Fpcm8u
Y3BwCkBAIC03OSwxNSArNzksMTEgQEAgY2Fpcm9fcGF0dGVybl90KiBHcmFkaWVudDo6Y3JlYXRl
UGxhdGZvcm1HcmFkaWVudChmbG9hdCBnbG9iYWxBbHBoYSkKIAogdm9pZCBHcmFkaWVudDo6Zmls
bChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKIHsKLSAg
ICBSZWZQdHI8Y2Fpcm9fcGF0dGVybl90PiBncmFkaWVudCA9IGFkb3B0UmVmKGNyZWF0ZVBsYXRm
b3JtR3JhZGllbnQoMS4wKSk7CisgICAgUmVmUHRyPGNhaXJvX3BhdHRlcm5fdD4gcGxhdGZvcm1H
cmFkaWVudCA9IGFkb3B0UmVmKGNyZWF0ZVBsYXRmb3JtR3JhZGllbnQoMS4wKSk7CiAKICAgICBj
b250ZXh0LT5zYXZlKCk7Ci0KLSAgICBjYWlyb190KiBjciA9IGNvbnRleHQtPnBsYXRmb3JtQ29u
dGV4dCgpLT5jcigpOwotICAgIGNhaXJvX3NldF9zb3VyY2UoY3IsIGdyYWRpZW50LmdldCgpKTsK
LSAgICBjYWlyb19yZWN0YW5nbGUoY3IsIHJlY3QueCgpLCByZWN0LnkoKSwgcmVjdC53aWR0aCgp
LCByZWN0LmhlaWdodCgpKTsKLSAgICBjYWlyb19maWxsKGNyKTsKLQorICAgIEFTU0VSVChjb250
ZXh0LT5oYXNQbGF0Zm9ybUNvbnRleHQoKSk7CisgICAgQ2Fpcm86OmZpbGxSZWN0KCpjb250ZXh0
LT5wbGF0Zm9ybUNvbnRleHQoKSwgcmVjdCwgcGxhdGZvcm1HcmFkaWVudC5nZXQoKSk7CiAgICAg
Y29udGV4dC0+cmVzdG9yZSgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHAKaW5k
ZXggMjUyZjMwMjg2ZGYyNWU3NzY4NWQyNWJmYWNjZjRjY2FjNWY2YjE4Yi4uZmMwOTIyZmRjMTcx
NmU5ZWI4MGRhZTA1MGRiYjU0NWNjYmU1YzZiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJv
LmNwcApAQCAtNDExLDkgKzQxMSw4IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpmaWxsUGF0aChj
b25zdCBQYXRoJiBwYXRoKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgY2Fpcm9fdCog
Y3IgPSBwbGF0Zm9ybUNvbnRleHQoKS0+Y3IoKTsKLSAgICBzZXRQYXRoT25DYWlyb0NvbnRleHQo
Y3IsIHBhdGgucGxhdGZvcm1QYXRoKCktPmNvbnRleHQoKSk7Ci0gICAgc2hhZG93QW5kRmlsbEN1
cnJlbnRDYWlyb1BhdGgoKnRoaXMpOworICAgIEFTU0VSVChoYXNQbGF0Zm9ybUNvbnRleHQoKSk7
CisgICAgQ2Fpcm86OmZpbGxQYXRoKCpwbGF0Zm9ybUNvbnRleHQoKSwgcGF0aCwgc3RhdGUoKSwg
KnRoaXMpOwogfQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6c3Ryb2tlUGF0aChjb25zdCBQYXRo
JiBwYXRoKQpAQCAtNDI2LDkgKzQyNSw4IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzdHJva2VQ
YXRoKGNvbnN0IFBhdGgmIHBhdGgpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBjYWly
b190KiBjciA9IHBsYXRmb3JtQ29udGV4dCgpLT5jcigpOwotICAgIHNldFBhdGhPbkNhaXJvQ29u
dGV4dChjciwgcGF0aC5wbGF0Zm9ybVBhdGgoKS0+Y29udGV4dCgpKTsKLSAgICBzaGFkb3dBbmRT
dHJva2VDdXJyZW50Q2Fpcm9QYXRoKCp0aGlzKTsKKyAgICBBU1NFUlQoaGFzUGxhdGZvcm1Db250
ZXh0KCkpOworICAgIENhaXJvOjpzdHJva2VQYXRoKCpwbGF0Zm9ybUNvbnRleHQoKSwgcGF0aCwg
c3RhdGUoKSwgKnRoaXMpOwogfQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZmlsbFJlY3QoY29u
c3QgRmxvYXRSZWN0JiByZWN0KQpAQCAtNDQxLDkgKzQzOSw4IEBAIHZvaWQgR3JhcGhpY3NDb250
ZXh0OjpmaWxsUmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKLSAgICBjYWlyb190KiBjciA9IHBsYXRmb3JtQ29udGV4dCgpLT5jcigpOwotICAgIGNh
aXJvX3JlY3RhbmdsZShjciwgcmVjdC54KCksIHJlY3QueSgpLCByZWN0LndpZHRoKCksIHJlY3Qu
aGVpZ2h0KCkpOwotICAgIHNoYWRvd0FuZEZpbGxDdXJyZW50Q2Fpcm9QYXRoKCp0aGlzKTsKKyAg
ICBBU1NFUlQoaGFzUGxhdGZvcm1Db250ZXh0KCkpOworICAgIENhaXJvOjpmaWxsUmVjdCgqcGxh
dGZvcm1Db250ZXh0KCksIHJlY3QsIHN0YXRlKCksICp0aGlzKTsKIH0KIAogdm9pZCBHcmFwaGlj
c0NvbnRleHQ6OmZpbGxSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgY29uc3QgQ29sb3ImIGNv
bG9yKQpAQCAtNDU2LDEwICs0NTMsOCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZmlsbFJlY3Qo
Y29uc3QgRmxvYXRSZWN0JiByZWN0LCBjb25zdCBDb2xvciYgY29sb3IpCiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKLSAgICBpZiAoaGFzU2hhZG93KCkpCi0gICAgICAgIHBsYXRmb3JtQ29udGV4
dCgpLT5zaGFkb3dCbHVyKCkuZHJhd1JlY3RTaGFkb3coKnRoaXMsIEZsb2F0Um91bmRlZFJlY3Qo
cmVjdCkpOwotCi0gICAgZmlsbFJlY3RXaXRoQ29sb3IocGxhdGZvcm1Db250ZXh0KCktPmNyKCks
IHJlY3QsIGNvbG9yKTsKKyAgICBBU1NFUlQoaGFzUGxhdGZvcm1Db250ZXh0KCkpOworICAgIENh
aXJvOjpmaWxsUmVjdCgqcGxhdGZvcm1Db250ZXh0KCksIHJlY3QsIGNvbG9yLCBoYXNTaGFkb3co
KSwgKnRoaXMpOwogfQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6Y2xpcChjb25zdCBGbG9hdFJl
Y3QmIHJlY3QpCkBAIC04OTMsMzEgKzg4OCwyMiBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6Y2xl
YXJSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAot
ICAgIGNhaXJvX3QqIGNyID0gcGxhdGZvcm1Db250ZXh0KCktPmNyKCk7Ci0KLSAgICBjYWlyb19z
YXZlKGNyKTsKLSAgICBjYWlyb19yZWN0YW5nbGUoY3IsIHJlY3QueCgpLCByZWN0LnkoKSwgcmVj
dC53aWR0aCgpLCByZWN0LmhlaWdodCgpKTsKLSAgICBjYWlyb19zZXRfb3BlcmF0b3IoY3IsIENB
SVJPX09QRVJBVE9SX0NMRUFSKTsKLSAgICBjYWlyb19maWxsKGNyKTsKLSAgICBjYWlyb19yZXN0
b3JlKGNyKTsKKyAgICBBU1NFUlQoaGFzUGxhdGZvcm1Db250ZXh0KCkpOworICAgIENhaXJvOjpj
bGVhclJlY3QoKnBsYXRmb3JtQ29udGV4dCgpLCByZWN0KTsKIH0KIAotdm9pZCBHcmFwaGljc0Nv
bnRleHQ6OnN0cm9rZVJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0LCBmbG9hdCB3aWR0aCkKK3Zv
aWQgR3JhcGhpY3NDb250ZXh0OjpzdHJva2VSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgZmxv
YXQgbGluZVdpZHRoKQogewogICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkpCiAgICAgICAgIHJl
dHVybjsKIAogICAgIGlmIChtX2ltcGwpIHsKLSAgICAgICAgbV9pbXBsLT5zdHJva2VSZWN0KHJl
Y3QsIHdpZHRoKTsKKyAgICAgICAgbV9pbXBsLT5zdHJva2VSZWN0KHJlY3QsIGxpbmVXaWR0aCk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBjYWlyb190KiBjciA9IHBsYXRmb3JtQ29u
dGV4dCgpLT5jcigpOwotICAgIGNhaXJvX3NhdmUoY3IpOwotICAgIGNhaXJvX3JlY3RhbmdsZShj
ciwgcmVjdC54KCksIHJlY3QueSgpLCByZWN0LndpZHRoKCksIHJlY3QuaGVpZ2h0KCkpOwotICAg
IGNhaXJvX3NldF9saW5lX3dpZHRoKGNyLCB3aWR0aCk7Ci0gICAgc2hhZG93QW5kU3Ryb2tlQ3Vy
cmVudENhaXJvUGF0aCgqdGhpcyk7Ci0gICAgY2Fpcm9fcmVzdG9yZShjcik7CisgICAgQVNTRVJU
KGhhc1BsYXRmb3JtQ29udGV4dCgpKTsKKyAgICBDYWlybzo6c3Ryb2tlUmVjdCgqcGxhdGZvcm1D
b250ZXh0KCksIHJlY3QsIGxpbmVXaWR0aCwgc3RhdGUoKSwgKnRoaXMpOwogfQogCiB2b2lkIEdy
YXBoaWNzQ29udGV4dDo6c2V0TGluZUNhcChMaW5lQ2FwIGxpbmVDYXApCkBAIC0xMDg5LDE4ICsx
MDc1LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OnBsYXRmb3JtRmlsbFJvdW5kZWRSZWN0KGNv
bnN0IEZsb2F0Um91bmRlZFJlY3QmIHJlY3QsIGNvbnMKICAgICAgICAgcmV0dXJuOwogCiAgICAg
QVNTRVJUKGhhc1BsYXRmb3JtQ29udGV4dCgpKTsKLQotICAgIGlmIChoYXNTaGFkb3coKSkKLSAg
ICAgICAgcGxhdGZvcm1Db250ZXh0KCktPnNoYWRvd0JsdXIoKS5kcmF3UmVjdFNoYWRvdygqdGhp
cywgcmVjdCk7Ci0KLSAgICBjYWlyb190KiBjciA9IHBsYXRmb3JtQ29udGV4dCgpLT5jcigpOwot
ICAgIGNhaXJvX3NhdmUoY3IpOwotICAgIFBhdGggcGF0aDsKLSAgICBwYXRoLmFkZFJvdW5kZWRS
ZWN0KHJlY3QpOwotICAgIGFwcGVuZFdlYkNvcmVQYXRoVG9DYWlyb0NvbnRleHQoY3IsIHBhdGgp
OwotICAgIHNldFNvdXJjZVJHQkFGcm9tQ29sb3IoY3IsIGNvbG9yKTsKLSAgICBjYWlyb19maWxs
KGNyKTsKLSAgICBjYWlyb19yZXN0b3JlKGNyKTsKKyAgICBDYWlybzo6ZmlsbFJvdW5kZWRSZWN0
KCpwbGF0Zm9ybUNvbnRleHQoKSwgcmVjdCwgY29sb3IsIGhhc1NoYWRvdygpLCAqdGhpcyk7CiB9
CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpmaWxsUmVjdFdpdGhSb3VuZGVkSG9sZShjb25zdCBG
bG9hdFJlY3QmIHJlY3QsIGNvbnN0IEZsb2F0Um91bmRlZFJlY3QmIHJvdW5kZWRIb2xlUmVjdCwg
Y29uc3QgQ29sb3ImIGNvbG9yKQpAQCAtMTExMywyMSArMTA4OCw4IEBAIHZvaWQgR3JhcGhpY3ND
b250ZXh0OjpmaWxsUmVjdFdpdGhSb3VuZGVkSG9sZShjb25zdCBGbG9hdFJlY3QmIHJlY3QsIGNv
bnN0IEZsb2F0CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAodGhpcy0+bXVzdFVz
ZVNoYWRvd0JsdXIoKSkKLSAgICAgICAgcGxhdGZvcm1Db250ZXh0KCktPnNoYWRvd0JsdXIoKS5k
cmF3SW5zZXRTaGFkb3coKnRoaXMsIHJlY3QsIHJvdW5kZWRIb2xlUmVjdCk7Ci0KLSAgICBQYXRo
IHBhdGg7Ci0gICAgcGF0aC5hZGRSZWN0KHJlY3QpOwotICAgIGlmICghcm91bmRlZEhvbGVSZWN0
LnJhZGlpKCkuaXNaZXJvKCkpCi0gICAgICAgIHBhdGguYWRkUm91bmRlZFJlY3Qocm91bmRlZEhv
bGVSZWN0KTsKLSAgICBlbHNlCi0gICAgICAgIHBhdGguYWRkUmVjdChyb3VuZGVkSG9sZVJlY3Qu
cmVjdCgpKTsKLQotICAgIGNhaXJvX3QqIGNyID0gcGxhdGZvcm1Db250ZXh0KCktPmNyKCk7Ci0g
ICAgY2Fpcm9fc2F2ZShjcik7Ci0gICAgc2V0UGF0aE9uQ2Fpcm9Db250ZXh0KHBsYXRmb3JtQ29u
dGV4dCgpLT5jcigpLCBwYXRoLnBsYXRmb3JtUGF0aCgpLT5jb250ZXh0KCkpOwotICAgIGZpbGxD
dXJyZW50Q2Fpcm9QYXRoKCp0aGlzKTsKLSAgICBjYWlyb19yZXN0b3JlKGNyKTsKKyAgICBBU1NF
UlQoaGFzUGxhdGZvcm1Db250ZXh0KCkpOworICAgIENhaXJvOjpmaWxsUmVjdFdpdGhSb3VuZGVk
SG9sZSgqcGxhdGZvcm1Db250ZXh0KCksIHJlY3QsIHJvdW5kZWRIb2xlUmVjdCwgc3RhdGUoKSwg
bXVzdFVzZVNoYWRvd0JsdXIoKSwgKnRoaXMpOwogfQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6
ZHJhd1BhdHRlcm4oSW1hZ2UmIGltYWdlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25z
dCBGbG9hdFJlY3QmIHRpbGVSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFu
c2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcs
IENvbXBvc2l0ZU9wZXJhdG9yIG9wLCBCbGVuZE1vZGUgYmxlbmRNb2RlKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>326748</attachid>
            <date>2017-11-12 23:42:54 -0800</date>
            <delta_ts>2017-11-12 23:42:54 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-179599-20171113084252.patch</filename>
            <type>text/plain</type>
            <size>18607</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI0NzQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTljNjkyNmM5MzQ0MjAz
NjVkMWIzOGMzNjY0MzRhOTk3ZDFiZmRiNC4uMTU0ZTBmZTgzNTVhNDNmZDRiNWQ4NDBmODA5YTQy
OWM4M2EzNDNjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQ1IEBACiAyMDE3LTExLTEyICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KIAorICAgICAgICBbQ2Fpcm9dIE1vdmUg
cmVjdGFuZ2xlIGFuZCBwYXRoIGZpbGxpbmcsIHN0cm9raW5nLCBjbGVhcmluZyBvcGVyYXRpb25z
IGluIEdyYXBoaWNzQ29udGV4dENhaXJvIHRvIENhaXJvT3BlcmF0aW9ucworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc5NTk5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgQ2FybG9zIEdhcmNpYSBDYW1wb3MuCisKKyAgICAgICAgTW92ZSBvcGVyYXRpb25z
IHRoYXQgcGVyZm9ybSBmaWxsaW5nLCBzdHJva2luZyBhbmQgY2xlYXJpbmcgZm9yCisgICAgICAg
IHNwZWNpZmllZCByZWN0YW5nbGVzIGFuZCBwYXRocyB0byB0aGUgQ2Fpcm9PcGVyYXRpb25zIGZp
bGUuIFRoaXMgbGltaXRzCisgICAgICAgIG9wZXJhdGlvbnMgdG8gb25seSB3b3JrIHdpdGggYSBQ
bGF0Zm9ybUNvbnRleHRDYWlybyBvYmplY3QsIGFsb25nIHdpdGgKKyAgICAgICAgYW55IHJlcXVp
cmVkIHBhcmFtZXRlciwgYW5kIHdpbGwgaGVscCB3aXRoIGZ1dHVyZSB3b3JrIGluIHRoaXMgYXJl
YS4KKworICAgICAgICBIZWxwZXIgZnVuY3Rpb25zIGFyZSBjb3BpZWQgYWxvbmcgZm9yIHRoZSB0
aW1lIGJlaW5nLCBidXQgd2lsbCBsYXRlciBiZQorICAgICAgICByZW1vdmVkIGZyb20gdGhlIEdy
YXBoaWNzQ29udGV4dENhaXJvIGltcGxlbWVudGF0aW9uIGZpbGUuCisKKyAgICAgICAgTm8gbmV3
IHRlc3RzIC0tIG5vIGNoYW5nZSBpbiBiZWhhdmlvci4KKworICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2NhaXJvL0NhaXJvT3BlcmF0aW9ucy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWly
bzo6ZmlsbFJlY3RXaXRoQ29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6Q2Fpcm86OmRyYXdQYXRo
U2hhZG93KToKKyAgICAgICAgKFdlYkNvcmU6OkNhaXJvOjpmaWxsQ3VycmVudENhaXJvUGF0aCk6
CisgICAgICAgIChXZWJDb3JlOjpDYWlybzo6ZmlsbFJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6
Q2Fpcm86OmZpbGxSb3VuZGVkUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpDYWlybzo6ZmlsbFJl
Y3RXaXRoUm91bmRlZEhvbGUpOgorICAgICAgICAoV2ViQ29yZTo6Q2Fpcm86OmZpbGxQYXRoKToK
KyAgICAgICAgKFdlYkNvcmU6OkNhaXJvOjpzdHJva2VSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkNhaXJvOjpzdHJva2VQYXRoKToKKyAgICAgICAgKFdlYkNvcmU6OkNhaXJvOjpjbGVhclJlY3Qp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvT3BlcmF0aW9ucy5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYWRpZW50Q2Fpcm8uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6R3JhZGllbnQ6OmZpbGwpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dDo6ZmlsbFBhdGgpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0OjpzdHJva2VQYXRoKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6Zmls
bFJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpjbGVhclJlY3QpOgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpzdHJva2VSZWN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6cGxhdGZvcm1GaWxsUm91bmRlZFJlY3QpOgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpmaWxsUmVjdFdpdGhSb3VuZGVkSG9sZSk6
CisKKzIwMTctMTEtMTIgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgorCiAg
ICAgICAgIFtDYWlyb10gTW92ZSBzdGF0ZSBzdGFjaywgQ1RNLCB0cmFuc3BhcmVuY3kgbGF5ZXIg
b3BlcmF0aW9ucyBpbiBHcmFwaGljc0NvbnRleHRDYWlybyB0byBDYWlyb09wZXJhdGlvbnMKICAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3OTU5OAogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb09w
ZXJhdGlvbnMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fp
cm9PcGVyYXRpb25zLmNwcAppbmRleCA2OGMwMGEwOWQ4M2U3YTdkMzM2NTllZjM2MmNiOWQ0NGJj
ZjNmZmUzLi5jMmI2Nzk0ZmVjYmU5Y2JkMGFjOTU3YzA1YWE3OWNiZmI2NWRjODNlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb09wZXJhdGlv
bnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJv
T3BlcmF0aW9ucy5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpZiBVU0UoQ0FJUk8pCiAKICNpbmNs
dWRlICJGbG9hdFJlY3QuaCIKKyNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRl
ICJJbWFnZS5oIgogI2luY2x1ZGUgIlBhdGguaCIKICNpbmNsdWRlICJQbGF0Zm9ybUNvbnRleHRD
YWlyby5oIgpAQCAtNDUsNiArNDYsOTMgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIG5hbWVzcGFj
ZSBDYWlybyB7CiAKK3N0YXRpYyBpbmxpbmUgdm9pZCBmaWxsUmVjdFdpdGhDb2xvcihjYWlyb190
KiBjciwgY29uc3QgRmxvYXRSZWN0JiByZWN0LCBjb25zdCBDb2xvciYgY29sb3IpCit7CisgICAg
aWYgKCFjb2xvci5pc1Zpc2libGUoKSAmJiBjYWlyb19nZXRfb3BlcmF0b3IoY3IpID09IENBSVJP
X09QRVJBVE9SX09WRVIpCisgICAgICAgIHJldHVybjsKKworICAgIHNldFNvdXJjZVJHQkFGcm9t
Q29sb3IoY3IsIGNvbG9yKTsKKyAgICBjYWlyb19yZWN0YW5nbGUoY3IsIHJlY3QueCgpLCByZWN0
LnkoKSwgcmVjdC53aWR0aCgpLCByZWN0LmhlaWdodCgpKTsKKyAgICBjYWlyb19maWxsKGNyKTsK
K30KKworZW51bSBQYXRoRHJhd2luZ1N0eWxlIHsKKyAgICBGaWxsID0gMSwKKyAgICBTdHJva2Ug
PSAyLAorICAgIEZpbGxBbmRTdHJva2UgPSBGaWxsICsgU3Ryb2tlCit9OworCitzdGF0aWMgaW5s
aW5lIHZvaWQgZHJhd1BhdGhTaGFkb3coUGxhdGZvcm1Db250ZXh0Q2Fpcm8mIHBsYXRmb3JtQ29u
dGV4dCwgY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGUmIGNvbnRleHRTdGF0ZSwgR3JhcGhpY3ND
b250ZXh0JiB0YXJnZXRDb250ZXh0LCBQYXRoRHJhd2luZ1N0eWxlIGRyYXdpbmdTdHlsZSkKK3sK
KyAgICBTaGFkb3dCbHVyJiBzaGFkb3cgPSBwbGF0Zm9ybUNvbnRleHQuc2hhZG93Qmx1cigpOwor
ICAgIGlmIChzaGFkb3cudHlwZSgpID09IFNoYWRvd0JsdXI6Ok5vU2hhZG93KQorICAgICAgICBy
ZXR1cm47CisKKyAgICAvLyBDYWxjdWxhdGUgdGhlIGV4dGVudHMgb2YgdGhlIHJlbmRlcmVkIHNv
bGlkIHBhdGhzLgorICAgIGNhaXJvX3QqIGNhaXJvQ29udGV4dCA9IHBsYXRmb3JtQ29udGV4dC5j
cigpOworICAgIHN0ZDo6dW5pcXVlX3B0cjxjYWlyb19wYXRoX3QsIHZvaWQoKikoY2Fpcm9fcGF0
aF90Kik+IHBhdGgoY2Fpcm9fY29weV9wYXRoKGNhaXJvQ29udGV4dCksIFtdKGNhaXJvX3BhdGhf
dCogcGF0aCkgeworICAgICAgICBjYWlyb19wYXRoX2Rlc3Ryb3kocGF0aCk7CisgICAgfSk7CisK
KyAgICBGbG9hdFJlY3Qgc29saWRGaWd1cmVFeHRlbnRzOworICAgIGRvdWJsZSB4MCA9IDA7Cisg
ICAgZG91YmxlIHgxID0gMDsKKyAgICBkb3VibGUgeTAgPSAwOworICAgIGRvdWJsZSB5MSA9IDA7
CisgICAgaWYgKGRyYXdpbmdTdHlsZSAmIFN0cm9rZSkgeworICAgICAgICBjYWlyb19zdHJva2Vf
ZXh0ZW50cyhjYWlyb0NvbnRleHQsICZ4MCwgJnkwLCAmeDEsICZ5MSk7CisgICAgICAgIHNvbGlk
RmlndXJlRXh0ZW50cyA9IEZsb2F0UmVjdCh4MCwgeTAsIHgxIC0geDAsIHkxIC0geTApOworICAg
IH0KKyAgICBpZiAoZHJhd2luZ1N0eWxlICYgRmlsbCkgeworICAgICAgICBjYWlyb19maWxsX2V4
dGVudHMoY2Fpcm9Db250ZXh0LCAmeDAsICZ5MCwgJngxLCAmeTEpOworICAgICAgICBGbG9hdFJl
Y3QgZmlsbEV4dGVudHMoeDAsIHkwLCB4MSAtIHgwLCB5MSAtIHkwKTsKKyAgICAgICAgc29saWRG
aWd1cmVFeHRlbnRzLnVuaXRlKGZpbGxFeHRlbnRzKTsKKyAgICB9CisKKyAgICBHcmFwaGljc0Nv
bnRleHQqIHNoYWRvd0NvbnRleHQgPSBzaGFkb3cuYmVnaW5TaGFkb3dMYXllcih0YXJnZXRDb250
ZXh0LCBzb2xpZEZpZ3VyZUV4dGVudHMpOworICAgIGlmICghc2hhZG93Q29udGV4dCkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgY2Fpcm9fdCogY2Fpcm9TaGFkb3dDb250ZXh0ID0gc2hhZG93Q29u
dGV4dC0+cGxhdGZvcm1Db250ZXh0KCktPmNyKCk7CisKKyAgICAvLyBJdCdzIGltcG9ydGFudCB0
byBjb3B5IHRoZSBjb250ZXh0IHByb3BlcnRpZXMgdG8gdGhlIG5ldyBzaGFkb3cKKyAgICAvLyBj
b250ZXh0IHRvIHByZXNlcnZlIHRoaW5ncyBzdWNoIGFzIHRoZSBmaWxsIHJ1bGUgYW5kIHN0cm9r
ZSB3aWR0aC4KKyAgICBjb3B5Q29udGV4dFByb3BlcnRpZXMoY2Fpcm9Db250ZXh0LCBjYWlyb1No
YWRvd0NvbnRleHQpOworCisgICAgaWYgKGRyYXdpbmdTdHlsZSAmIEZpbGwpIHsKKyAgICAgICAg
Y2Fpcm9fc2F2ZShjYWlyb1NoYWRvd0NvbnRleHQpOworICAgICAgICBjYWlyb19hcHBlbmRfcGF0
aChjYWlyb1NoYWRvd0NvbnRleHQsIHBhdGguZ2V0KCkpOworICAgICAgICBzaGFkb3dDb250ZXh0
LT5wbGF0Zm9ybUNvbnRleHQoKS0+cHJlcGFyZUZvckZpbGxpbmcoY29udGV4dFN0YXRlLCBQbGF0
Zm9ybUNvbnRleHRDYWlybzo6Tm9BZGp1c3RtZW50KTsKKyAgICAgICAgY2Fpcm9fZmlsbChjYWly
b1NoYWRvd0NvbnRleHQpOworICAgICAgICBjYWlyb19yZXN0b3JlKGNhaXJvU2hhZG93Q29udGV4
dCk7CisgICAgfQorCisgICAgaWYgKGRyYXdpbmdTdHlsZSAmIFN0cm9rZSkgeworICAgICAgICBj
YWlyb19hcHBlbmRfcGF0aChjYWlyb1NoYWRvd0NvbnRleHQsIHBhdGguZ2V0KCkpOworICAgICAg
ICBzaGFkb3dDb250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKS0+cHJlcGFyZUZvclN0cm9raW5nKGNv
bnRleHRTdGF0ZSwgUGxhdGZvcm1Db250ZXh0Q2Fpcm86OkRvTm90UHJlc2VydmVBbHBoYSk7Cisg
ICAgICAgIGNhaXJvX3N0cm9rZShjYWlyb1NoYWRvd0NvbnRleHQpOworICAgIH0KKworICAgIC8v
IFRoZSBvcmlnaW5hbCBwYXRoIG1heSBzdGlsbCBiZSBoYW5naW5nIGFyb3VuZCBvbiB0aGUgY29u
dGV4dCBhbmQgZW5kU2hhZG93TGF5ZXIKKyAgICAvLyB3aWxsIHRha2UgY2FyZSBvZiBwcm9wZXJs
eSBjcmVhdGluZyBhIHBhdGggdG8gZHJhdyB0aGUgcmVzdWx0IHNoYWRvdy4gV2UgcmVtb3ZlIHRo
ZSBwYXRoCisgICAgLy8gdGVtcG9yYXJpbHkgYW5kIHRoZW4gcmVzdG9yZSBpdC4KKyAgICAvLyBT
ZWU6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDg4OTcKKyAgICBj
YWlyb19uZXdfcGF0aChjYWlyb0NvbnRleHQpOworICAgIHNoYWRvdy5lbmRTaGFkb3dMYXllcih0
YXJnZXRDb250ZXh0KTsKKyAgICBjYWlyb19hcHBlbmRfcGF0aChjYWlyb0NvbnRleHQsIHBhdGgu
Z2V0KCkpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgZmlsbEN1cnJlbnRDYWlyb1BhdGgoUGxh
dGZvcm1Db250ZXh0Q2Fpcm8mIHBsYXRmb3JtQ29udGV4dCwgY29uc3QgR3JhcGhpY3NDb250ZXh0
U3RhdGUmIGNvbnRleHRTdGF0ZSkKK3sKKyAgICBjYWlyb190KiBjciA9IHBsYXRmb3JtQ29udGV4
dC5jcigpOworICAgIGNhaXJvX3NhdmUoY3IpOworCisgICAgcGxhdGZvcm1Db250ZXh0LnByZXBh
cmVGb3JGaWxsaW5nKGNvbnRleHRTdGF0ZSwgUGxhdGZvcm1Db250ZXh0Q2Fpcm86OkFkanVzdFBh
dHRlcm5Gb3JHbG9iYWxBbHBoYSk7CisgICAgY2Fpcm9fZmlsbChjcik7CisKKyAgICBjYWlyb19y
ZXN0b3JlKGNyKTsKK30KKwogdm9pZCBzZXRMaW5lQ2FwKFBsYXRmb3JtQ29udGV4dENhaXJvJiBw
bGF0Zm9ybUNvbnRleHQsIExpbmVDYXAgbGluZUNhcCkKIHsKICAgICBjYWlyb19saW5lX2NhcF90
IGNhaXJvQ2FwOwpAQCAtOTIsNiArMTgwLDExNSBAQCB2b2lkIHNldE1pdGVyTGltaXQoUGxhdGZv
cm1Db250ZXh0Q2Fpcm8mIHBsYXRmb3JtQ29udGV4dCwgZmxvYXQgbWl0ZXJMaW1pdCkKICAgICBj
YWlyb19zZXRfbWl0ZXJfbGltaXQocGxhdGZvcm1Db250ZXh0LmNyKCksIG1pdGVyTGltaXQpOwog
fQogCit2b2lkIGZpbGxSZWN0KFBsYXRmb3JtQ29udGV4dENhaXJvJiBwbGF0Zm9ybUNvbnRleHQs
IGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGUmIGNvbnRl
eHRTdGF0ZSwgR3JhcGhpY3NDb250ZXh0JiB0YXJnZXRDb250ZXh0KQoreworICAgIGNhaXJvX3Qq
IGNyID0gcGxhdGZvcm1Db250ZXh0LmNyKCk7CisKKyAgICBjYWlyb19yZWN0YW5nbGUoY3IsIHJl
Y3QueCgpLCByZWN0LnkoKSwgcmVjdC53aWR0aCgpLCByZWN0LmhlaWdodCgpKTsKKyAgICBkcmF3
UGF0aFNoYWRvdyhwbGF0Zm9ybUNvbnRleHQsIGNvbnRleHRTdGF0ZSwgdGFyZ2V0Q29udGV4dCwg
RmlsbCk7CisgICAgZmlsbEN1cnJlbnRDYWlyb1BhdGgocGxhdGZvcm1Db250ZXh0LCBjb250ZXh0
U3RhdGUpOworfQorCit2b2lkIGZpbGxSZWN0KFBsYXRmb3JtQ29udGV4dENhaXJvJiBwbGF0Zm9y
bUNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgY29uc3QgQ29sb3ImIGNvbG9yLCBib29s
IGhhc1NoYWRvdywgR3JhcGhpY3NDb250ZXh0JiB0YXJnZXRDb250ZXh0KQoreworICAgIGlmICho
YXNTaGFkb3cpCisgICAgICAgIHBsYXRmb3JtQ29udGV4dC5zaGFkb3dCbHVyKCkuZHJhd1JlY3RT
aGFkb3codGFyZ2V0Q29udGV4dCwgRmxvYXRSb3VuZGVkUmVjdChyZWN0KSk7CisKKyAgICBmaWxs
UmVjdFdpdGhDb2xvcihwbGF0Zm9ybUNvbnRleHQuY3IoKSwgcmVjdCwgY29sb3IpOworfQorCit2
b2lkIGZpbGxSZWN0KFBsYXRmb3JtQ29udGV4dENhaXJvJiBwbGF0Zm9ybUNvbnRleHQsIGNvbnN0
IEZsb2F0UmVjdCYgcmVjdCwgY2Fpcm9fcGF0dGVybl90KiBwbGF0Zm9ybVBhdHRlcm4pCit7Cisg
ICAgY2Fpcm9fdCogY3IgPSBwbGF0Zm9ybUNvbnRleHQuY3IoKTsKKworICAgIGNhaXJvX3NldF9z
b3VyY2UoY3IsIHBsYXRmb3JtUGF0dGVybik7CisgICAgY2Fpcm9fcmVjdGFuZ2xlKGNyLCByZWN0
LngoKSwgcmVjdC55KCksIHJlY3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQoKSk7CisgICAgY2Fpcm9f
ZmlsbChjcik7Cit9CisKK3ZvaWQgZmlsbFJvdW5kZWRSZWN0KFBsYXRmb3JtQ29udGV4dENhaXJv
JiBwbGF0Zm9ybUNvbnRleHQsIGNvbnN0IEZsb2F0Um91bmRlZFJlY3QmIHJlY3QsIGNvbnN0IENv
bG9yJiBjb2xvciwgYm9vbCBoYXNTaGFkb3csIEdyYXBoaWNzQ29udGV4dCYgdGFyZ2V0Q29udGV4
dCkKK3sKKyAgICBpZiAoaGFzU2hhZG93KQorICAgICAgICBwbGF0Zm9ybUNvbnRleHQuc2hhZG93
Qmx1cigpLmRyYXdSZWN0U2hhZG93KHRhcmdldENvbnRleHQsIHJlY3QpOworCisgICAgY2Fpcm9f
dCogY3IgPSBwbGF0Zm9ybUNvbnRleHQuY3IoKTsKKyAgICBjYWlyb19zYXZlKGNyKTsKKworICAg
IFBhdGggcGF0aDsKKyAgICBwYXRoLmFkZFJvdW5kZWRSZWN0KHJlY3QpOworICAgIGFwcGVuZFdl
YkNvcmVQYXRoVG9DYWlyb0NvbnRleHQoY3IsIHBhdGgpOworICAgIHNldFNvdXJjZVJHQkFGcm9t
Q29sb3IoY3IsIGNvbG9yKTsKKyAgICBjYWlyb19maWxsKGNyKTsKKworICAgIGNhaXJvX3Jlc3Rv
cmUoY3IpOworfQorCit2b2lkIGZpbGxSZWN0V2l0aFJvdW5kZWRIb2xlKFBsYXRmb3JtQ29udGV4
dENhaXJvJiBwbGF0Zm9ybUNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgY29uc3QgRmxv
YXRSb3VuZGVkUmVjdCYgcm91bmRlZEhvbGVSZWN0LCBjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0
ZSYgY29udGV4dFN0YXRlLCBib29sIG11c3RVc2VTaGFkb3dCbHVyLCBHcmFwaGljc0NvbnRleHQm
IHRhcmdldENvbnRleHQpCit7CisgICAgLy8gRklYTUU6IHRoaXMgc2hvdWxkIGxldmVyYWdlIHRo
ZSBzcGVjaWZpZWQgY29sb3IuCisKKyAgICBpZiAobXVzdFVzZVNoYWRvd0JsdXIpCisgICAgICAg
IHBsYXRmb3JtQ29udGV4dC5zaGFkb3dCbHVyKCkuZHJhd0luc2V0U2hhZG93KHRhcmdldENvbnRl
eHQsIHJlY3QsIHJvdW5kZWRIb2xlUmVjdCk7CisKKyAgICBQYXRoIHBhdGg7CisgICAgcGF0aC5h
ZGRSZWN0KHJlY3QpOworICAgIGlmICghcm91bmRlZEhvbGVSZWN0LnJhZGlpKCkuaXNaZXJvKCkp
CisgICAgICAgIHBhdGguYWRkUm91bmRlZFJlY3Qocm91bmRlZEhvbGVSZWN0KTsKKyAgICBlbHNl
CisgICAgICAgIHBhdGguYWRkUmVjdChyb3VuZGVkSG9sZVJlY3QucmVjdCgpKTsKKworICAgIGNh
aXJvX3QqIGNyID0gcGxhdGZvcm1Db250ZXh0LmNyKCk7CisKKyAgICBjYWlyb19zYXZlKGNyKTsK
KyAgICBzZXRQYXRoT25DYWlyb0NvbnRleHQocGxhdGZvcm1Db250ZXh0LmNyKCksIHBhdGgucGxh
dGZvcm1QYXRoKCktPmNvbnRleHQoKSk7CisgICAgZmlsbEN1cnJlbnRDYWlyb1BhdGgocGxhdGZv
cm1Db250ZXh0LCBjb250ZXh0U3RhdGUpOworICAgIGNhaXJvX3Jlc3RvcmUoY3IpOworfQorCit2
b2lkIGZpbGxQYXRoKFBsYXRmb3JtQ29udGV4dENhaXJvJiBwbGF0Zm9ybUNvbnRleHQsIGNvbnN0
IFBhdGgmIHBhdGgsIGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlJiBjb250ZXh0U3RhdGUsIEdy
YXBoaWNzQ29udGV4dCYgdGFyZ2V0Q29udGV4dCkKK3sKKyAgICBjYWlyb190KiBjciA9IHBsYXRm
b3JtQ29udGV4dC5jcigpOworCisgICAgc2V0UGF0aE9uQ2Fpcm9Db250ZXh0KGNyLCBwYXRoLnBs
YXRmb3JtUGF0aCgpLT5jb250ZXh0KCkpOworICAgIGRyYXdQYXRoU2hhZG93KHBsYXRmb3JtQ29u
dGV4dCwgY29udGV4dFN0YXRlLCB0YXJnZXRDb250ZXh0LCBGaWxsKTsKKyAgICBmaWxsQ3VycmVu
dENhaXJvUGF0aChwbGF0Zm9ybUNvbnRleHQsIGNvbnRleHRTdGF0ZSk7Cit9CisKK3ZvaWQgc3Ry
b2tlUmVjdChQbGF0Zm9ybUNvbnRleHRDYWlybyYgcGxhdGZvcm1Db250ZXh0LCBjb25zdCBGbG9h
dFJlY3QmIHJlY3QsIGZsb2F0IGxpbmVXaWR0aCwgY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGUm
IGNvbnRleHRTdGF0ZSwgR3JhcGhpY3NDb250ZXh0JiB0YXJnZXRDb250ZXh0KQoreworICAgIGNh
aXJvX3QqIGNyID0gcGxhdGZvcm1Db250ZXh0LmNyKCk7CisgICAgY2Fpcm9fc2F2ZShjcik7CisK
KyAgICBjYWlyb19yZWN0YW5nbGUoY3IsIHJlY3QueCgpLCByZWN0LnkoKSwgcmVjdC53aWR0aCgp
LCByZWN0LmhlaWdodCgpKTsKKyAgICBjYWlyb19zZXRfbGluZV93aWR0aChjciwgbGluZVdpZHRo
KTsKKyAgICBkcmF3UGF0aFNoYWRvdyhwbGF0Zm9ybUNvbnRleHQsIGNvbnRleHRTdGF0ZSwgdGFy
Z2V0Q29udGV4dCwgU3Ryb2tlKTsKKyAgICBwbGF0Zm9ybUNvbnRleHQucHJlcGFyZUZvclN0cm9r
aW5nKGNvbnRleHRTdGF0ZSk7CisgICAgY2Fpcm9fc3Ryb2tlKGNyKTsKKworICAgIGNhaXJvX3Jl
c3RvcmUoY3IpOworfQorCit2b2lkIHN0cm9rZVBhdGgoUGxhdGZvcm1Db250ZXh0Q2Fpcm8mIHBs
YXRmb3JtQ29udGV4dCwgY29uc3QgUGF0aCYgcGF0aCwgY29uc3QgR3JhcGhpY3NDb250ZXh0U3Rh
dGUmIGNvbnRleHRTdGF0ZSwgR3JhcGhpY3NDb250ZXh0JiB0YXJnZXRDb250ZXh0KQoreworICAg
IGNhaXJvX3QqIGNyID0gcGxhdGZvcm1Db250ZXh0LmNyKCk7CisKKyAgICBzZXRQYXRoT25DYWly
b0NvbnRleHQoY3IsIHBhdGgucGxhdGZvcm1QYXRoKCktPmNvbnRleHQoKSk7CisgICAgZHJhd1Bh
dGhTaGFkb3cocGxhdGZvcm1Db250ZXh0LCBjb250ZXh0U3RhdGUsIHRhcmdldENvbnRleHQsIFN0
cm9rZSk7CisgICAgcGxhdGZvcm1Db250ZXh0LnByZXBhcmVGb3JTdHJva2luZyhjb250ZXh0U3Rh
dGUpOworICAgIGNhaXJvX3N0cm9rZShjcik7Cit9CisKK3ZvaWQgY2xlYXJSZWN0KFBsYXRmb3Jt
Q29udGV4dENhaXJvJiBwbGF0Zm9ybUNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKK3sK
KyAgICBjYWlyb190KiBjciA9IHBsYXRmb3JtQ29udGV4dC5jcigpOworCisgICAgY2Fpcm9fc2F2
ZShjcik7CisgICAgY2Fpcm9fcmVjdGFuZ2xlKGNyLCByZWN0LngoKSwgcmVjdC55KCksIHJlY3Qu
d2lkdGgoKSwgcmVjdC5oZWlnaHQoKSk7CisgICAgY2Fpcm9fc2V0X29wZXJhdG9yKGNyLCBDQUlS
T19PUEVSQVRPUl9DTEVBUik7CisgICAgY2Fpcm9fZmlsbChjcik7CisgICAgY2Fpcm9fcmVzdG9y
ZShjcik7Cit9CisKIHZvaWQgc2F2ZShQbGF0Zm9ybUNvbnRleHRDYWlybyYgcGxhdGZvcm1Db250
ZXh0KQogewogICAgIHBsYXRmb3JtQ29udGV4dC5zYXZlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb09wZXJhdGlvbnMuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvT3BlcmF0aW9ucy5oCmluZGV4
IGJiNDRjMGE3ZDdjZDNhOTI2NTVjNjcyNzc2MjY2MGU1ZmQ3NDVhYjkuLmFjNDE3MTUwYjYzMjU0
YTkyNjI5ZDk0ZDI3YzEwMjA2N2RkMTcxNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvT3BlcmF0aW9ucy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvT3BlcmF0aW9ucy5oCkBAIC0zNywxMSAr
MzcsMTcgQEAKICNpbmNsdWRlICJEYXNoQXJyYXkuaCIKICNpbmNsdWRlICJHcmFwaGljc1R5cGVz
LmgiCiAKK3R5cGVkZWYgc3RydWN0IF9jYWlyb19wYXR0ZXJuIGNhaXJvX3BhdHRlcm5fdDsKKwog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBZmZpbmVUcmFuc2Zvcm07CitjbGFzcyBDb2xv
cjsKIGNsYXNzIEZsb2F0UmVjdDsKK2NsYXNzIEZsb2F0Um91bmRlZFJlY3Q7CiBjbGFzcyBGbG9h
dFNpemU7CitjbGFzcyBHcmFwaGljc0NvbnRleHQ7CitjbGFzcyBHcmFwaGljc0NvbnRleHRTdGF0
ZTsKIGNsYXNzIEltYWdlOwogY2xhc3MgUGF0aDsKIGNsYXNzIFBsYXRmb3JtQ29udGV4dENhaXJv
OwpAQCAtNTMsNiArNTksMTYgQEAgdm9pZCBzZXRMaW5lRGFzaChQbGF0Zm9ybUNvbnRleHRDYWly
byYsIGNvbnN0IERhc2hBcnJheSYsIGZsb2F0KTsKIHZvaWQgc2V0TGluZUpvaW4oUGxhdGZvcm1D
b250ZXh0Q2Fpcm8mLCBMaW5lSm9pbik7CiB2b2lkIHNldE1pdGVyTGltaXQoUGxhdGZvcm1Db250
ZXh0Q2Fpcm8mLCBmbG9hdCk7CiAKK3ZvaWQgZmlsbFJlY3QoUGxhdGZvcm1Db250ZXh0Q2Fpcm8m
LCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZSYsIEdyYXBoaWNz
Q29udGV4dCYpOwordm9pZCBmaWxsUmVjdChQbGF0Zm9ybUNvbnRleHRDYWlybyYsIGNvbnN0IEZs
b2F0UmVjdCYsIGNvbnN0IENvbG9yJiwgYm9vbCwgR3JhcGhpY3NDb250ZXh0Jik7Cit2b2lkIGZp
bGxSZWN0KFBsYXRmb3JtQ29udGV4dENhaXJvJiwgY29uc3QgRmxvYXRSZWN0JiwgY2Fpcm9fcGF0
dGVybl90Kik7Cit2b2lkIGZpbGxSb3VuZGVkUmVjdChQbGF0Zm9ybUNvbnRleHRDYWlybyYsIGNv
bnN0IEZsb2F0Um91bmRlZFJlY3QmLCBjb25zdCBDb2xvciYsIGJvb2wsIEdyYXBoaWNzQ29udGV4
dCYpOwordm9pZCBmaWxsUmVjdFdpdGhSb3VuZGVkSG9sZShQbGF0Zm9ybUNvbnRleHRDYWlybyYs
IGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0Um91bmRlZFJlY3QmLCBjb25zdCBHcmFwaGlj
c0NvbnRleHRTdGF0ZSYsIGJvb2wsIEdyYXBoaWNzQ29udGV4dCYpOwordm9pZCBmaWxsUGF0aChQ
bGF0Zm9ybUNvbnRleHRDYWlybyYsIGNvbnN0IFBhdGgmLCBjb25zdCBHcmFwaGljc0NvbnRleHRT
dGF0ZSYsIEdyYXBoaWNzQ29udGV4dCYpOwordm9pZCBzdHJva2VSZWN0KFBsYXRmb3JtQ29udGV4
dENhaXJvJiwgY29uc3QgRmxvYXRSZWN0JiwgZmxvYXQsIGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0
YXRlJiwgR3JhcGhpY3NDb250ZXh0Jik7Cit2b2lkIHN0cm9rZVBhdGgoUGxhdGZvcm1Db250ZXh0
Q2Fpcm8mLCBjb25zdCBQYXRoJiwgY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGUmLCBHcmFwaGlj
c0NvbnRleHQmKTsKK3ZvaWQgY2xlYXJSZWN0KFBsYXRmb3JtQ29udGV4dENhaXJvJiwgY29uc3Qg
RmxvYXRSZWN0Jik7CisKIHZvaWQgc2F2ZShQbGF0Zm9ybUNvbnRleHRDYWlybyYpOwogdm9pZCBy
ZXN0b3JlKFBsYXRmb3JtQ29udGV4dENhaXJvJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYWRpZW50Q2Fpcm8uY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhZGllbnRDYWlyby5jcHAKaW5kZXggYTli
ZmYwZWVhY2I5NmJhZjc1M2RlMmJmMjUyNmIzYjFiNjg0YmMzZS4uYTMzYmMxMjMxMGYxNTBkY2E1
MGUzY2RmNWMyOGI5ZDVhYjBlZDg5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2Fpcm8vR3JhZGllbnRDYWlyby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhZGllbnRDYWlyby5jcHAKQEAgLTc5LDE1ICs3OSwx
MSBAQCBjYWlyb19wYXR0ZXJuX3QqIEdyYWRpZW50OjpjcmVhdGVQbGF0Zm9ybUdyYWRpZW50KGZs
b2F0IGdsb2JhbEFscGhhKQogCiB2b2lkIEdyYWRpZW50OjpmaWxsKEdyYXBoaWNzQ29udGV4dCog
Y29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiByZWN0KQogewotICAgIFJlZlB0cjxjYWlyb19wYXR0
ZXJuX3Q+IGdyYWRpZW50ID0gYWRvcHRSZWYoY3JlYXRlUGxhdGZvcm1HcmFkaWVudCgxLjApKTsK
KyAgICBSZWZQdHI8Y2Fpcm9fcGF0dGVybl90PiBwbGF0Zm9ybUdyYWRpZW50ID0gYWRvcHRSZWYo
Y3JlYXRlUGxhdGZvcm1HcmFkaWVudCgxLjApKTsKIAogICAgIGNvbnRleHQtPnNhdmUoKTsKLQot
ICAgIGNhaXJvX3QqIGNyID0gY29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCktPmNyKCk7Ci0gICAg
Y2Fpcm9fc2V0X3NvdXJjZShjciwgZ3JhZGllbnQuZ2V0KCkpOwotICAgIGNhaXJvX3JlY3Rhbmds
ZShjciwgcmVjdC54KCksIHJlY3QueSgpLCByZWN0LndpZHRoKCksIHJlY3QuaGVpZ2h0KCkpOwot
ICAgIGNhaXJvX2ZpbGwoY3IpOwotCisgICAgQVNTRVJUKGNvbnRleHQtPmhhc1BsYXRmb3JtQ29u
dGV4dCgpKTsKKyAgICBDYWlybzo6ZmlsbFJlY3QoKmNvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgp
LCByZWN0LCBwbGF0Zm9ybUdyYWRpZW50LmdldCgpKTsKICAgICBjb250ZXh0LT5yZXN0b3JlKCk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcAppbmRleCBmMzBlODdkMTFhMzNkNzgx
ZTViMTkwMmJmZGJkYmQ5MmY1NDA5YTdjLi45NTAyYzI4YmYyODg5MjkyZmI5NDcwNTdjY2EzNzli
NDE0MDQ1MWEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwCkBAIC00MTEsOSArNDEx
LDggQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmZpbGxQYXRoKGNvbnN0IFBhdGgmIHBhdGgpCiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBjYWlyb190KiBjciA9IHBsYXRmb3JtQ29udGV4
dCgpLT5jcigpOwotICAgIHNldFBhdGhPbkNhaXJvQ29udGV4dChjciwgcGF0aC5wbGF0Zm9ybVBh
dGgoKS0+Y29udGV4dCgpKTsKLSAgICBzaGFkb3dBbmRGaWxsQ3VycmVudENhaXJvUGF0aCgqdGhp
cyk7CisgICAgQVNTRVJUKGhhc1BsYXRmb3JtQ29udGV4dCgpKTsKKyAgICBDYWlybzo6ZmlsbFBh
dGgoKnBsYXRmb3JtQ29udGV4dCgpLCBwYXRoLCBzdGF0ZSgpLCAqdGhpcyk7CiB9CiAKIHZvaWQg
R3JhcGhpY3NDb250ZXh0OjpzdHJva2VQYXRoKGNvbnN0IFBhdGgmIHBhdGgpCkBAIC00MjYsOSAr
NDI1LDggQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OnN0cm9rZVBhdGgoY29uc3QgUGF0aCYgcGF0
aCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGNhaXJvX3QqIGNyID0gcGxhdGZvcm1D
b250ZXh0KCktPmNyKCk7Ci0gICAgc2V0UGF0aE9uQ2Fpcm9Db250ZXh0KGNyLCBwYXRoLnBsYXRm
b3JtUGF0aCgpLT5jb250ZXh0KCkpOwotICAgIHNoYWRvd0FuZFN0cm9rZUN1cnJlbnRDYWlyb1Bh
dGgoKnRoaXMpOworICAgIEFTU0VSVChoYXNQbGF0Zm9ybUNvbnRleHQoKSk7CisgICAgQ2Fpcm86
OnN0cm9rZVBhdGgoKnBsYXRmb3JtQ29udGV4dCgpLCBwYXRoLCBzdGF0ZSgpLCAqdGhpcyk7CiB9
CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpmaWxsUmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3Qp
CkBAIC00NDEsOSArNDM5LDggQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmZpbGxSZWN0KGNvbnN0
IEZsb2F0UmVjdCYgcmVjdCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGNhaXJvX3Qq
IGNyID0gcGxhdGZvcm1Db250ZXh0KCktPmNyKCk7Ci0gICAgY2Fpcm9fcmVjdGFuZ2xlKGNyLCBy
ZWN0LngoKSwgcmVjdC55KCksIHJlY3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQoKSk7Ci0gICAgc2hh
ZG93QW5kRmlsbEN1cnJlbnRDYWlyb1BhdGgoKnRoaXMpOworICAgIEFTU0VSVChoYXNQbGF0Zm9y
bUNvbnRleHQoKSk7CisgICAgQ2Fpcm86OmZpbGxSZWN0KCpwbGF0Zm9ybUNvbnRleHQoKSwgcmVj
dCwgc3RhdGUoKSwgKnRoaXMpOwogfQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZmlsbFJlY3Qo
Y29uc3QgRmxvYXRSZWN0JiByZWN0LCBjb25zdCBDb2xvciYgY29sb3IpCkBAIC00NTYsMTAgKzQ1
Myw4IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpmaWxsUmVjdChjb25zdCBGbG9hdFJlY3QmIHJl
Y3QsIGNvbnN0IENvbG9yJiBjb2xvcikKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlm
IChoYXNTaGFkb3coKSkKLSAgICAgICAgcGxhdGZvcm1Db250ZXh0KCktPnNoYWRvd0JsdXIoKS5k
cmF3UmVjdFNoYWRvdygqdGhpcywgRmxvYXRSb3VuZGVkUmVjdChyZWN0KSk7Ci0KLSAgICBmaWxs
UmVjdFdpdGhDb2xvcihwbGF0Zm9ybUNvbnRleHQoKS0+Y3IoKSwgcmVjdCwgY29sb3IpOworICAg
IEFTU0VSVChoYXNQbGF0Zm9ybUNvbnRleHQoKSk7CisgICAgQ2Fpcm86OmZpbGxSZWN0KCpwbGF0
Zm9ybUNvbnRleHQoKSwgcmVjdCwgY29sb3IsIGhhc1NoYWRvdygpLCAqdGhpcyk7CiB9CiAKIHZv
aWQgR3JhcGhpY3NDb250ZXh0OjpjbGlwKGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKQEAgLTg4Miwz
MSArODc3LDIyIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpjbGVhclJlY3QoY29uc3QgRmxvYXRS
ZWN0JiByZWN0KQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgY2Fpcm9fdCogY3IgPSBw
bGF0Zm9ybUNvbnRleHQoKS0+Y3IoKTsKLQotICAgIGNhaXJvX3NhdmUoY3IpOwotICAgIGNhaXJv
X3JlY3RhbmdsZShjciwgcmVjdC54KCksIHJlY3QueSgpLCByZWN0LndpZHRoKCksIHJlY3QuaGVp
Z2h0KCkpOwotICAgIGNhaXJvX3NldF9vcGVyYXRvcihjciwgQ0FJUk9fT1BFUkFUT1JfQ0xFQVIp
OwotICAgIGNhaXJvX2ZpbGwoY3IpOwotICAgIGNhaXJvX3Jlc3RvcmUoY3IpOworICAgIEFTU0VS
VChoYXNQbGF0Zm9ybUNvbnRleHQoKSk7CisgICAgQ2Fpcm86OmNsZWFyUmVjdCgqcGxhdGZvcm1D
b250ZXh0KCksIHJlY3QpOwogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4dDo6c3Ryb2tlUmVjdChj
b25zdCBGbG9hdFJlY3QmIHJlY3QsIGZsb2F0IHdpZHRoKQordm9pZCBHcmFwaGljc0NvbnRleHQ6
OnN0cm9rZVJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0LCBmbG9hdCBsaW5lV2lkdGgpCiB7CiAg
ICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKG1f
aW1wbCkgewotICAgICAgICBtX2ltcGwtPnN0cm9rZVJlY3QocmVjdCwgd2lkdGgpOworICAgICAg
ICBtX2ltcGwtPnN0cm9rZVJlY3QocmVjdCwgbGluZVdpZHRoKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAotICAgIGNhaXJvX3QqIGNyID0gcGxhdGZvcm1Db250ZXh0KCktPmNyKCk7Ci0gICAg
Y2Fpcm9fc2F2ZShjcik7Ci0gICAgY2Fpcm9fcmVjdGFuZ2xlKGNyLCByZWN0LngoKSwgcmVjdC55
KCksIHJlY3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQoKSk7Ci0gICAgY2Fpcm9fc2V0X2xpbmVfd2lk
dGgoY3IsIHdpZHRoKTsKLSAgICBzaGFkb3dBbmRTdHJva2VDdXJyZW50Q2Fpcm9QYXRoKCp0aGlz
KTsKLSAgICBjYWlyb19yZXN0b3JlKGNyKTsKKyAgICBBU1NFUlQoaGFzUGxhdGZvcm1Db250ZXh0
KCkpOworICAgIENhaXJvOjpzdHJva2VSZWN0KCpwbGF0Zm9ybUNvbnRleHQoKSwgcmVjdCwgbGlu
ZVdpZHRoLCBzdGF0ZSgpLCAqdGhpcyk7CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRM
aW5lQ2FwKExpbmVDYXAgbGluZUNhcCkKQEAgLTEwNDgsMTggKzEwMzQsNyBAQCB2b2lkIEdyYXBo
aWNzQ29udGV4dDo6cGxhdGZvcm1GaWxsUm91bmRlZFJlY3QoY29uc3QgRmxvYXRSb3VuZGVkUmVj
dCYgcmVjdCwgY29ucwogICAgICAgICByZXR1cm47CiAKICAgICBBU1NFUlQoaGFzUGxhdGZvcm1D
b250ZXh0KCkpOwotCi0gICAgaWYgKGhhc1NoYWRvdygpKQotICAgICAgICBwbGF0Zm9ybUNvbnRl
eHQoKS0+c2hhZG93Qmx1cigpLmRyYXdSZWN0U2hhZG93KCp0aGlzLCByZWN0KTsKLQotICAgIGNh
aXJvX3QqIGNyID0gcGxhdGZvcm1Db250ZXh0KCktPmNyKCk7Ci0gICAgY2Fpcm9fc2F2ZShjcik7
Ci0gICAgUGF0aCBwYXRoOwotICAgIHBhdGguYWRkUm91bmRlZFJlY3QocmVjdCk7Ci0gICAgYXBw
ZW5kV2ViQ29yZVBhdGhUb0NhaXJvQ29udGV4dChjciwgcGF0aCk7Ci0gICAgc2V0U291cmNlUkdC
QUZyb21Db2xvcihjciwgY29sb3IpOwotICAgIGNhaXJvX2ZpbGwoY3IpOwotICAgIGNhaXJvX3Jl
c3RvcmUoY3IpOworICAgIENhaXJvOjpmaWxsUm91bmRlZFJlY3QoKnBsYXRmb3JtQ29udGV4dCgp
LCByZWN0LCBjb2xvciwgaGFzU2hhZG93KCksICp0aGlzKTsKIH0KIAogdm9pZCBHcmFwaGljc0Nv
bnRleHQ6OmZpbGxSZWN0V2l0aFJvdW5kZWRIb2xlKGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgY29u
c3QgRmxvYXRSb3VuZGVkUmVjdCYgcm91bmRlZEhvbGVSZWN0LCBjb25zdCBDb2xvciYgY29sb3Ip
CkBAIC0xMDcyLDIxICsxMDQ3LDggQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmZpbGxSZWN0V2l0
aFJvdW5kZWRIb2xlKGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgY29uc3QgRmxvYXQKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAotICAgIGlmICh0aGlzLT5tdXN0VXNlU2hhZG93Qmx1cigpKQotICAg
ICAgICBwbGF0Zm9ybUNvbnRleHQoKS0+c2hhZG93Qmx1cigpLmRyYXdJbnNldFNoYWRvdygqdGhp
cywgcmVjdCwgcm91bmRlZEhvbGVSZWN0KTsKLQotICAgIFBhdGggcGF0aDsKLSAgICBwYXRoLmFk
ZFJlY3QocmVjdCk7Ci0gICAgaWYgKCFyb3VuZGVkSG9sZVJlY3QucmFkaWkoKS5pc1plcm8oKSkK
LSAgICAgICAgcGF0aC5hZGRSb3VuZGVkUmVjdChyb3VuZGVkSG9sZVJlY3QpOwotICAgIGVsc2UK
LSAgICAgICAgcGF0aC5hZGRSZWN0KHJvdW5kZWRIb2xlUmVjdC5yZWN0KCkpOwotCi0gICAgY2Fp
cm9fdCogY3IgPSBwbGF0Zm9ybUNvbnRleHQoKS0+Y3IoKTsKLSAgICBjYWlyb19zYXZlKGNyKTsK
LSAgICBzZXRQYXRoT25DYWlyb0NvbnRleHQocGxhdGZvcm1Db250ZXh0KCktPmNyKCksIHBhdGgu
cGxhdGZvcm1QYXRoKCktPmNvbnRleHQoKSk7Ci0gICAgZmlsbEN1cnJlbnRDYWlyb1BhdGgoKnRo
aXMpOwotICAgIGNhaXJvX3Jlc3RvcmUoY3IpOworICAgIEFTU0VSVChoYXNQbGF0Zm9ybUNvbnRl
eHQoKSk7CisgICAgQ2Fpcm86OmZpbGxSZWN0V2l0aFJvdW5kZWRIb2xlKCpwbGF0Zm9ybUNvbnRl
eHQoKSwgcmVjdCwgcm91bmRlZEhvbGVSZWN0LCBzdGF0ZSgpLCBtdXN0VXNlU2hhZG93Qmx1cigp
LCAqdGhpcyk7CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3UGF0dGVybihJbWFnZSYg
aW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGlsZVJl
Y3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQ
b2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgQ29tcG9zaXRlT3BlcmF0b3Ig
b3AsIEJsZW5kTW9kZSBibGVuZE1vZGUpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>