<?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>202091</bug_id>
          
          <creation_ts>2019-09-22 07:33:01 -0700</creation_ts>
          <short_desc>[LFC][IFC] Pass in the Used*Values to inline layout functions.</short_desc>
          <delta_ts>2019-09-23 09:14:30 -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>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>1573192</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2019-09-22 07:33:01 -0700</bug_when>
    <thetext>Only the top level layout functions should construct them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573193</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-09-22 07:33:24 -0700</bug_when>
    <thetext>&lt;rdar://problem/55601987&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573194</commentid>
    <comment_count>2</comment_count>
      <attachid>379346</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-09-22 07:51:38 -0700</bug_when>
    <thetext>Created attachment 379346
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573320</commentid>
    <comment_count>3</comment_count>
      <attachid>379346</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-23 09:14:29 -0700</bug_when>
    <thetext>Comment on attachment 379346
Patch

Clearing flags on attachment: 379346

Committed r250235: &lt;https://trac.webkit.org/changeset/250235&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573321</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-23 09:14:30 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379346</attachid>
            <date>2019-09-22 07:51:38 -0700</date>
            <delta_ts>2019-09-23 09:14:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202091-20190922075130.patch</filename>
            <type>text/plain</type>
            <size>23155</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwMTI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjE0NjBiMThhODhmZGM4
