<?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>139019</bug_id>
          
          <creation_ts>2014-11-23 20:19:48 -0800</creation_ts>
          <short_desc>Use std::unique_ptr instead of PassOwnPtr|OwnPtr for Pasteboard</short_desc>
          <delta_ts>2014-12-03 19:02:35 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>128007</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Joonghun Park">jh718.park</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>gyuyoung.kim</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1050791</commentid>
    <comment_count>0</comment_count>
    <who name="Joonghun Park">jh718.park</who>
    <bug_when>2014-11-23 20:19:48 -0800</bug_when>
    <thetext>Change from PassOwnPtr|OwnPtr to std::unique_ptr for Pasteboard in All port(Mac, IOS, Efl, Gtk, Win).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1050805</commentid>
    <comment_count>1</comment_count>
      <attachid>242144</attachid>
    <who name="Joonghun Park">jh718.park</who>
    <bug_when>2014-11-23 22:18:14 -0800</bug_when>
    <thetext>Created attachment 242144
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1050810</commentid>
    <comment_count>2</comment_count>
      <attachid>242146</attachid>
    <who name="Joonghun Park">jh718.park</who>
    <bug_when>2014-11-23 23:10:45 -0800</bug_when>
    <thetext>Created attachment 242146
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1050815</commentid>
    <comment_count>3</comment_count>
      <attachid>242146</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-11-24 00:47:16 -0800</bug_when>
    <thetext>Comment on attachment 242146
Patch

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

r- because of create() factory function and wrong std::unique_ptr&lt;&gt; use.

&gt; Source/WebCore/platform/mac/PasteboardMac.mm:128
&gt; +    return std::unique_ptr&lt;Pasteboard&gt;(new Pasteboard(pasteboardName));

We decided not to use create() factory function. Instead we have to use std::make_unique&lt;&gt; except for specific cases.

&gt; Source/WebCore/platform/win/PasteboardWin.cpp:114
&gt; +    return std::unique_ptr&lt;Pasteboard&gt;(new Pasteboard(dataObject.get()));

Use std::make_unique&lt;&gt; instead of std::unique_ptr&lt;&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1050823</commentid>
    <comment_count>4</comment_count>
      <attachid>242151</attachid>
    <who name="Joonghun Park">jh718.park</who>
    <bug_when>2014-11-24 02:03:20 -0800</bug_when>
    <thetext>Created attachment 242151
&lt;WIP&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1050826</commentid>
    <comment_count>5</comment_count>
      <attachid>242153</attachid>
    <who name="Joonghun Park">jh718.park</who>
    <bug_when>2014-11-24 02:36:10 -0800</bug_when>
    <thetext>Created attachment 242153
&lt;WIP&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1050843</commentid>
    <comment_count>6</comment_count>
      <attachid>242157</attachid>
    <who name="Joonghun Park">jh718.park</who>
    <bug_when>2014-11-24 06:42:12 -0800</bug_when>
    <thetext>Created attachment 242157
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1050847</commentid>
    <comment_count>7</comment_count>
      <attachid>242159</attachid>
    <who name="Joonghun Park">jh718.park</who>
    <bug_when>2014-11-24 07:05:54 -0800</bug_when>
    <thetext>Created attachment 242159
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1050848</commentid>
    <comment_count>8</comment_count>
      <attachid>242159</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-11-24 07:38:23 -0800</bug_when>
    <thetext>Comment on attachment 242159
Patch

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

&gt; Source/WebCore/editing/Editor.cpp:860
&gt; +        std::unique_ptr&lt;Pasteboard&gt; pasteboard = Pasteboard::createForCopyAndPaste();

Why not using auto ?

&gt; Source/WebCore/page/mac/EventHandlerMac.mm:684
&gt; +    std::unique_ptr&lt;Pasteboard&gt; pasteboard = return std::make_unique&lt;Pasteboard&gt;(NSDragPboard);

return ??????????

&gt; Source/WebCore/platform/win/PasteboardWin.cpp:95
&gt; +    std::unique_ptr&lt;Pasteboard&gt; pasteboard = std::make_unique&lt;Pasteboard&gt;();

ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1050857</commentid>
    <comment_count>9</comment_count>
      <attachid>242163</attachid>
    <who name="Joonghun Park">jh718.park</who>
    <bug_when>2014-11-24 08:11:14 -0800</bug_when>
    <thetext>Created attachment 242163
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1050859</commentid>
    <comment_count>10</comment_count>
      <attachid>242164</attachid>
    <who name="Joonghun Park">jh718.park</who>
    <bug_when>2014-11-24 08:28:58 -0800</bug_when>
    <thetext>Created attachment 242164
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1050932</commentid>
    <comment_count>11</comment_count>
      <attachid>242164</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-11-24 17:47:12 -0800</bug_when>
    <thetext>Comment on attachment 242164
Patch

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

&gt; Source/WebCore/platform/Pasteboard.h:183
&gt; +    static std::unique_ptr&lt;Pasteboard&gt; createForDragAndDrop();

There is a concern we support both public constructor and createFoo() factory function. Some reviewers think this is wrong behavior. So, we need to try to remove createFoo() factory function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1051716</commentid>
    <comment_count>12</comment_count>
      <attachid>242164</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-12-01 19:19:25 -0800</bug_when>
    <thetext>Comment on attachment 242164
Patch

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

&gt;&gt; Source/WebCore/platform/Pasteboard.h:183
&gt;&gt; +    static std::unique_ptr&lt;Pasteboard&gt; createForDragAndDrop();
&gt; 
&gt; There is a concern we support both public constructor and createFoo() factory function. Some reviewers think this is wrong behavior. So, we need to try to remove createFoo() factory function.

That’s not quite right. We don’t to have create functions that simply wrap std::make_unique and add nothing further. But if the create function adds some additional value, then it’s fine to have it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1051845</commentid>
    <comment_count>13</comment_count>
      <attachid>242164</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-12-02 09:00:01 -0800</bug_when>
    <thetext>Comment on attachment 242164
Patch

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

&gt; Source/WebCore/platform/Pasteboard.h:147
&gt; +    Pasteboard(PassRefPtr&lt;DataObjectGtk&gt;);
&gt; +    Pasteboard(GtkClipboard*);

These should be marked explicit. Not sure why they weren’t already.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1051880</commentid>
    <comment_count>14</comment_count>
      <attachid>242425</attachid>
    <who name="Joonghun Park">jh718.park</who>
    <bug_when>2014-12-02 10:31:18 -0800</bug_when>
    <thetext>Created attachment 242425
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1052396</commentid>
    <comment_count>15</comment_count>
      <attachid>242425</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-12-03 19:02:30 -0800</bug_when>
    <thetext>Comment on attachment 242425
Patch for landing

Clearing flags on attachment: 242425

Committed r176780: &lt;http://trac.webkit.org/changeset/176780&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1052397</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-12-03 19:02:35 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>242144</attachid>
            <date>2014-11-23 22:18:14 -0800</date>
            <delta_ts>2014-11-23 23:10:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-139019-20141124151835.patch</filename>
            <type>text/plain</type>
            <size>14503</size>
            <attacher name="Joonghun Park">jh718.park</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc2NTEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDJhNTAwZGU4ZmRmNTdk
NDM5ZGQ5N2QzMzU5MmU5ZWVhN2Y2MDNiYi4uY2FhYWY2NmFjMmRkNmYwOGFlOTIyMjhkMWU5MTIx
MTRmYjQyZWVkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDE0LTExLTIzICBKb29u
Z2h1biBQYXJrICA8amg3MTgucGFya0BzYW1zdW5nLmNvbT4KKworICAgICAgICBVc2Ugc3RkOjp1
bmlxdWVfcHRyIGluc3RlYWQgb2YgUGFzc093blB0cnxPd25QdHIgZm9yIFBhc3RlYm9hcmQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzOTAxOQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0
cywgbm8gYmVoYXZpb3IgY2hhbmdlcy4KKworICAgICAgICAqIGRvbS9EYXRhVHJhbnNmZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRyYW5zZmVyOjpEYXRhVHJhbnNmZXIpOgorICAgICAg
ICAqIGRvbS9EYXRhVHJhbnNmZXIuaDoKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmRpc3BhdGNoQ1BQRXZlbnQpOgorICAgICAgICAqIHBs
YXRmb3JtL1Bhc3RlYm9hcmQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvUGFzdGVib2FyZEVm
bC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFz
dGUpOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6Y3JlYXRlUHJpdmF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcCk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFz
dGVib2FyZDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OmNyZWF0ZUZv
ckNvcHlBbmRQYXN0ZSk6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpjcmVhdGVGb3JH
bG9iYWxTZWxlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6Y3JlYXRlUHJp
dmF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJv
cCk6CisgICAgICAgICogcGxhdGZvcm0vaW9zL1Bhc3RlYm9hcmRJT1MubW06CisgICAgICAgIChX
ZWJDb3JlOjpQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6UGFzdGVib2FyZDo6Y3JlYXRlUHJpdmF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vbWFj
L1Bhc3RlYm9hcmRNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpjcmVhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6Y3JlYXRlRm9yQ29weUFuZFBhc3RlKToK
KyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OmNyZWF0ZVByaXZhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6UGFzdGVib2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERyb3ApOgorICAgICAgICAqIHBs
YXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9h
cmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSk6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJk
OjpjcmVhdGVQcml2YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OmNyZWF0ZUZv
ckRyYWdBbmREcm9wKToKKwogMjAxNC0xMS0yMyAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBs
ZS5jb20+CiAKICAgICAgICAgVXNlIHNlZ21lbnQgdmVjdG9yIGZvciBGbG93Q29udGVudHMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RhdGFUcmFuc2Zlci5jcHAKaW5kZXggZmUyMWFmZmZmMzU5OTNhOWZlNDkxODVi
MzI1ODAzODIyNzU5MzhjMi4uMzg0Yzg1ZjI2OGYyYjBhNWEyYTE1ZmMxMzQyZDkwNzE0ODU4MjZj
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlci5jcHAKQEAgLTU1LDkgKzU1LDkgQEAgcHJp
dmF0ZToKIAogI2VuZGlmCiAKLURhdGFUcmFuc2Zlcjo6RGF0YVRyYW5zZmVyKERhdGFUcmFuc2Zl
ckFjY2Vzc1BvbGljeSBwb2xpY3ksIFBhc3NPd25QdHI8UGFzdGVib2FyZD4gcGFzdGVib2FyZCwg
VHlwZSB0eXBlLCBib29sIGZvckZpbGVEcmFnKQorRGF0YVRyYW5zZmVyOjpEYXRhVHJhbnNmZXIo
RGF0YVRyYW5zZmVyQWNjZXNzUG9saWN5IHBvbGljeSwgc3RkOjp1bmlxdWVfcHRyPFBhc3RlYm9h
cmQ+IHBhc3RlYm9hcmQsIFR5cGUgdHlwZSwgYm9vbCBmb3JGaWxlRHJhZykKICAgICA6IG1fcG9s
aWN5KHBvbGljeSkKLSAgICAsIG1fcGFzdGVib2FyZChwYXN0ZWJvYXJkKQorICAgICwgbV9wYXN0
ZWJvYXJkKFdURjo6bW92ZShwYXN0ZWJvYXJkKSkKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQog
ICAgICwgbV9mb3JEcmFnKHR5cGUgIT0gQ29weUFuZFBhc3RlKQogICAgICwgbV9mb3JGaWxlRHJh
Zyhmb3JGaWxlRHJhZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNm
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXIuaAppbmRleCA5ZDk2N2E2NTM1
OTBhN2M1ZjcwOTgzMDJkZmNmMTRmZGU4OGE0MTBlLi5jYTgzYjlmOWZmNTQzNDVjZDdiZTcyMzc0
MzE5YjZkMDZlNGY5MzZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5z
ZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlci5oCkBAIC05OSwxNCAr
OTksMTQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgcHJpdmF0ZToKICAgICAgICAgZW51
bSBUeXBlIHsgQ29weUFuZFBhc3RlLCBEcmFnQW5kRHJvcCB9OwotICAgICAgICBEYXRhVHJhbnNm
ZXIoRGF0YVRyYW5zZmVyQWNjZXNzUG9saWN5LCBQYXNzT3duUHRyPFBhc3RlYm9hcmQ+LCBUeXBl
ID0gQ29weUFuZFBhc3RlLCBib29sIGZvckZpbGVEcmFnID0gZmFsc2UpOworICAgICAgICBEYXRh
VHJhbnNmZXIoRGF0YVRyYW5zZmVyQWNjZXNzUG9saWN5LCBzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVi
b2FyZD4sIFR5cGUgPSBDb3B5QW5kUGFzdGUsIGJvb2wgZm9yRmlsZURyYWcgPSBmYWxzZSk7CiAK
ICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogICAgICAgICBib29sIGNhblNldERyYWdJbWFnZSgp
IGNvbnN0OwogI2VuZGlmCiAKICAgICAgICAgRGF0YVRyYW5zZmVyQWNjZXNzUG9saWN5IG1fcG9s
aWN5OwotICAgICAgICBPd25QdHI8UGFzdGVib2FyZD4gbV9wYXN0ZWJvYXJkOworICAgICAgICBz
dGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4gbV9wYXN0ZWJvYXJkOwogCiAgICAgICAgIG11dGFi
bGUgUmVmUHRyPEZpbGVMaXN0PiBtX2ZpbGVMaXN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0VkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5j
cHAKaW5kZXggZWQ2M2EyODczZjBmOGY3YjEzZmI1ODhmMzMzMWMwMDc3ZTU4NTRjYy4uMTViZTg3
MGJkNmFlM2JiNmVlZmI4MjNjMmMzMDU1NGIwNDQ2OWQ4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRp
dG9yLmNwcApAQCAtODU3LDcgKzg1Nyw3IEBAIGJvb2wgRWRpdG9yOjpkaXNwYXRjaENQUEV2ZW50
KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBEYXRhVHJhbnNmZXJBY2Nlc3NQCiAgICAg
dGFyZ2V0LT5kaXNwYXRjaEV2ZW50KGV2ZW50LCBJR05PUkVfRVhDRVBUSU9OKTsKICAgICBib29s
IG5vRGVmYXVsdFByb2Nlc3NpbmcgPSBldmVudC0+ZGVmYXVsdFByZXZlbnRlZCgpOwogICAgIGlm
IChub0RlZmF1bHRQcm9jZXNzaW5nICYmIHBvbGljeSA9PSBEYXRhVHJhbnNmZXJBY2Nlc3NQb2xp
Y3k6OldyaXRhYmxlKSB7Ci0gICAgICAgIE93blB0cjxQYXN0ZWJvYXJkPiBwYXN0ZWJvYXJkID0g
UGFzdGVib2FyZDo6Y3JlYXRlRm9yQ29weUFuZFBhc3RlKCk7CisgICAgICAgIHN0ZDo6dW5pcXVl
X3B0cjxQYXN0ZWJvYXJkPiBwYXN0ZWJvYXJkID0gUGFzdGVib2FyZDo6Y3JlYXRlRm9yQ29weUFu
ZFBhc3RlKCk7CiAgICAgICAgIHBhc3RlYm9hcmQtPmNsZWFyKCk7CiAgICAgICAgIHBhc3RlYm9h
cmQtPndyaXRlUGFzdGVib2FyZChkYXRhVHJhbnNmZXItPnBhc3RlYm9hcmQoKSk7CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZC5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZC5oCmluZGV4IDk0MmY5ZTY3ZDBkZWM4YTRmZjIy
NTUxN2Q5NDA1N2VlNTk5MjI5MjAuLjdmZTI4N2E5ZWMyMGFlOWZhNzVjNzhlM2ViMDZhOTY1MTM2
MDRlYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkLmgKQEAgLTE0MSw4ICsxNDEs
OCBAQCBjbGFzcyBQYXN0ZWJvYXJkIHsKIHB1YmxpYzoKICAgICB+UGFzdGVib2FyZCgpOwogCi0g
ICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFBhc3NPd25QdHI8UGFzdGVib2FyZD4gY3JlYXRlRm9y
Q29weUFuZFBhc3RlKCk7Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8UGFzdGVib2FyZD4gY3JlYXRl
UHJpdmF0ZSgpOyAvLyBUZW1wb3JhcnkgcGFzdGVib2FyZC4gQ2FuIHB1dCBkYXRhIG9uIHRoaXMg
YW5kIHRoZW4gd3JpdGUgdG8gYW5vdGhlciBwYXN0ZWJvYXJkIHdpdGggd3JpdGVQYXN0ZWJvYXJk
LgorICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4g
Y3JlYXRlRm9yQ29weUFuZFBhc3RlKCk7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxQYXN0
ZWJvYXJkPiBjcmVhdGVQcml2YXRlKCk7IC8vIFRlbXBvcmFyeSBwYXN0ZWJvYXJkLiBDYW4gcHV0
IGRhdGEgb24gdGhpcyBhbmQgdGhlbiB3cml0ZSB0byBhbm90aGVyIHBhc3RlYm9hcmQgd2l0aCB3
cml0ZVBhc3RlYm9hcmQuCiAKICAgICBib29sIGhhc0RhdGEoKTsKICAgICBWZWN0b3I8U3RyaW5n
PiB0eXBlcygpOwpAQCAtMTY4LDggKzE2OCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHdyaXRlUGFz
dGVib2FyZChjb25zdCBQYXN0ZWJvYXJkJiBzb3VyY2VQYXN0ZWJvYXJkKTsKIAogI2lmIEVOQUJM
RShEUkFHX1NVUFBPUlQpCi0gICAgc3RhdGljIFBhc3NPd25QdHI8UGFzdGVib2FyZD4gY3JlYXRl
Rm9yRHJhZ0FuZERyb3AoKTsKLSAgICBzdGF0aWMgUGFzc093blB0cjxQYXN0ZWJvYXJkPiBjcmVh
dGVGb3JEcmFnQW5kRHJvcChjb25zdCBEcmFnRGF0YSYpOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1
ZV9wdHI8UGFzdGVib2FyZD4gY3JlYXRlRm9yRHJhZ0FuZERyb3AoKTsKKyAgICBzdGF0aWMgc3Rk
Ojp1bmlxdWVfcHRyPFBhc3RlYm9hcmQ+IGNyZWF0ZUZvckRyYWdBbmREcm9wKGNvbnN0IERyYWdE
YXRhJik7CiAKICAgICB2b2lkIHNldERyYWdJbWFnZShEcmFnSW1hZ2VSZWYsIGNvbnN0IEludFBv
aW50JiBob3RTcG90KTsKICNlbmRpZgpAQCAtMTgxLDEwICsxODEsMTAgQEAgcHVibGljOgogI2Vu
ZGlmCiAKICNpZiBQTEFURk9STShHVEspCi0gICAgc3RhdGljIFBhc3NPd25QdHI8UGFzdGVib2Fy
ZD4gY3JlYXRlKFBhc3NSZWZQdHI8RGF0YU9iamVjdEd0az4pOwotICAgIHN0YXRpYyBQYXNzT3du
UHRyPFBhc3RlYm9hcmQ+IGNyZWF0ZShHdGtDbGlwYm9hcmQqKTsKKyAgICBzdGF0aWMgc3RkOjp1
bmlxdWVfcHRyPFBhc3RlYm9hcmQ+IGNyZWF0ZShQYXNzUmVmUHRyPERhdGFPYmplY3RHdGs+KTsK
KyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFBhc3RlYm9hcmQ+IGNyZWF0ZShHdGtDbGlwYm9h
cmQqKTsKICAgICBQYXNzUmVmUHRyPERhdGFPYmplY3RHdGs+IGRhdGFPYmplY3QoKSBjb25zdDsK
LSAgICBzdGF0aWMgUGFzc093blB0cjxQYXN0ZWJvYXJkPiBjcmVhdGVGb3JHbG9iYWxTZWxlY3Rp
b24oKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFBhc3RlYm9hcmQ+IGNyZWF0ZUZvckds
b2JhbFNlbGVjdGlvbigpOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1MpCkBAIC0xOTQsNyAr
MTk0LDcgQEAgcHVibGljOgogCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIGV4cGxpY2l0IFBhc3Rl
Ym9hcmQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSk7Ci0gICAgc3RhdGljIFBhc3NPd25Q
dHI8UGFzdGVib2FyZD4gY3JlYXRlKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpOworICAg
IHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4gY3JlYXRlKGNvbnN0IFN0cmluZyYg
cGFzdGVib2FyZE5hbWUpOwogCiAgICAgY29uc3QgU3RyaW5nJiBuYW1lKCkgY29uc3QgeyByZXR1
cm4gbV9wYXN0ZWJvYXJkTmFtZTsgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9lZmwvUGFzdGVib2FyZEVmbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9lZmwvUGFzdGVib2FyZEVmbC5jcHAKaW5kZXggOGEwODEwZmUxMTU0MzJjYTUwYjYzY2YwNmNj
NTdhMDZkYWIzOTMzYi4uYjQ0NDRlZjQ4ZDhmMTU3ZmE0YmE4YTg1NzljNDlmOWY1YzliZjIzNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1Bhc3RlYm9hcmRFZmwuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9QYXN0ZWJvYXJkRWZsLmNwcApAQCAt
MjQsNyArMjQsNiBAQAogI2luY2x1ZGUgIlBhc3RlYm9hcmQuaCIKIAogI2luY2x1ZGUgIk5vdElt
cGxlbWVudGVkLmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCkBAIC00OCwyMyArNDcsMjMgQEAgYm9vbCBQYXN0ZWJvYXJkOjpjYW5TbWFydFJl
cGxhY2UoKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotUGFzc093blB0cjxQYXN0ZWJvYXJkPiBQ
YXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKQorc3RkOjp1bmlxdWVfcHRyPFBhc3Rl
Ym9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpCiB7Ci0gICAgcmV0dXJu
IGFkb3B0UHRyKG5ldyBQYXN0ZWJvYXJkKTsKKyAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPFBh
c3RlYm9hcmQ+KG5ldyBQYXN0ZWJvYXJkKTsKIH0KIAotUGFzc093blB0cjxQYXN0ZWJvYXJkPiBQ
YXN0ZWJvYXJkOjpjcmVhdGVQcml2YXRlKCkKK3N0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBQ
YXN0ZWJvYXJkOjpjcmVhdGVQcml2YXRlKCkKIHsKICAgICByZXR1cm4gY3JlYXRlRm9yQ29weUFu
ZFBhc3RlKCk7CiB9CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotUGFzc093blB0cjxQYXN0
ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcCgpCitzdGQ6OnVuaXF1ZV9w
dHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AoKQogewogICAg
IHJldHVybiBjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKTsKIH0KIAotUGFzc093blB0cjxQYXN0ZWJv
YXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcChjb25zdCBEcmFnRGF0YSYpCitz
dGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERy
b3AoY29uc3QgRHJhZ0RhdGEmKQogewogICAgIHJldHVybiBjcmVhdGVGb3JDb3B5QW5kUGFzdGUo
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QYXN0ZWJvYXJk
R3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkR3RrLmNwcApp
bmRleCAwYWFkZDVjZTQ5NjlhZmUxZDZhMTRmOWYzYzIxOTEzOGY0ODEyMTg3Li4xZjQ2OTQ2OGQ1
ZWM2ZTIzMmEzOWY2NTgzMjRkNmNmMDBkODA3NDBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEd0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3RrL1Bhc3RlYm9hcmRHdGsuY3BwCkBAIC0yNiw3ICsyNiw2IEBACiAjaW5jbHVkZSAi
VVJMLmgiCiAjaW5jbHVkZSAiUGFzdGVib2FyZEhlbHBlci5oIgogI2luY2x1ZGUgPGd0ay9ndGsu
aD4KLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
QEAgLTM5LDM4ICszOCwzOCBAQCBlbnVtIENsaXBib2FyZERhdGFUeXBlIHsKICAgICBDbGlwYm9h
cmREYXRhVHlwZVVua25vd24KIH07CiAKLVBhc3NPd25QdHI8UGFzdGVib2FyZD4gUGFzdGVib2Fy
ZDo6Y3JlYXRlKEd0a0NsaXBib2FyZCogZ3RrQ2xpcGJvYXJkKQorc3RkOjp1bmlxdWVfcHRyPFBh
c3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZShHdGtDbGlwYm9hcmQqIGd0a0NsaXBib2FyZCkK
IHsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IFBhc3RlYm9hcmQoZ3RrQ2xpcGJvYXJkKSk7Cisg
ICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPihuZXcgUGFzdGVib2FyZChndGtD
bGlwYm9hcmQpKTsKIH0KIAotUGFzc093blB0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVh
dGUoUGFzc1JlZlB0cjxEYXRhT2JqZWN0R3RrPiBkYXRhT2JqZWN0KQorc3RkOjp1bmlxdWVfcHRy
PFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZShQYXNzUmVmUHRyPERhdGFPYmplY3RHdGs+
IGRhdGFPYmplY3QpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBQYXN0ZWJvYXJkKGRhdGFP
YmplY3QpKTsKKyAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPFBhc3RlYm9hcmQ+KG5ldyBQYXN0
ZWJvYXJkKGRhdGFPYmplY3QpKTsKIH0KIAotUGFzc093blB0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJv
YXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKQorc3RkOjp1bmlxdWVfcHRyPFBhc3RlYm9hcmQ+
IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpCiB7CiAgICAgcmV0dXJuIGNyZWF0
ZShndGtfY2xpcGJvYXJkX2dldChHREtfU0VMRUNUSU9OX0NMSVBCT0FSRCkpOwogfQogCi1QYXNz
T3duUHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckdsb2JhbFNlbGVjdGlvbigp
CitzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9yR2xvYmFs
U2VsZWN0aW9uKCkKIHsKICAgICByZXR1cm4gY3JlYXRlKGd0a19jbGlwYm9hcmRfZ2V0KEdES19T
RUxFQ1RJT05fUFJJTUFSWSkpOwogfQogCi1QYXNzT3duUHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9h
cmQ6OmNyZWF0ZVByaXZhdGUoKQorc3RkOjp1bmlxdWVfcHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9h
cmQ6OmNyZWF0ZVByaXZhdGUoKQogewogICAgIHJldHVybiBjcmVhdGUoRGF0YU9iamVjdEd0azo6
Y3JlYXRlKCkpOwogfQogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKLVBhc3NPd25QdHI8UGFz
dGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AoKQorc3RkOjp1bmlxdWVf
cHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckRyYWdBbmREcm9wKCkKIHsKICAg
ICByZXR1cm4gY3JlYXRlKERhdGFPYmplY3RHdGs6OmNyZWF0ZSgpKTsKIH0KIAotUGFzc093blB0
cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcChjb25zdCBEcmFn
RGF0YSYgZHJhZ0RhdGEpCitzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6
Y3JlYXRlRm9yRHJhZ0FuZERyb3AoY29uc3QgRHJhZ0RhdGEmIGRyYWdEYXRhKQogewogICAgIHJl
dHVybiBjcmVhdGUoZHJhZ0RhdGEucGxhdGZvcm1EYXRhKCkpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1Bhc3RlYm9hcmRJT1MubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvUGFzdGVib2FyZElPUy5tbQppbmRleCA3ZDFlOTZkZGU5NTBjMjVjNmEx
NzQyMDE2ZThjZjYxNzhlNWU1OTQ5Li5iZTIyY2M4NTI5ZTA2MDU3YjQzNzUwODQ0NTRiN2E4Njk1
ZWRmZjc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGFzdGVib2Fy
ZElPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGFzdGVib2FyZElPUy5t
bQpAQCAtMTIxLDE0ICsxMjEsMTQgQEAgUGFzdGVib2FyZDo6UGFzdGVib2FyZCgpCiB7CiB9CiAK
LVBhc3NPd25QdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9yQ29weUFuZFBhc3Rl
KCkKK3N0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5
QW5kUGFzdGUoKQogewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgUGFzdGVib2FyZCk7CisgICAg
cmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8UGFzdGVib2FyZD4obmV3IFBhc3RlYm9hcmQpOwogfQog
Ci1QYXNzT3duUHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZVByaXZhdGUoKQorc3Rk
Ojp1bmlxdWVfcHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZVByaXZhdGUoKQogewot
ICAgIHJldHVybiBhZG9wdFB0cihuZXcgUGFzdGVib2FyZCk7CisgICAgcmV0dXJuIHN0ZDo6bWFr
ZV91bmlxdWU8UGFzdGVib2FyZD4obmV3IFBhc3RlYm9hcmQpOwogfQogCiB2b2lkIFBhc3RlYm9h
cmQ6OndyaXRlKGNvbnN0IFBhc3RlYm9hcmRXZWJDb250ZW50JiBjb250ZW50KQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bhc3RlYm9hcmRNYWMubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbQppbmRleCA1MDFhMzhjYTU3Mjll
Y2I3YTk4MTY0NDk0N2Q3MWQzMjdmMWYyZjRmLi5kYjgwOWVkYmY4ODU3OTE3NWE1YjFiNWYyNzc4
MzFjODgyMGUwZTJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFz
dGVib2FyZE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2Fy
ZE1hYy5tbQpAQCAtMTIzLDI4ICsxMjMsMjggQEAgUGFzdGVib2FyZDo6UGFzdGVib2FyZChjb25z
dCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKQogICAgIEFTU0VSVChwYXN0ZWJvYXJkTmFtZSk7CiB9
CiAKLVBhc3NPd25QdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlKGNvbnN0IFN0cmlu
ZyYgcGFzdGVib2FyZE5hbWUpCitzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4gUGFzdGVib2Fy
ZDo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpCiB7Ci0gICAgcmV0dXJuIGFk
b3B0UHRyKG5ldyBQYXN0ZWJvYXJkKHBhc3RlYm9hcmROYW1lKSk7CisgICAgcmV0dXJuIHN0ZDo6
dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPihuZXcgUGFzdGVib2FyZChwYXN0ZWJvYXJkTmFtZSkpOwog
fQogCi1QYXNzT3duUHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQ
YXN0ZSgpCitzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9y
Q29weUFuZFBhc3RlKCkKIHsKICAgICByZXR1cm4gY3JlYXRlKE5TR2VuZXJhbFBib2FyZCk7CiB9
CiAKLVBhc3NPd25QdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlUHJpdmF0ZSgpCitz
dGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlUHJpdmF0ZSgpCiB7
CiAgICAgcmV0dXJuIGNyZWF0ZShwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0
ZWd5KCktPnVuaXF1ZU5hbWUoKSk7CiB9CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotUGFz
c093blB0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcCgpCitz
dGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERy
b3AoKQogewogICAgIHJldHVybiBjcmVhdGUoTlNEcmFnUGJvYXJkKTsKIH0KIAotUGFzc093blB0
cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcChjb25zdCBEcmFn
RGF0YSYgZHJhZ0RhdGEpCitzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6
Y3JlYXRlRm9yRHJhZ0FuZERyb3AoY29uc3QgRHJhZ0RhdGEmIGRyYWdEYXRhKQogewogICAgIHJl
dHVybiBjcmVhdGUoZHJhZ0RhdGEucGFzdGVib2FyZE5hbWUoKSk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGFzdGVib2FyZFdpbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS93aW4vUGFzdGVib2FyZFdpbi5jcHAKaW5kZXggN2FlZTE0MTEzYzRjN2Y2
OTAyNTA0ZDgxNWQxMjBkZjU2YjRmNGEyZS4uNDFkZTIwYzQ3NmZmNDA3NmE0MWU1NGE4YTc4MzVi
OWIxN2M3ZWVjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1Bhc3Rl
Ym9hcmRXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QYXN0ZWJvYXJk
V2luLmNwcApAQCAtOTAsOSArOTAsOSBAQCBzdGF0aWMgTFJFU1VMVCBDQUxMQkFDSyBQYXN0ZWJv
YXJkT3duZXJXbmRQcm9jKEhXTkQgaFduZCwgVUlOVCBtZXNzYWdlLCBXUEFSQU0gdwogICAgIHJl
dHVybiBscmVzdWx0OwogfQogCi1QYXNzT3duUHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNy
ZWF0ZUZvckNvcHlBbmRQYXN0ZSgpCitzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4gUGFzdGVi
b2FyZDo6Y3JlYXRlRm9yQ29weUFuZFBhc3RlKCkKIHsKLSAgICBPd25QdHI8UGFzdGVib2FyZD4g
cGFzdGVib2FyZCA9IGFkb3B0UHRyKG5ldyBQYXN0ZWJvYXJkKTsKKyAgICBzdGQ6OnVuaXF1ZV9w
dHI8UGFzdGVib2FyZD4gcGFzdGVib2FyZCA9IHN0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPihu
ZXcgUGFzdGVib2FyZCk7CiAgICAgQ09NUHRyPElEYXRhT2JqZWN0PiBjbGlwYm9hcmREYXRhOwog
ICAgIGlmICghU1VDQ0VFREVEKE9sZUdldENsaXBib2FyZCgmY2xpcGJvYXJkRGF0YSkpKQogICAg
ICAgICBjbGlwYm9hcmREYXRhID0gMDsKQEAgLTEwMCwyNyArMTAwLDI3IEBAIFBhc3NPd25QdHI8
UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9yQ29weUFuZFBhc3RlKCkKICAgICByZXR1
cm4gcGFzdGVib2FyZC5yZWxlYXNlKCk7CiB9CiAKLVBhc3NPd25QdHI8UGFzdGVib2FyZD4gUGFz
dGVib2FyZDo6Y3JlYXRlUHJpdmF0ZSgpCitzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4gUGFz
dGVib2FyZDo6Y3JlYXRlUHJpdmF0ZSgpCiB7CiAgICAgLy8gV2luZG93cyBoYXMgbm8gIlByaXZh
dGUgcGFzdGVib2FyZCIgY29uY2VwdC4KICAgICByZXR1cm4gY3JlYXRlRm9yQ29weUFuZFBhc3Rl
KCk7CiB9CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotUGFzc093blB0cjxQYXN0ZWJvYXJk
PiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcCgpCitzdGQ6OnVuaXF1ZV9wdHI8UGFz
dGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AoKQogewogICAgIENPTVB0
cjxXQ0RhdGFPYmplY3Q+IGRhdGFPYmplY3Q7CiAgICAgV0NEYXRhT2JqZWN0OjpjcmVhdGVJbnN0
YW5jZSgmZGF0YU9iamVjdCk7Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBQYXN0ZWJvYXJkKGRh
dGFPYmplY3QuZ2V0KCkpKTsKKyAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPFBhc3RlYm9hcmQ+
KG5ldyBQYXN0ZWJvYXJkKGRhdGFPYmplY3QuZ2V0KCkpKTsKIH0KIAogLy8gc3RhdGljCi1QYXNz
T3duUHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckRyYWdBbmREcm9wKGNvbnN0
IERyYWdEYXRhJiBkcmFnRGF0YSkKK3N0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJv
YXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcChjb25zdCBEcmFnRGF0YSYgZHJhZ0RhdGEpCiB7CiAg
ICAgaWYgKGRyYWdEYXRhLnBsYXRmb3JtRGF0YSgpKQotICAgICAgICByZXR1cm4gYWRvcHRQdHIo
bmV3IFBhc3RlYm9hcmQoZHJhZ0RhdGEucGxhdGZvcm1EYXRhKCkpKTsKKyAgICAgICAgcmV0dXJu
IHN0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPihuZXcgUGFzdGVib2FyZChkcmFnRGF0YS5wbGF0
Zm9ybURhdGEoKSkpOwogICAgIC8vIEZJWE1FOiBTaG91bGQgYWRkIGEgY29uc3Qgb3ZlcmxvYWQg
b2YgZHJhZ0RhdGFNYXAgc28gd2UgZG9uJ3QgbmVlZCBhIGNvbnN0X2Nhc3QgaGVyZS4KLSAgICBy
ZXR1cm4gYWRvcHRQdHIobmV3IFBhc3RlYm9hcmQoY29uc3RfY2FzdDxEcmFnRGF0YSY+KGRyYWdE
YXRhKS5kcmFnRGF0YU1hcCgpKSk7CisgICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJv
YXJkPihuZXcgUGFzdGVib2FyZChjb25zdF9jYXN0PERyYWdEYXRhJj4oZHJhZ0RhdGEpLmRyYWdE
YXRhTWFwKCkpKTsKIH0KICNlbmRpZgogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>242146</attachid>
            <date>2014-11-23 23:10:45 -0800</date>
            <delta_ts>2014-11-24 02:03:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-139019-20141124161106.patch</filename>
            <type>text/plain</type>
            <size>15372</size>
            <attacher name="Joonghun Park">jh718.park</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc2NTEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDJhNTAwZGU4ZmRmNTdk
