<?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>179437</bug_id>
          
          <creation_ts>2017-11-08 12:23:37 -0800</creation_ts>
          <short_desc>Move inlineElementContinuation function to RenderBoxModelObject and rename to inlineContinuation</short_desc>
          <delta_ts>2017-11-15 09:43:47 -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="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</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>1369523</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2017-11-08 12:23:37 -0800</bug_when>
    <thetext>This can be done in a simpler way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1369527</commentid>
    <comment_count>1</comment_count>
      <attachid>326345</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2017-11-08 12:30:25 -0800</bug_when>
    <thetext>Created attachment 326345
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1369528</commentid>
    <comment_count>2</comment_count>
      <attachid>326346</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2017-11-08 12:32:27 -0800</bug_when>
    <thetext>Created attachment 326346
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1369536</commentid>
    <comment_count>3</comment_count>
      <attachid>326350</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2017-11-08 13:05:46 -0800</bug_when>
    <thetext>Created attachment 326350
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1369542</commentid>
    <comment_count>4</comment_count>
      <attachid>326353</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2017-11-08 13:13:07 -0800</bug_when>
    <thetext>Created attachment 326353
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1369571</commentid>
    <comment_count>5</comment_count>
      <attachid>326362</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2017-11-08 13:46:24 -0800</bug_when>
    <thetext>Created attachment 326362
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1369647</commentid>
    <comment_count>6</comment_count>
      <attachid>326362</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-11-08 15:13:45 -0800</bug_when>
    <thetext>Comment on attachment 326362
patch

Clearing flags on attachment: 326362

Committed r224600: &lt;https://trac.webkit.org/changeset/224600&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1369648</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-11-08 15:13:48 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1371983</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-11-15 09:43:47 -0800</bug_when>
    <thetext>&lt;rdar://problem/35562316&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>326345</attachid>
            <date>2017-11-08 12:30:25 -0800</date>
            <delta_ts>2017-11-08 12:32:27 -0800</delta_ts>
            <desc>patch</desc>
            <filename>move-inlineElementContinuation.patch</filename>
            <type>text/plain</type>
            <size>18187</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyNDU5MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQwIEBACisyMDE3LTExLTA4ICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIGlubGluZUVsZW1lbnRD
b250aW51YXRpb24gZnVuY3Rpb24gdG8gUmVuZGVyQm94TW9kZWxPYmplY3QgYW5kIHJlbmFtZSB0
byBpbmxpbmVDb250aW51YXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE3OTQzNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFVuaWZ5IFJlbmRlcklubGluZTo6aW5saW5lRWxlbWVudENvbnRpbnVhdGlv
biBhbmQgUmVuZGVyQmxvY2s6OmlubGluZUVsZW1lbnRDb250aW51YXRpb24uCisgICAgICAgIEl0
IGlzIHNpbXBseSBhIGZ1bmN0aW9uIHRvIGZpbmQgdGhlIG5leHQgUmVuZGVySW5saW5lIGluIHRo
ZSBjb250aW51YXRpb24gY2hhaW4uCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bGFzdENoaWxkQ29uc2lk
ZXJpbmdDb250aW51YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6c3RhcnRPZkNvbnRpbnVhdGlv
bnMpOgorICAgICAgICAoV2ViQ29yZTo6ZW5kT2ZDb250aW51YXRpb25zKToKKyAgICAgICAgKFdl
YkNvcmU6OmNoaWxkQmVmb3JlQ29uc2lkZXJpbmdDb250aW51YXRpb25zKToKKyAgICAgICAgKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6Om5leHRTaWJsaW5nIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6Om5leHRDb250aW51YXRpb24pOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJCbG9jay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6cGFpbnRPYmpl
Y3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmFic29sdXRlUmVjdHMgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmFkZEZvY3VzUmluZ1JlY3RzKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjppbmxpbmVFbGVtZW50Q29udGludWF0aW9uIGNv
bnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suaDoKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6YWNjdW11bGF0ZUluRmxvd1Bvc2l0aW9uT2Zmc2V0cyk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJCb3hNb2RlbE9iamVjdDo6aW5saW5lQ29udGludWF0aW9uIGNvbnN0KToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaDoKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVySW5saW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnVwZGF0ZVN0eWxlT2ZBbm9ueW1v
dXNCbG9ja0NvbnRpbnVhdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVySW5saW5lOjpz
dHlsZURpZENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpuZXh0Q29udGludWF0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlcklubGluZTo6cG9zaXRpb25Gb3JQb2ludCk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJJbmxpbmU6OmlubGluZUVsZW1lbnRDb250aW51YXRpb24gY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbmxpbmUuaDoKKyAgICAgICAg
KiByZW5kZXJpbmcvbGluZS9MaW5lSW5saW5lSGVhZGVycy5oOgorICAgICAgICAoV2ViQ29yZTo6
aGFzSW5saW5lRGlyZWN0aW9uQm9yZGVyc1BhZGRpbmdPck1hcmdpbik6CisKIDIwMTctMTEtMDgg
IENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBTaW1wbGlmeSBTZXJ2
aWNlV29ya2VyQ29udGFpbmVyOjpqb2JSZXNvbHZlZFdpdGhSZWdpc3RyYXRpb24oKQpJbmRleDog
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3QuY3BwCShyZXZpc2lvbiAyMjQ1ODMpCisrKyBTb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xOTksMTggKzE5OSwxMSBAQCBzdGF0aWMgaW5saW5lIFJlbmRlck9iamVjdCogbGFzdENo
aWxkQ29uCiAgICAgICAgIHJldHVybiAmcmVuZGVyZXI7CiAKICAgICBSZW5kZXJPYmplY3QqIGxh
c3RDaGlsZCA9IGRvd25jYXN0PFJlbmRlckJveE1vZGVsT2JqZWN0PihyZW5kZXJlcikubGFzdENo
aWxkKCk7Ci0gICAgUmVuZGVyQm94TW9kZWxPYmplY3QqIHByZXZpb3VzOwogICAgIGZvciAoYXV0
byogY3VycmVudCA9ICZkb3duY2FzdDxSZW5kZXJCb3hNb2RlbE9iamVjdD4ocmVuZGVyZXIpOyBj
dXJyZW50OyApIHsKLSAgICAgICAgcHJldmlvdXMgPSBjdXJyZW50OwotCiAgICAgICAgIGlmIChS
ZW5kZXJPYmplY3QqIG5ld0xhc3RDaGlsZCA9IGN1cnJlbnQtPmxhc3RDaGlsZCgpKQogICAgICAg
ICAgICAgbGFzdENoaWxkID0gbmV3TGFzdENoaWxkOwogCi0gICAgICAgIGlmIChpczxSZW5kZXJJ
bmxpbmU+KCpjdXJyZW50KSkgewotICAgICAgICAgICAgY3VycmVudCA9IGRvd25jYXN0PFJlbmRl
cklubGluZT4oKmN1cnJlbnQpLmlubGluZUVsZW1lbnRDb250aW51YXRpb24oKTsKLSAgICAgICAg
ICAgIEFTU0VSVF9VTlVTRUQocHJldmlvdXMsIGN1cnJlbnQgfHwgIWRvd25jYXN0PFJlbmRlcklu
bGluZT4oKnByZXZpb3VzKS5jb250aW51YXRpb24oKSk7Ci0gICAgICAgIH0gZWxzZQotICAgICAg
ICAgICAgY3VycmVudCA9IGRvd25jYXN0PFJlbmRlckJsb2NrPigqY3VycmVudCkuaW5saW5lRWxl
bWVudENvbnRpbnVhdGlvbigpOworICAgICAgICBjdXJyZW50ID0gY3VycmVudC0+aW5saW5lQ29u
dGludWF0aW9uKCk7CiAgICAgfQogCiAgICAgcmV0dXJuIGxhc3RDaGlsZDsKQEAgLTI1NSw4ICsy
NDgsOCBAQCBzdGF0aWMgaW5saW5lIFJlbmRlcklubGluZSogc3RhcnRPZkNvbnRpCiAgICAgICAg
IHJldHVybiBkb3duY2FzdDxSZW5kZXJJbmxpbmU+KHJlbmRlcmVyLm5vZGUoKS0+cmVuZGVyZXIo
KSk7CiAKICAgICAvLyBCbG9ja3Mgd2l0aCBhIHByZXZpb3VzIGNvbnRpbnVhdGlvbiBhbHdheXMg
aGF2ZSBhIG5leHQgY29udGludWF0aW9uCi0gICAgaWYgKGlzPFJlbmRlckJsb2NrPihyZW5kZXJF
bGVtZW50KSAmJiBkb3duY2FzdDxSZW5kZXJCbG9jaz4ocmVuZGVyRWxlbWVudCkuaW5saW5lRWxl
bWVudENvbnRpbnVhdGlvbigpKQotICAgICAgICByZXR1cm4gZG93bmNhc3Q8UmVuZGVySW5saW5l
Pihkb3duY2FzdDxSZW5kZXJCbG9jaz4ocmVuZGVyRWxlbWVudCkuaW5saW5lRWxlbWVudENvbnRp
bnVhdGlvbigpLT5lbGVtZW50KCktPnJlbmRlcmVyKCkpOworICAgIGlmIChpczxSZW5kZXJCbG9j
az4ocmVuZGVyRWxlbWVudCkgJiYgZG93bmNhc3Q8UmVuZGVyQmxvY2s+KHJlbmRlckVsZW1lbnQp
LmlubGluZUNvbnRpbnVhdGlvbigpKQorICAgICAgICByZXR1cm4gZG93bmNhc3Q8UmVuZGVySW5s
aW5lPihkb3duY2FzdDxSZW5kZXJCbG9jaz4ocmVuZGVyRWxlbWVudCkuaW5saW5lQ29udGludWF0
aW9uKCktPmVsZW1lbnQoKS0+cmVuZGVyZXIoKSk7CiAKICAgICByZXR1cm4gbnVsbHB0cjsKIH0K
QEAgLTI2OSwxMSArMjYyLDcgQEAgc3RhdGljIGlubGluZSBSZW5kZXJPYmplY3QqIGVuZE9mQ29u
dGludQogICAgIGF1dG8qIHByZXZpb3VzID0gJmRvd25jYXN0PFJlbmRlckJveE1vZGVsT2JqZWN0
PihyZW5kZXJlcik7CiAgICAgZm9yIChhdXRvKiBjdXJyZW50ID0gcHJldmlvdXM7IGN1cnJlbnQ7
ICkgewogICAgICAgICBwcmV2aW91cyA9IGN1cnJlbnQ7Ci0gICAgICAgIGlmIChpczxSZW5kZXJJ
bmxpbmU+KCpjdXJyZW50KSkgewotICAgICAgICAgICAgY3VycmVudCA9IGRvd25jYXN0PFJlbmRl
cklubGluZT4oKmN1cnJlbnQpLmlubGluZUVsZW1lbnRDb250aW51YXRpb24oKTsKLSAgICAgICAg
ICAgIEFTU0VSVChjdXJyZW50IHx8ICFkb3duY2FzdDxSZW5kZXJJbmxpbmU+KCpwcmV2aW91cyku
Y29udGludWF0aW9uKCkpOwotICAgICAgICB9IGVsc2UgCi0gICAgICAgICAgICBjdXJyZW50ID0g
ZG93bmNhc3Q8UmVuZGVyQmxvY2s+KCpjdXJyZW50KS5pbmxpbmVFbGVtZW50Q29udGludWF0aW9u
KCk7CisgICAgICAgIGN1cnJlbnQgPSBjdXJyZW50LT5pbmxpbmVDb250aW51YXRpb24oKTsKICAg
ICB9CiAKICAgICByZXR1cm4gcHJldmlvdXM7CkBAIC0yOTMsMTMgKzI4MiwxMyBAQCBzdGF0aWMg
aW5saW5lIFJlbmRlck9iamVjdCogY2hpbGRCZWZvcmVDCiAgICAgICAgICAgICAgICAgY3VycmVu
dCA9IGN1cnJlbnQtPm5leHRTaWJsaW5nKCk7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAg
IGN1cnJlbnRDb250YWluZXIgPSBkb3duY2FzdDxSZW5kZXJJbmxpbmU+KCpjdXJyZW50Q29udGFp
bmVyKS5jb250aW51YXRpb24oKTsKKyAgICAgICAgICAgIGN1cnJlbnRDb250YWluZXIgPSBjdXJy
ZW50Q29udGFpbmVyLT5jb250aW51YXRpb24oKTsKICAgICAgICAgfSBlbHNlIGlmIChpczxSZW5k
ZXJCbG9jaz4oKmN1cnJlbnRDb250YWluZXIpKSB7CiAgICAgICAgICAgICBpZiAoY3VycmVudENv
bnRhaW5lciA9PSBjaGlsZCkKICAgICAgICAgICAgICAgICByZXR1cm4gcHJldmlvdXM7CiAKICAg
ICAgICAgICAgIHByZXZpb3VzID0gY3VycmVudENvbnRhaW5lcjsKLSAgICAgICAgICAgIGN1cnJl
bnRDb250YWluZXIgPSBkb3duY2FzdDxSZW5kZXJCbG9jaz4oKmN1cnJlbnRDb250YWluZXIpLmlu
bGluZUVsZW1lbnRDb250aW51YXRpb24oKTsKKyAgICAgICAgICAgIGN1cnJlbnRDb250YWluZXIg
PSBjdXJyZW50Q29udGFpbmVyLT5pbmxpbmVDb250aW51YXRpb24oKTsKICAgICAgICAgfQogICAg
IH0KIApAQCAtMzY4LDcgKzM1Nyw3IEBAIEFjY2Vzc2liaWxpdHlPYmplY3QqIEFjY2Vzc2liaWxp
dHlSZW5kZXIKICAgICAvLyBDYXNlIDE6IG5vZGUgaXMgYSBibG9jayBhbmQgaGFzIGFuIGlubGlu
ZSBjb250aW51YXRpb24uIE5leHQgc2libGluZyBpcyB0aGUgaW5saW5lIGNvbnRpbnVhdGlvbidz
CiAgICAgLy8gZmlyc3QgY2hpbGQuCiAgICAgUmVuZGVySW5saW5lKiBpbmxpbmVDb250aW51YXRp
b247Ci0gICAgaWYgKGlzPFJlbmRlckJsb2NrPigqbV9yZW5kZXJlcikgJiYgKGlubGluZUNvbnRp
bnVhdGlvbiA9IGRvd25jYXN0PFJlbmRlckJsb2NrPigqbV9yZW5kZXJlcikuaW5saW5lRWxlbWVu
dENvbnRpbnVhdGlvbigpKSkKKyAgICBpZiAoaXM8UmVuZGVyQmxvY2s+KCptX3JlbmRlcmVyKSAm
JiAoaW5saW5lQ29udGludWF0aW9uID0gZG93bmNhc3Q8UmVuZGVyQmxvY2s+KCptX3JlbmRlcmVy
KS5pbmxpbmVDb250aW51YXRpb24oKSkpCiAgICAgICAgIG5leHRTaWJsaW5nID0gZmlyc3RDaGls
ZENvbnNpZGVyaW5nQ29udGludWF0aW9uKCppbmxpbmVDb250aW51YXRpb24pOwogCiAgICAgLy8g
Q2FzZSAyOiBBbm9ueW1vdXMgYmxvY2sgcGFyZW50IG9mIHRoZSBzdGFydCBvZiBhIGNvbnRpbnVh
dGlvbiAtIHNraXAgYWxsIHRoZSB3YXkgdG8KQEAgLTQyNiw3ICs0MTUsNyBAQCBzdGF0aWMgUmVu
ZGVyQm94TW9kZWxPYmplY3QqIG5leHRDb250aW51CiAgICAgaWYgKGlzPFJlbmRlcklubGluZT4o
cmVuZGVyZXIpICYmICFyZW5kZXJlci5pc1JlcGxhY2VkKCkpCiAgICAgICAgIHJldHVybiBkb3du
Y2FzdDxSZW5kZXJJbmxpbmU+KHJlbmRlcmVyKS5jb250aW51YXRpb24oKTsKICAgICBpZiAoaXM8
UmVuZGVyQmxvY2s+KHJlbmRlcmVyKSkKLSAgICAgICAgcmV0dXJuIGRvd25jYXN0PFJlbmRlckJs
b2NrPihyZW5kZXJlcikuaW5saW5lRWxlbWVudENvbnRpbnVhdGlvbigpOworICAgICAgICByZXR1
cm4gZG93bmNhc3Q8UmVuZGVyQmxvY2s+KHJlbmRlcmVyKS5pbmxpbmVDb250aW51YXRpb24oKTsK
ICAgICByZXR1cm4gbnVsbHB0cjsKIH0KICAgICAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCbG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJsb2NrLmNwcAkocmV2aXNpb24gMjI0NTgzKQorKysgU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTY5Nyw3ICsxNjk3
LDcgQEAgdm9pZCBSZW5kZXJCbG9jazo6cGFpbnRPYmplY3QoUGFpbnRJbmZvJgogCiAgICAgLy8g
Ni4gcGFpbnQgY29udGludWF0aW9uIG91dGxpbmVzLgogICAgIGlmICgocGFpbnRQaGFzZSA9PSBQ
YWludFBoYXNlT3V0bGluZSB8fCBwYWludFBoYXNlID09IFBhaW50UGhhc2VDaGlsZE91dGxpbmVz
KSkgewotICAgICAgICBSZW5kZXJJbmxpbmUqIGlubGluZUNvbnQgPSBpbmxpbmVFbGVtZW50Q29u
dGludWF0aW9uKCk7CisgICAgICAgIFJlbmRlcklubGluZSogaW5saW5lQ29udCA9IGlubGluZUNv
bnRpbnVhdGlvbigpOwogICAgICAgICBpZiAoaW5saW5lQ29udCAmJiBpbmxpbmVDb250LT5oYXNP
dXRsaW5lKCkgJiYgaW5saW5lQ29udC0+c3R5bGUoKS52aXNpYmlsaXR5KCkgPT0gVklTSUJMRSkg
ewogICAgICAgICAgICAgUmVuZGVySW5saW5lKiBpbmxpbmVSZW5kZXJlciA9IGRvd25jYXN0PFJl
bmRlcklubGluZT4oaW5saW5lQ29udC0+ZWxlbWVudCgpLT5yZW5kZXJlcigpKTsKICAgICAgICAg
ICAgIFJlbmRlckJsb2NrKiBjb250YWluaW5nQmxvY2sgPSB0aGlzLT5jb250YWluaW5nQmxvY2so
KTsKQEAgLTE3MzAsMTIgKzE3MzAsNiBAQCB2b2lkIFJlbmRlckJsb2NrOjpwYWludE9iamVjdChQ
YWludEluZm8mCiAgICAgfQogfQogCi1SZW5kZXJJbmxpbmUqIFJlbmRlckJsb2NrOjppbmxpbmVF
bGVtZW50Q29udGludWF0aW9uKCkgY29uc3QKLXsgCi0gICAgUmVuZGVyQm94TW9kZWxPYmplY3Qq
IGNvbnRpbnVhdGlvbiA9IHRoaXMtPmNvbnRpbnVhdGlvbigpOwotICAgIHJldHVybiBpczxSZW5k
ZXJJbmxpbmU+KGNvbnRpbnVhdGlvbikgPyBkb3duY2FzdDxSZW5kZXJJbmxpbmU+KGNvbnRpbnVh
dGlvbikgOiBudWxscHRyOwotfQotCiBzdGF0aWMgQ29udGludWF0aW9uT3V0bGluZVRhYmxlTWFw
KiBjb250aW51YXRpb25PdXRsaW5lVGFibGUoKQogewogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxDb250aW51YXRpb25PdXRsaW5lVGFibGVNYXA+IHRhYmxlOwpAQCAtMzE2MywxMCArMzE1Nyw4
IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmFic29sdXRlUmVjdHMoVmVjdG9yPEkKICAgICBpZiAoYXV0
byogY29udGludWF0aW9uID0gdGhpcy0+Y29udGludWF0aW9uKCkpIHsKICAgICAgICAgLy8gRklY
TUU6IFRoaXMgaXMgd3JvbmcgZm9yIGJsb2NrLWZsb3dzIHRoYXQgYXJlIGhvcml6b250YWwuCiAg
ICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00Njc4MQot
ICAgICAgICByZWN0cy5hcHBlbmQoc25hcHBlZEludFJlY3QoYWNjdW11bGF0ZWRPZmZzZXQueCgp
LCBhY2N1bXVsYXRlZE9mZnNldC55KCkgLSBjb2xsYXBzZWRNYXJnaW5CZWZvcmUoKSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgoKSwgaGVpZ2h0KCkgKyBjb2xsYXBzZWRN
YXJnaW5CZWZvcmUoKSArIGNvbGxhcHNlZE1hcmdpbkFmdGVyKCkpKTsKLSAgICAgICAgY29udGlu
dWF0aW9uLT5hYnNvbHV0ZVJlY3RzKHJlY3RzLCBhY2N1bXVsYXRlZE9mZnNldCAtIHRvTGF5b3V0
U2l6ZShsb2NhdGlvbigpICsKLSAgICAgICAgICAgICAgICBpbmxpbmVFbGVtZW50Q29udGludWF0
aW9uKCktPmNvbnRhaW5pbmdCbG9jaygpLT5sb2NhdGlvbigpKSk7CisgICAgICAgIHJlY3RzLmFw
cGVuZChzbmFwcGVkSW50UmVjdChhY2N1bXVsYXRlZE9mZnNldC54KCksIGFjY3VtdWxhdGVkT2Zm
c2V0LnkoKSAtIGNvbGxhcHNlZE1hcmdpbkJlZm9yZSgpLCB3aWR0aCgpLCBoZWlnaHQoKSArIGNv
bGxhcHNlZE1hcmdpbkJlZm9yZSgpICsgY29sbGFwc2VkTWFyZ2luQWZ0ZXIoKSkpOworICAgICAg
ICBjb250aW51YXRpb24tPmFic29sdXRlUmVjdHMocmVjdHMsIGFjY3VtdWxhdGVkT2Zmc2V0IC0g
dG9MYXlvdXRTaXplKGxvY2F0aW9uKCkgKyBpbmxpbmVDb250aW51YXRpb24oKS0+Y29udGFpbmlu
Z0Jsb2NrKCktPmxvY2F0aW9uKCkpKTsKICAgICB9IGVsc2UKICAgICAgICAgcmVjdHMuYXBwZW5k
KHNuYXBwZWRJbnRSZWN0KGFjY3VtdWxhdGVkT2Zmc2V0LCBzaXplKCkpKTsKIH0KQEAgLTMyNjQs
MTMgKzMyNTYsMTQgQEAgdm9pZCBSZW5kZXJCbG9jazo6YWRkRm9jdXNSaW5nUmVjdHMoVmVjdAog
ewogICAgIC8vIEZvciBibG9ja3MgaW5zaWRlIGlubGluZXMsIHdlIGluY2x1ZGUgbWFyZ2lucyBz
byB0aGF0IHdlIHJ1biByaWdodCB1cCB0byB0aGUgaW5saW5lIGJveGVzCiAgICAgLy8gYWJvdmUg
YW5kIGJlbG93IHVzICh0aHVzIGdldHRpbmcgbWVyZ2VkIHdpdGggdGhlbSB0byBmb3JtIGEgc2lu
Z2xlIGlycmVndWxhciBzaGFwZSkuCi0gICAgaWYgKGlubGluZUVsZW1lbnRDb250aW51YXRpb24o
KSkgeworICAgIGF1dG8qIGlubGluZUNvbnRpbnVhdGlvbiA9IHRoaXMtPmlubGluZUNvbnRpbnVh
dGlvbigpOworICAgIGlmIChpbmxpbmVDb250aW51YXRpb24pIHsKICAgICAgICAgLy8gRklYTUU6
IFRoaXMgY2hlY2sgcmVhbGx5IGlzbid0IGFjY3VyYXRlLiAKLSAgICAgICAgYm9vbCBuZXh0SW5s
aW5lSGFzTGluZUJveCA9IGlubGluZUVsZW1lbnRDb250aW51YXRpb24oKS0+Zmlyc3RMaW5lQm94
KCk7CisgICAgICAgIGJvb2wgbmV4dElubGluZUhhc0xpbmVCb3ggPSBpbmxpbmVDb250aW51YXRp
b24tPmZpcnN0TGluZUJveCgpOwogICAgICAgICAvLyBGSVhNRTogVGhpcyBpcyB3cm9uZy4gVGhl
IHByaW5jaXBhbCByZW5kZXJlciBtYXkgbm90IGJlIHRoZSBjb250aW51YXRpb24gcHJlY2VkaW5n
IHRoaXMgYmxvY2suCiAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGlzIHdyb25nIGZvciBibG9jay1m
bG93cyB0aGF0IGFyZSBob3Jpem9udGFsLgogICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDY3ODEKLSAgICAgICAgYm9vbCBwcmV2SW5saW5lSGFzTGlu
ZUJveCA9IGRvd25jYXN0PFJlbmRlcklubGluZT4oKmlubGluZUVsZW1lbnRDb250aW51YXRpb24o
KS0+ZWxlbWVudCgpLT5yZW5kZXJlcigpKS5maXJzdExpbmVCb3goKTsKKyAgICAgICAgYm9vbCBw
cmV2SW5saW5lSGFzTGluZUJveCA9IGRvd25jYXN0PFJlbmRlcklubGluZT4oKmlubGluZUNvbnRp
bnVhdGlvbi0+ZWxlbWVudCgpLT5yZW5kZXJlcigpKS5maXJzdExpbmVCb3goKTsKICAgICAgICAg
ZmxvYXQgdG9wTWFyZ2luID0gcHJldklubGluZUhhc0xpbmVCb3ggPyBjb2xsYXBzZWRNYXJnaW5C
ZWZvcmUoKSA6IExheW91dFVuaXQoKTsKICAgICAgICAgZmxvYXQgYm90dG9tTWFyZ2luID0gbmV4
dElubGluZUhhc0xpbmVCb3ggPyBjb2xsYXBzZWRNYXJnaW5BZnRlcigpIDogTGF5b3V0VW5pdCgp
OwogICAgICAgICBMYXlvdXRSZWN0IHJlY3QoYWRkaXRpb25hbE9mZnNldC54KCksIGFkZGl0aW9u
YWxPZmZzZXQueSgpIC0gdG9wTWFyZ2luLCB3aWR0aCgpLCBoZWlnaHQoKSArIHRvcE1hcmdpbiAr
IGJvdHRvbU1hcmdpbik7CkBAIC0zMjk3LDggKzMyOTAsOCBAQCB2b2lkIFJlbmRlckJsb2NrOjph
ZGRGb2N1c1JpbmdSZWN0cyhWZWN0CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAoaW5saW5l
RWxlbWVudENvbnRpbnVhdGlvbigpKQotICAgICAgICBpbmxpbmVFbGVtZW50Q29udGludWF0aW9u
KCktPmFkZEZvY3VzUmluZ1JlY3RzKHJlY3RzLCBmbG9vcmVkTGF5b3V0UG9pbnQoTGF5b3V0UG9p
bnQoYWRkaXRpb25hbE9mZnNldCArIGlubGluZUVsZW1lbnRDb250aW51YXRpb24oKS0+Y29udGFp
bmluZ0Jsb2NrKCktPmxvY2F0aW9uKCkgLSBsb2NhdGlvbigpKSksIHBhaW50Q29udGFpbmVyKTsK
KyAgICBpZiAoaW5saW5lQ29udGludWF0aW9uKQorICAgICAgICBpbmxpbmVDb250aW51YXRpb24t
PmFkZEZvY3VzUmluZ1JlY3RzKHJlY3RzLCBmbG9vcmVkTGF5b3V0UG9pbnQoTGF5b3V0UG9pbnQo
YWRkaXRpb25hbE9mZnNldCArIGlubGluZUNvbnRpbnVhdGlvbi0+Y29udGFpbmluZ0Jsb2NrKCkt
PmxvY2F0aW9uKCkgLSBsb2NhdGlvbigpKSksIHBhaW50Q29udGFpbmVyKTsKIH0KIAogUmVuZGVy
UHRyPFJlbmRlckJsb2NrPiBSZW5kZXJCbG9jazo6Y3JlYXRlQW5vbnltb3VzQmxvY2tXaXRoU3R5
bGVBbmREaXNwbGF5KERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxl
LCBFRGlzcGxheSBkaXNwbGF5KQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJsb2NrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJs
b2NrLmgJKHJldmlzaW9uIDIyNDU4MykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9jay5oCSh3b3JraW5nIGNvcHkpCkBAIC0xODksOCArMTg5LDYgQEAgcHVibGljOgogICAg
IHZvaWQgYWRkQ29udGludWF0aW9uV2l0aE91dGxpbmUoUmVuZGVySW5saW5lKik7CiAgICAgYm9v
bCBwYWludHNDb250aW51YXRpb25PdXRsaW5lKFJlbmRlcklubGluZSopOwogCi0gICAgV0VCQ09S
RV9FWFBPUlQgUmVuZGVySW5saW5lKiBpbmxpbmVFbGVtZW50Q29udGludWF0aW9uKCkgY29uc3Q7
Ci0KICAgICBzdGF0aWMgUmVuZGVyUHRyPFJlbmRlckJsb2NrPiBjcmVhdGVBbm9ueW1vdXNXaXRo
UGFyZW50UmVuZGVyZXJBbmREaXNwbGF5KGNvbnN0IFJlbmRlckJveCYgcGFyZW50LCBFRGlzcGxh
eSA9IEJMT0NLKTsKICAgICBSZW5kZXJQdHI8UmVuZGVyQmxvY2s+IGNyZWF0ZUFub255bW91c0Js
b2NrKEVEaXNwbGF5ID0gQkxPQ0spIGNvbnN0OwogICAgIHZvaWQgZHJvcEFub255bW91c0JveENo
aWxkKFJlbmRlckJsb2NrJiBjaGlsZCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAJKHJldmlzaW9uIDIyNDU4MykKKysrIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI3OSw3ICsyNzksNyBAQCBzdGF0aWMgTGF5b3V0U2l6ZSBhY2N1bXVsYXRlSW5G
bG93UG9zaXRpCiAgICAgaWYgKCFjaGlsZC0+aXNBbm9ueW1vdXNCbG9jaygpIHx8ICFjaGlsZC0+
aXNJbkZsb3dQb3NpdGlvbmVkKCkpCiAgICAgICAgIHJldHVybiBMYXlvdXRTaXplKCk7CiAgICAg
TGF5b3V0U2l6ZSBvZmZzZXQ7Ci0gICAgZm9yIChSZW5kZXJFbGVtZW50KiBwYXJlbnQgPSBkb3du
Y2FzdDxSZW5kZXJCbG9jaz4oKmNoaWxkKS5pbmxpbmVFbGVtZW50Q29udGludWF0aW9uKCk7IGlz
PFJlbmRlcklubGluZT4ocGFyZW50KTsgcGFyZW50ID0gcGFyZW50LT5wYXJlbnQoKSkgeworICAg
IGZvciAoUmVuZGVyRWxlbWVudCogcGFyZW50ID0gZG93bmNhc3Q8UmVuZGVyQmxvY2s+KCpjaGls
ZCkuaW5saW5lQ29udGludWF0aW9uKCk7IGlzPFJlbmRlcklubGluZT4ocGFyZW50KTsgcGFyZW50
ID0gcGFyZW50LT5wYXJlbnQoKSkgewogICAgICAgICBpZiAocGFyZW50LT5pc0luRmxvd1Bvc2l0
aW9uZWQoKSkKICAgICAgICAgICAgIG9mZnNldCArPSBkb3duY2FzdDxSZW5kZXJJbmxpbmU+KCpw
YXJlbnQpLm9mZnNldEZvckluRmxvd1Bvc2l0aW9uKCk7CiAgICAgfQpAQCAtMjUwNyw2ICsyNTA3
LDIwIEBAIFJlbmRlckJveE1vZGVsT2JqZWN0KiBSZW5kZXJCb3hNb2RlbE9iamUKICAgICByZXR1
cm4gY29udGludWF0aW9uQ2hhaW5Ob2RlLm5leHQtPnJlbmRlcmVyLmdldCgpOwogfQogCitSZW5k
ZXJJbmxpbmUqIFJlbmRlckJveE1vZGVsT2JqZWN0OjppbmxpbmVDb250aW51YXRpb24oKSBjb25z
dAoreworICAgIGlmICghaGFzQ29udGludWF0aW9uQ2hhaW5Ob2RlKCkpCisgICAgICAgIHJldHVy
biBudWxscHRyOworCisgICAgYXV0byogbmV4dCA9IGNvbnRpbnVhdGlvbkNoYWluTm9kZU1hcCgp
LmdldCh0aGlzKS0+bmV4dDsKKyAgICBmb3IgKDsgbmV4dDsgbmV4dCA9IG5leHQtPm5leHQpIHsK
KyAgICAgICAgaWYgKGlzPFJlbmRlcklubGluZT4oKm5leHQtPnJlbmRlcmVyKSkKKyAgICAgICAg
ICAgIHJldHVybiBkb3duY2FzdDxSZW5kZXJJbmxpbmU+KG5leHQtPnJlbmRlcmVyLmdldCgpKTsK
KyAgICB9CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKKwogdm9pZCBSZW5kZXJCb3hNb2RlbE9i
amVjdDo6aW5zZXJ0SW50b0NvbnRpbnVhdGlvbkNoYWluQWZ0ZXIoUmVuZGVyQm94TW9kZWxPYmpl
Y3QmIGFmdGVyUmVuZGVyZXIpCiB7CiAgICAgQVNTRVJUKGlzQ29udGludWF0aW9uKCkpOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmgJ
KHJldmlzaW9uIDIyNDU4MykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hN
b2RlbE9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMzYsNiArMjM2LDcgQEAgcHVibGljOgog
ICAgIHZvaWQgc3VzcGVuZEFuaW1hdGlvbnMoZG91YmxlIHRpbWUgPSAwKTsKIAogICAgIFJlbmRl
ckJveE1vZGVsT2JqZWN0KiBjb250aW51YXRpb24oKSBjb25zdDsKKyAgICBSZW5kZXJJbmxpbmUq
IGlubGluZUNvbnRpbnVhdGlvbigpIGNvbnN0OwogICAgIAogICAgIHZvaWQgaW5zZXJ0SW50b0Nv
bnRpbnVhdGlvbkNoYWluQWZ0ZXIoUmVuZGVyQm94TW9kZWxPYmplY3QmKTsKICAgICB2b2lkIHJl
bW92ZUZyb21Db250aW51YXRpb25DaGFpbigpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlcklubGluZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlcklubGluZS5jcHAJKHJldmlzaW9uIDIyNDU4MykKKysrIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTMsMTggKzEx
Myw2IEBAIHZvaWQgUmVuZGVySW5saW5lOjp3aWxsQmVEZXN0cm95ZWQoKQogICAgIFJlbmRlckJv
eE1vZGVsT2JqZWN0Ojp3aWxsQmVEZXN0cm95ZWQoKTsKIH0KIAotUmVuZGVySW5saW5lKiBSZW5k
ZXJJbmxpbmU6OmlubGluZUVsZW1lbnRDb250aW51YXRpb24oKSBjb25zdAotewotICAgIFJlbmRl
ckJveE1vZGVsT2JqZWN0KiBjb250aW51YXRpb24gPSB0aGlzLT5jb250aW51YXRpb24oKTsKLSAg
ICBpZiAoIWNvbnRpbnVhdGlvbikKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KLSAgICBpZiAo
aXM8UmVuZGVySW5saW5lPigqY29udGludWF0aW9uKSkKLSAgICAgICAgcmV0dXJuIGRvd25jYXN0
PFJlbmRlcklubGluZT4oY29udGludWF0aW9uKTsKLQotICAgIHJldHVybiBpczxSZW5kZXJCbG9j
az4oKmNvbnRpbnVhdGlvbikgPyBkb3duY2FzdDxSZW5kZXJCbG9jaz4oKmNvbnRpbnVhdGlvbiku
aW5saW5lRWxlbWVudENvbnRpbnVhdGlvbigpIDogbnVsbHB0cjsKLX0KLQogdm9pZCBSZW5kZXJJ
bmxpbmU6OnVwZGF0ZUZyb21TdHlsZSgpCiB7CiAgICAgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnVw
ZGF0ZUZyb21TdHlsZSgpOwpAQCAtMTYwLDcgKzE0OCw3IEBAIHN0YXRpYyB2b2lkIHVwZGF0ZVN0
eWxlT2ZBbm9ueW1vdXNCbG9ja0MKICAgICAgICAgCiAgICAgICAgIC8vIElmIHdlIGFyZSBubyBs
b25nZXIgaW4tZmxvdyBwb3NpdGlvbmVkIGJ1dCBvdXIgZGVzY2VuZGFudCBibG9jayhzKSBzdGls
bCBoYXZlIGFuIGluLWZsb3cgcG9zaXRpb25lZCBhbmNlc3RvciB0aGVuCiAgICAgICAgIC8vIHRo
ZWlyIGNvbnRhaW5pbmcgYW5vbnltb3VzIGJsb2NrIHNob3VsZCBrZWVwIGl0cyBpbi1mbG93IHBv
c2l0aW9uaW5nLiAKLSAgICAgICAgUmVuZGVySW5saW5lKiBjb250aW51YXRpb24gPSBibG9jay5p
bmxpbmVFbGVtZW50Q29udGludWF0aW9uKCk7CisgICAgICAgIFJlbmRlcklubGluZSogY29udGlu
dWF0aW9uID0gYmxvY2suaW5saW5lQ29udGludWF0aW9uKCk7CiAgICAgICAgIGlmIChvbGRTdHls
ZS0+aGFzSW5GbG93UG9zaXRpb24oKSAmJiBpbkZsb3dQb3NpdGlvbmVkSW5saW5lQW5jZXN0b3Io
Y29udGludWF0aW9uKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBhdXRvIGJsb2Nr
U3R5bGUgPSBSZW5kZXJTdHlsZTo6Y3JlYXRlQW5vbnltb3VzU3R5bGVXaXRoRGlzcGxheShibG9j
ay5zdHlsZSgpLCBCTE9DSyk7CkBAIC0xOTIsOSArMTgwLDkgQEAgdm9pZCBSZW5kZXJJbmxpbmU6
OnN0eWxlRGlkQ2hhbmdlKFN0eWxlRAogICAgIC8vIGFuZCBhZnRlciB0aGUgYmxvY2sgc2hhcmUg
dGhlIHNhbWUgc3R5bGUsIGJ1dCB0aGUgYmxvY2sgZG9lc24ndAogICAgIC8vIG5lZWQgdG8gcGFz
cyBpdHMgc3R5bGUgb24gdG8gYW55b25lIGVsc2UuCiAgICAgYXV0byYgbmV3U3R5bGUgPSBzdHls
ZSgpOwotICAgIFJlbmRlcklubGluZSogY29udGludWF0aW9uID0gaW5saW5lRWxlbWVudENvbnRp
bnVhdGlvbigpOworICAgIFJlbmRlcklubGluZSogY29udGludWF0aW9uID0gaW5saW5lQ29udGlu
dWF0aW9uKCk7CiAgICAgaWYgKGNvbnRpbnVhdGlvbiAmJiAhaXNDb250aW51YXRpb24oKSkgewot
ICAgICAgICBmb3IgKFJlbmRlcklubGluZSogY3VyckNvbnQgPSBjb250aW51YXRpb247IGN1cnJD
b250OyBjdXJyQ29udCA9IGN1cnJDb250LT5pbmxpbmVFbGVtZW50Q29udGludWF0aW9uKCkpCisg
ICAgICAgIGZvciAoUmVuZGVySW5saW5lKiBjdXJyQ29udCA9IGNvbnRpbnVhdGlvbjsgY3VyckNv
bnQ7IGN1cnJDb250ID0gY3VyckNvbnQtPmlubGluZUNvbnRpbnVhdGlvbigpKQogICAgICAgICAg
ICAgY3VyckNvbnQtPnNldFN0eWxlKFJlbmRlclN0eWxlOjpjbG9uZShuZXdTdHlsZSkpOwogICAg
ICAgICAvLyBJZiBhbiBpbmxpbmUncyBpbi1mbG93IHBvc2l0aW9uaW5nIGhhcyBjaGFuZ2VkIGFu
ZCBpdCBpcyBwYXJ0IG9mIGFuIGFjdGl2ZSBjb250aW51YXRpb24gYXMgYSBkZXNjZW5kYW50IG9m
IGFuIGFub255bW91cyBjb250YWluaW5nIGJsb2NrLAogICAgICAgICAvLyB0aGVuIGFueSBkZXNj
ZW5kYW50IGJsb2NrcyB3aWxsIG5lZWQgdG8gY2hhbmdlIHRoZWlyIGluLWZsb3cgcG9zaXRpb25p
bmcgYWNjb3JkaW5nbHkuCkBAIC0yODYsNyArMjc0LDcgQEAgc3RhdGljIFJlbmRlckJveE1vZGVs
T2JqZWN0KiBuZXh0Q29udGludQogewogICAgIGlmIChpczxSZW5kZXJJbmxpbmU+KCpyZW5kZXJl
cikgJiYgIXJlbmRlcmVyLT5pc1JlcGxhY2VkKCkpCiAgICAgICAgIHJldHVybiBkb3duY2FzdDxS
ZW5kZXJJbmxpbmU+KCpyZW5kZXJlcikuY29udGludWF0aW9uKCk7Ci0gICAgcmV0dXJuIGRvd25j
YXN0PFJlbmRlckJsb2NrPigqcmVuZGVyZXIpLmlubGluZUVsZW1lbnRDb250aW51YXRpb24oKTsK
KyAgICByZXR1cm4gZG93bmNhc3Q8UmVuZGVyQmxvY2s+KCpyZW5kZXJlcikuaW5saW5lQ29udGlu
dWF0aW9uKCk7CiB9CiAKIFJlbmRlckJveE1vZGVsT2JqZWN0KiBSZW5kZXJJbmxpbmU6OmNvbnRp
bnVhdGlvbkJlZm9yZShSZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxkKQpAQCAtOTI5LDcgKzkxNyw3
IEBAIFZpc2libGVQb3NpdGlvbiBSZW5kZXJJbmxpbmU6OnBvc2l0aW9uRm8KICAgICAgICAgUmVu
ZGVyQmxvY2sqIGN1cnJlbnRCbG9jayA9IGNvbnRpbnVhdGlvbi0+aXNJbmxpbmUoKSA/IGNvbnRp
bnVhdGlvbi0+Y29udGFpbmluZ0Jsb2NrKCkgOiBkb3duY2FzdDxSZW5kZXJCbG9jaz4oY29udGlu
dWF0aW9uKTsKICAgICAgICAgaWYgKGNvbnRpbnVhdGlvbi0+aXNJbmxpbmUoKSB8fCBjb250aW51
YXRpb24tPmZpcnN0Q2hpbGQoKSkKICAgICAgICAgICAgIHJldHVybiBjb250aW51YXRpb24tPnBv
c2l0aW9uRm9yUG9pbnQocGFyZW50QmxvY2tQb2ludCAtIGN1cnJlbnRCbG9jay0+bG9jYXRpb25P
ZmZzZXQoKSwgZnJhZ21lbnQpOwotICAgICAgICBjb250aW51YXRpb24gPSBkb3duY2FzdDxSZW5k
ZXJCbG9jaz4oKmNvbnRpbnVhdGlvbikuaW5saW5lRWxlbWVudENvbnRpbnVhdGlvbigpOworICAg
ICAgICBjb250aW51YXRpb24gPSBjb250aW51YXRpb24tPmlubGluZUNvbnRpbnVhdGlvbigpOwog
ICAgIH0KICAgICAKICAgICByZXR1cm4gUmVuZGVyQm94TW9kZWxPYmplY3Q6OnBvc2l0aW9uRm9y
UG9pbnQocG9pbnQsIGZyYWdtZW50KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJJbmxpbmUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVySW5saW5lLmgJKHJldmlzaW9uIDIyNDU4MykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJJbmxpbmUuaAkod29ya2luZyBjb3B5KQpAQCAtNzksOCArNzksNiBAQCBwdWJsaWM6
CiAgICAgdm9pZCBhYnNvbHV0ZVF1YWRzRm9yU2VsZWN0aW9uKFZlY3RvcjxGbG9hdFF1YWQ+JiBx
dWFkcykgY29uc3Qgb3ZlcnJpZGU7CiAjZW5kaWYKIAotICAgIFJlbmRlcklubGluZSogaW5saW5l
RWxlbWVudENvbnRpbnVhdGlvbigpIGNvbnN0OwotCiAgICAgdm9pZCB1cGRhdGVEcmFnU3RhdGUo
Ym9vbCBkcmFnT24pIGZpbmFsOwogICAgIAogICAgIExheW91dFNpemUgb2Zmc2V0Rm9ySW5GbG93
UG9zaXRpb25lZElubGluZShjb25zdCBSZW5kZXJCb3gqIGNoaWxkKSBjb25zdDsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9saW5lL0xpbmVJbmxpbmVIZWFkZXJzLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL2xpbmUvTGluZUlubGluZUhlYWRlcnMuaAko
cmV2aXNpb24gMjI0NTgzKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL2xpbmUvTGluZUlu
bGluZUhlYWRlcnMuaAkod29ya2luZyBjb3B5KQpAQCAtMzgsNyArMzgsNyBAQCBpbmxpbmUgYm9v
bCBoYXNJbmxpbmVEaXJlY3Rpb25Cb3JkZXJzUGFkCiAgICAgaWYgKHNob3VsZEFwcGx5U3RhcnRC
b3JkZXJQYWRkaW5nT3JNYXJnaW4gJiYgKGZsb3cuYm9yZGVyU3RhcnQoKSB8fCBmbG93Lm1hcmdp
blN0YXJ0KCkgfHwgZmxvdy5wYWRkaW5nU3RhcnQoKSkpCiAgICAgICAgIHJldHVybiB0cnVlOwog
Ci0gICAgYm9vbCBzaG91bGRBcHBseUVuZEJvcmRlclBhZGRpbmdPck1hcmdpbiA9ICFmbG93LnBh
cmVudCgpLT5pc0Fub255bW91c0Jsb2NrKCkgfHwgZmxvdy5pc0NvbnRpbnVhdGlvbigpIHx8ICFm
bG93LmlubGluZUVsZW1lbnRDb250aW51YXRpb24oKTsKKyAgICBib29sIHNob3VsZEFwcGx5RW5k
Qm9yZGVyUGFkZGluZ09yTWFyZ2luID0gIWZsb3cucGFyZW50KCktPmlzQW5vbnltb3VzQmxvY2so
KSB8fCBmbG93LmlzQ29udGludWF0aW9uKCkgfHwgIWZsb3cuaW5saW5lQ29udGludWF0aW9uKCk7
CiAgICAgcmV0dXJuIHNob3VsZEFwcGx5RW5kQm9yZGVyUGFkZGluZ09yTWFyZ2luICYmIChmbG93
LmJvcmRlckVuZCgpIHx8IGZsb3cubWFyZ2luRW5kKCkgfHwgZmxvdy5wYWRkaW5nRW5kKCkpOwog
fQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>326346</attachid>
            <date>2017-11-08 12:32:27 -0800</date>
            <delta_ts>2017-11-08 13:05:46 -0800</delta_ts>
            <desc>patch</desc>
            <filename>move-inlineElementContinuation-2.patch</filename>
            <type>text/plain</type>
            <size>18180</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyNDU5MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQwIEBACisyMDE3LTExLTA4ICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIGlubGluZUVsZW1lbnRD
