<?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>186394</bug_id>
          
          <creation_ts>2018-06-07 07:39:14 -0700</creation_ts>
          <short_desc>[LFC] Merge height and vertical margin computation</short_desc>
          <delta_ts>2018-06-07 08:40:23 -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>1430814</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2018-06-07 07:39:14 -0700</bug_when>
    <thetext>similar to width and horizontal margin computation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1430819</commentid>
    <comment_count>1</comment_count>
      <attachid>342163</attachid>
    <who name="alan">zalan</who>
    <bug_when>2018-06-07 07:51:00 -0700</bug_when>
    <thetext>Created attachment 342163
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1430820</commentid>
    <comment_count>2</comment_count>
      <attachid>342163</attachid>
    <who name="alan">zalan</who>
    <bug_when>2018-06-07 07:53:33 -0700</bug_when>
    <thetext>Comment on attachment 342163
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=342163&amp;action=review

&gt; Source/WebCore/layout/FormattingContext.h:92
&gt; +        struct HeightAndMargin {
&gt; +            LayoutUnit height;
&gt; +            Display::Box::VerticalEdges margin;
&gt; +        };

I also tried
struct SizeAndMargin {
    std::optional&lt;LayoutUnit&gt; width;
    std::optional&lt;LayoutUnit&gt; height;
    std::optional&lt;Display::Box::VerticalEdges&gt; verticalMargin;
    std::optional&lt;Display::Box::HorizontalEdges&gt; horizontalMargin;
};
but it turned out to be too confusing with all the std::nullopts.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1430840</commentid>
    <comment_count>3</comment_count>
      <attachid>342163</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-06-07 08:39:13 -0700</bug_when>
    <thetext>Comment on attachment 342163
Patch

Clearing flags on attachment: 342163

Committed r232581: &lt;https://trac.webkit.org/changeset/232581&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1430841</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-06-07 08:39:14 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1430842</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-06-07 08:40:23 -0700</bug_when>
    <thetext>&lt;rdar://problem/40895938&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>342163</attachid>
            <date>2018-06-07 07:51:00 -0700</date>
            <delta_ts>2018-06-07 08:39:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-186394-20180607075059.patch</filename>
            <type>text/plain</type>
            <size>23175</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMyNTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmU1YmVlOWQyM2I1NDZi
