<?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>181443</bug_id>
          
          <creation_ts>2018-01-09 11:05:03 -0800</creation_ts>
          <short_desc>[RenderTreeBuilder] Move MathML addChild logic to RenderTreeBuilder</short_desc>
          <delta_ts>2018-05-22 05:47:32 -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>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=160509</see_also>
          <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>fred.wang</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>1387330</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2018-01-09 11:05:03 -0800</bug_when>
    <thetext>ssia.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1387331</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-01-09 11:05:25 -0800</bug_when>
    <thetext>&lt;rdar://problem/36380228&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1387338</commentid>
    <comment_count>2</comment_count>
      <attachid>330837</attachid>
    <who name="alan">zalan</who>
    <bug_when>2018-01-09 11:09:37 -0800</bug_when>
    <thetext>Created attachment 330837
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1387357</commentid>
    <comment_count>3</comment_count>
      <attachid>330837</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-01-09 12:15:24 -0800</bug_when>
    <thetext>Comment on attachment 330837
Patch

Clearing flags on attachment: 330837

Committed r226654: &lt;https://trac.webkit.org/changeset/226654&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1387358</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-01-09 12:15:27 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>330837</attachid>
            <date>2018-01-09 11:09:37 -0800</date>
            <delta_ts>2018-01-09 12:15:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-181443-20180109110936.patch</filename>
            <type>text/plain</type>
            <size>21880</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI2NjM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGU3OTk0Y2YxNjQ4Y2Iw
