<?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>43696</bug_id>
          
          <creation_ts>2010-08-08 12:28:58 -0700</creation_ts>
          <short_desc>Use SVGPathParser to create SVG paths and to perform path animations</short_desc>
          <delta_ts>2010-08-10 04:13:10 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>SVG</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>43691</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dirk Schulze">krit</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>gustavo</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>261916</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2010-08-08 12:28:58 -0700</bug_when>
    <thetext>Use SVGPathParser to create SVG paths and to perform path animations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>261919</commentid>
    <comment_count>1</comment_count>
      <attachid>63849</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2010-08-08 12:40:46 -0700</bug_when>
    <thetext>Created attachment 63849
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>261922</commentid>
    <comment_count>2</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-08-08 12:47:51 -0700</bug_when>
    <thetext>Attachment 63849 did not build on qt:
Build output: http://queues.webkit.org/results/3665106</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>261924</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-08 12:49:39 -0700</bug_when>
    <thetext>Attachment 63849 did not build on gtk:
Build output: http://queues.webkit.org/results/3597980</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>261927</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-08 12:55:00 -0700</bug_when>
    <thetext>Attachment 63849 did not build on chromium:
Build output: http://queues.webkit.org/results/3680065</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>261929</commentid>
    <comment_count>5</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2010-08-08 12:58:06 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Attachment 63849 [details] did not build on chromium:
&gt; Build output: http://queues.webkit.org/results/3680065

The patch depends on a patch in bug 43691. It can&apos;t build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>261933</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-08 14:04:35 -0700</bug_when>
    <thetext>Attachment 63849 did not build on win:
Build output: http://queues.webkit.org/results/3612720</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>262191</commentid>
    <comment_count>7</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-08-09 09:44:13 -0700</bug_when>
    <thetext>Attachment 63849 did not build on mac:
Build output: http://queues.webkit.org/results/3598983</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>262506</commentid>
    <comment_count>8</comment_count>
      <attachid>63849</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-08-09 23:13:51 -0700</bug_when>
    <thetext>Comment on attachment 63849
Patch

Looks great! Though I&apos;ll set r-, you should upload a new version of this patch, after the other patch lands, so we can get EWS results before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>262584</commentid>
    <comment_count>9</comment_count>
      <attachid>63995</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2010-08-10 02:59:49 -0700</bug_when>
    <thetext>Created attachment 63995
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>262605</commentid>
    <comment_count>10</comment_count>
      <attachid>63995</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-08-10 03:50:54 -0700</bug_when>
    <thetext>Comment on attachment 63995
Patch

r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>262613</commentid>
    <comment_count>11</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2010-08-10 04:13:10 -0700</bug_when>
    <thetext>Committed r65065: &lt;http://trac.webkit.org/changeset/65065&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63849</attachid>
            <date>2010-08-08 12:40:46 -0700</date>
            <delta_ts>2010-08-10 02:59:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-43696-20100808214044.patch</filename>
            <type>text/plain</type>
            <size>16000</size>
            <attacher name="Dirk Schulze">krit</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NDk1MykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDAgQEAKKzIwMTAtMDgtMDggIERpcmsgU2NodWx6ZSAgPGtyaXRAd2Via2l0Lm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2Ug
