<?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>205825</bug_id>
          
          <creation_ts>2020-01-06 12:53:42 -0800</creation_ts>
          <short_desc>[LFC] computeBorderAndPadding/computeWidthAndMargin/computeStaticPosition functions should take UsedHorizontalValues::Constraints</short_desc>
          <delta_ts>2020-01-06 20:51:56 -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>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>commit-queue</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>1603223</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2020-01-06 12:53:42 -0800</bug_when>
    <thetext>ssia</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603230</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-01-06 13:01:31 -0800</bug_when>
    <thetext>&lt;rdar://problem/58351397&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603237</commentid>
    <comment_count>2</comment_count>
      <attachid>386880</attachid>
    <who name="alan">zalan</who>
    <bug_when>2020-01-06 13:18:40 -0800</bug_when>
    <thetext>Created attachment 386880
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603426</commentid>
    <comment_count>3</comment_count>
      <attachid>386928</attachid>
    <who name="alan">zalan</who>
    <bug_when>2020-01-06 20:20:51 -0800</bug_when>
    <thetext>Created attachment 386928
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603432</commentid>
    <comment_count>4</comment_count>
      <attachid>386928</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-06 20:51:54 -0800</bug_when>
    <thetext>Comment on attachment 386928
Patch

Clearing flags on attachment: 386928

Committed r254112: &lt;https://trac.webkit.org/changeset/254112&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603433</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-06 20:51:56 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386880</attachid>
            <date>2020-01-06 13:18:40 -0800</date>
            <delta_ts>2020-01-06 20:20:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205825-20200106131840.patch</filename>
            <type>text/plain</type>
            <size>17243</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0MDQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjY5ODQ0MDkwMzRlMjg4
