<?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>78778</bug_id>
          
          <creation_ts>2012-02-15 22:41:41 -0800</creation_ts>
          <short_desc>[Refactoring] Use HTMLInsertionPoint instead of HTMLContentElement</short_desc>
          <delta_ts>2012-02-20 22:14:58 -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>DOM</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>78771</dependson>
          <blocked>78596</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Shinya Kawanaka">shinyak</reporter>
          <assigned_to name="Shinya Kawanaka">shinyak</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>dominicc</cc>
    
    <cc>hayato</cc>
    
    <cc>morrita</cc>
    
    <cc>rolandsteiner</cc>
    
    <cc>shinyak</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>557911</commentid>
    <comment_count>0</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-15 22:41:41 -0800</bug_when>
    <thetext>We had assumed shadow insertion point was only HTMLContentElement before.
So a lot of code use HTMLContentElement* type instead of HTMLInsertionPoint type.
But we now have &lt;shadow&gt; element, which is another insertion point.
We should convert HTMLContentElement* type to HTMLInsertionPoint* in NodeRenderingContext and so on.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>560080</commentid>
    <comment_count>1</comment_count>
      <attachid>127775</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-20 00:35:41 -0800</bug_when>
    <thetext>Created attachment 127775
Test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>560142</commentid>
    <comment_count>2</comment_count>
      <attachid>127796</attachid>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-02-20 03:12:14 -0800</bug_when>
    <thetext>Created attachment 127796
use InsertionPoint</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>560433</commentid>
    <comment_count>3</comment_count>
      <attachid>127796</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-02-20 15:57:23 -0800</bug_when>
    <thetext>Comment on attachment 127796
use InsertionPoint

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

&gt; Source/WebCore/html/shadow/HTMLContentElement.h:NaN
&gt;  public:

It looks we no longer need some #include.

&gt; Source/WebCore/html/shadow/InsertionPoint.cpp:43
&gt; +    , m_selections(adoptPtr(new HTMLContentSelectionList()))

If we instantiate here and have a #include, there would be no reason to allocate this in heap.
I guess the original class lose the point at some point.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>560494</commentid>
    <comment_count>4</comment_count>
      <attachid>127881</attachid>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-02-20 17:54:54 -0800</bug_when>
    <thetext>Created attachment 127881
update</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>560495</commentid>
    <comment_count>5</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-02-20 17:55:44 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 127796 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=127796&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/html/shadow/HTMLContentElement.h:NaN
&gt; &gt;  public:
&gt; 
&gt; It looks we no longer need some #include.

Done. I&apos;ve cleaned up #include.

&gt; 
&gt; &gt; Source/WebCore/html/shadow/InsertionPoint.cpp:43
&gt; &gt; +    , m_selections(adoptPtr(new HTMLContentSelectionList()))
&gt; 
&gt; If we instantiate here and have a #include, there would be no reason to allocate this in heap.
&gt; I guess the original class lose the point at some point.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>560559</commentid>
    <comment_count>6</comment_count>
      <attachid>127881</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-02-20 19:38:30 -0800</bug_when>
    <thetext>Comment on attachment 127881
update

Let&apos;s make sure that win bot green. It looks unrelated to this patch though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>560588</commentid>
    <comment_count>7</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-20 20:19:11 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 127881 [details])
&gt; Let&apos;s make sure that win bot green. It looks unrelated to this patch though.