NDM5ZGQ5N2QzMzU5MmU5ZWVhN2Y2MDNiYi4uNzI4MmQwODVlY2M2NGQ3N2ZmYWZhODE1Y2E3YWUw
NmZhMzZlZGI0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDE0LTExLTIzICBKb29u
Z2h1biBQYXJrICA8amg3MTgucGFya0BzYW1zdW5nLmNvbT4KKworICAgICAgICBVc2Ugc3RkOjp1
bmlxdWVfcHRyIGluc3RlYWQgb2YgUGFzc093blB0cnxPd25QdHIgZm9yIFBhc3RlYm9hcmQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzOTAxOQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0
cywgbm8gYmVoYXZpb3IgY2hhbmdlcy4KKworICAgICAgICAqIGRvbS9EYXRhVHJhbnNmZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRyYW5zZmVyOjpEYXRhVHJhbnNmZXIpOgorICAgICAg
ICAqIGRvbS9EYXRhVHJhbnNmZXIuaDoKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmRpc3BhdGNoQ1BQRXZlbnQpOgorICAgICAgICAqIHBh
Z2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxl
cjo6Y3JlYXRlRHJhZ2dpbmdEYXRhVHJhbnNmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL1Bhc3Rl
Ym9hcmQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvUGFzdGVib2FyZEVmbC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6Y3JlYXRlUHJpdmF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcCk6CisgICAgICAgICogcGxhdGZvcm0v
Z3RrL1Bhc3RlYm9hcmRHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpjcmVhdGVGb3JHbG9iYWxTZWxlY3Rp
b24pOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6Y3JlYXRlUHJpdmF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcCk6CisgICAgICAg
ICogcGxhdGZvcm0vaW9zL1Bhc3RlYm9hcmRJT1MubW06CisgICAgICAgIChXZWJDb3JlOjpQYXN0
ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUpOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVi
b2FyZDo6Y3JlYXRlUHJpdmF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Bhc3RlYm9hcmRN
YWMubW06CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpjcmVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6UGFzdGVib2FyZDo6Y3JlYXRlRm9yQ29weUFuZFBhc3RlKToKKyAgICAgICAgKFdl
YkNvcmU6OlBhc3RlYm9hcmQ6OmNyZWF0ZVByaXZhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UGFz
dGVib2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERyb3ApOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9Q
YXN0ZWJvYXJkV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OmNyZWF0ZUZv
ckNvcHlBbmRQYXN0ZSk6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpjcmVhdGVQcml2
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OmNyZWF0ZUZvckRyYWdBbmREcm9w
KToKKwogMjAxNC0xMS0yMyAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAg
ICAgICAgVXNlIHNlZ21lbnQgdmVjdG9yIGZvciBGbG93Q29udGVudHMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rh
dGFUcmFuc2Zlci5jcHAKaW5kZXggZmUyMWFmZmZmMzU5OTNhOWZlNDkxODViMzI1ODAzODIyNzU5
MzhjMi4uMzg0Yzg1ZjI2OGYyYjBhNWEyYTE1ZmMxMzQyZDkwNzE0ODU4MjZjYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RhdGFUcmFuc2Zlci5jcHAKQEAgLTU1LDkgKzU1LDkgQEAgcHJpdmF0ZToKIAogI2Vu
ZGlmCiAKLURhdGFUcmFuc2Zlcjo6RGF0YVRyYW5zZmVyKERhdGFUcmFuc2ZlckFjY2Vzc1BvbGlj
eSBwb2xpY3ksIFBhc3NPd25QdHI8UGFzdGVib2FyZD4gcGFzdGVib2FyZCwgVHlwZSB0eXBlLCBi
b29sIGZvckZpbGVEcmFnKQorRGF0YVRyYW5zZmVyOjpEYXRhVHJhbnNmZXIoRGF0YVRyYW5zZmVy
QWNjZXNzUG9saWN5IHBvbGljeSwgc3RkOjp1bmlxdWVfcHRyPFBhc3RlYm9hcmQ+IHBhc3RlYm9h
cmQsIFR5cGUgdHlwZSwgYm9vbCBmb3JGaWxlRHJhZykKICAgICA6IG1fcG9saWN5KHBvbGljeSkK
LSAgICAsIG1fcGFzdGVib2FyZChwYXN0ZWJvYXJkKQorICAgICwgbV9wYXN0ZWJvYXJkKFdURjo6
bW92ZShwYXN0ZWJvYXJkKSkKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogICAgICwgbV9mb3JE
cmFnKHR5cGUgIT0gQ29weUFuZFBhc3RlKQogICAgICwgbV9mb3JGaWxlRHJhZyhmb3JGaWxlRHJh
ZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXIuaAppbmRleCA5ZDk2N2E2NTM1OTBhN2M1ZjcwOTgz
MDJkZmNmMTRmZGU4OGE0MTBlLi5jYTgzYjlmOWZmNTQzNDVjZDdiZTcyMzc0MzE5YjZkMDZlNGY5
MzZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlci5oCkBAIC05OSwxNCArOTksMTQgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiAgICAgcHJpdmF0ZToKICAgICAgICAgZW51bSBUeXBlIHsgQ29w
eUFuZFBhc3RlLCBEcmFnQW5kRHJvcCB9OwotICAgICAgICBEYXRhVHJhbnNmZXIoRGF0YVRyYW5z
ZmVyQWNjZXNzUG9saWN5LCBQYXNzT3duUHRyPFBhc3RlYm9hcmQ+LCBUeXBlID0gQ29weUFuZFBh
c3RlLCBib29sIGZvckZpbGVEcmFnID0gZmFsc2UpOworICAgICAgICBEYXRhVHJhbnNmZXIoRGF0
YVRyYW5zZmVyQWNjZXNzUG9saWN5LCBzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4sIFR5cGUg
PSBDb3B5QW5kUGFzdGUsIGJvb2wgZm9yRmlsZURyYWcgPSBmYWxzZSk7CiAKICNpZiBFTkFCTEUo
RFJBR19TVVBQT1JUKQogICAgICAgICBib29sIGNhblNldERyYWdJbWFnZSgpIGNvbnN0OwogI2Vu
ZGlmCiAKICAgICAgICAgRGF0YVRyYW5zZmVyQWNjZXNzUG9saWN5IG1fcG9saWN5OwotICAgICAg
ICBPd25QdHI8UGFzdGVib2FyZD4gbV9wYXN0ZWJvYXJkOworICAgICAgICBzdGQ6OnVuaXF1ZV9w
dHI8UGFzdGVib2FyZD4gbV9wYXN0ZWJvYXJkOwogCiAgICAgICAgIG11dGFibGUgUmVmUHRyPEZp
bGVMaXN0PiBtX2ZpbGVMaXN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKaW5kZXggZWQ2
M2EyODczZjBmOGY3YjEzZmI1ODhmMzMzMWMwMDc3ZTU4NTRjYy4uMTViZTg3MGJkNmFlM2JiNmVl
ZmI4MjNjMmMzMDU1NGIwNDQ2OWQ4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9FZGl0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcApAQCAt
ODU3LDcgKzg1Nyw3IEBAIGJvb2wgRWRpdG9yOjpkaXNwYXRjaENQUEV2ZW50KGNvbnN0IEF0b21p
Y1N0cmluZyYgZXZlbnRUeXBlLCBEYXRhVHJhbnNmZXJBY2Nlc3NQCiAgICAgdGFyZ2V0LT5kaXNw
YXRjaEV2ZW50KGV2ZW50LCBJR05PUkVfRVhDRVBUSU9OKTsKICAgICBib29sIG5vRGVmYXVsdFBy
b2Nlc3NpbmcgPSBldmVudC0+ZGVmYXVsdFByZXZlbnRlZCgpOwogICAgIGlmIChub0RlZmF1bHRQ
cm9jZXNzaW5nICYmIHBvbGljeSA9PSBEYXRhVHJhbnNmZXJBY2Nlc3NQb2xpY3k6OldyaXRhYmxl
KSB7Ci0gICAgICAgIE93blB0cjxQYXN0ZWJvYXJkPiBwYXN0ZWJvYXJkID0gUGFzdGVib2FyZDo6
Y3JlYXRlRm9yQ29weUFuZFBhc3RlKCk7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJv
YXJkPiBwYXN0ZWJvYXJkID0gUGFzdGVib2FyZDo6Y3JlYXRlRm9yQ29weUFuZFBhc3RlKCk7CiAg
ICAgICAgIHBhc3RlYm9hcmQtPmNsZWFyKCk7CiAgICAgICAgIHBhc3RlYm9hcmQtPndyaXRlUGFz
dGVib2FyZChkYXRhVHJhbnNmZXItPnBhc3RlYm9hcmQoKSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tCmluZGV4IDhiZTlmMjJhYzk5MWFhZDk3MzY2
ODVjNjU2MWRiMDBiZmU0ZWY2ZWMuLjlmY2E4NTBiOWRhY2ExN2UyOGU5ZjUwMDg0NDA2YmI1NmM1
ZDQzMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxlck1h
Yy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW0KQEAg
LTY4MSw3ICs2ODEsNyBAQCBQYXNzUmVmUHRyPERhdGFUcmFuc2Zlcj4gRXZlbnRIYW5kbGVyOjpj
cmVhdGVEcmFnZ2luZ0RhdGFUcmFuc2ZlcigpIGNvbnN0CiB7CiAgICAgLy8gTXVzdCBiZSBkb25l
IGJlZm9yZSBvbmRyYWdzdGFydCBhZGRzIHR5cGVzIGFuZCBkYXRhIHRvIHRoZSBwYm9hcmQsCiAg
ICAgLy8gYWxzbyBkb25lIGZvciBzZWN1cml0eSwgYXMgaXQgZXJhc2VzIGRhdGEgZnJvbSB0aGUg
bGFzdCBkcmFnLgotICAgIE93blB0cjxQYXN0ZWJvYXJkPiBwYXN0ZWJvYXJkID0gUGFzdGVib2Fy
ZDo6Y3JlYXRlKE5TRHJhZ1Bib2FyZCk7CisgICAgc3RkOjp1bmlxdWVfcHRyPFBhc3RlYm9hcmQ+
IHBhc3RlYm9hcmQgPSBQYXN0ZWJvYXJkOjpjcmVhdGUoTlNEcmFnUGJvYXJkKTsKICAgICBwYXN0
ZWJvYXJkLT5jbGVhcigpOwogICAgIHJldHVybiBEYXRhVHJhbnNmZXI6OmNyZWF0ZUZvckRyYWdB
bmREcm9wKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJv
YXJkLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkLmgKaW5kZXggOTQyZjll
NjdkMGRlYzhhNGZmMjI1NTE3ZDk0MDU3ZWU1OTkyMjkyMC4uN2ZlMjg3YTllYzIwYWU5ZmE3NWM3
OGUzZWIwNmE5NjUxMzYwNGViMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UGFzdGVib2FyZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmQuaApA
QCAtMTQxLDggKzE0MSw4IEBAIGNsYXNzIFBhc3RlYm9hcmQgewogcHVibGljOgogICAgIH5QYXN0
ZWJvYXJkKCk7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUGFzc093blB0cjxQYXN0ZWJv
YXJkPiBjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKTsKLSAgICBzdGF0aWMgUGFzc093blB0cjxQYXN0
ZWJvYXJkPiBjcmVhdGVQcml2YXRlKCk7IC8vIFRlbXBvcmFyeSBwYXN0ZWJvYXJkLiBDYW4gcHV0
IGRhdGEgb24gdGhpcyBhbmQgdGhlbiB3cml0ZSB0byBhbm90aGVyIHBhc3RlYm9hcmQgd2l0aCB3
cml0ZVBhc3RlYm9hcmQuCisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHN0ZDo6dW5pcXVlX3B0
cjxQYXN0ZWJvYXJkPiBjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKTsKKyAgICBzdGF0aWMgc3RkOjp1
bmlxdWVfcHRyPFBhc3RlYm9hcmQ+IGNyZWF0ZVByaXZhdGUoKTsgLy8gVGVtcG9yYXJ5IHBhc3Rl
Ym9hcmQuIENhbiBwdXQgZGF0YSBvbiB0aGlzIGFuZCB0aGVuIHdyaXRlIHRvIGFub3RoZXIgcGFz
dGVib2FyZCB3aXRoIHdyaXRlUGFzdGVib2FyZC4KIAogICAgIGJvb2wgaGFzRGF0YSgpOwogICAg
IFZlY3RvcjxTdHJpbmc+IHR5cGVzKCk7CkBAIC0xNjgsOCArMTY4LDggQEAgcHVibGljOgogICAg
IHZvaWQgd3JpdGVQYXN0ZWJvYXJkKGNvbnN0IFBhc3RlYm9hcmQmIHNvdXJjZVBhc3RlYm9hcmQp
OwogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKLSAgICBzdGF0aWMgUGFzc093blB0cjxQYXN0
ZWJvYXJkPiBjcmVhdGVGb3JEcmFnQW5kRHJvcCgpOwotICAgIHN0YXRpYyBQYXNzT3duUHRyPFBh
c3RlYm9hcmQ+IGNyZWF0ZUZvckRyYWdBbmREcm9wKGNvbnN0IERyYWdEYXRhJik7CisgICAgc3Rh
dGljIHN0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBjcmVhdGVGb3JEcmFnQW5kRHJvcCgpOwor
ICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4gY3JlYXRlRm9yRHJhZ0FuZERy
b3AoY29uc3QgRHJhZ0RhdGEmKTsKIAogICAgIHZvaWQgc2V0RHJhZ0ltYWdlKERyYWdJbWFnZVJl
ZiwgY29uc3QgSW50UG9pbnQmIGhvdFNwb3QpOwogI2VuZGlmCkBAIC0xODEsMTAgKzE4MSwxMCBA
QCBwdWJsaWM6CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKEdUSykKLSAgICBzdGF0aWMgUGFzc093
blB0cjxQYXN0ZWJvYXJkPiBjcmVhdGUoUGFzc1JlZlB0cjxEYXRhT2JqZWN0R3RrPik7Ci0gICAg
c3RhdGljIFBhc3NPd25QdHI8UGFzdGVib2FyZD4gY3JlYXRlKEd0a0NsaXBib2FyZCopOworICAg
IHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4gY3JlYXRlKFBhc3NSZWZQdHI8RGF0
YU9iamVjdEd0az4pOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4gY3Jl
YXRlKEd0a0NsaXBib2FyZCopOwogICAgIFBhc3NSZWZQdHI8RGF0YU9iamVjdEd0az4gZGF0YU9i
amVjdCgpIGNvbnN0OwotICAgIHN0YXRpYyBQYXNzT3duUHRyPFBhc3RlYm9hcmQ+IGNyZWF0ZUZv
ckdsb2JhbFNlbGVjdGlvbigpOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2Fy
ZD4gY3JlYXRlRm9yR2xvYmFsU2VsZWN0aW9uKCk7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElP
UykKQEAgLTE5NCw3ICsxOTQsNyBAQCBwdWJsaWM6CiAKICNpZiBQTEFURk9STShNQUMpCiAgICAg
ZXhwbGljaXQgUGFzdGVib2FyZChjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKTsKLSAgICBz
dGF0aWMgUGFzc093blB0cjxQYXN0ZWJvYXJkPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBwYXN0ZWJv
YXJkTmFtZSk7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBjcmVhdGUo
Y29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSk7CiAKICAgICBjb25zdCBTdHJpbmcmIG5hbWUo
KSBjb25zdCB7IHJldHVybiBtX3Bhc3RlYm9hcmROYW1lOyB9CiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9QYXN0ZWJvYXJkRWZsLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2VmbC9QYXN0ZWJvYXJkRWZsLmNwcAppbmRleCA4YTA4MTBmZTExNTQz
MmNhNTBiNjNjZjA2Y2M1N2EwNmRhYjM5MzNiLi5iNDQ0NGVmNDhkOGYxNTdmYTRiYThhODU3OWM0
OWY5ZjVjOWJmMjM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUGFz
dGVib2FyZEVmbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1Bhc3RlYm9h
cmRFZmwuY3BwCkBAIC0yNCw3ICsyNCw2IEBACiAjaW5jbHVkZSAiUGFzdGVib2FyZC5oIgogCiAj
aW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQ4LDIzICs0NywyMyBAQCBib29sIFBhc3RlYm9h
cmQ6OmNhblNtYXJ0UmVwbGFjZSgpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1QYXNzT3duUHRy
PFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpCitzdGQ6OnVu
aXF1ZV9wdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9yQ29weUFuZFBhc3RlKCkK
IHsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IFBhc3RlYm9hcmQpOworICAgIHJldHVybiBzdGQ6
OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4obmV3IFBhc3RlYm9hcmQpOwogfQogCi1QYXNzT3duUHRy
PFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZVByaXZhdGUoKQorc3RkOjp1bmlxdWVfcHRy
PFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZVByaXZhdGUoKQogewogICAgIHJldHVybiBj
cmVhdGVGb3JDb3B5QW5kUGFzdGUoKTsKIH0KIAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi1Q
YXNzT3duUHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckRyYWdBbmREcm9wKCkK
K3N0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5k
RHJvcCgpCiB7CiAgICAgcmV0dXJuIGNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpOwogfQogCi1QYXNz
T3duUHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckRyYWdBbmREcm9wKGNvbnN0
IERyYWdEYXRhJikKK3N0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVh
dGVGb3JEcmFnQW5kRHJvcChjb25zdCBEcmFnRGF0YSYpCiB7CiAgICAgcmV0dXJuIGNyZWF0ZUZv
ckNvcHlBbmRQYXN0ZSgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3RrL1Bhc3RlYm9hcmRHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Bhc3Rl
Ym9hcmRHdGsuY3BwCmluZGV4IDBhYWRkNWNlNDk2OWFmZTFkNmExNGY5ZjNjMjE5MTM4ZjQ4MTIx
ODcuLjFmNDY5NDY4ZDVlYzZlMjMyYTM5ZjY1ODMyNGQ2Y2YwMGQ4MDc0MGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkR3RrLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEd0ay5jcHAKQEAgLTI2LDcgKzI2LDYg
QEAKICNpbmNsdWRlICJVUkwuaCIKICNpbmNsdWRlICJQYXN0ZWJvYXJkSGVscGVyLmgiCiAjaW5j
bHVkZSA8Z3RrL2d0ay5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIApAQCAtMzksMzggKzM4LDM4IEBAIGVudW0gQ2xpcGJvYXJkRGF0YVR5cGUg
ewogICAgIENsaXBib2FyZERhdGFUeXBlVW5rbm93bgogfTsKIAotUGFzc093blB0cjxQYXN0ZWJv
YXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGUoR3RrQ2xpcGJvYXJkKiBndGtDbGlwYm9hcmQpCitzdGQ6
OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlKEd0a0NsaXBib2FyZCog
Z3RrQ2xpcGJvYXJkKQogewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgUGFzdGVib2FyZChndGtD
bGlwYm9hcmQpKTsKKyAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPFBhc3RlYm9hcmQ+KG5ldyBQ
YXN0ZWJvYXJkKGd0a0NsaXBib2FyZCkpOwogfQogCi1QYXNzT3duUHRyPFBhc3RlYm9hcmQ+IFBh
c3RlYm9hcmQ6OmNyZWF0ZShQYXNzUmVmUHRyPERhdGFPYmplY3RHdGs+IGRhdGFPYmplY3QpCitz
dGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlKFBhc3NSZWZQdHI8
RGF0YU9iamVjdEd0az4gZGF0YU9iamVjdCkKIHsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IFBh
c3RlYm9hcmQoZGF0YU9iamVjdCkpOworICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVi
b2FyZD4obmV3IFBhc3RlYm9hcmQoZGF0YU9iamVjdCkpOwogfQogCi1QYXNzT3duUHRyPFBhc3Rl
Ym9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpCitzdGQ6OnVuaXF1ZV9w
dHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9yQ29weUFuZFBhc3RlKCkKIHsKICAg
ICByZXR1cm4gY3JlYXRlKGd0a19jbGlwYm9hcmRfZ2V0KEdES19TRUxFQ1RJT05fQ0xJUEJPQVJE
KSk7CiB9CiAKLVBhc3NPd25QdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9yR2xv
YmFsU2VsZWN0aW9uKCkKK3N0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpj
cmVhdGVGb3JHbG9iYWxTZWxlY3Rpb24oKQogewogICAgIHJldHVybiBjcmVhdGUoZ3RrX2NsaXBi
b2FyZF9nZXQoR0RLX1NFTEVDVElPTl9QUklNQVJZKSk7CiB9CiAKLVBhc3NPd25QdHI8UGFzdGVi
b2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlUHJpdmF0ZSgpCitzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVi
b2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlUHJpdmF0ZSgpCiB7CiAgICAgcmV0dXJuIGNyZWF0ZShE
YXRhT2JqZWN0R3RrOjpjcmVhdGUoKSk7CiB9CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQot
UGFzc093blB0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcCgp
CitzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9yRHJhZ0Fu
ZERyb3AoKQogewogICAgIHJldHVybiBjcmVhdGUoRGF0YU9iamVjdEd0azo6Y3JlYXRlKCkpOwog
fQogCi1QYXNzT3duUHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckRyYWdBbmRE
cm9wKGNvbnN0IERyYWdEYXRhJiBkcmFnRGF0YSkKK3N0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJk
PiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcChjb25zdCBEcmFnRGF0YSYgZHJhZ0Rh
dGEpCiB7CiAgICAgcmV0dXJuIGNyZWF0ZShkcmFnRGF0YS5wbGF0Zm9ybURhdGEoKSk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGFzdGVib2FyZElPUy5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QYXN0ZWJvYXJkSU9TLm1tCmluZGV4IDdkMWU5
NmRkZTk1MGMyNWM2YTE3NDIwMTZlOGNmNjE3OGU1ZTU5NDkuLmJlMjJjYzg1MjllMDYwNTdiNDM3
NTA4NDQ1NGI3YTg2OTVlZGZmNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2lvcy9QYXN0ZWJvYXJkSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9Q
YXN0ZWJvYXJkSU9TLm1tCkBAIC0xMjEsMTQgKzEyMSwxNCBAQCBQYXN0ZWJvYXJkOjpQYXN0ZWJv
YXJkKCkKIHsKIH0KIAotUGFzc093blB0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVG
b3JDb3B5QW5kUGFzdGUoKQorc3RkOjp1bmlxdWVfcHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6
OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBQYXN0
ZWJvYXJkKTsKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxQYXN0ZWJvYXJkPihuZXcgUGFz
dGVib2FyZCk7CiB9CiAKLVBhc3NPd25QdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRl
UHJpdmF0ZSgpCitzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRl
UHJpdmF0ZSgpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBQYXN0ZWJvYXJkKTsKKyAgICBy
ZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxQYXN0ZWJvYXJkPihuZXcgUGFzdGVib2FyZCk7CiB9CiAK
IHZvaWQgUGFzdGVib2FyZDo6d3JpdGUoY29uc3QgUGFzdGVib2FyZFdlYkNvbnRlbnQmIGNvbnRl
bnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1h
Yy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tCmluZGV4
IDUwMWEzOGNhNTcyOWVjYjdhOTgxNjQ0OTQ3ZDcxZDMyN2YxZjJmNGYuLmRiODA5ZWRiZjg4NTc5
MTc1YTViMWI1ZjI3NzgzMWM4ODIwZTBlMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9QYXN0ZWJvYXJkTWFjLm1tCkBAIC0xMjMsMjggKzEyMywyOCBAQCBQYXN0ZWJvYXJkOjpQ
YXN0ZWJvYXJkKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpCiAgICAgQVNTRVJUKHBhc3Rl
Ym9hcmROYW1lKTsKIH0KIAotUGFzc093blB0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVh
dGUoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkKK3N0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJv
YXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGUoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkKIHsK
LSAgICByZXR1cm4gYWRvcHRQdHIobmV3IFBhc3RlYm9hcmQocGFzdGVib2FyZE5hbWUpKTsKKyAg
ICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPFBhc3RlYm9hcmQ+KG5ldyBQYXN0ZWJvYXJkKHBhc3Rl
Ym9hcmROYW1lKSk7CiB9CiAKLVBhc3NPd25QdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3Jl
YXRlRm9yQ29weUFuZFBhc3RlKCkKK3N0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJv
YXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKQogewogICAgIHJldHVybiBjcmVhdGUoTlNHZW5l
cmFsUGJvYXJkKTsKIH0KIAotUGFzc093blB0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVh
dGVQcml2YXRlKCkKK3N0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVh
dGVQcml2YXRlKCkKIHsKICAgICByZXR1cm4gY3JlYXRlKHBsYXRmb3JtU3RyYXRlZ2llcygpLT5w
YXN0ZWJvYXJkU3RyYXRlZ3koKS0+dW5pcXVlTmFtZSgpKTsKIH0KIAogI2lmIEVOQUJMRShEUkFH
X1NVUFBPUlQpCi1QYXNzT3duUHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckRy
YWdBbmREcm9wKCkKK3N0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVh
dGVGb3JEcmFnQW5kRHJvcCgpCiB7CiAgICAgcmV0dXJuIGNyZWF0ZShOU0RyYWdQYm9hcmQpOwog
fQogCi1QYXNzT3duUHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckRyYWdBbmRE
cm9wKGNvbnN0IERyYWdEYXRhJiBkcmFnRGF0YSkKK3N0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJk
PiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcChjb25zdCBEcmFnRGF0YSYgZHJhZ0Rh
dGEpCiB7CiAgICAgcmV0dXJuIGNyZWF0ZShkcmFnRGF0YS5wYXN0ZWJvYXJkTmFtZSgpKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNwcAppbmRleCA3
YWVlMTQxMTNjNGM3ZjY5MDI1MDRkODE1ZDEyMGRmNTZiNGY0YTJlLi40MWRlMjBjNDc2ZmY0MDc2
YTQxZTU0YThhNzgzNWI5YjE3YzdlZWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS93aW4vUGFzdGVib2FyZFdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
d2luL1Bhc3RlYm9hcmRXaW4uY3BwCkBAIC05MCw5ICs5MCw5IEBAIHN0YXRpYyBMUkVTVUxUIENB
TExCQUNLIFBhc3RlYm9hcmRPd25lclduZFByb2MoSFdORCBoV25kLCBVSU5UIG1lc3NhZ2UsIFdQ
QVJBTSB3CiAgICAgcmV0dXJuIGxyZXN1bHQ7CiB9CiAKLVBhc3NPd25QdHI8UGFzdGVib2FyZD4g
UGFzdGVib2FyZDo6Y3JlYXRlRm9yQ29weUFuZFBhc3RlKCkKK3N0ZDo6dW5pcXVlX3B0cjxQYXN0
ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKQogewotICAgIE93blB0
cjxQYXN0ZWJvYXJkPiBwYXN0ZWJvYXJkID0gYWRvcHRQdHIobmV3IFBhc3RlYm9hcmQpOworICAg
IHN0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBwYXN0ZWJvYXJkID0gc3RkOjp1bmlxdWVfcHRy
PFBhc3RlYm9hcmQ+KG5ldyBQYXN0ZWJvYXJkKTsKICAgICBDT01QdHI8SURhdGFPYmplY3Q+IGNs
aXBib2FyZERhdGE7CiAgICAgaWYgKCFTVUNDRUVERUQoT2xlR2V0Q2xpcGJvYXJkKCZjbGlwYm9h
cmREYXRhKSkpCiAgICAgICAgIGNsaXBib2FyZERhdGEgPSAwOwpAQCAtMTAwLDI3ICsxMDAsMjcg
QEAgUGFzc093blB0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFz
dGUoKQogICAgIHJldHVybiBwYXN0ZWJvYXJkLnJlbGVhc2UoKTsKIH0KIAotUGFzc093blB0cjxQ
YXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVQcml2YXRlKCkKK3N0ZDo6dW5pcXVlX3B0cjxQ
YXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVQcml2YXRlKCkKIHsKICAgICAvLyBXaW5kb3dz
IGhhcyBubyAiUHJpdmF0ZSBwYXN0ZWJvYXJkIiBjb25jZXB0LgogICAgIHJldHVybiBjcmVhdGVG
b3JDb3B5QW5kUGFzdGUoKTsKIH0KIAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi1QYXNzT3du
UHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckRyYWdBbmREcm9wKCkKK3N0ZDo6
dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcCgp
CiB7CiAgICAgQ09NUHRyPFdDRGF0YU9iamVjdD4gZGF0YU9iamVjdDsKICAgICBXQ0RhdGFPYmpl
Y3Q6OmNyZWF0ZUluc3RhbmNlKCZkYXRhT2JqZWN0KTsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3
IFBhc3RlYm9hcmQoZGF0YU9iamVjdC5nZXQoKSkpOworICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9w
dHI8UGFzdGVib2FyZD4obmV3IFBhc3RlYm9hcmQoZGF0YU9iamVjdC5nZXQoKSkpOwogfQogCiAv
LyBzdGF0aWMKLVBhc3NPd25QdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9yRHJh
Z0FuZERyb3AoY29uc3QgRHJhZ0RhdGEmIGRyYWdEYXRhKQorc3RkOjp1bmlxdWVfcHRyPFBhc3Rl
Ym9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckRyYWdBbmREcm9wKGNvbnN0IERyYWdEYXRhJiBk
cmFnRGF0YSkKIHsKICAgICBpZiAoZHJhZ0RhdGEucGxhdGZvcm1EYXRhKCkpCi0gICAgICAgIHJl
dHVybiBhZG9wdFB0cihuZXcgUGFzdGVib2FyZChkcmFnRGF0YS5wbGF0Zm9ybURhdGEoKSkpOwor
ICAgICAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPFBhc3RlYm9hcmQ+KG5ldyBQYXN0ZWJvYXJk
KGRyYWdEYXRhLnBsYXRmb3JtRGF0YSgpKSk7CiAgICAgLy8gRklYTUU6IFNob3VsZCBhZGQgYSBj
b25zdCBvdmVybG9hZCBvZiBkcmFnRGF0YU1hcCBzbyB3ZSBkb24ndCBuZWVkIGEgY29uc3RfY2Fz
dCBoZXJlLgotICAgIHJldHVybiBhZG9wdFB0cihuZXcgUGFzdGVib2FyZChjb25zdF9jYXN0PERy
YWdEYXRhJj4oZHJhZ0RhdGEpLmRyYWdEYXRhTWFwKCkpKTsKKyAgICByZXR1cm4gc3RkOjp1bmlx
dWVfcHRyPFBhc3RlYm9hcmQ+KG5ldyBQYXN0ZWJvYXJkKGNvbnN0X2Nhc3Q8RHJhZ0RhdGEmPihk
cmFnRGF0YSkuZHJhZ0RhdGFNYXAoKSkpOwogfQogI2VuZGlmCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>242151</attachid>
            <date>2014-11-24 02:03:20 -0800</date>
            <delta_ts>2014-11-24 02:36:02 -0800</delta_ts>
            <desc>&lt;WIP&gt;</desc>
            <filename>bug-139019-20141124190341.patch</filename>
            <type>text/plain</type>
            <size>15513</size>
            <attacher name="Joonghun Park">jh718.park</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc2NTEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDJhNTAwZGU4ZmRmNTdk
