<?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>187082</bug_id>
          
          <creation_ts>2018-06-26 21:54:54 -0700</creation_ts>
          <short_desc>[LFC] Out-of-flow positioned element&apos;s height depends on its containing block&apos;s height.</short_desc>
          <delta_ts>2018-06-27 12:29:20 -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>Layout and Rendering</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="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>koivisto</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1436846</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2018-06-26 21:54:54 -0700</bug_when>
    <thetext>So we can&apos;t really compute the final height until after the containing block&apos;s height is computed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1436850</commentid>
    <comment_count>1</comment_count>
      <attachid>343688</attachid>
    <who name="alan">zalan</who>
    <bug_when>2018-06-26 22:01:50 -0700</bug_when>
    <thetext>Created attachment 343688
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1437003</commentid>
    <comment_count>2</comment_count>
      <attachid>343725</attachid>
    <who name="alan">zalan</who>
    <bug_when>2018-06-27 10:41:53 -0700</bug_when>
    <thetext>Created attachment 343725
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1437048</commentid>
    <comment_count>3</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2018-06-27 12:23:24 -0700</bug_when>
    <thetext>Committed r233272: &lt;https://trac.webkit.org/changeset/233272&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1437052</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-06-27 12:29:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/41536951&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>343688</attachid>
            <date>2018-06-26 22:01:50 -0700</date>
            <delta_ts>2018-06-27 10:39:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-187082-20180626220149.patch</filename>
            <type>text/plain</type>
            <size>30225</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMzMjAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTc2OTIzYmJjMDQxMTVk
