<?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>109843</bug_id>
          
          <creation_ts>2013-02-14 09:52:20 -0800</creation_ts>
          <short_desc>[Qt][WK2] Support WK2 API tests</short_desc>
          <delta_ts>2013-02-18 05:01:59 -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 Qt</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>
          
          <blocked>109216</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Adenilson Cavalcanti Silva">savagobr</reporter>
          <assigned_to name="Allan Sandfeld Jensen">allan.jensen</assigned_to>
          <cc>abecsi</cc>
    
    <cc>allan.jensen</cc>
    
    <cc>benjamin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>hausmann</cc>
    
    <cc>jturcotte</cc>
    
    <cc>menard</cc>
    
    <cc>savagobr</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>833175</commentid>
    <comment_count>0</comment_count>
    <who name="Adenilson Cavalcanti Silva">savagobr</who>
    <bug_when>2013-02-14 09:52:20 -0800</bug_when>
    <thetext>This is a meta ticket for enabling support so Qt could run WK2 API tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>833179</commentid>
    <comment_count>1</comment_count>
    <who name="Adenilson Cavalcanti Silva">savagobr</who>
    <bug_when>2013-02-14 09:54:54 -0800</bug_when>
    <thetext>The first step is to implement a PlatformWebView (fortunately, both GTK and EFL could be used as a source of inspiration for it).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>833194</commentid>
    <comment_count>2</comment_count>
      <attachid>188374</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2013-02-14 10:05:27 -0800</bug_when>
    <thetext>Created attachment 188374
Patch

First bit of work on PlatformWebView.

It also enables some other api tests.

Currently the build test fails with: Failed to start &quot; QtWebProcess 11&quot;

And using a QQuickWebView may not be what we want in the long run, but it seemed simple and little code to copy from WebKitTestRunner.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>833195</commentid>
    <comment_count>3</comment_count>
      <attachid>188375</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2013-02-14 10:06:17 -0800</bug_when>
    <thetext>Created attachment 188375
Patch

Uploaded from wrong folder.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>833719</commentid>
    <comment_count>4</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-02-14 23:07:47 -0800</bug_when>
    <thetext>That is great!

&gt; And using a QQuickWebView may not be what we want in the long run, but it seemed simple and little code to copy from WebKitTestRunner.

What is the problem with QQuickWebView for API tests?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>833926</commentid>
    <comment_count>5</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2013-02-15 05:37:20 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; That is great!
&gt; 
&gt; &gt; And using a QQuickWebView may not be what we want in the long run, but it seemed simple and little code to copy from WebKitTestRunner.
&gt; 
&gt; What is the problem with QQuickWebView for API tests?

Mostly that we are using experimental API extensions for it, so we might want something more stable, hopefully something we can share with more platforms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>833956</commentid>
    <comment_count>6</comment_count>
      <attachid>188550</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2013-02-15 06:32:46 -0800</bug_when>
    <thetext>Created attachment 188550
Patch

First working patch. Needs WebProcess in PATH, and TEST_WEBKIT_API_INJECTED_BUNDLE_PATH needs to point to WebKitBuild/$RELEASE$/lib.

Several WebKit2 tests are skipped though, because they stall.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>833965</commentid>
    <comment_count>7</comment_count>
      <attachid>188550</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2013-02-15 06:40:06 -0800</bug_when>
    <thetext>Comment on attachment 188550
Patch

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

&gt; Tools/TestWebKitAPI/TestWebKitAPI.pri:17
&gt; +    $$PWD/qt/PlatformWebViewQt.cpp

Could it be that this file is missing from the diff? :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>833969</commentid>
    <comment_count>8</comment_count>
      <attachid>188554</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2013-02-15 06:45:13 -0800</bug_when>
    <thetext>Created attachment 188554
FullPatch

Combined patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>833974</commentid>
    <comment_count>9</comment_count>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2013-02-15 06:46:36 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; First working patch. Needs WebProcess in PATH, and TEST_WEBKIT_API_INJECTED_BUNDLE_PATH needs to point to WebKitBuild/$RELEASE$/lib.

WTR is targetted to [Release|Debug]/bin to fix this.
Other API tests have a function called addQtWebProcessToPath() that does this automatically.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834010</commentid>
    <comment_count>10</comment_count>
      <attachid>188567</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2013-02-15 07:32:00 -0800</bug_when>
    <thetext>Created attachment 188567
Patch

Now with automatic detection of paths.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834058</commentid>
    <comment_count>11</comment_count>
      <attachid>188567</attachid>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2013-02-15 08:44:57 -0800</bug_when>
    <thetext>Comment on attachment 188567
Patch

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

&gt; Tools/TestWebKitAPI/InjectedBundle.pri:10
&gt; +INCLUDEPATH += $$PWD $${ROOT_WEBKIT_DIR}/Source/ThirdParty/gtest/include

Individual lines please.

&gt; Tools/TestWebKitAPI/TestWebKitAPI.pro:7
&gt; +SUBDIRS += derived_sources injected_bundle Tests/WTF Tests/JavaScriptCore Tests/WebKit2

This kind of list spans usually on individual lines too.

&gt; Tools/TestWebKitAPI/qt/PlatformUtilitiesQt.cpp:33
&gt;  #include &lt;unistd.h&gt;

That can be tossed away with usleep.

&gt; Tools/TestWebKitAPI/qt/PlatformUtilitiesQt.cpp:63
&gt; +        // FIXME: Get the current test source dir, not TestWebKitAPI source dir.
&gt; +        path = QStringLiteral(APITEST_SOURCE_DIR &quot;/Tests/WebKit2&quot;);

It wouldn&apos;t work by defining it in JavaScriptCore/WTF/WebKit2.pro?

&gt; Tools/TestWebKitAPI/qt/PlatformWebViewQt.cpp:40
&gt; +#include &lt;QtQuick/private/qquickwindow_p.h&gt;

Can you check if you really need this?
I think this was for QQuickWindowPrivate::setRenderWithoutShowing.
If so you can also remove the whole QT += *-private stuff from TestWebKitAPI.pri.

&gt; Tools/TestWebKitAPI/qt/PlatformWebViewQt.cpp:95
&gt; +    // resized to what the layout test expects.

Not a big deal, but layout tests shouldn&apos;t apply here.

&gt; Tools/TestWebKitAPI/qt/PlatformWebViewQt.cpp:120
&gt; +    QKeyEvent event(QEvent::KeyPress, &apos; &apos;, Qt::NoModifier);
&gt; +    QCoreApplication::sendEvent(m_window, &amp;event);
&gt; +    QKeyEvent event2(QEvent::KeyRelease, &apos; &apos;, Qt::NoModifier);
&gt; +    QCoreApplication::sendEvent(m_window, &amp;event2);

&apos; &apos; -&gt; Qt::Key_Space

&gt; Tools/TestWebKitAPI/qt/PlatformWebViewQt.cpp:128
&gt; +    QKeyEvent event(QEvent::KeyPress, 0, Qt::AltModifier);
&gt; +    QCoreApplication::sendEvent(m_window, &amp;event);
&gt; +    QKeyEvent event2(QEvent::KeyRelease, 0, Qt::AltModifier);
&gt; +    QCoreApplication::sendEvent(m_window, &amp;event2);

0 -&gt; Qt::Key_Alt
And probably without the modifier.

&gt; Tools/TestWebKitAPI/qt/PlatformWebViewQt.cpp:133
&gt; +    QPoint mousePos(x, y);

QPointF

&gt; Tools/TestWebKitAPI/qt/PlatformWebViewQt.cpp:134
&gt; +    QMouseEvent event(QEvent::MouseMove, mousePos, mousePos, Qt::NoButton, Qt::NoButton, Qt::NoModifier);

Can you use the overload without screenPos?

&gt; Tools/TestWebKitAPI/qt/PlatformWebViewQt.cpp:140
&gt; +    QPoint mousePos(x, y);

Ditto QPointF.

&gt; Tools/TestWebKitAPI/qt/PlatformWebViewQt.cpp:141
&gt; +    QMouseEvent event(QEvent::MouseMove, mousePos, mousePos, Qt::NoButton, Qt::NoButton, Qt::NoModifier);

Why?

&gt; Tools/TestWebKitAPI/qt/PlatformWebViewQt.cpp:146
&gt; +    QCoreApplication::sendEvent(m_window, &amp;event);
&gt; +    QMouseEvent event2(QEvent::MouseButtonPress, mousePos, mousePos, Qt::RightButton, Qt::RightButton, Qt::NoModifier);
&gt; +    QCoreApplication::sendEvent(m_window, &amp;event2);
&gt; +    QMouseEvent event3(QEvent::MouseButtonRelease, mousePos, mousePos, Qt::RightButton, Qt::NoButton, Qt::NoModifier);
&gt; +    QCoreApplication::sendEvent(m_window, &amp;event3);

Ditto about the overload.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834091</commentid>
    <comment_count>12</comment_count>
      <attachid>188584</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2013-02-15 09:16:31 -0800</bug_when>
    <thetext>Created attachment 188584
Patch

Evaluate the rest of the tests, suppress debug output, cleanup according to feedback, and allow to run in desktop mode since that changes the outcome of some tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834093</commentid>
    <comment_count>13</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2013-02-15 09:20:49 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; &gt; Tools/TestWebKitAPI/qt/PlatformUtilitiesQt.cpp:63
&gt; &gt; +        // FIXME: Get the current test source dir, not TestWebKitAPI source dir.
&gt; &gt; +        path = QStringLiteral(APITEST_SOURCE_DIR &quot;/Tests/WebKit2&quot;);
&gt; 
&gt; It wouldn&apos;t work by defining it in JavaScriptCore/WTF/WebKit2.pro?
&gt; 
That would make compilation fail in directories where it is not defined.

&gt; &gt; Tools/TestWebKitAPI/qt/PlatformWebViewQt.cpp:40
&gt; &gt; +#include &lt;QtQuick/private/qquickwindow_p.h&gt;
&gt; 
&gt; Can you check if you really need this?
&gt; I think this was for QQuickWindowPrivate::setRenderWithoutShowing.
&gt; If so you can also remove the whole QT += *-private stuff from TestWebKitAPI.pri.
&gt; 
I need that, especially now that I also set desktop mode. We may later drop all of that, but it has already been useful.

&gt; &gt; Tools/TestWebKitAPI/qt/PlatformWebViewQt.cpp:141
&gt; &gt; +    QMouseEvent event(QEvent::MouseMove, mousePos, mousePos, Qt::NoButton, Qt::NoButton, Qt::NoModifier);
&gt; 
&gt; Why?
&gt; 
This is just how mouse clicks are usually simulated; move, mouse-down, mouse-up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834102</commentid>
    <comment_count>14</comment_count>
      <attachid>188587</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2013-02-15 09:32:38 -0800</bug_when>
    <thetext>Created attachment 188587
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834119</commentid>
    <comment_count>15</comment_count>
      <attachid>188591</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2013-02-15 09:56:31 -0800</bug_when>
    <thetext>Created attachment 188591
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834122</commentid>
    <comment_count>16</comment_count>
      <attachid>188591</attachid>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2013-02-15 10:00:48 -0800</bug_when>
    <thetext>Comment on attachment 188591
Patch

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

&gt; Tools/TestWebKitAPI/Tests/WebKit2/WebKit2.pro:56
&gt; +FAILING_SOURCES += SpacebarScrolling.cpp # Only fails in flickable mode.

Since you use flickable mode by default those could also run, they won&apos;t show up on the bot anyway.

&gt; Tools/TestWebKitAPI/qt/main.cpp:28
&gt; +namespace TestWebKitAPI {
&gt; +bool s_useDesktopBehavior = true;
&gt; +}

Ugly but I guess that&apos;s fine.

Looks good to me otherwise, r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834124</commentid>
    <comment_count>17</comment_count>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2013-02-15 10:01:31 -0800</bug_when>
    <thetext>(In reply to comment #16)
&gt; Looks good to me otherwise, r=me

Benjamin, what do you think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834159</commentid>
    <comment_count>18</comment_count>
      <attachid>188591</attachid>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2013-02-15 10:34:35 -0800</bug_when>
    <thetext>Comment on attachment 188591
Patch

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

&gt;&gt; Tools/TestWebKitAPI/qt/main.cpp:28
&gt;&gt; +}
&gt; 
&gt; Ugly but I guess that&apos;s fine.
&gt; 
&gt; Looks good to me otherwise, r=me

Strike that, I must be drunk. setFlickableViewportEnabled is already static, no need for this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835198</commentid>
    <comment_count>19</comment_count>
      <attachid>188812</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2013-02-18 00:59:06 -0800</bug_when>
    <thetext>Created attachment 188812
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835267</commentid>
    <comment_count>20</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-02-18 02:35:55 -0800</bug_when>
    <thetext>&gt; (In reply to comment #16)
&gt; &gt; Looks good to me otherwise, r=me
&gt; 
&gt; Benjamin, what do you think?

I did not get the time to check the patch, but don&apos;t wait for me to land if the patch is correct.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835307</commentid>
    <comment_count>21</comment_count>
      <attachid>188812</attachid>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2013-02-18 03:45:53 -0800</bug_when>
    <thetext>Comment on attachment 188812
Patch

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

&gt; Tools/TestWebKitAPI/qt/PlatformUtilitiesQt.cpp:50
&gt; +    QString path = QString::fromLocal8Bit(qgetenv(&quot;TEST_WEBKIT_API_INJECTED_BUNDLE_PATH&quot;));
&gt; +    if (path.isEmpty())

One more thing that I just realized.
I think that the reason GTK is using env vars here is because they didn&apos;t integrate it with their build system.
No need to do both, we should either hardcode the path, either pass the path from the test runner script.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835310</commentid>
    <comment_count>22</comment_count>
      <attachid>188812</attachid>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2013-02-18 03:53:01 -0800</bug_when>
    <thetext>Comment on attachment 188812
Patch

(In reply to comment #21)
&gt; One more thing that I just realized.
&gt; I think that the reason GTK is using env vars here is because they didn&apos;t integrate it with their build system.
&gt; No need to do both, we should either hardcode the path, either pass the path from the test runner script.

r=me if you remove the env part.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835360</commentid>
    <comment_count>23</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2013-02-18 05:01:59 -0800</bug_when>
    <thetext>Committed r143197: &lt;http://trac.webkit.org/changeset/143197&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188374</attachid>
            <date>2013-02-14 10:05:27 -0800</date>
            <delta_ts>2013-02-14 10:06:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>Patch</filename>
            <type>text/plain</type>
            <size>1604</size>
            <attacher name="Allan Sandfeld Jensen">allan.jensen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdvcmtS
ZXBseUhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0
d29ya1JlcGx5SGFuZGxlci5jcHAKaW5kZXggNDNhODE5YS4uNGE2MjA2ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5SGFuZGxlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5
SGFuZGxlci5jcHAKQEAgLTQyNyw3ICs0MjcsNiBAQCBRTmV0d29ya1JlcGx5SGFuZGxlcjo6UU5l
dHdvcmtSZXBseUhhbmRsZXIoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgTG9hZFR5cGUgbG9hZAog
ICAgIDogUU9iamVjdCgwKQogICAgICwgbV9yZXNvdXJjZUhhbmRsZShoYW5kbGUpCiAgICAgLCBt
X2xvYWRUeXBlKGxvYWRUeXBlKQotICAgICwgbV90aW1lb3V0VGltZXIodGhpcykKICAgICAsIG1f
cmVkaXJlY3Rpb25UcmllcyhnTWF4UmVkaXJlY3Rpb25zKQogICAgICwgbV9xdWV1ZSh0aGlzLCBk
ZWZlcnJlZCkKIHsKQEAgLTQ1NSw3ICs0NTQsNiBAQCBRTmV0d29ya1JlcGx5SGFuZGxlcjo6UU5l
dHdvcmtSZXBseUhhbmRsZXIoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgTG9hZFR5cGUgbG9hZAog
CiB2b2lkIFFOZXR3b3JrUmVwbHlIYW5kbGVyOjphYm9ydCgpCiB7Ci0gICAgbV90aW1lb3V0VGlt
ZXIuc3RvcCgpOwogICAgIG1fcmVzb3VyY2VIYW5kbGUgPSAwOwogICAgIGlmIChRTmV0d29ya1Jl
cGx5KiByZXBseSA9IHJlbGVhc2UoKSkgewogICAgICAgICByZXBseS0+YWJvcnQoKTsKQEAgLTUx
OSw3ICs1MTcsOCBAQCB2b2lkIFFOZXR3b3JrUmVwbHlIYW5kbGVyOjpmaW5pc2goKQogCiB2b2lk
IFFOZXR3b3JrUmVwbHlIYW5kbGVyOjp0aW1lb3V0KCkKIHsKLSAgICBBU1NFUlQobV9yZXBseVdy
YXBwZXIgJiYgbV9yZXBseVdyYXBwZXItPnJlcGx5KCkgJiYgIXdhc0Fib3J0ZWQoKSk7CisgICAg
aWYgKCFtX3JlcGx5V3JhcHBlciB8fCB3YXNBYm9ydGVkKCkpCisgICAgICAgIHJldHVybjsKIAog
ICAgIC8vIFRoZSByZXF1ZXN0IGlzIGFscmVhZHkgZmluaXNoZWQsIGJ1dCBpcyBwcm9iYWJseSBq
dXN0IHdhaXRpbmcgaW4gdGhlIHF1ZXVlIHRvIGdldCBwcm9jZXNzZWQuCiAgICAgLy8gSW4gdGhp
cyBjYXNlIHdlIGlnbm9yZSB0aGUgdGltZW91dCBhbmQgcHJvY2VlZCBhcyBub3JtYWwuCkBAIC01
MzIsNiArNTMxLDggQEAgdm9pZCBRTmV0d29ya1JlcGx5SGFuZGxlcjo6dGltZW91dCgpCiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKKyAgICBBU1NFUlQobV9yZXBseVdyYXBwZXItPnJlcGx5KCkp
OworCiAgICAgUmVzb3VyY2VFcnJvciB0aW1lb3V0RXJyb3IoIlF0TmV0d29yayIsIFFOZXR3b3Jr
UmVwbHk6OlRpbWVvdXRFcnJvciwgbV9yZXBseVdyYXBwZXItPnJlcGx5KCktPnVybCgpLnRvU3Ry
aW5nKCksICJSZXF1ZXN0IHRpbWVkIG91dCIpOwogICAgIHRpbWVvdXRFcnJvci5zZXRJc1RpbWVv
dXQodHJ1ZSk7CiAgICAgY2xpZW50LT5kaWRGYWlsKG1fcmVzb3VyY2VIYW5kbGUsIHRpbWVvdXRF
cnJvcik7CmM=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188375</attachid>
            <date>2013-02-14 10:06:17 -0800</date>
            <delta_ts>2013-02-15 06:32:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>Patch</filename>
            <type>text/plain</type>
            <size>11146</size>
            <attacher name="Allan Sandfeld Jensen">allan.jensen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1XZWJWaWV3LmggYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1BsYXRmb3JtV2ViVmlldy5oCmluZGV4IGRjYWY0NDguLmNiNTJmZmEg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1XZWJWaWV3LmgKKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9ybVdlYlZpZXcuaApAQCAtNTAsNiArNTAsMTQgQEAg
dHlwZWRlZiBHdGtXaWRnZXQgKlBsYXRmb3JtV2luZG93OwogdHlwZWRlZiBzdHJ1Y3QgX0Vjb3Jl
X0V2YXMgRWNvcmVfRXZhczsKIHR5cGVkZWYgV0tWaWV3UmVmIFBsYXRmb3JtV0tWaWV3OwogdHlw
ZWRlZiBFY29yZV9FdmFzKiBQbGF0Zm9ybVdpbmRvdzsKKyNlbGlmIFBMQVRGT1JNKFFUKQorUVRf
QkVHSU5fTkFNRVNQQUNFCitjbGFzcyBRUXVpY2tWaWV3OworY2xhc3MgUUV2ZW50TG9vcDsKK1FU
X0VORF9OQU1FU1BBQ0UKK2NsYXNzIFFRdWlja1dlYlZpZXc7Cit0eXBlZGVmIFFRdWlja1dlYlZp
ZXcqIFBsYXRmb3JtV0tWaWV3OwordHlwZWRlZiBRUXVpY2tWaWV3KiBQbGF0Zm9ybVdpbmRvdzsK
ICNlbmRpZgogCiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkucHJpIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
V2ViS2l0QVBJLnByaQppbmRleCBkM2Y3MTdlLi45NTIwMTY4IDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkucHJpCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS5wcmkKQEAgLTEsMTAgKzEsMTAgQEAKIAogSU5DTFVERVBBVEggKz0gJCRQ
V0QgJCR7Uk9PVF9XRUJLSVRfRElSfS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlCi1X
RUJLSVQgKz0gd3RmIGphdmFzY3JpcHRjb3JlCitXRUJLSVQgKz0gd3RmIGphdmFzY3JpcHRjb3Jl
IHdlYmtpdDIKIAogREVGSU5FUyArPSBRVF9OT19DQVNUX0ZST01fQVNDSUkKIAotUVQgKz0gY29y
ZSBndWkgd2Via2l0CitRVCArPSBjb3JlIGNvcmUtcHJpdmF0ZSBndWkgZ3VpLXByaXZhdGUgd2Vi
a2l0IHF1aWNrIHF1aWNrLXByaXZhdGUgcW1sLXByaXZhdGUgdjgtcHJpdmF0ZQogCiBDT05GSUcg
Kz0gY29tcGlsaW5nX3RoaXJkcGFydHlfY29kZQogCkBAIC0xMiwzICsxMiw0IEBAIFNPVVJDRVMg
Kz0gJCRQV0QvKi5jcHAKIFNPVVJDRVMgKz0gJCRQV0QvcXQvKi5jcHAKIAogTElCUyArPSAtTCQk
e1JPT1RfQlVJTERfRElSfS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC8kJGFjdGl2ZUJ1aWxkQ29u
ZmlnKCkgLWxndGVzdAorCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJL
aXRBUEkucHJvIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnBybwppbmRleCBm
MDYzYmMwLi4xNWU4MWMwIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJL
aXRBUEkucHJvCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS5wcm8KQEAg
LTEsMyArMSwzIEBACiBURU1QTEFURSA9IHN1YmRpcnMKIAotU1VCRElSUyArPSBUZXN0cy9XVEYK
K1NVQkRJUlMgKz0gVGVzdHMvV1RGIFRlc3RzL0phdmFTY3JpcHRDb3JlIFRlc3RzL1dlYktpdDIK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUucHJvIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS5wcm8KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
YWU0YjgwNgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUucHJvCkBAIC0wLDAgKzEsNiBAQAorVEVNUExBVEUg
PSBhcHAKK1RBUkdFVCA9IHRzdF9qc2MKKworU09VUkNFUyArPSAqLmNwcAorCitpbmNsdWRlKC4u
Ly4uL1Rlc3RXZWJLaXRBUEkucHJpKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvV1RGLnBybyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dURi5wcm8K
aW5kZXggZDNlM2IwZC4uMDRhYmUxZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvV1RGLnBybworKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9XVEYu
cHJvCkBAIC0xOCw4ICsxOCw4IEBAIFNPVVJDRVMgKz0gXAogICAgIFN0cmluZ0ltcGwuY3BwIFwK
ICAgICBTdHJpbmdPcGVyYXRvcnMuY3BwIFwKICAgICBUZW1wb3JhcnlDaGFuZ2UuY3BwIFwKLSAg
ICBWZWN0b3JCYXNpYy5jcHAgXAogICAgIFZlY3Rvci5jcHAgXAorICAgIFZlY3RvckJhc2ljLmNw
cCBcCiAgICAgVmVjdG9yUmV2ZXJzZS5jcHAgXAogICAgIFdURlN0cmluZy5jcHAKIApkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1dlYktpdDIucHJvIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1dlYktpdDIucHJvCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ3MmJiNzAKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvV2ViS2l0Mi5wcm8KQEAgLTAsMCArMSwyNiBAQAor
VEVNUExBVEUgPSBhcHAKK1RBUkdFVCA9IHRzdF93ZWJraXQyCisKK1NPVVJDRVMgKz0gXAorICAg
IEFib3V0QmxhbmtMb2FkLmNwcCBcCisgICAgRE9NV2luZG93RXh0ZW5zaW9uQmFzaWMuY3BwIFwK
KyAgICBET01XaW5kb3dFeHRlbnNpb25Ob0NhY2hlLmNwcCBcCisgICAgRG9jdW1lbnRTdGFydFVz
ZXJTY3JpcHRBbGVydENyYXNoLmNwcCBcCisgICAgRXZhbHVhdGVKYXZhU2NyaXB0LmNwcCBcCisg
ICAgRmFpbGVkTG9hZC5jcHAgXAorICAgIEZpbmQuY3BwIFwKKyAgICBGb3JjZVJlcGFpbnQuY3Bw
IFwKKyAgICBGcmFtZU1JTUVUeXBlSFRNTC5jcHAgXAorICAgIEZyYW1lTUlNRVR5cGVQTkcuY3Bw
IFwKKyAgICBHZXRJbmplY3RlZEJ1bmRsZUluaXRpYWxpemF0aW9uVXNlckRhdGFDYWxsYmFjay5j
cHAgXAorICAgIEhpdFRlc3RSZXN1bHROb2RlSGFuZGxlLmNwcCBcCisgICAgTG9hZEFsdGVybmF0
ZUhUTUxTdHJpbmdXaXRoTm9uRGlyZWN0b3J5VVJMLmNwcCBcCisgICAgTG9hZENhbmNlbGVkTm9T
ZXJ2ZXJSZWRpcmVjdENhbGxiYWNrLmNwcCBcCisgICAgTW91c2VNb3ZlQWZ0ZXJDcmFzaC5jcHAg
XAorICAgIFJlbG9hZFBhZ2VBZnRlckNyYXNoLmNwcCBcCisgICAgTmV3Rmlyc3RWaXN1YWxseU5v
bkVtcHR5TGF5b3V0LmNwcCBcCisgICAgTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0RmFp
bHMuY3BwIFwKKyAgICBOZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JJbWFnZXMuY3Bw
IFwKKyAgICBQYWdlTG9hZEJhc2ljLmNwcAorCitpbmNsdWRlKC4uLy4uL1Rlc3RXZWJLaXRBUEku
cHJpKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9xdC9QbGF0Zm9ybVV0aWxpdGll
c1F0LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvcXQvUGxhdGZvcm1VdGlsaXRpZXNRdC5jcHAK
aW5kZXggN2M3NWFkMS4uZGUxOTAwNiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9x
dC9QbGF0Zm9ybVV0aWxpdGllc1F0LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL3F0L1Bs
YXRmb3JtVXRpbGl0aWVzUXQuY3BwCkBAIC0yMSw3ICsyMSwxNCBAQAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCiAKKyNpbmNsdWRlIDxXZWJLaXQy
L1dLU3RyaW5nUXQuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLTmF0aXZlRXZlbnQuaD4KKyNpbmNs
dWRlICJxdC9XS1VSTFF0LmgiCisKICNpbmNsdWRlIDxRQ29yZUFwcGxpY2F0aW9uPgorI2luY2x1
ZGUgPFFEaXI+CisjaW5jbHVkZSA8UVVybD4KKyNpbmNsdWRlIDxRVGhyZWFkPgogCiAjaW5jbHVk
ZSA8dW5pc3RkLmg+CiAKQEAgLTM2LDE5ICs0MywyNiBAQCB2b2lkIHJ1bihib29sKiBkb25lKQog
CiB2b2lkIHNsZWVwKGRvdWJsZSBzZWNvbmRzKQogewotICAgIHVzbGVlcChzZWNvbmRzICogMTAw
MDAwMCk7CisgICAgUVRocmVhZDo6c2xlZXAoc2Vjb25kcyk7CiB9CiAKIFdLU3RyaW5nUmVmIGNy
ZWF0ZUluamVjdGVkQnVuZGxlUGF0aCgpCiB7Ci0gICAgLy8gIyMjIEZJWE1FLgotICAgIHJldHVy
biBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiIik7CisgICAgUVN0cmluZyBwYXRoID0g
UVN0cmluZzo6ZnJvbUxvY2FsOEJpdChxZ2V0ZW52KCJURVNUX1dFQktJVF9BUElfSU5KRUNURURf
QlVORExFX1BBVEgiKSk7CisgICAgaWYgKHBhdGguaXNFbXB0eSgpKQorICAgICAgICBwYXRoID0g
UUZpbGVJbmZvKFFDb3JlQXBwbGljYXRpb246OmFwcGxpY2F0aW9uRGlyUGF0aCgpICsgUVN0cmlu
Z0xpdGVyYWwoIi8uLi9saWIvbGliVGVzdFdlYktpdEFQSUluamVjdGVkQnVuZGxlIikpLmFic29s
dXRlRmlsZVBhdGgoKTsKKworICAgIHJldHVybiBXS1N0cmluZ0NyZWF0ZVdpdGhRU3RyaW5nKHBh
dGgpOwogfQogCiBXS1VSTFJlZiBjcmVhdGVVUkxGb3JSZXNvdXJjZShjb25zdCBjaGFyKiByZXNv
dXJjZSwgY29uc3QgY2hhciogZXh0ZW5zaW9uKQogewotICAgIC8vICMjIyBGSVhNRS4KLSAgICBy
ZXR1cm4gV0tVUkxDcmVhdGVXaXRoVVRGOENTdHJpbmcoIiIpOworICAgIFFTdHJpbmcgcGF0aCA9
IFFTdHJpbmc6OmZyb21Mb2NhbDhCaXQocWdldGVudigiVEVTVF9XRUJLSVRfQVBJX1JFU09VUkNF
U19QQVRIIikpOworICAgIGlmIChwYXRoLmlzRW1wdHkoKSkKKyAgICAgICAgcGF0aCA9IFFDb3Jl
QXBwbGljYXRpb246OmFwcGxpY2F0aW9uRGlyUGF0aCgpICsgUVN0cmluZ0xpdGVyYWwoIi8uLi9y
ZXNvdXJjZXMiKTsKKyAgICBRU3RyaW5nIGZpbGVuYW1lID0gUVN0cmluZzo6ZnJvbUxvY2FsOEJp
dChyZXNvdXJjZSkgKyBRU3RyaW5nTGl0ZXJhbCgiLiIpICsgUVN0cmluZzo6ZnJvbUxvY2FsOEJp
dChleHRlbnNpb24pOworCisgICAgcmV0dXJuIFdLVVJMQ3JlYXRlV2l0aFFVcmwoUVVybDo6ZnJv
bUxvY2FsRmlsZShRRGlyKHBhdGgpLmFic29sdXRlRmlsZVBhdGgoZmlsZW5hbWUpKSk7CiB9CiAK
IFdLVVJMUmVmIFVSTEZvck5vbkV4aXN0ZW50UmVzb3VyY2UoKQpAQCAtNTYsNSArNzAsMTAgQEAg
V0tVUkxSZWYgVVJMRm9yTm9uRXhpc3RlbnRSZXNvdXJjZSgpCiAgICAgcmV0dXJuIFdLVVJMQ3Jl
YXRlV2l0aFVURjhDU3RyaW5nKCJmaWxlOi8vL2RvZXMtbm90LWV4aXN0Lmh0bWwiKTsKIH0KIAor
Ym9vbCBpc0tleURvd24oV0tOYXRpdmVFdmVudFB0ciBldmVudCkKK3sKKyAgICByZXR1cm4gZXZl
bnQtPnR5cGUoKSA9PSBRRXZlbnQ6OktleVByZXNzOworfQorCiB9IC8vIG5hbWVzcGFjZSBVdGls
CiB9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL3F0L1BsYXRmb3JtV2ViVmlld1F0LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvcXQv
UGxhdGZvcm1XZWJWaWV3UXQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjBjNjM1YWIKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL3F0L1BsYXRm
b3JtV2ViVmlld1F0LmNwcApAQCAtMCwwICsxLDE1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTAgVW5pdmVyc2l0eSBvZiBTemVnZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTMgRGlnaWEgUGxjLiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICog
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
CisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJQbGF0Zm9y
bVdlYlZpZXcuaCIKKyNpbmNsdWRlICJxcXVpY2t3ZWJwYWdlX3AuaCIKKyNpbmNsdWRlICJxcXVp
Y2t3ZWJ2aWV3X3AuaCIKKworI2luY2x1ZGUgPFdlYktpdDIvV0tSZXRhaW5QdHIuaD4KKworI2lu
Y2x1ZGUgPFFDb3JlQXBwbGljYXRpb24+CisjaW5jbHVkZSA8UUV2ZW50TG9vcD4KKyNpbmNsdWRl
IDxRUW1sUHJvcGVydHk+CisjaW5jbHVkZSA8UXRRdWljay9RUXVpY2tWaWV3PgorI2luY2x1ZGUg
PFF0UXVpY2svcHJpdmF0ZS9xcXVpY2t3aW5kb3dfcC5oPgorI2luY2x1ZGUgPHFwYS9xd2luZG93
c3lzdGVtaW50ZXJmYWNlLmg+CisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKworY2xhc3Mg
V3JhcHBlcldpbmRvdyA6IHB1YmxpYyBRUXVpY2tWaWV3IHsKKyAgICBRX09CSkVDVAorcHVibGlj
OgorICAgIFdyYXBwZXJXaW5kb3coUVF1aWNrV2ViVmlldyogdmlldykKKyAgICAgICAgOiBRUXVp
Y2tWaWV3KFFVcmwoUVN0cmluZ0xpdGVyYWwoImRhdGE6dGV4dC9wbGFpbixpbXBvcnQgUXRRdWlj
ayAyLjBcbkl0ZW0geyBvYmplY3ROYW1lOiAncm9vdCcgfSIpKSkKKyAgICAgICAgLCBtX3ZpZXco
dmlldykKKyAgICB7CisgICAgICAgIGNvbm5lY3QodGhpcywgU0lHTkFMKHN0YXR1c0NoYW5nZWQo
UVF1aWNrVmlldzo6U3RhdHVzKSksIFNMT1QoaGFuZGxlU3RhdHVzQ2hhbmdlZChRUXVpY2tWaWV3
OjpTdGF0dXMpKSk7CisgICAgfQorCitwcml2YXRlIFFfU0xPVFM6CisgICAgdm9pZCBoYW5kbGVT
dGF0dXNDaGFuZ2VkKFFRdWlja1ZpZXc6OlN0YXR1cyBzdGF0dXMpCisgICAgeworICAgICAgICBp
ZiAoc3RhdHVzICE9IFFRdWlja1ZpZXc6OlJlYWR5KQorICAgICAgICAgICAgcmV0dXJuOworCisg
ICAgICAgIHNldEdlb21ldHJ5KDAsIDAsIDgwMCwgNjAwKTsKKworICAgICAgICBzZXRSZXNpemVN
b2RlKFFRdWlja1ZpZXc6OlNpemVSb290T2JqZWN0VG9WaWV3KTsKKyAgICAgICAgbV92aWV3LT5z
ZXRQYXJlbnRJdGVtKHJvb3RPYmplY3QoKSk7CisgICAgICAgIFFRbWxQcm9wZXJ0eTo6d3JpdGUo
bV92aWV3LCBRU3RyaW5nTGl0ZXJhbCgiYW5jaG9ycy5maWxsIiksIHFWYXJpYW50RnJvbVZhbHVl
KHJvb3RPYmplY3QoKSkpOworCisgICAgICAgIG1fdmlldy0+ZXhwZXJpbWVudGFsKCktPnNldFJl
bmRlclRvT2Zmc2NyZWVuQnVmZmVyKHRydWUpOworCisgICAgICAgIFFXaW5kb3dTeXN0ZW1JbnRl
cmZhY2U6OmhhbmRsZVdpbmRvd0FjdGl2YXRlZCh0aGlzKTsKKyAgICAgICAgbV92aWV3LT5wYWdl
KCktPnNldEZvY3VzKHRydWUpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBRUXVpY2tXZWJWaWV3
KiBtX3ZpZXc7Cit9OworCitQbGF0Zm9ybVdlYlZpZXc6OlBsYXRmb3JtV2ViVmlldyhXS0NvbnRl
eHRSZWYgY29udGV4dFJlZiwgV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwUmVmKQoreworICAgIG1f
dmlldyA9IG5ldyBRUXVpY2tXZWJWaWV3KGNvbnRleHRSZWYsIHBhZ2VHcm91cFJlZik7CisgICAg
bV92aWV3LT5zZXRBbGxvd0FueUhUVFBTQ2VydGlmaWNhdGVGb3JMb2NhbEhvc3QodHJ1ZSk7Cisg
ICAgbV92aWV3LT5jb21wb25lbnRDb21wbGV0ZSgpOworCisgICAgbV93aW5kb3cgPSBuZXcgV3Jh
cHBlcldpbmRvdyhtX3ZpZXcpOworfQorCitQbGF0Zm9ybVdlYlZpZXc6On5QbGF0Zm9ybVdlYlZp
ZXcoKQoreworICAgIGRlbGV0ZSBtX3dpbmRvdzsKK30KKwordm9pZCBQbGF0Zm9ybVdlYlZpZXc6
OnJlc2l6ZVRvKHVuc2lnbmVkIHdpZHRoLCB1bnNpZ25lZCBoZWlnaHQpCit7CisgICAgLy8gSWYg
d2UgZG8gbm90IGhhdmUgYSBwbGF0Zm9ybSB3aW5kb3cgd2Ugd2lsbCBuZXZlciBnZXQgdGhlIG5l
Y2Vzc2FyeQorICAgIC8vIHJlc2l6ZSBldmVudCwgc28gc2ltdWxhdGUgaXQgaW4gdGhhdCBjYXNl
IHRvIG1ha2Ugc3VyZSB0aGUgcXVpY2t2aWV3IGlzCisgICAgLy8gcmVzaXplZCB0byB3aGF0IHRo
ZSBsYXlvdXQgdGVzdCBleHBlY3RzLgorICAgIGlmICghbV93aW5kb3ctPmhhbmRsZSgpKSB7Cisg
ICAgICAgIFFSZWN0IG5ld0dlb21ldHJ5KG1fd2luZG93LT54KCksIG1fd2luZG93LT55KCksIHdp
ZHRoLCBoZWlnaHQpOworICAgICAgICBRV2luZG93U3lzdGVtSW50ZXJmYWNlOjpoYW5kbGVHZW9t
ZXRyeUNoYW5nZShtX3dpbmRvdywgbmV3R2VvbWV0cnkpOworICAgICAgICBRV2luZG93U3lzdGVt
SW50ZXJmYWNlOjpmbHVzaFdpbmRvd1N5c3RlbUV2ZW50cygpOworICAgIH0KKworICAgIG1fd2lu
ZG93LT5yZXNpemUod2lkdGgsIGhlaWdodCk7Cit9CisKK1dLUGFnZVJlZiBQbGF0Zm9ybVdlYlZp
ZXc6OnBhZ2UoKSBjb25zdAoreworICAgIHJldHVybiBtX3ZpZXctPnBhZ2VSZWYoKTsKK30KKwor
dm9pZCBQbGF0Zm9ybVdlYlZpZXc6OmZvY3VzKCkKK3sKKyAgICBtX3ZpZXctPnNldEZvY3VzKHRy
dWUpOworfQorCit2b2lkIFBsYXRmb3JtV2ViVmlldzo6c2ltdWxhdGVTcGFjZWJhcktleVByZXNz
KCkKK3sKKyAgICBRS2V5RXZlbnQgZXZlbnQoUUV2ZW50OjpLZXlQcmVzcywgJyAnLCBRdDo6Tm9N
b2RpZmllcik7CisgICAgUUNvcmVBcHBsaWNhdGlvbjo6c2VuZEV2ZW50KG1fd2luZG93LCAmZXZl
bnQpOworICAgIFFLZXlFdmVudCBldmVudDIoUUV2ZW50OjpLZXlSZWxlYXNlLCAnICcsIFF0OjpO
b01vZGlmaWVyKTsKKyAgICBRQ29yZUFwcGxpY2F0aW9uOjpzZW5kRXZlbnQobV93aW5kb3csICZl
dmVudDIpOworfQorCit2b2lkIFBsYXRmb3JtV2ViVmlldzo6c2ltdWxhdGVBbHRLZXlQcmVzcygp
Cit7CisgICAgUUtleUV2ZW50IGV2ZW50KFFFdmVudDo6S2V5UHJlc3MsIDAsIFF0OjpBbHRNb2Rp
Zmllcik7CisgICAgUUNvcmVBcHBsaWNhdGlvbjo6c2VuZEV2ZW50KG1fd2luZG93LCAmZXZlbnQp
OworICAgIFFLZXlFdmVudCBldmVudDIoUUV2ZW50OjpLZXlSZWxlYXNlLCAwLCBRdDo6QWx0TW9k
aWZpZXIpOworICAgIFFDb3JlQXBwbGljYXRpb246OnNlbmRFdmVudChtX3dpbmRvdywgJmV2ZW50
Mik7Cit9CisKK3ZvaWQgUGxhdGZvcm1XZWJWaWV3OjpzaW11bGF0ZU1vdXNlTW92ZSh1bnNpZ25l
ZCB4LCB1bnNpZ25lZCB5KQoreworICAgIFFQb2ludCBtb3VzZVBvcyh4LCB5KTsKKyAgICBRTW91
c2VFdmVudCBldmVudChRRXZlbnQ6Ok1vdXNlTW92ZSwgbW91c2VQb3MsIG1vdXNlUG9zLCBRdDo6
Tm9CdXR0b24sIFF0OjpOb0J1dHRvbiwgUXQ6Ok5vTW9kaWZpZXIpOworICAgIFFDb3JlQXBwbGlj
YXRpb246OnNlbmRFdmVudChtX3dpbmRvdywgJmV2ZW50KTsKK30KKwordm9pZCBQbGF0Zm9ybVdl
YlZpZXc6OnNpbXVsYXRlUmlnaHRDbGljayh1bnNpZ25lZCB4LCB1bnNpZ25lZCB5KQoreworICAg
IFFQb2ludCBtb3VzZVBvcyh4LCB5KTsKKyAgICBRTW91c2VFdmVudCBldmVudChRRXZlbnQ6Ok1v
dXNlTW92ZSwgbW91c2VQb3MsIG1vdXNlUG9zLCBRdDo6Tm9CdXR0b24sIFF0OjpOb0J1dHRvbiwg
UXQ6Ok5vTW9kaWZpZXIpOworICAgIFFDb3JlQXBwbGljYXRpb246OnNlbmRFdmVudChtX3dpbmRv
dywgJmV2ZW50KTsKKyAgICBRTW91c2VFdmVudCBldmVudDIoUUV2ZW50OjpNb3VzZUJ1dHRvblBy
ZXNzLCBtb3VzZVBvcywgbW91c2VQb3MsIFF0OjpSaWdodEJ1dHRvbiwgUXQ6OlJpZ2h0QnV0dG9u
LCBRdDo6Tm9Nb2RpZmllcik7CisgICAgUUNvcmVBcHBsaWNhdGlvbjo6c2VuZEV2ZW50KG1fd2lu
ZG93LCAmZXZlbnQyKTsKKyAgICBRTW91c2VFdmVudCBldmVudDMoUUV2ZW50OjpNb3VzZUJ1dHRv
blJlbGVhc2UsIG1vdXNlUG9zLCBtb3VzZVBvcywgUXQ6OlJpZ2h0QnV0dG9uLCBRdDo6Tm9CdXR0
b24sIFF0OjpOb01vZGlmaWVyKTsKKyAgICBRQ29yZUFwcGxpY2F0aW9uOjpzZW5kRXZlbnQobV93
aW5kb3csICZldmVudDMpOworfQorCit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCisKKyNp
bmNsdWRlICJQbGF0Zm9ybVdlYlZpZXdRdC5tb2MiCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188550</attachid>
            <date>2013-02-15 06:32:46 -0800</date>
            <delta_ts>2013-02-15 06:45:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>Patch</filename>
            <type>text/plain</type>
            <size>6599</size>
            <attacher name="Allan Sandfeld Jensen">allan.jensen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmll
d19wLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcC5o
CmluZGV4IDQ1N2RlNjUuLmYxYWQ5NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3AuaApAQCAtNDgsNiArNDgsMTAgQEAgbmFtZXNwYWNl
IFdUUiB7CiBjbGFzcyBQbGF0Zm9ybVdlYlZpZXc7CiB9CiAKK25hbWVzcGFjZSBUZXN0V2ViS2l0
QVBJIHsKK2NsYXNzIFBsYXRmb3JtV2ViVmlldzsKK30KKwogbmFtZXNwYWNlIFdlYktpdCB7CiBz
dHJ1Y3QgUXRSZWZDb3VudGVkTmV0d29ya1JlcXVlc3REYXRhOwogY2xhc3MgUGFnZVZpZXdwb3J0
Q29udHJvbGxlckNsaWVudFF0OwpAQCAtMjI0LDYgKzIyOCw3IEBAIHByaXZhdGU6CiAgICAgZnJp
ZW5kIGNsYXNzIFdlYktpdDo6UXRXZWJQYWdlUG9saWN5Q2xpZW50OwogICAgIGZyaWVuZCBjbGFz
cyBXZWJLaXQ6OlF0V2ViUGFnZVVJQ2xpZW50OwogICAgIGZyaWVuZCBjbGFzcyBXVFI6OlBsYXRm
b3JtV2ViVmlldzsKKyAgICBmcmllbmQgY2xhc3MgVGVzdFdlYktpdEFQSTo6UGxhdGZvcm1XZWJW
aWV3OwogICAgIGZyaWVuZCBjbGFzcyBRUXVpY2tXZWJWaWV3RXhwZXJpbWVudGFsOwogfTsKIApk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9EZXJpdmVkU291cmNlcy5wcmkgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL0Rlcml2ZWRTb3VyY2VzLnByaQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi5jYjM5MWFkCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9EZXJpdmVkU291cmNlcy5wcmkKQEAgLTAsMCArMSwxMiBAQAorIyAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisj
IERlcml2ZWQgc291cmNlcyBmb3IgVGVzdFdlYktpdEFQSQorIworIyBTZWUgJ1Rvb2xzL3FtYWtl
L1JFQURNRScgZm9yIGFuIG92ZXJ2aWV3IG9mIHRoZSBidWlsZCBzeXN0ZW0KKyMgLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQorCitURU1QTEFURSA9IGRlcml2ZWQKKworIyBNYWtlIHN1cmUgZm9yd2FyZGVkIGhlYWRlcnMg
bmVlZGVkIGJ5IHRoaXMgcHJvamVjdCBhcmUgcHJlc2VudAorZndoZWFkZXJfZ2VuZXJhdG9yLmNv
bW1hbmRzID0gcGVybCAkJHtST09UX1dFQktJVF9ESVJ9L1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMv
Z2VuZXJhdGUtZm9yd2FyZGluZy1oZWFkZXJzLnBsICQke1JPT1RfV0VCS0lUX0RJUn0vVG9vbHMv
VGVzdFdlYktpdEFQSSAkJHtST09UX0JVSUxEX0RJUn0vU291cmNlL2luY2x1ZGUgcXQKK2Z3aGVh
ZGVyX2dlbmVyYXRvci5kZXBlbmRzICA9ICQke1JPT1RfV0VCS0lUX0RJUn0vU291cmNlL1dlYktp
dDIvU2NyaXB0cy9nZW5lcmF0ZS1mb3J3YXJkaW5nLWhlYWRlcnMucGwKK0dFTkVSQVRPUlMgKz0g
ZndoZWFkZXJfZ2VuZXJhdG9yCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL0luamVj
dGVkQnVuZGxlLnByaSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvSW5qZWN0ZWRCdW5kbGUucHJpCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI1NmMwM2YKLS0tIC9kZXYvbnVsbAor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL0luamVjdGVkQnVuZGxlLnByaQpAQCAtMCwwICsxLDUx
IEBACisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KKyMgUHJvamVjdCBmaWxlIGZvciBUZXN0V2ViS2l0QVBJJ3MgSW5q
ZWN0ZWRCdW5kbGUKKyMKKyMgU2VlICdUb29scy9xbWFrZS9SRUFETUUnIGZvciBhbiBvdmVydmll
dyBvZiB0aGUgYnVpbGQgc3lzdGVtCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworVEVNUExBVEUgPSBsaWIKK1RB
UkdFVCA9IFRlc3RXZWJLaXRBUElJbmplY3RlZEJ1bmRsZQorCitJTkNMVURFUEFUSCArPSAkJFBX
RCAkJHtST09UX1dFQktJVF9ESVJ9L1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUKKwor
U09VUkNFUyArPSBcCisgICAgJCRQV0QvSW5qZWN0ZWRCdW5kbGVDb250cm9sbGVyLmNwcCBcCisg
ICAgJCRQV0QvSW5qZWN0ZWRCdW5kbGVDb250cm9sbGVyLmggXAorICAgICQkUFdEL0luamVjdGVk
QnVuZGxlTWFpbi5jcHAgXAorICAgICQkUFdEL0luamVjdGVkQnVuZGxlVGVzdC5oIFwKKyAgICAk
JFBXRC9QbGF0Zm9ybVV0aWxpdGllcy5jcHAgXAorICAgICQkUFdEL1BsYXRmb3JtVXRpbGl0aWVz
LmggXAorICAgICQkUFdEL3F0L0luamVjdGVkQnVuZGxlQ29udHJvbGxlclF0LmNwcCBcCisgICAg
JCRQV0QvcXQvUGxhdGZvcm1VdGlsaXRpZXNRdC5jcHAgXAorICAgICQkUFdEL1Rlc3RzL1dlYktp
dDIvQ2FuSGFuZGxlUmVxdWVzdF9CdW5kbGUuY3BwIFwKKyAgICAkJFBXRC9UZXN0cy9XZWJLaXQy
L0RvY3VtZW50U3RhcnRVc2VyU2NyaXB0QWxlcnRDcmFzaF9CdW5kbGUuY3BwIFwKKyAgICAkJFBX
RC9UZXN0cy9XZWJLaXQyL0RPTVdpbmRvd0V4dGVuc2lvbkJhc2ljX0J1bmRsZS5jcHAgXAorICAg
ICQkUFdEL1Rlc3RzL1dlYktpdDIvRE9NV2luZG93RXh0ZW5zaW9uTm9DYWNoZV9CdW5kbGUuY3Bw
IFwKKyAgICAkJFBXRC9UZXN0cy9XZWJLaXQyL0dldEluamVjdGVkQnVuZGxlSW5pdGlhbGl6YXRp
b25Vc2VyRGF0YUNhbGxiYWNrX0J1bmRsZS5jcHAgXAorICAgICQkUFdEL1Rlc3RzL1dlYktpdDIv
SGl0VGVzdFJlc3VsdE5vZGVIYW5kbGVfQnVuZGxlLmNwcCBcCisgICAgJCRQV0QvVGVzdHMvV2Vi
S2l0Mi9JbmplY3RlZEJ1bmRsZUJhc2ljX0J1bmRsZS5jcHAgXAorICAgICQkUFdEL1Rlc3RzL1dl
YktpdDIvSW5qZWN0ZWRCdW5kbGVJbml0aWFsaXphdGlvblVzZXJEYXRhQ2FsbGJhY2tXaW5zX0J1
bmRsZS5jcHAgXAorICAgICQkUFdEL1Rlc3RzL1dlYktpdDIvTG9hZENhbmNlbGVkTm9TZXJ2ZXJS
ZWRpcmVjdENhbGxiYWNrX0J1bmRsZS5jcHAgXAorICAgICQkUFdEL1Rlc3RzL1dlYktpdDIvTW91
c2VNb3ZlQWZ0ZXJDcmFzaF9CdW5kbGUuY3BwIFwKKyAgICAkJFBXRC9UZXN0cy9XZWJLaXQyL05l
d0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dF9CdW5kbGUuY3BwIFwKKyAgICAkJFBXRC9UZXN0
cy9XZWJLaXQyL05ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZhaWxzX0J1bmRsZS5jcHAg
XAorICAgICQkUFdEL1Rlc3RzL1dlYktpdDIvTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0
Rm9ySW1hZ2VzX0J1bmRsZS5jcHAgXAorICAgICQkUFdEL1Rlc3RzL1dlYktpdDIvTmV3Rmlyc3RW
aXN1YWxseU5vbkVtcHR5TGF5b3V0RnJhbWVzX0J1bmRsZS5jcHAgXAorICAgICQkUFdEL1Rlc3Rz
L1dlYktpdDIvUGFyZW50RnJhbWVfQnVuZGxlLmNwcCBcCisgICAgJCRQV0QvVGVzdHMvV2ViS2l0
Mi9SZXNwb25zaXZlbmVzc1RpbWVyRG9lc250RmlyZUVhcmx5X0J1bmRsZS5jcHAgXAorICAgICQk
UFdEL1Rlc3RzL1dlYktpdDIvU2hvdWxkR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW1fQnVuZGxlLmNw
cCBcCisgICAgJCRQV0QvVGVzdHMvV2ViS2l0Mi9Vc2VyTWVzc2FnZV9CdW5kbGUuY3BwIFwKKyAg
ICAkJFBXRC9UZXN0cy9XZWJLaXQyL1dpbGxTZW5kU3VibWl0RXZlbnRfQnVuZGxlLmNwcCBcCisg
ICAgJCRQV0QvVGVzdHMvV2ViS2l0Mi9XS0Nvbm5lY3Rpb25fQnVuZGxlLmNwcAorCisKK0RFU1RE
SVIgPSAkJHtST09UX0JVSUxEX0RJUn0vbGliCisKK1FUICs9IGNvcmUgY29yZS1wcml2YXRlIGd1
aSBndWktcHJpdmF0ZSB3ZWJraXQgcXVpY2sgcXVpY2stcHJpdmF0ZSBxbWwtcHJpdmF0ZSB2OC1w
cml2YXRlCisKK1dFQktJVCArPSB3dGYgamF2YXNjcmlwdGNvcmUgd2ViY29yZSB3ZWJraXQyCisK
K0NPTkZJRyArPSBwbHVnaW4gcnBhdGggY29tcGlsaW5nX3RoaXJkcGFydHlfY29kZQorCitMSUJT
ICs9IC1MJCR7Uk9PVF9CVUlMRF9ESVJ9L1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0LyQkYWN0aXZl
QnVpbGRDb25maWcoKSAtbGd0ZXN0CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RXZWJLaXRBUEkucHJpIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnByaQpp
bmRleCA5NTIwMTY4Li5iOTA2MDE4IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RXZWJLaXRBUEkucHJpCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS5w
cmkKQEAgLTgsOCArOCwxMiBAQCBRVCArPSBjb3JlIGNvcmUtcHJpdmF0ZSBndWkgZ3VpLXByaXZh
dGUgd2Via2l0IHF1aWNrIHF1aWNrLXByaXZhdGUgcW1sLXByaXZhdGUgdgogCiBDT05GSUcgKz0g
Y29tcGlsaW5nX3RoaXJkcGFydHlfY29kZQogCi1TT1VSQ0VTICs9ICQkUFdELyouY3BwCi1TT1VS
Q0VTICs9ICQkUFdEL3F0LyouY3BwCitTT1VSQ0VTICs9IFwKKyAgICAkJFBXRC9KYXZhU2NyaXB0
VGVzdC5jcHAgXAorICAgICQkUFdEL1BsYXRmb3JtVXRpbGl0aWVzLmNwcCBcCisgICAgJCRQV0Qv
VGVzdHNDb250cm9sbGVyLmNwcCBcCisgICAgJCRQV0QvcXQvbWFpbi5jcHAgXAorICAgICQkUFdE
L3F0L1BsYXRmb3JtVXRpbGl0aWVzUXQuY3BwIFwKKyAgICAkJFBXRC9xdC9QbGF0Zm9ybVdlYlZp
ZXdRdC5jcHAKIAogTElCUyArPSAtTCQke1JPT1RfQlVJTERfRElSfS9Tb3VyY2UvVGhpcmRQYXJ0
eS9ndGVzdC8kJGFjdGl2ZUJ1aWxkQ29uZmlnKCkgLWxndGVzdAotCmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkucHJvIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0V2ViS2l0QVBJLnBybwppbmRleCAxNWU4MWMwLi5jMWY4OTM5IDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkucHJvCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdFdlYktpdEFQSS5wcm8KQEAgLTEsMyArMSw5IEBACiBURU1QTEFURSA9IHN1YmRpcnMK
K0NPTkZJRyArPSBvcmRlcmVkCiAKLVNVQkRJUlMgKz0gVGVzdHMvV1RGIFRlc3RzL0phdmFTY3Jp
cHRDb3JlIFRlc3RzL1dlYktpdDIKK2Rlcml2ZWRfc291cmNlcy5maWxlID0gRGVyaXZlZFNvdXJj
ZXMucHJpCitpbmplY3RlZF9idW5kbGUuZmlsZSA9IEluamVjdGVkQnVuZGxlLnByaQorCitTVUJE
SVJTICs9IGRlcml2ZWRfc291cmNlcyBpbmplY3RlZF9idW5kbGUgVGVzdHMvV1RGIFRlc3RzL0ph
dmFTY3JpcHRDb3JlIFRlc3RzL1dlYktpdDIKKworYWRkU3RyaWN0U3ViZGlyT3JkZXJCZXR3ZWVu
KGRlcml2ZWRfc291cmNlcywgaW5qZWN0ZWRfYnVuZGxlKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1dlYktpdDIucHJvIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQyL1dlYktpdDIucHJvCmluZGV4IGQ3MmJiNzAuLmVkZmM4ZDMgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9XZWJLaXQyLnBybworKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvV2ViS2l0Mi5wcm8KQEAgLTMsMjQg
KzMsMTQgQEAgVEFSR0VUID0gdHN0X3dlYmtpdDIKIAogU09VUkNFUyArPSBcCiAgICAgQWJvdXRC
bGFua0xvYWQuY3BwIFwKLSAgICBET01XaW5kb3dFeHRlbnNpb25CYXNpYy5jcHAgXAotICAgIERP
TVdpbmRvd0V4dGVuc2lvbk5vQ2FjaGUuY3BwIFwKLSAgICBEb2N1bWVudFN0YXJ0VXNlclNjcmlw
dEFsZXJ0Q3Jhc2guY3BwIFwKICAgICBFdmFsdWF0ZUphdmFTY3JpcHQuY3BwIFwKICAgICBGYWls
ZWRMb2FkLmNwcCBcCi0gICAgRmluZC5jcHAgXAotICAgIEZvcmNlUmVwYWludC5jcHAgXAotICAg
IEZyYW1lTUlNRVR5cGVIVE1MLmNwcCBcCi0gICAgRnJhbWVNSU1FVHlwZVBORy5jcHAgXAogICAg
IEdldEluamVjdGVkQnVuZGxlSW5pdGlhbGl6YXRpb25Vc2VyRGF0YUNhbGxiYWNrLmNwcCBcCi0g
ICAgSGl0VGVzdFJlc3VsdE5vZGVIYW5kbGUuY3BwIFwKICAgICBMb2FkQWx0ZXJuYXRlSFRNTFN0
cmluZ1dpdGhOb25EaXJlY3RvcnlVUkwuY3BwIFwKLSAgICBMb2FkQ2FuY2VsZWROb1NlcnZlclJl
ZGlyZWN0Q2FsbGJhY2suY3BwIFwKLSAgICBNb3VzZU1vdmVBZnRlckNyYXNoLmNwcCBcCiAgICAg
UmVsb2FkUGFnZUFmdGVyQ3Jhc2guY3BwIFwKLSAgICBOZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlM
YXlvdXQuY3BwIFwKLSAgICBOZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGYWlscy5jcHAg
XAotICAgIE5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvckltYWdlcy5jcHAgXAotICAg
IFBhZ2VMb2FkQmFzaWMuY3BwCisgICAgUHJldmVudEVtcHR5VXNlckFnZW50LmNwcCBcCisgICAg
V0tDb25uZWN0aW9uLmNwcCBcCisgICAgV0tTdHJpbmcuY3BwIFwKKyAgICBXS1N0cmluZ0pTU3Ry
aW5nLmNwcAogCiBpbmNsdWRlKC4uLy4uL1Rlc3RXZWJLaXRBUEkucHJpKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188554</attachid>
            <date>2013-02-15 06:45:13 -0800</date>
            <delta_ts>2013-02-15 07:31:52 -0800</delta_ts>
            <desc>FullPatch</desc>
            <filename>Patch</filename>
            <type>text/plain</type>
            <size>15250</size>
            <attacher name="Allan Sandfeld Jensen">allan.jensen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmll
d19wLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcC5o
CmluZGV4IDQ1N2RlNjUuLmYxYWQ5NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3AuaApAQCAtNDgsNiArNDgsMTAgQEAgbmFtZXNwYWNl
IFdUUiB7CiBjbGFzcyBQbGF0Zm9ybVdlYlZpZXc7CiB9CiAKK25hbWVzcGFjZSBUZXN0V2ViS2l0
QVBJIHsKK2NsYXNzIFBsYXRmb3JtV2ViVmlldzsKK30KKwogbmFtZXNwYWNlIFdlYktpdCB7CiBz
dHJ1Y3QgUXRSZWZDb3VudGVkTmV0d29ya1JlcXVlc3REYXRhOwogY2xhc3MgUGFnZVZpZXdwb3J0
Q29udHJvbGxlckNsaWVudFF0OwpAQCAtMjI0LDYgKzIyOCw3IEBAIHByaXZhdGU6CiAgICAgZnJp
ZW5kIGNsYXNzIFdlYktpdDo6UXRXZWJQYWdlUG9saWN5Q2xpZW50OwogICAgIGZyaWVuZCBjbGFz
cyBXZWJLaXQ6OlF0V2ViUGFnZVVJQ2xpZW50OwogICAgIGZyaWVuZCBjbGFzcyBXVFI6OlBsYXRm
b3JtV2ViVmlldzsKKyAgICBmcmllbmQgY2xhc3MgVGVzdFdlYktpdEFQSTo6UGxhdGZvcm1XZWJW
aWV3OwogICAgIGZyaWVuZCBjbGFzcyBRUXVpY2tXZWJWaWV3RXhwZXJpbWVudGFsOwogfTsKIApk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9EZXJpdmVkU291cmNlcy5wcmkgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL0Rlcml2ZWRTb3VyY2VzLnByaQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi5jYjM5MWFkCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9EZXJpdmVkU291cmNlcy5wcmkKQEAgLTAsMCArMSwxMiBAQAorIyAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisj
IERlcml2ZWQgc291cmNlcyBmb3IgVGVzdFdlYktpdEFQSQorIworIyBTZWUgJ1Rvb2xzL3FtYWtl
L1JFQURNRScgZm9yIGFuIG92ZXJ2aWV3IG9mIHRoZSBidWlsZCBzeXN0ZW0KKyMgLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQorCitURU1QTEFURSA9IGRlcml2ZWQKKworIyBNYWtlIHN1cmUgZm9yd2FyZGVkIGhlYWRlcnMg
bmVlZGVkIGJ5IHRoaXMgcHJvamVjdCBhcmUgcHJlc2VudAorZndoZWFkZXJfZ2VuZXJhdG9yLmNv
bW1hbmRzID0gcGVybCAkJHtST09UX1dFQktJVF9ESVJ9L1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMv
Z2VuZXJhdGUtZm9yd2FyZGluZy1oZWFkZXJzLnBsICQke1JPT1RfV0VCS0lUX0RJUn0vVG9vbHMv
VGVzdFdlYktpdEFQSSAkJHtST09UX0JVSUxEX0RJUn0vU291cmNlL2luY2x1ZGUgcXQKK2Z3aGVh
ZGVyX2dlbmVyYXRvci5kZXBlbmRzICA9ICQke1JPT1RfV0VCS0lUX0RJUn0vU291cmNlL1dlYktp
dDIvU2NyaXB0cy9nZW5lcmF0ZS1mb3J3YXJkaW5nLWhlYWRlcnMucGwKK0dFTkVSQVRPUlMgKz0g
ZndoZWFkZXJfZ2VuZXJhdG9yCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL0luamVj
dGVkQnVuZGxlLnByaSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvSW5qZWN0ZWRCdW5kbGUucHJpCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAzY2M0NGEKLS0tIC9kZXYvbnVsbAor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL0luamVjdGVkQnVuZGxlLnByaQpAQCAtMCwwICsxLDUx
IEBACisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KKyMgUHJvamVjdCBmaWxlIGZvciBUZXN0V2ViS2l0QVBJJ3MgSW5q
ZWN0ZWRCdW5kbGUKKyMKKyMgU2VlICdUb29scy9xbWFrZS9SRUFETUUnIGZvciBhbiBvdmVydmll
dyBvZiB0aGUgYnVpbGQgc3lzdGVtCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworVEVNUExBVEUgPSBsaWIKK1RB
UkdFVCA9IFRlc3RXZWJLaXRBUElJbmplY3RlZEJ1bmRsZQorCitJTkNMVURFUEFUSCArPSAkJFBX
RCAkJHtST09UX1dFQktJVF9ESVJ9L1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUKKwor
U09VUkNFUyArPSBcCisgICAgJCRQV0QvSW5qZWN0ZWRCdW5kbGVDb250cm9sbGVyLmNwcCBcCisg
ICAgJCRQV0QvSW5qZWN0ZWRCdW5kbGVDb250cm9sbGVyLmggXAorICAgICQkUFdEL0luamVjdGVk
QnVuZGxlTWFpbi5jcHAgXAorICAgICQkUFdEL0luamVjdGVkQnVuZGxlVGVzdC5oIFwKKyAgICAk
JFBXRC9QbGF0Zm9ybVV0aWxpdGllcy5jcHAgXAorICAgICQkUFdEL1BsYXRmb3JtVXRpbGl0aWVz
LmggXAorICAgICQkUFdEL3F0L0luamVjdGVkQnVuZGxlQ29udHJvbGxlclF0LmNwcCBcCisgICAg
JCRQV0QvcXQvUGxhdGZvcm1VdGlsaXRpZXNRdC5jcHAgXAorICAgICQkUFdEL1Rlc3RzL1dlYktp
dDIvQ2FuSGFuZGxlUmVxdWVzdF9CdW5kbGUuY3BwIFwKKyAgICAkJFBXRC9UZXN0cy9XZWJLaXQy
L0RvY3VtZW50U3RhcnRVc2VyU2NyaXB0QWxlcnRDcmFzaF9CdW5kbGUuY3BwIFwKKyAgICAkJFBX
RC9UZXN0cy9XZWJLaXQyL0RPTVdpbmRvd0V4dGVuc2lvbkJhc2ljX0J1bmRsZS5jcHAgXAorICAg
ICQkUFdEL1Rlc3RzL1dlYktpdDIvRE9NV2luZG93RXh0ZW5zaW9uTm9DYWNoZV9CdW5kbGUuY3Bw
IFwKKyAgICAkJFBXRC9UZXN0cy9XZWJLaXQyL0dldEluamVjdGVkQnVuZGxlSW5pdGlhbGl6YXRp
b25Vc2VyRGF0YUNhbGxiYWNrX0J1bmRsZS5jcHAgXAorICAgICQkUFdEL1Rlc3RzL1dlYktpdDIv
SGl0VGVzdFJlc3VsdE5vZGVIYW5kbGVfQnVuZGxlLmNwcCBcCisgICAgJCRQV0QvVGVzdHMvV2Vi
S2l0Mi9JbmplY3RlZEJ1bmRsZUJhc2ljX0J1bmRsZS5jcHAgXAorICAgICQkUFdEL1Rlc3RzL1dl
YktpdDIvSW5qZWN0ZWRCdW5kbGVJbml0aWFsaXphdGlvblVzZXJEYXRhQ2FsbGJhY2tXaW5zX0J1
bmRsZS5jcHAgXAorICAgICQkUFdEL1Rlc3RzL1dlYktpdDIvTG9hZENhbmNlbGVkTm9TZXJ2ZXJS
ZWRpcmVjdENhbGxiYWNrX0J1bmRsZS5jcHAgXAorICAgICQkUFdEL1Rlc3RzL1dlYktpdDIvTW91
c2VNb3ZlQWZ0ZXJDcmFzaF9CdW5kbGUuY3BwIFwKKyAgICAkJFBXRC9UZXN0cy9XZWJLaXQyL05l
d0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dF9CdW5kbGUuY3BwIFwKKyAgICAkJFBXRC9UZXN0
cy9XZWJLaXQyL05ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZhaWxzX0J1bmRsZS5jcHAg
XAorICAgICQkUFdEL1Rlc3RzL1dlYktpdDIvTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0
Rm9ySW1hZ2VzX0J1bmRsZS5jcHAgXAorICAgICQkUFdEL1Rlc3RzL1dlYktpdDIvTmV3Rmlyc3RW
aXN1YWxseU5vbkVtcHR5TGF5b3V0RnJhbWVzX0J1bmRsZS5jcHAgXAorICAgICQkUFdEL1Rlc3Rz
L1dlYktpdDIvUGFyZW50RnJhbWVfQnVuZGxlLmNwcCBcCisgICAgJCRQV0QvVGVzdHMvV2ViS2l0
Mi9SZXNwb25zaXZlbmVzc1RpbWVyRG9lc250RmlyZUVhcmx5X0J1bmRsZS5jcHAgXAorICAgICQk
UFdEL1Rlc3RzL1dlYktpdDIvU2hvdWxkR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW1fQnVuZGxlLmNw
cCBcCisgICAgJCRQV0QvVGVzdHMvV2ViS2l0Mi9Vc2VyTWVzc2FnZV9CdW5kbGUuY3BwIFwKKyAg
ICAkJFBXRC9UZXN0cy9XZWJLaXQyL1dpbGxTZW5kU3VibWl0RXZlbnRfQnVuZGxlLmNwcCBcCisg
ICAgJCRQV0QvVGVzdHMvV2ViS2l0Mi9XS0Nvbm5lY3Rpb25fQnVuZGxlLmNwcAorCisKK0RFU1RE
SVIgPSAkJHtST09UX0JVSUxEX0RJUn0vbGliCisKK1FUICs9IGNvcmUgd2Via2l0CisKK1dFQktJ
VCArPSB3dGYgamF2YXNjcmlwdGNvcmUgd2ViY29yZSB3ZWJraXQyCisKK0NPTkZJRyArPSBwbHVn
aW4gcnBhdGggY29tcGlsaW5nX3RoaXJkcGFydHlfY29kZQorCitMSUJTICs9IC1MJCR7Uk9PVF9C
VUlMRF9ESVJ9L1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0LyQkYWN0aXZlQnVpbGRDb25maWcoKSAt
bGd0ZXN0CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3JtV2ViVmlldy5o
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9ybVdlYlZpZXcuaAppbmRleCBkY2FmNDQ4Li5i
NTZjMDk2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3JtV2ViVmlldy5o
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1XZWJWaWV3LmgKQEAgLTUwLDYgKzUw
LDEzIEBAIHR5cGVkZWYgR3RrV2lkZ2V0ICpQbGF0Zm9ybVdpbmRvdzsKIHR5cGVkZWYgc3RydWN0
IF9FY29yZV9FdmFzIEVjb3JlX0V2YXM7CiB0eXBlZGVmIFdLVmlld1JlZiBQbGF0Zm9ybVdLVmll
dzsKIHR5cGVkZWYgRWNvcmVfRXZhcyogUGxhdGZvcm1XaW5kb3c7CisjZWxpZiBQTEFURk9STShR
VCkKK1FUX0JFR0lOX05BTUVTUEFDRQorY2xhc3MgUVF1aWNrVmlldzsKK1FUX0VORF9OQU1FU1BB
Q0UKK2NsYXNzIFFRdWlja1dlYlZpZXc7Cit0eXBlZGVmIFFRdWlja1dlYlZpZXcqIFBsYXRmb3Jt
V0tWaWV3OwordHlwZWRlZiBRUXVpY2tWaWV3KiBQbGF0Zm9ybVdpbmRvdzsKICNlbmRpZgogCiBu
YW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RXZWJLaXRBUEkucHJpIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnBy
aQppbmRleCBkM2Y3MTdlLi5iOTA2MDE4IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RXZWJLaXRBUEkucHJpCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQ
SS5wcmkKQEAgLTEsMTQgKzEsMTkgQEAKIAogSU5DTFVERVBBVEggKz0gJCRQV0QgJCR7Uk9PVF9X
RUJLSVRfRElSfS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlCi1XRUJLSVQgKz0gd3Rm
IGphdmFzY3JpcHRjb3JlCitXRUJLSVQgKz0gd3RmIGphdmFzY3JpcHRjb3JlIHdlYmtpdDIKIAog
REVGSU5FUyArPSBRVF9OT19DQVNUX0ZST01fQVNDSUkKIAotUVQgKz0gY29yZSBndWkgd2Via2l0
CitRVCArPSBjb3JlIGNvcmUtcHJpdmF0ZSBndWkgZ3VpLXByaXZhdGUgd2Via2l0IHF1aWNrIHF1
aWNrLXByaXZhdGUgcW1sLXByaXZhdGUgdjgtcHJpdmF0ZQogCiBDT05GSUcgKz0gY29tcGlsaW5n
X3RoaXJkcGFydHlfY29kZQogCi1TT1VSQ0VTICs9ICQkUFdELyouY3BwCi1TT1VSQ0VTICs9ICQk
UFdEL3F0LyouY3BwCitTT1VSQ0VTICs9IFwKKyAgICAkJFBXRC9KYXZhU2NyaXB0VGVzdC5jcHAg
XAorICAgICQkUFdEL1BsYXRmb3JtVXRpbGl0aWVzLmNwcCBcCisgICAgJCRQV0QvVGVzdHNDb250
cm9sbGVyLmNwcCBcCisgICAgJCRQV0QvcXQvbWFpbi5jcHAgXAorICAgICQkUFdEL3F0L1BsYXRm
b3JtVXRpbGl0aWVzUXQuY3BwIFwKKyAgICAkJFBXRC9xdC9QbGF0Zm9ybVdlYlZpZXdRdC5jcHAK
IAogTElCUyArPSAtTCQke1JPT1RfQlVJTERfRElSfS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC8k
JGFjdGl2ZUJ1aWxkQ29uZmlnKCkgLWxndGVzdApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0V2ViS2l0QVBJLnBybyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQ
SS5wcm8KaW5kZXggZjA2M2JjMC4uYzFmODkzOSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0V2ViS2l0QVBJLnBybworKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJL
aXRBUEkucHJvCkBAIC0xLDMgKzEsOSBAQAogVEVNUExBVEUgPSBzdWJkaXJzCitDT05GSUcgKz0g
b3JkZXJlZAogCi1TVUJESVJTICs9IFRlc3RzL1dURgorZGVyaXZlZF9zb3VyY2VzLmZpbGUgPSBE
ZXJpdmVkU291cmNlcy5wcmkKK2luamVjdGVkX2J1bmRsZS5maWxlID0gSW5qZWN0ZWRCdW5kbGUu
cHJpCisKK1NVQkRJUlMgKz0gZGVyaXZlZF9zb3VyY2VzIGluamVjdGVkX2J1bmRsZSBUZXN0cy9X
VEYgVGVzdHMvSmF2YVNjcmlwdENvcmUgVGVzdHMvV2ViS2l0MgorCithZGRTdHJpY3RTdWJkaXJP
cmRlckJldHdlZW4oZGVyaXZlZF9zb3VyY2VzLCBpbmplY3RlZF9idW5kbGUpCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
LnBybyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUucHJvCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFlNGI4MDYKLS0t
IC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLnBybwpAQCAtMCwwICsxLDYgQEAKK1RFTVBMQVRFID0gYXBwCitUQVJH
RVQgPSB0c3RfanNjCisKK1NPVVJDRVMgKz0gKi5jcHAKKworaW5jbHVkZSguLi8uLi9UZXN0V2Vi
S2l0QVBJLnByaSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dU
Ri5wcm8gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9XVEYucHJvCmluZGV4IGQzZTNi
MGQuLjA0YWJlMWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dU
Ri5wcm8KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV1RGLnBybwpAQCAtMTgs
OCArMTgsOCBAQCBTT1VSQ0VTICs9IFwKICAgICBTdHJpbmdJbXBsLmNwcCBcCiAgICAgU3RyaW5n
T3BlcmF0b3JzLmNwcCBcCiAgICAgVGVtcG9yYXJ5Q2hhbmdlLmNwcCBcCi0gICAgVmVjdG9yQmFz
aWMuY3BwIFwKICAgICBWZWN0b3IuY3BwIFwKKyAgICBWZWN0b3JCYXNpYy5jcHAgXAogICAgIFZl
Y3RvclJldmVyc2UuY3BwIFwKICAgICBXVEZTdHJpbmcuY3BwCiAKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9XZWJLaXQyLnBybyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Mi9XZWJLaXQyLnBybwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi5lZGZjOGQzCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQyL1dlYktpdDIucHJvCkBAIC0wLDAgKzEsMTYgQEAKK1RFTVBMQVRFID0g
YXBwCitUQVJHRVQgPSB0c3Rfd2Via2l0MgorCitTT1VSQ0VTICs9IFwKKyAgICBBYm91dEJsYW5r
TG9hZC5jcHAgXAorICAgIEV2YWx1YXRlSmF2YVNjcmlwdC5jcHAgXAorICAgIEZhaWxlZExvYWQu
Y3BwIFwKKyAgICBHZXRJbmplY3RlZEJ1bmRsZUluaXRpYWxpemF0aW9uVXNlckRhdGFDYWxsYmFj
ay5jcHAgXAorICAgIExvYWRBbHRlcm5hdGVIVE1MU3RyaW5nV2l0aE5vbkRpcmVjdG9yeVVSTC5j
cHAgXAorICAgIFJlbG9hZFBhZ2VBZnRlckNyYXNoLmNwcCBcCisgICAgUHJldmVudEVtcHR5VXNl
ckFnZW50LmNwcCBcCisgICAgV0tDb25uZWN0aW9uLmNwcCBcCisgICAgV0tTdHJpbmcuY3BwIFwK
KyAgICBXS1N0cmluZ0pTU3RyaW5nLmNwcAorCitpbmNsdWRlKC4uLy4uL1Rlc3RXZWJLaXRBUEku
cHJpKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9xdC9QbGF0Zm9ybVV0aWxpdGll
c1F0LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvcXQvUGxhdGZvcm1VdGlsaXRpZXNRdC5jcHAK
aW5kZXggN2M3NWFkMS4uZGUxOTAwNiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9x
dC9QbGF0Zm9ybVV0aWxpdGllc1F0LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL3F0L1Bs
YXRmb3JtVXRpbGl0aWVzUXQuY3BwCkBAIC0yMSw3ICsyMSwxNCBAQAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCiAKKyNpbmNsdWRlIDxXZWJLaXQy
L1dLU3RyaW5nUXQuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLTmF0aXZlRXZlbnQuaD4KKyNpbmNs
dWRlICJxdC9XS1VSTFF0LmgiCisKICNpbmNsdWRlIDxRQ29yZUFwcGxpY2F0aW9uPgorI2luY2x1
ZGUgPFFEaXI+CisjaW5jbHVkZSA8UVVybD4KKyNpbmNsdWRlIDxRVGhyZWFkPgogCiAjaW5jbHVk
ZSA8dW5pc3RkLmg+CiAKQEAgLTM2LDE5ICs0MywyNiBAQCB2b2lkIHJ1bihib29sKiBkb25lKQog
CiB2b2lkIHNsZWVwKGRvdWJsZSBzZWNvbmRzKQogewotICAgIHVzbGVlcChzZWNvbmRzICogMTAw
MDAwMCk7CisgICAgUVRocmVhZDo6c2xlZXAoc2Vjb25kcyk7CiB9CiAKIFdLU3RyaW5nUmVmIGNy
ZWF0ZUluamVjdGVkQnVuZGxlUGF0aCgpCiB7Ci0gICAgLy8gIyMjIEZJWE1FLgotICAgIHJldHVy
biBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiIik7CisgICAgUVN0cmluZyBwYXRoID0g
UVN0cmluZzo6ZnJvbUxvY2FsOEJpdChxZ2V0ZW52KCJURVNUX1dFQktJVF9BUElfSU5KRUNURURf
QlVORExFX1BBVEgiKSk7CisgICAgaWYgKHBhdGguaXNFbXB0eSgpKQorICAgICAgICBwYXRoID0g
UUZpbGVJbmZvKFFDb3JlQXBwbGljYXRpb246OmFwcGxpY2F0aW9uRGlyUGF0aCgpICsgUVN0cmlu
Z0xpdGVyYWwoIi8uLi9saWIvbGliVGVzdFdlYktpdEFQSUluamVjdGVkQnVuZGxlIikpLmFic29s
dXRlRmlsZVBhdGgoKTsKKworICAgIHJldHVybiBXS1N0cmluZ0NyZWF0ZVdpdGhRU3RyaW5nKHBh
dGgpOwogfQogCiBXS1VSTFJlZiBjcmVhdGVVUkxGb3JSZXNvdXJjZShjb25zdCBjaGFyKiByZXNv
dXJjZSwgY29uc3QgY2hhciogZXh0ZW5zaW9uKQogewotICAgIC8vICMjIyBGSVhNRS4KLSAgICBy
ZXR1cm4gV0tVUkxDcmVhdGVXaXRoVVRGOENTdHJpbmcoIiIpOworICAgIFFTdHJpbmcgcGF0aCA9
IFFTdHJpbmc6OmZyb21Mb2NhbDhCaXQocWdldGVudigiVEVTVF9XRUJLSVRfQVBJX1JFU09VUkNF
U19QQVRIIikpOworICAgIGlmIChwYXRoLmlzRW1wdHkoKSkKKyAgICAgICAgcGF0aCA9IFFDb3Jl
QXBwbGljYXRpb246OmFwcGxpY2F0aW9uRGlyUGF0aCgpICsgUVN0cmluZ0xpdGVyYWwoIi8uLi9y
ZXNvdXJjZXMiKTsKKyAgICBRU3RyaW5nIGZpbGVuYW1lID0gUVN0cmluZzo6ZnJvbUxvY2FsOEJp
dChyZXNvdXJjZSkgKyBRU3RyaW5nTGl0ZXJhbCgiLiIpICsgUVN0cmluZzo6ZnJvbUxvY2FsOEJp
dChleHRlbnNpb24pOworCisgICAgcmV0dXJuIFdLVVJMQ3JlYXRlV2l0aFFVcmwoUVVybDo6ZnJv
bUxvY2FsRmlsZShRRGlyKHBhdGgpLmFic29sdXRlRmlsZVBhdGgoZmlsZW5hbWUpKSk7CiB9CiAK
IFdLVVJMUmVmIFVSTEZvck5vbkV4aXN0ZW50UmVzb3VyY2UoKQpAQCAtNTYsNSArNzAsMTAgQEAg
V0tVUkxSZWYgVVJMRm9yTm9uRXhpc3RlbnRSZXNvdXJjZSgpCiAgICAgcmV0dXJuIFdLVVJMQ3Jl
YXRlV2l0aFVURjhDU3RyaW5nKCJmaWxlOi8vL2RvZXMtbm90LWV4aXN0Lmh0bWwiKTsKIH0KIAor
Ym9vbCBpc0tleURvd24oV0tOYXRpdmVFdmVudFB0ciBldmVudCkKK3sKKyAgICByZXR1cm4gZXZl
bnQtPnR5cGUoKSA9PSBRRXZlbnQ6OktleVByZXNzOworfQorCiB9IC8vIG5hbWVzcGFjZSBVdGls
CiB9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL3F0L1BsYXRmb3JtV2ViVmlld1F0LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvcXQv
UGxhdGZvcm1XZWJWaWV3UXQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjBjNjM1YWIKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL3F0L1BsYXRm
b3JtV2ViVmlld1F0LmNwcApAQCAtMCwwICsxLDE1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTAgVW5pdmVyc2l0eSBvZiBTemVnZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTMgRGlnaWEgUGxjLiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICog
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
CisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJQbGF0Zm9y
bVdlYlZpZXcuaCIKKyNpbmNsdWRlICJxcXVpY2t3ZWJwYWdlX3AuaCIKKyNpbmNsdWRlICJxcXVp
Y2t3ZWJ2aWV3X3AuaCIKKworI2luY2x1ZGUgPFdlYktpdDIvV0tSZXRhaW5QdHIuaD4KKworI2lu
Y2x1ZGUgPFFDb3JlQXBwbGljYXRpb24+CisjaW5jbHVkZSA8UUV2ZW50TG9vcD4KKyNpbmNsdWRl
IDxRUW1sUHJvcGVydHk+CisjaW5jbHVkZSA8UXRRdWljay9RUXVpY2tWaWV3PgorI2luY2x1ZGUg
PFF0UXVpY2svcHJpdmF0ZS9xcXVpY2t3aW5kb3dfcC5oPgorI2luY2x1ZGUgPHFwYS9xd2luZG93
c3lzdGVtaW50ZXJmYWNlLmg+CisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKworY2xhc3Mg
V3JhcHBlcldpbmRvdyA6IHB1YmxpYyBRUXVpY2tWaWV3IHsKKyAgICBRX09CSkVDVAorcHVibGlj
OgorICAgIFdyYXBwZXJXaW5kb3coUVF1aWNrV2ViVmlldyogdmlldykKKyAgICAgICAgOiBRUXVp
Y2tWaWV3KFFVcmwoUVN0cmluZ0xpdGVyYWwoImRhdGE6dGV4dC9wbGFpbixpbXBvcnQgUXRRdWlj
ayAyLjBcbkl0ZW0geyBvYmplY3ROYW1lOiAncm9vdCcgfSIpKSkKKyAgICAgICAgLCBtX3ZpZXco
dmlldykKKyAgICB7CisgICAgICAgIGNvbm5lY3QodGhpcywgU0lHTkFMKHN0YXR1c0NoYW5nZWQo
UVF1aWNrVmlldzo6U3RhdHVzKSksIFNMT1QoaGFuZGxlU3RhdHVzQ2hhbmdlZChRUXVpY2tWaWV3
OjpTdGF0dXMpKSk7CisgICAgfQorCitwcml2YXRlIFFfU0xPVFM6CisgICAgdm9pZCBoYW5kbGVT
dGF0dXNDaGFuZ2VkKFFRdWlja1ZpZXc6OlN0YXR1cyBzdGF0dXMpCisgICAgeworICAgICAgICBp
ZiAoc3RhdHVzICE9IFFRdWlja1ZpZXc6OlJlYWR5KQorICAgICAgICAgICAgcmV0dXJuOworCisg
ICAgICAgIHNldEdlb21ldHJ5KDAsIDAsIDgwMCwgNjAwKTsKKworICAgICAgICBzZXRSZXNpemVN
b2RlKFFRdWlja1ZpZXc6OlNpemVSb290T2JqZWN0VG9WaWV3KTsKKyAgICAgICAgbV92aWV3LT5z
ZXRQYXJlbnRJdGVtKHJvb3RPYmplY3QoKSk7CisgICAgICAgIFFRbWxQcm9wZXJ0eTo6d3JpdGUo
bV92aWV3LCBRU3RyaW5nTGl0ZXJhbCgiYW5jaG9ycy5maWxsIiksIHFWYXJpYW50RnJvbVZhbHVl
KHJvb3RPYmplY3QoKSkpOworCisgICAgICAgIG1fdmlldy0+ZXhwZXJpbWVudGFsKCktPnNldFJl
bmRlclRvT2Zmc2NyZWVuQnVmZmVyKHRydWUpOworCisgICAgICAgIFFXaW5kb3dTeXN0ZW1JbnRl
cmZhY2U6OmhhbmRsZVdpbmRvd0FjdGl2YXRlZCh0aGlzKTsKKyAgICAgICAgbV92aWV3LT5wYWdl
KCktPnNldEZvY3VzKHRydWUpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBRUXVpY2tXZWJWaWV3
KiBtX3ZpZXc7Cit9OworCitQbGF0Zm9ybVdlYlZpZXc6OlBsYXRmb3JtV2ViVmlldyhXS0NvbnRl
eHRSZWYgY29udGV4dFJlZiwgV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwUmVmKQoreworICAgIG1f
dmlldyA9IG5ldyBRUXVpY2tXZWJWaWV3KGNvbnRleHRSZWYsIHBhZ2VHcm91cFJlZik7CisgICAg
bV92aWV3LT5zZXRBbGxvd0FueUhUVFBTQ2VydGlmaWNhdGVGb3JMb2NhbEhvc3QodHJ1ZSk7Cisg
ICAgbV92aWV3LT5jb21wb25lbnRDb21wbGV0ZSgpOworCisgICAgbV93aW5kb3cgPSBuZXcgV3Jh
cHBlcldpbmRvdyhtX3ZpZXcpOworfQorCitQbGF0Zm9ybVdlYlZpZXc6On5QbGF0Zm9ybVdlYlZp
ZXcoKQoreworICAgIGRlbGV0ZSBtX3dpbmRvdzsKK30KKwordm9pZCBQbGF0Zm9ybVdlYlZpZXc6
OnJlc2l6ZVRvKHVuc2lnbmVkIHdpZHRoLCB1bnNpZ25lZCBoZWlnaHQpCit7CisgICAgLy8gSWYg
d2UgZG8gbm90IGhhdmUgYSBwbGF0Zm9ybSB3aW5kb3cgd2Ugd2lsbCBuZXZlciBnZXQgdGhlIG5l
Y2Vzc2FyeQorICAgIC8vIHJlc2l6ZSBldmVudCwgc28gc2ltdWxhdGUgaXQgaW4gdGhhdCBjYXNl
IHRvIG1ha2Ugc3VyZSB0aGUgcXVpY2t2aWV3IGlzCisgICAgLy8gcmVzaXplZCB0byB3aGF0IHRo
ZSBsYXlvdXQgdGVzdCBleHBlY3RzLgorICAgIGlmICghbV93aW5kb3ctPmhhbmRsZSgpKSB7Cisg
ICAgICAgIFFSZWN0IG5ld0dlb21ldHJ5KG1fd2luZG93LT54KCksIG1fd2luZG93LT55KCksIHdp
ZHRoLCBoZWlnaHQpOworICAgICAgICBRV2luZG93U3lzdGVtSW50ZXJmYWNlOjpoYW5kbGVHZW9t
ZXRyeUNoYW5nZShtX3dpbmRvdywgbmV3R2VvbWV0cnkpOworICAgICAgICBRV2luZG93U3lzdGVt
SW50ZXJmYWNlOjpmbHVzaFdpbmRvd1N5c3RlbUV2ZW50cygpOworICAgIH0KKworICAgIG1fd2lu
ZG93LT5yZXNpemUod2lkdGgsIGhlaWdodCk7Cit9CisKK1dLUGFnZVJlZiBQbGF0Zm9ybVdlYlZp
ZXc6OnBhZ2UoKSBjb25zdAoreworICAgIHJldHVybiBtX3ZpZXctPnBhZ2VSZWYoKTsKK30KKwor
dm9pZCBQbGF0Zm9ybVdlYlZpZXc6OmZvY3VzKCkKK3sKKyAgICBtX3ZpZXctPnNldEZvY3VzKHRy
dWUpOworfQorCit2b2lkIFBsYXRmb3JtV2ViVmlldzo6c2ltdWxhdGVTcGFjZWJhcktleVByZXNz
KCkKK3sKKyAgICBRS2V5RXZlbnQgZXZlbnQoUUV2ZW50OjpLZXlQcmVzcywgJyAnLCBRdDo6Tm9N
b2RpZmllcik7CisgICAgUUNvcmVBcHBsaWNhdGlvbjo6c2VuZEV2ZW50KG1fd2luZG93LCAmZXZl
bnQpOworICAgIFFLZXlFdmVudCBldmVudDIoUUV2ZW50OjpLZXlSZWxlYXNlLCAnICcsIFF0OjpO
b01vZGlmaWVyKTsKKyAgICBRQ29yZUFwcGxpY2F0aW9uOjpzZW5kRXZlbnQobV93aW5kb3csICZl
dmVudDIpOworfQorCit2b2lkIFBsYXRmb3JtV2ViVmlldzo6c2ltdWxhdGVBbHRLZXlQcmVzcygp
Cit7CisgICAgUUtleUV2ZW50IGV2ZW50KFFFdmVudDo6S2V5UHJlc3MsIDAsIFF0OjpBbHRNb2Rp
Zmllcik7CisgICAgUUNvcmVBcHBsaWNhdGlvbjo6c2VuZEV2ZW50KG1fd2luZG93LCAmZXZlbnQp
OworICAgIFFLZXlFdmVudCBldmVudDIoUUV2ZW50OjpLZXlSZWxlYXNlLCAwLCBRdDo6QWx0TW9k
aWZpZXIpOworICAgIFFDb3JlQXBwbGljYXRpb246OnNlbmRFdmVudChtX3dpbmRvdywgJmV2ZW50
Mik7Cit9CisKK3ZvaWQgUGxhdGZvcm1XZWJWaWV3OjpzaW11bGF0ZU1vdXNlTW92ZSh1bnNpZ25l
ZCB4LCB1bnNpZ25lZCB5KQoreworICAgIFFQb2ludCBtb3VzZVBvcyh4LCB5KTsKKyAgICBRTW91
c2VFdmVudCBldmVudChRRXZlbnQ6Ok1vdXNlTW92ZSwgbW91c2VQb3MsIG1vdXNlUG9zLCBRdDo6
Tm9CdXR0b24sIFF0OjpOb0J1dHRvbiwgUXQ6Ok5vTW9kaWZpZXIpOworICAgIFFDb3JlQXBwbGlj
YXRpb246OnNlbmRFdmVudChtX3dpbmRvdywgJmV2ZW50KTsKK30KKwordm9pZCBQbGF0Zm9ybVdl
YlZpZXc6OnNpbXVsYXRlUmlnaHRDbGljayh1bnNpZ25lZCB4LCB1bnNpZ25lZCB5KQoreworICAg
IFFQb2ludCBtb3VzZVBvcyh4LCB5KTsKKyAgICBRTW91c2VFdmVudCBldmVudChRRXZlbnQ6Ok1v
dXNlTW92ZSwgbW91c2VQb3MsIG1vdXNlUG9zLCBRdDo6Tm9CdXR0b24sIFF0OjpOb0J1dHRvbiwg
UXQ6Ok5vTW9kaWZpZXIpOworICAgIFFDb3JlQXBwbGljYXRpb246OnNlbmRFdmVudChtX3dpbmRv
dywgJmV2ZW50KTsKKyAgICBRTW91c2VFdmVudCBldmVudDIoUUV2ZW50OjpNb3VzZUJ1dHRvblBy
ZXNzLCBtb3VzZVBvcywgbW91c2VQb3MsIFF0OjpSaWdodEJ1dHRvbiwgUXQ6OlJpZ2h0QnV0dG9u
LCBRdDo6Tm9Nb2RpZmllcik7CisgICAgUUNvcmVBcHBsaWNhdGlvbjo6c2VuZEV2ZW50KG1fd2lu
ZG93LCAmZXZlbnQyKTsKKyAgICBRTW91c2VFdmVudCBldmVudDMoUUV2ZW50OjpNb3VzZUJ1dHRv
blJlbGVhc2UsIG1vdXNlUG9zLCBtb3VzZVBvcywgUXQ6OlJpZ2h0QnV0dG9uLCBRdDo6Tm9CdXR0
b24sIFF0OjpOb01vZGlmaWVyKTsKKyAgICBRQ29yZUFwcGxpY2F0aW9uOjpzZW5kRXZlbnQobV93
aW5kb3csICZldmVudDMpOworfQorCit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCisKKyNp
bmNsdWRlICJQbGF0Zm9ybVdlYlZpZXdRdC5tb2MiCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188567</attachid>
            <date>2013-02-15 07:32:00 -0800</date>
            <delta_ts>2013-02-15 09:16:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109843-20130215162743.patch</filename>
            <type>text/plain</type>
            <size>20488</size>
            <attacher name="Allan Sandfeld Jensen">allan.jensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyOTc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNWRhMjFmNDVlNTg2MjRi
NzI4NTZjMjJiN2Y5NWVkN2RjYTNjOTBkOC4uZDZmM2RmYWE0MDVjYTU1NzA2ZDYzZmU5NjQzYTlm
NzU5NGU0NmE3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE1IEBACiAyMDEzLTAyLTE1ICBBbGxh
biBTYW5kZmVsZCBKZW5zZW4gIDxhbGxhbi5qZW5zZW5AZGlnaWEuY29tPgogCisgICAgICAgIFtR
dF1bV0syXSBTdXBwb3J0IFdLMiBBUEkgdGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTg0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3Au
aDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEkpOgorCisyMDEzLTAyLTE1ICBBbGxhbiBTYW5kZmVs
ZCBKZW5zZW4gIDxhbGxhbi5qZW5zZW5AZGlnaWEuY29tPgorCiAgICAgICAgIFNpbXBsaWZ5IGhp
dFRlc3RSZXN1bHRBdFBvaW50IGFuZCBub2Rlc0Zyb21SZWN0IEFQSXMKICAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1NzIwCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcC5oCmluZGV4IDQ1N2RlNjVl
MjUyNDk3YjhkYzY1MjYxOGI2MTRhZWVhZjMwOTkyOTIuLmYxYWQ5NjRlZGI1ZGFiNGYzMmMwYzU5
MzEwY2JkYTc5OGRkMzY0YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvcXQvcXF1aWNrd2Vidmlld19wLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9xdC9xcXVpY2t3ZWJ2aWV3X3AuaApAQCAtNDgsNiArNDgsMTAgQEAgbmFtZXNwYWNlIFdUUiB7
CiBjbGFzcyBQbGF0Zm9ybVdlYlZpZXc7CiB9CiAKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsK
K2NsYXNzIFBsYXRmb3JtV2ViVmlldzsKK30KKwogbmFtZXNwYWNlIFdlYktpdCB7CiBzdHJ1Y3Qg
UXRSZWZDb3VudGVkTmV0d29ya1JlcXVlc3REYXRhOwogY2xhc3MgUGFnZVZpZXdwb3J0Q29udHJv
bGxlckNsaWVudFF0OwpAQCAtMjI0LDYgKzIyOCw3IEBAIHByaXZhdGU6CiAgICAgZnJpZW5kIGNs
YXNzIFdlYktpdDo6UXRXZWJQYWdlUG9saWN5Q2xpZW50OwogICAgIGZyaWVuZCBjbGFzcyBXZWJL
aXQ6OlF0V2ViUGFnZVVJQ2xpZW50OwogICAgIGZyaWVuZCBjbGFzcyBXVFI6OlBsYXRmb3JtV2Vi
VmlldzsKKyAgICBmcmllbmQgY2xhc3MgVGVzdFdlYktpdEFQSTo6UGxhdGZvcm1XZWJWaWV3Owog
ICAgIGZyaWVuZCBjbGFzcyBRUXVpY2tXZWJWaWV3RXhwZXJpbWVudGFsOwogfTsKIApkaWZmIC0t
Z2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDJhNWE0YTFkYmIz
MTk3N2VlZGFmYWJmMGM4ZDgwYTE4OWUyYjhkZDguLjNlMmY2OGU1YzA0MDJjMzg1NmQ1NDExNTFl
OTFkZTJiZjJhNzA5ZjQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSw0MiBAQAorMjAxMy0wMi0xNSAgQWxsYW4gU2FuZGZlbGQgSmVu
c2VuICA8YWxsYW4uamVuc2VuQGRpZ2lhLmNvbT4KKworICAgICAgICBbUXRdW1dLMl0gU3VwcG9y
dCBXSzIgQVBJIHRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMDk4NDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvRGVyaXZlZFNvdXJjZXMucHJpOiBBZGRlZC4KKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL0luamVjdGVkQnVuZGxlLnByaTogQWRkZWQuCisgICAgICAgICog
VGVzdFdlYktpdEFQSS9QbGF0Zm9ybVdlYlZpZXcuaDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RXZWJLaXRBUEkucHJpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQ
SS5wcm86CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS5wcm86IEFkZGVkLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L1dURi5wcm86CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1dlYktpdDIu
cHJvOiBBZGRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL3F0L1BsYXRmb3JtVXRpbGl0aWVz
UXQuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VXRpbDo6c2xlZXApOgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6VXRpbDo6Y3JlYXRlSW5qZWN0ZWRCdW5kbGVQYXRoKToKKyAgICAgICAg
KFRlc3RXZWJLaXRBUEk6OlV0aWw6OmNyZWF0ZVVSTEZvclJlc291cmNlKToKKyAgICAgICAgKFRl
c3RXZWJLaXRBUEk6OlV0aWw6OmlzS2V5RG93bik6CisgICAgICAgIChVdGlsKToKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL3F0L1BsYXRmb3JtV2ViVmlld1F0LmNwcDogQWRkZWQuCisgICAgICAg
IChUZXN0V2ViS2l0QVBJKToKKyAgICAgICAgKFdyYXBwZXJXaW5kb3cpOgorICAgICAgICAoVGVz
dFdlYktpdEFQSTo6V3JhcHBlcldpbmRvdzo6V3JhcHBlcldpbmRvdyk6CisgICAgICAgIChUZXN0
V2ViS2l0QVBJOjpXcmFwcGVyV2luZG93OjpoYW5kbGVTdGF0dXNDaGFuZ2VkKToKKyAgICAgICAg
KFRlc3RXZWJLaXRBUEk6OlBsYXRmb3JtV2ViVmlldzo6UGxhdGZvcm1XZWJWaWV3KToKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OlBsYXRmb3JtV2ViVmlldzo6flBsYXRmb3JtV2ViVmlldyk6Cisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpQbGF0Zm9ybVdlYlZpZXc6OnJlc2l6ZVRvKToKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OlBsYXRmb3JtV2ViVmlldzo6cGFnZSk6CisgICAgICAgIChUZXN0
V2ViS2l0QVBJOjpQbGF0Zm9ybVdlYlZpZXc6OmZvY3VzKToKKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OlBsYXRmb3JtV2ViVmlldzo6c2ltdWxhdGVTcGFjZWJhcktleVByZXNzKToKKyAgICAgICAg
KFRlc3RXZWJLaXRBUEk6OlBsYXRmb3JtV2ViVmlldzo6c2ltdWxhdGVBbHRLZXlQcmVzcyk6Cisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpQbGF0Zm9ybVdlYlZpZXc6OnNpbXVsYXRlTW91c2VNb3Zl
KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlBsYXRmb3JtV2ViVmlldzo6c2ltdWxhdGVSaWdo
dENsaWNrKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL3F0L21haW4uY3BwOgorICAgICAgICAo
YWRkUXRXZWJQcm9jZXNzVG9QYXRoKToKKyAgICAgICAgKG1haW4pOgorCiAyMDEzLTAyLTE1ICBK
b2NoZW4gRWlzaW5nZXIgIDxqb2NoZW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFNwZWN1bGF0
aXZlIGJ1aWxkIGZpeCBmb3IgY2hyb21pdW0td2luLgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9EZXJpdmVkU291cmNlcy5wcmkgYi9Ub29scy9UZXN0V2ViS2l0QVBJL0Rlcml2ZWRT
b3VyY2VzLnByaQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYjM5MWFkNTljMjU3MzljYjRhYjE5NWM3YmEzMWU0Mjg1
NWFiOTQ1Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9EZXJpdmVkU291
cmNlcy5wcmkKQEAgLTAsMCArMSwxMiBAQAorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIERlcml2ZWQgc291cmNl
cyBmb3IgVGVzdFdlYktpdEFQSQorIworIyBTZWUgJ1Rvb2xzL3FtYWtlL1JFQURNRScgZm9yIGFu
IG92ZXJ2aWV3IG9mIHRoZSBidWlsZCBzeXN0ZW0KKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitURU1QTEFURSA9
IGRlcml2ZWQKKworIyBNYWtlIHN1cmUgZm9yd2FyZGVkIGhlYWRlcnMgbmVlZGVkIGJ5IHRoaXMg
cHJvamVjdCBhcmUgcHJlc2VudAorZndoZWFkZXJfZ2VuZXJhdG9yLmNvbW1hbmRzID0gcGVybCAk
JHtST09UX1dFQktJVF9ESVJ9L1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvZ2VuZXJhdGUtZm9yd2Fy
ZGluZy1oZWFkZXJzLnBsICQke1JPT1RfV0VCS0lUX0RJUn0vVG9vbHMvVGVzdFdlYktpdEFQSSAk
JHtST09UX0JVSUxEX0RJUn0vU291cmNlL2luY2x1ZGUgcXQKK2Z3aGVhZGVyX2dlbmVyYXRvci5k
ZXBlbmRzICA9ICQke1JPT1RfV0VCS0lUX0RJUn0vU291cmNlL1dlYktpdDIvU2NyaXB0cy9nZW5l
cmF0ZS1mb3J3YXJkaW5nLWhlYWRlcnMucGwKK0dFTkVSQVRPUlMgKz0gZndoZWFkZXJfZ2VuZXJh
dG9yCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL0luamVjdGVkQnVuZGxlLnByaSBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvSW5qZWN0ZWRCdW5kbGUucHJpCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFmNmJi
ZmZmN2I5Nzg5ZDc3YzhhYzA2ZjE4MWY0MzAzM2JjNDc3ODEKLS0tIC9kZXYvbnVsbAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL0luamVjdGVkQnVuZGxlLnByaQpAQCAtMCwwICsxLDU1IEBACisj
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KKyMgUHJvamVjdCBmaWxlIGZvciBUZXN0V2ViS2l0QVBJJ3MgSW5qZWN0ZWRC
dW5kbGUKKyMKKyMgU2VlICdUb29scy9xbWFrZS9SRUFETUUnIGZvciBhbiBvdmVydmlldyBvZiB0
aGUgYnVpbGQgc3lzdGVtCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworVEVNUExBVEUgPSBsaWIKK1RBUkdFVCA9
IFRlc3RXZWJLaXRBUElJbmplY3RlZEJ1bmRsZQorCitJTkNMVURFUEFUSCArPSAkJFBXRCAkJHtS
T09UX1dFQktJVF9ESVJ9L1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2luY2x1ZGUKKworU09VUkNF
UyArPSBcCisgICAgJCRQV0QvSW5qZWN0ZWRCdW5kbGVDb250cm9sbGVyLmNwcCBcCisgICAgJCRQ
V0QvSW5qZWN0ZWRCdW5kbGVDb250cm9sbGVyLmggXAorICAgICQkUFdEL0luamVjdGVkQnVuZGxl
TWFpbi5jcHAgXAorICAgICQkUFdEL0luamVjdGVkQnVuZGxlVGVzdC5oIFwKKyAgICAkJFBXRC9Q
bGF0Zm9ybVV0aWxpdGllcy5jcHAgXAorICAgICQkUFdEL1BsYXRmb3JtVXRpbGl0aWVzLmggXAor
ICAgICQkUFdEL3F0L0luamVjdGVkQnVuZGxlQ29udHJvbGxlclF0LmNwcCBcCisgICAgJCRQV0Qv
cXQvUGxhdGZvcm1VdGlsaXRpZXNRdC5jcHAgXAorICAgICQkUFdEL1Rlc3RzL1dlYktpdDIvQ2Fu
SGFuZGxlUmVxdWVzdF9CdW5kbGUuY3BwIFwKKyAgICAkJFBXRC9UZXN0cy9XZWJLaXQyL0RvY3Vt
ZW50U3RhcnRVc2VyU2NyaXB0QWxlcnRDcmFzaF9CdW5kbGUuY3BwIFwKKyAgICAkJFBXRC9UZXN0
cy9XZWJLaXQyL0RPTVdpbmRvd0V4dGVuc2lvbkJhc2ljX0J1bmRsZS5jcHAgXAorICAgICQkUFdE
L1Rlc3RzL1dlYktpdDIvRE9NV2luZG93RXh0ZW5zaW9uTm9DYWNoZV9CdW5kbGUuY3BwIFwKKyAg
ICAkJFBXRC9UZXN0cy9XZWJLaXQyL0dldEluamVjdGVkQnVuZGxlSW5pdGlhbGl6YXRpb25Vc2Vy
RGF0YUNhbGxiYWNrX0J1bmRsZS5jcHAgXAorICAgICQkUFdEL1Rlc3RzL1dlYktpdDIvSGl0VGVz
dFJlc3VsdE5vZGVIYW5kbGVfQnVuZGxlLmNwcCBcCisgICAgJCRQV0QvVGVzdHMvV2ViS2l0Mi9J
bmplY3RlZEJ1bmRsZUJhc2ljX0J1bmRsZS5jcHAgXAorICAgICQkUFdEL1Rlc3RzL1dlYktpdDIv
SW5qZWN0ZWRCdW5kbGVGcmFtZUhpdFRlc3RfQnVuZGxlLmNwcCBcCisgICAgJCRQV0QvVGVzdHMv
V2ViS2l0Mi9JbmplY3RlZEJ1bmRsZUluaXRpYWxpemF0aW9uVXNlckRhdGFDYWxsYmFja1dpbnNf
QnVuZGxlLmNwcCBcCisgICAgJCRQV0QvVGVzdHMvV2ViS2l0Mi9Mb2FkQ2FuY2VsZWROb1NlcnZl
clJlZGlyZWN0Q2FsbGJhY2tfQnVuZGxlLmNwcCBcCisgICAgJCRQV0QvVGVzdHMvV2ViS2l0Mi9N
b3VzZU1vdmVBZnRlckNyYXNoX0J1bmRsZS5jcHAgXAorICAgICQkUFdEL1Rlc3RzL1dlYktpdDIv
TmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0X0J1bmRsZS5jcHAgXAorICAgICQkUFdEL1Rl
c3RzL1dlYktpdDIvTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0RmFpbHNfQnVuZGxlLmNw
cCBcCisgICAgJCRQV0QvVGVzdHMvV2ViS2l0Mi9OZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlv
dXRGb3JJbWFnZXNfQnVuZGxlLmNwcCBcCisgICAgJCRQV0QvVGVzdHMvV2ViS2l0Mi9OZXdGaXJz
dFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGcmFtZXNfQnVuZGxlLmNwcCBcCisgICAgJCRQV0QvVGVz
dHMvV2ViS2l0Mi9QYXJlbnRGcmFtZV9CdW5kbGUuY3BwIFwKKyAgICAkJFBXRC9UZXN0cy9XZWJL
aXQyL1Jlc3BvbnNpdmVuZXNzVGltZXJEb2VzbnRGaXJlRWFybHlfQnVuZGxlLmNwcCBcCisgICAg
JCRQV0QvVGVzdHMvV2ViS2l0Mi9TaG91bGRHb1RvQmFja0ZvcndhcmRMaXN0SXRlbV9CdW5kbGUu
Y3BwIFwKKyAgICAkJFBXRC9UZXN0cy9XZWJLaXQyL1VzZXJNZXNzYWdlX0J1bmRsZS5jcHAgXAor
ICAgICQkUFdEL1Rlc3RzL1dlYktpdDIvV2lsbFNlbmRTdWJtaXRFdmVudF9CdW5kbGUuY3BwIFwK
KyAgICAkJFBXRC9UZXN0cy9XZWJLaXQyL1dLQ29ubmVjdGlvbl9CdW5kbGUuY3BwCisKKworREVT
VERJUiA9ICQke1JPT1RfQlVJTERfRElSfS9saWIKKworUVQgKz0gY29yZSB3ZWJraXQKKworV0VC
S0lUICs9IHd0ZiBqYXZhc2NyaXB0Y29yZSB3ZWJjb3JlIHdlYmtpdDIKKworQ09ORklHICs9IHBs
dWdpbiBycGF0aCBjb21waWxpbmdfdGhpcmRwYXJ0eV9jb2RlCisKK0xJQlMgKz0gLUwkJHtST09U
X0JVSUxEX0RJUn0vU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvJCRhY3RpdmVCdWlsZENvbmZpZygp
IC1sZ3Rlc3QKKworREVGSU5FUyArPSBBUElURVNUX1NPVVJDRV9ESVI9XFxcIiQkUFdEXFxcIiBc
CisgICAgICAgICAgIFJPT1RfQlVJTERfRElSPVxcXCIkJHtST09UX0JVSUxEX0RJUn1cXFwiCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3JtV2ViVmlldy5oIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9QbGF0Zm9ybVdlYlZpZXcuaAppbmRleCBkY2FmNDQ4NDJkNmVmZTc5NGZh
NGI3YzFhMjg3YzBkMWE4NTQzMjNiLi5iNTZjMDk2ZTU4MTkzMjk0MDEyMGY0YmU3ZTg0NDVhY2M5
MjU4NDhlIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3JtV2ViVmlldy5o
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1XZWJWaWV3LmgKQEAgLTUwLDYgKzUw
LDEzIEBAIHR5cGVkZWYgR3RrV2lkZ2V0ICpQbGF0Zm9ybVdpbmRvdzsKIHR5cGVkZWYgc3RydWN0
IF9FY29yZV9FdmFzIEVjb3JlX0V2YXM7CiB0eXBlZGVmIFdLVmlld1JlZiBQbGF0Zm9ybVdLVmll
dzsKIHR5cGVkZWYgRWNvcmVfRXZhcyogUGxhdGZvcm1XaW5kb3c7CisjZWxpZiBQTEFURk9STShR
VCkKK1FUX0JFR0lOX05BTUVTUEFDRQorY2xhc3MgUVF1aWNrVmlldzsKK1FUX0VORF9OQU1FU1BB
Q0UKK2NsYXNzIFFRdWlja1dlYlZpZXc7Cit0eXBlZGVmIFFRdWlja1dlYlZpZXcqIFBsYXRmb3Jt
V0tWaWV3OwordHlwZWRlZiBRUXVpY2tWaWV3KiBQbGF0Zm9ybVdpbmRvdzsKICNlbmRpZgogCiBu
YW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RXZWJLaXRBUEkucHJpIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnBy
aQppbmRleCBkM2Y3MTdlMzFiMTUxMDNhOTg5MTI4ZTczNzZiYjhkOTcyYzM4OTYxLi5jNGZhYTYy
NTY4NDgwMzU2YzgxM2M2NTM1NzQwZjUyZGVjZmQ2ZjJlIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkucHJpCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dFdlYktpdEFQSS5wcmkKQEAgLTEsMTQgKzEsMjMgQEAKIAogSU5DTFVERVBBVEggKz0gJCRQV0Qg
JCR7Uk9PVF9XRUJLSVRfRElSfS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9pbmNsdWRlCi1XRUJL
SVQgKz0gd3RmIGphdmFzY3JpcHRjb3JlCitXRUJLSVQgKz0gd3RmIGphdmFzY3JpcHRjb3JlIHdl
YmtpdDIKIAogREVGSU5FUyArPSBRVF9OT19DQVNUX0ZST01fQVNDSUkKIAotUVQgKz0gY29yZSBn
dWkgd2Via2l0CitRVCArPSBjb3JlIGNvcmUtcHJpdmF0ZSBndWkgZ3VpLXByaXZhdGUgd2Via2l0
IHF1aWNrIHF1aWNrLXByaXZhdGUgcW1sLXByaXZhdGUgdjgtcHJpdmF0ZQogCiBDT05GSUcgKz0g
Y29tcGlsaW5nX3RoaXJkcGFydHlfY29kZQogCi1TT1VSQ0VTICs9ICQkUFdELyouY3BwCi1TT1VS
Q0VTICs9ICQkUFdEL3F0LyouY3BwCitTT1VSQ0VTICs9IFwKKyAgICAkJFBXRC9KYXZhU2NyaXB0
VGVzdC5jcHAgXAorICAgICQkUFdEL1BsYXRmb3JtVXRpbGl0aWVzLmNwcCBcCisgICAgJCRQV0Qv
VGVzdHNDb250cm9sbGVyLmNwcCBcCisgICAgJCRQV0QvcXQvbWFpbi5jcHAgXAorICAgICQkUFdE
L3F0L1BsYXRmb3JtVXRpbGl0aWVzUXQuY3BwIFwKKyAgICAkJFBXRC9xdC9QbGF0Zm9ybVdlYlZp
ZXdRdC5jcHAKIAogTElCUyArPSAtTCQke1JPT1RfQlVJTERfRElSfS9Tb3VyY2UvVGhpcmRQYXJ0
eS9ndGVzdC8kJGFjdGl2ZUJ1aWxkQ29uZmlnKCkgLWxndGVzdAorCitERUZJTkVTICs9IEFQSVRF
U1RfU09VUkNFX0RJUj1cXFwiJCRQV0RcXFwiIFwKKyAgICAgICAgICAgUk9PVF9CVUlMRF9ESVI9
XFxcIiQke1JPT1RfQlVJTERfRElSfVxcXCIKKwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0V2ViS2l0QVBJLnBybyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQ
SS5wcm8KaW5kZXggZjA2M2JjMDIxNTdjZmZjMmNiM2Q0ODRiMWM0MGFkMTJiNWI1OGIwMS4uYzFm
ODkzOTIyMTliYWQyZTk3NThmN2ZhM2U0Yzk0MzQ4N2YyMzMwZSAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnBybworKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RXZWJLaXRBUEkucHJvCkBAIC0xLDMgKzEsOSBAQAogVEVNUExBVEUgPSBzdWJkaXJzCitD
T05GSUcgKz0gb3JkZXJlZAogCi1TVUJESVJTICs9IFRlc3RzL1dURgorZGVyaXZlZF9zb3VyY2Vz
LmZpbGUgPSBEZXJpdmVkU291cmNlcy5wcmkKK2luamVjdGVkX2J1bmRsZS5maWxlID0gSW5qZWN0
ZWRCdW5kbGUucHJpCisKK1NVQkRJUlMgKz0gZGVyaXZlZF9zb3VyY2VzIGluamVjdGVkX2J1bmRs
ZSBUZXN0cy9XVEYgVGVzdHMvSmF2YVNjcmlwdENvcmUgVGVzdHMvV2ViS2l0MgorCithZGRTdHJp
Y3RTdWJkaXJPcmRlckJldHdlZW4oZGVyaXZlZF9zb3VyY2VzLCBpbmplY3RlZF9idW5kbGUpCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLnBybyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUucHJvCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFlNGI4MDYwODBiYmMwNDlkODJjZjBkM2Vh
Yjg5NDIzM2UwOGQzNzYKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnBybwpAQCAtMCwwICsxLDYgQEAKK1RF
TVBMQVRFID0gYXBwCitUQVJHRVQgPSB0c3RfanNjCisKK1NPVVJDRVMgKz0gKi5jcHAKKworaW5j
bHVkZSguLi8uLi9UZXN0V2ViS2l0QVBJLnByaSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL1dURi5wcm8gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9X
VEYucHJvCmluZGV4IGQzZTNiMGRmMTJiYzA1ODM5YzE2MjE4ZGIwNDdhMGExOGIxZTZmNWEuLjA0
YWJlMWY4NTIwYThkNWZlMjkwZTc5NDAxYWUzZmQ3YmM0NDg4YmUgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dURi5wcm8KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvV1RGLnBybwpAQCAtMTgsOCArMTgsOCBAQCBTT1VSQ0VTICs9IFwKICAgICBT
dHJpbmdJbXBsLmNwcCBcCiAgICAgU3RyaW5nT3BlcmF0b3JzLmNwcCBcCiAgICAgVGVtcG9yYXJ5
Q2hhbmdlLmNwcCBcCi0gICAgVmVjdG9yQmFzaWMuY3BwIFwKICAgICBWZWN0b3IuY3BwIFwKKyAg
ICBWZWN0b3JCYXNpYy5jcHAgXAogICAgIFZlY3RvclJldmVyc2UuY3BwIFwKICAgICBXVEZTdHJp
bmcuY3BwCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9X
ZWJLaXQyLnBybyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9XZWJLaXQyLnBy
bwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5jZWQyYTc3ODk4YzJhMWY2OWI0ZjFiOGNkYzI5N2ZhODI4OTBmZmQ0Ci0t
LSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1dlYktp
dDIucHJvCkBAIC0wLDAgKzEsMzUgQEAKK1RFTVBMQVRFID0gYXBwCitUQVJHRVQgPSB0c3Rfd2Vi
a2l0MgorCitTT1VSQ0VTICs9IFwKKyAgICBBYm91dEJsYW5rTG9hZC5jcHAgXAorICAgIERPTVdp
bmRvd0V4dGVuc2lvbkJhc2ljLmNwcCBcCisgICAgRE9NV2luZG93RXh0ZW5zaW9uTm9DYWNoZS5j
cHAgXAorICAgIERvY3VtZW50U3RhcnRVc2VyU2NyaXB0QWxlcnRDcmFzaC5jcHAgXAorICAgIEV2
YWx1YXRlSmF2YVNjcmlwdC5jcHAgXAorICAgIEZhaWxlZExvYWQuY3BwIFwKKyAgICBGaW5kLmNw
cCBcCisgICAgRnJhbWVNSU1FVHlwZUhUTUwuY3BwIFwKKyAgICBGcmFtZU1JTUVUeXBlUE5HLmNw
cCBcCisgICAgR2V0SW5qZWN0ZWRCdW5kbGVJbml0aWFsaXphdGlvblVzZXJEYXRhQ2FsbGJhY2su
Y3BwIFwKKyAgICBIaXRUZXN0UmVzdWx0Tm9kZUhhbmRsZS5jcHAgXAorICAgIEluamVjdGVkQnVu
ZGxlQmFzaWMuY3BwIFwKKyAgICBJbmplY3RlZEJ1bmRsZUZyYW1lSGl0VGVzdC5jcHAgXAorICAg
IEluamVjdGVkQnVuZGxlSW5pdGlhbGl6YXRpb25Vc2VyRGF0YUNhbGxiYWNrV2lucy5jcHAgXAor
ICAgIExvYWRBbHRlcm5hdGVIVE1MU3RyaW5nV2l0aE5vbkRpcmVjdG9yeVVSTC5jcHAgXAorICAg
IExvYWRDYW5jZWxlZE5vU2VydmVyUmVkaXJlY3RDYWxsYmFjay5jcHAgXAorICAgIE1vdXNlTW92
ZUFmdGVyQ3Jhc2guY3BwIFwKKyAgICBSZWxvYWRQYWdlQWZ0ZXJDcmFzaC5jcHAgXAorICAgIFBh
Z2VMb2FkQmFzaWMuY3BwIFwKKyAgICBQYWdlTG9hZERpZENoYW5nZUxvY2F0aW9uV2l0aGluUGFn
ZUZvckZyYW1lLmNwcCBcCisgICAgUGFyZW50RnJhbWUuY3BwIFwKKyAgICBQcmV2ZW50RW1wdHlV
c2VyQWdlbnQuY3BwIFwKKyAgICBQcml2YXRlQnJvd3NpbmdQdXNoU3RhdGVOb0hpc3RvcnlDYWxs
YmFjay5jcHAgXAorICAgIFVzZXJNZXNzYWdlLmNwcCBcCisgICAgV0tDb25uZWN0aW9uLmNwcCBc
CisgICAgV0tTdHJpbmcuY3BwIFwKKyAgICBXS1N0cmluZ0pTU3RyaW5nLmNwcCBcCisgICAgV0tV
UkwuY3BwIFwKKyAgICBXaWxsU2VuZFN1Ym1pdEV2ZW50LmNwcCBcCisKK2luY2x1ZGUoLi4vLi4v
VGVzdFdlYktpdEFQSS5wcmkpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL3F0L1Bs
YXRmb3JtVXRpbGl0aWVzUXQuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9xdC9QbGF0Zm9ybVV0
aWxpdGllc1F0LmNwcAppbmRleCA3Yzc1YWQxYjhiYWMwZmQ2N2I1MWFhNmU0NDI1YTJkYWZmZGRk
ZjI1Li43ZDdmY2E4NDVhOTNiZDY3Y2FlZTEzYThlNjM1MWZkNmRjYjM0NjQ5IDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL3F0L1BsYXRmb3JtVXRpbGl0aWVzUXQuY3BwCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvcXQvUGxhdGZvcm1VdGlsaXRpZXNRdC5jcHAKQEAgLTIxLDcgKzIx
LDE0IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1VdGlsaXRpZXMu
aCIKIAorI2luY2x1ZGUgPFdlYktpdDIvV0tTdHJpbmdRdC5oPgorI2luY2x1ZGUgPFdlYktpdDIv
V0tOYXRpdmVFdmVudC5oPgorI2luY2x1ZGUgInF0L1dLVVJMUXQuaCIKKwogI2luY2x1ZGUgPFFD
b3JlQXBwbGljYXRpb24+CisjaW5jbHVkZSA8UURpcj4KKyNpbmNsdWRlIDxRVXJsPgorI2luY2x1
ZGUgPFFUaHJlYWQ+CiAKICNpbmNsdWRlIDx1bmlzdGQuaD4KIApAQCAtMzYsMTkgKzQzLDI4IEBA
IHZvaWQgcnVuKGJvb2wqIGRvbmUpCiAKIHZvaWQgc2xlZXAoZG91YmxlIHNlY29uZHMpCiB7Ci0g
ICAgdXNsZWVwKHNlY29uZHMgKiAxMDAwMDAwKTsKKyAgICBRVGhyZWFkOjpzbGVlcChzZWNvbmRz
KTsKIH0KIAogV0tTdHJpbmdSZWYgY3JlYXRlSW5qZWN0ZWRCdW5kbGVQYXRoKCkKIHsKLSAgICAv
LyAjIyMgRklYTUUuCi0gICAgcmV0dXJuIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCIi
KTsKKyAgICBRU3RyaW5nIHBhdGggPSBRU3RyaW5nOjpmcm9tTG9jYWw4Qml0KHFnZXRlbnYoIlRF
U1RfV0VCS0lUX0FQSV9JTkpFQ1RFRF9CVU5ETEVfUEFUSCIpKTsKKyAgICBpZiAocGF0aC5pc0Vt
cHR5KCkpCisgICAgICAgIHBhdGggPSBRRmlsZUluZm8oUVN0cmluZ0xpdGVyYWwoUk9PVF9CVUlM
RF9ESVIgIi9saWIvbGliVGVzdFdlYktpdEFQSUluamVjdGVkQnVuZGxlIikpLmFic29sdXRlRmls
ZVBhdGgoKTsKKworICAgIHJldHVybiBXS1N0cmluZ0NyZWF0ZVdpdGhRU3RyaW5nKHBhdGgpOwog
fQogCiBXS1VSTFJlZiBjcmVhdGVVUkxGb3JSZXNvdXJjZShjb25zdCBjaGFyKiByZXNvdXJjZSwg
Y29uc3QgY2hhciogZXh0ZW5zaW9uKQogewotICAgIC8vICMjIyBGSVhNRS4KLSAgICByZXR1cm4g
V0tVUkxDcmVhdGVXaXRoVVRGOENTdHJpbmcoIiIpOworICAgIFFTdHJpbmcgcGF0aCA9IFFTdHJp
bmc6OmZyb21Mb2NhbDhCaXQocWdldGVudigiVEVTVF9XRUJLSVRfQVBJX1JFU09VUkNFU19QQVRI
IikpOworICAgIGlmIChwYXRoLmlzRW1wdHkoKSkgeworICAgICAgICAvLyBGSVhNRTogR2V0IHRo
ZSBjdXJyZW50IHRlc3Qgc291cmNlIGRpciwgbm90IFRlc3RXZWJLaXRBUEkgc291cmNlIGRpci4K
KyAgICAgICAgcGF0aCA9IFFTdHJpbmdMaXRlcmFsKEFQSVRFU1RfU09VUkNFX0RJUiAiL1Rlc3Rz
L1dlYktpdDIiKTsKKyAgICB9CisgICAgUVN0cmluZyBmaWxlbmFtZSA9IFFTdHJpbmc6OmZyb21M
b2NhbDhCaXQocmVzb3VyY2UpICsgUVN0cmluZ0xpdGVyYWwoIi4iKSArIFFTdHJpbmc6OmZyb21M
b2NhbDhCaXQoZXh0ZW5zaW9uKTsKKworICAgIHJldHVybiBXS1VSTENyZWF0ZVdpdGhRVXJsKFFV
cmw6OmZyb21Mb2NhbEZpbGUoUURpcihwYXRoKS5hYnNvbHV0ZUZpbGVQYXRoKGZpbGVuYW1lKSkp
OwogfQogCiBXS1VSTFJlZiBVUkxGb3JOb25FeGlzdGVudFJlc291cmNlKCkKQEAgLTU2LDUgKzcy
LDEwIEBAIFdLVVJMUmVmIFVSTEZvck5vbkV4aXN0ZW50UmVzb3VyY2UoKQogICAgIHJldHVybiBX
S1VSTENyZWF0ZVdpdGhVVEY4Q1N0cmluZygiZmlsZTovLy9kb2VzLW5vdC1leGlzdC5odG1sIik7
CiB9CiAKK2Jvb2wgaXNLZXlEb3duKFdLTmF0aXZlRXZlbnRQdHIgZXZlbnQpCit7CisgICAgcmV0
dXJuIGV2ZW50LT50eXBlKCkgPT0gUUV2ZW50OjpLZXlQcmVzczsKK30KKwogfSAvLyBuYW1lc3Bh
Y2UgVXRpbAogfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9xdC9QbGF0Zm9ybVdlYlZpZXdRdC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL3F0L1BsYXRmb3JtV2ViVmlld1F0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYzYzNWFiMjZjYjljOTQy
NzE1Yjk0Yzc3Mjg2YTk3NDI2NWE5YTU4Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9xdC9QbGF0Zm9ybVdlYlZpZXdRdC5jcHAKQEAgLTAsMCArMSwxNTEgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDEwIFVuaXZlcnNpdHkgb2YgU3plZ2VkLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzIERpZ2lhIFBsYy4gYW5kL29yIGl0cyBzdWJzaWRp
YXJ5KC1pZXMpLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
KyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisj
aW5jbHVkZSAiUGxhdGZvcm1XZWJWaWV3LmgiCisjaW5jbHVkZSAicXF1aWNrd2VicGFnZV9wLmgi
CisjaW5jbHVkZSAicXF1aWNrd2Vidmlld19wLmgiCisKKyNpbmNsdWRlIDxXZWJLaXQyL1dLUmV0
YWluUHRyLmg+CisKKyNpbmNsdWRlIDxRQ29yZUFwcGxpY2F0aW9uPgorI2luY2x1ZGUgPFFFdmVu
dExvb3A+CisjaW5jbHVkZSA8UVFtbFByb3BlcnR5PgorI2luY2x1ZGUgPFF0UXVpY2svUVF1aWNr
Vmlldz4KKyNpbmNsdWRlIDxRdFF1aWNrL3ByaXZhdGUvcXF1aWNrd2luZG93X3AuaD4KKyNpbmNs
dWRlIDxxcGEvcXdpbmRvd3N5c3RlbWludGVyZmFjZS5oPgorCituYW1lc3BhY2UgVGVzdFdlYktp
dEFQSSB7CisKK2NsYXNzIFdyYXBwZXJXaW5kb3cgOiBwdWJsaWMgUVF1aWNrVmlldyB7CisgICAg
UV9PQkpFQ1QKK3B1YmxpYzoKKyAgICBXcmFwcGVyV2luZG93KFFRdWlja1dlYlZpZXcqIHZpZXcp
CisgICAgICAgIDogUVF1aWNrVmlldyhRVXJsKFFTdHJpbmdMaXRlcmFsKCJkYXRhOnRleHQvcGxh
aW4saW1wb3J0IFF0UXVpY2sgMi4wXG5JdGVtIHsgb2JqZWN0TmFtZTogJ3Jvb3QnIH0iKSkpCisg
ICAgICAgICwgbV92aWV3KHZpZXcpCisgICAgeworICAgICAgICBjb25uZWN0KHRoaXMsIFNJR05B
TChzdGF0dXNDaGFuZ2VkKFFRdWlja1ZpZXc6OlN0YXR1cykpLCBTTE9UKGhhbmRsZVN0YXR1c0No
YW5nZWQoUVF1aWNrVmlldzo6U3RhdHVzKSkpOworICAgIH0KKworcHJpdmF0ZSBRX1NMT1RTOgor
ICAgIHZvaWQgaGFuZGxlU3RhdHVzQ2hhbmdlZChRUXVpY2tWaWV3OjpTdGF0dXMgc3RhdHVzKQor
ICAgIHsKKyAgICAgICAgaWYgKHN0YXR1cyAhPSBRUXVpY2tWaWV3OjpSZWFkeSkKKyAgICAgICAg
ICAgIHJldHVybjsKKworICAgICAgICBzZXRHZW9tZXRyeSgwLCAwLCA4MDAsIDYwMCk7CisKKyAg
ICAgICAgc2V0UmVzaXplTW9kZShRUXVpY2tWaWV3OjpTaXplUm9vdE9iamVjdFRvVmlldyk7Cisg
ICAgICAgIG1fdmlldy0+c2V0UGFyZW50SXRlbShyb290T2JqZWN0KCkpOworICAgICAgICBRUW1s
UHJvcGVydHk6OndyaXRlKG1fdmlldywgUVN0cmluZ0xpdGVyYWwoImFuY2hvcnMuZmlsbCIpLCBx
VmFyaWFudEZyb21WYWx1ZShyb290T2JqZWN0KCkpKTsKKworICAgICAgICBtX3ZpZXctPmV4cGVy
aW1lbnRhbCgpLT5zZXRSZW5kZXJUb09mZnNjcmVlbkJ1ZmZlcih0cnVlKTsKKworICAgICAgICBR
V2luZG93U3lzdGVtSW50ZXJmYWNlOjpoYW5kbGVXaW5kb3dBY3RpdmF0ZWQodGhpcyk7CisgICAg
ICAgIG1fdmlldy0+cGFnZSgpLT5zZXRGb2N1cyh0cnVlKTsKKyAgICB9CisKK3ByaXZhdGU6Cisg
ICAgUVF1aWNrV2ViVmlldyogbV92aWV3OworfTsKKworUGxhdGZvcm1XZWJWaWV3OjpQbGF0Zm9y
bVdlYlZpZXcoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYsIFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91
cFJlZikKK3sKKyAgICBtX3ZpZXcgPSBuZXcgUVF1aWNrV2ViVmlldyhjb250ZXh0UmVmLCBwYWdl
R3JvdXBSZWYpOworICAgIG1fdmlldy0+c2V0QWxsb3dBbnlIVFRQU0NlcnRpZmljYXRlRm9yTG9j
YWxIb3N0KHRydWUpOworICAgIG1fdmlldy0+Y29tcG9uZW50Q29tcGxldGUoKTsKKworICAgIG1f
d2luZG93ID0gbmV3IFdyYXBwZXJXaW5kb3cobV92aWV3KTsKK30KKworUGxhdGZvcm1XZWJWaWV3
Ojp+UGxhdGZvcm1XZWJWaWV3KCkKK3sKKyAgICBkZWxldGUgbV93aW5kb3c7Cit9CisKK3ZvaWQg
UGxhdGZvcm1XZWJWaWV3OjpyZXNpemVUbyh1bnNpZ25lZCB3aWR0aCwgdW5zaWduZWQgaGVpZ2h0
KQoreworICAgIC8vIElmIHdlIGRvIG5vdCBoYXZlIGEgcGxhdGZvcm0gd2luZG93IHdlIHdpbGwg
bmV2ZXIgZ2V0IHRoZSBuZWNlc3NhcnkKKyAgICAvLyByZXNpemUgZXZlbnQsIHNvIHNpbXVsYXRl
IGl0IGluIHRoYXQgY2FzZSB0byBtYWtlIHN1cmUgdGhlIHF1aWNrdmlldyBpcworICAgIC8vIHJl
c2l6ZWQgdG8gd2hhdCB0aGUgbGF5b3V0IHRlc3QgZXhwZWN0cy4KKyAgICBpZiAoIW1fd2luZG93
LT5oYW5kbGUoKSkgeworICAgICAgICBRUmVjdCBuZXdHZW9tZXRyeShtX3dpbmRvdy0+eCgpLCBt
X3dpbmRvdy0+eSgpLCB3aWR0aCwgaGVpZ2h0KTsKKyAgICAgICAgUVdpbmRvd1N5c3RlbUludGVy
ZmFjZTo6aGFuZGxlR2VvbWV0cnlDaGFuZ2UobV93aW5kb3csIG5ld0dlb21ldHJ5KTsKKyAgICAg
ICAgUVdpbmRvd1N5c3RlbUludGVyZmFjZTo6Zmx1c2hXaW5kb3dTeXN0ZW1FdmVudHMoKTsKKyAg
ICB9CisKKyAgICBtX3dpbmRvdy0+cmVzaXplKHdpZHRoLCBoZWlnaHQpOworfQorCitXS1BhZ2VS
ZWYgUGxhdGZvcm1XZWJWaWV3OjpwYWdlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV92aWV3LT5w
YWdlUmVmKCk7Cit9CisKK3ZvaWQgUGxhdGZvcm1XZWJWaWV3Ojpmb2N1cygpCit7CisgICAgbV92
aWV3LT5zZXRGb2N1cyh0cnVlKTsKK30KKwordm9pZCBQbGF0Zm9ybVdlYlZpZXc6OnNpbXVsYXRl
U3BhY2ViYXJLZXlQcmVzcygpCit7CisgICAgUUtleUV2ZW50IGV2ZW50KFFFdmVudDo6S2V5UHJl
c3MsICcgJywgUXQ6Ok5vTW9kaWZpZXIpOworICAgIFFDb3JlQXBwbGljYXRpb246OnNlbmRFdmVu
dChtX3dpbmRvdywgJmV2ZW50KTsKKyAgICBRS2V5RXZlbnQgZXZlbnQyKFFFdmVudDo6S2V5UmVs
ZWFzZSwgJyAnLCBRdDo6Tm9Nb2RpZmllcik7CisgICAgUUNvcmVBcHBsaWNhdGlvbjo6c2VuZEV2
ZW50KG1fd2luZG93LCAmZXZlbnQyKTsKK30KKwordm9pZCBQbGF0Zm9ybVdlYlZpZXc6OnNpbXVs
YXRlQWx0S2V5UHJlc3MoKQoreworICAgIFFLZXlFdmVudCBldmVudChRRXZlbnQ6OktleVByZXNz
LCAwLCBRdDo6QWx0TW9kaWZpZXIpOworICAgIFFDb3JlQXBwbGljYXRpb246OnNlbmRFdmVudCht
X3dpbmRvdywgJmV2ZW50KTsKKyAgICBRS2V5RXZlbnQgZXZlbnQyKFFFdmVudDo6S2V5UmVsZWFz
ZSwgMCwgUXQ6OkFsdE1vZGlmaWVyKTsKKyAgICBRQ29yZUFwcGxpY2F0aW9uOjpzZW5kRXZlbnQo
bV93aW5kb3csICZldmVudDIpOworfQorCit2b2lkIFBsYXRmb3JtV2ViVmlldzo6c2ltdWxhdGVN
b3VzZU1vdmUodW5zaWduZWQgeCwgdW5zaWduZWQgeSkKK3sKKyAgICBRUG9pbnQgbW91c2VQb3Mo
eCwgeSk7CisgICAgUU1vdXNlRXZlbnQgZXZlbnQoUUV2ZW50OjpNb3VzZU1vdmUsIG1vdXNlUG9z
LCBtb3VzZVBvcywgUXQ6Ok5vQnV0dG9uLCBRdDo6Tm9CdXR0b24sIFF0OjpOb01vZGlmaWVyKTsK
KyAgICBRQ29yZUFwcGxpY2F0aW9uOjpzZW5kRXZlbnQobV93aW5kb3csICZldmVudCk7Cit9CisK
K3ZvaWQgUGxhdGZvcm1XZWJWaWV3OjpzaW11bGF0ZVJpZ2h0Q2xpY2sodW5zaWduZWQgeCwgdW5z
aWduZWQgeSkKK3sKKyAgICBRUG9pbnQgbW91c2VQb3MoeCwgeSk7CisgICAgUU1vdXNlRXZlbnQg
ZXZlbnQoUUV2ZW50OjpNb3VzZU1vdmUsIG1vdXNlUG9zLCBtb3VzZVBvcywgUXQ6Ok5vQnV0dG9u
LCBRdDo6Tm9CdXR0b24sIFF0OjpOb01vZGlmaWVyKTsKKyAgICBRQ29yZUFwcGxpY2F0aW9uOjpz
ZW5kRXZlbnQobV93aW5kb3csICZldmVudCk7CisgICAgUU1vdXNlRXZlbnQgZXZlbnQyKFFFdmVu
dDo6TW91c2VCdXR0b25QcmVzcywgbW91c2VQb3MsIG1vdXNlUG9zLCBRdDo6UmlnaHRCdXR0b24s
IFF0OjpSaWdodEJ1dHRvbiwgUXQ6Ok5vTW9kaWZpZXIpOworICAgIFFDb3JlQXBwbGljYXRpb246
OnNlbmRFdmVudChtX3dpbmRvdywgJmV2ZW50Mik7CisgICAgUU1vdXNlRXZlbnQgZXZlbnQzKFFF
dmVudDo6TW91c2VCdXR0b25SZWxlYXNlLCBtb3VzZVBvcywgbW91c2VQb3MsIFF0OjpSaWdodEJ1
dHRvbiwgUXQ6Ok5vQnV0dG9uLCBRdDo6Tm9Nb2RpZmllcik7CisgICAgUUNvcmVBcHBsaWNhdGlv
bjo6c2VuZEV2ZW50KG1fd2luZG93LCAmZXZlbnQzKTsKK30KKworfSAvLyBuYW1lc3BhY2UgVGVz
dFdlYktpdEFQSQorCisjaW5jbHVkZSAiUGxhdGZvcm1XZWJWaWV3UXQubW9jIgpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9xdC9tYWluLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
cXQvbWFpbi5jcHAKaW5kZXggN2UwMzc4ZjZhMjY5ZTA5MzEyMGY4NWIzZDMxZGY4ZGM2M2U5YWQ3
Zi4uZmVhOTI3YmYxYWQ1YmRkNmUwNGNkYjljMDllMmM4OTFlZGE4YzE2MCAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9xdC9tYWluLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L3F0L21haW4uY3BwCkBAIC0yMyw5ICsyMywxNyBAQAogCiAjaW5jbHVkZSA8UUd1aUFwcGxpY2F0
aW9uPgogCit2b2lkIGFkZFF0V2ViUHJvY2Vzc1RvUGF0aCgpCit7CisgICAgLy8gU2luY2UgdGVz
dHMgd29uJ3QgZmluZCAuL1F0V2ViUHJvY2VzcywgYWRkIGl0IHRvIFBBVEggKGF0IHRoZSBlbmQg
dG8gcHJldmVudCBzdXJwcmlzZXMpLgorICAgIC8vIFJPT1RfQlVJTERfRElSIHNob3VsZCBiZSBk
ZWZpbmVkIGJ5IHFtYWtlLgorICAgIHFwdXRlbnYoIlBBVEgiLCBxZ2V0ZW52KCJQQVRIIikgKyBR
Qnl0ZUFycmF5KCI6IiBST09UX0JVSUxEX0RJUiAiL2JpbiIpKTsKK30KKwogaW50IG1haW4oaW50
IGFyZ2MsIGNoYXIqKiBhcmd2KQogewogICAgIFFHdWlBcHBsaWNhdGlvbiBhcHAoYXJnYywgYXJn
dik7CisgICAgYWRkUXRXZWJQcm9jZXNzVG9QYXRoKCk7CiAKICAgICByZXR1cm4gVGVzdFdlYktp
dEFQSTo6VGVzdHNDb250cm9sbGVyOjpzaGFyZWQoKS5ydW4oYXJnYywgYXJndikgPyBFWElUX1NV
Q0NFU1MgOiBFWElUX0ZBSUxVUkU7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188584</attachid>
            <date>2013-02-15 09:16:31 -0800</date>
            <delta_ts>2013-02-15 09:32:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109843-20130215181214.patch</filename>
            <type>text/plain</type>
            <size>23170</size>
            <attacher name="Allan Sandfeld Jensen">allan.jensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyOTc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNWRhMjFmNDVlNTg2MjRi
NzI4NTZjMjJiN2Y5NWVkN2RjYTNjOTBkOC4uZDZmM2RmYWE0MDVjYTU1NzA2ZDYzZmU5NjQzYTlm
NzU5NGU0NmE3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE1IEBACiAyMDEzLTAyLTE1ICBBbGxh
biBTYW5kZmVsZCBKZW5zZW4gIDxhbGxhbi5qZW5zZW5AZGlnaWEuY29tPgogCisgICAgICAgIFtR
dF1bV0syXSBTdXBwb3J0IFdLMiBBUEkgdGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTg0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3Au
aDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEkpOgorCisyMDEzLTAyLTE1ICBBbGxhbiBTYW5kZmVs
ZCBKZW5zZW4gIDxhbGxhbi5qZW5zZW5AZGlnaWEuY29tPgorCiAgICAgICAgIFNpbXBsaWZ5IGhp
dFRlc3RSZXN1bHRBdFBvaW50IGFuZCBub2Rlc0Zyb21SZWN0IEFQSXMKICAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1NzIwCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcC5oCmluZGV4IDQ1N2RlNjVl
MjUyNDk3YjhkYzY1MjYxOGI2MTRhZWVhZjMwOTkyOTIuLmYxYWQ5NjRlZGI1ZGFiNGYzMmMwYzU5
MzEwY2JkYTc5OGRkMzY0YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvcXQvcXF1aWNrd2Vidmlld19wLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9xdC9xcXVpY2t3ZWJ2aWV3X3AuaApAQCAtNDgsNiArNDgsMTAgQEAgbmFtZXNwYWNlIFdUUiB7
CiBjbGFzcyBQbGF0Zm9ybVdlYlZpZXc7CiB9CiAKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsK
K2NsYXNzIFBsYXRmb3JtV2ViVmlldzsKK30KKwogbmFtZXNwYWNlIFdlYktpdCB7CiBzdHJ1Y3Qg
UXRSZWZDb3VudGVkTmV0d29ya1JlcXVlc3REYXRhOwogY2xhc3MgUGFnZVZpZXdwb3J0Q29udHJv
bGxlckNsaWVudFF0OwpAQCAtMjI0LDYgKzIyOCw3IEBAIHByaXZhdGU6CiAgICAgZnJpZW5kIGNs
YXNzIFdlYktpdDo6UXRXZWJQYWdlUG9saWN5Q2xpZW50OwogICAgIGZyaWVuZCBjbGFzcyBXZWJL
aXQ6OlF0V2ViUGFnZVVJQ2xpZW50OwogICAgIGZyaWVuZCBjbGFzcyBXVFI6OlBsYXRmb3JtV2Vi
VmlldzsKKyAgICBmcmllbmQgY2xhc3MgVGVzdFdlYktpdEFQSTo6UGxhdGZvcm1XZWJWaWV3Owog
ICAgIGZyaWVuZCBjbGFzcyBRUXVpY2tXZWJWaWV3RXhwZXJpbWVudGFsOwogfTsKIApkaWZmIC0t
Z2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDJhNWE0YTFkYmIz
MTk3N2VlZGFmYWJmMGM4ZDgwYTE4OWUyYjhkZDguLjNlMmY2OGU1YzA0MDJjMzg1NmQ1NDExNTFl
OTFkZTJiZjJhNzA5ZjQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSw0MiBAQAorMjAxMy0wMi0xNSAgQWxsYW4gU2FuZGZlbGQgSmVu
c2VuICA8YWxsYW4uamVuc2VuQGRpZ2lhLmNvbT4KKworICAgICAgICBbUXRdW1dLMl0gU3VwcG9y
dCBXSzIgQVBJIHRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMDk4NDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvRGVyaXZlZFNvdXJjZXMucHJpOiBBZGRlZC4KKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL0luamVjdGVkQnVuZGxlLnByaTogQWRkZWQuCisgICAgICAgICog
VGVzdFdlYktpdEFQSS9QbGF0Zm9ybVdlYlZpZXcuaDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RXZWJLaXRBUEkucHJpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQ
SS5wcm86CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS5wcm86IEFkZGVkLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L1dURi5wcm86CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1dlYktpdDIu
cHJvOiBBZGRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL3F0L1BsYXRmb3JtVXRpbGl0aWVz
UXQuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VXRpbDo6c2xlZXApOgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6VXRpbDo6Y3JlYXRlSW5qZWN0ZWRCdW5kbGVQYXRoKToKKyAgICAgICAg
KFRlc3RXZWJLaXRBUEk6OlV0aWw6OmNyZWF0ZVVSTEZvclJlc291cmNlKToKKyAgICAgICAgKFRl
c3RXZWJLaXRBUEk6OlV0aWw6OmlzS2V5RG93bik6CisgICAgICAgIChVdGlsKToKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL3F0L1BsYXRmb3JtV2ViVmlld1F0LmNwcDogQWRkZWQuCisgICAgICAg
IChUZXN0V2ViS2l0QVBJKToKKyAgICAgICAgKFdyYXBwZXJXaW5kb3cpOgorICAgICAgICAoVGVz
dFdlYktpdEFQSTo6V3JhcHBlcldpbmRvdzo6V3JhcHBlcldpbmRvdyk6CisgICAgICAgIChUZXN0
V2ViS2l0QVBJOjpXcmFwcGVyV2luZG93OjpoYW5kbGVTdGF0dXNDaGFuZ2VkKToKKyAgICAgICAg
KFRlc3RXZWJLaXRBUEk6OlBsYXRmb3JtV2ViVmlldzo6UGxhdGZvcm1XZWJWaWV3KToKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OlBsYXRmb3JtV2ViVmlldzo6flBsYXRmb3JtV2ViVmlldyk6Cisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpQbGF0Zm9ybVdlYlZpZXc6OnJlc2l6ZVRvKToKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OlBsYXRmb3JtV2ViVmlldzo6cGFnZSk6CisgICAgICAgIChUZXN0
V2ViS2l0QVBJOjpQbGF0Zm9ybVdlYlZpZXc6OmZvY3VzKToKKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OlBsYXRmb3JtV2ViVmlldzo6c2ltdWxhdGVTcGFjZWJhcktleVByZXNzKToKKyAgICAgICAg
KFRlc3RXZWJLaXRBUEk6OlBsYXRmb3JtV2ViVmlldzo6c2ltdWxhdGVBbHRLZXlQcmVzcyk6Cisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpQbGF0Zm9ybVdlYlZpZXc6OnNpbXVsYXRlTW91c2VNb3Zl
KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlBsYXRmb3JtV2ViVmlldzo6c2ltdWxhdGVSaWdo
dENsaWNrKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL3F0L21haW4uY3BwOgorICAgICAgICAo
YWRkUXRXZWJQcm9jZXNzVG9QYXRoKToKKyAgICAgICAgKG1haW4pOgorCiAyMDEzLTAyLTE1ICBK
b2NoZW4gRWlzaW5nZXIgIDxqb2NoZW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFNwZWN1bGF0
aXZlIGJ1aWxkIGZpeCBmb3IgY2hyb21pdW0td2luLgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9EZXJpdmVkU291cmNlcy5wcmkgYi9Ub29scy9UZXN0V2ViS2l0QVBJL0Rlcml2ZWRT
b3VyY2VzLnByaQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYjM5MWFkNTljMjU3MzljYjRhYjE5NWM3YmEzMWU0Mjg1
NWFiOTQ1Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9EZXJpdmVkU291
cmNlcy5wcmkKQEAgLTAsMCArMSwxMiBAQAorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIERlcml2ZWQgc291cmNl
cyBmb3IgVGVzdFdlYktpdEFQSQorIworIyBTZWUgJ1Rvb2xzL3FtYWtlL1JFQURNRScgZm9yIGFu
IG92ZXJ2aWV3IG9mIHRoZSBidWlsZCBzeXN0ZW0KKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitURU1QTEFURSA9
IGRlcml2ZWQKKworIyBNYWtlIHN1cmUgZm9yd2FyZGVkIGhlYWRlcnMgbmVlZGVkIGJ5IHRoaXMg
cHJvamVjdCBhcmUgcHJlc2VudAorZndoZWFkZXJfZ2VuZXJhdG9yLmNvbW1hbmRzID0gcGVybCAk
JHtST09UX1dFQktJVF9ESVJ9L1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvZ2VuZXJhdGUtZm9yd2Fy
ZGluZy1oZWFkZXJzLnBsICQke1JPT1RfV0VCS0lUX0RJUn0vVG9vbHMvVGVzdFdlYktpdEFQSSAk
JHtST09UX0JVSUxEX0RJUn0vU291cmNlL2luY2x1ZGUgcXQKK2Z3aGVhZGVyX2dlbmVyYXRvci5k
ZXBlbmRzICA9ICQke1JPT1RfV0VCS0lUX0RJUn0vU291cmNlL1dlYktpdDIvU2NyaXB0cy9nZW5l
cmF0ZS1mb3J3YXJkaW5nLWhlYWRlcnMucGwKK0dFTkVSQVRPUlMgKz0gZndoZWFkZXJfZ2VuZXJh
dG9yCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL0luamVjdGVkQnVuZGxlLnByaSBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvSW5qZWN0ZWRCdW5kbGUucHJpCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFjOWU2
Y2U2YjMyYzc0Yzg2NzhkMDU4NWQ3YjhkYzcyYTAxNjY0ZDIKLS0tIC9kZXYvbnVsbAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL0luamVjdGVkQnVuZGxlLnByaQpAQCAtMCwwICsxLDU2IEBACisj
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KKyMgUHJvamVjdCBmaWxlIGZvciBUZXN0V2ViS2l0QVBJJ3MgSW5qZWN0ZWRC
dW5kbGUKKyMKKyMgU2VlICdUb29scy9xbWFrZS9SRUFETUUnIGZvciBhbiBvdmVydmlldyBvZiB0
aGUgYnVpbGQgc3lzdGVtCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworVEVNUExBVEUgPSBsaWIKK1RBUkdFVCA9
IFRlc3RXZWJLaXRBUElJbmplY3RlZEJ1bmRsZQorCitJTkNMVURFUEFUSCArPSAkJFBXRAorSU5D
TFVERVBBVEggKz0gJCR7Uk9PVF9XRUJLSVRfRElSfS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9p
bmNsdWRlCisKK1NPVVJDRVMgKz0gXAorICAgICQkUFdEL0luamVjdGVkQnVuZGxlQ29udHJvbGxl
ci5jcHAgXAorICAgICQkUFdEL0luamVjdGVkQnVuZGxlQ29udHJvbGxlci5oIFwKKyAgICAkJFBX
RC9JbmplY3RlZEJ1bmRsZU1haW4uY3BwIFwKKyAgICAkJFBXRC9JbmplY3RlZEJ1bmRsZVRlc3Qu
aCBcCisgICAgJCRQV0QvUGxhdGZvcm1VdGlsaXRpZXMuY3BwIFwKKyAgICAkJFBXRC9QbGF0Zm9y
bVV0aWxpdGllcy5oIFwKKyAgICAkJFBXRC9xdC9JbmplY3RlZEJ1bmRsZUNvbnRyb2xsZXJRdC5j
cHAgXAorICAgICQkUFdEL3F0L1BsYXRmb3JtVXRpbGl0aWVzUXQuY3BwIFwKKyAgICAkJFBXRC9U
ZXN0cy9XZWJLaXQyL0NhbkhhbmRsZVJlcXVlc3RfQnVuZGxlLmNwcCBcCisgICAgJCRQV0QvVGVz
dHMvV2ViS2l0Mi9Eb2N1bWVudFN0YXJ0VXNlclNjcmlwdEFsZXJ0Q3Jhc2hfQnVuZGxlLmNwcCBc
CisgICAgJCRQV0QvVGVzdHMvV2ViS2l0Mi9ET01XaW5kb3dFeHRlbnNpb25CYXNpY19CdW5kbGUu
Y3BwIFwKKyAgICAkJFBXRC9UZXN0cy9XZWJLaXQyL0RPTVdpbmRvd0V4dGVuc2lvbk5vQ2FjaGVf
QnVuZGxlLmNwcCBcCisgICAgJCRQV0QvVGVzdHMvV2ViS2l0Mi9HZXRJbmplY3RlZEJ1bmRsZUlu
aXRpYWxpemF0aW9uVXNlckRhdGFDYWxsYmFja19CdW5kbGUuY3BwIFwKKyAgICAkJFBXRC9UZXN0
cy9XZWJLaXQyL0hpdFRlc3RSZXN1bHROb2RlSGFuZGxlX0J1bmRsZS5jcHAgXAorICAgICQkUFdE
L1Rlc3RzL1dlYktpdDIvSW5qZWN0ZWRCdW5kbGVCYXNpY19CdW5kbGUuY3BwIFwKKyAgICAkJFBX
RC9UZXN0cy9XZWJLaXQyL0luamVjdGVkQnVuZGxlRnJhbWVIaXRUZXN0X0J1bmRsZS5jcHAgXAor
ICAgICQkUFdEL1Rlc3RzL1dlYktpdDIvSW5qZWN0ZWRCdW5kbGVJbml0aWFsaXphdGlvblVzZXJE
YXRhQ2FsbGJhY2tXaW5zX0J1bmRsZS5jcHAgXAorICAgICQkUFdEL1Rlc3RzL1dlYktpdDIvTG9h
ZENhbmNlbGVkTm9TZXJ2ZXJSZWRpcmVjdENhbGxiYWNrX0J1bmRsZS5jcHAgXAorICAgICQkUFdE
L1Rlc3RzL1dlYktpdDIvTW91c2VNb3ZlQWZ0ZXJDcmFzaF9CdW5kbGUuY3BwIFwKKyAgICAkJFBX
RC9UZXN0cy9XZWJLaXQyL05ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dF9CdW5kbGUuY3Bw
IFwKKyAgICAkJFBXRC9UZXN0cy9XZWJLaXQyL05ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91
dEZhaWxzX0J1bmRsZS5jcHAgXAorICAgICQkUFdEL1Rlc3RzL1dlYktpdDIvTmV3Rmlyc3RWaXN1
YWxseU5vbkVtcHR5TGF5b3V0Rm9ySW1hZ2VzX0J1bmRsZS5jcHAgXAorICAgICQkUFdEL1Rlc3Rz
L1dlYktpdDIvTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0RnJhbWVzX0J1bmRsZS5jcHAg
XAorICAgICQkUFdEL1Rlc3RzL1dlYktpdDIvUGFyZW50RnJhbWVfQnVuZGxlLmNwcCBcCisgICAg
JCRQV0QvVGVzdHMvV2ViS2l0Mi9SZXNwb25zaXZlbmVzc1RpbWVyRG9lc250RmlyZUVhcmx5X0J1
bmRsZS5jcHAgXAorICAgICQkUFdEL1Rlc3RzL1dlYktpdDIvU2hvdWxkR29Ub0JhY2tGb3J3YXJk
TGlzdEl0ZW1fQnVuZGxlLmNwcCBcCisgICAgJCRQV0QvVGVzdHMvV2ViS2l0Mi9Vc2VyTWVzc2Fn
ZV9CdW5kbGUuY3BwIFwKKyAgICAkJFBXRC9UZXN0cy9XZWJLaXQyL1dpbGxTZW5kU3VibWl0RXZl
bnRfQnVuZGxlLmNwcCBcCisgICAgJCRQV0QvVGVzdHMvV2ViS2l0Mi9XS0Nvbm5lY3Rpb25fQnVu
ZGxlLmNwcAorCisKK0RFU1RESVIgPSAkJHtST09UX0JVSUxEX0RJUn0vbGliCisKK1FUICs9IGNv
cmUgd2Via2l0CisKK1dFQktJVCArPSB3dGYgamF2YXNjcmlwdGNvcmUgd2ViY29yZSB3ZWJraXQy
CisKK0NPTkZJRyArPSBwbHVnaW4gcnBhdGggY29tcGlsaW5nX3RoaXJkcGFydHlfY29kZQorCitM
SUJTICs9IC1MJCR7Uk9PVF9CVUlMRF9ESVJ9L1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0LyQkYWN0
aXZlQnVpbGRDb25maWcoKSAtbGd0ZXN0CisKK0RFRklORVMgKz0gQVBJVEVTVF9TT1VSQ0VfRElS
PVxcXCIkJFBXRFxcXCIgXAorICAgICAgICAgICBST09UX0JVSUxEX0RJUj1cXFwiJCR7Uk9PVF9C
VUlMRF9ESVJ9XFxcIgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9ybVdl
YlZpZXcuaCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1XZWJWaWV3LmgKaW5kZXggZGNh
ZjQ0ODQyZDZlZmU3OTRmYTRiN2MxYTI4N2MwZDFhODU0MzIzYi4uYjU2YzA5NmU1ODE5MzI5NDAx
MjBmNGJlN2U4NDQ1YWNjOTI1ODQ4ZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9Q
bGF0Zm9ybVdlYlZpZXcuaAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3JtV2ViVmll
dy5oCkBAIC01MCw2ICs1MCwxMyBAQCB0eXBlZGVmIEd0a1dpZGdldCAqUGxhdGZvcm1XaW5kb3c7
CiB0eXBlZGVmIHN0cnVjdCBfRWNvcmVfRXZhcyBFY29yZV9FdmFzOwogdHlwZWRlZiBXS1ZpZXdS
ZWYgUGxhdGZvcm1XS1ZpZXc7CiB0eXBlZGVmIEVjb3JlX0V2YXMqIFBsYXRmb3JtV2luZG93Owor
I2VsaWYgUExBVEZPUk0oUVQpCitRVF9CRUdJTl9OQU1FU1BBQ0UKK2NsYXNzIFFRdWlja1ZpZXc7
CitRVF9FTkRfTkFNRVNQQUNFCitjbGFzcyBRUXVpY2tXZWJWaWV3OwordHlwZWRlZiBRUXVpY2tX
ZWJWaWV3KiBQbGF0Zm9ybVdLVmlldzsKK3R5cGVkZWYgUVF1aWNrVmlldyogUGxhdGZvcm1XaW5k
b3c7CiAjZW5kaWYKIAogbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnByaSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS5wcmkKaW5kZXggZDNmNzE3ZTMxYjE1MTAzYTk4OTEyOGU3Mzc2YmI4ZDk3
MmMzODk2MS4uYzRmYWE2MjU2ODQ4MDM1NmM4MTNjNjUzNTc0MGY1MmRlY2ZkNmYyZSAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnByaQorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkucHJpCkBAIC0xLDE0ICsxLDIzIEBACiAKIElOQ0xV
REVQQVRIICs9ICQkUFdEICQke1JPT1RfV0VCS0lUX0RJUn0vU291cmNlL1RoaXJkUGFydHkvZ3Rl
c3QvaW5jbHVkZQotV0VCS0lUICs9IHd0ZiBqYXZhc2NyaXB0Y29yZQorV0VCS0lUICs9IHd0ZiBq
YXZhc2NyaXB0Y29yZSB3ZWJraXQyCiAKIERFRklORVMgKz0gUVRfTk9fQ0FTVF9GUk9NX0FTQ0lJ
CiAKLVFUICs9IGNvcmUgZ3VpIHdlYmtpdAorUVQgKz0gY29yZSBjb3JlLXByaXZhdGUgZ3VpIGd1
aS1wcml2YXRlIHdlYmtpdCBxdWljayBxdWljay1wcml2YXRlIHFtbC1wcml2YXRlIHY4LXByaXZh
dGUKIAogQ09ORklHICs9IGNvbXBpbGluZ190aGlyZHBhcnR5X2NvZGUKIAotU09VUkNFUyArPSAk
JFBXRC8qLmNwcAotU09VUkNFUyArPSAkJFBXRC9xdC8qLmNwcAorU09VUkNFUyArPSBcCisgICAg
JCRQV0QvSmF2YVNjcmlwdFRlc3QuY3BwIFwKKyAgICAkJFBXRC9QbGF0Zm9ybVV0aWxpdGllcy5j
cHAgXAorICAgICQkUFdEL1Rlc3RzQ29udHJvbGxlci5jcHAgXAorICAgICQkUFdEL3F0L21haW4u
Y3BwIFwKKyAgICAkJFBXRC9xdC9QbGF0Zm9ybVV0aWxpdGllc1F0LmNwcCBcCisgICAgJCRQV0Qv
cXQvUGxhdGZvcm1XZWJWaWV3UXQuY3BwCiAKIExJQlMgKz0gLUwkJHtST09UX0JVSUxEX0RJUn0v
U291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvJCRhY3RpdmVCdWlsZENvbmZpZygpIC1sZ3Rlc3QKKwor
REVGSU5FUyArPSBBUElURVNUX1NPVVJDRV9ESVI9XFxcIiQkUFdEXFxcIiBcCisgICAgICAgICAg
IFJPT1RfQlVJTERfRElSPVxcXCIkJHtST09UX0JVSUxEX0RJUn1cXFwiCisKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS5wcm8gYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RXZWJLaXRBUEkucHJvCmluZGV4IGYwNjNiYzAyMTU3Y2ZmYzJjYjNkNDg0YjFjNDBh
ZDEyYjViNThiMDEuLmI5ZDBjZDViNjAyZjUxMTVmY2VkZjFlOTM3YTc5MGQzYzM5OTZhNmEgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS5wcm8KKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnBybwpAQCAtMSwzICsxLDExIEBACiBURU1Q
TEFURSA9IHN1YmRpcnMKK0NPTkZJRyArPSBvcmRlcmVkCiAKLVNVQkRJUlMgKz0gVGVzdHMvV1RG
CitkZXJpdmVkX3NvdXJjZXMuZmlsZSA9IERlcml2ZWRTb3VyY2VzLnByaQoraW5qZWN0ZWRfYnVu
ZGxlLmZpbGUgPSBJbmplY3RlZEJ1bmRsZS5wcmkKK3Rlc3RzLmZpbGUgPSBUZXN0cy5wcmkKKwor
U1VCRElSUyArPSBkZXJpdmVkX3NvdXJjZXMgaW5qZWN0ZWRfYnVuZGxlIHRlc3RzCisKK2FkZFN0
cmljdFN1YmRpck9yZGVyQmV0d2VlbihkZXJpdmVkX3NvdXJjZXMsIGluamVjdGVkX2J1bmRsZSkK
K2FkZFN0cmljdFN1YmRpck9yZGVyQmV0d2VlbihkZXJpdmVkX3NvdXJjZXMsIHRlc3RzKQpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy5wcmkgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzLnByaQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNWU4MWMwOTRkMmQyNzkxMzQ5NjRmYWI1MzJmYzZl
N2MzY2M0ZjVmCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy5w
cmkKQEAgLTAsMCArMSwzIEBACitURU1QTEFURSA9IHN1YmRpcnMKKworU1VCRElSUyArPSBUZXN0
cy9XVEYgVGVzdHMvSmF2YVNjcmlwdENvcmUgVGVzdHMvV2ViS2l0MgpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5wcm8g
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
LnBybwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5hZTRiODA2MDgwYmJjMDQ5ZDgyY2YwZDNlYWI4OTQyMzNlMDhkMzc2
Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS5wcm8KQEAgLTAsMCArMSw2IEBACitURU1QTEFURSA9IGFwcAor
VEFSR0VUID0gdHN0X2pzYworCitTT1VSQ0VTICs9ICouY3BwCisKK2luY2x1ZGUoLi4vLi4vVGVz
dFdlYktpdEFQSS5wcmkpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9XVEYucHJvIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV1RGLnBybwppbmRleCBk
M2UzYjBkZjEyYmMwNTgzOWMxNjIxOGRiMDQ3YTBhMThiMWU2ZjVhLi4wNGFiZTFmODUyMGE4ZDVm
ZTI5MGU3OTQwMWFlM2ZkN2JjNDQ4OGJlIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9XVEYucHJvCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dU
Ri5wcm8KQEAgLTE4LDggKzE4LDggQEAgU09VUkNFUyArPSBcCiAgICAgU3RyaW5nSW1wbC5jcHAg
XAogICAgIFN0cmluZ09wZXJhdG9ycy5jcHAgXAogICAgIFRlbXBvcmFyeUNoYW5nZS5jcHAgXAot
ICAgIFZlY3RvckJhc2ljLmNwcCBcCiAgICAgVmVjdG9yLmNwcCBcCisgICAgVmVjdG9yQmFzaWMu
Y3BwIFwKICAgICBWZWN0b3JSZXZlcnNlLmNwcCBcCiAgICAgV1RGU3RyaW5nLmNwcAogCmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvV2ViS2l0Mi5wcm8gYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvV2ViS2l0Mi5wcm8KbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
N2E0NDVmMDhiOGNkODQ0Y2ZlN2VjN2E0ZWU0NjllNGViZTNlMjg0OQotLS0gL2Rldi9udWxsCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9XZWJLaXQyLnBybwpAQCAtMCww
ICsxLDYyIEBACitURU1QTEFURSA9IGFwcAorVEFSR0VUID0gdHN0X3dlYmtpdDIKKworU09VUkNF
UyArPSBcCisgICAgQWJvdXRCbGFua0xvYWQuY3BwIFwKKyAgICBEb2N1bWVudFN0YXJ0VXNlclNj
cmlwdEFsZXJ0Q3Jhc2guY3BwIFwKKyAgICBET01XaW5kb3dFeHRlbnNpb25CYXNpYy5jcHAgXAor
ICAgIERPTVdpbmRvd0V4dGVuc2lvbk5vQ2FjaGUuY3BwIFwKKyAgICBEb2N1bWVudFN0YXJ0VXNl
clNjcmlwdEFsZXJ0Q3Jhc2guY3BwIFwKKyAgICBFdmFsdWF0ZUphdmFTY3JpcHQuY3BwIFwKKyAg
ICBGYWlsZWRMb2FkLmNwcCBcCisgICAgRmluZC5jcHAgXAorICAgIEZyYW1lTUlNRVR5cGVIVE1M
LmNwcCBcCisgICAgRnJhbWVNSU1FVHlwZVBORy5jcHAgXAorICAgIEdldEluamVjdGVkQnVuZGxl
SW5pdGlhbGl6YXRpb25Vc2VyRGF0YUNhbGxiYWNrLmNwcCBcCisgICAgSGl0VGVzdFJlc3VsdE5v
ZGVIYW5kbGUuY3BwIFwKKyAgICBJbmplY3RlZEJ1bmRsZUJhc2ljLmNwcCBcCisgICAgSW5qZWN0
ZWRCdW5kbGVGcmFtZUhpdFRlc3QuY3BwIFwKKyAgICBJbmplY3RlZEJ1bmRsZUluaXRpYWxpemF0
aW9uVXNlckRhdGFDYWxsYmFja1dpbnMuY3BwIFwKKyAgICBMb2FkQWx0ZXJuYXRlSFRNTFN0cmlu
Z1dpdGhOb25EaXJlY3RvcnlVUkwuY3BwIFwKKyAgICBMb2FkQ2FuY2VsZWROb1NlcnZlclJlZGly
ZWN0Q2FsbGJhY2suY3BwIFwKKyAgICBNb3VzZU1vdmVBZnRlckNyYXNoLmNwcCBcCisgICAgUmVs
b2FkUGFnZUFmdGVyQ3Jhc2guY3BwIFwKKyAgICBQYWdlTG9hZEJhc2ljLmNwcCBcCisgICAgUGFn
ZUxvYWREaWRDaGFuZ2VMb2NhdGlvbldpdGhpblBhZ2VGb3JGcmFtZS5jcHAgXAorICAgIFBhZ2VW
aXNpYmlsaXR5U3RhdGUuY3BwIFwKKyAgICBQYXJlbnRGcmFtZS5jcHAgXAorICAgIFByZXZlbnRF
bXB0eVVzZXJBZ2VudC5jcHAgXAorICAgIFByaXZhdGVCcm93c2luZ1B1c2hTdGF0ZU5vSGlzdG9y
eUNhbGxiYWNrLmNwcCBcCisgICAgUmVsb2FkUGFnZUFmdGVyQ3Jhc2guY3BwIFwKKyAgICBSZXNw
b25zaXZlbmVzc1RpbWVyRG9lc250RmlyZUVhcmx5LmNwcCBcCisgICAgVXNlck1lc3NhZ2UuY3Bw
IFwKKyAgICBXaWxsU2VuZFN1Ym1pdEV2ZW50LmNwcCBcCisgICAgV0tDb25uZWN0aW9uLmNwcCBc
CisgICAgV0tTdHJpbmcuY3BwIFwKKyAgICBXS1N0cmluZ0pTU3RyaW5nLmNwcCBcCisgICAgV0tV
UkwuY3BwCisKKyMgVGVzdHMgc2tpcHBlZCBiZWNhdXNlIHRoZXkgY3Jhc2gsIHN0YWxsIG9yIGRv
IG5vdCBjb21waWxlLgorU0tJUFBFRF9TT1VSQ0VTID0gXAorICAgIENvb2tpZU1hbmFnZXIuY3Bw
IFwKKyAgICBEb3dubG9hZERlY2lkZURlc3RpbmF0aW9uQ3Jhc2guY3BwIFwKKyAgICBGb3JjZVJl
cGFpbnQuY3BwIFwKKyAgICBOZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQuY3BwIFwKKyAg
ICBOZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGYWlscy5jcHAgXAorICAgIE5ld0ZpcnN0
VmlzdWFsbHlOb25FbXB0eUxheW91dEZvckltYWdlcy5jcHAgXAorICAgIE5ld0ZpcnN0VmlzdWFs
bHlOb25FbXB0eUxheW91dEZyYW1lcy5jcHAgXAorICAgIFJlc3RvcmVTZXNzaW9uU3RhdGVDb250
YWluaW5nRm9ybURhdGEuY3BwIFwKKyAgICBTaG91bGRHb1RvQmFja0ZvcndhcmRMaXN0SXRlbS5j
cHAgXAorICAgIFdlYkNvcmVTdGF0aXN0aWNzV2l0aE5vV2ViUHJvY2Vzcy5jcHAKKworIyBTaG91
bGRHb1RvQmFja0ZvcndhcmRMaXN0SXRlbS5jcHAgd29ya3MgaW4gZGVza3RvcCBtb2RlLgorCitG
QUlMSU5HX1NPVVJDRVMgPSBcCisgICAgQ2FuSGFuZGxlUmVxdWVzdC5jcHAgXAorICAgIFNwYWNl
YmFyU2Nyb2xsaW5nLmNwcAorCisjIFNwYWNlYmFyU2Nyb2xsaW5nLmNwcCB3b3JrcyBpbiBkZXNr
dG9wIG1vZGUuCisKK1NPVVJDRVMgKz0gJCRGQUlMSU5HX1NPVVJDRVMKKworaW5jbHVkZSguLi8u
Li9UZXN0V2ViS2l0QVBJLnByaSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvcXQv
UGxhdGZvcm1VdGlsaXRpZXNRdC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL3F0L1BsYXRmb3Jt
VXRpbGl0aWVzUXQuY3BwCmluZGV4IDdjNzVhZDFiOGJhYzBmZDY3YjUxYWE2ZTQ0MjVhMmRhZmZk
ZGRmMjUuLjMyODY5Y2MzNmM5YTAxMTU1ZWQyNDA1M2NjMDkyNzY1ZTUxYzg3ZDIgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvcXQvUGxhdGZvcm1VdGlsaXRpZXNRdC5jcHAKKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9xdC9QbGF0Zm9ybVV0aWxpdGllc1F0LmNwcApAQCAtMjEsOSAr
MjEsMTQgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVV0aWxpdGll
cy5oIgogCi0jaW5jbHVkZSA8UUNvcmVBcHBsaWNhdGlvbj4KKyNpbmNsdWRlIDxXZWJLaXQyL1dL
U3RyaW5nUXQuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLTmF0aXZlRXZlbnQuaD4KKyNpbmNsdWRl
IDxXZWJLaXQyL1dLVVJMUXQuaD4KIAotI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPFFD
b3JlQXBwbGljYXRpb24+CisjaW5jbHVkZSA8UURpcj4KKyNpbmNsdWRlIDxRVXJsPgorI2luY2x1
ZGUgPFFUaHJlYWQ+CiAKIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKIG5hbWVzcGFjZSBVdGls
IHsKQEAgLTM2LDE5ICs0MSwyOCBAQCB2b2lkIHJ1bihib29sKiBkb25lKQogCiB2b2lkIHNsZWVw
KGRvdWJsZSBzZWNvbmRzKQogewotICAgIHVzbGVlcChzZWNvbmRzICogMTAwMDAwMCk7CisgICAg
UVRocmVhZDo6c2xlZXAoc2Vjb25kcyk7CiB9CiAKIFdLU3RyaW5nUmVmIGNyZWF0ZUluamVjdGVk
QnVuZGxlUGF0aCgpCiB7Ci0gICAgLy8gIyMjIEZJWE1FLgotICAgIHJldHVybiBXS1N0cmluZ0Ny
ZWF0ZVdpdGhVVEY4Q1N0cmluZygiIik7CisgICAgUVN0cmluZyBwYXRoID0gUVN0cmluZzo6ZnJv
bUxvY2FsOEJpdChxZ2V0ZW52KCJURVNUX1dFQktJVF9BUElfSU5KRUNURURfQlVORExFX1BBVEgi
KSk7CisgICAgaWYgKHBhdGguaXNFbXB0eSgpKQorICAgICAgICBwYXRoID0gUUZpbGVJbmZvKFFT
dHJpbmdMaXRlcmFsKFJPT1RfQlVJTERfRElSICIvbGliL2xpYlRlc3RXZWJLaXRBUElJbmplY3Rl
ZEJ1bmRsZSIpKS5hYnNvbHV0ZUZpbGVQYXRoKCk7CisKKyAgICByZXR1cm4gV0tTdHJpbmdDcmVh
dGVXaXRoUVN0cmluZyhwYXRoKTsKIH0KIAogV0tVUkxSZWYgY3JlYXRlVVJMRm9yUmVzb3VyY2Uo
Y29uc3QgY2hhciogcmVzb3VyY2UsIGNvbnN0IGNoYXIqIGV4dGVuc2lvbikKIHsKLSAgICAvLyAj
IyMgRklYTUUuCi0gICAgcmV0dXJuIFdLVVJMQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCIiKTsKKyAg
ICBRU3RyaW5nIHBhdGggPSBRU3RyaW5nOjpmcm9tTG9jYWw4Qml0KHFnZXRlbnYoIlRFU1RfV0VC
S0lUX0FQSV9SRVNPVVJDRVNfUEFUSCIpKTsKKyAgICBpZiAocGF0aC5pc0VtcHR5KCkpIHsKKyAg
ICAgICAgLy8gRklYTUU6IEdldCB0aGUgY3VycmVudCB0ZXN0IHNvdXJjZSBkaXIsIG5vdCBUZXN0
V2ViS2l0QVBJIHNvdXJjZSBkaXIuCisgICAgICAgIHBhdGggPSBRU3RyaW5nTGl0ZXJhbChBUElU
RVNUX1NPVVJDRV9ESVIgIi9UZXN0cy9XZWJLaXQyIik7CisgICAgfQorICAgIFFTdHJpbmcgZmls
ZW5hbWUgPSBRU3RyaW5nOjpmcm9tTG9jYWw4Qml0KHJlc291cmNlKSArIFFTdHJpbmdMaXRlcmFs
KCIuIikgKyBRU3RyaW5nOjpmcm9tTG9jYWw4Qml0KGV4dGVuc2lvbik7CisKKyAgICByZXR1cm4g
V0tVUkxDcmVhdGVXaXRoUVVybChRVXJsOjpmcm9tTG9jYWxGaWxlKFFEaXIocGF0aCkuYWJzb2x1
dGVGaWxlUGF0aChmaWxlbmFtZSkpKTsKIH0KIAogV0tVUkxSZWYgVVJMRm9yTm9uRXhpc3RlbnRS
ZXNvdXJjZSgpCkBAIC01Niw1ICs3MCwxMCBAQCBXS1VSTFJlZiBVUkxGb3JOb25FeGlzdGVudFJl
c291cmNlKCkKICAgICByZXR1cm4gV0tVUkxDcmVhdGVXaXRoVVRGOENTdHJpbmcoImZpbGU6Ly8v
ZG9lcy1ub3QtZXhpc3QuaHRtbCIpOwogfQogCitib29sIGlzS2V5RG93bihXS05hdGl2ZUV2ZW50
UHRyIGV2ZW50KQoreworICAgIHJldHVybiBldmVudC0+dHlwZSgpID09IFFFdmVudDo6S2V5UHJl
c3M7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFV0aWwKIH0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRB
UEkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvcXQvUGxhdGZvcm1XZWJWaWV3UXQu
Y3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9xdC9QbGF0Zm9ybVdlYlZpZXdRdC5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNDkyMTFiZDljMzQxNWFkZWRjZjU4OTA2ZmQwY2QwOTRmN2I4NWJkYgotLS0gL2Rldi9u
dWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvcXQvUGxhdGZvcm1XZWJWaWV3UXQuY3BwCkBA
IC0wLDAgKzEsMTU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBVbml2ZXJzaXR5IG9mIFN6
ZWdlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMyBEaWdpYSBQ
bGMuIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVU
T1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dO
RVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQor
ICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgIlBsYXRmb3JtV2ViVmlldy5oIgorI2luY2x1
ZGUgInFxdWlja3dlYnBhZ2VfcC5oIgorI2luY2x1ZGUgInFxdWlja3dlYnZpZXdfcC5oIgorCisj
aW5jbHVkZSA8V2ViS2l0Mi9XS1JldGFpblB0ci5oPgorCisjaW5jbHVkZSA8UUNvcmVBcHBsaWNh
dGlvbj4KKyNpbmNsdWRlIDxRRXZlbnRMb29wPgorI2luY2x1ZGUgPFFRbWxQcm9wZXJ0eT4KKyNp
bmNsdWRlIDxRdFF1aWNrL1FRdWlja1ZpZXc+CisjaW5jbHVkZSA8UXRRdWljay9wcml2YXRlL3Fx
dWlja3dpbmRvd19wLmg+CisjaW5jbHVkZSA8cXBhL3F3aW5kb3dzeXN0ZW1pbnRlcmZhY2UuaD4K
KworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCitjbGFzcyBXcmFwcGVyV2luZG93IDogcHVi
bGljIFFRdWlja1ZpZXcgeworICAgIFFfT0JKRUNUCitwdWJsaWM6CisgICAgV3JhcHBlcldpbmRv
dyhRUXVpY2tXZWJWaWV3KiB2aWV3KQorICAgICAgICA6IFFRdWlja1ZpZXcoUVVybChRU3RyaW5n
TGl0ZXJhbCgiZGF0YTp0ZXh0L3BsYWluLGltcG9ydCBRdFF1aWNrIDIuMFxuSXRlbSB7IG9iamVj
dE5hbWU6ICdyb290JyB9IikpKQorICAgICAgICAsIG1fdmlldyh2aWV3KQorICAgIHsKKyAgICAg
ICAgY29ubmVjdCh0aGlzLCBTSUdOQUwoc3RhdHVzQ2hhbmdlZChRUXVpY2tWaWV3OjpTdGF0dXMp
KSwgU0xPVChoYW5kbGVTdGF0dXNDaGFuZ2VkKFFRdWlja1ZpZXc6OlN0YXR1cykpKTsKKyAgICB9
CisKK3ByaXZhdGUgUV9TTE9UUzoKKyAgICB2b2lkIGhhbmRsZVN0YXR1c0NoYW5nZWQoUVF1aWNr
Vmlldzo6U3RhdHVzIHN0YXR1cykKKyAgICB7CisgICAgICAgIGlmIChzdGF0dXMgIT0gUVF1aWNr
Vmlldzo6UmVhZHkpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgc2V0R2VvbWV0cnko
MCwgMCwgODAwLCA2MDApOworCisgICAgICAgIHNldFJlc2l6ZU1vZGUoUVF1aWNrVmlldzo6U2l6
ZVJvb3RPYmplY3RUb1ZpZXcpOworICAgICAgICBtX3ZpZXctPnNldFBhcmVudEl0ZW0ocm9vdE9i
amVjdCgpKTsKKyAgICAgICAgUVFtbFByb3BlcnR5Ojp3cml0ZShtX3ZpZXcsIFFTdHJpbmdMaXRl
cmFsKCJhbmNob3JzLmZpbGwiKSwgcVZhcmlhbnRGcm9tVmFsdWUocm9vdE9iamVjdCgpKSk7CisK
KyAgICAgICAgbV92aWV3LT5leHBlcmltZW50YWwoKS0+c2V0UmVuZGVyVG9PZmZzY3JlZW5CdWZm
ZXIodHJ1ZSk7CisKKyAgICAgICAgYm9vbCB1c2VEZXNrdG9wQmVoYXZpb3IgPSAhcWdldGVudigi
UVRfVEVTVF9XRUJLSVRBUElfVVNFX0RFU0tUT1BfQkVIQVZJT1IiKS5pc0VtcHR5KCk7CisgICAg
ICAgIG1fdmlldy0+ZXhwZXJpbWVudGFsKCktPnNldEZsaWNrYWJsZVZpZXdwb3J0RW5hYmxlZCgh
dXNlRGVza3RvcEJlaGF2aW9yKTsKKworICAgICAgICBRV2luZG93U3lzdGVtSW50ZXJmYWNlOjpo
YW5kbGVXaW5kb3dBY3RpdmF0ZWQodGhpcyk7CisgICAgICAgIG1fdmlldy0+cGFnZSgpLT5zZXRG
b2N1cyh0cnVlKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgUVF1aWNrV2ViVmlldyogbV92aWV3
OworfTsKKworUGxhdGZvcm1XZWJWaWV3OjpQbGF0Zm9ybVdlYlZpZXcoV0tDb250ZXh0UmVmIGNv
bnRleHRSZWYsIFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cFJlZikKK3sKKyAgICBtX3ZpZXcgPSBu
ZXcgUVF1aWNrV2ViVmlldyhjb250ZXh0UmVmLCBwYWdlR3JvdXBSZWYpOworICAgIG1fdmlldy0+
c2V0QWxsb3dBbnlIVFRQU0NlcnRpZmljYXRlRm9yTG9jYWxIb3N0KHRydWUpOworICAgIG1fdmll
dy0+Y29tcG9uZW50Q29tcGxldGUoKTsKKworICAgIG1fd2luZG93ID0gbmV3IFdyYXBwZXJXaW5k
b3cobV92aWV3KTsKK30KKworUGxhdGZvcm1XZWJWaWV3Ojp+UGxhdGZvcm1XZWJWaWV3KCkKK3sK
KyAgICBkZWxldGUgbV93aW5kb3c7Cit9CisKK3ZvaWQgUGxhdGZvcm1XZWJWaWV3OjpyZXNpemVU
byh1bnNpZ25lZCB3aWR0aCwgdW5zaWduZWQgaGVpZ2h0KQoreworICAgIC8vIElmIHdlIGRvIG5v
dCBoYXZlIGEgcGxhdGZvcm0gd2luZG93IHdlIHdpbGwgbmV2ZXIgZ2V0IHRoZSBuZWNlc3NhcnkK
KyAgICAvLyByZXNpemUgZXZlbnQsIHNvIHNpbXVsYXRlIGl0IGluIHRoYXQgY2FzZSB0byBtYWtl
IHN1cmUgdGhlIHF1aWNrdmlldyBpcworICAgIC8vIHJlc2l6ZWQgdG8gd2hhdCB0aGUgYXBpIHRl
c3RzIGV4cGVjdHMuCisgICAgaWYgKCFtX3dpbmRvdy0+aGFuZGxlKCkpIHsKKyAgICAgICAgUVJl
Y3QgbmV3R2VvbWV0cnkobV93aW5kb3ctPngoKSwgbV93aW5kb3ctPnkoKSwgd2lkdGgsIGhlaWdo
dCk7CisgICAgICAgIFFXaW5kb3dTeXN0ZW1JbnRlcmZhY2U6OmhhbmRsZUdlb21ldHJ5Q2hhbmdl
KG1fd2luZG93LCBuZXdHZW9tZXRyeSk7CisgICAgICAgIFFXaW5kb3dTeXN0ZW1JbnRlcmZhY2U6
OmZsdXNoV2luZG93U3lzdGVtRXZlbnRzKCk7CisgICAgfQorCisgICAgbV93aW5kb3ctPnJlc2l6
ZSh3aWR0aCwgaGVpZ2h0KTsKK30KKworV0tQYWdlUmVmIFBsYXRmb3JtV2ViVmlldzo6cGFnZSgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdmlldy0+cGFnZVJlZigpOworfQorCit2b2lkIFBsYXRm
b3JtV2ViVmlldzo6Zm9jdXMoKQoreworICAgIG1fdmlldy0+c2V0Rm9jdXModHJ1ZSk7Cit9CisK
K3ZvaWQgUGxhdGZvcm1XZWJWaWV3OjpzaW11bGF0ZVNwYWNlYmFyS2V5UHJlc3MoKQoreworICAg
IFFLZXlFdmVudCBldmVudChRRXZlbnQ6OktleVByZXNzLCBRdDo6S2V5X1NwYWNlLCBRdDo6Tm9N
b2RpZmllcik7CisgICAgUUNvcmVBcHBsaWNhdGlvbjo6c2VuZEV2ZW50KG1fd2luZG93LCAmZXZl
bnQpOworICAgIFFLZXlFdmVudCBldmVudDIoUUV2ZW50OjpLZXlSZWxlYXNlLCBRdDo6S2V5X1Nw
YWNlLCBRdDo6Tm9Nb2RpZmllcik7CisgICAgUUNvcmVBcHBsaWNhdGlvbjo6c2VuZEV2ZW50KG1f
d2luZG93LCAmZXZlbnQyKTsKK30KKwordm9pZCBQbGF0Zm9ybVdlYlZpZXc6OnNpbXVsYXRlQWx0
S2V5UHJlc3MoKQoreworICAgIFFLZXlFdmVudCBldmVudChRRXZlbnQ6OktleVByZXNzLCBRdDo6
S2V5X0FsdCwgUXQ6Ok5vTW9kaWZpZXIpOworICAgIFFDb3JlQXBwbGljYXRpb246OnNlbmRFdmVu
dChtX3dpbmRvdywgJmV2ZW50KTsKKyAgICBRS2V5RXZlbnQgZXZlbnQyKFFFdmVudDo6S2V5UmVs
ZWFzZSwgUXQ6OktleV9BbHQsIFF0OjpOb01vZGlmaWVyKTsKKyAgICBRQ29yZUFwcGxpY2F0aW9u
OjpzZW5kRXZlbnQobV93aW5kb3csICZldmVudDIpOworfQorCit2b2lkIFBsYXRmb3JtV2ViVmll
dzo6c2ltdWxhdGVNb3VzZU1vdmUodW5zaWduZWQgeCwgdW5zaWduZWQgeSkKK3sKKyAgICBRUG9p
bnQgbW91c2VQb3MoeCwgeSk7CisgICAgUU1vdXNlRXZlbnQgZXZlbnQoUUV2ZW50OjpNb3VzZU1v
dmUsIG1vdXNlUG9zLCBRdDo6Tm9CdXR0b24sIFF0OjpOb0J1dHRvbiwgUXQ6Ok5vTW9kaWZpZXIp
OworICAgIFFDb3JlQXBwbGljYXRpb246OnNlbmRFdmVudChtX3dpbmRvdywgJmV2ZW50KTsKK30K
Kwordm9pZCBQbGF0Zm9ybVdlYlZpZXc6OnNpbXVsYXRlUmlnaHRDbGljayh1bnNpZ25lZCB4LCB1
bnNpZ25lZCB5KQoreworICAgIFFQb2ludCBtb3VzZVBvcyh4LCB5KTsKKyAgICBRTW91c2VFdmVu
dCBldmVudChRRXZlbnQ6Ok1vdXNlTW92ZSwgbW91c2VQb3MsIFF0OjpOb0J1dHRvbiwgUXQ6Ok5v
QnV0dG9uLCBRdDo6Tm9Nb2RpZmllcik7CisgICAgUUNvcmVBcHBsaWNhdGlvbjo6c2VuZEV2ZW50
KG1fd2luZG93LCAmZXZlbnQpOworICAgIFFNb3VzZUV2ZW50IGV2ZW50MihRRXZlbnQ6Ok1vdXNl
QnV0dG9uUHJlc3MsIG1vdXNlUG9zLCBRdDo6UmlnaHRCdXR0b24sIFF0OjpSaWdodEJ1dHRvbiwg
UXQ6Ok5vTW9kaWZpZXIpOworICAgIFFDb3JlQXBwbGljYXRpb246OnNlbmRFdmVudChtX3dpbmRv
dywgJmV2ZW50Mik7CisgICAgUU1vdXNlRXZlbnQgZXZlbnQzKFFFdmVudDo6TW91c2VCdXR0b25S
ZWxlYXNlLCBtb3VzZVBvcywgIFF0OjpSaWdodEJ1dHRvbiwgUXQ6Ok5vQnV0dG9uLCBRdDo6Tm9N
b2RpZmllcik7CisgICAgUUNvcmVBcHBsaWNhdGlvbjo6c2VuZEV2ZW50KG1fd2luZG93LCAmZXZl
bnQzKTsKK30KKworfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQorCisjaW5jbHVkZSAiUGxh
dGZvcm1XZWJWaWV3UXQubW9jIgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9xdC9t
YWluLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvcXQvbWFpbi5jcHAKaW5kZXggN2UwMzc4ZjZh
MjY5ZTA5MzEyMGY4NWIzZDMxZGY4ZGM2M2U5YWQ3Zi4uNGM1ZTg4NTA4MzU4MTY0MzZhODQ5NzA1
NzJhZTFmMjZiY2NhNzM3ZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9xdC9tYWlu
LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL3F0L21haW4uY3BwCkBAIC0yMyw5ICsyMyw1
MiBAQAogCiAjaW5jbHVkZSA8UUd1aUFwcGxpY2F0aW9uPgogCit2b2lkIGFkZFF0V2ViUHJvY2Vz
c1RvUGF0aCgpCit7CisgICAgLy8gU2luY2UgdGVzdHMgd29uJ3QgZmluZCAuL1F0V2ViUHJvY2Vz
cywgYWRkIGl0IHRvIFBBVEggKGF0IHRoZSBlbmQgdG8gcHJldmVudCBzdXJwcmlzZXMpLgorICAg
IC8vIFJPT1RfQlVJTERfRElSIHNob3VsZCBiZSBkZWZpbmVkIGJ5IHFtYWtlLgorICAgIHFwdXRl
bnYoIlBBVEgiLCBxZ2V0ZW52KCJQQVRIIikgKyBRQnl0ZUFycmF5KCI6IiBST09UX0JVSUxEX0RJ
UiAiL2JpbiIpKTsKK30KKwordm9pZCBtZXNzYWdlSGFuZGxlcihRdE1zZ1R5cGUgdHlwZSwgY29u
c3QgUU1lc3NhZ2VMb2dDb250ZXh0JiwgY29uc3QgUVN0cmluZyYgbWVzc2FnZSkKK3sKKyAgICBp
ZiAodHlwZSA9PSBRdENyaXRpY2FsTXNnKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiJXNc
biIsIHFQcmludGFibGUobWVzc2FnZSkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
Ly8gRG8gbm90aGluZworfQorCiBpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiB7Cisg
ICAgYm9vbCBzdXBwcmVzc1F0RGVidWdPdXRwdXQgPSB0cnVlOyAvLyBTdXBwcmVzcyBkZWJ1ZyBv
dXRwdXQgZnJvbSBRdCBpZiBub3Qgc3RhcnRlZCB3aXRoIC0tdmVyYm9zZS4KKyAgICBib29sIHVz
ZURlc2t0b3BCZWhhdmlvciA9IGZhbHNlOyAvLyBVc2UgdHJhZGl0aW9uYWwgZGVza3RvcCBiZWhh
dmlvciBpZiBzdGFydGVkIHdpdGggLS1kZXNrdG9wLgorCisgICAgZm9yIChpbnQgaSA9IDE7IGkg
PCBhcmdjOyArK2kpIHsKKyAgICAgICAgaWYgKCFxc3RyY21wKGFyZ3ZbaV0sICItLXZlcmJvc2Ui
KSkgeworICAgICAgICAgICAgc3VwcHJlc3NRdERlYnVnT3V0cHV0ID0gZmFsc2U7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBpZiAoIXFzdHJjbXAoYXJndltpXSwgIi0t
ZGVza3RvcCIpKSB7CisgICAgICAgICAgICB1c2VEZXNrdG9wQmVoYXZpb3IgPSB0cnVlOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBIYXMgdG8gYmUgZG9u
ZSBiZWZvcmUgUUFwcGxpY2F0aW9uIGlzIGNvbnN0cnVjdGVkIGluIGNhc2UKKyAgICAvLyBRQXBw
bGljYXRpb24gaXRzZWxmIHByb2R1Y2VzIGRlYnVnIG91dHB1dC4KKyAgICBpZiAoc3VwcHJlc3NR
dERlYnVnT3V0cHV0KSB7CisgICAgICAgIHFJbnN0YWxsTWVzc2FnZUhhbmRsZXIobWVzc2FnZUhh
bmRsZXIpOworICAgICAgICBpZiAocWdldGVudigiUVRfV0VCS0lUX1NVUFBSRVNTX1dFQl9QUk9D
RVNTX09VVFBVVCIpLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIHFwdXRlbnYoIlFUX1dFQktJVF9T
VVBQUkVTU19XRUJfUFJPQ0VTU19PVVRQVVQiLCAiMSIpOworICAgIH0KKworICAgIGlmICh1c2VE
ZXNrdG9wQmVoYXZpb3IpCisgICAgICAgIHFwdXRlbnYoIlFUX1RFU1RfV0VCS0lUQVBJX1VTRV9E
RVNLVE9QX0JFSEFWSU9SIiwgIjEiKTsKKwogICAgIFFHdWlBcHBsaWNhdGlvbiBhcHAoYXJnYywg
YXJndik7CisgICAgYWRkUXRXZWJQcm9jZXNzVG9QYXRoKCk7CiAKICAgICByZXR1cm4gVGVzdFdl
YktpdEFQSTo6VGVzdHNDb250cm9sbGVyOjpzaGFyZWQoKS5ydW4oYXJnYywgYXJndikgPyBFWElU
X1NVQ0NFU1MgOiBFWElUX0ZBSUxVUkU7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188587</attachid>
            <date>2013-02-15 09:32:38 -0800</date>
            <delta_ts>2013-02-15 09:56:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109843-20130215182821.patch</filename>
            <type>text/plain</type>
            <size>22978</size>
            <attacher name="Allan Sandfeld Jensen">allan.jensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyOTc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNWRhMjFmNDVlNTg2MjRi
NzI4NTZjMjJiN2Y5NWVkN2RjYTNjOTBkOC4uZDZmM2RmYWE0MDVjYTU1NzA2ZDYzZmU5NjQzYTlm
NzU5NGU0NmE3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE1IEBACiAyMDEzLTAyLTE1ICBBbGxh
biBTYW5kZmVsZCBKZW5zZW4gIDxhbGxhbi5qZW5zZW5AZGlnaWEuY29tPgogCisgICAgICAgIFtR
dF1bV0syXSBTdXBwb3J0IFdLMiBBUEkgdGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTg0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3Au
aDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEkpOgorCisyMDEzLTAyLTE1ICBBbGxhbiBTYW5kZmVs
ZCBKZW5zZW4gIDxhbGxhbi5qZW5zZW5AZGlnaWEuY29tPgorCiAgICAgICAgIFNpbXBsaWZ5IGhp
dFRlc3RSZXN1bHRBdFBvaW50IGFuZCBub2Rlc0Zyb21SZWN0IEFQSXMKICAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1NzIwCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcC5oCmluZGV4IDQ1N2RlNjVl
MjUyNDk3YjhkYzY1MjYxOGI2MTRhZWVhZjMwOTkyOTIuLmYxYWQ5NjRlZGI1ZGFiNGYzMmMwYzU5
MzEwY2JkYTc5OGRkMzY0YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvcXQvcXF1aWNrd2Vidmlld19wLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9xdC9xcXVpY2t3ZWJ2aWV3X3AuaApAQCAtNDgsNiArNDgsMTAgQEAgbmFtZXNwYWNlIFdUUiB7
CiBjbGFzcyBQbGF0Zm9ybVdlYlZpZXc7CiB9CiAKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsK
K2NsYXNzIFBsYXRmb3JtV2ViVmlldzsKK30KKwogbmFtZXNwYWNlIFdlYktpdCB7CiBzdHJ1Y3Qg
UXRSZWZDb3VudGVkTmV0d29ya1JlcXVlc3REYXRhOwogY2xhc3MgUGFnZVZpZXdwb3J0Q29udHJv
bGxlckNsaWVudFF0OwpAQCAtMjI0LDYgKzIyOCw3IEBAIHByaXZhdGU6CiAgICAgZnJpZW5kIGNs
YXNzIFdlYktpdDo6UXRXZWJQYWdlUG9saWN5Q2xpZW50OwogICAgIGZyaWVuZCBjbGFzcyBXZWJL
aXQ6OlF0V2ViUGFnZVVJQ2xpZW50OwogICAgIGZyaWVuZCBjbGFzcyBXVFI6OlBsYXRmb3JtV2Vi
VmlldzsKKyAgICBmcmllbmQgY2xhc3MgVGVzdFdlYktpdEFQSTo6UGxhdGZvcm1XZWJWaWV3Owog
ICAgIGZyaWVuZCBjbGFzcyBRUXVpY2tXZWJWaWV3RXhwZXJpbWVudGFsOwogfTsKIApkaWZmIC0t
Z2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDJhNWE0YTFkYmIz
MTk3N2VlZGFmYWJmMGM4ZDgwYTE4OWUyYjhkZDguLjNlMmY2OGU1YzA0MDJjMzg1NmQ1NDExNTFl
OTFkZTJiZjJhNzA5ZjQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSw0MiBAQAorMjAxMy0wMi0xNSAgQWxsYW4gU2FuZGZlbGQgSmVu
c2VuICA8YWxsYW4uamVuc2VuQGRpZ2lhLmNvbT4KKworICAgICAgICBbUXRdW1dLMl0gU3VwcG9y
dCBXSzIgQVBJIHRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMDk4NDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvRGVyaXZlZFNvdXJjZXMucHJpOiBBZGRlZC4KKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL0luamVjdGVkQnVuZGxlLnByaTogQWRkZWQuCisgICAgICAgICog
VGVzdFdlYktpdEFQSS9QbGF0Zm9ybVdlYlZpZXcuaDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RXZWJLaXRBUEkucHJpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQ
SS5wcm86CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS5wcm86IEFkZGVkLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L1dURi5wcm86CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1dlYktpdDIu
cHJvOiBBZGRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL3F0L1BsYXRmb3JtVXRpbGl0aWVz
UXQuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VXRpbDo6c2xlZXApOgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6VXRpbDo6Y3JlYXRlSW5qZWN0ZWRCdW5kbGVQYXRoKToKKyAgICAgICAg
KFRlc3RXZWJLaXRBUEk6OlV0aWw6OmNyZWF0ZVVSTEZvclJlc291cmNlKToKKyAgICAgICAgKFRl
c3RXZWJLaXRBUEk6OlV0aWw6OmlzS2V5RG93bik6CisgICAgICAgIChVdGlsKToKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL3F0L1BsYXRmb3JtV2ViVmlld1F0LmNwcDogQWRkZWQuCisgICAgICAg
IChUZXN0V2ViS2l0QVBJKToKKyAgICAgICAgKFdyYXBwZXJXaW5kb3cpOgorICAgICAgICAoVGVz
dFdlYktpdEFQSTo6V3JhcHBlcldpbmRvdzo6V3JhcHBlcldpbmRvdyk6CisgICAgICAgIChUZXN0
V2ViS2l0QVBJOjpXcmFwcGVyV2luZG93OjpoYW5kbGVTdGF0dXNDaGFuZ2VkKToKKyAgICAgICAg
KFRlc3RXZWJLaXRBUEk6OlBsYXRmb3JtV2ViVmlldzo6UGxhdGZvcm1XZWJWaWV3KToKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OlBsYXRmb3JtV2ViVmlldzo6flBsYXRmb3JtV2ViVmlldyk6Cisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpQbGF0Zm9ybVdlYlZpZXc6OnJlc2l6ZVRvKToKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OlBsYXRmb3JtV2ViVmlldzo6cGFnZSk6CisgICAgICAgIChUZXN0
V2ViS2l0QVBJOjpQbGF0Zm9ybVdlYlZpZXc6OmZvY3VzKToKKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OlBsYXRmb3JtV2ViVmlldzo6c2ltdWxhdGVTcGFjZWJhcktleVByZXNzKToKKyAgICAgICAg
KFRlc3RXZWJLaXRBUEk6OlBsYXRmb3JtV2ViVmlldzo6c2ltdWxhdGVBbHRLZXlQcmVzcyk6Cisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpQbGF0Zm9ybVdlYlZpZXc6OnNpbXVsYXRlTW91c2VNb3Zl
KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlBsYXRmb3JtV2ViVmlldzo6c2ltdWxhdGVSaWdo
dENsaWNrKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL3F0L21haW4uY3BwOgorICAgICAgICAo
YWRkUXRXZWJQcm9jZXNzVG9QYXRoKToKKyAgICAgICAgKG1haW4pOgorCiAyMDEzLTAyLTE1ICBK
b2NoZW4gRWlzaW5nZXIgIDxqb2NoZW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFNwZWN1bGF0
aXZlIGJ1aWxkIGZpeCBmb3IgY2hyb21pdW0td2luLgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9EZXJpdmVkU291cmNlcy5wcmkgYi9Ub29scy9UZXN0V2ViS2l0QVBJL0Rlcml2ZWRT
b3VyY2VzLnByaQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYjM5MWFkNTljMjU3MzljYjRhYjE5NWM3YmEzMWU0Mjg1
NWFiOTQ1Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9EZXJpdmVkU291
cmNlcy5wcmkKQEAgLTAsMCArMSwxMiBAQAorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIERlcml2ZWQgc291cmNl
cyBmb3IgVGVzdFdlYktpdEFQSQorIworIyBTZWUgJ1Rvb2xzL3FtYWtlL1JFQURNRScgZm9yIGFu
IG92ZXJ2aWV3IG9mIHRoZSBidWlsZCBzeXN0ZW0KKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitURU1QTEFURSA9
IGRlcml2ZWQKKworIyBNYWtlIHN1cmUgZm9yd2FyZGVkIGhlYWRlcnMgbmVlZGVkIGJ5IHRoaXMg
cHJvamVjdCBhcmUgcHJlc2VudAorZndoZWFkZXJfZ2VuZXJhdG9yLmNvbW1hbmRzID0gcGVybCAk
JHtST09UX1dFQktJVF9ESVJ9L1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvZ2VuZXJhdGUtZm9yd2Fy
ZGluZy1oZWFkZXJzLnBsICQke1JPT1RfV0VCS0lUX0RJUn0vVG9vbHMvVGVzdFdlYktpdEFQSSAk
JHtST09UX0JVSUxEX0RJUn0vU291cmNlL2luY2x1ZGUgcXQKK2Z3aGVhZGVyX2dlbmVyYXRvci5k
ZXBlbmRzICA9ICQke1JPT1RfV0VCS0lUX0RJUn0vU291cmNlL1dlYktpdDIvU2NyaXB0cy9nZW5l
cmF0ZS1mb3J3YXJkaW5nLWhlYWRlcnMucGwKK0dFTkVSQVRPUlMgKz0gZndoZWFkZXJfZ2VuZXJh
dG9yCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL0luamVjdGVkQnVuZGxlLnByaSBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvSW5qZWN0ZWRCdW5kbGUucHJpCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFjOWU2
Y2U2YjMyYzc0Yzg2NzhkMDU4NWQ3YjhkYzcyYTAxNjY0ZDIKLS0tIC9kZXYvbnVsbAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL0luamVjdGVkQnVuZGxlLnByaQpAQCAtMCwwICsxLDU2IEBACisj
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KKyMgUHJvamVjdCBmaWxlIGZvciBUZXN0V2ViS2l0QVBJJ3MgSW5qZWN0ZWRC
dW5kbGUKKyMKKyMgU2VlICdUb29scy9xbWFrZS9SRUFETUUnIGZvciBhbiBvdmVydmlldyBvZiB0
aGUgYnVpbGQgc3lzdGVtCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworVEVNUExBVEUgPSBsaWIKK1RBUkdFVCA9
IFRlc3RXZWJLaXRBUElJbmplY3RlZEJ1bmRsZQorCitJTkNMVURFUEFUSCArPSAkJFBXRAorSU5D
TFVERVBBVEggKz0gJCR7Uk9PVF9XRUJLSVRfRElSfS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9p
bmNsdWRlCisKK1NPVVJDRVMgKz0gXAorICAgICQkUFdEL0luamVjdGVkQnVuZGxlQ29udHJvbGxl
ci5jcHAgXAorICAgICQkUFdEL0luamVjdGVkQnVuZGxlQ29udHJvbGxlci5oIFwKKyAgICAkJFBX
RC9JbmplY3RlZEJ1bmRsZU1haW4uY3BwIFwKKyAgICAkJFBXRC9JbmplY3RlZEJ1bmRsZVRlc3Qu
aCBcCisgICAgJCRQV0QvUGxhdGZvcm1VdGlsaXRpZXMuY3BwIFwKKyAgICAkJFBXRC9QbGF0Zm9y
bVV0aWxpdGllcy5oIFwKKyAgICAkJFBXRC9xdC9JbmplY3RlZEJ1bmRsZUNvbnRyb2xsZXJRdC5j
cHAgXAorICAgICQkUFdEL3F0L1BsYXRmb3JtVXRpbGl0aWVzUXQuY3BwIFwKKyAgICAkJFBXRC9U
ZXN0cy9XZWJLaXQyL0NhbkhhbmRsZVJlcXVlc3RfQnVuZGxlLmNwcCBcCisgICAgJCRQV0QvVGVz
dHMvV2ViS2l0Mi9Eb2N1bWVudFN0YXJ0VXNlclNjcmlwdEFsZXJ0Q3Jhc2hfQnVuZGxlLmNwcCBc
CisgICAgJCRQV0QvVGVzdHMvV2ViS2l0Mi9ET01XaW5kb3dFeHRlbnNpb25CYXNpY19CdW5kbGUu
Y3BwIFwKKyAgICAkJFBXRC9UZXN0cy9XZWJLaXQyL0RPTVdpbmRvd0V4dGVuc2lvbk5vQ2FjaGVf
QnVuZGxlLmNwcCBcCisgICAgJCRQV0QvVGVzdHMvV2ViS2l0Mi9HZXRJbmplY3RlZEJ1bmRsZUlu
aXRpYWxpemF0aW9uVXNlckRhdGFDYWxsYmFja19CdW5kbGUuY3BwIFwKKyAgICAkJFBXRC9UZXN0
cy9XZWJLaXQyL0hpdFRlc3RSZXN1bHROb2RlSGFuZGxlX0J1bmRsZS5jcHAgXAorICAgICQkUFdE
L1Rlc3RzL1dlYktpdDIvSW5qZWN0ZWRCdW5kbGVCYXNpY19CdW5kbGUuY3BwIFwKKyAgICAkJFBX
RC9UZXN0cy9XZWJLaXQyL0luamVjdGVkQnVuZGxlRnJhbWVIaXRUZXN0X0J1bmRsZS5jcHAgXAor
ICAgICQkUFdEL1Rlc3RzL1dlYktpdDIvSW5qZWN0ZWRCdW5kbGVJbml0aWFsaXphdGlvblVzZXJE
YXRhQ2FsbGJhY2tXaW5zX0J1bmRsZS5jcHAgXAorICAgICQkUFdEL1Rlc3RzL1dlYktpdDIvTG9h
ZENhbmNlbGVkTm9TZXJ2ZXJSZWRpcmVjdENhbGxiYWNrX0J1bmRsZS5jcHAgXAorICAgICQkUFdE
L1Rlc3RzL1dlYktpdDIvTW91c2VNb3ZlQWZ0ZXJDcmFzaF9CdW5kbGUuY3BwIFwKKyAgICAkJFBX
RC9UZXN0cy9XZWJLaXQyL05ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dF9CdW5kbGUuY3Bw
IFwKKyAgICAkJFBXRC9UZXN0cy9XZWJLaXQyL05ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91
dEZhaWxzX0J1bmRsZS5jcHAgXAorICAgICQkUFdEL1Rlc3RzL1dlYktpdDIvTmV3Rmlyc3RWaXN1
YWxseU5vbkVtcHR5TGF5b3V0Rm9ySW1hZ2VzX0J1bmRsZS5jcHAgXAorICAgICQkUFdEL1Rlc3Rz
L1dlYktpdDIvTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0RnJhbWVzX0J1bmRsZS5jcHAg
XAorICAgICQkUFdEL1Rlc3RzL1dlYktpdDIvUGFyZW50RnJhbWVfQnVuZGxlLmNwcCBcCisgICAg
JCRQV0QvVGVzdHMvV2ViS2l0Mi9SZXNwb25zaXZlbmVzc1RpbWVyRG9lc250RmlyZUVhcmx5X0J1
bmRsZS5jcHAgXAorICAgICQkUFdEL1Rlc3RzL1dlYktpdDIvU2hvdWxkR29Ub0JhY2tGb3J3YXJk
TGlzdEl0ZW1fQnVuZGxlLmNwcCBcCisgICAgJCRQV0QvVGVzdHMvV2ViS2l0Mi9Vc2VyTWVzc2Fn
ZV9CdW5kbGUuY3BwIFwKKyAgICAkJFBXRC9UZXN0cy9XZWJLaXQyL1dpbGxTZW5kU3VibWl0RXZl
bnRfQnVuZGxlLmNwcCBcCisgICAgJCRQV0QvVGVzdHMvV2ViS2l0Mi9XS0Nvbm5lY3Rpb25fQnVu
ZGxlLmNwcAorCisKK0RFU1RESVIgPSAkJHtST09UX0JVSUxEX0RJUn0vbGliCisKK1FUICs9IGNv
cmUgd2Via2l0CisKK1dFQktJVCArPSB3dGYgamF2YXNjcmlwdGNvcmUgd2ViY29yZSB3ZWJraXQy
CisKK0NPTkZJRyArPSBwbHVnaW4gcnBhdGggY29tcGlsaW5nX3RoaXJkcGFydHlfY29kZQorCitM
SUJTICs9IC1MJCR7Uk9PVF9CVUlMRF9ESVJ9L1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0LyQkYWN0
aXZlQnVpbGRDb25maWcoKSAtbGd0ZXN0CisKK0RFRklORVMgKz0gQVBJVEVTVF9TT1VSQ0VfRElS
PVxcXCIkJFBXRFxcXCIgXAorICAgICAgICAgICBST09UX0JVSUxEX0RJUj1cXFwiJCR7Uk9PVF9C
VUlMRF9ESVJ9XFxcIgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9ybVdl
YlZpZXcuaCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1XZWJWaWV3LmgKaW5kZXggZGNh
ZjQ0ODQyZDZlZmU3OTRmYTRiN2MxYTI4N2MwZDFhODU0MzIzYi4uYjU2YzA5NmU1ODE5MzI5NDAx
MjBmNGJlN2U4NDQ1YWNjOTI1ODQ4ZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9Q
bGF0Zm9ybVdlYlZpZXcuaAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3JtV2ViVmll
dy5oCkBAIC01MCw2ICs1MCwxMyBAQCB0eXBlZGVmIEd0a1dpZGdldCAqUGxhdGZvcm1XaW5kb3c7
CiB0eXBlZGVmIHN0cnVjdCBfRWNvcmVfRXZhcyBFY29yZV9FdmFzOwogdHlwZWRlZiBXS1ZpZXdS
ZWYgUGxhdGZvcm1XS1ZpZXc7CiB0eXBlZGVmIEVjb3JlX0V2YXMqIFBsYXRmb3JtV2luZG93Owor
I2VsaWYgUExBVEZPUk0oUVQpCitRVF9CRUdJTl9OQU1FU1BBQ0UKK2NsYXNzIFFRdWlja1ZpZXc7
CitRVF9FTkRfTkFNRVNQQUNFCitjbGFzcyBRUXVpY2tXZWJWaWV3OwordHlwZWRlZiBRUXVpY2tX
ZWJWaWV3KiBQbGF0Zm9ybVdLVmlldzsKK3R5cGVkZWYgUVF1aWNrVmlldyogUGxhdGZvcm1XaW5k
b3c7CiAjZW5kaWYKIAogbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnByaSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS5wcmkKaW5kZXggZDNmNzE3ZTMxYjE1MTAzYTk4OTEyOGU3Mzc2YmI4ZDk3
MmMzODk2MS4uOTRkZTllNGIyNjhlYzQ2MTExNGI5ZTliYmQ3ZDdkYjRjYWIwM2FlNyAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnByaQorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkucHJpCkBAIC0xLDE0ICsxLDIyIEBACiAKIElOQ0xV
REVQQVRIICs9ICQkUFdEICQke1JPT1RfV0VCS0lUX0RJUn0vU291cmNlL1RoaXJkUGFydHkvZ3Rl
c3QvaW5jbHVkZQotV0VCS0lUICs9IHd0ZiBqYXZhc2NyaXB0Y29yZQorV0VCS0lUICs9IHd0ZiBq
YXZhc2NyaXB0Y29yZSB3ZWJraXQyCiAKIERFRklORVMgKz0gUVRfTk9fQ0FTVF9GUk9NX0FTQ0lJ
CiAKLVFUICs9IGNvcmUgZ3VpIHdlYmtpdAorUVQgKz0gY29yZSBjb3JlLXByaXZhdGUgZ3VpIGd1
aS1wcml2YXRlIHdlYmtpdCBxdWljayBxdWljay1wcml2YXRlCiAKIENPTkZJRyArPSBjb21waWxp
bmdfdGhpcmRwYXJ0eV9jb2RlCiAKLVNPVVJDRVMgKz0gJCRQV0QvKi5jcHAKLVNPVVJDRVMgKz0g
JCRQV0QvcXQvKi5jcHAKK1NPVVJDRVMgKz0gXAorICAgICQkUFdEL0phdmFTY3JpcHRUZXN0LmNw
cCBcCisgICAgJCRQV0QvUGxhdGZvcm1VdGlsaXRpZXMuY3BwIFwKKyAgICAkJFBXRC9UZXN0c0Nv
bnRyb2xsZXIuY3BwIFwKKyAgICAkJFBXRC9xdC9tYWluLmNwcCBcCisgICAgJCRQV0QvcXQvUGxh
dGZvcm1VdGlsaXRpZXNRdC5jcHAgXAorICAgICQkUFdEL3F0L1BsYXRmb3JtV2ViVmlld1F0LmNw
cAogCiBMSUJTICs9IC1MJCR7Uk9PVF9CVUlMRF9ESVJ9L1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0
LyQkYWN0aXZlQnVpbGRDb25maWcoKSAtbGd0ZXN0CisKK0RFRklORVMgKz0gUk9PVF9CVUlMRF9E
SVI9XFxcIiQke1JPT1RfQlVJTERfRElSfVxcXCIKKwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0V2ViS2l0QVBJLnBybyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktp
dEFQSS5wcm8KaW5kZXggZjA2M2JjMDIxNTdjZmZjMmNiM2Q0ODRiMWM0MGFkMTJiNWI1OGIwMS4u
YjlkMGNkNWI2MDJmNTExNWZjZWRmMWU5MzdhNzkwZDNjMzk5NmE2YSAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnBybworKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RXZWJLaXRBUEkucHJvCkBAIC0xLDMgKzEsMTEgQEAKIFRFTVBMQVRFID0gc3ViZGly
cworQ09ORklHICs9IG9yZGVyZWQKIAotU1VCRElSUyArPSBUZXN0cy9XVEYKK2Rlcml2ZWRfc291
cmNlcy5maWxlID0gRGVyaXZlZFNvdXJjZXMucHJpCitpbmplY3RlZF9idW5kbGUuZmlsZSA9IElu
amVjdGVkQnVuZGxlLnByaQordGVzdHMuZmlsZSA9IFRlc3RzLnByaQorCitTVUJESVJTICs9IGRl
cml2ZWRfc291cmNlcyBpbmplY3RlZF9idW5kbGUgdGVzdHMKKworYWRkU3RyaWN0U3ViZGlyT3Jk
ZXJCZXR3ZWVuKGRlcml2ZWRfc291cmNlcywgaW5qZWN0ZWRfYnVuZGxlKQorYWRkU3RyaWN0U3Vi
ZGlyT3JkZXJCZXR3ZWVuKGRlcml2ZWRfc291cmNlcywgdGVzdHMpCmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzLnByaSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMucHJp
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjE1ZTgxYzA5NGQyZDI3OTEzNDk2NGZhYjUzMmZjNmU3YzNjYzRmNWYKLS0t
IC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzLnByaQpAQCAtMCwwICsx
LDMgQEAKK1RFTVBMQVRFID0gc3ViZGlycworCitTVUJESVJTICs9IFRlc3RzL1dURiBUZXN0cy9K
YXZhU2NyaXB0Q29yZSBUZXN0cy9XZWJLaXQyCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnBybyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUucHJvCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjlkNDRmYWQwZTc3N2UyZGQyODhmYjJlZGQxMTBlZGY4YTgxYTc1YWMKLS0tIC9kZXYvbnVs
bAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnBybwpAQCAtMCwwICsxLDggQEAKK1RFTVBMQVRFID0gYXBwCitUQVJHRVQgPSB0c3Rf
anNjCisKK1NPVVJDRVMgKz0gKi5jcHAKKworaW5jbHVkZSguLi8uLi9UZXN0V2ViS2l0QVBJLnBy
aSkKKworREVGSU5FUyArPSBBUElURVNUX1NPVVJDRV9ESVI9XFxcIiQkUFdEXFxcIgpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV1RGLnBybyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL1dURi5wcm8KaW5kZXggZDNlM2IwZGYxMmJjMDU4MzljMTYyMThk
YjA0N2EwYTE4YjFlNmY1YS4uNzA1YjdiYmYzNTkwNWVkMTBjZjE5ZjNkMWFlOTZlNTJmODhjM2I3
MSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV1RGLnBybworKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9XVEYucHJvCkBAIC0xOCw5ICsxOCwxMiBA
QCBTT1VSQ0VTICs9IFwKICAgICBTdHJpbmdJbXBsLmNwcCBcCiAgICAgU3RyaW5nT3BlcmF0b3Jz
LmNwcCBcCiAgICAgVGVtcG9yYXJ5Q2hhbmdlLmNwcCBcCi0gICAgVmVjdG9yQmFzaWMuY3BwIFwK
ICAgICBWZWN0b3IuY3BwIFwKKyAgICBWZWN0b3JCYXNpYy5jcHAgXAogICAgIFZlY3RvclJldmVy
c2UuY3BwIFwKICAgICBXVEZTdHJpbmcuY3BwCiAKIGluY2x1ZGUoLi4vLi4vVGVzdFdlYktpdEFQ
SS5wcmkpCisKK0RFRklORVMgKz0gQVBJVEVTVF9TT1VSQ0VfRElSPVxcXCIkJFBXRFxcXCIKKwpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1dlYktpdDIucHJv
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1dlYktpdDIucHJvCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjhmZTc1ZjZmYjBhZWJiYTFmYWYyYzQzZmRkMmE2MDY0OGE0NTk0N2MKLS0tIC9kZXYvbnVs
bAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvV2ViS2l0Mi5wcm8KQEAg
LTAsMCArMSw2NCBAQAorVEVNUExBVEUgPSBhcHAKK1RBUkdFVCA9IHRzdF93ZWJraXQyCisKK1NP
VVJDRVMgKz0gXAorICAgIEFib3V0QmxhbmtMb2FkLmNwcCBcCisgICAgRG9jdW1lbnRTdGFydFVz
ZXJTY3JpcHRBbGVydENyYXNoLmNwcCBcCisgICAgRE9NV2luZG93RXh0ZW5zaW9uQmFzaWMuY3Bw
IFwKKyAgICBET01XaW5kb3dFeHRlbnNpb25Ob0NhY2hlLmNwcCBcCisgICAgRG9jdW1lbnRTdGFy
dFVzZXJTY3JpcHRBbGVydENyYXNoLmNwcCBcCisgICAgRXZhbHVhdGVKYXZhU2NyaXB0LmNwcCBc
CisgICAgRmFpbGVkTG9hZC5jcHAgXAorICAgIEZpbmQuY3BwIFwKKyAgICBGcmFtZU1JTUVUeXBl
SFRNTC5jcHAgXAorICAgIEZyYW1lTUlNRVR5cGVQTkcuY3BwIFwKKyAgICBHZXRJbmplY3RlZEJ1
bmRsZUluaXRpYWxpemF0aW9uVXNlckRhdGFDYWxsYmFjay5jcHAgXAorICAgIEhpdFRlc3RSZXN1
bHROb2RlSGFuZGxlLmNwcCBcCisgICAgSW5qZWN0ZWRCdW5kbGVCYXNpYy5jcHAgXAorICAgIElu
amVjdGVkQnVuZGxlRnJhbWVIaXRUZXN0LmNwcCBcCisgICAgSW5qZWN0ZWRCdW5kbGVJbml0aWFs
aXphdGlvblVzZXJEYXRhQ2FsbGJhY2tXaW5zLmNwcCBcCisgICAgTG9hZEFsdGVybmF0ZUhUTUxT
dHJpbmdXaXRoTm9uRGlyZWN0b3J5VVJMLmNwcCBcCisgICAgTG9hZENhbmNlbGVkTm9TZXJ2ZXJS
ZWRpcmVjdENhbGxiYWNrLmNwcCBcCisgICAgTW91c2VNb3ZlQWZ0ZXJDcmFzaC5jcHAgXAorICAg
IFJlbG9hZFBhZ2VBZnRlckNyYXNoLmNwcCBcCisgICAgUGFnZUxvYWRCYXNpYy5jcHAgXAorICAg
IFBhZ2VMb2FkRGlkQ2hhbmdlTG9jYXRpb25XaXRoaW5QYWdlRm9yRnJhbWUuY3BwIFwKKyAgICBQ
YWdlVmlzaWJpbGl0eVN0YXRlLmNwcCBcCisgICAgUGFyZW50RnJhbWUuY3BwIFwKKyAgICBQcmV2
ZW50RW1wdHlVc2VyQWdlbnQuY3BwIFwKKyAgICBQcml2YXRlQnJvd3NpbmdQdXNoU3RhdGVOb0hp
c3RvcnlDYWxsYmFjay5jcHAgXAorICAgIFJlbG9hZFBhZ2VBZnRlckNyYXNoLmNwcCBcCisgICAg
UmVzcG9uc2l2ZW5lc3NUaW1lckRvZXNudEZpcmVFYXJseS5jcHAgXAorICAgIFVzZXJNZXNzYWdl
LmNwcCBcCisgICAgV2lsbFNlbmRTdWJtaXRFdmVudC5jcHAgXAorICAgIFdLQ29ubmVjdGlvbi5j
cHAgXAorICAgIFdLU3RyaW5nLmNwcCBcCisgICAgV0tTdHJpbmdKU1N0cmluZy5jcHAgXAorICAg
IFdLVVJMLmNwcAorCisjIFRlc3RzIHNraXBwZWQgYmVjYXVzZSB0aGV5IGNyYXNoLCBzdGFsbCBv
ciBkbyBub3QgY29tcGlsZS4KK1NLSVBQRURfU09VUkNFUyA9IFwKKyAgICBDb29raWVNYW5hZ2Vy
LmNwcCBcCisgICAgRG93bmxvYWREZWNpZGVEZXN0aW5hdGlvbkNyYXNoLmNwcCBcCisgICAgRm9y
Y2VSZXBhaW50LmNwcCBcCisgICAgTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0LmNwcCBc
CisgICAgTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0RmFpbHMuY3BwIFwKKyAgICBOZXdG
aXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JJbWFnZXMuY3BwIFwKKyAgICBOZXdGaXJzdFZp
c3VhbGx5Tm9uRW1wdHlMYXlvdXRGcmFtZXMuY3BwIFwKKyAgICBSZXN0b3JlU2Vzc2lvblN0YXRl
Q29udGFpbmluZ0Zvcm1EYXRhLmNwcCBcCisgICAgU2hvdWxkR29Ub0JhY2tGb3J3YXJkTGlzdEl0
ZW0uY3BwIFwKKyAgICBXZWJDb3JlU3RhdGlzdGljc1dpdGhOb1dlYlByb2Nlc3MuY3BwCisKKyMg
U2hvdWxkR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW0uY3BwIHdvcmtzIGluIGRlc2t0b3AgbW9kZS4K
KworRkFJTElOR19TT1VSQ0VTID0gXAorICAgIENhbkhhbmRsZVJlcXVlc3QuY3BwIFwKKyAgICBT
cGFjZWJhclNjcm9sbGluZy5jcHAKKworIyBTcGFjZWJhclNjcm9sbGluZy5jcHAgd29ya3MgaW4g
ZGVza3RvcCBtb2RlLgorCitTT1VSQ0VTICs9ICQkRkFJTElOR19TT1VSQ0VTCisKK2luY2x1ZGUo
Li4vLi4vVGVzdFdlYktpdEFQSS5wcmkpCisKK0RFRklORVMgKz0gQVBJVEVTVF9TT1VSQ0VfRElS
PVxcXCIkJFBXRFxcXCIKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvcXQvUGxhdGZv
cm1VdGlsaXRpZXNRdC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL3F0L1BsYXRmb3JtVXRpbGl0
aWVzUXQuY3BwCmluZGV4IDdjNzVhZDFiOGJhYzBmZDY3YjUxYWE2ZTQ0MjVhMmRhZmZkZGRmMjUu
LjQ1MTZhMDBlNzk3NTA4M2E5MGM5YThhMDA4OGRkY2NlOTQ0Y2VlY2IgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvcXQvUGxhdGZvcm1VdGlsaXRpZXNRdC5jcHAKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9xdC9QbGF0Zm9ybVV0aWxpdGllc1F0LmNwcApAQCAtMjEsOSArMjEsMTQg
QEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVV0aWxpdGllcy5oIgog
Ci0jaW5jbHVkZSA8UUNvcmVBcHBsaWNhdGlvbj4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLU3RyaW5n
UXQuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLTmF0aXZlRXZlbnQuaD4KKyNpbmNsdWRlIDxXZWJL
aXQyL1dLVVJMUXQuaD4KIAotI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPFFDb3JlQXBw
bGljYXRpb24+CisjaW5jbHVkZSA8UURpcj4KKyNpbmNsdWRlIDxRVXJsPgorI2luY2x1ZGUgPFFU
aHJlYWQ+CiAKIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKIG5hbWVzcGFjZSBVdGlsIHsKQEAg
LTM2LDE5ICs0MSwyNiBAQCB2b2lkIHJ1bihib29sKiBkb25lKQogCiB2b2lkIHNsZWVwKGRvdWJs
ZSBzZWNvbmRzKQogewotICAgIHVzbGVlcChzZWNvbmRzICogMTAwMDAwMCk7CisgICAgUVRocmVh
ZDo6c2xlZXAoc2Vjb25kcyk7CiB9CiAKIFdLU3RyaW5nUmVmIGNyZWF0ZUluamVjdGVkQnVuZGxl
UGF0aCgpCiB7Ci0gICAgLy8gIyMjIEZJWE1FLgotICAgIHJldHVybiBXS1N0cmluZ0NyZWF0ZVdp
dGhVVEY4Q1N0cmluZygiIik7CisgICAgUVN0cmluZyBwYXRoID0gUVN0cmluZzo6ZnJvbUxvY2Fs
OEJpdChxZ2V0ZW52KCJURVNUX1dFQktJVF9BUElfSU5KRUNURURfQlVORExFX1BBVEgiKSk7Cisg
ICAgaWYgKHBhdGguaXNFbXB0eSgpKQorICAgICAgICBwYXRoID0gUUZpbGVJbmZvKFFTdHJpbmdM
aXRlcmFsKFJPT1RfQlVJTERfRElSICIvbGliL2xpYlRlc3RXZWJLaXRBUElJbmplY3RlZEJ1bmRs
ZSIpKS5hYnNvbHV0ZUZpbGVQYXRoKCk7CisKKyAgICByZXR1cm4gV0tTdHJpbmdDcmVhdGVXaXRo
UVN0cmluZyhwYXRoKTsKIH0KIAogV0tVUkxSZWYgY3JlYXRlVVJMRm9yUmVzb3VyY2UoY29uc3Qg
Y2hhciogcmVzb3VyY2UsIGNvbnN0IGNoYXIqIGV4dGVuc2lvbikKIHsKLSAgICAvLyAjIyMgRklY
TUUuCi0gICAgcmV0dXJuIFdLVVJMQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCIiKTsKKyAgICBRU3Ry
aW5nIHBhdGggPSBRU3RyaW5nOjpmcm9tTG9jYWw4Qml0KHFnZXRlbnYoIlRFU1RfV0VCS0lUX0FQ
SV9SRVNPVVJDRVNfUEFUSCIpKTsKKyAgICBpZiAocGF0aC5pc0VtcHR5KCkpCisgICAgICAgIHBh
dGggPSBRU3RyaW5nTGl0ZXJhbChBUElURVNUX1NPVVJDRV9ESVIpOworICAgIFFTdHJpbmcgZmls
ZW5hbWUgPSBRU3RyaW5nOjpmcm9tTG9jYWw4Qml0KHJlc291cmNlKSArIFFTdHJpbmdMaXRlcmFs
KCIuIikgKyBRU3RyaW5nOjpmcm9tTG9jYWw4Qml0KGV4dGVuc2lvbik7CisKKyAgICByZXR1cm4g
V0tVUkxDcmVhdGVXaXRoUVVybChRVXJsOjpmcm9tTG9jYWxGaWxlKFFEaXIocGF0aCkuYWJzb2x1
dGVGaWxlUGF0aChmaWxlbmFtZSkpKTsKIH0KIAogV0tVUkxSZWYgVVJMRm9yTm9uRXhpc3RlbnRS
ZXNvdXJjZSgpCkBAIC01Niw1ICs2OCwxMCBAQCBXS1VSTFJlZiBVUkxGb3JOb25FeGlzdGVudFJl
c291cmNlKCkKICAgICByZXR1cm4gV0tVUkxDcmVhdGVXaXRoVVRGOENTdHJpbmcoImZpbGU6Ly8v
ZG9lcy1ub3QtZXhpc3QuaHRtbCIpOwogfQogCitib29sIGlzS2V5RG93bihXS05hdGl2ZUV2ZW50
UHRyIGV2ZW50KQoreworICAgIHJldHVybiBldmVudC0+dHlwZSgpID09IFFFdmVudDo6S2V5UHJl
c3M7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFV0aWwKIH0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRB
UEkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvcXQvUGxhdGZvcm1XZWJWaWV3UXQu
Y3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9xdC9QbGF0Zm9ybVdlYlZpZXdRdC5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNzkxMWQ1ZTFkNDcxMTk4NTdkYmE2N2ExYTMzOTc4NjU1MTk5MzEzZQotLS0gL2Rldi9u
dWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvcXQvUGxhdGZvcm1XZWJWaWV3UXQuY3BwCkBA
IC0wLDAgKzEsMTUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBVbml2ZXJzaXR5IG9mIFN6
ZWdlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMyBEaWdpYSBQ
bGMuIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVU
T1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dO
RVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQor
ICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgIlBsYXRmb3JtV2ViVmlldy5oIgorI2luY2x1
ZGUgInFxdWlja3dlYnBhZ2VfcC5oIgorI2luY2x1ZGUgInFxdWlja3dlYnZpZXdfcC5oIgorCisj
aW5jbHVkZSA8V2ViS2l0Mi9XS1JldGFpblB0ci5oPgorCisjaW5jbHVkZSA8UUNvcmVBcHBsaWNh
dGlvbj4KKyNpbmNsdWRlIDxRRXZlbnRMb29wPgorI2luY2x1ZGUgPFFRbWxQcm9wZXJ0eT4KKyNp
bmNsdWRlIDxRdFF1aWNrL1FRdWlja1ZpZXc+CisjaW5jbHVkZSA8cXBhL3F3aW5kb3dzeXN0ZW1p
bnRlcmZhY2UuaD4KKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCitjbGFzcyBXcmFwcGVy
V2luZG93IDogcHVibGljIFFRdWlja1ZpZXcgeworICAgIFFfT0JKRUNUCitwdWJsaWM6CisgICAg
V3JhcHBlcldpbmRvdyhRUXVpY2tXZWJWaWV3KiB2aWV3KQorICAgICAgICA6IFFRdWlja1ZpZXco
UVVybChRU3RyaW5nTGl0ZXJhbCgiZGF0YTp0ZXh0L3BsYWluLGltcG9ydCBRdFF1aWNrIDIuMFxu
SXRlbSB7IG9iamVjdE5hbWU6ICdyb290JyB9IikpKQorICAgICAgICAsIG1fdmlldyh2aWV3KQor
ICAgIHsKKyAgICAgICAgY29ubmVjdCh0aGlzLCBTSUdOQUwoc3RhdHVzQ2hhbmdlZChRUXVpY2tW
aWV3OjpTdGF0dXMpKSwgU0xPVChoYW5kbGVTdGF0dXNDaGFuZ2VkKFFRdWlja1ZpZXc6OlN0YXR1
cykpKTsKKyAgICB9CisKK3ByaXZhdGUgUV9TTE9UUzoKKyAgICB2b2lkIGhhbmRsZVN0YXR1c0No
YW5nZWQoUVF1aWNrVmlldzo6U3RhdHVzIHN0YXR1cykKKyAgICB7CisgICAgICAgIGlmIChzdGF0
dXMgIT0gUVF1aWNrVmlldzo6UmVhZHkpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAg
c2V0R2VvbWV0cnkoMCwgMCwgODAwLCA2MDApOworCisgICAgICAgIHNldFJlc2l6ZU1vZGUoUVF1
aWNrVmlldzo6U2l6ZVJvb3RPYmplY3RUb1ZpZXcpOworICAgICAgICBtX3ZpZXctPnNldFBhcmVu
dEl0ZW0ocm9vdE9iamVjdCgpKTsKKyAgICAgICAgUVFtbFByb3BlcnR5Ojp3cml0ZShtX3ZpZXcs
IFFTdHJpbmdMaXRlcmFsKCJhbmNob3JzLmZpbGwiKSwgcVZhcmlhbnRGcm9tVmFsdWUocm9vdE9i
amVjdCgpKSk7CisKKyAgICAgICAgbV92aWV3LT5leHBlcmltZW50YWwoKS0+c2V0UmVuZGVyVG9P
ZmZzY3JlZW5CdWZmZXIodHJ1ZSk7CisKKyAgICAgICAgYm9vbCB1c2VEZXNrdG9wQmVoYXZpb3Ig
PSAhcWdldGVudigiUVRfVEVTVF9XRUJLSVRBUElfVVNFX0RFU0tUT1BfQkVIQVZJT1IiKS5pc0Vt
cHR5KCk7CisgICAgICAgIG1fdmlldy0+ZXhwZXJpbWVudGFsKCktPnNldEZsaWNrYWJsZVZpZXdw
b3J0RW5hYmxlZCghdXNlRGVza3RvcEJlaGF2aW9yKTsKKworICAgICAgICBRV2luZG93U3lzdGVt
SW50ZXJmYWNlOjpoYW5kbGVXaW5kb3dBY3RpdmF0ZWQodGhpcyk7CisgICAgICAgIG1fdmlldy0+
cGFnZSgpLT5zZXRGb2N1cyh0cnVlKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgUVF1aWNrV2Vi
VmlldyogbV92aWV3OworfTsKKworUGxhdGZvcm1XZWJWaWV3OjpQbGF0Zm9ybVdlYlZpZXcoV0tD
b250ZXh0UmVmIGNvbnRleHRSZWYsIFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cFJlZikKK3sKKyAg
ICBtX3ZpZXcgPSBuZXcgUVF1aWNrV2ViVmlldyhjb250ZXh0UmVmLCBwYWdlR3JvdXBSZWYpOwor
ICAgIG1fdmlldy0+c2V0QWxsb3dBbnlIVFRQU0NlcnRpZmljYXRlRm9yTG9jYWxIb3N0KHRydWUp
OworICAgIG1fdmlldy0+Y29tcG9uZW50Q29tcGxldGUoKTsKKworICAgIG1fd2luZG93ID0gbmV3
IFdyYXBwZXJXaW5kb3cobV92aWV3KTsKK30KKworUGxhdGZvcm1XZWJWaWV3Ojp+UGxhdGZvcm1X
ZWJWaWV3KCkKK3sKKyAgICBkZWxldGUgbV93aW5kb3c7Cit9CisKK3ZvaWQgUGxhdGZvcm1XZWJW
aWV3OjpyZXNpemVUbyh1bnNpZ25lZCB3aWR0aCwgdW5zaWduZWQgaGVpZ2h0KQoreworICAgIC8v
IElmIHdlIGRvIG5vdCBoYXZlIGEgcGxhdGZvcm0gd2luZG93IHdlIHdpbGwgbmV2ZXIgZ2V0IHRo
ZSBuZWNlc3NhcnkKKyAgICAvLyByZXNpemUgZXZlbnQsIHNvIHNpbXVsYXRlIGl0IGluIHRoYXQg
Y2FzZSB0byBtYWtlIHN1cmUgdGhlIHF1aWNrdmlldyBpcworICAgIC8vIHJlc2l6ZWQgdG8gd2hh
dCB0aGUgYXBpIHRlc3RzIGV4cGVjdHMuCisgICAgaWYgKCFtX3dpbmRvdy0+aGFuZGxlKCkpIHsK
KyAgICAgICAgUVJlY3QgbmV3R2VvbWV0cnkobV93aW5kb3ctPngoKSwgbV93aW5kb3ctPnkoKSwg
d2lkdGgsIGhlaWdodCk7CisgICAgICAgIFFXaW5kb3dTeXN0ZW1JbnRlcmZhY2U6OmhhbmRsZUdl
b21ldHJ5Q2hhbmdlKG1fd2luZG93LCBuZXdHZW9tZXRyeSk7CisgICAgICAgIFFXaW5kb3dTeXN0
ZW1JbnRlcmZhY2U6OmZsdXNoV2luZG93U3lzdGVtRXZlbnRzKCk7CisgICAgfQorCisgICAgbV93
aW5kb3ctPnJlc2l6ZSh3aWR0aCwgaGVpZ2h0KTsKK30KKworV0tQYWdlUmVmIFBsYXRmb3JtV2Vi
Vmlldzo6cGFnZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdmlldy0+cGFnZVJlZigpOworfQor
Cit2b2lkIFBsYXRmb3JtV2ViVmlldzo6Zm9jdXMoKQoreworICAgIG1fdmlldy0+c2V0Rm9jdXMo
dHJ1ZSk7Cit9CisKK3ZvaWQgUGxhdGZvcm1XZWJWaWV3OjpzaW11bGF0ZVNwYWNlYmFyS2V5UHJl
c3MoKQoreworICAgIFFLZXlFdmVudCBldmVudChRRXZlbnQ6OktleVByZXNzLCBRdDo6S2V5X1Nw
YWNlLCBRdDo6Tm9Nb2RpZmllcik7CisgICAgUUNvcmVBcHBsaWNhdGlvbjo6c2VuZEV2ZW50KG1f
d2luZG93LCAmZXZlbnQpOworICAgIFFLZXlFdmVudCBldmVudDIoUUV2ZW50OjpLZXlSZWxlYXNl
LCBRdDo6S2V5X1NwYWNlLCBRdDo6Tm9Nb2RpZmllcik7CisgICAgUUNvcmVBcHBsaWNhdGlvbjo6
c2VuZEV2ZW50KG1fd2luZG93LCAmZXZlbnQyKTsKK30KKwordm9pZCBQbGF0Zm9ybVdlYlZpZXc6
OnNpbXVsYXRlQWx0S2V5UHJlc3MoKQoreworICAgIFFLZXlFdmVudCBldmVudChRRXZlbnQ6Oktl
eVByZXNzLCBRdDo6S2V5X0FsdCwgUXQ6Ok5vTW9kaWZpZXIpOworICAgIFFDb3JlQXBwbGljYXRp
b246OnNlbmRFdmVudChtX3dpbmRvdywgJmV2ZW50KTsKKyAgICBRS2V5RXZlbnQgZXZlbnQyKFFF
dmVudDo6S2V5UmVsZWFzZSwgUXQ6OktleV9BbHQsIFF0OjpOb01vZGlmaWVyKTsKKyAgICBRQ29y
ZUFwcGxpY2F0aW9uOjpzZW5kRXZlbnQobV93aW5kb3csICZldmVudDIpOworfQorCit2b2lkIFBs
YXRmb3JtV2ViVmlldzo6c2ltdWxhdGVNb3VzZU1vdmUodW5zaWduZWQgeCwgdW5zaWduZWQgeSkK
K3sKKyAgICBRUG9pbnRGIG1vdXNlUG9zKHgsIHkpOworICAgIFFNb3VzZUV2ZW50IGV2ZW50KFFF
dmVudDo6TW91c2VNb3ZlLCBtb3VzZVBvcywgUXQ6Ok5vQnV0dG9uLCBRdDo6Tm9CdXR0b24sIFF0
OjpOb01vZGlmaWVyKTsKKyAgICBRQ29yZUFwcGxpY2F0aW9uOjpzZW5kRXZlbnQobV93aW5kb3cs
ICZldmVudCk7Cit9CisKK3ZvaWQgUGxhdGZvcm1XZWJWaWV3OjpzaW11bGF0ZVJpZ2h0Q2xpY2so
dW5zaWduZWQgeCwgdW5zaWduZWQgeSkKK3sKKyAgICBRUG9pbnRGIG1vdXNlUG9zKHgsIHkpOwor
ICAgIFFNb3VzZUV2ZW50IGV2ZW50MihRRXZlbnQ6Ok1vdXNlQnV0dG9uUHJlc3MsIG1vdXNlUG9z
LCBRdDo6UmlnaHRCdXR0b24sIFF0OjpSaWdodEJ1dHRvbiwgUXQ6Ok5vTW9kaWZpZXIpOworICAg
IFFDb3JlQXBwbGljYXRpb246OnNlbmRFdmVudChtX3dpbmRvdywgJmV2ZW50Mik7CisgICAgUU1v
dXNlRXZlbnQgZXZlbnQzKFFFdmVudDo6TW91c2VCdXR0b25SZWxlYXNlLCBtb3VzZVBvcywgIFF0
OjpSaWdodEJ1dHRvbiwgUXQ6Ok5vQnV0dG9uLCBRdDo6Tm9Nb2RpZmllcik7CisgICAgUUNvcmVB
cHBsaWNhdGlvbjo6c2VuZEV2ZW50KG1fd2luZG93LCAmZXZlbnQzKTsKK30KKworfSAvLyBuYW1l
c3BhY2UgVGVzdFdlYktpdEFQSQorCisjaW5jbHVkZSAiUGxhdGZvcm1XZWJWaWV3UXQubW9jIgpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9xdC9tYWluLmNwcCBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvcXQvbWFpbi5jcHAKaW5kZXggN2UwMzc4ZjZhMjY5ZTA5MzEyMGY4NWIzZDMxZGY4
ZGM2M2U5YWQ3Zi4uNGM1ZTg4NTA4MzU4MTY0MzZhODQ5NzA1NzJhZTFmMjZiY2NhNzM3ZiAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9xdC9tYWluLmNwcAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL3F0L21haW4uY3BwCkBAIC0yMyw5ICsyMyw1MiBAQAogCiAjaW5jbHVkZSA8UUd1
aUFwcGxpY2F0aW9uPgogCit2b2lkIGFkZFF0V2ViUHJvY2Vzc1RvUGF0aCgpCit7CisgICAgLy8g
U2luY2UgdGVzdHMgd29uJ3QgZmluZCAuL1F0V2ViUHJvY2VzcywgYWRkIGl0IHRvIFBBVEggKGF0
IHRoZSBlbmQgdG8gcHJldmVudCBzdXJwcmlzZXMpLgorICAgIC8vIFJPT1RfQlVJTERfRElSIHNo
b3VsZCBiZSBkZWZpbmVkIGJ5IHFtYWtlLgorICAgIHFwdXRlbnYoIlBBVEgiLCBxZ2V0ZW52KCJQ
QVRIIikgKyBRQnl0ZUFycmF5KCI6IiBST09UX0JVSUxEX0RJUiAiL2JpbiIpKTsKK30KKwordm9p
ZCBtZXNzYWdlSGFuZGxlcihRdE1zZ1R5cGUgdHlwZSwgY29uc3QgUU1lc3NhZ2VMb2dDb250ZXh0
JiwgY29uc3QgUVN0cmluZyYgbWVzc2FnZSkKK3sKKyAgICBpZiAodHlwZSA9PSBRdENyaXRpY2Fs
TXNnKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiJXNcbiIsIHFQcmludGFibGUobWVzc2Fn
ZSkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8gRG8gbm90aGluZworfQorCiBp
bnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiB7CisgICAgYm9vbCBzdXBwcmVzc1F0RGVi
dWdPdXRwdXQgPSB0cnVlOyAvLyBTdXBwcmVzcyBkZWJ1ZyBvdXRwdXQgZnJvbSBRdCBpZiBub3Qg
c3RhcnRlZCB3aXRoIC0tdmVyYm9zZS4KKyAgICBib29sIHVzZURlc2t0b3BCZWhhdmlvciA9IGZh
bHNlOyAvLyBVc2UgdHJhZGl0aW9uYWwgZGVza3RvcCBiZWhhdmlvciBpZiBzdGFydGVkIHdpdGgg
LS1kZXNrdG9wLgorCisgICAgZm9yIChpbnQgaSA9IDE7IGkgPCBhcmdjOyArK2kpIHsKKyAgICAg
ICAgaWYgKCFxc3RyY21wKGFyZ3ZbaV0sICItLXZlcmJvc2UiKSkgeworICAgICAgICAgICAgc3Vw
cHJlc3NRdERlYnVnT3V0cHV0ID0gZmFsc2U7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
fQorICAgICAgICBpZiAoIXFzdHJjbXAoYXJndltpXSwgIi0tZGVza3RvcCIpKSB7CisgICAgICAg
ICAgICB1c2VEZXNrdG9wQmVoYXZpb3IgPSB0cnVlOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIH0KKyAgICB9CisKKyAgICAvLyBIYXMgdG8gYmUgZG9uZSBiZWZvcmUgUUFwcGxpY2F0aW9u
IGlzIGNvbnN0cnVjdGVkIGluIGNhc2UKKyAgICAvLyBRQXBwbGljYXRpb24gaXRzZWxmIHByb2R1
Y2VzIGRlYnVnIG91dHB1dC4KKyAgICBpZiAoc3VwcHJlc3NRdERlYnVnT3V0cHV0KSB7CisgICAg
ICAgIHFJbnN0YWxsTWVzc2FnZUhhbmRsZXIobWVzc2FnZUhhbmRsZXIpOworICAgICAgICBpZiAo
cWdldGVudigiUVRfV0VCS0lUX1NVUFBSRVNTX1dFQl9QUk9DRVNTX09VVFBVVCIpLmlzRW1wdHko
KSkKKyAgICAgICAgICAgIHFwdXRlbnYoIlFUX1dFQktJVF9TVVBQUkVTU19XRUJfUFJPQ0VTU19P
VVRQVVQiLCAiMSIpOworICAgIH0KKworICAgIGlmICh1c2VEZXNrdG9wQmVoYXZpb3IpCisgICAg
ICAgIHFwdXRlbnYoIlFUX1RFU1RfV0VCS0lUQVBJX1VTRV9ERVNLVE9QX0JFSEFWSU9SIiwgIjEi
KTsKKwogICAgIFFHdWlBcHBsaWNhdGlvbiBhcHAoYXJnYywgYXJndik7CisgICAgYWRkUXRXZWJQ
cm9jZXNzVG9QYXRoKCk7CiAKICAgICByZXR1cm4gVGVzdFdlYktpdEFQSTo6VGVzdHNDb250cm9s
bGVyOjpzaGFyZWQoKS5ydW4oYXJnYywgYXJndikgPyBFWElUX1NVQ0NFU1MgOiBFWElUX0ZBSUxV
UkU7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188591</attachid>
            <date>2013-02-15 09:56:31 -0800</date>
            <delta_ts>2013-02-18 00:59:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109843-20130215185213.patch</filename>
            <type>text/plain</type>
            <size>22947</size>
            <attacher name="Allan Sandfeld Jensen">allan.jensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyOTc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNWRhMjFmNDVlNTg2MjRi
NzI4NTZjMjJiN2Y5NWVkN2RjYTNjOTBkOC4uZDZmM2RmYWE0MDVjYTU1NzA2ZDYzZmU5NjQzYTlm
NzU5NGU0NmE3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE1IEBACiAyMDEzLTAyLTE1ICBBbGxh
biBTYW5kZmVsZCBKZW5zZW4gIDxhbGxhbi5qZW5zZW5AZGlnaWEuY29tPgogCisgICAgICAgIFtR
dF1bV0syXSBTdXBwb3J0IFdLMiBBUEkgdGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTg0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3Au
aDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEkpOgorCisyMDEzLTAyLTE1ICBBbGxhbiBTYW5kZmVs
ZCBKZW5zZW4gIDxhbGxhbi5qZW5zZW5AZGlnaWEuY29tPgorCiAgICAgICAgIFNpbXBsaWZ5IGhp
dFRlc3RSZXN1bHRBdFBvaW50IGFuZCBub2Rlc0Zyb21SZWN0IEFQSXMKICAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1NzIwCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcC5oCmluZGV4IDQ1N2RlNjVl
MjUyNDk3YjhkYzY1MjYxOGI2MTRhZWVhZjMwOTkyOTIuLmYxYWQ5NjRlZGI1ZGFiNGYzMmMwYzU5
MzEwY2JkYTc5OGRkMzY0YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvcXQvcXF1aWNrd2Vidmlld19wLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9xdC9xcXVpY2t3ZWJ2aWV3X3AuaApAQCAtNDgsNiArNDgsMTAgQEAgbmFtZXNwYWNlIFdUUiB7
CiBjbGFzcyBQbGF0Zm9ybVdlYlZpZXc7CiB9CiAKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsK
K2NsYXNzIFBsYXRmb3JtV2ViVmlldzsKK30KKwogbmFtZXNwYWNlIFdlYktpdCB7CiBzdHJ1Y3Qg
UXRSZWZDb3VudGVkTmV0d29ya1JlcXVlc3REYXRhOwogY2xhc3MgUGFnZVZpZXdwb3J0Q29udHJv
bGxlckNsaWVudFF0OwpAQCAtMjI0LDYgKzIyOCw3IEBAIHByaXZhdGU6CiAgICAgZnJpZW5kIGNs
YXNzIFdlYktpdDo6UXRXZWJQYWdlUG9saWN5Q2xpZW50OwogICAgIGZyaWVuZCBjbGFzcyBXZWJL
aXQ6OlF0V2ViUGFnZVVJQ2xpZW50OwogICAgIGZyaWVuZCBjbGFzcyBXVFI6OlBsYXRmb3JtV2Vi
VmlldzsKKyAgICBmcmllbmQgY2xhc3MgVGVzdFdlYktpdEFQSTo6UGxhdGZvcm1XZWJWaWV3Owog
ICAgIGZyaWVuZCBjbGFzcyBRUXVpY2tXZWJWaWV3RXhwZXJpbWVudGFsOwogfTsKIApkaWZmIC0t
Z2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDJhNWE0YTFkYmIz
MTk3N2VlZGFmYWJmMGM4ZDgwYTE4OWUyYjhkZDguLjNlMmY2OGU1YzA0MDJjMzg1NmQ1NDExNTFl
OTFkZTJiZjJhNzA5ZjQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSw0MiBAQAorMjAxMy0wMi0xNSAgQWxsYW4gU2FuZGZlbGQgSmVu
c2VuICA8YWxsYW4uamVuc2VuQGRpZ2lhLmNvbT4KKworICAgICAgICBbUXRdW1dLMl0gU3VwcG9y
dCBXSzIgQVBJIHRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMDk4NDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvRGVyaXZlZFNvdXJjZXMucHJpOiBBZGRlZC4KKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL0luamVjdGVkQnVuZGxlLnByaTogQWRkZWQuCisgICAgICAgICog
VGVzdFdlYktpdEFQSS9QbGF0Zm9ybVdlYlZpZXcuaDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RXZWJLaXRBUEkucHJpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQ
SS5wcm86CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS5wcm86IEFkZGVkLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L1dURi5wcm86CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1dlYktpdDIu
cHJvOiBBZGRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL3F0L1BsYXRmb3JtVXRpbGl0aWVz
UXQuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VXRpbDo6c2xlZXApOgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6VXRpbDo6Y3JlYXRlSW5qZWN0ZWRCdW5kbGVQYXRoKToKKyAgICAgICAg
KFRlc3RXZWJLaXRBUEk6OlV0aWw6OmNyZWF0ZVVSTEZvclJlc291cmNlKToKKyAgICAgICAgKFRl
c3RXZWJLaXRBUEk6OlV0aWw6OmlzS2V5RG93bik6CisgICAgICAgIChVdGlsKToKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL3F0L1BsYXRmb3JtV2ViVmlld1F0LmNwcDogQWRkZWQuCisgICAgICAg
IChUZXN0V2ViS2l0QVBJKToKKyAgICAgICAgKFdyYXBwZXJXaW5kb3cpOgorICAgICAgICAoVGVz
dFdlYktpdEFQSTo6V3JhcHBlcldpbmRvdzo6V3JhcHBlcldpbmRvdyk6CisgICAgICAgIChUZXN0
V2ViS2l0QVBJOjpXcmFwcGVyV2luZG93OjpoYW5kbGVTdGF0dXNDaGFuZ2VkKToKKyAgICAgICAg
KFRlc3RXZWJLaXRBUEk6OlBsYXRmb3JtV2ViVmlldzo6UGxhdGZvcm1XZWJWaWV3KToKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OlBsYXRmb3JtV2ViVmlldzo6flBsYXRmb3JtV2ViVmlldyk6Cisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpQbGF0Zm9ybVdlYlZpZXc6OnJlc2l6ZVRvKToKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OlBsYXRmb3JtV2ViVmlldzo6cGFnZSk6CisgICAgICAgIChUZXN0
V2ViS2l0QVBJOjpQbGF0Zm9ybVdlYlZpZXc6OmZvY3VzKToKKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OlBsYXRmb3JtV2ViVmlldzo6c2ltdWxhdGVTcGFjZWJhcktleVByZXNzKToKKyAgICAgICAg
KFRlc3RXZWJLaXRBUEk6OlBsYXRmb3JtV2ViVmlldzo6c2ltdWxhdGVBbHRLZXlQcmVzcyk6Cisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpQbGF0Zm9ybVdlYlZpZXc6OnNpbXVsYXRlTW91c2VNb3Zl
KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlBsYXRmb3JtV2ViVmlldzo6c2ltdWxhdGVSaWdo
dENsaWNrKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL3F0L21haW4uY3BwOgorICAgICAgICAo
YWRkUXRXZWJQcm9jZXNzVG9QYXRoKToKKyAgICAgICAgKG1haW4pOgorCiAyMDEzLTAyLTE1ICBK
b2NoZW4gRWlzaW5nZXIgIDxqb2NoZW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFNwZWN1bGF0
aXZlIGJ1aWxkIGZpeCBmb3IgY2hyb21pdW0td2luLgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9EZXJpdmVkU291cmNlcy5wcmkgYi9Ub29scy9UZXN0V2ViS2l0QVBJL0Rlcml2ZWRT
b3VyY2VzLnByaQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYjM5MWFkNTljMjU3MzljYjRhYjE5NWM3YmEzMWU0Mjg1
NWFiOTQ1Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9EZXJpdmVkU291
cmNlcy5wcmkKQEAgLTAsMCArMSwxMiBAQAorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIERlcml2ZWQgc291cmNl
cyBmb3IgVGVzdFdlYktpdEFQSQorIworIyBTZWUgJ1Rvb2xzL3FtYWtlL1JFQURNRScgZm9yIGFu
IG92ZXJ2aWV3IG9mIHRoZSBidWlsZCBzeXN0ZW0KKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitURU1QTEFURSA9
IGRlcml2ZWQKKworIyBNYWtlIHN1cmUgZm9yd2FyZGVkIGhlYWRlcnMgbmVlZGVkIGJ5IHRoaXMg
cHJvamVjdCBhcmUgcHJlc2VudAorZndoZWFkZXJfZ2VuZXJhdG9yLmNvbW1hbmRzID0gcGVybCAk
JHtST09UX1dFQktJVF9ESVJ9L1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvZ2VuZXJhdGUtZm9yd2Fy
ZGluZy1oZWFkZXJzLnBsICQke1JPT1RfV0VCS0lUX0RJUn0vVG9vbHMvVGVzdFdlYktpdEFQSSAk
JHtST09UX0JVSUxEX0RJUn0vU291cmNlL2luY2x1ZGUgcXQKK2Z3aGVhZGVyX2dlbmVyYXRvci5k
ZXBlbmRzICA9ICQke1JPT1RfV0VCS0lUX0RJUn0vU291cmNlL1dlYktpdDIvU2NyaXB0cy9nZW5l
cmF0ZS1mb3J3YXJkaW5nLWhlYWRlcnMucGwKK0dFTkVSQVRPUlMgKz0gZndoZWFkZXJfZ2VuZXJh
dG9yCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL0luamVjdGVkQnVuZGxlLnByaSBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvSW5qZWN0ZWRCdW5kbGUucHJpCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFjOWU2
Y2U2YjMyYzc0Yzg2NzhkMDU4NWQ3YjhkYzcyYTAxNjY0ZDIKLS0tIC9kZXYvbnVsbAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL0luamVjdGVkQnVuZGxlLnByaQpAQCAtMCwwICsxLDU2IEBACisj
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KKyMgUHJvamVjdCBmaWxlIGZvciBUZXN0V2ViS2l0QVBJJ3MgSW5qZWN0ZWRC
dW5kbGUKKyMKKyMgU2VlICdUb29scy9xbWFrZS9SRUFETUUnIGZvciBhbiBvdmVydmlldyBvZiB0
aGUgYnVpbGQgc3lzdGVtCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworVEVNUExBVEUgPSBsaWIKK1RBUkdFVCA9
IFRlc3RXZWJLaXRBUElJbmplY3RlZEJ1bmRsZQorCitJTkNMVURFUEFUSCArPSAkJFBXRAorSU5D
TFVERVBBVEggKz0gJCR7Uk9PVF9XRUJLSVRfRElSfS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9p
bmNsdWRlCisKK1NPVVJDRVMgKz0gXAorICAgICQkUFdEL0luamVjdGVkQnVuZGxlQ29udHJvbGxl
ci5jcHAgXAorICAgICQkUFdEL0luamVjdGVkQnVuZGxlQ29udHJvbGxlci5oIFwKKyAgICAkJFBX
RC9JbmplY3RlZEJ1bmRsZU1haW4uY3BwIFwKKyAgICAkJFBXRC9JbmplY3RlZEJ1bmRsZVRlc3Qu
aCBcCisgICAgJCRQV0QvUGxhdGZvcm1VdGlsaXRpZXMuY3BwIFwKKyAgICAkJFBXRC9QbGF0Zm9y
bVV0aWxpdGllcy5oIFwKKyAgICAkJFBXRC9xdC9JbmplY3RlZEJ1bmRsZUNvbnRyb2xsZXJRdC5j
cHAgXAorICAgICQkUFdEL3F0L1BsYXRmb3JtVXRpbGl0aWVzUXQuY3BwIFwKKyAgICAkJFBXRC9U
ZXN0cy9XZWJLaXQyL0NhbkhhbmRsZVJlcXVlc3RfQnVuZGxlLmNwcCBcCisgICAgJCRQV0QvVGVz
dHMvV2ViS2l0Mi9Eb2N1bWVudFN0YXJ0VXNlclNjcmlwdEFsZXJ0Q3Jhc2hfQnVuZGxlLmNwcCBc
CisgICAgJCRQV0QvVGVzdHMvV2ViS2l0Mi9ET01XaW5kb3dFeHRlbnNpb25CYXNpY19CdW5kbGUu
Y3BwIFwKKyAgICAkJFBXRC9UZXN0cy9XZWJLaXQyL0RPTVdpbmRvd0V4dGVuc2lvbk5vQ2FjaGVf
QnVuZGxlLmNwcCBcCisgICAgJCRQV0QvVGVzdHMvV2ViS2l0Mi9HZXRJbmplY3RlZEJ1bmRsZUlu
aXRpYWxpemF0aW9uVXNlckRhdGFDYWxsYmFja19CdW5kbGUuY3BwIFwKKyAgICAkJFBXRC9UZXN0
cy9XZWJLaXQyL0hpdFRlc3RSZXN1bHROb2RlSGFuZGxlX0J1bmRsZS5jcHAgXAorICAgICQkUFdE
L1Rlc3RzL1dlYktpdDIvSW5qZWN0ZWRCdW5kbGVCYXNpY19CdW5kbGUuY3BwIFwKKyAgICAkJFBX
RC9UZXN0cy9XZWJLaXQyL0luamVjdGVkQnVuZGxlRnJhbWVIaXRUZXN0X0J1bmRsZS5jcHAgXAor
ICAgICQkUFdEL1Rlc3RzL1dlYktpdDIvSW5qZWN0ZWRCdW5kbGVJbml0aWFsaXphdGlvblVzZXJE
YXRhQ2FsbGJhY2tXaW5zX0J1bmRsZS5jcHAgXAorICAgICQkUFdEL1Rlc3RzL1dlYktpdDIvTG9h
ZENhbmNlbGVkTm9TZXJ2ZXJSZWRpcmVjdENhbGxiYWNrX0J1bmRsZS5jcHAgXAorICAgICQkUFdE
L1Rlc3RzL1dlYktpdDIvTW91c2VNb3ZlQWZ0ZXJDcmFzaF9CdW5kbGUuY3BwIFwKKyAgICAkJFBX
RC9UZXN0cy9XZWJLaXQyL05ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dF9CdW5kbGUuY3Bw
IFwKKyAgICAkJFBXRC9UZXN0cy9XZWJLaXQyL05ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91
dEZhaWxzX0J1bmRsZS5jcHAgXAorICAgICQkUFdEL1Rlc3RzL1dlYktpdDIvTmV3Rmlyc3RWaXN1
YWxseU5vbkVtcHR5TGF5b3V0Rm9ySW1hZ2VzX0J1bmRsZS5jcHAgXAorICAgICQkUFdEL1Rlc3Rz
L1dlYktpdDIvTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0RnJhbWVzX0J1bmRsZS5jcHAg
XAorICAgICQkUFdEL1Rlc3RzL1dlYktpdDIvUGFyZW50RnJhbWVfQnVuZGxlLmNwcCBcCisgICAg
JCRQV0QvVGVzdHMvV2ViS2l0Mi9SZXNwb25zaXZlbmVzc1RpbWVyRG9lc250RmlyZUVhcmx5X0J1
bmRsZS5jcHAgXAorICAgICQkUFdEL1Rlc3RzL1dlYktpdDIvU2hvdWxkR29Ub0JhY2tGb3J3YXJk
TGlzdEl0ZW1fQnVuZGxlLmNwcCBcCisgICAgJCRQV0QvVGVzdHMvV2ViS2l0Mi9Vc2VyTWVzc2Fn
ZV9CdW5kbGUuY3BwIFwKKyAgICAkJFBXRC9UZXN0cy9XZWJLaXQyL1dpbGxTZW5kU3VibWl0RXZl
bnRfQnVuZGxlLmNwcCBcCisgICAgJCRQV0QvVGVzdHMvV2ViS2l0Mi9XS0Nvbm5lY3Rpb25fQnVu
ZGxlLmNwcAorCisKK0RFU1RESVIgPSAkJHtST09UX0JVSUxEX0RJUn0vbGliCisKK1FUICs9IGNv
cmUgd2Via2l0CisKK1dFQktJVCArPSB3dGYgamF2YXNjcmlwdGNvcmUgd2ViY29yZSB3ZWJraXQy
CisKK0NPTkZJRyArPSBwbHVnaW4gcnBhdGggY29tcGlsaW5nX3RoaXJkcGFydHlfY29kZQorCitM
SUJTICs9IC1MJCR7Uk9PVF9CVUlMRF9ESVJ9L1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0LyQkYWN0
aXZlQnVpbGRDb25maWcoKSAtbGd0ZXN0CisKK0RFRklORVMgKz0gQVBJVEVTVF9TT1VSQ0VfRElS
PVxcXCIkJFBXRFxcXCIgXAorICAgICAgICAgICBST09UX0JVSUxEX0RJUj1cXFwiJCR7Uk9PVF9C
VUlMRF9ESVJ9XFxcIgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9ybVdl
YlZpZXcuaCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1XZWJWaWV3LmgKaW5kZXggZGNh
ZjQ0ODQyZDZlZmU3OTRmYTRiN2MxYTI4N2MwZDFhODU0MzIzYi4uYjU2YzA5NmU1ODE5MzI5NDAx
MjBmNGJlN2U4NDQ1YWNjOTI1ODQ4ZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9Q
bGF0Zm9ybVdlYlZpZXcuaAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3JtV2ViVmll
dy5oCkBAIC01MCw2ICs1MCwxMyBAQCB0eXBlZGVmIEd0a1dpZGdldCAqUGxhdGZvcm1XaW5kb3c7
CiB0eXBlZGVmIHN0cnVjdCBfRWNvcmVfRXZhcyBFY29yZV9FdmFzOwogdHlwZWRlZiBXS1ZpZXdS
ZWYgUGxhdGZvcm1XS1ZpZXc7CiB0eXBlZGVmIEVjb3JlX0V2YXMqIFBsYXRmb3JtV2luZG93Owor
I2VsaWYgUExBVEZPUk0oUVQpCitRVF9CRUdJTl9OQU1FU1BBQ0UKK2NsYXNzIFFRdWlja1ZpZXc7
CitRVF9FTkRfTkFNRVNQQUNFCitjbGFzcyBRUXVpY2tXZWJWaWV3OwordHlwZWRlZiBRUXVpY2tX
ZWJWaWV3KiBQbGF0Zm9ybVdLVmlldzsKK3R5cGVkZWYgUVF1aWNrVmlldyogUGxhdGZvcm1XaW5k
b3c7CiAjZW5kaWYKIAogbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnByaSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS5wcmkKaW5kZXggZDNmNzE3ZTMxYjE1MTAzYTk4OTEyOGU3Mzc2YmI4ZDk3
MmMzODk2MS4uOTRkZTllNGIyNjhlYzQ2MTExNGI5ZTliYmQ3ZDdkYjRjYWIwM2FlNyAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnByaQorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkucHJpCkBAIC0xLDE0ICsxLDIyIEBACiAKIElOQ0xV
REVQQVRIICs9ICQkUFdEICQke1JPT1RfV0VCS0lUX0RJUn0vU291cmNlL1RoaXJkUGFydHkvZ3Rl
c3QvaW5jbHVkZQotV0VCS0lUICs9IHd0ZiBqYXZhc2NyaXB0Y29yZQorV0VCS0lUICs9IHd0ZiBq
YXZhc2NyaXB0Y29yZSB3ZWJraXQyCiAKIERFRklORVMgKz0gUVRfTk9fQ0FTVF9GUk9NX0FTQ0lJ
CiAKLVFUICs9IGNvcmUgZ3VpIHdlYmtpdAorUVQgKz0gY29yZSBjb3JlLXByaXZhdGUgZ3VpIGd1
aS1wcml2YXRlIHdlYmtpdCBxdWljayBxdWljay1wcml2YXRlCiAKIENPTkZJRyArPSBjb21waWxp
bmdfdGhpcmRwYXJ0eV9jb2RlCiAKLVNPVVJDRVMgKz0gJCRQV0QvKi5jcHAKLVNPVVJDRVMgKz0g
JCRQV0QvcXQvKi5jcHAKK1NPVVJDRVMgKz0gXAorICAgICQkUFdEL0phdmFTY3JpcHRUZXN0LmNw
cCBcCisgICAgJCRQV0QvUGxhdGZvcm1VdGlsaXRpZXMuY3BwIFwKKyAgICAkJFBXRC9UZXN0c0Nv
bnRyb2xsZXIuY3BwIFwKKyAgICAkJFBXRC9xdC9tYWluLmNwcCBcCisgICAgJCRQV0QvcXQvUGxh
dGZvcm1VdGlsaXRpZXNRdC5jcHAgXAorICAgICQkUFdEL3F0L1BsYXRmb3JtV2ViVmlld1F0LmNw
cAogCiBMSUJTICs9IC1MJCR7Uk9PVF9CVUlMRF9ESVJ9L1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0
LyQkYWN0aXZlQnVpbGRDb25maWcoKSAtbGd0ZXN0CisKK0RFRklORVMgKz0gUk9PVF9CVUlMRF9E
SVI9XFxcIiQke1JPT1RfQlVJTERfRElSfVxcXCIKKwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0V2ViS2l0QVBJLnBybyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktp
dEFQSS5wcm8KaW5kZXggZjA2M2JjMDIxNTdjZmZjMmNiM2Q0ODRiMWM0MGFkMTJiNWI1OGIwMS4u
YjlkMGNkNWI2MDJmNTExNWZjZWRmMWU5MzdhNzkwZDNjMzk5NmE2YSAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnBybworKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RXZWJLaXRBUEkucHJvCkBAIC0xLDMgKzEsMTEgQEAKIFRFTVBMQVRFID0gc3ViZGly
cworQ09ORklHICs9IG9yZGVyZWQKIAotU1VCRElSUyArPSBUZXN0cy9XVEYKK2Rlcml2ZWRfc291
cmNlcy5maWxlID0gRGVyaXZlZFNvdXJjZXMucHJpCitpbmplY3RlZF9idW5kbGUuZmlsZSA9IElu
amVjdGVkQnVuZGxlLnByaQordGVzdHMuZmlsZSA9IFRlc3RzLnByaQorCitTVUJESVJTICs9IGRl
cml2ZWRfc291cmNlcyBpbmplY3RlZF9idW5kbGUgdGVzdHMKKworYWRkU3RyaWN0U3ViZGlyT3Jk
ZXJCZXR3ZWVuKGRlcml2ZWRfc291cmNlcywgaW5qZWN0ZWRfYnVuZGxlKQorYWRkU3RyaWN0U3Vi
ZGlyT3JkZXJCZXR3ZWVuKGRlcml2ZWRfc291cmNlcywgdGVzdHMpCmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzLnByaSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMucHJp
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjE1ZTgxYzA5NGQyZDI3OTEzNDk2NGZhYjUzMmZjNmU3YzNjYzRmNWYKLS0t
IC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzLnByaQpAQCAtMCwwICsx
LDMgQEAKK1RFTVBMQVRFID0gc3ViZGlycworCitTVUJESVJTICs9IFRlc3RzL1dURiBUZXN0cy9K
YXZhU2NyaXB0Q29yZSBUZXN0cy9XZWJLaXQyCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnBybyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUucHJvCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjlkNDRmYWQwZTc3N2UyZGQyODhmYjJlZGQxMTBlZGY4YTgxYTc1YWMKLS0tIC9kZXYvbnVs
bAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnBybwpAQCAtMCwwICsxLDggQEAKK1RFTVBMQVRFID0gYXBwCitUQVJHRVQgPSB0c3Rf
anNjCisKK1NPVVJDRVMgKz0gKi5jcHAKKworaW5jbHVkZSguLi8uLi9UZXN0V2ViS2l0QVBJLnBy
aSkKKworREVGSU5FUyArPSBBUElURVNUX1NPVVJDRV9ESVI9XFxcIiQkUFdEXFxcIgpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV1RGLnBybyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL1dURi5wcm8KaW5kZXggZDNlM2IwZGYxMmJjMDU4MzljMTYyMThk
YjA0N2EwYTE4YjFlNmY1YS4uNzA1YjdiYmYzNTkwNWVkMTBjZjE5ZjNkMWFlOTZlNTJmODhjM2I3
MSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV1RGLnBybworKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9XVEYucHJvCkBAIC0xOCw5ICsxOCwxMiBA
QCBTT1VSQ0VTICs9IFwKICAgICBTdHJpbmdJbXBsLmNwcCBcCiAgICAgU3RyaW5nT3BlcmF0b3Jz
LmNwcCBcCiAgICAgVGVtcG9yYXJ5Q2hhbmdlLmNwcCBcCi0gICAgVmVjdG9yQmFzaWMuY3BwIFwK
ICAgICBWZWN0b3IuY3BwIFwKKyAgICBWZWN0b3JCYXNpYy5jcHAgXAogICAgIFZlY3RvclJldmVy
c2UuY3BwIFwKICAgICBXVEZTdHJpbmcuY3BwCiAKIGluY2x1ZGUoLi4vLi4vVGVzdFdlYktpdEFQ
SS5wcmkpCisKK0RFRklORVMgKz0gQVBJVEVTVF9TT1VSQ0VfRElSPVxcXCIkJFBXRFxcXCIKKwpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1dlYktpdDIucHJv
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1dlYktpdDIucHJvCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjUyMzI3ODdmODdiODY2MjMwZTdhN2I1ZDllNzhmMGJhZWFjYmY0MWEKLS0tIC9kZXYvbnVs
bAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvV2ViS2l0Mi5wcm8KQEAg
LTAsMCArMSw2MiBAQAorVEVNUExBVEUgPSBhcHAKK1RBUkdFVCA9IHRzdF93ZWJraXQyCisKK1NP
VVJDRVMgKz0gXAorICAgIEFib3V0QmxhbmtMb2FkLmNwcCBcCisgICAgRG9jdW1lbnRTdGFydFVz
ZXJTY3JpcHRBbGVydENyYXNoLmNwcCBcCisgICAgRE9NV2luZG93RXh0ZW5zaW9uQmFzaWMuY3Bw
IFwKKyAgICBET01XaW5kb3dFeHRlbnNpb25Ob0NhY2hlLmNwcCBcCisgICAgRG9jdW1lbnRTdGFy
dFVzZXJTY3JpcHRBbGVydENyYXNoLmNwcCBcCisgICAgRXZhbHVhdGVKYXZhU2NyaXB0LmNwcCBc
CisgICAgRmFpbGVkTG9hZC5jcHAgXAorICAgIEZpbmQuY3BwIFwKKyAgICBGcmFtZU1JTUVUeXBl
SFRNTC5jcHAgXAorICAgIEZyYW1lTUlNRVR5cGVQTkcuY3BwIFwKKyAgICBHZXRJbmplY3RlZEJ1
bmRsZUluaXRpYWxpemF0aW9uVXNlckRhdGFDYWxsYmFjay5jcHAgXAorICAgIEhpdFRlc3RSZXN1
bHROb2RlSGFuZGxlLmNwcCBcCisgICAgSW5qZWN0ZWRCdW5kbGVCYXNpYy5jcHAgXAorICAgIElu
amVjdGVkQnVuZGxlRnJhbWVIaXRUZXN0LmNwcCBcCisgICAgSW5qZWN0ZWRCdW5kbGVJbml0aWFs
aXphdGlvblVzZXJEYXRhQ2FsbGJhY2tXaW5zLmNwcCBcCisgICAgTG9hZEFsdGVybmF0ZUhUTUxT
dHJpbmdXaXRoTm9uRGlyZWN0b3J5VVJMLmNwcCBcCisgICAgTG9hZENhbmNlbGVkTm9TZXJ2ZXJS
ZWRpcmVjdENhbGxiYWNrLmNwcCBcCisgICAgTW91c2VNb3ZlQWZ0ZXJDcmFzaC5jcHAgXAorICAg
IFJlbG9hZFBhZ2VBZnRlckNyYXNoLmNwcCBcCisgICAgUGFnZUxvYWRCYXNpYy5jcHAgXAorICAg
IFBhZ2VMb2FkRGlkQ2hhbmdlTG9jYXRpb25XaXRoaW5QYWdlRm9yRnJhbWUuY3BwIFwKKyAgICBQ
YWdlVmlzaWJpbGl0eVN0YXRlLmNwcCBcCisgICAgUGFyZW50RnJhbWUuY3BwIFwKKyAgICBQcmV2
ZW50RW1wdHlVc2VyQWdlbnQuY3BwIFwKKyAgICBQcml2YXRlQnJvd3NpbmdQdXNoU3RhdGVOb0hp
c3RvcnlDYWxsYmFjay5jcHAgXAorICAgIFJlbG9hZFBhZ2VBZnRlckNyYXNoLmNwcCBcCisgICAg
UmVzcG9uc2l2ZW5lc3NUaW1lckRvZXNudEZpcmVFYXJseS5jcHAgXAorICAgIFVzZXJNZXNzYWdl
LmNwcCBcCisgICAgV2lsbFNlbmRTdWJtaXRFdmVudC5jcHAgXAorICAgIFdLQ29ubmVjdGlvbi5j
cHAgXAorICAgIFdLU3RyaW5nLmNwcCBcCisgICAgV0tTdHJpbmdKU1N0cmluZy5jcHAgXAorICAg
IFdLVVJMLmNwcAorCisjIFRlc3RzIHNraXBwZWQgYmVjYXVzZSB0aGV5IGNyYXNoLCBzdGFsbCBv
ciBkbyBub3QgY29tcGlsZS4KK1NLSVBQRURfU09VUkNFUyA9IFwKKyAgICBDb29raWVNYW5hZ2Vy
LmNwcCBcCisgICAgRG93bmxvYWREZWNpZGVEZXN0aW5hdGlvbkNyYXNoLmNwcCBcCisgICAgRm9y
Y2VSZXBhaW50LmNwcCBcCisgICAgTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0LmNwcCBc
CisgICAgTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0RmFpbHMuY3BwIFwKKyAgICBOZXdG
aXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JJbWFnZXMuY3BwIFwKKyAgICBOZXdGaXJzdFZp
c3VhbGx5Tm9uRW1wdHlMYXlvdXRGcmFtZXMuY3BwIFwKKyAgICBSZXN0b3JlU2Vzc2lvblN0YXRl
Q29udGFpbmluZ0Zvcm1EYXRhLmNwcCBcCisgICAgV2ViQ29yZVN0YXRpc3RpY3NXaXRoTm9XZWJQ
cm9jZXNzLmNwcAorCitTS0lQUEVEX1NPVVJDRVMgKz0gU2hvdWxkR29Ub0JhY2tGb3J3YXJkTGlz
dEl0ZW0uY3BwICMgT25seSBzdGFsbHMgaW4gZmxpY2thYmxlIG1vZGUuCisKK0ZBSUxJTkdfU09V
UkNFUyA9IFwKKyAgICBDYW5IYW5kbGVSZXF1ZXN0LmNwcCBcCisKK0ZBSUxJTkdfU09VUkNFUyAr
PSBTcGFjZWJhclNjcm9sbGluZy5jcHAgIyBPbmx5IGZhaWxzIGluIGZsaWNrYWJsZSBtb2RlLgor
CitTT1VSQ0VTICs9ICQkRkFJTElOR19TT1VSQ0VTCisKK2luY2x1ZGUoLi4vLi4vVGVzdFdlYktp
dEFQSS5wcmkpCisKK0RFRklORVMgKz0gQVBJVEVTVF9TT1VSQ0VfRElSPVxcXCIkJFBXRFxcXCIK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvcXQvUGxhdGZvcm1VdGlsaXRpZXNRdC5j
cHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL3F0L1BsYXRmb3JtVXRpbGl0aWVzUXQuY3BwCmluZGV4
IDdjNzVhZDFiOGJhYzBmZDY3YjUxYWE2ZTQ0MjVhMmRhZmZkZGRmMjUuLjQ1MTZhMDBlNzk3NTA4
M2E5MGM5YThhMDA4OGRkY2NlOTQ0Y2VlY2IgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvcXQvUGxhdGZvcm1VdGlsaXRpZXNRdC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9x
dC9QbGF0Zm9ybVV0aWxpdGllc1F0LmNwcApAQCAtMjEsOSArMjEsMTQgQEAKICNpbmNsdWRlICJj
b25maWcuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVV0aWxpdGllcy5oIgogCi0jaW5jbHVkZSA8UUNv
cmVBcHBsaWNhdGlvbj4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLU3RyaW5nUXQuaD4KKyNpbmNsdWRl
IDxXZWJLaXQyL1dLTmF0aXZlRXZlbnQuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLVVJMUXQuaD4K
IAotI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPFFDb3JlQXBwbGljYXRpb24+CisjaW5j
bHVkZSA8UURpcj4KKyNpbmNsdWRlIDxRVXJsPgorI2luY2x1ZGUgPFFUaHJlYWQ+CiAKIG5hbWVz
cGFjZSBUZXN0V2ViS2l0QVBJIHsKIG5hbWVzcGFjZSBVdGlsIHsKQEAgLTM2LDE5ICs0MSwyNiBA
QCB2b2lkIHJ1bihib29sKiBkb25lKQogCiB2b2lkIHNsZWVwKGRvdWJsZSBzZWNvbmRzKQogewot
ICAgIHVzbGVlcChzZWNvbmRzICogMTAwMDAwMCk7CisgICAgUVRocmVhZDo6c2xlZXAoc2Vjb25k
cyk7CiB9CiAKIFdLU3RyaW5nUmVmIGNyZWF0ZUluamVjdGVkQnVuZGxlUGF0aCgpCiB7Ci0gICAg
Ly8gIyMjIEZJWE1FLgotICAgIHJldHVybiBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygi
Iik7CisgICAgUVN0cmluZyBwYXRoID0gUVN0cmluZzo6ZnJvbUxvY2FsOEJpdChxZ2V0ZW52KCJU
RVNUX1dFQktJVF9BUElfSU5KRUNURURfQlVORExFX1BBVEgiKSk7CisgICAgaWYgKHBhdGguaXNF
bXB0eSgpKQorICAgICAgICBwYXRoID0gUUZpbGVJbmZvKFFTdHJpbmdMaXRlcmFsKFJPT1RfQlVJ
TERfRElSICIvbGliL2xpYlRlc3RXZWJLaXRBUElJbmplY3RlZEJ1bmRsZSIpKS5hYnNvbHV0ZUZp
bGVQYXRoKCk7CisKKyAgICByZXR1cm4gV0tTdHJpbmdDcmVhdGVXaXRoUVN0cmluZyhwYXRoKTsK
IH0KIAogV0tVUkxSZWYgY3JlYXRlVVJMRm9yUmVzb3VyY2UoY29uc3QgY2hhciogcmVzb3VyY2Us
IGNvbnN0IGNoYXIqIGV4dGVuc2lvbikKIHsKLSAgICAvLyAjIyMgRklYTUUuCi0gICAgcmV0dXJu
IFdLVVJMQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCIiKTsKKyAgICBRU3RyaW5nIHBhdGggPSBRU3Ry
aW5nOjpmcm9tTG9jYWw4Qml0KHFnZXRlbnYoIlRFU1RfV0VCS0lUX0FQSV9SRVNPVVJDRVNfUEFU
SCIpKTsKKyAgICBpZiAocGF0aC5pc0VtcHR5KCkpCisgICAgICAgIHBhdGggPSBRU3RyaW5nTGl0
ZXJhbChBUElURVNUX1NPVVJDRV9ESVIpOworICAgIFFTdHJpbmcgZmlsZW5hbWUgPSBRU3RyaW5n
Ojpmcm9tTG9jYWw4Qml0KHJlc291cmNlKSArIFFTdHJpbmdMaXRlcmFsKCIuIikgKyBRU3RyaW5n
Ojpmcm9tTG9jYWw4Qml0KGV4dGVuc2lvbik7CisKKyAgICByZXR1cm4gV0tVUkxDcmVhdGVXaXRo
UVVybChRVXJsOjpmcm9tTG9jYWxGaWxlKFFEaXIocGF0aCkuYWJzb2x1dGVGaWxlUGF0aChmaWxl
bmFtZSkpKTsKIH0KIAogV0tVUkxSZWYgVVJMRm9yTm9uRXhpc3RlbnRSZXNvdXJjZSgpCkBAIC01
Niw1ICs2OCwxMCBAQCBXS1VSTFJlZiBVUkxGb3JOb25FeGlzdGVudFJlc291cmNlKCkKICAgICBy
ZXR1cm4gV0tVUkxDcmVhdGVXaXRoVVRGOENTdHJpbmcoImZpbGU6Ly8vZG9lcy1ub3QtZXhpc3Qu
aHRtbCIpOwogfQogCitib29sIGlzS2V5RG93bihXS05hdGl2ZUV2ZW50UHRyIGV2ZW50KQorewor
ICAgIHJldHVybiBldmVudC0+dHlwZSgpID09IFFFdmVudDo6S2V5UHJlc3M7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFV0aWwKIH0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvcXQvUGxhdGZvcm1XZWJWaWV3UXQuY3BwIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9xdC9QbGF0Zm9ybVdlYlZpZXdRdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWYzYThhYTJi
YTJlMjIxMzI1ZDc4NTRhN2E0ODY5M2Q1MWQyZmQ4NwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvcXQvUGxhdGZvcm1XZWJWaWV3UXQuY3BwCkBAIC0wLDAgKzEsMTUzIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBVbml2ZXJzaXR5IG9mIFN6ZWdlZC4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMyBEaWdpYSBQbGMuIGFuZC9vciBpdHMg
c3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKworI2luY2x1ZGUgIlBsYXRmb3JtV2ViVmlldy5oIgorI2luY2x1ZGUgInFxdWlja3dlYnBh
Z2VfcC5oIgorI2luY2x1ZGUgInFxdWlja3dlYnZpZXdfcC5oIgorCisjaW5jbHVkZSA8V2ViS2l0
Mi9XS1JldGFpblB0ci5oPgorCisjaW5jbHVkZSA8UUNvcmVBcHBsaWNhdGlvbj4KKyNpbmNsdWRl
IDxRRXZlbnRMb29wPgorI2luY2x1ZGUgPFFRbWxQcm9wZXJ0eT4KKyNpbmNsdWRlIDxRdFF1aWNr
L1FRdWlja1ZpZXc+CisjaW5jbHVkZSA8cXBhL3F3aW5kb3dzeXN0ZW1pbnRlcmZhY2UuaD4KKwor
bmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCitleHRlcm4gYm9vbCBzX3VzZURlc2t0b3BCZWhh
dmlvcjsKKworY2xhc3MgV3JhcHBlcldpbmRvdyA6IHB1YmxpYyBRUXVpY2tWaWV3IHsKKyAgICBR
X09CSkVDVAorcHVibGljOgorICAgIFdyYXBwZXJXaW5kb3coUVF1aWNrV2ViVmlldyogdmlldykK
KyAgICAgICAgOiBRUXVpY2tWaWV3KFFVcmwoUVN0cmluZ0xpdGVyYWwoImRhdGE6dGV4dC9wbGFp
bixpbXBvcnQgUXRRdWljayAyLjBcbkl0ZW0geyBvYmplY3ROYW1lOiAncm9vdCcgfSIpKSkKKyAg
ICAgICAgLCBtX3ZpZXcodmlldykKKyAgICB7CisgICAgICAgIGNvbm5lY3QodGhpcywgU0lHTkFM
KHN0YXR1c0NoYW5nZWQoUVF1aWNrVmlldzo6U3RhdHVzKSksIFNMT1QoaGFuZGxlU3RhdHVzQ2hh
bmdlZChRUXVpY2tWaWV3OjpTdGF0dXMpKSk7CisgICAgfQorCitwcml2YXRlIFFfU0xPVFM6Cisg
ICAgdm9pZCBoYW5kbGVTdGF0dXNDaGFuZ2VkKFFRdWlja1ZpZXc6OlN0YXR1cyBzdGF0dXMpCisg
ICAgeworICAgICAgICBpZiAoc3RhdHVzICE9IFFRdWlja1ZpZXc6OlJlYWR5KQorICAgICAgICAg
ICAgcmV0dXJuOworCisgICAgICAgIHNldEdlb21ldHJ5KDAsIDAsIDgwMCwgNjAwKTsKKworICAg
ICAgICBzZXRSZXNpemVNb2RlKFFRdWlja1ZpZXc6OlNpemVSb290T2JqZWN0VG9WaWV3KTsKKyAg
ICAgICAgbV92aWV3LT5zZXRQYXJlbnRJdGVtKHJvb3RPYmplY3QoKSk7CisgICAgICAgIFFRbWxQ
cm9wZXJ0eTo6d3JpdGUobV92aWV3LCBRU3RyaW5nTGl0ZXJhbCgiYW5jaG9ycy5maWxsIiksIHFW
YXJpYW50RnJvbVZhbHVlKHJvb3RPYmplY3QoKSkpOworCisgICAgICAgIG1fdmlldy0+ZXhwZXJp
bWVudGFsKCktPnNldFJlbmRlclRvT2Zmc2NyZWVuQnVmZmVyKHRydWUpOworCisgICAgICAgIGJv
b2wgdXNlRGVza3RvcEJlaGF2aW9yID0gIXFnZXRlbnYoIlFUX1RFU1RfV0VCS0lUQVBJX1VTRV9E
RVNLVE9QX0JFSEFWSU9SIikuaXNFbXB0eSgpOworICAgICAgICBtX3ZpZXctPmV4cGVyaW1lbnRh
bCgpLT5zZXRGbGlja2FibGVWaWV3cG9ydEVuYWJsZWQoIXVzZURlc2t0b3BCZWhhdmlvcik7CisK
KyAgICAgICAgUVdpbmRvd1N5c3RlbUludGVyZmFjZTo6aGFuZGxlV2luZG93QWN0aXZhdGVkKHRo
aXMpOworICAgICAgICBtX3ZpZXctPnBhZ2UoKS0+c2V0Rm9jdXModHJ1ZSk7CisgICAgfQorCitw
cml2YXRlOgorICAgIFFRdWlja1dlYlZpZXcqIG1fdmlldzsKK307CisKK1BsYXRmb3JtV2ViVmll
dzo6UGxhdGZvcm1XZWJWaWV3KFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBXS1BhZ2VHcm91cFJl
ZiBwYWdlR3JvdXBSZWYpCit7CisgICAgbV92aWV3ID0gbmV3IFFRdWlja1dlYlZpZXcoY29udGV4
dFJlZiwgcGFnZUdyb3VwUmVmKTsKKyAgICBtX3ZpZXctPnNldEFsbG93QW55SFRUUFNDZXJ0aWZp
Y2F0ZUZvckxvY2FsSG9zdCh0cnVlKTsKKyAgICBtX3ZpZXctPmNvbXBvbmVudENvbXBsZXRlKCk7
CisKKyAgICBtX3dpbmRvdyA9IG5ldyBXcmFwcGVyV2luZG93KG1fdmlldyk7Cit9CisKK1BsYXRm
b3JtV2ViVmlldzo6flBsYXRmb3JtV2ViVmlldygpCit7CisgICAgZGVsZXRlIG1fd2luZG93Owor
fQorCit2b2lkIFBsYXRmb3JtV2ViVmlldzo6cmVzaXplVG8odW5zaWduZWQgd2lkdGgsIHVuc2ln
bmVkIGhlaWdodCkKK3sKKyAgICAvLyBJZiB3ZSBkbyBub3QgaGF2ZSBhIHBsYXRmb3JtIHdpbmRv
dyB3ZSB3aWxsIG5ldmVyIGdldCB0aGUgbmVjZXNzYXJ5CisgICAgLy8gcmVzaXplIGV2ZW50LCBz
byBzaW11bGF0ZSBpdCBpbiB0aGF0IGNhc2UgdG8gbWFrZSBzdXJlIHRoZSBxdWlja3ZpZXcgaXMK
KyAgICAvLyByZXNpemVkIHRvIHdoYXQgdGhlIGFwaSB0ZXN0cyBleHBlY3RzLgorICAgIGlmICgh
bV93aW5kb3ctPmhhbmRsZSgpKSB7CisgICAgICAgIFFSZWN0IG5ld0dlb21ldHJ5KG1fd2luZG93
LT54KCksIG1fd2luZG93LT55KCksIHdpZHRoLCBoZWlnaHQpOworICAgICAgICBRV2luZG93U3lz
dGVtSW50ZXJmYWNlOjpoYW5kbGVHZW9tZXRyeUNoYW5nZShtX3dpbmRvdywgbmV3R2VvbWV0cnkp
OworICAgICAgICBRV2luZG93U3lzdGVtSW50ZXJmYWNlOjpmbHVzaFdpbmRvd1N5c3RlbUV2ZW50
cygpOworICAgIH0KKworICAgIG1fd2luZG93LT5yZXNpemUod2lkdGgsIGhlaWdodCk7Cit9CisK
K1dLUGFnZVJlZiBQbGF0Zm9ybVdlYlZpZXc6OnBhZ2UoKSBjb25zdAoreworICAgIHJldHVybiBt
X3ZpZXctPnBhZ2VSZWYoKTsKK30KKwordm9pZCBQbGF0Zm9ybVdlYlZpZXc6OmZvY3VzKCkKK3sK
KyAgICBtX3ZpZXctPnNldEZvY3VzKHRydWUpOworfQorCit2b2lkIFBsYXRmb3JtV2ViVmlldzo6
c2ltdWxhdGVTcGFjZWJhcktleVByZXNzKCkKK3sKKyAgICBRS2V5RXZlbnQgZXZlbnQoUUV2ZW50
OjpLZXlQcmVzcywgUXQ6OktleV9TcGFjZSwgUXQ6Ok5vTW9kaWZpZXIpOworICAgIFFDb3JlQXBw
bGljYXRpb246OnNlbmRFdmVudChtX3dpbmRvdywgJmV2ZW50KTsKKyAgICBRS2V5RXZlbnQgZXZl
bnQyKFFFdmVudDo6S2V5UmVsZWFzZSwgUXQ6OktleV9TcGFjZSwgUXQ6Ok5vTW9kaWZpZXIpOwor
ICAgIFFDb3JlQXBwbGljYXRpb246OnNlbmRFdmVudChtX3dpbmRvdywgJmV2ZW50Mik7Cit9CisK
K3ZvaWQgUGxhdGZvcm1XZWJWaWV3OjpzaW11bGF0ZUFsdEtleVByZXNzKCkKK3sKKyAgICBRS2V5
RXZlbnQgZXZlbnQoUUV2ZW50OjpLZXlQcmVzcywgUXQ6OktleV9BbHQsIFF0OjpOb01vZGlmaWVy
KTsKKyAgICBRQ29yZUFwcGxpY2F0aW9uOjpzZW5kRXZlbnQobV93aW5kb3csICZldmVudCk7Cisg
ICAgUUtleUV2ZW50IGV2ZW50MihRRXZlbnQ6OktleVJlbGVhc2UsIFF0OjpLZXlfQWx0LCBRdDo6
Tm9Nb2RpZmllcik7CisgICAgUUNvcmVBcHBsaWNhdGlvbjo6c2VuZEV2ZW50KG1fd2luZG93LCAm
ZXZlbnQyKTsKK30KKwordm9pZCBQbGF0Zm9ybVdlYlZpZXc6OnNpbXVsYXRlTW91c2VNb3ZlKHVu
c2lnbmVkIHgsIHVuc2lnbmVkIHkpCit7CisgICAgUVBvaW50RiBtb3VzZVBvcyh4LCB5KTsKKyAg
ICBRTW91c2VFdmVudCBldmVudChRRXZlbnQ6Ok1vdXNlTW92ZSwgbW91c2VQb3MsIFF0OjpOb0J1
dHRvbiwgUXQ6Ok5vQnV0dG9uLCBRdDo6Tm9Nb2RpZmllcik7CisgICAgUUNvcmVBcHBsaWNhdGlv
bjo6c2VuZEV2ZW50KG1fd2luZG93LCAmZXZlbnQpOworfQorCit2b2lkIFBsYXRmb3JtV2ViVmll
dzo6c2ltdWxhdGVSaWdodENsaWNrKHVuc2lnbmVkIHgsIHVuc2lnbmVkIHkpCit7CisgICAgUVBv
aW50RiBtb3VzZVBvcyh4LCB5KTsKKyAgICBRTW91c2VFdmVudCBldmVudDIoUUV2ZW50OjpNb3Vz
ZUJ1dHRvblByZXNzLCBtb3VzZVBvcywgUXQ6OlJpZ2h0QnV0dG9uLCBRdDo6UmlnaHRCdXR0b24s
IFF0OjpOb01vZGlmaWVyKTsKKyAgICBRQ29yZUFwcGxpY2F0aW9uOjpzZW5kRXZlbnQobV93aW5k
b3csICZldmVudDIpOworICAgIFFNb3VzZUV2ZW50IGV2ZW50MyhRRXZlbnQ6Ok1vdXNlQnV0dG9u
UmVsZWFzZSwgbW91c2VQb3MsICBRdDo6UmlnaHRCdXR0b24sIFF0OjpOb0J1dHRvbiwgUXQ6Ok5v
TW9kaWZpZXIpOworICAgIFFDb3JlQXBwbGljYXRpb246OnNlbmRFdmVudChtX3dpbmRvdywgJmV2
ZW50Myk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKKworI2luY2x1ZGUgIlBs
YXRmb3JtV2ViVmlld1F0Lm1vYyIKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvcXQv
bWFpbi5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL3F0L21haW4uY3BwCmluZGV4IDdlMDM3OGY2
YTI2OWUwOTMxMjBmODViM2QzMWRmOGRjNjNlOWFkN2YuLjM4NWFhODA0NDBjODI3NzRjM2Q3MWJl
MTkxZThhMzViMDliNzgzMDkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvcXQvbWFp
bi5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9xdC9tYWluLmNwcApAQCAtMjMsOSArMjMs
NDkgQEAKIAogI2luY2x1ZGUgPFFHdWlBcHBsaWNhdGlvbj4KIAorbmFtZXNwYWNlIFRlc3RXZWJL
aXRBUEkgeworYm9vbCBzX3VzZURlc2t0b3BCZWhhdmlvciA9IHRydWU7Cit9CisKK3ZvaWQgYWRk
UXRXZWJQcm9jZXNzVG9QYXRoKCkKK3sKKyAgICAvLyBTaW5jZSB0ZXN0cyB3b24ndCBmaW5kIC4v
UXRXZWJQcm9jZXNzLCBhZGQgaXQgdG8gUEFUSCAoYXQgdGhlIGVuZCB0byBwcmV2ZW50IHN1cnBy
aXNlcykuCisgICAgLy8gUk9PVF9CVUlMRF9ESVIgc2hvdWxkIGJlIGRlZmluZWQgYnkgcW1ha2Uu
CisgICAgcXB1dGVudigiUEFUSCIsIHFnZXRlbnYoIlBBVEgiKSArIFFCeXRlQXJyYXkoIjoiIFJP
T1RfQlVJTERfRElSICIvYmluIikpOworfQorCit2b2lkIG1lc3NhZ2VIYW5kbGVyKFF0TXNnVHlw
ZSB0eXBlLCBjb25zdCBRTWVzc2FnZUxvZ0NvbnRleHQmLCBjb25zdCBRU3RyaW5nJiBtZXNzYWdl
KQoreworICAgIGlmICh0eXBlID09IFF0Q3JpdGljYWxNc2cpIHsKKyAgICAgICAgZnByaW50Zihz
dGRlcnIsICIlc1xuIiwgcVByaW50YWJsZShtZXNzYWdlKSk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKKyAgICAvLyBEbyBub3RoaW5nCit9CisKIGludCBtYWluKGludCBhcmdjLCBjaGFyKiog
YXJndikKIHsKKyAgICBib29sIHN1cHByZXNzUXREZWJ1Z091dHB1dCA9IHRydWU7IC8vIFN1cHBy
ZXNzIGRlYnVnIG91dHB1dCBmcm9tIFF0IGlmIG5vdCBzdGFydGVkIHdpdGggLS12ZXJib3NlLgor
ICAgIFRlc3RXZWJLaXRBUEk6OnNfdXNlRGVza3RvcEJlaGF2aW9yID0gdHJ1ZTsgLy8gVXNlIHRy
YWRpdGlvbmFsIGRlc2t0b3AgYmVoYXZpb3IgaWYgbm90IHN0YXJ0ZWQgd2l0aCAtLWZsaWNrYWJs
ZS4KKworICAgIGZvciAoaW50IGkgPSAxOyBpIDwgYXJnYzsgKytpKSB7CisgICAgICAgIGlmICgh
cXN0cmNtcChhcmd2W2ldLCAiLS12ZXJib3NlIikpCisgICAgICAgICAgICBzdXBwcmVzc1F0RGVi
dWdPdXRwdXQgPSBmYWxzZTsKKyAgICAgICAgZWxzZSBpZiAoIXFzdHJjbXAoYXJndltpXSwgIi0t
ZmxpY2thYmxlIikpCisgICAgICAgICAgICBUZXN0V2ViS2l0QVBJOjpzX3VzZURlc2t0b3BCZWhh
dmlvciA9IGZhbHNlOworICAgIH0KKworICAgIC8vIEhhcyB0byBiZSBkb25lIGJlZm9yZSBRQXBw
bGljYXRpb24gaXMgY29uc3RydWN0ZWQgaW4gY2FzZQorICAgIC8vIFFBcHBsaWNhdGlvbiBpdHNl
bGYgcHJvZHVjZXMgZGVidWcgb3V0cHV0LgorICAgIGlmIChzdXBwcmVzc1F0RGVidWdPdXRwdXQp
IHsKKyAgICAgICAgcUluc3RhbGxNZXNzYWdlSGFuZGxlcihtZXNzYWdlSGFuZGxlcik7CisgICAg
ICAgIGlmIChxZ2V0ZW52KCJRVF9XRUJLSVRfU1VQUFJFU1NfV0VCX1BST0NFU1NfT1VUUFVUIiku
aXNFbXB0eSgpKQorICAgICAgICAgICAgcXB1dGVudigiUVRfV0VCS0lUX1NVUFBSRVNTX1dFQl9Q
Uk9DRVNTX09VVFBVVCIsICIxIik7CisgICAgfQorCiAgICAgUUd1aUFwcGxpY2F0aW9uIGFwcChh
cmdjLCBhcmd2KTsKKyAgICBhZGRRdFdlYlByb2Nlc3NUb1BhdGgoKTsKIAogICAgIHJldHVybiBU
ZXN0V2ViS2l0QVBJOjpUZXN0c0NvbnRyb2xsZXI6OnNoYXJlZCgpLnJ1bihhcmdjLCBhcmd2KSA/
IEVYSVRfU1VDQ0VTUyA6IEVYSVRfRkFJTFVSRTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188812</attachid>
            <date>2013-02-18 00:59:06 -0800</date>
            <delta_ts>2013-02-18 03:53:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109843-20130218095445.patch</filename>
            <type>text/plain</type>
            <size>22796</size>
            <attacher name="Allan Sandfeld Jensen">allan.jensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyOTc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNWRhMjFmNDVlNTg2MjRi
NzI4NTZjMjJiN2Y5NWVkN2RjYTNjOTBkOC4uZDZmM2RmYWE0MDVjYTU1NzA2ZDYzZmU5NjQzYTlm
NzU5NGU0NmE3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE1IEBACiAyMDEzLTAyLTE1ICBBbGxh
biBTYW5kZmVsZCBKZW5zZW4gIDxhbGxhbi5qZW5zZW5AZGlnaWEuY29tPgogCisgICAgICAgIFtR
dF1bV0syXSBTdXBwb3J0IFdLMiBBUEkgdGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTg0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3Au
aDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEkpOgorCisyMDEzLTAyLTE1ICBBbGxhbiBTYW5kZmVs
ZCBKZW5zZW4gIDxhbGxhbi5qZW5zZW5AZGlnaWEuY29tPgorCiAgICAgICAgIFNpbXBsaWZ5IGhp
dFRlc3RSZXN1bHRBdFBvaW50IGFuZCBub2Rlc0Zyb21SZWN0IEFQSXMKICAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1NzIwCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcC5oCmluZGV4IDQ1N2RlNjVl
MjUyNDk3YjhkYzY1MjYxOGI2MTRhZWVhZjMwOTkyOTIuLmYxYWQ5NjRlZGI1ZGFiNGYzMmMwYzU5
MzEwY2JkYTc5OGRkMzY0YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvcXQvcXF1aWNrd2Vidmlld19wLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9xdC9xcXVpY2t3ZWJ2aWV3X3AuaApAQCAtNDgsNiArNDgsMTAgQEAgbmFtZXNwYWNlIFdUUiB7
CiBjbGFzcyBQbGF0Zm9ybVdlYlZpZXc7CiB9CiAKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsK
K2NsYXNzIFBsYXRmb3JtV2ViVmlldzsKK30KKwogbmFtZXNwYWNlIFdlYktpdCB7CiBzdHJ1Y3Qg
UXRSZWZDb3VudGVkTmV0d29ya1JlcXVlc3REYXRhOwogY2xhc3MgUGFnZVZpZXdwb3J0Q29udHJv
bGxlckNsaWVudFF0OwpAQCAtMjI0LDYgKzIyOCw3IEBAIHByaXZhdGU6CiAgICAgZnJpZW5kIGNs
YXNzIFdlYktpdDo6UXRXZWJQYWdlUG9saWN5Q2xpZW50OwogICAgIGZyaWVuZCBjbGFzcyBXZWJL
aXQ6OlF0V2ViUGFnZVVJQ2xpZW50OwogICAgIGZyaWVuZCBjbGFzcyBXVFI6OlBsYXRmb3JtV2Vi
VmlldzsKKyAgICBmcmllbmQgY2xhc3MgVGVzdFdlYktpdEFQSTo6UGxhdGZvcm1XZWJWaWV3Owog
ICAgIGZyaWVuZCBjbGFzcyBRUXVpY2tXZWJWaWV3RXhwZXJpbWVudGFsOwogfTsKIApkaWZmIC0t
Z2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDJhNWE0YTFkYmIz
MTk3N2VlZGFmYWJmMGM4ZDgwYTE4OWUyYjhkZDguLjNlMmY2OGU1YzA0MDJjMzg1NmQ1NDExNTFl
OTFkZTJiZjJhNzA5ZjQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSw0MiBAQAorMjAxMy0wMi0xNSAgQWxsYW4gU2FuZGZlbGQgSmVu
c2VuICA8YWxsYW4uamVuc2VuQGRpZ2lhLmNvbT4KKworICAgICAgICBbUXRdW1dLMl0gU3VwcG9y
dCBXSzIgQVBJIHRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMDk4NDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvRGVyaXZlZFNvdXJjZXMucHJpOiBBZGRlZC4KKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL0luamVjdGVkQnVuZGxlLnByaTogQWRkZWQuCisgICAgICAgICog
VGVzdFdlYktpdEFQSS9QbGF0Zm9ybVdlYlZpZXcuaDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RXZWJLaXRBUEkucHJpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQ
SS5wcm86CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS5wcm86IEFkZGVkLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L1dURi5wcm86CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1dlYktpdDIu
cHJvOiBBZGRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL3F0L1BsYXRmb3JtVXRpbGl0aWVz
UXQuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VXRpbDo6c2xlZXApOgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6VXRpbDo6Y3JlYXRlSW5qZWN0ZWRCdW5kbGVQYXRoKToKKyAgICAgICAg
KFRlc3RXZWJLaXRBUEk6OlV0aWw6OmNyZWF0ZVVSTEZvclJlc291cmNlKToKKyAgICAgICAgKFRl
c3RXZWJLaXRBUEk6OlV0aWw6OmlzS2V5RG93bik6CisgICAgICAgIChVdGlsKToKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL3F0L1BsYXRmb3JtV2ViVmlld1F0LmNwcDogQWRkZWQuCisgICAgICAg
IChUZXN0V2ViS2l0QVBJKToKKyAgICAgICAgKFdyYXBwZXJXaW5kb3cpOgorICAgICAgICAoVGVz
dFdlYktpdEFQSTo6V3JhcHBlcldpbmRvdzo6V3JhcHBlcldpbmRvdyk6CisgICAgICAgIChUZXN0
V2ViS2l0QVBJOjpXcmFwcGVyV2luZG93OjpoYW5kbGVTdGF0dXNDaGFuZ2VkKToKKyAgICAgICAg
KFRlc3RXZWJLaXRBUEk6OlBsYXRmb3JtV2ViVmlldzo6UGxhdGZvcm1XZWJWaWV3KToKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OlBsYXRmb3JtV2ViVmlldzo6flBsYXRmb3JtV2ViVmlldyk6Cisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpQbGF0Zm9ybVdlYlZpZXc6OnJlc2l6ZVRvKToKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OlBsYXRmb3JtV2ViVmlldzo6cGFnZSk6CisgICAgICAgIChUZXN0
V2ViS2l0QVBJOjpQbGF0Zm9ybVdlYlZpZXc6OmZvY3VzKToKKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OlBsYXRmb3JtV2ViVmlldzo6c2ltdWxhdGVTcGFjZWJhcktleVByZXNzKToKKyAgICAgICAg
KFRlc3RXZWJLaXRBUEk6OlBsYXRmb3JtV2ViVmlldzo6c2ltdWxhdGVBbHRLZXlQcmVzcyk6Cisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpQbGF0Zm9ybVdlYlZpZXc6OnNpbXVsYXRlTW91c2VNb3Zl
KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlBsYXRmb3JtV2ViVmlldzo6c2ltdWxhdGVSaWdo
dENsaWNrKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL3F0L21haW4uY3BwOgorICAgICAgICAo
YWRkUXRXZWJQcm9jZXNzVG9QYXRoKToKKyAgICAgICAgKG1haW4pOgorCiAyMDEzLTAyLTE1ICBK
b2NoZW4gRWlzaW5nZXIgIDxqb2NoZW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFNwZWN1bGF0
aXZlIGJ1aWxkIGZpeCBmb3IgY2hyb21pdW0td2luLgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9EZXJpdmVkU291cmNlcy5wcmkgYi9Ub29scy9UZXN0V2ViS2l0QVBJL0Rlcml2ZWRT
b3VyY2VzLnByaQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYjM5MWFkNTljMjU3MzljYjRhYjE5NWM3YmEzMWU0Mjg1
NWFiOTQ1Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9EZXJpdmVkU291
cmNlcy5wcmkKQEAgLTAsMCArMSwxMiBAQAorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIERlcml2ZWQgc291cmNl
cyBmb3IgVGVzdFdlYktpdEFQSQorIworIyBTZWUgJ1Rvb2xzL3FtYWtlL1JFQURNRScgZm9yIGFu
IG92ZXJ2aWV3IG9mIHRoZSBidWlsZCBzeXN0ZW0KKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitURU1QTEFURSA9
IGRlcml2ZWQKKworIyBNYWtlIHN1cmUgZm9yd2FyZGVkIGhlYWRlcnMgbmVlZGVkIGJ5IHRoaXMg
cHJvamVjdCBhcmUgcHJlc2VudAorZndoZWFkZXJfZ2VuZXJhdG9yLmNvbW1hbmRzID0gcGVybCAk
JHtST09UX1dFQktJVF9ESVJ9L1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvZ2VuZXJhdGUtZm9yd2Fy
ZGluZy1oZWFkZXJzLnBsICQke1JPT1RfV0VCS0lUX0RJUn0vVG9vbHMvVGVzdFdlYktpdEFQSSAk
JHtST09UX0JVSUxEX0RJUn0vU291cmNlL2luY2x1ZGUgcXQKK2Z3aGVhZGVyX2dlbmVyYXRvci5k
ZXBlbmRzICA9ICQke1JPT1RfV0VCS0lUX0RJUn0vU291cmNlL1dlYktpdDIvU2NyaXB0cy9nZW5l
cmF0ZS1mb3J3YXJkaW5nLWhlYWRlcnMucGwKK0dFTkVSQVRPUlMgKz0gZndoZWFkZXJfZ2VuZXJh
dG9yCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL0luamVjdGVkQnVuZGxlLnByaSBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvSW5qZWN0ZWRCdW5kbGUucHJpCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFjOWU2
Y2U2YjMyYzc0Yzg2NzhkMDU4NWQ3YjhkYzcyYTAxNjY0ZDIKLS0tIC9kZXYvbnVsbAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL0luamVjdGVkQnVuZGxlLnByaQpAQCAtMCwwICsxLDU2IEBACisj
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KKyMgUHJvamVjdCBmaWxlIGZvciBUZXN0V2ViS2l0QVBJJ3MgSW5qZWN0ZWRC
dW5kbGUKKyMKKyMgU2VlICdUb29scy9xbWFrZS9SRUFETUUnIGZvciBhbiBvdmVydmlldyBvZiB0
aGUgYnVpbGQgc3lzdGVtCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworVEVNUExBVEUgPSBsaWIKK1RBUkdFVCA9
IFRlc3RXZWJLaXRBUElJbmplY3RlZEJ1bmRsZQorCitJTkNMVURFUEFUSCArPSAkJFBXRAorSU5D
TFVERVBBVEggKz0gJCR7Uk9PVF9XRUJLSVRfRElSfS9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVzdC9p
bmNsdWRlCisKK1NPVVJDRVMgKz0gXAorICAgICQkUFdEL0luamVjdGVkQnVuZGxlQ29udHJvbGxl
ci5jcHAgXAorICAgICQkUFdEL0luamVjdGVkQnVuZGxlQ29udHJvbGxlci5oIFwKKyAgICAkJFBX
RC9JbmplY3RlZEJ1bmRsZU1haW4uY3BwIFwKKyAgICAkJFBXRC9JbmplY3RlZEJ1bmRsZVRlc3Qu
aCBcCisgICAgJCRQV0QvUGxhdGZvcm1VdGlsaXRpZXMuY3BwIFwKKyAgICAkJFBXRC9QbGF0Zm9y
bVV0aWxpdGllcy5oIFwKKyAgICAkJFBXRC9xdC9JbmplY3RlZEJ1bmRsZUNvbnRyb2xsZXJRdC5j
cHAgXAorICAgICQkUFdEL3F0L1BsYXRmb3JtVXRpbGl0aWVzUXQuY3BwIFwKKyAgICAkJFBXRC9U
ZXN0cy9XZWJLaXQyL0NhbkhhbmRsZVJlcXVlc3RfQnVuZGxlLmNwcCBcCisgICAgJCRQV0QvVGVz
dHMvV2ViS2l0Mi9Eb2N1bWVudFN0YXJ0VXNlclNjcmlwdEFsZXJ0Q3Jhc2hfQnVuZGxlLmNwcCBc
CisgICAgJCRQV0QvVGVzdHMvV2ViS2l0Mi9ET01XaW5kb3dFeHRlbnNpb25CYXNpY19CdW5kbGUu
Y3BwIFwKKyAgICAkJFBXRC9UZXN0cy9XZWJLaXQyL0RPTVdpbmRvd0V4dGVuc2lvbk5vQ2FjaGVf
QnVuZGxlLmNwcCBcCisgICAgJCRQV0QvVGVzdHMvV2ViS2l0Mi9HZXRJbmplY3RlZEJ1bmRsZUlu
aXRpYWxpemF0aW9uVXNlckRhdGFDYWxsYmFja19CdW5kbGUuY3BwIFwKKyAgICAkJFBXRC9UZXN0
cy9XZWJLaXQyL0hpdFRlc3RSZXN1bHROb2RlSGFuZGxlX0J1bmRsZS5jcHAgXAorICAgICQkUFdE
L1Rlc3RzL1dlYktpdDIvSW5qZWN0ZWRCdW5kbGVCYXNpY19CdW5kbGUuY3BwIFwKKyAgICAkJFBX
RC9UZXN0cy9XZWJLaXQyL0luamVjdGVkQnVuZGxlRnJhbWVIaXRUZXN0X0J1bmRsZS5jcHAgXAor
ICAgICQkUFdEL1Rlc3RzL1dlYktpdDIvSW5qZWN0ZWRCdW5kbGVJbml0aWFsaXphdGlvblVzZXJE
YXRhQ2FsbGJhY2tXaW5zX0J1bmRsZS5jcHAgXAorICAgICQkUFdEL1Rlc3RzL1dlYktpdDIvTG9h
ZENhbmNlbGVkTm9TZXJ2ZXJSZWRpcmVjdENhbGxiYWNrX0J1bmRsZS5jcHAgXAorICAgICQkUFdE
L1Rlc3RzL1dlYktpdDIvTW91c2VNb3ZlQWZ0ZXJDcmFzaF9CdW5kbGUuY3BwIFwKKyAgICAkJFBX
RC9UZXN0cy9XZWJLaXQyL05ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dF9CdW5kbGUuY3Bw
IFwKKyAgICAkJFBXRC9UZXN0cy9XZWJLaXQyL05ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91
dEZhaWxzX0J1bmRsZS5jcHAgXAorICAgICQkUFdEL1Rlc3RzL1dlYktpdDIvTmV3Rmlyc3RWaXN1
YWxseU5vbkVtcHR5TGF5b3V0Rm9ySW1hZ2VzX0J1bmRsZS5jcHAgXAorICAgICQkUFdEL1Rlc3Rz
L1dlYktpdDIvTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0RnJhbWVzX0J1bmRsZS5jcHAg
XAorICAgICQkUFdEL1Rlc3RzL1dlYktpdDIvUGFyZW50RnJhbWVfQnVuZGxlLmNwcCBcCisgICAg
JCRQV0QvVGVzdHMvV2ViS2l0Mi9SZXNwb25zaXZlbmVzc1RpbWVyRG9lc250RmlyZUVhcmx5X0J1
bmRsZS5jcHAgXAorICAgICQkUFdEL1Rlc3RzL1dlYktpdDIvU2hvdWxkR29Ub0JhY2tGb3J3YXJk
TGlzdEl0ZW1fQnVuZGxlLmNwcCBcCisgICAgJCRQV0QvVGVzdHMvV2ViS2l0Mi9Vc2VyTWVzc2Fn
ZV9CdW5kbGUuY3BwIFwKKyAgICAkJFBXRC9UZXN0cy9XZWJLaXQyL1dpbGxTZW5kU3VibWl0RXZl
bnRfQnVuZGxlLmNwcCBcCisgICAgJCRQV0QvVGVzdHMvV2ViS2l0Mi9XS0Nvbm5lY3Rpb25fQnVu
ZGxlLmNwcAorCisKK0RFU1RESVIgPSAkJHtST09UX0JVSUxEX0RJUn0vbGliCisKK1FUICs9IGNv
cmUgd2Via2l0CisKK1dFQktJVCArPSB3dGYgamF2YXNjcmlwdGNvcmUgd2ViY29yZSB3ZWJraXQy
CisKK0NPTkZJRyArPSBwbHVnaW4gcnBhdGggY29tcGlsaW5nX3RoaXJkcGFydHlfY29kZQorCitM
SUJTICs9IC1MJCR7Uk9PVF9CVUlMRF9ESVJ9L1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0LyQkYWN0
aXZlQnVpbGRDb25maWcoKSAtbGd0ZXN0CisKK0RFRklORVMgKz0gQVBJVEVTVF9TT1VSQ0VfRElS
PVxcXCIkJFBXRFxcXCIgXAorICAgICAgICAgICBST09UX0JVSUxEX0RJUj1cXFwiJCR7Uk9PVF9C
VUlMRF9ESVJ9XFxcIgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9ybVdl
YlZpZXcuaCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1XZWJWaWV3LmgKaW5kZXggZGNh
ZjQ0ODQyZDZlZmU3OTRmYTRiN2MxYTI4N2MwZDFhODU0MzIzYi4uYjU2YzA5NmU1ODE5MzI5NDAx
MjBmNGJlN2U4NDQ1YWNjOTI1ODQ4ZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9Q
bGF0Zm9ybVdlYlZpZXcuaAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3JtV2ViVmll
dy5oCkBAIC01MCw2ICs1MCwxMyBAQCB0eXBlZGVmIEd0a1dpZGdldCAqUGxhdGZvcm1XaW5kb3c7
CiB0eXBlZGVmIHN0cnVjdCBfRWNvcmVfRXZhcyBFY29yZV9FdmFzOwogdHlwZWRlZiBXS1ZpZXdS
ZWYgUGxhdGZvcm1XS1ZpZXc7CiB0eXBlZGVmIEVjb3JlX0V2YXMqIFBsYXRmb3JtV2luZG93Owor
I2VsaWYgUExBVEZPUk0oUVQpCitRVF9CRUdJTl9OQU1FU1BBQ0UKK2NsYXNzIFFRdWlja1ZpZXc7
CitRVF9FTkRfTkFNRVNQQUNFCitjbGFzcyBRUXVpY2tXZWJWaWV3OwordHlwZWRlZiBRUXVpY2tX
ZWJWaWV3KiBQbGF0Zm9ybVdLVmlldzsKK3R5cGVkZWYgUVF1aWNrVmlldyogUGxhdGZvcm1XaW5k
b3c7CiAjZW5kaWYKIAogbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnByaSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS5wcmkKaW5kZXggZDNmNzE3ZTMxYjE1MTAzYTk4OTEyOGU3Mzc2YmI4ZDk3
MmMzODk2MS4uOTRkZTllNGIyNjhlYzQ2MTExNGI5ZTliYmQ3ZDdkYjRjYWIwM2FlNyAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnByaQorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkucHJpCkBAIC0xLDE0ICsxLDIyIEBACiAKIElOQ0xV
REVQQVRIICs9ICQkUFdEICQke1JPT1RfV0VCS0lUX0RJUn0vU291cmNlL1RoaXJkUGFydHkvZ3Rl
c3QvaW5jbHVkZQotV0VCS0lUICs9IHd0ZiBqYXZhc2NyaXB0Y29yZQorV0VCS0lUICs9IHd0ZiBq
YXZhc2NyaXB0Y29yZSB3ZWJraXQyCiAKIERFRklORVMgKz0gUVRfTk9fQ0FTVF9GUk9NX0FTQ0lJ
CiAKLVFUICs9IGNvcmUgZ3VpIHdlYmtpdAorUVQgKz0gY29yZSBjb3JlLXByaXZhdGUgZ3VpIGd1
aS1wcml2YXRlIHdlYmtpdCBxdWljayBxdWljay1wcml2YXRlCiAKIENPTkZJRyArPSBjb21waWxp
bmdfdGhpcmRwYXJ0eV9jb2RlCiAKLVNPVVJDRVMgKz0gJCRQV0QvKi5jcHAKLVNPVVJDRVMgKz0g
JCRQV0QvcXQvKi5jcHAKK1NPVVJDRVMgKz0gXAorICAgICQkUFdEL0phdmFTY3JpcHRUZXN0LmNw
cCBcCisgICAgJCRQV0QvUGxhdGZvcm1VdGlsaXRpZXMuY3BwIFwKKyAgICAkJFBXRC9UZXN0c0Nv
bnRyb2xsZXIuY3BwIFwKKyAgICAkJFBXRC9xdC9tYWluLmNwcCBcCisgICAgJCRQV0QvcXQvUGxh
dGZvcm1VdGlsaXRpZXNRdC5jcHAgXAorICAgICQkUFdEL3F0L1BsYXRmb3JtV2ViVmlld1F0LmNw
cAogCiBMSUJTICs9IC1MJCR7Uk9PVF9CVUlMRF9ESVJ9L1NvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0
LyQkYWN0aXZlQnVpbGRDb25maWcoKSAtbGd0ZXN0CisKK0RFRklORVMgKz0gUk9PVF9CVUlMRF9E
SVI9XFxcIiQke1JPT1RfQlVJTERfRElSfVxcXCIKKwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0V2ViS2l0QVBJLnBybyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktp
dEFQSS5wcm8KaW5kZXggZjA2M2JjMDIxNTdjZmZjMmNiM2Q0ODRiMWM0MGFkMTJiNWI1OGIwMS4u
YjlkMGNkNWI2MDJmNTExNWZjZWRmMWU5MzdhNzkwZDNjMzk5NmE2YSAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnBybworKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RXZWJLaXRBUEkucHJvCkBAIC0xLDMgKzEsMTEgQEAKIFRFTVBMQVRFID0gc3ViZGly
cworQ09ORklHICs9IG9yZGVyZWQKIAotU1VCRElSUyArPSBUZXN0cy9XVEYKK2Rlcml2ZWRfc291
cmNlcy5maWxlID0gRGVyaXZlZFNvdXJjZXMucHJpCitpbmplY3RlZF9idW5kbGUuZmlsZSA9IElu
amVjdGVkQnVuZGxlLnByaQordGVzdHMuZmlsZSA9IFRlc3RzLnByaQorCitTVUJESVJTICs9IGRl
cml2ZWRfc291cmNlcyBpbmplY3RlZF9idW5kbGUgdGVzdHMKKworYWRkU3RyaWN0U3ViZGlyT3Jk
ZXJCZXR3ZWVuKGRlcml2ZWRfc291cmNlcywgaW5qZWN0ZWRfYnVuZGxlKQorYWRkU3RyaWN0U3Vi
ZGlyT3JkZXJCZXR3ZWVuKGRlcml2ZWRfc291cmNlcywgdGVzdHMpCmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzLnByaSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMucHJp
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjE1ZTgxYzA5NGQyZDI3OTEzNDk2NGZhYjUzMmZjNmU3YzNjYzRmNWYKLS0t
IC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzLnByaQpAQCAtMCwwICsx
LDMgQEAKK1RFTVBMQVRFID0gc3ViZGlycworCitTVUJESVJTICs9IFRlc3RzL1dURiBUZXN0cy9K
YXZhU2NyaXB0Q29yZSBUZXN0cy9XZWJLaXQyCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnBybyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUucHJvCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjlkNDRmYWQwZTc3N2UyZGQyODhmYjJlZGQxMTBlZGY4YTgxYTc1YWMKLS0tIC9kZXYvbnVs
bAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnBybwpAQCAtMCwwICsxLDggQEAKK1RFTVBMQVRFID0gYXBwCitUQVJHRVQgPSB0c3Rf
anNjCisKK1NPVVJDRVMgKz0gKi5jcHAKKworaW5jbHVkZSguLi8uLi9UZXN0V2ViS2l0QVBJLnBy
aSkKKworREVGSU5FUyArPSBBUElURVNUX1NPVVJDRV9ESVI9XFxcIiQkUFdEXFxcIgpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV1RGLnBybyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL1dURi5wcm8KaW5kZXggZDNlM2IwZGYxMmJjMDU4MzljMTYyMThk
YjA0N2EwYTE4YjFlNmY1YS4uNzA1YjdiYmYzNTkwNWVkMTBjZjE5ZjNkMWFlOTZlNTJmODhjM2I3
MSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV1RGLnBybworKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9XVEYucHJvCkBAIC0xOCw5ICsxOCwxMiBA
QCBTT1VSQ0VTICs9IFwKICAgICBTdHJpbmdJbXBsLmNwcCBcCiAgICAgU3RyaW5nT3BlcmF0b3Jz
LmNwcCBcCiAgICAgVGVtcG9yYXJ5Q2hhbmdlLmNwcCBcCi0gICAgVmVjdG9yQmFzaWMuY3BwIFwK
ICAgICBWZWN0b3IuY3BwIFwKKyAgICBWZWN0b3JCYXNpYy5jcHAgXAogICAgIFZlY3RvclJldmVy
c2UuY3BwIFwKICAgICBXVEZTdHJpbmcuY3BwCiAKIGluY2x1ZGUoLi4vLi4vVGVzdFdlYktpdEFQ
SS5wcmkpCisKK0RFRklORVMgKz0gQVBJVEVTVF9TT1VSQ0VfRElSPVxcXCIkJFBXRFxcXCIKKwpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1dlYktpdDIucHJv
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1dlYktpdDIucHJvCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmQwNDE0NGY4YjgyNDZjNDRiZjI1YWFkMmQ0NGRlNDlkNTcyNTdlNjYKLS0tIC9kZXYvbnVs
bAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvV2ViS2l0Mi5wcm8KQEAg
LTAsMCArMSw2MSBAQAorVEVNUExBVEUgPSBhcHAKK1RBUkdFVCA9IHRzdF93ZWJraXQyCisKK1NP
VVJDRVMgKz0gXAorICAgIEFib3V0QmxhbmtMb2FkLmNwcCBcCisgICAgRG9jdW1lbnRTdGFydFVz
ZXJTY3JpcHRBbGVydENyYXNoLmNwcCBcCisgICAgRE9NV2luZG93RXh0ZW5zaW9uQmFzaWMuY3Bw
IFwKKyAgICBET01XaW5kb3dFeHRlbnNpb25Ob0NhY2hlLmNwcCBcCisgICAgRG9jdW1lbnRTdGFy
dFVzZXJTY3JpcHRBbGVydENyYXNoLmNwcCBcCisgICAgRXZhbHVhdGVKYXZhU2NyaXB0LmNwcCBc
CisgICAgRmFpbGVkTG9hZC5jcHAgXAorICAgIEZpbmQuY3BwIFwKKyAgICBGcmFtZU1JTUVUeXBl
SFRNTC5jcHAgXAorICAgIEZyYW1lTUlNRVR5cGVQTkcuY3BwIFwKKyAgICBHZXRJbmplY3RlZEJ1
bmRsZUluaXRpYWxpemF0aW9uVXNlckRhdGFDYWxsYmFjay5jcHAgXAorICAgIEhpdFRlc3RSZXN1
bHROb2RlSGFuZGxlLmNwcCBcCisgICAgSW5qZWN0ZWRCdW5kbGVCYXNpYy5jcHAgXAorICAgIElu
amVjdGVkQnVuZGxlRnJhbWVIaXRUZXN0LmNwcCBcCisgICAgSW5qZWN0ZWRCdW5kbGVJbml0aWFs
aXphdGlvblVzZXJEYXRhQ2FsbGJhY2tXaW5zLmNwcCBcCisgICAgTG9hZEFsdGVybmF0ZUhUTUxT
dHJpbmdXaXRoTm9uRGlyZWN0b3J5VVJMLmNwcCBcCisgICAgTG9hZENhbmNlbGVkTm9TZXJ2ZXJS
ZWRpcmVjdENhbGxiYWNrLmNwcCBcCisgICAgTW91c2VNb3ZlQWZ0ZXJDcmFzaC5jcHAgXAorICAg
IFJlbG9hZFBhZ2VBZnRlckNyYXNoLmNwcCBcCisgICAgUGFnZUxvYWRCYXNpYy5jcHAgXAorICAg
IFBhZ2VMb2FkRGlkQ2hhbmdlTG9jYXRpb25XaXRoaW5QYWdlRm9yRnJhbWUuY3BwIFwKKyAgICBQ
YWdlVmlzaWJpbGl0eVN0YXRlLmNwcCBcCisgICAgUGFyZW50RnJhbWUuY3BwIFwKKyAgICBQcmV2
ZW50RW1wdHlVc2VyQWdlbnQuY3BwIFwKKyAgICBQcml2YXRlQnJvd3NpbmdQdXNoU3RhdGVOb0hp
c3RvcnlDYWxsYmFjay5jcHAgXAorICAgIFJlbG9hZFBhZ2VBZnRlckNyYXNoLmNwcCBcCisgICAg
UmVzcG9uc2l2ZW5lc3NUaW1lckRvZXNudEZpcmVFYXJseS5jcHAgXAorICAgIFVzZXJNZXNzYWdl
LmNwcCBcCisgICAgV2lsbFNlbmRTdWJtaXRFdmVudC5jcHAgXAorICAgIFdLQ29ubmVjdGlvbi5j
cHAgXAorICAgIFdLU3RyaW5nLmNwcCBcCisgICAgV0tTdHJpbmdKU1N0cmluZy5jcHAgXAorICAg
IFdLVVJMLmNwcAorCitGQUlMSU5HX1NPVVJDRVMgPSBcCisgICAgQ2FuSGFuZGxlUmVxdWVzdC5j
cHAgXAorCitGQUlMSU5HX1NPVVJDRVMgKz0gU2hvdWxkR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW0u
Y3BwICMgT25seSBzdGFsbHMgaW4gZmxpY2thYmxlIG1vZGUuCitGQUlMSU5HX1NPVVJDRVMgKz0g
U3BhY2ViYXJTY3JvbGxpbmcuY3BwICMgT25seSBmYWlscyBpbiBmbGlja2FibGUgbW9kZS4KKwor
U09VUkNFUyArPSAkJEZBSUxJTkdfU09VUkNFUworCisjIFRlc3RzIHNraXBwZWQgYmVjYXVzZSB0
aGV5IGNyYXNoLCBzdGFsbCBvciBkbyBub3QgY29tcGlsZS4KK1NLSVBQRURfU09VUkNFUyA9IFwK
KyAgICBDb29raWVNYW5hZ2VyLmNwcCBcCisgICAgRG93bmxvYWREZWNpZGVEZXN0aW5hdGlvbkNy
YXNoLmNwcCBcCisgICAgRm9yY2VSZXBhaW50LmNwcCBcCisgICAgTmV3Rmlyc3RWaXN1YWxseU5v
bkVtcHR5TGF5b3V0LmNwcCBcCisgICAgTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0RmFp
bHMuY3BwIFwKKyAgICBOZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JJbWFnZXMuY3Bw
IFwKKyAgICBOZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGcmFtZXMuY3BwIFwKKyAgICBS
ZXN0b3JlU2Vzc2lvblN0YXRlQ29udGFpbmluZ0Zvcm1EYXRhLmNwcCBcCisgICAgV2ViQ29yZVN0
YXRpc3RpY3NXaXRoTm9XZWJQcm9jZXNzLmNwcAorCitpbmNsdWRlKC4uLy4uL1Rlc3RXZWJLaXRB
UEkucHJpKQorCitERUZJTkVTICs9IEFQSVRFU1RfU09VUkNFX0RJUj1cXFwiJCRQV0RcXFwiCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL3F0L1BsYXRmb3JtVXRpbGl0aWVzUXQuY3Bw
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9xdC9QbGF0Zm9ybVV0aWxpdGllc1F0LmNwcAppbmRleCA3
Yzc1YWQxYjhiYWMwZmQ2N2I1MWFhNmU0NDI1YTJkYWZmZGRkZjI1Li40NTE2YTAwZTc5NzUwODNh
OTBjOWE4YTAwODhkZGNjZTk0NGNlZWNiIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L3F0L1BsYXRmb3JtVXRpbGl0aWVzUXQuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvcXQv
UGxhdGZvcm1VdGlsaXRpZXNRdC5jcHAKQEAgLTIxLDkgKzIxLDE0IEBACiAjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKIAotI2luY2x1ZGUgPFFDb3Jl
QXBwbGljYXRpb24+CisjaW5jbHVkZSA8V2ViS2l0Mi9XS1N0cmluZ1F0Lmg+CisjaW5jbHVkZSA8
V2ViS2l0Mi9XS05hdGl2ZUV2ZW50Lmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9XS1VSTFF0Lmg+CiAK
LSNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDxRQ29yZUFwcGxpY2F0aW9uPgorI2luY2x1
ZGUgPFFEaXI+CisjaW5jbHVkZSA8UVVybD4KKyNpbmNsdWRlIDxRVGhyZWFkPgogCiBuYW1lc3Bh
Y2UgVGVzdFdlYktpdEFQSSB7CiBuYW1lc3BhY2UgVXRpbCB7CkBAIC0zNiwxOSArNDEsMjYgQEAg
dm9pZCBydW4oYm9vbCogZG9uZSkKIAogdm9pZCBzbGVlcChkb3VibGUgc2Vjb25kcykKIHsKLSAg
ICB1c2xlZXAoc2Vjb25kcyAqIDEwMDAwMDApOworICAgIFFUaHJlYWQ6OnNsZWVwKHNlY29uZHMp
OwogfQogCiBXS1N0cmluZ1JlZiBjcmVhdGVJbmplY3RlZEJ1bmRsZVBhdGgoKQogewotICAgIC8v
ICMjIyBGSVhNRS4KLSAgICByZXR1cm4gV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIiIp
OworICAgIFFTdHJpbmcgcGF0aCA9IFFTdHJpbmc6OmZyb21Mb2NhbDhCaXQocWdldGVudigiVEVT
VF9XRUJLSVRfQVBJX0lOSkVDVEVEX0JVTkRMRV9QQVRIIikpOworICAgIGlmIChwYXRoLmlzRW1w
dHkoKSkKKyAgICAgICAgcGF0aCA9IFFGaWxlSW5mbyhRU3RyaW5nTGl0ZXJhbChST09UX0JVSUxE
X0RJUiAiL2xpYi9saWJUZXN0V2ViS2l0QVBJSW5qZWN0ZWRCdW5kbGUiKSkuYWJzb2x1dGVGaWxl
UGF0aCgpOworCisgICAgcmV0dXJuIFdLU3RyaW5nQ3JlYXRlV2l0aFFTdHJpbmcocGF0aCk7CiB9
CiAKIFdLVVJMUmVmIGNyZWF0ZVVSTEZvclJlc291cmNlKGNvbnN0IGNoYXIqIHJlc291cmNlLCBj
b25zdCBjaGFyKiBleHRlbnNpb24pCiB7Ci0gICAgLy8gIyMjIEZJWE1FLgotICAgIHJldHVybiBX
S1VSTENyZWF0ZVdpdGhVVEY4Q1N0cmluZygiIik7CisgICAgUVN0cmluZyBwYXRoID0gUVN0cmlu
Zzo6ZnJvbUxvY2FsOEJpdChxZ2V0ZW52KCJURVNUX1dFQktJVF9BUElfUkVTT1VSQ0VTX1BBVEgi
KSk7CisgICAgaWYgKHBhdGguaXNFbXB0eSgpKQorICAgICAgICBwYXRoID0gUVN0cmluZ0xpdGVy
YWwoQVBJVEVTVF9TT1VSQ0VfRElSKTsKKyAgICBRU3RyaW5nIGZpbGVuYW1lID0gUVN0cmluZzo6
ZnJvbUxvY2FsOEJpdChyZXNvdXJjZSkgKyBRU3RyaW5nTGl0ZXJhbCgiLiIpICsgUVN0cmluZzo6
ZnJvbUxvY2FsOEJpdChleHRlbnNpb24pOworCisgICAgcmV0dXJuIFdLVVJMQ3JlYXRlV2l0aFFV
cmwoUVVybDo6ZnJvbUxvY2FsRmlsZShRRGlyKHBhdGgpLmFic29sdXRlRmlsZVBhdGgoZmlsZW5h
bWUpKSk7CiB9CiAKIFdLVVJMUmVmIFVSTEZvck5vbkV4aXN0ZW50UmVzb3VyY2UoKQpAQCAtNTYs
NSArNjgsMTAgQEAgV0tVUkxSZWYgVVJMRm9yTm9uRXhpc3RlbnRSZXNvdXJjZSgpCiAgICAgcmV0
dXJuIFdLVVJMQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJmaWxlOi8vL2RvZXMtbm90LWV4aXN0Lmh0
bWwiKTsKIH0KIAorYm9vbCBpc0tleURvd24oV0tOYXRpdmVFdmVudFB0ciBldmVudCkKK3sKKyAg
ICByZXR1cm4gZXZlbnQtPnR5cGUoKSA9PSBRRXZlbnQ6OktleVByZXNzOworfQorCiB9IC8vIG5h
bWVzcGFjZSBVdGlsCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL3F0L1BsYXRmb3JtV2ViVmlld1F0LmNwcCBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvcXQvUGxhdGZvcm1XZWJWaWV3UXQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk5NDlhZGVmNjky
NThlMTM4ZmVjNTljYTk1NDczNjA0ODM2NTM4ZjIKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL3F0L1BsYXRmb3JtV2ViVmlld1F0LmNwcApAQCAtMCwwICsxLDE0OCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgVW5pdmVyc2l0eSBvZiBTemVnZWQuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgRGlnaWEgUGxjLiBhbmQvb3IgaXRzIHN1
YnNpZGlhcnkoLWllcykuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
KyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisKKyNpbmNsdWRlICJQbGF0Zm9ybVdlYlZpZXcuaCIKKyNpbmNsdWRlICJxcXVpY2t3ZWJwYWdl
X3AuaCIKKyNpbmNsdWRlICJxcXVpY2t3ZWJ2aWV3X3AuaCIKKworI2luY2x1ZGUgPFdlYktpdDIv
V0tSZXRhaW5QdHIuaD4KKworI2luY2x1ZGUgPFFDb3JlQXBwbGljYXRpb24+CisjaW5jbHVkZSA8
UUV2ZW50TG9vcD4KKyNpbmNsdWRlIDxRUW1sUHJvcGVydHk+CisjaW5jbHVkZSA8UXRRdWljay9R
UXVpY2tWaWV3PgorI2luY2x1ZGUgPHFwYS9xd2luZG93c3lzdGVtaW50ZXJmYWNlLmg+CisKK25h
bWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKworY2xhc3MgV3JhcHBlcldpbmRvdyA6IHB1YmxpYyBR
UXVpY2tWaWV3IHsKKyAgICBRX09CSkVDVAorcHVibGljOgorICAgIFdyYXBwZXJXaW5kb3coUVF1
aWNrV2ViVmlldyogdmlldykKKyAgICAgICAgOiBRUXVpY2tWaWV3KFFVcmwoUVN0cmluZ0xpdGVy
YWwoImRhdGE6dGV4dC9wbGFpbixpbXBvcnQgUXRRdWljayAyLjBcbkl0ZW0geyBvYmplY3ROYW1l
OiAncm9vdCcgfSIpKSkKKyAgICAgICAgLCBtX3ZpZXcodmlldykKKyAgICB7CisgICAgICAgIGNv
bm5lY3QodGhpcywgU0lHTkFMKHN0YXR1c0NoYW5nZWQoUVF1aWNrVmlldzo6U3RhdHVzKSksIFNM
T1QoaGFuZGxlU3RhdHVzQ2hhbmdlZChRUXVpY2tWaWV3OjpTdGF0dXMpKSk7CisgICAgfQorCitw
cml2YXRlIFFfU0xPVFM6CisgICAgdm9pZCBoYW5kbGVTdGF0dXNDaGFuZ2VkKFFRdWlja1ZpZXc6
OlN0YXR1cyBzdGF0dXMpCisgICAgeworICAgICAgICBpZiAoc3RhdHVzICE9IFFRdWlja1ZpZXc6
OlJlYWR5KQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHNldEdlb21ldHJ5KDAsIDAs
IDgwMCwgNjAwKTsKKworICAgICAgICBzZXRSZXNpemVNb2RlKFFRdWlja1ZpZXc6OlNpemVSb290
T2JqZWN0VG9WaWV3KTsKKyAgICAgICAgbV92aWV3LT5zZXRQYXJlbnRJdGVtKHJvb3RPYmplY3Qo
KSk7CisgICAgICAgIFFRbWxQcm9wZXJ0eTo6d3JpdGUobV92aWV3LCBRU3RyaW5nTGl0ZXJhbCgi
YW5jaG9ycy5maWxsIiksIHFWYXJpYW50RnJvbVZhbHVlKHJvb3RPYmplY3QoKSkpOworCisgICAg
ICAgIG1fdmlldy0+ZXhwZXJpbWVudGFsKCktPnNldFJlbmRlclRvT2Zmc2NyZWVuQnVmZmVyKHRy
dWUpOworCisgICAgICAgIFFXaW5kb3dTeXN0ZW1JbnRlcmZhY2U6OmhhbmRsZVdpbmRvd0FjdGl2
YXRlZCh0aGlzKTsKKyAgICAgICAgbV92aWV3LT5wYWdlKCktPnNldEZvY3VzKHRydWUpOworICAg
IH0KKworcHJpdmF0ZToKKyAgICBRUXVpY2tXZWJWaWV3KiBtX3ZpZXc7Cit9OworCitQbGF0Zm9y
bVdlYlZpZXc6OlBsYXRmb3JtV2ViVmlldyhXS0NvbnRleHRSZWYgY29udGV4dFJlZiwgV0tQYWdl
R3JvdXBSZWYgcGFnZUdyb3VwUmVmKQoreworICAgIG1fdmlldyA9IG5ldyBRUXVpY2tXZWJWaWV3
KGNvbnRleHRSZWYsIHBhZ2VHcm91cFJlZik7CisgICAgbV92aWV3LT5zZXRBbGxvd0FueUhUVFBT
Q2VydGlmaWNhdGVGb3JMb2NhbEhvc3QodHJ1ZSk7CisgICAgbV92aWV3LT5jb21wb25lbnRDb21w
bGV0ZSgpOworCisgICAgbV93aW5kb3cgPSBuZXcgV3JhcHBlcldpbmRvdyhtX3ZpZXcpOworfQor
CitQbGF0Zm9ybVdlYlZpZXc6On5QbGF0Zm9ybVdlYlZpZXcoKQoreworICAgIGRlbGV0ZSBtX3dp
bmRvdzsKK30KKwordm9pZCBQbGF0Zm9ybVdlYlZpZXc6OnJlc2l6ZVRvKHVuc2lnbmVkIHdpZHRo
LCB1bnNpZ25lZCBoZWlnaHQpCit7CisgICAgLy8gSWYgd2UgZG8gbm90IGhhdmUgYSBwbGF0Zm9y
bSB3aW5kb3cgd2Ugd2lsbCBuZXZlciBnZXQgdGhlIG5lY2Vzc2FyeQorICAgIC8vIHJlc2l6ZSBl
dmVudCwgc28gc2ltdWxhdGUgaXQgaW4gdGhhdCBjYXNlIHRvIG1ha2Ugc3VyZSB0aGUgcXVpY2t2
aWV3IGlzCisgICAgLy8gcmVzaXplZCB0byB3aGF0IHRoZSBhcGkgdGVzdHMgZXhwZWN0cy4KKyAg
ICBpZiAoIW1fd2luZG93LT5oYW5kbGUoKSkgeworICAgICAgICBRUmVjdCBuZXdHZW9tZXRyeSht
X3dpbmRvdy0+eCgpLCBtX3dpbmRvdy0+eSgpLCB3aWR0aCwgaGVpZ2h0KTsKKyAgICAgICAgUVdp
bmRvd1N5c3RlbUludGVyZmFjZTo6aGFuZGxlR2VvbWV0cnlDaGFuZ2UobV93aW5kb3csIG5ld0dl
b21ldHJ5KTsKKyAgICAgICAgUVdpbmRvd1N5c3RlbUludGVyZmFjZTo6Zmx1c2hXaW5kb3dTeXN0
ZW1FdmVudHMoKTsKKyAgICB9CisKKyAgICBtX3dpbmRvdy0+cmVzaXplKHdpZHRoLCBoZWlnaHQp
OworfQorCitXS1BhZ2VSZWYgUGxhdGZvcm1XZWJWaWV3OjpwYWdlKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbV92aWV3LT5wYWdlUmVmKCk7Cit9CisKK3ZvaWQgUGxhdGZvcm1XZWJWaWV3Ojpmb2N1
cygpCit7CisgICAgbV92aWV3LT5zZXRGb2N1cyh0cnVlKTsKK30KKwordm9pZCBQbGF0Zm9ybVdl
YlZpZXc6OnNpbXVsYXRlU3BhY2ViYXJLZXlQcmVzcygpCit7CisgICAgUUtleUV2ZW50IGV2ZW50
KFFFdmVudDo6S2V5UHJlc3MsIFF0OjpLZXlfU3BhY2UsIFF0OjpOb01vZGlmaWVyKTsKKyAgICBR
Q29yZUFwcGxpY2F0aW9uOjpzZW5kRXZlbnQobV93aW5kb3csICZldmVudCk7CisgICAgUUtleUV2
ZW50IGV2ZW50MihRRXZlbnQ6OktleVJlbGVhc2UsIFF0OjpLZXlfU3BhY2UsIFF0OjpOb01vZGlm
aWVyKTsKKyAgICBRQ29yZUFwcGxpY2F0aW9uOjpzZW5kRXZlbnQobV93aW5kb3csICZldmVudDIp
OworfQorCit2b2lkIFBsYXRmb3JtV2ViVmlldzo6c2ltdWxhdGVBbHRLZXlQcmVzcygpCit7Cisg
ICAgUUtleUV2ZW50IGV2ZW50KFFFdmVudDo6S2V5UHJlc3MsIFF0OjpLZXlfQWx0LCBRdDo6Tm9N
b2RpZmllcik7CisgICAgUUNvcmVBcHBsaWNhdGlvbjo6c2VuZEV2ZW50KG1fd2luZG93LCAmZXZl
bnQpOworICAgIFFLZXlFdmVudCBldmVudDIoUUV2ZW50OjpLZXlSZWxlYXNlLCBRdDo6S2V5X0Fs
dCwgUXQ6Ok5vTW9kaWZpZXIpOworICAgIFFDb3JlQXBwbGljYXRpb246OnNlbmRFdmVudChtX3dp
bmRvdywgJmV2ZW50Mik7Cit9CisKK3ZvaWQgUGxhdGZvcm1XZWJWaWV3OjpzaW11bGF0ZU1vdXNl
TW92ZSh1bnNpZ25lZCB4LCB1bnNpZ25lZCB5KQoreworICAgIFFQb2ludEYgbW91c2VQb3MoeCwg
eSk7CisgICAgUU1vdXNlRXZlbnQgZXZlbnQoUUV2ZW50OjpNb3VzZU1vdmUsIG1vdXNlUG9zLCBR
dDo6Tm9CdXR0b24sIFF0OjpOb0J1dHRvbiwgUXQ6Ok5vTW9kaWZpZXIpOworICAgIFFDb3JlQXBw
bGljYXRpb246OnNlbmRFdmVudChtX3dpbmRvdywgJmV2ZW50KTsKK30KKwordm9pZCBQbGF0Zm9y
bVdlYlZpZXc6OnNpbXVsYXRlUmlnaHRDbGljayh1bnNpZ25lZCB4LCB1bnNpZ25lZCB5KQorewor
ICAgIFFQb2ludEYgbW91c2VQb3MoeCwgeSk7CisgICAgUU1vdXNlRXZlbnQgZXZlbnQyKFFFdmVu
dDo6TW91c2VCdXR0b25QcmVzcywgbW91c2VQb3MsIFF0OjpSaWdodEJ1dHRvbiwgUXQ6OlJpZ2h0
QnV0dG9uLCBRdDo6Tm9Nb2RpZmllcik7CisgICAgUUNvcmVBcHBsaWNhdGlvbjo6c2VuZEV2ZW50
KG1fd2luZG93LCAmZXZlbnQyKTsKKyAgICBRTW91c2VFdmVudCBldmVudDMoUUV2ZW50OjpNb3Vz
ZUJ1dHRvblJlbGVhc2UsIG1vdXNlUG9zLCAgUXQ6OlJpZ2h0QnV0dG9uLCBRdDo6Tm9CdXR0b24s
IFF0OjpOb01vZGlmaWVyKTsKKyAgICBRQ29yZUFwcGxpY2F0aW9uOjpzZW5kRXZlbnQobV93aW5k
b3csICZldmVudDMpOworfQorCit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCisKKyNpbmNs
dWRlICJQbGF0Zm9ybVdlYlZpZXdRdC5tb2MiCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL3F0L21haW4uY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9xdC9tYWluLmNwcAppbmRleCA3
ZTAzNzhmNmEyNjllMDkzMTIwZjg1YjNkMzFkZjhkYzYzZTlhZDdmLi5lZmFkNWJiYjNhYjkzYmJk
YjE1NzYzNzZkZDc0YTYyZDVhOTIxMzE0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L3F0L21haW4uY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvcXQvbWFpbi5jcHAKQEAgLTIx
LDExICsyMSw1MCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlRlc3RzQ29udHJv
bGxlci5oIgogCisjaW5jbHVkZSAicXF1aWNrd2Vidmlld19wLmgiCiAjaW5jbHVkZSA8UUd1aUFw
cGxpY2F0aW9uPgogCit2b2lkIGFkZFF0V2ViUHJvY2Vzc1RvUGF0aCgpCit7CisgICAgLy8gU2lu
Y2UgdGVzdHMgd29uJ3QgZmluZCAuL1F0V2ViUHJvY2VzcywgYWRkIGl0IHRvIFBBVEggKGF0IHRo
ZSBlbmQgdG8gcHJldmVudCBzdXJwcmlzZXMpLgorICAgIC8vIFJPT1RfQlVJTERfRElSIHNob3Vs
ZCBiZSBkZWZpbmVkIGJ5IHFtYWtlLgorICAgIHFwdXRlbnYoIlBBVEgiLCBxZ2V0ZW52KCJQQVRI
IikgKyBRQnl0ZUFycmF5KCI6IiBST09UX0JVSUxEX0RJUiAiL2JpbiIpKTsKK30KKwordm9pZCBt
ZXNzYWdlSGFuZGxlcihRdE1zZ1R5cGUgdHlwZSwgY29uc3QgUU1lc3NhZ2VMb2dDb250ZXh0Jiwg
Y29uc3QgUVN0cmluZyYgbWVzc2FnZSkKK3sKKyAgICBpZiAodHlwZSA9PSBRdENyaXRpY2FsTXNn
KSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiJXNcbiIsIHFQcmludGFibGUobWVzc2FnZSkp
OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8gRG8gbm90aGluZworfQorCiBpbnQg
bWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiB7CisgICAgYm9vbCBzdXBwcmVzc1F0RGVidWdP
dXRwdXQgPSB0cnVlOyAvLyBTdXBwcmVzcyBkZWJ1ZyBvdXRwdXQgZnJvbSBRdCBpZiBub3Qgc3Rh
cnRlZCB3aXRoIC0tdmVyYm9zZS4KKyAgICBib29sIHVzZURlc2t0b3BCZWhhdmlvciA9IHRydWU7
IC8vIFVzZSB0cmFkaXRpb25hbCBkZXNrdG9wIGJlaGF2aW9yIGlmIG5vdCBzdGFydGVkIHdpdGgg
LS1mbGlja2FibGUuCisKKyAgICBmb3IgKGludCBpID0gMTsgaSA8IGFyZ2M7ICsraSkgeworICAg
ICAgICBpZiAoIXFzdHJjbXAoYXJndltpXSwgIi0tdmVyYm9zZSIpKQorICAgICAgICAgICAgc3Vw
cHJlc3NRdERlYnVnT3V0cHV0ID0gZmFsc2U7CisgICAgICAgIGVsc2UgaWYgKCFxc3RyY21wKGFy
Z3ZbaV0sICItLWZsaWNrYWJsZSIpKQorICAgICAgICAgICAgdXNlRGVza3RvcEJlaGF2aW9yID0g
ZmFsc2U7CisgICAgfQorCisgICAgUVF1aWNrV2ViVmlld0V4cGVyaW1lbnRhbDo6c2V0RmxpY2th
YmxlVmlld3BvcnRFbmFibGVkKCF1c2VEZXNrdG9wQmVoYXZpb3IpOworCisgICAgLy8gSGFzIHRv
IGJlIGRvbmUgYmVmb3JlIFFBcHBsaWNhdGlvbiBpcyBjb25zdHJ1Y3RlZCBpbiBjYXNlCisgICAg
Ly8gUUFwcGxpY2F0aW9uIGl0c2VsZiBwcm9kdWNlcyBkZWJ1ZyBvdXRwdXQuCisgICAgaWYgKHN1
cHByZXNzUXREZWJ1Z091dHB1dCkgeworICAgICAgICBxSW5zdGFsbE1lc3NhZ2VIYW5kbGVyKG1l
c3NhZ2VIYW5kbGVyKTsKKyAgICAgICAgaWYgKHFnZXRlbnYoIlFUX1dFQktJVF9TVVBQUkVTU19X
RUJfUFJPQ0VTU19PVVRQVVQiKS5pc0VtcHR5KCkpCisgICAgICAgICAgICBxcHV0ZW52KCJRVF9X
RUJLSVRfU1VQUFJFU1NfV0VCX1BST0NFU1NfT1VUUFVUIiwgIjEiKTsKKyAgICB9CisKICAgICBR
R3VpQXBwbGljYXRpb24gYXBwKGFyZ2MsIGFyZ3YpOworICAgIGFkZFF0V2ViUHJvY2Vzc1RvUGF0
aCgpOwogCiAgICAgcmV0dXJuIFRlc3RXZWJLaXRBUEk6OlRlc3RzQ29udHJvbGxlcjo6c2hhcmVk
KCkucnVuKGFyZ2MsIGFyZ3YpID8gRVhJVF9TVUNDRVNTIDogRVhJVF9GQUlMVVJFOwogfQo=
</data>
<flag name="review"
          id="209025"
          type_id="1"
          status="+"
          setter="jturcotte"
    />
          </attachment>
      

    </bug>

</bugzilla>