N2NiMmM4ZjFlNGI3MTgyZTMxZjc2ZGViMS4uOGJlMTAxNmMxNjUxYTU2MWE3MmFlZDkwOTBlZThm
OWEzMjQ0MDQ4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIwLTAxLTA2ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ10gY29tcHV0ZUJvcmRl
ckFuZFBhZGRpbmcvY29tcHV0ZVdpZHRoQW5kTWFyZ2luL2NvbXB1dGVTdGF0aWNQb3NpdGlvbiBm
dW5jdGlvbnMgc2hvdWxkIHRha2UgVXNlZEhvcml6b250YWxWYWx1ZXM6OkNvbnN0cmFpbnRzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU4MjUKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU4MzUxMzk3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIExldCdzIHBhc3MgaW4gdGhlIGhvcml6b250YWwgY29u
c3RyYWludHMgc28gdGhhdCB0aGUgY29tcHV0ZSogZnVuY3Rpb25zIGRvbid0IG5lZWQgdG8KKyAg
ICAgICAgYWNjZXNzIGNvbnRhaW5pbmcgYmxvY2sncyBnZW9tZXRyeS4KKworICAgICAgICAqIGxh
eW91dC9Gb3JtYXR0aW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZv
cm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlQm9yZGVyQW5kUGFkZGluZyk6CisgICAgICAgIChXZWJD
b3JlOjpMYXlvdXQ6OkZvcm1hdHRpbmdDb250ZXh0OjpsYXlvdXRPdXRPZkZsb3dDb250ZW50KToK
KyAgICAgICAgKiBsYXlvdXQvRm9ybWF0dGluZ0NvbnRleHQuaDoKKyAgICAgICAgKiBsYXlvdXQv
YmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpsYXlvdXRJbkZsb3dDb250ZW50
KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6bGF5
b3V0Rm9ybWF0dGluZ0NvbnRleHRSb290KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Qmxv
Y2tGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZVN0YXRpY0hvcml6b250YWxQb3NpdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVT
dGF0aWNQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGlu
Z0NvbnRleHQ6OmNvbXB1dGVXaWR0aEFuZE1hcmdpbik6CisgICAgICAgICogbGF5b3V0L2Jsb2Nr
Zm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0Lmg6CisgICAgICAgIChXZWJDb3JlOjpM
YXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVXaWR0aEFuZE1hcmdpbik6IERl
bGV0ZWQuCisgICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGlu
Z0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVGb3JtYXR0aW5n
Q29udGV4dDo6bGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRSb290KToKKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dDo6SW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVIb3Jpem9udGFsQW5kVmVy
dGljYWxHZW9tZXRyeSk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUZvcm1hdHRp
bmdDb250ZXh0Ojpjb21wdXRlZEludHJpbnNpY1dpZHRoQ29uc3RyYWludHMpOgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZUludHJpbnNp
Y1dpZHRoRm9yRm9ybWF0dGluZ1Jvb3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxp
bmVGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZVdpZHRoQW5kSGVpZ2h0Rm9yUmVwbGFjZWRJbmxp
bmVCb3gpOgorICAgICAgICAqIGxheW91dC90YWJsZWZvcm1hdHRpbmcvVGFibGVGb3JtYXR0aW5n
Q29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlRhYmxlRm9ybWF0dGluZ0Nv
bnRleHQ6OmxheW91dFRhYmxlQ2VsbEJveCk6CisKIDIwMjAtMDEtMDYgIFphbGFuIEJ1anRhcyAg
PHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXSBSZW1vdmUgcmVkdW5kYW50IFVzZWRW
ZXJ0aWNhbFZhbHVlczo6Q29uc3RyYWludHMoRGlzcGxheTo6Qm94KQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dC5jcHAKaW5kZXggYTU2M2RmYWZjNGQ5Y2VjYTJkMWM5
ODViYjhkMjhhZTJlZGRjMzc3ZS4uNzdmODYxNzc3NWZmOTcyZDYyM2I2MjRmYzdjOTc3YmI3NzQ2
ZWJlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHQuY3BwCkBA
IC0xNDEsMTMgKzE0MSwxMSBAQCB2b2lkIEZvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlT3V0T2ZG
bG93VmVydGljYWxHZW9tZXRyeShjb25zdCBCb3gmIGxheW91dEJveCkKICAgICBkaXNwbGF5Qm94
LnNldFZlcnRpY2FsTWFyZ2luKHsgbm9uQ29sbGFwc2VkVmVydGljYWxNYXJnaW4sIHsgfSB9KTsK
IH0KIAotdm9pZCBGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZUJvcmRlckFuZFBhZGRpbmcoY29u
c3QgQm94JiBsYXlvdXRCb3gsIE9wdGlvbmFsPFVzZWRIb3Jpem9udGFsVmFsdWVzPiB1c2VkSG9y
aXpvbnRhbFZhbHVlcykKK3ZvaWQgRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVCb3JkZXJBbmRQ
YWRkaW5nKGNvbnN0IEJveCYgbGF5b3V0Qm94LCBjb25zdCBVc2VkSG9yaXpvbnRhbFZhbHVlczo6
Q29uc3RyYWludHMmIGhvcml6b250YWxDb25zdHJhaW50KQogewotICAgIGlmICghdXNlZEhvcml6
b250YWxWYWx1ZXMpCi0gICAgICAgIHVzZWRIb3Jpem9udGFsVmFsdWVzID0gVXNlZEhvcml6b250
YWxWYWx1ZXMgeyBVc2VkSG9yaXpvbnRhbFZhbHVlczo6Q29uc3RyYWludHMgeyBnZW9tZXRyeUZv
ckJveCgqbGF5b3V0Qm94LmNvbnRhaW5pbmdCbG9jaygpKS5jb250ZW50Qm94KCkgfSB9OwogICAg
IGF1dG8mIGRpc3BsYXlCb3ggPSBmb3JtYXR0aW5nU3RhdGUoKS5kaXNwbGF5Qm94KGxheW91dEJv
eCk7CiAgICAgZGlzcGxheUJveC5zZXRCb3JkZXIoZ2VvbWV0cnkoKS5jb21wdXRlZEJvcmRlcihs
YXlvdXRCb3gpKTsKLSAgICBkaXNwbGF5Qm94LnNldFBhZGRpbmcoZ2VvbWV0cnkoKS5jb21wdXRl
ZFBhZGRpbmcobGF5b3V0Qm94LCAqdXNlZEhvcml6b250YWxWYWx1ZXMpKTsKKyAgICBkaXNwbGF5
Qm94LnNldFBhZGRpbmcoZ2VvbWV0cnkoKS5jb21wdXRlZFBhZGRpbmcobGF5b3V0Qm94LCBVc2Vk
SG9yaXpvbnRhbFZhbHVlcyB7IGhvcml6b250YWxDb25zdHJhaW50IH0pKTsKIH0KIAogdm9pZCBG
b3JtYXR0aW5nQ29udGV4dDo6bGF5b3V0T3V0T2ZGbG93Q29udGVudChJbnZhbGlkYXRpb25TdGF0
ZSYgaW52YWxpZGF0aW9uU3RhdGUpCkBAIC0xNjEsNyArMTU5LDcgQEAgdm9pZCBGb3JtYXR0aW5n
Q29udGV4dDo6bGF5b3V0T3V0T2ZGbG93Q29udGVudChJbnZhbGlkYXRpb25TdGF0ZSYgaW52YWxp
ZGF0aW9uU3QKICAgICAgICAgaWYgKCFpbnZhbGlkYXRpb25TdGF0ZS5uZWVkc0xheW91dCgqb3V0
T2ZGbG93Qm94KSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIGNvbXB1dGVCb3Jk
ZXJBbmRQYWRkaW5nKCpvdXRPZkZsb3dCb3gpOworICAgICAgICBjb21wdXRlQm9yZGVyQW5kUGFk
ZGluZygqb3V0T2ZGbG93Qm94LCBVc2VkSG9yaXpvbnRhbFZhbHVlczo6Q29uc3RyYWludHMgeyBn
ZW9tZXRyeUZvckJveCgqb3V0T2ZGbG93Qm94LT5jb250YWluaW5nQmxvY2soKSkuY29udGVudEJv
eCgpIH0pOwogICAgICAgICBjb21wdXRlT3V0T2ZGbG93SG9yaXpvbnRhbEdlb21ldHJ5KCpvdXRP
ZkZsb3dCb3gpOwogICAgICAgICBpZiAoaXM8Q29udGFpbmVyPigqb3V0T2ZGbG93Qm94KSkgewog
ICAgICAgICAgICAgYXV0byYgb3V0T2ZGbG93Um9vdENvbnRhaW5lciA9IGRvd25jYXN0PENvbnRh
aW5lcj4oKm91dE9mRmxvd0JveCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
Rm9ybWF0dGluZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29u
dGV4dC5oCmluZGV4IGFjYjc4N2ZlZmZhZjk3OGZkNThlNTNjNDQyN2JkOThmYTg5NzZhMWEuLjY2
OWY1Yjg5ZjM4Yzg0YWY2YzJkYzIwNzIyODViNDE0ZTNkZmVlMjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dC5oCkBAIC0xMDAsNyArMTAwLDcgQEAgcHJvdGVjdGVk
OgogICAgIGNvbnN0IEZvcm1hdHRpbmdTdGF0ZSYgZm9ybWF0dGluZ1N0YXRlKCkgY29uc3QgeyBy
ZXR1cm4gbV9mb3JtYXR0aW5nU3RhdGU7IH0KICAgICBGb3JtYXR0aW5nU3RhdGUmIGZvcm1hdHRp
bmdTdGF0ZSgpIHsgcmV0dXJuIG1fZm9ybWF0dGluZ1N0YXRlOyB9CiAKLSAgICB2b2lkIGNvbXB1
dGVCb3JkZXJBbmRQYWRkaW5nKGNvbnN0IEJveCYsIE9wdGlvbmFsPFVzZWRIb3Jpem9udGFsVmFs
dWVzPiA9IFdURjo6bnVsbG9wdCk7CisgICAgdm9pZCBjb21wdXRlQm9yZGVyQW5kUGFkZGluZyhj
b25zdCBCb3gmLCBjb25zdCBVc2VkSG9yaXpvbnRhbFZhbHVlczo6Q29uc3RyYWludHMmKTsKIAog
I2lmbmRlZiBOREVCVUcKICAgICB2aXJ0dWFsIHZvaWQgdmFsaWRhdGVHZW9tZXRyeUNvbnN0cmFp
bnRzQWZ0ZXJMYXlvdXQoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuY3BwCmlu
ZGV4IDc2NjU3ZTc1YjI0NDBjOWI0MDUxYTJiMmE2MjE3NGJiODhjMjE5ZjkuLmJhMWE2NDYyODY1
YjIzNzQwZjgzNTg4NWY5ZmQ2YzJjMDI5MTM5NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250
ZXh0LmNwcApAQCAtMTEwLDkgKzExMCwxMCBAQCB2b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6
OmxheW91dEluRmxvd0NvbnRlbnQoSW52YWxpZGF0aW9uU3RhdGUmIGludmFsaWRhdGlvbgogICAg
ICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBjb21w
dXRlQm9yZGVyQW5kUGFkZGluZyhsYXlvdXRCb3gpOwotICAgICAgICAgICAgY29tcHV0ZVdpZHRo
QW5kTWFyZ2luKGxheW91dEJveCk7Ci0gICAgICAgICAgICBjb21wdXRlU3RhdGljUG9zaXRpb24o
ZmxvYXRpbmdDb250ZXh0LCBsYXlvdXRCb3gpOworICAgICAgICAgICAgYXV0byBob3Jpem9udGFs
Q29uc3RyYWludHMgPSBVc2VkSG9yaXpvbnRhbFZhbHVlczo6Q29uc3RyYWludHMgeyBnZW9tZXRy
eUZvckJveCgqbGF5b3V0Qm94LmNvbnRhaW5pbmdCbG9jaygpKS5jb250ZW50Qm94KCkgfTsKKyAg
ICAgICAgICAgIGNvbXB1dGVCb3JkZXJBbmRQYWRkaW5nKGxheW91dEJveCwgaG9yaXpvbnRhbENv
bnN0cmFpbnRzKTsKKyAgICAgICAgICAgIGNvbXB1dGVXaWR0aEFuZE1hcmdpbihsYXlvdXRCb3gs
IGhvcml6b250YWxDb25zdHJhaW50cyk7CisgICAgICAgICAgICBjb21wdXRlU3RhdGljUG9zaXRp
b24oZmxvYXRpbmdDb250ZXh0LCBsYXlvdXRCb3gsIGhvcml6b250YWxDb25zdHJhaW50cyk7CiAK
ICAgICAgICAgICAgIGlmICghYXBwZW5kTmV4dFRvTGF5b3V0UXVldWUobGF5b3V0Qm94LCBMYXlv
dXREaXJlY3Rpb246OkNoaWxkKSkKICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTE3NSwxNSAr
MTc2LDE4IEBAIHZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6bGF5b3V0Rm9ybWF0dGluZ0Nv
bnRleHRSb290KEZsb2F0aW5nQ29udGV4dCYgZmxvYXRpCiAgICAgQVNTRVJUKGxheW91dEJveC5l
c3RhYmxpc2hlc0Zvcm1hdHRpbmdDb250ZXh0KCkpOwogICAgIC8vIFN0YXJ0IGxheWluZyBvdXQg
dGhpcyBmb3JtYXR0aW5nIHJvb3QgaW4gdGhlIGZvcm1hdHRpbmcgY29udGVueHQgaXQgbGl2ZXMg
aW4uCiAgICAgTE9HX1dJVEhfU1RSRUFNKEZvcm1hdHRpbmdDb250ZXh0TGF5b3V0LCBzdHJlYW0g
PDwgIltDb21wdXRlXSAtPiBbUG9zaXRpb25dW0JvcmRlcl1bUGFkZGluZ11bV2lkdGhdW01hcmdp
bl0gLT4gZm9yIGxheW91dEJveCgiIDw8ICZsYXlvdXRCb3ggPDwgIikiKTsKLSAgICBjb21wdXRl
Qm9yZGVyQW5kUGFkZGluZyhsYXlvdXRCb3gpOwotICAgIGNvbXB1dGVTdGF0aWNWZXJ0aWNhbFBv
c2l0aW9uKGZsb2F0aW5nQ29udGV4dCwgbGF5b3V0Qm94KTsKIAogICAgIE9wdGlvbmFsPExheW91
dFVuaXQ+IHVzZWRBdmFpbGFibGVXaWR0aEZvckZsb2F0QXZvaWRlcjsKICAgICBhdXRvIGhvcml6
b250YWxBdmFpbGFibGVTcGFjZUlzQ29uc3RyYWluZWRCeUV4aXN0aW5nRmxvYXRzID0gbGF5b3V0
Qm94LmlzRmxvYXRBdm9pZGVyKCkgJiYgIWxheW91dEJveC5pc0Zsb2F0aW5nUG9zaXRpb25lZCgp
OwogICAgIGlmIChob3Jpem9udGFsQXZhaWxhYmxlU3BhY2VJc0NvbnN0cmFpbmVkQnlFeGlzdGlu
Z0Zsb2F0cykKICAgICAgICAgdXNlZEF2YWlsYWJsZVdpZHRoRm9yRmxvYXRBdm9pZGVyID0gdGhp
cy0+dXNlZEF2YWlsYWJsZVdpZHRoRm9yRmxvYXRBdm9pZGVyKGZsb2F0aW5nQ29udGV4dCwgbGF5
b3V0Qm94KTsKLSAgICBjb21wdXRlV2lkdGhBbmRNYXJnaW4obGF5b3V0Qm94LCB1c2VkQXZhaWxh
YmxlV2lkdGhGb3JGbG9hdEF2b2lkZXIpOwotICAgIGNvbXB1dGVTdGF0aWNIb3Jpem9udGFsUG9z
aXRpb24obGF5b3V0Qm94KTsKKyAgICBhdXRvIGNvbnRhaW5pbmdCbG9ja0NvbnRlbnRCb3ggPSBn
ZW9tZXRyeUZvckJveCgqbGF5b3V0Qm94LmNvbnRhaW5pbmdCbG9jaygpKS5jb250ZW50Qm94KCk7
CisgICAgYXV0byBob3Jpem9udGFsQXZhaWxhYmxlU3BhY2UgPSB1c2VkQXZhaWxhYmxlV2lkdGhG
b3JGbG9hdEF2b2lkZXIudmFsdWVPcihjb250YWluaW5nQmxvY2tDb250ZW50Qm94LndpZHRoKCkp
OworICAgIGF1dG8gaG9yaXpvbnRhbENvbnN0cmFpbnRzID0gVXNlZEhvcml6b250YWxWYWx1ZXM6
OkNvbnN0cmFpbnRzIHsgY29udGFpbmluZ0Jsb2NrQ29udGVudEJveC5sZWZ0KCksIGhvcml6b250
YWxBdmFpbGFibGVTcGFjZSB9OworICAgIGNvbXB1dGVCb3JkZXJBbmRQYWRkaW5nKGxheW91dEJv
eCwgaG9yaXpvbnRhbENvbnN0cmFpbnRzKTsKKyAgICBjb21wdXRlU3RhdGljVmVydGljYWxQb3Np
dGlvbihmbG9hdGluZ0NvbnRleHQsIGxheW91dEJveCk7CisgICAgY29tcHV0ZVdpZHRoQW5kTWFy
Z2luKGxheW91dEJveCwgaG9yaXpvbnRhbENvbnN0cmFpbnRzKTsKKyAgICBjb21wdXRlU3RhdGlj
SG9yaXpvbnRhbFBvc2l0aW9uKGxheW91dEJveCwgaG9yaXpvbnRhbENvbnN0cmFpbnRzKTsKICAg
ICBpZiAoaXM8Q29udGFpbmVyPihsYXlvdXRCb3gpKSB7CiAgICAgICAgIC8vIFN3aWNoIG92ZXIg
dG8gdGhlIG5ldyBmb3JtYXR0aW5nIGNvbnRleHQgKHRoZSBvbmUgdGhhdCB0aGUgcm9vdCBjcmVh
dGVzKS4KICAgICAgICAgYXV0byYgcm9vdENvbnRhaW5lciA9IGRvd25jYXN0PENvbnRhaW5lcj4o
bGF5b3V0Qm94KTsKQEAgLTI0MiwxNiArMjQ2LDE1IEBAIHZvaWQgQmxvY2tGb3JtYXR0aW5nQ29u
dGV4dDo6Y29tcHV0ZVN0YXRpY1ZlcnRpY2FsUG9zaXRpb24oY29uc3QgRmxvYXRpbmdDb250ZXh0
CiAgICAgICAgIGNvbXB1dGVFc3RpbWF0ZWRWZXJ0aWNhbFBvc2l0aW9uRm9yRm9ybWF0dGluZ1Jv
b3QobGF5b3V0Qm94KTsKIH0KIAotdm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRl
U3RhdGljSG9yaXpvbnRhbFBvc2l0aW9uKGNvbnN0IEJveCYgbGF5b3V0Qm94KQordm9pZCBCbG9j
a0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlU3RhdGljSG9yaXpvbnRhbFBvc2l0aW9uKGNvbnN0
IEJveCYgbGF5b3V0Qm94LCBjb25zdCBVc2VkSG9yaXpvbnRhbFZhbHVlczo6Q29uc3RyYWludHMm
IGhvcml6b250YWxDb25zdHJhaW50cykKIHsKLSAgICBhdXRvIHVzZWRIb3Jpem9udGFsVmFsdWVz
ID0gVXNlZEhvcml6b250YWxWYWx1ZXMgeyBVc2VkSG9yaXpvbnRhbFZhbHVlczo6Q29uc3RyYWlu
dHMgeyBnZW9tZXRyeUZvckJveCgqbGF5b3V0Qm94LmNvbnRhaW5pbmdCbG9jaygpKS5jb250ZW50
Qm94KCkgfSB9OwotICAgIGZvcm1hdHRpbmdTdGF0ZSgpLmRpc3BsYXlCb3gobGF5b3V0Qm94KS5z
ZXRMZWZ0KGdlb21ldHJ5KCkuc3RhdGljSG9yaXpvbnRhbFBvc2l0aW9uKGxheW91dEJveCwgdXNl
ZEhvcml6b250YWxWYWx1ZXMpKTsKKyAgICBmb3JtYXR0aW5nU3RhdGUoKS5kaXNwbGF5Qm94KGxh
eW91dEJveCkuc2V0TGVmdChnZW9tZXRyeSgpLnN0YXRpY0hvcml6b250YWxQb3NpdGlvbihsYXlv
dXRCb3gsIFVzZWRIb3Jpem9udGFsVmFsdWVzIHsgaG9yaXpvbnRhbENvbnN0cmFpbnRzIH0pKTsK
IH0KIAotdm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlU3RhdGljUG9zaXRpb24o
Y29uc3QgRmxvYXRpbmdDb250ZXh0JiBmbG9hdGluZ0NvbnRleHQsIGNvbnN0IEJveCYgbGF5b3V0
Qm94KQordm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlU3RhdGljUG9zaXRpb24o
Y29uc3QgRmxvYXRpbmdDb250ZXh0JiBmbG9hdGluZ0NvbnRleHQsIGNvbnN0IEJveCYgbGF5b3V0
Qm94LCBjb25zdCBVc2VkSG9yaXpvbnRhbFZhbHVlczo6Q29uc3RyYWludHMmIGhvcml6b250YWxD
b25zdHJhaW50cykKIHsKICAgICBjb21wdXRlU3RhdGljVmVydGljYWxQb3NpdGlvbihmbG9hdGlu
Z0NvbnRleHQsIGxheW91dEJveCk7Ci0gICAgY29tcHV0ZVN0YXRpY0hvcml6b250YWxQb3NpdGlv
bihsYXlvdXRCb3gpOworICAgIGNvbXB1dGVTdGF0aWNIb3Jpem9udGFsUG9zaXRpb24obGF5b3V0
Qm94LCBob3Jpem9udGFsQ29uc3RyYWludHMpOwogfQogCiB2b2lkIEJsb2NrRm9ybWF0dGluZ0Nv
bnRleHQ6OmNvbXB1dGVFc3RpbWF0ZWRWZXJ0aWNhbFBvc2l0aW9uKGNvbnN0IEJveCYgbGF5b3V0
Qm94KQpAQCAtMzcyLDE4ICszNzUsMTAgQEAgdm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpj
b21wdXRlUG9zaXRpb25Ub0F2b2lkRmxvYXRzKGNvbnN0IEZsb2F0aW5nQ29udGV4dCYKICAgICAg
ICAgZm9ybWF0dGluZ1N0YXRlKCkuZGlzcGxheUJveChsYXlvdXRCb3gpLnNldFRvcExlZnQoKmFk
anVzdGVkUG9zaXRpb24pOwogfQogCi12b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1
dGVXaWR0aEFuZE1hcmdpbihjb25zdCBCb3gmIGxheW91dEJveCwgT3B0aW9uYWw8TGF5b3V0VW5p
dD4gdXNlZEF2YWlsYWJsZVdpZHRoKQordm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21w
dXRlV2lkdGhBbmRNYXJnaW4oY29uc3QgQm94JiBsYXlvdXRCb3gsIGNvbnN0IFVzZWRIb3Jpem9u
dGFsVmFsdWVzOjpDb25zdHJhaW50cyYgaG9yaXpvbnRhbENvbnN0cmFpbnRzKQogewotICAgIExh
eW91dFVuaXQgYXZhaWxhYmxlV2lkdGg7Ci0gICAgYXV0byBjb250YWluaW5nQmxvY2tHZW9tZXRy
eSA9IGdlb21ldHJ5Rm9yQm94KCpsYXlvdXRCb3guY29udGFpbmluZ0Jsb2NrKCkpOwotICAgIGlm
ICh1c2VkQXZhaWxhYmxlV2lkdGgpCi0gICAgICAgIGF2YWlsYWJsZVdpZHRoID0gKnVzZWRBdmFp
bGFibGVXaWR0aDsKLSAgICBlbHNlCi0gICAgICAgIGF2YWlsYWJsZVdpZHRoID0gY29udGFpbmlu
Z0Jsb2NrR2VvbWV0cnkuY29udGVudEJveFdpZHRoKCk7Ci0gICAgYXV0byBjb25zdHJhaW50cyA9
IFVzZWRIb3Jpem9udGFsVmFsdWVzOjpDb25zdHJhaW50cyB7IGNvbnRhaW5pbmdCbG9ja0dlb21l
dHJ5LmNvbnRlbnRCb3hMZWZ0KCksIGF2YWlsYWJsZVdpZHRoIH07Ci0KICAgICBhdXRvIGNvbXB1
dGUgPSBbJl0oT3B0aW9uYWw8TGF5b3V0VW5pdD4gdXNlZFdpZHRoKSAtPiBDb250ZW50V2lkdGhB
bmRNYXJnaW4gewotICAgICAgICBhdXRvIHVzZWRWYWx1ZXMgPSBVc2VkSG9yaXpvbnRhbFZhbHVl
cyB7IGNvbnN0cmFpbnRzLCB1c2VkV2lkdGgsIHsgfSB9OworICAgICAgICBhdXRvIHVzZWRWYWx1
ZXMgPSBVc2VkSG9yaXpvbnRhbFZhbHVlcyB7IGhvcml6b250YWxDb25zdHJhaW50cywgdXNlZFdp
ZHRoLCB7IH0gfTsKICAgICAgICAgaWYgKGxheW91dEJveC5pc0luRmxvdygpKQogICAgICAgICAg
ICAgcmV0dXJuIGdlb21ldHJ5KCkuaW5GbG93V2lkdGhBbmRNYXJnaW4obGF5b3V0Qm94LCB1c2Vk
VmFsdWVzKTsKIApAQCAtMzk2LDYgKzM5MSw3IEBAIHZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4
dDo6Y29tcHV0ZVdpZHRoQW5kTWFyZ2luKGNvbnN0IEJveCYgbGF5b3V0Qm94LCBPcHRpb25hCiAK
ICAgICBhdXRvIGNvbnRlbnRXaWR0aEFuZE1hcmdpbiA9IGNvbXB1dGUoeyB9KTsKIAorICAgIGF1
dG8gYXZhaWxhYmxlV2lkdGggPSBob3Jpem9udGFsQ29uc3RyYWludHMud2lkdGg7CiAgICAgaWYg
KGF1dG8gbWF4V2lkdGggPSBnZW9tZXRyeSgpLmNvbXB1dGVkTWF4V2lkdGgobGF5b3V0Qm94LCBh
dmFpbGFibGVXaWR0aCkpIHsKICAgICAgICAgYXV0byBtYXhXaWR0aEFuZE1hcmdpbiA9IGNvbXB1
dGUobWF4V2lkdGgpOwogICAgICAgICBpZiAoY29udGVudFdpZHRoQW5kTWFyZ2luLmNvbnRlbnRX
aWR0aCA+IG1heFdpZHRoQW5kTWFyZ2luLmNvbnRlbnRXaWR0aCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5o
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdD
b250ZXh0LmgKaW5kZXggMTc4ODY0ZjYxODdlYWM1MjNjYjY5M2Q5MmY4NDAzNjkxZDllNzg1ZC4u
NDEyMDVkNTU2Y2Q1NGFmYjE5NGViY2FmNjczMDJkNmQ1MTQ1MjZjMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1h
dHRpbmdDb250ZXh0LmgKQEAgLTU0LDEyICs1NCwxMiBAQCBwcml2YXRlOgogICAgIHZvaWQgbGF5
b3V0Rm9ybWF0dGluZ0NvbnRleHRSb290KEZsb2F0aW5nQ29udGV4dCYsIGNvbnN0IEJveCYsIElu
dmFsaWRhdGlvblN0YXRlJik7CiAgICAgdm9pZCBwbGFjZUluRmxvd1Bvc2l0aW9uZWRDaGlsZHJl
bihjb25zdCBCb3gmKTsKIAotICAgIHZvaWQgY29tcHV0ZVdpZHRoQW5kTWFyZ2luKGNvbnN0IEJv
eCYsIE9wdGlvbmFsPExheW91dFVuaXQ+IHVzZWRBdmFpbGFibGVXaWR0aCA9IHsgfSk7CisgICAg
dm9pZCBjb21wdXRlV2lkdGhBbmRNYXJnaW4oY29uc3QgQm94JiwgY29uc3QgVXNlZEhvcml6b250
YWxWYWx1ZXM6OkNvbnN0cmFpbnRzJik7CiAgICAgdm9pZCBjb21wdXRlSGVpZ2h0QW5kTWFyZ2lu
KGNvbnN0IEJveCYpOwogCi0gICAgdm9pZCBjb21wdXRlU3RhdGljSG9yaXpvbnRhbFBvc2l0aW9u
KGNvbnN0IEJveCYpOworICAgIHZvaWQgY29tcHV0ZVN0YXRpY0hvcml6b250YWxQb3NpdGlvbihj
b25zdCBCb3gmLCBjb25zdCBVc2VkSG9yaXpvbnRhbFZhbHVlczo6Q29uc3RyYWludHMmKTsKICAg
ICB2b2lkIGNvbXB1dGVTdGF0aWNWZXJ0aWNhbFBvc2l0aW9uKGNvbnN0IEZsb2F0aW5nQ29udGV4
dCYsIGNvbnN0IEJveCYpOwotICAgIHZvaWQgY29tcHV0ZVN0YXRpY1Bvc2l0aW9uKGNvbnN0IEZs
b2F0aW5nQ29udGV4dCYsIGNvbnN0IEJveCYpOworICAgIHZvaWQgY29tcHV0ZVN0YXRpY1Bvc2l0
aW9uKGNvbnN0IEZsb2F0aW5nQ29udGV4dCYsIGNvbnN0IEJveCYsIGNvbnN0IFVzZWRIb3Jpem9u
dGFsVmFsdWVzOjpDb25zdHJhaW50cyYpOwogICAgIHZvaWQgY29tcHV0ZUZsb2F0aW5nUG9zaXRp
b24oY29uc3QgRmxvYXRpbmdDb250ZXh0JiwgY29uc3QgQm94Jik7CiAgICAgdm9pZCBjb21wdXRl
UG9zaXRpb25Ub0F2b2lkRmxvYXRzKGNvbnN0IEZsb2F0aW5nQ29udGV4dCYsIGNvbnN0IEJveCYp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9J
bmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5l
Zm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAKaW5kZXggOTg3OWE5YzBjMmU2
MjQ3OTA5YjQwNTE1OWRkNGI5NWI4Y2MxYWZmOC4uZWZkZWI5Y2EyMWQwOWQ4OTEwYzkzYTQwMDA2
Njg4ZmExNjc5N2RmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZv
cm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcApAQCAt
MTM0LDcgKzEzNCw3IEBAIHZvaWQgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OmxheW91dEZvcm1h
dHRpbmdDb250ZXh0Um9vdChjb25zdCBCb3gmIGZvcm1hdHRpbmdDCiB7CiAgICAgQVNTRVJUKGZv
cm1hdHRpbmdDb250ZXh0Um9vdC5pc0Zsb2F0aW5nUG9zaXRpb25lZCgpIHx8IGZvcm1hdHRpbmdD
b250ZXh0Um9vdC5pc0lubGluZUJsb2NrQm94KCkpOwogCi0gICAgY29tcHV0ZUJvcmRlckFuZFBh
ZGRpbmcoZm9ybWF0dGluZ0NvbnRleHRSb290LCB1c2VkSG9yaXpvbnRhbFZhbHVlcyk7CisgICAg
Y29tcHV0ZUJvcmRlckFuZFBhZGRpbmcoZm9ybWF0dGluZ0NvbnRleHRSb290LCB1c2VkSG9yaXpv
bnRhbFZhbHVlcy5jb25zdHJhaW50cyk7CiAgICAgY29tcHV0ZVdpZHRoQW5kTWFyZ2luKGZvcm1h
dHRpbmdDb250ZXh0Um9vdCwgdXNlZEhvcml6b250YWxWYWx1ZXMpOwogICAgIC8vIFN3aWNoIG92
ZXIgdG8gdGhlIG5ldyBmb3JtYXR0aW5nIGNvbnRleHQgKHRoZSBvbmUgdGhhdCB0aGUgcm9vdCBj
cmVhdGVzKS4KICAgICBpZiAoaXM8Q29udGFpbmVyPihmb3JtYXR0aW5nQ29udGV4dFJvb3QpKSB7
CkBAIC0xNTQsNyArMTU0LDcgQEAgdm9pZCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0
ZUhvcml6b250YWxBbmRWZXJ0aWNhbEdlb21ldHJ5KGNvbnN0IEJveCYgbGEKICAgICBpZiAoaXM8
Q29udGFpbmVyPihsYXlvdXRCb3gpKSB7CiAgICAgICAgIC8vIElubGluZSBjb250YWluZXJzICg8
c3Bhbj4pIGNhbid0IGdldCBzaXplZC9wb3NpdGlvbmVkIHlldC4gQXQgdGhpcyBwb2ludCB3ZSBj
YW4gb25seSBjb21wdXRlIHRoZWlyIG1hcmdpbnMsIGJvcmRlcnMgYW5kIHBhZGRpbmdzLgogICAg
ICAgICBjb21wdXRlSG9yaXpvbnRhbE1hcmdpbihsYXlvdXRCb3gsIHVzZWRIb3Jpem9udGFsVmFs
dWVzKTsKLSAgICAgICAgY29tcHV0ZUJvcmRlckFuZFBhZGRpbmcobGF5b3V0Qm94LCB1c2VkSG9y
aXpvbnRhbFZhbHVlcyk7CisgICAgICAgIGNvbXB1dGVCb3JkZXJBbmRQYWRkaW5nKGxheW91dEJv
eCwgdXNlZEhvcml6b250YWxWYWx1ZXMuY29uc3RyYWludHMpOwogICAgICAgICAvLyBJbmxpbmUg
Y29udGFpbmVycyBoYXZlIDAgY29tcHV0ZWQgdmVydGljYWwgbWFyZ2lucy4KICAgICAgICAgZm9y
bWF0dGluZ1N0YXRlKCkuZGlzcGxheUJveChsYXlvdXRCb3gpLnNldFZlcnRpY2FsTWFyZ2luKHsg
eyB9LCB7IH0gfSk7CiAgICAgICAgIHJldHVybjsKQEAgLTE2Miw3ICsxNjIsNyBAQCB2b2lkIElu
bGluZUZvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlSG9yaXpvbnRhbEFuZFZlcnRpY2FsR2VvbWV0
cnkoY29uc3QgQm94JiBsYQogCiAgICAgaWYgKGxheW91dEJveC5pc1JlcGxhY2VkKCkpIHsKICAg
ICAgICAgLy8gUmVwbGFjZWQgZWxlbWVudHMgKGltZywgdmlkZW8pIGNhbiBiZSBzaXplZCBidXQg
bm90IHlldCBwb3NpdGlvbmVkLgotICAgICAgICBjb21wdXRlQm9yZGVyQW5kUGFkZGluZyhsYXlv
dXRCb3gsIHVzZWRIb3Jpem9udGFsVmFsdWVzKTsKKyAgICAgICAgY29tcHV0ZUJvcmRlckFuZFBh
ZGRpbmcobGF5b3V0Qm94LCB1c2VkSG9yaXpvbnRhbFZhbHVlcy5jb25zdHJhaW50cyk7CiAgICAg
ICAgIGNvbXB1dGVXaWR0aEFuZE1hcmdpbihsYXlvdXRCb3gsIHVzZWRIb3Jpem9udGFsVmFsdWVz
KTsKICAgICAgICAgY29tcHV0ZUhlaWdodEFuZE1hcmdpbihsYXlvdXRCb3gsIHVzZWRIb3Jpem9u
dGFsVmFsdWVzLCB1c2VkVmVydGljYWxWYWx1ZXMpOwogICAgICAgICByZXR1cm47CkBAIC0xOTcs
NyArMTk3LDcgQEAgRm9ybWF0dGluZ0NvbnRleHQ6OkludHJpbnNpY1dpZHRoQ29uc3RyYWludHMg
SW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVkSW4KICAgICAgICAgICAgIGZvcm1hdHRp
bmdDb250ZXh0Um9vdExpc3QuYXBwZW5kKGxheW91dEJveCk7CiAgICAgICAgICAgICBjb21wdXRl
SW50cmluc2ljV2lkdGhGb3JGb3JtYXR0aW5nUm9vdCgqbGF5b3V0Qm94LCB1c2VkSG9yaXpvbnRh
bFZhbHVlcyk7CiAgICAgICAgIH0gZWxzZSBpZiAobGF5b3V0Qm94LT5pc1JlcGxhY2VkKCkgfHwg
aXM8Q29udGFpbmVyPigqbGF5b3V0Qm94KSkgewotICAgICAgICAgICAgY29tcHV0ZUJvcmRlckFu
ZFBhZGRpbmcoKmxheW91dEJveCwgdXNlZEhvcml6b250YWxWYWx1ZXMpOworICAgICAgICAgICAg
Y29tcHV0ZUJvcmRlckFuZFBhZGRpbmcoKmxheW91dEJveCwgdXNlZEhvcml6b250YWxWYWx1ZXMu
Y29uc3RyYWludHMpOwogICAgICAgICAgICAgLy8gaW5saW5lLWJsb2NrIGFuZCByZXBsYWNlZC4K
ICAgICAgICAgICAgIGF1dG8gbmVlZHNXaWR0aENvbXB1dGF0aW9uID0gbGF5b3V0Qm94LT5pc1Jl
cGxhY2VkKCk7CiAgICAgICAgICAgICBpZiAobmVlZHNXaWR0aENvbXB1dGF0aW9uKQpAQCAtMjU0
LDcgKzI1NCw3IEBAIHZvaWQgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVJbnRyaW5z
aWNXaWR0aEZvckZvcm1hdHRpbmdSb290KGNvbnN0IEJveCYKIHsKICAgICBBU1NFUlQoZm9ybWF0
dGluZ1Jvb3QuZXN0YWJsaXNoZXNGb3JtYXR0aW5nQ29udGV4dCgpKTsKIAotICAgIGNvbXB1dGVC
b3JkZXJBbmRQYWRkaW5nKGZvcm1hdHRpbmdSb290LCB1c2VkSG9yaXpvbnRhbFZhbHVlcyk7Cisg
ICAgY29tcHV0ZUJvcmRlckFuZFBhZGRpbmcoZm9ybWF0dGluZ1Jvb3QsIHVzZWRIb3Jpem9udGFs
VmFsdWVzLmNvbnN0cmFpbnRzKTsKICAgICBjb21wdXRlSG9yaXpvbnRhbE1hcmdpbihmb3JtYXR0
aW5nUm9vdCwgdXNlZEhvcml6b250YWxWYWx1ZXMpOwogCiAgICAgYXV0byBjb25zdHJhaW50cyA9
IEludHJpbnNpY1dpZHRoQ29uc3RyYWludHMgeyB9OwpAQCAtMzE2LDcgKzMxNiw3IEBAIHZvaWQg
SW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVXaWR0aEFuZEhlaWdodEZvclJlcGxhY2Vk
SW5saW5lQm94KGNvbnN0IEJvCiAgICAgQVNTRVJUKCFsYXlvdXRCb3guZXN0YWJsaXNoZXNGb3Jt
YXR0aW5nQ29udGV4dCgpKTsKICAgICBBU1NFUlQobGF5b3V0Qm94LnJlcGxhY2VkKCkpOwogCi0g
ICAgY29tcHV0ZUJvcmRlckFuZFBhZGRpbmcobGF5b3V0Qm94LCB1c2VkSG9yaXpvbnRhbFZhbHVl
cyk7CisgICAgY29tcHV0ZUJvcmRlckFuZFBhZGRpbmcobGF5b3V0Qm94LCB1c2VkSG9yaXpvbnRh
bFZhbHVlcy5jb25zdHJhaW50cyk7CiAgICAgY29tcHV0ZVdpZHRoQW5kTWFyZ2luKGxheW91dEJv
eCwgdXNlZEhvcml6b250YWxWYWx1ZXMpOwogICAgIGNvbXB1dGVIZWlnaHRBbmRNYXJnaW4obGF5
b3V0Qm94LCB1c2VkSG9yaXpvbnRhbFZhbHVlcywgdXNlZFZlcnRpY2FsVmFsdWVzKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC90YWJsZWZvcm1hdHRpbmcvVGFibGVGb3Jt
YXR0aW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvdGFibGVmb3JtYXR0aW5n
L1RhYmxlRm9ybWF0dGluZ0NvbnRleHQuY3BwCmluZGV4IDYyMTk5MDU0NDc4ZjMwZDQ4ODg2Nzcz
MTIxOTRiNmU2ZWI3YzE4MGYuLmIxZmZhZGFlZTlmY2U2NmRiYTliOWU5Yzc4NThjZTM2Mjc0MzM5
ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC90YWJsZWZvcm1hdHRpbmcvVGFi
bGVGb3JtYXR0aW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L3RhYmxl
Zm9ybWF0dGluZy9UYWJsZUZvcm1hdHRpbmdDb250ZXh0LmNwcApAQCAtOTksOSArOTksMTAgQEAg
dm9pZCBUYWJsZUZvcm1hdHRpbmdDb250ZXh0OjpsYXlvdXRJbkZsb3dDb250ZW50KEludmFsaWRh
dGlvblN0YXRlJiBpbnZhbGlkYXRpb24KIAogdm9pZCBUYWJsZUZvcm1hdHRpbmdDb250ZXh0Ojps
YXlvdXRUYWJsZUNlbGxCb3goY29uc3QgQm94JiBjZWxsTGF5b3V0Qm94LCBjb25zdCBUYWJsZUdy
aWQ6OkNvbHVtbiYgY29sdW1uLCBJbnZhbGlkYXRpb25TdGF0ZSYgaW52YWxpZGF0aW9uU3RhdGUp
CiB7Ci0gICAgYXV0byYgY2VsbERpc3BsYXlCb3ggPSBmb3JtYXR0aW5nU3RhdGUoKS5kaXNwbGF5
Qm94KGNlbGxMYXlvdXRCb3gpOwotICAgIGNvbXB1dGVCb3JkZXJBbmRQYWRkaW5nKGNlbGxMYXlv
dXRCb3gpOworICAgIGF1dG8gaG9yaXpvbnRhbENvbnN0cmFpbnRzID0gVXNlZEhvcml6b250YWxW
YWx1ZXM6OkNvbnN0cmFpbnRzIHsgZ2VvbWV0cnlGb3JCb3goKmNlbGxMYXlvdXRCb3guY29udGFp
bmluZ0Jsb2NrKCkpLmNvbnRlbnRCb3goKSB9OworICAgIGNvbXB1dGVCb3JkZXJBbmRQYWRkaW5n
KGNlbGxMYXlvdXRCb3gsIGhvcml6b250YWxDb25zdHJhaW50cyk7CiAgICAgLy8gTWFyZ2lucyBk
byBub3QgYXBwbHkgdG8gaW50ZXJuYWwgdGFibGUgZWxlbWVudHMuCisgICAgYXV0byYgY2VsbERp
c3BsYXlCb3ggPSBmb3JtYXR0aW5nU3RhdGUoKS5kaXNwbGF5Qm94KGNlbGxMYXlvdXRCb3gpOwog
ICAgIGNlbGxEaXNwbGF5Qm94LnNldEhvcml6b250YWxNYXJnaW4oeyB9KTsKICAgICBjZWxsRGlz
cGxheUJveC5zZXRIb3Jpem9udGFsQ29tcHV0ZWRNYXJnaW4oeyB9KTsKICAgICAvLyBEb24ndCBr
bm93IHRoZSBhY3R1YWwgcG9zaXRpb24geWV0Lgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386928</attachid>
            <date>2020-01-06 20:20:51 -0800</date>
            <delta_ts>2020-01-06 20:51:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205825-20200106202050.patch</filename>
            <type>text/plain</type>
            <size>17225</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0MTA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjQyMWQyNzg1Yzc4MmRj
