<?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>80854</bug_id>
          
          <creation_ts>2012-03-12 10:25:33 -0700</creation_ts>
          <short_desc>[Qt][Wk2] Assertion Failure and crash on file upload</short_desc>
          <delta_ts>2012-05-03 23:01:09 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>79458</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dinu Jacob">dinu.jacob</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ahf</cc>
    
    <cc>hausmann</cc>
    
    <cc>kamaji</cc>
    
    <cc>kasthuri.n-s</cc>
    
    <cc>menard</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>576239</commentid>
    <comment_count>0</comment_count>
    <who name="Dinu Jacob">dinu.jacob</who>
    <bug_when>2012-03-12 10:25:33 -0700</bug_when>
    <thetext>Using MiniBrowser,

1. Load http://iop4.nokia-boston.com/users/tests/fileupload/fileupload.html
2. Click on &quot;Browser&quot; to upload a file

This causes an ASSERT:
ASSERT: &quot;!fileDialog&quot; in file Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp, line 386

Attempting to upload a file after fixing the ASSERT resulted in crash:
QWidget: Cannot create a QWidget when no GUI is being used

Program received signal SIGABRT, Aborted.
0xb7fe2832 in ?? () from /lib/ld-linux.so.2
(gdb) bt
#0  0xb7fe2832 in ?? () from /lib/ld-linux.so.2
#1  0xafc9ce71 in raise () from /lib/i386-linux-gnu/libc.so.6
#2  0xafca034e in abort () from /lib/i386-linux-gnu/libc.so.6
#3  0xb0051ceb in qt_message_output (msgType=QtFatalMsg, context=..., 
    buf=0x817b028 &quot;QWidget: Cannot create a QWidget when no GUI is being used&quot;) at global/qlogging.cpp:734
#4  0xb005012c in qt_message (msgType=QtFatalMsg, context=..., 
    msg=0xaf8d272c &quot;QWidget: Cannot create a QWidget when no GUI is being used&quot;, ap=0xbfffe178 &quot;[\004&quot;)
    at global/qlogging.cpp:131
#5  0xb005039d in QMessageLogger::fatal (this=0xbfffe1c8, 
    msg=0xaf8d272c &quot;QWidget: Cannot create a QWidget when no GUI is being used&quot;)
    at global/qlogging.cpp:334
#6  0xaf4774e9 in QWidgetPrivate::init (this=0x83c4e08, parentWidget=0x0, f=...)
    at kernel/qwidget.cpp:1115
#7  0xaf476fce in QWidget::QWidget (this=0x83b09a8, dd=..., parent=0x0, f=...) at kernel/qwidget.cpp:1038
#8  0xaf6e3f0f in QDialog::QDialog (this=0x83b09a8, dd=..., parent=0x0, f=...) at dialogs/qdialog.cpp:323
#9  0xaf6e9d46 in QFileDialog::QFileDialog (this=0x83b09a8, parent=0x0, caption=..., directory=..., 
    filter=...) at dialogs/qfiledialog.cpp:339
#10 0xb7b230a6 in QQuickWebViewPrivate::chooseFiles (this=0x80e45b8, listenerRef=0x83d62e8, 
    selectedFileNames=..., type=QtWebPageUIClient::SingleFileSelection)
    at Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp:407</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576242</commentid>
    <comment_count>1</comment_count>
    <who name="Dinu Jacob">dinu.jacob</who>
    <bug_when>2012-03-12 10:27:06 -0700</bug_when>
    <thetext>The ASSERT was caused by uninitialized member fileDialog.

The qFatal crash resulted from trying to create QFileDialog from a QGuiApplication instead of a QApplication.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576250</commentid>
    <comment_count>2</comment_count>
      <attachid>131348</attachid>
    <who name="Dinu Jacob">dinu.jacob</who>
    <bug_when>2012-03-12 10:33:46 -0700</bug_when>
    <thetext>Created attachment 131348
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577168</commentid>
    <comment_count>3</comment_count>
      <attachid>131348</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-03-13 01:43:37 -0700</bug_when>
    <thetext>Comment on attachment 131348
Patch

I think the right solution is to eliminate the use of QFileDialog in WK2 altogether and treat file choosing just like the other dialog requests: Implementable via QML components through the experimental API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577285</commentid>
    <comment_count>4</comment_count>
    <who name="Dinu Jacob">dinu.jacob</who>
    <bug_when>2012-03-13 07:20:20 -0700</bug_when>
    <thetext>Yes, will work on a qml replacement. But provided this &apos;bandage&apos; as it was a crash.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578731</commentid>
    <comment_count>5</comment_count>
      <attachid>131915</attachid>
    <who name="Dinu Jacob">dinu.jacob</who>
    <bug_when>2012-03-14 13:53:10 -0700</bug_when>
    <thetext>Created attachment 131915
Path with qml component

Added support for qml based file picker. This patch supports only single selection.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578738</commentid>
    <comment_count>6</comment_count>
      <attachid>131918</attachid>
    <who name="Dinu Jacob">dinu.jacob</who>
    <bug_when>2012-03-14 13:59:17 -0700</bug_when>
    <thetext>Created attachment 131918
Patch using qml based file picker

Added support for qml based file picker. This patch supports only single selection (most the changes should be the qml for multi-selection)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579352</commentid>
    <comment_count>7</comment_count>
      <attachid>131918</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-03-15 07:15:36 -0700</bug_when>
    <thetext>Comment on attachment 131918
Patch using qml based file picker

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

Not a review, but a few comments.

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebview_p.h:280
&gt; +    QDeclarativeComponent* filePicker() const;
&gt; +    void setFilePicker(QDeclarativeComponent*);

It is fine that this is an experimental API, as it might make sense to join it with the media capturer in the near future, so you have something like

mediaPicker(&quot;file/*&quot;);
mediaPicker(&quot;images/capture&quot;);

[or whatever those mimetypes are called]

Maybe it makes sense to prepare for this already?

&gt; Source/WebKit2/UIProcess/API/qt/tests/qmltests/common/singlefileupload.html:10
&gt; +    var name=new String(&quot;&quot;);

missing space around =

&gt; Tools/MiniBrowser/qt/qml/FilePicker.qml:29
&gt; +import Qt.labs.folderlistmodel 1.0

Do we have this available?

&gt; Tools/MiniBrowser/qt/qml/FilePicker.qml:203
&gt; +}
&gt; +
&gt; +
&gt; +
&gt; +
&gt; +

what is up with the newlines?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579361</commentid>
    <comment_count>8</comment_count>
      <attachid>131918</attachid>
    <who name="Alexander Færøy">ahf</who>
    <bug_when>2012-03-15 07:23:40 -0700</bug_when>
    <thetext>Comment on attachment 131918
Patch using qml based file picker

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

Why does it contain a black box for the titlebar.png?

&gt; Source/WebKit2/ChangeLog:3
&gt; +        [Qt][Wk2] Assertion Failure and crash on file upload

I don&apos;t think this name is descriptive enough. This patch is implementing the API for having a file picker and the bug name should probably reflect this.

&gt; Source/WebKit2/ChangeLog:10
&gt; +        to set the qml component for file upload triggered by an input file element.

Nitpick: QML :-)

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp:78
&gt; +    , filePicker(0)

Use filePickerDialog for consistency.

&gt; Source/WebKit2/UIProcess/qt/QtDialogRunner.cpp:178
&gt; +    void accept(const QVariant&amp; path) { emit fileSelected((path.toStringList())); }

Why the extra set of parentheses?

&gt; Source/WebKit2/UIProcess/qt/QtDialogRunner.cpp:267
&gt; +    connect(contextObject, SIGNAL(fileSelected(const QStringList&amp;)), SLOT(onFileSelected(const QStringList&amp;)));

No need to use reference-to-const in slots.

&gt; Source/WebKit2/UIProcess/qt/QtDialogRunner.h:55
&gt; +    QStringList filePath() const { return m_filepath; }

Not sure that I like this name to be on singular form. It is returning a QStringList and not just a single QString.

&gt; Tools/MiniBrowser/qt/MiniBrowser.qrc:13
&gt; +        &lt;file&gt;icons/titlebar.png&lt;/file&gt;

Nitpick: We try to keep this list sorted.

&gt; Tools/MiniBrowser/qt/MiniBrowser.qrc:21
&gt; +        &lt;file&gt;qml/FilePicker.qml&lt;/file&gt;

Again, FilePickerDialog.qml.

&gt; Tools/MiniBrowser/qt/qml/FilePicker.qml:15
&gt; + * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS&apos;&apos; AND ANY

Looks incorrect to me, but we are very bad and this in general.

&gt; Tools/MiniBrowser/qt/qml/FilePicker.qml:29
&gt; +import Qt.labs.folderlistmodel 1.0

I am not sure about this at all, but is this safe enough to use and wont add any new dependencies?

&gt; Tools/MiniBrowser/qt/qml/FilePicker.qml:31
&gt; +Rectangle {

Any reason why you can&apos;t make this work with the already implemented Dialog QML type?

&gt; Tools/MiniBrowser/qt/qml/FilePicker.qml:32
&gt; +    id: root

Change this to id: filePickerDialog instead. Root is too ambiguous.

&gt; Tools/MiniBrowser/qt/qml/FilePicker.qml:102
&gt; +        id: folderList

folderListView, maybe?

&gt; Tools/MiniBrowser/qt/qml/FilePicker.qml:199
&gt; +

Nitpick: Lots of whitespace in the end :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579364</commentid>
    <comment_count>9</comment_count>
    <who name="Alexander Færøy">ahf</who>
    <bug_when>2012-03-15 07:26:27 -0700</bug_when>
    <thetext>After having talked with Kenneth, let&apos;s stick with the name you already have instead of adding Dialog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579415</commentid>
    <comment_count>10</comment_count>
    <who name="Dinu Jacob">dinu.jacob</who>
    <bug_when>2012-03-15 08:52:04 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 131918 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=131918&amp;action=review
&gt; 
&gt; Not a review, but a few comments.
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/qt/qquickwebview_p.h:280
&gt; &gt; +    QDeclarativeComponent* filePicker() const;
&gt; &gt; +    void setFilePicker(QDeclarativeComponent*);
&gt; 
&gt; It is fine that this is an experimental API, as it might make sense to join it with the media capturer in the near future, so you have something like
&gt; 
&gt; mediaPicker(&quot;file/*&quot;);
&gt; mediaPicker(&quot;images/capture&quot;);
&gt; 
&gt; [or whatever those mimetypes are called]
&gt; 
&gt; Maybe it makes sense to prepare for this already?
&gt; 
As per IRC discussion, will keep it as FilePicker and later add a property for the mime types.
&gt; &gt; Source/WebKit2/UIProcess/API/qt/tests/qmltests/common/singlefileupload.html:10
&gt; &gt; +    var name=new String(&quot;&quot;);
&gt; 
&gt; missing space around =
&gt; 
Will fix this.
&gt; &gt; Tools/MiniBrowser/qt/qml/FilePicker.qml:29
&gt; &gt; +import Qt.labs.folderlistmodel 1.0
&gt; 
&gt; Do we have this available?
&gt; 
This is part of QtDeclarative, available as a separate plugin under Qt labs. As per IRC discussion with Simon, ok to use this.
&gt; &gt; Tools/MiniBrowser/qt/qml/FilePicker.qml:203
&gt; &gt; +}
&gt; &gt; +
&gt; &gt; +
&gt; &gt; +
&gt; &gt; +
&gt; &gt; +
&gt; 
&gt; what is up with the newlines?
Will remove those</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579418</commentid>
    <comment_count>11</comment_count>
    <who name="Dinu Jacob">dinu.jacob</who>
    <bug_when>2012-03-15 08:58:36 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 131918 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=131918&amp;action=review
&gt; 
&gt; Why does it contain a black box for the titlebar.png?
&gt; 
&gt; &gt; Source/WebKit2/ChangeLog:3
&gt; &gt; +        [Qt][Wk2] Assertion Failure and crash on file upload
&gt; 
&gt; I don&apos;t think this name is descriptive enough. This patch is implementing the API for having a file picker and the bug name should probably reflect this.
&gt; 

The bug was logged for the crash reported. The original patch was fixing this but since we need a solution for both QGuiApplications as well as QApplications, this patch to replace the current QFileDialog implementation was implemented.

&gt; &gt; Source/WebKit2/ChangeLog:10
&gt; &gt; +        to set the qml component for file upload triggered by an input file element.
&gt; 
&gt; Nitpick: QML :-)
&gt; 
Will change that
&gt; &gt; Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp:78
&gt; &gt; +    , filePicker(0)
&gt; 
&gt; Use filePickerDialog for consistency.
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/qt/QtDialogRunner.cpp:178
&gt; &gt; +    void accept(const QVariant&amp; path) { emit fileSelected((path.toStringList())); }
&gt; 
&gt; Why the extra set of parentheses?
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/qt/QtDialogRunner.cpp:267
&gt; &gt; +    connect(contextObject, SIGNAL(fileSelected(const QStringList&amp;)), SLOT(onFileSelected(const QStringList&amp;)));
&gt; 
&gt; No need to use reference-to-const in slots.
&gt; 
Will fix it.
&gt; &gt; Source/WebKit2/UIProcess/qt/QtDialogRunner.h:55
&gt; &gt; +    QStringList filePath() const { return m_filepath; }
&gt; 
&gt; Not sure that I like this name to be on singular form. It is returning a QStringList and not just a single QString.
&gt; 
Can change it to filePaths.

&gt; &gt; Tools/MiniBrowser/qt/MiniBrowser.qrc:13
&gt; &gt; +        &lt;file&gt;icons/titlebar.png&lt;/file&gt;
&gt; 
This is used as a border image.

&gt; Nitpick: We try to keep this list sorted.
&gt; 
&gt; &gt; Tools/MiniBrowser/qt/MiniBrowser.qrc:21
&gt; &gt; +        &lt;file&gt;qml/FilePicker.qml&lt;/file&gt;
&gt; 
&gt; Again, FilePickerDialog.qml.
&gt; 
&gt; &gt; Tools/MiniBrowser/qt/qml/FilePicker.qml:15
&gt; &gt; + * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS&apos;&apos; AND ANY
&gt; 
&gt; Looks incorrect to me, but we are very bad and this in general.
&gt; 
Will fix it.

&gt; &gt; Tools/MiniBrowser/qt/qml/FilePicker.qml:29
&gt; &gt; +import Qt.labs.folderlistmodel 1.0
&gt; 
&gt; I am not sure about this at all, but is this safe enough to use and wont add any new dependencies?
&gt; 
&gt; &gt; Tools/MiniBrowser/qt/qml/FilePicker.qml:31
&gt; &gt; +Rectangle {
&gt; 
&gt; Any reason why you can&apos;t make this work with the already implemented Dialog QML type?
&gt; 
Wanted to provide a separate titlebar.

&gt; &gt; Tools/MiniBrowser/qt/qml/FilePicker.qml:32
&gt; &gt; +    id: root
&gt; 
&gt; Change this to id: filePickerDialog instead. Root is too ambiguous.
&gt; 
Will fix it.

&gt; &gt; Tools/MiniBrowser/qt/qml/FilePicker.qml:102
&gt; &gt; +        id: folderList
&gt; 
&gt; folderListView, maybe?
&gt;
Sure.
 
&gt; &gt; Tools/MiniBrowser/qt/qml/FilePicker.qml:199
&gt; &gt; +
&gt; 
&gt; Nitpick: Lots of whitespace in the end :-)

Will remove those.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579453</commentid>
    <comment_count>12</comment_count>
      <attachid>132063</attachid>
    <who name="Dinu Jacob">dinu.jacob</who>
    <bug_when>2012-03-15 09:48:53 -0700</bug_when>
    <thetext>Created attachment 132063
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580385</commentid>
    <comment_count>13</comment_count>
      <attachid>132063</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-03-16 04:44:54 -0700</bug_when>
    <thetext>Comment on attachment 132063
Patch

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

r=me. The style nitpick and the member variable should be fixed before landing.

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp:383
&gt; +    openPanelResultListener = listenerRef;

It looks like this member variable could be removed, now that we process the file picking &quot;synchronously&quot;.

&gt; Source/WebKit2/UIProcess/qt/QtDialogRunner.cpp:171
&gt; +    QStringList fileList() const {return m_fileList; }

Missing space after opening {</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580477</commentid>
    <comment_count>14</comment_count>
      <attachid>132274</attachid>
    <who name="Dinu Jacob">dinu.jacob</who>
    <bug_when>2012-03-16 06:52:20 -0700</bug_when>
    <thetext>Created attachment 132274
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580486</commentid>
    <comment_count>15</comment_count>
      <attachid>132274</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-16 07:03:29 -0700</bug_when>
    <thetext>Comment on attachment 132274
Patch

Rejecting attachment 132274 from commit-queue.

maheshk@webkit.org does not have committer permissions according to http://trac.webkit.org/browser/trunk/Tools/Scripts/webkitpy/common/config/committers.py.

- If you do not have committer rights please read http://webkit.org/coding/contributing.html for instructions on how to use bugzilla flags.

- If you have committer rights please correct the error in Tools/Scripts/webkitpy/common/config/committers.py by adding yourself to the file (no review needed).  The commit-queue restarts itself every 2 hours.  After restart the commit-queue will correctly respect your committer rights.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580566</commentid>
    <comment_count>16</comment_count>
      <attachid>132274</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-16 09:16:40 -0700</bug_when>
    <thetext>Comment on attachment 132274
Patch

Clearing flags on attachment: 132274

Committed r111012: &lt;http://trac.webkit.org/changeset/111012&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580567</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-16 09:16:46 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>615789</commentid>
    <comment_count>18</comment_count>
    <who name="Keith Kyzivat">kamaji</who>
    <bug_when>2012-05-03 16:46:25 -0700</bug_when>
    <thetext>How exactly does one go about installing Qt.labs.folderlistmodel ?
There should be some pointers/instructions for installing this up at the BuildingQtOnLinux page.

Right now, if one follows the instructions at: http://trac.webkit.org/wiki/BuildingQtOnLinux, they don&apos;t get a functioning MiniBrowser (Tools/Scripts/run-launcher -2 --qt fails to run).  Instead they&apos;re greeted with a plain white window and (an excerpt of ) the following errors on stdout/sterr:
qrc:/qml/BrowserWindow.qml:318:34: Type FilePicker unavailable 
qrc:/qml/FilePicker.qml:22:1: plugin cannot be loaded for module &quot;Qt.labs.folderlistmodel&quot;: Unknown error 


full stdout/stderr:
https://gist.github.com/2590486</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>615802</commentid>
    <comment_count>19</comment_count>
    <who name="Keith Kyzivat">kamaji</who>
    <bug_when>2012-05-03 17:08:53 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; How exactly does one go about installing Qt.labs.folderlistmodel ?

And now I feel slightly dumb..
QML_IMPORT_PATH=&lt;path-to-qt5-build&gt;/qtdeclarative/imports Tools/Scripts/run-launcher -2 --qt

Is there a more automatic way to set the QML import path, based on where qmake lives or where the makespecs are, or some other way?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>615975</commentid>
    <comment_count>20</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-05-03 23:01:09 -0700</bug_when>
    <thetext>There used to be (at least) a silly conflict between QtQuick1 and QtQuick2 having the same QML component, causing a nice clash when you build WebKit against both.

Could it be that you have QtQuick1 built and it ends up loading that listmodel instead?

If that&apos;s the case, then it&apos;s a Qt bug ;(</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131348</attachid>
            <date>2012-03-12 10:33:46 -0700</date>
            <delta_ts>2012-03-14 13:53:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>80854.patch</filename>
            <type>text/plain</type>
            <size>3127</size>
            <attacher name="Dinu Jacob">dinu.jacob</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBkZTI5ZGY5NS4uZGFlNGU5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5
IEBACisyMDEyLTAzLTEyICBEaW51IEphY29iICA8ZGludS5qYWNvYkBub2tpYS5jb20+CisKKyAg
ICAgICAgW1F0XVtXazJdIEFzc2VydGlvbiBGYWlsdXJlIGFuZCBjcmFzaCBvbiBmaWxlIHVwbG9h
ZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODA4NTQK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbml0aWFs
aXplIGZpbGVEaWFsb2cgbWVtYmVyIG9mIFFRdWlja1dlYlZpZXdQcml2YXRlIHRvIE5VTEwuIEFk
ZGl0aW9uYWxseSwgY3JlYXRlCisgICAgICAgIFFGaWxlRGlhbG9nIG9ubHkgZm9yIGEgUUFwcGxp
Y2F0aW9uLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcDoK
KyAgICAgICAgKFFRdWlja1dlYlZpZXdQcml2YXRlOjpRUXVpY2tXZWJWaWV3UHJpdmF0ZSk6Cisg
ICAgICAgIChRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6Y2hvb3NlRmlsZXMpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wX3AuaDoKKyAgICAgICAgKFFRdWlja1dlYlZp
ZXdQcml2YXRlKToKKwogMjAxMi0wMy0xMSAgVGltb3RoeSBIYXRjaGVyICA8dGltb3RoeUBhcHBs
ZS5jb20+CiAKICAgICAgICAgVXBkYXRlIGhvdyB0aGUgV2ViIEluc3BlY3RvciByZXNvdXJjZXMg
YXJlIGxvYWRlZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQv
cXF1aWNrd2Vidmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlj
a3dlYnZpZXcuY3BwCmluZGV4IDZlNTE4ZmYuLjRkNzBkNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcApAQCAtNDYsNyArNDYsMTIg
QEAKIAogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KICNp
bmNsdWRlIDxRRGVjbGFyYXRpdmVFbmdpbmU+CisjaWZkZWYgUVRfV0lER0VUU19MSUIKKyNpbmNs
dWRlIDxRQXBwbGljYXRpb24+CisjZW5kaWYKKyNpZm5kZWYgUVRfTk9fRklMRURJQUxPRwogI2lu
Y2x1ZGUgPFFGaWxlRGlhbG9nPgorI2VuZGlmCiAjaW5jbHVkZSA8UXRRdWljay9RUXVpY2tDYW52
YXM+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRQb2ludC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW50
UmVjdC5oPgpAQCAtNzUsNiArODAsOSBAQCBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6UVF1aWNrV2Vi
Vmlld1ByaXZhdGUoUVF1aWNrV2ViVmlldyogdmlld3BvcnQpCiAgICAgLCBjZXJ0aWZpY2F0ZVZl
cmlmaWNhdGlvbkRpYWxvZygwKQogICAgICwgaXRlbVNlbGVjdG9yKDApCiAgICAgLCBwcm94eUF1
dGhlbnRpY2F0aW9uRGlhbG9nKDApCisjaWZuZGVmIFFUX05PX0ZJTEVESUFMT0cKKyAgICAsIGZp
bGVEaWFsb2coMCkKKyNlbmRpZgogICAgICwgdXNlckRpZE92ZXJyaWRlQ29udGVudFdpZHRoKGZh
bHNlKQogICAgICwgdXNlckRpZE92ZXJyaWRlQ29udGVudEhlaWdodChmYWxzZSkKICAgICAsIG1f
bmF2aWdhdG9yUXRPYmplY3RFbmFibGVkKGZhbHNlKQpAQCAtMzc0LDcgKzM4MiwxNCBAQCB2b2lk
IFFRdWlja1dlYlZpZXdQcml2YXRlOjpleGVjRGlhbG9nUnVubmVyKFF0RGlhbG9nUnVubmVyJiBk
aWFsb2dSdW5uZXIpCiAKIHZvaWQgUVF1aWNrV2ViVmlld1ByaXZhdGU6OmNob29zZUZpbGVzKFdL
T3BlblBhbmVsUmVzdWx0TGlzdGVuZXJSZWYgbGlzdGVuZXJSZWYsIGNvbnN0IFFTdHJpbmdMaXN0
JiBzZWxlY3RlZEZpbGVOYW1lcywgUXRXZWJQYWdlVUlDbGllbnQ6OkZpbGVDaG9vc2VyVHlwZSB0
eXBlKQogeworCisjaWZkZWYgUVRfV0lER0VUU19MSUIKICNpZm5kZWYgUVRfTk9fRklMRURJQUxP
RworCisgICAgUUFwcGxpY2F0aW9uKiBhcHAgPSBxb2JqZWN0X2Nhc3Q8UUFwcGxpY2F0aW9uKj4o
cUFwcC0+aW5zdGFuY2UoKSk7CisgICAgaWYgKCFhcHApCisgICAgICAgIHJldHVybjsKKwogICAg
IFFfUShRUXVpY2tXZWJWaWV3KTsKICAgICBvcGVuUGFuZWxSZXN1bHRMaXN0ZW5lciA9IGxpc3Rl
bmVyUmVmOwogCkBAIC0zOTgsNiArNDEzLDcgQEAgdm9pZCBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6
Y2hvb3NlRmlsZXMoV0tPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclJlZiBsaXN0ZW5lclJlZiwKIAog
ICAgIHEtPmNvbm5lY3QoZmlsZURpYWxvZywgU0lHTkFMKGZpbmlzaGVkKGludCkpLCBTTE9UKF9x
X29uT3BlblBhbmVsRmluaXNoZWQoaW50KSkpOwogI2VuZGlmCisjZW5kaWYKIH0KIAogdm9pZCBR
UXVpY2tXZWJWaWV3UHJpdmF0ZTo6X3Ffb25PcGVuUGFuZWxGaWxlc1NlbGVjdGVkKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wX3Au
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wX3AuaApp
bmRleCAzOWExNGE3Li40ZWI0N2ViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcF9wLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3BfcC5oCkBAIC0xNjAsNyArMTYwLDkgQEAgcHJvdGVj
dGVkOgogICAgIFFEZWNsYXJhdGl2ZUNvbXBvbmVudCogcHJveHlBdXRoZW50aWNhdGlvbkRpYWxv
ZzsKIAogICAgIFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzIHZpZXdwb3J0QXJndW1lbnRzOwor
I2lmbmRlZiBRVF9OT19GSUxFRElBTE9HCiAgICAgUUZpbGVEaWFsb2cqIGZpbGVEaWFsb2c7Cisj
ZW5kaWYKICAgICBXS09wZW5QYW5lbFJlc3VsdExpc3RlbmVyUmVmIG9wZW5QYW5lbFJlc3VsdExp
c3RlbmVyOwogCiAgICAgYm9vbCB1c2VyRGlkT3ZlcnJpZGVDb250ZW50V2lkdGg7Cg==
</data>
<flag name="review"
          id="134640"
          type_id="1"
          status="-"
          setter="hausmann"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131915</attachid>
            <date>2012-03-14 13:53:10 -0700</date>
            <delta_ts>2012-03-14 13:59:17 -0700</delta_ts>
            <desc>Path with qml component</desc>
            <filename>80854_qmldialog.patch</filename>
            <type>text/plain</type>
            <size>26437</size>
            <attacher name="Dinu Jacob">dinu.jacob</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmll
dy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3Bw
CmluZGV4IGVlMWFiZjQuLjNlYjYyZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcApAQCAtNDcsNyArNDcsNiBAQAogI2luY2x1ZGUg
PHByaXZhdGUvcXF1aWNrZmxpY2thYmxlX3AuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9J
bml0aWFsaXplVGhyZWFkaW5nLmg+CiAjaW5jbHVkZSA8UURlY2xhcmF0aXZlRW5naW5lPgotI2lu
Y2x1ZGUgPFFGaWxlRGlhbG9nPgogI2luY2x1ZGUgPFF0UXVpY2svUVF1aWNrQ2FudmFzPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvSW50UG9pbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ludFJlY3QuaD4K
QEAgLTc2LDYgKzc1LDcgQEAgUVF1aWNrV2ViVmlld1ByaXZhdGU6OlFRdWlja1dlYlZpZXdQcml2
YXRlKFFRdWlja1dlYlZpZXcqIHZpZXdwb3J0KQogICAgICwgY2VydGlmaWNhdGVWZXJpZmljYXRp
b25EaWFsb2coMCkKICAgICAsIGl0ZW1TZWxlY3RvcigwKQogICAgICwgcHJveHlBdXRoZW50aWNh
dGlvbkRpYWxvZygwKQorICAgICwgZmlsZVBpY2tlcigwKQogICAgICwgdXNlckRpZE92ZXJyaWRl
Q29udGVudFdpZHRoKGZhbHNlKQogICAgICwgdXNlckRpZE92ZXJyaWRlQ29udGVudEhlaWdodChm
YWxzZSkKICAgICAsIG1fbmF2aWdhdG9yUXRPYmplY3RFbmFibGVkKGZhbHNlKQpAQCAtMzc1LDUw
ICszNzUsMzAgQEAgdm9pZCBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6ZXhlY0RpYWxvZ1J1bm5lcihR
dERpYWxvZ1J1bm5lciYgZGlhbG9nUnVubmVyKQogCiB2b2lkIFFRdWlja1dlYlZpZXdQcml2YXRl
OjpjaG9vc2VGaWxlcyhXS09wZW5QYW5lbFJlc3VsdExpc3RlbmVyUmVmIGxpc3RlbmVyUmVmLCBj
b25zdCBRU3RyaW5nTGlzdCYgc2VsZWN0ZWRGaWxlTmFtZXMsIFF0V2ViUGFnZVVJQ2xpZW50OjpG
aWxlQ2hvb3NlclR5cGUgdHlwZSkKIHsKLSNpZm5kZWYgUVRfTk9fRklMRURJQUxPRwogICAgIFFf
UShRUXVpY2tXZWJWaWV3KTsKLSAgICBvcGVuUGFuZWxSZXN1bHRMaXN0ZW5lciA9IGxpc3RlbmVy
UmVmOwotCi0gICAgLy8gUXQgZG9lcyBub3Qgc3VwcG9ydCBtdWx0aXBsZSBmaWxlcyBzdWdnZXN0
aW9uLCBzbyB3ZSBnZXQganVzdCB0aGUgZmlyc3Qgc3VnZ2VzdGlvbi4KLSAgICBRU3RyaW5nIHNl
bGVjdGVkRmlsZU5hbWU7Ci0gICAgaWYgKCFzZWxlY3RlZEZpbGVOYW1lcy5pc0VtcHR5KCkpCi0g
ICAgICAgIHNlbGVjdGVkRmlsZU5hbWUgPSBzZWxlY3RlZEZpbGVOYW1lcy5hdCgwKTsKLQotICAg
IFFfQVNTRVJUKCFmaWxlRGlhbG9nKTsKIAotICAgIFFXaW5kb3cqIHdpbmRvdyA9IHEtPmNhbnZh
cygpOwotICAgIGlmICghd2luZG93KQorICAgIGlmICghZmlsZVBpY2tlciB8fCB0eXBlID09IFF0
V2ViUGFnZVVJQ2xpZW50OjpNdWx0aXBsZUZpbGVzU2VsZWN0aW9uKQogICAgICAgICByZXR1cm47
CiAKLSAgICBmaWxlRGlhbG9nID0gbmV3IFFGaWxlRGlhbG9nKDAsIFFTdHJpbmcoKSwgc2VsZWN0
ZWRGaWxlTmFtZSk7Ci0gICAgZmlsZURpYWxvZy0+d2luZG93KCktPndpbklkKCk7IC8vIEVuc3Vy
ZSB0aGF0IHRoZSBkaWFsb2cgaGFzIGEgd2luZG93Ci0gICAgUV9BU1NFUlQoZmlsZURpYWxvZy0+
d2luZG93KCktPndpbmRvd0hhbmRsZSgpKTsKLSAgICBmaWxlRGlhbG9nLT53aW5kb3coKS0+d2lu
ZG93SGFuZGxlKCktPnNldFRyYW5zaWVudFBhcmVudCh3aW5kb3cpOwotCi0gICAgZmlsZURpYWxv
Zy0+b3BlbihxLCBTTE9UKF9xX29uT3BlblBhbmVsRmlsZXNTZWxlY3RlZCgpKSk7CisgICAgb3Bl
blBhbmVsUmVzdWx0TGlzdGVuZXIgPSBsaXN0ZW5lclJlZjsKIAotICAgIHEtPmNvbm5lY3QoZmls
ZURpYWxvZywgU0lHTkFMKGZpbmlzaGVkKGludCkpLCBTTE9UKF9xX29uT3BlblBhbmVsRmluaXNo
ZWQoaW50KSkpOwotI2VuZGlmCi19CisgICAgUXREaWFsb2dSdW5uZXIgZGlhbG9nUnVubmVyOwor
ICAgIGlmICghZGlhbG9nUnVubmVyLmluaXRGb3JGaWxlUGlja2VyKGZpbGVQaWNrZXIsIHEsIHNl
bGVjdGVkRmlsZU5hbWVzKSkKKyAgICAgICAgcmV0dXJuOwogCi12b2lkIFFRdWlja1dlYlZpZXdQ
cml2YXRlOjpfcV9vbk9wZW5QYW5lbEZpbGVzU2VsZWN0ZWQoKQotewotICAgIGNvbnN0IFFTdHJp
bmdMaXN0IGZpbGVMaXN0ID0gZmlsZURpYWxvZy0+c2VsZWN0ZWRGaWxlcygpOwotICAgIFZlY3Rv
cjxSZWZQdHI8QVBJT2JqZWN0PiA+IHdrRmlsZXMoZmlsZUxpc3Quc2l6ZSgpKTsKKyAgICBleGVj
RGlhbG9nUnVubmVyKGRpYWxvZ1J1bm5lcik7CiAKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgZmlsZUxpc3Quc2l6ZSgpOyArK2kpCi0gICAgICAgIHdrRmlsZXNbaV0gPSBXZWJVUkw6OmNy
ZWF0ZShRVXJsOjpmcm9tTG9jYWxGaWxlKGZpbGVMaXN0LmF0KGkpKS50b1N0cmluZygpKTsKKyAg
ICBpZiAoZGlhbG9nUnVubmVyLndhc0FjY2VwdGVkKCkpIHsKKyAgICAgICAgUVN0cmluZ0xpc3Qg
c2VsZWN0ZWRQYXRocyA9IGRpYWxvZ1J1bm5lci5maWxlUGF0aCgpOwogCi0gICAgV0tPcGVuUGFu
ZWxSZXN1bHRMaXN0ZW5lckNob29zZUZpbGVzKG9wZW5QYW5lbFJlc3VsdExpc3RlbmVyLCB0b0FQ
SShJbW11dGFibGVBcnJheTo6YWRvcHQod2tGaWxlcykubGVha1JlZigpKSk7Ci19CisgICAgICAg
IFZlY3RvcjxSZWZQdHI8QVBJT2JqZWN0PiA+IHdrRmlsZXMoc2VsZWN0ZWRQYXRocy5zaXplKCkp
OworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2VsZWN0ZWRQYXRocy5zaXplKCk7
ICsraSkKKyAgICAgICAgICAgIHdrRmlsZXNbaV0gPSBXZWJVUkw6OmNyZWF0ZShRVXJsOjpmcm9t
TG9jYWxGaWxlKHNlbGVjdGVkUGF0aHMuYXQoaSkpLnRvU3RyaW5nKCkpOyAgICAgICAgICAgIAog
Ci12b2lkIFFRdWlja1dlYlZpZXdQcml2YXRlOjpfcV9vbk9wZW5QYW5lbEZpbmlzaGVkKGludCBy
ZXN1bHQpCi17Ci0gICAgaWYgKHJlc3VsdCA9PSBRRGlhbG9nOjpSZWplY3RlZCkKKyAgICAgICAg
V0tPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lckNob29zZUZpbGVzKG9wZW5QYW5lbFJlc3VsdExpc3Rl
bmVyLCB0b0FQSShJbW11dGFibGVBcnJheTo6YWRvcHQod2tGaWxlcykubGVha1JlZigpKSk7Cisg
ICAgfSBlbHNlCiAgICAgICAgIFdLT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJDYW5jZWwob3BlblBh
bmVsUmVzdWx0TGlzdGVuZXIpOwogCi0gICAgZmlsZURpYWxvZy0+ZGVsZXRlTGF0ZXIoKTsKLSAg
ICBmaWxlRGlhbG9nID0gMDsKIH0KIAogdm9pZCBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6c2V0Vmll
d0luQXR0YWNoZWRQcm9wZXJ0aWVzKFFPYmplY3QqIG9iamVjdCkKQEAgLTk3MCw2ICs5NTAsMjEg
QEAgdm9pZCBRUXVpY2tXZWJWaWV3RXhwZXJpbWVudGFsOjpzZXRJdGVtU2VsZWN0b3IoUURlY2xh
cmF0aXZlQ29tcG9uZW50KiBpdGVtU2VsZWMKICAgICBlbWl0IGl0ZW1TZWxlY3RvckNoYW5nZWQo
KTsKIH0KIAorUURlY2xhcmF0aXZlQ29tcG9uZW50KiBRUXVpY2tXZWJWaWV3RXhwZXJpbWVudGFs
OjpmaWxlUGlja2VyKCkgY29uc3QKK3sKKyAgICBRX0QoY29uc3QgUVF1aWNrV2ViVmlldyk7Cisg
ICAgcmV0dXJuIGQtPmZpbGVQaWNrZXI7Cit9CisKK3ZvaWQgUVF1aWNrV2ViVmlld0V4cGVyaW1l
bnRhbDo6c2V0RmlsZVBpY2tlcihRRGVjbGFyYXRpdmVDb21wb25lbnQqIGZpbGVQaWNrZXIpCit7
CisgICAgUV9EKFFRdWlja1dlYlZpZXcpOworICAgIGlmIChkLT5maWxlUGlja2VyID09IGZpbGVQ
aWNrZXIpCisgICAgICAgIHJldHVybjsKKyAgICBkLT5maWxlUGlja2VyID0gZmlsZVBpY2tlcjsK
KyAgICBlbWl0IGZpbGVQaWNrZXJDaGFuZ2VkKCk7Cit9CisKIFFRdWlja1VybFNjaGVtZURlbGVn
YXRlKiBRUXVpY2tXZWJWaWV3RXhwZXJpbWVudGFsOjpzY2hlbWVEZWxlZ2F0ZXNfQXQoUURlY2xh
cmF0aXZlTGlzdFByb3BlcnR5PFFRdWlja1VybFNjaGVtZURlbGVnYXRlPiogcHJvcGVydHksIGlu
dCBpbmRleCkKIHsKICAgICBjb25zdCBRT2JqZWN0TGlzdCBjaGlsZHJlbiA9IHByb3BlcnR5LT5v
YmplY3QtPmNoaWxkcmVuKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3F0L3FxdWlja3dlYnZpZXdfcC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9x
dC9xcXVpY2t3ZWJ2aWV3X3AuaAppbmRleCA2YWRhYjE3Li4zY2UxNTI4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wLmgKQEAgLTE5MSw4
ICsxOTEsNiBAQCBwcml2YXRlOgogICAgIFFfUFJJVkFURV9TTE9UKGRfZnVuYygpLCB2b2lkIF9x
X2NvbW1pdFBvc2l0aW9uQ2hhbmdlKGNvbnN0IFFQb2ludEYmKSk7CiAgICAgUV9QUklWQVRFX1NM
T1QoZF9mdW5jKCksIHZvaWQgX3FfY29tbWl0U2NhbGVDaGFuZ2UoKSk7CiAKLSAgICBRX1BSSVZB
VEVfU0xPVChkX2Z1bmMoKSwgdm9pZCBfcV9vbk9wZW5QYW5lbEZpbGVzU2VsZWN0ZWQoKSk7Ci0g
ICAgUV9QUklWQVRFX1NMT1QoZF9mdW5jKCksIHZvaWQgX3Ffb25PcGVuUGFuZWxGaW5pc2hlZChp
bnQgcmVzdWx0KSk7CiAgICAgUV9QUklWQVRFX1NMT1QoZF9mdW5jKCksIHZvaWQgX3Ffb25WaXNp
YmxlQ2hhbmdlZCgpKTsKICAgICBRX1BSSVZBVEVfU0xPVChkX2Z1bmMoKSwgdm9pZCBfcV9vblVy
bENoYW5nZWQoKSk7CiAgICAgUV9QUklWQVRFX1NMT1QoZF9mdW5jKCksIHZvaWQgX3Ffb25SZWNl
aXZlZFJlc3BvbnNlRnJvbURvd25sb2FkKFFXZWJEb3dubG9hZEl0ZW0qKSk7CkBAIC0yNTAsNiAr
MjQ4LDcgQEAgY2xhc3MgUVdFQktJVF9FWFBPUlQgUVF1aWNrV2ViVmlld0V4cGVyaW1lbnRhbCA6
IHB1YmxpYyBRT2JqZWN0IHsKICAgICBRX1BST1BFUlRZKFFEZWNsYXJhdGl2ZUNvbXBvbmVudCog
cHJveHlBdXRoZW50aWNhdGlvbkRpYWxvZyBSRUFEIHByb3h5QXV0aGVudGljYXRpb25EaWFsb2cg
V1JJVEUgc2V0UHJveHlBdXRoZW50aWNhdGlvbkRpYWxvZyBOT1RJRlkgcHJveHlBdXRoZW50aWNh
dGlvbkRpYWxvZ0NoYW5nZWQpCiAgICAgUV9QUk9QRVJUWShRRGVjbGFyYXRpdmVDb21wb25lbnQq
IGNlcnRpZmljYXRlVmVyaWZpY2F0aW9uRGlhbG9nIFJFQUQgY2VydGlmaWNhdGVWZXJpZmljYXRp
b25EaWFsb2cgV1JJVEUgc2V0Q2VydGlmaWNhdGVWZXJpZmljYXRpb25EaWFsb2cgTk9USUZZIGNl
cnRpZmljYXRlVmVyaWZpY2F0aW9uRGlhbG9nQ2hhbmdlZCkKICAgICBRX1BST1BFUlRZKFFEZWNs
YXJhdGl2ZUNvbXBvbmVudCogaXRlbVNlbGVjdG9yIFJFQUQgaXRlbVNlbGVjdG9yIFdSSVRFIHNl
dEl0ZW1TZWxlY3RvciBOT1RJRlkgaXRlbVNlbGVjdG9yQ2hhbmdlZCkKKyAgICBRX1BST1BFUlRZ
KFFEZWNsYXJhdGl2ZUNvbXBvbmVudCogZmlsZVBpY2tlciBSRUFEIGZpbGVQaWNrZXIgV1JJVEUg
c2V0RmlsZVBpY2tlciBOT1RJRlkgZmlsZVBpY2tlckNoYW5nZWQpCiAgICAgUV9QUk9QRVJUWShR
V2ViUHJlZmVyZW5jZXMqIHByZWZlcmVuY2VzIFJFQUQgcHJlZmVyZW5jZXMgQ09OU1RBTlQgRklO
QUwpCiAgICAgUV9QUk9QRVJUWShRV2ViVmlld3BvcnRJbmZvKiB2aWV3cG9ydEluZm8gUkVBRCB2
aWV3cG9ydEluZm8gQ09OU1RBTlQgRklOQUwpCiAgICAgUV9QUk9QRVJUWShRRGVjbGFyYXRpdmVM
aXN0UHJvcGVydHk8UVF1aWNrVXJsU2NoZW1lRGVsZWdhdGU+IHVybFNjaGVtZURlbGVnYXRlcyBS
RUFEIHNjaGVtZURlbGVnYXRlcykKQEAgLTI3Nyw2ICsyNzYsOCBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBzZXRJdGVtU2VsZWN0b3IoUURlY2xhcmF0aXZlQ29tcG9uZW50Kik7CiAgICAgUURlY2xhcmF0
aXZlQ29tcG9uZW50KiBwcm94eUF1dGhlbnRpY2F0aW9uRGlhbG9nKCkgY29uc3Q7CiAgICAgdm9p
ZCBzZXRQcm94eUF1dGhlbnRpY2F0aW9uRGlhbG9nKFFEZWNsYXJhdGl2ZUNvbXBvbmVudCopOwor
ICAgIFFEZWNsYXJhdGl2ZUNvbXBvbmVudCogZmlsZVBpY2tlcigpIGNvbnN0OworICAgIHZvaWQg
c2V0RmlsZVBpY2tlcihRRGVjbGFyYXRpdmVDb21wb25lbnQqKTsKIAogICAgIFFXZWJWaWV3cG9y
dEluZm8qIHZpZXdwb3J0SW5mbygpOwogCkBAIC0zMjksNiArMzMwLDcgQEAgUV9TSUdOQUxTOgog
ICAgIHZvaWQgYXV0aGVudGljYXRpb25EaWFsb2dDaGFuZ2VkKCk7CiAgICAgdm9pZCBjZXJ0aWZp
Y2F0ZVZlcmlmaWNhdGlvbkRpYWxvZ0NoYW5nZWQoKTsKICAgICB2b2lkIGl0ZW1TZWxlY3RvckNo
YW5nZWQoKTsKKyAgICB2b2lkIGZpbGVQaWNrZXJDaGFuZ2VkKCk7CiAgICAgdm9pZCBkb3dubG9h
ZFJlcXVlc3RlZChRV2ViRG93bmxvYWRJdGVtKiBkb3dubG9hZEl0ZW0pOwogICAgIHZvaWQgcGVy
bWlzc2lvblJlcXVlc3RlZChRV2ViUGVybWlzc2lvblJlcXVlc3QqIHBlcm1pc3Npb24pOwogICAg
IHZvaWQgbWVzc2FnZVJlY2VpdmVkKGNvbnN0IFFWYXJpYW50TWFwJiBtZXNzYWdlKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wX3Au
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wX3AuaApp
bmRleCAzOWExNGE3Li4xMTY3OGZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcF9wLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3BfcC5oCkBAIC01MCw3ICs1MCw2IEBAIGNsYXNzIFFX
ZWJWaWV3cG9ydEluZm87CiAKIFFUX0JFR0lOX05BTUVTUEFDRQogY2xhc3MgUURlY2xhcmF0aXZl
Q29tcG9uZW50OwotY2xhc3MgUUZpbGVEaWFsb2c7CiBRVF9FTkRfTkFNRVNQQUNFCiAKIGNsYXNz
IFFRdWlja1dlYlZpZXdQcml2YXRlIHsKQEAgLTkzLDggKzkyLDYgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCBfcV9jb21taXRTY2FsZUNoYW5nZSgpIHsgfQogICAgIHZvaWQgX3FfY29tbWl0
UG9zaXRpb25DaGFuZ2UoY29uc3QgUVBvaW50RiYpOwogCi0gICAgdm9pZCBfcV9vbk9wZW5QYW5l
bEZpbGVzU2VsZWN0ZWQoKTsKLSAgICB2b2lkIF9xX29uT3BlblBhbmVsRmluaXNoZWQoaW50IHJl
c3VsdCk7CiAgICAgdm9pZCBfcV9vblZpc2libGVDaGFuZ2VkKCk7CiAgICAgdm9pZCBfcV9vblVy
bENoYW5nZWQoKTsKICAgICB2b2lkIF9xX29uUmVjZWl2ZWRSZXNwb25zZUZyb21Eb3dubG9hZChR
V2ViRG93bmxvYWRJdGVtKik7CkBAIC0xNTgsOSArMTU1LDkgQEAgcHJvdGVjdGVkOgogICAgIFFE
ZWNsYXJhdGl2ZUNvbXBvbmVudCogY2VydGlmaWNhdGVWZXJpZmljYXRpb25EaWFsb2c7CiAgICAg
UURlY2xhcmF0aXZlQ29tcG9uZW50KiBpdGVtU2VsZWN0b3I7CiAgICAgUURlY2xhcmF0aXZlQ29t
cG9uZW50KiBwcm94eUF1dGhlbnRpY2F0aW9uRGlhbG9nOworICAgIFFEZWNsYXJhdGl2ZUNvbXBv
bmVudCogZmlsZVBpY2tlcjsKIAogICAgIFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzIHZpZXdw
b3J0QXJndW1lbnRzOwotICAgIFFGaWxlRGlhbG9nKiBmaWxlRGlhbG9nOwogICAgIFdLT3BlblBh
bmVsUmVzdWx0TGlzdGVuZXJSZWYgb3BlblBhbmVsUmVzdWx0TGlzdGVuZXI7CiAKICAgICBib29s
IHVzZXJEaWRPdmVycmlkZUNvbnRlbnRXaWR0aDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvRGVza3RvcEJlaGF2aW9yLnBybyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvRGVza3RvcEJlaGF2
aW9yLnBybwppbmRleCA5ZDE2YTdiLi41Y2Y0NmNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL0Rlc2t0b3BCZWhhdmlvci5wcm8KKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9EZXNrdG9w
QmVoYXZpb3IucHJvCkBAIC0xOSw0ICsxOSw1IEBAIE9USEVSX0ZJTEVTICs9IFwKICAgICBEZXNr
dG9wQmVoYXZpb3IvdHN0X2xpbmtIb3ZlcmVkLnFtbCBcCiAgICAgRGVza3RvcEJlaGF2aW9yL3Rz
dF9sb2FkSHRtbC5xbWwgXAogICAgIERlc2t0b3BCZWhhdmlvci90c3RfbWVzc2FnaW5nLnFtbCBc
Ci0gICAgRGVza3RvcEJlaGF2aW9yL3RzdF9uYXZpZ2F0aW9uUmVxdWVzdGVkLnFtbAorICAgIERl
c2t0b3BCZWhhdmlvci90c3RfbmF2aWdhdGlvblJlcXVlc3RlZC5xbWwgXAorICAgIERlc2t0b3BC
ZWhhdmlvci90c3Rfc2luZ2xlZmlsZXVwbG9hZC5xbWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvRGVza3RvcEJlaGF2aW9yL3RzdF9z
aW5nbGVGaWxlVXBsb2FkLnFtbCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVz
dHMvcW1sdGVzdHMvRGVza3RvcEJlaGF2aW9yL3RzdF9zaW5nbGVGaWxlVXBsb2FkLnFtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43N2U4Yzg3Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9EZXNrdG9w
QmVoYXZpb3IvdHN0X3NpbmdsZUZpbGVVcGxvYWQucW1sCkBAIC0wLDAgKzEsNjUgQEAKK2ltcG9y
dCBRdFF1aWNrIDIuMAoraW1wb3J0IFF0VGVzdCAxLjAKK2ltcG9ydCBRdFdlYktpdCAzLjAKK2lt
cG9ydCBRdFdlYktpdC5leHBlcmltZW50YWwgMS4wCitpbXBvcnQgIi4uL2NvbW1vbiIKKworLy8g
RklYTUU6IEFkZGVkIHRvIERlc2t0b3AgdGVzdHMgYmVjYXVzZSB3ZSB3YW50IHRvIGhhdmUgbW91
c2VDbGljaygpIHRvIG9wZW4gdGhlIDxpbnB1dD4gdGFnLiBXZSBjYW4gbW92ZSBpdCBiYWNrCisv
LyB3aGVuIFRlc3RDYXNlIHN0YXJ0cyBzdXBwb3J0aW5nIHRvdWNoIGV2ZW50cywgc2VlIGh0dHBz
Oi8vYnVncmVwb3J0cy5xdC5ub2tpYS5jb20vYnJvd3NlL1FUQlVHLTIzMDgzLgorVGVzdFdlYlZp
ZXcgeworICAgIGlkOiB3ZWJWaWV3CisKKyAgICB3aWR0aDogNDAwCisgICAgaGVpZ2h0OiA0MDAK
KworICAgIHByb3BlcnR5IGJvb2wgc2VsZWN0RmlsZQorCisgICAgZXhwZXJpbWVudGFsLmZpbGVQ
aWNrZXI6IEl0ZW0geworICAgICAgICBUaW1lciB7CisgICAgICAgICAgICBydW5uaW5nOiB0cnVl
CisgICAgICAgICAgICBpbnRlcnZhbDogMQorICAgICAgICAgICAgb25UcmlnZ2VyZWQ6IHsKKyAg
ICAgICAgICAgICAgICBpZiAoc2VsZWN0RmlsZSkKKyAgICAgICAgICAgICAgICAgICAgbW9kZWwu
YWNjZXB0KCJhY2NlcHRlZGZpbGVuYW1lIik7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgICAgICBtb2RlbC5yZWplY3QoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQor
ICAgIH0KKworICAgIFNpZ25hbFNweSB7CisgICAgICAgIGlkOiB0aXRsZVNweQorICAgICAgICB0
YXJnZXQ6IHdlYlZpZXcKKyAgICAgICAgc2lnbmFsTmFtZTogInRpdGxlQ2hhbmdlZCIKKyAgICB9
CisKKyAgICBUZXN0Q2FzZSB7CisgICAgICAgIGlkOiB0ZXN0CisgICAgICAgIG5hbWU6ICJXZWJW
aWV3U2luZ2xlRmlsZVBpY2tlciIKKyAgICAgICAgd2hlbjogd2luZG93U2hvd24KKworICAgICAg
ICBmdW5jdGlvbiBpbml0KCkgeworICAgICAgICAgICAgd2ViVmlldy51cmwgPSBRdC5yZXNvbHZl
ZFVybCgiLi4vY29tbW9uL3NpbmdsZWZpbGV1cGxvYWQuaHRtbCIpCisgICAgICAgICAgICB2ZXJp
Znkod2ViVmlldy53YWl0Rm9yTG9hZFN1Y2NlZWRlZCgpKQorICAgICAgICAgICAgdGl0bGVTcHku
Y2xlYXIoKQorICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gb3Blbkl0ZW1TZWxlY3Rvcigp
IHsKKyAgICAgICAgICAgIG1vdXNlQ2xpY2sod2ViVmlldywgMTUsIDE1LCBRdC5MZWZ0QnV0dG9u
KQorICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gdGVzdF9hY2NlcHQoKSB7CisgICAgICAg
ICAgICB3ZWJWaWV3LnNlbGVjdEZpbGUgPSB0cnVlOworICAgICAgICAgICAgb3Blbkl0ZW1TZWxl
Y3RvcigpCisgICAgICAgICAgICB0aXRsZVNweS53YWl0KCkgICAgICAgICAgICAKKyAgICAgICAg
ICAgIGNvbXBhcmUod2ViVmlldy50aXRsZSwgImFjY2VwdGVkZmlsZW5hbWUiKQorICAgICAgICB9
CisKKyAgICAgICAgZnVuY3Rpb24gdGVzdF9yZWplY3QoKSB7CisgICAgICAgICAgICB2YXIgb2xk
VGl0bGUgPSB3ZWJWaWV3LnRpdGxlCisgICAgICAgICAgICB3ZWJWaWV3LnNlbGVjdEZpbGUgPSBm
YWxzZTsKKyAgICAgICAgICAgIG9wZW5JdGVtU2VsZWN0b3IoKQorICAgICAgICAgICAgY29tcGFy
ZSh3ZWJWaWV3LnRpdGxlLCBvbGRUaXRsZSkKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvY29tbW9u
L3NpbmdsZWZpbGV1cGxvYWQuaHRtbCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQv
dGVzdHMvcW1sdGVzdHMvY29tbW9uL3NpbmdsZWZpbGV1cGxvYWQuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi42YTRkZTMyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9jb21tb24vc2luZ2xlZmls
ZXVwbG9hZC5odG1sCkBAIC0wLDAgKzEsMjYgQEAKKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBuYW1l
PSJ2aWV3cG9ydCIgaW5pdGlhbC1zY2FsZT0xIj4KKzx0aXRsZT5ObyBmaWxlIHNlbGVjdGVkPC90
aXRsZT4KKzxzY3JpcHQ+CitmdW5jdGlvbiB1cGRhdGVUaXRsZSgpCit7CisgICAgdmFyIGlucCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGZpbGUiKTsKKyAgICB2YXIgYWxsZmlsZXMgPSBu
ZXcgU3RyaW5nKCIiKTsKKyAgICB2YXIgbmFtZT1uZXcgU3RyaW5nKCIiKTsKKyAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IGlucC5maWxlcy5sZW5ndGg7ICsraSkKKyAgICB7CisgICAgICAgIG5hbWUg
PSBpbnAuZmlsZXMuaXRlbShpKS5uYW1lOworICAgICAgICBpZiAoYWxsZmlsZXMubGVuZ3RoPT0w
KQorICAgICAgICAgICAgYWxsZmlsZXMgPSBuYW1lOworICAgICAgICBlbHNlCisgICAgICAgICAg
ICBhbGxmaWxlcyA9IGFsbGZpbGVzICsgIiwiICsgbmFtZTsKKyAgICB9CisgICAgZG9jdW1lbnQu
dGl0bGUgPSBhbGxmaWxlczsKK30KKzwvc2NyaXB0PgorCis8Ym9keT4KKzxpbnB1dCB0eXBlPSJm
aWxlIiBuYW1lPSJmaWxlIiBpZD0idXBmaWxlIiBvbmNoYW5nZT0idXBkYXRlVGl0bGUoKSIvPgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0
L1F0RGlhbG9nUnVubmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdERpYWxv
Z1J1bm5lci5jcHAKaW5kZXggMTZjNjQyOS4uYTBkNDY1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL3F0L1F0RGlhbG9nUnVubmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvcXQvUXREaWFsb2dSdW5uZXIuY3BwCkBAIC0xNjAsNiArMTYwLDMxIEBAIHBy
aXZhdGU6CiAgICAgUVN0cmluZyBtX2hvc3RuYW1lOwogfTsKIAorY2xhc3MgRmlsZVBpY2tlckNv
bnRleHRPYmplY3QgOiBwdWJsaWMgUU9iamVjdCB7CisgICAgUV9PQkpFQ1QKKyAgICBRX1BST1BF
UlRZKFFTdHJpbmdMaXN0IGZpbGVMaXN0IFJFQUQgZmlsZUxpc3QgQ09OU1RBTlQpCisKK3B1Ymxp
YzoKKyAgICBGaWxlUGlja2VyQ29udGV4dE9iamVjdChjb25zdCBRU3RyaW5nTGlzdCYgc2VsZWN0
ZWRGaWxlcykKKyAgICAgICAgOiBRT2JqZWN0KCkKKyAgICAgICAgLCBtX2ZpbGVMaXN0KHNlbGVj
dGVkRmlsZXMpCisgICAgeworICAgIH0KKworICAgIFFTdHJpbmdMaXN0IGZpbGVMaXN0KCkgY29u
c3Qge3JldHVybiBtX2ZpbGVMaXN0OyB9CisKK3B1YmxpYyBzbG90czoKKyAgICB2b2lkIHJlamVj
dCgpIHsgZW1pdCByZWplY3RlZCgpO30KKyAgICB2b2lkIGFjY2VwdChjb25zdCBRVmFyaWFudCYg
cGF0aCkgeyBlbWl0IGZpbGVTZWxlY3RlZCgocGF0aC50b1N0cmluZ0xpc3QoKSkpOyB9CisKK3Np
Z25hbHM6CisgICAgdm9pZCByZWplY3RlZCgpOworICAgIHZvaWQgZmlsZVNlbGVjdGVkKGNvbnN0
IFFTdHJpbmdMaXN0Jik7CisKK3ByaXZhdGU6CisgICAgUVN0cmluZ0xpc3QgbV9maWxlTGlzdDsK
K307CisKIGJvb2wgUXREaWFsb2dSdW5uZXI6OmluaXRGb3JBbGVydChRRGVjbGFyYXRpdmVDb21w
b25lbnQqIGNvbXBvbmVudCwgUVF1aWNrSXRlbSogZGlhbG9nUGFyZW50LCBjb25zdCBRU3RyaW5n
JiBtZXNzYWdlKQogewogICAgIERpYWxvZ0NvbnRleHRPYmplY3QqIGNvbnRleHRPYmplY3QgPSBu
ZXcgRGlhbG9nQ29udGV4dE9iamVjdChtZXNzYWdlKTsKQEAgLTIzMyw2ICsyNTgsMTkgQEAgYm9v
bCBRdERpYWxvZ1J1bm5lcjo6aW5pdEZvckNlcnRpZmljYXRlVmVyaWZpY2F0aW9uKFFEZWNsYXJh
dGl2ZUNvbXBvbmVudCogY29tcG8KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCBRdERpYWxv
Z1J1bm5lcjo6aW5pdEZvckZpbGVQaWNrZXIoUURlY2xhcmF0aXZlQ29tcG9uZW50KiBjb21wb25l
bnQsIFFRdWlja0l0ZW0qIGRpYWxvZ1BhcmVudCwgY29uc3QgUVN0cmluZ0xpc3QmIHNlbGVjdGVk
RmlsZXMpCit7CisgICAgRmlsZVBpY2tlckNvbnRleHRPYmplY3QqIGNvbnRleHRPYmplY3QgPSBu
ZXcgRmlsZVBpY2tlckNvbnRleHRPYmplY3Qoc2VsZWN0ZWRGaWxlcyk7CisgICAgaWYgKCFjcmVh
dGVEaWFsb2coY29tcG9uZW50LCBkaWFsb2dQYXJlbnQsIGNvbnRleHRPYmplY3QpKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyAgICBjb25uZWN0KGNvbnRleHRPYmplY3QsIFNJR05BTChmaWxl
U2VsZWN0ZWQoY29uc3QgUVN0cmluZ0xpc3QmKSksIFNMT1Qob25GaWxlU2VsZWN0ZWQoY29uc3Qg
UVN0cmluZ0xpc3QmKSkpOworICAgIGNvbm5lY3QoY29udGV4dE9iamVjdCwgU0lHTkFMKGZpbGVT
ZWxlY3RlZChjb25zdCBRU3RyaW5nTGlzdCYpKSwgU0xPVChxdWl0KCkpKTsKKyAgICBjb25uZWN0
KGNvbnRleHRPYmplY3QsIFNJR05BTChyZWplY3RlZCgpKSwgU0xPVChxdWl0KCkpKTsKKworICAg
IHJldHVybiB0cnVlOworfQorCiBib29sIFF0RGlhbG9nUnVubmVyOjpjcmVhdGVEaWFsb2coUURl
Y2xhcmF0aXZlQ29tcG9uZW50KiBjb21wb25lbnQsIFFRdWlja0l0ZW0qIGRpYWxvZ1BhcmVudCwg
UU9iamVjdCogY29udGV4dE9iamVjdCkKIHsKICAgICBRRGVjbGFyYXRpdmVDb250ZXh0KiBiYXNl
Q29udGV4dCA9IGNvbXBvbmVudC0+Y3JlYXRpb25Db250ZXh0KCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXREaWFsb2dSdW5uZXIuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9xdC9RdERpYWxvZ1J1bm5lci5oCmluZGV4IDdmYmFjZTEuLjM0MTkyYjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdERpYWxvZ1J1bm5lci5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdERpYWxvZ1J1bm5lci5oCkBAIC0yMiw2
ICsyMiw3IEBACiAjZGVmaW5lIFF0RGlhbG9nUnVubmVyX2gKIAogI2luY2x1ZGUgPFF0Q29yZS9R
RXZlbnRMb29wPgorI2luY2x1ZGUgPFF0Q29yZS9RU3RyaW5nTGlzdD4KICNpbmNsdWRlIDx3dGYv
T3duUHRyLmg+CiAKIGNsYXNzIFFEZWNsYXJhdGl2ZUNvbXBvbmVudDsKQEAgLTQxLDYgKzQyLDcg
QEAgcHVibGljOgogICAgIGJvb2wgaW5pdEZvckF1dGhlbnRpY2F0aW9uKFFEZWNsYXJhdGl2ZUNv
bXBvbmVudCosIFFRdWlja0l0ZW0qIGRpYWxvZ1BhcmVudCwgY29uc3QgUVN0cmluZyYgaG9zdG5h
bWUsIGNvbnN0IFFTdHJpbmcmIHJlYWxtLCBjb25zdCBRU3RyaW5nJiBwcmVmaWxsZWRVc2VybmFt
ZSk7CiAgICAgYm9vbCBpbml0Rm9yQ2VydGlmaWNhdGVWZXJpZmljYXRpb24oUURlY2xhcmF0aXZl
Q29tcG9uZW50KiwgUVF1aWNrSXRlbSosIGNvbnN0IFFTdHJpbmcmIGhvc3RuYW1lKTsKICAgICBi
b29sIGluaXRGb3JQcm94eUF1dGhlbnRpY2F0aW9uKFFEZWNsYXJhdGl2ZUNvbXBvbmVudCosIFFR
dWlja0l0ZW0qLCBjb25zdCBRU3RyaW5nJiBob3N0bmFtZSwgdWludDE2X3QgcG9ydCwgY29uc3Qg
UVN0cmluZyYgcHJlZmlsbGVkVXNlcm5hbWUpOworICAgIGJvb2wgaW5pdEZvckZpbGVQaWNrZXIo
UURlY2xhcmF0aXZlQ29tcG9uZW50KiwgUVF1aWNrSXRlbSosIGNvbnN0IFFTdHJpbmdMaXN0JiBz
ZWxlY3RlZEZpbGVzKTsKIAogICAgIFFRdWlja0l0ZW0qIGRpYWxvZygpIGNvbnN0IHsgcmV0dXJu
IG1fZGlhbG9nLmdldCgpOyB9CiAKQEAgLTUwLDYgKzUyLDggQEAgcHVibGljOgogICAgIFFTdHJp
bmcgdXNlcm5hbWUoKSBjb25zdCB7IHJldHVybiBtX3VzZXJuYW1lOyB9CiAgICAgUVN0cmluZyBw
YXNzd29yZCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFzc3dvcmQ7IH0KIAorICAgIFFTdHJpbmdMaXN0
IGZpbGVQYXRoKCkgY29uc3QgeyByZXR1cm4gbV9maWxlcGF0aDsgfQorCiBwdWJsaWMgc2xvdHM6
CiAgICAgdm9pZCBvbkFjY2VwdGVkKGNvbnN0IFFTdHJpbmcmIHJlc3VsdCA9IFFTdHJpbmcoKSkK
ICAgICB7CkBAIC02Myw2ICs2NywxMiBAQCBwdWJsaWMgc2xvdHM6CiAgICAgICAgIG1fcGFzc3dv
cmQgPSBwYXNzd29yZDsKICAgICB9CiAKKyAgICB2b2lkIG9uRmlsZVNlbGVjdGVkKGNvbnN0IFFT
dHJpbmdMaXN0JiBmaWxlUGF0aCkKKyAgICB7CisgICAgICAgIG1fd2FzQWNjZXB0ZWQgPSB0cnVl
OworICAgICAgICBtX2ZpbGVwYXRoID0gZmlsZVBhdGg7CisgICAgfQorCiBwcml2YXRlOgogICAg
IGJvb2wgY3JlYXRlRGlhbG9nKFFEZWNsYXJhdGl2ZUNvbXBvbmVudCosIFFRdWlja0l0ZW0qIGRp
YWxvZ1BhcmVudCwgUU9iamVjdCogY29udGV4dE9iamVjdCk7CiAKQEAgLTczLDYgKzgzLDcgQEAg
cHJpdmF0ZToKIAogICAgIFFTdHJpbmcgbV91c2VybmFtZTsKICAgICBRU3RyaW5nIG1fcGFzc3dv
cmQ7CisgICAgUVN0cmluZ0xpc3QgbV9maWxlcGF0aDsKIH07CiAKICNlbmRpZiAvLyBRdERpYWxv
Z1J1bm5lcl9oCmRpZmYgLS1naXQgYS9Ub29scy9NaW5pQnJvd3Nlci9xdC9NaW5pQnJvd3Nlci5x
cmMgYi9Ub29scy9NaW5pQnJvd3Nlci9xdC9NaW5pQnJvd3Nlci5xcmMKaW5kZXggZTAwYzUxZS4u
ZTZlMmYxNCAxMDA2NDQKLS0tIGEvVG9vbHMvTWluaUJyb3dzZXIvcXQvTWluaUJyb3dzZXIucXJj
CisrKyBiL1Rvb2xzL01pbmlCcm93c2VyL3F0L01pbmlCcm93c2VyLnFyYwpAQCAtOCw2ICs4LDkg
QEAKICAgICAgICAgPGZpbGU+aWNvbnMvc3RvcC5wbmc8L2ZpbGU+CiAgICAgICAgIDxmaWxlPmlj
b25zL3RvdWNoLnBuZzwvZmlsZT4KICAgICAgICAgPGZpbGU+aWNvbnMvdG91Y2hwb2ludC5wbmc8
L2ZpbGU+CisgICAgICAgIDxmaWxlPmljb25zL2ZvbGRlci5wbmc8L2ZpbGU+CisgICAgICAgIDxm
aWxlPmljb25zL3VwLnBuZzwvZmlsZT4KKyAgICAgICAgPGZpbGU+aWNvbnMvdGl0bGViYXIucG5n
PC9maWxlPgogICAgICAgICA8ZmlsZT5xbWwvQWxlcnREaWFsb2cucW1sPC9maWxlPgogICAgICAg
ICA8ZmlsZT5xbWwvQXV0aGVudGljYXRpb25EaWFsb2cucW1sPC9maWxlPgogICAgICAgICA8Zmls
ZT5xbWwvQnJvd3NlcldpbmRvdy5xbWw8L2ZpbGU+CkBAIC0xNSw2ICsxOCw3IEBACiAgICAgICAg
IDxmaWxlPnFtbC9EaWFsb2cucW1sPC9maWxlPgogICAgICAgICA8ZmlsZT5xbWwvRGlhbG9nQnV0
dG9uLnFtbDwvZmlsZT4KICAgICAgICAgPGZpbGU+cW1sL0RpYWxvZ0xpbmVJbnB1dC5xbWw8L2Zp
bGU+CisgICAgICAgIDxmaWxlPnFtbC9GaWxlUGlja2VyLnFtbDwvZmlsZT4KICAgICAgICAgPGZp
bGU+cW1sL0l0ZW1TZWxlY3Rvci5xbWw8L2ZpbGU+CiAgICAgICAgIDxmaWxlPnFtbC9Nb2NrVG91
Y2hQb2ludC5xbWw8L2ZpbGU+CiAgICAgICAgIDxmaWxlPnFtbC9Qcm9tcHREaWFsb2cucW1sPC9m
aWxlPgpkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dzZXIvcXQvaWNvbnMvZm9sZGVyLnBuZyBi
L1Rvb2xzL01pbmlCcm93c2VyL3F0L2ljb25zL2ZvbGRlci5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTUzZTJh
ZDQ2NGViOTkzMjU2YTZjMzU2N2ZjOTQwNDk4ZTI2ZmM4YgpHSVQgYmluYXJ5IHBhdGNoCmxpdGVy
YWwgMTg0MQp6Y21WLTEyaFJBM1ApPGg7M0t8TGswMDBlMU5KTFRxMDAxQlcwMDFCZTFeQHM2Yjkj
RjgwMDAwNGIzI2N9Mm5ZeFcKemQ8Yk5TMDAwMDlhN2JCbTAwMCQhMDAwJCEwWSY9IXA4eDs9OEZX
UWhiVz85O2JhIUVMV2RMX35jUD9wZVlqYX5eCnphQWh1VWElWT9GSlFASDEyQ2hqJkt+enxVeV9S
V2dSTSE+OXxMNDlwYCN4VTRHWkA8dzt+NExJeiR2ekkwVypOMwp6a2BeX0JHKlYzeHNhdWl7RU54
Uk1Ra0FIYihueWc9LUJiZEhCclQ7Uk8pVX5xbHRke3BUazRlNSFWcmFrODlYKyYKem5aQEpyJSRw
Z3the0l3SEhmQnNiQ0dBZ29BRmwzdT1sJCtFPWV+RHxiQj8oZmpvT3RKNzVVRV40QkE/flVhYk93
CnpjfDg4MXZ1N0BEOVVVRi16VDwmPUslNn13QjIjbTc8O09wSD5mdlFldmVPaE12bGVvPjAwOGlm
TzhJR05oTDZsPAp6e2FVWnJmQSglY0V0ZDM2ckRiYH41aCZpQD8+aDROPVo+U0NeTVM3djBQcjNB
aFB2V3shWXRDODxXUTwrcldhWSUKemtTblYrTUVHRlFCSjsrUDUkYHxkMXx1VG5pal9zaitTPT81
eHdjRj5LcDY3e1llejxXRktwYmoodEc7VWclK1BMCnphUGUqZUE8dzhjVztFNXk3JTMzK2QhVyl0
VTsrbSpMU0RXWjgoT1E/OGpiUkpNTWVIZ0p2fj9WMHRmKn1EPUVwXwp6eWskJCVeWXp+LShrKEJ9
VnBAWTcwMXllcVNVN0FeNl9zUkxtbl9OWEUtQjZYUDQ5KGsmJj8rZ19LbDVDaClnR3wKelUkR2ZK
cEFYSn5ZWH01OTIhKnxmYjJrPVM2SWswKXJwak10LVN5eT1we0ZfTFQmR2khSVpZP2EkOyVLa3Yo
JTYpCnoxYU9gSjBMWWFMYXdVVVNaLVQqQ3B8Vj1qZXBYJl8tX285Y1U7VGJrZmp9U31rSHVwRTBI
ZV9lcXB8WVZXRlFiZwp6ZX01a288YnEhN1ZLJj5haW8qKmdCcHtQQnM1QW5BMVNUZEROdmFKUCVy
YUUzJGRVUXxISUxZQVN0dEFZaEYtbSsKejFYM15AaSUkdjZNWFN9S3NIcDdMU2R0Xy1vZXFycGg5
T0JGZ283QFMtfnpGRCgmcXN7NVBgYi1KZit2Oy0+PWlECnp8MyVaPWtjZ0g3YyZ3OzZge3gjbVJo
NjUyS2d2cTAoOXFDYF43OFV8MUl7S0FpTkhERmZaS0JlTENKJH4jRCE/JAp6MXtrfEBMQm9SKmp7
TkQ9Mm13JFA2bDVSVHc1aUZTbzBxMEVuS2ghPnRjNF4rO0pQYDZEXzJ+JmJaRyNxbl9BRzsKel9C
aGhoKC0kTkkwTVRkXmdNJl90eFNSK0MrPnBYSTVzM34wNmIxbWl4YVlXK1kmT2VsZHclYFlIZEFf
dE8qaFY1Cno1XilpaXppe0xJNkJrZmp5JFU7Ynt1RkFwZGNoKm8jOX1jeDlETyp+e1RGY04hSCVh
cGg4YmYqdEhDX34lSz9CMQp6RiUlWFZAI0FNMnExQ3ozYHBfREBAPTgxNkAlZHw9M3tlemV1YEVG
PnN6N2pEMVVMczleTikzWStJQExKMGYtVlAKenQ0em52LVJtJGtAK3EyfD4oU1pTblVhSmMycHwj
PWleYWpnIUNXYH1gfkxkb0MhVW1vaHpVSG4lOERKaypRMlpKCnpEODlMLTVlfG5WYnBafUEmVXg+
M2hzIWZJQ1opNnowOHB3cFN+bEE3I0ZPPVM7Pm9RemFeIUdJMHNzZENmS1dLUAp6fE5ScF47Z2sp
Z05Ydzk2PVdhWHgrNUlscys4I3FGNnFAJjVBXzcyJiNTLThnIX5oQHwycEBYKSohaSpsUnNhQnEK
ek1Ye2xeMDFadGB2OTZeTnl9aUJqLXBmY3BKVS1kPDM7O09pez5WaEVgfD1rPF91X3k9QV9pK1Yh
P1ZCbUhsQlpCCno3dXdyalBBKkdxc3QyWUAwMDNeNmZBOENHclBocXxBO15PRyFIPTVKKkxNemtf
d0dxJWZjUnR5VyZ9OXJVNihFbgp6MkVGYkc1e1d4Y052U2RzXmByRyRyNUdPVyNsZUZJWmt3QWEh
S0A0YktwK3Q2eGJvI3FJSW80XmFaTW1QJnRHayEKekw/IX13Y3VOaD1mQSNAN0pPNEgjekBgUTBj
N2dIbigyS3ZfY2w1S3ZoZDw8bDEzbkQpaGNSKl5mez5LajdqSEo5Cnp1b3Y0TlpOI3k2LW9VOS1U
PnZKeDstbTw+e1hEPXFfWERVUnFLcT9WRjg7MnRGbFYhVUwjPmRQWWteRzhwZmAlcAp6Pk8+SHdD
Sn5Uc1ZFZn1PKnRLSF55MUc3ckQ5V1k7aHxONkBPcENZeFkjfTEqPkFDdWgmNmY0Y1JTbCl1Mk9l
MEMKelFJODBuVVdERXRMSiR7ajUpMktYcSU8NGQtUUJrYEsqVGBGal4pVzlxTG1xJGhKKTJyMV4y
SU9zVWZYSzRVSkJPCnotWTd6JFV8JF5vZmIrVF5BQUxCQ3Q9a15LJCojOT9zTilAMShoTVluYkFB
QFVhdzBPRkpsVjZxeEgkS18+K1E5fAp6KChKYGhDPmFiIThQcjxndH0oSzZeY1dwSTRAcmB5N0xg
SDxsMGlnMiUrSSZ9cztRfD1Vc0Y+RXhtPWorNlRKdz0Kemw5JVZxWCRPVnxXaVhtIWM7bUpBLTFq
NmZPUWIzeik2aHtAVFVmZXdUe1VVY0QoTGhnYlZlQ3V2ZkQpPjtXKy0jCnplaX11a0lyIXUyQyV6
dG1TdDVGK1F1YjA9YEYpU3QqVmw/eFliTW0xJCpkPzxHdnpzUHs3WDBvLThncjtfdjtteQp6QmVU
N3J6YEFlcz5QbGwoKWlOailsTVNvVWlFdiZZJE00KCE0ITZ0aVVUX25wM2dgUilmQ0VIU3dzXjZy
cXBxJjcKemE/UDQqUW1ZbHZYcTdPVHdENVl5PjNeMWl4ZSQ/N3JJem9qRDlfKCt4N1Vpa3VefDNA
Xyt2amY9bH1QTWhgd2pECmZFcHA0ezs+M1JkJiErWU56d0FiZTAwMDAwTmt2WFh1MG1qZk1IKjwt
CgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9Ub29scy9NaW5pQnJvd3Nlci9x
dC9pY29ucy90aXRsZWJhci5wbmcgYi9Ub29scy9NaW5pQnJvd3Nlci9xdC9pY29ucy90aXRsZWJh
ci5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZjNkMThhYTgyZTkzZDg5OWFmODNhOWQ4NmI4YzBhYWMxZjZlYTJh
MgpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMTk3CnpjbWVBU0BOPyhvbEh5YHVWQnEhaWEwdnBe
MjAqT0MhMn40Tmwma0A5Nz5rNDRvZnlgZ2xYKGZgdSV0V3NJeDtZOQp6P0MxV0kkT2AwaDdJO0oh
R2NYOTFmSDMyfEgyRGdrVjNlbmVWQFFQaStlO2UtODROZyU3X2c9TXVhdDFxWk4wcWYKejtndEVj
LT01dkh6M3VwR1Z2RXFFaEFMPzw1MmpiUzhqNzROd2w4Y15TI1lsbnphVj9makwwbks3eFFsY1pE
SF9xCkxePmJQMGwrWGtLPztTdSgKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBh
L1Rvb2xzL01pbmlCcm93c2VyL3F0L2ljb25zL3VwLnBuZyBiL1Rvb2xzL01pbmlCcm93c2VyL3F0
L2ljb25zL3VwLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMDVmODAyNWQwMTU3YTVlN2IyNzkyYjA1OGNkYjQ1
NTNiMWQ2YmZmCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCA2NjIKemNtVjtIMCVgcTtQKTxoOzNL
fExrMDAwZTFOSkxUcTAwMHNJMDAwc1ExXkBzNlI/ZCFCMDAwMDFiNWNoXzBJdHApCno9PlB4IzI0
WUpgTDsoSyl7e2E3Pnl7RDReMDAwU2FOTGgwTDAxRmNVMDFGY1YwR2daXzAwMDA3YlYqR2AyaVhT
QAp6MDU9cW8wVF9WKjAwSV9DTF90KEklZXxEKFlaRX5mJDNKZ29IYCRtM0B9b15td1RkMUQ1JXB4
WDIxOFhXZGhwO00KenBodyRfKVJXJTREfHFrQ0tmd1AkNUVNS31RTil2PTJyNS1jSEVEaXFsYlk9
OGRneUsmKGwrWUYyYWckO25hfSZhCnpuZkNfJXFna1BrSDJzSjVRWUB9LVlnO1pFRlgjWChmY2FN
PzZSRVZsYz03N04maD1aOXl+REAhUT1rSUd7I0tEXwp6RWQ/aUctOG5iQXw3TGtNP2QtYF9idm5+
SztJPXVzKjVyZTRfJiUmYDglUyNAV09CfktzWS1FZmBhKTlzZEt1JXAKeldiJngmNz9XPDM2WVUx
P2U4VkB1LXdqa3VydEdfPyU3d1lnPHNAUVBAcjtYNzBhYDtZNTgxcXdueVZiQ3VrYXFXCnpWMXVC
JnNrRDhzZTctYjRKKEpXcnpKbGtxUH51fUwoNHB0QGtRPGtZV31RUnpBQUFENzAlajAmPEA4SyE7
cDl7Jgp6OCVzMlI0b2R0QEttPVFOIThmUT5PNz9aVDxRcH5LMEpUOS09Z1VYJCpVTSsjY3koRDcm
end5RkoqKV5LVUBLXkAKeiFzN2tGeWp8aXxxc0FsUEhQQlpCcHdHWXE7Rl8lK2wxPkkmenpXP0Nm
dEcqPk88KjIpMDt+aTZWOHNUMjJYc1ppCnprXm9CdXM0eWpeS3RnNVZVS2R5Y2BhbSNUYGF4NzVJ
KmNBY2xtZXh9UilQPmpLfjN+KEpOQSRlQWloQy01Q0hgVQp6OCo/cWV0Xz9ZQ2V5aTJ+YFFtd2Ql
eWw7b2l3YzFQe1hRNSZFbE8hQ187eiFFOF5IMGZ1aztTLUY5REIlYzYxZG8KdztfSFkzYWxqcns0
RGBhKytFZ1ZZeD9lYEQyU1gjajBzWHE5R1M9YXVOZE4hPDA3KnFvTTZOPCRnOGJuaE1nUlorCgps
aXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9Ub29scy9NaW5pQnJvd3Nlci9xdC9x
bWwvQnJvd3NlcldpbmRvdy5xbWwgYi9Ub29scy9NaW5pQnJvd3Nlci9xdC9xbWwvQnJvd3Nlcldp
bmRvdy5xbWwKaW5kZXggYjRlNmUyNC4uY2Y3NGIyMiAxMDA2NDQKLS0tIGEvVG9vbHMvTWluaUJy
b3dzZXIvcXQvcW1sL0Jyb3dzZXJXaW5kb3cucW1sCisrKyBiL1Rvb2xzL01pbmlCcm93c2VyL3F0
L3FtbC9Ccm93c2VyV2luZG93LnFtbApAQCAtMzEzLDYgKzMxMyw3IEBAIFJlY3RhbmdsZSB7CiAg
ICAgICAgIGV4cGVyaW1lbnRhbC5wcm9tcHREaWFsb2c6IFByb21wdERpYWxvZyB7IH0KICAgICAg
ICAgZXhwZXJpbWVudGFsLmF1dGhlbnRpY2F0aW9uRGlhbG9nOiBBdXRoZW50aWNhdGlvbkRpYWxv
ZyB7IH0KICAgICAgICAgZXhwZXJpbWVudGFsLnByb3h5QXV0aGVudGljYXRpb25EaWFsb2c6IFBy
b3h5QXV0aGVudGljYXRpb25EaWFsb2cgeyB9CisgICAgICAgIGV4cGVyaW1lbnRhbC5maWxlUGlj
a2VyOiBGaWxlUGlja2VyIHsgfQogCiAgICAgICAgIFNjcm9sbEluZGljYXRvciB7CiAgICAgICAg
ICAgICBmbGlja2FibGVJdGVtOiB3ZWJWaWV3LmV4cGVyaW1lbnRhbC5mbGlja2FibGUKZGlmZiAt
LWdpdCBhL1Rvb2xzL01pbmlCcm93c2VyL3F0L3FtbC9GaWxlUGlja2VyLnFtbCBiL1Rvb2xzL01p
bmlCcm93c2VyL3F0L3FtbC9GaWxlUGlja2VyLnFtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi40NDUxMGM5Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvTWluaUJyb3dzZXIv
cXQvcW1sL0ZpbGVQaWNrZXIucW1sCkBAIC0wLDAgKzEsMjAzIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEyIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQor
ICoKKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworaW1wb3J0IFF0UXVpY2sgMi4wCitp
bXBvcnQgUXQubGFicy5mb2xkZXJsaXN0bW9kZWwgMS4wCisKK1JlY3RhbmdsZSB7CisgICAgaWQ6
IHJvb3QKKworICAgIHByb3BlcnR5IFF0T2JqZWN0IGZpbGVNb2RlbDogbW9kZWwKKyAgICBwcm9w
ZXJ0eSBhbGlhcyBmb2xkZXI6IGZvbGRlcnMuZm9sZGVyCisKKyAgICBjb2xvcjogIndoaXRlIgor
ICAgIHdpZHRoOiA0MDAKKyAgICBoZWlnaHQ6IDUwMAorCisgICAgYm9yZGVyIHsKKyAgICAgICAg
d2lkdGg6IDEKKyAgICAgICAgY29sb3I6ICIjYmZiZmJmIgorICAgIH0KKworICAgIHNtb290aDog
dHJ1ZQorICAgIHJhZGl1czogNQorCisgICAgYW5jaG9ycy5jZW50ZXJJbjogcGFyZW50CisKKyAg
ICBCb3JkZXJJbWFnZSB7CisgICAgICAgIHNvdXJjZTogIi4uL2ljb25zL3RpdGxlYmFyLnBuZyI7
CisgICAgICAgIHdpZHRoOiBwYXJlbnQud2lkdGg7CisgICAgICAgIGhlaWdodDogNTAKKyAgICAg
ICAgeTogLTcKKyAgICAgICAgaWQ6IHRpdGxlQmFyCisKKyAgICAgICAgYW5jaG9ycyB7CisgICAg
ICAgICAgICB0b3A6IHBhcmVudC50b3AKKyAgICAgICAgICAgIGJvdHRvbTogZm9sZGVyTGlzdC50
b3AKKyAgICAgICAgfQorICAgICAgICBSZWN0YW5nbGUgeworICAgICAgICAgICAgaWQ6IHVwQnV0
dG9uCisgICAgICAgICAgICB3aWR0aDogNDgKKyAgICAgICAgICAgIGhlaWdodDogdGl0bGVCYXIu
aGVpZ2h0IC0gNworICAgICAgICAgICAgY29sb3I6ICJ0cmFuc3BhcmVudCIKKyAgICAgICAgICAg
IEltYWdlIHsgYW5jaG9ycy5jZW50ZXJJbjogcGFyZW50OyBzb3VyY2U6ICIuLi9pY29ucy91cC5w
bmciIH0KKyAgICAgICAgICAgIE1vdXNlQXJlYSB7IGlkOiB1cFJlZ2lvbjsgYW5jaG9ycy5jZW50
ZXJJbjogcGFyZW50CisgICAgICAgICAgICAgICAgd2lkdGg6IDQ4CisgICAgICAgICAgICAgICAg
aGVpZ2h0OiA0OAorICAgICAgICAgICAgICAgIG9uQ2xpY2tlZDogaWYgKGZvbGRlcnMucGFyZW50
Rm9sZGVyICE9ICIiKSB1cCgpCisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBS
ZWN0YW5nbGUgeworICAgICAgICAgICAgY29sb3I6ICJncmF5IgorICAgICAgICAgICAgeDogNDgK
KyAgICAgICAgICAgIHdpZHRoOiAxCisgICAgICAgICAgICBoZWlnaHQ6IDQ0CisgICAgICAgIH0K
KworICAgICAgICBUZXh0IHsKKyAgICAgICAgICAgIGFuY2hvcnMgeworICAgICAgICAgICAgICAg
IGxlZnQ6IHVwQnV0dG9uLnJpZ2h0CisgICAgICAgICAgICAgICAgcmlnaHQ6IHBhcmVudC5yaWdo
dAorICAgICAgICAgICAgICAgIGxlZnRNYXJnaW46IDQKKyAgICAgICAgICAgICAgICByaWdodE1h
cmdpbjogNAorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBoZWlnaHQ6IHBhcmVudC5oZWln
aHQKKworICAgICAgICAgICAgdGV4dDogZm9sZGVycy5mb2xkZXIKKyAgICAgICAgICAgIGNvbG9y
OiAid2hpdGUiCisgICAgICAgICAgICBlbGlkZTogVGV4dC5FbGlkZUxlZnQ7CisgICAgICAgICAg
ICBob3Jpem9udGFsQWxpZ25tZW50OiBUZXh0LkFsaWduTGVmdDsKKyAgICAgICAgICAgIHZlcnRp
Y2FsQWxpZ25tZW50OiBUZXh0LkFsaWduVkNlbnRlcgorICAgICAgICAgICAgZm9udC5waXhlbFNp
emU6IDI0CisgICAgICAgIH0KKyAgICB9CisKKyAgICBMaXN0VmlldyB7CisgICAgICAgIGlkOiBm
b2xkZXJMaXN0CisKKyAgICAgICAgd2lkdGg6IHBhcmVudC53aWR0aAorICAgICAgICBoZWlnaHQ6
IDQwMAorICAgICAgICBhbmNob3JzLmNlbnRlckluOiBwYXJlbnQKKyAgICAgICAgc3BhY2luZzog
MgorCisgICAgICAgIGNsaXA6IHRydWUKKworICAgICAgICBGb2xkZXJMaXN0TW9kZWwgeworICAg
ICAgICAgICAgaWQ6IGZvbGRlcnMKKyAgICAgICAgfQorCisgICAgICAgIENvbXBvbmVudCB7Cisg
ICAgICAgICAgICBpZDogZmlsZURlbGVnYXRlCisKKyAgICAgICAgICAgIFJlY3RhbmdsZSB7Cisg
ICAgICAgICAgICAgICAgZnVuY3Rpb24gc2VsZWN0ZWQoKSB7CisgICAgICAgICAgICAgICAgICAg
IGlmIChmb2xkZXJzLmlzRm9sZGVyKGluZGV4KSkKKyAgICAgICAgICAgICAgICAgICAgICAgIG9w
ZW5Gb2xkZXIoZmlsZVBhdGgpOworICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAg
ICAgICAgICAgICAgICBmaWxlTW9kZWwuYWNjZXB0KGZpbGVQYXRoKTsKKyAgICAgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgICAgICBoZWlnaHQ6IDUwCisgICAgICAgICAgICAgICAgd2lkdGg6
IHBhcmVudC53aWR0aAorICAgICAgICAgICAgICAgIGNvbG9yOiBmb2xkZXJzLmlzRm9sZGVyKGlu
ZGV4KSA/ICJsaWdodGdyYXkiOiAiZGFya2dyYXkiCisKKyAgICAgICAgICAgICAgICBJdGVtIHsK
KyAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDQ4OworICAgICAgICAgICAgICAgICAgICBoZWln
aHQ6IDQ4CisgICAgICAgICAgICAgICAgICAgIEltYWdlIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHNvdXJjZTogIi4uL2ljb25zL2ZvbGRlci5wbmciCisgICAgICAgICAgICAgICAgICAgICAg
ICBhbmNob3JzLmNlbnRlckluOiBwYXJlbnQKKyAgICAgICAgICAgICAgICAgICAgICAgIHZpc2li
bGU6IGZvbGRlcnMuaXNGb2xkZXIoaW5kZXgpCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBUZXh0IHsKKyAgICAgICAgICAgICAgICAg
ICAgYW5jaG9ycy5jZW50ZXJJbjogcGFyZW50CisgICAgICAgICAgICAgICAgICAgIGFuY2hvcnMu
bGVmdE1hcmdpbjogNTAKKyAgICAgICAgICAgICAgICAgICAgdGV4dDogZmlsZU5hbWUKKyAgICAg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBNb3VzZUFyZWEgeworICAgICAgICAgICAg
ICAgICAgICBhbmNob3JzLmZpbGw6IHBhcmVudAorICAgICAgICAgICAgICAgICAgICBvbkNsaWNr
ZWQ6IHNlbGVjdGVkKCk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICB9CisgICAg
ICAgIH0KKworICAgICAgICBtb2RlbDogZm9sZGVycworICAgICAgICBkZWxlZ2F0ZTogZmlsZURl
bGVnYXRlCisKKyAgICB9CisKKyAgICBSZWN0YW5nbGUgeworCisgICAgICAgIGlkOiBidXR0b24K
KyAgICAgICAgYm9yZGVyIHsKKyAgICAgICAgICAgIHdpZHRoOiAxCisgICAgICAgICAgICBjb2xv
cjogIiNiZmJmYmYiCisgICAgICAgIH0KKyAgICAgICAgaGVpZ2h0OiA1MAorCisgICAgICAgIGFu
Y2hvcnMgeworICAgICAgICAgICAgYm90dG9tOiBwYXJlbnQuYm90dG9tCisgICAgICAgICAgICB0
b3A6IGZvbGRlckxpc3QuYm90dG9tCisgICAgICAgICAgICBsZWZ0OiBwYXJlbnQubGVmdAorICAg
ICAgICAgICAgcmlnaHQ6IHBhcmVudC5yaWdodAorICAgICAgICB9CisKKyAgICAgICAgRGlhbG9n
QnV0dG9uIHsKKyAgICAgICAgICAgIGlkOiBjYW5jZWwKKyAgICAgICAgICAgIHRleHQ6ICJDYW5j
ZWwiCisgICAgICAgICAgICBhbmNob3JzIHsKKyAgICAgICAgICAgICAgICBob3Jpem9udGFsQ2Vu
dGVyOiBwYXJlbnQuaG9yaXpvbnRhbENlbnRlcjsKKyAgICAgICAgICAgICAgICB2ZXJ0aWNhbENl
bnRlcjogIHBhcmVudC52ZXJ0aWNhbENlbnRlcgorICAgICAgICAgICAgfQorCisgICAgICAgICAg
ICBvbkNsaWNrZWQ6CisgICAgICAgICAgICAgICAgZmlsZU1vZGVsLnJlamVjdCgpICAgICAgICAg
ICAgCisgICAgICAgIH0KKworICAgIH0KKworICAgIGZ1bmN0aW9uIG9wZW5Gb2xkZXIocGF0aCkg
eworICAgICAgICBmb2xkZXJzLmZvbGRlciA9IHBhdGg7CisgICAgfQorCisgICAgZnVuY3Rpb24g
dXAoKSB7CisgICAgICAgIHZhciBwYXRoID0gZm9sZGVycy5wYXJlbnRGb2xkZXI7CisgICAgICAg
IGZvbGRlcnMuZm9sZGVyID0gcGF0aDsKKyAgICB9CisKK30KKworCisKKworCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131918</attachid>
            <date>2012-03-14 13:59:17 -0700</date>
            <delta_ts>2012-03-15 09:48:53 -0700</delta_ts>
            <desc>Patch using qml based file picker</desc>
            <filename>80854_qmldialog.patch</filename>
            <type>text/plain</type>
            <size>29276</size>
            <attacher name="Dinu Jacob">dinu.jacob</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAyNzM0MmJmLi45ZmUzNmRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkg
QEAKKzIwMTItMDMtMTQgIERpbnUgSmFjb2IgIDxkaW51LmphY29iQG5va2lhLmNvbT4KKworICAg
ICAgICBbUXRdW1drMl0gQXNzZXJ0aW9uIEZhaWx1cmUgYW5kIGNyYXNoIG9uIGZpbGUgdXBsb2Fk
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDg1NAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlcGxhY2Ug
Y3VycmVudCBpbXBsZW1lbnRhdGlvbiBvZiBRRmlsZURpYWxvZyAod2hpY2ggaXMgYSBRdFdpZGdl
dCBiYXNlZCBkaWFsb2cpIHdpdGgKKyAgICAgICAgYSBxbWwgaW1wbGVtZW50YWJsZSBjb21wb25l
bnQuIEFkZGVkIGEgbmV3IHByb3BlcnR5ICdmaWxlUGlja2VyJyB0byBXZWJWaWV3IGV4cGVyaW1l
bnRhbAorICAgICAgICB0byBzZXQgdGhlIHFtbCBjb21wb25lbnQgZm9yIGZpbGUgdXBsb2FkIHRy
aWdnZXJlZCBieSBhbiBpbnB1dCBmaWxlIGVsZW1lbnQuCisgCisgICAgICAgIENvLWF1dGhvcmVk
IHdpdGggS2FzdGh1cmkgTmFsbGFwcGFzb3VuZGFyYXJhamFuIDxrYXN0aHVyaS5uLXNAbm9raWEu
Y29tPgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcDoKKyAg
ICAgICAgKFFRdWlja1dlYlZpZXdQcml2YXRlOjpRUXVpY2tXZWJWaWV3UHJpdmF0ZSk6CisgICAg
ICAgIChRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6Y2hvb3NlRmlsZXMpOgorICAgICAgICAoUVF1aWNr
V2ViVmlld0V4cGVyaW1lbnRhbDo6ZmlsZVBpY2tlcik6CisgICAgICAgIChRUXVpY2tXZWJWaWV3
RXhwZXJpbWVudGFsOjpzZXRGaWxlUGlja2VyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0
L3FxdWlja3dlYnZpZXdfcC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vi
dmlld19wX3AuaDoKKyAgICAgICAgKFFRdWlja1dlYlZpZXdQcml2YXRlKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL0Rlc2t0b3BCZWhhdmlvci5wcm86CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9EZXNrdG9wQmVoYXZpb3IvdHN0
X3NpbmdsZUZpbGVVcGxvYWQucW1sOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0
L3Rlc3RzL3FtbHRlc3RzL2NvbW1vbi9zaW5nbGVmaWxldXBsb2FkLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9xdC9RdERpYWxvZ1J1bm5lci5jcHA6CisgICAgICAgIChGaWxlUGlj
a2VyQ29udGV4dE9iamVjdCk6CisgICAgICAgIChGaWxlUGlja2VyQ29udGV4dE9iamVjdDo6Rmls
ZVBpY2tlckNvbnRleHRPYmplY3QpOgorICAgICAgICAoRmlsZVBpY2tlckNvbnRleHRPYmplY3Q6
OmZpbGVMaXN0KToKKyAgICAgICAgKEZpbGVQaWNrZXJDb250ZXh0T2JqZWN0OjpyZWplY3QpOgor
ICAgICAgICAoRmlsZVBpY2tlckNvbnRleHRPYmplY3Q6OmFjY2VwdCk6CisgICAgICAgIChRdERp
YWxvZ1J1bm5lcjo6aW5pdEZvckZpbGVQaWNrZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9R
dERpYWxvZ1J1bm5lci5oOgorICAgICAgICAoUXREaWFsb2dSdW5uZXIpOgorICAgICAgICAoUXRE
aWFsb2dSdW5uZXI6OmZpbGVQYXRoKToKKyAgICAgICAgKFF0RGlhbG9nUnVubmVyOjpvbkZpbGVT
ZWxlY3RlZCk6CisKIDIwMTItMDMtMTQgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxl
LmNvbT4KIAogICAgICAgICBGaXggVUkgcHJvY2VzcyBjcmFzaCB3aGVuIGEgcGx1Zy1pbiBwcm9j
ZXNzIGNyYXNoZXMgd2l0aCBhIG1vZGFsIGRpYWxvZyBzaG93aW5nCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcAppbmRleCBlZTFhYmY0Li4z
ZWI2MmQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlj
a3dlYnZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNr
d2Vidmlldy5jcHAKQEAgLTQ3LDcgKzQ3LDYgQEAKICNpbmNsdWRlIDxwcml2YXRlL3FxdWlja2Zs
aWNrYWJsZV9wLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5pdGlhbGl6ZVRocmVhZGlu
Zy5oPgogI2luY2x1ZGUgPFFEZWNsYXJhdGl2ZUVuZ2luZT4KLSNpbmNsdWRlIDxRRmlsZURpYWxv
Zz4KICNpbmNsdWRlIDxRdFF1aWNrL1FRdWlja0NhbnZhcz4KICNpbmNsdWRlIDxXZWJDb3JlL0lu
dFBvaW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRSZWN0Lmg+CkBAIC03Niw2ICs3NSw3IEBA
IFFRdWlja1dlYlZpZXdQcml2YXRlOjpRUXVpY2tXZWJWaWV3UHJpdmF0ZShRUXVpY2tXZWJWaWV3
KiB2aWV3cG9ydCkKICAgICAsIGNlcnRpZmljYXRlVmVyaWZpY2F0aW9uRGlhbG9nKDApCiAgICAg
LCBpdGVtU2VsZWN0b3IoMCkKICAgICAsIHByb3h5QXV0aGVudGljYXRpb25EaWFsb2coMCkKKyAg
ICAsIGZpbGVQaWNrZXIoMCkKICAgICAsIHVzZXJEaWRPdmVycmlkZUNvbnRlbnRXaWR0aChmYWxz
ZSkKICAgICAsIHVzZXJEaWRPdmVycmlkZUNvbnRlbnRIZWlnaHQoZmFsc2UpCiAgICAgLCBtX25h
dmlnYXRvclF0T2JqZWN0RW5hYmxlZChmYWxzZSkKQEAgLTM3NSw1MCArMzc1LDMwIEBAIHZvaWQg
UVF1aWNrV2ViVmlld1ByaXZhdGU6OmV4ZWNEaWFsb2dSdW5uZXIoUXREaWFsb2dSdW5uZXImIGRp
YWxvZ1J1bm5lcikKIAogdm9pZCBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6Y2hvb3NlRmlsZXMoV0tP
cGVuUGFuZWxSZXN1bHRMaXN0ZW5lclJlZiBsaXN0ZW5lclJlZiwgY29uc3QgUVN0cmluZ0xpc3Qm
IHNlbGVjdGVkRmlsZU5hbWVzLCBRdFdlYlBhZ2VVSUNsaWVudDo6RmlsZUNob29zZXJUeXBlIHR5
cGUpCiB7Ci0jaWZuZGVmIFFUX05PX0ZJTEVESUFMT0cKICAgICBRX1EoUVF1aWNrV2ViVmlldyk7
Ci0gICAgb3BlblBhbmVsUmVzdWx0TGlzdGVuZXIgPSBsaXN0ZW5lclJlZjsKLQotICAgIC8vIFF0
IGRvZXMgbm90IHN1cHBvcnQgbXVsdGlwbGUgZmlsZXMgc3VnZ2VzdGlvbiwgc28gd2UgZ2V0IGp1
c3QgdGhlIGZpcnN0IHN1Z2dlc3Rpb24uCi0gICAgUVN0cmluZyBzZWxlY3RlZEZpbGVOYW1lOwot
ICAgIGlmICghc2VsZWN0ZWRGaWxlTmFtZXMuaXNFbXB0eSgpKQotICAgICAgICBzZWxlY3RlZEZp
bGVOYW1lID0gc2VsZWN0ZWRGaWxlTmFtZXMuYXQoMCk7Ci0KLSAgICBRX0FTU0VSVCghZmlsZURp
YWxvZyk7CiAKLSAgICBRV2luZG93KiB3aW5kb3cgPSBxLT5jYW52YXMoKTsKLSAgICBpZiAoIXdp
bmRvdykKKyAgICBpZiAoIWZpbGVQaWNrZXIgfHwgdHlwZSA9PSBRdFdlYlBhZ2VVSUNsaWVudDo6
TXVsdGlwbGVGaWxlc1NlbGVjdGlvbikKICAgICAgICAgcmV0dXJuOwogCi0gICAgZmlsZURpYWxv
ZyA9IG5ldyBRRmlsZURpYWxvZygwLCBRU3RyaW5nKCksIHNlbGVjdGVkRmlsZU5hbWUpOwotICAg
IGZpbGVEaWFsb2ctPndpbmRvdygpLT53aW5JZCgpOyAvLyBFbnN1cmUgdGhhdCB0aGUgZGlhbG9n
IGhhcyBhIHdpbmRvdwotICAgIFFfQVNTRVJUKGZpbGVEaWFsb2ctPndpbmRvdygpLT53aW5kb3dI
YW5kbGUoKSk7Ci0gICAgZmlsZURpYWxvZy0+d2luZG93KCktPndpbmRvd0hhbmRsZSgpLT5zZXRU
cmFuc2llbnRQYXJlbnQod2luZG93KTsKLQotICAgIGZpbGVEaWFsb2ctPm9wZW4ocSwgU0xPVChf
cV9vbk9wZW5QYW5lbEZpbGVzU2VsZWN0ZWQoKSkpOworICAgIG9wZW5QYW5lbFJlc3VsdExpc3Rl
bmVyID0gbGlzdGVuZXJSZWY7CiAKLSAgICBxLT5jb25uZWN0KGZpbGVEaWFsb2csIFNJR05BTChm
aW5pc2hlZChpbnQpKSwgU0xPVChfcV9vbk9wZW5QYW5lbEZpbmlzaGVkKGludCkpKTsKLSNlbmRp
ZgotfQorICAgIFF0RGlhbG9nUnVubmVyIGRpYWxvZ1J1bm5lcjsKKyAgICBpZiAoIWRpYWxvZ1J1
bm5lci5pbml0Rm9yRmlsZVBpY2tlcihmaWxlUGlja2VyLCBxLCBzZWxlY3RlZEZpbGVOYW1lcykp
CisgICAgICAgIHJldHVybjsKIAotdm9pZCBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6X3Ffb25PcGVu
UGFuZWxGaWxlc1NlbGVjdGVkKCkKLXsKLSAgICBjb25zdCBRU3RyaW5nTGlzdCBmaWxlTGlzdCA9
IGZpbGVEaWFsb2ctPnNlbGVjdGVkRmlsZXMoKTsKLSAgICBWZWN0b3I8UmVmUHRyPEFQSU9iamVj
dD4gPiB3a0ZpbGVzKGZpbGVMaXN0LnNpemUoKSk7CisgICAgZXhlY0RpYWxvZ1J1bm5lcihkaWFs
b2dSdW5uZXIpOwogCi0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGZpbGVMaXN0LnNpemUo
KTsgKytpKQotICAgICAgICB3a0ZpbGVzW2ldID0gV2ViVVJMOjpjcmVhdGUoUVVybDo6ZnJvbUxv
Y2FsRmlsZShmaWxlTGlzdC5hdChpKSkudG9TdHJpbmcoKSk7CisgICAgaWYgKGRpYWxvZ1J1bm5l
ci53YXNBY2NlcHRlZCgpKSB7CisgICAgICAgIFFTdHJpbmdMaXN0IHNlbGVjdGVkUGF0aHMgPSBk
aWFsb2dSdW5uZXIuZmlsZVBhdGgoKTsKIAotICAgIFdLT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJD
aG9vc2VGaWxlcyhvcGVuUGFuZWxSZXN1bHRMaXN0ZW5lciwgdG9BUEkoSW1tdXRhYmxlQXJyYXk6
OmFkb3B0KHdrRmlsZXMpLmxlYWtSZWYoKSkpOwotfQorICAgICAgICBWZWN0b3I8UmVmUHRyPEFQ
SU9iamVjdD4gPiB3a0ZpbGVzKHNlbGVjdGVkUGF0aHMuc2l6ZSgpKTsKKyAgICAgICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgaSA8IHNlbGVjdGVkUGF0aHMuc2l6ZSgpOyArK2kpCisgICAgICAgICAg
ICB3a0ZpbGVzW2ldID0gV2ViVVJMOjpjcmVhdGUoUVVybDo6ZnJvbUxvY2FsRmlsZShzZWxlY3Rl
ZFBhdGhzLmF0KGkpKS50b1N0cmluZygpKTsgICAgICAgICAgICAKIAotdm9pZCBRUXVpY2tXZWJW
aWV3UHJpdmF0ZTo6X3Ffb25PcGVuUGFuZWxGaW5pc2hlZChpbnQgcmVzdWx0KQotewotICAgIGlm
IChyZXN1bHQgPT0gUURpYWxvZzo6UmVqZWN0ZWQpCisgICAgICAgIFdLT3BlblBhbmVsUmVzdWx0
TGlzdGVuZXJDaG9vc2VGaWxlcyhvcGVuUGFuZWxSZXN1bHRMaXN0ZW5lciwgdG9BUEkoSW1tdXRh
YmxlQXJyYXk6OmFkb3B0KHdrRmlsZXMpLmxlYWtSZWYoKSkpOworICAgIH0gZWxzZQogICAgICAg
ICBXS09wZW5QYW5lbFJlc3VsdExpc3RlbmVyQ2FuY2VsKG9wZW5QYW5lbFJlc3VsdExpc3RlbmVy
KTsKIAotICAgIGZpbGVEaWFsb2ctPmRlbGV0ZUxhdGVyKCk7Ci0gICAgZmlsZURpYWxvZyA9IDA7
CiB9CiAKIHZvaWQgUVF1aWNrV2ViVmlld1ByaXZhdGU6OnNldFZpZXdJbkF0dGFjaGVkUHJvcGVy
dGllcyhRT2JqZWN0KiBvYmplY3QpCkBAIC05NzAsNiArOTUwLDIxIEBAIHZvaWQgUVF1aWNrV2Vi
Vmlld0V4cGVyaW1lbnRhbDo6c2V0SXRlbVNlbGVjdG9yKFFEZWNsYXJhdGl2ZUNvbXBvbmVudCog
aXRlbVNlbGVjCiAgICAgZW1pdCBpdGVtU2VsZWN0b3JDaGFuZ2VkKCk7CiB9CiAKK1FEZWNsYXJh
dGl2ZUNvbXBvbmVudCogUVF1aWNrV2ViVmlld0V4cGVyaW1lbnRhbDo6ZmlsZVBpY2tlcigpIGNv
bnN0Cit7CisgICAgUV9EKGNvbnN0IFFRdWlja1dlYlZpZXcpOworICAgIHJldHVybiBkLT5maWxl
UGlja2VyOworfQorCit2b2lkIFFRdWlja1dlYlZpZXdFeHBlcmltZW50YWw6OnNldEZpbGVQaWNr
ZXIoUURlY2xhcmF0aXZlQ29tcG9uZW50KiBmaWxlUGlja2VyKQoreworICAgIFFfRChRUXVpY2tX
ZWJWaWV3KTsKKyAgICBpZiAoZC0+ZmlsZVBpY2tlciA9PSBmaWxlUGlja2VyKQorICAgICAgICBy
ZXR1cm47CisgICAgZC0+ZmlsZVBpY2tlciA9IGZpbGVQaWNrZXI7CisgICAgZW1pdCBmaWxlUGlj
a2VyQ2hhbmdlZCgpOworfQorCiBRUXVpY2tVcmxTY2hlbWVEZWxlZ2F0ZSogUVF1aWNrV2ViVmll
d0V4cGVyaW1lbnRhbDo6c2NoZW1lRGVsZWdhdGVzX0F0KFFEZWNsYXJhdGl2ZUxpc3RQcm9wZXJ0
eTxRUXVpY2tVcmxTY2hlbWVEZWxlZ2F0ZT4qIHByb3BlcnR5LCBpbnQgaW5kZXgpCiB7CiAgICAg
Y29uc3QgUU9iamVjdExpc3QgY2hpbGRyZW4gPSBwcm9wZXJ0eS0+b2JqZWN0LT5jaGlsZHJlbigp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2
aWV3X3AuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19w
LmgKaW5kZXggNmFkYWIxNy4uM2NlMTUyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3AuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcC5oCkBAIC0xOTEsOCArMTkxLDYgQEAgcHJpdmF0
ZToKICAgICBRX1BSSVZBVEVfU0xPVChkX2Z1bmMoKSwgdm9pZCBfcV9jb21taXRQb3NpdGlvbkNo
YW5nZShjb25zdCBRUG9pbnRGJikpOwogICAgIFFfUFJJVkFURV9TTE9UKGRfZnVuYygpLCB2b2lk
IF9xX2NvbW1pdFNjYWxlQ2hhbmdlKCkpOwogCi0gICAgUV9QUklWQVRFX1NMT1QoZF9mdW5jKCks
IHZvaWQgX3Ffb25PcGVuUGFuZWxGaWxlc1NlbGVjdGVkKCkpOwotICAgIFFfUFJJVkFURV9TTE9U
KGRfZnVuYygpLCB2b2lkIF9xX29uT3BlblBhbmVsRmluaXNoZWQoaW50IHJlc3VsdCkpOwogICAg
IFFfUFJJVkFURV9TTE9UKGRfZnVuYygpLCB2b2lkIF9xX29uVmlzaWJsZUNoYW5nZWQoKSk7CiAg
ICAgUV9QUklWQVRFX1NMT1QoZF9mdW5jKCksIHZvaWQgX3Ffb25VcmxDaGFuZ2VkKCkpOwogICAg
IFFfUFJJVkFURV9TTE9UKGRfZnVuYygpLCB2b2lkIF9xX29uUmVjZWl2ZWRSZXNwb25zZUZyb21E
b3dubG9hZChRV2ViRG93bmxvYWRJdGVtKikpOwpAQCAtMjUwLDYgKzI0OCw3IEBAIGNsYXNzIFFX
RUJLSVRfRVhQT1JUIFFRdWlja1dlYlZpZXdFeHBlcmltZW50YWwgOiBwdWJsaWMgUU9iamVjdCB7
CiAgICAgUV9QUk9QRVJUWShRRGVjbGFyYXRpdmVDb21wb25lbnQqIHByb3h5QXV0aGVudGljYXRp
b25EaWFsb2cgUkVBRCBwcm94eUF1dGhlbnRpY2F0aW9uRGlhbG9nIFdSSVRFIHNldFByb3h5QXV0
aGVudGljYXRpb25EaWFsb2cgTk9USUZZIHByb3h5QXV0aGVudGljYXRpb25EaWFsb2dDaGFuZ2Vk
KQogICAgIFFfUFJPUEVSVFkoUURlY2xhcmF0aXZlQ29tcG9uZW50KiBjZXJ0aWZpY2F0ZVZlcmlm
aWNhdGlvbkRpYWxvZyBSRUFEIGNlcnRpZmljYXRlVmVyaWZpY2F0aW9uRGlhbG9nIFdSSVRFIHNl
dENlcnRpZmljYXRlVmVyaWZpY2F0aW9uRGlhbG9nIE5PVElGWSBjZXJ0aWZpY2F0ZVZlcmlmaWNh
dGlvbkRpYWxvZ0NoYW5nZWQpCiAgICAgUV9QUk9QRVJUWShRRGVjbGFyYXRpdmVDb21wb25lbnQq
IGl0ZW1TZWxlY3RvciBSRUFEIGl0ZW1TZWxlY3RvciBXUklURSBzZXRJdGVtU2VsZWN0b3IgTk9U
SUZZIGl0ZW1TZWxlY3RvckNoYW5nZWQpCisgICAgUV9QUk9QRVJUWShRRGVjbGFyYXRpdmVDb21w
b25lbnQqIGZpbGVQaWNrZXIgUkVBRCBmaWxlUGlja2VyIFdSSVRFIHNldEZpbGVQaWNrZXIgTk9U
SUZZIGZpbGVQaWNrZXJDaGFuZ2VkKQogICAgIFFfUFJPUEVSVFkoUVdlYlByZWZlcmVuY2VzKiBw
cmVmZXJlbmNlcyBSRUFEIHByZWZlcmVuY2VzIENPTlNUQU5UIEZJTkFMKQogICAgIFFfUFJPUEVS
VFkoUVdlYlZpZXdwb3J0SW5mbyogdmlld3BvcnRJbmZvIFJFQUQgdmlld3BvcnRJbmZvIENPTlNU
QU5UIEZJTkFMKQogICAgIFFfUFJPUEVSVFkoUURlY2xhcmF0aXZlTGlzdFByb3BlcnR5PFFRdWlj
a1VybFNjaGVtZURlbGVnYXRlPiB1cmxTY2hlbWVEZWxlZ2F0ZXMgUkVBRCBzY2hlbWVEZWxlZ2F0
ZXMpCkBAIC0yNzcsNiArMjc2LDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0SXRlbVNlbGVjdG9y
KFFEZWNsYXJhdGl2ZUNvbXBvbmVudCopOwogICAgIFFEZWNsYXJhdGl2ZUNvbXBvbmVudCogcHJv
eHlBdXRoZW50aWNhdGlvbkRpYWxvZygpIGNvbnN0OwogICAgIHZvaWQgc2V0UHJveHlBdXRoZW50
aWNhdGlvbkRpYWxvZyhRRGVjbGFyYXRpdmVDb21wb25lbnQqKTsKKyAgICBRRGVjbGFyYXRpdmVD
b21wb25lbnQqIGZpbGVQaWNrZXIoKSBjb25zdDsKKyAgICB2b2lkIHNldEZpbGVQaWNrZXIoUURl
Y2xhcmF0aXZlQ29tcG9uZW50Kik7CiAKICAgICBRV2ViVmlld3BvcnRJbmZvKiB2aWV3cG9ydElu
Zm8oKTsKIApAQCAtMzI5LDYgKzMzMCw3IEBAIFFfU0lHTkFMUzoKICAgICB2b2lkIGF1dGhlbnRp
Y2F0aW9uRGlhbG9nQ2hhbmdlZCgpOwogICAgIHZvaWQgY2VydGlmaWNhdGVWZXJpZmljYXRpb25E
aWFsb2dDaGFuZ2VkKCk7CiAgICAgdm9pZCBpdGVtU2VsZWN0b3JDaGFuZ2VkKCk7CisgICAgdm9p
ZCBmaWxlUGlja2VyQ2hhbmdlZCgpOwogICAgIHZvaWQgZG93bmxvYWRSZXF1ZXN0ZWQoUVdlYkRv
d25sb2FkSXRlbSogZG93bmxvYWRJdGVtKTsKICAgICB2b2lkIHBlcm1pc3Npb25SZXF1ZXN0ZWQo
UVdlYlBlcm1pc3Npb25SZXF1ZXN0KiBwZXJtaXNzaW9uKTsKICAgICB2b2lkIG1lc3NhZ2VSZWNl
aXZlZChjb25zdCBRVmFyaWFudE1hcCYgbWVzc2FnZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcF9wLmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcF9wLmgKaW5kZXggMzlhMTRhNy4uMTE2
NzhmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3
ZWJ2aWV3X3BfcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNr
d2Vidmlld19wX3AuaApAQCAtNTAsNyArNTAsNiBAQCBjbGFzcyBRV2ViVmlld3BvcnRJbmZvOwog
CiBRVF9CRUdJTl9OQU1FU1BBQ0UKIGNsYXNzIFFEZWNsYXJhdGl2ZUNvbXBvbmVudDsKLWNsYXNz
IFFGaWxlRGlhbG9nOwogUVRfRU5EX05BTUVTUEFDRQogCiBjbGFzcyBRUXVpY2tXZWJWaWV3UHJp
dmF0ZSB7CkBAIC05Myw4ICs5Miw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgX3FfY29t
bWl0U2NhbGVDaGFuZ2UoKSB7IH0KICAgICB2b2lkIF9xX2NvbW1pdFBvc2l0aW9uQ2hhbmdlKGNv
bnN0IFFQb2ludEYmKTsKIAotICAgIHZvaWQgX3Ffb25PcGVuUGFuZWxGaWxlc1NlbGVjdGVkKCk7
Ci0gICAgdm9pZCBfcV9vbk9wZW5QYW5lbEZpbmlzaGVkKGludCByZXN1bHQpOwogICAgIHZvaWQg
X3Ffb25WaXNpYmxlQ2hhbmdlZCgpOwogICAgIHZvaWQgX3Ffb25VcmxDaGFuZ2VkKCk7CiAgICAg
dm9pZCBfcV9vblJlY2VpdmVkUmVzcG9uc2VGcm9tRG93bmxvYWQoUVdlYkRvd25sb2FkSXRlbSop
OwpAQCAtMTU4LDkgKzE1NSw5IEBAIHByb3RlY3RlZDoKICAgICBRRGVjbGFyYXRpdmVDb21wb25l
bnQqIGNlcnRpZmljYXRlVmVyaWZpY2F0aW9uRGlhbG9nOwogICAgIFFEZWNsYXJhdGl2ZUNvbXBv
bmVudCogaXRlbVNlbGVjdG9yOwogICAgIFFEZWNsYXJhdGl2ZUNvbXBvbmVudCogcHJveHlBdXRo
ZW50aWNhdGlvbkRpYWxvZzsKKyAgICBRRGVjbGFyYXRpdmVDb21wb25lbnQqIGZpbGVQaWNrZXI7
CiAKICAgICBXZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50cyB2aWV3cG9ydEFyZ3VtZW50czsKLSAg
ICBRRmlsZURpYWxvZyogZmlsZURpYWxvZzsKICAgICBXS09wZW5QYW5lbFJlc3VsdExpc3RlbmVy
UmVmIG9wZW5QYW5lbFJlc3VsdExpc3RlbmVyOwogCiAgICAgYm9vbCB1c2VyRGlkT3ZlcnJpZGVD
b250ZW50V2lkdGg7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0
L3Rlc3RzL3FtbHRlc3RzL0Rlc2t0b3BCZWhhdmlvci5wcm8gYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL0Rlc2t0b3BCZWhhdmlvci5wcm8KaW5kZXggOWQx
NmE3Yi4uNWNmNDZjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9x
dC90ZXN0cy9xbWx0ZXN0cy9EZXNrdG9wQmVoYXZpb3IucHJvCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvRGVza3RvcEJlaGF2aW9yLnBybwpAQCAt
MTksNCArMTksNSBAQCBPVEhFUl9GSUxFUyArPSBcCiAgICAgRGVza3RvcEJlaGF2aW9yL3RzdF9s
aW5rSG92ZXJlZC5xbWwgXAogICAgIERlc2t0b3BCZWhhdmlvci90c3RfbG9hZEh0bWwucW1sIFwK
ICAgICBEZXNrdG9wQmVoYXZpb3IvdHN0X21lc3NhZ2luZy5xbWwgXAotICAgIERlc2t0b3BCZWhh
dmlvci90c3RfbmF2aWdhdGlvblJlcXVlc3RlZC5xbWwKKyAgICBEZXNrdG9wQmVoYXZpb3IvdHN0
X25hdmlnYXRpb25SZXF1ZXN0ZWQucW1sIFwKKyAgICBEZXNrdG9wQmVoYXZpb3IvdHN0X3Npbmds
ZWZpbGV1cGxvYWQucW1sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L3F0L3Rlc3RzL3FtbHRlc3RzL0Rlc2t0b3BCZWhhdmlvci90c3Rfc2luZ2xlRmlsZVVwbG9hZC5x
bWwgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL0Rlc2t0
b3BCZWhhdmlvci90c3Rfc2luZ2xlRmlsZVVwbG9hZC5xbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uNzdlOGM4NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvRGVza3RvcEJlaGF2aW9yL3RzdF9zaW5n
bGVGaWxlVXBsb2FkLnFtbApAQCAtMCwwICsxLDY1IEBACitpbXBvcnQgUXRRdWljayAyLjAKK2lt
cG9ydCBRdFRlc3QgMS4wCitpbXBvcnQgUXRXZWJLaXQgMy4wCitpbXBvcnQgUXRXZWJLaXQuZXhw
ZXJpbWVudGFsIDEuMAoraW1wb3J0ICIuLi9jb21tb24iCisKKy8vIEZJWE1FOiBBZGRlZCB0byBE
ZXNrdG9wIHRlc3RzIGJlY2F1c2Ugd2Ugd2FudCB0byBoYXZlIG1vdXNlQ2xpY2soKSB0byBvcGVu
IHRoZSA8aW5wdXQ+IHRhZy4gV2UgY2FuIG1vdmUgaXQgYmFjaworLy8gd2hlbiBUZXN0Q2FzZSBz
dGFydHMgc3VwcG9ydGluZyB0b3VjaCBldmVudHMsIHNlZSBodHRwczovL2J1Z3JlcG9ydHMucXQu
bm9raWEuY29tL2Jyb3dzZS9RVEJVRy0yMzA4My4KK1Rlc3RXZWJWaWV3IHsKKyAgICBpZDogd2Vi
VmlldworCisgICAgd2lkdGg6IDQwMAorICAgIGhlaWdodDogNDAwCisKKyAgICBwcm9wZXJ0eSBi
b29sIHNlbGVjdEZpbGUKKworICAgIGV4cGVyaW1lbnRhbC5maWxlUGlja2VyOiBJdGVtIHsKKyAg
ICAgICAgVGltZXIgeworICAgICAgICAgICAgcnVubmluZzogdHJ1ZQorICAgICAgICAgICAgaW50
ZXJ2YWw6IDEKKyAgICAgICAgICAgIG9uVHJpZ2dlcmVkOiB7CisgICAgICAgICAgICAgICAgaWYg
KHNlbGVjdEZpbGUpCisgICAgICAgICAgICAgICAgICAgIG1vZGVsLmFjY2VwdCgiYWNjZXB0ZWRm
aWxlbmFtZSIpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgbW9k
ZWwucmVqZWN0KCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBTaWdu
YWxTcHkgeworICAgICAgICBpZDogdGl0bGVTcHkKKyAgICAgICAgdGFyZ2V0OiB3ZWJWaWV3Cisg
ICAgICAgIHNpZ25hbE5hbWU6ICJ0aXRsZUNoYW5nZWQiCisgICAgfQorCisgICAgVGVzdENhc2Ug
eworICAgICAgICBpZDogdGVzdAorICAgICAgICBuYW1lOiAiV2ViVmlld1NpbmdsZUZpbGVQaWNr
ZXIiCisgICAgICAgIHdoZW46IHdpbmRvd1Nob3duCisKKyAgICAgICAgZnVuY3Rpb24gaW5pdCgp
IHsKKyAgICAgICAgICAgIHdlYlZpZXcudXJsID0gUXQucmVzb2x2ZWRVcmwoIi4uL2NvbW1vbi9z
aW5nbGVmaWxldXBsb2FkLmh0bWwiKQorICAgICAgICAgICAgdmVyaWZ5KHdlYlZpZXcud2FpdEZv
ckxvYWRTdWNjZWVkZWQoKSkKKyAgICAgICAgICAgIHRpdGxlU3B5LmNsZWFyKCkKKyAgICAgICAg
fQorCisgICAgICAgIGZ1bmN0aW9uIG9wZW5JdGVtU2VsZWN0b3IoKSB7CisgICAgICAgICAgICBt
b3VzZUNsaWNrKHdlYlZpZXcsIDE1LCAxNSwgUXQuTGVmdEJ1dHRvbikKKyAgICAgICAgfQorCisg
ICAgICAgIGZ1bmN0aW9uIHRlc3RfYWNjZXB0KCkgeworICAgICAgICAgICAgd2ViVmlldy5zZWxl
Y3RGaWxlID0gdHJ1ZTsKKyAgICAgICAgICAgIG9wZW5JdGVtU2VsZWN0b3IoKQorICAgICAgICAg
ICAgdGl0bGVTcHkud2FpdCgpICAgICAgICAgICAgCisgICAgICAgICAgICBjb21wYXJlKHdlYlZp
ZXcudGl0bGUsICJhY2NlcHRlZGZpbGVuYW1lIikKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0
aW9uIHRlc3RfcmVqZWN0KCkgeworICAgICAgICAgICAgdmFyIG9sZFRpdGxlID0gd2ViVmlldy50
aXRsZQorICAgICAgICAgICAgd2ViVmlldy5zZWxlY3RGaWxlID0gZmFsc2U7CisgICAgICAgICAg
ICBvcGVuSXRlbVNlbGVjdG9yKCkKKyAgICAgICAgICAgIGNvbXBhcmUod2ViVmlldy50aXRsZSwg
b2xkVGl0bGUpCisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL2NvbW1vbi9zaW5nbGVmaWxldXBsb2Fk
Lmh0bWwgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL2Nv
bW1vbi9zaW5nbGVmaWxldXBsb2FkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uNmE0ZGUzMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvY29tbW9uL3NpbmdsZWZpbGV1cGxvYWQuaHRtbApAQCAt
MCwwICsxLDI2IEBACis8aHRtbD4KKzxoZWFkPgorPG1ldGEgbmFtZT0idmlld3BvcnQiIGluaXRp
YWwtc2NhbGU9MSI+Cis8dGl0bGU+Tm8gZmlsZSBzZWxlY3RlZDwvdGl0bGU+Cis8c2NyaXB0Pgor
ZnVuY3Rpb24gdXBkYXRlVGl0bGUoKQoreworICAgIHZhciBpbnAgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgidXBmaWxlIik7CisgICAgdmFyIGFsbGZpbGVzID0gbmV3IFN0cmluZygiIik7Cisg
ICAgdmFyIG5hbWU9bmV3IFN0cmluZygiIik7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbnAu
ZmlsZXMubGVuZ3RoOyArK2kpCisgICAgeworICAgICAgICBuYW1lID0gaW5wLmZpbGVzLml0ZW0o
aSkubmFtZTsKKyAgICAgICAgaWYgKGFsbGZpbGVzLmxlbmd0aD09MCkKKyAgICAgICAgICAgIGFs
bGZpbGVzID0gbmFtZTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgYWxsZmlsZXMgPSBhbGxm
aWxlcyArICIsIiArIG5hbWU7CisgICAgfQorICAgIGRvY3VtZW50LnRpdGxlID0gYWxsZmlsZXM7
Cit9Cis8L3NjcmlwdD4KKworPGJvZHk+Cis8aW5wdXQgdHlwZT0iZmlsZSIgbmFtZT0iZmlsZSIg
aWQ9InVwZmlsZSIgb25jaGFuZ2U9InVwZGF0ZVRpdGxlKCkiLz4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdERpYWxvZ1J1bm5lci5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXREaWFsb2dSdW5uZXIuY3BwCmluZGV4
IDE2YzY0MjkuLmEwZDQ2NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9x
dC9RdERpYWxvZ1J1bm5lci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0
RGlhbG9nUnVubmVyLmNwcApAQCAtMTYwLDYgKzE2MCwzMSBAQCBwcml2YXRlOgogICAgIFFTdHJp
bmcgbV9ob3N0bmFtZTsKIH07CiAKK2NsYXNzIEZpbGVQaWNrZXJDb250ZXh0T2JqZWN0IDogcHVi
bGljIFFPYmplY3QgeworICAgIFFfT0JKRUNUCisgICAgUV9QUk9QRVJUWShRU3RyaW5nTGlzdCBm
aWxlTGlzdCBSRUFEIGZpbGVMaXN0IENPTlNUQU5UKQorCitwdWJsaWM6CisgICAgRmlsZVBpY2tl
ckNvbnRleHRPYmplY3QoY29uc3QgUVN0cmluZ0xpc3QmIHNlbGVjdGVkRmlsZXMpCisgICAgICAg
IDogUU9iamVjdCgpCisgICAgICAgICwgbV9maWxlTGlzdChzZWxlY3RlZEZpbGVzKQorICAgIHsK
KyAgICB9CisKKyAgICBRU3RyaW5nTGlzdCBmaWxlTGlzdCgpIGNvbnN0IHtyZXR1cm4gbV9maWxl
TGlzdDsgfQorCitwdWJsaWMgc2xvdHM6CisgICAgdm9pZCByZWplY3QoKSB7IGVtaXQgcmVqZWN0
ZWQoKTt9CisgICAgdm9pZCBhY2NlcHQoY29uc3QgUVZhcmlhbnQmIHBhdGgpIHsgZW1pdCBmaWxl
U2VsZWN0ZWQoKHBhdGgudG9TdHJpbmdMaXN0KCkpKTsgfQorCitzaWduYWxzOgorICAgIHZvaWQg
cmVqZWN0ZWQoKTsKKyAgICB2b2lkIGZpbGVTZWxlY3RlZChjb25zdCBRU3RyaW5nTGlzdCYpOwor
Citwcml2YXRlOgorICAgIFFTdHJpbmdMaXN0IG1fZmlsZUxpc3Q7Cit9OworCiBib29sIFF0RGlh
bG9nUnVubmVyOjppbml0Rm9yQWxlcnQoUURlY2xhcmF0aXZlQ29tcG9uZW50KiBjb21wb25lbnQs
IFFRdWlja0l0ZW0qIGRpYWxvZ1BhcmVudCwgY29uc3QgUVN0cmluZyYgbWVzc2FnZSkKIHsKICAg
ICBEaWFsb2dDb250ZXh0T2JqZWN0KiBjb250ZXh0T2JqZWN0ID0gbmV3IERpYWxvZ0NvbnRleHRP
YmplY3QobWVzc2FnZSk7CkBAIC0yMzMsNiArMjU4LDE5IEBAIGJvb2wgUXREaWFsb2dSdW5uZXI6
OmluaXRGb3JDZXJ0aWZpY2F0ZVZlcmlmaWNhdGlvbihRRGVjbGFyYXRpdmVDb21wb25lbnQqIGNv
bXBvCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK2Jvb2wgUXREaWFsb2dSdW5uZXI6OmluaXRGb3JG
aWxlUGlja2VyKFFEZWNsYXJhdGl2ZUNvbXBvbmVudCogY29tcG9uZW50LCBRUXVpY2tJdGVtKiBk
aWFsb2dQYXJlbnQsIGNvbnN0IFFTdHJpbmdMaXN0JiBzZWxlY3RlZEZpbGVzKQoreworICAgIEZp
bGVQaWNrZXJDb250ZXh0T2JqZWN0KiBjb250ZXh0T2JqZWN0ID0gbmV3IEZpbGVQaWNrZXJDb250
ZXh0T2JqZWN0KHNlbGVjdGVkRmlsZXMpOworICAgIGlmICghY3JlYXRlRGlhbG9nKGNvbXBvbmVu
dCwgZGlhbG9nUGFyZW50LCBjb250ZXh0T2JqZWN0KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgY29ubmVjdChjb250ZXh0T2JqZWN0LCBTSUdOQUwoZmlsZVNlbGVjdGVkKGNvbnN0IFFT
dHJpbmdMaXN0JikpLCBTTE9UKG9uRmlsZVNlbGVjdGVkKGNvbnN0IFFTdHJpbmdMaXN0JikpKTsK
KyAgICBjb25uZWN0KGNvbnRleHRPYmplY3QsIFNJR05BTChmaWxlU2VsZWN0ZWQoY29uc3QgUVN0
cmluZ0xpc3QmKSksIFNMT1QocXVpdCgpKSk7CisgICAgY29ubmVjdChjb250ZXh0T2JqZWN0LCBT
SUdOQUwocmVqZWN0ZWQoKSksIFNMT1QocXVpdCgpKSk7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30K
KwogYm9vbCBRdERpYWxvZ1J1bm5lcjo6Y3JlYXRlRGlhbG9nKFFEZWNsYXJhdGl2ZUNvbXBvbmVu
dCogY29tcG9uZW50LCBRUXVpY2tJdGVtKiBkaWFsb2dQYXJlbnQsIFFPYmplY3QqIGNvbnRleHRP
YmplY3QpCiB7CiAgICAgUURlY2xhcmF0aXZlQ29udGV4dCogYmFzZUNvbnRleHQgPSBjb21wb25l
bnQtPmNyZWF0aW9uQ29udGV4dCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL3F0L1F0RGlhbG9nUnVubmVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRE
aWFsb2dSdW5uZXIuaAppbmRleCA3ZmJhY2UxLi4zNDE5MmIyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXREaWFsb2dSdW5uZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvcXQvUXREaWFsb2dSdW5uZXIuaApAQCAtMjIsNiArMjIsNyBAQAogI2RlZmlu
ZSBRdERpYWxvZ1J1bm5lcl9oCiAKICNpbmNsdWRlIDxRdENvcmUvUUV2ZW50TG9vcD4KKyNpbmNs
dWRlIDxRdENvcmUvUVN0cmluZ0xpc3Q+CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogCiBjbGFz
cyBRRGVjbGFyYXRpdmVDb21wb25lbnQ7CkBAIC00MSw2ICs0Miw3IEBAIHB1YmxpYzoKICAgICBi
b29sIGluaXRGb3JBdXRoZW50aWNhdGlvbihRRGVjbGFyYXRpdmVDb21wb25lbnQqLCBRUXVpY2tJ
dGVtKiBkaWFsb2dQYXJlbnQsIGNvbnN0IFFTdHJpbmcmIGhvc3RuYW1lLCBjb25zdCBRU3RyaW5n
JiByZWFsbSwgY29uc3QgUVN0cmluZyYgcHJlZmlsbGVkVXNlcm5hbWUpOwogICAgIGJvb2wgaW5p
dEZvckNlcnRpZmljYXRlVmVyaWZpY2F0aW9uKFFEZWNsYXJhdGl2ZUNvbXBvbmVudCosIFFRdWlj
a0l0ZW0qLCBjb25zdCBRU3RyaW5nJiBob3N0bmFtZSk7CiAgICAgYm9vbCBpbml0Rm9yUHJveHlB
dXRoZW50aWNhdGlvbihRRGVjbGFyYXRpdmVDb21wb25lbnQqLCBRUXVpY2tJdGVtKiwgY29uc3Qg
UVN0cmluZyYgaG9zdG5hbWUsIHVpbnQxNl90IHBvcnQsIGNvbnN0IFFTdHJpbmcmIHByZWZpbGxl
ZFVzZXJuYW1lKTsKKyAgICBib29sIGluaXRGb3JGaWxlUGlja2VyKFFEZWNsYXJhdGl2ZUNvbXBv
bmVudCosIFFRdWlja0l0ZW0qLCBjb25zdCBRU3RyaW5nTGlzdCYgc2VsZWN0ZWRGaWxlcyk7CiAK
ICAgICBRUXVpY2tJdGVtKiBkaWFsb2coKSBjb25zdCB7IHJldHVybiBtX2RpYWxvZy5nZXQoKTsg
fQogCkBAIC01MCw2ICs1Miw4IEBAIHB1YmxpYzoKICAgICBRU3RyaW5nIHVzZXJuYW1lKCkgY29u
c3QgeyByZXR1cm4gbV91c2VybmFtZTsgfQogICAgIFFTdHJpbmcgcGFzc3dvcmQoKSBjb25zdCB7
IHJldHVybiBtX3Bhc3N3b3JkOyB9CiAKKyAgICBRU3RyaW5nTGlzdCBmaWxlUGF0aCgpIGNvbnN0
IHsgcmV0dXJuIG1fZmlsZXBhdGg7IH0KKwogcHVibGljIHNsb3RzOgogICAgIHZvaWQgb25BY2Nl
cHRlZChjb25zdCBRU3RyaW5nJiByZXN1bHQgPSBRU3RyaW5nKCkpCiAgICAgewpAQCAtNjMsNiAr
NjcsMTIgQEAgcHVibGljIHNsb3RzOgogICAgICAgICBtX3Bhc3N3b3JkID0gcGFzc3dvcmQ7CiAg
ICAgfQogCisgICAgdm9pZCBvbkZpbGVTZWxlY3RlZChjb25zdCBRU3RyaW5nTGlzdCYgZmlsZVBh
dGgpCisgICAgeworICAgICAgICBtX3dhc0FjY2VwdGVkID0gdHJ1ZTsKKyAgICAgICAgbV9maWxl
cGF0aCA9IGZpbGVQYXRoOworICAgIH0KKwogcHJpdmF0ZToKICAgICBib29sIGNyZWF0ZURpYWxv
ZyhRRGVjbGFyYXRpdmVDb21wb25lbnQqLCBRUXVpY2tJdGVtKiBkaWFsb2dQYXJlbnQsIFFPYmpl
Y3QqIGNvbnRleHRPYmplY3QpOwogCkBAIC03Myw2ICs4Myw3IEBAIHByaXZhdGU6CiAKICAgICBR
U3RyaW5nIG1fdXNlcm5hbWU7CiAgICAgUVN0cmluZyBtX3Bhc3N3b3JkOworICAgIFFTdHJpbmdM
aXN0IG1fZmlsZXBhdGg7CiB9OwogCiAjZW5kaWYgLy8gUXREaWFsb2dSdW5uZXJfaApkaWZmIC0t
Z2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDAwNjNlMTkuLmI0
MzBlNDcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxOSBAQAorMjAxMi0wMy0xNCAgRGludSBKYWNvYiAgPGRpbnUuamFjb2JAbm9r
aWEuY29tPgorCisgICAgICAgIFtRdF1bV2syXSBBc3NlcnRpb24gRmFpbHVyZSBhbmQgY3Jhc2gg
b24gZmlsZSB1cGxvYWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTgwODU0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkZWQgZmlsZVBpY2tlciB0byBXZWJWaWV3IHVzaW5nIGV4cGVyaW1lbnRhbCBBUEku
CisKKyAgICAgICAgKiBNaW5pQnJvd3Nlci9xdC9NaW5pQnJvd3Nlci5xcmM6CisgICAgICAgICog
TWluaUJyb3dzZXIvcXQvaWNvbnMvZm9sZGVyLnBuZzogQWRkZWQuCisgICAgICAgICogTWluaUJy
b3dzZXIvcXQvaWNvbnMvdGl0bGViYXIucG5nOiBBZGRlZC4KKyAgICAgICAgKiBNaW5pQnJvd3Nl
ci9xdC9pY29ucy91cC5wbmc6IEFkZGVkLgorICAgICAgICAqIE1pbmlCcm93c2VyL3F0L3FtbC9C
cm93c2VyV2luZG93LnFtbDoKKyAgICAgICAgKiBNaW5pQnJvd3Nlci9xdC9xbWwvRmlsZVBpY2tl
ci5xbWw6IEFkZGVkLgorCiAyMDEyLTAzLTE0ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIEZpeCByZWdyZXNzaW9uL2NyYXNoIGludHJvZHVjZWQgaW4gcjEx
MDcyNCAtIGJhZCB0eXBlIHBhc3NlZCBmcm9tIHNraXBwZWRfdGVzdHMoKSBieSBkZWZhdWx0Lgpk
aWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dzZXIvcXQvTWluaUJyb3dzZXIucXJjIGIvVG9vbHMv
TWluaUJyb3dzZXIvcXQvTWluaUJyb3dzZXIucXJjCmluZGV4IGUwMGM1MWUuLmU2ZTJmMTQgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL01pbmlCcm93c2VyL3F0L01pbmlCcm93c2VyLnFyYworKysgYi9Ub29s
cy9NaW5pQnJvd3Nlci9xdC9NaW5pQnJvd3Nlci5xcmMKQEAgLTgsNiArOCw5IEBACiAgICAgICAg
IDxmaWxlPmljb25zL3N0b3AucG5nPC9maWxlPgogICAgICAgICA8ZmlsZT5pY29ucy90b3VjaC5w
bmc8L2ZpbGU+CiAgICAgICAgIDxmaWxlPmljb25zL3RvdWNocG9pbnQucG5nPC9maWxlPgorICAg
ICAgICA8ZmlsZT5pY29ucy9mb2xkZXIucG5nPC9maWxlPgorICAgICAgICA8ZmlsZT5pY29ucy91
cC5wbmc8L2ZpbGU+CisgICAgICAgIDxmaWxlPmljb25zL3RpdGxlYmFyLnBuZzwvZmlsZT4KICAg
ICAgICAgPGZpbGU+cW1sL0FsZXJ0RGlhbG9nLnFtbDwvZmlsZT4KICAgICAgICAgPGZpbGU+cW1s
L0F1dGhlbnRpY2F0aW9uRGlhbG9nLnFtbDwvZmlsZT4KICAgICAgICAgPGZpbGU+cW1sL0Jyb3dz
ZXJXaW5kb3cucW1sPC9maWxlPgpAQCAtMTUsNiArMTgsNyBAQAogICAgICAgICA8ZmlsZT5xbWwv
RGlhbG9nLnFtbDwvZmlsZT4KICAgICAgICAgPGZpbGU+cW1sL0RpYWxvZ0J1dHRvbi5xbWw8L2Zp
bGU+CiAgICAgICAgIDxmaWxlPnFtbC9EaWFsb2dMaW5lSW5wdXQucW1sPC9maWxlPgorICAgICAg
ICA8ZmlsZT5xbWwvRmlsZVBpY2tlci5xbWw8L2ZpbGU+CiAgICAgICAgIDxmaWxlPnFtbC9JdGVt
U2VsZWN0b3IucW1sPC9maWxlPgogICAgICAgICA8ZmlsZT5xbWwvTW9ja1RvdWNoUG9pbnQucW1s
PC9maWxlPgogICAgICAgICA8ZmlsZT5xbWwvUHJvbXB0RGlhbG9nLnFtbDwvZmlsZT4KZGlmZiAt
LWdpdCBhL1Rvb2xzL01pbmlCcm93c2VyL3F0L2ljb25zL2ZvbGRlci5wbmcgYi9Ub29scy9NaW5p
QnJvd3Nlci9xdC9pY29ucy9mb2xkZXIucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU1M2UyYWQ0NjRlYjk5MzI1
NmE2YzM1NjdmYzk0MDQ5OGUyNmZjOGIKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDE4NDEKemNt
Vi0xMmhSQTNQKTxoOzNLfExrMDAwZTFOSkxUcTAwMUJXMDAxQmUxXkBzNmI5I0Y4MDAwMDRiMyNj
fTJuWXhXCnpkPGJOUzAwMDA5YTdiQm0wMDAkITAwMCQhMFkmPSFwOHg7PThGV1FoYlc/OTtiYSFF
TFdkTF9+Y1A/cGVZamF+Xgp6YUFodVVhJVk/RkpRQEgxMkNoaiZLfnp8VXlfUldnUk0hPjl8TDQ5
cGAjeFU0R1pAPHc7fjRMSXokdnpJMFcqTjMKemtgXl9CRypWM3hzYXVpe0VOeFJNUWtBSGIobnln
PS1CYmRIQnJUO1JPKVV+cWx0ZHtwVGs0ZTUhVnJhazg5WCsmCnpuWkBKciUkcGd7YXtJd0hIZkJz
YkNHQWdvQUZsM3U9bCQrRT1lfkR8YkI/KGZqb090Sjc1VUVeNEJBP35VYWJPdwp6Y3w4ODF2dTdA
RDlVVUYtelQ8Jj1LJTZ9d0IyI203PDtPcEg+ZnZRZXZlT2hNdmxlbz4wMDhpZk84SUdOaEw2bDwK
enthVVpyZkEoJWNFdGQzNnJEYmB+NWgmaUA/Pmg0Tj1aPlNDXk1TN3YwUHIzQWhQdld7IVl0Qzg8
V1E8K3JXYVklCnprU25WK01FR0ZRQko7K1A1JGB8ZDF8dVRuaWpfc2orUz0/NXh3Y0Y+S3A2N3tZ
ZXo8V0ZLcGJqKHRHO1VnJStQTAp6YVBlKmVBPHc4Y1c7RTV5NyUzMytkIVcpdFU7K20qTFNEV1o4
KE9RPzhqYlJKTU1lSGdKdn4/VjB0Zip9RD1FcF8KenlrJCQlXll6fi0oayhCfVZwQFk3MDF5ZXFT
VTdBXjZfc1JMbW5fTlhFLUI2WFA0OShrJiY/K2dfS2w1Q2gpZ0d8CnpVJEdmSnBBWEp+WVh9NTky
ISp8ZmIyaz1TNklrMClycGpNdC1TeXk9cHtGX0xUJkdpIUlaWT9hJDslS2t2KCU2KQp6MWFPYEow
TFlhTGF3VVVTWi1UKkNwfFY9amVwWCZfLV9vOWNVO1Ria2ZqfVN9a0h1cEUwSGVfZXFwfFlWV0ZR
YmcKemV9NWtvPGJxITdWSyY+YWlvKipnQnB7UEJzNUFuQTFTVGRETnZhSlAlcmFFMyRkVVF8SElM
WUFTdHRBWWhGLW0rCnoxWDNeQGklJHY2TVhTfUtzSHA3TFNkdF8tb2VxcnBoOU9CRmdvN0BTLX56
RkQoJnFzezVQYGItSmYrdjstPj1pRAp6fDMlWj1rY2dIN2Mmdzs2YHt4I21SaDY1MktndnEwKDlx
Q2BeNzhVfDFJe0tBaU5IREZmWktCZUxDSiR+I0QhPyQKejF7a3xATEJvUipqe05EPTJtdyRQNmw1
UlR3NWlGU28wcTBFbktoIT50YzReKztKUGA2RF8yfiZiWkcjcW5fQUc7CnpfQmhoaCgtJE5JME1U
ZF5nTSZfdHhTUitDKz5wWEk1czN+MDZiMW1peGFZVytZJk9lbGR3JWBZSGRBX3RPKmhWNQp6NV4p
aWl6aXtMSTZCa2ZqeSRVO2J7dUZBcGRjaCpvIzl9Y3g5RE8qfntURmNOIUglYXBoOGJmKnRIQ19+
JUs/QjEKekYlJVhWQCNBTTJxMUN6M2BwX0RAQD04MTZAJWR8PTN7ZXpldWBFRj5zejdqRDFVTHM5
Xk4pM1krSUBMSjBmLVZQCnp0NHpudi1SbSRrQCtxMnw+KFNaU25VYUpjMnB8Iz1pXmFqZyFDV2B9
YH5MZG9DIVVtb2h6VUhuJThESmsqUTJaSgp6RDg5TC01ZXxuVmJwWn1BJlV4PjNocyFmSUNaKTZ6
MDhwd3BTfmxBNyNGTz1TOz5vUXphXiFHSTBzc2RDZktXS1AKenxOUnBeO2drKWdOWHc5Nj1XYVh4
KzVJbHMrOCNxRjZxQCY1QV83MiYjUy04ZyF+aEB8MnBAWCkqIWkqbFJzYUJxCnpNWHtsXjAxWnRg
djk2Xk55fWlCai1wZmNwSlUtZDwzOztPaXs+VmhFYHw9azxfdV95PUFfaStWIT9WQm1IbEJaQgp6
N3V3cmpQQSpHcXN0MllAMDAzXjZmQThDR3JQaHF8QTteT0chSD01SipMTXprX3dHcSVmY1J0eVcm
fTlyVTYoRW4KejJFRmJHNXtXeGNOdlNkc15gckckcjVHT1cjbGVGSVprd0FhIUtANGJLcCt0Nnhi
byNxSUlvNF5hWk1tUCZ0R2shCnpMPyF9d2N1Tmg9ZkEjQDdKTzRII3pAYFEwYzdnSG4oMkt2X2Ns
NUt2aGQ8PGwxM25EKWhjUipeZns+S2o3akhKOQp6dW92NE5aTiN5Ni1vVTktVD52Sng7LW08PntY
RD1xX1hEVVJxS3E/VkY4OzJ0RmxWIVVMIz5kUFlrXkc4cGZgJXAKej5PPkh3Q0p+VHNWRWZ9Typ0
S0heeTFHN3JEOVdZO2h8TjZAT3BDWXhZI30xKj5BQ3VoJjZmNGNSU2wpdTJPZTBDCnpRSTgwblVX
REV0TEoke2o1KTJLWHElPDRkLVFCa2BLKlRgRmpeKVc5cUxtcSRoSikycjFeMklPc1VmWEs0VUpC
Twp6LVk3eiRVfCReb2ZiK1ReQUFMQkN0PWteSyQqIzk/c04pQDEoaE1ZbmJBQUBVYXcwT0ZKbFY2
cXhIJEtfPitROXwKeigoSmBoQz5hYiE4UHI8Z3R9KEs2XmNXcEk0QHJgeTdMYEg8bDBpZzIlK0km
fXM7UXw9VXNGPkV4bT1qKzZUSnc9CnpsOSVWcVgkT1Z8V2lYbSFjO21KQS0xajZmT1FiM3opNmh7
QFRVZmV3VHtVVWNEKExoZ2JWZUN1dmZEKT47VystIwp6ZWl9dWtJciF1MkMlenRtU3Q1RitRdWIw
PWBGKVN0KlZsP3hZYk1tMSQqZD88R3Z6c1B7N1gwby04Z3I7X3Y7bXkKekJlVDdyemBBZXM+UGxs
KClpTmopbE1Tb1VpRXYmWSRNNCghNCE2dGlVVF9ucDNnYFIpZkNFSFN3c142cnFwcSY3CnphP1A0
KlFtWWx2WHE3T1R3RDVZeT4zXjFpeGUkPzdySXpvakQ5XygreDdVaWt1XnwzQF8rdmpmPWx9UE1o
YHdqRApmRXBwNHs7PjNSZCYhK1lOendBYmUwMDAwME5rdlhYdTBtamZNSCo8LQoKbGl0ZXJhbCAw
CkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dzZXIvcXQvaWNvbnMvdGl0
bGViYXIucG5nIGIvVG9vbHMvTWluaUJyb3dzZXIvcXQvaWNvbnMvdGl0bGViYXIucG5nCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmYzZDE4YWE4MmU5M2Q4OTlhZjgzYTlkODZiOGMwYWFjMWY2ZWEyYTIKR0lUIGJpbmFy
eSBwYXRjaApsaXRlcmFsIDE5Nwp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHZwXjIwKk9DITJ+NE5s
JmtAOTc+azQ0b2Z5YGdsWChmYHUldFdzSXg7WTkKej9DMVdJJE9gMGg3STtKIUdjWDkxZkgzMnxI
MkRna1YzZW5lVkBRUGkrZTtlLTg0TmclN19nPU11YXQxcVpOMHFmCno7Z3RFYy09NXZIejN1cEdW
dkVxRWhBTD88NTJqYlM4ajc0TndsOGNeUyNZbG56YVY/ZmpMMG5LN3hRbGNaREhfcQpMXj5iUDBs
K1hrSz87U3UoCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9Ub29scy9NaW5p
QnJvd3Nlci9xdC9pY29ucy91cC5wbmcgYi9Ub29scy9NaW5pQnJvd3Nlci9xdC9pY29ucy91cC5w
bmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYjA1ZjgwMjVkMDE1N2E1ZTdiMjc5MmIwNThjZGI0NTUzYjFkNmJmZgpH
SVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgNjYyCnpjbVY7SDAlYHE7UCk8aDszS3xMazAwMGUxTkpM
VHEwMDBzSTAwMHNRMV5AczZSP2QhQjAwMDAxYjVjaF8wSXRwKQp6PT5QeCMyNFlKYEw7KEspe3th
Nz55e0Q0XjAwMFNhTkxoMEwwMUZjVTAxRmNWMEdnWl8wMDAwN2JWKkdgMmlYU0AKejA1PXFvMFRf
ViowMElfQ0xfdChJJWV8RChZWkV+ZiQzSmdvSGAkbTNAfW9ebXdUZDFENSVweFgyMThYV2RocDtN
CnpwaHckXylSVyU0RHxxa0NLZndQJDVFTUt9UU4pdj0ycjUtY0hFRGlxbGJZPThkZ3lLJihsK1lG
MmFnJDtuYX0mYQp6bmZDXyVxZ2tQa0gyc0o1UVlAfS1ZZztaRUZYI1goZmNhTT82UkVWbGM9NzdO
Jmg9Wjl5fkRAIVE9a0lHeyNLRF8KekVkP2lHLThuYkF8N0xrTT9kLWBfYnZufks7ST11cyo1cmU0
XyYlJmA4JVMjQFdPQn5Lc1ktRWZgYSk5c2RLdSVwCnpXYiZ4Jjc/VzwzNllVMT9lOFZAdS13amt1
cnRHXz8lN3dZZzxzQFFQQHI7WDcwYWA7WTU4MXF3bnlWYkN1a2FxVwp6VjF1QiZza0Q4c2U3LWI0
SihKV3J6SmxrcVB+dX1MKDRwdEBrUTxrWVd9UVJ6QUFBRDcwJWowJjxAOEshO3A5eyYKejglczJS
NG9kdEBLbT1RTiE4ZlE+Tzc/WlQ8UXB+SzBKVDktPWdVWCQqVU0rI2N5KEQ3Jnp3eUZKKileS1VA
S15ACnohczdrRnlqfGl8cXNBbFBIUEJaQnB3R1lxO0ZfJStsMT5JJnp6Vz9DZnRHKj5PPCoyKTA7
fmk2VjhzVDIyWHNaaQp6a15vQnVzNHlqXkt0ZzVWVUtkeWNgYW0jVGBheDc1SSpjQWNsbWV4fVIp
UD5qS34zfihKTkEkZUFpaEMtNUNIYFUKejgqP3FldF8/WUNleWkyfmBRbXdkJXlsO29pd2MxUHtY
UTUmRWxPIUNfO3ohRTheSDBmdWs7Uy1GOURCJWM2MWRvCnc7X0hZM2FsanJ7NERgYSsrRWdWWXg/
ZWBEMlNYI2owc1hxOUdTPWF1TmROITwwNypxb002TjwkZzhibmhNZ1JaKwoKbGl0ZXJhbCAwCkhj
bVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dzZXIvcXQvcW1sL0Jyb3dzZXJX
aW5kb3cucW1sIGIvVG9vbHMvTWluaUJyb3dzZXIvcXQvcW1sL0Jyb3dzZXJXaW5kb3cucW1sCmlu
ZGV4IGI0ZTZlMjQuLmNmNzRiMjIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL01pbmlCcm93c2VyL3F0L3Ft
bC9Ccm93c2VyV2luZG93LnFtbAorKysgYi9Ub29scy9NaW5pQnJvd3Nlci9xdC9xbWwvQnJvd3Nl
cldpbmRvdy5xbWwKQEAgLTMxMyw2ICszMTMsNyBAQCBSZWN0YW5nbGUgewogICAgICAgICBleHBl
cmltZW50YWwucHJvbXB0RGlhbG9nOiBQcm9tcHREaWFsb2cgeyB9CiAgICAgICAgIGV4cGVyaW1l
bnRhbC5hdXRoZW50aWNhdGlvbkRpYWxvZzogQXV0aGVudGljYXRpb25EaWFsb2cgeyB9CiAgICAg
ICAgIGV4cGVyaW1lbnRhbC5wcm94eUF1dGhlbnRpY2F0aW9uRGlhbG9nOiBQcm94eUF1dGhlbnRp
Y2F0aW9uRGlhbG9nIHsgfQorICAgICAgICBleHBlcmltZW50YWwuZmlsZVBpY2tlcjogRmlsZVBp
Y2tlciB7IH0KIAogICAgICAgICBTY3JvbGxJbmRpY2F0b3IgewogICAgICAgICAgICAgZmxpY2th
YmxlSXRlbTogd2ViVmlldy5leHBlcmltZW50YWwuZmxpY2thYmxlCmRpZmYgLS1naXQgYS9Ub29s
cy9NaW5pQnJvd3Nlci9xdC9xbWwvRmlsZVBpY2tlci5xbWwgYi9Ub29scy9NaW5pQnJvd3Nlci9x
dC9xbWwvRmlsZVBpY2tlci5xbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
NDQ1MTBjOQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL01pbmlCcm93c2VyL3F0L3FtbC9GaWxl
UGlja2VyLnFtbApAQCAtMCwwICsxLDIwMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBO
b2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKK2ltcG9ydCBRdFF1aWNrIDIuMAoraW1wb3J0IFF0Lmxh
YnMuZm9sZGVybGlzdG1vZGVsIDEuMAorCitSZWN0YW5nbGUgeworICAgIGlkOiByb290CisKKyAg
ICBwcm9wZXJ0eSBRdE9iamVjdCBmaWxlTW9kZWw6IG1vZGVsCisgICAgcHJvcGVydHkgYWxpYXMg
Zm9sZGVyOiBmb2xkZXJzLmZvbGRlcgorCisgICAgY29sb3I6ICJ3aGl0ZSIKKyAgICB3aWR0aDog
NDAwCisgICAgaGVpZ2h0OiA1MDAKKworICAgIGJvcmRlciB7CisgICAgICAgIHdpZHRoOiAxCisg
ICAgICAgIGNvbG9yOiAiI2JmYmZiZiIKKyAgICB9CisKKyAgICBzbW9vdGg6IHRydWUKKyAgICBy
YWRpdXM6IDUKKworICAgIGFuY2hvcnMuY2VudGVySW46IHBhcmVudAorCisgICAgQm9yZGVySW1h
Z2UgeworICAgICAgICBzb3VyY2U6ICIuLi9pY29ucy90aXRsZWJhci5wbmciOworICAgICAgICB3
aWR0aDogcGFyZW50LndpZHRoOworICAgICAgICBoZWlnaHQ6IDUwCisgICAgICAgIHk6IC03Cisg
ICAgICAgIGlkOiB0aXRsZUJhcgorCisgICAgICAgIGFuY2hvcnMgeworICAgICAgICAgICAgdG9w
OiBwYXJlbnQudG9wCisgICAgICAgICAgICBib3R0b206IGZvbGRlckxpc3QudG9wCisgICAgICAg
IH0KKyAgICAgICAgUmVjdGFuZ2xlIHsKKyAgICAgICAgICAgIGlkOiB1cEJ1dHRvbgorICAgICAg
ICAgICAgd2lkdGg6IDQ4CisgICAgICAgICAgICBoZWlnaHQ6IHRpdGxlQmFyLmhlaWdodCAtIDcK
KyAgICAgICAgICAgIGNvbG9yOiAidHJhbnNwYXJlbnQiCisgICAgICAgICAgICBJbWFnZSB7IGFu
Y2hvcnMuY2VudGVySW46IHBhcmVudDsgc291cmNlOiAiLi4vaWNvbnMvdXAucG5nIiB9CisgICAg
ICAgICAgICBNb3VzZUFyZWEgeyBpZDogdXBSZWdpb247IGFuY2hvcnMuY2VudGVySW46IHBhcmVu
dAorICAgICAgICAgICAgICAgIHdpZHRoOiA0OAorICAgICAgICAgICAgICAgIGhlaWdodDogNDgK
KyAgICAgICAgICAgICAgICBvbkNsaWNrZWQ6IGlmIChmb2xkZXJzLnBhcmVudEZvbGRlciAhPSAi
IikgdXAoKQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgUmVjdGFuZ2xlIHsK
KyAgICAgICAgICAgIGNvbG9yOiAiZ3JheSIKKyAgICAgICAgICAgIHg6IDQ4CisgICAgICAgICAg
ICB3aWR0aDogMQorICAgICAgICAgICAgaGVpZ2h0OiA0NAorICAgICAgICB9CisKKyAgICAgICAg
VGV4dCB7CisgICAgICAgICAgICBhbmNob3JzIHsKKyAgICAgICAgICAgICAgICBsZWZ0OiB1cEJ1
dHRvbi5yaWdodAorICAgICAgICAgICAgICAgIHJpZ2h0OiBwYXJlbnQucmlnaHQKKyAgICAgICAg
ICAgICAgICBsZWZ0TWFyZ2luOiA0CisgICAgICAgICAgICAgICAgcmlnaHRNYXJnaW46IDQKKyAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgaGVpZ2h0OiBwYXJlbnQuaGVpZ2h0CisKKyAgICAg
ICAgICAgIHRleHQ6IGZvbGRlcnMuZm9sZGVyCisgICAgICAgICAgICBjb2xvcjogIndoaXRlIgor
ICAgICAgICAgICAgZWxpZGU6IFRleHQuRWxpZGVMZWZ0OworICAgICAgICAgICAgaG9yaXpvbnRh
bEFsaWdubWVudDogVGV4dC5BbGlnbkxlZnQ7CisgICAgICAgICAgICB2ZXJ0aWNhbEFsaWdubWVu
dDogVGV4dC5BbGlnblZDZW50ZXIKKyAgICAgICAgICAgIGZvbnQucGl4ZWxTaXplOiAyNAorICAg
ICAgICB9CisgICAgfQorCisgICAgTGlzdFZpZXcgeworICAgICAgICBpZDogZm9sZGVyTGlzdAor
CisgICAgICAgIHdpZHRoOiBwYXJlbnQud2lkdGgKKyAgICAgICAgaGVpZ2h0OiA0MDAKKyAgICAg
ICAgYW5jaG9ycy5jZW50ZXJJbjogcGFyZW50CisgICAgICAgIHNwYWNpbmc6IDIKKworICAgICAg
ICBjbGlwOiB0cnVlCisKKyAgICAgICAgRm9sZGVyTGlzdE1vZGVsIHsKKyAgICAgICAgICAgIGlk
OiBmb2xkZXJzCisgICAgICAgIH0KKworICAgICAgICBDb21wb25lbnQgeworICAgICAgICAgICAg
aWQ6IGZpbGVEZWxlZ2F0ZQorCisgICAgICAgICAgICBSZWN0YW5nbGUgeworICAgICAgICAgICAg
ICAgIGZ1bmN0aW9uIHNlbGVjdGVkKCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoZm9sZGVy
cy5pc0ZvbGRlcihpbmRleCkpCisgICAgICAgICAgICAgICAgICAgICAgICBvcGVuRm9sZGVyKGZp
bGVQYXRoKTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAg
ICAgZmlsZU1vZGVsLmFjY2VwdChmaWxlUGF0aCk7CisgICAgICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICAgICAgaGVpZ2h0OiA1MAorICAgICAgICAgICAgICAgIHdpZHRoOiBwYXJlbnQud2lk
dGgKKyAgICAgICAgICAgICAgICBjb2xvcjogZm9sZGVycy5pc0ZvbGRlcihpbmRleCkgPyAibGln
aHRncmF5IjogImRhcmtncmF5IgorCisgICAgICAgICAgICAgICAgSXRlbSB7CisgICAgICAgICAg
ICAgICAgICAgIHdpZHRoOiA0ODsKKyAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiA0OAorICAg
ICAgICAgICAgICAgICAgICBJbWFnZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2U6
ICIuLi9pY29ucy9mb2xkZXIucG5nIgorICAgICAgICAgICAgICAgICAgICAgICAgYW5jaG9ycy5j
ZW50ZXJJbjogcGFyZW50CisgICAgICAgICAgICAgICAgICAgICAgICB2aXNpYmxlOiBmb2xkZXJz
LmlzRm9sZGVyKGluZGV4KQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
fQorCisgICAgICAgICAgICAgICAgVGV4dCB7CisgICAgICAgICAgICAgICAgICAgIGFuY2hvcnMu
Y2VudGVySW46IHBhcmVudAorICAgICAgICAgICAgICAgICAgICBhbmNob3JzLmxlZnRNYXJnaW46
IDUwCisgICAgICAgICAgICAgICAgICAgIHRleHQ6IGZpbGVOYW1lCisgICAgICAgICAgICAgICAg
fQorCisgICAgICAgICAgICAgICAgTW91c2VBcmVhIHsKKyAgICAgICAgICAgICAgICAgICAgYW5j
aG9ycy5maWxsOiBwYXJlbnQKKyAgICAgICAgICAgICAgICAgICAgb25DbGlja2VkOiBzZWxlY3Rl
ZCgpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAg
ICAgICAgbW9kZWw6IGZvbGRlcnMKKyAgICAgICAgZGVsZWdhdGU6IGZpbGVEZWxlZ2F0ZQorCisg
ICAgfQorCisgICAgUmVjdGFuZ2xlIHsKKworICAgICAgICBpZDogYnV0dG9uCisgICAgICAgIGJv
cmRlciB7CisgICAgICAgICAgICB3aWR0aDogMQorICAgICAgICAgICAgY29sb3I6ICIjYmZiZmJm
IgorICAgICAgICB9CisgICAgICAgIGhlaWdodDogNTAKKworICAgICAgICBhbmNob3JzIHsKKyAg
ICAgICAgICAgIGJvdHRvbTogcGFyZW50LmJvdHRvbQorICAgICAgICAgICAgdG9wOiBmb2xkZXJM
aXN0LmJvdHRvbQorICAgICAgICAgICAgbGVmdDogcGFyZW50LmxlZnQKKyAgICAgICAgICAgIHJp
Z2h0OiBwYXJlbnQucmlnaHQKKyAgICAgICAgfQorCisgICAgICAgIERpYWxvZ0J1dHRvbiB7Cisg
ICAgICAgICAgICBpZDogY2FuY2VsCisgICAgICAgICAgICB0ZXh0OiAiQ2FuY2VsIgorICAgICAg
ICAgICAgYW5jaG9ycyB7CisgICAgICAgICAgICAgICAgaG9yaXpvbnRhbENlbnRlcjogcGFyZW50
Lmhvcml6b250YWxDZW50ZXI7CisgICAgICAgICAgICAgICAgdmVydGljYWxDZW50ZXI6ICBwYXJl
bnQudmVydGljYWxDZW50ZXIKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgb25DbGlja2Vk
OgorICAgICAgICAgICAgICAgIGZpbGVNb2RlbC5yZWplY3QoKSAgICAgICAgICAgIAorICAgICAg
ICB9CisKKyAgICB9CisKKyAgICBmdW5jdGlvbiBvcGVuRm9sZGVyKHBhdGgpIHsKKyAgICAgICAg
Zm9sZGVycy5mb2xkZXIgPSBwYXRoOworICAgIH0KKworICAgIGZ1bmN0aW9uIHVwKCkgeworICAg
ICAgICB2YXIgcGF0aCA9IGZvbGRlcnMucGFyZW50Rm9sZGVyOworICAgICAgICBmb2xkZXJzLmZv
bGRlciA9IHBhdGg7CisgICAgfQorCit9CisKKworCisKKwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132063</attachid>
            <date>2012-03-15 09:48:53 -0700</date>
            <delta_ts>2012-03-16 06:52:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>80854_qmldialog_review.patch</filename>
            <type>text/plain</type>
            <size>29169</size>
            <attacher name="Dinu Jacob">dinu.jacob</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA3NDViN2QxLi4xNjE3YWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAg
QEAKKzIwMTItMDMtMTUgIERpbnUgSmFjb2IgIDxkaW51LmphY29iQG5va2lhLmNvbT4KKworICAg
ICAgICBbUXRdW1drMl0gQXNzZXJ0aW9uIEZhaWx1cmUgYW5kIGNyYXNoIG9uIGZpbGUgdXBsb2Fk
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDg1NAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENyYXNoIHJl
c3VsdGVkIGZyb20gYXR0ZW1wdGluZyB0byBjcmVhdGUgUUZpbGVEaWFsb2csIGEgUXRXaWRnZXQg
YmFzZWQgZGlhbG9nIGZyb20gYSAKKyAgICAgICAgUUd1aUFwcGxpY2F0aW9uLiBSZXBsYWNlIFFG
aWxlRGlhbG9nIHdpdGggYSBRTUwgaW1wbGVtZW50YWJsZSBjb21wb25lbnQuCisgICAgICAgIEFk
ZGVkIGEgbmV3IHByb3BlcnR5ICdmaWxlUGlja2VyJyB0byBXZWJWaWV3IGV4cGVyaW1lbnRhbCB0
byBzZXQgdGhlIFFNTCBjb21wb25lbnQgZm9yCisgICAgICAgIGZpbGUgdXBsb2FkIHRyaWdnZXJl
ZCBieSBhbiBpbnB1dCBmaWxlIGVsZW1lbnQuCisKKyAgICAgICAgQ28tYXV0aG9yZWQgd2l0aCBL
YXN0aHVyaSBOYWxsYXBwYXNvdW5kYXJhcmFqYW4gPGthc3RodXJpLm4tc0Bub2tpYS5jb20+CisK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwOgorICAgICAgICAo
UVF1aWNrV2ViVmlld1ByaXZhdGU6OlFRdWlja1dlYlZpZXdQcml2YXRlKToKKyAgICAgICAgKFFR
dWlja1dlYlZpZXdQcml2YXRlOjpjaG9vc2VGaWxlcyk6CisgICAgICAgIChRUXVpY2tXZWJWaWV3
RXhwZXJpbWVudGFsOjpmaWxlUGlja2VyKToKKyAgICAgICAgKFFRdWlja1dlYlZpZXdFeHBlcmlt
ZW50YWw6OnNldEZpbGVQaWNrZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNr
d2Vidmlld19wLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3Bf
cC5oOgorICAgICAgICAoUVF1aWNrV2ViVmlld1ByaXZhdGUpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvRGVza3RvcEJlaGF2aW9yLnBybzoKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL0Rlc2t0b3BCZWhhdmlvci90c3Rfc2luZ2xl
RmlsZVVwbG9hZC5xbWw6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvdGVzdHMv
cW1sdGVzdHMvY29tbW9uL3NpbmdsZWZpbGV1cGxvYWQuaHRtbDogQWRkZWQuCisgICAgICAgICog
VUlQcm9jZXNzL3F0L1F0RGlhbG9nUnVubmVyLmNwcDoKKyAgICAgICAgKEZpbGVQaWNrZXJDb250
ZXh0T2JqZWN0KToKKyAgICAgICAgKEZpbGVQaWNrZXJDb250ZXh0T2JqZWN0OjpGaWxlUGlja2Vy
Q29udGV4dE9iamVjdCk6CisgICAgICAgIChGaWxlUGlja2VyQ29udGV4dE9iamVjdDo6ZmlsZUxp
c3QpOgorICAgICAgICAoRmlsZVBpY2tlckNvbnRleHRPYmplY3Q6OnJlamVjdCk6CisgICAgICAg
IChGaWxlUGlja2VyQ29udGV4dE9iamVjdDo6YWNjZXB0KToKKyAgICAgICAgKFF0RGlhbG9nUnVu
bmVyOjppbml0Rm9yRmlsZVBpY2tlcik6CisgICAgICAgICogVUlQcm9jZXNzL3F0L1F0RGlhbG9n
UnVubmVyLmg6CisgICAgICAgIChRdERpYWxvZ1J1bm5lcik6CisgICAgICAgIChRdERpYWxvZ1J1
bm5lcjo6ZmlsZVBhdGhzKToKKyAgICAgICAgKFF0RGlhbG9nUnVubmVyOjpvbkZpbGVTZWxlY3Rl
ZCk6CisKIDIwMTItMDMtMTUgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEu
Y29tPgogCiAgICAgICAgIFtXSzJdIFdlYlBhZ2VQcm94eTo6YWN0aXZlVVJMIHNob3VsZCByZXR1
cm4gdW5yZWFjaGFibGVVUkwoKSB3aGVuIGl0J3Mgbm90IGVtcHR5CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcAppbmRleCBlZTFhYmY0Li5m
YjRiYzlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlj
a3dlYnZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNr
d2Vidmlldy5jcHAKQEAgLTQ3LDcgKzQ3LDYgQEAKICNpbmNsdWRlIDxwcml2YXRlL3FxdWlja2Zs
aWNrYWJsZV9wLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5pdGlhbGl6ZVRocmVhZGlu
Zy5oPgogI2luY2x1ZGUgPFFEZWNsYXJhdGl2ZUVuZ2luZT4KLSNpbmNsdWRlIDxRRmlsZURpYWxv
Zz4KICNpbmNsdWRlIDxRdFF1aWNrL1FRdWlja0NhbnZhcz4KICNpbmNsdWRlIDxXZWJDb3JlL0lu
dFBvaW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRSZWN0Lmg+CkBAIC03Niw2ICs3NSw3IEBA
IFFRdWlja1dlYlZpZXdQcml2YXRlOjpRUXVpY2tXZWJWaWV3UHJpdmF0ZShRUXVpY2tXZWJWaWV3
KiB2aWV3cG9ydCkKICAgICAsIGNlcnRpZmljYXRlVmVyaWZpY2F0aW9uRGlhbG9nKDApCiAgICAg
LCBpdGVtU2VsZWN0b3IoMCkKICAgICAsIHByb3h5QXV0aGVudGljYXRpb25EaWFsb2coMCkKKyAg
ICAsIGZpbGVQaWNrZXIoMCkKICAgICAsIHVzZXJEaWRPdmVycmlkZUNvbnRlbnRXaWR0aChmYWxz
ZSkKICAgICAsIHVzZXJEaWRPdmVycmlkZUNvbnRlbnRIZWlnaHQoZmFsc2UpCiAgICAgLCBtX25h
dmlnYXRvclF0T2JqZWN0RW5hYmxlZChmYWxzZSkKQEAgLTM3NSw1MCArMzc1LDMwIEBAIHZvaWQg
UVF1aWNrV2ViVmlld1ByaXZhdGU6OmV4ZWNEaWFsb2dSdW5uZXIoUXREaWFsb2dSdW5uZXImIGRp
YWxvZ1J1bm5lcikKIAogdm9pZCBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6Y2hvb3NlRmlsZXMoV0tP
cGVuUGFuZWxSZXN1bHRMaXN0ZW5lclJlZiBsaXN0ZW5lclJlZiwgY29uc3QgUVN0cmluZ0xpc3Qm
IHNlbGVjdGVkRmlsZU5hbWVzLCBRdFdlYlBhZ2VVSUNsaWVudDo6RmlsZUNob29zZXJUeXBlIHR5
cGUpCiB7Ci0jaWZuZGVmIFFUX05PX0ZJTEVESUFMT0cKICAgICBRX1EoUVF1aWNrV2ViVmlldyk7
Ci0gICAgb3BlblBhbmVsUmVzdWx0TGlzdGVuZXIgPSBsaXN0ZW5lclJlZjsKLQotICAgIC8vIFF0
IGRvZXMgbm90IHN1cHBvcnQgbXVsdGlwbGUgZmlsZXMgc3VnZ2VzdGlvbiwgc28gd2UgZ2V0IGp1
c3QgdGhlIGZpcnN0IHN1Z2dlc3Rpb24uCi0gICAgUVN0cmluZyBzZWxlY3RlZEZpbGVOYW1lOwot
ICAgIGlmICghc2VsZWN0ZWRGaWxlTmFtZXMuaXNFbXB0eSgpKQotICAgICAgICBzZWxlY3RlZEZp
bGVOYW1lID0gc2VsZWN0ZWRGaWxlTmFtZXMuYXQoMCk7Ci0KLSAgICBRX0FTU0VSVCghZmlsZURp
YWxvZyk7CiAKLSAgICBRV2luZG93KiB3aW5kb3cgPSBxLT5jYW52YXMoKTsKLSAgICBpZiAoIXdp
bmRvdykKKyAgICBpZiAoIWZpbGVQaWNrZXIgfHwgdHlwZSA9PSBRdFdlYlBhZ2VVSUNsaWVudDo6
TXVsdGlwbGVGaWxlc1NlbGVjdGlvbikKICAgICAgICAgcmV0dXJuOwogCi0gICAgZmlsZURpYWxv
ZyA9IG5ldyBRRmlsZURpYWxvZygwLCBRU3RyaW5nKCksIHNlbGVjdGVkRmlsZU5hbWUpOwotICAg
IGZpbGVEaWFsb2ctPndpbmRvdygpLT53aW5JZCgpOyAvLyBFbnN1cmUgdGhhdCB0aGUgZGlhbG9n
IGhhcyBhIHdpbmRvdwotICAgIFFfQVNTRVJUKGZpbGVEaWFsb2ctPndpbmRvdygpLT53aW5kb3dI
YW5kbGUoKSk7Ci0gICAgZmlsZURpYWxvZy0+d2luZG93KCktPndpbmRvd0hhbmRsZSgpLT5zZXRU
cmFuc2llbnRQYXJlbnQod2luZG93KTsKLQotICAgIGZpbGVEaWFsb2ctPm9wZW4ocSwgU0xPVChf
cV9vbk9wZW5QYW5lbEZpbGVzU2VsZWN0ZWQoKSkpOworICAgIG9wZW5QYW5lbFJlc3VsdExpc3Rl
bmVyID0gbGlzdGVuZXJSZWY7CiAKLSAgICBxLT5jb25uZWN0KGZpbGVEaWFsb2csIFNJR05BTChm
aW5pc2hlZChpbnQpKSwgU0xPVChfcV9vbk9wZW5QYW5lbEZpbmlzaGVkKGludCkpKTsKLSNlbmRp
ZgotfQorICAgIFF0RGlhbG9nUnVubmVyIGRpYWxvZ1J1bm5lcjsKKyAgICBpZiAoIWRpYWxvZ1J1
bm5lci5pbml0Rm9yRmlsZVBpY2tlcihmaWxlUGlja2VyLCBxLCBzZWxlY3RlZEZpbGVOYW1lcykp
CisgICAgICAgIHJldHVybjsKIAotdm9pZCBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6X3Ffb25PcGVu
UGFuZWxGaWxlc1NlbGVjdGVkKCkKLXsKLSAgICBjb25zdCBRU3RyaW5nTGlzdCBmaWxlTGlzdCA9
IGZpbGVEaWFsb2ctPnNlbGVjdGVkRmlsZXMoKTsKLSAgICBWZWN0b3I8UmVmUHRyPEFQSU9iamVj
dD4gPiB3a0ZpbGVzKGZpbGVMaXN0LnNpemUoKSk7CisgICAgZXhlY0RpYWxvZ1J1bm5lcihkaWFs
b2dSdW5uZXIpOwogCi0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGZpbGVMaXN0LnNpemUo
KTsgKytpKQotICAgICAgICB3a0ZpbGVzW2ldID0gV2ViVVJMOjpjcmVhdGUoUVVybDo6ZnJvbUxv
Y2FsRmlsZShmaWxlTGlzdC5hdChpKSkudG9TdHJpbmcoKSk7CisgICAgaWYgKGRpYWxvZ1J1bm5l
ci53YXNBY2NlcHRlZCgpKSB7CisgICAgICAgIFFTdHJpbmdMaXN0IHNlbGVjdGVkUGF0aHMgPSBk
aWFsb2dSdW5uZXIuZmlsZVBhdGhzKCk7CiAKLSAgICBXS09wZW5QYW5lbFJlc3VsdExpc3RlbmVy
Q2hvb3NlRmlsZXMob3BlblBhbmVsUmVzdWx0TGlzdGVuZXIsIHRvQVBJKEltbXV0YWJsZUFycmF5
OjphZG9wdCh3a0ZpbGVzKS5sZWFrUmVmKCkpKTsKLX0KKyAgICAgICAgVmVjdG9yPFJlZlB0cjxB
UElPYmplY3Q+ID4gd2tGaWxlcyhzZWxlY3RlZFBhdGhzLnNpemUoKSk7CisgICAgICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCBzZWxlY3RlZFBhdGhzLnNpemUoKTsgKytpKQorICAgICAgICAg
ICAgd2tGaWxlc1tpXSA9IFdlYlVSTDo6Y3JlYXRlKFFVcmw6OmZyb21Mb2NhbEZpbGUoc2VsZWN0
ZWRQYXRocy5hdChpKSkudG9TdHJpbmcoKSk7ICAgICAgICAgICAgCiAKLXZvaWQgUVF1aWNrV2Vi
Vmlld1ByaXZhdGU6Ol9xX29uT3BlblBhbmVsRmluaXNoZWQoaW50IHJlc3VsdCkKLXsKLSAgICBp
ZiAocmVzdWx0ID09IFFEaWFsb2c6OlJlamVjdGVkKQorICAgICAgICBXS09wZW5QYW5lbFJlc3Vs
dExpc3RlbmVyQ2hvb3NlRmlsZXMob3BlblBhbmVsUmVzdWx0TGlzdGVuZXIsIHRvQVBJKEltbXV0
YWJsZUFycmF5OjphZG9wdCh3a0ZpbGVzKS5sZWFrUmVmKCkpKTsKKyAgICB9IGVsc2UKICAgICAg
ICAgV0tPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lckNhbmNlbChvcGVuUGFuZWxSZXN1bHRMaXN0ZW5l
cik7CiAKLSAgICBmaWxlRGlhbG9nLT5kZWxldGVMYXRlcigpOwotICAgIGZpbGVEaWFsb2cgPSAw
OwogfQogCiB2b2lkIFFRdWlja1dlYlZpZXdQcml2YXRlOjpzZXRWaWV3SW5BdHRhY2hlZFByb3Bl
cnRpZXMoUU9iamVjdCogb2JqZWN0KQpAQCAtOTcwLDYgKzk1MCwyMSBAQCB2b2lkIFFRdWlja1dl
YlZpZXdFeHBlcmltZW50YWw6OnNldEl0ZW1TZWxlY3RvcihRRGVjbGFyYXRpdmVDb21wb25lbnQq
IGl0ZW1TZWxlYwogICAgIGVtaXQgaXRlbVNlbGVjdG9yQ2hhbmdlZCgpOwogfQogCitRRGVjbGFy
YXRpdmVDb21wb25lbnQqIFFRdWlja1dlYlZpZXdFeHBlcmltZW50YWw6OmZpbGVQaWNrZXIoKSBj
b25zdAoreworICAgIFFfRChjb25zdCBRUXVpY2tXZWJWaWV3KTsKKyAgICByZXR1cm4gZC0+Zmls
ZVBpY2tlcjsKK30KKwordm9pZCBRUXVpY2tXZWJWaWV3RXhwZXJpbWVudGFsOjpzZXRGaWxlUGlj
a2VyKFFEZWNsYXJhdGl2ZUNvbXBvbmVudCogZmlsZVBpY2tlcikKK3sKKyAgICBRX0QoUVF1aWNr
V2ViVmlldyk7CisgICAgaWYgKGQtPmZpbGVQaWNrZXIgPT0gZmlsZVBpY2tlcikKKyAgICAgICAg
cmV0dXJuOworICAgIGQtPmZpbGVQaWNrZXIgPSBmaWxlUGlja2VyOworICAgIGVtaXQgZmlsZVBp
Y2tlckNoYW5nZWQoKTsKK30KKwogUVF1aWNrVXJsU2NoZW1lRGVsZWdhdGUqIFFRdWlja1dlYlZp
ZXdFeHBlcmltZW50YWw6OnNjaGVtZURlbGVnYXRlc19BdChRRGVjbGFyYXRpdmVMaXN0UHJvcGVy
dHk8UVF1aWNrVXJsU2NoZW1lRGVsZWdhdGU+KiBwcm9wZXJ0eSwgaW50IGluZGV4KQogewogICAg
IGNvbnN0IFFPYmplY3RMaXN0IGNoaWxkcmVuID0gcHJvcGVydHktPm9iamVjdC0+Y2hpbGRyZW4o
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vi
dmlld19wLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdf
cC5oCmluZGV4IDZhZGFiMTcuLjNjZTE1MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3AuaApAQCAtMTkxLDggKzE5MSw2IEBAIHByaXZh
dGU6CiAgICAgUV9QUklWQVRFX1NMT1QoZF9mdW5jKCksIHZvaWQgX3FfY29tbWl0UG9zaXRpb25D
aGFuZ2UoY29uc3QgUVBvaW50RiYpKTsKICAgICBRX1BSSVZBVEVfU0xPVChkX2Z1bmMoKSwgdm9p
ZCBfcV9jb21taXRTY2FsZUNoYW5nZSgpKTsKIAotICAgIFFfUFJJVkFURV9TTE9UKGRfZnVuYygp
LCB2b2lkIF9xX29uT3BlblBhbmVsRmlsZXNTZWxlY3RlZCgpKTsKLSAgICBRX1BSSVZBVEVfU0xP
VChkX2Z1bmMoKSwgdm9pZCBfcV9vbk9wZW5QYW5lbEZpbmlzaGVkKGludCByZXN1bHQpKTsKICAg
ICBRX1BSSVZBVEVfU0xPVChkX2Z1bmMoKSwgdm9pZCBfcV9vblZpc2libGVDaGFuZ2VkKCkpOwog
ICAgIFFfUFJJVkFURV9TTE9UKGRfZnVuYygpLCB2b2lkIF9xX29uVXJsQ2hhbmdlZCgpKTsKICAg
ICBRX1BSSVZBVEVfU0xPVChkX2Z1bmMoKSwgdm9pZCBfcV9vblJlY2VpdmVkUmVzcG9uc2VGcm9t
RG93bmxvYWQoUVdlYkRvd25sb2FkSXRlbSopKTsKQEAgLTI1MCw2ICsyNDgsNyBAQCBjbGFzcyBR
V0VCS0lUX0VYUE9SVCBRUXVpY2tXZWJWaWV3RXhwZXJpbWVudGFsIDogcHVibGljIFFPYmplY3Qg
ewogICAgIFFfUFJPUEVSVFkoUURlY2xhcmF0aXZlQ29tcG9uZW50KiBwcm94eUF1dGhlbnRpY2F0
aW9uRGlhbG9nIFJFQUQgcHJveHlBdXRoZW50aWNhdGlvbkRpYWxvZyBXUklURSBzZXRQcm94eUF1
dGhlbnRpY2F0aW9uRGlhbG9nIE5PVElGWSBwcm94eUF1dGhlbnRpY2F0aW9uRGlhbG9nQ2hhbmdl
ZCkKICAgICBRX1BST1BFUlRZKFFEZWNsYXJhdGl2ZUNvbXBvbmVudCogY2VydGlmaWNhdGVWZXJp
ZmljYXRpb25EaWFsb2cgUkVBRCBjZXJ0aWZpY2F0ZVZlcmlmaWNhdGlvbkRpYWxvZyBXUklURSBz
ZXRDZXJ0aWZpY2F0ZVZlcmlmaWNhdGlvbkRpYWxvZyBOT1RJRlkgY2VydGlmaWNhdGVWZXJpZmlj
YXRpb25EaWFsb2dDaGFuZ2VkKQogICAgIFFfUFJPUEVSVFkoUURlY2xhcmF0aXZlQ29tcG9uZW50
KiBpdGVtU2VsZWN0b3IgUkVBRCBpdGVtU2VsZWN0b3IgV1JJVEUgc2V0SXRlbVNlbGVjdG9yIE5P
VElGWSBpdGVtU2VsZWN0b3JDaGFuZ2VkKQorICAgIFFfUFJPUEVSVFkoUURlY2xhcmF0aXZlQ29t
cG9uZW50KiBmaWxlUGlja2VyIFJFQUQgZmlsZVBpY2tlciBXUklURSBzZXRGaWxlUGlja2VyIE5P
VElGWSBmaWxlUGlja2VyQ2hhbmdlZCkKICAgICBRX1BST1BFUlRZKFFXZWJQcmVmZXJlbmNlcyog
cHJlZmVyZW5jZXMgUkVBRCBwcmVmZXJlbmNlcyBDT05TVEFOVCBGSU5BTCkKICAgICBRX1BST1BF
UlRZKFFXZWJWaWV3cG9ydEluZm8qIHZpZXdwb3J0SW5mbyBSRUFEIHZpZXdwb3J0SW5mbyBDT05T
VEFOVCBGSU5BTCkKICAgICBRX1BST1BFUlRZKFFEZWNsYXJhdGl2ZUxpc3RQcm9wZXJ0eTxRUXVp
Y2tVcmxTY2hlbWVEZWxlZ2F0ZT4gdXJsU2NoZW1lRGVsZWdhdGVzIFJFQUQgc2NoZW1lRGVsZWdh
dGVzKQpAQCAtMjc3LDYgKzI3Niw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEl0ZW1TZWxlY3Rv
cihRRGVjbGFyYXRpdmVDb21wb25lbnQqKTsKICAgICBRRGVjbGFyYXRpdmVDb21wb25lbnQqIHBy
b3h5QXV0aGVudGljYXRpb25EaWFsb2coKSBjb25zdDsKICAgICB2b2lkIHNldFByb3h5QXV0aGVu
dGljYXRpb25EaWFsb2coUURlY2xhcmF0aXZlQ29tcG9uZW50Kik7CisgICAgUURlY2xhcmF0aXZl
Q29tcG9uZW50KiBmaWxlUGlja2VyKCkgY29uc3Q7CisgICAgdm9pZCBzZXRGaWxlUGlja2VyKFFE
ZWNsYXJhdGl2ZUNvbXBvbmVudCopOwogCiAgICAgUVdlYlZpZXdwb3J0SW5mbyogdmlld3BvcnRJ
bmZvKCk7CiAKQEAgLTMyOSw2ICszMzAsNyBAQCBRX1NJR05BTFM6CiAgICAgdm9pZCBhdXRoZW50
aWNhdGlvbkRpYWxvZ0NoYW5nZWQoKTsKICAgICB2b2lkIGNlcnRpZmljYXRlVmVyaWZpY2F0aW9u
RGlhbG9nQ2hhbmdlZCgpOwogICAgIHZvaWQgaXRlbVNlbGVjdG9yQ2hhbmdlZCgpOworICAgIHZv
aWQgZmlsZVBpY2tlckNoYW5nZWQoKTsKICAgICB2b2lkIGRvd25sb2FkUmVxdWVzdGVkKFFXZWJE
b3dubG9hZEl0ZW0qIGRvd25sb2FkSXRlbSk7CiAgICAgdm9pZCBwZXJtaXNzaW9uUmVxdWVzdGVk
KFFXZWJQZXJtaXNzaW9uUmVxdWVzdCogcGVybWlzc2lvbik7CiAgICAgdm9pZCBtZXNzYWdlUmVj
ZWl2ZWQoY29uc3QgUVZhcmlhbnRNYXAmIG1lc3NhZ2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3BfcC5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3BfcC5oCmluZGV4IDM5YTE0YTcuLjEx
Njc4ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNr
d2Vidmlld19wX3AuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlj
a3dlYnZpZXdfcF9wLmgKQEAgLTUwLDcgKzUwLDYgQEAgY2xhc3MgUVdlYlZpZXdwb3J0SW5mbzsK
IAogUVRfQkVHSU5fTkFNRVNQQUNFCiBjbGFzcyBRRGVjbGFyYXRpdmVDb21wb25lbnQ7Ci1jbGFz
cyBRRmlsZURpYWxvZzsKIFFUX0VORF9OQU1FU1BBQ0UKIAogY2xhc3MgUVF1aWNrV2ViVmlld1By
aXZhdGUgewpAQCAtOTMsOCArOTIsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIF9xX2Nv
bW1pdFNjYWxlQ2hhbmdlKCkgeyB9CiAgICAgdm9pZCBfcV9jb21taXRQb3NpdGlvbkNoYW5nZShj
b25zdCBRUG9pbnRGJik7CiAKLSAgICB2b2lkIF9xX29uT3BlblBhbmVsRmlsZXNTZWxlY3RlZCgp
OwotICAgIHZvaWQgX3Ffb25PcGVuUGFuZWxGaW5pc2hlZChpbnQgcmVzdWx0KTsKICAgICB2b2lk
IF9xX29uVmlzaWJsZUNoYW5nZWQoKTsKICAgICB2b2lkIF9xX29uVXJsQ2hhbmdlZCgpOwogICAg
IHZvaWQgX3Ffb25SZWNlaXZlZFJlc3BvbnNlRnJvbURvd25sb2FkKFFXZWJEb3dubG9hZEl0ZW0q
KTsKQEAgLTE1OCw5ICsxNTUsOSBAQCBwcm90ZWN0ZWQ6CiAgICAgUURlY2xhcmF0aXZlQ29tcG9u
ZW50KiBjZXJ0aWZpY2F0ZVZlcmlmaWNhdGlvbkRpYWxvZzsKICAgICBRRGVjbGFyYXRpdmVDb21w
b25lbnQqIGl0ZW1TZWxlY3RvcjsKICAgICBRRGVjbGFyYXRpdmVDb21wb25lbnQqIHByb3h5QXV0
aGVudGljYXRpb25EaWFsb2c7CisgICAgUURlY2xhcmF0aXZlQ29tcG9uZW50KiBmaWxlUGlja2Vy
OwogCiAgICAgV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHMgdmlld3BvcnRBcmd1bWVudHM7Ci0g
ICAgUUZpbGVEaWFsb2cqIGZpbGVEaWFsb2c7CiAgICAgV0tPcGVuUGFuZWxSZXN1bHRMaXN0ZW5l
clJlZiBvcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcjsKIAogICAgIGJvb2wgdXNlckRpZE92ZXJyaWRl
Q29udGVudFdpZHRoOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9x
dC90ZXN0cy9xbWx0ZXN0cy9EZXNrdG9wQmVoYXZpb3IucHJvIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9EZXNrdG9wQmVoYXZpb3IucHJvCmluZGV4IDlk
MTZhN2IuLjVjZjQ2Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
cXQvdGVzdHMvcW1sdGVzdHMvRGVza3RvcEJlaGF2aW9yLnBybworKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL0Rlc2t0b3BCZWhhdmlvci5wcm8KQEAg
LTE5LDQgKzE5LDUgQEAgT1RIRVJfRklMRVMgKz0gXAogICAgIERlc2t0b3BCZWhhdmlvci90c3Rf
bGlua0hvdmVyZWQucW1sIFwKICAgICBEZXNrdG9wQmVoYXZpb3IvdHN0X2xvYWRIdG1sLnFtbCBc
CiAgICAgRGVza3RvcEJlaGF2aW9yL3RzdF9tZXNzYWdpbmcucW1sIFwKLSAgICBEZXNrdG9wQmVo
YXZpb3IvdHN0X25hdmlnYXRpb25SZXF1ZXN0ZWQucW1sCisgICAgRGVza3RvcEJlaGF2aW9yL3Rz
dF9uYXZpZ2F0aW9uUmVxdWVzdGVkLnFtbCBcCisgICAgRGVza3RvcEJlaGF2aW9yL3RzdF9zaW5n
bGVmaWxldXBsb2FkLnFtbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9xdC90ZXN0cy9xbWx0ZXN0cy9EZXNrdG9wQmVoYXZpb3IvdHN0X3NpbmdsZUZpbGVVcGxvYWQu
cW1sIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9EZXNr
dG9wQmVoYXZpb3IvdHN0X3NpbmdsZUZpbGVVcGxvYWQucW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLmNlNDk1ZWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL0Rlc2t0b3BCZWhhdmlvci90c3Rfc2lu
Z2xlRmlsZVVwbG9hZC5xbWwKQEAgLTAsMCArMSw2NSBAQAoraW1wb3J0IFF0UXVpY2sgMi4wCitp
bXBvcnQgUXRUZXN0IDEuMAoraW1wb3J0IFF0V2ViS2l0IDMuMAoraW1wb3J0IFF0V2ViS2l0LmV4
cGVyaW1lbnRhbCAxLjAKK2ltcG9ydCAiLi4vY29tbW9uIgorCisvLyBGSVhNRTogQWRkZWQgdG8g
RGVza3RvcCB0ZXN0cyBiZWNhdXNlIHdlIHdhbnQgdG8gaGF2ZSBtb3VzZUNsaWNrKCkgdG8gb3Bl
biB0aGUgPGlucHV0PiB0YWcuIFdlIGNhbiBtb3ZlIGl0IGJhY2sKKy8vIHdoZW4gVGVzdENhc2Ug
c3RhcnRzIHN1cHBvcnRpbmcgdG91Y2ggZXZlbnRzLCBzZWUgaHR0cHM6Ly9idWdyZXBvcnRzLnF0
Lm5va2lhLmNvbS9icm93c2UvUVRCVUctMjMwODMuCitUZXN0V2ViVmlldyB7CisgICAgaWQ6IHdl
YlZpZXcKKworICAgIHdpZHRoOiA0MDAKKyAgICBoZWlnaHQ6IDQwMAorCisgICAgcHJvcGVydHkg
Ym9vbCBzZWxlY3RGaWxlCisKKyAgICBleHBlcmltZW50YWwuZmlsZVBpY2tlcjogSXRlbSB7Cisg
ICAgICAgIFRpbWVyIHsKKyAgICAgICAgICAgIHJ1bm5pbmc6IHRydWUKKyAgICAgICAgICAgIGlu
dGVydmFsOiAxCisgICAgICAgICAgICBvblRyaWdnZXJlZDogeworICAgICAgICAgICAgICAgIGlm
IChzZWxlY3RGaWxlKQorICAgICAgICAgICAgICAgICAgICBtb2RlbC5hY2NlcHQoImFjY2VwdGVk
ZmlsZW5hbWUiKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIG1v
ZGVsLnJlamVjdCgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgU2ln
bmFsU3B5IHsKKyAgICAgICAgaWQ6IHRpdGxlU3B5CisgICAgICAgIHRhcmdldDogd2ViVmlldwor
ICAgICAgICBzaWduYWxOYW1lOiAidGl0bGVDaGFuZ2VkIgorICAgIH0KKworICAgIFRlc3RDYXNl
IHsKKyAgICAgICAgaWQ6IHRlc3QKKyAgICAgICAgbmFtZTogIldlYlZpZXdTaW5nbGVGaWxlUGlj
a2VyIgorICAgICAgICB3aGVuOiB3aW5kb3dTaG93bgorCisgICAgICAgIGZ1bmN0aW9uIGluaXQo
KSB7CisgICAgICAgICAgICB3ZWJWaWV3LnVybCA9IFF0LnJlc29sdmVkVXJsKCIuLi9jb21tb24v
c2luZ2xlZmlsZXVwbG9hZC5odG1sIikKKyAgICAgICAgICAgIHZlcmlmeSh3ZWJWaWV3LndhaXRG
b3JMb2FkU3VjY2VlZGVkKCkpCisgICAgICAgICAgICB0aXRsZVNweS5jbGVhcigpCisgICAgICAg
IH0KKworICAgICAgICBmdW5jdGlvbiBvcGVuSXRlbVNlbGVjdG9yKCkgeworICAgICAgICAgICAg
bW91c2VDbGljayh3ZWJWaWV3LCAxNSwgMTUsIFF0LkxlZnRCdXR0b24pCisgICAgICAgIH0KKwor
ICAgICAgICBmdW5jdGlvbiB0ZXN0X2FjY2VwdCgpIHsKKyAgICAgICAgICAgIHdlYlZpZXcuc2Vs
ZWN0RmlsZSA9IHRydWU7CisgICAgICAgICAgICBvcGVuSXRlbVNlbGVjdG9yKCkKKyAgICAgICAg
ICAgIHRpdGxlU3B5LndhaXQoKQorICAgICAgICAgICAgY29tcGFyZSh3ZWJWaWV3LnRpdGxlLCAi
YWNjZXB0ZWRmaWxlbmFtZSIpCisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiB0ZXN0X3Jl
amVjdCgpIHsKKyAgICAgICAgICAgIHZhciBvbGRUaXRsZSA9IHdlYlZpZXcudGl0bGUKKyAgICAg
ICAgICAgIHdlYlZpZXcuc2VsZWN0RmlsZSA9IGZhbHNlOworICAgICAgICAgICAgb3Blbkl0ZW1T
ZWxlY3RvcigpCisgICAgICAgICAgICBjb21wYXJlKHdlYlZpZXcudGl0bGUsIG9sZFRpdGxlKQor
ICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9jb21tb24vc2luZ2xlZmlsZXVwbG9hZC5odG1sIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9jb21tb24vc2luZ2xl
ZmlsZXVwbG9hZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU4MGI5
OTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rl
c3RzL3FtbHRlc3RzL2NvbW1vbi9zaW5nbGVmaWxldXBsb2FkLmh0bWwKQEAgLTAsMCArMSwyNiBA
QAorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBpbml0aWFsLXNjYWxlPTEi
PgorPHRpdGxlPk5vIGZpbGUgc2VsZWN0ZWQ8L3RpdGxlPgorPHNjcmlwdD4KK2Z1bmN0aW9uIHVw
ZGF0ZVRpdGxlKCkKK3sKKyAgICB2YXIgaW5wID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVw
ZmlsZSIpOworICAgIHZhciBhbGxmaWxlcyA9IG5ldyBTdHJpbmcoIiIpOworICAgIHZhciBuYW1l
ID0gbmV3IFN0cmluZygiIik7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbnAuZmlsZXMubGVu
Z3RoOyArK2kpCisgICAgeworICAgICAgICBuYW1lID0gaW5wLmZpbGVzLml0ZW0oaSkubmFtZTsK
KyAgICAgICAgaWYgKGFsbGZpbGVzLmxlbmd0aCA9PSAwKQorICAgICAgICAgICAgYWxsZmlsZXMg
PSBuYW1lOworICAgICAgICBlbHNlCisgICAgICAgICAgICBhbGxmaWxlcyA9IGFsbGZpbGVzICsg
IiwiICsgbmFtZTsKKyAgICB9CisgICAgZG9jdW1lbnQudGl0bGUgPSBhbGxmaWxlczsKK30KKzwv
c2NyaXB0PgorCis8Ym9keT4KKzxpbnB1dCB0eXBlPSJmaWxlIiBuYW1lPSJmaWxlIiBpZD0idXBm
aWxlIiBvbmNoYW5nZT0idXBkYXRlVGl0bGUoKSIvPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0RGlhbG9nUnVubmVyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdERpYWxvZ1J1bm5lci5jcHAKaW5kZXggOTViZGMy
MS4uZGUxNzQxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0RGlh
bG9nUnVubmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXREaWFsb2dS
dW5uZXIuY3BwCkBAIC0xNTcsNiArMTU3LDMxIEBAIHByaXZhdGU6CiAgICAgUVN0cmluZyBtX2hv
c3RuYW1lOwogfTsKIAorY2xhc3MgRmlsZVBpY2tlckNvbnRleHRPYmplY3QgOiBwdWJsaWMgUU9i
amVjdCB7CisgICAgUV9PQkpFQ1QKKyAgICBRX1BST1BFUlRZKFFTdHJpbmdMaXN0IGZpbGVMaXN0
IFJFQUQgZmlsZUxpc3QgQ09OU1RBTlQpCisKK3B1YmxpYzoKKyAgICBGaWxlUGlja2VyQ29udGV4
dE9iamVjdChjb25zdCBRU3RyaW5nTGlzdCYgc2VsZWN0ZWRGaWxlcykKKyAgICAgICAgOiBRT2Jq
ZWN0KCkKKyAgICAgICAgLCBtX2ZpbGVMaXN0KHNlbGVjdGVkRmlsZXMpCisgICAgeworICAgIH0K
KworICAgIFFTdHJpbmdMaXN0IGZpbGVMaXN0KCkgY29uc3Qge3JldHVybiBtX2ZpbGVMaXN0OyB9
CisKK3B1YmxpYyBzbG90czoKKyAgICB2b2lkIHJlamVjdCgpIHsgZW1pdCByZWplY3RlZCgpO30K
KyAgICB2b2lkIGFjY2VwdChjb25zdCBRVmFyaWFudCYgcGF0aCkgeyBlbWl0IGZpbGVTZWxlY3Rl
ZChwYXRoLnRvU3RyaW5nTGlzdCgpKTsgfQorCitzaWduYWxzOgorICAgIHZvaWQgcmVqZWN0ZWQo
KTsKKyAgICB2b2lkIGZpbGVTZWxlY3RlZChjb25zdCBRU3RyaW5nTGlzdCYpOworCitwcml2YXRl
OgorICAgIFFTdHJpbmdMaXN0IG1fZmlsZUxpc3Q7Cit9OworCiBib29sIFF0RGlhbG9nUnVubmVy
Ojppbml0Rm9yQWxlcnQoUURlY2xhcmF0aXZlQ29tcG9uZW50KiBjb21wb25lbnQsIFFRdWlja0l0
ZW0qIGRpYWxvZ1BhcmVudCwgY29uc3QgUVN0cmluZyYgbWVzc2FnZSkKIHsKICAgICBEaWFsb2dD
b250ZXh0T2JqZWN0KiBjb250ZXh0T2JqZWN0ID0gbmV3IERpYWxvZ0NvbnRleHRPYmplY3QobWVz
c2FnZSk7CkBAIC0yMzAsNiArMjU1LDE5IEBAIGJvb2wgUXREaWFsb2dSdW5uZXI6OmluaXRGb3JD
ZXJ0aWZpY2F0ZVZlcmlmaWNhdGlvbihRRGVjbGFyYXRpdmVDb21wb25lbnQqIGNvbXBvCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKK2Jvb2wgUXREaWFsb2dSdW5uZXI6OmluaXRGb3JGaWxlUGlja2Vy
KFFEZWNsYXJhdGl2ZUNvbXBvbmVudCogY29tcG9uZW50LCBRUXVpY2tJdGVtKiBkaWFsb2dQYXJl
bnQsIGNvbnN0IFFTdHJpbmdMaXN0JiBzZWxlY3RlZEZpbGVzKQoreworICAgIEZpbGVQaWNrZXJD
b250ZXh0T2JqZWN0KiBjb250ZXh0T2JqZWN0ID0gbmV3IEZpbGVQaWNrZXJDb250ZXh0T2JqZWN0
KHNlbGVjdGVkRmlsZXMpOworICAgIGlmICghY3JlYXRlRGlhbG9nKGNvbXBvbmVudCwgZGlhbG9n
UGFyZW50LCBjb250ZXh0T2JqZWN0KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgY29u
bmVjdChjb250ZXh0T2JqZWN0LCBTSUdOQUwoZmlsZVNlbGVjdGVkKFFTdHJpbmdMaXN0KSksIFNM
T1Qob25GaWxlU2VsZWN0ZWQoUVN0cmluZ0xpc3QpKSk7CisgICAgY29ubmVjdChjb250ZXh0T2Jq
ZWN0LCBTSUdOQUwoZmlsZVNlbGVjdGVkKFFTdHJpbmdMaXN0KSksIFNMT1QocXVpdCgpKSk7Cisg
ICAgY29ubmVjdChjb250ZXh0T2JqZWN0LCBTSUdOQUwocmVqZWN0ZWQoKSksIFNMT1QocXVpdCgp
KSk7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogYm9vbCBRdERpYWxvZ1J1bm5lcjo6Y3JlYXRl
RGlhbG9nKFFEZWNsYXJhdGl2ZUNvbXBvbmVudCogY29tcG9uZW50LCBRUXVpY2tJdGVtKiBkaWFs
b2dQYXJlbnQsIFFPYmplY3QqIGNvbnRleHRPYmplY3QpCiB7CiAgICAgUURlY2xhcmF0aXZlQ29u
dGV4dCogYmFzZUNvbnRleHQgPSBjb21wb25lbnQtPmNyZWF0aW9uQ29udGV4dCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0RGlhbG9nUnVubmVyLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXREaWFsb2dSdW5uZXIuaAppbmRleCA3ZmJhY2UxLi4w
ZTk0ODFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXREaWFsb2dS
dW5uZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXREaWFsb2dSdW5uZXIu
aApAQCAtMjIsNiArMjIsNyBAQAogI2RlZmluZSBRdERpYWxvZ1J1bm5lcl9oCiAKICNpbmNsdWRl
IDxRdENvcmUvUUV2ZW50TG9vcD4KKyNpbmNsdWRlIDxRdENvcmUvUVN0cmluZ0xpc3Q+CiAjaW5j
bHVkZSA8d3RmL093blB0ci5oPgogCiBjbGFzcyBRRGVjbGFyYXRpdmVDb21wb25lbnQ7CkBAIC00
MSw2ICs0Miw3IEBAIHB1YmxpYzoKICAgICBib29sIGluaXRGb3JBdXRoZW50aWNhdGlvbihRRGVj
bGFyYXRpdmVDb21wb25lbnQqLCBRUXVpY2tJdGVtKiBkaWFsb2dQYXJlbnQsIGNvbnN0IFFTdHJp
bmcmIGhvc3RuYW1lLCBjb25zdCBRU3RyaW5nJiByZWFsbSwgY29uc3QgUVN0cmluZyYgcHJlZmls
bGVkVXNlcm5hbWUpOwogICAgIGJvb2wgaW5pdEZvckNlcnRpZmljYXRlVmVyaWZpY2F0aW9uKFFE
ZWNsYXJhdGl2ZUNvbXBvbmVudCosIFFRdWlja0l0ZW0qLCBjb25zdCBRU3RyaW5nJiBob3N0bmFt
ZSk7CiAgICAgYm9vbCBpbml0Rm9yUHJveHlBdXRoZW50aWNhdGlvbihRRGVjbGFyYXRpdmVDb21w
b25lbnQqLCBRUXVpY2tJdGVtKiwgY29uc3QgUVN0cmluZyYgaG9zdG5hbWUsIHVpbnQxNl90IHBv
cnQsIGNvbnN0IFFTdHJpbmcmIHByZWZpbGxlZFVzZXJuYW1lKTsKKyAgICBib29sIGluaXRGb3JG
aWxlUGlja2VyKFFEZWNsYXJhdGl2ZUNvbXBvbmVudCosIFFRdWlja0l0ZW0qLCBjb25zdCBRU3Ry
aW5nTGlzdCYgc2VsZWN0ZWRGaWxlcyk7CiAKICAgICBRUXVpY2tJdGVtKiBkaWFsb2coKSBjb25z
dCB7IHJldHVybiBtX2RpYWxvZy5nZXQoKTsgfQogCkBAIC01MCw2ICs1Miw4IEBAIHB1YmxpYzoK
ICAgICBRU3RyaW5nIHVzZXJuYW1lKCkgY29uc3QgeyByZXR1cm4gbV91c2VybmFtZTsgfQogICAg
IFFTdHJpbmcgcGFzc3dvcmQoKSBjb25zdCB7IHJldHVybiBtX3Bhc3N3b3JkOyB9CiAKKyAgICBR
U3RyaW5nTGlzdCBmaWxlUGF0aHMoKSBjb25zdCB7IHJldHVybiBtX2ZpbGVwYXRoczsgfQorCiBw
dWJsaWMgc2xvdHM6CiAgICAgdm9pZCBvbkFjY2VwdGVkKGNvbnN0IFFTdHJpbmcmIHJlc3VsdCA9
IFFTdHJpbmcoKSkKICAgICB7CkBAIC02Myw2ICs2NywxMiBAQCBwdWJsaWMgc2xvdHM6CiAgICAg
ICAgIG1fcGFzc3dvcmQgPSBwYXNzd29yZDsKICAgICB9CiAKKyAgICB2b2lkIG9uRmlsZVNlbGVj
dGVkKGNvbnN0IFFTdHJpbmdMaXN0JiBmaWxlUGF0aHMpCisgICAgeworICAgICAgICBtX3dhc0Fj
Y2VwdGVkID0gdHJ1ZTsKKyAgICAgICAgbV9maWxlcGF0aHMgPSBmaWxlUGF0aHM7CisgICAgfQor
CiBwcml2YXRlOgogICAgIGJvb2wgY3JlYXRlRGlhbG9nKFFEZWNsYXJhdGl2ZUNvbXBvbmVudCos
IFFRdWlja0l0ZW0qIGRpYWxvZ1BhcmVudCwgUU9iamVjdCogY29udGV4dE9iamVjdCk7CiAKQEAg
LTczLDYgKzgzLDcgQEAgcHJpdmF0ZToKIAogICAgIFFTdHJpbmcgbV91c2VybmFtZTsKICAgICBR
U3RyaW5nIG1fcGFzc3dvcmQ7CisgICAgUVN0cmluZ0xpc3QgbV9maWxlcGF0aHM7CiB9OwogCiAj
ZW5kaWYgLy8gUXREaWFsb2dSdW5uZXJfaApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIv
VG9vbHMvQ2hhbmdlTG9nCmluZGV4IGFhOTk1YzEuLjNlNzYxMGUgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMi0w
My0xNSAgRGludSBKYWNvYiAgPGRpbnUuamFjb2JAbm9raWEuY29tPgorCisgICAgICAgIFtRdF1b
V2syXSBBc3NlcnRpb24gRmFpbHVyZSBhbmQgY3Jhc2ggb24gZmlsZSB1cGxvYWQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgwODU0CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgZmlsZVBpY2tlciB0
byBXZWJWaWV3IHVzaW5nIGV4cGVyaW1lbnRhbCBBUEkuCisKKyAgICAgICAgKiBNaW5pQnJvd3Nl
ci9xdC9NaW5pQnJvd3Nlci5xcmM6CisgICAgICAgICogTWluaUJyb3dzZXIvcXQvaWNvbnMvZm9s
ZGVyLnBuZzogQWRkZWQuCisgICAgICAgICogTWluaUJyb3dzZXIvcXQvaWNvbnMvdGl0bGViYXIu
cG5nOiBBZGRlZC4KKyAgICAgICAgKiBNaW5pQnJvd3Nlci9xdC9pY29ucy91cC5wbmc6IEFkZGVk
LgorICAgICAgICAqIE1pbmlCcm93c2VyL3F0L3FtbC9Ccm93c2VyV2luZG93LnFtbDoKKyAgICAg
ICAgKiBNaW5pQnJvd3Nlci9xdC9xbWwvRmlsZVBpY2tlci5xbWw6IEFkZGVkLgorCiAyMDEyLTAz
LTE0ICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxnbnNAZ25vbWUub3JnPgogCiAgICAgICAgIHNo
ZXJpZmZib3Qgc2hvdWxkIGFsc28gYmUgYWRkcmVzc2FibGUgd2l0aCBhIGNvbW1hIGluIGFkZGl0
aW9uIHRvIGNvbG9uCmRpZmYgLS1naXQgYS9Ub29scy9NaW5pQnJvd3Nlci9xdC9NaW5pQnJvd3Nl
ci5xcmMgYi9Ub29scy9NaW5pQnJvd3Nlci9xdC9NaW5pQnJvd3Nlci5xcmMKaW5kZXggZTAwYzUx
ZS4uNjAyNjViNiAxMDA2NDQKLS0tIGEvVG9vbHMvTWluaUJyb3dzZXIvcXQvTWluaUJyb3dzZXIu
cXJjCisrKyBiL1Rvb2xzL01pbmlCcm93c2VyL3F0L01pbmlCcm93c2VyLnFyYwpAQCAtMSwxMyAr
MSwxNyBAQAogPFJDQz4KICAgICA8cXJlc291cmNlIHByZWZpeD0iLyI+CisgICAgICAgIDxmaWxl
Pmljb25zL2Zhdmljb24ucG5nPC9maWxlPgorICAgICAgICA8ZmlsZT5pY29ucy9mb2xkZXIucG5n
PC9maWxlPgogICAgICAgICA8ZmlsZT5pY29ucy9pbmZvLnBuZzwvZmlsZT4KICAgICAgICAgPGZp
bGU+aWNvbnMvbmV4dC5wbmc8L2ZpbGU+CiAgICAgICAgIDxmaWxlPmljb25zL3BsdXMucG5nPC9m
aWxlPgogICAgICAgICA8ZmlsZT5pY29ucy9wcmV2aW91cy5wbmc8L2ZpbGU+CiAgICAgICAgIDxm
aWxlPmljb25zL3JlZnJlc2gucG5nPC9maWxlPgogICAgICAgICA8ZmlsZT5pY29ucy9zdG9wLnBu
ZzwvZmlsZT4KKyAgICAgICAgPGZpbGU+aWNvbnMvdGl0bGViYXIucG5nPC9maWxlPgogICAgICAg
ICA8ZmlsZT5pY29ucy90b3VjaC5wbmc8L2ZpbGU+CiAgICAgICAgIDxmaWxlPmljb25zL3RvdWNo
cG9pbnQucG5nPC9maWxlPgorICAgICAgICA8ZmlsZT5pY29ucy91cC5wbmc8L2ZpbGU+CiAgICAg
ICAgIDxmaWxlPnFtbC9BbGVydERpYWxvZy5xbWw8L2ZpbGU+CiAgICAgICAgIDxmaWxlPnFtbC9B
dXRoZW50aWNhdGlvbkRpYWxvZy5xbWw8L2ZpbGU+CiAgICAgICAgIDxmaWxlPnFtbC9Ccm93c2Vy
V2luZG93LnFtbDwvZmlsZT4KQEAgLTE1LDYgKzE5LDcgQEAKICAgICAgICAgPGZpbGU+cW1sL0Rp
YWxvZy5xbWw8L2ZpbGU+CiAgICAgICAgIDxmaWxlPnFtbC9EaWFsb2dCdXR0b24ucW1sPC9maWxl
PgogICAgICAgICA8ZmlsZT5xbWwvRGlhbG9nTGluZUlucHV0LnFtbDwvZmlsZT4KKyAgICAgICAg
PGZpbGU+cW1sL0ZpbGVQaWNrZXIucW1sPC9maWxlPgogICAgICAgICA8ZmlsZT5xbWwvSXRlbVNl
bGVjdG9yLnFtbDwvZmlsZT4KICAgICAgICAgPGZpbGU+cW1sL01vY2tUb3VjaFBvaW50LnFtbDwv
ZmlsZT4KICAgICAgICAgPGZpbGU+cW1sL1Byb21wdERpYWxvZy5xbWw8L2ZpbGU+CkBAIC0yMiw2
ICsyNyw1IEBACiAgICAgICAgIDxmaWxlPnFtbC9TY3JvbGxJbmRpY2F0b3IucW1sPC9maWxlPgog
ICAgICAgICA8ZmlsZT5xbWwvVmlld3BvcnRJbmZvSXRlbS5xbWw8L2ZpbGU+CiAgICAgICAgIDxm
aWxlPnVzZXJhZ2VudGxpc3QudHh0PC9maWxlPgotICAgICAgICA8ZmlsZT5pY29ucy9mYXZpY29u
LnBuZzwvZmlsZT4KICAgICA8L3FyZXNvdXJjZT4KIDwvUkNDPgpkaWZmIC0tZ2l0IGEvVG9vbHMv
TWluaUJyb3dzZXIvcXQvaWNvbnMvZm9sZGVyLnBuZyBiL1Rvb2xzL01pbmlCcm93c2VyL3F0L2lj
b25zL2ZvbGRlci5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTUzZTJhZDQ2NGViOTkzMjU2YTZjMzU2N2ZjOTQw
NDk4ZTI2ZmM4YgpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMTg0MQp6Y21WLTEyaFJBM1ApPGg7
M0t8TGswMDBlMU5KTFRxMDAxQlcwMDFCZTFeQHM2YjkjRjgwMDAwNGIzI2N9Mm5ZeFcKemQ8Yk5T
MDAwMDlhN2JCbTAwMCQhMDAwJCEwWSY9IXA4eDs9OEZXUWhiVz85O2JhIUVMV2RMX35jUD9wZVlq
YX5eCnphQWh1VWElWT9GSlFASDEyQ2hqJkt+enxVeV9SV2dSTSE+OXxMNDlwYCN4VTRHWkA8dzt+
NExJeiR2ekkwVypOMwp6a2BeX0JHKlYzeHNhdWl7RU54Uk1Ra0FIYihueWc9LUJiZEhCclQ7Uk8p
VX5xbHRke3BUazRlNSFWcmFrODlYKyYKem5aQEpyJSRwZ3the0l3SEhmQnNiQ0dBZ29BRmwzdT1s
JCtFPWV+RHxiQj8oZmpvT3RKNzVVRV40QkE/flVhYk93CnpjfDg4MXZ1N0BEOVVVRi16VDwmPUsl
Nn13QjIjbTc8O09wSD5mdlFldmVPaE12bGVvPjAwOGlmTzhJR05oTDZsPAp6e2FVWnJmQSglY0V0
ZDM2ckRiYH41aCZpQD8+aDROPVo+U0NeTVM3djBQcjNBaFB2V3shWXRDODxXUTwrcldhWSUKemtT
blYrTUVHRlFCSjsrUDUkYHxkMXx1VG5pal9zaitTPT81eHdjRj5LcDY3e1llejxXRktwYmoodEc7
VWclK1BMCnphUGUqZUE8dzhjVztFNXk3JTMzK2QhVyl0VTsrbSpMU0RXWjgoT1E/OGpiUkpNTWVI
Z0p2fj9WMHRmKn1EPUVwXwp6eWskJCVeWXp+LShrKEJ9VnBAWTcwMXllcVNVN0FeNl9zUkxtbl9O
WEUtQjZYUDQ5KGsmJj8rZ19LbDVDaClnR3wKelUkR2ZKcEFYSn5ZWH01OTIhKnxmYjJrPVM2SWsw
KXJwak10LVN5eT1we0ZfTFQmR2khSVpZP2EkOyVLa3YoJTYpCnoxYU9gSjBMWWFMYXdVVVNaLVQq
Q3B8Vj1qZXBYJl8tX285Y1U7VGJrZmp9U31rSHVwRTBIZV9lcXB8WVZXRlFiZwp6ZX01a288YnEh
N1ZLJj5haW8qKmdCcHtQQnM1QW5BMVNUZEROdmFKUCVyYUUzJGRVUXxISUxZQVN0dEFZaEYtbSsK
ejFYM15AaSUkdjZNWFN9S3NIcDdMU2R0Xy1vZXFycGg5T0JGZ283QFMtfnpGRCgmcXN7NVBgYi1K
Zit2Oy0+PWlECnp8MyVaPWtjZ0g3YyZ3OzZge3gjbVJoNjUyS2d2cTAoOXFDYF43OFV8MUl7S0Fp
TkhERmZaS0JlTENKJH4jRCE/JAp6MXtrfEBMQm9SKmp7TkQ9Mm13JFA2bDVSVHc1aUZTbzBxMEVu
S2ghPnRjNF4rO0pQYDZEXzJ+JmJaRyNxbl9BRzsKel9CaGhoKC0kTkkwTVRkXmdNJl90eFNSK0Mr
PnBYSTVzM34wNmIxbWl4YVlXK1kmT2VsZHclYFlIZEFfdE8qaFY1Cno1XilpaXppe0xJNkJrZmp5
JFU7Ynt1RkFwZGNoKm8jOX1jeDlETyp+e1RGY04hSCVhcGg4YmYqdEhDX34lSz9CMQp6RiUlWFZA
I0FNMnExQ3ozYHBfREBAPTgxNkAlZHw9M3tlemV1YEVGPnN6N2pEMVVMczleTikzWStJQExKMGYt
VlAKenQ0em52LVJtJGtAK3EyfD4oU1pTblVhSmMycHwjPWleYWpnIUNXYH1gfkxkb0MhVW1vaHpV
SG4lOERKaypRMlpKCnpEODlMLTVlfG5WYnBafUEmVXg+M2hzIWZJQ1opNnowOHB3cFN+bEE3I0ZP
PVM7Pm9RemFeIUdJMHNzZENmS1dLUAp6fE5ScF47Z2spZ05Ydzk2PVdhWHgrNUlscys4I3FGNnFA
JjVBXzcyJiNTLThnIX5oQHwycEBYKSohaSpsUnNhQnEKek1Ye2xeMDFadGB2OTZeTnl9aUJqLXBm
Y3BKVS1kPDM7O09pez5WaEVgfD1rPF91X3k9QV9pK1YhP1ZCbUhsQlpCCno3dXdyalBBKkdxc3Qy
WUAwMDNeNmZBOENHclBocXxBO15PRyFIPTVKKkxNemtfd0dxJWZjUnR5VyZ9OXJVNihFbgp6MkVG
Ykc1e1d4Y052U2RzXmByRyRyNUdPVyNsZUZJWmt3QWEhS0A0YktwK3Q2eGJvI3FJSW80XmFaTW1Q
JnRHayEKekw/IX13Y3VOaD1mQSNAN0pPNEgjekBgUTBjN2dIbigyS3ZfY2w1S3ZoZDw8bDEzbkQp
aGNSKl5mez5LajdqSEo5Cnp1b3Y0TlpOI3k2LW9VOS1UPnZKeDstbTw+e1hEPXFfWERVUnFLcT9W
Rjg7MnRGbFYhVUwjPmRQWWteRzhwZmAlcAp6Pk8+SHdDSn5Uc1ZFZn1PKnRLSF55MUc3ckQ5V1k7
aHxONkBPcENZeFkjfTEqPkFDdWgmNmY0Y1JTbCl1Mk9lMEMKelFJODBuVVdERXRMSiR7ajUpMktY
cSU8NGQtUUJrYEsqVGBGal4pVzlxTG1xJGhKKTJyMV4ySU9zVWZYSzRVSkJPCnotWTd6JFV8JF5v
ZmIrVF5BQUxCQ3Q9a15LJCojOT9zTilAMShoTVluYkFBQFVhdzBPRkpsVjZxeEgkS18+K1E5fAp6
KChKYGhDPmFiIThQcjxndH0oSzZeY1dwSTRAcmB5N0xgSDxsMGlnMiUrSSZ9cztRfD1Vc0Y+RXht
PWorNlRKdz0Kemw5JVZxWCRPVnxXaVhtIWM7bUpBLTFqNmZPUWIzeik2aHtAVFVmZXdUe1VVY0Qo
TGhnYlZlQ3V2ZkQpPjtXKy0jCnplaX11a0lyIXUyQyV6dG1TdDVGK1F1YjA9YEYpU3QqVmw/eFli
TW0xJCpkPzxHdnpzUHs3WDBvLThncjtfdjtteQp6QmVUN3J6YEFlcz5QbGwoKWlOailsTVNvVWlF
diZZJE00KCE0ITZ0aVVUX25wM2dgUilmQ0VIU3dzXjZycXBxJjcKemE/UDQqUW1ZbHZYcTdPVHdE
NVl5PjNeMWl4ZSQ/N3JJem9qRDlfKCt4N1Vpa3VefDNAXyt2amY9bH1QTWhgd2pECmZFcHA0ezs+
M1JkJiErWU56d0FiZTAwMDAwTmt2WFh1MG1qZk1IKjwtCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEK
CmRpZmYgLS1naXQgYS9Ub29scy9NaW5pQnJvd3Nlci9xdC9pY29ucy90aXRsZWJhci5wbmcgYi9U
b29scy9NaW5pQnJvd3Nlci9xdC9pY29ucy90aXRsZWJhci5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjNkMThh
YTgyZTkzZDg5OWFmODNhOWQ4NmI4YzBhYWMxZjZlYTJhMgpHSVQgYmluYXJ5IHBhdGNoCmxpdGVy
YWwgMTk3CnpjbWVBU0BOPyhvbEh5YHVWQnEhaWEwdnBeMjAqT0MhMn40Tmwma0A5Nz5rNDRvZnlg
Z2xYKGZgdSV0V3NJeDtZOQp6P0MxV0kkT2AwaDdJO0ohR2NYOTFmSDMyfEgyRGdrVjNlbmVWQFFQ
aStlO2UtODROZyU3X2c9TXVhdDFxWk4wcWYKejtndEVjLT01dkh6M3VwR1Z2RXFFaEFMPzw1Mmpi
UzhqNzROd2w4Y15TI1lsbnphVj9makwwbks3eFFsY1pESF9xCkxePmJQMGwrWGtLPztTdSgKCmxp
dGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL1Rvb2xzL01pbmlCcm93c2VyL3F0L2lj
b25zL3VwLnBuZyBiL1Rvb2xzL01pbmlCcm93c2VyL3F0L2ljb25zL3VwLnBuZwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5iMDVmODAyNWQwMTU3YTVlN2IyNzkyYjA1OGNkYjQ1NTNiMWQ2YmZmCkdJVCBiaW5hcnkgcGF0
Y2gKbGl0ZXJhbCA2NjIKemNtVjtIMCVgcTtQKTxoOzNLfExrMDAwZTFOSkxUcTAwMHNJMDAwc1Ex
XkBzNlI/ZCFCMDAwMDFiNWNoXzBJdHApCno9PlB4IzI0WUpgTDsoSyl7e2E3Pnl7RDReMDAwU2FO
TGgwTDAxRmNVMDFGY1YwR2daXzAwMDA3YlYqR2AyaVhTQAp6MDU9cW8wVF9WKjAwSV9DTF90KEkl
ZXxEKFlaRX5mJDNKZ29IYCRtM0B9b15td1RkMUQ1JXB4WDIxOFhXZGhwO00KenBodyRfKVJXJTRE
fHFrQ0tmd1AkNUVNS31RTil2PTJyNS1jSEVEaXFsYlk9OGRneUsmKGwrWUYyYWckO25hfSZhCnpu
ZkNfJXFna1BrSDJzSjVRWUB9LVlnO1pFRlgjWChmY2FNPzZSRVZsYz03N04maD1aOXl+REAhUT1r
SUd7I0tEXwp6RWQ/aUctOG5iQXw3TGtNP2QtYF9idm5+SztJPXVzKjVyZTRfJiUmYDglUyNAV09C
fktzWS1FZmBhKTlzZEt1JXAKeldiJngmNz9XPDM2WVUxP2U4VkB1LXdqa3VydEdfPyU3d1lnPHNA
UVBAcjtYNzBhYDtZNTgxcXdueVZiQ3VrYXFXCnpWMXVCJnNrRDhzZTctYjRKKEpXcnpKbGtxUH51
fUwoNHB0QGtRPGtZV31RUnpBQUFENzAlajAmPEA4SyE7cDl7Jgp6OCVzMlI0b2R0QEttPVFOIThm
UT5PNz9aVDxRcH5LMEpUOS09Z1VYJCpVTSsjY3koRDcmend5RkoqKV5LVUBLXkAKeiFzN2tGeWp8
aXxxc0FsUEhQQlpCcHdHWXE7Rl8lK2wxPkkmenpXP0NmdEcqPk88KjIpMDt+aTZWOHNUMjJYc1pp
CnprXm9CdXM0eWpeS3RnNVZVS2R5Y2BhbSNUYGF4NzVJKmNBY2xtZXh9UilQPmpLfjN+KEpOQSRl
QWloQy01Q0hgVQp6OCo/cWV0Xz9ZQ2V5aTJ+YFFtd2QleWw7b2l3YzFQe1hRNSZFbE8hQ187eiFF
OF5IMGZ1aztTLUY5REIlYzYxZG8KdztfSFkzYWxqcns0RGBhKytFZ1ZZeD9lYEQyU1gjajBzWHE5
R1M9YXVOZE4hPDA3KnFvTTZOPCRnOGJuaE1nUlorCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRp
ZmYgLS1naXQgYS9Ub29scy9NaW5pQnJvd3Nlci9xdC9xbWwvQnJvd3NlcldpbmRvdy5xbWwgYi9U
b29scy9NaW5pQnJvd3Nlci9xdC9xbWwvQnJvd3NlcldpbmRvdy5xbWwKaW5kZXggYjRlNmUyNC4u
Y2Y3NGIyMiAxMDA2NDQKLS0tIGEvVG9vbHMvTWluaUJyb3dzZXIvcXQvcW1sL0Jyb3dzZXJXaW5k
b3cucW1sCisrKyBiL1Rvb2xzL01pbmlCcm93c2VyL3F0L3FtbC9Ccm93c2VyV2luZG93LnFtbApA
QCAtMzEzLDYgKzMxMyw3IEBAIFJlY3RhbmdsZSB7CiAgICAgICAgIGV4cGVyaW1lbnRhbC5wcm9t
cHREaWFsb2c6IFByb21wdERpYWxvZyB7IH0KICAgICAgICAgZXhwZXJpbWVudGFsLmF1dGhlbnRp
Y2F0aW9uRGlhbG9nOiBBdXRoZW50aWNhdGlvbkRpYWxvZyB7IH0KICAgICAgICAgZXhwZXJpbWVu
dGFsLnByb3h5QXV0aGVudGljYXRpb25EaWFsb2c6IFByb3h5QXV0aGVudGljYXRpb25EaWFsb2cg
eyB9CisgICAgICAgIGV4cGVyaW1lbnRhbC5maWxlUGlja2VyOiBGaWxlUGlja2VyIHsgfQogCiAg
ICAgICAgIFNjcm9sbEluZGljYXRvciB7CiAgICAgICAgICAgICBmbGlja2FibGVJdGVtOiB3ZWJW
aWV3LmV4cGVyaW1lbnRhbC5mbGlja2FibGUKZGlmZiAtLWdpdCBhL1Rvb2xzL01pbmlCcm93c2Vy
L3F0L3FtbC9GaWxlUGlja2VyLnFtbCBiL1Rvb2xzL01pbmlCcm93c2VyL3F0L3FtbC9GaWxlUGlj
a2VyLnFtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YmViODZhCi0tLSAv
ZGV2L251bGwKKysrIGIvVG9vbHMvTWluaUJyb3dzZXIvcXQvcW1sL0ZpbGVQaWNrZXIucW1sCkBA
IC0wLDAgKzEsMTgyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIE5va2lhIENvcnBvcmF0
aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg
bGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhl
IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICog
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICog
WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IHNlZSB0aGUgZmls
ZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0
b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworaW1wb3J0IFF0UXVpY2sgMi4wCitp
bXBvcnQgUXQubGFicy5mb2xkZXJsaXN0bW9kZWwgMS4wCisKK1JlY3RhbmdsZSB7CisgICAgaWQ6
IGZpbGVQaWNrZXIKKworICAgIHByb3BlcnR5IFF0T2JqZWN0IGZpbGVNb2RlbDogbW9kZWwKKyAg
ICBwcm9wZXJ0eSBhbGlhcyBmb2xkZXI6IGZvbGRlcnMuZm9sZGVyCisKKyAgICBjb2xvcjogIndo
aXRlIgorICAgIHdpZHRoOiA0MDAKKyAgICBoZWlnaHQ6IDUwMAorCisgICAgc21vb3RoOiB0cnVl
CisgICAgcmFkaXVzOiA1CisgICAgYW5jaG9ycy5jZW50ZXJJbjogcGFyZW50CisKKyAgICBib3Jk
ZXIgeworICAgICAgICB3aWR0aDogMQorICAgICAgICBjb2xvcjogIiNiZmJmYmYiCisgICAgfQor
CisgICAgQm9yZGVySW1hZ2UgeworICAgICAgICBzb3VyY2U6ICIuLi9pY29ucy90aXRsZWJhci5w
bmciOworICAgICAgICB3aWR0aDogcGFyZW50LndpZHRoOworICAgICAgICBoZWlnaHQ6IDUwCisg
ICAgICAgIHk6IC03CisgICAgICAgIGlkOiB0aXRsZUJhcgorCisgICAgICAgIGFuY2hvcnMgewor
ICAgICAgICAgICAgdG9wOiBwYXJlbnQudG9wCisgICAgICAgICAgICBib3R0b206IGZvbGRlckxp
c3RWaWV3LnRvcAorICAgICAgICB9CisgICAgICAgIFJlY3RhbmdsZSB7CisgICAgICAgICAgICBp
ZDogdXBCdXR0b24KKyAgICAgICAgICAgIHdpZHRoOiA0OAorICAgICAgICAgICAgaGVpZ2h0OiB0
aXRsZUJhci5oZWlnaHQgLSA3CisgICAgICAgICAgICBjb2xvcjogInRyYW5zcGFyZW50IgorICAg
ICAgICAgICAgSW1hZ2UgeyBhbmNob3JzLmNlbnRlckluOiBwYXJlbnQ7IHNvdXJjZTogIi4uL2lj
b25zL3VwLnBuZyIgfQorICAgICAgICAgICAgTW91c2VBcmVhIHsgaWQ6IHVwUmVnaW9uOyBhbmNo
b3JzLmNlbnRlckluOiBwYXJlbnQKKyAgICAgICAgICAgICAgICB3aWR0aDogNDgKKyAgICAgICAg
ICAgICAgICBoZWlnaHQ6IDQ4CisgICAgICAgICAgICAgICAgb25DbGlja2VkOiBpZiAoZm9sZGVy
cy5wYXJlbnRGb2xkZXIgIT0gIiIpIHVwKCkKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisg
ICAgICAgIFJlY3RhbmdsZSB7CisgICAgICAgICAgICBjb2xvcjogImdyYXkiCisgICAgICAgICAg
ICB4OiA0OAorICAgICAgICAgICAgd2lkdGg6IDEKKyAgICAgICAgICAgIGhlaWdodDogNDQKKyAg
ICAgICAgfQorCisgICAgICAgIFRleHQgeworICAgICAgICAgICAgYW5jaG9ycyB7CisgICAgICAg
ICAgICAgICAgbGVmdDogdXBCdXR0b24ucmlnaHQKKyAgICAgICAgICAgICAgICByaWdodDogcGFy
ZW50LnJpZ2h0CisgICAgICAgICAgICAgICAgbGVmdE1hcmdpbjogNAorICAgICAgICAgICAgICAg
IHJpZ2h0TWFyZ2luOiA0CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGhlaWdodDogcGFy
ZW50LmhlaWdodAorICAgICAgICAgICAgdGV4dDogZm9sZGVycy5mb2xkZXIKKyAgICAgICAgICAg
IGNvbG9yOiAid2hpdGUiCisgICAgICAgICAgICBlbGlkZTogVGV4dC5FbGlkZUxlZnQ7CisgICAg
ICAgICAgICBob3Jpem9udGFsQWxpZ25tZW50OiBUZXh0LkFsaWduTGVmdDsKKyAgICAgICAgICAg
IHZlcnRpY2FsQWxpZ25tZW50OiBUZXh0LkFsaWduVkNlbnRlcgorICAgICAgICAgICAgZm9udC5w
aXhlbFNpemU6IDI0CisgICAgICAgIH0KKyAgICB9CisKKyAgICBMaXN0VmlldyB7CisgICAgICAg
IGlkOiBmb2xkZXJMaXN0VmlldworCisgICAgICAgIHdpZHRoOiBwYXJlbnQud2lkdGgKKyAgICAg
ICAgaGVpZ2h0OiA0MDAKKyAgICAgICAgYW5jaG9ycy5jZW50ZXJJbjogcGFyZW50CisgICAgICAg
IHNwYWNpbmc6IDIKKyAgICAgICAgY2xpcDogdHJ1ZQorCisgICAgICAgIEZvbGRlckxpc3RNb2Rl
bCB7CisgICAgICAgICAgICBpZDogZm9sZGVycworICAgICAgICB9CisKKyAgICAgICAgQ29tcG9u
ZW50IHsKKyAgICAgICAgICAgIGlkOiBmaWxlRGVsZWdhdGUKKworICAgICAgICAgICAgUmVjdGFu
Z2xlIHsKKyAgICAgICAgICAgICAgICBmdW5jdGlvbiBzZWxlY3RlZCgpIHsKKyAgICAgICAgICAg
ICAgICAgICAgaWYgKGZvbGRlcnMuaXNGb2xkZXIoaW5kZXgpKQorICAgICAgICAgICAgICAgICAg
ICAgICAgb3BlbkZvbGRlcihmaWxlUGF0aCk7CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGZpbGVNb2RlbC5hY2NlcHQoZmlsZVBhdGgpOworICAgICAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGhlaWdodDogNTAKKyAgICAgICAgICAgICAg
ICB3aWR0aDogcGFyZW50LndpZHRoCisgICAgICAgICAgICAgICAgY29sb3I6IGZvbGRlcnMuaXNG
b2xkZXIoaW5kZXgpID8gImxpZ2h0Z3JheSI6ICJkYXJrZ3JheSIKKworICAgICAgICAgICAgICAg
IEl0ZW0geworICAgICAgICAgICAgICAgICAgICB3aWR0aDogNDg7CisgICAgICAgICAgICAgICAg
ICAgIGhlaWdodDogNDgKKyAgICAgICAgICAgICAgICAgICAgSW1hZ2UgeworICAgICAgICAgICAg
ICAgICAgICAgICAgc291cmNlOiAiLi4vaWNvbnMvZm9sZGVyLnBuZyIKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGFuY2hvcnMuY2VudGVySW46IHBhcmVudAorICAgICAgICAgICAgICAgICAgICAg
ICAgdmlzaWJsZTogZm9sZGVycy5pc0ZvbGRlcihpbmRleCkKKyAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIFRleHQgeworICAgICAgICAg
ICAgICAgICAgICBhbmNob3JzLmNlbnRlckluOiBwYXJlbnQKKyAgICAgICAgICAgICAgICAgICAg
YW5jaG9ycy5sZWZ0TWFyZ2luOiA1MAorICAgICAgICAgICAgICAgICAgICB0ZXh0OiBmaWxlTmFt
ZQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIE1vdXNlQXJlYSB7CisgICAg
ICAgICAgICAgICAgICAgIGFuY2hvcnMuZmlsbDogcGFyZW50CisgICAgICAgICAgICAgICAgICAg
IG9uQ2xpY2tlZDogc2VsZWN0ZWQoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9
CisgICAgICAgIH0KKyAgICAgICAgbW9kZWw6IGZvbGRlcnMKKyAgICAgICAgZGVsZWdhdGU6IGZp
bGVEZWxlZ2F0ZQorICAgIH0KKworICAgIFJlY3RhbmdsZSB7CisgICAgICAgIGlkOiBidXR0b24K
KworICAgICAgICBoZWlnaHQ6IDUwCisKKyAgICAgICAgYm9yZGVyIHsKKyAgICAgICAgICAgIHdp
ZHRoOiAxCisgICAgICAgICAgICBjb2xvcjogIiNiZmJmYmYiCisgICAgICAgIH0KKworICAgICAg
ICBhbmNob3JzIHsKKyAgICAgICAgICAgIGJvdHRvbTogcGFyZW50LmJvdHRvbQorICAgICAgICAg
ICAgdG9wOiBmb2xkZXJMaXN0Vmlldy5ib3R0b20KKyAgICAgICAgICAgIGxlZnQ6IHBhcmVudC5s
ZWZ0CisgICAgICAgICAgICByaWdodDogcGFyZW50LnJpZ2h0CisgICAgICAgIH0KKworICAgICAg
ICBEaWFsb2dCdXR0b24geworICAgICAgICAgICAgaWQ6IGNhbmNlbAorICAgICAgICAgICAgdGV4
dDogIkNhbmNlbCIKKyAgICAgICAgICAgIGFuY2hvcnMgeworICAgICAgICAgICAgICAgIGhvcml6
b250YWxDZW50ZXI6IHBhcmVudC5ob3Jpem9udGFsQ2VudGVyOworICAgICAgICAgICAgICAgIHZl
cnRpY2FsQ2VudGVyOiAgcGFyZW50LnZlcnRpY2FsQ2VudGVyCisgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgIG9uQ2xpY2tlZDogZmlsZU1vZGVsLnJlamVjdCgpCisgICAgICAgIH0KKyAgICB9
CisKKyAgICBmdW5jdGlvbiBvcGVuRm9sZGVyKHBhdGgpIHsKKyAgICAgICAgZm9sZGVycy5mb2xk
ZXIgPSBwYXRoOworICAgIH0KKworICAgIGZ1bmN0aW9uIHVwKCkgeworICAgICAgICBmb2xkZXJz
LmZvbGRlciA9IGZvbGRlcnMucGFyZW50Rm9sZGVyOworICAgIH0KK30K
</data>
<flag name="review"
          id="135585"
          type_id="1"
          status="+"
          setter="hausmann"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132274</attachid>
            <date>2012-03-16 06:52:20 -0700</date>
            <delta_ts>2012-03-16 09:16:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>80854_qmldialog_commit.patch</filename>
            <type>text/plain</type>
            <size>29210</size>
            <attacher name="Dinu Jacob">dinu.jacob</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA3NDViN2QxLi40MmUxNjhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAg
QEAKKzIwMTItMDMtMTYgIERpbnUgSmFjb2IgIDxkaW51LmphY29iQG5va2lhLmNvbT4KKworICAg
ICAgICBbUXRdW1drMl0gQXNzZXJ0aW9uIEZhaWx1cmUgYW5kIGNyYXNoIG9uIGZpbGUgdXBsb2Fk
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDg1NAor
CisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEhhdXNtYW5uLgorCisgICAgICAgIENyYXNoIHJl
c3VsdGVkIGZyb20gYXR0ZW1wdGluZyB0byBjcmVhdGUgUUZpbGVEaWFsb2csIGEgUXRXaWRnZXQg
YmFzZWQgZGlhbG9nIGZyb20gYSAKKyAgICAgICAgUUd1aUFwcGxpY2F0aW9uLiBSZXBsYWNlIFFG
aWxlRGlhbG9nIHdpdGggYSBRTUwgaW1wbGVtZW50YWJsZSBjb21wb25lbnQuCisgICAgICAgIEFk
ZGVkIGEgbmV3IHByb3BlcnR5ICdmaWxlUGlja2VyJyB0byBXZWJWaWV3IGV4cGVyaW1lbnRhbCB0
byBzZXQgdGhlIFFNTCBjb21wb25lbnQgZm9yCisgICAgICAgIGZpbGUgdXBsb2FkIHRyaWdnZXJl
ZCBieSBhbiBpbnB1dCBmaWxlIGVsZW1lbnQuCisKKyAgICAgICAgQ28tYXV0aG9yZWQgd2l0aCBL
YXN0aHVyaSBOYWxsYXBwYXNvdW5kYXJhcmFqYW4gPGthc3RodXJpLm4tc0Bub2tpYS5jb20+CisK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwOgorICAgICAgICAo
UVF1aWNrV2ViVmlld1ByaXZhdGU6OlFRdWlja1dlYlZpZXdQcml2YXRlKToKKyAgICAgICAgKFFR
dWlja1dlYlZpZXdQcml2YXRlOjpjaG9vc2VGaWxlcyk6CisgICAgICAgIChRUXVpY2tXZWJWaWV3
RXhwZXJpbWVudGFsOjpmaWxlUGlja2VyKToKKyAgICAgICAgKFFRdWlja1dlYlZpZXdFeHBlcmlt
ZW50YWw6OnNldEZpbGVQaWNrZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNr
d2Vidmlld19wLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3Bf
cC5oOgorICAgICAgICAoUVF1aWNrV2ViVmlld1ByaXZhdGUpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvRGVza3RvcEJlaGF2aW9yLnBybzoKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3RzL0Rlc2t0b3BCZWhhdmlvci90c3Rfc2luZ2xl
RmlsZVVwbG9hZC5xbWw6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvdGVzdHMv
cW1sdGVzdHMvY29tbW9uL3NpbmdsZWZpbGV1cGxvYWQuaHRtbDogQWRkZWQuCisgICAgICAgICog
VUlQcm9jZXNzL3F0L1F0RGlhbG9nUnVubmVyLmNwcDoKKyAgICAgICAgKEZpbGVQaWNrZXJDb250
ZXh0T2JqZWN0KToKKyAgICAgICAgKEZpbGVQaWNrZXJDb250ZXh0T2JqZWN0OjpGaWxlUGlja2Vy
Q29udGV4dE9iamVjdCk6CisgICAgICAgIChGaWxlUGlja2VyQ29udGV4dE9iamVjdDo6ZmlsZUxp
c3QpOgorICAgICAgICAoRmlsZVBpY2tlckNvbnRleHRPYmplY3Q6OnJlamVjdCk6CisgICAgICAg
IChGaWxlUGlja2VyQ29udGV4dE9iamVjdDo6YWNjZXB0KToKKyAgICAgICAgKFF0RGlhbG9nUnVu
bmVyOjppbml0Rm9yRmlsZVBpY2tlcik6CisgICAgICAgICogVUlQcm9jZXNzL3F0L1F0RGlhbG9n
UnVubmVyLmg6CisgICAgICAgIChRdERpYWxvZ1J1bm5lcik6CisgICAgICAgIChRdERpYWxvZ1J1
bm5lcjo6ZmlsZVBhdGhzKToKKyAgICAgICAgKFF0RGlhbG9nUnVubmVyOjpvbkZpbGVTZWxlY3Rl
ZCk6CisKIDIwMTItMDMtMTUgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEu
Y29tPgogCiAgICAgICAgIFtXSzJdIFdlYlBhZ2VQcm94eTo6YWN0aXZlVVJMIHNob3VsZCByZXR1
cm4gdW5yZWFjaGFibGVVUkwoKSB3aGVuIGl0J3Mgbm90IGVtcHR5CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcAppbmRleCBlZTFhYmY0Li5m
OGExYmQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlj
a3dlYnZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNr
d2Vidmlldy5jcHAKQEAgLTQ3LDcgKzQ3LDYgQEAKICNpbmNsdWRlIDxwcml2YXRlL3FxdWlja2Zs
aWNrYWJsZV9wLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5pdGlhbGl6ZVRocmVhZGlu
Zy5oPgogI2luY2x1ZGUgPFFEZWNsYXJhdGl2ZUVuZ2luZT4KLSNpbmNsdWRlIDxRRmlsZURpYWxv
Zz4KICNpbmNsdWRlIDxRdFF1aWNrL1FRdWlja0NhbnZhcz4KICNpbmNsdWRlIDxXZWJDb3JlL0lu
dFBvaW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRSZWN0Lmg+CkBAIC03Niw2ICs3NSw3IEBA
IFFRdWlja1dlYlZpZXdQcml2YXRlOjpRUXVpY2tXZWJWaWV3UHJpdmF0ZShRUXVpY2tXZWJWaWV3
KiB2aWV3cG9ydCkKICAgICAsIGNlcnRpZmljYXRlVmVyaWZpY2F0aW9uRGlhbG9nKDApCiAgICAg
LCBpdGVtU2VsZWN0b3IoMCkKICAgICAsIHByb3h5QXV0aGVudGljYXRpb25EaWFsb2coMCkKKyAg
ICAsIGZpbGVQaWNrZXIoMCkKICAgICAsIHVzZXJEaWRPdmVycmlkZUNvbnRlbnRXaWR0aChmYWxz
ZSkKICAgICAsIHVzZXJEaWRPdmVycmlkZUNvbnRlbnRIZWlnaHQoZmFsc2UpCiAgICAgLCBtX25h
dmlnYXRvclF0T2JqZWN0RW5hYmxlZChmYWxzZSkKQEAgLTM3NSw1MCArMzc1LDI4IEBAIHZvaWQg
UVF1aWNrV2ViVmlld1ByaXZhdGU6OmV4ZWNEaWFsb2dSdW5uZXIoUXREaWFsb2dSdW5uZXImIGRp
YWxvZ1J1bm5lcikKIAogdm9pZCBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6Y2hvb3NlRmlsZXMoV0tP
cGVuUGFuZWxSZXN1bHRMaXN0ZW5lclJlZiBsaXN0ZW5lclJlZiwgY29uc3QgUVN0cmluZ0xpc3Qm
IHNlbGVjdGVkRmlsZU5hbWVzLCBRdFdlYlBhZ2VVSUNsaWVudDo6RmlsZUNob29zZXJUeXBlIHR5
cGUpCiB7Ci0jaWZuZGVmIFFUX05PX0ZJTEVESUFMT0cKICAgICBRX1EoUVF1aWNrV2ViVmlldyk7
Ci0gICAgb3BlblBhbmVsUmVzdWx0TGlzdGVuZXIgPSBsaXN0ZW5lclJlZjsKIAotICAgIC8vIFF0
IGRvZXMgbm90IHN1cHBvcnQgbXVsdGlwbGUgZmlsZXMgc3VnZ2VzdGlvbiwgc28gd2UgZ2V0IGp1
c3QgdGhlIGZpcnN0IHN1Z2dlc3Rpb24uCi0gICAgUVN0cmluZyBzZWxlY3RlZEZpbGVOYW1lOwot
ICAgIGlmICghc2VsZWN0ZWRGaWxlTmFtZXMuaXNFbXB0eSgpKQotICAgICAgICBzZWxlY3RlZEZp
bGVOYW1lID0gc2VsZWN0ZWRGaWxlTmFtZXMuYXQoMCk7Ci0KLSAgICBRX0FTU0VSVCghZmlsZURp
YWxvZyk7Ci0KLSAgICBRV2luZG93KiB3aW5kb3cgPSBxLT5jYW52YXMoKTsKLSAgICBpZiAoIXdp
bmRvdykKKyAgICBpZiAoIWZpbGVQaWNrZXIgfHwgdHlwZSA9PSBRdFdlYlBhZ2VVSUNsaWVudDo6
TXVsdGlwbGVGaWxlc1NlbGVjdGlvbikKICAgICAgICAgcmV0dXJuOwogCi0gICAgZmlsZURpYWxv
ZyA9IG5ldyBRRmlsZURpYWxvZygwLCBRU3RyaW5nKCksIHNlbGVjdGVkRmlsZU5hbWUpOwotICAg
IGZpbGVEaWFsb2ctPndpbmRvdygpLT53aW5JZCgpOyAvLyBFbnN1cmUgdGhhdCB0aGUgZGlhbG9n
IGhhcyBhIHdpbmRvdwotICAgIFFfQVNTRVJUKGZpbGVEaWFsb2ctPndpbmRvdygpLT53aW5kb3dI
YW5kbGUoKSk7Ci0gICAgZmlsZURpYWxvZy0+d2luZG93KCktPndpbmRvd0hhbmRsZSgpLT5zZXRU
cmFuc2llbnRQYXJlbnQod2luZG93KTsKLQotICAgIGZpbGVEaWFsb2ctPm9wZW4ocSwgU0xPVChf
cV9vbk9wZW5QYW5lbEZpbGVzU2VsZWN0ZWQoKSkpOwotCi0gICAgcS0+Y29ubmVjdChmaWxlRGlh
bG9nLCBTSUdOQUwoZmluaXNoZWQoaW50KSksIFNMT1QoX3Ffb25PcGVuUGFuZWxGaW5pc2hlZChp
bnQpKSk7Ci0jZW5kaWYKLX0KKyAgICBRdERpYWxvZ1J1bm5lciBkaWFsb2dSdW5uZXI7CisgICAg
aWYgKCFkaWFsb2dSdW5uZXIuaW5pdEZvckZpbGVQaWNrZXIoZmlsZVBpY2tlciwgcSwgc2VsZWN0
ZWRGaWxlTmFtZXMpKQorICAgICAgICByZXR1cm47CiAKLXZvaWQgUVF1aWNrV2ViVmlld1ByaXZh
dGU6Ol9xX29uT3BlblBhbmVsRmlsZXNTZWxlY3RlZCgpCi17Ci0gICAgY29uc3QgUVN0cmluZ0xp
c3QgZmlsZUxpc3QgPSBmaWxlRGlhbG9nLT5zZWxlY3RlZEZpbGVzKCk7Ci0gICAgVmVjdG9yPFJl
ZlB0cjxBUElPYmplY3Q+ID4gd2tGaWxlcyhmaWxlTGlzdC5zaXplKCkpOworICAgIGV4ZWNEaWFs
b2dSdW5uZXIoZGlhbG9nUnVubmVyKTsKIAotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBm
aWxlTGlzdC5zaXplKCk7ICsraSkKLSAgICAgICAgd2tGaWxlc1tpXSA9IFdlYlVSTDo6Y3JlYXRl
KFFVcmw6OmZyb21Mb2NhbEZpbGUoZmlsZUxpc3QuYXQoaSkpLnRvU3RyaW5nKCkpOworICAgIGlm
IChkaWFsb2dSdW5uZXIud2FzQWNjZXB0ZWQoKSkgeworICAgICAgICBRU3RyaW5nTGlzdCBzZWxl
Y3RlZFBhdGhzID0gZGlhbG9nUnVubmVyLmZpbGVQYXRocygpOwogCi0gICAgV0tPcGVuUGFuZWxS
ZXN1bHRMaXN0ZW5lckNob29zZUZpbGVzKG9wZW5QYW5lbFJlc3VsdExpc3RlbmVyLCB0b0FQSShJ
bW11dGFibGVBcnJheTo6YWRvcHQod2tGaWxlcykubGVha1JlZigpKSk7Ci19CisgICAgICAgIFZl
Y3RvcjxSZWZQdHI8QVBJT2JqZWN0PiA+IHdrRmlsZXMoc2VsZWN0ZWRQYXRocy5zaXplKCkpOwor
ICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2VsZWN0ZWRQYXRocy5zaXplKCk7ICsr
aSkKKyAgICAgICAgICAgIHdrRmlsZXNbaV0gPSBXZWJVUkw6OmNyZWF0ZShRVXJsOjpmcm9tTG9j
YWxGaWxlKHNlbGVjdGVkUGF0aHMuYXQoaSkpLnRvU3RyaW5nKCkpOyAgICAgICAgICAgIAogCi12
b2lkIFFRdWlja1dlYlZpZXdQcml2YXRlOjpfcV9vbk9wZW5QYW5lbEZpbmlzaGVkKGludCByZXN1
bHQpCi17Ci0gICAgaWYgKHJlc3VsdCA9PSBRRGlhbG9nOjpSZWplY3RlZCkKLSAgICAgICAgV0tP
cGVuUGFuZWxSZXN1bHRMaXN0ZW5lckNhbmNlbChvcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcik7Cisg
ICAgICAgIFdLT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJDaG9vc2VGaWxlcyhsaXN0ZW5lclJlZiwg
dG9BUEkoSW1tdXRhYmxlQXJyYXk6OmFkb3B0KHdrRmlsZXMpLmxlYWtSZWYoKSkpOworICAgIH0g
ZWxzZQorICAgICAgICBXS09wZW5QYW5lbFJlc3VsdExpc3RlbmVyQ2FuY2VsKGxpc3RlbmVyUmVm
KTsKIAotICAgIGZpbGVEaWFsb2ctPmRlbGV0ZUxhdGVyKCk7Ci0gICAgZmlsZURpYWxvZyA9IDA7
CiB9CiAKIHZvaWQgUVF1aWNrV2ViVmlld1ByaXZhdGU6OnNldFZpZXdJbkF0dGFjaGVkUHJvcGVy
dGllcyhRT2JqZWN0KiBvYmplY3QpCkBAIC05NzAsNiArOTQ4LDIxIEBAIHZvaWQgUVF1aWNrV2Vi
Vmlld0V4cGVyaW1lbnRhbDo6c2V0SXRlbVNlbGVjdG9yKFFEZWNsYXJhdGl2ZUNvbXBvbmVudCog
aXRlbVNlbGVjCiAgICAgZW1pdCBpdGVtU2VsZWN0b3JDaGFuZ2VkKCk7CiB9CiAKK1FEZWNsYXJh
dGl2ZUNvbXBvbmVudCogUVF1aWNrV2ViVmlld0V4cGVyaW1lbnRhbDo6ZmlsZVBpY2tlcigpIGNv
bnN0Cit7CisgICAgUV9EKGNvbnN0IFFRdWlja1dlYlZpZXcpOworICAgIHJldHVybiBkLT5maWxl
UGlja2VyOworfQorCit2b2lkIFFRdWlja1dlYlZpZXdFeHBlcmltZW50YWw6OnNldEZpbGVQaWNr
ZXIoUURlY2xhcmF0aXZlQ29tcG9uZW50KiBmaWxlUGlja2VyKQoreworICAgIFFfRChRUXVpY2tX
ZWJWaWV3KTsKKyAgICBpZiAoZC0+ZmlsZVBpY2tlciA9PSBmaWxlUGlja2VyKQorICAgICAgICBy
ZXR1cm47CisgICAgZC0+ZmlsZVBpY2tlciA9IGZpbGVQaWNrZXI7CisgICAgZW1pdCBmaWxlUGlj
a2VyQ2hhbmdlZCgpOworfQorCiBRUXVpY2tVcmxTY2hlbWVEZWxlZ2F0ZSogUVF1aWNrV2ViVmll
d0V4cGVyaW1lbnRhbDo6c2NoZW1lRGVsZWdhdGVzX0F0KFFEZWNsYXJhdGl2ZUxpc3RQcm9wZXJ0
eTxRUXVpY2tVcmxTY2hlbWVEZWxlZ2F0ZT4qIHByb3BlcnR5LCBpbnQgaW5kZXgpCiB7CiAgICAg
Y29uc3QgUU9iamVjdExpc3QgY2hpbGRyZW4gPSBwcm9wZXJ0eS0+b2JqZWN0LT5jaGlsZHJlbigp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2
aWV3X3AuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19w
LmgKaW5kZXggNmFkYWIxNy4uM2NlMTUyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3AuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcC5oCkBAIC0xOTEsOCArMTkxLDYgQEAgcHJpdmF0
ZToKICAgICBRX1BSSVZBVEVfU0xPVChkX2Z1bmMoKSwgdm9pZCBfcV9jb21taXRQb3NpdGlvbkNo
YW5nZShjb25zdCBRUG9pbnRGJikpOwogICAgIFFfUFJJVkFURV9TTE9UKGRfZnVuYygpLCB2b2lk
IF9xX2NvbW1pdFNjYWxlQ2hhbmdlKCkpOwogCi0gICAgUV9QUklWQVRFX1NMT1QoZF9mdW5jKCks
IHZvaWQgX3Ffb25PcGVuUGFuZWxGaWxlc1NlbGVjdGVkKCkpOwotICAgIFFfUFJJVkFURV9TTE9U
KGRfZnVuYygpLCB2b2lkIF9xX29uT3BlblBhbmVsRmluaXNoZWQoaW50IHJlc3VsdCkpOwogICAg
IFFfUFJJVkFURV9TTE9UKGRfZnVuYygpLCB2b2lkIF9xX29uVmlzaWJsZUNoYW5nZWQoKSk7CiAg
ICAgUV9QUklWQVRFX1NMT1QoZF9mdW5jKCksIHZvaWQgX3Ffb25VcmxDaGFuZ2VkKCkpOwogICAg
IFFfUFJJVkFURV9TTE9UKGRfZnVuYygpLCB2b2lkIF9xX29uUmVjZWl2ZWRSZXNwb25zZUZyb21E
b3dubG9hZChRV2ViRG93bmxvYWRJdGVtKikpOwpAQCAtMjUwLDYgKzI0OCw3IEBAIGNsYXNzIFFX
RUJLSVRfRVhQT1JUIFFRdWlja1dlYlZpZXdFeHBlcmltZW50YWwgOiBwdWJsaWMgUU9iamVjdCB7
CiAgICAgUV9QUk9QRVJUWShRRGVjbGFyYXRpdmVDb21wb25lbnQqIHByb3h5QXV0aGVudGljYXRp
b25EaWFsb2cgUkVBRCBwcm94eUF1dGhlbnRpY2F0aW9uRGlhbG9nIFdSSVRFIHNldFByb3h5QXV0
aGVudGljYXRpb25EaWFsb2cgTk9USUZZIHByb3h5QXV0aGVudGljYXRpb25EaWFsb2dDaGFuZ2Vk
KQogICAgIFFfUFJPUEVSVFkoUURlY2xhcmF0aXZlQ29tcG9uZW50KiBjZXJ0aWZpY2F0ZVZlcmlm
aWNhdGlvbkRpYWxvZyBSRUFEIGNlcnRpZmljYXRlVmVyaWZpY2F0aW9uRGlhbG9nIFdSSVRFIHNl
dENlcnRpZmljYXRlVmVyaWZpY2F0aW9uRGlhbG9nIE5PVElGWSBjZXJ0aWZpY2F0ZVZlcmlmaWNh
dGlvbkRpYWxvZ0NoYW5nZWQpCiAgICAgUV9QUk9QRVJUWShRRGVjbGFyYXRpdmVDb21wb25lbnQq
IGl0ZW1TZWxlY3RvciBSRUFEIGl0ZW1TZWxlY3RvciBXUklURSBzZXRJdGVtU2VsZWN0b3IgTk9U
SUZZIGl0ZW1TZWxlY3RvckNoYW5nZWQpCisgICAgUV9QUk9QRVJUWShRRGVjbGFyYXRpdmVDb21w
b25lbnQqIGZpbGVQaWNrZXIgUkVBRCBmaWxlUGlja2VyIFdSSVRFIHNldEZpbGVQaWNrZXIgTk9U
SUZZIGZpbGVQaWNrZXJDaGFuZ2VkKQogICAgIFFfUFJPUEVSVFkoUVdlYlByZWZlcmVuY2VzKiBw
cmVmZXJlbmNlcyBSRUFEIHByZWZlcmVuY2VzIENPTlNUQU5UIEZJTkFMKQogICAgIFFfUFJPUEVS
VFkoUVdlYlZpZXdwb3J0SW5mbyogdmlld3BvcnRJbmZvIFJFQUQgdmlld3BvcnRJbmZvIENPTlNU
QU5UIEZJTkFMKQogICAgIFFfUFJPUEVSVFkoUURlY2xhcmF0aXZlTGlzdFByb3BlcnR5PFFRdWlj
a1VybFNjaGVtZURlbGVnYXRlPiB1cmxTY2hlbWVEZWxlZ2F0ZXMgUkVBRCBzY2hlbWVEZWxlZ2F0
ZXMpCkBAIC0yNzcsNiArMjc2LDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0SXRlbVNlbGVjdG9y
KFFEZWNsYXJhdGl2ZUNvbXBvbmVudCopOwogICAgIFFEZWNsYXJhdGl2ZUNvbXBvbmVudCogcHJv
eHlBdXRoZW50aWNhdGlvbkRpYWxvZygpIGNvbnN0OwogICAgIHZvaWQgc2V0UHJveHlBdXRoZW50
aWNhdGlvbkRpYWxvZyhRRGVjbGFyYXRpdmVDb21wb25lbnQqKTsKKyAgICBRRGVjbGFyYXRpdmVD
b21wb25lbnQqIGZpbGVQaWNrZXIoKSBjb25zdDsKKyAgICB2b2lkIHNldEZpbGVQaWNrZXIoUURl
Y2xhcmF0aXZlQ29tcG9uZW50Kik7CiAKICAgICBRV2ViVmlld3BvcnRJbmZvKiB2aWV3cG9ydElu
Zm8oKTsKIApAQCAtMzI5LDYgKzMzMCw3IEBAIFFfU0lHTkFMUzoKICAgICB2b2lkIGF1dGhlbnRp
Y2F0aW9uRGlhbG9nQ2hhbmdlZCgpOwogICAgIHZvaWQgY2VydGlmaWNhdGVWZXJpZmljYXRpb25E
aWFsb2dDaGFuZ2VkKCk7CiAgICAgdm9pZCBpdGVtU2VsZWN0b3JDaGFuZ2VkKCk7CisgICAgdm9p
ZCBmaWxlUGlja2VyQ2hhbmdlZCgpOwogICAgIHZvaWQgZG93bmxvYWRSZXF1ZXN0ZWQoUVdlYkRv
d25sb2FkSXRlbSogZG93bmxvYWRJdGVtKTsKICAgICB2b2lkIHBlcm1pc3Npb25SZXF1ZXN0ZWQo
UVdlYlBlcm1pc3Npb25SZXF1ZXN0KiBwZXJtaXNzaW9uKTsKICAgICB2b2lkIG1lc3NhZ2VSZWNl
aXZlZChjb25zdCBRVmFyaWFudE1hcCYgbWVzc2FnZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcF9wLmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcF9wLmgKaW5kZXggMzlhMTRhNy4uZDUz
ZWNkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3
ZWJ2aWV3X3BfcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNr
d2Vidmlld19wX3AuaApAQCAtNTAsNyArNTAsNiBAQCBjbGFzcyBRV2ViVmlld3BvcnRJbmZvOwog
CiBRVF9CRUdJTl9OQU1FU1BBQ0UKIGNsYXNzIFFEZWNsYXJhdGl2ZUNvbXBvbmVudDsKLWNsYXNz
IFFGaWxlRGlhbG9nOwogUVRfRU5EX05BTUVTUEFDRQogCiBjbGFzcyBRUXVpY2tXZWJWaWV3UHJp
dmF0ZSB7CkBAIC05Myw4ICs5Miw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgX3FfY29t
bWl0U2NhbGVDaGFuZ2UoKSB7IH0KICAgICB2b2lkIF9xX2NvbW1pdFBvc2l0aW9uQ2hhbmdlKGNv
bnN0IFFQb2ludEYmKTsKIAotICAgIHZvaWQgX3Ffb25PcGVuUGFuZWxGaWxlc1NlbGVjdGVkKCk7
Ci0gICAgdm9pZCBfcV9vbk9wZW5QYW5lbEZpbmlzaGVkKGludCByZXN1bHQpOwogICAgIHZvaWQg
X3Ffb25WaXNpYmxlQ2hhbmdlZCgpOwogICAgIHZvaWQgX3Ffb25VcmxDaGFuZ2VkKCk7CiAgICAg
dm9pZCBfcV9vblJlY2VpdmVkUmVzcG9uc2VGcm9tRG93bmxvYWQoUVdlYkRvd25sb2FkSXRlbSop
OwpAQCAtMTU4LDEwICsxNTUsOSBAQCBwcm90ZWN0ZWQ6CiAgICAgUURlY2xhcmF0aXZlQ29tcG9u
ZW50KiBjZXJ0aWZpY2F0ZVZlcmlmaWNhdGlvbkRpYWxvZzsKICAgICBRRGVjbGFyYXRpdmVDb21w
b25lbnQqIGl0ZW1TZWxlY3RvcjsKICAgICBRRGVjbGFyYXRpdmVDb21wb25lbnQqIHByb3h5QXV0
aGVudGljYXRpb25EaWFsb2c7CisgICAgUURlY2xhcmF0aXZlQ29tcG9uZW50KiBmaWxlUGlja2Vy
OwogCiAgICAgV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHMgdmlld3BvcnRBcmd1bWVudHM7Ci0g
ICAgUUZpbGVEaWFsb2cqIGZpbGVEaWFsb2c7Ci0gICAgV0tPcGVuUGFuZWxSZXN1bHRMaXN0ZW5l
clJlZiBvcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcjsKIAogICAgIGJvb2wgdXNlckRpZE92ZXJyaWRl
Q29udGVudFdpZHRoOwogICAgIGJvb2wgdXNlckRpZE92ZXJyaWRlQ29udGVudEhlaWdodDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMv
RGVza3RvcEJlaGF2aW9yLnBybyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVz
dHMvcW1sdGVzdHMvRGVza3RvcEJlaGF2aW9yLnBybwppbmRleCA5ZDE2YTdiLi41Y2Y0NmNiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3Rz
L0Rlc2t0b3BCZWhhdmlvci5wcm8KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9x
dC90ZXN0cy9xbWx0ZXN0cy9EZXNrdG9wQmVoYXZpb3IucHJvCkBAIC0xOSw0ICsxOSw1IEBAIE9U
SEVSX0ZJTEVTICs9IFwKICAgICBEZXNrdG9wQmVoYXZpb3IvdHN0X2xpbmtIb3ZlcmVkLnFtbCBc
CiAgICAgRGVza3RvcEJlaGF2aW9yL3RzdF9sb2FkSHRtbC5xbWwgXAogICAgIERlc2t0b3BCZWhh
dmlvci90c3RfbWVzc2FnaW5nLnFtbCBcCi0gICAgRGVza3RvcEJlaGF2aW9yL3RzdF9uYXZpZ2F0
aW9uUmVxdWVzdGVkLnFtbAorICAgIERlc2t0b3BCZWhhdmlvci90c3RfbmF2aWdhdGlvblJlcXVl
c3RlZC5xbWwgXAorICAgIERlc2t0b3BCZWhhdmlvci90c3Rfc2luZ2xlZmlsZXVwbG9hZC5xbWwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVz
dHMvRGVza3RvcEJlaGF2aW9yL3RzdF9zaW5nbGVGaWxlVXBsb2FkLnFtbCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvRGVza3RvcEJlaGF2aW9yL3RzdF9z
aW5nbGVGaWxlVXBsb2FkLnFtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5j
ZTQ5NWVhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9x
dC90ZXN0cy9xbWx0ZXN0cy9EZXNrdG9wQmVoYXZpb3IvdHN0X3NpbmdsZUZpbGVVcGxvYWQucW1s
CkBAIC0wLDAgKzEsNjUgQEAKK2ltcG9ydCBRdFF1aWNrIDIuMAoraW1wb3J0IFF0VGVzdCAxLjAK
K2ltcG9ydCBRdFdlYktpdCAzLjAKK2ltcG9ydCBRdFdlYktpdC5leHBlcmltZW50YWwgMS4wCitp
bXBvcnQgIi4uL2NvbW1vbiIKKworLy8gRklYTUU6IEFkZGVkIHRvIERlc2t0b3AgdGVzdHMgYmVj
YXVzZSB3ZSB3YW50IHRvIGhhdmUgbW91c2VDbGljaygpIHRvIG9wZW4gdGhlIDxpbnB1dD4gdGFn
LiBXZSBjYW4gbW92ZSBpdCBiYWNrCisvLyB3aGVuIFRlc3RDYXNlIHN0YXJ0cyBzdXBwb3J0aW5n
IHRvdWNoIGV2ZW50cywgc2VlIGh0dHBzOi8vYnVncmVwb3J0cy5xdC5ub2tpYS5jb20vYnJvd3Nl
L1FUQlVHLTIzMDgzLgorVGVzdFdlYlZpZXcgeworICAgIGlkOiB3ZWJWaWV3CisKKyAgICB3aWR0
aDogNDAwCisgICAgaGVpZ2h0OiA0MDAKKworICAgIHByb3BlcnR5IGJvb2wgc2VsZWN0RmlsZQor
CisgICAgZXhwZXJpbWVudGFsLmZpbGVQaWNrZXI6IEl0ZW0geworICAgICAgICBUaW1lciB7Cisg
ICAgICAgICAgICBydW5uaW5nOiB0cnVlCisgICAgICAgICAgICBpbnRlcnZhbDogMQorICAgICAg
ICAgICAgb25UcmlnZ2VyZWQ6IHsKKyAgICAgICAgICAgICAgICBpZiAoc2VsZWN0RmlsZSkKKyAg
ICAgICAgICAgICAgICAgICAgbW9kZWwuYWNjZXB0KCJhY2NlcHRlZGZpbGVuYW1lIik7CisgICAg
ICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBtb2RlbC5yZWplY3QoKTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIFNpZ25hbFNweSB7CisgICAgICAg
IGlkOiB0aXRsZVNweQorICAgICAgICB0YXJnZXQ6IHdlYlZpZXcKKyAgICAgICAgc2lnbmFsTmFt
ZTogInRpdGxlQ2hhbmdlZCIKKyAgICB9CisKKyAgICBUZXN0Q2FzZSB7CisgICAgICAgIGlkOiB0
ZXN0CisgICAgICAgIG5hbWU6ICJXZWJWaWV3U2luZ2xlRmlsZVBpY2tlciIKKyAgICAgICAgd2hl
bjogd2luZG93U2hvd24KKworICAgICAgICBmdW5jdGlvbiBpbml0KCkgeworICAgICAgICAgICAg
d2ViVmlldy51cmwgPSBRdC5yZXNvbHZlZFVybCgiLi4vY29tbW9uL3NpbmdsZWZpbGV1cGxvYWQu
aHRtbCIpCisgICAgICAgICAgICB2ZXJpZnkod2ViVmlldy53YWl0Rm9yTG9hZFN1Y2NlZWRlZCgp
KQorICAgICAgICAgICAgdGl0bGVTcHkuY2xlYXIoKQorICAgICAgICB9CisKKyAgICAgICAgZnVu
Y3Rpb24gb3Blbkl0ZW1TZWxlY3RvcigpIHsKKyAgICAgICAgICAgIG1vdXNlQ2xpY2sod2ViVmll
dywgMTUsIDE1LCBRdC5MZWZ0QnV0dG9uKQorICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24g
dGVzdF9hY2NlcHQoKSB7CisgICAgICAgICAgICB3ZWJWaWV3LnNlbGVjdEZpbGUgPSB0cnVlOwor
ICAgICAgICAgICAgb3Blbkl0ZW1TZWxlY3RvcigpCisgICAgICAgICAgICB0aXRsZVNweS53YWl0
KCkKKyAgICAgICAgICAgIGNvbXBhcmUod2ViVmlldy50aXRsZSwgImFjY2VwdGVkZmlsZW5hbWUi
KQorICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gdGVzdF9yZWplY3QoKSB7CisgICAgICAg
ICAgICB2YXIgb2xkVGl0bGUgPSB3ZWJWaWV3LnRpdGxlCisgICAgICAgICAgICB3ZWJWaWV3LnNl
bGVjdEZpbGUgPSBmYWxzZTsKKyAgICAgICAgICAgIG9wZW5JdGVtU2VsZWN0b3IoKQorICAgICAg
ICAgICAgY29tcGFyZSh3ZWJWaWV3LnRpdGxlLCBvbGRUaXRsZSkKKyAgICAgICAgfQorICAgIH0K
K30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcW1s
dGVzdHMvY29tbW9uL3NpbmdsZWZpbGV1cGxvYWQuaHRtbCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvY29tbW9uL3NpbmdsZWZpbGV1cGxvYWQuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ODBiOTk5Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9jb21t
b24vc2luZ2xlZmlsZXVwbG9hZC5odG1sCkBAIC0wLDAgKzEsMjYgQEAKKzxodG1sPgorPGhlYWQ+
Cis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgaW5pdGlhbC1zY2FsZT0xIj4KKzx0aXRsZT5ObyBmaWxl
IHNlbGVjdGVkPC90aXRsZT4KKzxzY3JpcHQ+CitmdW5jdGlvbiB1cGRhdGVUaXRsZSgpCit7Cisg
ICAgdmFyIGlucCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGZpbGUiKTsKKyAgICB2YXIg
YWxsZmlsZXMgPSBuZXcgU3RyaW5nKCIiKTsKKyAgICB2YXIgbmFtZSA9IG5ldyBTdHJpbmcoIiIp
OworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaW5wLmZpbGVzLmxlbmd0aDsgKytpKQorICAgIHsK
KyAgICAgICAgbmFtZSA9IGlucC5maWxlcy5pdGVtKGkpLm5hbWU7CisgICAgICAgIGlmIChhbGxm
aWxlcy5sZW5ndGggPT0gMCkKKyAgICAgICAgICAgIGFsbGZpbGVzID0gbmFtZTsKKyAgICAgICAg
ZWxzZQorICAgICAgICAgICAgYWxsZmlsZXMgPSBhbGxmaWxlcyArICIsIiArIG5hbWU7CisgICAg
fQorICAgIGRvY3VtZW50LnRpdGxlID0gYWxsZmlsZXM7Cit9Cis8L3NjcmlwdD4KKworPGJvZHk+
Cis8aW5wdXQgdHlwZT0iZmlsZSIgbmFtZT0iZmlsZSIgaWQ9InVwZmlsZSIgb25jaGFuZ2U9InVw
ZGF0ZVRpdGxlKCkiLz4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9xdC9RdERpYWxvZ1J1bm5lci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvcXQvUXREaWFsb2dSdW5uZXIuY3BwCmluZGV4IDk1YmRjMjEuLjAxMTFhNzMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdERpYWxvZ1J1bm5lci5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0RGlhbG9nUnVubmVyLmNwcApAQCAtMTU3
LDYgKzE1NywzMSBAQCBwcml2YXRlOgogICAgIFFTdHJpbmcgbV9ob3N0bmFtZTsKIH07CiAKK2Ns
YXNzIEZpbGVQaWNrZXJDb250ZXh0T2JqZWN0IDogcHVibGljIFFPYmplY3QgeworICAgIFFfT0JK
RUNUCisgICAgUV9QUk9QRVJUWShRU3RyaW5nTGlzdCBmaWxlTGlzdCBSRUFEIGZpbGVMaXN0IENP
TlNUQU5UKQorCitwdWJsaWM6CisgICAgRmlsZVBpY2tlckNvbnRleHRPYmplY3QoY29uc3QgUVN0
cmluZ0xpc3QmIHNlbGVjdGVkRmlsZXMpCisgICAgICAgIDogUU9iamVjdCgpCisgICAgICAgICwg
bV9maWxlTGlzdChzZWxlY3RlZEZpbGVzKQorICAgIHsKKyAgICB9CisKKyAgICBRU3RyaW5nTGlz
dCBmaWxlTGlzdCgpIGNvbnN0IHsgcmV0dXJuIG1fZmlsZUxpc3Q7IH0KKworcHVibGljIHNsb3Rz
OgorICAgIHZvaWQgcmVqZWN0KCkgeyBlbWl0IHJlamVjdGVkKCk7fQorICAgIHZvaWQgYWNjZXB0
KGNvbnN0IFFWYXJpYW50JiBwYXRoKSB7IGVtaXQgZmlsZVNlbGVjdGVkKHBhdGgudG9TdHJpbmdM
aXN0KCkpOyB9CisKK3NpZ25hbHM6CisgICAgdm9pZCByZWplY3RlZCgpOworICAgIHZvaWQgZmls
ZVNlbGVjdGVkKGNvbnN0IFFTdHJpbmdMaXN0Jik7CisKK3ByaXZhdGU6CisgICAgUVN0cmluZ0xp
c3QgbV9maWxlTGlzdDsKK307CisKIGJvb2wgUXREaWFsb2dSdW5uZXI6OmluaXRGb3JBbGVydChR
RGVjbGFyYXRpdmVDb21wb25lbnQqIGNvbXBvbmVudCwgUVF1aWNrSXRlbSogZGlhbG9nUGFyZW50
LCBjb25zdCBRU3RyaW5nJiBtZXNzYWdlKQogewogICAgIERpYWxvZ0NvbnRleHRPYmplY3QqIGNv
bnRleHRPYmplY3QgPSBuZXcgRGlhbG9nQ29udGV4dE9iamVjdChtZXNzYWdlKTsKQEAgLTIzMCw2
ICsyNTUsMTkgQEAgYm9vbCBRdERpYWxvZ1J1bm5lcjo6aW5pdEZvckNlcnRpZmljYXRlVmVyaWZp
Y2F0aW9uKFFEZWNsYXJhdGl2ZUNvbXBvbmVudCogY29tcG8KICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAorYm9vbCBRdERpYWxvZ1J1bm5lcjo6aW5pdEZvckZpbGVQaWNrZXIoUURlY2xhcmF0aXZlQ29t
cG9uZW50KiBjb21wb25lbnQsIFFRdWlja0l0ZW0qIGRpYWxvZ1BhcmVudCwgY29uc3QgUVN0cmlu
Z0xpc3QmIHNlbGVjdGVkRmlsZXMpCit7CisgICAgRmlsZVBpY2tlckNvbnRleHRPYmplY3QqIGNv
bnRleHRPYmplY3QgPSBuZXcgRmlsZVBpY2tlckNvbnRleHRPYmplY3Qoc2VsZWN0ZWRGaWxlcyk7
CisgICAgaWYgKCFjcmVhdGVEaWFsb2coY29tcG9uZW50LCBkaWFsb2dQYXJlbnQsIGNvbnRleHRP
YmplY3QpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBjb25uZWN0KGNvbnRleHRPYmpl
Y3QsIFNJR05BTChmaWxlU2VsZWN0ZWQoUVN0cmluZ0xpc3QpKSwgU0xPVChvbkZpbGVTZWxlY3Rl
ZChRU3RyaW5nTGlzdCkpKTsKKyAgICBjb25uZWN0KGNvbnRleHRPYmplY3QsIFNJR05BTChmaWxl
U2VsZWN0ZWQoUVN0cmluZ0xpc3QpKSwgU0xPVChxdWl0KCkpKTsKKyAgICBjb25uZWN0KGNvbnRl
eHRPYmplY3QsIFNJR05BTChyZWplY3RlZCgpKSwgU0xPVChxdWl0KCkpKTsKKworICAgIHJldHVy
biB0cnVlOworfQorCiBib29sIFF0RGlhbG9nUnVubmVyOjpjcmVhdGVEaWFsb2coUURlY2xhcmF0
aXZlQ29tcG9uZW50KiBjb21wb25lbnQsIFFRdWlja0l0ZW0qIGRpYWxvZ1BhcmVudCwgUU9iamVj
dCogY29udGV4dE9iamVjdCkKIHsKICAgICBRRGVjbGFyYXRpdmVDb250ZXh0KiBiYXNlQ29udGV4
dCA9IGNvbXBvbmVudC0+Y3JlYXRpb25Db250ZXh0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvcXQvUXREaWFsb2dSdW5uZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9xdC9RdERpYWxvZ1J1bm5lci5oCmluZGV4IDdmYmFjZTEuLjBlOTQ4MWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdERpYWxvZ1J1bm5lci5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdERpYWxvZ1J1bm5lci5oCkBAIC0yMiw2ICsyMiw3
IEBACiAjZGVmaW5lIFF0RGlhbG9nUnVubmVyX2gKIAogI2luY2x1ZGUgPFF0Q29yZS9RRXZlbnRM
b29wPgorI2luY2x1ZGUgPFF0Q29yZS9RU3RyaW5nTGlzdD4KICNpbmNsdWRlIDx3dGYvT3duUHRy
Lmg+CiAKIGNsYXNzIFFEZWNsYXJhdGl2ZUNvbXBvbmVudDsKQEAgLTQxLDYgKzQyLDcgQEAgcHVi
bGljOgogICAgIGJvb2wgaW5pdEZvckF1dGhlbnRpY2F0aW9uKFFEZWNsYXJhdGl2ZUNvbXBvbmVu
dCosIFFRdWlja0l0ZW0qIGRpYWxvZ1BhcmVudCwgY29uc3QgUVN0cmluZyYgaG9zdG5hbWUsIGNv
bnN0IFFTdHJpbmcmIHJlYWxtLCBjb25zdCBRU3RyaW5nJiBwcmVmaWxsZWRVc2VybmFtZSk7CiAg
ICAgYm9vbCBpbml0Rm9yQ2VydGlmaWNhdGVWZXJpZmljYXRpb24oUURlY2xhcmF0aXZlQ29tcG9u
ZW50KiwgUVF1aWNrSXRlbSosIGNvbnN0IFFTdHJpbmcmIGhvc3RuYW1lKTsKICAgICBib29sIGlu
aXRGb3JQcm94eUF1dGhlbnRpY2F0aW9uKFFEZWNsYXJhdGl2ZUNvbXBvbmVudCosIFFRdWlja0l0
ZW0qLCBjb25zdCBRU3RyaW5nJiBob3N0bmFtZSwgdWludDE2X3QgcG9ydCwgY29uc3QgUVN0cmlu
ZyYgcHJlZmlsbGVkVXNlcm5hbWUpOworICAgIGJvb2wgaW5pdEZvckZpbGVQaWNrZXIoUURlY2xh
cmF0aXZlQ29tcG9uZW50KiwgUVF1aWNrSXRlbSosIGNvbnN0IFFTdHJpbmdMaXN0JiBzZWxlY3Rl
ZEZpbGVzKTsKIAogICAgIFFRdWlja0l0ZW0qIGRpYWxvZygpIGNvbnN0IHsgcmV0dXJuIG1fZGlh
bG9nLmdldCgpOyB9CiAKQEAgLTUwLDYgKzUyLDggQEAgcHVibGljOgogICAgIFFTdHJpbmcgdXNl
cm5hbWUoKSBjb25zdCB7IHJldHVybiBtX3VzZXJuYW1lOyB9CiAgICAgUVN0cmluZyBwYXNzd29y
ZCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFzc3dvcmQ7IH0KIAorICAgIFFTdHJpbmdMaXN0IGZpbGVQ
YXRocygpIGNvbnN0IHsgcmV0dXJuIG1fZmlsZXBhdGhzOyB9CisKIHB1YmxpYyBzbG90czoKICAg
ICB2b2lkIG9uQWNjZXB0ZWQoY29uc3QgUVN0cmluZyYgcmVzdWx0ID0gUVN0cmluZygpKQogICAg
IHsKQEAgLTYzLDYgKzY3LDEyIEBAIHB1YmxpYyBzbG90czoKICAgICAgICAgbV9wYXNzd29yZCA9
IHBhc3N3b3JkOwogICAgIH0KIAorICAgIHZvaWQgb25GaWxlU2VsZWN0ZWQoY29uc3QgUVN0cmlu
Z0xpc3QmIGZpbGVQYXRocykKKyAgICB7CisgICAgICAgIG1fd2FzQWNjZXB0ZWQgPSB0cnVlOwor
ICAgICAgICBtX2ZpbGVwYXRocyA9IGZpbGVQYXRoczsKKyAgICB9CisKIHByaXZhdGU6CiAgICAg
Ym9vbCBjcmVhdGVEaWFsb2coUURlY2xhcmF0aXZlQ29tcG9uZW50KiwgUVF1aWNrSXRlbSogZGlh
bG9nUGFyZW50LCBRT2JqZWN0KiBjb250ZXh0T2JqZWN0KTsKIApAQCAtNzMsNiArODMsNyBAQCBw
cml2YXRlOgogCiAgICAgUVN0cmluZyBtX3VzZXJuYW1lOwogICAgIFFTdHJpbmcgbV9wYXNzd29y
ZDsKKyAgICBRU3RyaW5nTGlzdCBtX2ZpbGVwYXRoczsKIH07CiAKICNlbmRpZiAvLyBRdERpYWxv
Z1J1bm5lcl9oCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cK
aW5kZXggYWE5OTVjMS4uZjRlZjE3YSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBi
L1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTAzLTE2ICBEaW51IEphY29i
ICA8ZGludS5qYWNvYkBub2tpYS5jb20+CisKKyAgICAgICAgW1F0XVtXazJdIEFzc2VydGlvbiBG
YWlsdXJlIGFuZCBjcmFzaCBvbiBmaWxlIHVwbG9hZAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODA4NTQKKworICAgICAgICBSZXZpZXdlZCBieSBTaW1v
biBIYXVzbWFubi4KKworICAgICAgICBBZGRlZCBmaWxlUGlja2VyIHRvIFdlYlZpZXcgdXNpbmcg
ZXhwZXJpbWVudGFsIEFQSS4KKworICAgICAgICAqIE1pbmlCcm93c2VyL3F0L01pbmlCcm93c2Vy
LnFyYzoKKyAgICAgICAgKiBNaW5pQnJvd3Nlci9xdC9pY29ucy9mb2xkZXIucG5nOiBBZGRlZC4K
KyAgICAgICAgKiBNaW5pQnJvd3Nlci9xdC9pY29ucy90aXRsZWJhci5wbmc6IEFkZGVkLgorICAg
ICAgICAqIE1pbmlCcm93c2VyL3F0L2ljb25zL3VwLnBuZzogQWRkZWQuCisgICAgICAgICogTWlu
aUJyb3dzZXIvcXQvcW1sL0Jyb3dzZXJXaW5kb3cucW1sOgorICAgICAgICAqIE1pbmlCcm93c2Vy
L3F0L3FtbC9GaWxlUGlja2VyLnFtbDogQWRkZWQuCisKIDIwMTItMDMtMTQgIEd1c3Rhdm8gTm9y
b25oYSBTaWx2YSAgPGduc0Bnbm9tZS5vcmc+CiAKICAgICAgICAgc2hlcmlmZmJvdCBzaG91bGQg
YWxzbyBiZSBhZGRyZXNzYWJsZSB3aXRoIGEgY29tbWEgaW4gYWRkaXRpb24gdG8gY29sb24KZGlm
ZiAtLWdpdCBhL1Rvb2xzL01pbmlCcm93c2VyL3F0L01pbmlCcm93c2VyLnFyYyBiL1Rvb2xzL01p
bmlCcm93c2VyL3F0L01pbmlCcm93c2VyLnFyYwppbmRleCBlMDBjNTFlLi42MDI2NWI2IDEwMDY0
NAotLS0gYS9Ub29scy9NaW5pQnJvd3Nlci9xdC9NaW5pQnJvd3Nlci5xcmMKKysrIGIvVG9vbHMv
TWluaUJyb3dzZXIvcXQvTWluaUJyb3dzZXIucXJjCkBAIC0xLDEzICsxLDE3IEBACiA8UkNDPgog
ICAgIDxxcmVzb3VyY2UgcHJlZml4PSIvIj4KKyAgICAgICAgPGZpbGU+aWNvbnMvZmF2aWNvbi5w
bmc8L2ZpbGU+CisgICAgICAgIDxmaWxlPmljb25zL2ZvbGRlci5wbmc8L2ZpbGU+CiAgICAgICAg
IDxmaWxlPmljb25zL2luZm8ucG5nPC9maWxlPgogICAgICAgICA8ZmlsZT5pY29ucy9uZXh0LnBu
ZzwvZmlsZT4KICAgICAgICAgPGZpbGU+aWNvbnMvcGx1cy5wbmc8L2ZpbGU+CiAgICAgICAgIDxm
aWxlPmljb25zL3ByZXZpb3VzLnBuZzwvZmlsZT4KICAgICAgICAgPGZpbGU+aWNvbnMvcmVmcmVz
aC5wbmc8L2ZpbGU+CiAgICAgICAgIDxmaWxlPmljb25zL3N0b3AucG5nPC9maWxlPgorICAgICAg
ICA8ZmlsZT5pY29ucy90aXRsZWJhci5wbmc8L2ZpbGU+CiAgICAgICAgIDxmaWxlPmljb25zL3Rv
dWNoLnBuZzwvZmlsZT4KICAgICAgICAgPGZpbGU+aWNvbnMvdG91Y2hwb2ludC5wbmc8L2ZpbGU+
CisgICAgICAgIDxmaWxlPmljb25zL3VwLnBuZzwvZmlsZT4KICAgICAgICAgPGZpbGU+cW1sL0Fs
ZXJ0RGlhbG9nLnFtbDwvZmlsZT4KICAgICAgICAgPGZpbGU+cW1sL0F1dGhlbnRpY2F0aW9uRGlh
bG9nLnFtbDwvZmlsZT4KICAgICAgICAgPGZpbGU+cW1sL0Jyb3dzZXJXaW5kb3cucW1sPC9maWxl
PgpAQCAtMTUsNiArMTksNyBAQAogICAgICAgICA8ZmlsZT5xbWwvRGlhbG9nLnFtbDwvZmlsZT4K
ICAgICAgICAgPGZpbGU+cW1sL0RpYWxvZ0J1dHRvbi5xbWw8L2ZpbGU+CiAgICAgICAgIDxmaWxl
PnFtbC9EaWFsb2dMaW5lSW5wdXQucW1sPC9maWxlPgorICAgICAgICA8ZmlsZT5xbWwvRmlsZVBp
Y2tlci5xbWw8L2ZpbGU+CiAgICAgICAgIDxmaWxlPnFtbC9JdGVtU2VsZWN0b3IucW1sPC9maWxl
PgogICAgICAgICA8ZmlsZT5xbWwvTW9ja1RvdWNoUG9pbnQucW1sPC9maWxlPgogICAgICAgICA8
ZmlsZT5xbWwvUHJvbXB0RGlhbG9nLnFtbDwvZmlsZT4KQEAgLTIyLDYgKzI3LDUgQEAKICAgICAg
ICAgPGZpbGU+cW1sL1Njcm9sbEluZGljYXRvci5xbWw8L2ZpbGU+CiAgICAgICAgIDxmaWxlPnFt
bC9WaWV3cG9ydEluZm9JdGVtLnFtbDwvZmlsZT4KICAgICAgICAgPGZpbGU+dXNlcmFnZW50bGlz
dC50eHQ8L2ZpbGU+Ci0gICAgICAgIDxmaWxlPmljb25zL2Zhdmljb24ucG5nPC9maWxlPgogICAg
IDwvcXJlc291cmNlPgogPC9SQ0M+CmRpZmYgLS1naXQgYS9Ub29scy9NaW5pQnJvd3Nlci9xdC9p
Y29ucy9mb2xkZXIucG5nIGIvVG9vbHMvTWluaUJyb3dzZXIvcXQvaWNvbnMvZm9sZGVyLnBuZwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5lNTNlMmFkNDY0ZWI5OTMyNTZhNmMzNTY3ZmM5NDA0OThlMjZmYzhiCkdJVCBi
aW5hcnkgcGF0Y2gKbGl0ZXJhbCAxODQxCnpjbVYtMTJoUkEzUCk8aDszS3xMazAwMGUxTkpMVHEw
MDFCVzAwMUJlMV5AczZiOSNGODAwMDA0YjMjY30ybll4Vwp6ZDxiTlMwMDAwOWE3YkJtMDAwJCEw
MDAkITBZJj0hcDh4Oz04RldRaGJXPzk7YmEhRUxXZExffmNQP3BlWWphfl4KemFBaHVVYSVZP0ZK
UUBIMTJDaGomS356fFV5X1JXZ1JNIT45fEw0OXBgI3hVNEdaQDx3O340TEl6JHZ6STBXKk4zCnpr
YF5fQkcqVjN4c2F1aXtFTnhSTVFrQUhiKG55Zz0tQmJkSEJyVDtSTylVfnFsdGR7cFRrNGU1IVZy
YWs4OVgrJgp6blpASnIlJHBne2F7SXdISGZCc2JDR0Fnb0FGbDN1PWwkK0U9ZX5EfGJCPyhmam9P
dEo3NVVFXjRCQT9+VWFiT3cKemN8ODgxdnU3QEQ5VVVGLXpUPCY9SyU2fXdCMiNtNzw7T3BIPmZ2
UWV2ZU9oTXZsZW8+MDA4aWZPOElHTmhMNmw8Cnp7YVVacmZBKCVjRXRkMzZyRGJgfjVoJmlAPz5o
NE49Wj5TQ15NUzd2MFByM0FoUHZXeyFZdEM4PFdRPCtyV2FZJQp6a1NuVitNRUdGUUJKOytQNSRg
fGQxfHVUbmlqX3NqK1M9PzV4d2NGPktwNjd7WWV6PFdGS3Biaih0RztVZyUrUEwKemFQZSplQTx3
OGNXO0U1eTclMzMrZCFXKXRVOyttKkxTRFdaOChPUT84amJSSk1NZUhnSnZ+P1YwdGYqfUQ9RXBf
Cnp5ayQkJV5Zen4tKGsoQn1WcEBZNzAxeWVxU1U3QV42X3NSTG1uX05YRS1CNlhQNDkoayYmPytn
X0tsNUNoKWdHfAp6VSRHZkpwQVhKfllYfTU5MiEqfGZiMms9UzZJazApcnBqTXQtU3l5PXB7Rl9M
VCZHaSFJWlk/YSQ7JUtrdiglNikKejFhT2BKMExZYUxhd1VVU1otVCpDcHxWPWplcFgmXy1fbzlj
VTtUYmtman1TfWtIdXBFMEhlX2VxcHxZVldGUWJnCnplfTVrbzxicSE3VksmPmFpbyoqZ0Jwe1BC
czVBbkExU1RkRE52YUpQJXJhRTMkZFVRfEhJTFlBU3R0QVloRi1tKwp6MVgzXkBpJSR2Nk1YU31L
c0hwN0xTZHRfLW9lcXJwaDlPQkZnbzdAUy1+ekZEKCZxc3s1UGBiLUpmK3Y7LT49aUQKenwzJVo9
a2NnSDdjJnc7NmB7eCNtUmg2NTJLZ3ZxMCg5cUNgXjc4VXwxSXtLQWlOSERGZlpLQmVMQ0okfiNE
IT8kCnoxe2t8QExCb1IqantORD0ybXckUDZsNVJUdzVpRlNvMHEwRW5LaCE+dGM0Xis7SlBgNkRf
Mn4mYlpHI3FuX0FHOwp6X0JoaGgoLSROSTBNVGReZ00mX3R4U1IrQys+cFhJNXMzfjA2YjFtaXhh
WVcrWSZPZWxkdyVgWUhkQV90TypoVjUKejVeKWlpeml7TEk2QmtmankkVTtie3VGQXBkY2gqbyM5
fWN4OURPKn57VEZjTiFIJWFwaDhiZip0SENffiVLP0IxCnpGJSVYVkAjQU0ycTFDejNgcF9EQEA9
ODE2QCVkfD0ze2V6ZXVgRUY+c3o3akQxVUxzOV5OKTNZK0lATEowZi1WUAp6dDR6bnYtUm0ka0Ar
cTJ8PihTWlNuVWFKYzJwfCM9aV5hamchQ1dgfWB+TGRvQyFVbW9oelVIbiU4REprKlEyWkoKekQ4
OUwtNWV8blZicFp9QSZVeD4zaHMhZklDWik2ejA4cHdwU35sQTcjRk89Uzs+b1F6YV4hR0kwc3Nk
Q2ZLV0tQCnp8TlJwXjtnaylnTlh3OTY9V2FYeCs1SWxzKzgjcUY2cUAmNUFfNzImI1MtOGchfmhA
fDJwQFgpKiFpKmxSc2FCcQp6TVh7bF4wMVp0YHY5Nl5OeX1pQmotcGZjcEpVLWQ8Mzs7T2l7PlZo
RWB8PWs8X3VfeT1BX2krViE/VkJtSGxCWkIKejd1d3JqUEEqR3FzdDJZQDAwM142ZkE4Q0dyUGhx
fEE7Xk9HIUg9NUoqTE16a193R3ElZmNSdHlXJn05clU2KEVuCnoyRUZiRzV7V3hjTnZTZHNeYHJH
JHI1R09XI2xlRklaa3dBYSFLQDRiS3ArdDZ4Ym8jcUlJbzReYVpNbVAmdEdrIQp6TD8hfXdjdU5o
PWZBI0A3Sk80SCN6QGBRMGM3Z0huKDJLdl9jbDVLdmhkPDxsMTNuRCloY1IqXmZ7PktqN2pISjkK
enVvdjROWk4jeTYtb1U5LVQ+dkp4Oy1tPD57WEQ9cV9YRFVScUtxP1ZGODsydEZsViFVTCM+ZFBZ
a15HOHBmYCVwCno+Tz5Id0NKflRzVkVmfU8qdEtIXnkxRzdyRDlXWTtofE42QE9wQ1l4WSN9MSo+
QUN1aCY2ZjRjUlNsKXUyT2UwQwp6UUk4MG5VV0RFdExKJHtqNSkyS1hxJTw0ZC1RQmtgSypUYEZq
XilXOXFMbXEkaEopMnIxXjJJT3NVZlhLNFVKQk8Kei1ZN3okVXwkXm9mYitUXkFBTEJDdD1rXksk
KiM5P3NOKUAxKGhNWW5iQUFAVWF3ME9GSmxWNnF4SCRLXz4rUTl8CnooKEpgaEM+YWIhOFByPGd0
fShLNl5jV3BJNEByYHk3TGBIPGwwaWcyJStJJn1zO1F8PVVzRj5FeG09ais2VEp3PQp6bDklVnFY
JE9WfFdpWG0hYzttSkEtMWo2Zk9RYjN6KTZoe0BUVWZld1R7VVVjRChMaGdiVmVDdXZmRCk+O1cr
LSMKemVpfXVrSXIhdTJDJXp0bVN0NUYrUXViMD1gRilTdCpWbD94WWJNbTEkKmQ/PEd2enNQezdY
MG8tOGdyO192O215CnpCZVQ3cnpgQWVzPlBsbCgpaU5qKWxNU29VaUV2JlkkTTQoITQhNnRpVVRf
bnAzZ2BSKWZDRUhTd3NeNnJxcHEmNwp6YT9QNCpRbVlsdlhxN09Ud0Q1WXk+M14xaXhlJD83ckl6
b2pEOV8oK3g3VWlrdV58M0BfK3ZqZj1sfVBNaGB3akQKZkVwcDR7Oz4zUmQmIStZTnp3QWJlMDAw
MDBOa3ZYWHUwbWpmTUgqPC0KCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL1Rv
b2xzL01pbmlCcm93c2VyL3F0L2ljb25zL3RpdGxlYmFyLnBuZyBiL1Rvb2xzL01pbmlCcm93c2Vy
L3F0L2ljb25zL3RpdGxlYmFyLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mM2QxOGFhODJlOTNkODk5YWY4M2E5
ZDg2YjhjMGFhYzFmNmVhMmEyCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAxOTcKemNtZUFTQE4/
KG9sSHlgdVZCcSFpYTB2cF4yMCpPQyEyfjRObCZrQDk3Pms0NG9meWBnbFgoZmB1JXRXc0l4O1k5
Cno/QzFXSSRPYDBoN0k7SiFHY1g5MWZIMzJ8SDJEZ2tWM2VuZVZAUVBpK2U7ZS04NE5nJTdfZz1N
dWF0MXFaTjBxZgp6O2d0RWMtPTV2SHozdXBHVnZFcUVoQUw/PDUyamJTOGo3NE53bDhjXlMjWWxu
emFWP2ZqTDBuSzd4UWxjWkRIX3EKTF4+YlAwbCtYa0s/O1N1KAoKbGl0ZXJhbCAwCkhjbVY/ZDAw
MDAxCgpkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dzZXIvcXQvaWNvbnMvdXAucG5nIGIvVG9v
bHMvTWluaUJyb3dzZXIvcXQvaWNvbnMvdXAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIwNWY4MDI1ZDAxNTdh
NWU3YjI3OTJiMDU4Y2RiNDU1M2IxZDZiZmYKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDY2Mgp6
Y21WO0gwJWBxO1ApPGg7M0t8TGswMDBlMU5KTFRxMDAwc0kwMDBzUTFeQHM2Uj9kIUIwMDAwMWI1
Y2hfMEl0cCkKej0+UHgjMjRZSmBMOyhLKXt7YTc+eXtENF4wMDBTYU5MaDBMMDFGY1UwMUZjVjBH
Z1pfMDAwMDdiVipHYDJpWFNACnowNT1xbzBUX1YqMDBJX0NMX3QoSSVlfEQoWVpFfmYkM0pnb0hg
JG0zQH1vXm13VGQxRDUlcHhYMjE4WFdkaHA7TQp6cGh3JF8pUlclNER8cWtDS2Z3UCQ1RU1LfVFO
KXY9MnI1LWNIRURpcWxiWT04ZGd5SyYobCtZRjJhZyQ7bmF9JmEKem5mQ18lcWdrUGtIMnNKNVFZ
QH0tWWc7WkVGWCNYKGZjYU0/NlJFVmxjPTc3TiZoPVo5eX5EQCFRPWtJR3sjS0RfCnpFZD9pRy04
bmJBfDdMa00/ZC1gX2J2bn5LO0k9dXMqNXJlNF8mJSZgOCVTI0BXT0J+S3NZLUVmYGEpOXNkS3Ul
cAp6V2ImeCY3P1c8MzZZVTE/ZThWQHUtd2prdXJ0R18/JTd3WWc8c0BRUEByO1g3MGFgO1k1ODFx
d255VmJDdWthcVcKelYxdUImc2tEOHNlNy1iNEooSldyekpsa3FQfnV9TCg0cHRAa1E8a1lXfVFS
ekFBQUQ3MCVqMCY8QDhLITtwOXsmCno4JXMyUjRvZHRAS209UU4hOGZRPk83P1pUPFFwfkswSlQ5
LT1nVVgkKlVNKyNjeShENyZ6d3lGSiopXktVQEteQAp6IXM3a0Z5anxpfHFzQWxQSFBCWkJwd0dZ
cTtGXyUrbDE+SSZ6elc/Q2Z0Ryo+TzwqMikwO35pNlY4c1QyMlhzWmkKemteb0J1czR5al5LdGc1
VlVLZHljYGFtI1RgYXg3NUkqY0FjbG1leH1SKVA+akt+M34oSk5BJGVBaWhDLTVDSGBVCno4Kj9x
ZXRfP1lDZXlpMn5gUW13ZCV5bDtvaXdjMVB7WFE1JkVsTyFDXzt6IUU4XkgwZnVrO1MtRjlEQiVj
NjFkbwp3O19IWTNhbGpyezREYGErK0VnVll4P2VgRDJTWCNqMHNYcTlHUz1hdU5kTiE8MDcqcW9N
Nk48JGc4Ym5oTWdSWisKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL1Rvb2xz
L01pbmlCcm93c2VyL3F0L3FtbC9Ccm93c2VyV2luZG93LnFtbCBiL1Rvb2xzL01pbmlCcm93c2Vy
L3F0L3FtbC9Ccm93c2VyV2luZG93LnFtbAppbmRleCBiNGU2ZTI0Li5jZjc0YjIyIDEwMDY0NAot
LS0gYS9Ub29scy9NaW5pQnJvd3Nlci9xdC9xbWwvQnJvd3NlcldpbmRvdy5xbWwKKysrIGIvVG9v
bHMvTWluaUJyb3dzZXIvcXQvcW1sL0Jyb3dzZXJXaW5kb3cucW1sCkBAIC0zMTMsNiArMzEzLDcg
QEAgUmVjdGFuZ2xlIHsKICAgICAgICAgZXhwZXJpbWVudGFsLnByb21wdERpYWxvZzogUHJvbXB0
RGlhbG9nIHsgfQogICAgICAgICBleHBlcmltZW50YWwuYXV0aGVudGljYXRpb25EaWFsb2c6IEF1
dGhlbnRpY2F0aW9uRGlhbG9nIHsgfQogICAgICAgICBleHBlcmltZW50YWwucHJveHlBdXRoZW50
aWNhdGlvbkRpYWxvZzogUHJveHlBdXRoZW50aWNhdGlvbkRpYWxvZyB7IH0KKyAgICAgICAgZXhw
ZXJpbWVudGFsLmZpbGVQaWNrZXI6IEZpbGVQaWNrZXIgeyB9CiAKICAgICAgICAgU2Nyb2xsSW5k
aWNhdG9yIHsKICAgICAgICAgICAgIGZsaWNrYWJsZUl0ZW06IHdlYlZpZXcuZXhwZXJpbWVudGFs
LmZsaWNrYWJsZQpkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dzZXIvcXQvcW1sL0ZpbGVQaWNr
ZXIucW1sIGIvVG9vbHMvTWluaUJyb3dzZXIvcXQvcW1sL0ZpbGVQaWNrZXIucW1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjViZWI4NmEKLS0tIC9kZXYvbnVsbAorKysgYi9U
b29scy9NaW5pQnJvd3Nlci9xdC9xbWwvRmlsZVBpY2tlci5xbWwKQEAgLTAsMCArMSwxODIgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBz
dWJzaWRpYXJ5KC1pZXMpCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlz
aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgor
ICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
CisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAg
SWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwg
NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMw
MSwgVVNBLgorICoKKyAqLworCitpbXBvcnQgUXRRdWljayAyLjAKK2ltcG9ydCBRdC5sYWJzLmZv
bGRlcmxpc3Rtb2RlbCAxLjAKKworUmVjdGFuZ2xlIHsKKyAgICBpZDogZmlsZVBpY2tlcgorCisg
ICAgcHJvcGVydHkgUXRPYmplY3QgZmlsZU1vZGVsOiBtb2RlbAorICAgIHByb3BlcnR5IGFsaWFz
IGZvbGRlcjogZm9sZGVycy5mb2xkZXIKKworICAgIGNvbG9yOiAid2hpdGUiCisgICAgd2lkdGg6
IDQwMAorICAgIGhlaWdodDogNTAwCisKKyAgICBzbW9vdGg6IHRydWUKKyAgICByYWRpdXM6IDUK
KyAgICBhbmNob3JzLmNlbnRlckluOiBwYXJlbnQKKworICAgIGJvcmRlciB7CisgICAgICAgIHdp
ZHRoOiAxCisgICAgICAgIGNvbG9yOiAiI2JmYmZiZiIKKyAgICB9CisKKyAgICBCb3JkZXJJbWFn
ZSB7CisgICAgICAgIHNvdXJjZTogIi4uL2ljb25zL3RpdGxlYmFyLnBuZyI7CisgICAgICAgIHdp
ZHRoOiBwYXJlbnQud2lkdGg7CisgICAgICAgIGhlaWdodDogNTAKKyAgICAgICAgeTogLTcKKyAg
ICAgICAgaWQ6IHRpdGxlQmFyCisKKyAgICAgICAgYW5jaG9ycyB7CisgICAgICAgICAgICB0b3A6
IHBhcmVudC50b3AKKyAgICAgICAgICAgIGJvdHRvbTogZm9sZGVyTGlzdFZpZXcudG9wCisgICAg
ICAgIH0KKyAgICAgICAgUmVjdGFuZ2xlIHsKKyAgICAgICAgICAgIGlkOiB1cEJ1dHRvbgorICAg
ICAgICAgICAgd2lkdGg6IDQ4CisgICAgICAgICAgICBoZWlnaHQ6IHRpdGxlQmFyLmhlaWdodCAt
IDcKKyAgICAgICAgICAgIGNvbG9yOiAidHJhbnNwYXJlbnQiCisgICAgICAgICAgICBJbWFnZSB7
IGFuY2hvcnMuY2VudGVySW46IHBhcmVudDsgc291cmNlOiAiLi4vaWNvbnMvdXAucG5nIiB9Cisg
ICAgICAgICAgICBNb3VzZUFyZWEgeyBpZDogdXBSZWdpb247IGFuY2hvcnMuY2VudGVySW46IHBh
cmVudAorICAgICAgICAgICAgICAgIHdpZHRoOiA0OAorICAgICAgICAgICAgICAgIGhlaWdodDog
NDgKKyAgICAgICAgICAgICAgICBvbkNsaWNrZWQ6IGlmIChmb2xkZXJzLnBhcmVudEZvbGRlciAh
PSAiIikgdXAoKQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgUmVjdGFuZ2xl
IHsKKyAgICAgICAgICAgIGNvbG9yOiAiZ3JheSIKKyAgICAgICAgICAgIHg6IDQ4CisgICAgICAg
ICAgICB3aWR0aDogMQorICAgICAgICAgICAgaGVpZ2h0OiA0NAorICAgICAgICB9CisKKyAgICAg
ICAgVGV4dCB7CisgICAgICAgICAgICBhbmNob3JzIHsKKyAgICAgICAgICAgICAgICBsZWZ0OiB1
cEJ1dHRvbi5yaWdodAorICAgICAgICAgICAgICAgIHJpZ2h0OiBwYXJlbnQucmlnaHQKKyAgICAg
ICAgICAgICAgICBsZWZ0TWFyZ2luOiA0CisgICAgICAgICAgICAgICAgcmlnaHRNYXJnaW46IDQK
KyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaGVpZ2h0OiBwYXJlbnQuaGVpZ2h0CisgICAg
ICAgICAgICB0ZXh0OiBmb2xkZXJzLmZvbGRlcgorICAgICAgICAgICAgY29sb3I6ICJ3aGl0ZSIK
KyAgICAgICAgICAgIGVsaWRlOiBUZXh0LkVsaWRlTGVmdDsKKyAgICAgICAgICAgIGhvcml6b250
YWxBbGlnbm1lbnQ6IFRleHQuQWxpZ25MZWZ0OworICAgICAgICAgICAgdmVydGljYWxBbGlnbm1l
bnQ6IFRleHQuQWxpZ25WQ2VudGVyCisgICAgICAgICAgICBmb250LnBpeGVsU2l6ZTogMjQKKyAg
ICAgICAgfQorICAgIH0KKworICAgIExpc3RWaWV3IHsKKyAgICAgICAgaWQ6IGZvbGRlckxpc3RW
aWV3CisKKyAgICAgICAgd2lkdGg6IHBhcmVudC53aWR0aAorICAgICAgICBoZWlnaHQ6IDQwMAor
ICAgICAgICBhbmNob3JzLmNlbnRlckluOiBwYXJlbnQKKyAgICAgICAgc3BhY2luZzogMgorICAg
ICAgICBjbGlwOiB0cnVlCisKKyAgICAgICAgRm9sZGVyTGlzdE1vZGVsIHsKKyAgICAgICAgICAg
IGlkOiBmb2xkZXJzCisgICAgICAgIH0KKworICAgICAgICBDb21wb25lbnQgeworICAgICAgICAg
ICAgaWQ6IGZpbGVEZWxlZ2F0ZQorCisgICAgICAgICAgICBSZWN0YW5nbGUgeworICAgICAgICAg
ICAgICAgIGZ1bmN0aW9uIHNlbGVjdGVkKCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoZm9s
ZGVycy5pc0ZvbGRlcihpbmRleCkpCisgICAgICAgICAgICAgICAgICAgICAgICBvcGVuRm9sZGVy
KGZpbGVQYXRoKTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAg
ICAgICAgZmlsZU1vZGVsLmFjY2VwdChmaWxlUGF0aCk7CisgICAgICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICAgICAgaGVpZ2h0OiA1MAorICAgICAgICAgICAgICAgIHdpZHRoOiBwYXJlbnQu
d2lkdGgKKyAgICAgICAgICAgICAgICBjb2xvcjogZm9sZGVycy5pc0ZvbGRlcihpbmRleCkgPyAi
bGlnaHRncmF5IjogImRhcmtncmF5IgorCisgICAgICAgICAgICAgICAgSXRlbSB7CisgICAgICAg
ICAgICAgICAgICAgIHdpZHRoOiA0ODsKKyAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiA0OAor
ICAgICAgICAgICAgICAgICAgICBJbWFnZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzb3Vy
Y2U6ICIuLi9pY29ucy9mb2xkZXIucG5nIgorICAgICAgICAgICAgICAgICAgICAgICAgYW5jaG9y
cy5jZW50ZXJJbjogcGFyZW50CisgICAgICAgICAgICAgICAgICAgICAgICB2aXNpYmxlOiBmb2xk
ZXJzLmlzRm9sZGVyKGluZGV4KQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICAgICAgVGV4dCB7CisgICAgICAgICAgICAgICAgICAgIGFuY2hv
cnMuY2VudGVySW46IHBhcmVudAorICAgICAgICAgICAgICAgICAgICBhbmNob3JzLmxlZnRNYXJn
aW46IDUwCisgICAgICAgICAgICAgICAgICAgIHRleHQ6IGZpbGVOYW1lCisgICAgICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICAgICAgTW91c2VBcmVhIHsKKyAgICAgICAgICAgICAgICAgICAg
YW5jaG9ycy5maWxsOiBwYXJlbnQKKyAgICAgICAgICAgICAgICAgICAgb25DbGlja2VkOiBzZWxl
Y3RlZCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAg
ICAgICBtb2RlbDogZm9sZGVycworICAgICAgICBkZWxlZ2F0ZTogZmlsZURlbGVnYXRlCisgICAg
fQorCisgICAgUmVjdGFuZ2xlIHsKKyAgICAgICAgaWQ6IGJ1dHRvbgorCisgICAgICAgIGhlaWdo
dDogNTAKKworICAgICAgICBib3JkZXIgeworICAgICAgICAgICAgd2lkdGg6IDEKKyAgICAgICAg
ICAgIGNvbG9yOiAiI2JmYmZiZiIKKyAgICAgICAgfQorCisgICAgICAgIGFuY2hvcnMgeworICAg
ICAgICAgICAgYm90dG9tOiBwYXJlbnQuYm90dG9tCisgICAgICAgICAgICB0b3A6IGZvbGRlckxp
c3RWaWV3LmJvdHRvbQorICAgICAgICAgICAgbGVmdDogcGFyZW50LmxlZnQKKyAgICAgICAgICAg
IHJpZ2h0OiBwYXJlbnQucmlnaHQKKyAgICAgICAgfQorCisgICAgICAgIERpYWxvZ0J1dHRvbiB7
CisgICAgICAgICAgICBpZDogY2FuY2VsCisgICAgICAgICAgICB0ZXh0OiAiQ2FuY2VsIgorICAg
ICAgICAgICAgYW5jaG9ycyB7CisgICAgICAgICAgICAgICAgaG9yaXpvbnRhbENlbnRlcjogcGFy
ZW50Lmhvcml6b250YWxDZW50ZXI7CisgICAgICAgICAgICAgICAgdmVydGljYWxDZW50ZXI6ICBw
YXJlbnQudmVydGljYWxDZW50ZXIKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgb25DbGlj
a2VkOiBmaWxlTW9kZWwucmVqZWN0KCkKKyAgICAgICAgfQorICAgIH0KKworICAgIGZ1bmN0aW9u
IG9wZW5Gb2xkZXIocGF0aCkgeworICAgICAgICBmb2xkZXJzLmZvbGRlciA9IHBhdGg7CisgICAg
fQorCisgICAgZnVuY3Rpb24gdXAoKSB7CisgICAgICAgIGZvbGRlcnMuZm9sZGVyID0gZm9sZGVy
cy5wYXJlbnRGb2xkZXI7CisgICAgfQorfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>