b250aW51YXRpb24gZnVuY3Rpb24gdG8gUmVuZGVyQm94TW9kZWxPYmplY3QgYW5kIHJlbmFtZSB0
byBpbmxpbmVDb250aW51YXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE3OTQzNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFVuaWZ5IFJlbmRlcklubGluZTo6aW5saW5lRWxlbWVudENvbnRpbnVhdGlv
biBhbmQgUmVuZGVyQmxvY2s6OmlubGluZUVsZW1lbnRDb250aW51YXRpb24uCisgICAgICAgIEl0
IGlzIHNpbXBseSBhIGZ1bmN0aW9uIHRvIGZpbmQgdGhlIG5leHQgUmVuZGVySW5saW5lIGluIHRo
ZSBjb250aW51YXRpb24gY2hhaW4uCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bGFzdENoaWxkQ29uc2lk
ZXJpbmdDb250aW51YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6c3RhcnRPZkNvbnRpbnVhdGlv
bnMpOgorICAgICAgICAoV2ViQ29yZTo6ZW5kT2ZDb250aW51YXRpb25zKToKKyAgICAgICAgKFdl
YkNvcmU6OmNoaWxkQmVmb3JlQ29uc2lkZXJpbmdDb250aW51YXRpb25zKToKKyAgICAgICAgKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6Om5leHRTaWJsaW5nIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6Om5leHRDb250aW51YXRpb24pOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJCbG9jay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6cGFpbnRPYmpl
Y3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmFic29sdXRlUmVjdHMgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmFkZEZvY3VzUmluZ1JlY3RzKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjppbmxpbmVFbGVtZW50Q29udGludWF0aW9uIGNv
bnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suaDoKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6YWNjdW11bGF0ZUluRmxvd1Bvc2l0aW9uT2Zmc2V0cyk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJCb3hNb2RlbE9iamVjdDo6aW5saW5lQ29udGludWF0aW9uIGNvbnN0KToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaDoKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVySW5saW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnVwZGF0ZVN0eWxlT2ZBbm9ueW1v
dXNCbG9ja0NvbnRpbnVhdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVySW5saW5lOjpz
dHlsZURpZENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpuZXh0Q29udGludWF0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlcklubGluZTo6cG9zaXRpb25Gb3JQb2ludCk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJJbmxpbmU6OmlubGluZUVsZW1lbnRDb250aW51YXRpb24gY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbmxpbmUuaDoKKyAgICAgICAg
KiByZW5kZXJpbmcvbGluZS9MaW5lSW5saW5lSGVhZGVycy5oOgorICAgICAgICAoV2ViQ29yZTo6
aGFzSW5saW5lRGlyZWN0aW9uQm9yZGVyc1BhZGRpbmdPck1hcmdpbik6CisKIDIwMTctMTEtMDgg
IENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBTaW1wbGlmeSBTZXJ2
aWNlV29ya2VyQ29udGFpbmVyOjpqb2JSZXNvbHZlZFdpdGhSZWdpc3RyYXRpb24oKQpJbmRleDog
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3QuY3BwCShyZXZpc2lvbiAyMjQ1ODMpCisrKyBTb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xOTksMTggKzE5OSwxMSBAQCBzdGF0aWMgaW5saW5lIFJlbmRlck9iamVjdCogbGFzdENo
aWxkQ29uCiAgICAgICAgIHJldHVybiAmcmVuZGVyZXI7CiAKICAgICBSZW5kZXJPYmplY3QqIGxh
c3RDaGlsZCA9IGRvd25jYXN0PFJlbmRlckJveE1vZGVsT2JqZWN0PihyZW5kZXJlcikubGFzdENo
aWxkKCk7Ci0gICAgUmVuZGVyQm94TW9kZWxPYmplY3QqIHByZXZpb3VzOwogICAgIGZvciAoYXV0
byogY3VycmVudCA9ICZkb3duY2FzdDxSZW5kZXJCb3hNb2RlbE9iamVjdD4ocmVuZGVyZXIpOyBj
dXJyZW50OyApIHsKLSAgICAgICAgcHJldmlvdXMgPSBjdXJyZW50OwotCiAgICAgICAgIGlmIChS
ZW5kZXJPYmplY3QqIG5ld0xhc3RDaGlsZCA9IGN1cnJlbnQtPmxhc3RDaGlsZCgpKQogICAgICAg
ICAgICAgbGFzdENoaWxkID0gbmV3TGFzdENoaWxkOwogCi0gICAgICAgIGlmIChpczxSZW5kZXJJ
bmxpbmU+KCpjdXJyZW50KSkgewotICAgICAgICAgICAgY3VycmVudCA9IGRvd25jYXN0PFJlbmRl
cklubGluZT4oKmN1cnJlbnQpLmlubGluZUVsZW1lbnRDb250aW51YXRpb24oKTsKLSAgICAgICAg
ICAgIEFTU0VSVF9VTlVTRUQocHJldmlvdXMsIGN1cnJlbnQgfHwgIWRvd25jYXN0PFJlbmRlcklu
bGluZT4oKnByZXZpb3VzKS5jb250aW51YXRpb24oKSk7Ci0gICAgICAgIH0gZWxzZQotICAgICAg
ICAgICAgY3VycmVudCA9IGRvd25jYXN0PFJlbmRlckJsb2NrPigqY3VycmVudCkuaW5saW5lRWxl
bWVudENvbnRpbnVhdGlvbigpOworICAgICAgICBjdXJyZW50ID0gY3VycmVudC0+aW5saW5lQ29u
dGludWF0aW9uKCk7CiAgICAgfQogCiAgICAgcmV0dXJuIGxhc3RDaGlsZDsKQEAgLTI1NSw4ICsy
NDgsOCBAQCBzdGF0aWMgaW5saW5lIFJlbmRlcklubGluZSogc3RhcnRPZkNvbnRpCiAgICAgICAg
IHJldHVybiBkb3duY2FzdDxSZW5kZXJJbmxpbmU+KHJlbmRlcmVyLm5vZGUoKS0+cmVuZGVyZXIo
KSk7CiAKICAgICAvLyBCbG9ja3Mgd2l0aCBhIHByZXZpb3VzIGNvbnRpbnVhdGlvbiBhbHdheXMg
aGF2ZSBhIG5leHQgY29udGludWF0aW9uCi0gICAgaWYgKGlzPFJlbmRlckJsb2NrPihyZW5kZXJF
bGVtZW50KSAmJiBkb3duY2FzdDxSZW5kZXJCbG9jaz4ocmVuZGVyRWxlbWVudCkuaW5saW5lRWxl
bWVudENvbnRpbnVhdGlvbigpKQotICAgICAgICByZXR1cm4gZG93bmNhc3Q8UmVuZGVySW5saW5l
Pihkb3duY2FzdDxSZW5kZXJCbG9jaz4ocmVuZGVyRWxlbWVudCkuaW5saW5lRWxlbWVudENvbnRp
bnVhdGlvbigpLT5lbGVtZW50KCktPnJlbmRlcmVyKCkpOworICAgIGlmIChpczxSZW5kZXJCbG9j
az4ocmVuZGVyRWxlbWVudCkgJiYgZG93bmNhc3Q8UmVuZGVyQmxvY2s+KHJlbmRlckVsZW1lbnQp
LmlubGluZUNvbnRpbnVhdGlvbigpKQorICAgICAgICByZXR1cm4gZG93bmNhc3Q8UmVuZGVySW5s
aW5lPihkb3duY2FzdDxSZW5kZXJCbG9jaz4ocmVuZGVyRWxlbWVudCkuaW5saW5lQ29udGludWF0
aW9uKCktPmVsZW1lbnQoKS0+cmVuZGVyZXIoKSk7CiAKICAgICByZXR1cm4gbnVsbHB0cjsKIH0K
QEAgLTI2OSwxMSArMjYyLDcgQEAgc3RhdGljIGlubGluZSBSZW5kZXJPYmplY3QqIGVuZE9mQ29u
dGludQogICAgIGF1dG8qIHByZXZpb3VzID0gJmRvd25jYXN0PFJlbmRlckJveE1vZGVsT2JqZWN0
PihyZW5kZXJlcik7CiAgICAgZm9yIChhdXRvKiBjdXJyZW50ID0gcHJldmlvdXM7IGN1cnJlbnQ7
ICkgewogICAgICAgICBwcmV2aW91cyA9IGN1cnJlbnQ7Ci0gICAgICAgIGlmIChpczxSZW5kZXJJ
bmxpbmU+KCpjdXJyZW50KSkgewotICAgICAgICAgICAgY3VycmVudCA9IGRvd25jYXN0PFJlbmRl
cklubGluZT4oKmN1cnJlbnQpLmlubGluZUVsZW1lbnRDb250aW51YXRpb24oKTsKLSAgICAgICAg
ICAgIEFTU0VSVChjdXJyZW50IHx8ICFkb3duY2FzdDxSZW5kZXJJbmxpbmU+KCpwcmV2aW91cyku
Y29udGludWF0aW9uKCkpOwotICAgICAgICB9IGVsc2UgCi0gICAgICAgICAgICBjdXJyZW50ID0g
ZG93bmNhc3Q8UmVuZGVyQmxvY2s+KCpjdXJyZW50KS5pbmxpbmVFbGVtZW50Q29udGludWF0aW9u
KCk7CisgICAgICAgIGN1cnJlbnQgPSBjdXJyZW50LT5pbmxpbmVDb250aW51YXRpb24oKTsKICAg
ICB9CiAKICAgICByZXR1cm4gcHJldmlvdXM7CkBAIC0yOTMsMTMgKzI4MiwxMyBAQCBzdGF0aWMg
aW5saW5lIFJlbmRlck9iamVjdCogY2hpbGRCZWZvcmVDCiAgICAgICAgICAgICAgICAgY3VycmVu
dCA9IGN1cnJlbnQtPm5leHRTaWJsaW5nKCk7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAg
IGN1cnJlbnRDb250YWluZXIgPSBkb3duY2FzdDxSZW5kZXJJbmxpbmU+KCpjdXJyZW50Q29udGFp
bmVyKS5jb250aW51YXRpb24oKTsKKyAgICAgICAgICAgIGN1cnJlbnRDb250YWluZXIgPSBjdXJy
ZW50Q29udGFpbmVyLT5jb250aW51YXRpb24oKTsKICAgICAgICAgfSBlbHNlIGlmIChpczxSZW5k
ZXJCbG9jaz4oKmN1cnJlbnRDb250YWluZXIpKSB7CiAgICAgICAgICAgICBpZiAoY3VycmVudENv
bnRhaW5lciA9PSBjaGlsZCkKICAgICAgICAgICAgICAgICByZXR1cm4gcHJldmlvdXM7CiAKICAg
ICAgICAgICAgIHByZXZpb3VzID0gY3VycmVudENvbnRhaW5lcjsKLSAgICAgICAgICAgIGN1cnJl
bnRDb250YWluZXIgPSBkb3duY2FzdDxSZW5kZXJCbG9jaz4oKmN1cnJlbnRDb250YWluZXIpLmlu
bGluZUVsZW1lbnRDb250aW51YXRpb24oKTsKKyAgICAgICAgICAgIGN1cnJlbnRDb250YWluZXIg
PSBjdXJyZW50Q29udGFpbmVyLT5pbmxpbmVDb250aW51YXRpb24oKTsKICAgICAgICAgfQogICAg
IH0KIApAQCAtMzY4LDcgKzM1Nyw3IEBAIEFjY2Vzc2liaWxpdHlPYmplY3QqIEFjY2Vzc2liaWxp
dHlSZW5kZXIKICAgICAvLyBDYXNlIDE6IG5vZGUgaXMgYSBibG9jayBhbmQgaGFzIGFuIGlubGlu
ZSBjb250aW51YXRpb24uIE5leHQgc2libGluZyBpcyB0aGUgaW5saW5lIGNvbnRpbnVhdGlvbidz
CiAgICAgLy8gZmlyc3QgY2hpbGQuCiAgICAgUmVuZGVySW5saW5lKiBpbmxpbmVDb250aW51YXRp
b247Ci0gICAgaWYgKGlzPFJlbmRlckJsb2NrPigqbV9yZW5kZXJlcikgJiYgKGlubGluZUNvbnRp
bnVhdGlvbiA9IGRvd25jYXN0PFJlbmRlckJsb2NrPigqbV9yZW5kZXJlcikuaW5saW5lRWxlbWVu
dENvbnRpbnVhdGlvbigpKSkKKyAgICBpZiAoaXM8UmVuZGVyQmxvY2s+KCptX3JlbmRlcmVyKSAm
JiAoaW5saW5lQ29udGludWF0aW9uID0gZG93bmNhc3Q8UmVuZGVyQmxvY2s+KCptX3JlbmRlcmVy
KS5pbmxpbmVDb250aW51YXRpb24oKSkpCiAgICAgICAgIG5leHRTaWJsaW5nID0gZmlyc3RDaGls
ZENvbnNpZGVyaW5nQ29udGludWF0aW9uKCppbmxpbmVDb250aW51YXRpb24pOwogCiAgICAgLy8g
Q2FzZSAyOiBBbm9ueW1vdXMgYmxvY2sgcGFyZW50IG9mIHRoZSBzdGFydCBvZiBhIGNvbnRpbnVh
dGlvbiAtIHNraXAgYWxsIHRoZSB3YXkgdG8KQEAgLTQyNiw3ICs0MTUsNyBAQCBzdGF0aWMgUmVu
ZGVyQm94TW9kZWxPYmplY3QqIG5leHRDb250aW51CiAgICAgaWYgKGlzPFJlbmRlcklubGluZT4o
cmVuZGVyZXIpICYmICFyZW5kZXJlci5pc1JlcGxhY2VkKCkpCiAgICAgICAgIHJldHVybiBkb3du
Y2FzdDxSZW5kZXJJbmxpbmU+KHJlbmRlcmVyKS5jb250aW51YXRpb24oKTsKICAgICBpZiAoaXM8
UmVuZGVyQmxvY2s+KHJlbmRlcmVyKSkKLSAgICAgICAgcmV0dXJuIGRvd25jYXN0PFJlbmRlckJs
b2NrPihyZW5kZXJlcikuaW5saW5lRWxlbWVudENvbnRpbnVhdGlvbigpOworICAgICAgICByZXR1
cm4gZG93bmNhc3Q8UmVuZGVyQmxvY2s+KHJlbmRlcmVyKS5pbmxpbmVDb250aW51YXRpb24oKTsK
ICAgICByZXR1cm4gbnVsbHB0cjsKIH0KICAgICAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCbG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJsb2NrLmNwcAkocmV2aXNpb24gMjI0NTgzKQorKysgU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTY5Nyw3ICsxNjk3
LDcgQEAgdm9pZCBSZW5kZXJCbG9jazo6cGFpbnRPYmplY3QoUGFpbnRJbmZvJgogCiAgICAgLy8g
Ni4gcGFpbnQgY29udGludWF0aW9uIG91dGxpbmVzLgogICAgIGlmICgocGFpbnRQaGFzZSA9PSBQ
YWludFBoYXNlT3V0bGluZSB8fCBwYWludFBoYXNlID09IFBhaW50UGhhc2VDaGlsZE91dGxpbmVz
KSkgewotICAgICAgICBSZW5kZXJJbmxpbmUqIGlubGluZUNvbnQgPSBpbmxpbmVFbGVtZW50Q29u
dGludWF0aW9uKCk7CisgICAgICAgIFJlbmRlcklubGluZSogaW5saW5lQ29udCA9IGlubGluZUNv
bnRpbnVhdGlvbigpOwogICAgICAgICBpZiAoaW5saW5lQ29udCAmJiBpbmxpbmVDb250LT5oYXNP
dXRsaW5lKCkgJiYgaW5saW5lQ29udC0+c3R5bGUoKS52aXNpYmlsaXR5KCkgPT0gVklTSUJMRSkg
ewogICAgICAgICAgICAgUmVuZGVySW5saW5lKiBpbmxpbmVSZW5kZXJlciA9IGRvd25jYXN0PFJl
bmRlcklubGluZT4oaW5saW5lQ29udC0+ZWxlbWVudCgpLT5yZW5kZXJlcigpKTsKICAgICAgICAg
ICAgIFJlbmRlckJsb2NrKiBjb250YWluaW5nQmxvY2sgPSB0aGlzLT5jb250YWluaW5nQmxvY2so
KTsKQEAgLTE3MzAsMTIgKzE3MzAsNiBAQCB2b2lkIFJlbmRlckJsb2NrOjpwYWludE9iamVjdChQ
YWludEluZm8mCiAgICAgfQogfQogCi1SZW5kZXJJbmxpbmUqIFJlbmRlckJsb2NrOjppbmxpbmVF
bGVtZW50Q29udGludWF0aW9uKCkgY29uc3QKLXsgCi0gICAgUmVuZGVyQm94TW9kZWxPYmplY3Qq
IGNvbnRpbnVhdGlvbiA9IHRoaXMtPmNvbnRpbnVhdGlvbigpOwotICAgIHJldHVybiBpczxSZW5k
ZXJJbmxpbmU+KGNvbnRpbnVhdGlvbikgPyBkb3duY2FzdDxSZW5kZXJJbmxpbmU+KGNvbnRpbnVh
dGlvbikgOiBudWxscHRyOwotfQotCiBzdGF0aWMgQ29udGludWF0aW9uT3V0bGluZVRhYmxlTWFw
KiBjb250aW51YXRpb25PdXRsaW5lVGFibGUoKQogewogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxDb250aW51YXRpb25PdXRsaW5lVGFibGVNYXA+IHRhYmxlOwpAQCAtMzE2MywxMCArMzE1Nyw4
IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmFic29sdXRlUmVjdHMoVmVjdG9yPEkKICAgICBpZiAoYXV0
byogY29udGludWF0aW9uID0gdGhpcy0+Y29udGludWF0aW9uKCkpIHsKICAgICAgICAgLy8gRklY
TUU6IFRoaXMgaXMgd3JvbmcgZm9yIGJsb2NrLWZsb3dzIHRoYXQgYXJlIGhvcml6b250YWwuCiAg
ICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00Njc4MQot
ICAgICAgICByZWN0cy5hcHBlbmQoc25hcHBlZEludFJlY3QoYWNjdW11bGF0ZWRPZmZzZXQueCgp
LCBhY2N1bXVsYXRlZE9mZnNldC55KCkgLSBjb2xsYXBzZWRNYXJnaW5CZWZvcmUoKSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgoKSwgaGVpZ2h0KCkgKyBjb2xsYXBzZWRN
YXJnaW5CZWZvcmUoKSArIGNvbGxhcHNlZE1hcmdpbkFmdGVyKCkpKTsKLSAgICAgICAgY29udGlu
dWF0aW9uLT5hYnNvbHV0ZVJlY3RzKHJlY3RzLCBhY2N1bXVsYXRlZE9mZnNldCAtIHRvTGF5b3V0
U2l6ZShsb2NhdGlvbigpICsKLSAgICAgICAgICAgICAgICBpbmxpbmVFbGVtZW50Q29udGludWF0
aW9uKCktPmNvbnRhaW5pbmdCbG9jaygpLT5sb2NhdGlvbigpKSk7CisgICAgICAgIHJlY3RzLmFw
cGVuZChzbmFwcGVkSW50UmVjdChhY2N1bXVsYXRlZE9mZnNldC54KCksIGFjY3VtdWxhdGVkT2Zm
c2V0LnkoKSAtIGNvbGxhcHNlZE1hcmdpbkJlZm9yZSgpLCB3aWR0aCgpLCBoZWlnaHQoKSArIGNv
bGxhcHNlZE1hcmdpbkJlZm9yZSgpICsgY29sbGFwc2VkTWFyZ2luQWZ0ZXIoKSkpOworICAgICAg
ICBjb250aW51YXRpb24tPmFic29sdXRlUmVjdHMocmVjdHMsIGFjY3VtdWxhdGVkT2Zmc2V0IC0g
dG9MYXlvdXRTaXplKGxvY2F0aW9uKCkgKyBpbmxpbmVDb250aW51YXRpb24oKS0+Y29udGFpbmlu
Z0Jsb2NrKCktPmxvY2F0aW9uKCkpKTsKICAgICB9IGVsc2UKICAgICAgICAgcmVjdHMuYXBwZW5k
KHNuYXBwZWRJbnRSZWN0KGFjY3VtdWxhdGVkT2Zmc2V0LCBzaXplKCkpKTsKIH0KQEAgLTMyNjQs
MTMgKzMyNTYsMTQgQEAgdm9pZCBSZW5kZXJCbG9jazo6YWRkRm9jdXNSaW5nUmVjdHMoVmVjdAog
ewogICAgIC8vIEZvciBibG9ja3MgaW5zaWRlIGlubGluZXMsIHdlIGluY2x1ZGUgbWFyZ2lucyBz
byB0aGF0IHdlIHJ1biByaWdodCB1cCB0byB0aGUgaW5saW5lIGJveGVzCiAgICAgLy8gYWJvdmUg
YW5kIGJlbG93IHVzICh0aHVzIGdldHRpbmcgbWVyZ2VkIHdpdGggdGhlbSB0byBmb3JtIGEgc2lu
Z2xlIGlycmVndWxhciBzaGFwZSkuCi0gICAgaWYgKGlubGluZUVsZW1lbnRDb250aW51YXRpb24o
KSkgeworICAgIGF1dG8qIGlubGluZUNvbnRpbnVhdGlvbiA9IHRoaXMtPmlubGluZUNvbnRpbnVh
dGlvbigpOworICAgIGlmIChpbmxpbmVDb250aW51YXRpb24pIHsKICAgICAgICAgLy8gRklYTUU6
IFRoaXMgY2hlY2sgcmVhbGx5IGlzbid0IGFjY3VyYXRlLiAKLSAgICAgICAgYm9vbCBuZXh0SW5s
aW5lSGFzTGluZUJveCA9IGlubGluZUVsZW1lbnRDb250aW51YXRpb24oKS0+Zmlyc3RMaW5lQm94
KCk7CisgICAgICAgIGJvb2wgbmV4dElubGluZUhhc0xpbmVCb3ggPSBpbmxpbmVDb250aW51YXRp
b24tPmZpcnN0TGluZUJveCgpOwogICAgICAgICAvLyBGSVhNRTogVGhpcyBpcyB3cm9uZy4gVGhl
IHByaW5jaXBhbCByZW5kZXJlciBtYXkgbm90IGJlIHRoZSBjb250aW51YXRpb24gcHJlY2VkaW5n
IHRoaXMgYmxvY2suCiAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGlzIHdyb25nIGZvciBibG9jay1m
bG93cyB0aGF0IGFyZSBob3Jpem9udGFsLgogICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDY3ODEKLSAgICAgICAgYm9vbCBwcmV2SW5saW5lSGFzTGlu
ZUJveCA9IGRvd25jYXN0PFJlbmRlcklubGluZT4oKmlubGluZUVsZW1lbnRDb250aW51YXRpb24o
KS0+ZWxlbWVudCgpLT5yZW5kZXJlcigpKS5maXJzdExpbmVCb3goKTsKKyAgICAgICAgYm9vbCBw
cmV2SW5saW5lSGFzTGluZUJveCA9IGRvd25jYXN0PFJlbmRlcklubGluZT4oKmlubGluZUNvbnRp
bnVhdGlvbi0+ZWxlbWVudCgpLT5yZW5kZXJlcigpKS5maXJzdExpbmVCb3goKTsKICAgICAgICAg
ZmxvYXQgdG9wTWFyZ2luID0gcHJldklubGluZUhhc0xpbmVCb3ggPyBjb2xsYXBzZWRNYXJnaW5C
ZWZvcmUoKSA6IExheW91dFVuaXQoKTsKICAgICAgICAgZmxvYXQgYm90dG9tTWFyZ2luID0gbmV4
dElubGluZUhhc0xpbmVCb3ggPyBjb2xsYXBzZWRNYXJnaW5BZnRlcigpIDogTGF5b3V0VW5pdCgp
OwogICAgICAgICBMYXlvdXRSZWN0IHJlY3QoYWRkaXRpb25hbE9mZnNldC54KCksIGFkZGl0aW9u
YWxPZmZzZXQueSgpIC0gdG9wTWFyZ2luLCB3aWR0aCgpLCBoZWlnaHQoKSArIHRvcE1hcmdpbiAr
IGJvdHRvbU1hcmdpbik7CkBAIC0zMjk3LDggKzMyOTAsOCBAQCB2b2lkIFJlbmRlckJsb2NrOjph
ZGRGb2N1c1JpbmdSZWN0cyhWZWN0CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAoaW5saW5l
RWxlbWVudENvbnRpbnVhdGlvbigpKQotICAgICAgICBpbmxpbmVFbGVtZW50Q29udGludWF0aW9u
KCktPmFkZEZvY3VzUmluZ1JlY3RzKHJlY3RzLCBmbG9vcmVkTGF5b3V0UG9pbnQoTGF5b3V0UG9p
bnQoYWRkaXRpb25hbE9mZnNldCArIGlubGluZUVsZW1lbnRDb250aW51YXRpb24oKS0+Y29udGFp
bmluZ0Jsb2NrKCktPmxvY2F0aW9uKCkgLSBsb2NhdGlvbigpKSksIHBhaW50Q29udGFpbmVyKTsK
KyAgICBpZiAoaW5saW5lQ29udGludWF0aW9uKQorICAgICAgICBpbmxpbmVDb250aW51YXRpb24t
PmFkZEZvY3VzUmluZ1JlY3RzKHJlY3RzLCBmbG9vcmVkTGF5b3V0UG9pbnQoTGF5b3V0UG9pbnQo
YWRkaXRpb25hbE9mZnNldCArIGlubGluZUNvbnRpbnVhdGlvbi0+Y29udGFpbmluZ0Jsb2NrKCkt
PmxvY2F0aW9uKCkgLSBsb2NhdGlvbigpKSksIHBhaW50Q29udGFpbmVyKTsKIH0KIAogUmVuZGVy
UHRyPFJlbmRlckJsb2NrPiBSZW5kZXJCbG9jazo6Y3JlYXRlQW5vbnltb3VzQmxvY2tXaXRoU3R5
bGVBbmREaXNwbGF5KERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxl
LCBFRGlzcGxheSBkaXNwbGF5KQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJsb2NrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJs
b2NrLmgJKHJldmlzaW9uIDIyNDU4MykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9jay5oCSh3b3JraW5nIGNvcHkpCkBAIC0xODksOCArMTg5LDYgQEAgcHVibGljOgogICAg
IHZvaWQgYWRkQ29udGludWF0aW9uV2l0aE91dGxpbmUoUmVuZGVySW5saW5lKik7CiAgICAgYm9v
bCBwYWludHNDb250aW51YXRpb25PdXRsaW5lKFJlbmRlcklubGluZSopOwogCi0gICAgV0VCQ09S
RV9FWFBPUlQgUmVuZGVySW5saW5lKiBpbmxpbmVFbGVtZW50Q29udGludWF0aW9uKCkgY29uc3Q7
Ci0KICAgICBzdGF0aWMgUmVuZGVyUHRyPFJlbmRlckJsb2NrPiBjcmVhdGVBbm9ueW1vdXNXaXRo
UGFyZW50UmVuZGVyZXJBbmREaXNwbGF5KGNvbnN0IFJlbmRlckJveCYgcGFyZW50LCBFRGlzcGxh
eSA9IEJMT0NLKTsKICAgICBSZW5kZXJQdHI8UmVuZGVyQmxvY2s+IGNyZWF0ZUFub255bW91c0Js
b2NrKEVEaXNwbGF5ID0gQkxPQ0spIGNvbnN0OwogICAgIHZvaWQgZHJvcEFub255bW91c0JveENo
aWxkKFJlbmRlckJsb2NrJiBjaGlsZCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAJKHJldmlzaW9uIDIyNDU4MykKKysrIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI3OSw3ICsyNzksNyBAQCBzdGF0aWMgTGF5b3V0U2l6ZSBhY2N1bXVsYXRlSW5G
bG93UG9zaXRpCiAgICAgaWYgKCFjaGlsZC0+aXNBbm9ueW1vdXNCbG9jaygpIHx8ICFjaGlsZC0+
aXNJbkZsb3dQb3NpdGlvbmVkKCkpCiAgICAgICAgIHJldHVybiBMYXlvdXRTaXplKCk7CiAgICAg
TGF5b3V0U2l6ZSBvZmZzZXQ7Ci0gICAgZm9yIChSZW5kZXJFbGVtZW50KiBwYXJlbnQgPSBkb3du
Y2FzdDxSZW5kZXJCbG9jaz4oKmNoaWxkKS5pbmxpbmVFbGVtZW50Q29udGludWF0aW9uKCk7IGlz
PFJlbmRlcklubGluZT4ocGFyZW50KTsgcGFyZW50ID0gcGFyZW50LT5wYXJlbnQoKSkgeworICAg
IGZvciAoUmVuZGVyRWxlbWVudCogcGFyZW50ID0gZG93bmNhc3Q8UmVuZGVyQmxvY2s+KCpjaGls
ZCkuaW5saW5lQ29udGludWF0aW9uKCk7IGlzPFJlbmRlcklubGluZT4ocGFyZW50KTsgcGFyZW50
ID0gcGFyZW50LT5wYXJlbnQoKSkgewogICAgICAgICBpZiAocGFyZW50LT5pc0luRmxvd1Bvc2l0
aW9uZWQoKSkKICAgICAgICAgICAgIG9mZnNldCArPSBkb3duY2FzdDxSZW5kZXJJbmxpbmU+KCpw
YXJlbnQpLm9mZnNldEZvckluRmxvd1Bvc2l0aW9uKCk7CiAgICAgfQpAQCAtMjUwNyw2ICsyNTA3
LDE5IEBAIFJlbmRlckJveE1vZGVsT2JqZWN0KiBSZW5kZXJCb3hNb2RlbE9iamUKICAgICByZXR1
cm4gY29udGludWF0aW9uQ2hhaW5Ob2RlLm5leHQtPnJlbmRlcmVyLmdldCgpOwogfQogCitSZW5k
ZXJJbmxpbmUqIFJlbmRlckJveE1vZGVsT2JqZWN0OjppbmxpbmVDb250aW51YXRpb24oKSBjb25z
dAoreworICAgIGlmICghaGFzQ29udGludWF0aW9uQ2hhaW5Ob2RlKCkpCisgICAgICAgIHJldHVy
biBudWxscHRyOworCisgICAgZm9yIChhdXRvKiBuZXh0ID0gY29udGludWF0aW9uQ2hhaW5Ob2Rl
TWFwKCkuZ2V0KHRoaXMpLT5uZXh0OyBuZXh0OyBuZXh0ID0gbmV4dC0+bmV4dCkgeworICAgICAg
ICBpZiAoaXM8UmVuZGVySW5saW5lPigqbmV4dC0+cmVuZGVyZXIpKQorICAgICAgICAgICAgcmV0
dXJuIGRvd25jYXN0PFJlbmRlcklubGluZT4obmV4dC0+cmVuZGVyZXIuZ2V0KCkpOworICAgIH0K
KyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworCiB2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0Ojpp
bnNlcnRJbnRvQ29udGludWF0aW9uQ2hhaW5BZnRlcihSZW5kZXJCb3hNb2RlbE9iamVjdCYgYWZ0
ZXJSZW5kZXJlcikKIHsKICAgICBBU1NFUlQoaXNDb250aW51YXRpb24oKSk7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaAkocmV2aXNp
b24gMjI0NTgzKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2Jq
ZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTIzNiw2ICsyMzYsNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBzdXNwZW5kQW5pbWF0aW9ucyhkb3VibGUgdGltZSA9IDApOwogCiAgICAgUmVuZGVyQm94TW9k
ZWxPYmplY3QqIGNvbnRpbnVhdGlvbigpIGNvbnN0OworICAgIFJlbmRlcklubGluZSogaW5saW5l
Q29udGludWF0aW9uKCkgY29uc3Q7CiAgICAgCiAgICAgdm9pZCBpbnNlcnRJbnRvQ29udGludWF0
aW9uQ2hhaW5BZnRlcihSZW5kZXJCb3hNb2RlbE9iamVjdCYpOwogICAgIHZvaWQgcmVtb3ZlRnJv
bUNvbnRpbnVhdGlvbkNoYWluKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVySW5saW5lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVySW5saW5lLmNwcAkocmV2aXNpb24gMjI0NTgzKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlcklubGluZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExMywxOCArMTEzLDYgQEAg
dm9pZCBSZW5kZXJJbmxpbmU6OndpbGxCZURlc3Ryb3llZCgpCiAgICAgUmVuZGVyQm94TW9kZWxP
YmplY3Q6OndpbGxCZURlc3Ryb3llZCgpOwogfQogCi1SZW5kZXJJbmxpbmUqIFJlbmRlcklubGlu
ZTo6aW5saW5lRWxlbWVudENvbnRpbnVhdGlvbigpIGNvbnN0Ci17Ci0gICAgUmVuZGVyQm94TW9k
ZWxPYmplY3QqIGNvbnRpbnVhdGlvbiA9IHRoaXMtPmNvbnRpbnVhdGlvbigpOwotICAgIGlmICgh
Y29udGludWF0aW9uKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIGlmIChpczxSZW5k
ZXJJbmxpbmU+KCpjb250aW51YXRpb24pKQotICAgICAgICByZXR1cm4gZG93bmNhc3Q8UmVuZGVy
SW5saW5lPihjb250aW51YXRpb24pOwotCi0gICAgcmV0dXJuIGlzPFJlbmRlckJsb2NrPigqY29u
dGludWF0aW9uKSA/IGRvd25jYXN0PFJlbmRlckJsb2NrPigqY29udGludWF0aW9uKS5pbmxpbmVF
bGVtZW50Q29udGludWF0aW9uKCkgOiBudWxscHRyOwotfQotCiB2b2lkIFJlbmRlcklubGluZTo6
dXBkYXRlRnJvbVN0eWxlKCkKIHsKICAgICBSZW5kZXJCb3hNb2RlbE9iamVjdDo6dXBkYXRlRnJv
bVN0eWxlKCk7CkBAIC0xNjAsNyArMTQ4LDcgQEAgc3RhdGljIHZvaWQgdXBkYXRlU3R5bGVPZkFu
b255bW91c0Jsb2NrQwogICAgICAgICAKICAgICAgICAgLy8gSWYgd2UgYXJlIG5vIGxvbmdlciBp
bi1mbG93IHBvc2l0aW9uZWQgYnV0IG91ciBkZXNjZW5kYW50IGJsb2NrKHMpIHN0aWxsIGhhdmUg
YW4gaW4tZmxvdyBwb3NpdGlvbmVkIGFuY2VzdG9yIHRoZW4KICAgICAgICAgLy8gdGhlaXIgY29u
dGFpbmluZyBhbm9ueW1vdXMgYmxvY2sgc2hvdWxkIGtlZXAgaXRzIGluLWZsb3cgcG9zaXRpb25p
bmcuIAotICAgICAgICBSZW5kZXJJbmxpbmUqIGNvbnRpbnVhdGlvbiA9IGJsb2NrLmlubGluZUVs
ZW1lbnRDb250aW51YXRpb24oKTsKKyAgICAgICAgUmVuZGVySW5saW5lKiBjb250aW51YXRpb24g
PSBibG9jay5pbmxpbmVDb250aW51YXRpb24oKTsKICAgICAgICAgaWYgKG9sZFN0eWxlLT5oYXNJ
bkZsb3dQb3NpdGlvbigpICYmIGluRmxvd1Bvc2l0aW9uZWRJbmxpbmVBbmNlc3Rvcihjb250aW51
YXRpb24pKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIGF1dG8gYmxvY2tTdHlsZSA9
IFJlbmRlclN0eWxlOjpjcmVhdGVBbm9ueW1vdXNTdHlsZVdpdGhEaXNwbGF5KGJsb2NrLnN0eWxl
KCksIEJMT0NLKTsKQEAgLTE5Miw5ICsxODAsOSBAQCB2b2lkIFJlbmRlcklubGluZTo6c3R5bGVE
aWRDaGFuZ2UoU3R5bGVECiAgICAgLy8gYW5kIGFmdGVyIHRoZSBibG9jayBzaGFyZSB0aGUgc2Ft
ZSBzdHlsZSwgYnV0IHRoZSBibG9jayBkb2Vzbid0CiAgICAgLy8gbmVlZCB0byBwYXNzIGl0cyBz
dHlsZSBvbiB0byBhbnlvbmUgZWxzZS4KICAgICBhdXRvJiBuZXdTdHlsZSA9IHN0eWxlKCk7Ci0g
ICAgUmVuZGVySW5saW5lKiBjb250aW51YXRpb24gPSBpbmxpbmVFbGVtZW50Q29udGludWF0aW9u
KCk7CisgICAgUmVuZGVySW5saW5lKiBjb250aW51YXRpb24gPSBpbmxpbmVDb250aW51YXRpb24o
KTsKICAgICBpZiAoY29udGludWF0aW9uICYmICFpc0NvbnRpbnVhdGlvbigpKSB7Ci0gICAgICAg
IGZvciAoUmVuZGVySW5saW5lKiBjdXJyQ29udCA9IGNvbnRpbnVhdGlvbjsgY3VyckNvbnQ7IGN1
cnJDb250ID0gY3VyckNvbnQtPmlubGluZUVsZW1lbnRDb250aW51YXRpb24oKSkKKyAgICAgICAg
Zm9yIChSZW5kZXJJbmxpbmUqIGN1cnJDb250ID0gY29udGludWF0aW9uOyBjdXJyQ29udDsgY3Vy
ckNvbnQgPSBjdXJyQ29udC0+aW5saW5lQ29udGludWF0aW9uKCkpCiAgICAgICAgICAgICBjdXJy
Q29udC0+c2V0U3R5bGUoUmVuZGVyU3R5bGU6OmNsb25lKG5ld1N0eWxlKSk7CiAgICAgICAgIC8v
IElmIGFuIGlubGluZSdzIGluLWZsb3cgcG9zaXRpb25pbmcgaGFzIGNoYW5nZWQgYW5kIGl0IGlz
IHBhcnQgb2YgYW4gYWN0aXZlIGNvbnRpbnVhdGlvbiBhcyBhIGRlc2NlbmRhbnQgb2YgYW4gYW5v
bnltb3VzIGNvbnRhaW5pbmcgYmxvY2ssCiAgICAgICAgIC8vIHRoZW4gYW55IGRlc2NlbmRhbnQg
YmxvY2tzIHdpbGwgbmVlZCB0byBjaGFuZ2UgdGhlaXIgaW4tZmxvdyBwb3NpdGlvbmluZyBhY2Nv
cmRpbmdseS4KQEAgLTI4Niw3ICsyNzQsNyBAQCBzdGF0aWMgUmVuZGVyQm94TW9kZWxPYmplY3Qq
IG5leHRDb250aW51CiB7CiAgICAgaWYgKGlzPFJlbmRlcklubGluZT4oKnJlbmRlcmVyKSAmJiAh
cmVuZGVyZXItPmlzUmVwbGFjZWQoKSkKICAgICAgICAgcmV0dXJuIGRvd25jYXN0PFJlbmRlcklu
bGluZT4oKnJlbmRlcmVyKS5jb250aW51YXRpb24oKTsKLSAgICByZXR1cm4gZG93bmNhc3Q8UmVu
ZGVyQmxvY2s+KCpyZW5kZXJlcikuaW5saW5lRWxlbWVudENvbnRpbnVhdGlvbigpOworICAgIHJl
dHVybiBkb3duY2FzdDxSZW5kZXJCbG9jaz4oKnJlbmRlcmVyKS5pbmxpbmVDb250aW51YXRpb24o
KTsKIH0KIAogUmVuZGVyQm94TW9kZWxPYmplY3QqIFJlbmRlcklubGluZTo6Y29udGludWF0aW9u
QmVmb3JlKFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQpCkBAIC05MjksNyArOTE3LDcgQEAgVmlz
aWJsZVBvc2l0aW9uIFJlbmRlcklubGluZTo6cG9zaXRpb25GbwogICAgICAgICBSZW5kZXJCbG9j
ayogY3VycmVudEJsb2NrID0gY29udGludWF0aW9uLT5pc0lubGluZSgpID8gY29udGludWF0aW9u
LT5jb250YWluaW5nQmxvY2soKSA6IGRvd25jYXN0PFJlbmRlckJsb2NrPihjb250aW51YXRpb24p
OwogICAgICAgICBpZiAoY29udGludWF0aW9uLT5pc0lubGluZSgpIHx8IGNvbnRpbnVhdGlvbi0+
Zmlyc3RDaGlsZCgpKQogICAgICAgICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbi0+cG9zaXRpb25G
b3JQb2ludChwYXJlbnRCbG9ja1BvaW50IC0gY3VycmVudEJsb2NrLT5sb2NhdGlvbk9mZnNldCgp
LCBmcmFnbWVudCk7Ci0gICAgICAgIGNvbnRpbnVhdGlvbiA9IGRvd25jYXN0PFJlbmRlckJsb2Nr
PigqY29udGludWF0aW9uKS5pbmxpbmVFbGVtZW50Q29udGludWF0aW9uKCk7CisgICAgICAgIGNv
bnRpbnVhdGlvbiA9IGNvbnRpbnVhdGlvbi0+aW5saW5lQ29udGludWF0aW9uKCk7CiAgICAgfQog
ICAgIAogICAgIHJldHVybiBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cG9zaXRpb25Gb3JQb2ludChw
b2ludCwgZnJhZ21lbnQpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklu
bGluZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxp
bmUuaAkocmV2aXNpb24gMjI0NTgzKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
cklubGluZS5oCSh3b3JraW5nIGNvcHkpCkBAIC03OSw4ICs3OSw2IEBAIHB1YmxpYzoKICAgICB2
b2lkIGFic29sdXRlUXVhZHNGb3JTZWxlY3Rpb24oVmVjdG9yPEZsb2F0UXVhZD4mIHF1YWRzKSBj
b25zdCBvdmVycmlkZTsKICNlbmRpZgogCi0gICAgUmVuZGVySW5saW5lKiBpbmxpbmVFbGVtZW50
Q29udGludWF0aW9uKCkgY29uc3Q7Ci0KICAgICB2b2lkIHVwZGF0ZURyYWdTdGF0ZShib29sIGRy
YWdPbikgZmluYWw7CiAgICAgCiAgICAgTGF5b3V0U2l6ZSBvZmZzZXRGb3JJbkZsb3dQb3NpdGlv
bmVkSW5saW5lKGNvbnN0IFJlbmRlckJveCogY2hpbGQpIGNvbnN0OwpJbmRleDogU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL2xpbmUvTGluZUlubGluZUhlYWRlcnMuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbGluZS9MaW5lSW5saW5lSGVhZGVycy5oCShyZXZpc2lv
biAyMjQ1ODMpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbGluZS9MaW5lSW5saW5lSGVh
ZGVycy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw3ICszOCw3IEBAIGlubGluZSBib29sIGhhc0lu
bGluZURpcmVjdGlvbkJvcmRlcnNQYWQKICAgICBpZiAoc2hvdWxkQXBwbHlTdGFydEJvcmRlclBh
ZGRpbmdPck1hcmdpbiAmJiAoZmxvdy5ib3JkZXJTdGFydCgpIHx8IGZsb3cubWFyZ2luU3RhcnQo
KSB8fCBmbG93LnBhZGRpbmdTdGFydCgpKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICBi
b29sIHNob3VsZEFwcGx5RW5kQm9yZGVyUGFkZGluZ09yTWFyZ2luID0gIWZsb3cucGFyZW50KCkt
PmlzQW5vbnltb3VzQmxvY2soKSB8fCBmbG93LmlzQ29udGludWF0aW9uKCkgfHwgIWZsb3cuaW5s
aW5lRWxlbWVudENvbnRpbnVhdGlvbigpOworICAgIGJvb2wgc2hvdWxkQXBwbHlFbmRCb3JkZXJQ
YWRkaW5nT3JNYXJnaW4gPSAhZmxvdy5wYXJlbnQoKS0+aXNBbm9ueW1vdXNCbG9jaygpIHx8IGZs
b3cuaXNDb250aW51YXRpb24oKSB8fCAhZmxvdy5pbmxpbmVDb250aW51YXRpb24oKTsKICAgICBy
ZXR1cm4gc2hvdWxkQXBwbHlFbmRCb3JkZXJQYWRkaW5nT3JNYXJnaW4gJiYgKGZsb3cuYm9yZGVy
RW5kKCkgfHwgZmxvdy5tYXJnaW5FbmQoKSB8fCBmbG93LnBhZGRpbmdFbmQoKSk7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>326350</attachid>
            <date>2017-11-08 13:05:46 -0800</date>
            <delta_ts>2017-11-08 13:13:07 -0800</delta_ts>
            <desc>patch</desc>
            <filename>move-inlineElementContinuation-3.patch</filename>
            <type>text/plain</type>
            <size>18195</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyNDU5MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQwIEBACisyMDE3LTExLTA4ICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIGlubGluZUVsZW1lbnRD