U1ZHUGF0aFBhcnNlciB0byBjcmVhdGUgU1ZHIHBhdGhzIGFuZCB0byBwZXJmb3JtIHBhdGggYW5p
bWF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NDM2OTYKKworICAgICAgICBSZW1vdmVkIHRvU3RyaW5nKCkgZnVuY3Rpb25zIGluIGFsbCBTVkdQ
YXRoU2VnKiBvYmplY3RzIGFzIHdlbGwgYXMgdG9QYXRoKCkgaW4gU1ZHUGF0aFNlZ0xpc3QuCisg
ICAgICAgIFRoZXNlIGhhY2tzIHdlcmUgdXNlZCB0byBjcmVhdGUgYSBTVkcgcGF0aCBkYXRhIHN0
cmluZyBvciBhIHBsYXRmb3JtIHBhdGggZnJvbSBhIFNWR1BhdGhTZWdMaXN0LgorICAgICAgICBV
c2UgdGhlIG5ldyBTVkdQYXRoUGFyc2VyIGluc3RlYWQuCisKKyAgICAgICAgRG9lc24ndCBhZmZl
Y3QgYW55IHRlc3RzLgorCisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVFbGVtZW50OjphcHBseVJlc3VsdHNUb1RhcmdldCk6
CisgICAgICAgICogc3ZnL1NWR1BhdGhFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNW
R1BhdGhFbGVtZW50Ojp0b1BhdGhEYXRhKToKKyAgICAgICAgKiBzdmcvU1ZHUGF0aFBhcnNlckZh
Y3RvcnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aFBhcnNlckZhY3Rvcnk6OmJ1aWxk
UGF0aEZyb21TVkdQYXRoU2VnTGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoUGFyc2Vy
RmFjdG9yeTo6YnVpbGRTdHJpbmdGcm9tQnl0ZVN0cmVhbSk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdQYXRoUGFyc2VyRmFjdG9yeTo6YnVpbGRTdHJpbmdGcm9tU1ZHUGF0aFNlZ0xpc3QpOgorICAg
ICAgICAqIHN2Zy9TVkdQYXRoUGFyc2VyRmFjdG9yeS5oOgorICAgICAgICAqIHN2Zy9TVkdQYXRo
U2VnLmNwcDoKKyAgICAgICAgKiBzdmcvU1ZHUGF0aFNlZy5oOgorICAgICAgICAqIHN2Zy9TVkdQ
YXRoU2VnQXJjLmNwcDoKKyAgICAgICAgKiBzdmcvU1ZHUGF0aFNlZ0FyYy5oOgorICAgICAgICAq
IHN2Zy9TVkdQYXRoU2VnQ2xvc2VQYXRoLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2Vn
Q2xvc2VQYXRoOjpwYXRoU2VnVHlwZUFzTGV0dGVyKToKKyAgICAgICAgKiBzdmcvU1ZHUGF0aFNl
Z0N1cnZldG9DdWJpYy5oOgorICAgICAgICAqIHN2Zy9TVkdQYXRoU2VnQ3VydmV0b0N1YmljU21v
b3RoLmg6CisgICAgICAgICogc3ZnL1NWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljLmg6CisgICAg
ICAgICogc3ZnL1NWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsLmg6CisgICAgICAgICogc3ZnL1NW
R1BhdGhTZWdMaW5ldG9WZXJ0aWNhbC5oOgorICAgICAgICAqIHN2Zy9TVkdQYXRoU2VnTGlzdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2VnTGlzdDo6Z2V0UGF0aFNlZ0F0TGVuZ3Ro
KToKKyAgICAgICAgKiBzdmcvU1ZHUGF0aFNlZ0xpc3QuaDoKKwogMjAxMC0wOC0wOCAgTmlraXRh
IFZhc2lseWV2ICA8bWVAZWx2MXMucnU+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgUGF2ZWwgRmVs
ZG1hbi4KSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0FuaW1hdGVFbGVtZW50LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3N2Zy9TVkdBbmltYXRlRWxlbWVudC5jcHAJKHJldmlzaW9uIDY0OTQ5KQor
KysgV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
NzksMTIgKzI3OSw4IEBAIHZvaWQgU1ZHQW5pbWF0ZUVsZW1lbnQ6OmFwcGx5UmVzdWx0c1RvVGEK
ICAgICAgICAgICAgIC8vICJwcm9jZXNzZWQiIHBhdGhzIHdoZXJlIGNvbXBsZXggc2hhcGVzIGFy
ZSByZXBsYWNlZCB3aXRoIHNpbXBsZXIgb25lcy4gUGF0aCAKICAgICAgICAgICAgIC8vIG1vcnBo
aW5nIG5lZWRzIHRvIGJlIGRvbmUgd2l0aCB1bnByb2Nlc3NlZCBwYXRocy4KICAgICAgICAgICAg
IC8vIEZJWE1FOiBUaGlzIGNvdWxkIGJlIG9wdGltaXplZCBpZiBwYXRocyB3ZXJlIG5vdCBwcm9j
ZXNzZWQgYXQgcGFyc2UgdGltZS4KLSAgICAgICAgICAgIHVuc2lnbmVkIGl0ZW1Db3VudCA9IG1f
YW5pbWF0ZWRQYXRoLT5udW1iZXJPZkl0ZW1zKCk7Ci0gICAgICAgICAgICBFeGNlcHRpb25Db2Rl
IGVjOwotICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBuID0gMDsgbiA8IGl0ZW1Db3VudDsgKytu
KSB7Ci0gICAgICAgICAgICAgICAgUmVmUHRyPFNWR1BhdGhTZWc+IHNlZ21lbnQgPSBtX2FuaW1h
dGVkUGF0aC0+Z2V0SXRlbShuLCBlYyk7Ci0gICAgICAgICAgICAgICAgdmFsdWVUb0FwcGx5LmFw
cGVuZChzZWdtZW50LT50b1N0cmluZygpICsgIiAiKTsKLSAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIFNWR1BhdGhQYXJzZXJGYWN0b3J5KiBmYWN0b3J5ID0gU1ZHUGF0aFBhcnNlckZhY3Rvcnk6
OnNlbGYoKTsKKyAgICAgICAgICAgIGZhY3RvcnktPmJ1aWxkU3RyaW5nRnJvbVNWR1BhdGhTZWdM
aXN0KG1fYW5pbWF0ZWRQYXRoLmdldCgpLCB2YWx1ZVRvQXBwbHksIFVuYWx0ZXJlZFBhcnNpbmcp
OwogICAgICAgICB9CiAgICAgfSBlbHNlIGlmIChtX3Byb3BlcnR5VHlwZSA9PSBQb2ludHNQcm9w
ZXJ0eSkgewogICAgICAgICBpZiAoIW1fYW5pbWF0ZWRQb2ludHMgfHwgIW1fYW5pbWF0ZWRQb2lu
dHMtPm51bWJlck9mSXRlbXMoKSkKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR1BhdGhFbGVtZW50LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5jcHAJKHJldmlzaW9u
IDY0OTQ5KQorKysgV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yNjMsNyArMjYzLDEwIEBAIFNWR1BhdGhTZWdMaXN0KiBTVkdQYXRoRWxlbWVudDo6YW5p
bWF0ZWQKIAogUGF0aCBTVkdQYXRoRWxlbWVudDo6dG9QYXRoRGF0YSgpIGNvbnN0CiB7Ci0gICAg
cmV0dXJuIHBhdGhTZWdMaXN0KCktPnRvUGF0aERhdGEoKTsKKyAgICBQYXRoIHJlc3VsdDsKKyAg
ICBTVkdQYXRoUGFyc2VyRmFjdG9yeSogZmFjdG9yeSA9IFNWR1BhdGhQYXJzZXJGYWN0b3J5Ojpz
ZWxmKCk7CisgICAgZmFjdG9yeS0+YnVpbGRQYXRoRnJvbVNWR1BhdGhTZWdMaXN0KHBhdGhTZWdM
aXN0KCksIHJlc3VsdCk7CisgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogfQpJbmRleDogV2ViQ29y
ZS9zdmcvU1ZHUGF0aFBhcnNlckZhY3RvcnkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3Zn
L1NWR1BhdGhQYXJzZXJGYWN0b3J5LmNwcAkocmV2aXNpb24gNjQ5NDkpCisrKyBXZWJDb3JlL3N2
Zy9TVkdQYXRoUGFyc2VyRmFjdG9yeS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDkgKzI2LDEw
IEBACiAjaW5jbHVkZSAiU1ZHUGF0aEJ1aWxkZXIuaCIKICNpbmNsdWRlICJTVkdQYXRoQnl0ZVN0
cmVhbUJ1aWxkZXIuaCIKICNpbmNsdWRlICJTVkdQYXRoQnl0ZVN0cmVhbVNvdXJjZS5oIgotI2lu
Y2x1ZGUgIlNWR1BhdGhTdHJpbmdCdWlsZGVyLmgiCiAjaW5jbHVkZSAiU1ZHUGF0aFBhcnNlci5o
IgogI2luY2x1ZGUgIlNWR1BhdGhTZWdMaXN0QnVpbGRlci5oIgorI2luY2x1ZGUgIlNWR1BhdGhT
ZWdMaXN0U291cmNlLmgiCisjaW5jbHVkZSAiU1ZHUGF0aFN0cmluZ0J1aWxkZXIuaCIKICNpbmNs
dWRlICJTVkdQYXRoU3RyaW5nU291cmNlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTEy
OSw2ICsxMzAsMjEgQEAgYm9vbCBTVkdQYXRoUGFyc2VyRmFjdG9yeTo6YnVpbGRQYXRoRnJvbQog
ICAgIHJldHVybiBvazsKIH0KIAorYm9vbCBTVkdQYXRoUGFyc2VyRmFjdG9yeTo6YnVpbGRQYXRo
RnJvbVNWR1BhdGhTZWdMaXN0KFNWR1BhdGhTZWdMaXN0KiBwYXRoU2VnTGlzdCwgUGF0aCYgcmVz
dWx0KQoreworICAgIEFTU0VSVChwYXRoU2VnTGlzdCk7CisgICAgaWYgKCFwYXRoU2VnTGlzdC0+
bnVtYmVyT2ZJdGVtcygpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBTVkdQYXRoQnVp
bGRlciogYnVpbGRlciA9IGdsb2JhbFNWR1BhdGhCdWlsZGVyKHJlc3VsdCk7CisKKyAgICBPd25Q
dHI8U1ZHUGF0aFNlZ0xpc3RTb3VyY2U+IHNvdXJjZSA9IFNWR1BhdGhTZWdMaXN0U291cmNlOjpj
cmVhdGUocGF0aFNlZ0xpc3QpOworICAgIFNWR1BhdGhQYXJzZXIqIHBhcnNlciA9IGdsb2JhbFNW
R1BhdGhQYXJzZXIoc291cmNlLmdldCgpLCBidWlsZGVyKTsKKyAgICBib29sIG9rID0gcGFyc2Vy
LT5wYXJzZVBhdGhEYXRhRnJvbVNvdXJjZShOb3JtYWxpemVkUGFyc2luZyk7CisgICAgcGFyc2Vy
LT5jbGVhbnVwKCk7CisgICAgcmV0dXJuIG9rOworfQorCiBib29sIFNWR1BhdGhQYXJzZXJGYWN0
b3J5OjpidWlsZFNWR1BhdGhTZWdMaXN0RnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIGQsIFNWR1Bh
dGhTZWdMaXN0KiByZXN1bHQsIFBhdGhQYXJzaW5nTW9kZSBwYXJzaW5nTW9kZSkKIHsKICAgICBB
U1NFUlQocmVzdWx0KTsKQEAgLTE3MSw4ICsxODcsMjQgQEAgYm9vbCBTVkdQYXRoUGFyc2VyRmFj
dG9yeTo6YnVpbGRTdHJpbmdGcgogICAgIE93blB0cjxTVkdQYXRoQnl0ZVN0cmVhbVNvdXJjZT4g
c291cmNlID0gU1ZHUGF0aEJ5dGVTdHJlYW1Tb3VyY2U6OmNyZWF0ZShzdHJlYW0pOwogICAgIFNW
R1BhdGhQYXJzZXIqIHBhcnNlciA9IGdsb2JhbFNWR1BhdGhQYXJzZXIoc291cmNlLmdldCgpLCBi
dWlsZGVyKTsKICAgICBib29sIG9rID0gcGFyc2VyLT5wYXJzZVBhdGhEYXRhRnJvbVNvdXJjZShw
YXJzaW5nTW9kZSk7CisgICAgcmVzdWx0ID0gYnVpbGRlci0+cmVzdWx0KCk7CiAgICAgcGFyc2Vy
LT5jbGVhbnVwKCk7CisgICAgcmV0dXJuIG9rOworfQorCitib29sIFNWR1BhdGhQYXJzZXJGYWN0
b3J5OjpidWlsZFN0cmluZ0Zyb21TVkdQYXRoU2VnTGlzdChTVkdQYXRoU2VnTGlzdCogcGF0aFNl
Z0xpc3QsIFN0cmluZyYgcmVzdWx0LCBQYXRoUGFyc2luZ01vZGUgcGFyc2luZ01vZGUpCit7Cisg
ICAgQVNTRVJUKHBhdGhTZWdMaXN0KTsKKyAgICBpZiAoIXBhdGhTZWdMaXN0LT5udW1iZXJPZkl0
ZW1zKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsgCisKKyAgICBTVkdQYXRoU3RyaW5nQnVpbGRl
ciogYnVpbGRlciA9IGdsb2JhbFNWR1BhdGhTdHJpbmdCdWlsZGVyKCk7CisKKyAgICBPd25QdHI8
U1ZHUGF0aFNlZ0xpc3RTb3VyY2U+IHNvdXJjZSA9IFNWR1BhdGhTZWdMaXN0U291cmNlOjpjcmVh
dGUocGF0aFNlZ0xpc3QpOworICAgIFNWR1BhdGhQYXJzZXIqIHBhcnNlciA9IGdsb2JhbFNWR1Bh
dGhQYXJzZXIoc291cmNlLmdldCgpLCBidWlsZGVyKTsKKyAgICBib29sIG9rID0gcGFyc2VyLT5w
YXJzZVBhdGhEYXRhRnJvbVNvdXJjZShwYXJzaW5nTW9kZSk7CiAgICAgcmVzdWx0ID0gYnVpbGRl
ci0+cmVzdWx0KCk7CisgICAgcGFyc2VyLT5jbGVhbnVwKCk7CiAgICAgcmV0dXJuIG9rOwogfQog
CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdQYXRoUGFyc2VyRmFjdG9yeS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvc3ZnL1NWR1BhdGhQYXJzZXJGYWN0b3J5LmgJKHJldmlzaW9uIDY0OTQ5KQorKysg
V2ViQ29yZS9zdmcvU1ZHUGF0aFBhcnNlckZhY3RvcnkuaAkod29ya2luZyBjb3B5KQpAQCAtMzUs
MTIgKzM1LDE0IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgU1ZHUGF0aFBhcnNlckZhY3RvcnkqIHNl
bGYoKTsKIAogICAgIGJvb2wgYnVpbGRQYXRoRnJvbVN0cmluZyhjb25zdCBTdHJpbmcmLCBQYXRo
Jik7Ci0gICAgYm9vbCBidWlsZFBhdGhGcm9tQnl0ZVN0cmVhbShTVkdQYXRoQnl0ZVN0cmVhbSos
IFBhdGgmIHJlc3VsdCk7CisgICAgYm9vbCBidWlsZFBhdGhGcm9tQnl0ZVN0cmVhbShTVkdQYXRo
Qnl0ZVN0cmVhbSosIFBhdGgmKTsKKyAgICBib29sIGJ1aWxkUGF0aEZyb21TVkdQYXRoU2VnTGlz
dChTVkdQYXRoU2VnTGlzdCosIFBhdGgmKTsKIAogICAgIGJvb2wgYnVpbGRTVkdQYXRoU2VnTGlz
dEZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiwgU1ZHUGF0aFNlZ0xpc3QqLCBQYXRoUGFyc2luZ01v
ZGUpOwogICAgIGJvb2wgYnVpbGRTVkdQYXRoU2VnTGlzdEZyb21CeXRlU3RyZWFtKFNWR1BhdGhC
eXRlU3RyZWFtKiwgU1ZHUGF0aFNlZ0xpc3QqLCBQYXRoUGFyc2luZ01vZGUpOwogCiAgICAgYm9v
bCBidWlsZFN0cmluZ0Zyb21CeXRlU3RyZWFtKFNWR1BhdGhCeXRlU3RyZWFtKiwgU3RyaW5nJiwg
UGF0aFBhcnNpbmdNb2RlKTsKKyAgICBib29sIGJ1aWxkU3RyaW5nRnJvbVNWR1BhdGhTZWdMaXN0
KFNWR1BhdGhTZWdMaXN0KiwgU3RyaW5nJiwgUGF0aFBhcnNpbmdNb2RlKTsKIAogICAgIGJvb2wg
YnVpbGRTVkdQYXRoQnl0ZVN0cmVhbUZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiwgT3duUHRyPFNW
R1BhdGhCeXRlU3RyZWFtPiYsIFBhdGhQYXJzaW5nTW9kZSk7CiAKSW5kZXg6IFdlYkNvcmUvc3Zn
L1NWR1BhdGhTZWcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR1BhdGhTZWcuY3Bw
CShyZXZpc2lvbiA2NDk0OSkKKysrIFdlYkNvcmUvc3ZnL1NWR1BhdGhTZWcuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC00NSwyMCArNDUsMTAgQEAgU3RyaW5nIFNWR1BhdGhTZWc6OnBhdGhTZWdUeXBl
QXNMZXR0ZXIoKQogICAgIHJldHVybiAiIjsKIH0KIAotU3RyaW5nIFNWR1BhdGhTZWc6OnRvU3Ry
aW5nKCkgY29uc3QKLXsKLSAgICByZXR1cm4gIiI7Ci19Ci0KIGNvbnN0IFF1YWxpZmllZE5hbWUm
IFNWR1BhdGhTZWc6OmFzc29jaWF0ZWRBdHRyaWJ1dGVOYW1lKCkgY29uc3QKIHsKICAgICByZXR1
cm4gU1ZHTmFtZXM6OmRBdHRyOwogfQogCi1TdHJpbmcgU1ZHUGF0aFNlZ1NpbmdsZUNvb3JkOjp0
b1N0cmluZygpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSArIFN0
cmluZzo6Zm9ybWF0KCIgJS42bGcgJS42bGciLCBtX3gsIG1feSk7Ci19Ci0KIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKICNlbmRpZiAvLyBFTkFCTEUoU1ZHKQpJbmRleDogV2ViQ29yZS9zdmcvU1ZH
UGF0aFNlZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR1BhdGhTZWcuaAkocmV2aXNp
b24gNjQ5NDkpCisrKyBXZWJDb3JlL3N2Zy9TVkdQYXRoU2VnLmgJKHdvcmtpbmcgY29weSkKQEAg
LTg1LDcgKzg1LDYgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB1bnNpZ25lZCBzaG9ydCBwYXRo
U2VnVHlwZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIo
KSBjb25zdDsKLSAgICB2aXJ0dWFsIFN0cmluZyB0b1N0cmluZygpIGNvbnN0OwogCiAgICAgY29u
c3QgUXVhbGlmaWVkTmFtZSYgYXNzb2NpYXRlZEF0dHJpYnV0ZU5hbWUoKSBjb25zdDsKICAgICAK
QEAgLTEwNyw4ICsxMDYsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRZKGZsb2F0IHkpIHsgbV95
ID0geTsgfQogICAgIGZsb2F0IHkoKSBjb25zdCB7IHJldHVybiBtX3k7IH0KIAotICAgIHZpcnR1
YWwgU3RyaW5nIHRvU3RyaW5nKCkgY29uc3Q7Ci0KIHByaXZhdGU6CiAgICAgZmxvYXQgbV94Owog
ICAgIGZsb2F0IG1feTsKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR1BhdGhTZWdBcmMuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR1BhdGhTZWdBcmMuY3BwCShyZXZpc2lvbiA2NDk0OSkK
KysrIFdlYkNvcmUvc3ZnL1NWR1BhdGhTZWdBcmMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNSwx
MSArMjUsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVN0cmluZyBTVkdQYXRoU2VnQXJj
Ojp0b1N0cmluZygpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSAr
IFN0cmluZzo6Zm9ybWF0KCIgJS42bGcgJS42bGcgJS42bGcgJWQgJWQgJS42bGcgJS42bGciLCBt
X3IxLCBtX3IyLCBtX2FuZ2xlLCBtX2xhcmdlQXJjRmxhZywgbV9zd2VlcEZsYWcsIG1feCwgbV95
KTsKLX0KLQogU1ZHUGF0aFNlZ0FyY0Ficzo6U1ZHUGF0aFNlZ0FyY0FicyhmbG9hdCB4LCBmbG9h
dCB5LCBmbG9hdCByMSwgZmxvYXQgcjIsIGZsb2F0IGFuZ2xlLCBib29sIGxhcmdlQXJjRmxhZywg
Ym9vbCBzd2VlcEZsYWcpCiAgICAgOiBTVkdQYXRoU2VnQXJjKHgsIHksIHIxLCByMiwgYW5nbGUs
IGxhcmdlQXJjRmxhZywgc3dlZXBGbGFnKQogewpJbmRleDogV2ViQ29yZS9zdmcvU1ZHUGF0aFNl
Z0FyYy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR1BhdGhTZWdBcmMuaAkocmV2aXNp
b24gNjQ5NDkpCisrKyBXZWJDb3JlL3N2Zy9TVkdQYXRoU2VnQXJjLmgJKHdvcmtpbmcgY29weSkK
QEAgLTQxLDggKzQxLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB7CiAgICAgICAg
IH0KIAotICAgICAgICB2aXJ0dWFsIFN0cmluZyB0b1N0cmluZygpIGNvbnN0OwotCiAgICAgICAg
IHZvaWQgc2V0WChmbG9hdCB4KSB7IG1feCA9IHg7IH0KICAgICAgICAgZmxvYXQgeCgpIGNvbnN0
IHsgcmV0dXJuIG1feDsgfQogCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdQYXRoU2VnQ2xvc2VQYXRo
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0Nsb3NlUGF0aC5oCShyZXZp
c2lvbiA2NDk0OSkKKysrIFdlYkNvcmUvc3ZnL1NWR1BhdGhTZWdDbG9zZVBhdGguaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzUsNyArMzUsNiBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHVuc2lnbmVk
IHNob3J0IHBhdGhTZWdUeXBlKCkgY29uc3QgeyByZXR1cm4gUEFUSFNFR19DTE9TRVBBVEg7IH0K
ICAgICB2aXJ0dWFsIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgeyByZXR1cm4g
IloiOyB9Ci0gICAgdmlydHVhbCBTdHJpbmcgdG9TdHJpbmcoKSBjb25zdCB7IHJldHVybiAiWiI7
IH0KIAogcHJpdmF0ZToKICAgICBTVkdQYXRoU2VnQ2xvc2VQYXRoKCk7CkluZGV4OiBXZWJDb3Jl
L3N2Zy9TVkdQYXRoU2VnQ3VydmV0b0N1YmljLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcv
U1ZHUGF0aFNlZ0N1cnZldG9DdWJpYy5oCShyZXZpc2lvbiA2NDk0OSkKKysrIFdlYkNvcmUvc3Zn
L1NWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWMuaAkod29ya2luZyBjb3B5KQpAQCAtMzIsOCArMzIsNiBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgcHVibGljOgogICAgICAgICBTVkdQYXRoU2VnQ3Vy
dmV0b0N1YmljKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHgxLCBmbG9hdCB5MSwgZmxvYXQgeDIs
IGZsb2F0IHkyKSA6IFNWR1BhdGhTZWcoKSAsIG1feCh4KSAsIG1feSh5KSAsIG1feDEoeDEpICwg
bV95MSh5MSkgLCBtX3gyKHgyKSAsIG1feTIoeTIpIHt9CiAKLSAgICAgICAgdmlydHVhbCBTdHJp
bmcgdG9TdHJpbmcoKSBjb25zdCB7IHJldHVybiBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgKyBTdHJp
bmc6OmZvcm1hdCgiICUuNmxnICUuNmxnICUuNmxnICUuNmxnICUuNmxnICUuNmxnIiwgbV94MSwg
bV95MSwgbV94MiwgbV95MiwgbV94LCBtX3kpOyB9Ci0KICAgICAgICAgdm9pZCBzZXRYKGZsb2F0
IHgpIHsgbV94ID0geDsgfQogICAgICAgICBmbG9hdCB4KCkgY29uc3QgeyByZXR1cm4gbV94OyB9
CiAKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGguaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoLmgJKHJl
dmlzaW9uIDY0OTQ5KQorKysgV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290
aC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw4ICszMyw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAgICAgU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aChmbG9hdCB4LCBmbG9hdCB5LCBm
bG9hdCB4MiwgZmxvYXQgeTIpCiAgICAgICAgIDogbV94KHgpLCBtX3koeSksIG1feDIoeDIpLCBt
X3kyKHkyKSB7IH0KIAotICAgICAgICB2aXJ0dWFsIFN0cmluZyB0b1N0cmluZygpIGNvbnN0IHsg
cmV0dXJuIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSArIFN0cmluZzo6Zm9ybWF0KCIgJS42bGcgJS42
bGcgJS42bGcgJS42bGciLCBtX3gyLCBtX3kyLCBtX3gsIG1feSk7IH0KLQogICAgICAgICB2b2lk
IHNldFgoZmxvYXQgeCkgeyBtX3ggPSB4OyB9CiAgICAgICAgIGZsb2F0IHgoKSBjb25zdCB7IHJl
dHVybiBtX3g7IH0KIApJbmRleDogV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0
aWMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRp
Yy5oCShyZXZpc2lvbiA2NDk0OSkKKysrIFdlYkNvcmUvc3ZnL1NWR1BhdGhTZWdDdXJ2ZXRvUXVh
ZHJhdGljLmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDggKzMzLDYgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgICAgICBTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpYyhmbG9hdCB4LCBmbG9hdCB5
LCBmbG9hdCB4MSwgZmxvYXQgeTEpCiAgICAgICAgIDogU1ZHUGF0aFNlZygpLCBtX3goeCksIG1f
eSh5KSwgbV94MSh4MSksIG1feTEoeTEpIHt9CiAKLSAgICAgICAgdmlydHVhbCBTdHJpbmcgdG9T
dHJpbmcoKSBjb25zdCB7IHJldHVybiBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgKyBTdHJpbmc6OmZv
cm1hdCgiICUuNmxnICUuNmxnICUuNmxnICUuNmxnIiwgbV94MSwgbV95MSwgbV94LCBtX3kpOyB9
Ci0KICAgICAgICAgdm9pZCBzZXRYKGZsb2F0IHgpIHsgbV94ID0geDsgfQogICAgICAgICBmbG9h
dCB4KCkgY29uc3QgeyByZXR1cm4gbV94OyB9CiAKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR1BhdGhT
ZWdMaW5ldG9Ib3Jpem9udGFsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHUGF0aFNl
Z0xpbmV0b0hvcml6b250YWwuaAkocmV2aXNpb24gNjQ5NDkpCisrKyBXZWJDb3JlL3N2Zy9TVkdQ
YXRoU2VnTGluZXRvSG9yaXpvbnRhbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw4ICszMiw2IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBwdWJsaWM6CiAgICAgICAgIFNWR1BhdGhTZWdMaW5l
dG9Ib3Jpem9udGFsKGZsb2F0IHgpIDogU1ZHUGF0aFNlZygpLCBtX3goeCkge30KIAotICAgICAg
ICB2aXJ0dWFsIFN0cmluZyB0b1N0cmluZygpIGNvbnN0IHsgcmV0dXJuIHBhdGhTZWdUeXBlQXNM
ZXR0ZXIoKSArIFN0cmluZzo6Zm9ybWF0KCIgJS42bGciLCBtX3gpOyB9Ci0KICAgICAgICAgdm9p
ZCBzZXRYKGZsb2F0IHgpIHsgbV94ID0geDsgfQogICAgICAgICBmbG9hdCB4KCkgY29uc3QgeyBy
ZXR1cm4gbV94OyB9CiAKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR1BhdGhTZWdMaW5ldG9WZXJ0aWNh
bC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbC5o
CShyZXZpc2lvbiA2NDk0OSkKKysrIFdlYkNvcmUvc3ZnL1NWR1BhdGhTZWdMaW5ldG9WZXJ0aWNh
bC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw4ICszMiw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICBwdWJsaWM6CiAgICAgICAgIFNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbChmbG9hdCB5KSA6
IFNWR1BhdGhTZWcoKSwgbV95KHkpIHt9CiAKLSAgICAgICAgdmlydHVhbCBTdHJpbmcgdG9TdHJp
bmcoKSBjb25zdCB7IHJldHVybiBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgKyBTdHJpbmc6OmZvcm1h
dCgiICUuNmxnIiwgbV95KTsgfQotCiAgICAgICAgIHZvaWQgc2V0WShmbG9hdCB5KSB7IG1feSA9
IHk7IH0KICAgICAgICAgZmxvYXQgeSgpIGNvbnN0IHsgcmV0dXJuIG1feTsgfQogCkluZGV4OiBX
ZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGlzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcv
U1ZHUGF0aFNlZ0xpc3QuY3BwCShyZXZpc2lvbiA2NDk0OSkKKysrIFdlYkNvcmUvc3ZnL1NWR1Bh
dGhTZWdMaXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAzLDYyICsxMDMsNiBAQCB1bnNpZ25l
ZCBTVkdQYXRoU2VnTGlzdDo6Z2V0UGF0aFNlZ0F0TGVuCiAgICAgLy8gV2ViS2l0L09wZXJhL0ZG
IGFsbCByZXR1cm4gdGhlIGxhc3QgcGF0aCBzZWdtZW50IGlmIHRoZSBkaXN0YW5jZSBleGNlZWRz
IHRoZSBhY3R1YWwgcGF0aCBsZW5ndGg6CiAgICAgcmV0dXJuIHRyYXZlcnNhbFN0YXRlLm1fc2Vn
bWVudEluZGV4ID8gdHJhdmVyc2FsU3RhdGUubV9zZWdtZW50SW5kZXggLSAxIDogMDsKIH0KLQot
UGF0aCBTVkdQYXRoU2VnTGlzdDo6dG9QYXRoRGF0YSgpCi17Ci0gICAgLy8gRklYTUUgOiBUaGlz
IHNob3VsZCBhbHNvIHN1cHBvcnQgbm9uLW5vcm1hbGl6ZWQgUGF0aFNlZ0xpc3RzCi0gICAgUGF0
aCBwYXRoRGF0YTsKLSAgICBpbnQgbGVuID0gbnVtYmVyT2ZJdGVtcygpOwotICAgIEV4Y2VwdGlv
bkNvZGUgZWMgPSAwOwotICAgIEZsb2F0UG9pbnQgcHJldmlvdXNFbmRQb2ludCgwLCAwKTsKLSAg
ICBmb3IgKGludCBpID0gMDsgaSA8IGxlbjsgKytpKSB7Ci0gICAgICAgIFNWR1BhdGhTZWcqIHNl
Z21lbnQgPSBnZXRJdGVtKGksIGVjKS5nZXQoKTsKLSAgICAgICAgaWYgKGVjKQotICAgICAgICAg
ICAgcmV0dXJuIFBhdGgoKTsKLSAgICAgICAgc3dpdGNoIChzZWdtZW50LT5wYXRoU2VnVHlwZSgp
KSB7Ci0gICAgICAgIGNhc2UgUGF0aFNlZ01vdmVUb0FiczogewotICAgICAgICAgICAgU1ZHUGF0
aFNlZ01vdmV0b0FicyogbW92ZVRvID0gc3RhdGljX2Nhc3Q8U1ZHUGF0aFNlZ01vdmV0b0Ficyo+
KHNlZ21lbnQpOwotICAgICAgICAgICAgRmxvYXRQb2ludCBlbmRQb2ludChtb3ZlVG8tPngoKSwg
bW92ZVRvLT55KCkpOwotICAgICAgICAgICAgcGF0aERhdGEubW92ZVRvKGVuZFBvaW50KTsKLSAg
ICAgICAgICAgIHByZXZpb3VzRW5kUG9pbnQgPSBlbmRQb2ludDsKLSAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICB9Ci0gICAgICAgIGNhc2UgUGF0aFNlZ0xpbmVUb0FiczogewotICAgICAgICAg
ICAgU1ZHUGF0aFNlZ0xpbmV0b0FicyogbGluZVRvID0gc3RhdGljX2Nhc3Q8U1ZHUGF0aFNlZ0xp
bmV0b0Ficyo+KHNlZ21lbnQpOwotICAgICAgICAgICAgRmxvYXRQb2ludCBlbmRQb2ludChsaW5l
VG8tPngoKSwgbGluZVRvLT55KCkpOwotICAgICAgICAgICAgcGF0aERhdGEuYWRkTGluZVRvKGVu
ZFBvaW50KTsKLSAgICAgICAgICAgIHByZXZpb3VzRW5kUG9pbnQgPSBlbmRQb2ludDsKLSAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIGNhc2UgUGF0aFNlZ0N1cnZlVG9DdWJp
Y0FiczogewotICAgICAgICAgICAgU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY0FicyogY3VydmVUbyA9
IHN0YXRpY19jYXN0PFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNBYnMqPihzZWdtZW50KTsKLSAgICAg
ICAgICAgIEZsb2F0UG9pbnQgZW5kUG9pbnQoY3VydmVUby0+eCgpLCBjdXJ2ZVRvLT55KCkpOwot
ICAgICAgICAgICAgcGF0aERhdGEuYWRkQmV6aWVyQ3VydmVUbyhGbG9hdFBvaW50KGN1cnZlVG8t
PngxKCksIGN1cnZlVG8tPnkxKCkpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBGbG9hdFBvaW50KGN1cnZlVG8tPngyKCksIGN1cnZlVG8tPnkyKCkpLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRQb2ludCk7Ci0gICAgICAgICAgICBwcmV2
aW91c0VuZFBvaW50ID0gZW5kUG9pbnQ7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQot
ICAgICAgICBjYXNlIFBhdGhTZWdDdXJ2ZVRvQ3ViaWNSZWw6IHsKLSAgICAgICAgICAgIFNWR1Bh
dGhTZWdDdXJ2ZXRvQ3ViaWNSZWwqIGN1cnZlVG8gPSBzdGF0aWNfY2FzdDxTVkdQYXRoU2VnQ3Vy
dmV0b0N1YmljUmVsKj4oc2VnbWVudCk7Ci0gICAgICAgICAgICBGbG9hdFNpemUgZW5kUG9pbnQo
Y3VydmVUby0+eCgpLCBjdXJ2ZVRvLT55KCkpOwotICAgICAgICAgICAgcGF0aERhdGEuYWRkQmV6
aWVyQ3VydmVUbyhwcmV2aW91c0VuZFBvaW50ICsgRmxvYXRTaXplKGN1cnZlVG8tPngxKCksIGN1
cnZlVG8tPnkxKCkpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2
aW91c0VuZFBvaW50ICsgRmxvYXRTaXplKGN1cnZlVG8tPngyKCksIGN1cnZlVG8tPnkyKCkpLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91c0VuZFBvaW50ICsg
ZW5kUG9pbnQpOwotICAgICAgICAgICAgcHJldmlvdXNFbmRQb2ludCArPSBlbmRQb2ludDsKLSAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIGNhc2UgUGF0aFNlZ0Nsb3NlUGF0
aDoKLSAgICAgICAgICAgIHBhdGhEYXRhLmNsb3NlU3VicGF0aCgpOwotICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBBU1NFUlQoZmFsc2UpOyAvLyBGSVhN
RTogVGhpcyBvbmx5IHdvcmtzIHdpdGggbm9ybWFsaXplZC9wcm9jZXNzZWQgcGF0aCBkYXRhLgot
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgCi0gICAgcmV0dXJuIHBh
dGhEYXRhOwotfQogICAgIAogZmxvYXQgYWRqdXN0QW5pbWF0ZWRWYWx1ZShmbG9hdCBmcm9tLCBm
bG9hdCB0bywgZmxvYXQgcHJvZ3Jlc3MpCiB7CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdQYXRoU2Vn
TGlzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR1BhdGhTZWdMaXN0LmgJKHJldmlz
aW9uIDY0OTQ5KQorKysgV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xpc3QuaAkod29ya2luZyBjb3B5
KQpAQCAtMzUsNyArMzUsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwg
flNWR1BhdGhTZWdMaXN0KCk7CiAKICAgICAgICAgdW5zaWduZWQgZ2V0UGF0aFNlZ0F0TGVuZ3Ro
KGRvdWJsZSwgRXhjZXB0aW9uQ29kZSYpOwotICAgICAgICBQYXRoIHRvUGF0aERhdGEoKTsKICAg
ICAgICAgCiAgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR1BhdGhTZWdMaXN0PiBjcmVhdGVB
bmltYXRlZChjb25zdCBTVkdQYXRoU2VnTGlzdCogZnJvbUxpc3QsIGNvbnN0IFNWR1BhdGhTZWdM
aXN0KiB0b0xpc3QsIGZsb2F0IHByb2dyZXNzKTsKICAgICAgICAgCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63995</attachid>
            <date>2010-08-10 02:59:49 -0700</date>
            <delta_ts>2010-08-10 03:50:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-43696-20100810115947.patch</filename>
            <type>text/plain</type>
            <size>16001</size>
            <attacher name="Dirk Schulze">krit</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NTA2MSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDAgQEAKKzIwMTAtMDgtMTAgIERpcmsgU2NodWx6ZSAgPGtyaXRAd2Via2l0Lm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2Ug
