<?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>101564</bug_id>
          
          <creation_ts>2012-11-08 01:36:44 -0800</creation_ts>
          <short_desc>[EFL][WK2] Make classes for client use WebContext instead of WKContext</short_desc>
          <delta_ts>2012-11-09 16:39:09 -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>WebKit EFL</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>101565</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jinwoo Song">jinwoo7.song</reporter>
          <assigned_to name="Jinwoo Song">jinwoo7.song</assigned_to>
          <cc>gyuyoung.kim</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>mikhail.pozdnyakov</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>761466</commentid>
    <comment_count>0</comment_count>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2012-11-08 01:36:44 -0800</bug_when>
    <thetext>ewk_context has been refactored to use WebContext instead of WKContext in r133844. So client classes also should changed to use WebContext.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761489</commentid>
    <comment_count>1</comment_count>
      <attachid>172964</attachid>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2012-11-08 01:54:13 -0800</bug_when>
    <thetext>Created attachment 172964
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761525</commentid>
    <comment_count>2</comment_count>
      <attachid>172964</attachid>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2012-11-08 02:46:21 -0800</bug_when>
    <thetext>Comment on attachment 172964
Patch

I&apos;ll upload other patch to align with bug 101565.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761565</commentid>
    <comment_count>3</comment_count>
      <attachid>172987</attachid>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2012-11-08 03:21:48 -0800</bug_when>
    <thetext>Created attachment 172987
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761570</commentid>
    <comment_count>4</comment_count>
      <attachid>172987</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-11-08 03:25:38 -0800</bug_when>
    <thetext>Comment on attachment 172987
Patch

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

&gt; Source/WebKit2/UIProcess/API/efl/ewk_context.cpp:69
&gt; +    , m_batteryProvider(BatteryProvider::create(m_context.get()))

m_batteryProvider(BatteryProvider::create(m_context))

&gt; Source/WebKit2/UIProcess/API/efl/ewk_context.cpp:72
&gt; +    , m_networkInfoProvider(NetworkInfoProvider::create(m_context.get()))

ditto

&gt; Source/WebKit2/UIProcess/API/efl/ewk_context.cpp:76
&gt; +    , m_historyClient(ContextHistoryClientEfl::create(m_context.get()))

ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761575</commentid>
    <comment_count>5</comment_count>
      <attachid>172987</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-11-08 03:27:23 -0800</bug_when>
    <thetext>Comment on attachment 172987
Patch

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

&gt; Source/WebKit2/UIProcess/efl/BatteryProvider.cpp:83
&gt; +    m_context.get()-&gt;batteryManagerProxy()-&gt;initializeProvider(&amp;wkBatteryProvider);

m_context-&gt;batteryManagerProxy()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761580</commentid>
    <comment_count>6</comment_count>
      <attachid>172987</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-11-08 03:29:12 -0800</bug_when>
    <thetext>Comment on attachment 172987
Patch

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

smart pointer classes have -&gt; operator overloaded!

&gt; Source/WebKit2/UIProcess/efl/BatteryProvider.cpp:60
&gt; +    m_context.get()-&gt;batteryManagerProxy()-&gt;initializeProvider(0);

m_context-&gt;batteryManagerProxy()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761586</commentid>
    <comment_count>7</comment_count>
      <attachid>172987</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-11-08 03:33:34 -0800</bug_when>
    <thetext>Comment on attachment 172987
Patch

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

&gt; Source/WebKit2/ChangeLog:3
&gt; +        [EFL][WK2] Make classes for client use WebContext instead of WKContext

&quot;Make context client classes...&quot;

&gt; Source/WebKit2/UIProcess/efl/BatteryProvider.cpp:60
&gt; +    m_context.get()-&gt;batteryManagerProxy()-&gt;initializeProvider(0);

useless &quot;.get()&quot;

&gt; Source/WebKit2/UIProcess/efl/BatteryProvider.cpp:82
&gt; +    ASSERT(m_context.get()-&gt;batteryManagerProxy());

Ditto.

&gt; Source/WebKit2/UIProcess/efl/BatteryProvider.cpp:100
&gt; +    ASSERT(m_context.get()-&gt;batteryManagerProxy());

Ditto.

&gt; Source/WebKit2/UIProcess/efl/BatteryProvider.cpp:101
&gt; +    m_context.get()-&gt;batteryManagerProxy()-&gt;providerDidChangeBatteryStatus(eventType, batteryStatus.get());

Ditto.

&gt; Source/WebKit2/UIProcess/efl/NetworkInfoProvider.cpp:82
&gt; +    ASSERT(m_context.get()-&gt;networkInfoManagerProxy());

Ditto.

&gt; Source/WebKit2/UIProcess/efl/NetworkInfoProvider.cpp:88
&gt; +    ASSERT(m_context.get()-&gt;networkInfoManagerProxy());

Ditto.....</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761589</commentid>
    <comment_count>8</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-11-08 03:34:25 -0800</bug_when>
    <thetext>BTW, you should reconsider your patch after https://bugs.webkit.org/show_bug.cgi?id=101565 lands</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762626</commentid>
    <comment_count>9</comment_count>
      <attachid>173217</attachid>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2012-11-08 23:38:04 -0800</bug_when>
    <thetext>Created attachment 173217
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762655</commentid>
    <comment_count>10</comment_count>
      <attachid>173217</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-11-09 00:28:28 -0800</bug_when>
    <thetext>Comment on attachment 173217
Patch

looks ok</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762794</commentid>
    <comment_count>11</comment_count>
      <attachid>173217</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-09 03:25:53 -0800</bug_when>
    <thetext>Comment on attachment 173217
Patch

Clearing flags on attachment: 173217

Committed r134043: &lt;http://trac.webkit.org/changeset/134043&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762795</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-09 03:26:00 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762869</commentid>
    <comment_count>13</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-11-09 05:20:45 -0800</bug_when>
    <thetext>lead to crashes
ASSERTION FAILED: context
/home/buildslave-1/webkit-buildslave/efl-linux-64-debug-wk2/build/Source/WebKit2/UIProcess/efl/BatteryProvider.cpp(73) : WebKit::BatteryProvider::BatteryProvider(WTF::PassRefPtr&lt;WebKit::WebContext&gt;)
1   0x2b42aab6132a WebKit::BatteryProvider::BatteryProvider(WTF::PassRefPtr&lt;WebKit::WebContext&gt;)
2   0x2b42aab61261 WebKit::BatteryProvider::create(WTF::PassRefPtr&lt;WebKit::WebContext&gt;)
3   0x2b42aab3edbe EwkContext::EwkContext(WTF::PassRefPtr&lt;WebKit::WebContext&gt;)
4   0x2b42aab3f278 EwkContext::create(WTF::PassRefPtr&lt;WebKit::WebContext&gt;)
5   0x2b42aab3f2de EwkContext::create()
6   0x2b42aab3f3a5 EwkContext::defaultContext()
7   0x2b42aab3f927 ewk_context_default_get
8   0x40fe67 EWK2UnitTest::EWK2UnitTestBase::SetUp()
9   0x2b42abcfef6f testing::Test::Run()
10  0x2b42abcff5d1 testing::internal::TestInfoImpl::Run()

after PassRefPtr has been assigned to smth you can never use it again, and this problem is pretty hard to see on review since the code which needs modification might not not in the patch.

It&apos;s a good habit to run tests or mini browser at least before uploading a patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762871</commentid>
    <comment_count>14</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-11-09 05:21:20 -0800</bug_when>
    <thetext>link to crash log:
http://build.webkit.org/builders/EFL%20Linux%2064-bit%20Debug%20WK2/builds/5702/steps/API%20tests/logs/stdio</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762874</commentid>
    <comment_count>15</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-11-09 05:22:24 -0800</bug_when>
    <thetext>and this is link to crash bug
https://bugs.webkit.org/show_bug.cgi?id=101742</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763450</commentid>
    <comment_count>16</comment_count>
    <who name="Jinwoo Song">jinwoo7.song</who>
    <bug_when>2012-11-09 16:39:09 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; lead to crashes
&gt; ASSERTION FAILED: context
&gt; /home/buildslave-1/webkit-buildslave/efl-linux-64-debug-wk2/build/Source/WebKit2/UIProcess/efl/BatteryProvider.cpp(73) : WebKit::BatteryProvider::BatteryProvider(WTF::PassRefPtr&lt;WebKit::WebContext&gt;)
&gt; 1   0x2b42aab6132a WebKit::BatteryProvider::BatteryProvider(WTF::PassRefPtr&lt;WebKit::WebContext&gt;)
&gt; 2   0x2b42aab61261 WebKit::BatteryProvider::create(WTF::PassRefPtr&lt;WebKit::WebContext&gt;)
&gt; 3   0x2b42aab3edbe EwkContext::EwkContext(WTF::PassRefPtr&lt;WebKit::WebContext&gt;)
&gt; 4   0x2b42aab3f278 EwkContext::create(WTF::PassRefPtr&lt;WebKit::WebContext&gt;)
&gt; 5   0x2b42aab3f2de EwkContext::create()
&gt; 6   0x2b42aab3f3a5 EwkContext::defaultContext()
&gt; 7   0x2b42aab3f927 ewk_context_default_get
&gt; 8   0x40fe67 EWK2UnitTest::EWK2UnitTestBase::SetUp()
&gt; 9   0x2b42abcfef6f testing::Test::Run()
&gt; 10  0x2b42abcff5d1 testing::internal::TestInfoImpl::Run()
&gt; 
&gt; after PassRefPtr has been assigned to smth you can never use it again, and this problem is pretty hard to see on review since the code which needs modification might not not in the patch.
&gt; 
&gt; It&apos;s a good habit to run tests or mini browser at least before uploading a patch.

My bad. I usually run API test before submitting patch, but I did not run in this time as the patch was rebased many times. I should have tested the API test and Minibrowser and I&apos;ll double check next time. I&apos;m sorry for bothering you.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172964</attachid>
            <date>2012-11-08 01:54:13 -0800</date>
            <delta_ts>2012-11-08 03:21:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101564-20121108185216.patch</filename>
            <type>text/plain</type>
            <size>13965</size>
            <attacher name="Jinwoo Song">jinwoo7.song</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzODUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMDk1MWVmYmE3ZDU2YTc2
