<?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>118334</bug_id>
          
          <creation_ts>2013-07-02 19:04:45 -0700</creation_ts>
          <short_desc>Append overloading function for isFooElement</short_desc>
          <delta_ts>2013-07-03 07:19:22 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kangil Han">kangil.han</reporter>
          <assigned_to name="Kangil Han">kangil.han</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>tkent</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>905665</commentid>
    <comment_count>0</comment_count>
    <who name="Kangil Han">kangil.han</who>
    <bug_when>2013-07-02 19:04:45 -0700</bug_when>
    <thetext>is/toHTMLFormElement should use Element* for its argument</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>905666</commentid>
    <comment_count>1</comment_count>
      <attachid>205961</attachid>
    <who name="Kangil Han">kangil.han</who>
    <bug_when>2013-07-02 19:09:50 -0700</bug_when>
    <thetext>Created attachment 205961
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>905695</commentid>
    <comment_count>2</comment_count>
      <attachid>205961</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2013-07-02 22:46:49 -0700</bug_when>
    <thetext>Comment on attachment 205961
Patch

The code looks worse.
Why don&apos;t you provide both of isHTMLFormElement(Node*) and isHTMLFormElement(Element*).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>905696</commentid>
    <comment_count>3</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-07-02 22:48:53 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 205961 [details])
&gt; The code looks worse.
&gt; Why don&apos;t you provide both of isHTMLFormElement(Node*) and isHTMLFormElement(Element*).

Or possibly:
template&lt;class T&gt; bool isHTMLFormElementNode(T*)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>905706</commentid>
    <comment_count>4</comment_count>
    <who name="Kangil Han">kangil.han</who>
    <bug_when>2013-07-02 23:34:00 -0700</bug_when>
    <thetext>Thx tkent and kling for the comments!
I will investigate to make code better. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>905733</commentid>
    <comment_count>5</comment_count>
      <attachid>205977</attachid>
    <who name="Kangil Han">kangil.han</who>
    <bug_when>2013-07-03 01:14:19 -0700</bug_when>
    <thetext>Created attachment 205977
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>905806</commentid>
    <comment_count>6</comment_count>
    <who name="Kangil Han">kangil.han</who>
    <bug_when>2013-07-03 03:57:58 -0700</bug_when>
    <thetext>kling, tkent: review please? :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>905808</commentid>
    <comment_count>7</comment_count>
      <attachid>205977</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-07-03 04:08:03 -0700</bug_when>
    <thetext>Comment on attachment 205977
Patch

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

I

&gt; Source/WebCore/html/HTMLFormElement.h:165
&gt; -inline bool isHTMLFormElement(Node* node)
&gt; +template&lt;class T&gt;
&gt; +inline bool isHTMLFormElement(T* t)

I think you should provide overloads instead of using templates since you only really need two cases. Error messages are clearer that way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>905810</commentid>
    <comment_count>8</comment_count>
    <who name="Kangil Han">kangil.han</who>
    <bug_when>2013-07-03 04:14:18 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; I think you should provide overloads instead of using templates since you only really need two cases. Error messages are clearer that way.

Thx! I will do that. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>905828</commentid>
    <comment_count>9</comment_count>
      <attachid>205994</attachid>
    <who name="Kangil Han">kangil.han</who>
    <bug_when>2013-07-03 05:08:15 -0700</bug_when>
    <thetext>Created attachment 205994
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>905830</commentid>
    <comment_count>10</comment_count>
      <attachid>205994</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-07-03 05:29:10 -0700</bug_when>
    <thetext>Comment on attachment 205994
Patch

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

&gt; Source/WebCore/html/HTMLOptionElement.h:119
&gt; +inline HTMLOptionElement* toHTMLOptionElement(Element* element)
&gt; +{
&gt; +    ASSERT_WITH_SECURITY_IMPLICATION(!element || isHTMLOptionElement(element));
&gt; +    return static_cast&lt;HTMLOptionElement*&gt;(element);
&gt; +}
&gt; +

You don&apos;t really need the to* overloads.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>905852</commentid>
    <comment_count>11</comment_count>
      <attachid>206000</attachid>
    <who name="Kangil Han">kangil.han</who>
    <bug_when>2013-07-03 06:34:43 -0700</bug_when>
    <thetext>Created attachment 206000
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>905853</commentid>
    <comment_count>12</comment_count>
    <who name="Kangil Han">kangil.han</who>
    <bug_when>2013-07-03 06:36:37 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 205994 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=205994&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/html/HTMLOptionElement.h:119
&gt; &gt; +inline HTMLOptionElement* toHTMLOptionElement(Element* element)
&gt; &gt; +{
&gt; &gt; +    ASSERT_WITH_SECURITY_IMPLICATION(!element || isHTMLOptionElement(element));
&gt; &gt; +    return static_cast&lt;HTMLOptionElement*&gt;(element);
&gt; &gt; +}
&gt; &gt; +
&gt; 
&gt; You don&apos;t really need the to* overloads.

Yes, right! Thx! :)
Took anttik&apos;s comment into consideration.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>905854</commentid>
    <comment_count>13</comment_count>
      <attachid>206000</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-07-03 06:38:37 -0700</bug_when>
    <thetext>Comment on attachment 206000
Patch

Actually maybe you need it. I guess ASSERT_WITH_SECURITY_IMPLICATION might get compiled in in release mode too?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>905855</commentid>
    <comment_count>14</comment_count>
      <attachid>206000</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-07-03 06:42:55 -0700</bug_when>
    <thetext>Comment on attachment 206000
Patch

Never mind, apparently it is just a fuzzer hint.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>905863</commentid>
    <comment_count>15</comment_count>
      <attachid>206000</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-07-03 07:19:19 -0700</bug_when>
    <thetext>Comment on attachment 206000
Patch

Clearing flags on attachment: 206000

Committed r152353: &lt;http://trac.webkit.org/changeset/152353&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>905864</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-07-03 07:19:22 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>205961</attachid>
            <date>2013-07-02 19:09:50 -0700</date>
            <delta_ts>2013-07-03 01:14:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-118334-20130703110757.patch</filename>
            <type>text/plain</type>
            <size>13801</size>
            <attacher name="Kangil Han">kangil.han</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUyMjkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDkyMmQ0Y2ZlMGQwNmI1