b250aW51YXRpb24gZnVuY3Rpb24gdG8gUmVuZGVyQm94TW9kZWxPYmplY3QgYW5kIHJlbmFtZSB0
byBpbmxpbmVDb250aW51YXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE3OTQzNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFVuaWZ5IFJlbmRlcklubGluZTo6aW5saW5lRWxlbWVudENvbnRpbnVhdGlv
biBhbmQgUmVuZGVyQmxvY2s6OmlubGluZUVsZW1lbnRDb250aW51YXRpb24uCisgICAgICAgIEl0
IGlzIHNpbXBseSBhIGZ1bmN0aW9uIHRvIGZpbmQgdGhlIG5leHQgUmVuZGVySW5saW5lIGluIHRo
ZSBjb250aW51YXRpb24gY2hhaW4uCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bGFzdENoaWxkQ29uc2lk
ZXJpbmdDb250aW51YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6c3RhcnRPZkNvbnRpbnVhdGlv
bnMpOgorICAgICAgICAoV2ViQ29yZTo6ZW5kT2ZDb250aW51YXRpb25zKToKKyAgICAgICAgKFdl
YkNvcmU6OmNoaWxkQmVmb3JlQ29uc2lkZXJpbmdDb250aW51YXRpb25zKToKKyAgICAgICAgKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6Om5leHRTaWJsaW5nIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6Om5leHRDb250aW51YXRpb24pOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJCbG9jay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6cGFpbnRPYmpl
Y3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmFic29sdXRlUmVjdHMgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmFkZEZvY3VzUmluZ1JlY3RzKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjppbmxpbmVFbGVtZW50Q29udGludWF0aW9uIGNv
bnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suaDoKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6YWNjdW11bGF0ZUluRmxvd1Bvc2l0aW9uT2Zmc2V0cyk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJCb3hNb2RlbE9iamVjdDo6aW5saW5lQ29udGludWF0aW9uIGNvbnN0KToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaDoKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVySW5saW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnVwZGF0ZVN0eWxlT2ZBbm9ueW1v
dXNCbG9ja0NvbnRpbnVhdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVySW5saW5lOjpz
dHlsZURpZENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpuZXh0Q29udGludWF0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlcklubGluZTo6cG9zaXRpb25Gb3JQb2ludCk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJJbmxpbmU6OmlubGluZUVsZW1lbnRDb250aW51YXRpb24gY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbmxpbmUuaDoKKyAgICAgICAg
KiByZW5kZXJpbmcvbGluZS9MaW5lSW5saW5lSGVhZGVycy5oOgorICAgICAgICAoV2ViQ29yZTo6
aGFzSW5saW5lRGlyZWN0aW9uQm9yZGVyc1BhZGRpbmdPck1hcmdpbik6CisKIDIwMTctMTEtMDgg
IENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBTaW1wbGlmeSBTZXJ2
aWNlV29ya2VyQ29udGFpbmVyOjpqb2JSZXNvbHZlZFdpdGhSZWdpc3RyYXRpb24oKQpJbmRleDog
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3QuY3BwCShyZXZpc2lvbiAyMjQ1ODMpCisrKyBTb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xOTksMTggKzE5OSwxMSBAQCBzdGF0aWMgaW5saW5lIFJlbmRlck9iamVjdCogbGFzdENo
aWxkQ29uCiAgICAgICAgIHJldHVybiAmcmVuZGVyZXI7CiAKICAgICBSZW5kZXJPYmplY3QqIGxh
c3RDaGlsZCA9IGRvd25jYXN0PFJlbmRlckJveE1vZGVsT2JqZWN0PihyZW5kZXJlcikubGFzdENo
aWxkKCk7Ci0gICAgUmVuZGVyQm94TW9kZWxPYmplY3QqIHByZXZpb3VzOwogICAgIGZvciAoYXV0
byogY3VycmVudCA9ICZkb3duY2FzdDxSZW5kZXJCb3hNb2RlbE9iamVjdD4ocmVuZGVyZXIpOyBj
dXJyZW50OyApIHsKLSAgICAgICAgcHJldmlvdXMgPSBjdXJyZW50OwotCiAgICAgICAgIGlmIChS
ZW5kZXJPYmplY3QqIG5ld0xhc3RDaGlsZCA9IGN1cnJlbnQtPmxhc3RDaGlsZCgpKQogICAgICAg
ICAgICAgbGFzdENoaWxkID0gbmV3TGFzdENoaWxkOwogCi0gICAgICAgIGlmIChpczxSZW5kZXJJ
bmxpbmU+KCpjdXJyZW50KSkgewotICAgICAgICAgICAgY3VycmVudCA9IGRvd25jYXN0PFJlbmRl
cklubGluZT4oKmN1cnJlbnQpLmlubGluZUVsZW1lbnRDb250aW51YXRpb24oKTsKLSAgICAgICAg
ICAgIEFTU0VSVF9VTlVTRUQocHJldmlvdXMsIGN1cnJlbnQgfHwgIWRvd25jYXN0PFJlbmRlcklu
bGluZT4oKnByZXZpb3VzKS5jb250aW51YXRpb24oKSk7Ci0gICAgICAgIH0gZWxzZQotICAgICAg
ICAgICAgY3VycmVudCA9IGRvd25jYXN0PFJlbmRlckJsb2NrPigqY3VycmVudCkuaW5saW5lRWxl
bWVudENvbnRpbnVhdGlvbigpOworICAgICAgICBjdXJyZW50ID0gY3VycmVudC0+aW5saW5lQ29u
dGludWF0aW9uKCk7CiAgICAgfQogCiAgICAgcmV0dXJuIGxhc3RDaGlsZDsKQEAgLTI1NSw4ICsy
NDgsOCBAQCBzdGF0aWMgaW5saW5lIFJlbmRlcklubGluZSogc3RhcnRPZkNvbnRpCiAgICAgICAg
IHJldHVybiBkb3duY2FzdDxSZW5kZXJJbmxpbmU+KHJlbmRlcmVyLm5vZGUoKS0+cmVuZGVyZXIo
KSk7CiAKICAgICAvLyBCbG9ja3Mgd2l0aCBhIHByZXZpb3VzIGNvbnRpbnVhdGlvbiBhbHdheXMg
aGF2ZSBhIG5leHQgY29udGludWF0aW9uCi0gICAgaWYgKGlzPFJlbmRlckJsb2NrPihyZW5kZXJF
bGVtZW50KSAmJiBkb3duY2FzdDxSZW5kZXJCbG9jaz4ocmVuZGVyRWxlbWVudCkuaW5saW5lRWxl
bWVudENvbnRpbnVhdGlvbigpKQotICAgICAgICByZXR1cm4gZG93bmNhc3Q8UmVuZGVySW5saW5l
Pihkb3duY2FzdDxSZW5kZXJCbG9jaz4ocmVuZGVyRWxlbWVudCkuaW5saW5lRWxlbWVudENvbnRp
bnVhdGlvbigpLT5lbGVtZW50KCktPnJlbmRlcmVyKCkpOworICAgIGlmIChpczxSZW5kZXJCbG9j
az4ocmVuZGVyRWxlbWVudCkgJiYgZG93bmNhc3Q8UmVuZGVyQmxvY2s+KHJlbmRlckVsZW1lbnQp
LmlubGluZUNvbnRpbnVhdGlvbigpKQorICAgICAgICByZXR1cm4gZG93bmNhc3Q8UmVuZGVySW5s
aW5lPihkb3duY2FzdDxSZW5kZXJCbG9jaz4ocmVuZGVyRWxlbWVudCkuaW5saW5lQ29udGludWF0
aW9uKCktPmVsZW1lbnQoKS0+cmVuZGVyZXIoKSk7CiAKICAgICByZXR1cm4gbnVsbHB0cjsKIH0K
QEAgLTI2OSwxMSArMjYyLDcgQEAgc3RhdGljIGlubGluZSBSZW5kZXJPYmplY3QqIGVuZE9mQ29u
dGludQogICAgIGF1dG8qIHByZXZpb3VzID0gJmRvd25jYXN0PFJlbmRlckJveE1vZGVsT2JqZWN0
PihyZW5kZXJlcik7CiAgICAgZm9yIChhdXRvKiBjdXJyZW50ID0gcHJldmlvdXM7IGN1cnJlbnQ7
ICkgewogICAgICAgICBwcmV2aW91cyA9IGN1cnJlbnQ7Ci0gICAgICAgIGlmIChpczxSZW5kZXJJ
bmxpbmU+KCpjdXJyZW50KSkgewotICAgICAgICAgICAgY3VycmVudCA9IGRvd25jYXN0PFJlbmRl
cklubGluZT4oKmN1cnJlbnQpLmlubGluZUVsZW1lbnRDb250aW51YXRpb24oKTsKLSAgICAgICAg
ICAgIEFTU0VSVChjdXJyZW50IHx8ICFkb3duY2FzdDxSZW5kZXJJbmxpbmU+KCpwcmV2aW91cyku
Y29udGludWF0aW9uKCkpOwotICAgICAgICB9IGVsc2UgCi0gICAgICAgICAgICBjdXJyZW50ID0g
ZG93bmNhc3Q8UmVuZGVyQmxvY2s+KCpjdXJyZW50KS5pbmxpbmVFbGVtZW50Q29udGludWF0aW9u
KCk7CisgICAgICAgIGN1cnJlbnQgPSBjdXJyZW50LT5pbmxpbmVDb250aW51YXRpb24oKTsKICAg
ICB9CiAKICAgICByZXR1cm4gcHJldmlvdXM7CkBAIC0yOTMsMTMgKzI4MiwxMyBAQCBzdGF0aWMg
aW5saW5lIFJlbmRlck9iamVjdCogY2hpbGRCZWZvcmVDCiAgICAgICAgICAgICAgICAgY3VycmVu
dCA9IGN1cnJlbnQtPm5leHRTaWJsaW5nKCk7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAg
IGN1cnJlbnRDb250YWluZXIgPSBkb3duY2FzdDxSZW5kZXJJbmxpbmU+KCpjdXJyZW50Q29udGFp
bmVyKS5jb250aW51YXRpb24oKTsKKyAgICAgICAgICAgIGN1cnJlbnRDb250YWluZXIgPSBjdXJy
ZW50Q29udGFpbmVyLT5jb250aW51YXRpb24oKTsKICAgICAgICAgfSBlbHNlIGlmIChpczxSZW5k
ZXJCbG9jaz4oKmN1cnJlbnRDb250YWluZXIpKSB7CiAgICAgICAgICAgICBpZiAoY3VycmVudENv
bnRhaW5lciA9PSBjaGlsZCkKICAgICAgICAgICAgICAgICByZXR1cm4gcHJldmlvdXM7CiAKICAg
ICAgICAgICAgIHByZXZpb3VzID0gY3VycmVudENvbnRhaW5lcjsKLSAgICAgICAgICAgIGN1cnJl
bnRDb250YWluZXIgPSBkb3duY2FzdDxSZW5kZXJCbG9jaz4oKmN1cnJlbnRDb250YWluZXIpLmlu
bGluZUVsZW1lbnRDb250aW51YXRpb24oKTsKKyAgICAgICAgICAgIGN1cnJlbnRDb250YWluZXIg
PSBjdXJyZW50Q29udGFpbmVyLT5pbmxpbmVDb250aW51YXRpb24oKTsKICAgICAgICAgfQogICAg
IH0KIApAQCAtMzY4LDcgKzM1Nyw3IEBAIEFjY2Vzc2liaWxpdHlPYmplY3QqIEFjY2Vzc2liaWxp
dHlSZW5kZXIKICAgICAvLyBDYXNlIDE6IG5vZGUgaXMgYSBibG9jayBhbmQgaGFzIGFuIGlubGlu
ZSBjb250aW51YXRpb24uIE5leHQgc2libGluZyBpcyB0aGUgaW5saW5lIGNvbnRpbnVhdGlvbidz
CiAgICAgLy8gZmlyc3QgY2hpbGQuCiAgICAgUmVuZGVySW5saW5lKiBpbmxpbmVDb250aW51YXRp
b247Ci0gICAgaWYgKGlzPFJlbmRlckJsb2NrPigqbV9yZW5kZXJlcikgJiYgKGlubGluZUNvbnRp
bnVhdGlvbiA9IGRvd25jYXN0PFJlbmRlckJsb2NrPigqbV9yZW5kZXJlcikuaW5saW5lRWxlbWVu
dENvbnRpbnVhdGlvbigpKSkKKyAgICBpZiAoaXM8UmVuZGVyQmxvY2s+KCptX3JlbmRlcmVyKSAm
JiAoaW5saW5lQ29udGludWF0aW9uID0gZG93bmNhc3Q8UmVuZGVyQmxvY2s+KCptX3JlbmRlcmVy
KS5pbmxpbmVDb250aW51YXRpb24oKSkpCiAgICAgICAgIG5leHRTaWJsaW5nID0gZmlyc3RDaGls
ZENvbnNpZGVyaW5nQ29udGludWF0aW9uKCppbmxpbmVDb250aW51YXRpb24pOwogCiAgICAgLy8g
Q2FzZSAyOiBBbm9ueW1vdXMgYmxvY2sgcGFyZW50IG9mIHRoZSBzdGFydCBvZiBhIGNvbnRpbnVh
dGlvbiAtIHNraXAgYWxsIHRoZSB3YXkgdG8KQEAgLTQyNiw3ICs0MTUsNyBAQCBzdGF0aWMgUmVu
ZGVyQm94TW9kZWxPYmplY3QqIG5leHRDb250aW51CiAgICAgaWYgKGlzPFJlbmRlcklubGluZT4o
cmVuZGVyZXIpICYmICFyZW5kZXJlci5pc1JlcGxhY2VkKCkpCiAgICAgICAgIHJldHVybiBkb3du
Y2FzdDxSZW5kZXJJbmxpbmU+KHJlbmRlcmVyKS5jb250aW51YXRpb24oKTsKICAgICBpZiAoaXM8
UmVuZGVyQmxvY2s+KHJlbmRlcmVyKSkKLSAgICAgICAgcmV0dXJuIGRvd25jYXN0PFJlbmRlckJs
b2NrPihyZW5kZXJlcikuaW5saW5lRWxlbWVudENvbnRpbnVhdGlvbigpOworICAgICAgICByZXR1
cm4gZG93bmNhc3Q8UmVuZGVyQmxvY2s+KHJlbmRlcmVyKS5pbmxpbmVDb250aW51YXRpb24oKTsK
ICAgICByZXR1cm4gbnVsbHB0cjsKIH0KICAgICAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCbG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJsb2NrLmNwcAkocmV2aXNpb24gMjI0NTgzKQorKysgU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTY5Nyw3ICsxNjk3
LDcgQEAgdm9pZCBSZW5kZXJCbG9jazo6cGFpbnRPYmplY3QoUGFpbnRJbmZvJgogCiAgICAgLy8g
Ni4gcGFpbnQgY29udGludWF0aW9uIG91dGxpbmVzLgogICAgIGlmICgocGFpbnRQaGFzZSA9PSBQ
YWludFBoYXNlT3V0bGluZSB8fCBwYWludFBoYXNlID09IFBhaW50UGhhc2VDaGlsZE91dGxpbmVz
KSkgewotICAgICAgICBSZW5kZXJJbmxpbmUqIGlubGluZUNvbnQgPSBpbmxpbmVFbGVtZW50Q29u
dGludWF0aW9uKCk7CisgICAgICAgIFJlbmRlcklubGluZSogaW5saW5lQ29udCA9IGlubGluZUNv
bnRpbnVhdGlvbigpOwogICAgICAgICBpZiAoaW5saW5lQ29udCAmJiBpbmxpbmVDb250LT5oYXNP
dXRsaW5lKCkgJiYgaW5saW5lQ29udC0+c3R5bGUoKS52aXNpYmlsaXR5KCkgPT0gVklTSUJMRSkg
ewogICAgICAgICAgICAgUmVuZGVySW5saW5lKiBpbmxpbmVSZW5kZXJlciA9IGRvd25jYXN0PFJl
bmRlcklubGluZT4oaW5saW5lQ29udC0+ZWxlbWVudCgpLT5yZW5kZXJlcigpKTsKICAgICAgICAg
ICAgIFJlbmRlckJsb2NrKiBjb250YWluaW5nQmxvY2sgPSB0aGlzLT5jb250YWluaW5nQmxvY2so
KTsKQEAgLTE3MzAsMTIgKzE3MzAsNiBAQCB2b2lkIFJlbmRlckJsb2NrOjpwYWludE9iamVjdChQ
YWludEluZm8mCiAgICAgfQogfQogCi1SZW5kZXJJbmxpbmUqIFJlbmRlckJsb2NrOjppbmxpbmVF
bGVtZW50Q29udGludWF0aW9uKCkgY29uc3QKLXsgCi0gICAgUmVuZGVyQm94TW9kZWxPYmplY3Qq
IGNvbnRpbnVhdGlvbiA9IHRoaXMtPmNvbnRpbnVhdGlvbigpOwotICAgIHJldHVybiBpczxSZW5k
ZXJJbmxpbmU+KGNvbnRpbnVhdGlvbikgPyBkb3duY2FzdDxSZW5kZXJJbmxpbmU+KGNvbnRpbnVh
dGlvbikgOiBudWxscHRyOwotfQotCiBzdGF0aWMgQ29udGludWF0aW9uT3V0bGluZVRhYmxlTWFw
KiBjb250aW51YXRpb25PdXRsaW5lVGFibGUoKQogewogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxDb250aW51YXRpb25PdXRsaW5lVGFibGVNYXA+IHRhYmxlOwpAQCAtMzE2MywxMCArMzE1Nyw4
IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmFic29sdXRlUmVjdHMoVmVjdG9yPEkKICAgICBpZiAoYXV0
byogY29udGludWF0aW9uID0gdGhpcy0+Y29udGludWF0aW9uKCkpIHsKICAgICAgICAgLy8gRklY
TUU6IFRoaXMgaXMgd3JvbmcgZm9yIGJsb2NrLWZsb3dzIHRoYXQgYXJlIGhvcml6b250YWwuCiAg
ICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00Njc4MQot
ICAgICAgICByZWN0cy5hcHBlbmQoc25hcHBlZEludFJlY3QoYWNjdW11bGF0ZWRPZmZzZXQueCgp
LCBhY2N1bXVsYXRlZE9mZnNldC55KCkgLSBjb2xsYXBzZWRNYXJnaW5CZWZvcmUoKSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgoKSwgaGVpZ2h0KCkgKyBjb2xsYXBzZWRN
YXJnaW5CZWZvcmUoKSArIGNvbGxhcHNlZE1hcmdpbkFmdGVyKCkpKTsKLSAgICAgICAgY29udGlu
dWF0aW9uLT5hYnNvbHV0ZVJlY3RzKHJlY3RzLCBhY2N1bXVsYXRlZE9mZnNldCAtIHRvTGF5b3V0
U2l6ZShsb2NhdGlvbigpICsKLSAgICAgICAgICAgICAgICBpbmxpbmVFbGVtZW50Q29udGludWF0
aW9uKCktPmNvbnRhaW5pbmdCbG9jaygpLT5sb2NhdGlvbigpKSk7CisgICAgICAgIHJlY3RzLmFw
cGVuZChzbmFwcGVkSW50UmVjdChhY2N1bXVsYXRlZE9mZnNldC54KCksIGFjY3VtdWxhdGVkT2Zm
c2V0LnkoKSAtIGNvbGxhcHNlZE1hcmdpbkJlZm9yZSgpLCB3aWR0aCgpLCBoZWlnaHQoKSArIGNv
bGxhcHNlZE1hcmdpbkJlZm9yZSgpICsgY29sbGFwc2VkTWFyZ2luQWZ0ZXIoKSkpOworICAgICAg
ICBjb250aW51YXRpb24tPmFic29sdXRlUmVjdHMocmVjdHMsIGFjY3VtdWxhdGVkT2Zmc2V0IC0g
dG9MYXlvdXRTaXplKGxvY2F0aW9uKCkgKyBpbmxpbmVDb250aW51YXRpb24oKS0+Y29udGFpbmlu
Z0Jsb2NrKCktPmxvY2F0aW9uKCkpKTsKICAgICB9IGVsc2UKICAgICAgICAgcmVjdHMuYXBwZW5k
KHNuYXBwZWRJbnRSZWN0KGFjY3VtdWxhdGVkT2Zmc2V0LCBzaXplKCkpKTsKIH0KQEAgLTMyNjQs
MTMgKzMyNTYsMTQgQEAgdm9pZCBSZW5kZXJCbG9jazo6YWRkRm9jdXNSaW5nUmVjdHMoVmVjdAog
ewogICAgIC8vIEZvciBibG9ja3MgaW5zaWRlIGlubGluZXMsIHdlIGluY2x1ZGUgbWFyZ2lucyBz
byB0aGF0IHdlIHJ1biByaWdodCB1cCB0byB0aGUgaW5saW5lIGJveGVzCiAgICAgLy8gYWJvdmUg
YW5kIGJlbG93IHVzICh0aHVzIGdldHRpbmcgbWVyZ2VkIHdpdGggdGhlbSB0byBmb3JtIGEgc2lu
Z2xlIGlycmVndWxhciBzaGFwZSkuCi0gICAgaWYgKGlubGluZUVsZW1lbnRDb250aW51YXRpb24o
KSkgeworICAgIGF1dG8qIGlubGluZUNvbnRpbnVhdGlvbiA9IHRoaXMtPmlubGluZUNvbnRpbnVh
dGlvbigpOworICAgIGlmIChpbmxpbmVDb250aW51YXRpb24pIHsKICAgICAgICAgLy8gRklYTUU6
IFRoaXMgY2hlY2sgcmVhbGx5IGlzbid0IGFjY3VyYXRlLiAKLSAgICAgICAgYm9vbCBuZXh0SW5s
aW5lSGFzTGluZUJveCA9IGlubGluZUVsZW1lbnRDb250aW51YXRpb24oKS0+Zmlyc3RMaW5lQm94
KCk7CisgICAgICAgIGJvb2wgbmV4dElubGluZUhhc0xpbmVCb3ggPSBpbmxpbmVDb250aW51YXRp
b24tPmZpcnN0TGluZUJveCgpOwogICAgICAgICAvLyBGSVhNRTogVGhpcyBpcyB3cm9uZy4gVGhl
IHByaW5jaXBhbCByZW5kZXJlciBtYXkgbm90IGJlIHRoZSBjb250aW51YXRpb24gcHJlY2VkaW5n
IHRoaXMgYmxvY2suCiAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGlzIHdyb25nIGZvciBibG9jay1m
bG93cyB0aGF0IGFyZSBob3Jpem9udGFsLgogICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDY3ODEKLSAgICAgICAgYm9vbCBwcmV2SW5saW5lSGFzTGlu
ZUJveCA9IGRvd25jYXN0PFJlbmRlcklubGluZT4oKmlubGluZUVsZW1lbnRDb250aW51YXRpb24o
KS0+ZWxlbWVudCgpLT5yZW5kZXJlcigpKS5maXJzdExpbmVCb3goKTsKKyAgICAgICAgYm9vbCBw
cmV2SW5saW5lSGFzTGluZUJveCA9IGRvd25jYXN0PFJlbmRlcklubGluZT4oKmlubGluZUNvbnRp
bnVhdGlvbi0+ZWxlbWVudCgpLT5yZW5kZXJlcigpKS5maXJzdExpbmVCb3goKTsKICAgICAgICAg
ZmxvYXQgdG9wTWFyZ2luID0gcHJldklubGluZUhhc0xpbmVCb3ggPyBjb2xsYXBzZWRNYXJnaW5C
ZWZvcmUoKSA6IExheW91dFVuaXQoKTsKICAgICAgICAgZmxvYXQgYm90dG9tTWFyZ2luID0gbmV4
dElubGluZUhhc0xpbmVCb3ggPyBjb2xsYXBzZWRNYXJnaW5BZnRlcigpIDogTGF5b3V0VW5pdCgp
OwogICAgICAgICBMYXlvdXRSZWN0IHJlY3QoYWRkaXRpb25hbE9mZnNldC54KCksIGFkZGl0aW9u
YWxPZmZzZXQueSgpIC0gdG9wTWFyZ2luLCB3aWR0aCgpLCBoZWlnaHQoKSArIHRvcE1hcmdpbiAr
IGJvdHRvbU1hcmdpbik7CkBAIC0zMjk3LDggKzMyOTAsOCBAQCB2b2lkIFJlbmRlckJsb2NrOjph
ZGRGb2N1c1JpbmdSZWN0cyhWZWN0CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAoaW5saW5l
RWxlbWVudENvbnRpbnVhdGlvbigpKQotICAgICAgICBpbmxpbmVFbGVtZW50Q29udGludWF0aW9u
KCktPmFkZEZvY3VzUmluZ1JlY3RzKHJlY3RzLCBmbG9vcmVkTGF5b3V0UG9pbnQoTGF5b3V0UG9p
bnQoYWRkaXRpb25hbE9mZnNldCArIGlubGluZUVsZW1lbnRDb250aW51YXRpb24oKS0+Y29udGFp
bmluZ0Jsb2NrKCktPmxvY2F0aW9uKCkgLSBsb2NhdGlvbigpKSksIHBhaW50Q29udGFpbmVyKTsK
KyAgICBpZiAoaW5saW5lQ29udGludWF0aW9uKQorICAgICAgICBpbmxpbmVDb250aW51YXRpb24t
PmFkZEZvY3VzUmluZ1JlY3RzKHJlY3RzLCBmbG9vcmVkTGF5b3V0UG9pbnQoTGF5b3V0UG9pbnQo
YWRkaXRpb25hbE9mZnNldCArIGlubGluZUNvbnRpbnVhdGlvbi0+Y29udGFpbmluZ0Jsb2NrKCkt
PmxvY2F0aW9uKCkgLSBsb2NhdGlvbigpKSksIHBhaW50Q29udGFpbmVyKTsKIH0KIAogUmVuZGVy
UHRyPFJlbmRlckJsb2NrPiBSZW5kZXJCbG9jazo6Y3JlYXRlQW5vbnltb3VzQmxvY2tXaXRoU3R5
bGVBbmREaXNwbGF5KERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxl
LCBFRGlzcGxheSBkaXNwbGF5KQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJsb2NrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJs
b2NrLmgJKHJldmlzaW9uIDIyNDU4MykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9jay5oCSh3b3JraW5nIGNvcHkpCkBAIC0xODksOCArMTg5LDYgQEAgcHVibGljOgogICAg
IHZvaWQgYWRkQ29udGludWF0aW9uV2l0aE91dGxpbmUoUmVuZGVySW5saW5lKik7CiAgICAgYm9v
bCBwYWludHNDb250aW51YXRpb25PdXRsaW5lKFJlbmRlcklubGluZSopOwogCi0gICAgV0VCQ09S
RV9FWFBPUlQgUmVuZGVySW5saW5lKiBpbmxpbmVFbGVtZW50Q29udGludWF0aW9uKCkgY29uc3Q7
Ci0KICAgICBzdGF0aWMgUmVuZGVyUHRyPFJlbmRlckJsb2NrPiBjcmVhdGVBbm9ueW1vdXNXaXRo
UGFyZW50UmVuZGVyZXJBbmREaXNwbGF5KGNvbnN0IFJlbmRlckJveCYgcGFyZW50LCBFRGlzcGxh
eSA9IEJMT0NLKTsKICAgICBSZW5kZXJQdHI8UmVuZGVyQmxvY2s+IGNyZWF0ZUFub255bW91c0Js
b2NrKEVEaXNwbGF5ID0gQkxPQ0spIGNvbnN0OwogICAgIHZvaWQgZHJvcEFub255bW91c0JveENo
aWxkKFJlbmRlckJsb2NrJiBjaGlsZCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAJKHJldmlzaW9uIDIyNDU4MykKKysrIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI3OSw3ICsyNzksNyBAQCBzdGF0aWMgTGF5b3V0U2l6ZSBhY2N1bXVsYXRlSW5G
bG93UG9zaXRpCiAgICAgaWYgKCFjaGlsZC0+aXNBbm9ueW1vdXNCbG9jaygpIHx8ICFjaGlsZC0+
aXNJbkZsb3dQb3NpdGlvbmVkKCkpCiAgICAgICAgIHJldHVybiBMYXlvdXRTaXplKCk7CiAgICAg
TGF5b3V0U2l6ZSBvZmZzZXQ7Ci0gICAgZm9yIChSZW5kZXJFbGVtZW50KiBwYXJlbnQgPSBkb3du
Y2FzdDxSZW5kZXJCbG9jaz4oKmNoaWxkKS5pbmxpbmVFbGVtZW50Q29udGludWF0aW9uKCk7IGlz
PFJlbmRlcklubGluZT4ocGFyZW50KTsgcGFyZW50ID0gcGFyZW50LT5wYXJlbnQoKSkgeworICAg
IGZvciAoUmVuZGVyRWxlbWVudCogcGFyZW50ID0gZG93bmNhc3Q8UmVuZGVyQmxvY2s+KCpjaGls
ZCkuaW5saW5lQ29udGludWF0aW9uKCk7IGlzPFJlbmRlcklubGluZT4ocGFyZW50KTsgcGFyZW50
ID0gcGFyZW50LT5wYXJlbnQoKSkgewogICAgICAgICBpZiAocGFyZW50LT5pc0luRmxvd1Bvc2l0
aW9uZWQoKSkKICAgICAgICAgICAgIG9mZnNldCArPSBkb3duY2FzdDxSZW5kZXJJbmxpbmU+KCpw
YXJlbnQpLm9mZnNldEZvckluRmxvd1Bvc2l0aW9uKCk7CiAgICAgfQpAQCAtMjUwNyw2ICsyNTA3
LDE5IEBAIFJlbmRlckJveE1vZGVsT2JqZWN0KiBSZW5kZXJCb3hNb2RlbE9iamUKICAgICByZXR1
cm4gY29udGludWF0aW9uQ2hhaW5Ob2RlLm5leHQtPnJlbmRlcmVyLmdldCgpOwogfQogCitSZW5k
ZXJJbmxpbmUqIFJlbmRlckJveE1vZGVsT2JqZWN0OjppbmxpbmVDb250aW51YXRpb24oKSBjb25z
dAoreworICAgIGlmICghaGFzQ29udGludWF0aW9uQ2hhaW5Ob2RlKCkpCisgICAgICAgIHJldHVy
biBudWxscHRyOworCisgICAgZm9yIChhdXRvKiBuZXh0ID0gY29udGludWF0aW9uQ2hhaW5Ob2Rl
TWFwKCkuZ2V0KHRoaXMpLT5uZXh0OyBuZXh0OyBuZXh0ID0gbmV4dC0+bmV4dCkgeworICAgICAg
ICBpZiAoaXM8UmVuZGVySW5saW5lPigqbmV4dC0+cmVuZGVyZXIpKQorICAgICAgICAgICAgcmV0
dXJuIGRvd25jYXN0PFJlbmRlcklubGluZT4obmV4dC0+cmVuZGVyZXIuZ2V0KCkpOworICAgIH0K
KyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworCiB2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0Ojpp
bnNlcnRJbnRvQ29udGludWF0aW9uQ2hhaW5BZnRlcihSZW5kZXJCb3hNb2RlbE9iamVjdCYgYWZ0
ZXJSZW5kZXJlcikKIHsKICAgICBBU1NFUlQoaXNDb250aW51YXRpb24oKSk7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaAkocmV2aXNp
b24gMjI0NTgzKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2Jq
ZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTIzNiw2ICsyMzYsNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBzdXNwZW5kQW5pbWF0aW9ucyhkb3VibGUgdGltZSA9IDApOwogCiAgICAgUmVuZGVyQm94TW9k
ZWxPYmplY3QqIGNvbnRpbnVhdGlvbigpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIFJlbmRl
cklubGluZSogaW5saW5lQ29udGludWF0aW9uKCkgY29uc3Q7CiAgICAgCiAgICAgdm9pZCBpbnNl
cnRJbnRvQ29udGludWF0aW9uQ2hhaW5BZnRlcihSZW5kZXJCb3hNb2RlbE9iamVjdCYpOwogICAg
IHZvaWQgcmVtb3ZlRnJvbUNvbnRpbnVhdGlvbkNoYWluKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcAkocmV2aXNpb24gMjI0NTgzKQorKysgU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEx
MywxOCArMTEzLDYgQEAgdm9pZCBSZW5kZXJJbmxpbmU6OndpbGxCZURlc3Ryb3llZCgpCiAgICAg
UmVuZGVyQm94TW9kZWxPYmplY3Q6OndpbGxCZURlc3Ryb3llZCgpOwogfQogCi1SZW5kZXJJbmxp
bmUqIFJlbmRlcklubGluZTo6aW5saW5lRWxlbWVudENvbnRpbnVhdGlvbigpIGNvbnN0Ci17Ci0g
ICAgUmVuZGVyQm94TW9kZWxPYmplY3QqIGNvbnRpbnVhdGlvbiA9IHRoaXMtPmNvbnRpbnVhdGlv
bigpOwotICAgIGlmICghY29udGludWF0aW9uKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQot
ICAgIGlmIChpczxSZW5kZXJJbmxpbmU+KCpjb250aW51YXRpb24pKQotICAgICAgICByZXR1cm4g
ZG93bmNhc3Q8UmVuZGVySW5saW5lPihjb250aW51YXRpb24pOwotCi0gICAgcmV0dXJuIGlzPFJl
bmRlckJsb2NrPigqY29udGludWF0aW9uKSA/IGRvd25jYXN0PFJlbmRlckJsb2NrPigqY29udGlu
dWF0aW9uKS5pbmxpbmVFbGVtZW50Q29udGludWF0aW9uKCkgOiBudWxscHRyOwotfQotCiB2b2lk
IFJlbmRlcklubGluZTo6dXBkYXRlRnJvbVN0eWxlKCkKIHsKICAgICBSZW5kZXJCb3hNb2RlbE9i
amVjdDo6dXBkYXRlRnJvbVN0eWxlKCk7CkBAIC0xNjAsNyArMTQ4LDcgQEAgc3RhdGljIHZvaWQg
dXBkYXRlU3R5bGVPZkFub255bW91c0Jsb2NrQwogICAgICAgICAKICAgICAgICAgLy8gSWYgd2Ug
YXJlIG5vIGxvbmdlciBpbi1mbG93IHBvc2l0aW9uZWQgYnV0IG91ciBkZXNjZW5kYW50IGJsb2Nr
KHMpIHN0aWxsIGhhdmUgYW4gaW4tZmxvdyBwb3NpdGlvbmVkIGFuY2VzdG9yIHRoZW4KICAgICAg
ICAgLy8gdGhlaXIgY29udGFpbmluZyBhbm9ueW1vdXMgYmxvY2sgc2hvdWxkIGtlZXAgaXRzIGlu
LWZsb3cgcG9zaXRpb25pbmcuIAotICAgICAgICBSZW5kZXJJbmxpbmUqIGNvbnRpbnVhdGlvbiA9
IGJsb2NrLmlubGluZUVsZW1lbnRDb250aW51YXRpb24oKTsKKyAgICAgICAgUmVuZGVySW5saW5l
KiBjb250aW51YXRpb24gPSBibG9jay5pbmxpbmVDb250aW51YXRpb24oKTsKICAgICAgICAgaWYg
KG9sZFN0eWxlLT5oYXNJbkZsb3dQb3NpdGlvbigpICYmIGluRmxvd1Bvc2l0aW9uZWRJbmxpbmVB
bmNlc3Rvcihjb250aW51YXRpb24pKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIGF1
dG8gYmxvY2tTdHlsZSA9IFJlbmRlclN0eWxlOjpjcmVhdGVBbm9ueW1vdXNTdHlsZVdpdGhEaXNw
bGF5KGJsb2NrLnN0eWxlKCksIEJMT0NLKTsKQEAgLTE5Miw5ICsxODAsOSBAQCB2b2lkIFJlbmRl
cklubGluZTo6c3R5bGVEaWRDaGFuZ2UoU3R5bGVECiAgICAgLy8gYW5kIGFmdGVyIHRoZSBibG9j
ayBzaGFyZSB0aGUgc2FtZSBzdHlsZSwgYnV0IHRoZSBibG9jayBkb2Vzbid0CiAgICAgLy8gbmVl
ZCB0byBwYXNzIGl0cyBzdHlsZSBvbiB0byBhbnlvbmUgZWxzZS4KICAgICBhdXRvJiBuZXdTdHls
ZSA9IHN0eWxlKCk7Ci0gICAgUmVuZGVySW5saW5lKiBjb250aW51YXRpb24gPSBpbmxpbmVFbGVt
ZW50Q29udGludWF0aW9uKCk7CisgICAgUmVuZGVySW5saW5lKiBjb250aW51YXRpb24gPSBpbmxp
bmVDb250aW51YXRpb24oKTsKICAgICBpZiAoY29udGludWF0aW9uICYmICFpc0NvbnRpbnVhdGlv
bigpKSB7Ci0gICAgICAgIGZvciAoUmVuZGVySW5saW5lKiBjdXJyQ29udCA9IGNvbnRpbnVhdGlv
bjsgY3VyckNvbnQ7IGN1cnJDb250ID0gY3VyckNvbnQtPmlubGluZUVsZW1lbnRDb250aW51YXRp
b24oKSkKKyAgICAgICAgZm9yIChSZW5kZXJJbmxpbmUqIGN1cnJDb250ID0gY29udGludWF0aW9u
OyBjdXJyQ29udDsgY3VyckNvbnQgPSBjdXJyQ29udC0+aW5saW5lQ29udGludWF0aW9uKCkpCiAg
ICAgICAgICAgICBjdXJyQ29udC0+c2V0U3R5bGUoUmVuZGVyU3R5bGU6OmNsb25lKG5ld1N0eWxl
KSk7CiAgICAgICAgIC8vIElmIGFuIGlubGluZSdzIGluLWZsb3cgcG9zaXRpb25pbmcgaGFzIGNo
YW5nZWQgYW5kIGl0IGlzIHBhcnQgb2YgYW4gYWN0aXZlIGNvbnRpbnVhdGlvbiBhcyBhIGRlc2Nl
bmRhbnQgb2YgYW4gYW5vbnltb3VzIGNvbnRhaW5pbmcgYmxvY2ssCiAgICAgICAgIC8vIHRoZW4g
YW55IGRlc2NlbmRhbnQgYmxvY2tzIHdpbGwgbmVlZCB0byBjaGFuZ2UgdGhlaXIgaW4tZmxvdyBw
b3NpdGlvbmluZyBhY2NvcmRpbmdseS4KQEAgLTI4Niw3ICsyNzQsNyBAQCBzdGF0aWMgUmVuZGVy
Qm94TW9kZWxPYmplY3QqIG5leHRDb250aW51CiB7CiAgICAgaWYgKGlzPFJlbmRlcklubGluZT4o
KnJlbmRlcmVyKSAmJiAhcmVuZGVyZXItPmlzUmVwbGFjZWQoKSkKICAgICAgICAgcmV0dXJuIGRv
d25jYXN0PFJlbmRlcklubGluZT4oKnJlbmRlcmVyKS5jb250aW51YXRpb24oKTsKLSAgICByZXR1
cm4gZG93bmNhc3Q8UmVuZGVyQmxvY2s+KCpyZW5kZXJlcikuaW5saW5lRWxlbWVudENvbnRpbnVh
dGlvbigpOworICAgIHJldHVybiBkb3duY2FzdDxSZW5kZXJCbG9jaz4oKnJlbmRlcmVyKS5pbmxp
bmVDb250aW51YXRpb24oKTsKIH0KIAogUmVuZGVyQm94TW9kZWxPYmplY3QqIFJlbmRlcklubGlu
ZTo6Y29udGludWF0aW9uQmVmb3JlKFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQpCkBAIC05Mjks
NyArOTE3LDcgQEAgVmlzaWJsZVBvc2l0aW9uIFJlbmRlcklubGluZTo6cG9zaXRpb25GbwogICAg
ICAgICBSZW5kZXJCbG9jayogY3VycmVudEJsb2NrID0gY29udGludWF0aW9uLT5pc0lubGluZSgp
ID8gY29udGludWF0aW9uLT5jb250YWluaW5nQmxvY2soKSA6IGRvd25jYXN0PFJlbmRlckJsb2Nr
Pihjb250aW51YXRpb24pOwogICAgICAgICBpZiAoY29udGludWF0aW9uLT5pc0lubGluZSgpIHx8
IGNvbnRpbnVhdGlvbi0+Zmlyc3RDaGlsZCgpKQogICAgICAgICAgICAgcmV0dXJuIGNvbnRpbnVh
dGlvbi0+cG9zaXRpb25Gb3JQb2ludChwYXJlbnRCbG9ja1BvaW50IC0gY3VycmVudEJsb2NrLT5s
b2NhdGlvbk9mZnNldCgpLCBmcmFnbWVudCk7Ci0gICAgICAgIGNvbnRpbnVhdGlvbiA9IGRvd25j
YXN0PFJlbmRlckJsb2NrPigqY29udGludWF0aW9uKS5pbmxpbmVFbGVtZW50Q29udGludWF0aW9u
KCk7CisgICAgICAgIGNvbnRpbnVhdGlvbiA9IGNvbnRpbnVhdGlvbi0+aW5saW5lQ29udGludWF0
aW9uKCk7CiAgICAgfQogICAgIAogICAgIHJldHVybiBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cG9z
aXRpb25Gb3JQb2ludChwb2ludCwgZnJhZ21lbnQpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlcklubGluZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJJbmxpbmUuaAkocmV2aXNpb24gMjI0NTgzKQorKysgU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlcklubGluZS5oCSh3b3JraW5nIGNvcHkpCkBAIC03OSw4ICs3OSw2IEBA
IHB1YmxpYzoKICAgICB2b2lkIGFic29sdXRlUXVhZHNGb3JTZWxlY3Rpb24oVmVjdG9yPEZsb2F0
UXVhZD4mIHF1YWRzKSBjb25zdCBvdmVycmlkZTsKICNlbmRpZgogCi0gICAgUmVuZGVySW5saW5l
KiBpbmxpbmVFbGVtZW50Q29udGludWF0aW9uKCkgY29uc3Q7Ci0KICAgICB2b2lkIHVwZGF0ZURy
YWdTdGF0ZShib29sIGRyYWdPbikgZmluYWw7CiAgICAgCiAgICAgTGF5b3V0U2l6ZSBvZmZzZXRG
b3JJbkZsb3dQb3NpdGlvbmVkSW5saW5lKGNvbnN0IFJlbmRlckJveCogY2hpbGQpIGNvbnN0OwpJ
bmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL2xpbmUvTGluZUlubGluZUhlYWRlcnMuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbGluZS9MaW5lSW5saW5lSGVh
ZGVycy5oCShyZXZpc2lvbiAyMjQ1ODMpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbGlu
ZS9MaW5lSW5saW5lSGVhZGVycy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw3ICszOCw3IEBAIGlu
bGluZSBib29sIGhhc0lubGluZURpcmVjdGlvbkJvcmRlcnNQYWQKICAgICBpZiAoc2hvdWxkQXBw
bHlTdGFydEJvcmRlclBhZGRpbmdPck1hcmdpbiAmJiAoZmxvdy5ib3JkZXJTdGFydCgpIHx8IGZs
b3cubWFyZ2luU3RhcnQoKSB8fCBmbG93LnBhZGRpbmdTdGFydCgpKSkKICAgICAgICAgcmV0dXJu
IHRydWU7CiAKLSAgICBib29sIHNob3VsZEFwcGx5RW5kQm9yZGVyUGFkZGluZ09yTWFyZ2luID0g
IWZsb3cucGFyZW50KCktPmlzQW5vbnltb3VzQmxvY2soKSB8fCBmbG93LmlzQ29udGludWF0aW9u
KCkgfHwgIWZsb3cuaW5saW5lRWxlbWVudENvbnRpbnVhdGlvbigpOworICAgIGJvb2wgc2hvdWxk
QXBwbHlFbmRCb3JkZXJQYWRkaW5nT3JNYXJnaW4gPSAhZmxvdy5wYXJlbnQoKS0+aXNBbm9ueW1v
dXNCbG9jaygpIHx8IGZsb3cuaXNDb250aW51YXRpb24oKSB8fCAhZmxvdy5pbmxpbmVDb250aW51
YXRpb24oKTsKICAgICByZXR1cm4gc2hvdWxkQXBwbHlFbmRCb3JkZXJQYWRkaW5nT3JNYXJnaW4g
JiYgKGZsb3cuYm9yZGVyRW5kKCkgfHwgZmxvdy5tYXJnaW5FbmQoKSB8fCBmbG93LnBhZGRpbmdF
bmQoKSk7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>326353</attachid>
            <date>2017-11-08 13:13:07 -0800</date>
            <delta_ts>2017-11-08 13:46:24 -0800</delta_ts>
            <desc>patch</desc>
            <filename>move-inlineElementContinuation-4.patch</filename>
            <type>text/plain</type>
            <size>18195</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyNDU5MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQwIEBACisyMDE3LTExLTA4ICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIGlubGluZUVsZW1lbnRD