YWZkYWY5YzVjNTQzYzc5NWM3ODE2MmViOS4uZjlkZWU4MWQyMzdhZmYyYzJkMjdkNWU3YjQ0OTY1
NzAxOTBjMTRkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEyLTExLTA4ICBKaW53
b28gU29uZyAgPGppbndvbzcuc29uZ0BzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXVtXSzJd
IE1ha2UgY2xhc3NlcyBmb3IgY2xpZW50IHVzZSBXZWJDb250ZXh0IGluc3RlYWQgb2YgV0tDb250
ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE1
NjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFd2tD
b250ZXh0IGNsYXNzIGhhcyBiZWVuIHJlZmFjdG9yZWQgdG8gdXNlIFdlYkNvbnRleHQgaW5zdGVh
ZCBvZiBXS0NvbnRleHQgaW4gcjEzMzg0NCwKKyAgICAgICAgc28gdGhpcyBwYXRjaCBtYWtlIGNs
aWVudCBjbGFzc2VzIHVzZSBXZWJDb250ZXh0LgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9l
ZmwvZXdrX2NvbnRleHQuY3BwOgorICAgICAgICAoRXdrQ29udGV4dDo6RXdrQ29udGV4dCk6Cisg
ICAgICAgIChld2tfY29udGV4dF9jYWNoZV9tb2RlbF9nZXQpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9lZmwvQmF0dGVyeVByb3ZpZGVyLmNwcDoKKyAgICAgICAgKEJhdHRlcnlQcm92aWRlcjo6fkJh
dHRlcnlQcm92aWRlcik6CisgICAgICAgIChCYXR0ZXJ5UHJvdmlkZXI6OmNyZWF0ZSk6CisgICAg
ICAgIChCYXR0ZXJ5UHJvdmlkZXI6OkJhdHRlcnlQcm92aWRlcik6CisgICAgICAgIChCYXR0ZXJ5
UHJvdmlkZXI6OmRpZENoYW5nZUJhdHRlcnlTdGF0dXMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9l
ZmwvQmF0dGVyeVByb3ZpZGVyLmg6CisgICAgICAgIChCYXR0ZXJ5UHJvdmlkZXIpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9lZmwvQ29udGV4dEhpc3RvcnlDbGllbnRFZmwuY3BwOgorICAgICAgICAo
V2ViS2l0OjpDb250ZXh0SGlzdG9yeUNsaWVudEVmbDo6Q29udGV4dEhpc3RvcnlDbGllbnRFZmwp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvQ29udGV4dEhpc3RvcnlDbGllbnRFZmwuaDoKKyAg
ICAgICAgKFdlYktpdDo6Q29udGV4dEhpc3RvcnlDbGllbnRFZmw6OmNyZWF0ZSk6CisgICAgICAg
IChDb250ZXh0SGlzdG9yeUNsaWVudEVmbCk6CisgICAgICAgICogVUlQcm9jZXNzL2VmbC9OZXR3
b3JrSW5mb1Byb3ZpZGVyLmNwcDoKKyAgICAgICAgKE5ldHdvcmtJbmZvUHJvdmlkZXI6OmNyZWF0
ZSk6CisgICAgICAgIChOZXR3b3JrSW5mb1Byb3ZpZGVyOjpOZXR3b3JrSW5mb1Byb3ZpZGVyKToK
KyAgICAgICAgKE5ldHdvcmtJbmZvUHJvdmlkZXI6On5OZXR3b3JrSW5mb1Byb3ZpZGVyKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvZWZsL05ldHdvcmtJbmZvUHJvdmlkZXIuaDoKKyAgICAgICAgKE5l
dHdvcmtJbmZvUHJvdmlkZXIpOgorCiAyMDEyLTExLTA3ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5y
ZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCBy
MTMzODQxLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdr
X2NvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRl
eHQuY3BwCmluZGV4IDkxYTBjZWM3YzYwZjhlOWNhNzQwYmE2MjJjNGUyYWRjZDRmYWIyODkuLjQ2
Nzc2NWRlYTk0ODY4NWZlYWMyYTY0ZjhmYjRjYzEwYTc5MGVlZjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dC5jcHAKQEAgLTY2LDE0ICs2Niwx
NCBAQCBFd2tDb250ZXh0OjpFd2tDb250ZXh0KFdlYkNvbnRleHQqIGNvbnRleHQpCiAgICAgLCBt
X2RhdGFiYXNlTWFuYWdlcihFd2tfRGF0YWJhc2VfTWFuYWdlcjo6Y3JlYXRlKGNvbnRleHQpKQog
ICAgICwgbV9zdG9yYWdlTWFuYWdlcihFd2tfU3RvcmFnZV9NYW5hZ2VyOjpjcmVhdGUoY29udGV4
dCkpCiAjaWYgRU5BQkxFKEJBVFRFUllfU1RBVFVTKQotICAgICwgbV9iYXR0ZXJ5UHJvdmlkZXIo
QmF0dGVyeVByb3ZpZGVyOjpjcmVhdGUodG9BUEkoY29udGV4dCkpKQorICAgICwgbV9iYXR0ZXJ5
UHJvdmlkZXIoQmF0dGVyeVByb3ZpZGVyOjpjcmVhdGUoY29udGV4dCkpCiAjZW5kaWYKICNpZiBF
TkFCTEUoTkVUV09SS19JTkZPKQotICAgICwgbV9uZXR3b3JrSW5mb1Byb3ZpZGVyKE5ldHdvcmtJ
bmZvUHJvdmlkZXI6OmNyZWF0ZSh0b0FQSShjb250ZXh0KSkpCisgICAgLCBtX25ldHdvcmtJbmZv
UHJvdmlkZXIoTmV0d29ya0luZm9Qcm92aWRlcjo6Y3JlYXRlKGNvbnRleHQpKQogI2VuZGlmCiAg
ICAgLCBtX2Rvd25sb2FkTWFuYWdlcihEb3dubG9hZE1hbmFnZXJFZmw6OmNyZWF0ZSh0aGlzKSkK
ICAgICAsIG1fcmVxdWVzdE1hbmFnZXJDbGllbnQoUmVxdWVzdE1hbmFnZXJDbGllbnRFZmw6OmNy
ZWF0ZSh0aGlzKSkKLSAgICAsIG1faGlzdG9yeUNsaWVudChDb250ZXh0SGlzdG9yeUNsaWVudEVm
bDo6Y3JlYXRlKHRvQVBJKGNvbnRleHQpKSkKKyAgICAsIG1faGlzdG9yeUNsaWVudChDb250ZXh0
SGlzdG9yeUNsaWVudEVmbDo6Y3JlYXRlKGNvbnRleHQpKQogewogICAgIENvbnRleHRNYXA6OkFk
ZFJlc3VsdCByZXN1bHQgPSBjb250ZXh0TWFwKCkuYWRkKGNvbnRleHQsIHRoaXMpOwogICAgIEFT
U0VSVF9VTlVTRUQocmVzdWx0LCByZXN1bHQuaXNOZXdFbnRyeSk7CkBAIC0zMDksNCArMzA5LDMg
QEAgRXdrX0NhY2hlX01vZGVsIGV3a19jb250ZXh0X2NhY2hlX21vZGVsX2dldChjb25zdCBFd2tf
Q29udGV4dCogZXdrQ29udGV4dCkKIAogICAgIHJldHVybiBpbXBsLT5jYWNoZU1vZGVsKCk7CiB9
Ci0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvQmF0dGVyeVByb3Zp
ZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvQmF0dGVyeVByb3ZpZGVyLmNw
cAppbmRleCA4MTA3MTE1OTdjNTZlYWFkZGJhZGIzZTFhMjAwZmJkZDQ1OWI2ZGNjLi43MjE1Yjlk
NDZmYWY0ZjZiMDE4YzBlNGZjZWIwMzFmNjc0ZTM3OGNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvZWZsL0JhdHRlcnlQcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2VmbC9CYXR0ZXJ5UHJvdmlkZXIuY3BwCkBAIC0zMCw4ICszMCw5IEBACiAK
ICNpbmNsdWRlICJXS0FQSUNhc3QuaCIKICNpbmNsdWRlICJXS0JhdHRlcnlNYW5hZ2VyLmgiCi0j
aW5jbHVkZSAiV0tCYXR0ZXJ5U3RhdHVzLmgiCi0jaW5jbHVkZSAiV0tDb250ZXh0LmgiCisjaW5j
bHVkZSAiV2ViQmF0dGVyeU1hbmFnZXJQcm94eS5oIgorI2luY2x1ZGUgIldlYkJhdHRlcnlTdGF0
dXMuaCIKKyNpbmNsdWRlICJXZWJDb250ZXh0LmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OwogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKQEAgLTU1LDI1ICs1NiwyNiBAQCBCYXR0ZXJ5UHJv
dmlkZXI6On5CYXR0ZXJ5UHJvdmlkZXIoKQogewogICAgIG1fcHJvdmlkZXIuc3RvcFVwZGF0aW5n
KCk7CiAKLSAgICBXS0JhdHRlcnlNYW5hZ2VyUmVmIHdrQmF0dGVyeU1hbmFnZXIgPSBXS0NvbnRl
eHRHZXRCYXR0ZXJ5TWFuYWdlcihtX3drQ29udGV4dC5nZXQoKSk7Ci0gICAgQVNTRVJUKHdrQmF0
dGVyeU1hbmFnZXIpOworICAgIFdlYkJhdHRlcnlNYW5hZ2VyUHJveHkqIGJhdHRlcnlNYW5hZ2Vy
ID0gbV93ZWJDb250ZXh0LT5iYXR0ZXJ5TWFuYWdlclByb3h5KCk7CisgICAgQVNTRVJUKGJhdHRl
cnlNYW5hZ2VyKTsKIAotICAgIFdLQmF0dGVyeU1hbmFnZXJTZXRQcm92aWRlcih3a0JhdHRlcnlN
YW5hZ2VyLCAwKTsKKyAgICBiYXR0ZXJ5TWFuYWdlci0+aW5pdGlhbGl6ZVByb3ZpZGVyKDApOwog
fQogCi1QYXNzUmVmUHRyPEJhdHRlcnlQcm92aWRlcj4gQmF0dGVyeVByb3ZpZGVyOjpjcmVhdGUo
V0tDb250ZXh0UmVmIHdrQ29udGV4dCkKK1Bhc3NSZWZQdHI8QmF0dGVyeVByb3ZpZGVyPiBCYXR0
ZXJ5UHJvdmlkZXI6OmNyZWF0ZShXZWJDb250ZXh0KiBjb250ZXh0KQogewotICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgQmF0dGVyeVByb3ZpZGVyKHdrQ29udGV4dCkpOworICAgIEFTU0VSVChjb250
ZXh0KTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IEJhdHRlcnlQcm92aWRlcihjb250ZXh0KSk7
CiB9CiAKLUJhdHRlcnlQcm92aWRlcjo6QmF0dGVyeVByb3ZpZGVyKFdLQ29udGV4dFJlZiB3a0Nv
bnRleHQpCi0gICAgOiBtX3drQ29udGV4dCh3a0NvbnRleHQpCitCYXR0ZXJ5UHJvdmlkZXI6OkJh
dHRlcnlQcm92aWRlcihXZWJDb250ZXh0KiBjb250ZXh0KQorICAgIDogbV93ZWJDb250ZXh0KGNv
bnRleHQpCiAgICAgLCBtX3Byb3ZpZGVyKHRoaXMpCiB7Ci0gICAgQVNTRVJUKG1fd2tDb250ZXh0
KTsKKyAgICBBU1NFUlQoY29udGV4dCk7CiAKLSAgICBXS0JhdHRlcnlNYW5hZ2VyUmVmIHdrQmF0
dGVyeU1hbmFnZXIgPSBXS0NvbnRleHRHZXRCYXR0ZXJ5TWFuYWdlcihtX3drQ29udGV4dC5nZXQo
KSk7Ci0gICAgQVNTRVJUKHdrQmF0dGVyeU1hbmFnZXIpOworICAgIFdlYkJhdHRlcnlNYW5hZ2Vy
UHJveHkqIGJhdHRlcnlNYW5hZ2VyID0gbV93ZWJDb250ZXh0LT5iYXR0ZXJ5TWFuYWdlclByb3h5
KCk7CisgICAgQVNTRVJUKGJhdHRlcnlNYW5hZ2VyKTsKIAogICAgIFdLQmF0dGVyeVByb3ZpZGVy
IHdrQmF0dGVyeVByb3ZpZGVyID0gewogICAgICAgICBrV0tCYXR0ZXJ5UHJvdmlkZXJDdXJyZW50
VmVyc2lvbiwKQEAgLTgxLDcgKzgzLDcgQEAgQmF0dGVyeVByb3ZpZGVyOjpCYXR0ZXJ5UHJvdmlk
ZXIoV0tDb250ZXh0UmVmIHdrQ29udGV4dCkKICAgICAgICAgc3RhcnRVcGRhdGluZ0NhbGxiYWNr
LAogICAgICAgICBzdG9wVXBkYXRpbmdDYWxsYmFjawogICAgIH07Ci0gICAgV0tCYXR0ZXJ5TWFu
YWdlclNldFByb3ZpZGVyKHdrQmF0dGVyeU1hbmFnZXIsICZ3a0JhdHRlcnlQcm92aWRlcik7Cisg
ICAgYmF0dGVyeU1hbmFnZXItPmluaXRpYWxpemVQcm92aWRlcigmd2tCYXR0ZXJ5UHJvdmlkZXIp
OwogfQogCiB2b2lkIEJhdHRlcnlQcm92aWRlcjo6c3RhcnRVcGRhdGluZygpCkBAIC05NiwxMSAr
OTgsMTAgQEAgdm9pZCBCYXR0ZXJ5UHJvdmlkZXI6OnN0b3BVcGRhdGluZygpCiAKIHZvaWQgQmF0
dGVyeVByb3ZpZGVyOjpkaWRDaGFuZ2VCYXR0ZXJ5U3RhdHVzKGNvbnN0IEF0b21pY1N0cmluZyYg
ZXZlbnRUeXBlLCBQYXNzUmVmUHRyPEJhdHRlcnlTdGF0dXM+IHN0YXR1cykKIHsKLSAgICBXS0Jh
dHRlcnlNYW5hZ2VyUmVmIHdrQmF0dGVyeU1hbmFnZXIgPSBXS0NvbnRleHRHZXRCYXR0ZXJ5TWFu
YWdlcihtX3drQ29udGV4dC5nZXQoKSk7Ci0gICAgQVNTRVJUKHdrQmF0dGVyeU1hbmFnZXIpOwor
ICAgIFJlZlB0cjxXZWJCYXR0ZXJ5U3RhdHVzPiBiYXR0ZXJ5U3RhdHVzID0gV2ViQmF0dGVyeVN0
YXR1czo6Y3JlYXRlKHN0YXR1cy0+Y2hhcmdpbmcoKSwgc3RhdHVzLT5jaGFyZ2luZ1RpbWUoKSwg
c3RhdHVzLT5kaXNjaGFyZ2luZ1RpbWUoKSwgc3RhdHVzLT5sZXZlbCgpKTsKKyAgICBXZWJCYXR0
ZXJ5TWFuYWdlclByb3h5KiBiYXR0ZXJ5TWFuYWdlciA9IG1fd2ViQ29udGV4dC0+YmF0dGVyeU1h
bmFnZXJQcm94eSgpOworICAgIEFTU0VSVChiYXR0ZXJ5TWFuYWdlcik7CiAKLSAgICBXS1JldGFp
blB0cjxXS0JhdHRlcnlTdGF0dXNSZWY+IHdrQmF0dGVyeVN0YXR1cyhBZG9wdFdLLCBXS0JhdHRl
cnlTdGF0dXNDcmVhdGUoc3RhdHVzLT5jaGFyZ2luZygpLCBzdGF0dXMtPmNoYXJnaW5nVGltZSgp
LCBzdGF0dXMtPmRpc2NoYXJnaW5nVGltZSgpLCBzdGF0dXMtPmxldmVsKCkpKTsKLSAgICBXS0Jh
dHRlcnlNYW5hZ2VyUHJvdmlkZXJEaWRDaGFuZ2VCYXR0ZXJ5U3RhdHVzKHdrQmF0dGVyeU1hbmFn
ZXIsIHRvQVBJKGV2ZW50VHlwZS5pbXBsKCkpLCB3a0JhdHRlcnlTdGF0dXMuZ2V0KCkpOworICAg
IGJhdHRlcnlNYW5hZ2VyLT5wcm92aWRlckRpZENoYW5nZUJhdHRlcnlTdGF0dXMoZXZlbnRUeXBl
LCBiYXR0ZXJ5U3RhdHVzLmdldCgpKTsKIH0KLQogI2VuZGlmIC8vIEVOQUJMRShCQVRURVJZX1NU
QVRVUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvQmF0dGVyeVBy
b3ZpZGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL0JhdHRlcnlQcm92aWRlci5o
CmluZGV4IGI4MjlkN2VkNWJjNmFiZjQxODBhNDFlMWM5NjM3NDlhMjMzYjg5M2YuLmEzNzA1Yjhi
MWQxYzg5ZTBkYzI3NmZhNDhiNzc5ODEyNjc4OWNhMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9lZmwvQmF0dGVyeVByb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2VmbC9CYXR0ZXJ5UHJvdmlkZXIuaApAQCAtMzEsNyArMzEsNyBAQAogI2luY2x1
ZGUgIkJhdHRlcnlQcm92aWRlckVmbC5oIgogI2luY2x1ZGUgIkJhdHRlcnlQcm92aWRlckVmbENs
aWVudC5oIgogI2luY2x1ZGUgIkJhdHRlcnlTdGF0dXMuaCIKLSNpbmNsdWRlICJXS1JldGFpblB0
ci5oIgorI2luY2x1ZGUgIldlYkNvbnRleHQuaCIKICNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5o
PgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAKQEAgLTQwLDE4ICs0MCwxOCBAQCBuYW1l
c3BhY2UgV2ViS2l0IHsKIGNsYXNzIEJhdHRlcnlQcm92aWRlciA6IHB1YmxpYyBSZWZDb3VudGVk
PEJhdHRlcnlQcm92aWRlcj4sIHB1YmxpYyBXZWJDb3JlOjpCYXR0ZXJ5UHJvdmlkZXJFZmxDbGll
bnQgewogcHVibGljOgogICAgIHZpcnR1YWwgfkJhdHRlcnlQcm92aWRlcigpOwotICAgIHN0YXRp
YyBQYXNzUmVmUHRyPEJhdHRlcnlQcm92aWRlcj4gY3JlYXRlKFdLQ29udGV4dFJlZik7CisgICAg
c3RhdGljIFBhc3NSZWZQdHI8QmF0dGVyeVByb3ZpZGVyPiBjcmVhdGUoV2ViQ29udGV4dCopOwog
CiAgICAgdm9pZCBzdGFydFVwZGF0aW5nKCk7CiAgICAgdm9pZCBzdG9wVXBkYXRpbmcoKTsKIAog
cHJpdmF0ZToKLSAgICBCYXR0ZXJ5UHJvdmlkZXIoV0tDb250ZXh0UmVmKTsKKyAgICBCYXR0ZXJ5
UHJvdmlkZXIoV2ViQ29udGV4dCopOwogCiAgICAgLy8gQmF0dGVyeVByb3ZpZGVyRWZsQ2xpZW50
IGludGVyZmFjZS4KICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlQmF0dGVyeVN0YXR1cyhjb25z
dCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgUGFzc1JlZlB0cjxXZWJDb3JlOjpCYXR0ZXJ5U3Rh
dHVzPik7CiAKLSAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IG1fd2tDb250ZXh0OworICAg
IFJlZlB0cjxXZWJDb250ZXh0PiBtX3dlYkNvbnRleHQ7CiAgICAgV2ViQ29yZTo6QmF0dGVyeVBy
b3ZpZGVyRWZsIG1fcHJvdmlkZXI7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvZWZsL0NvbnRleHRIaXN0b3J5Q2xpZW50RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9lZmwvQ29udGV4dEhpc3RvcnlDbGllbnRFZmwuY3BwCmluZGV4IGMwMDhhNjM5
NTNhOWUyNTUzYTcwZGE2NjkyMzU0OWM4NzYzOGEyNzguLjZjYTM4YzUzNGMxYzVkMjc0NDhiOTNi
ZDJmNmVhM2M3NzQzNDJjODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9l
ZmwvQ29udGV4dEhpc3RvcnlDbGllbnRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9lZmwvQ29udGV4dEhpc3RvcnlDbGllbnRFZmwuY3BwCkBAIC0xMDYsNyArMTA2LDcgQEAg
dm9pZCBDb250ZXh0SGlzdG9yeUNsaWVudEVmbDo6cG9wdWxhdGVWaXNpdGVkTGlua3MoV0tDb250
ZXh0UmVmLCBjb25zdCB2b2lkKiBjbGkKICAgICBoaXN0b3J5Q2xpZW50LT5tX3BvcHVsYXRlVmlz
aXRlZExpbmtzKGhpc3RvcnlDbGllbnQtPm1fdXNlckRhdGEpOwogfQogCi1Db250ZXh0SGlzdG9y
eUNsaWVudEVmbDo6Q29udGV4dEhpc3RvcnlDbGllbnRFZmwoV0tDb250ZXh0UmVmIGNvbnRleHQp
CitDb250ZXh0SGlzdG9yeUNsaWVudEVmbDo6Q29udGV4dEhpc3RvcnlDbGllbnRFZmwoV2ViQ29u
dGV4dCogY29udGV4dCkKICAgICA6IG1fdXNlckRhdGEoMCkKICAgICAsIG1fbmF2aWdhdGUoMCkK
ICAgICAsIG1fY2xpZW50UmVkaXJlY3QoMCkKQEAgLTEyOCw3ICsxMjgsNyBAQCBDb250ZXh0SGlz
dG9yeUNsaWVudEVmbDo6Q29udGV4dEhpc3RvcnlDbGllbnRFZmwoV0tDb250ZXh0UmVmIGNvbnRl
eHQpCiAgICAgd2tIaXN0b3J5Q2xpZW50LmRpZFVwZGF0ZUhpc3RvcnlUaXRsZSA9IGRpZFVwZGF0
ZUhpc3RvcnlUaXRsZTsKICAgICB3a0hpc3RvcnlDbGllbnQucG9wdWxhdGVWaXNpdGVkTGlua3Mg
PSBwb3B1bGF0ZVZpc2l0ZWRMaW5rczsKIAotICAgIFdLQ29udGV4dFNldEhpc3RvcnlDbGllbnQo
Y29udGV4dCwgJndrSGlzdG9yeUNsaWVudCk7CisgICAgY29udGV4dC0+aW5pdGlhbGl6ZUhpc3Rv
cnlDbGllbnQoJndrSGlzdG9yeUNsaWVudCk7CiB9CiAKIHZvaWQgQ29udGV4dEhpc3RvcnlDbGll
bnRFZmw6OnNldENhbGxiYWNrcyhFd2tfSGlzdG9yeV9OYXZpZ2F0aW9uX0NiIG5hdmlnYXRlLCBF
d2tfSGlzdG9yeV9DbGllbnRfUmVkaXJlY3Rpb25fQ2IgY2xpZW50UmVkaXJlY3QsIEV3a19IaXN0
b3J5X1NlcnZlcl9SZWRpcmVjdGlvbl9DYiBzZXJ2ZXJSZWRpcmVjdCwgRXdrX0hpc3RvcnlfVGl0
bGVfVXBkYXRlX0NiIHRpdGxlVXBkYXRlLCBFd2tfSGlzdG9yeV9Qb3B1bGF0ZV9WaXNpdGVkX0xp
bmtzX0NiIHBvcHVsYXRlVmlzaXRlZExpbmtzLCB2b2lkKiBkYXRhKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9Db250ZXh0SGlzdG9yeUNsaWVudEVmbC5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9Db250ZXh0SGlzdG9yeUNsaWVudEVmbC5oCmluZGV4
IDMyMDMyNTY1YTM5ODQ3MDJmZGI4YTRhZTA0MTgxZWExMmVkMWNhMzUuLjY2YTYxZjc5MDFjNjRh
MTUzYjgzYWU5Y2QzMDQ1MzIzM2ExMmIxOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9lZmwvQ29udGV4dEhpc3RvcnlDbGllbnRFZmwuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvZWZsL0NvbnRleHRIaXN0b3J5Q2xpZW50RWZsLmgKQEAgLTI2LDYgKzI2LDcg
QEAKICNpZm5kZWYgQ29udGV4dEhpc3RvcnlDbGllbnRFZmxfaAogI2RlZmluZSBDb250ZXh0SGlz
dG9yeUNsaWVudEVmbF9oCiAKKyNpbmNsdWRlICJXZWJDb250ZXh0LmgiCiAjaW5jbHVkZSAiZXdr
X2NvbnRleHQuaCIKICNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgogI2luY2x1ZGUgPHd0Zi9Q
YXNzT3duUHRyLmg+CkBAIC0zNCw3ICszNSw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFz
cyBDb250ZXh0SGlzdG9yeUNsaWVudEVmbCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25Q
dHI8Q29udGV4dEhpc3RvcnlDbGllbnRFZmw+IGNyZWF0ZShXS0NvbnRleHRSZWYgY29udGV4dCkK
KyAgICBzdGF0aWMgUGFzc093blB0cjxDb250ZXh0SGlzdG9yeUNsaWVudEVmbD4gY3JlYXRlKFdl
YkNvbnRleHQqIGNvbnRleHQpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IENv
bnRleHRIaXN0b3J5Q2xpZW50RWZsKGNvbnRleHQpKTsKICAgICB9CkBAIC00Miw3ICs0Myw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIHNldENhbGxiYWNrcyhFd2tfSGlzdG9yeV9OYXZpZ2F0aW9uX0Ni
LCBFd2tfSGlzdG9yeV9DbGllbnRfUmVkaXJlY3Rpb25fQ2IsIEV3a19IaXN0b3J5X1NlcnZlcl9S
ZWRpcmVjdGlvbl9DYiwgRXdrX0hpc3RvcnlfVGl0bGVfVXBkYXRlX0NiLCBFd2tfSGlzdG9yeV9Q
b3B1bGF0ZV9WaXNpdGVkX0xpbmtzX0NiLCB2b2lkKik7CiAKIHByaXZhdGU6Ci0gICAgZXhwbGlj
aXQgQ29udGV4dEhpc3RvcnlDbGllbnRFZmwoV0tDb250ZXh0UmVmKTsKKyAgICBleHBsaWNpdCBD
b250ZXh0SGlzdG9yeUNsaWVudEVmbChXZWJDb250ZXh0Kik7CiAKICAgICBzdGF0aWMgdm9pZCBk
aWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YShXS0NvbnRleHRSZWYsIFdLUGFnZVJlZiwgV0tO
YXZpZ2F0aW9uRGF0YVJlZiwgV0tGcmFtZVJlZiwgY29uc3Qgdm9pZCopOwogICAgIHN0YXRpYyB2
b2lkIGRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdChXS0NvbnRleHRSZWYsIFdLUGFnZVJlZiwgV0tV
UkxSZWYgc291cmNlVVJMLCBXS1VSTFJlZiwgV0tGcmFtZVJlZiwgY29uc3Qgdm9pZCopOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9OZXR3b3JrSW5mb1Byb3ZpZGVy
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvTmV0d29ya0luZm9Qcm92aWRlci5j
cHAKaW5kZXggZjU0NTZmOWI4NjljMzA4Y2ZiM2IwNThiNzA1OTdlZTNlMzk3ODJjNy4uNjM5YmFk
YjE4Zjc4Y2FjMjlmZTBiNmRlNWFkNDUxZjI1NmJjMTMxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2VmbC9OZXR3b3JrSW5mb1Byb3ZpZGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvZWZsL05ldHdvcmtJbmZvUHJvdmlkZXIuY3BwCkBAIC0yOCw4ICsy
OCw5IEBACiAKICNpZiBFTkFCTEUoTkVUV09SS19JTkZPKQogCi0jaW5jbHVkZSAiV0tDb250ZXh0
LmgiCiAjaW5jbHVkZSAiV0tOZXR3b3JrSW5mb01hbmFnZXIuaCIKKyNpbmNsdWRlICJXZWJDb250
ZXh0LmgiCisjaW5jbHVkZSAiV2ViTmV0d29ya0luZm9NYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRl
IDxOb3RJbXBsZW1lbnRlZC5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwpAQCAtNTksMTgg
KzYwLDE4IEBAIHN0YXRpYyBib29sIGlzTWV0ZXJlZENhbGxiYWNrKFdLTmV0d29ya0luZm9NYW5h
Z2VyUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogICAgIHJldHVybiB0b05ldHdvcmtJbmZv
UHJvdmlkZXIoY2xpZW50SW5mbyktPm1ldGVyZWQoKTsKIH0KIAotUGFzc1JlZlB0cjxOZXR3b3Jr
SW5mb1Byb3ZpZGVyPiBOZXR3b3JrSW5mb1Byb3ZpZGVyOjpjcmVhdGUoV0tDb250ZXh0UmVmIHdr
Q29udGV4dCkKK1Bhc3NSZWZQdHI8TmV0d29ya0luZm9Qcm92aWRlcj4gTmV0d29ya0luZm9Qcm92
aWRlcjo6Y3JlYXRlKFdlYkNvbnRleHQqIGNvbnRleHQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBOZXR3b3JrSW5mb1Byb3ZpZGVyKHdrQ29udGV4dCkpOworICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgTmV0d29ya0luZm9Qcm92aWRlcihjb250ZXh0KSk7CiB9CiAKLU5ldHdvcmtJbmZvUHJv
dmlkZXI6Ok5ldHdvcmtJbmZvUHJvdmlkZXIoV0tDb250ZXh0UmVmIHdrQ29udGV4dCkKLSAgICA6
IG1fd2tDb250ZXh0KHdrQ29udGV4dCkKK05ldHdvcmtJbmZvUHJvdmlkZXI6Ok5ldHdvcmtJbmZv
UHJvdmlkZXIoV2ViQ29udGV4dCogY29udGV4dCkKKyAgICA6IG1fd2ViQ29udGV4dChjb250ZXh0
KQogewotICAgIEFTU0VSVCh3a0NvbnRleHQpOworICAgIEFTU0VSVChjb250ZXh0KTsKIAotICAg
IFdLTmV0d29ya0luZm9NYW5hZ2VyUmVmIHdrTmV0d29ya0luZm9NYW5hZ2VyID0gV0tDb250ZXh0
R2V0TmV0d29ya0luZm9NYW5hZ2VyKG1fd2tDb250ZXh0LmdldCgpKTsKLSAgICBBU1NFUlQod2tO
ZXR3b3JrSW5mb01hbmFnZXIpOworICAgIFdlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5KiBuZXR3
b3JrSW5mb01hbmFnZXIgPSBtX3dlYkNvbnRleHQtPm5ldHdvcmtJbmZvTWFuYWdlclByb3h5KCk7
CisgICAgQVNTRVJUKG5ldHdvcmtJbmZvTWFuYWdlcik7CiAKICAgICBXS05ldHdvcmtJbmZvUHJv
dmlkZXIgd2tOZXR3b3JrSW5mb1Byb3ZpZGVyID0gewogICAgICAgICBrV0tOZXR3b3JrSW5mb1By
b3ZpZGVyQ3VycmVudFZlcnNpb24sCkBAIC04MCwxNSArODEsMTUgQEAgTmV0d29ya0luZm9Qcm92
aWRlcjo6TmV0d29ya0luZm9Qcm92aWRlcihXS0NvbnRleHRSZWYgd2tDb250ZXh0KQogICAgICAg
ICBnZXRCYW5kd2lkdGhDYWxsYmFjaywKICAgICAgICAgaXNNZXRlcmVkQ2FsbGJhY2sKICAgICB9
OwotICAgIFdLTmV0d29ya0luZm9NYW5hZ2VyU2V0UHJvdmlkZXIod2tOZXR3b3JrSW5mb01hbmFn
ZXIsICZ3a05ldHdvcmtJbmZvUHJvdmlkZXIpOworICAgIG5ldHdvcmtJbmZvTWFuYWdlci0+aW5p
dGlhbGl6ZVByb3ZpZGVyKCZ3a05ldHdvcmtJbmZvUHJvdmlkZXIpOwogfQogCiBOZXR3b3JrSW5m
b1Byb3ZpZGVyOjp+TmV0d29ya0luZm9Qcm92aWRlcigpCiB7Ci0gICAgV0tOZXR3b3JrSW5mb01h
bmFnZXJSZWYgd2tOZXR3b3JrSW5mb01hbmFnZXIgPSBXS0NvbnRleHRHZXROZXR3b3JrSW5mb01h
bmFnZXIobV93a0NvbnRleHQuZ2V0KCkpOwotICAgIEFTU0VSVCh3a05ldHdvcmtJbmZvTWFuYWdl
cik7CisgICAgV2ViTmV0d29ya0luZm9NYW5hZ2VyUHJveHkqIG5ldHdvcmtJbmZvTWFuYWdlciA9
IG1fd2ViQ29udGV4dC0+bmV0d29ya0luZm9NYW5hZ2VyUHJveHkoKTsKKyAgICBBU1NFUlQobmV0
d29ya0luZm9NYW5hZ2VyKTsKIAotICAgIFdLTmV0d29ya0luZm9NYW5hZ2VyU2V0UHJvdmlkZXIo
d2tOZXR3b3JrSW5mb01hbmFnZXIsIDApOworICAgIG5ldHdvcmtJbmZvTWFuYWdlci0+aW5pdGlh
bGl6ZVByb3ZpZGVyKDApOwogfQogCiBkb3VibGUgTmV0d29ya0luZm9Qcm92aWRlcjo6YmFuZHdp
ZHRoKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvTmV0
d29ya0luZm9Qcm92aWRlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9OZXR3b3Jr
SW5mb1Byb3ZpZGVyLmgKaW5kZXggNTc2MzExOTNmNzZmZjMxMTY4MjdmMmM4ZjYwYzI4OTZiMzVm
ZDJkNi4uMDMwYjRiN2E5ZjkwZWY0NjhmYmU0MmE3M2M3YjlkMGYyNjljOTcxNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9OZXR3b3JrSW5mb1Byb3ZpZGVyLmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9OZXR3b3JrSW5mb1Byb3ZpZGVyLmgKQEAg
LTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShORVRXT1JLX0lORk8pCiAKKyNpbmNsdWRlICJX
ZWJDb250ZXh0LmgiCiAjaW5jbHVkZSA8TmV0d29ya0luZm9DbGllbnQuaD4KICNpbmNsdWRlIDxO
ZXR3b3JrSW5mb1Byb3ZpZGVyRWZsLmg+CiAjaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KQEAg
LTM5LDcgKzQwLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBOZXR3b3JrSW5mb1Byb3Zp
ZGVyIDogcHVibGljIFJlZkNvdW50ZWQ8TmV0d29ya0luZm9Qcm92aWRlcj4sIHB1YmxpYyBXZWJD
b3JlOjpOZXR3b3JrSW5mb0NsaWVudCB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+TmV0d29ya0lu
Zm9Qcm92aWRlcigpOwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE5ldHdvcmtJbmZvUHJvdmlkZXI+
IGNyZWF0ZShXS0NvbnRleHRSZWYpOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPE5ldHdvcmtJbmZv
UHJvdmlkZXI+IGNyZWF0ZShXZWJDb250ZXh0Kik7CiAKICAgICAvLyBOZXR3b3JrSW5mb0NsaWVu
dCBpbnRlcmZhY2UuCiAgICAgdmlydHVhbCBkb3VibGUgYmFuZHdpZHRoKCkgY29uc3Q7CkBAIC00
OSw5ICs1MCw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc3RvcFVwZGF0aW5nKCk7CiAK
IHByaXZhdGU6Ci0gICAgTmV0d29ya0luZm9Qcm92aWRlcihXS0NvbnRleHRSZWYpOworICAgIE5l
dHdvcmtJbmZvUHJvdmlkZXIoV2ViQ29udGV4dCopOwogCi0gICAgV0tSZXRhaW5QdHI8V0tDb250
ZXh0UmVmPiBtX3drQ29udGV4dDsKKyAgICBSZWZQdHI8V2ViQ29udGV4dD4gbV93ZWJDb250ZXh0
OwogICAgIFdlYkNvcmU6Ok5ldHdvcmtJbmZvUHJvdmlkZXJFZmwgbV9wcm92aWRlcjsKIH07CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172987</attachid>
            <date>2012-11-08 03:21:48 -0800</date>
            <delta_ts>2012-11-08 23:37:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101564-20121108201951.patch</filename>
            <type>text/plain</type>
            <size>13902</size>
            <attacher name="Jinwoo Song">jinwoo7.song</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzODU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMDk1MWVmYmE3ZDU2YTc2