NmJiM2IwZjEyMzBhMDUwYWI2YWFlMTVlNi4uNDAwMTcyMjEzMmUzOTdjNzc1M2QwYTU2N2Q2ZTQy
NDMxZWNhNGYzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDE4LTA2LTI2ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ10gT3V0LW9mLWZsb3cg
cG9zaXRpb25lZCBlbGVtZW50J3MgaGVpZ2h0IGRlcGVuZHMgb24gaXRzIGNvbnRhaW5pbmcgYmxv
Y2sncyBoZWlnaHQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xODcwODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBXZSBjYW4ndCByZWFsbHkgY29tcHV0ZSB0aGUgZmluYWwgaGVpZ2h0IG9mIGFuIG91dC1v
Zi1mbG93IGVsZW1lbnQgdW50aWwgYWZ0ZXIgaXRzIGNvbnRhaW5pbmcgYmxvY2sncyBoZWlnaHQg
aXMgY29tcHV0ZWQuCisKKyAgICAgICAgKiBsYXlvdXQvRm9ybWF0dGluZ0NvbnRleHQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZVZlcnRp
Y2FsR2VvbWV0cnlGb3JPdXRPZkZsb3dEZXNjZW5kYW50cyBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpMYXlvdXQ6OkZvcm1hdHRpbmdDb250ZXh0OjpsYXlvdXRPdXRPZkZsb3dEZXNjZW5kYW50
cyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0Lmg6
CisgICAgICAgICogbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnkuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TGF5b3V0OjpzdGF0aWNIb3Jpem9udGFsUG9zaXRpb25Gb3JPdXRPZkZsb3dQ
b3NpdGlvbmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6c3RhdGljVmVydGljYWxQb3Np
dGlvbkZvck91dE9mRmxvd1Bvc2l0aW9uZWQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpG
b3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6Om91dE9mRmxvd05vblJlcGxhY2VkVmVydGljYWxH
ZW9tZXRyeSk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZvcm1hdHRpbmdDb250ZXh0OjpH
ZW9tZXRyeTo6b3V0T2ZGbG93Tm9uUmVwbGFjZWRIb3Jpem9udGFsR2VvbWV0cnkpOgorICAgICAg
ICAoV2ViQ29yZTo6TGF5b3V0OjpGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6Om91dE9mRmxv
d1JlcGxhY2VkVmVydGljYWxHZW9tZXRyeSk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZv
cm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6b3V0T2ZGbG93UmVwbGFjZWRIb3Jpem9udGFsR2Vv
bWV0cnkpOgorICAgICAgICAqIGxheW91dC9MYXlvdXRDb250ZXh0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkxheW91dDo6TGF5b3V0Q29udGV4dDo6dXBkYXRlTGF5b3V0KToKKyAgICAgICAgKFdl
YkNvcmU6OkxheW91dDo6TGF5b3V0Q29udGV4dDo6bGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRTdWJ0
cmVlKToKKyAgICAgICAgKiBsYXlvdXQvTGF5b3V0Q29udGV4dC5oOgorICAgICAgICAqIGxheW91
dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmxheW91dCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmxheW91dEZv
cm1hdHRpbmdDb250ZXh0Um9vdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJs
b2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVIb3Jpem9udGFsR2VvbWV0cnkgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRl
VmVydGljYWxHZW9tZXRyeSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2Nr
Rm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVXaWR0aEFuZE1hcmdpbiBjb25zdCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1
dGVIZWlnaHRBbmRNYXJnaW4gY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGxheW91dC9ibG9j
a2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5oOgorICAgICAgICAqIGxheW91dC9i
bG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OnN0
YXRpY1Bvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5n
Q29udGV4dDo6R2VvbWV0cnk6OnN0YXRpY1Bvc2l0aW9uRm9yT3V0T2ZGbG93UG9zaXRpb25lZCk6
IERlbGV0ZWQuCisKIDIwMTgtMDYtMjYgIFRoaWJhdWx0IFNhdW5pZXIgIDx0c2F1bmllckBpZ2Fs
aWEuY29tPgogCiAgICAgICAgIFtHU3RyZWFtZXJdIERvIG5vdCBmb3JnZXQgdG8gc2V0IHN0cmVh
bSBvbiB0cmFjayBzd2l0Y2hpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9G
b3JtYXR0aW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0Nv
bnRleHQuY3BwCmluZGV4IDFhY2IxYTFkODkxMGY2NWQ5ZjAxMDA1MDFlMWYzM2YxYWZjOWE2NWEu
LjAxYTllZGQxZDA2OTZlZThiYzVhZjhjNDFmNzllYzM3MjM4Yjg2MWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0LmNwcApAQCAtMTA1LDMxICsxMDUsMTYgQEAg
dm9pZCBGb3JtYXR0aW5nQ29udGV4dDo6cGxhY2VJbkZsb3dQb3NpdGlvbmVkQ2hpbGRyZW4oTGF5
b3V0Q29udGV4dCYgbGF5b3V0Q29udGUKICAgICBMT0dfV0lUSF9TVFJFQU0oRm9ybWF0dGluZ0Nv
bnRleHRMYXlvdXQsIHN0cmVhbSA8PCAiRW5kOiBtb3ZlIGluLWZsb3cgcG9zaXRpb25lZCBjaGls
ZHJlbiAtPiBjb250ZXh0OiAiIDw8ICZsYXlvdXRDb250ZXh0IDw8ICIgcGFyZW50OiAiIDw8ICZj
b250YWluZXIpOwogfQogCi12b2lkIEZvcm1hdHRpbmdDb250ZXh0OjpsYXlvdXRPdXRPZkZsb3dE
ZXNjZW5kYW50cyhMYXlvdXRDb250ZXh0JiBsYXlvdXRDb250ZXh0KSBjb25zdAordm9pZCBGb3Jt
YXR0aW5nQ29udGV4dDo6Y29tcHV0ZVZlcnRpY2FsR2VvbWV0cnlGb3JPdXRPZkZsb3dEZXNjZW5k
YW50cyhMYXlvdXRDb250ZXh0JiBsYXlvdXRDb250ZXh0LCBGb3JtYXR0aW5nU3RhdGUmKSBjb25z
dAogewogICAgIGlmICghaXM8Q29udGFpbmVyPihtX3Jvb3QuZ2V0KCkpKQogICAgICAgICByZXR1
cm47CiAKICAgICBMT0dfV0lUSF9TVFJFQU0oRm9ybWF0dGluZ0NvbnRleHRMYXlvdXQsIHN0cmVh
bSA8PCAiU3RhcnQ6IGxheW91dCBvdXQtb2YtZmxvdyBkZXNjZW5kYW50cyAtPiBjb250ZXh0OiAi
IDw8ICZsYXlvdXRDb250ZXh0IDw8ICIgcm9vdDogIiA8PCAmcm9vdCgpKTsKIAotICAgIGZvciAo
YXV0byYgb3V0T2ZGbG93Qm94IDogZG93bmNhc3Q8Q29udGFpbmVyPigqbV9yb290KS5vdXRPZkZs
b3dEZXNjZW5kYW50cygpKSB7Ci0gICAgICAgIGF1dG8mIGxheW91dEJveCA9ICpvdXRPZkZsb3dC
b3g7Ci0gICAgICAgIGF1dG8mIGRpc3BsYXlCb3ggPSBsYXlvdXRDb250ZXh0LmNyZWF0ZURpc3Bs
YXlCb3gobGF5b3V0Qm94KTsKKyAgICBmb3IgKGF1dG8mIG91dE9mRmxvd0JveCA6IGRvd25jYXN0
PENvbnRhaW5lcj4oKm1fcm9vdCkub3V0T2ZGbG93RGVzY2VuZGFudHMoKSkKKyAgICAgICAgY29t
cHV0ZU91dE9mRmxvd1ZlcnRpY2FsR2VvbWV0cnkobGF5b3V0Q29udGV4dCwgKm91dE9mRmxvd0Jv
eCwgKmxheW91dENvbnRleHQuZGlzcGxheUJveEZvckxheW91dEJveCgqb3V0T2ZGbG93Qm94KSk7
CiAKLSAgICAgICAgLy8gVGhlIHRlcm0gInN0YXRpYyBwb3NpdGlvbiIgKG9mIGFuIGVsZW1lbnQp
IHJlZmVycywgcm91Z2hseSwgdG8gdGhlIHBvc2l0aW9uIGFuIGVsZW1lbnQgd291bGQgaGF2ZSBo
YWQgaW4gdGhlIG5vcm1hbCBmbG93LgotICAgICAgICAvLyBNb3JlIHByZWNpc2VseSwgdGhlIHN0
YXRpYyBwb3NpdGlvbiBmb3IgJ3RvcCcgaXMgdGhlIGRpc3RhbmNlIGZyb20gdGhlIHRvcCBlZGdl
IG9mIHRoZSBjb250YWluaW5nIGJsb2NrIHRvIHRoZSB0b3AgbWFyZ2luIGVkZ2UKLSAgICAgICAg
Ly8gb2YgYSBoeXBvdGhldGljYWwgYm94IHRoYXQgd291bGQgaGF2ZSBiZWVuIHRoZSBmaXJzdCBi
b3ggb2YgdGhlIGVsZW1lbnQgaWYgaXRzIHNwZWNpZmllZCAncG9zaXRpb24nIHZhbHVlIGhhZCBi
ZWVuICdzdGF0aWMnIGFuZAotICAgICAgICAvLyBpdHMgc3BlY2lmaWVkICdmbG9hdCcgaGFkIGJl
ZW4gJ25vbmUnIGFuZCBpdHMgc3BlY2lmaWVkICdjbGVhcicgaGFkIGJlZW4gJ25vbmUnLgotICAg
ICAgICBjb21wdXRlU3RhdGljUG9zaXRpb24obGF5b3V0Q29udGV4dCwgbGF5b3V0Qm94LCBkaXNw
bGF5Qm94KTsKLSAgICAgICAgY29tcHV0ZUJvcmRlckFuZFBhZGRpbmcobGF5b3V0Q29udGV4dCwg
bGF5b3V0Qm94LCBkaXNwbGF5Qm94KTsKLSAgICAgICAgY29tcHV0ZU91dE9mRmxvd0hvcml6b250
YWxHZW9tZXRyeShsYXlvdXRDb250ZXh0LCBsYXlvdXRCb3gsIGRpc3BsYXlCb3gpOwotCi0gICAg
ICAgIEFTU0VSVChsYXlvdXRCb3guZXN0YWJsaXNoZXNGb3JtYXR0aW5nQ29udGV4dCgpKTsKLSAg
ICAgICAgYXV0byBmb3JtYXR0aW5nQ29udGV4dCA9IGxheW91dENvbnRleHQuZm9ybWF0dGluZ0Nv
bnRleHQobGF5b3V0Qm94KTsKLSAgICAgICAgZm9ybWF0dGluZ0NvbnRleHQtPmxheW91dChsYXlv
dXRDb250ZXh0LCBsYXlvdXRDb250ZXh0LmVzdGFibGlzaGVkRm9ybWF0dGluZ1N0YXRlKGxheW91
dEJveCwgKmZvcm1hdHRpbmdDb250ZXh0KSk7Ci0KLSAgICAgICAgY29tcHV0ZU91dE9mRmxvd1Zl
cnRpY2FsR2VvbWV0cnkobGF5b3V0Q29udGV4dCwgbGF5b3V0Qm94LCBkaXNwbGF5Qm94KTsKLSAg
ICB9CiAgICAgTE9HX1dJVEhfU1RSRUFNKEZvcm1hdHRpbmdDb250ZXh0TGF5b3V0LCBzdHJlYW0g
PDwgIkVuZDogbGF5b3V0IG91dC1vZi1mbG93IGRlc2NlbmRhbnRzIC0+IGNvbnRleHQ6ICIgPDwg
JmxheW91dENvbnRleHQgPDwgIiByb290OiAiIDw8ICZyb290KCkpOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dC5oCmluZGV4IDUyYmJhNDE0ZDgyZDI2YjgzZTY5
YTAxODliZDY0NjczZmIzYWZkZTMuLjRjN2IxYWU3MDI4YjJhYmFlY2ZkNjI0YmY5MjcwNTdkNjJi
YWNjMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29udGV4
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dC5oCkBAIC01
MSw2ICs1MSwxMSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+Rm9ybWF0dGluZ0NvbnRleHQoKTsK
IAogICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQoTGF5b3V0Q29udGV4dCYsIEZvcm1hdHRpbmdTdGF0
ZSYpIGNvbnN0ID0gMDsKKyAgICB2b2lkIGNvbXB1dGVWZXJ0aWNhbEdlb21ldHJ5Rm9yT3V0T2ZG
bG93RGVzY2VuZGFudHMoTGF5b3V0Q29udGV4dCZzLCBGb3JtYXR0aW5nU3RhdGUmKSBjb25zdDsK
KyNpZm5kZWYgTkRFQlVHCisgICAgdmlydHVhbCB2b2lkIHZhbGlkYXRlR2VvbWV0cnlDb25zdHJh
aW50c0FmdGVyTGF5b3V0KGNvbnN0IExheW91dENvbnRleHQmKSBjb25zdDsKKyNlbmRpZgorCiAg
ICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8Rm9ybWF0dGluZ1N0YXRlPiBjcmVhdGVGb3JtYXR0
aW5nU3RhdGUoUmVmPEZsb2F0aW5nU3RhdGU+JiYpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIFJl
ZjxGbG9hdGluZ1N0YXRlPiBjcmVhdGVPckZpbmRGbG9hdGluZ1N0YXRlKExheW91dENvbnRleHQm
KSBjb25zdCA9IDA7CiAKQEAgLTcyLDExICs3Nyw5IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIGNv
bXB1dGVCb3JkZXJBbmRQYWRkaW5nKExheW91dENvbnRleHQmLCBjb25zdCBCb3gmLCBEaXNwbGF5
OjpCb3gmKSBjb25zdDsKIAogICAgIHZvaWQgcGxhY2VJbkZsb3dQb3NpdGlvbmVkQ2hpbGRyZW4o
TGF5b3V0Q29udGV4dCYsIGNvbnN0IENvbnRhaW5lciYpIGNvbnN0OwotICAgIHZvaWQgbGF5b3V0
T3V0T2ZGbG93RGVzY2VuZGFudHMoTGF5b3V0Q29udGV4dCZzKSBjb25zdDsKIAotI2lmbmRlZiBO
REVCVUcKLSAgICB2aXJ0dWFsIHZvaWQgdmFsaWRhdGVHZW9tZXRyeUNvbnN0cmFpbnRzQWZ0ZXJM
YXlvdXQoY29uc3QgTGF5b3V0Q29udGV4dCYpIGNvbnN0OwotI2VuZGlmCisgICAgdm9pZCBjb21w
dXRlT3V0T2ZGbG93VmVydGljYWxHZW9tZXRyeShMYXlvdXRDb250ZXh0JiwgY29uc3QgQm94Jiwg
RGlzcGxheTo6Qm94JikgY29uc3Q7CisgICAgdm9pZCBjb21wdXRlT3V0T2ZGbG93SG9yaXpvbnRh
bEdlb21ldHJ5KExheW91dENvbnRleHQmLCBjb25zdCBCb3gmLCBEaXNwbGF5OjpCb3gmKSBjb25z
dDsKIAogICAgIC8vIFRoaXMgY2xhc3MgaW1wbGVtZW50cyBnZW5lcmljIHBvc2l0aW9uaW5nIGFu
ZCBzaXppbmcuCiAgICAgY2xhc3MgR2VvbWV0cnkgewpAQCAtMTQzLDkgKzE0Niw2IEBAIHByb3Rl
Y3RlZDoKICAgICB9OwogCiBwcml2YXRlOgotICAgIHZvaWQgY29tcHV0ZU91dE9mRmxvd1ZlcnRp
Y2FsR2VvbWV0cnkoTGF5b3V0Q29udGV4dCYsIGNvbnN0IEJveCYsIERpc3BsYXk6OkJveCYpIGNv
bnN0OwotICAgIHZvaWQgY29tcHV0ZU91dE9mRmxvd0hvcml6b250YWxHZW9tZXRyeShMYXlvdXRD
b250ZXh0JiwgY29uc3QgQm94JiwgRGlzcGxheTo6Qm94JikgY29uc3Q7Ci0KICAgICBXZWFrUHRy
PEJveD4gbV9yb290OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zv
cm1hdHRpbmdDb250ZXh0R2VvbWV0cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1h
dHRpbmdDb250ZXh0R2VvbWV0cnkuY3BwCmluZGV4IGY1ZmEwNWM3OTE0MzNmMDgzZjAwZGIxOGNl
NjJkMDE3MWNhMDRiNmQuLmE4NTRhNTNlYWE4YzJiMTg1OTcwNzg1Mjc4ZWNmMjk2ZGVlZTU5YjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dEdlb21l
dHJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHRHZW9t
ZXRyeS5jcHAKQEAgLTc1LDYgKzc1LDQ0IEBAIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gRm9y
bWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5Ojpjb21wdXRlZFZhbHVlSWZOb3RBdXRvKGNvCiAgICAg
cmV0dXJuIHZhbHVlRm9yTGVuZ3RoKGdlb21ldHJ5UHJvcGVydHksIGNvbnRhaW5pbmdCbG9ja1dp
ZHRoKTsKIH0KIAorc3RhdGljIExheW91dFVuaXQgc3RhdGljSG9yaXpvbnRhbFBvc2l0aW9uRm9y
T3V0T2ZGbG93UG9zaXRpb25lZChjb25zdCBMYXlvdXRDb250ZXh0JiBsYXlvdXRDb250ZXh0LCBj
b25zdCBCb3gmIGxheW91dEJveCkKK3sKKyAgICBBU1NFUlQobGF5b3V0Qm94LmlzT3V0T2ZGbG93
UG9zaXRpb25lZCgpKTsKKworICAgIExheW91dFVuaXQgbGVmdDsKKyAgICAvLyBSZXNvbHZlIGxl
ZnQgYWxsIHRoZSB3YXkgdXAgdG8gdGhlIGNvbnRhaW5pbmcgYmxvY2suCisgICAgYXV0byogY29u
dGFpbmluZ0Jsb2NrID0gbGF5b3V0Qm94LmNvbnRhaW5pbmdCbG9jaygpOworICAgIGZvciAoYXV0
byogcGFyZW50ID0gbGF5b3V0Qm94LnBhcmVudCgpOyBwYXJlbnQ7IHBhcmVudCA9IHBhcmVudC0+
cGFyZW50KCkpIHsKKyAgICAgICAgYXV0byYgZGlzcGxheUJveCA9ICpsYXlvdXRDb250ZXh0LmRp
c3BsYXlCb3hGb3JMYXlvdXRCb3goKnBhcmVudCk7CisgICAgICAgIGxlZnQgKz0gKGRpc3BsYXlC
b3gubGVmdCgpICsgZGlzcGxheUJveC5jb250ZW50Qm94TGVmdCgpKTsKKyAgICAgICAgaWYgKHBh
cmVudCA9PSBjb250YWluaW5nQmxvY2spCisgICAgICAgICAgICBicmVhazsKKyAgICB9CisgICAg
cmV0dXJuIGxlZnQ7Cit9CisKK3N0YXRpYyBMYXlvdXRVbml0IHN0YXRpY1ZlcnRpY2FsUG9zaXRp
b25Gb3JPdXRPZkZsb3dQb3NpdGlvbmVkKGNvbnN0IExheW91dENvbnRleHQmIGxheW91dENvbnRl
eHQsIGNvbnN0IEJveCYgbGF5b3V0Qm94KQoreworICAgIEFTU0VSVChsYXlvdXRCb3guaXNPdXRP
ZkZsb3dQb3NpdGlvbmVkKCkpOworCisgICAgTGF5b3V0VW5pdCB0b3A7CisgICAgLy8gUmVzb2x2
ZSB0b3AgYWxsIHRoZSB3YXkgdXAgdG8gdGhlIGNvbnRhaW5pbmcgYmxvY2suCisgICAgYXV0byog
Y29udGFpbmluZ0Jsb2NrID0gbGF5b3V0Qm94LmNvbnRhaW5pbmdCbG9jaygpOworICAgIGZvciAo
YXV0byogcGFyZW50ID0gbGF5b3V0Qm94LnBhcmVudCgpOyBwYXJlbnQ7IHBhcmVudCA9IHBhcmVu
dC0+cGFyZW50KCkpIHsKKyAgICAgICAgYXV0byYgZGlzcGxheUJveCA9ICpsYXlvdXRDb250ZXh0
LmRpc3BsYXlCb3hGb3JMYXlvdXRCb3goKnBhcmVudCk7CisgICAgICAgIHRvcCArPSAoZGlzcGxh
eUJveC50b3AoKSArIGRpc3BsYXlCb3guY29udGVudEJveFRvcCgpKTsKKyAgICAgICAgaWYgKHBh
cmVudCA9PSBjb250YWluaW5nQmxvY2spCisgICAgICAgICAgICBicmVhazsKKyAgICB9CisgICAg
Ly8gQWRkIHNpYmxpbmcgb2Zmc2V0CisgICAgaWYgKGF1dG8qIHByZXZpb3VzSW5GbG93U2libGlu
ZyA9IGxheW91dEJveC5wcmV2aW91c0luRmxvd1NpYmxpbmcoKSkgeworICAgICAgICBhdXRvJiBw
cmV2aW91c0luRmxvd0Rpc3BsYXlCb3ggPSAqbGF5b3V0Q29udGV4dC5kaXNwbGF5Qm94Rm9yTGF5
b3V0Qm94KCpwcmV2aW91c0luRmxvd1NpYmxpbmcpOworICAgICAgICB0b3AgKz0gcHJldmlvdXNJ
bkZsb3dEaXNwbGF5Qm94LmJvdHRvbSgpICsgcHJldmlvdXNJbkZsb3dEaXNwbGF5Qm94Lm1hcmdp
bkJvdHRvbSgpOworICAgIH0KKworICAgIHJldHVybiB0b3A7Cit9CisKIEZvcm1hdHRpbmdDb250
ZXh0OjpHZW9tZXRyeTo6VmVydGljYWxHZW9tZXRyeSBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0
cnk6Om91dE9mRmxvd05vblJlcGxhY2VkVmVydGljYWxHZW9tZXRyeShMYXlvdXRDb250ZXh0JiBs
YXlvdXRDb250ZXh0LCBjb25zdCBCb3gmIGxheW91dEJveCkKIHsKICAgICBBU1NFUlQobGF5b3V0
Qm94LmlzT3V0T2ZGbG93UG9zaXRpb25lZCgpICYmICFsYXlvdXRCb3gucmVwbGFjZWQoKSk7CkBA
IC0xMjAsNyArMTU4LDcgQEAgRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpWZXJ0aWNhbEdl
b21ldHJ5IEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6b3V0T2YKICAgICBhdXRvIGJvcmRl
ckJvdHRvbSA9IGRpc3BsYXlCb3guYm9yZGVyQm90dG9tKCk7CiAKICAgICBpZiAoIXRvcCAmJiAh
aGVpZ2h0ICYmICFib3R0b20pCi0gICAgICAgIHRvcCA9IGRpc3BsYXlCb3gudG9wKCk7CisgICAg
ICAgIHRvcCA9IHN0YXRpY1ZlcnRpY2FsUG9zaXRpb25Gb3JPdXRPZkZsb3dQb3NpdGlvbmVkKGxh
eW91dENvbnRleHQsIGxheW91dEJveCk7CiAKICAgICBpZiAodG9wICYmIGhlaWdodCAmJiBib3R0
b20pIHsKICAgICAgICAgaWYgKCFtYXJnaW5Ub3AgJiYgIW1hcmdpbkJvdHRvbSkgewpAQCAtMTQ2
LDcgKzE4NCw3IEBAIEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6VmVydGljYWxHZW9tZXRy
eSBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6Om91dE9mCiAKICAgICBpZiAoIXRvcCAmJiAh
Ym90dG9tICYmIGhlaWdodCkgewogICAgICAgICAvLyAjMgotICAgICAgICB0b3AgPSBkaXNwbGF5
Qm94LnRvcCgpOworICAgICAgICB0b3AgPSBzdGF0aWNWZXJ0aWNhbFBvc2l0aW9uRm9yT3V0T2ZG
bG93UG9zaXRpb25lZChsYXlvdXRDb250ZXh0LCBsYXlvdXRCb3gpOwogICAgICAgICBtYXJnaW5U
b3AgPSBtYXJnaW5Ub3AudmFsdWVfb3IoMCk7CiAgICAgICAgIG1hcmdpbkJvdHRvbSA9IG1hcmdp
bkJvdHRvbS52YWx1ZV9vcigwKTsKICAgICAgICAgYm90dG9tID0gY29udGFpbmluZ0Jsb2NrSGVp
Z2h0IC0gKCp0b3AgKyAqbWFyZ2luVG9wICsgYm9yZGVyVG9wICsgcGFkZGluZ1RvcCArICpoZWln
aHQgKyBwYWRkaW5nQm90dG9tICsgYm9yZGVyQm90dG9tICsgKm1hcmdpbkJvdHRvbSk7IApAQCAt
MjQ0LDEwICsyODIsMTEgQEAgRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpIb3Jpem9udGFs
R2VvbWV0cnkgRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpvdXQKICAgICAgICAgbWFyZ2lu
TGVmdCA9IG1hcmdpbkxlZnQudmFsdWVfb3IoMCk7CiAgICAgICAgIG1hcmdpblJpZ2h0ID0gbWFy
Z2luUmlnaHQudmFsdWVfb3IoMCk7CiAKKyAgICAgICAgYXV0byBob3p0aXpvbnRhbFBvc2l0aW9u
ID0gc3RhdGljSG9yaXpvbnRhbFBvc2l0aW9uRm9yT3V0T2ZGbG93UG9zaXRpb25lZChsYXlvdXRD
b250ZXh0LCBsYXlvdXRCb3gpOwogICAgICAgICBpZiAoaXNMZWZ0VG9SaWdodERpcmVjdGlvbikK
LSAgICAgICAgICAgIGxlZnQgPSBkaXNwbGF5Qm94LmxlZnQoKTsKKyAgICAgICAgICAgIGxlZnQg
PSBob3p0aXpvbnRhbFBvc2l0aW9uOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICByaWdodCA9
IGRpc3BsYXlCb3gucmlnaHQoKTsKKyAgICAgICAgICAgIHJpZ2h0ID0gaG96dGl6b250YWxQb3Np
dGlvbjsKICAgICB9IGVsc2UgaWYgKGxlZnQgJiYgd2lkdGggJiYgcmlnaHQpIHsKICAgICAgICAg
Ly8gSWYgbm9uZSBvZiB0aGUgdGhyZWUgaXMgJ2F1dG8nOiBJZiBib3RoICdtYXJnaW4tbGVmdCcg
YW5kICdtYXJnaW4tcmlnaHQnIGFyZSAnYXV0bycsIHNvbHZlIHRoZSBlcXVhdGlvbiB1bmRlciB0
aGUgZXh0cmEgY29uc3RyYWludCB0aGF0IHRoZSB0d28gbWFyZ2lucyBnZXQgZXF1YWwgdmFsdWVz
LAogICAgICAgICAvLyB1bmxlc3MgdGhpcyB3b3VsZCBtYWtlIHRoZW0gbmVnYXRpdmUsIGluIHdo
aWNoIGNhc2Ugd2hlbiBkaXJlY3Rpb24gb2YgdGhlIGNvbnRhaW5pbmcgYmxvY2sgaXMgJ2x0cicg
KCdydGwnKSwgc2V0ICdtYXJnaW4tbGVmdCcgKCdtYXJnaW4tcmlnaHQnKSB0byB6ZXJvIGFuZApA
QCAtMzAxLDExICszNDAsMTIgQEAgRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpIb3Jpem9u
dGFsR2VvbWV0cnkgRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpvdXQKICAgICAgICAgbGVm
dCA9IGNvbnRhaW5pbmdCbG9ja1dpZHRoIC0gKCptYXJnaW5MZWZ0ICsgYm9yZGVyTGVmdCArIHBh
ZGRpbmdMZWZ0ICsgKndpZHRoICsgcGFkZGluZ1JpZ2h0ICArIGJvcmRlclJpZ2h0ICsgKm1hcmdp
blJpZ2h0ICsgKnJpZ2h0KTsKICAgICB9IGVsc2UgaWYgKCFsZWZ0ICYmICFyaWdodCAmJiB3aWR0
aCkgewogICAgICAgICAvLyAjMgorICAgICAgICBhdXRvIGhvenRpem9udGFsUG9zaXRpb24gPSBz
dGF0aWNIb3Jpem9udGFsUG9zaXRpb25Gb3JPdXRPZkZsb3dQb3NpdGlvbmVkKGxheW91dENvbnRl
eHQsIGxheW91dEJveCk7CiAgICAgICAgIGlmIChpc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKSB7Ci0g
ICAgICAgICAgICBsZWZ0ID0gZGlzcGxheUJveC5sZWZ0KCk7CisgICAgICAgICAgICBsZWZ0ID0g
aG96dGl6b250YWxQb3NpdGlvbjsKICAgICAgICAgICAgIHJpZ2h0ID0gY29udGFpbmluZ0Jsb2Nr
V2lkdGggLSAoKmxlZnQgKyAqbWFyZ2luTGVmdCArIGJvcmRlckxlZnQgKyBwYWRkaW5nTGVmdCAr
ICp3aWR0aCArIHBhZGRpbmdSaWdodCArIGJvcmRlclJpZ2h0ICsgKm1hcmdpblJpZ2h0KTsKICAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHJpZ2h0ID0gZGlzcGxheUJveC5yaWdodCgpOwor
ICAgICAgICAgICAgcmlnaHQgPSBob3p0aXpvbnRhbFBvc2l0aW9uOwogICAgICAgICAgICAgbGVm
dCA9IGNvbnRhaW5pbmdCbG9ja1dpZHRoIC0gKCptYXJnaW5MZWZ0ICsgYm9yZGVyTGVmdCArIHBh
ZGRpbmdMZWZ0ICsgKndpZHRoICsgcGFkZGluZ1JpZ2h0ICsgYm9yZGVyUmlnaHQgKyAqbWFyZ2lu
UmlnaHQgKyAqcmlnaHQpOwogICAgICAgICB9CiAgICAgfSBlbHNlIGlmICghd2lkdGggJiYgIXJp
Z2h0ICYmIGxlZnQpIHsKQEAgLTM2NSw3ICs0MDUsNyBAQCBGb3JtYXR0aW5nQ29udGV4dDo6R2Vv
bWV0cnk6OlZlcnRpY2FsR2VvbWV0cnkgRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpvdXRP
ZgogCiAgICAgaWYgKCF0b3AgJiYgIWJvdHRvbSkgewogICAgICAgICAvLyAjMQotICAgICAgICB0
b3AgPSBkaXNwbGF5Qm94LnRvcCgpOworICAgICAgICB0b3AgPSBzdGF0aWNWZXJ0aWNhbFBvc2l0
aW9uRm9yT3V0T2ZGbG93UG9zaXRpb25lZChsYXlvdXRDb250ZXh0LCBsYXlvdXRCb3gpOwogICAg
IH0KIAogICAgIGlmICghYm90dG9tKSB7CkBAIC00MzgsMTAgKzQ3OCwxMSBAQCBGb3JtYXR0aW5n
Q29udGV4dDo6R2VvbWV0cnk6Okhvcml6b250YWxHZW9tZXRyeSBGb3JtYXR0aW5nQ29udGV4dDo6
R2VvbWV0cnk6Om91dAogCiAgICAgaWYgKCFsZWZ0ICYmICFyaWdodCkgewogICAgICAgICAvLyAj
MQorICAgICAgICBhdXRvIGhvenRpem9udGFsUG9zaXRpb24gPSBzdGF0aWNIb3Jpem9udGFsUG9z
aXRpb25Gb3JPdXRPZkZsb3dQb3NpdGlvbmVkKGxheW91dENvbnRleHQsIGxheW91dEJveCk7CiAg
ICAgICAgIGlmIChpc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKQotICAgICAgICAgICAgbGVmdCA9IGRp
c3BsYXlCb3gubGVmdCgpOworICAgICAgICAgICAgbGVmdCA9IGhvenRpem9udGFsUG9zaXRpb247
CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHJpZ2h0ID0gZGlzcGxheUJveC5yaWdodCgpOwor
ICAgICAgICAgICAgcmlnaHQgPSBob3p0aXpvbnRhbFBvc2l0aW9uOwogICAgIH0KIAogICAgIGlm
ICghbGVmdCB8fCAhcmlnaHQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9M
YXlvdXRDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRDb250ZXh0LmNw
cAppbmRleCA5NzM3OTk4MjQ0Nzc1M2E4ZTAyZjY3MTAyZmI2YWQyMjczZGQ3ZmU2Li5iZmNkYzBm
MDQ3MTg1Y2EzNmEyMjI3OTI5OWZmMzQwZDhjMjYwZjgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvTGF5b3V0Q29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0
L0xheW91dENvbnRleHQuY3BwCkBAIC03MSwxNSArNzEsMjQgQEAgdm9pZCBMYXlvdXRDb250ZXh0
Ojppbml0aWFsaXplUm9vdChjb25zdCBDb250YWluZXImIHJvb3QsIGNvbnN0IExheW91dFNpemUm
IGNvbnQKIHZvaWQgTGF5b3V0Q29udGV4dDo6dXBkYXRlTGF5b3V0KCkKIHsKICAgICBBU1NFUlQo
IW1fZm9ybWF0dGluZ0NvbnRleHRSb290TGlzdEZvckxheW91dC5pc0VtcHR5KCkpOwotICAgIGZv
ciAoYXV0byogbGF5b3V0Um9vdCA6IG1fZm9ybWF0dGluZ0NvbnRleHRSb290TGlzdEZvckxheW91
dCkgewotICAgICAgICBSRUxFQVNFX0FTU0VSVChsYXlvdXRSb290LT5lc3RhYmxpc2hlc0Zvcm1h
dHRpbmdDb250ZXh0KCkpOwotICAgICAgICBhdXRvIGNvbnRleHQgPSBmb3JtYXR0aW5nQ29udGV4
dCgqbGF5b3V0Um9vdCk7Ci0gICAgICAgIGF1dG8mIHN0YXRlID0gZXN0YWJsaXNoZWRGb3JtYXR0
aW5nU3RhdGUoKmxheW91dFJvb3QsICpjb250ZXh0KTsKLSAgICAgICAgY29udGV4dC0+bGF5b3V0
KCp0aGlzLCBzdGF0ZSk7Ci0gICAgfQorICAgIGZvciAoYXV0byogbGF5b3V0Um9vdCA6IG1fZm9y
bWF0dGluZ0NvbnRleHRSb290TGlzdEZvckxheW91dCkKKyAgICAgICAgbGF5b3V0Rm9ybWF0dGlu
Z0NvbnRleHRTdWJ0cmVlKCpsYXlvdXRSb290KTsKICAgICBtX2Zvcm1hdHRpbmdDb250ZXh0Um9v
dExpc3RGb3JMYXlvdXQuY2xlYXIoKTsKIH0KIAordm9pZCBMYXlvdXRDb250ZXh0OjpsYXlvdXRG
b3JtYXR0aW5nQ29udGV4dFN1YnRyZWUoY29uc3QgQm94JiBsYXlvdXRSb290KQoreworICAgIC8v
IFdlIGRvbid0IGxheW91dCB0aGUgcm9vdCBpdHNlbGYgaGVyZSwgb25seSB0aGUgYm94ZXMgdGhh
dCBwYXJ0aWNpcGF0ZSBpbiBpdHMgZm9ybWF0dGluZyBjb250ZXh0LiAKKyAgICBSRUxFQVNFX0FT
U0VSVChsYXlvdXRSb290LmVzdGFibGlzaGVzRm9ybWF0dGluZ0NvbnRleHQoKSk7CisgICAgYXV0
byBmb3JtYXR0aW5nQ29udGV4dCA9IHRoaXMtPmZvcm1hdHRpbmdDb250ZXh0KGxheW91dFJvb3Qp
OworICAgIGF1dG8mIGZvcm1hdHRpbmdTdGF0ZSA9IGVzdGFibGlzaGVkRm9ybWF0dGluZ1N0YXRl
KGxheW91dFJvb3QsICpmb3JtYXR0aW5nQ29udGV4dCk7CisgICAgZm9ybWF0dGluZ0NvbnRleHQt
PmxheW91dCgqdGhpcywgZm9ybWF0dGluZ1N0YXRlKTsKKyAgICBmb3JtYXR0aW5nQ29udGV4dC0+
Y29tcHV0ZVZlcnRpY2FsR2VvbWV0cnlGb3JPdXRPZkZsb3dEZXNjZW5kYW50cygqdGhpcywgZm9y
bWF0dGluZ1N0YXRlKTsKKyNpZm5kZWYgTkRFQlVHCisgICAgZm9ybWF0dGluZ0NvbnRleHQtPnZh
bGlkYXRlR2VvbWV0cnlDb25zdHJhaW50c0FmdGVyTGF5b3V0KCp0aGlzKTsKKyNlbmRpZgorfQor
CiBEaXNwbGF5OjpCb3gmIExheW91dENvbnRleHQ6OmNyZWF0ZURpc3BsYXlCb3goY29uc3QgQm94
JiBsYXlvdXRCb3gpCiB7CiAgICAgc3RkOjp1bmlxdWVfcHRyPERpc3BsYXk6OkJveD4gZGlzcGxh
eUJveChuZXcgRGlzcGxheTo6Qm94KGxheW91dEJveC5zdHlsZSgpKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0Q29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvbGF5
b3V0L0xheW91dENvbnRleHQuaAppbmRleCBkODNiYzA4YWE0MDdmY2E0YjE2OTZmMzZjNzM0YTI2
YjAzMDRjMGViLi4xZjg0YWM2YzM4YTQ1MTVlNWUzNzI2YzM0MGEyOTJkYTE0YzBjNTk5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0Q29udGV4dC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9MYXlvdXRDb250ZXh0LmgKQEAgLTg2LDYgKzg2LDggQEAgcHVibGlj
OgogICAgIHZvaWQgdmVyaWZ5QW5kT3V0cHV0TWlzbWF0Y2hpbmdMYXlvdXRUcmVlKGNvbnN0IFJl
bmRlclZpZXcmKSBjb25zdDsKIAogcHJpdmF0ZToKKyAgICB2b2lkIGxheW91dEZvcm1hdHRpbmdD
b250ZXh0U3VidHJlZShjb25zdCBCb3gmKTsKKwogICAgIFdlYWtQdHI8Q29udGFpbmVyPiBtX3Jv
b3Q7CiAgICAgSGFzaFNldDxjb25zdCBDb250YWluZXIqPiBtX2Zvcm1hdHRpbmdDb250ZXh0Um9v
dExpc3RGb3JMYXlvdXQ7CiAgICAgSGFzaE1hcDxjb25zdCBCb3gqLCBzdGQ6OnVuaXF1ZV9wdHI8
Rm9ybWF0dGluZ1N0YXRlPj4gbV9mb3JtYXR0aW5nU3RhdGVzOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5n
Q29udGV4dC5jcHAKaW5kZXggMzEyNWYyNDE0MzFkMzYxNDhkYTFmNjA4MjBhNTQyNTBmNTliOWIw
Yy4uODgyNmU5ZTM0MzNhYjM0NTliY2ZiMmFlODgyYjZmNzhkNjdlNDdiMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250
ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2Nr
Rm9ybWF0dGluZ0NvbnRleHQuY3BwCkBAIC01NSw3ICs1NSw3IEBAIHZvaWQgQmxvY2tGb3JtYXR0
aW5nQ29udGV4dDo6bGF5b3V0KExheW91dENvbnRleHQmIGxheW91dENvbnRleHQsIEZvcm1hdHRp
bmdTdGF0CiAgICAgLy8gSW4gYSBibG9jayBmb3JtYXR0aW5nIGNvbnRleHQsIGJveGVzIGFyZSBs
YWlkIG91dCBvbmUgYWZ0ZXIgdGhlIG90aGVyLCB2ZXJ0aWNhbGx5LCBiZWdpbm5pbmcgYXQgdGhl
IHRvcCBvZiBhIGNvbnRhaW5pbmcgYmxvY2suCiAgICAgLy8gVGhlIHZlcnRpY2FsIGRpc3RhbmNl
IGJldHdlZW4gdHdvIHNpYmxpbmcgYm94ZXMgaXMgZGV0ZXJtaW5lZCBieSB0aGUgJ21hcmdpbicg
cHJvcGVydGllcy4KICAgICAvLyBWZXJ0aWNhbCBtYXJnaW5zIGJldHdlZW4gYWRqYWNlbnQgYmxv
Y2stbGV2ZWwgYm94ZXMgaW4gYSBibG9jayBmb3JtYXR0aW5nIGNvbnRleHQgY29sbGFwc2UuCi0g
ICAgaWYgKCFpczxDb250YWluZXI+KHJvb3QoKSkpCisgICAgaWYgKCFpczxDb250YWluZXI+KHJv
b3QoKSkgfHwgIWRvd25jYXN0PENvbnRhaW5lcj4ocm9vdCgpKS5maXJzdENoaWxkKCkpCiAgICAg
ICAgIHJldHVybjsKIAogICAgIExPR19XSVRIX1NUUkVBTShGb3JtYXR0aW5nQ29udGV4dExheW91
dCwgc3RyZWFtIDw8ICJbU3RhcnRdIC0+IGJsb2NrIGZvcm1hdHRpbmcgY29udGV4dCAtPiBsYXlv
dXQgY29udGV4dCgiIDw8ICZsYXlvdXRDb250ZXh0IDw8ICIpIGZvcm1hdHRpbmcgcm9vdCgiIDw8
ICZyb290KCkgPDwgIikiKTsKQEAgLTY1LDggKzY1LDggQEAgdm9pZCBCbG9ja0Zvcm1hdHRpbmdD
b250ZXh0OjpsYXlvdXQoTGF5b3V0Q29udGV4dCYgbGF5b3V0Q29udGV4dCwgRm9ybWF0dGluZ1N0
YXQKICAgICBGbG9hdGluZ0NvbnRleHQgZmxvYXRpbmdDb250ZXh0KGZvcm1hdHRpbmdTdGF0ZS5m
bG9hdGluZ1N0YXRlKCkpOwogICAgIC8vIFRoaXMgaXMgYSBwb3N0LW9yZGVyIHRyZWUgdHJhdmVy
c2FsIGxheW91dC4KICAgICAvLyBUaGUgcm9vdCBjb250YWluZXIgbGF5b3V0IGlzIGRvbmUgaW4g
dGhlIGZvcm1hdHRpbmcgY29udGV4dCBpdCBsaXZlcyBpbiwgbm90IHRoYXQgb25lIGl0IGNyZWF0
ZXMsIHNvIGxldCdzIHN0YXJ0IHdpdGggdGhlIGZpcnN0IGNoaWxkLgotICAgIGlmIChhdXRvKiBm
aXJzdENoaWxkID0gZm9ybWF0dGluZ1Jvb3QuZmlyc3RJbkZsb3dPckZsb2F0aW5nQ2hpbGQoKSkK
LSAgICAgICAgbGF5b3V0UXVldWUuYXBwZW5kKHN0ZDo6bWFrZV91bmlxdWU8TGF5b3V0UGFpcj4o
TGF5b3V0UGFpciB7KmZpcnN0Q2hpbGQsIGxheW91dENvbnRleHQuY3JlYXRlRGlzcGxheUJveCgq
Zmlyc3RDaGlsZCl9KSk7CisgICAgYXV0byYgZmlyc3RDaGlsZCA9ICpmb3JtYXR0aW5nUm9vdC5m
aXJzdENoaWxkKCk7CisgICAgbGF5b3V0UXVldWUuYXBwZW5kKHN0ZDo6bWFrZV91bmlxdWU8TGF5
b3V0UGFpcj4oTGF5b3V0UGFpciB7IGZpcnN0Q2hpbGQsIGxheW91dENvbnRleHQuY3JlYXRlRGlz
cGxheUJveChmaXJzdENoaWxkKSB9KSk7CiAgICAgLy8gMS4gR28gYWxsIHRoZSB3YXkgZG93biB0
byB0aGUgbGVhZiBub2RlCiAgICAgLy8gMi4gQ29tcHV0ZSBzdGF0aWMgcG9zaXRpb24gYW5kIHdp
ZHRoIGFzIHdlIHRyYXZlcnNlIGRvd24KICAgICAvLyAzLiBBcyB3ZSBjbGltYiBiYWNrIG9uIHRo
ZSB0cmVlLCBjb21wdXRlIGhlaWdodCBhbmQgZmluaWFsaXplIHBvc2l0aW9uCkBAIC03OCwxOCAr
NzgsMTkgQEAgdm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpsYXlvdXQoTGF5b3V0Q29udGV4
dCYgbGF5b3V0Q29udGV4dCwgRm9ybWF0dGluZ1N0YXQKICAgICAgICAgICAgIGF1dG8mIGxheW91
dEJveCA9IGxheW91dFBhaXIubGF5b3V0Qm94OwogICAgICAgICAgICAgYXV0byYgZGlzcGxheUJv
eCA9IGxheW91dFBhaXIuZGlzcGxheUJveDsKICAgICAgICAgICAgIAotICAgICAgICAgICAgTE9H
X1dJVEhfU1RSRUFNKEZvcm1hdHRpbmdDb250ZXh0TGF5b3V0LCBzdHJlYW0gPDwgIltDb21wdXRl
XSAtPiBbUG9zaXRpb25dW0JvcmRlcl1bUGFkZGluZ11bV2lkdGhdW01hcmdpbl0gLT4gZm9yIGxh
eW91dEJveCgiIDw8ICZsYXlvdXRCb3ggPDwgIikiKTsKLSAgICAgICAgICAgIGNvbXB1dGVTdGF0
aWNQb3NpdGlvbihsYXlvdXRDb250ZXh0LCBsYXlvdXRCb3gsIGRpc3BsYXlCb3gpOwotICAgICAg
ICAgICAgY29tcHV0ZUJvcmRlckFuZFBhZGRpbmcobGF5b3V0Q29udGV4dCwgbGF5b3V0Qm94LCBk
aXNwbGF5Qm94KTsKLSAgICAgICAgICAgIGNvbXB1dGVXaWR0aEFuZE1hcmdpbihsYXlvdXRDb250
ZXh0LCBsYXlvdXRCb3gsIGRpc3BsYXlCb3gpOwogICAgICAgICAgICAgaWYgKGxheW91dEJveC5l
c3RhYmxpc2hlc0Zvcm1hdHRpbmdDb250ZXh0KCkpIHsKLSAgICAgICAgICAgICAgICBhdXRvIGZv
cm1hdHRpbmdDb250ZXh0ID0gbGF5b3V0Q29udGV4dC5mb3JtYXR0aW5nQ29udGV4dChsYXlvdXRC
b3gpOwotICAgICAgICAgICAgICAgIGZvcm1hdHRpbmdDb250ZXh0LT5sYXlvdXQobGF5b3V0Q29u
dGV4dCwgbGF5b3V0Q29udGV4dC5lc3RhYmxpc2hlZEZvcm1hdHRpbmdTdGF0ZShsYXlvdXRCb3gs
ICpmb3JtYXR0aW5nQ29udGV4dCkpOworICAgICAgICAgICAgICAgIGxheW91dEZvcm1hdHRpbmdD
b250ZXh0Um9vdChsYXlvdXRDb250ZXh0LCBmb3JtYXR0aW5nU3RhdGUsIGxheW91dEJveCwgZGlz
cGxheUJveCk7CisgICAgICAgICAgICAgICAgbGF5b3V0UXVldWUucmVtb3ZlTGFzdCgpOwogICAg
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKCFpczxD
b250YWluZXI+KGxheW91dEJveCkgfHwgIWRvd25jYXN0PENvbnRhaW5lcj4obGF5b3V0Qm94KS5o
YXNJbkZsb3dPckZsb2F0aW5nQ2hpbGQoKSkKKyAgICAgICAgICAgIAorICAgICAgICAgICAgTE9H
X1dJVEhfU1RSRUFNKEZvcm1hdHRpbmdDb250ZXh0TGF5b3V0LCBzdHJlYW0gPDwgIltDb21wdXRl
XSAtPiBbUG9zaXRpb25dW0JvcmRlcl1bUGFkZGluZ11bV2lkdGhdW01hcmdpbl0gLT4gZm9yIGxh
eW91dEJveCgiIDw8ICZsYXlvdXRCb3ggPDwgIikiKTsKKyAgICAgICAgICAgIGNvbXB1dGVTdGF0
aWNQb3NpdGlvbihsYXlvdXRDb250ZXh0LCBsYXlvdXRCb3gsIGRpc3BsYXlCb3gpOworICAgICAg
ICAgICAgY29tcHV0ZUJvcmRlckFuZFBhZGRpbmcobGF5b3V0Q29udGV4dCwgbGF5b3V0Qm94LCBk
aXNwbGF5Qm94KTsKKyAgICAgICAgICAgIGNvbXB1dGVIb3Jpem9udGFsR2VvbWV0cnkobGF5b3V0
Q29udGV4dCwgbGF5b3V0Qm94LCBkaXNwbGF5Qm94KTsKKyAgICAgICAgICAgIGlmICghaXM8Q29u
dGFpbmVyPihsYXlvdXRCb3gpIHx8ICFkb3duY2FzdDxDb250YWluZXI+KGxheW91dEJveCkuZmly
c3RDaGlsZCgpKQogICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgYXV0byYgZmly
c3RDaGlsZCA9ICpkb3duY2FzdDxDb250YWluZXI+KGxheW91dEJveCkuZmlyc3RJbkZsb3dPckZs
b2F0aW5nQ2hpbGQoKTsKKyAgICAgICAgICAgIGF1dG8mIGZpcnN0Q2hpbGQgPSAqZG93bmNhc3Q8
Q29udGFpbmVyPihsYXlvdXRCb3gpLmZpcnN0Q2hpbGQoKTsKICAgICAgICAgICAgIGxheW91dFF1
ZXVlLmFwcGVuZChzdGQ6Om1ha2VfdW5pcXVlPExheW91dFBhaXI+KExheW91dFBhaXIge2ZpcnN0
Q2hpbGQsIGxheW91dENvbnRleHQuY3JlYXRlRGlzcGxheUJveChmaXJzdENoaWxkKX0pKTsKICAg
ICAgICAgfQogCkBAIC05OSw5ICsxMDAsMTIgQEAgdm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0
OjpsYXlvdXQoTGF5b3V0Q29udGV4dCYgbGF5b3V0Q29udGV4dCwgRm9ybWF0dGluZ1N0YXQKICAg
ICAgICAgICAgIGF1dG8gbGF5b3V0UGFpciA9IGxheW91dFF1ZXVlLnRha2VMYXN0KCk7CiAgICAg
ICAgICAgICBhdXRvJiBsYXlvdXRCb3ggPSBsYXlvdXRQYWlyLT5sYXlvdXRCb3g7CiAgICAgICAg
ICAgICBhdXRvJiBkaXNwbGF5Qm94ID0gbGF5b3V0UGFpci0+ZGlzcGxheUJveDsKLSAgICAgICAg
ICAgIExPR19XSVRIX1NUUkVBTShGb3JtYXR0aW5nQ29udGV4dExheW91dCwgc3RyZWFtIDw8ICJb
Q29tcHV0ZV0gLT4gW0hlaWdodF1bTWFyZ2luXSAtPiBmb3IgbGF5b3V0Qm94KCIgPDwgJmxheW91
dEJveCA8PCAiKSIpOwogCi0gICAgICAgICAgICBjb21wdXRlSGVpZ2h0QW5kTWFyZ2luKGxheW91
dENvbnRleHQsIGxheW91dEJveCwgZGlzcGxheUJveCk7CisgICAgICAgICAgICAvLyBGb3JtYXR0
aW5nIHJvb3QgYm94ZXMgYXJlIHNwZWNpYWwtY2FzZWQgYW5kIHRoZXkgZG9uJ3QgY29tZSBoZXJl
LiAgCisgICAgICAgICAgICBBU1NFUlQoIWxheW91dEJveC5lc3RhYmxpc2hlc0Zvcm1hdHRpbmdD
b250ZXh0KCkpOworCisgICAgICAgICAgICBMT0dfV0lUSF9TVFJFQU0oRm9ybWF0dGluZ0NvbnRl
eHRMYXlvdXQsIHN0cmVhbSA8PCAiW0NvbXB1dGVdIC0+IFtIZWlnaHRdW01hcmdpbl0gLT4gZm9y
IGxheW91dEJveCgiIDw8ICZsYXlvdXRCb3ggPDwgIikiKTsKKyAgICAgICAgICAgIGNvbXB1dGVW
ZXJ0aWNhbEdlb21ldHJ5KGxheW91dENvbnRleHQsIGxheW91dEJveCwgZGlzcGxheUJveCk7CiAg
ICAgICAgICAgICAvLyBBZGp1c3QgcG9zaXRpb24gbm93IHRoYXQgd2UgaGF2ZSBhbGwgdGhlIHBy
ZXZpb3VzIGZsb2F0cyBwbGFjZWQgaW4gdGhpcyBjb250ZXh0IC1pZiBuZWVkZWQuCiAgICAgICAg
ICAgICBmbG9hdGluZ0NvbnRleHQuY29tcHV0ZVBvc2l0aW9uKGxheW91dEJveCwgZGlzcGxheUJv
eCk7CiAgICAgICAgICAgICBpZiAoIWlzPENvbnRhaW5lcj4obGF5b3V0Qm94KSkKQEAgLTEwOSw3
ICsxMTMsNyBAQCB2b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmxheW91dChMYXlvdXRDb250
ZXh0JiBsYXlvdXRDb250ZXh0LCBGb3JtYXR0aW5nU3RhdAogICAgICAgICAgICAgYXV0byYgY29u
dGFpbmVyID0gZG93bmNhc3Q8Q29udGFpbmVyPihsYXlvdXRCb3gpOwogICAgICAgICAgICAgLy8g
TW92ZSBpbi1mbG93IHBvc2l0aW9uZWQgY2hpbGRyZW4gdG8gdGhlaXIgZmluYWwgcG9zaXRpb24u
CiAgICAgICAgICAgICBwbGFjZUluRmxvd1Bvc2l0aW9uZWRDaGlsZHJlbihsYXlvdXRDb250ZXh0
LCBjb250YWluZXIpOwotICAgICAgICAgICAgaWYgKGF1dG8qIG5leHRTaWJsaW5nID0gY29udGFp
bmVyLm5leHRJbkZsb3dPckZsb2F0aW5nU2libGluZygpKSB7CisgICAgICAgICAgICBpZiAoYXV0
byogbmV4dFNpYmxpbmcgPSBjb250YWluZXIubmV4dFNpYmxpbmcoKSkgewogICAgICAgICAgICAg
ICAgIGxheW91dFF1ZXVlLmFwcGVuZChzdGQ6Om1ha2VfdW5pcXVlPExheW91dFBhaXI+KExheW91
dFBhaXIgeypuZXh0U2libGluZywgbGF5b3V0Q29udGV4dC5jcmVhdGVEaXNwbGF5Qm94KCpuZXh0
U2libGluZyl9KSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CkBAIC0x
MTcsMTQgKzEyMSwzMyBAQCB2b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmxheW91dChMYXlv
dXRDb250ZXh0JiBsYXlvdXRDb250ZXh0LCBGb3JtYXR0aW5nU3RhdAogICAgIH0KICAgICAvLyBQ
bGFjZSB0aGUgaW5mbG93IHBvc2l0aW9uZWQgY2hpbGRyZW4uCiAgICAgcGxhY2VJbkZsb3dQb3Np
dGlvbmVkQ2hpbGRyZW4obGF5b3V0Q29udGV4dCwgZm9ybWF0dGluZ1Jvb3QpOwotICAgIC8vIEFu
ZCB0YWtlIGNhcmUgb2Ygb3V0LW9mLWZsb3cgYm94ZXMgYXMgdGhlIGZpbmFsIHN0ZXAuCi0gICAg
bGF5b3V0T3V0T2ZGbG93RGVzY2VuZGFudHMobGF5b3V0Q29udGV4dCk7Ci0jaWZuZGVmIE5ERUJV
RwotICAgIHZhbGlkYXRlR2VvbWV0cnlDb25zdHJhaW50c0FmdGVyTGF5b3V0KGxheW91dENvbnRl
eHQpOwotI2VuZGlmCiAgICAgTE9HX1dJVEhfU1RSRUFNKEZvcm1hdHRpbmdDb250ZXh0TGF5b3V0
LCBzdHJlYW0gPDwgIltFbmRdIC0+IGJsb2NrIGZvcm1hdHRpbmcgY29udGV4dCAtPiBsYXlvdXQg
Y29udGV4dCgiIDw8ICZsYXlvdXRDb250ZXh0IDw8ICIpIGZvcm1hdHRpbmcgcm9vdCgiIDw8ICZy
b290KCkgPDwgIikiKTsKIH0KIAordm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpsYXlvdXRG
b3JtYXR0aW5nQ29udGV4dFJvb3QoTGF5b3V0Q29udGV4dCYgbGF5b3V0Q29udGV4dCwgRm9ybWF0
dGluZ1N0YXRlJiBmb3JtYXR0aW5nU3RhdGUsIGNvbnN0IEJveCYgbGF5b3V0Qm94LCBEaXNwbGF5
OjpCb3gmIGRpc3BsYXlCb3gpIGNvbnN0Cit7CisgICAgLy8gU3RhcnQgbGF5aW5nIG91dCB0aGlz
IGZvcm1hdHRpbmcgcm9vdCBpbiB0aGUgZm9ybWF0dGluZyBjb250ZW54dCBpdCBsaXZlcyBpbi4K
KyAgICBMT0dfV0lUSF9TVFJFQU0oRm9ybWF0dGluZ0NvbnRleHRMYXlvdXQsIHN0cmVhbSA8PCAi
W0NvbXB1dGVdIC0+IFtQb3NpdGlvbl1bQm9yZGVyXVtQYWRkaW5nXVtXaWR0aF1bTWFyZ2luXSAt
PiBmb3IgbGF5b3V0Qm94KCIgPDwgJmxheW91dEJveCA8PCAiKSIpOworICAgIGNvbXB1dGVTdGF0
aWNQb3NpdGlvbihsYXlvdXRDb250ZXh0LCBsYXlvdXRCb3gsIGRpc3BsYXlCb3gpOworICAgIGNv
bXB1dGVCb3JkZXJBbmRQYWRkaW5nKGxheW91dENvbnRleHQsIGxheW91dEJveCwgZGlzcGxheUJv
eCk7CisgICAgY29tcHV0ZUhvcml6b250YWxHZW9tZXRyeShsYXlvdXRDb250ZXh0LCBsYXlvdXRC
b3gsIGRpc3BsYXlCb3gpOworCisgICAgLy8gU3dpY2ggb3ZlciB0byB0aGUgbmV3IGZvcm1hdHRp
bmcgY29udGV4dCAodGhlIG9uZSB0aGF0IHRoZSByb290IGNyZWF0ZXMpLgorICAgIGF1dG8gZm9y
bWF0dGluZ0NvbnRleHQgPSBsYXlvdXRDb250ZXh0LmZvcm1hdHRpbmdDb250ZXh0KGxheW91dEJv
eCk7CisgICAgYXV0byYgZXN0YWJsaXNoZWRGb3JtYXR0aW5nU3RhdGUgPSBsYXlvdXRDb250ZXh0
LmVzdGFibGlzaGVkRm9ybWF0dGluZ1N0YXRlKGxheW91dEJveCwgKmZvcm1hdHRpbmdDb250ZXh0
KTsKKyAgICBmb3JtYXR0aW5nQ29udGV4dC0+bGF5b3V0KGxheW91dENvbnRleHQsIGVzdGFibGlz
aGVkRm9ybWF0dGluZ1N0YXRlKTsKKworICAgIC8vIENvbWUgYmFjayBhbmQgZmluYWxpemUgdGhl
IHJvb3QncyBnZW9tZXRyeS4KKyAgICBGbG9hdGluZ0NvbnRleHQoZm9ybWF0dGluZ1N0YXRlLmZs
b2F0aW5nU3RhdGUoKSkuY29tcHV0ZVBvc2l0aW9uKGxheW91dEJveCwgZGlzcGxheUJveCk7Cisg
ICAgTE9HX1dJVEhfU1RSRUFNKEZvcm1hdHRpbmdDb250ZXh0TGF5b3V0LCBzdHJlYW0gPDwgIltD
b21wdXRlXSAtPiBbSGVpZ2h0XVtNYXJnaW5dIC0+IGZvciBsYXlvdXRCb3goIiA8PCAmbGF5b3V0
Qm94IDw8ICIpIik7CisgICAgLy8gVGhlIG91dC1vZi1mbG93IGVsZW1lbnQncyB2ZXJ0aWNhbCBn
ZW9tZXRyeSBpcyBjb21wdXRlZCBsYXR0ZXIgYXMgdGhlIGxhc3Qgc3RlcCB3aGlsZSBmaW5pc2hp
bmcgaXRzIGZvcm1hdHRpbmcgcm9vdCdzIGxheW91dC4KKyAgICBpZiAoIWxheW91dEJveC5pc091
dE9mRmxvd1Bvc2l0aW9uZWQoKSkgeworICAgICAgICBjb21wdXRlVmVydGljYWxHZW9tZXRyeShs
YXlvdXRDb250ZXh0LCBsYXlvdXRCb3gsIGRpc3BsYXlCb3gpOworICAgICAgICAvLyBBbmQgc29v
biBhZnRlciB0aGUgcm9vdCdzIGhlaWdodCBpcyBjb21wdXRlZCwgd2UgY2FuIGdvIGFoZWFkIGFu
ZCBzaXplIHRoZSBvdXQtb2YtZmxvdyBkZXNjZW5kYW50cy4KKyAgICAgICAgZm9ybWF0dGluZ0Nv
bnRleHQtPmNvbXB1dGVWZXJ0aWNhbEdlb21ldHJ5Rm9yT3V0T2ZGbG93RGVzY2VuZGFudHMobGF5
b3V0Q29udGV4dCwgZXN0YWJsaXNoZWRGb3JtYXR0aW5nU3RhdGUpOworICAgIH0KK30KKwogc3Rk
Ojp1bmlxdWVfcHRyPEZvcm1hdHRpbmdTdGF0ZT4gQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Y3Jl
YXRlRm9ybWF0dGluZ1N0YXRlKFJlZjxGbG9hdGluZ1N0YXRlPiYmIGZsb2F0aW5nU3RhdGUpIGNv
bnN0CiB7CiAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8QmxvY2tGb3JtYXR0aW5nU3RhdGU+
KFdURk1vdmUoZmxvYXRpbmdTdGF0ZSkpOwpAQCAtMTQ2LDcgKzE2OSw3IEBAIHZvaWQgQmxvY2tG
b3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZUluRmxvd1Bvc2l0aW9uZWRQb3NpdGlvbihMYXlvdXRD
b250ZXh0JiBsYXlvCiAgICAgZGlzcGxheUJveC5zZXRUb3BMZWZ0KEdlb21ldHJ5OjppbkZsb3dQ
b3NpdGlvbmVkUG9zaXRpb24obGF5b3V0Q29udGV4dCwgbGF5b3V0Qm94KSk7CiB9CiAKLXZvaWQg
QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZVdpZHRoQW5kTWFyZ2luKExheW91dENvbnRl
eHQmIGxheW91dENvbnRleHQsIGNvbnN0IEJveCYgbGF5b3V0Qm94LCBEaXNwbGF5OjpCb3gmIGRp
c3BsYXlCb3gpIGNvbnN0Cit2b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVIb3Jp
em9udGFsR2VvbWV0cnkoTGF5b3V0Q29udGV4dCYgbGF5b3V0Q29udGV4dCwgY29uc3QgQm94JiBs
YXlvdXRCb3gsIERpc3BsYXk6OkJveCYgZGlzcGxheUJveCkgY29uc3QKIHsKICAgICBpZiAobGF5
b3V0Qm94LmlzSW5GbG93KCkpCiAgICAgICAgIHJldHVybiBjb21wdXRlSW5GbG93V2lkdGhBbmRN
YXJnaW4obGF5b3V0Q29udGV4dCwgbGF5b3V0Qm94LCBkaXNwbGF5Qm94KTsKQEAgLTE1NCwxMCAr
MTc3LDEzIEBAIHZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZVdpZHRoQW5kTWFy
Z2luKExheW91dENvbnRleHQmIGxheW91dENvbnRleHQsCiAgICAgaWYgKGxheW91dEJveC5pc0Zs
b2F0aW5nUG9zaXRpb25lZCgpKQogICAgICAgICByZXR1cm4gY29tcHV0ZUZsb2F0aW5nV2lkdGhB
bmRNYXJnaW4obGF5b3V0Q29udGV4dCwgbGF5b3V0Qm94LCBkaXNwbGF5Qm94KTsKIAorICAgIGlm
IChsYXlvdXRCb3guaXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkpCisgICAgICAgIHJldHVybiBjb21w
dXRlT3V0T2ZGbG93SG9yaXpvbnRhbEdlb21ldHJ5KGxheW91dENvbnRleHQsIGxheW91dEJveCwg
ZGlzcGxheUJveCk7CisKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAotdm9pZCBCbG9j
a0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlSGVpZ2h0QW5kTWFyZ2luKExheW91dENvbnRleHQm
IGxheW91dENvbnRleHQsIGNvbnN0IEJveCYgbGF5b3V0Qm94LCBEaXNwbGF5OjpCb3gmIGRpc3Bs
YXlCb3gpIGNvbnN0Cit2b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVWZXJ0aWNh
bEdlb21ldHJ5KExheW91dENvbnRleHQmIGxheW91dENvbnRleHQsIGNvbnN0IEJveCYgbGF5b3V0
Qm94LCBEaXNwbGF5OjpCb3gmIGRpc3BsYXlCb3gpIGNvbnN0CiB7CiAgICAgaWYgKGxheW91dEJv
eC5pc0luRmxvdygpKQogICAgICAgICByZXR1cm4gY29tcHV0ZUluRmxvd0hlaWdodEFuZE1hcmdp
bihsYXlvdXRDb250ZXh0LCBsYXlvdXRCb3gsIGRpc3BsYXlCb3gpOwpAQCAtMTY1LDYgKzE5MSw5
IEBAIHZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZUhlaWdodEFuZE1hcmdpbihM
YXlvdXRDb250ZXh0JiBsYXlvdXRDb250ZXh0CiAgICAgaWYgKGxheW91dEJveC5pc0Zsb2F0aW5n
UG9zaXRpb25lZCgpKQogICAgICAgICByZXR1cm4gY29tcHV0ZUZsb2F0aW5nSGVpZ2h0QW5kTWFy
Z2luKGxheW91dENvbnRleHQsIGxheW91dEJveCwgZGlzcGxheUJveCk7CiAKKyAgICBpZiAobGF5
b3V0Qm94LmlzT3V0T2ZGbG93UG9zaXRpb25lZCgpKQorICAgICAgICByZXR1cm4gY29tcHV0ZU91
dE9mRmxvd1ZlcnRpY2FsR2VvbWV0cnkobGF5b3V0Q29udGV4dCwgbGF5b3V0Qm94LCBkaXNwbGF5
Qm94KTsKKwogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQu
aCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5n
Q29udGV4dC5oCmluZGV4IDMxMWIyMjkwOGM3YTlkMzAzYmRiMzBkY2ZjNDk1OTRkNTZlOTgzNjgu
LjU1MzkyODMxOGE4MTFiN2Q0MTgxODA2MmY3NTY0MjQ5M2ZiOTdlZTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3Jt
YXR0aW5nQ29udGV4dC5oCkBAIC01MSw4ICs1MSwxMCBAQCBwdWJsaWM6CiAgICAgUmVmPEZsb2F0
aW5nU3RhdGU+IGNyZWF0ZU9yRmluZEZsb2F0aW5nU3RhdGUoTGF5b3V0Q29udGV4dCYpIGNvbnN0
IG92ZXJyaWRlOwogCiBwcml2YXRlOgotICAgIHZvaWQgY29tcHV0ZVdpZHRoQW5kTWFyZ2luKExh
eW91dENvbnRleHQmLCBjb25zdCBCb3gmLCBEaXNwbGF5OjpCb3gmKSBjb25zdDsKLSAgICB2b2lk
IGNvbXB1dGVIZWlnaHRBbmRNYXJnaW4oTGF5b3V0Q29udGV4dCYsIGNvbnN0IEJveCYsIERpc3Bs
YXk6OkJveCYpIGNvbnN0OworICAgIHZvaWQgbGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRSb290KExh
eW91dENvbnRleHQmLCBGb3JtYXR0aW5nU3RhdGUmLCBjb25zdCBCb3gmLCBEaXNwbGF5OjpCb3gm
KSBjb25zdDsKKworICAgIHZvaWQgY29tcHV0ZUhvcml6b250YWxHZW9tZXRyeShMYXlvdXRDb250
ZXh0JiwgY29uc3QgQm94JiwgRGlzcGxheTo6Qm94JikgY29uc3Q7CisgICAgdm9pZCBjb21wdXRl
VmVydGljYWxHZW9tZXRyeShMYXlvdXRDb250ZXh0JiwgY29uc3QgQm94JiwgRGlzcGxheTo6Qm94
JikgY29uc3Q7CiAKICAgICB2b2lkIGNvbXB1dGVTdGF0aWNQb3NpdGlvbihMYXlvdXRDb250ZXh0
JiwgY29uc3QgQm94JiwgRGlzcGxheTo6Qm94JikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCBj
b21wdXRlSW5GbG93UG9zaXRpb25lZFBvc2l0aW9uKExheW91dENvbnRleHQmLCBjb25zdCBCb3gm
LCBEaXNwbGF5OjpCb3gmKSBjb25zdCBvdmVycmlkZTsKQEAgLTcyLDcgKzc0LDYgQEAgcHJpdmF0
ZToKICAgICAgICAgc3RhdGljIEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6SGVpZ2h0QW5k
TWFyZ2luIGluRmxvd05vblJlcGxhY2VkSGVpZ2h0QW5kTWFyZ2luKExheW91dENvbnRleHQmLCBj
b25zdCBCb3gmKTsKICAgICAgICAgc3RhdGljIEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6
V2lkdGhBbmRNYXJnaW4gaW5GbG93Tm9uUmVwbGFjZWRXaWR0aEFuZE1hcmdpbihMYXlvdXRDb250
ZXh0JiwgY29uc3QgQm94Jiwgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBwcmVjb21wdXRlZFdp
ZHRoID0gc3RkOjpudWxsb3B0KTsKICAgICAgICAgc3RhdGljIEZvcm1hdHRpbmdDb250ZXh0OjpH
ZW9tZXRyeTo6V2lkdGhBbmRNYXJnaW4gaW5GbG93UmVwbGFjZWRXaWR0aEFuZE1hcmdpbihMYXlv
dXRDb250ZXh0JiwgY29uc3QgQm94Jik7Ci0gICAgICAgIHN0YXRpYyBGb3JtYXR0aW5nQ29udGV4
dDo6R2VvbWV0cnk6OlBvc2l0aW9uIHN0YXRpY1Bvc2l0aW9uRm9yT3V0T2ZGbG93UG9zaXRpb25l
ZChjb25zdCBMYXlvdXRDb250ZXh0JiwgY29uc3QgQm94Jik7CiAgICAgfTsKICAgICAKICAgICAv
LyBUaGlzIGNsYXNzIGltcGxlbWVudHMgbWFyZ2luIGNvbGxhcHNpbmcgZm9yIGJsb2NrIGZvcm1h
dHRpbmcgY29udGV4dC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zv
cm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5
LmNwcAppbmRleCBiYTY1YjdlZGI0ZGRjMDE2MmU1NzU3NzkwY2NmNDUzZWVmNTI3ZWI4Li5kZTVl
Yjg5OTVhMDc3YjZkNmU5YmJiY2U4ZDdlYTgwMjU1NmU3Mjc2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHRHZW9t
ZXRyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9j
a0Zvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnkuY3BwCkBAIC0yNjUsMzEgKzI2NSw2IEBAIEZvcm1h
dHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6V2lkdGhBbmRNYXJnaW4gQmxvY2tGb3JtYXR0aW5nQ29u
dGV4dDo6R2VvbWV0cnk6OmluCiAgICAgcmV0dXJuIHsgd2lkdGgsIG1hcmdpbiB9OwogfQogCi1G
b3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OlBvc2l0aW9uIEJsb2NrRm9ybWF0dGluZ0NvbnRl
eHQ6Okdlb21ldHJ5OjpzdGF0aWNQb3NpdGlvbkZvck91dE9mRmxvd1Bvc2l0aW9uZWQoY29uc3Qg
TGF5b3V0Q29udGV4dCYgbGF5b3V0Q29udGV4dCwgY29uc3QgQm94JiBsYXlvdXRCb3gpCi17Ci0g
ICAgLy8gRklYTUU6IFRoaXMgaXMgY2VydGFpbmx5IG9ubHkgcmVhbGx5IG5lZWRlZCB3aGVuIHRv
cC9ib3R0b20gbGVmdC9yaWdodCBhcmUgYXV0by4KLSAgICBBU1NFUlQobGF5b3V0Qm94LmlzT3V0
T2ZGbG93UG9zaXRpb25lZCgpKTsKLSAgICBMYXlvdXRVbml0IHRvcDsKLSAgICBMYXlvdXRVbml0
IGxlZnQ7Ci0gICAgLy8gUmVzb2x2ZSB0b3AvbGVmdCBhbGwgdGhlIHdheSB1cCB0byB0aGUgY29u
dGFpbmluZyBibG9jay4KLSAgICBhdXRvKiBjb250YWluaW5nQmxvY2sgPSBsYXlvdXRCb3guY29u
dGFpbmluZ0Jsb2NrKCk7Ci0gICAgZm9yIChhdXRvKiBwYXJlbnQgPSBsYXlvdXRCb3gucGFyZW50
KCk7IHBhcmVudDsgcGFyZW50ID0gcGFyZW50LT5wYXJlbnQoKSkgewotICAgICAgICBhdXRvJiBk
aXNwbGF5Qm94ID0gKmxheW91dENvbnRleHQuZGlzcGxheUJveEZvckxheW91dEJveCgqcGFyZW50
KTsKLSAgICAgICAgdG9wICs9IChkaXNwbGF5Qm94LnRvcCgpICsgZGlzcGxheUJveC5jb250ZW50
Qm94VG9wKCkpOwotICAgICAgICBsZWZ0ICs9IChkaXNwbGF5Qm94LmxlZnQoKSArIGRpc3BsYXlC
b3guY29udGVudEJveExlZnQoKSk7Ci0gICAgICAgIGlmIChwYXJlbnQgPT0gY29udGFpbmluZ0Js
b2NrKQotICAgICAgICAgICAgYnJlYWs7Ci0gICAgfQotICAgIC8vIEFkZCBzaWJsaW5nIG9mZnNl
dAotICAgIGlmIChhdXRvKiBwcmV2aW91c0luRmxvd1NpYmxpbmcgPSBsYXlvdXRCb3gucHJldmlv
dXNJbkZsb3dTaWJsaW5nKCkpIHsKLSAgICAgICAgYXV0byYgcHJldmlvdXNJbkZsb3dEaXNwbGF5
Qm94ID0gKmxheW91dENvbnRleHQuZGlzcGxheUJveEZvckxheW91dEJveCgqcHJldmlvdXNJbkZs
b3dTaWJsaW5nKTsKLSAgICAgICAgdG9wICs9IHByZXZpb3VzSW5GbG93RGlzcGxheUJveC5ib3R0
b20oKSArIHByZXZpb3VzSW5GbG93RGlzcGxheUJveC5tYXJnaW5Cb3R0b20oKTsKLSAgICB9Ci0K
LSAgICBMT0dfV0lUSF9TVFJFQU0oRm9ybWF0dGluZ0NvbnRleHRMYXlvdXQsIHN0cmVhbSA8PCAi
W1Bvc2l0aW9uXSAtPiBvdXQtb2YtZmxvdyAtPiBzdGF0aWMgLT4gdG9wKCIgPDwgdG9wIDw8ICJw
eCkgbGVmdCgiIDw8IGxlZnQgPDwgInB4KSBsYXlvdXRCb3goIiA8PCAmbGF5b3V0Qm94IDw8ICIp
Iik7Ci0gICAgcmV0dXJuIHsgbGVmdCwgdG9wIH07Ci19Ci0KIEZvcm1hdHRpbmdDb250ZXh0OjpH
ZW9tZXRyeTo6UG9zaXRpb24gQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OnN0YXRp
Y1Bvc2l0aW9uKExheW91dENvbnRleHQmIGxheW91dENvbnRleHQsIGNvbnN0IEJveCYgbGF5b3V0
Qm94KQogewogICAgIC8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9DU1MyMi92aXN1cmVuLmh0bWwj
YmxvY2stZm9ybWF0dGluZwpAQCAtMjk3LDEwICsyNzIsNiBAQCBGb3JtYXR0aW5nQ29udGV4dDo6
R2VvbWV0cnk6OlBvc2l0aW9uIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpzdGF0
aWNQbwogICAgIC8vIFRoZSB2ZXJ0aWNhbCBkaXN0YW5jZSBiZXR3ZWVuIHR3byBzaWJsaW5nIGJv
eGVzIGlzIGRldGVybWluZWQgYnkgdGhlICdtYXJnaW4nIHByb3BlcnRpZXMuCiAgICAgLy8gVmVy
dGljYWwgbWFyZ2lucyBiZXR3ZWVuIGFkamFjZW50IGJsb2NrLWxldmVsIGJveGVzIGluIGEgYmxv
Y2sgZm9ybWF0dGluZyBjb250ZXh0IGNvbGxhcHNlLgogICAgIC8vIEluIGEgYmxvY2sgZm9ybWF0
dGluZyBjb250ZXh0LCBlYWNoIGJveCdzIGxlZnQgb3V0ZXIgZWRnZSB0b3VjaGVzIHRoZSBsZWZ0
IGVkZ2Ugb2YgdGhlIGNvbnRhaW5pbmcgYmxvY2sgKGZvciByaWdodC10by1sZWZ0IGZvcm1hdHRp
bmcsIHJpZ2h0IGVkZ2VzIHRvdWNoKS4KLQotICAgIGlmIChsYXlvdXRCb3guaXNPdXRPZkZsb3dQ
b3NpdGlvbmVkKCkpCi0gICAgICAgIHJldHVybiBzdGF0aWNQb3NpdGlvbkZvck91dE9mRmxvd1Bv
c2l0aW9uZWQobGF5b3V0Q29udGV4dCwgbGF5b3V0Qm94KTsKLQogICAgIExheW91dFVuaXQgdG9w
OwogICAgIGF1dG8mIGNvbnRhaW5pbmdCbG9ja0Rpc3BsYXlCb3ggPSAqbGF5b3V0Q29udGV4dC5k
aXNwbGF5Qm94Rm9yTGF5b3V0Qm94KCpsYXlvdXRCb3guY29udGFpbmluZ0Jsb2NrKCkpOwogICAg
IGlmIChhdXRvKiBwcmV2aW91c0luRmxvd1NpYmxpbmcgPSBsYXlvdXRCb3gucHJldmlvdXNJbkZs
b3dTaWJsaW5nKCkpIHsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>343725</attachid>
            <date>2018-06-27 10:41:53 -0700</date>
            <delta_ts>2018-06-27 11:47:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-187082-20180627104152.patch</filename>
            <type>text/plain</type>
            <size>9849</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMzMjYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmJlODQxOWNhY2U3NzM5