b250aW51YXRpb24gZnVuY3Rpb24gdG8gUmVuZGVyQm94TW9kZWxPYmplY3QgYW5kIHJlbmFtZSB0
byBpbmxpbmVDb250aW51YXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE3OTQzNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFVuaWZ5IFJlbmRlcklubGluZTo6aW5saW5lRWxlbWVudENvbnRpbnVhdGlv
biBhbmQgUmVuZGVyQmxvY2s6OmlubGluZUVsZW1lbnRDb250aW51YXRpb24uCisgICAgICAgIEl0
IGlzIHNpbXBseSBhIGZ1bmN0aW9uIHRvIGZpbmQgdGhlIG5leHQgUmVuZGVySW5saW5lIGluIHRo
ZSBjb250aW51YXRpb24gY2hhaW4uCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bGFzdENoaWxkQ29uc2lk
ZXJpbmdDb250aW51YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6c3RhcnRPZkNvbnRpbnVhdGlv
bnMpOgorICAgICAgICAoV2ViQ29yZTo6ZW5kT2ZDb250aW51YXRpb25zKToKKyAgICAgICAgKFdl
YkNvcmU6OmNoaWxkQmVmb3JlQ29uc2lkZXJpbmdDb250aW51YXRpb25zKToKKyAgICAgICAgKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6Om5leHRTaWJsaW5nIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6Om5leHRDb250aW51YXRpb24pOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJCbG9jay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6cGFpbnRPYmpl
Y3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmFic29sdXRlUmVjdHMgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmFkZEZvY3VzUmluZ1JlY3RzKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjppbmxpbmVFbGVtZW50Q29udGludWF0aW9uIGNv
bnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suaDoKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6YWNjdW11bGF0ZUluRmxvd1Bvc2l0aW9uT2Zmc2V0cyk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJCb3hNb2RlbE9iamVjdDo6aW5saW5lQ29udGludWF0aW9uIGNvbnN0KToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaDoKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVySW5saW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnVwZGF0ZVN0eWxlT2ZBbm9ueW1v
dXNCbG9ja0NvbnRpbnVhdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVySW5saW5lOjpz
dHlsZURpZENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpuZXh0Q29udGludWF0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlcklubGluZTo6cG9zaXRpb25Gb3JQb2ludCk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJJbmxpbmU6OmlubGluZUVsZW1lbnRDb250aW51YXRpb24gY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbmxpbmUuaDoKKyAgICAgICAg
KiByZW5kZXJpbmcvbGluZS9MaW5lSW5saW5lSGVhZGVycy5oOgorICAgICAgICAoV2ViQ29yZTo6
aGFzSW5saW5lRGlyZWN0aW9uQm9yZGVyc1BhZGRpbmdPck1hcmdpbik6CisKIDIwMTctMTEtMDgg
IENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBTaW1wbGlmeSBTZXJ2
aWNlV29ya2VyQ29udGFpbmVyOjpqb2JSZXNvbHZlZFdpdGhSZWdpc3RyYXRpb24oKQpJbmRleDog
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3QuY3BwCShyZXZpc2lvbiAyMjQ1ODMpCisrKyBTb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xOTksMTggKzE5OSwxMSBAQCBzdGF0aWMgaW5saW5lIFJlbmRlck9iamVjdCogbGFzdENo
aWxkQ29uCiAgICAgICAgIHJldHVybiAmcmVuZGVyZXI7CiAKICAgICBSZW5kZXJPYmplY3QqIGxh
c3RDaGlsZCA9IGRvd25jYXN0PFJlbmRlckJveE1vZGVsT2JqZWN0PihyZW5kZXJlcikubGFzdENo
aWxkKCk7Ci0gICAgUmVuZGVyQm94TW9kZWxPYmplY3QqIHByZXZpb3VzOwogICAgIGZvciAoYXV0
byogY3VycmVudCA9ICZkb3duY2FzdDxSZW5kZXJCb3hNb2RlbE9iamVjdD4ocmVuZGVyZXIpOyBj
dXJyZW50OyApIHsKLSAgICAgICAgcHJldmlvdXMgPSBjdXJyZW50OwotCiAgICAgICAgIGlmIChS
ZW5kZXJPYmplY3QqIG5ld0xhc3RDaGlsZCA9IGN1cnJlbnQtPmxhc3RDaGlsZCgpKQogICAgICAg
ICAgICAgbGFzdENoaWxkID0gbmV3TGFzdENoaWxkOwogCi0gICAgICAgIGlmIChpczxSZW5kZXJJ
bmxpbmU+KCpjdXJyZW50KSkgewotICAgICAgICAgICAgY3VycmVudCA9IGRvd25jYXN0PFJlbmRl
cklubGluZT4oKmN1cnJlbnQpLmlubGluZUVsZW1lbnRDb250aW51YXRpb24oKTsKLSAgICAgICAg
ICAgIEFTU0VSVF9VTlVTRUQocHJldmlvdXMsIGN1cnJlbnQgfHwgIWRvd25jYXN0PFJlbmRlcklu
bGluZT4oKnByZXZpb3VzKS5jb250aW51YXRpb24oKSk7Ci0gICAgICAgIH0gZWxzZQotICAgICAg
ICAgICAgY3VycmVudCA9IGRvd25jYXN0PFJlbmRlckJsb2NrPigqY3VycmVudCkuaW5saW5lRWxl
bWVudENvbnRpbnVhdGlvbigpOworICAgICAgICBjdXJyZW50ID0gY3VycmVudC0+aW5saW5lQ29u
dGludWF0aW9uKCk7CiAgICAgfQogCiAgICAgcmV0dXJuIGxhc3RDaGlsZDsKQEAgLTI1NSw4ICsy
NDgsOCBAQCBzdGF0aWMgaW5saW5lIFJlbmRlcklubGluZSogc3RhcnRPZkNvbnRpCiAgICAgICAg
IHJldHVybiBkb3duY2FzdDxSZW5kZXJJbmxpbmU+KHJlbmRlcmVyLm5vZGUoKS0+cmVuZGVyZXIo
KSk7CiAKICAgICAvLyBCbG9ja3Mgd2l0aCBhIHByZXZpb3VzIGNvbnRpbnVhdGlvbiBhbHdheXMg
aGF2ZSBhIG5leHQgY29udGludWF0aW9uCi0gICAgaWYgKGlzPFJlbmRlckJsb2NrPihyZW5kZXJF
bGVtZW50KSAmJiBkb3duY2FzdDxSZW5kZXJCbG9jaz4ocmVuZGVyRWxlbWVudCkuaW5saW5lRWxl
bWVudENvbnRpbnVhdGlvbigpKQotICAgICAgICByZXR1cm4gZG93bmNhc3Q8UmVuZGVySW5saW5l
Pihkb3duY2FzdDxSZW5kZXJCbG9jaz4ocmVuZGVyRWxlbWVudCkuaW5saW5lRWxlbWVudENvbnRp
bnVhdGlvbigpLT5lbGVtZW50KCktPnJlbmRlcmVyKCkpOworICAgIGlmIChpczxSZW5kZXJCbG9j
az4ocmVuZGVyRWxlbWVudCkgJiYgZG93bmNhc3Q8UmVuZGVyQmxvY2s+KHJlbmRlckVsZW1lbnQp
LmlubGluZUNvbnRpbnVhdGlvbigpKQorICAgICAgICByZXR1cm4gZG93bmNhc3Q8UmVuZGVySW5s
aW5lPihkb3duY2FzdDxSZW5kZXJCbG9jaz4ocmVuZGVyRWxlbWVudCkuaW5saW5lQ29udGludWF0
aW9uKCktPmVsZW1lbnQoKS0+cmVuZGVyZXIoKSk7CiAKICAgICByZXR1cm4gbnVsbHB0cjsKIH0K
QEAgLTI2OSwxMSArMjYyLDcgQEAgc3RhdGljIGlubGluZSBSZW5kZXJPYmplY3QqIGVuZE9mQ29u
dGludQogICAgIGF1dG8qIHByZXZpb3VzID0gJmRvd25jYXN0PFJlbmRlckJveE1vZGVsT2JqZWN0
PihyZW5kZXJlcik7CiAgICAgZm9yIChhdXRvKiBjdXJyZW50ID0gcHJldmlvdXM7IGN1cnJlbnQ7
ICkgewogICAgICAgICBwcmV2aW91cyA9IGN1cnJlbnQ7Ci0gICAgICAgIGlmIChpczxSZW5kZXJJ
bmxpbmU+KCpjdXJyZW50KSkgewotICAgICAgICAgICAgY3VycmVudCA9IGRvd25jYXN0PFJlbmRl
cklubGluZT4oKmN1cnJlbnQpLmlubGluZUVsZW1lbnRDb250aW51YXRpb24oKTsKLSAgICAgICAg
ICAgIEFTU0VSVChjdXJyZW50IHx8ICFkb3duY2FzdDxSZW5kZXJJbmxpbmU+KCpwcmV2aW91cyku
Y29udGludWF0aW9uKCkpOwotICAgICAgICB9IGVsc2UgCi0gICAgICAgICAgICBjdXJyZW50ID0g
ZG93bmNhc3Q8UmVuZGVyQmxvY2s+KCpjdXJyZW50KS5pbmxpbmVFbGVtZW50Q29udGludWF0aW9u
KCk7CisgICAgICAgIGN1cnJlbnQgPSBjdXJyZW50LT5pbmxpbmVDb250aW51YXRpb24oKTsKICAg
ICB9CiAKICAgICByZXR1cm4gcHJldmlvdXM7CkBAIC0yOTMsMTMgKzI4MiwxMyBAQCBzdGF0aWMg
aW5saW5lIFJlbmRlck9iamVjdCogY2hpbGRCZWZvcmVDCiAgICAgICAgICAgICAgICAgY3VycmVu
dCA9IGN1cnJlbnQtPm5leHRTaWJsaW5nKCk7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAg
IGN1cnJlbnRDb250YWluZXIgPSBkb3duY2FzdDxSZW5kZXJJbmxpbmU+KCpjdXJyZW50Q29udGFp
bmVyKS5jb250aW51YXRpb24oKTsKKyAgICAgICAgICAgIGN1cnJlbnRDb250YWluZXIgPSBjdXJy
ZW50Q29udGFpbmVyLT5jb250aW51YXRpb24oKTsKICAgICAgICAgfSBlbHNlIGlmIChpczxSZW5k
ZXJCbG9jaz4oKmN1cnJlbnRDb250YWluZXIpKSB7CiAgICAgICAgICAgICBpZiAoY3VycmVudENv
bnRhaW5lciA9PSBjaGlsZCkKICAgICAgICAgICAgICAgICByZXR1cm4gcHJldmlvdXM7CiAKICAg
ICAgICAgICAgIHByZXZpb3VzID0gY3VycmVudENvbnRhaW5lcjsKLSAgICAgICAgICAgIGN1cnJl
bnRDb250YWluZXIgPSBkb3duY2FzdDxSZW5kZXJCbG9jaz4oKmN1cnJlbnRDb250YWluZXIpLmlu
bGluZUVsZW1lbnRDb250aW51YXRpb24oKTsKKyAgICAgICAgICAgIGN1cnJlbnRDb250YWluZXIg
PSBjdXJyZW50Q29udGFpbmVyLT5pbmxpbmVDb250aW51YXRpb24oKTsKICAgICAgICAgfQogICAg
IH0KIApAQCAtMzY4LDcgKzM1Nyw3IEBAIEFjY2Vzc2liaWxpdHlPYmplY3QqIEFjY2Vzc2liaWxp
dHlSZW5kZXIKICAgICAvLyBDYXNlIDE6IG5vZGUgaXMgYSBibG9jayBhbmQgaGFzIGFuIGlubGlu
ZSBjb250aW51YXRpb24uIE5leHQgc2libGluZyBpcyB0aGUgaW5saW5lIGNvbnRpbnVhdGlvbidz
CiAgICAgLy8gZmlyc3QgY2hpbGQuCiAgICAgUmVuZGVySW5saW5lKiBpbmxpbmVDb250aW51YXRp
b247Ci0gICAgaWYgKGlzPFJlbmRlckJsb2NrPigqbV9yZW5kZXJlcikgJiYgKGlubGluZUNvbnRp
bnVhdGlvbiA9IGRvd25jYXN0PFJlbmRlckJsb2NrPigqbV9yZW5kZXJlcikuaW5saW5lRWxlbWVu
dENvbnRpbnVhdGlvbigpKSkKKyAgICBpZiAoaXM8UmVuZGVyQmxvY2s+KCptX3JlbmRlcmVyKSAm
JiAoaW5saW5lQ29udGludWF0aW9uID0gZG93bmNhc3Q8UmVuZGVyQmxvY2s+KCptX3JlbmRlcmVy
KS5pbmxpbmVDb250aW51YXRpb24oKSkpCiAgICAgICAgIG5leHRTaWJsaW5nID0gZmlyc3RDaGls
ZENvbnNpZGVyaW5nQ29udGludWF0aW9uKCppbmxpbmVDb250aW51YXRpb24pOwogCiAgICAgLy8g
Q2FzZSAyOiBBbm9ueW1vdXMgYmxvY2sgcGFyZW50IG9mIHRoZSBzdGFydCBvZiBhIGNvbnRpbnVh
dGlvbiAtIHNraXAgYWxsIHRoZSB3YXkgdG8KQEAgLTQyNiw3ICs0MTUsNyBAQCBzdGF0aWMgUmVu
ZGVyQm94TW9kZWxPYmplY3QqIG5leHRDb250aW51CiAgICAgaWYgKGlzPFJlbmRlcklubGluZT4o
cmVuZGVyZXIpICYmICFyZW5kZXJlci5pc1JlcGxhY2VkKCkpCiAgICAgICAgIHJldHVybiBkb3du
Y2FzdDxSZW5kZXJJbmxpbmU+KHJlbmRlcmVyKS5jb250aW51YXRpb24oKTsKICAgICBpZiAoaXM8
UmVuZGVyQmxvY2s+KHJlbmRlcmVyKSkKLSAgICAgICAgcmV0dXJuIGRvd25jYXN0PFJlbmRlckJs
b2NrPihyZW5kZXJlcikuaW5saW5lRWxlbWVudENvbnRpbnVhdGlvbigpOworICAgICAgICByZXR1
cm4gZG93bmNhc3Q8UmVuZGVyQmxvY2s+KHJlbmRlcmVyKS5pbmxpbmVDb250aW51YXRpb24oKTsK
ICAgICByZXR1cm4gbnVsbHB0cjsKIH0KICAgICAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCbG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJsb2NrLmNwcAkocmV2aXNpb24gMjI0NTgzKQorKysgU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTY5Nyw3ICsxNjk3
LDcgQEAgdm9pZCBSZW5kZXJCbG9jazo6cGFpbnRPYmplY3QoUGFpbnRJbmZvJgogCiAgICAgLy8g
Ni4gcGFpbnQgY29udGludWF0aW9uIG91dGxpbmVzLgogICAgIGlmICgocGFpbnRQaGFzZSA9PSBQ
YWludFBoYXNlT3V0bGluZSB8fCBwYWludFBoYXNlID09IFBhaW50UGhhc2VDaGlsZE91dGxpbmVz
KSkgewotICAgICAgICBSZW5kZXJJbmxpbmUqIGlubGluZUNvbnQgPSBpbmxpbmVFbGVtZW50Q29u
dGludWF0aW9uKCk7CisgICAgICAgIFJlbmRlcklubGluZSogaW5saW5lQ29udCA9IGlubGluZUNv
bnRpbnVhdGlvbigpOwogICAgICAgICBpZiAoaW5saW5lQ29udCAmJiBpbmxpbmVDb250LT5oYXNP
dXRsaW5lKCkgJiYgaW5saW5lQ29udC0+c3R5bGUoKS52aXNpYmlsaXR5KCkgPT0gVklTSUJMRSkg
ewogICAgICAgICAgICAgUmVuZGVySW5saW5lKiBpbmxpbmVSZW5kZXJlciA9IGRvd25jYXN0PFJl
bmRlcklubGluZT4oaW5saW5lQ29udC0+ZWxlbWVudCgpLT5yZW5kZXJlcigpKTsKICAgICAgICAg
ICAgIFJlbmRlckJsb2NrKiBjb250YWluaW5nQmxvY2sgPSB0aGlzLT5jb250YWluaW5nQmxvY2so
KTsKQEAgLTE3MzAsMTIgKzE3MzAsNiBAQCB2b2lkIFJlbmRlckJsb2NrOjpwYWludE9iamVjdChQ
YWludEluZm8mCiAgICAgfQogfQogCi1SZW5kZXJJbmxpbmUqIFJlbmRlckJsb2NrOjppbmxpbmVF
bGVtZW50Q29udGludWF0aW9uKCkgY29uc3QKLXsgCi0gICAgUmVuZGVyQm94TW9kZWxPYmplY3Qq
IGNvbnRpbnVhdGlvbiA9IHRoaXMtPmNvbnRpbnVhdGlvbigpOwotICAgIHJldHVybiBpczxSZW5k
ZXJJbmxpbmU+KGNvbnRpbnVhdGlvbikgPyBkb3duY2FzdDxSZW5kZXJJbmxpbmU+KGNvbnRpbnVh
dGlvbikgOiBudWxscHRyOwotfQotCiBzdGF0aWMgQ29udGludWF0aW9uT3V0bGluZVRhYmxlTWFw
KiBjb250aW51YXRpb25PdXRsaW5lVGFibGUoKQogewogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxDb250aW51YXRpb25PdXRsaW5lVGFibGVNYXA+IHRhYmxlOwpAQCAtMzE2MywxMCArMzE1Nyw4
IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmFic29sdXRlUmVjdHMoVmVjdG9yPEkKICAgICBpZiAoYXV0
byogY29udGludWF0aW9uID0gdGhpcy0+Y29udGludWF0aW9uKCkpIHsKICAgICAgICAgLy8gRklY
TUU6IFRoaXMgaXMgd3JvbmcgZm9yIGJsb2NrLWZsb3dzIHRoYXQgYXJlIGhvcml6b250YWwuCiAg
ICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00Njc4MQot
ICAgICAgICByZWN0cy5hcHBlbmQoc25hcHBlZEludFJlY3QoYWNjdW11bGF0ZWRPZmZzZXQueCgp
LCBhY2N1bXVsYXRlZE9mZnNldC55KCkgLSBjb2xsYXBzZWRNYXJnaW5CZWZvcmUoKSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgoKSwgaGVpZ2h0KCkgKyBjb2xsYXBzZWRN
YXJnaW5CZWZvcmUoKSArIGNvbGxhcHNlZE1hcmdpbkFmdGVyKCkpKTsKLSAgICAgICAgY29udGlu
dWF0aW9uLT5hYnNvbHV0ZVJlY3RzKHJlY3RzLCBhY2N1bXVsYXRlZE9mZnNldCAtIHRvTGF5b3V0
U2l6ZShsb2NhdGlvbigpICsKLSAgICAgICAgICAgICAgICBpbmxpbmVFbGVtZW50Q29udGludWF0
aW9uKCktPmNvbnRhaW5pbmdCbG9jaygpLT5sb2NhdGlvbigpKSk7CisgICAgICAgIHJlY3RzLmFw
cGVuZChzbmFwcGVkSW50UmVjdChhY2N1bXVsYXRlZE9mZnNldC54KCksIGFjY3VtdWxhdGVkT2Zm
c2V0LnkoKSAtIGNvbGxhcHNlZE1hcmdpbkJlZm9yZSgpLCB3aWR0aCgpLCBoZWlnaHQoKSArIGNv
bGxhcHNlZE1hcmdpbkJlZm9yZSgpICsgY29sbGFwc2VkTWFyZ2luQWZ0ZXIoKSkpOworICAgICAg
ICBjb250aW51YXRpb24tPmFic29sdXRlUmVjdHMocmVjdHMsIGFjY3VtdWxhdGVkT2Zmc2V0IC0g
dG9MYXlvdXRTaXplKGxvY2F0aW9uKCkgKyBpbmxpbmVDb250aW51YXRpb24oKS0+Y29udGFpbmlu
Z0Jsb2NrKCktPmxvY2F0aW9uKCkpKTsKICAgICB9IGVsc2UKICAgICAgICAgcmVjdHMuYXBwZW5k
KHNuYXBwZWRJbnRSZWN0KGFjY3VtdWxhdGVkT2Zmc2V0LCBzaXplKCkpKTsKIH0KQEAgLTMyNjQs
MTMgKzMyNTYsMTQgQEAgdm9pZCBSZW5kZXJCbG9jazo6YWRkRm9jdXNSaW5nUmVjdHMoVmVjdAog
ewogICAgIC8vIEZvciBibG9ja3MgaW5zaWRlIGlubGluZXMsIHdlIGluY2x1ZGUgbWFyZ2lucyBz
byB0aGF0IHdlIHJ1biByaWdodCB1cCB0byB0aGUgaW5saW5lIGJveGVzCiAgICAgLy8gYWJvdmUg
YW5kIGJlbG93IHVzICh0aHVzIGdldHRpbmcgbWVyZ2VkIHdpdGggdGhlbSB0byBmb3JtIGEgc2lu
Z2xlIGlycmVndWxhciBzaGFwZSkuCi0gICAgaWYgKGlubGluZUVsZW1lbnRDb250aW51YXRpb24o
KSkgeworICAgIGF1dG8qIGlubGluZUNvbnRpbnVhdGlvbiA9IHRoaXMtPmlubGluZUNvbnRpbnVh
dGlvbigpOworICAgIGlmIChpbmxpbmVDb250aW51YXRpb24pIHsKICAgICAgICAgLy8gRklYTUU6
IFRoaXMgY2hlY2sgcmVhbGx5IGlzbid0IGFjY3VyYXRlLiAKLSAgICAgICAgYm9vbCBuZXh0SW5s
aW5lSGFzTGluZUJveCA9IGlubGluZUVsZW1lbnRDb250aW51YXRpb24oKS0+Zmlyc3RMaW5lQm94
KCk7CisgICAgICAgIGJvb2wgbmV4dElubGluZUhhc0xpbmVCb3ggPSBpbmxpbmVDb250aW51YXRp
b24tPmZpcnN0TGluZUJveCgpOwogICAgICAgICAvLyBGSVhNRTogVGhpcyBpcyB3cm9uZy4gVGhl
IHByaW5jaXBhbCByZW5kZXJlciBtYXkgbm90IGJlIHRoZSBjb250aW51YXRpb24gcHJlY2VkaW5n
IHRoaXMgYmxvY2suCiAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGlzIHdyb25nIGZvciBibG9jay1m
bG93cyB0aGF0IGFyZSBob3Jpem9udGFsLgogICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDY3ODEKLSAgICAgICAgYm9vbCBwcmV2SW5saW5lSGFzTGlu
ZUJveCA9IGRvd25jYXN0PFJlbmRlcklubGluZT4oKmlubGluZUVsZW1lbnRDb250aW51YXRpb24o
KS0+ZWxlbWVudCgpLT5yZW5kZXJlcigpKS5maXJzdExpbmVCb3goKTsKKyAgICAgICAgYm9vbCBw
cmV2SW5saW5lSGFzTGluZUJveCA9IGRvd25jYXN0PFJlbmRlcklubGluZT4oKmlubGluZUNvbnRp
bnVhdGlvbi0+ZWxlbWVudCgpLT5yZW5kZXJlcigpKS5maXJzdExpbmVCb3goKTsKICAgICAgICAg
ZmxvYXQgdG9wTWFyZ2luID0gcHJldklubGluZUhhc0xpbmVCb3ggPyBjb2xsYXBzZWRNYXJnaW5C
ZWZvcmUoKSA6IExheW91dFVuaXQoKTsKICAgICAgICAgZmxvYXQgYm90dG9tTWFyZ2luID0gbmV4
dElubGluZUhhc0xpbmVCb3ggPyBjb2xsYXBzZWRNYXJnaW5BZnRlcigpIDogTGF5b3V0VW5pdCgp
OwogICAgICAgICBMYXlvdXRSZWN0IHJlY3QoYWRkaXRpb25hbE9mZnNldC54KCksIGFkZGl0aW9u
YWxPZmZzZXQueSgpIC0gdG9wTWFyZ2luLCB3aWR0aCgpLCBoZWlnaHQoKSArIHRvcE1hcmdpbiAr
IGJvdHRvbU1hcmdpbik7CkBAIC0zMjk3LDggKzMyOTAsOCBAQCB2b2lkIFJlbmRlckJsb2NrOjph
ZGRGb2N1c1JpbmdSZWN0cyhWZWN0CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAoaW5saW5l
RWxlbWVudENvbnRpbnVhdGlvbigpKQotICAgICAgICBpbmxpbmVFbGVtZW50Q29udGludWF0aW9u
KCktPmFkZEZvY3VzUmluZ1JlY3RzKHJlY3RzLCBmbG9vcmVkTGF5b3V0UG9pbnQoTGF5b3V0UG9p
bnQoYWRkaXRpb25hbE9mZnNldCArIGlubGluZUVsZW1lbnRDb250aW51YXRpb24oKS0+Y29udGFp
bmluZ0Jsb2NrKCktPmxvY2F0aW9uKCkgLSBsb2NhdGlvbigpKSksIHBhaW50Q29udGFpbmVyKTsK
KyAgICBpZiAoaW5saW5lQ29udGludWF0aW9uKQorICAgICAgICBpbmxpbmVDb250aW51YXRpb24t
PmFkZEZvY3VzUmluZ1JlY3RzKHJlY3RzLCBmbG9vcmVkTGF5b3V0UG9pbnQoTGF5b3V0UG9pbnQo
YWRkaXRpb25hbE9mZnNldCArIGlubGluZUNvbnRpbnVhdGlvbi0+Y29udGFpbmluZ0Jsb2NrKCkt
PmxvY2F0aW9uKCkgLSBsb2NhdGlvbigpKSksIHBhaW50Q29udGFpbmVyKTsKIH0KIAogUmVuZGVy
UHRyPFJlbmRlckJsb2NrPiBSZW5kZXJCbG9jazo6Y3JlYXRlQW5vbnltb3VzQmxvY2tXaXRoU3R5
bGVBbmREaXNwbGF5KERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxl
LCBFRGlzcGxheSBkaXNwbGF5KQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJsb2NrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJs
b2NrLmgJKHJldmlzaW9uIDIyNDU4MykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9jay5oCSh3b3JraW5nIGNvcHkpCkBAIC0xODksOCArMTg5LDYgQEAgcHVibGljOgogICAg
IHZvaWQgYWRkQ29udGludWF0aW9uV2l0aE91dGxpbmUoUmVuZGVySW5saW5lKik7CiAgICAgYm9v
bCBwYWludHNDb250aW51YXRpb25PdXRsaW5lKFJlbmRlcklubGluZSopOwogCi0gICAgV0VCQ09S
RV9FWFBPUlQgUmVuZGVySW5saW5lKiBpbmxpbmVFbGVtZW50Q29udGludWF0aW9uKCkgY29uc3Q7
Ci0KICAgICBzdGF0aWMgUmVuZGVyUHRyPFJlbmRlckJsb2NrPiBjcmVhdGVBbm9ueW1vdXNXaXRo
UGFyZW50UmVuZGVyZXJBbmREaXNwbGF5KGNvbnN0IFJlbmRlckJveCYgcGFyZW50LCBFRGlzcGxh
eSA9IEJMT0NLKTsKICAgICBSZW5kZXJQdHI8UmVuZGVyQmxvY2s+IGNyZWF0ZUFub255bW91c0Js
b2NrKEVEaXNwbGF5ID0gQkxPQ0spIGNvbnN0OwogICAgIHZvaWQgZHJvcEFub255bW91c0JveENo
aWxkKFJlbmRlckJsb2NrJiBjaGlsZCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAJKHJldmlzaW9uIDIyNDU4MykKKysrIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI3OSw3ICsyNzksNyBAQCBzdGF0aWMgTGF5b3V0U2l6ZSBhY2N1bXVsYXRlSW5G
bG93UG9zaXRpCiAgICAgaWYgKCFjaGlsZC0+aXNBbm9ueW1vdXNCbG9jaygpIHx8ICFjaGlsZC0+
aXNJbkZsb3dQb3NpdGlvbmVkKCkpCiAgICAgICAgIHJldHVybiBMYXlvdXRTaXplKCk7CiAgICAg
TGF5b3V0U2l6ZSBvZmZzZXQ7Ci0gICAgZm9yIChSZW5kZXJFbGVtZW50KiBwYXJlbnQgPSBkb3du
Y2FzdDxSZW5kZXJCbG9jaz4oKmNoaWxkKS5pbmxpbmVFbGVtZW50Q29udGludWF0aW9uKCk7IGlz
PFJlbmRlcklubGluZT4ocGFyZW50KTsgcGFyZW50ID0gcGFyZW50LT5wYXJlbnQoKSkgeworICAg
IGZvciAoUmVuZGVyRWxlbWVudCogcGFyZW50ID0gZG93bmNhc3Q8UmVuZGVyQmxvY2s+KCpjaGls
ZCkuaW5saW5lQ29udGludWF0aW9uKCk7IGlzPFJlbmRlcklubGluZT4ocGFyZW50KTsgcGFyZW50
ID0gcGFyZW50LT5wYXJlbnQoKSkgewogICAgICAgICBpZiAocGFyZW50LT5pc0luRmxvd1Bvc2l0
aW9uZWQoKSkKICAgICAgICAgICAgIG9mZnNldCArPSBkb3duY2FzdDxSZW5kZXJJbmxpbmU+KCpw
YXJlbnQpLm9mZnNldEZvckluRmxvd1Bvc2l0aW9uKCk7CiAgICAgfQpAQCAtMjUwNyw2ICsyNTA3
LDE5IEBAIFJlbmRlckJveE1vZGVsT2JqZWN0KiBSZW5kZXJCb3hNb2RlbE9iamUKICAgICByZXR1
cm4gY29udGludWF0aW9uQ2hhaW5Ob2RlLm5leHQtPnJlbmRlcmVyLmdldCgpOwogfQogCitSZW5k
ZXJJbmxpbmUqIFJlbmRlckJveE1vZGVsT2JqZWN0OjppbmxpbmVDb250aW51YXRpb24oKSBjb25z
dAoreworICAgIGlmICghaGFzQ29udGludWF0aW9uQ2hhaW5Ob2RlKCkpCisgICAgICAgIHJldHVy
biBudWxscHRyOworCisgICAgZm9yIChhdXRvKiBuZXh0ID0gY29udGludWF0aW9uQ2hhaW5Ob2Rl
TWFwKCkuZ2V0KHRoaXMpLT5uZXh0OyBuZXh0OyBuZXh0ID0gbmV4dC0+bmV4dCkgeworICAgICAg
ICBpZiAoaXM8UmVuZGVySW5saW5lPigqbmV4dC0+cmVuZGVyZXIpKQorICAgICAgICAgICAgcmV0
dXJuIGRvd25jYXN0PFJlbmRlcklubGluZT4obmV4dC0+cmVuZGVyZXIuZ2V0KCkpOworICAgIH0K
KyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworCiB2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0Ojpp
bnNlcnRJbnRvQ29udGludWF0aW9uQ2hhaW5BZnRlcihSZW5kZXJCb3hNb2RlbE9iamVjdCYgYWZ0
ZXJSZW5kZXJlcikKIHsKICAgICBBU1NFUlQoaXNDb250aW51YXRpb24oKSk7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaAkocmV2aXNp
b24gMjI0NTgzKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2Jq
ZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTIzNiw2ICsyMzYsNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBzdXNwZW5kQW5pbWF0aW9ucyhkb3VibGUgdGltZSA9IDApOwogCiAgICAgUmVuZGVyQm94TW9k
ZWxPYmplY3QqIGNvbnRpbnVhdGlvbigpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIFJlbmRl
cklubGluZSogaW5saW5lQ29udGludWF0aW9uKCkgY29uc3Q7CiAgICAgCiAgICAgdm9pZCBpbnNl
cnRJbnRvQ29udGludWF0aW9uQ2hhaW5BZnRlcihSZW5kZXJCb3hNb2RlbE9iamVjdCYpOwogICAg
IHZvaWQgcmVtb3ZlRnJvbUNvbnRpbnVhdGlvbkNoYWluKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcAkocmV2aXNpb24gMjI0NTgzKQorKysgU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEx
MywxOCArMTEzLDYgQEAgdm9pZCBSZW5kZXJJbmxpbmU6OndpbGxCZURlc3Ryb3llZCgpCiAgICAg
UmVuZGVyQm94TW9kZWxPYmplY3Q6OndpbGxCZURlc3Ryb3llZCgpOwogfQogCi1SZW5kZXJJbmxp
bmUqIFJlbmRlcklubGluZTo6aW5saW5lRWxlbWVudENvbnRpbnVhdGlvbigpIGNvbnN0Ci17Ci0g
ICAgUmVuZGVyQm94TW9kZWxPYmplY3QqIGNvbnRpbnVhdGlvbiA9IHRoaXMtPmNvbnRpbnVhdGlv
bigpOwotICAgIGlmICghY29udGludWF0aW9uKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQot
ICAgIGlmIChpczxSZW5kZXJJbmxpbmU+KCpjb250aW51YXRpb24pKQotICAgICAgICByZXR1cm4g
ZG93bmNhc3Q8UmVuZGVySW5saW5lPihjb250aW51YXRpb24pOwotCi0gICAgcmV0dXJuIGlzPFJl
bmRlckJsb2NrPigqY29udGludWF0aW9uKSA/IGRvd25jYXN0PFJlbmRlckJsb2NrPigqY29udGlu
dWF0aW9uKS5pbmxpbmVFbGVtZW50Q29udGludWF0aW9uKCkgOiBudWxscHRyOwotfQotCiB2b2lk
IFJlbmRlcklubGluZTo6dXBkYXRlRnJvbVN0eWxlKCkKIHsKICAgICBSZW5kZXJCb3hNb2RlbE9i
amVjdDo6dXBkYXRlRnJvbVN0eWxlKCk7CkBAIC0xNjAsNyArMTQ4LDcgQEAgc3RhdGljIHZvaWQg
dXBkYXRlU3R5bGVPZkFub255bW91c0Jsb2NrQwogICAgICAgICAKICAgICAgICAgLy8gSWYgd2Ug
YXJlIG5vIGxvbmdlciBpbi1mbG93IHBvc2l0aW9uZWQgYnV0IG91ciBkZXNjZW5kYW50IGJsb2Nr
KHMpIHN0aWxsIGhhdmUgYW4gaW4tZmxvdyBwb3NpdGlvbmVkIGFuY2VzdG9yIHRoZW4KICAgICAg
ICAgLy8gdGhlaXIgY29udGFpbmluZyBhbm9ueW1vdXMgYmxvY2sgc2hvdWxkIGtlZXAgaXRzIGlu
LWZsb3cgcG9zaXRpb25pbmcuIAotICAgICAgICBSZW5kZXJJbmxpbmUqIGNvbnRpbnVhdGlvbiA9
IGJsb2NrLmlubGluZUVsZW1lbnRDb250aW51YXRpb24oKTsKKyAgICAgICAgUmVuZGVySW5saW5l
KiBjb250aW51YXRpb24gPSBibG9jay5pbmxpbmVDb250aW51YXRpb24oKTsKICAgICAgICAgaWYg
KG9sZFN0eWxlLT5oYXNJbkZsb3dQb3NpdGlvbigpICYmIGluRmxvd1Bvc2l0aW9uZWRJbmxpbmVB
bmNlc3Rvcihjb250aW51YXRpb24pKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIGF1
dG8gYmxvY2tTdHlsZSA9IFJlbmRlclN0eWxlOjpjcmVhdGVBbm9ueW1vdXNTdHlsZVdpdGhEaXNw
bGF5KGJsb2NrLnN0eWxlKCksIEJMT0NLKTsKQEAgLTE5Miw5ICsxODAsOSBAQCB2b2lkIFJlbmRl
cklubGluZTo6c3R5bGVEaWRDaGFuZ2UoU3R5bGVECiAgICAgLy8gYW5kIGFmdGVyIHRoZSBibG9j
ayBzaGFyZSB0aGUgc2FtZSBzdHlsZSwgYnV0IHRoZSBibG9jayBkb2Vzbid0CiAgICAgLy8gbmVl
ZCB0byBwYXNzIGl0cyBzdHlsZSBvbiB0byBhbnlvbmUgZWxzZS4KICAgICBhdXRvJiBuZXdTdHls
ZSA9IHN0eWxlKCk7Ci0gICAgUmVuZGVySW5saW5lKiBjb250aW51YXRpb24gPSBpbmxpbmVFbGVt
ZW50Q29udGludWF0aW9uKCk7CisgICAgUmVuZGVySW5saW5lKiBjb250aW51YXRpb24gPSBpbmxp
bmVDb250aW51YXRpb24oKTsKICAgICBpZiAoY29udGludWF0aW9uICYmICFpc0NvbnRpbnVhdGlv
bigpKSB7Ci0gICAgICAgIGZvciAoUmVuZGVySW5saW5lKiBjdXJyQ29udCA9IGNvbnRpbnVhdGlv
bjsgY3VyckNvbnQ7IGN1cnJDb250ID0gY3VyckNvbnQtPmlubGluZUVsZW1lbnRDb250aW51YXRp
b24oKSkKKyAgICAgICAgZm9yIChSZW5kZXJJbmxpbmUqIGN1cnJDb250ID0gY29udGludWF0aW9u
OyBjdXJyQ29udDsgY3VyckNvbnQgPSBjdXJyQ29udC0+aW5saW5lQ29udGludWF0aW9uKCkpCiAg
ICAgICAgICAgICBjdXJyQ29udC0+c2V0U3R5bGUoUmVuZGVyU3R5bGU6OmNsb25lKG5ld1N0eWxl
KSk7CiAgICAgICAgIC8vIElmIGFuIGlubGluZSdzIGluLWZsb3cgcG9zaXRpb25pbmcgaGFzIGNo
YW5nZWQgYW5kIGl0IGlzIHBhcnQgb2YgYW4gYWN0aXZlIGNvbnRpbnVhdGlvbiBhcyBhIGRlc2Nl
bmRhbnQgb2YgYW4gYW5vbnltb3VzIGNvbnRhaW5pbmcgYmxvY2ssCiAgICAgICAgIC8vIHRoZW4g
YW55IGRlc2NlbmRhbnQgYmxvY2tzIHdpbGwgbmVlZCB0byBjaGFuZ2UgdGhlaXIgaW4tZmxvdyBw
b3NpdGlvbmluZyBhY2NvcmRpbmdseS4KQEAgLTI4Niw3ICsyNzQsNyBAQCBzdGF0aWMgUmVuZGVy
Qm94TW9kZWxPYmplY3QqIG5leHRDb250aW51CiB7CiAgICAgaWYgKGlzPFJlbmRlcklubGluZT4o
KnJlbmRlcmVyKSAmJiAhcmVuZGVyZXItPmlzUmVwbGFjZWQoKSkKICAgICAgICAgcmV0dXJuIGRv
d25jYXN0PFJlbmRlcklubGluZT4oKnJlbmRlcmVyKS5jb250aW51YXRpb24oKTsKLSAgICByZXR1
cm4gZG93bmNhc3Q8UmVuZGVyQmxvY2s+KCpyZW5kZXJlcikuaW5saW5lRWxlbWVudENvbnRpbnVh
dGlvbigpOworICAgIHJldHVybiBkb3duY2FzdDxSZW5kZXJCbG9jaz4oKnJlbmRlcmVyKS5pbmxp
bmVDb250aW51YXRpb24oKTsKIH0KIAogUmVuZGVyQm94TW9kZWxPYmplY3QqIFJlbmRlcklubGlu
ZTo6Y29udGludWF0aW9uQmVmb3JlKFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQpCkBAIC05Mjks
NyArOTE3LDcgQEAgVmlzaWJsZVBvc2l0aW9uIFJlbmRlcklubGluZTo6cG9zaXRpb25GbwogICAg
ICAgICBSZW5kZXJCbG9jayogY3VycmVudEJsb2NrID0gY29udGludWF0aW9uLT5pc0lubGluZSgp
ID8gY29udGludWF0aW9uLT5jb250YWluaW5nQmxvY2soKSA6IGRvd25jYXN0PFJlbmRlckJsb2Nr
Pihjb250aW51YXRpb24pOwogICAgICAgICBpZiAoY29udGludWF0aW9uLT5pc0lubGluZSgpIHx8
IGNvbnRpbnVhdGlvbi0+Zmlyc3RDaGlsZCgpKQogICAgICAgICAgICAgcmV0dXJuIGNvbnRpbnVh
dGlvbi0+cG9zaXRpb25Gb3JQb2ludChwYXJlbnRCbG9ja1BvaW50IC0gY3VycmVudEJsb2NrLT5s
b2NhdGlvbk9mZnNldCgpLCBmcmFnbWVudCk7Ci0gICAgICAgIGNvbnRpbnVhdGlvbiA9IGRvd25j
YXN0PFJlbmRlckJsb2NrPigqY29udGludWF0aW9uKS5pbmxpbmVFbGVtZW50Q29udGludWF0aW9u
KCk7CisgICAgICAgIGNvbnRpbnVhdGlvbiA9IGNvbnRpbnVhdGlvbi0+aW5saW5lQ29udGludWF0
aW9uKCk7CiAgICAgfQogICAgIAogICAgIHJldHVybiBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cG9z
aXRpb25Gb3JQb2ludChwb2ludCwgZnJhZ21lbnQpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlcklubGluZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJJbmxpbmUuaAkocmV2aXNpb24gMjI0NTgzKQorKysgU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlcklubGluZS5oCSh3b3JraW5nIGNvcHkpCkBAIC03OSw4ICs3OSw2IEBA
IHB1YmxpYzoKICAgICB2b2lkIGFic29sdXRlUXVhZHNGb3JTZWxlY3Rpb24oVmVjdG9yPEZsb2F0
UXVhZD4mIHF1YWRzKSBjb25zdCBvdmVycmlkZTsKICNlbmRpZgogCi0gICAgUmVuZGVySW5saW5l
KiBpbmxpbmVFbGVtZW50Q29udGludWF0aW9uKCkgY29uc3Q7Ci0KICAgICB2b2lkIHVwZGF0ZURy
YWdTdGF0ZShib29sIGRyYWdPbikgZmluYWw7CiAgICAgCiAgICAgTGF5b3V0U2l6ZSBvZmZzZXRG
b3JJbkZsb3dQb3NpdGlvbmVkSW5saW5lKGNvbnN0IFJlbmRlckJveCogY2hpbGQpIGNvbnN0OwpJ
bmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL2xpbmUvTGluZUlubGluZUhlYWRlcnMuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbGluZS9MaW5lSW5saW5lSGVh
ZGVycy5oCShyZXZpc2lvbiAyMjQ1ODMpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbGlu
ZS9MaW5lSW5saW5lSGVhZGVycy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw3ICszOCw3IEBAIGlu
bGluZSBib29sIGhhc0lubGluZURpcmVjdGlvbkJvcmRlcnNQYWQKICAgICBpZiAoc2hvdWxkQXBw
bHlTdGFydEJvcmRlclBhZGRpbmdPck1hcmdpbiAmJiAoZmxvdy5ib3JkZXJTdGFydCgpIHx8IGZs
b3cubWFyZ2luU3RhcnQoKSB8fCBmbG93LnBhZGRpbmdTdGFydCgpKSkKICAgICAgICAgcmV0dXJu
IHRydWU7CiAKLSAgICBib29sIHNob3VsZEFwcGx5RW5kQm9yZGVyUGFkZGluZ09yTWFyZ2luID0g
IWZsb3cucGFyZW50KCktPmlzQW5vbnltb3VzQmxvY2soKSB8fCBmbG93LmlzQ29udGludWF0aW9u
KCkgfHwgIWZsb3cuaW5saW5lRWxlbWVudENvbnRpbnVhdGlvbigpOworICAgIGJvb2wgc2hvdWxk
QXBwbHlFbmRCb3JkZXJQYWRkaW5nT3JNYXJnaW4gPSAhZmxvdy5wYXJlbnQoKS0+aXNBbm9ueW1v
dXNCbG9jaygpIHx8IGZsb3cuaXNDb250aW51YXRpb24oKSB8fCAhZmxvdy5pbmxpbmVDb250aW51
YXRpb24oKTsKICAgICByZXR1cm4gc2hvdWxkQXBwbHlFbmRCb3JkZXJQYWRkaW5nT3JNYXJnaW4g
JiYgKGZsb3cuYm9yZGVyRW5kKCkgfHwgZmxvdy5tYXJnaW5FbmQoKSB8fCBmbG93LnBhZGRpbmdF
bmQoKSk7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>326362</attachid>
            <date>2017-11-08 13:46:24 -0800</date>
            <delta_ts>2017-11-08 15:13:45 -0800</delta_ts>
            <desc>patch</desc>
            <filename>move-inlineElementContinuation-5.patch</filename>
            <type>text/plain</type>
            <size>21379</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyNDU5MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQwIEBACisyMDE3LTExLTA4ICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIGlubGluZUVsZW1lbnRD
