<?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>93644</bug_id>
          
          <creation_ts>2012-08-09 13:12:22 -0700</creation_ts>
          <short_desc>[BlackBerry] Introduce a JavaScript Variant object</short_desc>
          <delta_ts>2012-08-10 13:40:34 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit BlackBerry</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>Other</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>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Benjamin Meyer">ben</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>gyuyoung.kim</cc>
    
    <cc>mifenton</cc>
    
    <cc>rakuco</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>691730</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Meyer">ben</who>
    <bug_when>2012-08-09 13:12:22 -0700</bug_when>
    <thetext>The JavaScriptVariant can be used for functions that return results from
JavaScript such as executeJavaScript or functions that take arguments
to pass a variable to JavaScript and they want to make sure the type
is correct.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691742</commentid>
    <comment_count>1</comment_count>
      <attachid>157524</attachid>
    <who name="Benjamin Meyer">ben</who>
    <bug_when>2012-08-09 13:19:23 -0700</bug_when>
    <thetext>Created attachment 157524
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691745</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-09 13:22:08 -0700</bug_when>
    <thetext>Attachment 157524 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit/ChangeLog&apos;, u&apos;Source/WebKit/...&quot; exit_code: 1
Source/WebKit/blackberry/Api/WebPage.h:24:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 8 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691767</commentid>
    <comment_count>3</comment_count>
      <attachid>157529</attachid>
    <who name="Benjamin Meyer">ben</who>
    <bug_when>2012-08-09 13:34:47 -0700</bug_when>
    <thetext>Created attachment 157529
patch

Fixed style error</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691825</commentid>
    <comment_count>4</comment_count>
      <attachid>157529</attachid>
    <who name="Adam Treat">manyoso</who>
    <bug_when>2012-08-09 14:04:01 -0700</bug_when>
    <thetext>Comment on attachment 157529
patch

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

I think this looks good overall.  Please fix the issues and then I&apos;ll look one last time.

&gt; Source/WebKit/blackberry/Api/JavaScriptVariant.cpp:87
&gt; +        // Output warning?

ASSERT_NOT_REACHED() I would say.

&gt; Source/WebKit/blackberry/Api/JavaScriptVariant.h:29
&gt; +

Remove the extra new line here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691858</commentid>
    <comment_count>5</comment_count>
      <attachid>157551</attachid>
    <who name="Benjamin Meyer">ben</who>
    <bug_when>2012-08-09 14:32:31 -0700</bug_when>
    <thetext>Created attachment 157551
patch

Corrections from Adam&apos;s review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>692675</commentid>
    <comment_count>6</comment_count>
      <attachid>157551</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-08-10 10:56:59 -0700</bug_when>
    <thetext>Comment on attachment 157551
patch

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