MTM0ZmFkMmFiMWYwYWUwZjMwYjg1NGQ3NC4uMTVjODdlOWQ2NGUwZGUyZWY0M2M1OGJhZTA2YTkw
YmU2YTM3OTVkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE4LTAxLTA5ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1JlbmRlclRyZWVCdWlsZGVy
XSBNb3ZlIE1hdGhNTCBhZGRDaGlsZCBsb2dpYyB0byBSZW5kZXJUcmVlQnVpbGRlcgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgxNDQzCisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS8zNjM4MDIyOD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUaGlzIGlzIGFib3V0IG1vdmluZyBjb2RlLCBubyBjbGVhbnVw
IGFuZC9vciBub3JtYWxpemF0aW9uICh1bmZvcnR1bmF0ZWx5IGl0IGFsc28gbWVhbnMKKyAgICAg
ICAgc29tZSB0ZW1wb3JhcnkgY2hhbmdlcykuICAKKworICAgICAgICBObyBjaGFuZ2UgaW4gZnVu
Y3Rpb25hbGl0eS4KKworICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiByZW5kZXJpbmcvbWF0aG1sL1Jl
bmRlck1hdGhNTEZlbmNlZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNYXRoTUxGZW5j
ZWQ6OmFkZENoaWxkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1hdGhNTEZlbmNlZDo6Y3Jl
YXRlTWF0aE1MT3BlcmF0b3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWF0
aE1MRmVuY2VkOjptYWtlRmVuY2VzKTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvbWF0
aG1sL1JlbmRlck1hdGhNTEZlbmNlZC5oOgorICAgICAgICAqIHJlbmRlcmluZy91cGRhdGluZy9S
ZW5kZXJUcmVlQnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUcmVlQnVpbGRl
cjo6UmVuZGVyVHJlZUJ1aWxkZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVHJlZUJ1aWxk
ZXI6Omluc2VydENoaWxkVG9SZW5kZXJNYXRoTUxGZW5jZWQpOgorICAgICAgICAqIHJlbmRlcmlu
Zy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlci5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
VHJlZUJ1aWxkZXI6Om1hdGhNTEJ1aWxkZXIpOgorCiAyMDE4LTAxLTA5ICBaYWxhbiBCdWp0YXMg
IDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW1JlbmRlclRyZWVCdWlsZGVyXSBNb3ZlIFJl
bmRlclRhYmxlKiBhZGRDaGlsZCBtdXRhdGlvbiBsb2dpYyB0byBSZW5kZXJUcmVlQnVpbGRlcgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9T
b3VyY2VzLnR4dAppbmRleCBiOTA4M2I0YmJkYzc0OTIxOWU1YjFkZjVkYTI2ZGY4OGIxY2YzOTU1
Li5mYzlhY2NjYjNjZTY1NWQ0MWY1YTcyYjZlYmQ1N2NiMzk2ZWE1M2FkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4
dApAQCAtMTk4OSw2ICsxOTg5LDcgQEAgcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWls
ZGVyRmlyc3RMZXR0ZXIuY3BwCiByZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJG
b3JtQ29udHJvbHMuY3BwCiByZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJJbmxp
bmUuY3BwCiByZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJMaXN0LmNwcAorcmVu
ZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyTWF0aE1MLmNwcAogcmVuZGVyaW5nL3Vw
ZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyTXVsdGlDb2x1bW4uY3BwCiByZW5kZXJpbmcvdXBkYXRp
bmcvUmVuZGVyVHJlZUJ1aWxkZXJSdWJ5LmNwcAogcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRy
ZWVCdWlsZGVyU1ZHLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IGE1ZTdjYThjOWVjMDhkYWQwMTllNWJlOWY4Yzc3ZmI5ZjM4
MzMyNWIuLmUxNDg5ZWFiMmIxNGMzZjJjNjZkMDJhOWFlZGNlY2YzNWRlMmNlYzUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTU1
OTcsNiArNTU5Nyw4IEBACiAJCTExQzVGMTFGMjAwM0Y2OUYwMDAxQUU2MCAvKiBSZW5kZXJUcmVl
QnVpbGRlckJsb2NrRmxvdy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBSZW5kZXJUcmVlQnVpbGRlckJsb2NrRmxvdy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTExQzVGMTJBMjAwNDIzMUQwMDAxQUU2MCAvKiBSZW5kZXJUcmVlQnVpbGRlclNWRy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJUcmVlQnVpbGRlclNWRy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxMUM1RjEyQzIwMDQyMzFFMDAwMUFFNjAg
LyogUmVuZGVyVHJlZUJ1aWxkZXJTVkcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gUmVuZGVyVHJlZUJ1aWxkZXJTVkcuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkxMUM1RjEzMjIwMDUyN0Y4MDAwMUFFNjAgLyogUmVuZGVyVHJlZUJ1aWxkZXJNYXRo
TUwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyVHJlZUJ1
aWxkZXJNYXRoTUwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxMUM1RjEzNDIw
MDUyN0Y5MDAwMUFFNjAgLyogUmVuZGVyVHJlZUJ1aWxkZXJNYXRoTUwuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyVHJlZUJ1aWxkZXJNYXRoTUwuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTFFMDY3RUIxRTYyNDYxMzAwMTYyRDE2IC8qIFNpbXBsZUxp
bmVMYXlvdXRDb3ZlcmFnZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBTaW1wbGVMaW5lTGF5b3V0Q292ZXJhZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkxMUUwNjdFRDFFNjI0NkU1MDAxNjJEMTYgLyogU2ltcGxlTGluZUxheW91dENvdmVyYWdl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNpbXBsZUxpbmVMYXlvdXRDb3Zl
cmFnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNDAwRDdBNzE3MTM2RUE3MDA3
N0NFMDUgLyogU2NyaXB0V3JhcHBhYmxlSW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTY3JpcHRXcmFwcGFibGVJbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0yNDY0NSw2ICsyNDY0Nyw4IEBACiAJCQkJMTFDNUYxMTgyMDAzRTc3NjAwMDFB
RTYwIC8qIFJlbmRlclRyZWVCdWlsZGVySW5saW5lLmggKi8sCiAJCQkJRTQ3QzM5MkIxRkU2RTBE
RjAwQkJCQzZCIC8qIFJlbmRlclRyZWVCdWlsZGVyTGlzdC5jcHAgKi8sCiAJCQkJRTQ3QzM5Mjgx
RkU2RTBERDAwQkJCQzZCIC8qIFJlbmRlclRyZWVCdWlsZGVyTGlzdC5oICovLAorCQkJCTExQzVG
MTMyMjAwNTI3RjgwMDAxQUU2MCAvKiBSZW5kZXJUcmVlQnVpbGRlck1hdGhNTC5jcHAgKi8sCisJ
CQkJMTFDNUYxMzQyMDA1MjdGOTAwMDFBRTYwIC8qIFJlbmRlclRyZWVCdWlsZGVyTWF0aE1MLmgg
Ki8sCiAJCQkJRTQ3QzM5MjMxRkU2RTBEQTAwQkJCQzZCIC8qIFJlbmRlclRyZWVCdWlsZGVyTXVs
dGlDb2x1bW4uY3BwICovLAogCQkJCUU0N0MzOTI3MUZFNkUwREMwMEJCQkM2QiAvKiBSZW5kZXJU
cmVlQnVpbGRlck11bHRpQ29sdW1uLmggKi8sCiAJCQkJMTE5MzQwODcxRkVCMzU1RDAwOTM1RjFF
IC8qIFJlbmRlclRyZWVCdWlsZGVyUnVieS5jcHAgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEZlbmNlZC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEZlbmNlZC5jcHAKaW5kZXggNDdjMGFk
ZTUzMzc2YmFkYjMxYzVlYTM1NDBlYmEyOGQ2MmU2NWFhYi4uNzdiNzJiNjlmMWRiNGM3YWViNDkz
YTdkOTYzNDg3ODFiNTQ5N2JiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L21hdGhtbC9SZW5kZXJNYXRoTUxGZW5jZWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9tYXRobWwvUmVuZGVyTWF0aE1MRmVuY2VkLmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2lu
Y2x1ZGUgIlJlbmRlcklubGluZS5oIgogI2luY2x1ZGUgIlJlbmRlck1hdGhNTEZlbmNlZE9wZXJh
dG9yLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGV4dC5oIgorI2luY2x1ZGUgIlJlbmRlclRyZWVCdWls
ZGVyLmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKQEAgLTg0LDcyICs4NSwxMiBAQCB2b2lkIFJlbmRlck1h
dGhNTEZlbmNlZDo6dXBkYXRlRnJvbUVsZW1lbnQoKQogICAgIH0KIH0KIAotUmVuZGVyUHRyPFJl
bmRlck1hdGhNTEZlbmNlZE9wZXJhdG9yPiBSZW5kZXJNYXRoTUxGZW5jZWQ6OmNyZWF0ZU1hdGhN
TE9wZXJhdG9yKGNvbnN0IFN0cmluZyYgb3BlcmF0b3JTdHJpbmcsIE1hdGhNTE9wZXJhdG9yRGlj
dGlvbmFyeTo6Rm9ybSBmb3JtLCBNYXRoTUxPcGVyYXRvckRpY3Rpb25hcnk6OkZsYWcgZmxhZykK
LXsKLSAgICBSZW5kZXJQdHI8UmVuZGVyTWF0aE1MRmVuY2VkT3BlcmF0b3I+IG5ld09wZXJhdG9y
ID0gY3JlYXRlUmVuZGVyZXI8UmVuZGVyTWF0aE1MRmVuY2VkT3BlcmF0b3I+KGRvY3VtZW50KCks
IFJlbmRlclN0eWxlOjpjcmVhdGVBbm9ueW1vdXNTdHlsZVdpdGhEaXNwbGF5KHN0eWxlKCksIEJM
T0NLKSwgb3BlcmF0b3JTdHJpbmcsIGZvcm0sIGZsYWcpOwotICAgIG5ld09wZXJhdG9yLT5pbml0
aWFsaXplU3R5bGUoKTsKLSAgICByZXR1cm4gbmV3T3BlcmF0b3I7Ci19Ci0KLXZvaWQgUmVuZGVy
TWF0aE1MRmVuY2VkOjptYWtlRmVuY2VzKFJlbmRlclRyZWVCdWlsZGVyJiBidWlsZGVyKQotewot
ICAgIGF1dG8gb3BlbkZlbmNlID0gY3JlYXRlTWF0aE1MT3BlcmF0b3IobV9vcGVuLCBNYXRoTUxP
cGVyYXRvckRpY3Rpb25hcnk6OlByZWZpeCwgTWF0aE1MT3BlcmF0b3JEaWN0aW9uYXJ5OjpGZW5j
ZSk7Ci0gICAgUmVuZGVyTWF0aE1MUm93OjphZGRDaGlsZChidWlsZGVyLCBXVEZNb3ZlKG9wZW5G
ZW5jZSksIGZpcnN0Q2hpbGQoKSk7Ci0KLSAgICBhdXRvIGNsb3NlRmVuY2UgPSBjcmVhdGVNYXRo
TUxPcGVyYXRvcihtX2Nsb3NlLCBNYXRoTUxPcGVyYXRvckRpY3Rpb25hcnk6OlBvc3RmaXgsIE1h
dGhNTE9wZXJhdG9yRGljdGlvbmFyeTo6RmVuY2UpOwotICAgIG1fY2xvc2VGZW5jZVJlbmRlcmVy
ID0gbWFrZVdlYWtQdHIoKmNsb3NlRmVuY2UpOwotICAgIFJlbmRlck1hdGhNTFJvdzo6YWRkQ2hp
bGQoYnVpbGRlciwgV1RGTW92ZShjbG9zZUZlbmNlKSk7Ci19Ci0KIHZvaWQgUmVuZGVyTWF0aE1M
RmVuY2VkOjphZGRDaGlsZChSZW5kZXJUcmVlQnVpbGRlciYgYnVpbGRlciwgUmVuZGVyUHRyPFJl
bmRlck9iamVjdD4gY2hpbGQsIFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQpCiB7CiAgICAgLy8g
bWFrZSB0aGUgZmVuY2VzIGlmIHRoZSByZW5kZXIgb2JqZWN0IGlzIGVtcHR5Ci0gICAgaWYgKCFm
aXJzdENoaWxkKCkpIHsKKyAgICBpZiAoIWZpcnN0Q2hpbGQoKSkKICAgICAgICAgdXBkYXRlRnJv
bUVsZW1lbnQoKTsKLSAgICAgICAgbWFrZUZlbmNlcyhidWlsZGVyKTsKLSAgICB9Ci0KLSAgICAv
LyBGSVhNRTogQWRkaW5nIG9yIHJlbW92aW5nIGEgY2hpbGQgc2hvdWxkIHBvc3NpYmx5IGNhdXNl
IGFsbCBsYXRlciBzZXBhcmF0b3JzIHRvIHNoaWZ0IHBsYWNlcyBpZiB0aGV5J3JlIGRpZmZlcmVu
dCwgYXMgbGF0ZXIgY2hpbGQgcG9zaXRpb25zIGNoYW5nZSBieSArMSBvciAtMS4gVGhpcyBzaG91
bGQgYWxzbyBoYW5kbGUgc3Vycm9nYXRlIHBhaXJzLiBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEyNTkzOC4KLQotICAgIFJlbmRlclB0cjxSZW5kZXJNYXRoTUxG
ZW5jZWRPcGVyYXRvcj4gc2VwYXJhdG9yUmVuZGVyZXI7Ci0gICAgaWYgKG1fc2VwYXJhdG9ycy5n
ZXQoKSkgewotICAgICAgICB1bnNpZ25lZCBpbnQgY291bnQgPSAwOwotICAgICAgICBmb3IgKE5v
ZGUqIHBvc2l0aW9uID0gY2hpbGQtPm5vZGUoKTsgcG9zaXRpb247IHBvc2l0aW9uID0gcG9zaXRp
b24tPnByZXZpb3VzU2libGluZygpKSB7Ci0gICAgICAgICAgICBpZiAocG9zaXRpb24tPmlzRWxl
bWVudE5vZGUoKSkKLSAgICAgICAgICAgICAgICBjb3VudCsrOwotICAgICAgICB9Ci0gICAgICAg
IGlmICghYmVmb3JlQ2hpbGQpIHsKLSAgICAgICAgICAgIC8vIFdlJ3JlIGFkZGluZyBhdCB0aGUg
ZW5kIChiZWZvcmUgdGhlIGNsb3NpbmcgZmVuY2UpLCBzbyBhIG5ldyBzZXBhcmF0b3Igd291bGQg
Z28gYmVmb3JlIHRoZSBuZXcgY2hpbGQsIG5vdCBhZnRlciBpdC4KLSAgICAgICAgICAgIC0tY291
bnQ7Ci0gICAgICAgIH0KLSAgICAgICAgLy8gfGNvdW50fCBpcyBub3cgdGhlIG51bWJlciBvZiBl
bGVtZW50IGNoaWxkcmVuIHRoYXQgd2lsbCBiZSBiZWZvcmUgb3VyIG5ldyBzZXBhcmF0b3IsIGku
ZS4gaXQncyB0aGUgMS1iYXNlZCBpbmRleCBvZiB0aGUgc2VwYXJhdG9yLgotCi0gICAgICAgIGlm
IChjb3VudCA+IDApIHsKLSAgICAgICAgICAgIFVDaGFyIHNlcGFyYXRvcjsKLQotICAgICAgICAg
ICAgLy8gVXNlIHRoZSBsYXN0IHNlcGFyYXRvciBpZiB3ZSd2ZSBydW4gb3V0IG9mIHNwZWNpZmll
ZCBzZXBhcmF0b3JzLgotICAgICAgICAgICAgaWYgKGNvdW50ID4gbV9zZXBhcmF0b3JzLmdldCgp
LT5sZW5ndGgoKSkKLSAgICAgICAgICAgICAgICBzZXBhcmF0b3IgPSAoKm1fc2VwYXJhdG9ycy5n
ZXQoKSlbbV9zZXBhcmF0b3JzLmdldCgpLT5sZW5ndGgoKSAtIDFdOwotICAgICAgICAgICAgZWxz
ZQotICAgICAgICAgICAgICAgIHNlcGFyYXRvciA9ICgqbV9zZXBhcmF0b3JzLmdldCgpKVtjb3Vu
dCAtIDFdOwotCi0gICAgICAgICAgICBTdHJpbmdCdWlsZGVyIHN0cmluZ0J1aWxkZXI7Ci0gICAg
ICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZChzZXBhcmF0b3IpOwotICAgICAgICAgICAgc2Vw
YXJhdG9yUmVuZGVyZXIgPSBjcmVhdGVNYXRoTUxPcGVyYXRvcihzdHJpbmdCdWlsZGVyLnRvU3Ry
aW5nKCksIE1hdGhNTE9wZXJhdG9yRGljdGlvbmFyeTo6SW5maXgsIE1hdGhNTE9wZXJhdG9yRGlj
dGlvbmFyeTo6U2VwYXJhdG9yKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGlmIChiZWZvcmVD
aGlsZCkgewotICAgICAgICAvLyBBZGRpbmcgfHh8IGJlZm9yZSBhbiBleGlzdGluZyB8eXwgZS5n
LiBpbiBlbGVtZW50ICh5KSAtIGZpcnN0IGluc2VydCBvdXIgbmV3IGNoaWxkIHx4fCwgdGhlbiBp
dHMgc2VwYXJhdG9yLCB0byBnZXQgKHgsIHkpLgotICAgICAgICBSZW5kZXJNYXRoTUxSb3c6OmFk
ZENoaWxkKGJ1aWxkZXIsIFdURk1vdmUoY2hpbGQpLCBiZWZvcmVDaGlsZCk7Ci0gICAgICAgIGlm
IChzZXBhcmF0b3JSZW5kZXJlcikKLSAgICAgICAgICAgIFJlbmRlck1hdGhNTFJvdzo6YWRkQ2hp
bGQoYnVpbGRlciwgV1RGTW92ZShzZXBhcmF0b3JSZW5kZXJlciksIGJlZm9yZUNoaWxkKTsKLSAg
ICB9IGVsc2UgewotICAgICAgICAvLyBBZGRpbmcgfHl8IGF0IHRoZSBlbmQgb2YgYW4gZXhpc3Rp
bmcgZWxlbWVudCBlLmcuICh4KSAtIGluc2VydCB0aGUgc2VwYXJhdG9yIGZpcnN0IGJlZm9yZSB0
aGUgY2xvc2luZyBmZW5jZSwgdGhlbiB8eXwsIHRvIGdldCAoeCwgeSkuCi0gICAgICAgIGlmIChz
ZXBhcmF0b3JSZW5kZXJlcikKLSAgICAgICAgICAgIFJlbmRlck1hdGhNTFJvdzo6YWRkQ2hpbGQo
YnVpbGRlciwgV1RGTW92ZShzZXBhcmF0b3JSZW5kZXJlciksIG1fY2xvc2VGZW5jZVJlbmRlcmVy
LmdldCgpKTsKLSAgICAgICAgUmVuZGVyTWF0aE1MUm93OjphZGRDaGlsZChidWlsZGVyLCBXVEZN
b3ZlKGNoaWxkKSwgbV9jbG9zZUZlbmNlUmVuZGVyZXIuZ2V0KCkpOwotICAgIH0KKyAgICBidWls
ZGVyLmluc2VydENoaWxkVG9SZW5kZXJNYXRoTUxGZW5jZWQoKnRoaXMsIFdURk1vdmUoY2hpbGQp
LCBiZWZvcmVDaGlsZCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9tYXRobWwvUmVuZGVyTWF0aE1MRmVuY2VkLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvbWF0aG1sL1JlbmRlck1hdGhNTEZlbmNlZC5oCmluZGV4IGVmNmVjOTZmNDU0YTM3ZWI1M2Iw
YzQ2MTdjYmM1OWEwMGIwY2U2MmQuLjlmNWE1NWM3NjViNTRjMmMyNGZlNGFlMzgzODJjNzc4Nzdm
NzMyZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVy
TWF0aE1MRmVuY2VkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5k
ZXJNYXRoTUxGZW5jZWQuaApAQCAtMzksMTUgKzM5LDE5IEBAIGNsYXNzIFJlbmRlck1hdGhNTEZl
bmNlZCBmaW5hbCA6IHB1YmxpYyBSZW5kZXJNYXRoTUxSb3cgewogcHVibGljOgogICAgIFJlbmRl
ck1hdGhNTEZlbmNlZChNYXRoTUxSb3dFbGVtZW50JiwgUmVuZGVyU3R5bGUmJik7CiAKKyAgICBT
dHJpbmdJbXBsKiBzZXBhcmF0b3JzKCkgY29uc3QgeyByZXR1cm4gbV9zZXBhcmF0b3JzLmdldCgp
OyB9CisgICAgU3RyaW5nIG9wZW5pbmdCcmFjZSgpIGNvbnN0IHsgcmV0dXJuIG1fb3BlbjsgfQor
ICAgIFN0cmluZyBjbG9zaW5nQnJhY2UoKSBjb25zdCB7IHJldHVybiBtX2Nsb3NlOyB9CisKKyAg
ICBSZW5kZXJNYXRoTUxGZW5jZWRPcGVyYXRvciogY2xvc2VGZW5jZVJlbmRlcmVyKCkgY29uc3Qg
eyByZXR1cm4gbV9jbG9zZUZlbmNlUmVuZGVyZXIuZ2V0KCk7IH0KKyAgICB2b2lkIHNldENsb3Nl
RmVuY2VSZW5kZXJlcihSZW5kZXJNYXRoTUxGZW5jZWRPcGVyYXRvciYgcmVuZGVyZXIpIHsgbV9j
bG9zZUZlbmNlUmVuZGVyZXIgPSBtYWtlV2Vha1B0cihyZW5kZXJlcik7IH0KKwogcHJpdmF0ZToK
ICAgICBib29sIGlzUmVuZGVyTWF0aE1MRmVuY2VkKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1
ZTsgfQogICAgIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiAi
UmVuZGVyTWF0aE1MRmVuY2VkIjsgfQogICAgIHZvaWQgYWRkQ2hpbGQoUmVuZGVyVHJlZUJ1aWxk
ZXImLCBSZW5kZXJQdHI8UmVuZGVyT2JqZWN0PiBjaGlsZCwgUmVuZGVyT2JqZWN0KiBiZWZvcmVD
aGlsZCkgZmluYWw7CiAgICAgdm9pZCB1cGRhdGVGcm9tRWxlbWVudCgpOwogCi0gICAgUmVuZGVy
UHRyPFJlbmRlck1hdGhNTEZlbmNlZE9wZXJhdG9yPiBjcmVhdGVNYXRoTUxPcGVyYXRvcihjb25z
dCBTdHJpbmcmIG9wZXJhdG9yU3RyaW5nLCBNYXRoTUxPcGVyYXRvckRpY3Rpb25hcnk6OkZvcm0s
IE1hdGhNTE9wZXJhdG9yRGljdGlvbmFyeTo6RmxhZyk7Ci0gICAgdm9pZCBtYWtlRmVuY2VzKFJl
bmRlclRyZWVCdWlsZGVyJik7Ci0KICAgICBTdHJpbmcgbV9vcGVuOwogICAgIFN0cmluZyBtX2Ns
b3NlOwogICAgIFJlZlB0cjxTdHJpbmdJbXBsPiBtX3NlcGFyYXRvcnM7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyLmNwcApp
bmRleCAzMjIzZTE1YTIyNWUwMWY4MzUzZjBlMDhmMjNmNDk2NTRjOGYxYTdjLi4wY2RlMmRhMWI2
ZGZlOTU2ODE3M2VmYzZmMDMxYTIwZmRkM2ZkODcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlci5jcHAKQEAgLTQxLDYg
KzQxLDcgQEAKICNpbmNsdWRlICJSZW5kZXJUcmVlQnVpbGRlckZvcm1Db250cm9scy5oIgogI2lu
Y2x1ZGUgIlJlbmRlclRyZWVCdWlsZGVySW5saW5lLmgiCiAjaW5jbHVkZSAiUmVuZGVyVHJlZUJ1
aWxkZXJMaXN0LmgiCisjaW5jbHVkZSAiUmVuZGVyVHJlZUJ1aWxkZXJNYXRoTUwuaCIKICNpbmNs
dWRlICJSZW5kZXJUcmVlQnVpbGRlck11bHRpQ29sdW1uLmgiCiAjaW5jbHVkZSAiUmVuZGVyVHJl
ZUJ1aWxkZXJSdWJ5LmgiCiAjaW5jbHVkZSAiUmVuZGVyVHJlZUJ1aWxkZXJTVkcuaCIKQEAgLTEx
NCw2ICsxMTUsNyBAQCBSZW5kZXJUcmVlQnVpbGRlcjo6UmVuZGVyVHJlZUJ1aWxkZXIoUmVuZGVy
VmlldyYgdmlldykKICAgICAsIG1fYmxvY2tGbG93QnVpbGRlcihzdGQ6Om1ha2VfdW5pcXVlPEJs
b2NrRmxvdz4oKnRoaXMpKQogICAgICwgbV9pbmxpbmVCdWlsZGVyKHN0ZDo6bWFrZV91bmlxdWU8
SW5saW5lPigqdGhpcykpCiAgICAgLCBtX3N2Z0J1aWxkZXIoc3RkOjptYWtlX3VuaXF1ZTxTVkc+
KCp0aGlzKSkKKyAgICAsIG1fbWF0aE1MQnVpbGRlcihzdGQ6Om1ha2VfdW5pcXVlPE1hdGhNTD4o
KnRoaXMpKQogewogICAgIFJFTEVBU0VfQVNTRVJUKCFzX2N1cnJlbnQgfHwgJm1fdmlldyAhPSAm
c19jdXJyZW50LT5tX3ZpZXcpOwogICAgIG1fcHJldmlvdXMgPSBzX2N1cnJlbnQ7CkBAIC0zMzQs
NiArMzM2LDExIEBAIHZvaWQgUmVuZGVyVHJlZUJ1aWxkZXI6Omluc2VydENoaWxkVG9SZW5kZXJC
bG9ja0Zsb3coUmVuZGVyQmxvY2tGbG93JiBwYXJlbnQsIFJlCiAgICAgYmxvY2tGbG93QnVpbGRl
cigpLmluc2VydENoaWxkKHBhcmVudCwgV1RGTW92ZShjaGlsZCksIGJlZm9yZUNoaWxkKTsKIH0K
IAordm9pZCBSZW5kZXJUcmVlQnVpbGRlcjo6aW5zZXJ0Q2hpbGRUb1JlbmRlck1hdGhNTEZlbmNl
ZChSZW5kZXJNYXRoTUxGZW5jZWQmIHBhcmVudCwgUmVuZGVyUHRyPFJlbmRlck9iamVjdD4gY2hp
bGQsIFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQpCit7CisgICAgbWF0aE1MQnVpbGRlcigpLmlu
c2VydENoaWxkKHBhcmVudCwgV1RGTW92ZShjaGlsZCksIGJlZm9yZUNoaWxkKTsKK30KKwogdm9p
ZCBSZW5kZXJUcmVlQnVpbGRlcjo6dXBkYXRlQWZ0ZXJEZXNjZW5kYW50cyhSZW5kZXJFbGVtZW50
JiByZW5kZXJlcikKIHsKICAgICBpZiAoaXM8UmVuZGVyQmxvY2s+KHJlbmRlcmVyKSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRl
ci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVy
LmgKaW5kZXggMmViZTc5ZWFlMmE4MWJhMzBlZGI2ZDY1NjhiYzE0ZGRmZGNiZDhjOC4uMTlmOWI2
NmY2YmQxNjIyOGJjOGJjZTQ3MjU1NDNkYTVlMGU5YzkyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyLmgKQEAgLTI5LDYg
KzI5LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBSZW5kZXJNYXRoTUxGZW5j
ZWQ7CiBjbGFzcyBSZW5kZXJSdWJ5UnVuOwogY2xhc3MgUmVuZGVyU1ZHQ29udGFpbmVyOwogY2xh
c3MgUmVuZGVyU1ZHSW5saW5lOwpAQCAtNjYsNiArNjcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBp
bnNlcnRDaGlsZFRvUmVuZGVyVGFibGUoUmVuZGVyVGFibGUmIHBhcmVudCwgUmVuZGVyUHRyPFJl
bmRlck9iamVjdD4gY2hpbGQsIFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQgPSBudWxscHRyKTsK
ICAgICB2b2lkIGluc2VydENoaWxkVG9SZW5kZXJUYWJsZVNlY3Rpb24oUmVuZGVyVGFibGVTZWN0
aW9uJiBwYXJlbnQsIFJlbmRlclB0cjxSZW5kZXJPYmplY3Q+IGNoaWxkLCBSZW5kZXJPYmplY3Qq
IGJlZm9yZUNoaWxkID0gbnVsbHB0cik7CiAgICAgdm9pZCBpbnNlcnRDaGlsZFRvUmVuZGVyVGFi
bGVSb3coUmVuZGVyVGFibGVSb3cmIHBhcmVudCwgUmVuZGVyUHRyPFJlbmRlck9iamVjdD4gY2hp
bGQsIFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQgPSBudWxscHRyKTsKKyAgICB2b2lkIGluc2Vy
dENoaWxkVG9SZW5kZXJNYXRoTUxGZW5jZWQoUmVuZGVyTWF0aE1MRmVuY2VkJiBwYXJlbnQsIFJl
bmRlclB0cjxSZW5kZXJPYmplY3Q+IGNoaWxkLCBSZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxkID0g
bnVsbHB0cik7CiAKICAgICB2b2lkIG1ha2VDaGlsZHJlbk5vbklubGluZShSZW5kZXJCbG9jayYg
cGFyZW50LCBSZW5kZXJPYmplY3QqIGluc2VydGlvblBvaW50ID0gbnVsbHB0cik7CiAgICAgUmVu
ZGVyT2JqZWN0KiBzcGxpdEFub255bW91c0JveGVzQXJvdW5kQ2hpbGQoUmVuZGVyQm94JiBwYXJl
bnQsIFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQpOwpAQCAtODIsNiArODQsNyBAQCBwcml2YXRl
OgogICAgIGNsYXNzIEJsb2NrRmxvdzsKICAgICBjbGFzcyBJbmxpbmU7CiAgICAgY2xhc3MgU1ZH
OworICAgIGNsYXNzIE1hdGhNTDsKIAogICAgIEZpcnN0TGV0dGVyJiBmaXJzdExldHRlckJ1aWxk
ZXIoKSB7IHJldHVybiAqbV9maXJzdExldHRlckJ1aWxkZXI7IH0KICAgICBMaXN0JiBsaXN0QnVp
bGRlcigpIHsgcmV0dXJuICptX2xpc3RCdWlsZGVyOyB9CkBAIC05Myw2ICs5Niw3IEBAIHByaXZh
dGU6CiAgICAgQmxvY2tGbG93JiBibG9ja0Zsb3dCdWlsZGVyKCkgeyByZXR1cm4gKm1fYmxvY2tG
bG93QnVpbGRlcjsgfQogICAgIElubGluZSYgaW5saW5lQnVpbGRlcigpIHsgcmV0dXJuICptX2lu
bGluZUJ1aWxkZXI7IH0KICAgICBTVkcmIHN2Z0J1aWxkZXIoKSB7IHJldHVybiAqbV9zdmdCdWls
ZGVyOyB9CisgICAgTWF0aE1MJiBtYXRoTUxCdWlsZGVyKCkgeyByZXR1cm4gKm1fbWF0aE1MQnVp
bGRlcjsgfQogCiAgICAgUmVuZGVyVmlldyYgbV92aWV3OwogCkBAIC0xMDksNiArMTEzLDcgQEAg
cHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8QmxvY2tGbG93PiBtX2Jsb2NrRmxvd0J1aWxk
ZXI7CiAgICAgc3RkOjp1bmlxdWVfcHRyPElubGluZT4gbV9pbmxpbmVCdWlsZGVyOwogICAgIHN0
ZDo6dW5pcXVlX3B0cjxTVkc+IG1fc3ZnQnVpbGRlcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8TWF0
aE1MPiBtX21hdGhNTEJ1aWxkZXI7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJNYXRoTUwuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyTWF0aE1MLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4xNWMyYTE4ZGUzNmUzZWRmYmU5MWJkNzY4NGY1Yzg1NWMwYTgwMjNlCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRy
ZWVCdWlsZGVyTWF0aE1MLmNwcApAQCAtMCwwICsxLDEwNiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW5kZXJUcmVlQnVpbGRlck1hdGhNTC5oIgorCisj
aW5jbHVkZSAiUmVuZGVyTWF0aE1MRmVuY2VkLmgiCisjaW5jbHVkZSAiUmVuZGVyTWF0aE1MRmVu
Y2VkT3BlcmF0b3IuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZW5kZXJUcmVlQnVpbGRl
cjo6TWF0aE1MOjpNYXRoTUwoUmVuZGVyVHJlZUJ1aWxkZXImIGJ1aWxkZXIpCisgICAgOiBtX2J1
aWxkZXIoYnVpbGRlcikKK3sKK30KKworUmVuZGVyUHRyPFJlbmRlck1hdGhNTEZlbmNlZE9wZXJh
dG9yPiBSZW5kZXJUcmVlQnVpbGRlcjo6TWF0aE1MOjpjcmVhdGVNYXRoTUxPcGVyYXRvcihSZW5k
ZXJNYXRoTUxGZW5jZWQmIHBhcmVudCwgY29uc3QgU3RyaW5nJiBvcGVyYXRvclN0cmluZywKKyAg
ICBNYXRoTUxPcGVyYXRvckRpY3Rpb25hcnk6OkZvcm0gZm9ybSwgTWF0aE1MT3BlcmF0b3JEaWN0
aW9uYXJ5OjpGbGFnIGZsYWcpCit7CisgICAgUmVuZGVyUHRyPFJlbmRlck1hdGhNTEZlbmNlZE9w
ZXJhdG9yPiBuZXdPcGVyYXRvciA9IGNyZWF0ZVJlbmRlcmVyPFJlbmRlck1hdGhNTEZlbmNlZE9w
ZXJhdG9yPihwYXJlbnQuZG9jdW1lbnQoKSwgUmVuZGVyU3R5bGU6OmNyZWF0ZUFub255bW91c1N0
eWxlV2l0aERpc3BsYXkocGFyZW50LnN0eWxlKCksIEJMT0NLKSwgb3BlcmF0b3JTdHJpbmcsIGZv
cm0sIGZsYWcpOworICAgIG5ld09wZXJhdG9yLT5pbml0aWFsaXplU3R5bGUoKTsKKyAgICByZXR1
cm4gbmV3T3BlcmF0b3I7Cit9CisKK3ZvaWQgUmVuZGVyVHJlZUJ1aWxkZXI6Ok1hdGhNTDo6bWFr
ZUZlbmNlcyhSZW5kZXJNYXRoTUxGZW5jZWQmIHBhcmVudCkKK3sKKyAgICBhdXRvIG9wZW5GZW5j
ZSA9IGNyZWF0ZU1hdGhNTE9wZXJhdG9yKHBhcmVudCwgcGFyZW50Lm9wZW5pbmdCcmFjZSgpLCBN
YXRoTUxPcGVyYXRvckRpY3Rpb25hcnk6OlByZWZpeCwgTWF0aE1MT3BlcmF0b3JEaWN0aW9uYXJ5
OjpGZW5jZSk7CisgICAgcGFyZW50LlJlbmRlck1hdGhNTFJvdzo6YWRkQ2hpbGQobV9idWlsZGVy
LCBXVEZNb3ZlKG9wZW5GZW5jZSksIHBhcmVudC5maXJzdENoaWxkKCkpOworCisgICAgYXV0byBj
bG9zZUZlbmNlID0gY3JlYXRlTWF0aE1MT3BlcmF0b3IocGFyZW50LCBwYXJlbnQuY2xvc2luZ0Jy
YWNlKCksIE1hdGhNTE9wZXJhdG9yRGljdGlvbmFyeTo6UG9zdGZpeCwgTWF0aE1MT3BlcmF0b3JE
aWN0aW9uYXJ5OjpGZW5jZSk7CisgICAgcGFyZW50LnNldENsb3NlRmVuY2VSZW5kZXJlcigqY2xv
c2VGZW5jZSk7CisgICAgcGFyZW50LlJlbmRlck1hdGhNTFJvdzo6YWRkQ2hpbGQobV9idWlsZGVy
LCBXVEZNb3ZlKGNsb3NlRmVuY2UpKTsKK30KKwordm9pZCBSZW5kZXJUcmVlQnVpbGRlcjo6TWF0
aE1MOjppbnNlcnRDaGlsZChSZW5kZXJNYXRoTUxGZW5jZWQmIHBhcmVudCwgUmVuZGVyUHRyPFJl
bmRlck9iamVjdD4gY2hpbGQsIFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQpCit7CisgICAgaWYg
KCFwYXJlbnQuZmlyc3RDaGlsZCgpKQorICAgICAgICBtYWtlRmVuY2VzKHBhcmVudCk7CisgICAg
Ly8gRklYTUU6IEFkZGluZyBvciByZW1vdmluZyBhIGNoaWxkIHNob3VsZCBwb3NzaWJseSBjYXVz
ZSBhbGwgbGF0ZXIgc2VwYXJhdG9ycyB0byBzaGlmdCBwbGFjZXMKKyAgICAvLyBpZiB0aGV5J3Jl
IGRpZmZlcmVudCwgYXMgbGF0ZXIgY2hpbGQgcG9zaXRpb25zIGNoYW5nZSBieSArMSBvciAtMS4K
KyAgICAvLyBUaGlzIHNob3VsZCBhbHNvIGhhbmRsZSBzdXJyb2dhdGUgcGFpcnMuIFNlZSBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI1OTM4LgorICAgIFJlbmRlclB0
cjxSZW5kZXJNYXRoTUxGZW5jZWRPcGVyYXRvcj4gc2VwYXJhdG9yUmVuZGVyZXI7CisgICAgYXV0
byogc2VwYXJhdG9ycyA9IHBhcmVudC5zZXBhcmF0b3JzKCk7CisgICAgaWYgKHNlcGFyYXRvcnMp
IHsKKyAgICAgICAgdW5zaWduZWQgY291bnQgPSAwOworICAgICAgICBmb3IgKE5vZGUqIHBvc2l0
aW9uID0gY2hpbGQtPm5vZGUoKTsgcG9zaXRpb247IHBvc2l0aW9uID0gcG9zaXRpb24tPnByZXZp
b3VzU2libGluZygpKSB7CisgICAgICAgICAgICBpZiAocG9zaXRpb24tPmlzRWxlbWVudE5vZGUo
KSkKKyAgICAgICAgICAgICAgICBjb3VudCsrOworICAgICAgICB9CisgICAgICAgIGlmICghYmVm
b3JlQ2hpbGQpIHsKKyAgICAgICAgICAgIC8vIFdlJ3JlIGFkZGluZyBhdCB0aGUgZW5kIChiZWZv
cmUgdGhlIGNsb3NpbmcgZmVuY2UpLCBzbyBhIG5ldyBzZXBhcmF0b3Igd291bGQgZ28gYmVmb3Jl
IHRoZSBuZXcgY2hpbGQsIG5vdCBhZnRlciBpdC4KKyAgICAgICAgICAgIC0tY291bnQ7CisgICAg
ICAgIH0KKyAgICAgICAgLy8gfGNvdW50fCBpcyBub3cgdGhlIG51bWJlciBvZiBlbGVtZW50IGNo
aWxkcmVuIHRoYXQgd2lsbCBiZSBiZWZvcmUgb3VyIG5ldyBzZXBhcmF0b3IsIGkuZS4gaXQncyB0
aGUgMS1iYXNlZCBpbmRleCBvZiB0aGUgc2VwYXJhdG9yLgorCisgICAgICAgIGlmIChjb3VudCA+
IDApIHsKKyAgICAgICAgICAgIFVDaGFyIHNlcGFyYXRvcjsKKworICAgICAgICAgICAgLy8gVXNl
IHRoZSBsYXN0IHNlcGFyYXRvciBpZiB3ZSd2ZSBydW4gb3V0IG9mIHNwZWNpZmllZCBzZXBhcmF0
b3JzLgorICAgICAgICAgICAgaWYgKGNvdW50ID4gc2VwYXJhdG9ycy0+bGVuZ3RoKCkpCisgICAg
ICAgICAgICAgICAgc2VwYXJhdG9yID0gKCpzZXBhcmF0b3JzKVtzZXBhcmF0b3JzLT5sZW5ndGgo
KSAtIDFdOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHNlcGFyYXRvciA9ICgq
c2VwYXJhdG9ycylbY291bnQgLSAxXTsKKworICAgICAgICAgICAgU3RyaW5nQnVpbGRlciBzdHJp
bmdCdWlsZGVyOworICAgICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoc2VwYXJhdG9yKTsK
KyAgICAgICAgICAgIHNlcGFyYXRvclJlbmRlcmVyID0gY3JlYXRlTWF0aE1MT3BlcmF0b3IocGFy
ZW50LCBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCksIE1hdGhNTE9wZXJhdG9yRGljdGlvbmFyeTo6
SW5maXgsIE1hdGhNTE9wZXJhdG9yRGljdGlvbmFyeTo6U2VwYXJhdG9yKTsKKyAgICAgICAgfQor
ICAgIH0KKworICAgIGlmIChiZWZvcmVDaGlsZCkgeworICAgICAgICAvLyBBZGRpbmcgfHh8IGJl
Zm9yZSBhbiBleGlzdGluZyB8eXwgZS5nLiBpbiBlbGVtZW50ICh5KSAtIGZpcnN0IGluc2VydCBv
dXIgbmV3IGNoaWxkIHx4fCwgdGhlbiBpdHMgc2VwYXJhdG9yLCB0byBnZXQgKHgsIHkpLgorICAg
ICAgICBwYXJlbnQuUmVuZGVyTWF0aE1MUm93OjphZGRDaGlsZChtX2J1aWxkZXIsIFdURk1vdmUo
Y2hpbGQpLCBiZWZvcmVDaGlsZCk7CisgICAgICAgIGlmIChzZXBhcmF0b3JSZW5kZXJlcikKKyAg
ICAgICAgICAgIHBhcmVudC5SZW5kZXJNYXRoTUxSb3c6OmFkZENoaWxkKG1fYnVpbGRlciwgV1RG
TW92ZShzZXBhcmF0b3JSZW5kZXJlciksIGJlZm9yZUNoaWxkKTsKKyAgICB9IGVsc2UgeworICAg
ICAgICAvLyBBZGRpbmcgfHl8IGF0IHRoZSBlbmQgb2YgYW4gZXhpc3RpbmcgZWxlbWVudCBlLmcu
ICh4KSAtIGluc2VydCB0aGUgc2VwYXJhdG9yIGZpcnN0IGJlZm9yZSB0aGUgY2xvc2luZyBmZW5j
ZSwgdGhlbiB8eXwsIHRvIGdldCAoeCwgeSkuCisgICAgICAgIGlmIChzZXBhcmF0b3JSZW5kZXJl
cikKKyAgICAgICAgICAgIHBhcmVudC5SZW5kZXJNYXRoTUxSb3c6OmFkZENoaWxkKG1fYnVpbGRl
ciwgV1RGTW92ZShzZXBhcmF0b3JSZW5kZXJlciksIHBhcmVudC5jbG9zZUZlbmNlUmVuZGVyZXIo
KSk7CisgICAgICAgIHBhcmVudC5SZW5kZXJNYXRoTUxSb3c6OmFkZENoaWxkKG1fYnVpbGRlciwg
V1RGTW92ZShjaGlsZCksIHBhcmVudC5jbG9zZUZlbmNlUmVuZGVyZXIoKSk7CisgICAgfQorfQor
Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVy
VHJlZUJ1aWxkZXJNYXRoTUwuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9S
ZW5kZXJUcmVlQnVpbGRlck1hdGhNTC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlhNWY0ZGYxZDEyNTlkNWE2MTI1
M2NjZDU1OTBkMTIwNTgwMmUxZGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJNYXRoTUwuaApAQCAtMCwwICsxLDQ5
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJNYXRoTUxPcGVyYXRv
ckRpY3Rpb25hcnkuaCIKKyNpbmNsdWRlICJSZW5kZXJUcmVlQnVpbGRlci5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK2NsYXNzIFJlbmRlck1hdGhNTEZlbmNlZDsKK2NsYXNzIFJlbmRlck1h
dGhNTEZlbmNlZE9wZXJhdG9yOworCitjbGFzcyBSZW5kZXJUcmVlQnVpbGRlcjo6TWF0aE1MIHsK
K3B1YmxpYzoKKyAgICBNYXRoTUwoUmVuZGVyVHJlZUJ1aWxkZXImKTsKKworICAgIHZvaWQgaW5z
ZXJ0Q2hpbGQoUmVuZGVyTWF0aE1MRmVuY2VkJiBwYXJlbnQsIFJlbmRlclB0cjxSZW5kZXJPYmpl
Y3Q+IGNoaWxkLCBSZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxkKTsKKworcHJpdmF0ZToKKyAgICB2
b2lkIG1ha2VGZW5jZXMoUmVuZGVyTWF0aE1MRmVuY2VkJiBwYXJlbnQpOworICAgIFJlbmRlclB0
cjxSZW5kZXJNYXRoTUxGZW5jZWRPcGVyYXRvcj4gY3JlYXRlTWF0aE1MT3BlcmF0b3IoUmVuZGVy
TWF0aE1MRmVuY2VkJiBwYXJlbnQsIGNvbnN0IFN0cmluZyYgb3BlcmF0b3JTdHJpbmcsIE1hdGhN
TE9wZXJhdG9yRGljdGlvbmFyeTo6Rm9ybSwgTWF0aE1MT3BlcmF0b3JEaWN0aW9uYXJ5OjpGbGFn
KTsKKworICAgIFJlbmRlclRyZWVCdWlsZGVyJiBtX2J1aWxkZXI7Cit9OworCit9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>