NTlmN2U0ZWI4NWQ2MDVkOGRiY2IwMWRmZi4uZDUzZThiYWQwOTA4ZGE0YWY0ODExNWU2NGUzNzU0
NmU5YTU2NDkxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM5IEBACiAyMDEzLTA3LTAyICBLYW5n
aWwgSGFuICA8a2FuZ2lsLmhhbkBzYW1zdW5nLmNvbT4KIAorICAgICAgICBpcy90b0hUTUxGb3Jt
RWxlbWVudCBzaG91bGQgdXNlIEVsZW1lbnQqIGZvciBpdHMgYXJndW1lbnQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExODMzNAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRvIHJlZHVjZSB1bm5lY2Vzc2Fy
eSBjYWxsIG9mIGlzRWxlbWVudE5vZGUoKSwgdGhpcyBwYXRjaCByZXBsYWNlcyBhcmd1bWVudAor
ICAgICAgICBvZiBpcy90b0hUTUxGb3JtRWxlbWVudCBmcm9tIE5vZGUqIHRvIEVsZW1lbnQqLgor
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmRldGVybWluZUFj
Y2Vzc2liaWxpdHlSb2xlKToKKyAgICAgICAgKiBlZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpjdXJyZW50Rm9ybSk6CisgICAgICAg
ICogaHRtbC9IVE1MRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRWxlbWVudDo6
ZmluZEZvcm1BbmNlc3Rvcik6CisgICAgICAgICogaHRtbC9IVE1MRm9ybUNvbnRyb2xzQ29sbGVj
dGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbjo6
SFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEZvcm1D
b250cm9sc0NvbGxlY3Rpb246OmZvcm1Db250cm9sRWxlbWVudHMpOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb246OmZvcm1JbWFnZUVsZW1lbnRzKToKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uOjp1cGRhdGVOYW1lQ2FjaGUp
OgorICAgICAgICAqIGh0bWwvSFRNTEZvcm1FbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpp
c0hUTUxGb3JtRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjp0b0hUTUxGb3JtRWxlbWVudCk6
CisgICAgICAgICogaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxJbWFnZUVsZW1lbnQ6Omluc2VydGVkSW50byk6CisgICAgICAgICogaHRtbC9SYWRpb0lu
cHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSYWRpb0lucHV0VHlwZTo6aGFuZGxlS2V5
ZG93bkV2ZW50KToKKyAgICAgICAgKiBodG1sL1JhZGlvTm9kZUxpc3QuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmFkaW9Ob2RlTGlzdDo6UmFkaW9Ob2RlTGlzdCk6CisgICAgICAgIChXZWJDb3Jl
OjpSYWRpb05vZGVMaXN0OjpjaGVja0VsZW1lbnRNYXRjaGVzUmFkaW9Ob2RlTGlzdEZpbHRlcik6
CisgICAgICAgICogcGFnZS9GcmFtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6c2Vh
cmNoRm9yTGFiZWxzQmVmb3JlRWxlbWVudCk6CisKKzIwMTMtMDctMDIgIEthbmdpbCBIYW4gIDxr
YW5naWwuaGFuQHNhbXN1bmcuY29tPgorCiAgICAgICAgIGlzL3RvSFRNTFN0eWxlRWxlbWVudCBz
aG91bGQgdXNlIEVsZW1lbnQqIGZvciBpdHMgYXJndW1lbnQKICAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExODI4NgogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNTM5YTI5
NjJjOGMzMjNlY2JiM2M4ZmUxYWQzYTJhMzUxMzdkYTAzYS4uOGI5ZGY2ZGE4ZjhhMjEyZGMwNWFi
NzFlOWE5NTE0NjJmOTQ3YjljNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEzLTA3
LTAyICBLYW5naWwgSGFuICA8a2FuZ2lsLmhhbkBzYW1zdW5nLmNvbT4KKworICAgICAgICBpcy90
b0hUTUxGb3JtRWxlbWVudCBzaG91bGQgdXNlIEVsZW1lbnQqIGZvciBpdHMgYXJndW1lbnQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExODMzNAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRvIHJlZHVjZSB1
bm5lY2Vzc2FyeSBjYWxsIG9mIGlzRWxlbWVudE5vZGUoKSwgdGhpcyBwYXRjaCByZXBsYWNlcyBh
cmd1bWVudAorICAgICAgICBvZiBpcy90b0hUTUxGb3JtRWxlbWVudCBmcm9tIE5vZGUqIHRvIEVs
ZW1lbnQqLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViRnJhbWU6OmNvbnRhaW5zQW55Rm9ybUVsZW1lbnRzKToKKwogMjAx
My0wNy0wMSAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBD
bGVhbiB1cCBwcml2YXRlIGJyb3dzaW5nIHNlc3Npb24gdHJhY2tpbmcKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Qu
Y3BwCmluZGV4IDZlMTY0ZjEwYTU1YzU1NGYyOTBlMzk0NDBmYmM0NGNkNTM1ZjA0MjQuLjYwMWRm
MTZhOGQwZGViNWRmMjUzZDQzMWYzMTQ4NGIzZTYyMTkwMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNw
cApAQCAtMjU1Nyw3ICsyNTU3LDcgQEAgQWNjZXNzaWJpbGl0eVJvbGUgQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdDo6ZGV0ZXJtaW5lQWNjZXNzaWJpbGl0eVJvbGUoKQogICAgIGlmIChub2RlICYm
IG5vZGUtPmhhc1RhZ05hbWUoZGl2VGFnKSkKICAgICAgICAgcmV0dXJuIERpdlJvbGU7CiAKLSAg
ICBpZiAobm9kZSAmJiBpc0hUTUxGb3JtRWxlbWVudChub2RlKSkKKyAgICBpZiAobm9kZSAmJiBu
b2RlLT5pc0VsZW1lbnROb2RlKCkgJiYgaXNIVE1MRm9ybUVsZW1lbnQodG9FbGVtZW50KG5vZGUp
KSkKICAgICAgICAgcmV0dXJuIEZvcm1Sb2xlOwogCiAgICAgaWYgKG5vZGUgJiYgbm9kZS0+aGFz
VGFnTmFtZShhcnRpY2xlVGFnKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RnJhbWVTZWxlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlv
bi5jcHAKaW5kZXggMWI4Y2NkMGE3NmUxY2Q4NTc5OWUxZTE0OTk4NmVmZTAyZTc1NzMyZS4uYjE1
NjMxNTgyZGFhNTM0ODE3NjQ1OTIxZTFjMWFlOWUyNWJiYTBlYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKQEAgLTE5OTMsOCArMTk5MywxMSBAQCBIVE1MRm9y
bUVsZW1lbnQqIEZyYW1lU2VsZWN0aW9uOjpjdXJyZW50Rm9ybSgpIGNvbnN0CiAgICAgLy8gVHJ5
IHdhbGtpbmcgdXAgdGhlIG5vZGUgdHJlZSB0byBmaW5kIGEgZm9ybSBlbGVtZW50LgogICAgIE5v
ZGUqIG5vZGU7CiAgICAgZm9yIChub2RlID0gc3RhcnQ7IG5vZGU7IG5vZGUgPSBub2RlLT5wYXJl
bnROb2RlKCkpIHsKLSAgICAgICAgaWYgKGlzSFRNTEZvcm1FbGVtZW50KG5vZGUpKQotICAgICAg
ICAgICAgcmV0dXJuIHRvSFRNTEZvcm1FbGVtZW50KG5vZGUpOworICAgICAgICBpZiAobm9kZS0+
aXNFbGVtZW50Tm9kZSgpKSB7CisgICAgICAgICAgICBFbGVtZW50KiBlbGVtZW50ID0gdG9FbGVt
ZW50KG5vZGUpOworICAgICAgICAgICAgaWYgKGlzSFRNTEZvcm1FbGVtZW50KGVsZW1lbnQpKQor
ICAgICAgICAgICAgICAgIHJldHVybiB0b0hUTUxGb3JtRWxlbWVudChlbGVtZW50KTsKKyAgICAg
ICAgfQogICAgICAgICBpZiAobm9kZS0+aXNIVE1MRWxlbWVudCgpICYmIHRvSFRNTEVsZW1lbnQo
bm9kZSktPmlzRm9ybUNvbnRyb2xFbGVtZW50KCkpCiAgICAgICAgICAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8SFRNTEZvcm1Db250cm9sRWxlbWVudCo+KG5vZGUpLT5mb3JtKCk7CiAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAppbmRleCBjNmY4ODE3ZTkyY2E3MzkxNWUxNTYwZjhi
ZGQ4YWY5NjY0ODMzMThmLi42MzEyMDMwYmRjMjI2Y2VjNGRmZjE1MWRmMzMzOGZkZjRkZTQ2NTRl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcApAQCAtNzg2LDggKzc4NiwxMSBAQCBS
ZW5kZXJPYmplY3QqIEhUTUxFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSogYXJl
bmEsIFJlbmRlclN0eWxlKiBzdHlsZQogSFRNTEZvcm1FbGVtZW50KiBIVE1MRWxlbWVudDo6Zmlu
ZEZvcm1BbmNlc3RvcigpIGNvbnN0CiB7CiAgICAgZm9yIChDb250YWluZXJOb2RlKiBhbmNlc3Rv
ciA9IHBhcmVudE5vZGUoKTsgYW5jZXN0b3I7IGFuY2VzdG9yID0gYW5jZXN0b3ItPnBhcmVudE5v
ZGUoKSkgewotICAgICAgICBpZiAoaXNIVE1MRm9ybUVsZW1lbnQoYW5jZXN0b3IpKQotICAgICAg
ICAgICAgcmV0dXJuIHRvSFRNTEZvcm1FbGVtZW50KGFuY2VzdG9yKTsKKyAgICAgICAgaWYgKGFu
Y2VzdG9yLT5pc0VsZW1lbnROb2RlKCkpIHsKKyAgICAgICAgICAgIEVsZW1lbnQqIGFuY2VzdG9y
RWxlbWVudCA9IHRvRWxlbWVudChhbmNlc3Rvcik7CisgICAgICAgICAgICBpZiAoaXNIVE1MRm9y
bUVsZW1lbnQoYW5jZXN0b3JFbGVtZW50KSkKKyAgICAgICAgICAgICAgICByZXR1cm4gdG9IVE1M
Rm9ybUVsZW1lbnQoYW5jZXN0b3JFbGVtZW50KTsKKyAgICAgICAgfQogICAgIH0KICAgICByZXR1
cm4gMDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9s
c0NvbGxlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xzQ29s
bGVjdGlvbi5jcHAKaW5kZXggMGVhNjNiY2JiNjc2OTI2OTU5YjhhNjNhMWQ1YWE5MjMzODY1OWIy
ZS4uODU5ZThhNzhhYzNjYWVjMDQ2ZDk5NGE4N2VhZDM0ZjQ1MjBlNjY4YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbi5jcHAKQEAgLTM5
LDcgKzM5LDcgQEAgdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIEhUTUxGb3JtQ29udHJvbHND
b2xsZWN0aW9uOjpIVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbihOb2RlKiBvd25lck5vZGUpCiAg
ICAgOiBIVE1MQ29sbGVjdGlvbihvd25lck5vZGUsIEZvcm1Db250cm9scywgT3ZlcnJpZGVzSXRl
bUFmdGVyKQogewotICAgIEFTU0VSVChpc0hUTUxGb3JtRWxlbWVudChvd25lck5vZGUpIHx8IG93
bmVyTm9kZS0+aGFzVGFnTmFtZShmaWVsZHNldFRhZykpOworICAgIEFTU0VSVChvd25lck5vZGUt
PmlzRWxlbWVudE5vZGUoKSB8fCBpc0hUTUxGb3JtRWxlbWVudCh0b0VsZW1lbnQob3duZXJOb2Rl
KSkgfHwgb3duZXJOb2RlLT5oYXNUYWdOYW1lKGZpZWxkc2V0VGFnKSk7CiB9CiAKIFBhc3NSZWZQ
dHI8SFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb24+IEhUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9u
OjpjcmVhdGUoTm9kZSogb3duZXJOb2RlLCBDb2xsZWN0aW9uVHlwZSkKQEAgLTU0LDE3ICs1NCwx
OCBAQCBIVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbjo6fkhUTUxGb3JtQ29udHJvbHNDb2xsZWN0
aW9uKCkKIGNvbnN0IFZlY3RvcjxGb3JtQXNzb2NpYXRlZEVsZW1lbnQqPiYgSFRNTEZvcm1Db250
cm9sc0NvbGxlY3Rpb246OmZvcm1Db250cm9sRWxlbWVudHMoKSBjb25zdAogewogICAgIEFTU0VS
VChvd25lck5vZGUoKSk7Ci0gICAgQVNTRVJUKGlzSFRNTEZvcm1FbGVtZW50KG93bmVyTm9kZSgp
KSB8fCBvd25lck5vZGUoKS0+aGFzVGFnTmFtZShmaWVsZHNldFRhZykpOwotICAgIGlmIChpc0hU
TUxGb3JtRWxlbWVudChvd25lck5vZGUoKSkpCi0gICAgICAgIHJldHVybiB0b0hUTUxGb3JtRWxl
bWVudChvd25lck5vZGUoKSktPmFzc29jaWF0ZWRFbGVtZW50cygpOworICAgIEFTU0VSVChvd25l
ck5vZGUoKS0+aXNFbGVtZW50Tm9kZSgpIHx8IGlzSFRNTEZvcm1FbGVtZW50KHRvRWxlbWVudChv
d25lck5vZGUoKSkpIHx8IG93bmVyTm9kZSgpLT5oYXNUYWdOYW1lKGZpZWxkc2V0VGFnKSk7Cisg
ICAgRWxlbWVudCogZWxlbWVudCA9IHRvRWxlbWVudChvd25lck5vZGUoKSk7CisgICAgaWYgKGlz
SFRNTEZvcm1FbGVtZW50KGVsZW1lbnQpKQorICAgICAgICByZXR1cm4gdG9IVE1MRm9ybUVsZW1l
bnQoZWxlbWVudCktPmFzc29jaWF0ZWRFbGVtZW50cygpOwogICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxIVE1MRmllbGRTZXRFbGVtZW50Kj4ob3duZXJOb2RlKCkpLT5hc3NvY2lhdGVkRWxlbWVudHMo
KTsKIH0KIAogY29uc3QgVmVjdG9yPEhUTUxJbWFnZUVsZW1lbnQqPiYgSFRNTEZvcm1Db250cm9s
c0NvbGxlY3Rpb246OmZvcm1JbWFnZUVsZW1lbnRzKCkgY29uc3QKIHsKICAgICBBU1NFUlQob3du
ZXJOb2RlKCkpOwotICAgIEFTU0VSVChpc0hUTUxGb3JtRWxlbWVudChvd25lck5vZGUoKSkpOwot
ICAgIHJldHVybiB0b0hUTUxGb3JtRWxlbWVudChvd25lck5vZGUoKSktPmltYWdlRWxlbWVudHMo
KTsKKyAgICBBU1NFUlQob3duZXJOb2RlKCktPmlzRWxlbWVudE5vZGUoKSB8fCBpc0hUTUxGb3Jt
RWxlbWVudCh0b0VsZW1lbnQob3duZXJOb2RlKCkpKSk7CisgICAgcmV0dXJuIHRvSFRNTEZvcm1F
bGVtZW50KHRvRWxlbWVudChvd25lck5vZGUoKSkpLT5pbWFnZUVsZW1lbnRzKCk7CiB9CiAKIEVs
ZW1lbnQqIEhUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uOjp2aXJ0dWFsSXRlbUFmdGVyKHVuc2ln
bmVkJiBvZmZzZXQsIEVsZW1lbnQqIHByZXZpb3VzSXRlbSkgY29uc3QKQEAgLTE0NCw3ICsxNDUs
NyBAQCB2b2lkIEhUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uOjp1cGRhdGVOYW1lQ2FjaGUoKSBj
b25zdAogICAgICAgICB9CiAgICAgfQogCi0gICAgaWYgKGlzSFRNTEZvcm1FbGVtZW50KG93bmVy
Tm9kZSgpKSkgeworICAgIGlmIChvd25lck5vZGUoKS0+aXNFbGVtZW50Tm9kZSgpICYmIGlzSFRN
TEZvcm1FbGVtZW50KHRvRWxlbWVudChvd25lck5vZGUoKSkpKSB7CiAgICAgICAgIGNvbnN0IFZl
Y3RvcjxIVE1MSW1hZ2VFbGVtZW50Kj4mIGltYWdlRWxlbWVudHNBcnJheSA9IGZvcm1JbWFnZUVs
ZW1lbnRzKCk7CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBpbWFnZUVsZW1lbnRz
QXJyYXkuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgICAgIEhUTUxJbWFnZUVsZW1lbnQqIGVsZW1l
bnQgPSBpbWFnZUVsZW1lbnRzQXJyYXlbaV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxGb3JtRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1l
bnQuaAppbmRleCA5YjVlYTJkMGQ4OGJhNTBmMzMyYWNkZDkxZmM3NzAwM2YzYWI1Y2ZkLi45MGEw
YjU3NTU0Njk5ZGNiMjg5NzRmNDI5ZWI5NjVmNGY5ZmM5OWM4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEZvcm1FbGVtZW50LmgKQEAgLTE2MSwxNSArMTYxLDE1IEBAIHByaXZhdGU6CiAgICAgYm9v
bCBtX3dhc0RlbW90ZWQ7CiB9OwogCi1pbmxpbmUgYm9vbCBpc0hUTUxGb3JtRWxlbWVudChOb2Rl
KiBub2RlKQoraW5saW5lIGJvb2wgaXNIVE1MRm9ybUVsZW1lbnQoRWxlbWVudCogZWxlbWVudCkK
IHsKLSAgICByZXR1cm4gbm9kZS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OmZvcm1UYWcpOworICAg
IHJldHVybiBlbGVtZW50LT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6Zm9ybVRhZyk7CiB9CiAKLWlu
bGluZSBIVE1MRm9ybUVsZW1lbnQqIHRvSFRNTEZvcm1FbGVtZW50KE5vZGUqIG5vZGUpCitpbmxp
bmUgSFRNTEZvcm1FbGVtZW50KiB0b0hUTUxGb3JtRWxlbWVudChFbGVtZW50KiBlbGVtZW50KQog
ewotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFub2RlIHx8IGlzSFRNTEZv
cm1FbGVtZW50KG5vZGUpKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTEZvcm1FbGVtZW50
Kj4obm9kZSk7CisgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIWVsZW1lbnQg
fHwgaXNIVE1MRm9ybUVsZW1lbnQoZWxlbWVudCkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxI
VE1MRm9ybUVsZW1lbnQqPihlbGVtZW50KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAKaW5kZXggNGIyNmY5YTE2ZDA0
ZDg3MjFiYWVkNGIwMjhmNDIyOWIxZWRkMzYyMy4uM2IyMWU4OTFkMThiNTg3MTgxMzlkY2ZlNmMy
MjQ4MDdjODI5YTRkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3Bw
CkBAIC0xOTUsMTAgKzE5NSwxMyBAQCBOb2RlOjpJbnNlcnRpb25Ob3RpZmljYXRpb25SZXF1ZXN0
IEhUTUxJbWFnZUVsZW1lbnQ6Omluc2VydGVkSW50byhDb250YWluZXJOb2RlKgogICAgIGlmICgh
bV9mb3JtKSB7CiAgICAgICAgIC8vIG1fZm9ybSBjYW4gYmUgbm9uLW51bGwgaWYgaXQgd2FzIHNl
dCBpbiBjb25zdHJ1Y3Rvci4KICAgICAgICAgZm9yIChDb250YWluZXJOb2RlKiBhbmNlc3RvciA9
IHBhcmVudE5vZGUoKTsgYW5jZXN0b3I7IGFuY2VzdG9yID0gYW5jZXN0b3ItPnBhcmVudE5vZGUo
KSkgewotICAgICAgICAgICAgaWYgKGlzSFRNTEZvcm1FbGVtZW50KGFuY2VzdG9yKSkgewotICAg
ICAgICAgICAgICAgIG1fZm9ybSA9IHRvSFRNTEZvcm1FbGVtZW50KGFuY2VzdG9yKTsKLSAgICAg
ICAgICAgICAgICBtX2Zvcm0tPnJlZ2lzdGVySW1nRWxlbWVudCh0aGlzKTsKLSAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIGlmIChhbmNlc3Rvci0+aXNFbGVtZW50Tm9kZSgpKSB7
CisgICAgICAgICAgICAgICAgRWxlbWVudCogZWxlbWVudCA9IHRvRWxlbWVudChhbmNlc3Rvcik7
CisgICAgICAgICAgICAgICAgaWYgKGlzSFRNTEZvcm1FbGVtZW50KGVsZW1lbnQpKSB7CisgICAg
ICAgICAgICAgICAgICAgIG1fZm9ybSA9IHRvSFRNTEZvcm1FbGVtZW50KGVsZW1lbnQpOworICAg
ICAgICAgICAgICAgICAgICBtX2Zvcm0tPnJlZ2lzdGVySW1nRWxlbWVudCh0aGlzKTsKKyAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQog
ICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYWRpb0lu
cHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhZGlvSW5wdXRUeXBlLmNwcAppbmRl
eCA2ZWYyZTE5ZTQ3MTVjYTRjMWYxMGUxZTY3MDE0ZWU4ZDZlMzFjZmM2Li40OWQxNTRmNzExODYw
N2FmZDkxMDcwN2ZlZDVkZTA2ODRmYTdkMTgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1JhZGlvSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhZGlvSW5w
dXRUeXBlLmNwcApAQCAtODgsNyArODgsNyBAQCB2b2lkIFJhZGlvSW5wdXRUeXBlOjpoYW5kbGVL
ZXlkb3duRXZlbnQoS2V5Ym9hcmRFdmVudCogZXZlbnQpCiAgICAgTm9kZSogbm9kZSA9IGVsZW1l
bnQoKTsKICAgICB3aGlsZSAoKG5vZGUgPSAoZm9yd2FyZCA/IE5vZGVUcmF2ZXJzYWw6Om5leHQo
bm9kZSkgOiBOb2RlVHJhdmVyc2FsOjpwcmV2aW91cyhub2RlKSkpKSB7CiAgICAgICAgIC8vIE9u
Y2Ugd2UgZW5jb3VudGVyIGEgZm9ybSBlbGVtZW50LCB3ZSBrbm93IHdlJ3JlIHRocm91Z2guCi0g
ICAgICAgIGlmIChpc0hUTUxGb3JtRWxlbWVudChub2RlKSkKKyAgICAgICAgaWYgKG5vZGUtPmlz
RWxlbWVudE5vZGUoKSAmJiBpc0hUTUxGb3JtRWxlbWVudCh0b0VsZW1lbnQobm9kZSkpKQogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIC8vIExvb2sgZm9yIG1vcmUgcmFkaW8gYnV0dG9ucy4K
ICAgICAgICAgaWYgKCFpc0hUTUxJbnB1dEVsZW1lbnQobm9kZSkpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL1JhZGlvTm9kZUxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9S
YWRpb05vZGVMaXN0LmNwcAppbmRleCA0YWJlYjY1ZTU2N2QzNTExN2I3YWUxNWY5MTkyZGMwMGRj
YmZhMTFjLi4xMWEwZDk5MjIwMzhkYjNiYTA4NTMwN2NjMGRjZmNjMDBjMDRlMjNhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhZGlvTm9kZUxpc3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvUmFkaW9Ob2RlTGlzdC5jcHAKQEAgLTM4LDcgKzM4LDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAogUmFkaW9Ob2RlTGlzdDo6
UmFkaW9Ob2RlTGlzdChOb2RlKiByb290Tm9kZSwgY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lKQot
ICAgIDogTGl2ZU5vZGVMaXN0KHJvb3ROb2RlLCBSYWRpb05vZGVMaXN0VHlwZSwgSW52YWxpZGF0
ZUZvckZvcm1Db250cm9scywgaXNIVE1MRm9ybUVsZW1lbnQocm9vdE5vZGUpID8gTm9kZUxpc3RJ
c1Jvb3RlZEF0RG9jdW1lbnQgOiBOb2RlTGlzdElzUm9vdGVkQXROb2RlKQorICAgIDogTGl2ZU5v
ZGVMaXN0KHJvb3ROb2RlLCBSYWRpb05vZGVMaXN0VHlwZSwgSW52YWxpZGF0ZUZvckZvcm1Db250
cm9scywgcm9vdE5vZGUtPmlzRWxlbWVudE5vZGUoKSAmJiBpc0hUTUxGb3JtRWxlbWVudCh0b0Vs
ZW1lbnQocm9vdE5vZGUpKSA/IE5vZGVMaXN0SXNSb290ZWRBdERvY3VtZW50IDogTm9kZUxpc3RJ
c1Jvb3RlZEF0Tm9kZSkKICAgICAsIG1fbmFtZShuYW1lKQogewogfQpAQCAtODQsNyArODQsNyBA
QCB2b2lkIFJhZGlvTm9kZUxpc3Q6OnNldFZhbHVlKGNvbnN0IFN0cmluZyYgdmFsdWUpCiBib29s
IFJhZGlvTm9kZUxpc3Q6OmNoZWNrRWxlbWVudE1hdGNoZXNSYWRpb05vZGVMaXN0RmlsdGVyKEVs
ZW1lbnQqIHRlc3RFbGVtZW50KSBjb25zdAogewogICAgIEFTU0VSVCh0ZXN0RWxlbWVudC0+aGFz
VGFnTmFtZShvYmplY3RUYWcpIHx8IHRlc3RFbGVtZW50LT5pc0Zvcm1Db250cm9sRWxlbWVudCgp
KTsKLSAgICBpZiAoaXNIVE1MRm9ybUVsZW1lbnQob3duZXJOb2RlKCkpKSB7CisgICAgaWYgKG93
bmVyTm9kZSgpLT5pc0VsZW1lbnROb2RlKCkgJiYgaXNIVE1MRm9ybUVsZW1lbnQodG9FbGVtZW50
KG93bmVyTm9kZSgpKSkpIHsKICAgICAgICAgSFRNTEZvcm1FbGVtZW50KiBmb3JtRWxlbWVudCA9
IDA7CiAgICAgICAgIGlmICh0ZXN0RWxlbWVudC0+aGFzVGFnTmFtZShvYmplY3RUYWcpKQogICAg
ICAgICAgICAgZm9ybUVsZW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MT2JqZWN0RWxlbWVudCo+KHRl
c3RFbGVtZW50KS0+Zm9ybSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAppbmRleCBmNjczODQ2MzJlODZj
ZGM5YTgyMGE4NjcyMmI3OGVlZDAyZmQ3OWVmLi5lMjA0ZTFjZjY0NjgwYWFmMjI4ZWI4NWY3N2Q3
MDYwODlkZWI2MTljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcApAQCAtNDE1LDcgKzQxNSw3IEBAIFN0
cmluZyBGcmFtZTo6c2VhcmNoRm9yTGFiZWxzQmVmb3JlRWxlbWVudChjb25zdCBWZWN0b3I8U3Ry
aW5nPiYgbGFiZWxzLCBFbGVtZW50CiAgICAgTm9kZSogbjsKICAgICBmb3IgKG4gPSBOb2RlVHJh
dmVyc2FsOjpwcmV2aW91cyhlbGVtZW50KTsgbiAmJiBsZW5ndGhTZWFyY2hlZCA8IGNoYXJzU2Vh
cmNoZWRUaHJlc2hvbGQ7IG4gPSBOb2RlVHJhdmVyc2FsOjpwcmV2aW91cyhuKSkgewogICAgICAg
ICAvLyBXZSBoaXQgYW5vdGhlciBmb3JtIGVsZW1lbnQgb3IgdGhlIHN0YXJ0IG9mIHRoZSBmb3Jt
IC0gYmFpbCBvdXQKLSAgICAgICAgaWYgKGlzSFRNTEZvcm1FbGVtZW50KG4pIHx8IChuLT5pc0hU
TUxFbGVtZW50KCkgJiYgdG9FbGVtZW50KG4pLT5pc0Zvcm1Db250cm9sRWxlbWVudCgpKSkKKyAg
ICAgICAgaWYgKChuLT5pc0VsZW1lbnROb2RlKCkgJiYgaXNIVE1MRm9ybUVsZW1lbnQodG9FbGVt
ZW50KG4pKSkgfHwgKG4tPmlzSFRNTEVsZW1lbnQoKSAmJiB0b0VsZW1lbnQobiktPmlzRm9ybUNv
bnRyb2xFbGVtZW50KCkpKQogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgaWYgKG4tPmhh
c1RhZ05hbWUodGRUYWcpICYmICFzdGFydGluZ1RhYmxlQ2VsbCkgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAKaW5kZXggOWE5NDhmNjMyMGFlNjFh
ZmRhYjZlM2Y4ZjkwYjQxZGIwODBmZjc0Yi4uN2QwMTUxNGE3ZTRmMWYwN2Y0MDhlMGIyNTljNmE5
MWQyNGE3NDU3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYkZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
RnJhbWUuY3BwCkBAIC01OTIsMTcgKzU5MiwxNSBAQCBib29sIFdlYkZyYW1lOjpjb250YWluc0Fu
eUZvcm1FbGVtZW50cygpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2NvcmVGcmFtZSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIAorCiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gbV9jb3JlRnJh
bWUtPmRvY3VtZW50KCk7CiAgICAgaWYgKCFkb2N1bWVudCkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCi0gICAgZm9yIChOb2RlKiBub2RlID0gZG9jdW1lbnQtPmRvY3VtZW50RWxlbWVudCgpOyBu
b2RlOyBub2RlID0gTm9kZVRyYXZlcnNhbDo6bmV4dChub2RlKSkgewotICAgICAgICBpZiAoIW5v
ZGUtPmlzRWxlbWVudE5vZGUoKSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBpZiAo
aXNIVE1MRm9ybUVsZW1lbnQobm9kZSkpCisgICAgZm9yIChFbGVtZW50KiBlbGVtZW50ID0gZG9j
dW1lbnQtPmRvY3VtZW50RWxlbWVudCgpOyBlbGVtZW50OyBlbGVtZW50ID0gRWxlbWVudFRyYXZl
cnNhbDo6bmV4dChlbGVtZW50KSkKKyAgICAgICAgaWYgKGlzSFRNTEZvcm1FbGVtZW50KGVsZW1l
bnQpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQorCiAgICAgcmV0dXJuIGZhbHNl
OwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>205977</attachid>
            <date>2013-07-03 01:14:19 -0700</date>
            <delta_ts>2013-07-03 05:08:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-118334-20130703171226.patch</filename>
            <type>text/plain</type>
            <size>1869</size>
            <attacher name="Kangil Han">kangil.han</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUyMzQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDY4MmQ5MGQ3MGQ1NWQz