ZjYwMjBiODgyZjdhZThmNGQ2ZjdjYmY1ZC4uY2I4YzlhYmE4MWRjZjkxZGY5OTE3NTdlYTVkYTZk
YTgxNTMxMGExYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE4LTA2LTI3ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ10gT3V0LW9mLWZsb3cg
cG9zaXRpb25lZCBlbGVtZW50J3MgaGVpZ2h0IGRlcGVuZHMgb24gaXRzIGNvbnRhaW5pbmcgYmxv
Y2sncyBoZWlnaHQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xODcwODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBXZSBjYW4ndCByZWFsbHkgY29tcHV0ZSB0aGUgZmluYWwgaGVpZ2h0IG9mIGFuIG91dC1v
Zi1mbG93IGVsZW1lbnQgdW50aWwgYWZ0ZXIgaXRzIGNvbnRhaW5pbmcgYmxvY2sncyBoZWlnaHQg
aXMgY29tcHV0ZWQuCisKKyAgICAgICAgKiBsYXlvdXQvRm9ybWF0dGluZ0NvbnRleHQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGb3JtYXR0aW5nQ29udGV4dDo6bGF5b3V0T3V0T2ZG
bG93RGVzY2VuZGFudHMgY29uc3QpOgorICAgICAgICAqIGxheW91dC9Gb3JtYXR0aW5nQ29udGV4
dC5oOgorICAgICAgICAqIGxheW91dC9MYXlvdXRDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkxheW91dDo6TGF5b3V0Q29udGV4dDo6dXBkYXRlTGF5b3V0KToKKyAgICAgICAgKFdlYkNv
cmU6OkxheW91dDo6TGF5b3V0Q29udGV4dDo6bGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRTdWJ0cmVl
KToKKyAgICAgICAgKiBsYXlvdXQvTGF5b3V0Q29udGV4dC5oOgorICAgICAgICAqIGxheW91dC9i
bG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmxheW91dCBjb25zdCk6CisgICAg
ICAgICogbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Q29udGFpbmVyLmg6CisgICAgICAgIChXZWJD
b3JlOjpMYXlvdXQ6OkNvbnRhaW5lcjo6b3V0T2ZGbG93RGVzY2VuZGFudHMgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6TGF5b3V0OjpDb250YWluZXI6Om91dE9mRmxvd0Rlc2NlbmRhbnRzKTog
RGVsZXRlZC4KKwogMjAxOC0wNi0yNyAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgog
CiAgICAgICAgIFtMRkNdIE1vdmUgZm9ybWF0dGluZyBjb250ZXh0IHJvb3QgbGF5b3V0IGxvZ2lj
IHRvIGEgZGVkaWNhdGVkIGZ1bmN0aW9uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L0Zvcm1hdHRpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0
aW5nQ29udGV4dC5jcHAKaW5kZXggMWFjYjFhMWQ4OTEwZjY1ZDlmMDEwMDUwMWUxZjMzZjFhZmM5
YTY1YS4uN2M1OGI2NjkyMTliMjEyM2U1ODJjNmJhZWViMDBmNjc5ZDJhNzQ3ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHQuY3BwCkBAIC0xMDUsMTQgKzEwNSwy
MiBAQCB2b2lkIEZvcm1hdHRpbmdDb250ZXh0OjpwbGFjZUluRmxvd1Bvc2l0aW9uZWRDaGlsZHJl
bihMYXlvdXRDb250ZXh0JiBsYXlvdXRDb250ZQogICAgIExPR19XSVRIX1NUUkVBTShGb3JtYXR0
aW5nQ29udGV4dExheW91dCwgc3RyZWFtIDw8ICJFbmQ6IG1vdmUgaW4tZmxvdyBwb3NpdGlvbmVk
IGNoaWxkcmVuIC0+IGNvbnRleHQ6ICIgPDwgJmxheW91dENvbnRleHQgPDwgIiBwYXJlbnQ6ICIg
PDwgJmNvbnRhaW5lcik7CiB9CiAKLXZvaWQgRm9ybWF0dGluZ0NvbnRleHQ6OmxheW91dE91dE9m
Rmxvd0Rlc2NlbmRhbnRzKExheW91dENvbnRleHQmIGxheW91dENvbnRleHQpIGNvbnN0Cit2b2lk
IEZvcm1hdHRpbmdDb250ZXh0OjpsYXlvdXRPdXRPZkZsb3dEZXNjZW5kYW50cyhMYXlvdXRDb250
ZXh0JiBsYXlvdXRDb250ZXh0LCBjb25zdCBCb3gmIGxheW91dEJveCkgY29uc3QKIHsKLSAgICBp
ZiAoIWlzPENvbnRhaW5lcj4obV9yb290LmdldCgpKSkKKyAgICAvLyBJbml0aWFsIGNvbnRhaW5p
bmcgYmxvY2sgYnkgZGVmaW5pdGlvbiBpcyBhIGNvbnRhaW5pbmcgYmxvY2suCisgICAgaWYgKCFs
YXlvdXRCb3guaXNQb3NpdGlvbmVkKCkgJiYgIWxheW91dEJveC5pc0luaXRpYWxDb250YWluaW5n
QmxvY2soKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCFpczxDb250YWluZXI+KGxheW91
dEJveCkpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8mIGNvbnRhaW5lciA9IGRvd25jYXN0
PENvbnRhaW5lcj4obGF5b3V0Qm94KTsKKyAgICBpZiAoIWNvbnRhaW5lci5oYXNDaGlsZCgpKQog
ICAgICAgICByZXR1cm47CiAKICAgICBMT0dfV0lUSF9TVFJFQU0oRm9ybWF0dGluZ0NvbnRleHRM
YXlvdXQsIHN0cmVhbSA8PCAiU3RhcnQ6IGxheW91dCBvdXQtb2YtZmxvdyBkZXNjZW5kYW50cyAt
PiBjb250ZXh0OiAiIDw8ICZsYXlvdXRDb250ZXh0IDw8ICIgcm9vdDogIiA8PCAmcm9vdCgpKTsK
IAotICAgIGZvciAoYXV0byYgb3V0T2ZGbG93Qm94IDogZG93bmNhc3Q8Q29udGFpbmVyPigqbV9y
b290KS5vdXRPZkZsb3dEZXNjZW5kYW50cygpKSB7CisgICAgZm9yIChhdXRvJiBvdXRPZkZsb3dC
b3ggOiBjb250YWluZXIub3V0T2ZGbG93RGVzY2VuZGFudHMoKSkgewogICAgICAgICBhdXRvJiBs
YXlvdXRCb3ggPSAqb3V0T2ZGbG93Qm94OwogICAgICAgICBhdXRvJiBkaXNwbGF5Qm94ID0gbGF5
b3V0Q29udGV4dC5jcmVhdGVEaXNwbGF5Qm94KGxheW91dEJveCk7CiAKQEAgLTEyMCw3ICsxMjgs
NiBAQCB2b2lkIEZvcm1hdHRpbmdDb250ZXh0OjpsYXlvdXRPdXRPZkZsb3dEZXNjZW5kYW50cyhM
YXlvdXRDb250ZXh0JiBsYXlvdXRDb250ZXh0KQogICAgICAgICAvLyBNb3JlIHByZWNpc2VseSwg
dGhlIHN0YXRpYyBwb3NpdGlvbiBmb3IgJ3RvcCcgaXMgdGhlIGRpc3RhbmNlIGZyb20gdGhlIHRv
cCBlZGdlIG9mIHRoZSBjb250YWluaW5nIGJsb2NrIHRvIHRoZSB0b3AgbWFyZ2luIGVkZ2UKICAg
ICAgICAgLy8gb2YgYSBoeXBvdGhldGljYWwgYm94IHRoYXQgd291bGQgaGF2ZSBiZWVuIHRoZSBm
aXJzdCBib3ggb2YgdGhlIGVsZW1lbnQgaWYgaXRzIHNwZWNpZmllZCAncG9zaXRpb24nIHZhbHVl
IGhhZCBiZWVuICdzdGF0aWMnIGFuZAogICAgICAgICAvLyBpdHMgc3BlY2lmaWVkICdmbG9hdCcg
aGFkIGJlZW4gJ25vbmUnIGFuZCBpdHMgc3BlY2lmaWVkICdjbGVhcicgaGFkIGJlZW4gJ25vbmUn
LgotICAgICAgICBjb21wdXRlU3RhdGljUG9zaXRpb24obGF5b3V0Q29udGV4dCwgbGF5b3V0Qm94
LCBkaXNwbGF5Qm94KTsKICAgICAgICAgY29tcHV0ZUJvcmRlckFuZFBhZGRpbmcobGF5b3V0Q29u
dGV4dCwgbGF5b3V0Qm94LCBkaXNwbGF5Qm94KTsKICAgICAgICAgY29tcHV0ZU91dE9mRmxvd0hv
cml6b250YWxHZW9tZXRyeShsYXlvdXRDb250ZXh0LCBsYXlvdXRCb3gsIGRpc3BsYXlCb3gpOwog
CkBAIC0xMjksNiArMTM2LDcgQEAgdm9pZCBGb3JtYXR0aW5nQ29udGV4dDo6bGF5b3V0T3V0T2ZG
bG93RGVzY2VuZGFudHMoTGF5b3V0Q29udGV4dCYgbGF5b3V0Q29udGV4dCkKICAgICAgICAgZm9y
bWF0dGluZ0NvbnRleHQtPmxheW91dChsYXlvdXRDb250ZXh0LCBsYXlvdXRDb250ZXh0LmVzdGFi
bGlzaGVkRm9ybWF0dGluZ1N0YXRlKGxheW91dEJveCwgKmZvcm1hdHRpbmdDb250ZXh0KSk7CiAK
ICAgICAgICAgY29tcHV0ZU91dE9mRmxvd1ZlcnRpY2FsR2VvbWV0cnkobGF5b3V0Q29udGV4dCwg
bGF5b3V0Qm94LCBkaXNwbGF5Qm94KTsKKyAgICAgICAgbGF5b3V0T3V0T2ZGbG93RGVzY2VuZGFu
dHMobGF5b3V0Q29udGV4dCwgbGF5b3V0Qm94KTsKICAgICB9CiAgICAgTE9HX1dJVEhfU1RSRUFN
KEZvcm1hdHRpbmdDb250ZXh0TGF5b3V0LCBzdHJlYW0gPDwgIkVuZDogbGF5b3V0IG91dC1vZi1m
bG93IGRlc2NlbmRhbnRzIC0+IGNvbnRleHQ6ICIgPDwgJmxheW91dENvbnRleHQgPDwgIiByb290
OiAiIDw8ICZyb290KCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zv
cm1hdHRpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRl
eHQuaAppbmRleCA1MmJiYTQxNGQ4MmQyNmI4M2U2OWEwMTg5YmQ2NDY3M2ZiM2FmZGUzLi5lYTE3
YzdiYjFiODJlOWMwOWY3YTcyMThmNGRjNGJmNTM5ZmYyNjVjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvRm9ybWF0dGluZ0NvbnRleHQuaApAQCAtNTEsNiArNTEsNyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB+Rm9ybWF0dGluZ0NvbnRleHQoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQo
TGF5b3V0Q29udGV4dCYsIEZvcm1hdHRpbmdTdGF0ZSYpIGNvbnN0ID0gMDsKKyAgICB2b2lkIGxh
eW91dE91dE9mRmxvd0Rlc2NlbmRhbnRzKExheW91dENvbnRleHQmLCBjb25zdCBCb3gmKSBjb25z
dDsKICAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxGb3JtYXR0aW5nU3RhdGU+IGNyZWF0ZUZv
cm1hdHRpbmdTdGF0ZShSZWY8RmxvYXRpbmdTdGF0ZT4mJikgY29uc3QgPSAwOwogICAgIHZpcnR1
YWwgUmVmPEZsb2F0aW5nU3RhdGU+IGNyZWF0ZU9yRmluZEZsb2F0aW5nU3RhdGUoTGF5b3V0Q29u
dGV4dCYpIGNvbnN0ID0gMDsKIApAQCAtNzIsNyArNzMsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9p
ZCBjb21wdXRlQm9yZGVyQW5kUGFkZGluZyhMYXlvdXRDb250ZXh0JiwgY29uc3QgQm94JiwgRGlz
cGxheTo6Qm94JikgY29uc3Q7CiAKICAgICB2b2lkIHBsYWNlSW5GbG93UG9zaXRpb25lZENoaWxk
cmVuKExheW91dENvbnRleHQmLCBjb25zdCBDb250YWluZXImKSBjb25zdDsKLSAgICB2b2lkIGxh
eW91dE91dE9mRmxvd0Rlc2NlbmRhbnRzKExheW91dENvbnRleHQmcykgY29uc3Q7CiAKICNpZm5k
ZWYgTkRFQlVHCiAgICAgdmlydHVhbCB2b2lkIHZhbGlkYXRlR2VvbWV0cnlDb25zdHJhaW50c0Fm
dGVyTGF5b3V0KGNvbnN0IExheW91dENvbnRleHQmKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9MYXlvdXRDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9MYXlvdXRDb250ZXh0LmNwcAppbmRleCA5NzM3OTk4MjQ0Nzc1M2E4ZTAyZjY3MTAyZmI2YWQy
MjczZGQ3ZmU2Li45OTk5NjE3ZGEyZDlkMGY3ZmQ2ODg5NjIyMzc0NWVkY2U1NWQzZDAzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0Q29udGV4dC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dENvbnRleHQuY3BwCkBAIC03MSwxNSArNzEsMjAgQEAg
dm9pZCBMYXlvdXRDb250ZXh0Ojppbml0aWFsaXplUm9vdChjb25zdCBDb250YWluZXImIHJvb3Qs
IGNvbnN0IExheW91dFNpemUmIGNvbnQKIHZvaWQgTGF5b3V0Q29udGV4dDo6dXBkYXRlTGF5b3V0
KCkKIHsKICAgICBBU1NFUlQoIW1fZm9ybWF0dGluZ0NvbnRleHRSb290TGlzdEZvckxheW91dC5p
c0VtcHR5KCkpOwotICAgIGZvciAoYXV0byogbGF5b3V0Um9vdCA6IG1fZm9ybWF0dGluZ0NvbnRl
eHRSb290TGlzdEZvckxheW91dCkgewotICAgICAgICBSRUxFQVNFX0FTU0VSVChsYXlvdXRSb290
LT5lc3RhYmxpc2hlc0Zvcm1hdHRpbmdDb250ZXh0KCkpOwotICAgICAgICBhdXRvIGNvbnRleHQg
PSBmb3JtYXR0aW5nQ29udGV4dCgqbGF5b3V0Um9vdCk7Ci0gICAgICAgIGF1dG8mIHN0YXRlID0g
ZXN0YWJsaXNoZWRGb3JtYXR0aW5nU3RhdGUoKmxheW91dFJvb3QsICpjb250ZXh0KTsKLSAgICAg
ICAgY29udGV4dC0+bGF5b3V0KCp0aGlzLCBzdGF0ZSk7Ci0gICAgfQorICAgIGZvciAoYXV0byog
bGF5b3V0Um9vdCA6IG1fZm9ybWF0dGluZ0NvbnRleHRSb290TGlzdEZvckxheW91dCkKKyAgICAg
ICAgbGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRTdWJ0cmVlKCpsYXlvdXRSb290KTsKICAgICBtX2Zv
cm1hdHRpbmdDb250ZXh0Um9vdExpc3RGb3JMYXlvdXQuY2xlYXIoKTsKIH0KIAordm9pZCBMYXlv
dXRDb250ZXh0OjpsYXlvdXRGb3JtYXR0aW5nQ29udGV4dFN1YnRyZWUoY29uc3QgQm94JiBsYXlv
dXRSb290KQoreworICAgIFJFTEVBU0VfQVNTRVJUKGxheW91dFJvb3QuZXN0YWJsaXNoZXNGb3Jt
YXR0aW5nQ29udGV4dCgpKTsKKyAgICBhdXRvIGZvcm1hdHRpbmdDb250ZXh0ID0gdGhpcy0+Zm9y
bWF0dGluZ0NvbnRleHQobGF5b3V0Um9vdCk7CisgICAgYXV0byYgZm9ybWF0dGluZ1N0YXRlID0g
ZXN0YWJsaXNoZWRGb3JtYXR0aW5nU3RhdGUobGF5b3V0Um9vdCwgKmZvcm1hdHRpbmdDb250ZXh0
KTsKKyAgICBmb3JtYXR0aW5nQ29udGV4dC0+bGF5b3V0KCp0aGlzLCBmb3JtYXR0aW5nU3RhdGUp
OworICAgIGZvcm1hdHRpbmdDb250ZXh0LT5sYXlvdXRPdXRPZkZsb3dEZXNjZW5kYW50cygqdGhp
cywgbGF5b3V0Um9vdCk7Cit9CisKIERpc3BsYXk6OkJveCYgTGF5b3V0Q29udGV4dDo6Y3JlYXRl
RGlzcGxheUJveChjb25zdCBCb3gmIGxheW91dEJveCkKIHsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8
RGlzcGxheTo6Qm94PiBkaXNwbGF5Qm94KG5ldyBEaXNwbGF5OjpCb3gobGF5b3V0Qm94LnN0eWxl
KCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRDb250ZXh0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0Q29udGV4dC5oCmluZGV4IGQ4M2JjMDhhYTQw
N2ZjYTRiMTY5NmYzNmM3MzRhMjZiMDMwNGMwZWIuLjFmODRhYzZjMzhhNDUxNWU1ZTM3MjZjMzQw
YTI5MmRhMTRjMGM1OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRD
b250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dENvbnRleHQuaApAQCAt
ODYsNiArODYsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCB2ZXJpZnlBbmRPdXRwdXRNaXNtYXRjaGlu
Z0xheW91dFRyZWUoY29uc3QgUmVuZGVyVmlldyYpIGNvbnN0OwogCiBwcml2YXRlOgorICAgIHZv
aWQgbGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRTdWJ0cmVlKGNvbnN0IEJveCYpOworCiAgICAgV2Vh
a1B0cjxDb250YWluZXI+IG1fcm9vdDsKICAgICBIYXNoU2V0PGNvbnN0IENvbnRhaW5lcio+IG1f
Zm9ybWF0dGluZ0NvbnRleHRSb290TGlzdEZvckxheW91dDsKICAgICBIYXNoTWFwPGNvbnN0IEJv
eCosIHN0ZDo6dW5pcXVlX3B0cjxGb3JtYXR0aW5nU3RhdGU+PiBtX2Zvcm1hdHRpbmdTdGF0ZXM7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2Nr
Rm9ybWF0dGluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0
dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmNwcAppbmRleCA1NjgyZjIxYmYzZDUxYzRlNGEw
ZTlkMWNjYjA3Njg4ODVhMGU5YzJiLi5mOWRjN2M2MmYzNDQ4ZWY1YzFkYTc5ZWJhN2M4NTczNTQ2
NWJjOGExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5n
L0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9i
bG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5jcHAKQEAgLTExNCw2ICsxMTQs
NyBAQCB2b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmxheW91dChMYXlvdXRDb250ZXh0JiBs
YXlvdXRDb250ZXh0LCBGb3JtYXR0aW5nU3RhdAogICAgICAgICAgICAgYXV0byYgY29udGFpbmVy
ID0gZG93bmNhc3Q8Q29udGFpbmVyPihsYXlvdXRCb3gpOwogICAgICAgICAgICAgLy8gTW92ZSBp
bi1mbG93IHBvc2l0aW9uZWQgY2hpbGRyZW4gdG8gdGhlaXIgZmluYWwgcG9zaXRpb24uCiAgICAg
ICAgICAgICBwbGFjZUluRmxvd1Bvc2l0aW9uZWRDaGlsZHJlbihsYXlvdXRDb250ZXh0LCBjb250
YWluZXIpOworICAgICAgICAgICAgbGF5b3V0T3V0T2ZGbG93RGVzY2VuZGFudHMobGF5b3V0Q29u
dGV4dCwgY29udGFpbmVyKTsKICAgICAgICAgICAgIGlmIChhdXRvKiBuZXh0U2libGluZyA9IGNv
bnRhaW5lci5uZXh0SW5GbG93T3JGbG9hdGluZ1NpYmxpbmcoKSkgewogICAgICAgICAgICAgICAg
IGxheW91dFF1ZXVlLmFwcGVuZChzdGQ6Om1ha2VfdW5pcXVlPExheW91dFBhaXI+KExheW91dFBh
aXIgeypuZXh0U2libGluZywgbGF5b3V0Q29udGV4dC5jcmVhdGVEaXNwbGF5Qm94KCpuZXh0U2li
bGluZyl9KSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC0xMjIsMTEgKzEyMyw2IEBAIHZv
aWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6bGF5b3V0KExheW91dENvbnRleHQmIGxheW91dENv
bnRleHQsIEZvcm1hdHRpbmdTdGF0CiAgICAgfQogICAgIC8vIFBsYWNlIHRoZSBpbmZsb3cgcG9z
aXRpb25lZCBjaGlsZHJlbi4KICAgICBwbGFjZUluRmxvd1Bvc2l0aW9uZWRDaGlsZHJlbihsYXlv
dXRDb250ZXh0LCBmb3JtYXR0aW5nUm9vdCk7Ci0gICAgLy8gQW5kIHRha2UgY2FyZSBvZiBvdXQt
b2YtZmxvdyBib3hlcyBhcyB0aGUgZmluYWwgc3RlcC4KLSAgICBsYXlvdXRPdXRPZkZsb3dEZXNj
ZW5kYW50cyhsYXlvdXRDb250ZXh0KTsKLSNpZm5kZWYgTkRFQlVHCi0gICAgdmFsaWRhdGVHZW9t
ZXRyeUNvbnN0cmFpbnRzQWZ0ZXJMYXlvdXQobGF5b3V0Q29udGV4dCk7Ci0jZW5kaWYKICAgICBM
T0dfV0lUSF9TVFJFQU0oRm9ybWF0dGluZ0NvbnRleHRMYXlvdXQsIHN0cmVhbSA8PCAiW0VuZF0g
LT4gYmxvY2sgZm9ybWF0dGluZyBjb250ZXh0IC0+IGxheW91dCBjb250ZXh0KCIgPDwgJmxheW91
dENvbnRleHQgPDwgIikgZm9ybWF0dGluZyByb290KCIgPDwgJnJvb3QoKSA8PCAiKSIpOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRDb250
YWluZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dENvbnRhaW5l
ci5oCmluZGV4IGVkMDRjZmVjMGUxNTIxMTJiMDBlYzc2OTg4YzUxZjJkOWRmNGE4NWYuLjAwMGJk
NGMyM2YzYjdjYmUzYTRiNGUxMmIwMjc0NjM4MWE3MjAyNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dENvbnRhaW5lci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dENvbnRhaW5lci5oCkBAIC01Myw3ICs1Myw3
IEBAIHB1YmxpYzoKICAgICBib29sIGhhc0luRmxvd0NoaWxkKCkgY29uc3QgeyByZXR1cm4gZmly
c3RJbkZsb3dDaGlsZCgpOyB9CiAgICAgYm9vbCBoYXNJbkZsb3dPckZsb2F0aW5nQ2hpbGQoKSBj
b25zdCB7IHJldHVybiBmaXJzdEluRmxvd09yRmxvYXRpbmdDaGlsZCgpOyB9CiAKLSAgICBjb25z
dCBWZWN0b3I8V2Vha1B0cjxCb3g+PiYgb3V0T2ZGbG93RGVzY2VuZGFudHMoKSB7IHJldHVybiBt
X291dE9mRmxvd0Rlc2NlbmRhbnRzOyB9CisgICAgY29uc3QgVmVjdG9yPFdlYWtQdHI8Qm94Pj4m
IG91dE9mRmxvd0Rlc2NlbmRhbnRzKCkgY29uc3QgeyByZXR1cm4gbV9vdXRPZkZsb3dEZXNjZW5k
YW50czsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgQ29udGFpbmVyKHN0ZDo6b3B0aW9uYWw8RWxlbWVu
dEF0dHJpYnV0ZXM+LCBSZW5kZXJTdHlsZSYmLCBCYXNlVHlwZUZsYWdzKTsK
</data>
<flag name="review"
          id="361788"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>