<?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>144685</bug_id>
          
          <creation_ts>2015-05-06 06:36:23 -0700</creation_ts>
          <short_desc>[EGL] Move EGLDisplay handling to PlatformDisplay and remove PlatformDisplay definition from GLDefs.h</short_desc>
          <delta_ts>2015-05-06 09:08:01 -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>Platform</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>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>144521</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>gyuyoung.kim</cc>
    
    <cc>mrobinson</cc>
    
    <cc>ossy</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1092142</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-05-06 06:36:23 -0700</bug_when>
    <thetext>And remove the PlatformDisplay definition from platform/graphics/opengl/GLDefs.h. The EGL display is also initialized in multiple places, and could be unified in PlatformDisplay.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1092143</commentid>
    <comment_count>1</comment_count>
      <attachid>252469</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-05-06 06:44:11 -0700</bug_when>
    <thetext>Created attachment 252469
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1092144</commentid>
    <comment_count>2</comment_count>
      <attachid>252470</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-05-06 07:00:33 -0700</bug_when>
    <thetext>Created attachment 252470
Try to fix EFL build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1092150</commentid>
    <comment_count>3</comment_count>
      <attachid>252470</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2015-05-06 07:54:48 -0700</bug_when>
    <thetext>Comment on attachment 252470
Try to fix EFL build

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

&gt; Source/WebCore/platform/graphics/PlatformDisplay.cpp:139
&gt; +#if USE(OPENGL_ES_2)
&gt; +    static const EGLenum eglAPIVersion = EGL_OPENGL_ES_API;
&gt; +#else
&gt; +    static const EGLenum eglAPIVersion = EGL_OPENGL_API;
&gt; +#endif
&gt; +    if (eglBindAPI(eglAPIVersion) == EGL_FALSE) {
&gt; +        LOG_ERROR(&quot;Failed to set EGL API(%d).&quot;, eglGetError());
&gt; +        terminateEGLDisplay();
&gt; +        return;
&gt; +    }

This needs to be called once per program, not once per display. Perhaps you could surround this with std::once.

&gt; Source/WebCore/platform/graphics/surfaces/glx/GLXSurface.cpp:153
&gt; -    m_glxPixmap = glXCreateGLXPixmap(m_sharedDisplay, visualInfo.get(), m_pixmap);
&gt; +    m_glxPixmap = glXCreateGLXPixmap(X11Helper::nativeDisplay(), visualInfo.get(), m_pixmap);

This is GLX-related, so perhaps you could update the bug title and ChangeLog slightly?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1092153</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-05-06 08:25:28 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 252470 [details]
&gt; Try to fix EFL build
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=252470&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/PlatformDisplay.cpp:139
&gt; &gt; +#if USE(OPENGL_ES_2)
&gt; &gt; +    static const EGLenum eglAPIVersion = EGL_OPENGL_ES_API;
&gt; &gt; +#else
&gt; &gt; +    static const EGLenum eglAPIVersion = EGL_OPENGL_API;
&gt; &gt; +#endif
&gt; &gt; +    if (eglBindAPI(eglAPIVersion) == EGL_FALSE) {
&gt; &gt; +        LOG_ERROR(&quot;Failed to set EGL API(%d).&quot;, eglGetError());
&gt; &gt; +        terminateEGLDisplay();
&gt; &gt; +        return;
&gt; &gt; +    }
&gt; 
&gt; This needs to be called once per program, not once per display. Perhaps you
&gt; could surround this with std::once.

Display is already a single instance, so this will be called only once per display, per process.

&gt; &gt; Source/WebCore/platform/graphics/surfaces/glx/GLXSurface.cpp:153
&gt; &gt; -    m_glxPixmap = glXCreateGLXPixmap(m_sharedDisplay, visualInfo.get(), m_pixmap);
&gt; &gt; +    m_glxPixmap = glXCreateGLXPixmap(X11Helper::nativeDisplay(), visualInfo.get(), m_pixmap);
&gt; 
&gt; This is GLX-related, so perhaps you could update the bug title and ChangeLog
&gt; slightly?

But nothing has actually changed here, I can add and remove PlatformDisplay from GLDefs.h</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1092155</commentid>
    <comment_count>5</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2015-05-06 08:31:21 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; Comment on attachment 252470 [details]
&gt; &gt; Try to fix EFL build
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=252470&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/platform/graphics/PlatformDisplay.cpp:139
&gt; &gt; &gt; +#if USE(OPENGL_ES_2)
&gt; &gt; &gt; +    static const EGLenum eglAPIVersion = EGL_OPENGL_ES_API;
&gt; &gt; &gt; +#else
&gt; &gt; &gt; +    static const EGLenum eglAPIVersion = EGL_OPENGL_API;
&gt; &gt; &gt; +#endif
&gt; &gt; &gt; +    if (eglBindAPI(eglAPIVersion) == EGL_FALSE) {
&gt; &gt; &gt; +        LOG_ERROR(&quot;Failed to set EGL API(%d).&quot;, eglGetError());
&gt; &gt; &gt; +        terminateEGLDisplay();
&gt; &gt; &gt; +        return;
&gt; &gt; &gt; +    }
&gt; &gt; 
&gt; &gt; This needs to be called once per program, not once per display. Perhaps you
&gt; &gt; could surround this with std::once.
&gt; 
&gt; Display is already a single instance, so this will be called only once per
&gt; display, per process.

eglBindAPI isn&apos;t supposed to be called once per-display. I supposed to be called once.

&gt; 
&gt; &gt; &gt; Source/WebCore/platform/graphics/surfaces/glx/GLXSurface.cpp:153
&gt; &gt; &gt; -    m_glxPixmap = glXCreateGLXPixmap(m_sharedDisplay, visualInfo.get(), m_pixmap);
&gt; &gt; &gt; +    m_glxPixmap = glXCreateGLXPixmap(X11Helper::nativeDisplay(), visualInfo.get(), m_pixmap);
&gt; &gt; 
&gt; &gt; This is GLX-related, so perhaps you could update the bug title and ChangeLog
&gt; &gt; slightly?
&gt; 
&gt; But nothing has actually changed here, I can add and remove PlatformDisplay
&gt; from GLDefs.h