NDM5ZGQ5N2QzMzU5MmU5ZWVhN2Y2MDNiYi4uZTc0Y2E5MDdiNjk5ZjVmNjZiOTk4YzY3YjllZjI0
ZWRhMDk0MTAzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDE0LTExLTI0ICBKb29u
Z2h1biBQYXJrICA8amg3MTgucGFya0BzYW1zdW5nLmNvbT4KKworICAgICAgICBVc2Ugc3RkOjp1
bmlxdWVfcHRyIGluc3RlYWQgb2YgUGFzc093blB0cnxPd25QdHIgZm9yIFBhc3RlYm9hcmQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzOTAxOQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0
cywgbm8gYmVoYXZpb3IgY2hhbmdlcy4KKworICAgICAgICAqIGRvbS9EYXRhVHJhbnNmZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRyYW5zZmVyOjpEYXRhVHJhbnNmZXIpOgorICAgICAg
ICAqIGRvbS9EYXRhVHJhbnNmZXIuaDoKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmRpc3BhdGNoQ1BQRXZlbnQpOgorICAgICAgICAqIHBh
Z2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxl
cjo6Y3JlYXRlRHJhZ2dpbmdEYXRhVHJhbnNmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL1Bhc3Rl
Ym9hcmQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvUGFzdGVib2FyZEVmbC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6Y3JlYXRlUHJpdmF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcCk6CisgICAgICAgICogcGxhdGZvcm0v
Z3RrL1Bhc3RlYm9hcmRHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpjcmVhdGVGb3JHbG9iYWxTZWxlY3Rp
b24pOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6Y3JlYXRlUHJpdmF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcCk6CisgICAgICAg
ICogcGxhdGZvcm0vaW9zL1Bhc3RlYm9hcmRJT1MubW06CisgICAgICAgIChXZWJDb3JlOjpQYXN0
ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUpOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVi
b2FyZDo6Y3JlYXRlUHJpdmF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Bhc3RlYm9hcmRN
YWMubW06CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpjcmVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6UGFzdGVib2FyZDo6Y3JlYXRlRm9yQ29weUFuZFBhc3RlKToKKyAgICAgICAgKFdl
YkNvcmU6OlBhc3RlYm9hcmQ6OmNyZWF0ZVByaXZhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UGFz
dGVib2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERyb3ApOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9Q
YXN0ZWJvYXJkV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OmNyZWF0ZUZv
ckNvcHlBbmRQYXN0ZSk6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpjcmVhdGVQcml2
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OmNyZWF0ZUZvckRyYWdBbmREcm9w
KToKKwogMjAxNC0xMS0yMyAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAg
ICAgICAgVXNlIHNlZ21lbnQgdmVjdG9yIGZvciBGbG93Q29udGVudHMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rh
dGFUcmFuc2Zlci5jcHAKaW5kZXggZmUyMWFmZmZmMzU5OTNhOWZlNDkxODViMzI1ODAzODIyNzU5
MzhjMi4uMzg0Yzg1ZjI2OGYyYjBhNWEyYTE1ZmMxMzQyZDkwNzE0ODU4MjZjYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RhdGFUcmFuc2Zlci5jcHAKQEAgLTU1LDkgKzU1LDkgQEAgcHJpdmF0ZToKIAogI2Vu
ZGlmCiAKLURhdGFUcmFuc2Zlcjo6RGF0YVRyYW5zZmVyKERhdGFUcmFuc2ZlckFjY2Vzc1BvbGlj
eSBwb2xpY3ksIFBhc3NPd25QdHI8UGFzdGVib2FyZD4gcGFzdGVib2FyZCwgVHlwZSB0eXBlLCBi
b29sIGZvckZpbGVEcmFnKQorRGF0YVRyYW5zZmVyOjpEYXRhVHJhbnNmZXIoRGF0YVRyYW5zZmVy
QWNjZXNzUG9saWN5IHBvbGljeSwgc3RkOjp1bmlxdWVfcHRyPFBhc3RlYm9hcmQ+IHBhc3RlYm9h
cmQsIFR5cGUgdHlwZSwgYm9vbCBmb3JGaWxlRHJhZykKICAgICA6IG1fcG9saWN5KHBvbGljeSkK
LSAgICAsIG1fcGFzdGVib2FyZChwYXN0ZWJvYXJkKQorICAgICwgbV9wYXN0ZWJvYXJkKFdURjo6
bW92ZShwYXN0ZWJvYXJkKSkKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogICAgICwgbV9mb3JE
cmFnKHR5cGUgIT0gQ29weUFuZFBhc3RlKQogICAgICwgbV9mb3JGaWxlRHJhZyhmb3JGaWxlRHJh
ZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXIuaAppbmRleCA5ZDk2N2E2NTM1OTBhN2M1ZjcwOTgz
MDJkZmNmMTRmZGU4OGE0MTBlLi5jYTgzYjlmOWZmNTQzNDVjZDdiZTcyMzc0MzE5YjZkMDZlNGY5
MzZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlci5oCkBAIC05OSwxNCArOTksMTQgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiAgICAgcHJpdmF0ZToKICAgICAgICAgZW51bSBUeXBlIHsgQ29w
eUFuZFBhc3RlLCBEcmFnQW5kRHJvcCB9OwotICAgICAgICBEYXRhVHJhbnNmZXIoRGF0YVRyYW5z
ZmVyQWNjZXNzUG9saWN5LCBQYXNzT3duUHRyPFBhc3RlYm9hcmQ+LCBUeXBlID0gQ29weUFuZFBh
c3RlLCBib29sIGZvckZpbGVEcmFnID0gZmFsc2UpOworICAgICAgICBEYXRhVHJhbnNmZXIoRGF0
YVRyYW5zZmVyQWNjZXNzUG9saWN5LCBzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4sIFR5cGUg
PSBDb3B5QW5kUGFzdGUsIGJvb2wgZm9yRmlsZURyYWcgPSBmYWxzZSk7CiAKICNpZiBFTkFCTEUo
RFJBR19TVVBQT1JUKQogICAgICAgICBib29sIGNhblNldERyYWdJbWFnZSgpIGNvbnN0OwogI2Vu
ZGlmCiAKICAgICAgICAgRGF0YVRyYW5zZmVyQWNjZXNzUG9saWN5IG1fcG9saWN5OwotICAgICAg
ICBPd25QdHI8UGFzdGVib2FyZD4gbV9wYXN0ZWJvYXJkOworICAgICAgICBzdGQ6OnVuaXF1ZV9w
dHI8UGFzdGVib2FyZD4gbV9wYXN0ZWJvYXJkOwogCiAgICAgICAgIG11dGFibGUgUmVmUHRyPEZp
bGVMaXN0PiBtX2ZpbGVMaXN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKaW5kZXggZWQ2
M2EyODczZjBmOGY3YjEzZmI1ODhmMzMzMWMwMDc3ZTU4NTRjYy4uMTViZTg3MGJkNmFlM2JiNmVl
ZmI4MjNjMmMzMDU1NGIwNDQ2OWQ4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9FZGl0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcApAQCAt
ODU3LDcgKzg1Nyw3IEBAIGJvb2wgRWRpdG9yOjpkaXNwYXRjaENQUEV2ZW50KGNvbnN0IEF0b21p
Y1N0cmluZyYgZXZlbnRUeXBlLCBEYXRhVHJhbnNmZXJBY2Nlc3NQCiAgICAgdGFyZ2V0LT5kaXNw
YXRjaEV2ZW50KGV2ZW50LCBJR05PUkVfRVhDRVBUSU9OKTsKICAgICBib29sIG5vRGVmYXVsdFBy
b2Nlc3NpbmcgPSBldmVudC0+ZGVmYXVsdFByZXZlbnRlZCgpOwogICAgIGlmIChub0RlZmF1bHRQ
cm9jZXNzaW5nICYmIHBvbGljeSA9PSBEYXRhVHJhbnNmZXJBY2Nlc3NQb2xpY3k6OldyaXRhYmxl
KSB7Ci0gICAgICAgIE93blB0cjxQYXN0ZWJvYXJkPiBwYXN0ZWJvYXJkID0gUGFzdGVib2FyZDo6
Y3JlYXRlRm9yQ29weUFuZFBhc3RlKCk7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJv
YXJkPiBwYXN0ZWJvYXJkID0gUGFzdGVib2FyZDo6Y3JlYXRlRm9yQ29weUFuZFBhc3RlKCk7CiAg
ICAgICAgIHBhc3RlYm9hcmQtPmNsZWFyKCk7CiAgICAgICAgIHBhc3RlYm9hcmQtPndyaXRlUGFz
dGVib2FyZChkYXRhVHJhbnNmZXItPnBhc3RlYm9hcmQoKSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tCmluZGV4IDhiZTlmMjJhYzk5MWFhZDk3MzY2
ODVjNjU2MWRiMDBiZmU0ZWY2ZWMuLjlmY2E4NTBiOWRhY2ExN2UyOGU5ZjUwMDg0NDA2YmI1NmM1
ZDQzMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxlck1h
Yy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW0KQEAg
LTY4MSw3ICs2ODEsNyBAQCBQYXNzUmVmUHRyPERhdGFUcmFuc2Zlcj4gRXZlbnRIYW5kbGVyOjpj
cmVhdGVEcmFnZ2luZ0RhdGFUcmFuc2ZlcigpIGNvbnN0CiB7CiAgICAgLy8gTXVzdCBiZSBkb25l
IGJlZm9yZSBvbmRyYWdzdGFydCBhZGRzIHR5cGVzIGFuZCBkYXRhIHRvIHRoZSBwYm9hcmQsCiAg
ICAgLy8gYWxzbyBkb25lIGZvciBzZWN1cml0eSwgYXMgaXQgZXJhc2VzIGRhdGEgZnJvbSB0aGUg
bGFzdCBkcmFnLgotICAgIE93blB0cjxQYXN0ZWJvYXJkPiBwYXN0ZWJvYXJkID0gUGFzdGVib2Fy
ZDo6Y3JlYXRlKE5TRHJhZ1Bib2FyZCk7CisgICAgc3RkOjp1bmlxdWVfcHRyPFBhc3RlYm9hcmQ+
IHBhc3RlYm9hcmQgPSBQYXN0ZWJvYXJkOjpjcmVhdGUoTlNEcmFnUGJvYXJkKTsKICAgICBwYXN0
ZWJvYXJkLT5jbGVhcigpOwogICAgIHJldHVybiBEYXRhVHJhbnNmZXI6OmNyZWF0ZUZvckRyYWdB
bmREcm9wKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJv
YXJkLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkLmgKaW5kZXggOTQyZjll
NjdkMGRlYzhhNGZmMjI1NTE3ZDk0MDU3ZWU1OTkyMjkyMC4uZTZlNDQwMDdlNzQwN2I1MDU2YTcw
OTczOWFlZTk3ZmFjNDU1MWYzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UGFzdGVib2FyZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmQuaApA
QCAtMTM5LDEwICsxMzksMTEgQEAgc3RydWN0IFBhc3RlYm9hcmRQbGFpblRleHQgewogY2xhc3Mg
UGFzdGVib2FyZCB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUGFzdGVib2FyZCk7IFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgorICAgIFBhc3RlYm9hcmQoKTsKICAgICB+UGFz
dGVib2FyZCgpOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFBhc3NPd25QdHI8UGFzdGVi
b2FyZD4gY3JlYXRlRm9yQ29weUFuZFBhc3RlKCk7Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8UGFz
dGVib2FyZD4gY3JlYXRlUHJpdmF0ZSgpOyAvLyBUZW1wb3JhcnkgcGFzdGVib2FyZC4gQ2FuIHB1
dCBkYXRhIG9uIHRoaXMgYW5kIHRoZW4gd3JpdGUgdG8gYW5vdGhlciBwYXN0ZWJvYXJkIHdpdGgg
d3JpdGVQYXN0ZWJvYXJkLgorICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBzdGQ6OnVuaXF1ZV9w
dHI8UGFzdGVib2FyZD4gY3JlYXRlRm9yQ29weUFuZFBhc3RlKCk7CisgICAgc3RhdGljIHN0ZDo6
dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBjcmVhdGVQcml2YXRlKCk7IC8vIFRlbXBvcmFyeSBwYXN0
ZWJvYXJkLiBDYW4gcHV0IGRhdGEgb24gdGhpcyBhbmQgdGhlbiB3cml0ZSB0byBhbm90aGVyIHBh
c3RlYm9hcmQgd2l0aCB3cml0ZVBhc3RlYm9hcmQuCiAKICAgICBib29sIGhhc0RhdGEoKTsKICAg
ICBWZWN0b3I8U3RyaW5nPiB0eXBlcygpOwpAQCAtMTY4LDggKzE2OSw4IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHdyaXRlUGFzdGVib2FyZChjb25zdCBQYXN0ZWJvYXJkJiBzb3VyY2VQYXN0ZWJvYXJk
KTsKIAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi0gICAgc3RhdGljIFBhc3NPd25QdHI8UGFz
dGVib2FyZD4gY3JlYXRlRm9yRHJhZ0FuZERyb3AoKTsKLSAgICBzdGF0aWMgUGFzc093blB0cjxQ
YXN0ZWJvYXJkPiBjcmVhdGVGb3JEcmFnQW5kRHJvcChjb25zdCBEcmFnRGF0YSYpOworICAgIHN0
YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4gY3JlYXRlRm9yRHJhZ0FuZERyb3AoKTsK
KyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFBhc3RlYm9hcmQ+IGNyZWF0ZUZvckRyYWdBbmRE
cm9wKGNvbnN0IERyYWdEYXRhJik7CiAKICAgICB2b2lkIHNldERyYWdJbWFnZShEcmFnSW1hZ2VS
ZWYsIGNvbnN0IEludFBvaW50JiBob3RTcG90KTsKICNlbmRpZgpAQCAtMTgxLDEwICsxODIsMTAg
QEAgcHVibGljOgogI2VuZGlmCiAKICNpZiBQTEFURk9STShHVEspCi0gICAgc3RhdGljIFBhc3NP
d25QdHI8UGFzdGVib2FyZD4gY3JlYXRlKFBhc3NSZWZQdHI8RGF0YU9iamVjdEd0az4pOwotICAg
IHN0YXRpYyBQYXNzT3duUHRyPFBhc3RlYm9hcmQ+IGNyZWF0ZShHdGtDbGlwYm9hcmQqKTsKKyAg
ICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFBhc3RlYm9hcmQ+IGNyZWF0ZShQYXNzUmVmUHRyPERh
dGFPYmplY3RHdGs+KTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFBhc3RlYm9hcmQ+IGNy
ZWF0ZShHdGtDbGlwYm9hcmQqKTsKICAgICBQYXNzUmVmUHRyPERhdGFPYmplY3RHdGs+IGRhdGFP
YmplY3QoKSBjb25zdDsKLSAgICBzdGF0aWMgUGFzc093blB0cjxQYXN0ZWJvYXJkPiBjcmVhdGVG
b3JHbG9iYWxTZWxlY3Rpb24oKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFBhc3RlYm9h
cmQ+IGNyZWF0ZUZvckdsb2JhbFNlbGVjdGlvbigpOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShJ
T1MpCkBAIC0xOTQsNyArMTk1LDcgQEAgcHVibGljOgogCiAjaWYgUExBVEZPUk0oTUFDKQogICAg
IGV4cGxpY2l0IFBhc3RlYm9hcmQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSk7Ci0gICAg
c3RhdGljIFBhc3NPd25QdHI8UGFzdGVib2FyZD4gY3JlYXRlKGNvbnN0IFN0cmluZyYgcGFzdGVi
b2FyZE5hbWUpOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4gY3JlYXRl
KGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpOwogCiAgICAgY29uc3QgU3RyaW5nJiBuYW1l
KCkgY29uc3QgeyByZXR1cm4gbV9wYXN0ZWJvYXJkTmFtZTsgfQogI2VuZGlmCkBAIC0yMDksOCAr
MjEwLDYgQEAgcHVibGljOgogI2VuZGlmCiAKIHByaXZhdGU6Ci0gICAgUGFzdGVib2FyZCgpOwot
CiAjaWYgUExBVEZPUk0oR1RLKQogICAgIFBhc3RlYm9hcmQoUGFzc1JlZlB0cjxEYXRhT2JqZWN0
R3RrPik7CiAgICAgUGFzdGVib2FyZChHdGtDbGlwYm9hcmQqKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9QYXN0ZWJvYXJkRWZsLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2VmbC9QYXN0ZWJvYXJkRWZsLmNwcAppbmRleCA4YTA4MTBmZTExNTQzMmNhNTBi
NjNjZjA2Y2M1N2EwNmRhYjM5MzNiLi41NWUxZGE3NDhjNzM3YmRiZjFiNzM2ODFhNTE2NWE5OWYy
N2QyZThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUGFzdGVib2Fy
ZEVmbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1Bhc3RlYm9hcmRFZmwu
Y3BwCkBAIC0yNCw3ICsyNCw2IEBACiAjaW5jbHVkZSAiUGFzdGVib2FyZC5oIgogCiAjaW5jbHVk
ZSAiTm90SW1wbGVtZW50ZWQuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQ4LDIzICs0NywyMyBAQCBib29sIFBhc3RlYm9hcmQ6OmNh
blNtYXJ0UmVwbGFjZSgpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1QYXNzT3duUHRyPFBhc3Rl
Ym9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpCitzdGQ6OnVuaXF1ZV9w
dHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9yQ29weUFuZFBhc3RlKCkKIHsKLSAg
ICByZXR1cm4gYWRvcHRQdHIobmV3IFBhc3RlYm9hcmQpOworICAgIHJldHVybiBzdGQ6Om1ha2Vf
dW5pcXVlPFBhc3RlYm9hcmQ+KCk7CiB9CiAKLVBhc3NPd25QdHI8UGFzdGVib2FyZD4gUGFzdGVi
b2FyZDo6Y3JlYXRlUHJpdmF0ZSgpCitzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4gUGFzdGVi
b2FyZDo6Y3JlYXRlUHJpdmF0ZSgpCiB7CiAgICAgcmV0dXJuIGNyZWF0ZUZvckNvcHlBbmRQYXN0
ZSgpOwogfQogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKLVBhc3NPd25QdHI8UGFzdGVib2Fy
ZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AoKQorc3RkOjp1bmlxdWVfcHRyPFBh
c3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckRyYWdBbmREcm9wKCkKIHsKICAgICByZXR1
cm4gY3JlYXRlRm9yQ29weUFuZFBhc3RlKCk7CiB9CiAKLVBhc3NPd25QdHI8UGFzdGVib2FyZD4g
UGFzdGVib2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AoY29uc3QgRHJhZ0RhdGEmKQorc3RkOjp1
bmlxdWVfcHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckRyYWdBbmREcm9wKGNv
bnN0IERyYWdEYXRhJikKIHsKICAgICByZXR1cm4gY3JlYXRlRm9yQ29weUFuZFBhc3RlKCk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEd0ay5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEd0ay5jcHAKaW5kZXgg
MGFhZGQ1Y2U0OTY5YWZlMWQ2YTE0ZjlmM2MyMTkxMzhmNDgxMjE4Ny4uZGY2N2Q0YmQxZDM3MmJk
NTQ4NTRlZTkzYmRlMDQyNzdlNjQ3ZDBlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3RrL1Bhc3RlYm9hcmRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2d0ay9QYXN0ZWJvYXJkR3RrLmNwcApAQCAtMjYsNyArMjYsNiBAQAogI2luY2x1ZGUgIlVSTC5o
IgogI2luY2x1ZGUgIlBhc3RlYm9hcmRIZWxwZXIuaCIKICNpbmNsdWRlIDxndGsvZ3RrLmg+Ci0j
aW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0z
OSwzOCArMzgsMzggQEAgZW51bSBDbGlwYm9hcmREYXRhVHlwZSB7CiAgICAgQ2xpcGJvYXJkRGF0
YVR5cGVVbmtub3duCiB9OwogCi1QYXNzT3duUHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNy
ZWF0ZShHdGtDbGlwYm9hcmQqIGd0a0NsaXBib2FyZCkKK3N0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJv
YXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGUoR3RrQ2xpcGJvYXJkKiBndGtDbGlwYm9hcmQpCiB7Ci0g
ICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBQYXN0ZWJvYXJkKGd0a0NsaXBib2FyZCkpOworICAgIHJl
dHVybiBzdGQ6Om1ha2VfdW5pcXVlPFBhc3RlYm9hcmQ+KGd0a0NsaXBib2FyZCk7CiB9CiAKLVBh
c3NPd25QdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlKFBhc3NSZWZQdHI8RGF0YU9i
amVjdEd0az4gZGF0YU9iamVjdCkKK3N0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJv
YXJkOjpjcmVhdGUoUGFzc1JlZlB0cjxEYXRhT2JqZWN0R3RrPiBkYXRhT2JqZWN0KQogewotICAg
IHJldHVybiBhZG9wdFB0cihuZXcgUGFzdGVib2FyZChkYXRhT2JqZWN0KSk7CisgICAgcmV0dXJu
IHN0ZDo6bWFrZV91bmlxdWU8UGFzdGVib2FyZD4oZGF0YU9iamVjdCk7CiB9CiAKLVBhc3NPd25Q
dHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9yQ29weUFuZFBhc3RlKCkKK3N0ZDo6
dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUo
KQogewogICAgIHJldHVybiBjcmVhdGUoZ3RrX2NsaXBib2FyZF9nZXQoR0RLX1NFTEVDVElPTl9D
TElQQk9BUkQpKTsKIH0KIAotUGFzc093blB0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVh
dGVGb3JHbG9iYWxTZWxlY3Rpb24oKQorc3RkOjp1bmlxdWVfcHRyPFBhc3RlYm9hcmQ+IFBhc3Rl
Ym9hcmQ6OmNyZWF0ZUZvckdsb2JhbFNlbGVjdGlvbigpCiB7CiAgICAgcmV0dXJuIGNyZWF0ZShn
dGtfY2xpcGJvYXJkX2dldChHREtfU0VMRUNUSU9OX1BSSU1BUlkpKTsKIH0KIAotUGFzc093blB0
cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVQcml2YXRlKCkKK3N0ZDo6dW5pcXVlX3B0
cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVQcml2YXRlKCkKIHsKICAgICByZXR1cm4g
Y3JlYXRlKERhdGFPYmplY3RHdGs6OmNyZWF0ZSgpKTsKIH0KIAogI2lmIEVOQUJMRShEUkFHX1NV
UFBPUlQpCi1QYXNzT3duUHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckRyYWdB
bmREcm9wKCkKK3N0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVG
b3JEcmFnQW5kRHJvcCgpCiB7CiAgICAgcmV0dXJuIGNyZWF0ZShEYXRhT2JqZWN0R3RrOjpjcmVh
dGUoKSk7CiB9CiAKLVBhc3NPd25QdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9y
RHJhZ0FuZERyb3AoY29uc3QgRHJhZ0RhdGEmIGRyYWdEYXRhKQorc3RkOjp1bmlxdWVfcHRyPFBh
c3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckRyYWdBbmREcm9wKGNvbnN0IERyYWdEYXRh
JiBkcmFnRGF0YSkKIHsKICAgICByZXR1cm4gY3JlYXRlKGRyYWdEYXRhLnBsYXRmb3JtRGF0YSgp
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QYXN0ZWJvYXJk
SU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1Bhc3RlYm9hcmRJT1MubW0KaW5k
ZXggN2QxZTk2ZGRlOTUwYzI1YzZhMTc0MjAxNmU4Y2Y2MTc4ZTVlNTk0OS4uNjY0OTY0NzBhZGI3
ZWMxZTg2MWM4N2ViMjkzOWU4OWExZGQ5MjE0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL1Bhc3RlYm9hcmRJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL1Bhc3RlYm9hcmRJT1MubW0KQEAgLTEyMSwxNCArMTIxLDE0IEBAIFBhc3RlYm9hcmQ6
OlBhc3RlYm9hcmQoKQogewogfQogCi1QYXNzT3duUHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6
OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpCitzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4gUGFz
dGVib2FyZDo6Y3JlYXRlRm9yQ29weUFuZFBhc3RlKCkKIHsKLSAgICByZXR1cm4gYWRvcHRQdHIo
bmV3IFBhc3RlYm9hcmQpOworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFBhc3RlYm9hcmQ+
KCk7CiB9CiAKLVBhc3NPd25QdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlUHJpdmF0
ZSgpCitzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlUHJpdmF0
ZSgpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBQYXN0ZWJvYXJkKTsKKyAgICByZXR1cm4g
c3RkOjptYWtlX3VuaXF1ZTxQYXN0ZWJvYXJkPigpOwogfQogCiB2b2lkIFBhc3RlYm9hcmQ6Ondy
aXRlKGNvbnN0IFBhc3RlYm9hcmRXZWJDb250ZW50JiBjb250ZW50KQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bhc3RlYm9hcmRNYWMubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbQppbmRleCA1MDFhMzhjYTU3MjllY2I3YTk4
MTY0NDk0N2Q3MWQzMjdmMWYyZjRmLi44MjZiYTI0OGY3MTJhYzZhNjk1NWJjZjBlZDZkYTNiOTBm
YzNlNzliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2Fy
ZE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5t
bQpAQCAtMTIzLDI4ICsxMjMsMjggQEAgUGFzdGVib2FyZDo6UGFzdGVib2FyZChjb25zdCBTdHJp
bmcmIHBhc3RlYm9hcmROYW1lKQogICAgIEFTU0VSVChwYXN0ZWJvYXJkTmFtZSk7CiB9CiAKLVBh
c3NPd25QdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgcGFz
dGVib2FyZE5hbWUpCitzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3Jl
YXRlKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UHRy
KG5ldyBQYXN0ZWJvYXJkKHBhc3RlYm9hcmROYW1lKSk7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91
bmlxdWU8UGFzdGVib2FyZD4ocGFzdGVib2FyZE5hbWUpOwogfQogCi1QYXNzT3duUHRyPFBhc3Rl
Ym9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpCitzdGQ6OnVuaXF1ZV9w
dHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9yQ29weUFuZFBhc3RlKCkKIHsKICAg
ICByZXR1cm4gY3JlYXRlKE5TR2VuZXJhbFBib2FyZCk7CiB9CiAKLVBhc3NPd25QdHI8UGFzdGVi
b2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlUHJpdmF0ZSgpCitzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVi
b2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlUHJpdmF0ZSgpCiB7CiAgICAgcmV0dXJuIGNyZWF0ZShw
bGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPnVuaXF1ZU5hbWUoKSk7
CiB9CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotUGFzc093blB0cjxQYXN0ZWJvYXJkPiBQ
YXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcCgpCitzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVi
b2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AoKQogewogICAgIHJldHVybiBj
cmVhdGUoTlNEcmFnUGJvYXJkKTsKIH0KIAotUGFzc093blB0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJv
YXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcChjb25zdCBEcmFnRGF0YSYgZHJhZ0RhdGEpCitzdGQ6
OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERyb3Ao
Y29uc3QgRHJhZ0RhdGEmIGRyYWdEYXRhKQogewogICAgIHJldHVybiBjcmVhdGUoZHJhZ0RhdGEu
cGFzdGVib2FyZE5hbWUoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS93aW4vUGFzdGVib2FyZFdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGFz
dGVib2FyZFdpbi5jcHAKaW5kZXggN2FlZTE0MTEzYzRjN2Y2OTAyNTA0ZDgxNWQxMjBkZjU2YjRm
NGEyZS4uMGRjYTBhZWRkMDdmMDZmOWY5MjkwYWE1Njk0ZmVmNGEzNmM0ZjkyYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1Bhc3RlYm9hcmRXaW4uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNwcApAQCAtOTAsMzcgKzkw
LDM3IEBAIHN0YXRpYyBMUkVTVUxUIENBTExCQUNLIFBhc3RlYm9hcmRPd25lclduZFByb2MoSFdO
RCBoV25kLCBVSU5UIG1lc3NhZ2UsIFdQQVJBTSB3CiAgICAgcmV0dXJuIGxyZXN1bHQ7CiB9CiAK
LVBhc3NPd25QdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9yQ29weUFuZFBhc3Rl
KCkKK3N0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5
QW5kUGFzdGUoKQogewotICAgIE93blB0cjxQYXN0ZWJvYXJkPiBwYXN0ZWJvYXJkID0gYWRvcHRQ
dHIobmV3IFBhc3RlYm9hcmQpOworICAgIHN0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBwYXN0
ZWJvYXJkID0gc3RkOjptYWtlX3VuaXF1ZTxQYXN0ZWJvYXJkPigpOwogICAgIENPTVB0cjxJRGF0
YU9iamVjdD4gY2xpcGJvYXJkRGF0YTsKICAgICBpZiAoIVNVQ0NFRURFRChPbGVHZXRDbGlwYm9h
cmQoJmNsaXBib2FyZERhdGEpKSkKICAgICAgICAgY2xpcGJvYXJkRGF0YSA9IDA7CiAgICAgcGFz
dGVib2FyZC0+c2V0RXh0ZXJuYWxEYXRhT2JqZWN0KGNsaXBib2FyZERhdGEuZ2V0KCkpOwotICAg
IHJldHVybiBwYXN0ZWJvYXJkLnJlbGVhc2UoKTsKKyAgICByZXR1cm4gcGFzdGVib2FyZDsKIH0K
IAotUGFzc093blB0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVQcml2YXRlKCkKK3N0
ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVQcml2YXRlKCkKIHsK
ICAgICAvLyBXaW5kb3dzIGhhcyBubyAiUHJpdmF0ZSBwYXN0ZWJvYXJkIiBjb25jZXB0LgogICAg
IHJldHVybiBjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKTsKIH0KIAogI2lmIEVOQUJMRShEUkFHX1NV
UFBPUlQpCi1QYXNzT3duUHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckRyYWdB
bmREcm9wKCkKK3N0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVG
b3JEcmFnQW5kRHJvcCgpCiB7CiAgICAgQ09NUHRyPFdDRGF0YU9iamVjdD4gZGF0YU9iamVjdDsK
ICAgICBXQ0RhdGFPYmplY3Q6OmNyZWF0ZUluc3RhbmNlKCZkYXRhT2JqZWN0KTsKLSAgICByZXR1
cm4gYWRvcHRQdHIobmV3IFBhc3RlYm9hcmQoZGF0YU9iamVjdC5nZXQoKSkpOworICAgIHJldHVy
biBzdGQ6Om1ha2VfdW5pcXVlPFBhc3RlYm9hcmQ+KGRhdGFPYmplY3QuZ2V0KCkpOwogfQogCiAv
LyBzdGF0aWMKLVBhc3NPd25QdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9yRHJh
Z0FuZERyb3AoY29uc3QgRHJhZ0RhdGEmIGRyYWdEYXRhKQorc3RkOjp1bmlxdWVfcHRyPFBhc3Rl
Ym9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckRyYWdBbmREcm9wKGNvbnN0IERyYWdEYXRhJiBk
cmFnRGF0YSkKIHsKICAgICBpZiAoZHJhZ0RhdGEucGxhdGZvcm1EYXRhKCkpCi0gICAgICAgIHJl
dHVybiBhZG9wdFB0cihuZXcgUGFzdGVib2FyZChkcmFnRGF0YS5wbGF0Zm9ybURhdGEoKSkpOwor
ICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxQYXN0ZWJvYXJkPihkcmFnRGF0YS5wbGF0
Zm9ybURhdGEoKSk7CiAgICAgLy8gRklYTUU6IFNob3VsZCBhZGQgYSBjb25zdCBvdmVybG9hZCBv
ZiBkcmFnRGF0YU1hcCBzbyB3ZSBkb24ndCBuZWVkIGEgY29uc3RfY2FzdCBoZXJlLgotICAgIHJl
dHVybiBhZG9wdFB0cihuZXcgUGFzdGVib2FyZChjb25zdF9jYXN0PERyYWdEYXRhJj4oZHJhZ0Rh
dGEpLmRyYWdEYXRhTWFwKCkpKTsKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxQYXN0ZWJv
YXJkPihjb25zdF9jYXN0PERyYWdEYXRhJj4oZHJhZ0RhdGEpLmRyYWdEYXRhTWFwKCkpOwogfQog
I2VuZGlmCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>242153</attachid>
            <date>2014-11-24 02:36:10 -0800</date>
            <delta_ts>2014-11-24 06:42:04 -0800</delta_ts>
            <desc>&lt;WIP&gt;</desc>
            <filename>bug-139019-20141124193632.patch</filename>
            <type>text/plain</type>
            <size>16110</size>
            <attacher name="Joonghun Park">jh718.park</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc2NTEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDJhNTAwZGU4ZmRmNTdk