Unfortunately, win bot is failing these days i(In reply to comment #6)
&gt; (From update of attachment 127881 [details])
&gt; Let&apos;s make sure that win bot green. It looks unrelated to this patch though.

This is an error message. 

6&gt;c:\cygwin\home\buildbot\WebKit\Source\WebCore\html\shadow\HTMLContentElement.cpp(100) : error C2819: type &apos;WebCore::HTMLContentSelectionList&apos; does not have an overloaded member &apos;operator -&gt;&apos;
6&gt;        c:\cygwin\home\buildbot\webkit\source\webcore\html\shadow\HTMLContentSelector.h(77) : see declaration of &apos;WebCore::HTMLContentSelectionList&apos;
6&gt;        did you intend to use &apos;.&apos; instead?
6&gt;c:\cygwin\home\buildbot\WebKit\Source\WebCore\html\shadow\HTMLContentElement.cpp(100) : error C2232: &apos;-&gt;WebCore::HTMLContentSelectionList::isEmpty&apos; : left operand has &apos;class&apos; type, use &apos;.&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>560599</commentid>
    <comment_count>8</comment_count>
      <attachid>127907</attachid>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-02-20 20:46:14 -0800</bug_when>
    <thetext>Created attachment 127907
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>560600</commentid>
    <comment_count>9</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-02-20 20:47:17 -0800</bug_when>
    <thetext>This patch is related. I&apos;ve fixed the debug build.

(In reply to comment #6)
&gt; (From update of attachment 127881 [details])
&gt; Let&apos;s make sure that win bot green. It looks unrelated to this patch though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>560657</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-20 22:12:47 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 127907:

perf/object-keys.html bug 63769 (author: ojan@chromium.org)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>560659</commentid>
    <comment_count>11</comment_count>
      <attachid>127907</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-20 22:14:51 -0800</bug_when>
    <thetext>Comment on attachment 127907
Patch for landing

Clearing flags on attachment: 127907

Committed r108303: &lt;http://trac.webkit.org/changeset/108303&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>560660</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-20 22:14:58 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127775</attachid>
            <date>2012-02-20 00:35:41 -0800</date>
            <delta_ts>2012-02-20 03:12:09 -0800</delta_ts>
            <desc>Test</desc>
            <filename>bug-78778-20120220173539.patch</filename>
            <type>text/plain</type>
            <size>18656</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4MjA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5k
ZXJpbmdDb250ZXh0LmNwcAppbmRleCA4ZTQ1YjQxM2FlY2Q2ZTAyYzIwNTAyZTM4YTEwZWI3NDY5
YTRhNjllLi5kYWU1YTIyZGYzN2Q0NGFmZjFlOTQ2YmY1ZjNjNTE0NWU5MDM4ODZmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAKQEAgLTI3LDggKzI3LDgg
QEAKICNpbmNsdWRlICJOb2RlUmVuZGVyaW5nQ29udGV4dC5oIgogCiAjaW5jbHVkZSAiQ29udGFp
bmVyTm9kZS5oIgotI2luY2x1ZGUgIkhUTUxDb250ZW50RWxlbWVudC5oIgogI2luY2x1ZGUgIkhU
TUxDb250ZW50U2VsZWN0b3IuaCIKKyNpbmNsdWRlICJJbnNlcnRpb25Qb2ludC5oIgogI2luY2x1
ZGUgIk5vZGUuaCIKICNpbmNsdWRlICJSZW5kZXJGbG93VGhyZWFkLmgiCiAjaW5jbHVkZSAiUmVu
ZGVyRnVsbFNjcmVlbi5oIgpAQCAtNzksOSArNzksOSBAQCBOb2RlUmVuZGVyaW5nQ29udGV4dDo6
Tm9kZVJlbmRlcmluZ0NvbnRleHQoTm9kZSogbm9kZSkKICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgfQogCi0gICAgICAgIGlmIChwYXJlbnQtPmlzQ29udGVudEVsZW1lbnQoKSkgewotICAg
ICAgICAgICAgSFRNTENvbnRlbnRFbGVtZW50KiBzaGFkb3dDb250ZW50RWxlbWVudCA9IHRvSFRN
TENvbnRlbnRFbGVtZW50KHBhcmVudCk7Ci0gICAgICAgICAgICBpZiAoIXNoYWRvd0NvbnRlbnRF
bGVtZW50LT5oYXNTZWxlY3Rpb24oKSkgeworICAgICAgICBpZiAoaXNJbnNlcnRpb25Qb2ludChw
YXJlbnQpKSB7CisgICAgICAgICAgICBJbnNlcnRpb25Qb2ludCogaW5zZXJ0aW9uUG9pbnQgPSB0
b0luc2VydGlvblBvaW50KHBhcmVudCk7CisgICAgICAgICAgICBpZiAoIWluc2VydGlvblBvaW50
LT5oYXNTZWxlY3Rpb24oKSkgewogICAgICAgICAgICAgICAgIG1fcGhhc2UgPSBBdHRhY2hpbmdG
YWxsYmFjazsKICAgICAgICAgICAgICAgICBtX3BhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHls
ZSA9IE5vZGVSZW5kZXJpbmdDb250ZXh0KHBhcmVudCkucGFyZW50Tm9kZUZvclJlbmRlcmluZ0Fu
ZFN0eWxlKCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTE5LDcgKzExOSw3IEBAIFBh
c3NSZWZQdHI8UmVuZGVyU3R5bGU+IE5vZGVSZW5kZXJpbmdDb250ZXh0OjpyZWxlYXNlU3R5bGUo
KQogICAgIHJldHVybiBtX3N0eWxlLnJlbGVhc2UoKTsKIH0KIAotc3RhdGljIFJlbmRlck9iamVj
dCogbmV4dFJlbmRlcmVyT2YoSFRNTENvbnRlbnRFbGVtZW50KiBwYXJlbnQsIE5vZGUqIGN1cnJl
bnQpCitzdGF0aWMgUmVuZGVyT2JqZWN0KiBuZXh0UmVuZGVyZXJPZihJbnNlcnRpb25Qb2ludCog
cGFyZW50LCBOb2RlKiBjdXJyZW50KQogewogICAgIEhUTUxDb250ZW50U2VsZWN0aW9uKiBjdXJy
ZW50U2VsZWN0aW9uID0gcGFyZW50LT5zZWxlY3Rpb25zKCktPmZpbmQoY3VycmVudCk7CiAgICAg
aWYgKCFjdXJyZW50U2VsZWN0aW9uKQpAQCAtMTMzLDcgKzEzMyw3IEBAIHN0YXRpYyBSZW5kZXJP
YmplY3QqIG5leHRSZW5kZXJlck9mKEhUTUxDb250ZW50RWxlbWVudCogcGFyZW50LCBOb2RlKiBj
dXJyZW50KQogICAgIHJldHVybiAwOwogfQogCi1zdGF0aWMgUmVuZGVyT2JqZWN0KiBwcmV2aW91
c1JlbmRlcmVyT2YoSFRNTENvbnRlbnRFbGVtZW50KiBwYXJlbnQsIE5vZGUqIGN1cnJlbnQpCitz
dGF0aWMgUmVuZGVyT2JqZWN0KiBwcmV2aW91c1JlbmRlcmVyT2YoSW5zZXJ0aW9uUG9pbnQqIHBh
cmVudCwgTm9kZSogY3VycmVudCkKIHsKICAgICBSZW5kZXJPYmplY3QqIGxhc3RSZW5kZXJlciA9
IDA7CiAKQEAgLTE0Nyw3ICsxNDcsNyBAQCBzdGF0aWMgUmVuZGVyT2JqZWN0KiBwcmV2aW91c1Jl
bmRlcmVyT2YoSFRNTENvbnRlbnRFbGVtZW50KiBwYXJlbnQsIE5vZGUqIGN1cnJlbgogICAgIHJl
dHVybiBsYXN0UmVuZGVyZXI7CiB9CiAKLXN0YXRpYyBSZW5kZXJPYmplY3QqIGZpcnN0UmVuZGVy
ZXJPZihIVE1MQ29udGVudEVsZW1lbnQqIHBhcmVudCkKK3N0YXRpYyBSZW5kZXJPYmplY3QqIGZp
cnN0UmVuZGVyZXJPZihJbnNlcnRpb25Qb2ludCogcGFyZW50KQogewogICAgIGZvciAoSFRNTENv
bnRlbnRTZWxlY3Rpb24qIHNlbGVjdGlvbiA9IHBhcmVudC0+c2VsZWN0aW9ucygpLT5maXJzdCgp
OyBzZWxlY3Rpb247IHNlbGVjdGlvbiA9IHNlbGVjdGlvbi0+bmV4dCgpKSB7CiAgICAgICAgIGlm
IChSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gc2VsZWN0aW9uLT5ub2RlKCktPnJlbmRlcmVyKCkp
CkBAIC0xNTcsNyArMTU3LDcgQEAgc3RhdGljIFJlbmRlck9iamVjdCogZmlyc3RSZW5kZXJlck9m
KEhUTUxDb250ZW50RWxlbWVudCogcGFyZW50KQogICAgIHJldHVybiAwOwogfQogCi1zdGF0aWMg
UmVuZGVyT2JqZWN0KiBsYXN0UmVuZGVyZXJPZihIVE1MQ29udGVudEVsZW1lbnQqIHBhcmVudCkK
K3N0YXRpYyBSZW5kZXJPYmplY3QqIGxhc3RSZW5kZXJlck9mKEluc2VydGlvblBvaW50KiBwYXJl
bnQpCiB7CiAgICAgZm9yIChIVE1MQ29udGVudFNlbGVjdGlvbiogc2VsZWN0aW9uID0gcGFyZW50
LT5zZWxlY3Rpb25zKCktPmxhc3QoKTsgc2VsZWN0aW9uOyBzZWxlY3Rpb24gPSBzZWxlY3Rpb24t
PnByZXZpb3VzKCkpIHsKICAgICAgICAgaWYgKFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBzZWxl
Y3Rpb24tPm5vZGUoKS0+cmVuZGVyZXIoKSkKQEAgLTE5NCw4ICsxOTQsOSBAQCBSZW5kZXJPYmpl
Y3QqIE5vZGVSZW5kZXJpbmdDb250ZXh0OjpuZXh0UmVuZGVyZXIoKSBjb25zdAogICAgICAgICAg
ICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgcmV0dXJuIG5vZGUtPnJlbmRlcmVyKCk7CiAg
ICAgICAgIH0KLSAgICAgICAgaWYgKG5vZGUtPmlzQ29udGVudEVsZW1lbnQoKSkgewotICAgICAg
ICAgICAgaWYgKFJlbmRlck9iamVjdCogZmlyc3QgPSBmaXJzdFJlbmRlcmVyT2YodG9IVE1MQ29u
dGVudEVsZW1lbnQobm9kZSkpKQorCisgICAgICAgIGlmIChpc0luc2VydGlvblBvaW50KG5vZGUp
KSB7CisgICAgICAgICAgICBpZiAoUmVuZGVyT2JqZWN0KiBmaXJzdCA9IGZpcnN0UmVuZGVyZXJP
Zih0b0luc2VydGlvblBvaW50KG5vZGUpKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmlyc3Q7
CiAgICAgICAgIH0KICAgICB9CkBAIC0yMzEsOCArMjMyLDkgQEAgUmVuZGVyT2JqZWN0KiBOb2Rl
UmVuZGVyaW5nQ29udGV4dDo6cHJldmlvdXNSZW5kZXJlcigpIGNvbnN0CiAgICAgICAgICAgICAg
ICAgY29udGludWU7CiAgICAgICAgICAgICByZXR1cm4gbm9kZS0+cmVuZGVyZXIoKTsKICAgICAg
ICAgfQotICAgICAgICBpZiAobm9kZS0+aXNDb250ZW50RWxlbWVudCgpKSB7Ci0gICAgICAgICAg
ICBpZiAoUmVuZGVyT2JqZWN0KiBsYXN0ID0gbGFzdFJlbmRlcmVyT2YodG9IVE1MQ29udGVudEVs
ZW1lbnQobm9kZSkpKQorCisgICAgICAgIGlmIChpc0luc2VydGlvblBvaW50KG5vZGUpKSB7Cisg
ICAgICAgICAgICBpZiAoUmVuZGVyT2JqZWN0KiBsYXN0ID0gbGFzdFJlbmRlcmVyT2YodG9JbnNl
cnRpb25Qb2ludChub2RlKSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGxhc3Q7CiAgICAgICAg
IH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0Nv
bnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5oCmluZGV4
IGVjYzIyZmUyM2EyYThlNmRlNDc3YmFmMTg5ZjJhMjU4MzhlMDYwMzQuLmYzZjUwMWE4MWViNTlk
YTUwZDFlMjk2NjFlOWQ2YjhlZGMxMzc3NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVu
ZGVyaW5nQ29udGV4dC5oCkBAIC0zNCwxMSArMzQsMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBDb250YWluZXJOb2RlOwogY2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBJbnNlcnRpb25Q
b2ludDsKIGNsYXNzIE5vZGU7CiBjbGFzcyBSZW5kZXJGbG93VGhyZWFkOwogY2xhc3MgUmVuZGVy
T2JqZWN0OwogY2xhc3MgUmVuZGVyU3R5bGU7Ci1jbGFzcyBIVE1MQ29udGVudEVsZW1lbnQ7CiBj
bGFzcyBTaGFkb3dSb290OwogCiBjbGFzcyBOb2RlUmVuZGVyaW5nQ29udGV4dCB7CkBAIC01Miw3
ICs1Miw3IEBAIHB1YmxpYzoKICAgICBSZW5kZXJPYmplY3QqIHBhcmVudFJlbmRlcmVyKCkgY29u
c3Q7CiAgICAgUmVuZGVyT2JqZWN0KiBuZXh0UmVuZGVyZXIoKSBjb25zdDsKICAgICBSZW5kZXJP
YmplY3QqIHByZXZpb3VzUmVuZGVyZXIoKSBjb25zdDsKLSAgICBIVE1MQ29udGVudEVsZW1lbnQq
IGluc2VydGlvblBvaW50KCkgY29uc3Q7CisgICAgSW5zZXJ0aW9uUG9pbnQqIGluc2VydGlvblBv
aW50KCkgY29uc3Q7CiAKICAgICBSZW5kZXJTdHlsZSogc3R5bGUoKSBjb25zdDsKICAgICB2b2lk
IHNldFN0eWxlKFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+KTsKQEAgLTgxLDcgKzgxLDcgQEAgcHJp
dmF0ZToKICAgICBOb2RlKiBtX25vZGU7CiAgICAgQ29udGFpbmVyTm9kZSogbV9wYXJlbnROb2Rl
Rm9yUmVuZGVyaW5nQW5kU3R5bGU7CiAgICAgU2hhZG93Um9vdCogbV92aXN1YWxQYXJlbnRTaGFk
b3dSb290OwotICAgIEhUTUxDb250ZW50RWxlbWVudCogbV9pbnNlcnRpb25Qb2ludDsKKyAgICBJ
bnNlcnRpb25Qb2ludCogbV9pbnNlcnRpb25Qb2ludDsKICAgICBSZWZQdHI8UmVuZGVyU3R5bGU+
IG1fc3R5bGU7CiAgICAgUmVuZGVyRmxvd1RocmVhZCogbV9wYXJlbnRGbG93UmVuZGVyZXI7CiAg
ICAgQXRvbWljU3RyaW5nIG1fZmxvd1RocmVhZDsKQEAgLTEwMyw3ICsxMDMsNyBAQCBpbmxpbmUg
UmVuZGVyU3R5bGUqIE5vZGVSZW5kZXJpbmdDb250ZXh0OjpzdHlsZSgpIGNvbnN0CiAgICAgcmV0
dXJuIG1fc3R5bGUuZ2V0KCk7CiB9CiAKLWlubGluZSBIVE1MQ29udGVudEVsZW1lbnQqIE5vZGVS
ZW5kZXJpbmdDb250ZXh0OjppbnNlcnRpb25Qb2ludCgpIGNvbnN0CitpbmxpbmUgSW5zZXJ0aW9u
UG9pbnQqIE5vZGVSZW5kZXJpbmdDb250ZXh0OjppbnNlcnRpb25Qb2ludCgpIGNvbnN0CiB7CiAg
ICAgcmV0dXJuIG1faW5zZXJ0aW9uUG9pbnQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2hhZG93Um9vdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAK
aW5kZXggZWQ5MGYwZmVjODBkNThiNzhkZjdiYjcwMjRkMTE0MjBjZjZmNWZmMy4uMWJlZTBkMjg4
YTI3OTE1MDY5MGUxYTNjYTU4YmU0ODdlNjMzNTk2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL1NoYWRvd1Jvb3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290
LmNwcApAQCAtMjksOSArMjksOSBAQAogCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRl
ICJFbGVtZW50LmgiCi0jaW5jbHVkZSAiSFRNTENvbnRlbnRFbGVtZW50LmgiCiAjaW5jbHVkZSAi
SFRNTENvbnRlbnRTZWxlY3Rvci5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUg
Ikluc2VydGlvblBvaW50LmgiCiAjaW5jbHVkZSAiTm9kZVJhcmVEYXRhLmgiCiAjaW5jbHVkZSAi
U2hhZG93Um9vdExpc3QuaCIKICNpbmNsdWRlICJTVkdOYW1lcy5oIgpAQCAtMTgyLDcgKzE4Miw3
IEBAIHZvaWQgU2hhZG93Um9vdDo6c2V0TmVlZHNSZWF0dGFjaEhvc3RDaGlsZHJlbkFuZFNoYWRv
dygpCiAgICAgICAgIHNoYWRvd0hvc3QoKS0+c2V0TmVlZHNTdHlsZVJlY2FsYygpOwogfQogCi1I
VE1MQ29udGVudEVsZW1lbnQqIFNoYWRvd1Jvb3Q6Omluc2VydGlvblBvaW50Rm9yKE5vZGUqIG5v
ZGUpIGNvbnN0CitJbnNlcnRpb25Qb2ludCogU2hhZG93Um9vdDo6aW5zZXJ0aW9uUG9pbnRGb3Io
Tm9kZSogbm9kZSkgY29uc3QKIHsKICAgICBpZiAoIW1fc2VsZWN0b3IpCiAgICAgICAgIHJldHVy
biAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmgKaW5kZXggODNlMTcxMzQ5OTUyOWU0NjRkOGMzNjA5
OWJmZGQ1YmMxNWY0YzFlMS4uZDQ3NWYyNDgyNTNhMGQxYTA4NWI2Nzc4NGU3MGY2N2FkOTNhYzg3
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oCkBAIC0zNyw2ICszNyw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIGNsYXNzIERvY3VtZW50OwogY2xhc3MgSFRNTENvbnRlbnRFbGVtZW50OwogY2xh
c3MgSFRNTENvbnRlbnRTZWxlY3RvcjsKK2NsYXNzIEluc2VydGlvblBvaW50OwogCiBjbGFzcyBT
aGFkb3dSb290IDogcHVibGljIERvY3VtZW50RnJhZ21lbnQsIHB1YmxpYyBUcmVlU2NvcGUsIHB1
YmxpYyBEb3VibHlMaW5rZWRMaXN0Tm9kZTxTaGFkb3dSb290PiB7CiAgICAgZnJpZW5kIGNsYXNz
IFdURjo6RG91Ymx5TGlua2VkTGlzdE5vZGU8U2hhZG93Um9vdD47CkBAIC01OSw3ICs2MCw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIGNsZWFyTmVlZHNSZWF0dGFjaEhvc3RDaGlsZHJlbkFuZFNoYWRv
dygpOwogICAgIGJvb2wgbmVlZHNSZWF0dGFjaEhvc3RDaGlsZHJlbkFuZFNoYWRvdygpOwogCi0g
ICAgSFRNTENvbnRlbnRFbGVtZW50KiBpbnNlcnRpb25Qb2ludEZvcihOb2RlKikgY29uc3Q7Cisg
ICAgSW5zZXJ0aW9uUG9pbnQqIGluc2VydGlvblBvaW50Rm9yKE5vZGUqKSBjb25zdDsKICAgICB2
b2lkIGhvc3RDaGlsZHJlbkNoYW5nZWQoKTsKICAgICBib29sIGlzU2VsZWN0b3JBY3RpdmUoKSBj
b25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRl
bnRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxl
bWVudC5jcHAKaW5kZXggNmE2Yjg5YmZhYWRjNDk3YTQ1YjEwMDdlMWRlNjM3Mjc5MTIxMTM0OS4u
YTEzMmI4OWUwMGEyNDMxY2VhODNjYTNkMjMwMjBmMDg0YWQzZDA2MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuY3BwCkBAIC0yOCw3ICsy
OCw2IEBACiAjaW5jbHVkZSAiSFRNTENvbnRlbnRFbGVtZW50LmgiCiAKICNpbmNsdWRlICJDb250
ZW50U2VsZWN0b3JRdWVyeS5oIgotI2luY2x1ZGUgIkhUTUxDb250ZW50U2VsZWN0b3IuaCIKICNp
bmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJRdWFsaWZpZWROYW1lLmgiCiAjaW5jbHVk
ZSAiU2hhZG93Um9vdC5oIgpAQCAtNjAsNyArNTksNiBAQCBQYXNzUmVmUHRyPEhUTUxDb250ZW50
RWxlbWVudD4gSFRNTENvbnRlbnRFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
dAogCiBIVE1MQ29udGVudEVsZW1lbnQ6OkhUTUxDb250ZW50RWxlbWVudChjb25zdCBRdWFsaWZp
ZWROYW1lJiBuYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCiAgICAgOiBJbnNlcnRpb25Qb2ludChu
YW1lLCBkb2N1bWVudCkKLSAgICAsIG1fc2VsZWN0aW9ucyhhZG9wdFB0cihuZXcgSFRNTENvbnRl
bnRTZWxlY3Rpb25MaXN0KCkpKQogewogfQogCkBAIC02OCw0MCArNjYsNiBAQCBIVE1MQ29udGVu
dEVsZW1lbnQ6On5IVE1MQ29udGVudEVsZW1lbnQoKQogewogfQogCi12b2lkIEhUTUxDb250ZW50
RWxlbWVudDo6YXR0YWNoKCkKLXsKLSAgICBTaGFkb3dSb290KiByb290ID0gdG9TaGFkb3dSb290
KHNoYWRvd1RyZWVSb290Tm9kZSgpKTsKLQotICAgIC8vIEJlZm9yZSBjYWxsaW5nIFN0eWxlZEVs
ZW1lbnQ6OmF0dGFjaCwgc2VsZWN0b3IgbXVzdCBiZSBjYWxjdWxhdGVkLgotICAgIGlmIChyb290
KSB7Ci0gICAgICAgIEhUTUxDb250ZW50U2VsZWN0b3IqIHNlbGVjdG9yID0gcm9vdC0+ZW5zdXJl
U2VsZWN0b3IoKTsKLSAgICAgICAgc2VsZWN0b3ItPnVuc2VsZWN0KG1fc2VsZWN0aW9ucy5nZXQo
KSk7Ci0gICAgICAgIHNlbGVjdG9yLT5zZWxlY3QodGhpcywgbV9zZWxlY3Rpb25zLmdldCgpKTsK
LSAgICB9Ci0KLSAgICBJbnNlcnRpb25Qb2ludDo6YXR0YWNoKCk7Ci0KLSAgICBpZiAocm9vdCkg
ewotICAgICAgICBmb3IgKEhUTUxDb250ZW50U2VsZWN0aW9uKiBzZWxlY3Rpb24gPSBtX3NlbGVj
dGlvbnMtPmZpcnN0KCk7IHNlbGVjdGlvbjsgc2VsZWN0aW9uID0gc2VsZWN0aW9uLT5uZXh0KCkp
Ci0gICAgICAgICAgICBzZWxlY3Rpb24tPm5vZGUoKS0+YXR0YWNoKCk7Ci0gICAgfQotfQotCi12
b2lkIEhUTUxDb250ZW50RWxlbWVudDo6ZGV0YWNoKCkKLXsKLSAgICBpZiAoU2hhZG93Um9vdCog
cm9vdCA9IHRvU2hhZG93Um9vdChzaGFkb3dUcmVlUm9vdE5vZGUoKSkpIHsKLSAgICAgICAgaWYg
KEhUTUxDb250ZW50U2VsZWN0b3IqIHNlbGVjdG9yID0gcm9vdC0+c2VsZWN0b3IoKSkKLSAgICAg
ICAgICAgIHNlbGVjdG9yLT51bnNlbGVjdChtX3NlbGVjdGlvbnMuZ2V0KCkpOwotCi0gICAgICAg
IC8vIFdoZW4gY29udGVudCBlbGVtZW50IGlzIGRldGFjaGVkLCBzaGFkb3cgdHJlZSBzaG91bGQg
YmUgcmVjcmVhdGVkIHRvIHJlLWNhbGN1bGF0ZSBzZWxlY3RvciBmb3IKLSAgICAgICAgLy8gb3Ro
ZXIgY29udGVudCBlbGVtZW50cy4KLSAgICAgICAgcm9vdC0+c2V0TmVlZHNSZWF0dGFjaEhvc3RD
aGlsZHJlbkFuZFNoYWRvdygpOwotICAgIH0KLQotICAgIEFTU0VSVChtX3NlbGVjdGlvbnMtPmlz
RW1wdHkoKSk7Ci0gICAgSW5zZXJ0aW9uUG9pbnQ6OmRldGFjaCgpOwotfQotCiBjb25zdCBBdG9t
aWNTdHJpbmcmIEhUTUxDb250ZW50RWxlbWVudDo6c2VsZWN0KCkgY29uc3QKIHsKICAgICByZXR1
cm4gZ2V0QXR0cmlidXRlKHNlbGVjdEF0dHIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9IVE1MQ29udGVudEVsZW1lbnQuaAppbmRleCBhMDEzYzZkZTg5N2RiMjdmMzgwZjUzNTIx
ZmQyNTRmZTc4NTdhMjZiLi5hOWQyOTU1YTAzNGNmZmQ3YjRiZTlkODc4N2IzNThlZDc4ZDU0ZTA0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQu
aApAQCAtMzEsMzggKzMxLDIxIEBACiAjaWZuZGVmIEhUTUxDb250ZW50RWxlbWVudF9oCiAjZGVm
aW5lIEhUTUxDb250ZW50RWxlbWVudF9oCiAKLSNpbmNsdWRlICJIVE1MQ29udGVudFNlbGVjdG9y
LmgiCiAjaW5jbHVkZSAiSW5zZXJ0aW9uUG9pbnQuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIENvbnRlbnRTZWxlY3RvclF1ZXJ5Owot
Y2xhc3MgSFRNTENvbnRlbnRTZWxlY3Rpb25MaXN0OwotCi0vLyBOT1RFOiBDdXJyZW50IGltcGxl
bWVudGF0aW9uIGRvZXNuJ3Qgc3VwcG9ydCBkeW5hbWljIGluc2VydGlvbi9kZWxldGlvbiBvZiBI
VE1MQ29udGVudEVsZW1lbnQuCi0vLyBZb3Ugc2hvdWxkIGNyZWF0ZSBIVE1MQ29udGVudEVsZW1l
bnQgZHVyaW5nIHRoZSBob3N0IGNvbnN0cnVjdGlvbi4KIGNsYXNzIEhUTUxDb250ZW50RWxlbWVu
dCA6IHB1YmxpYyBJbnNlcnRpb25Qb2ludCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQ
dHI8SFRNTENvbnRlbnRFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3Vt
ZW50Kik7CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTENvbnRlbnRFbGVtZW50PiBjcmVhdGUo
RG9jdW1lbnQqKTsKIAogICAgIHZpcnR1YWwgfkhUTUxDb250ZW50RWxlbWVudCgpOwotICAgIHZp
cnR1YWwgdm9pZCBhdHRhY2goKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoKCk7CiAKICAgICBj
b25zdCBBdG9taWNTdHJpbmcmIHNlbGVjdCgpIGNvbnN0OwotCi0gICAgLy8gRklYTUU6IEN1cnJl
bnRseSB0aGlzIGNvbnN0cnVjdG9yIGFjY2VwdHMgd2lkZXIgcXVlcnkgdGhhbiBzaGFkb3cgZG9t
IHNwZWMuCi0gICAgLy8gRm9yIGV4YW1wbGUsIGEgc2VsZWN0b3IgcXVlcnkgc2hvdWxkIG5vdCBp
bmNsdWRlIGNvbnRleHR1YWwgc2VsZWN0b3JzLgotICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU5NDYKLSAgICAvLyBGSVhNRTogQ3VycmVudGx5IHdl
IGRvbid0IHN1cHBvcnQgc2V0dGluZyBzZWxlY3QgdmFsdWUgZHluYW1pY2FsbHkuCi0gICAgLy8g
U2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NjI2MQogICAgIHZv
aWQgc2V0U2VsZWN0KGNvbnN0IEF0b21pY1N0cmluZyYpOwogCi0gICAgY29uc3QgSFRNTENvbnRl
bnRTZWxlY3Rpb25MaXN0KiBzZWxlY3Rpb25zKCkgY29uc3QgeyByZXR1cm4gbV9zZWxlY3Rpb25z
LmdldCgpOyB9Ci0gICAgYm9vbCBoYXNTZWxlY3Rpb24oKSBjb25zdCB7IHJldHVybiBzZWxlY3Rp
b25zKCktPmZpcnN0KCk7IH0KLQogICAgIHZpcnR1YWwgYm9vbCBpc1NlbGVjdFZhbGlkKCkgY29u
c3Q7CiAKIHByb3RlY3RlZDoKQEAgLTcwLDEyICs1Myw3IEBAIHByb3RlY3RlZDoKIAogcHJpdmF0
ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNDb250ZW50RWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIHRy
dWU7IH0KLSAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBOb2RlUmVuZGVy
aW5nQ29udGV4dCYpIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBSZW5kZXJPYmplY3Qq
IGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiwgUmVuZGVyU3R5bGUqKSB7IHJldHVybiAwOyB9
Ci0KICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoQXR0cmlidXRlKikgT1ZFUlJJREU7
Ci0KLSAgICBPd25QdHI8SFRNTENvbnRlbnRTZWxlY3Rpb25MaXN0PiBtX3NlbGVjdGlvbnM7CiB9
OwogCiBpbmxpbmUgSFRNTENvbnRlbnRFbGVtZW50KiB0b0hUTUxDb250ZW50RWxlbWVudChOb2Rl
KiBub2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRl
bnRTZWxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudFNl
bGVjdG9yLmNwcAppbmRleCA4N2UxYWQ5ZWJhMDJiMDViOTY2YWZhNmY3ZTY4YWUxMjk3MzEyYjRj
Li45OGJjYTI2ODZhNjg3NDNiZDlhN2U3NGFlOGIyZmFlMGNjYTVlMzM5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudFNlbGVjdG9yLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudFNlbGVjdG9yLmNwcApAQCAtMjYs
NyArMjYsNiBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSFRNTENvbnRlbnRT
ZWxlY3Rvci5oIgotCiAjaW5jbHVkZSAiQ29udGVudFNlbGVjdG9yUXVlcnkuaCIKICNpbmNsdWRl
ICJIVE1MQ29udGVudEVsZW1lbnQuaCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCkBAIC0xMDgs
MTEgKzEwNywxNSBAQCBIVE1MQ29udGVudFNlbGVjdG9yOjp+SFRNTENvbnRlbnRTZWxlY3Rvcigp
CiAgICAgQVNTRVJUKG1fY2FuZGlkYXRlcy5pc0VtcHR5KCkpOwogfQogCi12b2lkIEhUTUxDb250
ZW50U2VsZWN0b3I6OnNlbGVjdChIVE1MQ29udGVudEVsZW1lbnQqIGNvbnRlbnRFbGVtZW50LCBI
VE1MQ29udGVudFNlbGVjdGlvbkxpc3QqIHNlbGVjdGlvbnMpCit2b2lkIEhUTUxDb250ZW50U2Vs
ZWN0b3I6OnNlbGVjdChJbnNlcnRpb25Qb2ludCogaW5zZXJ0aW9uUG9pbnQsIEhUTUxDb250ZW50
U2VsZWN0aW9uTGlzdCogc2VsZWN0aW9ucykKIHsKICAgICBBU1NFUlQoc2VsZWN0aW9ucy0+aXNF
bXB0eSgpKTsKIAotICAgIENvbnRlbnRTZWxlY3RvclF1ZXJ5IHF1ZXJ5KGNvbnRlbnRFbGVtZW50
KTsKKyAgICAvLyBGSVhNRTogQWN0dWFsbHkgPHNoYWRvdz4gc2hvdWxkIGJlIEluc2VydGlvblBv
aW50LCBob3dldmVyIGN1cnJlbnRseSBvbmx5IDxjb250ZW50PiBpcworICAgIC8vIEluc2VydGlv
blBvaW50LiBXZSB3aWxsIG1ha2UgPHNoYWRvdz4gSW5zZXJ0aW9uUG9pbnQgbGF0ZXIuCisgICAg
QVNTRVJUKGluc2VydGlvblBvaW50LT5pc0NvbnRlbnRFbGVtZW50KCkpOworCisgICAgQ29udGVu
dFNlbGVjdG9yUXVlcnkgcXVlcnkodG9IVE1MQ29udGVudEVsZW1lbnQoaW5zZXJ0aW9uUG9pbnQp
KTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fY2FuZGlkYXRlcy5zaXplKCk7ICsraSkg
ewogICAgICAgICBOb2RlKiBjaGlsZCA9IG1fY2FuZGlkYXRlc1tpXS5nZXQoKTsKICAgICAgICAg
aWYgKCFjaGlsZCkKQEAgLTEyMCw3ICsxMjMsNyBAQCB2b2lkIEhUTUxDb250ZW50U2VsZWN0b3I6
OnNlbGVjdChIVE1MQ29udGVudEVsZW1lbnQqIGNvbnRlbnRFbGVtZW50LCBIVE1MQ29udGVudAog
ICAgICAgICBpZiAoIXF1ZXJ5Lm1hdGNoZXMoY2hpbGQpKQogICAgICAgICAgICAgY29udGludWU7
CiAKLSAgICAgICAgUmVmUHRyPEhUTUxDb250ZW50U2VsZWN0aW9uPiBzZWxlY3Rpb24gPSBIVE1M
Q29udGVudFNlbGVjdGlvbjo6Y3JlYXRlKGNvbnRlbnRFbGVtZW50LCBjaGlsZCk7CisgICAgICAg
IFJlZlB0cjxIVE1MQ29udGVudFNlbGVjdGlvbj4gc2VsZWN0aW9uID0gSFRNTENvbnRlbnRTZWxl
Y3Rpb246OmNyZWF0ZShpbnNlcnRpb25Qb2ludCwgY2hpbGQpOwogICAgICAgICBzZWxlY3Rpb25z
LT5hcHBlbmQoc2VsZWN0aW9uKTsKICAgICAgICAgbV9zZWxlY3Rpb25TZXQuYWRkKHNlbGVjdGlv
bi5nZXQoKSk7CiAgICAgICAgIG1fY2FuZGlkYXRlc1tpXSA9IDA7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudFNlbGVjdG9yLmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudFNlbGVjdG9yLmgKaW5kZXggYjBhMjg5MjAyNjll
NGY2ZDMxMTgwMGI1YmNkYmFjZWU4NTM4NzI2MC4uNmEyY2Q3MGRkN2JmYjc5MzU1YzVjZjcyZjRh
YTkwNzBjOGIzMzZjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRN
TENvbnRlbnRTZWxlY3Rvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxD
b250ZW50U2VsZWN0b3IuaApAQCAtMzksMTUgKzM5LDE1IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIEVsZW1lbnQ7Ci1jbGFzcyBIVE1MQ29udGVudEVsZW1lbnQ7CitjbGFzcyBJbnNl
cnRpb25Qb2ludDsKIGNsYXNzIE5vZGU7CiBjbGFzcyBTaGFkb3dSb290OwogCiBjbGFzcyBIVE1M
Q29udGVudFNlbGVjdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPEhUTUxDb250ZW50U2VsZWN0aW9u
PiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTENvbnRlbnRTZWxlY3Rpb24+
IGNyZWF0ZShIVE1MQ29udGVudEVsZW1lbnQqLCBOb2RlKik7CisgICAgc3RhdGljIFBhc3NSZWZQ
dHI8SFRNTENvbnRlbnRTZWxlY3Rpb24+IGNyZWF0ZShJbnNlcnRpb25Qb2ludCosIE5vZGUqKTsK
IAotICAgIEhUTUxDb250ZW50RWxlbWVudCogaW5zZXJ0aW9uUG9pbnQoKSBjb25zdCB7IHJldHVy
biBtX2luc2VydGlvblBvaW50OyB9CisgICAgSW5zZXJ0aW9uUG9pbnQqIGluc2VydGlvblBvaW50
KCkgY29uc3QgeyByZXR1cm4gbV9pbnNlcnRpb25Qb2ludDsgfQogICAgIE5vZGUqIG5vZGUoKSBj
b25zdCB7IHJldHVybiBtX25vZGUuZ2V0KCk7IH0KICAgICBIVE1MQ29udGVudFNlbGVjdGlvbiog
bmV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fbmV4dC5nZXQoKTsgfQogICAgIEhUTUxDb250ZW50U2Vs
ZWN0aW9uKiBwcmV2aW91cygpIGNvbnN0IHsgcmV0dXJuIG1fcHJldmlvdXMuZ2V0KCk7IH0KQEAg
LTU2LDE5ICs1NiwxOSBAQCBwdWJsaWM6CiAgICAgdm9pZCB1bmxpbmsoKTsKIAogcHJpdmF0ZToK
LSAgICBIVE1MQ29udGVudFNlbGVjdGlvbihIVE1MQ29udGVudEVsZW1lbnQqLCBOb2RlKik7Cisg
ICAgSFRNTENvbnRlbnRTZWxlY3Rpb24oSW5zZXJ0aW9uUG9pbnQqLCBOb2RlKik7CiAKLSAgICBI
VE1MQ29udGVudEVsZW1lbnQqIG1faW5zZXJ0aW9uUG9pbnQ7CisgICAgSW5zZXJ0aW9uUG9pbnQq
IG1faW5zZXJ0aW9uUG9pbnQ7CiAgICAgUmVmUHRyPE5vZGU+IG1fbm9kZTsKICAgICBSZWZQdHI8
SFRNTENvbnRlbnRTZWxlY3Rpb24+IG1fbmV4dDsKICAgICBSZWZQdHI8SFRNTENvbnRlbnRTZWxl
Y3Rpb24+IG1fcHJldmlvdXM7CiB9OwogCi1pbmxpbmUgSFRNTENvbnRlbnRTZWxlY3Rpb246OkhU
TUxDb250ZW50U2VsZWN0aW9uKEhUTUxDb250ZW50RWxlbWVudCogaW5zZXJ0aW9uUG9pbnQsIE5v
ZGUqIG5vZGUpCitpbmxpbmUgSFRNTENvbnRlbnRTZWxlY3Rpb246OkhUTUxDb250ZW50U2VsZWN0
aW9uKEluc2VydGlvblBvaW50KiBpbnNlcnRpb25Qb2ludCwgTm9kZSogbm9kZSkKICAgICA6IG1f
aW5zZXJ0aW9uUG9pbnQoaW5zZXJ0aW9uUG9pbnQpLCBtX25vZGUobm9kZSkKIHsgfQogCi1pbmxp
bmUgUGFzc1JlZlB0cjxIVE1MQ29udGVudFNlbGVjdGlvbj4gSFRNTENvbnRlbnRTZWxlY3Rpb246
OmNyZWF0ZShIVE1MQ29udGVudEVsZW1lbnQqIGluc2VydGlvblBvaW50LCBOb2RlKiBub2RlKQor
aW5saW5lIFBhc3NSZWZQdHI8SFRNTENvbnRlbnRTZWxlY3Rpb24+IEhUTUxDb250ZW50U2VsZWN0
aW9uOjpjcmVhdGUoSW5zZXJ0aW9uUG9pbnQqIGluc2VydGlvblBvaW50LCBOb2RlKiBub2RlKQog
ewogICAgIHJldHVybiBhZG9wdFJlZihuZXcgSFRNTENvbnRlbnRTZWxlY3Rpb24oaW5zZXJ0aW9u
UG9pbnQsIG5vZGUpKTsKIH0KQEAgLTEyOSw3ICsxMjksNyBAQCBwdWJsaWM6CiAgICAgSFRNTENv
bnRlbnRTZWxlY3RvcigpOwogICAgIH5IVE1MQ29udGVudFNlbGVjdG9yKCk7CiAKLSAgICB2b2lk
IHNlbGVjdChIVE1MQ29udGVudEVsZW1lbnQqLCBIVE1MQ29udGVudFNlbGVjdGlvbkxpc3QqKTsK
KyAgICB2b2lkIHNlbGVjdChJbnNlcnRpb25Qb2ludCosIEhUTUxDb250ZW50U2VsZWN0aW9uTGlz
dCopOwogICAgIHZvaWQgdW5zZWxlY3QoSFRNTENvbnRlbnRTZWxlY3Rpb25MaXN0Kik7CiAgICAg
SFRNTENvbnRlbnRTZWxlY3Rpb24qIGZpbmRGb3IoTm9kZSoga2V5KSBjb25zdDsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSW5zZXJ0aW9uUG9pbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSW5zZXJ0aW9uUG9pbnQuY3BwCmluZGV4IGZhZTRmMzgw
NTViMTQyMjRmN2Q0MTA1N2YxNzY0MWJjY2E4YmM4OGQuLmMyZGEzYjcwM2Q5ZmExODA3ZDc0MWE2
ZGRjMjUwYzBkZjgzNjVjYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L0luc2VydGlvblBvaW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9JbnNl
cnRpb25Qb2ludC5jcHAKQEAgLTMxLDcgKzMxLDkgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNp
bmNsdWRlICJJbnNlcnRpb25Qb2ludC5oIgogCisjaW5jbHVkZSAiSFRNTENvbnRlbnRTZWxlY3Rv
ci5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zOSw2ICs0MSw3IEBAIGNsYXNzIERvY3VtZW50Owog
CiBJbnNlcnRpb25Qb2ludDo6SW5zZXJ0aW9uUG9pbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFn
TmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQogICAgIDogSFRNTEVsZW1lbnQodGFnTmFtZSwgZG9j
dW1lbnQpCisgICAgLCBtX3NlbGVjdGlvbnMoYWRvcHRQdHIobmV3IEhUTUxDb250ZW50U2VsZWN0
aW9uTGlzdCgpKSkKIHsKIH0KIApAQCAtNDYsNCArNDksMzkgQEAgSW5zZXJ0aW9uUG9pbnQ6On5J
bnNlcnRpb25Qb2ludCgpCiB7CiB9CiAKK3ZvaWQgSW5zZXJ0aW9uUG9pbnQ6OmF0dGFjaCgpCit7
CisgICAgU2hhZG93Um9vdCogcm9vdCA9IHRvU2hhZG93Um9vdChzaGFkb3dUcmVlUm9vdE5vZGUo
KSk7CisKKyAgICAvLyBCZWZvcmUgY2FsbGluZyBTdHlsZWRFbGVtZW50OjphdHRhY2gsIHNlbGVj
dG9yIG11c3QgYmUgY2FsY3VsYXRlZC4KKyAgICBpZiAocm9vdCkgeworICAgICAgICBIVE1MQ29u
dGVudFNlbGVjdG9yKiBzZWxlY3RvciA9IHJvb3QtPmVuc3VyZVNlbGVjdG9yKCk7CisgICAgICAg
IHNlbGVjdG9yLT51bnNlbGVjdChtX3NlbGVjdGlvbnMuZ2V0KCkpOworICAgICAgICBzZWxlY3Rv
ci0+c2VsZWN0KHRoaXMsIG1fc2VsZWN0aW9ucy5nZXQoKSk7CisgICAgfQorCisgICAgSFRNTEVs
ZW1lbnQ6OmF0dGFjaCgpOworCisgICAgaWYgKHJvb3QpIHsKKyAgICAgICAgZm9yIChIVE1MQ29u
dGVudFNlbGVjdGlvbiogc2VsZWN0aW9uID0gbV9zZWxlY3Rpb25zLT5maXJzdCgpOyBzZWxlY3Rp
b247IHNlbGVjdGlvbiA9IHNlbGVjdGlvbi0+bmV4dCgpKQorICAgICAgICAgICAgc2VsZWN0aW9u
LT5ub2RlKCktPmF0dGFjaCgpOworICAgIH0KK30KKwordm9pZCBJbnNlcnRpb25Qb2ludDo6ZGV0
YWNoKCkKK3sKKyAgICBpZiAoU2hhZG93Um9vdCogcm9vdCA9IHRvU2hhZG93Um9vdChzaGFkb3dU
cmVlUm9vdE5vZGUoKSkpIHsKKyAgICAgICAgaWYgKEhUTUxDb250ZW50U2VsZWN0b3IqIHNlbGVj
dG9yID0gcm9vdC0+c2VsZWN0b3IoKSkKKyAgICAgICAgICAgIHNlbGVjdG9yLT51bnNlbGVjdCht
X3NlbGVjdGlvbnMuZ2V0KCkpOworCisgICAgICAgIC8vIFdoZW4gY29udGVudCBlbGVtZW50IGlz
IGRldGFjaGVkLCBzaGFkb3cgdHJlZSBzaG91bGQgYmUgcmVjcmVhdGVkIHRvIHJlLWNhbGN1bGF0
ZSBzZWxlY3RvciBmb3IKKyAgICAgICAgLy8gb3RoZXIgY29udGVudCBlbGVtZW50cy4KKyAgICAg
ICAgcm9vdC0+c2V0TmVlZHNSZWF0dGFjaEhvc3RDaGlsZHJlbkFuZFNoYWRvdygpOworICAgIH0K
KworICAgIEFTU0VSVChtX3NlbGVjdGlvbnMtPmlzRW1wdHkoKSk7CisgICAgSFRNTEVsZW1lbnQ6
OmRldGFjaCgpOworfQorCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0luc2VydGlvblBvaW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9JbnNlcnRpb25Qb2ludC5oCmluZGV4IDNmNTU1NmVjMjA1OTI1MGQzMWE4
NDEwZDBkYzQxNmFjODRhNWI2YWQuLmVmZDlmM2E3Yzc5Y2Q3N2E1OGNhNGUxNmFjNzY2OTU4MWRk
NWMzYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0luc2VydGlvblBv
aW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSW5zZXJ0aW9uUG9pbnQuaApA
QCAtMzEsMTggKzMxLDQ5IEBACiAjaWZuZGVmIEluc2VydGlvblBvaW50X2gKICNkZWZpbmUgSW5z
ZXJ0aW9uUG9pbnRfaAogCisjaW5jbHVkZSAiSFRNTENvbnRlbnRTZWxlY3Rvci5oIgogI2luY2x1
ZGUgIkhUTUxFbGVtZW50LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgQ29udGVu
dFNlbGVjdG9yUXVlcnk7CitjbGFzcyBIVE1MQ29udGVudFNlbGVjdGlvbkxpc3Q7CisKIGNsYXNz
IEluc2VydGlvblBvaW50IDogcHVibGljIEhUTUxFbGVtZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0
dWFsIH5JbnNlcnRpb25Qb2ludCgpOwogCisgICAgdmlydHVhbCB2b2lkIGF0dGFjaCgpOworICAg
IHZpcnR1YWwgdm9pZCBkZXRhY2goKTsKKworICAgIGNvbnN0IEhUTUxDb250ZW50U2VsZWN0aW9u
TGlzdCogc2VsZWN0aW9ucygpIGNvbnN0IHsgcmV0dXJuIG1fc2VsZWN0aW9ucy5nZXQoKTsgfQor
ICAgIGJvb2wgaGFzU2VsZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gc2VsZWN0aW9ucygpLT5maXJz
dCgpOyB9CisKIHByb3RlY3RlZDoKICAgICBJbnNlcnRpb25Qb2ludChjb25zdCBRdWFsaWZpZWRO
YW1lJiwgRG9jdW1lbnQqKTsKKworICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNv
bnN0IE5vZGVSZW5kZXJpbmdDb250ZXh0JikgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFs
IFJlbmRlck9iamVjdCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqLCBSZW5kZXJTdHlsZSop
IHsgcmV0dXJuIDA7IH0KKworICAgIE93blB0cjxIVE1MQ29udGVudFNlbGVjdGlvbkxpc3Q+IG1f
c2VsZWN0aW9uczsKIH07CiAKK2lubGluZSBib29sIGlzSW5zZXJ0aW9uUG9pbnQoTm9kZSogbm9k
ZSkKK3sKKyAgICAvLyBGSVhNRTogPHNoYWRvdz4gc2hvdWxkIGFsc28gYmUgSW5zZXJ0aW9uUG9p
bnQuCisgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4NTk2
CisgICAgaWYgKCFub2RlIHx8IG5vZGUtPmlzQ29udGVudEVsZW1lbnQoKSkKKyAgICAgICAgcmV0
dXJuIHRydWU7CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2lubGluZSBJbnNlcnRpb25Qb2lu
dCogdG9JbnNlcnRpb25Qb2ludChOb2RlKiBub2RlKQoreworICAgIEFTU0VSVCghbm9kZSB8fCBp
c0luc2VydGlvblBvaW50KG5vZGUpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SW5zZXJ0aW9u
UG9pbnQqPihub2RlKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8g
SW5zZXJ0aW9uUG9pbnRfaAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127796</attachid>
            <date>2012-02-20 03:12:14 -0800</date>
            <delta_ts>2012-02-20 17:54:49 -0800</delta_ts>
            <desc>use InsertionPoint</desc>
            <filename>bug-78778-20120220201212.patch</filename>
            <type>text/plain</type>
            <size>12903</size>
            <attacher name="Hayato Ito">hayato</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4MjEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmRmODJiN2Y5MzYyZmNh
ZWJhMzEwYjU0OTg2NDVmZTlkMGRiZTM2Yy4uM2E3Y2ZhZmY2ODllOGQ0NmEyNDIyNjc4NWFkNjNj
Y2JjNWU4YTVlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDEyLTAyLTIwICBIYXlh
dG8gSXRvICA8aGF5YXRvQGNocm9taXVtLm9yZz4KKworICAgICAgICBVc2UgSW5zZXJ0aW5vblBv
aW50IGluc3RlYWQgb2YgSFRNTENvbnRlbnRFbGVtZW50LgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg3NzgKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZXBsYWNlIEhUTUxDb250ZW50RWxlbWVudCB3aXRo
IEluc2VydGlvblBvaW50IGluIE5vZGVSZW5kZXJpbmdDb250ZXh0IGFuZCBIVE1MQ29udGVudFNl
bGVjdGlvbi4KKyAgICAgICAgVGhpcyBpcyBvbmUgb2YgZm9sbG93dXAgcGF0Y2hlcyBmb3IgcjEw
ODIwNy4KKworICAgICAgICBObyBuZXcgdGVzdHMsIG5vIGNoYW5nZSBpbiBiZWhhdmlvci4KKwor
ICAgICAgICAqIGRvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpuZXh0UmVuZGVyZXJPZik6CisgICAgICAgIChXZWJDb3JlOjpwcmV2aW91c1JlbmRlcmVyT2Yp
OgorICAgICAgICAoV2ViQ29yZTo6Zmlyc3RSZW5kZXJlck9mKToKKyAgICAgICAgKFdlYkNvcmU6
Omxhc3RSZW5kZXJlck9mKToKKyAgICAgICAgKiBkb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuaDoK
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoTm9kZVJlbmRlcmluZ0NvbnRleHQpOgorICAg
ICAgICAoV2ViQ29yZTo6Tm9kZVJlbmRlcmluZ0NvbnRleHQ6Omluc2VydGlvblBvaW50KToKKyAg
ICAgICAgKiBkb20vU2hhZG93Um9vdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290
OjppbnNlcnRpb25Qb2ludEZvcik6CisgICAgICAgICogZG9tL1NoYWRvd1Jvb3QuaDoKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAqIGh0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29udGVudEVsZW1lbnQ6OkhUTUxDb250ZW50RWxl
bWVudCk6CisgICAgICAgICogaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50Lmg6CisgICAg
ICAgIChIVE1MQ29udGVudEVsZW1lbnQpOgorICAgICAgICAqIGh0bWwvc2hhZG93L0hUTUxDb250
ZW50U2VsZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbnRlbnRTZWxlY3Rvcjo6
c2VsZWN0KToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9IVE1MQ29udGVudFNlbGVjdG9yLmg6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKEhUTUxDb250ZW50U2VsZWN0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxDb250ZW50U2VsZWN0aW9uOjppbnNlcnRpb25Qb2ludCk6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MQ29udGVudFNlbGVjdGlvbjo6SFRNTENvbnRlbnRTZWxlY3Rpb24p
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbnRlbnRTZWxlY3Rpb246OmNyZWF0ZSk6CisgICAg
ICAgICogaHRtbC9zaGFkb3cvSW5zZXJ0aW9uUG9pbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SW5zZXJ0aW9uUG9pbnQ6Okluc2VydGlvblBvaW50KToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9J
bnNlcnRpb25Qb2ludC5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0aW9uUG9pbnQ6OnNlbGVj
dGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0aW9uUG9pbnQ6Omhhc1NlbGVjdGlvbik6
CisgICAgICAgIChJbnNlcnRpb25Qb2ludCk6CisKIDIwMTItMDItMTcgIFl1cnkgU2VtaWtoYXRz
a3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBXZWIgSW5zcGVj
dG9yOiB0ZXJtaW5hdGVkIHdvcmtlcnMgYXJlIG5vdCByZW1vdmVkIGZyb20gZGVkaWNhdGVkIHdv
cmtlciBsaXN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0Nv
bnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcApp
bmRleCA4ZTQ1YjQxM2FlY2Q2ZTAyYzIwNTAyZTM4YTEwZWI3NDY5YTRhNjllLi45YTU1YWIzYTRh
NjM4NTMxYTM4ZjllY2FlMWQzNGJhNjYyZjNkM2JlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlUmVuZGVyaW5nQ29udGV4dC5jcHAKQEAgLTExOSw3ICsxMTksNyBAQCBQYXNzUmVmUHRyPFJl
bmRlclN0eWxlPiBOb2RlUmVuZGVyaW5nQ29udGV4dDo6cmVsZWFzZVN0eWxlKCkKICAgICByZXR1
cm4gbV9zdHlsZS5yZWxlYXNlKCk7CiB9CiAKLXN0YXRpYyBSZW5kZXJPYmplY3QqIG5leHRSZW5k
ZXJlck9mKEhUTUxDb250ZW50RWxlbWVudCogcGFyZW50LCBOb2RlKiBjdXJyZW50KQorc3RhdGlj
IFJlbmRlck9iamVjdCogbmV4dFJlbmRlcmVyT2YoSW5zZXJ0aW9uUG9pbnQqIHBhcmVudCwgTm9k
ZSogY3VycmVudCkKIHsKICAgICBIVE1MQ29udGVudFNlbGVjdGlvbiogY3VycmVudFNlbGVjdGlv
biA9IHBhcmVudC0+c2VsZWN0aW9ucygpLT5maW5kKGN1cnJlbnQpOwogICAgIGlmICghY3VycmVu
dFNlbGVjdGlvbikKQEAgLTEzMyw3ICsxMzMsNyBAQCBzdGF0aWMgUmVuZGVyT2JqZWN0KiBuZXh0
UmVuZGVyZXJPZihIVE1MQ29udGVudEVsZW1lbnQqIHBhcmVudCwgTm9kZSogY3VycmVudCkKICAg
ICByZXR1cm4gMDsKIH0KIAotc3RhdGljIFJlbmRlck9iamVjdCogcHJldmlvdXNSZW5kZXJlck9m
KEhUTUxDb250ZW50RWxlbWVudCogcGFyZW50LCBOb2RlKiBjdXJyZW50KQorc3RhdGljIFJlbmRl
ck9iamVjdCogcHJldmlvdXNSZW5kZXJlck9mKEluc2VydGlvblBvaW50KiBwYXJlbnQsIE5vZGUq
IGN1cnJlbnQpCiB7CiAgICAgUmVuZGVyT2JqZWN0KiBsYXN0UmVuZGVyZXIgPSAwOwogCkBAIC0x
NDcsNyArMTQ3LDcgQEAgc3RhdGljIFJlbmRlck9iamVjdCogcHJldmlvdXNSZW5kZXJlck9mKEhU
TUxDb250ZW50RWxlbWVudCogcGFyZW50LCBOb2RlKiBjdXJyZW4KICAgICByZXR1cm4gbGFzdFJl
bmRlcmVyOwogfQogCi1zdGF0aWMgUmVuZGVyT2JqZWN0KiBmaXJzdFJlbmRlcmVyT2YoSFRNTENv
bnRlbnRFbGVtZW50KiBwYXJlbnQpCitzdGF0aWMgUmVuZGVyT2JqZWN0KiBmaXJzdFJlbmRlcmVy
T2YoSW5zZXJ0aW9uUG9pbnQqIHBhcmVudCkKIHsKICAgICBmb3IgKEhUTUxDb250ZW50U2VsZWN0
aW9uKiBzZWxlY3Rpb24gPSBwYXJlbnQtPnNlbGVjdGlvbnMoKS0+Zmlyc3QoKTsgc2VsZWN0aW9u
OyBzZWxlY3Rpb24gPSBzZWxlY3Rpb24tPm5leHQoKSkgewogICAgICAgICBpZiAoUmVuZGVyT2Jq
ZWN0KiByZW5kZXJlciA9IHNlbGVjdGlvbi0+bm9kZSgpLT5yZW5kZXJlcigpKQpAQCAtMTU3LDcg
KzE1Nyw3IEBAIHN0YXRpYyBSZW5kZXJPYmplY3QqIGZpcnN0UmVuZGVyZXJPZihIVE1MQ29udGVu
dEVsZW1lbnQqIHBhcmVudCkKICAgICByZXR1cm4gMDsKIH0KIAotc3RhdGljIFJlbmRlck9iamVj
dCogbGFzdFJlbmRlcmVyT2YoSFRNTENvbnRlbnRFbGVtZW50KiBwYXJlbnQpCitzdGF0aWMgUmVu
ZGVyT2JqZWN0KiBsYXN0UmVuZGVyZXJPZihJbnNlcnRpb25Qb2ludCogcGFyZW50KQogewogICAg
IGZvciAoSFRNTENvbnRlbnRTZWxlY3Rpb24qIHNlbGVjdGlvbiA9IHBhcmVudC0+c2VsZWN0aW9u
cygpLT5sYXN0KCk7IHNlbGVjdGlvbjsgc2VsZWN0aW9uID0gc2VsZWN0aW9uLT5wcmV2aW91cygp
KSB7CiAgICAgICAgIGlmIChSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gc2VsZWN0aW9uLT5ub2Rl
KCktPnJlbmRlcmVyKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRl
cmluZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5o
CmluZGV4IGVjYzIyZmUyM2EyYThlNmRlNDc3YmFmMTg5ZjJhMjU4MzhlMDYwMzQuLmYzZjUwMWE4
MWViNTlkYTUwZDFlMjk2NjFlOWQ2YjhlZGMxMzc3NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlUmVuZGVyaW5nQ29udGV4dC5oCkBAIC0zNCwxMSArMzQsMTEgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBjbGFzcyBDb250YWluZXJOb2RlOwogY2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBJbnNl
cnRpb25Qb2ludDsKIGNsYXNzIE5vZGU7CiBjbGFzcyBSZW5kZXJGbG93VGhyZWFkOwogY2xhc3Mg
UmVuZGVyT2JqZWN0OwogY2xhc3MgUmVuZGVyU3R5bGU7Ci1jbGFzcyBIVE1MQ29udGVudEVsZW1l
bnQ7CiBjbGFzcyBTaGFkb3dSb290OwogCiBjbGFzcyBOb2RlUmVuZGVyaW5nQ29udGV4dCB7CkBA
IC01Miw3ICs1Miw3IEBAIHB1YmxpYzoKICAgICBSZW5kZXJPYmplY3QqIHBhcmVudFJlbmRlcmVy
KCkgY29uc3Q7CiAgICAgUmVuZGVyT2JqZWN0KiBuZXh0UmVuZGVyZXIoKSBjb25zdDsKICAgICBS
ZW5kZXJPYmplY3QqIHByZXZpb3VzUmVuZGVyZXIoKSBjb25zdDsKLSAgICBIVE1MQ29udGVudEVs
ZW1lbnQqIGluc2VydGlvblBvaW50KCkgY29uc3Q7CisgICAgSW5zZXJ0aW9uUG9pbnQqIGluc2Vy
dGlvblBvaW50KCkgY29uc3Q7CiAKICAgICBSZW5kZXJTdHlsZSogc3R5bGUoKSBjb25zdDsKICAg
ICB2b2lkIHNldFN0eWxlKFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+KTsKQEAgLTgxLDcgKzgxLDcg
QEAgcHJpdmF0ZToKICAgICBOb2RlKiBtX25vZGU7CiAgICAgQ29udGFpbmVyTm9kZSogbV9wYXJl
bnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGU7CiAgICAgU2hhZG93Um9vdCogbV92aXN1YWxQYXJl
bnRTaGFkb3dSb290OwotICAgIEhUTUxDb250ZW50RWxlbWVudCogbV9pbnNlcnRpb25Qb2ludDsK
KyAgICBJbnNlcnRpb25Qb2ludCogbV9pbnNlcnRpb25Qb2ludDsKICAgICBSZWZQdHI8UmVuZGVy
U3R5bGU+IG1fc3R5bGU7CiAgICAgUmVuZGVyRmxvd1RocmVhZCogbV9wYXJlbnRGbG93UmVuZGVy
ZXI7CiAgICAgQXRvbWljU3RyaW5nIG1fZmxvd1RocmVhZDsKQEAgLTEwMyw3ICsxMDMsNyBAQCBp
bmxpbmUgUmVuZGVyU3R5bGUqIE5vZGVSZW5kZXJpbmdDb250ZXh0OjpzdHlsZSgpIGNvbnN0CiAg
ICAgcmV0dXJuIG1fc3R5bGUuZ2V0KCk7CiB9CiAKLWlubGluZSBIVE1MQ29udGVudEVsZW1lbnQq
IE5vZGVSZW5kZXJpbmdDb250ZXh0OjppbnNlcnRpb25Qb2ludCgpIGNvbnN0CitpbmxpbmUgSW5z
ZXJ0aW9uUG9pbnQqIE5vZGVSZW5kZXJpbmdDb250ZXh0OjppbnNlcnRpb25Qb2ludCgpIGNvbnN0
CiB7CiAgICAgcmV0dXJuIG1faW5zZXJ0aW9uUG9pbnQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9v
dC5jcHAKaW5kZXggZWQ5MGYwZmVjODBkNThiNzhkZjdiYjcwMjRkMTE0MjBjZjZmNWZmMy4uODZh
NzE1MWY2YWJiYjEyODU3YWVlNTA1NzdlOGQ4MzJjYThiM2Q5OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFk
b3dSb290LmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkhUTUxDb250ZW50RWxlbWVu
dC5oIgogI2luY2x1ZGUgIkhUTUxDb250ZW50U2VsZWN0b3IuaCIKICNpbmNsdWRlICJIVE1MTmFt
ZXMuaCIKKyNpbmNsdWRlICJJbnNlcnRpb25Qb2ludC5oIgogI2luY2x1ZGUgIk5vZGVSYXJlRGF0
YS5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3RMaXN0LmgiCiAjaW5jbHVkZSAiU1ZHTmFtZXMuaCIK
QEAgLTE4Miw3ICsxODMsNyBAQCB2b2lkIFNoYWRvd1Jvb3Q6OnNldE5lZWRzUmVhdHRhY2hIb3N0
Q2hpbGRyZW5BbmRTaGFkb3coKQogICAgICAgICBzaGFkb3dIb3N0KCktPnNldE5lZWRzU3R5bGVS
ZWNhbGMoKTsKIH0KIAotSFRNTENvbnRlbnRFbGVtZW50KiBTaGFkb3dSb290OjppbnNlcnRpb25Q
b2ludEZvcihOb2RlKiBub2RlKSBjb25zdAorSW5zZXJ0aW9uUG9pbnQqIFNoYWRvd1Jvb3Q6Omlu
c2VydGlvblBvaW50Rm9yKE5vZGUqIG5vZGUpIGNvbnN0CiB7CiAgICAgaWYgKCFtX3NlbGVjdG9y
KQogICAgICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFk
b3dSb290LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oCmluZGV4IDgzZTE3MTM0
OTk1MjllNDY0ZDhjMzYwOTliZmRkNWJjMTVmNGMxZTEuLmQ0NzVmMjQ4MjUzYTBkMWEwODViNjc3
ODRlNzBmNjdhZDkzYWM4N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dS
b290LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaApAQCAtMzcsNiArMzcs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBEb2N1bWVudDsKIGNsYXNzIEhUTUxDb250
ZW50RWxlbWVudDsKIGNsYXNzIEhUTUxDb250ZW50U2VsZWN0b3I7CitjbGFzcyBJbnNlcnRpb25Q
b2ludDsKIAogY2xhc3MgU2hhZG93Um9vdCA6IHB1YmxpYyBEb2N1bWVudEZyYWdtZW50LCBwdWJs
aWMgVHJlZVNjb3BlLCBwdWJsaWMgRG91Ymx5TGlua2VkTGlzdE5vZGU8U2hhZG93Um9vdD4gewog
ICAgIGZyaWVuZCBjbGFzcyBXVEY6OkRvdWJseUxpbmtlZExpc3ROb2RlPFNoYWRvd1Jvb3Q+OwpA
QCAtNTksNyArNjAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjbGVhck5lZWRzUmVhdHRhY2hIb3N0
Q2hpbGRyZW5BbmRTaGFkb3coKTsKICAgICBib29sIG5lZWRzUmVhdHRhY2hIb3N0Q2hpbGRyZW5B
bmRTaGFkb3coKTsKIAotICAgIEhUTUxDb250ZW50RWxlbWVudCogaW5zZXJ0aW9uUG9pbnRGb3Io
Tm9kZSopIGNvbnN0OworICAgIEluc2VydGlvblBvaW50KiBpbnNlcnRpb25Qb2ludEZvcihOb2Rl
KikgY29uc3Q7CiAgICAgdm9pZCBob3N0Q2hpbGRyZW5DaGFuZ2VkKCk7CiAgICAgYm9vbCBpc1Nl
bGVjdG9yQWN0aXZlKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9IVE1MQ29udGVudEVsZW1lbnQuY3BwCmluZGV4IDZhNmI4OWJmYWFkYzQ5N2E0NWIxMDA3ZTFk
ZTYzNzI3OTEyMTEzNDkuLmQyMzRiMmJmN2ZhMmRhYjQzZDFkMDc2MWI0N2ZiZmZjZGE2YjhhM2Eg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50
LmNwcApAQCAtNjAsNyArNjAsNiBAQCBQYXNzUmVmUHRyPEhUTUxDb250ZW50RWxlbWVudD4gSFRN
TENvbnRlbnRFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdAogCiBIVE1MQ29u
dGVudEVsZW1lbnQ6OkhUTUxDb250ZW50RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1l
LCBEb2N1bWVudCogZG9jdW1lbnQpCiAgICAgOiBJbnNlcnRpb25Qb2ludChuYW1lLCBkb2N1bWVu
dCkKLSAgICAsIG1fc2VsZWN0aW9ucyhhZG9wdFB0cihuZXcgSFRNTENvbnRlbnRTZWxlY3Rpb25M
aXN0KCkpKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9I
VE1MQ29udGVudEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250
ZW50RWxlbWVudC5oCmluZGV4IGEwMTNjNmRlODk3ZGIyN2YzODBmNTM1MjFmZDI1NGZlNzg1N2Ey
NmIuLmNkNWMyZTI5MzdlOWRlMDVlNjg2ZDVhYTkxOWE1NDUzNDQ2ZmE1MGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5oCkBAIC02MCw5ICs2
MCw2IEBAIHB1YmxpYzoKICAgICAvLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTc2MjYxCiAgICAgdm9pZCBzZXRTZWxlY3QoY29uc3QgQXRvbWljU3RyaW5nJik7
CiAKLSAgICBjb25zdCBIVE1MQ29udGVudFNlbGVjdGlvbkxpc3QqIHNlbGVjdGlvbnMoKSBjb25z
dCB7IHJldHVybiBtX3NlbGVjdGlvbnMuZ2V0KCk7IH0KLSAgICBib29sIGhhc1NlbGVjdGlvbigp
IGNvbnN0IHsgcmV0dXJuIHNlbGVjdGlvbnMoKS0+Zmlyc3QoKTsgfQotCiAgICAgdmlydHVhbCBi
b29sIGlzU2VsZWN0VmFsaWQoKSBjb25zdDsKIAogcHJvdGVjdGVkOgpAQCAtNzQsOCArNzEsNiBA
QCBwcml2YXRlOgogICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5k
ZXJBcmVuYSosIFJlbmRlclN0eWxlKikgeyByZXR1cm4gMDsgfQogCiAgICAgdmlydHVhbCB2b2lk
IHBhcnNlQXR0cmlidXRlKEF0dHJpYnV0ZSopIE9WRVJSSURFOwotCi0gICAgT3duUHRyPEhUTUxD
b250ZW50U2VsZWN0aW9uTGlzdD4gbV9zZWxlY3Rpb25zOwogfTsKIAogaW5saW5lIEhUTUxDb250
ZW50RWxlbWVudCogdG9IVE1MQ29udGVudEVsZW1lbnQoTm9kZSogbm9kZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50U2VsZWN0b3IuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRTZWxlY3Rvci5jcHAKaW5kZXggODdl
MWFkOWViYTAyYjA1Yjk2NmFmYTZmN2U2OGFlMTI5NzMxMmI0Yy4uMWNiZDIxODI2ZjliMDYwZDY4
YTlhYjI5NTMxZGE2MjE5MTdjYzY5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvSFRNTENvbnRlbnRTZWxlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvSFRNTENvbnRlbnRTZWxlY3Rvci5jcHAKQEAgLTEyMSw2ICsxMjEsNyBAQCB2b2lkIEhU
TUxDb250ZW50U2VsZWN0b3I6OnNlbGVjdChIVE1MQ29udGVudEVsZW1lbnQqIGNvbnRlbnRFbGVt
ZW50LCBIVE1MQ29udGVudAogICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgUmVmUHRy
PEhUTUxDb250ZW50U2VsZWN0aW9uPiBzZWxlY3Rpb24gPSBIVE1MQ29udGVudFNlbGVjdGlvbjo6
Y3JlYXRlKGNvbnRlbnRFbGVtZW50LCBjaGlsZCk7CisKICAgICAgICAgc2VsZWN0aW9ucy0+YXBw
ZW5kKHNlbGVjdGlvbik7CiAgICAgICAgIG1fc2VsZWN0aW9uU2V0LmFkZChzZWxlY3Rpb24uZ2V0
KCkpOwogICAgICAgICBtX2NhbmRpZGF0ZXNbaV0gPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRTZWxlY3Rvci5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvSFRNTENvbnRlbnRTZWxlY3Rvci5oCmluZGV4IGIwYTI4OTIwMjY5ZTRmNmQz
MTE4MDBiNWJjZGJhY2VlODUzODcyNjAuLjY0MjE0Y2JhYjc2ZTMwMDU0ZDc3ZDc4ZDJmOGVkYmM4
MWViMTM4NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250
ZW50U2VsZWN0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVu
dFNlbGVjdG9yLmgKQEAgLTQwLDE0ICs0MCwxNSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNs
YXNzIEVsZW1lbnQ7CiBjbGFzcyBIVE1MQ29udGVudEVsZW1lbnQ7CitjbGFzcyBJbnNlcnRpb25Q
b2ludDsKIGNsYXNzIE5vZGU7CiBjbGFzcyBTaGFkb3dSb290OwogCiBjbGFzcyBIVE1MQ29udGVu
dFNlbGVjdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPEhUTUxDb250ZW50U2VsZWN0aW9uPiB7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTENvbnRlbnRTZWxlY3Rpb24+IGNyZWF0
ZShIVE1MQ29udGVudEVsZW1lbnQqLCBOb2RlKik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8SFRN
TENvbnRlbnRTZWxlY3Rpb24+IGNyZWF0ZShJbnNlcnRpb25Qb2ludCosIE5vZGUqKTsKIAotICAg
IEhUTUxDb250ZW50RWxlbWVudCogaW5zZXJ0aW9uUG9pbnQoKSBjb25zdCB7IHJldHVybiBtX2lu
c2VydGlvblBvaW50OyB9CisgICAgSW5zZXJ0aW9uUG9pbnQqIGluc2VydGlvblBvaW50KCkgY29u
c3QgeyByZXR1cm4gbV9pbnNlcnRpb25Qb2ludDsgfQogICAgIE5vZGUqIG5vZGUoKSBjb25zdCB7
IHJldHVybiBtX25vZGUuZ2V0KCk7IH0KICAgICBIVE1MQ29udGVudFNlbGVjdGlvbiogbmV4dCgp
IGNvbnN0IHsgcmV0dXJuIG1fbmV4dC5nZXQoKTsgfQogICAgIEhUTUxDb250ZW50U2VsZWN0aW9u
KiBwcmV2aW91cygpIGNvbnN0IHsgcmV0dXJuIG1fcHJldmlvdXMuZ2V0KCk7IH0KQEAgLTU2LDE5
ICs1NywxOSBAQCBwdWJsaWM6CiAgICAgdm9pZCB1bmxpbmsoKTsKIAogcHJpdmF0ZToKLSAgICBI
VE1MQ29udGVudFNlbGVjdGlvbihIVE1MQ29udGVudEVsZW1lbnQqLCBOb2RlKik7CisgICAgSFRN
TENvbnRlbnRTZWxlY3Rpb24oSW5zZXJ0aW9uUG9pbnQqLCBOb2RlKik7CiAKLSAgICBIVE1MQ29u
dGVudEVsZW1lbnQqIG1faW5zZXJ0aW9uUG9pbnQ7CisgICAgSW5zZXJ0aW9uUG9pbnQqIG1faW5z
ZXJ0aW9uUG9pbnQ7CiAgICAgUmVmUHRyPE5vZGU+IG1fbm9kZTsKICAgICBSZWZQdHI8SFRNTENv
bnRlbnRTZWxlY3Rpb24+IG1fbmV4dDsKICAgICBSZWZQdHI8SFRNTENvbnRlbnRTZWxlY3Rpb24+
IG1fcHJldmlvdXM7CiB9OwogCi1pbmxpbmUgSFRNTENvbnRlbnRTZWxlY3Rpb246OkhUTUxDb250
ZW50U2VsZWN0aW9uKEhUTUxDb250ZW50RWxlbWVudCogaW5zZXJ0aW9uUG9pbnQsIE5vZGUqIG5v
ZGUpCitpbmxpbmUgSFRNTENvbnRlbnRTZWxlY3Rpb246OkhUTUxDb250ZW50U2VsZWN0aW9uKElu
c2VydGlvblBvaW50KiBpbnNlcnRpb25Qb2ludCwgTm9kZSogbm9kZSkKICAgICA6IG1faW5zZXJ0
aW9uUG9pbnQoaW5zZXJ0aW9uUG9pbnQpLCBtX25vZGUobm9kZSkKIHsgfQogCi1pbmxpbmUgUGFz
c1JlZlB0cjxIVE1MQ29udGVudFNlbGVjdGlvbj4gSFRNTENvbnRlbnRTZWxlY3Rpb246OmNyZWF0
ZShIVE1MQ29udGVudEVsZW1lbnQqIGluc2VydGlvblBvaW50LCBOb2RlKiBub2RlKQoraW5saW5l
IFBhc3NSZWZQdHI8SFRNTENvbnRlbnRTZWxlY3Rpb24+IEhUTUxDb250ZW50U2VsZWN0aW9uOjpj
cmVhdGUoSW5zZXJ0aW9uUG9pbnQqIGluc2VydGlvblBvaW50LCBOb2RlKiBub2RlKQogewogICAg
IHJldHVybiBhZG9wdFJlZihuZXcgSFRNTENvbnRlbnRTZWxlY3Rpb24oaW5zZXJ0aW9uUG9pbnQs
IG5vZGUpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0luc2Vy
dGlvblBvaW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0luc2VydGlvblBvaW50
LmNwcAppbmRleCBmYWU0ZjM4MDU1YjE0MjI0ZjdkNDEwNTdmMTc2NDFiY2NhOGJjODhkLi42YmFj
YzQwMmFiN2ZlOTgyZjljNTk3OWIwYzEyZjRkZTZmNzdmMGRjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9JbnNlcnRpb25Qb2ludC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvSW5zZXJ0aW9uUG9pbnQuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5j
bHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSW5zZXJ0aW9uUG9pbnQuaCIKIAorI2luY2x1ZGUg
IkhUTUxDb250ZW50U2VsZWN0b3IuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewpAQCAtMzksNiArNDAsNyBAQCBjbGFzcyBEb2N1bWVudDsKIAogSW5zZXJ0
aW9uUG9pbnQ6Okluc2VydGlvblBvaW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERv
Y3VtZW50KiBkb2N1bWVudCkKICAgICA6IEhUTUxFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQor
ICAgICwgbV9zZWxlY3Rpb25zKGFkb3B0UHRyKG5ldyBIVE1MQ29udGVudFNlbGVjdGlvbkxpc3Qo
KSkpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0luc2Vy
dGlvblBvaW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9JbnNlcnRpb25Qb2ludC5o
CmluZGV4IDNmNTU1NmVjMjA1OTI1MGQzMWE4NDEwZDBkYzQxNmFjODRhNWI2YWQuLmQ3ZGM2M2Qy
NWJiYjNmNmQxZDQwMjRjNzJlZDEyZmQzN2UyNjcwZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L0luc2VydGlvblBvaW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvSW5zZXJ0aW9uUG9pbnQuaApAQCAtMzEsNiArMzEsNyBAQAogI2lmbmRlZiBJbnNl
cnRpb25Qb2ludF9oCiAjZGVmaW5lIEluc2VydGlvblBvaW50X2gKIAorI2luY2x1ZGUgIkhUTUxD
b250ZW50U2VsZWN0b3IuaCIKICNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CkBAIC0zOSw4ICs0MCwxMyBAQCBjbGFzcyBJbnNlcnRpb25Qb2ludCA6IHB1Ymxp
YyBIVE1MRWxlbWVudCB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+SW5zZXJ0aW9uUG9pbnQoKTsK
IAorICAgIGNvbnN0IEhUTUxDb250ZW50U2VsZWN0aW9uTGlzdCogc2VsZWN0aW9ucygpIGNvbnN0
IHsgcmV0dXJuIG1fc2VsZWN0aW9ucy5nZXQoKTsgfQorICAgIGJvb2wgaGFzU2VsZWN0aW9uKCkg
Y29uc3QgeyByZXR1cm4gc2VsZWN0aW9ucygpLT5maXJzdCgpOyB9CisKIHByb3RlY3RlZDoKICAg
ICBJbnNlcnRpb25Qb2ludChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBP
d25QdHI8SFRNTENvbnRlbnRTZWxlY3Rpb25MaXN0PiBtX3NlbGVjdGlvbnM7CisKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127881</attachid>
            <date>2012-02-20 17:54:54 -0800</date>
            <delta_ts>2012-02-20 20:46:06 -0800</delta_ts>
            <desc>update</desc>
            <filename>bug-78778-20120221105453.patch</filename>
            <type>text/plain</type>
            <size>14549</size>
            <attacher name="Hayato Ito">hayato</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4MjEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmRmODJiN2Y5MzYyZmNh
ZWJhMzEwYjU0OTg2NDVmZTlkMGRiZTM2Yy4uNjg1NDdhODUzNDFkMWJhYTBjM2U3NTU2YjFhODdj
NmM5NzQxMjFkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDEyLTAyLTIwICBIYXlh
dG8gSXRvICA8aGF5YXRvQGNocm9taXVtLm9yZz4KKworICAgICAgICBVc2UgSW5zZXJ0aW5vblBv
aW50IGluc3RlYWQgb2YgSFRNTENvbnRlbnRFbGVtZW50LgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg3NzgKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZXBsYWNlIEhUTUxDb250ZW50RWxlbWVudCB3aXRo
IEluc2VydGlvblBvaW50IGluIE5vZGVSZW5kZXJpbmdDb250ZXh0IGFuZCBIVE1MQ29udGVudFNl
bGVjdGlvbi4KKyAgICAgICAgVGhpcyBpcyBvbmUgb2YgZm9sbG93dXAgcGF0Y2hlcyBmb3IgcjEw
ODIwNy4KKworICAgICAgICBObyBuZXcgdGVzdHMsIG5vIGNoYW5nZSBpbiBiZWhhdmlvci4KKwor
ICAgICAgICAqIGRvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpuZXh0UmVuZGVyZXJPZik6CisgICAgICAgIChXZWJDb3JlOjpwcmV2aW91c1JlbmRlcmVyT2Yp
OgorICAgICAgICAoV2ViQ29yZTo6Zmlyc3RSZW5kZXJlck9mKToKKyAgICAgICAgKFdlYkNvcmU6
Omxhc3RSZW5kZXJlck9mKToKKyAgICAgICAgKiBkb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuaDoK
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoTm9kZVJlbmRlcmluZ0NvbnRleHQpOgorICAg
ICAgICAoV2ViQ29yZTo6Tm9kZVJlbmRlcmluZ0NvbnRleHQ6Omluc2VydGlvblBvaW50KToKKyAg
ICAgICAgKiBkb20vU2hhZG93Um9vdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290
OjppbnNlcnRpb25Qb2ludEZvcik6CisgICAgICAgICogZG9tL1NoYWRvd1Jvb3QuaDoKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAqIGh0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29udGVudEVsZW1lbnQ6OkhUTUxDb250ZW50RWxl
bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29udGVudEVsZW1lbnQ6OmF0dGFjaCk6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MQ29udGVudEVsZW1lbnQ6OmRldGFjaCk6CisgICAgICAgICog
aHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50Lmg6CisgICAgICAgIChIVE1MQ29udGVudEVs
ZW1lbnQpOgorICAgICAgICAqIGh0bWwvc2hhZG93L0hUTUxDb250ZW50U2VsZWN0b3IuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTENvbnRlbnRTZWxlY3Rvcjo6c2VsZWN0KToKKyAgICAgICAg
KiBodG1sL3NoYWRvdy9IVE1MQ29udGVudFNlbGVjdG9yLmg6CisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKEhUTUxDb250ZW50U2VsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxD
b250ZW50U2VsZWN0aW9uOjppbnNlcnRpb25Qb2ludCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
Q29udGVudFNlbGVjdGlvbjo6SFRNTENvbnRlbnRTZWxlY3Rpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTENvbnRlbnRTZWxlY3Rpb246OmNyZWF0ZSk6CisgICAgICAgICogaHRtbC9zaGFkb3cv
SW5zZXJ0aW9uUG9pbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0aW9uUG9pbnQ6Oklu
c2VydGlvblBvaW50KToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9JbnNlcnRpb25Qb2ludC5oOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0aW9uUG9pbnQ6OnNlbGVjdGlvbnMpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zZXJ0aW9uUG9pbnQ6Omhhc1NlbGVjdGlvbik6CisgICAgICAgIChJbnNlcnRp
b25Qb2ludCk6CisKIDIwMTItMDItMTcgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBXZWIgSW5zcGVjdG9yOiB0ZXJtaW5hdGVkIHdv
cmtlcnMgYXJlIG5vdCByZW1vdmVkIGZyb20gZGVkaWNhdGVkIHdvcmtlciBsaXN0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcAppbmRleCA4ZTQ1YjQxM2FlY2Q2
ZTAyYzIwNTAyZTM4YTEwZWI3NDY5YTRhNjllLi45YTU1YWIzYTRhNjM4NTMxYTM4ZjllY2FlMWQz
NGJhNjYyZjNkM2JlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmlu
Z0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4
dC5jcHAKQEAgLTExOSw3ICsxMTksNyBAQCBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBOb2RlUmVu
ZGVyaW5nQ29udGV4dDo6cmVsZWFzZVN0eWxlKCkKICAgICByZXR1cm4gbV9zdHlsZS5yZWxlYXNl
KCk7CiB9CiAKLXN0YXRpYyBSZW5kZXJPYmplY3QqIG5leHRSZW5kZXJlck9mKEhUTUxDb250ZW50
RWxlbWVudCogcGFyZW50LCBOb2RlKiBjdXJyZW50KQorc3RhdGljIFJlbmRlck9iamVjdCogbmV4
dFJlbmRlcmVyT2YoSW5zZXJ0aW9uUG9pbnQqIHBhcmVudCwgTm9kZSogY3VycmVudCkKIHsKICAg
ICBIVE1MQ29udGVudFNlbGVjdGlvbiogY3VycmVudFNlbGVjdGlvbiA9IHBhcmVudC0+c2VsZWN0
aW9ucygpLT5maW5kKGN1cnJlbnQpOwogICAgIGlmICghY3VycmVudFNlbGVjdGlvbikKQEAgLTEz
Myw3ICsxMzMsNyBAQCBzdGF0aWMgUmVuZGVyT2JqZWN0KiBuZXh0UmVuZGVyZXJPZihIVE1MQ29u
dGVudEVsZW1lbnQqIHBhcmVudCwgTm9kZSogY3VycmVudCkKICAgICByZXR1cm4gMDsKIH0KIAot
c3RhdGljIFJlbmRlck9iamVjdCogcHJldmlvdXNSZW5kZXJlck9mKEhUTUxDb250ZW50RWxlbWVu
dCogcGFyZW50LCBOb2RlKiBjdXJyZW50KQorc3RhdGljIFJlbmRlck9iamVjdCogcHJldmlvdXNS
ZW5kZXJlck9mKEluc2VydGlvblBvaW50KiBwYXJlbnQsIE5vZGUqIGN1cnJlbnQpCiB7CiAgICAg
UmVuZGVyT2JqZWN0KiBsYXN0UmVuZGVyZXIgPSAwOwogCkBAIC0xNDcsNyArMTQ3LDcgQEAgc3Rh
dGljIFJlbmRlck9iamVjdCogcHJldmlvdXNSZW5kZXJlck9mKEhUTUxDb250ZW50RWxlbWVudCog
cGFyZW50LCBOb2RlKiBjdXJyZW4KICAgICByZXR1cm4gbGFzdFJlbmRlcmVyOwogfQogCi1zdGF0
aWMgUmVuZGVyT2JqZWN0KiBmaXJzdFJlbmRlcmVyT2YoSFRNTENvbnRlbnRFbGVtZW50KiBwYXJl
bnQpCitzdGF0aWMgUmVuZGVyT2JqZWN0KiBmaXJzdFJlbmRlcmVyT2YoSW5zZXJ0aW9uUG9pbnQq
IHBhcmVudCkKIHsKICAgICBmb3IgKEhUTUxDb250ZW50U2VsZWN0aW9uKiBzZWxlY3Rpb24gPSBw
YXJlbnQtPnNlbGVjdGlvbnMoKS0+Zmlyc3QoKTsgc2VsZWN0aW9uOyBzZWxlY3Rpb24gPSBzZWxl
Y3Rpb24tPm5leHQoKSkgewogICAgICAgICBpZiAoUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IHNl
bGVjdGlvbi0+bm9kZSgpLT5yZW5kZXJlcigpKQpAQCAtMTU3LDcgKzE1Nyw3IEBAIHN0YXRpYyBS
ZW5kZXJPYmplY3QqIGZpcnN0UmVuZGVyZXJPZihIVE1MQ29udGVudEVsZW1lbnQqIHBhcmVudCkK
ICAgICByZXR1cm4gMDsKIH0KIAotc3RhdGljIFJlbmRlck9iamVjdCogbGFzdFJlbmRlcmVyT2Yo
SFRNTENvbnRlbnRFbGVtZW50KiBwYXJlbnQpCitzdGF0aWMgUmVuZGVyT2JqZWN0KiBsYXN0UmVu
ZGVyZXJPZihJbnNlcnRpb25Qb2ludCogcGFyZW50KQogewogICAgIGZvciAoSFRNTENvbnRlbnRT
ZWxlY3Rpb24qIHNlbGVjdGlvbiA9IHBhcmVudC0+c2VsZWN0aW9ucygpLT5sYXN0KCk7IHNlbGVj
dGlvbjsgc2VsZWN0aW9uID0gc2VsZWN0aW9uLT5wcmV2aW91cygpKSB7CiAgICAgICAgIGlmIChS
ZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gc2VsZWN0aW9uLT5ub2RlKCktPnJlbmRlcmVyKCkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5oCmluZGV4IGVjYzIyZmUyM2Ey
YThlNmRlNDc3YmFmMTg5ZjJhMjU4MzhlMDYwMzQuLmYzZjUwMWE4MWViNTlkYTUwZDFlMjk2NjFl
OWQ2YjhlZGMxMzc3NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVy
aW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4
dC5oCkBAIC0zNCwxMSArMzQsMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDb250
YWluZXJOb2RlOwogY2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBJbnNlcnRpb25Qb2ludDsKIGNsYXNz
IE5vZGU7CiBjbGFzcyBSZW5kZXJGbG93VGhyZWFkOwogY2xhc3MgUmVuZGVyT2JqZWN0OwogY2xh
c3MgUmVuZGVyU3R5bGU7Ci1jbGFzcyBIVE1MQ29udGVudEVsZW1lbnQ7CiBjbGFzcyBTaGFkb3dS
b290OwogCiBjbGFzcyBOb2RlUmVuZGVyaW5nQ29udGV4dCB7CkBAIC01Miw3ICs1Miw3IEBAIHB1
YmxpYzoKICAgICBSZW5kZXJPYmplY3QqIHBhcmVudFJlbmRlcmVyKCkgY29uc3Q7CiAgICAgUmVu
ZGVyT2JqZWN0KiBuZXh0UmVuZGVyZXIoKSBjb25zdDsKICAgICBSZW5kZXJPYmplY3QqIHByZXZp
b3VzUmVuZGVyZXIoKSBjb25zdDsKLSAgICBIVE1MQ29udGVudEVsZW1lbnQqIGluc2VydGlvblBv
aW50KCkgY29uc3Q7CisgICAgSW5zZXJ0aW9uUG9pbnQqIGluc2VydGlvblBvaW50KCkgY29uc3Q7
CiAKICAgICBSZW5kZXJTdHlsZSogc3R5bGUoKSBjb25zdDsKICAgICB2b2lkIHNldFN0eWxlKFBh
c3NSZWZQdHI8UmVuZGVyU3R5bGU+KTsKQEAgLTgxLDcgKzgxLDcgQEAgcHJpdmF0ZToKICAgICBO
b2RlKiBtX25vZGU7CiAgICAgQ29udGFpbmVyTm9kZSogbV9wYXJlbnROb2RlRm9yUmVuZGVyaW5n
QW5kU3R5bGU7CiAgICAgU2hhZG93Um9vdCogbV92aXN1YWxQYXJlbnRTaGFkb3dSb290OwotICAg
IEhUTUxDb250ZW50RWxlbWVudCogbV9pbnNlcnRpb25Qb2ludDsKKyAgICBJbnNlcnRpb25Qb2lu
dCogbV9pbnNlcnRpb25Qb2ludDsKICAgICBSZWZQdHI8UmVuZGVyU3R5bGU+IG1fc3R5bGU7CiAg
ICAgUmVuZGVyRmxvd1RocmVhZCogbV9wYXJlbnRGbG93UmVuZGVyZXI7CiAgICAgQXRvbWljU3Ry
aW5nIG1fZmxvd1RocmVhZDsKQEAgLTEwMyw3ICsxMDMsNyBAQCBpbmxpbmUgUmVuZGVyU3R5bGUq
IE5vZGVSZW5kZXJpbmdDb250ZXh0OjpzdHlsZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fc3R5bGUu
Z2V0KCk7CiB9CiAKLWlubGluZSBIVE1MQ29udGVudEVsZW1lbnQqIE5vZGVSZW5kZXJpbmdDb250
ZXh0OjppbnNlcnRpb25Qb2ludCgpIGNvbnN0CitpbmxpbmUgSW5zZXJ0aW9uUG9pbnQqIE5vZGVS
ZW5kZXJpbmdDb250ZXh0OjppbnNlcnRpb25Qb2ludCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1f
aW5zZXJ0aW9uUG9pbnQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93
Um9vdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAKaW5kZXggZWQ5MGYw
ZmVjODBkNThiNzhkZjdiYjcwMjRkMTE0MjBjZjZmNWZmMy4uODZhNzE1MWY2YWJiYjEyODU3YWVl
NTA1NzdlOGQ4MzJjYThiM2Q5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRv
d1Jvb3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcApAQCAtMzIs
NiArMzIsNyBAQAogI2luY2x1ZGUgIkhUTUxDb250ZW50RWxlbWVudC5oIgogI2luY2x1ZGUgIkhU
TUxDb250ZW50U2VsZWN0b3IuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJJ
bnNlcnRpb25Qb2ludC5oIgogI2luY2x1ZGUgIk5vZGVSYXJlRGF0YS5oIgogI2luY2x1ZGUgIlNo
YWRvd1Jvb3RMaXN0LmgiCiAjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKQEAgLTE4Miw3ICsxODMsNyBA
QCB2b2lkIFNoYWRvd1Jvb3Q6OnNldE5lZWRzUmVhdHRhY2hIb3N0Q2hpbGRyZW5BbmRTaGFkb3co
KQogICAgICAgICBzaGFkb3dIb3N0KCktPnNldE5lZWRzU3R5bGVSZWNhbGMoKTsKIH0KIAotSFRN
TENvbnRlbnRFbGVtZW50KiBTaGFkb3dSb290OjppbnNlcnRpb25Qb2ludEZvcihOb2RlKiBub2Rl
KSBjb25zdAorSW5zZXJ0aW9uUG9pbnQqIFNoYWRvd1Jvb3Q6Omluc2VydGlvblBvaW50Rm9yKE5v
ZGUqIG5vZGUpIGNvbnN0CiB7CiAgICAgaWYgKCFtX3NlbGVjdG9yKQogICAgICAgICByZXR1cm4g
MDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmggYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vU2hhZG93Um9vdC5oCmluZGV4IDgzZTE3MTM0OTk1MjllNDY0ZDhjMzYwOTli
ZmRkNWJjMTVmNGMxZTEuLmQ0NzVmMjQ4MjUzYTBkMWEwODViNjc3ODRlNzBmNjdhZDkzYWM4N2Mg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaApAQCAtMzcsNiArMzcsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiBjbGFzcyBEb2N1bWVudDsKIGNsYXNzIEhUTUxDb250ZW50RWxlbWVudDsKIGNsYXNz
IEhUTUxDb250ZW50U2VsZWN0b3I7CitjbGFzcyBJbnNlcnRpb25Qb2ludDsKIAogY2xhc3MgU2hh
ZG93Um9vdCA6IHB1YmxpYyBEb2N1bWVudEZyYWdtZW50LCBwdWJsaWMgVHJlZVNjb3BlLCBwdWJs
aWMgRG91Ymx5TGlua2VkTGlzdE5vZGU8U2hhZG93Um9vdD4gewogICAgIGZyaWVuZCBjbGFzcyBX
VEY6OkRvdWJseUxpbmtlZExpc3ROb2RlPFNoYWRvd1Jvb3Q+OwpAQCAtNTksNyArNjAsNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCBjbGVhck5lZWRzUmVhdHRhY2hIb3N0Q2hpbGRyZW5BbmRTaGFkb3co
KTsKICAgICBib29sIG5lZWRzUmVhdHRhY2hIb3N0Q2hpbGRyZW5BbmRTaGFkb3coKTsKIAotICAg
IEhUTUxDb250ZW50RWxlbWVudCogaW5zZXJ0aW9uUG9pbnRGb3IoTm9kZSopIGNvbnN0OworICAg
IEluc2VydGlvblBvaW50KiBpbnNlcnRpb25Qb2ludEZvcihOb2RlKikgY29uc3Q7CiAgICAgdm9p
ZCBob3N0Q2hpbGRyZW5DaGFuZ2VkKCk7CiAgICAgYm9vbCBpc1NlbGVjdG9yQWN0aXZlKCkgY29u
c3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1l
bnQuY3BwCmluZGV4IDZhNmI4OWJmYWFkYzQ5N2E0NWIxMDA3ZTFkZTYzNzI3OTEyMTEzNDkuLmMw
ZWI4NGY2MzczNWYzMWE3MzFkZjNiM2VlZTJmOGI2ZDlmNGYwOTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmNwcApAQCAtNjAsNyArNjAs
NiBAQCBQYXNzUmVmUHRyPEhUTUxDb250ZW50RWxlbWVudD4gSFRNTENvbnRlbnRFbGVtZW50Ojpj
cmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdAogCiBIVE1MQ29udGVudEVsZW1lbnQ6OkhUTUxD
b250ZW50RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBEb2N1bWVudCogZG9jdW1l
bnQpCiAgICAgOiBJbnNlcnRpb25Qb2ludChuYW1lLCBkb2N1bWVudCkKLSAgICAsIG1fc2VsZWN0
aW9ucyhhZG9wdFB0cihuZXcgSFRNTENvbnRlbnRTZWxlY3Rpb25MaXN0KCkpKQogewogfQogCkBA
IC03NSwxNCArNzQsMTQgQEAgdm9pZCBIVE1MQ29udGVudEVsZW1lbnQ6OmF0dGFjaCgpCiAgICAg
Ly8gQmVmb3JlIGNhbGxpbmcgU3R5bGVkRWxlbWVudDo6YXR0YWNoLCBzZWxlY3RvciBtdXN0IGJl
IGNhbGN1bGF0ZWQuCiAgICAgaWYgKHJvb3QpIHsKICAgICAgICAgSFRNTENvbnRlbnRTZWxlY3Rv
ciogc2VsZWN0b3IgPSByb290LT5lbnN1cmVTZWxlY3RvcigpOwotICAgICAgICBzZWxlY3Rvci0+
dW5zZWxlY3QobV9zZWxlY3Rpb25zLmdldCgpKTsKLSAgICAgICAgc2VsZWN0b3ItPnNlbGVjdCh0
aGlzLCBtX3NlbGVjdGlvbnMuZ2V0KCkpOworICAgICAgICBzZWxlY3Rvci0+dW5zZWxlY3QoJm1f
c2VsZWN0aW9ucyk7CisgICAgICAgIHNlbGVjdG9yLT5zZWxlY3QodGhpcywgJm1fc2VsZWN0aW9u
cyk7CiAgICAgfQogCiAgICAgSW5zZXJ0aW9uUG9pbnQ6OmF0dGFjaCgpOwogCiAgICAgaWYgKHJv
b3QpIHsKLSAgICAgICAgZm9yIChIVE1MQ29udGVudFNlbGVjdGlvbiogc2VsZWN0aW9uID0gbV9z
ZWxlY3Rpb25zLT5maXJzdCgpOyBzZWxlY3Rpb247IHNlbGVjdGlvbiA9IHNlbGVjdGlvbi0+bmV4
dCgpKQorICAgICAgICBmb3IgKEhUTUxDb250ZW50U2VsZWN0aW9uKiBzZWxlY3Rpb24gPSBtX3Nl
bGVjdGlvbnMuZmlyc3QoKTsgc2VsZWN0aW9uOyBzZWxlY3Rpb24gPSBzZWxlY3Rpb24tPm5leHQo
KSkKICAgICAgICAgICAgIHNlbGVjdGlvbi0+bm9kZSgpLT5hdHRhY2goKTsKICAgICB9CiB9CkBA
IC05MSw3ICs5MCw3IEBAIHZvaWQgSFRNTENvbnRlbnRFbGVtZW50OjpkZXRhY2goKQogewogICAg
IGlmIChTaGFkb3dSb290KiByb290ID0gdG9TaGFkb3dSb290KHNoYWRvd1RyZWVSb290Tm9kZSgp
KSkgewogICAgICAgICBpZiAoSFRNTENvbnRlbnRTZWxlY3Rvciogc2VsZWN0b3IgPSByb290LT5z
ZWxlY3RvcigpKQotICAgICAgICAgICAgc2VsZWN0b3ItPnVuc2VsZWN0KG1fc2VsZWN0aW9ucy5n
ZXQoKSk7CisgICAgICAgICAgICBzZWxlY3Rvci0+dW5zZWxlY3QoJm1fc2VsZWN0aW9ucyk7CiAK
ICAgICAgICAgLy8gV2hlbiBjb250ZW50IGVsZW1lbnQgaXMgZGV0YWNoZWQsIHNoYWRvdyB0cmVl
IHNob3VsZCBiZSByZWNyZWF0ZWQgdG8gcmUtY2FsY3VsYXRlIHNlbGVjdG9yIGZvcgogICAgICAg
ICAvLyBvdGhlciBjb250ZW50IGVsZW1lbnRzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9IVE1MQ29udGVudEVsZW1lbnQuaAppbmRleCBhMDEzYzZkZTg5N2RiMjdmMzgwZjUzNTIx
ZmQyNTRmZTc4NTdhMjZiLi5jMmExYzFlMzY5YmE4ZmYxOGJiMjNiZjc4ODdhMGM3ODQ5ODhiY2Y3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQu
aApAQCAtMzEsMTUgKzMxLDExIEBACiAjaWZuZGVmIEhUTUxDb250ZW50RWxlbWVudF9oCiAjZGVm
aW5lIEhUTUxDb250ZW50RWxlbWVudF9oCiAKLSNpbmNsdWRlICJIVE1MQ29udGVudFNlbGVjdG9y
LmgiCiAjaW5jbHVkZSAiSW5zZXJ0aW9uUG9pbnQuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIENvbnRlbnRTZWxlY3RvclF1ZXJ5Owot
Y2xhc3MgSFRNTENvbnRlbnRTZWxlY3Rpb25MaXN0OwotCiAvLyBOT1RFOiBDdXJyZW50IGltcGxl
bWVudGF0aW9uIGRvZXNuJ3Qgc3VwcG9ydCBkeW5hbWljIGluc2VydGlvbi9kZWxldGlvbiBvZiBI
VE1MQ29udGVudEVsZW1lbnQuCiAvLyBZb3Ugc2hvdWxkIGNyZWF0ZSBIVE1MQ29udGVudEVsZW1l
bnQgZHVyaW5nIHRoZSBob3N0IGNvbnN0cnVjdGlvbi4KIGNsYXNzIEhUTUxDb250ZW50RWxlbWVu
dCA6IHB1YmxpYyBJbnNlcnRpb25Qb2ludCB7CkBAIC02MCw5ICs1Niw2IEBAIHB1YmxpYzoKICAg
ICAvLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2MjYxCiAg
ICAgdm9pZCBzZXRTZWxlY3QoY29uc3QgQXRvbWljU3RyaW5nJik7CiAKLSAgICBjb25zdCBIVE1M
Q29udGVudFNlbGVjdGlvbkxpc3QqIHNlbGVjdGlvbnMoKSBjb25zdCB7IHJldHVybiBtX3NlbGVj
dGlvbnMuZ2V0KCk7IH0KLSAgICBib29sIGhhc1NlbGVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIHNl
bGVjdGlvbnMoKS0+Zmlyc3QoKTsgfQotCiAgICAgdmlydHVhbCBib29sIGlzU2VsZWN0VmFsaWQo
KSBjb25zdDsKIAogcHJvdGVjdGVkOgpAQCAtNzQsOCArNjcsNiBAQCBwcml2YXRlOgogICAgIHZp
cnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSosIFJlbmRlclN0
eWxlKikgeyByZXR1cm4gMDsgfQogCiAgICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKEF0
dHJpYnV0ZSopIE9WRVJSSURFOwotCi0gICAgT3duUHRyPEhUTUxDb250ZW50U2VsZWN0aW9uTGlz
dD4gbV9zZWxlY3Rpb25zOwogfTsKIAogaW5saW5lIEhUTUxDb250ZW50RWxlbWVudCogdG9IVE1M
Q29udGVudEVsZW1lbnQoTm9kZSogbm9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L0hUTUxDb250ZW50U2VsZWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvSFRNTENvbnRlbnRTZWxlY3Rvci5jcHAKaW5kZXggODdlMWFkOWViYTAyYjA1Yjk2NmFm
YTZmN2U2OGFlMTI5NzMxMmI0Yy4uMWNiZDIxODI2ZjliMDYwZDY4YTlhYjI5NTMxZGE2MjE5MTdj
YzY5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRT
ZWxlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRT
ZWxlY3Rvci5jcHAKQEAgLTEyMSw2ICsxMjEsNyBAQCB2b2lkIEhUTUxDb250ZW50U2VsZWN0b3I6
OnNlbGVjdChIVE1MQ29udGVudEVsZW1lbnQqIGNvbnRlbnRFbGVtZW50LCBIVE1MQ29udGVudAog
ICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgUmVmUHRyPEhUTUxDb250ZW50U2VsZWN0
aW9uPiBzZWxlY3Rpb24gPSBIVE1MQ29udGVudFNlbGVjdGlvbjo6Y3JlYXRlKGNvbnRlbnRFbGVt
ZW50LCBjaGlsZCk7CisKICAgICAgICAgc2VsZWN0aW9ucy0+YXBwZW5kKHNlbGVjdGlvbik7CiAg
ICAgICAgIG1fc2VsZWN0aW9uU2V0LmFkZChzZWxlY3Rpb24uZ2V0KCkpOwogICAgICAgICBtX2Nh
bmRpZGF0ZXNbaV0gPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
SFRNTENvbnRlbnRTZWxlY3Rvci5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENv
bnRlbnRTZWxlY3Rvci5oCmluZGV4IGIwYTI4OTIwMjY5ZTRmNmQzMTE4MDBiNWJjZGJhY2VlODUz
ODcyNjAuLjY0MjE0Y2JhYjc2ZTMwMDU0ZDc3ZDc4ZDJmOGVkYmM4MWViMTM4NjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50U2VsZWN0b3IuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudFNlbGVjdG9yLmgKQEAgLTQw
LDE0ICs0MCwxNSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEVsZW1lbnQ7CiBjbGFz
cyBIVE1MQ29udGVudEVsZW1lbnQ7CitjbGFzcyBJbnNlcnRpb25Qb2ludDsKIGNsYXNzIE5vZGU7
CiBjbGFzcyBTaGFkb3dSb290OwogCiBjbGFzcyBIVE1MQ29udGVudFNlbGVjdGlvbiA6IHB1Ymxp
YyBSZWZDb3VudGVkPEhUTUxDb250ZW50U2VsZWN0aW9uPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8SFRNTENvbnRlbnRTZWxlY3Rpb24+IGNyZWF0ZShIVE1MQ29udGVudEVsZW1l
bnQqLCBOb2RlKik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTENvbnRlbnRTZWxlY3Rpb24+
IGNyZWF0ZShJbnNlcnRpb25Qb2ludCosIE5vZGUqKTsKIAotICAgIEhUTUxDb250ZW50RWxlbWVu
dCogaW5zZXJ0aW9uUG9pbnQoKSBjb25zdCB7IHJldHVybiBtX2luc2VydGlvblBvaW50OyB9Cisg
ICAgSW5zZXJ0aW9uUG9pbnQqIGluc2VydGlvblBvaW50KCkgY29uc3QgeyByZXR1cm4gbV9pbnNl
cnRpb25Qb2ludDsgfQogICAgIE5vZGUqIG5vZGUoKSBjb25zdCB7IHJldHVybiBtX25vZGUuZ2V0
KCk7IH0KICAgICBIVE1MQ29udGVudFNlbGVjdGlvbiogbmV4dCgpIGNvbnN0IHsgcmV0dXJuIG1f
bmV4dC5nZXQoKTsgfQogICAgIEhUTUxDb250ZW50U2VsZWN0aW9uKiBwcmV2aW91cygpIGNvbnN0
IHsgcmV0dXJuIG1fcHJldmlvdXMuZ2V0KCk7IH0KQEAgLTU2LDE5ICs1NywxOSBAQCBwdWJsaWM6
CiAgICAgdm9pZCB1bmxpbmsoKTsKIAogcHJpdmF0ZToKLSAgICBIVE1MQ29udGVudFNlbGVjdGlv
bihIVE1MQ29udGVudEVsZW1lbnQqLCBOb2RlKik7CisgICAgSFRNTENvbnRlbnRTZWxlY3Rpb24o
SW5zZXJ0aW9uUG9pbnQqLCBOb2RlKik7CiAKLSAgICBIVE1MQ29udGVudEVsZW1lbnQqIG1faW5z
ZXJ0aW9uUG9pbnQ7CisgICAgSW5zZXJ0aW9uUG9pbnQqIG1faW5zZXJ0aW9uUG9pbnQ7CiAgICAg
UmVmUHRyPE5vZGU+IG1fbm9kZTsKICAgICBSZWZQdHI8SFRNTENvbnRlbnRTZWxlY3Rpb24+IG1f
bmV4dDsKICAgICBSZWZQdHI8SFRNTENvbnRlbnRTZWxlY3Rpb24+IG1fcHJldmlvdXM7CiB9Owog
Ci1pbmxpbmUgSFRNTENvbnRlbnRTZWxlY3Rpb246OkhUTUxDb250ZW50U2VsZWN0aW9uKEhUTUxD
b250ZW50RWxlbWVudCogaW5zZXJ0aW9uUG9pbnQsIE5vZGUqIG5vZGUpCitpbmxpbmUgSFRNTENv
bnRlbnRTZWxlY3Rpb246OkhUTUxDb250ZW50U2VsZWN0aW9uKEluc2VydGlvblBvaW50KiBpbnNl
cnRpb25Qb2ludCwgTm9kZSogbm9kZSkKICAgICA6IG1faW5zZXJ0aW9uUG9pbnQoaW5zZXJ0aW9u
UG9pbnQpLCBtX25vZGUobm9kZSkKIHsgfQogCi1pbmxpbmUgUGFzc1JlZlB0cjxIVE1MQ29udGVu
dFNlbGVjdGlvbj4gSFRNTENvbnRlbnRTZWxlY3Rpb246OmNyZWF0ZShIVE1MQ29udGVudEVsZW1l
bnQqIGluc2VydGlvblBvaW50LCBOb2RlKiBub2RlKQoraW5saW5lIFBhc3NSZWZQdHI8SFRNTENv
bnRlbnRTZWxlY3Rpb24+IEhUTUxDb250ZW50U2VsZWN0aW9uOjpjcmVhdGUoSW5zZXJ0aW9uUG9p
bnQqIGluc2VydGlvblBvaW50LCBOb2RlKiBub2RlKQogewogICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgSFRNTENvbnRlbnRTZWxlY3Rpb24oaW5zZXJ0aW9uUG9pbnQsIG5vZGUpKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0luc2VydGlvblBvaW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0luc2VydGlvblBvaW50LmNwcAppbmRleCBmYWU0ZjM4
MDU1YjE0MjI0ZjdkNDEwNTdmMTc2NDFiY2NhOGJjODhkLi5lOTlkYzI2ZDI3YTFiODg3ZGQyYjFh
OTk5ZWIxOGYzMDA4YTY2NTY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9JbnNlcnRpb25Qb2ludC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSW5z
ZXJ0aW9uUG9pbnQuY3BwCkBAIC0zMSwxNCArMzEsMTEgQEAKICNpbmNsdWRlICJjb25maWcuaCIK
ICNpbmNsdWRlICJJbnNlcnRpb25Qb2ludC5oIgogCi0jaW5jbHVkZSAiSFRNTE5hbWVzLmgiCi0K
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgRG9jdW1lbnQ7Ci0KIEluc2VydGlvblBvaW50
OjpJbnNlcnRpb25Qb2ludChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCog
ZG9jdW1lbnQpCiAgICAgOiBIVE1MRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKKyAgICAsIG1f
c2VsZWN0aW9ucygpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L0luc2VydGlvblBvaW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9JbnNlcnRp
b25Qb2ludC5oCmluZGV4IDNmNTU1NmVjMjA1OTI1MGQzMWE4NDEwZDBkYzQxNmFjODRhNWI2YWQu
LjQwZmFlMjNiNjkxNjEwZmQyMTkxNWQ5ZjE0YzJjYzk3YTZkNzFmZjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0luc2VydGlvblBvaW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvSW5zZXJ0aW9uUG9pbnQuaApAQCAtMzEsNiArMzEsNyBAQAogI2lm
bmRlZiBJbnNlcnRpb25Qb2ludF9oCiAjZGVmaW5lIEluc2VydGlvblBvaW50X2gKIAorI2luY2x1
ZGUgIkhUTUxDb250ZW50U2VsZWN0b3IuaCIKICNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zOSw4ICs0MCwxMiBAQCBjbGFzcyBJbnNlcnRpb25Qb2lu
dCA6IHB1YmxpYyBIVE1MRWxlbWVudCB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+SW5zZXJ0aW9u
UG9pbnQoKTsKIAorICAgIGNvbnN0IEhUTUxDb250ZW50U2VsZWN0aW9uTGlzdCogc2VsZWN0aW9u
cygpIGNvbnN0IHsgcmV0dXJuICZtX3NlbGVjdGlvbnM7IH0KKyAgICBib29sIGhhc1NlbGVjdGlv
bigpIGNvbnN0IHsgcmV0dXJuIG1fc2VsZWN0aW9ucy5maXJzdCgpOyB9CisKIHByb3RlY3RlZDoK
ICAgICBJbnNlcnRpb25Qb2ludChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAg
ICBIVE1MQ29udGVudFNlbGVjdGlvbkxpc3QgbV9zZWxlY3Rpb25zOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127907</attachid>
            <date>2012-02-20 20:46:14 -0800</date>
            <delta_ts>2012-02-20 22:14:51 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-78778-20120221134612.patch</filename>
            <type>text/plain</type>
            <size>14708</size>
            <attacher name="Hayato Ito">hayato</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4MjM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDM0NjcwMDlmNzViYjM0
MDgwZTQ5Yjg2YzhlOTQ2NjNiZGY1MWUzOS4uMzgxMDgzYjMzMjc0ZmQ2Y2RjZjg4MmY1ZjAyNGQx
NGNjNDk1ODIxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDEyLTAyLTIwICBIYXlh
dG8gSXRvICA8aGF5YXRvQGNocm9taXVtLm9yZz4KKworICAgICAgICBVc2UgSW5zZXJ0aW5vblBv
aW50IGluc3RlYWQgb2YgSFRNTENvbnRlbnRFbGVtZW50LgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg3NzgKKworICAgICAgICBSZXZpZXdlZCBieSBI
YWppbWUgTW9yaXRhLgorCisgICAgICAgIFJlcGxhY2UgSFRNTENvbnRlbnRFbGVtZW50IHdpdGgg
SW5zZXJ0aW9uUG9pbnQgaW4gTm9kZVJlbmRlcmluZ0NvbnRleHQgYW5kIEhUTUxDb250ZW50U2Vs
ZWN0aW9uLgorICAgICAgICBUaGlzIGlzIG9uZSBvZiBmb2xsb3d1cCBwYXRjaGVzIGZvciByMTA4
MjA3LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgbm8gY2hhbmdlIGluIGJlaGF2aW9yLgorCisg
ICAgICAgICogZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Om5leHRSZW5kZXJlck9mKToKKyAgICAgICAgKFdlYkNvcmU6OnByZXZpb3VzUmVuZGVyZXJPZik6
CisgICAgICAgIChXZWJDb3JlOjpmaXJzdFJlbmRlcmVyT2YpOgorICAgICAgICAoV2ViQ29yZTo6
bGFzdFJlbmRlcmVyT2YpOgorICAgICAgICAqIGRvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5oOgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChOb2RlUmVuZGVyaW5nQ29udGV4dCk6CisgICAg
ICAgIChXZWJDb3JlOjpOb2RlUmVuZGVyaW5nQ29udGV4dDo6aW5zZXJ0aW9uUG9pbnQpOgorICAg
ICAgICAqIGRvbS9TaGFkb3dSb290LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1Jvb3Q6
Omluc2VydGlvblBvaW50Rm9yKToKKyAgICAgICAgKiBkb20vU2hhZG93Um9vdC5oOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgICogaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb250ZW50RWxlbWVudDo6SFRNTENvbnRlbnRFbGVt
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb250ZW50RWxlbWVudDo6YXR0YWNoKToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxDb250ZW50RWxlbWVudDo6ZGV0YWNoKToKKyAgICAgICAgKiBo
dG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuaDoKKyAgICAgICAgKEhUTUxDb250ZW50RWxl
bWVudCk6CisgICAgICAgICogaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRTZWxlY3Rvci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MQ29udGVudFNlbGVjdG9yOjpzZWxlY3QpOgorICAgICAgICAq
IGh0bWwvc2hhZG93L0hUTUxDb250ZW50U2VsZWN0b3IuaDoKKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAoSFRNTENvbnRlbnRTZWxlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENv
bnRlbnRTZWxlY3Rpb246Omluc2VydGlvblBvaW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxD
b250ZW50U2VsZWN0aW9uOjpIVE1MQ29udGVudFNlbGVjdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MQ29udGVudFNlbGVjdGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9J
bnNlcnRpb25Qb2ludC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRpb25Qb2ludDo6SW5z
ZXJ0aW9uUG9pbnQpOgorICAgICAgICAqIGh0bWwvc2hhZG93L0luc2VydGlvblBvaW50Lmg6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNlcnRpb25Qb2ludDo6c2VsZWN0aW9ucyk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNlcnRpb25Qb2ludDo6aGFzU2VsZWN0aW9uKToKKyAgICAgICAgKEluc2VydGlv
blBvaW50KToKKwogMjAxMi0wMi0yMCAgVnNldm9sb2QgVmxhc292ICA8dnNldmlrQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIG1hbnVhbCByb2xsb3V0IG9mIHIxMDc5NzAgd2hp
Y2ggYnJlYWtzIHRhYmxlIGNvbHVtbiB3aWR0aHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJl
bmRlcmluZ0NvbnRleHQuY3BwCmluZGV4IDhlNDViNDEzYWVjZDZlMDJjMjA1MDJlMzhhMTBlYjc0
NjlhNGE2OWUuLjlhNTVhYjNhNGE2Mzg1MzFhMzhmOWVjYWUxZDM0YmE2NjJmM2QzYmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcApAQCAtMTE5LDcgKzEx
OSw3IEBAIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IE5vZGVSZW5kZXJpbmdDb250ZXh0OjpyZWxl
YXNlU3R5bGUoKQogICAgIHJldHVybiBtX3N0eWxlLnJlbGVhc2UoKTsKIH0KIAotc3RhdGljIFJl
bmRlck9iamVjdCogbmV4dFJlbmRlcmVyT2YoSFRNTENvbnRlbnRFbGVtZW50KiBwYXJlbnQsIE5v
ZGUqIGN1cnJlbnQpCitzdGF0aWMgUmVuZGVyT2JqZWN0KiBuZXh0UmVuZGVyZXJPZihJbnNlcnRp
b25Qb2ludCogcGFyZW50LCBOb2RlKiBjdXJyZW50KQogewogICAgIEhUTUxDb250ZW50U2VsZWN0
aW9uKiBjdXJyZW50U2VsZWN0aW9uID0gcGFyZW50LT5zZWxlY3Rpb25zKCktPmZpbmQoY3VycmVu
dCk7CiAgICAgaWYgKCFjdXJyZW50U2VsZWN0aW9uKQpAQCAtMTMzLDcgKzEzMyw3IEBAIHN0YXRp
YyBSZW5kZXJPYmplY3QqIG5leHRSZW5kZXJlck9mKEhUTUxDb250ZW50RWxlbWVudCogcGFyZW50
LCBOb2RlKiBjdXJyZW50KQogICAgIHJldHVybiAwOwogfQogCi1zdGF0aWMgUmVuZGVyT2JqZWN0
KiBwcmV2aW91c1JlbmRlcmVyT2YoSFRNTENvbnRlbnRFbGVtZW50KiBwYXJlbnQsIE5vZGUqIGN1
cnJlbnQpCitzdGF0aWMgUmVuZGVyT2JqZWN0KiBwcmV2aW91c1JlbmRlcmVyT2YoSW5zZXJ0aW9u
UG9pbnQqIHBhcmVudCwgTm9kZSogY3VycmVudCkKIHsKICAgICBSZW5kZXJPYmplY3QqIGxhc3RS
ZW5kZXJlciA9IDA7CiAKQEAgLTE0Nyw3ICsxNDcsNyBAQCBzdGF0aWMgUmVuZGVyT2JqZWN0KiBw
cmV2aW91c1JlbmRlcmVyT2YoSFRNTENvbnRlbnRFbGVtZW50KiBwYXJlbnQsIE5vZGUqIGN1cnJl
bgogICAgIHJldHVybiBsYXN0UmVuZGVyZXI7CiB9CiAKLXN0YXRpYyBSZW5kZXJPYmplY3QqIGZp
cnN0UmVuZGVyZXJPZihIVE1MQ29udGVudEVsZW1lbnQqIHBhcmVudCkKK3N0YXRpYyBSZW5kZXJP
YmplY3QqIGZpcnN0UmVuZGVyZXJPZihJbnNlcnRpb25Qb2ludCogcGFyZW50KQogewogICAgIGZv
ciAoSFRNTENvbnRlbnRTZWxlY3Rpb24qIHNlbGVjdGlvbiA9IHBhcmVudC0+c2VsZWN0aW9ucygp
LT5maXJzdCgpOyBzZWxlY3Rpb247IHNlbGVjdGlvbiA9IHNlbGVjdGlvbi0+bmV4dCgpKSB7CiAg
ICAgICAgIGlmIChSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gc2VsZWN0aW9uLT5ub2RlKCktPnJl
bmRlcmVyKCkpCkBAIC0xNTcsNyArMTU3LDcgQEAgc3RhdGljIFJlbmRlck9iamVjdCogZmlyc3RS
ZW5kZXJlck9mKEhUTUxDb250ZW50RWxlbWVudCogcGFyZW50KQogICAgIHJldHVybiAwOwogfQog
Ci1zdGF0aWMgUmVuZGVyT2JqZWN0KiBsYXN0UmVuZGVyZXJPZihIVE1MQ29udGVudEVsZW1lbnQq
IHBhcmVudCkKK3N0YXRpYyBSZW5kZXJPYmplY3QqIGxhc3RSZW5kZXJlck9mKEluc2VydGlvblBv
aW50KiBwYXJlbnQpCiB7CiAgICAgZm9yIChIVE1MQ29udGVudFNlbGVjdGlvbiogc2VsZWN0aW9u
ID0gcGFyZW50LT5zZWxlY3Rpb25zKCktPmxhc3QoKTsgc2VsZWN0aW9uOyBzZWxlY3Rpb24gPSBz
ZWxlY3Rpb24tPnByZXZpb3VzKCkpIHsKICAgICAgICAgaWYgKFJlbmRlck9iamVjdCogcmVuZGVy
ZXIgPSBzZWxlY3Rpb24tPm5vZGUoKS0+cmVuZGVyZXIoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGVSZW5kZXJpbmdDb250ZXh0LmgKaW5kZXggZWNjMjJmZTIzYTJhOGU2ZGU0NzdiYWYxODlmMmEy
NTgzOGUwNjAzNC4uZjNmNTAxYTgxZWI1OWRhNTBkMWUyOTY2MWU5ZDZiOGVkYzEzNzc2ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmgKQEAgLTM0LDExICszNCwx
MSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENvbnRhaW5lck5vZGU7CiBjbGFzcyBE
b2N1bWVudDsKK2NsYXNzIEluc2VydGlvblBvaW50OwogY2xhc3MgTm9kZTsKIGNsYXNzIFJlbmRl
ckZsb3dUaHJlYWQ7CiBjbGFzcyBSZW5kZXJPYmplY3Q7CiBjbGFzcyBSZW5kZXJTdHlsZTsKLWNs
YXNzIEhUTUxDb250ZW50RWxlbWVudDsKIGNsYXNzIFNoYWRvd1Jvb3Q7CiAKIGNsYXNzIE5vZGVS
ZW5kZXJpbmdDb250ZXh0IHsKQEAgLTUyLDcgKzUyLDcgQEAgcHVibGljOgogICAgIFJlbmRlck9i
amVjdCogcGFyZW50UmVuZGVyZXIoKSBjb25zdDsKICAgICBSZW5kZXJPYmplY3QqIG5leHRSZW5k
ZXJlcigpIGNvbnN0OwogICAgIFJlbmRlck9iamVjdCogcHJldmlvdXNSZW5kZXJlcigpIGNvbnN0
OwotICAgIEhUTUxDb250ZW50RWxlbWVudCogaW5zZXJ0aW9uUG9pbnQoKSBjb25zdDsKKyAgICBJ
bnNlcnRpb25Qb2ludCogaW5zZXJ0aW9uUG9pbnQoKSBjb25zdDsKIAogICAgIFJlbmRlclN0eWxl
KiBzdHlsZSgpIGNvbnN0OwogICAgIHZvaWQgc2V0U3R5bGUoUGFzc1JlZlB0cjxSZW5kZXJTdHls
ZT4pOwpAQCAtODEsNyArODEsNyBAQCBwcml2YXRlOgogICAgIE5vZGUqIG1fbm9kZTsKICAgICBD
b250YWluZXJOb2RlKiBtX3BhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZTsKICAgICBTaGFk
b3dSb290KiBtX3Zpc3VhbFBhcmVudFNoYWRvd1Jvb3Q7Ci0gICAgSFRNTENvbnRlbnRFbGVtZW50
KiBtX2luc2VydGlvblBvaW50OworICAgIEluc2VydGlvblBvaW50KiBtX2luc2VydGlvblBvaW50
OwogICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gbV9zdHlsZTsKICAgICBSZW5kZXJGbG93VGhyZWFk
KiBtX3BhcmVudEZsb3dSZW5kZXJlcjsKICAgICBBdG9taWNTdHJpbmcgbV9mbG93VGhyZWFkOwpA
QCAtMTAzLDcgKzEwMyw3IEBAIGlubGluZSBSZW5kZXJTdHlsZSogTm9kZVJlbmRlcmluZ0NvbnRl
eHQ6OnN0eWxlKCkgY29uc3QKICAgICByZXR1cm4gbV9zdHlsZS5nZXQoKTsKIH0KIAotaW5saW5l
IEhUTUxDb250ZW50RWxlbWVudCogTm9kZVJlbmRlcmluZ0NvbnRleHQ6Omluc2VydGlvblBvaW50
KCkgY29uc3QKK2lubGluZSBJbnNlcnRpb25Qb2ludCogTm9kZVJlbmRlcmluZ0NvbnRleHQ6Omlu
c2VydGlvblBvaW50KCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9pbnNlcnRpb25Qb2ludDsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcAppbmRleCBlZDkwZjBmZWM4MGQ1OGI3OGRmN2JiNzAy
NGQxMTQyMGNmNmY1ZmYzLi44NmE3MTUxZjZhYmJiMTI4NTdhZWU1MDU3N2U4ZDgzMmNhOGIzZDk5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVk
ZSAiSFRNTENvbnRlbnRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTENvbnRlbnRTZWxlY3Rvci5o
IgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIkluc2VydGlvblBvaW50LmgiCiAj
aW5jbHVkZSAiTm9kZVJhcmVEYXRhLmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdExpc3QuaCIKICNp
bmNsdWRlICJTVkdOYW1lcy5oIgpAQCAtMTgyLDcgKzE4Myw3IEBAIHZvaWQgU2hhZG93Um9vdDo6
c2V0TmVlZHNSZWF0dGFjaEhvc3RDaGlsZHJlbkFuZFNoYWRvdygpCiAgICAgICAgIHNoYWRvd0hv
c3QoKS0+c2V0TmVlZHNTdHlsZVJlY2FsYygpOwogfQogCi1IVE1MQ29udGVudEVsZW1lbnQqIFNo
YWRvd1Jvb3Q6Omluc2VydGlvblBvaW50Rm9yKE5vZGUqIG5vZGUpIGNvbnN0CitJbnNlcnRpb25Q
b2ludCogU2hhZG93Um9vdDo6aW5zZXJ0aW9uUG9pbnRGb3IoTm9kZSogbm9kZSkgY29uc3QKIHsK
ICAgICBpZiAoIW1fc2VsZWN0b3IpCiAgICAgICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dS
b290LmgKaW5kZXggODNlMTcxMzQ5OTUyOWU0NjRkOGMzNjA5OWJmZGQ1YmMxNWY0YzFlMS4uZDQ3
NWYyNDgyNTNhMGQxYTA4NWI2Nzc4NGU3MGY2N2FkOTNhYzg3YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93
Um9vdC5oCkBAIC0zNyw2ICszNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIERvY3Vt
ZW50OwogY2xhc3MgSFRNTENvbnRlbnRFbGVtZW50OwogY2xhc3MgSFRNTENvbnRlbnRTZWxlY3Rv
cjsKK2NsYXNzIEluc2VydGlvblBvaW50OwogCiBjbGFzcyBTaGFkb3dSb290IDogcHVibGljIERv
Y3VtZW50RnJhZ21lbnQsIHB1YmxpYyBUcmVlU2NvcGUsIHB1YmxpYyBEb3VibHlMaW5rZWRMaXN0
Tm9kZTxTaGFkb3dSb290PiB7CiAgICAgZnJpZW5kIGNsYXNzIFdURjo6RG91Ymx5TGlua2VkTGlz
dE5vZGU8U2hhZG93Um9vdD47CkBAIC01OSw3ICs2MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNs
ZWFyTmVlZHNSZWF0dGFjaEhvc3RDaGlsZHJlbkFuZFNoYWRvdygpOwogICAgIGJvb2wgbmVlZHNS
ZWF0dGFjaEhvc3RDaGlsZHJlbkFuZFNoYWRvdygpOwogCi0gICAgSFRNTENvbnRlbnRFbGVtZW50
KiBpbnNlcnRpb25Qb2ludEZvcihOb2RlKikgY29uc3Q7CisgICAgSW5zZXJ0aW9uUG9pbnQqIGlu
c2VydGlvblBvaW50Rm9yKE5vZGUqKSBjb25zdDsKICAgICB2b2lkIGhvc3RDaGlsZHJlbkNoYW5n
ZWQoKTsKICAgICBib29sIGlzU2VsZWN0b3JBY3RpdmUoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5jcHAKaW5kZXggNmE2Yjg5
YmZhYWRjNDk3YTQ1YjEwMDdlMWRlNjM3Mjc5MTIxMTM0OS4uZGUxMmU0Yzk1Zjk4M2JmOGYwYTUx
ZjVjOWViMGFlZTgxNmRmZmQwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvSFRNTENvbnRlbnRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9IVE1MQ29udGVudEVsZW1lbnQuY3BwCkBAIC02MCw3ICs2MCw2IEBAIFBhc3NSZWZQdHI8SFRN
TENvbnRlbnRFbGVtZW50PiBIVE1MQ29udGVudEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiB0CiAKIEhUTUxDb250ZW50RWxlbWVudDo6SFRNTENvbnRlbnRFbGVtZW50KGNvbnN0
IFF1YWxpZmllZE5hbWUmIG5hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKICAgICA6IEluc2VydGlv
blBvaW50KG5hbWUsIGRvY3VtZW50KQotICAgICwgbV9zZWxlY3Rpb25zKGFkb3B0UHRyKG5ldyBI
VE1MQ29udGVudFNlbGVjdGlvbkxpc3QoKSkpCiB7CiB9CiAKQEAgLTc1LDE0ICs3NCwxNCBAQCB2
b2lkIEhUTUxDb250ZW50RWxlbWVudDo6YXR0YWNoKCkKICAgICAvLyBCZWZvcmUgY2FsbGluZyBT
dHlsZWRFbGVtZW50OjphdHRhY2gsIHNlbGVjdG9yIG11c3QgYmUgY2FsY3VsYXRlZC4KICAgICBp
ZiAocm9vdCkgewogICAgICAgICBIVE1MQ29udGVudFNlbGVjdG9yKiBzZWxlY3RvciA9IHJvb3Qt
PmVuc3VyZVNlbGVjdG9yKCk7Ci0gICAgICAgIHNlbGVjdG9yLT51bnNlbGVjdChtX3NlbGVjdGlv
bnMuZ2V0KCkpOwotICAgICAgICBzZWxlY3Rvci0+c2VsZWN0KHRoaXMsIG1fc2VsZWN0aW9ucy5n
ZXQoKSk7CisgICAgICAgIHNlbGVjdG9yLT51bnNlbGVjdCgmbV9zZWxlY3Rpb25zKTsKKyAgICAg
ICAgc2VsZWN0b3ItPnNlbGVjdCh0aGlzLCAmbV9zZWxlY3Rpb25zKTsKICAgICB9CiAKICAgICBJ
bnNlcnRpb25Qb2ludDo6YXR0YWNoKCk7CiAKICAgICBpZiAocm9vdCkgewotICAgICAgICBmb3Ig
KEhUTUxDb250ZW50U2VsZWN0aW9uKiBzZWxlY3Rpb24gPSBtX3NlbGVjdGlvbnMtPmZpcnN0KCk7
IHNlbGVjdGlvbjsgc2VsZWN0aW9uID0gc2VsZWN0aW9uLT5uZXh0KCkpCisgICAgICAgIGZvciAo
SFRNTENvbnRlbnRTZWxlY3Rpb24qIHNlbGVjdGlvbiA9IG1fc2VsZWN0aW9ucy5maXJzdCgpOyBz
ZWxlY3Rpb247IHNlbGVjdGlvbiA9IHNlbGVjdGlvbi0+bmV4dCgpKQogICAgICAgICAgICAgc2Vs
ZWN0aW9uLT5ub2RlKCktPmF0dGFjaCgpOwogICAgIH0KIH0KQEAgLTkxLDE0ICs5MCwxNCBAQCB2
b2lkIEhUTUxDb250ZW50RWxlbWVudDo6ZGV0YWNoKCkKIHsKICAgICBpZiAoU2hhZG93Um9vdCog
cm9vdCA9IHRvU2hhZG93Um9vdChzaGFkb3dUcmVlUm9vdE5vZGUoKSkpIHsKICAgICAgICAgaWYg
KEhUTUxDb250ZW50U2VsZWN0b3IqIHNlbGVjdG9yID0gcm9vdC0+c2VsZWN0b3IoKSkKLSAgICAg
ICAgICAgIHNlbGVjdG9yLT51bnNlbGVjdChtX3NlbGVjdGlvbnMuZ2V0KCkpOworICAgICAgICAg
ICAgc2VsZWN0b3ItPnVuc2VsZWN0KCZtX3NlbGVjdGlvbnMpOwogCiAgICAgICAgIC8vIFdoZW4g
Y29udGVudCBlbGVtZW50IGlzIGRldGFjaGVkLCBzaGFkb3cgdHJlZSBzaG91bGQgYmUgcmVjcmVh
dGVkIHRvIHJlLWNhbGN1bGF0ZSBzZWxlY3RvciBmb3IKICAgICAgICAgLy8gb3RoZXIgY29udGVu
dCBlbGVtZW50cy4KICAgICAgICAgcm9vdC0+c2V0TmVlZHNSZWF0dGFjaEhvc3RDaGlsZHJlbkFu
ZFNoYWRvdygpOwogICAgIH0KIAotICAgIEFTU0VSVChtX3NlbGVjdGlvbnMtPmlzRW1wdHkoKSk7
CisgICAgQVNTRVJUKG1fc2VsZWN0aW9ucy5pc0VtcHR5KCkpOwogICAgIEluc2VydGlvblBvaW50
OjpkZXRhY2goKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
SFRNTENvbnRlbnRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29u
dGVudEVsZW1lbnQuaAppbmRleCBhMDEzYzZkZTg5N2RiMjdmMzgwZjUzNTIxZmQyNTRmZTc4NTdh
MjZiLi5jMmExYzFlMzY5YmE4ZmYxOGJiMjNiZjc4ODdhMGM3ODQ5ODhiY2Y3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuaApAQCAtMzEsMTUg
KzMxLDExIEBACiAjaWZuZGVmIEhUTUxDb250ZW50RWxlbWVudF9oCiAjZGVmaW5lIEhUTUxDb250
ZW50RWxlbWVudF9oCiAKLSNpbmNsdWRlICJIVE1MQ29udGVudFNlbGVjdG9yLmgiCiAjaW5jbHVk
ZSAiSW5zZXJ0aW9uUG9pbnQuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLWNsYXNzIENvbnRlbnRTZWxlY3RvclF1ZXJ5OwotY2xhc3MgSFRNTENv
bnRlbnRTZWxlY3Rpb25MaXN0OwotCiAvLyBOT1RFOiBDdXJyZW50IGltcGxlbWVudGF0aW9uIGRv
ZXNuJ3Qgc3VwcG9ydCBkeW5hbWljIGluc2VydGlvbi9kZWxldGlvbiBvZiBIVE1MQ29udGVudEVs
ZW1lbnQuCiAvLyBZb3Ugc2hvdWxkIGNyZWF0ZSBIVE1MQ29udGVudEVsZW1lbnQgZHVyaW5nIHRo
ZSBob3N0IGNvbnN0cnVjdGlvbi4KIGNsYXNzIEhUTUxDb250ZW50RWxlbWVudCA6IHB1YmxpYyBJ
bnNlcnRpb25Qb2ludCB7CkBAIC02MCw5ICs1Niw2IEBAIHB1YmxpYzoKICAgICAvLyBTZWUgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2MjYxCiAgICAgdm9pZCBzZXRT
ZWxlY3QoY29uc3QgQXRvbWljU3RyaW5nJik7CiAKLSAgICBjb25zdCBIVE1MQ29udGVudFNlbGVj
dGlvbkxpc3QqIHNlbGVjdGlvbnMoKSBjb25zdCB7IHJldHVybiBtX3NlbGVjdGlvbnMuZ2V0KCk7
IH0KLSAgICBib29sIGhhc1NlbGVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIHNlbGVjdGlvbnMoKS0+
Zmlyc3QoKTsgfQotCiAgICAgdmlydHVhbCBib29sIGlzU2VsZWN0VmFsaWQoKSBjb25zdDsKIAog
cHJvdGVjdGVkOgpAQCAtNzQsOCArNjcsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgUmVuZGVy
T2JqZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSosIFJlbmRlclN0eWxlKikgeyByZXR1
cm4gMDsgfQogCiAgICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKEF0dHJpYnV0ZSopIE9W
RVJSSURFOwotCi0gICAgT3duUHRyPEhUTUxDb250ZW50U2VsZWN0aW9uTGlzdD4gbV9zZWxlY3Rp
b25zOwogfTsKIAogaW5saW5lIEhUTUxDb250ZW50RWxlbWVudCogdG9IVE1MQ29udGVudEVsZW1l
bnQoTm9kZSogbm9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hU
TUxDb250ZW50U2VsZWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENv
bnRlbnRTZWxlY3Rvci5jcHAKaW5kZXggODdlMWFkOWViYTAyYjA1Yjk2NmFmYTZmN2U2OGFlMTI5
NzMxMmI0Yy4uMWNiZDIxODI2ZjliMDYwZDY4YTlhYjI5NTMxZGE2MjE5MTdjYzY5MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRTZWxlY3Rvci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRTZWxlY3Rvci5jcHAK
QEAgLTEyMSw2ICsxMjEsNyBAQCB2b2lkIEhUTUxDb250ZW50U2VsZWN0b3I6OnNlbGVjdChIVE1M
Q29udGVudEVsZW1lbnQqIGNvbnRlbnRFbGVtZW50LCBIVE1MQ29udGVudAogICAgICAgICAgICAg
Y29udGludWU7CiAKICAgICAgICAgUmVmUHRyPEhUTUxDb250ZW50U2VsZWN0aW9uPiBzZWxlY3Rp
b24gPSBIVE1MQ29udGVudFNlbGVjdGlvbjo6Y3JlYXRlKGNvbnRlbnRFbGVtZW50LCBjaGlsZCk7
CisKICAgICAgICAgc2VsZWN0aW9ucy0+YXBwZW5kKHNlbGVjdGlvbik7CiAgICAgICAgIG1fc2Vs
ZWN0aW9uU2V0LmFkZChzZWxlY3Rpb24uZ2V0KCkpOwogICAgICAgICBtX2NhbmRpZGF0ZXNbaV0g
PSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRT
ZWxlY3Rvci5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRTZWxlY3Rv
ci5oCmluZGV4IGIwYTI4OTIwMjY5ZTRmNmQzMTE4MDBiNWJjZGJhY2VlODUzODcyNjAuLjY0MjE0
Y2JhYjc2ZTMwMDU0ZDc3ZDc4ZDJmOGVkYmM4MWViMTM4NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50U2VsZWN0b3IuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudFNlbGVjdG9yLmgKQEAgLTQwLDE0ICs0MCwxNSBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEVsZW1lbnQ7CiBjbGFzcyBIVE1MQ29udGVu
dEVsZW1lbnQ7CitjbGFzcyBJbnNlcnRpb25Qb2ludDsKIGNsYXNzIE5vZGU7CiBjbGFzcyBTaGFk
b3dSb290OwogCiBjbGFzcyBIVE1MQ29udGVudFNlbGVjdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVk
PEhUTUxDb250ZW50U2VsZWN0aW9uPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8
SFRNTENvbnRlbnRTZWxlY3Rpb24+IGNyZWF0ZShIVE1MQ29udGVudEVsZW1lbnQqLCBOb2RlKik7
CisgICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTENvbnRlbnRTZWxlY3Rpb24+IGNyZWF0ZShJbnNl
cnRpb25Qb2ludCosIE5vZGUqKTsKIAotICAgIEhUTUxDb250ZW50RWxlbWVudCogaW5zZXJ0aW9u
UG9pbnQoKSBjb25zdCB7IHJldHVybiBtX2luc2VydGlvblBvaW50OyB9CisgICAgSW5zZXJ0aW9u
UG9pbnQqIGluc2VydGlvblBvaW50KCkgY29uc3QgeyByZXR1cm4gbV9pbnNlcnRpb25Qb2ludDsg
fQogICAgIE5vZGUqIG5vZGUoKSBjb25zdCB7IHJldHVybiBtX25vZGUuZ2V0KCk7IH0KICAgICBI
VE1MQ29udGVudFNlbGVjdGlvbiogbmV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fbmV4dC5nZXQoKTsg
fQogICAgIEhUTUxDb250ZW50U2VsZWN0aW9uKiBwcmV2aW91cygpIGNvbnN0IHsgcmV0dXJuIG1f
cHJldmlvdXMuZ2V0KCk7IH0KQEAgLTU2LDE5ICs1NywxOSBAQCBwdWJsaWM6CiAgICAgdm9pZCB1
bmxpbmsoKTsKIAogcHJpdmF0ZToKLSAgICBIVE1MQ29udGVudFNlbGVjdGlvbihIVE1MQ29udGVu
dEVsZW1lbnQqLCBOb2RlKik7CisgICAgSFRNTENvbnRlbnRTZWxlY3Rpb24oSW5zZXJ0aW9uUG9p
bnQqLCBOb2RlKik7CiAKLSAgICBIVE1MQ29udGVudEVsZW1lbnQqIG1faW5zZXJ0aW9uUG9pbnQ7
CisgICAgSW5zZXJ0aW9uUG9pbnQqIG1faW5zZXJ0aW9uUG9pbnQ7CiAgICAgUmVmUHRyPE5vZGU+
IG1fbm9kZTsKICAgICBSZWZQdHI8SFRNTENvbnRlbnRTZWxlY3Rpb24+IG1fbmV4dDsKICAgICBS
ZWZQdHI8SFRNTENvbnRlbnRTZWxlY3Rpb24+IG1fcHJldmlvdXM7CiB9OwogCi1pbmxpbmUgSFRN
TENvbnRlbnRTZWxlY3Rpb246OkhUTUxDb250ZW50U2VsZWN0aW9uKEhUTUxDb250ZW50RWxlbWVu
dCogaW5zZXJ0aW9uUG9pbnQsIE5vZGUqIG5vZGUpCitpbmxpbmUgSFRNTENvbnRlbnRTZWxlY3Rp
b246OkhUTUxDb250ZW50U2VsZWN0aW9uKEluc2VydGlvblBvaW50KiBpbnNlcnRpb25Qb2ludCwg
Tm9kZSogbm9kZSkKICAgICA6IG1faW5zZXJ0aW9uUG9pbnQoaW5zZXJ0aW9uUG9pbnQpLCBtX25v
ZGUobm9kZSkKIHsgfQogCi1pbmxpbmUgUGFzc1JlZlB0cjxIVE1MQ29udGVudFNlbGVjdGlvbj4g
SFRNTENvbnRlbnRTZWxlY3Rpb246OmNyZWF0ZShIVE1MQ29udGVudEVsZW1lbnQqIGluc2VydGlv
blBvaW50LCBOb2RlKiBub2RlKQoraW5saW5lIFBhc3NSZWZQdHI8SFRNTENvbnRlbnRTZWxlY3Rp
b24+IEhUTUxDb250ZW50U2VsZWN0aW9uOjpjcmVhdGUoSW5zZXJ0aW9uUG9pbnQqIGluc2VydGlv
blBvaW50LCBOb2RlKiBub2RlKQogewogICAgIHJldHVybiBhZG9wdFJlZihuZXcgSFRNTENvbnRl
bnRTZWxlY3Rpb24oaW5zZXJ0aW9uUG9pbnQsIG5vZGUpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L0luc2VydGlvblBvaW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L0luc2VydGlvblBvaW50LmNwcAppbmRleCBmYWU0ZjM4MDU1YjE0MjI0Zjdk
NDEwNTdmMTc2NDFiY2NhOGJjODhkLi5lOTlkYzI2ZDI3YTFiODg3ZGQyYjFhOTk5ZWIxOGYzMDA4
YTY2NTY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9JbnNlcnRpb25Q
b2ludC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSW5zZXJ0aW9uUG9pbnQu
Y3BwCkBAIC0zMSwxNCArMzEsMTEgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJJ
bnNlcnRpb25Qb2ludC5oIgogCi0jaW5jbHVkZSAiSFRNTE5hbWVzLmgiCi0KIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotY2xhc3MgRG9jdW1lbnQ7Ci0KIEluc2VydGlvblBvaW50OjpJbnNlcnRpb25Q
b2ludChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCiAg
ICAgOiBIVE1MRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKKyAgICAsIG1fc2VsZWN0aW9ucygp
CiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0luc2VydGlv
blBvaW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9JbnNlcnRpb25Qb2ludC5oCmlu
ZGV4IDNmNTU1NmVjMjA1OTI1MGQzMWE4NDEwZDBkYzQxNmFjODRhNWI2YWQuLjQwZmFlMjNiNjkx
NjEwZmQyMTkxNWQ5ZjE0YzJjYzk3YTZkNzFmZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L0luc2VydGlvblBvaW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvSW5zZXJ0aW9uUG9pbnQuaApAQCAtMzEsNiArMzEsNyBAQAogI2lmbmRlZiBJbnNlcnRp
b25Qb2ludF9oCiAjZGVmaW5lIEluc2VydGlvblBvaW50X2gKIAorI2luY2x1ZGUgIkhUTUxDb250
ZW50U2VsZWN0b3IuaCIKICNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CkBAIC0zOSw4ICs0MCwxMiBAQCBjbGFzcyBJbnNlcnRpb25Qb2ludCA6IHB1YmxpYyBI
VE1MRWxlbWVudCB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+SW5zZXJ0aW9uUG9pbnQoKTsKIAor
ICAgIGNvbnN0IEhUTUxDb250ZW50U2VsZWN0aW9uTGlzdCogc2VsZWN0aW9ucygpIGNvbnN0IHsg
cmV0dXJuICZtX3NlbGVjdGlvbnM7IH0KKyAgICBib29sIGhhc1NlbGVjdGlvbigpIGNvbnN0IHsg
cmV0dXJuIG1fc2VsZWN0aW9ucy5maXJzdCgpOyB9CisKIHByb3RlY3RlZDoKICAgICBJbnNlcnRp
b25Qb2ludChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBIVE1MQ29udGVu
dFNlbGVjdGlvbkxpc3QgbV9zZWxlY3Rpb25zOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>