MmNkMzM4ZmE3ZDQ4NjU1Y2JiZDk2OWVkZi4uNTBkZDBkNzI3OGU0ZjEyMDVmODM5YjA1ZmQ1YjM4
MmJjM2U4OWZkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIwLTAxLTA2ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ10gY29tcHV0ZUJvcmRl
ckFuZFBhZGRpbmcvY29tcHV0ZVdpZHRoQW5kTWFyZ2luL2NvbXB1dGVTdGF0aWNQb3NpdGlvbiBm
dW5jdGlvbnMgc2hvdWxkIHRha2UgVXNlZEhvcml6b250YWxWYWx1ZXM6OkNvbnN0cmFpbnRzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU4MjUKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU4MzUxMzk3PgorCisgICAgICAgIFJldmlld2VkIGJ5IEFu
dHRpIEtvaXZpc3RvLgorCisgICAgICAgIExldCdzIHBhc3MgaW4gdGhlIGhvcml6b250YWwgY29u
c3RyYWludHMgc28gdGhhdCB0aGUgY29tcHV0ZSogZnVuY3Rpb25zIGRvbid0IG5lZWQgdG8KKyAg
ICAgICAgYWNjZXNzIGNvbnRhaW5pbmcgYmxvY2sncyBnZW9tZXRyeS4KKworICAgICAgICAqIGxh
eW91dC9Gb3JtYXR0aW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZv
cm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlQm9yZGVyQW5kUGFkZGluZyk6CisgICAgICAgIChXZWJD
b3JlOjpMYXlvdXQ6OkZvcm1hdHRpbmdDb250ZXh0OjpsYXlvdXRPdXRPZkZsb3dDb250ZW50KToK
KyAgICAgICAgKiBsYXlvdXQvRm9ybWF0dGluZ0NvbnRleHQuaDoKKyAgICAgICAgKiBsYXlvdXQv
YmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpsYXlvdXRJbkZsb3dDb250ZW50
KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6bGF5
b3V0Rm9ybWF0dGluZ0NvbnRleHRSb290KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Qmxv
Y2tGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZVN0YXRpY0hvcml6b250YWxQb3NpdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVT
dGF0aWNQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGlu
Z0NvbnRleHQ6OmNvbXB1dGVXaWR0aEFuZE1hcmdpbik6CisgICAgICAgICogbGF5b3V0L2Jsb2Nr
Zm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0Lmg6CisgICAgICAgIChXZWJDb3JlOjpM
YXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVXaWR0aEFuZE1hcmdpbik6IERl
bGV0ZWQuCisgICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGlu
Z0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVGb3JtYXR0aW5n
Q29udGV4dDo6bGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRSb290KToKKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dDo6SW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVIb3Jpem9udGFsQW5kVmVy
dGljYWxHZW9tZXRyeSk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUZvcm1hdHRp
bmdDb250ZXh0Ojpjb21wdXRlZEludHJpbnNpY1dpZHRoQ29uc3RyYWludHMpOgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZUludHJpbnNp
Y1dpZHRoRm9yRm9ybWF0dGluZ1Jvb3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxp
bmVGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZVdpZHRoQW5kSGVpZ2h0Rm9yUmVwbGFjZWRJbmxp
bmVCb3gpOgorICAgICAgICAqIGxheW91dC90YWJsZWZvcm1hdHRpbmcvVGFibGVGb3JtYXR0aW5n
Q29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlRhYmxlRm9ybWF0dGluZ0Nv
bnRleHQ6OmxheW91dFRhYmxlQ2VsbEJveCk6CisKIDIwMjAtMDEtMDYgIFphbGFuIEJ1anRhcyAg
PHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXSBSZW1vdmUgcmVkdW5kYW50IFVzZWRW
ZXJ0aWNhbFZhbHVlczo6Q29uc3RyYWludHMoRGlzcGxheTo6Qm94KQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dC5jcHAKaW5kZXggZDMzMTY0Y2JjZDE4ODU4NzZhODU3
YWMxYTFmNTMzMzJmNTM3Y2I1My4uMDlhNGI0NWFhZDUxMTMwMTFhMjFiNmIwMDUxNzUzMzkzNDcy
YWVlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHQuY3BwCkBA
IC0xMzEsMTMgKzEzMSwxMSBAQCB2b2lkIEZvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlT3V0T2ZG
bG93VmVydGljYWxHZW9tZXRyeShjb25zdCBCb3gmIGxheW91dEJveCkKICAgICBkaXNwbGF5Qm94
LnNldFZlcnRpY2FsTWFyZ2luKHsgbm9uQ29sbGFwc2VkVmVydGljYWxNYXJnaW4sIHsgfSB9KTsK
IH0KIAotdm9pZCBGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZUJvcmRlckFuZFBhZGRpbmcoY29u
c3QgQm94JiBsYXlvdXRCb3gsIE9wdGlvbmFsPFVzZWRIb3Jpem9udGFsVmFsdWVzPiB1c2VkSG9y
aXpvbnRhbFZhbHVlcykKK3ZvaWQgRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVCb3JkZXJBbmRQ
YWRkaW5nKGNvbnN0IEJveCYgbGF5b3V0Qm94LCBjb25zdCBVc2VkSG9yaXpvbnRhbFZhbHVlczo6
Q29uc3RyYWludHMmIGhvcml6b250YWxDb25zdHJhaW50KQogewotICAgIGlmICghdXNlZEhvcml6
b250YWxWYWx1ZXMpCi0gICAgICAgIHVzZWRIb3Jpem9udGFsVmFsdWVzID0gVXNlZEhvcml6b250
YWxWYWx1ZXMgeyBHZW9tZXRyeTo6aW5GbG93SG9yaXpvbnRhbENvbnN0cmFpbnRzKGdlb21ldHJ5
Rm9yQm94KCpsYXlvdXRCb3guY29udGFpbmluZ0Jsb2NrKCkpKSB9OwogICAgIGF1dG8mIGRpc3Bs
YXlCb3ggPSBmb3JtYXR0aW5nU3RhdGUoKS5kaXNwbGF5Qm94KGxheW91dEJveCk7CiAgICAgZGlz
cGxheUJveC5zZXRCb3JkZXIoZ2VvbWV0cnkoKS5jb21wdXRlZEJvcmRlcihsYXlvdXRCb3gpKTsK
LSAgICBkaXNwbGF5Qm94LnNldFBhZGRpbmcoZ2VvbWV0cnkoKS5jb21wdXRlZFBhZGRpbmcobGF5
b3V0Qm94LCAqdXNlZEhvcml6b250YWxWYWx1ZXMpKTsKKyAgICBkaXNwbGF5Qm94LnNldFBhZGRp
bmcoZ2VvbWV0cnkoKS5jb21wdXRlZFBhZGRpbmcobGF5b3V0Qm94LCBVc2VkSG9yaXpvbnRhbFZh
bHVlcyB7IGhvcml6b250YWxDb25zdHJhaW50IH0pKTsKIH0KIAogdm9pZCBGb3JtYXR0aW5nQ29u
dGV4dDo6bGF5b3V0T3V0T2ZGbG93Q29udGVudChJbnZhbGlkYXRpb25TdGF0ZSYgaW52YWxpZGF0
aW9uU3RhdGUpCkBAIC0xNTEsNyArMTQ5LDggQEAgdm9pZCBGb3JtYXR0aW5nQ29udGV4dDo6bGF5
b3V0T3V0T2ZGbG93Q29udGVudChJbnZhbGlkYXRpb25TdGF0ZSYgaW52YWxpZGF0aW9uU3QKICAg
ICAgICAgaWYgKCFpbnZhbGlkYXRpb25TdGF0ZS5uZWVkc0xheW91dCgqb3V0T2ZGbG93Qm94KSkK
ICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIGNvbXB1dGVCb3JkZXJBbmRQYWRkaW5n
KCpvdXRPZkZsb3dCb3gpOworICAgICAgICBhdXRvIGNvbnN0cmFpbnRzID0gR2VvbWV0cnk6Omlu
Rmxvd0hvcml6b250YWxDb25zdHJhaW50cyhnZW9tZXRyeUZvckJveCgqb3V0T2ZGbG93Qm94LT5j
b250YWluaW5nQmxvY2soKSkpOworICAgICAgICBjb21wdXRlQm9yZGVyQW5kUGFkZGluZygqb3V0
T2ZGbG93Qm94LCBjb25zdHJhaW50cyk7CiAgICAgICAgIGNvbXB1dGVPdXRPZkZsb3dIb3Jpem9u
dGFsR2VvbWV0cnkoKm91dE9mRmxvd0JveCk7CiAgICAgICAgIGlmIChpczxDb250YWluZXI+KCpv
dXRPZkZsb3dCb3gpKSB7CiAgICAgICAgICAgICBhdXRvJiBvdXRPZkZsb3dSb290Q29udGFpbmVy
ID0gZG93bmNhc3Q8Q29udGFpbmVyPigqb3V0T2ZGbG93Qm94KTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvbGF5
b3V0L0Zvcm1hdHRpbmdDb250ZXh0LmgKaW5kZXggYzU5N2UzMjQ5OGYzMTk2NDQ5YzMzOGY4YThj
NmVlYmQ1NmI1ODhmMy4uMDk4YWQxOGE5OGM3MDAyZGNhMWE1YjAwOTllOTY2ZTU5MGIxNTc3NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0LmgKQEAgLTEwMCw3ICsx
MDAsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgY29uc3QgRm9ybWF0dGluZ1N0YXRlJiBmb3JtYXR0aW5n
U3RhdGUoKSBjb25zdCB7IHJldHVybiBtX2Zvcm1hdHRpbmdTdGF0ZTsgfQogICAgIEZvcm1hdHRp
bmdTdGF0ZSYgZm9ybWF0dGluZ1N0YXRlKCkgeyByZXR1cm4gbV9mb3JtYXR0aW5nU3RhdGU7IH0K
IAotICAgIHZvaWQgY29tcHV0ZUJvcmRlckFuZFBhZGRpbmcoY29uc3QgQm94JiwgT3B0aW9uYWw8
VXNlZEhvcml6b250YWxWYWx1ZXM+ID0gV1RGOjpudWxsb3B0KTsKKyAgICB2b2lkIGNvbXB1dGVC
b3JkZXJBbmRQYWRkaW5nKGNvbnN0IEJveCYsIGNvbnN0IFVzZWRIb3Jpem9udGFsVmFsdWVzOjpD
b25zdHJhaW50cyYpOwogCiAjaWZuZGVmIE5ERUJVRwogICAgIHZpcnR1YWwgdm9pZCB2YWxpZGF0
ZUdlb21ldHJ5Q29uc3RyYWludHNBZnRlckxheW91dCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0
aW5nQ29udGV4dC5jcHAKaW5kZXggNWExYTZiYjQ4OGE4ZjlhNjlhNTQyYjkwNWI0ZWNmNzU5MTE3
NmExZS4uOWRhNjc0MzNjODVhYjBiNThjM2I4MDgwOGQxYTRhMGQ2ZGMwZmZhYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdD
b250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Js
b2NrRm9ybWF0dGluZ0NvbnRleHQuY3BwCkBAIC0xMTAsOSArMTEwLDEwIEBAIHZvaWQgQmxvY2tG
b3JtYXR0aW5nQ29udGV4dDo6bGF5b3V0SW5GbG93Q29udGVudChJbnZhbGlkYXRpb25TdGF0ZSYg
aW52YWxpZGF0aW9uCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICB9CiAK
LSAgICAgICAgICAgIGNvbXB1dGVCb3JkZXJBbmRQYWRkaW5nKGxheW91dEJveCk7Ci0gICAgICAg
ICAgICBjb21wdXRlV2lkdGhBbmRNYXJnaW4obGF5b3V0Qm94KTsKLSAgICAgICAgICAgIGNvbXB1
dGVTdGF0aWNQb3NpdGlvbihmbG9hdGluZ0NvbnRleHQsIGxheW91dEJveCk7CisgICAgICAgICAg
ICBhdXRvIGhvcml6b250YWxDb25zdHJhaW50cyA9IEdlb21ldHJ5OjppbkZsb3dIb3Jpem9udGFs
Q29uc3RyYWludHMoZ2VvbWV0cnlGb3JCb3goKmxheW91dEJveC5jb250YWluaW5nQmxvY2soKSkp
OworICAgICAgICAgICAgY29tcHV0ZUJvcmRlckFuZFBhZGRpbmcobGF5b3V0Qm94LCBob3Jpem9u
dGFsQ29uc3RyYWludHMpOworICAgICAgICAgICAgY29tcHV0ZVdpZHRoQW5kTWFyZ2luKGxheW91
dEJveCwgaG9yaXpvbnRhbENvbnN0cmFpbnRzKTsKKyAgICAgICAgICAgIGNvbXB1dGVTdGF0aWNQ
b3NpdGlvbihmbG9hdGluZ0NvbnRleHQsIGxheW91dEJveCwgaG9yaXpvbnRhbENvbnN0cmFpbnRz
KTsKIAogICAgICAgICAgICAgaWYgKCFhcHBlbmROZXh0VG9MYXlvdXRRdWV1ZShsYXlvdXRCb3gs
IExheW91dERpcmVjdGlvbjo6Q2hpbGQpKQogICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtMTc1
LDE1ICsxNzYsMTggQEAgdm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpsYXlvdXRGb3JtYXR0
aW5nQ29udGV4dFJvb3QoRmxvYXRpbmdDb250ZXh0JiBmbG9hdGkKICAgICBBU1NFUlQobGF5b3V0
Qm94LmVzdGFibGlzaGVzRm9ybWF0dGluZ0NvbnRleHQoKSk7CiAgICAgLy8gU3RhcnQgbGF5aW5n
IG91dCB0aGlzIGZvcm1hdHRpbmcgcm9vdCBpbiB0aGUgZm9ybWF0dGluZyBjb250ZW54dCBpdCBs
aXZlcyBpbi4KICAgICBMT0dfV0lUSF9TVFJFQU0oRm9ybWF0dGluZ0NvbnRleHRMYXlvdXQsIHN0
cmVhbSA8PCAiW0NvbXB1dGVdIC0+IFtQb3NpdGlvbl1bQm9yZGVyXVtQYWRkaW5nXVtXaWR0aF1b
TWFyZ2luXSAtPiBmb3IgbGF5b3V0Qm94KCIgPDwgJmxheW91dEJveCA8PCAiKSIpOwotICAgIGNv
bXB1dGVCb3JkZXJBbmRQYWRkaW5nKGxheW91dEJveCk7Ci0gICAgY29tcHV0ZVN0YXRpY1ZlcnRp
Y2FsUG9zaXRpb24oZmxvYXRpbmdDb250ZXh0LCBsYXlvdXRCb3gpOwogCiAgICAgT3B0aW9uYWw8
TGF5b3V0VW5pdD4gdXNlZEF2YWlsYWJsZVdpZHRoRm9yRmxvYXRBdm9pZGVyOwogICAgIGF1dG8g
aG9yaXpvbnRhbEF2YWlsYWJsZVNwYWNlSXNDb25zdHJhaW5lZEJ5RXhpc3RpbmdGbG9hdHMgPSBs
YXlvdXRCb3guaXNGbG9hdEF2b2lkZXIoKSAmJiAhbGF5b3V0Qm94LmlzRmxvYXRpbmdQb3NpdGlv
bmVkKCk7CiAgICAgaWYgKGhvcml6b250YWxBdmFpbGFibGVTcGFjZUlzQ29uc3RyYWluZWRCeUV4
aXN0aW5nRmxvYXRzKQogICAgICAgICB1c2VkQXZhaWxhYmxlV2lkdGhGb3JGbG9hdEF2b2lkZXIg
PSB0aGlzLT51c2VkQXZhaWxhYmxlV2lkdGhGb3JGbG9hdEF2b2lkZXIoZmxvYXRpbmdDb250ZXh0
LCBsYXlvdXRCb3gpOwotICAgIGNvbXB1dGVXaWR0aEFuZE1hcmdpbihsYXlvdXRCb3gsIHVzZWRB
dmFpbGFibGVXaWR0aEZvckZsb2F0QXZvaWRlcik7Ci0gICAgY29tcHV0ZVN0YXRpY0hvcml6b250
YWxQb3NpdGlvbihsYXlvdXRCb3gpOworICAgIGF1dG8gY29udGFpbmluZ0Jsb2NrR2VvbWV0cnkg
PSBnZW9tZXRyeUZvckJveCgqbGF5b3V0Qm94LmNvbnRhaW5pbmdCbG9jaygpKTsKKyAgICBhdXRv
IGhvcml6b250YWxBdmFpbGFibGVTcGFjZSA9IHVzZWRBdmFpbGFibGVXaWR0aEZvckZsb2F0QXZv
aWRlci52YWx1ZU9yKGNvbnRhaW5pbmdCbG9ja0dlb21ldHJ5LmNvbnRlbnRCb3hXaWR0aCgpKTsK
KyAgICBhdXRvIGhvcml6b250YWxDb25zdHJhaW50cyA9IFVzZWRIb3Jpem9udGFsVmFsdWVzOjpD
b25zdHJhaW50cyB7IGNvbnRhaW5pbmdCbG9ja0dlb21ldHJ5LmNvbnRlbnRCb3hMZWZ0KCksIGhv
cml6b250YWxBdmFpbGFibGVTcGFjZSB9OworICAgIGNvbXB1dGVCb3JkZXJBbmRQYWRkaW5nKGxh
eW91dEJveCwgaG9yaXpvbnRhbENvbnN0cmFpbnRzKTsKKyAgICBjb21wdXRlU3RhdGljVmVydGlj
YWxQb3NpdGlvbihmbG9hdGluZ0NvbnRleHQsIGxheW91dEJveCk7CisgICAgY29tcHV0ZVdpZHRo
QW5kTWFyZ2luKGxheW91dEJveCwgaG9yaXpvbnRhbENvbnN0cmFpbnRzKTsKKyAgICBjb21wdXRl
U3RhdGljSG9yaXpvbnRhbFBvc2l0aW9uKGxheW91dEJveCwgaG9yaXpvbnRhbENvbnN0cmFpbnRz
KTsKICAgICBpZiAoaXM8Q29udGFpbmVyPihsYXlvdXRCb3gpKSB7CiAgICAgICAgIC8vIFN3aWNo
IG92ZXIgdG8gdGhlIG5ldyBmb3JtYXR0aW5nIGNvbnRleHQgKHRoZSBvbmUgdGhhdCB0aGUgcm9v
dCBjcmVhdGVzKS4KICAgICAgICAgYXV0byYgcm9vdENvbnRhaW5lciA9IGRvd25jYXN0PENvbnRh
aW5lcj4obGF5b3V0Qm94KTsKQEAgLTI0MiwxNiArMjQ2LDE1IEBAIHZvaWQgQmxvY2tGb3JtYXR0
aW5nQ29udGV4dDo6Y29tcHV0ZVN0YXRpY1ZlcnRpY2FsUG9zaXRpb24oY29uc3QgRmxvYXRpbmdD
b250ZXh0CiAgICAgICAgIGNvbXB1dGVFc3RpbWF0ZWRWZXJ0aWNhbFBvc2l0aW9uRm9yRm9ybWF0
dGluZ1Jvb3QobGF5b3V0Qm94KTsKIH0KIAotdm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpj
b21wdXRlU3RhdGljSG9yaXpvbnRhbFBvc2l0aW9uKGNvbnN0IEJveCYgbGF5b3V0Qm94KQordm9p
ZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlU3RhdGljSG9yaXpvbnRhbFBvc2l0aW9u
KGNvbnN0IEJveCYgbGF5b3V0Qm94LCBjb25zdCBVc2VkSG9yaXpvbnRhbFZhbHVlczo6Q29uc3Ry
YWludHMmIGhvcml6b250YWxDb25zdHJhaW50cykKIHsKLSAgICBhdXRvIHVzZWRIb3Jpem9udGFs
VmFsdWVzID0gVXNlZEhvcml6b250YWxWYWx1ZXMgeyBHZW9tZXRyeTo6aW5GbG93SG9yaXpvbnRh
bENvbnN0cmFpbnRzKGdlb21ldHJ5Rm9yQm94KCpsYXlvdXRCb3guY29udGFpbmluZ0Jsb2NrKCkp
KSB9OwotICAgIGZvcm1hdHRpbmdTdGF0ZSgpLmRpc3BsYXlCb3gobGF5b3V0Qm94KS5zZXRMZWZ0
KGdlb21ldHJ5KCkuc3RhdGljSG9yaXpvbnRhbFBvc2l0aW9uKGxheW91dEJveCwgdXNlZEhvcml6
b250YWxWYWx1ZXMpKTsKKyAgICBmb3JtYXR0aW5nU3RhdGUoKS5kaXNwbGF5Qm94KGxheW91dEJv
eCkuc2V0TGVmdChnZW9tZXRyeSgpLnN0YXRpY0hvcml6b250YWxQb3NpdGlvbihsYXlvdXRCb3gs
IFVzZWRIb3Jpem9udGFsVmFsdWVzIHsgaG9yaXpvbnRhbENvbnN0cmFpbnRzIH0pKTsKIH0KIAot
dm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlU3RhdGljUG9zaXRpb24oY29uc3Qg
RmxvYXRpbmdDb250ZXh0JiBmbG9hdGluZ0NvbnRleHQsIGNvbnN0IEJveCYgbGF5b3V0Qm94KQor
dm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlU3RhdGljUG9zaXRpb24oY29uc3Qg
RmxvYXRpbmdDb250ZXh0JiBmbG9hdGluZ0NvbnRleHQsIGNvbnN0IEJveCYgbGF5b3V0Qm94LCBj
b25zdCBVc2VkSG9yaXpvbnRhbFZhbHVlczo6Q29uc3RyYWludHMmIGhvcml6b250YWxDb25zdHJh
aW50cykKIHsKICAgICBjb21wdXRlU3RhdGljVmVydGljYWxQb3NpdGlvbihmbG9hdGluZ0NvbnRl
eHQsIGxheW91dEJveCk7Ci0gICAgY29tcHV0ZVN0YXRpY0hvcml6b250YWxQb3NpdGlvbihsYXlv
dXRCb3gpOworICAgIGNvbXB1dGVTdGF0aWNIb3Jpem9udGFsUG9zaXRpb24obGF5b3V0Qm94LCBo
b3Jpem9udGFsQ29uc3RyYWludHMpOwogfQogCiB2b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6
OmNvbXB1dGVFc3RpbWF0ZWRWZXJ0aWNhbFBvc2l0aW9uKGNvbnN0IEJveCYgbGF5b3V0Qm94KQpA
QCAtMzcyLDE4ICszNzUsMTAgQEAgdm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRl
UG9zaXRpb25Ub0F2b2lkRmxvYXRzKGNvbnN0IEZsb2F0aW5nQ29udGV4dCYKICAgICAgICAgZm9y
bWF0dGluZ1N0YXRlKCkuZGlzcGxheUJveChsYXlvdXRCb3gpLnNldFRvcExlZnQoKmFkanVzdGVk
UG9zaXRpb24pOwogfQogCi12b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVXaWR0
aEFuZE1hcmdpbihjb25zdCBCb3gmIGxheW91dEJveCwgT3B0aW9uYWw8TGF5b3V0VW5pdD4gdXNl
ZEF2YWlsYWJsZVdpZHRoKQordm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlV2lk
dGhBbmRNYXJnaW4oY29uc3QgQm94JiBsYXlvdXRCb3gsIGNvbnN0IFVzZWRIb3Jpem9udGFsVmFs
dWVzOjpDb25zdHJhaW50cyYgaG9yaXpvbnRhbENvbnN0cmFpbnRzKQogewotICAgIExheW91dFVu
aXQgYXZhaWxhYmxlV2lkdGg7Ci0gICAgYXV0byBjb250YWluaW5nQmxvY2tHZW9tZXRyeSA9IGdl
b21ldHJ5Rm9yQm94KCpsYXlvdXRCb3guY29udGFpbmluZ0Jsb2NrKCkpOwotICAgIGlmICh1c2Vk
QXZhaWxhYmxlV2lkdGgpCi0gICAgICAgIGF2YWlsYWJsZVdpZHRoID0gKnVzZWRBdmFpbGFibGVX
aWR0aDsKLSAgICBlbHNlCi0gICAgICAgIGF2YWlsYWJsZVdpZHRoID0gY29udGFpbmluZ0Jsb2Nr
R2VvbWV0cnkuY29udGVudEJveFdpZHRoKCk7Ci0gICAgYXV0byBjb25zdHJhaW50cyA9IFVzZWRI
b3Jpem9udGFsVmFsdWVzOjpDb25zdHJhaW50cyB7IGNvbnRhaW5pbmdCbG9ja0dlb21ldHJ5LmNv
bnRlbnRCb3hMZWZ0KCksIGF2YWlsYWJsZVdpZHRoIH07Ci0KICAgICBhdXRvIGNvbXB1dGUgPSBb
Jl0oT3B0aW9uYWw8TGF5b3V0VW5pdD4gdXNlZFdpZHRoKSAtPiBDb250ZW50V2lkdGhBbmRNYXJn
aW4gewotICAgICAgICBhdXRvIHVzZWRWYWx1ZXMgPSBVc2VkSG9yaXpvbnRhbFZhbHVlcyB7IGNv
bnN0cmFpbnRzLCB1c2VkV2lkdGgsIHsgfSB9OworICAgICAgICBhdXRvIHVzZWRWYWx1ZXMgPSBV
c2VkSG9yaXpvbnRhbFZhbHVlcyB7IGhvcml6b250YWxDb25zdHJhaW50cywgdXNlZFdpZHRoLCB7
IH0gfTsKICAgICAgICAgaWYgKGxheW91dEJveC5pc0luRmxvdygpKQogICAgICAgICAgICAgcmV0
dXJuIGdlb21ldHJ5KCkuaW5GbG93V2lkdGhBbmRNYXJnaW4obGF5b3V0Qm94LCB1c2VkVmFsdWVz
KTsKIApAQCAtMzk2LDYgKzM5MSw3IEBAIHZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Y29t
cHV0ZVdpZHRoQW5kTWFyZ2luKGNvbnN0IEJveCYgbGF5b3V0Qm94LCBPcHRpb25hCiAKICAgICBh
dXRvIGNvbnRlbnRXaWR0aEFuZE1hcmdpbiA9IGNvbXB1dGUoeyB9KTsKIAorICAgIGF1dG8gYXZh
aWxhYmxlV2lkdGggPSBob3Jpem9udGFsQ29uc3RyYWludHMud2lkdGg7CiAgICAgaWYgKGF1dG8g
bWF4V2lkdGggPSBnZW9tZXRyeSgpLmNvbXB1dGVkTWF4V2lkdGgobGF5b3V0Qm94LCBhdmFpbGFi
bGVXaWR0aCkpIHsKICAgICAgICAgYXV0byBtYXhXaWR0aEFuZE1hcmdpbiA9IGNvbXB1dGUobWF4
V2lkdGgpOwogICAgICAgICBpZiAoY29udGVudFdpZHRoQW5kTWFyZ2luLmNvbnRlbnRXaWR0aCA+
IG1heFdpZHRoQW5kTWFyZ2luLmNvbnRlbnRXaWR0aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5oIGIvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0
LmgKaW5kZXggMGZmNzlkNzk2YTEyZDJhMWRmMjUzYjgyZDg5OTQ5ZjkwZDE0ODhhMC4uOGUyMDJk
M2E5NWY4M2M1OTY4OWY1NmU3NjkxNTI4NzE1ZmY5ZmNkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdD
b250ZXh0LmgKQEAgLTU0LDEyICs1NCwxMiBAQCBwcml2YXRlOgogICAgIHZvaWQgbGF5b3V0Rm9y
bWF0dGluZ0NvbnRleHRSb290KEZsb2F0aW5nQ29udGV4dCYsIGNvbnN0IEJveCYsIEludmFsaWRh
dGlvblN0YXRlJik7CiAgICAgdm9pZCBwbGFjZUluRmxvd1Bvc2l0aW9uZWRDaGlsZHJlbihjb25z
dCBCb3gmKTsKIAotICAgIHZvaWQgY29tcHV0ZVdpZHRoQW5kTWFyZ2luKGNvbnN0IEJveCYsIE9w
dGlvbmFsPExheW91dFVuaXQ+IHVzZWRBdmFpbGFibGVXaWR0aCA9IHsgfSk7CisgICAgdm9pZCBj
b21wdXRlV2lkdGhBbmRNYXJnaW4oY29uc3QgQm94JiwgY29uc3QgVXNlZEhvcml6b250YWxWYWx1
ZXM6OkNvbnN0cmFpbnRzJik7CiAgICAgdm9pZCBjb21wdXRlSGVpZ2h0QW5kTWFyZ2luKGNvbnN0
IEJveCYpOwogCi0gICAgdm9pZCBjb21wdXRlU3RhdGljSG9yaXpvbnRhbFBvc2l0aW9uKGNvbnN0
IEJveCYpOworICAgIHZvaWQgY29tcHV0ZVN0YXRpY0hvcml6b250YWxQb3NpdGlvbihjb25zdCBC
b3gmLCBjb25zdCBVc2VkSG9yaXpvbnRhbFZhbHVlczo6Q29uc3RyYWludHMmKTsKICAgICB2b2lk
IGNvbXB1dGVTdGF0aWNWZXJ0aWNhbFBvc2l0aW9uKGNvbnN0IEZsb2F0aW5nQ29udGV4dCYsIGNv
bnN0IEJveCYpOwotICAgIHZvaWQgY29tcHV0ZVN0YXRpY1Bvc2l0aW9uKGNvbnN0IEZsb2F0aW5n
Q29udGV4dCYsIGNvbnN0IEJveCYpOworICAgIHZvaWQgY29tcHV0ZVN0YXRpY1Bvc2l0aW9uKGNv
bnN0IEZsb2F0aW5nQ29udGV4dCYsIGNvbnN0IEJveCYsIGNvbnN0IFVzZWRIb3Jpem9udGFsVmFs
dWVzOjpDb25zdHJhaW50cyYpOwogICAgIHZvaWQgY29tcHV0ZUZsb2F0aW5nUG9zaXRpb24oY29u
c3QgRmxvYXRpbmdDb250ZXh0JiwgY29uc3QgQm94Jik7CiAgICAgdm9pZCBjb21wdXRlUG9zaXRp
b25Ub0F2b2lkRmxvYXRzKGNvbnN0IEZsb2F0aW5nQ29udGV4dCYsIGNvbnN0IEJveCYpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVG
b3JtYXR0aW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0
dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAKaW5kZXggZGQ5ZTE0NDU2YzA3NTRhZWE5
Yzg2NGI5M2ViOTUwZWYxNTgyNzQ0My4uYTA3MDhlODFhMjIxM2E0NTA5YWUwZTM4ZTVkMTJkYWVk
ODkzODQ2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRp
bmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcApAQCAtMTM0LDcg
KzEzNCw3IEBAIHZvaWQgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OmxheW91dEZvcm1hdHRpbmdD
b250ZXh0Um9vdChjb25zdCBCb3gmIGZvcm1hdHRpbmdDCiB7CiAgICAgQVNTRVJUKGZvcm1hdHRp
bmdDb250ZXh0Um9vdC5pc0Zsb2F0aW5nUG9zaXRpb25lZCgpIHx8IGZvcm1hdHRpbmdDb250ZXh0
Um9vdC5pc0lubGluZUJsb2NrQm94KCkpOwogCi0gICAgY29tcHV0ZUJvcmRlckFuZFBhZGRpbmco
Zm9ybWF0dGluZ0NvbnRleHRSb290LCB1c2VkSG9yaXpvbnRhbFZhbHVlcyk7CisgICAgY29tcHV0
ZUJvcmRlckFuZFBhZGRpbmcoZm9ybWF0dGluZ0NvbnRleHRSb290LCB1c2VkSG9yaXpvbnRhbFZh
bHVlcy5jb25zdHJhaW50cyk7CiAgICAgY29tcHV0ZVdpZHRoQW5kTWFyZ2luKGZvcm1hdHRpbmdD
b250ZXh0Um9vdCwgdXNlZEhvcml6b250YWxWYWx1ZXMpOwogICAgIC8vIFN3aWNoIG92ZXIgdG8g
dGhlIG5ldyBmb3JtYXR0aW5nIGNvbnRleHQgKHRoZSBvbmUgdGhhdCB0aGUgcm9vdCBjcmVhdGVz
KS4KICAgICBpZiAoaXM8Q29udGFpbmVyPihmb3JtYXR0aW5nQ29udGV4dFJvb3QpKSB7CkBAIC0x
NTQsNyArMTU0LDcgQEAgdm9pZCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZUhvcml6
b250YWxBbmRWZXJ0aWNhbEdlb21ldHJ5KGNvbnN0IEJveCYgbGEKICAgICBpZiAoaXM8Q29udGFp
bmVyPihsYXlvdXRCb3gpKSB7CiAgICAgICAgIC8vIElubGluZSBjb250YWluZXJzICg8c3Bhbj4p
IGNhbid0IGdldCBzaXplZC9wb3NpdGlvbmVkIHlldC4gQXQgdGhpcyBwb2ludCB3ZSBjYW4gb25s
eSBjb21wdXRlIHRoZWlyIG1hcmdpbnMsIGJvcmRlcnMgYW5kIHBhZGRpbmdzLgogICAgICAgICBj
b21wdXRlSG9yaXpvbnRhbE1hcmdpbihsYXlvdXRCb3gsIHVzZWRIb3Jpem9udGFsVmFsdWVzKTsK
LSAgICAgICAgY29tcHV0ZUJvcmRlckFuZFBhZGRpbmcobGF5b3V0Qm94LCB1c2VkSG9yaXpvbnRh
bFZhbHVlcyk7CisgICAgICAgIGNvbXB1dGVCb3JkZXJBbmRQYWRkaW5nKGxheW91dEJveCwgdXNl
ZEhvcml6b250YWxWYWx1ZXMuY29uc3RyYWludHMpOwogICAgICAgICAvLyBJbmxpbmUgY29udGFp
bmVycyBoYXZlIDAgY29tcHV0ZWQgdmVydGljYWwgbWFyZ2lucy4KICAgICAgICAgZm9ybWF0dGlu
Z1N0YXRlKCkuZGlzcGxheUJveChsYXlvdXRCb3gpLnNldFZlcnRpY2FsTWFyZ2luKHsgeyB9LCB7
IH0gfSk7CiAgICAgICAgIHJldHVybjsKQEAgLTE2Miw3ICsxNjIsNyBAQCB2b2lkIElubGluZUZv
cm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlSG9yaXpvbnRhbEFuZFZlcnRpY2FsR2VvbWV0cnkoY29u
c3QgQm94JiBsYQogCiAgICAgaWYgKGxheW91dEJveC5pc1JlcGxhY2VkKCkpIHsKICAgICAgICAg
Ly8gUmVwbGFjZWQgZWxlbWVudHMgKGltZywgdmlkZW8pIGNhbiBiZSBzaXplZCBidXQgbm90IHll
dCBwb3NpdGlvbmVkLgotICAgICAgICBjb21wdXRlQm9yZGVyQW5kUGFkZGluZyhsYXlvdXRCb3gs
IHVzZWRIb3Jpem9udGFsVmFsdWVzKTsKKyAgICAgICAgY29tcHV0ZUJvcmRlckFuZFBhZGRpbmco
bGF5b3V0Qm94LCB1c2VkSG9yaXpvbnRhbFZhbHVlcy5jb25zdHJhaW50cyk7CiAgICAgICAgIGNv
bXB1dGVXaWR0aEFuZE1hcmdpbihsYXlvdXRCb3gsIHVzZWRIb3Jpem9udGFsVmFsdWVzKTsKICAg
ICAgICAgY29tcHV0ZUhlaWdodEFuZE1hcmdpbihsYXlvdXRCb3gsIHVzZWRIb3Jpem9udGFsVmFs
dWVzLCB1c2VkVmVydGljYWxWYWx1ZXMpOwogICAgICAgICByZXR1cm47CkBAIC0xOTcsNyArMTk3
LDcgQEAgRm9ybWF0dGluZ0NvbnRleHQ6OkludHJpbnNpY1dpZHRoQ29uc3RyYWludHMgSW5saW5l
Rm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVkSW4KICAgICAgICAgICAgIGZvcm1hdHRpbmdDb250
ZXh0Um9vdExpc3QuYXBwZW5kKGxheW91dEJveCk7CiAgICAgICAgICAgICBjb21wdXRlSW50cmlu
c2ljV2lkdGhGb3JGb3JtYXR0aW5nUm9vdCgqbGF5b3V0Qm94LCB1c2VkSG9yaXpvbnRhbFZhbHVl
cyk7CiAgICAgICAgIH0gZWxzZSBpZiAobGF5b3V0Qm94LT5pc1JlcGxhY2VkKCkgfHwgaXM8Q29u
dGFpbmVyPigqbGF5b3V0Qm94KSkgewotICAgICAgICAgICAgY29tcHV0ZUJvcmRlckFuZFBhZGRp
bmcoKmxheW91dEJveCwgdXNlZEhvcml6b250YWxWYWx1ZXMpOworICAgICAgICAgICAgY29tcHV0
ZUJvcmRlckFuZFBhZGRpbmcoKmxheW91dEJveCwgdXNlZEhvcml6b250YWxWYWx1ZXMuY29uc3Ry
YWludHMpOwogICAgICAgICAgICAgLy8gaW5saW5lLWJsb2NrIGFuZCByZXBsYWNlZC4KICAgICAg
ICAgICAgIGF1dG8gbmVlZHNXaWR0aENvbXB1dGF0aW9uID0gbGF5b3V0Qm94LT5pc1JlcGxhY2Vk
KCk7CiAgICAgICAgICAgICBpZiAobmVlZHNXaWR0aENvbXB1dGF0aW9uKQpAQCAtMjU0LDcgKzI1
NCw3IEBAIHZvaWQgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVJbnRyaW5zaWNXaWR0
aEZvckZvcm1hdHRpbmdSb290KGNvbnN0IEJveCYKIHsKICAgICBBU1NFUlQoZm9ybWF0dGluZ1Jv
b3QuZXN0YWJsaXNoZXNGb3JtYXR0aW5nQ29udGV4dCgpKTsKIAotICAgIGNvbXB1dGVCb3JkZXJB
bmRQYWRkaW5nKGZvcm1hdHRpbmdSb290LCB1c2VkSG9yaXpvbnRhbFZhbHVlcyk7CisgICAgY29t
cHV0ZUJvcmRlckFuZFBhZGRpbmcoZm9ybWF0dGluZ1Jvb3QsIHVzZWRIb3Jpem9udGFsVmFsdWVz
LmNvbnN0cmFpbnRzKTsKICAgICBjb21wdXRlSG9yaXpvbnRhbE1hcmdpbihmb3JtYXR0aW5nUm9v
dCwgdXNlZEhvcml6b250YWxWYWx1ZXMpOwogCiAgICAgYXV0byBjb25zdHJhaW50cyA9IEludHJp
bnNpY1dpZHRoQ29uc3RyYWludHMgeyB9OwpAQCAtMzE2LDcgKzMxNiw3IEBAIHZvaWQgSW5saW5l
Rm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVXaWR0aEFuZEhlaWdodEZvclJlcGxhY2VkSW5saW5l
Qm94KGNvbnN0IEJvCiAgICAgQVNTRVJUKCFsYXlvdXRCb3guZXN0YWJsaXNoZXNGb3JtYXR0aW5n
Q29udGV4dCgpKTsKICAgICBBU1NFUlQobGF5b3V0Qm94LnJlcGxhY2VkKCkpOwogCi0gICAgY29t
cHV0ZUJvcmRlckFuZFBhZGRpbmcobGF5b3V0Qm94LCB1c2VkSG9yaXpvbnRhbFZhbHVlcyk7Cisg
ICAgY29tcHV0ZUJvcmRlckFuZFBhZGRpbmcobGF5b3V0Qm94LCB1c2VkSG9yaXpvbnRhbFZhbHVl
cy5jb25zdHJhaW50cyk7CiAgICAgY29tcHV0ZVdpZHRoQW5kTWFyZ2luKGxheW91dEJveCwgdXNl
ZEhvcml6b250YWxWYWx1ZXMpOwogICAgIGNvbXB1dGVIZWlnaHRBbmRNYXJnaW4obGF5b3V0Qm94
LCB1c2VkSG9yaXpvbnRhbFZhbHVlcywgdXNlZFZlcnRpY2FsVmFsdWVzKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC90YWJsZWZvcm1hdHRpbmcvVGFibGVGb3JtYXR0aW5n
Q29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvdGFibGVmb3JtYXR0aW5nL1RhYmxl
Rm9ybWF0dGluZ0NvbnRleHQuY3BwCmluZGV4IGNjYWU0Nzg0NDY3MWIyZmZlZGQ5M2JkMDVlMzlj
NmE1OTdkYWY0ZWMuLjQ3ZGJiOTdlZmZmMjk4MjgwYjIwMzQwZDI5ODYxNjJjZTBkZmU2MzAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC90YWJsZWZvcm1hdHRpbmcvVGFibGVGb3Jt
YXR0aW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L3RhYmxlZm9ybWF0
dGluZy9UYWJsZUZvcm1hdHRpbmdDb250ZXh0LmNwcApAQCAtOTksOSArOTksMTAgQEAgdm9pZCBU
YWJsZUZvcm1hdHRpbmdDb250ZXh0OjpsYXlvdXRJbkZsb3dDb250ZW50KEludmFsaWRhdGlvblN0
YXRlJiBpbnZhbGlkYXRpb24KIAogdm9pZCBUYWJsZUZvcm1hdHRpbmdDb250ZXh0OjpsYXlvdXRU
YWJsZUNlbGxCb3goY29uc3QgQm94JiBjZWxsTGF5b3V0Qm94LCBjb25zdCBUYWJsZUdyaWQ6OkNv
bHVtbiYgY29sdW1uLCBJbnZhbGlkYXRpb25TdGF0ZSYgaW52YWxpZGF0aW9uU3RhdGUpCiB7Ci0g
ICAgYXV0byYgY2VsbERpc3BsYXlCb3ggPSBmb3JtYXR0aW5nU3RhdGUoKS5kaXNwbGF5Qm94KGNl
bGxMYXlvdXRCb3gpOwotICAgIGNvbXB1dGVCb3JkZXJBbmRQYWRkaW5nKGNlbGxMYXlvdXRCb3gp
OworICAgIGF1dG8gaG9yaXpvbnRhbENvbnN0cmFpbnRzID0gR2VvbWV0cnk6OmluRmxvd0hvcml6
b250YWxDb25zdHJhaW50cyhnZW9tZXRyeUZvckJveCgqY2VsbExheW91dEJveC5jb250YWluaW5n
QmxvY2soKSkpOworICAgIGNvbXB1dGVCb3JkZXJBbmRQYWRkaW5nKGNlbGxMYXlvdXRCb3gsIGhv
cml6b250YWxDb25zdHJhaW50cyk7CiAgICAgLy8gTWFyZ2lucyBkbyBub3QgYXBwbHkgdG8gaW50
ZXJuYWwgdGFibGUgZWxlbWVudHMuCisgICAgYXV0byYgY2VsbERpc3BsYXlCb3ggPSBmb3JtYXR0
aW5nU3RhdGUoKS5kaXNwbGF5Qm94KGNlbGxMYXlvdXRCb3gpOwogICAgIGNlbGxEaXNwbGF5Qm94
LnNldEhvcml6b250YWxNYXJnaW4oeyB9KTsKICAgICBjZWxsRGlzcGxheUJveC5zZXRIb3Jpem9u
dGFsQ29tcHV0ZWRNYXJnaW4oeyB9KTsKICAgICAvLyBEb24ndCBrbm93IHRoZSBhY3R1YWwgcG9z
aXRpb24geWV0Lgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>