NDM5ZGQ5N2QzMzU5MmU5ZWVhN2Y2MDNiYi4uZTc0Y2E5MDdiNjk5ZjVmNjZiOTk4YzY3YjllZjI0
ZWRhMDk0MTAzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDE0LTExLTI0ICBKb29u
Z2h1biBQYXJrICA8amg3MTgucGFya0BzYW1zdW5nLmNvbT4KKworICAgICAgICBVc2Ugc3RkOjp1
bmlxdWVfcHRyIGluc3RlYWQgb2YgUGFzc093blB0cnxPd25QdHIgZm9yIFBhc3RlYm9hcmQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzOTAxOQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0
cywgbm8gYmVoYXZpb3IgY2hhbmdlcy4KKworICAgICAgICAqIGRvbS9EYXRhVHJhbnNmZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRyYW5zZmVyOjpEYXRhVHJhbnNmZXIpOgorICAgICAg
ICAqIGRvbS9EYXRhVHJhbnNmZXIuaDoKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmRpc3BhdGNoQ1BQRXZlbnQpOgorICAgICAgICAqIHBh
Z2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxl
cjo6Y3JlYXRlRHJhZ2dpbmdEYXRhVHJhbnNmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL1Bhc3Rl
Ym9hcmQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvUGFzdGVib2FyZEVmbC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6Y3JlYXRlUHJpdmF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcCk6CisgICAgICAgICogcGxhdGZvcm0v
Z3RrL1Bhc3RlYm9hcmRHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpjcmVhdGVGb3JHbG9iYWxTZWxlY3Rp
b24pOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6Y3JlYXRlUHJpdmF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcCk6CisgICAgICAg
ICogcGxhdGZvcm0vaW9zL1Bhc3RlYm9hcmRJT1MubW06CisgICAgICAgIChXZWJDb3JlOjpQYXN0
ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUpOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVi
b2FyZDo6Y3JlYXRlUHJpdmF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Bhc3RlYm9hcmRN
YWMubW06CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpjcmVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6UGFzdGVib2FyZDo6Y3JlYXRlRm9yQ29weUFuZFBhc3RlKToKKyAgICAgICAgKFdl
YkNvcmU6OlBhc3RlYm9hcmQ6OmNyZWF0ZVByaXZhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UGFz
dGVib2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERyb3ApOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9Q
YXN0ZWJvYXJkV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OmNyZWF0ZUZv
ckNvcHlBbmRQYXN0ZSk6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpjcmVhdGVQcml2
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OmNyZWF0ZUZvckRyYWdBbmREcm9w
KToKKwogMjAxNC0xMS0yMyAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAg
ICAgICAgVXNlIHNlZ21lbnQgdmVjdG9yIGZvciBGbG93Q29udGVudHMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rh
dGFUcmFuc2Zlci5jcHAKaW5kZXggZmUyMWFmZmZmMzU5OTNhOWZlNDkxODViMzI1ODAzODIyNzU5
MzhjMi4uMzg0Yzg1ZjI2OGYyYjBhNWEyYTE1ZmMxMzQyZDkwNzE0ODU4MjZjYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RhdGFUcmFuc2Zlci5jcHAKQEAgLTU1LDkgKzU1LDkgQEAgcHJpdmF0ZToKIAogI2Vu
ZGlmCiAKLURhdGFUcmFuc2Zlcjo6RGF0YVRyYW5zZmVyKERhdGFUcmFuc2ZlckFjY2Vzc1BvbGlj
eSBwb2xpY3ksIFBhc3NPd25QdHI8UGFzdGVib2FyZD4gcGFzdGVib2FyZCwgVHlwZSB0eXBlLCBi
b29sIGZvckZpbGVEcmFnKQorRGF0YVRyYW5zZmVyOjpEYXRhVHJhbnNmZXIoRGF0YVRyYW5zZmVy
QWNjZXNzUG9saWN5IHBvbGljeSwgc3RkOjp1bmlxdWVfcHRyPFBhc3RlYm9hcmQ+IHBhc3RlYm9h
cmQsIFR5cGUgdHlwZSwgYm9vbCBmb3JGaWxlRHJhZykKICAgICA6IG1fcG9saWN5KHBvbGljeSkK
LSAgICAsIG1fcGFzdGVib2FyZChwYXN0ZWJvYXJkKQorICAgICwgbV9wYXN0ZWJvYXJkKFdURjo6
bW92ZShwYXN0ZWJvYXJkKSkKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogICAgICwgbV9mb3JE
cmFnKHR5cGUgIT0gQ29weUFuZFBhc3RlKQogICAgICwgbV9mb3JGaWxlRHJhZyhmb3JGaWxlRHJh
ZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXIuaAppbmRleCA5ZDk2N2E2NTM1OTBhN2M1ZjcwOTgz
MDJkZmNmMTRmZGU4OGE0MTBlLi5jYTgzYjlmOWZmNTQzNDVjZDdiZTcyMzc0MzE5YjZkMDZlNGY5
MzZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlci5oCkBAIC05OSwxNCArOTksMTQgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiAgICAgcHJpdmF0ZToKICAgICAgICAgZW51bSBUeXBlIHsgQ29w
eUFuZFBhc3RlLCBEcmFnQW5kRHJvcCB9OwotICAgICAgICBEYXRhVHJhbnNmZXIoRGF0YVRyYW5z
ZmVyQWNjZXNzUG9saWN5LCBQYXNzT3duUHRyPFBhc3RlYm9hcmQ+LCBUeXBlID0gQ29weUFuZFBh
c3RlLCBib29sIGZvckZpbGVEcmFnID0gZmFsc2UpOworICAgICAgICBEYXRhVHJhbnNmZXIoRGF0
YVRyYW5zZmVyQWNjZXNzUG9saWN5LCBzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4sIFR5cGUg
PSBDb3B5QW5kUGFzdGUsIGJvb2wgZm9yRmlsZURyYWcgPSBmYWxzZSk7CiAKICNpZiBFTkFCTEUo
RFJBR19TVVBQT1JUKQogICAgICAgICBib29sIGNhblNldERyYWdJbWFnZSgpIGNvbnN0OwogI2Vu
ZGlmCiAKICAgICAgICAgRGF0YVRyYW5zZmVyQWNjZXNzUG9saWN5IG1fcG9saWN5OwotICAgICAg
ICBPd25QdHI8UGFzdGVib2FyZD4gbV9wYXN0ZWJvYXJkOworICAgICAgICBzdGQ6OnVuaXF1ZV9w
dHI8UGFzdGVib2FyZD4gbV9wYXN0ZWJvYXJkOwogCiAgICAgICAgIG11dGFibGUgUmVmUHRyPEZp
bGVMaXN0PiBtX2ZpbGVMaXN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKaW5kZXggZWQ2
M2EyODczZjBmOGY3YjEzZmI1ODhmMzMzMWMwMDc3ZTU4NTRjYy4uMTViZTg3MGJkNmFlM2JiNmVl
ZmI4MjNjMmMzMDU1NGIwNDQ2OWQ4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9FZGl0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcApAQCAt
ODU3LDcgKzg1Nyw3IEBAIGJvb2wgRWRpdG9yOjpkaXNwYXRjaENQUEV2ZW50KGNvbnN0IEF0b21p
Y1N0cmluZyYgZXZlbnRUeXBlLCBEYXRhVHJhbnNmZXJBY2Nlc3NQCiAgICAgdGFyZ2V0LT5kaXNw
YXRjaEV2ZW50KGV2ZW50LCBJR05PUkVfRVhDRVBUSU9OKTsKICAgICBib29sIG5vRGVmYXVsdFBy
b2Nlc3NpbmcgPSBldmVudC0+ZGVmYXVsdFByZXZlbnRlZCgpOwogICAgIGlmIChub0RlZmF1bHRQ
cm9jZXNzaW5nICYmIHBvbGljeSA9PSBEYXRhVHJhbnNmZXJBY2Nlc3NQb2xpY3k6OldyaXRhYmxl
KSB7Ci0gICAgICAgIE93blB0cjxQYXN0ZWJvYXJkPiBwYXN0ZWJvYXJkID0gUGFzdGVib2FyZDo6
Y3JlYXRlRm9yQ29weUFuZFBhc3RlKCk7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJv
YXJkPiBwYXN0ZWJvYXJkID0gUGFzdGVib2FyZDo6Y3JlYXRlRm9yQ29weUFuZFBhc3RlKCk7CiAg
ICAgICAgIHBhc3RlYm9hcmQtPmNsZWFyKCk7CiAgICAgICAgIHBhc3RlYm9hcmQtPndyaXRlUGFz
dGVib2FyZChkYXRhVHJhbnNmZXItPnBhc3RlYm9hcmQoKSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tCmluZGV4IDhiZTlmMjJhYzk5MWFhZDk3MzY2
ODVjNjU2MWRiMDBiZmU0ZWY2ZWMuLjlmY2E4NTBiOWRhY2ExN2UyOGU5ZjUwMDg0NDA2YmI1NmM1
ZDQzMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxlck1h
Yy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW0KQEAg
LTY4MSw3ICs2ODEsNyBAQCBQYXNzUmVmUHRyPERhdGFUcmFuc2Zlcj4gRXZlbnRIYW5kbGVyOjpj
cmVhdGVEcmFnZ2luZ0RhdGFUcmFuc2ZlcigpIGNvbnN0CiB7CiAgICAgLy8gTXVzdCBiZSBkb25l
IGJlZm9yZSBvbmRyYWdzdGFydCBhZGRzIHR5cGVzIGFuZCBkYXRhIHRvIHRoZSBwYm9hcmQsCiAg
ICAgLy8gYWxzbyBkb25lIGZvciBzZWN1cml0eSwgYXMgaXQgZXJhc2VzIGRhdGEgZnJvbSB0aGUg
bGFzdCBkcmFnLgotICAgIE93blB0cjxQYXN0ZWJvYXJkPiBwYXN0ZWJvYXJkID0gUGFzdGVib2Fy
ZDo6Y3JlYXRlKE5TRHJhZ1Bib2FyZCk7CisgICAgc3RkOjp1bmlxdWVfcHRyPFBhc3RlYm9hcmQ+
IHBhc3RlYm9hcmQgPSBQYXN0ZWJvYXJkOjpjcmVhdGUoTlNEcmFnUGJvYXJkKTsKICAgICBwYXN0
ZWJvYXJkLT5jbGVhcigpOwogICAgIHJldHVybiBEYXRhVHJhbnNmZXI6OmNyZWF0ZUZvckRyYWdB
bmREcm9wKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJv
YXJkLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkLmgKaW5kZXggOTQyZjll
NjdkMGRlYzhhNGZmMjI1NTE3ZDk0MDU3ZWU1OTkyMjkyMC4uOTI2NzUyYzNkZTQ1NjIyYTE1YmJj
NGFhYWY3ZjQxZGJkZTJlYzY0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UGFzdGVib2FyZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmQuaApA
QCAtMTM5LDEwICsxMzksMjIgQEAgc3RydWN0IFBhc3RlYm9hcmRQbGFpblRleHQgewogY2xhc3Mg
UGFzdGVib2FyZCB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUGFzdGVib2FyZCk7IFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgorICAgIFBhc3RlYm9hcmQoKTsKICAgICB+UGFz
dGVib2FyZCgpOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFBhc3NPd25QdHI8UGFzdGVi
b2FyZD4gY3JlYXRlRm9yQ29weUFuZFBhc3RlKCk7Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8UGFz
dGVib2FyZD4gY3JlYXRlUHJpdmF0ZSgpOyAvLyBUZW1wb3JhcnkgcGFzdGVib2FyZC4gQ2FuIHB1
dCBkYXRhIG9uIHRoaXMgYW5kIHRoZW4gd3JpdGUgdG8gYW5vdGhlciBwYXN0ZWJvYXJkIHdpdGgg
d3JpdGVQYXN0ZWJvYXJkLgorI2lmIFBMQVRGT1JNKEdUSykKKyAgICBQYXN0ZWJvYXJkKFBhc3NS
ZWZQdHI8RGF0YU9iamVjdEd0az4pOworICAgIFBhc3RlYm9hcmQoR3RrQ2xpcGJvYXJkKik7Cisj
ZW5kaWYKKworI2lmIFBMQVRGT1JNKFdJTikKKyAgICBleHBsaWNpdCBQYXN0ZWJvYXJkKElEYXRh
T2JqZWN0Kik7CisgICAgZXhwbGljaXQgUGFzdGVib2FyZChXQ0RhdGFPYmplY3QqKTsKKyAgICBl
eHBsaWNpdCBQYXN0ZWJvYXJkKGNvbnN0IERyYWdEYXRhTWFwJik7CisjZW5kaWYKKworICAgIFdF
QkNPUkVfRVhQT1JUIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4gY3JlYXRlRm9y
Q29weUFuZFBhc3RlKCk7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBj
cmVhdGVQcml2YXRlKCk7IC8vIFRlbXBvcmFyeSBwYXN0ZWJvYXJkLiBDYW4gcHV0IGRhdGEgb24g
dGhpcyBhbmQgdGhlbiB3cml0ZSB0byBhbm90aGVyIHBhc3RlYm9hcmQgd2l0aCB3cml0ZVBhc3Rl
Ym9hcmQuCiAKICAgICBib29sIGhhc0RhdGEoKTsKICAgICBWZWN0b3I8U3RyaW5nPiB0eXBlcygp
OwpAQCAtMTY4LDggKzE4MCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHdyaXRlUGFzdGVib2FyZChj
b25zdCBQYXN0ZWJvYXJkJiBzb3VyY2VQYXN0ZWJvYXJkKTsKIAogI2lmIEVOQUJMRShEUkFHX1NV
UFBPUlQpCi0gICAgc3RhdGljIFBhc3NPd25QdHI8UGFzdGVib2FyZD4gY3JlYXRlRm9yRHJhZ0Fu
ZERyb3AoKTsKLSAgICBzdGF0aWMgUGFzc093blB0cjxQYXN0ZWJvYXJkPiBjcmVhdGVGb3JEcmFn
QW5kRHJvcChjb25zdCBEcmFnRGF0YSYpOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8UGFz
dGVib2FyZD4gY3JlYXRlRm9yRHJhZ0FuZERyb3AoKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVf
cHRyPFBhc3RlYm9hcmQ+IGNyZWF0ZUZvckRyYWdBbmREcm9wKGNvbnN0IERyYWdEYXRhJik7CiAK
ICAgICB2b2lkIHNldERyYWdJbWFnZShEcmFnSW1hZ2VSZWYsIGNvbnN0IEludFBvaW50JiBob3RT
cG90KTsKICNlbmRpZgpAQCAtMTgxLDEwICsxOTMsMTAgQEAgcHVibGljOgogI2VuZGlmCiAKICNp
ZiBQTEFURk9STShHVEspCi0gICAgc3RhdGljIFBhc3NPd25QdHI8UGFzdGVib2FyZD4gY3JlYXRl
KFBhc3NSZWZQdHI8RGF0YU9iamVjdEd0az4pOwotICAgIHN0YXRpYyBQYXNzT3duUHRyPFBhc3Rl
Ym9hcmQ+IGNyZWF0ZShHdGtDbGlwYm9hcmQqKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRy
PFBhc3RlYm9hcmQ+IGNyZWF0ZShQYXNzUmVmUHRyPERhdGFPYmplY3RHdGs+KTsKKyAgICBzdGF0
aWMgc3RkOjp1bmlxdWVfcHRyPFBhc3RlYm9hcmQ+IGNyZWF0ZShHdGtDbGlwYm9hcmQqKTsKICAg
ICBQYXNzUmVmUHRyPERhdGFPYmplY3RHdGs+IGRhdGFPYmplY3QoKSBjb25zdDsKLSAgICBzdGF0
aWMgUGFzc093blB0cjxQYXN0ZWJvYXJkPiBjcmVhdGVGb3JHbG9iYWxTZWxlY3Rpb24oKTsKKyAg
ICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFBhc3RlYm9hcmQ+IGNyZWF0ZUZvckdsb2JhbFNlbGVj
dGlvbigpOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1MpCkBAIC0xOTQsNyArMjA2LDcgQEAg
cHVibGljOgogCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIGV4cGxpY2l0IFBhc3RlYm9hcmQoY29u
c3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSk7Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8UGFzdGVi
b2FyZD4gY3JlYXRlKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpOworICAgIHN0YXRpYyBz
dGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4gY3JlYXRlKGNvbnN0IFN0cmluZyYgcGFzdGVib2Fy
ZE5hbWUpOwogCiAgICAgY29uc3QgU3RyaW5nJiBuYW1lKCkgY29uc3QgeyByZXR1cm4gbV9wYXN0
ZWJvYXJkTmFtZTsgfQogI2VuZGlmCkBAIC0yMDksMTggKzIyMSw3IEBAIHB1YmxpYzoKICNlbmRp
ZgogCiBwcml2YXRlOgotICAgIFBhc3RlYm9hcmQoKTsKLQotI2lmIFBMQVRGT1JNKEdUSykKLSAg
ICBQYXN0ZWJvYXJkKFBhc3NSZWZQdHI8RGF0YU9iamVjdEd0az4pOwotICAgIFBhc3RlYm9hcmQo
R3RrQ2xpcGJvYXJkKik7Ci0jZW5kaWYKLQogI2lmIFBMQVRGT1JNKFdJTikKLSAgICBleHBsaWNp
dCBQYXN0ZWJvYXJkKElEYXRhT2JqZWN0Kik7Ci0gICAgZXhwbGljaXQgUGFzdGVib2FyZChXQ0Rh
dGFPYmplY3QqKTsKLSAgICBleHBsaWNpdCBQYXN0ZWJvYXJkKGNvbnN0IERyYWdEYXRhTWFwJik7
Ci0KICAgICB2b2lkIGZpbmlzaENyZWF0aW5nUGFzdGVib2FyZCgpOwogICAgIHZvaWQgd3JpdGVS
YW5nZVRvRGF0YU9iamVjdChSYW5nZSYsIEZyYW1lJik7IC8vIEZJWE1FOiBMYXllcmluZyB2aW9s
YXRpb24uCiAgICAgdm9pZCB3cml0ZVVSTFRvRGF0YU9iamVjdChjb25zdCBVUkwmLCBjb25zdCBT
dHJpbmcmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9QYXN0ZWJv
YXJkRWZsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9QYXN0ZWJvYXJkRWZsLmNw
cAppbmRleCA4YTA4MTBmZTExNTQzMmNhNTBiNjNjZjA2Y2M1N2EwNmRhYjM5MzNiLi41NWUxZGE3
NDhjNzM3YmRiZjFiNzM2ODFhNTE2NWE5OWYyN2QyZThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9lZmwvUGFzdGVib2FyZEVmbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZWZsL1Bhc3RlYm9hcmRFZmwuY3BwCkBAIC0yNCw3ICsyNCw2IEBACiAjaW5jbHVk
ZSAiUGFzdGVib2FyZC5oIgogCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKLSNpbmNsdWRl
IDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQ4LDIzICs0
NywyMyBAQCBib29sIFBhc3RlYm9hcmQ6OmNhblNtYXJ0UmVwbGFjZSgpCiAgICAgcmV0dXJuIGZh
bHNlOwogfQogCi1QYXNzT3duUHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNv
cHlBbmRQYXN0ZSgpCitzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3Jl
YXRlRm9yQ29weUFuZFBhc3RlKCkKIHsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IFBhc3RlYm9h
cmQpOworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFBhc3RlYm9hcmQ+KCk7CiB9CiAKLVBh
c3NPd25QdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlUHJpdmF0ZSgpCitzdGQ6OnVu
aXF1ZV9wdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlUHJpdmF0ZSgpCiB7CiAgICAg
cmV0dXJuIGNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpOwogfQogCiAjaWYgRU5BQkxFKERSQUdfU1VQ
UE9SVCkKLVBhc3NPd25QdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9yRHJhZ0Fu
ZERyb3AoKQorc3RkOjp1bmlxdWVfcHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZv
ckRyYWdBbmREcm9wKCkKIHsKICAgICByZXR1cm4gY3JlYXRlRm9yQ29weUFuZFBhc3RlKCk7CiB9
CiAKLVBhc3NPd25QdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERy
b3AoY29uc3QgRHJhZ0RhdGEmKQorc3RkOjp1bmlxdWVfcHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9h
cmQ6OmNyZWF0ZUZvckRyYWdBbmREcm9wKGNvbnN0IERyYWdEYXRhJikKIHsKICAgICByZXR1cm4g
Y3JlYXRlRm9yQ29weUFuZFBhc3RlKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ndGsvUGFzdGVib2FyZEd0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
dGsvUGFzdGVib2FyZEd0ay5jcHAKaW5kZXggMGFhZGQ1Y2U0OTY5YWZlMWQ2YTE0ZjlmM2MyMTkx
MzhmNDgxMjE4Ny4uZGY2N2Q0YmQxZDM3MmJkNTQ4NTRlZTkzYmRlMDQyNzdlNjQ3ZDBlZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRHdGsuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkR3RrLmNwcApAQCAtMjYs
NyArMjYsNiBAQAogI2luY2x1ZGUgIlVSTC5oIgogI2luY2x1ZGUgIlBhc3RlYm9hcmRIZWxwZXIu
aCIKICNpbmNsdWRlIDxndGsvZ3RrLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zOSwzOCArMzgsMzggQEAgZW51bSBDbGlwYm9hcmRE
YXRhVHlwZSB7CiAgICAgQ2xpcGJvYXJkRGF0YVR5cGVVbmtub3duCiB9OwogCi1QYXNzT3duUHRy
PFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZShHdGtDbGlwYm9hcmQqIGd0a0NsaXBib2Fy
ZCkKK3N0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGUoR3RrQ2xp
cGJvYXJkKiBndGtDbGlwYm9hcmQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBQYXN0ZWJv
YXJkKGd0a0NsaXBib2FyZCkpOworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFBhc3RlYm9h
cmQ+KGd0a0NsaXBib2FyZCk7CiB9CiAKLVBhc3NPd25QdHI8UGFzdGVib2FyZD4gUGFzdGVib2Fy
ZDo6Y3JlYXRlKFBhc3NSZWZQdHI8RGF0YU9iamVjdEd0az4gZGF0YU9iamVjdCkKK3N0ZDo6dW5p
cXVlX3B0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGUoUGFzc1JlZlB0cjxEYXRhT2Jq
ZWN0R3RrPiBkYXRhT2JqZWN0KQogewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgUGFzdGVib2Fy
ZChkYXRhT2JqZWN0KSk7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8UGFzdGVib2FyZD4o
ZGF0YU9iamVjdCk7CiB9CiAKLVBhc3NPd25QdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3Jl
YXRlRm9yQ29weUFuZFBhc3RlKCkKK3N0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJv
YXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKQogewogICAgIHJldHVybiBjcmVhdGUoZ3RrX2Ns
aXBib2FyZF9nZXQoR0RLX1NFTEVDVElPTl9DTElQQk9BUkQpKTsKIH0KIAotUGFzc093blB0cjxQ
YXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JHbG9iYWxTZWxlY3Rpb24oKQorc3RkOjp1
bmlxdWVfcHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckdsb2JhbFNlbGVjdGlv
bigpCiB7CiAgICAgcmV0dXJuIGNyZWF0ZShndGtfY2xpcGJvYXJkX2dldChHREtfU0VMRUNUSU9O
X1BSSU1BUlkpKTsKIH0KIAotUGFzc093blB0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVh
dGVQcml2YXRlKCkKK3N0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVh
dGVQcml2YXRlKCkKIHsKICAgICByZXR1cm4gY3JlYXRlKERhdGFPYmplY3RHdGs6OmNyZWF0ZSgp
KTsKIH0KIAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi1QYXNzT3duUHRyPFBhc3RlYm9hcmQ+
IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckRyYWdBbmREcm9wKCkKK3N0ZDo6dW5pcXVlX3B0cjxQYXN0
ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcCgpCiB7CiAgICAgcmV0dXJu
IGNyZWF0ZShEYXRhT2JqZWN0R3RrOjpjcmVhdGUoKSk7CiB9CiAKLVBhc3NPd25QdHI8UGFzdGVi
b2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AoY29uc3QgRHJhZ0RhdGEmIGRy
YWdEYXRhKQorc3RkOjp1bmlxdWVfcHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZv
ckRyYWdBbmREcm9wKGNvbnN0IERyYWdEYXRhJiBkcmFnRGF0YSkKIHsKICAgICByZXR1cm4gY3Jl
YXRlKGRyYWdEYXRhLnBsYXRmb3JtRGF0YSgpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2lvcy9QYXN0ZWJvYXJkSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL1Bhc3RlYm9hcmRJT1MubW0KaW5kZXggN2QxZTk2ZGRlOTUwYzI1YzZhMTc0MjAxNmU4
Y2Y2MTc4ZTVlNTk0OS4uNjY0OTY0NzBhZGI3ZWMxZTg2MWM4N2ViMjkzOWU4OWExZGQ5MjE0ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1Bhc3RlYm9hcmRJT1MubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1Bhc3RlYm9hcmRJT1MubW0KQEAgLTEy
MSwxNCArMTIxLDE0IEBAIFBhc3RlYm9hcmQ6OlBhc3RlYm9hcmQoKQogewogfQogCi1QYXNzT3du
UHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpCitzdGQ6
OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9yQ29weUFuZFBhc3Rl
KCkKIHsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IFBhc3RlYm9hcmQpOworICAgIHJldHVybiBz
dGQ6Om1ha2VfdW5pcXVlPFBhc3RlYm9hcmQ+KCk7CiB9CiAKLVBhc3NPd25QdHI8UGFzdGVib2Fy
ZD4gUGFzdGVib2FyZDo6Y3JlYXRlUHJpdmF0ZSgpCitzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2Fy
ZD4gUGFzdGVib2FyZDo6Y3JlYXRlUHJpdmF0ZSgpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5l
dyBQYXN0ZWJvYXJkKTsKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxQYXN0ZWJvYXJkPigp
OwogfQogCiB2b2lkIFBhc3RlYm9hcmQ6OndyaXRlKGNvbnN0IFBhc3RlYm9hcmRXZWJDb250ZW50
JiBjb250ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bhc3Rl
Ym9hcmRNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5t
bQppbmRleCA1MDFhMzhjYTU3MjllY2I3YTk4MTY0NDk0N2Q3MWQzMjdmMWYyZjRmLi44MjZiYTI0
OGY3MTJhYzZhNjk1NWJjZjBlZDZkYTNiOTBmYzNlNzliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbQpAQCAtMTIzLDI4ICsxMjMsMjggQEAgUGFzdGVi
b2FyZDo6UGFzdGVib2FyZChjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKQogICAgIEFTU0VS
VChwYXN0ZWJvYXJkTmFtZSk7CiB9CiAKLVBhc3NPd25QdHI8UGFzdGVib2FyZD4gUGFzdGVib2Fy
ZDo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpCitzdGQ6OnVuaXF1ZV9wdHI8
UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5h
bWUpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBQYXN0ZWJvYXJkKHBhc3RlYm9hcmROYW1l
KSk7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8UGFzdGVib2FyZD4ocGFzdGVib2FyZE5h
bWUpOwogfQogCi1QYXNzT3duUHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNv
cHlBbmRQYXN0ZSgpCitzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3Jl
YXRlRm9yQ29weUFuZFBhc3RlKCkKIHsKICAgICByZXR1cm4gY3JlYXRlKE5TR2VuZXJhbFBib2Fy
ZCk7CiB9CiAKLVBhc3NPd25QdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlUHJpdmF0
ZSgpCitzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlUHJpdmF0
ZSgpCiB7CiAgICAgcmV0dXJuIGNyZWF0ZShwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2Fy
ZFN0cmF0ZWd5KCktPnVuaXF1ZU5hbWUoKSk7CiB9CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JU
KQotUGFzc093blB0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJv
cCgpCitzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9yRHJh
Z0FuZERyb3AoKQogewogICAgIHJldHVybiBjcmVhdGUoTlNEcmFnUGJvYXJkKTsKIH0KIAotUGFz
c093blB0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcChjb25z
dCBEcmFnRGF0YSYgZHJhZ0RhdGEpCitzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4gUGFzdGVi
b2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AoY29uc3QgRHJhZ0RhdGEmIGRyYWdEYXRhKQogewog
ICAgIHJldHVybiBjcmVhdGUoZHJhZ0RhdGEucGFzdGVib2FyZE5hbWUoKSk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGFzdGVib2FyZFdpbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGFzdGVib2FyZFdpbi5jcHAKaW5kZXggN2FlZTE0MTEz
YzRjN2Y2OTAyNTA0ZDgxNWQxMjBkZjU2YjRmNGEyZS4uMGRjYTBhZWRkMDdmMDZmOWY5MjkwYWE1
Njk0ZmVmNGEzNmM0ZjkyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2lu
L1Bhc3RlYm9hcmRXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QYXN0
ZWJvYXJkV2luLmNwcApAQCAtOTAsMzcgKzkwLDM3IEBAIHN0YXRpYyBMUkVTVUxUIENBTExCQUNL
IFBhc3RlYm9hcmRPd25lclduZFByb2MoSFdORCBoV25kLCBVSU5UIG1lc3NhZ2UsIFdQQVJBTSB3
CiAgICAgcmV0dXJuIGxyZXN1bHQ7CiB9CiAKLVBhc3NPd25QdHI8UGFzdGVib2FyZD4gUGFzdGVi
b2FyZDo6Y3JlYXRlRm9yQ29weUFuZFBhc3RlKCkKK3N0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJk
PiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKQogewotICAgIE93blB0cjxQYXN0
ZWJvYXJkPiBwYXN0ZWJvYXJkID0gYWRvcHRQdHIobmV3IFBhc3RlYm9hcmQpOworICAgIHN0ZDo6
dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBwYXN0ZWJvYXJkID0gc3RkOjptYWtlX3VuaXF1ZTxQYXN0
ZWJvYXJkPigpOwogICAgIENPTVB0cjxJRGF0YU9iamVjdD4gY2xpcGJvYXJkRGF0YTsKICAgICBp
ZiAoIVNVQ0NFRURFRChPbGVHZXRDbGlwYm9hcmQoJmNsaXBib2FyZERhdGEpKSkKICAgICAgICAg
Y2xpcGJvYXJkRGF0YSA9IDA7CiAgICAgcGFzdGVib2FyZC0+c2V0RXh0ZXJuYWxEYXRhT2JqZWN0
KGNsaXBib2FyZERhdGEuZ2V0KCkpOwotICAgIHJldHVybiBwYXN0ZWJvYXJkLnJlbGVhc2UoKTsK
KyAgICByZXR1cm4gcGFzdGVib2FyZDsKIH0KIAotUGFzc093blB0cjxQYXN0ZWJvYXJkPiBQYXN0
ZWJvYXJkOjpjcmVhdGVQcml2YXRlKCkKK3N0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBQYXN0
ZWJvYXJkOjpjcmVhdGVQcml2YXRlKCkKIHsKICAgICAvLyBXaW5kb3dzIGhhcyBubyAiUHJpdmF0
ZSBwYXN0ZWJvYXJkIiBjb25jZXB0LgogICAgIHJldHVybiBjcmVhdGVGb3JDb3B5QW5kUGFzdGUo
KTsKIH0KIAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi1QYXNzT3duUHRyPFBhc3RlYm9hcmQ+
IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckRyYWdBbmREcm9wKCkKK3N0ZDo6dW5pcXVlX3B0cjxQYXN0
ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcCgpCiB7CiAgICAgQ09NUHRy
PFdDRGF0YU9iamVjdD4gZGF0YU9iamVjdDsKICAgICBXQ0RhdGFPYmplY3Q6OmNyZWF0ZUluc3Rh
bmNlKCZkYXRhT2JqZWN0KTsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IFBhc3RlYm9hcmQoZGF0
YU9iamVjdC5nZXQoKSkpOworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFBhc3RlYm9hcmQ+
KGRhdGFPYmplY3QuZ2V0KCkpOwogfQogCiAvLyBzdGF0aWMKLVBhc3NPd25QdHI8UGFzdGVib2Fy
ZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AoY29uc3QgRHJhZ0RhdGEmIGRyYWdE
YXRhKQorc3RkOjp1bmlxdWVfcHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckRy
YWdBbmREcm9wKGNvbnN0IERyYWdEYXRhJiBkcmFnRGF0YSkKIHsKICAgICBpZiAoZHJhZ0RhdGEu
cGxhdGZvcm1EYXRhKCkpCi0gICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgUGFzdGVib2FyZChk
cmFnRGF0YS5wbGF0Zm9ybURhdGEoKSkpOworICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1
ZTxQYXN0ZWJvYXJkPihkcmFnRGF0YS5wbGF0Zm9ybURhdGEoKSk7CiAgICAgLy8gRklYTUU6IFNo
b3VsZCBhZGQgYSBjb25zdCBvdmVybG9hZCBvZiBkcmFnRGF0YU1hcCBzbyB3ZSBkb24ndCBuZWVk
IGEgY29uc3RfY2FzdCBoZXJlLgotICAgIHJldHVybiBhZG9wdFB0cihuZXcgUGFzdGVib2FyZChj
b25zdF9jYXN0PERyYWdEYXRhJj4oZHJhZ0RhdGEpLmRyYWdEYXRhTWFwKCkpKTsKKyAgICByZXR1
cm4gc3RkOjptYWtlX3VuaXF1ZTxQYXN0ZWJvYXJkPihjb25zdF9jYXN0PERyYWdEYXRhJj4oZHJh
Z0RhdGEpLmRyYWdEYXRhTWFwKCkpOwogfQogI2VuZGlmCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>242157</attachid>
            <date>2014-11-24 06:42:12 -0800</date>
            <delta_ts>2014-11-24 07:05:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-139019-20141124234231.patch</filename>
            <type>text/plain</type>
            <size>16348</size>
            <attacher name="Joonghun Park">jh718.park</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc2NTE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTU3ZmFmMTE0MGYyYzAz
YmEwMjMzMjRiNTBhYzhhOWQwMmJiMDE5Mi4uZGY0NDNlZmQ2ZTEyZmZhYTExZDg1YWY1YWJhNzlk
YWQyNTllZjE3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDE0LTExLTI0ICBKb29u
Z2h1biBQYXJrICA8amg3MTgucGFya0BzYW1zdW5nLmNvbT4KKworICAgICAgICBVc2Ugc3RkOjp1
bmlxdWVfcHRyIGluc3RlYWQgb2YgUGFzc093blB0cnxPd25QdHIgZm9yIFBhc3RlYm9hcmQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzOTAxOQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0
cywgbm8gYmVoYXZpb3IgY2hhbmdlcy4KKworICAgICAgICAqIGRvbS9EYXRhVHJhbnNmZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRyYW5zZmVyOjpEYXRhVHJhbnNmZXIpOgorICAgICAg
ICAqIGRvbS9EYXRhVHJhbnNmZXIuaDoKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmRpc3BhdGNoQ1BQRXZlbnQpOgorICAgICAgICAqIHBh
Z2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxl
cjo6Y3JlYXRlRHJhZ2dpbmdEYXRhVHJhbnNmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL1Bhc3Rl
Ym9hcmQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvUGFzdGVib2FyZEVmbC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6Y3JlYXRlUHJpdmF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcCk6CisgICAgICAgICogcGxhdGZvcm0v
Z3RrL1Bhc3RlYm9hcmRHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6Y3Jl
YXRlRm9yQ29weUFuZFBhc3RlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OmNyZWF0
ZUZvckdsb2JhbFNlbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpjcmVh
dGVQcml2YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OmNyZWF0ZUZvckRyYWdB
bmREcm9wKToKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OmNyZWF0ZSk6IERlbGV0ZWQu
CisgICAgICAgICogcGxhdGZvcm0vaW9zL1Bhc3RlYm9hcmRJT1MubW06CisgICAgICAgIChXZWJD
b3JlOjpQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6UGFzdGVib2FyZDo6Y3JlYXRlUHJpdmF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Bh
c3RlYm9hcmRNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpjcmVhdGVGb3JD
b3B5QW5kUGFzdGUpOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6Y3JlYXRlUHJpdmF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcCk6
CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpjcmVhdGUpOiBEZWxldGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBh
c3RlYm9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSk6CisgICAgICAgIChXZWJDb3JlOjpQYXN0
ZWJvYXJkOjpjcmVhdGVQcml2YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OmNy
ZWF0ZUZvckRyYWdBbmREcm9wKToKKwogMjAxNC0xMS0yNCAgSm9hbm1hcmllIERpZ2dzICA8amRp
Z2dzQGlnYWxpYS5jb20+CiAKICAgICAgICAgQVg6IFtBVEtdIFVuc2tpcCB0aGUgc2tpcHBlZCBB
VEsgdGVzdHMgaW4gcm9sZXMtZXhwb3NlZC5odG1sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRGF0YVRyYW5zZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXIu
Y3BwCmluZGV4IGZlMjFhZmZmZjM1OTkzYTlmZTQ5MTg1YjMyNTgwMzgyMjc1OTM4YzIuLjM4NGM4
NWYyNjhmMmIwYTVhMmExNWZjMTM0MmQ5MDcxNDg1ODI2Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRh
VHJhbnNmZXIuY3BwCkBAIC01NSw5ICs1NSw5IEBAIHByaXZhdGU6CiAKICNlbmRpZgogCi1EYXRh
VHJhbnNmZXI6OkRhdGFUcmFuc2ZlcihEYXRhVHJhbnNmZXJBY2Nlc3NQb2xpY3kgcG9saWN5LCBQ
YXNzT3duUHRyPFBhc3RlYm9hcmQ+IHBhc3RlYm9hcmQsIFR5cGUgdHlwZSwgYm9vbCBmb3JGaWxl
RHJhZykKK0RhdGFUcmFuc2Zlcjo6RGF0YVRyYW5zZmVyKERhdGFUcmFuc2ZlckFjY2Vzc1BvbGlj
eSBwb2xpY3ksIHN0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBwYXN0ZWJvYXJkLCBUeXBlIHR5
cGUsIGJvb2wgZm9yRmlsZURyYWcpCiAgICAgOiBtX3BvbGljeShwb2xpY3kpCi0gICAgLCBtX3Bh
c3RlYm9hcmQocGFzdGVib2FyZCkKKyAgICAsIG1fcGFzdGVib2FyZChXVEY6Om1vdmUocGFzdGVi
b2FyZCkpCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKICAgICAsIG1fZm9yRHJhZyh0eXBlICE9
IENvcHlBbmRQYXN0ZSkKICAgICAsIG1fZm9yRmlsZURyYWcoZm9yRmlsZURyYWcpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRGF0YVRyYW5zZmVyLmgKaW5kZXggOWQ5NjdhNjUzNTkwYTdjNWY3MDk4MzAyZGZjZjE0ZmRl
ODhhNDEwZS4uY2E4M2I5ZjlmZjU0MzQ1Y2Q3YmU3MjM3NDMxOWI2ZDA2ZTRmOTM2YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9EYXRhVHJhbnNmZXIuaApAQCAtOTksMTQgKzk5LDE0IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIGVudW0gVHlwZSB7IENvcHlBbmRQYXN0ZSwg
RHJhZ0FuZERyb3AgfTsKLSAgICAgICAgRGF0YVRyYW5zZmVyKERhdGFUcmFuc2ZlckFjY2Vzc1Bv
bGljeSwgUGFzc093blB0cjxQYXN0ZWJvYXJkPiwgVHlwZSA9IENvcHlBbmRQYXN0ZSwgYm9vbCBm
b3JGaWxlRHJhZyA9IGZhbHNlKTsKKyAgICAgICAgRGF0YVRyYW5zZmVyKERhdGFUcmFuc2ZlckFj
Y2Vzc1BvbGljeSwgc3RkOjp1bmlxdWVfcHRyPFBhc3RlYm9hcmQ+LCBUeXBlID0gQ29weUFuZFBh
c3RlLCBib29sIGZvckZpbGVEcmFnID0gZmFsc2UpOwogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9S
VCkKICAgICAgICAgYm9vbCBjYW5TZXREcmFnSW1hZ2UoKSBjb25zdDsKICNlbmRpZgogCiAgICAg
ICAgIERhdGFUcmFuc2ZlckFjY2Vzc1BvbGljeSBtX3BvbGljeTsKLSAgICAgICAgT3duUHRyPFBh
c3RlYm9hcmQ+IG1fcGFzdGVib2FyZDsKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFBhc3RlYm9h
cmQ+IG1fcGFzdGVib2FyZDsKIAogICAgICAgICBtdXRhYmxlIFJlZlB0cjxGaWxlTGlzdD4gbV9m
aWxlTGlzdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4IGVkNjNhMjg3M2YwZjhm
N2IxM2ZiNTg4ZjMzMzFjMDA3N2U1ODU0Y2MuLjE1YmU4NzBiZDZhZTNiYjZlZWZiODIzYzJjMzA1
NTRiMDQ0NjlkODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKQEAgLTg1Nyw3ICs4NTcs
NyBAQCBib29sIEVkaXRvcjo6ZGlzcGF0Y2hDUFBFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2
ZW50VHlwZSwgRGF0YVRyYW5zZmVyQWNjZXNzUAogICAgIHRhcmdldC0+ZGlzcGF0Y2hFdmVudChl
dmVudCwgSUdOT1JFX0VYQ0VQVElPTik7CiAgICAgYm9vbCBub0RlZmF1bHRQcm9jZXNzaW5nID0g
ZXZlbnQtPmRlZmF1bHRQcmV2ZW50ZWQoKTsKICAgICBpZiAobm9EZWZhdWx0UHJvY2Vzc2luZyAm
JiBwb2xpY3kgPT0gRGF0YVRyYW5zZmVyQWNjZXNzUG9saWN5OjpXcml0YWJsZSkgewotICAgICAg
ICBPd25QdHI8UGFzdGVib2FyZD4gcGFzdGVib2FyZCA9IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNv
cHlBbmRQYXN0ZSgpOworICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4gcGFzdGVi
b2FyZCA9IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpOwogICAgICAgICBwYXN0
ZWJvYXJkLT5jbGVhcigpOwogICAgICAgICBwYXN0ZWJvYXJkLT53cml0ZVBhc3RlYm9hcmQoZGF0
YVRyYW5zZmVyLT5wYXN0ZWJvYXJkKCkpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFj
L0V2ZW50SGFuZGxlck1hYy5tbQppbmRleCA4YmU5ZjIyYWM5OTFhYWQ5NzM2Njg1YzY1NjFkYjAw
YmZlNGVmNmVjLi45ZmNhODUwYjlkYWNhMTdlMjhlOWY1MDA4NDQwNmJiNTZjNWQ0MzFiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tCkBAIC02ODEsNyArNjgx
LDcgQEAgUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXI+IEV2ZW50SGFuZGxlcjo6Y3JlYXRlRHJhZ2dp
bmdEYXRhVHJhbnNmZXIoKSBjb25zdAogewogICAgIC8vIE11c3QgYmUgZG9uZSBiZWZvcmUgb25k
cmFnc3RhcnQgYWRkcyB0eXBlcyBhbmQgZGF0YSB0byB0aGUgcGJvYXJkLAogICAgIC8vIGFsc28g
ZG9uZSBmb3Igc2VjdXJpdHksIGFzIGl0IGVyYXNlcyBkYXRhIGZyb20gdGhlIGxhc3QgZHJhZy4K
LSAgICBPd25QdHI8UGFzdGVib2FyZD4gcGFzdGVib2FyZCA9IFBhc3RlYm9hcmQ6OmNyZWF0ZShO
U0RyYWdQYm9hcmQpOworICAgIHN0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBwYXN0ZWJvYXJk
ID0gUGFzdGVib2FyZDo6Y3JlYXRlKE5TRHJhZ1Bib2FyZCk7CiAgICAgcGFzdGVib2FyZC0+Y2xl
YXIoKTsKICAgICByZXR1cm4gRGF0YVRyYW5zZmVyOjpjcmVhdGVGb3JEcmFnQW5kRHJvcCgpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZC5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZC5oCmluZGV4IDk0MmY5ZTY3ZDBkZWM4YTRm
ZjIyNTUxN2Q5NDA1N2VlNTk5MjI5MjAuLmM5MGNjOThhYzU5NjdiZTA3ODFhYmIxOGE3NWE1ZjNi
NDQ1NGY1YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkLmgKQEAgLTEzOSwxMCAr
MTM5LDIyIEBAIHN0cnVjdCBQYXN0ZWJvYXJkUGxhaW5UZXh0IHsKIGNsYXNzIFBhc3RlYm9hcmQg
ewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFBhc3RlYm9hcmQpOyBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKIHB1YmxpYzoKKyAgICBQYXN0ZWJvYXJkKCk7CiAgICAgflBhc3RlYm9hcmQoKTsK
IAotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBQYXNzT3duUHRyPFBhc3RlYm9hcmQ+IGNyZWF0
ZUZvckNvcHlBbmRQYXN0ZSgpOwotICAgIHN0YXRpYyBQYXNzT3duUHRyPFBhc3RlYm9hcmQ+IGNy
ZWF0ZVByaXZhdGUoKTsgLy8gVGVtcG9yYXJ5IHBhc3RlYm9hcmQuIENhbiBwdXQgZGF0YSBvbiB0
aGlzIGFuZCB0aGVuIHdyaXRlIHRvIGFub3RoZXIgcGFzdGVib2FyZCB3aXRoIHdyaXRlUGFzdGVi
b2FyZC4KKyNpZiBQTEFURk9STShHVEspCisgICAgUGFzdGVib2FyZChQYXNzUmVmUHRyPERhdGFP
YmplY3RHdGs+KTsKKyAgICBQYXN0ZWJvYXJkKEd0a0NsaXBib2FyZCopOworI2VuZGlmCisKKyNp
ZiBQTEFURk9STShXSU4pCisgICAgZXhwbGljaXQgUGFzdGVib2FyZChJRGF0YU9iamVjdCopOwor
ICAgIGV4cGxpY2l0IFBhc3RlYm9hcmQoV0NEYXRhT2JqZWN0Kik7CisgICAgZXhwbGljaXQgUGFz
dGVib2FyZChjb25zdCBEcmFnRGF0YU1hcCYpOworI2VuZGlmCisKKyAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFBhc3RlYm9hcmQ+IGNyZWF0ZUZvckNvcHlBbmRQYXN0
ZSgpOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4gY3JlYXRlUHJpdmF0
ZSgpOyAvLyBUZW1wb3JhcnkgcGFzdGVib2FyZC4gQ2FuIHB1dCBkYXRhIG9uIHRoaXMgYW5kIHRo
ZW4gd3JpdGUgdG8gYW5vdGhlciBwYXN0ZWJvYXJkIHdpdGggd3JpdGVQYXN0ZWJvYXJkLgogCiAg
ICAgYm9vbCBoYXNEYXRhKCk7CiAgICAgVmVjdG9yPFN0cmluZz4gdHlwZXMoKTsKQEAgLTE2OCw4
ICsxODAsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCB3cml0ZVBhc3RlYm9hcmQoY29uc3QgUGFzdGVi
b2FyZCYgc291cmNlUGFzdGVib2FyZCk7CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotICAg
IHN0YXRpYyBQYXNzT3duUHRyPFBhc3RlYm9hcmQ+IGNyZWF0ZUZvckRyYWdBbmREcm9wKCk7Ci0g
ICAgc3RhdGljIFBhc3NPd25QdHI8UGFzdGVib2FyZD4gY3JlYXRlRm9yRHJhZ0FuZERyb3AoY29u
c3QgRHJhZ0RhdGEmKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFBhc3RlYm9hcmQ+IGNy
ZWF0ZUZvckRyYWdBbmREcm9wKCk7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJv
YXJkPiBjcmVhdGVGb3JEcmFnQW5kRHJvcChjb25zdCBEcmFnRGF0YSYpOwogCiAgICAgdm9pZCBz
ZXREcmFnSW1hZ2UoRHJhZ0ltYWdlUmVmLCBjb25zdCBJbnRQb2ludCYgaG90U3BvdCk7CiAjZW5k
aWYKQEAgLTE4MSwxMCArMTkzLDggQEAgcHVibGljOgogI2VuZGlmCiAKICNpZiBQTEFURk9STShH
VEspCi0gICAgc3RhdGljIFBhc3NPd25QdHI8UGFzdGVib2FyZD4gY3JlYXRlKFBhc3NSZWZQdHI8
RGF0YU9iamVjdEd0az4pOwotICAgIHN0YXRpYyBQYXNzT3duUHRyPFBhc3RlYm9hcmQ+IGNyZWF0
ZShHdGtDbGlwYm9hcmQqKTsKICAgICBQYXNzUmVmUHRyPERhdGFPYmplY3RHdGs+IGRhdGFPYmpl
Y3QoKSBjb25zdDsKLSAgICBzdGF0aWMgUGFzc093blB0cjxQYXN0ZWJvYXJkPiBjcmVhdGVGb3JH
bG9iYWxTZWxlY3Rpb24oKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFBhc3RlYm9hcmQ+
IGNyZWF0ZUZvckdsb2JhbFNlbGVjdGlvbigpOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1Mp
CkBAIC0xOTQsNyArMjA0LDYgQEAgcHVibGljOgogCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIGV4
cGxpY2l0IFBhc3RlYm9hcmQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSk7Ci0gICAgc3Rh
dGljIFBhc3NPd25QdHI8UGFzdGVib2FyZD4gY3JlYXRlKGNvbnN0IFN0cmluZyYgcGFzdGVib2Fy
ZE5hbWUpOwogCiAgICAgY29uc3QgU3RyaW5nJiBuYW1lKCkgY29uc3QgeyByZXR1cm4gbV9wYXN0
ZWJvYXJkTmFtZTsgfQogI2VuZGlmCkBAIC0yMDksMTggKzIxOCw3IEBAIHB1YmxpYzoKICNlbmRp
ZgogCiBwcml2YXRlOgotICAgIFBhc3RlYm9hcmQoKTsKLQotI2lmIFBMQVRGT1JNKEdUSykKLSAg
ICBQYXN0ZWJvYXJkKFBhc3NSZWZQdHI8RGF0YU9iamVjdEd0az4pOwotICAgIFBhc3RlYm9hcmQo
R3RrQ2xpcGJvYXJkKik7Ci0jZW5kaWYKLQogI2lmIFBMQVRGT1JNKFdJTikKLSAgICBleHBsaWNp
dCBQYXN0ZWJvYXJkKElEYXRhT2JqZWN0Kik7Ci0gICAgZXhwbGljaXQgUGFzdGVib2FyZChXQ0Rh
dGFPYmplY3QqKTsKLSAgICBleHBsaWNpdCBQYXN0ZWJvYXJkKGNvbnN0IERyYWdEYXRhTWFwJik7
Ci0KICAgICB2b2lkIGZpbmlzaENyZWF0aW5nUGFzdGVib2FyZCgpOwogICAgIHZvaWQgd3JpdGVS
YW5nZVRvRGF0YU9iamVjdChSYW5nZSYsIEZyYW1lJik7IC8vIEZJWE1FOiBMYXllcmluZyB2aW9s
YXRpb24uCiAgICAgdm9pZCB3cml0ZVVSTFRvRGF0YU9iamVjdChjb25zdCBVUkwmLCBjb25zdCBT
dHJpbmcmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9QYXN0ZWJv
YXJkRWZsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9QYXN0ZWJvYXJkRWZsLmNw
cAppbmRleCA4YTA4MTBmZTExNTQzMmNhNTBiNjNjZjA2Y2M1N2EwNmRhYjM5MzNiLi4zZGE4MWY1
YzE2MDQ0YjIzYjBlZTI5ZWU1ZDFmNzEzNDFjZjBiZGJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9lZmwvUGFzdGVib2FyZEVmbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZWZsL1Bhc3RlYm9hcmRFZmwuY3BwCkBAIC0yNCw3ICsyNCw2IEBACiAjaW5jbHVk
ZSAiUGFzdGVib2FyZC5oIgogCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKLSNpbmNsdWRl
IDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQ4LDI1ICs0
NywyNSBAQCBib29sIFBhc3RlYm9hcmQ6OmNhblNtYXJ0UmVwbGFjZSgpCiAgICAgcmV0dXJuIGZh
bHNlOwogfQogCi1QYXNzT3duUHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNv
cHlBbmRQYXN0ZSgpCitzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3Jl
YXRlRm9yQ29weUFuZFBhc3RlKCkKIHsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IFBhc3RlYm9h
cmQpOworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFBhc3RlYm9hcmQ+KCk7CiB9CiAKLVBh
c3NPd25QdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlUHJpdmF0ZSgpCitzdGQ6OnVu
aXF1ZV9wdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlUHJpdmF0ZSgpCiB7Ci0gICAg
cmV0dXJuIGNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpOworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5p
cXVlPFBhc3RlYm9hcmQ+KCk7CiB9CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotUGFzc093
blB0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcCgpCitzdGQ6
OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERyb3Ao
KQogewotICAgIHJldHVybiBjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKTsKKyAgICByZXR1cm4gc3Rk
OjptYWtlX3VuaXF1ZTxQYXN0ZWJvYXJkPigpOwogfQogCi1QYXNzT3duUHRyPFBhc3RlYm9hcmQ+
IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckRyYWdBbmREcm9wKGNvbnN0IERyYWdEYXRhJikKK3N0ZDo6
dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcChj
b25zdCBEcmFnRGF0YSYpCiB7Ci0gICAgcmV0dXJuIGNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpOwor
ICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFBhc3RlYm9hcmQ+KCk7CiB9CiAjZW5kaWYKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRHdGsuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRHdGsuY3BwCmluZGV4IDBh
YWRkNWNlNDk2OWFmZTFkNmExNGY5ZjNjMjE5MTM4ZjQ4MTIxODcuLmE0MzA3NjBkZTEwMzY2MmQx
MWQxNTVkNTE4NWUyM2ZlNTEzMmQ4M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2d0ay9QYXN0ZWJvYXJkR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
dGsvUGFzdGVib2FyZEd0ay5jcHAKQEAgLTI2LDcgKzI2LDYgQEAKICNpbmNsdWRlICJVUkwuaCIK
ICNpbmNsdWRlICJQYXN0ZWJvYXJkSGVscGVyLmgiCiAjaW5jbHVkZSA8Z3RrL2d0ay5oPgotI2lu
Y2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzks
NDAgKzM4LDMwIEBAIGVudW0gQ2xpcGJvYXJkRGF0YVR5cGUgewogICAgIENsaXBib2FyZERhdGFU
eXBlVW5rbm93bgogfTsKIAotUGFzc093blB0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVh
dGUoR3RrQ2xpcGJvYXJkKiBndGtDbGlwYm9hcmQpCitzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2Fy
ZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9yQ29weUFuZFBhc3RlKCkKIHsKLSAgICByZXR1cm4gYWRv
cHRQdHIobmV3IFBhc3RlYm9hcmQoZ3RrQ2xpcGJvYXJkKSk7CisgICAgcmV0dXJuIHN0ZDo6bWFr
ZV91bmlxdWU8UGFzdGVib2FyZD4oZ3RrX2NsaXBib2FyZF9nZXQoR0RLX1NFTEVDVElPTl9DTElQ
Qk9BUkQpKTsKIH0KIAotUGFzc093blB0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGUo
UGFzc1JlZlB0cjxEYXRhT2JqZWN0R3RrPiBkYXRhT2JqZWN0KQorc3RkOjp1bmlxdWVfcHRyPFBh
c3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckdsb2JhbFNlbGVjdGlvbigpCiB7Ci0gICAg
cmV0dXJuIGFkb3B0UHRyKG5ldyBQYXN0ZWJvYXJkKGRhdGFPYmplY3QpKTsKKyAgICByZXR1cm4g
c3RkOjptYWtlX3VuaXF1ZTxQYXN0ZWJvYXJkPihndGtfY2xpcGJvYXJkX2dldChHREtfU0VMRUNU
SU9OX1BSSU1BUlkpKTsKIH0KIAotUGFzc093blB0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpj
cmVhdGVGb3JDb3B5QW5kUGFzdGUoKQorc3RkOjp1bmlxdWVfcHRyPFBhc3RlYm9hcmQ+IFBhc3Rl
Ym9hcmQ6OmNyZWF0ZVByaXZhdGUoKQogewotICAgIHJldHVybiBjcmVhdGUoZ3RrX2NsaXBib2Fy
ZF9nZXQoR0RLX1NFTEVDVElPTl9DTElQQk9BUkQpKTsKLX0KLQotUGFzc093blB0cjxQYXN0ZWJv
YXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JHbG9iYWxTZWxlY3Rpb24oKQotewotICAgIHJldHVy
biBjcmVhdGUoZ3RrX2NsaXBib2FyZF9nZXQoR0RLX1NFTEVDVElPTl9QUklNQVJZKSk7Ci19Ci0K
LVBhc3NPd25QdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlUHJpdmF0ZSgpCi17Ci0g
ICAgcmV0dXJuIGNyZWF0ZShEYXRhT2JqZWN0R3RrOjpjcmVhdGUoKSk7CisgICAgcmV0dXJuIHN0
ZDo6bWFrZV91bmlxdWU8UGFzdGVib2FyZD4oRGF0YU9iamVjdEd0azo6Y3JlYXRlKCkpOwogfQog
CiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKLVBhc3NPd25QdHI8UGFzdGVib2FyZD4gUGFzdGVi
b2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AoKQorc3RkOjp1bmlxdWVfcHRyPFBhc3RlYm9hcmQ+
IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckRyYWdBbmREcm9wKCkKIHsKLSAgICByZXR1cm4gY3JlYXRl
KERhdGFPYmplY3RHdGs6OmNyZWF0ZSgpKTsKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxQ
YXN0ZWJvYXJkPihEYXRhT2JqZWN0R3RrOjpjcmVhdGUoKSk7CiB9CiAKLVBhc3NPd25QdHI8UGFz
dGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AoY29uc3QgRHJhZ0RhdGEm
IGRyYWdEYXRhKQorc3RkOjp1bmlxdWVfcHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0
ZUZvckRyYWdBbmREcm9wKGNvbnN0IERyYWdEYXRhJiBkcmFnRGF0YSkKIHsKLSAgICByZXR1cm4g
Y3JlYXRlKGRyYWdEYXRhLnBsYXRmb3JtRGF0YSgpKTsKKyAgICByZXR1cm4gc3RkOjptYWtlX3Vu
aXF1ZTxQYXN0ZWJvYXJkPihkcmFnRGF0YS5wbGF0Zm9ybURhdGEoKSk7CiB9CiAjZW5kaWYKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1Bhc3RlYm9hcmRJT1MubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGFzdGVib2FyZElPUy5tbQppbmRleCA3ZDFl
OTZkZGU5NTBjMjVjNmExNzQyMDE2ZThjZjYxNzhlNWU1OTQ5Li42NjQ5NjQ3MGFkYjdlYzFlODYx
Yzg3ZWIyOTM5ZTg5YTFkZDkyMTRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9pb3MvUGFzdGVib2FyZElPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mv
UGFzdGVib2FyZElPUy5tbQpAQCAtMTIxLDE0ICsxMjEsMTQgQEAgUGFzdGVib2FyZDo6UGFzdGVi
b2FyZCgpCiB7CiB9CiAKLVBhc3NPd25QdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRl
Rm9yQ29weUFuZFBhc3RlKCkKK3N0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJk
OjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKQogewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgUGFz
dGVib2FyZCk7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8UGFzdGVib2FyZD4oKTsKIH0K
IAotUGFzc093blB0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVQcml2YXRlKCkKK3N0
ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVQcml2YXRlKCkKIHsK
LSAgICByZXR1cm4gYWRvcHRQdHIobmV3IFBhc3RlYm9hcmQpOworICAgIHJldHVybiBzdGQ6Om1h
a2VfdW5pcXVlPFBhc3RlYm9hcmQ+KCk7CiB9CiAKIHZvaWQgUGFzdGVib2FyZDo6d3JpdGUoY29u
c3QgUGFzdGVib2FyZFdlYkNvbnRlbnQmIGNvbnRlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tCmluZGV4IDUwMWEzOGNhNTcyOWVjYjdhOTgxNjQ0OTQ3
ZDcxZDMyN2YxZjJmNGYuLjBiNGZhOWNlMGEyNmVkOGZlNWYxYWJiZjUwMWRiMDczYzIxNzYwOWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tCkBAIC0x
MjMsMzAgKzEyMywyNSBAQCBQYXN0ZWJvYXJkOjpQYXN0ZWJvYXJkKGNvbnN0IFN0cmluZyYgcGFz
dGVib2FyZE5hbWUpCiAgICAgQVNTRVJUKHBhc3RlYm9hcmROYW1lKTsKIH0KIAotUGFzc093blB0
cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGUoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJk
TmFtZSkKK3N0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JD
b3B5QW5kUGFzdGUoKQogewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgUGFzdGVib2FyZChwYXN0
ZWJvYXJkTmFtZSkpOworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFBhc3RlYm9hcmQ+KE5T
R2VuZXJhbFBib2FyZCk7CiB9CiAKLVBhc3NPd25QdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6
Y3JlYXRlRm9yQ29weUFuZFBhc3RlKCkKK3N0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBQYXN0
ZWJvYXJkOjpjcmVhdGVQcml2YXRlKCkKIHsKLSAgICByZXR1cm4gY3JlYXRlKE5TR2VuZXJhbFBi
b2FyZCk7Ci19Ci0KLVBhc3NPd25QdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlUHJp
dmF0ZSgpCi17Ci0gICAgcmV0dXJuIGNyZWF0ZShwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVi
b2FyZFN0cmF0ZWd5KCktPnVuaXF1ZU5hbWUoKSk7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlx
dWU8UGFzdGVib2FyZD4ocGxhdGZvcm1TdHJhdGVnaWVzKCktPnBhc3RlYm9hcmRTdHJhdGVneSgp
LT51bmlxdWVOYW1lKCkpOwogfQogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKLVBhc3NPd25Q
dHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AoKQorc3RkOjp1
bmlxdWVfcHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckRyYWdBbmREcm9wKCkK
IHsKLSAgICByZXR1cm4gY3JlYXRlKE5TRHJhZ1Bib2FyZCk7CisgICAgcmV0dXJuIHN0ZDo6bWFr
ZV91bmlxdWU8UGFzdGVib2FyZD4oTlNEcmFnUGJvYXJkKTsKIH0KIAotUGFzc093blB0cjxQYXN0
ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcChjb25zdCBEcmFnRGF0YSYg
ZHJhZ0RhdGEpCitzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRl
Rm9yRHJhZ0FuZERyb3AoY29uc3QgRHJhZ0RhdGEmIGRyYWdEYXRhKQogewotICAgIHJldHVybiBj
cmVhdGUoZHJhZ0RhdGEucGFzdGVib2FyZE5hbWUoKSk7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91
bmlxdWU8UGFzdGVib2FyZD4oZHJhZ0RhdGEucGFzdGVib2FyZE5hbWUoKSk7CiB9CiAjZW5kaWYK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1Bhc3RlYm9hcmRXaW4u
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1Bhc3RlYm9hcmRXaW4uY3BwCmluZGV4
IDdhZWUxNDExM2M0YzdmNjkwMjUwNGQ4MTVkMTIwZGY1NmI0ZjRhMmUuLjBkY2EwYWVkZDA3ZjA2
ZjlmOTI5MGFhNTY5NGZlZjRhMzZjNGY5MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS93aW4vUGFzdGVib2FyZFdpbi5jcHAKQEAgLTkwLDM3ICs5MCwzNyBAQCBzdGF0aWMgTFJFU1VM
VCBDQUxMQkFDSyBQYXN0ZWJvYXJkT3duZXJXbmRQcm9jKEhXTkQgaFduZCwgVUlOVCBtZXNzYWdl
LCBXUEFSQU0gdwogICAgIHJldHVybiBscmVzdWx0OwogfQogCi1QYXNzT3duUHRyPFBhc3RlYm9h
cmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpCitzdGQ6OnVuaXF1ZV9wdHI8
UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9yQ29weUFuZFBhc3RlKCkKIHsKLSAgICBP
d25QdHI8UGFzdGVib2FyZD4gcGFzdGVib2FyZCA9IGFkb3B0UHRyKG5ldyBQYXN0ZWJvYXJkKTsK
KyAgICBzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4gcGFzdGVib2FyZCA9IHN0ZDo6bWFrZV91
bmlxdWU8UGFzdGVib2FyZD4oKTsKICAgICBDT01QdHI8SURhdGFPYmplY3Q+IGNsaXBib2FyZERh
dGE7CiAgICAgaWYgKCFTVUNDRUVERUQoT2xlR2V0Q2xpcGJvYXJkKCZjbGlwYm9hcmREYXRhKSkp
CiAgICAgICAgIGNsaXBib2FyZERhdGEgPSAwOwogICAgIHBhc3RlYm9hcmQtPnNldEV4dGVybmFs
RGF0YU9iamVjdChjbGlwYm9hcmREYXRhLmdldCgpKTsKLSAgICByZXR1cm4gcGFzdGVib2FyZC5y
ZWxlYXNlKCk7CisgICAgcmV0dXJuIHBhc3RlYm9hcmQ7CiB9CiAKLVBhc3NPd25QdHI8UGFzdGVi
b2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlUHJpdmF0ZSgpCitzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVi
b2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlUHJpdmF0ZSgpCiB7CiAgICAgLy8gV2luZG93cyBoYXMg
bm8gIlByaXZhdGUgcGFzdGVib2FyZCIgY29uY2VwdC4KICAgICByZXR1cm4gY3JlYXRlRm9yQ29w
eUFuZFBhc3RlKCk7CiB9CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotUGFzc093blB0cjxQ
YXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcCgpCitzdGQ6OnVuaXF1
ZV9wdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AoKQogewog
ICAgIENPTVB0cjxXQ0RhdGFPYmplY3Q+IGRhdGFPYmplY3Q7CiAgICAgV0NEYXRhT2JqZWN0Ojpj
cmVhdGVJbnN0YW5jZSgmZGF0YU9iamVjdCk7Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBQYXN0
ZWJvYXJkKGRhdGFPYmplY3QuZ2V0KCkpKTsKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxQ
YXN0ZWJvYXJkPihkYXRhT2JqZWN0LmdldCgpKTsKIH0KIAogLy8gc3RhdGljCi1QYXNzT3duUHRy
PFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckRyYWdBbmREcm9wKGNvbnN0IERyYWdE
YXRhJiBkcmFnRGF0YSkKK3N0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpj
cmVhdGVGb3JEcmFnQW5kRHJvcChjb25zdCBEcmFnRGF0YSYgZHJhZ0RhdGEpCiB7CiAgICAgaWYg
KGRyYWdEYXRhLnBsYXRmb3JtRGF0YSgpKQotICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IFBh
c3RlYm9hcmQoZHJhZ0RhdGEucGxhdGZvcm1EYXRhKCkpKTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6
bWFrZV91bmlxdWU8UGFzdGVib2FyZD4oZHJhZ0RhdGEucGxhdGZvcm1EYXRhKCkpOwogICAgIC8v
IEZJWE1FOiBTaG91bGQgYWRkIGEgY29uc3Qgb3ZlcmxvYWQgb2YgZHJhZ0RhdGFNYXAgc28gd2Ug
ZG9uJ3QgbmVlZCBhIGNvbnN0X2Nhc3QgaGVyZS4KLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IFBh
c3RlYm9hcmQoY29uc3RfY2FzdDxEcmFnRGF0YSY+KGRyYWdEYXRhKS5kcmFnRGF0YU1hcCgpKSk7
CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8UGFzdGVib2FyZD4oY29uc3RfY2FzdDxEcmFn
RGF0YSY+KGRyYWdEYXRhKS5kcmFnRGF0YU1hcCgpKTsKIH0KICNlbmRpZgogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>242159</attachid>
            <date>2014-11-24 07:05:54 -0800</date>
            <delta_ts>2014-11-24 08:11:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-139019-20141125000613.patch</filename>
            <type>text/plain</type>
            <size>16365</size>
            <attacher name="Joonghun Park">jh718.park</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc2NTE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTU3ZmFmMTE0MGYyYzAz