YWZkYWY5YzVjNTQzYzc5NWM3ODE2MmViOS4uZjlkZWU4MWQyMzdhZmYyYzJkMjdkNWU3YjQ0OTY1
NzAxOTBjMTRkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEyLTExLTA4ICBKaW53
b28gU29uZyAgPGppbndvbzcuc29uZ0BzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXVtXSzJd
IE1ha2UgY2xhc3NlcyBmb3IgY2xpZW50IHVzZSBXZWJDb250ZXh0IGluc3RlYWQgb2YgV0tDb250
ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE1
NjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFd2tD
b250ZXh0IGNsYXNzIGhhcyBiZWVuIHJlZmFjdG9yZWQgdG8gdXNlIFdlYkNvbnRleHQgaW5zdGVh
ZCBvZiBXS0NvbnRleHQgaW4gcjEzMzg0NCwKKyAgICAgICAgc28gdGhpcyBwYXRjaCBtYWtlIGNs
aWVudCBjbGFzc2VzIHVzZSBXZWJDb250ZXh0LgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9l
ZmwvZXdrX2NvbnRleHQuY3BwOgorICAgICAgICAoRXdrQ29udGV4dDo6RXdrQ29udGV4dCk6Cisg
ICAgICAgIChld2tfY29udGV4dF9jYWNoZV9tb2RlbF9nZXQpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9lZmwvQmF0dGVyeVByb3ZpZGVyLmNwcDoKKyAgICAgICAgKEJhdHRlcnlQcm92aWRlcjo6fkJh
dHRlcnlQcm92aWRlcik6CisgICAgICAgIChCYXR0ZXJ5UHJvdmlkZXI6OmNyZWF0ZSk6CisgICAg
ICAgIChCYXR0ZXJ5UHJvdmlkZXI6OkJhdHRlcnlQcm92aWRlcik6CisgICAgICAgIChCYXR0ZXJ5
UHJvdmlkZXI6OmRpZENoYW5nZUJhdHRlcnlTdGF0dXMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9l
ZmwvQmF0dGVyeVByb3ZpZGVyLmg6CisgICAgICAgIChCYXR0ZXJ5UHJvdmlkZXIpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9lZmwvQ29udGV4dEhpc3RvcnlDbGllbnRFZmwuY3BwOgorICAgICAgICAo
V2ViS2l0OjpDb250ZXh0SGlzdG9yeUNsaWVudEVmbDo6Q29udGV4dEhpc3RvcnlDbGllbnRFZmwp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvQ29udGV4dEhpc3RvcnlDbGllbnRFZmwuaDoKKyAg
ICAgICAgKFdlYktpdDo6Q29udGV4dEhpc3RvcnlDbGllbnRFZmw6OmNyZWF0ZSk6CisgICAgICAg
IChDb250ZXh0SGlzdG9yeUNsaWVudEVmbCk6CisgICAgICAgICogVUlQcm9jZXNzL2VmbC9OZXR3
b3JrSW5mb1Byb3ZpZGVyLmNwcDoKKyAgICAgICAgKE5ldHdvcmtJbmZvUHJvdmlkZXI6OmNyZWF0
ZSk6CisgICAgICAgIChOZXR3b3JrSW5mb1Byb3ZpZGVyOjpOZXR3b3JrSW5mb1Byb3ZpZGVyKToK
KyAgICAgICAgKE5ldHdvcmtJbmZvUHJvdmlkZXI6On5OZXR3b3JrSW5mb1Byb3ZpZGVyKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvZWZsL05ldHdvcmtJbmZvUHJvdmlkZXIuaDoKKyAgICAgICAgKE5l
dHdvcmtJbmZvUHJvdmlkZXIpOgorCiAyMDEyLTExLTA3ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5y
ZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCBy
MTMzODQxLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdr
X2NvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRl
eHQuY3BwCmluZGV4IDkxYTBjZWM3YzYwZjhlOWNhNzQwYmE2MjJjNGUyYWRjZDRmYWIyODkuLjYz
MWExYWRmNWI5NjE4M2U4ODBjNWI1ZThlNjJhNTUyYjVlMDg3YjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dC5jcHAKQEAgLTY2LDE0ICs2Niwx
NCBAQCBFd2tDb250ZXh0OjpFd2tDb250ZXh0KFdlYkNvbnRleHQqIGNvbnRleHQpCiAgICAgLCBt
X2RhdGFiYXNlTWFuYWdlcihFd2tfRGF0YWJhc2VfTWFuYWdlcjo6Y3JlYXRlKGNvbnRleHQpKQog
ICAgICwgbV9zdG9yYWdlTWFuYWdlcihFd2tfU3RvcmFnZV9NYW5hZ2VyOjpjcmVhdGUoY29udGV4
dCkpCiAjaWYgRU5BQkxFKEJBVFRFUllfU1RBVFVTKQotICAgICwgbV9iYXR0ZXJ5UHJvdmlkZXIo
QmF0dGVyeVByb3ZpZGVyOjpjcmVhdGUodG9BUEkoY29udGV4dCkpKQorICAgICwgbV9iYXR0ZXJ5
UHJvdmlkZXIoQmF0dGVyeVByb3ZpZGVyOjpjcmVhdGUobV9jb250ZXh0LmdldCgpKSkKICNlbmRp
ZgogI2lmIEVOQUJMRShORVRXT1JLX0lORk8pCi0gICAgLCBtX25ldHdvcmtJbmZvUHJvdmlkZXIo
TmV0d29ya0luZm9Qcm92aWRlcjo6Y3JlYXRlKHRvQVBJKGNvbnRleHQpKSkKKyAgICAsIG1fbmV0
d29ya0luZm9Qcm92aWRlcihOZXR3b3JrSW5mb1Byb3ZpZGVyOjpjcmVhdGUobV9jb250ZXh0Lmdl
dCgpKSkKICNlbmRpZgogICAgICwgbV9kb3dubG9hZE1hbmFnZXIoRG93bmxvYWRNYW5hZ2VyRWZs
OjpjcmVhdGUodGhpcykpCiAgICAgLCBtX3JlcXVlc3RNYW5hZ2VyQ2xpZW50KFJlcXVlc3RNYW5h
Z2VyQ2xpZW50RWZsOjpjcmVhdGUodGhpcykpCi0gICAgLCBtX2hpc3RvcnlDbGllbnQoQ29udGV4
dEhpc3RvcnlDbGllbnRFZmw6OmNyZWF0ZSh0b0FQSShjb250ZXh0KSkpCisgICAgLCBtX2hpc3Rv
cnlDbGllbnQoQ29udGV4dEhpc3RvcnlDbGllbnRFZmw6OmNyZWF0ZShtX2NvbnRleHQuZ2V0KCkp
KQogewogICAgIENvbnRleHRNYXA6OkFkZFJlc3VsdCByZXN1bHQgPSBjb250ZXh0TWFwKCkuYWRk
KGNvbnRleHQsIHRoaXMpOwogICAgIEFTU0VSVF9VTlVTRUQocmVzdWx0LCByZXN1bHQuaXNOZXdF
bnRyeSk7CkBAIC0zMDksNCArMzA5LDMgQEAgRXdrX0NhY2hlX01vZGVsIGV3a19jb250ZXh0X2Nh
Y2hlX21vZGVsX2dldChjb25zdCBFd2tfQ29udGV4dCogZXdrQ29udGV4dCkKIAogICAgIHJldHVy
biBpbXBsLT5jYWNoZU1vZGVsKCk7CiB9Ci0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9lZmwvQmF0dGVyeVByb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9lZmwvQmF0dGVyeVByb3ZpZGVyLmNwcAppbmRleCA4MTA3MTE1OTdjNTZlYWFkZGJhZGIzZTFh
MjAwZmJkZDQ1OWI2ZGNjLi4zY2ZhMTJhNGE5NTIwZDlkYjYwY2Y2MDAxYTE1MjkwYTEyOWQ2OWU4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL0JhdHRlcnlQcm92aWRl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9CYXR0ZXJ5UHJvdmlkZXIu
Y3BwCkBAIC0zMCw4ICszMCw5IEBACiAKICNpbmNsdWRlICJXS0FQSUNhc3QuaCIKICNpbmNsdWRl
ICJXS0JhdHRlcnlNYW5hZ2VyLmgiCi0jaW5jbHVkZSAiV0tCYXR0ZXJ5U3RhdHVzLmgiCi0jaW5j
bHVkZSAiV0tDb250ZXh0LmgiCisjaW5jbHVkZSAiV2ViQmF0dGVyeU1hbmFnZXJQcm94eS5oIgor
I2luY2x1ZGUgIldlYkJhdHRlcnlTdGF0dXMuaCIKKyNpbmNsdWRlICJXZWJDb250ZXh0LmgiCiAK
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKQEAgLTU1
LDI1ICs1NiwyMSBAQCBCYXR0ZXJ5UHJvdmlkZXI6On5CYXR0ZXJ5UHJvdmlkZXIoKQogewogICAg
IG1fcHJvdmlkZXIuc3RvcFVwZGF0aW5nKCk7CiAKLSAgICBXS0JhdHRlcnlNYW5hZ2VyUmVmIHdr
QmF0dGVyeU1hbmFnZXIgPSBXS0NvbnRleHRHZXRCYXR0ZXJ5TWFuYWdlcihtX3drQ29udGV4dC5n
ZXQoKSk7Ci0gICAgQVNTRVJUKHdrQmF0dGVyeU1hbmFnZXIpOwotCi0gICAgV0tCYXR0ZXJ5TWFu
YWdlclNldFByb3ZpZGVyKHdrQmF0dGVyeU1hbmFnZXIsIDApOworICAgIEFTU0VSVChtX2NvbnRl
eHQuZ2V0KCktPmJhdHRlcnlNYW5hZ2VyUHJveHkoKSk7CisgICAgbV9jb250ZXh0LmdldCgpLT5i
YXR0ZXJ5TWFuYWdlclByb3h5KCktPmluaXRpYWxpemVQcm92aWRlcigwKTsKIH0KIAotUGFzc1Jl
ZlB0cjxCYXR0ZXJ5UHJvdmlkZXI+IEJhdHRlcnlQcm92aWRlcjo6Y3JlYXRlKFdLQ29udGV4dFJl
ZiB3a0NvbnRleHQpCitQYXNzUmVmUHRyPEJhdHRlcnlQcm92aWRlcj4gQmF0dGVyeVByb3ZpZGVy
OjpjcmVhdGUoUGFzc1JlZlB0cjxXZWJDb250ZXh0PiBjb250ZXh0KQogewotICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgQmF0dGVyeVByb3ZpZGVyKHdrQ29udGV4dCkpOworICAgIEFTU0VSVChjb250
ZXh0KTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IEJhdHRlcnlQcm92aWRlcihjb250ZXh0KSk7
CiB9CiAKLUJhdHRlcnlQcm92aWRlcjo6QmF0dGVyeVByb3ZpZGVyKFdLQ29udGV4dFJlZiB3a0Nv
bnRleHQpCi0gICAgOiBtX3drQ29udGV4dCh3a0NvbnRleHQpCitCYXR0ZXJ5UHJvdmlkZXI6OkJh
dHRlcnlQcm92aWRlcihQYXNzUmVmUHRyPFdlYkNvbnRleHQ+IGNvbnRleHQpCisgICAgOiBtX2Nv
bnRleHQoY29udGV4dCkKICAgICAsIG1fcHJvdmlkZXIodGhpcykKIHsKLSAgICBBU1NFUlQobV93
a0NvbnRleHQpOwotCi0gICAgV0tCYXR0ZXJ5TWFuYWdlclJlZiB3a0JhdHRlcnlNYW5hZ2VyID0g
V0tDb250ZXh0R2V0QmF0dGVyeU1hbmFnZXIobV93a0NvbnRleHQuZ2V0KCkpOwotICAgIEFTU0VS
VCh3a0JhdHRlcnlNYW5hZ2VyKTsKKyAgICBBU1NFUlQoY29udGV4dCk7CiAKICAgICBXS0JhdHRl
cnlQcm92aWRlciB3a0JhdHRlcnlQcm92aWRlciA9IHsKICAgICAgICAga1dLQmF0dGVyeVByb3Zp
ZGVyQ3VycmVudFZlcnNpb24sCkBAIC04MSw3ICs3OCw5IEBAIEJhdHRlcnlQcm92aWRlcjo6QmF0
dGVyeVByb3ZpZGVyKFdLQ29udGV4dFJlZiB3a0NvbnRleHQpCiAgICAgICAgIHN0YXJ0VXBkYXRp
bmdDYWxsYmFjaywKICAgICAgICAgc3RvcFVwZGF0aW5nQ2FsbGJhY2sKICAgICB9OwotICAgIFdL
QmF0dGVyeU1hbmFnZXJTZXRQcm92aWRlcih3a0JhdHRlcnlNYW5hZ2VyLCAmd2tCYXR0ZXJ5UHJv
dmlkZXIpOworCisgICAgQVNTRVJUKG1fY29udGV4dC5nZXQoKS0+YmF0dGVyeU1hbmFnZXJQcm94
eSgpKTsKKyAgICBtX2NvbnRleHQuZ2V0KCktPmJhdHRlcnlNYW5hZ2VyUHJveHkoKS0+aW5pdGlh
bGl6ZVByb3ZpZGVyKCZ3a0JhdHRlcnlQcm92aWRlcik7CiB9CiAKIHZvaWQgQmF0dGVyeVByb3Zp
ZGVyOjpzdGFydFVwZGF0aW5nKCkKQEAgLTk2LDExICs5NSw5IEBAIHZvaWQgQmF0dGVyeVByb3Zp
ZGVyOjpzdG9wVXBkYXRpbmcoKQogCiB2b2lkIEJhdHRlcnlQcm92aWRlcjo6ZGlkQ2hhbmdlQmF0
dGVyeVN0YXR1cyhjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgUGFzc1JlZlB0cjxCYXR0
ZXJ5U3RhdHVzPiBzdGF0dXMpCiB7Ci0gICAgV0tCYXR0ZXJ5TWFuYWdlclJlZiB3a0JhdHRlcnlN
YW5hZ2VyID0gV0tDb250ZXh0R2V0QmF0dGVyeU1hbmFnZXIobV93a0NvbnRleHQuZ2V0KCkpOwot
ICAgIEFTU0VSVCh3a0JhdHRlcnlNYW5hZ2VyKTsKKyAgICBSZWZQdHI8V2ViQmF0dGVyeVN0YXR1
cz4gYmF0dGVyeVN0YXR1cyA9IFdlYkJhdHRlcnlTdGF0dXM6OmNyZWF0ZShzdGF0dXMtPmNoYXJn
aW5nKCksIHN0YXR1cy0+Y2hhcmdpbmdUaW1lKCksIHN0YXR1cy0+ZGlzY2hhcmdpbmdUaW1lKCks
IHN0YXR1cy0+bGV2ZWwoKSk7CiAKLSAgICBXS1JldGFpblB0cjxXS0JhdHRlcnlTdGF0dXNSZWY+
IHdrQmF0dGVyeVN0YXR1cyhBZG9wdFdLLCBXS0JhdHRlcnlTdGF0dXNDcmVhdGUoc3RhdHVzLT5j
aGFyZ2luZygpLCBzdGF0dXMtPmNoYXJnaW5nVGltZSgpLCBzdGF0dXMtPmRpc2NoYXJnaW5nVGlt
ZSgpLCBzdGF0dXMtPmxldmVsKCkpKTsKLSAgICBXS0JhdHRlcnlNYW5hZ2VyUHJvdmlkZXJEaWRD
aGFuZ2VCYXR0ZXJ5U3RhdHVzKHdrQmF0dGVyeU1hbmFnZXIsIHRvQVBJKGV2ZW50VHlwZS5pbXBs
KCkpLCB3a0JhdHRlcnlTdGF0dXMuZ2V0KCkpOworICAgIEFTU0VSVChtX2NvbnRleHQuZ2V0KCkt
PmJhdHRlcnlNYW5hZ2VyUHJveHkoKSk7CisgICAgbV9jb250ZXh0LmdldCgpLT5iYXR0ZXJ5TWFu
YWdlclByb3h5KCktPnByb3ZpZGVyRGlkQ2hhbmdlQmF0dGVyeVN0YXR1cyhldmVudFR5cGUsIGJh
dHRlcnlTdGF0dXMuZ2V0KCkpOwogfQotCiAjZW5kaWYgLy8gRU5BQkxFKEJBVFRFUllfU1RBVFVT
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9CYXR0ZXJ5UHJvdmlk
ZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvQmF0dGVyeVByb3ZpZGVyLmgKaW5k
ZXggYjgyOWQ3ZWQ1YmM2YWJmNDE4MGE0MWUxYzk2Mzc0OWEyMzNiODkzZi4uNzZjMDVmZjVjYTI4
YTk0MTZkYThiOTM1ZjRlNmQ3MzU3Nzc3MDg5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2VmbC9CYXR0ZXJ5UHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvZWZsL0JhdHRlcnlQcm92aWRlci5oCkBAIC0zMSw3ICszMSw3IEBACiAjaW5jbHVkZSAi
QmF0dGVyeVByb3ZpZGVyRWZsLmgiCiAjaW5jbHVkZSAiQmF0dGVyeVByb3ZpZGVyRWZsQ2xpZW50
LmgiCiAjaW5jbHVkZSAiQmF0dGVyeVN0YXR1cy5oIgotI2luY2x1ZGUgIldLUmV0YWluUHRyLmgi
CisjaW5jbHVkZSAiV2ViQ29udGV4dC5oIgogI2luY2x1ZGUgPFdlYktpdDIvV0tCYXNlLmg+CiAj
aW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KIApAQCAtNDAsMTggKzQwLDE4IEBAIG5hbWVzcGFj
ZSBXZWJLaXQgewogY2xhc3MgQmF0dGVyeVByb3ZpZGVyIDogcHVibGljIFJlZkNvdW50ZWQ8QmF0
dGVyeVByb3ZpZGVyPiwgcHVibGljIFdlYkNvcmU6OkJhdHRlcnlQcm92aWRlckVmbENsaWVudCB7
CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+QmF0dGVyeVByb3ZpZGVyKCk7Ci0gICAgc3RhdGljIFBh
c3NSZWZQdHI8QmF0dGVyeVByb3ZpZGVyPiBjcmVhdGUoV0tDb250ZXh0UmVmKTsKKyAgICBzdGF0
aWMgUGFzc1JlZlB0cjxCYXR0ZXJ5UHJvdmlkZXI+IGNyZWF0ZShQYXNzUmVmUHRyPFdlYkNvbnRl
eHQ+KTsKIAogICAgIHZvaWQgc3RhcnRVcGRhdGluZygpOwogICAgIHZvaWQgc3RvcFVwZGF0aW5n
KCk7CiAKIHByaXZhdGU6Ci0gICAgQmF0dGVyeVByb3ZpZGVyKFdLQ29udGV4dFJlZik7CisgICAg
QmF0dGVyeVByb3ZpZGVyKFBhc3NSZWZQdHI8V2ViQ29udGV4dD4pOwogCiAgICAgLy8gQmF0dGVy
eVByb3ZpZGVyRWZsQ2xpZW50IGludGVyZmFjZS4KICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdl
QmF0dGVyeVN0YXR1cyhjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgUGFzc1JlZlB0cjxX
ZWJDb3JlOjpCYXR0ZXJ5U3RhdHVzPik7CiAKLSAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+
IG1fd2tDb250ZXh0OworICAgIFJlZlB0cjxXZWJDb250ZXh0PiBtX2NvbnRleHQ7CiAgICAgV2Vi
Q29yZTo6QmF0dGVyeVByb3ZpZGVyRWZsIG1fcHJvdmlkZXI7CiB9OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL0NvbnRleHRIaXN0b3J5Q2xpZW50RWZsLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvQ29udGV4dEhpc3RvcnlDbGllbnRFZmwuY3Bw
CmluZGV4IGMwMDhhNjM5NTNhOWUyNTUzYTcwZGE2NjkyMzU0OWM4NzYzOGEyNzguLjUzZGM2ODIz
OTM3MGMyOWY4ZmEyODJhOWRiNTQ0M2FiMWVkZThiYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9lZmwvQ29udGV4dEhpc3RvcnlDbGllbnRFZmwuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvQ29udGV4dEhpc3RvcnlDbGllbnRFZmwuY3BwCkBAIC0x
MDYsNyArMTA2LDcgQEAgdm9pZCBDb250ZXh0SGlzdG9yeUNsaWVudEVmbDo6cG9wdWxhdGVWaXNp
dGVkTGlua3MoV0tDb250ZXh0UmVmLCBjb25zdCB2b2lkKiBjbGkKICAgICBoaXN0b3J5Q2xpZW50
LT5tX3BvcHVsYXRlVmlzaXRlZExpbmtzKGhpc3RvcnlDbGllbnQtPm1fdXNlckRhdGEpOwogfQog
Ci1Db250ZXh0SGlzdG9yeUNsaWVudEVmbDo6Q29udGV4dEhpc3RvcnlDbGllbnRFZmwoV0tDb250
ZXh0UmVmIGNvbnRleHQpCitDb250ZXh0SGlzdG9yeUNsaWVudEVmbDo6Q29udGV4dEhpc3RvcnlD
bGllbnRFZmwoUGFzc1JlZlB0cjxXZWJDb250ZXh0PiBjb250ZXh0KQogICAgIDogbV91c2VyRGF0
YSgwKQogICAgICwgbV9uYXZpZ2F0ZSgwKQogICAgICwgbV9jbGllbnRSZWRpcmVjdCgwKQpAQCAt
MTI4LDcgKzEyOCw3IEBAIENvbnRleHRIaXN0b3J5Q2xpZW50RWZsOjpDb250ZXh0SGlzdG9yeUNs
aWVudEVmbChXS0NvbnRleHRSZWYgY29udGV4dCkKICAgICB3a0hpc3RvcnlDbGllbnQuZGlkVXBk
YXRlSGlzdG9yeVRpdGxlID0gZGlkVXBkYXRlSGlzdG9yeVRpdGxlOwogICAgIHdrSGlzdG9yeUNs
aWVudC5wb3B1bGF0ZVZpc2l0ZWRMaW5rcyA9IHBvcHVsYXRlVmlzaXRlZExpbmtzOwogCi0gICAg
V0tDb250ZXh0U2V0SGlzdG9yeUNsaWVudChjb250ZXh0LCAmd2tIaXN0b3J5Q2xpZW50KTsKKyAg
ICBjb250ZXh0LT5pbml0aWFsaXplSGlzdG9yeUNsaWVudCgmd2tIaXN0b3J5Q2xpZW50KTsKIH0K
IAogdm9pZCBDb250ZXh0SGlzdG9yeUNsaWVudEVmbDo6c2V0Q2FsbGJhY2tzKEV3a19IaXN0b3J5
X05hdmlnYXRpb25fQ2IgbmF2aWdhdGUsIEV3a19IaXN0b3J5X0NsaWVudF9SZWRpcmVjdGlvbl9D
YiBjbGllbnRSZWRpcmVjdCwgRXdrX0hpc3RvcnlfU2VydmVyX1JlZGlyZWN0aW9uX0NiIHNlcnZl
clJlZGlyZWN0LCBFd2tfSGlzdG9yeV9UaXRsZV9VcGRhdGVfQ2IgdGl0bGVVcGRhdGUsIEV3a19I
aXN0b3J5X1BvcHVsYXRlX1Zpc2l0ZWRfTGlua3NfQ2IgcG9wdWxhdGVWaXNpdGVkTGlua3MsIHZv
aWQqIGRhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL0NvbnRl
eHRIaXN0b3J5Q2xpZW50RWZsLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL0NvbnRl
eHRIaXN0b3J5Q2xpZW50RWZsLmgKaW5kZXggMzIwMzI1NjVhMzk4NDcwMmZkYjhhNGFlMDQxODFl
YTEyZWQxY2EzNS4uYjY3MDI3MWJlZWJhNWNkMjdiODBmYjcwM2M2MDAyOTFkZjJmY2Y4NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9Db250ZXh0SGlzdG9yeUNsaWVu
dEVmbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvQ29udGV4dEhpc3RvcnlD
bGllbnRFZmwuaApAQCAtMjYsNiArMjYsNyBAQAogI2lmbmRlZiBDb250ZXh0SGlzdG9yeUNsaWVu
dEVmbF9oCiAjZGVmaW5lIENvbnRleHRIaXN0b3J5Q2xpZW50RWZsX2gKIAorI2luY2x1ZGUgIldl
YkNvbnRleHQuaCIKICNpbmNsdWRlICJld2tfY29udGV4dC5oIgogI2luY2x1ZGUgPFdlYktpdDIv
V0tCYXNlLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KQEAgLTM0LDcgKzM1LDcgQEAg
bmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIENvbnRleHRIaXN0b3J5Q2xpZW50RWZsIHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxDb250ZXh0SGlzdG9yeUNsaWVudEVmbD4gY3Jl
YXRlKFdLQ29udGV4dFJlZiBjb250ZXh0KQorICAgIHN0YXRpYyBQYXNzT3duUHRyPENvbnRleHRI
aXN0b3J5Q2xpZW50RWZsPiBjcmVhdGUoUGFzc1JlZlB0cjxXZWJDb250ZXh0PiBjb250ZXh0KQog
ICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBDb250ZXh0SGlzdG9yeUNsaWVudEVm
bChjb250ZXh0KSk7CiAgICAgfQpAQCAtNDIsNyArNDMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBz
ZXRDYWxsYmFja3MoRXdrX0hpc3RvcnlfTmF2aWdhdGlvbl9DYiwgRXdrX0hpc3RvcnlfQ2xpZW50
X1JlZGlyZWN0aW9uX0NiLCBFd2tfSGlzdG9yeV9TZXJ2ZXJfUmVkaXJlY3Rpb25fQ2IsIEV3a19I
aXN0b3J5X1RpdGxlX1VwZGF0ZV9DYiwgRXdrX0hpc3RvcnlfUG9wdWxhdGVfVmlzaXRlZF9MaW5r
c19DYiwgdm9pZCopOwogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IENvbnRleHRIaXN0b3J5Q2xp
ZW50RWZsKFdLQ29udGV4dFJlZik7CisgICAgZXhwbGljaXQgQ29udGV4dEhpc3RvcnlDbGllbnRF
ZmwoUGFzc1JlZlB0cjxXZWJDb250ZXh0Pik7CiAKICAgICBzdGF0aWMgdm9pZCBkaWROYXZpZ2F0
ZVdpdGhOYXZpZ2F0aW9uRGF0YShXS0NvbnRleHRSZWYsIFdLUGFnZVJlZiwgV0tOYXZpZ2F0aW9u
RGF0YVJlZiwgV0tGcmFtZVJlZiwgY29uc3Qgdm9pZCopOwogICAgIHN0YXRpYyB2b2lkIGRpZFBl
cmZvcm1DbGllbnRSZWRpcmVjdChXS0NvbnRleHRSZWYsIFdLUGFnZVJlZiwgV0tVUkxSZWYgc291
cmNlVVJMLCBXS1VSTFJlZiwgV0tGcmFtZVJlZiwgY29uc3Qgdm9pZCopOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9OZXR3b3JrSW5mb1Byb3ZpZGVyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvTmV0d29ya0luZm9Qcm92aWRlci5jcHAKaW5kZXgg
ZjU0NTZmOWI4NjljMzA4Y2ZiM2IwNThiNzA1OTdlZTNlMzk3ODJjNy4uYjM5NjgzYzkyZDYzN2Y4
NTQyYzY5NGJiM2FkZjFlMmQ5ODY3MWVlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2VmbC9OZXR3b3JrSW5mb1Byb3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvZWZsL05ldHdvcmtJbmZvUHJvdmlkZXIuY3BwCkBAIC0yOCw4ICsyOCw5IEBACiAK
ICNpZiBFTkFCTEUoTkVUV09SS19JTkZPKQogCi0jaW5jbHVkZSAiV0tDb250ZXh0LmgiCiAjaW5j
bHVkZSAiV0tOZXR3b3JrSW5mb01hbmFnZXIuaCIKKyNpbmNsdWRlICJXZWJDb250ZXh0LmgiCisj
aW5jbHVkZSAiV2ViTmV0d29ya0luZm9NYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlIDxOb3RJbXBs
ZW1lbnRlZC5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwpAQCAtNTksMTggKzYwLDE1IEBA
IHN0YXRpYyBib29sIGlzTWV0ZXJlZENhbGxiYWNrKFdLTmV0d29ya0luZm9NYW5hZ2VyUmVmLCBj
b25zdCB2b2lkKiBjbGllbnRJbmZvKQogICAgIHJldHVybiB0b05ldHdvcmtJbmZvUHJvdmlkZXIo
Y2xpZW50SW5mbyktPm1ldGVyZWQoKTsKIH0KIAotUGFzc1JlZlB0cjxOZXR3b3JrSW5mb1Byb3Zp
ZGVyPiBOZXR3b3JrSW5mb1Byb3ZpZGVyOjpjcmVhdGUoV0tDb250ZXh0UmVmIHdrQ29udGV4dCkK
K1Bhc3NSZWZQdHI8TmV0d29ya0luZm9Qcm92aWRlcj4gTmV0d29ya0luZm9Qcm92aWRlcjo6Y3Jl
YXRlKFBhc3NSZWZQdHI8V2ViQ29udGV4dD4gY29udGV4dCkKIHsKLSAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IE5ldHdvcmtJbmZvUHJvdmlkZXIod2tDb250ZXh0KSk7CisgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBOZXR3b3JrSW5mb1Byb3ZpZGVyKGNvbnRleHQpKTsKIH0KIAotTmV0d29ya0luZm9Q
cm92aWRlcjo6TmV0d29ya0luZm9Qcm92aWRlcihXS0NvbnRleHRSZWYgd2tDb250ZXh0KQotICAg
IDogbV93a0NvbnRleHQod2tDb250ZXh0KQorTmV0d29ya0luZm9Qcm92aWRlcjo6TmV0d29ya0lu
Zm9Qcm92aWRlcihQYXNzUmVmUHRyPFdlYkNvbnRleHQ+IGNvbnRleHQpCisgICAgOiBtX2NvbnRl
eHQoY29udGV4dCkKIHsKLSAgICBBU1NFUlQod2tDb250ZXh0KTsKLQotICAgIFdLTmV0d29ya0lu
Zm9NYW5hZ2VyUmVmIHdrTmV0d29ya0luZm9NYW5hZ2VyID0gV0tDb250ZXh0R2V0TmV0d29ya0lu
Zm9NYW5hZ2VyKG1fd2tDb250ZXh0LmdldCgpKTsKLSAgICBBU1NFUlQod2tOZXR3b3JrSW5mb01h
bmFnZXIpOworICAgIEFTU0VSVChjb250ZXh0KTsKIAogICAgIFdLTmV0d29ya0luZm9Qcm92aWRl
ciB3a05ldHdvcmtJbmZvUHJvdmlkZXIgPSB7CiAgICAgICAgIGtXS05ldHdvcmtJbmZvUHJvdmlk
ZXJDdXJyZW50VmVyc2lvbiwKQEAgLTgwLDE1ICs3OCwxNSBAQCBOZXR3b3JrSW5mb1Byb3ZpZGVy
OjpOZXR3b3JrSW5mb1Byb3ZpZGVyKFdLQ29udGV4dFJlZiB3a0NvbnRleHQpCiAgICAgICAgIGdl
dEJhbmR3aWR0aENhbGxiYWNrLAogICAgICAgICBpc01ldGVyZWRDYWxsYmFjawogICAgIH07Ci0g
ICAgV0tOZXR3b3JrSW5mb01hbmFnZXJTZXRQcm92aWRlcih3a05ldHdvcmtJbmZvTWFuYWdlciwg
JndrTmV0d29ya0luZm9Qcm92aWRlcik7CisKKyAgICBBU1NFUlQobV9jb250ZXh0LmdldCgpLT5u
ZXR3b3JrSW5mb01hbmFnZXJQcm94eSgpKTsKKyAgICBtX2NvbnRleHQuZ2V0KCktPm5ldHdvcmtJ
bmZvTWFuYWdlclByb3h5KCktPmluaXRpYWxpemVQcm92aWRlcigmd2tOZXR3b3JrSW5mb1Byb3Zp
ZGVyKTsKIH0KIAogTmV0d29ya0luZm9Qcm92aWRlcjo6fk5ldHdvcmtJbmZvUHJvdmlkZXIoKQog
ewotICAgIFdLTmV0d29ya0luZm9NYW5hZ2VyUmVmIHdrTmV0d29ya0luZm9NYW5hZ2VyID0gV0tD
b250ZXh0R2V0TmV0d29ya0luZm9NYW5hZ2VyKG1fd2tDb250ZXh0LmdldCgpKTsKLSAgICBBU1NF
UlQod2tOZXR3b3JrSW5mb01hbmFnZXIpOwotCi0gICAgV0tOZXR3b3JrSW5mb01hbmFnZXJTZXRQ
cm92aWRlcih3a05ldHdvcmtJbmZvTWFuYWdlciwgMCk7CisgICAgQVNTRVJUKG1fY29udGV4dC5n
ZXQoKS0+bmV0d29ya0luZm9NYW5hZ2VyUHJveHkoKSk7CisgICAgbV9jb250ZXh0LmdldCgpLT5u
ZXR3b3JrSW5mb01hbmFnZXJQcm94eSgpLT5pbml0aWFsaXplUHJvdmlkZXIoMCk7CiB9CiAKIGRv
dWJsZSBOZXR3b3JrSW5mb1Byb3ZpZGVyOjpiYW5kd2lkdGgoKSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9OZXR3b3JrSW5mb1Byb3ZpZGVyLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL05ldHdvcmtJbmZvUHJvdmlkZXIuaAppbmRleCA1NzYz
MTE5M2Y3NmZmMzExNjgyN2YyYzhmNjBjMjg5NmIzNWZkMmQ2Li4wMGU4MGU3ZmMzYWNjZmVlZWQ2
ODA5Y2FiNmViM2IxNWE3MmY3ZmMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvZWZsL05ldHdvcmtJbmZvUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvZWZsL05ldHdvcmtJbmZvUHJvdmlkZXIuaApAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5B
QkxFKE5FVFdPUktfSU5GTykKIAorI2luY2x1ZGUgIldlYkNvbnRleHQuaCIKICNpbmNsdWRlIDxO
ZXR3b3JrSW5mb0NsaWVudC5oPgogI2luY2x1ZGUgPE5ldHdvcmtJbmZvUHJvdmlkZXJFZmwuaD4K
ICNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgpAQCAtMzksNyArNDAsNyBAQCBuYW1lc3BhY2Ug
V2ViS2l0IHsKIGNsYXNzIE5ldHdvcmtJbmZvUHJvdmlkZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxO
ZXR3b3JrSW5mb1Byb3ZpZGVyPiwgcHVibGljIFdlYkNvcmU6Ok5ldHdvcmtJbmZvQ2xpZW50IHsK
IHB1YmxpYzoKICAgICB2aXJ0dWFsIH5OZXR3b3JrSW5mb1Byb3ZpZGVyKCk7Ci0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8TmV0d29ya0luZm9Qcm92aWRlcj4gY3JlYXRlKFdLQ29udGV4dFJlZik7Cisg
ICAgc3RhdGljIFBhc3NSZWZQdHI8TmV0d29ya0luZm9Qcm92aWRlcj4gY3JlYXRlKFBhc3NSZWZQ
dHI8V2ViQ29udGV4dD4pOwogCiAgICAgLy8gTmV0d29ya0luZm9DbGllbnQgaW50ZXJmYWNlLgog
ICAgIHZpcnR1YWwgZG91YmxlIGJhbmR3aWR0aCgpIGNvbnN0OwpAQCAtNDksOSArNTAsOSBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHN0b3BVcGRhdGluZygpOwogCiBwcml2YXRlOgotICAg
IE5ldHdvcmtJbmZvUHJvdmlkZXIoV0tDb250ZXh0UmVmKTsKKyAgICBOZXR3b3JrSW5mb1Byb3Zp
ZGVyKFBhc3NSZWZQdHI8V2ViQ29udGV4dD4pOwogCi0gICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0
UmVmPiBtX3drQ29udGV4dDsKKyAgICBSZWZQdHI8V2ViQ29udGV4dD4gbV9jb250ZXh0OwogICAg
IFdlYkNvcmU6Ok5ldHdvcmtJbmZvUHJvdmlkZXJFZmwgbV9wcm92aWRlcjsKIH07CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173217</attachid>
            <date>2012-11-08 23:38:04 -0800</date>
            <delta_ts>2012-11-09 03:25:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101564-20121109163611.patch</filename>
            <type>text/plain</type>
            <size>13841</size>
            <attacher name="Jinwoo Song">jinwoo7.song</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0MDA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNmJlNzUzMTg2OWJhNTY3