I&apos;m not sure I understand what you mean, but the change is so small that you can probably skip mentioning GLX in the ChangeLog if you don&apos;t think it matters.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1092156</commentid>
    <comment_count>6</comment_count>
      <attachid>252475</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-05-06 08:32:02 -0700</bug_when>
    <thetext>Created attachment 252475
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1092157</commentid>
    <comment_count>7</comment_count>
      <attachid>252476</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-05-06 08:35:26 -0700</bug_when>
    <thetext>Created attachment 252476
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1092159</commentid>
    <comment_count>8</comment_count>
      <attachid>252478</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-05-06 08:39:28 -0700</bug_when>
    <thetext>Created attachment 252478
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1092160</commentid>
    <comment_count>9</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-05-06 08:46:51 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; (In reply to comment #3)
&gt; &gt; &gt; Comment on attachment 252470 [details]
&gt; &gt; &gt; Try to fix EFL build
&gt; &gt; &gt; 
&gt; &gt; &gt; View in context:
&gt; &gt; &gt; https://bugs.webkit.org/attachment.cgi?id=252470&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebCore/platform/graphics/PlatformDisplay.cpp:139
&gt; &gt; &gt; &gt; +#if USE(OPENGL_ES_2)
&gt; &gt; &gt; &gt; +    static const EGLenum eglAPIVersion = EGL_OPENGL_ES_API;
&gt; &gt; &gt; &gt; +#else
&gt; &gt; &gt; &gt; +    static const EGLenum eglAPIVersion = EGL_OPENGL_API;
&gt; &gt; &gt; &gt; +#endif
&gt; &gt; &gt; &gt; +    if (eglBindAPI(eglAPIVersion) == EGL_FALSE) {
&gt; &gt; &gt; &gt; +        LOG_ERROR(&quot;Failed to set EGL API(%d).&quot;, eglGetError());
&gt; &gt; &gt; &gt; +        terminateEGLDisplay();
&gt; &gt; &gt; &gt; +        return;
&gt; &gt; &gt; &gt; +    }
&gt; &gt; &gt; 
&gt; &gt; &gt; This needs to be called once per program, not once per display. Perhaps you
&gt; &gt; &gt; could surround this with std::once.
&gt; &gt; 
&gt; &gt; Display is already a single instance, so this will be called only once per
&gt; &gt; display, per process.
&gt; 
&gt; eglBindAPI isn&apos;t supposed to be called once per-display. I supposed to be
&gt; called once.

There&apos;s only one display, so it will be called once. Anyway, I&apos;ve moved the egl initializations repeated in several places here, so if it was wrong it can be fixed in a follow up patch, this patch shouldn&apos;t change any behaviour. But I insist, this is called only once per process.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1092161</commentid>
    <comment_count>10</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2015-05-06 08:47:52 -0700</bug_when>
    <thetext>(In reply to comment #9)

&gt; There&apos;s only one display, so it will be called once. Anyway, I&apos;ve moved the
&gt; egl initializations repeated in several places here, so if it was wrong it
&gt; can be fixed in a follow up patch, this patch shouldn&apos;t change any
&gt; behaviour. But I insist, this is called only once per process.

Okay. I misunderstood what you wrote earlier. Sorry about that. This sounds fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1092166</commentid>
    <comment_count>11</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-05-06 09:08:01 -0700</bug_when>
    <thetext>Committed r183868: &lt;http://trac.webkit.org/changeset/183868&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>252469</attachid>
            <date>2015-05-06 06:44:11 -0700</date>
            <delta_ts>2015-05-06 07:00:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk-egl-display.diff</filename>
            <type>text/plain</type>
            <size>18834</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBjNmNjYjRlLi43YmI0NDNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTMg
QEAKKzIwMTUtMDUtMDYgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtFR0xdIE1vdmUgRUdMRGlzcGxheSBoYW5kbGluZyB0byBQbGF0Zm9ybURp
c3BsYXkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0
NDY4NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRo
ZSBFR0wgZGlzcGxheSBpcyBhbHNvIGluaXRpYWxpemVkIGluIG11bHRpcGxlIHBsYWNlcywgYW5k
IGNvdWxkCisgICAgICAgIGJlIHVuaWZpZWQgaW4gUGxhdGZvcm1EaXNwbGF5LiBSZW1vdmUgdGhl
IFBsYXRmb3JtRGlzcGxheQorICAgICAgICBkZWZpbml0aW9uIGZyb20gcGxhdGZvcm0vZ3JhcGhp
Y3Mvb3BlbmdsL0dMRGVmcy5oIHRvIGF2b2lkIGNvbmZsaWN0cy4KKworICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbGF0
Zm9ybURpc3BsYXk6OlBsYXRmb3JtRGlzcGxheSk6IEluaXRpYWxpemUgbV9lZ2xEaXNwbGF5Lgor
ICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1EaXNwbGF5Ojp+UGxhdGZvcm1EaXNwbGF5KTogQ2Fs
bCB0ZXJtaW5hdGVFR0xEaXNwbGF5KCkuCisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybURpc3Bs
YXk6OmVnbERpc3BsYXkpOiBMYXp5IGludGlhbGl6ZSB0aGUgRUdMCisgICAgICAgIGRpc3BsYXkg
YW5kIHJldHVybiBpdC4KKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxheTo6aW5pdGlh
bGl6ZUVHTERpc3BsYXkpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1EaXNwbGF5Ojp0ZXJt
aW5hdGVFR0xEaXNwbGF5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURp
c3BsYXkuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OnNoYXJlZEVHTERpc3BsYXkpOiBVc2UgUGxhdGZvcm1EaXNw
bGF5OjplZ2xEaXNwbGF5KCkuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dM
RGVmcy5oOiBSZW1vdmUgdW5uZWVkZWQgZGVmaW5pdGlvbnMuCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1TdXJmYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkdMUGxhdGZvcm1TdXJmYWNlOjpHTFBsYXRmb3JtU3VyZmFjZSk6IFJlbW92ZQorICAgICAgICBt
X3NoYXJlZERpc3BsYXkgbWVtYmVyLCBQbGF0Zm9ybURpc3BsYXk6OnNoYXJlZERpc3BsYXkoKSBj
YW4gYmUgdXNlZCBpbnN0ZWFkLgorICAgICAgICAoV2ViQ29yZTo6R0xQbGF0Zm9ybVN1cmZhY2U6
OnNoYXJlZERpc3BsYXkpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL29w
ZW5nbC9HTFBsYXRmb3JtU3VyZmFjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3N1
cmZhY2VzL2VnbC9FR0xDb25maWdTZWxlY3Rvci5oOiBVc2UKKyAgICAgICAgRUdMRGlzcGxheSBp
bnN0ZWFkIG9mIFBsYXRmb3JtRGlzcGxheS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9z
dXJmYWNlcy9lZ2wvRUdMQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFR0xPZmZTY3Jl
ZW5Db250ZXh0Ojppbml0aWFsaXplKTogVXNlIFBsYXRmb3JtRGlzcGxheTo6ZWdsRGlzcGxheSgp
LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2VnbC9FR0xIZWxwZXIuY3Bw
OiBSZW1vdmUgdGhlCisgICAgICAgIEVHTERpc3BsYXlDb25uZWN0aW9uIGNsYXMgYW5kIHVzZSBQ
bGF0Zm9ybURpc3BsYXkgaW5zdGVhZC4KKyAgICAgICAgKFdlYkNvcmU6OkVHTEhlbHBlcjo6ZWds
RGlzcGxheSk6CisgICAgICAgIChXZWJDb3JlOjpFR0xIZWxwZXI6OmN1cnJlbnREaXNwbGF5KToK
KyAgICAgICAgKFdlYkNvcmU6OkVHTERpc3BsYXlDb25uZWN0aW9uOjpFR0xEaXNwbGF5Q29ubmVj
dGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpFR0xEaXNwbGF5Q29ubmVjdGlvbjo6
fkVHTERpc3BsYXlDb25uZWN0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkVHTERp
c3BsYXlDb25uZWN0aW9uOjpkaXNwbGF5KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkVH
TERpc3BsYXlDb25uZWN0aW9uOjp0ZXJtaW5hdGUpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL3N1cmZhY2VzL2VnbC9FR0xIZWxwZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy93YXlsYW5kL1BsYXRmb3JtRGlzcGxheVdheWxhbmQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UGxhdGZvcm1EaXNwbGF5V2F5bGFuZDo6UGxhdGZvcm1EaXNwbGF5V2F5bGFuZCk6
IENhbGwKKyAgICAgICAgUGxhdGZvcm1EaXNwbGF5Ojppbml0aWFsaXplRUdMRGlzcGxheSgpIHRv
IGluc2lhbGl6ZSB0aGUgRUdMIGRpc3BsYXkuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
d2F5bGFuZC9QbGF0Zm9ybURpc3BsYXlXYXlsYW5kLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MveDExL1BsYXRmb3JtRGlzcGxheVgxMS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbGF0
Zm9ybURpc3BsYXlYMTE6OmluaXRpYWxpemVFR0xEaXNwbGF5KTogT3ZlcnJpZGUKKyAgICAgICAg
UGxhdGZvcm1EaXNwbGF5Ojppbml0aWFsaXplRUdMRGlzcGxheSgpIHRvIGluaXRpYWxpemUgdGhl
CisgICAgICAgIG1fZWdsRGlzcGxheSBtZW1iZXIuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MveDExL1BsYXRmb3JtRGlzcGxheVgxMS5oOgorCiAyMDE1LTA1LTA1ICBDYXJsb3MgR2FyY2lh
IENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbU09VUF0gTmV0d29yayBD
YWNoZTogSW1wbGVtZW50IFNoYXJlYWJsZVJlc291cmNlIGZvciBTb3VwIGFuZCBlbmFibGUgaXQg
Zm9yIEdUSyBwbGF0Zm9ybQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvUGxhdGZvcm1EaXNwbGF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL1BsYXRmb3JtRGlzcGxheS5jcHAKaW5kZXggNThiZGQ2OS4uZDYyMTBhMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuY3Bw
CkBAIC00NSw2ICs0NSwxMCBAQAogI2luY2x1ZGUgPEVjb3JlX1guaD4KICNlbmRpZgogCisjaWYg
VVNFKEVHTCkKKyNpbmNsdWRlIDxFR0wvZWdsLmg+CisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1EaXNwbGF5PiBQbGF0Zm9ybURpc3BsYXk6
OmNyZWF0ZVBsYXRmb3JtRGlzcGxheSgpCkBAIC04NSw0ICs4OSw2MyBAQCBQbGF0Zm9ybURpc3Bs
YXkmIFBsYXRmb3JtRGlzcGxheTo6c2hhcmVkRGlzcGxheSgpCiAgICAgcmV0dXJuICpkaXNwbGF5
OwogfQogCitQbGF0Zm9ybURpc3BsYXk6OlBsYXRmb3JtRGlzcGxheSgpCisjaWYgVVNFKEVHTCkK
KyAgICA6IG1fZWdsRGlzcGxheShFR0xfTk9fRElTUExBWSkKKyNlbmRpZgoreworfQorCitQbGF0
Zm9ybURpc3BsYXk6On5QbGF0Zm9ybURpc3BsYXkoKQoreworI2lmIFVTRShFR0wpCisgICAgdGVy
bWluYXRlRUdMRGlzcGxheSgpOworI2VuZGlmCit9CisKKyNpZiBVU0UoRUdMKQorRUdMRGlzcGxh
eSBQbGF0Zm9ybURpc3BsYXk6OmVnbERpc3BsYXkoKSBjb25zdAoreworICAgIGlmICghbV9lZ2xE
aXNwbGF5SW5pdGlhbGl6ZWQpCisgICAgICAgIGNvbnN0X2Nhc3Q8UGxhdGZvcm1EaXNwbGF5Kj4o
dGhpcyktPmluaXRpYWxpemVFR0xEaXNwbGF5KCk7CisgICAgcmV0dXJuIG1fZWdsRGlzcGxheTsK
K30KKwordm9pZCBQbGF0Zm9ybURpc3BsYXk6OmluaXRpYWxpemVFR0xEaXNwbGF5KCkKK3sKKyAg
ICBtX2VnbERpc3BsYXlJbml0aWFsaXplZCA9IHRydWU7CisKKyAgICBpZiAobV9lZ2xEaXNwbGF5
ID09IEVHTF9OT19ESVNQTEFZKSB7CisgICAgICAgIG1fZWdsRGlzcGxheSA9IGVnbEdldERpc3Bs
YXkoRUdMX0RFRkFVTFRfRElTUExBWSk7CisgICAgICAgIGlmIChtX2VnbERpc3BsYXkgPT0gRUdM
X05PX0RJU1BMQVkpCisgICAgICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKGVnbElu
aXRpYWxpemUobV9lZ2xEaXNwbGF5LCAwLCAwKSA9PSBFR0xfRkFMU0UpIHsKKyAgICAgICAgTE9H
X0VSUk9SKCJFR0xEaXNwbGF5IEluaXRpYWxpemF0aW9uIGZhaWxlZC4iKTsKKyAgICAgICAgdGVy
bWluYXRlRUdMRGlzcGxheSgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisjaWYgVVNFKE9Q
RU5HTF9FU18yKQorICAgIHN0YXRpYyBjb25zdCBFR0xlbnVtIGVnbEFQSVZlcnNpb24gPSBFR0xf
T1BFTkdMX0VTX0FQSTsKKyNlbHNlCisgICAgc3RhdGljIGNvbnN0IEVHTGVudW0gZWdsQVBJVmVy
c2lvbiA9IEVHTF9PUEVOR0xfQVBJOworI2VuZGlmCisgICAgaWYgKGVnbEJpbmRBUEkoZWdsQVBJ
VmVyc2lvbikgPT0gRUdMX0ZBTFNFKSB7CisgICAgICAgIExPR19FUlJPUigiRmFpbGVkIHRvIHNl
dCBFR0wgQVBJKCVkKS4iLCBlZ2xHZXRFcnJvcigpKTsKKyAgICAgICAgdGVybWluYXRlRUdMRGlz
cGxheSgpOworICAgICAgICByZXR1cm47CisgICAgfQorfQorCit2b2lkIFBsYXRmb3JtRGlzcGxh
eTo6dGVybWluYXRlRUdMRGlzcGxheSgpCit7CisgICAgaWYgKG1fZWdsRGlzcGxheSA9PSBFR0xf
Tk9fRElTUExBWSkKKyAgICAgICAgcmV0dXJuOworICAgIGVnbFRlcm1pbmF0ZShtX2VnbERpc3Bs
YXkpOworICAgIG1fZWdsRGlzcGxheSA9IEVHTF9OT19ESVNQTEFZOworfQorI2VuZGlmIC8vIFVT
RShFR0wpCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmgKaW5kZXggMjMxMjcwZi4uMThhNjc5
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1E
aXNwbGF5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1E
aXNwbGF5LmgKQEAgLTI5LDEzICsyOSwxNyBAQAogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5o
PgogI2luY2x1ZGUgPHd0Zi9UeXBlQ2FzdHMuaD4KIAorI2lmIFVTRShFR0wpCit0eXBlZGVmIHZv
aWQgKkVHTERpc3BsYXk7CisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBQ
bGF0Zm9ybURpc3BsYXkgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFBsYXRmb3JtRGlzcGxh
eSk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIHN0YXRpYyBQbGF0Zm9y
bURpc3BsYXkmIHNoYXJlZERpc3BsYXkoKTsKLSAgICB2aXJ0dWFsIH5QbGF0Zm9ybURpc3BsYXko
KSA9IGRlZmF1bHQ7CisgICAgdmlydHVhbCB+UGxhdGZvcm1EaXNwbGF5KCk7CiAKICAgICBlbnVt
IGNsYXNzIFR5cGUgewogI2lmIFBMQVRGT1JNKFgxMSkKQEAgLTQ4LDExICs1MiwyNyBAQCBwdWJs
aWM6CiAKICAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0ID0gMDsKIAorI2lmIFVTRShFR0wp
CisgICAgRUdMRGlzcGxheSBlZ2xEaXNwbGF5KCkgY29uc3Q7CisjZW5kaWYKKwogcHJvdGVjdGVk
OgotICAgIFBsYXRmb3JtRGlzcGxheSgpID0gZGVmYXVsdDsKKyAgICBQbGF0Zm9ybURpc3BsYXko
KTsKKworI2lmIFVTRShFR0wpCisgICAgdmlydHVhbCB2b2lkIGluaXRpYWxpemVFR0xEaXNwbGF5
KCk7CisKKyAgICBFR0xEaXNwbGF5IG1fZWdsRGlzcGxheTsKKyNlbmRpZgogCiBwcml2YXRlOgog
ICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1EaXNwbGF5PiBjcmVhdGVQbGF0Zm9y
bURpc3BsYXkoKTsKKworI2lmIFVTRShFR0wpCisgICAgdm9pZCB0ZXJtaW5hdGVFR0xEaXNwbGF5
KCk7CisKKyAgICBib29sIG1fZWdsRGlzcGxheUluaXRpYWxpemVkIHsgZmFsc2UgfTsKKyNlbmRp
ZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmNwcAppbmRleCA4OWI5NjEyLi43
NzdjY2YwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wv
R0xDb250ZXh0RUdMLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9l
Z2wvR0xDb250ZXh0RUdMLmNwcApAQCAtMjIsNiArMjIsNyBAQAogI2lmIFVTRShFR0wpCiAKICNp
bmNsdWRlICJHcmFwaGljc0NvbnRleHQzRC5oIgorI2luY2x1ZGUgIlBsYXRmb3JtRGlzcGxheS5o
IgogCiAjaWYgVVNFKENBSVJPKQogI2luY2x1ZGUgPGNhaXJvLmg+CkBAIC0zOCwxMCArMzksNiBA
QAogI2luY2x1ZGUgIlBsYXRmb3JtRGlzcGxheVgxMS5oIgogI2VuZGlmCiAKLSNpZiBQTEFURk9S
TShXQVlMQU5EKQotI2luY2x1ZGUgIlBsYXRmb3JtRGlzcGxheVdheWxhbmQuaCIKLSNlbmRpZgot
CiAjaWYgRU5BQkxFKEFDQ0VMRVJBVEVEXzJEX0NBTlZBUykKIC8vIGNhaXJvLWdsLmggaW5jbHVk
ZXMgc29tZSBkZWZpbml0aW9ucyBmcm9tIEdMWCB0aGF0IGNvbmZsaWN0IHdpdGgKIC8vIHRoZSBv
bmVzIHByb3ZpZGVkIGJ5IHVzLiBTaW5jZSBHTENvbnRleHRFR0wgZG9lc24ndCB1c2UgYW55IEdM
WApAQCAtNTIsMzQgKzQ5LDkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdGF0aWMgRUdM
RGlzcGxheSBnU2hhcmVkRUdMRGlzcGxheSA9IEVHTF9OT19ESVNQTEFZOwotCi0jaWYgVVNFKE9Q
RU5HTF9FU18yKQotc3RhdGljIGNvbnN0IEVHTGVudW0gZ0dMQVBJID0gRUdMX09QRU5HTF9FU19B
UEk7Ci0jZWxzZQotc3RhdGljIGNvbnN0IEVHTGVudW0gZ0dMQVBJID0gRUdMX09QRU5HTF9BUEk7
Ci0jZW5kaWYKLQogc3RhdGljIEVHTERpc3BsYXkgc2hhcmVkRUdMRGlzcGxheSgpCiB7Ci0gICAg
c3RhdGljIGJvb2wgaW5pdGlhbGl6ZWQgPSBmYWxzZTsKLSAgICBpZiAoIWluaXRpYWxpemVkKSB7
Ci0gICAgICAgIGluaXRpYWxpemVkID0gdHJ1ZTsKLQotI2lmIFBMQVRGT1JNKFdBWUxBTkQpCi0g
ICAgICAgIGlmIChpczxQbGF0Zm9ybURpc3BsYXlXYXlsYW5kPihQbGF0Zm9ybURpc3BsYXk6OnNo
YXJlZERpc3BsYXkoKSkpCi0gICAgICAgICAgICBnU2hhcmVkRUdMRGlzcGxheSA9IGVnbEdldERp
c3BsYXkoZG93bmNhc3Q8UGxhdGZvcm1EaXNwbGF5V2F5bGFuZD4oUGxhdGZvcm1EaXNwbGF5Ojpz
aGFyZWREaXNwbGF5KCkpLm5hdGl2ZSgpKTsKLSAgICAgICAgZWxzZSAvLyBOb3RlIHRoYXQgdGhp
cyBicmFuY2ggY29udGludXRlcyBvdXRzaWRlIHRoaXMgI2lmLWd1YXJkZWQgc2VnbWVudC4KLSNl
bmRpZgotI2lmIFBMQVRGT1JNKFgxMSkKLSAgICAgICAgICAgIGdTaGFyZWRFR0xEaXNwbGF5ID0g
ZWdsR2V0RGlzcGxheShkb3duY2FzdDxQbGF0Zm9ybURpc3BsYXlYMTE+KFBsYXRmb3JtRGlzcGxh
eTo6c2hhcmVkRGlzcGxheSgpKS5uYXRpdmUoKSk7Ci0jZWxzZQotICAgICAgICAgICAgZ1NoYXJl
ZEVHTERpc3BsYXkgPSBlZ2xHZXREaXNwbGF5KEVHTF9ERUZBVUxUX0RJU1BMQVkpOwotI2VuZGlm
Ci0gICAgICAgIGlmIChnU2hhcmVkRUdMRGlzcGxheSAhPSBFR0xfTk9fRElTUExBWSAmJiAoIWVn
bEluaXRpYWxpemUoZ1NoYXJlZEVHTERpc3BsYXksIDAsIDApIHx8ICFlZ2xCaW5kQVBJKGdHTEFQ
SSkpKQotICAgICAgICAgICAgZ1NoYXJlZEVHTERpc3BsYXkgPSBFR0xfTk9fRElTUExBWTsKLSAg
ICB9Ci0gICAgcmV0dXJuIGdTaGFyZWRFR0xEaXNwbGF5OworICAgIHJldHVybiBQbGF0Zm9ybURp
c3BsYXk6OnNoYXJlZERpc3BsYXkoKS5lZ2xEaXNwbGF5KCk7CiB9CiAKIHN0YXRpYyBjb25zdCBF
R0xpbnQgZ0NvbnRleHRBdHRyaWJ1dGVzW10gPSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xEZWZzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xEZWZzLmgKaW5kZXggYTA5MWYxMy4uOWEyYzJmZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMRGVmcy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HTERlZnMuaApA
QCAtNTcsMjIgKzU3LDE0IEBAIHR5cGVkZWYgdWludDMyX3QgUGxhdGZvcm1CdWZmZXJIYW5kbGU7
CiAKICNpZiBVU0UoR0xYKQogdHlwZWRlZiBHTFhDb250ZXh0IFBsYXRmb3JtQ29udGV4dDsKLXR5
cGVkZWYgRGlzcGxheSogUGxhdGZvcm1EaXNwbGF5OwogdHlwZWRlZiBHTFhGQkNvbmZpZyBQbGF0
Zm9ybVN1cmZhY2VDb25maWc7CiB0eXBlZGVmIEdMWERyYXdhYmxlIFBsYXRmb3JtRHJhd2FibGU7
CiAjZWxpZiBVU0UoRUdMKQotI2lmIFVTRShPUEVOR0xfRVNfMikKLXN0YXRpYyBjb25zdCBFR0xl
bnVtIGVnbEFQSVZlcnNpb24gPSBFR0xfT1BFTkdMX0VTX0FQSTsKLSNlbHNlCi1zdGF0aWMgY29u
c3QgRUdMZW51bSBlZ2xBUElWZXJzaW9uID0gRUdMX09QRU5HTF9BUEk7Ci0jZW5kaWYKIHR5cGVk
ZWYgRUdMQ29udGV4dCBQbGF0Zm9ybUNvbnRleHQ7Ci10eXBlZGVmIEVHTERpc3BsYXkgUGxhdGZv
cm1EaXNwbGF5OwogdHlwZWRlZiBFR0xDb25maWcgUGxhdGZvcm1TdXJmYWNlQ29uZmlnOwogdHlw
ZWRlZiBFR0xTdXJmYWNlIFBsYXRmb3JtRHJhd2FibGU7CiAjZWxzZQogdHlwZWRlZiB2b2lkKiBQ
bGF0Zm9ybUNvbnRleHQ7Ci10eXBlZGVmIHZvaWQqIFBsYXRmb3JtRGlzcGxheTsKIHR5cGVkZWYg
dm9pZCogUGxhdGZvcm1TdXJmYWNlQ29uZmlnOwogdHlwZWRlZiB2b2lkKiBQbGF0Zm9ybURyYXdh
YmxlOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9vcGVuZ2wvR0xQbGF0Zm9ybVN1cmZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1TdXJmYWNlLmNwcAppbmRleCA0ZjAzZWY2Li5hNDlj
M2Q4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wv
R0xQbGF0Zm9ybVN1cmZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL29wZW5nbC9HTFBsYXRmb3JtU3VyZmFjZS5jcHAKQEAgLTYxLDggKzYxLDcgQEAgc3RkOjp1
bmlxdWVfcHRyPEdMUGxhdGZvcm1TdXJmYWNlPiBHTFBsYXRmb3JtU3VyZmFjZTo6Y3JlYXRlT2Zm
U2NyZWVuU3VyZmFjZShTdXIKIH0KIAogR0xQbGF0Zm9ybVN1cmZhY2U6OkdMUGxhdGZvcm1TdXJm
YWNlKFN1cmZhY2VBdHRyaWJ1dGVzKQotICAgIDogbV9zaGFyZWREaXNwbGF5KDApCi0gICAgLCBt
X2RyYXdhYmxlKDApCisgICAgOiBtX2RyYXdhYmxlKDApCiAgICAgLCBtX2J1ZmZlckhhbmRsZSgw
KQogewogfQpAQCAtODgsMTEgKzg3LDYgQEAgY29uc3QgSW50UmVjdCYgR0xQbGF0Zm9ybVN1cmZh
Y2U6Omdlb21ldHJ5KCkgY29uc3QKICAgICByZXR1cm4gbV9yZWN0OwogfQogCi1QbGF0Zm9ybURp
c3BsYXkgR0xQbGF0Zm9ybVN1cmZhY2U6OnNoYXJlZERpc3BsYXkoKSBjb25zdAotewotICAgIHJl
dHVybiBtX3NoYXJlZERpc3BsYXk7Ci19Ci0KIFBsYXRmb3JtU3VyZmFjZUNvbmZpZyBHTFBsYXRm
b3JtU3VyZmFjZTo6Y29uZmlndXJhdGlvbigpCiB7CiAgICAgcmV0dXJuIDA7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xQbGF0Zm9ybVN1cmZh
Y2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HTFBsYXRmb3Jt
U3VyZmFjZS5oCmluZGV4IGY1ZTRmNTMuLmYxNDFkMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HTFBsYXRmb3JtU3VyZmFjZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HTFBsYXRmb3JtU3VyZmFjZS5o
CkBAIC01OSw4ICs1OSw2IEBAIHB1YmxpYzoKIAogICAgIFBsYXRmb3JtRHJhd2FibGUgZHJhd2Fi
bGUoKSBjb25zdDsKIAotICAgIFBsYXRmb3JtRGlzcGxheSBzaGFyZWREaXNwbGF5KCkgY29uc3Q7
Ci0KICAgICB2aXJ0dWFsIFN1cmZhY2VBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMoKSBjb25zdDsKIAog
ICAgIHZpcnR1YWwgdm9pZCBzd2FwQnVmZmVycygpOwpAQCAtODQsNyArODIsNiBAQCBwdWJsaWM6
CiBwcm90ZWN0ZWQ6CiAgICAgR0xQbGF0Zm9ybVN1cmZhY2UoU3VyZmFjZUF0dHJpYnV0ZXMpOwog
Ci0gICAgUGxhdGZvcm1EaXNwbGF5IG1fc2hhcmVkRGlzcGxheTsKICAgICBQbGF0Zm9ybURyYXdh
YmxlIG1fZHJhd2FibGU7CiAgICAgUGxhdGZvcm1CdWZmZXJIYW5kbGUgbV9idWZmZXJIYW5kbGU7
CiAgICAgSW50UmVjdCBtX3JlY3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9zdXJmYWNlcy9lZ2wvRUdMQ29uZmlnU2VsZWN0b3IuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2VnbC9FR0xDb25maWdTZWxlY3Rvci5oCmlu
ZGV4IDI3MmNiZGIuLjEzOWMwYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3N1cmZhY2VzL2VnbC9FR0xDb25maWdTZWxlY3Rvci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2VnbC9FR0xDb25maWdTZWxlY3Rvci5o
CkBAIC02MSw3ICs2MSw3IEBAIHByb3RlY3RlZDoKICAgICBFR0xDb25maWcgbV9waXhtYXBGQkNv
bmZpZzsKICAgICBFR0xDb25maWcgbV9zdXJmYWNlQ29udGV4dEZCQ29uZmlnOwogICAgIHVuc2ln
bmVkIG1fYXR0cmlidXRlcyA6IDM7Ci0gICAgUGxhdGZvcm1EaXNwbGF5IG1fc2hhcmVkRGlzcGxh
eTsKKyAgICBFR0xEaXNwbGF5IG1fc2hhcmVkRGlzcGxheTsKIH07CiAKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2VnbC9FR0xDb250ZXh0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2VnbC9FR0xD
b250ZXh0LmNwcAppbmRleCA2MmFmNDQzLi4xZmU3YTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9lZ2wvRUdMQ29udGV4dC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWdsL0VHTENvbnRleHQu
Y3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBVU0UoRUdMKQogCisjaW5jbHVkZSAiUGxhdGZv
cm1EaXNwbGF5LmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKQEAgLTcyLDEyICs3Myw3IEBAIGJvb2wgRUdMT2ZmU2NyZWVuQ29udGV4dDo6
aW5pdGlhbGl6ZShHTFBsYXRmb3JtU3VyZmFjZSogc3VyZmFjZSwgUGxhdGZvcm1Db250ZXh0CiAg
ICAgaWYgKCFzdXJmYWNlKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAoIWVnbEJp
bmRBUEkoZWdsQVBJVmVyc2lvbikpIHsKLSAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQgdG8gc2V0
IEVHTCBBUEkoJWQpLiIsIGVnbEdldEVycm9yKCkpOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgfQotCi0gICAgbV9kaXNwbGF5ID0gc3VyZmFjZS0+c2hhcmVkRGlzcGxheSgpOworICAgIG1f
ZGlzcGxheSA9IFBsYXRmb3JtRGlzcGxheTo6c2hhcmVkRGlzcGxheSgpLmVnbERpc3BsYXkoKTsK
ICAgICBpZiAoIW1fZGlzcGxheSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9lZ2wvRUdMSGVscGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2VnbC9FR0xI
ZWxwZXIuY3BwCmluZGV4IDlhZWQ5YWYuLmEwMTVlODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2VnbC9FR0xIZWxwZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2VnbC9FR0xIZWxwZXIuY3Bw
CkBAIC0yOCw4OSArMjgsMjIgQEAKIAogI2lmIFVTRShFR0wpCiAKKyNpbmNsdWRlICJQbGF0Zm9y
bURpc3BsYXkuaCIKICNpbmNsdWRlIDxvcGVuZ2wvR0xQbGF0Zm9ybUNvbnRleHQuaD4KIAotI2lm
IFBMQVRGT1JNKFgxMSkKLSNpbmNsdWRlICJYMTFIZWxwZXIuaCIKLSNlbmRpZgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLSNpZiBQTEFURk9STShYMTEpCi10eXBlZGVmIFgxMUhlbHBlciBOYXRp
dmVXcmFwcGVyOwotdHlwZWRlZiBEaXNwbGF5IE5hdGl2ZVNoYXJlZERpc3BsYXk7Ci0jZWxzZQot
dHlwZWRlZiB2b2lkIE5hdGl2ZVNoYXJlZERpc3BsYXk7Ci0jZW5kaWYKLQogc3RhdGljIFBGTkVH
TENSRUFURUlNQUdFS0hSUFJPQyBlZ2xDcmVhdGVJbWFnZUtIUiA9IDA7CiBzdGF0aWMgUEZORUdM
REVTVFJPWUlNQUdFS0hSUFJPQyBlZ2xEZXN0cm95SW1hZ2VLSFIgPSAwOwogc3RhdGljIFBGTkdM
RUdMSU1BR0VUQVJHRVRURVhUVVJFMkRPRVNQUk9DIGVnbEltYWdlVGFyZ2V0VGV4dHVyZTJET0VT
ID0gMDsKIAotc3RydWN0IEVHTERpc3BsYXlDb25uZWN0aW9uIHsKLQotICAgIEVHTERpc3BsYXlD
b25uZWN0aW9uKE5hdGl2ZVNoYXJlZERpc3BsYXkqIGRpc3BsYXkgPSAwKQotICAgIHsKLSAgICAg
ICAgaWYgKGRpc3BsYXkpCi0gICAgICAgICAgICBtX2VnbERpc3BsYXkgPSBlZ2xHZXREaXNwbGF5
KHJlaW50ZXJwcmV0X2Nhc3Q8RUdMTmF0aXZlRGlzcGxheVR5cGU+KGRpc3BsYXkpKTsKLSAgICAg
ICAgZWxzZQotICAgICAgICAgICAgbV9lZ2xEaXNwbGF5ID0gZWdsR2V0RGlzcGxheShFR0xfREVG
QVVMVF9ESVNQTEFZKTsKLQotICAgICAgICBpZiAobV9lZ2xEaXNwbGF5ID09IEVHTF9OT19ESVNQ
TEFZKSB7Ci0gICAgICAgICAgICBMT0dfRVJST1IoIkVHTERpc3BsYXkgSW5pdGlhbGl6YXRpb24g
ZmFpbGVkLiIpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgRUdM
Qm9vbGVhbiBzdWNjZXNzOwotICAgICAgICBzdWNjZXNzID0gZWdsSW5pdGlhbGl6ZShtX2VnbERp
c3BsYXksIDAsIDApOwotCi0gICAgICAgIGlmIChzdWNjZXNzICE9IEVHTF9UUlVFKSB7Ci0gICAg
ICAgICAgICBMT0dfRVJST1IoIkVHTEluaXRpYWxpemF0aW9uIGZhaWxlZC4iKTsKLSAgICAgICAg
ICAgIHRlcm1pbmF0ZSgpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAg
ICAgc3VjY2VzcyA9IGVnbEJpbmRBUEkoZWdsQVBJVmVyc2lvbik7Ci0KLSAgICAgICAgaWYgKHN1
Y2Nlc3MgIT0gRUdMX1RSVUUpIHsKLSAgICAgICAgICAgIExPR19FUlJPUigiRmFpbGVkIHRvIHNl
dCBFR0wgQVBJKCVkKS4iLCBlZ2xHZXRFcnJvcigpKTsKLSAgICAgICAgICAgIHRlcm1pbmF0ZSgp
OwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgfkVHTERpc3Bs
YXlDb25uZWN0aW9uKCkKLSAgICB7Ci0gICAgICAgIHRlcm1pbmF0ZSgpOwotICAgIH0KLQotICAg
IEVHTERpc3BsYXkgZGlzcGxheSgpIHsgcmV0dXJuIG1fZWdsRGlzcGxheTsgfQotCi1wcml2YXRl
OgotICAgIHZvaWQgdGVybWluYXRlKCkKLSAgICB7Ci0gICAgICAgIGlmIChtX2VnbERpc3BsYXkg
PT0gRUdMX05PX0RJU1BMQVkpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgZWdsVGVy
bWluYXRlKG1fZWdsRGlzcGxheSk7Ci0gICAgICAgIG1fZWdsRGlzcGxheSA9IEVHTF9OT19ESVNQ
TEFZOwotICAgIH0KLQotICAgIEVHTERpc3BsYXkgbV9lZ2xEaXNwbGF5OwotfTsKLQotUGxhdGZv
cm1EaXNwbGF5IEVHTEhlbHBlcjo6ZWdsRGlzcGxheSgpCitFR0xEaXNwbGF5IEVHTEhlbHBlcjo6
ZWdsRGlzcGxheSgpCiB7Ci0gICAgLy8gRGlzcGxheSBjb25uZWN0aW9uIHdpbGwgb25seSBiZSBi
cm9rZW4gYXQgcHJvZ3JhbSBzaHV0ZG93bi4KLSNpZiBQTEFURk9STShYMTEpCi0gICAgc3RhdGlj
IEVHTERpc3BsYXlDb25uZWN0aW9uIGRpc3BsYXlDb25uZWN0aW9uKE5hdGl2ZVdyYXBwZXI6Om5h
dGl2ZURpc3BsYXkoKSk7Ci0jZWxzZQotICAgIHN0YXRpYyBFR0xEaXNwbGF5Q29ubmVjdGlvbiBk
aXNwbGF5Q29ubmVjdGlvbjsKLSNlbmRpZgotICAgIHJldHVybiBkaXNwbGF5Q29ubmVjdGlvbi5k
aXNwbGF5KCk7CisgICAgUGxhdGZvcm1EaXNwbGF5OjpzaGFyZWREaXNwbGF5KCkuZWdsRGlzcGxh
eSgpOwogfQogCi1QbGF0Zm9ybURpc3BsYXkgRUdMSGVscGVyOjpjdXJyZW50RGlzcGxheSgpCitF
R0xEaXNwbGF5IEVHTEhlbHBlcjo6Y3VycmVudERpc3BsYXkoKQogewogICAgIEVHTERpc3BsYXkg
ZGlzcGxheSA9IGVnbEdldEN1cnJlbnREaXNwbGF5KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2VnbC9FR0xIZWxwZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2VnbC9FR0xIZWxwZXIuaAppbmRl
eCBmMjQ1OGZiLi44ODIyMmE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9zdXJmYWNlcy9lZ2wvRUdMSGVscGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWdsL0VHTEhlbHBlci5oCkBAIC0zNCw4ICszNCw4IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRUdMSGVscGVyIHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUGxhdGZvcm1EaXNwbGF5IGVnbERpc3BsYXkoKTsKLSAgICBzdGF0aWMgUGxhdGZvcm1E
aXNwbGF5IGN1cnJlbnREaXNwbGF5KCk7CisgICAgc3RhdGljIEVHTERpc3BsYXkgZWdsRGlzcGxh
eSgpOworICAgIHN0YXRpYyBFR0xEaXNwbGF5IGN1cnJlbnREaXNwbGF5KCk7CiAgICAgc3RhdGlj
IHZvaWQgcmVzb2x2ZUVHTEJpbmRpbmdzKCk7CiAgICAgc3RhdGljIHZvaWQgY3JlYXRlRUdMSW1h
Z2UoRUdMSW1hZ2VLSFIqLCBHTGVudW0sIGNvbnN0IEVHTENsaWVudEJ1ZmZlciwgY29uc3QgRUdM
aW50KiA9IDApOwogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3lFR0xJbWFnZShjb25zdCBFR0xJbWFn
ZUtIUik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93YXls
YW5kL1BsYXRmb3JtRGlzcGxheVdheWxhbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd2F5bGFuZC9QbGF0Zm9ybURpc3BsYXlXYXlsYW5kLmNwcAppbmRleCAyN2Y2MWVi
Li5jY2JjMzVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93
YXlsYW5kL1BsYXRmb3JtRGlzcGxheVdheWxhbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3dheWxhbmQvUGxhdGZvcm1EaXNwbGF5V2F5bGFuZC5jcHAKQEAgLTg3
LDIwICs4Nyw5IEBAIFBsYXRmb3JtRGlzcGxheVdheWxhbmQ6OlBsYXRmb3JtRGlzcGxheVdheWxh
bmQoc3RydWN0IHdsX2Rpc3BsYXkqIHdsRGlzcGxheSkKICAgICB9OwogCiAgICAgbV9lZ2xEaXNw
bGF5ID0gZWdsR2V0RGlzcGxheShtX2Rpc3BsYXkpOwotICAgIGlmIChtX2VnbERpc3BsYXkgPT0g
RUdMX05PX0RJU1BMQVkpIHsKLSAgICAgICAgZ193YXJuaW5nKCJQbGF0Zm9ybURpc3BsYXlXYXls
YW5kIGluaXRpYWxpemF0aW9uOiBmYWlsZWQgdG8gYWNxdWlyZSBFR0wgZGlzcGxheS4iKTsKKyAg
ICBQbGF0Zm9ybURpc3BsYXk6OmluaXRpYWxpemVFR0xEaXNwbGF5KCk7CisgICAgaWYgKG1fZWds
RGlzcGxheSA9PSBFR0xfTk9fRElTUExBWSkKICAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAg
IGlmIChlZ2xJbml0aWFsaXplKG1fZWdsRGlzcGxheSwgMCwgMCkgPT0gRUdMX0ZBTFNFKSB7Ci0g
ICAgICAgIGdfd2FybmluZygiUGxhdGZvcm1EaXNwbGF5V2F5bGFuZCBpbml0aWFsaXphdGlvbjog
ZmFpbGVkIHRvIGluaXRpYWxpemUgdGhlIEVHTCBkaXNwbGF5LiIpOwotICAgICAgICByZXR1cm47
Ci0gICAgfQotCi0gICAgaWYgKGVnbEJpbmRBUEkoRUdMX09QRU5HTF9FU19BUEkpID09IEVHTF9G
QUxTRSkgewotICAgICAgICBnX3dhcm5pbmcoIlBsYXRmb3JtRGlzcGxheVdheWxhbmQgaW5pdGlh
bGl6YXRpb246IGZhaWxlZCB0byBzZXQgRUdMX09QRU5HTF9FU19BUEkgYXMgdGhlIHJlbmRlcmlu
ZyBBUEkuIik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9CiAKICAgICBFR0xpbnQgbnVtYmVyT2ZD
b25maWdzOwogICAgIGlmICghZWdsQ2hvb3NlQ29uZmlnKG1fZWdsRGlzcGxheSwgY29uZmlnQXR0
cmlidXRlcywgJm1fZWdsQ29uZmlnLCAxLCAmbnVtYmVyT2ZDb25maWdzKSB8fCBudW1iZXJPZkNv
bmZpZ3MgIT0gMSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2F5bGFuZC9QbGF0Zm9ybURpc3BsYXlXYXlsYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy93YXlsYW5kL1BsYXRmb3JtRGlzcGxheVdheWxhbmQuaAppbmRleCAxOTU4
OWJlLi4xNTRmYmJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy93YXlsYW5kL1BsYXRmb3JtRGlzcGxheVdheWxhbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93YXlsYW5kL1BsYXRmb3JtRGlzcGxheVdheWxhbmQuaApAQCAtNDcs
NyArNDcsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+UGxhdGZvcm1EaXNwbGF5V2F5bGFuZCgp
OwogCiAgICAgc3RydWN0IHdsX2Rpc3BsYXkqIG5hdGl2ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGlz
cGxheTsgfQotICAgIEVHTERpc3BsYXkgZWdsRGlzcGxheSgpIGNvbnN0IHsgcmV0dXJuIG1fZWds
RGlzcGxheTsgfQogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdheWxhbmRTdXJmYWNlPiBjcmVhdGVT
dXJmYWNlKGNvbnN0IEludFNpemUmLCBpbnQgd2lkZ2V0SUQpOwogCkBAIC02OCw3ICs2Nyw2IEBA
IHByaXZhdGU6CiAgICAgc3RydWN0IHdsX2NvbXBvc2l0b3IqIG1fY29tcG9zaXRvcjsKICAgICBz
dHJ1Y3Qgd2xfd2Via2l0Z3RrKiBtX3dlYmtpdGd0azsKIAotICAgIEVHTERpc3BsYXkgbV9lZ2xE
aXNwbGF5OwogICAgIEVHTENvbmZpZyBtX2VnbENvbmZpZzsKICAgICBib29sIG1fZWdsQ29uZmln
Q2hvc2VuOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3gxMS9QbGF0Zm9ybURpc3BsYXlYMTEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MveDExL1BsYXRmb3JtRGlzcGxheVgxMS5jcHAKaW5kZXggOGFiMDIxYi4uOTdjODcyZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MveDExL1BsYXRmb3Jt
RGlzcGxheVgxMS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MveDEx
L1BsYXRmb3JtRGlzcGxheVgxMS5jcHAKQEAgLTI5LDYgKzI5LDEwIEBACiAjaWYgUExBVEZPUk0o
WDExKQogI2luY2x1ZGUgPFgxMS9YbGliLmg+CiAKKyNpZiBVU0UoRUdMKQorI2luY2x1ZGUgPEVH
TC9lZ2wuaD4KKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFBsYXRmb3JtRGlzcGxh
eVgxMTo6UGxhdGZvcm1EaXNwbGF5WDExKCkKQEAgLTQ5LDYgKzUzLDE0IEBAIFBsYXRmb3JtRGlz
cGxheVgxMTo6flBsYXRmb3JtRGlzcGxheVgxMSgpCiAgICAgICAgIFhDbG9zZURpc3BsYXkobV9k
aXNwbGF5KTsKIH0KIAorI2lmIFVTRShFR0wpCit2b2lkIFBsYXRmb3JtRGlzcGxheVgxMTo6aW5p
dGlhbGl6ZUVHTERpc3BsYXkoKQoreworICAgIG1fZWdsRGlzcGxheSA9IGVnbEdldERpc3BsYXko
bV9kaXNwbGF5KTsKKyAgICBQbGF0Zm9ybURpc3BsYXk6OmluaXRpYWxpemVFR0xEaXNwbGF5KCk7
Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gUExBVEZP
Uk0oWDExKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MveDEx
L1BsYXRmb3JtRGlzcGxheVgxMS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
eDExL1BsYXRmb3JtRGlzcGxheVgxMS5oCmluZGV4IDM0N2Q4YWUuLjA3YzhiNDkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3gxMS9QbGF0Zm9ybURpc3BsYXlY
MTEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy94MTEvUGxhdGZvcm1E
aXNwbGF5WDExLmgKQEAgLTQ1LDYgKzQ1LDEwIEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdmly
dHVhbCBUeXBlIHR5cGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBQbGF0Zm9ybURpc3BsYXk6
OlR5cGU6OlgxMTsgfQogCisjaWYgVVNFKEVHTCkKKyAgICB2b2lkIGluaXRpYWxpemVFR0xEaXNw
bGF5KCkgb3ZlcnJpZGU7CisjZW5kaWYKKwogICAgIERpc3BsYXkqIG1fZGlzcGxheTsKICAgICBi
b29sIG1fb3duZWREaXNwbGF5OwogfTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>252470</attachid>
            <date>2015-05-06 07:00:33 -0700</date>
            <delta_ts>2015-05-06 08:32:02 -0700</delta_ts>
            <desc>Try to fix EFL build</desc>
            <filename>wk-egl-display.diff</filename>
            <type>text/plain</type>
            <size>25353</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBjNmNjYjRlLi44ZWRjY2ZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjYg
QEAKKzIwMTUtMDUtMDYgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtFR0xdIE1vdmUgRUdMRGlzcGxheSBoYW5kbGluZyB0byBQbGF0Zm9ybURp
c3BsYXkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0
NDY4NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRo
ZSBFR0wgZGlzcGxheSBpcyBhbHNvIGluaXRpYWxpemVkIGluIG11bHRpcGxlIHBsYWNlcywgYW5k
IGNvdWxkCisgICAgICAgIGJlIHVuaWZpZWQgaW4gUGxhdGZvcm1EaXNwbGF5LiBSZW1vdmUgdGhl
IFBsYXRmb3JtRGlzcGxheQorICAgICAgICBkZWZpbml0aW9uIGZyb20gcGxhdGZvcm0vZ3JhcGhp
Y3Mvb3BlbmdsL0dMRGVmcy5oIHRvIGF2b2lkIGNvbmZsaWN0cy4KKworICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbGF0
Zm9ybURpc3BsYXk6OlBsYXRmb3JtRGlzcGxheSk6IEluaXRpYWxpemUgbV9lZ2xEaXNwbGF5Lgor
ICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1EaXNwbGF5Ojp+UGxhdGZvcm1EaXNwbGF5KTogQ2Fs
bCB0ZXJtaW5hdGVFR0xEaXNwbGF5KCkuCisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybURpc3Bs
YXk6OmVnbERpc3BsYXkpOiBMYXp5IGludGlhbGl6ZSB0aGUgRUdMCisgICAgICAgIGRpc3BsYXkg
YW5kIHJldHVybiBpdC4KKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxheTo6aW5pdGlh
bGl6ZUVHTERpc3BsYXkpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1EaXNwbGF5Ojp0ZXJt
aW5hdGVFR0xEaXNwbGF5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURp
c3BsYXkuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OnNoYXJlZEVHTERpc3BsYXkpOiBVc2UgUGxhdGZvcm1EaXNw
bGF5OjplZ2xEaXNwbGF5KCkuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dM
RGVmcy5oOiBSZW1vdmUgdW5uZWVkZWQgZGVmaW5pdGlvbnMuCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1TdXJmYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkdMUGxhdGZvcm1TdXJmYWNlOjpHTFBsYXRmb3JtU3VyZmFjZSk6IFJlbW92ZQorICAgICAgICBt
X3NoYXJlZERpc3BsYXkgbWVtYmVyLCBQbGF0Zm9ybURpc3BsYXk6OnNoYXJlZERpc3BsYXkoKSBj
YW4gYmUgdXNlZCBpbnN0ZWFkLgorICAgICAgICAoV2ViQ29yZTo6R0xQbGF0Zm9ybVN1cmZhY2U6
OnNoYXJlZERpc3BsYXkpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL29w
ZW5nbC9HTFBsYXRmb3JtU3VyZmFjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3N1
cmZhY2VzL2VnbC9FR0xDb25maWdTZWxlY3Rvci5oOiBVc2UKKyAgICAgICAgRUdMRGlzcGxheSBp
bnN0ZWFkIG9mIFBsYXRmb3JtRGlzcGxheS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9z
dXJmYWNlcy9lZ2wvRUdMQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFR0xPZmZTY3Jl
ZW5Db250ZXh0Ojppbml0aWFsaXplKTogVXNlIFBsYXRmb3JtRGlzcGxheTo6ZWdsRGlzcGxheSgp
LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2VnbC9FR0xIZWxwZXIuY3Bw
OiBSZW1vdmUgdGhlCisgICAgICAgIEVHTERpc3BsYXlDb25uZWN0aW9uIGNsYXMgYW5kIHVzZSBQ
bGF0Zm9ybURpc3BsYXkgaW5zdGVhZC4KKyAgICAgICAgKFdlYkNvcmU6OkVHTEhlbHBlcjo6ZWds
RGlzcGxheSk6CisgICAgICAgIChXZWJDb3JlOjpFR0xIZWxwZXI6OmN1cnJlbnREaXNwbGF5KToK
KyAgICAgICAgKFdlYkNvcmU6OkVHTERpc3BsYXlDb25uZWN0aW9uOjpFR0xEaXNwbGF5Q29ubmVj
dGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpFR0xEaXNwbGF5Q29ubmVjdGlvbjo6
fkVHTERpc3BsYXlDb25uZWN0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkVHTERp
c3BsYXlDb25uZWN0aW9uOjpkaXNwbGF5KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkVH
TERpc3BsYXlDb25uZWN0aW9uOjp0ZXJtaW5hdGUpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL3N1cmZhY2VzL2VnbC9FR0xIZWxwZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9zdXJmYWNlcy9lZ2wvRUdMU3VyZmFjZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpFR0xUcmFuc3BvcnRTdXJmYWNlOjpFR0xUcmFuc3BvcnRTdXJmYWNlKTogVXNlIEVHTEhlbHBl
cjo6ZWdsRGlzcGxheSgpLgorICAgICAgICAoV2ViQ29yZTo6RUdMVHJhbnNwb3J0U3VyZmFjZTo6
ZGVzdHJveSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RUdMT2ZmU2NyZWVuU3VyZmFjZTo6
RUdMT2ZmU2NyZWVuU3VyZmFjZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RUdMT2ZmU2Ny
ZWVuU3VyZmFjZTo6ZGVzdHJveSk6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L3N1cmZhY2VzL2VnbC9FR0xYU3VyZmFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFR0xXaW5k
b3dUcmFuc3BvcnRTdXJmYWNlOjpFR0xXaW5kb3dUcmFuc3BvcnRTdXJmYWNlKToKKyAgICAgICAg
VXNlIFBsYXRmb3JtRGlzcGxheTo6ZWdsRGlzcGxheSgpLgorICAgICAgICAoV2ViQ29yZTo6RUdM
V2luZG93VHJhbnNwb3J0U3VyZmFjZTo6c3dhcEJ1ZmZlcnMpOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OkVHTFBpeG1hcFN1cmZhY2U6OkVHTFBpeG1hcFN1cmZhY2UpOiBEaXR0by4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYU3VyZmFjZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpHTFhUcmFuc3BvcnRTdXJmYWNlOjpHTFhUcmFuc3BvcnRTdXJmYWNlKTog
RG8gbm90IHVzZSBtX3NoYXJlZERpc3BsYXkuCisgICAgICAgIChXZWJDb3JlOjpHTFhPZmZTY3Jl
ZW5TdXJmYWNlOjppbml0aWFsaXplKTogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2F5bGFuZC9QbGF0Zm9ybURpc3BsYXlXYXlsYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlBsYXRmb3JtRGlzcGxheVdheWxhbmQ6OlBsYXRmb3JtRGlzcGxheVdheWxhbmQpOiBDYWxsCisg
ICAgICAgIFBsYXRmb3JtRGlzcGxheTo6aW5pdGlhbGl6ZUVHTERpc3BsYXkoKSB0byBpbnNpYWxp
emUgdGhlIEVHTCBkaXNwbGF5LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dheWxhbmQv
UGxhdGZvcm1EaXNwbGF5V2F5bGFuZC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3gx
MS9QbGF0Zm9ybURpc3BsYXlYMTEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1EaXNw
bGF5WDExOjppbml0aWFsaXplRUdMRGlzcGxheSk6IE92ZXJyaWRlCisgICAgICAgIFBsYXRmb3Jt
RGlzcGxheTo6aW5pdGlhbGl6ZUVHTERpc3BsYXkoKSB0byBpbml0aWFsaXplIHRoZQorICAgICAg
ICBtX2VnbERpc3BsYXkgbWVtYmVyLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3gxMS9Q
bGF0Zm9ybURpc3BsYXlYMTEuaDoKKwogMjAxNS0wNS0wNSAgQ2FybG9zIEdhcmNpYSBDYW1wb3Mg
IDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW1NPVVBdIE5ldHdvcmsgQ2FjaGU6IElt
cGxlbWVudCBTaGFyZWFibGVSZXNvdXJjZSBmb3IgU291cCBhbmQgZW5hYmxlIGl0IGZvciBHVEsg
cGxhdGZvcm0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1Bs
YXRmb3JtRGlzcGxheS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0
Zm9ybURpc3BsYXkuY3BwCmluZGV4IDU4YmRkNjkuLmQ2MjEwYTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmNwcApAQCAtNDUs
NiArNDUsMTAgQEAKICNpbmNsdWRlIDxFY29yZV9YLmg+CiAjZW5kaWYKIAorI2lmIFVTRShFR0wp
CisjaW5jbHVkZSA8RUdML2VnbC5oPgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
c3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtRGlzcGxheT4gUGxhdGZvcm1EaXNwbGF5OjpjcmVhdGVQ
bGF0Zm9ybURpc3BsYXkoKQpAQCAtODUsNCArODksNjMgQEAgUGxhdGZvcm1EaXNwbGF5JiBQbGF0
Zm9ybURpc3BsYXk6OnNoYXJlZERpc3BsYXkoKQogICAgIHJldHVybiAqZGlzcGxheTsKIH0KIAor
UGxhdGZvcm1EaXNwbGF5OjpQbGF0Zm9ybURpc3BsYXkoKQorI2lmIFVTRShFR0wpCisgICAgOiBt
X2VnbERpc3BsYXkoRUdMX05PX0RJU1BMQVkpCisjZW5kaWYKK3sKK30KKworUGxhdGZvcm1EaXNw
bGF5Ojp+UGxhdGZvcm1EaXNwbGF5KCkKK3sKKyNpZiBVU0UoRUdMKQorICAgIHRlcm1pbmF0ZUVH
TERpc3BsYXkoKTsKKyNlbmRpZgorfQorCisjaWYgVVNFKEVHTCkKK0VHTERpc3BsYXkgUGxhdGZv
cm1EaXNwbGF5OjplZ2xEaXNwbGF5KCkgY29uc3QKK3sKKyAgICBpZiAoIW1fZWdsRGlzcGxheUlu
aXRpYWxpemVkKQorICAgICAgICBjb25zdF9jYXN0PFBsYXRmb3JtRGlzcGxheSo+KHRoaXMpLT5p
bml0aWFsaXplRUdMRGlzcGxheSgpOworICAgIHJldHVybiBtX2VnbERpc3BsYXk7Cit9CisKK3Zv
aWQgUGxhdGZvcm1EaXNwbGF5Ojppbml0aWFsaXplRUdMRGlzcGxheSgpCit7CisgICAgbV9lZ2xE
aXNwbGF5SW5pdGlhbGl6ZWQgPSB0cnVlOworCisgICAgaWYgKG1fZWdsRGlzcGxheSA9PSBFR0xf
Tk9fRElTUExBWSkgeworICAgICAgICBtX2VnbERpc3BsYXkgPSBlZ2xHZXREaXNwbGF5KEVHTF9E
RUZBVUxUX0RJU1BMQVkpOworICAgICAgICBpZiAobV9lZ2xEaXNwbGF5ID09IEVHTF9OT19ESVNQ
TEFZKQorICAgICAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChlZ2xJbml0aWFsaXpl
KG1fZWdsRGlzcGxheSwgMCwgMCkgPT0gRUdMX0ZBTFNFKSB7CisgICAgICAgIExPR19FUlJPUigi
RUdMRGlzcGxheSBJbml0aWFsaXphdGlvbiBmYWlsZWQuIik7CisgICAgICAgIHRlcm1pbmF0ZUVH
TERpc3BsYXkoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworI2lmIFVTRShPUEVOR0xfRVNf
MikKKyAgICBzdGF0aWMgY29uc3QgRUdMZW51bSBlZ2xBUElWZXJzaW9uID0gRUdMX09QRU5HTF9F
U19BUEk7CisjZWxzZQorICAgIHN0YXRpYyBjb25zdCBFR0xlbnVtIGVnbEFQSVZlcnNpb24gPSBF
R0xfT1BFTkdMX0FQSTsKKyNlbmRpZgorICAgIGlmIChlZ2xCaW5kQVBJKGVnbEFQSVZlcnNpb24p
ID09IEVHTF9GQUxTRSkgeworICAgICAgICBMT0dfRVJST1IoIkZhaWxlZCB0byBzZXQgRUdMIEFQ
SSglZCkuIiwgZWdsR2V0RXJyb3IoKSk7CisgICAgICAgIHRlcm1pbmF0ZUVHTERpc3BsYXkoKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KK30KKwordm9pZCBQbGF0Zm9ybURpc3BsYXk6OnRlcm1p
bmF0ZUVHTERpc3BsYXkoKQoreworICAgIGlmIChtX2VnbERpc3BsYXkgPT0gRUdMX05PX0RJU1BM
QVkpCisgICAgICAgIHJldHVybjsKKyAgICBlZ2xUZXJtaW5hdGUobV9lZ2xEaXNwbGF5KTsKKyAg
ICBtX2VnbERpc3BsYXkgPSBFR0xfTk9fRElTUExBWTsKK30KKyNlbmRpZiAvLyBVU0UoRUdMKQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5oCmluZGV4IDIzMTI3MGYuLjE4YTY3OWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5o
CkBAIC0yOSwxMyArMjksMTcgQEAKICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNs
dWRlIDx3dGYvVHlwZUNhc3RzLmg+CiAKKyNpZiBVU0UoRUdMKQordHlwZWRlZiB2b2lkICpFR0xE
aXNwbGF5OworI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUGxhdGZvcm1E
aXNwbGF5IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShQbGF0Zm9ybURpc3BsYXkpOyBXVEZf
TUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGxhdGZvcm1EaXNwbGF5
JiBzaGFyZWREaXNwbGF5KCk7Ci0gICAgdmlydHVhbCB+UGxhdGZvcm1EaXNwbGF5KCkgPSBkZWZh
dWx0OworICAgIHZpcnR1YWwgflBsYXRmb3JtRGlzcGxheSgpOwogCiAgICAgZW51bSBjbGFzcyBU
eXBlIHsKICNpZiBQTEFURk9STShYMTEpCkBAIC00OCwxMSArNTIsMjcgQEAgcHVibGljOgogCiAg
ICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCA9IDA7CiAKKyNpZiBVU0UoRUdMKQorICAgIEVH
TERpc3BsYXkgZWdsRGlzcGxheSgpIGNvbnN0OworI2VuZGlmCisKIHByb3RlY3RlZDoKLSAgICBQ
bGF0Zm9ybURpc3BsYXkoKSA9IGRlZmF1bHQ7CisgICAgUGxhdGZvcm1EaXNwbGF5KCk7CisKKyNp
ZiBVU0UoRUdMKQorICAgIHZpcnR1YWwgdm9pZCBpbml0aWFsaXplRUdMRGlzcGxheSgpOworCisg
ICAgRUdMRGlzcGxheSBtX2VnbERpc3BsYXk7CisjZW5kaWYKIAogcHJpdmF0ZToKICAgICBzdGF0
aWMgc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtRGlzcGxheT4gY3JlYXRlUGxhdGZvcm1EaXNwbGF5
KCk7CisKKyNpZiBVU0UoRUdMKQorICAgIHZvaWQgdGVybWluYXRlRUdMRGlzcGxheSgpOworCisg
ICAgYm9vbCBtX2VnbERpc3BsYXlJbml0aWFsaXplZCB7IGZhbHNlIH07CisjZW5kaWYKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTC5jcHAKaW5kZXggODliOTYxMi4uNzc3Y2NmMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4
dEVHTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29u
dGV4dEVHTC5jcHAKQEAgLTIyLDYgKzIyLDcgQEAKICNpZiBVU0UoRUdMKQogCiAjaW5jbHVkZSAi
R3JhcGhpY3NDb250ZXh0M0QuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybURpc3BsYXkuaCIKIAogI2lm
IFVTRShDQUlSTykKICNpbmNsdWRlIDxjYWlyby5oPgpAQCAtMzgsMTAgKzM5LDYgQEAKICNpbmNs
dWRlICJQbGF0Zm9ybURpc3BsYXlYMTEuaCIKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oV0FZTEFO
RCkKLSNpbmNsdWRlICJQbGF0Zm9ybURpc3BsYXlXYXlsYW5kLmgiCi0jZW5kaWYKLQogI2lmIEVO
QUJMRShBQ0NFTEVSQVRFRF8yRF9DQU5WQVMpCiAvLyBjYWlyby1nbC5oIGluY2x1ZGVzIHNvbWUg
ZGVmaW5pdGlvbnMgZnJvbSBHTFggdGhhdCBjb25mbGljdCB3aXRoCiAvLyB0aGUgb25lcyBwcm92
aWRlZCBieSB1cy4gU2luY2UgR0xDb250ZXh0RUdMIGRvZXNuJ3QgdXNlIGFueSBHTFgKQEAgLTUy
LDM0ICs0OSw5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RhdGljIEVHTERpc3BsYXkg
Z1NoYXJlZEVHTERpc3BsYXkgPSBFR0xfTk9fRElTUExBWTsKLQotI2lmIFVTRShPUEVOR0xfRVNf
MikKLXN0YXRpYyBjb25zdCBFR0xlbnVtIGdHTEFQSSA9IEVHTF9PUEVOR0xfRVNfQVBJOwotI2Vs
c2UKLXN0YXRpYyBjb25zdCBFR0xlbnVtIGdHTEFQSSA9IEVHTF9PUEVOR0xfQVBJOwotI2VuZGlm
Ci0KIHN0YXRpYyBFR0xEaXNwbGF5IHNoYXJlZEVHTERpc3BsYXkoKQogewotICAgIHN0YXRpYyBi
b29sIGluaXRpYWxpemVkID0gZmFsc2U7Ci0gICAgaWYgKCFpbml0aWFsaXplZCkgewotICAgICAg
ICBpbml0aWFsaXplZCA9IHRydWU7Ci0KLSNpZiBQTEFURk9STShXQVlMQU5EKQotICAgICAgICBp
ZiAoaXM8UGxhdGZvcm1EaXNwbGF5V2F5bGFuZD4oUGxhdGZvcm1EaXNwbGF5OjpzaGFyZWREaXNw
bGF5KCkpKQotICAgICAgICAgICAgZ1NoYXJlZEVHTERpc3BsYXkgPSBlZ2xHZXREaXNwbGF5KGRv
d25jYXN0PFBsYXRmb3JtRGlzcGxheVdheWxhbmQ+KFBsYXRmb3JtRGlzcGxheTo6c2hhcmVkRGlz
cGxheSgpKS5uYXRpdmUoKSk7Ci0gICAgICAgIGVsc2UgLy8gTm90ZSB0aGF0IHRoaXMgYnJhbmNo
IGNvbnRpbnV0ZXMgb3V0c2lkZSB0aGlzICNpZi1ndWFyZGVkIHNlZ21lbnQuCi0jZW5kaWYKLSNp
ZiBQTEFURk9STShYMTEpCi0gICAgICAgICAgICBnU2hhcmVkRUdMRGlzcGxheSA9IGVnbEdldERp
c3BsYXkoZG93bmNhc3Q8UGxhdGZvcm1EaXNwbGF5WDExPihQbGF0Zm9ybURpc3BsYXk6OnNoYXJl
ZERpc3BsYXkoKSkubmF0aXZlKCkpOwotI2Vsc2UKLSAgICAgICAgICAgIGdTaGFyZWRFR0xEaXNw
bGF5ID0gZWdsR2V0RGlzcGxheShFR0xfREVGQVVMVF9ESVNQTEFZKTsKLSNlbmRpZgotICAgICAg
ICBpZiAoZ1NoYXJlZEVHTERpc3BsYXkgIT0gRUdMX05PX0RJU1BMQVkgJiYgKCFlZ2xJbml0aWFs
aXplKGdTaGFyZWRFR0xEaXNwbGF5LCAwLCAwKSB8fCAhZWdsQmluZEFQSShnR0xBUEkpKSkKLSAg
ICAgICAgICAgIGdTaGFyZWRFR0xEaXNwbGF5ID0gRUdMX05PX0RJU1BMQVk7Ci0gICAgfQotICAg
IHJldHVybiBnU2hhcmVkRUdMRGlzcGxheTsKKyAgICByZXR1cm4gUGxhdGZvcm1EaXNwbGF5Ojpz
aGFyZWREaXNwbGF5KCkuZWdsRGlzcGxheSgpOwogfQogCiBzdGF0aWMgY29uc3QgRUdMaW50IGdD
b250ZXh0QXR0cmlidXRlc1tdID0gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvb3BlbmdsL0dMRGVmcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbmdsL0dMRGVmcy5oCmluZGV4IGEwOTFmMTMuLjlhMmMyZmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HTERlZnMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xEZWZzLmgKQEAgLTU3LDIy
ICs1NywxNCBAQCB0eXBlZGVmIHVpbnQzMl90IFBsYXRmb3JtQnVmZmVySGFuZGxlOwogCiAjaWYg
VVNFKEdMWCkKIHR5cGVkZWYgR0xYQ29udGV4dCBQbGF0Zm9ybUNvbnRleHQ7Ci10eXBlZGVmIERp
c3BsYXkqIFBsYXRmb3JtRGlzcGxheTsKIHR5cGVkZWYgR0xYRkJDb25maWcgUGxhdGZvcm1TdXJm
YWNlQ29uZmlnOwogdHlwZWRlZiBHTFhEcmF3YWJsZSBQbGF0Zm9ybURyYXdhYmxlOwogI2VsaWYg
VVNFKEVHTCkKLSNpZiBVU0UoT1BFTkdMX0VTXzIpCi1zdGF0aWMgY29uc3QgRUdMZW51bSBlZ2xB
UElWZXJzaW9uID0gRUdMX09QRU5HTF9FU19BUEk7Ci0jZWxzZQotc3RhdGljIGNvbnN0IEVHTGVu
dW0gZWdsQVBJVmVyc2lvbiA9IEVHTF9PUEVOR0xfQVBJOwotI2VuZGlmCiB0eXBlZGVmIEVHTENv
bnRleHQgUGxhdGZvcm1Db250ZXh0OwotdHlwZWRlZiBFR0xEaXNwbGF5IFBsYXRmb3JtRGlzcGxh
eTsKIHR5cGVkZWYgRUdMQ29uZmlnIFBsYXRmb3JtU3VyZmFjZUNvbmZpZzsKIHR5cGVkZWYgRUdM
U3VyZmFjZSBQbGF0Zm9ybURyYXdhYmxlOwogI2Vsc2UKIHR5cGVkZWYgdm9pZCogUGxhdGZvcm1D
b250ZXh0OwotdHlwZWRlZiB2b2lkKiBQbGF0Zm9ybURpc3BsYXk7CiB0eXBlZGVmIHZvaWQqIFBs
YXRmb3JtU3VyZmFjZUNvbmZpZzsKIHR5cGVkZWYgdm9pZCogUGxhdGZvcm1EcmF3YWJsZTsKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Blbmds
L0dMUGxhdGZvcm1TdXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L29wZW5nbC9HTFBsYXRmb3JtU3VyZmFjZS5jcHAKaW5kZXggNGYwM2VmNi4uYTQ5YzNkOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZv
cm1TdXJmYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVu
Z2wvR0xQbGF0Zm9ybVN1cmZhY2UuY3BwCkBAIC02MSw4ICs2MSw3IEBAIHN0ZDo6dW5pcXVlX3B0
cjxHTFBsYXRmb3JtU3VyZmFjZT4gR0xQbGF0Zm9ybVN1cmZhY2U6OmNyZWF0ZU9mZlNjcmVlblN1
cmZhY2UoU3VyCiB9CiAKIEdMUGxhdGZvcm1TdXJmYWNlOjpHTFBsYXRmb3JtU3VyZmFjZShTdXJm
YWNlQXR0cmlidXRlcykKLSAgICA6IG1fc2hhcmVkRGlzcGxheSgwKQotICAgICwgbV9kcmF3YWJs
ZSgwKQorICAgIDogbV9kcmF3YWJsZSgwKQogICAgICwgbV9idWZmZXJIYW5kbGUoMCkKIHsKIH0K
QEAgLTg4LDExICs4Nyw2IEBAIGNvbnN0IEludFJlY3QmIEdMUGxhdGZvcm1TdXJmYWNlOjpnZW9t
ZXRyeSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fcmVjdDsKIH0KIAotUGxhdGZvcm1EaXNwbGF5IEdM
UGxhdGZvcm1TdXJmYWNlOjpzaGFyZWREaXNwbGF5KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9z
aGFyZWREaXNwbGF5OwotfQotCiBQbGF0Zm9ybVN1cmZhY2VDb25maWcgR0xQbGF0Zm9ybVN1cmZh
Y2U6OmNvbmZpZ3VyYXRpb24oKQogewogICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1TdXJmYWNlLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xQbGF0Zm9ybVN1cmZhY2Uu
aAppbmRleCBmNWU0ZjUzLi5mMTQxZDM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xQbGF0Zm9ybVN1cmZhY2UuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xQbGF0Zm9ybVN1cmZhY2UuaApAQCAtNTks
OCArNTksNiBAQCBwdWJsaWM6CiAKICAgICBQbGF0Zm9ybURyYXdhYmxlIGRyYXdhYmxlKCkgY29u
c3Q7CiAKLSAgICBQbGF0Zm9ybURpc3BsYXkgc2hhcmVkRGlzcGxheSgpIGNvbnN0OwotCiAgICAg
dmlydHVhbCBTdXJmYWNlQXR0cmlidXRlcyBhdHRyaWJ1dGVzKCkgY29uc3Q7CiAKICAgICB2aXJ0
dWFsIHZvaWQgc3dhcEJ1ZmZlcnMoKTsKQEAgLTg0LDcgKzgyLDYgQEAgcHVibGljOgogcHJvdGVj
dGVkOgogICAgIEdMUGxhdGZvcm1TdXJmYWNlKFN1cmZhY2VBdHRyaWJ1dGVzKTsKIAotICAgIFBs
YXRmb3JtRGlzcGxheSBtX3NoYXJlZERpc3BsYXk7CiAgICAgUGxhdGZvcm1EcmF3YWJsZSBtX2Ry
YXdhYmxlOwogICAgIFBsYXRmb3JtQnVmZmVySGFuZGxlIG1fYnVmZmVySGFuZGxlOwogICAgIElu
dFJlY3QgbV9yZWN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvc3VyZmFjZXMvZWdsL0VHTENvbmZpZ1NlbGVjdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9lZ2wvRUdMQ29uZmlnU2VsZWN0b3IuaAppbmRleCAyNzJj
YmRiLi4xMzljMGI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9zdXJmYWNlcy9lZ2wvRUdMQ29uZmlnU2VsZWN0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9lZ2wvRUdMQ29uZmlnU2VsZWN0b3IuaApAQCAtNjEs
NyArNjEsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgRUdMQ29uZmlnIG1fcGl4bWFwRkJDb25maWc7CiAg
ICAgRUdMQ29uZmlnIG1fc3VyZmFjZUNvbnRleHRGQkNvbmZpZzsKICAgICB1bnNpZ25lZCBtX2F0
dHJpYnV0ZXMgOiAzOwotICAgIFBsYXRmb3JtRGlzcGxheSBtX3NoYXJlZERpc3BsYXk7CisgICAg
RUdMRGlzcGxheSBtX3NoYXJlZERpc3BsYXk7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9lZ2wvRUdMQ29udGV4dC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9lZ2wvRUdMQ29udGV4dC5j
cHAKaW5kZXggNjJhZjQ0My4uMWZlN2EzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWdsL0VHTENvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2VnbC9FR0xDb250ZXh0LmNwcApAQCAt
MjgsNiArMjgsNyBAQAogCiAjaWYgVVNFKEVHTCkKIAorI2luY2x1ZGUgIlBsYXRmb3JtRGlzcGxh
eS5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CkBAIC03MiwxMiArNzMsNyBAQCBib29sIEVHTE9mZlNjcmVlbkNvbnRleHQ6OmluaXRpYWxp
emUoR0xQbGF0Zm9ybVN1cmZhY2UqIHN1cmZhY2UsIFBsYXRmb3JtQ29udGV4dAogICAgIGlmICgh
c3VyZmFjZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKCFlZ2xCaW5kQVBJKGVn
bEFQSVZlcnNpb24pKSB7Ci0gICAgICAgIExPR19FUlJPUigiRmFpbGVkIHRvIHNldCBFR0wgQVBJ
KCVkKS4iLCBlZ2xHZXRFcnJvcigpKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQot
ICAgIG1fZGlzcGxheSA9IHN1cmZhY2UtPnNoYXJlZERpc3BsYXkoKTsKKyAgICBtX2Rpc3BsYXkg
PSBQbGF0Zm9ybURpc3BsYXk6OnNoYXJlZERpc3BsYXkoKS5lZ2xEaXNwbGF5KCk7CiAgICAgaWYg
KCFtX2Rpc3BsYXkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWdsL0VHTEhlbHBlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9lZ2wvRUdMSGVscGVyLmNw
cAppbmRleCA5YWVkOWFmLi5hMDE1ZTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9lZ2wvRUdMSGVscGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9lZ2wvRUdMSGVscGVyLmNwcApAQCAtMjgs
ODkgKzI4LDIyIEBACiAKICNpZiBVU0UoRUdMKQogCisjaW5jbHVkZSAiUGxhdGZvcm1EaXNwbGF5
LmgiCiAjaW5jbHVkZSA8b3BlbmdsL0dMUGxhdGZvcm1Db250ZXh0Lmg+CiAKLSNpZiBQTEFURk9S
TShYMTEpCi0jaW5jbHVkZSAiWDExSGVscGVyLmgiCi0jZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi0jaWYgUExBVEZPUk0oWDExKQotdHlwZWRlZiBYMTFIZWxwZXIgTmF0aXZlV3JhcHBl
cjsKLXR5cGVkZWYgRGlzcGxheSBOYXRpdmVTaGFyZWREaXNwbGF5OwotI2Vsc2UKLXR5cGVkZWYg
dm9pZCBOYXRpdmVTaGFyZWREaXNwbGF5OwotI2VuZGlmCi0KIHN0YXRpYyBQRk5FR0xDUkVBVEVJ
TUFHRUtIUlBST0MgZWdsQ3JlYXRlSW1hZ2VLSFIgPSAwOwogc3RhdGljIFBGTkVHTERFU1RST1lJ
TUFHRUtIUlBST0MgZWdsRGVzdHJveUltYWdlS0hSID0gMDsKIHN0YXRpYyBQRk5HTEVHTElNQUdF
VEFSR0VUVEVYVFVSRTJET0VTUFJPQyBlZ2xJbWFnZVRhcmdldFRleHR1cmUyRE9FUyA9IDA7CiAK
LXN0cnVjdCBFR0xEaXNwbGF5Q29ubmVjdGlvbiB7Ci0KLSAgICBFR0xEaXNwbGF5Q29ubmVjdGlv
bihOYXRpdmVTaGFyZWREaXNwbGF5KiBkaXNwbGF5ID0gMCkKLSAgICB7Ci0gICAgICAgIGlmIChk
aXNwbGF5KQotICAgICAgICAgICAgbV9lZ2xEaXNwbGF5ID0gZWdsR2V0RGlzcGxheShyZWludGVy
cHJldF9jYXN0PEVHTE5hdGl2ZURpc3BsYXlUeXBlPihkaXNwbGF5KSk7Ci0gICAgICAgIGVsc2UK
LSAgICAgICAgICAgIG1fZWdsRGlzcGxheSA9IGVnbEdldERpc3BsYXkoRUdMX0RFRkFVTFRfRElT
UExBWSk7Ci0KLSAgICAgICAgaWYgKG1fZWdsRGlzcGxheSA9PSBFR0xfTk9fRElTUExBWSkgewot
ICAgICAgICAgICAgTE9HX0VSUk9SKCJFR0xEaXNwbGF5IEluaXRpYWxpemF0aW9uIGZhaWxlZC4i
KTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIEVHTEJvb2xlYW4g
c3VjY2VzczsKLSAgICAgICAgc3VjY2VzcyA9IGVnbEluaXRpYWxpemUobV9lZ2xEaXNwbGF5LCAw
LCAwKTsKLQotICAgICAgICBpZiAoc3VjY2VzcyAhPSBFR0xfVFJVRSkgewotICAgICAgICAgICAg
TE9HX0VSUk9SKCJFR0xJbml0aWFsaXphdGlvbiBmYWlsZWQuIik7Ci0gICAgICAgICAgICB0ZXJt
aW5hdGUoKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIHN1Y2Nl
c3MgPSBlZ2xCaW5kQVBJKGVnbEFQSVZlcnNpb24pOwotCi0gICAgICAgIGlmIChzdWNjZXNzICE9
IEVHTF9UUlVFKSB7Ci0gICAgICAgICAgICBMT0dfRVJST1IoIkZhaWxlZCB0byBzZXQgRUdMIEFQ
SSglZCkuIiwgZWdsR2V0RXJyb3IoKSk7Ci0gICAgICAgICAgICB0ZXJtaW5hdGUoKTsKLSAgICAg
ICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgIH0KLQotICAgIH5FR0xEaXNwbGF5Q29ubmVj
dGlvbigpCi0gICAgewotICAgICAgICB0ZXJtaW5hdGUoKTsKLSAgICB9Ci0KLSAgICBFR0xEaXNw
bGF5IGRpc3BsYXkoKSB7IHJldHVybiBtX2VnbERpc3BsYXk7IH0KLQotcHJpdmF0ZToKLSAgICB2
b2lkIHRlcm1pbmF0ZSgpCi0gICAgewotICAgICAgICBpZiAobV9lZ2xEaXNwbGF5ID09IEVHTF9O
T19ESVNQTEFZKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGVnbFRlcm1pbmF0ZSht
X2VnbERpc3BsYXkpOwotICAgICAgICBtX2VnbERpc3BsYXkgPSBFR0xfTk9fRElTUExBWTsKLSAg
ICB9Ci0KLSAgICBFR0xEaXNwbGF5IG1fZWdsRGlzcGxheTsKLX07Ci0KLVBsYXRmb3JtRGlzcGxh
eSBFR0xIZWxwZXI6OmVnbERpc3BsYXkoKQorRUdMRGlzcGxheSBFR0xIZWxwZXI6OmVnbERpc3Bs
YXkoKQogewotICAgIC8vIERpc3BsYXkgY29ubmVjdGlvbiB3aWxsIG9ubHkgYmUgYnJva2VuIGF0
IHByb2dyYW0gc2h1dGRvd24uCi0jaWYgUExBVEZPUk0oWDExKQotICAgIHN0YXRpYyBFR0xEaXNw
bGF5Q29ubmVjdGlvbiBkaXNwbGF5Q29ubmVjdGlvbihOYXRpdmVXcmFwcGVyOjpuYXRpdmVEaXNw
bGF5KCkpOwotI2Vsc2UKLSAgICBzdGF0aWMgRUdMRGlzcGxheUNvbm5lY3Rpb24gZGlzcGxheUNv
bm5lY3Rpb247Ci0jZW5kaWYKLSAgICByZXR1cm4gZGlzcGxheUNvbm5lY3Rpb24uZGlzcGxheSgp
OworICAgIFBsYXRmb3JtRGlzcGxheTo6c2hhcmVkRGlzcGxheSgpLmVnbERpc3BsYXkoKTsKIH0K
IAotUGxhdGZvcm1EaXNwbGF5IEVHTEhlbHBlcjo6Y3VycmVudERpc3BsYXkoKQorRUdMRGlzcGxh
eSBFR0xIZWxwZXI6OmN1cnJlbnREaXNwbGF5KCkKIHsKICAgICBFR0xEaXNwbGF5IGRpc3BsYXkg
PSBlZ2xHZXRDdXJyZW50RGlzcGxheSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9lZ2wvRUdMSGVscGVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9lZ2wvRUdMSGVscGVyLmgKaW5kZXggZjI0NThm
Yi4uODgyMjJhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
c3VyZmFjZXMvZWdsL0VHTEhlbHBlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3N1cmZhY2VzL2VnbC9FR0xIZWxwZXIuaApAQCAtMzQsOCArMzQsOCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIEVHTEhlbHBlciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBs
YXRmb3JtRGlzcGxheSBlZ2xEaXNwbGF5KCk7Ci0gICAgc3RhdGljIFBsYXRmb3JtRGlzcGxheSBj
dXJyZW50RGlzcGxheSgpOworICAgIHN0YXRpYyBFR0xEaXNwbGF5IGVnbERpc3BsYXkoKTsKKyAg
ICBzdGF0aWMgRUdMRGlzcGxheSBjdXJyZW50RGlzcGxheSgpOwogICAgIHN0YXRpYyB2b2lkIHJl
c29sdmVFR0xCaW5kaW5ncygpOwogICAgIHN0YXRpYyB2b2lkIGNyZWF0ZUVHTEltYWdlKEVHTElt
YWdlS0hSKiwgR0xlbnVtLCBjb25zdCBFR0xDbGllbnRCdWZmZXIsIGNvbnN0IEVHTGludCogPSAw
KTsKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95RUdMSW1hZ2UoY29uc3QgRUdMSW1hZ2VLSFIpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWds
L0VHTFN1cmZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFj
ZXMvZWdsL0VHTFN1cmZhY2UuY3BwCmluZGV4IDZjNjk1MDIuLjQyMzRlZWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2VnbC9FR0xTdXJmYWNl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9lZ2wv
RUdMU3VyZmFjZS5jcHAKQEAgLTc1LDkgKzc1LDcgQEAgc3RkOjp1bmlxdWVfcHRyPEdMVHJhbnNw
b3J0U3VyZmFjZUNsaWVudD4gRUdMVHJhbnNwb3J0U3VyZmFjZTo6Y3JlYXRlVHJhbnNwb3J0U3UK
IEVHTFRyYW5zcG9ydFN1cmZhY2U6OkVHTFRyYW5zcG9ydFN1cmZhY2UoY29uc3QgSW50U2l6ZSYg
c2l6ZSwgU3VyZmFjZUF0dHJpYnV0ZXMgYXR0cmlidXRlcykKICAgICA6IEdMVHJhbnNwb3J0U3Vy
ZmFjZShzaXplLCBhdHRyaWJ1dGVzKQogewotICAgIG1fc2hhcmVkRGlzcGxheSA9IEVHTEhlbHBl
cjo6ZWdsRGlzcGxheSgpOwotCi0gICAgaWYgKG1fc2hhcmVkRGlzcGxheSA9PSBFR0xfTk9fRElT
UExBWSkKKyAgICBpZiAoRUdMSGVscGVyOjplZ2xEaXNwbGF5KCkgPT0gRUdMX05PX0RJU1BMQVkp
CiAgICAgICAgIHJldHVybjsKIAogICAgIG1fY29uZmlnU2VsZWN0b3IgPSBzdGQ6Om1ha2VfdW5p
cXVlPEVHTENvbmZpZ1NlbGVjdG9yPihhdHRyaWJ1dGVzKTsKQEAgLTk0LDEzICs5MiwxMyBAQCBF
R0xUcmFuc3BvcnRTdXJmYWNlOjp+RUdMVHJhbnNwb3J0U3VyZmFjZSgpCiAKIHZvaWQgRUdMVHJh
bnNwb3J0U3VyZmFjZTo6ZGVzdHJveSgpCiB7Ci0gICAgaWYgKG1fZHJhd2FibGUgPT0gRUdMX05P
X1NVUkZBQ0UgfHwgbV9zaGFyZWREaXNwbGF5ID09IEVHTF9OT19ESVNQTEFZKQorICAgIGlmICht
X2RyYXdhYmxlID09IEVHTF9OT19TVVJGQUNFIHx8IEVHTEhlbHBlcjo6ZWdsRGlzcGxheSgpID09
IEVHTF9OT19ESVNQTEFZKQogICAgICAgICByZXR1cm47CiAKICAgICBHTFRyYW5zcG9ydFN1cmZh
Y2U6OmRlc3Ryb3koKTsKIAogICAgIGlmIChtX2RyYXdhYmxlKSB7Ci0gICAgICAgIGVnbERlc3Ry
b3lTdXJmYWNlKG1fc2hhcmVkRGlzcGxheSwgbV9kcmF3YWJsZSk7CisgICAgICAgIGVnbERlc3Ry
b3lTdXJmYWNlKEVHTEhlbHBlcjo6ZWdsRGlzcGxheSgpLCBtX2RyYXdhYmxlKTsKICAgICAgICAg
bV9kcmF3YWJsZSA9IEVHTF9OT19TVVJGQUNFOwogICAgIH0KIApAQCAtMTI1LDkgKzEyMyw3IEBA
IHN0ZDo6dW5pcXVlX3B0cjxHTFBsYXRmb3JtU3VyZmFjZT4gRUdMT2ZmU2NyZWVuU3VyZmFjZTo6
Y3JlYXRlT2ZmU2NyZWVuU3VyZmFjZShTCiBFR0xPZmZTY3JlZW5TdXJmYWNlOjpFR0xPZmZTY3Jl
ZW5TdXJmYWNlKFN1cmZhY2VBdHRyaWJ1dGVzIHN1cmZhY2VBdHRyaWJ1dGVzKQogICAgIDogR0xQ
bGF0Zm9ybVN1cmZhY2Uoc3VyZmFjZUF0dHJpYnV0ZXMpCiB7Ci0gICAgbV9zaGFyZWREaXNwbGF5
ID0gRUdMSGVscGVyOjplZ2xEaXNwbGF5KCk7Ci0KLSAgICBpZiAobV9zaGFyZWREaXNwbGF5ID09
IEVHTF9OT19ESVNQTEFZKQorICAgIGlmIChFR0xIZWxwZXI6OmVnbERpc3BsYXkoKSA9PSBFR0xf
Tk9fRElTUExBWSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9jb25maWdTZWxlY3RvciA9IHN0
ZDo6bWFrZV91bmlxdWU8RUdMQ29uZmlnU2VsZWN0b3I+KHN1cmZhY2VBdHRyaWJ1dGVzKTsKQEAg
LTE0OSwxMSArMTQ1LDExIEBAIFBsYXRmb3JtU3VyZmFjZUNvbmZpZyBFR0xPZmZTY3JlZW5TdXJm
YWNlOjpjb25maWd1cmF0aW9uKCkKIAogdm9pZCBFR0xPZmZTY3JlZW5TdXJmYWNlOjpkZXN0cm95
KCkKIHsKLSAgICBpZiAobV9zaGFyZWREaXNwbGF5ID09IEVHTF9OT19ESVNQTEFZIHx8IG1fZHJh
d2FibGUgPT0gRUdMX05PX1NVUkZBQ0UpCisgICAgaWYgKEVHTEhlbHBlcjo6ZWdsRGlzcGxheSgp
ID09IEVHTF9OT19ESVNQTEFZIHx8IG1fZHJhd2FibGUgPT0gRUdMX05PX1NVUkZBQ0UpCiAgICAg
ICAgIHJldHVybjsKIAogICAgIGlmIChtX2RyYXdhYmxlKSB7Ci0gICAgICAgIGVnbERlc3Ryb3lT
dXJmYWNlKG1fc2hhcmVkRGlzcGxheSwgbV9kcmF3YWJsZSk7CisgICAgICAgIGVnbERlc3Ryb3lT
dXJmYWNlKEVHTEhlbHBlcjo6ZWdsRGlzcGxheSgpLCBtX2RyYXdhYmxlKTsKICAgICAgICAgbV9k
cmF3YWJsZSA9IEVHTF9OT19TVVJGQUNFOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWdsL0VHTFhTdXJmYWNlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2VnbC9FR0xYU3VyZmFjZS5j
cHAKaW5kZXggNzkyYTk4Yi4uNjE4ZmRjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWdsL0VHTFhTdXJmYWNlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9lZ2wvRUdMWFN1cmZhY2UuY3BwCkBA
IC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiRUdMQ29uZmlnU2VsZWN0b3IuaCIKICNpbmNsdWRl
ICJFR0xIZWxwZXIuaCIKICNpbmNsdWRlICJHTFBsYXRmb3JtQ29udGV4dC5oIgorI2luY2x1ZGUg
IlBsYXRmb3JtRGlzcGxheS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTU5LDcgKzYw
LDcgQEAgRUdMV2luZG93VHJhbnNwb3J0U3VyZmFjZTo6RUdMV2luZG93VHJhbnNwb3J0U3VyZmFj
ZShjb25zdCBJbnRTaXplJiBzaXplLCBHTFBsYXQKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAot
ICAgIG1fZHJhd2FibGUgPSBlZ2xDcmVhdGVXaW5kb3dTdXJmYWNlKG1fc2hhcmVkRGlzcGxheSwg
bV9jb25maWdTZWxlY3Rvci0+c3VyZmFjZUNvbnRleHRDb25maWcoKSwgc3RhdGljX2Nhc3Q8RUdM
TmF0aXZlV2luZG93VHlwZT4obV9idWZmZXJIYW5kbGUpLCAwKTsKKyAgICBtX2RyYXdhYmxlID0g
ZWdsQ3JlYXRlV2luZG93U3VyZmFjZShQbGF0Zm9ybURpc3BsYXk6OnNoYXJlZERpc3BsYXkoKS5l
Z2xEaXNwbGF5KCksIG1fY29uZmlnU2VsZWN0b3ItPnN1cmZhY2VDb250ZXh0Q29uZmlnKCksIHN0
YXRpY19jYXN0PEVHTE5hdGl2ZVdpbmRvd1R5cGU+KG1fYnVmZmVySGFuZGxlKSwgMCk7CiAKICAg
ICBpZiAobV9kcmF3YWJsZSA9PSBFR0xfTk9fU1VSRkFDRSkgewogICAgICAgICBMT0dfRVJST1Io
IkZhaWxlZCB0byBjcmVhdGUgRUdMIHN1cmZhY2UoJWQpLiIsIGVnbEdldEVycm9yKCkpOwpAQCAt
NzMsNyArNzQsNyBAQCBFR0xXaW5kb3dUcmFuc3BvcnRTdXJmYWNlOjp+RUdMV2luZG93VHJhbnNw
b3J0U3VyZmFjZSgpCiAKIHZvaWQgRUdMV2luZG93VHJhbnNwb3J0U3VyZmFjZTo6c3dhcEJ1ZmZl
cnMoKQogewotICAgIGlmICghZWdsU3dhcEJ1ZmZlcnMobV9zaGFyZWREaXNwbGF5LCBtX2RyYXdh
YmxlKSkKKyAgICBpZiAoIWVnbFN3YXBCdWZmZXJzKFBsYXRmb3JtRGlzcGxheTo6c2hhcmVkRGlz
cGxheSgpLmVnbERpc3BsYXkoKSwgbV9kcmF3YWJsZSkpCiAgICAgICAgIExPR19FUlJPUigiRmFp
bGVkIHRvIFN3YXBCdWZmZXJzKCVkKS4iLCBlZ2xHZXRFcnJvcigpKTsKIH0KIApAQCAtMTE2LDcg
KzExNyw3IEBAIEVHTFBpeG1hcFN1cmZhY2U6OkVHTFBpeG1hcFN1cmZhY2UoR0xQbGF0Zm9ybVN1
cmZhY2U6OlN1cmZhY2VBdHRyaWJ1dGVzIHN1cmZhY2VBCiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKLSAgICBtX2RyYXdhYmxlID0gZWdsQ3JlYXRlUGl4bWFwU3VyZmFjZShtX3NoYXJlZERpc3Bs
YXksIGNvbmZpZywgc3RhdGljX2Nhc3Q8RUdMTmF0aXZlUGl4bWFwVHlwZT4obV9idWZmZXJIYW5k
bGUpLCAwKTsKKyAgICBtX2RyYXdhYmxlID0gZWdsQ3JlYXRlUGl4bWFwU3VyZmFjZShQbGF0Zm9y
bURpc3BsYXk6OnNoYXJlZERpc3BsYXkoKS5lZ2xEaXNwbGF5KCksIGNvbmZpZywgc3RhdGljX2Nh
c3Q8RUdMTmF0aXZlUGl4bWFwVHlwZT4obV9idWZmZXJIYW5kbGUpLCAwKTsKIAogICAgIGlmICht
X2RyYXdhYmxlID09IEVHTF9OT19TVVJGQUNFKSB7CiAgICAgICAgIExPR19FUlJPUigiRmFpbGVk
IHRvIGNyZWF0ZSBFR0wgc3VyZmFjZSglZCkuIiwgZWdsR2V0RXJyb3IoKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYU3VyZmFj
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xY
U3VyZmFjZS5jcHAKaW5kZXggMTZhOGUwMy4uOWY1ZTMzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWFN1cmZhY2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HTFhTdXJmYWNl
LmNwcApAQCAtNjQsNyArNjQsNiBAQCBzdGF0aWMgYm9vbCBpc01lc2FHTFgoKQogR0xYVHJhbnNw
b3J0U3VyZmFjZTo6R0xYVHJhbnNwb3J0U3VyZmFjZShjb25zdCBJbnRTaXplJiBzaXplLCBTdXJm
YWNlQXR0cmlidXRlcyBhdHRyaWJ1dGVzKQogICAgIDogR0xUcmFuc3BvcnRTdXJmYWNlKHNpemUs
IGF0dHJpYnV0ZXMpCiB7Ci0gICAgbV9zaGFyZWREaXNwbGF5ID0gWDExSGVscGVyOjpuYXRpdmVE
aXNwbGF5KCk7CiAgICAgYXR0cmlidXRlcyB8PSBHTFBsYXRmb3JtU3VyZmFjZTo6RG91YmxlQnVm
ZmVyZWQ7CiAgICAgbV9jb25maWdTZWxlY3RvciA9IHN0ZDo6bWFrZV91bmlxdWU8R0xYQ29uZmln
U2VsZWN0b3I+KGF0dHJpYnV0ZXMpOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxYVmlzdWFsSW5mbywg
WDExRGVsZXRlcj4gdmlzSW5mbyhtX2NvbmZpZ1NlbGVjdG9yLT52aXN1YWxJbmZvKG1fY29uZmln
U2VsZWN0b3ItPnN1cmZhY2VDb250ZXh0Q29uZmlnKCkpKTsKQEAgLTE0MSw4ICsxNDAsNiBAQCBH
TFhPZmZTY3JlZW5TdXJmYWNlOjp+R0xYT2ZmU2NyZWVuU3VyZmFjZSgpCiAKIHZvaWQgR0xYT2Zm
U2NyZWVuU3VyZmFjZTo6aW5pdGlhbGl6ZShTdXJmYWNlQXR0cmlidXRlcyBhdHRyaWJ1dGVzKQog
ewotICAgIG1fc2hhcmVkRGlzcGxheSA9IFgxMUhlbHBlcjo6bmF0aXZlRGlzcGxheSgpOwotCiAg
ICAgbV9jb25maWdTZWxlY3RvciA9IHN0ZDo6bWFrZV91bmlxdWU8R0xYQ29uZmlnU2VsZWN0b3I+
KGF0dHJpYnV0ZXMpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFhWaXN1YWxJbmZvLCBYMTFEZWxl
dGVyPiB2aXN1YWxJbmZvKG1fY29uZmlnU2VsZWN0b3ItPnZpc3VhbEluZm8obV9jb25maWdTZWxl
Y3Rvci0+cGl4bWFwQ29udGV4dENvbmZpZygpKSk7CkBAIC0xNTMsNyArMTUwLDcgQEAgdm9pZCBH
TFhPZmZTY3JlZW5TdXJmYWNlOjppbml0aWFsaXplKFN1cmZhY2VBdHRyaWJ1dGVzIGF0dHJpYnV0
ZXMpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBtX2dseFBpeG1hcCA9IGdsWENyZWF0
ZUdMWFBpeG1hcChtX3NoYXJlZERpc3BsYXksIHZpc3VhbEluZm8uZ2V0KCksIG1fcGl4bWFwKTsK
KyAgICBtX2dseFBpeG1hcCA9IGdsWENyZWF0ZUdMWFBpeG1hcChYMTFIZWxwZXI6Om5hdGl2ZURp
c3BsYXkoKSwgdmlzdWFsSW5mby5nZXQoKSwgbV9waXhtYXApOwogCiAgICAgaWYgKCFtX2dseFBp
eG1hcCkgewogICAgICAgICBkZXN0cm95KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93YXlsYW5kL1BsYXRmb3JtRGlzcGxheVdheWxhbmQuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2F5bGFuZC9QbGF0Zm9ybURpc3BsYXlXYXls
YW5kLmNwcAppbmRleCAyN2Y2MWViLi5jY2JjMzVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93YXlsYW5kL1BsYXRmb3JtRGlzcGxheVdheWxhbmQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dheWxhbmQvUGxhdGZvcm1EaXNw
bGF5V2F5bGFuZC5jcHAKQEAgLTg3LDIwICs4Nyw5IEBAIFBsYXRmb3JtRGlzcGxheVdheWxhbmQ6
OlBsYXRmb3JtRGlzcGxheVdheWxhbmQoc3RydWN0IHdsX2Rpc3BsYXkqIHdsRGlzcGxheSkKICAg
ICB9OwogCiAgICAgbV9lZ2xEaXNwbGF5ID0gZWdsR2V0RGlzcGxheShtX2Rpc3BsYXkpOwotICAg
IGlmIChtX2VnbERpc3BsYXkgPT0gRUdMX05PX0RJU1BMQVkpIHsKLSAgICAgICAgZ193YXJuaW5n
KCJQbGF0Zm9ybURpc3BsYXlXYXlsYW5kIGluaXRpYWxpemF0aW9uOiBmYWlsZWQgdG8gYWNxdWly
ZSBFR0wgZGlzcGxheS4iKTsKKyAgICBQbGF0Zm9ybURpc3BsYXk6OmluaXRpYWxpemVFR0xEaXNw
bGF5KCk7CisgICAgaWYgKG1fZWdsRGlzcGxheSA9PSBFR0xfTk9fRElTUExBWSkKICAgICAgICAg
cmV0dXJuOwotICAgIH0KLQotICAgIGlmIChlZ2xJbml0aWFsaXplKG1fZWdsRGlzcGxheSwgMCwg
MCkgPT0gRUdMX0ZBTFNFKSB7Ci0gICAgICAgIGdfd2FybmluZygiUGxhdGZvcm1EaXNwbGF5V2F5
bGFuZCBpbml0aWFsaXphdGlvbjogZmFpbGVkIHRvIGluaXRpYWxpemUgdGhlIEVHTCBkaXNwbGF5
LiIpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKGVnbEJpbmRBUEkoRUdMX09Q
RU5HTF9FU19BUEkpID09IEVHTF9GQUxTRSkgewotICAgICAgICBnX3dhcm5pbmcoIlBsYXRmb3Jt
RGlzcGxheVdheWxhbmQgaW5pdGlhbGl6YXRpb246IGZhaWxlZCB0byBzZXQgRUdMX09QRU5HTF9F
U19BUEkgYXMgdGhlIHJlbmRlcmluZyBBUEkuIik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9CiAK
ICAgICBFR0xpbnQgbnVtYmVyT2ZDb25maWdzOwogICAgIGlmICghZWdsQ2hvb3NlQ29uZmlnKG1f
ZWdsRGlzcGxheSwgY29uZmlnQXR0cmlidXRlcywgJm1fZWdsQ29uZmlnLCAxLCAmbnVtYmVyT2ZD
b25maWdzKSB8fCBudW1iZXJPZkNvbmZpZ3MgIT0gMSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2F5bGFuZC9QbGF0Zm9ybURpc3BsYXlXYXlsYW5kLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93YXlsYW5kL1BsYXRmb3JtRGlzcGxh
eVdheWxhbmQuaAppbmRleCAxOTU4OWJlLi4xNTRmYmJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93YXlsYW5kL1BsYXRmb3JtRGlzcGxheVdheWxhbmQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93YXlsYW5kL1BsYXRmb3JtRGlz
cGxheVdheWxhbmQuaApAQCAtNDcsNyArNDcsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+UGxh
dGZvcm1EaXNwbGF5V2F5bGFuZCgpOwogCiAgICAgc3RydWN0IHdsX2Rpc3BsYXkqIG5hdGl2ZSgp
IGNvbnN0IHsgcmV0dXJuIG1fZGlzcGxheTsgfQotICAgIEVHTERpc3BsYXkgZWdsRGlzcGxheSgp
IGNvbnN0IHsgcmV0dXJuIG1fZWdsRGlzcGxheTsgfQogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdh
eWxhbmRTdXJmYWNlPiBjcmVhdGVTdXJmYWNlKGNvbnN0IEludFNpemUmLCBpbnQgd2lkZ2V0SUQp
OwogCkBAIC02OCw3ICs2Nyw2IEBAIHByaXZhdGU6CiAgICAgc3RydWN0IHdsX2NvbXBvc2l0b3Iq
IG1fY29tcG9zaXRvcjsKICAgICBzdHJ1Y3Qgd2xfd2Via2l0Z3RrKiBtX3dlYmtpdGd0azsKIAot
ICAgIEVHTERpc3BsYXkgbV9lZ2xEaXNwbGF5OwogICAgIEVHTENvbmZpZyBtX2VnbENvbmZpZzsK
ICAgICBib29sIG1fZWdsQ29uZmlnQ2hvc2VuOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3gxMS9QbGF0Zm9ybURpc3BsYXlYMTEuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MveDExL1BsYXRmb3JtRGlzcGxheVgxMS5jcHAKaW5k
ZXggOGFiMDIxYi4uOTdjODcyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MveDExL1BsYXRmb3JtRGlzcGxheVgxMS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MveDExL1BsYXRmb3JtRGlzcGxheVgxMS5jcHAKQEAgLTI5LDYgKzI5
LDEwIEBACiAjaWYgUExBVEZPUk0oWDExKQogI2luY2x1ZGUgPFgxMS9YbGliLmg+CiAKKyNpZiBV
U0UoRUdMKQorI2luY2x1ZGUgPEVHTC9lZ2wuaD4KKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIFBsYXRmb3JtRGlzcGxheVgxMTo6UGxhdGZvcm1EaXNwbGF5WDExKCkKQEAgLTQ5LDYg
KzUzLDE0IEBAIFBsYXRmb3JtRGlzcGxheVgxMTo6flBsYXRmb3JtRGlzcGxheVgxMSgpCiAgICAg
ICAgIFhDbG9zZURpc3BsYXkobV9kaXNwbGF5KTsKIH0KIAorI2lmIFVTRShFR0wpCit2b2lkIFBs
YXRmb3JtRGlzcGxheVgxMTo6aW5pdGlhbGl6ZUVHTERpc3BsYXkoKQoreworICAgIG1fZWdsRGlz
cGxheSA9IGVnbEdldERpc3BsYXkobV9kaXNwbGF5KTsKKyAgICBQbGF0Zm9ybURpc3BsYXk6Omlu
aXRpYWxpemVFR0xEaXNwbGF5KCk7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCiAjZW5kaWYgLy8gUExBVEZPUk0oWDExKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MveDExL1BsYXRmb3JtRGlzcGxheVgxMS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MveDExL1BsYXRmb3JtRGlzcGxheVgxMS5oCmluZGV4IDM0N2Q4
YWUuLjA3YzhiNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3gxMS9QbGF0Zm9ybURpc3BsYXlYMTEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy94MTEvUGxhdGZvcm1EaXNwbGF5WDExLmgKQEAgLTQ1LDYgKzQ1LDEwIEBAIHB1Ymxp
YzoKIHByaXZhdGU6CiAgICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiBQbGF0Zm9ybURpc3BsYXk6OlR5cGU6OlgxMTsgfQogCisjaWYgVVNFKEVHTCkKKyAgICB2
b2lkIGluaXRpYWxpemVFR0xEaXNwbGF5KCkgb3ZlcnJpZGU7CisjZW5kaWYKKwogICAgIERpc3Bs
YXkqIG1fZGlzcGxheTsKICAgICBib29sIG1fb3duZWREaXNwbGF5OwogfTsK
</data>
<flag name="review"
          id="277322"
          type_id="1"
          status="+"
          setter="mrobinson"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>252475</attachid>
            <date>2015-05-06 08:32:02 -0700</date>
            <delta_ts>2015-05-06 08:35:26 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>wk-egl-display.diff</filename>
            <type>text/plain</type>
            <size>26148</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBjNmNjYjRlLi4wNjhmODBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjgg
QEAKKzIwMTUtMDUtMDYgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtFR0xdIE1vdmUgRUdMRGlzcGxheSBoYW5kbGluZyB0byBQbGF0Zm9ybURp
c3BsYXkgYW5kIHJlbW92ZSBQbGF0Zm9ybURpc3BsYXkgZGVmaW5pdGlvbiBmcm9tIEdMRGVmcy5o
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDQ2ODUK
KworICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCisKKyAgICAgICAgVGhlIEVH
TCBkaXNwbGF5IGlzIGFsc28gaW5pdGlhbGl6ZWQgaW4gbXVsdGlwbGUgcGxhY2VzLCBhbmQgY291
bGQKKyAgICAgICAgYmUgdW5pZmllZCBpbiBQbGF0Zm9ybURpc3BsYXkuIFJlbW92ZSB0aGUgUGxh
dGZvcm1EaXNwbGF5CisgICAgICAgIGRlZmluaXRpb24gZnJvbSBwbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvR0xEZWZzLmggdG8gYXZvaWQgY29uZmxpY3RzLgorCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3Jt
RGlzcGxheTo6UGxhdGZvcm1EaXNwbGF5KTogSW5pdGlhbGl6ZSBtX2VnbERpc3BsYXkuCisgICAg
ICAgIChXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXk6On5QbGF0Zm9ybURpc3BsYXkpOiBDYWxsIHRl
cm1pbmF0ZUVHTERpc3BsYXkoKS4KKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxheTo6
ZWdsRGlzcGxheSk6IExhenkgaW50aWFsaXplIHRoZSBFR0wKKyAgICAgICAgZGlzcGxheSBhbmQg
cmV0dXJuIGl0LgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1EaXNwbGF5Ojppbml0aWFsaXpl
RUdMRGlzcGxheSk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXk6OnRlcm1pbmF0
ZUVHTERpc3BsYXkpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxh
eS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6c2hhcmVkRUdMRGlzcGxheSk6IFVzZSBQbGF0Zm9ybURpc3BsYXk6
OmVnbERpc3BsYXkoKS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xEZWZz
Lmg6IFJlbW92ZSB1bm5lZWRlZCBkZWZpbml0aW9ucy4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9vcGVuZ2wvR0xQbGF0Zm9ybVN1cmZhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R0xQ
bGF0Zm9ybVN1cmZhY2U6OkdMUGxhdGZvcm1TdXJmYWNlKTogUmVtb3ZlCisgICAgICAgIG1fc2hh
cmVkRGlzcGxheSBtZW1iZXIsIFBsYXRmb3JtRGlzcGxheTo6c2hhcmVkRGlzcGxheSgpIGNhbiBi
ZSB1c2VkIGluc3RlYWQuCisgICAgICAgIChXZWJDb3JlOjpHTFBsYXRmb3JtU3VyZmFjZTo6c2hh
cmVkRGlzcGxheSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3Blbmds
L0dMUGxhdGZvcm1TdXJmYWNlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFj
ZXMvZWdsL0VHTENvbmZpZ1NlbGVjdG9yLmg6IFVzZQorICAgICAgICBFR0xEaXNwbGF5IGluc3Rl
YWQgb2YgUGxhdGZvcm1EaXNwbGF5LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3N1cmZh
Y2VzL2VnbC9FR0xDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVHTE9mZlNjcmVlbkNv
bnRleHQ6OmluaXRpYWxpemUpOiBVc2UgUGxhdGZvcm1EaXNwbGF5OjplZ2xEaXNwbGF5KCkuCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWdsL0VHTEhlbHBlci5jcHA6IFJl
bW92ZSB0aGUKKyAgICAgICAgRUdMRGlzcGxheUNvbm5lY3Rpb24gY2xhcyBhbmQgdXNlIFBsYXRm
b3JtRGlzcGxheSBpbnN0ZWFkLgorICAgICAgICAoV2ViQ29yZTo6RUdMSGVscGVyOjplZ2xEaXNw
bGF5KToKKyAgICAgICAgKFdlYkNvcmU6OkVHTEhlbHBlcjo6Y3VycmVudERpc3BsYXkpOgorICAg
ICAgICAoV2ViQ29yZTo6RUdMRGlzcGxheUNvbm5lY3Rpb246OkVHTERpc3BsYXlDb25uZWN0aW9u
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkVHTERpc3BsYXlDb25uZWN0aW9uOjp+RUdM
RGlzcGxheUNvbm5lY3Rpb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RUdMRGlzcGxh
eUNvbm5lY3Rpb246OmRpc3BsYXkpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RUdMRGlz
cGxheUNvbm5lY3Rpb246OnRlcm1pbmF0ZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3Mvc3VyZmFjZXMvZWdsL0VHTEhlbHBlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL3N1cmZhY2VzL2VnbC9FR0xTdXJmYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVH
TFRyYW5zcG9ydFN1cmZhY2U6OkVHTFRyYW5zcG9ydFN1cmZhY2UpOiBVc2UgRUdMSGVscGVyOjpl
Z2xEaXNwbGF5KCkuCisgICAgICAgIChXZWJDb3JlOjpFR0xUcmFuc3BvcnRTdXJmYWNlOjpkZXN0
cm95KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpFR0xPZmZTY3JlZW5TdXJmYWNlOjpFR0xP
ZmZTY3JlZW5TdXJmYWNlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpFR0xPZmZTY3JlZW5T
dXJmYWNlOjpkZXN0cm95KTogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc3Vy
ZmFjZXMvZWdsL0VHTFhTdXJmYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVHTFdpbmRvd1Ry
YW5zcG9ydFN1cmZhY2U6OkVHTFdpbmRvd1RyYW5zcG9ydFN1cmZhY2UpOgorICAgICAgICBVc2Ug
UGxhdGZvcm1EaXNwbGF5OjplZ2xEaXNwbGF5KCkuCisgICAgICAgIChXZWJDb3JlOjpFR0xXaW5k
b3dUcmFuc3BvcnRTdXJmYWNlOjpzd2FwQnVmZmVycyk6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6RUdMUGl4bWFwU3VyZmFjZTo6RUdMUGl4bWFwU3VyZmFjZSk6IERpdHRvLgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HTFhDb250ZXh0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkdMWE9mZlNjcmVlbkNvbnRleHQ6OmluaXRpYWxpemUpOiBVc2UgWDExSGVscGVy
OjpuYXRpdmVEaXNwbGF5KCkuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMv
Z2x4L0dMWFN1cmZhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R0xYVHJhbnNwb3J0U3VyZmFj
ZTo6R0xYVHJhbnNwb3J0U3VyZmFjZSk6IERvIG5vdCB1c2UgbV9zaGFyZWREaXNwbGF5LgorICAg
ICAgICAoV2ViQ29yZTo6R0xYT2ZmU2NyZWVuU3VyZmFjZTo6aW5pdGlhbGl6ZSk6IERpdHRvLgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dheWxhbmQvUGxhdGZvcm1EaXNwbGF5V2F5bGFu
ZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXlXYXlsYW5kOjpQbGF0Zm9y
bURpc3BsYXlXYXlsYW5kKTogQ2FsbAorICAgICAgICBQbGF0Zm9ybURpc3BsYXk6OmluaXRpYWxp
emVFR0xEaXNwbGF5KCkgdG8gaW5zaWFsaXplIHRoZSBFR0wgZGlzcGxheS4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy93YXlsYW5kL1BsYXRmb3JtRGlzcGxheVdheWxhbmQuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy94MTEvUGxhdGZvcm1EaXNwbGF5WDExLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxheVgxMTo6aW5pdGlhbGl6ZUVHTERpc3BsYXkpOiBP
dmVycmlkZQorICAgICAgICBQbGF0Zm9ybURpc3BsYXk6OmluaXRpYWxpemVFR0xEaXNwbGF5KCkg
dG8gaW5pdGlhbGl6ZSB0aGUKKyAgICAgICAgbV9lZ2xEaXNwbGF5IG1lbWJlci4KKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy94MTEvUGxhdGZvcm1EaXNwbGF5WDExLmg6CisKIDIwMTUtMDUt
MDUgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAg
IFtTT1VQXSBOZXR3b3JrIENhY2hlOiBJbXBsZW1lbnQgU2hhcmVhYmxlUmVzb3VyY2UgZm9yIFNv
dXAgYW5kIGVuYWJsZSBpdCBmb3IgR1RLIHBsYXRmb3JtCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmNwcAppbmRleCA1OGJkZDY5Li5k
NjIxMGEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0
Zm9ybURpc3BsYXkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1Bs
YXRmb3JtRGlzcGxheS5jcHAKQEAgLTQ1LDYgKzQ1LDEwIEBACiAjaW5jbHVkZSA8RWNvcmVfWC5o
PgogI2VuZGlmCiAKKyNpZiBVU0UoRUdMKQorI2luY2x1ZGUgPEVHTC9lZ2wuaD4KKyNlbmRpZgor
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybURpc3BsYXk+
IFBsYXRmb3JtRGlzcGxheTo6Y3JlYXRlUGxhdGZvcm1EaXNwbGF5KCkKQEAgLTg1LDQgKzg5LDYz
IEBAIFBsYXRmb3JtRGlzcGxheSYgUGxhdGZvcm1EaXNwbGF5OjpzaGFyZWREaXNwbGF5KCkKICAg
ICByZXR1cm4gKmRpc3BsYXk7CiB9CiAKK1BsYXRmb3JtRGlzcGxheTo6UGxhdGZvcm1EaXNwbGF5
KCkKKyNpZiBVU0UoRUdMKQorICAgIDogbV9lZ2xEaXNwbGF5KEVHTF9OT19ESVNQTEFZKQorI2Vu
ZGlmCit7Cit9CisKK1BsYXRmb3JtRGlzcGxheTo6flBsYXRmb3JtRGlzcGxheSgpCit7CisjaWYg
VVNFKEVHTCkKKyAgICB0ZXJtaW5hdGVFR0xEaXNwbGF5KCk7CisjZW5kaWYKK30KKworI2lmIFVT
RShFR0wpCitFR0xEaXNwbGF5IFBsYXRmb3JtRGlzcGxheTo6ZWdsRGlzcGxheSgpIGNvbnN0Cit7
CisgICAgaWYgKCFtX2VnbERpc3BsYXlJbml0aWFsaXplZCkKKyAgICAgICAgY29uc3RfY2FzdDxQ
bGF0Zm9ybURpc3BsYXkqPih0aGlzKS0+aW5pdGlhbGl6ZUVHTERpc3BsYXkoKTsKKyAgICByZXR1
cm4gbV9lZ2xEaXNwbGF5OworfQorCit2b2lkIFBsYXRmb3JtRGlzcGxheTo6aW5pdGlhbGl6ZUVH
TERpc3BsYXkoKQoreworICAgIG1fZWdsRGlzcGxheUluaXRpYWxpemVkID0gdHJ1ZTsKKworICAg
IGlmIChtX2VnbERpc3BsYXkgPT0gRUdMX05PX0RJU1BMQVkpIHsKKyAgICAgICAgbV9lZ2xEaXNw
bGF5ID0gZWdsR2V0RGlzcGxheShFR0xfREVGQVVMVF9ESVNQTEFZKTsKKyAgICAgICAgaWYgKG1f
ZWdsRGlzcGxheSA9PSBFR0xfTk9fRElTUExBWSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBpZiAoZWdsSW5pdGlhbGl6ZShtX2VnbERpc3BsYXksIDAsIDApID09IEVHTF9GQUxT
RSkgeworICAgICAgICBMT0dfRVJST1IoIkVHTERpc3BsYXkgSW5pdGlhbGl6YXRpb24gZmFpbGVk
LiIpOworICAgICAgICB0ZXJtaW5hdGVFR0xEaXNwbGF5KCk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKKyNpZiBVU0UoT1BFTkdMX0VTXzIpCisgICAgc3RhdGljIGNvbnN0IEVHTGVudW0gZWds
QVBJVmVyc2lvbiA9IEVHTF9PUEVOR0xfRVNfQVBJOworI2Vsc2UKKyAgICBzdGF0aWMgY29uc3Qg
RUdMZW51bSBlZ2xBUElWZXJzaW9uID0gRUdMX09QRU5HTF9BUEk7CisjZW5kaWYKKyAgICBpZiAo
ZWdsQmluZEFQSShlZ2xBUElWZXJzaW9uKSA9PSBFR0xfRkFMU0UpIHsKKyAgICAgICAgTE9HX0VS
Uk9SKCJGYWlsZWQgdG8gc2V0IEVHTCBBUEkoJWQpLiIsIGVnbEdldEVycm9yKCkpOworICAgICAg
ICB0ZXJtaW5hdGVFR0xEaXNwbGF5KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9Cit9CisKK3Zv
aWQgUGxhdGZvcm1EaXNwbGF5Ojp0ZXJtaW5hdGVFR0xEaXNwbGF5KCkKK3sKKyAgICBpZiAobV9l
Z2xEaXNwbGF5ID09IEVHTF9OT19ESVNQTEFZKQorICAgICAgICByZXR1cm47CisgICAgZWdsVGVy
bWluYXRlKG1fZWdsRGlzcGxheSk7CisgICAgbV9lZ2xEaXNwbGF5ID0gRUdMX05PX0RJU1BMQVk7
Cit9CisjZW5kaWYgLy8gVVNFKEVHTCkKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuaAppbmRl
eCAyMzEyNzBmLi4xOGE2NzljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuaApAQCAtMjksMTMgKzI5LDE3IEBACiAjaW5jbHVkZSA8
d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL1R5cGVDYXN0cy5oPgogCisjaWYgVVNF
KEVHTCkKK3R5cGVkZWYgdm9pZCAqRUdMRGlzcGxheTsKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIFBsYXRmb3JtRGlzcGxheSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoUGxhdGZvcm1EaXNwbGF5KTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAg
ICAgc3RhdGljIFBsYXRmb3JtRGlzcGxheSYgc2hhcmVkRGlzcGxheSgpOwotICAgIHZpcnR1YWwg
flBsYXRmb3JtRGlzcGxheSgpID0gZGVmYXVsdDsKKyAgICB2aXJ0dWFsIH5QbGF0Zm9ybURpc3Bs
YXkoKTsKIAogICAgIGVudW0gY2xhc3MgVHlwZSB7CiAjaWYgUExBVEZPUk0oWDExKQpAQCAtNDgs
MTEgKzUyLDI3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgPSAw
OwogCisjaWYgVVNFKEVHTCkKKyAgICBFR0xEaXNwbGF5IGVnbERpc3BsYXkoKSBjb25zdDsKKyNl
bmRpZgorCiBwcm90ZWN0ZWQ6Ci0gICAgUGxhdGZvcm1EaXNwbGF5KCkgPSBkZWZhdWx0OworICAg
IFBsYXRmb3JtRGlzcGxheSgpOworCisjaWYgVVNFKEVHTCkKKyAgICB2aXJ0dWFsIHZvaWQgaW5p
dGlhbGl6ZUVHTERpc3BsYXkoKTsKKworICAgIEVHTERpc3BsYXkgbV9lZ2xEaXNwbGF5OworI2Vu
ZGlmCiAKIHByaXZhdGU6CiAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybURpc3Bs
YXk+IGNyZWF0ZVBsYXRmb3JtRGlzcGxheSgpOworCisjaWYgVVNFKEVHTCkKKyAgICB2b2lkIHRl
cm1pbmF0ZUVHTERpc3BsYXkoKTsKKworICAgIGJvb2wgbV9lZ2xEaXNwbGF5SW5pdGlhbGl6ZWQg
eyBmYWxzZSB9OworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuY3Bw
CmluZGV4IDg5Yjk2MTIuLjc3N2NjZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuY3BwCkBAIC0yMiw2ICsyMiw3IEBACiAj
aWYgVVNFKEVHTCkKIAogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dDNELmgiCisjaW5jbHVkZSAi
UGxhdGZvcm1EaXNwbGF5LmgiCiAKICNpZiBVU0UoQ0FJUk8pCiAjaW5jbHVkZSA8Y2Fpcm8uaD4K
QEAgLTM4LDEwICszOSw2IEBACiAjaW5jbHVkZSAiUGxhdGZvcm1EaXNwbGF5WDExLmgiCiAjZW5k
aWYKIAotI2lmIFBMQVRGT1JNKFdBWUxBTkQpCi0jaW5jbHVkZSAiUGxhdGZvcm1EaXNwbGF5V2F5
bGFuZC5oIgotI2VuZGlmCi0KICNpZiBFTkFCTEUoQUNDRUxFUkFURURfMkRfQ0FOVkFTKQogLy8g
Y2Fpcm8tZ2wuaCBpbmNsdWRlcyBzb21lIGRlZmluaXRpb25zIGZyb20gR0xYIHRoYXQgY29uZmxp
Y3Qgd2l0aAogLy8gdGhlIG9uZXMgcHJvdmlkZWQgYnkgdXMuIFNpbmNlIEdMQ29udGV4dEVHTCBk
b2Vzbid0IHVzZSBhbnkgR0xYCkBAIC01MiwzNCArNDksOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLXN0YXRpYyBFR0xEaXNwbGF5IGdTaGFyZWRFR0xEaXNwbGF5ID0gRUdMX05PX0RJU1BM
QVk7Ci0KLSNpZiBVU0UoT1BFTkdMX0VTXzIpCi1zdGF0aWMgY29uc3QgRUdMZW51bSBnR0xBUEkg
PSBFR0xfT1BFTkdMX0VTX0FQSTsKLSNlbHNlCi1zdGF0aWMgY29uc3QgRUdMZW51bSBnR0xBUEkg
PSBFR0xfT1BFTkdMX0FQSTsKLSNlbmRpZgotCiBzdGF0aWMgRUdMRGlzcGxheSBzaGFyZWRFR0xE
aXNwbGF5KCkKIHsKLSAgICBzdGF0aWMgYm9vbCBpbml0aWFsaXplZCA9IGZhbHNlOwotICAgIGlm
ICghaW5pdGlhbGl6ZWQpIHsKLSAgICAgICAgaW5pdGlhbGl6ZWQgPSB0cnVlOwotCi0jaWYgUExB
VEZPUk0oV0FZTEFORCkKLSAgICAgICAgaWYgKGlzPFBsYXRmb3JtRGlzcGxheVdheWxhbmQ+KFBs
YXRmb3JtRGlzcGxheTo6c2hhcmVkRGlzcGxheSgpKSkKLSAgICAgICAgICAgIGdTaGFyZWRFR0xE
aXNwbGF5ID0gZWdsR2V0RGlzcGxheShkb3duY2FzdDxQbGF0Zm9ybURpc3BsYXlXYXlsYW5kPihQ
bGF0Zm9ybURpc3BsYXk6OnNoYXJlZERpc3BsYXkoKSkubmF0aXZlKCkpOwotICAgICAgICBlbHNl
IC8vIE5vdGUgdGhhdCB0aGlzIGJyYW5jaCBjb250aW51dGVzIG91dHNpZGUgdGhpcyAjaWYtZ3Vh
cmRlZCBzZWdtZW50LgotI2VuZGlmCi0jaWYgUExBVEZPUk0oWDExKQotICAgICAgICAgICAgZ1No
YXJlZEVHTERpc3BsYXkgPSBlZ2xHZXREaXNwbGF5KGRvd25jYXN0PFBsYXRmb3JtRGlzcGxheVgx
MT4oUGxhdGZvcm1EaXNwbGF5OjpzaGFyZWREaXNwbGF5KCkpLm5hdGl2ZSgpKTsKLSNlbHNlCi0g
ICAgICAgICAgICBnU2hhcmVkRUdMRGlzcGxheSA9IGVnbEdldERpc3BsYXkoRUdMX0RFRkFVTFRf
RElTUExBWSk7Ci0jZW5kaWYKLSAgICAgICAgaWYgKGdTaGFyZWRFR0xEaXNwbGF5ICE9IEVHTF9O
T19ESVNQTEFZICYmICghZWdsSW5pdGlhbGl6ZShnU2hhcmVkRUdMRGlzcGxheSwgMCwgMCkgfHwg
IWVnbEJpbmRBUEkoZ0dMQVBJKSkpCi0gICAgICAgICAgICBnU2hhcmVkRUdMRGlzcGxheSA9IEVH
TF9OT19ESVNQTEFZOwotICAgIH0KLSAgICByZXR1cm4gZ1NoYXJlZEVHTERpc3BsYXk7CisgICAg
cmV0dXJuIFBsYXRmb3JtRGlzcGxheTo6c2hhcmVkRGlzcGxheSgpLmVnbERpc3BsYXkoKTsKIH0K
IAogc3RhdGljIGNvbnN0IEVHTGludCBnQ29udGV4dEF0dHJpYnV0ZXNbXSA9IHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HTERlZnMuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HTERlZnMuaAppbmRleCBhMDkx
ZjEzLi45YTJjMmZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9vcGVuZ2wvR0xEZWZzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
b3BlbmdsL0dMRGVmcy5oCkBAIC01NywyMiArNTcsMTQgQEAgdHlwZWRlZiB1aW50MzJfdCBQbGF0
Zm9ybUJ1ZmZlckhhbmRsZTsKIAogI2lmIFVTRShHTFgpCiB0eXBlZGVmIEdMWENvbnRleHQgUGxh
dGZvcm1Db250ZXh0OwotdHlwZWRlZiBEaXNwbGF5KiBQbGF0Zm9ybURpc3BsYXk7CiB0eXBlZGVm
IEdMWEZCQ29uZmlnIFBsYXRmb3JtU3VyZmFjZUNvbmZpZzsKIHR5cGVkZWYgR0xYRHJhd2FibGUg
UGxhdGZvcm1EcmF3YWJsZTsKICNlbGlmIFVTRShFR0wpCi0jaWYgVVNFKE9QRU5HTF9FU18yKQot
c3RhdGljIGNvbnN0IEVHTGVudW0gZWdsQVBJVmVyc2lvbiA9IEVHTF9PUEVOR0xfRVNfQVBJOwot
I2Vsc2UKLXN0YXRpYyBjb25zdCBFR0xlbnVtIGVnbEFQSVZlcnNpb24gPSBFR0xfT1BFTkdMX0FQ
STsKLSNlbmRpZgogdHlwZWRlZiBFR0xDb250ZXh0IFBsYXRmb3JtQ29udGV4dDsKLXR5cGVkZWYg
RUdMRGlzcGxheSBQbGF0Zm9ybURpc3BsYXk7CiB0eXBlZGVmIEVHTENvbmZpZyBQbGF0Zm9ybVN1
cmZhY2VDb25maWc7CiB0eXBlZGVmIEVHTFN1cmZhY2UgUGxhdGZvcm1EcmF3YWJsZTsKICNlbHNl
CiB0eXBlZGVmIHZvaWQqIFBsYXRmb3JtQ29udGV4dDsKLXR5cGVkZWYgdm9pZCogUGxhdGZvcm1E
aXNwbGF5OwogdHlwZWRlZiB2b2lkKiBQbGF0Zm9ybVN1cmZhY2VDb25maWc7CiB0eXBlZGVmIHZv
aWQqIFBsYXRmb3JtRHJhd2FibGU7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HTFBsYXRmb3JtU3VyZmFjZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xQbGF0Zm9ybVN1cmZhY2UuY3BwCmlu
ZGV4IDRmMDNlZjYuLmE0OWMzZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL29wZW5nbC9HTFBsYXRmb3JtU3VyZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1TdXJmYWNlLmNwcApAQCAtNjEs
OCArNjEsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8R0xQbGF0Zm9ybVN1cmZhY2U+IEdMUGxhdGZvcm1T
dXJmYWNlOjpjcmVhdGVPZmZTY3JlZW5TdXJmYWNlKFN1cgogfQogCiBHTFBsYXRmb3JtU3VyZmFj
ZTo6R0xQbGF0Zm9ybVN1cmZhY2UoU3VyZmFjZUF0dHJpYnV0ZXMpCi0gICAgOiBtX3NoYXJlZERp
c3BsYXkoMCkKLSAgICAsIG1fZHJhd2FibGUoMCkKKyAgICA6IG1fZHJhd2FibGUoMCkKICAgICAs
IG1fYnVmZmVySGFuZGxlKDApCiB7CiB9CkBAIC04OCwxMSArODcsNiBAQCBjb25zdCBJbnRSZWN0
JiBHTFBsYXRmb3JtU3VyZmFjZTo6Z2VvbWV0cnkoKSBjb25zdAogICAgIHJldHVybiBtX3JlY3Q7
CiB9CiAKLVBsYXRmb3JtRGlzcGxheSBHTFBsYXRmb3JtU3VyZmFjZTo6c2hhcmVkRGlzcGxheSgp
IGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fc2hhcmVkRGlzcGxheTsKLX0KLQogUGxhdGZvcm1TdXJm
YWNlQ29uZmlnIEdMUGxhdGZvcm1TdXJmYWNlOjpjb25maWd1cmF0aW9uKCkKIHsKICAgICByZXR1
cm4gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5n
bC9HTFBsYXRmb3JtU3VyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
b3BlbmdsL0dMUGxhdGZvcm1TdXJmYWNlLmgKaW5kZXggZjVlNGY1My4uZjE0MWQzNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1T
dXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dM
UGxhdGZvcm1TdXJmYWNlLmgKQEAgLTU5LDggKzU5LDYgQEAgcHVibGljOgogCiAgICAgUGxhdGZv
cm1EcmF3YWJsZSBkcmF3YWJsZSgpIGNvbnN0OwogCi0gICAgUGxhdGZvcm1EaXNwbGF5IHNoYXJl
ZERpc3BsYXkoKSBjb25zdDsKLQogICAgIHZpcnR1YWwgU3VyZmFjZUF0dHJpYnV0ZXMgYXR0cmli
dXRlcygpIGNvbnN0OwogCiAgICAgdmlydHVhbCB2b2lkIHN3YXBCdWZmZXJzKCk7CkBAIC04NCw3
ICs4Miw2IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBHTFBsYXRmb3JtU3VyZmFjZShTdXJm
YWNlQXR0cmlidXRlcyk7CiAKLSAgICBQbGF0Zm9ybURpc3BsYXkgbV9zaGFyZWREaXNwbGF5Owog
ICAgIFBsYXRmb3JtRHJhd2FibGUgbV9kcmF3YWJsZTsKICAgICBQbGF0Zm9ybUJ1ZmZlckhhbmRs
ZSBtX2J1ZmZlckhhbmRsZTsKICAgICBJbnRSZWN0IG1fcmVjdDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2VnbC9FR0xDb25maWdTZWxlY3Rv
ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWdsL0VHTENv
bmZpZ1NlbGVjdG9yLmgKaW5kZXggMjcyY2JkYi4uMTM5YzBiNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWdsL0VHTENvbmZpZ1NlbGVjdG9y
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWdsL0VH
TENvbmZpZ1NlbGVjdG9yLmgKQEAgLTYxLDcgKzYxLDcgQEAgcHJvdGVjdGVkOgogICAgIEVHTENv
bmZpZyBtX3BpeG1hcEZCQ29uZmlnOwogICAgIEVHTENvbmZpZyBtX3N1cmZhY2VDb250ZXh0RkJD
b25maWc7CiAgICAgdW5zaWduZWQgbV9hdHRyaWJ1dGVzIDogMzsKLSAgICBQbGF0Zm9ybURpc3Bs
YXkgbV9zaGFyZWREaXNwbGF5OworICAgIEVHTERpc3BsYXkgbV9zaGFyZWREaXNwbGF5OwogfTsK
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFj
ZXMvZWdsL0VHTENvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
c3VyZmFjZXMvZWdsL0VHTENvbnRleHQuY3BwCmluZGV4IDYyYWY0NDMuLjFmZTdhMzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2VnbC9FR0xD
b250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNl
cy9lZ2wvRUdMQ29udGV4dC5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIFVTRShFR0wpCiAK
KyNpbmNsdWRlICJQbGF0Zm9ybURpc3BsYXkuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNzIsMTIgKzczLDcgQEAgYm9vbCBFR0xP
ZmZTY3JlZW5Db250ZXh0Ojppbml0aWFsaXplKEdMUGxhdGZvcm1TdXJmYWNlKiBzdXJmYWNlLCBQ
bGF0Zm9ybUNvbnRleHQKICAgICBpZiAoIXN1cmZhY2UpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAotICAgIGlmICghZWdsQmluZEFQSShlZ2xBUElWZXJzaW9uKSkgewotICAgICAgICBMT0dfRVJS
T1IoIkZhaWxlZCB0byBzZXQgRUdMIEFQSSglZCkuIiwgZWdsR2V0RXJyb3IoKSk7Ci0gICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICBtX2Rpc3BsYXkgPSBzdXJmYWNlLT5zaGFyZWRE
aXNwbGF5KCk7CisgICAgbV9kaXNwbGF5ID0gUGxhdGZvcm1EaXNwbGF5OjpzaGFyZWREaXNwbGF5
KCkuZWdsRGlzcGxheSgpOwogICAgIGlmICghbV9kaXNwbGF5KQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZh
Y2VzL2VnbC9FR0xIZWxwZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
c3VyZmFjZXMvZWdsL0VHTEhlbHBlci5jcHAKaW5kZXggOWFlZDlhZi4uYTAxNWU4MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWdsL0VHTEhl
bHBlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMv
ZWdsL0VHTEhlbHBlci5jcHAKQEAgLTI4LDg5ICsyOCwyMiBAQAogCiAjaWYgVVNFKEVHTCkKIAor
I2luY2x1ZGUgIlBsYXRmb3JtRGlzcGxheS5oIgogI2luY2x1ZGUgPG9wZW5nbC9HTFBsYXRmb3Jt
Q29udGV4dC5oPgogCi0jaWYgUExBVEZPUk0oWDExKQotI2luY2x1ZGUgIlgxMUhlbHBlci5oIgot
I2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotI2lmIFBMQVRGT1JNKFgxMSkKLXR5cGVk
ZWYgWDExSGVscGVyIE5hdGl2ZVdyYXBwZXI7Ci10eXBlZGVmIERpc3BsYXkgTmF0aXZlU2hhcmVk
RGlzcGxheTsKLSNlbHNlCi10eXBlZGVmIHZvaWQgTmF0aXZlU2hhcmVkRGlzcGxheTsKLSNlbmRp
ZgotCiBzdGF0aWMgUEZORUdMQ1JFQVRFSU1BR0VLSFJQUk9DIGVnbENyZWF0ZUltYWdlS0hSID0g
MDsKIHN0YXRpYyBQRk5FR0xERVNUUk9ZSU1BR0VLSFJQUk9DIGVnbERlc3Ryb3lJbWFnZUtIUiA9
IDA7CiBzdGF0aWMgUEZOR0xFR0xJTUFHRVRBUkdFVFRFWFRVUkUyRE9FU1BST0MgZWdsSW1hZ2VU
YXJnZXRUZXh0dXJlMkRPRVMgPSAwOwogCi1zdHJ1Y3QgRUdMRGlzcGxheUNvbm5lY3Rpb24gewot
Ci0gICAgRUdMRGlzcGxheUNvbm5lY3Rpb24oTmF0aXZlU2hhcmVkRGlzcGxheSogZGlzcGxheSA9
IDApCi0gICAgewotICAgICAgICBpZiAoZGlzcGxheSkKLSAgICAgICAgICAgIG1fZWdsRGlzcGxh
eSA9IGVnbEdldERpc3BsYXkocmVpbnRlcnByZXRfY2FzdDxFR0xOYXRpdmVEaXNwbGF5VHlwZT4o
ZGlzcGxheSkpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBtX2VnbERpc3BsYXkgPSBlZ2xH
ZXREaXNwbGF5KEVHTF9ERUZBVUxUX0RJU1BMQVkpOwotCi0gICAgICAgIGlmIChtX2VnbERpc3Bs
YXkgPT0gRUdMX05PX0RJU1BMQVkpIHsKLSAgICAgICAgICAgIExPR19FUlJPUigiRUdMRGlzcGxh
eSBJbml0aWFsaXphdGlvbiBmYWlsZWQuIik7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAg
IH0KLQotICAgICAgICBFR0xCb29sZWFuIHN1Y2Nlc3M7Ci0gICAgICAgIHN1Y2Nlc3MgPSBlZ2xJ
bml0aWFsaXplKG1fZWdsRGlzcGxheSwgMCwgMCk7Ci0KLSAgICAgICAgaWYgKHN1Y2Nlc3MgIT0g
RUdMX1RSVUUpIHsKLSAgICAgICAgICAgIExPR19FUlJPUigiRUdMSW5pdGlhbGl6YXRpb24gZmFp
bGVkLiIpOwotICAgICAgICAgICAgdGVybWluYXRlKCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0g
ICAgICAgIH0KLQotICAgICAgICBzdWNjZXNzID0gZWdsQmluZEFQSShlZ2xBUElWZXJzaW9uKTsK
LQotICAgICAgICBpZiAoc3VjY2VzcyAhPSBFR0xfVFJVRSkgewotICAgICAgICAgICAgTE9HX0VS
Uk9SKCJGYWlsZWQgdG8gc2V0IEVHTCBBUEkoJWQpLiIsIGVnbEdldEVycm9yKCkpOwotICAgICAg
ICAgICAgdGVybWluYXRlKCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICB9
Ci0KLSAgICB+RUdMRGlzcGxheUNvbm5lY3Rpb24oKQotICAgIHsKLSAgICAgICAgdGVybWluYXRl
KCk7Ci0gICAgfQotCi0gICAgRUdMRGlzcGxheSBkaXNwbGF5KCkgeyByZXR1cm4gbV9lZ2xEaXNw
bGF5OyB9Ci0KLXByaXZhdGU6Ci0gICAgdm9pZCB0ZXJtaW5hdGUoKQotICAgIHsKLSAgICAgICAg
aWYgKG1fZWdsRGlzcGxheSA9PSBFR0xfTk9fRElTUExBWSkKLSAgICAgICAgICAgIHJldHVybjsK
LQotICAgICAgICBlZ2xUZXJtaW5hdGUobV9lZ2xEaXNwbGF5KTsKLSAgICAgICAgbV9lZ2xEaXNw
bGF5ID0gRUdMX05PX0RJU1BMQVk7Ci0gICAgfQotCi0gICAgRUdMRGlzcGxheSBtX2VnbERpc3Bs
YXk7Ci19OwotCi1QbGF0Zm9ybURpc3BsYXkgRUdMSGVscGVyOjplZ2xEaXNwbGF5KCkKK0VHTERp
c3BsYXkgRUdMSGVscGVyOjplZ2xEaXNwbGF5KCkKIHsKLSAgICAvLyBEaXNwbGF5IGNvbm5lY3Rp
b24gd2lsbCBvbmx5IGJlIGJyb2tlbiBhdCBwcm9ncmFtIHNodXRkb3duLgotI2lmIFBMQVRGT1JN
KFgxMSkKLSAgICBzdGF0aWMgRUdMRGlzcGxheUNvbm5lY3Rpb24gZGlzcGxheUNvbm5lY3Rpb24o
TmF0aXZlV3JhcHBlcjo6bmF0aXZlRGlzcGxheSgpKTsKLSNlbHNlCi0gICAgc3RhdGljIEVHTERp
c3BsYXlDb25uZWN0aW9uIGRpc3BsYXlDb25uZWN0aW9uOwotI2VuZGlmCi0gICAgcmV0dXJuIGRp
c3BsYXlDb25uZWN0aW9uLmRpc3BsYXkoKTsKKyAgICBQbGF0Zm9ybURpc3BsYXk6OnNoYXJlZERp
c3BsYXkoKS5lZ2xEaXNwbGF5KCk7CiB9CiAKLVBsYXRmb3JtRGlzcGxheSBFR0xIZWxwZXI6OmN1
cnJlbnREaXNwbGF5KCkKK0VHTERpc3BsYXkgRUdMSGVscGVyOjpjdXJyZW50RGlzcGxheSgpCiB7
CiAgICAgRUdMRGlzcGxheSBkaXNwbGF5ID0gZWdsR2V0Q3VycmVudERpc3BsYXkoKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWdsL0VH
TEhlbHBlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWds
L0VHTEhlbHBlci5oCmluZGV4IGYyNDU4ZmIuLjg4MjIyYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2VnbC9FR0xIZWxwZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9lZ2wvRUdMSGVscGVyLmgK
QEAgLTM0LDggKzM0LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBFR0xIZWxwZXIg
ewogcHVibGljOgotICAgIHN0YXRpYyBQbGF0Zm9ybURpc3BsYXkgZWdsRGlzcGxheSgpOwotICAg
IHN0YXRpYyBQbGF0Zm9ybURpc3BsYXkgY3VycmVudERpc3BsYXkoKTsKKyAgICBzdGF0aWMgRUdM
RGlzcGxheSBlZ2xEaXNwbGF5KCk7CisgICAgc3RhdGljIEVHTERpc3BsYXkgY3VycmVudERpc3Bs
YXkoKTsKICAgICBzdGF0aWMgdm9pZCByZXNvbHZlRUdMQmluZGluZ3MoKTsKICAgICBzdGF0aWMg
dm9pZCBjcmVhdGVFR0xJbWFnZShFR0xJbWFnZUtIUiosIEdMZW51bSwgY29uc3QgRUdMQ2xpZW50
QnVmZmVyLCBjb25zdCBFR0xpbnQqID0gMCk7CiAgICAgc3RhdGljIHZvaWQgZGVzdHJveUVHTElt
YWdlKGNvbnN0IEVHTEltYWdlS0hSKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3N1cmZhY2VzL2VnbC9FR0xTdXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2VnbC9FR0xTdXJmYWNlLmNwcAppbmRleCA2YzY5
NTAyLi40MjM0ZWViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9zdXJmYWNlcy9lZ2wvRUdMU3VyZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWdsL0VHTFN1cmZhY2UuY3BwCkBAIC03NSw5ICs3NSw3IEBA
IHN0ZDo6dW5pcXVlX3B0cjxHTFRyYW5zcG9ydFN1cmZhY2VDbGllbnQ+IEVHTFRyYW5zcG9ydFN1
cmZhY2U6OmNyZWF0ZVRyYW5zcG9ydFN1CiBFR0xUcmFuc3BvcnRTdXJmYWNlOjpFR0xUcmFuc3Bv
cnRTdXJmYWNlKGNvbnN0IEludFNpemUmIHNpemUsIFN1cmZhY2VBdHRyaWJ1dGVzIGF0dHJpYnV0
ZXMpCiAgICAgOiBHTFRyYW5zcG9ydFN1cmZhY2Uoc2l6ZSwgYXR0cmlidXRlcykKIHsKLSAgICBt
X3NoYXJlZERpc3BsYXkgPSBFR0xIZWxwZXI6OmVnbERpc3BsYXkoKTsKLQotICAgIGlmIChtX3No
YXJlZERpc3BsYXkgPT0gRUdMX05PX0RJU1BMQVkpCisgICAgaWYgKEVHTEhlbHBlcjo6ZWdsRGlz
cGxheSgpID09IEVHTF9OT19ESVNQTEFZKQogICAgICAgICByZXR1cm47CiAKICAgICBtX2NvbmZp
Z1NlbGVjdG9yID0gc3RkOjptYWtlX3VuaXF1ZTxFR0xDb25maWdTZWxlY3Rvcj4oYXR0cmlidXRl
cyk7CkBAIC05NCwxMyArOTIsMTMgQEAgRUdMVHJhbnNwb3J0U3VyZmFjZTo6fkVHTFRyYW5zcG9y
dFN1cmZhY2UoKQogCiB2b2lkIEVHTFRyYW5zcG9ydFN1cmZhY2U6OmRlc3Ryb3koKQogewotICAg
IGlmIChtX2RyYXdhYmxlID09IEVHTF9OT19TVVJGQUNFIHx8IG1fc2hhcmVkRGlzcGxheSA9PSBF
R0xfTk9fRElTUExBWSkKKyAgICBpZiAobV9kcmF3YWJsZSA9PSBFR0xfTk9fU1VSRkFDRSB8fCBF
R0xIZWxwZXI6OmVnbERpc3BsYXkoKSA9PSBFR0xfTk9fRElTUExBWSkKICAgICAgICAgcmV0dXJu
OwogCiAgICAgR0xUcmFuc3BvcnRTdXJmYWNlOjpkZXN0cm95KCk7CiAKICAgICBpZiAobV9kcmF3
YWJsZSkgewotICAgICAgICBlZ2xEZXN0cm95U3VyZmFjZShtX3NoYXJlZERpc3BsYXksIG1fZHJh
d2FibGUpOworICAgICAgICBlZ2xEZXN0cm95U3VyZmFjZShFR0xIZWxwZXI6OmVnbERpc3BsYXko
KSwgbV9kcmF3YWJsZSk7CiAgICAgICAgIG1fZHJhd2FibGUgPSBFR0xfTk9fU1VSRkFDRTsKICAg
ICB9CiAKQEAgLTEyNSw5ICsxMjMsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8R0xQbGF0Zm9ybVN1cmZh
Y2U+IEVHTE9mZlNjcmVlblN1cmZhY2U6OmNyZWF0ZU9mZlNjcmVlblN1cmZhY2UoUwogRUdMT2Zm
U2NyZWVuU3VyZmFjZTo6RUdMT2ZmU2NyZWVuU3VyZmFjZShTdXJmYWNlQXR0cmlidXRlcyBzdXJm
YWNlQXR0cmlidXRlcykKICAgICA6IEdMUGxhdGZvcm1TdXJmYWNlKHN1cmZhY2VBdHRyaWJ1dGVz
KQogewotICAgIG1fc2hhcmVkRGlzcGxheSA9IEVHTEhlbHBlcjo6ZWdsRGlzcGxheSgpOwotCi0g
ICAgaWYgKG1fc2hhcmVkRGlzcGxheSA9PSBFR0xfTk9fRElTUExBWSkKKyAgICBpZiAoRUdMSGVs
cGVyOjplZ2xEaXNwbGF5KCkgPT0gRUdMX05PX0RJU1BMQVkpCiAgICAgICAgIHJldHVybjsKIAog
ICAgIG1fY29uZmlnU2VsZWN0b3IgPSBzdGQ6Om1ha2VfdW5pcXVlPEVHTENvbmZpZ1NlbGVjdG9y
PihzdXJmYWNlQXR0cmlidXRlcyk7CkBAIC0xNDksMTEgKzE0NSwxMSBAQCBQbGF0Zm9ybVN1cmZh
Y2VDb25maWcgRUdMT2ZmU2NyZWVuU3VyZmFjZTo6Y29uZmlndXJhdGlvbigpCiAKIHZvaWQgRUdM
T2ZmU2NyZWVuU3VyZmFjZTo6ZGVzdHJveSgpCiB7Ci0gICAgaWYgKG1fc2hhcmVkRGlzcGxheSA9
PSBFR0xfTk9fRElTUExBWSB8fCBtX2RyYXdhYmxlID09IEVHTF9OT19TVVJGQUNFKQorICAgIGlm
IChFR0xIZWxwZXI6OmVnbERpc3BsYXkoKSA9PSBFR0xfTk9fRElTUExBWSB8fCBtX2RyYXdhYmxl
ID09IEVHTF9OT19TVVJGQUNFKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAobV9kcmF3YWJs
ZSkgewotICAgICAgICBlZ2xEZXN0cm95U3VyZmFjZShtX3NoYXJlZERpc3BsYXksIG1fZHJhd2Fi
bGUpOworICAgICAgICBlZ2xEZXN0cm95U3VyZmFjZShFR0xIZWxwZXI6OmVnbERpc3BsYXkoKSwg
bV9kcmF3YWJsZSk7CiAgICAgICAgIG1fZHJhd2FibGUgPSBFR0xfTk9fU1VSRkFDRTsKICAgICB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2Vz
L2VnbC9FR0xYU3VyZmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9z
dXJmYWNlcy9lZ2wvRUdMWFN1cmZhY2UuY3BwCmluZGV4IDc5MmE5OGIuLjYxOGZkYzMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2VnbC9FR0xY
U3VyZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFj
ZXMvZWdsL0VHTFhTdXJmYWNlLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkVHTENv
bmZpZ1NlbGVjdG9yLmgiCiAjaW5jbHVkZSAiRUdMSGVscGVyLmgiCiAjaW5jbHVkZSAiR0xQbGF0
Zm9ybUNvbnRleHQuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybURpc3BsYXkuaCIKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCkBAIC01OSw3ICs2MCw3IEBAIEVHTFdpbmRvd1RyYW5zcG9ydFN1cmZhY2U6
OkVHTFdpbmRvd1RyYW5zcG9ydFN1cmZhY2UoY29uc3QgSW50U2l6ZSYgc2l6ZSwgR0xQbGF0CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBtX2RyYXdhYmxlID0gZWdsQ3JlYXRlV2luZG93
U3VyZmFjZShtX3NoYXJlZERpc3BsYXksIG1fY29uZmlnU2VsZWN0b3ItPnN1cmZhY2VDb250ZXh0
Q29uZmlnKCksIHN0YXRpY19jYXN0PEVHTE5hdGl2ZVdpbmRvd1R5cGU+KG1fYnVmZmVySGFuZGxl
KSwgMCk7CisgICAgbV9kcmF3YWJsZSA9IGVnbENyZWF0ZVdpbmRvd1N1cmZhY2UoUGxhdGZvcm1E
aXNwbGF5OjpzaGFyZWREaXNwbGF5KCkuZWdsRGlzcGxheSgpLCBtX2NvbmZpZ1NlbGVjdG9yLT5z
dXJmYWNlQ29udGV4dENvbmZpZygpLCBzdGF0aWNfY2FzdDxFR0xOYXRpdmVXaW5kb3dUeXBlPiht
X2J1ZmZlckhhbmRsZSksIDApOwogCiAgICAgaWYgKG1fZHJhd2FibGUgPT0gRUdMX05PX1NVUkZB
Q0UpIHsKICAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQgdG8gY3JlYXRlIEVHTCBzdXJmYWNlKCVk
KS4iLCBlZ2xHZXRFcnJvcigpKTsKQEAgLTczLDcgKzc0LDcgQEAgRUdMV2luZG93VHJhbnNwb3J0
U3VyZmFjZTo6fkVHTFdpbmRvd1RyYW5zcG9ydFN1cmZhY2UoKQogCiB2b2lkIEVHTFdpbmRvd1Ry
YW5zcG9ydFN1cmZhY2U6OnN3YXBCdWZmZXJzKCkKIHsKLSAgICBpZiAoIWVnbFN3YXBCdWZmZXJz
KG1fc2hhcmVkRGlzcGxheSwgbV9kcmF3YWJsZSkpCisgICAgaWYgKCFlZ2xTd2FwQnVmZmVycyhQ
bGF0Zm9ybURpc3BsYXk6OnNoYXJlZERpc3BsYXkoKS5lZ2xEaXNwbGF5KCksIG1fZHJhd2FibGUp
KQogICAgICAgICBMT0dfRVJST1IoIkZhaWxlZCB0byBTd2FwQnVmZmVycyglZCkuIiwgZWdsR2V0
RXJyb3IoKSk7CiB9CiAKQEAgLTExNiw3ICsxMTcsNyBAQCBFR0xQaXhtYXBTdXJmYWNlOjpFR0xQ
aXhtYXBTdXJmYWNlKEdMUGxhdGZvcm1TdXJmYWNlOjpTdXJmYWNlQXR0cmlidXRlcyBzdXJmYWNl
QQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgbV9kcmF3YWJsZSA9IGVnbENyZWF0ZVBp
eG1hcFN1cmZhY2UobV9zaGFyZWREaXNwbGF5LCBjb25maWcsIHN0YXRpY19jYXN0PEVHTE5hdGl2
ZVBpeG1hcFR5cGU+KG1fYnVmZmVySGFuZGxlKSwgMCk7CisgICAgbV9kcmF3YWJsZSA9IGVnbENy
ZWF0ZVBpeG1hcFN1cmZhY2UoUGxhdGZvcm1EaXNwbGF5OjpzaGFyZWREaXNwbGF5KCkuZWdsRGlz
cGxheSgpLCBjb25maWcsIHN0YXRpY19jYXN0PEVHTE5hdGl2ZVBpeG1hcFR5cGU+KG1fYnVmZmVy
SGFuZGxlKSwgMCk7CiAKICAgICBpZiAobV9kcmF3YWJsZSA9PSBFR0xfTk9fU1VSRkFDRSkgewog
ICAgICAgICBMT0dfRVJST1IoIkZhaWxlZCB0byBjcmVhdGUgRUdMIHN1cmZhY2UoJWQpLiIsIGVn
bEdldEVycm9yKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvc3VyZmFjZXMvZ2x4L0dMWENvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWENvbnRleHQuY3BwCmluZGV4IGY0MmQzYWYuLmU1ZjNj
YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2Vz
L2dseC9HTFhDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9zdXJmYWNlcy9nbHgvR0xYQ29udGV4dC5jcHAKQEAgLTYxLDcgKzYxLDcgQEAgYm9vbCBHTFhP
ZmZTY3JlZW5Db250ZXh0Ojppbml0aWFsaXplKEdMUGxhdGZvcm1TdXJmYWNlKiBzdXJmYWNlLCBQ
bGF0Zm9ybUNvbnRleHQKICAgICBpZiAoIXN1cmZhY2UpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAotICAgIERpc3BsYXkqIHgxMURpc3BsYXkgPSBzdXJmYWNlLT5zaGFyZWREaXNwbGF5KCk7Cisg
ICAgRGlzcGxheSogeDExRGlzcGxheSA9IFgxMUhlbHBlcjo6bmF0aXZlRGlzcGxheSgpOwogICAg
IGlmICgheDExRGlzcGxheSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYU3VyZmFjZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYU3Vy
ZmFjZS5jcHAKaW5kZXggMTZhOGUwMy4uOWY1ZTMzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWFN1cmZhY2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HTFhTdXJmYWNlLmNw
cApAQCAtNjQsNyArNjQsNiBAQCBzdGF0aWMgYm9vbCBpc01lc2FHTFgoKQogR0xYVHJhbnNwb3J0
U3VyZmFjZTo6R0xYVHJhbnNwb3J0U3VyZmFjZShjb25zdCBJbnRTaXplJiBzaXplLCBTdXJmYWNl
QXR0cmlidXRlcyBhdHRyaWJ1dGVzKQogICAgIDogR0xUcmFuc3BvcnRTdXJmYWNlKHNpemUsIGF0
dHJpYnV0ZXMpCiB7Ci0gICAgbV9zaGFyZWREaXNwbGF5ID0gWDExSGVscGVyOjpuYXRpdmVEaXNw
bGF5KCk7CiAgICAgYXR0cmlidXRlcyB8PSBHTFBsYXRmb3JtU3VyZmFjZTo6RG91YmxlQnVmZmVy
ZWQ7CiAgICAgbV9jb25maWdTZWxlY3RvciA9IHN0ZDo6bWFrZV91bmlxdWU8R0xYQ29uZmlnU2Vs
ZWN0b3I+KGF0dHJpYnV0ZXMpOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxYVmlzdWFsSW5mbywgWDEx
RGVsZXRlcj4gdmlzSW5mbyhtX2NvbmZpZ1NlbGVjdG9yLT52aXN1YWxJbmZvKG1fY29uZmlnU2Vs
ZWN0b3ItPnN1cmZhY2VDb250ZXh0Q29uZmlnKCkpKTsKQEAgLTE0MSw4ICsxNDAsNiBAQCBHTFhP
ZmZTY3JlZW5TdXJmYWNlOjp+R0xYT2ZmU2NyZWVuU3VyZmFjZSgpCiAKIHZvaWQgR0xYT2ZmU2Ny
ZWVuU3VyZmFjZTo6aW5pdGlhbGl6ZShTdXJmYWNlQXR0cmlidXRlcyBhdHRyaWJ1dGVzKQogewot
ICAgIG1fc2hhcmVkRGlzcGxheSA9IFgxMUhlbHBlcjo6bmF0aXZlRGlzcGxheSgpOwotCiAgICAg
bV9jb25maWdTZWxlY3RvciA9IHN0ZDo6bWFrZV91bmlxdWU8R0xYQ29uZmlnU2VsZWN0b3I+KGF0
dHJpYnV0ZXMpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFhWaXN1YWxJbmZvLCBYMTFEZWxldGVy
PiB2aXN1YWxJbmZvKG1fY29uZmlnU2VsZWN0b3ItPnZpc3VhbEluZm8obV9jb25maWdTZWxlY3Rv
ci0+cGl4bWFwQ29udGV4dENvbmZpZygpKSk7CkBAIC0xNTMsNyArMTUwLDcgQEAgdm9pZCBHTFhP
ZmZTY3JlZW5TdXJmYWNlOjppbml0aWFsaXplKFN1cmZhY2VBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMp
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBtX2dseFBpeG1hcCA9IGdsWENyZWF0ZUdM
WFBpeG1hcChtX3NoYXJlZERpc3BsYXksIHZpc3VhbEluZm8uZ2V0KCksIG1fcGl4bWFwKTsKKyAg
ICBtX2dseFBpeG1hcCA9IGdsWENyZWF0ZUdMWFBpeG1hcChYMTFIZWxwZXI6Om5hdGl2ZURpc3Bs
YXkoKSwgdmlzdWFsSW5mby5nZXQoKSwgbV9waXhtYXApOwogCiAgICAgaWYgKCFtX2dseFBpeG1h
cCkgewogICAgICAgICBkZXN0cm95KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy93YXlsYW5kL1BsYXRmb3JtRGlzcGxheVdheWxhbmQuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2F5bGFuZC9QbGF0Zm9ybURpc3BsYXlXYXlsYW5k
LmNwcAppbmRleCAyN2Y2MWViLi5jY2JjMzVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93YXlsYW5kL1BsYXRmb3JtRGlzcGxheVdheWxhbmQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dheWxhbmQvUGxhdGZvcm1EaXNwbGF5
V2F5bGFuZC5jcHAKQEAgLTg3LDIwICs4Nyw5IEBAIFBsYXRmb3JtRGlzcGxheVdheWxhbmQ6OlBs
YXRmb3JtRGlzcGxheVdheWxhbmQoc3RydWN0IHdsX2Rpc3BsYXkqIHdsRGlzcGxheSkKICAgICB9
OwogCiAgICAgbV9lZ2xEaXNwbGF5ID0gZWdsR2V0RGlzcGxheShtX2Rpc3BsYXkpOwotICAgIGlm
IChtX2VnbERpc3BsYXkgPT0gRUdMX05PX0RJU1BMQVkpIHsKLSAgICAgICAgZ193YXJuaW5nKCJQ
bGF0Zm9ybURpc3BsYXlXYXlsYW5kIGluaXRpYWxpemF0aW9uOiBmYWlsZWQgdG8gYWNxdWlyZSBF
R0wgZGlzcGxheS4iKTsKKyAgICBQbGF0Zm9ybURpc3BsYXk6OmluaXRpYWxpemVFR0xEaXNwbGF5
KCk7CisgICAgaWYgKG1fZWdsRGlzcGxheSA9PSBFR0xfTk9fRElTUExBWSkKICAgICAgICAgcmV0
dXJuOwotICAgIH0KLQotICAgIGlmIChlZ2xJbml0aWFsaXplKG1fZWdsRGlzcGxheSwgMCwgMCkg
PT0gRUdMX0ZBTFNFKSB7Ci0gICAgICAgIGdfd2FybmluZygiUGxhdGZvcm1EaXNwbGF5V2F5bGFu
ZCBpbml0aWFsaXphdGlvbjogZmFpbGVkIHRvIGluaXRpYWxpemUgdGhlIEVHTCBkaXNwbGF5LiIp
OwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKGVnbEJpbmRBUEkoRUdMX09QRU5H
TF9FU19BUEkpID09IEVHTF9GQUxTRSkgewotICAgICAgICBnX3dhcm5pbmcoIlBsYXRmb3JtRGlz
cGxheVdheWxhbmQgaW5pdGlhbGl6YXRpb246IGZhaWxlZCB0byBzZXQgRUdMX09QRU5HTF9FU19B
UEkgYXMgdGhlIHJlbmRlcmluZyBBUEkuIik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9CiAKICAg
ICBFR0xpbnQgbnVtYmVyT2ZDb25maWdzOwogICAgIGlmICghZWdsQ2hvb3NlQ29uZmlnKG1fZWds
RGlzcGxheSwgY29uZmlnQXR0cmlidXRlcywgJm1fZWdsQ29uZmlnLCAxLCAmbnVtYmVyT2ZDb25m
aWdzKSB8fCBudW1iZXJPZkNvbmZpZ3MgIT0gMSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2F5bGFuZC9QbGF0Zm9ybURpc3BsYXlXYXlsYW5kLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93YXlsYW5kL1BsYXRmb3JtRGlzcGxheVdh
eWxhbmQuaAppbmRleCAxOTU4OWJlLi4xNTRmYmJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93YXlsYW5kL1BsYXRmb3JtRGlzcGxheVdheWxhbmQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93YXlsYW5kL1BsYXRmb3JtRGlzcGxh
eVdheWxhbmQuaApAQCAtNDcsNyArNDcsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+UGxhdGZv
cm1EaXNwbGF5V2F5bGFuZCgpOwogCiAgICAgc3RydWN0IHdsX2Rpc3BsYXkqIG5hdGl2ZSgpIGNv
bnN0IHsgcmV0dXJuIG1fZGlzcGxheTsgfQotICAgIEVHTERpc3BsYXkgZWdsRGlzcGxheSgpIGNv
bnN0IHsgcmV0dXJuIG1fZWdsRGlzcGxheTsgfQogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdheWxh
bmRTdXJmYWNlPiBjcmVhdGVTdXJmYWNlKGNvbnN0IEludFNpemUmLCBpbnQgd2lkZ2V0SUQpOwog
CkBAIC02OCw3ICs2Nyw2IEBAIHByaXZhdGU6CiAgICAgc3RydWN0IHdsX2NvbXBvc2l0b3IqIG1f
Y29tcG9zaXRvcjsKICAgICBzdHJ1Y3Qgd2xfd2Via2l0Z3RrKiBtX3dlYmtpdGd0azsKIAotICAg
IEVHTERpc3BsYXkgbV9lZ2xEaXNwbGF5OwogICAgIEVHTENvbmZpZyBtX2VnbENvbmZpZzsKICAg
ICBib29sIG1fZWdsQ29uZmlnQ2hvc2VuOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3gxMS9QbGF0Zm9ybURpc3BsYXlYMTEuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MveDExL1BsYXRmb3JtRGlzcGxheVgxMS5jcHAKaW5kZXgg
OGFiMDIxYi4uOTdjODcyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MveDExL1BsYXRmb3JtRGlzcGxheVgxMS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MveDExL1BsYXRmb3JtRGlzcGxheVgxMS5jcHAKQEAgLTI5LDYgKzI5LDEw
IEBACiAjaWYgUExBVEZPUk0oWDExKQogI2luY2x1ZGUgPFgxMS9YbGliLmg+CiAKKyNpZiBVU0Uo
RUdMKQorI2luY2x1ZGUgPEVHTC9lZ2wuaD4KKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIFBsYXRmb3JtRGlzcGxheVgxMTo6UGxhdGZvcm1EaXNwbGF5WDExKCkKQEAgLTQ5LDYgKzUz
LDE0IEBAIFBsYXRmb3JtRGlzcGxheVgxMTo6flBsYXRmb3JtRGlzcGxheVgxMSgpCiAgICAgICAg
IFhDbG9zZURpc3BsYXkobV9kaXNwbGF5KTsKIH0KIAorI2lmIFVTRShFR0wpCit2b2lkIFBsYXRm
b3JtRGlzcGxheVgxMTo6aW5pdGlhbGl6ZUVHTERpc3BsYXkoKQoreworICAgIG1fZWdsRGlzcGxh
eSA9IGVnbEdldERpc3BsYXkobV9kaXNwbGF5KTsKKyAgICBQbGF0Zm9ybURpc3BsYXk6OmluaXRp
YWxpemVFR0xEaXNwbGF5KCk7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQog
CiAjZW5kaWYgLy8gUExBVEZPUk0oWDExKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MveDExL1BsYXRmb3JtRGlzcGxheVgxMS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MveDExL1BsYXRmb3JtRGlzcGxheVgxMS5oCmluZGV4IDM0N2Q4YWUu
LjA3YzhiNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3gx
MS9QbGF0Zm9ybURpc3BsYXlYMTEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy94MTEvUGxhdGZvcm1EaXNwbGF5WDExLmgKQEAgLTQ1LDYgKzQ1LDEwIEBAIHB1YmxpYzoK
IHByaXZhdGU6CiAgICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biBQbGF0Zm9ybURpc3BsYXk6OlR5cGU6OlgxMTsgfQogCisjaWYgVVNFKEVHTCkKKyAgICB2b2lk
IGluaXRpYWxpemVFR0xEaXNwbGF5KCkgb3ZlcnJpZGU7CisjZW5kaWYKKwogICAgIERpc3BsYXkq
IG1fZGlzcGxheTsKICAgICBib29sIG1fb3duZWREaXNwbGF5OwogfTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>252476</attachid>
            <date>2015-05-06 08:35:26 -0700</date>
            <delta_ts>2015-05-06 08:39:28 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>wk-egl-display.diff</filename>
            <type>text/plain</type>
            <size>26542</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBjNmNjYjRlLi4wNjhmODBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjgg
QEAKKzIwMTUtMDUtMDYgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtFR0xdIE1vdmUgRUdMRGlzcGxheSBoYW5kbGluZyB0byBQbGF0Zm9ybURp
c3BsYXkgYW5kIHJlbW92ZSBQbGF0Zm9ybURpc3BsYXkgZGVmaW5pdGlvbiBmcm9tIEdMRGVmcy5o
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDQ2ODUK
KworICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCisKKyAgICAgICAgVGhlIEVH
TCBkaXNwbGF5IGlzIGFsc28gaW5pdGlhbGl6ZWQgaW4gbXVsdGlwbGUgcGxhY2VzLCBhbmQgY291
bGQKKyAgICAgICAgYmUgdW5pZmllZCBpbiBQbGF0Zm9ybURpc3BsYXkuIFJlbW92ZSB0aGUgUGxh
dGZvcm1EaXNwbGF5CisgICAgICAgIGRlZmluaXRpb24gZnJvbSBwbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvR0xEZWZzLmggdG8gYXZvaWQgY29uZmxpY3RzLgorCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3Jt
RGlzcGxheTo6UGxhdGZvcm1EaXNwbGF5KTogSW5pdGlhbGl6ZSBtX2VnbERpc3BsYXkuCisgICAg
ICAgIChXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXk6On5QbGF0Zm9ybURpc3BsYXkpOiBDYWxsIHRl
cm1pbmF0ZUVHTERpc3BsYXkoKS4KKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxheTo6
ZWdsRGlzcGxheSk6IExhenkgaW50aWFsaXplIHRoZSBFR0wKKyAgICAgICAgZGlzcGxheSBhbmQg
cmV0dXJuIGl0LgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1EaXNwbGF5Ojppbml0aWFsaXpl
RUdMRGlzcGxheSk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXk6OnRlcm1pbmF0
ZUVHTERpc3BsYXkpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxh
eS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6c2hhcmVkRUdMRGlzcGxheSk6IFVzZSBQbGF0Zm9ybURpc3BsYXk6
OmVnbERpc3BsYXkoKS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xEZWZz
Lmg6IFJlbW92ZSB1bm5lZWRlZCBkZWZpbml0aW9ucy4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9vcGVuZ2wvR0xQbGF0Zm9ybVN1cmZhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R0xQ
bGF0Zm9ybVN1cmZhY2U6OkdMUGxhdGZvcm1TdXJmYWNlKTogUmVtb3ZlCisgICAgICAgIG1fc2hh
cmVkRGlzcGxheSBtZW1iZXIsIFBsYXRmb3JtRGlzcGxheTo6c2hhcmVkRGlzcGxheSgpIGNhbiBi
ZSB1c2VkIGluc3RlYWQuCisgICAgICAgIChXZWJDb3JlOjpHTFBsYXRmb3JtU3VyZmFjZTo6c2hh
cmVkRGlzcGxheSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3Blbmds
L0dMUGxhdGZvcm1TdXJmYWNlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFj
ZXMvZWdsL0VHTENvbmZpZ1NlbGVjdG9yLmg6IFVzZQorICAgICAgICBFR0xEaXNwbGF5IGluc3Rl
YWQgb2YgUGxhdGZvcm1EaXNwbGF5LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3N1cmZh
Y2VzL2VnbC9FR0xDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVHTE9mZlNjcmVlbkNv
bnRleHQ6OmluaXRpYWxpemUpOiBVc2UgUGxhdGZvcm1EaXNwbGF5OjplZ2xEaXNwbGF5KCkuCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWdsL0VHTEhlbHBlci5jcHA6IFJl
bW92ZSB0aGUKKyAgICAgICAgRUdMRGlzcGxheUNvbm5lY3Rpb24gY2xhcyBhbmQgdXNlIFBsYXRm
b3JtRGlzcGxheSBpbnN0ZWFkLgorICAgICAgICAoV2ViQ29yZTo6RUdMSGVscGVyOjplZ2xEaXNw
bGF5KToKKyAgICAgICAgKFdlYkNvcmU6OkVHTEhlbHBlcjo6Y3VycmVudERpc3BsYXkpOgorICAg
ICAgICAoV2ViQ29yZTo6RUdMRGlzcGxheUNvbm5lY3Rpb246OkVHTERpc3BsYXlDb25uZWN0aW9u
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkVHTERpc3BsYXlDb25uZWN0aW9uOjp+RUdM
RGlzcGxheUNvbm5lY3Rpb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RUdMRGlzcGxh
eUNvbm5lY3Rpb246OmRpc3BsYXkpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RUdMRGlz
cGxheUNvbm5lY3Rpb246OnRlcm1pbmF0ZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3Mvc3VyZmFjZXMvZWdsL0VHTEhlbHBlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL3N1cmZhY2VzL2VnbC9FR0xTdXJmYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVH
TFRyYW5zcG9ydFN1cmZhY2U6OkVHTFRyYW5zcG9ydFN1cmZhY2UpOiBVc2UgRUdMSGVscGVyOjpl
Z2xEaXNwbGF5KCkuCisgICAgICAgIChXZWJDb3JlOjpFR0xUcmFuc3BvcnRTdXJmYWNlOjpkZXN0
cm95KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpFR0xPZmZTY3JlZW5TdXJmYWNlOjpFR0xP
ZmZTY3JlZW5TdXJmYWNlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpFR0xPZmZTY3JlZW5T
dXJmYWNlOjpkZXN0cm95KTogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc3Vy
ZmFjZXMvZWdsL0VHTFhTdXJmYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVHTFdpbmRvd1Ry
YW5zcG9ydFN1cmZhY2U6OkVHTFdpbmRvd1RyYW5zcG9ydFN1cmZhY2UpOgorICAgICAgICBVc2Ug
UGxhdGZvcm1EaXNwbGF5OjplZ2xEaXNwbGF5KCkuCisgICAgICAgIChXZWJDb3JlOjpFR0xXaW5k
b3dUcmFuc3BvcnRTdXJmYWNlOjpzd2FwQnVmZmVycyk6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6RUdMUGl4bWFwU3VyZmFjZTo6RUdMUGl4bWFwU3VyZmFjZSk6IERpdHRvLgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HTFhDb250ZXh0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkdMWE9mZlNjcmVlbkNvbnRleHQ6OmluaXRpYWxpemUpOiBVc2UgWDExSGVscGVy
OjpuYXRpdmVEaXNwbGF5KCkuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMv
Z2x4L0dMWFN1cmZhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R0xYVHJhbnNwb3J0U3VyZmFj
ZTo6R0xYVHJhbnNwb3J0U3VyZmFjZSk6IERvIG5vdCB1c2UgbV9zaGFyZWREaXNwbGF5LgorICAg
ICAgICAoV2ViQ29yZTo6R0xYT2ZmU2NyZWVuU3VyZmFjZTo6aW5pdGlhbGl6ZSk6IERpdHRvLgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dheWxhbmQvUGxhdGZvcm1EaXNwbGF5V2F5bGFu
ZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXlXYXlsYW5kOjpQbGF0Zm9y
bURpc3BsYXlXYXlsYW5kKTogQ2FsbAorICAgICAgICBQbGF0Zm9ybURpc3BsYXk6OmluaXRpYWxp
emVFR0xEaXNwbGF5KCkgdG8gaW5zaWFsaXplIHRoZSBFR0wgZGlzcGxheS4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy93YXlsYW5kL1BsYXRmb3JtRGlzcGxheVdheWxhbmQuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy94MTEvUGxhdGZvcm1EaXNwbGF5WDExLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxheVgxMTo6aW5pdGlhbGl6ZUVHTERpc3BsYXkpOiBP
dmVycmlkZQorICAgICAgICBQbGF0Zm9ybURpc3BsYXk6OmluaXRpYWxpemVFR0xEaXNwbGF5KCkg
dG8gaW5pdGlhbGl6ZSB0aGUKKyAgICAgICAgbV9lZ2xEaXNwbGF5IG1lbWJlci4KKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy94MTEvUGxhdGZvcm1EaXNwbGF5WDExLmg6CisKIDIwMTUtMDUt
MDUgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAg
IFtTT1VQXSBOZXR3b3JrIENhY2hlOiBJbXBsZW1lbnQgU2hhcmVhYmxlUmVzb3VyY2UgZm9yIFNv
dXAgYW5kIGVuYWJsZSBpdCBmb3IgR1RLIHBsYXRmb3JtCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmNwcAppbmRleCA1OGJkZDY5Li5k
NjIxMGEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0
Zm9ybURpc3BsYXkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1Bs
YXRmb3JtRGlzcGxheS5jcHAKQEAgLTQ1LDYgKzQ1LDEwIEBACiAjaW5jbHVkZSA8RWNvcmVfWC5o
PgogI2VuZGlmCiAKKyNpZiBVU0UoRUdMKQorI2luY2x1ZGUgPEVHTC9lZ2wuaD4KKyNlbmRpZgor
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybURpc3BsYXk+
IFBsYXRmb3JtRGlzcGxheTo6Y3JlYXRlUGxhdGZvcm1EaXNwbGF5KCkKQEAgLTg1LDQgKzg5LDYz
IEBAIFBsYXRmb3JtRGlzcGxheSYgUGxhdGZvcm1EaXNwbGF5OjpzaGFyZWREaXNwbGF5KCkKICAg
ICByZXR1cm4gKmRpc3BsYXk7CiB9CiAKK1BsYXRmb3JtRGlzcGxheTo6UGxhdGZvcm1EaXNwbGF5
KCkKKyNpZiBVU0UoRUdMKQorICAgIDogbV9lZ2xEaXNwbGF5KEVHTF9OT19ESVNQTEFZKQorI2Vu
ZGlmCit7Cit9CisKK1BsYXRmb3JtRGlzcGxheTo6flBsYXRmb3JtRGlzcGxheSgpCit7CisjaWYg
VVNFKEVHTCkKKyAgICB0ZXJtaW5hdGVFR0xEaXNwbGF5KCk7CisjZW5kaWYKK30KKworI2lmIFVT
RShFR0wpCitFR0xEaXNwbGF5IFBsYXRmb3JtRGlzcGxheTo6ZWdsRGlzcGxheSgpIGNvbnN0Cit7
CisgICAgaWYgKCFtX2VnbERpc3BsYXlJbml0aWFsaXplZCkKKyAgICAgICAgY29uc3RfY2FzdDxQ
bGF0Zm9ybURpc3BsYXkqPih0aGlzKS0+aW5pdGlhbGl6ZUVHTERpc3BsYXkoKTsKKyAgICByZXR1
cm4gbV9lZ2xEaXNwbGF5OworfQorCit2b2lkIFBsYXRmb3JtRGlzcGxheTo6aW5pdGlhbGl6ZUVH
TERpc3BsYXkoKQoreworICAgIG1fZWdsRGlzcGxheUluaXRpYWxpemVkID0gdHJ1ZTsKKworICAg
IGlmIChtX2VnbERpc3BsYXkgPT0gRUdMX05PX0RJU1BMQVkpIHsKKyAgICAgICAgbV9lZ2xEaXNw
bGF5ID0gZWdsR2V0RGlzcGxheShFR0xfREVGQVVMVF9ESVNQTEFZKTsKKyAgICAgICAgaWYgKG1f
ZWdsRGlzcGxheSA9PSBFR0xfTk9fRElTUExBWSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBpZiAoZWdsSW5pdGlhbGl6ZShtX2VnbERpc3BsYXksIDAsIDApID09IEVHTF9GQUxT
RSkgeworICAgICAgICBMT0dfRVJST1IoIkVHTERpc3BsYXkgSW5pdGlhbGl6YXRpb24gZmFpbGVk
LiIpOworICAgICAgICB0ZXJtaW5hdGVFR0xEaXNwbGF5KCk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKKyNpZiBVU0UoT1BFTkdMX0VTXzIpCisgICAgc3RhdGljIGNvbnN0IEVHTGVudW0gZWds
QVBJVmVyc2lvbiA9IEVHTF9PUEVOR0xfRVNfQVBJOworI2Vsc2UKKyAgICBzdGF0aWMgY29uc3Qg
RUdMZW51bSBlZ2xBUElWZXJzaW9uID0gRUdMX09QRU5HTF9BUEk7CisjZW5kaWYKKyAgICBpZiAo
ZWdsQmluZEFQSShlZ2xBUElWZXJzaW9uKSA9PSBFR0xfRkFMU0UpIHsKKyAgICAgICAgTE9HX0VS
Uk9SKCJGYWlsZWQgdG8gc2V0IEVHTCBBUEkoJWQpLiIsIGVnbEdldEVycm9yKCkpOworICAgICAg
ICB0ZXJtaW5hdGVFR0xEaXNwbGF5KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9Cit9CisKK3Zv
aWQgUGxhdGZvcm1EaXNwbGF5Ojp0ZXJtaW5hdGVFR0xEaXNwbGF5KCkKK3sKKyAgICBpZiAobV9l
Z2xEaXNwbGF5ID09IEVHTF9OT19ESVNQTEFZKQorICAgICAgICByZXR1cm47CisgICAgZWdsVGVy
bWluYXRlKG1fZWdsRGlzcGxheSk7CisgICAgbV9lZ2xEaXNwbGF5ID0gRUdMX05PX0RJU1BMQVk7
Cit9CisjZW5kaWYgLy8gVVNFKEVHTCkKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuaAppbmRl
eCAyMzEyNzBmLi4xOGE2NzljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuaApAQCAtMjksMTMgKzI5LDE3IEBACiAjaW5jbHVkZSA8
d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL1R5cGVDYXN0cy5oPgogCisjaWYgVVNF
KEVHTCkKK3R5cGVkZWYgdm9pZCAqRUdMRGlzcGxheTsKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIFBsYXRmb3JtRGlzcGxheSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoUGxhdGZvcm1EaXNwbGF5KTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAg
ICAgc3RhdGljIFBsYXRmb3JtRGlzcGxheSYgc2hhcmVkRGlzcGxheSgpOwotICAgIHZpcnR1YWwg
flBsYXRmb3JtRGlzcGxheSgpID0gZGVmYXVsdDsKKyAgICB2aXJ0dWFsIH5QbGF0Zm9ybURpc3Bs
YXkoKTsKIAogICAgIGVudW0gY2xhc3MgVHlwZSB7CiAjaWYgUExBVEZPUk0oWDExKQpAQCAtNDgs
MTEgKzUyLDI3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgPSAw
OwogCisjaWYgVVNFKEVHTCkKKyAgICBFR0xEaXNwbGF5IGVnbERpc3BsYXkoKSBjb25zdDsKKyNl
bmRpZgorCiBwcm90ZWN0ZWQ6Ci0gICAgUGxhdGZvcm1EaXNwbGF5KCkgPSBkZWZhdWx0OworICAg
IFBsYXRmb3JtRGlzcGxheSgpOworCisjaWYgVVNFKEVHTCkKKyAgICB2aXJ0dWFsIHZvaWQgaW5p
dGlhbGl6ZUVHTERpc3BsYXkoKTsKKworICAgIEVHTERpc3BsYXkgbV9lZ2xEaXNwbGF5OworI2Vu
ZGlmCiAKIHByaXZhdGU6CiAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybURpc3Bs
YXk+IGNyZWF0ZVBsYXRmb3JtRGlzcGxheSgpOworCisjaWYgVVNFKEVHTCkKKyAgICB2b2lkIHRl
cm1pbmF0ZUVHTERpc3BsYXkoKTsKKworICAgIGJvb2wgbV9lZ2xEaXNwbGF5SW5pdGlhbGl6ZWQg
eyBmYWxzZSB9OworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuY3Bw
CmluZGV4IDg5Yjk2MTIuLjc3N2NjZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuY3BwCkBAIC0yMiw2ICsyMiw3IEBACiAj
aWYgVVNFKEVHTCkKIAogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dDNELmgiCisjaW5jbHVkZSAi
UGxhdGZvcm1EaXNwbGF5LmgiCiAKICNpZiBVU0UoQ0FJUk8pCiAjaW5jbHVkZSA8Y2Fpcm8uaD4K
QEAgLTM4LDEwICszOSw2IEBACiAjaW5jbHVkZSAiUGxhdGZvcm1EaXNwbGF5WDExLmgiCiAjZW5k
aWYKIAotI2lmIFBMQVRGT1JNKFdBWUxBTkQpCi0jaW5jbHVkZSAiUGxhdGZvcm1EaXNwbGF5V2F5
bGFuZC5oIgotI2VuZGlmCi0KICNpZiBFTkFCTEUoQUNDRUxFUkFURURfMkRfQ0FOVkFTKQogLy8g
Y2Fpcm8tZ2wuaCBpbmNsdWRlcyBzb21lIGRlZmluaXRpb25zIGZyb20gR0xYIHRoYXQgY29uZmxp
Y3Qgd2l0aAogLy8gdGhlIG9uZXMgcHJvdmlkZWQgYnkgdXMuIFNpbmNlIEdMQ29udGV4dEVHTCBk
b2Vzbid0IHVzZSBhbnkgR0xYCkBAIC01MiwzNCArNDksOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLXN0YXRpYyBFR0xEaXNwbGF5IGdTaGFyZWRFR0xEaXNwbGF5ID0gRUdMX05PX0RJU1BM
QVk7Ci0KLSNpZiBVU0UoT1BFTkdMX0VTXzIpCi1zdGF0aWMgY29uc3QgRUdMZW51bSBnR0xBUEkg
PSBFR0xfT1BFTkdMX0VTX0FQSTsKLSNlbHNlCi1zdGF0aWMgY29uc3QgRUdMZW51bSBnR0xBUEkg
PSBFR0xfT1BFTkdMX0FQSTsKLSNlbmRpZgotCiBzdGF0aWMgRUdMRGlzcGxheSBzaGFyZWRFR0xE
aXNwbGF5KCkKIHsKLSAgICBzdGF0aWMgYm9vbCBpbml0aWFsaXplZCA9IGZhbHNlOwotICAgIGlm
ICghaW5pdGlhbGl6ZWQpIHsKLSAgICAgICAgaW5pdGlhbGl6ZWQgPSB0cnVlOwotCi0jaWYgUExB
VEZPUk0oV0FZTEFORCkKLSAgICAgICAgaWYgKGlzPFBsYXRmb3JtRGlzcGxheVdheWxhbmQ+KFBs
YXRmb3JtRGlzcGxheTo6c2hhcmVkRGlzcGxheSgpKSkKLSAgICAgICAgICAgIGdTaGFyZWRFR0xE
aXNwbGF5ID0gZWdsR2V0RGlzcGxheShkb3duY2FzdDxQbGF0Zm9ybURpc3BsYXlXYXlsYW5kPihQ
bGF0Zm9ybURpc3BsYXk6OnNoYXJlZERpc3BsYXkoKSkubmF0aXZlKCkpOwotICAgICAgICBlbHNl
IC8vIE5vdGUgdGhhdCB0aGlzIGJyYW5jaCBjb250aW51dGVzIG91dHNpZGUgdGhpcyAjaWYtZ3Vh
cmRlZCBzZWdtZW50LgotI2VuZGlmCi0jaWYgUExBVEZPUk0oWDExKQotICAgICAgICAgICAgZ1No
YXJlZEVHTERpc3BsYXkgPSBlZ2xHZXREaXNwbGF5KGRvd25jYXN0PFBsYXRmb3JtRGlzcGxheVgx
MT4oUGxhdGZvcm1EaXNwbGF5OjpzaGFyZWREaXNwbGF5KCkpLm5hdGl2ZSgpKTsKLSNlbHNlCi0g
ICAgICAgICAgICBnU2hhcmVkRUdMRGlzcGxheSA9IGVnbEdldERpc3BsYXkoRUdMX0RFRkFVTFRf
RElTUExBWSk7Ci0jZW5kaWYKLSAgICAgICAgaWYgKGdTaGFyZWRFR0xEaXNwbGF5ICE9IEVHTF9O
T19ESVNQTEFZICYmICghZWdsSW5pdGlhbGl6ZShnU2hhcmVkRUdMRGlzcGxheSwgMCwgMCkgfHwg
IWVnbEJpbmRBUEkoZ0dMQVBJKSkpCi0gICAgICAgICAgICBnU2hhcmVkRUdMRGlzcGxheSA9IEVH
TF9OT19ESVNQTEFZOwotICAgIH0KLSAgICByZXR1cm4gZ1NoYXJlZEVHTERpc3BsYXk7CisgICAg
cmV0dXJuIFBsYXRmb3JtRGlzcGxheTo6c2hhcmVkRGlzcGxheSgpLmVnbERpc3BsYXkoKTsKIH0K
IAogc3RhdGljIGNvbnN0IEVHTGludCBnQ29udGV4dEF0dHJpYnV0ZXNbXSA9IHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HTERlZnMuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HTERlZnMuaAppbmRleCBhMDkx
ZjEzLi45YTJjMmZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9vcGVuZ2wvR0xEZWZzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
b3BlbmdsL0dMRGVmcy5oCkBAIC01NywyMiArNTcsMTQgQEAgdHlwZWRlZiB1aW50MzJfdCBQbGF0
Zm9ybUJ1ZmZlckhhbmRsZTsKIAogI2lmIFVTRShHTFgpCiB0eXBlZGVmIEdMWENvbnRleHQgUGxh
dGZvcm1Db250ZXh0OwotdHlwZWRlZiBEaXNwbGF5KiBQbGF0Zm9ybURpc3BsYXk7CiB0eXBlZGVm
IEdMWEZCQ29uZmlnIFBsYXRmb3JtU3VyZmFjZUNvbmZpZzsKIHR5cGVkZWYgR0xYRHJhd2FibGUg
UGxhdGZvcm1EcmF3YWJsZTsKICNlbGlmIFVTRShFR0wpCi0jaWYgVVNFKE9QRU5HTF9FU18yKQot
c3RhdGljIGNvbnN0IEVHTGVudW0gZWdsQVBJVmVyc2lvbiA9IEVHTF9PUEVOR0xfRVNfQVBJOwot
I2Vsc2UKLXN0YXRpYyBjb25zdCBFR0xlbnVtIGVnbEFQSVZlcnNpb24gPSBFR0xfT1BFTkdMX0FQ
STsKLSNlbmRpZgogdHlwZWRlZiBFR0xDb250ZXh0IFBsYXRmb3JtQ29udGV4dDsKLXR5cGVkZWYg
RUdMRGlzcGxheSBQbGF0Zm9ybURpc3BsYXk7CiB0eXBlZGVmIEVHTENvbmZpZyBQbGF0Zm9ybVN1
cmZhY2VDb25maWc7CiB0eXBlZGVmIEVHTFN1cmZhY2UgUGxhdGZvcm1EcmF3YWJsZTsKICNlbHNl
CiB0eXBlZGVmIHZvaWQqIFBsYXRmb3JtQ29udGV4dDsKLXR5cGVkZWYgdm9pZCogUGxhdGZvcm1E
aXNwbGF5OwogdHlwZWRlZiB2b2lkKiBQbGF0Zm9ybVN1cmZhY2VDb25maWc7CiB0eXBlZGVmIHZv
aWQqIFBsYXRmb3JtRHJhd2FibGU7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HTFBsYXRmb3JtU3VyZmFjZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xQbGF0Zm9ybVN1cmZhY2UuY3BwCmlu
ZGV4IDRmMDNlZjYuLmE0OWMzZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL29wZW5nbC9HTFBsYXRmb3JtU3VyZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1TdXJmYWNlLmNwcApAQCAtNjEs
OCArNjEsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8R0xQbGF0Zm9ybVN1cmZhY2U+IEdMUGxhdGZvcm1T
dXJmYWNlOjpjcmVhdGVPZmZTY3JlZW5TdXJmYWNlKFN1cgogfQogCiBHTFBsYXRmb3JtU3VyZmFj
ZTo6R0xQbGF0Zm9ybVN1cmZhY2UoU3VyZmFjZUF0dHJpYnV0ZXMpCi0gICAgOiBtX3NoYXJlZERp
c3BsYXkoMCkKLSAgICAsIG1fZHJhd2FibGUoMCkKKyAgICA6IG1fZHJhd2FibGUoMCkKICAgICAs
IG1fYnVmZmVySGFuZGxlKDApCiB7CiB9CkBAIC04OCwxMSArODcsNiBAQCBjb25zdCBJbnRSZWN0
JiBHTFBsYXRmb3JtU3VyZmFjZTo6Z2VvbWV0cnkoKSBjb25zdAogICAgIHJldHVybiBtX3JlY3Q7
CiB9CiAKLVBsYXRmb3JtRGlzcGxheSBHTFBsYXRmb3JtU3VyZmFjZTo6c2hhcmVkRGlzcGxheSgp
IGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fc2hhcmVkRGlzcGxheTsKLX0KLQogUGxhdGZvcm1TdXJm
YWNlQ29uZmlnIEdMUGxhdGZvcm1TdXJmYWNlOjpjb25maWd1cmF0aW9uKCkKIHsKICAgICByZXR1
cm4gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5n
bC9HTFBsYXRmb3JtU3VyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
b3BlbmdsL0dMUGxhdGZvcm1TdXJmYWNlLmgKaW5kZXggZjVlNGY1My4uZjE0MWQzNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1T
dXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dM
UGxhdGZvcm1TdXJmYWNlLmgKQEAgLTU5LDggKzU5LDYgQEAgcHVibGljOgogCiAgICAgUGxhdGZv
cm1EcmF3YWJsZSBkcmF3YWJsZSgpIGNvbnN0OwogCi0gICAgUGxhdGZvcm1EaXNwbGF5IHNoYXJl
ZERpc3BsYXkoKSBjb25zdDsKLQogICAgIHZpcnR1YWwgU3VyZmFjZUF0dHJpYnV0ZXMgYXR0cmli
dXRlcygpIGNvbnN0OwogCiAgICAgdmlydHVhbCB2b2lkIHN3YXBCdWZmZXJzKCk7CkBAIC04NCw3
ICs4Miw2IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBHTFBsYXRmb3JtU3VyZmFjZShTdXJm
YWNlQXR0cmlidXRlcyk7CiAKLSAgICBQbGF0Zm9ybURpc3BsYXkgbV9zaGFyZWREaXNwbGF5Owog
ICAgIFBsYXRmb3JtRHJhd2FibGUgbV9kcmF3YWJsZTsKICAgICBQbGF0Zm9ybUJ1ZmZlckhhbmRs
ZSBtX2J1ZmZlckhhbmRsZTsKICAgICBJbnRSZWN0IG1fcmVjdDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2VnbC9FR0xDb25maWdTZWxlY3Rv
ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWdsL0VHTENv
bmZpZ1NlbGVjdG9yLmgKaW5kZXggMjcyY2JkYi4uMTM5YzBiNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWdsL0VHTENvbmZpZ1NlbGVjdG9y
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWdsL0VH
TENvbmZpZ1NlbGVjdG9yLmgKQEAgLTYxLDcgKzYxLDcgQEAgcHJvdGVjdGVkOgogICAgIEVHTENv
bmZpZyBtX3BpeG1hcEZCQ29uZmlnOwogICAgIEVHTENvbmZpZyBtX3N1cmZhY2VDb250ZXh0RkJD
b25maWc7CiAgICAgdW5zaWduZWQgbV9hdHRyaWJ1dGVzIDogMzsKLSAgICBQbGF0Zm9ybURpc3Bs
YXkgbV9zaGFyZWREaXNwbGF5OworICAgIEVHTERpc3BsYXkgbV9zaGFyZWREaXNwbGF5OwogfTsK
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFj
ZXMvZWdsL0VHTENvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
c3VyZmFjZXMvZWdsL0VHTENvbnRleHQuY3BwCmluZGV4IDYyYWY0NDMuLjFmZTdhMzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2VnbC9FR0xD
b250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNl
cy9lZ2wvRUdMQ29udGV4dC5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIFVTRShFR0wpCiAK
KyNpbmNsdWRlICJQbGF0Zm9ybURpc3BsYXkuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNzIsMTIgKzczLDcgQEAgYm9vbCBFR0xP
ZmZTY3JlZW5Db250ZXh0Ojppbml0aWFsaXplKEdMUGxhdGZvcm1TdXJmYWNlKiBzdXJmYWNlLCBQ
bGF0Zm9ybUNvbnRleHQKICAgICBpZiAoIXN1cmZhY2UpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAotICAgIGlmICghZWdsQmluZEFQSShlZ2xBUElWZXJzaW9uKSkgewotICAgICAgICBMT0dfRVJS
T1IoIkZhaWxlZCB0byBzZXQgRUdMIEFQSSglZCkuIiwgZWdsR2V0RXJyb3IoKSk7Ci0gICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICBtX2Rpc3BsYXkgPSBzdXJmYWNlLT5zaGFyZWRE
aXNwbGF5KCk7CisgICAgbV9kaXNwbGF5ID0gUGxhdGZvcm1EaXNwbGF5OjpzaGFyZWREaXNwbGF5
KCkuZWdsRGlzcGxheSgpOwogICAgIGlmICghbV9kaXNwbGF5KQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZh
Y2VzL2VnbC9FR0xIZWxwZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
c3VyZmFjZXMvZWdsL0VHTEhlbHBlci5jcHAKaW5kZXggOWFlZDlhZi4uYTAxNWU4MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWdsL0VHTEhl
bHBlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMv
ZWdsL0VHTEhlbHBlci5jcHAKQEAgLTI4LDg5ICsyOCwyMiBAQAogCiAjaWYgVVNFKEVHTCkKIAor
I2luY2x1ZGUgIlBsYXRmb3JtRGlzcGxheS5oIgogI2luY2x1ZGUgPG9wZW5nbC9HTFBsYXRmb3Jt
Q29udGV4dC5oPgogCi0jaWYgUExBVEZPUk0oWDExKQotI2luY2x1ZGUgIlgxMUhlbHBlci5oIgot
I2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotI2lmIFBMQVRGT1JNKFgxMSkKLXR5cGVk
ZWYgWDExSGVscGVyIE5hdGl2ZVdyYXBwZXI7Ci10eXBlZGVmIERpc3BsYXkgTmF0aXZlU2hhcmVk
RGlzcGxheTsKLSNlbHNlCi10eXBlZGVmIHZvaWQgTmF0aXZlU2hhcmVkRGlzcGxheTsKLSNlbmRp
ZgotCiBzdGF0aWMgUEZORUdMQ1JFQVRFSU1BR0VLSFJQUk9DIGVnbENyZWF0ZUltYWdlS0hSID0g
MDsKIHN0YXRpYyBQRk5FR0xERVNUUk9ZSU1BR0VLSFJQUk9DIGVnbERlc3Ryb3lJbWFnZUtIUiA9
IDA7CiBzdGF0aWMgUEZOR0xFR0xJTUFHRVRBUkdFVFRFWFRVUkUyRE9FU1BST0MgZWdsSW1hZ2VU
YXJnZXRUZXh0dXJlMkRPRVMgPSAwOwogCi1zdHJ1Y3QgRUdMRGlzcGxheUNvbm5lY3Rpb24gewot
Ci0gICAgRUdMRGlzcGxheUNvbm5lY3Rpb24oTmF0aXZlU2hhcmVkRGlzcGxheSogZGlzcGxheSA9
IDApCi0gICAgewotICAgICAgICBpZiAoZGlzcGxheSkKLSAgICAgICAgICAgIG1fZWdsRGlzcGxh
eSA9IGVnbEdldERpc3BsYXkocmVpbnRlcnByZXRfY2FzdDxFR0xOYXRpdmVEaXNwbGF5VHlwZT4o
ZGlzcGxheSkpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBtX2VnbERpc3BsYXkgPSBlZ2xH
ZXREaXNwbGF5KEVHTF9ERUZBVUxUX0RJU1BMQVkpOwotCi0gICAgICAgIGlmIChtX2VnbERpc3Bs
YXkgPT0gRUdMX05PX0RJU1BMQVkpIHsKLSAgICAgICAgICAgIExPR19FUlJPUigiRUdMRGlzcGxh
eSBJbml0aWFsaXphdGlvbiBmYWlsZWQuIik7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAg
IH0KLQotICAgICAgICBFR0xCb29sZWFuIHN1Y2Nlc3M7Ci0gICAgICAgIHN1Y2Nlc3MgPSBlZ2xJ
bml0aWFsaXplKG1fZWdsRGlzcGxheSwgMCwgMCk7Ci0KLSAgICAgICAgaWYgKHN1Y2Nlc3MgIT0g
RUdMX1RSVUUpIHsKLSAgICAgICAgICAgIExPR19FUlJPUigiRUdMSW5pdGlhbGl6YXRpb24gZmFp
bGVkLiIpOwotICAgICAgICAgICAgdGVybWluYXRlKCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0g
ICAgICAgIH0KLQotICAgICAgICBzdWNjZXNzID0gZWdsQmluZEFQSShlZ2xBUElWZXJzaW9uKTsK
LQotICAgICAgICBpZiAoc3VjY2VzcyAhPSBFR0xfVFJVRSkgewotICAgICAgICAgICAgTE9HX0VS
Uk9SKCJGYWlsZWQgdG8gc2V0IEVHTCBBUEkoJWQpLiIsIGVnbEdldEVycm9yKCkpOwotICAgICAg
ICAgICAgdGVybWluYXRlKCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICB9
Ci0KLSAgICB+RUdMRGlzcGxheUNvbm5lY3Rpb24oKQotICAgIHsKLSAgICAgICAgdGVybWluYXRl
KCk7Ci0gICAgfQotCi0gICAgRUdMRGlzcGxheSBkaXNwbGF5KCkgeyByZXR1cm4gbV9lZ2xEaXNw
bGF5OyB9Ci0KLXByaXZhdGU6Ci0gICAgdm9pZCB0ZXJtaW5hdGUoKQotICAgIHsKLSAgICAgICAg
aWYgKG1fZWdsRGlzcGxheSA9PSBFR0xfTk9fRElTUExBWSkKLSAgICAgICAgICAgIHJldHVybjsK
LQotICAgICAgICBlZ2xUZXJtaW5hdGUobV9lZ2xEaXNwbGF5KTsKLSAgICAgICAgbV9lZ2xEaXNw
bGF5ID0gRUdMX05PX0RJU1BMQVk7Ci0gICAgfQotCi0gICAgRUdMRGlzcGxheSBtX2VnbERpc3Bs
YXk7Ci19OwotCi1QbGF0Zm9ybURpc3BsYXkgRUdMSGVscGVyOjplZ2xEaXNwbGF5KCkKK0VHTERp
c3BsYXkgRUdMSGVscGVyOjplZ2xEaXNwbGF5KCkKIHsKLSAgICAvLyBEaXNwbGF5IGNvbm5lY3Rp
b24gd2lsbCBvbmx5IGJlIGJyb2tlbiBhdCBwcm9ncmFtIHNodXRkb3duLgotI2lmIFBMQVRGT1JN
KFgxMSkKLSAgICBzdGF0aWMgRUdMRGlzcGxheUNvbm5lY3Rpb24gZGlzcGxheUNvbm5lY3Rpb24o
TmF0aXZlV3JhcHBlcjo6bmF0aXZlRGlzcGxheSgpKTsKLSNlbHNlCi0gICAgc3RhdGljIEVHTERp
c3BsYXlDb25uZWN0aW9uIGRpc3BsYXlDb25uZWN0aW9uOwotI2VuZGlmCi0gICAgcmV0dXJuIGRp
c3BsYXlDb25uZWN0aW9uLmRpc3BsYXkoKTsKKyAgICBQbGF0Zm9ybURpc3BsYXk6OnNoYXJlZERp
c3BsYXkoKS5lZ2xEaXNwbGF5KCk7CiB9CiAKLVBsYXRmb3JtRGlzcGxheSBFR0xIZWxwZXI6OmN1
cnJlbnREaXNwbGF5KCkKK0VHTERpc3BsYXkgRUdMSGVscGVyOjpjdXJyZW50RGlzcGxheSgpCiB7
CiAgICAgRUdMRGlzcGxheSBkaXNwbGF5ID0gZWdsR2V0Q3VycmVudERpc3BsYXkoKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWdsL0VH
TEhlbHBlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWds
L0VHTEhlbHBlci5oCmluZGV4IGYyNDU4ZmIuLjg4MjIyYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2VnbC9FR0xIZWxwZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9lZ2wvRUdMSGVscGVyLmgK
QEAgLTM0LDggKzM0LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBFR0xIZWxwZXIg
ewogcHVibGljOgotICAgIHN0YXRpYyBQbGF0Zm9ybURpc3BsYXkgZWdsRGlzcGxheSgpOwotICAg
IHN0YXRpYyBQbGF0Zm9ybURpc3BsYXkgY3VycmVudERpc3BsYXkoKTsKKyAgICBzdGF0aWMgRUdM
RGlzcGxheSBlZ2xEaXNwbGF5KCk7CisgICAgc3RhdGljIEVHTERpc3BsYXkgY3VycmVudERpc3Bs
YXkoKTsKICAgICBzdGF0aWMgdm9pZCByZXNvbHZlRUdMQmluZGluZ3MoKTsKICAgICBzdGF0aWMg
dm9pZCBjcmVhdGVFR0xJbWFnZShFR0xJbWFnZUtIUiosIEdMZW51bSwgY29uc3QgRUdMQ2xpZW50
QnVmZmVyLCBjb25zdCBFR0xpbnQqID0gMCk7CiAgICAgc3RhdGljIHZvaWQgZGVzdHJveUVHTElt
YWdlKGNvbnN0IEVHTEltYWdlS0hSKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3N1cmZhY2VzL2VnbC9FR0xTdXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2VnbC9FR0xTdXJmYWNlLmNwcAppbmRleCA2YzY5
NTAyLi40MjM0ZWViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9zdXJmYWNlcy9lZ2wvRUdMU3VyZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWdsL0VHTFN1cmZhY2UuY3BwCkBAIC03NSw5ICs3NSw3IEBA
IHN0ZDo6dW5pcXVlX3B0cjxHTFRyYW5zcG9ydFN1cmZhY2VDbGllbnQ+IEVHTFRyYW5zcG9ydFN1
cmZhY2U6OmNyZWF0ZVRyYW5zcG9ydFN1CiBFR0xUcmFuc3BvcnRTdXJmYWNlOjpFR0xUcmFuc3Bv
cnRTdXJmYWNlKGNvbnN0IEludFNpemUmIHNpemUsIFN1cmZhY2VBdHRyaWJ1dGVzIGF0dHJpYnV0
ZXMpCiAgICAgOiBHTFRyYW5zcG9ydFN1cmZhY2Uoc2l6ZSwgYXR0cmlidXRlcykKIHsKLSAgICBt
X3NoYXJlZERpc3BsYXkgPSBFR0xIZWxwZXI6OmVnbERpc3BsYXkoKTsKLQotICAgIGlmIChtX3No
YXJlZERpc3BsYXkgPT0gRUdMX05PX0RJU1BMQVkpCisgICAgaWYgKEVHTEhlbHBlcjo6ZWdsRGlz
cGxheSgpID09IEVHTF9OT19ESVNQTEFZKQogICAgICAgICByZXR1cm47CiAKICAgICBtX2NvbmZp
Z1NlbGVjdG9yID0gc3RkOjptYWtlX3VuaXF1ZTxFR0xDb25maWdTZWxlY3Rvcj4oYXR0cmlidXRl
cyk7CkBAIC05NCwxMyArOTIsMTMgQEAgRUdMVHJhbnNwb3J0U3VyZmFjZTo6fkVHTFRyYW5zcG9y
dFN1cmZhY2UoKQogCiB2b2lkIEVHTFRyYW5zcG9ydFN1cmZhY2U6OmRlc3Ryb3koKQogewotICAg
IGlmIChtX2RyYXdhYmxlID09IEVHTF9OT19TVVJGQUNFIHx8IG1fc2hhcmVkRGlzcGxheSA9PSBF
R0xfTk9fRElTUExBWSkKKyAgICBpZiAobV9kcmF3YWJsZSA9PSBFR0xfTk9fU1VSRkFDRSB8fCBF
R0xIZWxwZXI6OmVnbERpc3BsYXkoKSA9PSBFR0xfTk9fRElTUExBWSkKICAgICAgICAgcmV0dXJu
OwogCiAgICAgR0xUcmFuc3BvcnRTdXJmYWNlOjpkZXN0cm95KCk7CiAKICAgICBpZiAobV9kcmF3
YWJsZSkgewotICAgICAgICBlZ2xEZXN0cm95U3VyZmFjZShtX3NoYXJlZERpc3BsYXksIG1fZHJh
d2FibGUpOworICAgICAgICBlZ2xEZXN0cm95U3VyZmFjZShFR0xIZWxwZXI6OmVnbERpc3BsYXko
KSwgbV9kcmF3YWJsZSk7CiAgICAgICAgIG1fZHJhd2FibGUgPSBFR0xfTk9fU1VSRkFDRTsKICAg
ICB9CiAKQEAgLTEyNSw5ICsxMjMsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8R0xQbGF0Zm9ybVN1cmZh
Y2U+IEVHTE9mZlNjcmVlblN1cmZhY2U6OmNyZWF0ZU9mZlNjcmVlblN1cmZhY2UoUwogRUdMT2Zm
U2NyZWVuU3VyZmFjZTo6RUdMT2ZmU2NyZWVuU3VyZmFjZShTdXJmYWNlQXR0cmlidXRlcyBzdXJm
YWNlQXR0cmlidXRlcykKICAgICA6IEdMUGxhdGZvcm1TdXJmYWNlKHN1cmZhY2VBdHRyaWJ1dGVz
KQogewotICAgIG1fc2hhcmVkRGlzcGxheSA9IEVHTEhlbHBlcjo6ZWdsRGlzcGxheSgpOwotCi0g
ICAgaWYgKG1fc2hhcmVkRGlzcGxheSA9PSBFR0xfTk9fRElTUExBWSkKKyAgICBpZiAoRUdMSGVs
cGVyOjplZ2xEaXNwbGF5KCkgPT0gRUdMX05PX0RJU1BMQVkpCiAgICAgICAgIHJldHVybjsKIAog
ICAgIG1fY29uZmlnU2VsZWN0b3IgPSBzdGQ6Om1ha2VfdW5pcXVlPEVHTENvbmZpZ1NlbGVjdG9y
PihzdXJmYWNlQXR0cmlidXRlcyk7CkBAIC0xNDksMTEgKzE0NSwxMSBAQCBQbGF0Zm9ybVN1cmZh
Y2VDb25maWcgRUdMT2ZmU2NyZWVuU3VyZmFjZTo6Y29uZmlndXJhdGlvbigpCiAKIHZvaWQgRUdM
T2ZmU2NyZWVuU3VyZmFjZTo6ZGVzdHJveSgpCiB7Ci0gICAgaWYgKG1fc2hhcmVkRGlzcGxheSA9
PSBFR0xfTk9fRElTUExBWSB8fCBtX2RyYXdhYmxlID09IEVHTF9OT19TVVJGQUNFKQorICAgIGlm
IChFR0xIZWxwZXI6OmVnbERpc3BsYXkoKSA9PSBFR0xfTk9fRElTUExBWSB8fCBtX2RyYXdhYmxl
ID09IEVHTF9OT19TVVJGQUNFKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAobV9kcmF3YWJs
ZSkgewotICAgICAgICBlZ2xEZXN0cm95U3VyZmFjZShtX3NoYXJlZERpc3BsYXksIG1fZHJhd2Fi
bGUpOworICAgICAgICBlZ2xEZXN0cm95U3VyZmFjZShFR0xIZWxwZXI6OmVnbERpc3BsYXkoKSwg
bV9kcmF3YWJsZSk7CiAgICAgICAgIG1fZHJhd2FibGUgPSBFR0xfTk9fU1VSRkFDRTsKICAgICB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2Vz
L2VnbC9FR0xYU3VyZmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9z
dXJmYWNlcy9lZ2wvRUdMWFN1cmZhY2UuY3BwCmluZGV4IDc5MmE5OGIuLjYxOGZkYzMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2VnbC9FR0xY
U3VyZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFj
ZXMvZWdsL0VHTFhTdXJmYWNlLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkVHTENv
bmZpZ1NlbGVjdG9yLmgiCiAjaW5jbHVkZSAiRUdMSGVscGVyLmgiCiAjaW5jbHVkZSAiR0xQbGF0
Zm9ybUNvbnRleHQuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybURpc3BsYXkuaCIKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCkBAIC01OSw3ICs2MCw3IEBAIEVHTFdpbmRvd1RyYW5zcG9ydFN1cmZhY2U6
OkVHTFdpbmRvd1RyYW5zcG9ydFN1cmZhY2UoY29uc3QgSW50U2l6ZSYgc2l6ZSwgR0xQbGF0CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBtX2RyYXdhYmxlID0gZWdsQ3JlYXRlV2luZG93
U3VyZmFjZShtX3NoYXJlZERpc3BsYXksIG1fY29uZmlnU2VsZWN0b3ItPnN1cmZhY2VDb250ZXh0
Q29uZmlnKCksIHN0YXRpY19jYXN0PEVHTE5hdGl2ZVdpbmRvd1R5cGU+KG1fYnVmZmVySGFuZGxl
KSwgMCk7CisgICAgbV9kcmF3YWJsZSA9IGVnbENyZWF0ZVdpbmRvd1N1cmZhY2UoUGxhdGZvcm1E
aXNwbGF5OjpzaGFyZWREaXNwbGF5KCkuZWdsRGlzcGxheSgpLCBtX2NvbmZpZ1NlbGVjdG9yLT5z
dXJmYWNlQ29udGV4dENvbmZpZygpLCBzdGF0aWNfY2FzdDxFR0xOYXRpdmVXaW5kb3dUeXBlPiht
X2J1ZmZlckhhbmRsZSksIDApOwogCiAgICAgaWYgKG1fZHJhd2FibGUgPT0gRUdMX05PX1NVUkZB
Q0UpIHsKICAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQgdG8gY3JlYXRlIEVHTCBzdXJmYWNlKCVk
KS4iLCBlZ2xHZXRFcnJvcigpKTsKQEAgLTczLDcgKzc0LDcgQEAgRUdMV2luZG93VHJhbnNwb3J0
U3VyZmFjZTo6fkVHTFdpbmRvd1RyYW5zcG9ydFN1cmZhY2UoKQogCiB2b2lkIEVHTFdpbmRvd1Ry
YW5zcG9ydFN1cmZhY2U6OnN3YXBCdWZmZXJzKCkKIHsKLSAgICBpZiAoIWVnbFN3YXBCdWZmZXJz
KG1fc2hhcmVkRGlzcGxheSwgbV9kcmF3YWJsZSkpCisgICAgaWYgKCFlZ2xTd2FwQnVmZmVycyhQ
bGF0Zm9ybURpc3BsYXk6OnNoYXJlZERpc3BsYXkoKS5lZ2xEaXNwbGF5KCksIG1fZHJhd2FibGUp
KQogICAgICAgICBMT0dfRVJST1IoIkZhaWxlZCB0byBTd2FwQnVmZmVycyglZCkuIiwgZWdsR2V0
RXJyb3IoKSk7CiB9CiAKQEAgLTExNiw3ICsxMTcsNyBAQCBFR0xQaXhtYXBTdXJmYWNlOjpFR0xQ
aXhtYXBTdXJmYWNlKEdMUGxhdGZvcm1TdXJmYWNlOjpTdXJmYWNlQXR0cmlidXRlcyBzdXJmYWNl
QQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgbV9kcmF3YWJsZSA9IGVnbENyZWF0ZVBp
eG1hcFN1cmZhY2UobV9zaGFyZWREaXNwbGF5LCBjb25maWcsIHN0YXRpY19jYXN0PEVHTE5hdGl2
ZVBpeG1hcFR5cGU+KG1fYnVmZmVySGFuZGxlKSwgMCk7CisgICAgbV9kcmF3YWJsZSA9IGVnbENy
ZWF0ZVBpeG1hcFN1cmZhY2UoUGxhdGZvcm1EaXNwbGF5OjpzaGFyZWREaXNwbGF5KCkuZWdsRGlz
cGxheSgpLCBjb25maWcsIHN0YXRpY19jYXN0PEVHTE5hdGl2ZVBpeG1hcFR5cGU+KG1fYnVmZmVy
SGFuZGxlKSwgMCk7CiAKICAgICBpZiAobV9kcmF3YWJsZSA9PSBFR0xfTk9fU1VSRkFDRSkgewog
ICAgICAgICBMT0dfRVJST1IoIkZhaWxlZCB0byBjcmVhdGUgRUdMIHN1cmZhY2UoJWQpLiIsIGVn
bEdldEVycm9yKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvc3VyZmFjZXMvZ2x4L0dMWENvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWENvbnRleHQuY3BwCmluZGV4IGY0MmQzYWYuLjY5NDEy
YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2Vz
L2dseC9HTFhDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9zdXJmYWNlcy9nbHgvR0xYQ29udGV4dC5jcHAKQEAgLTYxLDcgKzYxLDcgQEAgYm9vbCBHTFhP
ZmZTY3JlZW5Db250ZXh0Ojppbml0aWFsaXplKEdMUGxhdGZvcm1TdXJmYWNlKiBzdXJmYWNlLCBQ
bGF0Zm9ybUNvbnRleHQKICAgICBpZiAoIXN1cmZhY2UpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAotICAgIERpc3BsYXkqIHgxMURpc3BsYXkgPSBzdXJmYWNlLT5zaGFyZWREaXNwbGF5KCk7Cisg
ICAgRGlzcGxheSogeDExRGlzcGxheSA9IFgxMUhlbHBlcjo6bmF0aXZlRGlzcGxheSgpOwogICAg
IGlmICgheDExRGlzcGxheSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCkBAIC0xMDYsNyArMTA2
LDcgQEAgYm9vbCBHTFhPZmZTY3JlZW5Db250ZXh0Ojppc0N1cnJlbnRDb250ZXh0KCkgY29uc3QK
IAogYm9vbCBHTFhPZmZTY3JlZW5Db250ZXh0OjpwbGF0Zm9ybU1ha2VDdXJyZW50KEdMUGxhdGZv
cm1TdXJmYWNlKiBzdXJmYWNlKQogewotICAgIHJldHVybiBnbFhNYWtlQ3VycmVudChzdXJmYWNl
LT5zaGFyZWREaXNwbGF5KCksIHN1cmZhY2UtPmRyYXdhYmxlKCksIG1fY29udGV4dEhhbmRsZSk7
CisgICAgcmV0dXJuIGdsWE1ha2VDdXJyZW50KFgxMUhlbHBlcjo6bmF0aXZlRGlzcGxheSgpLCBz
dXJmYWNlLT5kcmF3YWJsZSgpLCBtX2NvbnRleHRIYW5kbGUpOwogfQogCiB2b2lkIEdMWE9mZlNj
cmVlbkNvbnRleHQ6OnBsYXRmb3JtUmVsZWFzZUN1cnJlbnQoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWFN1cmZhY2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWFN1cmZhY2Uu
Y3BwCmluZGV4IDE2YThlMDMuLjlmNWUzMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HTFhTdXJmYWNlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYU3VyZmFjZS5jcHAKQEAg
LTY0LDcgKzY0LDYgQEAgc3RhdGljIGJvb2wgaXNNZXNhR0xYKCkKIEdMWFRyYW5zcG9ydFN1cmZh
Y2U6OkdMWFRyYW5zcG9ydFN1cmZhY2UoY29uc3QgSW50U2l6ZSYgc2l6ZSwgU3VyZmFjZUF0dHJp
YnV0ZXMgYXR0cmlidXRlcykKICAgICA6IEdMVHJhbnNwb3J0U3VyZmFjZShzaXplLCBhdHRyaWJ1
dGVzKQogewotICAgIG1fc2hhcmVkRGlzcGxheSA9IFgxMUhlbHBlcjo6bmF0aXZlRGlzcGxheSgp
OwogICAgIGF0dHJpYnV0ZXMgfD0gR0xQbGF0Zm9ybVN1cmZhY2U6OkRvdWJsZUJ1ZmZlcmVkOwog
ICAgIG1fY29uZmlnU2VsZWN0b3IgPSBzdGQ6Om1ha2VfdW5pcXVlPEdMWENvbmZpZ1NlbGVjdG9y
PihhdHRyaWJ1dGVzKTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8WFZpc3VhbEluZm8sIFgxMURlbGV0
ZXI+IHZpc0luZm8obV9jb25maWdTZWxlY3Rvci0+dmlzdWFsSW5mbyhtX2NvbmZpZ1NlbGVjdG9y
LT5zdXJmYWNlQ29udGV4dENvbmZpZygpKSk7CkBAIC0xNDEsOCArMTQwLDYgQEAgR0xYT2ZmU2Ny
ZWVuU3VyZmFjZTo6fkdMWE9mZlNjcmVlblN1cmZhY2UoKQogCiB2b2lkIEdMWE9mZlNjcmVlblN1
cmZhY2U6OmluaXRpYWxpemUoU3VyZmFjZUF0dHJpYnV0ZXMgYXR0cmlidXRlcykKIHsKLSAgICBt
X3NoYXJlZERpc3BsYXkgPSBYMTFIZWxwZXI6Om5hdGl2ZURpc3BsYXkoKTsKLQogICAgIG1fY29u
ZmlnU2VsZWN0b3IgPSBzdGQ6Om1ha2VfdW5pcXVlPEdMWENvbmZpZ1NlbGVjdG9yPihhdHRyaWJ1
dGVzKTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxYVmlzdWFsSW5mbywgWDExRGVsZXRlcj4gdmlz
dWFsSW5mbyhtX2NvbmZpZ1NlbGVjdG9yLT52aXN1YWxJbmZvKG1fY29uZmlnU2VsZWN0b3ItPnBp
eG1hcENvbnRleHRDb25maWcoKSkpOwpAQCAtMTUzLDcgKzE1MCw3IEBAIHZvaWQgR0xYT2ZmU2Ny
ZWVuU3VyZmFjZTo6aW5pdGlhbGl6ZShTdXJmYWNlQXR0cmlidXRlcyBhdHRyaWJ1dGVzKQogICAg
ICAgICByZXR1cm47CiAgICAgfQogCi0gICAgbV9nbHhQaXhtYXAgPSBnbFhDcmVhdGVHTFhQaXht
YXAobV9zaGFyZWREaXNwbGF5LCB2aXN1YWxJbmZvLmdldCgpLCBtX3BpeG1hcCk7CisgICAgbV9n
bHhQaXhtYXAgPSBnbFhDcmVhdGVHTFhQaXhtYXAoWDExSGVscGVyOjpuYXRpdmVEaXNwbGF5KCks
IHZpc3VhbEluZm8uZ2V0KCksIG1fcGl4bWFwKTsKIAogICAgIGlmICghbV9nbHhQaXhtYXApIHsK
ICAgICAgICAgZGVzdHJveSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd2F5bGFuZC9QbGF0Zm9ybURpc3BsYXlXYXlsYW5kLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dheWxhbmQvUGxhdGZvcm1EaXNwbGF5V2F5bGFuZC5jcHAK
aW5kZXggMjdmNjFlYi4uY2NiYzM1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvd2F5bGFuZC9QbGF0Zm9ybURpc3BsYXlXYXlsYW5kLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93YXlsYW5kL1BsYXRmb3JtRGlzcGxheVdheWxh
bmQuY3BwCkBAIC04NywyMCArODcsOSBAQCBQbGF0Zm9ybURpc3BsYXlXYXlsYW5kOjpQbGF0Zm9y
bURpc3BsYXlXYXlsYW5kKHN0cnVjdCB3bF9kaXNwbGF5KiB3bERpc3BsYXkpCiAgICAgfTsKIAog
ICAgIG1fZWdsRGlzcGxheSA9IGVnbEdldERpc3BsYXkobV9kaXNwbGF5KTsKLSAgICBpZiAobV9l
Z2xEaXNwbGF5ID09IEVHTF9OT19ESVNQTEFZKSB7Ci0gICAgICAgIGdfd2FybmluZygiUGxhdGZv
cm1EaXNwbGF5V2F5bGFuZCBpbml0aWFsaXphdGlvbjogZmFpbGVkIHRvIGFjcXVpcmUgRUdMIGRp
c3BsYXkuIik7CisgICAgUGxhdGZvcm1EaXNwbGF5Ojppbml0aWFsaXplRUdMRGlzcGxheSgpOwor
ICAgIGlmIChtX2VnbERpc3BsYXkgPT0gRUdMX05PX0RJU1BMQVkpCiAgICAgICAgIHJldHVybjsK
LSAgICB9Ci0KLSAgICBpZiAoZWdsSW5pdGlhbGl6ZShtX2VnbERpc3BsYXksIDAsIDApID09IEVH
TF9GQUxTRSkgewotICAgICAgICBnX3dhcm5pbmcoIlBsYXRmb3JtRGlzcGxheVdheWxhbmQgaW5p
dGlhbGl6YXRpb246IGZhaWxlZCB0byBpbml0aWFsaXplIHRoZSBFR0wgZGlzcGxheS4iKTsKLSAg
ICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmIChlZ2xCaW5kQVBJKEVHTF9PUEVOR0xfRVNf
QVBJKSA9PSBFR0xfRkFMU0UpIHsKLSAgICAgICAgZ193YXJuaW5nKCJQbGF0Zm9ybURpc3BsYXlX
YXlsYW5kIGluaXRpYWxpemF0aW9uOiBmYWlsZWQgdG8gc2V0IEVHTF9PUEVOR0xfRVNfQVBJIGFz
IHRoZSByZW5kZXJpbmcgQVBJLiIpOwotICAgICAgICByZXR1cm47Ci0gICAgfQogCiAgICAgRUdM
aW50IG51bWJlck9mQ29uZmlnczsKICAgICBpZiAoIWVnbENob29zZUNvbmZpZyhtX2VnbERpc3Bs
YXksIGNvbmZpZ0F0dHJpYnV0ZXMsICZtX2VnbENvbmZpZywgMSwgJm51bWJlck9mQ29uZmlncykg
fHwgbnVtYmVyT2ZDb25maWdzICE9IDEpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3dheWxhbmQvUGxhdGZvcm1EaXNwbGF5V2F5bGFuZC5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2F5bGFuZC9QbGF0Zm9ybURpc3BsYXlXYXlsYW5k
LmgKaW5kZXggMTk1ODliZS4uMTU0ZmJiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvd2F5bGFuZC9QbGF0Zm9ybURpc3BsYXlXYXlsYW5kLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2F5bGFuZC9QbGF0Zm9ybURpc3BsYXlXYXls
YW5kLmgKQEAgLTQ3LDcgKzQ3LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgflBsYXRmb3JtRGlz
cGxheVdheWxhbmQoKTsKIAogICAgIHN0cnVjdCB3bF9kaXNwbGF5KiBuYXRpdmUoKSBjb25zdCB7
IHJldHVybiBtX2Rpc3BsYXk7IH0KLSAgICBFR0xEaXNwbGF5IGVnbERpc3BsYXkoKSBjb25zdCB7
IHJldHVybiBtX2VnbERpc3BsYXk7IH0KIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxXYXlsYW5kU3Vy
ZmFjZT4gY3JlYXRlU3VyZmFjZShjb25zdCBJbnRTaXplJiwgaW50IHdpZGdldElEKTsKIApAQCAt
NjgsNyArNjcsNiBAQCBwcml2YXRlOgogICAgIHN0cnVjdCB3bF9jb21wb3NpdG9yKiBtX2NvbXBv
c2l0b3I7CiAgICAgc3RydWN0IHdsX3dlYmtpdGd0ayogbV93ZWJraXRndGs7CiAKLSAgICBFR0xE
aXNwbGF5IG1fZWdsRGlzcGxheTsKICAgICBFR0xDb25maWcgbV9lZ2xDb25maWc7CiAgICAgYm9v
bCBtX2VnbENvbmZpZ0Nob3NlbjsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy94MTEvUGxhdGZvcm1EaXNwbGF5WDExLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3gxMS9QbGF0Zm9ybURpc3BsYXlYMTEuY3BwCmluZGV4IDhhYjAy
MWIuLjk3Yzg3MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3gxMS9QbGF0Zm9ybURpc3BsYXlYMTEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3gxMS9QbGF0Zm9ybURpc3BsYXlYMTEuY3BwCkBAIC0yOSw2ICsyOSwxMCBAQAog
I2lmIFBMQVRGT1JNKFgxMSkKICNpbmNsdWRlIDxYMTEvWGxpYi5oPgogCisjaWYgVVNFKEVHTCkK
KyNpbmNsdWRlIDxFR0wvZWdsLmg+CisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBQ
bGF0Zm9ybURpc3BsYXlYMTE6OlBsYXRmb3JtRGlzcGxheVgxMSgpCkBAIC00OSw2ICs1MywxNCBA
QCBQbGF0Zm9ybURpc3BsYXlYMTE6On5QbGF0Zm9ybURpc3BsYXlYMTEoKQogICAgICAgICBYQ2xv
c2VEaXNwbGF5KG1fZGlzcGxheSk7CiB9CiAKKyNpZiBVU0UoRUdMKQordm9pZCBQbGF0Zm9ybURp
c3BsYXlYMTE6OmluaXRpYWxpemVFR0xEaXNwbGF5KCkKK3sKKyAgICBtX2VnbERpc3BsYXkgPSBl
Z2xHZXREaXNwbGF5KG1fZGlzcGxheSk7CisgICAgUGxhdGZvcm1EaXNwbGF5Ojppbml0aWFsaXpl
RUdMRGlzcGxheSgpOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2Vu
ZGlmIC8vIFBMQVRGT1JNKFgxMSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3gxMS9QbGF0Zm9ybURpc3BsYXlYMTEuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3gxMS9QbGF0Zm9ybURpc3BsYXlYMTEuaAppbmRleCAzNDdkOGFlLi4wN2M4
YjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy94MTEvUGxh
dGZvcm1EaXNwbGF5WDExLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
eDExL1BsYXRmb3JtRGlzcGxheVgxMS5oCkBAIC00NSw2ICs0NSwxMCBAQCBwdWJsaWM6CiBwcml2
YXRlOgogICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gUGxh
dGZvcm1EaXNwbGF5OjpUeXBlOjpYMTE7IH0KIAorI2lmIFVTRShFR0wpCisgICAgdm9pZCBpbml0
aWFsaXplRUdMRGlzcGxheSgpIG92ZXJyaWRlOworI2VuZGlmCisKICAgICBEaXNwbGF5KiBtX2Rp
c3BsYXk7CiAgICAgYm9vbCBtX293bmVkRGlzcGxheTsKIH07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>252478</attachid>
            <date>2015-05-06 08:39:28 -0700</date>
            <delta_ts>2015-05-06 08:39:28 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>wk-egl-display.diff</filename>
            <type>text/plain</type>
            <size>27422</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBjNmNjYjRlLi4wNjhmODBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjgg
QEAKKzIwMTUtMDUtMDYgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtFR0xdIE1vdmUgRUdMRGlzcGxheSBoYW5kbGluZyB0byBQbGF0Zm9ybURp
c3BsYXkgYW5kIHJlbW92ZSBQbGF0Zm9ybURpc3BsYXkgZGVmaW5pdGlvbiBmcm9tIEdMRGVmcy5o
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDQ2ODUK
KworICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCisKKyAgICAgICAgVGhlIEVH
TCBkaXNwbGF5IGlzIGFsc28gaW5pdGlhbGl6ZWQgaW4gbXVsdGlwbGUgcGxhY2VzLCBhbmQgY291
bGQKKyAgICAgICAgYmUgdW5pZmllZCBpbiBQbGF0Zm9ybURpc3BsYXkuIFJlbW92ZSB0aGUgUGxh
dGZvcm1EaXNwbGF5CisgICAgICAgIGRlZmluaXRpb24gZnJvbSBwbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvR0xEZWZzLmggdG8gYXZvaWQgY29uZmxpY3RzLgorCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3Jt
RGlzcGxheTo6UGxhdGZvcm1EaXNwbGF5KTogSW5pdGlhbGl6ZSBtX2VnbERpc3BsYXkuCisgICAg
ICAgIChXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXk6On5QbGF0Zm9ybURpc3BsYXkpOiBDYWxsIHRl
cm1pbmF0ZUVHTERpc3BsYXkoKS4KKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxheTo6
ZWdsRGlzcGxheSk6IExhenkgaW50aWFsaXplIHRoZSBFR0wKKyAgICAgICAgZGlzcGxheSBhbmQg
cmV0dXJuIGl0LgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1EaXNwbGF5Ojppbml0aWFsaXpl
RUdMRGlzcGxheSk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXk6OnRlcm1pbmF0
ZUVHTERpc3BsYXkpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxh
eS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6c2hhcmVkRUdMRGlzcGxheSk6IFVzZSBQbGF0Zm9ybURpc3BsYXk6
OmVnbERpc3BsYXkoKS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xEZWZz
Lmg6IFJlbW92ZSB1bm5lZWRlZCBkZWZpbml0aW9ucy4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9vcGVuZ2wvR0xQbGF0Zm9ybVN1cmZhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R0xQ
bGF0Zm9ybVN1cmZhY2U6OkdMUGxhdGZvcm1TdXJmYWNlKTogUmVtb3ZlCisgICAgICAgIG1fc2hh
cmVkRGlzcGxheSBtZW1iZXIsIFBsYXRmb3JtRGlzcGxheTo6c2hhcmVkRGlzcGxheSgpIGNhbiBi
ZSB1c2VkIGluc3RlYWQuCisgICAgICAgIChXZWJDb3JlOjpHTFBsYXRmb3JtU3VyZmFjZTo6c2hh
cmVkRGlzcGxheSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3Blbmds
L0dMUGxhdGZvcm1TdXJmYWNlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFj
ZXMvZWdsL0VHTENvbmZpZ1NlbGVjdG9yLmg6IFVzZQorICAgICAgICBFR0xEaXNwbGF5IGluc3Rl
YWQgb2YgUGxhdGZvcm1EaXNwbGF5LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3N1cmZh
Y2VzL2VnbC9FR0xDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVHTE9mZlNjcmVlbkNv
bnRleHQ6OmluaXRpYWxpemUpOiBVc2UgUGxhdGZvcm1EaXNwbGF5OjplZ2xEaXNwbGF5KCkuCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWdsL0VHTEhlbHBlci5jcHA6IFJl
bW92ZSB0aGUKKyAgICAgICAgRUdMRGlzcGxheUNvbm5lY3Rpb24gY2xhcyBhbmQgdXNlIFBsYXRm
b3JtRGlzcGxheSBpbnN0ZWFkLgorICAgICAgICAoV2ViQ29yZTo6RUdMSGVscGVyOjplZ2xEaXNw
bGF5KToKKyAgICAgICAgKFdlYkNvcmU6OkVHTEhlbHBlcjo6Y3VycmVudERpc3BsYXkpOgorICAg
ICAgICAoV2ViQ29yZTo6RUdMRGlzcGxheUNvbm5lY3Rpb246OkVHTERpc3BsYXlDb25uZWN0aW9u
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkVHTERpc3BsYXlDb25uZWN0aW9uOjp+RUdM
RGlzcGxheUNvbm5lY3Rpb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RUdMRGlzcGxh
eUNvbm5lY3Rpb246OmRpc3BsYXkpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RUdMRGlz
cGxheUNvbm5lY3Rpb246OnRlcm1pbmF0ZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3Mvc3VyZmFjZXMvZWdsL0VHTEhlbHBlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL3N1cmZhY2VzL2VnbC9FR0xTdXJmYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVH
TFRyYW5zcG9ydFN1cmZhY2U6OkVHTFRyYW5zcG9ydFN1cmZhY2UpOiBVc2UgRUdMSGVscGVyOjpl
Z2xEaXNwbGF5KCkuCisgICAgICAgIChXZWJDb3JlOjpFR0xUcmFuc3BvcnRTdXJmYWNlOjpkZXN0
cm95KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpFR0xPZmZTY3JlZW5TdXJmYWNlOjpFR0xP
ZmZTY3JlZW5TdXJmYWNlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpFR0xPZmZTY3JlZW5T
dXJmYWNlOjpkZXN0cm95KTogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc3Vy
ZmFjZXMvZWdsL0VHTFhTdXJmYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVHTFdpbmRvd1Ry
YW5zcG9ydFN1cmZhY2U6OkVHTFdpbmRvd1RyYW5zcG9ydFN1cmZhY2UpOgorICAgICAgICBVc2Ug
UGxhdGZvcm1EaXNwbGF5OjplZ2xEaXNwbGF5KCkuCisgICAgICAgIChXZWJDb3JlOjpFR0xXaW5k
b3dUcmFuc3BvcnRTdXJmYWNlOjpzd2FwQnVmZmVycyk6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6RUdMUGl4bWFwU3VyZmFjZTo6RUdMUGl4bWFwU3VyZmFjZSk6IERpdHRvLgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HTFhDb250ZXh0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkdMWE9mZlNjcmVlbkNvbnRleHQ6OmluaXRpYWxpemUpOiBVc2UgWDExSGVscGVy
OjpuYXRpdmVEaXNwbGF5KCkuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMv
Z2x4L0dMWFN1cmZhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R0xYVHJhbnNwb3J0U3VyZmFj
ZTo6R0xYVHJhbnNwb3J0U3VyZmFjZSk6IERvIG5vdCB1c2UgbV9zaGFyZWREaXNwbGF5LgorICAg
ICAgICAoV2ViQ29yZTo6R0xYT2ZmU2NyZWVuU3VyZmFjZTo6aW5pdGlhbGl6ZSk6IERpdHRvLgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dheWxhbmQvUGxhdGZvcm1EaXNwbGF5V2F5bGFu
ZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXlXYXlsYW5kOjpQbGF0Zm9y
bURpc3BsYXlXYXlsYW5kKTogQ2FsbAorICAgICAgICBQbGF0Zm9ybURpc3BsYXk6OmluaXRpYWxp
emVFR0xEaXNwbGF5KCkgdG8gaW5zaWFsaXplIHRoZSBFR0wgZGlzcGxheS4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy93YXlsYW5kL1BsYXRmb3JtRGlzcGxheVdheWxhbmQuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy94MTEvUGxhdGZvcm1EaXNwbGF5WDExLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxheVgxMTo6aW5pdGlhbGl6ZUVHTERpc3BsYXkpOiBP
dmVycmlkZQorICAgICAgICBQbGF0Zm9ybURpc3BsYXk6OmluaXRpYWxpemVFR0xEaXNwbGF5KCkg
dG8gaW5pdGlhbGl6ZSB0aGUKKyAgICAgICAgbV9lZ2xEaXNwbGF5IG1lbWJlci4KKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy94MTEvUGxhdGZvcm1EaXNwbGF5WDExLmg6CisKIDIwMTUtMDUt
MDUgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAg
IFtTT1VQXSBOZXR3b3JrIENhY2hlOiBJbXBsZW1lbnQgU2hhcmVhYmxlUmVzb3VyY2UgZm9yIFNv
dXAgYW5kIGVuYWJsZSBpdCBmb3IgR1RLIHBsYXRmb3JtCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmNwcAppbmRleCA1OGJkZDY5Li5k
NjIxMGEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0
Zm9ybURpc3BsYXkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1Bs
YXRmb3JtRGlzcGxheS5jcHAKQEAgLTQ1LDYgKzQ1LDEwIEBACiAjaW5jbHVkZSA8RWNvcmVfWC5o
PgogI2VuZGlmCiAKKyNpZiBVU0UoRUdMKQorI2luY2x1ZGUgPEVHTC9lZ2wuaD4KKyNlbmRpZgor
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybURpc3BsYXk+
IFBsYXRmb3JtRGlzcGxheTo6Y3JlYXRlUGxhdGZvcm1EaXNwbGF5KCkKQEAgLTg1LDQgKzg5LDYz
IEBAIFBsYXRmb3JtRGlzcGxheSYgUGxhdGZvcm1EaXNwbGF5OjpzaGFyZWREaXNwbGF5KCkKICAg
ICByZXR1cm4gKmRpc3BsYXk7CiB9CiAKK1BsYXRmb3JtRGlzcGxheTo6UGxhdGZvcm1EaXNwbGF5
KCkKKyNpZiBVU0UoRUdMKQorICAgIDogbV9lZ2xEaXNwbGF5KEVHTF9OT19ESVNQTEFZKQorI2Vu
ZGlmCit7Cit9CisKK1BsYXRmb3JtRGlzcGxheTo6flBsYXRmb3JtRGlzcGxheSgpCit7CisjaWYg
VVNFKEVHTCkKKyAgICB0ZXJtaW5hdGVFR0xEaXNwbGF5KCk7CisjZW5kaWYKK30KKworI2lmIFVT
RShFR0wpCitFR0xEaXNwbGF5IFBsYXRmb3JtRGlzcGxheTo6ZWdsRGlzcGxheSgpIGNvbnN0Cit7
CisgICAgaWYgKCFtX2VnbERpc3BsYXlJbml0aWFsaXplZCkKKyAgICAgICAgY29uc3RfY2FzdDxQ
bGF0Zm9ybURpc3BsYXkqPih0aGlzKS0+aW5pdGlhbGl6ZUVHTERpc3BsYXkoKTsKKyAgICByZXR1
cm4gbV9lZ2xEaXNwbGF5OworfQorCit2b2lkIFBsYXRmb3JtRGlzcGxheTo6aW5pdGlhbGl6ZUVH
TERpc3BsYXkoKQoreworICAgIG1fZWdsRGlzcGxheUluaXRpYWxpemVkID0gdHJ1ZTsKKworICAg
IGlmIChtX2VnbERpc3BsYXkgPT0gRUdMX05PX0RJU1BMQVkpIHsKKyAgICAgICAgbV9lZ2xEaXNw
bGF5ID0gZWdsR2V0RGlzcGxheShFR0xfREVGQVVMVF9ESVNQTEFZKTsKKyAgICAgICAgaWYgKG1f
ZWdsRGlzcGxheSA9PSBFR0xfTk9fRElTUExBWSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBpZiAoZWdsSW5pdGlhbGl6ZShtX2VnbERpc3BsYXksIDAsIDApID09IEVHTF9GQUxT
RSkgeworICAgICAgICBMT0dfRVJST1IoIkVHTERpc3BsYXkgSW5pdGlhbGl6YXRpb24gZmFpbGVk
LiIpOworICAgICAgICB0ZXJtaW5hdGVFR0xEaXNwbGF5KCk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKKyNpZiBVU0UoT1BFTkdMX0VTXzIpCisgICAgc3RhdGljIGNvbnN0IEVHTGVudW0gZWds
QVBJVmVyc2lvbiA9IEVHTF9PUEVOR0xfRVNfQVBJOworI2Vsc2UKKyAgICBzdGF0aWMgY29uc3Qg
RUdMZW51bSBlZ2xBUElWZXJzaW9uID0gRUdMX09QRU5HTF9BUEk7CisjZW5kaWYKKyAgICBpZiAo
ZWdsQmluZEFQSShlZ2xBUElWZXJzaW9uKSA9PSBFR0xfRkFMU0UpIHsKKyAgICAgICAgTE9HX0VS
Uk9SKCJGYWlsZWQgdG8gc2V0IEVHTCBBUEkoJWQpLiIsIGVnbEdldEVycm9yKCkpOworICAgICAg
ICB0ZXJtaW5hdGVFR0xEaXNwbGF5KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9Cit9CisKK3Zv
aWQgUGxhdGZvcm1EaXNwbGF5Ojp0ZXJtaW5hdGVFR0xEaXNwbGF5KCkKK3sKKyAgICBpZiAobV9l
Z2xEaXNwbGF5ID09IEVHTF9OT19ESVNQTEFZKQorICAgICAgICByZXR1cm47CisgICAgZWdsVGVy
bWluYXRlKG1fZWdsRGlzcGxheSk7CisgICAgbV9lZ2xEaXNwbGF5ID0gRUdMX05PX0RJU1BMQVk7
Cit9CisjZW5kaWYgLy8gVVNFKEVHTCkKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuaAppbmRl
eCAyMzEyNzBmLi4xOGE2NzljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuaApAQCAtMjksMTMgKzI5LDE3IEBACiAjaW5jbHVkZSA8
d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL1R5cGVDYXN0cy5oPgogCisjaWYgVVNF
KEVHTCkKK3R5cGVkZWYgdm9pZCAqRUdMRGlzcGxheTsKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIFBsYXRmb3JtRGlzcGxheSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoUGxhdGZvcm1EaXNwbGF5KTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAg
ICAgc3RhdGljIFBsYXRmb3JtRGlzcGxheSYgc2hhcmVkRGlzcGxheSgpOwotICAgIHZpcnR1YWwg
flBsYXRmb3JtRGlzcGxheSgpID0gZGVmYXVsdDsKKyAgICB2aXJ0dWFsIH5QbGF0Zm9ybURpc3Bs
YXkoKTsKIAogICAgIGVudW0gY2xhc3MgVHlwZSB7CiAjaWYgUExBVEZPUk0oWDExKQpAQCAtNDgs
MTEgKzUyLDI3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgPSAw
OwogCisjaWYgVVNFKEVHTCkKKyAgICBFR0xEaXNwbGF5IGVnbERpc3BsYXkoKSBjb25zdDsKKyNl
bmRpZgorCiBwcm90ZWN0ZWQ6Ci0gICAgUGxhdGZvcm1EaXNwbGF5KCkgPSBkZWZhdWx0OworICAg
IFBsYXRmb3JtRGlzcGxheSgpOworCisjaWYgVVNFKEVHTCkKKyAgICB2aXJ0dWFsIHZvaWQgaW5p
dGlhbGl6ZUVHTERpc3BsYXkoKTsKKworICAgIEVHTERpc3BsYXkgbV9lZ2xEaXNwbGF5OworI2Vu
ZGlmCiAKIHByaXZhdGU6CiAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybURpc3Bs
YXk+IGNyZWF0ZVBsYXRmb3JtRGlzcGxheSgpOworCisjaWYgVVNFKEVHTCkKKyAgICB2b2lkIHRl
cm1pbmF0ZUVHTERpc3BsYXkoKTsKKworICAgIGJvb2wgbV9lZ2xEaXNwbGF5SW5pdGlhbGl6ZWQg
eyBmYWxzZSB9OworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuY3Bw
CmluZGV4IDg5Yjk2MTIuLjc3N2NjZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuY3BwCkBAIC0yMiw2ICsyMiw3IEBACiAj
aWYgVVNFKEVHTCkKIAogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dDNELmgiCisjaW5jbHVkZSAi
UGxhdGZvcm1EaXNwbGF5LmgiCiAKICNpZiBVU0UoQ0FJUk8pCiAjaW5jbHVkZSA8Y2Fpcm8uaD4K
QEAgLTM4LDEwICszOSw2IEBACiAjaW5jbHVkZSAiUGxhdGZvcm1EaXNwbGF5WDExLmgiCiAjZW5k
aWYKIAotI2lmIFBMQVRGT1JNKFdBWUxBTkQpCi0jaW5jbHVkZSAiUGxhdGZvcm1EaXNwbGF5V2F5
bGFuZC5oIgotI2VuZGlmCi0KICNpZiBFTkFCTEUoQUNDRUxFUkFURURfMkRfQ0FOVkFTKQogLy8g
Y2Fpcm8tZ2wuaCBpbmNsdWRlcyBzb21lIGRlZmluaXRpb25zIGZyb20gR0xYIHRoYXQgY29uZmxp
Y3Qgd2l0aAogLy8gdGhlIG9uZXMgcHJvdmlkZWQgYnkgdXMuIFNpbmNlIEdMQ29udGV4dEVHTCBk
b2Vzbid0IHVzZSBhbnkgR0xYCkBAIC01MiwzNCArNDksOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLXN0YXRpYyBFR0xEaXNwbGF5IGdTaGFyZWRFR0xEaXNwbGF5ID0gRUdMX05PX0RJU1BM
QVk7Ci0KLSNpZiBVU0UoT1BFTkdMX0VTXzIpCi1zdGF0aWMgY29uc3QgRUdMZW51bSBnR0xBUEkg
PSBFR0xfT1BFTkdMX0VTX0FQSTsKLSNlbHNlCi1zdGF0aWMgY29uc3QgRUdMZW51bSBnR0xBUEkg
PSBFR0xfT1BFTkdMX0FQSTsKLSNlbmRpZgotCiBzdGF0aWMgRUdMRGlzcGxheSBzaGFyZWRFR0xE
aXNwbGF5KCkKIHsKLSAgICBzdGF0aWMgYm9vbCBpbml0aWFsaXplZCA9IGZhbHNlOwotICAgIGlm
ICghaW5pdGlhbGl6ZWQpIHsKLSAgICAgICAgaW5pdGlhbGl6ZWQgPSB0cnVlOwotCi0jaWYgUExB
VEZPUk0oV0FZTEFORCkKLSAgICAgICAgaWYgKGlzPFBsYXRmb3JtRGlzcGxheVdheWxhbmQ+KFBs
YXRmb3JtRGlzcGxheTo6c2hhcmVkRGlzcGxheSgpKSkKLSAgICAgICAgICAgIGdTaGFyZWRFR0xE
aXNwbGF5ID0gZWdsR2V0RGlzcGxheShkb3duY2FzdDxQbGF0Zm9ybURpc3BsYXlXYXlsYW5kPihQ
bGF0Zm9ybURpc3BsYXk6OnNoYXJlZERpc3BsYXkoKSkubmF0aXZlKCkpOwotICAgICAgICBlbHNl
IC8vIE5vdGUgdGhhdCB0aGlzIGJyYW5jaCBjb250aW51dGVzIG91dHNpZGUgdGhpcyAjaWYtZ3Vh
cmRlZCBzZWdtZW50LgotI2VuZGlmCi0jaWYgUExBVEZPUk0oWDExKQotICAgICAgICAgICAgZ1No
YXJlZEVHTERpc3BsYXkgPSBlZ2xHZXREaXNwbGF5KGRvd25jYXN0PFBsYXRmb3JtRGlzcGxheVgx
MT4oUGxhdGZvcm1EaXNwbGF5OjpzaGFyZWREaXNwbGF5KCkpLm5hdGl2ZSgpKTsKLSNlbHNlCi0g
ICAgICAgICAgICBnU2hhcmVkRUdMRGlzcGxheSA9IGVnbEdldERpc3BsYXkoRUdMX0RFRkFVTFRf
RElTUExBWSk7Ci0jZW5kaWYKLSAgICAgICAgaWYgKGdTaGFyZWRFR0xEaXNwbGF5ICE9IEVHTF9O
T19ESVNQTEFZICYmICghZWdsSW5pdGlhbGl6ZShnU2hhcmVkRUdMRGlzcGxheSwgMCwgMCkgfHwg
IWVnbEJpbmRBUEkoZ0dMQVBJKSkpCi0gICAgICAgICAgICBnU2hhcmVkRUdMRGlzcGxheSA9IEVH
TF9OT19ESVNQTEFZOwotICAgIH0KLSAgICByZXR1cm4gZ1NoYXJlZEVHTERpc3BsYXk7CisgICAg
cmV0dXJuIFBsYXRmb3JtRGlzcGxheTo6c2hhcmVkRGlzcGxheSgpLmVnbERpc3BsYXkoKTsKIH0K
IAogc3RhdGljIGNvbnN0IEVHTGludCBnQ29udGV4dEF0dHJpYnV0ZXNbXSA9IHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HTERlZnMuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HTERlZnMuaAppbmRleCBhMDkx
ZjEzLi45YTJjMmZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9vcGVuZ2wvR0xEZWZzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
b3BlbmdsL0dMRGVmcy5oCkBAIC01NywyMiArNTcsMTQgQEAgdHlwZWRlZiB1aW50MzJfdCBQbGF0
Zm9ybUJ1ZmZlckhhbmRsZTsKIAogI2lmIFVTRShHTFgpCiB0eXBlZGVmIEdMWENvbnRleHQgUGxh
dGZvcm1Db250ZXh0OwotdHlwZWRlZiBEaXNwbGF5KiBQbGF0Zm9ybURpc3BsYXk7CiB0eXBlZGVm
IEdMWEZCQ29uZmlnIFBsYXRmb3JtU3VyZmFjZUNvbmZpZzsKIHR5cGVkZWYgR0xYRHJhd2FibGUg
UGxhdGZvcm1EcmF3YWJsZTsKICNlbGlmIFVTRShFR0wpCi0jaWYgVVNFKE9QRU5HTF9FU18yKQot
c3RhdGljIGNvbnN0IEVHTGVudW0gZWdsQVBJVmVyc2lvbiA9IEVHTF9PUEVOR0xfRVNfQVBJOwot
I2Vsc2UKLXN0YXRpYyBjb25zdCBFR0xlbnVtIGVnbEFQSVZlcnNpb24gPSBFR0xfT1BFTkdMX0FQ
STsKLSNlbmRpZgogdHlwZWRlZiBFR0xDb250ZXh0IFBsYXRmb3JtQ29udGV4dDsKLXR5cGVkZWYg
RUdMRGlzcGxheSBQbGF0Zm9ybURpc3BsYXk7CiB0eXBlZGVmIEVHTENvbmZpZyBQbGF0Zm9ybVN1
cmZhY2VDb25maWc7CiB0eXBlZGVmIEVHTFN1cmZhY2UgUGxhdGZvcm1EcmF3YWJsZTsKICNlbHNl
CiB0eXBlZGVmIHZvaWQqIFBsYXRmb3JtQ29udGV4dDsKLXR5cGVkZWYgdm9pZCogUGxhdGZvcm1E
aXNwbGF5OwogdHlwZWRlZiB2b2lkKiBQbGF0Zm9ybVN1cmZhY2VDb25maWc7CiB0eXBlZGVmIHZv
aWQqIFBsYXRmb3JtRHJhd2FibGU7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HTFBsYXRmb3JtU3VyZmFjZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xQbGF0Zm9ybVN1cmZhY2UuY3BwCmlu
ZGV4IDRmMDNlZjYuLmE0OWMzZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL29wZW5nbC9HTFBsYXRmb3JtU3VyZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1TdXJmYWNlLmNwcApAQCAtNjEs
OCArNjEsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8R0xQbGF0Zm9ybVN1cmZhY2U+IEdMUGxhdGZvcm1T
dXJmYWNlOjpjcmVhdGVPZmZTY3JlZW5TdXJmYWNlKFN1cgogfQogCiBHTFBsYXRmb3JtU3VyZmFj
ZTo6R0xQbGF0Zm9ybVN1cmZhY2UoU3VyZmFjZUF0dHJpYnV0ZXMpCi0gICAgOiBtX3NoYXJlZERp
c3BsYXkoMCkKLSAgICAsIG1fZHJhd2FibGUoMCkKKyAgICA6IG1fZHJhd2FibGUoMCkKICAgICAs
IG1fYnVmZmVySGFuZGxlKDApCiB7CiB9CkBAIC04OCwxMSArODcsNiBAQCBjb25zdCBJbnRSZWN0
JiBHTFBsYXRmb3JtU3VyZmFjZTo6Z2VvbWV0cnkoKSBjb25zdAogICAgIHJldHVybiBtX3JlY3Q7
CiB9CiAKLVBsYXRmb3JtRGlzcGxheSBHTFBsYXRmb3JtU3VyZmFjZTo6c2hhcmVkRGlzcGxheSgp
IGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fc2hhcmVkRGlzcGxheTsKLX0KLQogUGxhdGZvcm1TdXJm
YWNlQ29uZmlnIEdMUGxhdGZvcm1TdXJmYWNlOjpjb25maWd1cmF0aW9uKCkKIHsKICAgICByZXR1
cm4gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5n
bC9HTFBsYXRmb3JtU3VyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
b3BlbmdsL0dMUGxhdGZvcm1TdXJmYWNlLmgKaW5kZXggZjVlNGY1My4uZjE0MWQzNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1T
dXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dM
UGxhdGZvcm1TdXJmYWNlLmgKQEAgLTU5LDggKzU5LDYgQEAgcHVibGljOgogCiAgICAgUGxhdGZv
cm1EcmF3YWJsZSBkcmF3YWJsZSgpIGNvbnN0OwogCi0gICAgUGxhdGZvcm1EaXNwbGF5IHNoYXJl
ZERpc3BsYXkoKSBjb25zdDsKLQogICAgIHZpcnR1YWwgU3VyZmFjZUF0dHJpYnV0ZXMgYXR0cmli
dXRlcygpIGNvbnN0OwogCiAgICAgdmlydHVhbCB2b2lkIHN3YXBCdWZmZXJzKCk7CkBAIC04NCw3
ICs4Miw2IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBHTFBsYXRmb3JtU3VyZmFjZShTdXJm
YWNlQXR0cmlidXRlcyk7CiAKLSAgICBQbGF0Zm9ybURpc3BsYXkgbV9zaGFyZWREaXNwbGF5Owog
ICAgIFBsYXRmb3JtRHJhd2FibGUgbV9kcmF3YWJsZTsKICAgICBQbGF0Zm9ybUJ1ZmZlckhhbmRs
ZSBtX2J1ZmZlckhhbmRsZTsKICAgICBJbnRSZWN0IG1fcmVjdDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2VnbC9FR0xDb25maWdTZWxlY3Rv
ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWdsL0VHTENv
bmZpZ1NlbGVjdG9yLmgKaW5kZXggMjcyY2JkYi4uMTM5YzBiNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWdsL0VHTENvbmZpZ1NlbGVjdG9y
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWdsL0VH
TENvbmZpZ1NlbGVjdG9yLmgKQEAgLTYxLDcgKzYxLDcgQEAgcHJvdGVjdGVkOgogICAgIEVHTENv
bmZpZyBtX3BpeG1hcEZCQ29uZmlnOwogICAgIEVHTENvbmZpZyBtX3N1cmZhY2VDb250ZXh0RkJD
b25maWc7CiAgICAgdW5zaWduZWQgbV9hdHRyaWJ1dGVzIDogMzsKLSAgICBQbGF0Zm9ybURpc3Bs
YXkgbV9zaGFyZWREaXNwbGF5OworICAgIEVHTERpc3BsYXkgbV9zaGFyZWREaXNwbGF5OwogfTsK
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFj
ZXMvZWdsL0VHTENvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
c3VyZmFjZXMvZWdsL0VHTENvbnRleHQuY3BwCmluZGV4IDYyYWY0NDMuLjFmZTdhMzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2VnbC9FR0xD
b250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNl
cy9lZ2wvRUdMQ29udGV4dC5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIFVTRShFR0wpCiAK
KyNpbmNsdWRlICJQbGF0Zm9ybURpc3BsYXkuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNzIsMTIgKzczLDcgQEAgYm9vbCBFR0xP
ZmZTY3JlZW5Db250ZXh0Ojppbml0aWFsaXplKEdMUGxhdGZvcm1TdXJmYWNlKiBzdXJmYWNlLCBQ
bGF0Zm9ybUNvbnRleHQKICAgICBpZiAoIXN1cmZhY2UpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAotICAgIGlmICghZWdsQmluZEFQSShlZ2xBUElWZXJzaW9uKSkgewotICAgICAgICBMT0dfRVJS
T1IoIkZhaWxlZCB0byBzZXQgRUdMIEFQSSglZCkuIiwgZWdsR2V0RXJyb3IoKSk7Ci0gICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICBtX2Rpc3BsYXkgPSBzdXJmYWNlLT5zaGFyZWRE
aXNwbGF5KCk7CisgICAgbV9kaXNwbGF5ID0gUGxhdGZvcm1EaXNwbGF5OjpzaGFyZWREaXNwbGF5
KCkuZWdsRGlzcGxheSgpOwogICAgIGlmICghbV9kaXNwbGF5KQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZh
Y2VzL2VnbC9FR0xIZWxwZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
c3VyZmFjZXMvZWdsL0VHTEhlbHBlci5jcHAKaW5kZXggOWFlZDlhZi4uYTAxNWU4MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWdsL0VHTEhl
bHBlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMv
ZWdsL0VHTEhlbHBlci5jcHAKQEAgLTI4LDg5ICsyOCwyMiBAQAogCiAjaWYgVVNFKEVHTCkKIAor
I2luY2x1ZGUgIlBsYXRmb3JtRGlzcGxheS5oIgogI2luY2x1ZGUgPG9wZW5nbC9HTFBsYXRmb3Jt
Q29udGV4dC5oPgogCi0jaWYgUExBVEZPUk0oWDExKQotI2luY2x1ZGUgIlgxMUhlbHBlci5oIgot
I2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotI2lmIFBMQVRGT1JNKFgxMSkKLXR5cGVk
ZWYgWDExSGVscGVyIE5hdGl2ZVdyYXBwZXI7Ci10eXBlZGVmIERpc3BsYXkgTmF0aXZlU2hhcmVk
RGlzcGxheTsKLSNlbHNlCi10eXBlZGVmIHZvaWQgTmF0aXZlU2hhcmVkRGlzcGxheTsKLSNlbmRp
ZgotCiBzdGF0aWMgUEZORUdMQ1JFQVRFSU1BR0VLSFJQUk9DIGVnbENyZWF0ZUltYWdlS0hSID0g
MDsKIHN0YXRpYyBQRk5FR0xERVNUUk9ZSU1BR0VLSFJQUk9DIGVnbERlc3Ryb3lJbWFnZUtIUiA9
IDA7CiBzdGF0aWMgUEZOR0xFR0xJTUFHRVRBUkdFVFRFWFRVUkUyRE9FU1BST0MgZWdsSW1hZ2VU
YXJnZXRUZXh0dXJlMkRPRVMgPSAwOwogCi1zdHJ1Y3QgRUdMRGlzcGxheUNvbm5lY3Rpb24gewot
Ci0gICAgRUdMRGlzcGxheUNvbm5lY3Rpb24oTmF0aXZlU2hhcmVkRGlzcGxheSogZGlzcGxheSA9
IDApCi0gICAgewotICAgICAgICBpZiAoZGlzcGxheSkKLSAgICAgICAgICAgIG1fZWdsRGlzcGxh
eSA9IGVnbEdldERpc3BsYXkocmVpbnRlcnByZXRfY2FzdDxFR0xOYXRpdmVEaXNwbGF5VHlwZT4o
ZGlzcGxheSkpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBtX2VnbERpc3BsYXkgPSBlZ2xH
ZXREaXNwbGF5KEVHTF9ERUZBVUxUX0RJU1BMQVkpOwotCi0gICAgICAgIGlmIChtX2VnbERpc3Bs
YXkgPT0gRUdMX05PX0RJU1BMQVkpIHsKLSAgICAgICAgICAgIExPR19FUlJPUigiRUdMRGlzcGxh
eSBJbml0aWFsaXphdGlvbiBmYWlsZWQuIik7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAg
IH0KLQotICAgICAgICBFR0xCb29sZWFuIHN1Y2Nlc3M7Ci0gICAgICAgIHN1Y2Nlc3MgPSBlZ2xJ
bml0aWFsaXplKG1fZWdsRGlzcGxheSwgMCwgMCk7Ci0KLSAgICAgICAgaWYgKHN1Y2Nlc3MgIT0g
RUdMX1RSVUUpIHsKLSAgICAgICAgICAgIExPR19FUlJPUigiRUdMSW5pdGlhbGl6YXRpb24gZmFp
bGVkLiIpOwotICAgICAgICAgICAgdGVybWluYXRlKCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0g
ICAgICAgIH0KLQotICAgICAgICBzdWNjZXNzID0gZWdsQmluZEFQSShlZ2xBUElWZXJzaW9uKTsK
LQotICAgICAgICBpZiAoc3VjY2VzcyAhPSBFR0xfVFJVRSkgewotICAgICAgICAgICAgTE9HX0VS
Uk9SKCJGYWlsZWQgdG8gc2V0IEVHTCBBUEkoJWQpLiIsIGVnbEdldEVycm9yKCkpOwotICAgICAg
ICAgICAgdGVybWluYXRlKCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICB9
Ci0KLSAgICB+RUdMRGlzcGxheUNvbm5lY3Rpb24oKQotICAgIHsKLSAgICAgICAgdGVybWluYXRl
KCk7Ci0gICAgfQotCi0gICAgRUdMRGlzcGxheSBkaXNwbGF5KCkgeyByZXR1cm4gbV9lZ2xEaXNw
bGF5OyB9Ci0KLXByaXZhdGU6Ci0gICAgdm9pZCB0ZXJtaW5hdGUoKQotICAgIHsKLSAgICAgICAg
aWYgKG1fZWdsRGlzcGxheSA9PSBFR0xfTk9fRElTUExBWSkKLSAgICAgICAgICAgIHJldHVybjsK
LQotICAgICAgICBlZ2xUZXJtaW5hdGUobV9lZ2xEaXNwbGF5KTsKLSAgICAgICAgbV9lZ2xEaXNw
bGF5ID0gRUdMX05PX0RJU1BMQVk7Ci0gICAgfQotCi0gICAgRUdMRGlzcGxheSBtX2VnbERpc3Bs
YXk7Ci19OwotCi1QbGF0Zm9ybURpc3BsYXkgRUdMSGVscGVyOjplZ2xEaXNwbGF5KCkKK0VHTERp
c3BsYXkgRUdMSGVscGVyOjplZ2xEaXNwbGF5KCkKIHsKLSAgICAvLyBEaXNwbGF5IGNvbm5lY3Rp
b24gd2lsbCBvbmx5IGJlIGJyb2tlbiBhdCBwcm9ncmFtIHNodXRkb3duLgotI2lmIFBMQVRGT1JN
KFgxMSkKLSAgICBzdGF0aWMgRUdMRGlzcGxheUNvbm5lY3Rpb24gZGlzcGxheUNvbm5lY3Rpb24o
TmF0aXZlV3JhcHBlcjo6bmF0aXZlRGlzcGxheSgpKTsKLSNlbHNlCi0gICAgc3RhdGljIEVHTERp
c3BsYXlDb25uZWN0aW9uIGRpc3BsYXlDb25uZWN0aW9uOwotI2VuZGlmCi0gICAgcmV0dXJuIGRp
c3BsYXlDb25uZWN0aW9uLmRpc3BsYXkoKTsKKyAgICBQbGF0Zm9ybURpc3BsYXk6OnNoYXJlZERp
c3BsYXkoKS5lZ2xEaXNwbGF5KCk7CiB9CiAKLVBsYXRmb3JtRGlzcGxheSBFR0xIZWxwZXI6OmN1
cnJlbnREaXNwbGF5KCkKK0VHTERpc3BsYXkgRUdMSGVscGVyOjpjdXJyZW50RGlzcGxheSgpCiB7
CiAgICAgRUdMRGlzcGxheSBkaXNwbGF5ID0gZWdsR2V0Q3VycmVudERpc3BsYXkoKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWdsL0VH
TEhlbHBlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWds
L0VHTEhlbHBlci5oCmluZGV4IGYyNDU4ZmIuLjg4MjIyYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2VnbC9FR0xIZWxwZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9lZ2wvRUdMSGVscGVyLmgK
QEAgLTM0LDggKzM0LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBFR0xIZWxwZXIg
ewogcHVibGljOgotICAgIHN0YXRpYyBQbGF0Zm9ybURpc3BsYXkgZWdsRGlzcGxheSgpOwotICAg
IHN0YXRpYyBQbGF0Zm9ybURpc3BsYXkgY3VycmVudERpc3BsYXkoKTsKKyAgICBzdGF0aWMgRUdM
RGlzcGxheSBlZ2xEaXNwbGF5KCk7CisgICAgc3RhdGljIEVHTERpc3BsYXkgY3VycmVudERpc3Bs
YXkoKTsKICAgICBzdGF0aWMgdm9pZCByZXNvbHZlRUdMQmluZGluZ3MoKTsKICAgICBzdGF0aWMg
dm9pZCBjcmVhdGVFR0xJbWFnZShFR0xJbWFnZUtIUiosIEdMZW51bSwgY29uc3QgRUdMQ2xpZW50
QnVmZmVyLCBjb25zdCBFR0xpbnQqID0gMCk7CiAgICAgc3RhdGljIHZvaWQgZGVzdHJveUVHTElt
YWdlKGNvbnN0IEVHTEltYWdlS0hSKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3N1cmZhY2VzL2VnbC9FR0xTdXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2VnbC9FR0xTdXJmYWNlLmNwcAppbmRleCA2YzY5
NTAyLi40MjM0ZWViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9zdXJmYWNlcy9lZ2wvRUdMU3VyZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWdsL0VHTFN1cmZhY2UuY3BwCkBAIC03NSw5ICs3NSw3IEBA
IHN0ZDo6dW5pcXVlX3B0cjxHTFRyYW5zcG9ydFN1cmZhY2VDbGllbnQ+IEVHTFRyYW5zcG9ydFN1
cmZhY2U6OmNyZWF0ZVRyYW5zcG9ydFN1CiBFR0xUcmFuc3BvcnRTdXJmYWNlOjpFR0xUcmFuc3Bv
cnRTdXJmYWNlKGNvbnN0IEludFNpemUmIHNpemUsIFN1cmZhY2VBdHRyaWJ1dGVzIGF0dHJpYnV0
ZXMpCiAgICAgOiBHTFRyYW5zcG9ydFN1cmZhY2Uoc2l6ZSwgYXR0cmlidXRlcykKIHsKLSAgICBt
X3NoYXJlZERpc3BsYXkgPSBFR0xIZWxwZXI6OmVnbERpc3BsYXkoKTsKLQotICAgIGlmIChtX3No
YXJlZERpc3BsYXkgPT0gRUdMX05PX0RJU1BMQVkpCisgICAgaWYgKEVHTEhlbHBlcjo6ZWdsRGlz
cGxheSgpID09IEVHTF9OT19ESVNQTEFZKQogICAgICAgICByZXR1cm47CiAKICAgICBtX2NvbmZp
Z1NlbGVjdG9yID0gc3RkOjptYWtlX3VuaXF1ZTxFR0xDb25maWdTZWxlY3Rvcj4oYXR0cmlidXRl
cyk7CkBAIC05NCwxMyArOTIsMTMgQEAgRUdMVHJhbnNwb3J0U3VyZmFjZTo6fkVHTFRyYW5zcG9y
dFN1cmZhY2UoKQogCiB2b2lkIEVHTFRyYW5zcG9ydFN1cmZhY2U6OmRlc3Ryb3koKQogewotICAg
IGlmIChtX2RyYXdhYmxlID09IEVHTF9OT19TVVJGQUNFIHx8IG1fc2hhcmVkRGlzcGxheSA9PSBF
R0xfTk9fRElTUExBWSkKKyAgICBpZiAobV9kcmF3YWJsZSA9PSBFR0xfTk9fU1VSRkFDRSB8fCBF
R0xIZWxwZXI6OmVnbERpc3BsYXkoKSA9PSBFR0xfTk9fRElTUExBWSkKICAgICAgICAgcmV0dXJu
OwogCiAgICAgR0xUcmFuc3BvcnRTdXJmYWNlOjpkZXN0cm95KCk7CiAKICAgICBpZiAobV9kcmF3
YWJsZSkgewotICAgICAgICBlZ2xEZXN0cm95U3VyZmFjZShtX3NoYXJlZERpc3BsYXksIG1fZHJh
d2FibGUpOworICAgICAgICBlZ2xEZXN0cm95U3VyZmFjZShFR0xIZWxwZXI6OmVnbERpc3BsYXko
KSwgbV9kcmF3YWJsZSk7CiAgICAgICAgIG1fZHJhd2FibGUgPSBFR0xfTk9fU1VSRkFDRTsKICAg
ICB9CiAKQEAgLTEyNSw5ICsxMjMsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8R0xQbGF0Zm9ybVN1cmZh
Y2U+IEVHTE9mZlNjcmVlblN1cmZhY2U6OmNyZWF0ZU9mZlNjcmVlblN1cmZhY2UoUwogRUdMT2Zm
U2NyZWVuU3VyZmFjZTo6RUdMT2ZmU2NyZWVuU3VyZmFjZShTdXJmYWNlQXR0cmlidXRlcyBzdXJm
YWNlQXR0cmlidXRlcykKICAgICA6IEdMUGxhdGZvcm1TdXJmYWNlKHN1cmZhY2VBdHRyaWJ1dGVz
KQogewotICAgIG1fc2hhcmVkRGlzcGxheSA9IEVHTEhlbHBlcjo6ZWdsRGlzcGxheSgpOwotCi0g
ICAgaWYgKG1fc2hhcmVkRGlzcGxheSA9PSBFR0xfTk9fRElTUExBWSkKKyAgICBpZiAoRUdMSGVs
cGVyOjplZ2xEaXNwbGF5KCkgPT0gRUdMX05PX0RJU1BMQVkpCiAgICAgICAgIHJldHVybjsKIAog
ICAgIG1fY29uZmlnU2VsZWN0b3IgPSBzdGQ6Om1ha2VfdW5pcXVlPEVHTENvbmZpZ1NlbGVjdG9y
PihzdXJmYWNlQXR0cmlidXRlcyk7CkBAIC0xNDksMTEgKzE0NSwxMSBAQCBQbGF0Zm9ybVN1cmZh
Y2VDb25maWcgRUdMT2ZmU2NyZWVuU3VyZmFjZTo6Y29uZmlndXJhdGlvbigpCiAKIHZvaWQgRUdM
T2ZmU2NyZWVuU3VyZmFjZTo6ZGVzdHJveSgpCiB7Ci0gICAgaWYgKG1fc2hhcmVkRGlzcGxheSA9
PSBFR0xfTk9fRElTUExBWSB8fCBtX2RyYXdhYmxlID09IEVHTF9OT19TVVJGQUNFKQorICAgIGlm
IChFR0xIZWxwZXI6OmVnbERpc3BsYXkoKSA9PSBFR0xfTk9fRElTUExBWSB8fCBtX2RyYXdhYmxl
ID09IEVHTF9OT19TVVJGQUNFKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAobV9kcmF3YWJs
ZSkgewotICAgICAgICBlZ2xEZXN0cm95U3VyZmFjZShtX3NoYXJlZERpc3BsYXksIG1fZHJhd2Fi
bGUpOworICAgICAgICBlZ2xEZXN0cm95U3VyZmFjZShFR0xIZWxwZXI6OmVnbERpc3BsYXkoKSwg
bV9kcmF3YWJsZSk7CiAgICAgICAgIG1fZHJhd2FibGUgPSBFR0xfTk9fU1VSRkFDRTsKICAgICB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2Vz
L2VnbC9FR0xYU3VyZmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9z
dXJmYWNlcy9lZ2wvRUdMWFN1cmZhY2UuY3BwCmluZGV4IDc5MmE5OGIuLjYxOGZkYzMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2VnbC9FR0xY
U3VyZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFj
ZXMvZWdsL0VHTFhTdXJmYWNlLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkVHTENv
bmZpZ1NlbGVjdG9yLmgiCiAjaW5jbHVkZSAiRUdMSGVscGVyLmgiCiAjaW5jbHVkZSAiR0xQbGF0
Zm9ybUNvbnRleHQuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybURpc3BsYXkuaCIKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCkBAIC01OSw3ICs2MCw3IEBAIEVHTFdpbmRvd1RyYW5zcG9ydFN1cmZhY2U6
OkVHTFdpbmRvd1RyYW5zcG9ydFN1cmZhY2UoY29uc3QgSW50U2l6ZSYgc2l6ZSwgR0xQbGF0CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBtX2RyYXdhYmxlID0gZWdsQ3JlYXRlV2luZG93
U3VyZmFjZShtX3NoYXJlZERpc3BsYXksIG1fY29uZmlnU2VsZWN0b3ItPnN1cmZhY2VDb250ZXh0
Q29uZmlnKCksIHN0YXRpY19jYXN0PEVHTE5hdGl2ZVdpbmRvd1R5cGU+KG1fYnVmZmVySGFuZGxl
KSwgMCk7CisgICAgbV9kcmF3YWJsZSA9IGVnbENyZWF0ZVdpbmRvd1N1cmZhY2UoUGxhdGZvcm1E
aXNwbGF5OjpzaGFyZWREaXNwbGF5KCkuZWdsRGlzcGxheSgpLCBtX2NvbmZpZ1NlbGVjdG9yLT5z
dXJmYWNlQ29udGV4dENvbmZpZygpLCBzdGF0aWNfY2FzdDxFR0xOYXRpdmVXaW5kb3dUeXBlPiht
X2J1ZmZlckhhbmRsZSksIDApOwogCiAgICAgaWYgKG1fZHJhd2FibGUgPT0gRUdMX05PX1NVUkZB
Q0UpIHsKICAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQgdG8gY3JlYXRlIEVHTCBzdXJmYWNlKCVk
KS4iLCBlZ2xHZXRFcnJvcigpKTsKQEAgLTczLDcgKzc0LDcgQEAgRUdMV2luZG93VHJhbnNwb3J0
U3VyZmFjZTo6fkVHTFdpbmRvd1RyYW5zcG9ydFN1cmZhY2UoKQogCiB2b2lkIEVHTFdpbmRvd1Ry
YW5zcG9ydFN1cmZhY2U6OnN3YXBCdWZmZXJzKCkKIHsKLSAgICBpZiAoIWVnbFN3YXBCdWZmZXJz
KG1fc2hhcmVkRGlzcGxheSwgbV9kcmF3YWJsZSkpCisgICAgaWYgKCFlZ2xTd2FwQnVmZmVycyhQ
bGF0Zm9ybURpc3BsYXk6OnNoYXJlZERpc3BsYXkoKS5lZ2xEaXNwbGF5KCksIG1fZHJhd2FibGUp
KQogICAgICAgICBMT0dfRVJST1IoIkZhaWxlZCB0byBTd2FwQnVmZmVycyglZCkuIiwgZWdsR2V0
RXJyb3IoKSk7CiB9CiAKQEAgLTExNiw3ICsxMTcsNyBAQCBFR0xQaXhtYXBTdXJmYWNlOjpFR0xQ
aXhtYXBTdXJmYWNlKEdMUGxhdGZvcm1TdXJmYWNlOjpTdXJmYWNlQXR0cmlidXRlcyBzdXJmYWNl
QQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgbV9kcmF3YWJsZSA9IGVnbENyZWF0ZVBp
eG1hcFN1cmZhY2UobV9zaGFyZWREaXNwbGF5LCBjb25maWcsIHN0YXRpY19jYXN0PEVHTE5hdGl2
ZVBpeG1hcFR5cGU+KG1fYnVmZmVySGFuZGxlKSwgMCk7CisgICAgbV9kcmF3YWJsZSA9IGVnbENy
ZWF0ZVBpeG1hcFN1cmZhY2UoUGxhdGZvcm1EaXNwbGF5OjpzaGFyZWREaXNwbGF5KCkuZWdsRGlz
cGxheSgpLCBjb25maWcsIHN0YXRpY19jYXN0PEVHTE5hdGl2ZVBpeG1hcFR5cGU+KG1fYnVmZmVy
SGFuZGxlKSwgMCk7CiAKICAgICBpZiAobV9kcmF3YWJsZSA9PSBFR0xfTk9fU1VSRkFDRSkgewog
ICAgICAgICBMT0dfRVJST1IoIkZhaWxlZCB0byBjcmVhdGUgRUdMIHN1cmZhY2UoJWQpLiIsIGVn
bEdldEVycm9yKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvc3VyZmFjZXMvZ2x4L0dMWENvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWENvbnRleHQuY3BwCmluZGV4IGY0MmQzYWYuLjY5NDEy
YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2Vz
L2dseC9HTFhDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9zdXJmYWNlcy9nbHgvR0xYQ29udGV4dC5jcHAKQEAgLTYxLDcgKzYxLDcgQEAgYm9vbCBHTFhP
ZmZTY3JlZW5Db250ZXh0Ojppbml0aWFsaXplKEdMUGxhdGZvcm1TdXJmYWNlKiBzdXJmYWNlLCBQ
bGF0Zm9ybUNvbnRleHQKICAgICBpZiAoIXN1cmZhY2UpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAotICAgIERpc3BsYXkqIHgxMURpc3BsYXkgPSBzdXJmYWNlLT5zaGFyZWREaXNwbGF5KCk7Cisg
ICAgRGlzcGxheSogeDExRGlzcGxheSA9IFgxMUhlbHBlcjo6bmF0aXZlRGlzcGxheSgpOwogICAg
IGlmICgheDExRGlzcGxheSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCkBAIC0xMDYsNyArMTA2
LDcgQEAgYm9vbCBHTFhPZmZTY3JlZW5Db250ZXh0Ojppc0N1cnJlbnRDb250ZXh0KCkgY29uc3QK
IAogYm9vbCBHTFhPZmZTY3JlZW5Db250ZXh0OjpwbGF0Zm9ybU1ha2VDdXJyZW50KEdMUGxhdGZv
cm1TdXJmYWNlKiBzdXJmYWNlKQogewotICAgIHJldHVybiBnbFhNYWtlQ3VycmVudChzdXJmYWNl
LT5zaGFyZWREaXNwbGF5KCksIHN1cmZhY2UtPmRyYXdhYmxlKCksIG1fY29udGV4dEhhbmRsZSk7
CisgICAgcmV0dXJuIGdsWE1ha2VDdXJyZW50KFgxMUhlbHBlcjo6bmF0aXZlRGlzcGxheSgpLCBz
dXJmYWNlLT5kcmF3YWJsZSgpLCBtX2NvbnRleHRIYW5kbGUpOwogfQogCiB2b2lkIEdMWE9mZlNj
cmVlbkNvbnRleHQ6OnBsYXRmb3JtUmVsZWFzZUN1cnJlbnQoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWFN1cmZhY2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWFN1cmZhY2Uu
Y3BwCmluZGV4IDE2YThlMDMuLmJhNDkzYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HTFhTdXJmYWNlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYU3VyZmFjZS5jcHAKQEAg
LTY0LDcgKzY0LDYgQEAgc3RhdGljIGJvb2wgaXNNZXNhR0xYKCkKIEdMWFRyYW5zcG9ydFN1cmZh
Y2U6OkdMWFRyYW5zcG9ydFN1cmZhY2UoY29uc3QgSW50U2l6ZSYgc2l6ZSwgU3VyZmFjZUF0dHJp
YnV0ZXMgYXR0cmlidXRlcykKICAgICA6IEdMVHJhbnNwb3J0U3VyZmFjZShzaXplLCBhdHRyaWJ1
dGVzKQogewotICAgIG1fc2hhcmVkRGlzcGxheSA9IFgxMUhlbHBlcjo6bmF0aXZlRGlzcGxheSgp
OwogICAgIGF0dHJpYnV0ZXMgfD0gR0xQbGF0Zm9ybVN1cmZhY2U6OkRvdWJsZUJ1ZmZlcmVkOwog
ICAgIG1fY29uZmlnU2VsZWN0b3IgPSBzdGQ6Om1ha2VfdW5pcXVlPEdMWENvbmZpZ1NlbGVjdG9y
PihhdHRyaWJ1dGVzKTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8WFZpc3VhbEluZm8sIFgxMURlbGV0
ZXI+IHZpc0luZm8obV9jb25maWdTZWxlY3Rvci0+dmlzdWFsSW5mbyhtX2NvbmZpZ1NlbGVjdG9y
LT5zdXJmYWNlQ29udGV4dENvbmZpZygpKSk7CkBAIC05OCw3ICs5Nyw3IEBAIHZvaWQgR0xYVHJh
bnNwb3J0U3VyZmFjZTo6c2V0R2VvbWV0cnkoY29uc3QgSW50UmVjdCYgbmV3UmVjdCkKICAgICBH
TFRyYW5zcG9ydFN1cmZhY2U6OnNldEdlb21ldHJ5KG5ld1JlY3QpOwogICAgIFgxMUhlbHBlcjo6
cmVzaXplV2luZG93KG5ld1JlY3QsIG1fZHJhd2FibGUpOwogICAgIC8vIEZvcmNlIHJlc2l6ZSBv
ZiBHTCBzdXJmYWNlIGFmdGVyIHdpbmRvdyByZXNpemUuCi0gICAgZ2xYU3dhcEJ1ZmZlcnMoc2hh
cmVkRGlzcGxheSgpLCBtX2RyYXdhYmxlKTsKKyAgICBnbFhTd2FwQnVmZmVycyhYMTFIZWxwZXI6
Om5hdGl2ZURpc3BsYXkoKSwgbV9kcmF3YWJsZSk7CiB9CiAKIHZvaWQgR0xYVHJhbnNwb3J0U3Vy
ZmFjZTo6c3dhcEJ1ZmZlcnMoKQpAQCAtMTA2LDcgKzEwNSw3IEBAIHZvaWQgR0xYVHJhbnNwb3J0
U3VyZmFjZTo6c3dhcEJ1ZmZlcnMoKQogICAgIGlmICghbV9kcmF3YWJsZSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgZ2xYU3dhcEJ1ZmZlcnMoc2hhcmVkRGlzcGxheSgpLCBtX2RyYXdhYmxlKTsK
KyAgICBnbFhTd2FwQnVmZmVycyhYMTFIZWxwZXI6Om5hdGl2ZURpc3BsYXkoKSwgbV9kcmF3YWJs
ZSk7CiB9CiAKIHZvaWQgR0xYVHJhbnNwb3J0U3VyZmFjZTo6ZGVzdHJveSgpCkBAIC0xNDEsOCAr
MTQwLDYgQEAgR0xYT2ZmU2NyZWVuU3VyZmFjZTo6fkdMWE9mZlNjcmVlblN1cmZhY2UoKQogCiB2
b2lkIEdMWE9mZlNjcmVlblN1cmZhY2U6OmluaXRpYWxpemUoU3VyZmFjZUF0dHJpYnV0ZXMgYXR0
cmlidXRlcykKIHsKLSAgICBtX3NoYXJlZERpc3BsYXkgPSBYMTFIZWxwZXI6Om5hdGl2ZURpc3Bs
YXkoKTsKLQogICAgIG1fY29uZmlnU2VsZWN0b3IgPSBzdGQ6Om1ha2VfdW5pcXVlPEdMWENvbmZp
Z1NlbGVjdG9yPihhdHRyaWJ1dGVzKTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxYVmlzdWFsSW5m
bywgWDExRGVsZXRlcj4gdmlzdWFsSW5mbyhtX2NvbmZpZ1NlbGVjdG9yLT52aXN1YWxJbmZvKG1f
Y29uZmlnU2VsZWN0b3ItPnBpeG1hcENvbnRleHRDb25maWcoKSkpOwpAQCAtMTUzLDcgKzE1MCw3
IEBAIHZvaWQgR0xYT2ZmU2NyZWVuU3VyZmFjZTo6aW5pdGlhbGl6ZShTdXJmYWNlQXR0cmlidXRl
cyBhdHRyaWJ1dGVzKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgbV9nbHhQaXhtYXAg
PSBnbFhDcmVhdGVHTFhQaXhtYXAobV9zaGFyZWREaXNwbGF5LCB2aXN1YWxJbmZvLmdldCgpLCBt
X3BpeG1hcCk7CisgICAgbV9nbHhQaXhtYXAgPSBnbFhDcmVhdGVHTFhQaXhtYXAoWDExSGVscGVy
OjpuYXRpdmVEaXNwbGF5KCksIHZpc3VhbEluZm8uZ2V0KCksIG1fcGl4bWFwKTsKIAogICAgIGlm
ICghbV9nbHhQaXhtYXApIHsKICAgICAgICAgZGVzdHJveSgpOwpAQCAtMTc1LDcgKzE3Miw3IEBA
IHZvaWQgR0xYT2ZmU2NyZWVuU3VyZmFjZTo6ZGVzdHJveSgpCiAKIHZvaWQgR0xYT2ZmU2NyZWVu
U3VyZmFjZTo6ZnJlZVJlc291cmNlcygpCiB7Ci0gICAgRGlzcGxheSogZGlzcGxheSA9IHNoYXJl
ZERpc3BsYXkoKTsKKyAgICBEaXNwbGF5KiBkaXNwbGF5ID0gWDExSGVscGVyOjpuYXRpdmVEaXNw
bGF5KCk7CiAKICAgICBpZiAoIWRpc3BsYXkpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dheWxhbmQvUGxhdGZvcm1EaXNwbGF5
V2F5bGFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93YXlsYW5kL1Bs
YXRmb3JtRGlzcGxheVdheWxhbmQuY3BwCmluZGV4IDI3ZjYxZWIuLmNjYmMzNWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dheWxhbmQvUGxhdGZvcm1EaXNw
bGF5V2F5bGFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2F5
bGFuZC9QbGF0Zm9ybURpc3BsYXlXYXlsYW5kLmNwcApAQCAtODcsMjAgKzg3LDkgQEAgUGxhdGZv
cm1EaXNwbGF5V2F5bGFuZDo6UGxhdGZvcm1EaXNwbGF5V2F5bGFuZChzdHJ1Y3Qgd2xfZGlzcGxh
eSogd2xEaXNwbGF5KQogICAgIH07CiAKICAgICBtX2VnbERpc3BsYXkgPSBlZ2xHZXREaXNwbGF5
KG1fZGlzcGxheSk7Ci0gICAgaWYgKG1fZWdsRGlzcGxheSA9PSBFR0xfTk9fRElTUExBWSkgewot
ICAgICAgICBnX3dhcm5pbmcoIlBsYXRmb3JtRGlzcGxheVdheWxhbmQgaW5pdGlhbGl6YXRpb246
IGZhaWxlZCB0byBhY3F1aXJlIEVHTCBkaXNwbGF5LiIpOworICAgIFBsYXRmb3JtRGlzcGxheTo6
aW5pdGlhbGl6ZUVHTERpc3BsYXkoKTsKKyAgICBpZiAobV9lZ2xEaXNwbGF5ID09IEVHTF9OT19E
SVNQTEFZKQogICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKGVnbEluaXRpYWxpemUo
bV9lZ2xEaXNwbGF5LCAwLCAwKSA9PSBFR0xfRkFMU0UpIHsKLSAgICAgICAgZ193YXJuaW5nKCJQ
bGF0Zm9ybURpc3BsYXlXYXlsYW5kIGluaXRpYWxpemF0aW9uOiBmYWlsZWQgdG8gaW5pdGlhbGl6
ZSB0aGUgRUdMIGRpc3BsYXkuIik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAo
ZWdsQmluZEFQSShFR0xfT1BFTkdMX0VTX0FQSSkgPT0gRUdMX0ZBTFNFKSB7Ci0gICAgICAgIGdf
d2FybmluZygiUGxhdGZvcm1EaXNwbGF5V2F5bGFuZCBpbml0aWFsaXphdGlvbjogZmFpbGVkIHRv
IHNldCBFR0xfT1BFTkdMX0VTX0FQSSBhcyB0aGUgcmVuZGVyaW5nIEFQSS4iKTsKLSAgICAgICAg
cmV0dXJuOwotICAgIH0KIAogICAgIEVHTGludCBudW1iZXJPZkNvbmZpZ3M7CiAgICAgaWYgKCFl
Z2xDaG9vc2VDb25maWcobV9lZ2xEaXNwbGF5LCBjb25maWdBdHRyaWJ1dGVzLCAmbV9lZ2xDb25m
aWcsIDEsICZudW1iZXJPZkNvbmZpZ3MpIHx8IG51bWJlck9mQ29uZmlncyAhPSAxKSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93YXlsYW5kL1BsYXRmb3Jt
RGlzcGxheVdheWxhbmQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dheWxh
bmQvUGxhdGZvcm1EaXNwbGF5V2F5bGFuZC5oCmluZGV4IDE5NTg5YmUuLjE1NGZiYmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dheWxhbmQvUGxhdGZvcm1E
aXNwbGF5V2F5bGFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dh
eWxhbmQvUGxhdGZvcm1EaXNwbGF5V2F5bGFuZC5oCkBAIC00Nyw3ICs0Nyw2IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIH5QbGF0Zm9ybURpc3BsYXlXYXlsYW5kKCk7CiAKICAgICBzdHJ1Y3Qgd2xf
ZGlzcGxheSogbmF0aXZlKCkgY29uc3QgeyByZXR1cm4gbV9kaXNwbGF5OyB9Ci0gICAgRUdMRGlz
cGxheSBlZ2xEaXNwbGF5KCkgY29uc3QgeyByZXR1cm4gbV9lZ2xEaXNwbGF5OyB9CiAKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8V2F5bGFuZFN1cmZhY2U+IGNyZWF0ZVN1cmZhY2UoY29uc3QgSW50U2l6
ZSYsIGludCB3aWRnZXRJRCk7CiAKQEAgLTY4LDcgKzY3LDYgQEAgcHJpdmF0ZToKICAgICBzdHJ1
Y3Qgd2xfY29tcG9zaXRvciogbV9jb21wb3NpdG9yOwogICAgIHN0cnVjdCB3bF93ZWJraXRndGsq
IG1fd2Via2l0Z3RrOwogCi0gICAgRUdMRGlzcGxheSBtX2VnbERpc3BsYXk7CiAgICAgRUdMQ29u
ZmlnIG1fZWdsQ29uZmlnOwogICAgIGJvb2wgbV9lZ2xDb25maWdDaG9zZW47CiB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MveDExL1BsYXRmb3JtRGlzcGxh
eVgxMS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy94MTEvUGxhdGZvcm1E
aXNwbGF5WDExLmNwcAppbmRleCA4YWIwMjFiLi45N2M4NzJkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy94MTEvUGxhdGZvcm1EaXNwbGF5WDExLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy94MTEvUGxhdGZvcm1EaXNwbGF5WDEx
LmNwcApAQCAtMjksNiArMjksMTAgQEAKICNpZiBQTEFURk9STShYMTEpCiAjaW5jbHVkZSA8WDEx
L1hsaWIuaD4KIAorI2lmIFVTRShFR0wpCisjaW5jbHVkZSA8RUdML2VnbC5oPgorI2VuZGlmCisK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUGxhdGZvcm1EaXNwbGF5WDExOjpQbGF0Zm9ybURpc3Bs
YXlYMTEoKQpAQCAtNDksNiArNTMsMTQgQEAgUGxhdGZvcm1EaXNwbGF5WDExOjp+UGxhdGZvcm1E
aXNwbGF5WDExKCkKICAgICAgICAgWENsb3NlRGlzcGxheShtX2Rpc3BsYXkpOwogfQogCisjaWYg
VVNFKEVHTCkKK3ZvaWQgUGxhdGZvcm1EaXNwbGF5WDExOjppbml0aWFsaXplRUdMRGlzcGxheSgp
Cit7CisgICAgbV9lZ2xEaXNwbGF5ID0gZWdsR2V0RGlzcGxheShtX2Rpc3BsYXkpOworICAgIFBs
YXRmb3JtRGlzcGxheTo6aW5pdGlhbGl6ZUVHTERpc3BsYXkoKTsKK30KKyNlbmRpZgorCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBQTEFURk9STShYMTEpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy94MTEvUGxhdGZvcm1EaXNwbGF5WDEx
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy94MTEvUGxhdGZvcm1EaXNwbGF5
WDExLmgKaW5kZXggMzQ3ZDhhZS4uMDdjOGI0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MveDExL1BsYXRmb3JtRGlzcGxheVgxMS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3gxMS9QbGF0Zm9ybURpc3BsYXlYMTEuaApAQCAtNDUs
NiArNDUsMTAgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIFBsYXRmb3JtRGlzcGxheTo6VHlwZTo6WDExOyB9CiAKKyNp
ZiBVU0UoRUdMKQorICAgIHZvaWQgaW5pdGlhbGl6ZUVHTERpc3BsYXkoKSBvdmVycmlkZTsKKyNl
bmRpZgorCiAgICAgRGlzcGxheSogbV9kaXNwbGF5OwogICAgIGJvb2wgbV9vd25lZERpc3BsYXk7
CiB9Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>