YmEwMjMzMjRiNTBhYzhhOWQwMmJiMDE5Mi4uZGY0NDNlZmQ2ZTEyZmZhYTExZDg1YWY1YWJhNzlk
YWQyNTllZjE3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDE0LTExLTI0ICBKb29u
Z2h1biBQYXJrICA8amg3MTgucGFya0BzYW1zdW5nLmNvbT4KKworICAgICAgICBVc2Ugc3RkOjp1
bmlxdWVfcHRyIGluc3RlYWQgb2YgUGFzc093blB0cnxPd25QdHIgZm9yIFBhc3RlYm9hcmQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzOTAxOQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0
cywgbm8gYmVoYXZpb3IgY2hhbmdlcy4KKworICAgICAgICAqIGRvbS9EYXRhVHJhbnNmZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRyYW5zZmVyOjpEYXRhVHJhbnNmZXIpOgorICAgICAg
ICAqIGRvbS9EYXRhVHJhbnNmZXIuaDoKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmRpc3BhdGNoQ1BQRXZlbnQpOgorICAgICAgICAqIHBh
Z2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxl
cjo6Y3JlYXRlRHJhZ2dpbmdEYXRhVHJhbnNmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL1Bhc3Rl
Ym9hcmQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvUGFzdGVib2FyZEVmbC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6Y3JlYXRlUHJpdmF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcCk6CisgICAgICAgICogcGxhdGZvcm0v
Z3RrL1Bhc3RlYm9hcmRHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6Y3Jl
YXRlRm9yQ29weUFuZFBhc3RlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OmNyZWF0
ZUZvckdsb2JhbFNlbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpjcmVh
dGVQcml2YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OmNyZWF0ZUZvckRyYWdB
bmREcm9wKToKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OmNyZWF0ZSk6IERlbGV0ZWQu
CisgICAgICAgICogcGxhdGZvcm0vaW9zL1Bhc3RlYm9hcmRJT1MubW06CisgICAgICAgIChXZWJD
b3JlOjpQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6UGFzdGVib2FyZDo6Y3JlYXRlUHJpdmF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Bh
c3RlYm9hcmRNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpjcmVhdGVGb3JD
b3B5QW5kUGFzdGUpOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6Y3JlYXRlUHJpdmF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcCk6
CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpjcmVhdGUpOiBEZWxldGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBh
c3RlYm9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSk6CisgICAgICAgIChXZWJDb3JlOjpQYXN0
ZWJvYXJkOjpjcmVhdGVQcml2YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OmNy
ZWF0ZUZvckRyYWdBbmREcm9wKToKKwogMjAxNC0xMS0yNCAgSm9hbm1hcmllIERpZ2dzICA8amRp
Z2dzQGlnYWxpYS5jb20+CiAKICAgICAgICAgQVg6IFtBVEtdIFVuc2tpcCB0aGUgc2tpcHBlZCBB
VEsgdGVzdHMgaW4gcm9sZXMtZXhwb3NlZC5odG1sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRGF0YVRyYW5zZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXIu
Y3BwCmluZGV4IGZlMjFhZmZmZjM1OTkzYTlmZTQ5MTg1YjMyNTgwMzgyMjc1OTM4YzIuLjM4NGM4
NWYyNjhmMmIwYTVhMmExNWZjMTM0MmQ5MDcxNDg1ODI2Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRh
VHJhbnNmZXIuY3BwCkBAIC01NSw5ICs1NSw5IEBAIHByaXZhdGU6CiAKICNlbmRpZgogCi1EYXRh
VHJhbnNmZXI6OkRhdGFUcmFuc2ZlcihEYXRhVHJhbnNmZXJBY2Nlc3NQb2xpY3kgcG9saWN5LCBQ
YXNzT3duUHRyPFBhc3RlYm9hcmQ+IHBhc3RlYm9hcmQsIFR5cGUgdHlwZSwgYm9vbCBmb3JGaWxl
RHJhZykKK0RhdGFUcmFuc2Zlcjo6RGF0YVRyYW5zZmVyKERhdGFUcmFuc2ZlckFjY2Vzc1BvbGlj
eSBwb2xpY3ksIHN0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBwYXN0ZWJvYXJkLCBUeXBlIHR5
cGUsIGJvb2wgZm9yRmlsZURyYWcpCiAgICAgOiBtX3BvbGljeShwb2xpY3kpCi0gICAgLCBtX3Bh
c3RlYm9hcmQocGFzdGVib2FyZCkKKyAgICAsIG1fcGFzdGVib2FyZChXVEY6Om1vdmUocGFzdGVi
b2FyZCkpCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKICAgICAsIG1fZm9yRHJhZyh0eXBlICE9
IENvcHlBbmRQYXN0ZSkKICAgICAsIG1fZm9yRmlsZURyYWcoZm9yRmlsZURyYWcpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRGF0YVRyYW5zZmVyLmgKaW5kZXggOWQ5NjdhNjUzNTkwYTdjNWY3MDk4MzAyZGZjZjE0ZmRl
ODhhNDEwZS4uY2E4M2I5ZjlmZjU0MzQ1Y2Q3YmU3MjM3NDMxOWI2ZDA2ZTRmOTM2YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9EYXRhVHJhbnNmZXIuaApAQCAtOTksMTQgKzk5LDE0IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIGVudW0gVHlwZSB7IENvcHlBbmRQYXN0ZSwg
RHJhZ0FuZERyb3AgfTsKLSAgICAgICAgRGF0YVRyYW5zZmVyKERhdGFUcmFuc2ZlckFjY2Vzc1Bv
bGljeSwgUGFzc093blB0cjxQYXN0ZWJvYXJkPiwgVHlwZSA9IENvcHlBbmRQYXN0ZSwgYm9vbCBm
b3JGaWxlRHJhZyA9IGZhbHNlKTsKKyAgICAgICAgRGF0YVRyYW5zZmVyKERhdGFUcmFuc2ZlckFj
Y2Vzc1BvbGljeSwgc3RkOjp1bmlxdWVfcHRyPFBhc3RlYm9hcmQ+LCBUeXBlID0gQ29weUFuZFBh
c3RlLCBib29sIGZvckZpbGVEcmFnID0gZmFsc2UpOwogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9S
VCkKICAgICAgICAgYm9vbCBjYW5TZXREcmFnSW1hZ2UoKSBjb25zdDsKICNlbmRpZgogCiAgICAg
ICAgIERhdGFUcmFuc2ZlckFjY2Vzc1BvbGljeSBtX3BvbGljeTsKLSAgICAgICAgT3duUHRyPFBh
c3RlYm9hcmQ+IG1fcGFzdGVib2FyZDsKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFBhc3RlYm9h
cmQ+IG1fcGFzdGVib2FyZDsKIAogICAgICAgICBtdXRhYmxlIFJlZlB0cjxGaWxlTGlzdD4gbV9m
aWxlTGlzdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4IGVkNjNhMjg3M2YwZjhm
N2IxM2ZiNTg4ZjMzMzFjMDA3N2U1ODU0Y2MuLjE1YmU4NzBiZDZhZTNiYjZlZWZiODIzYzJjMzA1
NTRiMDQ0NjlkODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKQEAgLTg1Nyw3ICs4NTcs
NyBAQCBib29sIEVkaXRvcjo6ZGlzcGF0Y2hDUFBFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2
ZW50VHlwZSwgRGF0YVRyYW5zZmVyQWNjZXNzUAogICAgIHRhcmdldC0+ZGlzcGF0Y2hFdmVudChl
dmVudCwgSUdOT1JFX0VYQ0VQVElPTik7CiAgICAgYm9vbCBub0RlZmF1bHRQcm9jZXNzaW5nID0g
ZXZlbnQtPmRlZmF1bHRQcmV2ZW50ZWQoKTsKICAgICBpZiAobm9EZWZhdWx0UHJvY2Vzc2luZyAm
JiBwb2xpY3kgPT0gRGF0YVRyYW5zZmVyQWNjZXNzUG9saWN5OjpXcml0YWJsZSkgewotICAgICAg
ICBPd25QdHI8UGFzdGVib2FyZD4gcGFzdGVib2FyZCA9IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNv
cHlBbmRQYXN0ZSgpOworICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4gcGFzdGVi
b2FyZCA9IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpOwogICAgICAgICBwYXN0
ZWJvYXJkLT5jbGVhcigpOwogICAgICAgICBwYXN0ZWJvYXJkLT53cml0ZVBhc3RlYm9hcmQoZGF0
YVRyYW5zZmVyLT5wYXN0ZWJvYXJkKCkpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFj
L0V2ZW50SGFuZGxlck1hYy5tbQppbmRleCA4YmU5ZjIyYWM5OTFhYWQ5NzM2Njg1YzY1NjFkYjAw
YmZlNGVmNmVjLi4yY2U5OGJiMzMyMWMyNjI3YzFlMjFlOGYxOTk4ZTc0MzQ3MmE2Yzc3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tCkBAIC02ODEsNyArNjgx
LDcgQEAgUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXI+IEV2ZW50SGFuZGxlcjo6Y3JlYXRlRHJhZ2dp
bmdEYXRhVHJhbnNmZXIoKSBjb25zdAogewogICAgIC8vIE11c3QgYmUgZG9uZSBiZWZvcmUgb25k
cmFnc3RhcnQgYWRkcyB0eXBlcyBhbmQgZGF0YSB0byB0aGUgcGJvYXJkLAogICAgIC8vIGFsc28g
ZG9uZSBmb3Igc2VjdXJpdHksIGFzIGl0IGVyYXNlcyBkYXRhIGZyb20gdGhlIGxhc3QgZHJhZy4K
LSAgICBPd25QdHI8UGFzdGVib2FyZD4gcGFzdGVib2FyZCA9IFBhc3RlYm9hcmQ6OmNyZWF0ZShO
U0RyYWdQYm9hcmQpOworICAgIHN0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBwYXN0ZWJvYXJk
ID0gcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8UGFzdGVib2FyZD4oTlNEcmFnUGJvYXJkKTsKICAg
ICBwYXN0ZWJvYXJkLT5jbGVhcigpOwogICAgIHJldHVybiBEYXRhVHJhbnNmZXI6OmNyZWF0ZUZv
ckRyYWdBbmREcm9wKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Q
YXN0ZWJvYXJkLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkLmgKaW5kZXgg
OTQyZjllNjdkMGRlYzhhNGZmMjI1NTE3ZDk0MDU3ZWU1OTkyMjkyMC4uYzkwY2M5OGFjNTk2N2Jl
MDc4MWFiYjE4YTc1YTVmM2I0NDU0ZjVhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vUGFzdGVib2FyZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9h
cmQuaApAQCAtMTM5LDEwICsxMzksMjIgQEAgc3RydWN0IFBhc3RlYm9hcmRQbGFpblRleHQgewog
Y2xhc3MgUGFzdGVib2FyZCB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUGFzdGVib2FyZCk7
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgorICAgIFBhc3RlYm9hcmQoKTsKICAg
ICB+UGFzdGVib2FyZCgpOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFBhc3NPd25QdHI8
UGFzdGVib2FyZD4gY3JlYXRlRm9yQ29weUFuZFBhc3RlKCk7Ci0gICAgc3RhdGljIFBhc3NPd25Q
dHI8UGFzdGVib2FyZD4gY3JlYXRlUHJpdmF0ZSgpOyAvLyBUZW1wb3JhcnkgcGFzdGVib2FyZC4g
Q2FuIHB1dCBkYXRhIG9uIHRoaXMgYW5kIHRoZW4gd3JpdGUgdG8gYW5vdGhlciBwYXN0ZWJvYXJk
IHdpdGggd3JpdGVQYXN0ZWJvYXJkLgorI2lmIFBMQVRGT1JNKEdUSykKKyAgICBQYXN0ZWJvYXJk
KFBhc3NSZWZQdHI8RGF0YU9iamVjdEd0az4pOworICAgIFBhc3RlYm9hcmQoR3RrQ2xpcGJvYXJk
Kik7CisjZW5kaWYKKworI2lmIFBMQVRGT1JNKFdJTikKKyAgICBleHBsaWNpdCBQYXN0ZWJvYXJk
KElEYXRhT2JqZWN0Kik7CisgICAgZXhwbGljaXQgUGFzdGVib2FyZChXQ0RhdGFPYmplY3QqKTsK
KyAgICBleHBsaWNpdCBQYXN0ZWJvYXJkKGNvbnN0IERyYWdEYXRhTWFwJik7CisjZW5kaWYKKwor
ICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4gY3Jl
YXRlRm9yQ29weUFuZFBhc3RlKCk7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJv
YXJkPiBjcmVhdGVQcml2YXRlKCk7IC8vIFRlbXBvcmFyeSBwYXN0ZWJvYXJkLiBDYW4gcHV0IGRh
dGEgb24gdGhpcyBhbmQgdGhlbiB3cml0ZSB0byBhbm90aGVyIHBhc3RlYm9hcmQgd2l0aCB3cml0
ZVBhc3RlYm9hcmQuCiAKICAgICBib29sIGhhc0RhdGEoKTsKICAgICBWZWN0b3I8U3RyaW5nPiB0
eXBlcygpOwpAQCAtMTY4LDggKzE4MCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHdyaXRlUGFzdGVi
b2FyZChjb25zdCBQYXN0ZWJvYXJkJiBzb3VyY2VQYXN0ZWJvYXJkKTsKIAogI2lmIEVOQUJMRShE
UkFHX1NVUFBPUlQpCi0gICAgc3RhdGljIFBhc3NPd25QdHI8UGFzdGVib2FyZD4gY3JlYXRlRm9y
RHJhZ0FuZERyb3AoKTsKLSAgICBzdGF0aWMgUGFzc093blB0cjxQYXN0ZWJvYXJkPiBjcmVhdGVG
b3JEcmFnQW5kRHJvcChjb25zdCBEcmFnRGF0YSYpOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9w
dHI8UGFzdGVib2FyZD4gY3JlYXRlRm9yRHJhZ0FuZERyb3AoKTsKKyAgICBzdGF0aWMgc3RkOjp1
bmlxdWVfcHRyPFBhc3RlYm9hcmQ+IGNyZWF0ZUZvckRyYWdBbmREcm9wKGNvbnN0IERyYWdEYXRh
Jik7CiAKICAgICB2b2lkIHNldERyYWdJbWFnZShEcmFnSW1hZ2VSZWYsIGNvbnN0IEludFBvaW50
JiBob3RTcG90KTsKICNlbmRpZgpAQCAtMTgxLDEwICsxOTMsOCBAQCBwdWJsaWM6CiAjZW5kaWYK
IAogI2lmIFBMQVRGT1JNKEdUSykKLSAgICBzdGF0aWMgUGFzc093blB0cjxQYXN0ZWJvYXJkPiBj
cmVhdGUoUGFzc1JlZlB0cjxEYXRhT2JqZWN0R3RrPik7Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8
UGFzdGVib2FyZD4gY3JlYXRlKEd0a0NsaXBib2FyZCopOwogICAgIFBhc3NSZWZQdHI8RGF0YU9i
amVjdEd0az4gZGF0YU9iamVjdCgpIGNvbnN0OwotICAgIHN0YXRpYyBQYXNzT3duUHRyPFBhc3Rl
Ym9hcmQ+IGNyZWF0ZUZvckdsb2JhbFNlbGVjdGlvbigpOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1
ZV9wdHI8UGFzdGVib2FyZD4gY3JlYXRlRm9yR2xvYmFsU2VsZWN0aW9uKCk7CiAjZW5kaWYKIAog
I2lmIFBMQVRGT1JNKElPUykKQEAgLTE5NCw3ICsyMDQsNiBAQCBwdWJsaWM6CiAKICNpZiBQTEFU
Rk9STShNQUMpCiAgICAgZXhwbGljaXQgUGFzdGVib2FyZChjb25zdCBTdHJpbmcmIHBhc3RlYm9h
cmROYW1lKTsKLSAgICBzdGF0aWMgUGFzc093blB0cjxQYXN0ZWJvYXJkPiBjcmVhdGUoY29uc3Qg
U3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSk7CiAKICAgICBjb25zdCBTdHJpbmcmIG5hbWUoKSBjb25z
dCB7IHJldHVybiBtX3Bhc3RlYm9hcmROYW1lOyB9CiAjZW5kaWYKQEAgLTIwOSwxOCArMjE4LDcg
QEAgcHVibGljOgogI2VuZGlmCiAKIHByaXZhdGU6Ci0gICAgUGFzdGVib2FyZCgpOwotCi0jaWYg
UExBVEZPUk0oR1RLKQotICAgIFBhc3RlYm9hcmQoUGFzc1JlZlB0cjxEYXRhT2JqZWN0R3RrPik7
Ci0gICAgUGFzdGVib2FyZChHdGtDbGlwYm9hcmQqKTsKLSNlbmRpZgotCiAjaWYgUExBVEZPUk0o
V0lOKQotICAgIGV4cGxpY2l0IFBhc3RlYm9hcmQoSURhdGFPYmplY3QqKTsKLSAgICBleHBsaWNp
dCBQYXN0ZWJvYXJkKFdDRGF0YU9iamVjdCopOwotICAgIGV4cGxpY2l0IFBhc3RlYm9hcmQoY29u
c3QgRHJhZ0RhdGFNYXAmKTsKLQogICAgIHZvaWQgZmluaXNoQ3JlYXRpbmdQYXN0ZWJvYXJkKCk7
CiAgICAgdm9pZCB3cml0ZVJhbmdlVG9EYXRhT2JqZWN0KFJhbmdlJiwgRnJhbWUmKTsgLy8gRklY
TUU6IExheWVyaW5nIHZpb2xhdGlvbi4KICAgICB2b2lkIHdyaXRlVVJMVG9EYXRhT2JqZWN0KGNv
bnN0IFVSTCYsIGNvbnN0IFN0cmluZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZWZsL1Bhc3RlYm9hcmRFZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZs
L1Bhc3RlYm9hcmRFZmwuY3BwCmluZGV4IDhhMDgxMGZlMTE1NDMyY2E1MGI2M2NmMDZjYzU3YTA2
ZGFiMzkzM2IuLjNkYTgxZjVjMTYwNDRiMjNiMGVlMjllZTVkMWY3MTM0MWNmMGJkYmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9QYXN0ZWJvYXJkRWZsLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUGFzdGVib2FyZEVmbC5jcHAKQEAgLTI0LDcg
KzI0LDYgQEAKICNpbmNsdWRlICJQYXN0ZWJvYXJkLmgiCiAKICNpbmNsdWRlICJOb3RJbXBsZW1l
bnRlZC5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIApAQCAtNDgsMjUgKzQ3LDI1IEBAIGJvb2wgUGFzdGVib2FyZDo6Y2FuU21hcnRSZXBsYWNl
KCkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLVBhc3NPd25QdHI8UGFzdGVib2FyZD4gUGFzdGVi
b2FyZDo6Y3JlYXRlRm9yQ29weUFuZFBhc3RlKCkKK3N0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJk
PiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKQogewotICAgIHJldHVybiBhZG9w
dFB0cihuZXcgUGFzdGVib2FyZCk7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8UGFzdGVi
b2FyZD4oKTsKIH0KIAotUGFzc093blB0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVQ
cml2YXRlKCkKK3N0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVQ
cml2YXRlKCkKIHsKLSAgICByZXR1cm4gY3JlYXRlRm9yQ29weUFuZFBhc3RlKCk7CisgICAgcmV0
dXJuIHN0ZDo6bWFrZV91bmlxdWU8UGFzdGVib2FyZD4oKTsKIH0KIAogI2lmIEVOQUJMRShEUkFH
X1NVUFBPUlQpCi1QYXNzT3duUHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckRy
YWdBbmREcm9wKCkKK3N0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVh
dGVGb3JEcmFnQW5kRHJvcCgpCiB7Ci0gICAgcmV0dXJuIGNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgp
OworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFBhc3RlYm9hcmQ+KCk7CiB9CiAKLVBhc3NP
d25QdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AoY29uc3Qg
RHJhZ0RhdGEmKQorc3RkOjp1bmlxdWVfcHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0
ZUZvckRyYWdBbmREcm9wKGNvbnN0IERyYWdEYXRhJikKIHsKLSAgICByZXR1cm4gY3JlYXRlRm9y
Q29weUFuZFBhc3RlKCk7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8UGFzdGVib2FyZD4o
KTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsv
UGFzdGVib2FyZEd0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2Fy
ZEd0ay5jcHAKaW5kZXggMGFhZGQ1Y2U0OTY5YWZlMWQ2YTE0ZjlmM2MyMTkxMzhmNDgxMjE4Ny4u
YTQzMDc2MGRlMTAzNjYyZDExZDE1NWQ1MTg1ZTIzZmU1MTMyZDgzYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRHdGsuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkR3RrLmNwcApAQCAtMjYsNyArMjYsNiBAQAog
I2luY2x1ZGUgIlVSTC5oIgogI2luY2x1ZGUgIlBhc3RlYm9hcmRIZWxwZXIuaCIKICNpbmNsdWRl
IDxndGsvZ3RrLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCkBAIC0zOSw0MCArMzgsMzAgQEAgZW51bSBDbGlwYm9hcmREYXRhVHlwZSB7CiAg
ICAgQ2xpcGJvYXJkRGF0YVR5cGVVbmtub3duCiB9OwogCi1QYXNzT3duUHRyPFBhc3RlYm9hcmQ+
IFBhc3RlYm9hcmQ6OmNyZWF0ZShHdGtDbGlwYm9hcmQqIGd0a0NsaXBib2FyZCkKK3N0ZDo6dW5p
cXVlX3B0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKQog
ewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgUGFzdGVib2FyZChndGtDbGlwYm9hcmQpKTsKKyAg
ICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxQYXN0ZWJvYXJkPihndGtfY2xpcGJvYXJkX2dldChH
REtfU0VMRUNUSU9OX0NMSVBCT0FSRCkpOwogfQogCi1QYXNzT3duUHRyPFBhc3RlYm9hcmQ+IFBh
c3RlYm9hcmQ6OmNyZWF0ZShQYXNzUmVmUHRyPERhdGFPYmplY3RHdGs+IGRhdGFPYmplY3QpCitz
dGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9yR2xvYmFsU2Vs
ZWN0aW9uKCkKIHsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IFBhc3RlYm9hcmQoZGF0YU9iamVj
dCkpOworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFBhc3RlYm9hcmQ+KGd0a19jbGlwYm9h
cmRfZ2V0KEdES19TRUxFQ1RJT05fUFJJTUFSWSkpOwogfQogCi1QYXNzT3duUHRyPFBhc3RlYm9h
cmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpCitzdGQ6OnVuaXF1ZV9wdHI8
UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlUHJpdmF0ZSgpCiB7Ci0gICAgcmV0dXJuIGNy
ZWF0ZShndGtfY2xpcGJvYXJkX2dldChHREtfU0VMRUNUSU9OX0NMSVBCT0FSRCkpOwotfQotCi1Q
YXNzT3duUHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckdsb2JhbFNlbGVjdGlv
bigpCi17Ci0gICAgcmV0dXJuIGNyZWF0ZShndGtfY2xpcGJvYXJkX2dldChHREtfU0VMRUNUSU9O
X1BSSU1BUlkpKTsKLX0KLQotUGFzc093blB0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVh
dGVQcml2YXRlKCkKLXsKLSAgICByZXR1cm4gY3JlYXRlKERhdGFPYmplY3RHdGs6OmNyZWF0ZSgp
KTsKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxQYXN0ZWJvYXJkPihEYXRhT2JqZWN0R3Rr
OjpjcmVhdGUoKSk7CiB9CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotUGFzc093blB0cjxQ
YXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcCgpCitzdGQ6OnVuaXF1
ZV9wdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AoKQogewot
ICAgIHJldHVybiBjcmVhdGUoRGF0YU9iamVjdEd0azo6Y3JlYXRlKCkpOworICAgIHJldHVybiBz
dGQ6Om1ha2VfdW5pcXVlPFBhc3RlYm9hcmQ+KERhdGFPYmplY3RHdGs6OmNyZWF0ZSgpKTsKIH0K
IAotUGFzc093blB0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJv
cChjb25zdCBEcmFnRGF0YSYgZHJhZ0RhdGEpCitzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4g
UGFzdGVib2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AoY29uc3QgRHJhZ0RhdGEmIGRyYWdEYXRh
KQogewotICAgIHJldHVybiBjcmVhdGUoZHJhZ0RhdGEucGxhdGZvcm1EYXRhKCkpOworICAgIHJl
dHVybiBzdGQ6Om1ha2VfdW5pcXVlPFBhc3RlYm9hcmQ+KGRyYWdEYXRhLnBsYXRmb3JtRGF0YSgp
KTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mv
UGFzdGVib2FyZElPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QYXN0ZWJvYXJk
SU9TLm1tCmluZGV4IDdkMWU5NmRkZTk1MGMyNWM2YTE3NDIwMTZlOGNmNjE3OGU1ZTU5NDkuLjY2
NDk2NDcwYWRiN2VjMWU4NjFjODdlYjI5MzllODlhMWRkOTIxNGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QYXN0ZWJvYXJkSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2lvcy9QYXN0ZWJvYXJkSU9TLm1tCkBAIC0xMjEsMTQgKzEyMSwxNCBAQCBQ
YXN0ZWJvYXJkOjpQYXN0ZWJvYXJkKCkKIHsKIH0KIAotUGFzc093blB0cjxQYXN0ZWJvYXJkPiBQ
YXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKQorc3RkOjp1bmlxdWVfcHRyPFBhc3Rl
Ym9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpCiB7Ci0gICAgcmV0dXJu
IGFkb3B0UHRyKG5ldyBQYXN0ZWJvYXJkKTsKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxQ
YXN0ZWJvYXJkPigpOwogfQogCi1QYXNzT3duUHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNy
ZWF0ZVByaXZhdGUoKQorc3RkOjp1bmlxdWVfcHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNy
ZWF0ZVByaXZhdGUoKQogewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgUGFzdGVib2FyZCk7Cisg
ICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8UGFzdGVib2FyZD4oKTsKIH0KIAogdm9pZCBQYXN0
ZWJvYXJkOjp3cml0ZShjb25zdCBQYXN0ZWJvYXJkV2ViQ29udGVudCYgY29udGVudCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bhc3RlYm9hcmRNYWMubW0KaW5kZXggNTAxYTM4Y2E1
NzI5ZWNiN2E5ODE2NDQ5NDdkNzFkMzI3ZjFmMmY0Zi4uMGI0ZmE5Y2UwYTI2ZWQ4ZmU1ZjFhYmJm
NTAxZGIwNzNjMjE3NjA5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L1Bhc3RlYm9hcmRNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bhc3Rl
Ym9hcmRNYWMubW0KQEAgLTEyMywzMCArMTIzLDI1IEBAIFBhc3RlYm9hcmQ6OlBhc3RlYm9hcmQo
Y29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkKICAgICBBU1NFUlQocGFzdGVib2FyZE5hbWUp
OwogfQogCi1QYXNzT3duUHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZShjb25zdCBT
dHJpbmcmIHBhc3RlYm9hcmROYW1lKQorc3RkOjp1bmlxdWVfcHRyPFBhc3RlYm9hcmQ+IFBhc3Rl
Ym9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5l
dyBQYXN0ZWJvYXJkKHBhc3RlYm9hcmROYW1lKSk7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlx
dWU8UGFzdGVib2FyZD4oTlNHZW5lcmFsUGJvYXJkKTsKIH0KIAotUGFzc093blB0cjxQYXN0ZWJv
YXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKQorc3RkOjp1bmlxdWVfcHRy
PFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZVByaXZhdGUoKQogewotICAgIHJldHVybiBj
cmVhdGUoTlNHZW5lcmFsUGJvYXJkKTsKLX0KLQotUGFzc093blB0cjxQYXN0ZWJvYXJkPiBQYXN0
ZWJvYXJkOjpjcmVhdGVQcml2YXRlKCkKLXsKLSAgICByZXR1cm4gY3JlYXRlKHBsYXRmb3JtU3Ry
YXRlZ2llcygpLT5wYXN0ZWJvYXJkU3RyYXRlZ3koKS0+dW5pcXVlTmFtZSgpKTsKKyAgICByZXR1
cm4gc3RkOjptYWtlX3VuaXF1ZTxQYXN0ZWJvYXJkPihwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFz
dGVib2FyZFN0cmF0ZWd5KCktPnVuaXF1ZU5hbWUoKSk7CiB9CiAKICNpZiBFTkFCTEUoRFJBR19T
VVBQT1JUKQotUGFzc093blB0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFn
QW5kRHJvcCgpCitzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRl
Rm9yRHJhZ0FuZERyb3AoKQogewotICAgIHJldHVybiBjcmVhdGUoTlNEcmFnUGJvYXJkKTsKKyAg
ICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxQYXN0ZWJvYXJkPihOU0RyYWdQYm9hcmQpOwogfQog
Ci1QYXNzT3duUHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckRyYWdBbmREcm9w
KGNvbnN0IERyYWdEYXRhJiBkcmFnRGF0YSkKK3N0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBQ
YXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcChjb25zdCBEcmFnRGF0YSYgZHJhZ0RhdGEp
CiB7Ci0gICAgcmV0dXJuIGNyZWF0ZShkcmFnRGF0YS5wYXN0ZWJvYXJkTmFtZSgpKTsKKyAgICBy
ZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxQYXN0ZWJvYXJkPihkcmFnRGF0YS5wYXN0ZWJvYXJkTmFt
ZSgpKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93
aW4vUGFzdGVib2FyZFdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGFzdGVi
b2FyZFdpbi5jcHAKaW5kZXggN2FlZTE0MTEzYzRjN2Y2OTAyNTA0ZDgxNWQxMjBkZjU2YjRmNGEy
ZS4uMGRjYTBhZWRkMDdmMDZmOWY5MjkwYWE1Njk0ZmVmNGEzNmM0ZjkyYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1Bhc3RlYm9hcmRXaW4uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNwcApAQCAtOTAsMzcgKzkwLDM3
IEBAIHN0YXRpYyBMUkVTVUxUIENBTExCQUNLIFBhc3RlYm9hcmRPd25lclduZFByb2MoSFdORCBo
V25kLCBVSU5UIG1lc3NhZ2UsIFdQQVJBTSB3CiAgICAgcmV0dXJuIGxyZXN1bHQ7CiB9CiAKLVBh
c3NPd25QdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9yQ29weUFuZFBhc3RlKCkK
K3N0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5k
UGFzdGUoKQogewotICAgIE93blB0cjxQYXN0ZWJvYXJkPiBwYXN0ZWJvYXJkID0gYWRvcHRQdHIo
bmV3IFBhc3RlYm9hcmQpOworICAgIHN0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBwYXN0ZWJv
YXJkID0gc3RkOjptYWtlX3VuaXF1ZTxQYXN0ZWJvYXJkPigpOwogICAgIENPTVB0cjxJRGF0YU9i
amVjdD4gY2xpcGJvYXJkRGF0YTsKICAgICBpZiAoIVNVQ0NFRURFRChPbGVHZXRDbGlwYm9hcmQo
JmNsaXBib2FyZERhdGEpKSkKICAgICAgICAgY2xpcGJvYXJkRGF0YSA9IDA7CiAgICAgcGFzdGVi
b2FyZC0+c2V0RXh0ZXJuYWxEYXRhT2JqZWN0KGNsaXBib2FyZERhdGEuZ2V0KCkpOwotICAgIHJl
dHVybiBwYXN0ZWJvYXJkLnJlbGVhc2UoKTsKKyAgICByZXR1cm4gcGFzdGVib2FyZDsKIH0KIAot
UGFzc093blB0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVQcml2YXRlKCkKK3N0ZDo6
dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVQcml2YXRlKCkKIHsKICAg
ICAvLyBXaW5kb3dzIGhhcyBubyAiUHJpdmF0ZSBwYXN0ZWJvYXJkIiBjb25jZXB0LgogICAgIHJl
dHVybiBjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKTsKIH0KIAogI2lmIEVOQUJMRShEUkFHX1NVUFBP
UlQpCi1QYXNzT3duUHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckRyYWdBbmRE
cm9wKCkKK3N0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JE
cmFnQW5kRHJvcCgpCiB7CiAgICAgQ09NUHRyPFdDRGF0YU9iamVjdD4gZGF0YU9iamVjdDsKICAg
ICBXQ0RhdGFPYmplY3Q6OmNyZWF0ZUluc3RhbmNlKCZkYXRhT2JqZWN0KTsKLSAgICByZXR1cm4g
YWRvcHRQdHIobmV3IFBhc3RlYm9hcmQoZGF0YU9iamVjdC5nZXQoKSkpOworICAgIHJldHVybiBz
dGQ6Om1ha2VfdW5pcXVlPFBhc3RlYm9hcmQ+KGRhdGFPYmplY3QuZ2V0KCkpOwogfQogCiAvLyBz
dGF0aWMKLVBhc3NPd25QdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9yRHJhZ0Fu
ZERyb3AoY29uc3QgRHJhZ0RhdGEmIGRyYWdEYXRhKQorc3RkOjp1bmlxdWVfcHRyPFBhc3RlYm9h
cmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckRyYWdBbmREcm9wKGNvbnN0IERyYWdEYXRhJiBkcmFn
RGF0YSkKIHsKICAgICBpZiAoZHJhZ0RhdGEucGxhdGZvcm1EYXRhKCkpCi0gICAgICAgIHJldHVy
biBhZG9wdFB0cihuZXcgUGFzdGVib2FyZChkcmFnRGF0YS5wbGF0Zm9ybURhdGEoKSkpOworICAg
ICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxQYXN0ZWJvYXJkPihkcmFnRGF0YS5wbGF0Zm9y
bURhdGEoKSk7CiAgICAgLy8gRklYTUU6IFNob3VsZCBhZGQgYSBjb25zdCBvdmVybG9hZCBvZiBk
cmFnRGF0YU1hcCBzbyB3ZSBkb24ndCBuZWVkIGEgY29uc3RfY2FzdCBoZXJlLgotICAgIHJldHVy
biBhZG9wdFB0cihuZXcgUGFzdGVib2FyZChjb25zdF9jYXN0PERyYWdEYXRhJj4oZHJhZ0RhdGEp
LmRyYWdEYXRhTWFwKCkpKTsKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxQYXN0ZWJvYXJk
Pihjb25zdF9jYXN0PERyYWdEYXRhJj4oZHJhZ0RhdGEpLmRyYWdEYXRhTWFwKCkpOwogfQogI2Vu
ZGlmCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>242163</attachid>
            <date>2014-11-24 08:11:14 -0800</date>
            <delta_ts>2014-11-24 08:28:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-139019-20141125011133.patch</filename>
            <type>text/plain</type>
            <size>16358</size>
            <attacher name="Joonghun Park">jh718.park</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc2NTE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTU3ZmFmMTE0MGYyYzAz
