<?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>181348</bug_id>
          
          <creation_ts>2018-01-05 14:57:40 -0800</creation_ts>
          <short_desc>[RenderTreeBuilder] Move RenderBlockFlow addChild logic to RenderTreeBuilder</short_desc>
          <delta_ts>2018-01-08 14:04:07 -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>1386293</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2018-01-05 14:57:40 -0800</bug_when>
    <thetext>ssia</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1386295</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-01-05 14:58:46 -0800</bug_when>
    <thetext>&lt;rdar://problem/36328117&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1386297</commentid>
    <comment_count>2</comment_count>
      <attachid>330590</attachid>
    <who name="alan">zalan</who>
    <bug_when>2018-01-05 15:01:41 -0800</bug_when>
    <thetext>Created attachment 330590
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1386479</commentid>
    <comment_count>3</comment_count>
      <attachid>330590</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2018-01-06 04:02:01 -0800</bug_when>
    <thetext>Comment on attachment 330590
Patch

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

&gt; Source/WebCore/rendering/RenderBlockFlow.cpp:3835
&gt;  void RenderBlockFlow::addChild(RenderTreeBuilder&amp; builder, RenderPtr&lt;RenderObject&gt; newChild, RenderObject* beforeChild)
&gt;  {
&gt; -    if (multiColumnFlow() &amp;&amp; (!isFieldset() || !newChild-&gt;isLegend()))
&gt; -        return builder.insertChild(*multiColumnFlow(), WTFMove(newChild), beforeChild);
&gt; -    auto* beforeChildOrPlaceholder = beforeChild;
&gt; -    if (auto* containingFragmentedFlow = enclosingFragmentedFlow())
&gt; -        beforeChildOrPlaceholder = containingFragmentedFlow-&gt;resolveMovedChild(beforeChild);
&gt; -    RenderBlock::addChild(builder, WTFMove(newChild), beforeChildOrPlaceholder);
&gt; +    builder.insertChildToRenderBlockFlow(*this, WTFMove(newChild), beforeChild);
&gt;  }

Are there still some RenderBlockFlow subclasses with custom addChilds left? If not this could just move completely.