N2YwODhlODQ1MWFhMzhjMjVmMzI3YWI0Zi4uNDYxMzU3NjVhZTUzMzQ4ZjE3YjkyNzBmZTkzM2Vj
N2FiNjM1NzNmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDE4LTA2LTA3ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ10gTWVyZ2UgaGVpZ2h0
IGFuZCB2ZXJ0aWNhbCBtYXJnaW4gY29tcHV0YXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NjM5NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRvIG1hdGNoIHRoZSBzcGVjIChhbmQgdGhlIHdpZHRo
L2hvcml6b250YWwgbWFyZ2luIGNvbXB1dGF0aW9uKS4gLWN1cnJlbnRseSB3aXRoIGRlZmF1bHQg
dmFsdWVzLgorCisgICAgICAgICogbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkxheW91dDo6Rm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVGbG9hdGluZ0hl
aWdodEFuZE1hcmdpbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZvcm1hdHRp
bmdDb250ZXh0Ojpjb21wdXRlT3V0T2ZGbG93SGVpZ2h0IGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkxheW91dDo6Rm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVGbG9hdGluZ0hlaWdodCBjb25z
dCk6IERlbGV0ZWQuCisgICAgICAgICogbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0Lmg6CisgICAg
ICAgICogbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnkuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0OjpGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6Om91dE9mRmxvd05vblJl
cGxhY2VkSGVpZ2h0QW5kTWFyZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Rm9ybWF0
dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpvdXRPZkZsb3dSZXBsYWNlZEhlaWdodEFuZE1hcmdpbik6
CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6
ZmxvYXRpbmdOb25SZXBsYWNlZEhlaWdodEFuZE1hcmdpbik6CisgICAgICAgIChXZWJDb3JlOjpM
YXlvdXQ6OkZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6ZmxvYXRpbmdSZXBsYWNlZEhlaWdo
dEFuZE1hcmdpbik6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZvcm1hdHRpbmdDb250ZXh0
OjpHZW9tZXRyeTo6b3V0T2ZGbG93SGVpZ2h0QW5kTWFyZ2luKToKKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dDo6Rm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpmbG9hdGluZ0hlaWdodEFuZE1h
cmdpbik6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZvcm1hdHRpbmdDb250ZXh0OjpHZW9t
ZXRyeTo6aW5saW5lUmVwbGFjZWRIZWlnaHRBbmRNYXJnaW4pOgorICAgICAgICAoV2ViQ29yZTo6
TGF5b3V0OjpvdXRPZkZsb3dOb25SZXBsYWNlZEhlaWdodCk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OkZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6b3V0T2ZGbG93UmVw
bGFjZWRIZWlnaHQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpmbG9hdGlu
Z05vblJlcGxhY2VkSGVpZ2h0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6
Rm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpmbG9hdGluZ1JlcGxhY2VkSGVpZ2h0KTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Rm9ybWF0dGluZ0NvbnRleHQ6Okdlb21l
dHJ5OjpvdXRPZkZsb3dIZWlnaHQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0
OjpGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmZsb2F0aW5nSGVpZ2h0KTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Rm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5Ojpp
bmxpbmVSZXBsYWNlZEhlaWdodCk6IERlbGV0ZWQuCisgICAgICAgICogbGF5b3V0L2Jsb2NrZm9y
bWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6bGF5b3V0IGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZUhlaWdodEFuZE1h
cmdpbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0Nv
bnRleHQ6OmNvbXB1dGVJbkZsb3dIZWlnaHRBbmRNYXJnaW4gY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlSGVpZ2h0IGNvbnN0
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29u
dGV4dDo6Y29tcHV0ZUluRmxvd0hlaWdodCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogbGF5
b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0Lmg6CisgICAgICAgICog
bGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnkuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpHZW9t
ZXRyeTo6aW5GbG93Tm9uUmVwbGFjZWRIZWlnaHRBbmRNYXJnaW4pOgorICAgICAgICAoV2ViQ29y
ZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6aW5GbG93SGVpZ2h0
QW5kTWFyZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29u
dGV4dDo6R2VvbWV0cnk6OmluRmxvd05vblJlcGxhY2VkSGVpZ2h0KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6Omlu
Rmxvd0hlaWdodCk6IERlbGV0ZWQuCisKIDIwMTgtMDYtMDYgIFphbGFuIEJ1anRhcyAgPHphbGFu
QGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXSBBZGQgbWFyZ2luIGNvbXB1dGF0aW9uIGZvciBm
bG9hdGluZywgcmVwbGFjZWQgZWxlbWVudHMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvRm9ybWF0dGluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1h
dHRpbmdDb250ZXh0LmNwcAppbmRleCBhNDhmY2UzZDJhNjUwNGJlOTIwNGJhNGU0ODVjNzI3NjQ2
Zjg3NzY2Li41MWMyNjIzYjNjNmM5MzBmN2M1YzZmNTg4MDU5NzBlYWZiNDAzOTYwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dC5jcHAKQEAgLTU0LDkgKzU0LDEx
IEBAIHZvaWQgRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVPdXRPZkZsb3dQb3NpdGlvbihMYXlv
dXRDb250ZXh0JiBsYXlvdXRDb250ZXh0LCBjCiAgICAgZGlzcGxheUJveC5zZXRUb3BMZWZ0KEdl
b21ldHJ5OjpvdXRPZkZsb3dQb3NpdGlvbihsYXlvdXRDb250ZXh0LCBsYXlvdXRCb3gpKTsKIH0K
IAotdm9pZCBGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZUZsb2F0aW5nSGVpZ2h0KExheW91dENv
bnRleHQmIGxheW91dENvbnRleHQsIGNvbnN0IEJveCYgbGF5b3V0Qm94LCBEaXNwbGF5OjpCb3gm
IGRpc3BsYXlCb3gpIGNvbnN0Cit2b2lkIEZvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlRmxvYXRp
bmdIZWlnaHRBbmRNYXJnaW4oTGF5b3V0Q29udGV4dCYgbGF5b3V0Q29udGV4dCwgY29uc3QgQm94
JiBsYXlvdXRCb3gsIERpc3BsYXk6OkJveCYgZGlzcGxheUJveCkgY29uc3QKIHsKLSAgICBkaXNw
bGF5Qm94LnNldEhlaWdodChHZW9tZXRyeTo6ZmxvYXRpbmdIZWlnaHQobGF5b3V0Q29udGV4dCwg
bGF5b3V0Qm94KSk7CisgICAgYXV0byBoZWlnaHRBbmRNYXJnaW4gPSBHZW9tZXRyeTo6ZmxvYXRp
bmdIZWlnaHRBbmRNYXJnaW4obGF5b3V0Q29udGV4dCwgbGF5b3V0Qm94KTsKKyAgICBkaXNwbGF5
Qm94LnNldEhlaWdodChoZWlnaHRBbmRNYXJnaW4uaGVpZ2h0KTsKKyAgICBkaXNwbGF5Qm94LnNl
dFZlcnRpY2FsTWFyZ2luKGhlaWdodEFuZE1hcmdpbi5tYXJnaW4pOwogfQogCiB2b2lkIEZvcm1h
dHRpbmdDb250ZXh0Ojpjb21wdXRlRmxvYXRpbmdXaWR0aEFuZE1hcmdpbihMYXlvdXRDb250ZXh0
JiBsYXlvdXRDb250ZXh0LCBjb25zdCBCb3gmIGxheW91dEJveCwgRGlzcGxheTo6Qm94JiBkaXNw
bGF5Qm94KSBjb25zdApAQCAtNzUsNyArNzcsOSBAQCB2b2lkIEZvcm1hdHRpbmdDb250ZXh0Ojpj
b21wdXRlT3V0T2ZGbG93V2lkdGhBbmRNYXJnaW4oTGF5b3V0Q29udGV4dCYgbGF5b3V0Q29udAog
CiB2b2lkIEZvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlT3V0T2ZGbG93SGVpZ2h0KExheW91dENv
bnRleHQmIGxheW91dENvbnRleHQsIGNvbnN0IEJveCYgbGF5b3V0Qm94LCBEaXNwbGF5OjpCb3gm
IGRpc3BsYXlCb3gpIGNvbnN0CiB7Ci0gICAgZGlzcGxheUJveC5zZXRIZWlnaHQoR2VvbWV0cnk6
Om91dE9mRmxvd0hlaWdodChsYXlvdXRDb250ZXh0LCBsYXlvdXRCb3gpKTsKKyAgICBhdXRvIGhl
aWdodEFuZE1hcmdpbiA9IEdlb21ldHJ5OjpvdXRPZkZsb3dIZWlnaHRBbmRNYXJnaW4obGF5b3V0
Q29udGV4dCwgbGF5b3V0Qm94KTsKKyAgICBkaXNwbGF5Qm94LnNldEhlaWdodChoZWlnaHRBbmRN
YXJnaW4uaGVpZ2h0KTsKKyAgICBkaXNwbGF5Qm94LnNldFZlcnRpY2FsTWFyZ2luKGhlaWdodEFu
ZE1hcmdpbi5tYXJnaW4pOwogfQogCiB2b2lkIEZvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlQm9y
ZGVyQW5kUGFkZGluZyhMYXlvdXRDb250ZXh0JiBsYXlvdXRDb250ZXh0LCBjb25zdCBCb3gmIGxh
eW91dEJveCwgRGlzcGxheTo6Qm94JiBkaXNwbGF5Qm94KSBjb25zdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvRm9ybWF0dGluZ0NvbnRleHQuaAppbmRleCA1NmMwYjAzNmI5MDY0ZGUwZjlmZTQyNWRk
MWUxZDYyNjNmN2I5Y2VhLi43MzYzNzZjYTlkNDg3OGNhODhkYmUzNjdiNmY1NzY3YWFlMmU2ZjE0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHQuaApAQCAtNjYsNyAr
NjYsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVTdGF0aWNQb3NpdGlv
bihMYXlvdXRDb250ZXh0JiwgY29uc3QgQm94JiwgRGlzcGxheTo6Qm94JikgY29uc3QgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlSW5GbG93UG9zaXRpb25lZFBvc2l0aW9uKExheW91dENv
bnRleHQmLCBjb25zdCBCb3gmLCBEaXNwbGF5OjpCb3gmKSBjb25zdCA9IDA7CiAKLSAgICB2b2lk
IGNvbXB1dGVGbG9hdGluZ0hlaWdodChMYXlvdXRDb250ZXh0JiwgY29uc3QgQm94JiwgRGlzcGxh
eTo6Qm94JikgY29uc3Q7CisgICAgdm9pZCBjb21wdXRlRmxvYXRpbmdIZWlnaHRBbmRNYXJnaW4o
TGF5b3V0Q29udGV4dCYsIGNvbnN0IEJveCYsIERpc3BsYXk6OkJveCYpIGNvbnN0OwogICAgIHZv
aWQgY29tcHV0ZUZsb2F0aW5nV2lkdGhBbmRNYXJnaW4oTGF5b3V0Q29udGV4dCYsIGNvbnN0IEJv
eCYsIERpc3BsYXk6OkJveCYpIGNvbnN0OwogCiAgICAgdm9pZCBjb21wdXRlQm9yZGVyQW5kUGFk
ZGluZyhMYXlvdXRDb250ZXh0JiwgY29uc3QgQm94JiwgRGlzcGxheTo6Qm94JikgY29uc3Q7CkBA
IC04NiwxNSArODYsMjAgQEAgcHJvdGVjdGVkOgogICAgICAgICAgICAgRGlzcGxheTo6Qm94OjpI
b3Jpem9udGFsRWRnZXMgbWFyZ2luOwogICAgICAgICB9OwogCi0gICAgICAgIHN0YXRpYyBMYXlv
dXRVbml0IG91dE9mRmxvd0hlaWdodChMYXlvdXRDb250ZXh0JiwgY29uc3QgQm94Jik7CisgICAg
ICAgIHN0cnVjdCBIZWlnaHRBbmRNYXJnaW4geworICAgICAgICAgICAgTGF5b3V0VW5pdCBoZWln
aHQ7CisgICAgICAgICAgICBEaXNwbGF5OjpCb3g6OlZlcnRpY2FsRWRnZXMgbWFyZ2luOworICAg
ICAgICB9OworCisgICAgICAgIHN0YXRpYyBIZWlnaHRBbmRNYXJnaW4gb3V0T2ZGbG93SGVpZ2h0
QW5kTWFyZ2luKExheW91dENvbnRleHQmLCBjb25zdCBCb3gmKTsKICAgICAgICAgc3RhdGljIFdp
ZHRoQW5kTWFyZ2luIG91dE9mRmxvd1dpZHRoQW5kTWFyZ2luKExheW91dENvbnRleHQmLCBjb25z
dCBCb3gmKTsKIAotICAgICAgICBzdGF0aWMgTGF5b3V0VW5pdCBmbG9hdGluZ0hlaWdodChMYXlv
dXRDb250ZXh0JiwgY29uc3QgQm94Jik7CisgICAgICAgIHN0YXRpYyBIZWlnaHRBbmRNYXJnaW4g
ZmxvYXRpbmdIZWlnaHRBbmRNYXJnaW4oTGF5b3V0Q29udGV4dCYsIGNvbnN0IEJveCYpOwogICAg
ICAgICBzdGF0aWMgV2lkdGhBbmRNYXJnaW4gZmxvYXRpbmdXaWR0aEFuZE1hcmdpbihMYXlvdXRD
b250ZXh0JiwgY29uc3QgQm94Jik7CiAKICAgICAgICAgc3RhdGljIExheW91dFBvaW50IG91dE9m
Rmxvd1Bvc2l0aW9uKExheW91dENvbnRleHQmLCBjb25zdCBCb3gmKTsKIAotICAgICAgICBzdGF0
aWMgTGF5b3V0VW5pdCBpbmxpbmVSZXBsYWNlZEhlaWdodChMYXlvdXRDb250ZXh0JiwgY29uc3Qg
Qm94Jik7CisgICAgICAgIHN0YXRpYyBIZWlnaHRBbmRNYXJnaW4gaW5saW5lUmVwbGFjZWRIZWln
aHRBbmRNYXJnaW4oTGF5b3V0Q29udGV4dCYsIGNvbnN0IEJveCYpOwogICAgICAgICBzdGF0aWMg
V2lkdGhBbmRNYXJnaW4gaW5saW5lUmVwbGFjZWRXaWR0aEFuZE1hcmdpbihMYXlvdXRDb250ZXh0
JiwgY29uc3QgQm94Jiwgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBwcmVjb21wdXRlZE1hcmdp
bkxlZnQgPSB7IH0sCiAgICAgICAgICAgICBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IHByZWNv
bXB1dGVkTWFyZ2luUmlnaHQgPSB7IH0pOwogCkBAIC0xMDIsMTQgKzEwNywxNiBAQCBwcm90ZWN0
ZWQ6CiAgICAgICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPERpc3BsYXk6OkJveDo6RWRnZXM+IGNv
bXB1dGVkUGFkZGluZyhMYXlvdXRDb250ZXh0JiwgY29uc3QgQm94Jik7CiAKICAgICBwcml2YXRl
OgotICAgICAgICBzdGF0aWMgTGF5b3V0VW5pdCBvdXRPZkZsb3dSZXBsYWNlZEhlaWdodChMYXlv
dXRDb250ZXh0JiwgY29uc3QgQm94Jik7CisgICAgICAgIHN0YXRpYyBIZWlnaHRBbmRNYXJnaW4g
b3V0T2ZGbG93UmVwbGFjZWRIZWlnaHRBbmRNYXJnaW4oTGF5b3V0Q29udGV4dCYsIGNvbnN0IEJv
eCYpOwogICAgICAgICBzdGF0aWMgV2lkdGhBbmRNYXJnaW4gb3V0T2ZGbG93UmVwbGFjZWRXaWR0
aEFuZE1hcmdpbihMYXlvdXRDb250ZXh0JiwgY29uc3QgQm94Jik7CiAKKyAgICAgICAgc3RhdGlj
IEhlaWdodEFuZE1hcmdpbiBvdXRPZkZsb3dOb25SZXBsYWNlZEhlaWdodEFuZE1hcmdpbihMYXlv
dXRDb250ZXh0JiwgY29uc3QgQm94Jik7CiAgICAgICAgIHN0YXRpYyBXaWR0aEFuZE1hcmdpbiBv
dXRPZkZsb3dOb25SZXBsYWNlZFdpZHRoQW5kTWFyZ2luKExheW91dENvbnRleHQmLCBjb25zdCBC
b3gmKTsKIAotICAgICAgICBzdGF0aWMgTGF5b3V0VW5pdCBmbG9hdGluZ1JlcGxhY2VkSGVpZ2h0
KExheW91dENvbnRleHQmLCBjb25zdCBCb3gmKTsKKyAgICAgICAgc3RhdGljIEhlaWdodEFuZE1h
cmdpbiBmbG9hdGluZ1JlcGxhY2VkSGVpZ2h0QW5kTWFyZ2luKExheW91dENvbnRleHQmLCBjb25z
dCBCb3gmKTsKICAgICAgICAgc3RhdGljIFdpZHRoQW5kTWFyZ2luIGZsb2F0aW5nUmVwbGFjZWRX
aWR0aEFuZE1hcmdpbihMYXlvdXRDb250ZXh0JiwgY29uc3QgQm94Jik7CiAKKyAgICAgICAgc3Rh
dGljIEhlaWdodEFuZE1hcmdpbiBmbG9hdGluZ05vblJlcGxhY2VkSGVpZ2h0QW5kTWFyZ2luKExh
eW91dENvbnRleHQmLCBjb25zdCBCb3gmKTsKICAgICAgICAgc3RhdGljIFdpZHRoQW5kTWFyZ2lu
IGZsb2F0aW5nTm9uUmVwbGFjZWRXaWR0aEFuZE1hcmdpbihMYXlvdXRDb250ZXh0JiwgY29uc3Qg
Qm94Jik7CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1h
dHRpbmdDb250ZXh0R2VvbWV0cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRp
bmdDb250ZXh0R2VvbWV0cnkuY3BwCmluZGV4IDM1NWQ5YjM2MGIwMGFkZDBjMDAxZjU4ZTBkODc3
NzZhYTQyMTBhZGIuLjZhNGZmZjBjZmNlZmU4MThmNDE2ZTBlNjdiMjhlNzUyMzdjMTBjNzggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRy
eS5jcHAKQEAgLTY0LDcgKzY0LDcgQEAgc3RhdGljIExheW91dFVuaXQgc2hyaW5rVG9GaXRXaWR0
aChMYXlvdXRDb250ZXh0JiwgY29uc3QgQm94JikKICAgICByZXR1cm4geyB9OwogfQogCi1zdGF0
aWMgTGF5b3V0VW5pdCBvdXRPZkZsb3dOb25SZXBsYWNlZEhlaWdodChMYXlvdXRDb250ZXh0JiBs
YXlvdXRDb250ZXh0LCBjb25zdCBCb3gmIGxheW91dEJveCkKK0Zvcm1hdHRpbmdDb250ZXh0OjpH
ZW9tZXRyeTo6SGVpZ2h0QW5kTWFyZ2luIEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6b3V0
T2ZGbG93Tm9uUmVwbGFjZWRIZWlnaHRBbmRNYXJnaW4oTGF5b3V0Q29udGV4dCYgbGF5b3V0Q29u
dGV4dCwgY29uc3QgQm94JiBsYXlvdXRCb3gpCiB7CiAgICAgQVNTRVJUKGxheW91dEJveC5pc091
dE9mRmxvd1Bvc2l0aW9uZWQoKSAmJiAhbGF5b3V0Qm94LnJlcGxhY2VkKCkpOwogCkBAIC0xMjUs
NyArMTI1LDcgQEAgc3RhdGljIExheW91dFVuaXQgb3V0T2ZGbG93Tm9uUmVwbGFjZWRIZWlnaHQo
TGF5b3V0Q29udGV4dCYgbGF5b3V0Q29udGV4dCwgY29uc3QKICAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiAgICAgfQogCi0gICAgcmV0dXJuIGNvbXB1dGVkSGVpZ2h0VmFsdWU7CisgICAg
cmV0dXJuIHsgY29tcHV0ZWRIZWlnaHRWYWx1ZSwgeyB9IH07CiB9CiAKIEZvcm1hdHRpbmdDb250
ZXh0OjpHZW9tZXRyeTo6V2lkdGhBbmRNYXJnaW4gRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5
OjpvdXRPZkZsb3dOb25SZXBsYWNlZFdpZHRoQW5kTWFyZ2luKExheW91dENvbnRleHQmIGxheW91
dENvbnRleHQsIGNvbnN0IEJveCYgbGF5b3V0Qm94KQpAQCAtMTg2LDEzICsxODYsMTMgQEAgRm9y
bWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpXaWR0aEFuZE1hcmdpbiBGb3JtYXR0aW5nQ29udGV4
dDo6R2VvbWV0cnk6Om91dE9mRmwKICAgICByZXR1cm4gV2lkdGhBbmRNYXJnaW4geyBjb21wdXRl
ZFdpZHRoVmFsdWUsIHsgfSB9OwogfQogCi1MYXlvdXRVbml0IEZvcm1hdHRpbmdDb250ZXh0OjpH
ZW9tZXRyeTo6b3V0T2ZGbG93UmVwbGFjZWRIZWlnaHQoTGF5b3V0Q29udGV4dCYgbGF5b3V0Q29u
dGV4dCwgY29uc3QgQm94JiBsYXlvdXRCb3gpCitGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6
OkhlaWdodEFuZE1hcmdpbiBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6Om91dE9mRmxvd1Jl
cGxhY2VkSGVpZ2h0QW5kTWFyZ2luKExheW91dENvbnRleHQmIGxheW91dENvbnRleHQsIGNvbnN0
IEJveCYgbGF5b3V0Qm94KQogewogICAgIEFTU0VSVChsYXlvdXRCb3guaXNPdXRPZkZsb3dQb3Np
dGlvbmVkKCkgJiYgbGF5b3V0Qm94LnJlcGxhY2VkKCkpOwogICAgIC8vIDEwLjYuNSBBYnNvbHV0
ZWx5IHBvc2l0aW9uZWQsIHJlcGxhY2VkIGVsZW1lbnRzCiAgICAgLy8KICAgICAvLyBUaGUgdXNl
ZCB2YWx1ZSBvZiAnaGVpZ2h0JyBpcyBkZXRlcm1pbmVkIGFzIGZvciBpbmxpbmUgcmVwbGFjZWQg
ZWxlbWVudHMuCi0gICAgcmV0dXJuIGlubGluZVJlcGxhY2VkSGVpZ2h0KGxheW91dENvbnRleHQs
IGxheW91dEJveCk7CisgICAgcmV0dXJuIGlubGluZVJlcGxhY2VkSGVpZ2h0QW5kTWFyZ2luKGxh
eW91dENvbnRleHQsIGxheW91dEJveCk7CiB9CiAKIEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRy
eTo6V2lkdGhBbmRNYXJnaW4gRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpvdXRPZkZsb3dS
ZXBsYWNlZFdpZHRoQW5kTWFyZ2luKExheW91dENvbnRleHQmIGxheW91dENvbnRleHQsIGNvbnN0
IEJveCYgbGF5b3V0Qm94KQpAQCAtMjA0LDcgKzIwNCw3IEBAIEZvcm1hdHRpbmdDb250ZXh0OjpH
ZW9tZXRyeTo6V2lkdGhBbmRNYXJnaW4gRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpvdXRP
ZkZsCiAgICAgcmV0dXJuIGlubGluZVJlcGxhY2VkV2lkdGhBbmRNYXJnaW4obGF5b3V0Q29udGV4
dCwgbGF5b3V0Qm94KTsKIH0KIAotc3RhdGljIExheW91dFVuaXQgZmxvYXRpbmdOb25SZXBsYWNl
ZEhlaWdodChMYXlvdXRDb250ZXh0JiBsYXlvdXRDb250ZXh0LCBjb25zdCBCb3gmIGxheW91dEJv
eCkKK0Zvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6SGVpZ2h0QW5kTWFyZ2luIEZvcm1hdHRp
bmdDb250ZXh0OjpHZW9tZXRyeTo6ZmxvYXRpbmdOb25SZXBsYWNlZEhlaWdodEFuZE1hcmdpbihM
YXlvdXRDb250ZXh0JiBsYXlvdXRDb250ZXh0LCBjb25zdCBCb3gmIGxheW91dEJveCkKIHsKICAg
ICBBU1NFUlQobGF5b3V0Qm94LmlzRmxvYXRpbmdQb3NpdGlvbmVkKCkgJiYgIWxheW91dEJveC5y
ZXBsYWNlZCgpKTsKICAgICAvLyAxMC42LjYgQ29tcGxpY2F0ZWQgY2FzZXMKQEAgLTIxMyw3ICsy
MTMsOCBAQCBzdGF0aWMgTGF5b3V0VW5pdCBmbG9hdGluZ05vblJlcGxhY2VkSGVpZ2h0KExheW91
dENvbnRleHQmIGxheW91dENvbnRleHQsIGNvbnN0CiAgICAgLy8KICAgICAvLyBJZiAnaGVpZ2h0
JyBpcyAnYXV0bycsIHRoZSBoZWlnaHQgZGVwZW5kcyBvbiB0aGUgZWxlbWVudCdzIGRlc2NlbmRh
bnRzIHBlciAxMC42LjcuCiAgICAgYXV0byBoZWlnaHQgPSBsYXlvdXRCb3guc3R5bGUoKS5sb2dp
Y2FsSGVpZ2h0KCk7Ci0gICAgcmV0dXJuIGhlaWdodC5pc0F1dG8oKSA/IGNvbnRlbnRIZWlnaHRG
b3JGb3JtYXR0aW5nQ29udGV4dFJvb3QobGF5b3V0Q29udGV4dCwgbGF5b3V0Qm94KSA6IExheW91
dFVuaXQoaGVpZ2h0LnZhbHVlKCkpOworICAgIGF1dG8gY29tcHV0ZWRIZWlnaHRWYWx1ZSA9IGhl
aWdodC5pc0F1dG8oKSA/IGNvbnRlbnRIZWlnaHRGb3JGb3JtYXR0aW5nQ29udGV4dFJvb3QobGF5
b3V0Q29udGV4dCwgbGF5b3V0Qm94KSA6IExheW91dFVuaXQgeyBoZWlnaHQudmFsdWUoKSB9Owor
ICAgIHJldHVybiBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OkhlaWdodEFuZE1hcmdpbiB7
IGNvbXB1dGVkSGVpZ2h0VmFsdWUsIHsgfSB9OwogfQogCiBGb3JtYXR0aW5nQ29udGV4dDo6R2Vv
bWV0cnk6OldpZHRoQW5kTWFyZ2luIEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6ZmxvYXRp
bmdOb25SZXBsYWNlZFdpZHRoQW5kTWFyZ2luKExheW91dENvbnRleHQmIGxheW91dENvbnRleHQs
IGNvbnN0IEJveCYgbGF5b3V0Qm94KQpAQCAtMjQyLDEyICsyNDMsMTIgQEAgRm9ybWF0dGluZ0Nv
bnRleHQ6Okdlb21ldHJ5OjpXaWR0aEFuZE1hcmdpbiBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0
cnk6OmZsb2F0aW4KICAgICByZXR1cm4gRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpXaWR0
aEFuZE1hcmdpbiB7IGNvbXB1dGVkV2lkdGhWYWx1ZSwgeyBjb21wdXRlZE1hcmdpbkxlZnRWYWx1
ZSwgY29tcHV0ZWRNYXJnaW5SaWdodFZhbHVlIH0gfTsKIH0KIAotTGF5b3V0VW5pdCBGb3JtYXR0
aW5nQ29udGV4dDo6R2VvbWV0cnk6OmZsb2F0aW5nUmVwbGFjZWRIZWlnaHQoTGF5b3V0Q29udGV4
dCYgbGF5b3V0Q29udGV4dCwgY29uc3QgQm94JiBsYXlvdXRCb3gpCitGb3JtYXR0aW5nQ29udGV4
dDo6R2VvbWV0cnk6OkhlaWdodEFuZE1hcmdpbiBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6
OmZsb2F0aW5nUmVwbGFjZWRIZWlnaHRBbmRNYXJnaW4oTGF5b3V0Q29udGV4dCYgbGF5b3V0Q29u
dGV4dCwgY29uc3QgQm94JiBsYXlvdXRCb3gpCiB7CiAgICAgQVNTRVJUKGxheW91dEJveC5pc0Zs
b2F0aW5nUG9zaXRpb25lZCgpICYmIGxheW91dEJveC5yZXBsYWNlZCgpKTsKICAgICAvLyAxMC42
LjIgSW5saW5lIHJlcGxhY2VkIGVsZW1lbnRzLCBibG9jay1sZXZlbCByZXBsYWNlZCBlbGVtZW50
cyBpbiBub3JtYWwgZmxvdywgJ2lubGluZS1ibG9jaycKICAgICAvLyByZXBsYWNlZCBlbGVtZW50
cyBpbiBub3JtYWwgZmxvdyBhbmQgZmxvYXRpbmcgcmVwbGFjZWQgZWxlbWVudHMKLSAgICByZXR1
cm4gaW5saW5lUmVwbGFjZWRIZWlnaHQobGF5b3V0Q29udGV4dCwgbGF5b3V0Qm94KTsKKyAgICBy
ZXR1cm4gaW5saW5lUmVwbGFjZWRIZWlnaHRBbmRNYXJnaW4obGF5b3V0Q29udGV4dCwgbGF5b3V0
Qm94KTsKIH0KIAogRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpXaWR0aEFuZE1hcmdpbiBG
b3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmZsb2F0aW5nUmVwbGFjZWRXaWR0aEFuZE1hcmdp
bihMYXlvdXRDb250ZXh0JiBsYXlvdXRDb250ZXh0LCBjb25zdCBCb3gmIGxheW91dEJveCkKQEAg
LTQ1NywxMyArNDU4LDEzIEBAIHN0YXRpYyBMYXlvdXRQb2ludCBvdXRPZkZsb3dSZXBsYWNlZFBv
c2l0aW9uKExheW91dENvbnRleHQmIGxheW91dENvbnRleHQsIGNvbnN0CiAgICAgcmV0dXJuIHsg
Y29tcHV0ZWRMZWZ0VmFsdWUsIGNvbXB1dGVkVG9wVmFsdWUgfTsKIH0KIAotTGF5b3V0VW5pdCBG
b3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6Om91dE9mRmxvd0hlaWdodChMYXlvdXRDb250ZXh0
JiBsYXlvdXRDb250ZXh0LCBjb25zdCBCb3gmIGxheW91dEJveCkKK0Zvcm1hdHRpbmdDb250ZXh0
OjpHZW9tZXRyeTo6SGVpZ2h0QW5kTWFyZ2luIEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6
b3V0T2ZGbG93SGVpZ2h0QW5kTWFyZ2luKExheW91dENvbnRleHQmIGxheW91dENvbnRleHQsIGNv
bnN0IEJveCYgbGF5b3V0Qm94KQogewogICAgIEFTU0VSVChsYXlvdXRCb3guaXNPdXRPZkZsb3dQ
b3NpdGlvbmVkKCkpOwogCiAgICAgaWYgKCFsYXlvdXRCb3gucmVwbGFjZWQoKSkKLSAgICAgICAg
cmV0dXJuIG91dE9mRmxvd05vblJlcGxhY2VkSGVpZ2h0KGxheW91dENvbnRleHQsIGxheW91dEJv
eCk7Ci0gICAgcmV0dXJuIG91dE9mRmxvd1JlcGxhY2VkSGVpZ2h0KGxheW91dENvbnRleHQsIGxh
eW91dEJveCk7CisgICAgICAgIHJldHVybiBvdXRPZkZsb3dOb25SZXBsYWNlZEhlaWdodEFuZE1h
cmdpbihsYXlvdXRDb250ZXh0LCBsYXlvdXRCb3gpOworICAgIHJldHVybiBvdXRPZkZsb3dSZXBs
YWNlZEhlaWdodEFuZE1hcmdpbihsYXlvdXRDb250ZXh0LCBsYXlvdXRCb3gpOwogfQogCiBGb3Jt
YXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OldpZHRoQW5kTWFyZ2luIEZvcm1hdHRpbmdDb250ZXh0
OjpHZW9tZXRyeTo6b3V0T2ZGbG93V2lkdGhBbmRNYXJnaW4oTGF5b3V0Q29udGV4dCYgbGF5b3V0
Q29udGV4dCwgY29uc3QgQm94JiBsYXlvdXRCb3gpCkBAIC00NzUsMTMgKzQ3NiwxMyBAQCBGb3Jt
YXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OldpZHRoQW5kTWFyZ2luIEZvcm1hdHRpbmdDb250ZXh0
OjpHZW9tZXRyeTo6b3V0T2ZGbAogICAgIHJldHVybiBvdXRPZkZsb3dSZXBsYWNlZFdpZHRoQW5k
TWFyZ2luKGxheW91dENvbnRleHQsIGxheW91dEJveCk7CiB9CiAKLUxheW91dFVuaXQgRm9ybWF0
dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpmbG9hdGluZ0hlaWdodChMYXlvdXRDb250ZXh0JiBsYXlv
dXRDb250ZXh0LCBjb25zdCBCb3gmIGxheW91dEJveCkKK0Zvcm1hdHRpbmdDb250ZXh0OjpHZW9t
ZXRyeTo6SGVpZ2h0QW5kTWFyZ2luIEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6ZmxvYXRp
bmdIZWlnaHRBbmRNYXJnaW4oTGF5b3V0Q29udGV4dCYgbGF5b3V0Q29udGV4dCwgY29uc3QgQm94
JiBsYXlvdXRCb3gpCiB7CiAgICAgQVNTRVJUKGxheW91dEJveC5pc0Zsb2F0aW5nUG9zaXRpb25l
ZCgpKTsKIAogICAgIGlmICghbGF5b3V0Qm94LnJlcGxhY2VkKCkpCi0gICAgICAgIHJldHVybiBm
bG9hdGluZ05vblJlcGxhY2VkSGVpZ2h0KGxheW91dENvbnRleHQsIGxheW91dEJveCk7Ci0gICAg
cmV0dXJuIGZsb2F0aW5nUmVwbGFjZWRIZWlnaHQobGF5b3V0Q29udGV4dCwgbGF5b3V0Qm94KTsK
KyAgICAgICAgcmV0dXJuIGZsb2F0aW5nTm9uUmVwbGFjZWRIZWlnaHRBbmRNYXJnaW4obGF5b3V0
Q29udGV4dCwgbGF5b3V0Qm94KTsKKyAgICByZXR1cm4gZmxvYXRpbmdSZXBsYWNlZEhlaWdodEFu
ZE1hcmdpbihsYXlvdXRDb250ZXh0LCBsYXlvdXRCb3gpOwogfQogCiBGb3JtYXR0aW5nQ29udGV4
dDo6R2VvbWV0cnk6OldpZHRoQW5kTWFyZ2luIEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6
ZmxvYXRpbmdXaWR0aEFuZE1hcmdpbihMYXlvdXRDb250ZXh0JiBsYXlvdXRDb250ZXh0LCBjb25z
dCBCb3gmIGxheW91dEJveCkKQEAgLTUwMiw3ICs1MDMsNyBAQCBMYXlvdXRQb2ludCBGb3JtYXR0
aW5nQ29udGV4dDo6R2VvbWV0cnk6Om91dE9mRmxvd1Bvc2l0aW9uKExheW91dENvbnRleHQmIGxh
eW91dAogICAgIHJldHVybiBvdXRPZkZsb3dSZXBsYWNlZFBvc2l0aW9uKGxheW91dENvbnRleHQs
IGxheW91dEJveCk7CiB9CiAKLUxheW91dFVuaXQgRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5
OjppbmxpbmVSZXBsYWNlZEhlaWdodChMYXlvdXRDb250ZXh0JiwgY29uc3QgQm94JiBsYXlvdXRC
b3gpCitGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OkhlaWdodEFuZE1hcmdpbiBGb3JtYXR0
aW5nQ29udGV4dDo6R2VvbWV0cnk6OmlubGluZVJlcGxhY2VkSGVpZ2h0QW5kTWFyZ2luKExheW91
dENvbnRleHQmLCBjb25zdCBCb3gmIGxheW91dEJveCkKIHsKICAgICBBU1NFUlQoKGxheW91dEJv
eC5pc091dE9mRmxvd1Bvc2l0aW9uZWQoKSB8fCBsYXlvdXRCb3guaXNGbG9hdGluZ1Bvc2l0aW9u
ZWQoKSB8fCBsYXlvdXRCb3guaXNJbkZsb3coKSkgJiYgbGF5b3V0Qm94LnJlcGxhY2VkKCkpOwog
ICAgIC8vIDEwLjYuMiBJbmxpbmUgcmVwbGFjZWQgZWxlbWVudHMsIGJsb2NrLWxldmVsIHJlcGxh
Y2VkIGVsZW1lbnRzIGluIG5vcm1hbCBmbG93LCAnaW5saW5lLWJsb2NrJyByZXBsYWNlZCBlbGVt
ZW50cyBpbiBub3JtYWwgZmxvdyBhbmQgZmxvYXRpbmcgcmVwbGFjZWQgZWxlbWVudHMKQEAgLTU0
MSw3ICs1NDIsNyBAQCBMYXlvdXRVbml0IEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6aW5s
aW5lUmVwbGFjZWRIZWlnaHQoTGF5b3V0Q29udGV4dCYsIGNvbgogICAgIH0gZWxzZQogICAgICAg
ICBjb21wdXRlZEhlaWdodFZhbHVlID0gaGVpZ2h0LnZhbHVlKCk7CiAKLSAgICByZXR1cm4gY29t
cHV0ZWRIZWlnaHRWYWx1ZTsKKyAgICByZXR1cm4geyBjb21wdXRlZEhlaWdodFZhbHVlLCB7IH0g
fTsKIH0KIAogRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpXaWR0aEFuZE1hcmdpbiBGb3Jt
YXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmlubGluZVJlcGxhY2VkV2lkdGhBbmRNYXJnaW4oTGF5
b3V0Q29udGV4dCYgbGF5b3V0Q29udGV4dCwgY29uc3QgQm94JiBsYXlvdXRCb3gsCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGlu
Z0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9j
a0Zvcm1hdHRpbmdDb250ZXh0LmNwcAppbmRleCA4ZjU4YTIyZjY2YjU1Mjk0YTcyNTFiNzg5MmRj
M2U3YzEzOWE2NjAyLi4zYzQyZjRjZWFkOTYzMjBkZTljMWNjZmIyY2QxYTUxNWUwODBlNjUzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9y
bWF0dGluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1h
dHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5jcHAKQEAgLTk0LDcgKzk0LDcgQEAgdm9pZCBC
bG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpsYXlvdXQoTGF5b3V0Q29udGV4dCYgbGF5b3V0Q29udGV4
dCwgRm9ybWF0dGluZ1N0YXQKICAgICAgICAgICAgIGF1dG8mIGxheW91dEJveCA9IGxheW91dFBh
aXItPmxheW91dEJveDsKICAgICAgICAgICAgIGF1dG8mIGRpc3BsYXlCb3ggPSBsYXlvdXRQYWly
LT5kaXNwbGF5Qm94OwogCi0gICAgICAgICAgICBjb21wdXRlSGVpZ2h0KGxheW91dENvbnRleHQs
IGxheW91dEJveCwgZGlzcGxheUJveCk7CisgICAgICAgICAgICBjb21wdXRlSGVpZ2h0QW5kTWFy
Z2luKGxheW91dENvbnRleHQsIGxheW91dEJveCwgZGlzcGxheUJveCk7CiAgICAgICAgICAgICAv
LyBBZGp1c3QgcG9zaXRpb24gbm93IHRoYXQgd2UgaGF2ZSBhbGwgdGhlIHByZXZpb3VzIGZsb2F0
cyBwbGFjZWQgaW4gdGhpcyBjb250ZXh0IC1pZiBuZWVkZWQuCiAgICAgICAgICAgICBmbG9hdGlu
Z0NvbnRleHQuY29tcHV0ZVBvc2l0aW9uKGxheW91dEJveCwgZGlzcGxheUJveCk7CiAgICAgICAg
ICAgICBpZiAoIWlzPENvbnRhaW5lcj4obGF5b3V0Qm94KSkKQEAgLTE0OSwyMCArMTQ5LDIyIEBA
IHZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZVdpZHRoQW5kTWFyZ2luKExheW91
dENvbnRleHQmIGxheW91dENvbnRleHQsCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAK
LXZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZUhlaWdodChMYXlvdXRDb250ZXh0
JiBsYXlvdXRDb250ZXh0LCBjb25zdCBCb3gmIGxheW91dEJveCwgRGlzcGxheTo6Qm94JiBkaXNw
bGF5Qm94KSBjb25zdAordm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlSGVpZ2h0
QW5kTWFyZ2luKExheW91dENvbnRleHQmIGxheW91dENvbnRleHQsIGNvbnN0IEJveCYgbGF5b3V0
Qm94LCBEaXNwbGF5OjpCb3gmIGRpc3BsYXlCb3gpIGNvbnN0CiB7CiAgICAgaWYgKGxheW91dEJv
eC5pc0luRmxvdygpKQotICAgICAgICByZXR1cm4gY29tcHV0ZUluRmxvd0hlaWdodChsYXlvdXRD
b250ZXh0LCBsYXlvdXRCb3gsIGRpc3BsYXlCb3gpOworICAgICAgICByZXR1cm4gY29tcHV0ZUlu
Rmxvd0hlaWdodEFuZE1hcmdpbihsYXlvdXRDb250ZXh0LCBsYXlvdXRCb3gsIGRpc3BsYXlCb3gp
OwogCiAgICAgaWYgKGxheW91dEJveC5pc0Zsb2F0aW5nUG9zaXRpb25lZCgpKQotICAgICAgICBy
ZXR1cm4gY29tcHV0ZUZsb2F0aW5nSGVpZ2h0KGxheW91dENvbnRleHQsIGxheW91dEJveCwgZGlz
cGxheUJveCk7CisgICAgICAgIHJldHVybiBjb21wdXRlRmxvYXRpbmdIZWlnaHRBbmRNYXJnaW4o
bGF5b3V0Q29udGV4dCwgbGF5b3V0Qm94LCBkaXNwbGF5Qm94KTsKIAogICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwogfQogCi12b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVJbkZs
b3dIZWlnaHQoTGF5b3V0Q29udGV4dCYgbGF5b3V0Q29udGV4dCwgY29uc3QgQm94JiBsYXlvdXRC
b3gsIERpc3BsYXk6OkJveCYgZGlzcGxheUJveCkgY29uc3QKK3ZvaWQgQmxvY2tGb3JtYXR0aW5n
Q29udGV4dDo6Y29tcHV0ZUluRmxvd0hlaWdodEFuZE1hcmdpbihMYXlvdXRDb250ZXh0JiBsYXlv
dXRDb250ZXh0LCBjb25zdCBCb3gmIGxheW91dEJveCwgRGlzcGxheTo6Qm94JiBkaXNwbGF5Qm94
KSBjb25zdAogewotICAgIGRpc3BsYXlCb3guc2V0SGVpZ2h0KEdlb21ldHJ5OjppbkZsb3dIZWln
aHQobGF5b3V0Q29udGV4dCwgbGF5b3V0Qm94KSk7CisgICAgYXV0byBoZWlnaHRBbmRNYXJnaW4g
PSBHZW9tZXRyeTo6aW5GbG93SGVpZ2h0QW5kTWFyZ2luKGxheW91dENvbnRleHQsIGxheW91dEJv
eCk7CisgICAgZGlzcGxheUJveC5zZXRIZWlnaHQoaGVpZ2h0QW5kTWFyZ2luLmhlaWdodCk7Cisg
ICAgZGlzcGxheUJveC5zZXRWZXJ0aWNhbE1hcmdpbihoZWlnaHRBbmRNYXJnaW4ubWFyZ2luKTsK
IH0KIAogdm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlSW5GbG93V2lkdGhBbmRN
YXJnaW4oTGF5b3V0Q29udGV4dCYgbGF5b3V0Q29udGV4dCwgY29uc3QgQm94JiBsYXlvdXRCb3gs
IERpc3BsYXk6OkJveCYgZGlzcGxheUJveCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5oIGIvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0
LmgKaW5kZXggNThhYjJlZGZiMjIxYTA4ZTM0NTA5OGNjZTE1MWZkMWFiOThiOGZmMS4uODU3ZmUx
NTJhMTkwNmViZGVhYTQ3ODRmNjBiZDc1MThiZmY5M2RiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdD
b250ZXh0LmgKQEAgLTUyLDI0ICs1MiwyNCBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgdm9p
ZCBjb21wdXRlV2lkdGhBbmRNYXJnaW4oTGF5b3V0Q29udGV4dCYsIGNvbnN0IEJveCYsIERpc3Bs
YXk6OkJveCYpIGNvbnN0OwotICAgIHZvaWQgY29tcHV0ZUhlaWdodChMYXlvdXRDb250ZXh0Jiwg
Y29uc3QgQm94JiwgRGlzcGxheTo6Qm94JikgY29uc3Q7CisgICAgdm9pZCBjb21wdXRlSGVpZ2h0
QW5kTWFyZ2luKExheW91dENvbnRleHQmLCBjb25zdCBCb3gmLCBEaXNwbGF5OjpCb3gmKSBjb25z
dDsKIAogICAgIHZvaWQgY29tcHV0ZVN0YXRpY1Bvc2l0aW9uKExheW91dENvbnRleHQmLCBjb25z
dCBCb3gmLCBEaXNwbGF5OjpCb3gmKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIGNvbXB1dGVJ
bkZsb3dQb3NpdGlvbmVkUG9zaXRpb24oTGF5b3V0Q29udGV4dCYsIGNvbnN0IEJveCYsIERpc3Bs
YXk6OkJveCYpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgY29tcHV0ZUluRmxvd1dpZHRoQW5k
TWFyZ2luKExheW91dENvbnRleHQmLCBjb25zdCBCb3gmLCBEaXNwbGF5OjpCb3gmKSBjb25zdDsK
LSAgICB2b2lkIGNvbXB1dGVJbkZsb3dIZWlnaHQoTGF5b3V0Q29udGV4dCYsIGNvbnN0IEJveCYs
IERpc3BsYXk6OkJveCYpIGNvbnN0OworICAgIHZvaWQgY29tcHV0ZUluRmxvd0hlaWdodEFuZE1h
cmdpbihMYXlvdXRDb250ZXh0JiwgY29uc3QgQm94JiwgRGlzcGxheTo6Qm94JikgY29uc3Q7CiAK
ICAgICAvLyBUaGlzIGNsYXNzIGltcGxlbWVudHMgcG9zaXRpb25pbmcgYW5kIHNpemluZyBmb3Ig
Ym94ZXMgcGFydGljaXBhdGluZyBpbiBhIGJsb2NrIGZvcm1hdHRpbmcgY29udGV4dC4KICAgICBj
bGFzcyBHZW9tZXRyeSB7CiAgICAgcHVibGljOgotICAgICAgICBzdGF0aWMgTGF5b3V0VW5pdCBp
bkZsb3dIZWlnaHQoTGF5b3V0Q29udGV4dCYsIGNvbnN0IEJveCYpOworICAgICAgICBzdGF0aWMg
Rm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpIZWlnaHRBbmRNYXJnaW4gaW5GbG93SGVpZ2h0
QW5kTWFyZ2luKExheW91dENvbnRleHQmLCBjb25zdCBCb3gmKTsKICAgICAgICAgc3RhdGljIEZv
cm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6V2lkdGhBbmRNYXJnaW4gaW5GbG93V2lkdGhBbmRN
YXJnaW4oTGF5b3V0Q29udGV4dCYsIGNvbnN0IEJveCYpOwogCiAgICAgICAgIHN0YXRpYyBMYXlv
dXRQb2ludCBzdGF0aWNQb3NpdGlvbihMYXlvdXRDb250ZXh0JiwgY29uc3QgQm94Jik7CiAgICAg
ICAgIHN0YXRpYyBMYXlvdXRQb2ludCBpbkZsb3dQb3NpdGlvbmVkUG9zaXRpb24oTGF5b3V0Q29u
dGV4dCYsIGNvbnN0IEJveCYpOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgc3RhdGljIExheW91
dFVuaXQgaW5GbG93Tm9uUmVwbGFjZWRIZWlnaHQoTGF5b3V0Q29udGV4dCYsIGNvbnN0IEJveCYp
OworICAgICAgICBzdGF0aWMgRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpIZWlnaHRBbmRN
YXJnaW4gaW5GbG93Tm9uUmVwbGFjZWRIZWlnaHRBbmRNYXJnaW4oTGF5b3V0Q29udGV4dCYsIGNv
bnN0IEJveCYpOwogICAgICAgICBzdGF0aWMgRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpX
aWR0aEFuZE1hcmdpbiBpbkZsb3dOb25SZXBsYWNlZFdpZHRoQW5kTWFyZ2luKExheW91dENvbnRl
eHQmLCBjb25zdCBCb3gmLCBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IHByZWNvbXB1dGVkV2lk
dGggPSBzdGQ6Om51bGxvcHQpOwogICAgICAgICBzdGF0aWMgRm9ybWF0dGluZ0NvbnRleHQ6Okdl
b21ldHJ5OjpXaWR0aEFuZE1hcmdpbiBpbkZsb3dSZXBsYWNlZFdpZHRoQW5kTWFyZ2luKExheW91
dENvbnRleHQmLCBjb25zdCBCb3gmKTsKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnku
Y3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRp
bmdDb250ZXh0R2VvbWV0cnkuY3BwCmluZGV4IDU3NGI4NTFlOTM0NTY2YTQyMGQ2N2FmYzQ5ZmQ1
Y2ZiNDQ3YzhhNzEuLmE4M2ZlOGMyMjVlZmU0OGU2NzZiYjQzY2IxODQ2MjUxZWU0MTI2ODkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3Jt
YXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxv
Y2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHAKQEAgLTU0LDcg
KzU0LDcgQEAgc3RhdGljIGNvbnN0IENvbnRhaW5lciYgaW5pdGlhbENvbnRhaW5pbmdCbG9jayhj
b25zdCBCb3gmIGxheW91dEJveCkKICAgICByZXR1cm4gKmNvbnRhaW5pbmdCbG9jazsKIH0KIAot
TGF5b3V0VW5pdCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6aW5GbG93Tm9uUmVw
bGFjZWRIZWlnaHQoTGF5b3V0Q29udGV4dCYgbGF5b3V0Q29udGV4dCwgY29uc3QgQm94JiBsYXlv
dXRCb3gpCitGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OkhlaWdodEFuZE1hcmdpbiBCbG9j
a0Zvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6aW5GbG93Tm9uUmVwbGFjZWRIZWlnaHRBbmRN
YXJnaW4oTGF5b3V0Q29udGV4dCYgbGF5b3V0Q29udGV4dCwgY29uc3QgQm94JiBsYXlvdXRCb3gp
CiB7CiAgICAgQVNTRVJUKGxheW91dEJveC5pc0luRmxvdygpICYmICFsYXlvdXRCb3gucmVwbGFj
ZWQoKSk7CiAKQEAgLTEwOCw5ICsxMDgsOSBAQCBMYXlvdXRVbml0IEJsb2NrRm9ybWF0dGluZ0Nv
bnRleHQ6Okdlb21ldHJ5OjppbkZsb3dOb25SZXBsYWNlZEhlaWdodChMYXlvdXRDb250ZQogCiAg
ICAgYXV0byBjb21wdXRlZEhlaWdodCA9IGNvbXB1dGUoKTsKICAgICBpZiAoIWlzU3RyZXRjaGVk
VG9WaWV3cG9ydChsYXlvdXRDb250ZXh0LCBsYXlvdXRCb3gpKQotICAgICAgICByZXR1cm4gY29t
cHV0ZWRIZWlnaHQ7CisgICAgICAgIHJldHVybiB7IGNvbXB1dGVkSGVpZ2h0LCB7IH0gfTsKICAg
ICBhdXRvIGluaXRpYWxDb250YWluaW5nQmxvY2tIZWlnaHQgPSBsYXlvdXRDb250ZXh0LmRpc3Bs
YXlCb3hGb3JMYXlvdXRCb3goaW5pdGlhbENvbnRhaW5pbmdCbG9jayhsYXlvdXRCb3gpKS0+Y29u
dGVudEJveCgpLmhlaWdodCgpOwotICAgIHJldHVybiBzdGQ6Om1heChjb21wdXRlZEhlaWdodCwg
aW5pdGlhbENvbnRhaW5pbmdCbG9ja0hlaWdodCk7CisgICAgcmV0dXJuIHsgc3RkOjptYXgoY29t
cHV0ZWRIZWlnaHQsIGluaXRpYWxDb250YWluaW5nQmxvY2tIZWlnaHQpLCB7IH0gfTsKIH0KIAog
Rm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpXaWR0aEFuZE1hcmdpbiBCbG9ja0Zvcm1hdHRp
bmdDb250ZXh0OjpHZW9tZXRyeTo6aW5GbG93Tm9uUmVwbGFjZWRXaWR0aEFuZE1hcmdpbihMYXlv
dXRDb250ZXh0JiBsYXlvdXRDb250ZXh0LCBjb25zdCBCb3gmIGxheW91dEJveCwKQEAgLTMxOSwx
NSArMzE5LDE1IEBAIExheW91dFBvaW50IEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5
OjppbkZsb3dQb3NpdGlvbmVkUG9zaXRpb24oTGF5b3V0Q29uCiAgICAgcmV0dXJuIHsgZGlzcGxh
eUJveC5sZWZ0KCkgKyBsZWZ0RGVsdGEsIGRpc3BsYXlCb3gudG9wKCkgKyB0b3BEZWx0YSB9Owog
fQogCi1MYXlvdXRVbml0IEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjppbkZsb3dI
ZWlnaHQoTGF5b3V0Q29udGV4dCYgbGF5b3V0Q29udGV4dCwgY29uc3QgQm94JiBsYXlvdXRCb3gp
CitGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OkhlaWdodEFuZE1hcmdpbiBCbG9ja0Zvcm1h
dHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6aW5GbG93SGVpZ2h0QW5kTWFyZ2luKExheW91dENvbnRl
eHQmIGxheW91dENvbnRleHQsIGNvbnN0IEJveCYgbGF5b3V0Qm94KQogewogICAgIEFTU0VSVChs
YXlvdXRCb3guaXNJbkZsb3coKSk7CiAKICAgICBpZiAoIWxheW91dEJveC5yZXBsYWNlZCgpKQot
ICAgICAgICByZXR1cm4gaW5GbG93Tm9uUmVwbGFjZWRIZWlnaHQobGF5b3V0Q29udGV4dCwgbGF5
b3V0Qm94KTsKKyAgICAgICAgcmV0dXJuIGluRmxvd05vblJlcGxhY2VkSGVpZ2h0QW5kTWFyZ2lu
KGxheW91dENvbnRleHQsIGxheW91dEJveCk7CiAgICAgLy8gMTAuNi4yIElubGluZSByZXBsYWNl
ZCBlbGVtZW50cywgYmxvY2stbGV2ZWwgcmVwbGFjZWQgZWxlbWVudHMgaW4gbm9ybWFsIGZsb3cs
ICdpbmxpbmUtYmxvY2snCiAgICAgLy8gcmVwbGFjZWQgZWxlbWVudHMgaW4gbm9ybWFsIGZsb3cg
YW5kIGZsb2F0aW5nIHJlcGxhY2VkIGVsZW1lbnRzCi0gICAgcmV0dXJuIEZvcm1hdHRpbmdDb250
ZXh0OjpHZW9tZXRyeTo6aW5saW5lUmVwbGFjZWRIZWlnaHQobGF5b3V0Q29udGV4dCwgbGF5b3V0
Qm94KTsKKyAgICByZXR1cm4gRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjppbmxpbmVSZXBs
YWNlZEhlaWdodEFuZE1hcmdpbihsYXlvdXRDb250ZXh0LCBsYXlvdXRCb3gpOwogfQogCiBGb3Jt
YXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OldpZHRoQW5kTWFyZ2luIEJsb2NrRm9ybWF0dGluZ0Nv
bnRleHQ6Okdlb21ldHJ5OjppbkZsb3dXaWR0aEFuZE1hcmdpbihMYXlvdXRDb250ZXh0JiBsYXlv
dXRDb250ZXh0LCBjb25zdCBCb3gmIGxheW91dEJveCkK
</data>

          </attachment>
      

    </bug>

</bugzilla>