OTA5ZGViNzAzMjAxNzA4Mzk5MTk4Njc3NS4uZWE4ZDUwMzY4ZDMxNTU5ZDgzMzZlMDdmYjUwNDBk
NWYyZThmMTQ0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEzLTA3LTAzICBLYW5n
aWwgSGFuICA8a2FuZ2lsLmhhbkBzYW1zdW5nLmNvbT4KKworICAgICAgICBUZW1wbGF0aXplIGlz
L3RvSFRNTEZvcm1FbGVtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMTgzMzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBOb2RlOjpoYXNUYWdOYW1lIHRyaWdnZXJzIGlzRWxlbWVudE5vZGUoKSBhbHdh
eXMgYW5kIHRoaXMgaXMgdW5uZWNlc3Nhcnkgd2hlbiBhY3R1YWwKKyAgICAgICAgYXJndW1lbnQg
b2YgaXNGb29FbGVtZW50IGlzIEVsZW1lbnQqLiBTbyB0aGlzIHBhdGNoIHRlbXBsYXRpemVzIGlz
L3RvSFRNTEZvcm1FbGVtZW50CisgICAgICAgIHRvIGhhbmRsZSBib3RoIGNhc2VzLgorCisgICAg
ICAgICogaHRtbC9IVE1MRm9ybUVsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OmlzSFRNTEZv
cm1FbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OnRvSFRNTEZvcm1FbGVtZW50KToKKwogMjAx
My0wNy0wMiAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBNb2Rl
cm5pemUgUXVhbGlmaWVkTmFtZSBieSB3cmFwcGluZyBnTmFtZUNhY2hlIGluIGEgZnVuY3Rpb24g
YW5kIHVzaW5nIG1vcmUgZWFybHkgZXhpdHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEZvcm1FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVu
dC5oCmluZGV4IDliNWVhMmQwZDg4YmE1MGYzMzJhY2RkOTFmYzc3MDAzZjNhYjVjZmQuLjNiZDE3
ODhjMDZmYTM3NzVhYjg1YTA5NDE3Yjk2MzMzZjJjOTEzYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRm9ybUVsZW1lbnQuaApAQCAtMTYxLDE1ICsxNjEsMTcgQEAgcHJpdmF0ZToKICAgICBib29s
IG1fd2FzRGVtb3RlZDsKIH07CiAKLWlubGluZSBib29sIGlzSFRNTEZvcm1FbGVtZW50KE5vZGUq
IG5vZGUpCit0ZW1wbGF0ZTxjbGFzcyBUPgoraW5saW5lIGJvb2wgaXNIVE1MRm9ybUVsZW1lbnQo
VCogdCkKIHsKLSAgICByZXR1cm4gbm9kZS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OmZvcm1UYWcp
OworICAgIHJldHVybiB0LT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6Zm9ybVRhZyk7CiB9CiAKLWlu
bGluZSBIVE1MRm9ybUVsZW1lbnQqIHRvSFRNTEZvcm1FbGVtZW50KE5vZGUqIG5vZGUpCit0ZW1w
bGF0ZTxjbGFzcyBUPgoraW5saW5lIEhUTUxGb3JtRWxlbWVudCogdG9IVE1MRm9ybUVsZW1lbnQo
VCogdCkKIHsKLSAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighbm9kZSB8fCBp
c0hUTUxGb3JtRWxlbWVudChub2RlKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxGb3Jt
RWxlbWVudCo+KG5vZGUpOworICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCF0
IHx8IGlzSFRNTEZvcm1FbGVtZW50KHQpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTEZv
cm1FbGVtZW50Kj4odCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>205994</attachid>
            <date>2013-07-03 05:08:15 -0700</date>
            <delta_ts>2013-07-03 06:34:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-118334-20130703210621.patch</filename>
            <type>text/plain</type>
            <size>15321</size>
            <attacher name="Kangil Han">kangil.han</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUyMzQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDY4MmQ5MGQ3MGQ1NWQz