b250aW51YXRpb24gZnVuY3Rpb24gdG8gUmVuZGVyQm94TW9kZWxPYmplY3QgYW5kIHJlbmFtZSB0
byBpbmxpbmVDb250aW51YXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE3OTQzNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFVuaWZ5IFJlbmRlcklubGluZTo6aW5saW5lRWxlbWVudENvbnRpbnVhdGlv
biBhbmQgUmVuZGVyQmxvY2s6OmlubGluZUVsZW1lbnRDb250aW51YXRpb24uCisgICAgICAgIEl0
IGlzIHNpbXBseSBhIGZ1bmN0aW9uIHRvIGZpbmQgdGhlIG5leHQgUmVuZGVySW5saW5lIGluIHRo
ZSBjb250aW51YXRpb24gY2hhaW4uCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bGFzdENoaWxkQ29uc2lk
ZXJpbmdDb250aW51YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6c3RhcnRPZkNvbnRpbnVhdGlv
bnMpOgorICAgICAgICAoV2ViQ29yZTo6ZW5kT2ZDb250aW51YXRpb25zKToKKyAgICAgICAgKFdl
YkNvcmU6OmNoaWxkQmVmb3JlQ29uc2lkZXJpbmdDb250aW51YXRpb25zKToKKyAgICAgICAgKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6Om5leHRTaWJsaW5nIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6Om5leHRDb250aW51YXRpb24pOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJCbG9jay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6cGFpbnRPYmpl
Y3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmFic29sdXRlUmVjdHMgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmFkZEZvY3VzUmluZ1JlY3RzKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjppbmxpbmVFbGVtZW50Q29udGludWF0aW9uIGNv
bnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suaDoKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6YWNjdW11bGF0ZUluRmxvd1Bvc2l0aW9uT2Zmc2V0cyk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJCb3hNb2RlbE9iamVjdDo6aW5saW5lQ29udGludWF0aW9uIGNvbnN0KToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaDoKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVySW5saW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnVwZGF0ZVN0eWxlT2ZBbm9ueW1v
dXNCbG9ja0NvbnRpbnVhdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVySW5saW5lOjpz
dHlsZURpZENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpuZXh0Q29udGludWF0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlcklubGluZTo6cG9zaXRpb25Gb3JQb2ludCk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJJbmxpbmU6OmlubGluZUVsZW1lbnRDb250aW51YXRpb24gY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbmxpbmUuaDoKKyAgICAgICAg
KiByZW5kZXJpbmcvbGluZS9MaW5lSW5saW5lSGVhZGVycy5oOgorICAgICAgICAoV2ViQ29yZTo6
aGFzSW5saW5lRGlyZWN0aW9uQm9yZGVyc1BhZGRpbmdPck1hcmdpbik6CisKIDIwMTctMTEtMDgg
IENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBTaW1wbGlmeSBTZXJ2
aWNlV29ya2VyQ29udGFpbmVyOjpqb2JSZXNvbHZlZFdpdGhSZWdpc3RyYXRpb24oKQpJbmRleDog
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3QuY3BwCShyZXZpc2lvbiAyMjQ1ODMpCisrKyBTb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xOTksMTggKzE5OSwxMSBAQCBzdGF0aWMgaW5saW5lIFJlbmRlck9iamVjdCogbGFzdENo
aWxkQ29uCiAgICAgICAgIHJldHVybiAmcmVuZGVyZXI7CiAKICAgICBSZW5kZXJPYmplY3QqIGxh
c3RDaGlsZCA9IGRvd25jYXN0PFJlbmRlckJveE1vZGVsT2JqZWN0PihyZW5kZXJlcikubGFzdENo
aWxkKCk7Ci0gICAgUmVuZGVyQm94TW9kZWxPYmplY3QqIHByZXZpb3VzOwogICAgIGZvciAoYXV0
byogY3VycmVudCA9ICZkb3duY2FzdDxSZW5kZXJCb3hNb2RlbE9iamVjdD4ocmVuZGVyZXIpOyBj
dXJyZW50OyApIHsKLSAgICAgICAgcHJldmlvdXMgPSBjdXJyZW50OwotCiAgICAgICAgIGlmIChS
ZW5kZXJPYmplY3QqIG5ld0xhc3RDaGlsZCA9IGN1cnJlbnQtPmxhc3RDaGlsZCgpKQogICAgICAg
ICAgICAgbGFzdENoaWxkID0gbmV3TGFzdENoaWxkOwogCi0gICAgICAgIGlmIChpczxSZW5kZXJJ
bmxpbmU+KCpjdXJyZW50KSkgewotICAgICAgICAgICAgY3VycmVudCA9IGRvd25jYXN0PFJlbmRl
cklubGluZT4oKmN1cnJlbnQpLmlubGluZUVsZW1lbnRDb250aW51YXRpb24oKTsKLSAgICAgICAg
ICAgIEFTU0VSVF9VTlVTRUQocHJldmlvdXMsIGN1cnJlbnQgfHwgIWRvd25jYXN0PFJlbmRlcklu
bGluZT4oKnByZXZpb3VzKS5jb250aW51YXRpb24oKSk7Ci0gICAgICAgIH0gZWxzZQotICAgICAg
ICAgICAgY3VycmVudCA9IGRvd25jYXN0PFJlbmRlckJsb2NrPigqY3VycmVudCkuaW5saW5lRWxl
bWVudENvbnRpbnVhdGlvbigpOworICAgICAgICBjdXJyZW50ID0gY3VycmVudC0+aW5saW5lQ29u
dGludWF0aW9uKCk7CiAgICAgfQogCiAgICAgcmV0dXJuIGxhc3RDaGlsZDsKQEAgLTI1NSw4ICsy
NDgsOCBAQCBzdGF0aWMgaW5saW5lIFJlbmRlcklubGluZSogc3RhcnRPZkNvbnRpCiAgICAgICAg
IHJldHVybiBkb3duY2FzdDxSZW5kZXJJbmxpbmU+KHJlbmRlcmVyLm5vZGUoKS0+cmVuZGVyZXIo
KSk7CiAKICAgICAvLyBCbG9ja3Mgd2l0aCBhIHByZXZpb3VzIGNvbnRpbnVhdGlvbiBhbHdheXMg
aGF2ZSBhIG5leHQgY29udGludWF0aW9uCi0gICAgaWYgKGlzPFJlbmRlckJsb2NrPihyZW5kZXJF
bGVtZW50KSAmJiBkb3duY2FzdDxSZW5kZXJCbG9jaz4ocmVuZGVyRWxlbWVudCkuaW5saW5lRWxl
bWVudENvbnRpbnVhdGlvbigpKQotICAgICAgICByZXR1cm4gZG93bmNhc3Q8UmVuZGVySW5saW5l
Pihkb3duY2FzdDxSZW5kZXJCbG9jaz4ocmVuZGVyRWxlbWVudCkuaW5saW5lRWxlbWVudENvbnRp
bnVhdGlvbigpLT5lbGVtZW50KCktPnJlbmRlcmVyKCkpOworICAgIGlmIChpczxSZW5kZXJCbG9j
az4ocmVuZGVyRWxlbWVudCkgJiYgZG93bmNhc3Q8UmVuZGVyQmxvY2s+KHJlbmRlckVsZW1lbnQp
LmlubGluZUNvbnRpbnVhdGlvbigpKQorICAgICAgICByZXR1cm4gZG93bmNhc3Q8UmVuZGVySW5s
aW5lPihkb3duY2FzdDxSZW5kZXJCbG9jaz4ocmVuZGVyRWxlbWVudCkuaW5saW5lQ29udGludWF0
aW9uKCktPmVsZW1lbnQoKS0+cmVuZGVyZXIoKSk7CiAKICAgICByZXR1cm4gbnVsbHB0cjsKIH0K
QEAgLTI2OSwxMSArMjYyLDcgQEAgc3RhdGljIGlubGluZSBSZW5kZXJPYmplY3QqIGVuZE9mQ29u
dGludQogICAgIGF1dG8qIHByZXZpb3VzID0gJmRvd25jYXN0PFJlbmRlckJveE1vZGVsT2JqZWN0
PihyZW5kZXJlcik7CiAgICAgZm9yIChhdXRvKiBjdXJyZW50ID0gcHJldmlvdXM7IGN1cnJlbnQ7
ICkgewogICAgICAgICBwcmV2aW91cyA9IGN1cnJlbnQ7Ci0gICAgICAgIGlmIChpczxSZW5kZXJJ
bmxpbmU+KCpjdXJyZW50KSkgewotICAgICAgICAgICAgY3VycmVudCA9IGRvd25jYXN0PFJlbmRl
cklubGluZT4oKmN1cnJlbnQpLmlubGluZUVsZW1lbnRDb250aW51YXRpb24oKTsKLSAgICAgICAg
ICAgIEFTU0VSVChjdXJyZW50IHx8ICFkb3duY2FzdDxSZW5kZXJJbmxpbmU+KCpwcmV2aW91cyku
Y29udGludWF0aW9uKCkpOwotICAgICAgICB9IGVsc2UgCi0gICAgICAgICAgICBjdXJyZW50ID0g
ZG93bmNhc3Q8UmVuZGVyQmxvY2s+KCpjdXJyZW50KS5pbmxpbmVFbGVtZW50Q29udGludWF0aW9u
KCk7CisgICAgICAgIGN1cnJlbnQgPSBjdXJyZW50LT5pbmxpbmVDb250aW51YXRpb24oKTsKICAg
ICB9CiAKICAgICByZXR1cm4gcHJldmlvdXM7CkBAIC0yOTMsMTMgKzI4MiwxMyBAQCBzdGF0aWMg
aW5saW5lIFJlbmRlck9iamVjdCogY2hpbGRCZWZvcmVDCiAgICAgICAgICAgICAgICAgY3VycmVu
dCA9IGN1cnJlbnQtPm5leHRTaWJsaW5nKCk7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAg
IGN1cnJlbnRDb250YWluZXIgPSBkb3duY2FzdDxSZW5kZXJJbmxpbmU+KCpjdXJyZW50Q29udGFp
bmVyKS5jb250aW51YXRpb24oKTsKKyAgICAgICAgICAgIGN1cnJlbnRDb250YWluZXIgPSBjdXJy
ZW50Q29udGFpbmVyLT5jb250aW51YXRpb24oKTsKICAgICAgICAgfSBlbHNlIGlmIChpczxSZW5k
ZXJCbG9jaz4oKmN1cnJlbnRDb250YWluZXIpKSB7CiAgICAgICAgICAgICBpZiAoY3VycmVudENv
bnRhaW5lciA9PSBjaGlsZCkKICAgICAgICAgICAgICAgICByZXR1cm4gcHJldmlvdXM7CiAKICAg
ICAgICAgICAgIHByZXZpb3VzID0gY3VycmVudENvbnRhaW5lcjsKLSAgICAgICAgICAgIGN1cnJl
bnRDb250YWluZXIgPSBkb3duY2FzdDxSZW5kZXJCbG9jaz4oKmN1cnJlbnRDb250YWluZXIpLmlu
bGluZUVsZW1lbnRDb250aW51YXRpb24oKTsKKyAgICAgICAgICAgIGN1cnJlbnRDb250YWluZXIg
PSBjdXJyZW50Q29udGFpbmVyLT5pbmxpbmVDb250aW51YXRpb24oKTsKICAgICAgICAgfQogICAg
IH0KIApAQCAtMzY4LDcgKzM1Nyw3IEBAIEFjY2Vzc2liaWxpdHlPYmplY3QqIEFjY2Vzc2liaWxp
dHlSZW5kZXIKICAgICAvLyBDYXNlIDE6IG5vZGUgaXMgYSBibG9jayBhbmQgaGFzIGFuIGlubGlu
ZSBjb250aW51YXRpb24uIE5leHQgc2libGluZyBpcyB0aGUgaW5saW5lIGNvbnRpbnVhdGlvbidz
CiAgICAgLy8gZmlyc3QgY2hpbGQuCiAgICAgUmVuZGVySW5saW5lKiBpbmxpbmVDb250aW51YXRp
b247Ci0gICAgaWYgKGlzPFJlbmRlckJsb2NrPigqbV9yZW5kZXJlcikgJiYgKGlubGluZUNvbnRp
bnVhdGlvbiA9IGRvd25jYXN0PFJlbmRlckJsb2NrPigqbV9yZW5kZXJlcikuaW5saW5lRWxlbWVu
dENvbnRpbnVhdGlvbigpKSkKKyAgICBpZiAoaXM8UmVuZGVyQmxvY2s+KCptX3JlbmRlcmVyKSAm
JiAoaW5saW5lQ29udGludWF0aW9uID0gZG93bmNhc3Q8UmVuZGVyQmxvY2s+KCptX3JlbmRlcmVy
KS5pbmxpbmVDb250aW51YXRpb24oKSkpCiAgICAgICAgIG5leHRTaWJsaW5nID0gZmlyc3RDaGls
ZENvbnNpZGVyaW5nQ29udGludWF0aW9uKCppbmxpbmVDb250aW51YXRpb24pOwogCiAgICAgLy8g
Q2FzZSAyOiBBbm9ueW1vdXMgYmxvY2sgcGFyZW50IG9mIHRoZSBzdGFydCBvZiBhIGNvbnRpbnVh
dGlvbiAtIHNraXAgYWxsIHRoZSB3YXkgdG8KQEAgLTQyNiw3ICs0MTUsNyBAQCBzdGF0aWMgUmVu
ZGVyQm94TW9kZWxPYmplY3QqIG5leHRDb250aW51CiAgICAgaWYgKGlzPFJlbmRlcklubGluZT4o
cmVuZGVyZXIpICYmICFyZW5kZXJlci5pc1JlcGxhY2VkKCkpCiAgICAgICAgIHJldHVybiBkb3du
Y2FzdDxSZW5kZXJJbmxpbmU+KHJlbmRlcmVyKS5jb250aW51YXRpb24oKTsKICAgICBpZiAoaXM8
UmVuZGVyQmxvY2s+KHJlbmRlcmVyKSkKLSAgICAgICAgcmV0dXJuIGRvd25jYXN0PFJlbmRlckJs
b2NrPihyZW5kZXJlcikuaW5saW5lRWxlbWVudENvbnRpbnVhdGlvbigpOworICAgICAgICByZXR1
cm4gZG93bmNhc3Q8UmVuZGVyQmxvY2s+KHJlbmRlcmVyKS5pbmxpbmVDb250aW51YXRpb24oKTsK
ICAgICByZXR1cm4gbnVsbHB0cjsKIH0KICAgICAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCbG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJsb2NrLmNwcAkocmV2aXNpb24gMjI0NTgzKQorKysgU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTY5Nyw3ICsxNjk3
LDcgQEAgdm9pZCBSZW5kZXJCbG9jazo6cGFpbnRPYmplY3QoUGFpbnRJbmZvJgogCiAgICAgLy8g
Ni4gcGFpbnQgY29udGludWF0aW9uIG91dGxpbmVzLgogICAgIGlmICgocGFpbnRQaGFzZSA9PSBQ
YWludFBoYXNlT3V0bGluZSB8fCBwYWludFBoYXNlID09IFBhaW50UGhhc2VDaGlsZE91dGxpbmVz
KSkgewotICAgICAgICBSZW5kZXJJbmxpbmUqIGlubGluZUNvbnQgPSBpbmxpbmVFbGVtZW50Q29u
dGludWF0aW9uKCk7CisgICAgICAgIFJlbmRlcklubGluZSogaW5saW5lQ29udCA9IGlubGluZUNv
bnRpbnVhdGlvbigpOwogICAgICAgICBpZiAoaW5saW5lQ29udCAmJiBpbmxpbmVDb250LT5oYXNP
dXRsaW5lKCkgJiYgaW5saW5lQ29udC0+c3R5bGUoKS52aXNpYmlsaXR5KCkgPT0gVklTSUJMRSkg
ewogICAgICAgICAgICAgUmVuZGVySW5saW5lKiBpbmxpbmVSZW5kZXJlciA9IGRvd25jYXN0PFJl
bmRlcklubGluZT4oaW5saW5lQ29udC0+ZWxlbWVudCgpLT5yZW5kZXJlcigpKTsKICAgICAgICAg
ICAgIFJlbmRlckJsb2NrKiBjb250YWluaW5nQmxvY2sgPSB0aGlzLT5jb250YWluaW5nQmxvY2so
KTsKQEAgLTE3MzAsMTIgKzE3MzAsNiBAQCB2b2lkIFJlbmRlckJsb2NrOjpwYWludE9iamVjdChQ
YWludEluZm8mCiAgICAgfQogfQogCi1SZW5kZXJJbmxpbmUqIFJlbmRlckJsb2NrOjppbmxpbmVF
bGVtZW50Q29udGludWF0aW9uKCkgY29uc3QKLXsgCi0gICAgUmVuZGVyQm94TW9kZWxPYmplY3Qq
IGNvbnRpbnVhdGlvbiA9IHRoaXMtPmNvbnRpbnVhdGlvbigpOwotICAgIHJldHVybiBpczxSZW5k
ZXJJbmxpbmU+KGNvbnRpbnVhdGlvbikgPyBkb3duY2FzdDxSZW5kZXJJbmxpbmU+KGNvbnRpbnVh
dGlvbikgOiBudWxscHRyOwotfQotCiBzdGF0aWMgQ29udGludWF0aW9uT3V0bGluZVRhYmxlTWFw
KiBjb250aW51YXRpb25PdXRsaW5lVGFibGUoKQogewogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxDb250aW51YXRpb25PdXRsaW5lVGFibGVNYXA+IHRhYmxlOwpAQCAtMzE2MywxMCArMzE1Nyw4
IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmFic29sdXRlUmVjdHMoVmVjdG9yPEkKICAgICBpZiAoYXV0
byogY29udGludWF0aW9uID0gdGhpcy0+Y29udGludWF0aW9uKCkpIHsKICAgICAgICAgLy8gRklY
TUU6IFRoaXMgaXMgd3JvbmcgZm9yIGJsb2NrLWZsb3dzIHRoYXQgYXJlIGhvcml6b250YWwuCiAg
ICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00Njc4MQot
ICAgICAgICByZWN0cy5hcHBlbmQoc25hcHBlZEludFJlY3QoYWNjdW11bGF0ZWRPZmZzZXQueCgp
LCBhY2N1bXVsYXRlZE9mZnNldC55KCkgLSBjb2xsYXBzZWRNYXJnaW5CZWZvcmUoKSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgoKSwgaGVpZ2h0KCkgKyBjb2xsYXBzZWRN
YXJnaW5CZWZvcmUoKSArIGNvbGxhcHNlZE1hcmdpbkFmdGVyKCkpKTsKLSAgICAgICAgY29udGlu
dWF0aW9uLT5hYnNvbHV0ZVJlY3RzKHJlY3RzLCBhY2N1bXVsYXRlZE9mZnNldCAtIHRvTGF5b3V0
U2l6ZShsb2NhdGlvbigpICsKLSAgICAgICAgICAgICAgICBpbmxpbmVFbGVtZW50Q29udGludWF0
aW9uKCktPmNvbnRhaW5pbmdCbG9jaygpLT5sb2NhdGlvbigpKSk7CisgICAgICAgIHJlY3RzLmFw
cGVuZChzbmFwcGVkSW50UmVjdChhY2N1bXVsYXRlZE9mZnNldC54KCksIGFjY3VtdWxhdGVkT2Zm
c2V0LnkoKSAtIGNvbGxhcHNlZE1hcmdpbkJlZm9yZSgpLCB3aWR0aCgpLCBoZWlnaHQoKSArIGNv
bGxhcHNlZE1hcmdpbkJlZm9yZSgpICsgY29sbGFwc2VkTWFyZ2luQWZ0ZXIoKSkpOworICAgICAg
ICBjb250aW51YXRpb24tPmFic29sdXRlUmVjdHMocmVjdHMsIGFjY3VtdWxhdGVkT2Zmc2V0IC0g
dG9MYXlvdXRTaXplKGxvY2F0aW9uKCkgKyBpbmxpbmVDb250aW51YXRpb24oKS0+Y29udGFpbmlu
Z0Jsb2NrKCktPmxvY2F0aW9uKCkpKTsKICAgICB9IGVsc2UKICAgICAgICAgcmVjdHMuYXBwZW5k
KHNuYXBwZWRJbnRSZWN0KGFjY3VtdWxhdGVkT2Zmc2V0LCBzaXplKCkpKTsKIH0KQEAgLTMyNjQs
MTMgKzMyNTYsMTQgQEAgdm9pZCBSZW5kZXJCbG9jazo6YWRkRm9jdXNSaW5nUmVjdHMoVmVjdAog
ewogICAgIC8vIEZvciBibG9ja3MgaW5zaWRlIGlubGluZXMsIHdlIGluY2x1ZGUgbWFyZ2lucyBz
byB0aGF0IHdlIHJ1biByaWdodCB1cCB0byB0aGUgaW5saW5lIGJveGVzCiAgICAgLy8gYWJvdmUg
YW5kIGJlbG93IHVzICh0aHVzIGdldHRpbmcgbWVyZ2VkIHdpdGggdGhlbSB0byBmb3JtIGEgc2lu
Z2xlIGlycmVndWxhciBzaGFwZSkuCi0gICAgaWYgKGlubGluZUVsZW1lbnRDb250aW51YXRpb24o
KSkgeworICAgIGF1dG8qIGlubGluZUNvbnRpbnVhdGlvbiA9IHRoaXMtPmlubGluZUNvbnRpbnVh
dGlvbigpOworICAgIGlmIChpbmxpbmVDb250aW51YXRpb24pIHsKICAgICAgICAgLy8gRklYTUU6
IFRoaXMgY2hlY2sgcmVhbGx5IGlzbid0IGFjY3VyYXRlLiAKLSAgICAgICAgYm9vbCBuZXh0SW5s
aW5lSGFzTGluZUJveCA9IGlubGluZUVsZW1lbnRDb250aW51YXRpb24oKS0+Zmlyc3RMaW5lQm94
KCk7CisgICAgICAgIGJvb2wgbmV4dElubGluZUhhc0xpbmVCb3ggPSBpbmxpbmVDb250aW51YXRp
b24tPmZpcnN0TGluZUJveCgpOwogICAgICAgICAvLyBGSVhNRTogVGhpcyBpcyB3cm9uZy4gVGhl
IHByaW5jaXBhbCByZW5kZXJlciBtYXkgbm90IGJlIHRoZSBjb250aW51YXRpb24gcHJlY2VkaW5n
IHRoaXMgYmxvY2suCiAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGlzIHdyb25nIGZvciBibG9jay1m
bG93cyB0aGF0IGFyZSBob3Jpem9udGFsLgogICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDY3ODEKLSAgICAgICAgYm9vbCBwcmV2SW5saW5lSGFzTGlu
ZUJveCA9IGRvd25jYXN0PFJlbmRlcklubGluZT4oKmlubGluZUVsZW1lbnRDb250aW51YXRpb24o
KS0+ZWxlbWVudCgpLT5yZW5kZXJlcigpKS5maXJzdExpbmVCb3goKTsKKyAgICAgICAgYm9vbCBw
cmV2SW5saW5lSGFzTGluZUJveCA9IGRvd25jYXN0PFJlbmRlcklubGluZT4oKmlubGluZUNvbnRp
bnVhdGlvbi0+ZWxlbWVudCgpLT5yZW5kZXJlcigpKS5maXJzdExpbmVCb3goKTsKICAgICAgICAg
ZmxvYXQgdG9wTWFyZ2luID0gcHJldklubGluZUhhc0xpbmVCb3ggPyBjb2xsYXBzZWRNYXJnaW5C
ZWZvcmUoKSA6IExheW91dFVuaXQoKTsKICAgICAgICAgZmxvYXQgYm90dG9tTWFyZ2luID0gbmV4
dElubGluZUhhc0xpbmVCb3ggPyBjb2xsYXBzZWRNYXJnaW5BZnRlcigpIDogTGF5b3V0VW5pdCgp
OwogICAgICAgICBMYXlvdXRSZWN0IHJlY3QoYWRkaXRpb25hbE9mZnNldC54KCksIGFkZGl0aW9u
YWxPZmZzZXQueSgpIC0gdG9wTWFyZ2luLCB3aWR0aCgpLCBoZWlnaHQoKSArIHRvcE1hcmdpbiAr
IGJvdHRvbU1hcmdpbik7CkBAIC0zMjk3LDggKzMyOTAsOCBAQCB2b2lkIFJlbmRlckJsb2NrOjph
ZGRGb2N1c1JpbmdSZWN0cyhWZWN0CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAoaW5saW5l
RWxlbWVudENvbnRpbnVhdGlvbigpKQotICAgICAgICBpbmxpbmVFbGVtZW50Q29udGludWF0aW9u
KCktPmFkZEZvY3VzUmluZ1JlY3RzKHJlY3RzLCBmbG9vcmVkTGF5b3V0UG9pbnQoTGF5b3V0UG9p
bnQoYWRkaXRpb25hbE9mZnNldCArIGlubGluZUVsZW1lbnRDb250aW51YXRpb24oKS0+Y29udGFp
bmluZ0Jsb2NrKCktPmxvY2F0aW9uKCkgLSBsb2NhdGlvbigpKSksIHBhaW50Q29udGFpbmVyKTsK
KyAgICBpZiAoaW5saW5lQ29udGludWF0aW9uKQorICAgICAgICBpbmxpbmVDb250aW51YXRpb24t
PmFkZEZvY3VzUmluZ1JlY3RzKHJlY3RzLCBmbG9vcmVkTGF5b3V0UG9pbnQoTGF5b3V0UG9pbnQo
YWRkaXRpb25hbE9mZnNldCArIGlubGluZUNvbnRpbnVhdGlvbi0+Y29udGFpbmluZ0Jsb2NrKCkt
PmxvY2F0aW9uKCkgLSBsb2NhdGlvbigpKSksIHBhaW50Q29udGFpbmVyKTsKIH0KIAogUmVuZGVy
UHRyPFJlbmRlckJsb2NrPiBSZW5kZXJCbG9jazo6Y3JlYXRlQW5vbnltb3VzQmxvY2tXaXRoU3R5
bGVBbmREaXNwbGF5KERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxl
LCBFRGlzcGxheSBkaXNwbGF5KQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJsb2NrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJs
b2NrLmgJKHJldmlzaW9uIDIyNDU4MykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9jay5oCSh3b3JraW5nIGNvcHkpCkBAIC0xODksOCArMTg5LDYgQEAgcHVibGljOgogICAg
IHZvaWQgYWRkQ29udGludWF0aW9uV2l0aE91dGxpbmUoUmVuZGVySW5saW5lKik7CiAgICAgYm9v
bCBwYWludHNDb250aW51YXRpb25PdXRsaW5lKFJlbmRlcklubGluZSopOwogCi0gICAgV0VCQ09S
RV9FWFBPUlQgUmVuZGVySW5saW5lKiBpbmxpbmVFbGVtZW50Q29udGludWF0aW9uKCkgY29uc3Q7
Ci0KICAgICBzdGF0aWMgUmVuZGVyUHRyPFJlbmRlckJsb2NrPiBjcmVhdGVBbm9ueW1vdXNXaXRo
UGFyZW50UmVuZGVyZXJBbmREaXNwbGF5KGNvbnN0IFJlbmRlckJveCYgcGFyZW50LCBFRGlzcGxh
eSA9IEJMT0NLKTsKICAgICBSZW5kZXJQdHI8UmVuZGVyQmxvY2s+IGNyZWF0ZUFub255bW91c0Js
b2NrKEVEaXNwbGF5ID0gQkxPQ0spIGNvbnN0OwogICAgIHZvaWQgZHJvcEFub255bW91c0JveENo
aWxkKFJlbmRlckJsb2NrJiBjaGlsZCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAJKHJldmlzaW9uIDIyNDU4MykKKysrIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI3OSw3ICsyNzksNyBAQCBzdGF0aWMgTGF5b3V0U2l6ZSBhY2N1bXVsYXRlSW5G
bG93UG9zaXRpCiAgICAgaWYgKCFjaGlsZC0+aXNBbm9ueW1vdXNCbG9jaygpIHx8ICFjaGlsZC0+
aXNJbkZsb3dQb3NpdGlvbmVkKCkpCiAgICAgICAgIHJldHVybiBMYXlvdXRTaXplKCk7CiAgICAg
TGF5b3V0U2l6ZSBvZmZzZXQ7Ci0gICAgZm9yIChSZW5kZXJFbGVtZW50KiBwYXJlbnQgPSBkb3du
Y2FzdDxSZW5kZXJCbG9jaz4oKmNoaWxkKS5pbmxpbmVFbGVtZW50Q29udGludWF0aW9uKCk7IGlz
PFJlbmRlcklubGluZT4ocGFyZW50KTsgcGFyZW50ID0gcGFyZW50LT5wYXJlbnQoKSkgeworICAg
IGZvciAoUmVuZGVyRWxlbWVudCogcGFyZW50ID0gZG93bmNhc3Q8UmVuZGVyQmxvY2s+KCpjaGls
ZCkuaW5saW5lQ29udGludWF0aW9uKCk7IGlzPFJlbmRlcklubGluZT4ocGFyZW50KTsgcGFyZW50
ID0gcGFyZW50LT5wYXJlbnQoKSkgewogICAgICAgICBpZiAocGFyZW50LT5pc0luRmxvd1Bvc2l0
aW9uZWQoKSkKICAgICAgICAgICAgIG9mZnNldCArPSBkb3duY2FzdDxSZW5kZXJJbmxpbmU+KCpw
YXJlbnQpLm9mZnNldEZvckluRmxvd1Bvc2l0aW9uKCk7CiAgICAgfQpAQCAtMjUwNyw2ICsyNTA3
LDE5IEBAIFJlbmRlckJveE1vZGVsT2JqZWN0KiBSZW5kZXJCb3hNb2RlbE9iamUKICAgICByZXR1
cm4gY29udGludWF0aW9uQ2hhaW5Ob2RlLm5leHQtPnJlbmRlcmVyLmdldCgpOwogfQogCitSZW5k
ZXJJbmxpbmUqIFJlbmRlckJveE1vZGVsT2JqZWN0OjppbmxpbmVDb250aW51YXRpb24oKSBjb25z
dAoreworICAgIGlmICghaGFzQ29udGludWF0aW9uQ2hhaW5Ob2RlKCkpCisgICAgICAgIHJldHVy
biBudWxscHRyOworCisgICAgZm9yIChhdXRvKiBuZXh0ID0gY29udGludWF0aW9uQ2hhaW5Ob2Rl
TWFwKCkuZ2V0KHRoaXMpLT5uZXh0OyBuZXh0OyBuZXh0ID0gbmV4dC0+bmV4dCkgeworICAgICAg
ICBpZiAoaXM8UmVuZGVySW5saW5lPigqbmV4dC0+cmVuZGVyZXIpKQorICAgICAgICAgICAgcmV0
dXJuIGRvd25jYXN0PFJlbmRlcklubGluZT4obmV4dC0+cmVuZGVyZXIuZ2V0KCkpOworICAgIH0K
KyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworCiB2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0Ojpp
bnNlcnRJbnRvQ29udGludWF0aW9uQ2hhaW5BZnRlcihSZW5kZXJCb3hNb2RlbE9iamVjdCYgYWZ0
ZXJSZW5kZXJlcikKIHsKICAgICBBU1NFUlQoaXNDb250aW51YXRpb24oKSk7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaAkocmV2aXNp
b24gMjI0NTgzKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2Jq
ZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTIzNiw2ICsyMzYsNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBzdXNwZW5kQW5pbWF0aW9ucyhkb3VibGUgdGltZSA9IDApOwogCiAgICAgUmVuZGVyQm94TW9k
ZWxPYmplY3QqIGNvbnRpbnVhdGlvbigpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIFJlbmRl
cklubGluZSogaW5saW5lQ29udGludWF0aW9uKCkgY29uc3Q7CiAgICAgCiAgICAgdm9pZCBpbnNl
cnRJbnRvQ29udGludWF0aW9uQ2hhaW5BZnRlcihSZW5kZXJCb3hNb2RlbE9iamVjdCYpOwogICAg
IHZvaWQgcmVtb3ZlRnJvbUNvbnRpbnVhdGlvbkNoYWluKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcAkocmV2aXNpb24gMjI0NTgzKQorKysgU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEx
MywxOCArMTEzLDYgQEAgdm9pZCBSZW5kZXJJbmxpbmU6OndpbGxCZURlc3Ryb3llZCgpCiAgICAg
UmVuZGVyQm94TW9kZWxPYmplY3Q6OndpbGxCZURlc3Ryb3llZCgpOwogfQogCi1SZW5kZXJJbmxp
bmUqIFJlbmRlcklubGluZTo6aW5saW5lRWxlbWVudENvbnRpbnVhdGlvbigpIGNvbnN0Ci17Ci0g
ICAgUmVuZGVyQm94TW9kZWxPYmplY3QqIGNvbnRpbnVhdGlvbiA9IHRoaXMtPmNvbnRpbnVhdGlv
bigpOwotICAgIGlmICghY29udGludWF0aW9uKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQot
ICAgIGlmIChpczxSZW5kZXJJbmxpbmU+KCpjb250aW51YXRpb24pKQotICAgICAgICByZXR1cm4g
ZG93bmNhc3Q8UmVuZGVySW5saW5lPihjb250aW51YXRpb24pOwotCi0gICAgcmV0dXJuIGlzPFJl
bmRlckJsb2NrPigqY29udGludWF0aW9uKSA/IGRvd25jYXN0PFJlbmRlckJsb2NrPigqY29udGlu
dWF0aW9uKS5pbmxpbmVFbGVtZW50Q29udGludWF0aW9uKCkgOiBudWxscHRyOwotfQotCiB2b2lk
IFJlbmRlcklubGluZTo6dXBkYXRlRnJvbVN0eWxlKCkKIHsKICAgICBSZW5kZXJCb3hNb2RlbE9i
amVjdDo6dXBkYXRlRnJvbVN0eWxlKCk7CkBAIC0xNjAsNyArMTQ4LDcgQEAgc3RhdGljIHZvaWQg
dXBkYXRlU3R5bGVPZkFub255bW91c0Jsb2NrQwogICAgICAgICAKICAgICAgICAgLy8gSWYgd2Ug
YXJlIG5vIGxvbmdlciBpbi1mbG93IHBvc2l0aW9uZWQgYnV0IG91ciBkZXNjZW5kYW50IGJsb2Nr
KHMpIHN0aWxsIGhhdmUgYW4gaW4tZmxvdyBwb3NpdGlvbmVkIGFuY2VzdG9yIHRoZW4KICAgICAg
ICAgLy8gdGhlaXIgY29udGFpbmluZyBhbm9ueW1vdXMgYmxvY2sgc2hvdWxkIGtlZXAgaXRzIGlu
LWZsb3cgcG9zaXRpb25pbmcuIAotICAgICAgICBSZW5kZXJJbmxpbmUqIGNvbnRpbnVhdGlvbiA9
IGJsb2NrLmlubGluZUVsZW1lbnRDb250aW51YXRpb24oKTsKKyAgICAgICAgUmVuZGVySW5saW5l
KiBjb250aW51YXRpb24gPSBibG9jay5pbmxpbmVDb250aW51YXRpb24oKTsKICAgICAgICAgaWYg
KG9sZFN0eWxlLT5oYXNJbkZsb3dQb3NpdGlvbigpICYmIGluRmxvd1Bvc2l0aW9uZWRJbmxpbmVB
bmNlc3Rvcihjb250aW51YXRpb24pKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIGF1
dG8gYmxvY2tTdHlsZSA9IFJlbmRlclN0eWxlOjpjcmVhdGVBbm9ueW1vdXNTdHlsZVdpdGhEaXNw
bGF5KGJsb2NrLnN0eWxlKCksIEJMT0NLKTsKQEAgLTE5Miw5ICsxODAsOSBAQCB2b2lkIFJlbmRl
cklubGluZTo6c3R5bGVEaWRDaGFuZ2UoU3R5bGVECiAgICAgLy8gYW5kIGFmdGVyIHRoZSBibG9j
ayBzaGFyZSB0aGUgc2FtZSBzdHlsZSwgYnV0IHRoZSBibG9jayBkb2Vzbid0CiAgICAgLy8gbmVl
ZCB0byBwYXNzIGl0cyBzdHlsZSBvbiB0byBhbnlvbmUgZWxzZS4KICAgICBhdXRvJiBuZXdTdHls
ZSA9IHN0eWxlKCk7Ci0gICAgUmVuZGVySW5saW5lKiBjb250aW51YXRpb24gPSBpbmxpbmVFbGVt
ZW50Q29udGludWF0aW9uKCk7CisgICAgUmVuZGVySW5saW5lKiBjb250aW51YXRpb24gPSBpbmxp
bmVDb250aW51YXRpb24oKTsKICAgICBpZiAoY29udGludWF0aW9uICYmICFpc0NvbnRpbnVhdGlv
bigpKSB7Ci0gICAgICAgIGZvciAoUmVuZGVySW5saW5lKiBjdXJyQ29udCA9IGNvbnRpbnVhdGlv
bjsgY3VyckNvbnQ7IGN1cnJDb250ID0gY3VyckNvbnQtPmlubGluZUVsZW1lbnRDb250aW51YXRp
b24oKSkKKyAgICAgICAgZm9yIChSZW5kZXJJbmxpbmUqIGN1cnJDb250ID0gY29udGludWF0aW9u
OyBjdXJyQ29udDsgY3VyckNvbnQgPSBjdXJyQ29udC0+aW5saW5lQ29udGludWF0aW9uKCkpCiAg
ICAgICAgICAgICBjdXJyQ29udC0+c2V0U3R5bGUoUmVuZGVyU3R5bGU6OmNsb25lKG5ld1N0eWxl
KSk7CiAgICAgICAgIC8vIElmIGFuIGlubGluZSdzIGluLWZsb3cgcG9zaXRpb25pbmcgaGFzIGNo
YW5nZWQgYW5kIGl0IGlzIHBhcnQgb2YgYW4gYWN0aXZlIGNvbnRpbnVhdGlvbiBhcyBhIGRlc2Nl
bmRhbnQgb2YgYW4gYW5vbnltb3VzIGNvbnRhaW5pbmcgYmxvY2ssCiAgICAgICAgIC8vIHRoZW4g
YW55IGRlc2NlbmRhbnQgYmxvY2tzIHdpbGwgbmVlZCB0byBjaGFuZ2UgdGhlaXIgaW4tZmxvdyBw
b3NpdGlvbmluZyBhY2NvcmRpbmdseS4KQEAgLTI4Niw3ICsyNzQsNyBAQCBzdGF0aWMgUmVuZGVy
Qm94TW9kZWxPYmplY3QqIG5leHRDb250aW51CiB7CiAgICAgaWYgKGlzPFJlbmRlcklubGluZT4o
KnJlbmRlcmVyKSAmJiAhcmVuZGVyZXItPmlzUmVwbGFjZWQoKSkKICAgICAgICAgcmV0dXJuIGRv
d25jYXN0PFJlbmRlcklubGluZT4oKnJlbmRlcmVyKS5jb250aW51YXRpb24oKTsKLSAgICByZXR1
cm4gZG93bmNhc3Q8UmVuZGVyQmxvY2s+KCpyZW5kZXJlcikuaW5saW5lRWxlbWVudENvbnRpbnVh
dGlvbigpOworICAgIHJldHVybiBkb3duY2FzdDxSZW5kZXJCbG9jaz4oKnJlbmRlcmVyKS5pbmxp
bmVDb250aW51YXRpb24oKTsKIH0KIAogUmVuZGVyQm94TW9kZWxPYmplY3QqIFJlbmRlcklubGlu
ZTo6Y29udGludWF0aW9uQmVmb3JlKFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQpCkBAIC05Mjks
NyArOTE3LDcgQEAgVmlzaWJsZVBvc2l0aW9uIFJlbmRlcklubGluZTo6cG9zaXRpb25GbwogICAg
ICAgICBSZW5kZXJCbG9jayogY3VycmVudEJsb2NrID0gY29udGludWF0aW9uLT5pc0lubGluZSgp
ID8gY29udGludWF0aW9uLT5jb250YWluaW5nQmxvY2soKSA6IGRvd25jYXN0PFJlbmRlckJsb2Nr
Pihjb250aW51YXRpb24pOwogICAgICAgICBpZiAoY29udGludWF0aW9uLT5pc0lubGluZSgpIHx8
IGNvbnRpbnVhdGlvbi0+Zmlyc3RDaGlsZCgpKQogICAgICAgICAgICAgcmV0dXJuIGNvbnRpbnVh
dGlvbi0+cG9zaXRpb25Gb3JQb2ludChwYXJlbnRCbG9ja1BvaW50IC0gY3VycmVudEJsb2NrLT5s
b2NhdGlvbk9mZnNldCgpLCBmcmFnbWVudCk7Ci0gICAgICAgIGNvbnRpbnVhdGlvbiA9IGRvd25j
YXN0PFJlbmRlckJsb2NrPigqY29udGludWF0aW9uKS5pbmxpbmVFbGVtZW50Q29udGludWF0aW9u
KCk7CisgICAgICAgIGNvbnRpbnVhdGlvbiA9IGNvbnRpbnVhdGlvbi0+aW5saW5lQ29udGludWF0
aW9uKCk7CiAgICAgfQogICAgIAogICAgIHJldHVybiBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cG9z
aXRpb25Gb3JQb2ludChwb2ludCwgZnJhZ21lbnQpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlcklubGluZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJJbmxpbmUuaAkocmV2aXNpb24gMjI0NTgzKQorKysgU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlcklubGluZS5oCSh3b3JraW5nIGNvcHkpCkBAIC03OSw4ICs3OSw2IEBA
IHB1YmxpYzoKICAgICB2b2lkIGFic29sdXRlUXVhZHNGb3JTZWxlY3Rpb24oVmVjdG9yPEZsb2F0
UXVhZD4mIHF1YWRzKSBjb25zdCBvdmVycmlkZTsKICNlbmRpZgogCi0gICAgUmVuZGVySW5saW5l
KiBpbmxpbmVFbGVtZW50Q29udGludWF0aW9uKCkgY29uc3Q7Ci0KICAgICB2b2lkIHVwZGF0ZURy
YWdTdGF0ZShib29sIGRyYWdPbikgZmluYWw7CiAgICAgCiAgICAgTGF5b3V0U2l6ZSBvZmZzZXRG
b3JJbkZsb3dQb3NpdGlvbmVkSW5saW5lKGNvbnN0IFJlbmRlckJveCogY2hpbGQpIGNvbnN0OwpJ
bmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL2xpbmUvTGluZUlubGluZUhlYWRlcnMuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbGluZS9MaW5lSW5saW5lSGVh
ZGVycy5oCShyZXZpc2lvbiAyMjQ1ODMpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbGlu
ZS9MaW5lSW5saW5lSGVhZGVycy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw3ICszOCw3IEBAIGlu
bGluZSBib29sIGhhc0lubGluZURpcmVjdGlvbkJvcmRlcnNQYWQKICAgICBpZiAoc2hvdWxkQXBw
bHlTdGFydEJvcmRlclBhZGRpbmdPck1hcmdpbiAmJiAoZmxvdy5ib3JkZXJTdGFydCgpIHx8IGZs
b3cubWFyZ2luU3RhcnQoKSB8fCBmbG93LnBhZGRpbmdTdGFydCgpKSkKICAgICAgICAgcmV0dXJu
IHRydWU7CiAKLSAgICBib29sIHNob3VsZEFwcGx5RW5kQm9yZGVyUGFkZGluZ09yTWFyZ2luID0g
IWZsb3cucGFyZW50KCktPmlzQW5vbnltb3VzQmxvY2soKSB8fCBmbG93LmlzQ29udGludWF0aW9u
KCkgfHwgIWZsb3cuaW5saW5lRWxlbWVudENvbnRpbnVhdGlvbigpOworICAgIGJvb2wgc2hvdWxk
QXBwbHlFbmRCb3JkZXJQYWRkaW5nT3JNYXJnaW4gPSAhZmxvdy5wYXJlbnQoKS0+aXNBbm9ueW1v
dXNCbG9jaygpIHx8IGZsb3cuaXNDb250aW51YXRpb24oKSB8fCAhZmxvdy5pbmxpbmVDb250aW51
YXRpb24oKTsKICAgICByZXR1cm4gc2hvdWxkQXBwbHlFbmRCb3JkZXJQYWRkaW5nT3JNYXJnaW4g
JiYgKGZsb3cuYm9yZGVyRW5kKCkgfHwgZmxvdy5tYXJnaW5FbmQoKSB8fCBmbG93LnBhZGRpbmdF
bmQoKSk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9X
ZWJQYWdlSU9TLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL2lvcy9XZWJQYWdlSU9TLm1tCShyZXZpc2lvbiAyMjQ1ODMpCisrKyBTb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQkod29ya2luZyBjb3B5KQpAQCAt
OTc1LDcgKzk3NSw3IEBAIHN0YXRpYyBib29sIGNhblNocmlua1RvVGV4dFNlbGVjdGlvbihOb2QK
ICAgICAgICAgbm9kZSA9IG5vZGUtPnBhcmVudEVsZW1lbnQoKTsKICAgICAKICAgICBhdXRvKiBy
ZW5kZXJlciA9IChub2RlKSA/IG5vZGUtPnJlbmRlcmVyKCkgOiBudWxscHRyOwotICAgIHJldHVy
biByZW5kZXJlciAmJiByZW5kZXJlci0+Y2hpbGRyZW5JbmxpbmUoKSAmJiAoaXM8UmVuZGVyQmxv
Y2s+KCpyZW5kZXJlcikgJiYgIWRvd25jYXN0PFJlbmRlckJsb2NrPigqcmVuZGVyZXIpLmlubGlu
ZUVsZW1lbnRDb250aW51YXRpb24oKSkgJiYgIXJlbmRlcmVyLT5pc1RhYmxlKCk7CisgICAgcmV0
dXJuIHJlbmRlcmVyICYmIHJlbmRlcmVyLT5jaGlsZHJlbklubGluZSgpICYmIChpczxSZW5kZXJC
bG9jaz4oKnJlbmRlcmVyKSAmJiAhZG93bmNhc3Q8UmVuZGVyQmxvY2s+KCpyZW5kZXJlcikuaW5s
aW5lQ29udGludWF0aW9uKCkpICYmICFyZW5kZXJlci0+aXNUYWJsZSgpOwogfQogCiBzdGF0aWMg
Ym9vbCBoYXNDdXN0b21MaW5lSGVpZ2h0KE5vZGUmIG5vZGUpCkBAIC0xMDM3LDcgKzEwMzcsNyBA
QCBSZWZQdHI8UmFuZ2U+IFdlYlBhZ2U6OnJhbmdlRm9yV2ViU2VsZWN0CiAgICAgaWYgKCFyZW5k
ZXJlciB8fCByZW5kZXJlci0+c3R5bGUoKS51c2VyU2VsZWN0KCkgPT0gU0VMRUNUX05PTkUpCiAg
ICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgaWYgKHJlbmRlcmVyLT5jaGlsZHJlbklubGlu
ZSgpICYmIChpczxSZW5kZXJCbG9jaz4oKnJlbmRlcmVyKSAmJiAhZG93bmNhc3Q8UmVuZGVyQmxv
Y2s+KCpyZW5kZXJlcikuaW5saW5lRWxlbWVudENvbnRpbnVhdGlvbigpKSAmJiAhcmVuZGVyZXIt
PmlzVGFibGUoKSkgeworICAgIGlmIChyZW5kZXJlci0+Y2hpbGRyZW5JbmxpbmUoKSAmJiAoaXM8
UmVuZGVyQmxvY2s+KCpyZW5kZXJlcikgJiYgIWRvd25jYXN0PFJlbmRlckJsb2NrPigqcmVuZGVy
ZXIpLmlubGluZUNvbnRpbnVhdGlvbigpKSAmJiAhcmVuZGVyZXItPmlzVGFibGUoKSkgewogICAg
ICAgICByYW5nZSA9IGVuY2xvc2luZ1RleHRVbml0T2ZHcmFudWxhcml0eShwb3NpdGlvbiwgV29y
ZEdyYW51bGFyaXR5LCBEaXJlY3Rpb25CYWNrd2FyZCk7CiAgICAgICAgIGlmIChyYW5nZSAmJiAh
cmFuZ2UtPmNvbGxhcHNlZCgpKQogICAgICAgICAgICAgcmV0dXJuIHJhbmdlOwpJbmRleDogU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTVVJS2l0RXh0ZW5zaW9ucy5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00vRE9NVUlLaXRFeHRlbnNpb25zLm1tCShy
ZXZpc2lvbiAyMjQ1ODMpCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00vRE9NVUlLaXRF
eHRlbnNpb25zLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xOTksMTQgKzE5OSwxNCBAQCAtIChCT09M
KWNvbnRhaW5zT25seUlubGluZU9iamVjdHMKICAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0g
Y29yZShzZWxmKS0+cmVuZGVyZXIoKTsKICAgICByZXR1cm4gcmVuZGVyZXIKICAgICAgICAgJiYg
cmVuZGVyZXItPmNoaWxkcmVuSW5saW5lKCkKLSAgICAgICAgJiYgKGlzPFJlbmRlckJsb2NrPigq
cmVuZGVyZXIpICYmICFkb3duY2FzdDxSZW5kZXJCbG9jaz4oKnJlbmRlcmVyKS5pbmxpbmVFbGVt
ZW50Q29udGludWF0aW9uKCkpCisgICAgICAgICYmIChpczxSZW5kZXJCbG9jaz4oKnJlbmRlcmVy
KSAmJiAhZG93bmNhc3Q8UmVuZGVyQmxvY2s+KCpyZW5kZXJlcikuaW5saW5lQ29udGludWF0aW9u
KCkpCiAgICAgICAgICYmICFyZW5kZXJlci0+aXNUYWJsZSgpOwogfQogCiAtIChCT09MKWlzU2Vs
ZWN0YWJsZUJsb2NrCiB7CiAgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IGNvcmUoc2VsZikt
PnJlbmRlcmVyKCk7Ci0gICAgcmV0dXJuIHJlbmRlcmVyICYmIChpczxSZW5kZXJCbG9ja0Zsb3c+
KCpyZW5kZXJlcikgfHwgKGlzPFJlbmRlckJsb2NrPigqcmVuZGVyZXIpICYmIGRvd25jYXN0PFJl
bmRlckJsb2NrPigqcmVuZGVyZXIpLmlubGluZUVsZW1lbnRDb250aW51YXRpb24oKSAhPSBuaWwp
KTsKKyAgICByZXR1cm4gcmVuZGVyZXIgJiYgKGlzPFJlbmRlckJsb2NrRmxvdz4oKnJlbmRlcmVy
KSB8fCAoaXM8UmVuZGVyQmxvY2s+KCpyZW5kZXJlcikgJiYgZG93bmNhc3Q8UmVuZGVyQmxvY2s+
KCpyZW5kZXJlcikuaW5saW5lQ29udGludWF0aW9uKCkgIT0gbmlsKSk7CiB9CiAKIC0gKERPTVJh
bmdlICopcmFuZ2VPZkNvbnRhaW5pbmdQYXJhZ3JhcGgKQEAgLTI3MSw3ICsyNzEsNyBAQCAtIChp
bnQpc3RydWN0dXJhbENvbXBsZXhpdHlDb250cmlidXRpb24KICAgICAgICAgICAgIHJlc3VsdCA9
IElOVF9NQVg7CiAgICAgICAgIH0gZWxzZSBpZiAoIXJlbmRlcmVyLT5maXJzdENoaWxkU2xvdygp
KSB7CiAgICAgICAgICAgICByZXN1bHQgPSAwOwotICAgICAgICB9IGVsc2UgaWYgKGlzPFJlbmRl
ckJsb2NrRmxvdz4oKnJlbmRlcmVyKSB8fCAoaXM8UmVuZGVyQmxvY2s+KCpyZW5kZXJlcikgJiYg
ZG93bmNhc3Q8UmVuZGVyQmxvY2s+KCpyZW5kZXJlcikuaW5saW5lRWxlbWVudENvbnRpbnVhdGlv
bigpKSkgeworICAgICAgICB9IGVsc2UgaWYgKGlzPFJlbmRlckJsb2NrRmxvdz4oKnJlbmRlcmVy
KSB8fCAoaXM8UmVuZGVyQmxvY2s+KCpyZW5kZXJlcikgJiYgZG93bmNhc3Q8UmVuZGVyQmxvY2s+
KCpyZW5kZXJlcikuaW5saW5lQ29udGludWF0aW9uKCkpKSB7CiAgICAgICAgICAgICBCT09MIG5v
Q29zdCA9IE5POwogICAgICAgICAgICAgaWYgKGlzPFJlbmRlckJveD4oKnJlbmRlcmVyKSkgewog
ICAgICAgICAgICAgICAgIFJlbmRlckJveCYgYXNCb3ggPSByZW5kZXJlci0+ZW5jbG9zaW5nQm94
KCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>