NmM4YjM4YzRiODE4ZGFhM2M0YTQ1NTNlOC4uM2E4MmMwNjk3YmJjYWRiNGM3YzZmNjU5YmRkMjE1
ODc1NTAyNjExNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE5LTA5LTIyICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bSUZDXSBQYXNzIGlu
IHRoZSBVc2VkKlZhbHVlcyB0byBpbmxpbmUgbGF5b3V0IGZ1bmN0aW9ucy4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjA5MQorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vNTU2MDE5ODc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgT25seSB0aGUgdG9wIGxldmVsIGxheW91dCBmdW5jdGlvbnMgc2hvdWxk
IGdlbmVyYXRlIGNvbnN0cmFpbnQgdmFsdWVzLgorCisgICAgICAgICogbGF5b3V0L2lubGluZWZv
cm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TGF5b3V0OjpJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6bGF5b3V0SW5GbG93Q29udGVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUZvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRl
ZEludHJpbnNpY1dpZHRoQ29uc3RyYWludHMpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJ
bmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZU1hcmdpbkJvcmRlckFuZFBhZGRpbmdGb3JJ
bmxpbmVDb250YWluZXIpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVGb3JtYXR0
aW5nQ29udGV4dDo6Y29tcHV0ZUludHJpbnNpY1dpZHRoRm9yRm9ybWF0dGluZ1Jvb3QpOgorICAg
ICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZUhv
cml6b250YWxNYXJnaW4pOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVGb3JtYXR0
aW5nQ29udGV4dDo6Y29tcHV0ZVdpZHRoQW5kTWFyZ2luKToKKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dDo6SW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVIZWlnaHRBbmRNYXJnaW4pOgor
ICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6bGF5b3V0
Rm9ybWF0dGluZ0NvbnRleHRSb290KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5l
Rm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVXaWR0aEFuZEhlaWdodEZvclJlcGxhY2VkSW5saW5l
Qm94KToKKyAgICAgICAgKiBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5n
Q29udGV4dC5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVGb3JtYXR0aW5nQ29u
dGV4dDo6SW5saW5lTGF5b3V0Ojp3aWR0aENvbnN0cmFpbnQgY29uc3QpOgorICAgICAgICAqIGxh
eW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0TGluZUxheW91dC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUZvcm1hdHRpbmdDb250ZXh0OjpJ
bmxpbmVMYXlvdXQ6OklubGluZUxheW91dCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6Oklu
bGluZUZvcm1hdHRpbmdDb250ZXh0OjpJbmxpbmVMYXlvdXQ6OmxheW91dCk6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OklubGluZUZvcm1hdHRpbmdDb250ZXh0OjpJbmxpbmVMYXlvdXQ6OmNv
bXB1dGVkSW50cmluc2ljV2lkdGggY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJ
bmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6SW5saW5lTGF5b3V0OjpjcmVhdGVEaXNwbGF5UnVucyk6
CisKIDIwMTktMDktMjAgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbTEZDXSBMYXlvdXRDb250ZXh0OjptX2Zvcm1hdHRpbmdDb250ZXh0Um9vdExpc3RGb3JMYXlv
dXQgc2hvdWxkIGJlIGEgV2Vha0hhc2hTZXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0
LmNwcAppbmRleCBjNjZmZDA3YWVhNTE5ZDkxN2NiYjRjMDViYzc5OGMzNjE2YjJmYTMxLi4wOTk0
ODU0YjkzNDYyYTRhZjcwMzMzMjVmYzUzOTNlMTYxZDg5Mjg0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9y
bWF0dGluZ0NvbnRleHQuY3BwCkBAIC02OSwxNiArNjksMTkgQEAgdm9pZCBJbmxpbmVGb3JtYXR0
aW5nQ29udGV4dDo6bGF5b3V0SW5GbG93Q29udGVudCgpCiAgICAgICAgIHJldHVybjsKIAogICAg
IExPR19XSVRIX1NUUkVBTShGb3JtYXR0aW5nQ29udGV4dExheW91dCwgc3RyZWFtIDw8ICJbU3Rh
cnRdIC0+IGlubGluZSBmb3JtYXR0aW5nIGNvbnRleHQgLT4gZm9ybWF0dGluZyByb290KCIgPDwg
JnJvb3QoKSA8PCAiKSIpOwotICAgIGF1dG8gdXNlZFZhbHVlcyA9IFVzZWRIb3Jpem9udGFsVmFs
dWVzIHsgVXNlZEhvcml6b250YWxWYWx1ZXM6OkNvbnN0cmFpbnRzIHsgZ2VvbWV0cnlGb3JCb3go
cm9vdCgpKSB9IH07CisgICAgYXV0byYgcm9vdEdlb21ldHJ5ID0gZ2VvbWV0cnlGb3JCb3gocm9v
dCgpKTsKKyAgICBhdXRvIHVzZWRIb3Jpem9udGFsVmFsdWVzID0gVXNlZEhvcml6b250YWxWYWx1
ZXMgeyBVc2VkSG9yaXpvbnRhbFZhbHVlczo6Q29uc3RyYWludHMgeyByb290R2VvbWV0cnkgfSB9
OworICAgIGF1dG8gdXNlZFZlcnRpY2FsVmFsdWVzID0gVXNlZFZlcnRpY2FsVmFsdWVzIHsgVXNl
ZFZlcnRpY2FsVmFsdWVzOjpDb25zdHJhaW50cyB7IHJvb3RHZW9tZXRyeSB9IH07CiAgICAgYXV0
byogbGF5b3V0Qm94ID0gcm9vdCgpLmZpcnN0SW5GbG93T3JGbG9hdGluZ0NoaWxkKCk7Ci0gICAg
Ly8gQ29tcHV0ZSB3aWR0aC9oZWlnaHQgZm9yIG5vbi10ZXh0IGNvbnRlbnQgYW5kIG1hcmdpbi9i
b3JkZXIvcGFkZGluZyBmb3IgaW5saW5lIGNvbnRhaW5lcnMuCisgICAgLy8gMS4gVmlzaXQgZWFj
aCBpbmxpbmUgYm94IGFuZCBwYXJ0aWFsbHkgY29tcHV0ZSB0aGVpciBnZW9tZXRyeSAobWFyZ2lu
cywgcGFkZGluZ3MgYW5kIGJvcmRlcnMpLgorICAgIC8vIDIuIENvbGxlY3QgdGhlIGlubGluZSBp
dGVtcyAoZmxhdHRlbiB0aGUgdGhlIGxheW91dCB0cmVlKSBhbmQgcGxhY2UgdGhlbSBvbiBsaW5l
cyBpbiBiaWRpcmVjdGlvbmFsIG9yZGVyLiAKICAgICB3aGlsZSAobGF5b3V0Qm94KSB7CiAgICAg
ICAgIGlmIChsYXlvdXRCb3gtPmVzdGFibGlzaGVzRm9ybWF0dGluZ0NvbnRleHQoKSkKLSAgICAg
ICAgICAgIGxheW91dEZvcm1hdHRpbmdDb250ZXh0Um9vdCgqbGF5b3V0Qm94LCB1c2VkVmFsdWVz
KTsKKyAgICAgICAgICAgIGxheW91dEZvcm1hdHRpbmdDb250ZXh0Um9vdCgqbGF5b3V0Qm94LCB1
c2VkSG9yaXpvbnRhbFZhbHVlcywgdXNlZFZlcnRpY2FsVmFsdWVzKTsKICAgICAgICAgZWxzZSBp
ZiAoaXM8Q29udGFpbmVyPigqbGF5b3V0Qm94KSkKLSAgICAgICAgICAgIGNvbXB1dGVNYXJnaW5C
b3JkZXJBbmRQYWRkaW5nRm9ySW5saW5lQ29udGFpbmVyKGRvd25jYXN0PENvbnRhaW5lcj4oKmxh
eW91dEJveCksIHVzZWRWYWx1ZXMpOworICAgICAgICAgICAgY29tcHV0ZU1hcmdpbkJvcmRlckFu
ZFBhZGRpbmdGb3JJbmxpbmVDb250YWluZXIoZG93bmNhc3Q8Q29udGFpbmVyPigqbGF5b3V0Qm94
KSwgdXNlZEhvcml6b250YWxWYWx1ZXMpOwogICAgICAgICBlbHNlIGlmIChsYXlvdXRCb3gtPmlz
UmVwbGFjZWQoKSkKLSAgICAgICAgICAgIGNvbXB1dGVXaWR0aEFuZEhlaWdodEZvclJlcGxhY2Vk
SW5saW5lQm94KCpsYXlvdXRCb3gsIHVzZWRWYWx1ZXMpOworICAgICAgICAgICAgY29tcHV0ZVdp
ZHRoQW5kSGVpZ2h0Rm9yUmVwbGFjZWRJbmxpbmVCb3goKmxheW91dEJveCwgdXNlZEhvcml6b250
YWxWYWx1ZXMsIHVzZWRWZXJ0aWNhbFZhbHVlcyk7CiAgICAgICAgIGVsc2UgewogICAgICAgICAg
ICAgQVNTRVJUKGxheW91dEJveC0+aXNJbmxpbmVMZXZlbEJveCgpKTsKICAgICAgICAgICAgIGlu
aXRpYWxpemVNYXJnaW5Cb3JkZXJBbmRQYWRkaW5nRm9yR2VuZXJpY0lubGluZUJveCgqbGF5b3V0
Qm94KTsKQEAgLTkxLDcgKzk0LDcgQEAgdm9pZCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6bGF5
b3V0SW5GbG93Q29udGVudCgpCiAgICAgZm9ybWF0dGluZ1N0YXRlKCkuaW5saW5lUnVucygpLmNs
ZWFyKCk7CiAKICAgICBjb2xsZWN0SW5saW5lQ29udGVudCgpOwotICAgIElubGluZUxheW91dCgq
dGhpcykubGF5b3V0KGZvcm1hdHRpbmdTdGF0ZSgpLmlubGluZUl0ZW1zKCksIHVzZWRWYWx1ZXMu
Y29uc3RyYWludHMud2lkdGgpOworICAgIElubGluZUxheW91dCgqdGhpcywgdXNlZEhvcml6b250
YWxWYWx1ZXMpLmxheW91dChmb3JtYXR0aW5nU3RhdGUoKS5pbmxpbmVJdGVtcygpKTsKICAgICBM
T0dfV0lUSF9TVFJFQU0oRm9ybWF0dGluZ0NvbnRleHRMYXlvdXQsIHN0cmVhbSA8PCAiW0VuZF0g
LT4gaW5saW5lIGZvcm1hdHRpbmcgY29udGV4dCAtPiBmb3JtYXR0aW5nIHJvb3QoIiA8PCAmcm9v
dCgpIDw8ICIpIik7CiB9CiAKQEAgLTEwNywyMSArMTEwLDIxIEBAIEZvcm1hdHRpbmdDb250ZXh0
OjpJbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzIElubGluZUZvcm1hdHRpbmdDb250ZXh0Ojpjb21w
dXRlZEluCiAgICAgfQogCiAgICAgVmVjdG9yPGNvbnN0IEJveCo+IGZvcm1hdHRpbmdDb250ZXh0
Um9vdExpc3Q7Ci0gICAgYXV0byB1c2VkVmFsdWVzID0gVXNlZEhvcml6b250YWxWYWx1ZXMgeyBV
c2VkSG9yaXpvbnRhbFZhbHVlczo6Q29uc3RyYWludHMgeyB7IH0sIHsgfSB9IH07CisgICAgYXV0
byB1c2VkSG9yaXpvbnRhbFZhbHVlcyA9IFVzZWRIb3Jpem9udGFsVmFsdWVzIHsgVXNlZEhvcml6
b250YWxWYWx1ZXM6OkNvbnN0cmFpbnRzIHsgeyB9LCB7IH0gfSB9OwogICAgIGF1dG8qIGxheW91
dEJveCA9IHJvb3QoKS5maXJzdEluRmxvd09yRmxvYXRpbmdDaGlsZCgpOwogICAgIHdoaWxlIChs
YXlvdXRCb3gpIHsKICAgICAgICAgaWYgKGxheW91dEJveC0+ZXN0YWJsaXNoZXNGb3JtYXR0aW5n
Q29udGV4dCgpKSB7CiAgICAgICAgICAgICBmb3JtYXR0aW5nQ29udGV4dFJvb3RMaXN0LmFwcGVu
ZChsYXlvdXRCb3gpOwotICAgICAgICAgICAgY29tcHV0ZUludHJpbnNpY1dpZHRoRm9yRm9ybWF0
dGluZ1Jvb3QoKmxheW91dEJveCk7CisgICAgICAgICAgICBjb21wdXRlSW50cmluc2ljV2lkdGhG
b3JGb3JtYXR0aW5nUm9vdCgqbGF5b3V0Qm94LCB1c2VkSG9yaXpvbnRhbFZhbHVlcyk7CiAgICAg
ICAgIH0gZWxzZSBpZiAobGF5b3V0Qm94LT5pc1JlcGxhY2VkKCkgfHwgaXM8Q29udGFpbmVyPigq
bGF5b3V0Qm94KSkgewotICAgICAgICAgICAgY29tcHV0ZUJvcmRlckFuZFBhZGRpbmcoKmxheW91
dEJveCwgdXNlZFZhbHVlcyk7CisgICAgICAgICAgICBjb21wdXRlQm9yZGVyQW5kUGFkZGluZygq
bGF5b3V0Qm94LCB1c2VkSG9yaXpvbnRhbFZhbHVlcyk7CiAgICAgICAgICAgICAvLyBpbmxpbmUt
YmxvY2sgYW5kIHJlcGxhY2VkLgogICAgICAgICAgICAgYXV0byBuZWVkc1dpZHRoQ29tcHV0YXRp
b24gPSBsYXlvdXRCb3gtPmlzUmVwbGFjZWQoKTsKICAgICAgICAgICAgIGlmIChuZWVkc1dpZHRo
Q29tcHV0YXRpb24pCi0gICAgICAgICAgICAgICAgY29tcHV0ZVdpZHRoQW5kTWFyZ2luKCpsYXlv
dXRCb3gsIHVzZWRWYWx1ZXMpOworICAgICAgICAgICAgICAgIGNvbXB1dGVXaWR0aEFuZE1hcmdp
bigqbGF5b3V0Qm94LCB1c2VkSG9yaXpvbnRhbFZhbHVlcyk7CiAgICAgICAgICAgICBlbHNlIHsK
ICAgICAgICAgICAgICAgICAvLyBTaW1wbGUgaW5saW5lIGNvbnRhaW5lciB3aXRoIG5vIGludHJp
bnNpYyB3aWR0aCA8c3Bhbj4uCi0gICAgICAgICAgICAgICAgY29tcHV0ZUhvcml6b250YWxNYXJn
aW4oKmxheW91dEJveCwgdXNlZFZhbHVlcyk7CisgICAgICAgICAgICAgICAgY29tcHV0ZUhvcml6
b250YWxNYXJnaW4oKmxheW91dEJveCwgdXNlZEhvcml6b250YWxWYWx1ZXMpOwogICAgICAgICAg
ICAgfQogICAgICAgICB9CiAgICAgICAgIGxheW91dEJveCA9IG5leHRJblByZU9yZGVyKCpsYXlv
dXRCb3gsIHJvb3QoKSk7CkBAIC0xMzcsNyArMTQwLDggQEAgRm9ybWF0dGluZ0NvbnRleHQ6Oklu
dHJpbnNpY1dpZHRoQ29uc3RyYWludHMgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVk
SW4KICAgICAgICAgICAgIGF1dG8gY29udGVudFdpZHRoID0gKGF2YWlsYWJsZVdpZHRoID8gaW50
cmluc2ljV2lkdGhzLT5tYXhpbXVtIDogaW50cmluc2ljV2lkdGhzLT5taW5pbXVtKSAtIGRpc3Bs
YXlCb3guaG9yaXpvbnRhbE1hcmdpbkJvcmRlckFuZFBhZGRpbmcoKTsKICAgICAgICAgICAgIGRp
c3BsYXlCb3guc2V0Q29udGVudEJveFdpZHRoKGNvbnRlbnRXaWR0aCk7CiAgICAgICAgIH0KLSAg
ICAgICAgcmV0dXJuIElubGluZUxheW91dCgqdGhpcykuY29tcHV0ZWRJbnRyaW5zaWNXaWR0aChm
b3JtYXR0aW5nU3RhdGUoKS5pbmxpbmVJdGVtcygpLCBhdmFpbGFibGVXaWR0aCk7CisgICAgICAg
IGF1dG8gdXNlZEhvcml6b250YWxWYWx1ZXMgPSBVc2VkSG9yaXpvbnRhbFZhbHVlcyB7IFVzZWRI
b3Jpem9udGFsVmFsdWVzOjpDb25zdHJhaW50cyB7IHsgfSwgYXZhaWxhYmxlV2lkdGggfSB9Owor
ICAgICAgICByZXR1cm4gSW5saW5lTGF5b3V0KCp0aGlzLCB1c2VkSG9yaXpvbnRhbFZhbHVlcyku
Y29tcHV0ZWRJbnRyaW5zaWNXaWR0aChmb3JtYXR0aW5nU3RhdGUoKS5pbmxpbmVJdGVtcygpKTsK
ICAgICB9OwogCiAgICAgYXV0byBjb25zdHJhaW50cyA9IGdlb21ldHJ5KCkuY29uc3RyYWluQnlN
aW5NYXhXaWR0aChyb290KCksIHsgbWF4aW11bUxpbmVXaWR0aCgwKSwgbWF4aW11bUxpbmVXaWR0
aChMYXlvdXRVbml0OjptYXgoKSkgfSk7CkBAIC0xNTYsMjEgKzE2MCwyMCBAQCB2b2lkIElubGlu
ZUZvcm1hdHRpbmdDb250ZXh0Ojppbml0aWFsaXplTWFyZ2luQm9yZGVyQW5kUGFkZGluZ0Zvckdl
bmVyaWNJbmxpbmVCbwogICAgIGRpc3BsYXlCb3guc2V0UGFkZGluZyh7IH0pOwogfQogCi12b2lk
IElubGluZUZvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlTWFyZ2luQm9yZGVyQW5kUGFkZGluZ0Zv
cklubGluZUNvbnRhaW5lcihjb25zdCBDb250YWluZXImIGNvbnRhaW5lciwgVXNlZEhvcml6b250
YWxWYWx1ZXMgdXNlZFZhbHVlcykKK3ZvaWQgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1
dGVNYXJnaW5Cb3JkZXJBbmRQYWRkaW5nRm9ySW5saW5lQ29udGFpbmVyKGNvbnN0IENvbnRhaW5l
ciYgY29udGFpbmVyLCBVc2VkSG9yaXpvbnRhbFZhbHVlcyB1c2VkSG9yaXpvbnRhbFZhbHVlcykK
IHsKLSAgICBjb21wdXRlSG9yaXpvbnRhbE1hcmdpbihjb250YWluZXIsIHVzZWRWYWx1ZXMpOwot
ICAgIGNvbXB1dGVCb3JkZXJBbmRQYWRkaW5nKGNvbnRhaW5lciwgdXNlZFZhbHVlcyk7CisgICAg
Y29tcHV0ZUhvcml6b250YWxNYXJnaW4oY29udGFpbmVyLCB1c2VkSG9yaXpvbnRhbFZhbHVlcyk7
CisgICAgY29tcHV0ZUJvcmRlckFuZFBhZGRpbmcoY29udGFpbmVyLCB1c2VkSG9yaXpvbnRhbFZh
bHVlcyk7CiAgICAgLy8gSW5saW5lIGNvbnRhaW5lcnMgKDxzcGFuPikgaGF2ZSAwIHZlcnRpY2Fs
IG1hcmdpbnMuCiAgICAgZm9ybWF0dGluZ1N0YXRlKCkuZGlzcGxheUJveChjb250YWluZXIpLnNl
dFZlcnRpY2FsTWFyZ2luKHsgeyB9LCB7IH0gfSk7CiB9CiAKLXZvaWQgSW5saW5lRm9ybWF0dGlu
Z0NvbnRleHQ6OmNvbXB1dGVJbnRyaW5zaWNXaWR0aEZvckZvcm1hdHRpbmdSb290KGNvbnN0IEJv
eCYgZm9ybWF0dGluZ1Jvb3QpCit2b2lkIElubGluZUZvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRl
SW50cmluc2ljV2lkdGhGb3JGb3JtYXR0aW5nUm9vdChjb25zdCBCb3gmIGZvcm1hdHRpbmdSb290
LCBVc2VkSG9yaXpvbnRhbFZhbHVlcyB1c2VkSG9yaXpvbnRhbFZhbHVlcykKIHsKICAgICBBU1NF
UlQoZm9ybWF0dGluZ1Jvb3QuZXN0YWJsaXNoZXNGb3JtYXR0aW5nQ29udGV4dCgpKTsKIAotICAg
IGF1dG8gdXNlZFZhbHVlcyA9IFVzZWRIb3Jpem9udGFsVmFsdWVzIHsgVXNlZEhvcml6b250YWxW
YWx1ZXM6OkNvbnN0cmFpbnRzIHsgeyB9LCB7IH0gfSB9OwotICAgIGNvbXB1dGVCb3JkZXJBbmRQ
YWRkaW5nKGZvcm1hdHRpbmdSb290LCB1c2VkVmFsdWVzKTsKLSAgICBjb21wdXRlSG9yaXpvbnRh
bE1hcmdpbihmb3JtYXR0aW5nUm9vdCwgdXNlZFZhbHVlcyk7CisgICAgY29tcHV0ZUJvcmRlckFu
ZFBhZGRpbmcoZm9ybWF0dGluZ1Jvb3QsIHVzZWRIb3Jpem9udGFsVmFsdWVzKTsKKyAgICBjb21w
dXRlSG9yaXpvbnRhbE1hcmdpbihmb3JtYXR0aW5nUm9vdCwgdXNlZEhvcml6b250YWxWYWx1ZXMp
OwogCiAgICAgYXV0byBjb25zdHJhaW50cyA9IEludHJpbnNpY1dpZHRoQ29uc3RyYWludHMgeyB9
OwogICAgIGlmIChhdXRvIGZpeGVkV2lkdGggPSBnZW9tZXRyeSgpLmZpeGVkVmFsdWUoZm9ybWF0
dGluZ1Jvb3Quc3R5bGUoKS5sb2dpY2FsV2lkdGgoKSkpCkBAIC0xODIsMjMgKzE4NSwyMyBAQCB2
b2lkIElubGluZUZvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlSW50cmluc2ljV2lkdGhGb3JGb3Jt
YXR0aW5nUm9vdChjb25zdCBCb3gmCiAgICAgZm9ybWF0dGluZ1N0YXRlKCkuc2V0SW50cmluc2lj
V2lkdGhDb25zdHJhaW50c0ZvckJveChmb3JtYXR0aW5nUm9vdCwgY29uc3RyYWludHMpOwogfQog
Ci12b2lkIElubGluZUZvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlSG9yaXpvbnRhbE1hcmdpbihj
b25zdCBCb3gmIGxheW91dEJveCwgVXNlZEhvcml6b250YWxWYWx1ZXMgdXNlZFZhbHVlcykKK3Zv
aWQgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVIb3Jpem9udGFsTWFyZ2luKGNvbnN0
IEJveCYgbGF5b3V0Qm94LCBVc2VkSG9yaXpvbnRhbFZhbHVlcyB1c2VkSG9yaXpvbnRhbFZhbHVl
cykKIHsKLSAgICBhdXRvIGNvbXB1dGVkSG9yaXpvbnRhbE1hcmdpbiA9IGdlb21ldHJ5KCkuY29t
cHV0ZWRIb3Jpem9udGFsTWFyZ2luKGxheW91dEJveCwgdXNlZFZhbHVlcyk7CisgICAgYXV0byBj
b21wdXRlZEhvcml6b250YWxNYXJnaW4gPSBnZW9tZXRyeSgpLmNvbXB1dGVkSG9yaXpvbnRhbE1h
cmdpbihsYXlvdXRCb3gsIHVzZWRIb3Jpem9udGFsVmFsdWVzKTsKICAgICBhdXRvJiBkaXNwbGF5
Qm94ID0gZm9ybWF0dGluZ1N0YXRlKCkuZGlzcGxheUJveChsYXlvdXRCb3gpOwogICAgIGRpc3Bs
YXlCb3guc2V0SG9yaXpvbnRhbENvbXB1dGVkTWFyZ2luKGNvbXB1dGVkSG9yaXpvbnRhbE1hcmdp
bik7CiAgICAgZGlzcGxheUJveC5zZXRIb3Jpem9udGFsTWFyZ2luKHsgY29tcHV0ZWRIb3Jpem9u
dGFsTWFyZ2luLnN0YXJ0LnZhbHVlT3IoMCksIGNvbXB1dGVkSG9yaXpvbnRhbE1hcmdpbi5lbmQu
dmFsdWVPcigwKSB9KTsKIH0KIAotdm9pZCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0
ZVdpZHRoQW5kTWFyZ2luKGNvbnN0IEJveCYgbGF5b3V0Qm94LCBVc2VkSG9yaXpvbnRhbFZhbHVl
cyB1c2VkVmFsdWVzKQordm9pZCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZVdpZHRo
QW5kTWFyZ2luKGNvbnN0IEJveCYgbGF5b3V0Qm94LCBVc2VkSG9yaXpvbnRhbFZhbHVlcyB1c2Vk
SG9yaXpvbnRhbFZhbHVlcykKIHsKICAgICBXaWR0aEFuZE1hcmdpbiB3aWR0aEFuZE1hcmdpbjsK
ICAgICBpZiAobGF5b3V0Qm94LmlzRmxvYXRpbmdQb3NpdGlvbmVkKCkpCi0gICAgICAgIHdpZHRo
QW5kTWFyZ2luID0gZ2VvbWV0cnkoKS5mbG9hdGluZ1dpZHRoQW5kTWFyZ2luKGxheW91dEJveCwg
dXNlZFZhbHVlcyk7CisgICAgICAgIHdpZHRoQW5kTWFyZ2luID0gZ2VvbWV0cnkoKS5mbG9hdGlu
Z1dpZHRoQW5kTWFyZ2luKGxheW91dEJveCwgdXNlZEhvcml6b250YWxWYWx1ZXMpOwogICAgIGVs
c2UgaWYgKGxheW91dEJveC5pc0lubGluZUJsb2NrQm94KCkpCi0gICAgICAgIHdpZHRoQW5kTWFy
Z2luID0gZ2VvbWV0cnkoKS5pbmxpbmVCbG9ja1dpZHRoQW5kTWFyZ2luKGxheW91dEJveCwgdXNl
ZFZhbHVlcyk7CisgICAgICAgIHdpZHRoQW5kTWFyZ2luID0gZ2VvbWV0cnkoKS5pbmxpbmVCbG9j
a1dpZHRoQW5kTWFyZ2luKGxheW91dEJveCwgdXNlZEhvcml6b250YWxWYWx1ZXMpOwogICAgIGVs
c2UgaWYgKGxheW91dEJveC5yZXBsYWNlZCgpKQotICAgICAgICB3aWR0aEFuZE1hcmdpbiA9IGdl
b21ldHJ5KCkuaW5saW5lUmVwbGFjZWRXaWR0aEFuZE1hcmdpbihsYXlvdXRCb3gsIHVzZWRWYWx1
ZXMpOworICAgICAgICB3aWR0aEFuZE1hcmdpbiA9IGdlb21ldHJ5KCkuaW5saW5lUmVwbGFjZWRX
aWR0aEFuZE1hcmdpbihsYXlvdXRCb3gsIHVzZWRIb3Jpem9udGFsVmFsdWVzKTsKICAgICBlbHNl
CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogCkBAIC0yMDgsMTIgKzIxMSw5IEBAIHZv
aWQgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVXaWR0aEFuZE1hcmdpbihjb25zdCBC
b3gmIGxheW91dEJveCwgVXNlZEhvCiAgICAgZGlzcGxheUJveC5zZXRIb3Jpem9udGFsQ29tcHV0
ZWRNYXJnaW4od2lkdGhBbmRNYXJnaW4uY29tcHV0ZWRNYXJnaW4pOwogfQogCi12b2lkIElubGlu
ZUZvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlSGVpZ2h0QW5kTWFyZ2luKGNvbnN0IEJveCYgbGF5
b3V0Qm94KQordm9pZCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZUhlaWdodEFuZE1h
cmdpbihjb25zdCBCb3gmIGxheW91dEJveCwgVXNlZEhvcml6b250YWxWYWx1ZXMgdXNlZEhvcml6
b250YWxWYWx1ZXMsIFVzZWRWZXJ0aWNhbFZhbHVlcyB1c2VkVmVydGljYWxWYWx1ZXMpCiB7CiAg
ICAgSGVpZ2h0QW5kTWFyZ2luIGhlaWdodEFuZE1hcmdpbjsKLSAgICBhdXRvJiBjb250YWluaW5n
QmxvY2tHZW9tZXRyeSA9IGdlb21ldHJ5Rm9yQm94KCpsYXlvdXRCb3guY29udGFpbmluZ0Jsb2Nr
KCkpOwotICAgIGF1dG8gdXNlZEhvcml6b250YWxWYWx1ZXMgPSBVc2VkSG9yaXpvbnRhbFZhbHVl
cyB7IFVzZWRIb3Jpem9udGFsVmFsdWVzOjpDb25zdHJhaW50cyB7IGNvbnRhaW5pbmdCbG9ja0dl
b21ldHJ5IH0gfTsKLSAgICBhdXRvIHVzZWRWZXJ0aWNhbFZhbHVlcyA9IFVzZWRWZXJ0aWNhbFZh
bHVlcyB7IFVzZWRWZXJ0aWNhbFZhbHVlczo6Q29uc3RyYWludHMgeyBjb250YWluaW5nQmxvY2tH
ZW9tZXRyeSB9IH07CiAgICAgaWYgKGxheW91dEJveC5pc0Zsb2F0aW5nUG9zaXRpb25lZCgpKQog
ICAgICAgICBoZWlnaHRBbmRNYXJnaW4gPSBnZW9tZXRyeSgpLmZsb2F0aW5nSGVpZ2h0QW5kTWFy
Z2luKGxheW91dEJveCwgdXNlZEhvcml6b250YWxWYWx1ZXMsIHVzZWRWZXJ0aWNhbFZhbHVlcyk7
CiAgICAgZWxzZSBpZiAobGF5b3V0Qm94LmlzSW5saW5lQmxvY2tCb3goKSkKQEAgLTIyOCw3ICsy
MjgsNyBAQCB2b2lkIElubGluZUZvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlSGVpZ2h0QW5kTWFy
Z2luKGNvbnN0IEJveCYgbGF5b3V0Qm94KQogICAgIGRpc3BsYXlCb3guc2V0VmVydGljYWxNYXJn
aW4oeyBoZWlnaHRBbmRNYXJnaW4ubm9uQ29sbGFwc2VkTWFyZ2luLCB7IH0gfSk7CiB9CiAKLXZv
aWQgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OmxheW91dEZvcm1hdHRpbmdDb250ZXh0Um9vdChj
b25zdCBCb3gmIHJvb3QsIFVzZWRIb3Jpem9udGFsVmFsdWVzIHVzZWRIb3Jpem9udGFsVmFsdWVz
KQordm9pZCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6bGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRS
b290KGNvbnN0IEJveCYgcm9vdCwgVXNlZEhvcml6b250YWxWYWx1ZXMgdXNlZEhvcml6b250YWxW
YWx1ZXMsIFVzZWRWZXJ0aWNhbFZhbHVlcyB1c2VkVmVydGljYWxWYWx1ZXMpCiB7CiAgICAgQVNT
RVJUKHJvb3QuaXNGbG9hdGluZ1Bvc2l0aW9uZWQoKSB8fCByb290LmlzSW5saW5lQmxvY2tCb3go
KSk7CiAKQEAgLTI0MiwxNCArMjQyLDE0IEBAIHZvaWQgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6
OmxheW91dEZvcm1hdHRpbmdDb250ZXh0Um9vdChjb25zdCBCb3gmIHJvb3QsIFVzZWRICiAgICAg
ICAgIGF1dG8gZm9ybWF0dGluZ0NvbnRleHQgPSBMYXlvdXRDb250ZXh0OjpjcmVhdGVGb3JtYXR0
aW5nQ29udGV4dChyb290Q29udGFpbmVyLCBsYXlvdXRTdGF0ZSgpKTsKICAgICAgICAgZm9ybWF0
dGluZ0NvbnRleHQtPmxheW91dEluRmxvd0NvbnRlbnQoKTsKICAgICAgICAgLy8gQ29tZSBiYWNr
IGFuZCBmaW5hbGl6ZSB0aGUgcm9vdCdzIGhlaWdodCBhbmQgbWFyZ2luLgotICAgICAgICBjb21w
dXRlSGVpZ2h0QW5kTWFyZ2luKHJvb3RDb250YWluZXIpOworICAgICAgICBjb21wdXRlSGVpZ2h0
QW5kTWFyZ2luKHJvb3RDb250YWluZXIsIHVzZWRIb3Jpem9udGFsVmFsdWVzLCB1c2VkVmVydGlj
YWxWYWx1ZXMpOwogICAgICAgICAvLyBOb3cgdGhhdCB3ZSBjb21wdXRlZCB0aGUgcm9vdCdzIGhl
aWdodCwgd2UgY2FuIGdvIGJhY2sgYW5kIGxheW91dCB0aGUgb3V0LW9mLWZsb3cgY29udGVudC4K
ICAgICAgICAgZm9ybWF0dGluZ0NvbnRleHQtPmxheW91dE91dE9mRmxvd0NvbnRlbnQoKTsKICAg
ICB9IGVsc2UKLSAgICAgICAgY29tcHV0ZUhlaWdodEFuZE1hcmdpbihyb290KTsKKyAgICAgICAg
Y29tcHV0ZUhlaWdodEFuZE1hcmdpbihyb290LCB1c2VkSG9yaXpvbnRhbFZhbHVlcywgdXNlZFZl
cnRpY2FsVmFsdWVzKTsKIH0KIAotdm9pZCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0
ZVdpZHRoQW5kSGVpZ2h0Rm9yUmVwbGFjZWRJbmxpbmVCb3goY29uc3QgQm94JiBsYXlvdXRCb3gs
IFVzZWRIb3Jpem9udGFsVmFsdWVzIHVzZWRIb3Jpem9udGFsVmFsdWVzKQordm9pZCBJbmxpbmVG
b3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZVdpZHRoQW5kSGVpZ2h0Rm9yUmVwbGFjZWRJbmxpbmVC
b3goY29uc3QgQm94JiBsYXlvdXRCb3gsIFVzZWRIb3Jpem9udGFsVmFsdWVzIHVzZWRIb3Jpem9u
dGFsVmFsdWVzLCBVc2VkVmVydGljYWxWYWx1ZXMgdXNlZFZlcnRpY2FsVmFsdWVzKQogewogICAg
IEFTU0VSVCghbGF5b3V0Qm94LmlzQ29udGFpbmVyKCkpOwogICAgIEFTU0VSVCghbGF5b3V0Qm94
LmVzdGFibGlzaGVzRm9ybWF0dGluZ0NvbnRleHQoKSk7CkBAIC0yNTcsNyArMjU3LDcgQEAgdm9p
ZCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZVdpZHRoQW5kSGVpZ2h0Rm9yUmVwbGFj
ZWRJbmxpbmVCb3goY29uc3QgQm8KIAogICAgIGNvbXB1dGVCb3JkZXJBbmRQYWRkaW5nKGxheW91
dEJveCwgdXNlZEhvcml6b250YWxWYWx1ZXMpOwogICAgIGNvbXB1dGVXaWR0aEFuZE1hcmdpbihs
YXlvdXRCb3gsIHVzZWRIb3Jpem9udGFsVmFsdWVzKTsKLSAgICBjb21wdXRlSGVpZ2h0QW5kTWFy
Z2luKGxheW91dEJveCk7CisgICAgY29tcHV0ZUhlaWdodEFuZE1hcmdpbihsYXlvdXRCb3gsIHVz
ZWRIb3Jpem9udGFsVmFsdWVzLCB1c2VkVmVydGljYWxWYWx1ZXMpOwogfQogCiB2b2lkIElubGlu
ZUZvcm1hdHRpbmdDb250ZXh0Ojpjb2xsZWN0SW5saW5lQ29udGVudCgpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29u
dGV4dC5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9y
bWF0dGluZ0NvbnRleHQuaAppbmRleCA4MDg3YjJiN2QxNmUxNDkyZGEzYzliNDMyMzRmMjBhYmJj
N2Q3NDdiLi42OGQ0YTY4MzVhY2U1NTU5NTc4YTRmZTg3NzY4NWFkOTc5OGRmMTBkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0
aW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5n
L0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmgKQEAgLTUzLDIxICs1MywyNCBAQCBwcml2YXRlOgog
CiAgICAgY2xhc3MgSW5saW5lTGF5b3V0IHsKICAgICBwdWJsaWM6Ci0gICAgICAgIElubGluZUxh
eW91dChJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCYpOwotICAgICAgICB2b2lkIGxheW91dChjb25z
dCBJbmxpbmVJdGVtcyYsIExheW91dFVuaXQgd2lkdGhDb25zdHJhaW50KTsKLSAgICAgICAgTGF5
b3V0VW5pdCBjb21wdXRlZEludHJpbnNpY1dpZHRoKGNvbnN0IElubGluZUl0ZW1zJiwgTGF5b3V0
VW5pdCB3aWR0aENvbnN0cmFpbnQpIGNvbnN0OworICAgICAgICBJbmxpbmVMYXlvdXQoSW5saW5l
Rm9ybWF0dGluZ0NvbnRleHQmLCBVc2VkSG9yaXpvbnRhbFZhbHVlcyk7CisgICAgICAgIHZvaWQg
bGF5b3V0KGNvbnN0IElubGluZUl0ZW1zJik7CisgICAgICAgIExheW91dFVuaXQgY29tcHV0ZWRJ
bnRyaW5zaWNXaWR0aChjb25zdCBJbmxpbmVJdGVtcyYpIGNvbnN0OwogCiAgICAgcHJpdmF0ZToK
ICAgICAgICAgTGF5b3V0U3RhdGUmIGxheW91dFN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9pbmxp
bmVGb3JtYXR0aW5nQ29udGV4dC5sYXlvdXRTdGF0ZSgpOyB9CiAgICAgICAgIElubGluZUZvcm1h
dHRpbmdDb250ZXh0JiBmb3JtYXR0aW5nQ29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1faW5saW5l
Rm9ybWF0dGluZ0NvbnRleHQ7IH0KICAgICAgICAgY29uc3QgQ29udGFpbmVyJiBmb3JtYXR0aW5n
Um9vdCgpIGNvbnN0IHsgcmV0dXJuIG1faW5saW5lRm9ybWF0dGluZ0NvbnRleHQucm9vdCgpOyB9
CiAgICAgICAgIElubGluZUZvcm1hdHRpbmdTdGF0ZSYgZm9ybWF0dGluZ1N0YXRlKCkgeyByZXR1
cm4gbV9pbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5mb3JtYXR0aW5nU3RhdGUoKTsgfQorICAgICAg
ICBMYXlvdXRVbml0IHdpZHRoQ29uc3RyYWludCgpIGNvbnN0IHsgcmV0dXJuIG1fdXNlZEhvcml6
b250YWxWYWx1ZXMuY29uc3RyYWludHMud2lkdGg7IH0KKwogICAgICAgICBMaW5lQ29udGVudCBw
bGFjZUlubGluZUl0ZW1zKGNvbnN0IExpbmVJbnB1dCYpIGNvbnN0OwotICAgICAgICB2b2lkIGNy
ZWF0ZURpc3BsYXlSdW5zKGNvbnN0IExpbmU6OkNvbnRlbnQmLCBjb25zdCBWZWN0b3I8V2Vha1B0
cjxJbmxpbmVJdGVtPj4mIGZsb2F0cywgTGF5b3V0VW5pdCB3aWR0aENvbnN0cmFpbnQpOworICAg
ICAgICB2b2lkIGNyZWF0ZURpc3BsYXlSdW5zKGNvbnN0IExpbmU6OkNvbnRlbnQmLCBjb25zdCBW
ZWN0b3I8V2Vha1B0cjxJbmxpbmVJdGVtPj4mIGZsb2F0cyk7CiAgICAgICAgIHZvaWQgYWxpZ25S
dW5zKFRleHRBbGlnbk1vZGUsIElubGluZVJ1bnMmLCB1bnNpZ25lZCBmaXJzdFJ1bkluZGV4LCBM
YXlvdXRVbml0IGF2YWlsYWJsZVdpZHRoKSBjb25zdDsKIAogICAgIHByaXZhdGU6CiAgICAgICAg
IElubGluZUZvcm1hdHRpbmdDb250ZXh0JiBtX2lubGluZUZvcm1hdHRpbmdDb250ZXh0OworICAg
ICAgICBVc2VkSG9yaXpvbnRhbFZhbHVlcyBtX3VzZWRIb3Jpem9udGFsVmFsdWVzOwogICAgIH07
CiAKICAgICBjbGFzcyBRdWlya3MgOiBwdWJsaWMgRm9ybWF0dGluZ0NvbnRleHQ6OlF1aXJrcyB7
CkBAIC05OCwxMyArMTAxLDEzIEBAIHByaXZhdGU6CiAgICAgfTsKICAgICBJbmxpbmVGb3JtYXR0
aW5nQ29udGV4dDo6R2VvbWV0cnkgZ2VvbWV0cnkoKSBjb25zdCB7IHJldHVybiBHZW9tZXRyeSgq
dGhpcyk7IH0KIAotICAgIHZvaWQgbGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRSb290KGNvbnN0IEJv
eCYsIFVzZWRIb3Jpem9udGFsVmFsdWVzKTsKKyAgICB2b2lkIGxheW91dEZvcm1hdHRpbmdDb250
ZXh0Um9vdChjb25zdCBCb3gmLCBVc2VkSG9yaXpvbnRhbFZhbHVlcywgVXNlZFZlcnRpY2FsVmFs
dWVzKTsKICAgICB2b2lkIGNvbXB1dGVNYXJnaW5Cb3JkZXJBbmRQYWRkaW5nRm9ySW5saW5lQ29u
dGFpbmVyKGNvbnN0IENvbnRhaW5lciYsIFVzZWRIb3Jpem9udGFsVmFsdWVzKTsKICAgICB2b2lk
IGluaXRpYWxpemVNYXJnaW5Cb3JkZXJBbmRQYWRkaW5nRm9yR2VuZXJpY0lubGluZUJveChjb25z
dCBCb3gmKTsKLSAgICB2b2lkIGNvbXB1dGVJbnRyaW5zaWNXaWR0aEZvckZvcm1hdHRpbmdSb290
KGNvbnN0IEJveCYpOwotICAgIHZvaWQgY29tcHV0ZVdpZHRoQW5kSGVpZ2h0Rm9yUmVwbGFjZWRJ
bmxpbmVCb3goY29uc3QgQm94JiwgVXNlZEhvcml6b250YWxWYWx1ZXMpOworICAgIHZvaWQgY29t
cHV0ZUludHJpbnNpY1dpZHRoRm9yRm9ybWF0dGluZ1Jvb3QoY29uc3QgQm94JiwgVXNlZEhvcml6
b250YWxWYWx1ZXMpOworICAgIHZvaWQgY29tcHV0ZVdpZHRoQW5kSGVpZ2h0Rm9yUmVwbGFjZWRJ
bmxpbmVCb3goY29uc3QgQm94JiwgVXNlZEhvcml6b250YWxWYWx1ZXMsIFVzZWRWZXJ0aWNhbFZh
bHVlcyk7CiAgICAgdm9pZCBjb21wdXRlSG9yaXpvbnRhbE1hcmdpbihjb25zdCBCb3gmLCBVc2Vk
SG9yaXpvbnRhbFZhbHVlcyk7Ci0gICAgdm9pZCBjb21wdXRlSGVpZ2h0QW5kTWFyZ2luKGNvbnN0
IEJveCYpOworICAgIHZvaWQgY29tcHV0ZUhlaWdodEFuZE1hcmdpbihjb25zdCBCb3gmLCBVc2Vk
SG9yaXpvbnRhbFZhbHVlcywgVXNlZFZlcnRpY2FsVmFsdWVzKTsKICAgICB2b2lkIGNvbXB1dGVX
aWR0aEFuZE1hcmdpbihjb25zdCBCb3gmLCBVc2VkSG9yaXpvbnRhbFZhbHVlcyk7CiAKICAgICB2
b2lkIGNvbGxlY3RJbmxpbmVDb250ZW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dExpbmVMYXlvdXQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0
dGluZ0NvbnRleHRMaW5lTGF5b3V0LmNwcAppbmRleCA4M2VhYjJkN2IwYzY3Y2JhZTBjMmQ4MWE1
ZTMxOTRlNTE1ZDExMDk5Li5iYjNiNGU5Yzk2NjBlNDAwMjM3MjYxMDczOGYxY2UyZGM5ZTE3ZGIy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9Jbmxp
bmVGb3JtYXR0aW5nQ29udGV4dExpbmVMYXlvdXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0TGluZUxheW91dC5j
cHAKQEAgLTI2OSwxMiArMjY5LDEzIEBAIExpbmVJbnB1dDo6TGluZUlucHV0KGNvbnN0IExpbmU6
OkluaXRpYWxDb25zdHJhaW50cyYgaW5pdGlhbExpbmVDb25zdHJhaW50cywgTGluCiB7CiB9CiAK
LUlubGluZUZvcm1hdHRpbmdDb250ZXh0OjpJbmxpbmVMYXlvdXQ6OklubGluZUxheW91dChJbmxp
bmVGb3JtYXR0aW5nQ29udGV4dCYgaW5saW5lRm9ybWF0dGluZ0NvbnRleHQpCitJbmxpbmVGb3Jt
YXR0aW5nQ29udGV4dDo6SW5saW5lTGF5b3V0OjpJbmxpbmVMYXlvdXQoSW5saW5lRm9ybWF0dGlu
Z0NvbnRleHQmIGlubGluZUZvcm1hdHRpbmdDb250ZXh0LCBVc2VkSG9yaXpvbnRhbFZhbHVlcyB1
c2VkSG9yaXpvbnRhbFZhbHVlcykKICAgICA6IG1faW5saW5lRm9ybWF0dGluZ0NvbnRleHQoaW5s
aW5lRm9ybWF0dGluZ0NvbnRleHQpCisgICAgLCBtX3VzZWRIb3Jpem9udGFsVmFsdWVzKHVzZWRI
b3Jpem9udGFsVmFsdWVzKQogewogfQogCi12b2lkIElubGluZUZvcm1hdHRpbmdDb250ZXh0OjpJ
bmxpbmVMYXlvdXQ6OmxheW91dChjb25zdCBJbmxpbmVJdGVtcyYgaW5saW5lSXRlbXMsIExheW91
dFVuaXQgd2lkdGhDb25zdHJhaW50KQordm9pZCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6SW5s
aW5lTGF5b3V0OjpsYXlvdXQoY29uc3QgSW5saW5lSXRlbXMmIGlubGluZUl0ZW1zKQogewogICAg
IGF1dG8mIGZvcm1hdHRpbmdDb250ZXh0ID0gdGhpcy0+Zm9ybWF0dGluZ0NvbnRleHQoKTsKICAg
ICBhdXRvJiBmb3JtYXR0aW5nUm9vdCA9IHRoaXMtPmZvcm1hdHRpbmdSb290KCk7CkBAIC0zMjMs
MTAgKzMyNCwxMCBAQCB2b2lkIElubGluZUZvcm1hdHRpbmdDb250ZXh0OjpJbmxpbmVMYXlvdXQ6
OmxheW91dChjb25zdCBJbmxpbmVJdGVtcyYgaW5saW5lSXRlbQogICAgIEluZGV4QW5kUmFuZ2Ug
Y3VycmVudElubGluZUl0ZW07CiAgICAgYXV0byBxdWlya3MgPSBmb3JtYXR0aW5nQ29udGV4dC5x
dWlya3MoKTsKICAgICB3aGlsZSAoY3VycmVudElubGluZUl0ZW0uaW5kZXggPCBpbmxpbmVJdGVt
cy5zaXplKCkpIHsKLSAgICAgICAgYXV0byBsaW5lSW5wdXQgPSBMaW5lSW5wdXQgeyB7IHsgbGlu
ZUxvZ2ljYWxMZWZ0LCBsaW5lTG9naWNhbFRvcCB9LCB3aWR0aENvbnN0cmFpbnQsIHF1aXJrcy5s
aW5lSGVpZ2h0Q29uc3RyYWludHMoZm9ybWF0dGluZ1Jvb3QpIH0sIExpbmU6OlNraXBWZXJ0aWNh
bEFsaWdtZW50OjpObywgY3VycmVudElubGluZUl0ZW0sIGlubGluZUl0ZW1zIH07CisgICAgICAg
IGF1dG8gbGluZUlucHV0ID0gTGluZUlucHV0IHsgeyB7IGxpbmVMb2dpY2FsTGVmdCwgbGluZUxv
Z2ljYWxUb3AgfSwgd2lkdGhDb25zdHJhaW50KCksIHF1aXJrcy5saW5lSGVpZ2h0Q29uc3RyYWlu
dHMoZm9ybWF0dGluZ1Jvb3QpIH0sIExpbmU6OlNraXBWZXJ0aWNhbEFsaWdtZW50OjpObywgY3Vy
cmVudElubGluZUl0ZW0sIGlubGluZUl0ZW1zIH07CiAgICAgICAgIGFwcGx5RmxvYXRDb25zdHJh
aW50KGxpbmVJbnB1dCk7CiAgICAgICAgIGF1dG8gbGluZUNvbnRlbnQgPSBMaW5lTGF5b3V0KGZv
cm1hdHRpbmdDb250ZXh0LCBsaW5lSW5wdXQpLmxheW91dCgpOwotICAgICAgICBjcmVhdGVEaXNw
bGF5UnVucygqbGluZUNvbnRlbnQucnVucywgbGluZUNvbnRlbnQuZmxvYXRzLCB3aWR0aENvbnN0
cmFpbnQpOworICAgICAgICBjcmVhdGVEaXNwbGF5UnVucygqbGluZUNvbnRlbnQucnVucywgbGlu
ZUNvbnRlbnQuZmxvYXRzKTsKICAgICAgICAgaWYgKCFsaW5lQ29udGVudC5sYXN0Q29tbWl0dGVk
KSB7CiAgICAgICAgICAgICAvLyBGbG9hdHMgcHJldmVudGVkIHVzIHB1dHRpbmcgYW55IGNvbnRl
bnQgb24gdGhlIGxpbmUuCiAgICAgICAgICAgICBBU1NFUlQobGluZUlucHV0LmZsb2F0TWluaW11
bUxvZ2ljYWxCb3R0b20pOwpAQCAtMzM5LDE0ICszNDAsMTQgQEAgdm9pZCBJbmxpbmVGb3JtYXR0
aW5nQ29udGV4dDo6SW5saW5lTGF5b3V0OjpsYXlvdXQoY29uc3QgSW5saW5lSXRlbXMmIGlubGlu
ZUl0ZW0KICAgICB9CiB9CiAKLUxheW91dFVuaXQgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6Oklu
bGluZUxheW91dDo6Y29tcHV0ZWRJbnRyaW5zaWNXaWR0aChjb25zdCBJbmxpbmVJdGVtcyYgaW5s
aW5lSXRlbXMsIExheW91dFVuaXQgd2lkdGhDb25zdHJhaW50KSBjb25zdAorTGF5b3V0VW5pdCBJ
bmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6SW5saW5lTGF5b3V0Ojpjb21wdXRlZEludHJpbnNpY1dp
ZHRoKGNvbnN0IElubGluZUl0ZW1zJiBpbmxpbmVJdGVtcykgY29uc3QKIHsKICAgICBhdXRvJiBm
b3JtYXR0aW5nQ29udGV4dCA9IHRoaXMtPmZvcm1hdHRpbmdDb250ZXh0KCk7CiAgICAgTGF5b3V0
VW5pdCBtYXhpbXVtTGluZVdpZHRoOwogICAgIEluZGV4QW5kUmFuZ2UgY3VycmVudElubGluZUl0
ZW07CiAgICAgYXV0byBxdWlya3MgPSBmb3JtYXR0aW5nQ29udGV4dC5xdWlya3MoKTsKICAgICB3
aGlsZSAoY3VycmVudElubGluZUl0ZW0uaW5kZXggPCBpbmxpbmVJdGVtcy5zaXplKCkpIHsKLSAg
ICAgICAgYXV0byBsaW5lQ29udGVudCA9IExpbmVMYXlvdXQoZm9ybWF0dGluZ0NvbnRleHQsIHsg
eyB7IH0sIHdpZHRoQ29uc3RyYWludCwgcXVpcmtzLmxpbmVIZWlnaHRDb25zdHJhaW50cyhmb3Jt
YXR0aW5nUm9vdCgpKSB9LCBMaW5lOjpTa2lwVmVydGljYWxBbGlnbWVudDo6WWVzLCBjdXJyZW50
SW5saW5lSXRlbSwgaW5saW5lSXRlbXMgfSkubGF5b3V0KCk7CisgICAgICAgIGF1dG8gbGluZUNv
bnRlbnQgPSBMaW5lTGF5b3V0KGZvcm1hdHRpbmdDb250ZXh0LCB7IHsgeyB9LCB3aWR0aENvbnN0
cmFpbnQoKSwgcXVpcmtzLmxpbmVIZWlnaHRDb25zdHJhaW50cyhmb3JtYXR0aW5nUm9vdCgpKSB9
LCBMaW5lOjpTa2lwVmVydGljYWxBbGlnbWVudDo6WWVzLCBjdXJyZW50SW5saW5lSXRlbSwgaW5s
aW5lSXRlbXMgfSkubGF5b3V0KCk7CiAgICAgICAgIGN1cnJlbnRJbmxpbmVJdGVtID0geyBsaW5l
Q29udGVudC5sYXN0Q29tbWl0dGVkLT5pbmRleCArIDEsIFdURjo6bnVsbG9wdCB9OwogICAgICAg
ICBMYXlvdXRVbml0IGZsb2F0c1dpZHRoOwogICAgICAgICBmb3IgKGF1dG8mIGZsb2F0SXRlbSA6
IGxpbmVDb250ZW50LmZsb2F0cykKQEAgLTM1Niw3ICszNTcsNyBAQCBMYXlvdXRVbml0IElubGlu
ZUZvcm1hdHRpbmdDb250ZXh0OjpJbmxpbmVMYXlvdXQ6OmNvbXB1dGVkSW50cmluc2ljV2lkdGgo
Y29uc3QgSQogICAgIHJldHVybiBtYXhpbXVtTGluZVdpZHRoOwogfQogCi12b2lkIElubGluZUZv
cm1hdHRpbmdDb250ZXh0OjpJbmxpbmVMYXlvdXQ6OmNyZWF0ZURpc3BsYXlSdW5zKGNvbnN0IExp
bmU6OkNvbnRlbnQmIGxpbmVDb250ZW50LCBjb25zdCBWZWN0b3I8V2Vha1B0cjxJbmxpbmVJdGVt
Pj4mIGZsb2F0cywgTGF5b3V0VW5pdCB3aWR0aENvbnN0cmFpbnQpCit2b2lkIElubGluZUZvcm1h
dHRpbmdDb250ZXh0OjpJbmxpbmVMYXlvdXQ6OmNyZWF0ZURpc3BsYXlSdW5zKGNvbnN0IExpbmU6
OkNvbnRlbnQmIGxpbmVDb250ZW50LCBjb25zdCBWZWN0b3I8V2Vha1B0cjxJbmxpbmVJdGVtPj4m
IGZsb2F0cykKIHsKICAgICBhdXRvJiBmb3JtYXR0aW5nQ29udGV4dCA9IHRoaXMtPmZvcm1hdHRp
bmdDb250ZXh0KCk7CiAgICAgYXV0byYgZm9ybWF0dGluZ1N0YXRlID0gdGhpcy0+Zm9ybWF0dGlu
Z1N0YXRlKCk7CkBAIC00MDIsMTIgKzQwMywxMSBAQCB2b2lkIElubGluZUZvcm1hdHRpbmdDb250
ZXh0OjpJbmxpbmVMYXlvdXQ6OmNyZWF0ZURpc3BsYXlSdW5zKGNvbnN0IExpbmU6OkNvbnRlbgog
ICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAotICAgICAgICBhdXRvIHVzZWRIb3Jp
em9udGFsVmFsdWVzID0gVXNlZEhvcml6b250YWxWYWx1ZXMgeyBVc2VkSG9yaXpvbnRhbFZhbHVl
czo6Q29uc3RyYWludHMgeyBmb3JtYXR0aW5nQ29udGV4dC5nZW9tZXRyeUZvckJveCgqbGF5b3V0
Qm94LmNvbnRhaW5pbmdCbG9jaygpKSB9IH07CiAgICAgICAgIC8vIElubGluZSBsZXZlbCBib3gg
KHJlcGxhY2VkIG9yIGlubGluZS1ibG9jaykKICAgICAgICAgaWYgKGxpbmVSdW4tPmlzQm94KCkp
IHsKICAgICAgICAgICAgIGF1dG8gdG9wTGVmdCA9IGxvZ2ljYWxSZWN0LnRvcExlZnQoKTsKICAg
ICAgICAgICAgIGlmIChsYXlvdXRCb3guaXNJbkZsb3dQb3NpdGlvbmVkKCkpCi0gICAgICAgICAg
ICAgICAgdG9wTGVmdCArPSBnZW9tZXRyeS5pbkZsb3dQb3NpdGlvbmVkUG9zaXRpb25PZmZzZXQo
bGF5b3V0Qm94LCB1c2VkSG9yaXpvbnRhbFZhbHVlcyk7CisgICAgICAgICAgICAgICAgdG9wTGVm
dCArPSBnZW9tZXRyeS5pbkZsb3dQb3NpdGlvbmVkUG9zaXRpb25PZmZzZXQobGF5b3V0Qm94LCBt
X3VzZWRIb3Jpem9udGFsVmFsdWVzKTsKICAgICAgICAgICAgIGRpc3BsYXlCb3guc2V0VG9wTGVm
dCh0b3BMZWZ0KTsKICAgICAgICAgICAgIGxpbmVCb3hSZWN0LmV4cGFuZEhvcml6b250YWxseShs
b2dpY2FsUmVjdC53aWR0aCgpKTsKICAgICAgICAgICAgIGZvcm1hdHRpbmdTdGF0ZS5hZGRJbmxp
bmVSdW4obWFrZVVuaXF1ZTxEaXNwbGF5OjpSdW4+KGxvZ2ljYWxSZWN0KSk7CkBAIC00MjQsNyAr
NDI0LDcgQEAgdm9pZCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6SW5saW5lTGF5b3V0OjpjcmVh
dGVEaXNwbGF5UnVucyhjb25zdCBMaW5lOjpDb250ZW4KICAgICAgICAgLy8gSW5saW5lIGxldmVs
IGNvbnRhaW5lciBlbmQgKDwvc3Bhbj4pCiAgICAgICAgIGlmIChsaW5lUnVuLT5pc0NvbnRhaW5l
ckVuZCgpKSB7CiAgICAgICAgICAgICBpZiAobGF5b3V0Qm94LmlzSW5GbG93UG9zaXRpb25lZCgp
KSB7Ci0gICAgICAgICAgICAgICAgYXV0byBpbmZsb3dPZmZzZXQgPSBnZW9tZXRyeS5pbkZsb3dQ
b3NpdGlvbmVkUG9zaXRpb25PZmZzZXQobGF5b3V0Qm94LCB1c2VkSG9yaXpvbnRhbFZhbHVlcyk7
CisgICAgICAgICAgICAgICAgYXV0byBpbmZsb3dPZmZzZXQgPSBnZW9tZXRyeS5pbkZsb3dQb3Np
dGlvbmVkUG9zaXRpb25PZmZzZXQobGF5b3V0Qm94LCBtX3VzZWRIb3Jpem9udGFsVmFsdWVzKTsK
ICAgICAgICAgICAgICAgICBkaXNwbGF5Qm94Lm1vdmVIb3Jpem9udGFsbHkoaW5mbG93T2Zmc2V0
LndpZHRoKCkpOwogICAgICAgICAgICAgICAgIGRpc3BsYXlCb3gubW92ZVZlcnRpY2FsbHkoaW5m
bG93T2Zmc2V0LmhlaWdodCgpKTsKICAgICAgICAgICAgIH0KQEAgLTQ2Nyw3ICs0NjcsNyBAQCB2
b2lkIElubGluZUZvcm1hdHRpbmdDb250ZXh0OjpJbmxpbmVMYXlvdXQ6OmNyZWF0ZURpc3BsYXlS
dW5zKGNvbnN0IExpbmU6OkNvbnRlbgogICAgIH0KICAgICAvLyBGSVhNRSBsaW5lYm94IG5lZWRz
IHRvIGJlIGFqdXN0ZWQgYWZ0ZXIgY29udGVudCBhbGlnbm1lbnQuCiAgICAgZm9ybWF0dGluZ1N0
YXRlLmFkZExpbmVCb3goeyBsaW5lQm94UmVjdCwgbGluZUNvbnRlbnQuYmFzZWxpbmUoKSwgbGlu
ZUNvbnRlbnQuYmFzZWxpbmVPZmZzZXQoKSB9KTsKLSAgICBhbGlnblJ1bnMoZm9ybWF0dGluZ1Jv
b3QoKS5zdHlsZSgpLnRleHRBbGlnbigpLCBpbmxpbmVEaXNwbGF5UnVucywgcHJldmlvdXNMaW5l
TGFzdFJ1bkluZGV4LnZhbHVlT3IoLTEpICsgMSwgd2lkdGhDb25zdHJhaW50IC0gbGluZUNvbnRl
bnQubG9naWNhbFdpZHRoKCkpOworICAgIGFsaWduUnVucyhmb3JtYXR0aW5nUm9vdCgpLnN0eWxl
KCkudGV4dEFsaWduKCksIGlubGluZURpc3BsYXlSdW5zLCBwcmV2aW91c0xpbmVMYXN0UnVuSW5k
ZXgudmFsdWVPcigtMSkgKyAxLCB3aWR0aENvbnN0cmFpbnQoKSAtIGxpbmVDb250ZW50LmxvZ2lj
YWxXaWR0aCgpKTsKIH0KIAogc3RhdGljIE9wdGlvbmFsPExheW91dFVuaXQ+IGhvcml6b250YWxB
ZGp1c3RtZW50Rm9yQWxpZ25tZW50KFRleHRBbGlnbk1vZGUgYWxpZ24sIExheW91dFVuaXQgcmVt
YWluaW5nV2lkdGgpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>