OTA5ZGViNzAzMjAxNzA4Mzk5MTk4Njc3NS4uNDY5ODI3NmFiYzZlN2QwOTQ5YmVmNmU4YmJiOTky
MGY0ZjcyOTIwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDEzLTA3LTAzICBLYW5n
aWwgSGFuICA8a2FuZ2lsLmhhbkBzYW1zdW5nLmNvbT4KKworICAgICAgICBBZGQgb3ZlcmxvYWRp
bmcgZnVuY3Rpb25zIGZvciBpcy90b0Zvb0VsZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExODMzNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vZGU6Omhhc1RhZ05hbWUgbmVlZHMgYWRkaXRpb25h
bCBpc0VsZW1lbnROb2RlKCkgY2hlY2sgd2hlbiBpdCBpcyB0cmlnZ2VyZWQuCisgICAgICAgIFNv
IGNvbnZlcnNpb24gZnJvbSBFbGVtZW50KiB0byBOb2RlKiBpbiBpcy90b0Zvb0VsZW1lbnQgc2hv
dWxkIGJlIGF2b2lkZWQuCisgICAgICAgIFRoZXJlZm9yZSwgdG8gc3VwcG9ydCBib3RoIE5vZGUq
IGFuZCBFbGVtZW50KiBhcyBhbiBhcmd1bWVudCBvZiBpcy90b0Zvb0VsZW1lbnQsCisgICAgICAg
IHRoaXMgcGF0Y2ggYXBwZW5kcyBvdmVybG9hZGluZyBpbmxpbmUgZnVuY3Rpb25zLgorCisgICAg
ICAgICogY3NzL0NTU1N0eWxlU2hlZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aXNBY2NlcHRh
YmxlQ1NTU3R5bGVTaGVldFBhcmVudCk6CisgICAgICAgICogY3NzL1N0eWxlU2NvcGVSZXNvbHZl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVNjb3BlUmVzb2x2ZXI6OnNjb3BlRm9yKToK
KyAgICAgICAgKiBkb20vTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpudW1iZXJP
ZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVuKToKKyAgICAgICAgKiBodG1sL0hUTUxBbmNob3JFbGVt
ZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjppc0hUTUxBbmNob3JFbGVtZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OnRvSFRNTEFuY2hvckVsZW1lbnQpOgorICAgICAgICAqIGh0bWwvSFRNTEFyZWFF
bGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjppc0hUTUxBcmVhRWxlbWVudCk6CisgICAgICAg
IChXZWJDb3JlOjp0b0hUTUxBcmVhRWxlbWVudCk6CisgICAgICAgICogaHRtbC9IVE1MQXVkaW9F
bGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjppc0hUTUxBdWRpb0VsZW1lbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6dG9IVE1MQXVkaW9FbGVtZW50KToKKyAgICAgICAgKiBodG1sL0hUTUxGb3Jt
RWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6aXNIVE1MRm9ybUVsZW1lbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6dG9IVE1MRm9ybUVsZW1lbnQpOgorICAgICAgICAqIGh0bWwvSFRNTEltYWdl
RWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6aXNIVE1MSW1hZ2VFbGVtZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OnRvSFRNTEltYWdlRWxlbWVudCk6CisgICAgICAgICogaHRtbC9IVE1MSW5w
dXRFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjppc0hUTUxJbnB1dEVsZW1lbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6dG9IVE1MSW5wdXRFbGVtZW50KToKKyAgICAgICAgKiBodG1sL0hUTUxM
YWJlbEVsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OmlzSFRNTExhYmVsRWxlbWVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjp0b0hUTUxMYWJlbEVsZW1lbnQpOgorICAgICAgICAqIGh0bWwvSFRN
TE9wdEdyb3VwRWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6aXNIVE1MT3B0R3JvdXBFbGVt
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OnRvSFRNTE9wdEdyb3VwRWxlbWVudCk6CisgICAgICAg
ICogaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6aXNIVE1MT3B0
aW9uRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjp0b0hUTUxPcHRpb25FbGVtZW50KToKKyAg
ICAgICAgKiBodG1sL0hUTUxTdHlsZUVsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OmlzSFRN
TFN0eWxlRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjp0b0hUTUxTdHlsZUVsZW1lbnQpOgor
ICAgICAgICAqIGh0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6
aXNIVE1MVGV4dEFyZWFFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OnRvSFRNTFRleHRBcmVh
RWxlbWVudCk6CisKIDIwMTMtMDctMDIgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgTW9kZXJuaXplIFF1YWxpZmllZE5hbWUgYnkgd3JhcHBpbmcgZ05hbWVDYWNo
ZSBpbiBhIGZ1bmN0aW9uIGFuZCB1c2luZyBtb3JlIGVhcmx5IGV4aXRzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTaGVldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTU3R5bGVTaGVldC5jcHAKaW5kZXggMTEwZmY4YmMwMzIxNTVjYzI1ODJkNTI3NmM1NWY2Mzc3
NThjNmM0Zi4uODgxMWUzNzE2N2Q2NmEyYzk5MjhiZmFjMDQ5ODhkMGZhODZiZjhkZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2hlZXQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NTdHlsZVNoZWV0LmNwcApAQCAtNjUsNyArNjUsNyBAQCBzdGF0aWMgYm9v
bCBpc0FjY2VwdGFibGVDU1NTdHlsZVNoZWV0UGFyZW50KE5vZGUqIHBhcmVudE5vZGUpCiAgICAg
cmV0dXJuICFwYXJlbnROb2RlCiAgICAgICAgIHx8IHBhcmVudE5vZGUtPmlzRG9jdW1lbnROb2Rl
KCkKICAgICAgICAgfHwgcGFyZW50Tm9kZS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OmxpbmtUYWcp
Ci0gICAgICAgIHx8IChwYXJlbnROb2RlLT5pc0VsZW1lbnROb2RlKCkgJiYgaXNIVE1MU3R5bGVF
bGVtZW50KHRvRWxlbWVudChwYXJlbnROb2RlKSkpCisgICAgICAgIHx8IGlzSFRNTFN0eWxlRWxl
bWVudChwYXJlbnROb2RlKQogI2lmIEVOQUJMRShTVkcpCiAgICAgICAgIHx8IHBhcmVudE5vZGUt
Pmhhc1RhZ05hbWUoU1ZHTmFtZXM6OnN0eWxlVGFnKQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvU3R5bGVTY29wZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9TdHlsZVNjb3BlUmVzb2x2ZXIuY3BwCmluZGV4IDkwMzg4NTgyYzJmOWNlY2VkZDEwOTJhNWZh
MjM4Njc4ODQ4MWExYjQuLmUzMjIxNTI0OTRjYzBhMjkwZTMzYzJiYTk0NmVjZTNlNDY4M2RiOGYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNjb3BlUmVzb2x2ZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNjb3BlUmVzb2x2ZXIuY3BwCkBAIC02MCwxMCAr
NjAsMTAgQEAgY29uc3QgQ29udGFpbmVyTm9kZSogU3R5bGVTY29wZVJlc29sdmVyOjpzY29wZUZv
cihjb25zdCBDU1NTdHlsZVNoZWV0KiBzaGVldCkKICAgICBpZiAoIWRvY3VtZW50KQogICAgICAg
ICByZXR1cm4gMDsKICAgICBOb2RlKiBvd25lck5vZGUgPSBzaGVldC0+b3duZXJOb2RlKCk7Ci0g
ICAgaWYgKCFvd25lck5vZGUgfHwgIW93bmVyTm9kZS0+aXNIVE1MRWxlbWVudCgpIHx8ICFpc0hU
TUxTdHlsZUVsZW1lbnQodG9FbGVtZW50KG93bmVyTm9kZSkpKQorICAgIGlmICghb3duZXJOb2Rl
IHx8ICFvd25lck5vZGUtPmlzSFRNTEVsZW1lbnQoKSB8fCAhaXNIVE1MU3R5bGVFbGVtZW50KG93
bmVyTm9kZSkpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgSFRNTFN0eWxlRWxlbWVudCogc3R5
bGVFbGVtZW50ID0gdG9IVE1MU3R5bGVFbGVtZW50KHRvRWxlbWVudChvd25lck5vZGUpKTsKKyAg
ICBIVE1MU3R5bGVFbGVtZW50KiBzdHlsZUVsZW1lbnQgPSB0b0hUTUxTdHlsZUVsZW1lbnQob3du
ZXJOb2RlKTsKICAgICBpZiAoIXN0eWxlRWxlbWVudC0+c2NvcGVkKCkpCiAgICAgICAgIHJldHVy
biBzdHlsZUVsZW1lbnQtPmlzSW5TaGFkb3dUcmVlKCkgPyBzdHlsZUVsZW1lbnQtPmNvbnRhaW5p
bmdTaGFkb3dSb290KCkgOiAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKaW5kZXggYjRmOTlkZDY2ODRhNjhh
NTA3YTA0MjIzNjg5ZWIwMzUzMTdlOGUxMi4uZTQ0NDk3NzJmZDNiMWZjZGNlZjkwYWQ0ODBjZTkw
ZWNkNzY3OTFhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcApAQCAtMjUzNiwxMCArMjUzNiw5IEBAIHZvaWQg
Tm9kZTo6dW5yZWdpc3RlclNjb3BlZEhUTUxTdHlsZUNoaWxkKCkKIHNpemVfdCBOb2RlOjpudW1i
ZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVuKCkgY29uc3QKIHsKICAgICBzaXplX3QgY291bnQg
PSAwOwotICAgIGZvciAoRWxlbWVudCogZWxlbWVudCA9IEVsZW1lbnRUcmF2ZXJzYWw6OmZpcnN0
V2l0aGluKHRoaXMpOyBlbGVtZW50OyBlbGVtZW50ID0gRWxlbWVudFRyYXZlcnNhbDo6bmV4dChl
bGVtZW50LCB0aGlzKSkgeworICAgIGZvciAoRWxlbWVudCogZWxlbWVudCA9IEVsZW1lbnRUcmF2
ZXJzYWw6OmZpcnN0V2l0aGluKHRoaXMpOyBlbGVtZW50OyBlbGVtZW50ID0gRWxlbWVudFRyYXZl
cnNhbDo6bmV4dChlbGVtZW50LCB0aGlzKSkKICAgICAgICAgaWYgKGlzSFRNTFN0eWxlRWxlbWVu
dChlbGVtZW50KSAmJiB0b0hUTUxTdHlsZUVsZW1lbnQoZWxlbWVudCktPmlzUmVnaXN0ZXJlZEFz
U2NvcGVkKCkpCiAgICAgICAgICAgICBjb3VudCsrOwotICAgIH0KIAogICAgIHJldHVybiBjb3Vu
dDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuaAppbmRleCA2ZmFkNDA5
MDVjMGVhYTJmZmUyYWY1YzFkNWViNmUyMzQ2YTVlM2M3Li44ZmMxOTY3NWE4MmM1N2EyNWVmOTU5
ODdmMjNiNTY3MWMyN2VmMTVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxB
bmNob3JFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVu
dC5oCkBAIC0xNTksMTIgKzE1OSwyMyBAQCBpbmxpbmUgYm9vbCBpc0hUTUxBbmNob3JFbGVtZW50
KE5vZGUqIG5vZGUpCiAgICAgcmV0dXJuIG5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjphVGFn
KTsKIH0KIAoraW5saW5lIGJvb2wgaXNIVE1MQW5jaG9yRWxlbWVudChFbGVtZW50KiBlbGVtZW50
KQoreworICAgIHJldHVybiBlbGVtZW50LT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6YVRhZyk7Cit9
CisKIGlubGluZSBIVE1MQW5jaG9yRWxlbWVudCogdG9IVE1MQW5jaG9yRWxlbWVudChOb2RlKiBu
b2RlKQogewogICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFub2RlIHx8IGlz
SFRNTEFuY2hvckVsZW1lbnQobm9kZSkpOwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxIVE1MQW5j
aG9yRWxlbWVudCo+KG5vZGUpOwogfQogCitpbmxpbmUgSFRNTEFuY2hvckVsZW1lbnQqIHRvSFRN
TEFuY2hvckVsZW1lbnQoRWxlbWVudCogZWxlbWVudCkKK3sKKyAgICBBU1NFUlRfV0lUSF9TRUNV
UklUWV9JTVBMSUNBVElPTighZWxlbWVudCB8fCBpc0hUTUxBbmNob3JFbGVtZW50KGVsZW1lbnQp
KTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTEFuY2hvckVsZW1lbnQqPihlbGVtZW50KTsK
K30KKwogLy8gRnVuY3Rpb25zIHNoYXJlZCB3aXRoIHRoZSBvdGhlciBhbmNob3IgZWxlbWVudHMg
KGkuZS4sIFNWRykuCiAKIGJvb2wgaXNFbnRlcktleUtleWRvd25FdmVudChFdmVudCopOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXJlYUVsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEFyZWFFbGVtZW50LmgKaW5kZXggYTM5YWNlODdlNGRmMzI2ZmM4NDMz
MWQwZTE3YzYxNWVlYmQ0NmI4NC4uM2RiODFlODU3N2M1OGEwNzU5ZDRkM2E2MzRhMTY1YTU4NDBj
YWIwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXJlYUVsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBcmVhRWxlbWVudC5oCkBAIC04MCwxMiArODAs
MjMgQEAgaW5saW5lIGJvb2wgaXNIVE1MQXJlYUVsZW1lbnQoTm9kZSogbm9kZSkKICAgICByZXR1
cm4gbm9kZS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OmFyZWFUYWcpOwogfQogCitpbmxpbmUgYm9v
bCBpc0hUTUxBcmVhRWxlbWVudChFbGVtZW50KiBlbGVtZW50KQoreworICAgIHJldHVybiBlbGVt
ZW50LT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6YXJlYVRhZyk7Cit9CisKIGlubGluZSBIVE1MQXJl
YUVsZW1lbnQqIHRvSFRNTEFyZWFFbGVtZW50KE5vZGUqIG5vZGUpCiB7CiAgICAgQVNTRVJUX1dJ
VEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW5vZGUgfHwgaXNIVE1MQXJlYUVsZW1lbnQobm9kZSkp
OwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxIVE1MQXJlYUVsZW1lbnQqPihub2RlKTsKIH0KIAor
aW5saW5lIEhUTUxBcmVhRWxlbWVudCogdG9IVE1MQXJlYUVsZW1lbnQoRWxlbWVudCogZWxlbWVu
dCkKK3sKKyAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighZWxlbWVudCB8fCBp
c0hUTUxBcmVhRWxlbWVudChlbGVtZW50KSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxB
cmVhRWxlbWVudCo+KGVsZW1lbnQpOworfQorCiB9IC8vbmFtZXNwYWNlCiAKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXVkaW9FbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxBdWRpb0VsZW1lbnQuaAppbmRleCAwZGNkZDY5Y2ZhZGJlOGYzOTY5
MTE4YmEyMWMwMmU5MzBkOTdiN2I4Li45OTJkNDFjZDk3NjFhYWFmY2Y3NTczNThiY2NlZGZmNmFm
YzY1NzgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdWRpb0VsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdWRpb0VsZW1lbnQuaApAQCAtNDgsMTIg
KzQ4LDIzIEBAIGlubGluZSBib29sIGlzSFRNTEF1ZGlvRWxlbWVudChOb2RlKiBub2RlKQogICAg
IHJldHVybiBub2RlLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6YXVkaW9UYWcpOwogfQogCitpbmxp
bmUgYm9vbCBpc0hUTUxBdWRpb0VsZW1lbnQoRWxlbWVudCogZWxlbWVudCkKK3sKKyAgICByZXR1
cm4gZWxlbWVudC0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OmF1ZGlvVGFnKTsKK30KKwogaW5saW5l
IEhUTUxBdWRpb0VsZW1lbnQqIHRvSFRNTEF1ZGlvRWxlbWVudChOb2RlKiBub2RlKQogewogICAg
IEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFub2RlIHx8IGlzSFRNTEF1ZGlvRWxl
bWVudChub2RlKSk7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxBdWRpb0VsZW1lbnQqPihu
b2RlKTsKIH0KIAoraW5saW5lIEhUTUxBdWRpb0VsZW1lbnQqIHRvSFRNTEF1ZGlvRWxlbWVudChF
bGVtZW50KiBlbGVtZW50KQoreworICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9O
KCFlbGVtZW50IHx8IGlzSFRNTEF1ZGlvRWxlbWVudChlbGVtZW50KSk7CisgICAgcmV0dXJuIHN0
YXRpY19jYXN0PEhUTUxBdWRpb0VsZW1lbnQqPihlbGVtZW50KTsKK30KKwogfSAvL25hbWVzcGFj
ZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5oCmluZGV4IDliNWVh
MmQwZDg4YmE1MGYzMzJhY2RkOTFmYzc3MDAzZjNhYjVjZmQuLjFmZjUxNzcyOGQzMzY1ZmQ4OTNl
ZDNmZmQzMmQ4ODBlMTU1MTk5ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEZvcm1FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQu
aApAQCAtMTY2LDEyICsxNjYsMjMgQEAgaW5saW5lIGJvb2wgaXNIVE1MRm9ybUVsZW1lbnQoTm9k
ZSogbm9kZSkKICAgICByZXR1cm4gbm9kZS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OmZvcm1UYWcp
OwogfQogCitpbmxpbmUgYm9vbCBpc0hUTUxGb3JtRWxlbWVudChFbGVtZW50KiBlbGVtZW50KQor
eworICAgIHJldHVybiBlbGVtZW50LT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6Zm9ybVRhZyk7Cit9
CisKIGlubGluZSBIVE1MRm9ybUVsZW1lbnQqIHRvSFRNTEZvcm1FbGVtZW50KE5vZGUqIG5vZGUp
CiB7CiAgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW5vZGUgfHwgaXNIVE1M
Rm9ybUVsZW1lbnQobm9kZSkpOwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxIVE1MRm9ybUVsZW1l
bnQqPihub2RlKTsKIH0KIAoraW5saW5lIEhUTUxGb3JtRWxlbWVudCogdG9IVE1MRm9ybUVsZW1l
bnQoRWxlbWVudCogZWxlbWVudCkKK3sKKyAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNB
VElPTighZWxlbWVudCB8fCBpc0hUTUxGb3JtRWxlbWVudChlbGVtZW50KSk7CisgICAgcmV0dXJu
IHN0YXRpY19jYXN0PEhUTUxGb3JtRWxlbWVudCo+KGVsZW1lbnQpOworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBIVE1MRm9ybUVsZW1lbnRfaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxJbWFnZUVsZW1lbnQuaAppbmRleCA0YWQ3MWJiOWViOWIxYmVmN2UyMDBjMjE3ZDlk
Mjk2OWI1NWU5MDdiLi5kMzM3NzRlMzM0ODJlNzI4YjNhNjRlYjdlMWNkN2QxMzIzY2YxMjAwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuaApAQCAtMTE3LDEyICsxMTcsMjMg
QEAgaW5saW5lIGJvb2wgaXNIVE1MSW1hZ2VFbGVtZW50KE5vZGUqIG5vZGUpCiAgICAgcmV0dXJu
IG5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjppbWdUYWcpOwogfQogCitpbmxpbmUgYm9vbCBp
c0hUTUxJbWFnZUVsZW1lbnQoRWxlbWVudCogZWxlbWVudCkKK3sKKyAgICByZXR1cm4gZWxlbWVu
dC0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OmltZ1RhZyk7Cit9CisKIGlubGluZSBIVE1MSW1hZ2VF
bGVtZW50KiB0b0hUTUxJbWFnZUVsZW1lbnQoTm9kZSogbm9kZSkKIHsKICAgICBBU1NFUlRfV0lU
SF9TRUNVUklUWV9JTVBMSUNBVElPTighbm9kZSB8fCBpc0hUTUxJbWFnZUVsZW1lbnQobm9kZSkp
OwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxIVE1MSW1hZ2VFbGVtZW50Kj4obm9kZSk7CiB9CiAK
K2lubGluZSBIVE1MSW1hZ2VFbGVtZW50KiB0b0hUTUxJbWFnZUVsZW1lbnQoRWxlbWVudCogZWxl
bWVudCkKK3sKKyAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighZWxlbWVudCB8
fCBpc0hUTUxJbWFnZUVsZW1lbnQoZWxlbWVudCkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxI
VE1MSW1hZ2VFbGVtZW50Kj4oZWxlbWVudCk7Cit9CisKIH0gLy9uYW1lc3BhY2UKIAogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCmluZGV4IDU2NzI4NDY2ZmQ2N2Ix
YmUxZWY5NDE3ZGI2NDM0MDM3YWM4MGFkMTkuLjQzNDMwMTgwMmJiZmNhMGQ2MTY2NWNhODFhZjU4
ODRiMmM4MjVhZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCkBAIC00
NDQsMTEgKzQ0NCwyMiBAQCBpbmxpbmUgYm9vbCBpc0hUTUxJbnB1dEVsZW1lbnQoTm9kZSogbm9k
ZSkKICAgICByZXR1cm4gbm9kZS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OmlucHV0VGFnKTsKIH0K
IAoraW5saW5lIGJvb2wgaXNIVE1MSW5wdXRFbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQpCit7Cisg
ICAgcmV0dXJuIGVsZW1lbnQtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjppbnB1dFRhZyk7Cit9CisK
IGlubGluZSBIVE1MSW5wdXRFbGVtZW50KiB0b0hUTUxJbnB1dEVsZW1lbnQoTm9kZSogbm9kZSkK
IHsKICAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighbm9kZSB8fCBpc0hUTUxJ
bnB1dEVsZW1lbnQobm9kZSkpOwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVt
ZW50Kj4obm9kZSk7CiB9CiAKK2lubGluZSBIVE1MSW5wdXRFbGVtZW50KiB0b0hUTUxJbnB1dEVs
ZW1lbnQoRWxlbWVudCogZWxlbWVudCkKK3sKKyAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBM
SUNBVElPTighZWxlbWVudCB8fCBpc0hUTUxJbnB1dEVsZW1lbnQoZWxlbWVudCkpOworICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4oZWxlbWVudCk7Cit9CisKIH0gLy9u
YW1lc3BhY2UKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGFi
ZWxFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQuaAppbmRl
eCA4NDRmNGM2NDhhMTE4MjExZjg1YzFkMmExMjE0ZDE2NmYxMzNmMDBiLi45Y2RhOTA4MmI2YjQx
NmYwYjhhZjVlZmQ4NmExNmM3YmMwNjAyMTAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxMYWJlbEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMYWJl
bEVsZW1lbnQuaApAQCAtNjAsMTIgKzYwLDIzIEBAIGlubGluZSBib29sIGlzSFRNTExhYmVsRWxl
bWVudChOb2RlKiBub2RlKQogICAgIHJldHVybiBub2RlLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6
bGFiZWxUYWcpOwogfQogCitpbmxpbmUgYm9vbCBpc0hUTUxMYWJlbEVsZW1lbnQoRWxlbWVudCog
ZWxlbWVudCkKK3sKKyAgICByZXR1cm4gZWxlbWVudC0+aGFzVGFnTmFtZShIVE1MTmFtZXM6Omxh
YmVsVGFnKTsKK30KKwogaW5saW5lIEhUTUxMYWJlbEVsZW1lbnQqIHRvSFRNTExhYmVsRWxlbWVu
dChOb2RlKiBub2RlKQogewogICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFu
b2RlIHx8IGlzSFRNTExhYmVsRWxlbWVudChub2RlKSk7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0
PEhUTUxMYWJlbEVsZW1lbnQqPihub2RlKTsKIH0KIAoraW5saW5lIEhUTUxMYWJlbEVsZW1lbnQq
IHRvSFRNTExhYmVsRWxlbWVudChFbGVtZW50KiBlbGVtZW50KQoreworICAgIEFTU0VSVF9XSVRI
X1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFlbGVtZW50IHx8IGlzSFRNTExhYmVsRWxlbWVudChlbGVt
ZW50KSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxMYWJlbEVsZW1lbnQqPihlbGVtZW50
KTsKK30KKwogfSAvL25hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
T3B0R3JvdXBFbGVtZW50LmgKaW5kZXggNGVjZGMyNWY1YzhiMzdmOTA5ZDU3MDUwN2RkZmJhM2Fm
OTA2YmYzMi4uNDk1ZmIzNWY5NGU0YmRiNmEzMDM2N2JjNDBmZDg1MmMxMWMxNzU3MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50LmgKQEAgLTY4LDEyICs2OCwyMyBA
QCBpbmxpbmUgYm9vbCBpc0hUTUxPcHRHcm91cEVsZW1lbnQoTm9kZSogbm9kZSkKICAgICByZXR1
cm4gbm9kZS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6Om9wdGdyb3VwVGFnKTsKIH0KIAoraW5saW5l
IGJvb2wgaXNIVE1MT3B0R3JvdXBFbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQpCit7CisgICAgcmV0
dXJuIGVsZW1lbnQtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjpvcHRncm91cFRhZyk7Cit9CisKIGlu
bGluZSBIVE1MT3B0R3JvdXBFbGVtZW50KiB0b0hUTUxPcHRHcm91cEVsZW1lbnQoTm9kZSogbm9k
ZSkKIHsKICAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighbm9kZSB8fCBpc0hU
TUxPcHRHcm91cEVsZW1lbnQobm9kZSkpOwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxIVE1MT3B0
R3JvdXBFbGVtZW50Kj4obm9kZSk7CiB9CiAKK2lubGluZSBIVE1MT3B0R3JvdXBFbGVtZW50KiB0
b0hUTUxPcHRHcm91cEVsZW1lbnQoRWxlbWVudCogZWxlbWVudCkKK3sKKyAgICBBU1NFUlRfV0lU
SF9TRUNVUklUWV9JTVBMSUNBVElPTighZWxlbWVudCB8fCBpc0hUTUxPcHRHcm91cEVsZW1lbnQo
ZWxlbWVudCkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxIVE1MT3B0R3JvdXBFbGVtZW50Kj4o
ZWxlbWVudCk7Cit9CisKIH0gLy9uYW1lc3BhY2UKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxPcHRpb25FbGVtZW50LmgKaW5kZXggM2RiYjg4MmZhOGFkMjkwNjgyOTQ5YTA0YmNmYTBm
Mjg1MTY3ZGI4ZS4uYWE1ZGIwNjFjNDdkMmYyMzUxZWNmZjhmNTEwZDhjYjMwZDFkYWQwYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuaApAQCAtMTAwLDEyICsxMDAsMjMg
QEAgaW5saW5lIGJvb2wgaXNIVE1MT3B0aW9uRWxlbWVudChOb2RlKiBub2RlKQogICAgIHJldHVy
biBub2RlLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6b3B0aW9uVGFnKTsKIH0KIAoraW5saW5lIGJv
b2wgaXNIVE1MT3B0aW9uRWxlbWVudChFbGVtZW50KiBlbGVtZW50KQoreworICAgIHJldHVybiBl
bGVtZW50LT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6b3B0aW9uVGFnKTsKK30KKwogaW5saW5lIEhU
TUxPcHRpb25FbGVtZW50KiB0b0hUTUxPcHRpb25FbGVtZW50KE5vZGUqIG5vZGUpCiB7CiAgICAg
QVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW5vZGUgfHwgaXNIVE1MT3B0aW9uRWxl
bWVudChub2RlKSk7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxPcHRpb25FbGVtZW50Kj4o
bm9kZSk7CiB9CiAKK2lubGluZSBIVE1MT3B0aW9uRWxlbWVudCogdG9IVE1MT3B0aW9uRWxlbWVu
dChFbGVtZW50KiBlbGVtZW50KQoreworICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FU
SU9OKCFlbGVtZW50IHx8IGlzSFRNTE9wdGlvbkVsZW1lbnQoZWxlbWVudCkpOworICAgIHJldHVy
biBzdGF0aWNfY2FzdDxIVE1MT3B0aW9uRWxlbWVudCo+KGVsZW1lbnQpOworfQorCiB9IC8vIG5h
bWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN0
eWxlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50LmgKaW5k
ZXggMTY0ODdkNTI5NzlhNTQzMDIwZjAyMjMxYjczMzAyNjI2YzQ5YTkyZC4uNjIwYzdhYTNhOWRk
NWY2MDY2NDA1MjNjZmRiZTc5NGFhMTczZTY3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MU3R5bGVFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3R5
bGVFbGVtZW50LmgKQEAgLTk3LDExICs5NywyMiBAQCBwcml2YXRlOgogICAgIFNjb3BlZFN0eWxl
UmVnaXN0cmF0aW9uU3RhdGUgbV9zY29wZWRTdHlsZVJlZ2lzdHJhdGlvblN0YXRlOwogfTsKIAor
aW5saW5lIGJvb2wgaXNIVE1MU3R5bGVFbGVtZW50KE5vZGUqIG5vZGUpCit7CisgICAgcmV0dXJu
IG5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjpzdHlsZVRhZyk7Cit9CisKIGlubGluZSBib29s
IGlzSFRNTFN0eWxlRWxlbWVudChFbGVtZW50KiBlbGVtZW50KQogewogICAgIHJldHVybiBlbGVt
ZW50LT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6c3R5bGVUYWcpOwogfQogCitpbmxpbmUgSFRNTFN0
eWxlRWxlbWVudCogdG9IVE1MU3R5bGVFbGVtZW50KE5vZGUqIG5vZGUpCit7CisgICAgQVNTRVJU
X1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW5vZGUgfHwgaXNIVE1MU3R5bGVFbGVtZW50KG5v
ZGUpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTFN0eWxlRWxlbWVudCo+KG5vZGUpOwor
fQorCiBpbmxpbmUgSFRNTFN0eWxlRWxlbWVudCogdG9IVE1MU3R5bGVFbGVtZW50KEVsZW1lbnQq
IGVsZW1lbnQpCiB7CiAgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIWVsZW1l
bnQgfHwgaXNIVE1MU3R5bGVFbGVtZW50KGVsZW1lbnQpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVGV4dEFyZWFFbGVtZW50LmgKaW5kZXggMDJmYjlmOTBlZmRlYzI1MWQ5Yjc5NDQ4ZGZiNjUz
Yzg0YjE3MjM2YS4uMTU0NjYyZDVhZTliOWZjY2FjZmI3MDIyMjA2ZTU2MGM4NzYzZDdlZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmgKQEAgLTEzMiwxMiArMTMy
LDIzIEBAIGlubGluZSBib29sIGlzSFRNTFRleHRBcmVhRWxlbWVudChOb2RlKiBub2RlKQogICAg
IHJldHVybiBub2RlLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6dGV4dGFyZWFUYWcpOwogfQogCitp
bmxpbmUgYm9vbCBpc0hUTUxUZXh0QXJlYUVsZW1lbnQoRWxlbWVudCogZWxlbWVudCkKK3sKKyAg
ICByZXR1cm4gZWxlbWVudC0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OnRleHRhcmVhVGFnKTsKK30K
KwogaW5saW5lIEhUTUxUZXh0QXJlYUVsZW1lbnQqIHRvSFRNTFRleHRBcmVhRWxlbWVudChOb2Rl
KiBub2RlKQogewogICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFub2RlIHx8
IGlzSFRNTFRleHRBcmVhRWxlbWVudChub2RlKSk7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEhU
TUxUZXh0QXJlYUVsZW1lbnQqPihub2RlKTsKIH0KIAoraW5saW5lIEhUTUxUZXh0QXJlYUVsZW1l
bnQqIHRvSFRNTFRleHRBcmVhRWxlbWVudChFbGVtZW50KiBlbGVtZW50KQoreworICAgIEFTU0VS
VF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFlbGVtZW50IHx8IGlzSFRNTFRleHRBcmVhRWxl
bWVudChlbGVtZW50KSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxUZXh0QXJlYUVsZW1l
bnQqPihlbGVtZW50KTsKK30KKwogfSAvL25hbWVzcGFjZQogCiAjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>206000</attachid>
            <date>2013-07-03 06:34:43 -0700</date>
            <delta_ts>2013-07-03 07:19:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-118334-20130703223249.patch</filename>
            <type>text/plain</type>
            <size>11941</size>
            <attacher name="Kangil Han">kangil.han</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUyMzUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWU5MzQ4YzA5ZjE4YzM1