YmEwMjMzMjRiNTBhYzhhOWQwMmJiMDE5Mi4uZGY0NDNlZmQ2ZTEyZmZhYTExZDg1YWY1YWJhNzlk
YWQyNTllZjE3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDE0LTExLTI0ICBKb29u
Z2h1biBQYXJrICA8amg3MTgucGFya0BzYW1zdW5nLmNvbT4KKworICAgICAgICBVc2Ugc3RkOjp1
bmlxdWVfcHRyIGluc3RlYWQgb2YgUGFzc093blB0cnxPd25QdHIgZm9yIFBhc3RlYm9hcmQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzOTAxOQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0
cywgbm8gYmVoYXZpb3IgY2hhbmdlcy4KKworICAgICAgICAqIGRvbS9EYXRhVHJhbnNmZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRyYW5zZmVyOjpEYXRhVHJhbnNmZXIpOgorICAgICAg
ICAqIGRvbS9EYXRhVHJhbnNmZXIuaDoKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmRpc3BhdGNoQ1BQRXZlbnQpOgorICAgICAgICAqIHBh
Z2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxl
cjo6Y3JlYXRlRHJhZ2dpbmdEYXRhVHJhbnNmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL1Bhc3Rl
Ym9hcmQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvUGFzdGVib2FyZEVmbC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6Y3JlYXRlUHJpdmF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcCk6CisgICAgICAgICogcGxhdGZvcm0v
Z3RrL1Bhc3RlYm9hcmRHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6Y3Jl
YXRlRm9yQ29weUFuZFBhc3RlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OmNyZWF0
ZUZvckdsb2JhbFNlbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpjcmVh
dGVQcml2YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OmNyZWF0ZUZvckRyYWdB
bmREcm9wKToKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OmNyZWF0ZSk6IERlbGV0ZWQu
CisgICAgICAgICogcGxhdGZvcm0vaW9zL1Bhc3RlYm9hcmRJT1MubW06CisgICAgICAgIChXZWJD
b3JlOjpQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6UGFzdGVib2FyZDo6Y3JlYXRlUHJpdmF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Bh
c3RlYm9hcmRNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpjcmVhdGVGb3JD
b3B5QW5kUGFzdGUpOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6Y3JlYXRlUHJpdmF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcCk6
CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpjcmVhdGUpOiBEZWxldGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBh
c3RlYm9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSk6CisgICAgICAgIChXZWJDb3JlOjpQYXN0
ZWJvYXJkOjpjcmVhdGVQcml2YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OmNy
ZWF0ZUZvckRyYWdBbmREcm9wKToKKwogMjAxNC0xMS0yNCAgSm9hbm1hcmllIERpZ2dzICA8amRp
Z2dzQGlnYWxpYS5jb20+CiAKICAgICAgICAgQVg6IFtBVEtdIFVuc2tpcCB0aGUgc2tpcHBlZCBB
VEsgdGVzdHMgaW4gcm9sZXMtZXhwb3NlZC5odG1sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRGF0YVRyYW5zZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXIu
Y3BwCmluZGV4IGZlMjFhZmZmZjM1OTkzYTlmZTQ5MTg1YjMyNTgwMzgyMjc1OTM4YzIuLjM4NGM4
NWYyNjhmMmIwYTVhMmExNWZjMTM0MmQ5MDcxNDg1ODI2Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRh
VHJhbnNmZXIuY3BwCkBAIC01NSw5ICs1NSw5IEBAIHByaXZhdGU6CiAKICNlbmRpZgogCi1EYXRh
VHJhbnNmZXI6OkRhdGFUcmFuc2ZlcihEYXRhVHJhbnNmZXJBY2Nlc3NQb2xpY3kgcG9saWN5LCBQ
YXNzT3duUHRyPFBhc3RlYm9hcmQ+IHBhc3RlYm9hcmQsIFR5cGUgdHlwZSwgYm9vbCBmb3JGaWxl
RHJhZykKK0RhdGFUcmFuc2Zlcjo6RGF0YVRyYW5zZmVyKERhdGFUcmFuc2ZlckFjY2Vzc1BvbGlj
eSBwb2xpY3ksIHN0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBwYXN0ZWJvYXJkLCBUeXBlIHR5
cGUsIGJvb2wgZm9yRmlsZURyYWcpCiAgICAgOiBtX3BvbGljeShwb2xpY3kpCi0gICAgLCBtX3Bh
c3RlYm9hcmQocGFzdGVib2FyZCkKKyAgICAsIG1fcGFzdGVib2FyZChXVEY6Om1vdmUocGFzdGVi
b2FyZCkpCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKICAgICAsIG1fZm9yRHJhZyh0eXBlICE9
IENvcHlBbmRQYXN0ZSkKICAgICAsIG1fZm9yRmlsZURyYWcoZm9yRmlsZURyYWcpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRGF0YVRyYW5zZmVyLmgKaW5kZXggOWQ5NjdhNjUzNTkwYTdjNWY3MDk4MzAyZGZjZjE0ZmRl
ODhhNDEwZS4uY2E4M2I5ZjlmZjU0MzQ1Y2Q3YmU3MjM3NDMxOWI2ZDA2ZTRmOTM2YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9EYXRhVHJhbnNmZXIuaApAQCAtOTksMTQgKzk5LDE0IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIGVudW0gVHlwZSB7IENvcHlBbmRQYXN0ZSwg
RHJhZ0FuZERyb3AgfTsKLSAgICAgICAgRGF0YVRyYW5zZmVyKERhdGFUcmFuc2ZlckFjY2Vzc1Bv
bGljeSwgUGFzc093blB0cjxQYXN0ZWJvYXJkPiwgVHlwZSA9IENvcHlBbmRQYXN0ZSwgYm9vbCBm
b3JGaWxlRHJhZyA9IGZhbHNlKTsKKyAgICAgICAgRGF0YVRyYW5zZmVyKERhdGFUcmFuc2ZlckFj
Y2Vzc1BvbGljeSwgc3RkOjp1bmlxdWVfcHRyPFBhc3RlYm9hcmQ+LCBUeXBlID0gQ29weUFuZFBh
c3RlLCBib29sIGZvckZpbGVEcmFnID0gZmFsc2UpOwogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9S
VCkKICAgICAgICAgYm9vbCBjYW5TZXREcmFnSW1hZ2UoKSBjb25zdDsKICNlbmRpZgogCiAgICAg
ICAgIERhdGFUcmFuc2ZlckFjY2Vzc1BvbGljeSBtX3BvbGljeTsKLSAgICAgICAgT3duUHRyPFBh
c3RlYm9hcmQ+IG1fcGFzdGVib2FyZDsKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFBhc3RlYm9h
cmQ+IG1fcGFzdGVib2FyZDsKIAogICAgICAgICBtdXRhYmxlIFJlZlB0cjxGaWxlTGlzdD4gbV9m
aWxlTGlzdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4IGVkNjNhMjg3M2YwZjhm
N2IxM2ZiNTg4ZjMzMzFjMDA3N2U1ODU0Y2MuLjE1YmU4NzBiZDZhZTNiYjZlZWZiODIzYzJjMzA1
NTRiMDQ0NjlkODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKQEAgLTg1Nyw3ICs4NTcs
NyBAQCBib29sIEVkaXRvcjo6ZGlzcGF0Y2hDUFBFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2
ZW50VHlwZSwgRGF0YVRyYW5zZmVyQWNjZXNzUAogICAgIHRhcmdldC0+ZGlzcGF0Y2hFdmVudChl
dmVudCwgSUdOT1JFX0VYQ0VQVElPTik7CiAgICAgYm9vbCBub0RlZmF1bHRQcm9jZXNzaW5nID0g
ZXZlbnQtPmRlZmF1bHRQcmV2ZW50ZWQoKTsKICAgICBpZiAobm9EZWZhdWx0UHJvY2Vzc2luZyAm
JiBwb2xpY3kgPT0gRGF0YVRyYW5zZmVyQWNjZXNzUG9saWN5OjpXcml0YWJsZSkgewotICAgICAg
ICBPd25QdHI8UGFzdGVib2FyZD4gcGFzdGVib2FyZCA9IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNv
cHlBbmRQYXN0ZSgpOworICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4gcGFzdGVi
b2FyZCA9IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpOwogICAgICAgICBwYXN0
ZWJvYXJkLT5jbGVhcigpOwogICAgICAgICBwYXN0ZWJvYXJkLT53cml0ZVBhc3RlYm9hcmQoZGF0
YVRyYW5zZmVyLT5wYXN0ZWJvYXJkKCkpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFj
L0V2ZW50SGFuZGxlck1hYy5tbQppbmRleCA4YmU5ZjIyYWM5OTFhYWQ5NzM2Njg1YzY1NjFkYjAw
YmZlNGVmNmVjLi44MjVhOWNlNjgyNjVjMTM4ZGE3ODEwMGZkYjJjZDg3OWMyMTc5MWFkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tCkBAIC02ODEsNyArNjgx
LDcgQEAgUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXI+IEV2ZW50SGFuZGxlcjo6Y3JlYXRlRHJhZ2dp
bmdEYXRhVHJhbnNmZXIoKSBjb25zdAogewogICAgIC8vIE11c3QgYmUgZG9uZSBiZWZvcmUgb25k
cmFnc3RhcnQgYWRkcyB0eXBlcyBhbmQgZGF0YSB0byB0aGUgcGJvYXJkLAogICAgIC8vIGFsc28g
ZG9uZSBmb3Igc2VjdXJpdHksIGFzIGl0IGVyYXNlcyBkYXRhIGZyb20gdGhlIGxhc3QgZHJhZy4K
LSAgICBPd25QdHI8UGFzdGVib2FyZD4gcGFzdGVib2FyZCA9IFBhc3RlYm9hcmQ6OmNyZWF0ZShO
U0RyYWdQYm9hcmQpOworICAgIHN0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBwYXN0ZWJvYXJk
ID0gc3RkOjptYWtlX3VuaXF1ZTxQYXN0ZWJvYXJkPihOU0RyYWdQYm9hcmQpOwogICAgIHBhc3Rl
Ym9hcmQtPmNsZWFyKCk7CiAgICAgcmV0dXJuIERhdGFUcmFuc2Zlcjo6Y3JlYXRlRm9yRHJhZ0Fu
ZERyb3AoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9h
cmQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmQuaAppbmRleCA5NDJmOWU2
N2QwZGVjOGE0ZmYyMjU1MTdkOTQwNTdlZTU5OTIyOTIwLi5jOTBjYzk4YWM1OTY3YmUwNzgxYWJi
MThhNzVhNWYzYjQ0NTRmNWFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Q
YXN0ZWJvYXJkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZC5oCkBA
IC0xMzksMTAgKzEzOSwyMiBAQCBzdHJ1Y3QgUGFzdGVib2FyZFBsYWluVGV4dCB7CiBjbGFzcyBQ
YXN0ZWJvYXJkIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShQYXN0ZWJvYXJkKTsgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CisgICAgUGFzdGVib2FyZCgpOwogICAgIH5QYXN0
ZWJvYXJkKCk7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUGFzc093blB0cjxQYXN0ZWJv
YXJkPiBjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKTsKLSAgICBzdGF0aWMgUGFzc093blB0cjxQYXN0
ZWJvYXJkPiBjcmVhdGVQcml2YXRlKCk7IC8vIFRlbXBvcmFyeSBwYXN0ZWJvYXJkLiBDYW4gcHV0
IGRhdGEgb24gdGhpcyBhbmQgdGhlbiB3cml0ZSB0byBhbm90aGVyIHBhc3RlYm9hcmQgd2l0aCB3
cml0ZVBhc3RlYm9hcmQuCisjaWYgUExBVEZPUk0oR1RLKQorICAgIFBhc3RlYm9hcmQoUGFzc1Jl
ZlB0cjxEYXRhT2JqZWN0R3RrPik7CisgICAgUGFzdGVib2FyZChHdGtDbGlwYm9hcmQqKTsKKyNl
bmRpZgorCisjaWYgUExBVEZPUk0oV0lOKQorICAgIGV4cGxpY2l0IFBhc3RlYm9hcmQoSURhdGFP
YmplY3QqKTsKKyAgICBleHBsaWNpdCBQYXN0ZWJvYXJkKFdDRGF0YU9iamVjdCopOworICAgIGV4
cGxpY2l0IFBhc3RlYm9hcmQoY29uc3QgRHJhZ0RhdGFNYXAmKTsKKyNlbmRpZgorCisgICAgV0VC
Q09SRV9FWFBPUlQgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBjcmVhdGVGb3JD
b3B5QW5kUGFzdGUoKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFBhc3RlYm9hcmQ+IGNy
ZWF0ZVByaXZhdGUoKTsgLy8gVGVtcG9yYXJ5IHBhc3RlYm9hcmQuIENhbiBwdXQgZGF0YSBvbiB0
aGlzIGFuZCB0aGVuIHdyaXRlIHRvIGFub3RoZXIgcGFzdGVib2FyZCB3aXRoIHdyaXRlUGFzdGVi
b2FyZC4KIAogICAgIGJvb2wgaGFzRGF0YSgpOwogICAgIFZlY3RvcjxTdHJpbmc+IHR5cGVzKCk7
CkBAIC0xNjgsOCArMTgwLDggQEAgcHVibGljOgogICAgIHZvaWQgd3JpdGVQYXN0ZWJvYXJkKGNv
bnN0IFBhc3RlYm9hcmQmIHNvdXJjZVBhc3RlYm9hcmQpOwogCiAjaWYgRU5BQkxFKERSQUdfU1VQ
UE9SVCkKLSAgICBzdGF0aWMgUGFzc093blB0cjxQYXN0ZWJvYXJkPiBjcmVhdGVGb3JEcmFnQW5k
RHJvcCgpOwotICAgIHN0YXRpYyBQYXNzT3duUHRyPFBhc3RlYm9hcmQ+IGNyZWF0ZUZvckRyYWdB
bmREcm9wKGNvbnN0IERyYWdEYXRhJik7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxQYXN0
ZWJvYXJkPiBjcmVhdGVGb3JEcmFnQW5kRHJvcCgpOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9w
dHI8UGFzdGVib2FyZD4gY3JlYXRlRm9yRHJhZ0FuZERyb3AoY29uc3QgRHJhZ0RhdGEmKTsKIAog
ICAgIHZvaWQgc2V0RHJhZ0ltYWdlKERyYWdJbWFnZVJlZiwgY29uc3QgSW50UG9pbnQmIGhvdFNw
b3QpOwogI2VuZGlmCkBAIC0xODEsMTAgKzE5Myw4IEBAIHB1YmxpYzoKICNlbmRpZgogCiAjaWYg
UExBVEZPUk0oR1RLKQotICAgIHN0YXRpYyBQYXNzT3duUHRyPFBhc3RlYm9hcmQ+IGNyZWF0ZShQ
YXNzUmVmUHRyPERhdGFPYmplY3RHdGs+KTsKLSAgICBzdGF0aWMgUGFzc093blB0cjxQYXN0ZWJv
YXJkPiBjcmVhdGUoR3RrQ2xpcGJvYXJkKik7CiAgICAgUGFzc1JlZlB0cjxEYXRhT2JqZWN0R3Rr
PiBkYXRhT2JqZWN0KCkgY29uc3Q7Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8UGFzdGVib2FyZD4g
Y3JlYXRlRm9yR2xvYmFsU2VsZWN0aW9uKCk7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxQ
YXN0ZWJvYXJkPiBjcmVhdGVGb3JHbG9iYWxTZWxlY3Rpb24oKTsKICNlbmRpZgogCiAjaWYgUExB
VEZPUk0oSU9TKQpAQCAtMTk0LDcgKzIwNCw2IEBAIHB1YmxpYzoKIAogI2lmIFBMQVRGT1JNKE1B
QykKICAgICBleHBsaWNpdCBQYXN0ZWJvYXJkKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUp
OwotICAgIHN0YXRpYyBQYXNzT3duUHRyPFBhc3RlYm9hcmQ+IGNyZWF0ZShjb25zdCBTdHJpbmcm
IHBhc3RlYm9hcmROYW1lKTsKIAogICAgIGNvbnN0IFN0cmluZyYgbmFtZSgpIGNvbnN0IHsgcmV0
dXJuIG1fcGFzdGVib2FyZE5hbWU7IH0KICNlbmRpZgpAQCAtMjA5LDE4ICsyMTgsNyBAQCBwdWJs
aWM6CiAjZW5kaWYKIAogcHJpdmF0ZToKLSAgICBQYXN0ZWJvYXJkKCk7Ci0KLSNpZiBQTEFURk9S
TShHVEspCi0gICAgUGFzdGVib2FyZChQYXNzUmVmUHRyPERhdGFPYmplY3RHdGs+KTsKLSAgICBQ
YXN0ZWJvYXJkKEd0a0NsaXBib2FyZCopOwotI2VuZGlmCi0KICNpZiBQTEFURk9STShXSU4pCi0g
ICAgZXhwbGljaXQgUGFzdGVib2FyZChJRGF0YU9iamVjdCopOwotICAgIGV4cGxpY2l0IFBhc3Rl
Ym9hcmQoV0NEYXRhT2JqZWN0Kik7Ci0gICAgZXhwbGljaXQgUGFzdGVib2FyZChjb25zdCBEcmFn
RGF0YU1hcCYpOwotCiAgICAgdm9pZCBmaW5pc2hDcmVhdGluZ1Bhc3RlYm9hcmQoKTsKICAgICB2
b2lkIHdyaXRlUmFuZ2VUb0RhdGFPYmplY3QoUmFuZ2UmLCBGcmFtZSYpOyAvLyBGSVhNRTogTGF5
ZXJpbmcgdmlvbGF0aW9uLgogICAgIHZvaWQgd3JpdGVVUkxUb0RhdGFPYmplY3QoY29uc3QgVVJM
JiwgY29uc3QgU3RyaW5nJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9l
ZmwvUGFzdGVib2FyZEVmbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUGFzdGVi
b2FyZEVmbC5jcHAKaW5kZXggOGEwODEwZmUxMTU0MzJjYTUwYjYzY2YwNmNjNTdhMDZkYWIzOTMz
Yi4uM2RhODFmNWMxNjA0NGIyM2IwZWUyOWVlNWQxZjcxMzQxY2YwYmRiYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1Bhc3RlYm9hcmRFZmwuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9QYXN0ZWJvYXJkRWZsLmNwcApAQCAtMjQsNyArMjQsNiBA
QAogI2luY2x1ZGUgIlBhc3RlYm9hcmQuaCIKIAogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgi
Ci0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBA
IC00OCwyNSArNDcsMjUgQEAgYm9vbCBQYXN0ZWJvYXJkOjpjYW5TbWFydFJlcGxhY2UoKQogICAg
IHJldHVybiBmYWxzZTsKIH0KIAotUGFzc093blB0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpj
cmVhdGVGb3JDb3B5QW5kUGFzdGUoKQorc3RkOjp1bmlxdWVfcHRyPFBhc3RlYm9hcmQ+IFBhc3Rl
Ym9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5l
dyBQYXN0ZWJvYXJkKTsKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxQYXN0ZWJvYXJkPigp
OwogfQogCi1QYXNzT3duUHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZVByaXZhdGUo
KQorc3RkOjp1bmlxdWVfcHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZVByaXZhdGUo
KQogewotICAgIHJldHVybiBjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKTsKKyAgICByZXR1cm4gc3Rk
OjptYWtlX3VuaXF1ZTxQYXN0ZWJvYXJkPigpOwogfQogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9S
VCkKLVBhc3NPd25QdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERy
b3AoKQorc3RkOjp1bmlxdWVfcHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckRy
YWdBbmREcm9wKCkKIHsKLSAgICByZXR1cm4gY3JlYXRlRm9yQ29weUFuZFBhc3RlKCk7CisgICAg
cmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8UGFzdGVib2FyZD4oKTsKIH0KIAotUGFzc093blB0cjxQ
YXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcChjb25zdCBEcmFnRGF0
YSYpCitzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9yRHJh
Z0FuZERyb3AoY29uc3QgRHJhZ0RhdGEmKQogewotICAgIHJldHVybiBjcmVhdGVGb3JDb3B5QW5k
UGFzdGUoKTsKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxQYXN0ZWJvYXJkPigpOwogfQog
I2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QYXN0ZWJv
YXJkR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkR3RrLmNw
cAppbmRleCAwYWFkZDVjZTQ5NjlhZmUxZDZhMTRmOWYzYzIxOTEzOGY0ODEyMTg3Li5hNDMwNzYw
ZGUxMDM2NjJkMTFkMTU1ZDUxODVlMjNmZTUxMzJkODNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEd0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRHdGsuY3BwCkBAIC0yNiw3ICsyNiw2IEBACiAjaW5jbHVk
ZSAiVVJMLmgiCiAjaW5jbHVkZSAiUGFzdGVib2FyZEhlbHBlci5oIgogI2luY2x1ZGUgPGd0ay9n
dGsuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKQEAgLTM5LDQwICszOCwzMCBAQCBlbnVtIENsaXBib2FyZERhdGFUeXBlIHsKICAgICBDbGlw
Ym9hcmREYXRhVHlwZVVua25vd24KIH07CiAKLVBhc3NPd25QdHI8UGFzdGVib2FyZD4gUGFzdGVi
b2FyZDo6Y3JlYXRlKEd0a0NsaXBib2FyZCogZ3RrQ2xpcGJvYXJkKQorc3RkOjp1bmlxdWVfcHRy
PFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpCiB7Ci0gICAg
cmV0dXJuIGFkb3B0UHRyKG5ldyBQYXN0ZWJvYXJkKGd0a0NsaXBib2FyZCkpOworICAgIHJldHVy
biBzdGQ6Om1ha2VfdW5pcXVlPFBhc3RlYm9hcmQ+KGd0a19jbGlwYm9hcmRfZ2V0KEdES19TRUxF
Q1RJT05fQ0xJUEJPQVJEKSk7CiB9CiAKLVBhc3NPd25QdHI8UGFzdGVib2FyZD4gUGFzdGVib2Fy
ZDo6Y3JlYXRlKFBhc3NSZWZQdHI8RGF0YU9iamVjdEd0az4gZGF0YU9iamVjdCkKK3N0ZDo6dW5p
cXVlX3B0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JHbG9iYWxTZWxlY3Rpb24o
KQogewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgUGFzdGVib2FyZChkYXRhT2JqZWN0KSk7Cisg
ICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8UGFzdGVib2FyZD4oZ3RrX2NsaXBib2FyZF9nZXQo
R0RLX1NFTEVDVElPTl9QUklNQVJZKSk7CiB9CiAKLVBhc3NPd25QdHI8UGFzdGVib2FyZD4gUGFz
dGVib2FyZDo6Y3JlYXRlRm9yQ29weUFuZFBhc3RlKCkKK3N0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJv
YXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVQcml2YXRlKCkKIHsKLSAgICByZXR1cm4gY3JlYXRlKGd0
a19jbGlwYm9hcmRfZ2V0KEdES19TRUxFQ1RJT05fQ0xJUEJPQVJEKSk7Ci19Ci0KLVBhc3NPd25Q
dHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9yR2xvYmFsU2VsZWN0aW9uKCkKLXsK
LSAgICByZXR1cm4gY3JlYXRlKGd0a19jbGlwYm9hcmRfZ2V0KEdES19TRUxFQ1RJT05fUFJJTUFS
WSkpOwotfQotCi1QYXNzT3duUHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZVByaXZh
dGUoKQotewotICAgIHJldHVybiBjcmVhdGUoRGF0YU9iamVjdEd0azo6Y3JlYXRlKCkpOworICAg
IHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFBhc3RlYm9hcmQ+KERhdGFPYmplY3RHdGs6OmNyZWF0
ZSgpKTsKIH0KIAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi1QYXNzT3duUHRyPFBhc3RlYm9h
cmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckRyYWdBbmREcm9wKCkKK3N0ZDo6dW5pcXVlX3B0cjxQ
YXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcCgpCiB7Ci0gICAgcmV0
dXJuIGNyZWF0ZShEYXRhT2JqZWN0R3RrOjpjcmVhdGUoKSk7CisgICAgcmV0dXJuIHN0ZDo6bWFr
ZV91bmlxdWU8UGFzdGVib2FyZD4oRGF0YU9iamVjdEd0azo6Y3JlYXRlKCkpOwogfQogCi1QYXNz
T3duUHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckRyYWdBbmREcm9wKGNvbnN0
IERyYWdEYXRhJiBkcmFnRGF0YSkKK3N0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJv
YXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcChjb25zdCBEcmFnRGF0YSYgZHJhZ0RhdGEpCiB7Ci0g
ICAgcmV0dXJuIGNyZWF0ZShkcmFnRGF0YS5wbGF0Zm9ybURhdGEoKSk7CisgICAgcmV0dXJuIHN0
ZDo6bWFrZV91bmlxdWU8UGFzdGVib2FyZD4oZHJhZ0RhdGEucGxhdGZvcm1EYXRhKCkpOwogfQog
I2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QYXN0ZWJv
YXJkSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1Bhc3RlYm9hcmRJT1MubW0K
aW5kZXggN2QxZTk2ZGRlOTUwYzI1YzZhMTc0MjAxNmU4Y2Y2MTc4ZTVlNTk0OS4uNjY0OTY0NzBh
ZGI3ZWMxZTg2MWM4N2ViMjkzOWU4OWExZGQ5MjE0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL1Bhc3RlYm9hcmRJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW9zL1Bhc3RlYm9hcmRJT1MubW0KQEAgLTEyMSwxNCArMTIxLDE0IEBAIFBhc3RlYm9h
cmQ6OlBhc3RlYm9hcmQoKQogewogfQogCi1QYXNzT3duUHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9h
cmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpCitzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4g
UGFzdGVib2FyZDo6Y3JlYXRlRm9yQ29weUFuZFBhc3RlKCkKIHsKLSAgICByZXR1cm4gYWRvcHRQ
dHIobmV3IFBhc3RlYm9hcmQpOworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFBhc3RlYm9h
cmQ+KCk7CiB9CiAKLVBhc3NPd25QdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlUHJp
dmF0ZSgpCitzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlUHJp
dmF0ZSgpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBQYXN0ZWJvYXJkKTsKKyAgICByZXR1
cm4gc3RkOjptYWtlX3VuaXF1ZTxQYXN0ZWJvYXJkPigpOwogfQogCiB2b2lkIFBhc3RlYm9hcmQ6
OndyaXRlKGNvbnN0IFBhc3RlYm9hcmRXZWJDb250ZW50JiBjb250ZW50KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bhc3RlYm9hcmRNYWMubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbQppbmRleCA1MDFhMzhjYTU3MjllY2I3
YTk4MTY0NDk0N2Q3MWQzMjdmMWYyZjRmLi4wYjRmYTljZTBhMjZlZDhmZTVmMWFiYmY1MDFkYjA3
M2MyMTc2MDlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVi
b2FyZE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1h
Yy5tbQpAQCAtMTIzLDMwICsxMjMsMjUgQEAgUGFzdGVib2FyZDo6UGFzdGVib2FyZChjb25zdCBT
dHJpbmcmIHBhc3RlYm9hcmROYW1lKQogICAgIEFTU0VSVChwYXN0ZWJvYXJkTmFtZSk7CiB9CiAK
LVBhc3NPd25QdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlKGNvbnN0IFN0cmluZyYg
cGFzdGVib2FyZE5hbWUpCitzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6
Y3JlYXRlRm9yQ29weUFuZFBhc3RlKCkKIHsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IFBhc3Rl
Ym9hcmQocGFzdGVib2FyZE5hbWUpKTsKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxQYXN0
ZWJvYXJkPihOU0dlbmVyYWxQYm9hcmQpOwogfQogCi1QYXNzT3duUHRyPFBhc3RlYm9hcmQ+IFBh
c3RlYm9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpCitzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVi
b2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlUHJpdmF0ZSgpCiB7Ci0gICAgcmV0dXJuIGNyZWF0ZShO
U0dlbmVyYWxQYm9hcmQpOwotfQotCi1QYXNzT3duUHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6
OmNyZWF0ZVByaXZhdGUoKQotewotICAgIHJldHVybiBjcmVhdGUocGxhdGZvcm1TdHJhdGVnaWVz
KCktPnBhc3RlYm9hcmRTdHJhdGVneSgpLT51bmlxdWVOYW1lKCkpOworICAgIHJldHVybiBzdGQ6
Om1ha2VfdW5pcXVlPFBhc3RlYm9hcmQ+KHBsYXRmb3JtU3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJk
U3RyYXRlZ3koKS0+dW5pcXVlTmFtZSgpKTsKIH0KIAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQp
Ci1QYXNzT3duUHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckRyYWdBbmREcm9w
KCkKK3N0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFn
QW5kRHJvcCgpCiB7Ci0gICAgcmV0dXJuIGNyZWF0ZShOU0RyYWdQYm9hcmQpOworICAgIHJldHVy
biBzdGQ6Om1ha2VfdW5pcXVlPFBhc3RlYm9hcmQ+KE5TRHJhZ1Bib2FyZCk7CiB9CiAKLVBhc3NP
d25QdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AoY29uc3Qg
RHJhZ0RhdGEmIGRyYWdEYXRhKQorc3RkOjp1bmlxdWVfcHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9h
cmQ6OmNyZWF0ZUZvckRyYWdBbmREcm9wKGNvbnN0IERyYWdEYXRhJiBkcmFnRGF0YSkKIHsKLSAg
ICByZXR1cm4gY3JlYXRlKGRyYWdEYXRhLnBhc3RlYm9hcmROYW1lKCkpOworICAgIHJldHVybiBz
dGQ6Om1ha2VfdW5pcXVlPFBhc3RlYm9hcmQ+KGRyYWdEYXRhLnBhc3RlYm9hcmROYW1lKCkpOwog
fQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QYXN0
ZWJvYXJkV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2lu
LmNwcAppbmRleCA3YWVlMTQxMTNjNGM3ZjY5MDI1MDRkODE1ZDEyMGRmNTZiNGY0YTJlLi4wZGNh
MGFlZGQwN2YwNmY5ZjkyOTBhYTU2OTRmZWY0YTM2YzRmOTJiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS93aW4vUGFzdGVib2FyZFdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vd2luL1Bhc3RlYm9hcmRXaW4uY3BwCkBAIC05MCwzNyArOTAsMzcgQEAgc3Rh
dGljIExSRVNVTFQgQ0FMTEJBQ0sgUGFzdGVib2FyZE93bmVyV25kUHJvYyhIV05EIGhXbmQsIFVJ
TlQgbWVzc2FnZSwgV1BBUkFNIHcKICAgICByZXR1cm4gbHJlc3VsdDsKIH0KIAotUGFzc093blB0
cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKQorc3RkOjp1
bmlxdWVfcHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgp
CiB7Ci0gICAgT3duUHRyPFBhc3RlYm9hcmQ+IHBhc3RlYm9hcmQgPSBhZG9wdFB0cihuZXcgUGFz
dGVib2FyZCk7CisgICAgc3RkOjp1bmlxdWVfcHRyPFBhc3RlYm9hcmQ+IHBhc3RlYm9hcmQgPSBz
dGQ6Om1ha2VfdW5pcXVlPFBhc3RlYm9hcmQ+KCk7CiAgICAgQ09NUHRyPElEYXRhT2JqZWN0PiBj
bGlwYm9hcmREYXRhOwogICAgIGlmICghU1VDQ0VFREVEKE9sZUdldENsaXBib2FyZCgmY2xpcGJv
YXJkRGF0YSkpKQogICAgICAgICBjbGlwYm9hcmREYXRhID0gMDsKICAgICBwYXN0ZWJvYXJkLT5z
ZXRFeHRlcm5hbERhdGFPYmplY3QoY2xpcGJvYXJkRGF0YS5nZXQoKSk7Ci0gICAgcmV0dXJuIHBh
c3RlYm9hcmQucmVsZWFzZSgpOworICAgIHJldHVybiBwYXN0ZWJvYXJkOwogfQogCi1QYXNzT3du
UHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZVByaXZhdGUoKQorc3RkOjp1bmlxdWVf
cHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZVByaXZhdGUoKQogewogICAgIC8vIFdp
bmRvd3MgaGFzIG5vICJQcml2YXRlIHBhc3RlYm9hcmQiIGNvbmNlcHQuCiAgICAgcmV0dXJuIGNy
ZWF0ZUZvckNvcHlBbmRQYXN0ZSgpOwogfQogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKLVBh
c3NPd25QdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AoKQor
c3RkOjp1bmlxdWVfcHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckRyYWdBbmRE
cm9wKCkKIHsKICAgICBDT01QdHI8V0NEYXRhT2JqZWN0PiBkYXRhT2JqZWN0OwogICAgIFdDRGF0
YU9iamVjdDo6Y3JlYXRlSW5zdGFuY2UoJmRhdGFPYmplY3QpOwotICAgIHJldHVybiBhZG9wdFB0
cihuZXcgUGFzdGVib2FyZChkYXRhT2JqZWN0LmdldCgpKSk7CisgICAgcmV0dXJuIHN0ZDo6bWFr
ZV91bmlxdWU8UGFzdGVib2FyZD4oZGF0YU9iamVjdC5nZXQoKSk7CiB9CiAKIC8vIHN0YXRpYwot
UGFzc093blB0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcChj
b25zdCBEcmFnRGF0YSYgZHJhZ0RhdGEpCitzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4gUGFz
dGVib2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AoY29uc3QgRHJhZ0RhdGEmIGRyYWdEYXRhKQog
ewogICAgIGlmIChkcmFnRGF0YS5wbGF0Zm9ybURhdGEoKSkKLSAgICAgICAgcmV0dXJuIGFkb3B0
UHRyKG5ldyBQYXN0ZWJvYXJkKGRyYWdEYXRhLnBsYXRmb3JtRGF0YSgpKSk7CisgICAgICAgIHJl
dHVybiBzdGQ6Om1ha2VfdW5pcXVlPFBhc3RlYm9hcmQ+KGRyYWdEYXRhLnBsYXRmb3JtRGF0YSgp
KTsKICAgICAvLyBGSVhNRTogU2hvdWxkIGFkZCBhIGNvbnN0IG92ZXJsb2FkIG9mIGRyYWdEYXRh
TWFwIHNvIHdlIGRvbid0IG5lZWQgYSBjb25zdF9jYXN0IGhlcmUuCi0gICAgcmV0dXJuIGFkb3B0
UHRyKG5ldyBQYXN0ZWJvYXJkKGNvbnN0X2Nhc3Q8RHJhZ0RhdGEmPihkcmFnRGF0YSkuZHJhZ0Rh
dGFNYXAoKSkpOworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFBhc3RlYm9hcmQ+KGNvbnN0
X2Nhc3Q8RHJhZ0RhdGEmPihkcmFnRGF0YSkuZHJhZ0RhdGFNYXAoKSk7CiB9CiAjZW5kaWYKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>242164</attachid>
            <date>2014-11-24 08:28:58 -0800</date>
            <delta_ts>2014-12-02 10:31:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-139019-20141125012918.patch</filename>
            <type>text/plain</type>
            <size>16289</size>
            <attacher name="Joonghun Park">jh718.park</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc2NTE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTU3ZmFmMTE0MGYyYzAz