&gt; Source/WebKit/blackberry/Api/JavaScriptVariant.h:31
&gt; +class BLACKBERRY_EXPORT JavaScriptVariant {
&gt; +
&gt; +public:

nit: extra blank line.

&gt; Source/WebKit/blackberry/ChangeLog:16
&gt; +        Reviewed by Joe Mason

Should be &quot;Internally reviewed by Joe&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>692729</commentid>
    <comment_count>7</comment_count>
      <attachid>157771</attachid>
    <who name="Benjamin Meyer">ben</who>
    <bug_when>2012-08-10 11:35:53 -0700</bug_when>
    <thetext>Created attachment 157771
patch

Changes from Antonio Gomes comments, (remove blank link and change review by link in the changelogs and commit message)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>692853</commentid>
    <comment_count>8</comment_count>
      <attachid>157771</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-10 13:40:28 -0700</bug_when>
    <thetext>Comment on attachment 157771
patch

Clearing flags on attachment: 157771

Committed r125324: &lt;http://trac.webkit.org/changeset/125324&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>692854</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-10 13:40:34 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>157524</attachid>
            <date>2012-08-09 13:19:23 -0700</date>
            <delta_ts>2012-08-09 13:34:47 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-2012-08-09-Benjamin-C-Meyer-bmeyer-rim.com.patch</filename>
            <type>text/plain</type>
            <size>19487</size>
            <attacher name="Benjamin Meyer">ben</attacher>
            
              <data encoding="base64">RnJvbSBkNGFlOWE4NWNiNzU3MjlkYmNmZjJkNjU0OTk1YTQwNmEyOTYyY2VlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBCZW5qYW1pbiBDIE1leWVyIDxibWV5ZXJAcmltLmNvbT4KRGF0
ZTogV2VkLCAxIEF1ZyAyMDEyIDE1OjAxOjMyIC0wNDAwClN1YmplY3Q6IFtQQVRDSF0gMjAxMi0w
OC0wOSAgQmVuamFtaW4gQyBNZXllciAgPGJtZXllckByaW0uY29tPgoKICAgICAgICBJbnRyb2R1
Y2UgSmF2YVNjcmlwdFZhcmlhbnQgb2JqZWN0LgogICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD05MzY0NAoKICAgICAgICBUaGUgSmF2YVNjcmlwdFZhcmlhbnQg
Y2FuIGJlIHVzZWQgZm9yIGZ1bmN0aW9ucyB0aGF0IHJldHVybiByZXN1bHRzIGZyb20KICAgICAg
ICBKYXZhU2NyaXB0IHN1Y2ggYXMgZXhlY3V0ZUphdmFTY3JpcHQgb3IgZnVuY3Rpb25zIHRoYXQg
dGFrZSBhcmd1bWVudHMKICAgICAgICB0byBwYXNzIGEgdmFyaWFibGUgdG8gSmF2YVNjcmlwdCBh
bmQgdGhleSB3YW50IHRvIG1ha2Ugc3VyZSB0aGUgdHlwZQogICAgICAgIGlzIGNvcnJlY3QuCgog
ICAgICAgIENvbnZlcnQgZXhlY3V0ZUphdmFTY3JpcHRGdW5jdGlvbigpIHRvIHVzZSB0aGlzIGRh
dGEgdHlwZSBhcyB0aGUKICAgICAgICBleGFtcGxlLCBvdGhlciBmdW5jdGlvbnMgd2lsbCBiZSBj
b252ZXJ0ZWQgaW4gdGhlIGZ1dHVyZS4KCiAgICAgICAgUFIgMTQ5MjkKCiAgICAgICAgUmV2aWV3
ZWQgYnkgSm9lIE1hc29uCiAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCi0tLQog
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIw
ICsrCiBTb3VyY2UvV2ViS2l0L1BsYXRmb3JtQmxhY2tCZXJyeS5jbWFrZSAgICAgICAgICAgICB8
ICAgIDEgKwogU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9KYXZhU2NyaXB0VmFyaWFudC5j
cHAgfCAgMjE0ICsrKysrKysrKysrKysrKysrKysrCiBTb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
QXBpL0phdmFTY3JpcHRWYXJpYW50LmggICB8ICAgNzkgKysrKysrKwogU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L0FwaS9KYXZhU2NyaXB0VmFyaWFudF9wLmggfCAgIDM2ICsrKysKIFNvdXJjZS9X
ZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAgICAgICAgICAgIHwgICA2OCArKy0tLS0t
CiBTb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuaCAgICAgICAgICAgICB8ICAg
IDMgKy0KIFNvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAg
IHwgICA0MSArKysrCiA4IGZpbGVzIGNoYW5nZWQsIDQxMCBpbnNlcnRpb25zKCspLCA1MiBkZWxl
dGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBp
L0phdmFTY3JpcHRWYXJpYW50LmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9BcGkvSmF2YVNjcmlwdFZhcmlhbnQuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvSmF2YVNjcmlwdFZhcmlhbnRfcC5oCgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpp
bmRleCAzNTMxYzc0Li44YTJhNmNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTA4
LTA5ICBCZW5qYW1pbiBDIE1leWVyICA8Ym1leWVyQHJpbS5jb20+CisKKyAgICAgICAgSW50cm9k
dWNlIEphdmFTY3JpcHRWYXJpYW50IG9iamVjdC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTkzNjQ0CisKKyAgICAgICAgVGhlIEphdmFTY3JpcHRWYXJp
YW50IGNhbiBiZSB1c2VkIGZvciBmdW5jdGlvbnMgdGhhdCByZXR1cm4gcmVzdWx0cyBmcm9tCisg
ICAgICAgIEphdmFTY3JpcHQgc3VjaCBhcyBleGVjdXRlSmF2YVNjcmlwdCBvciBmdW5jdGlvbnMg
dGhhdCB0YWtlIGFyZ3VtZW50cworICAgICAgICB0byBwYXNzIGEgdmFyaWFibGUgdG8gSmF2YVNj
cmlwdCBhbmQgdGhleSB3YW50IHRvIG1ha2Ugc3VyZSB0aGUgdHlwZQorICAgICAgICBpcyBjb3Jy
ZWN0LgorCisgICAgICAgIENvbnZlcnQgZXhlY3V0ZUphdmFTY3JpcHRGdW5jdGlvbigpIHRvIHVz
ZSB0aGlzIGRhdGEgdHlwZSBhcyB0aGUKKyAgICAgICAgZXhhbXBsZSwgb3RoZXIgZnVuY3Rpb25z
IHdpbGwgYmUgY29udmVydGVkIGluIHRoZSBmdXR1cmUuCisKKyAgICAgICAgUFIgMTQ5MjkKKwor
ICAgICAgICBSZXZpZXdlZCBieSBKb2UgTWFzb24KKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBQbGF0Zm9ybUJsYWNrQmVycnkuY21ha2U6CisKIDIwMTIt
MDgtMDEgIEFudG9uaW8gR29tZXMgIDxhZ29tZXNAcmltLmNvbT4KIAogICAgICAgICBbQmxhY2tC
ZXJyeV0gSW1wbGVtZW50IEluUmVnaW9uU2Nyb2xsZXIgY2xhc3MgYXMgYSBpbi1yZWdpb24gc2Ny
b2xsIGNvbnRyb2xsZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1CbGFja0Jl
cnJ5LmNtYWtlIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybUJsYWNrQmVycnkuY21ha2UKaW5kZXgg
NjQ2MDY4MS4uMTg1ZTViNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybUJsYWNr
QmVycnkuY21ha2UKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybUJsYWNrQmVycnkuY21ha2UK
QEAgLTY3LDYgKzY3LDcgQEAgTElTVChBUFBFTkQgV2ViS2l0X1NPVVJDRVMKICAgICBibGFja2Jl
cnJ5L0FwaS9XZWJTZXR0aW5ncy5jcHAKICAgICBibGFja2JlcnJ5L0FwaS9XZWJTdHJpbmcuY3Bw
CiAgICAgYmxhY2tiZXJyeS9BcGkvV2ViVmlld3BvcnRBcmd1bWVudHMuY3BwCisgICAgYmxhY2ti
ZXJyeS9BcGkvSmF2YVNjcmlwdFZhcmlhbnQuY3BwCiAgICAgYmxhY2tiZXJyeS9XZWJDb3JlU3Vw
cG9ydC9BdXRvZmlsbE1hbmFnZXIuY3BwCiAgICAgYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9D
YWNoZUNsaWVudEJsYWNrQmVycnkuY3BwCiAgICAgYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9D
aHJvbWVDbGllbnRCbGFja0JlcnJ5LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L0FwaS9KYXZhU2NyaXB0VmFyaWFudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvQXBpL0phdmFTY3JpcHRWYXJpYW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi5hZDMwOGFjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2Jl
cnJ5L0FwaS9KYXZhU2NyaXB0VmFyaWFudC5jcHAKQEAgLTAsMCArMSwyMTQgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTIgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhl
IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICog
VGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQor
ICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9z
dG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIkphdmFTY3JpcHRWYXJpYW50LmgiCisKKyNpbmNsdWRlICJKYXZhU2NyaXB0VmFyaWFu
dF9wLmgiCisjaW5jbHVkZSAiV2ViUGFnZS5oIgorI2luY2x1ZGUgPEpTU3RyaW5nUmVmLmg+Cisj
aW5jbHVkZSA8SlNWYWx1ZVJlZi5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIEJsYWNrQmVycnkgeworbmFtZXNwYWNlIFdlYktpdCB7
CisKK0phdmFTY3JpcHRWYXJpYW50IEpTVmFsdWVSZWZUb0JsYWNrQmVycnlKYXZhU2NyaXB0VmFy
aWFudChjb25zdCBKU0dsb2JhbENvbnRleHRSZWYmIGN0eCwgY29uc3QgSlNWYWx1ZVJlZiYgdmFs
dWUpCit7CisgICAgSmF2YVNjcmlwdFZhcmlhbnQgcmV0dXJuVmFsdWU7CisKKyAgICBzd2l0Y2gg
KEpTVmFsdWVHZXRUeXBlKGN0eCwgdmFsdWUpKSB7CisgICAgY2FzZSBrSlNUeXBlTnVsbDoKKyAg
ICAgICAgcmV0dXJuVmFsdWUuc2V0VHlwZShKYXZhU2NyaXB0VmFyaWFudDo6TnVsbCk7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2Uga0pTVHlwZUJvb2xlYW46CisgICAgICAgIHJldHVyblZhbHVl
LnNldEJvb2xlYW4oSlNWYWx1ZVRvQm9vbGVhbihjdHgsIHZhbHVlKSk7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2Uga0pTVHlwZU51bWJlcjoKKyAgICAgICAgcmV0dXJuVmFsdWUuc2V0RG91Ymxl
KEpTVmFsdWVUb051bWJlcihjdHgsIHZhbHVlLCAwKSk7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2Uga0pTVHlwZVN0cmluZzogeworICAgICAgICBKU1N0cmluZ1JlZiBzdHJpbmdSZWYgPSBKU1Zh
bHVlVG9TdHJpbmdDb3B5KGN0eCwgdmFsdWUsIDApOworICAgICAgICBzaXplX3QgYnVmZmVyU2l6
ZSA9IEpTU3RyaW5nR2V0TWF4aW11bVVURjhDU3RyaW5nU2l6ZShzdHJpbmdSZWYpOworICAgICAg
ICBXVEY6OlZlY3RvcjxjaGFyPiBidWZmZXIoYnVmZmVyU2l6ZSk7CisgICAgICAgIEpTU3RyaW5n
R2V0VVRGOENTdHJpbmcoc3RyaW5nUmVmLCBidWZmZXIuZGF0YSgpLCBidWZmZXJTaXplKTsKKyAg
ICAgICAgcmV0dXJuVmFsdWUuc2V0U3RyaW5nKFdlYlN0cmluZzo6ZnJvbVV0ZjgoYnVmZmVyLmRh
dGEoKSkudXRmOCgpLmNfc3RyKCkpOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgY2FzZSBr
SlNUeXBlT2JqZWN0OgorICAgICAgICByZXR1cm5WYWx1ZS5zZXRUeXBlKEphdmFTY3JpcHRWYXJp
YW50OjpPYmplY3QpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIGtKU1R5cGVVbmRlZmluZWQ6
CisgICAgICAgIHJldHVyblZhbHVlLnNldFR5cGUoSmF2YVNjcmlwdFZhcmlhbnQ6OlVuZGVmaW5l
ZCk7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gcmV0dXJuVmFsdWU7Cit9CisK
K0pTVmFsdWVSZWYgQmxhY2tCZXJyeUphdmFTY3JpcHRWYXJpYW50VG9KU1ZhbHVlUmVmKGNvbnN0
IEpTR2xvYmFsQ29udGV4dFJlZiYgY3R4LCBjb25zdCBKYXZhU2NyaXB0VmFyaWFudCYgdmFyaWFu
dCkKK3sKKyAgICBKU1ZhbHVlUmVmIHJlZiA9IDA7CisgICAgc3dpdGNoICh2YXJpYW50LnR5cGUo
KSkgeworICAgIGNhc2UgSlNVbmRlZmluZWQ6CisgICAgICAgIHJlZiA9IEpTVmFsdWVNYWtlVW5k
ZWZpbmVkKGN0eCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSlNOdWxsOgorICAgICAgICBy
ZWYgPSBKU1ZhbHVlTWFrZU51bGwoY3R4KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBKU0Jv
b2xlYW46CisgICAgICAgIHJlZiA9IEpTVmFsdWVNYWtlQm9vbGVhbihjdHgsIHZhcmlhbnQuYm9v
bGVhblZhbHVlKCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEpTTnVtYmVyOgorICAgICAg
ICByZWYgPSBKU1ZhbHVlTWFrZU51bWJlcihjdHgsIHZhcmlhbnQuZG91YmxlVmFsdWUoKSk7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgSlNTdHJpbmc6IHsKKyAgICAgICAgSlNTdHJpbmdSZWYg
c3RyID0gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcodmFyaWFudC5zdHJpbmdWYWx1ZSgp
KTsKKyAgICAgICAgcmVmID0gSlNWYWx1ZU1ha2VTdHJpbmcoY3R4LCBzdHIpOworICAgICAgICBK
U1N0cmluZ1JlbGVhc2Uoc3RyKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2Uga0pT
VHlwZU9iamVjdDoKKyAgICAgICAgLy8gT3V0cHV0IHdhcm5pbmc/CisgICAgICAgIGJyZWFrOwor
ICAgIH0KKyAgICByZXR1cm4gcmVmOworfQorCitKYXZhU2NyaXB0VmFyaWFudDo6SmF2YVNjcmlw
dFZhcmlhbnQoKQorICAgIDogbV90eXBlKFVuZGVmaW5lZCkKKyAgICAsIG1fc3RyaW5nVmFsdWUo
MCkKK3sKK30KKworSmF2YVNjcmlwdFZhcmlhbnQ6OkphdmFTY3JpcHRWYXJpYW50KGRvdWJsZSB2
YWx1ZSkKKyAgICA6IG1fdHlwZShVbmRlZmluZWQpCisgICAgLCBtX3N0cmluZ1ZhbHVlKDApCit7
CisgICAgc2V0RG91YmxlKHZhbHVlKTsKK30KKworSmF2YVNjcmlwdFZhcmlhbnQ6OkphdmFTY3Jp
cHRWYXJpYW50KGludCB2YWx1ZSkKKyAgICA6IG1fdHlwZShVbmRlZmluZWQpCisgICAgLCBtX3N0
cmluZ1ZhbHVlKDApCit7CisgICAgc2V0RG91YmxlKHZhbHVlKTsKK30KKworSmF2YVNjcmlwdFZh
cmlhbnQ6OkphdmFTY3JpcHRWYXJpYW50KGNvbnN0IGNoYXIqIHZhbHVlKQorICAgIDogbV90eXBl
KFVuZGVmaW5lZCkKKyAgICAsIG1fc3RyaW5nVmFsdWUoMCkKK3sKKyAgICBzZXRTdHJpbmcodmFs
dWUpOworfQorCitKYXZhU2NyaXB0VmFyaWFudDo6SmF2YVNjcmlwdFZhcmlhbnQoY29uc3Qgc3Rk
OjpzdHJpbmcmIHZhbHVlKQorICAgIDogbV90eXBlKFVuZGVmaW5lZCkKKyAgICAsIG1fc3RyaW5n
VmFsdWUoMCkKK3sKKyAgICBzZXRTdHJpbmcodmFsdWUuY19zdHIoKSk7Cit9CisKK0phdmFTY3Jp
cHRWYXJpYW50OjpKYXZhU2NyaXB0VmFyaWFudChib29sIHZhbHVlKQorICAgIDogbV90eXBlKFVu
ZGVmaW5lZCkKKyAgICAsIG1fc3RyaW5nVmFsdWUoMCkKK3sKKyAgICBzZXRCb29sZWFuKHZhbHVl
KTsKK30KKworSmF2YVNjcmlwdFZhcmlhbnQ6OkphdmFTY3JpcHRWYXJpYW50KGNvbnN0IEphdmFT
Y3JpcHRWYXJpYW50ICZ2KQorICAgIDogbV90eXBlKFVuZGVmaW5lZCkKKyAgICAsIG1fc3RyaW5n
VmFsdWUoMCkKK3sKKyAgICB0aGlzLT5vcGVyYXRvcj0odik7Cit9CisKK0phdmFTY3JpcHRWYXJp
YW50Ojp+SmF2YVNjcmlwdFZhcmlhbnQoKQoreworICAgIC8vIFByZXZlbnQgbWVtb3J5IGxlYWtz
IGlmIHdlIGhhdmUgc3RyaW5ncworICAgIHNldFR5cGUoVW5kZWZpbmVkKTsKK30KKworSmF2YVNj
cmlwdFZhcmlhbnQmIEphdmFTY3JpcHRWYXJpYW50OjpvcGVyYXRvcj0oY29uc3QgSmF2YVNjcmlw
dFZhcmlhbnQmIHYpCit7CisgICAgc3dpdGNoICh2LnR5cGUoKSkgeworICAgIGNhc2UgQm9vbGVh
bjoKKyAgICAgICAgc2V0Qm9vbGVhbih2LmJvb2xlYW5WYWx1ZSgpKTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBOdW1iZXI6CisgICAgICAgIHNldERvdWJsZSh2LmRvdWJsZVZhbHVlKCkpOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFN0cmluZzoKKyAgICAgICAgc2V0U3RyaW5nKHYuc3Ry
aW5nVmFsdWUoKSk7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIHNldFR5
cGUodi50eXBlKCkpOworICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICByZXR1cm4gKnRoaXM7
Cit9CisKK3ZvaWQgSmF2YVNjcmlwdFZhcmlhbnQ6OnNldFR5cGUoY29uc3QgRGF0YVR5cGUmIHR5
cGUpCit7CisgICAgaWYgKG1fdHlwZSA9PSBTdHJpbmcpCisgICAgICAgIGZyZWUobV9zdHJpbmdW
YWx1ZSk7CisgICAgbV90eXBlID0gdHlwZTsKKyAgICBtX3N0cmluZ1ZhbHVlID0gMDsKK30KKwor
SmF2YVNjcmlwdFZhcmlhbnQ6OkRhdGFUeXBlIEphdmFTY3JpcHRWYXJpYW50Ojp0eXBlKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gbV90eXBlOworfQorCit2b2lkIEphdmFTY3JpcHRWYXJpYW50Ojpz
ZXREb3VibGUoZG91YmxlIHZhbHVlKQoreworICAgIHNldFR5cGUoTnVtYmVyKTsKKyAgICBtX2Rv
dWJsZVZhbHVlID0gdmFsdWU7Cit9CisKK2RvdWJsZSBKYXZhU2NyaXB0VmFyaWFudDo6ZG91Ymxl
VmFsdWUoKSBjb25zdAoreworICAgIHJldHVybiBtX2RvdWJsZVZhbHVlOworfQorCit2b2lkIEph
dmFTY3JpcHRWYXJpYW50OjpzZXRTdHJpbmcoY29uc3QgY2hhciogdmFsdWUpCit7CisgICAgc2V0
VHlwZShTdHJpbmcpOworICAgIG1fc3RyaW5nVmFsdWUgPSBzdHJkdXAodmFsdWUpOworfQorCitj
aGFyKiBKYXZhU2NyaXB0VmFyaWFudDo6c3RyaW5nVmFsdWUoKSBjb25zdAoreworICAgIHJldHVy
biBtX3N0cmluZ1ZhbHVlOworfQorCit2b2lkIEphdmFTY3JpcHRWYXJpYW50OjpzZXRCb29sZWFu
KGJvb2wgdmFsdWUpCit7CisgICAgc2V0VHlwZShCb29sZWFuKTsKKyAgICBtX2Jvb2xlYW5WYWx1
ZSA9IHZhbHVlOworfQorCitib29sIEphdmFTY3JpcHRWYXJpYW50Ojpib29sZWFuVmFsdWUoKSBj
b25zdAoreworICAgIHJldHVybiBtX2Jvb2xlYW5WYWx1ZTsKK30KKworfQorfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9KYXZhU2NyaXB0VmFyaWFudC5oIGIvU291
cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9KYXZhU2NyaXB0VmFyaWFudC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlmY2ZiY2QKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL0phdmFTY3JpcHRWYXJpYW50LmgKQEAgLTAsMCArMSw3
OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRl
ZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFz
IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZl
cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy
c2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGVzc2VyIEdl
bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisg
KiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBG
cmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZp
ZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaWZuZGVmIEph
dmFTY3JpcHRWYXJpYW50X2gKKyNkZWZpbmUgSmF2YVNjcmlwdFZhcmlhbnRfaAorCisjaW5jbHVk
ZSAiQmxhY2tCZXJyeUdsb2JhbC5oIgorCisjaW5jbHVkZSA8c3RyaW5nPgorCituYW1lc3BhY2Ug
QmxhY2tCZXJyeSB7CituYW1lc3BhY2UgV2ViS2l0IHsKKworCitjbGFzcyBCTEFDS0JFUlJZX0VY
UE9SVCBKYXZhU2NyaXB0VmFyaWFudCB7CisKK3B1YmxpYzoKKyAgICBlbnVtIERhdGFUeXBlIHsK
KyAgICAgICAgVW5kZWZpbmVkID0gMCwKKyAgICAgICAgTnVsbCwKKyAgICAgICAgQm9vbGVhbiwK
KyAgICAgICAgTnVtYmVyLAorICAgICAgICBTdHJpbmcsCisgICAgICAgIE9iamVjdCwKKyAgICAg
ICAgRXhjZXB0aW9uCisgICAgfTsKKworICAgIEphdmFTY3JpcHRWYXJpYW50KCk7CisgICAgSmF2
YVNjcmlwdFZhcmlhbnQoY29uc3QgSmF2YVNjcmlwdFZhcmlhbnQmKTsKKyAgICBKYXZhU2NyaXB0
VmFyaWFudChkb3VibGUpOworICAgIEphdmFTY3JpcHRWYXJpYW50KGludCk7CisgICAgSmF2YVNj
cmlwdFZhcmlhbnQoY29uc3QgY2hhciopOworICAgIEphdmFTY3JpcHRWYXJpYW50KGJvb2wpOwor
ICAgIEphdmFTY3JpcHRWYXJpYW50KGNvbnN0IHN0ZDo6c3RyaW5nJik7CisgICAgfkphdmFTY3Jp
cHRWYXJpYW50KCk7CisKKyAgICBKYXZhU2NyaXB0VmFyaWFudCYgb3BlcmF0b3I9KGNvbnN0IEph
dmFTY3JpcHRWYXJpYW50Jik7CisKKyAgICB2b2lkIHNldFR5cGUoY29uc3QgRGF0YVR5cGUmKTsK
KyAgICBEYXRhVHlwZSB0eXBlKCkgY29uc3Q7CisKKyAgICB2b2lkIHNldERvdWJsZShkb3VibGUp
OworICAgIGRvdWJsZSBkb3VibGVWYWx1ZSgpIGNvbnN0OworCisgICAgdm9pZCBzZXRTdHJpbmco
Y29uc3QgY2hhciopOworICAgIGNoYXIqIHN0cmluZ1ZhbHVlKCkgY29uc3Q7CisKKyAgICB2b2lk
IHNldEJvb2xlYW4oYm9vbCk7CisgICAgYm9vbCBib29sZWFuVmFsdWUoKSBjb25zdDsKKworcHJp
dmF0ZToKKyAgICBEYXRhVHlwZSBtX3R5cGU7CisKKyAgICB1bmlvbiB7CisgICAgICAgIGJvb2wg
bV9ib29sZWFuVmFsdWU7CisgICAgICAgIGRvdWJsZSBtX2RvdWJsZVZhbHVlOworICAgICAgICBj
aGFyKiBtX3N0cmluZ1ZhbHVlOworICAgIH07Cit9OworCit9Cit9CisKKyNlbmRpZiAvLyBKYXZh
U2NyaXB0VmFyaWFudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBp
L0phdmFTY3JpcHRWYXJpYW50X3AuaCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvSmF2
YVNjcmlwdFZhcmlhbnRfcC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAy
NGI4NzgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL0ph
dmFTY3JpcHRWYXJpYW50X3AuaApAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEyIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNz
ZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBv
ciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFy
eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICog
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRS4gIFNlZSB0aGUgR05VCisgKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg
dGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlz
IGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRp
b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAy
MTEwLTEzMDEgIFVTQQorICovCisKKyNpZm5kZWYgSmF2YVNjcmlwdFZhcmlhbnRfcF9oCisjZGVm
aW5lIEphdmFTY3JpcHRWYXJpYW50X3BfaAorCisjaW5jbHVkZSAiSmF2YVNjcmlwdFZhcmlhbnQu
aCIKKworI2luY2x1ZGUgPEpTQ29udGV4dFJlZi5oPgorI2luY2x1ZGUgPEpTVmFsdWVSZWYuaD4K
KworbmFtZXNwYWNlIEJsYWNrQmVycnkgeworbmFtZXNwYWNlIFdlYktpdCB7CisKK0phdmFTY3Jp
cHRWYXJpYW50IEpTVmFsdWVSZWZUb0JsYWNrQmVycnlKYXZhU2NyaXB0VmFyaWFudChjb25zdCBK
U0dsb2JhbENvbnRleHRSZWYmLCBjb25zdCBKU1ZhbHVlUmVmJik7CitKU1ZhbHVlUmVmIEJsYWNr
QmVycnlKYXZhU2NyaXB0VmFyaWFudFRvSlNWYWx1ZVJlZihjb25zdCBKU0dsb2JhbENvbnRleHRS
ZWYmLCBjb25zdCBKYXZhU2NyaXB0VmFyaWFudCYpOworCit9Cit9CisKKyNlbmRpZiAvLyBKYXZh
U2NyaXB0VmFyaWFudF9wX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9B
cGkvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3Bw
CmluZGV4IDEyZGI0ZmIuLmY0ODY4MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2ti
ZXJyeS9BcGkvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9X
ZWJQYWdlLmNwcApAQCAtNzgsNiArNzgsNyBAQAogI2luY2x1ZGUgIkluc3BlY3RvckNvbnRyb2xs
ZXIuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JPdmVybGF5LmgiCiAjaW5jbHVkZSAiSmF2YVNjcmlw
dERlYnVnZ2VyQmxhY2tCZXJyeS5oIgorI2luY2x1ZGUgIkphdmFTY3JpcHRWYXJpYW50X3AuaCIK
ICNpbmNsdWRlICJMYXllcldlYktpdFRocmVhZC5oIgogI2luY2x1ZGUgIkxvY2FsRmlsZVN5c3Rl
bS5oIgogI2luY2x1ZGUgIk5ldHdvcmtNYW5hZ2VyLmgiCkBAIC04NjMsMjQgKzg2NCwyNSBAQCBi
b29sIFdlYlBhZ2U6OmV4ZWN1dGVKYXZhU2NyaXB0SW5Jc29sYXRlZFdvcmxkKGNvbnN0IGNoYXIq
IHNjcmlwdCwgSmF2YVNjcmlwdERhdAogICAgIHJldHVybiBkLT5leGVjdXRlSmF2YVNjcmlwdElu
SXNvbGF0ZWRXb3JsZChzb3VyY2VDb2RlLCByZXR1cm5UeXBlLCByZXR1cm5WYWx1ZSk7CiB9CiAK
LWJvb2wgV2ViUGFnZTo6ZXhlY3V0ZUphdmFTY3JpcHRGdW5jdGlvbihjb25zdCBzdGQ6OnZlY3Rv
cjxzdGQ6OnN0cmluZz4gJmZ1bmN0aW9uLCBjb25zdCBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4g
JmFyZ3MsIEphdmFTY3JpcHREYXRhVHlwZSYgcmV0dXJuVHlwZSwgV2ViU3RyaW5nJiByZXR1cm5W
YWx1ZSkKK3ZvaWQgV2ViUGFnZTo6ZXhlY3V0ZUphdmFTY3JpcHRGdW5jdGlvbihjb25zdCBzdGQ6
OnZlY3RvcjxzdGQ6OnN0cmluZz4gJmZ1bmN0aW9uLCBjb25zdCBzdGQ6OnZlY3RvcjxKYXZhU2Ny
aXB0VmFyaWFudD4gJmFyZ3MsIEphdmFTY3JpcHRWYXJpYW50JiByZXR1cm5WYWx1ZSkKIHsKLSAg
ICBpZiAoIWQtPm1fbWFpbkZyYW1lKQotICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFk
LT5tX21haW5GcmFtZSkgeworICAgICAgICByZXR1cm5WYWx1ZS5zZXRUeXBlKEphdmFTY3JpcHRW
YXJpYW50OjpFeGNlcHRpb24pOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgSlNDOjpC
aW5kaW5nczo6Um9vdE9iamVjdCogcm9vdCA9IGQtPm1fbWFpbkZyYW1lLT5zY3JpcHQoKS0+Ymlu
ZGluZ1Jvb3RPYmplY3QoKTsKLSAgICBpZiAoIXJvb3QpCi0gICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICBpZiAoIXJvb3QpIHsKKyAgICAgICAgcmV0dXJuVmFsdWUuc2V0VHlwZShKYXZhU2NyaXB0
VmFyaWFudDo6RXhjZXB0aW9uKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIEpTQzo6
RXhlY1N0YXRlKiBleGVjID0gcm9vdC0+Z2xvYmFsT2JqZWN0KCktPmdsb2JhbEV4ZWMoKTsKICAg
ICBKU0dsb2JhbENvbnRleHRSZWYgY3R4ID0gdG9HbG9iYWxSZWYoZXhlYyk7CiAKLSAgICBXVEY6
OlZlY3RvcjxKU1N0cmluZ1JlZj4gYXJnTGlzdChhcmdzLnNpemUoKSk7CiAgICAgV1RGOjpWZWN0
b3I8SlNWYWx1ZVJlZj4gYXJnTGlzdFJlZihhcmdzLnNpemUoKSk7Ci0gICAgZm9yICh1bnNpZ25l
ZCBpID0gMDsgaSA8IGFyZ3Muc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgSlNTdHJpbmdSZWYgc3Ry
ID0gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoYXJnc1tpXS5jX3N0cigpKTsKLSAgICAg
ICAgYXJnTGlzdFtpXSA9IHN0cjsKLSAgICAgICAgSlNWYWx1ZVJlZiBzdHJSZWYgPSBKU1ZhbHVl
TWFrZVN0cmluZyhjdHgsIHN0cik7Ci0gICAgICAgIGFyZ0xpc3RSZWZbaV0gPSBzdHJSZWY7Ci0g
ICAgfQorICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBhcmdzLnNpemUoKTsgKytpKQorICAg
ICAgICBhcmdMaXN0UmVmW2ldID0gQmxhY2tCZXJyeUphdmFTY3JpcHRWYXJpYW50VG9KU1ZhbHVl
UmVmKGN0eCwgYXJnc1tpXSk7CiAKICAgICBKU1ZhbHVlUmVmIHdpbmRvd09iamVjdFZhbHVlID0g
d2luZG93T2JqZWN0KCk7CiAgICAgSlNPYmplY3RSZWYgb2JqID0gSlNWYWx1ZVRvT2JqZWN0KGN0
eCwgd2luZG93T2JqZWN0VmFsdWUsIDApOwpAQCAtODk5LDQ5ICs5MDEsMTMgQEAgYm9vbCBXZWJQ
YWdlOjpleGVjdXRlSmF2YVNjcmlwdEZ1bmN0aW9uKGNvbnN0IHN0ZDo6dmVjdG9yPHN0ZDo6c3Ry
aW5nPiAmZnVuY3Rpb24KICAgICBpZiAoZnVuY3Rpb25PYmplY3QgJiYgdGhpc09iamVjdCkKICAg
ICAgICAgcmVzdWx0ID0gSlNPYmplY3RDYWxsQXNGdW5jdGlvbihjdHgsIGZ1bmN0aW9uT2JqZWN0
LCB0aGlzT2JqZWN0LCBhcmdzLnNpemUoKSwgYXJnTGlzdFJlZi5kYXRhKCksIDApOwogCi0gICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGFyZ3Muc2l6ZSgpOyArK2kpCi0gICAgICAgIEpTU3Ry
aW5nUmVsZWFzZShhcmdMaXN0W2ldKTsKLQogICAgIEpTQzo6SlNWYWx1ZSB2YWx1ZSA9IHRvSlMo
ZXhlYywgcmVzdWx0KTsKLQogICAgIGlmICghdmFsdWUpIHsKLSAgICAgICAgcmV0dXJuVHlwZSA9
IEpTRXhjZXB0aW9uOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgSlNUeXBl
IHR5cGUgPSBKU1ZhbHVlR2V0VHlwZShjdHgsIHJlc3VsdCk7Ci0KLSAgICBzd2l0Y2ggKHR5cGUp
IHsKLSAgICBjYXNlIGtKU1R5cGVOdWxsOgotICAgICAgICByZXR1cm5UeXBlID0gSlNOdWxsOwot
ICAgICAgICBicmVhazsKLSAgICBjYXNlIGtKU1R5cGVCb29sZWFuOgotICAgICAgICByZXR1cm5U
eXBlID0gSlNCb29sZWFuOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIGtKU1R5cGVOdW1iZXI6
Ci0gICAgICAgIHJldHVyblR5cGUgPSBKU051bWJlcjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2Fz
ZSBrSlNUeXBlU3RyaW5nOgotICAgICAgICByZXR1cm5UeXBlID0gSlNTdHJpbmc7Ci0gICAgICAg
IGJyZWFrOwotICAgIGNhc2Uga0pTVHlwZU9iamVjdDoKLSAgICAgICAgcmV0dXJuVHlwZSA9IEpT
T2JqZWN0OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIGtKU1R5cGVVbmRlZmluZWQ6Ci0gICAg
ZGVmYXVsdDoKLSAgICAgICAgcmV0dXJuVHlwZSA9IEpTVW5kZWZpbmVkOwotICAgICAgICBicmVh
azsKLSAgICB9Ci0KLSAgICBpZiAocmV0dXJuVHlwZSA9PSBKU0Jvb2xlYW4gfHwgcmV0dXJuVHlw
ZSA9PSBKU051bWJlciB8fCByZXR1cm5UeXBlID09IEpTU3RyaW5nIHx8IHJldHVyblR5cGUgPT0g
SlNPYmplY3QpIHsKLSAgICAgICAgSlNTdHJpbmdSZWYgc3RyaW5nUmVmID0gSlNWYWx1ZVRvU3Ry
aW5nQ29weShjdHgsIHJlc3VsdCwgMCk7Ci0gICAgICAgIHNpemVfdCBidWZmZXJTaXplID0gSlNT
dHJpbmdHZXRNYXhpbXVtVVRGOENTdHJpbmdTaXplKHN0cmluZ1JlZik7Ci0gICAgICAgIFdURjo6
VmVjdG9yPGNoYXI+IGJ1ZmZlcihidWZmZXJTaXplKTsKLSAgICAgICAgSlNTdHJpbmdHZXRVVEY4
Q1N0cmluZyhzdHJpbmdSZWYsIGJ1ZmZlci5kYXRhKCksIGJ1ZmZlclNpemUpOwotICAgICAgICBy
ZXR1cm5WYWx1ZSA9IFdlYlN0cmluZzo6ZnJvbVV0ZjgoYnVmZmVyLmRhdGEoKSk7CisgICAgICAg
IHJldHVyblZhbHVlLnNldFR5cGUoSmF2YVNjcmlwdFZhcmlhbnQ6OkV4Y2VwdGlvbik7CisgICAg
ICAgIHJldHVybjsKICAgICB9CiAKLSAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm5WYWx1ZSA9
IEpTVmFsdWVSZWZUb0JsYWNrQmVycnlKYXZhU2NyaXB0VmFyaWFudChjdHgsIHJlc3VsdCk7CiB9
CiAKIHZvaWQgV2ViUGFnZVByaXZhdGU6OnN0b3BDdXJyZW50TG9hZCgpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvYmxh
Y2tiZXJyeS9BcGkvV2ViUGFnZS5oCmluZGV4IDVjYTRhMjUuLjZiYTRmYjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5oCkBAIC0yMSw2ICsyMSw3IEBACiAKICNpbmNsdWRl
ICJCbGFja0JlcnJ5R2xvYmFsLmgiCiAjaW5jbHVkZSAiV2ViU3RyaW5nLmgiCisjaW5jbHVkZSAi
SmF2YVNjcmlwdFZhcmlhbnQuaCIKIAogI2luY2x1ZGUgPEJsYWNrQmVycnlQbGF0Zm9ybUd1YXJk
ZWRQb2ludGVyLmg+CiAjaW5jbHVkZSA8QmxhY2tCZXJyeVBsYXRmb3JtSW5wdXRFdmVudHMuaD4K
QEAgLTEwNSw3ICsxMDYsNyBAQCBwdWJsaWM6CiAgICAgLy8gVGFrZXMgYSBVVEYxNiBlbmNvZGVk
IHNjcmlwdCB0aGF0IGlzIHVzZWQgZXhwbGljaXRseSBieSB0aGUgcGF0dGVybiBtYXRjaGluZyBj
b2RlCiAgICAgYm9vbCBleGVjdXRlSmF2YVNjcmlwdEluSXNvbGF0ZWRXb3JsZChjb25zdCBzdGQ6
OndzdHJpbmcmIHNjcmlwdCwgSmF2YVNjcmlwdERhdGFUeXBlJiByZXR1cm5UeXBlLCBXZWJTdHJp
bmcmIHJldHVyblZhbHVlKTsKIAotICAgIGJvb2wgZXhlY3V0ZUphdmFTY3JpcHRGdW5jdGlvbihj
b25zdCBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gJnNjcmlwdCwgY29uc3Qgc3RkOjp2ZWN0b3I8
c3RkOjpzdHJpbmc+ICZhcmdzLCBKYXZhU2NyaXB0RGF0YVR5cGUmIHJldHVyblR5cGUsIFdlYlN0
cmluZyYgcmV0dXJuVmFsdWUpOworICAgIHZvaWQgZXhlY3V0ZUphdmFTY3JpcHRGdW5jdGlvbihj
b25zdCBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gJmZ1bmN0aW9uLCBjb25zdCBzdGQ6OnZlY3Rv
cjxKYXZhU2NyaXB0VmFyaWFudD4gJmFyZ3MsIEphdmFTY3JpcHRWYXJpYW50JiByZXR1cm5WYWx1
ZSk7CiAKICAgICB2b2lkIGluaXRpYWxpemVJY29uRGF0YUJhc2UoKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvYmxhY2ti
ZXJyeS9DaGFuZ2VMb2cKaW5kZXggNmVlZGVkMi4uMDJlODg4MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQgQEAKKzIwMTItMDgtMDkgIEJlbmphbWluIEMgTWV5
ZXIgIDxibWV5ZXJAcmltLmNvbT4KKworICAgICAgICBJbnRyb2R1Y2UgSmF2YVNjcmlwdFZhcmlh
bnQgb2JqZWN0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9OTM2NDQKKworICAgICAgICBUaGUgSmF2YVNjcmlwdFZhcmlhbnQgY2FuIGJlIHVzZWQgZm9y
IGZ1bmN0aW9ucyB0aGF0IHJldHVybiByZXN1bHRzIGZyb20KKyAgICAgICAgSmF2YVNjcmlwdCBz
dWNoIGFzIGV4ZWN1dGVKYXZhU2NyaXB0IG9yIGZ1bmN0aW9ucyB0aGF0IHRha2UgYXJndW1lbnRz
CisgICAgICAgIHRvIHBhc3MgYSB2YXJpYWJsZSB0byBKYXZhU2NyaXB0IGFuZCB0aGV5IHdhbnQg
dG8gbWFrZSBzdXJlIHRoZSB0eXBlCisgICAgICAgIGlzIGNvcnJlY3QuCisKKyAgICAgICAgQ29u
dmVydCBleGVjdXRlSmF2YVNjcmlwdEZ1bmN0aW9uKCkgdG8gdXNlIHRoaXMgZGF0YSB0eXBlIGFz
IHRoZQorICAgICAgICBleGFtcGxlLCBvdGhlciBmdW5jdGlvbnMgd2lsbCBiZSBjb252ZXJ0ZWQg
aW4gdGhlIGZ1dHVyZS4KKworICAgICAgICBQUiAxNDkyOQorCisgICAgICAgIFJldmlld2VkIGJ5
IEpvZSBNYXNvbgorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIEFwaS9KYXZhU2NyaXB0VmFyaWFudC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0KToK
KyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6SlNWYWx1ZVJlZlRvQmxhY2tCZXJyeUphdmFT
Y3JpcHRWYXJpYW50KToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6QmxhY2tCZXJyeUph
dmFTY3JpcHRWYXJpYW50VG9KU1ZhbHVlUmVmKToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktp
dDo6SmF2YVNjcmlwdFZhcmlhbnQ6OkphdmFTY3JpcHRWYXJpYW50KToKKyAgICAgICAgKEJsYWNr
QmVycnk6OldlYktpdDo6SmF2YVNjcmlwdFZhcmlhbnQ6On5KYXZhU2NyaXB0VmFyaWFudCk6Cisg
ICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OkphdmFTY3JpcHRWYXJpYW50OjpvcGVyYXRvcj0p
OgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpKYXZhU2NyaXB0VmFyaWFudDo6c2V0VHlw
ZSk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OkphdmFTY3JpcHRWYXJpYW50Ojp0eXBl
KToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6SmF2YVNjcmlwdFZhcmlhbnQ6OnNldERv
dWJsZSk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OkphdmFTY3JpcHRWYXJpYW50Ojpk
b3VibGVWYWx1ZSk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OkphdmFTY3JpcHRWYXJp
YW50OjpzZXRTdHJpbmcpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpKYXZhU2NyaXB0
VmFyaWFudDo6c3RyaW5nVmFsdWUpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpKYXZh
U2NyaXB0VmFyaWFudDo6c2V0Qm9vbGVhbik6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6
OkphdmFTY3JpcHRWYXJpYW50Ojpib29sZWFuVmFsdWUpOgorICAgICAgICAqIEFwaS9KYXZhU2Ny
aXB0VmFyaWFudC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogQXBpL0ph
dmFTY3JpcHRWYXJpYW50X3AuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAq
IEFwaS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFnZTo6
ZXhlY3V0ZUphdmFTY3JpcHRGdW5jdGlvbik6CisgICAgICAgICogQXBpL1dlYlBhZ2UuaDoKKwog
MjAxMi0wOC0wOCAgSmFja3kgSmlhbmcgIDx6aGFqaWFuZ0ByaW0uY29tPgogCiAgICAgICAgIFtC
bGFja0JlcnJ5XSBJbXBsZW1lbnQgYWJvdXQ6bWVtb3J5LWxpdmUKLS0gCjEuNy4xCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>157529</attachid>
            <date>2012-08-09 13:34:47 -0700</date>
            <delta_ts>2012-08-09 14:32:31 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-2012-08-09-Benjamin-C-Meyer-bmeyer-rim.com.patch</filename>
            <type>text/plain</type>
            <size>19462</size>
            <attacher name="Benjamin Meyer">ben</attacher>
            
              <data encoding="base64">RnJvbSA1ZTM4MjQ1OWQxMTg0OWFiMTY4NzI2YWZkZTYwNzVhMzM5ZDA2ZTYxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBCZW5qYW1pbiBDIE1leWVyIDxibWV5ZXJAcmltLmNvbT4KRGF0
ZTogV2VkLCAxIEF1ZyAyMDEyIDE1OjAxOjMyIC0wNDAwClN1YmplY3Q6IFtQQVRDSF0gMjAxMi0w
OC0wOSAgQmVuamFtaW4gQyBNZXllciAgPGJtZXllckByaW0uY29tPgoKICAgICAgICBJbnRyb2R1
Y2UgSmF2YVNjcmlwdFZhcmlhbnQgb2JqZWN0LgogICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD05MzY0NAoKICAgICAgICBUaGUgSmF2YVNjcmlwdFZhcmlhbnQg
Y2FuIGJlIHVzZWQgZm9yIGZ1bmN0aW9ucyB0aGF0IHJldHVybiByZXN1bHRzIGZyb20KICAgICAg
ICBKYXZhU2NyaXB0IHN1Y2ggYXMgZXhlY3V0ZUphdmFTY3JpcHQgb3IgZnVuY3Rpb25zIHRoYXQg
dGFrZSBhcmd1bWVudHMKICAgICAgICB0byBwYXNzIGEgdmFyaWFibGUgdG8gSmF2YVNjcmlwdCBh
bmQgdGhleSB3YW50IHRvIG1ha2Ugc3VyZSB0aGUgdHlwZQogICAgICAgIGlzIGNvcnJlY3QuCgog
ICAgICAgIENvbnZlcnQgZXhlY3V0ZUphdmFTY3JpcHRGdW5jdGlvbigpIHRvIHVzZSB0aGlzIGRh
dGEgdHlwZSBhcyB0aGUKICAgICAgICBleGFtcGxlLCBvdGhlciBmdW5jdGlvbnMgd2lsbCBiZSBj
b252ZXJ0ZWQgaW4gdGhlIGZ1dHVyZS4KCiAgICAgICAgUFIgMTQ5MjkKCiAgICAgICAgUmV2aWV3
ZWQgYnkgSm9lIE1hc29uCiAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCi0tLQog
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIw
ICsrCiBTb3VyY2UvV2ViS2l0L1BsYXRmb3JtQmxhY2tCZXJyeS5jbWFrZSAgICAgICAgICAgICB8
ICAgIDEgKwogU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9KYXZhU2NyaXB0VmFyaWFudC5j
cHAgfCAgMjE0ICsrKysrKysrKysrKysrKysrKysrCiBTb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
QXBpL0phdmFTY3JpcHRWYXJpYW50LmggICB8ICAgNzkgKysrKysrKwogU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L0FwaS9KYXZhU2NyaXB0VmFyaWFudF9wLmggfCAgIDM2ICsrKysKIFNvdXJjZS9X
ZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAgICAgICAgICAgIHwgICA2OCArKy0tLS0t
CiBTb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuaCAgICAgICAgICAgICB8ICAg
IDMgKy0KIFNvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAg
IHwgICA0MSArKysrCiA4IGZpbGVzIGNoYW5nZWQsIDQxMCBpbnNlcnRpb25zKCspLCA1MiBkZWxl
dGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBp
L0phdmFTY3JpcHRWYXJpYW50LmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9BcGkvSmF2YVNjcmlwdFZhcmlhbnQuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvSmF2YVNjcmlwdFZhcmlhbnRfcC5oCgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpp
bmRleCAzNTMxYzc0Li44YTJhNmNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTA4
LTA5ICBCZW5qYW1pbiBDIE1leWVyICA8Ym1leWVyQHJpbS5jb20+CisKKyAgICAgICAgSW50cm9k
dWNlIEphdmFTY3JpcHRWYXJpYW50IG9iamVjdC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTkzNjQ0CisKKyAgICAgICAgVGhlIEphdmFTY3JpcHRWYXJp
YW50IGNhbiBiZSB1c2VkIGZvciBmdW5jdGlvbnMgdGhhdCByZXR1cm4gcmVzdWx0cyBmcm9tCisg
ICAgICAgIEphdmFTY3JpcHQgc3VjaCBhcyBleGVjdXRlSmF2YVNjcmlwdCBvciBmdW5jdGlvbnMg
dGhhdCB0YWtlIGFyZ3VtZW50cworICAgICAgICB0byBwYXNzIGEgdmFyaWFibGUgdG8gSmF2YVNj
cmlwdCBhbmQgdGhleSB3YW50IHRvIG1ha2Ugc3VyZSB0aGUgdHlwZQorICAgICAgICBpcyBjb3Jy
ZWN0LgorCisgICAgICAgIENvbnZlcnQgZXhlY3V0ZUphdmFTY3JpcHRGdW5jdGlvbigpIHRvIHVz
ZSB0aGlzIGRhdGEgdHlwZSBhcyB0aGUKKyAgICAgICAgZXhhbXBsZSwgb3RoZXIgZnVuY3Rpb25z
IHdpbGwgYmUgY29udmVydGVkIGluIHRoZSBmdXR1cmUuCisKKyAgICAgICAgUFIgMTQ5MjkKKwor
ICAgICAgICBSZXZpZXdlZCBieSBKb2UgTWFzb24KKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBQbGF0Zm9ybUJsYWNrQmVycnkuY21ha2U6CisKIDIwMTIt
MDgtMDEgIEFudG9uaW8gR29tZXMgIDxhZ29tZXNAcmltLmNvbT4KIAogICAgICAgICBbQmxhY2tC
ZXJyeV0gSW1wbGVtZW50IEluUmVnaW9uU2Nyb2xsZXIgY2xhc3MgYXMgYSBpbi1yZWdpb24gc2Ny
b2xsIGNvbnRyb2xsZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1CbGFja0Jl
cnJ5LmNtYWtlIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybUJsYWNrQmVycnkuY21ha2UKaW5kZXgg
NjQ2MDY4MS4uMTg1ZTViNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybUJsYWNr
QmVycnkuY21ha2UKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybUJsYWNrQmVycnkuY21ha2UK
QEAgLTY3LDYgKzY3LDcgQEAgTElTVChBUFBFTkQgV2ViS2l0X1NPVVJDRVMKICAgICBibGFja2Jl
cnJ5L0FwaS9XZWJTZXR0aW5ncy5jcHAKICAgICBibGFja2JlcnJ5L0FwaS9XZWJTdHJpbmcuY3Bw
CiAgICAgYmxhY2tiZXJyeS9BcGkvV2ViVmlld3BvcnRBcmd1bWVudHMuY3BwCisgICAgYmxhY2ti
ZXJyeS9BcGkvSmF2YVNjcmlwdFZhcmlhbnQuY3BwCiAgICAgYmxhY2tiZXJyeS9XZWJDb3JlU3Vw
cG9ydC9BdXRvZmlsbE1hbmFnZXIuY3BwCiAgICAgYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9D
YWNoZUNsaWVudEJsYWNrQmVycnkuY3BwCiAgICAgYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9D
aHJvbWVDbGllbnRCbGFja0JlcnJ5LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L0FwaS9KYXZhU2NyaXB0VmFyaWFudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvQXBpL0phdmFTY3JpcHRWYXJpYW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi5hZDMwOGFjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2Jl
cnJ5L0FwaS9KYXZhU2NyaXB0VmFyaWFudC5jcHAKQEAgLTAsMCArMSwyMTQgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTIgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhl
IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICog
VGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQor
ICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9z
dG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIkphdmFTY3JpcHRWYXJpYW50LmgiCisKKyNpbmNsdWRlICJKYXZhU2NyaXB0VmFyaWFu
dF9wLmgiCisjaW5jbHVkZSAiV2ViUGFnZS5oIgorI2luY2x1ZGUgPEpTU3RyaW5nUmVmLmg+Cisj
aW5jbHVkZSA8SlNWYWx1ZVJlZi5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIEJsYWNrQmVycnkgeworbmFtZXNwYWNlIFdlYktpdCB7
CisKK0phdmFTY3JpcHRWYXJpYW50IEpTVmFsdWVSZWZUb0JsYWNrQmVycnlKYXZhU2NyaXB0VmFy
aWFudChjb25zdCBKU0dsb2JhbENvbnRleHRSZWYmIGN0eCwgY29uc3QgSlNWYWx1ZVJlZiYgdmFs
dWUpCit7CisgICAgSmF2YVNjcmlwdFZhcmlhbnQgcmV0dXJuVmFsdWU7CisKKyAgICBzd2l0Y2gg
KEpTVmFsdWVHZXRUeXBlKGN0eCwgdmFsdWUpKSB7CisgICAgY2FzZSBrSlNUeXBlTnVsbDoKKyAg
ICAgICAgcmV0dXJuVmFsdWUuc2V0VHlwZShKYXZhU2NyaXB0VmFyaWFudDo6TnVsbCk7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2Uga0pTVHlwZUJvb2xlYW46CisgICAgICAgIHJldHVyblZhbHVl
LnNldEJvb2xlYW4oSlNWYWx1ZVRvQm9vbGVhbihjdHgsIHZhbHVlKSk7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2Uga0pTVHlwZU51bWJlcjoKKyAgICAgICAgcmV0dXJuVmFsdWUuc2V0RG91Ymxl
KEpTVmFsdWVUb051bWJlcihjdHgsIHZhbHVlLCAwKSk7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2Uga0pTVHlwZVN0cmluZzogeworICAgICAgICBKU1N0cmluZ1JlZiBzdHJpbmdSZWYgPSBKU1Zh
bHVlVG9TdHJpbmdDb3B5KGN0eCwgdmFsdWUsIDApOworICAgICAgICBzaXplX3QgYnVmZmVyU2l6
ZSA9IEpTU3RyaW5nR2V0TWF4aW11bVVURjhDU3RyaW5nU2l6ZShzdHJpbmdSZWYpOworICAgICAg
ICBXVEY6OlZlY3RvcjxjaGFyPiBidWZmZXIoYnVmZmVyU2l6ZSk7CisgICAgICAgIEpTU3RyaW5n
R2V0VVRGOENTdHJpbmcoc3RyaW5nUmVmLCBidWZmZXIuZGF0YSgpLCBidWZmZXJTaXplKTsKKyAg
ICAgICAgcmV0dXJuVmFsdWUuc2V0U3RyaW5nKFdlYlN0cmluZzo6ZnJvbVV0ZjgoYnVmZmVyLmRh
dGEoKSkudXRmOCgpLmNfc3RyKCkpOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgY2FzZSBr
SlNUeXBlT2JqZWN0OgorICAgICAgICByZXR1cm5WYWx1ZS5zZXRUeXBlKEphdmFTY3JpcHRWYXJp
YW50OjpPYmplY3QpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIGtKU1R5cGVVbmRlZmluZWQ6
CisgICAgICAgIHJldHVyblZhbHVlLnNldFR5cGUoSmF2YVNjcmlwdFZhcmlhbnQ6OlVuZGVmaW5l
ZCk7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gcmV0dXJuVmFsdWU7Cit9CisK
K0pTVmFsdWVSZWYgQmxhY2tCZXJyeUphdmFTY3JpcHRWYXJpYW50VG9KU1ZhbHVlUmVmKGNvbnN0
IEpTR2xvYmFsQ29udGV4dFJlZiYgY3R4LCBjb25zdCBKYXZhU2NyaXB0VmFyaWFudCYgdmFyaWFu
dCkKK3sKKyAgICBKU1ZhbHVlUmVmIHJlZiA9IDA7CisgICAgc3dpdGNoICh2YXJpYW50LnR5cGUo
KSkgeworICAgIGNhc2UgSlNVbmRlZmluZWQ6CisgICAgICAgIHJlZiA9IEpTVmFsdWVNYWtlVW5k
ZWZpbmVkKGN0eCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSlNOdWxsOgorICAgICAgICBy
ZWYgPSBKU1ZhbHVlTWFrZU51bGwoY3R4KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBKU0Jv
b2xlYW46CisgICAgICAgIHJlZiA9IEpTVmFsdWVNYWtlQm9vbGVhbihjdHgsIHZhcmlhbnQuYm9v
bGVhblZhbHVlKCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEpTTnVtYmVyOgorICAgICAg
ICByZWYgPSBKU1ZhbHVlTWFrZU51bWJlcihjdHgsIHZhcmlhbnQuZG91YmxlVmFsdWUoKSk7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgSlNTdHJpbmc6IHsKKyAgICAgICAgSlNTdHJpbmdSZWYg
c3RyID0gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcodmFyaWFudC5zdHJpbmdWYWx1ZSgp
KTsKKyAgICAgICAgcmVmID0gSlNWYWx1ZU1ha2VTdHJpbmcoY3R4LCBzdHIpOworICAgICAgICBK
U1N0cmluZ1JlbGVhc2Uoc3RyKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2Uga0pT
VHlwZU9iamVjdDoKKyAgICAgICAgLy8gT3V0cHV0IHdhcm5pbmc/CisgICAgICAgIGJyZWFrOwor
ICAgIH0KKyAgICByZXR1cm4gcmVmOworfQorCitKYXZhU2NyaXB0VmFyaWFudDo6SmF2YVNjcmlw
dFZhcmlhbnQoKQorICAgIDogbV90eXBlKFVuZGVmaW5lZCkKKyAgICAsIG1fc3RyaW5nVmFsdWUo
MCkKK3sKK30KKworSmF2YVNjcmlwdFZhcmlhbnQ6OkphdmFTY3JpcHRWYXJpYW50KGRvdWJsZSB2
YWx1ZSkKKyAgICA6IG1fdHlwZShVbmRlZmluZWQpCisgICAgLCBtX3N0cmluZ1ZhbHVlKDApCit7
CisgICAgc2V0RG91YmxlKHZhbHVlKTsKK30KKworSmF2YVNjcmlwdFZhcmlhbnQ6OkphdmFTY3Jp
cHRWYXJpYW50KGludCB2YWx1ZSkKKyAgICA6IG1fdHlwZShVbmRlZmluZWQpCisgICAgLCBtX3N0
cmluZ1ZhbHVlKDApCit7CisgICAgc2V0RG91YmxlKHZhbHVlKTsKK30KKworSmF2YVNjcmlwdFZh
cmlhbnQ6OkphdmFTY3JpcHRWYXJpYW50KGNvbnN0IGNoYXIqIHZhbHVlKQorICAgIDogbV90eXBl
KFVuZGVmaW5lZCkKKyAgICAsIG1fc3RyaW5nVmFsdWUoMCkKK3sKKyAgICBzZXRTdHJpbmcodmFs
dWUpOworfQorCitKYXZhU2NyaXB0VmFyaWFudDo6SmF2YVNjcmlwdFZhcmlhbnQoY29uc3Qgc3Rk
OjpzdHJpbmcmIHZhbHVlKQorICAgIDogbV90eXBlKFVuZGVmaW5lZCkKKyAgICAsIG1fc3RyaW5n
VmFsdWUoMCkKK3sKKyAgICBzZXRTdHJpbmcodmFsdWUuY19zdHIoKSk7Cit9CisKK0phdmFTY3Jp
cHRWYXJpYW50OjpKYXZhU2NyaXB0VmFyaWFudChib29sIHZhbHVlKQorICAgIDogbV90eXBlKFVu
ZGVmaW5lZCkKKyAgICAsIG1fc3RyaW5nVmFsdWUoMCkKK3sKKyAgICBzZXRCb29sZWFuKHZhbHVl
KTsKK30KKworSmF2YVNjcmlwdFZhcmlhbnQ6OkphdmFTY3JpcHRWYXJpYW50KGNvbnN0IEphdmFT
Y3JpcHRWYXJpYW50ICZ2KQorICAgIDogbV90eXBlKFVuZGVmaW5lZCkKKyAgICAsIG1fc3RyaW5n
VmFsdWUoMCkKK3sKKyAgICB0aGlzLT5vcGVyYXRvcj0odik7Cit9CisKK0phdmFTY3JpcHRWYXJp
YW50Ojp+SmF2YVNjcmlwdFZhcmlhbnQoKQoreworICAgIC8vIFByZXZlbnQgbWVtb3J5IGxlYWtz
IGlmIHdlIGhhdmUgc3RyaW5ncworICAgIHNldFR5cGUoVW5kZWZpbmVkKTsKK30KKworSmF2YVNj
cmlwdFZhcmlhbnQmIEphdmFTY3JpcHRWYXJpYW50OjpvcGVyYXRvcj0oY29uc3QgSmF2YVNjcmlw
dFZhcmlhbnQmIHYpCit7CisgICAgc3dpdGNoICh2LnR5cGUoKSkgeworICAgIGNhc2UgQm9vbGVh
bjoKKyAgICAgICAgc2V0Qm9vbGVhbih2LmJvb2xlYW5WYWx1ZSgpKTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBOdW1iZXI6CisgICAgICAgIHNldERvdWJsZSh2LmRvdWJsZVZhbHVlKCkpOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFN0cmluZzoKKyAgICAgICAgc2V0U3RyaW5nKHYuc3Ry
aW5nVmFsdWUoKSk7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIHNldFR5
cGUodi50eXBlKCkpOworICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICByZXR1cm4gKnRoaXM7
Cit9CisKK3ZvaWQgSmF2YVNjcmlwdFZhcmlhbnQ6OnNldFR5cGUoY29uc3QgRGF0YVR5cGUmIHR5
cGUpCit7CisgICAgaWYgKG1fdHlwZSA9PSBTdHJpbmcpCisgICAgICAgIGZyZWUobV9zdHJpbmdW
YWx1ZSk7CisgICAgbV90eXBlID0gdHlwZTsKKyAgICBtX3N0cmluZ1ZhbHVlID0gMDsKK30KKwor
SmF2YVNjcmlwdFZhcmlhbnQ6OkRhdGFUeXBlIEphdmFTY3JpcHRWYXJpYW50Ojp0eXBlKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gbV90eXBlOworfQorCit2b2lkIEphdmFTY3JpcHRWYXJpYW50Ojpz
ZXREb3VibGUoZG91YmxlIHZhbHVlKQoreworICAgIHNldFR5cGUoTnVtYmVyKTsKKyAgICBtX2Rv
dWJsZVZhbHVlID0gdmFsdWU7Cit9CisKK2RvdWJsZSBKYXZhU2NyaXB0VmFyaWFudDo6ZG91Ymxl
VmFsdWUoKSBjb25zdAoreworICAgIHJldHVybiBtX2RvdWJsZVZhbHVlOworfQorCit2b2lkIEph
dmFTY3JpcHRWYXJpYW50OjpzZXRTdHJpbmcoY29uc3QgY2hhciogdmFsdWUpCit7CisgICAgc2V0
VHlwZShTdHJpbmcpOworICAgIG1fc3RyaW5nVmFsdWUgPSBzdHJkdXAodmFsdWUpOworfQorCitj
aGFyKiBKYXZhU2NyaXB0VmFyaWFudDo6c3RyaW5nVmFsdWUoKSBjb25zdAoreworICAgIHJldHVy
biBtX3N0cmluZ1ZhbHVlOworfQorCit2b2lkIEphdmFTY3JpcHRWYXJpYW50OjpzZXRCb29sZWFu
KGJvb2wgdmFsdWUpCit7CisgICAgc2V0VHlwZShCb29sZWFuKTsKKyAgICBtX2Jvb2xlYW5WYWx1
ZSA9IHZhbHVlOworfQorCitib29sIEphdmFTY3JpcHRWYXJpYW50Ojpib29sZWFuVmFsdWUoKSBj
b25zdAoreworICAgIHJldHVybiBtX2Jvb2xlYW5WYWx1ZTsKK30KKworfQorfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9KYXZhU2NyaXB0VmFyaWFudC5oIGIvU291
cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9KYXZhU2NyaXB0VmFyaWFudC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlmY2ZiY2QKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL0phdmFTY3JpcHRWYXJpYW50LmgKQEAgLTAsMCArMSw3
OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRl
ZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFz
IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZl
cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy
c2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGVzc2VyIEdl
bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisg
KiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBG
cmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZp
ZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaWZuZGVmIEph
dmFTY3JpcHRWYXJpYW50X2gKKyNkZWZpbmUgSmF2YVNjcmlwdFZhcmlhbnRfaAorCisjaW5jbHVk
ZSAiQmxhY2tCZXJyeUdsb2JhbC5oIgorCisjaW5jbHVkZSA8c3RyaW5nPgorCituYW1lc3BhY2Ug
QmxhY2tCZXJyeSB7CituYW1lc3BhY2UgV2ViS2l0IHsKKworCitjbGFzcyBCTEFDS0JFUlJZX0VY
UE9SVCBKYXZhU2NyaXB0VmFyaWFudCB7CisKK3B1YmxpYzoKKyAgICBlbnVtIERhdGFUeXBlIHsK
KyAgICAgICAgVW5kZWZpbmVkID0gMCwKKyAgICAgICAgTnVsbCwKKyAgICAgICAgQm9vbGVhbiwK
KyAgICAgICAgTnVtYmVyLAorICAgICAgICBTdHJpbmcsCisgICAgICAgIE9iamVjdCwKKyAgICAg
ICAgRXhjZXB0aW9uCisgICAgfTsKKworICAgIEphdmFTY3JpcHRWYXJpYW50KCk7CisgICAgSmF2
YVNjcmlwdFZhcmlhbnQoY29uc3QgSmF2YVNjcmlwdFZhcmlhbnQmKTsKKyAgICBKYXZhU2NyaXB0
VmFyaWFudChkb3VibGUpOworICAgIEphdmFTY3JpcHRWYXJpYW50KGludCk7CisgICAgSmF2YVNj
cmlwdFZhcmlhbnQoY29uc3QgY2hhciopOworICAgIEphdmFTY3JpcHRWYXJpYW50KGJvb2wpOwor
ICAgIEphdmFTY3JpcHRWYXJpYW50KGNvbnN0IHN0ZDo6c3RyaW5nJik7CisgICAgfkphdmFTY3Jp
cHRWYXJpYW50KCk7CisKKyAgICBKYXZhU2NyaXB0VmFyaWFudCYgb3BlcmF0b3I9KGNvbnN0IEph
dmFTY3JpcHRWYXJpYW50Jik7CisKKyAgICB2b2lkIHNldFR5cGUoY29uc3QgRGF0YVR5cGUmKTsK
KyAgICBEYXRhVHlwZSB0eXBlKCkgY29uc3Q7CisKKyAgICB2b2lkIHNldERvdWJsZShkb3VibGUp
OworICAgIGRvdWJsZSBkb3VibGVWYWx1ZSgpIGNvbnN0OworCisgICAgdm9pZCBzZXRTdHJpbmco
Y29uc3QgY2hhciopOworICAgIGNoYXIqIHN0cmluZ1ZhbHVlKCkgY29uc3Q7CisKKyAgICB2b2lk
IHNldEJvb2xlYW4oYm9vbCk7CisgICAgYm9vbCBib29sZWFuVmFsdWUoKSBjb25zdDsKKworcHJp
dmF0ZToKKyAgICBEYXRhVHlwZSBtX3R5cGU7CisKKyAgICB1bmlvbiB7CisgICAgICAgIGJvb2wg
bV9ib29sZWFuVmFsdWU7CisgICAgICAgIGRvdWJsZSBtX2RvdWJsZVZhbHVlOworICAgICAgICBj
aGFyKiBtX3N0cmluZ1ZhbHVlOworICAgIH07Cit9OworCit9Cit9CisKKyNlbmRpZiAvLyBKYXZh
U2NyaXB0VmFyaWFudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBp
L0phdmFTY3JpcHRWYXJpYW50X3AuaCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvSmF2
YVNjcmlwdFZhcmlhbnRfcC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAy
NGI4NzgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL0ph
dmFTY3JpcHRWYXJpYW50X3AuaApAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEyIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNz
ZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBv
ciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFy
eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICog
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRS4gIFNlZSB0aGUgR05VCisgKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg
dGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlz
IGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRp
b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAy
MTEwLTEzMDEgIFVTQQorICovCisKKyNpZm5kZWYgSmF2YVNjcmlwdFZhcmlhbnRfcF9oCisjZGVm
aW5lIEphdmFTY3JpcHRWYXJpYW50X3BfaAorCisjaW5jbHVkZSAiSmF2YVNjcmlwdFZhcmlhbnQu
aCIKKworI2luY2x1ZGUgPEpTQ29udGV4dFJlZi5oPgorI2luY2x1ZGUgPEpTVmFsdWVSZWYuaD4K
KworbmFtZXNwYWNlIEJsYWNrQmVycnkgeworbmFtZXNwYWNlIFdlYktpdCB7CisKK0phdmFTY3Jp
cHRWYXJpYW50IEpTVmFsdWVSZWZUb0JsYWNrQmVycnlKYXZhU2NyaXB0VmFyaWFudChjb25zdCBK
U0dsb2JhbENvbnRleHRSZWYmLCBjb25zdCBKU1ZhbHVlUmVmJik7CitKU1ZhbHVlUmVmIEJsYWNr
QmVycnlKYXZhU2NyaXB0VmFyaWFudFRvSlNWYWx1ZVJlZihjb25zdCBKU0dsb2JhbENvbnRleHRS
ZWYmLCBjb25zdCBKYXZhU2NyaXB0VmFyaWFudCYpOworCit9Cit9CisKKyNlbmRpZiAvLyBKYXZh
U2NyaXB0VmFyaWFudF9wX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9B
cGkvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3Bw
CmluZGV4IDEyZGI0ZmIuLmY0ODY4MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2ti
ZXJyeS9BcGkvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9X
ZWJQYWdlLmNwcApAQCAtNzgsNiArNzgsNyBAQAogI2luY2x1ZGUgIkluc3BlY3RvckNvbnRyb2xs
ZXIuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JPdmVybGF5LmgiCiAjaW5jbHVkZSAiSmF2YVNjcmlw
dERlYnVnZ2VyQmxhY2tCZXJyeS5oIgorI2luY2x1ZGUgIkphdmFTY3JpcHRWYXJpYW50X3AuaCIK
ICNpbmNsdWRlICJMYXllcldlYktpdFRocmVhZC5oIgogI2luY2x1ZGUgIkxvY2FsRmlsZVN5c3Rl
bS5oIgogI2luY2x1ZGUgIk5ldHdvcmtNYW5hZ2VyLmgiCkBAIC04NjMsMjQgKzg2NCwyNSBAQCBi
b29sIFdlYlBhZ2U6OmV4ZWN1dGVKYXZhU2NyaXB0SW5Jc29sYXRlZFdvcmxkKGNvbnN0IGNoYXIq
IHNjcmlwdCwgSmF2YVNjcmlwdERhdAogICAgIHJldHVybiBkLT5leGVjdXRlSmF2YVNjcmlwdElu
SXNvbGF0ZWRXb3JsZChzb3VyY2VDb2RlLCByZXR1cm5UeXBlLCByZXR1cm5WYWx1ZSk7CiB9CiAK
LWJvb2wgV2ViUGFnZTo6ZXhlY3V0ZUphdmFTY3JpcHRGdW5jdGlvbihjb25zdCBzdGQ6OnZlY3Rv
cjxzdGQ6OnN0cmluZz4gJmZ1bmN0aW9uLCBjb25zdCBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4g
JmFyZ3MsIEphdmFTY3JpcHREYXRhVHlwZSYgcmV0dXJuVHlwZSwgV2ViU3RyaW5nJiByZXR1cm5W
YWx1ZSkKK3ZvaWQgV2ViUGFnZTo6ZXhlY3V0ZUphdmFTY3JpcHRGdW5jdGlvbihjb25zdCBzdGQ6
OnZlY3RvcjxzdGQ6OnN0cmluZz4gJmZ1bmN0aW9uLCBjb25zdCBzdGQ6OnZlY3RvcjxKYXZhU2Ny
aXB0VmFyaWFudD4gJmFyZ3MsIEphdmFTY3JpcHRWYXJpYW50JiByZXR1cm5WYWx1ZSkKIHsKLSAg
ICBpZiAoIWQtPm1fbWFpbkZyYW1lKQotICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFk
LT5tX21haW5GcmFtZSkgeworICAgICAgICByZXR1cm5WYWx1ZS5zZXRUeXBlKEphdmFTY3JpcHRW
YXJpYW50OjpFeGNlcHRpb24pOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgSlNDOjpC
aW5kaW5nczo6Um9vdE9iamVjdCogcm9vdCA9IGQtPm1fbWFpbkZyYW1lLT5zY3JpcHQoKS0+Ymlu
ZGluZ1Jvb3RPYmplY3QoKTsKLSAgICBpZiAoIXJvb3QpCi0gICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICBpZiAoIXJvb3QpIHsKKyAgICAgICAgcmV0dXJuVmFsdWUuc2V0VHlwZShKYXZhU2NyaXB0
VmFyaWFudDo6RXhjZXB0aW9uKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIEpTQzo6
RXhlY1N0YXRlKiBleGVjID0gcm9vdC0+Z2xvYmFsT2JqZWN0KCktPmdsb2JhbEV4ZWMoKTsKICAg
ICBKU0dsb2JhbENvbnRleHRSZWYgY3R4ID0gdG9HbG9iYWxSZWYoZXhlYyk7CiAKLSAgICBXVEY6
OlZlY3RvcjxKU1N0cmluZ1JlZj4gYXJnTGlzdChhcmdzLnNpemUoKSk7CiAgICAgV1RGOjpWZWN0
b3I8SlNWYWx1ZVJlZj4gYXJnTGlzdFJlZihhcmdzLnNpemUoKSk7Ci0gICAgZm9yICh1bnNpZ25l
ZCBpID0gMDsgaSA8IGFyZ3Muc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgSlNTdHJpbmdSZWYgc3Ry
ID0gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoYXJnc1tpXS5jX3N0cigpKTsKLSAgICAg
ICAgYXJnTGlzdFtpXSA9IHN0cjsKLSAgICAgICAgSlNWYWx1ZVJlZiBzdHJSZWYgPSBKU1ZhbHVl
TWFrZVN0cmluZyhjdHgsIHN0cik7Ci0gICAgICAgIGFyZ0xpc3RSZWZbaV0gPSBzdHJSZWY7Ci0g
ICAgfQorICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBhcmdzLnNpemUoKTsgKytpKQorICAg
ICAgICBhcmdMaXN0UmVmW2ldID0gQmxhY2tCZXJyeUphdmFTY3JpcHRWYXJpYW50VG9KU1ZhbHVl
UmVmKGN0eCwgYXJnc1tpXSk7CiAKICAgICBKU1ZhbHVlUmVmIHdpbmRvd09iamVjdFZhbHVlID0g
d2luZG93T2JqZWN0KCk7CiAgICAgSlNPYmplY3RSZWYgb2JqID0gSlNWYWx1ZVRvT2JqZWN0KGN0
eCwgd2luZG93T2JqZWN0VmFsdWUsIDApOwpAQCAtODk5LDQ5ICs5MDEsMTMgQEAgYm9vbCBXZWJQ
YWdlOjpleGVjdXRlSmF2YVNjcmlwdEZ1bmN0aW9uKGNvbnN0IHN0ZDo6dmVjdG9yPHN0ZDo6c3Ry
aW5nPiAmZnVuY3Rpb24KICAgICBpZiAoZnVuY3Rpb25PYmplY3QgJiYgdGhpc09iamVjdCkKICAg
ICAgICAgcmVzdWx0ID0gSlNPYmplY3RDYWxsQXNGdW5jdGlvbihjdHgsIGZ1bmN0aW9uT2JqZWN0
LCB0aGlzT2JqZWN0LCBhcmdzLnNpemUoKSwgYXJnTGlzdFJlZi5kYXRhKCksIDApOwogCi0gICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGFyZ3Muc2l6ZSgpOyArK2kpCi0gICAgICAgIEpTU3Ry
aW5nUmVsZWFzZShhcmdMaXN0W2ldKTsKLQogICAgIEpTQzo6SlNWYWx1ZSB2YWx1ZSA9IHRvSlMo
ZXhlYywgcmVzdWx0KTsKLQogICAgIGlmICghdmFsdWUpIHsKLSAgICAgICAgcmV0dXJuVHlwZSA9
IEpTRXhjZXB0aW9uOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgSlNUeXBl
IHR5cGUgPSBKU1ZhbHVlR2V0VHlwZShjdHgsIHJlc3VsdCk7Ci0KLSAgICBzd2l0Y2ggKHR5cGUp
IHsKLSAgICBjYXNlIGtKU1R5cGVOdWxsOgotICAgICAgICByZXR1cm5UeXBlID0gSlNOdWxsOwot
ICAgICAgICBicmVhazsKLSAgICBjYXNlIGtKU1R5cGVCb29sZWFuOgotICAgICAgICByZXR1cm5U
eXBlID0gSlNCb29sZWFuOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIGtKU1R5cGVOdW1iZXI6
Ci0gICAgICAgIHJldHVyblR5cGUgPSBKU051bWJlcjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2Fz
ZSBrSlNUeXBlU3RyaW5nOgotICAgICAgICByZXR1cm5UeXBlID0gSlNTdHJpbmc7Ci0gICAgICAg
IGJyZWFrOwotICAgIGNhc2Uga0pTVHlwZU9iamVjdDoKLSAgICAgICAgcmV0dXJuVHlwZSA9IEpT
T2JqZWN0OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIGtKU1R5cGVVbmRlZmluZWQ6Ci0gICAg
ZGVmYXVsdDoKLSAgICAgICAgcmV0dXJuVHlwZSA9IEpTVW5kZWZpbmVkOwotICAgICAgICBicmVh
azsKLSAgICB9Ci0KLSAgICBpZiAocmV0dXJuVHlwZSA9PSBKU0Jvb2xlYW4gfHwgcmV0dXJuVHlw
ZSA9PSBKU051bWJlciB8fCByZXR1cm5UeXBlID09IEpTU3RyaW5nIHx8IHJldHVyblR5cGUgPT0g
SlNPYmplY3QpIHsKLSAgICAgICAgSlNTdHJpbmdSZWYgc3RyaW5nUmVmID0gSlNWYWx1ZVRvU3Ry
aW5nQ29weShjdHgsIHJlc3VsdCwgMCk7Ci0gICAgICAgIHNpemVfdCBidWZmZXJTaXplID0gSlNT
dHJpbmdHZXRNYXhpbXVtVVRGOENTdHJpbmdTaXplKHN0cmluZ1JlZik7Ci0gICAgICAgIFdURjo6
VmVjdG9yPGNoYXI+IGJ1ZmZlcihidWZmZXJTaXplKTsKLSAgICAgICAgSlNTdHJpbmdHZXRVVEY4
Q1N0cmluZyhzdHJpbmdSZWYsIGJ1ZmZlci5kYXRhKCksIGJ1ZmZlclNpemUpOwotICAgICAgICBy
ZXR1cm5WYWx1ZSA9IFdlYlN0cmluZzo6ZnJvbVV0ZjgoYnVmZmVyLmRhdGEoKSk7CisgICAgICAg
IHJldHVyblZhbHVlLnNldFR5cGUoSmF2YVNjcmlwdFZhcmlhbnQ6OkV4Y2VwdGlvbik7CisgICAg
ICAgIHJldHVybjsKICAgICB9CiAKLSAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm5WYWx1ZSA9
IEpTVmFsdWVSZWZUb0JsYWNrQmVycnlKYXZhU2NyaXB0VmFyaWFudChjdHgsIHJlc3VsdCk7CiB9
CiAKIHZvaWQgV2ViUGFnZVByaXZhdGU6OnN0b3BDdXJyZW50TG9hZCgpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvYmxh
Y2tiZXJyeS9BcGkvV2ViUGFnZS5oCmluZGV4IDVjYTRhMjUuLjFjYzQwZWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5oCkBAIC0yMCw2ICsyMCw3IEBACiAjZGVmaW5lIFdl
YlBhZ2VfaAogCiAjaW5jbHVkZSAiQmxhY2tCZXJyeUdsb2JhbC5oIgorI2luY2x1ZGUgIkphdmFT
Y3JpcHRWYXJpYW50LmgiCiAjaW5jbHVkZSAiV2ViU3RyaW5nLmgiCiAKICNpbmNsdWRlIDxCbGFj
a0JlcnJ5UGxhdGZvcm1HdWFyZGVkUG9pbnRlci5oPgpAQCAtMTA1LDcgKzEwNiw3IEBAIHB1Ymxp
YzoKICAgICAvLyBUYWtlcyBhIFVURjE2IGVuY29kZWQgc2NyaXB0IHRoYXQgaXMgdXNlZCBleHBs
aWNpdGx5IGJ5IHRoZSBwYXR0ZXJuIG1hdGNoaW5nIGNvZGUKICAgICBib29sIGV4ZWN1dGVKYXZh
U2NyaXB0SW5Jc29sYXRlZFdvcmxkKGNvbnN0IHN0ZDo6d3N0cmluZyYgc2NyaXB0LCBKYXZhU2Ny
aXB0RGF0YVR5cGUmIHJldHVyblR5cGUsIFdlYlN0cmluZyYgcmV0dXJuVmFsdWUpOwogCi0gICAg
Ym9vbCBleGVjdXRlSmF2YVNjcmlwdEZ1bmN0aW9uKGNvbnN0IHN0ZDo6dmVjdG9yPHN0ZDo6c3Ry
aW5nPiAmc2NyaXB0LCBjb25zdCBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gJmFyZ3MsIEphdmFT
Y3JpcHREYXRhVHlwZSYgcmV0dXJuVHlwZSwgV2ViU3RyaW5nJiByZXR1cm5WYWx1ZSk7CisgICAg
dm9pZCBleGVjdXRlSmF2YVNjcmlwdEZ1bmN0aW9uKGNvbnN0IHN0ZDo6dmVjdG9yPHN0ZDo6c3Ry
aW5nPiAmZnVuY3Rpb24sIGNvbnN0IHN0ZDo6dmVjdG9yPEphdmFTY3JpcHRWYXJpYW50PiAmYXJn
cywgSmF2YVNjcmlwdFZhcmlhbnQmIHJldHVyblZhbHVlKTsKIAogICAgIHZvaWQgaW5pdGlhbGl6
ZUljb25EYXRhQmFzZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwppbmRleCA2ZWVk
ZWQyLi4wMmU4ODgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0
NCBAQAorMjAxMi0wOC0wOSAgQmVuamFtaW4gQyBNZXllciAgPGJtZXllckByaW0uY29tPgorCisg
ICAgICAgIEludHJvZHVjZSBKYXZhU2NyaXB0VmFyaWFudCBvYmplY3QuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MzY0NAorCisgICAgICAgIFRoZSBK
YXZhU2NyaXB0VmFyaWFudCBjYW4gYmUgdXNlZCBmb3IgZnVuY3Rpb25zIHRoYXQgcmV0dXJuIHJl
c3VsdHMgZnJvbQorICAgICAgICBKYXZhU2NyaXB0IHN1Y2ggYXMgZXhlY3V0ZUphdmFTY3JpcHQg
b3IgZnVuY3Rpb25zIHRoYXQgdGFrZSBhcmd1bWVudHMKKyAgICAgICAgdG8gcGFzcyBhIHZhcmlh
YmxlIHRvIEphdmFTY3JpcHQgYW5kIHRoZXkgd2FudCB0byBtYWtlIHN1cmUgdGhlIHR5cGUKKyAg
ICAgICAgaXMgY29ycmVjdC4KKworICAgICAgICBDb252ZXJ0IGV4ZWN1dGVKYXZhU2NyaXB0RnVu
Y3Rpb24oKSB0byB1c2UgdGhpcyBkYXRhIHR5cGUgYXMgdGhlCisgICAgICAgIGV4YW1wbGUsIG90
aGVyIGZ1bmN0aW9ucyB3aWxsIGJlIGNvbnZlcnRlZCBpbiB0aGUgZnV0dXJlLgorCisgICAgICAg
IFBSIDE0OTI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSm9lIE1hc29uCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQXBpL0phdmFTY3JpcHRWYXJpYW50
LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2Vi
S2l0OjpKU1ZhbHVlUmVmVG9CbGFja0JlcnJ5SmF2YVNjcmlwdFZhcmlhbnQpOgorICAgICAgICAo
QmxhY2tCZXJyeTo6V2ViS2l0OjpCbGFja0JlcnJ5SmF2YVNjcmlwdFZhcmlhbnRUb0pTVmFsdWVS
ZWYpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpKYXZhU2NyaXB0VmFyaWFudDo6SmF2
YVNjcmlwdFZhcmlhbnQpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpKYXZhU2NyaXB0
VmFyaWFudDo6fkphdmFTY3JpcHRWYXJpYW50KToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktp
dDo6SmF2YVNjcmlwdFZhcmlhbnQ6Om9wZXJhdG9yPSk6CisgICAgICAgIChCbGFja0JlcnJ5OjpX
ZWJLaXQ6OkphdmFTY3JpcHRWYXJpYW50OjpzZXRUeXBlKToKKyAgICAgICAgKEJsYWNrQmVycnk6
OldlYktpdDo6SmF2YVNjcmlwdFZhcmlhbnQ6OnR5cGUpOgorICAgICAgICAoQmxhY2tCZXJyeTo6
V2ViS2l0OjpKYXZhU2NyaXB0VmFyaWFudDo6c2V0RG91YmxlKToKKyAgICAgICAgKEJsYWNrQmVy
cnk6OldlYktpdDo6SmF2YVNjcmlwdFZhcmlhbnQ6OmRvdWJsZVZhbHVlKToKKyAgICAgICAgKEJs
YWNrQmVycnk6OldlYktpdDo6SmF2YVNjcmlwdFZhcmlhbnQ6OnNldFN0cmluZyk6CisgICAgICAg
IChCbGFja0JlcnJ5OjpXZWJLaXQ6OkphdmFTY3JpcHRWYXJpYW50OjpzdHJpbmdWYWx1ZSk6Cisg
ICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OkphdmFTY3JpcHRWYXJpYW50OjpzZXRCb29sZWFu
KToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6SmF2YVNjcmlwdFZhcmlhbnQ6OmJvb2xl
YW5WYWx1ZSk6CisgICAgICAgICogQXBpL0phdmFTY3JpcHRWYXJpYW50Lmg6IEFkZGVkLgorICAg
ICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBBcGkvSmF2YVNjcmlwdFZhcmlhbnRfcC5oOiBBZGRl
ZC4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogQXBpL1dlYlBhZ2UuY3BwOgorICAgICAg
ICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlOjpleGVjdXRlSmF2YVNjcmlwdEZ1bmN0aW9u
KToKKyAgICAgICAgKiBBcGkvV2ViUGFnZS5oOgorCiAyMDEyLTA4LTA4ICBKYWNreSBKaWFuZyAg
PHpoYWppYW5nQHJpbS5jb20+CiAKICAgICAgICAgW0JsYWNrQmVycnldIEltcGxlbWVudCBhYm91
dDptZW1vcnktbGl2ZQotLSAKMS43LjEKCg==
</data>
<flag name="review"
          id="167449"
          type_id="1"
          status="-"
          setter="manyoso"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>157551</attachid>
            <date>2012-08-09 14:32:31 -0700</date>
            <delta_ts>2012-08-10 11:35:53 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-2012-08-09-Benjamin-C-Meyer-bmeyer-rim.com.patch</filename>
            <type>text/plain</type>
            <size>19585</size>
            <attacher name="Benjamin Meyer">ben</attacher>
            
              <data encoding="base64">RnJvbSBiMzVhNDg1MDcxNzg5MmU4ZmIxNWEzNzM3ZmQ5NDY2YTkxMGY2Mzc1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBCZW5qYW1pbiBDIE1leWVyIDxibWV5ZXJAcmltLmNvbT4KRGF0
ZTogV2VkLCAxIEF1ZyAyMDEyIDE1OjAxOjMyIC0wNDAwClN1YmplY3Q6IFtQQVRDSF0gMjAxMi0w
OC0wOSAgQmVuamFtaW4gQyBNZXllciAgPGJtZXllckByaW0uY29tPgoKICAgICAgICBJbnRyb2R1
Y2UgSmF2YVNjcmlwdFZhcmlhbnQgb2JqZWN0LgogICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD05MzY0NAoKICAgICAgICBUaGUgSmF2YVNjcmlwdFZhcmlhbnQg
Y2FuIGJlIHVzZWQgZm9yIGZ1bmN0aW9ucyB0aGF0IHJldHVybiByZXN1bHRzIGZyb20KICAgICAg
ICBKYXZhU2NyaXB0IHN1Y2ggYXMgZXhlY3V0ZUphdmFTY3JpcHQgb3IgZnVuY3Rpb25zIHRoYXQg
dGFrZSBhcmd1bWVudHMKICAgICAgICB0byBwYXNzIGEgdmFyaWFibGUgdG8gSmF2YVNjcmlwdCBh
bmQgdGhleSB3YW50IHRvIG1ha2Ugc3VyZSB0aGUgdHlwZQogICAgICAgIGlzIGNvcnJlY3QuCgog
ICAgICAgIENvbnZlcnQgZXhlY3V0ZUphdmFTY3JpcHRGdW5jdGlvbigpIHRvIHVzZSB0aGlzIGRh
dGEgdHlwZSBhcyB0aGUKICAgICAgICBleGFtcGxlLCBvdGhlciBmdW5jdGlvbnMgd2lsbCBiZSBj
b252ZXJ0ZWQgaW4gdGhlIGZ1dHVyZS4KCiAgICAgICAgUFIgMTQ5MjkKCiAgICAgICAgUmV2aWV3
ZWQgYnkgSm9lIE1hc29uCiAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBUcmVhdAotLS0KIFNvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyMCArKwog
U291cmNlL1dlYktpdC9QbGF0Zm9ybUJsYWNrQmVycnkuY21ha2UgICAgICAgICAgICAgfCAgICAx
ICsKIFNvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvSmF2YVNjcmlwdFZhcmlhbnQuY3BwIHwg
IDIxNSArKysrKysrKysrKysrKysrKysrKwogU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9K
YXZhU2NyaXB0VmFyaWFudC5oICAgfCAgIDc4ICsrKysrKysKIFNvdXJjZS9XZWJLaXQvYmxhY2ti
ZXJyeS9BcGkvSmF2YVNjcmlwdFZhcmlhbnRfcC5oIHwgICAzNiArKysrCiBTb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwICAgICAgICAgICB8ICAgNjggKystLS0tLQogU291
cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmggICAgICAgICAgICAgfCAgICAzICst
CiBTb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICB8ICAg
NDEgKysrKwogOCBmaWxlcyBjaGFuZ2VkLCA0MTAgaW5zZXJ0aW9ucygrKSwgNTIgZGVsZXRpb25z
KC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9KYXZh
U2NyaXB0VmFyaWFudC5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0L2JsYWNr
YmVycnkvQXBpL0phdmFTY3JpcHRWYXJpYW50LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2Uv
V2ViS2l0L2JsYWNrYmVycnkvQXBpL0phdmFTY3JpcHRWYXJpYW50X3AuaAoKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXgg
MzUzMWM3NC4uMGRiNjE1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxMi0wOC0wOSAg
QmVuamFtaW4gQyBNZXllciAgPGJtZXllckByaW0uY29tPgorCisgICAgICAgIEludHJvZHVjZSBK
YXZhU2NyaXB0VmFyaWFudCBvYmplY3QuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD05MzY0NAorCisgICAgICAgIFRoZSBKYXZhU2NyaXB0VmFyaWFudCBj
YW4gYmUgdXNlZCBmb3IgZnVuY3Rpb25zIHRoYXQgcmV0dXJuIHJlc3VsdHMgZnJvbQorICAgICAg
ICBKYXZhU2NyaXB0IHN1Y2ggYXMgZXhlY3V0ZUphdmFTY3JpcHQgb3IgZnVuY3Rpb25zIHRoYXQg
dGFrZSBhcmd1bWVudHMKKyAgICAgICAgdG8gcGFzcyBhIHZhcmlhYmxlIHRvIEphdmFTY3JpcHQg
YW5kIHRoZXkgd2FudCB0byBtYWtlIHN1cmUgdGhlIHR5cGUKKyAgICAgICAgaXMgY29ycmVjdC4K
KworICAgICAgICBDb252ZXJ0IGV4ZWN1dGVKYXZhU2NyaXB0RnVuY3Rpb24oKSB0byB1c2UgdGhp
cyBkYXRhIHR5cGUgYXMgdGhlCisgICAgICAgIGV4YW1wbGUsIG90aGVyIGZ1bmN0aW9ucyB3aWxs
IGJlIGNvbnZlcnRlZCBpbiB0aGUgZnV0dXJlLgorCisgICAgICAgIFBSIDE0OTI5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgSm9lIE1hc29uCisgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gVHJlYXQK
KworICAgICAgICAqIFBsYXRmb3JtQmxhY2tCZXJyeS5jbWFrZToKKwogMjAxMi0wOC0wMSAgQW50
b25pbyBHb21lcyAgPGFnb21lc0ByaW0uY29tPgogCiAgICAgICAgIFtCbGFja0JlcnJ5XSBJbXBs
ZW1lbnQgSW5SZWdpb25TY3JvbGxlciBjbGFzcyBhcyBhIGluLXJlZ2lvbiBzY3JvbGwgY29udHJv
bGxlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybUJsYWNrQmVycnkuY21ha2Ug
Yi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtQmxhY2tCZXJyeS5jbWFrZQppbmRleCA2NDYwNjgxLi4x
ODVlNWI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtQmxhY2tCZXJyeS5jbWFr
ZQorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtQmxhY2tCZXJyeS5jbWFrZQpAQCAtNjcsNiAr
NjcsNyBAQCBMSVNUKEFQUEVORCBXZWJLaXRfU09VUkNFUwogICAgIGJsYWNrYmVycnkvQXBpL1dl
YlNldHRpbmdzLmNwcAogICAgIGJsYWNrYmVycnkvQXBpL1dlYlN0cmluZy5jcHAKICAgICBibGFj
a2JlcnJ5L0FwaS9XZWJWaWV3cG9ydEFyZ3VtZW50cy5jcHAKKyAgICBibGFja2JlcnJ5L0FwaS9K
YXZhU2NyaXB0VmFyaWFudC5jcHAKICAgICBibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0F1dG9m
aWxsTWFuYWdlci5jcHAKICAgICBibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0NhY2hlQ2xpZW50
QmxhY2tCZXJyeS5jcHAKICAgICBibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dEJsYWNrQmVycnkuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBp
L0phdmFTY3JpcHRWYXJpYW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvSmF2
YVNjcmlwdFZhcmlhbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE5
NjdhZTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL0ph
dmFTY3JpcHRWYXJpYW50LmNwcApAQCAtMCwwICsxLDIxNSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMiBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVz
c2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg
b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJh
cnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAq
IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuICBTZWUgdGhlIEdOVQorICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y
IG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFsb25nIHdpdGggdGhp
cyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0
aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAw
MjExMC0xMzAxICBVU0EKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSmF2
YVNjcmlwdFZhcmlhbnQuaCIKKworI2luY2x1ZGUgIkphdmFTY3JpcHRWYXJpYW50X3AuaCIKKyNp
bmNsdWRlICJXZWJQYWdlLmgiCisjaW5jbHVkZSA8SlNTdHJpbmdSZWYuaD4KKyNpbmNsdWRlIDxK
U1ZhbHVlUmVmLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5o
PgorCituYW1lc3BhY2UgQmxhY2tCZXJyeSB7CituYW1lc3BhY2UgV2ViS2l0IHsKKworSmF2YVNj
cmlwdFZhcmlhbnQgSlNWYWx1ZVJlZlRvQmxhY2tCZXJyeUphdmFTY3JpcHRWYXJpYW50KGNvbnN0
IEpTR2xvYmFsQ29udGV4dFJlZiYgY3R4LCBjb25zdCBKU1ZhbHVlUmVmJiB2YWx1ZSkKK3sKKyAg
ICBKYXZhU2NyaXB0VmFyaWFudCByZXR1cm5WYWx1ZTsKKworICAgIHN3aXRjaCAoSlNWYWx1ZUdl
dFR5cGUoY3R4LCB2YWx1ZSkpIHsKKyAgICBjYXNlIGtKU1R5cGVOdWxsOgorICAgICAgICByZXR1
cm5WYWx1ZS5zZXRUeXBlKEphdmFTY3JpcHRWYXJpYW50OjpOdWxsKTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBrSlNUeXBlQm9vbGVhbjoKKyAgICAgICAgcmV0dXJuVmFsdWUuc2V0Qm9vbGVh
bihKU1ZhbHVlVG9Cb29sZWFuKGN0eCwgdmFsdWUpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBrSlNUeXBlTnVtYmVyOgorICAgICAgICByZXR1cm5WYWx1ZS5zZXREb3VibGUoSlNWYWx1ZVRv
TnVtYmVyKGN0eCwgdmFsdWUsIDApKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBrSlNUeXBl
U3RyaW5nOiB7CisgICAgICAgIEpTU3RyaW5nUmVmIHN0cmluZ1JlZiA9IEpTVmFsdWVUb1N0cmlu
Z0NvcHkoY3R4LCB2YWx1ZSwgMCk7CisgICAgICAgIHNpemVfdCBidWZmZXJTaXplID0gSlNTdHJp
bmdHZXRNYXhpbXVtVVRGOENTdHJpbmdTaXplKHN0cmluZ1JlZik7CisgICAgICAgIFdURjo6VmVj
dG9yPGNoYXI+IGJ1ZmZlcihidWZmZXJTaXplKTsKKyAgICAgICAgSlNTdHJpbmdHZXRVVEY4Q1N0
cmluZyhzdHJpbmdSZWYsIGJ1ZmZlci5kYXRhKCksIGJ1ZmZlclNpemUpOworICAgICAgICByZXR1
cm5WYWx1ZS5zZXRTdHJpbmcoV2ViU3RyaW5nOjpmcm9tVXRmOChidWZmZXIuZGF0YSgpKS51dGY4
KCkuY19zdHIoKSk7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIGtKU1R5cGVPYmpl
Y3Q6CisgICAgICAgIHJldHVyblZhbHVlLnNldFR5cGUoSmF2YVNjcmlwdFZhcmlhbnQ6Ok9iamVj
dCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Uga0pTVHlwZVVuZGVmaW5lZDoKKyAgICAgICAg
cmV0dXJuVmFsdWUuc2V0VHlwZShKYXZhU2NyaXB0VmFyaWFudDo6VW5kZWZpbmVkKTsKKyAgICAg
ICAgYnJlYWs7CisgICAgfQorICAgIHJldHVybiByZXR1cm5WYWx1ZTsKK30KKworSlNWYWx1ZVJl
ZiBCbGFja0JlcnJ5SmF2YVNjcmlwdFZhcmlhbnRUb0pTVmFsdWVSZWYoY29uc3QgSlNHbG9iYWxD
b250ZXh0UmVmJiBjdHgsIGNvbnN0IEphdmFTY3JpcHRWYXJpYW50JiB2YXJpYW50KQoreworICAg
IEpTVmFsdWVSZWYgcmVmID0gMDsKKyAgICBzd2l0Y2ggKHZhcmlhbnQudHlwZSgpKSB7CisgICAg
Y2FzZSBKYXZhU2NyaXB0VmFyaWFudDo6VW5kZWZpbmVkOgorICAgICAgICByZWYgPSBKU1ZhbHVl
TWFrZVVuZGVmaW5lZChjdHgpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEphdmFTY3JpcHRW
YXJpYW50OjpOdWxsOgorICAgICAgICByZWYgPSBKU1ZhbHVlTWFrZU51bGwoY3R4KTsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBKYXZhU2NyaXB0VmFyaWFudDo6Qm9vbGVhbjoKKyAgICAgICAg
cmVmID0gSlNWYWx1ZU1ha2VCb29sZWFuKGN0eCwgdmFyaWFudC5ib29sZWFuVmFsdWUoKSk7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgSmF2YVNjcmlwdFZhcmlhbnQ6Ok51bWJlcjoKKyAgICAg
ICAgcmVmID0gSlNWYWx1ZU1ha2VOdW1iZXIoY3R4LCB2YXJpYW50LmRvdWJsZVZhbHVlKCkpOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIEphdmFTY3JpcHRWYXJpYW50OjpTdHJpbmc6IHsKKyAg
ICAgICAgSlNTdHJpbmdSZWYgc3RyID0gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcodmFy
aWFudC5zdHJpbmdWYWx1ZSgpKTsKKyAgICAgICAgcmVmID0gSlNWYWx1ZU1ha2VTdHJpbmcoY3R4
LCBzdHIpOworICAgICAgICBKU1N0cmluZ1JlbGVhc2Uoc3RyKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgfQorICAgIGNhc2UgSmF2YVNjcmlwdFZhcmlhbnQ6OkV4Y2VwdGlvbjoKKyAgICBjYXNlIEph
dmFTY3JpcHRWYXJpYW50OjpPYmplY3Q6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgICAgICBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIHJlZjsKK30KKworSmF2YVNjcmlwdFZh
cmlhbnQ6OkphdmFTY3JpcHRWYXJpYW50KCkKKyAgICA6IG1fdHlwZShVbmRlZmluZWQpCisgICAg
LCBtX3N0cmluZ1ZhbHVlKDApCit7Cit9CisKK0phdmFTY3JpcHRWYXJpYW50OjpKYXZhU2NyaXB0
VmFyaWFudChkb3VibGUgdmFsdWUpCisgICAgOiBtX3R5cGUoVW5kZWZpbmVkKQorICAgICwgbV9z
dHJpbmdWYWx1ZSgwKQoreworICAgIHNldERvdWJsZSh2YWx1ZSk7Cit9CisKK0phdmFTY3JpcHRW
YXJpYW50OjpKYXZhU2NyaXB0VmFyaWFudChpbnQgdmFsdWUpCisgICAgOiBtX3R5cGUoVW5kZWZp
bmVkKQorICAgICwgbV9zdHJpbmdWYWx1ZSgwKQoreworICAgIHNldERvdWJsZSh2YWx1ZSk7Cit9
CisKK0phdmFTY3JpcHRWYXJpYW50OjpKYXZhU2NyaXB0VmFyaWFudChjb25zdCBjaGFyKiB2YWx1
ZSkKKyAgICA6IG1fdHlwZShVbmRlZmluZWQpCisgICAgLCBtX3N0cmluZ1ZhbHVlKDApCit7Cisg
ICAgc2V0U3RyaW5nKHZhbHVlKTsKK30KKworSmF2YVNjcmlwdFZhcmlhbnQ6OkphdmFTY3JpcHRW
YXJpYW50KGNvbnN0IHN0ZDo6c3RyaW5nJiB2YWx1ZSkKKyAgICA6IG1fdHlwZShVbmRlZmluZWQp
CisgICAgLCBtX3N0cmluZ1ZhbHVlKDApCit7CisgICAgc2V0U3RyaW5nKHZhbHVlLmNfc3RyKCkp
OworfQorCitKYXZhU2NyaXB0VmFyaWFudDo6SmF2YVNjcmlwdFZhcmlhbnQoYm9vbCB2YWx1ZSkK
KyAgICA6IG1fdHlwZShVbmRlZmluZWQpCisgICAgLCBtX3N0cmluZ1ZhbHVlKDApCit7CisgICAg
c2V0Qm9vbGVhbih2YWx1ZSk7Cit9CisKK0phdmFTY3JpcHRWYXJpYW50OjpKYXZhU2NyaXB0VmFy
aWFudChjb25zdCBKYXZhU2NyaXB0VmFyaWFudCAmdikKKyAgICA6IG1fdHlwZShVbmRlZmluZWQp
CisgICAgLCBtX3N0cmluZ1ZhbHVlKDApCit7CisgICAgdGhpcy0+b3BlcmF0b3I9KHYpOworfQor
CitKYXZhU2NyaXB0VmFyaWFudDo6fkphdmFTY3JpcHRWYXJpYW50KCkKK3sKKyAgICAvLyBQcmV2
ZW50IG1lbW9yeSBsZWFrcyBpZiB3ZSBoYXZlIHN0cmluZ3MKKyAgICBzZXRUeXBlKFVuZGVmaW5l
ZCk7Cit9CisKK0phdmFTY3JpcHRWYXJpYW50JiBKYXZhU2NyaXB0VmFyaWFudDo6b3BlcmF0b3I9
KGNvbnN0IEphdmFTY3JpcHRWYXJpYW50JiB2KQoreworICAgIHN3aXRjaCAodi50eXBlKCkpIHsK
KyAgICBjYXNlIEJvb2xlYW46CisgICAgICAgIHNldEJvb2xlYW4odi5ib29sZWFuVmFsdWUoKSk7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTnVtYmVyOgorICAgICAgICBzZXREb3VibGUodi5k
b3VibGVWYWx1ZSgpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTdHJpbmc6CisgICAgICAg
IHNldFN0cmluZyh2LnN0cmluZ1ZhbHVlKCkpOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0
OgorICAgICAgICBzZXRUeXBlKHYudHlwZSgpKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisg
ICAgcmV0dXJuICp0aGlzOworfQorCit2b2lkIEphdmFTY3JpcHRWYXJpYW50OjpzZXRUeXBlKGNv
bnN0IERhdGFUeXBlJiB0eXBlKQoreworICAgIGlmIChtX3R5cGUgPT0gU3RyaW5nKQorICAgICAg
ICBmcmVlKG1fc3RyaW5nVmFsdWUpOworICAgIG1fdHlwZSA9IHR5cGU7CisgICAgbV9zdHJpbmdW
YWx1ZSA9IDA7Cit9CisKK0phdmFTY3JpcHRWYXJpYW50OjpEYXRhVHlwZSBKYXZhU2NyaXB0VmFy
aWFudDo6dHlwZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdHlwZTsKK30KKwordm9pZCBKYXZh
U2NyaXB0VmFyaWFudDo6c2V0RG91YmxlKGRvdWJsZSB2YWx1ZSkKK3sKKyAgICBzZXRUeXBlKE51
bWJlcik7CisgICAgbV9kb3VibGVWYWx1ZSA9IHZhbHVlOworfQorCitkb3VibGUgSmF2YVNjcmlw
dFZhcmlhbnQ6OmRvdWJsZVZhbHVlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9kb3VibGVWYWx1
ZTsKK30KKwordm9pZCBKYXZhU2NyaXB0VmFyaWFudDo6c2V0U3RyaW5nKGNvbnN0IGNoYXIqIHZh
bHVlKQoreworICAgIHNldFR5cGUoU3RyaW5nKTsKKyAgICBtX3N0cmluZ1ZhbHVlID0gc3RyZHVw
KHZhbHVlKTsKK30KKworY2hhciogSmF2YVNjcmlwdFZhcmlhbnQ6OnN0cmluZ1ZhbHVlKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gbV9zdHJpbmdWYWx1ZTsKK30KKwordm9pZCBKYXZhU2NyaXB0VmFy
aWFudDo6c2V0Qm9vbGVhbihib29sIHZhbHVlKQoreworICAgIHNldFR5cGUoQm9vbGVhbik7Cisg
ICAgbV9ib29sZWFuVmFsdWUgPSB2YWx1ZTsKK30KKworYm9vbCBKYXZhU2NyaXB0VmFyaWFudDo6
Ym9vbGVhblZhbHVlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9ib29sZWFuVmFsdWU7Cit9CisK
K30KK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvSmF2YVNjcmlw
dFZhcmlhbnQuaCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvSmF2YVNjcmlwdFZhcmlh
bnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNTFiMWYwCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9KYXZhU2NyaXB0VmFyaWFu
dC5oCkBAIC0wLDAgKzEsNzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgUmVzZWFyY2gg
SW4gTW90aW9uIExpbWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICog
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1Ymxp
YworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlv
bikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk
IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkg
V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBH
TlUKKyAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisg
KgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBH
ZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90
LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJh
bmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisg
Ki8KKworI2lmbmRlZiBKYXZhU2NyaXB0VmFyaWFudF9oCisjZGVmaW5lIEphdmFTY3JpcHRWYXJp
YW50X2gKKworI2luY2x1ZGUgIkJsYWNrQmVycnlHbG9iYWwuaCIKKworI2luY2x1ZGUgPHN0cmlu
Zz4KKworbmFtZXNwYWNlIEJsYWNrQmVycnkgeworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNz
IEJMQUNLQkVSUllfRVhQT1JUIEphdmFTY3JpcHRWYXJpYW50IHsKKworcHVibGljOgorICAgIGVu
dW0gRGF0YVR5cGUgeworICAgICAgICBVbmRlZmluZWQgPSAwLAorICAgICAgICBOdWxsLAorICAg
ICAgICBCb29sZWFuLAorICAgICAgICBOdW1iZXIsCisgICAgICAgIFN0cmluZywKKyAgICAgICAg
T2JqZWN0LAorICAgICAgICBFeGNlcHRpb24KKyAgICB9OworCisgICAgSmF2YVNjcmlwdFZhcmlh
bnQoKTsKKyAgICBKYXZhU2NyaXB0VmFyaWFudChjb25zdCBKYXZhU2NyaXB0VmFyaWFudCYpOwor
ICAgIEphdmFTY3JpcHRWYXJpYW50KGRvdWJsZSk7CisgICAgSmF2YVNjcmlwdFZhcmlhbnQoaW50
KTsKKyAgICBKYXZhU2NyaXB0VmFyaWFudChjb25zdCBjaGFyKik7CisgICAgSmF2YVNjcmlwdFZh
cmlhbnQoYm9vbCk7CisgICAgSmF2YVNjcmlwdFZhcmlhbnQoY29uc3Qgc3RkOjpzdHJpbmcmKTsK
KyAgICB+SmF2YVNjcmlwdFZhcmlhbnQoKTsKKworICAgIEphdmFTY3JpcHRWYXJpYW50JiBvcGVy
YXRvcj0oY29uc3QgSmF2YVNjcmlwdFZhcmlhbnQmKTsKKworICAgIHZvaWQgc2V0VHlwZShjb25z
dCBEYXRhVHlwZSYpOworICAgIERhdGFUeXBlIHR5cGUoKSBjb25zdDsKKworICAgIHZvaWQgc2V0
RG91YmxlKGRvdWJsZSk7CisgICAgZG91YmxlIGRvdWJsZVZhbHVlKCkgY29uc3Q7CisKKyAgICB2
b2lkIHNldFN0cmluZyhjb25zdCBjaGFyKik7CisgICAgY2hhciogc3RyaW5nVmFsdWUoKSBjb25z
dDsKKworICAgIHZvaWQgc2V0Qm9vbGVhbihib29sKTsKKyAgICBib29sIGJvb2xlYW5WYWx1ZSgp
IGNvbnN0OworCitwcml2YXRlOgorICAgIERhdGFUeXBlIG1fdHlwZTsKKworICAgIHVuaW9uIHsK
KyAgICAgICAgYm9vbCBtX2Jvb2xlYW5WYWx1ZTsKKyAgICAgICAgZG91YmxlIG1fZG91YmxlVmFs
dWU7CisgICAgICAgIGNoYXIqIG1fc3RyaW5nVmFsdWU7CisgICAgfTsKK307CisKK30KK30KKwor
I2VuZGlmIC8vIEphdmFTY3JpcHRWYXJpYW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9BcGkvSmF2YVNjcmlwdFZhcmlhbnRfcC5oIGIvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L0FwaS9KYXZhU2NyaXB0VmFyaWFudF9wLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uMDI0Yjg3OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxh
Y2tiZXJyeS9BcGkvSmF2YVNjcmlwdFZhcmlhbnRfcC5oCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTIgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQg
YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgor
ICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg
aW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExlc3NlciBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2Vp
dmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBh
bG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2Fy
ZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwg
Qm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2lmbmRlZiBKYXZhU2NyaXB0VmFy
aWFudF9wX2gKKyNkZWZpbmUgSmF2YVNjcmlwdFZhcmlhbnRfcF9oCisKKyNpbmNsdWRlICJKYXZh
U2NyaXB0VmFyaWFudC5oIgorCisjaW5jbHVkZSA8SlNDb250ZXh0UmVmLmg+CisjaW5jbHVkZSA8
SlNWYWx1ZVJlZi5oPgorCituYW1lc3BhY2UgQmxhY2tCZXJyeSB7CituYW1lc3BhY2UgV2ViS2l0
IHsKKworSmF2YVNjcmlwdFZhcmlhbnQgSlNWYWx1ZVJlZlRvQmxhY2tCZXJyeUphdmFTY3JpcHRW
YXJpYW50KGNvbnN0IEpTR2xvYmFsQ29udGV4dFJlZiYsIGNvbnN0IEpTVmFsdWVSZWYmKTsKK0pT
VmFsdWVSZWYgQmxhY2tCZXJyeUphdmFTY3JpcHRWYXJpYW50VG9KU1ZhbHVlUmVmKGNvbnN0IEpT
R2xvYmFsQ29udGV4dFJlZiYsIGNvbnN0IEphdmFTY3JpcHRWYXJpYW50Jik7CisKK30KK30KKwor
I2VuZGlmIC8vIEphdmFTY3JpcHRWYXJpYW50X3BfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9B
cGkvV2ViUGFnZS5jcHAKaW5kZXggMTJkYjRmYi4uZjQ4NjgwOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwCkBAIC03OCw2ICs3OCw3IEBACiAjaW5jbHVkZSAiSW5z
cGVjdG9yQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkluc3BlY3Rvck92ZXJsYXkuaCIKICNpbmNs
dWRlICJKYXZhU2NyaXB0RGVidWdnZXJCbGFja0JlcnJ5LmgiCisjaW5jbHVkZSAiSmF2YVNjcmlw
dFZhcmlhbnRfcC5oIgogI2luY2x1ZGUgIkxheWVyV2ViS2l0VGhyZWFkLmgiCiAjaW5jbHVkZSAi
TG9jYWxGaWxlU3lzdGVtLmgiCiAjaW5jbHVkZSAiTmV0d29ya01hbmFnZXIuaCIKQEAgLTg2Mywy
NCArODY0LDI1IEBAIGJvb2wgV2ViUGFnZTo6ZXhlY3V0ZUphdmFTY3JpcHRJbklzb2xhdGVkV29y
bGQoY29uc3QgY2hhciogc2NyaXB0LCBKYXZhU2NyaXB0RGF0CiAgICAgcmV0dXJuIGQtPmV4ZWN1
dGVKYXZhU2NyaXB0SW5Jc29sYXRlZFdvcmxkKHNvdXJjZUNvZGUsIHJldHVyblR5cGUsIHJldHVy
blZhbHVlKTsKIH0KIAotYm9vbCBXZWJQYWdlOjpleGVjdXRlSmF2YVNjcmlwdEZ1bmN0aW9uKGNv
bnN0IHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiAmZnVuY3Rpb24sIGNvbnN0IHN0ZDo6dmVjdG9y
PHN0ZDo6c3RyaW5nPiAmYXJncywgSmF2YVNjcmlwdERhdGFUeXBlJiByZXR1cm5UeXBlLCBXZWJT
dHJpbmcmIHJldHVyblZhbHVlKQordm9pZCBXZWJQYWdlOjpleGVjdXRlSmF2YVNjcmlwdEZ1bmN0
aW9uKGNvbnN0IHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiAmZnVuY3Rpb24sIGNvbnN0IHN0ZDo6
dmVjdG9yPEphdmFTY3JpcHRWYXJpYW50PiAmYXJncywgSmF2YVNjcmlwdFZhcmlhbnQmIHJldHVy
blZhbHVlKQogewotICAgIGlmICghZC0+bV9tYWluRnJhbWUpCi0gICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICBpZiAoIWQtPm1fbWFpbkZyYW1lKSB7CisgICAgICAgIHJldHVyblZhbHVlLnNldFR5
cGUoSmF2YVNjcmlwdFZhcmlhbnQ6OkV4Y2VwdGlvbik7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKICAgICBKU0M6OkJpbmRpbmdzOjpSb290T2JqZWN0KiByb290ID0gZC0+bV9tYWluRnJhbWUt
PnNjcmlwdCgpLT5iaW5kaW5nUm9vdE9iamVjdCgpOwotICAgIGlmICghcm9vdCkKLSAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIGlmICghcm9vdCkgeworICAgICAgICByZXR1cm5WYWx1ZS5zZXRU
eXBlKEphdmFTY3JpcHRWYXJpYW50OjpFeGNlcHRpb24pOworICAgICAgICByZXR1cm47CisgICAg
fQorCiAgICAgSlNDOjpFeGVjU3RhdGUqIGV4ZWMgPSByb290LT5nbG9iYWxPYmplY3QoKS0+Z2xv
YmFsRXhlYygpOwogICAgIEpTR2xvYmFsQ29udGV4dFJlZiBjdHggPSB0b0dsb2JhbFJlZihleGVj
KTsKIAotICAgIFdURjo6VmVjdG9yPEpTU3RyaW5nUmVmPiBhcmdMaXN0KGFyZ3Muc2l6ZSgpKTsK
ICAgICBXVEY6OlZlY3RvcjxKU1ZhbHVlUmVmPiBhcmdMaXN0UmVmKGFyZ3Muc2l6ZSgpKTsKLSAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgYXJncy5zaXplKCk7ICsraSkgewotICAgICAgICBK
U1N0cmluZ1JlZiBzdHIgPSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhhcmdzW2ldLmNf
c3RyKCkpOwotICAgICAgICBhcmdMaXN0W2ldID0gc3RyOwotICAgICAgICBKU1ZhbHVlUmVmIHN0
clJlZiA9IEpTVmFsdWVNYWtlU3RyaW5nKGN0eCwgc3RyKTsKLSAgICAgICAgYXJnTGlzdFJlZltp
XSA9IHN0clJlZjsKLSAgICB9CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGFyZ3Muc2l6
ZSgpOyArK2kpCisgICAgICAgIGFyZ0xpc3RSZWZbaV0gPSBCbGFja0JlcnJ5SmF2YVNjcmlwdFZh
cmlhbnRUb0pTVmFsdWVSZWYoY3R4LCBhcmdzW2ldKTsKIAogICAgIEpTVmFsdWVSZWYgd2luZG93
T2JqZWN0VmFsdWUgPSB3aW5kb3dPYmplY3QoKTsKICAgICBKU09iamVjdFJlZiBvYmogPSBKU1Zh
bHVlVG9PYmplY3QoY3R4LCB3aW5kb3dPYmplY3RWYWx1ZSwgMCk7CkBAIC04OTksNDkgKzkwMSwx
MyBAQCBib29sIFdlYlBhZ2U6OmV4ZWN1dGVKYXZhU2NyaXB0RnVuY3Rpb24oY29uc3Qgc3RkOjp2
ZWN0b3I8c3RkOjpzdHJpbmc+ICZmdW5jdGlvbgogICAgIGlmIChmdW5jdGlvbk9iamVjdCAmJiB0
aGlzT2JqZWN0KQogICAgICAgICByZXN1bHQgPSBKU09iamVjdENhbGxBc0Z1bmN0aW9uKGN0eCwg
ZnVuY3Rpb25PYmplY3QsIHRoaXNPYmplY3QsIGFyZ3Muc2l6ZSgpLCBhcmdMaXN0UmVmLmRhdGEo
KSwgMCk7CiAKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgYXJncy5zaXplKCk7ICsraSkK
LSAgICAgICAgSlNTdHJpbmdSZWxlYXNlKGFyZ0xpc3RbaV0pOwotCiAgICAgSlNDOjpKU1ZhbHVl
IHZhbHVlID0gdG9KUyhleGVjLCByZXN1bHQpOwotCiAgICAgaWYgKCF2YWx1ZSkgewotICAgICAg
ICByZXR1cm5UeXBlID0gSlNFeGNlcHRpb247Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9
Ci0KLSAgICBKU1R5cGUgdHlwZSA9IEpTVmFsdWVHZXRUeXBlKGN0eCwgcmVzdWx0KTsKLQotICAg
IHN3aXRjaCAodHlwZSkgewotICAgIGNhc2Uga0pTVHlwZU51bGw6Ci0gICAgICAgIHJldHVyblR5
cGUgPSBKU051bGw7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2Uga0pTVHlwZUJvb2xlYW46Ci0g
ICAgICAgIHJldHVyblR5cGUgPSBKU0Jvb2xlYW47Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
a0pTVHlwZU51bWJlcjoKLSAgICAgICAgcmV0dXJuVHlwZSA9IEpTTnVtYmVyOwotICAgICAgICBi
cmVhazsKLSAgICBjYXNlIGtKU1R5cGVTdHJpbmc6Ci0gICAgICAgIHJldHVyblR5cGUgPSBKU1N0
cmluZzsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBrSlNUeXBlT2JqZWN0OgotICAgICAgICBy
ZXR1cm5UeXBlID0gSlNPYmplY3Q7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2Uga0pTVHlwZVVu
ZGVmaW5lZDoKLSAgICBkZWZhdWx0OgotICAgICAgICByZXR1cm5UeXBlID0gSlNVbmRlZmluZWQ7
Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLQotICAgIGlmIChyZXR1cm5UeXBlID09IEpTQm9vbGVh
biB8fCByZXR1cm5UeXBlID09IEpTTnVtYmVyIHx8IHJldHVyblR5cGUgPT0gSlNTdHJpbmcgfHwg
cmV0dXJuVHlwZSA9PSBKU09iamVjdCkgewotICAgICAgICBKU1N0cmluZ1JlZiBzdHJpbmdSZWYg
PSBKU1ZhbHVlVG9TdHJpbmdDb3B5KGN0eCwgcmVzdWx0LCAwKTsKLSAgICAgICAgc2l6ZV90IGJ1
ZmZlclNpemUgPSBKU1N0cmluZ0dldE1heGltdW1VVEY4Q1N0cmluZ1NpemUoc3RyaW5nUmVmKTsK
LSAgICAgICAgV1RGOjpWZWN0b3I8Y2hhcj4gYnVmZmVyKGJ1ZmZlclNpemUpOwotICAgICAgICBK
U1N0cmluZ0dldFVURjhDU3RyaW5nKHN0cmluZ1JlZiwgYnVmZmVyLmRhdGEoKSwgYnVmZmVyU2l6
ZSk7Ci0gICAgICAgIHJldHVyblZhbHVlID0gV2ViU3RyaW5nOjpmcm9tVXRmOChidWZmZXIuZGF0
YSgpKTsKKyAgICAgICAgcmV0dXJuVmFsdWUuc2V0VHlwZShKYXZhU2NyaXB0VmFyaWFudDo6RXhj
ZXB0aW9uKTsKKyAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIHJldHVybiB0cnVlOworICAg
IHJldHVyblZhbHVlID0gSlNWYWx1ZVJlZlRvQmxhY2tCZXJyeUphdmFTY3JpcHRWYXJpYW50KGN0
eCwgcmVzdWx0KTsKIH0KIAogdm9pZCBXZWJQYWdlUHJpdmF0ZTo6c3RvcEN1cnJlbnRMb2FkKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5oIGIvU291
cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmgKaW5kZXggNWNhNGEyNS4uMWNjNDBl
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmgKKysr
IGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmgKQEAgLTIwLDYgKzIwLDcg
QEAKICNkZWZpbmUgV2ViUGFnZV9oCiAKICNpbmNsdWRlICJCbGFja0JlcnJ5R2xvYmFsLmgiCisj
aW5jbHVkZSAiSmF2YVNjcmlwdFZhcmlhbnQuaCIKICNpbmNsdWRlICJXZWJTdHJpbmcuaCIKIAog
I2luY2x1ZGUgPEJsYWNrQmVycnlQbGF0Zm9ybUd1YXJkZWRQb2ludGVyLmg+CkBAIC0xMDUsNyAr
MTA2LDcgQEAgcHVibGljOgogICAgIC8vIFRha2VzIGEgVVRGMTYgZW5jb2RlZCBzY3JpcHQgdGhh
dCBpcyB1c2VkIGV4cGxpY2l0bHkgYnkgdGhlIHBhdHRlcm4gbWF0Y2hpbmcgY29kZQogICAgIGJv
b2wgZXhlY3V0ZUphdmFTY3JpcHRJbklzb2xhdGVkV29ybGQoY29uc3Qgc3RkOjp3c3RyaW5nJiBz
Y3JpcHQsIEphdmFTY3JpcHREYXRhVHlwZSYgcmV0dXJuVHlwZSwgV2ViU3RyaW5nJiByZXR1cm5W
YWx1ZSk7CiAKLSAgICBib29sIGV4ZWN1dGVKYXZhU2NyaXB0RnVuY3Rpb24oY29uc3Qgc3RkOjp2
ZWN0b3I8c3RkOjpzdHJpbmc+ICZzY3JpcHQsIGNvbnN0IHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5n
PiAmYXJncywgSmF2YVNjcmlwdERhdGFUeXBlJiByZXR1cm5UeXBlLCBXZWJTdHJpbmcmIHJldHVy
blZhbHVlKTsKKyAgICB2b2lkIGV4ZWN1dGVKYXZhU2NyaXB0RnVuY3Rpb24oY29uc3Qgc3RkOjp2
ZWN0b3I8c3RkOjpzdHJpbmc+ICZmdW5jdGlvbiwgY29uc3Qgc3RkOjp2ZWN0b3I8SmF2YVNjcmlw
dFZhcmlhbnQ+ICZhcmdzLCBKYXZhU2NyaXB0VmFyaWFudCYgcmV0dXJuVmFsdWUpOwogCiAgICAg
dm9pZCBpbml0aWFsaXplSWNvbkRhdGFCYXNlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdl
TG9nCmluZGV4IDZlZWRlZDIuLjg1ZTg5Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxh
Y2tiZXJyeS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDQ0IEBACisyMDEyLTA4LTA5ICBCZW5qYW1pbiBDIE1leWVyICA8Ym1leWVy
QHJpbS5jb20+CisKKyAgICAgICAgSW50cm9kdWNlIEphdmFTY3JpcHRWYXJpYW50IG9iamVjdC4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkzNjQ0CisK
KyAgICAgICAgVGhlIEphdmFTY3JpcHRWYXJpYW50IGNhbiBiZSB1c2VkIGZvciBmdW5jdGlvbnMg
dGhhdCByZXR1cm4gcmVzdWx0cyBmcm9tCisgICAgICAgIEphdmFTY3JpcHQgc3VjaCBhcyBleGVj
dXRlSmF2YVNjcmlwdCBvciBmdW5jdGlvbnMgdGhhdCB0YWtlIGFyZ3VtZW50cworICAgICAgICB0
byBwYXNzIGEgdmFyaWFibGUgdG8gSmF2YVNjcmlwdCBhbmQgdGhleSB3YW50IHRvIG1ha2Ugc3Vy
ZSB0aGUgdHlwZQorICAgICAgICBpcyBjb3JyZWN0LgorCisgICAgICAgIENvbnZlcnQgZXhlY3V0
ZUphdmFTY3JpcHRGdW5jdGlvbigpIHRvIHVzZSB0aGlzIGRhdGEgdHlwZSBhcyB0aGUKKyAgICAg
ICAgZXhhbXBsZSwgb3RoZXIgZnVuY3Rpb25zIHdpbGwgYmUgY29udmVydGVkIGluIHRoZSBmdXR1
cmUuCisKKyAgICAgICAgUFIgMTQ5MjkKKworICAgICAgICBSZXZpZXdlZCBieSBKb2UgTWFzb24K
KyAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBUcmVhdAorCisgICAgICAgICogQXBpL0phdmFTY3Jp
cHRWYXJpYW50LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoQmxhY2tC
ZXJyeTo6V2ViS2l0OjpKU1ZhbHVlUmVmVG9CbGFja0JlcnJ5SmF2YVNjcmlwdFZhcmlhbnQpOgor
ICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpCbGFja0JlcnJ5SmF2YVNjcmlwdFZhcmlhbnRU
b0pTVmFsdWVSZWYpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpKYXZhU2NyaXB0VmFy
aWFudDo6SmF2YVNjcmlwdFZhcmlhbnQpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpK
YXZhU2NyaXB0VmFyaWFudDo6fkphdmFTY3JpcHRWYXJpYW50KToKKyAgICAgICAgKEJsYWNrQmVy
cnk6OldlYktpdDo6SmF2YVNjcmlwdFZhcmlhbnQ6Om9wZXJhdG9yPSk6CisgICAgICAgIChCbGFj
a0JlcnJ5OjpXZWJLaXQ6OkphdmFTY3JpcHRWYXJpYW50OjpzZXRUeXBlKToKKyAgICAgICAgKEJs
YWNrQmVycnk6OldlYktpdDo6SmF2YVNjcmlwdFZhcmlhbnQ6OnR5cGUpOgorICAgICAgICAoQmxh
Y2tCZXJyeTo6V2ViS2l0OjpKYXZhU2NyaXB0VmFyaWFudDo6c2V0RG91YmxlKToKKyAgICAgICAg
KEJsYWNrQmVycnk6OldlYktpdDo6SmF2YVNjcmlwdFZhcmlhbnQ6OmRvdWJsZVZhbHVlKToKKyAg
ICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6SmF2YVNjcmlwdFZhcmlhbnQ6OnNldFN0cmluZyk6
CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OkphdmFTY3JpcHRWYXJpYW50OjpzdHJpbmdW
YWx1ZSk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OkphdmFTY3JpcHRWYXJpYW50Ojpz
ZXRCb29sZWFuKToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6SmF2YVNjcmlwdFZhcmlh
bnQ6OmJvb2xlYW5WYWx1ZSk6CisgICAgICAgICogQXBpL0phdmFTY3JpcHRWYXJpYW50Lmg6IEFk
ZGVkLgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBBcGkvSmF2YVNjcmlwdFZhcmlhbnRf
cC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogQXBpL1dlYlBhZ2UuY3Bw
OgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlOjpleGVjdXRlSmF2YVNjcmlw
dEZ1bmN0aW9uKToKKyAgICAgICAgKiBBcGkvV2ViUGFnZS5oOgorCiAyMDEyLTA4LTA4ICBKYWNr
eSBKaWFuZyAgPHpoYWppYW5nQHJpbS5jb20+CiAKICAgICAgICAgW0JsYWNrQmVycnldIEltcGxl
bWVudCBhYm91dDptZW1vcnktbGl2ZQotLSAKMS43LjEKCg==
</data>
<flag name="review"
          id="167475"
          type_id="1"
          status="+"
          setter="tonikitoo"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>157771</attachid>
            <date>2012-08-10 11:35:53 -0700</date>
            <delta_ts>2012-08-10 13:40:27 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-2012-08-09-Benjamin-C-Meyer-bmeyer-rim.com.patch</filename>
            <type>text/plain</type>
            <size>19616</size>
            <attacher name="Benjamin Meyer">ben</attacher>
            
              <data encoding="base64">RnJvbSAwNDI5NGYxMjJjOGZlZDNiNzk5ZmEyZmEwMGViM2FmYTcxOWYwZTRkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBCZW5qYW1pbiBDIE1leWVyIDxibWV5ZXJAcmltLmNvbT4KRGF0
ZTogV2VkLCAxIEF1ZyAyMDEyIDE1OjAxOjMyIC0wNDAwClN1YmplY3Q6IFtQQVRDSF0gMjAxMi0w
OC0wOSAgQmVuamFtaW4gQyBNZXllciAgPGJtZXllckByaW0uY29tPgoKICAgICAgICBJbnRyb2R1
Y2UgSmF2YVNjcmlwdFZhcmlhbnQgb2JqZWN0LgogICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD05MzY0NAoKICAgICAgICBUaGUgSmF2YVNjcmlwdFZhcmlhbnQg
Y2FuIGJlIHVzZWQgZm9yIGZ1bmN0aW9ucyB0aGF0IHJldHVybiByZXN1bHRzIGZyb20KICAgICAg
ICBKYXZhU2NyaXB0IHN1Y2ggYXMgZXhlY3V0ZUphdmFTY3JpcHQgb3IgZnVuY3Rpb25zIHRoYXQg
dGFrZSBhcmd1bWVudHMKICAgICAgICB0byBwYXNzIGEgdmFyaWFibGUgdG8gSmF2YVNjcmlwdCBh
bmQgdGhleSB3YW50IHRvIG1ha2Ugc3VyZSB0aGUgdHlwZQogICAgICAgIGlzIGNvcnJlY3QuCgog
ICAgICAgIENvbnZlcnQgZXhlY3V0ZUphdmFTY3JpcHRGdW5jdGlvbigpIHRvIHVzZSB0aGlzIGRh
dGEgdHlwZSBhcyB0aGUKICAgICAgICBleGFtcGxlLCBvdGhlciBmdW5jdGlvbnMgd2lsbCBiZSBj
b252ZXJ0ZWQgaW4gdGhlIGZ1dHVyZS4KCiAgICAgICAgUFIgMTQ5MjkKCiAgICAgICAgSW50ZXJu
YWxseSByZXZpZXdlZCBieSBKb2UgTWFzb24KICAgICAgICBSZXZpZXdlZCBieSBBZGFtIFRyZWF0
Ci0tLQogU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fCAgIDIwICsrCiBTb3VyY2UvV2ViS2l0L1BsYXRmb3JtQmxhY2tCZXJyeS5jbWFrZSAgICAgICAg
ICAgICB8ICAgIDEgKwogU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9KYXZhU2NyaXB0VmFy
aWFudC5jcHAgfCAgMjE1ICsrKysrKysrKysrKysrKysrKysrCiBTb3VyY2UvV2ViS2l0L2JsYWNr
YmVycnkvQXBpL0phdmFTY3JpcHRWYXJpYW50LmggICB8ICAgNzcgKysrKysrKwogU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L0FwaS9KYXZhU2NyaXB0VmFyaWFudF9wLmggfCAgIDM2ICsrKysKIFNv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAgICAgICAgICAgIHwgICA2OCAr
Ky0tLS0tCiBTb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuaCAgICAgICAgICAg
ICB8ICAgIDMgKy0KIFNvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cgICAgICAgICAg
ICAgICAgIHwgICA0MSArKysrCiA4IGZpbGVzIGNoYW5nZWQsIDQwOSBpbnNlcnRpb25zKCspLCA1
MiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvQXBpL0phdmFTY3JpcHRWYXJpYW50LmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9X
ZWJLaXQvYmxhY2tiZXJyeS9BcGkvSmF2YVNjcmlwdFZhcmlhbnQuaAogY3JlYXRlIG1vZGUgMTAw
NjQ0IFNvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvSmF2YVNjcmlwdFZhcmlhbnRfcC5oCgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwppbmRleCAzNTMxYzc0Li4zYjBmZTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisy
MDEyLTA4LTA5ICBCZW5qYW1pbiBDIE1leWVyICA8Ym1leWVyQHJpbS5jb20+CisKKyAgICAgICAg
SW50cm9kdWNlIEphdmFTY3JpcHRWYXJpYW50IG9iamVjdC4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkzNjQ0CisKKyAgICAgICAgVGhlIEphdmFTY3Jp
cHRWYXJpYW50IGNhbiBiZSB1c2VkIGZvciBmdW5jdGlvbnMgdGhhdCByZXR1cm4gcmVzdWx0cyBm
cm9tCisgICAgICAgIEphdmFTY3JpcHQgc3VjaCBhcyBleGVjdXRlSmF2YVNjcmlwdCBvciBmdW5j
dGlvbnMgdGhhdCB0YWtlIGFyZ3VtZW50cworICAgICAgICB0byBwYXNzIGEgdmFyaWFibGUgdG8g
SmF2YVNjcmlwdCBhbmQgdGhleSB3YW50IHRvIG1ha2Ugc3VyZSB0aGUgdHlwZQorICAgICAgICBp
cyBjb3JyZWN0LgorCisgICAgICAgIENvbnZlcnQgZXhlY3V0ZUphdmFTY3JpcHRGdW5jdGlvbigp
IHRvIHVzZSB0aGlzIGRhdGEgdHlwZSBhcyB0aGUKKyAgICAgICAgZXhhbXBsZSwgb3RoZXIgZnVu
Y3Rpb25zIHdpbGwgYmUgY29udmVydGVkIGluIHRoZSBmdXR1cmUuCisKKyAgICAgICAgUFIgMTQ5
MjkKKworICAgICAgICBJbnRlcm5hbGx5IHJldmlld2VkIGJ5IEpvZSBNYXNvbgorICAgICAgICBS
ZXZpZXdlZCBieSBBZGFtIFRyZWF0CisKKyAgICAgICAgKiBQbGF0Zm9ybUJsYWNrQmVycnkuY21h
a2U6CisKIDIwMTItMDgtMDEgIEFudG9uaW8gR29tZXMgIDxhZ29tZXNAcmltLmNvbT4KIAogICAg
ICAgICBbQmxhY2tCZXJyeV0gSW1wbGVtZW50IEluUmVnaW9uU2Nyb2xsZXIgY2xhc3MgYXMgYSBp
bi1yZWdpb24gc2Nyb2xsIGNvbnRyb2xsZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxh
dGZvcm1CbGFja0JlcnJ5LmNtYWtlIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybUJsYWNrQmVycnku
Y21ha2UKaW5kZXggNjQ2MDY4MS4uMTg1ZTViNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Q
bGF0Zm9ybUJsYWNrQmVycnkuY21ha2UKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybUJsYWNr
QmVycnkuY21ha2UKQEAgLTY3LDYgKzY3LDcgQEAgTElTVChBUFBFTkQgV2ViS2l0X1NPVVJDRVMK
ICAgICBibGFja2JlcnJ5L0FwaS9XZWJTZXR0aW5ncy5jcHAKICAgICBibGFja2JlcnJ5L0FwaS9X
ZWJTdHJpbmcuY3BwCiAgICAgYmxhY2tiZXJyeS9BcGkvV2ViVmlld3BvcnRBcmd1bWVudHMuY3Bw
CisgICAgYmxhY2tiZXJyeS9BcGkvSmF2YVNjcmlwdFZhcmlhbnQuY3BwCiAgICAgYmxhY2tiZXJy
eS9XZWJDb3JlU3VwcG9ydC9BdXRvZmlsbE1hbmFnZXIuY3BwCiAgICAgYmxhY2tiZXJyeS9XZWJD
b3JlU3VwcG9ydC9DYWNoZUNsaWVudEJsYWNrQmVycnkuY3BwCiAgICAgYmxhY2tiZXJyeS9XZWJD
b3JlU3VwcG9ydC9DaHJvbWVDbGllbnRCbGFja0JlcnJ5LmNwcApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9ibGFja2JlcnJ5L0FwaS9KYXZhU2NyaXB0VmFyaWFudC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvQXBpL0phdmFTY3JpcHRWYXJpYW50LmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi4xOTY3YWUwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L0FwaS9KYXZhU2NyaXB0VmFyaWFudC5jcHAKQEAgLTAsMCArMSwyMTUg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBw
dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExlc3NlciBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBo
YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICog
TGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJl
ZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0
aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIkphdmFTY3JpcHRWYXJpYW50LmgiCisKKyNpbmNsdWRlICJKYXZh
U2NyaXB0VmFyaWFudF9wLmgiCisjaW5jbHVkZSAiV2ViUGFnZS5oIgorI2luY2x1ZGUgPEpTU3Ry
aW5nUmVmLmg+CisjaW5jbHVkZSA8SlNWYWx1ZVJlZi5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgor
I2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIEJsYWNrQmVycnkgeworbmFtZXNw
YWNlIFdlYktpdCB7CisKK0phdmFTY3JpcHRWYXJpYW50IEpTVmFsdWVSZWZUb0JsYWNrQmVycnlK
YXZhU2NyaXB0VmFyaWFudChjb25zdCBKU0dsb2JhbENvbnRleHRSZWYmIGN0eCwgY29uc3QgSlNW
YWx1ZVJlZiYgdmFsdWUpCit7CisgICAgSmF2YVNjcmlwdFZhcmlhbnQgcmV0dXJuVmFsdWU7CisK
KyAgICBzd2l0Y2ggKEpTVmFsdWVHZXRUeXBlKGN0eCwgdmFsdWUpKSB7CisgICAgY2FzZSBrSlNU
eXBlTnVsbDoKKyAgICAgICAgcmV0dXJuVmFsdWUuc2V0VHlwZShKYXZhU2NyaXB0VmFyaWFudDo6
TnVsbCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Uga0pTVHlwZUJvb2xlYW46CisgICAgICAg
IHJldHVyblZhbHVlLnNldEJvb2xlYW4oSlNWYWx1ZVRvQm9vbGVhbihjdHgsIHZhbHVlKSk7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2Uga0pTVHlwZU51bWJlcjoKKyAgICAgICAgcmV0dXJuVmFs
dWUuc2V0RG91YmxlKEpTVmFsdWVUb051bWJlcihjdHgsIHZhbHVlLCAwKSk7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2Uga0pTVHlwZVN0cmluZzogeworICAgICAgICBKU1N0cmluZ1JlZiBzdHJp
bmdSZWYgPSBKU1ZhbHVlVG9TdHJpbmdDb3B5KGN0eCwgdmFsdWUsIDApOworICAgICAgICBzaXpl
X3QgYnVmZmVyU2l6ZSA9IEpTU3RyaW5nR2V0TWF4aW11bVVURjhDU3RyaW5nU2l6ZShzdHJpbmdS
ZWYpOworICAgICAgICBXVEY6OlZlY3RvcjxjaGFyPiBidWZmZXIoYnVmZmVyU2l6ZSk7CisgICAg
ICAgIEpTU3RyaW5nR2V0VVRGOENTdHJpbmcoc3RyaW5nUmVmLCBidWZmZXIuZGF0YSgpLCBidWZm
ZXJTaXplKTsKKyAgICAgICAgcmV0dXJuVmFsdWUuc2V0U3RyaW5nKFdlYlN0cmluZzo6ZnJvbVV0
ZjgoYnVmZmVyLmRhdGEoKSkudXRmOCgpLmNfc3RyKCkpOworICAgICAgICBicmVhazsKKyAgICB9
CisgICAgY2FzZSBrSlNUeXBlT2JqZWN0OgorICAgICAgICByZXR1cm5WYWx1ZS5zZXRUeXBlKEph
dmFTY3JpcHRWYXJpYW50OjpPYmplY3QpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIGtKU1R5
cGVVbmRlZmluZWQ6CisgICAgICAgIHJldHVyblZhbHVlLnNldFR5cGUoSmF2YVNjcmlwdFZhcmlh
bnQ6OlVuZGVmaW5lZCk7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gcmV0dXJu
VmFsdWU7Cit9CisKK0pTVmFsdWVSZWYgQmxhY2tCZXJyeUphdmFTY3JpcHRWYXJpYW50VG9KU1Zh
bHVlUmVmKGNvbnN0IEpTR2xvYmFsQ29udGV4dFJlZiYgY3R4LCBjb25zdCBKYXZhU2NyaXB0VmFy
aWFudCYgdmFyaWFudCkKK3sKKyAgICBKU1ZhbHVlUmVmIHJlZiA9IDA7CisgICAgc3dpdGNoICh2
YXJpYW50LnR5cGUoKSkgeworICAgIGNhc2UgSmF2YVNjcmlwdFZhcmlhbnQ6OlVuZGVmaW5lZDoK
KyAgICAgICAgcmVmID0gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY3R4KTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBKYXZhU2NyaXB0VmFyaWFudDo6TnVsbDoKKyAgICAgICAgcmVmID0gSlNWYWx1
ZU1ha2VOdWxsKGN0eCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSmF2YVNjcmlwdFZhcmlh
bnQ6OkJvb2xlYW46CisgICAgICAgIHJlZiA9IEpTVmFsdWVNYWtlQm9vbGVhbihjdHgsIHZhcmlh
bnQuYm9vbGVhblZhbHVlKCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEphdmFTY3JpcHRW
YXJpYW50OjpOdW1iZXI6CisgICAgICAgIHJlZiA9IEpTVmFsdWVNYWtlTnVtYmVyKGN0eCwgdmFy
aWFudC5kb3VibGVWYWx1ZSgpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBKYXZhU2NyaXB0
VmFyaWFudDo6U3RyaW5nOiB7CisgICAgICAgIEpTU3RyaW5nUmVmIHN0ciA9IEpTU3RyaW5nQ3Jl
YXRlV2l0aFVURjhDU3RyaW5nKHZhcmlhbnQuc3RyaW5nVmFsdWUoKSk7CisgICAgICAgIHJlZiA9
IEpTVmFsdWVNYWtlU3RyaW5nKGN0eCwgc3RyKTsKKyAgICAgICAgSlNTdHJpbmdSZWxlYXNlKHN0
cik7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIEphdmFTY3JpcHRWYXJpYW50OjpF
eGNlcHRpb246CisgICAgY2FzZSBKYXZhU2NyaXB0VmFyaWFudDo6T2JqZWN0OgorICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIHJldHVybiBy
ZWY7Cit9CisKK0phdmFTY3JpcHRWYXJpYW50OjpKYXZhU2NyaXB0VmFyaWFudCgpCisgICAgOiBt
X3R5cGUoVW5kZWZpbmVkKQorICAgICwgbV9zdHJpbmdWYWx1ZSgwKQoreworfQorCitKYXZhU2Ny
aXB0VmFyaWFudDo6SmF2YVNjcmlwdFZhcmlhbnQoZG91YmxlIHZhbHVlKQorICAgIDogbV90eXBl
KFVuZGVmaW5lZCkKKyAgICAsIG1fc3RyaW5nVmFsdWUoMCkKK3sKKyAgICBzZXREb3VibGUodmFs
dWUpOworfQorCitKYXZhU2NyaXB0VmFyaWFudDo6SmF2YVNjcmlwdFZhcmlhbnQoaW50IHZhbHVl
KQorICAgIDogbV90eXBlKFVuZGVmaW5lZCkKKyAgICAsIG1fc3RyaW5nVmFsdWUoMCkKK3sKKyAg
ICBzZXREb3VibGUodmFsdWUpOworfQorCitKYXZhU2NyaXB0VmFyaWFudDo6SmF2YVNjcmlwdFZh
cmlhbnQoY29uc3QgY2hhciogdmFsdWUpCisgICAgOiBtX3R5cGUoVW5kZWZpbmVkKQorICAgICwg
bV9zdHJpbmdWYWx1ZSgwKQoreworICAgIHNldFN0cmluZyh2YWx1ZSk7Cit9CisKK0phdmFTY3Jp
cHRWYXJpYW50OjpKYXZhU2NyaXB0VmFyaWFudChjb25zdCBzdGQ6OnN0cmluZyYgdmFsdWUpCisg
ICAgOiBtX3R5cGUoVW5kZWZpbmVkKQorICAgICwgbV9zdHJpbmdWYWx1ZSgwKQoreworICAgIHNl
dFN0cmluZyh2YWx1ZS5jX3N0cigpKTsKK30KKworSmF2YVNjcmlwdFZhcmlhbnQ6OkphdmFTY3Jp
cHRWYXJpYW50KGJvb2wgdmFsdWUpCisgICAgOiBtX3R5cGUoVW5kZWZpbmVkKQorICAgICwgbV9z
dHJpbmdWYWx1ZSgwKQoreworICAgIHNldEJvb2xlYW4odmFsdWUpOworfQorCitKYXZhU2NyaXB0
VmFyaWFudDo6SmF2YVNjcmlwdFZhcmlhbnQoY29uc3QgSmF2YVNjcmlwdFZhcmlhbnQgJnYpCisg
ICAgOiBtX3R5cGUoVW5kZWZpbmVkKQorICAgICwgbV9zdHJpbmdWYWx1ZSgwKQoreworICAgIHRo
aXMtPm9wZXJhdG9yPSh2KTsKK30KKworSmF2YVNjcmlwdFZhcmlhbnQ6On5KYXZhU2NyaXB0VmFy
aWFudCgpCit7CisgICAgLy8gUHJldmVudCBtZW1vcnkgbGVha3MgaWYgd2UgaGF2ZSBzdHJpbmdz
CisgICAgc2V0VHlwZShVbmRlZmluZWQpOworfQorCitKYXZhU2NyaXB0VmFyaWFudCYgSmF2YVNj
cmlwdFZhcmlhbnQ6Om9wZXJhdG9yPShjb25zdCBKYXZhU2NyaXB0VmFyaWFudCYgdikKK3sKKyAg
ICBzd2l0Y2ggKHYudHlwZSgpKSB7CisgICAgY2FzZSBCb29sZWFuOgorICAgICAgICBzZXRCb29s
ZWFuKHYuYm9vbGVhblZhbHVlKCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE51bWJlcjoK
KyAgICAgICAgc2V0RG91YmxlKHYuZG91YmxlVmFsdWUoKSk7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgU3RyaW5nOgorICAgICAgICBzZXRTdHJpbmcodi5zdHJpbmdWYWx1ZSgpKTsKKyAgICAg
ICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgc2V0VHlwZSh2LnR5cGUoKSk7CisgICAg
ICAgIGJyZWFrOworICAgIH0KKworICAgIHJldHVybiAqdGhpczsKK30KKwordm9pZCBKYXZhU2Ny
aXB0VmFyaWFudDo6c2V0VHlwZShjb25zdCBEYXRhVHlwZSYgdHlwZSkKK3sKKyAgICBpZiAobV90
eXBlID09IFN0cmluZykKKyAgICAgICAgZnJlZShtX3N0cmluZ1ZhbHVlKTsKKyAgICBtX3R5cGUg
PSB0eXBlOworICAgIG1fc3RyaW5nVmFsdWUgPSAwOworfQorCitKYXZhU2NyaXB0VmFyaWFudDo6
RGF0YVR5cGUgSmF2YVNjcmlwdFZhcmlhbnQ6OnR5cGUoKSBjb25zdAoreworICAgIHJldHVybiBt
X3R5cGU7Cit9CisKK3ZvaWQgSmF2YVNjcmlwdFZhcmlhbnQ6OnNldERvdWJsZShkb3VibGUgdmFs
dWUpCit7CisgICAgc2V0VHlwZShOdW1iZXIpOworICAgIG1fZG91YmxlVmFsdWUgPSB2YWx1ZTsK
K30KKworZG91YmxlIEphdmFTY3JpcHRWYXJpYW50Ojpkb3VibGVWYWx1ZSgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIG1fZG91YmxlVmFsdWU7Cit9CisKK3ZvaWQgSmF2YVNjcmlwdFZhcmlhbnQ6OnNl
dFN0cmluZyhjb25zdCBjaGFyKiB2YWx1ZSkKK3sKKyAgICBzZXRUeXBlKFN0cmluZyk7CisgICAg
bV9zdHJpbmdWYWx1ZSA9IHN0cmR1cCh2YWx1ZSk7Cit9CisKK2NoYXIqIEphdmFTY3JpcHRWYXJp
YW50OjpzdHJpbmdWYWx1ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc3RyaW5nVmFsdWU7Cit9
CisKK3ZvaWQgSmF2YVNjcmlwdFZhcmlhbnQ6OnNldEJvb2xlYW4oYm9vbCB2YWx1ZSkKK3sKKyAg
ICBzZXRUeXBlKEJvb2xlYW4pOworICAgIG1fYm9vbGVhblZhbHVlID0gdmFsdWU7Cit9CisKK2Jv
b2wgSmF2YVNjcmlwdFZhcmlhbnQ6OmJvb2xlYW5WYWx1ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IG1fYm9vbGVhblZhbHVlOworfQorCit9Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvQXBpL0phdmFTY3JpcHRWYXJpYW50LmggYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvQXBpL0phdmFTY3JpcHRWYXJpYW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uNzYyM2E1NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJy
eS9BcGkvSmF2YVNjcmlwdFZhcmlhbnQuaApAQCAtMCwwICsxLDc3IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEyIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMg
bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg
d2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv
cHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYWxvbmcgd2l0
aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZv
dW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3Rvbiwg
TUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpZm5kZWYgSmF2YVNjcmlwdFZhcmlhbnRfaAor
I2RlZmluZSBKYXZhU2NyaXB0VmFyaWFudF9oCisKKyNpbmNsdWRlICJCbGFja0JlcnJ5R2xvYmFs
LmgiCisKKyNpbmNsdWRlIDxzdHJpbmc+CisKK25hbWVzcGFjZSBCbGFja0JlcnJ5IHsKK25hbWVz
cGFjZSBXZWJLaXQgeworCitjbGFzcyBCTEFDS0JFUlJZX0VYUE9SVCBKYXZhU2NyaXB0VmFyaWFu
dCB7CitwdWJsaWM6CisgICAgZW51bSBEYXRhVHlwZSB7CisgICAgICAgIFVuZGVmaW5lZCA9IDAs
CisgICAgICAgIE51bGwsCisgICAgICAgIEJvb2xlYW4sCisgICAgICAgIE51bWJlciwKKyAgICAg
ICAgU3RyaW5nLAorICAgICAgICBPYmplY3QsCisgICAgICAgIEV4Y2VwdGlvbgorICAgIH07CisK
KyAgICBKYXZhU2NyaXB0VmFyaWFudCgpOworICAgIEphdmFTY3JpcHRWYXJpYW50KGNvbnN0IEph
dmFTY3JpcHRWYXJpYW50Jik7CisgICAgSmF2YVNjcmlwdFZhcmlhbnQoZG91YmxlKTsKKyAgICBK
YXZhU2NyaXB0VmFyaWFudChpbnQpOworICAgIEphdmFTY3JpcHRWYXJpYW50KGNvbnN0IGNoYXIq
KTsKKyAgICBKYXZhU2NyaXB0VmFyaWFudChib29sKTsKKyAgICBKYXZhU2NyaXB0VmFyaWFudChj
b25zdCBzdGQ6OnN0cmluZyYpOworICAgIH5KYXZhU2NyaXB0VmFyaWFudCgpOworCisgICAgSmF2
YVNjcmlwdFZhcmlhbnQmIG9wZXJhdG9yPShjb25zdCBKYXZhU2NyaXB0VmFyaWFudCYpOworCisg
ICAgdm9pZCBzZXRUeXBlKGNvbnN0IERhdGFUeXBlJik7CisgICAgRGF0YVR5cGUgdHlwZSgpIGNv
bnN0OworCisgICAgdm9pZCBzZXREb3VibGUoZG91YmxlKTsKKyAgICBkb3VibGUgZG91YmxlVmFs
dWUoKSBjb25zdDsKKworICAgIHZvaWQgc2V0U3RyaW5nKGNvbnN0IGNoYXIqKTsKKyAgICBjaGFy
KiBzdHJpbmdWYWx1ZSgpIGNvbnN0OworCisgICAgdm9pZCBzZXRCb29sZWFuKGJvb2wpOworICAg
IGJvb2wgYm9vbGVhblZhbHVlKCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgRGF0YVR5cGUgbV90
eXBlOworCisgICAgdW5pb24geworICAgICAgICBib29sIG1fYm9vbGVhblZhbHVlOworICAgICAg
ICBkb3VibGUgbV9kb3VibGVWYWx1ZTsKKyAgICAgICAgY2hhciogbV9zdHJpbmdWYWx1ZTsKKyAg
ICB9OworfTsKKworfQorfQorCisjZW5kaWYgLy8gSmF2YVNjcmlwdFZhcmlhbnRfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9KYXZhU2NyaXB0VmFyaWFudF9wLmgg
Yi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL0phdmFTY3JpcHRWYXJpYW50X3AuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMjRiODc4Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9KYXZhU2NyaXB0VmFyaWFudF9wLmgKQEAg
LTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBSZXNlYXJjaCBJbiBNb3Rp
b24gTGltaXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg
bGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl
IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICog
TGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZ
b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwg
UHVibGljCisgKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRl
IHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBT
dHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisj
aWZuZGVmIEphdmFTY3JpcHRWYXJpYW50X3BfaAorI2RlZmluZSBKYXZhU2NyaXB0VmFyaWFudF9w
X2gKKworI2luY2x1ZGUgIkphdmFTY3JpcHRWYXJpYW50LmgiCisKKyNpbmNsdWRlIDxKU0NvbnRl
eHRSZWYuaD4KKyNpbmNsdWRlIDxKU1ZhbHVlUmVmLmg+CisKK25hbWVzcGFjZSBCbGFja0JlcnJ5
IHsKK25hbWVzcGFjZSBXZWJLaXQgeworCitKYXZhU2NyaXB0VmFyaWFudCBKU1ZhbHVlUmVmVG9C
bGFja0JlcnJ5SmF2YVNjcmlwdFZhcmlhbnQoY29uc3QgSlNHbG9iYWxDb250ZXh0UmVmJiwgY29u
c3QgSlNWYWx1ZVJlZiYpOworSlNWYWx1ZVJlZiBCbGFja0JlcnJ5SmF2YVNjcmlwdFZhcmlhbnRU
b0pTVmFsdWVSZWYoY29uc3QgSlNHbG9iYWxDb250ZXh0UmVmJiwgY29uc3QgSmF2YVNjcmlwdFZh
cmlhbnQmKTsKKworfQorfQorCisjZW5kaWYgLy8gSmF2YVNjcmlwdFZhcmlhbnRfcF9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwIGIvU291cmNl
L1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcAppbmRleCAxMmRiNGZiLi5mNDg2ODA4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAKQEAgLTc4LDYgKzc4
LDcgQEAKICNpbmNsdWRlICJJbnNwZWN0b3JDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiSW5zcGVj
dG9yT3ZlcmxheS5oIgogI2luY2x1ZGUgIkphdmFTY3JpcHREZWJ1Z2dlckJsYWNrQmVycnkuaCIK
KyNpbmNsdWRlICJKYXZhU2NyaXB0VmFyaWFudF9wLmgiCiAjaW5jbHVkZSAiTGF5ZXJXZWJLaXRU
aHJlYWQuaCIKICNpbmNsdWRlICJMb2NhbEZpbGVTeXN0ZW0uaCIKICNpbmNsdWRlICJOZXR3b3Jr
TWFuYWdlci5oIgpAQCAtODYzLDI0ICs4NjQsMjUgQEAgYm9vbCBXZWJQYWdlOjpleGVjdXRlSmF2
YVNjcmlwdEluSXNvbGF0ZWRXb3JsZChjb25zdCBjaGFyKiBzY3JpcHQsIEphdmFTY3JpcHREYXQK
ICAgICByZXR1cm4gZC0+ZXhlY3V0ZUphdmFTY3JpcHRJbklzb2xhdGVkV29ybGQoc291cmNlQ29k
ZSwgcmV0dXJuVHlwZSwgcmV0dXJuVmFsdWUpOwogfQogCi1ib29sIFdlYlBhZ2U6OmV4ZWN1dGVK
YXZhU2NyaXB0RnVuY3Rpb24oY29uc3Qgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+ICZmdW5jdGlv
biwgY29uc3Qgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+ICZhcmdzLCBKYXZhU2NyaXB0RGF0YVR5
cGUmIHJldHVyblR5cGUsIFdlYlN0cmluZyYgcmV0dXJuVmFsdWUpCit2b2lkIFdlYlBhZ2U6OmV4
ZWN1dGVKYXZhU2NyaXB0RnVuY3Rpb24oY29uc3Qgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+ICZm
dW5jdGlvbiwgY29uc3Qgc3RkOjp2ZWN0b3I8SmF2YVNjcmlwdFZhcmlhbnQ+ICZhcmdzLCBKYXZh
U2NyaXB0VmFyaWFudCYgcmV0dXJuVmFsdWUpCiB7Ci0gICAgaWYgKCFkLT5tX21haW5GcmFtZSkK
LSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZC0+bV9tYWluRnJhbWUpIHsKKyAgICAg
ICAgcmV0dXJuVmFsdWUuc2V0VHlwZShKYXZhU2NyaXB0VmFyaWFudDo6RXhjZXB0aW9uKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIEpTQzo6QmluZGluZ3M6OlJvb3RPYmplY3QqIHJv
b3QgPSBkLT5tX21haW5GcmFtZS0+c2NyaXB0KCktPmJpbmRpbmdSb290T2JqZWN0KCk7Ci0gICAg
aWYgKCFyb290KQotICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFyb290KSB7CisgICAg
ICAgIHJldHVyblZhbHVlLnNldFR5cGUoSmF2YVNjcmlwdFZhcmlhbnQ6OkV4Y2VwdGlvbik7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBKU0M6OkV4ZWNTdGF0ZSogZXhlYyA9IHJvb3Qt
Pmdsb2JhbE9iamVjdCgpLT5nbG9iYWxFeGVjKCk7CiAgICAgSlNHbG9iYWxDb250ZXh0UmVmIGN0
eCA9IHRvR2xvYmFsUmVmKGV4ZWMpOwogCi0gICAgV1RGOjpWZWN0b3I8SlNTdHJpbmdSZWY+IGFy
Z0xpc3QoYXJncy5zaXplKCkpOwogICAgIFdURjo6VmVjdG9yPEpTVmFsdWVSZWY+IGFyZ0xpc3RS
ZWYoYXJncy5zaXplKCkpOwotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBhcmdzLnNpemUo
KTsgKytpKSB7Ci0gICAgICAgIEpTU3RyaW5nUmVmIHN0ciA9IEpTU3RyaW5nQ3JlYXRlV2l0aFVU
RjhDU3RyaW5nKGFyZ3NbaV0uY19zdHIoKSk7Ci0gICAgICAgIGFyZ0xpc3RbaV0gPSBzdHI7Ci0g
ICAgICAgIEpTVmFsdWVSZWYgc3RyUmVmID0gSlNWYWx1ZU1ha2VTdHJpbmcoY3R4LCBzdHIpOwot
ICAgICAgICBhcmdMaXN0UmVmW2ldID0gc3RyUmVmOwotICAgIH0KKyAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgYXJncy5zaXplKCk7ICsraSkKKyAgICAgICAgYXJnTGlzdFJlZltpXSA9IEJs
YWNrQmVycnlKYXZhU2NyaXB0VmFyaWFudFRvSlNWYWx1ZVJlZihjdHgsIGFyZ3NbaV0pOwogCiAg
ICAgSlNWYWx1ZVJlZiB3aW5kb3dPYmplY3RWYWx1ZSA9IHdpbmRvd09iamVjdCgpOwogICAgIEpT
T2JqZWN0UmVmIG9iaiA9IEpTVmFsdWVUb09iamVjdChjdHgsIHdpbmRvd09iamVjdFZhbHVlLCAw
KTsKQEAgLTg5OSw0OSArOTAxLDEzIEBAIGJvb2wgV2ViUGFnZTo6ZXhlY3V0ZUphdmFTY3JpcHRG
dW5jdGlvbihjb25zdCBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gJmZ1bmN0aW9uCiAgICAgaWYg
KGZ1bmN0aW9uT2JqZWN0ICYmIHRoaXNPYmplY3QpCiAgICAgICAgIHJlc3VsdCA9IEpTT2JqZWN0
Q2FsbEFzRnVuY3Rpb24oY3R4LCBmdW5jdGlvbk9iamVjdCwgdGhpc09iamVjdCwgYXJncy5zaXpl
KCksIGFyZ0xpc3RSZWYuZGF0YSgpLCAwKTsKIAotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBhcmdzLnNpemUoKTsgKytpKQotICAgICAgICBKU1N0cmluZ1JlbGVhc2UoYXJnTGlzdFtpXSk7
Ci0KICAgICBKU0M6OkpTVmFsdWUgdmFsdWUgPSB0b0pTKGV4ZWMsIHJlc3VsdCk7Ci0KICAgICBp
ZiAoIXZhbHVlKSB7Ci0gICAgICAgIHJldHVyblR5cGUgPSBKU0V4Y2VwdGlvbjsKLSAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIEpTVHlwZSB0eXBlID0gSlNWYWx1ZUdldFR5cGUo
Y3R4LCByZXN1bHQpOwotCi0gICAgc3dpdGNoICh0eXBlKSB7Ci0gICAgY2FzZSBrSlNUeXBlTnVs
bDoKLSAgICAgICAgcmV0dXJuVHlwZSA9IEpTTnVsbDsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2Fz
ZSBrSlNUeXBlQm9vbGVhbjoKLSAgICAgICAgcmV0dXJuVHlwZSA9IEpTQm9vbGVhbjsKLSAgICAg
ICAgYnJlYWs7Ci0gICAgY2FzZSBrSlNUeXBlTnVtYmVyOgotICAgICAgICByZXR1cm5UeXBlID0g
SlNOdW1iZXI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2Uga0pTVHlwZVN0cmluZzoKLSAgICAg
ICAgcmV0dXJuVHlwZSA9IEpTU3RyaW5nOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIGtKU1R5
cGVPYmplY3Q6Ci0gICAgICAgIHJldHVyblR5cGUgPSBKU09iamVjdDsKLSAgICAgICAgYnJlYWs7
Ci0gICAgY2FzZSBrSlNUeXBlVW5kZWZpbmVkOgotICAgIGRlZmF1bHQ6Ci0gICAgICAgIHJldHVy
blR5cGUgPSBKU1VuZGVmaW5lZDsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotCi0gICAgaWYgKHJl
dHVyblR5cGUgPT0gSlNCb29sZWFuIHx8IHJldHVyblR5cGUgPT0gSlNOdW1iZXIgfHwgcmV0dXJu
VHlwZSA9PSBKU1N0cmluZyB8fCByZXR1cm5UeXBlID09IEpTT2JqZWN0KSB7Ci0gICAgICAgIEpT
U3RyaW5nUmVmIHN0cmluZ1JlZiA9IEpTVmFsdWVUb1N0cmluZ0NvcHkoY3R4LCByZXN1bHQsIDAp
OwotICAgICAgICBzaXplX3QgYnVmZmVyU2l6ZSA9IEpTU3RyaW5nR2V0TWF4aW11bVVURjhDU3Ry
aW5nU2l6ZShzdHJpbmdSZWYpOwotICAgICAgICBXVEY6OlZlY3RvcjxjaGFyPiBidWZmZXIoYnVm
ZmVyU2l6ZSk7Ci0gICAgICAgIEpTU3RyaW5nR2V0VVRGOENTdHJpbmcoc3RyaW5nUmVmLCBidWZm
ZXIuZGF0YSgpLCBidWZmZXJTaXplKTsKLSAgICAgICAgcmV0dXJuVmFsdWUgPSBXZWJTdHJpbmc6
OmZyb21VdGY4KGJ1ZmZlci5kYXRhKCkpOworICAgICAgICByZXR1cm5WYWx1ZS5zZXRUeXBlKEph
dmFTY3JpcHRWYXJpYW50OjpFeGNlcHRpb24pOworICAgICAgICByZXR1cm47CiAgICAgfQogCi0g
ICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuVmFsdWUgPSBKU1ZhbHVlUmVmVG9CbGFja0JlcnJ5
SmF2YVNjcmlwdFZhcmlhbnQoY3R4LCByZXN1bHQpOwogfQogCiB2b2lkIFdlYlBhZ2VQcml2YXRl
OjpzdG9wQ3VycmVudExvYWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5
L0FwaS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuaApp
bmRleCA1Y2E0YTI1Li4xY2M0MGVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvQXBpL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBh
Z2UuaApAQCAtMjAsNiArMjAsNyBAQAogI2RlZmluZSBXZWJQYWdlX2gKIAogI2luY2x1ZGUgIkJs
YWNrQmVycnlHbG9iYWwuaCIKKyNpbmNsdWRlICJKYXZhU2NyaXB0VmFyaWFudC5oIgogI2luY2x1
ZGUgIldlYlN0cmluZy5oIgogCiAjaW5jbHVkZSA8QmxhY2tCZXJyeVBsYXRmb3JtR3VhcmRlZFBv
aW50ZXIuaD4KQEAgLTEwNSw3ICsxMDYsNyBAQCBwdWJsaWM6CiAgICAgLy8gVGFrZXMgYSBVVEYx
NiBlbmNvZGVkIHNjcmlwdCB0aGF0IGlzIHVzZWQgZXhwbGljaXRseSBieSB0aGUgcGF0dGVybiBt
YXRjaGluZyBjb2RlCiAgICAgYm9vbCBleGVjdXRlSmF2YVNjcmlwdEluSXNvbGF0ZWRXb3JsZChj
b25zdCBzdGQ6OndzdHJpbmcmIHNjcmlwdCwgSmF2YVNjcmlwdERhdGFUeXBlJiByZXR1cm5UeXBl
LCBXZWJTdHJpbmcmIHJldHVyblZhbHVlKTsKIAotICAgIGJvb2wgZXhlY3V0ZUphdmFTY3JpcHRG
dW5jdGlvbihjb25zdCBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gJnNjcmlwdCwgY29uc3Qgc3Rk
Ojp2ZWN0b3I8c3RkOjpzdHJpbmc+ICZhcmdzLCBKYXZhU2NyaXB0RGF0YVR5cGUmIHJldHVyblR5
cGUsIFdlYlN0cmluZyYgcmV0dXJuVmFsdWUpOworICAgIHZvaWQgZXhlY3V0ZUphdmFTY3JpcHRG
dW5jdGlvbihjb25zdCBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gJmZ1bmN0aW9uLCBjb25zdCBz
dGQ6OnZlY3RvcjxKYXZhU2NyaXB0VmFyaWFudD4gJmFyZ3MsIEphdmFTY3JpcHRWYXJpYW50JiBy
ZXR1cm5WYWx1ZSk7CiAKICAgICB2b2lkIGluaXRpYWxpemVJY29uRGF0YUJhc2UoKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKaW5kZXggNmVlZGVkMi4uMWVhNDkxMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQgQEAKKzIwMTItMDgtMDkgIEJlbmph
bWluIEMgTWV5ZXIgIDxibWV5ZXJAcmltLmNvbT4KKworICAgICAgICBJbnRyb2R1Y2UgSmF2YVNj
cmlwdFZhcmlhbnQgb2JqZWN0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9OTM2NDQKKworICAgICAgICBUaGUgSmF2YVNjcmlwdFZhcmlhbnQgY2FuIGJl
IHVzZWQgZm9yIGZ1bmN0aW9ucyB0aGF0IHJldHVybiByZXN1bHRzIGZyb20KKyAgICAgICAgSmF2
YVNjcmlwdCBzdWNoIGFzIGV4ZWN1dGVKYXZhU2NyaXB0IG9yIGZ1bmN0aW9ucyB0aGF0IHRha2Ug
YXJndW1lbnRzCisgICAgICAgIHRvIHBhc3MgYSB2YXJpYWJsZSB0byBKYXZhU2NyaXB0IGFuZCB0
aGV5IHdhbnQgdG8gbWFrZSBzdXJlIHRoZSB0eXBlCisgICAgICAgIGlzIGNvcnJlY3QuCisKKyAg
ICAgICAgQ29udmVydCBleGVjdXRlSmF2YVNjcmlwdEZ1bmN0aW9uKCkgdG8gdXNlIHRoaXMgZGF0
YSB0eXBlIGFzIHRoZQorICAgICAgICBleGFtcGxlLCBvdGhlciBmdW5jdGlvbnMgd2lsbCBiZSBj
b252ZXJ0ZWQgaW4gdGhlIGZ1dHVyZS4KKworICAgICAgICBQUiAxNDkyOQorCisgICAgICAgIElu
dGVybmFsbHkgcmV2aWV3ZWQgYnkgSm9lIE1hc29uCisgICAgICAgIFJldmlld2VkIGJ5IEFkYW0g
VHJlYXQKKworICAgICAgICAqIEFwaS9KYXZhU2NyaXB0VmFyaWFudC5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViS2l0KToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6SlNWYWx1ZVJlZlRv
QmxhY2tCZXJyeUphdmFTY3JpcHRWYXJpYW50KToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktp
dDo6QmxhY2tCZXJyeUphdmFTY3JpcHRWYXJpYW50VG9KU1ZhbHVlUmVmKToKKyAgICAgICAgKEJs
YWNrQmVycnk6OldlYktpdDo6SmF2YVNjcmlwdFZhcmlhbnQ6OkphdmFTY3JpcHRWYXJpYW50KToK
KyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6SmF2YVNjcmlwdFZhcmlhbnQ6On5KYXZhU2Ny
aXB0VmFyaWFudCk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OkphdmFTY3JpcHRWYXJp
YW50OjpvcGVyYXRvcj0pOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpKYXZhU2NyaXB0
VmFyaWFudDo6c2V0VHlwZSk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OkphdmFTY3Jp
cHRWYXJpYW50Ojp0eXBlKToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6SmF2YVNjcmlw
dFZhcmlhbnQ6OnNldERvdWJsZSk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OkphdmFT
Y3JpcHRWYXJpYW50Ojpkb3VibGVWYWx1ZSk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6
OkphdmFTY3JpcHRWYXJpYW50OjpzZXRTdHJpbmcpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2Vi
S2l0OjpKYXZhU2NyaXB0VmFyaWFudDo6c3RyaW5nVmFsdWUpOgorICAgICAgICAoQmxhY2tCZXJy
eTo6V2ViS2l0OjpKYXZhU2NyaXB0VmFyaWFudDo6c2V0Qm9vbGVhbik6CisgICAgICAgIChCbGFj
a0JlcnJ5OjpXZWJLaXQ6OkphdmFTY3JpcHRWYXJpYW50Ojpib29sZWFuVmFsdWUpOgorICAgICAg
ICAqIEFwaS9KYXZhU2NyaXB0VmFyaWFudC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdCk6Cisg
ICAgICAgICogQXBpL0phdmFTY3JpcHRWYXJpYW50X3AuaDogQWRkZWQuCisgICAgICAgIChXZWJL
aXQpOgorICAgICAgICAqIEFwaS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKEJsYWNrQmVycnk6Oldl
YktpdDo6V2ViUGFnZTo6ZXhlY3V0ZUphdmFTY3JpcHRGdW5jdGlvbik6CisgICAgICAgICogQXBp
L1dlYlBhZ2UuaDoKKwogMjAxMi0wOC0wOCAgSmFja3kgSmlhbmcgIDx6aGFqaWFuZ0ByaW0uY29t
PgogCiAgICAgICAgIFtCbGFja0JlcnJ5XSBJbXBsZW1lbnQgYWJvdXQ6bWVtb3J5LWxpdmUKLS0g
CjEuNy4xCgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>