Njk2MzNhNGNkNGM0YWQ1YWRlODZkZDZmMC4uMGY2YTZiNWY5ZGNhNDVmN2UzYmY3Mjc3OTI4ZjZj
NjkxZTM4YzQxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDEzLTA3LTAzICBLYW5n
aWwgSGFuICA8a2FuZ2lsLmhhbkBzYW1zdW5nLmNvbT4KKworICAgICAgICBBcHBlbmQgb3Zlcmxv
YWRpbmcgZnVuY3Rpb24gZm9yIGlzRm9vRWxlbWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE4MzM0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQW50
dGkgS29pdmlzdG8uCisKKyAgICAgICAgTm9kZTo6aGFzVGFnTmFtZSBuZWVkcyBhZGRpdGlvbmFs
IGlzRWxlbWVudE5vZGUoKSBjaGVjayB3aGVuIGl0IGlzIHRyaWdnZXJlZC4KKyAgICAgICAgU28g
Y29udmVyc2lvbiBmcm9tIEVsZW1lbnQqIHRvIE5vZGUqIGluIGlzRm9vRWxlbWVudCBzaG91bGQg
YmUgYXZvaWRlZC4KKyAgICAgICAgVGhlcmVmb3JlLCB0byBzdXBwb3J0IGJvdGggTm9kZSogYW5k
IEVsZW1lbnQqIGFzIGFuIGFyZ3VtZW50IG9mIGlzRm9vRWxlbWVudCwKKyAgICAgICAgdGhpcyBw
YXRjaCBhcHBlbmRzIG92ZXJsb2FkaW5nIGlubGluZSBmdW5jdGlvbi4KKworICAgICAgICAqIGNz
cy9DU1NTdHlsZVNoZWV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlzQWNjZXB0YWJsZUNTU1N0
eWxlU2hlZXRQYXJlbnQpOgorICAgICAgICAqIGNzcy9TdHlsZVNjb3BlUmVzb2x2ZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U3R5bGVTY29wZVJlc29sdmVyOjpzY29wZUZvcik6CisgICAgICAg
ICogZG9tL05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6bnVtYmVyT2ZTY29wZWRI
VE1MU3R5bGVDaGlsZHJlbik6CisgICAgICAgICogaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5oOgor
ICAgICAgICAoV2ViQ29yZTo6aXNIVE1MQW5jaG9yRWxlbWVudCk6CisgICAgICAgICogaHRtbC9I
VE1MQXJlYUVsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OmlzSFRNTEFyZWFFbGVtZW50KToK
KyAgICAgICAgKiBodG1sL0hUTUxBdWRpb0VsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6Omlz
SFRNTEF1ZGlvRWxlbWVudCk6CisgICAgICAgICogaHRtbC9IVE1MRm9ybUVsZW1lbnQuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OmlzSFRNTEZvcm1FbGVtZW50KToKKyAgICAgICAgKiBodG1sL0hUTUxJ
bWFnZUVsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OmlzSFRNTEltYWdlRWxlbWVudCk6Cisg
ICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjppc0hU
TUxJbnB1dEVsZW1lbnQpOgorICAgICAgICAqIGh0bWwvSFRNTExhYmVsRWxlbWVudC5oOgorICAg
ICAgICAoV2ViQ29yZTo6aXNIVE1MTGFiZWxFbGVtZW50KToKKyAgICAgICAgKiBodG1sL0hUTUxP
cHRHcm91cEVsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OmlzSFRNTE9wdEdyb3VwRWxlbWVu
dCk6CisgICAgICAgICogaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5oOgorICAgICAgICAoV2ViQ29y
ZTo6aXNIVE1MT3B0aW9uRWxlbWVudCk6CisgICAgICAgICogaHRtbC9IVE1MU3R5bGVFbGVtZW50
Lmg6CisgICAgICAgIChXZWJDb3JlOjppc0hUTUxTdHlsZUVsZW1lbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6dG9IVE1MU3R5bGVFbGVtZW50KToKKyAgICAgICAgKiBodG1sL0hUTUxUZXh0QXJlYUVs
ZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OmlzSFRNTFRleHRBcmVhRWxlbWVudCk6CisKIDIw
MTMtMDctMDMgIFByemVteXNsYXcgU3p5bWFuc2tpICA8cC5zenltYW5za2kzQHNhbXN1bmcuY29t
PgogCiAgICAgICAgIFRleHR1cmVVbml0IGNvZGUgb3B0aW1pemF0aW9uCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTaGVldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTU3R5bGVTaGVldC5jcHAKaW5kZXggMTEwZmY4YmMwMzIxNTVjYzI1ODJkNTI3NmM1NWY2Mzc3
NThjNmM0Zi4uODgxMWUzNzE2N2Q2NmEyYzk5MjhiZmFjMDQ5ODhkMGZhODZiZjhkZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2hlZXQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NTdHlsZVNoZWV0LmNwcApAQCAtNjUsNyArNjUsNyBAQCBzdGF0aWMgYm9v
bCBpc0FjY2VwdGFibGVDU1NTdHlsZVNoZWV0UGFyZW50KE5vZGUqIHBhcmVudE5vZGUpCiAgICAg
cmV0dXJuICFwYXJlbnROb2RlCiAgICAgICAgIHx8IHBhcmVudE5vZGUtPmlzRG9jdW1lbnROb2Rl
KCkKICAgICAgICAgfHwgcGFyZW50Tm9kZS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OmxpbmtUYWcp
Ci0gICAgICAgIHx8IChwYXJlbnROb2RlLT5pc0VsZW1lbnROb2RlKCkgJiYgaXNIVE1MU3R5bGVF
bGVtZW50KHRvRWxlbWVudChwYXJlbnROb2RlKSkpCisgICAgICAgIHx8IGlzSFRNTFN0eWxlRWxl
bWVudChwYXJlbnROb2RlKQogI2lmIEVOQUJMRShTVkcpCiAgICAgICAgIHx8IHBhcmVudE5vZGUt
Pmhhc1RhZ05hbWUoU1ZHTmFtZXM6OnN0eWxlVGFnKQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvU3R5bGVTY29wZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9TdHlsZVNjb3BlUmVzb2x2ZXIuY3BwCmluZGV4IDkwMzg4NTgyYzJmOWNlY2VkZDEwOTJhNWZh
MjM4Njc4ODQ4MWExYjQuLmUzMjIxNTI0OTRjYzBhMjkwZTMzYzJiYTk0NmVjZTNlNDY4M2RiOGYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNjb3BlUmVzb2x2ZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNjb3BlUmVzb2x2ZXIuY3BwCkBAIC02MCwxMCAr
NjAsMTAgQEAgY29uc3QgQ29udGFpbmVyTm9kZSogU3R5bGVTY29wZVJlc29sdmVyOjpzY29wZUZv
cihjb25zdCBDU1NTdHlsZVNoZWV0KiBzaGVldCkKICAgICBpZiAoIWRvY3VtZW50KQogICAgICAg
ICByZXR1cm4gMDsKICAgICBOb2RlKiBvd25lck5vZGUgPSBzaGVldC0+b3duZXJOb2RlKCk7Ci0g
ICAgaWYgKCFvd25lck5vZGUgfHwgIW93bmVyTm9kZS0+aXNIVE1MRWxlbWVudCgpIHx8ICFpc0hU
TUxTdHlsZUVsZW1lbnQodG9FbGVtZW50KG93bmVyTm9kZSkpKQorICAgIGlmICghb3duZXJOb2Rl
IHx8ICFvd25lck5vZGUtPmlzSFRNTEVsZW1lbnQoKSB8fCAhaXNIVE1MU3R5bGVFbGVtZW50KG93
bmVyTm9kZSkpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgSFRNTFN0eWxlRWxlbWVudCogc3R5
bGVFbGVtZW50ID0gdG9IVE1MU3R5bGVFbGVtZW50KHRvRWxlbWVudChvd25lck5vZGUpKTsKKyAg
ICBIVE1MU3R5bGVFbGVtZW50KiBzdHlsZUVsZW1lbnQgPSB0b0hUTUxTdHlsZUVsZW1lbnQob3du
ZXJOb2RlKTsKICAgICBpZiAoIXN0eWxlRWxlbWVudC0+c2NvcGVkKCkpCiAgICAgICAgIHJldHVy
biBzdHlsZUVsZW1lbnQtPmlzSW5TaGFkb3dUcmVlKCkgPyBzdHlsZUVsZW1lbnQtPmNvbnRhaW5p
bmdTaGFkb3dSb290KCkgOiAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKaW5kZXggYjRmOTlkZDY2ODRhNjhh
NTA3YTA0MjIzNjg5ZWIwMzUzMTdlOGUxMi4uZTQ0NDk3NzJmZDNiMWZjZGNlZjkwYWQ0ODBjZTkw
ZWNkNzY3OTFhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcApAQCAtMjUzNiwxMCArMjUzNiw5IEBAIHZvaWQg
Tm9kZTo6dW5yZWdpc3RlclNjb3BlZEhUTUxTdHlsZUNoaWxkKCkKIHNpemVfdCBOb2RlOjpudW1i
ZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVuKCkgY29uc3QKIHsKICAgICBzaXplX3QgY291bnQg
PSAwOwotICAgIGZvciAoRWxlbWVudCogZWxlbWVudCA9IEVsZW1lbnRUcmF2ZXJzYWw6OmZpcnN0
V2l0aGluKHRoaXMpOyBlbGVtZW50OyBlbGVtZW50ID0gRWxlbWVudFRyYXZlcnNhbDo6bmV4dChl
bGVtZW50LCB0aGlzKSkgeworICAgIGZvciAoRWxlbWVudCogZWxlbWVudCA9IEVsZW1lbnRUcmF2
ZXJzYWw6OmZpcnN0V2l0aGluKHRoaXMpOyBlbGVtZW50OyBlbGVtZW50ID0gRWxlbWVudFRyYXZl
cnNhbDo6bmV4dChlbGVtZW50LCB0aGlzKSkKICAgICAgICAgaWYgKGlzSFRNTFN0eWxlRWxlbWVu
dChlbGVtZW50KSAmJiB0b0hUTUxTdHlsZUVsZW1lbnQoZWxlbWVudCktPmlzUmVnaXN0ZXJlZEFz
U2NvcGVkKCkpCiAgICAgICAgICAgICBjb3VudCsrOwotICAgIH0KIAogICAgIHJldHVybiBjb3Vu
dDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuaAppbmRleCA2ZmFkNDA5
MDVjMGVhYTJmZmUyYWY1YzFkNWViNmUyMzQ2YTVlM2M3Li5lNTQ4YTFhZjBiYjlkNGI1ODkxYWJk
ZGExNDg3YTZlZGJhODAwZDVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxB
bmNob3JFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVu
dC5oCkBAIC0xNTksNiArMTU5LDExIEBAIGlubGluZSBib29sIGlzSFRNTEFuY2hvckVsZW1lbnQo
Tm9kZSogbm9kZSkKICAgICByZXR1cm4gbm9kZS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OmFUYWcp
OwogfQogCitpbmxpbmUgYm9vbCBpc0hUTUxBbmNob3JFbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQp
Cit7CisgICAgcmV0dXJuIGVsZW1lbnQtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjphVGFnKTsKK30K
KwogaW5saW5lIEhUTUxBbmNob3JFbGVtZW50KiB0b0hUTUxBbmNob3JFbGVtZW50KE5vZGUqIG5v
ZGUpCiB7CiAgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW5vZGUgfHwgaXNI
VE1MQW5jaG9yRWxlbWVudChub2RlKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxBcmVhRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXJlYUVsZW1lbnQu
aAppbmRleCBhMzlhY2U4N2U0ZGYzMjZmYzg0MzMxZDBlMTdjNjE1ZWViZDQ2Yjg0Li5hYTdmNzRj
MDA4OTIxNTVlMTM2ZTMyZGFjZmE5MzEyOTRlYjVmZjRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxBcmVhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEFyZWFFbGVtZW50LmgKQEAgLTgwLDYgKzgwLDExIEBAIGlubGluZSBib29sIGlzSFRNTEFyZWFF
bGVtZW50KE5vZGUqIG5vZGUpCiAgICAgcmV0dXJuIG5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVz
OjphcmVhVGFnKTsKIH0KIAoraW5saW5lIGJvb2wgaXNIVE1MQXJlYUVsZW1lbnQoRWxlbWVudCog
ZWxlbWVudCkKK3sKKyAgICByZXR1cm4gZWxlbWVudC0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OmFy
ZWFUYWcpOworfQorCiBpbmxpbmUgSFRNTEFyZWFFbGVtZW50KiB0b0hUTUxBcmVhRWxlbWVudChO
b2RlKiBub2RlKQogewogICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFub2Rl
IHx8IGlzSFRNTEFyZWFFbGVtZW50KG5vZGUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEF1ZGlvRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXVkaW9F
bGVtZW50LmgKaW5kZXggMGRjZGQ2OWNmYWRiZThmMzk2OTExOGJhMjFjMDJlOTMwZDk3YjdiOC4u
MDdjYTQ4ZGQ0MWQ0ODAzOTA2YjRmNGRlMTJhNWJmNTg2ZmI1OGI0OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXVkaW9FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MQXVkaW9FbGVtZW50LmgKQEAgLTQ4LDYgKzQ4LDExIEBAIGlubGluZSBib29sIGlz
SFRNTEF1ZGlvRWxlbWVudChOb2RlKiBub2RlKQogICAgIHJldHVybiBub2RlLT5oYXNUYWdOYW1l
KEhUTUxOYW1lczo6YXVkaW9UYWcpOwogfQogCitpbmxpbmUgYm9vbCBpc0hUTUxBdWRpb0VsZW1l
bnQoRWxlbWVudCogZWxlbWVudCkKK3sKKyAgICByZXR1cm4gZWxlbWVudC0+aGFzVGFnTmFtZShI
VE1MTmFtZXM6OmF1ZGlvVGFnKTsKK30KKwogaW5saW5lIEhUTUxBdWRpb0VsZW1lbnQqIHRvSFRN
TEF1ZGlvRWxlbWVudChOb2RlKiBub2RlKQogewogICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lN
UExJQ0FUSU9OKCFub2RlIHx8IGlzSFRNTEF1ZGlvRWxlbWVudChub2RlKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRm9ybUVsZW1lbnQuaAppbmRleCA5YjVlYTJkMGQ4OGJhNTBmMzMyYWNkZDkxZmM3
NzAwM2YzYWI1Y2ZkLi4wZmZjNWQxZmViM2NkNjM3MjY5MjgxZTdmZTM0YTUwZDQ5OGNjNGU1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmgKQEAgLTE2Niw2ICsxNjYsMTEgQEAg
aW5saW5lIGJvb2wgaXNIVE1MRm9ybUVsZW1lbnQoTm9kZSogbm9kZSkKICAgICByZXR1cm4gbm9k
ZS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OmZvcm1UYWcpOwogfQogCitpbmxpbmUgYm9vbCBpc0hU
TUxGb3JtRWxlbWVudChFbGVtZW50KiBlbGVtZW50KQoreworICAgIHJldHVybiBlbGVtZW50LT5o
YXNUYWdOYW1lKEhUTUxOYW1lczo6Zm9ybVRhZyk7Cit9CisKIGlubGluZSBIVE1MRm9ybUVsZW1l
bnQqIHRvSFRNTEZvcm1FbGVtZW50KE5vZGUqIG5vZGUpCiB7CiAgICAgQVNTRVJUX1dJVEhfU0VD
VVJJVFlfSU1QTElDQVRJT04oIW5vZGUgfHwgaXNIVE1MRm9ybUVsZW1lbnQobm9kZSkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuaAppbmRleCA0YWQ3MWJiOWViOWIxYmVmN2Uy
MDBjMjE3ZDlkMjk2OWI1NWU5MDdiLi44MjZjMjc0OGI5MWIzNmZlNjFiMzNkNDA3NThkNzc2Yzk3
NWY4ODM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuaApAQCAtMTE3LDYg
KzExNywxMSBAQCBpbmxpbmUgYm9vbCBpc0hUTUxJbWFnZUVsZW1lbnQoTm9kZSogbm9kZSkKICAg
ICByZXR1cm4gbm9kZS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OmltZ1RhZyk7CiB9CiAKK2lubGlu
ZSBib29sIGlzSFRNTEltYWdlRWxlbWVudChFbGVtZW50KiBlbGVtZW50KQoreworICAgIHJldHVy
biBlbGVtZW50LT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6aW1nVGFnKTsKK30KKwogaW5saW5lIEhU
TUxJbWFnZUVsZW1lbnQqIHRvSFRNTEltYWdlRWxlbWVudChOb2RlKiBub2RlKQogewogICAgIEFT
U0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFub2RlIHx8IGlzSFRNTEltYWdlRWxlbWVu
dChub2RlKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCmluZGV4IDU2NzI4
NDY2ZmQ2N2IxYmUxZWY5NDE3ZGI2NDM0MDM3YWM4MGFkMTkuLjIyNzFkZDk1Njk3ZWY0NDExNGQ4
MjYyOWI5NGNjNmE3MmE3ZTA4YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TElucHV0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVu
dC5oCkBAIC00NDQsNiArNDQ0LDExIEBAIGlubGluZSBib29sIGlzSFRNTElucHV0RWxlbWVudChO
b2RlKiBub2RlKQogICAgIHJldHVybiBub2RlLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6aW5wdXRU
YWcpOwogfQogCitpbmxpbmUgYm9vbCBpc0hUTUxJbnB1dEVsZW1lbnQoRWxlbWVudCogZWxlbWVu
dCkKK3sKKyAgICByZXR1cm4gZWxlbWVudC0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OmlucHV0VGFn
KTsKK30KKwogaW5saW5lIEhUTUxJbnB1dEVsZW1lbnQqIHRvSFRNTElucHV0RWxlbWVudChOb2Rl
KiBub2RlKQogewogICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFub2RlIHx8
IGlzSFRNTElucHV0RWxlbWVudChub2RlKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxMYWJlbEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxl
bWVudC5oCmluZGV4IDg0NGY0YzY0OGExMTgyMTFmODVjMWQyYTEyMTRkMTY2ZjEzM2YwMGIuLjIy
MzY2ZDljZTIzZjc5MWU2ZDBlZDBjYjkwZGVhYWVjMDY4NDNiZTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTExhYmVsRWxlbWVudC5oCkBAIC02MCw2ICs2MCwxMSBAQCBpbmxpbmUgYm9vbCBpc0hU
TUxMYWJlbEVsZW1lbnQoTm9kZSogbm9kZSkKICAgICByZXR1cm4gbm9kZS0+aGFzVGFnTmFtZShI
VE1MTmFtZXM6OmxhYmVsVGFnKTsKIH0KIAoraW5saW5lIGJvb2wgaXNIVE1MTGFiZWxFbGVtZW50
KEVsZW1lbnQqIGVsZW1lbnQpCit7CisgICAgcmV0dXJuIGVsZW1lbnQtPmhhc1RhZ05hbWUoSFRN
TE5hbWVzOjpsYWJlbFRhZyk7Cit9CisKIGlubGluZSBIVE1MTGFiZWxFbGVtZW50KiB0b0hUTUxM
YWJlbEVsZW1lbnQoTm9kZSogbm9kZSkKIHsKICAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBM
SUNBVElPTighbm9kZSB8fCBpc0hUTUxMYWJlbEVsZW1lbnQobm9kZSkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuaAppbmRleCA0ZWNkYzI1ZjVjOGIzN2Y5MDlkNTcw
NTA3ZGRmYmEzYWY5MDZiZjMyLi5jYzYyZTkwMTAxMGFiZWM0ODMwNjdlZDhjZmUyZTlmNDZmN2Jj
Y2JhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuaApAQCAtNjgs
NiArNjgsMTEgQEAgaW5saW5lIGJvb2wgaXNIVE1MT3B0R3JvdXBFbGVtZW50KE5vZGUqIG5vZGUp
CiAgICAgcmV0dXJuIG5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjpvcHRncm91cFRhZyk7CiB9
CiAKK2lubGluZSBib29sIGlzSFRNTE9wdEdyb3VwRWxlbWVudChFbGVtZW50KiBlbGVtZW50KQor
eworICAgIHJldHVybiBlbGVtZW50LT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6b3B0Z3JvdXBUYWcp
OworfQorCiBpbmxpbmUgSFRNTE9wdEdyb3VwRWxlbWVudCogdG9IVE1MT3B0R3JvdXBFbGVtZW50
KE5vZGUqIG5vZGUpCiB7CiAgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW5v
ZGUgfHwgaXNIVE1MT3B0R3JvdXBFbGVtZW50KG5vZGUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE9wdGlvbkVsZW1lbnQuaAppbmRleCAzZGJiODgyZmE4YWQyOTA2ODI5NDlhMDRiY2ZhMGYyODUx
NjdkYjhlLi40N2U0YTkxYmU3ZjA3N2JiOGVhMDdlODNmY2I1NzA4Y2YyNTIwZjkxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5oCkBAIC0xMDAsNiArMTAwLDExIEBAIGlu
bGluZSBib29sIGlzSFRNTE9wdGlvbkVsZW1lbnQoTm9kZSogbm9kZSkKICAgICByZXR1cm4gbm9k
ZS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6Om9wdGlvblRhZyk7CiB9CiAKK2lubGluZSBib29sIGlz
SFRNTE9wdGlvbkVsZW1lbnQoRWxlbWVudCogZWxlbWVudCkKK3sKKyAgICByZXR1cm4gZWxlbWVu
dC0+aGFzVGFnTmFtZShIVE1MTmFtZXM6Om9wdGlvblRhZyk7Cit9CisKIGlubGluZSBIVE1MT3B0
aW9uRWxlbWVudCogdG9IVE1MT3B0aW9uRWxlbWVudChOb2RlKiBub2RlKQogewogICAgIEFTU0VS
VF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFub2RlIHx8IGlzSFRNTE9wdGlvbkVsZW1lbnQo
bm9kZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdHlsZUVsZW1lbnQuaAppbmRleCAxNjQ4N2Q1
Mjk3OWE1NDMwMjBmMDIyMzFiNzMzMDI2MjZjNDlhOTJkLi4zZjI1NDAxMjMxN2I2ODA1YWQzODAx
N2YwOGZhZjA5MWY0ZmQ5ZTI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxT
dHlsZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdHlsZUVsZW1lbnQu
aApAQCAtOTcsMTUgKzk3LDIwIEBAIHByaXZhdGU6CiAgICAgU2NvcGVkU3R5bGVSZWdpc3RyYXRp
b25TdGF0ZSBtX3Njb3BlZFN0eWxlUmVnaXN0cmF0aW9uU3RhdGU7CiB9OwogCitpbmxpbmUgYm9v
bCBpc0hUTUxTdHlsZUVsZW1lbnQoTm9kZSogbm9kZSkKK3sKKyAgICByZXR1cm4gbm9kZS0+aGFz
VGFnTmFtZShIVE1MTmFtZXM6OnN0eWxlVGFnKTsKK30KKwogaW5saW5lIGJvb2wgaXNIVE1MU3R5
bGVFbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQpCiB7CiAgICAgcmV0dXJuIGVsZW1lbnQtPmhhc1Rh
Z05hbWUoSFRNTE5hbWVzOjpzdHlsZVRhZyk7CiB9CiAKLWlubGluZSBIVE1MU3R5bGVFbGVtZW50
KiB0b0hUTUxTdHlsZUVsZW1lbnQoRWxlbWVudCogZWxlbWVudCkKK2lubGluZSBIVE1MU3R5bGVF
bGVtZW50KiB0b0hUTUxTdHlsZUVsZW1lbnQoTm9kZSogbm9kZSkKIHsKLSAgICBBU1NFUlRfV0lU
SF9TRUNVUklUWV9JTVBMSUNBVElPTighZWxlbWVudCB8fCBpc0hUTUxTdHlsZUVsZW1lbnQoZWxl
bWVudCkpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxIVE1MU3R5bGVFbGVtZW50Kj4oZWxlbWVu
dCk7CisgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW5vZGUgfHwgaXNIVE1M
U3R5bGVFbGVtZW50KG5vZGUpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTFN0eWxlRWxl
bWVudCo+KG5vZGUpOwogfQogCiB9IC8vbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRleHRBcmVhRWxlbWVudC5oCmluZGV4IDAyZmI5ZjkwZWZkZWMyNTFkOWI3OTQ0OGRmYjY1M2M4
NGIxNzIzNmEuLmQ5Nzg1Yzk2NWE2MTU5ZWI5NTViMzM5YWEzYTNjZjI0Yjk1ZDQxMzQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5oCkBAIC0xMzIsNiArMTMyLDEx
IEBAIGlubGluZSBib29sIGlzSFRNTFRleHRBcmVhRWxlbWVudChOb2RlKiBub2RlKQogICAgIHJl
dHVybiBub2RlLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6dGV4dGFyZWFUYWcpOwogfQogCitpbmxp
bmUgYm9vbCBpc0hUTUxUZXh0QXJlYUVsZW1lbnQoRWxlbWVudCogZWxlbWVudCkKK3sKKyAgICBy
ZXR1cm4gZWxlbWVudC0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OnRleHRhcmVhVGFnKTsKK30KKwog
aW5saW5lIEhUTUxUZXh0QXJlYUVsZW1lbnQqIHRvSFRNTFRleHRBcmVhRWxlbWVudChOb2RlKiBu
b2RlKQogewogICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFub2RlIHx8IGlz
SFRNTFRleHRBcmVhRWxlbWVudChub2RlKSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>