YmEwMjMzMjRiNTBhYzhhOWQwMmJiMDE5Mi4uZGY0NDNlZmQ2ZTEyZmZhYTExZDg1YWY1YWJhNzlk
YWQyNTllZjE3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDE0LTExLTI0ICBKb29u
Z2h1biBQYXJrICA8amg3MTgucGFya0BzYW1zdW5nLmNvbT4KKworICAgICAgICBVc2Ugc3RkOjp1
bmlxdWVfcHRyIGluc3RlYWQgb2YgUGFzc093blB0cnxPd25QdHIgZm9yIFBhc3RlYm9hcmQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzOTAxOQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0
cywgbm8gYmVoYXZpb3IgY2hhbmdlcy4KKworICAgICAgICAqIGRvbS9EYXRhVHJhbnNmZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRyYW5zZmVyOjpEYXRhVHJhbnNmZXIpOgorICAgICAg
ICAqIGRvbS9EYXRhVHJhbnNmZXIuaDoKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmRpc3BhdGNoQ1BQRXZlbnQpOgorICAgICAgICAqIHBh
Z2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxl
cjo6Y3JlYXRlRHJhZ2dpbmdEYXRhVHJhbnNmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL1Bhc3Rl
Ym9hcmQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvUGFzdGVib2FyZEVmbC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6Y3JlYXRlUHJpdmF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcCk6CisgICAgICAgICogcGxhdGZvcm0v
Z3RrL1Bhc3RlYm9hcmRHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6Y3Jl
YXRlRm9yQ29weUFuZFBhc3RlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OmNyZWF0
ZUZvckdsb2JhbFNlbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpjcmVh
dGVQcml2YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OmNyZWF0ZUZvckRyYWdB
bmREcm9wKToKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OmNyZWF0ZSk6IERlbGV0ZWQu
CisgICAgICAgICogcGxhdGZvcm0vaW9zL1Bhc3RlYm9hcmRJT1MubW06CisgICAgICAgIChXZWJD
b3JlOjpQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6UGFzdGVib2FyZDo6Y3JlYXRlUHJpdmF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Bh
c3RlYm9hcmRNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpjcmVhdGVGb3JD
b3B5QW5kUGFzdGUpOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6Y3JlYXRlUHJpdmF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcCk6
CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpjcmVhdGUpOiBEZWxldGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBh
c3RlYm9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSk6CisgICAgICAgIChXZWJDb3JlOjpQYXN0
ZWJvYXJkOjpjcmVhdGVQcml2YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OmNy
ZWF0ZUZvckRyYWdBbmREcm9wKToKKwogMjAxNC0xMS0yNCAgSm9hbm1hcmllIERpZ2dzICA8amRp
Z2dzQGlnYWxpYS5jb20+CiAKICAgICAgICAgQVg6IFtBVEtdIFVuc2tpcCB0aGUgc2tpcHBlZCBB
VEsgdGVzdHMgaW4gcm9sZXMtZXhwb3NlZC5odG1sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRGF0YVRyYW5zZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXIu
Y3BwCmluZGV4IGZlMjFhZmZmZjM1OTkzYTlmZTQ5MTg1YjMyNTgwMzgyMjc1OTM4YzIuLjM4NGM4
NWYyNjhmMmIwYTVhMmExNWZjMTM0MmQ5MDcxNDg1ODI2Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRh
VHJhbnNmZXIuY3BwCkBAIC01NSw5ICs1NSw5IEBAIHByaXZhdGU6CiAKICNlbmRpZgogCi1EYXRh
VHJhbnNmZXI6OkRhdGFUcmFuc2ZlcihEYXRhVHJhbnNmZXJBY2Nlc3NQb2xpY3kgcG9saWN5LCBQ
YXNzT3duUHRyPFBhc3RlYm9hcmQ+IHBhc3RlYm9hcmQsIFR5cGUgdHlwZSwgYm9vbCBmb3JGaWxl
RHJhZykKK0RhdGFUcmFuc2Zlcjo6RGF0YVRyYW5zZmVyKERhdGFUcmFuc2ZlckFjY2Vzc1BvbGlj
eSBwb2xpY3ksIHN0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBwYXN0ZWJvYXJkLCBUeXBlIHR5
cGUsIGJvb2wgZm9yRmlsZURyYWcpCiAgICAgOiBtX3BvbGljeShwb2xpY3kpCi0gICAgLCBtX3Bh
c3RlYm9hcmQocGFzdGVib2FyZCkKKyAgICAsIG1fcGFzdGVib2FyZChXVEY6Om1vdmUocGFzdGVi
b2FyZCkpCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKICAgICAsIG1fZm9yRHJhZyh0eXBlICE9
IENvcHlBbmRQYXN0ZSkKICAgICAsIG1fZm9yRmlsZURyYWcoZm9yRmlsZURyYWcpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRGF0YVRyYW5zZmVyLmgKaW5kZXggOWQ5NjdhNjUzNTkwYTdjNWY3MDk4MzAyZGZjZjE0ZmRl
ODhhNDEwZS4uY2E4M2I5ZjlmZjU0MzQ1Y2Q3YmU3MjM3NDMxOWI2ZDA2ZTRmOTM2YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9EYXRhVHJhbnNmZXIuaApAQCAtOTksMTQgKzk5LDE0IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIGVudW0gVHlwZSB7IENvcHlBbmRQYXN0ZSwg
RHJhZ0FuZERyb3AgfTsKLSAgICAgICAgRGF0YVRyYW5zZmVyKERhdGFUcmFuc2ZlckFjY2Vzc1Bv
bGljeSwgUGFzc093blB0cjxQYXN0ZWJvYXJkPiwgVHlwZSA9IENvcHlBbmRQYXN0ZSwgYm9vbCBm
b3JGaWxlRHJhZyA9IGZhbHNlKTsKKyAgICAgICAgRGF0YVRyYW5zZmVyKERhdGFUcmFuc2ZlckFj
Y2Vzc1BvbGljeSwgc3RkOjp1bmlxdWVfcHRyPFBhc3RlYm9hcmQ+LCBUeXBlID0gQ29weUFuZFBh
c3RlLCBib29sIGZvckZpbGVEcmFnID0gZmFsc2UpOwogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9S
VCkKICAgICAgICAgYm9vbCBjYW5TZXREcmFnSW1hZ2UoKSBjb25zdDsKICNlbmRpZgogCiAgICAg
ICAgIERhdGFUcmFuc2ZlckFjY2Vzc1BvbGljeSBtX3BvbGljeTsKLSAgICAgICAgT3duUHRyPFBh
c3RlYm9hcmQ+IG1fcGFzdGVib2FyZDsKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFBhc3RlYm9h
cmQ+IG1fcGFzdGVib2FyZDsKIAogICAgICAgICBtdXRhYmxlIFJlZlB0cjxGaWxlTGlzdD4gbV9m
aWxlTGlzdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4IGVkNjNhMjg3M2YwZjhm
N2IxM2ZiNTg4ZjMzMzFjMDA3N2U1ODU0Y2MuLjRiYTkyOTU4ZTUzOTJjMmE3ZDkyNWFiYmRmYzU5
ZDc5YTQ0ZmU1MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKQEAgLTg1Nyw3ICs4NTcs
NyBAQCBib29sIEVkaXRvcjo6ZGlzcGF0Y2hDUFBFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2
ZW50VHlwZSwgRGF0YVRyYW5zZmVyQWNjZXNzUAogICAgIHRhcmdldC0+ZGlzcGF0Y2hFdmVudChl
dmVudCwgSUdOT1JFX0VYQ0VQVElPTik7CiAgICAgYm9vbCBub0RlZmF1bHRQcm9jZXNzaW5nID0g
ZXZlbnQtPmRlZmF1bHRQcmV2ZW50ZWQoKTsKICAgICBpZiAobm9EZWZhdWx0UHJvY2Vzc2luZyAm
JiBwb2xpY3kgPT0gRGF0YVRyYW5zZmVyQWNjZXNzUG9saWN5OjpXcml0YWJsZSkgewotICAgICAg
ICBPd25QdHI8UGFzdGVib2FyZD4gcGFzdGVib2FyZCA9IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNv
cHlBbmRQYXN0ZSgpOworICAgICAgICBhdXRvIHBhc3RlYm9hcmQgPSBQYXN0ZWJvYXJkOjpjcmVh
dGVGb3JDb3B5QW5kUGFzdGUoKTsKICAgICAgICAgcGFzdGVib2FyZC0+Y2xlYXIoKTsKICAgICAg
ICAgcGFzdGVib2FyZC0+d3JpdGVQYXN0ZWJvYXJkKGRhdGFUcmFuc2Zlci0+cGFzdGVib2FyZCgp
KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9FdmVudEhhbmRs
ZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW0KaW5k
ZXggOGJlOWYyMmFjOTkxYWFkOTczNjY4NWM2NTYxZGIwMGJmZTRlZjZlYy4uYTJkMWNjZjNkYTY0
MDU1OTNmMzBmNDU5OTA1MWRiZDZhNzg3MDliMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFj
L0V2ZW50SGFuZGxlck1hYy5tbQpAQCAtNjgxLDcgKzY4MSw3IEBAIFBhc3NSZWZQdHI8RGF0YVRy
YW5zZmVyPiBFdmVudEhhbmRsZXI6OmNyZWF0ZURyYWdnaW5nRGF0YVRyYW5zZmVyKCkgY29uc3QK
IHsKICAgICAvLyBNdXN0IGJlIGRvbmUgYmVmb3JlIG9uZHJhZ3N0YXJ0IGFkZHMgdHlwZXMgYW5k
IGRhdGEgdG8gdGhlIHBib2FyZCwKICAgICAvLyBhbHNvIGRvbmUgZm9yIHNlY3VyaXR5LCBhcyBp
dCBlcmFzZXMgZGF0YSBmcm9tIHRoZSBsYXN0IGRyYWcuCi0gICAgT3duUHRyPFBhc3RlYm9hcmQ+
IHBhc3RlYm9hcmQgPSBQYXN0ZWJvYXJkOjpjcmVhdGUoTlNEcmFnUGJvYXJkKTsKKyAgICBhdXRv
IHBhc3RlYm9hcmQgPSBzdGQ6Om1ha2VfdW5pcXVlPFBhc3RlYm9hcmQ+KE5TRHJhZ1Bib2FyZCk7
CiAgICAgcGFzdGVib2FyZC0+Y2xlYXIoKTsKICAgICByZXR1cm4gRGF0YVRyYW5zZmVyOjpjcmVh
dGVGb3JEcmFnQW5kRHJvcCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vUGFzdGVib2FyZC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZC5oCmlu
ZGV4IDk0MmY5ZTY3ZDBkZWM4YTRmZjIyNTUxN2Q5NDA1N2VlNTk5MjI5MjAuLmM5MGNjOThhYzU5
NjdiZTA3ODFhYmIxOGE3NWE1ZjNiNDQ1NGY1YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Bhc3RlYm9hcmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0
ZWJvYXJkLmgKQEAgLTEzOSwxMCArMTM5LDIyIEBAIHN0cnVjdCBQYXN0ZWJvYXJkUGxhaW5UZXh0
IHsKIGNsYXNzIFBhc3RlYm9hcmQgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFBhc3RlYm9h
cmQpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKKyAgICBQYXN0ZWJvYXJkKCk7
CiAgICAgflBhc3RlYm9hcmQoKTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBQYXNzT3du
UHRyPFBhc3RlYm9hcmQ+IGNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpOwotICAgIHN0YXRpYyBQYXNz
T3duUHRyPFBhc3RlYm9hcmQ+IGNyZWF0ZVByaXZhdGUoKTsgLy8gVGVtcG9yYXJ5IHBhc3RlYm9h
cmQuIENhbiBwdXQgZGF0YSBvbiB0aGlzIGFuZCB0aGVuIHdyaXRlIHRvIGFub3RoZXIgcGFzdGVi
b2FyZCB3aXRoIHdyaXRlUGFzdGVib2FyZC4KKyNpZiBQTEFURk9STShHVEspCisgICAgUGFzdGVi
b2FyZChQYXNzUmVmUHRyPERhdGFPYmplY3RHdGs+KTsKKyAgICBQYXN0ZWJvYXJkKEd0a0NsaXBi
b2FyZCopOworI2VuZGlmCisKKyNpZiBQTEFURk9STShXSU4pCisgICAgZXhwbGljaXQgUGFzdGVi
b2FyZChJRGF0YU9iamVjdCopOworICAgIGV4cGxpY2l0IFBhc3RlYm9hcmQoV0NEYXRhT2JqZWN0
Kik7CisgICAgZXhwbGljaXQgUGFzdGVib2FyZChjb25zdCBEcmFnRGF0YU1hcCYpOworI2VuZGlm
CisKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFBhc3RlYm9hcmQ+
IGNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8UGFz
dGVib2FyZD4gY3JlYXRlUHJpdmF0ZSgpOyAvLyBUZW1wb3JhcnkgcGFzdGVib2FyZC4gQ2FuIHB1
dCBkYXRhIG9uIHRoaXMgYW5kIHRoZW4gd3JpdGUgdG8gYW5vdGhlciBwYXN0ZWJvYXJkIHdpdGgg
d3JpdGVQYXN0ZWJvYXJkLgogCiAgICAgYm9vbCBoYXNEYXRhKCk7CiAgICAgVmVjdG9yPFN0cmlu
Zz4gdHlwZXMoKTsKQEAgLTE2OCw4ICsxODAsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCB3cml0ZVBh
c3RlYm9hcmQoY29uc3QgUGFzdGVib2FyZCYgc291cmNlUGFzdGVib2FyZCk7CiAKICNpZiBFTkFC
TEUoRFJBR19TVVBQT1JUKQotICAgIHN0YXRpYyBQYXNzT3duUHRyPFBhc3RlYm9hcmQ+IGNyZWF0
ZUZvckRyYWdBbmREcm9wKCk7Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8UGFzdGVib2FyZD4gY3Jl
YXRlRm9yRHJhZ0FuZERyb3AoY29uc3QgRHJhZ0RhdGEmKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlx
dWVfcHRyPFBhc3RlYm9hcmQ+IGNyZWF0ZUZvckRyYWdBbmREcm9wKCk7CisgICAgc3RhdGljIHN0
ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBjcmVhdGVGb3JEcmFnQW5kRHJvcChjb25zdCBEcmFn
RGF0YSYpOwogCiAgICAgdm9pZCBzZXREcmFnSW1hZ2UoRHJhZ0ltYWdlUmVmLCBjb25zdCBJbnRQ
b2ludCYgaG90U3BvdCk7CiAjZW5kaWYKQEAgLTE4MSwxMCArMTkzLDggQEAgcHVibGljOgogI2Vu
ZGlmCiAKICNpZiBQTEFURk9STShHVEspCi0gICAgc3RhdGljIFBhc3NPd25QdHI8UGFzdGVib2Fy
ZD4gY3JlYXRlKFBhc3NSZWZQdHI8RGF0YU9iamVjdEd0az4pOwotICAgIHN0YXRpYyBQYXNzT3du
UHRyPFBhc3RlYm9hcmQ+IGNyZWF0ZShHdGtDbGlwYm9hcmQqKTsKICAgICBQYXNzUmVmUHRyPERh
dGFPYmplY3RHdGs+IGRhdGFPYmplY3QoKSBjb25zdDsKLSAgICBzdGF0aWMgUGFzc093blB0cjxQ
YXN0ZWJvYXJkPiBjcmVhdGVGb3JHbG9iYWxTZWxlY3Rpb24oKTsKKyAgICBzdGF0aWMgc3RkOjp1
bmlxdWVfcHRyPFBhc3RlYm9hcmQ+IGNyZWF0ZUZvckdsb2JhbFNlbGVjdGlvbigpOwogI2VuZGlm
CiAKICNpZiBQTEFURk9STShJT1MpCkBAIC0xOTQsNyArMjA0LDYgQEAgcHVibGljOgogCiAjaWYg
UExBVEZPUk0oTUFDKQogICAgIGV4cGxpY2l0IFBhc3RlYm9hcmQoY29uc3QgU3RyaW5nJiBwYXN0
ZWJvYXJkTmFtZSk7Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8UGFzdGVib2FyZD4gY3JlYXRlKGNv
bnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpOwogCiAgICAgY29uc3QgU3RyaW5nJiBuYW1lKCkg
Y29uc3QgeyByZXR1cm4gbV9wYXN0ZWJvYXJkTmFtZTsgfQogI2VuZGlmCkBAIC0yMDksMTggKzIx
OCw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiBwcml2YXRlOgotICAgIFBhc3RlYm9hcmQoKTsKLQot
I2lmIFBMQVRGT1JNKEdUSykKLSAgICBQYXN0ZWJvYXJkKFBhc3NSZWZQdHI8RGF0YU9iamVjdEd0
az4pOwotICAgIFBhc3RlYm9hcmQoR3RrQ2xpcGJvYXJkKik7Ci0jZW5kaWYKLQogI2lmIFBMQVRG
T1JNKFdJTikKLSAgICBleHBsaWNpdCBQYXN0ZWJvYXJkKElEYXRhT2JqZWN0Kik7Ci0gICAgZXhw
bGljaXQgUGFzdGVib2FyZChXQ0RhdGFPYmplY3QqKTsKLSAgICBleHBsaWNpdCBQYXN0ZWJvYXJk
KGNvbnN0IERyYWdEYXRhTWFwJik7Ci0KICAgICB2b2lkIGZpbmlzaENyZWF0aW5nUGFzdGVib2Fy
ZCgpOwogICAgIHZvaWQgd3JpdGVSYW5nZVRvRGF0YU9iamVjdChSYW5nZSYsIEZyYW1lJik7IC8v
IEZJWE1FOiBMYXllcmluZyB2aW9sYXRpb24uCiAgICAgdm9pZCB3cml0ZVVSTFRvRGF0YU9iamVj
dChjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2VmbC9QYXN0ZWJvYXJkRWZsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2VmbC9QYXN0ZWJvYXJkRWZsLmNwcAppbmRleCA4YTA4MTBmZTExNTQzMmNhNTBiNjNjZjA2Y2M1
N2EwNmRhYjM5MzNiLi4zZGE4MWY1YzE2MDQ0YjIzYjBlZTI5ZWU1ZDFmNzEzNDFjZjBiZGJjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUGFzdGVib2FyZEVmbC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1Bhc3RlYm9hcmRFZmwuY3BwCkBAIC0y
NCw3ICsyNCw2IEBACiAjaW5jbHVkZSAiUGFzdGVib2FyZC5oIgogCiAjaW5jbHVkZSAiTm90SW1w
bGVtZW50ZWQuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKQEAgLTQ4LDI1ICs0NywyNSBAQCBib29sIFBhc3RlYm9hcmQ6OmNhblNtYXJ0UmVw
bGFjZSgpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1QYXNzT3duUHRyPFBhc3RlYm9hcmQ+IFBh
c3RlYm9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpCitzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVi
b2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9yQ29weUFuZFBhc3RlKCkKIHsKLSAgICByZXR1cm4g
YWRvcHRQdHIobmV3IFBhc3RlYm9hcmQpOworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFBh
c3RlYm9hcmQ+KCk7CiB9CiAKLVBhc3NPd25QdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3Jl
YXRlUHJpdmF0ZSgpCitzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3Jl
YXRlUHJpdmF0ZSgpCiB7Ci0gICAgcmV0dXJuIGNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpOworICAg
IHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFBhc3RlYm9hcmQ+KCk7CiB9CiAKICNpZiBFTkFCTEUo
RFJBR19TVVBQT1JUKQotUGFzc093blB0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVG
b3JEcmFnQW5kRHJvcCgpCitzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6
Y3JlYXRlRm9yRHJhZ0FuZERyb3AoKQogewotICAgIHJldHVybiBjcmVhdGVGb3JDb3B5QW5kUGFz
dGUoKTsKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxQYXN0ZWJvYXJkPigpOwogfQogCi1Q
YXNzT3duUHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckRyYWdBbmREcm9wKGNv
bnN0IERyYWdEYXRhJikKK3N0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpj
cmVhdGVGb3JEcmFnQW5kRHJvcChjb25zdCBEcmFnRGF0YSYpCiB7Ci0gICAgcmV0dXJuIGNyZWF0
ZUZvckNvcHlBbmRQYXN0ZSgpOworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFBhc3RlYm9h
cmQ+KCk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3RrL1Bhc3RlYm9hcmRHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Bhc3Rl
Ym9hcmRHdGsuY3BwCmluZGV4IDBhYWRkNWNlNDk2OWFmZTFkNmExNGY5ZjNjMjE5MTM4ZjQ4MTIx
ODcuLmE0MzA3NjBkZTEwMzY2MmQxMWQxNTVkNTE4NWUyM2ZlNTEzMmQ4M2IgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkR3RrLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEd0ay5jcHAKQEAgLTI2LDcgKzI2LDYg
QEAKICNpbmNsdWRlICJVUkwuaCIKICNpbmNsdWRlICJQYXN0ZWJvYXJkSGVscGVyLmgiCiAjaW5j
bHVkZSA8Z3RrL2d0ay5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIApAQCAtMzksNDAgKzM4LDMwIEBAIGVudW0gQ2xpcGJvYXJkRGF0YVR5cGUg
ewogICAgIENsaXBib2FyZERhdGFUeXBlVW5rbm93bgogfTsKIAotUGFzc093blB0cjxQYXN0ZWJv
YXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGUoR3RrQ2xpcGJvYXJkKiBndGtDbGlwYm9hcmQpCitzdGQ6
OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9yQ29weUFuZFBhc3Rl
KCkKIHsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IFBhc3RlYm9hcmQoZ3RrQ2xpcGJvYXJkKSk7
CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8UGFzdGVib2FyZD4oZ3RrX2NsaXBib2FyZF9n
ZXQoR0RLX1NFTEVDVElPTl9DTElQQk9BUkQpKTsKIH0KIAotUGFzc093blB0cjxQYXN0ZWJvYXJk
PiBQYXN0ZWJvYXJkOjpjcmVhdGUoUGFzc1JlZlB0cjxEYXRhT2JqZWN0R3RrPiBkYXRhT2JqZWN0
KQorc3RkOjp1bmlxdWVfcHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckdsb2Jh
bFNlbGVjdGlvbigpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBQYXN0ZWJvYXJkKGRhdGFP
YmplY3QpKTsKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxQYXN0ZWJvYXJkPihndGtfY2xp
cGJvYXJkX2dldChHREtfU0VMRUNUSU9OX1BSSU1BUlkpKTsKIH0KIAotUGFzc093blB0cjxQYXN0
ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKQorc3RkOjp1bmlxdWVf
cHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZVByaXZhdGUoKQogewotICAgIHJldHVy
biBjcmVhdGUoZ3RrX2NsaXBib2FyZF9nZXQoR0RLX1NFTEVDVElPTl9DTElQQk9BUkQpKTsKLX0K
LQotUGFzc093blB0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JHbG9iYWxTZWxl
Y3Rpb24oKQotewotICAgIHJldHVybiBjcmVhdGUoZ3RrX2NsaXBib2FyZF9nZXQoR0RLX1NFTEVD
VElPTl9QUklNQVJZKSk7Ci19Ci0KLVBhc3NPd25QdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6
Y3JlYXRlUHJpdmF0ZSgpCi17Ci0gICAgcmV0dXJuIGNyZWF0ZShEYXRhT2JqZWN0R3RrOjpjcmVh
dGUoKSk7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8UGFzdGVib2FyZD4oRGF0YU9iamVj
dEd0azo6Y3JlYXRlKCkpOwogfQogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKLVBhc3NPd25Q
dHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AoKQorc3RkOjp1
bmlxdWVfcHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckRyYWdBbmREcm9wKCkK
IHsKLSAgICByZXR1cm4gY3JlYXRlKERhdGFPYmplY3RHdGs6OmNyZWF0ZSgpKTsKKyAgICByZXR1
cm4gc3RkOjptYWtlX3VuaXF1ZTxQYXN0ZWJvYXJkPihEYXRhT2JqZWN0R3RrOjpjcmVhdGUoKSk7
CiB9CiAKLVBhc3NPd25QdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9yRHJhZ0Fu
ZERyb3AoY29uc3QgRHJhZ0RhdGEmIGRyYWdEYXRhKQorc3RkOjp1bmlxdWVfcHRyPFBhc3RlYm9h
cmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckRyYWdBbmREcm9wKGNvbnN0IERyYWdEYXRhJiBkcmFn
RGF0YSkKIHsKLSAgICByZXR1cm4gY3JlYXRlKGRyYWdEYXRhLnBsYXRmb3JtRGF0YSgpKTsKKyAg
ICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxQYXN0ZWJvYXJkPihkcmFnRGF0YS5wbGF0Zm9ybURh
dGEoKSk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
aW9zL1Bhc3RlYm9hcmRJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGFzdGVi
b2FyZElPUy5tbQppbmRleCA3ZDFlOTZkZGU5NTBjMjVjNmExNzQyMDE2ZThjZjYxNzhlNWU1OTQ5
Li42NjQ5NjQ3MGFkYjdlYzFlODYxYzg3ZWIyOTM5ZTg5YTFkZDkyMTRkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGFzdGVib2FyZElPUy5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGFzdGVib2FyZElPUy5tbQpAQCAtMTIxLDE0ICsxMjEsMTQg
QEAgUGFzdGVib2FyZDo6UGFzdGVib2FyZCgpCiB7CiB9CiAKLVBhc3NPd25QdHI8UGFzdGVib2Fy
ZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9yQ29weUFuZFBhc3RlKCkKK3N0ZDo6dW5pcXVlX3B0cjxQ
YXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKQogewotICAgIHJl
dHVybiBhZG9wdFB0cihuZXcgUGFzdGVib2FyZCk7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlx
dWU8UGFzdGVib2FyZD4oKTsKIH0KIAotUGFzc093blB0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJk
OjpjcmVhdGVQcml2YXRlKCkKK3N0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJk
OjpjcmVhdGVQcml2YXRlKCkKIHsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IFBhc3RlYm9hcmQp
OworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFBhc3RlYm9hcmQ+KCk7CiB9CiAKIHZvaWQg
UGFzdGVib2FyZDo6d3JpdGUoY29uc3QgUGFzdGVib2FyZFdlYkNvbnRlbnQmIGNvbnRlbnQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tCmluZGV4IDUwMWEz
OGNhNTcyOWVjYjdhOTgxNjQ0OTQ3ZDcxZDMyN2YxZjJmNGYuLjBiNGZhOWNlMGEyNmVkOGZlNWYx
YWJiZjUwMWRiMDczYzIxNzYwOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9QYXN0ZWJvYXJkTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9Q
YXN0ZWJvYXJkTWFjLm1tCkBAIC0xMjMsMzAgKzEyMywyNSBAQCBQYXN0ZWJvYXJkOjpQYXN0ZWJv
YXJkKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpCiAgICAgQVNTRVJUKHBhc3RlYm9hcmRO
YW1lKTsKIH0KIAotUGFzc093blB0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGUoY29u
c3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkKK3N0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBQ
YXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKQogewotICAgIHJldHVybiBhZG9wdFB0
cihuZXcgUGFzdGVib2FyZChwYXN0ZWJvYXJkTmFtZSkpOworICAgIHJldHVybiBzdGQ6Om1ha2Vf
dW5pcXVlPFBhc3RlYm9hcmQ+KE5TR2VuZXJhbFBib2FyZCk7CiB9CiAKLVBhc3NPd25QdHI8UGFz
dGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9yQ29weUFuZFBhc3RlKCkKK3N0ZDo6dW5pcXVl
X3B0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVQcml2YXRlKCkKIHsKLSAgICByZXR1
cm4gY3JlYXRlKE5TR2VuZXJhbFBib2FyZCk7Ci19Ci0KLVBhc3NPd25QdHI8UGFzdGVib2FyZD4g
UGFzdGVib2FyZDo6Y3JlYXRlUHJpdmF0ZSgpCi17Ci0gICAgcmV0dXJuIGNyZWF0ZShwbGF0Zm9y
bVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPnVuaXF1ZU5hbWUoKSk7CisgICAg
cmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8UGFzdGVib2FyZD4ocGxhdGZvcm1TdHJhdGVnaWVzKCkt
PnBhc3RlYm9hcmRTdHJhdGVneSgpLT51bmlxdWVOYW1lKCkpOwogfQogCiAjaWYgRU5BQkxFKERS
QUdfU1VQUE9SVCkKLVBhc3NPd25QdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9y
RHJhZ0FuZERyb3AoKQorc3RkOjp1bmlxdWVfcHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNy
ZWF0ZUZvckRyYWdBbmREcm9wKCkKIHsKLSAgICByZXR1cm4gY3JlYXRlKE5TRHJhZ1Bib2FyZCk7
CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8UGFzdGVib2FyZD4oTlNEcmFnUGJvYXJkKTsK
IH0KIAotUGFzc093blB0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5k
RHJvcChjb25zdCBEcmFnRGF0YSYgZHJhZ0RhdGEpCitzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2Fy
ZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AoY29uc3QgRHJhZ0RhdGEmIGRyYWdE
YXRhKQogewotICAgIHJldHVybiBjcmVhdGUoZHJhZ0RhdGEucGFzdGVib2FyZE5hbWUoKSk7Cisg
ICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8UGFzdGVib2FyZD4oZHJhZ0RhdGEucGFzdGVib2Fy
ZE5hbWUoKSk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vd2luL1Bhc3RlYm9hcmRXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1Bh
c3RlYm9hcmRXaW4uY3BwCmluZGV4IDdhZWUxNDExM2M0YzdmNjkwMjUwNGQ4MTVkMTIwZGY1NmI0
ZjRhMmUuLmQ3NjhjZjA5OGQ1ZDc4YWRmZmY4MWVhZmVjZjQ0ODIxNmI4YzUwYWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGFzdGVib2FyZFdpbi5jcHAKQEAgLTkwLDM3ICs5
MCwzNyBAQCBzdGF0aWMgTFJFU1VMVCBDQUxMQkFDSyBQYXN0ZWJvYXJkT3duZXJXbmRQcm9jKEhX
TkQgaFduZCwgVUlOVCBtZXNzYWdlLCBXUEFSQU0gdwogICAgIHJldHVybiBscmVzdWx0OwogfQog
Ci1QYXNzT3duUHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0
ZSgpCitzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9yQ29w
eUFuZFBhc3RlKCkKIHsKLSAgICBPd25QdHI8UGFzdGVib2FyZD4gcGFzdGVib2FyZCA9IGFkb3B0
UHRyKG5ldyBQYXN0ZWJvYXJkKTsKKyAgICBhdXRvIHBhc3RlYm9hcmQgPSBzdGQ6Om1ha2VfdW5p
cXVlPFBhc3RlYm9hcmQ+KCk7CiAgICAgQ09NUHRyPElEYXRhT2JqZWN0PiBjbGlwYm9hcmREYXRh
OwogICAgIGlmICghU1VDQ0VFREVEKE9sZUdldENsaXBib2FyZCgmY2xpcGJvYXJkRGF0YSkpKQog
ICAgICAgICBjbGlwYm9hcmREYXRhID0gMDsKICAgICBwYXN0ZWJvYXJkLT5zZXRFeHRlcm5hbERh
dGFPYmplY3QoY2xpcGJvYXJkRGF0YS5nZXQoKSk7Ci0gICAgcmV0dXJuIHBhc3RlYm9hcmQucmVs
ZWFzZSgpOworICAgIHJldHVybiBwYXN0ZWJvYXJkOwogfQogCi1QYXNzT3duUHRyPFBhc3RlYm9h
cmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZVByaXZhdGUoKQorc3RkOjp1bmlxdWVfcHRyPFBhc3RlYm9h
cmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZVByaXZhdGUoKQogewogICAgIC8vIFdpbmRvd3MgaGFzIG5v
ICJQcml2YXRlIHBhc3RlYm9hcmQiIGNvbmNlcHQuCiAgICAgcmV0dXJuIGNyZWF0ZUZvckNvcHlB
bmRQYXN0ZSgpOwogfQogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKLVBhc3NPd25QdHI8UGFz
dGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AoKQorc3RkOjp1bmlxdWVf
cHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckRyYWdBbmREcm9wKCkKIHsKICAg
ICBDT01QdHI8V0NEYXRhT2JqZWN0PiBkYXRhT2JqZWN0OwogICAgIFdDRGF0YU9iamVjdDo6Y3Jl
YXRlSW5zdGFuY2UoJmRhdGFPYmplY3QpOwotICAgIHJldHVybiBhZG9wdFB0cihuZXcgUGFzdGVi
b2FyZChkYXRhT2JqZWN0LmdldCgpKSk7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8UGFz
dGVib2FyZD4oZGF0YU9iamVjdC5nZXQoKSk7CiB9CiAKIC8vIHN0YXRpYwotUGFzc093blB0cjxQ
YXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcChjb25zdCBEcmFnRGF0
YSYgZHJhZ0RhdGEpCitzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3Jl
YXRlRm9yRHJhZ0FuZERyb3AoY29uc3QgRHJhZ0RhdGEmIGRyYWdEYXRhKQogewogICAgIGlmIChk
cmFnRGF0YS5wbGF0Zm9ybURhdGEoKSkKLSAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBQYXN0
ZWJvYXJkKGRyYWdEYXRhLnBsYXRmb3JtRGF0YSgpKSk7CisgICAgICAgIHJldHVybiBzdGQ6Om1h
a2VfdW5pcXVlPFBhc3RlYm9hcmQ+KGRyYWdEYXRhLnBsYXRmb3JtRGF0YSgpKTsKICAgICAvLyBG
SVhNRTogU2hvdWxkIGFkZCBhIGNvbnN0IG92ZXJsb2FkIG9mIGRyYWdEYXRhTWFwIHNvIHdlIGRv
bid0IG5lZWQgYSBjb25zdF9jYXN0IGhlcmUuCi0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBQYXN0
ZWJvYXJkKGNvbnN0X2Nhc3Q8RHJhZ0RhdGEmPihkcmFnRGF0YSkuZHJhZ0RhdGFNYXAoKSkpOwor
ICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFBhc3RlYm9hcmQ+KGNvbnN0X2Nhc3Q8RHJhZ0Rh
dGEmPihkcmFnRGF0YSkuZHJhZ0RhdGFNYXAoKSk7CiB9CiAjZW5kaWYKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>242425</attachid>
            <date>2014-12-02 10:31:18 -0800</date>
            <delta_ts>2014-12-03 19:02:30 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-139019-20141203033148.patch</filename>
            <type>text/plain</type>
            <size>16288</size>
            <attacher name="Joonghun Park">jh718.park</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc2NjcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjhkNjk3MzAwNGU5ODkz