U1ZHUGF0aFBhcnNlciB0byBjcmVhdGUgU1ZHIHBhdGhzIGFuZCB0byBwZXJmb3JtIHBhdGggYW5p
bWF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NDM2OTYKKworICAgICAgICBSZW1vdmVkIHRvU3RyaW5nKCkgZnVuY3Rpb25zIGluIGFsbCBTVkdQ
YXRoU2VnKiBvYmplY3RzIGFzIHdlbGwgYXMgdG9QYXRoKCkgaW4gU1ZHUGF0aFNlZ0xpc3QuCisg
ICAgICAgIFRoZXNlIGhhY2tzIHdlcmUgdXNlZCB0byBjcmVhdGUgYSBTVkcgcGF0aCBkYXRhIHN0
cmluZyBvciBhIHBsYXRmb3JtIHBhdGggZnJvbSBhIFNWR1BhdGhTZWdMaXN0LgorICAgICAgICBV
c2UgdGhlIG5ldyBTVkdQYXRoUGFyc2VyIGluc3RlYWQuCisKKyAgICAgICAgRG9lc24ndCBhZmZl
Y3QgYW55IHRlc3RzLgorCisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVFbGVtZW50OjphcHBseVJlc3VsdHNUb1RhcmdldCk6
CisgICAgICAgICogc3ZnL1NWR1BhdGhFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNW
R1BhdGhFbGVtZW50Ojp0b1BhdGhEYXRhKToKKyAgICAgICAgKiBzdmcvU1ZHUGF0aFBhcnNlckZh
Y3RvcnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aFBhcnNlckZhY3Rvcnk6OmJ1aWxk
UGF0aEZyb21TVkdQYXRoU2VnTGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoUGFyc2Vy
RmFjdG9yeTo6YnVpbGRTdHJpbmdGcm9tQnl0ZVN0cmVhbSk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdQYXRoUGFyc2VyRmFjdG9yeTo6YnVpbGRTdHJpbmdGcm9tU1ZHUGF0aFNlZ0xpc3QpOgorICAg
ICAgICAqIHN2Zy9TVkdQYXRoUGFyc2VyRmFjdG9yeS5oOgorICAgICAgICAqIHN2Zy9TVkdQYXRo
U2VnLmNwcDoKKyAgICAgICAgKiBzdmcvU1ZHUGF0aFNlZy5oOgorICAgICAgICAqIHN2Zy9TVkdQ
YXRoU2VnQXJjLmNwcDoKKyAgICAgICAgKiBzdmcvU1ZHUGF0aFNlZ0FyYy5oOgorICAgICAgICAq
IHN2Zy9TVkdQYXRoU2VnQ2xvc2VQYXRoLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2Vn
Q2xvc2VQYXRoOjpwYXRoU2VnVHlwZUFzTGV0dGVyKToKKyAgICAgICAgKiBzdmcvU1ZHUGF0aFNl
Z0N1cnZldG9DdWJpYy5oOgorICAgICAgICAqIHN2Zy9TVkdQYXRoU2VnQ3VydmV0b0N1YmljU21v
b3RoLmg6CisgICAgICAgICogc3ZnL1NWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljLmg6CisgICAg
ICAgICogc3ZnL1NWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsLmg6CisgICAgICAgICogc3ZnL1NW
R1BhdGhTZWdMaW5ldG9WZXJ0aWNhbC5oOgorICAgICAgICAqIHN2Zy9TVkdQYXRoU2VnTGlzdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoU2VnTGlzdDo6Z2V0UGF0aFNlZ0F0TGVuZ3Ro
KToKKyAgICAgICAgKiBzdmcvU1ZHUGF0aFNlZ0xpc3QuaDoKKwogMjAxMC0wOC0xMCAgS2VudCBU
YW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4g
QWRsZXIuCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdBbmltYXRlRWxlbWVudC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZUVsZW1lbnQuY3BwCShyZXZpc2lvbiA2NTA2MSkK
KysrIFdlYkNvcmUvc3ZnL1NWR0FuaW1hdGVFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
Mjc5LDEyICsyNzksOCBAQCB2b2lkIFNWR0FuaW1hdGVFbGVtZW50OjphcHBseVJlc3VsdHNUb1Rh
CiAgICAgICAgICAgICAvLyAicHJvY2Vzc2VkIiBwYXRocyB3aGVyZSBjb21wbGV4IHNoYXBlcyBh
cmUgcmVwbGFjZWQgd2l0aCBzaW1wbGVyIG9uZXMuIFBhdGggCiAgICAgICAgICAgICAvLyBtb3Jw
aGluZyBuZWVkcyB0byBiZSBkb25lIHdpdGggdW5wcm9jZXNzZWQgcGF0aHMuCiAgICAgICAgICAg
ICAvLyBGSVhNRTogVGhpcyBjb3VsZCBiZSBvcHRpbWl6ZWQgaWYgcGF0aHMgd2VyZSBub3QgcHJv
Y2Vzc2VkIGF0IHBhcnNlIHRpbWUuCi0gICAgICAgICAgICB1bnNpZ25lZCBpdGVtQ291bnQgPSBt
X2FuaW1hdGVkUGF0aC0+bnVtYmVyT2ZJdGVtcygpOwotICAgICAgICAgICAgRXhjZXB0aW9uQ29k
ZSBlYzsKLSAgICAgICAgICAgIGZvciAodW5zaWduZWQgbiA9IDA7IG4gPCBpdGVtQ291bnQ7ICsr
bikgewotICAgICAgICAgICAgICAgIFJlZlB0cjxTVkdQYXRoU2VnPiBzZWdtZW50ID0gbV9hbmlt
YXRlZFBhdGgtPmdldEl0ZW0obiwgZWMpOwotICAgICAgICAgICAgICAgIHZhbHVlVG9BcHBseS5h
cHBlbmQoc2VnbWVudC0+dG9TdHJpbmcoKSArICIgIik7Ci0gICAgICAgICAgICB9CisgICAgICAg
ICAgICBTVkdQYXRoUGFyc2VyRmFjdG9yeSogZmFjdG9yeSA9IFNWR1BhdGhQYXJzZXJGYWN0b3J5
OjpzZWxmKCk7CisgICAgICAgICAgICBmYWN0b3J5LT5idWlsZFN0cmluZ0Zyb21TVkdQYXRoU2Vn
TGlzdChtX2FuaW1hdGVkUGF0aC5nZXQoKSwgdmFsdWVUb0FwcGx5LCBVbmFsdGVyZWRQYXJzaW5n
KTsKICAgICAgICAgfQogICAgIH0gZWxzZSBpZiAobV9wcm9wZXJ0eVR5cGUgPT0gUG9pbnRzUHJv
cGVydHkpIHsKICAgICAgICAgaWYgKCFtX2FuaW1hdGVkUG9pbnRzIHx8ICFtX2FuaW1hdGVkUG9p
bnRzLT5udW1iZXJPZkl0ZW1zKCkpCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuY3BwCShyZXZpc2lv
biA2NTA2MSkKKysrIFdlYkNvcmUvc3ZnL1NWR1BhdGhFbGVtZW50LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjYzLDcgKzI2MywxMCBAQCBTVkdQYXRoU2VnTGlzdCogU1ZHUGF0aEVsZW1lbnQ6OmFu
aW1hdGVkCiAKIFBhdGggU1ZHUGF0aEVsZW1lbnQ6OnRvUGF0aERhdGEoKSBjb25zdAogewotICAg
IHJldHVybiBwYXRoU2VnTGlzdCgpLT50b1BhdGhEYXRhKCk7CisgICAgUGF0aCByZXN1bHQ7Cisg
ICAgU1ZHUGF0aFBhcnNlckZhY3RvcnkqIGZhY3RvcnkgPSBTVkdQYXRoUGFyc2VyRmFjdG9yeTo6
c2VsZigpOworICAgIGZhY3RvcnktPmJ1aWxkUGF0aEZyb21TVkdQYXRoU2VnTGlzdChwYXRoU2Vn
TGlzdCgpLCByZXN1bHQpOworICAgIHJldHVybiByZXN1bHQ7CiB9CiAKIH0KSW5kZXg6IFdlYkNv
cmUvc3ZnL1NWR1BhdGhQYXJzZXJGYWN0b3J5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2
Zy9TVkdQYXRoUGFyc2VyRmFjdG9yeS5jcHAJKHJldmlzaW9uIDY1MDYxKQorKysgV2ViQ29yZS9z
dmcvU1ZHUGF0aFBhcnNlckZhY3RvcnkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw5ICsyNiwx
MCBAQAogI2luY2x1ZGUgIlNWR1BhdGhCdWlsZGVyLmgiCiAjaW5jbHVkZSAiU1ZHUGF0aEJ5dGVT
dHJlYW1CdWlsZGVyLmgiCiAjaW5jbHVkZSAiU1ZHUGF0aEJ5dGVTdHJlYW1Tb3VyY2UuaCIKLSNp
bmNsdWRlICJTVkdQYXRoU3RyaW5nQnVpbGRlci5oIgogI2luY2x1ZGUgIlNWR1BhdGhQYXJzZXIu
aCIKICNpbmNsdWRlICJTVkdQYXRoU2VnTGlzdEJ1aWxkZXIuaCIKKyNpbmNsdWRlICJTVkdQYXRo
U2VnTGlzdFNvdXJjZS5oIgorI2luY2x1ZGUgIlNWR1BhdGhTdHJpbmdCdWlsZGVyLmgiCiAjaW5j
bHVkZSAiU1ZHUGF0aFN0cmluZ1NvdXJjZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0x
MjksNiArMTMwLDIxIEBAIGJvb2wgU1ZHUGF0aFBhcnNlckZhY3Rvcnk6OmJ1aWxkUGF0aEZyb20K
ICAgICByZXR1cm4gb2s7CiB9CiAKK2Jvb2wgU1ZHUGF0aFBhcnNlckZhY3Rvcnk6OmJ1aWxkUGF0
aEZyb21TVkdQYXRoU2VnTGlzdChTVkdQYXRoU2VnTGlzdCogcGF0aFNlZ0xpc3QsIFBhdGgmIHJl
c3VsdCkKK3sKKyAgICBBU1NFUlQocGF0aFNlZ0xpc3QpOworICAgIGlmICghcGF0aFNlZ0xpc3Qt
Pm51bWJlck9mSXRlbXMoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgU1ZHUGF0aEJ1
aWxkZXIqIGJ1aWxkZXIgPSBnbG9iYWxTVkdQYXRoQnVpbGRlcihyZXN1bHQpOworCisgICAgT3du
UHRyPFNWR1BhdGhTZWdMaXN0U291cmNlPiBzb3VyY2UgPSBTVkdQYXRoU2VnTGlzdFNvdXJjZTo6
Y3JlYXRlKHBhdGhTZWdMaXN0KTsKKyAgICBTVkdQYXRoUGFyc2VyKiBwYXJzZXIgPSBnbG9iYWxT
VkdQYXRoUGFyc2VyKHNvdXJjZS5nZXQoKSwgYnVpbGRlcik7CisgICAgYm9vbCBvayA9IHBhcnNl
ci0+cGFyc2VQYXRoRGF0YUZyb21Tb3VyY2UoTm9ybWFsaXplZFBhcnNpbmcpOworICAgIHBhcnNl
ci0+Y2xlYW51cCgpOworICAgIHJldHVybiBvazsKK30KKwogYm9vbCBTVkdQYXRoUGFyc2VyRmFj
dG9yeTo6YnVpbGRTVkdQYXRoU2VnTGlzdEZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBkLCBTVkdQ
YXRoU2VnTGlzdCogcmVzdWx0LCBQYXRoUGFyc2luZ01vZGUgcGFyc2luZ01vZGUpCiB7CiAgICAg
QVNTRVJUKHJlc3VsdCk7CkBAIC0xNzEsOCArMTg3LDI0IEBAIGJvb2wgU1ZHUGF0aFBhcnNlckZh
Y3Rvcnk6OmJ1aWxkU3RyaW5nRnIKICAgICBPd25QdHI8U1ZHUGF0aEJ5dGVTdHJlYW1Tb3VyY2U+
IHNvdXJjZSA9IFNWR1BhdGhCeXRlU3RyZWFtU291cmNlOjpjcmVhdGUoc3RyZWFtKTsKICAgICBT
VkdQYXRoUGFyc2VyKiBwYXJzZXIgPSBnbG9iYWxTVkdQYXRoUGFyc2VyKHNvdXJjZS5nZXQoKSwg
YnVpbGRlcik7CiAgICAgYm9vbCBvayA9IHBhcnNlci0+cGFyc2VQYXRoRGF0YUZyb21Tb3VyY2Uo
cGFyc2luZ01vZGUpOworICAgIHJlc3VsdCA9IGJ1aWxkZXItPnJlc3VsdCgpOwogICAgIHBhcnNl
ci0+Y2xlYW51cCgpOworICAgIHJldHVybiBvazsKK30KKworYm9vbCBTVkdQYXRoUGFyc2VyRmFj
dG9yeTo6YnVpbGRTdHJpbmdGcm9tU1ZHUGF0aFNlZ0xpc3QoU1ZHUGF0aFNlZ0xpc3QqIHBhdGhT
ZWdMaXN0LCBTdHJpbmcmIHJlc3VsdCwgUGF0aFBhcnNpbmdNb2RlIHBhcnNpbmdNb2RlKQorewor
ICAgIEFTU0VSVChwYXRoU2VnTGlzdCk7CisgICAgaWYgKCFwYXRoU2VnTGlzdC0+bnVtYmVyT2ZJ
dGVtcygpKQorICAgICAgICByZXR1cm4gZmFsc2U7IAorCisgICAgU1ZHUGF0aFN0cmluZ0J1aWxk
ZXIqIGJ1aWxkZXIgPSBnbG9iYWxTVkdQYXRoU3RyaW5nQnVpbGRlcigpOworCisgICAgT3duUHRy
PFNWR1BhdGhTZWdMaXN0U291cmNlPiBzb3VyY2UgPSBTVkdQYXRoU2VnTGlzdFNvdXJjZTo6Y3Jl
YXRlKHBhdGhTZWdMaXN0KTsKKyAgICBTVkdQYXRoUGFyc2VyKiBwYXJzZXIgPSBnbG9iYWxTVkdQ
YXRoUGFyc2VyKHNvdXJjZS5nZXQoKSwgYnVpbGRlcik7CisgICAgYm9vbCBvayA9IHBhcnNlci0+
cGFyc2VQYXRoRGF0YUZyb21Tb3VyY2UocGFyc2luZ01vZGUpOwogICAgIHJlc3VsdCA9IGJ1aWxk
ZXItPnJlc3VsdCgpOworICAgIHBhcnNlci0+Y2xlYW51cCgpOwogICAgIHJldHVybiBvazsKIH0K
IApJbmRleDogV2ViQ29yZS9zdmcvU1ZHUGF0aFBhcnNlckZhY3RvcnkuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3N2Zy9TVkdQYXRoUGFyc2VyRmFjdG9yeS5oCShyZXZpc2lvbiA2NTA2MSkKKysr
IFdlYkNvcmUvc3ZnL1NWR1BhdGhQYXJzZXJGYWN0b3J5LmgJKHdvcmtpbmcgY29weSkKQEAgLTM1
LDEyICszNSwxNCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFNWR1BhdGhQYXJzZXJGYWN0b3J5KiBz
ZWxmKCk7CiAKICAgICBib29sIGJ1aWxkUGF0aEZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiwgUGF0
aCYpOwotICAgIGJvb2wgYnVpbGRQYXRoRnJvbUJ5dGVTdHJlYW0oU1ZHUGF0aEJ5dGVTdHJlYW0q
LCBQYXRoJiByZXN1bHQpOworICAgIGJvb2wgYnVpbGRQYXRoRnJvbUJ5dGVTdHJlYW0oU1ZHUGF0
aEJ5dGVTdHJlYW0qLCBQYXRoJik7CisgICAgYm9vbCBidWlsZFBhdGhGcm9tU1ZHUGF0aFNlZ0xp
c3QoU1ZHUGF0aFNlZ0xpc3QqLCBQYXRoJik7CiAKICAgICBib29sIGJ1aWxkU1ZHUGF0aFNlZ0xp
c3RGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYsIFNWR1BhdGhTZWdMaXN0KiwgUGF0aFBhcnNpbmdN
b2RlKTsKICAgICBib29sIGJ1aWxkU1ZHUGF0aFNlZ0xpc3RGcm9tQnl0ZVN0cmVhbShTVkdQYXRo
Qnl0ZVN0cmVhbSosIFNWR1BhdGhTZWdMaXN0KiwgUGF0aFBhcnNpbmdNb2RlKTsKIAogICAgIGJv
b2wgYnVpbGRTdHJpbmdGcm9tQnl0ZVN0cmVhbShTVkdQYXRoQnl0ZVN0cmVhbSosIFN0cmluZyYs
IFBhdGhQYXJzaW5nTW9kZSk7CisgICAgYm9vbCBidWlsZFN0cmluZ0Zyb21TVkdQYXRoU2VnTGlz
dChTVkdQYXRoU2VnTGlzdCosIFN0cmluZyYsIFBhdGhQYXJzaW5nTW9kZSk7CiAKICAgICBib29s
IGJ1aWxkU1ZHUGF0aEJ5dGVTdHJlYW1Gcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYsIE93blB0cjxT
VkdQYXRoQnl0ZVN0cmVhbT4mLCBQYXRoUGFyc2luZ01vZGUpOwogCkluZGV4OiBXZWJDb3JlL3N2
Zy9TVkdQYXRoU2VnLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdQYXRoU2VnLmNw
cAkocmV2aXNpb24gNjUwNjEpCisrKyBXZWJDb3JlL3N2Zy9TVkdQYXRoU2VnLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNDUsMjAgKzQ1LDEwIEBAIFN0cmluZyBTVkdQYXRoU2VnOjpwYXRoU2VnVHlw
ZUFzTGV0dGVyKCkKICAgICByZXR1cm4gIiI7CiB9CiAKLVN0cmluZyBTVkdQYXRoU2VnOjp0b1N0
cmluZygpIGNvbnN0Ci17Ci0gICAgcmV0dXJuICIiOwotfQotCiBjb25zdCBRdWFsaWZpZWROYW1l
JiBTVkdQYXRoU2VnOjphc3NvY2lhdGVkQXR0cmlidXRlTmFtZSgpIGNvbnN0CiB7CiAgICAgcmV0
dXJuIFNWR05hbWVzOjpkQXR0cjsKIH0KIAotU3RyaW5nIFNWR1BhdGhTZWdTaW5nbGVDb29yZDo6
dG9TdHJpbmcoKSBjb25zdAotewotICAgIHJldHVybiBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgKyBT
dHJpbmc6OmZvcm1hdCgiICUuNmxnICUuNmxnIiwgbV94LCBtX3kpOwotfQotCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAjZW5kaWYgLy8gRU5BQkxFKFNWRykKSW5kZXg6IFdlYkNvcmUvc3ZnL1NW
R1BhdGhTZWcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdQYXRoU2VnLmgJKHJldmlz
aW9uIDY1MDYxKQorKysgV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZy5oCSh3b3JraW5nIGNvcHkpCkBA
IC04NSw3ICs4NSw2IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgcGF0
aFNlZ1R5cGUoKSBjb25zdDsKICAgICB2aXJ0dWFsIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVy
KCkgY29uc3Q7Ci0gICAgdmlydHVhbCBTdHJpbmcgdG9TdHJpbmcoKSBjb25zdDsKIAogICAgIGNv
bnN0IFF1YWxpZmllZE5hbWUmIGFzc29jaWF0ZWRBdHRyaWJ1dGVOYW1lKCkgY29uc3Q7CiAgICAg
CkBAIC0xMDcsOCArMTA2LDYgQEAgcHVibGljOgogICAgIHZvaWQgc2V0WShmbG9hdCB5KSB7IG1f
eSA9IHk7IH0KICAgICBmbG9hdCB5KCkgY29uc3QgeyByZXR1cm4gbV95OyB9CiAKLSAgICB2aXJ0
dWFsIFN0cmluZyB0b1N0cmluZygpIGNvbnN0OwotCiBwcml2YXRlOgogICAgIGZsb2F0IG1feDsK
ICAgICBmbG9hdCBtX3k7CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdQYXRoU2VnQXJjLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdQYXRoU2VnQXJjLmNwcAkocmV2aXNpb24gNjUwNjEp
CisrKyBXZWJDb3JlL3N2Zy9TVkdQYXRoU2VnQXJjLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjUs
MTEgKzI1LDYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1TdHJpbmcgU1ZHUGF0aFNlZ0Fy
Yzo6dG9TdHJpbmcoKSBjb25zdAotewotICAgIHJldHVybiBwYXRoU2VnVHlwZUFzTGV0dGVyKCkg
KyBTdHJpbmc6OmZvcm1hdCgiICUuNmxnICUuNmxnICUuNmxnICVkICVkICUuNmxnICUuNmxnIiwg
bV9yMSwgbV9yMiwgbV9hbmdsZSwgbV9sYXJnZUFyY0ZsYWcsIG1fc3dlZXBGbGFnLCBtX3gsIG1f
eSk7Ci19Ci0KIFNWR1BhdGhTZWdBcmNBYnM6OlNWR1BhdGhTZWdBcmNBYnMoZmxvYXQgeCwgZmxv
YXQgeSwgZmxvYXQgcjEsIGZsb2F0IHIyLCBmbG9hdCBhbmdsZSwgYm9vbCBsYXJnZUFyY0ZsYWcs
IGJvb2wgc3dlZXBGbGFnKQogICAgIDogU1ZHUGF0aFNlZ0FyYyh4LCB5LCByMSwgcjIsIGFuZ2xl
LCBsYXJnZUFyY0ZsYWcsIHN3ZWVwRmxhZykKIHsKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR1BhdGhT
ZWdBcmMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdQYXRoU2VnQXJjLmgJKHJldmlz
aW9uIDY1MDYxKQorKysgV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0FyYy5oCSh3b3JraW5nIGNvcHkp
CkBAIC00MSw4ICs0MSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgewogICAgICAg
ICB9CiAKLSAgICAgICAgdmlydHVhbCBTdHJpbmcgdG9TdHJpbmcoKSBjb25zdDsKLQogICAgICAg
ICB2b2lkIHNldFgoZmxvYXQgeCkgeyBtX3ggPSB4OyB9CiAgICAgICAgIGZsb2F0IHgoKSBjb25z
dCB7IHJldHVybiBtX3g7IH0KIApJbmRleDogV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0Nsb3NlUGF0
aC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR1BhdGhTZWdDbG9zZVBhdGguaAkocmV2
aXNpb24gNjUwNjEpCisrKyBXZWJDb3JlL3N2Zy9TVkdQYXRoU2VnQ2xvc2VQYXRoLmgJKHdvcmtp
bmcgY29weSkKQEAgLTM1LDcgKzM1LDYgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB1bnNpZ25l
ZCBzaG9ydCBwYXRoU2VnVHlwZSgpIGNvbnN0IHsgcmV0dXJuIFBBVEhTRUdfQ0xPU0VQQVRIOyB9
CiAgICAgdmlydHVhbCBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IHsgcmV0dXJu
ICJaIjsgfQotICAgIHZpcnR1YWwgU3RyaW5nIHRvU3RyaW5nKCkgY29uc3QgeyByZXR1cm4gIloi
OyB9CiAKIHByaXZhdGU6CiAgICAgU1ZHUGF0aFNlZ0Nsb3NlUGF0aCgpOwpJbmRleDogV2ViQ29y
ZS9zdmcvU1ZHUGF0aFNlZ0N1cnZldG9DdWJpYy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3Zn
L1NWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWMuaAkocmV2aXNpb24gNjUwNjEpCisrKyBXZWJDb3JlL3N2
Zy9TVkdQYXRoU2VnQ3VydmV0b0N1YmljLmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDggKzMyLDYg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIHB1YmxpYzoKICAgICAgICAgU1ZHUGF0aFNlZ0N1
cnZldG9DdWJpYyhmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB4MSwgZmxvYXQgeTEsIGZsb2F0IHgy
LCBmbG9hdCB5MikgOiBTVkdQYXRoU2VnKCkgLCBtX3goeCkgLCBtX3koeSkgLCBtX3gxKHgxKSAs
IG1feTEoeTEpICwgbV94Mih4MikgLCBtX3kyKHkyKSB7fQogCi0gICAgICAgIHZpcnR1YWwgU3Ry
aW5nIHRvU3RyaW5nKCkgY29uc3QgeyByZXR1cm4gcGF0aFNlZ1R5cGVBc0xldHRlcigpICsgU3Ry
aW5nOjpmb3JtYXQoIiAlLjZsZyAlLjZsZyAlLjZsZyAlLjZsZyAlLjZsZyAlLjZsZyIsIG1feDEs
IG1feTEsIG1feDIsIG1feTIsIG1feCwgbV95KTsgfQotCiAgICAgICAgIHZvaWQgc2V0WChmbG9h
dCB4KSB7IG1feCA9IHg7IH0KICAgICAgICAgZmxvYXQgeCgpIGNvbnN0IHsgcmV0dXJuIG1feDsg
fQogCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aC5oCShy
ZXZpc2lvbiA2NTA2MSkKKysrIFdlYkNvcmUvc3ZnL1NWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9v
dGguaAkod29ya2luZyBjb3B5KQpAQCAtMzMsOCArMzMsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgICAgIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGgoZmxvYXQgeCwgZmxvYXQgeSwg
ZmxvYXQgeDIsIGZsb2F0IHkyKQogICAgICAgICA6IG1feCh4KSwgbV95KHkpLCBtX3gyKHgyKSwg
bV95Mih5MikgeyB9CiAKLSAgICAgICAgdmlydHVhbCBTdHJpbmcgdG9TdHJpbmcoKSBjb25zdCB7
IHJldHVybiBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgKyBTdHJpbmc6OmZvcm1hdCgiICUuNmxnICUu
NmxnICUuNmxnICUuNmxnIiwgbV94MiwgbV95MiwgbV94LCBtX3kpOyB9Ci0KICAgICAgICAgdm9p
ZCBzZXRYKGZsb2F0IHgpIHsgbV94ID0geDsgfQogICAgICAgICBmbG9hdCB4KCkgY29uc3QgeyBy
ZXR1cm4gbV94OyB9CiAKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJh
dGljLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0
aWMuaAkocmV2aXNpb24gNjUwNjEpCisrKyBXZWJDb3JlL3N2Zy9TVkdQYXRoU2VnQ3VydmV0b1F1
YWRyYXRpYy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw4ICszMyw2IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWMoZmxvYXQgeCwgZmxvYXQg
eSwgZmxvYXQgeDEsIGZsb2F0IHkxKQogICAgICAgICA6IFNWR1BhdGhTZWcoKSwgbV94KHgpLCBt
X3koeSksIG1feDEoeDEpLCBtX3kxKHkxKSB7fQogCi0gICAgICAgIHZpcnR1YWwgU3RyaW5nIHRv
U3RyaW5nKCkgY29uc3QgeyByZXR1cm4gcGF0aFNlZ1R5cGVBc0xldHRlcigpICsgU3RyaW5nOjpm
b3JtYXQoIiAlLjZsZyAlLjZsZyAlLjZsZyAlLjZsZyIsIG1feDEsIG1feTEsIG1feCwgbV95KTsg
fQotCiAgICAgICAgIHZvaWQgc2V0WChmbG9hdCB4KSB7IG1feCA9IHg7IH0KICAgICAgICAgZmxv
YXQgeCgpIGNvbnN0IHsgcmV0dXJuIG1feDsgfQogCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdQYXRo
U2VnTGluZXRvSG9yaXpvbnRhbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR1BhdGhT
ZWdMaW5ldG9Ib3Jpem9udGFsLmgJKHJldmlzaW9uIDY1MDYxKQorKysgV2ViQ29yZS9zdmcvU1ZH
UGF0aFNlZ0xpbmV0b0hvcml6b250YWwuaAkod29ya2luZyBjb3B5KQpAQCAtMzIsOCArMzIsNiBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgcHVibGljOgogICAgICAgICBTVkdQYXRoU2VnTGlu
ZXRvSG9yaXpvbnRhbChmbG9hdCB4KSA6IFNWR1BhdGhTZWcoKSwgbV94KHgpIHt9CiAKLSAgICAg
ICAgdmlydHVhbCBTdHJpbmcgdG9TdHJpbmcoKSBjb25zdCB7IHJldHVybiBwYXRoU2VnVHlwZUFz
TGV0dGVyKCkgKyBTdHJpbmc6OmZvcm1hdCgiICUuNmxnIiwgbV94KTsgfQotCiAgICAgICAgIHZv
aWQgc2V0WChmbG9hdCB4KSB7IG1feCA9IHg7IH0KICAgICAgICAgZmxvYXQgeCgpIGNvbnN0IHsg
cmV0dXJuIG1feDsgfQogCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGluZXRvVmVydGlj
YWwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGluZXRvVmVydGljYWwu
aAkocmV2aXNpb24gNjUwNjEpCisrKyBXZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGluZXRvVmVydGlj
YWwuaAkod29ya2luZyBjb3B5KQpAQCAtMzIsOCArMzIsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgcHVibGljOgogICAgICAgICBTVkdQYXRoU2VnTGluZXRvVmVydGljYWwoZmxvYXQgeSkg
OiBTVkdQYXRoU2VnKCksIG1feSh5KSB7fQogCi0gICAgICAgIHZpcnR1YWwgU3RyaW5nIHRvU3Ry
aW5nKCkgY29uc3QgeyByZXR1cm4gcGF0aFNlZ1R5cGVBc0xldHRlcigpICsgU3RyaW5nOjpmb3Jt
YXQoIiAlLjZsZyIsIG1feSk7IH0KLQogICAgICAgICB2b2lkIHNldFkoZmxvYXQgeSkgeyBtX3kg
PSB5OyB9CiAgICAgICAgIGZsb2F0IHkoKSBjb25zdCB7IHJldHVybiBtX3k7IH0KIApJbmRleDog
V2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xpc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3Zn
L1NWR1BhdGhTZWdMaXN0LmNwcAkocmV2aXNpb24gNjUwNjEpCisrKyBXZWJDb3JlL3N2Zy9TVkdQ
YXRoU2VnTGlzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMyw2MiArMTAzLDYgQEAgdW5zaWdu
ZWQgU1ZHUGF0aFNlZ0xpc3Q6OmdldFBhdGhTZWdBdExlbgogICAgIC8vIFdlYktpdC9PcGVyYS9G
RiBhbGwgcmV0dXJuIHRoZSBsYXN0IHBhdGggc2VnbWVudCBpZiB0aGUgZGlzdGFuY2UgZXhjZWVk
cyB0aGUgYWN0dWFsIHBhdGggbGVuZ3RoOgogICAgIHJldHVybiB0cmF2ZXJzYWxTdGF0ZS5tX3Nl
Z21lbnRJbmRleCA/IHRyYXZlcnNhbFN0YXRlLm1fc2VnbWVudEluZGV4IC0gMSA6IDA7CiB9Ci0K
LVBhdGggU1ZHUGF0aFNlZ0xpc3Q6OnRvUGF0aERhdGEoKQotewotICAgIC8vIEZJWE1FIDogVGhp
cyBzaG91bGQgYWxzbyBzdXBwb3J0IG5vbi1ub3JtYWxpemVkIFBhdGhTZWdMaXN0cwotICAgIFBh
dGggcGF0aERhdGE7Ci0gICAgaW50IGxlbiA9IG51bWJlck9mSXRlbXMoKTsKLSAgICBFeGNlcHRp
b25Db2RlIGVjID0gMDsKLSAgICBGbG9hdFBvaW50IHByZXZpb3VzRW5kUG9pbnQoMCwgMCk7Ci0g
ICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsZW47ICsraSkgewotICAgICAgICBTVkdQYXRoU2VnKiBz
ZWdtZW50ID0gZ2V0SXRlbShpLCBlYykuZ2V0KCk7Ci0gICAgICAgIGlmIChlYykKLSAgICAgICAg
ICAgIHJldHVybiBQYXRoKCk7Ci0gICAgICAgIHN3aXRjaCAoc2VnbWVudC0+cGF0aFNlZ1R5cGUo
KSkgewotICAgICAgICBjYXNlIFBhdGhTZWdNb3ZlVG9BYnM6IHsKLSAgICAgICAgICAgIFNWR1Bh
dGhTZWdNb3ZldG9BYnMqIG1vdmVUbyA9IHN0YXRpY19jYXN0PFNWR1BhdGhTZWdNb3ZldG9BYnMq
PihzZWdtZW50KTsKLSAgICAgICAgICAgIEZsb2F0UG9pbnQgZW5kUG9pbnQobW92ZVRvLT54KCks
IG1vdmVUby0+eSgpKTsKLSAgICAgICAgICAgIHBhdGhEYXRhLm1vdmVUbyhlbmRQb2ludCk7Ci0g
ICAgICAgICAgICBwcmV2aW91c0VuZFBvaW50ID0gZW5kUG9pbnQ7Ci0gICAgICAgICAgICBicmVh
azsKLSAgICAgICAgfQotICAgICAgICBjYXNlIFBhdGhTZWdMaW5lVG9BYnM6IHsKLSAgICAgICAg
ICAgIFNWR1BhdGhTZWdMaW5ldG9BYnMqIGxpbmVUbyA9IHN0YXRpY19jYXN0PFNWR1BhdGhTZWdM
aW5ldG9BYnMqPihzZWdtZW50KTsKLSAgICAgICAgICAgIEZsb2F0UG9pbnQgZW5kUG9pbnQobGlu
ZVRvLT54KCksIGxpbmVUby0+eSgpKTsKLSAgICAgICAgICAgIHBhdGhEYXRhLmFkZExpbmVUbyhl
bmRQb2ludCk7Ci0gICAgICAgICAgICBwcmV2aW91c0VuZFBvaW50ID0gZW5kUG9pbnQ7Ci0gICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICBjYXNlIFBhdGhTZWdDdXJ2ZVRvQ3Vi
aWNBYnM6IHsKLSAgICAgICAgICAgIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNBYnMqIGN1cnZlVG8g
PSBzdGF0aWNfY2FzdDxTVkdQYXRoU2VnQ3VydmV0b0N1YmljQWJzKj4oc2VnbWVudCk7Ci0gICAg
ICAgICAgICBGbG9hdFBvaW50IGVuZFBvaW50KGN1cnZlVG8tPngoKSwgY3VydmVUby0+eSgpKTsK
LSAgICAgICAgICAgIHBhdGhEYXRhLmFkZEJlemllckN1cnZlVG8oRmxvYXRQb2ludChjdXJ2ZVRv
LT54MSgpLCBjdXJ2ZVRvLT55MSgpKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgRmxvYXRQb2ludChjdXJ2ZVRvLT54MigpLCBjdXJ2ZVRvLT55MigpKSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kUG9pbnQpOwotICAgICAgICAgICAgcHJl
dmlvdXNFbmRQb2ludCA9IGVuZFBvaW50OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0K
LSAgICAgICAgY2FzZSBQYXRoU2VnQ3VydmVUb0N1YmljUmVsOiB7Ci0gICAgICAgICAgICBTVkdQ
YXRoU2VnQ3VydmV0b0N1YmljUmVsKiBjdXJ2ZVRvID0gc3RhdGljX2Nhc3Q8U1ZHUGF0aFNlZ0N1
cnZldG9DdWJpY1JlbCo+KHNlZ21lbnQpOwotICAgICAgICAgICAgRmxvYXRTaXplIGVuZFBvaW50
KGN1cnZlVG8tPngoKSwgY3VydmVUby0+eSgpKTsKLSAgICAgICAgICAgIHBhdGhEYXRhLmFkZEJl
emllckN1cnZlVG8ocHJldmlvdXNFbmRQb2ludCArIEZsb2F0U2l6ZShjdXJ2ZVRvLT54MSgpLCBj
dXJ2ZVRvLT55MSgpKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJl
dmlvdXNFbmRQb2ludCArIEZsb2F0U2l6ZShjdXJ2ZVRvLT54MigpLCBjdXJ2ZVRvLT55MigpKSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNFbmRQb2ludCAr
IGVuZFBvaW50KTsKLSAgICAgICAgICAgIHByZXZpb3VzRW5kUG9pbnQgKz0gZW5kUG9pbnQ7Ci0g
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICBjYXNlIFBhdGhTZWdDbG9zZVBh
dGg6Ci0gICAgICAgICAgICBwYXRoRGF0YS5jbG9zZVN1YnBhdGgoKTsKLSAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgQVNTRVJUKGZhbHNlKTsgLy8gRklY
TUU6IFRoaXMgb25seSB3b3JrcyB3aXRoIG5vcm1hbGl6ZWQvcHJvY2Vzc2VkIHBhdGggZGF0YS4K
LSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgfQotICAgIAotICAgIHJldHVybiBw
YXRoRGF0YTsKLX0KICAgICAKIGZsb2F0IGFkanVzdEFuaW1hdGVkVmFsdWUoZmxvYXQgZnJvbSwg
ZmxvYXQgdG8sIGZsb2F0IHByb2dyZXNzKQogewpJbmRleDogV2ViQ29yZS9zdmcvU1ZHUGF0aFNl
Z0xpc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGlzdC5oCShyZXZp
c2lvbiA2NTA2MSkKKysrIFdlYkNvcmUvc3ZnL1NWR1BhdGhTZWdMaXN0LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTM1LDcgKzM1LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFs
IH5TVkdQYXRoU2VnTGlzdCgpOwogCiAgICAgICAgIHVuc2lnbmVkIGdldFBhdGhTZWdBdExlbmd0
aChkb3VibGUsIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICAgICAgUGF0aCB0b1BhdGhEYXRhKCk7CiAg
ICAgICAgIAogICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdQYXRoU2VnTGlzdD4gY3JlYXRl
QW5pbWF0ZWQoY29uc3QgU1ZHUGF0aFNlZ0xpc3QqIGZyb21MaXN0LCBjb25zdCBTVkdQYXRoU2Vn
TGlzdCogdG9MaXN0LCBmbG9hdCBwcm9ncmVzcyk7CiAgICAgICAgIAo=
</data>
<flag name="review"
          id="52451"
          type_id="1"
          status="+"
          setter="zimmermann"
    />
          </attachment>
      

    </bug>

</bugzilla>