YmU1ODBiZTRkZDdjMGU1ZGViMWMzODViZS4uZGI3YTY4NWZlODIzMzcyOTQzOTk1Yjc4Y2RmNmE2
NGJiMzAzNTljNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEyLTExLTA4ICBKaW53
b28gU29uZyAgPGppbndvbzcuc29uZ0BzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXVtXSzJd
IE1ha2UgY2xhc3NlcyBmb3IgY2xpZW50IHVzZSBXZWJDb250ZXh0IGluc3RlYWQgb2YgV0tDb250
ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE1
NjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFd2tD
b250ZXh0IGNsYXNzIGhhcyBiZWVuIHJlZmFjdG9yZWQgdG8gdXNlIFdlYkNvbnRleHQgaW5zdGVh
ZCBvZiBXS0NvbnRleHQgaW4gcjEzMzg0NCwKKyAgICAgICAgc28gdGhpcyBwYXRjaCBtYWtlcyBj
bGllbnQgY2xhc3NlcyB1c2UgV2ViQ29udGV4dAorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9l
ZmwvZXdrX2NvbnRleHQuY3BwOgorICAgICAgICAoRXdrQ29udGV4dDo6RXdrQ29udGV4dCk6Cisg
ICAgICAgICogVUlQcm9jZXNzL2VmbC9CYXR0ZXJ5UHJvdmlkZXIuY3BwOgorICAgICAgICAoQmF0
dGVyeVByb3ZpZGVyOjp+QmF0dGVyeVByb3ZpZGVyKToKKyAgICAgICAgKEJhdHRlcnlQcm92aWRl
cjo6Y3JlYXRlKToKKyAgICAgICAgKEJhdHRlcnlQcm92aWRlcjo6QmF0dGVyeVByb3ZpZGVyKToK
KyAgICAgICAgKEJhdHRlcnlQcm92aWRlcjo6ZGlkQ2hhbmdlQmF0dGVyeVN0YXR1cyk6CisgICAg
ICAgICogVUlQcm9jZXNzL2VmbC9CYXR0ZXJ5UHJvdmlkZXIuaDoKKyAgICAgICAgKEJhdHRlcnlQ
cm92aWRlcik6CisgICAgICAgICogVUlQcm9jZXNzL2VmbC9Db250ZXh0SGlzdG9yeUNsaWVudEVm
bC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNvbnRleHRIaXN0b3J5Q2xpZW50RWZsOjpDb250ZXh0
SGlzdG9yeUNsaWVudEVmbCk6CisgICAgICAgICogVUlQcm9jZXNzL2VmbC9Db250ZXh0SGlzdG9y
eUNsaWVudEVmbC5oOgorICAgICAgICAoV2ViS2l0OjpDb250ZXh0SGlzdG9yeUNsaWVudEVmbDo6
Y3JlYXRlKToKKyAgICAgICAgKENvbnRleHRIaXN0b3J5Q2xpZW50RWZsKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvZWZsL05ldHdvcmtJbmZvUHJvdmlkZXIuY3BwOgorICAgICAgICAoTmV0d29ya0lu
Zm9Qcm92aWRlcjo6Y3JlYXRlKToKKyAgICAgICAgKE5ldHdvcmtJbmZvUHJvdmlkZXI6Ok5ldHdv
cmtJbmZvUHJvdmlkZXIpOgorICAgICAgICAoTmV0d29ya0luZm9Qcm92aWRlcjo6fk5ldHdvcmtJ
bmZvUHJvdmlkZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvTmV0d29ya0luZm9Qcm92aWRl
ci5oOgorICAgICAgICAoTmV0d29ya0luZm9Qcm92aWRlcik6CisKIDIwMTItMTEtMDggIEh1YW5n
IERvbmdzdW5nICA8bHV4dGVsbGFAY29tcGFueTEwMC5uZXQ+CiAKICAgICAgICAgQ29vcmRpbmF0
ZWQgR3JhcGhpY3M6IERvbid0IHNlbmQgdGhlIG1lc3NhZ2VzIGZvciByZWxlYXNpbmcgcmVzb3Vy
Y2VzIGR1cmluZyBwdXJnaW5nLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvZXdrX2NvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9l
ZmwvZXdrX2NvbnRleHQuY3BwCmluZGV4IGM2OGU0OGM0MzI5NDBhMzk4MzgzN2JmMjU1NWJkMzgx
NzQ1ZDE5ODcuLjEzNTM0OTg4YTBjNWVmNTU5MTFjOTllZDg2NTY3ZDIxMGQ3NDg0MmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dC5jcHAKQEAg
LTY2LDE0ICs2NiwxNCBAQCBFd2tDb250ZXh0OjpFd2tDb250ZXh0KFBhc3NSZWZQdHI8V2ViQ29u
dGV4dD4gY29udGV4dCkKICAgICAsIG1fZGF0YWJhc2VNYW5hZ2VyKEV3a19EYXRhYmFzZV9NYW5h
Z2VyOjpjcmVhdGUobV9jb250ZXh0KSkKICAgICAsIG1fc3RvcmFnZU1hbmFnZXIoRXdrX1N0b3Jh
Z2VfTWFuYWdlcjo6Y3JlYXRlKG1fY29udGV4dCkpCiAjaWYgRU5BQkxFKEJBVFRFUllfU1RBVFVT
KQotICAgICwgbV9iYXR0ZXJ5UHJvdmlkZXIoQmF0dGVyeVByb3ZpZGVyOjpjcmVhdGUodG9BUEko
bV9jb250ZXh0LmdldCgpKSkpIC8vIEZJWE1FOiBBbGwgYmVsb3cgc2hvdWxkIGJlIGluaXRpYWxp
emVkIGNvbnNpc3RlbnRseS4KKyAgICAsIG1fYmF0dGVyeVByb3ZpZGVyKEJhdHRlcnlQcm92aWRl
cjo6Y3JlYXRlKG1fY29udGV4dCkpCiAjZW5kaWYKICNpZiBFTkFCTEUoTkVUV09SS19JTkZPKQot
ICAgICwgbV9uZXR3b3JrSW5mb1Byb3ZpZGVyKE5ldHdvcmtJbmZvUHJvdmlkZXI6OmNyZWF0ZSh0
b0FQSShtX2NvbnRleHQuZ2V0KCkpKSkKKyAgICAsIG1fbmV0d29ya0luZm9Qcm92aWRlcihOZXR3
b3JrSW5mb1Byb3ZpZGVyOjpjcmVhdGUobV9jb250ZXh0KSkKICNlbmRpZgogICAgICwgbV9kb3du
bG9hZE1hbmFnZXIoRG93bmxvYWRNYW5hZ2VyRWZsOjpjcmVhdGUodGhpcykpCiAgICAgLCBtX3Jl
cXVlc3RNYW5hZ2VyQ2xpZW50KFJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsOjpjcmVhdGUodGhpcykp
Ci0gICAgLCBtX2hpc3RvcnlDbGllbnQoQ29udGV4dEhpc3RvcnlDbGllbnRFZmw6OmNyZWF0ZSh0
b0FQSShtX2NvbnRleHQuZ2V0KCkpKSkKKyAgICAsIG1faGlzdG9yeUNsaWVudChDb250ZXh0SGlz
dG9yeUNsaWVudEVmbDo6Y3JlYXRlKG1fY29udGV4dCkpCiB7CiAgICAgQ29udGV4dE1hcDo6QWRk
UmVzdWx0IHJlc3VsdCA9IGNvbnRleHRNYXAoKS5hZGQobV9jb250ZXh0LmdldCgpLCB0aGlzKTsK
ICAgICBBU1NFUlRfVU5VU0VEKHJlc3VsdCwgcmVzdWx0LmlzTmV3RW50cnkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9CYXR0ZXJ5UHJvdmlkZXIuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9CYXR0ZXJ5UHJvdmlkZXIuY3BwCmluZGV4IDgxMDcx
MTU5N2M1NmVhYWRkYmFkYjNlMWEyMDBmYmRkNDU5YjZkY2MuLjAwZjQ3MGQ3YzNkNjc2YjA0OWY2
YzcyMWRjNTBlYjk3NjQ5Yjk3YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9lZmwvQmF0dGVyeVByb3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
ZWZsL0JhdHRlcnlQcm92aWRlci5jcHAKQEAgLTMwLDggKzMwLDkgQEAKIAogI2luY2x1ZGUgIldL
QVBJQ2FzdC5oIgogI2luY2x1ZGUgIldLQmF0dGVyeU1hbmFnZXIuaCIKLSNpbmNsdWRlICJXS0Jh
dHRlcnlTdGF0dXMuaCIKLSNpbmNsdWRlICJXS0NvbnRleHQuaCIKKyNpbmNsdWRlICJXZWJCYXR0
ZXJ5TWFuYWdlclByb3h5LmgiCisjaW5jbHVkZSAiV2ViQmF0dGVyeVN0YXR1cy5oIgorI2luY2x1
ZGUgIldlYkNvbnRleHQuaCIKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB1c2luZyBuYW1l
c3BhY2UgV2ViS2l0OwpAQCAtNTUsMjUgKzU2LDIxIEBAIEJhdHRlcnlQcm92aWRlcjo6fkJhdHRl
cnlQcm92aWRlcigpCiB7CiAgICAgbV9wcm92aWRlci5zdG9wVXBkYXRpbmcoKTsKIAotICAgIFdL
QmF0dGVyeU1hbmFnZXJSZWYgd2tCYXR0ZXJ5TWFuYWdlciA9IFdLQ29udGV4dEdldEJhdHRlcnlN
YW5hZ2VyKG1fd2tDb250ZXh0LmdldCgpKTsKLSAgICBBU1NFUlQod2tCYXR0ZXJ5TWFuYWdlcik7
Ci0KLSAgICBXS0JhdHRlcnlNYW5hZ2VyU2V0UHJvdmlkZXIod2tCYXR0ZXJ5TWFuYWdlciwgMCk7
CisgICAgQVNTRVJUKG1fY29udGV4dC0+YmF0dGVyeU1hbmFnZXJQcm94eSgpKTsKKyAgICBtX2Nv
bnRleHQtPmJhdHRlcnlNYW5hZ2VyUHJveHkoKS0+aW5pdGlhbGl6ZVByb3ZpZGVyKDApOwogfQog
Ci1QYXNzUmVmUHRyPEJhdHRlcnlQcm92aWRlcj4gQmF0dGVyeVByb3ZpZGVyOjpjcmVhdGUoV0tD
b250ZXh0UmVmIHdrQ29udGV4dCkKK1Bhc3NSZWZQdHI8QmF0dGVyeVByb3ZpZGVyPiBCYXR0ZXJ5
UHJvdmlkZXI6OmNyZWF0ZShQYXNzUmVmUHRyPFdlYkNvbnRleHQ+IGNvbnRleHQpCiB7Ci0gICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBCYXR0ZXJ5UHJvdmlkZXIod2tDb250ZXh0KSk7CisgICAgQVNT
RVJUKGNvbnRleHQpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgQmF0dGVyeVByb3ZpZGVyKGNv
bnRleHQpKTsKIH0KIAotQmF0dGVyeVByb3ZpZGVyOjpCYXR0ZXJ5UHJvdmlkZXIoV0tDb250ZXh0
UmVmIHdrQ29udGV4dCkKLSAgICA6IG1fd2tDb250ZXh0KHdrQ29udGV4dCkKK0JhdHRlcnlQcm92
aWRlcjo6QmF0dGVyeVByb3ZpZGVyKFBhc3NSZWZQdHI8V2ViQ29udGV4dD4gY29udGV4dCkKKyAg
ICA6IG1fY29udGV4dChjb250ZXh0KQogICAgICwgbV9wcm92aWRlcih0aGlzKQogewotICAgIEFT
U0VSVChtX3drQ29udGV4dCk7Ci0KLSAgICBXS0JhdHRlcnlNYW5hZ2VyUmVmIHdrQmF0dGVyeU1h
bmFnZXIgPSBXS0NvbnRleHRHZXRCYXR0ZXJ5TWFuYWdlcihtX3drQ29udGV4dC5nZXQoKSk7Ci0g
ICAgQVNTRVJUKHdrQmF0dGVyeU1hbmFnZXIpOworICAgIEFTU0VSVChjb250ZXh0KTsKIAogICAg
IFdLQmF0dGVyeVByb3ZpZGVyIHdrQmF0dGVyeVByb3ZpZGVyID0gewogICAgICAgICBrV0tCYXR0
ZXJ5UHJvdmlkZXJDdXJyZW50VmVyc2lvbiwKQEAgLTgxLDcgKzc4LDkgQEAgQmF0dGVyeVByb3Zp
ZGVyOjpCYXR0ZXJ5UHJvdmlkZXIoV0tDb250ZXh0UmVmIHdrQ29udGV4dCkKICAgICAgICAgc3Rh
cnRVcGRhdGluZ0NhbGxiYWNrLAogICAgICAgICBzdG9wVXBkYXRpbmdDYWxsYmFjawogICAgIH07
Ci0gICAgV0tCYXR0ZXJ5TWFuYWdlclNldFByb3ZpZGVyKHdrQmF0dGVyeU1hbmFnZXIsICZ3a0Jh
dHRlcnlQcm92aWRlcik7CisKKyAgICBBU1NFUlQobV9jb250ZXh0LT5iYXR0ZXJ5TWFuYWdlclBy
b3h5KCkpOworICAgIG1fY29udGV4dC0+YmF0dGVyeU1hbmFnZXJQcm94eSgpLT5pbml0aWFsaXpl
UHJvdmlkZXIoJndrQmF0dGVyeVByb3ZpZGVyKTsKIH0KIAogdm9pZCBCYXR0ZXJ5UHJvdmlkZXI6
OnN0YXJ0VXBkYXRpbmcoKQpAQCAtOTYsMTEgKzk1LDkgQEAgdm9pZCBCYXR0ZXJ5UHJvdmlkZXI6
OnN0b3BVcGRhdGluZygpCiAKIHZvaWQgQmF0dGVyeVByb3ZpZGVyOjpkaWRDaGFuZ2VCYXR0ZXJ5
U3RhdHVzKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBQYXNzUmVmUHRyPEJhdHRlcnlT
dGF0dXM+IHN0YXR1cykKIHsKLSAgICBXS0JhdHRlcnlNYW5hZ2VyUmVmIHdrQmF0dGVyeU1hbmFn
ZXIgPSBXS0NvbnRleHRHZXRCYXR0ZXJ5TWFuYWdlcihtX3drQ29udGV4dC5nZXQoKSk7Ci0gICAg
QVNTRVJUKHdrQmF0dGVyeU1hbmFnZXIpOworICAgIFJlZlB0cjxXZWJCYXR0ZXJ5U3RhdHVzPiBi
YXR0ZXJ5U3RhdHVzID0gV2ViQmF0dGVyeVN0YXR1czo6Y3JlYXRlKHN0YXR1cy0+Y2hhcmdpbmco
KSwgc3RhdHVzLT5jaGFyZ2luZ1RpbWUoKSwgc3RhdHVzLT5kaXNjaGFyZ2luZ1RpbWUoKSwgc3Rh
dHVzLT5sZXZlbCgpKTsKIAotICAgIFdLUmV0YWluUHRyPFdLQmF0dGVyeVN0YXR1c1JlZj4gd2tC
YXR0ZXJ5U3RhdHVzKEFkb3B0V0ssIFdLQmF0dGVyeVN0YXR1c0NyZWF0ZShzdGF0dXMtPmNoYXJn
aW5nKCksIHN0YXR1cy0+Y2hhcmdpbmdUaW1lKCksIHN0YXR1cy0+ZGlzY2hhcmdpbmdUaW1lKCks
IHN0YXR1cy0+bGV2ZWwoKSkpOwotICAgIFdLQmF0dGVyeU1hbmFnZXJQcm92aWRlckRpZENoYW5n
ZUJhdHRlcnlTdGF0dXMod2tCYXR0ZXJ5TWFuYWdlciwgdG9BUEkoZXZlbnRUeXBlLmltcGwoKSks
IHdrQmF0dGVyeVN0YXR1cy5nZXQoKSk7CisgICAgQVNTRVJUKG1fY29udGV4dC0+YmF0dGVyeU1h
bmFnZXJQcm94eSgpKTsKKyAgICBtX2NvbnRleHQtPmJhdHRlcnlNYW5hZ2VyUHJveHkoKS0+cHJv
dmlkZXJEaWRDaGFuZ2VCYXR0ZXJ5U3RhdHVzKGV2ZW50VHlwZSwgYmF0dGVyeVN0YXR1cy5nZXQo
KSk7CiB9Ci0KICNlbmRpZiAvLyBFTkFCTEUoQkFUVEVSWV9TVEFUVVMpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL0JhdHRlcnlQcm92aWRlci5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2VmbC9CYXR0ZXJ5UHJvdmlkZXIuaAppbmRleCA5MTJmNjBlN2MxZTlm
NDMyZDgxYWVlZjBiZTk5MzliYzE3MjViNjQyLi5kNzYzMzZjZDIzZjY4MmMyOTA1ODE2NWJkMzM1
YWIzZDhjNTI0MDE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL0Jh
dHRlcnlQcm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvQmF0dGVy
eVByb3ZpZGVyLmgKQEAgLTMxLDcgKzMxLDcgQEAKICNpbmNsdWRlICJCYXR0ZXJ5UHJvdmlkZXJF
ZmwuaCIKICNpbmNsdWRlICJCYXR0ZXJ5UHJvdmlkZXJFZmxDbGllbnQuaCIKICNpbmNsdWRlICJC
YXR0ZXJ5U3RhdHVzLmgiCi0jaW5jbHVkZSAiV0tSZXRhaW5QdHIuaCIKKyNpbmNsdWRlICJXZWJD
b250ZXh0LmgiCiAjaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KICNpbmNsdWRlIDx3dGYvUGFz
c1JlZlB0ci5oPgogCkBAIC00MCwxOCArNDAsMTggQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFz
cyBCYXR0ZXJ5UHJvdmlkZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxCYXR0ZXJ5UHJvdmlkZXI+LCBw
dWJsaWMgV2ViQ29yZTo6QmF0dGVyeVByb3ZpZGVyRWZsQ2xpZW50IHsKIHB1YmxpYzoKICAgICB2
aXJ0dWFsIH5CYXR0ZXJ5UHJvdmlkZXIoKTsKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxCYXR0ZXJ5
UHJvdmlkZXI+IGNyZWF0ZShXS0NvbnRleHRSZWYpOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPEJh
dHRlcnlQcm92aWRlcj4gY3JlYXRlKFBhc3NSZWZQdHI8V2ViQ29udGV4dD4pOwogCiAgICAgdm9p
ZCBzdGFydFVwZGF0aW5nKCk7CiAgICAgdm9pZCBzdG9wVXBkYXRpbmcoKTsKIAogcHJpdmF0ZToK
LSAgICBleHBsaWNpdCBCYXR0ZXJ5UHJvdmlkZXIoV0tDb250ZXh0UmVmKTsKKyAgICBleHBsaWNp
dCBCYXR0ZXJ5UHJvdmlkZXIoUGFzc1JlZlB0cjxXZWJDb250ZXh0Pik7CiAKICAgICAvLyBCYXR0
ZXJ5UHJvdmlkZXJFZmxDbGllbnQgaW50ZXJmYWNlLgogICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFu
Z2VCYXR0ZXJ5U3RhdHVzKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBQYXNzUmVmUHRy
PFdlYkNvcmU6OkJhdHRlcnlTdGF0dXM+KTsKIAotICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJl
Zj4gbV93a0NvbnRleHQ7CisgICAgUmVmUHRyPFdlYkNvbnRleHQ+IG1fY29udGV4dDsKICAgICBX
ZWJDb3JlOjpCYXR0ZXJ5UHJvdmlkZXJFZmwgbV9wcm92aWRlcjsKIH07CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvQ29udGV4dEhpc3RvcnlDbGllbnRFZmwuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9Db250ZXh0SGlzdG9yeUNsaWVudEVmbC5j
cHAKaW5kZXggYzAwOGE2Mzk1M2E5ZTI1NTNhNzBkYTY2OTIzNTQ5Yzg3NjM4YTI3OC4uNTNkYzY4
MjM5MzcwYzI5ZjhmYTI4MmE5ZGI1NDQzYWIxZWRlOGJiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2VmbC9Db250ZXh0SGlzdG9yeUNsaWVudEVmbC5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9Db250ZXh0SGlzdG9yeUNsaWVudEVmbC5jcHAKQEAg
LTEwNiw3ICsxMDYsNyBAQCB2b2lkIENvbnRleHRIaXN0b3J5Q2xpZW50RWZsOjpwb3B1bGF0ZVZp
c2l0ZWRMaW5rcyhXS0NvbnRleHRSZWYsIGNvbnN0IHZvaWQqIGNsaQogICAgIGhpc3RvcnlDbGll
bnQtPm1fcG9wdWxhdGVWaXNpdGVkTGlua3MoaGlzdG9yeUNsaWVudC0+bV91c2VyRGF0YSk7CiB9
CiAKLUNvbnRleHRIaXN0b3J5Q2xpZW50RWZsOjpDb250ZXh0SGlzdG9yeUNsaWVudEVmbChXS0Nv
bnRleHRSZWYgY29udGV4dCkKK0NvbnRleHRIaXN0b3J5Q2xpZW50RWZsOjpDb250ZXh0SGlzdG9y
eUNsaWVudEVmbChQYXNzUmVmUHRyPFdlYkNvbnRleHQ+IGNvbnRleHQpCiAgICAgOiBtX3VzZXJE
YXRhKDApCiAgICAgLCBtX25hdmlnYXRlKDApCiAgICAgLCBtX2NsaWVudFJlZGlyZWN0KDApCkBA
IC0xMjgsNyArMTI4LDcgQEAgQ29udGV4dEhpc3RvcnlDbGllbnRFZmw6OkNvbnRleHRIaXN0b3J5
Q2xpZW50RWZsKFdLQ29udGV4dFJlZiBjb250ZXh0KQogICAgIHdrSGlzdG9yeUNsaWVudC5kaWRV
cGRhdGVIaXN0b3J5VGl0bGUgPSBkaWRVcGRhdGVIaXN0b3J5VGl0bGU7CiAgICAgd2tIaXN0b3J5
Q2xpZW50LnBvcHVsYXRlVmlzaXRlZExpbmtzID0gcG9wdWxhdGVWaXNpdGVkTGlua3M7CiAKLSAg
ICBXS0NvbnRleHRTZXRIaXN0b3J5Q2xpZW50KGNvbnRleHQsICZ3a0hpc3RvcnlDbGllbnQpOwor
ICAgIGNvbnRleHQtPmluaXRpYWxpemVIaXN0b3J5Q2xpZW50KCZ3a0hpc3RvcnlDbGllbnQpOwog
fQogCiB2b2lkIENvbnRleHRIaXN0b3J5Q2xpZW50RWZsOjpzZXRDYWxsYmFja3MoRXdrX0hpc3Rv
cnlfTmF2aWdhdGlvbl9DYiBuYXZpZ2F0ZSwgRXdrX0hpc3RvcnlfQ2xpZW50X1JlZGlyZWN0aW9u
X0NiIGNsaWVudFJlZGlyZWN0LCBFd2tfSGlzdG9yeV9TZXJ2ZXJfUmVkaXJlY3Rpb25fQ2Igc2Vy
dmVyUmVkaXJlY3QsIEV3a19IaXN0b3J5X1RpdGxlX1VwZGF0ZV9DYiB0aXRsZVVwZGF0ZSwgRXdr
X0hpc3RvcnlfUG9wdWxhdGVfVmlzaXRlZF9MaW5rc19DYiBwb3B1bGF0ZVZpc2l0ZWRMaW5rcywg
dm9pZCogZGF0YSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvQ29u
dGV4dEhpc3RvcnlDbGllbnRFZmwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvQ29u
dGV4dEhpc3RvcnlDbGllbnRFZmwuaAppbmRleCAzMjAzMjU2NWEzOTg0NzAyZmRiOGE0YWUwNDE4
MWVhMTJlZDFjYTM1Li5iNjcwMjcxYmVlYmE1Y2QyN2I4MGZiNzAzYzYwMDI5MWRmMmZjZjg0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL0NvbnRleHRIaXN0b3J5Q2xp
ZW50RWZsLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9Db250ZXh0SGlzdG9y
eUNsaWVudEVmbC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIENvbnRleHRIaXN0b3J5Q2xp
ZW50RWZsX2gKICNkZWZpbmUgQ29udGV4dEhpc3RvcnlDbGllbnRFZmxfaAogCisjaW5jbHVkZSAi
V2ViQ29udGV4dC5oIgogI2luY2x1ZGUgImV3a19jb250ZXh0LmgiCiAjaW5jbHVkZSA8V2ViS2l0
Mi9XS0Jhc2UuaD4KICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgpAQCAtMzQsNyArMzUsNyBA
QCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgQ29udGV4dEhpc3RvcnlDbGllbnRFZmwgewog
cHVibGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRyPENvbnRleHRIaXN0b3J5Q2xpZW50RWZsPiBj
cmVhdGUoV0tDb250ZXh0UmVmIGNvbnRleHQpCisgICAgc3RhdGljIFBhc3NPd25QdHI8Q29udGV4
dEhpc3RvcnlDbGllbnRFZmw+IGNyZWF0ZShQYXNzUmVmUHRyPFdlYkNvbnRleHQ+IGNvbnRleHQp
CiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IENvbnRleHRIaXN0b3J5Q2xpZW50
RWZsKGNvbnRleHQpKTsKICAgICB9CkBAIC00Miw3ICs0Myw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IHNldENhbGxiYWNrcyhFd2tfSGlzdG9yeV9OYXZpZ2F0aW9uX0NiLCBFd2tfSGlzdG9yeV9DbGll
bnRfUmVkaXJlY3Rpb25fQ2IsIEV3a19IaXN0b3J5X1NlcnZlcl9SZWRpcmVjdGlvbl9DYiwgRXdr
X0hpc3RvcnlfVGl0bGVfVXBkYXRlX0NiLCBFd2tfSGlzdG9yeV9Qb3B1bGF0ZV9WaXNpdGVkX0xp
bmtzX0NiLCB2b2lkKik7CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgQ29udGV4dEhpc3RvcnlD
bGllbnRFZmwoV0tDb250ZXh0UmVmKTsKKyAgICBleHBsaWNpdCBDb250ZXh0SGlzdG9yeUNsaWVu
dEVmbChQYXNzUmVmUHRyPFdlYkNvbnRleHQ+KTsKIAogICAgIHN0YXRpYyB2b2lkIGRpZE5hdmln
YXRlV2l0aE5hdmlnYXRpb25EYXRhKFdLQ29udGV4dFJlZiwgV0tQYWdlUmVmLCBXS05hdmlnYXRp
b25EYXRhUmVmLCBXS0ZyYW1lUmVmLCBjb25zdCB2b2lkKik7CiAgICAgc3RhdGljIHZvaWQgZGlk
UGVyZm9ybUNsaWVudFJlZGlyZWN0KFdLQ29udGV4dFJlZiwgV0tQYWdlUmVmLCBXS1VSTFJlZiBz
b3VyY2VVUkwsIFdLVVJMUmVmLCBXS0ZyYW1lUmVmLCBjb25zdCB2b2lkKik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL05ldHdvcmtJbmZvUHJvdmlkZXIuY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9OZXR3b3JrSW5mb1Byb3ZpZGVyLmNwcAppbmRl
eCBmNTQ1NmY5Yjg2OWMzMDhjZmIzYjA1OGI3MDU5N2VlM2UzOTc4MmM3Li5lNGUxN2VmNGFhOTgz
Y2VjMTQxZGYyZGI1NDFiZWZjN2EyMGQ5ZmJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvZWZsL05ldHdvcmtJbmZvUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9lZmwvTmV0d29ya0luZm9Qcm92aWRlci5jcHAKQEAgLTI4LDggKzI4LDkgQEAK
IAogI2lmIEVOQUJMRShORVRXT1JLX0lORk8pCiAKLSNpbmNsdWRlICJXS0NvbnRleHQuaCIKICNp
bmNsdWRlICJXS05ldHdvcmtJbmZvTWFuYWdlci5oIgorI2luY2x1ZGUgIldlYkNvbnRleHQuaCIK
KyNpbmNsdWRlICJXZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUgPE5vdElt
cGxlbWVudGVkLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CkBAIC01OSwxOCArNjAsMTUg
QEAgc3RhdGljIGJvb2wgaXNNZXRlcmVkQ2FsbGJhY2soV0tOZXR3b3JrSW5mb01hbmFnZXJSZWYs
IGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiAgICAgcmV0dXJuIHRvTmV0d29ya0luZm9Qcm92aWRl
cihjbGllbnRJbmZvKS0+bWV0ZXJlZCgpOwogfQogCi1QYXNzUmVmUHRyPE5ldHdvcmtJbmZvUHJv
dmlkZXI+IE5ldHdvcmtJbmZvUHJvdmlkZXI6OmNyZWF0ZShXS0NvbnRleHRSZWYgd2tDb250ZXh0
KQorUGFzc1JlZlB0cjxOZXR3b3JrSW5mb1Byb3ZpZGVyPiBOZXR3b3JrSW5mb1Byb3ZpZGVyOjpj
cmVhdGUoUGFzc1JlZlB0cjxXZWJDb250ZXh0PiBjb250ZXh0KQogewotICAgIHJldHVybiBhZG9w
dFJlZihuZXcgTmV0d29ya0luZm9Qcm92aWRlcih3a0NvbnRleHQpKTsKKyAgICByZXR1cm4gYWRv
cHRSZWYobmV3IE5ldHdvcmtJbmZvUHJvdmlkZXIoY29udGV4dCkpOwogfQogCi1OZXR3b3JrSW5m
b1Byb3ZpZGVyOjpOZXR3b3JrSW5mb1Byb3ZpZGVyKFdLQ29udGV4dFJlZiB3a0NvbnRleHQpCi0g
ICAgOiBtX3drQ29udGV4dCh3a0NvbnRleHQpCitOZXR3b3JrSW5mb1Byb3ZpZGVyOjpOZXR3b3Jr
SW5mb1Byb3ZpZGVyKFBhc3NSZWZQdHI8V2ViQ29udGV4dD4gY29udGV4dCkKKyAgICA6IG1fY29u
dGV4dChjb250ZXh0KQogewotICAgIEFTU0VSVCh3a0NvbnRleHQpOwotCi0gICAgV0tOZXR3b3Jr
SW5mb01hbmFnZXJSZWYgd2tOZXR3b3JrSW5mb01hbmFnZXIgPSBXS0NvbnRleHRHZXROZXR3b3Jr
SW5mb01hbmFnZXIobV93a0NvbnRleHQuZ2V0KCkpOwotICAgIEFTU0VSVCh3a05ldHdvcmtJbmZv
TWFuYWdlcik7CisgICAgQVNTRVJUKGNvbnRleHQpOwogCiAgICAgV0tOZXR3b3JrSW5mb1Byb3Zp
ZGVyIHdrTmV0d29ya0luZm9Qcm92aWRlciA9IHsKICAgICAgICAga1dLTmV0d29ya0luZm9Qcm92
aWRlckN1cnJlbnRWZXJzaW9uLApAQCAtODAsMTUgKzc4LDE1IEBAIE5ldHdvcmtJbmZvUHJvdmlk
ZXI6Ok5ldHdvcmtJbmZvUHJvdmlkZXIoV0tDb250ZXh0UmVmIHdrQ29udGV4dCkKICAgICAgICAg
Z2V0QmFuZHdpZHRoQ2FsbGJhY2ssCiAgICAgICAgIGlzTWV0ZXJlZENhbGxiYWNrCiAgICAgfTsK
LSAgICBXS05ldHdvcmtJbmZvTWFuYWdlclNldFByb3ZpZGVyKHdrTmV0d29ya0luZm9NYW5hZ2Vy
LCAmd2tOZXR3b3JrSW5mb1Byb3ZpZGVyKTsKKworICAgIEFTU0VSVChtX2NvbnRleHQtPm5ldHdv
cmtJbmZvTWFuYWdlclByb3h5KCkpOworICAgIG1fY29udGV4dC0+bmV0d29ya0luZm9NYW5hZ2Vy
UHJveHkoKS0+aW5pdGlhbGl6ZVByb3ZpZGVyKCZ3a05ldHdvcmtJbmZvUHJvdmlkZXIpOwogfQog
CiBOZXR3b3JrSW5mb1Byb3ZpZGVyOjp+TmV0d29ya0luZm9Qcm92aWRlcigpCiB7Ci0gICAgV0tO
ZXR3b3JrSW5mb01hbmFnZXJSZWYgd2tOZXR3b3JrSW5mb01hbmFnZXIgPSBXS0NvbnRleHRHZXRO
ZXR3b3JrSW5mb01hbmFnZXIobV93a0NvbnRleHQuZ2V0KCkpOwotICAgIEFTU0VSVCh3a05ldHdv
cmtJbmZvTWFuYWdlcik7Ci0KLSAgICBXS05ldHdvcmtJbmZvTWFuYWdlclNldFByb3ZpZGVyKHdr
TmV0d29ya0luZm9NYW5hZ2VyLCAwKTsKKyAgICBBU1NFUlQobV9jb250ZXh0LT5uZXR3b3JrSW5m
b01hbmFnZXJQcm94eSgpKTsKKyAgICBtX2NvbnRleHQtPm5ldHdvcmtJbmZvTWFuYWdlclByb3h5
KCktPmluaXRpYWxpemVQcm92aWRlcigwKTsKIH0KIAogZG91YmxlIE5ldHdvcmtJbmZvUHJvdmlk
ZXI6OmJhbmR3aWR0aCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvZWZsL05ldHdvcmtJbmZvUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9l
ZmwvTmV0d29ya0luZm9Qcm92aWRlci5oCmluZGV4IDc5MGEwMjc0YmIyOGQ3MDZmNmIzZGEzYmIz
NzZlNGVlNTRlNGI3NjIuLjY3ODVhNWIwZWI1YmQ1N2ZhMjNhZTBhZWU0MWZjN2FlZmNhMDY4ZjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvTmV0d29ya0luZm9Qcm92
aWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvTmV0d29ya0luZm9Qcm92
aWRlci5oCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoTkVUV09SS19JTkZPKQogCisj
aW5jbHVkZSAiV2ViQ29udGV4dC5oIgogI2luY2x1ZGUgPE5ldHdvcmtJbmZvQ2xpZW50Lmg+CiAj
aW5jbHVkZSA8TmV0d29ya0luZm9Qcm92aWRlckVmbC5oPgogI2luY2x1ZGUgPFdlYktpdDIvV0tC
YXNlLmg+CkBAIC0zOSw3ICs0MCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgTmV0d29y
a0luZm9Qcm92aWRlciA6IHB1YmxpYyBSZWZDb3VudGVkPE5ldHdvcmtJbmZvUHJvdmlkZXI+LCBw
dWJsaWMgV2ViQ29yZTo6TmV0d29ya0luZm9DbGllbnQgewogcHVibGljOgogICAgIHZpcnR1YWwg
fk5ldHdvcmtJbmZvUHJvdmlkZXIoKTsKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxOZXR3b3JrSW5m
b1Byb3ZpZGVyPiBjcmVhdGUoV0tDb250ZXh0UmVmKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxO
ZXR3b3JrSW5mb1Byb3ZpZGVyPiBjcmVhdGUoUGFzc1JlZlB0cjxXZWJDb250ZXh0Pik7CiAKICAg
ICAvLyBOZXR3b3JrSW5mb0NsaWVudCBpbnRlcmZhY2UuCiAgICAgdmlydHVhbCBkb3VibGUgYmFu
ZHdpZHRoKCkgY29uc3Q7CkBAIC00OSw5ICs1MCw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgc3RvcFVwZGF0aW5nKCk7CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgTmV0d29ya0luZm9Q
cm92aWRlcihXS0NvbnRleHRSZWYpOworICAgIGV4cGxpY2l0IE5ldHdvcmtJbmZvUHJvdmlkZXIo
UGFzc1JlZlB0cjxXZWJDb250ZXh0Pik7CiAKLSAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+
IG1fd2tDb250ZXh0OworICAgIFJlZlB0cjxXZWJDb250ZXh0PiBtX2NvbnRleHQ7CiAgICAgV2Vi
Q29yZTo6TmV0d29ya0luZm9Qcm92aWRlckVmbCBtX3Byb3ZpZGVyOwogfTsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>