MTViMGNlMDYwMTQxYzE5MDQ1YTNlODhkMS4uNmE2NzYzMzQ3MTQwZDQ4ODY5YWU3MWYwYWRlM2Zm
ZDU0ODhkZDc2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDE0LTEyLTAyICBKb29u
Z2h1biBQYXJrICA8amg3MTgucGFya0BzYW1zdW5nLmNvbT4KKworICAgICAgICBVc2Ugc3RkOjp1
bmlxdWVfcHRyIGluc3RlYWQgb2YgUGFzc093blB0cnxPd25QdHIgZm9yIFBhc3RlYm9hcmQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzOTAxOQorCisg
ICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywg
bm8gYmVoYXZpb3IgY2hhbmdlcy4KKworICAgICAgICAqIGRvbS9EYXRhVHJhbnNmZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RGF0YVRyYW5zZmVyOjpEYXRhVHJhbnNmZXIpOgorICAgICAgICAq
IGRvbS9EYXRhVHJhbnNmZXIuaDoKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpFZGl0b3I6OmRpc3BhdGNoQ1BQRXZlbnQpOgorICAgICAgICAqIHBhZ2Uv
bWFjL0V2ZW50SGFuZGxlck1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6
Y3JlYXRlRHJhZ2dpbmdEYXRhVHJhbnNmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL1Bhc3RlYm9h
cmQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvUGFzdGVib2FyZEVmbC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUpOgorICAgICAgICAo
V2ViQ29yZTo6UGFzdGVib2FyZDo6Y3JlYXRlUHJpdmF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpQ
YXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcCk6CisgICAgICAgICogcGxhdGZvcm0vZ3Rr
L1Bhc3RlYm9hcmRHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6Y3JlYXRl
Rm9yQ29weUFuZFBhc3RlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OmNyZWF0ZUZv
ckdsb2JhbFNlbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpjcmVhdGVQ
cml2YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OmNyZWF0ZUZvckRyYWdBbmRE
cm9wKToKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OmNyZWF0ZSk6IERlbGV0ZWQuCisg
ICAgICAgICogcGxhdGZvcm0vaW9zL1Bhc3RlYm9hcmRJT1MubW06CisgICAgICAgIChXZWJDb3Jl
OjpQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUpOgorICAgICAgICAoV2ViQ29yZTo6
UGFzdGVib2FyZDo6Y3JlYXRlUHJpdmF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Bhc3Rl
Ym9hcmRNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5
QW5kUGFzdGUpOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6Y3JlYXRlUHJpdmF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcCk6Cisg
ICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpjcmVhdGUpOiBEZWxldGVkLgorICAgICAgICAq
IHBsYXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhc3Rl
Ym9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSk6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJv
YXJkOjpjcmVhdGVQcml2YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OmNyZWF0
ZUZvckRyYWdBbmREcm9wKToKKwogMjAxNC0xMi0wMiAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJz
Y2FAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSB2aXNpdGVkIGxpbmsgaGFuZGxpbmcgZnJv
bSBQYWdlR3JvdXAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlci5jcHAKaW5kZXggZmUyMWFmZmZm
MzU5OTNhOWZlNDkxODViMzI1ODAzODIyNzU5MzhjMi4uMzg0Yzg1ZjI2OGYyYjBhNWEyYTE1ZmMx
MzQyZDkwNzE0ODU4MjZjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFu
c2Zlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlci5jcHAKQEAgLTU1
LDkgKzU1LDkgQEAgcHJpdmF0ZToKIAogI2VuZGlmCiAKLURhdGFUcmFuc2Zlcjo6RGF0YVRyYW5z
ZmVyKERhdGFUcmFuc2ZlckFjY2Vzc1BvbGljeSBwb2xpY3ksIFBhc3NPd25QdHI8UGFzdGVib2Fy
ZD4gcGFzdGVib2FyZCwgVHlwZSB0eXBlLCBib29sIGZvckZpbGVEcmFnKQorRGF0YVRyYW5zZmVy
OjpEYXRhVHJhbnNmZXIoRGF0YVRyYW5zZmVyQWNjZXNzUG9saWN5IHBvbGljeSwgc3RkOjp1bmlx
dWVfcHRyPFBhc3RlYm9hcmQ+IHBhc3RlYm9hcmQsIFR5cGUgdHlwZSwgYm9vbCBmb3JGaWxlRHJh
ZykKICAgICA6IG1fcG9saWN5KHBvbGljeSkKLSAgICAsIG1fcGFzdGVib2FyZChwYXN0ZWJvYXJk
KQorICAgICwgbV9wYXN0ZWJvYXJkKFdURjo6bW92ZShwYXN0ZWJvYXJkKSkKICNpZiBFTkFCTEUo
RFJBR19TVVBQT1JUKQogICAgICwgbV9mb3JEcmFnKHR5cGUgIT0gQ29weUFuZFBhc3RlKQogICAg
ICwgbV9mb3JGaWxlRHJhZyhmb3JGaWxlRHJhZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9EYXRhVHJhbnNmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXIuaApp
bmRleCA5ZDk2N2E2NTM1OTBhN2M1ZjcwOTgzMDJkZmNmMTRmZGU4OGE0MTBlLi5jYTgzYjlmOWZm
NTQzNDVjZDdiZTcyMzc0MzE5YjZkMDZlNGY5MzZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRGF0YVRyYW5zZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zl
ci5oCkBAIC05OSwxNCArOTksMTQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgcHJpdmF0
ZToKICAgICAgICAgZW51bSBUeXBlIHsgQ29weUFuZFBhc3RlLCBEcmFnQW5kRHJvcCB9OwotICAg
ICAgICBEYXRhVHJhbnNmZXIoRGF0YVRyYW5zZmVyQWNjZXNzUG9saWN5LCBQYXNzT3duUHRyPFBh
c3RlYm9hcmQ+LCBUeXBlID0gQ29weUFuZFBhc3RlLCBib29sIGZvckZpbGVEcmFnID0gZmFsc2Up
OworICAgICAgICBEYXRhVHJhbnNmZXIoRGF0YVRyYW5zZmVyQWNjZXNzUG9saWN5LCBzdGQ6OnVu
aXF1ZV9wdHI8UGFzdGVib2FyZD4sIFR5cGUgPSBDb3B5QW5kUGFzdGUsIGJvb2wgZm9yRmlsZURy
YWcgPSBmYWxzZSk7CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogICAgICAgICBib29sIGNh
blNldERyYWdJbWFnZSgpIGNvbnN0OwogI2VuZGlmCiAKICAgICAgICAgRGF0YVRyYW5zZmVyQWNj
ZXNzUG9saWN5IG1fcG9saWN5OwotICAgICAgICBPd25QdHI8UGFzdGVib2FyZD4gbV9wYXN0ZWJv
YXJkOworICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4gbV9wYXN0ZWJvYXJkOwog
CiAgICAgICAgIG11dGFibGUgUmVmUHRyPEZpbGVMaXN0PiBtX2ZpbGVMaXN0OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0VkaXRvci5jcHAKaW5kZXggZWQ2M2EyODczZjBmOGY3YjEzZmI1ODhmMzMzMWMwMDc3
ZTU4NTRjYy4uNGJhOTI5NThlNTM5MmMyYTdkOTI1YWJiZGZjNTlkNzlhNDRmZTUzMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRWRpdG9yLmNwcApAQCAtODU3LDcgKzg1Nyw3IEBAIGJvb2wgRWRpdG9yOjpk
aXNwYXRjaENQUEV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBEYXRhVHJhbnNm
ZXJBY2Nlc3NQCiAgICAgdGFyZ2V0LT5kaXNwYXRjaEV2ZW50KGV2ZW50LCBJR05PUkVfRVhDRVBU
SU9OKTsKICAgICBib29sIG5vRGVmYXVsdFByb2Nlc3NpbmcgPSBldmVudC0+ZGVmYXVsdFByZXZl
bnRlZCgpOwogICAgIGlmIChub0RlZmF1bHRQcm9jZXNzaW5nICYmIHBvbGljeSA9PSBEYXRhVHJh
bnNmZXJBY2Nlc3NQb2xpY3k6OldyaXRhYmxlKSB7Ci0gICAgICAgIE93blB0cjxQYXN0ZWJvYXJk
PiBwYXN0ZWJvYXJkID0gUGFzdGVib2FyZDo6Y3JlYXRlRm9yQ29weUFuZFBhc3RlKCk7CisgICAg
ICAgIGF1dG8gcGFzdGVib2FyZCA9IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgp
OwogICAgICAgICBwYXN0ZWJvYXJkLT5jbGVhcigpOwogICAgICAgICBwYXN0ZWJvYXJkLT53cml0
ZVBhc3RlYm9hcmQoZGF0YVRyYW5zZmVyLT5wYXN0ZWJvYXJkKCkpOwogICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbQppbmRleCA4YmU5ZjIyYWM5OTFhYWQ5
NzM2Njg1YzY1NjFkYjAwYmZlNGVmNmVjLi5hMmQxY2NmM2RhNjQwNTU5M2YzMGY0NTk5MDUxZGJk
NmE3ODcwOWIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9FdmVudEhhbmRs
ZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1t
CkBAIC02ODEsNyArNjgxLDcgQEAgUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXI+IEV2ZW50SGFuZGxl
cjo6Y3JlYXRlRHJhZ2dpbmdEYXRhVHJhbnNmZXIoKSBjb25zdAogewogICAgIC8vIE11c3QgYmUg
ZG9uZSBiZWZvcmUgb25kcmFnc3RhcnQgYWRkcyB0eXBlcyBhbmQgZGF0YSB0byB0aGUgcGJvYXJk
LAogICAgIC8vIGFsc28gZG9uZSBmb3Igc2VjdXJpdHksIGFzIGl0IGVyYXNlcyBkYXRhIGZyb20g
dGhlIGxhc3QgZHJhZy4KLSAgICBPd25QdHI8UGFzdGVib2FyZD4gcGFzdGVib2FyZCA9IFBhc3Rl
Ym9hcmQ6OmNyZWF0ZShOU0RyYWdQYm9hcmQpOworICAgIGF1dG8gcGFzdGVib2FyZCA9IHN0ZDo6
bWFrZV91bmlxdWU8UGFzdGVib2FyZD4oTlNEcmFnUGJvYXJkKTsKICAgICBwYXN0ZWJvYXJkLT5j
bGVhcigpOwogICAgIHJldHVybiBEYXRhVHJhbnNmZXI6OmNyZWF0ZUZvckRyYWdBbmREcm9wKCk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkLmgKaW5kZXggOTQyZjllNjdkMGRlYzhh
NGZmMjI1NTE3ZDk0MDU3ZWU1OTkyMjkyMC4uZmExMmQyYTgxMzUyYjdhOGY2ZWExYmVkNjk3NzVl
ZDBhOWZiMjhkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2Fy
ZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmQuaApAQCAtMTM5LDEw
ICsxMzksMjIgQEAgc3RydWN0IFBhc3RlYm9hcmRQbGFpblRleHQgewogY2xhc3MgUGFzdGVib2Fy
ZCB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUGFzdGVib2FyZCk7IFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOwogcHVibGljOgorICAgIFBhc3RlYm9hcmQoKTsKICAgICB+UGFzdGVib2FyZCgp
OwogCi0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFBhc3NPd25QdHI8UGFzdGVib2FyZD4gY3Jl
YXRlRm9yQ29weUFuZFBhc3RlKCk7Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8UGFzdGVib2FyZD4g
Y3JlYXRlUHJpdmF0ZSgpOyAvLyBUZW1wb3JhcnkgcGFzdGVib2FyZC4gQ2FuIHB1dCBkYXRhIG9u
IHRoaXMgYW5kIHRoZW4gd3JpdGUgdG8gYW5vdGhlciBwYXN0ZWJvYXJkIHdpdGggd3JpdGVQYXN0
ZWJvYXJkLgorI2lmIFBMQVRGT1JNKEdUSykKKyAgICBleHBsaWNpdCBQYXN0ZWJvYXJkKFBhc3NS
ZWZQdHI8RGF0YU9iamVjdEd0az4pOworICAgIGV4cGxpY2l0IFBhc3RlYm9hcmQoR3RrQ2xpcGJv
YXJkKik7CisjZW5kaWYKKworI2lmIFBMQVRGT1JNKFdJTikKKyAgICBleHBsaWNpdCBQYXN0ZWJv
YXJkKElEYXRhT2JqZWN0Kik7CisgICAgZXhwbGljaXQgUGFzdGVib2FyZChXQ0RhdGFPYmplY3Qq
KTsKKyAgICBleHBsaWNpdCBQYXN0ZWJvYXJkKGNvbnN0IERyYWdEYXRhTWFwJik7CisjZW5kaWYK
KworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4g
Y3JlYXRlRm9yQ29weUFuZFBhc3RlKCk7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxQYXN0
ZWJvYXJkPiBjcmVhdGVQcml2YXRlKCk7IC8vIFRlbXBvcmFyeSBwYXN0ZWJvYXJkLiBDYW4gcHV0
IGRhdGEgb24gdGhpcyBhbmQgdGhlbiB3cml0ZSB0byBhbm90aGVyIHBhc3RlYm9hcmQgd2l0aCB3
cml0ZVBhc3RlYm9hcmQuCiAKICAgICBib29sIGhhc0RhdGEoKTsKICAgICBWZWN0b3I8U3RyaW5n
PiB0eXBlcygpOwpAQCAtMTY4LDggKzE4MCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHdyaXRlUGFz
dGVib2FyZChjb25zdCBQYXN0ZWJvYXJkJiBzb3VyY2VQYXN0ZWJvYXJkKTsKIAogI2lmIEVOQUJM
RShEUkFHX1NVUFBPUlQpCi0gICAgc3RhdGljIFBhc3NPd25QdHI8UGFzdGVib2FyZD4gY3JlYXRl
Rm9yRHJhZ0FuZERyb3AoKTsKLSAgICBzdGF0aWMgUGFzc093blB0cjxQYXN0ZWJvYXJkPiBjcmVh
dGVGb3JEcmFnQW5kRHJvcChjb25zdCBEcmFnRGF0YSYpOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1
ZV9wdHI8UGFzdGVib2FyZD4gY3JlYXRlRm9yRHJhZ0FuZERyb3AoKTsKKyAgICBzdGF0aWMgc3Rk
Ojp1bmlxdWVfcHRyPFBhc3RlYm9hcmQ+IGNyZWF0ZUZvckRyYWdBbmREcm9wKGNvbnN0IERyYWdE
YXRhJik7CiAKICAgICB2b2lkIHNldERyYWdJbWFnZShEcmFnSW1hZ2VSZWYsIGNvbnN0IEludFBv
aW50JiBob3RTcG90KTsKICNlbmRpZgpAQCAtMTgxLDEwICsxOTMsOCBAQCBwdWJsaWM6CiAjZW5k
aWYKIAogI2lmIFBMQVRGT1JNKEdUSykKLSAgICBzdGF0aWMgUGFzc093blB0cjxQYXN0ZWJvYXJk
PiBjcmVhdGUoUGFzc1JlZlB0cjxEYXRhT2JqZWN0R3RrPik7Ci0gICAgc3RhdGljIFBhc3NPd25Q
dHI8UGFzdGVib2FyZD4gY3JlYXRlKEd0a0NsaXBib2FyZCopOwogICAgIFBhc3NSZWZQdHI8RGF0
YU9iamVjdEd0az4gZGF0YU9iamVjdCgpIGNvbnN0OwotICAgIHN0YXRpYyBQYXNzT3duUHRyPFBh
c3RlYm9hcmQ+IGNyZWF0ZUZvckdsb2JhbFNlbGVjdGlvbigpOworICAgIHN0YXRpYyBzdGQ6OnVu
aXF1ZV9wdHI8UGFzdGVib2FyZD4gY3JlYXRlRm9yR2xvYmFsU2VsZWN0aW9uKCk7CiAjZW5kaWYK
IAogI2lmIFBMQVRGT1JNKElPUykKQEAgLTE5NCw3ICsyMDQsNiBAQCBwdWJsaWM6CiAKICNpZiBQ
TEFURk9STShNQUMpCiAgICAgZXhwbGljaXQgUGFzdGVib2FyZChjb25zdCBTdHJpbmcmIHBhc3Rl
Ym9hcmROYW1lKTsKLSAgICBzdGF0aWMgUGFzc093blB0cjxQYXN0ZWJvYXJkPiBjcmVhdGUoY29u
c3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSk7CiAKICAgICBjb25zdCBTdHJpbmcmIG5hbWUoKSBj
b25zdCB7IHJldHVybiBtX3Bhc3RlYm9hcmROYW1lOyB9CiAjZW5kaWYKQEAgLTIwOSwxOCArMjE4
LDcgQEAgcHVibGljOgogI2VuZGlmCiAKIHByaXZhdGU6Ci0gICAgUGFzdGVib2FyZCgpOwotCi0j
aWYgUExBVEZPUk0oR1RLKQotICAgIFBhc3RlYm9hcmQoUGFzc1JlZlB0cjxEYXRhT2JqZWN0R3Rr
Pik7Ci0gICAgUGFzdGVib2FyZChHdGtDbGlwYm9hcmQqKTsKLSNlbmRpZgotCiAjaWYgUExBVEZP
Uk0oV0lOKQotICAgIGV4cGxpY2l0IFBhc3RlYm9hcmQoSURhdGFPYmplY3QqKTsKLSAgICBleHBs
aWNpdCBQYXN0ZWJvYXJkKFdDRGF0YU9iamVjdCopOwotICAgIGV4cGxpY2l0IFBhc3RlYm9hcmQo
Y29uc3QgRHJhZ0RhdGFNYXAmKTsKLQogICAgIHZvaWQgZmluaXNoQ3JlYXRpbmdQYXN0ZWJvYXJk
KCk7CiAgICAgdm9pZCB3cml0ZVJhbmdlVG9EYXRhT2JqZWN0KFJhbmdlJiwgRnJhbWUmKTsgLy8g
RklYTUU6IExheWVyaW5nIHZpb2xhdGlvbi4KICAgICB2b2lkIHdyaXRlVVJMVG9EYXRhT2JqZWN0
KGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZWZsL1Bhc3RlYm9hcmRFZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
ZWZsL1Bhc3RlYm9hcmRFZmwuY3BwCmluZGV4IDhhMDgxMGZlMTE1NDMyY2E1MGI2M2NmMDZjYzU3
YTA2ZGFiMzkzM2IuLjNkYTgxZjVjMTYwNDRiMjNiMGVlMjllZTVkMWY3MTM0MWNmMGJkYmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9QYXN0ZWJvYXJkRWZsLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUGFzdGVib2FyZEVmbC5jcHAKQEAgLTI0
LDcgKzI0LDYgQEAKICNpbmNsdWRlICJQYXN0ZWJvYXJkLmgiCiAKICNpbmNsdWRlICJOb3RJbXBs
ZW1lbnRlZC5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIApAQCAtNDgsMjUgKzQ3LDI1IEBAIGJvb2wgUGFzdGVib2FyZDo6Y2FuU21hcnRSZXBs
YWNlKCkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLVBhc3NPd25QdHI8UGFzdGVib2FyZD4gUGFz
dGVib2FyZDo6Y3JlYXRlRm9yQ29weUFuZFBhc3RlKCkKK3N0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJv
YXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKQogewotICAgIHJldHVybiBh
ZG9wdFB0cihuZXcgUGFzdGVib2FyZCk7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8UGFz
dGVib2FyZD4oKTsKIH0KIAotUGFzc093blB0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVh
dGVQcml2YXRlKCkKK3N0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVh
dGVQcml2YXRlKCkKIHsKLSAgICByZXR1cm4gY3JlYXRlRm9yQ29weUFuZFBhc3RlKCk7CisgICAg
cmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8UGFzdGVib2FyZD4oKTsKIH0KIAogI2lmIEVOQUJMRShE
UkFHX1NVUFBPUlQpCi1QYXNzT3duUHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZv
ckRyYWdBbmREcm9wKCkKK3N0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpj
cmVhdGVGb3JEcmFnQW5kRHJvcCgpCiB7Ci0gICAgcmV0dXJuIGNyZWF0ZUZvckNvcHlBbmRQYXN0
ZSgpOworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFBhc3RlYm9hcmQ+KCk7CiB9CiAKLVBh
c3NPd25QdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AoY29u
c3QgRHJhZ0RhdGEmKQorc3RkOjp1bmlxdWVfcHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNy
ZWF0ZUZvckRyYWdBbmREcm9wKGNvbnN0IERyYWdEYXRhJikKIHsKLSAgICByZXR1cm4gY3JlYXRl
Rm9yQ29weUFuZFBhc3RlKCk7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8UGFzdGVib2Fy
ZD4oKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
dGsvUGFzdGVib2FyZEd0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVi
b2FyZEd0ay5jcHAKaW5kZXggMGFhZGQ1Y2U0OTY5YWZlMWQ2YTE0ZjlmM2MyMTkxMzhmNDgxMjE4
Ny4uYTQzMDc2MGRlMTAzNjYyZDExZDE1NWQ1MTg1ZTIzZmU1MTMyZDgzYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRHdGsuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkR3RrLmNwcApAQCAtMjYsNyArMjYsNiBA
QAogI2luY2x1ZGUgIlVSTC5oIgogI2luY2x1ZGUgIlBhc3RlYm9hcmRIZWxwZXIuaCIKICNpbmNs
dWRlIDxndGsvZ3RrLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCkBAIC0zOSw0MCArMzgsMzAgQEAgZW51bSBDbGlwYm9hcmREYXRhVHlwZSB7
CiAgICAgQ2xpcGJvYXJkRGF0YVR5cGVVbmtub3duCiB9OwogCi1QYXNzT3duUHRyPFBhc3RlYm9h
cmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZShHdGtDbGlwYm9hcmQqIGd0a0NsaXBib2FyZCkKK3N0ZDo6
dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUo
KQogewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgUGFzdGVib2FyZChndGtDbGlwYm9hcmQpKTsK
KyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxQYXN0ZWJvYXJkPihndGtfY2xpcGJvYXJkX2dl
dChHREtfU0VMRUNUSU9OX0NMSVBCT0FSRCkpOwogfQogCi1QYXNzT3duUHRyPFBhc3RlYm9hcmQ+
IFBhc3RlYm9hcmQ6OmNyZWF0ZShQYXNzUmVmUHRyPERhdGFPYmplY3RHdGs+IGRhdGFPYmplY3Qp
CitzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9yR2xvYmFs
U2VsZWN0aW9uKCkKIHsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IFBhc3RlYm9hcmQoZGF0YU9i
amVjdCkpOworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFBhc3RlYm9hcmQ+KGd0a19jbGlw
Ym9hcmRfZ2V0KEdES19TRUxFQ1RJT05fUFJJTUFSWSkpOwogfQogCi1QYXNzT3duUHRyPFBhc3Rl
Ym9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpCitzdGQ6OnVuaXF1ZV9w
dHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlUHJpdmF0ZSgpCiB7Ci0gICAgcmV0dXJu
IGNyZWF0ZShndGtfY2xpcGJvYXJkX2dldChHREtfU0VMRUNUSU9OX0NMSVBCT0FSRCkpOwotfQot
Ci1QYXNzT3duUHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckdsb2JhbFNlbGVj
dGlvbigpCi17Ci0gICAgcmV0dXJuIGNyZWF0ZShndGtfY2xpcGJvYXJkX2dldChHREtfU0VMRUNU
SU9OX1BSSU1BUlkpKTsKLX0KLQotUGFzc093blB0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpj
cmVhdGVQcml2YXRlKCkKLXsKLSAgICByZXR1cm4gY3JlYXRlKERhdGFPYmplY3RHdGs6OmNyZWF0
ZSgpKTsKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxQYXN0ZWJvYXJkPihEYXRhT2JqZWN0
R3RrOjpjcmVhdGUoKSk7CiB9CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotUGFzc093blB0
cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcCgpCitzdGQ6OnVu
aXF1ZV9wdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AoKQog
ewotICAgIHJldHVybiBjcmVhdGUoRGF0YU9iamVjdEd0azo6Y3JlYXRlKCkpOworICAgIHJldHVy
biBzdGQ6Om1ha2VfdW5pcXVlPFBhc3RlYm9hcmQ+KERhdGFPYmplY3RHdGs6OmNyZWF0ZSgpKTsK
IH0KIAotUGFzc093blB0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5k
RHJvcChjb25zdCBEcmFnRGF0YSYgZHJhZ0RhdGEpCitzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2Fy
ZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AoY29uc3QgRHJhZ0RhdGEmIGRyYWdE
YXRhKQogewotICAgIHJldHVybiBjcmVhdGUoZHJhZ0RhdGEucGxhdGZvcm1EYXRhKCkpOworICAg
IHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFBhc3RlYm9hcmQ+KGRyYWdEYXRhLnBsYXRmb3JtRGF0
YSgpKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
b3MvUGFzdGVib2FyZElPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QYXN0ZWJv
YXJkSU9TLm1tCmluZGV4IDdkMWU5NmRkZTk1MGMyNWM2YTE3NDIwMTZlOGNmNjE3OGU1ZTU5NDku
LjY2NDk2NDcwYWRiN2VjMWU4NjFjODdlYjI5MzllODlhMWRkOTIxNGQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QYXN0ZWJvYXJkSU9TLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2lvcy9QYXN0ZWJvYXJkSU9TLm1tCkBAIC0xMjEsMTQgKzEyMSwxNCBA
QCBQYXN0ZWJvYXJkOjpQYXN0ZWJvYXJkKCkKIHsKIH0KIAotUGFzc093blB0cjxQYXN0ZWJvYXJk
PiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKQorc3RkOjp1bmlxdWVfcHRyPFBh
c3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpCiB7Ci0gICAgcmV0
dXJuIGFkb3B0UHRyKG5ldyBQYXN0ZWJvYXJkKTsKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1
ZTxQYXN0ZWJvYXJkPigpOwogfQogCi1QYXNzT3duUHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6
OmNyZWF0ZVByaXZhdGUoKQorc3RkOjp1bmlxdWVfcHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6
OmNyZWF0ZVByaXZhdGUoKQogewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgUGFzdGVib2FyZCk7
CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8UGFzdGVib2FyZD4oKTsKIH0KIAogdm9pZCBQ
YXN0ZWJvYXJkOjp3cml0ZShjb25zdCBQYXN0ZWJvYXJkV2ViQ29udGVudCYgY29udGVudCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bhc3RlYm9hcmRNYWMubW0KaW5kZXggNTAxYTM4
Y2E1NzI5ZWNiN2E5ODE2NDQ5NDdkNzFkMzI3ZjFmMmY0Zi4uMGI0ZmE5Y2UwYTI2ZWQ4ZmU1ZjFh
YmJmNTAxZGIwNzNjMjE3NjA5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL1Bhc3RlYm9hcmRNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bh
c3RlYm9hcmRNYWMubW0KQEAgLTEyMywzMCArMTIzLDI1IEBAIFBhc3RlYm9hcmQ6OlBhc3RlYm9h
cmQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkKICAgICBBU1NFUlQocGFzdGVib2FyZE5h
bWUpOwogfQogCi1QYXNzT3duUHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZShjb25z
dCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKQorc3RkOjp1bmlxdWVfcHRyPFBhc3RlYm9hcmQ+IFBh
c3RlYm9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UHRy
KG5ldyBQYXN0ZWJvYXJkKHBhc3RlYm9hcmROYW1lKSk7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91
bmlxdWU8UGFzdGVib2FyZD4oTlNHZW5lcmFsUGJvYXJkKTsKIH0KIAotUGFzc093blB0cjxQYXN0
ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKQorc3RkOjp1bmlxdWVf
cHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZVByaXZhdGUoKQogewotICAgIHJldHVy
biBjcmVhdGUoTlNHZW5lcmFsUGJvYXJkKTsKLX0KLQotUGFzc093blB0cjxQYXN0ZWJvYXJkPiBQ
YXN0ZWJvYXJkOjpjcmVhdGVQcml2YXRlKCkKLXsKLSAgICByZXR1cm4gY3JlYXRlKHBsYXRmb3Jt
U3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJkU3RyYXRlZ3koKS0+dW5pcXVlTmFtZSgpKTsKKyAgICBy
ZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxQYXN0ZWJvYXJkPihwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+
cGFzdGVib2FyZFN0cmF0ZWd5KCktPnVuaXF1ZU5hbWUoKSk7CiB9CiAKICNpZiBFTkFCTEUoRFJB
R19TVVBQT1JUKQotUGFzc093blB0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JE
cmFnQW5kRHJvcCgpCitzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3Jl
YXRlRm9yRHJhZ0FuZERyb3AoKQogewotICAgIHJldHVybiBjcmVhdGUoTlNEcmFnUGJvYXJkKTsK
KyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxQYXN0ZWJvYXJkPihOU0RyYWdQYm9hcmQpOwog
fQogCi1QYXNzT3duUHRyPFBhc3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckRyYWdBbmRE
cm9wKGNvbnN0IERyYWdEYXRhJiBkcmFnRGF0YSkKK3N0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJk
PiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcChjb25zdCBEcmFnRGF0YSYgZHJhZ0Rh
dGEpCiB7Ci0gICAgcmV0dXJuIGNyZWF0ZShkcmFnRGF0YS5wYXN0ZWJvYXJkTmFtZSgpKTsKKyAg
ICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxQYXN0ZWJvYXJkPihkcmFnRGF0YS5wYXN0ZWJvYXJk
TmFtZSgpKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS93aW4vUGFzdGVib2FyZFdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGFz
dGVib2FyZFdpbi5jcHAKaW5kZXggN2FlZTE0MTEzYzRjN2Y2OTAyNTA0ZDgxNWQxMjBkZjU2YjRm
NGEyZS4uZDc2OGNmMDk4ZDVkNzhhZGZmZjgxZWFmZWNmNDQ4MjE2YjhjNTBhYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1Bhc3RlYm9hcmRXaW4uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNwcApAQCAtOTAsMzcgKzkw
LDM3IEBAIHN0YXRpYyBMUkVTVUxUIENBTExCQUNLIFBhc3RlYm9hcmRPd25lclduZFByb2MoSFdO
RCBoV25kLCBVSU5UIG1lc3NhZ2UsIFdQQVJBTSB3CiAgICAgcmV0dXJuIGxyZXN1bHQ7CiB9CiAK
LVBhc3NPd25QdHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9yQ29weUFuZFBhc3Rl
KCkKK3N0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5
QW5kUGFzdGUoKQogewotICAgIE93blB0cjxQYXN0ZWJvYXJkPiBwYXN0ZWJvYXJkID0gYWRvcHRQ
dHIobmV3IFBhc3RlYm9hcmQpOworICAgIGF1dG8gcGFzdGVib2FyZCA9IHN0ZDo6bWFrZV91bmlx
dWU8UGFzdGVib2FyZD4oKTsKICAgICBDT01QdHI8SURhdGFPYmplY3Q+IGNsaXBib2FyZERhdGE7
CiAgICAgaWYgKCFTVUNDRUVERUQoT2xlR2V0Q2xpcGJvYXJkKCZjbGlwYm9hcmREYXRhKSkpCiAg
ICAgICAgIGNsaXBib2FyZERhdGEgPSAwOwogICAgIHBhc3RlYm9hcmQtPnNldEV4dGVybmFsRGF0
YU9iamVjdChjbGlwYm9hcmREYXRhLmdldCgpKTsKLSAgICByZXR1cm4gcGFzdGVib2FyZC5yZWxl
YXNlKCk7CisgICAgcmV0dXJuIHBhc3RlYm9hcmQ7CiB9CiAKLVBhc3NPd25QdHI8UGFzdGVib2Fy
ZD4gUGFzdGVib2FyZDo6Y3JlYXRlUHJpdmF0ZSgpCitzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2Fy
ZD4gUGFzdGVib2FyZDo6Y3JlYXRlUHJpdmF0ZSgpCiB7CiAgICAgLy8gV2luZG93cyBoYXMgbm8g
IlByaXZhdGUgcGFzdGVib2FyZCIgY29uY2VwdC4KICAgICByZXR1cm4gY3JlYXRlRm9yQ29weUFu
ZFBhc3RlKCk7CiB9CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotUGFzc093blB0cjxQYXN0
ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JEcmFnQW5kRHJvcCgpCitzdGQ6OnVuaXF1ZV9w
dHI8UGFzdGVib2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AoKQogewogICAg
IENPTVB0cjxXQ0RhdGFPYmplY3Q+IGRhdGFPYmplY3Q7CiAgICAgV0NEYXRhT2JqZWN0OjpjcmVh
dGVJbnN0YW5jZSgmZGF0YU9iamVjdCk7Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBQYXN0ZWJv
YXJkKGRhdGFPYmplY3QuZ2V0KCkpKTsKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxQYXN0
ZWJvYXJkPihkYXRhT2JqZWN0LmdldCgpKTsKIH0KIAogLy8gc3RhdGljCi1QYXNzT3duUHRyPFBh
c3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckRyYWdBbmREcm9wKGNvbnN0IERyYWdEYXRh
JiBkcmFnRGF0YSkKK3N0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVh
dGVGb3JEcmFnQW5kRHJvcChjb25zdCBEcmFnRGF0YSYgZHJhZ0RhdGEpCiB7CiAgICAgaWYgKGRy
YWdEYXRhLnBsYXRmb3JtRGF0YSgpKQotICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IFBhc3Rl
Ym9hcmQoZHJhZ0RhdGEucGxhdGZvcm1EYXRhKCkpKTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWFr
ZV91bmlxdWU8UGFzdGVib2FyZD4oZHJhZ0RhdGEucGxhdGZvcm1EYXRhKCkpOwogICAgIC8vIEZJ
WE1FOiBTaG91bGQgYWRkIGEgY29uc3Qgb3ZlcmxvYWQgb2YgZHJhZ0RhdGFNYXAgc28gd2UgZG9u
J3QgbmVlZCBhIGNvbnN0X2Nhc3QgaGVyZS4KLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IFBhc3Rl
Ym9hcmQoY29uc3RfY2FzdDxEcmFnRGF0YSY+KGRyYWdEYXRhKS5kcmFnRGF0YU1hcCgpKSk7Cisg
ICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8UGFzdGVib2FyZD4oY29uc3RfY2FzdDxEcmFnRGF0
YSY+KGRyYWdEYXRhKS5kcmFnRGF0YU1hcCgpKTsKIH0KICNlbmRpZgogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>