&gt; Source/WebCore/rendering/updating/RenderTreeBuilderBlockFlow.h:32
&gt; +class RenderTreeBuilder::BlockFlow {

Not sure how many of these we want. Could all Block stuff go to a single helper?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1386827</commentid>
    <comment_count>4</comment_count>
      <attachid>330716</attachid>
    <who name="alan">zalan</who>
    <bug_when>2018-01-08 11:42:06 -0800</bug_when>
    <thetext>Created attachment 330716
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1386906</commentid>
    <comment_count>5</comment_count>
      <attachid>330716</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-01-08 14:04:05 -0800</bug_when>
    <thetext>Comment on attachment 330716
Patch

Clearing flags on attachment: 330716

Committed r226537: &lt;https://trac.webkit.org/changeset/226537&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1386907</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-01-08 14:04:07 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>330590</attachid>
            <date>2018-01-05 15:01:41 -0800</date>
            <delta_ts>2018-01-08 11:42:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-181348-20180105150140.patch</filename>
            <type>text/plain</type>
            <size>15371</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI2NDM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWY2Y2VlODg0ZDY3OTUy
MmYxZjYyYzZmYWI1NTdiMTI3NGM0NGZkMy4uMDNiNjY3MmEzZmJhZmQ2Yjc5NWI4NTA3MGQ3YTgz
Yzk1NTM5MzMzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE4LTAxLTA1ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1JlbmRlclRyZWVCdWlsZGVy
XSBNb3ZlIFJlbmRlckJsb2NrRmxvdyBhZGRDaGlsZCBsb2dpYyB0byBSZW5kZXJUcmVlQnVpbGRl
cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgxMzQ4
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNjMyODExNz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGlzIGFib3V0IG1vdmluZyB0aGUgY29k
ZSwgbm8gY2xlYW51cCBhbmQvb3Igbm9ybWFsaXphdGlvbiAodW5mb3J0dW5hdGVseSBpdCBhbHNv
IG1lYW5zCisgICAgICAgIHNvbWUgdGVtcG9yYXJ5IGNoYW5nZXMpLiAgCisKKyAgICAgICAgTm8g
Y2hhbmdlIGluIGZ1bmN0aW9uYWxpdHkuCisKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAg
ICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlckJsb2NrRmxvdy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9ja0Zs
b3c6OmFkZENoaWxkKToKKyAgICAgICAgKiByZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1
aWxkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVHJlZUJ1aWxkZXI6OlJlbmRlclRy
ZWVCdWlsZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRyZWVCdWlsZGVyOjppbnNlcnRD
aGlsZFRvUmVuZGVyQmxvY2tGbG93KToKKyAgICAgICAgKiByZW5kZXJpbmcvdXBkYXRpbmcvUmVu
ZGVyVHJlZUJ1aWxkZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRyZWVCdWlsZGVyOjpi
bG9ja0Zsb3dCdWlsZGVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJl
ZUJ1aWxkZXJCbG9ja0Zsb3cuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRy
ZWVCdWlsZGVyOjpCbG9ja0Zsb3c6OkJsb2NrRmxvdyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUcmVlQnVpbGRlcjo6QmxvY2tGbG93OjppbnNlcnRDaGlsZCk6CisgICAgICAgICogcmVuZGVy
aW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyQmxvY2tGbG93Lmg6IEFkZGVkLgorCiAyMDE4
LTAxLTA0ICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+CiAKICAgICAgICAg
QVg6IEltcGxlbWVudCB1cGRhdGVkIENTUzMgU3BlZWNoIGZvciAnc3BlYWsnIGFuZCAnc3BlYWst
YXMnIHByb3BlcnRpZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIv
U291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggYTRiYWY1OTE0ZjEyYjJjNjk3NWQ2M2I1
ODZiODZkMDFiN2RiYjhjYi4uY2FkOTQyM2ZhZjEyZmZjNmFkZTE4YjMxYzlhMjViMTA4M2U1NzUx
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dl
YkNvcmUvU291cmNlcy50eHQKQEAgLTE5ODQsNiArMTk4NCw3IEBAIHJlbmRlcmluZy9zdmcvU1ZH
VGV4dE1ldHJpY3NCdWlsZGVyLmNwcAogcmVuZGVyaW5nL3N2Zy9TVkdUZXh0UXVlcnkuY3BwCiAK
IHJlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlci5jcHAKK3JlbmRlcmluZy91cGRh
dGluZy9SZW5kZXJUcmVlQnVpbGRlckJsb2NrRmxvdy5jcHAKIHJlbmRlcmluZy91cGRhdGluZy9S
ZW5kZXJUcmVlQnVpbGRlckZpcnN0TGV0dGVyLmNwcAogcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRl
clRyZWVCdWlsZGVyRm9ybUNvbnRyb2xzLmNwcAogcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRy
ZWVCdWlsZGVyTGlzdC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCBkZTE5MGExMmYxZTAzMDllYzI1YmJhZWJhMzU2MTIwYzlh
M2Y3YjdhLi41NjZlMGViNzlhMzUwN2RhMTY5NDg1NWEzMDI5YTc4MjEyYzQ3NDI3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0z
OTMsNiArMzkzLDggQEAKIAkJMTE5MzQwNzkxRkU4QjkyMzAwOTM1RjFFIC8qIFJlbmRlclRyZWVC
dWlsZGVyVGFibGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDExOTM0MDc3MUZFOEI5MjMwMDkzNUYxRSAvKiBSZW5kZXJUcmVlQnVpbGRlclRhYmxlLmgg
Ki87IH07CiAJCTExOTM0MDhBMUZFQjM1NUQwMDkzNUYxRSAvKiBSZW5kZXJUcmVlQnVpbGRlclJ1
YnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDExOTM0
MDg4MUZFQjM1NUQwMDkzNUYxRSAvKiBSZW5kZXJUcmVlQnVpbGRlclJ1YnkuaCAqLzsgfTsKIAkJ
MTE5MzQwOTcxRkVENzE1NTAwOTM1RjFFIC8qIFJlbmRlclRyZWVCdWlsZGVyRm9ybUNvbnRyb2xz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxMTkzNDA5
NTFGRUQ3MTU1MDA5MzVGMUUgLyogUmVuZGVyVHJlZUJ1aWxkZXJGb3JtQ29udHJvbHMuaCAqLzsg
fTsKKwkJMTFDNUYxMEEyMDAwMzBFNjAwMDFBRTYwIC8qIFJlbmRlclRyZWVCdWlsZGVyQmxvY2tG
bG93LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDEx
QzVGMTA4MjAwMDMwRTYwMDAxQUU2MCAvKiBSZW5kZXJUcmVlQnVpbGRlckJsb2NrRmxvdy5jcHAg
Ki87IH07CisJCTExQzVGMTBCMjAwMDMwRTYwMDAxQUU2MCAvKiBSZW5kZXJUcmVlQnVpbGRlckJs
b2NrRmxvdy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MTFDNUYxMDkyMDAwMzBFNjAwMDFBRTYwIC8qIFJlbmRlclRyZWVCdWlsZGVyQmxvY2tGbG93Lmgg
Ki87IH07CiAJCTExRTA2N0VFMUU2MjQ2RTUwMDE2MkQxNiAvKiBTaW1wbGVMaW5lTGF5b3V0Q292
ZXJhZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDEx
RTA2N0VEMUU2MjQ2RTUwMDE2MkQxNiAvKiBTaW1wbGVMaW5lTGF5b3V0Q292ZXJhZ2UuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxNDAwRDdBODE3
MTM2RUE3MDA3N0NFMDUgLyogU2NyaXB0V3JhcHBhYmxlSW5saW5lcy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQwMEQ3QTcxNzEzNkVBNzAwNzdDRTA1
IC8qIFNjcmlwdFdyYXBwYWJsZUlubGluZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQkxNDAzQjk5NzA5RUIxM0FGMDA3OTdDN0YgLyogRE9NV2lu
ZG93LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDAz
Qjk5NTA5RUIxM0FGMDA3OTdDN0YgLyogRE9NV2luZG93LmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTU1ODMsNiArNTU4NSw4IEBACiAJCTExOTM0
MDg4MUZFQjM1NUQwMDkzNUYxRSAvKiBSZW5kZXJUcmVlQnVpbGRlclJ1YnkuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUmVuZGVyVHJlZUJ1aWxkZXJSdWJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTExOTM0MDk0MUZFRDcxNTUwMDkzNUYxRSAvKiBSZW5kZXJUcmVlQnVpbGRlckZvcm1Db250
cm9scy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJUcmVlQnVpbGRlckZvcm1Db250cm9s
cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTExOTM0MDk1MUZFRDcxNTUwMDkz
NUYxRSAvKiBSZW5kZXJUcmVlQnVpbGRlckZvcm1Db250cm9scy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBS
ZW5kZXJUcmVlQnVpbGRlckZvcm1Db250cm9scy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkxMUM1RjEwODIwMDAzMEU2MDAwMUFFNjAgLyogUmVuZGVyVHJlZUJ1aWxkZXJCbG9ja0Zs
b3cuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyVHJlZUJ1aWxkZXJCbG9ja0Zsb3cuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxMUM1RjEwOTIwMDAzMEU2MDAwMUFFNjAg
LyogUmVuZGVyVHJlZUJ1aWxkZXJCbG9ja0Zsb3cuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyVHJl
ZUJ1aWxkZXJCbG9ja0Zsb3cuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTFFMDY3
RUIxRTYyNDYxMzAwMTYyRDE2IC8qIFNpbXBsZUxpbmVMYXlvdXRDb3ZlcmFnZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTaW1wbGVMaW5lTGF5b3V0Q292ZXJhZ2Uu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxMUUwNjdFRDFFNjI0NkU1MDAxNjJE
MTYgLyogU2ltcGxlTGluZUxheW91dENvdmVyYWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFNpbXBsZUxpbmVMYXlvdXRDb3ZlcmFnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkxNDAwRDdBNzE3MTM2RUE3MDA3N0NFMDUgLyogU2NyaXB0V3JhcHBhYmxlSW5s
aW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JpcHRXcmFwcGFibGVJ
bmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNDYwOSw2ICsyNDYxMyw4
IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQlFNDdDMzkyMDFGRTZFMEQ5MDBCQkJDNkIgLyogUmVu
ZGVyVHJlZUJ1aWxkZXIuY3BwICovLAogCQkJCUU0N0MzOTJBMUZFNkUwREUwMEJCQkM2QiAvKiBS
ZW5kZXJUcmVlQnVpbGRlci5oICovLAorCQkJCTExQzVGMTA4MjAwMDMwRTYwMDAxQUU2MCAvKiBS
ZW5kZXJUcmVlQnVpbGRlckJsb2NrRmxvdy5jcHAgKi8sCisJCQkJMTFDNUYxMDkyMDAwMzBFNjAw
MDFBRTYwIC8qIFJlbmRlclRyZWVCdWlsZGVyQmxvY2tGbG93LmggKi8sCiAJCQkJRTQ3QzM5MjEx
RkU2RTBEQTAwQkJCQzZCIC8qIFJlbmRlclRyZWVCdWlsZGVyRmlyc3RMZXR0ZXIuY3BwICovLAog
CQkJCUU0N0MzOTI2MUZFNkUwREMwMEJCQkM2QiAvKiBSZW5kZXJUcmVlQnVpbGRlckZpcnN0TGV0
dGVyLmggKi8sCiAJCQkJMTE5MzQwOTQxRkVENzE1NTAwOTM1RjFFIC8qIFJlbmRlclRyZWVCdWls
ZGVyRm9ybUNvbnRyb2xzLmNwcCAqLywKQEAgLTI5MDM1LDYgKzI5MDQxLDcgQEAKIAkJCQlCQ0VB
NDg4NzA5N0Q5MzAyMDA5NEM5RTQgLyogUmVuZGVyVGhlbWVNYWMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTkzRjE5OThDMDgyNDVFNTkwMDFFOUFCQyAvKiBSZW5kZXJUcmVlQXNUZXh0LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlFNDdDMzkyRDFGRTZFMEYzMDBCQkJDNkIgLyogUmVuZGVyVHJlZUJ1aWxk
ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTExQzVGMTBCMjAwMDMwRTYwMDAxQUU2MCAvKiBSZW5k
ZXJUcmVlQnVpbGRlckJsb2NrRmxvdy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQ3QzM5MzAxRkU2
RTBGRDAwQkJCQzZCIC8qIFJlbmRlclRyZWVCdWlsZGVyRmlyc3RMZXR0ZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTExOTM0MDk3MUZFRDcxNTUwMDkzNUYxRSAvKiBSZW5kZXJUcmVlQnVpbGRlckZv
cm1Db250cm9scy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQ3QzM5MzIxRkU2RTEwNTAwQkJCQzZC
IC8qIFJlbmRlclRyZWVCdWlsZGVyTGlzdC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwCmluZGV4IGJjOGY1OGY4N2NjZTJhYWRm
MDE1ZmNiNDgzMmRiYTBjYjQ2ODhiMWEuLmExOTc0YWVlMzcyOTcxZTllYzE4YjczYjUxMTRjYWUz
OTU0ZDQ0YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9j
a0Zsb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cu
Y3BwCkBAIC0zODMxLDEyICszODMxLDcgQEAgdm9pZCBSZW5kZXJCbG9ja0Zsb3c6OmxheW91dEV4
Y2x1ZGVkQ2hpbGRyZW4oYm9vbCByZWxheW91dENoaWxkcmVuKQogCiB2b2lkIFJlbmRlckJsb2Nr
Rmxvdzo6YWRkQ2hpbGQoUmVuZGVyVHJlZUJ1aWxkZXImIGJ1aWxkZXIsIFJlbmRlclB0cjxSZW5k
ZXJPYmplY3Q+IG5ld0NoaWxkLCBSZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxkKQogewotICAgIGlm
IChtdWx0aUNvbHVtbkZsb3coKSAmJiAoIWlzRmllbGRzZXQoKSB8fCAhbmV3Q2hpbGQtPmlzTGVn
ZW5kKCkpKQotICAgICAgICByZXR1cm4gYnVpbGRlci5pbnNlcnRDaGlsZCgqbXVsdGlDb2x1bW5G
bG93KCksIFdURk1vdmUobmV3Q2hpbGQpLCBiZWZvcmVDaGlsZCk7Ci0gICAgYXV0byogYmVmb3Jl
Q2hpbGRPclBsYWNlaG9sZGVyID0gYmVmb3JlQ2hpbGQ7Ci0gICAgaWYgKGF1dG8qIGNvbnRhaW5p
bmdGcmFnbWVudGVkRmxvdyA9IGVuY2xvc2luZ0ZyYWdtZW50ZWRGbG93KCkpCi0gICAgICAgIGJl
Zm9yZUNoaWxkT3JQbGFjZWhvbGRlciA9IGNvbnRhaW5pbmdGcmFnbWVudGVkRmxvdy0+cmVzb2x2
ZU1vdmVkQ2hpbGQoYmVmb3JlQ2hpbGQpOwotICAgIFJlbmRlckJsb2NrOjphZGRDaGlsZChidWls
ZGVyLCBXVEZNb3ZlKG5ld0NoaWxkKSwgYmVmb3JlQ2hpbGRPclBsYWNlaG9sZGVyKTsKKyAgICBi
dWlsZGVyLmluc2VydENoaWxkVG9SZW5kZXJCbG9ja0Zsb3coKnRoaXMsIFdURk1vdmUobmV3Q2hp
bGQpLCBiZWZvcmVDaGlsZCk7CiB9CiAKIFJlbmRlclB0cjxSZW5kZXJPYmplY3Q+IFJlbmRlckJs
b2NrRmxvdzo6dGFrZUNoaWxkKFJlbmRlck9iamVjdCYgb2xkQ2hpbGQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyLmNwcApp
bmRleCAzMTkyZDRhNzI5ZDE1YTUzMGE0ZTIyZmI0MWRkODMzOWE2NWIzNTY5Li42MWQ2NTUxN2Rm
Y2UyMDRmODg3NDk3YTdjZDMyMjY4Y2ExNDM4MjYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlci5jcHAKQEAgLTMzLDYg
KzMzLDcgQEAKICNpbmNsdWRlICJSZW5kZXJSdWJ5UnVuLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGFi
bGVSb3cuaCIKICNpbmNsdWRlICJSZW5kZXJUZXh0LmgiCisjaW5jbHVkZSAiUmVuZGVyVHJlZUJ1
aWxkZXJCbG9ja0Zsb3cuaCIKICNpbmNsdWRlICJSZW5kZXJUcmVlQnVpbGRlckZpcnN0TGV0dGVy
LmgiCiAjaW5jbHVkZSAiUmVuZGVyVHJlZUJ1aWxkZXJGb3JtQ29udHJvbHMuaCIKICNpbmNsdWRl
ICJSZW5kZXJUcmVlQnVpbGRlckxpc3QuaCIKQEAgLTUyLDYgKzUzLDcgQEAgUmVuZGVyVHJlZUJ1
aWxkZXI6OlJlbmRlclRyZWVCdWlsZGVyKFJlbmRlclZpZXcmIHZpZXcpCiAgICAgLCBtX3RhYmxl
QnVpbGRlcihzdGQ6Om1ha2VfdW5pcXVlPFRhYmxlPigqdGhpcykpCiAgICAgLCBtX3J1YnlCdWls
ZGVyKHN0ZDo6bWFrZV91bmlxdWU8UnVieT4oKnRoaXMpKQogICAgICwgbV9mb3JtQ29udHJvbHNC
dWlsZGVyKHN0ZDo6bWFrZV91bmlxdWU8Rm9ybUNvbnRyb2xzPigqdGhpcykpCisgICAgLCBtX2Js
b2NrRmxvd0J1aWxkZXIoc3RkOjptYWtlX3VuaXF1ZTxCbG9ja0Zsb3c+KCp0aGlzKSkKIHsKICAg
ICBSRUxFQVNFX0FTU0VSVCghc19jdXJyZW50IHx8ICZtX3ZpZXcgIT0gJnNfY3VycmVudC0+bV92
aWV3KTsKICAgICBtX3ByZXZpb3VzID0gc19jdXJyZW50OwpAQCAtMTI4LDYgKzEzMCwxMSBAQCB2
b2lkIFJlbmRlclRyZWVCdWlsZGVyOjppbnNlcnRDaGlsZChSZW5kZXJUcmVlUG9zaXRpb24mIHBv
c2l0aW9uLCBSZW5kZXJQdHI8UmVuZAogICAgIGluc2VydENoaWxkKHBvc2l0aW9uLnBhcmVudCgp
LCBXVEZNb3ZlKGNoaWxkKSwgcG9zaXRpb24ubmV4dFNpYmxpbmcoKSk7CiB9CiAKK3ZvaWQgUmVu
ZGVyVHJlZUJ1aWxkZXI6Omluc2VydENoaWxkVG9SZW5kZXJCbG9ja0Zsb3coUmVuZGVyQmxvY2tG
bG93JiBwYXJlbnQsIFJlbmRlclB0cjxSZW5kZXJPYmplY3Q+IGNoaWxkLCBSZW5kZXJPYmplY3Qq
IGJlZm9yZUNoaWxkKQoreworICAgIGJsb2NrRmxvd0J1aWxkZXIoKS5pbnNlcnRDaGlsZChwYXJl
bnQsIFdURk1vdmUoY2hpbGQpLCBiZWZvcmVDaGlsZCk7Cit9CisKIHZvaWQgUmVuZGVyVHJlZUJ1
aWxkZXI6OnVwZGF0ZUFmdGVyRGVzY2VuZGFudHMoUmVuZGVyRWxlbWVudCYgcmVuZGVyZXIpCiB7
CiAgICAgaWYgKGlzPFJlbmRlckJsb2NrPihyZW5kZXJlcikpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlci5oCmluZGV4IGIwNWZk
MWZmOWE1MTRmZWVlZTUyZDA5MGQ2ZjM3ODc2MjRmYjdlNmYuLmNiMWY0ZTRkODNmY2Y3YTVkODRm
YTE1YjBhOGU0NDQzYWUzNmJjODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlci5oCkBAIC00Niw2ICs0Niw5IEBAIHB1Ymxp
YzoKICAgICAvLyBGSVhNRTogUmVtb3ZlLgogICAgIHN0YXRpYyBSZW5kZXJUcmVlQnVpbGRlciog
Y3VycmVudCgpIHsgcmV0dXJuIHNfY3VycmVudDsgfQogCisgICAgLy8gVGhpcyBmdW5jdGlvbiBp
cyB0ZW1wb3JhcnkgdW50aWwgYWZ0ZXIgYWxsIGJsb2NrL2lubGluZS9jb250aW51YXRpb24gY29k
ZSBpcyBtb3ZlZCBvdmVyLgorICAgIHZvaWQgaW5zZXJ0Q2hpbGRUb1JlbmRlckJsb2NrRmxvdyhS
ZW5kZXJCbG9ja0Zsb3cmIHBhcmVudCwgUmVuZGVyUHRyPFJlbmRlck9iamVjdD4sIFJlbmRlck9i
amVjdCogYmVmb3JlQ2hpbGQgPSBudWxscHRyKTsKKwogcHJpdmF0ZToKICAgICBjbGFzcyBGaXJz
dExldHRlcjsKICAgICBjbGFzcyBMaXN0OwpAQCAtNTMsNiArNTYsNyBAQCBwcml2YXRlOgogICAg
IGNsYXNzIFRhYmxlOwogICAgIGNsYXNzIFJ1Ynk7CiAgICAgY2xhc3MgRm9ybUNvbnRyb2xzOwor
ICAgIGNsYXNzIEJsb2NrRmxvdzsKIAogICAgIEZpcnN0TGV0dGVyJiBmaXJzdExldHRlckJ1aWxk
ZXIoKSB7IHJldHVybiAqbV9maXJzdExldHRlckJ1aWxkZXI7IH0KICAgICBMaXN0JiBsaXN0QnVp
bGRlcigpIHsgcmV0dXJuICptX2xpc3RCdWlsZGVyOyB9CkBAIC02MCw2ICs2NCw3IEBAIHByaXZh
dGU6CiAgICAgVGFibGUmIHRhYmxlQnVpbGRlcigpIHsgcmV0dXJuICptX3RhYmxlQnVpbGRlcjsg
fQogICAgIFJ1YnkmIHJ1YnlCdWlsZGVyKCkgeyByZXR1cm4gKm1fcnVieUJ1aWxkZXI7IH0KICAg
ICBGb3JtQ29udHJvbHMmIGZvcm1Db250cm9sc0J1aWxkZXIoKSB7IHJldHVybiAqbV9mb3JtQ29u
dHJvbHNCdWlsZGVyOyB9CisgICAgQmxvY2tGbG93JiBibG9ja0Zsb3dCdWlsZGVyKCkgeyByZXR1
cm4gKm1fYmxvY2tGbG93QnVpbGRlcjsgfQogCiAgICAgUmVuZGVyVmlldyYgbV92aWV3OwogCkBA
IC03Miw2ICs3Nyw3IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPFRhYmxlPiBtX3Rh
YmxlQnVpbGRlcjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UnVieT4gbV9ydWJ5QnVpbGRlcjsKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8Rm9ybUNvbnRyb2xzPiBtX2Zvcm1Db250cm9sc0J1aWxkZXI7Cisg
ICAgc3RkOjp1bmlxdWVfcHRyPEJsb2NrRmxvdz4gbV9ibG9ja0Zsb3dCdWlsZGVyOwogfTsKIAog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRy
ZWVCdWlsZGVyQmxvY2tGbG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGlu
Zy9SZW5kZXJUcmVlQnVpbGRlckJsb2NrRmxvdy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDE5MWFjNDZhOGEy
MzExZGNhODQ2N2Y5ODM0MDM5ZWFkM2U4Nzg0NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlckJsb2NrRmxvdy5jcHAK
QEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJSZW5kZXJUcmVlQnVpbGRlckJsb2NrRmxvdy5oIgorCisjaW5jbHVkZSAiUmVuZGVyTXVs
dGlDb2x1bW5GbG93LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVuZGVyVHJlZUJ1aWxk
ZXI6OkJsb2NrRmxvdzo6QmxvY2tGbG93KFJlbmRlclRyZWVCdWlsZGVyJiBidWlsZGVyKQorICAg
IDogbV9idWlsZGVyKGJ1aWxkZXIpCit7Cit9CisKK3ZvaWQgUmVuZGVyVHJlZUJ1aWxkZXI6OkJs
b2NrRmxvdzo6aW5zZXJ0Q2hpbGQoUmVuZGVyQmxvY2tGbG93JiBwYXJlbnQsIFJlbmRlclB0cjxS
ZW5kZXJPYmplY3Q+IGNoaWxkLCBSZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxkKQoreworICAgIGlm
IChwYXJlbnQubXVsdGlDb2x1bW5GbG93KCkgJiYgKCFwYXJlbnQuaXNGaWVsZHNldCgpIHx8ICFj
aGlsZC0+aXNMZWdlbmQoKSkpCisgICAgICAgIHJldHVybiBtX2J1aWxkZXIuaW5zZXJ0Q2hpbGQo
KnBhcmVudC5tdWx0aUNvbHVtbkZsb3coKSwgV1RGTW92ZShjaGlsZCksIGJlZm9yZUNoaWxkKTsK
KyAgICBhdXRvKiBiZWZvcmVDaGlsZE9yUGxhY2Vob2xkZXIgPSBiZWZvcmVDaGlsZDsKKyAgICBp
ZiAoYXV0byogY29udGFpbmluZ0ZyYWdtZW50ZWRGbG93ID0gcGFyZW50LmVuY2xvc2luZ0ZyYWdt
ZW50ZWRGbG93KCkpCisgICAgICAgIGJlZm9yZUNoaWxkT3JQbGFjZWhvbGRlciA9IGNvbnRhaW5p
bmdGcmFnbWVudGVkRmxvdy0+cmVzb2x2ZU1vdmVkQ2hpbGQoYmVmb3JlQ2hpbGQpOworICAgIHBh
cmVudC5SZW5kZXJCbG9jazo6YWRkQ2hpbGQobV9idWlsZGVyLCBXVEZNb3ZlKGNoaWxkKSwgYmVm
b3JlQ2hpbGRPclBsYWNlaG9sZGVyKTsKK30KKworfQorCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlckJsb2NrRmxvdy5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyQmxvY2tG
bG93LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOTdiMzZjMTllOGE5NTNlZmI4N2ZiYzliZjJjMTEwYzRjMTExNmQ0
YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9S
ZW5kZXJUcmVlQnVpbGRlckJsb2NrRmxvdy5oCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlJlbmRlclRyZWVCdWlsZGVyLmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUmVuZGVyVHJlZUJ1aWxkZXI6OkJsb2NrRmxvdyB7Citw
dWJsaWM6CisgICAgQmxvY2tGbG93KFJlbmRlclRyZWVCdWlsZGVyJik7CisKKyAgICB2b2lkIGlu
c2VydENoaWxkKFJlbmRlckJsb2NrRmxvdyYgcGFyZW50LCBSZW5kZXJQdHI8UmVuZGVyT2JqZWN0
PiBjaGlsZCwgUmVuZGVyT2JqZWN0KiBiZWZvcmVDaGlsZCk7CisKK3ByaXZhdGU6CisKKyAgICBS
ZW5kZXJUcmVlQnVpbGRlciYgbV9idWlsZGVyOworfTsKKworfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>330716</attachid>
            <date>2018-01-08 11:42:06 -0800</date>
            <delta_ts>2018-01-08 14:04:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-181348-20180108114205.patch</filename>
            <type>text/plain</type>
            <size>16955</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI2NTIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWRhNWY2YzZlMTI5OTg3
NWY1OWVlOTEyYTk1YzI3M2Y3ZDA2MzBmNi4uOGIyOGEyOWFjNzFlZjA0MzEwZGI5ZGM5NWE3Y2Jm
Y2IwMTEwM2MzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE4LTAxLTA4ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1JlbmRlclRyZWVCdWlsZGVy
XSBNb3ZlIFJlbmRlckJsb2NrRmxvdyBhZGRDaGlsZCBsb2dpYyB0byBSZW5kZXJUcmVlQnVpbGRl
cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgxMzQ4
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNjMyODExNz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBBbnR0aSBLb2l2aXN0by4KKworICAgICAgICBUaGlzIGlzIGFib3V0IG1vdmluZyB0aGUgY29k
ZSwgbm8gY2xlYW51cCBhbmQvb3Igbm9ybWFsaXphdGlvbiAodW5mb3J0dW5hdGVseSBpdCBhbHNv
IG1lYW5zCisgICAgICAgIHNvbWUgdGVtcG9yYXJ5IGNoYW5nZXMpLiAgCisKKyAgICAgICAgTm8g
Y2hhbmdlIGluIGZ1bmN0aW9uYWxpdHkuCisKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAg
ICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlckJsb2NrRmxvdy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9ja0Zs
b3c6OmFkZENoaWxkKToKKyAgICAgICAgKiByZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1
aWxkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVHJlZUJ1aWxkZXI6OlJlbmRlclRy
ZWVCdWlsZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRyZWVCdWlsZGVyOjppbnNlcnRD
aGlsZFRvUmVuZGVyQmxvY2tGbG93KToKKyAgICAgICAgKiByZW5kZXJpbmcvdXBkYXRpbmcvUmVu
ZGVyVHJlZUJ1aWxkZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRyZWVCdWlsZGVyOjpi
bG9ja0Zsb3dCdWlsZGVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJl
ZUJ1aWxkZXJCbG9ja0Zsb3cuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRy
ZWVCdWlsZGVyOjpCbG9ja0Zsb3c6OkJsb2NrRmxvdyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUcmVlQnVpbGRlcjo6QmxvY2tGbG93OjppbnNlcnRDaGlsZCk6CisgICAgICAgICogcmVuZGVy
aW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyQmxvY2tGbG93Lmg6IEFkZGVkLgorCiAyMDE4
LTAxLTA4ICBaYWxhbiBCdWp0YXMgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbUmVuZGVy
VHJlZUJ1aWxkZXJdIE1vdmUgUmVuZGVySW5saW5lIGFkZENoaWxkIGxvZ2ljIHRvIFJlbmRlclRy
ZWVCdWlsZGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJj
ZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDdmODJhMjIzNWZiOWU2MzFjOTkyYjFkZjhhYzdh
MjRlMmQ4NTk3MTAuLmM2NjkzMmNmNGY4ZTYzZjg1NzI4MmMzMTg3MDhlZGYzYjQyZTUyMmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1NvdXJjZXMudHh0CkBAIC0xOTg1LDYgKzE5ODUsNyBAQCByZW5kZXJpbmcvc3ZnL1NWR1RleHRR
dWVyeS5jcHAKIAogcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyLmNwcAogcmVu
ZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyQmxvY2suY3BwCityZW5kZXJpbmcvdXBk
YXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJCbG9ja0Zsb3cuY3BwCiByZW5kZXJpbmcvdXBkYXRpbmcv
UmVuZGVyVHJlZUJ1aWxkZXJGaXJzdExldHRlci5jcHAKIHJlbmRlcmluZy91cGRhdGluZy9SZW5k
ZXJUcmVlQnVpbGRlckZvcm1Db250cm9scy5jcHAKIHJlbmRlcmluZy91cGRhdGluZy9SZW5kZXJU
cmVlQnVpbGRlcklubGluZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA0NjJlMTQ1YzllYmNkOWJmNTE1NzkyYWQ5MmUwYzcy
ZDIyNDYxNmI2Li40NzE0NmE0MDVhYmZkYzk1MTliMDFmOGUxMTE4OTljZDVkNWIyMmM5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC01NTkzLDYgKzU1OTMsOCBAQAogCQkxMTkzNDBBMTFGRUUwMjQwMDA5MzVGMUUgLyogUmVuZGVy
VHJlZUJ1aWxkZXJCbG9jay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJUcmVlQnVpbGRlckJsb2Nr
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTExQzVGMTE2MjAwM0U3NzUwMDAxQUU2
MCAvKiBSZW5kZXJUcmVlQnVpbGRlcklubGluZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBSZW5kZXJUcmVlQnVpbGRlcklubGluZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTExQzVGMTE4MjAwM0U3NzYwMDAxQUU2MCAvKiBSZW5kZXJUcmVlQnVp
bGRlcklubGluZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJUcmVl
QnVpbGRlcklubGluZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxMUM1RjExRDIw
MDNGNjlFMDAwMUFFNjAgLyogUmVuZGVyVHJlZUJ1aWxkZXJCbG9ja0Zsb3cuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyVHJlZUJ1aWxkZXJCbG9ja0Zsb3cuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMTFDNUYxMUYyMDAzRjY5RjAwMDFBRTYwIC8qIFJl
bmRlclRyZWVCdWlsZGVyQmxvY2tGbG93LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFJlbmRlclRyZWVCdWlsZGVyQmxvY2tGbG93LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMTFFMDY3RUIxRTYyNDYxMzAwMTYyRDE2IC8qIFNpbXBsZUxpbmVMYXlv
dXRDb3ZlcmFnZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTaW1w
bGVMaW5lTGF5b3V0Q292ZXJhZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkx
MUUwNjdFRDFFNjI0NkU1MDAxNjJEMTYgLyogU2ltcGxlTGluZUxheW91dENvdmVyYWdlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNpbXBsZUxpbmVMYXlvdXRDb3ZlcmFnZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNDAwRDdBNzE3MTM2RUE3MDA3N0NFMDUg
LyogU2NyaXB0V3JhcHBhYmxlSW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBTY3JpcHRXcmFwcGFibGVJbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0yNDYzMyw2ICsyNDYzNSw4IEBACiAJCQkJRTQ3QzM5MkExRkU2RTBERTAwQkJCQzZCIC8q
IFJlbmRlclRyZWVCdWlsZGVyLmggKi8sCiAJCQkJMTE5MzQwQTAxRkVFMDI0MDAwOTM1RjFFIC8q
IFJlbmRlclRyZWVCdWlsZGVyQmxvY2suY3BwICovLAogCQkJCTExOTM0MEExMUZFRTAyNDAwMDkz
NUYxRSAvKiBSZW5kZXJUcmVlQnVpbGRlckJsb2NrLmggKi8sCisJCQkJMTFDNUYxMUYyMDAzRjY5
RjAwMDFBRTYwIC8qIFJlbmRlclRyZWVCdWlsZGVyQmxvY2tGbG93LmNwcCAqLywKKwkJCQkxMUM1
RjExRDIwMDNGNjlFMDAwMUFFNjAgLyogUmVuZGVyVHJlZUJ1aWxkZXJCbG9ja0Zsb3cuaCAqLywK
IAkJCQlFNDdDMzkyMTFGRTZFMERBMDBCQkJDNkIgLyogUmVuZGVyVHJlZUJ1aWxkZXJGaXJzdExl
dHRlci5jcHAgKi8sCiAJCQkJRTQ3QzM5MjYxRkU2RTBEQzAwQkJCQzZCIC8qIFJlbmRlclRyZWVC
dWlsZGVyRmlyc3RMZXR0ZXIuaCAqLywKIAkJCQkxMTkzNDA5NDFGRUQ3MTU1MDA5MzVGMUUgLyog
UmVuZGVyVHJlZUJ1aWxkZXJGb3JtQ29udHJvbHMuY3BwICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcAppbmRleCBiYzhmNThmODdjY2UyYWFkZjAxNWZj
YjQ4MzJkYmEwY2I0Njg4YjFhLi5hMTk3NGFlZTM3Mjk3MWU5ZWMxOGI3M2I1MTE0Y2FlMzk1NGQ0
NGE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcApA
QCAtMzgzMSwxMiArMzgzMSw3IEBAIHZvaWQgUmVuZGVyQmxvY2tGbG93OjpsYXlvdXRFeGNsdWRl
ZENoaWxkcmVuKGJvb2wgcmVsYXlvdXRDaGlsZHJlbikKIAogdm9pZCBSZW5kZXJCbG9ja0Zsb3c6
OmFkZENoaWxkKFJlbmRlclRyZWVCdWlsZGVyJiBidWlsZGVyLCBSZW5kZXJQdHI8UmVuZGVyT2Jq
ZWN0PiBuZXdDaGlsZCwgUmVuZGVyT2JqZWN0KiBiZWZvcmVDaGlsZCkKIHsKLSAgICBpZiAobXVs
dGlDb2x1bW5GbG93KCkgJiYgKCFpc0ZpZWxkc2V0KCkgfHwgIW5ld0NoaWxkLT5pc0xlZ2VuZCgp
KSkKLSAgICAgICAgcmV0dXJuIGJ1aWxkZXIuaW5zZXJ0Q2hpbGQoKm11bHRpQ29sdW1uRmxvdygp
LCBXVEZNb3ZlKG5ld0NoaWxkKSwgYmVmb3JlQ2hpbGQpOwotICAgIGF1dG8qIGJlZm9yZUNoaWxk
T3JQbGFjZWhvbGRlciA9IGJlZm9yZUNoaWxkOwotICAgIGlmIChhdXRvKiBjb250YWluaW5nRnJh
Z21lbnRlZEZsb3cgPSBlbmNsb3NpbmdGcmFnbWVudGVkRmxvdygpKQotICAgICAgICBiZWZvcmVD
aGlsZE9yUGxhY2Vob2xkZXIgPSBjb250YWluaW5nRnJhZ21lbnRlZEZsb3ctPnJlc29sdmVNb3Zl
ZENoaWxkKGJlZm9yZUNoaWxkKTsKLSAgICBSZW5kZXJCbG9jazo6YWRkQ2hpbGQoYnVpbGRlciwg
V1RGTW92ZShuZXdDaGlsZCksIGJlZm9yZUNoaWxkT3JQbGFjZWhvbGRlcik7CisgICAgYnVpbGRl
ci5pbnNlcnRDaGlsZFRvUmVuZGVyQmxvY2tGbG93KCp0aGlzLCBXVEZNb3ZlKG5ld0NoaWxkKSwg
YmVmb3JlQ2hpbGQpOwogfQogCiBSZW5kZXJQdHI8UmVuZGVyT2JqZWN0PiBSZW5kZXJCbG9ja0Zs
b3c6OnRha2VDaGlsZChSZW5kZXJPYmplY3QmIG9sZENoaWxkKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlci5jcHAKaW5kZXgg
MTg1YThlMGQ2YzA4ZTEyYWYyNTFmODk4OTc3M2I3ZTA4MWRjNzM5ZC4uMTM5YzYyZTNkMjU1MzZk
NzFhNzk1MjM3YjVlZmI4NTFmOTA0MWZjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXIuY3BwCkBAIC0zNCw2ICszNCw3
IEBACiAjaW5jbHVkZSAiUmVuZGVyVGFibGVSb3cuaCIKICNpbmNsdWRlICJSZW5kZXJUZXh0Lmgi
CiAjaW5jbHVkZSAiUmVuZGVyVHJlZUJ1aWxkZXJCbG9jay5oIgorI2luY2x1ZGUgIlJlbmRlclRy
ZWVCdWlsZGVyQmxvY2tGbG93LmgiCiAjaW5jbHVkZSAiUmVuZGVyVHJlZUJ1aWxkZXJGaXJzdExl
dHRlci5oIgogI2luY2x1ZGUgIlJlbmRlclRyZWVCdWlsZGVyRm9ybUNvbnRyb2xzLmgiCiAjaW5j
bHVkZSAiUmVuZGVyVHJlZUJ1aWxkZXJJbmxpbmUuaCIKQEAgLTk4LDcgKzk5LDYgQEAgc3RhdGlj
IHZvaWQgZ2V0SW5saW5lUnVuKFJlbmRlck9iamVjdCogc3RhcnQsIFJlbmRlck9iamVjdCogYm91
bmRhcnksIFJlbmRlck9iamUKICAgICB9IHdoaWxlICghc2F3SW5saW5lKTsKIH0KIAotCiBSZW5k
ZXJUcmVlQnVpbGRlcjo6UmVuZGVyVHJlZUJ1aWxkZXIoUmVuZGVyVmlldyYgdmlldykKICAgICA6
IG1fdmlldyh2aWV3KQogICAgICwgbV9maXJzdExldHRlckJ1aWxkZXIoc3RkOjptYWtlX3VuaXF1
ZTxGaXJzdExldHRlcj4oKnRoaXMpKQpAQCAtMTA4LDYgKzEwOCw3IEBAIFJlbmRlclRyZWVCdWls
ZGVyOjpSZW5kZXJUcmVlQnVpbGRlcihSZW5kZXJWaWV3JiB2aWV3KQogICAgICwgbV9ydWJ5QnVp
bGRlcihzdGQ6Om1ha2VfdW5pcXVlPFJ1Ynk+KCp0aGlzKSkKICAgICAsIG1fZm9ybUNvbnRyb2xz
QnVpbGRlcihzdGQ6Om1ha2VfdW5pcXVlPEZvcm1Db250cm9scz4oKnRoaXMpKQogICAgICwgbV9i
bG9ja0J1aWxkZXIoc3RkOjptYWtlX3VuaXF1ZTxCbG9jaz4oKnRoaXMpKQorICAgICwgbV9ibG9j
a0Zsb3dCdWlsZGVyKHN0ZDo6bWFrZV91bmlxdWU8QmxvY2tGbG93PigqdGhpcykpCiAgICAgLCBt
X2lubGluZUJ1aWxkZXIoc3RkOjptYWtlX3VuaXF1ZTxJbmxpbmU+KCp0aGlzKSkKIHsKICAgICBS
RUxFQVNFX0FTU0VSVCghc19jdXJyZW50IHx8ICZtX3ZpZXcgIT0gJnNfY3VycmVudC0+bV92aWV3
KTsKQEAgLTI4OSw2ICsyOTAsMTEgQEAgdm9pZCBSZW5kZXJUcmVlQnVpbGRlcjo6c3BsaXRGbG93
KFJlbmRlcklubGluZSYgcGFyZW50LCBSZW5kZXJPYmplY3QqIGJlZm9yZUNoaWwKICAgICBpbmxp
bmVCdWlsZGVyKCkuc3BsaXRGbG93KHBhcmVudCwgYmVmb3JlQ2hpbGQsIFdURk1vdmUobmV3Qmxv
Y2tCb3gpLCBXVEZNb3ZlKGNoaWxkKSwgb2xkQ29udCk7CiB9CiAKK3ZvaWQgUmVuZGVyVHJlZUJ1
aWxkZXI6Omluc2VydENoaWxkVG9SZW5kZXJCbG9ja0Zsb3coUmVuZGVyQmxvY2tGbG93JiBwYXJl
bnQsIFJlbmRlclB0cjxSZW5kZXJPYmplY3Q+IGNoaWxkLCBSZW5kZXJPYmplY3QqIGJlZm9yZUNo
aWxkKQoreworICAgIGJsb2NrRmxvd0J1aWxkZXIoKS5pbnNlcnRDaGlsZChwYXJlbnQsIFdURk1v
dmUoY2hpbGQpLCBiZWZvcmVDaGlsZCk7Cit9CisKIHZvaWQgUmVuZGVyVHJlZUJ1aWxkZXI6OnVw
ZGF0ZUFmdGVyRGVzY2VuZGFudHMoUmVuZGVyRWxlbWVudCYgcmVuZGVyZXIpCiB7CiAgICAgaWYg
KGlzPFJlbmRlckJsb2NrPihyZW5kZXJlcikpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlci5oCmluZGV4IDQzZGJjZmE4YzIxZDJl
OTM2NjgxY2VkN2Y4MGZlOWIzYjY5NTQwMjMuLjQ3YzYzNjQ2OWJhYzVlODg3YWNhYzA3ODYyM2Uw
N2MzZjZkZWZmYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGlu
Zy9SZW5kZXJUcmVlQnVpbGRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRh
dGluZy9SZW5kZXJUcmVlQnVpbGRlci5oCkBAIC00OSwxMiArNDksMTIgQEAgcHVibGljOgogICAg
IC8vIFRoZXNlIGZ1bmN0aW9ucyBhcmUgdGVtcG9yYXJ5IHVudGlsIGFmdGVyIGFsbCBibG9jay9p
bmxpbmUvY29udGludWF0aW9uIGNvZGUgaXMgbW92ZWQgb3Zlci4KICAgICB2b2lkIGluc2VydENo
aWxkVG9SZW5kZXJCbG9jayhSZW5kZXJCbG9jayYgcGFyZW50LCBSZW5kZXJQdHI8UmVuZGVyT2Jq
ZWN0PiwgUmVuZGVyT2JqZWN0KiBiZWZvcmVDaGlsZCA9IG51bGxwdHIpOwogICAgIHZvaWQgaW5z
ZXJ0Q2hpbGRUb1JlbmRlckJsb2NrSWdub3JpbmdDb250aW51YXRpb24oUmVuZGVyQmxvY2smIHBh
cmVudCwgUmVuZGVyUHRyPFJlbmRlck9iamVjdD4sIFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQg
PSBudWxscHRyKTsKLSAgICB2b2lkIG1ha2VDaGlsZHJlbk5vbklubGluZShSZW5kZXJCbG9jayYg
cGFyZW50LCBSZW5kZXJPYmplY3QqIGluc2VydGlvblBvaW50ID0gbnVsbHB0cik7Ci0gICAgUmVu
ZGVyT2JqZWN0KiBzcGxpdEFub255bW91c0JveGVzQXJvdW5kQ2hpbGQoUmVuZGVyQm94JiBwYXJl
bnQsIFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQpOwotCi0gICAgLy8gVGhlc2UgZnVuY3Rpb25z
IGFyZSB0ZW1wb3JhcnkgdW50aWwgYWZ0ZXIgYWxsIGJsb2NrL2lubGluZS9jb250aW51YXRpb24g
Y29kZSBpcyBtb3ZlZCBvdmVyLgorICAgIHZvaWQgaW5zZXJ0Q2hpbGRUb1JlbmRlckJsb2NrRmxv
dyhSZW5kZXJCbG9ja0Zsb3cmIHBhcmVudCwgUmVuZGVyUHRyPFJlbmRlck9iamVjdD4sIFJlbmRl
ck9iamVjdCogYmVmb3JlQ2hpbGQgPSBudWxscHRyKTsKICAgICB2b2lkIGluc2VydENoaWxkVG9S
ZW5kZXJJbmxpbmUoUmVuZGVySW5saW5lJiBwYXJlbnQsIFJlbmRlclB0cjxSZW5kZXJPYmplY3Q+
LCBSZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxkID0gbnVsbHB0cik7CiAgICAgdm9pZCBpbnNlcnRD
aGlsZFRvUmVuZGVySW5saW5lSWdub3JpbmdDb250aW51YXRpb24oUmVuZGVySW5saW5lJiBwYXJl
bnQsIFJlbmRlclB0cjxSZW5kZXJPYmplY3Q+LCBSZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxkID0g
bnVsbHB0cik7CisKKyAgICB2b2lkIG1ha2VDaGlsZHJlbk5vbklubGluZShSZW5kZXJCbG9jayYg
cGFyZW50LCBSZW5kZXJPYmplY3QqIGluc2VydGlvblBvaW50ID0gbnVsbHB0cik7CisgICAgUmVu
ZGVyT2JqZWN0KiBzcGxpdEFub255bW91c0JveGVzQXJvdW5kQ2hpbGQoUmVuZGVyQm94JiBwYXJl
bnQsIFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQpOwogICAgIHZvaWQgc3BsaXRGbG93KFJlbmRl
cklubGluZSYgcGFyZW50LCBSZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxkLCBSZW5kZXJQdHI8UmVu
ZGVyQmxvY2s+IG5ld0Jsb2NrQm94LCBSZW5kZXJQdHI8UmVuZGVyT2JqZWN0PiBjaGlsZCwgUmVu
ZGVyQm94TW9kZWxPYmplY3QqIG9sZENvbnQpOwogCiBwcml2YXRlOgpAQCAtNjUsNiArNjUsNyBA
QCBwcml2YXRlOgogICAgIGNsYXNzIFJ1Ynk7CiAgICAgY2xhc3MgRm9ybUNvbnRyb2xzOwogICAg
IGNsYXNzIEJsb2NrOworICAgIGNsYXNzIEJsb2NrRmxvdzsKICAgICBjbGFzcyBJbmxpbmU7CiAK
ICAgICBGaXJzdExldHRlciYgZmlyc3RMZXR0ZXJCdWlsZGVyKCkgeyByZXR1cm4gKm1fZmlyc3RM
ZXR0ZXJCdWlsZGVyOyB9CkBAIC03NCw2ICs3NSw3IEBAIHByaXZhdGU6CiAgICAgUnVieSYgcnVi
eUJ1aWxkZXIoKSB7IHJldHVybiAqbV9ydWJ5QnVpbGRlcjsgfQogICAgIEZvcm1Db250cm9scyYg
Zm9ybUNvbnRyb2xzQnVpbGRlcigpIHsgcmV0dXJuICptX2Zvcm1Db250cm9sc0J1aWxkZXI7IH0K
ICAgICBCbG9jayYgYmxvY2tCdWlsZGVyKCkgeyByZXR1cm4gKm1fYmxvY2tCdWlsZGVyOyB9Cisg
ICAgQmxvY2tGbG93JiBibG9ja0Zsb3dCdWlsZGVyKCkgeyByZXR1cm4gKm1fYmxvY2tGbG93QnVp
bGRlcjsgfQogICAgIElubGluZSYgaW5saW5lQnVpbGRlcigpIHsgcmV0dXJuICptX2lubGluZUJ1
aWxkZXI7IH0KIAogICAgIFJlbmRlclZpZXcmIG1fdmlldzsKQEAgLTg4LDYgKzkwLDcgQEAgcHJp
dmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UnVieT4gbV9ydWJ5QnVpbGRlcjsKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8Rm9ybUNvbnRyb2xzPiBtX2Zvcm1Db250cm9sc0J1aWxkZXI7CiAgICAgc3Rk
Ojp1bmlxdWVfcHRyPEJsb2NrPiBtX2Jsb2NrQnVpbGRlcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8
QmxvY2tGbG93PiBtX2Jsb2NrRmxvd0J1aWxkZXI7CiAgICAgc3RkOjp1bmlxdWVfcHRyPElubGlu
ZT4gbV9pbmxpbmVCdWlsZGVyOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyQmxvY2tGbG93LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlckJsb2NrRmxvdy5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMDE5MWFjNDZhOGEyMzExZGNhODQ2N2Y5ODM0MDM5ZWFkM2U4Nzg0NgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJU
cmVlQnVpbGRlckJsb2NrRmxvdy5jcHAKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW5kZXJUcmVlQnVpbGRlckJsb2NrRmxvdy5o
IgorCisjaW5jbHVkZSAiUmVuZGVyTXVsdGlDb2x1bW5GbG93LmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworUmVuZGVyVHJlZUJ1aWxkZXI6OkJsb2NrRmxvdzo6QmxvY2tGbG93KFJlbmRlclRy
ZWVCdWlsZGVyJiBidWlsZGVyKQorICAgIDogbV9idWlsZGVyKGJ1aWxkZXIpCit7Cit9CisKK3Zv
aWQgUmVuZGVyVHJlZUJ1aWxkZXI6OkJsb2NrRmxvdzo6aW5zZXJ0Q2hpbGQoUmVuZGVyQmxvY2tG
bG93JiBwYXJlbnQsIFJlbmRlclB0cjxSZW5kZXJPYmplY3Q+IGNoaWxkLCBSZW5kZXJPYmplY3Qq
IGJlZm9yZUNoaWxkKQoreworICAgIGlmIChwYXJlbnQubXVsdGlDb2x1bW5GbG93KCkgJiYgKCFw
YXJlbnQuaXNGaWVsZHNldCgpIHx8ICFjaGlsZC0+aXNMZWdlbmQoKSkpCisgICAgICAgIHJldHVy
biBtX2J1aWxkZXIuaW5zZXJ0Q2hpbGQoKnBhcmVudC5tdWx0aUNvbHVtbkZsb3coKSwgV1RGTW92
ZShjaGlsZCksIGJlZm9yZUNoaWxkKTsKKyAgICBhdXRvKiBiZWZvcmVDaGlsZE9yUGxhY2Vob2xk
ZXIgPSBiZWZvcmVDaGlsZDsKKyAgICBpZiAoYXV0byogY29udGFpbmluZ0ZyYWdtZW50ZWRGbG93
ID0gcGFyZW50LmVuY2xvc2luZ0ZyYWdtZW50ZWRGbG93KCkpCisgICAgICAgIGJlZm9yZUNoaWxk
T3JQbGFjZWhvbGRlciA9IGNvbnRhaW5pbmdGcmFnbWVudGVkRmxvdy0+cmVzb2x2ZU1vdmVkQ2hp
bGQoYmVmb3JlQ2hpbGQpOworICAgIHBhcmVudC5SZW5kZXJCbG9jazo6YWRkQ2hpbGQobV9idWls
ZGVyLCBXVEZNb3ZlKGNoaWxkKSwgYmVmb3JlQ2hpbGRPclBsYWNlaG9sZGVyKTsKK30KKworfQor
CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJU
cmVlQnVpbGRlckJsb2NrRmxvdy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5n
L1JlbmRlclRyZWVCdWlsZGVyQmxvY2tGbG93LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTdiMzZjMTllOGE5NTNl
ZmI4N2ZiYzliZjJjMTEwYzRjMTExNmQ0YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlckJsb2NrRmxvdy5oCkBAIC0w
LDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlJlbmRl
clRyZWVCdWlsZGVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUmVuZGVyVHJl
ZUJ1aWxkZXI6OkJsb2NrRmxvdyB7CitwdWJsaWM6CisgICAgQmxvY2tGbG93KFJlbmRlclRyZWVC
dWlsZGVyJik7CisKKyAgICB2b2lkIGluc2VydENoaWxkKFJlbmRlckJsb2NrRmxvdyYgcGFyZW50
LCBSZW5kZXJQdHI8UmVuZGVyT2JqZWN0PiBjaGlsZCwgUmVuZGVyT2JqZWN0KiBiZWZvcmVDaGls
ZCk7CisKK3ByaXZhdGU6CisKKyAgICBSZW5kZXJUcmVlQnVpbGRlciYgbV9idWlsZGVyOworfTsK
KworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRl
clRyZWVCdWlsZGVyUnVieS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcv
UmVuZGVyVHJlZUJ1aWxkZXJSdWJ5LmNwcAppbmRleCAwNWJjZDk3N2MyMTUxODY1NDZjNTBjNGE3
ODU1MDZmMjg0MmFkOTM2Li5lZjY4ZmE1NmU3Y2VkNDVmZjQzY2EzMzRjYjQ0MTNmMzBmZDM5MmZl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJl
ZUJ1aWxkZXJSdWJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcv
UmVuZGVyVHJlZUJ1aWxkZXJSdWJ5LmNwcApAQCAtMjYsNiArMjYsOCBAQAogI2luY2x1ZGUgImNv
bmZpZy5oIgogI2luY2x1ZGUgIlJlbmRlclRyZWVCdWlsZGVyUnVieS5oIgogCisjaW5jbHVkZSAi
UmVuZGVyUnVieS5oIgorI2luY2x1ZGUgIlJlbmRlclJ1YnlCYXNlLmgiCiAjaW5jbHVkZSAiUmVu
ZGVyUnVieVJ1bi5oIgogI2luY2x1ZGUgIlJlbmRlclRyZWVCdWlsZGVyLmgiCiAKQEAgLTE2OCw3
ICsxNzAsNyBAQCBSZW5kZXJFbGVtZW50JiBSZW5kZXJUcmVlQnVpbGRlcjo6UnVieTo6ZmluZE9y
Q3JlYXRlUGFyZW50Rm9yQ2hpbGQoUmVuZGVyUnVieUFzQgogICAgICAgICBpZiAoIWJlZm9yZUJs
b2NrKSB7CiAgICAgICAgICAgICBhdXRvIG5ld0Jsb2NrID0gY3JlYXRlQW5vbnltb3VzUnVieUlu
bGluZUJsb2NrKHBhcmVudCk7CiAgICAgICAgICAgICBiZWZvcmVCbG9jayA9IG5ld0Jsb2NrLmdl
dCgpOwotICAgICAgICAgICAgcGFyZW50LlJlbmRlckJsb2NrRmxvdzo6YWRkQ2hpbGQobV9idWls
ZGVyLCBXVEZNb3ZlKG5ld0Jsb2NrKSwgcGFyZW50LmZpcnN0Q2hpbGQoKSk7CisgICAgICAgICAg
ICBtX2J1aWxkZXIuaW5zZXJ0Q2hpbGRUb1JlbmRlckJsb2NrRmxvdyhwYXJlbnQsIFdURk1vdmUo
bmV3QmxvY2spLCBwYXJlbnQuZmlyc3RDaGlsZCgpKTsKICAgICAgICAgfQogICAgICAgICBiZWZv
cmVDaGlsZCA9IG51bGxwdHI7CiAgICAgICAgIHJldHVybiAqYmVmb3JlQmxvY2s7CkBAIC0xODMs
NyArMTg1LDcgQEAgUmVuZGVyRWxlbWVudCYgUmVuZGVyVHJlZUJ1aWxkZXI6OlJ1Ynk6OmZpbmRP
ckNyZWF0ZVBhcmVudEZvckNoaWxkKFJlbmRlclJ1YnlBc0IKICAgICAgICAgaWYgKCFhZnRlckJs
b2NrKSB7CiAgICAgICAgICAgICBhdXRvIG5ld0Jsb2NrID0gY3JlYXRlQW5vbnltb3VzUnVieUlu
bGluZUJsb2NrKHBhcmVudCk7CiAgICAgICAgICAgICBhZnRlckJsb2NrID0gbmV3QmxvY2suZ2V0
KCk7Ci0gICAgICAgICAgICBwYXJlbnQuUmVuZGVyQmxvY2tGbG93OjphZGRDaGlsZChtX2J1aWxk
ZXIsIFdURk1vdmUobmV3QmxvY2spKTsKKyAgICAgICAgICAgIG1fYnVpbGRlci5pbnNlcnRDaGls
ZFRvUmVuZGVyQmxvY2tGbG93KHBhcmVudCwgV1RGTW92ZShuZXdCbG9jaykpOwogICAgICAgICB9
CiAgICAgICAgIGJlZm9yZUNoaWxkID0gbnVsbHB0cjsKICAgICAgICAgcmV0dXJuICphZnRlckJs
b2NrOwpAQCAtMjEyLDcgKzIxNCw3IEBAIFJlbmRlckVsZW1lbnQmIFJlbmRlclRyZWVCdWlsZGVy
OjpSdWJ5OjpmaW5kT3JDcmVhdGVQYXJlbnRGb3JDaGlsZChSZW5kZXJSdWJ5QXNCCiAgICAgaWYg
KCFsYXN0UnVuIHx8IGxhc3RSdW4tPmhhc1J1YnlUZXh0KCkpIHsKICAgICAgICAgYXV0byBuZXdS
dW4gPSBSZW5kZXJSdWJ5UnVuOjpzdGF0aWNDcmVhdGVSdWJ5UnVuKCZwYXJlbnQpOwogICAgICAg
ICBsYXN0UnVuID0gbmV3UnVuLmdldCgpOwotICAgICAgICBwYXJlbnQuUmVuZGVyQmxvY2tGbG93
OjphZGRDaGlsZChtX2J1aWxkZXIsIFdURk1vdmUobmV3UnVuKSwgYmVmb3JlQ2hpbGQpOworICAg
ICAgICBtX2J1aWxkZXIuaW5zZXJ0Q2hpbGRUb1JlbmRlckJsb2NrRmxvdyhwYXJlbnQsIFdURk1v
dmUobmV3UnVuKSwgYmVmb3JlQ2hpbGQpOwogICAgIH0KICAgICBiZWZvcmVDaGlsZCA9IG51bGxw
dHI7CiAgICAgcmV0dXJuICpsYXN0UnVuOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>