<?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>161433</bug_id>
          
          <creation_ts>2016-08-31 03:04:19 -0700</creation_ts>
          <short_desc>[CMake] CMake does not support the dep files for implicit dependency</short_desc>
          <delta_ts>2017-03-26 18:45:39 -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>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=151298</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>161592</dependson>
    
    <dependson>161854</dependson>
    
    <dependson>163227</dependson>
          <blocked>164054</blocked>
    
    <blocked>170106</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Fujii Hironori">fujii</reporter>
          <assigned_to name="Fujii Hironori">fujii</assigned_to>
          <cc>achristensen</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>clopez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>lforschler</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>ossy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1224933</commentid>
    <comment_count>0</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2016-08-31 03:04:19 -0700</bug_when>
    <thetext>[CMake] CMake does not support the dep file of preprocess-idls.pl --supplementalMakefileDeps

preprocess-idls.pl has a switch --supplementalMakefileDeps to generate dynamic dependency file (SupplementalDependencies.dep).
And, Source/WebCore/DerivedSources.make includes the file:

&gt; -include $(SUPPLEMENTAL_MAKEFILE_DEPS)

But, CMake does not support the dynamic custom dependencies.

For example, we have a following problem of incremental build:

1) Build
&gt;   ./Tools/Scripts/build-webkit --gtk --debug --64-bit
2) Rename webkitBattery to webkitBattery2
&gt;   sed -i s/webkitBattery/webkitBattery2/ Source/WebCore/Modules/battery/NavigatorBattery.*
3) Build again
&gt;    ./Tools/Scripts/build-webkit --gtk --debug --64-bit
4) But, WebKitBuild/Debug/DerivedSources/WebCore/JSNavigator.cpp is not updated
5) We need to manually touch supplemented IDL files.
&gt;   touch Source/WebCore/page/Navigator.idl

There are three solutions:

A) Use DerivedSources.make (Bug 130339)
B) Generate Makefile for preprocess-idls.pl and generate-bindings.pl and invoke &apos;make&apos;
C) Implement Make-like tool in Python or Perl</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1225629</commentid>
    <comment_count>1</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2016-09-01 17:20:49 -0700</bug_when>
    <thetext>(In reply to comment #0)
&gt; There are three solutions:
&gt; 
&gt; A) Use DerivedSources.make (Bug 130339)
&gt; B) Generate Makefile for preprocess-idls.pl and generate-bindings.pl and
&gt; invoke &apos;make&apos;
&gt; C) Implement Make-like tool in Python or Perl


According to Ninja documentation, it seems to support dep file.
https://ninja-build.org/manual.html#ref_rule
We seem to have fourth choice:

D) Generate bulid.ninja for preprocess-idls.pl and generate-bindings.pl and invoke &apos;ninja&apos; or &apos;ninja-build&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1228011</commentid>
    <comment_count>2</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2016-09-08 19:44:44 -0700</bug_when>
    <thetext>I&apos;ve finished a experimental prototyping.

&gt; https://github.com/fujii/webkit/pull/1

There are several commits of refrigerating CMake scripts. This is the
important part:

&gt; https://github.com/fujii/webkit/commit/fffdb707fe123742a5440d5ec4a9c074f1c82d7c

I&apos;ve got well understanding thought this experiment.

&gt; C) Implement Make-like tool in Python or Perl

This approach is better than others because more precise dependency
updating checking is possible.  For example, my patches solve the
problem updating supplemental_dependency.tmp triggers regenerating all
bindings.

And, Perl is better than Python because generate-bindings.pl is
written in Perl.  If generate-bindings.pl will be converted to Perl
Module, I can stop using fork&amp;exec for speed and avoiding Windows
quoting command problem.

Ninja deletes all output files before executing a command.
So, I need to use add_custom_target.

Can I proceed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1228093</commentid>
    <comment_count>3</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2016-09-09 05:20:59 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; I&apos;ve finished a experimental prototyping.
&gt; 
&gt; &gt; https://github.com/fujii/webkit/pull/1
&gt; 

You have to upload the patch here, with the r? flag set so a reviewer can take a look into it.

The patch should also contain changelogs (we have a tool to generate them).

Check: https://webkit.org/contributing-code/


Very summarized the process for git users is the following:

1. Commit to a local git branch your patch.
2. Generate a changelog for it as follows:
$ Tools/Scripts/prepare-ChangeLog -b $bugnumer -g $sha1hashofthecommit
3. Edit the changelogs and commit them amending the previous commit
4. Upload the patch here using this:
$ Tools/Scripts/webkit-patch upload -g $sha1hashofthenewammendedcommit --suggest-reviewers --request-commit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1228094</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2016-09-09 05:26:00 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; I&apos;ve finished a experimental prototyping.
&gt; &gt; 
&gt; &gt; &gt; https://github.com/fujii/webkit/pull/1
&gt; &gt; 
&gt; 
&gt; You have to upload the patch here, with the r? flag set so a reviewer can
&gt; take a look into it.
&gt; 
&gt; The patch should also contain changelogs (we have a tool to generate them).
&gt; 
&gt; Check: https://webkit.org/contributing-code/
&gt; 
&gt; 
&gt; Very summarized the process for git users is the following:
&gt; 
&gt; 1. Commit to a local git branch your patch.
&gt; 2. Generate a changelog for it as follows:
&gt; $ Tools/Scripts/prepare-ChangeLog -b $bugnumer -g $sha1hashofthecommit
&gt; 3. Edit the changelogs and commit them amending the previous commit
&gt; 4. Upload the patch here using this:
&gt; $ Tools/Scripts/webkit-patch upload -g $sha1hashofthenewammendedcommit
&gt; --suggest-reviewers --request-commit

If any of the previous commands fails, ensure that you have configured git-svn to track also the svn repository as documented here https://trac.webkit.org/wiki/UsingGitWithWebKit#Checkout and retry.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1228662</commentid>
    <comment_count>5</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2016-09-11 18:26:10 -0700</bug_when>
    <thetext>Thank you for the advice, Carlos. I&apos;ll do that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1236874</commentid>
    <comment_count>6</comment_count>
      <attachid>290773</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2016-10-05 20:12:40 -0700</bug_when>
    <thetext>Created attachment 290773
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1236978</commentid>
    <comment_count>7</comment_count>
      <attachid>290803</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2016-10-06 02:56:38 -0700</bug_when>
    <thetext>Created attachment 290803
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1236999</commentid>
    <comment_count>8</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2016-10-06 04:08:30 -0700</bug_when>
    <thetext>win EWS fails:

&gt; UIScriptController.idl
&gt;   C:/cygwin/home/buildbot/WebKit/Tools/TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl
&gt;   : No such file or directory at /home/buildbot/WebKit/Source/WebCore/bindings/scripts/generate-bindings.pl line 79.
&gt;   Thread 1 terminated abnormally: Died at C:/cygwin/home/buildbot/WebKit/Source/WebCore/bindings/scripts/generate-bindings-all.pl line 157.
&gt;   	...propagated at C:/cygwin/home/buildbot/WebKit/Source/WebCore/bindings/scripts/generate-bindings-all.pl line 162.
&gt; C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(171,5): error MSB6006: &quot;cmd.exe&quot; exited with code 1. 

EWS uses Cygwin Perl. This problem seems a filename with trailing CR.

&gt; -- Found Perl: C:/cygwin/bin/perl.exe (found suitable version &quot;5.22.2&quot;, minimum required is &quot;5.10.0&quot;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1237004</commentid>
    <comment_count>9</comment_count>
      <attachid>290810</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2016-10-06 04:39:36 -0700</bug_when>
    <thetext>Created attachment 290810
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1237545</commentid>
    <comment_count>10</comment_count>
      <attachid>290919</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2016-10-07 02:55:42 -0700</bug_when>
    <thetext>Created attachment 290919
Patch

Rebased the patch for r206904.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1237656</commentid>
    <comment_count>11</comment_count>
      <attachid>290919</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2016-10-07 10:40:42 -0700</bug_when>
    <thetext>Comment on attachment 290919
Patch

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

I think this looks good, but I&apos;d like Carlos to give final approval.

&gt; Source/WebCore/ChangeLog:24
&gt; +        * bindings/scripts/generate-bindings-all.pl: Added.

Is the original &quot;generate-bindings.pl&quot; still need after this change?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1238131</commentid>
    <comment_count>12</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2016-10-09 16:29:38 -0700</bug_when>
    <thetext>Thank you for reviewing my patch.

(In reply to comment #11)
&gt; Is the original &quot;generate-bindings.pl&quot; still need after this change?

generate-bindings.pl is still used in non-CMake port (Mac port)
and run-bindings-tests.  And, I can not combine these two scripts
without tricks because generate-bindings.pl uses global variables
which prevents multi-threading.

I think it&apos;s good idea to do refactoring.
If generate-bindings.pl will be converted to Perl
Module, I can stop using fork&amp;exec for speed and avoiding Windows
quoting command problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1238136</commentid>
    <comment_count>13</comment_count>
      <attachid>290919</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2016-10-09 17:16:12 -0700</bug_when>
    <thetext>Comment on attachment 290919
Patch

Since Carlos hasn&apos;t objected, I think we should move forward. We can always fix up afterwards if there are any issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1238142</commentid>
    <comment_count>14</comment_count>
      <attachid>290919</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-09 17:40:39 -0700</bug_when>
    <thetext>Comment on attachment 290919
Patch

Clearing flags on attachment: 290919

Committed r206972: &lt;http://trac.webkit.org/changeset/206972&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1238143</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-09 17:40:45 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1238321</commentid>
    <comment_count>16</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2016-10-10 09:09:07 -0700</bug_when>
    <thetext>Hm, it&apos;s very noisy:

[96/3651] Generate bindings (WebCoreBindings)
Preprocess IDL
WebKitPlaybackTargetAvailabilityEvent.idl
BatteryManager.idl
NavigatorBattery.idl
DOMWindowFetch.idl
FetchBody.idl
FetchHeaders.idl
FetchRequest.idl
FetchResponse.idl
WorkerGlobalScopeFetch.idl
Coordinates.idl
Geolocation.idl
Geoposition.idl
NavigatorGeolocation.idl
PositionCallback.idl
PositionError.idl
PositionErrorCallback.idl
DOMWindowIndexedDatabase.idl
IDBCursor.idl
IDBCursorWithValue.idl
IDBDatabase.idl
IDBFactory.idl
IDBIndex.idl
IDBKeyRange.idl
IDBObjectStore.idl
IDBOpenDBRequest.idl
IDBRequest.idl
IDBTransaction.idl
IDBVersionChangeEvent.idl
WorkerGlobalScopeIndexedDatabase.idl
UIRequestEvent.idl
MediaControlsHost.idl
HTMLMediaElementMediaSession.idl
MediaRemoteControls.idl
MediaSession.idl
DOMURLMediaSource.idl
MediaSource.idl
SourceBuffer.idl
SourceBufferList.idl
VideoPlaybackQuality.idl
DOMURLMediaStream.idl
HTMLMediaElementMediaStream.idl
MediaDeviceInfo.idl
MediaDevices.idl
MediaStream.idl
MediaStreamEvent.idl
MediaStreamTrack.idl
MediaStreamTrackEvent.idl
MediaTrackConstraint.idl
MediaTrackConstraintSet.idl
MediaTrackConstraints.idl
MediaTrackSupportedConstraints.idl
NavigatorMediaDevices.idl
NavigatorUserMedia.idl
OverconstrainedError.idl
OverconstrainedErrorEvent.idl
RTCConfiguration.idl
RTCDTMFSender.idl
RTCDTMFToneChangeEvent.idl
RTCDataChannel.idl
RTCDataChannelEvent.idl
RTCIceCandidate.idl
RTCIceCandidateEvent.idl
RTCIceServer.idl
RTCPeerConnection.idl
RTCRtpReceiver.idl
RTCRtpSender.idl
RTCRtpTransceiver.idl
RTCSessionDescription.idl
RTCStatsReport.idl
RTCStatsResponse.idl
RTCTrackEvent.idl
NavigatorContentUtils.idl
DOMWindowNotifications.idl
Notification.idl
NotificationCenter.idl
NotificationPermissionCallback.idl
WorkerGlobalScopeNotifications.idl
DeviceProximityEvent.idl
DOMWindowSpeechSynthesis.idl
SpeechSynthesis.idl
SpeechSynthesisEvent.idl
SpeechSynthesisUtterance.idl
SpeechSynthesisVoice.idl
ByteLengthQueuingStrategy.idl
CountQueuingStrategy.idl
ReadableStream.idl
ReadableStreamDefaultController.idl
ReadableStreamDefaultReader.idl
ReadableStreamSource.idl
WritableStream.idl
NavigatorVibration.idl
AnalyserNode.idl
AudioBuffer.idl
AudioBufferCallback.idl
AudioBufferSourceNode.idl
AudioContext.idl
AudioDestinationNode.idl
AudioListener.idl
AudioNode.idl
AudioParam.idl
AudioProcessingEvent.idl
BiquadFilterNode.idl
ChannelMergerNode.idl
ChannelSplitterNode.idl
ConvolverNode.idl
DelayNode.idl
DynamicsCompressorNode.idl
GainNode.idl
MediaElementAudioSourceNode.idl
MediaStreamAudioDestinationNode.idl
MediaStreamAudioSourceNode.idl
OfflineAudioCompletionEvent.idl
OfflineAudioContext.idl
OscillatorNode.idl
PannerNode.idl
PeriodicWave.idl
ScriptProcessorNode.idl
WaveShaperNode.idl
DOMWindowWebDatabase.idl
Database.idl
DatabaseCallback.idl
SQLError.idl
SQLException.idl
SQLResultSet.idl
SQLResultSetRowList.idl
SQLStatementCallback.idl
SQLStatementErrorCallback.idl
SQLTransaction.idl
SQLTransactionCallback.idl
SQLTransactionErrorCallback.idl
CloseEvent.idl
WebSocket.idl
Animatable.idl
AnimationEffect.idl
AnimationTimeline.idl
DocumentAnimation.idl
DocumentTimeline.idl
KeyframeEffect.idl
WebAnimation.idl
CryptoKey.idl
CryptoKeyPair.idl
SubtleCrypto.idl
WebKitSubtleCrypto.idl
CSSCharsetRule.idl
CSSFontFaceLoadEvent.idl
CSSFontFaceRule.idl
CSSImportRule.idl
CSSKeyframeRule.idl
CSSKeyframesRule.idl
CSSMediaRule.idl
CSSPageRule.idl
CSSPrimitiveValue.idl
CSSRule.idl
CSSRuleList.idl
CSSStyleDeclaration.idl
CSSStyleRule.idl
CSSStyleSheet.idl
CSSSupportsRule.idl
CSSUnknownRule.idl
CSSValue.idl
CSSValueList.idl
Counter.idl
DOMCSSNamespace.idl
FontFace.idl
FontFaceSet.idl
MediaList.idl
MediaQueryList.idl
MediaQueryListListener.idl
RGBColor.idl
Rect.idl
StyleMedia.idl
StyleSheet.idl
StyleSheetList.idl
WebKitCSSFilterValue.idl
WebKitCSSMatrix.idl
WebKitCSSRegionRule.idl
WebKitCSSTransformValue.idl
WebKitCSSViewportRule.idl
AnimationEvent.idl
Attr.idl
BeforeLoadEvent.idl
BeforeUnloadEvent.idl
CDATASection.idl
CharacterData.idl
ChildNode.idl
ClientRect.idl
ClientRectList.idl
ClipboardEvent.idl
Comment.idl
CompositionEvent.idl
CustomElementRegistry.idl
CustomEvent.idl
DOMCoreException.idl
DOMError.idl
DOMImplementation.idl
DOMNamedFlowCollection.idl
DOMStringList.idl
DOMStringMap.idl
DataTransfer.idl
DataTransferItem.idl
DataTransferItemList.idl
DeviceMotionEvent.idl
DeviceOrientationEvent.idl
Document.idl
DocumentFragment.idl
DocumentOrShadowRoot.idl
DocumentType.idl
Element.idl
ErrorEvent.idl
Event.idl
EventInit.idl
EventModifierInit.idl
EventTarget.idl
FocusEvent.idl
GlobalEventHandlers.idl
HashChangeEvent.idl
InputEvent.idl
KeyboardEvent.idl
MessageChannel.idl
MessageEvent.idl
MessagePort.idl
MouseEvent.idl
MutationEvent.idl
MutationObserver.idl
MutationRecord.idl
NamedNodeMap.idl
Node.idl
NodeFilter.idl
NodeIterator.idl
NodeList.idl
NonDocumentTypeChildNode.idl
NonElementParentNode.idl
OverflowEvent.idl
PageTransitionEvent.idl
ParentNode.idl
PopStateEvent.idl
ProcessingInstruction.idl
ProgressEvent.idl
Range.idl
RequestAnimationFrameCallback.idl
SecurityPolicyViolationEvent.idl
ShadowRoot.idl
Slotable.idl
StringCallback.idl
Text.idl
TextEvent.idl
Touch.idl
TouchEvent.idl
TouchList.idl
TransitionEvent.idl
TreeWalker.idl
UIEvent.idl
UIEventInit.idl
WebKitAnimationEvent.idl
WebKitNamedFlow.idl
WebKitTransitionEvent.idl
WheelEvent.idl
XMLDocument.idl
Blob.idl
File.idl
FileError.idl
FileException.idl
FileList.idl
FileReader.idl
FileReaderSync.idl
DOMFormData.idl
DOMTokenList.idl
DOMURL.idl
HTMLAllCollection.idl
HTMLAnchorElement.idl
HTMLAppletElement.idl
HTMLAreaElement.idl
HTMLAttachmentElement.idl
HTMLAudioElement.idl
HTMLBRElement.idl
HTMLBaseElement.idl
HTMLBodyElement.idl
HTMLButtonElement.idl
HTMLCanvasElement.idl
HTMLCollection.idl
HTMLDListElement.idl
HTMLDataElement.idl
HTMLDataListElement.idl
HTMLDetailsElement.idl
HTMLDirectoryElement.idl
HTMLDivElement.idl
HTMLDocument.idl
HTMLElement.idl
HTMLEmbedElement.idl
HTMLFieldSetElement.idl
HTMLFontElement.idl
HTMLFormControlsCollection.idl
HTMLFormElement.idl
HTMLFrameElement.idl
HTMLFrameSetElement.idl
HTMLHRElement.idl
HTMLHeadElement.idl
HTMLHeadingElement.idl
HTMLHtmlElement.idl
HTMLHyperlinkElementUtils.idl
HTMLIFrameElement.idl
HTMLImageElement.idl
HTMLInputElement.idl
HTMLKeygenElement.idl
HTMLLIElement.idl
HTMLLabelElement.idl
HTMLLegendElement.idl
HTMLLinkElement.idl
HTMLMapElement.idl
HTMLMarqueeElement.idl
HTMLMediaElement.idl
HTMLMenuElement.idl
HTMLMetaElement.idl
HTMLMeterElement.idl
HTMLModElement.idl
HTMLOListElement.idl
HTMLObjectElement.idl
HTMLOptGroupElement.idl
HTMLOptionElement.idl
HTMLOptionsCollection.idl
HTMLOutputElement.idl
HTMLParagraphElement.idl
HTMLParamElement.idl
HTMLPictureElement.idl
HTMLPreElement.idl
HTMLProgressElement.idl
HTMLQuoteElement.idl
HTMLScriptElement.idl
HTMLSelectElement.idl
HTMLSlotElement.idl
HTMLSourceElement.idl
HTMLSpanElement.idl
HTMLStyleElement.idl
HTMLTableCaptionElement.idl
HTMLTableCellElement.idl
HTMLTableColElement.idl
HTMLTableElement.idl
HTMLTableRowElement.idl
HTMLTableSectionElement.idl
HTMLTemplateElement.idl
HTMLTextAreaElement.idl
HTMLTimeElement.idl
HTMLTitleElement.idl
HTMLTrackElement.idl
HTMLUListElement.idl
HTMLUnknownElement.idl
HTMLVideoElement.idl
ImageData.idl
MediaController.idl
MediaError.idl
RadioNodeList.idl
TextMetrics.idl
TimeRanges.idl
URLSearchParams.idl
URLUtils.idl
ValidityState.idl
VoidCallback.idl
CanvasGradient.idl
CanvasPath.idl
CanvasPattern.idl
CanvasProxy.idl
CanvasRenderingContext2D.idl
DOMPath.idl
CommandLineAPIHost.idl
InspectorFrontendHost.idl
DOMApplicationCache.idl
BarProp.idl
Crypto.idl
DOMSelection.idl
DOMWindow.idl
EventSource.idl
GlobalCrypto.idl
History.idl
Location.idl
Navigator.idl
NavigatorConcurrentHardware.idl
NavigatorID.idl
NavigatorLanguage.idl
NavigatorOnLine.idl
Performance.idl
PerformanceEntry.idl
PerformanceMark.idl
PerformanceMeasure.idl
PerformanceNavigation.idl
PerformanceResourceTiming.idl
PerformanceTiming.idl
Screen.idl
ScrollToOptions.idl
WebKitPoint.idl
WindowEventHandlers.idl
WindowOrWorkerGlobalScope.idl
WorkerNavigator.idl
DOMMimeTypeArray.idl
DOMMimeType.idl
DOMPlugin.idl
DOMPluginArray.idl
Storage.idl
StorageEvent.idl
AbstractWorker.idl
DedicatedWorkerGlobalScope.idl
Worker.idl
WorkerGlobalScope.idl
WorkerLocation.idl
DOMParser.idl
XMLHttpRequest.idl
XMLHttpRequestEventTarget.idl
XMLHttpRequestProgressEvent.idl
XMLHttpRequestUpload.idl
XMLSerializer.idl
XPathEvaluator.idl
XPathException.idl
XPathExpression.idl
XPathNSResolver.idl
XPathResult.idl
XSLTProcessor.idl
SVGAElement.idl
SVGAltGlyphDefElement.idl
SVGAltGlyphElement.idl
SVGAltGlyphItemElement.idl
SVGAngle.idl
SVGAnimateColorElement.idl
SVGAnimateElement.idl
SVGAnimateMotionElement.idl
SVGAnimateTransformElement.idl
SVGAnimatedAngle.idl
SVGAnimatedBoolean.idl
SVGAnimatedEnumeration.idl
SVGAnimatedInteger.idl
SVGAnimatedLength.idl
SVGAnimatedLengthList.idl
SVGAnimatedNumber.idl
SVGAnimatedNumberList.idl
SVGAnimatedPreserveAspectRatio.idl
SVGAnimatedRect.idl
SVGAnimatedString.idl
SVGAnimatedTransformList.idl
SVGAnimationElement.idl
SVGCircleElement.idl
SVGClipPathElement.idl
SVGColor.idl
SVGComponentTransferFunctionElement.idl
SVGCursorElement.idl
SVGDefsElement.idl
SVGDescElement.idl
SVGDocument.idl
SVGElement.idl
SVGEllipseElement.idl
SVGException.idl
SVGExternalResourcesRequired.idl
SVGFEBlendElement.idl
SVGFEColorMatrixElement.idl
SVGFEComponentTransferElement.idl
SVGFECompositeElement.idl
SVGFEConvolveMatrixElement.idl
SVGFEDiffuseLightingElement.idl
SVGFEDisplacementMapElement.idl
SVGFEDistantLightElement.idl
SVGFEDropShadowElement.idl
SVGFEFloodElement.idl
SVGFEFuncAElement.idl
SVGFEFuncBElement.idl
SVGFEFuncGElement.idl
SVGFEFuncRElement.idl
SVGFEGaussianBlurElement.idl
SVGFEImageElement.idl
SVGFEMergeElement.idl
SVGFEMergeNodeElement.idl
SVGFEMorphologyElement.idl
SVGFEOffsetElement.idl
SVGFEPointLightElement.idl
SVGFESpecularLightingElement.idl
SVGFESpotLightElement.idl
SVGFETileElement.idl
SVGFETurbulenceElement.idl
SVGFilterElement.idl
SVGFilterPrimitiveStandardAttributes.idl
SVGFitToViewBox.idl
SVGFontElement.idl
SVGFontFaceElement.idl
SVGFontFaceFormatElement.idl
SVGFontFaceNameElement.idl
SVGFontFaceSrcElement.idl
SVGFontFaceUriElement.idl
SVGForeignObjectElement.idl
SVGGElement.idl
SVGGlyphElement.idl
SVGGlyphRefElement.idl
SVGGradientElement.idl
SVGGraphicsElement.idl
SVGHKernElement.idl
SVGImageElement.idl
SVGLength.idl
SVGLengthList.idl
SVGLineElement.idl
SVGLinearGradientElement.idl
SVGMPathElement.idl
SVGMarkerElement.idl
SVGMaskElement.idl
SVGMatrix.idl
SVGMetadataElement.idl
SVGMissingGlyphElement.idl
SVGNumber.idl
SVGNumberList.idl
SVGPaint.idl
SVGPathElement.idl
SVGPathSeg.idl
SVGPathSegArcAbs.idl
SVGPathSegArcRel.idl
SVGPathSegClosePath.idl
SVGPathSegCurvetoCubicAbs.idl
SVGPathSegCurvetoCubicRel.idl
SVGPathSegCurvetoCubicSmoothAbs.idl
SVGPathSegCurvetoCubicSmoothRel.idl
SVGPathSegCurvetoQuadraticAbs.idl
SVGPathSegCurvetoQuadraticRel.idl
SVGPathSegCurvetoQuadraticSmoothAbs.idl
SVGPathSegCurvetoQuadraticSmoothRel.idl
SVGPathSegLinetoAbs.idl
SVGPathSegLinetoHorizontalAbs.idl
SVGPathSegLinetoHorizontalRel.idl
SVGPathSegLinetoRel.idl
SVGPathSegLinetoVerticalAbs.idl
SVGPathSegLinetoVerticalRel.idl
SVGPathSegList.idl
SVGPathSegMovetoAbs.idl
SVGPathSegMovetoRel.idl
SVGPatternElement.idl
SVGPoint.idl
SVGPointList.idl
SVGPolygonElement.idl
SVGPolylineElement.idl
SVGPreserveAspectRatio.idl
SVGRadialGradientElement.idl
SVGRect.idl
SVGRectElement.idl
SVGRenderingIntent.idl
SVGSVGElement.idl
SVGScriptElement.idl
SVGSetElement.idl
SVGStopElement.idl
SVGStringList.idl
SVGStyleElement.idl
SVGSwitchElement.idl
SVGSymbolElement.idl
SVGTRefElement.idl
SVGTSpanElement.idl
SVGTests.idl
SVGTextContentElement.idl
SVGTextElement.idl
SVGTextPathElement.idl
SVGTextPositioningElement.idl
SVGTitleElement.idl
SVGTransform.idl
SVGTransformList.idl
SVGURIReference.idl
SVGUnitTypes.idl
SVGUseElement.idl
SVGVKernElement.idl
SVGViewElement.idl
SVGViewSpec.idl
SVGZoomAndPan.idl
SVGZoomEvent.idl
ANGLEInstancedArrays.idl
EXTBlendMinMax.idl
EXTFragDepth.idl
EXTShaderTextureLOD.idl
EXTTextureFilterAnisotropic.idl
EXTsRGB.idl
OESElementIndexUint.idl
OESStandardDerivatives.idl
OESTextureFloat.idl
OESTextureFloatLinear.idl
OESTextureHalfFloat.idl
OESTextureHalfFloatLinear.idl
OESVertexArrayObject.idl
WebGL2RenderingContext.idl
WebGLActiveInfo.idl
WebGLBuffer.idl
WebGLCompressedTextureATC.idl
WebGLCompressedTexturePVRTC.idl
WebGLCompressedTextureS3TC.idl
WebGLContextAttributes.idl
WebGLContextEvent.idl
WebGLDebugRendererInfo.idl
WebGLDebugShaders.idl
WebGLDepthTexture.idl
WebGLDrawBuffers.idl
WebGLFramebuffer.idl
WebGLLoseContext.idl
WebGLProgram.idl
WebGLQuery.idl
WebGLRenderbuffer.idl
WebGLRenderingContext.idl
WebGLRenderingContextBase.idl
WebGLSampler.idl
WebGLShader.idl
WebGLShaderPrecisionFormat.idl
WebGLSync.idl
WebGLTexture.idl
WebGLTransformFeedback.idl
WebGLUniformLocation.idl
WebGLVertexArrayObject.idl
WebGLVertexArrayObjectOES.idl
AudioTrack.idl
AudioTrackList.idl
DataCue.idl
TextTrack.idl
TextTrackCue.idl
TextTrackCueList.idl
TextTrackList.idl
TrackEvent.idl
VTTCue.idl
VTTRegion.idl
VTTRegionList.idl
VideoTrack.idl
VideoTrackList.idl
UserMessageHandler.idl
UserMessageHandlersNamespace.idl
WebKitNamespace.idl
[110/3651] Generate bindings (WebKitTestRunnerInjectedBundleBindings)
AccessibilityController.idl
AccessibilityTextMarker.idl
AccessibilityTextMarkerRange.idl
AccessibilityUIElement.idl
EventSendingController.idl
GCController.idl
TestRunner.idl
TextInputController.idl
[779/3651] Generate bindings (WebKitTestRunnerBindings)
UIScriptController.idl
[2995/3651] Generate bindings (WebCoreTestSupportBindings)
GCObservation.idl
InternalSettings.idl
Internals.idl
MallocStatistics.idl
MemoryInfo.idl
MockContentFilterSettings.idl
MockPageOverlay.idl
TypeConversions.idl
InternalSettingsGenerated.idl

We previously had a nice clean build. Can we make it not print, please?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1238329</commentid>
    <comment_count>17</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-10-10 09:24:16 -0700</bug_when>
    <thetext>It also seems to be doing some commands now always, even on incremental builds when nothing changed

[0/935] Generate bindings (WebCoreBindings)
[2/38] Generate bindings (WebKitTestRunnerBindings)
[3/36] Generate bindings (WebCoreTestSupportBindings)
[4/24] Generate bindings (WebKitTestRunnerInjectedBundleBindings)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1238386</commentid>
    <comment_count>18</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2016-10-10 11:00:16 -0700</bug_when>
    <thetext>We are seeing some EWS flakiness on Windows as well. Could you please look into this ASAP?

Here&apos;s the EWS error:
Thread 2 terminated abnormally: Died at C:/cygwin/home/buildbot/WebKit/Source/WebCore/bindings/scripts/generate-bindings-all.pl line 157.

Here&apos;s that line in the perl:
                system($perl, &quot;$scriptDir/generate-bindings.pl&quot;, @args, $file) == 0 or die;

I&apos;m not sure why this is failing.

I got this to happen in a local Windows build, but when I built a second time it seemed to bypass the error.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1238401</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-10 11:28:24 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 163227</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1238406</commentid>
    <comment_count>20</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2016-10-10 11:30:22 -0700</bug_when>
    <thetext>I&apos;m (regretfully) rolling this change out, because it has made EWS flaky and is causing some unwanted noise for GTK builds.

I don&apos;t have enough deep CMake skills to understand why this is happening, but I&apos;d like to back it out until Fujii has chance to review the issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1238671</commentid>
    <comment_count>21</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2016-10-10 18:14:24 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; I&apos;m (regretfully) rolling this change out, because it has made EWS flaky and
&gt; is causing some unwanted noise for GTK builds.

I&apos;m sorry for causing the serious problem and thank you for
rolling back, Brent.

(In reply to comment #16)
&gt; Hm, it&apos;s very noisy:
&gt; 
&gt; [96/3651] Generate bindings (WebCoreBindings)
&gt; Preprocess IDL
(..)
&gt; We previously had a nice clean build. Can we make it not print, please?

I think it should output something because it takes long time to
generate all bindings.  I&apos;ll improve the progress output as Ninja
does.


(In reply to comment #17)
&gt; It also seems to be doing some commands now always, even on incremental
&gt; builds when nothing changed
&gt; 
&gt; [0/935] Generate bindings (WebCoreBindings)
&gt; [2/38] Generate bindings (WebKitTestRunnerBindings)
&gt; [3/36] Generate bindings (WebCoreTestSupportBindings)
&gt; [4/24] Generate bindings (WebKitTestRunnerInjectedBundleBindings)

This is intended. It checks which IDL needs to be regenerated by
checking timestamp as well as generate-forwarding-headers.pl
does.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1238787</commentid>
    <comment_count>22</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2016-10-11 01:27:41 -0700</bug_when>
    <thetext>I&apos;ve succeeded to reproduce this flaky problem.  The reproduction
ratio of this problem depends on which Perl is used and which version
of Cygwin is used.

64bit ActivePerl : never happen
64bit latest Cygwin Perl: never happen
32bit latest Cygwin Perl: I saw the problem only once
32bit 5-month-old Cygwin Perl: about 10%
32bit 3-year-old Cygwin Perl: never happen

I dumped $! and $?.

&gt;  Can&apos;t exec &quot;/usr/bin/perl&quot;: Bad address at C:/home/0000134108/work/webkit/webkit1/Source/WebCore/bindings/scripts/generate-bindings-all.pl line 159.
&gt;  Thread 8 terminated abnormally: generate-bindings.pl fails: ($!=Bad address)($?=-1) at C:/home/0000134108/work/webkit/webkit1/Source/WebCore/bindings/scripts/generate-bindings-all.pl line 159.
&gt;  	...propagated at C:/home/0000134108/work/webkit/webkit1/Source/WebCore/bindings/scripts/generate-bindings-all.pl line 164.
&gt;C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(171,5): error MSB6006: &quot;cmd.exe&quot; exited with code 1.

Sometimes different error message and no error message:

&gt;  SVGScriptElement.idl
&gt;  SVGStringList.idl
&gt;        1 [main] perl 3588 cygwin_exception::open_stackdumpfile: Dumping stack trace to perl.exe.stackdump
&gt;C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(171,5): error MSB6006: &quot;cmd.exe&quot; exited with code 1536.

This seems Cygwin fork failure problem.
https://cygwin.com/faq/faq.html#faq.using.fixing-fork-failures

I&apos;d like to request installing ActiveState Perl on BuildBot as
described in this page &lt;https://webkit.org/webkit-on-windows/&gt;.
And, Uninstall Cygwin because cmake script append a path to cygwin.
&lt;https://trac.webkit.org/browser/trunk/Source/cmake/WebKitCommon.cmake?rev=207060#L13&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239138</commentid>
    <comment_count>23</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2016-10-11 19:25:56 -0700</bug_when>
    <thetext>Hi Alex, Blent:

You added Cygwin path to CMAKE_PROGRAM_PATH in Bug 152937 for
Apple internal Windows build. Is there a reason to need to use
Cygwin tools yet? Why don&apos;t you use Windows native tools? I have
a trouble with Cygwin Perl.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239735</commentid>
    <comment_count>24</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2016-10-13 04:19:31 -0700</bug_when>
    <thetext>CygwinDownloader has perl-libwin32.
  &lt;https://trac.webkit.org/browser/trunk/Tools/CygwinDownloader/cygwin-downloader.py?rev=167430#L63&gt;

It seems to be able to use Win32::Job perl module for the workaround.

  Win32::Job
  http://search.cpan.org/~gsar/libwin32-0.191/Job/Job.pm

I&apos;ll try.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239736</commentid>
    <comment_count>25</comment_count>
      <attachid>291471</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2016-10-13 04:21:18 -0700</bug_when>
    <thetext>Created attachment 291471
Patch

* Use Win32::Job for the workaround
* Improve the progress output such like Ninja does</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239762</commentid>
    <comment_count>26</comment_count>
      <attachid>291471</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2016-10-13 07:08:07 -0700</bug_when>
    <thetext>Comment on attachment 291471
Patch

Win EWS failed:

&gt;  Can&apos;t locate Win32/Job.pm in @INC (you may need to install the Win32::Job module) (@INC contains: /home/buildbot/WebKit/Source/WebCore/bindings/scripts /usr/lib/perl5/site_perl/5.22/i686-cygwin-threads-64int /usr/lib/perl5/site_perl/5.22 /usr/lib/perl5/vendor_perl/5.22/i686-cygwin-threads-64int /usr/lib/perl5/vendor_perl/5.22 /usr/lib/perl5/5.22/i686-cygwin-threads-64int /usr/lib/perl5/5.22 .) at /usr/lib/perl5/5.22/if.pm line 13.

No luck.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239818</commentid>
    <comment_count>27</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-10-13 10:16:23 -0700</bug_when>
    <thetext>(In reply to comment #23)
&gt; Hi Alex, Blent:
&gt; 
&gt; You added Cygwin path to CMAKE_PROGRAM_PATH in Bug 152937 for
&gt; Apple internal Windows build. Is there a reason to need to use
&gt; Cygwin tools yet? Why don&apos;t you use Windows native tools? I have
&gt; a trouble with Cygwin Perl.

Our internal build needs to continue to use Cygwin.  The WinCairo bot doesn&apos;t even have Cygwin installed.  I agree that&apos;s the preferred way to do development on Windows, but we need to continue to support Cygwin builds.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1240118</commentid>
    <comment_count>28</comment_count>
      <attachid>291573</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2016-10-13 23:11:47 -0700</bug_when>
    <thetext>Created attachment 291573
Minimal test case for Cygwin Perl

This is a minimal test case for Cygwin Perl.  Cygwin Perl fails
to execute a external command with &apos;system&apos; function in
multi-threading.  This problem seems that &apos;system&apos; of Cygwin Perl
is not thread-safe.  Not a Cygwin fork problem.  It works fine if
I use fork&amp;exec instread of &apos;system&apos; even in Cygwin Perl.  I&apos;ll
rewrite the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1240155</commentid>
    <comment_count>29</comment_count>
      <attachid>291589</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2016-10-14 00:55:47 -0700</bug_when>
    <thetext>Created attachment 291589
Patch

* Use fork&amp;exec if Cygwin Perl is used
* Fix a bug of getting TTY width</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1240828</commentid>
    <comment_count>30</comment_count>
      <attachid>291790</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2016-10-16 18:29:01 -0700</bug_when>
    <thetext>Created attachment 291790
Patch

* Merged r207311</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1241505</commentid>
    <comment_count>31</comment_count>
      <attachid>291790</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2016-10-18 11:04:14 -0700</bug_when>
    <thetext>Comment on attachment 291790
Patch

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

Looks good. I&apos;m running it on a local Windows build to make sure it works on our standard setup.

&gt; Source/WebCore/bindings/scripts/generate-bindings-all.pl:83
&gt; +        executeCommand($perl, &quot;$scriptDir/preprocess-idls.pl&quot;, @args) == 0 or die;

This is fine, but I prefer &quot;File::Spec-&gt;catfile&quot; and related so we don&apos;t have to worry about path separator differences for WIndows versus Unix.

&gt; Source/WebCore/bindings/scripts/generate-bindings-all.pl:146
&gt; +            # print &quot;$_ is newer than $oldestObject\n&quot;;

Should remove this debugging statement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1241523</commentid>
    <comment_count>32</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2016-10-18 11:35:48 -0700</bug_when>
    <thetext>This worked very nicely on my local Cygwin-based build!

Fujii, could you please correct those two minor comments I made when you land this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1242260</commentid>
    <comment_count>33</comment_count>
      <attachid>292147</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2016-10-19 20:24:48 -0700</bug_when>
    <thetext>Created attachment 292147
Patch

Thank you for r+ and testing my patch.
I updated the patch.  Please give me cq+.

* Use File::Spec-&gt;catfile for preprocess-idls.pl and generate-bindings.pl
* Removed the debugging statement
* Fix the problem &apos;stty is not recognized&apos; is output in Windows Ninja Win32 Perl build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1242368</commentid>
    <comment_count>34</comment_count>
      <attachid>292147</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-20 07:37:08 -0700</bug_when>
    <thetext>Comment on attachment 292147
Patch

Clearing flags on attachment: 292147

Committed r207617: &lt;http://trac.webkit.org/changeset/207617&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1242369</commentid>
    <comment_count>35</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-20 07:37:16 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1242770</commentid>
    <comment_count>36</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2016-10-20 22:22:22 -0700</bug_when>
    <thetext>Coming CMake 3.7 will finally have DEPFILE argument of add_custom_command only for Ninja generator.
https://cmake.org/cmake/help/v3.7/command/add_custom_command.html</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>290773</attachid>
            <date>2016-10-05 20:12:40 -0700</date>
            <delta_ts>2016-10-06 02:56:29 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>Bug161433.patch</filename>
            <type>text/plain</type>
            <size>17884</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNWI0ZDk4Mi4uMDdiNTM1NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTM2MjQsNyArMzYyNCw3IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfREVSSVZFRF9T
T1VSQ0VTICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9YUGF0aEdyYW1tYXIuCiBzZXQo
RkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgIkxBTkdVQUdFX0pBVkFTQ1JJUFQgJHtGRUFUVVJF
X0RFRklORVNfV0lUSF9TUEFDRV9TRVBBUkFUT1J9IikKIGxpc3QoQVBQRU5EIFdlYkNvcmVUZXN0
U3VwcG9ydF9JRExfRklMRVMgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9L0ludGVybmFs
U2V0dGluZ3NHZW5lcmF0ZWQuaWRsKQogCi1HRU5FUkFURV9CSU5ESU5HUygKK0dFTkVSQVRFX0JJ
TkRJTkdTKFdlYkNvcmVCaW5kaW5ncwogICAgIE9VVFBVVF9TT1VSQ0UgV2ViQ29yZV9ERVJJVkVE
X1NPVVJDRVMKICAgICBJTlBVVF9GSUxFUyAke1dlYkNvcmVfSURMX0ZJTEVTfQogICAgIEJBU0Vf
RElSICR7V0VCQ09SRV9ESVJ9CkBAIC0zNjQwLDcgKzM2NDAsNyBAQCBHRU5FUkFURV9CSU5ESU5H
UygKICAgICAgICAgLS13b3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJHtXT1JLRVJH
TE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRX0KICAgICAgICAgLS1kZWRpY2F0ZWRXb3JrZXJH
bG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJHtERURJQ0FURURXT1JLRVJHTE9CQUxTQ09QRV9D
T05TVFJVQ1RPUlNfRklMRX0pCiAKLUdFTkVSQVRFX0JJTkRJTkdTKAorR0VORVJBVEVfQklORElO
R1MoV2ViQ29yZVRlc3RTdXBwb3J0QmluZGluZ3MKICAgICBPVVRQVVRfU09VUkNFIFdlYkNvcmVU
ZXN0U3VwcG9ydF9TT1VSQ0VTCiAgICAgSU5QVVRfRklMRVMgJHtXZWJDb3JlVGVzdFN1cHBvcnRf
SURMX0ZJTEVTfQogICAgIEJBU0VfRElSICR7V0VCQ09SRV9ESVJ9CkBAIC0zNjQ5LDYgKzM2NDks
OSBAQCBHRU5FUkFURV9CSU5ESU5HUygKICAgICBERVNUSU5BVElPTiAke0RFUklWRURfU09VUkNF
U19XRUJDT1JFX0RJUn0KICAgICBHRU5FUkFUT1IgSlMpCiAKKyMgV2ViQ29yZVRlc3RTdXBwb3J0
QmluZGluZ3MgbmVlZHMgSW50ZXJuYWxTZXR0aW5nc0dlbmVyYXRlZC5pZGwKK2FkZF9kZXBlbmRl
bmNpZXMoV2ViQ29yZVRlc3RTdXBwb3J0QmluZGluZ3MgV2ViQ29yZURlcml2ZWRTb3VyY2VzKQor
CiAjIFdlYkNvcmUgSlMgQnVpbHRpbnMKIAogc2V0KFdlYkNvcmVfQlVJTFRJTlNfU09VUkNFUwpA
QCAtMzc5NCw3ICszNzk3LDcgQEAgZW5kaWYgKCkKICMgZmlsZXMgb24gT1MgWC4KIGFkZF9saWJy
YXJ5KFdlYkNvcmVEZXJpdmVkU291cmNlcyBTVEFUSUMgJHtXZWJDb3JlX0RFUklWRURfU09VUkNF
U30pCiBzZXRfdGFyZ2V0X3Byb3BlcnRpZXMoV2ViQ29yZURlcml2ZWRTb3VyY2VzIFBST1BFUlRJ
RVMgT1VUUFVUX05BTUUgV2ViQ29yZURlcml2ZWRTb3VyY2VzJHtERUJVR19TVUZGSVh9KQotYWRk
X2RlcGVuZGVuY2llcyhXZWJDb3JlRGVyaXZlZFNvdXJjZXMgSmF2YVNjcmlwdENvcmUpCithZGRf
ZGVwZW5kZW5jaWVzKFdlYkNvcmVEZXJpdmVkU291cmNlcyBKYXZhU2NyaXB0Q29yZSBXZWJDb3Jl
QmluZGluZ3MpCiBpZiAoTk9UIFdJTjMyKQogICAgIGxpc3QoQVBQRU5EIFdlYkNvcmVfTElCUkFS
SUVTIFdlYkNvcmVEZXJpdmVkU291cmNlcykKIGVuZGlmICgpCkBAIC0zODI1LDcgKzM4MjgsNyBA
QCBlbmRpZiAoKQogCiBpbmNsdWRlX2RpcmVjdG9yaWVzKCR7V2ViQ29yZVRlc3RTdXBwb3J0X0lO
Q0xVREVfRElSRUNUT1JJRVN9KQogYWRkX2xpYnJhcnkoV2ViQ29yZVRlc3RTdXBwb3J0ICR7V2Vi
Q29yZVRlc3RTdXBwb3J0X0xJQlJBUllfVFlQRX0gJHtXZWJDb3JlVGVzdFN1cHBvcnRfU09VUkNF
U30pCi1hZGRfZGVwZW5kZW5jaWVzKFdlYkNvcmVUZXN0U3VwcG9ydCBXZWJDb3JlKQorYWRkX2Rl
cGVuZGVuY2llcyhXZWJDb3JlVGVzdFN1cHBvcnQgV2ViQ29yZSBXZWJDb3JlVGVzdFN1cHBvcnRC
aW5kaW5ncykKIHRhcmdldF9saW5rX2xpYnJhcmllcyhXZWJDb3JlVGVzdFN1cHBvcnQgJHtXZWJD
b3JlVGVzdFN1cHBvcnRfTElCUkFSSUVTfSkKIAogaWYgKFdlYkNvcmVUZXN0U3VwcG9ydF9PVVRQ
VVRfTkFNRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvZ2Vu
ZXJhdGUtYmluZGluZ3MtYWxsLnBsIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9n
ZW5lcmF0ZS1iaW5kaW5ncy1hbGwucGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uNTg5MWFlZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvZ2VuZXJhdGUtYmluZGluZ3MtYWxsLnBsCkBAIC0wLDAgKzEsMTk5IEBACisjIS91c3Iv
YmluL3BlcmwgLXcKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDE2IFNvbnkgSW50ZXJhY3RpdmUgRW50
ZXJ0YWlubWVudCBJbmMuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoK
KyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisjIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyMg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMKKyMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworIyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04KKyMgQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisjCisKK3VzZSBzdHJpY3Q7Cit1c2UgRmluZEJpbjsKK3VzZSBsaWIgJEZpbmRCaW46OkJpbjsK
KwordXNlIEZpbGU6OkJhc2VuYW1lOwordXNlIEZpbGU6OlNwZWM7Cit1c2UgRmlsZTo6RmluZDsK
K3VzZSBHZXRvcHQ6Okxvbmc7Cit1c2UgdGhyZWFkczsKK3VzZSB0aHJlYWRzOjpzaGFyZWQ7Cit1
c2UgVGhyZWFkOjpRdWV1ZTsKKworbXkgJHBlcmwgPSAkXlg7CitteSAkc2NyaXB0RGlyID0gJEZp
bmRCaW46OkJpbjsKK215IEBpZGxEaXJlY3RvcmllczsKK215ICRvdXRwdXREaXJlY3Rvcnk7Citt
eSAkaWRsRmlsZXNMaXN0OworbXkgJGdlbmVyYXRvcjsKK215IEBnZW5lcmF0b3JEZXBlbmRlbmN5
OworbXkgJGRlZmluZXM7CitteSAkcHJlcHJvY2Vzc29yOworbXkgJHN1cHBsZW1lbnRhbERlcGVu
ZGVuY3lGaWxlOworbXkgQHBwRXh0cmFPdXRwdXQ7CitteSBAcHBFeHRyYUFyZ3M7CitteSAkbnVt
T2ZKb2JzID0gMTsKK215ICRpZGxBdHRyaWJ1dGVzRmlsZTsKKworR2V0T3B0aW9ucygnaW5jbHVk
ZT1zQCcgPT4gXEBpZGxEaXJlY3RvcmllcywKKyAgICAgICAgICAgJ291dHB1dERpcj1zJyA9PiBc
JG91dHB1dERpcmVjdG9yeSwKKyAgICAgICAgICAgJ2lkbEZpbGVzTGlzdD1zJyA9PiBcJGlkbEZp
bGVzTGlzdCwKKyAgICAgICAgICAgJ2dlbmVyYXRvcj1zJyA9PiBcJGdlbmVyYXRvciwKKyAgICAg
ICAgICAgJ2dlbmVyYXRvckRlcGVuZGVuY3k9c0AnID0+IFxAZ2VuZXJhdG9yRGVwZW5kZW5jeSwK
KyAgICAgICAgICAgJ2RlZmluZXM9cycgPT4gXCRkZWZpbmVzLAorICAgICAgICAgICAncHJlcHJv
Y2Vzc29yPXMnID0+IFwkcHJlcHJvY2Vzc29yLAorICAgICAgICAgICAnc3VwcGxlbWVudGFsRGVw
ZW5kZW5jeUZpbGU9cycgPT4gXCRzdXBwbGVtZW50YWxEZXBlbmRlbmN5RmlsZSwKKyAgICAgICAg
ICAgJ3BwRXh0cmFPdXRwdXQ9c0AnID0+IFxAcHBFeHRyYU91dHB1dCwKKyAgICAgICAgICAgJ3Bw
RXh0cmFBcmdzPXNAJyA9PiBcQHBwRXh0cmFBcmdzLAorICAgICAgICAgICAnaWRsQXR0cmlidXRl
c0ZpbGU9cycgPT4gXCRpZGxBdHRyaWJ1dGVzRmlsZSwKKyAgICAgICAgICAgJ251bU9mSm9icz1p
JyA9PiBcJG51bU9mSm9icyk7CisKK215IEBpZGxGaWxlczsKK29wZW4obXkgJGZoLCAnPCcsICRp
ZGxGaWxlc0xpc3QpIG9yIGRpZSAiQ2Fubm90IG9wZW4gJGlkbEZpbGVzTGlzdCI7CitAaWRsRmls
ZXMgPSA8JGZoPjsKK2Nsb3NlKCRmaCkgb3IgZGllOworY2hvbXAoQGlkbEZpbGVzKTsKKworbXkg
JXN1cHBsZW1lbnRlZElkbEZpbGVzOworaWYgKCRzdXBwbGVtZW50YWxEZXBlbmRlbmN5RmlsZSkg
eworICAgIG15IEBvdXRwdXQgPSAoJHN1cHBsZW1lbnRhbERlcGVuZGVuY3lGaWxlLCBAcHBFeHRy
YU91dHB1dCk7CisgICAgbXkgQGRlcHMgPSAoQGlkbEZpbGVzLCBAZ2VuZXJhdG9yRGVwZW5kZW5j
eSk7CisgICAgaWYgKG5lZWRzVXBkYXRlKFxAb3V0cHV0LCBcQGRlcHMpKSB7CisgICAgICAgIG15
IEBhcmdzID0gKCctLWRlZmluZXMnLCAkZGVmaW5lcywKKyAgICAgICAgICAgICAgICAgICAgJy0t
aWRsRmlsZXNMaXN0JywgJGlkbEZpbGVzTGlzdCwKKyAgICAgICAgICAgICAgICAgICAgJy0tc3Vw
cGxlbWVudGFsRGVwZW5kZW5jeUZpbGUnLCAkc3VwcGxlbWVudGFsRGVwZW5kZW5jeUZpbGUsCisg
ICAgICAgICAgICAgICAgICAgIEBwcEV4dHJhQXJncyk7CisgICAgICAgIHByaW50KCJQcmVwcm9j
ZXNzIElETFxuIik7CisgICAgICAgIHN5c3RlbSgkcGVybCwgIi1JJHNjcmlwdERpciIsICIkc2Ny
aXB0RGlyL3ByZXByb2Nlc3MtaWRscy5wbCIsIEBhcmdzKSA9PSAwIG9yIGRpZTsKKyAgICB9Cisg
ICAgb3BlbihteSAkZmgsICc8JywgJHN1cHBsZW1lbnRhbERlcGVuZGVuY3lGaWxlKSBvciBkaWUg
IkNhbm5vdCBvcGVuICRzdXBwbGVtZW50YWxEZXBlbmRlbmN5RmlsZSI7CisgICAgd2hpbGUgKDwk
Zmg+KSB7CisgICAgICAgIG15ICgkaWRsRmlsZSwgQGZvbGxvd2luZ0lkbEZpbGVzKSA9IHNwbGl0
KC9ccysvKTsKKyAgICAgICAgJHN1cHBsZW1lbnRlZElkbEZpbGVzeyRpZGxGaWxlfSA9IFxAZm9s
bG93aW5nSWRsRmlsZXM7CisgICAgfQorICAgIGNsb3NlKCRmaCkgb3IgZGllOworfQorCitteSBA
YXJncyA9ICgnLS1kZWZpbmVzJywgJGRlZmluZXMsCisgICAgICAgICAgICAnLS1nZW5lcmF0b3In
LCAkZ2VuZXJhdG9yLAorICAgICAgICAgICAgJy0tb3V0cHV0RGlyJywgJG91dHB1dERpcmVjdG9y
eSwKKyAgICAgICAgICAgICctLXByZXByb2Nlc3NvcicsIHF1b3RlQ29tbWFuZCgkcHJlcHJvY2Vz
c29yKSwKKyAgICAgICAgICAgICctLWlkbEF0dHJpYnV0ZXNGaWxlJywgJGlkbEF0dHJpYnV0ZXNG
aWxlLAorICAgICAgICAgICAgJy0td3JpdGUtZGVwZW5kZW5jaWVzJyk7CitwdXNoIEBhcmdzLCBt
YXAgeyAoJy0taW5jbHVkZScsICRfKSB9IEBpZGxEaXJlY3RvcmllczsKK3B1c2ggQGFyZ3MsICct
LXN1cHBsZW1lbnRhbERlcGVuZGVuY3lGaWxlJywgJHN1cHBsZW1lbnRhbERlcGVuZGVuY3lGaWxl
IGlmICRzdXBwbGVtZW50YWxEZXBlbmRlbmN5RmlsZTsKKworbXkgJWRpcmVjdG9yeUNhY2hlOwor
YnVpbGREaXJlY3RvcnlDYWNoZSgpOworCitteSAkcXVldWUgPSBUaHJlYWQ6OlF1ZXVlLT5uZXco
QGlkbEZpbGVzKTsKK215ICRhYm9ydCA6c2hhcmVkID0gMDsKKworbXkgQHRocmVhZFBvb2wgPSBt
YXAgeyB0aHJlYWRzLT5jcmVhdGUoXCZ3b3JrZXIpIH0gKDEgLi4gJG51bU9mSm9icyk7CiskXy0+
am9pbiBmb3IgQHRocmVhZFBvb2w7CitleGl0ICRhYm9ydDsKKworc3ViIG5lZWRzVXBkYXRlCit7
CisgICAgbXkgKCRvYmplY3RzLCAkZGVwZW5kcykgPSBAXzsKKyAgICBteSAkb2xkZXN0T2JqZWN0
OworICAgIG15ICRvbGRlc3RPYmplY3RUaW1lOworICAgIGZvciAoQCRvYmplY3RzKSB7CisgICAg
ICAgIHJldHVybiAxIGlmICEtZjsKKyAgICAgICAgbXkgJG0gPSBtdGltZSgkXyk7CisgICAgICAg
IGlmICghZGVmaW5lZCAkb2xkZXN0T2JqZWN0VGltZSB8fCAkbSA8ICRvbGRlc3RPYmplY3RUaW1l
KSB7CisgICAgICAgICAgICAkb2xkZXN0T2JqZWN0ID0gJF87CisgICAgICAgICAgICAkb2xkZXN0
T2JqZWN0VGltZSA9ICRtOworICAgICAgICB9CisgICAgfQorICAgIGZvciAoQCRkZXBlbmRzKSB7
CisgICAgICAgIGRpZSAiTWlzc2luZyByZXF1aXJlZCBkZXBlbmRlbmN5OiAkXyIgaWYgIS1mOwor
ICAgICAgICBteSAkbSA9IG10aW1lKCRfKTsKKyAgICAgICAgaWYgKCRvbGRlc3RPYmplY3RUaW1l
IDwgJG0pIHsKKyAgICAgICAgICAgICMgcHJpbnQgIiRfIGlzIG5ld2VyIHRoYW4gJG9sZGVzdE9i
amVjdFxuIjsKKyAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICB9CisgICAgfQorICAgIHJl
dHVybiAwOworfQorCitzdWIgbXRpbWUKK3sKKyAgICBteSAoJGZpbGUpID0gQF87CisgICAgcmV0
dXJuIChzdGF0ICRmaWxlKVs5XTsKK30KKworc3ViIHdvcmtlciB7CisgICAgd2hpbGUgKG15ICRm
aWxlID0gJHF1ZXVlLT5kZXF1ZXVlX25iKCkpIHsKKyAgICAgICAgbGFzdCBpZiAkYWJvcnQ7Cisg
ICAgICAgIGV2YWwgeworICAgICAgICAgICAgbXkgKCRmaWxlbmFtZSwgJGRpcnMsICRzdWZmaXgp
ID0gZmlsZXBhcnNlKCRmaWxlLCAnLmlkbCcpOworICAgICAgICAgICAgbXkgJHNvdXJjZUZpbGUg
PSBGaWxlOjpTcGVjLT5jYXRmaWxlKCRvdXRwdXREaXJlY3RvcnksICJKUyRmaWxlbmFtZS5jcHAi
KTsKKyAgICAgICAgICAgIG15ICRoZWFkZXJGaWxlID0gRmlsZTo6U3BlYy0+Y2F0ZmlsZSgkb3V0
cHV0RGlyZWN0b3J5LCAiSlMkZmlsZW5hbWUuaCIpOworICAgICAgICAgICAgbXkgJGRlcEZpbGUg
PSBGaWxlOjpTcGVjLT5jYXRmaWxlKCRvdXRwdXREaXJlY3RvcnksICJKUyRmaWxlbmFtZS5kZXAi
KTsKKyAgICAgICAgICAgIG15IEBvdXRwdXQgPSAoJHNvdXJjZUZpbGUsICRoZWFkZXJGaWxlKTsK
KyAgICAgICAgICAgIG15IEBkZXBzID0gKCRmaWxlLAorICAgICAgICAgICAgICAgICAgICAgICAg
JGlkbEF0dHJpYnV0ZXNGaWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgQGdlbmVyYXRvckRl
cGVuZGVuY3ksCisgICAgICAgICAgICAgICAgICAgICAgICBAeyRzdXBwbGVtZW50ZWRJZGxGaWxl
c3skZmlsZX0gb3IgW119LAorICAgICAgICAgICAgICAgICAgICAgICAgaW1wbGljaXREZXBlbmRl
bmNpZXMoJGRlcEZpbGUpKTsKKyAgICAgICAgICAgIGlmIChuZWVkc1VwZGF0ZShcQG91dHB1dCwg
XEBkZXBzKSkgeworICAgICAgICAgICAgICAgIHByaW50ICIkZmlsZW5hbWUkc3VmZml4XG4iOwor
ICAgICAgICAgICAgICAgIHN5c3RlbSgkcGVybCwgIi1JLiIsICItSSRzY3JpcHREaXIiLCAiJHNj
cmlwdERpci9nZW5lcmF0ZS1iaW5kaW5ncy5wbCIsIEBhcmdzLCAkZmlsZSkgPT0gMCBvciBkaWU7
CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgICAgIGlmICgkQCkgeworICAgICAgICAg
ICAgJGFib3J0ID0gMTsKKyAgICAgICAgICAgIGRpZTsKKyAgICAgICAgfQorICAgIH0KK30KKwor
c3ViIGJ1aWxkRGlyZWN0b3J5Q2FjaGUKK3sKKyAgICBteSAkd2FudGVkID0gc3ViIHsKKyAgICAg
ICAgJGRpcmVjdG9yeUNhY2hleyRffSA9ICRGaWxlOjpGaW5kOjpuYW1lOworICAgICAgICAkRmls
ZTo6RmluZDo6cHJ1bmUgPSAxIHVubGVzcyB+L1wuLzsKKyAgICB9OworICAgIGZpbmQoJHdhbnRl
ZCwgQGlkbERpcmVjdG9yaWVzKTsKK30KKworc3ViIGltcGxpY2l0RGVwZW5kZW5jaWVzCit7Cisg
ICAgbXkgKCRkZXBGaWxlKSA9IEBfOworICAgIHJldHVybiAoKSB1bmxlc3MgLWYgJGRlcEZpbGU7
CisgICAgb3BlbihteSAkZmgsICc8JywgJGRlcEZpbGUpIG9yIGRpZSAiQ2Fubm90IG9wZW4gJGRl
cEZpbGUiOworICAgIG15ICRmaXJzdExpbmUgPSA8JGZoPjsKKyAgICBjbG9zZSgkZmgpIG9yIGRp
ZTsKKyAgICBteSAodW5kZWYsICRkZXBzKSA9IHNwbGl0KC8gOiAvLCAkZmlyc3RMaW5lKTsKKyAg
ICBteSBAZGVwcyA9IHNwbGl0KC9ccysvLCAkZGVwcyk7CisgICAgcmV0dXJuIG1hcCB7ICRkaXJl
Y3RvcnlDYWNoZXskX30gb3IgKCkgfSBAZGVwczsKK30KKworc3ViIHF1b3RlQ29tbWFuZAorewor
ICAgIHVzZSBDb25maWc7CisgICAgaWYgKCRDb25maWc6OkNvbmZpZ3tvc25hbWV9IGVxICdNU1dp
bjMyJykgeworICAgICAgICByZXR1cm4gbWFwIHsKKyAgICAgICAgICAgIHMvXFwvXFxcXC9nOwor
ICAgICAgICAgICAgcy9cIi9cXFwiL2c7CisgICAgICAgICAgICAiXCIkX1wiIjsKKyAgICAgICAg
fSBAXzsKKyAgICB9CisgICAgcmV0dXJuIEBfOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtl
L1dlYktpdE1hY3Jvcy5jbWFrZSBiL1NvdXJjZS9jbWFrZS9XZWJLaXRNYWNyb3MuY21ha2UKaW5k
ZXggMDI1NTY5Ny4uNjNiMjgwNCAxMDA2NDQKLS0tIGEvU291cmNlL2NtYWtlL1dlYktpdE1hY3Jv
cy5jbWFrZQorKysgYi9Tb3VyY2UvY21ha2UvV2ViS2l0TWFjcm9zLmNtYWtlCkBAIC0xLDQgKzEs
NiBAQAogaW5jbHVkZShDTWFrZVBhcnNlQXJndW1lbnRzKQoraW5jbHVkZShQcm9jZXNzb3JDb3Vu
dCkKK1Byb2Nlc3NvckNvdW50KFBST0NFU1NPUl9DT1VOVCkKIAogbWFjcm8oV0VCS0lUX0lOQ0xV
REVfQ09ORklHX0ZJTEVTX0lGX0VYSVNUUykKICAgICBzZXQoX2ZpbGUgJHtDTUFLRV9DVVJSRU5U
X1NPVVJDRV9ESVJ9L1BsYXRmb3JtJHtQT1JUfS5jbWFrZSkKQEAgLTQzLDcgKzQ1LDggQEAgbWFj
cm8oQUREX1BSRUNPTVBJTEVEX0hFQURFUiBfaGVhZGVyIF9jcHAgX3NvdXJjZSkKICAgICAjRklY
TUU6IEFkZCBzdXBwb3J0IGZvciBYY29kZS4KIGVuZG1hY3JvKCkKIAotIyBIZWxwZXIgbWFjcm8g
d2hpY2ggd3JhcHMgcHJlcHJvY2Vzcy1pZGxzLnBsIGFuZCBnZW5lcmF0ZS1iaW5kaW5ncy5wbCBz
Y3JpcHRzLgorIyBIZWxwZXIgbWFjcm8gd2hpY2ggd3JhcHMgZ2VuZXJhdGUtYmluZGluZ3MtYWxs
LnBsIHNjcmlwdC4KKyMgICB0YXJnZXQgaXMgYSBuZXcgdGFyZ2V0IG5hbWUgdG8gYmUgYWRkZWQK
ICMgICBPVVRQVVRfU09VUkNFIGlzIGEgbGlzdCBuYW1lIHdoaWNoIHdpbGwgY29udGFpbiBnZW5l
cmF0ZWQgc291cmNlcy4oZWcuIFdlYkNvcmVfU09VUkNFUykKICMgICBJTlBVVF9GSUxFUyBhcmUg
SURMIGZpbGVzIHRvIGdlbmVyYXRlLgogIyAgIEJBU0VfRElSIGlzIGJhc2UgZGlyZWN0b3J5IHdo
ZXJlIHNjcmlwdCBpcyBjYWxsZWQuCkBAIC01NCwxNSArNTcsMTQgQEAgZW5kbWFjcm8oKQogIyAg
IFNVUFBMRU1FTlRBTF9ERVBGSUxFIGlzIGEgdmFsdWUgb2YgLS1zdXBwbGVtZW50YWxEZXBlbmRl
bmN5RmlsZS4gKG9wdGlvbmFsKQogIyAgIFBQX0VYVFJBX09VVFBVVCBpcyBleHRyYSBvdXRwdXRz
IG9mIHByZXByb2Nlc3MtaWRscy5wbC4gKG9wdGlvbmFsKQogIyAgIFBQX0VYVFJBX0FSR1MgaXMg
ZXh0cmEgYXJndW1lbnRzIGZvciBwcmVwcm9jZXNzLWlkbHMucGwuIChvcHRpb25hbCkKLWZ1bmN0
aW9uKEdFTkVSQVRFX0JJTkRJTkdTKQorZnVuY3Rpb24oR0VORVJBVEVfQklORElOR1MgdGFyZ2V0
KQogICAgIHNldChvcHRpb25zKQogICAgIHNldChvbmVWYWx1ZUFyZ3MgT1VUUFVUX1NPVVJDRSBC
QVNFX0RJUiBGRUFUVVJFUyBERVNUSU5BVElPTiBHRU5FUkFUT1IgU1VQUExFTUVOVEFMX0RFUEZJ
TEUpCiAgICAgc2V0KG11bHRpVmFsdWVBcmdzIElOUFVUX0ZJTEVTIElETF9JTkNMVURFUyBQUF9F
WFRSQV9PVVRQVVQgUFBfRVhUUkFfQVJHUykKICAgICBjbWFrZV9wYXJzZV9hcmd1bWVudHMoYXJn
ICIke29wdGlvbnN9IiAiJHtvbmVWYWx1ZUFyZ3N9IiAiJHttdWx0aVZhbHVlQXJnc30iICR7QVJH
Tn0pCi0gICAgc2V0KGJpbmRpbmdfZ2VuZXJhdG9yICR7V0VCQ09SRV9ESVJ9L2JpbmRpbmdzL3Nj
cmlwdHMvZ2VuZXJhdGUtYmluZGluZ3MucGwpCisgICAgc2V0KGJpbmRpbmdfZ2VuZXJhdG9yICR7
V0VCQ09SRV9ESVJ9L2JpbmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUtYmluZGluZ3MtYWxsLnBsKQog
ICAgIHNldChpZGxfYXR0cmlidXRlc19maWxlICR7V0VCQ09SRV9ESVJ9L2JpbmRpbmdzL3Njcmlw
dHMvSURMQXR0cmlidXRlcy50eHQpCi0gICAgc2V0KGlkICR7YXJnX09VVFBVVF9TT1VSQ0V9KQot
ICAgIHNldChpZGxfZmlsZXNfbGlzdCAke0NNQUtFX0NVUlJFTlRfQklOQVJZX0RJUn0vaWRsX2Zp
bGVzXyR7aWR9LnRtcCkKKyAgICBzZXQoaWRsX2ZpbGVzX2xpc3QgJHtDTUFLRV9DVVJSRU5UX0JJ
TkFSWV9ESVJ9L2lkbF9maWxlc18ke3RhcmdldH0udG1wKQogICAgIHNldChfc3VwcGxlbWVudGFs
X2RlcGVuZGVuY3kpCiAKICAgICBzZXQoY29udGVudCkKQEAgLTc0LDU1ICs3Niw2NCBAQCBmdW5j
dGlvbihHRU5FUkFURV9CSU5ESU5HUykKICAgICBlbmRmb3JlYWNoICgpCiAgICAgZmlsZShXUklU
RSAke2lkbF9maWxlc19saXN0fSAke2NvbnRlbnR9KQogCisgICAgc2V0KGFyZ3MKKyAgICAgICAg
LS1kZWZpbmVzICR7YXJnX0ZFQVRVUkVTfQorICAgICAgICAtLWdlbmVyYXRvciAke2FyZ19HRU5F
UkFUT1J9CisgICAgICAgIC0tb3V0cHV0RGlyICR7YXJnX0RFU1RJTkFUSU9OfQorICAgICAgICAt
LWlkbEZpbGVzTGlzdCAke2lkbF9maWxlc19saXN0fQorICAgICAgICAtLXByZXByb2Nlc3NvciAk
e0NPREVfR0VORVJBVE9SX1BSRVBST0NFU1NPUn0KKyAgICAgICAgLS1pZGxBdHRyaWJ1dGVzRmls
ZSAke2lkbF9hdHRyaWJ1dGVzX2ZpbGV9KQogICAgIGlmIChhcmdfU1VQUExFTUVOVEFMX0RFUEZJ
TEUpCi0gICAgICAgIHNldChfc3VwcGxlbWVudGFsX2RlcGVuZGVuY3kgLS1zdXBwbGVtZW50YWxE
ZXBlbmRlbmN5RmlsZSAke2FyZ19TVVBQTEVNRU5UQUxfREVQRklMRX0pCi0KLSAgICAgICAgYWRk
X2N1c3RvbV9jb21tYW5kKAotICAgICAgICAgICAgT1VUUFVUICR7YXJnX1NVUFBMRU1FTlRBTF9E
RVBGSUxFfSAke2FyZ19QUF9FWFRSQV9PVVRQVVR9Ci0gICAgICAgICAgICBERVBFTkRTICR7V0VC
Q09SRV9ESVJ9L2JpbmRpbmdzL3NjcmlwdHMvcHJlcHJvY2Vzcy1pZGxzLnBsICR7YXJnX0lOUFVU
X0ZJTEVTfQotICAgICAgICAgICAgQ09NTUFORCAke1BFUkxfRVhFQ1VUQUJMRX0gLUkke1dFQkNP
UkVfRElSfS9iaW5kaW5ncy9zY3JpcHRzICR7V0VCQ09SRV9ESVJ9L2JpbmRpbmdzL3NjcmlwdHMv
cHJlcHJvY2Vzcy1pZGxzLnBsIC0tZGVmaW5lcyAke2FyZ19GRUFUVVJFU30gLS1pZGxGaWxlc0xp
c3QgJHtpZGxfZmlsZXNfbGlzdH0gLS1zdXBwbGVtZW50YWxEZXBlbmRlbmN5RmlsZSAke2FyZ19T
VVBQTEVNRU5UQUxfREVQRklMRX0gJHthcmdfUFBfRVhUUkFfQVJHU30KLSAgICAgICAgICAgIFZF
UkJBVElNKQorICAgICAgICBsaXN0KEFQUEVORCBhcmdzIC0tc3VwcGxlbWVudGFsRGVwZW5kZW5j
eUZpbGUgJHthcmdfU1VQUExFTUVOVEFMX0RFUEZJTEV9KQogICAgIGVuZGlmICgpCi0KLSAgICBz
ZXQoaWRsX2luY2x1ZGVzKQotICAgIGZvcmVhY2ggKGRpciAke2FyZ19JRExfSU5DTFVERVN9KQot
ICAgICAgICBpZiAoSVNfQUJTT0xVVEUgJHtkaXJ9KQotICAgICAgICAgICAgbGlzdChBUFBFTkQg
aWRsX2luY2x1ZGVzIC0taW5jbHVkZT0ke2Rpcn0pCi0gICAgICAgIGVsc2UgKCkKLSAgICAgICAg
ICAgIGxpc3QoQVBQRU5EIGlkbF9pbmNsdWRlcyAtLWluY2x1ZGU9JHtDTUFLRV9DVVJSRU5UX1NP
VVJDRV9ESVJ9LyR7ZGlyfSkKLSAgICAgICAgZW5kaWYgKCkKKyAgICBpZiAoUFJPQ0VTU09SX0NP
VU5UKQorICAgICAgICBsaXN0KEFQUEVORCBhcmdzIC0tbnVtT2ZKb2JzICR7UFJPQ0VTU09SX0NP
VU5UfSkKKyAgICBlbmRpZiAoKQorICAgIGZvcmVhY2ggKGkgSU4gTElTVFMgYXJnX0lETF9JTkNM
VURFUykKKyAgICAgICAgbGlzdChBUFBFTkQgYXJncyAtLWluY2x1ZGUgJHtpfSkKKyAgICBlbmRm
b3JlYWNoICgpCisgICAgZm9yZWFjaCAoaSBJTiBMSVNUUyBhcmdfUFBfRVhUUkFfT1VUUFVUKQor
ICAgICAgICBsaXN0KEFQUEVORCBhcmdzIC0tcHBFeHRyYU91dHB1dCAke2l9KQorICAgIGVuZGZv
cmVhY2ggKCkKKyAgICBmb3JlYWNoIChpIElOIExJU1RTIGFyZ19QUF9FWFRSQV9BUkdTKQorICAg
ICAgICBsaXN0KEFQUEVORCBhcmdzIC0tcHBFeHRyYUFyZ3MgJHtpfSkKICAgICBlbmRmb3JlYWNo
ICgpCiAKICAgICBzZXQoY29tbW9uX2dlbmVyYXRvcl9kZXBlbmRlbmNpZXMKLSAgICAgICAgJHti
aW5kaW5nX2dlbmVyYXRvcn0KLSAgICAgICAgJHtXRUJDT1JFX0RJUn0vYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9yLnBtCisgICAgICAgICR7V0VCQ09SRV9ESVJ9L2JpbmRpbmdzL3Njcmlw
dHMvZ2VuZXJhdGUtYmluZGluZ3MucGwKICAgICAgICAgJHtTQ1JJUFRTX0JJTkRJTkdTfQotICAg
ICAgICAke2FyZ19TVVBQTEVNRU5UQUxfREVQRklMRX0KLSAgICAgICAgJHtpZGxfYXR0cmlidXRl
c19maWxlfQogICAgICkKLSAgICBsaXN0KEFQUEVORCBjb21tb25fZ2VuZXJhdG9yX2RlcGVuZGVu
Y2llcyAke2FyZ19QUF9FWFRSQV9PVVRQVVR9KQotCiAgICAgaWYgKEVYSVNUUyAke1dFQkNPUkVf
RElSfS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3Ike2FyZ19HRU5FUkFUT1J9LnBtKQog
ICAgICAgICBsaXN0KEFQUEVORCBjb21tb25fZ2VuZXJhdG9yX2RlcGVuZGVuY2llcyAke1dFQkNP
UkVfRElSfS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3Ike2FyZ19HRU5FUkFUT1J9LnBt
KQogICAgIGVuZGlmICgpCiAgICAgaWYgKEVYSVNUUyAke2FyZ19CQVNFX0RJUn0vQ29kZUdlbmVy
YXRvciR7YXJnX0dFTkVSQVRPUn0ucG0pCiAgICAgICAgIGxpc3QoQVBQRU5EIGNvbW1vbl9nZW5l
cmF0b3JfZGVwZW5kZW5jaWVzICR7YXJnX0JBU0VfRElSfS9Db2RlR2VuZXJhdG9yJHthcmdfR0VO
RVJBVE9SfS5wbSkKICAgICBlbmRpZiAoKQorICAgIGZvcmVhY2ggKGkgSU4gTElTVFMgY29tbW9u
X2dlbmVyYXRvcl9kZXBlbmRlbmNpZXMpCisgICAgICAgIGxpc3QoQVBQRU5EIGFyZ3MgLS1nZW5l
cmF0b3JEZXBlbmRlbmN5ICR7aX0pCisgICAgZW5kZm9yZWFjaCAoKQogCiAgICAgc2V0KGdlbl9z
b3VyY2VzKQorICAgIHNldChnZW5faGVhZGVycykKICAgICBmb3JlYWNoIChfZmlsZSAke2FyZ19J
TlBVVF9GSUxFU30pCiAgICAgICAgIGdldF9maWxlbmFtZV9jb21wb25lbnQoX25hbWUgJHtfZmls
ZX0gTkFNRV9XRSkKLQotICAgICAgICBhZGRfY3VzdG9tX2NvbW1hbmQoCi0gICAgICAgICAgICBP
VVRQVVQgJHthcmdfREVTVElOQVRJT059L0pTJHtfbmFtZX0uY3BwICR7YXJnX0RFU1RJTkFUSU9O
fS9KUyR7X25hbWV9LmgKLSAgICAgICAgICAgIE1BSU5fREVQRU5ERU5DWSAke19maWxlfQotICAg
ICAgICAgICAgREVQRU5EUyAke2NvbW1vbl9nZW5lcmF0b3JfZGVwZW5kZW5jaWVzfQotICAgICAg
ICAgICAgQ09NTUFORCAke1BFUkxfRVhFQ1VUQUJMRX0gLUkke1dFQkNPUkVfRElSfS9iaW5kaW5n
cy9zY3JpcHRzIC1JJHthcmdfQkFTRV9ESVJ9ICR7YmluZGluZ19nZW5lcmF0b3J9IC0tZGVmaW5l
cyAke2FyZ19GRUFUVVJFU30gLS1nZW5lcmF0b3IgJHthcmdfR0VORVJBVE9SfSAke2lkbF9pbmNs
dWRlc30gLS1vdXRwdXREaXIgJHthcmdfREVTVElOQVRJT059IC0tcHJlcHJvY2Vzc29yICR7Q09E
RV9HRU5FUkFUT1JfUFJFUFJPQ0VTU09SfSAtLWlkbEF0dHJpYnV0ZXNGaWxlICR7aWRsX2F0dHJp
YnV0ZXNfZmlsZX0gJHtfc3VwcGxlbWVudGFsX2RlcGVuZGVuY3l9ICR7X2ZpbGV9Ci0gICAgICAg
ICAgICBXT1JLSU5HX0RJUkVDVE9SWSAke2FyZ19CQVNFX0RJUn0KLSAgICAgICAgICAgIFZFUkJB
VElNKQogICAgICAgICBsaXN0KEFQUEVORCBnZW5fc291cmNlcyAke2FyZ19ERVNUSU5BVElPTn0v
SlMke19uYW1lfS5jcHApCisgICAgICAgIGxpc3QoQVBQRU5EIGdlbl9oZWFkZXJzICR7YXJnX0RF
U1RJTkFUSU9OfS9KUyR7X25hbWV9LmgpCiAgICAgZW5kZm9yZWFjaCAoKQogICAgIHNldCgke2Fy
Z19PVVRQVVRfU09VUkNFfSAkeyR7YXJnX09VVFBVVF9TT1VSQ0V9fSAke2dlbl9zb3VyY2VzfSBQ
QVJFTlRfU0NPUEUpCisgICAgc2V0KGFjdF9hcmdzKQorICAgIGlmICgke0NNQUtFX1ZFUlNJT059
IFZFUlNJT05fTEVTUyAzLjIpCisgICAgICAgIHNldF9zb3VyY2VfZmlsZXNfcHJvcGVydGllcygk
e2dlbl9zb3VyY2VzfSAke2dlbl9oZWFkZXJzfSBQUk9QRVJUSUVTIEdFTkVSQVRFRCAxKQorICAg
IGVsc2UgKCkKKyAgICAgICAgbGlzdChBUFBFTkQgYWN0X2FyZ3MKKyAgICAgICAgICAgIEJZUFJP
RFVDVFMgJHtnZW5fc291cmNlc30gJHtnZW5faGVhZGVyc30KKyAgICAgICAgICAgIFVTRVNfVEVS
TUlOQUwpCisgICAgZW5kaWYgKCkKKyAgICBhZGRfY3VzdG9tX3RhcmdldCgke3RhcmdldH0KKyAg
ICAgICAgQ09NTUFORCAke1BFUkxfRVhFQ1VUQUJMRX0gJHtiaW5kaW5nX2dlbmVyYXRvcn0gJHth
cmdzfQorICAgICAgICBXT1JLSU5HX0RJUkVDVE9SWSAke2FyZ19CQVNFX0RJUn0KKyAgICAgICAg
Q09NTUVOVCAiR2VuZXJhdGUgYmluZGluZ3M6ICR7dGFyZ2V0fSIKKyAgICAgICAgVkVSQkFUSU0g
JHthY3RfYXJnc30pCiBlbmRmdW5jdGlvbigpCiAKIG1hY3JvKEdFTkVSQVRFX0ZPTlRfTkFNRVMg
X2luZmlsZSkKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0NNYWtlTGlzdHMudHh0
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvQ01ha2VMaXN0cy50eHQKaW5kZXggYmFmN2MxMy4uZGM4
NDIwZCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvQ01ha2VMaXN0cy50eHQKKysr
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvQ01ha2VMaXN0cy50eHQKQEAgLTEyMCw3ICsxMjAsNyBA
QCBzZXQoRHVtcFJlbmRlclRyZWVfSURMX0ZJTEVTCiAgICAgIiR7V0VCS0lUX1RFU1RSVU5ORVJf
VUlTQ1JJUFRDT05URVhUX0RJUn0vQmluZGluZ3MvVUlTY3JpcHRDb250cm9sbGVyLmlkbCIKICkK
IAotR0VORVJBVEVfQklORElOR1MoCitHRU5FUkFURV9CSU5ESU5HUyhEdW1wUmVuZGVyVHJlZUJp
bmRpbmdzCiAgICAgT1VUUFVUX1NPVVJDRSBEdW1wUmVuZGVyVHJlZV9TT1VSQ0VTCiAgICAgSU5Q
VVRfRklMRVMgJHtEdW1wUmVuZGVyVHJlZV9JRExfRklMRVN9CiAgICAgQkFTRV9ESVIgJHtEVU1Q
X1JFTkRFUl9UUkVFX0JJTkRJTkdTX0RJUn0KQEAgLTEzNSw2ICsxMzUsNyBAQCBpbmNsdWRlX2Rp
cmVjdG9yaWVzKCR7RHVtcFJlbmRlclRyZWVfSU5DTFVERV9ESVJFQ1RPUklFU30pCiAKIGFkZF9l
eGVjdXRhYmxlKER1bXBSZW5kZXJUcmVlICR7RHVtcFJlbmRlclRyZWVfU09VUkNFU30pCiB0YXJn
ZXRfbGlua19saWJyYXJpZXMoRHVtcFJlbmRlclRyZWUgJHtEdW1wUmVuZGVyVHJlZV9MSUJSQVJJ
RVN9KQorYWRkX2RlcGVuZGVuY2llcyhEdW1wUmVuZGVyVHJlZSBEdW1wUmVuZGVyVHJlZUJpbmRp
bmdzKQogCiBpZiAoRU5BQkxFX05FVFNDQVBFX1BMVUdJTl9BUEkpCiAgICAgYWRkX2xpYnJhcnko
VGVzdE5ldHNjYXBlUGx1Z2luIFNIQVJFRCAke1Rlc3ROZXRzY2FwZVBsdWdpbl9TT1VSQ0VTfSkK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvQ01ha2VMaXN0cy50eHQgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0NNYWtlTGlzdHMudHh0CmluZGV4IDI3ZWEzNmMuLjhjOTg3Njgg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvQ01ha2VMaXN0cy50eHQKKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9DTWFrZUxpc3RzLnR4dApAQCAtOTcsNyArOTcsNyBAQCBz
ZXQoV2ViS2l0VGVzdFJ1bm5lcl9JRExfRklMRVMKICAgICAiJHtXRUJLSVRfVEVTVFJVTk5FUl9V
SVNDUklQVENPTlRFWFRfRElSfS9CaW5kaW5ncy9VSVNjcmlwdENvbnRyb2xsZXIuaWRsIgogKQog
Ci1HRU5FUkFURV9CSU5ESU5HUygKK0dFTkVSQVRFX0JJTkRJTkdTKFdlYktpdFRlc3RSdW5uZXJJ
bmplY3RlZEJ1bmRsZUJpbmRpbmdzCiAgICAgT1VUUFVUX1NPVVJDRSBXZWJLaXRUZXN0UnVubmVy
SW5qZWN0ZWRCdW5kbGVfU09VUkNFUwogICAgIElOUFVUX0ZJTEVTICR7V2ViS2l0VGVzdFJ1bm5l
ckluamVjdGVkQnVuZGxlX0lETF9GSUxFU30KICAgICBCQVNFX0RJUiAke1dFQktJVF9URVNUUlVO
TkVSX0lOSkVDVEVEQlVORExFX0RJUn0vQmluZGluZ3MKQEAgLTEwNiw3ICsxMDYsNyBAQCBHRU5F
UkFURV9CSU5ESU5HUygKICAgICBERVNUSU5BVElPTiAke0RFUklWRURfU09VUkNFU19ESVJ9L0lu
amVjdGVkQnVuZGxlCiAgICAgR0VORVJBVE9SIFRlc3RSdW5uZXIpCiAKLUdFTkVSQVRFX0JJTkRJ
TkdTKAorR0VORVJBVEVfQklORElOR1MoV2ViS2l0VGVzdFJ1bm5lckJpbmRpbmdzCiAgICAgT1VU
UFVUX1NPVVJDRSBXZWJLaXRUZXN0UnVubmVyX1NPVVJDRVMKICAgICBJTlBVVF9GSUxFUyAke1dl
YktpdFRlc3RSdW5uZXJfSURMX0ZJTEVTfQogICAgIEJBU0VfRElSICR7V0VCS0lUX1RFU1RSVU5O
RVJfSU5KRUNURURCVU5ETEVfRElSfS9CaW5kaW5ncwpAQCAtMTIyLDkgKzEyMiwxMSBAQCBpbmNs
dWRlX2RpcmVjdG9yaWVzKFNZU1RFTSAke1dlYktpdFRlc3RSdW5uZXJfU1lTVEVNX0lOQ0xVREVf
RElSRUNUT1JJRVN9KQogCiBhZGRfbGlicmFyeShUZXN0UnVubmVySW5qZWN0ZWRCdW5kbGUgU0hB
UkVEICR7V2ViS2l0VGVzdFJ1bm5lckluamVjdGVkQnVuZGxlX1NPVVJDRVN9KQogdGFyZ2V0X2xp
bmtfbGlicmFyaWVzKFRlc3RSdW5uZXJJbmplY3RlZEJ1bmRsZSAke1dlYktpdFRlc3RSdW5uZXJf
TElCUkFSSUVTfSkKK2FkZF9kZXBlbmRlbmNpZXMoVGVzdFJ1bm5lckluamVjdGVkQnVuZGxlIFdl
YktpdFRlc3RSdW5uZXJJbmplY3RlZEJ1bmRsZUJpbmRpbmdzKQogCiBhZGRfZXhlY3V0YWJsZShX
ZWJLaXRUZXN0UnVubmVyICR7V2ViS2l0VGVzdFJ1bm5lcl9TT1VSQ0VTfSkKIHRhcmdldF9saW5r
X2xpYnJhcmllcyhXZWJLaXRUZXN0UnVubmVyICR7V2ViS2l0VGVzdFJ1bm5lcl9MSUJSQVJJRVN9
KQorYWRkX2RlcGVuZGVuY2llcyhXZWJLaXRUZXN0UnVubmVyIFdlYktpdFRlc3RSdW5uZXJCaW5k
aW5ncykKIAogaWYgKE5PVCBBUFBMRSkKICAgICBhZGRfZGVwZW5kZW5jaWVzKFdlYktpdDIgJHtG
b3J3YXJkaW5nSGVhZGVyc0ZvcldlYktpdFRlc3RSdW5uZXJfTkFNRX0pCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>290803</attachid>
            <date>2016-10-06 02:56:38 -0700</date>
            <delta_ts>2016-10-06 04:39:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-161433-20161006025327.patch</filename>
            <type>text/plain</type>
            <size>22867</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2ODQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmMxYWFmMzEyNzM3MDMy
ZjZlMzI4NmZiMmZiMGVjY2Y5YWJhZTI1ZS4uMTRiZTdkNDVkMjUxMTYwODEyZTU0OTlhN2IyNjEw
YjE0NjA4MGI3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE2LTEwLTA2ICBGdWpp
aSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgorCisgICAgICAgIFtDTWFrZV0g
Q01ha2UgZG9lcyBub3Qgc3VwcG9ydCB0aGUgZGVwIGZpbGVzIGZvciBpbXBsaWNpdCBkZXBlbmRl
bmN5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjE0
MzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDcmVh
dGVkIGEgUGVybCBzY3JpcHQgdG8gZ2VuZXJhdGUgYWxsIElETCBiaW5kaW5ncyBmb3IgQ01ha2Uu
CisgICAgICAgIFRoaXMgc2NyaXB0IGNhbiByZWdlbmVyYXRlIG91dGRhdGVkIGJpbmRpbmdzIGJ5
IGJhc2VkIG9uIHRoZQorICAgICAgICBzdXBwbGVtZW50YWwgZGVwZW5kZW5jeSBhbmQgZGVwIGZp
bGVzIGNyZWF0ZWQgYnkKKyAgICAgICAgJy0td3JpdGUtZGVwZW5kZW5jaWVzJyBzd2l0Y2ggb2Yg
Z2VuZXJhdGUtYmluZGluZ3MucGwuCisKKyAgICAgICAgYWRkX2N1c3RvbV90YXJnZXQgaXMgdXNl
ZCB0byBpbnZva2UgdGhlIHNjcmlwdCBpbnN0ZWFkIG9mCisgICAgICAgIGFkZF9jdXN0b21fY29t
bWFuZCBiZWNhdXNlIE5pbmphIGRlbGV0ZXMgYWxsIG91dHB1dCBmaWxlcyBiZWZvcmUKKyAgICAg
ICAgZXhlY3V0aW5nIHRoZSBjb21tYW5kIGluIGNhc2Ugb2YgYWRkX2N1c3RvbV9jb21tYW5kLgor
CisgICAgICAgIFVTRVNfVEVSTUlOQUwgb3B0aW9uIG9mIGFkZF9jdXN0b21fdGFyZ2V0IGhhcyB0
d28gZWZmZWN0czoKKyAgICAgICAgMSkgTm90IGJ1ZmZlcmluZyBvdXRwdXQgb2YgdGhlIGNvbW1h
bmQKKyAgICAgICAgMikgSW52b2tpbmcgdGhlIGNvbW1hbmQgaW4gdGhlIHNwZWNpYWwgTmluamEg
cG9vbCB3aGljaCBpbmhpYml0cyBwYXJhbGxlbCBidWlsZAorICAgICAgICBPbmUgbmVlZHMgdG8g
dXNlIENNYWtlIDMuMiBvciBsYXRlciB0byBlbmFibGUgdGhpcyBmZWF0dXJlLgorCisgICAgICAg
ICogQ01ha2VMaXN0cy50eHQ6IFNwZWNpZmllZCB0YXJnZXQgbmFtZXMgZm9yCisgICAgICAgIEdF
TkVSQVRFX0JJTkRJTkdTLiBBZGRlZCBkZXBlbmRlbmN5IGZvciB0aGUgdGFyZ2V0cy4KKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL2dlbmVyYXRlLWJpbmRpbmdzLWFsbC5wbDogQWRkZWQuCisK
IDIwMTYtMTAtMDUgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgogCiAgICAgICAgIEFk
ZCBEaXNwbGF5IFAzIENvbG9yU3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggOGM5Y2I2NjI2
MWFiNzAwNzNmM2FkMWE5ZmI3MTM3YWM2ODRlZjM2Ny4uMTZhM2FhYzAxZDI1YzNmNDlmZjA5OGFi
ZGE2MTMzZDRhYTE5YWY3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTM2MjYsNyArMzYyNiw3
IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfREVSSVZFRF9TT1VSQ0VTICR7REVSSVZFRF9TT1VSQ0VT
X1dFQkNPUkVfRElSfS9YUGF0aEdyYW1tYXIuCiBzZXQoRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJ
UFQgIkxBTkdVQUdFX0pBVkFTQ1JJUFQgJHtGRUFUVVJFX0RFRklORVNfV0lUSF9TUEFDRV9TRVBB
UkFUT1J9IikKIGxpc3QoQVBQRU5EIFdlYkNvcmVUZXN0U3VwcG9ydF9JRExfRklMRVMgJHtERVJJ
VkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9L0ludGVybmFsU2V0dGluZ3NHZW5lcmF0ZWQuaWRsKQog
Ci1HRU5FUkFURV9CSU5ESU5HUygKK0dFTkVSQVRFX0JJTkRJTkdTKFdlYkNvcmVCaW5kaW5ncwog
ICAgIE9VVFBVVF9TT1VSQ0UgV2ViQ29yZV9ERVJJVkVEX1NPVVJDRVMKICAgICBJTlBVVF9GSUxF
UyAke1dlYkNvcmVfSURMX0ZJTEVTfQogICAgIEJBU0VfRElSICR7V0VCQ09SRV9ESVJ9CkBAIC0z
NjQyLDcgKzM2NDIsNyBAQCBHRU5FUkFURV9CSU5ESU5HUygKICAgICAgICAgLS13b3JrZXJHbG9i
YWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJHtXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNf
RklMRX0KICAgICAgICAgLS1kZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0Zp
bGUgJHtERURJQ0FURURXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRX0pCiAKLUdF
TkVSQVRFX0JJTkRJTkdTKAorR0VORVJBVEVfQklORElOR1MoV2ViQ29yZVRlc3RTdXBwb3J0Qmlu
ZGluZ3MKICAgICBPVVRQVVRfU09VUkNFIFdlYkNvcmVUZXN0U3VwcG9ydF9TT1VSQ0VTCiAgICAg
SU5QVVRfRklMRVMgJHtXZWJDb3JlVGVzdFN1cHBvcnRfSURMX0ZJTEVTfQogICAgIEJBU0VfRElS
ICR7V0VCQ09SRV9ESVJ9CkBAIC0zNjUxLDYgKzM2NTEsOSBAQCBHRU5FUkFURV9CSU5ESU5HUygK
ICAgICBERVNUSU5BVElPTiAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0KICAgICBHRU5F
UkFUT1IgSlMpCiAKKyMgV2ViQ29yZVRlc3RTdXBwb3J0QmluZGluZ3MgbmVlZHMgSW50ZXJuYWxT
ZXR0aW5nc0dlbmVyYXRlZC5pZGwKK2FkZF9kZXBlbmRlbmNpZXMoV2ViQ29yZVRlc3RTdXBwb3J0
QmluZGluZ3MgV2ViQ29yZURlcml2ZWRTb3VyY2VzKQorCiAjIFdlYkNvcmUgSlMgQnVpbHRpbnMK
IAogc2V0KFdlYkNvcmVfQlVJTFRJTlNfU09VUkNFUwpAQCAtMzc5Niw3ICszNzk5LDcgQEAgZW5k
aWYgKCkKICMgZmlsZXMgb24gT1MgWC4KIGFkZF9saWJyYXJ5KFdlYkNvcmVEZXJpdmVkU291cmNl
cyBTVEFUSUMgJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU30pCiBzZXRfdGFyZ2V0X3Byb3BlcnRp
ZXMoV2ViQ29yZURlcml2ZWRTb3VyY2VzIFBST1BFUlRJRVMgT1VUUFVUX05BTUUgV2ViQ29yZURl
cml2ZWRTb3VyY2VzJHtERUJVR19TVUZGSVh9KQotYWRkX2RlcGVuZGVuY2llcyhXZWJDb3JlRGVy
aXZlZFNvdXJjZXMgSmF2YVNjcmlwdENvcmUpCithZGRfZGVwZW5kZW5jaWVzKFdlYkNvcmVEZXJp
dmVkU291cmNlcyBKYXZhU2NyaXB0Q29yZSBXZWJDb3JlQmluZGluZ3MpCiBpZiAoTk9UIFdJTjMy
KQogICAgIGxpc3QoQVBQRU5EIFdlYkNvcmVfTElCUkFSSUVTIFdlYkNvcmVEZXJpdmVkU291cmNl
cykKIGVuZGlmICgpCkBAIC0zODI3LDcgKzM4MzAsNyBAQCBlbmRpZiAoKQogCiBpbmNsdWRlX2Rp
cmVjdG9yaWVzKCR7V2ViQ29yZVRlc3RTdXBwb3J0X0lOQ0xVREVfRElSRUNUT1JJRVN9KQogYWRk
X2xpYnJhcnkoV2ViQ29yZVRlc3RTdXBwb3J0ICR7V2ViQ29yZVRlc3RTdXBwb3J0X0xJQlJBUllf
VFlQRX0gJHtXZWJDb3JlVGVzdFN1cHBvcnRfU09VUkNFU30pCi1hZGRfZGVwZW5kZW5jaWVzKFdl
YkNvcmVUZXN0U3VwcG9ydCBXZWJDb3JlKQorYWRkX2RlcGVuZGVuY2llcyhXZWJDb3JlVGVzdFN1
cHBvcnQgV2ViQ29yZSBXZWJDb3JlVGVzdFN1cHBvcnRCaW5kaW5ncykKIHRhcmdldF9saW5rX2xp
YnJhcmllcyhXZWJDb3JlVGVzdFN1cHBvcnQgJHtXZWJDb3JlVGVzdFN1cHBvcnRfTElCUkFSSUVT
fSkKIAogaWYgKFdlYkNvcmVUZXN0U3VwcG9ydF9PVVRQVVRfTkFNRSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUtYmluZGluZ3MtYWxsLnBsIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9nZW5lcmF0ZS1iaW5kaW5ncy1hbGwucGwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNTg5MWFlZjcxMTViNjMzZDFjZmZlYmE3M2NhYjU3MmU2MDc1MjI1OQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUt
YmluZGluZ3MtYWxsLnBsCkBAIC0wLDAgKzEsMTk5IEBACisjIS91c3IvYmluL3BlcmwgLXcKKyMK
KyMgQ29weXJpZ2h0IChDKSAyMDE2IFNvbnkgSW50ZXJhY3RpdmUgRW50ZXJ0YWlubWVudCBJbmMu
CisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisj
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisjIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyMgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMKKyMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworIyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyMgQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisjCisKK3VzZSBzdHJp
Y3Q7Cit1c2UgRmluZEJpbjsKK3VzZSBsaWIgJEZpbmRCaW46OkJpbjsKKwordXNlIEZpbGU6OkJh
c2VuYW1lOwordXNlIEZpbGU6OlNwZWM7Cit1c2UgRmlsZTo6RmluZDsKK3VzZSBHZXRvcHQ6Okxv
bmc7Cit1c2UgdGhyZWFkczsKK3VzZSB0aHJlYWRzOjpzaGFyZWQ7Cit1c2UgVGhyZWFkOjpRdWV1
ZTsKKworbXkgJHBlcmwgPSAkXlg7CitteSAkc2NyaXB0RGlyID0gJEZpbmRCaW46OkJpbjsKK215
IEBpZGxEaXJlY3RvcmllczsKK215ICRvdXRwdXREaXJlY3Rvcnk7CitteSAkaWRsRmlsZXNMaXN0
OworbXkgJGdlbmVyYXRvcjsKK215IEBnZW5lcmF0b3JEZXBlbmRlbmN5OworbXkgJGRlZmluZXM7
CitteSAkcHJlcHJvY2Vzc29yOworbXkgJHN1cHBsZW1lbnRhbERlcGVuZGVuY3lGaWxlOworbXkg
QHBwRXh0cmFPdXRwdXQ7CitteSBAcHBFeHRyYUFyZ3M7CitteSAkbnVtT2ZKb2JzID0gMTsKK215
ICRpZGxBdHRyaWJ1dGVzRmlsZTsKKworR2V0T3B0aW9ucygnaW5jbHVkZT1zQCcgPT4gXEBpZGxE
aXJlY3RvcmllcywKKyAgICAgICAgICAgJ291dHB1dERpcj1zJyA9PiBcJG91dHB1dERpcmVjdG9y
eSwKKyAgICAgICAgICAgJ2lkbEZpbGVzTGlzdD1zJyA9PiBcJGlkbEZpbGVzTGlzdCwKKyAgICAg
ICAgICAgJ2dlbmVyYXRvcj1zJyA9PiBcJGdlbmVyYXRvciwKKyAgICAgICAgICAgJ2dlbmVyYXRv
ckRlcGVuZGVuY3k9c0AnID0+IFxAZ2VuZXJhdG9yRGVwZW5kZW5jeSwKKyAgICAgICAgICAgJ2Rl
ZmluZXM9cycgPT4gXCRkZWZpbmVzLAorICAgICAgICAgICAncHJlcHJvY2Vzc29yPXMnID0+IFwk
cHJlcHJvY2Vzc29yLAorICAgICAgICAgICAnc3VwcGxlbWVudGFsRGVwZW5kZW5jeUZpbGU9cycg
PT4gXCRzdXBwbGVtZW50YWxEZXBlbmRlbmN5RmlsZSwKKyAgICAgICAgICAgJ3BwRXh0cmFPdXRw
dXQ9c0AnID0+IFxAcHBFeHRyYU91dHB1dCwKKyAgICAgICAgICAgJ3BwRXh0cmFBcmdzPXNAJyA9
PiBcQHBwRXh0cmFBcmdzLAorICAgICAgICAgICAnaWRsQXR0cmlidXRlc0ZpbGU9cycgPT4gXCRp
ZGxBdHRyaWJ1dGVzRmlsZSwKKyAgICAgICAgICAgJ251bU9mSm9icz1pJyA9PiBcJG51bU9mSm9i
cyk7CisKK215IEBpZGxGaWxlczsKK29wZW4obXkgJGZoLCAnPCcsICRpZGxGaWxlc0xpc3QpIG9y
IGRpZSAiQ2Fubm90IG9wZW4gJGlkbEZpbGVzTGlzdCI7CitAaWRsRmlsZXMgPSA8JGZoPjsKK2Ns
b3NlKCRmaCkgb3IgZGllOworY2hvbXAoQGlkbEZpbGVzKTsKKworbXkgJXN1cHBsZW1lbnRlZElk
bEZpbGVzOworaWYgKCRzdXBwbGVtZW50YWxEZXBlbmRlbmN5RmlsZSkgeworICAgIG15IEBvdXRw
dXQgPSAoJHN1cHBsZW1lbnRhbERlcGVuZGVuY3lGaWxlLCBAcHBFeHRyYU91dHB1dCk7CisgICAg
bXkgQGRlcHMgPSAoQGlkbEZpbGVzLCBAZ2VuZXJhdG9yRGVwZW5kZW5jeSk7CisgICAgaWYgKG5l
ZWRzVXBkYXRlKFxAb3V0cHV0LCBcQGRlcHMpKSB7CisgICAgICAgIG15IEBhcmdzID0gKCctLWRl
ZmluZXMnLCAkZGVmaW5lcywKKyAgICAgICAgICAgICAgICAgICAgJy0taWRsRmlsZXNMaXN0Jywg
JGlkbEZpbGVzTGlzdCwKKyAgICAgICAgICAgICAgICAgICAgJy0tc3VwcGxlbWVudGFsRGVwZW5k
ZW5jeUZpbGUnLCAkc3VwcGxlbWVudGFsRGVwZW5kZW5jeUZpbGUsCisgICAgICAgICAgICAgICAg
ICAgIEBwcEV4dHJhQXJncyk7CisgICAgICAgIHByaW50KCJQcmVwcm9jZXNzIElETFxuIik7Cisg
ICAgICAgIHN5c3RlbSgkcGVybCwgIi1JJHNjcmlwdERpciIsICIkc2NyaXB0RGlyL3ByZXByb2Nl
c3MtaWRscy5wbCIsIEBhcmdzKSA9PSAwIG9yIGRpZTsKKyAgICB9CisgICAgb3BlbihteSAkZmgs
ICc8JywgJHN1cHBsZW1lbnRhbERlcGVuZGVuY3lGaWxlKSBvciBkaWUgIkNhbm5vdCBvcGVuICRz
dXBwbGVtZW50YWxEZXBlbmRlbmN5RmlsZSI7CisgICAgd2hpbGUgKDwkZmg+KSB7CisgICAgICAg
IG15ICgkaWRsRmlsZSwgQGZvbGxvd2luZ0lkbEZpbGVzKSA9IHNwbGl0KC9ccysvKTsKKyAgICAg
ICAgJHN1cHBsZW1lbnRlZElkbEZpbGVzeyRpZGxGaWxlfSA9IFxAZm9sbG93aW5nSWRsRmlsZXM7
CisgICAgfQorICAgIGNsb3NlKCRmaCkgb3IgZGllOworfQorCitteSBAYXJncyA9ICgnLS1kZWZp
bmVzJywgJGRlZmluZXMsCisgICAgICAgICAgICAnLS1nZW5lcmF0b3InLCAkZ2VuZXJhdG9yLAor
ICAgICAgICAgICAgJy0tb3V0cHV0RGlyJywgJG91dHB1dERpcmVjdG9yeSwKKyAgICAgICAgICAg
ICctLXByZXByb2Nlc3NvcicsIHF1b3RlQ29tbWFuZCgkcHJlcHJvY2Vzc29yKSwKKyAgICAgICAg
ICAgICctLWlkbEF0dHJpYnV0ZXNGaWxlJywgJGlkbEF0dHJpYnV0ZXNGaWxlLAorICAgICAgICAg
ICAgJy0td3JpdGUtZGVwZW5kZW5jaWVzJyk7CitwdXNoIEBhcmdzLCBtYXAgeyAoJy0taW5jbHVk
ZScsICRfKSB9IEBpZGxEaXJlY3RvcmllczsKK3B1c2ggQGFyZ3MsICctLXN1cHBsZW1lbnRhbERl
cGVuZGVuY3lGaWxlJywgJHN1cHBsZW1lbnRhbERlcGVuZGVuY3lGaWxlIGlmICRzdXBwbGVtZW50
YWxEZXBlbmRlbmN5RmlsZTsKKworbXkgJWRpcmVjdG9yeUNhY2hlOworYnVpbGREaXJlY3RvcnlD
YWNoZSgpOworCitteSAkcXVldWUgPSBUaHJlYWQ6OlF1ZXVlLT5uZXcoQGlkbEZpbGVzKTsKK215
ICRhYm9ydCA6c2hhcmVkID0gMDsKKworbXkgQHRocmVhZFBvb2wgPSBtYXAgeyB0aHJlYWRzLT5j
cmVhdGUoXCZ3b3JrZXIpIH0gKDEgLi4gJG51bU9mSm9icyk7CiskXy0+am9pbiBmb3IgQHRocmVh
ZFBvb2w7CitleGl0ICRhYm9ydDsKKworc3ViIG5lZWRzVXBkYXRlCit7CisgICAgbXkgKCRvYmpl
Y3RzLCAkZGVwZW5kcykgPSBAXzsKKyAgICBteSAkb2xkZXN0T2JqZWN0OworICAgIG15ICRvbGRl
c3RPYmplY3RUaW1lOworICAgIGZvciAoQCRvYmplY3RzKSB7CisgICAgICAgIHJldHVybiAxIGlm
ICEtZjsKKyAgICAgICAgbXkgJG0gPSBtdGltZSgkXyk7CisgICAgICAgIGlmICghZGVmaW5lZCAk
b2xkZXN0T2JqZWN0VGltZSB8fCAkbSA8ICRvbGRlc3RPYmplY3RUaW1lKSB7CisgICAgICAgICAg
ICAkb2xkZXN0T2JqZWN0ID0gJF87CisgICAgICAgICAgICAkb2xkZXN0T2JqZWN0VGltZSA9ICRt
OworICAgICAgICB9CisgICAgfQorICAgIGZvciAoQCRkZXBlbmRzKSB7CisgICAgICAgIGRpZSAi
TWlzc2luZyByZXF1aXJlZCBkZXBlbmRlbmN5OiAkXyIgaWYgIS1mOworICAgICAgICBteSAkbSA9
IG10aW1lKCRfKTsKKyAgICAgICAgaWYgKCRvbGRlc3RPYmplY3RUaW1lIDwgJG0pIHsKKyAgICAg
ICAgICAgICMgcHJpbnQgIiRfIGlzIG5ld2VyIHRoYW4gJG9sZGVzdE9iamVjdFxuIjsKKyAgICAg
ICAgICAgIHJldHVybiAxOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiAwOworfQorCitz
dWIgbXRpbWUKK3sKKyAgICBteSAoJGZpbGUpID0gQF87CisgICAgcmV0dXJuIChzdGF0ICRmaWxl
KVs5XTsKK30KKworc3ViIHdvcmtlciB7CisgICAgd2hpbGUgKG15ICRmaWxlID0gJHF1ZXVlLT5k
ZXF1ZXVlX25iKCkpIHsKKyAgICAgICAgbGFzdCBpZiAkYWJvcnQ7CisgICAgICAgIGV2YWwgewor
ICAgICAgICAgICAgbXkgKCRmaWxlbmFtZSwgJGRpcnMsICRzdWZmaXgpID0gZmlsZXBhcnNlKCRm
aWxlLCAnLmlkbCcpOworICAgICAgICAgICAgbXkgJHNvdXJjZUZpbGUgPSBGaWxlOjpTcGVjLT5j
YXRmaWxlKCRvdXRwdXREaXJlY3RvcnksICJKUyRmaWxlbmFtZS5jcHAiKTsKKyAgICAgICAgICAg
IG15ICRoZWFkZXJGaWxlID0gRmlsZTo6U3BlYy0+Y2F0ZmlsZSgkb3V0cHV0RGlyZWN0b3J5LCAi
SlMkZmlsZW5hbWUuaCIpOworICAgICAgICAgICAgbXkgJGRlcEZpbGUgPSBGaWxlOjpTcGVjLT5j
YXRmaWxlKCRvdXRwdXREaXJlY3RvcnksICJKUyRmaWxlbmFtZS5kZXAiKTsKKyAgICAgICAgICAg
IG15IEBvdXRwdXQgPSAoJHNvdXJjZUZpbGUsICRoZWFkZXJGaWxlKTsKKyAgICAgICAgICAgIG15
IEBkZXBzID0gKCRmaWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgJGlkbEF0dHJpYnV0ZXNG
aWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgQGdlbmVyYXRvckRlcGVuZGVuY3ksCisgICAg
ICAgICAgICAgICAgICAgICAgICBAeyRzdXBwbGVtZW50ZWRJZGxGaWxlc3skZmlsZX0gb3IgW119
LAorICAgICAgICAgICAgICAgICAgICAgICAgaW1wbGljaXREZXBlbmRlbmNpZXMoJGRlcEZpbGUp
KTsKKyAgICAgICAgICAgIGlmIChuZWVkc1VwZGF0ZShcQG91dHB1dCwgXEBkZXBzKSkgeworICAg
ICAgICAgICAgICAgIHByaW50ICIkZmlsZW5hbWUkc3VmZml4XG4iOworICAgICAgICAgICAgICAg
IHN5c3RlbSgkcGVybCwgIi1JLiIsICItSSRzY3JpcHREaXIiLCAiJHNjcmlwdERpci9nZW5lcmF0
ZS1iaW5kaW5ncy5wbCIsIEBhcmdzLCAkZmlsZSkgPT0gMCBvciBkaWU7CisgICAgICAgICAgICB9
CisgICAgICAgIH07CisgICAgICAgIGlmICgkQCkgeworICAgICAgICAgICAgJGFib3J0ID0gMTsK
KyAgICAgICAgICAgIGRpZTsKKyAgICAgICAgfQorICAgIH0KK30KKworc3ViIGJ1aWxkRGlyZWN0
b3J5Q2FjaGUKK3sKKyAgICBteSAkd2FudGVkID0gc3ViIHsKKyAgICAgICAgJGRpcmVjdG9yeUNh
Y2hleyRffSA9ICRGaWxlOjpGaW5kOjpuYW1lOworICAgICAgICAkRmlsZTo6RmluZDo6cHJ1bmUg
PSAxIHVubGVzcyB+L1wuLzsKKyAgICB9OworICAgIGZpbmQoJHdhbnRlZCwgQGlkbERpcmVjdG9y
aWVzKTsKK30KKworc3ViIGltcGxpY2l0RGVwZW5kZW5jaWVzCit7CisgICAgbXkgKCRkZXBGaWxl
KSA9IEBfOworICAgIHJldHVybiAoKSB1bmxlc3MgLWYgJGRlcEZpbGU7CisgICAgb3BlbihteSAk
ZmgsICc8JywgJGRlcEZpbGUpIG9yIGRpZSAiQ2Fubm90IG9wZW4gJGRlcEZpbGUiOworICAgIG15
ICRmaXJzdExpbmUgPSA8JGZoPjsKKyAgICBjbG9zZSgkZmgpIG9yIGRpZTsKKyAgICBteSAodW5k
ZWYsICRkZXBzKSA9IHNwbGl0KC8gOiAvLCAkZmlyc3RMaW5lKTsKKyAgICBteSBAZGVwcyA9IHNw
bGl0KC9ccysvLCAkZGVwcyk7CisgICAgcmV0dXJuIG1hcCB7ICRkaXJlY3RvcnlDYWNoZXskX30g
b3IgKCkgfSBAZGVwczsKK30KKworc3ViIHF1b3RlQ29tbWFuZAoreworICAgIHVzZSBDb25maWc7
CisgICAgaWYgKCRDb25maWc6OkNvbmZpZ3tvc25hbWV9IGVxICdNU1dpbjMyJykgeworICAgICAg
ICByZXR1cm4gbWFwIHsKKyAgICAgICAgICAgIHMvXFwvXFxcXC9nOworICAgICAgICAgICAgcy9c
Ii9cXFwiL2c7CisgICAgICAgICAgICAiXCIkX1wiIjsKKyAgICAgICAgfSBAXzsKKyAgICB9Cisg
ICAgcmV0dXJuIEBfOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL1dlYktpdE1hY3Jvcy5j
bWFrZSBiL1NvdXJjZS9jbWFrZS9XZWJLaXRNYWNyb3MuY21ha2UKaW5kZXggMDI1NTY5N2VkYjk2
ZGMzNDRlOGIzZmFiM2YwNmVlODlhNTI2MmFhZC4uYzkwYTExZjAzOTA4Y2QzZDQ5MTBjZDIyYTUz
YjY2YzBlOWIzNDUyYiAxMDA2NDQKLS0tIGEvU291cmNlL2NtYWtlL1dlYktpdE1hY3Jvcy5jbWFr
ZQorKysgYi9Tb3VyY2UvY21ha2UvV2ViS2l0TWFjcm9zLmNtYWtlCkBAIC0xLDQgKzEsNiBAQAog
aW5jbHVkZShDTWFrZVBhcnNlQXJndW1lbnRzKQoraW5jbHVkZShQcm9jZXNzb3JDb3VudCkKK1By
b2Nlc3NvckNvdW50KFBST0NFU1NPUl9DT1VOVCkKIAogbWFjcm8oV0VCS0lUX0lOQ0xVREVfQ09O
RklHX0ZJTEVTX0lGX0VYSVNUUykKICAgICBzZXQoX2ZpbGUgJHtDTUFLRV9DVVJSRU5UX1NPVVJD
RV9ESVJ9L1BsYXRmb3JtJHtQT1JUfS5jbWFrZSkKQEAgLTQzLDcgKzQ1LDggQEAgbWFjcm8oQURE
X1BSRUNPTVBJTEVEX0hFQURFUiBfaGVhZGVyIF9jcHAgX3NvdXJjZSkKICAgICAjRklYTUU6IEFk
ZCBzdXBwb3J0IGZvciBYY29kZS4KIGVuZG1hY3JvKCkKIAotIyBIZWxwZXIgbWFjcm8gd2hpY2gg
d3JhcHMgcHJlcHJvY2Vzcy1pZGxzLnBsIGFuZCBnZW5lcmF0ZS1iaW5kaW5ncy5wbCBzY3JpcHRz
LgorIyBIZWxwZXIgbWFjcm8gd2hpY2ggd3JhcHMgZ2VuZXJhdGUtYmluZGluZ3MtYWxsLnBsIHNj
cmlwdC4KKyMgICB0YXJnZXQgaXMgYSBuZXcgdGFyZ2V0IG5hbWUgdG8gYmUgYWRkZWQKICMgICBP
VVRQVVRfU09VUkNFIGlzIGEgbGlzdCBuYW1lIHdoaWNoIHdpbGwgY29udGFpbiBnZW5lcmF0ZWQg
c291cmNlcy4oZWcuIFdlYkNvcmVfU09VUkNFUykKICMgICBJTlBVVF9GSUxFUyBhcmUgSURMIGZp
bGVzIHRvIGdlbmVyYXRlLgogIyAgIEJBU0VfRElSIGlzIGJhc2UgZGlyZWN0b3J5IHdoZXJlIHNj
cmlwdCBpcyBjYWxsZWQuCkBAIC01NCwxNSArNTcsMTQgQEAgZW5kbWFjcm8oKQogIyAgIFNVUFBM
RU1FTlRBTF9ERVBGSUxFIGlzIGEgdmFsdWUgb2YgLS1zdXBwbGVtZW50YWxEZXBlbmRlbmN5Rmls
ZS4gKG9wdGlvbmFsKQogIyAgIFBQX0VYVFJBX09VVFBVVCBpcyBleHRyYSBvdXRwdXRzIG9mIHBy
ZXByb2Nlc3MtaWRscy5wbC4gKG9wdGlvbmFsKQogIyAgIFBQX0VYVFJBX0FSR1MgaXMgZXh0cmEg
YXJndW1lbnRzIGZvciBwcmVwcm9jZXNzLWlkbHMucGwuIChvcHRpb25hbCkKLWZ1bmN0aW9uKEdF
TkVSQVRFX0JJTkRJTkdTKQorZnVuY3Rpb24oR0VORVJBVEVfQklORElOR1MgdGFyZ2V0KQogICAg
IHNldChvcHRpb25zKQogICAgIHNldChvbmVWYWx1ZUFyZ3MgT1VUUFVUX1NPVVJDRSBCQVNFX0RJ
UiBGRUFUVVJFUyBERVNUSU5BVElPTiBHRU5FUkFUT1IgU1VQUExFTUVOVEFMX0RFUEZJTEUpCiAg
ICAgc2V0KG11bHRpVmFsdWVBcmdzIElOUFVUX0ZJTEVTIElETF9JTkNMVURFUyBQUF9FWFRSQV9P
VVRQVVQgUFBfRVhUUkFfQVJHUykKICAgICBjbWFrZV9wYXJzZV9hcmd1bWVudHMoYXJnICIke29w
dGlvbnN9IiAiJHtvbmVWYWx1ZUFyZ3N9IiAiJHttdWx0aVZhbHVlQXJnc30iICR7QVJHTn0pCi0g
ICAgc2V0KGJpbmRpbmdfZ2VuZXJhdG9yICR7V0VCQ09SRV9ESVJ9L2JpbmRpbmdzL3NjcmlwdHMv
Z2VuZXJhdGUtYmluZGluZ3MucGwpCisgICAgc2V0KGJpbmRpbmdfZ2VuZXJhdG9yICR7V0VCQ09S
RV9ESVJ9L2JpbmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUtYmluZGluZ3MtYWxsLnBsKQogICAgIHNl
dChpZGxfYXR0cmlidXRlc19maWxlICR7V0VCQ09SRV9ESVJ9L2JpbmRpbmdzL3NjcmlwdHMvSURM
QXR0cmlidXRlcy50eHQpCi0gICAgc2V0KGlkICR7YXJnX09VVFBVVF9TT1VSQ0V9KQotICAgIHNl
dChpZGxfZmlsZXNfbGlzdCAke0NNQUtFX0NVUlJFTlRfQklOQVJZX0RJUn0vaWRsX2ZpbGVzXyR7
aWR9LnRtcCkKKyAgICBzZXQoaWRsX2ZpbGVzX2xpc3QgJHtDTUFLRV9DVVJSRU5UX0JJTkFSWV9E
SVJ9L2lkbF9maWxlc18ke3RhcmdldH0udG1wKQogICAgIHNldChfc3VwcGxlbWVudGFsX2RlcGVu
ZGVuY3kpCiAKICAgICBzZXQoY29udGVudCkKQEAgLTc0LDU1ICs3Niw2OSBAQCBmdW5jdGlvbihH
RU5FUkFURV9CSU5ESU5HUykKICAgICBlbmRmb3JlYWNoICgpCiAgICAgZmlsZShXUklURSAke2lk
bF9maWxlc19saXN0fSAke2NvbnRlbnR9KQogCisgICAgc2V0KGFyZ3MKKyAgICAgICAgLS1kZWZp
bmVzICR7YXJnX0ZFQVRVUkVTfQorICAgICAgICAtLWdlbmVyYXRvciAke2FyZ19HRU5FUkFUT1J9
CisgICAgICAgIC0tb3V0cHV0RGlyICR7YXJnX0RFU1RJTkFUSU9OfQorICAgICAgICAtLWlkbEZp
bGVzTGlzdCAke2lkbF9maWxlc19saXN0fQorICAgICAgICAtLXByZXByb2Nlc3NvciAke0NPREVf
R0VORVJBVE9SX1BSRVBST0NFU1NPUn0KKyAgICAgICAgLS1pZGxBdHRyaWJ1dGVzRmlsZSAke2lk
bF9hdHRyaWJ1dGVzX2ZpbGV9KQogICAgIGlmIChhcmdfU1VQUExFTUVOVEFMX0RFUEZJTEUpCi0g
ICAgICAgIHNldChfc3VwcGxlbWVudGFsX2RlcGVuZGVuY3kgLS1zdXBwbGVtZW50YWxEZXBlbmRl
bmN5RmlsZSAke2FyZ19TVVBQTEVNRU5UQUxfREVQRklMRX0pCi0KLSAgICAgICAgYWRkX2N1c3Rv
bV9jb21tYW5kKAotICAgICAgICAgICAgT1VUUFVUICR7YXJnX1NVUFBMRU1FTlRBTF9ERVBGSUxF
fSAke2FyZ19QUF9FWFRSQV9PVVRQVVR9Ci0gICAgICAgICAgICBERVBFTkRTICR7V0VCQ09SRV9E
SVJ9L2JpbmRpbmdzL3NjcmlwdHMvcHJlcHJvY2Vzcy1pZGxzLnBsICR7YXJnX0lOUFVUX0ZJTEVT
fQotICAgICAgICAgICAgQ09NTUFORCAke1BFUkxfRVhFQ1VUQUJMRX0gLUkke1dFQkNPUkVfRElS
fS9iaW5kaW5ncy9zY3JpcHRzICR7V0VCQ09SRV9ESVJ9L2JpbmRpbmdzL3NjcmlwdHMvcHJlcHJv
Y2Vzcy1pZGxzLnBsIC0tZGVmaW5lcyAke2FyZ19GRUFUVVJFU30gLS1pZGxGaWxlc0xpc3QgJHtp
ZGxfZmlsZXNfbGlzdH0gLS1zdXBwbGVtZW50YWxEZXBlbmRlbmN5RmlsZSAke2FyZ19TVVBQTEVN
RU5UQUxfREVQRklMRX0gJHthcmdfUFBfRVhUUkFfQVJHU30KLSAgICAgICAgICAgIFZFUkJBVElN
KQorICAgICAgICBsaXN0KEFQUEVORCBhcmdzIC0tc3VwcGxlbWVudGFsRGVwZW5kZW5jeUZpbGUg
JHthcmdfU1VQUExFTUVOVEFMX0RFUEZJTEV9KQogICAgIGVuZGlmICgpCi0KLSAgICBzZXQoaWRs
X2luY2x1ZGVzKQotICAgIGZvcmVhY2ggKGRpciAke2FyZ19JRExfSU5DTFVERVN9KQotICAgICAg
ICBpZiAoSVNfQUJTT0xVVEUgJHtkaXJ9KQotICAgICAgICAgICAgbGlzdChBUFBFTkQgaWRsX2lu
Y2x1ZGVzIC0taW5jbHVkZT0ke2Rpcn0pCisgICAgaWYgKFBST0NFU1NPUl9DT1VOVCkKKyAgICAg
ICAgbGlzdChBUFBFTkQgYXJncyAtLW51bU9mSm9icyAke1BST0NFU1NPUl9DT1VOVH0pCisgICAg
ZW5kaWYgKCkKKyAgICBmb3JlYWNoIChpIElOIExJU1RTIGFyZ19JRExfSU5DTFVERVMpCisgICAg
ICAgIGlmIChJU19BQlNPTFVURSAke2l9KQorICAgICAgICAgICAgbGlzdChBUFBFTkQgYXJncyAt
LWluY2x1ZGUgJHtpfSkKICAgICAgICAgZWxzZSAoKQotICAgICAgICAgICAgbGlzdChBUFBFTkQg
aWRsX2luY2x1ZGVzIC0taW5jbHVkZT0ke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vJHtkaXJ9
KQorICAgICAgICAgICAgbGlzdChBUFBFTkQgYXJncyAtLWluY2x1ZGUgJHtDTUFLRV9DVVJSRU5U
X1NPVVJDRV9ESVJ9LyR7aX0pCiAgICAgICAgIGVuZGlmICgpCiAgICAgZW5kZm9yZWFjaCAoKQor
ICAgIGZvcmVhY2ggKGkgSU4gTElTVFMgYXJnX1BQX0VYVFJBX09VVFBVVCkKKyAgICAgICAgbGlz
dChBUFBFTkQgYXJncyAtLXBwRXh0cmFPdXRwdXQgJHtpfSkKKyAgICBlbmRmb3JlYWNoICgpCisg
ICAgZm9yZWFjaCAoaSBJTiBMSVNUUyBhcmdfUFBfRVhUUkFfQVJHUykKKyAgICAgICAgbGlzdChB
UFBFTkQgYXJncyAtLXBwRXh0cmFBcmdzICR7aX0pCisgICAgZW5kZm9yZWFjaCAoKQogCiAgICAg
c2V0KGNvbW1vbl9nZW5lcmF0b3JfZGVwZW5kZW5jaWVzCi0gICAgICAgICR7YmluZGluZ19nZW5l
cmF0b3J9Ci0gICAgICAgICR7V0VCQ09SRV9ESVJ9L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvci5wbQorICAgICAgICAke1dFQkNPUkVfRElSfS9iaW5kaW5ncy9zY3JpcHRzL2dlbmVyYXRl
LWJpbmRpbmdzLnBsCiAgICAgICAgICR7U0NSSVBUU19CSU5ESU5HU30KLSAgICAgICAgJHthcmdf
U1VQUExFTUVOVEFMX0RFUEZJTEV9Ci0gICAgICAgICR7aWRsX2F0dHJpYnV0ZXNfZmlsZX0KICAg
ICApCi0gICAgbGlzdChBUFBFTkQgY29tbW9uX2dlbmVyYXRvcl9kZXBlbmRlbmNpZXMgJHthcmdf
UFBfRVhUUkFfT1VUUFVUfSkKLQogICAgIGlmIChFWElTVFMgJHtXRUJDT1JFX0RJUn0vYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yJHthcmdfR0VORVJBVE9SfS5wbSkKICAgICAgICAgbGlz
dChBUFBFTkQgY29tbW9uX2dlbmVyYXRvcl9kZXBlbmRlbmNpZXMgJHtXRUJDT1JFX0RJUn0vYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yJHthcmdfR0VORVJBVE9SfS5wbSkKICAgICBlbmRp
ZiAoKQogICAgIGlmIChFWElTVFMgJHthcmdfQkFTRV9ESVJ9L0NvZGVHZW5lcmF0b3Ike2FyZ19H
RU5FUkFUT1J9LnBtKQogICAgICAgICBsaXN0KEFQUEVORCBjb21tb25fZ2VuZXJhdG9yX2RlcGVu
ZGVuY2llcyAke2FyZ19CQVNFX0RJUn0vQ29kZUdlbmVyYXRvciR7YXJnX0dFTkVSQVRPUn0ucG0p
CiAgICAgZW5kaWYgKCkKKyAgICBmb3JlYWNoIChpIElOIExJU1RTIGNvbW1vbl9nZW5lcmF0b3Jf
ZGVwZW5kZW5jaWVzKQorICAgICAgICBsaXN0KEFQUEVORCBhcmdzIC0tZ2VuZXJhdG9yRGVwZW5k
ZW5jeSAke2l9KQorICAgIGVuZGZvcmVhY2ggKCkKIAogICAgIHNldChnZW5fc291cmNlcykKKyAg
ICBzZXQoZ2VuX2hlYWRlcnMpCiAgICAgZm9yZWFjaCAoX2ZpbGUgJHthcmdfSU5QVVRfRklMRVN9
KQogICAgICAgICBnZXRfZmlsZW5hbWVfY29tcG9uZW50KF9uYW1lICR7X2ZpbGV9IE5BTUVfV0Up
Ci0KLSAgICAgICAgYWRkX2N1c3RvbV9jb21tYW5kKAotICAgICAgICAgICAgT1VUUFVUICR7YXJn
X0RFU1RJTkFUSU9OfS9KUyR7X25hbWV9LmNwcCAke2FyZ19ERVNUSU5BVElPTn0vSlMke19uYW1l
fS5oCi0gICAgICAgICAgICBNQUlOX0RFUEVOREVOQ1kgJHtfZmlsZX0KLSAgICAgICAgICAgIERF
UEVORFMgJHtjb21tb25fZ2VuZXJhdG9yX2RlcGVuZGVuY2llc30KLSAgICAgICAgICAgIENPTU1B
TkQgJHtQRVJMX0VYRUNVVEFCTEV9IC1JJHtXRUJDT1JFX0RJUn0vYmluZGluZ3Mvc2NyaXB0cyAt
SSR7YXJnX0JBU0VfRElSfSAke2JpbmRpbmdfZ2VuZXJhdG9yfSAtLWRlZmluZXMgJHthcmdfRkVB
VFVSRVN9IC0tZ2VuZXJhdG9yICR7YXJnX0dFTkVSQVRPUn0gJHtpZGxfaW5jbHVkZXN9IC0tb3V0
cHV0RGlyICR7YXJnX0RFU1RJTkFUSU9OfSAtLXByZXByb2Nlc3NvciAke0NPREVfR0VORVJBVE9S
X1BSRVBST0NFU1NPUn0gLS1pZGxBdHRyaWJ1dGVzRmlsZSAke2lkbF9hdHRyaWJ1dGVzX2ZpbGV9
ICR7X3N1cHBsZW1lbnRhbF9kZXBlbmRlbmN5fSAke19maWxlfQotICAgICAgICAgICAgV09SS0lO
R19ESVJFQ1RPUlkgJHthcmdfQkFTRV9ESVJ9Ci0gICAgICAgICAgICBWRVJCQVRJTSkKICAgICAg
ICAgbGlzdChBUFBFTkQgZ2VuX3NvdXJjZXMgJHthcmdfREVTVElOQVRJT059L0pTJHtfbmFtZX0u
Y3BwKQorICAgICAgICBsaXN0KEFQUEVORCBnZW5faGVhZGVycyAke2FyZ19ERVNUSU5BVElPTn0v
SlMke19uYW1lfS5oKQogICAgIGVuZGZvcmVhY2ggKCkKICAgICBzZXQoJHthcmdfT1VUUFVUX1NP
VVJDRX0gJHske2FyZ19PVVRQVVRfU09VUkNFfX0gJHtnZW5fc291cmNlc30gUEFSRU5UX1NDT1BF
KQorICAgIHNldChhY3RfYXJncykKKyAgICBpZiAoJHtDTUFLRV9WRVJTSU9OfSBWRVJTSU9OX0xF
U1MgMy4yKQorICAgICAgICBzZXRfc291cmNlX2ZpbGVzX3Byb3BlcnRpZXMoJHtnZW5fc291cmNl
c30gJHtnZW5faGVhZGVyc30gUFJPUEVSVElFUyBHRU5FUkFURUQgMSkKKyAgICBlbHNlICgpCisg
ICAgICAgIGxpc3QoQVBQRU5EIGFjdF9hcmdzCisgICAgICAgICAgICBCWVBST0RVQ1RTICR7Z2Vu
X3NvdXJjZXN9ICR7Z2VuX2hlYWRlcnN9CisgICAgICAgICAgICBVU0VTX1RFUk1JTkFMCisgICAg
ICAgICkKKyAgICBlbmRpZiAoKQorICAgIGFkZF9jdXN0b21fdGFyZ2V0KCR7dGFyZ2V0fQorICAg
ICAgICBDT01NQU5EICR7UEVSTF9FWEVDVVRBQkxFfSAke2JpbmRpbmdfZ2VuZXJhdG9yfSAke2Fy
Z3N9CisgICAgICAgIFdPUktJTkdfRElSRUNUT1JZICR7YXJnX0JBU0VfRElSfQorICAgICAgICBD
T01NRU5UICJHZW5lcmF0ZSBiaW5kaW5ncyAoJHt0YXJnZXR9KSIKKyAgICAgICAgVkVSQkFUSU0g
JHthY3RfYXJnc30pCiBlbmRmdW5jdGlvbigpCiAKIG1hY3JvKEdFTkVSQVRFX0ZPTlRfTkFNRVMg
X2luZmlsZSkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwpp
bmRleCBjNzkyNGE0YzBlZWFhYTI0MmY2ZjQxMDQzMDNhNjA1M2U4MmExZTQyLi45OTU2MDkyNmI0
YjY1YjI3YjUwMWU4M2EwYWM5MjFkYmNiMjFiZTgzIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VM
b2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTYtMTAtMDYgIEZ1
amlpIEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CisKKyAgICAgICAgW0NNYWtl
XSBDTWFrZSBkb2VzIG5vdCBzdXBwb3J0IHRoZSBkZXAgZmlsZXMgZm9yIGltcGxpY2l0IGRlcGVu
ZGVuY3kKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2
MTQzMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENy
ZWF0ZWQgYSBQZXJsIHNjcmlwdCB0byBnZW5lcmF0ZSBhbGwgSURMIGJpbmRpbmdzIGZvciBDTWFr
ZS4KKyAgICAgICAgVGhpcyBzY3JpcHQgY2FuIHJlZ2VuZXJhdGUgb3V0ZGF0ZWQgYmluZGluZ3Mg
YnkgYmFzZWQgb24gdGhlCisgICAgICAgIHN1cHBsZW1lbnRhbCBkZXBlbmRlbmN5IGFuZCBkZXAg
ZmlsZXMgY3JlYXRlZCBieQorICAgICAgICAnLS13cml0ZS1kZXBlbmRlbmNpZXMnIHN3aXRjaCBv
ZiBnZW5lcmF0ZS1iaW5kaW5ncy5wbC4KKworICAgICAgICBhZGRfY3VzdG9tX3RhcmdldCBpcyB1
c2VkIHRvIGludm9rZSB0aGUgc2NyaXB0IGluc3RlYWQgb2YKKyAgICAgICAgYWRkX2N1c3RvbV9j
b21tYW5kIGJlY2F1c2UgTmluamEgZGVsZXRlcyBhbGwgb3V0cHV0IGZpbGVzIGJlZm9yZQorICAg
ICAgICBleGVjdXRpbmcgdGhlIGNvbW1hbmQgaW4gY2FzZSBvZiBhZGRfY3VzdG9tX2NvbW1hbmQu
CisKKyAgICAgICAgVVNFU19URVJNSU5BTCBvcHRpb24gb2YgYWRkX2N1c3RvbV90YXJnZXQgaGFz
IHR3byBlZmZlY3RzOgorICAgICAgICAxKSBOb3QgYnVmZmVyaW5nIG91dHB1dCBvZiB0aGUgY29t
bWFuZAorICAgICAgICAyKSBJbnZva2luZyB0aGUgY29tbWFuZCBpbiB0aGUgc3BlY2lhbCBOaW5q
YSBwb29sIHdoaWNoIGluaGliaXRzIHBhcmFsbGVsIGJ1aWxkCisgICAgICAgIE9uZSBuZWVkcyB0
byB1c2UgQ01ha2UgMy4yIG9yIGxhdGVyIHRvIGVuYWJsZSB0aGlzIGZlYXR1cmUuCisKKyAgICAg
ICAgKiBEdW1wUmVuZGVyVHJlZS9DTWFrZUxpc3RzLnR4dDogU3BlY2lmaWVkIGEgdGFyZ2V0IG5h
bWUgZm9yCisgICAgICAgIEdFTkVSQVRFX0JJTkRJTkdTLiBBZGRlZCBkZXBlbmRlbmN5IGZvciB0
aGUgdGFyZ2V0LgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvQ01ha2VMaXN0cy50eHQ6IERp
dHRvLgorCiAyMDE2LTEwLTA1ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgVVJMUGFyc2VyIHNob3VsZCBwYXJzZSBJUHY0IGFkZHJlc3NlcyBh
cyB0aGUgbGFzdCB0d28gcGllY2VzIG9mIGFuIElQdjYgYWRkcmVzcwpkaWZmIC0tZ2l0IGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvQ01ha2VMaXN0cy50eHQgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9D
TWFrZUxpc3RzLnR4dAppbmRleCBiYWY3YzEzYzU3MjFhZTZjMThjMDMzN2M0MGY4NGRhOWQ3MWFl
YmRlLi5kYzg0MjBkZjg5Zjc3MmE4ZGMzZTU4OGQ1YmE4Nzc0MTYyZjI3NWIwIDEwMDY0NAotLS0g
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9DTWFrZUxpc3RzLnR4dApAQCAtMTIwLDcgKzEyMCw3IEBAIHNldChEdW1wUmVuZGVy
VHJlZV9JRExfRklMRVMKICAgICAiJHtXRUJLSVRfVEVTVFJVTk5FUl9VSVNDUklQVENPTlRFWFRf
RElSfS9CaW5kaW5ncy9VSVNjcmlwdENvbnRyb2xsZXIuaWRsIgogKQogCi1HRU5FUkFURV9CSU5E
SU5HUygKK0dFTkVSQVRFX0JJTkRJTkdTKER1bXBSZW5kZXJUcmVlQmluZGluZ3MKICAgICBPVVRQ
VVRfU09VUkNFIER1bXBSZW5kZXJUcmVlX1NPVVJDRVMKICAgICBJTlBVVF9GSUxFUyAke0R1bXBS
ZW5kZXJUcmVlX0lETF9GSUxFU30KICAgICBCQVNFX0RJUiAke0RVTVBfUkVOREVSX1RSRUVfQklO
RElOR1NfRElSfQpAQCAtMTM1LDYgKzEzNSw3IEBAIGluY2x1ZGVfZGlyZWN0b3JpZXMoJHtEdW1w
UmVuZGVyVHJlZV9JTkNMVURFX0RJUkVDVE9SSUVTfSkKIAogYWRkX2V4ZWN1dGFibGUoRHVtcFJl
bmRlclRyZWUgJHtEdW1wUmVuZGVyVHJlZV9TT1VSQ0VTfSkKIHRhcmdldF9saW5rX2xpYnJhcmll
cyhEdW1wUmVuZGVyVHJlZSAke0R1bXBSZW5kZXJUcmVlX0xJQlJBUklFU30pCithZGRfZGVwZW5k
ZW5jaWVzKER1bXBSZW5kZXJUcmVlIER1bXBSZW5kZXJUcmVlQmluZGluZ3MpCiAKIGlmIChFTkFC
TEVfTkVUU0NBUEVfUExVR0lOX0FQSSkKICAgICBhZGRfbGlicmFyeShUZXN0TmV0c2NhcGVQbHVn
aW4gU0hBUkVEICR7VGVzdE5ldHNjYXBlUGx1Z2luX1NPVVJDRVN9KQpkaWZmIC0tZ2l0IGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9DTWFrZUxpc3RzLnR4dCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvQ01ha2VMaXN0cy50eHQKaW5kZXggMjdlYTM2YzNiZDQ3ZWYwMmE2NGE5MjdmNjg1MjIzZGEz
NWI4NDlmYS4uOGM5ODc2ODhkNGE4YzI3ZjQwNmY2MDBkYzI1ZTBjM2FmOGQ1ZWU1NiAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9DTWFrZUxpc3RzLnR4dAorKysgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0NNYWtlTGlzdHMudHh0CkBAIC05Nyw3ICs5Nyw3IEBAIHNldChXZWJL
aXRUZXN0UnVubmVyX0lETF9GSUxFUwogICAgICIke1dFQktJVF9URVNUUlVOTkVSX1VJU0NSSVBU
Q09OVEVYVF9ESVJ9L0JpbmRpbmdzL1VJU2NyaXB0Q29udHJvbGxlci5pZGwiCiApCiAKLUdFTkVS
QVRFX0JJTkRJTkdTKAorR0VORVJBVEVfQklORElOR1MoV2ViS2l0VGVzdFJ1bm5lckluamVjdGVk
QnVuZGxlQmluZGluZ3MKICAgICBPVVRQVVRfU09VUkNFIFdlYktpdFRlc3RSdW5uZXJJbmplY3Rl
ZEJ1bmRsZV9TT1VSQ0VTCiAgICAgSU5QVVRfRklMRVMgJHtXZWJLaXRUZXN0UnVubmVySW5qZWN0
ZWRCdW5kbGVfSURMX0ZJTEVTfQogICAgIEJBU0VfRElSICR7V0VCS0lUX1RFU1RSVU5ORVJfSU5K
RUNURURCVU5ETEVfRElSfS9CaW5kaW5ncwpAQCAtMTA2LDcgKzEwNiw3IEBAIEdFTkVSQVRFX0JJ
TkRJTkdTKAogICAgIERFU1RJTkFUSU9OICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vSW5qZWN0ZWRC
dW5kbGUKICAgICBHRU5FUkFUT1IgVGVzdFJ1bm5lcikKIAotR0VORVJBVEVfQklORElOR1MoCitH
RU5FUkFURV9CSU5ESU5HUyhXZWJLaXRUZXN0UnVubmVyQmluZGluZ3MKICAgICBPVVRQVVRfU09V
UkNFIFdlYktpdFRlc3RSdW5uZXJfU09VUkNFUwogICAgIElOUFVUX0ZJTEVTICR7V2ViS2l0VGVz
dFJ1bm5lcl9JRExfRklMRVN9CiAgICAgQkFTRV9ESVIgJHtXRUJLSVRfVEVTVFJVTk5FUl9JTkpF
Q1RFREJVTkRMRV9ESVJ9L0JpbmRpbmdzCkBAIC0xMjIsOSArMTIyLDExIEBAIGluY2x1ZGVfZGly
ZWN0b3JpZXMoU1lTVEVNICR7V2ViS2l0VGVzdFJ1bm5lcl9TWVNURU1fSU5DTFVERV9ESVJFQ1RP
UklFU30pCiAKIGFkZF9saWJyYXJ5KFRlc3RSdW5uZXJJbmplY3RlZEJ1bmRsZSBTSEFSRUQgJHtX
ZWJLaXRUZXN0UnVubmVySW5qZWN0ZWRCdW5kbGVfU09VUkNFU30pCiB0YXJnZXRfbGlua19saWJy
YXJpZXMoVGVzdFJ1bm5lckluamVjdGVkQnVuZGxlICR7V2ViS2l0VGVzdFJ1bm5lcl9MSUJSQVJJ
RVN9KQorYWRkX2RlcGVuZGVuY2llcyhUZXN0UnVubmVySW5qZWN0ZWRCdW5kbGUgV2ViS2l0VGVz
dFJ1bm5lckluamVjdGVkQnVuZGxlQmluZGluZ3MpCiAKIGFkZF9leGVjdXRhYmxlKFdlYktpdFRl
c3RSdW5uZXIgJHtXZWJLaXRUZXN0UnVubmVyX1NPVVJDRVN9KQogdGFyZ2V0X2xpbmtfbGlicmFy
aWVzKFdlYktpdFRlc3RSdW5uZXIgJHtXZWJLaXRUZXN0UnVubmVyX0xJQlJBUklFU30pCithZGRf
ZGVwZW5kZW5jaWVzKFdlYktpdFRlc3RSdW5uZXIgV2ViS2l0VGVzdFJ1bm5lckJpbmRpbmdzKQog
CiBpZiAoTk9UIEFQUExFKQogICAgIGFkZF9kZXBlbmRlbmNpZXMoV2ViS2l0MiAke0ZvcndhcmRp
bmdIZWFkZXJzRm9yV2ViS2l0VGVzdFJ1bm5lcl9OQU1FfSkKZGlmZiAtLWdpdCBhL0NoYW5nZUxv
ZyBiL0NoYW5nZUxvZwppbmRleCBkZjM2MmU2MTZhMTU5YzQ1MGRhYWY5N2I3NTU4MjhhMzFlNjhh
MmIyLi44OWNkN2NhMDMzNjQ0NDMzMTE0YjcyNDM2MDhjYTNkNjRlZWE4MTc3IDEwMDY0NAotLS0g
YS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTYtMTAtMDYg
IEZ1amlpIEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CisKKyAgICAgICAgW0NN
YWtlXSBDTWFrZSBkb2VzIG5vdCBzdXBwb3J0IHRoZSBkZXAgZmlsZXMgZm9yIGltcGxpY2l0IGRl
cGVuZGVuY3kKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE2MTQzMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IENyZWF0ZWQgYSBQZXJsIHNjcmlwdCB0byBnZW5lcmF0ZSBhbGwgSURMIGJpbmRpbmdzIGZvciBD
TWFrZS4KKyAgICAgICAgVGhpcyBzY3JpcHQgY2FuIHJlZ2VuZXJhdGUgb3V0ZGF0ZWQgYmluZGlu
Z3MgYnkgYmFzZWQgb24gdGhlCisgICAgICAgIHN1cHBsZW1lbnRhbCBkZXBlbmRlbmN5IGFuZCBk
ZXAgZmlsZXMgY3JlYXRlZCBieQorICAgICAgICAnLS13cml0ZS1kZXBlbmRlbmNpZXMnIHN3aXRj
aCBvZiBnZW5lcmF0ZS1iaW5kaW5ncy5wbC4KKworICAgICAgICBhZGRfY3VzdG9tX3RhcmdldCBp
cyB1c2VkIHRvIGludm9rZSB0aGUgc2NyaXB0IGluc3RlYWQgb2YKKyAgICAgICAgYWRkX2N1c3Rv
bV9jb21tYW5kIGJlY2F1c2UgTmluamEgZGVsZXRlcyBhbGwgb3V0cHV0IGZpbGVzIGJlZm9yZQor
ICAgICAgICBleGVjdXRpbmcgdGhlIGNvbW1hbmQgaW4gY2FzZSBvZiBhZGRfY3VzdG9tX2NvbW1h
bmQuCisKKyAgICAgICAgVVNFU19URVJNSU5BTCBvcHRpb24gb2YgYWRkX2N1c3RvbV90YXJnZXQg
aGFzIHR3byBlZmZlY3RzOgorICAgICAgICAxKSBOb3QgYnVmZmVyaW5nIG91dHB1dCBvZiB0aGUg
Y29tbWFuZAorICAgICAgICAyKSBJbnZva2luZyB0aGUgY29tbWFuZCBpbiB0aGUgc3BlY2lhbCBO
aW5qYSBwb29sIHdoaWNoIGluaGliaXRzIHBhcmFsbGVsIGJ1aWxkCisgICAgICAgIE9uZSBuZWVk
cyB0byB1c2UgQ01ha2UgMy4yIG9yIGxhdGVyIHRvIGVuYWJsZSB0aGlzIGZlYXR1cmUuCisKKyAg
ICAgICAgKiBTb3VyY2UvY21ha2UvV2ViS2l0TWFjcm9zLmNtYWtlIChHRU5FUkFURV9CSU5ESU5H
Uyk6IEluY2x1ZGVkCisgICAgICAgIFByb2Nlc3NvckNvdW50LiAgQWRkZWQgYSBuZXcgYXJndW1l
bnQgJ3RhcmdldCcuICBVc2UKKyAgICAgICAgYWRkX2N1c3RvbV90YXJnZXQgaW5zdGVhZCBvZiBh
ZGRfY3VzdG9tX2NvbW1hbmQuICBJbnZva2UgdGhlIG5ldworICAgICAgICBzY3JpcHQuCisKIDIw
MTYtMTAtMDUgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgogCiAgICAgICAg
IFJlbmFtZSBFTkFCTEVfRU5DUllQVEVEX01FRElBX1YyIHRvIEVOQUJMRV9MRUdBQ1lfRU5DUllQ
VEVEX01FRElBCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>290810</attachid>
            <date>2016-10-06 04:39:36 -0700</date>
            <delta_ts>2016-10-07 02:55:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-161433-20161006203625.patch</filename>
            <type>text/plain</type>
            <size>22895</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2ODU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGUzZDNkZDY5MjM5NjFh
ZTE3MmJmZDRlN2M1ZWUzMzdmMmE0ZjBiNS4uZDQwODg5OTMwMzA4OWEyZjgyN2M2Mjg5ZWI2MTkw
ZTAxYWI3MDQ5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE2LTEwLTA2ICBGdWpp
aSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgorCisgICAgICAgIFtDTWFrZV0g
Q01ha2UgZG9lcyBub3Qgc3VwcG9ydCB0aGUgZGVwIGZpbGVzIGZvciBpbXBsaWNpdCBkZXBlbmRl
bmN5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjE0
MzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDcmVh
dGVkIGEgUGVybCBzY3JpcHQgdG8gZ2VuZXJhdGUgYWxsIElETCBiaW5kaW5ncyBmb3IgQ01ha2Uu
CisgICAgICAgIFRoaXMgc2NyaXB0IGNhbiByZWdlbmVyYXRlIG91dGRhdGVkIGJpbmRpbmdzIGJ5
IGJhc2VkIG9uIHRoZQorICAgICAgICBzdXBwbGVtZW50YWwgZGVwZW5kZW5jeSBhbmQgZGVwIGZp
bGVzIGNyZWF0ZWQgYnkKKyAgICAgICAgJy0td3JpdGUtZGVwZW5kZW5jaWVzJyBzd2l0Y2ggb2Yg
Z2VuZXJhdGUtYmluZGluZ3MucGwuCisKKyAgICAgICAgYWRkX2N1c3RvbV90YXJnZXQgaXMgdXNl
ZCB0byBpbnZva2UgdGhlIHNjcmlwdCBpbnN0ZWFkIG9mCisgICAgICAgIGFkZF9jdXN0b21fY29t
bWFuZCBiZWNhdXNlIE5pbmphIGRlbGV0ZXMgYWxsIG91dHB1dCBmaWxlcyBiZWZvcmUKKyAgICAg
ICAgZXhlY3V0aW5nIHRoZSBjb21tYW5kIGluIGNhc2Ugb2YgYWRkX2N1c3RvbV9jb21tYW5kLgor
CisgICAgICAgIFVTRVNfVEVSTUlOQUwgb3B0aW9uIG9mIGFkZF9jdXN0b21fdGFyZ2V0IGhhcyB0
d28gZWZmZWN0czoKKyAgICAgICAgMSkgTm90IGJ1ZmZlcmluZyBvdXRwdXQgb2YgdGhlIGNvbW1h
bmQKKyAgICAgICAgMikgSW52b2tpbmcgdGhlIGNvbW1hbmQgaW4gdGhlIHNwZWNpYWwgTmluamEg
cG9vbCB3aGljaCBpbmhpYml0cyBwYXJhbGxlbCBidWlsZAorICAgICAgICBPbmUgbmVlZHMgdG8g
dXNlIENNYWtlIDMuMiBvciBsYXRlciB0byBlbmFibGUgdGhpcyBmZWF0dXJlLgorCisgICAgICAg
ICogQ01ha2VMaXN0cy50eHQ6IFNwZWNpZmllZCB0YXJnZXQgbmFtZXMgZm9yCisgICAgICAgIEdF
TkVSQVRFX0JJTkRJTkdTLiBBZGRlZCBkZXBlbmRlbmN5IGZvciB0aGUgdGFyZ2V0cy4KKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL2dlbmVyYXRlLWJpbmRpbmdzLWFsbC5wbDogQWRkZWQuCisK
IDIwMTYtMTAtMDYgIE5hbiBXYW5nICA8bl93YW5nQGFwcGxlLmNvbT4KIAogICAgICAgICBBWDpb
TWFjXSBVbmFibGUgdG8gZWRpdCB0ZXh0IGlucHV0LCB0ZXh0YXJlYSBmaWVsZHMgaW4gaWZyYW1l
IHVzaW5nIFZPIG5haXZnYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggOGM5Y2I2NjI2MWFi
NzAwNzNmM2FkMWE5ZmI3MTM3YWM2ODRlZjM2Ny4uMTZhM2FhYzAxZDI1YzNmNDlmZjA5OGFiZGE2
MTMzZDRhYTE5YWY3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQK
KysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTM2MjYsNyArMzYyNiw3IEBA
IGxpc3QoQVBQRU5EIFdlYkNvcmVfREVSSVZFRF9TT1VSQ0VTICR7REVSSVZFRF9TT1VSQ0VTX1dF
QkNPUkVfRElSfS9YUGF0aEdyYW1tYXIuCiBzZXQoRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQg
IkxBTkdVQUdFX0pBVkFTQ1JJUFQgJHtGRUFUVVJFX0RFRklORVNfV0lUSF9TUEFDRV9TRVBBUkFU
T1J9IikKIGxpc3QoQVBQRU5EIFdlYkNvcmVUZXN0U3VwcG9ydF9JRExfRklMRVMgJHtERVJJVkVE
X1NPVVJDRVNfV0VCQ09SRV9ESVJ9L0ludGVybmFsU2V0dGluZ3NHZW5lcmF0ZWQuaWRsKQogCi1H
RU5FUkFURV9CSU5ESU5HUygKK0dFTkVSQVRFX0JJTkRJTkdTKFdlYkNvcmVCaW5kaW5ncwogICAg
IE9VVFBVVF9TT1VSQ0UgV2ViQ29yZV9ERVJJVkVEX1NPVVJDRVMKICAgICBJTlBVVF9GSUxFUyAk
e1dlYkNvcmVfSURMX0ZJTEVTfQogICAgIEJBU0VfRElSICR7V0VCQ09SRV9ESVJ9CkBAIC0zNjQy
LDcgKzM2NDIsNyBAQCBHRU5FUkFURV9CSU5ESU5HUygKICAgICAgICAgLS13b3JrZXJHbG9iYWxT
Y29wZUNvbnN0cnVjdG9yc0ZpbGUgJHtXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklM
RX0KICAgICAgICAgLS1kZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUg
JHtERURJQ0FURURXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRX0pCiAKLUdFTkVS
QVRFX0JJTkRJTkdTKAorR0VORVJBVEVfQklORElOR1MoV2ViQ29yZVRlc3RTdXBwb3J0QmluZGlu
Z3MKICAgICBPVVRQVVRfU09VUkNFIFdlYkNvcmVUZXN0U3VwcG9ydF9TT1VSQ0VTCiAgICAgSU5Q
VVRfRklMRVMgJHtXZWJDb3JlVGVzdFN1cHBvcnRfSURMX0ZJTEVTfQogICAgIEJBU0VfRElSICR7
V0VCQ09SRV9ESVJ9CkBAIC0zNjUxLDYgKzM2NTEsOSBAQCBHRU5FUkFURV9CSU5ESU5HUygKICAg
ICBERVNUSU5BVElPTiAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0KICAgICBHRU5FUkFU
T1IgSlMpCiAKKyMgV2ViQ29yZVRlc3RTdXBwb3J0QmluZGluZ3MgbmVlZHMgSW50ZXJuYWxTZXR0
aW5nc0dlbmVyYXRlZC5pZGwKK2FkZF9kZXBlbmRlbmNpZXMoV2ViQ29yZVRlc3RTdXBwb3J0Qmlu
ZGluZ3MgV2ViQ29yZURlcml2ZWRTb3VyY2VzKQorCiAjIFdlYkNvcmUgSlMgQnVpbHRpbnMKIAog
c2V0KFdlYkNvcmVfQlVJTFRJTlNfU09VUkNFUwpAQCAtMzc5Niw3ICszNzk5LDcgQEAgZW5kaWYg
KCkKICMgZmlsZXMgb24gT1MgWC4KIGFkZF9saWJyYXJ5KFdlYkNvcmVEZXJpdmVkU291cmNlcyBT
VEFUSUMgJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU30pCiBzZXRfdGFyZ2V0X3Byb3BlcnRpZXMo
V2ViQ29yZURlcml2ZWRTb3VyY2VzIFBST1BFUlRJRVMgT1VUUFVUX05BTUUgV2ViQ29yZURlcml2
ZWRTb3VyY2VzJHtERUJVR19TVUZGSVh9KQotYWRkX2RlcGVuZGVuY2llcyhXZWJDb3JlRGVyaXZl
ZFNvdXJjZXMgSmF2YVNjcmlwdENvcmUpCithZGRfZGVwZW5kZW5jaWVzKFdlYkNvcmVEZXJpdmVk
U291cmNlcyBKYXZhU2NyaXB0Q29yZSBXZWJDb3JlQmluZGluZ3MpCiBpZiAoTk9UIFdJTjMyKQog
ICAgIGxpc3QoQVBQRU5EIFdlYkNvcmVfTElCUkFSSUVTIFdlYkNvcmVEZXJpdmVkU291cmNlcykK
IGVuZGlmICgpCkBAIC0zODI3LDcgKzM4MzAsNyBAQCBlbmRpZiAoKQogCiBpbmNsdWRlX2RpcmVj
dG9yaWVzKCR7V2ViQ29yZVRlc3RTdXBwb3J0X0lOQ0xVREVfRElSRUNUT1JJRVN9KQogYWRkX2xp
YnJhcnkoV2ViQ29yZVRlc3RTdXBwb3J0ICR7V2ViQ29yZVRlc3RTdXBwb3J0X0xJQlJBUllfVFlQ
RX0gJHtXZWJDb3JlVGVzdFN1cHBvcnRfU09VUkNFU30pCi1hZGRfZGVwZW5kZW5jaWVzKFdlYkNv
cmVUZXN0U3VwcG9ydCBXZWJDb3JlKQorYWRkX2RlcGVuZGVuY2llcyhXZWJDb3JlVGVzdFN1cHBv
cnQgV2ViQ29yZSBXZWJDb3JlVGVzdFN1cHBvcnRCaW5kaW5ncykKIHRhcmdldF9saW5rX2xpYnJh
cmllcyhXZWJDb3JlVGVzdFN1cHBvcnQgJHtXZWJDb3JlVGVzdFN1cHBvcnRfTElCUkFSSUVTfSkK
IAogaWYgKFdlYkNvcmVUZXN0U3VwcG9ydF9PVVRQVVRfTkFNRSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUtYmluZGluZ3MtYWxsLnBsIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9nZW5lcmF0ZS1iaW5kaW5ncy1hbGwucGwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYmMwOWNjY2I5MGNhZDAzNjU5OWQ2ODZhMzkzN2RmYjgwN2ZlZDNkMQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUtYmlu
ZGluZ3MtYWxsLnBsCkBAIC0wLDAgKzEsMTk5IEBACisjIS91c3IvYmluL3BlcmwgLXcKKyMKKyMg
Q29weXJpZ2h0IChDKSAyMDE2IFNvbnkgSW50ZXJhY3RpdmUgRW50ZXJ0YWlubWVudCBJbmMuCisj
CisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisjIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyMgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMK
KyMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworIyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyMgQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisjCisKK3VzZSBzdHJpY3Q7
Cit1c2UgRmluZEJpbjsKK3VzZSBsaWIgJEZpbmRCaW46OkJpbjsKKwordXNlIEZpbGU6OkJhc2Vu
YW1lOwordXNlIEZpbGU6OlNwZWM7Cit1c2UgRmlsZTo6RmluZDsKK3VzZSBHZXRvcHQ6Okxvbmc7
Cit1c2UgdGhyZWFkczsKK3VzZSB0aHJlYWRzOjpzaGFyZWQ7Cit1c2UgVGhyZWFkOjpRdWV1ZTsK
KworbXkgJHBlcmwgPSAkXlg7CitteSAkc2NyaXB0RGlyID0gJEZpbmRCaW46OkJpbjsKK215IEBp
ZGxEaXJlY3RvcmllczsKK215ICRvdXRwdXREaXJlY3Rvcnk7CitteSAkaWRsRmlsZXNMaXN0Owor
bXkgJGdlbmVyYXRvcjsKK215IEBnZW5lcmF0b3JEZXBlbmRlbmN5OworbXkgJGRlZmluZXM7Citt
eSAkcHJlcHJvY2Vzc29yOworbXkgJHN1cHBsZW1lbnRhbERlcGVuZGVuY3lGaWxlOworbXkgQHBw
RXh0cmFPdXRwdXQ7CitteSBAcHBFeHRyYUFyZ3M7CitteSAkbnVtT2ZKb2JzID0gMTsKK215ICRp
ZGxBdHRyaWJ1dGVzRmlsZTsKKworR2V0T3B0aW9ucygnaW5jbHVkZT1zQCcgPT4gXEBpZGxEaXJl
Y3RvcmllcywKKyAgICAgICAgICAgJ291dHB1dERpcj1zJyA9PiBcJG91dHB1dERpcmVjdG9yeSwK
KyAgICAgICAgICAgJ2lkbEZpbGVzTGlzdD1zJyA9PiBcJGlkbEZpbGVzTGlzdCwKKyAgICAgICAg
ICAgJ2dlbmVyYXRvcj1zJyA9PiBcJGdlbmVyYXRvciwKKyAgICAgICAgICAgJ2dlbmVyYXRvckRl
cGVuZGVuY3k9c0AnID0+IFxAZ2VuZXJhdG9yRGVwZW5kZW5jeSwKKyAgICAgICAgICAgJ2RlZmlu
ZXM9cycgPT4gXCRkZWZpbmVzLAorICAgICAgICAgICAncHJlcHJvY2Vzc29yPXMnID0+IFwkcHJl
cHJvY2Vzc29yLAorICAgICAgICAgICAnc3VwcGxlbWVudGFsRGVwZW5kZW5jeUZpbGU9cycgPT4g
XCRzdXBwbGVtZW50YWxEZXBlbmRlbmN5RmlsZSwKKyAgICAgICAgICAgJ3BwRXh0cmFPdXRwdXQ9
c0AnID0+IFxAcHBFeHRyYU91dHB1dCwKKyAgICAgICAgICAgJ3BwRXh0cmFBcmdzPXNAJyA9PiBc
QHBwRXh0cmFBcmdzLAorICAgICAgICAgICAnaWRsQXR0cmlidXRlc0ZpbGU9cycgPT4gXCRpZGxB
dHRyaWJ1dGVzRmlsZSwKKyAgICAgICAgICAgJ251bU9mSm9icz1pJyA9PiBcJG51bU9mSm9icyk7
CisKK215IEBpZGxGaWxlczsKK29wZW4obXkgJGZoLCAnPCcsICRpZGxGaWxlc0xpc3QpIG9yIGRp
ZSAiQ2Fubm90IG9wZW4gJGlkbEZpbGVzTGlzdCI7CitAaWRsRmlsZXMgPSA8JGZoPjsKK2Nsb3Nl
KCRmaCkgb3IgZGllOworcy9ccj9cbj8kLy8gZm9yIEBpZGxGaWxlczsKKworbXkgJXN1cHBsZW1l
bnRlZElkbEZpbGVzOworaWYgKCRzdXBwbGVtZW50YWxEZXBlbmRlbmN5RmlsZSkgeworICAgIG15
IEBvdXRwdXQgPSAoJHN1cHBsZW1lbnRhbERlcGVuZGVuY3lGaWxlLCBAcHBFeHRyYU91dHB1dCk7
CisgICAgbXkgQGRlcHMgPSAoQGlkbEZpbGVzLCBAZ2VuZXJhdG9yRGVwZW5kZW5jeSk7CisgICAg
aWYgKG5lZWRzVXBkYXRlKFxAb3V0cHV0LCBcQGRlcHMpKSB7CisgICAgICAgIG15IEBhcmdzID0g
KCctLWRlZmluZXMnLCAkZGVmaW5lcywKKyAgICAgICAgICAgICAgICAgICAgJy0taWRsRmlsZXNM
aXN0JywgJGlkbEZpbGVzTGlzdCwKKyAgICAgICAgICAgICAgICAgICAgJy0tc3VwcGxlbWVudGFs
RGVwZW5kZW5jeUZpbGUnLCAkc3VwcGxlbWVudGFsRGVwZW5kZW5jeUZpbGUsCisgICAgICAgICAg
ICAgICAgICAgIEBwcEV4dHJhQXJncyk7CisgICAgICAgIHByaW50KCJQcmVwcm9jZXNzIElETFxu
Iik7CisgICAgICAgIHN5c3RlbSgkcGVybCwgIi1JJHNjcmlwdERpciIsICIkc2NyaXB0RGlyL3By
ZXByb2Nlc3MtaWRscy5wbCIsIEBhcmdzKSA9PSAwIG9yIGRpZTsKKyAgICB9CisgICAgb3Blbiht
eSAkZmgsICc8JywgJHN1cHBsZW1lbnRhbERlcGVuZGVuY3lGaWxlKSBvciBkaWUgIkNhbm5vdCBv
cGVuICRzdXBwbGVtZW50YWxEZXBlbmRlbmN5RmlsZSI7CisgICAgd2hpbGUgKDwkZmg+KSB7Cisg
ICAgICAgIG15ICgkaWRsRmlsZSwgQGZvbGxvd2luZ0lkbEZpbGVzKSA9IHNwbGl0KC9ccysvKTsK
KyAgICAgICAgJHN1cHBsZW1lbnRlZElkbEZpbGVzeyRpZGxGaWxlfSA9IFxAZm9sbG93aW5nSWRs
RmlsZXM7CisgICAgfQorICAgIGNsb3NlKCRmaCkgb3IgZGllOworfQorCitteSBAYXJncyA9ICgn
LS1kZWZpbmVzJywgJGRlZmluZXMsCisgICAgICAgICAgICAnLS1nZW5lcmF0b3InLCAkZ2VuZXJh
dG9yLAorICAgICAgICAgICAgJy0tb3V0cHV0RGlyJywgJG91dHB1dERpcmVjdG9yeSwKKyAgICAg
ICAgICAgICctLXByZXByb2Nlc3NvcicsIHF1b3RlQ29tbWFuZCgkcHJlcHJvY2Vzc29yKSwKKyAg
ICAgICAgICAgICctLWlkbEF0dHJpYnV0ZXNGaWxlJywgJGlkbEF0dHJpYnV0ZXNGaWxlLAorICAg
ICAgICAgICAgJy0td3JpdGUtZGVwZW5kZW5jaWVzJyk7CitwdXNoIEBhcmdzLCBtYXAgeyAoJy0t
aW5jbHVkZScsICRfKSB9IEBpZGxEaXJlY3RvcmllczsKK3B1c2ggQGFyZ3MsICctLXN1cHBsZW1l
bnRhbERlcGVuZGVuY3lGaWxlJywgJHN1cHBsZW1lbnRhbERlcGVuZGVuY3lGaWxlIGlmICRzdXBw
bGVtZW50YWxEZXBlbmRlbmN5RmlsZTsKKworbXkgJWRpcmVjdG9yeUNhY2hlOworYnVpbGREaXJl
Y3RvcnlDYWNoZSgpOworCitteSAkcXVldWUgPSBUaHJlYWQ6OlF1ZXVlLT5uZXcoQGlkbEZpbGVz
KTsKK215ICRhYm9ydCA6c2hhcmVkID0gMDsKKworbXkgQHRocmVhZFBvb2wgPSBtYXAgeyB0aHJl
YWRzLT5jcmVhdGUoXCZ3b3JrZXIpIH0gKDEgLi4gJG51bU9mSm9icyk7CiskXy0+am9pbiBmb3Ig
QHRocmVhZFBvb2w7CitleGl0ICRhYm9ydDsKKworc3ViIG5lZWRzVXBkYXRlCit7CisgICAgbXkg
KCRvYmplY3RzLCAkZGVwZW5kcykgPSBAXzsKKyAgICBteSAkb2xkZXN0T2JqZWN0OworICAgIG15
ICRvbGRlc3RPYmplY3RUaW1lOworICAgIGZvciAoQCRvYmplY3RzKSB7CisgICAgICAgIHJldHVy
biAxIGlmICEtZjsKKyAgICAgICAgbXkgJG0gPSBtdGltZSgkXyk7CisgICAgICAgIGlmICghZGVm
aW5lZCAkb2xkZXN0T2JqZWN0VGltZSB8fCAkbSA8ICRvbGRlc3RPYmplY3RUaW1lKSB7CisgICAg
ICAgICAgICAkb2xkZXN0T2JqZWN0ID0gJF87CisgICAgICAgICAgICAkb2xkZXN0T2JqZWN0VGlt
ZSA9ICRtOworICAgICAgICB9CisgICAgfQorICAgIGZvciAoQCRkZXBlbmRzKSB7CisgICAgICAg
IGRpZSAiTWlzc2luZyByZXF1aXJlZCBkZXBlbmRlbmN5OiAkXyIgaWYgIS1mOworICAgICAgICBt
eSAkbSA9IG10aW1lKCRfKTsKKyAgICAgICAgaWYgKCRvbGRlc3RPYmplY3RUaW1lIDwgJG0pIHsK
KyAgICAgICAgICAgICMgcHJpbnQgIiRfIGlzIG5ld2VyIHRoYW4gJG9sZGVzdE9iamVjdFxuIjsK
KyAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiAwOwor
fQorCitzdWIgbXRpbWUKK3sKKyAgICBteSAoJGZpbGUpID0gQF87CisgICAgcmV0dXJuIChzdGF0
ICRmaWxlKVs5XTsKK30KKworc3ViIHdvcmtlciB7CisgICAgd2hpbGUgKG15ICRmaWxlID0gJHF1
ZXVlLT5kZXF1ZXVlX25iKCkpIHsKKyAgICAgICAgbGFzdCBpZiAkYWJvcnQ7CisgICAgICAgIGV2
YWwgeworICAgICAgICAgICAgbXkgKCRmaWxlbmFtZSwgJGRpcnMsICRzdWZmaXgpID0gZmlsZXBh
cnNlKCRmaWxlLCAnLmlkbCcpOworICAgICAgICAgICAgbXkgJHNvdXJjZUZpbGUgPSBGaWxlOjpT
cGVjLT5jYXRmaWxlKCRvdXRwdXREaXJlY3RvcnksICJKUyRmaWxlbmFtZS5jcHAiKTsKKyAgICAg
ICAgICAgIG15ICRoZWFkZXJGaWxlID0gRmlsZTo6U3BlYy0+Y2F0ZmlsZSgkb3V0cHV0RGlyZWN0
b3J5LCAiSlMkZmlsZW5hbWUuaCIpOworICAgICAgICAgICAgbXkgJGRlcEZpbGUgPSBGaWxlOjpT
cGVjLT5jYXRmaWxlKCRvdXRwdXREaXJlY3RvcnksICJKUyRmaWxlbmFtZS5kZXAiKTsKKyAgICAg
ICAgICAgIG15IEBvdXRwdXQgPSAoJHNvdXJjZUZpbGUsICRoZWFkZXJGaWxlKTsKKyAgICAgICAg
ICAgIG15IEBkZXBzID0gKCRmaWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgJGlkbEF0dHJp
YnV0ZXNGaWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgQGdlbmVyYXRvckRlcGVuZGVuY3ks
CisgICAgICAgICAgICAgICAgICAgICAgICBAeyRzdXBwbGVtZW50ZWRJZGxGaWxlc3skZmlsZX0g
b3IgW119LAorICAgICAgICAgICAgICAgICAgICAgICAgaW1wbGljaXREZXBlbmRlbmNpZXMoJGRl
cEZpbGUpKTsKKyAgICAgICAgICAgIGlmIChuZWVkc1VwZGF0ZShcQG91dHB1dCwgXEBkZXBzKSkg
eworICAgICAgICAgICAgICAgIHByaW50ICIkZmlsZW5hbWUkc3VmZml4XG4iOworICAgICAgICAg
ICAgICAgIHN5c3RlbSgkcGVybCwgIi1JLiIsICItSSRzY3JpcHREaXIiLCAiJHNjcmlwdERpci9n
ZW5lcmF0ZS1iaW5kaW5ncy5wbCIsIEBhcmdzLCAkZmlsZSkgPT0gMCBvciBkaWU7CisgICAgICAg
ICAgICB9CisgICAgICAgIH07CisgICAgICAgIGlmICgkQCkgeworICAgICAgICAgICAgJGFib3J0
ID0gMTsKKyAgICAgICAgICAgIGRpZTsKKyAgICAgICAgfQorICAgIH0KK30KKworc3ViIGJ1aWxk
RGlyZWN0b3J5Q2FjaGUKK3sKKyAgICBteSAkd2FudGVkID0gc3ViIHsKKyAgICAgICAgJGRpcmVj
dG9yeUNhY2hleyRffSA9ICRGaWxlOjpGaW5kOjpuYW1lOworICAgICAgICAkRmlsZTo6RmluZDo6
cHJ1bmUgPSAxIHVubGVzcyB+L1wuLzsKKyAgICB9OworICAgIGZpbmQoJHdhbnRlZCwgQGlkbERp
cmVjdG9yaWVzKTsKK30KKworc3ViIGltcGxpY2l0RGVwZW5kZW5jaWVzCit7CisgICAgbXkgKCRk
ZXBGaWxlKSA9IEBfOworICAgIHJldHVybiAoKSB1bmxlc3MgLWYgJGRlcEZpbGU7CisgICAgb3Bl
bihteSAkZmgsICc8JywgJGRlcEZpbGUpIG9yIGRpZSAiQ2Fubm90IG9wZW4gJGRlcEZpbGUiOwor
ICAgIG15ICRmaXJzdExpbmUgPSA8JGZoPjsKKyAgICBjbG9zZSgkZmgpIG9yIGRpZTsKKyAgICBt
eSAodW5kZWYsICRkZXBzKSA9IHNwbGl0KC8gOiAvLCAkZmlyc3RMaW5lKTsKKyAgICBteSBAZGVw
cyA9IHNwbGl0KC9ccysvLCAkZGVwcyk7CisgICAgcmV0dXJuIG1hcCB7ICRkaXJlY3RvcnlDYWNo
ZXskX30gb3IgKCkgfSBAZGVwczsKK30KKworc3ViIHF1b3RlQ29tbWFuZAoreworICAgIHVzZSBD
b25maWc7CisgICAgaWYgKCRDb25maWc6OkNvbmZpZ3tvc25hbWV9IGVxICdNU1dpbjMyJykgewor
ICAgICAgICByZXR1cm4gbWFwIHsKKyAgICAgICAgICAgIHMvXFwvXFxcXC9nOworICAgICAgICAg
ICAgcy9cIi9cXFwiL2c7CisgICAgICAgICAgICAiXCIkX1wiIjsKKyAgICAgICAgfSBAXzsKKyAg
ICB9CisgICAgcmV0dXJuIEBfOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL1dlYktpdE1h
Y3Jvcy5jbWFrZSBiL1NvdXJjZS9jbWFrZS9XZWJLaXRNYWNyb3MuY21ha2UKaW5kZXggMDI1NTY5
N2VkYjk2ZGMzNDRlOGIzZmFiM2YwNmVlODlhNTI2MmFhZC4uYzkwYTExZjAzOTA4Y2QzZDQ5MTBj
ZDIyYTUzYjY2YzBlOWIzNDUyYiAxMDA2NDQKLS0tIGEvU291cmNlL2NtYWtlL1dlYktpdE1hY3Jv
cy5jbWFrZQorKysgYi9Tb3VyY2UvY21ha2UvV2ViS2l0TWFjcm9zLmNtYWtlCkBAIC0xLDQgKzEs
NiBAQAogaW5jbHVkZShDTWFrZVBhcnNlQXJndW1lbnRzKQoraW5jbHVkZShQcm9jZXNzb3JDb3Vu
dCkKK1Byb2Nlc3NvckNvdW50KFBST0NFU1NPUl9DT1VOVCkKIAogbWFjcm8oV0VCS0lUX0lOQ0xV
REVfQ09ORklHX0ZJTEVTX0lGX0VYSVNUUykKICAgICBzZXQoX2ZpbGUgJHtDTUFLRV9DVVJSRU5U
X1NPVVJDRV9ESVJ9L1BsYXRmb3JtJHtQT1JUfS5jbWFrZSkKQEAgLTQzLDcgKzQ1LDggQEAgbWFj
cm8oQUREX1BSRUNPTVBJTEVEX0hFQURFUiBfaGVhZGVyIF9jcHAgX3NvdXJjZSkKICAgICAjRklY
TUU6IEFkZCBzdXBwb3J0IGZvciBYY29kZS4KIGVuZG1hY3JvKCkKIAotIyBIZWxwZXIgbWFjcm8g
d2hpY2ggd3JhcHMgcHJlcHJvY2Vzcy1pZGxzLnBsIGFuZCBnZW5lcmF0ZS1iaW5kaW5ncy5wbCBz
Y3JpcHRzLgorIyBIZWxwZXIgbWFjcm8gd2hpY2ggd3JhcHMgZ2VuZXJhdGUtYmluZGluZ3MtYWxs
LnBsIHNjcmlwdC4KKyMgICB0YXJnZXQgaXMgYSBuZXcgdGFyZ2V0IG5hbWUgdG8gYmUgYWRkZWQK
ICMgICBPVVRQVVRfU09VUkNFIGlzIGEgbGlzdCBuYW1lIHdoaWNoIHdpbGwgY29udGFpbiBnZW5l
cmF0ZWQgc291cmNlcy4oZWcuIFdlYkNvcmVfU09VUkNFUykKICMgICBJTlBVVF9GSUxFUyBhcmUg
SURMIGZpbGVzIHRvIGdlbmVyYXRlLgogIyAgIEJBU0VfRElSIGlzIGJhc2UgZGlyZWN0b3J5IHdo
ZXJlIHNjcmlwdCBpcyBjYWxsZWQuCkBAIC01NCwxNSArNTcsMTQgQEAgZW5kbWFjcm8oKQogIyAg
IFNVUFBMRU1FTlRBTF9ERVBGSUxFIGlzIGEgdmFsdWUgb2YgLS1zdXBwbGVtZW50YWxEZXBlbmRl
bmN5RmlsZS4gKG9wdGlvbmFsKQogIyAgIFBQX0VYVFJBX09VVFBVVCBpcyBleHRyYSBvdXRwdXRz
IG9mIHByZXByb2Nlc3MtaWRscy5wbC4gKG9wdGlvbmFsKQogIyAgIFBQX0VYVFJBX0FSR1MgaXMg
ZXh0cmEgYXJndW1lbnRzIGZvciBwcmVwcm9jZXNzLWlkbHMucGwuIChvcHRpb25hbCkKLWZ1bmN0
aW9uKEdFTkVSQVRFX0JJTkRJTkdTKQorZnVuY3Rpb24oR0VORVJBVEVfQklORElOR1MgdGFyZ2V0
KQogICAgIHNldChvcHRpb25zKQogICAgIHNldChvbmVWYWx1ZUFyZ3MgT1VUUFVUX1NPVVJDRSBC
QVNFX0RJUiBGRUFUVVJFUyBERVNUSU5BVElPTiBHRU5FUkFUT1IgU1VQUExFTUVOVEFMX0RFUEZJ
TEUpCiAgICAgc2V0KG11bHRpVmFsdWVBcmdzIElOUFVUX0ZJTEVTIElETF9JTkNMVURFUyBQUF9F
WFRSQV9PVVRQVVQgUFBfRVhUUkFfQVJHUykKICAgICBjbWFrZV9wYXJzZV9hcmd1bWVudHMoYXJn
ICIke29wdGlvbnN9IiAiJHtvbmVWYWx1ZUFyZ3N9IiAiJHttdWx0aVZhbHVlQXJnc30iICR7QVJH
Tn0pCi0gICAgc2V0KGJpbmRpbmdfZ2VuZXJhdG9yICR7V0VCQ09SRV9ESVJ9L2JpbmRpbmdzL3Nj
cmlwdHMvZ2VuZXJhdGUtYmluZGluZ3MucGwpCisgICAgc2V0KGJpbmRpbmdfZ2VuZXJhdG9yICR7
V0VCQ09SRV9ESVJ9L2JpbmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUtYmluZGluZ3MtYWxsLnBsKQog
ICAgIHNldChpZGxfYXR0cmlidXRlc19maWxlICR7V0VCQ09SRV9ESVJ9L2JpbmRpbmdzL3Njcmlw
dHMvSURMQXR0cmlidXRlcy50eHQpCi0gICAgc2V0KGlkICR7YXJnX09VVFBVVF9TT1VSQ0V9KQot
ICAgIHNldChpZGxfZmlsZXNfbGlzdCAke0NNQUtFX0NVUlJFTlRfQklOQVJZX0RJUn0vaWRsX2Zp
bGVzXyR7aWR9LnRtcCkKKyAgICBzZXQoaWRsX2ZpbGVzX2xpc3QgJHtDTUFLRV9DVVJSRU5UX0JJ
TkFSWV9ESVJ9L2lkbF9maWxlc18ke3RhcmdldH0udG1wKQogICAgIHNldChfc3VwcGxlbWVudGFs
X2RlcGVuZGVuY3kpCiAKICAgICBzZXQoY29udGVudCkKQEAgLTc0LDU1ICs3Niw2OSBAQCBmdW5j
dGlvbihHRU5FUkFURV9CSU5ESU5HUykKICAgICBlbmRmb3JlYWNoICgpCiAgICAgZmlsZShXUklU
RSAke2lkbF9maWxlc19saXN0fSAke2NvbnRlbnR9KQogCisgICAgc2V0KGFyZ3MKKyAgICAgICAg
LS1kZWZpbmVzICR7YXJnX0ZFQVRVUkVTfQorICAgICAgICAtLWdlbmVyYXRvciAke2FyZ19HRU5F
UkFUT1J9CisgICAgICAgIC0tb3V0cHV0RGlyICR7YXJnX0RFU1RJTkFUSU9OfQorICAgICAgICAt
LWlkbEZpbGVzTGlzdCAke2lkbF9maWxlc19saXN0fQorICAgICAgICAtLXByZXByb2Nlc3NvciAk
e0NPREVfR0VORVJBVE9SX1BSRVBST0NFU1NPUn0KKyAgICAgICAgLS1pZGxBdHRyaWJ1dGVzRmls
ZSAke2lkbF9hdHRyaWJ1dGVzX2ZpbGV9KQogICAgIGlmIChhcmdfU1VQUExFTUVOVEFMX0RFUEZJ
TEUpCi0gICAgICAgIHNldChfc3VwcGxlbWVudGFsX2RlcGVuZGVuY3kgLS1zdXBwbGVtZW50YWxE
ZXBlbmRlbmN5RmlsZSAke2FyZ19TVVBQTEVNRU5UQUxfREVQRklMRX0pCi0KLSAgICAgICAgYWRk
X2N1c3RvbV9jb21tYW5kKAotICAgICAgICAgICAgT1VUUFVUICR7YXJnX1NVUFBMRU1FTlRBTF9E
RVBGSUxFfSAke2FyZ19QUF9FWFRSQV9PVVRQVVR9Ci0gICAgICAgICAgICBERVBFTkRTICR7V0VC
Q09SRV9ESVJ9L2JpbmRpbmdzL3NjcmlwdHMvcHJlcHJvY2Vzcy1pZGxzLnBsICR7YXJnX0lOUFVU
X0ZJTEVTfQotICAgICAgICAgICAgQ09NTUFORCAke1BFUkxfRVhFQ1VUQUJMRX0gLUkke1dFQkNP
UkVfRElSfS9iaW5kaW5ncy9zY3JpcHRzICR7V0VCQ09SRV9ESVJ9L2JpbmRpbmdzL3NjcmlwdHMv
cHJlcHJvY2Vzcy1pZGxzLnBsIC0tZGVmaW5lcyAke2FyZ19GRUFUVVJFU30gLS1pZGxGaWxlc0xp
c3QgJHtpZGxfZmlsZXNfbGlzdH0gLS1zdXBwbGVtZW50YWxEZXBlbmRlbmN5RmlsZSAke2FyZ19T
VVBQTEVNRU5UQUxfREVQRklMRX0gJHthcmdfUFBfRVhUUkFfQVJHU30KLSAgICAgICAgICAgIFZF
UkJBVElNKQorICAgICAgICBsaXN0KEFQUEVORCBhcmdzIC0tc3VwcGxlbWVudGFsRGVwZW5kZW5j
eUZpbGUgJHthcmdfU1VQUExFTUVOVEFMX0RFUEZJTEV9KQogICAgIGVuZGlmICgpCi0KLSAgICBz
ZXQoaWRsX2luY2x1ZGVzKQotICAgIGZvcmVhY2ggKGRpciAke2FyZ19JRExfSU5DTFVERVN9KQot
ICAgICAgICBpZiAoSVNfQUJTT0xVVEUgJHtkaXJ9KQotICAgICAgICAgICAgbGlzdChBUFBFTkQg
aWRsX2luY2x1ZGVzIC0taW5jbHVkZT0ke2Rpcn0pCisgICAgaWYgKFBST0NFU1NPUl9DT1VOVCkK
KyAgICAgICAgbGlzdChBUFBFTkQgYXJncyAtLW51bU9mSm9icyAke1BST0NFU1NPUl9DT1VOVH0p
CisgICAgZW5kaWYgKCkKKyAgICBmb3JlYWNoIChpIElOIExJU1RTIGFyZ19JRExfSU5DTFVERVMp
CisgICAgICAgIGlmIChJU19BQlNPTFVURSAke2l9KQorICAgICAgICAgICAgbGlzdChBUFBFTkQg
YXJncyAtLWluY2x1ZGUgJHtpfSkKICAgICAgICAgZWxzZSAoKQotICAgICAgICAgICAgbGlzdChB
UFBFTkQgaWRsX2luY2x1ZGVzIC0taW5jbHVkZT0ke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0v
JHtkaXJ9KQorICAgICAgICAgICAgbGlzdChBUFBFTkQgYXJncyAtLWluY2x1ZGUgJHtDTUFLRV9D
VVJSRU5UX1NPVVJDRV9ESVJ9LyR7aX0pCiAgICAgICAgIGVuZGlmICgpCiAgICAgZW5kZm9yZWFj
aCAoKQorICAgIGZvcmVhY2ggKGkgSU4gTElTVFMgYXJnX1BQX0VYVFJBX09VVFBVVCkKKyAgICAg
ICAgbGlzdChBUFBFTkQgYXJncyAtLXBwRXh0cmFPdXRwdXQgJHtpfSkKKyAgICBlbmRmb3JlYWNo
ICgpCisgICAgZm9yZWFjaCAoaSBJTiBMSVNUUyBhcmdfUFBfRVhUUkFfQVJHUykKKyAgICAgICAg
bGlzdChBUFBFTkQgYXJncyAtLXBwRXh0cmFBcmdzICR7aX0pCisgICAgZW5kZm9yZWFjaCAoKQog
CiAgICAgc2V0KGNvbW1vbl9nZW5lcmF0b3JfZGVwZW5kZW5jaWVzCi0gICAgICAgICR7YmluZGlu
Z19nZW5lcmF0b3J9Ci0gICAgICAgICR7V0VCQ09SRV9ESVJ9L2JpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvci5wbQorICAgICAgICAke1dFQkNPUkVfRElSfS9iaW5kaW5ncy9zY3JpcHRzL2dl
bmVyYXRlLWJpbmRpbmdzLnBsCiAgICAgICAgICR7U0NSSVBUU19CSU5ESU5HU30KLSAgICAgICAg
JHthcmdfU1VQUExFTUVOVEFMX0RFUEZJTEV9Ci0gICAgICAgICR7aWRsX2F0dHJpYnV0ZXNfZmls
ZX0KICAgICApCi0gICAgbGlzdChBUFBFTkQgY29tbW9uX2dlbmVyYXRvcl9kZXBlbmRlbmNpZXMg
JHthcmdfUFBfRVhUUkFfT1VUUFVUfSkKLQogICAgIGlmIChFWElTVFMgJHtXRUJDT1JFX0RJUn0v
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yJHthcmdfR0VORVJBVE9SfS5wbSkKICAgICAg
ICAgbGlzdChBUFBFTkQgY29tbW9uX2dlbmVyYXRvcl9kZXBlbmRlbmNpZXMgJHtXRUJDT1JFX0RJ
Un0vYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yJHthcmdfR0VORVJBVE9SfS5wbSkKICAg
ICBlbmRpZiAoKQogICAgIGlmIChFWElTVFMgJHthcmdfQkFTRV9ESVJ9L0NvZGVHZW5lcmF0b3Ik
e2FyZ19HRU5FUkFUT1J9LnBtKQogICAgICAgICBsaXN0KEFQUEVORCBjb21tb25fZ2VuZXJhdG9y
X2RlcGVuZGVuY2llcyAke2FyZ19CQVNFX0RJUn0vQ29kZUdlbmVyYXRvciR7YXJnX0dFTkVSQVRP
Un0ucG0pCiAgICAgZW5kaWYgKCkKKyAgICBmb3JlYWNoIChpIElOIExJU1RTIGNvbW1vbl9nZW5l
cmF0b3JfZGVwZW5kZW5jaWVzKQorICAgICAgICBsaXN0KEFQUEVORCBhcmdzIC0tZ2VuZXJhdG9y
RGVwZW5kZW5jeSAke2l9KQorICAgIGVuZGZvcmVhY2ggKCkKIAogICAgIHNldChnZW5fc291cmNl
cykKKyAgICBzZXQoZ2VuX2hlYWRlcnMpCiAgICAgZm9yZWFjaCAoX2ZpbGUgJHthcmdfSU5QVVRf
RklMRVN9KQogICAgICAgICBnZXRfZmlsZW5hbWVfY29tcG9uZW50KF9uYW1lICR7X2ZpbGV9IE5B
TUVfV0UpCi0KLSAgICAgICAgYWRkX2N1c3RvbV9jb21tYW5kKAotICAgICAgICAgICAgT1VUUFVU
ICR7YXJnX0RFU1RJTkFUSU9OfS9KUyR7X25hbWV9LmNwcCAke2FyZ19ERVNUSU5BVElPTn0vSlMk
e19uYW1lfS5oCi0gICAgICAgICAgICBNQUlOX0RFUEVOREVOQ1kgJHtfZmlsZX0KLSAgICAgICAg
ICAgIERFUEVORFMgJHtjb21tb25fZ2VuZXJhdG9yX2RlcGVuZGVuY2llc30KLSAgICAgICAgICAg
IENPTU1BTkQgJHtQRVJMX0VYRUNVVEFCTEV9IC1JJHtXRUJDT1JFX0RJUn0vYmluZGluZ3Mvc2Ny
aXB0cyAtSSR7YXJnX0JBU0VfRElSfSAke2JpbmRpbmdfZ2VuZXJhdG9yfSAtLWRlZmluZXMgJHth
cmdfRkVBVFVSRVN9IC0tZ2VuZXJhdG9yICR7YXJnX0dFTkVSQVRPUn0gJHtpZGxfaW5jbHVkZXN9
IC0tb3V0cHV0RGlyICR7YXJnX0RFU1RJTkFUSU9OfSAtLXByZXByb2Nlc3NvciAke0NPREVfR0VO
RVJBVE9SX1BSRVBST0NFU1NPUn0gLS1pZGxBdHRyaWJ1dGVzRmlsZSAke2lkbF9hdHRyaWJ1dGVz
X2ZpbGV9ICR7X3N1cHBsZW1lbnRhbF9kZXBlbmRlbmN5fSAke19maWxlfQotICAgICAgICAgICAg
V09SS0lOR19ESVJFQ1RPUlkgJHthcmdfQkFTRV9ESVJ9Ci0gICAgICAgICAgICBWRVJCQVRJTSkK
ICAgICAgICAgbGlzdChBUFBFTkQgZ2VuX3NvdXJjZXMgJHthcmdfREVTVElOQVRJT059L0pTJHtf
bmFtZX0uY3BwKQorICAgICAgICBsaXN0KEFQUEVORCBnZW5faGVhZGVycyAke2FyZ19ERVNUSU5B
VElPTn0vSlMke19uYW1lfS5oKQogICAgIGVuZGZvcmVhY2ggKCkKICAgICBzZXQoJHthcmdfT1VU
UFVUX1NPVVJDRX0gJHske2FyZ19PVVRQVVRfU09VUkNFfX0gJHtnZW5fc291cmNlc30gUEFSRU5U
X1NDT1BFKQorICAgIHNldChhY3RfYXJncykKKyAgICBpZiAoJHtDTUFLRV9WRVJTSU9OfSBWRVJT
SU9OX0xFU1MgMy4yKQorICAgICAgICBzZXRfc291cmNlX2ZpbGVzX3Byb3BlcnRpZXMoJHtnZW5f
c291cmNlc30gJHtnZW5faGVhZGVyc30gUFJPUEVSVElFUyBHRU5FUkFURUQgMSkKKyAgICBlbHNl
ICgpCisgICAgICAgIGxpc3QoQVBQRU5EIGFjdF9hcmdzCisgICAgICAgICAgICBCWVBST0RVQ1RT
ICR7Z2VuX3NvdXJjZXN9ICR7Z2VuX2hlYWRlcnN9CisgICAgICAgICAgICBVU0VTX1RFUk1JTkFM
CisgICAgICAgICkKKyAgICBlbmRpZiAoKQorICAgIGFkZF9jdXN0b21fdGFyZ2V0KCR7dGFyZ2V0
fQorICAgICAgICBDT01NQU5EICR7UEVSTF9FWEVDVVRBQkxFfSAke2JpbmRpbmdfZ2VuZXJhdG9y
fSAke2FyZ3N9CisgICAgICAgIFdPUktJTkdfRElSRUNUT1JZICR7YXJnX0JBU0VfRElSfQorICAg
ICAgICBDT01NRU5UICJHZW5lcmF0ZSBiaW5kaW5ncyAoJHt0YXJnZXR9KSIKKyAgICAgICAgVkVS
QkFUSU0gJHthY3RfYXJnc30pCiBlbmRmdW5jdGlvbigpCiAKIG1hY3JvKEdFTkVSQVRFX0ZPTlRf
TkFNRVMgX2luZmlsZSkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5n
ZUxvZwppbmRleCBmYjg4MmFkMzE1ODAyMDA1NDQxNzI3MTRmNmJmNzJjZDVjODIwZmVhLi41NTI0
MzYxY2Q5NGNlMGYwMWFiNzViNzAwNmY4ZWRjZjJiNDIyMzNjIDEwMDY0NAotLS0gYS9Ub29scy9D
aGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTYtMTAt
MDYgIEZ1amlpIEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CisKKyAgICAgICAg
W0NNYWtlXSBDTWFrZSBkb2VzIG5vdCBzdXBwb3J0IHRoZSBkZXAgZmlsZXMgZm9yIGltcGxpY2l0
IGRlcGVuZGVuY3kKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE2MTQzMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIENyZWF0ZWQgYSBQZXJsIHNjcmlwdCB0byBnZW5lcmF0ZSBhbGwgSURMIGJpbmRpbmdzIGZv
ciBDTWFrZS4KKyAgICAgICAgVGhpcyBzY3JpcHQgY2FuIHJlZ2VuZXJhdGUgb3V0ZGF0ZWQgYmlu
ZGluZ3MgYnkgYmFzZWQgb24gdGhlCisgICAgICAgIHN1cHBsZW1lbnRhbCBkZXBlbmRlbmN5IGFu
ZCBkZXAgZmlsZXMgY3JlYXRlZCBieQorICAgICAgICAnLS13cml0ZS1kZXBlbmRlbmNpZXMnIHN3
aXRjaCBvZiBnZW5lcmF0ZS1iaW5kaW5ncy5wbC4KKworICAgICAgICBhZGRfY3VzdG9tX3Rhcmdl
dCBpcyB1c2VkIHRvIGludm9rZSB0aGUgc2NyaXB0IGluc3RlYWQgb2YKKyAgICAgICAgYWRkX2N1
c3RvbV9jb21tYW5kIGJlY2F1c2UgTmluamEgZGVsZXRlcyBhbGwgb3V0cHV0IGZpbGVzIGJlZm9y
ZQorICAgICAgICBleGVjdXRpbmcgdGhlIGNvbW1hbmQgaW4gY2FzZSBvZiBhZGRfY3VzdG9tX2Nv
bW1hbmQuCisKKyAgICAgICAgVVNFU19URVJNSU5BTCBvcHRpb24gb2YgYWRkX2N1c3RvbV90YXJn
ZXQgaGFzIHR3byBlZmZlY3RzOgorICAgICAgICAxKSBOb3QgYnVmZmVyaW5nIG91dHB1dCBvZiB0
aGUgY29tbWFuZAorICAgICAgICAyKSBJbnZva2luZyB0aGUgY29tbWFuZCBpbiB0aGUgc3BlY2lh
bCBOaW5qYSBwb29sIHdoaWNoIGluaGliaXRzIHBhcmFsbGVsIGJ1aWxkCisgICAgICAgIE9uZSBu
ZWVkcyB0byB1c2UgQ01ha2UgMy4yIG9yIGxhdGVyIHRvIGVuYWJsZSB0aGlzIGZlYXR1cmUuCisK
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9DTWFrZUxpc3RzLnR4dDogU3BlY2lmaWVkIGEgdGFy
Z2V0IG5hbWUgZm9yCisgICAgICAgIEdFTkVSQVRFX0JJTkRJTkdTLiBBZGRlZCBkZXBlbmRlbmN5
IGZvciB0aGUgdGFyZ2V0LgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvQ01ha2VMaXN0cy50
eHQ6IERpdHRvLgorCiAyMDE2LTEwLTA1ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNv
bT4KIAogICAgICAgICBSZXVzZSBDb2RlR2VuZXJhdG9yOjpVcGRhdGVGaWxlIGluIFRvb2xzIENv
ZGVHZW5lcmF0b3IKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0NNYWtlTGlzdHMu
dHh0IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvQ01ha2VMaXN0cy50eHQKaW5kZXggYmFmN2MxM2M1
NzIxYWU2YzE4YzAzMzdjNDBmODRkYTlkNzFhZWJkZS4uZGM4NDIwZGY4OWY3NzJhOGRjM2U1ODhk
NWJhODc3NDE2MmYyNzViMCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvQ01ha2VM
aXN0cy50eHQKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvQ01ha2VMaXN0cy50eHQKQEAgLTEy
MCw3ICsxMjAsNyBAQCBzZXQoRHVtcFJlbmRlclRyZWVfSURMX0ZJTEVTCiAgICAgIiR7V0VCS0lU
X1RFU1RSVU5ORVJfVUlTQ1JJUFRDT05URVhUX0RJUn0vQmluZGluZ3MvVUlTY3JpcHRDb250cm9s
bGVyLmlkbCIKICkKIAotR0VORVJBVEVfQklORElOR1MoCitHRU5FUkFURV9CSU5ESU5HUyhEdW1w
UmVuZGVyVHJlZUJpbmRpbmdzCiAgICAgT1VUUFVUX1NPVVJDRSBEdW1wUmVuZGVyVHJlZV9TT1VS
Q0VTCiAgICAgSU5QVVRfRklMRVMgJHtEdW1wUmVuZGVyVHJlZV9JRExfRklMRVN9CiAgICAgQkFT
RV9ESVIgJHtEVU1QX1JFTkRFUl9UUkVFX0JJTkRJTkdTX0RJUn0KQEAgLTEzNSw2ICsxMzUsNyBA
QCBpbmNsdWRlX2RpcmVjdG9yaWVzKCR7RHVtcFJlbmRlclRyZWVfSU5DTFVERV9ESVJFQ1RPUklF
U30pCiAKIGFkZF9leGVjdXRhYmxlKER1bXBSZW5kZXJUcmVlICR7RHVtcFJlbmRlclRyZWVfU09V
UkNFU30pCiB0YXJnZXRfbGlua19saWJyYXJpZXMoRHVtcFJlbmRlclRyZWUgJHtEdW1wUmVuZGVy
VHJlZV9MSUJSQVJJRVN9KQorYWRkX2RlcGVuZGVuY2llcyhEdW1wUmVuZGVyVHJlZSBEdW1wUmVu
ZGVyVHJlZUJpbmRpbmdzKQogCiBpZiAoRU5BQkxFX05FVFNDQVBFX1BMVUdJTl9BUEkpCiAgICAg
YWRkX2xpYnJhcnkoVGVzdE5ldHNjYXBlUGx1Z2luIFNIQVJFRCAke1Rlc3ROZXRzY2FwZVBsdWdp
bl9TT1VSQ0VTfSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvQ01ha2VMaXN0
cy50eHQgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0NNYWtlTGlzdHMudHh0CmluZGV4IDI3ZWEz
NmMzYmQ0N2VmMDJhNjRhOTI3ZjY4NTIyM2RhMzViODQ5ZmEuLjhjOTg3Njg4ZDRhOGMyN2Y0MDZm
NjAwZGMyNWUwYzNhZjhkNWVlNTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
Q01ha2VMaXN0cy50eHQKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9DTWFrZUxpc3RzLnR4
dApAQCAtOTcsNyArOTcsNyBAQCBzZXQoV2ViS2l0VGVzdFJ1bm5lcl9JRExfRklMRVMKICAgICAi
JHtXRUJLSVRfVEVTVFJVTk5FUl9VSVNDUklQVENPTlRFWFRfRElSfS9CaW5kaW5ncy9VSVNjcmlw
dENvbnRyb2xsZXIuaWRsIgogKQogCi1HRU5FUkFURV9CSU5ESU5HUygKK0dFTkVSQVRFX0JJTkRJ
TkdTKFdlYktpdFRlc3RSdW5uZXJJbmplY3RlZEJ1bmRsZUJpbmRpbmdzCiAgICAgT1VUUFVUX1NP
VVJDRSBXZWJLaXRUZXN0UnVubmVySW5qZWN0ZWRCdW5kbGVfU09VUkNFUwogICAgIElOUFVUX0ZJ
TEVTICR7V2ViS2l0VGVzdFJ1bm5lckluamVjdGVkQnVuZGxlX0lETF9GSUxFU30KICAgICBCQVNF
X0RJUiAke1dFQktJVF9URVNUUlVOTkVSX0lOSkVDVEVEQlVORExFX0RJUn0vQmluZGluZ3MKQEAg
LTEwNiw3ICsxMDYsNyBAQCBHRU5FUkFURV9CSU5ESU5HUygKICAgICBERVNUSU5BVElPTiAke0RF
UklWRURfU09VUkNFU19ESVJ9L0luamVjdGVkQnVuZGxlCiAgICAgR0VORVJBVE9SIFRlc3RSdW5u
ZXIpCiAKLUdFTkVSQVRFX0JJTkRJTkdTKAorR0VORVJBVEVfQklORElOR1MoV2ViS2l0VGVzdFJ1
bm5lckJpbmRpbmdzCiAgICAgT1VUUFVUX1NPVVJDRSBXZWJLaXRUZXN0UnVubmVyX1NPVVJDRVMK
ICAgICBJTlBVVF9GSUxFUyAke1dlYktpdFRlc3RSdW5uZXJfSURMX0ZJTEVTfQogICAgIEJBU0Vf
RElSICR7V0VCS0lUX1RFU1RSVU5ORVJfSU5KRUNURURCVU5ETEVfRElSfS9CaW5kaW5ncwpAQCAt
MTIyLDkgKzEyMiwxMSBAQCBpbmNsdWRlX2RpcmVjdG9yaWVzKFNZU1RFTSAke1dlYktpdFRlc3RS
dW5uZXJfU1lTVEVNX0lOQ0xVREVfRElSRUNUT1JJRVN9KQogCiBhZGRfbGlicmFyeShUZXN0UnVu
bmVySW5qZWN0ZWRCdW5kbGUgU0hBUkVEICR7V2ViS2l0VGVzdFJ1bm5lckluamVjdGVkQnVuZGxl
X1NPVVJDRVN9KQogdGFyZ2V0X2xpbmtfbGlicmFyaWVzKFRlc3RSdW5uZXJJbmplY3RlZEJ1bmRs
ZSAke1dlYktpdFRlc3RSdW5uZXJfTElCUkFSSUVTfSkKK2FkZF9kZXBlbmRlbmNpZXMoVGVzdFJ1
bm5lckluamVjdGVkQnVuZGxlIFdlYktpdFRlc3RSdW5uZXJJbmplY3RlZEJ1bmRsZUJpbmRpbmdz
KQogCiBhZGRfZXhlY3V0YWJsZShXZWJLaXRUZXN0UnVubmVyICR7V2ViS2l0VGVzdFJ1bm5lcl9T
T1VSQ0VTfSkKIHRhcmdldF9saW5rX2xpYnJhcmllcyhXZWJLaXRUZXN0UnVubmVyICR7V2ViS2l0
VGVzdFJ1bm5lcl9MSUJSQVJJRVN9KQorYWRkX2RlcGVuZGVuY2llcyhXZWJLaXRUZXN0UnVubmVy
IFdlYktpdFRlc3RSdW5uZXJCaW5kaW5ncykKIAogaWYgKE5PVCBBUFBMRSkKICAgICBhZGRfZGVw
ZW5kZW5jaWVzKFdlYktpdDIgJHtGb3J3YXJkaW5nSGVhZGVyc0ZvcldlYktpdFRlc3RSdW5uZXJf
TkFNRX0pCmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggZGYzNjJlNjE2
YTE1OWM0NTBkYWFmOTdiNzU1ODI4YTMxZTY4YTJiMi4uODljZDdjYTAzMzY0NDQzMzExNGI3MjQz
NjA4Y2EzZDY0ZWVhODE3NyAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDI5IEBACisyMDE2LTEwLTA2ICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1
amlpQHNvbnkuY29tPgorCisgICAgICAgIFtDTWFrZV0gQ01ha2UgZG9lcyBub3Qgc3VwcG9ydCB0
aGUgZGVwIGZpbGVzIGZvciBpbXBsaWNpdCBkZXBlbmRlbmN5CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjE0MzMKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDcmVhdGVkIGEgUGVybCBzY3JpcHQgdG8gZ2Vu
ZXJhdGUgYWxsIElETCBiaW5kaW5ncyBmb3IgQ01ha2UuCisgICAgICAgIFRoaXMgc2NyaXB0IGNh
biByZWdlbmVyYXRlIG91dGRhdGVkIGJpbmRpbmdzIGJ5IGJhc2VkIG9uIHRoZQorICAgICAgICBz
dXBwbGVtZW50YWwgZGVwZW5kZW5jeSBhbmQgZGVwIGZpbGVzIGNyZWF0ZWQgYnkKKyAgICAgICAg
Jy0td3JpdGUtZGVwZW5kZW5jaWVzJyBzd2l0Y2ggb2YgZ2VuZXJhdGUtYmluZGluZ3MucGwuCisK
KyAgICAgICAgYWRkX2N1c3RvbV90YXJnZXQgaXMgdXNlZCB0byBpbnZva2UgdGhlIHNjcmlwdCBp
bnN0ZWFkIG9mCisgICAgICAgIGFkZF9jdXN0b21fY29tbWFuZCBiZWNhdXNlIE5pbmphIGRlbGV0
ZXMgYWxsIG91dHB1dCBmaWxlcyBiZWZvcmUKKyAgICAgICAgZXhlY3V0aW5nIHRoZSBjb21tYW5k
IGluIGNhc2Ugb2YgYWRkX2N1c3RvbV9jb21tYW5kLgorCisgICAgICAgIFVTRVNfVEVSTUlOQUwg
b3B0aW9uIG9mIGFkZF9jdXN0b21fdGFyZ2V0IGhhcyB0d28gZWZmZWN0czoKKyAgICAgICAgMSkg
Tm90IGJ1ZmZlcmluZyBvdXRwdXQgb2YgdGhlIGNvbW1hbmQKKyAgICAgICAgMikgSW52b2tpbmcg
dGhlIGNvbW1hbmQgaW4gdGhlIHNwZWNpYWwgTmluamEgcG9vbCB3aGljaCBpbmhpYml0cyBwYXJh
bGxlbCBidWlsZAorICAgICAgICBPbmUgbmVlZHMgdG8gdXNlIENNYWtlIDMuMiBvciBsYXRlciB0
byBlbmFibGUgdGhpcyBmZWF0dXJlLgorCisgICAgICAgICogU291cmNlL2NtYWtlL1dlYktpdE1h
Y3Jvcy5jbWFrZSAoR0VORVJBVEVfQklORElOR1MpOiBJbmNsdWRlZAorICAgICAgICBQcm9jZXNz
b3JDb3VudC4gIEFkZGVkIGEgbmV3IGFyZ3VtZW50ICd0YXJnZXQnLiAgVXNlCisgICAgICAgIGFk
ZF9jdXN0b21fdGFyZ2V0IGluc3RlYWQgb2YgYWRkX2N1c3RvbV9jb21tYW5kLiAgSW52b2tlIHRo
ZSBuZXcKKyAgICAgICAgc2NyaXB0LgorCiAyMDE2LTEwLTA1ICBaYW4gRG9iZXJzZWsgIDx6ZG9i
ZXJzZWtAaWdhbGlhLmNvbT4KIAogICAgICAgICBSZW5hbWUgRU5BQkxFX0VOQ1JZUFRFRF9NRURJ
QV9WMiB0byBFTkFCTEVfTEVHQUNZX0VOQ1JZUFRFRF9NRURJQQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>290919</attachid>
            <date>2016-10-07 02:55:42 -0700</date>
            <delta_ts>2016-10-13 04:21:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-161433-20161007185232.patch</filename>
            <type>text/plain</type>
            <size>22899</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2OTA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTY1MDAyODM0YTFmMWU4
ODc5NmYxM2M1ZTdkM2FiZWIzY2JlNDA1Ni4uZGMxNTdkZDY4Yjk4Y2E0YmY2MjYyN2NjMDMxMGNl
YzBkYjk3NjM2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMwIEBACiAyMDE2LTEwLTA3ICBGdWpp
aSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgogCisgICAgICAgIFtDTWFrZV0g
Q01ha2UgZG9lcyBub3Qgc3VwcG9ydCB0aGUgZGVwIGZpbGVzIGZvciBpbXBsaWNpdCBkZXBlbmRl
bmN5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjE0
MzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDcmVh
dGVkIGEgUGVybCBzY3JpcHQgdG8gZ2VuZXJhdGUgYWxsIElETCBiaW5kaW5ncyBmb3IgQ01ha2Uu
CisgICAgICAgIFRoaXMgc2NyaXB0IGNhbiByZWdlbmVyYXRlIG91dGRhdGVkIGJpbmRpbmdzIGJ5
IGJhc2VkIG9uIHRoZQorICAgICAgICBzdXBwbGVtZW50YWwgZGVwZW5kZW5jeSBhbmQgZGVwIGZp
bGVzIGNyZWF0ZWQgYnkKKyAgICAgICAgJy0td3JpdGUtZGVwZW5kZW5jaWVzJyBzd2l0Y2ggb2Yg
Z2VuZXJhdGUtYmluZGluZ3MucGwuCisKKyAgICAgICAgYWRkX2N1c3RvbV90YXJnZXQgaXMgdXNl
ZCB0byBpbnZva2UgdGhlIHNjcmlwdCBpbnN0ZWFkIG9mCisgICAgICAgIGFkZF9jdXN0b21fY29t
bWFuZCBiZWNhdXNlIE5pbmphIGRlbGV0ZXMgYWxsIG91dHB1dCBmaWxlcyBiZWZvcmUKKyAgICAg
ICAgZXhlY3V0aW5nIHRoZSBjb21tYW5kIGluIGNhc2Ugb2YgYWRkX2N1c3RvbV9jb21tYW5kLgor
CisgICAgICAgIFVTRVNfVEVSTUlOQUwgb3B0aW9uIG9mIGFkZF9jdXN0b21fdGFyZ2V0IGhhcyB0
d28gZWZmZWN0czoKKyAgICAgICAgMSkgTm90IGJ1ZmZlcmluZyBvdXRwdXQgb2YgdGhlIGNvbW1h
bmQKKyAgICAgICAgMikgSW52b2tpbmcgdGhlIGNvbW1hbmQgaW4gdGhlIHNwZWNpYWwgTmluamEg
cG9vbCB3aGljaCBpbmhpYml0cyBwYXJhbGxlbCBidWlsZAorICAgICAgICBPbmUgbmVlZHMgdG8g
dXNlIENNYWtlIDMuMiBvciBsYXRlciB0byBlbmFibGUgdGhpcyBmZWF0dXJlLgorCisgICAgICAg
ICogQ01ha2VMaXN0cy50eHQ6IFNwZWNpZmllZCB0YXJnZXQgbmFtZXMgZm9yCisgICAgICAgIEdF
TkVSQVRFX0JJTkRJTkdTLiBBZGRlZCBkZXBlbmRlbmN5IGZvciB0aGUgdGFyZ2V0cy4KKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL2dlbmVyYXRlLWJpbmRpbmdzLWFsbC5wbDogQWRkZWQuCisK
KzIwMTYtMTAtMDcgIEZ1amlpIEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CisK
ICAgICAgICAgVXNlICd1c2UgbGliICRGaW5kQmluOjpCaW4nIHRvIGFwcGVuZCBQZXJsIG1vZHVs
ZSBpbmNsdWRlIHBhdGgKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE2MjI1NgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGY5ZjEwYjFhMTVhYzZiZjlj
MWRhZjBjZjhmODRiN2NlNTViMWNjMWEuLjUxM2I3NjdhYWE0MTg3ZDkyM2FjNzA5OTVjMjFmYzk0
NjMzYjIwMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0zNjI5LDcgKzM2MjksNyBAQCBsaXN0
KEFQUEVORCBXZWJDb3JlX0RFUklWRURfU09VUkNFUyAke0RFUklWRURfU09VUkNFU19XRUJDT1JF
X0RJUn0vWFBhdGhHcmFtbWFyLgogc2V0KEZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICJMQU5H
VUFHRV9KQVZBU0NSSVBUICR7RkVBVFVSRV9ERUZJTkVTX1dJVEhfU1BBQ0VfU0VQQVJBVE9SfSIp
CiBsaXN0KEFQUEVORCBXZWJDb3JlVGVzdFN1cHBvcnRfSURMX0ZJTEVTICR7REVSSVZFRF9TT1VS
Q0VTX1dFQkNPUkVfRElSfS9JbnRlcm5hbFNldHRpbmdzR2VuZXJhdGVkLmlkbCkKIAotR0VORVJB
VEVfQklORElOR1MoCitHRU5FUkFURV9CSU5ESU5HUyhXZWJDb3JlQmluZGluZ3MKICAgICBPVVRQ
VVRfU09VUkNFIFdlYkNvcmVfREVSSVZFRF9TT1VSQ0VTCiAgICAgSU5QVVRfRklMRVMgJHtXZWJD
b3JlX0lETF9GSUxFU30KICAgICBCQVNFX0RJUiAke1dFQkNPUkVfRElSfQpAQCAtMzY0NSw3ICsz
NjQ1LDcgQEAgR0VORVJBVEVfQklORElOR1MoCiAgICAgICAgIC0td29ya2VyR2xvYmFsU2NvcGVD
b25zdHJ1Y3RvcnNGaWxlICR7V09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEV9CiAg
ICAgICAgIC0tZGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICR7REVE
SUNBVEVEV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEV9KQogCi1HRU5FUkFURV9C
SU5ESU5HUygKK0dFTkVSQVRFX0JJTkRJTkdTKFdlYkNvcmVUZXN0U3VwcG9ydEJpbmRpbmdzCiAg
ICAgT1VUUFVUX1NPVVJDRSBXZWJDb3JlVGVzdFN1cHBvcnRfU09VUkNFUwogICAgIElOUFVUX0ZJ
TEVTICR7V2ViQ29yZVRlc3RTdXBwb3J0X0lETF9GSUxFU30KICAgICBCQVNFX0RJUiAke1dFQkNP
UkVfRElSfQpAQCAtMzY1NCw2ICszNjU0LDkgQEAgR0VORVJBVEVfQklORElOR1MoCiAgICAgREVT
VElOQVRJT04gJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9CiAgICAgR0VORVJBVE9SIEpT
KQogCisjIFdlYkNvcmVUZXN0U3VwcG9ydEJpbmRpbmdzIG5lZWRzIEludGVybmFsU2V0dGluZ3NH
ZW5lcmF0ZWQuaWRsCithZGRfZGVwZW5kZW5jaWVzKFdlYkNvcmVUZXN0U3VwcG9ydEJpbmRpbmdz
IFdlYkNvcmVEZXJpdmVkU291cmNlcykKKwogIyBXZWJDb3JlIEpTIEJ1aWx0aW5zCiAKIHNldChX
ZWJDb3JlX0JVSUxUSU5TX1NPVVJDRVMKQEAgLTM3OTksNyArMzgwMiw3IEBAIGVuZGlmICgpCiAj
IGZpbGVzIG9uIE9TIFguCiBhZGRfbGlicmFyeShXZWJDb3JlRGVyaXZlZFNvdXJjZXMgU1RBVElD
ICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVN9KQogc2V0X3RhcmdldF9wcm9wZXJ0aWVzKFdlYkNv
cmVEZXJpdmVkU291cmNlcyBQUk9QRVJUSUVTIE9VVFBVVF9OQU1FIFdlYkNvcmVEZXJpdmVkU291
cmNlcyR7REVCVUdfU1VGRklYfSkKLWFkZF9kZXBlbmRlbmNpZXMoV2ViQ29yZURlcml2ZWRTb3Vy
Y2VzIEphdmFTY3JpcHRDb3JlKQorYWRkX2RlcGVuZGVuY2llcyhXZWJDb3JlRGVyaXZlZFNvdXJj
ZXMgSmF2YVNjcmlwdENvcmUgV2ViQ29yZUJpbmRpbmdzKQogaWYgKE5PVCBXSU4zMikKICAgICBs
aXN0KEFQUEVORCBXZWJDb3JlX0xJQlJBUklFUyBXZWJDb3JlRGVyaXZlZFNvdXJjZXMpCiBlbmRp
ZiAoKQpAQCAtMzgzMCw3ICszODMzLDcgQEAgZW5kaWYgKCkKIAogaW5jbHVkZV9kaXJlY3Rvcmll
cygke1dlYkNvcmVUZXN0U3VwcG9ydF9JTkNMVURFX0RJUkVDVE9SSUVTfSkKIGFkZF9saWJyYXJ5
KFdlYkNvcmVUZXN0U3VwcG9ydCAke1dlYkNvcmVUZXN0U3VwcG9ydF9MSUJSQVJZX1RZUEV9ICR7
V2ViQ29yZVRlc3RTdXBwb3J0X1NPVVJDRVN9KQotYWRkX2RlcGVuZGVuY2llcyhXZWJDb3JlVGVz
dFN1cHBvcnQgV2ViQ29yZSkKK2FkZF9kZXBlbmRlbmNpZXMoV2ViQ29yZVRlc3RTdXBwb3J0IFdl
YkNvcmUgV2ViQ29yZVRlc3RTdXBwb3J0QmluZGluZ3MpCiB0YXJnZXRfbGlua19saWJyYXJpZXMo
V2ViQ29yZVRlc3RTdXBwb3J0ICR7V2ViQ29yZVRlc3RTdXBwb3J0X0xJQlJBUklFU30pCiAKIGlm
IChXZWJDb3JlVGVzdFN1cHBvcnRfT1VUUFVUX05BTUUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL2dlbmVyYXRlLWJpbmRpbmdzLWFsbC5wbCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUtYmluZGluZ3MtYWxsLnBsCm5ldyBmaWxl
IG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmMzZGY5NjIzNDM1ODg5NTk0MTUyODc3ZTI3ZDgxNGM3YjFjMzcwYjkKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL2dlbmVyYXRlLWJpbmRpbmdz
LWFsbC5wbApAQCAtMCwwICsxLDE5OSBAQAorIyEvdXNyL2Jpbi9wZXJsIC13CisjCisjIENvcHly
aWdodCAoQykgMjAxNiBTb255IEludGVyYWN0aXZlIEVudGVydGFpbm1lbnQgSW5jLgorIworIyBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisj
CisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorIyBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisjIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisjIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsKKyMgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisjIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisjIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorIworCit1c2Ugc3RyaWN0OwordXNl
IEZpbmRCaW47Cit1c2UgbGliICRGaW5kQmluOjpCaW47CisKK3VzZSBGaWxlOjpCYXNlbmFtZTsK
K3VzZSBGaWxlOjpTcGVjOwordXNlIEZpbGU6OkZpbmQ7Cit1c2UgR2V0b3B0OjpMb25nOwordXNl
IHRocmVhZHM7Cit1c2UgdGhyZWFkczo6c2hhcmVkOwordXNlIFRocmVhZDo6UXVldWU7CisKK215
ICRwZXJsID0gJF5YOworbXkgJHNjcmlwdERpciA9ICRGaW5kQmluOjpCaW47CitteSBAaWRsRGly
ZWN0b3JpZXM7CitteSAkb3V0cHV0RGlyZWN0b3J5OworbXkgJGlkbEZpbGVzTGlzdDsKK215ICRn
ZW5lcmF0b3I7CitteSBAZ2VuZXJhdG9yRGVwZW5kZW5jeTsKK215ICRkZWZpbmVzOworbXkgJHBy
ZXByb2Nlc3NvcjsKK215ICRzdXBwbGVtZW50YWxEZXBlbmRlbmN5RmlsZTsKK215IEBwcEV4dHJh
T3V0cHV0OworbXkgQHBwRXh0cmFBcmdzOworbXkgJG51bU9mSm9icyA9IDE7CitteSAkaWRsQXR0
cmlidXRlc0ZpbGU7CisKK0dldE9wdGlvbnMoJ2luY2x1ZGU9c0AnID0+IFxAaWRsRGlyZWN0b3Jp
ZXMsCisgICAgICAgICAgICdvdXRwdXREaXI9cycgPT4gXCRvdXRwdXREaXJlY3RvcnksCisgICAg
ICAgICAgICdpZGxGaWxlc0xpc3Q9cycgPT4gXCRpZGxGaWxlc0xpc3QsCisgICAgICAgICAgICdn
ZW5lcmF0b3I9cycgPT4gXCRnZW5lcmF0b3IsCisgICAgICAgICAgICdnZW5lcmF0b3JEZXBlbmRl
bmN5PXNAJyA9PiBcQGdlbmVyYXRvckRlcGVuZGVuY3ksCisgICAgICAgICAgICdkZWZpbmVzPXMn
ID0+IFwkZGVmaW5lcywKKyAgICAgICAgICAgJ3ByZXByb2Nlc3Nvcj1zJyA9PiBcJHByZXByb2Nl
c3NvciwKKyAgICAgICAgICAgJ3N1cHBsZW1lbnRhbERlcGVuZGVuY3lGaWxlPXMnID0+IFwkc3Vw
cGxlbWVudGFsRGVwZW5kZW5jeUZpbGUsCisgICAgICAgICAgICdwcEV4dHJhT3V0cHV0PXNAJyA9
PiBcQHBwRXh0cmFPdXRwdXQsCisgICAgICAgICAgICdwcEV4dHJhQXJncz1zQCcgPT4gXEBwcEV4
dHJhQXJncywKKyAgICAgICAgICAgJ2lkbEF0dHJpYnV0ZXNGaWxlPXMnID0+IFwkaWRsQXR0cmli
dXRlc0ZpbGUsCisgICAgICAgICAgICdudW1PZkpvYnM9aScgPT4gXCRudW1PZkpvYnMpOworCitt
eSBAaWRsRmlsZXM7CitvcGVuKG15ICRmaCwgJzwnLCAkaWRsRmlsZXNMaXN0KSBvciBkaWUgIkNh
bm5vdCBvcGVuICRpZGxGaWxlc0xpc3QiOworQGlkbEZpbGVzID0gPCRmaD47CitjbG9zZSgkZmgp
IG9yIGRpZTsKK3MvXHI/XG4/JC8vIGZvciBAaWRsRmlsZXM7CisKK215ICVzdXBwbGVtZW50ZWRJ
ZGxGaWxlczsKK2lmICgkc3VwcGxlbWVudGFsRGVwZW5kZW5jeUZpbGUpIHsKKyAgICBteSBAb3V0
cHV0ID0gKCRzdXBwbGVtZW50YWxEZXBlbmRlbmN5RmlsZSwgQHBwRXh0cmFPdXRwdXQpOworICAg
IG15IEBkZXBzID0gKEBpZGxGaWxlcywgQGdlbmVyYXRvckRlcGVuZGVuY3kpOworICAgIGlmIChu
ZWVkc1VwZGF0ZShcQG91dHB1dCwgXEBkZXBzKSkgeworICAgICAgICBteSBAYXJncyA9ICgnLS1k
ZWZpbmVzJywgJGRlZmluZXMsCisgICAgICAgICAgICAgICAgICAgICctLWlkbEZpbGVzTGlzdCcs
ICRpZGxGaWxlc0xpc3QsCisgICAgICAgICAgICAgICAgICAgICctLXN1cHBsZW1lbnRhbERlcGVu
ZGVuY3lGaWxlJywgJHN1cHBsZW1lbnRhbERlcGVuZGVuY3lGaWxlLAorICAgICAgICAgICAgICAg
ICAgICBAcHBFeHRyYUFyZ3MpOworICAgICAgICBwcmludCgiUHJlcHJvY2VzcyBJRExcbiIpOwor
ICAgICAgICBzeXN0ZW0oJHBlcmwsICIkc2NyaXB0RGlyL3ByZXByb2Nlc3MtaWRscy5wbCIsIEBh
cmdzKSA9PSAwIG9yIGRpZTsKKyAgICB9CisgICAgb3BlbihteSAkZmgsICc8JywgJHN1cHBsZW1l
bnRhbERlcGVuZGVuY3lGaWxlKSBvciBkaWUgIkNhbm5vdCBvcGVuICRzdXBwbGVtZW50YWxEZXBl
bmRlbmN5RmlsZSI7CisgICAgd2hpbGUgKDwkZmg+KSB7CisgICAgICAgIG15ICgkaWRsRmlsZSwg
QGZvbGxvd2luZ0lkbEZpbGVzKSA9IHNwbGl0KC9ccysvKTsKKyAgICAgICAgJHN1cHBsZW1lbnRl
ZElkbEZpbGVzeyRpZGxGaWxlfSA9IFxAZm9sbG93aW5nSWRsRmlsZXM7CisgICAgfQorICAgIGNs
b3NlKCRmaCkgb3IgZGllOworfQorCitteSBAYXJncyA9ICgnLS1kZWZpbmVzJywgJGRlZmluZXMs
CisgICAgICAgICAgICAnLS1nZW5lcmF0b3InLCAkZ2VuZXJhdG9yLAorICAgICAgICAgICAgJy0t
b3V0cHV0RGlyJywgJG91dHB1dERpcmVjdG9yeSwKKyAgICAgICAgICAgICctLXByZXByb2Nlc3Nv
cicsIHF1b3RlQ29tbWFuZCgkcHJlcHJvY2Vzc29yKSwKKyAgICAgICAgICAgICctLWlkbEF0dHJp
YnV0ZXNGaWxlJywgJGlkbEF0dHJpYnV0ZXNGaWxlLAorICAgICAgICAgICAgJy0td3JpdGUtZGVw
ZW5kZW5jaWVzJyk7CitwdXNoIEBhcmdzLCBtYXAgeyAoJy0taW5jbHVkZScsICRfKSB9IEBpZGxE
aXJlY3RvcmllczsKK3B1c2ggQGFyZ3MsICctLXN1cHBsZW1lbnRhbERlcGVuZGVuY3lGaWxlJywg
JHN1cHBsZW1lbnRhbERlcGVuZGVuY3lGaWxlIGlmICRzdXBwbGVtZW50YWxEZXBlbmRlbmN5Rmls
ZTsKKworbXkgJWRpcmVjdG9yeUNhY2hlOworYnVpbGREaXJlY3RvcnlDYWNoZSgpOworCitteSAk
cXVldWUgPSBUaHJlYWQ6OlF1ZXVlLT5uZXcoQGlkbEZpbGVzKTsKK215ICRhYm9ydCA6c2hhcmVk
ID0gMDsKKworbXkgQHRocmVhZFBvb2wgPSBtYXAgeyB0aHJlYWRzLT5jcmVhdGUoXCZ3b3JrZXIp
IH0gKDEgLi4gJG51bU9mSm9icyk7CiskXy0+am9pbiBmb3IgQHRocmVhZFBvb2w7CitleGl0ICRh
Ym9ydDsKKworc3ViIG5lZWRzVXBkYXRlCit7CisgICAgbXkgKCRvYmplY3RzLCAkZGVwZW5kcykg
PSBAXzsKKyAgICBteSAkb2xkZXN0T2JqZWN0OworICAgIG15ICRvbGRlc3RPYmplY3RUaW1lOwor
ICAgIGZvciAoQCRvYmplY3RzKSB7CisgICAgICAgIHJldHVybiAxIGlmICEtZjsKKyAgICAgICAg
bXkgJG0gPSBtdGltZSgkXyk7CisgICAgICAgIGlmICghZGVmaW5lZCAkb2xkZXN0T2JqZWN0VGlt
ZSB8fCAkbSA8ICRvbGRlc3RPYmplY3RUaW1lKSB7CisgICAgICAgICAgICAkb2xkZXN0T2JqZWN0
ID0gJF87CisgICAgICAgICAgICAkb2xkZXN0T2JqZWN0VGltZSA9ICRtOworICAgICAgICB9Cisg
ICAgfQorICAgIGZvciAoQCRkZXBlbmRzKSB7CisgICAgICAgIGRpZSAiTWlzc2luZyByZXF1aXJl
ZCBkZXBlbmRlbmN5OiAkXyIgaWYgIS1mOworICAgICAgICBteSAkbSA9IG10aW1lKCRfKTsKKyAg
ICAgICAgaWYgKCRvbGRlc3RPYmplY3RUaW1lIDwgJG0pIHsKKyAgICAgICAgICAgICMgcHJpbnQg
IiRfIGlzIG5ld2VyIHRoYW4gJG9sZGVzdE9iamVjdFxuIjsKKyAgICAgICAgICAgIHJldHVybiAx
OworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiAwOworfQorCitzdWIgbXRpbWUKK3sKKyAg
ICBteSAoJGZpbGUpID0gQF87CisgICAgcmV0dXJuIChzdGF0ICRmaWxlKVs5XTsKK30KKworc3Vi
IHdvcmtlciB7CisgICAgd2hpbGUgKG15ICRmaWxlID0gJHF1ZXVlLT5kZXF1ZXVlX25iKCkpIHsK
KyAgICAgICAgbGFzdCBpZiAkYWJvcnQ7CisgICAgICAgIGV2YWwgeworICAgICAgICAgICAgbXkg
KCRmaWxlbmFtZSwgJGRpcnMsICRzdWZmaXgpID0gZmlsZXBhcnNlKCRmaWxlLCAnLmlkbCcpOwor
ICAgICAgICAgICAgbXkgJHNvdXJjZUZpbGUgPSBGaWxlOjpTcGVjLT5jYXRmaWxlKCRvdXRwdXRE
aXJlY3RvcnksICJKUyRmaWxlbmFtZS5jcHAiKTsKKyAgICAgICAgICAgIG15ICRoZWFkZXJGaWxl
ID0gRmlsZTo6U3BlYy0+Y2F0ZmlsZSgkb3V0cHV0RGlyZWN0b3J5LCAiSlMkZmlsZW5hbWUuaCIp
OworICAgICAgICAgICAgbXkgJGRlcEZpbGUgPSBGaWxlOjpTcGVjLT5jYXRmaWxlKCRvdXRwdXRE
aXJlY3RvcnksICJKUyRmaWxlbmFtZS5kZXAiKTsKKyAgICAgICAgICAgIG15IEBvdXRwdXQgPSAo
JHNvdXJjZUZpbGUsICRoZWFkZXJGaWxlKTsKKyAgICAgICAgICAgIG15IEBkZXBzID0gKCRmaWxl
LAorICAgICAgICAgICAgICAgICAgICAgICAgJGlkbEF0dHJpYnV0ZXNGaWxlLAorICAgICAgICAg
ICAgICAgICAgICAgICAgQGdlbmVyYXRvckRlcGVuZGVuY3ksCisgICAgICAgICAgICAgICAgICAg
ICAgICBAeyRzdXBwbGVtZW50ZWRJZGxGaWxlc3skZmlsZX0gb3IgW119LAorICAgICAgICAgICAg
ICAgICAgICAgICAgaW1wbGljaXREZXBlbmRlbmNpZXMoJGRlcEZpbGUpKTsKKyAgICAgICAgICAg
IGlmIChuZWVkc1VwZGF0ZShcQG91dHB1dCwgXEBkZXBzKSkgeworICAgICAgICAgICAgICAgIHBy
aW50ICIkZmlsZW5hbWUkc3VmZml4XG4iOworICAgICAgICAgICAgICAgIHN5c3RlbSgkcGVybCwg
IiRzY3JpcHREaXIvZ2VuZXJhdGUtYmluZGluZ3MucGwiLCBAYXJncywgJGZpbGUpID09IDAgb3Ig
ZGllOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgICAgICBpZiAoJEApIHsKKyAgICAg
ICAgICAgICRhYm9ydCA9IDE7CisgICAgICAgICAgICBkaWU7CisgICAgICAgIH0KKyAgICB9Cit9
CisKK3N1YiBidWlsZERpcmVjdG9yeUNhY2hlCit7CisgICAgbXkgJHdhbnRlZCA9IHN1YiB7Cisg
ICAgICAgICRkaXJlY3RvcnlDYWNoZXskX30gPSAkRmlsZTo6RmluZDo6bmFtZTsKKyAgICAgICAg
JEZpbGU6OkZpbmQ6OnBydW5lID0gMSB1bmxlc3Mgfi9cLi87CisgICAgfTsKKyAgICBmaW5kKCR3
YW50ZWQsIEBpZGxEaXJlY3Rvcmllcyk7Cit9CisKK3N1YiBpbXBsaWNpdERlcGVuZGVuY2llcwor
eworICAgIG15ICgkZGVwRmlsZSkgPSBAXzsKKyAgICByZXR1cm4gKCkgdW5sZXNzIC1mICRkZXBG
aWxlOworICAgIG9wZW4obXkgJGZoLCAnPCcsICRkZXBGaWxlKSBvciBkaWUgIkNhbm5vdCBvcGVu
ICRkZXBGaWxlIjsKKyAgICBteSAkZmlyc3RMaW5lID0gPCRmaD47CisgICAgY2xvc2UoJGZoKSBv
ciBkaWU7CisgICAgbXkgKHVuZGVmLCAkZGVwcykgPSBzcGxpdCgvIDogLywgJGZpcnN0TGluZSk7
CisgICAgbXkgQGRlcHMgPSBzcGxpdCgvXHMrLywgJGRlcHMpOworICAgIHJldHVybiBtYXAgeyAk
ZGlyZWN0b3J5Q2FjaGV7JF99IG9yICgpIH0gQGRlcHM7Cit9CisKK3N1YiBxdW90ZUNvbW1hbmQK
K3sKKyAgICB1c2UgQ29uZmlnOworICAgIGlmICgkQ29uZmlnOjpDb25maWd7b3NuYW1lfSBlcSAn
TVNXaW4zMicpIHsKKyAgICAgICAgcmV0dXJuIG1hcCB7CisgICAgICAgICAgICBzL1xcL1xcXFwv
ZzsKKyAgICAgICAgICAgIHMvXCIvXFxcIi9nOworICAgICAgICAgICAgIlwiJF9cIiI7CisgICAg
ICAgIH0gQF87CisgICAgfQorICAgIHJldHVybiBAXzsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9j
bWFrZS9XZWJLaXRNYWNyb3MuY21ha2UgYi9Tb3VyY2UvY21ha2UvV2ViS2l0TWFjcm9zLmNtYWtl
CmluZGV4IGYyNzNmYWEzYWE3YWEzOTUwNjkxYjkzZGRlOWZjMTZlZGE4MTFkYmMuLjc5NzI3YTE2
NTcxMzdkOTM4Yjg3ODM1MzAyNDFmYmZmZTAwNWQwZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFr
ZS9XZWJLaXRNYWNyb3MuY21ha2UKKysrIGIvU291cmNlL2NtYWtlL1dlYktpdE1hY3Jvcy5jbWFr
ZQpAQCAtMSw0ICsxLDYgQEAKIGluY2x1ZGUoQ01ha2VQYXJzZUFyZ3VtZW50cykKK2luY2x1ZGUo
UHJvY2Vzc29yQ291bnQpCitQcm9jZXNzb3JDb3VudChQUk9DRVNTT1JfQ09VTlQpCiAKIG1hY3Jv
KFdFQktJVF9JTkNMVURFX0NPTkZJR19GSUxFU19JRl9FWElTVFMpCiAgICAgc2V0KF9maWxlICR7
Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9QbGF0Zm9ybSR7UE9SVH0uY21ha2UpCkBAIC00Myw3
ICs0NSw4IEBAIG1hY3JvKEFERF9QUkVDT01QSUxFRF9IRUFERVIgX2hlYWRlciBfY3BwIF9zb3Vy
Y2UpCiAgICAgI0ZJWE1FOiBBZGQgc3VwcG9ydCBmb3IgWGNvZGUuCiBlbmRtYWNybygpCiAKLSMg
SGVscGVyIG1hY3JvIHdoaWNoIHdyYXBzIHByZXByb2Nlc3MtaWRscy5wbCBhbmQgZ2VuZXJhdGUt
YmluZGluZ3MucGwgc2NyaXB0cy4KKyMgSGVscGVyIG1hY3JvIHdoaWNoIHdyYXBzIGdlbmVyYXRl
LWJpbmRpbmdzLWFsbC5wbCBzY3JpcHQuCisjICAgdGFyZ2V0IGlzIGEgbmV3IHRhcmdldCBuYW1l
IHRvIGJlIGFkZGVkCiAjICAgT1VUUFVUX1NPVVJDRSBpcyBhIGxpc3QgbmFtZSB3aGljaCB3aWxs
IGNvbnRhaW4gZ2VuZXJhdGVkIHNvdXJjZXMuKGVnLiBXZWJDb3JlX1NPVVJDRVMpCiAjICAgSU5Q
VVRfRklMRVMgYXJlIElETCBmaWxlcyB0byBnZW5lcmF0ZS4KICMgICBCQVNFX0RJUiBpcyBiYXNl
IGRpcmVjdG9yeSB3aGVyZSBzY3JpcHQgaXMgY2FsbGVkLgpAQCAtNTQsMTUgKzU3LDE0IEBAIGVu
ZG1hY3JvKCkKICMgICBTVVBQTEVNRU5UQUxfREVQRklMRSBpcyBhIHZhbHVlIG9mIC0tc3VwcGxl
bWVudGFsRGVwZW5kZW5jeUZpbGUuIChvcHRpb25hbCkKICMgICBQUF9FWFRSQV9PVVRQVVQgaXMg
ZXh0cmEgb3V0cHV0cyBvZiBwcmVwcm9jZXNzLWlkbHMucGwuIChvcHRpb25hbCkKICMgICBQUF9F
WFRSQV9BUkdTIGlzIGV4dHJhIGFyZ3VtZW50cyBmb3IgcHJlcHJvY2Vzcy1pZGxzLnBsLiAob3B0
aW9uYWwpCi1mdW5jdGlvbihHRU5FUkFURV9CSU5ESU5HUykKK2Z1bmN0aW9uKEdFTkVSQVRFX0JJ
TkRJTkdTIHRhcmdldCkKICAgICBzZXQob3B0aW9ucykKICAgICBzZXQob25lVmFsdWVBcmdzIE9V
VFBVVF9TT1VSQ0UgQkFTRV9ESVIgRkVBVFVSRVMgREVTVElOQVRJT04gR0VORVJBVE9SIFNVUFBM
RU1FTlRBTF9ERVBGSUxFKQogICAgIHNldChtdWx0aVZhbHVlQXJncyBJTlBVVF9GSUxFUyBJRExf
SU5DTFVERVMgUFBfRVhUUkFfT1VUUFVUIFBQX0VYVFJBX0FSR1MpCiAgICAgY21ha2VfcGFyc2Vf
YXJndW1lbnRzKGFyZyAiJHtvcHRpb25zfSIgIiR7b25lVmFsdWVBcmdzfSIgIiR7bXVsdGlWYWx1
ZUFyZ3N9IiAke0FSR059KQotICAgIHNldChiaW5kaW5nX2dlbmVyYXRvciAke1dFQkNPUkVfRElS
fS9iaW5kaW5ncy9zY3JpcHRzL2dlbmVyYXRlLWJpbmRpbmdzLnBsKQorICAgIHNldChiaW5kaW5n
X2dlbmVyYXRvciAke1dFQkNPUkVfRElSfS9iaW5kaW5ncy9zY3JpcHRzL2dlbmVyYXRlLWJpbmRp
bmdzLWFsbC5wbCkKICAgICBzZXQoaWRsX2F0dHJpYnV0ZXNfZmlsZSAke1dFQkNPUkVfRElSfS9i
aW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMudHh0KQotICAgIHNldChpZCAke2FyZ19PVVRQ
VVRfU09VUkNFfSkKLSAgICBzZXQoaWRsX2ZpbGVzX2xpc3QgJHtDTUFLRV9DVVJSRU5UX0JJTkFS
WV9ESVJ9L2lkbF9maWxlc18ke2lkfS50bXApCisgICAgc2V0KGlkbF9maWxlc19saXN0ICR7Q01B
S0VfQ1VSUkVOVF9CSU5BUllfRElSfS9pZGxfZmlsZXNfJHt0YXJnZXR9LnRtcCkKICAgICBzZXQo
X3N1cHBsZW1lbnRhbF9kZXBlbmRlbmN5KQogCiAgICAgc2V0KGNvbnRlbnQpCkBAIC03NCw1NSAr
NzYsNjkgQEAgZnVuY3Rpb24oR0VORVJBVEVfQklORElOR1MpCiAgICAgZW5kZm9yZWFjaCAoKQog
ICAgIGZpbGUoV1JJVEUgJHtpZGxfZmlsZXNfbGlzdH0gJHtjb250ZW50fSkKIAorICAgIHNldChh
cmdzCisgICAgICAgIC0tZGVmaW5lcyAke2FyZ19GRUFUVVJFU30KKyAgICAgICAgLS1nZW5lcmF0
b3IgJHthcmdfR0VORVJBVE9SfQorICAgICAgICAtLW91dHB1dERpciAke2FyZ19ERVNUSU5BVElP
Tn0KKyAgICAgICAgLS1pZGxGaWxlc0xpc3QgJHtpZGxfZmlsZXNfbGlzdH0KKyAgICAgICAgLS1w
cmVwcm9jZXNzb3IgJHtDT0RFX0dFTkVSQVRPUl9QUkVQUk9DRVNTT1J9CisgICAgICAgIC0taWRs
QXR0cmlidXRlc0ZpbGUgJHtpZGxfYXR0cmlidXRlc19maWxlfSkKICAgICBpZiAoYXJnX1NVUFBM
RU1FTlRBTF9ERVBGSUxFKQotICAgICAgICBzZXQoX3N1cHBsZW1lbnRhbF9kZXBlbmRlbmN5IC0t
c3VwcGxlbWVudGFsRGVwZW5kZW5jeUZpbGUgJHthcmdfU1VQUExFTUVOVEFMX0RFUEZJTEV9KQot
Ci0gICAgICAgIGFkZF9jdXN0b21fY29tbWFuZCgKLSAgICAgICAgICAgIE9VVFBVVCAke2FyZ19T
VVBQTEVNRU5UQUxfREVQRklMRX0gJHthcmdfUFBfRVhUUkFfT1VUUFVUfQotICAgICAgICAgICAg
REVQRU5EUyAke1dFQkNPUkVfRElSfS9iaW5kaW5ncy9zY3JpcHRzL3ByZXByb2Nlc3MtaWRscy5w
bCAke2FyZ19JTlBVVF9GSUxFU30KLSAgICAgICAgICAgIENPTU1BTkQgJHtQRVJMX0VYRUNVVEFC
TEV9ICR7V0VCQ09SRV9ESVJ9L2JpbmRpbmdzL3NjcmlwdHMvcHJlcHJvY2Vzcy1pZGxzLnBsIC0t
ZGVmaW5lcyAke2FyZ19GRUFUVVJFU30gLS1pZGxGaWxlc0xpc3QgJHtpZGxfZmlsZXNfbGlzdH0g
LS1zdXBwbGVtZW50YWxEZXBlbmRlbmN5RmlsZSAke2FyZ19TVVBQTEVNRU5UQUxfREVQRklMRX0g
JHthcmdfUFBfRVhUUkFfQVJHU30KLSAgICAgICAgICAgIFZFUkJBVElNKQorICAgICAgICBsaXN0
KEFQUEVORCBhcmdzIC0tc3VwcGxlbWVudGFsRGVwZW5kZW5jeUZpbGUgJHthcmdfU1VQUExFTUVO
VEFMX0RFUEZJTEV9KQogICAgIGVuZGlmICgpCi0KLSAgICBzZXQoaWRsX2luY2x1ZGVzKQotICAg
IGZvcmVhY2ggKGRpciAke2FyZ19JRExfSU5DTFVERVN9KQotICAgICAgICBpZiAoSVNfQUJTT0xV
VEUgJHtkaXJ9KQotICAgICAgICAgICAgbGlzdChBUFBFTkQgaWRsX2luY2x1ZGVzIC0taW5jbHVk
ZT0ke2Rpcn0pCisgICAgaWYgKFBST0NFU1NPUl9DT1VOVCkKKyAgICAgICAgbGlzdChBUFBFTkQg
YXJncyAtLW51bU9mSm9icyAke1BST0NFU1NPUl9DT1VOVH0pCisgICAgZW5kaWYgKCkKKyAgICBm
b3JlYWNoIChpIElOIExJU1RTIGFyZ19JRExfSU5DTFVERVMpCisgICAgICAgIGlmIChJU19BQlNP
TFVURSAke2l9KQorICAgICAgICAgICAgbGlzdChBUFBFTkQgYXJncyAtLWluY2x1ZGUgJHtpfSkK
ICAgICAgICAgZWxzZSAoKQotICAgICAgICAgICAgbGlzdChBUFBFTkQgaWRsX2luY2x1ZGVzIC0t
aW5jbHVkZT0ke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vJHtkaXJ9KQorICAgICAgICAgICAg
bGlzdChBUFBFTkQgYXJncyAtLWluY2x1ZGUgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9LyR7
aX0pCiAgICAgICAgIGVuZGlmICgpCiAgICAgZW5kZm9yZWFjaCAoKQorICAgIGZvcmVhY2ggKGkg
SU4gTElTVFMgYXJnX1BQX0VYVFJBX09VVFBVVCkKKyAgICAgICAgbGlzdChBUFBFTkQgYXJncyAt
LXBwRXh0cmFPdXRwdXQgJHtpfSkKKyAgICBlbmRmb3JlYWNoICgpCisgICAgZm9yZWFjaCAoaSBJ
TiBMSVNUUyBhcmdfUFBfRVhUUkFfQVJHUykKKyAgICAgICAgbGlzdChBUFBFTkQgYXJncyAtLXBw
RXh0cmFBcmdzICR7aX0pCisgICAgZW5kZm9yZWFjaCAoKQogCiAgICAgc2V0KGNvbW1vbl9nZW5l
cmF0b3JfZGVwZW5kZW5jaWVzCi0gICAgICAgICR7YmluZGluZ19nZW5lcmF0b3J9Ci0gICAgICAg
ICR7V0VCQ09SRV9ESVJ9L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvci5wbQorICAgICAg
ICAke1dFQkNPUkVfRElSfS9iaW5kaW5ncy9zY3JpcHRzL2dlbmVyYXRlLWJpbmRpbmdzLnBsCiAg
ICAgICAgICR7U0NSSVBUU19CSU5ESU5HU30KLSAgICAgICAgJHthcmdfU1VQUExFTUVOVEFMX0RF
UEZJTEV9Ci0gICAgICAgICR7aWRsX2F0dHJpYnV0ZXNfZmlsZX0KICAgICApCi0gICAgbGlzdChB
UFBFTkQgY29tbW9uX2dlbmVyYXRvcl9kZXBlbmRlbmNpZXMgJHthcmdfUFBfRVhUUkFfT1VUUFVU
fSkKLQogICAgIGlmIChFWElTVFMgJHtXRUJDT1JFX0RJUn0vYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9yJHthcmdfR0VORVJBVE9SfS5wbSkKICAgICAgICAgbGlzdChBUFBFTkQgY29tbW9u
X2dlbmVyYXRvcl9kZXBlbmRlbmNpZXMgJHtXRUJDT1JFX0RJUn0vYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9yJHthcmdfR0VORVJBVE9SfS5wbSkKICAgICBlbmRpZiAoKQogICAgIGlmIChF
WElTVFMgJHthcmdfQkFTRV9ESVJ9L0NvZGVHZW5lcmF0b3Ike2FyZ19HRU5FUkFUT1J9LnBtKQog
ICAgICAgICBsaXN0KEFQUEVORCBjb21tb25fZ2VuZXJhdG9yX2RlcGVuZGVuY2llcyAke2FyZ19C
QVNFX0RJUn0vQ29kZUdlbmVyYXRvciR7YXJnX0dFTkVSQVRPUn0ucG0pCiAgICAgZW5kaWYgKCkK
KyAgICBmb3JlYWNoIChpIElOIExJU1RTIGNvbW1vbl9nZW5lcmF0b3JfZGVwZW5kZW5jaWVzKQor
ICAgICAgICBsaXN0KEFQUEVORCBhcmdzIC0tZ2VuZXJhdG9yRGVwZW5kZW5jeSAke2l9KQorICAg
IGVuZGZvcmVhY2ggKCkKIAogICAgIHNldChnZW5fc291cmNlcykKKyAgICBzZXQoZ2VuX2hlYWRl
cnMpCiAgICAgZm9yZWFjaCAoX2ZpbGUgJHthcmdfSU5QVVRfRklMRVN9KQogICAgICAgICBnZXRf
ZmlsZW5hbWVfY29tcG9uZW50KF9uYW1lICR7X2ZpbGV9IE5BTUVfV0UpCi0KLSAgICAgICAgYWRk
X2N1c3RvbV9jb21tYW5kKAotICAgICAgICAgICAgT1VUUFVUICR7YXJnX0RFU1RJTkFUSU9OfS9K
UyR7X25hbWV9LmNwcCAke2FyZ19ERVNUSU5BVElPTn0vSlMke19uYW1lfS5oCi0gICAgICAgICAg
ICBNQUlOX0RFUEVOREVOQ1kgJHtfZmlsZX0KLSAgICAgICAgICAgIERFUEVORFMgJHtjb21tb25f
Z2VuZXJhdG9yX2RlcGVuZGVuY2llc30KLSAgICAgICAgICAgIENPTU1BTkQgJHtQRVJMX0VYRUNV
VEFCTEV9ICR7YmluZGluZ19nZW5lcmF0b3J9IC0tZGVmaW5lcyAke2FyZ19GRUFUVVJFU30gLS1n
ZW5lcmF0b3IgJHthcmdfR0VORVJBVE9SfSAke2lkbF9pbmNsdWRlc30gLS1vdXRwdXREaXIgJHth
cmdfREVTVElOQVRJT059IC0tcHJlcHJvY2Vzc29yICR7Q09ERV9HRU5FUkFUT1JfUFJFUFJPQ0VT
U09SfSAtLWlkbEF0dHJpYnV0ZXNGaWxlICR7aWRsX2F0dHJpYnV0ZXNfZmlsZX0gJHtfc3VwcGxl
bWVudGFsX2RlcGVuZGVuY3l9ICR7X2ZpbGV9Ci0gICAgICAgICAgICBXT1JLSU5HX0RJUkVDVE9S
WSAke2FyZ19CQVNFX0RJUn0KLSAgICAgICAgICAgIFZFUkJBVElNKQogICAgICAgICBsaXN0KEFQ
UEVORCBnZW5fc291cmNlcyAke2FyZ19ERVNUSU5BVElPTn0vSlMke19uYW1lfS5jcHApCisgICAg
ICAgIGxpc3QoQVBQRU5EIGdlbl9oZWFkZXJzICR7YXJnX0RFU1RJTkFUSU9OfS9KUyR7X25hbWV9
LmgpCiAgICAgZW5kZm9yZWFjaCAoKQogICAgIHNldCgke2FyZ19PVVRQVVRfU09VUkNFfSAkeyR7
YXJnX09VVFBVVF9TT1VSQ0V9fSAke2dlbl9zb3VyY2VzfSBQQVJFTlRfU0NPUEUpCisgICAgc2V0
KGFjdF9hcmdzKQorICAgIGlmICgke0NNQUtFX1ZFUlNJT059IFZFUlNJT05fTEVTUyAzLjIpCisg
ICAgICAgIHNldF9zb3VyY2VfZmlsZXNfcHJvcGVydGllcygke2dlbl9zb3VyY2VzfSAke2dlbl9o
ZWFkZXJzfSBQUk9QRVJUSUVTIEdFTkVSQVRFRCAxKQorICAgIGVsc2UgKCkKKyAgICAgICAgbGlz
dChBUFBFTkQgYWN0X2FyZ3MKKyAgICAgICAgICAgIEJZUFJPRFVDVFMgJHtnZW5fc291cmNlc30g
JHtnZW5faGVhZGVyc30KKyAgICAgICAgICAgIFVTRVNfVEVSTUlOQUwKKyAgICAgICAgKQorICAg
IGVuZGlmICgpCisgICAgYWRkX2N1c3RvbV90YXJnZXQoJHt0YXJnZXR9CisgICAgICAgIENPTU1B
TkQgJHtQRVJMX0VYRUNVVEFCTEV9ICR7YmluZGluZ19nZW5lcmF0b3J9ICR7YXJnc30KKyAgICAg
ICAgV09SS0lOR19ESVJFQ1RPUlkgJHthcmdfQkFTRV9ESVJ9CisgICAgICAgIENPTU1FTlQgIkdl
bmVyYXRlIGJpbmRpbmdzICgke3RhcmdldH0pIgorICAgICAgICBWRVJCQVRJTSAke2FjdF9hcmdz
fSkKIGVuZGZ1bmN0aW9uKCkKIAogbWFjcm8oR0VORVJBVEVfRk9OVF9OQU1FUyBfaW5maWxlKQpk
aWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDc2ZTZk
ZWI4MmM5NjRhZmJjNjIzYTNhMTE1YTc1NjFhMDJmMTdmYWIuLjQ4NjM0YWQwZmFkMmRmNTEyMjFi
NDFmNTlmZGYwZjk3NDJkNGEyMGIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9U
b29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAxNi0xMC0wNyAgRnVqaWkgSGlyb25v
cmkgIDxIaXJvbm9yaS5GdWppaUBzb255LmNvbT4KKworICAgICAgICBbQ01ha2VdIENNYWtlIGRv
ZXMgbm90IHN1cHBvcnQgdGhlIGRlcCBmaWxlcyBmb3IgaW1wbGljaXQgZGVwZW5kZW5jeQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYxNDMzCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ3JlYXRlZCBhIFBl
cmwgc2NyaXB0IHRvIGdlbmVyYXRlIGFsbCBJREwgYmluZGluZ3MgZm9yIENNYWtlLgorICAgICAg
ICBUaGlzIHNjcmlwdCBjYW4gcmVnZW5lcmF0ZSBvdXRkYXRlZCBiaW5kaW5ncyBieSBiYXNlZCBv
biB0aGUKKyAgICAgICAgc3VwcGxlbWVudGFsIGRlcGVuZGVuY3kgYW5kIGRlcCBmaWxlcyBjcmVh
dGVkIGJ5CisgICAgICAgICctLXdyaXRlLWRlcGVuZGVuY2llcycgc3dpdGNoIG9mIGdlbmVyYXRl
LWJpbmRpbmdzLnBsLgorCisgICAgICAgIGFkZF9jdXN0b21fdGFyZ2V0IGlzIHVzZWQgdG8gaW52
b2tlIHRoZSBzY3JpcHQgaW5zdGVhZCBvZgorICAgICAgICBhZGRfY3VzdG9tX2NvbW1hbmQgYmVj
YXVzZSBOaW5qYSBkZWxldGVzIGFsbCBvdXRwdXQgZmlsZXMgYmVmb3JlCisgICAgICAgIGV4ZWN1
dGluZyB0aGUgY29tbWFuZCBpbiBjYXNlIG9mIGFkZF9jdXN0b21fY29tbWFuZC4KKworICAgICAg
ICBVU0VTX1RFUk1JTkFMIG9wdGlvbiBvZiBhZGRfY3VzdG9tX3RhcmdldCBoYXMgdHdvIGVmZmVj
dHM6CisgICAgICAgIDEpIE5vdCBidWZmZXJpbmcgb3V0cHV0IG9mIHRoZSBjb21tYW5kCisgICAg
ICAgIDIpIEludm9raW5nIHRoZSBjb21tYW5kIGluIHRoZSBzcGVjaWFsIE5pbmphIHBvb2wgd2hp
Y2ggaW5oaWJpdHMgcGFyYWxsZWwgYnVpbGQKKyAgICAgICAgT25lIG5lZWRzIHRvIHVzZSBDTWFr
ZSAzLjIgb3IgbGF0ZXIgdG8gZW5hYmxlIHRoaXMgZmVhdHVyZS4KKworICAgICAgICAqIER1bXBS
ZW5kZXJUcmVlL0NNYWtlTGlzdHMudHh0OiBTcGVjaWZpZWQgYSB0YXJnZXQgbmFtZSBmb3IKKyAg
ICAgICAgR0VORVJBVEVfQklORElOR1MuIEFkZGVkIGRlcGVuZGVuY3kgZm9yIHRoZSB0YXJnZXQu
CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9DTWFrZUxpc3RzLnR4dDogRGl0dG8uCisKIDIw
MTYtMTAtMDYgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAg
ICBjaGVjay13ZWJraXQtc3R5bGU6IEVuYWJsZSB0aGUgbGVnYWwvY29weXJpZ2h0IHJ1bGUgZm9y
IGNwcC9oIGZpbGVzCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9DTWFrZUxpc3Rz
LnR4dCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0NNYWtlTGlzdHMudHh0CmluZGV4IGJhZjdjMTNj
NTcyMWFlNmMxOGMwMzM3YzQwZjg0ZGE5ZDcxYWViZGUuLmRjODQyMGRmODlmNzcyYThkYzNlNTg4
ZDViYTg3NzQxNjJmMjc1YjAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0NNYWtl
TGlzdHMudHh0CisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0NNYWtlTGlzdHMudHh0CkBAIC0x
MjAsNyArMTIwLDcgQEAgc2V0KER1bXBSZW5kZXJUcmVlX0lETF9GSUxFUwogICAgICIke1dFQktJ
VF9URVNUUlVOTkVSX1VJU0NSSVBUQ09OVEVYVF9ESVJ9L0JpbmRpbmdzL1VJU2NyaXB0Q29udHJv
bGxlci5pZGwiCiApCiAKLUdFTkVSQVRFX0JJTkRJTkdTKAorR0VORVJBVEVfQklORElOR1MoRHVt
cFJlbmRlclRyZWVCaW5kaW5ncwogICAgIE9VVFBVVF9TT1VSQ0UgRHVtcFJlbmRlclRyZWVfU09V
UkNFUwogICAgIElOUFVUX0ZJTEVTICR7RHVtcFJlbmRlclRyZWVfSURMX0ZJTEVTfQogICAgIEJB
U0VfRElSICR7RFVNUF9SRU5ERVJfVFJFRV9CSU5ESU5HU19ESVJ9CkBAIC0xMzUsNiArMTM1LDcg
QEAgaW5jbHVkZV9kaXJlY3Rvcmllcygke0R1bXBSZW5kZXJUcmVlX0lOQ0xVREVfRElSRUNUT1JJ
RVN9KQogCiBhZGRfZXhlY3V0YWJsZShEdW1wUmVuZGVyVHJlZSAke0R1bXBSZW5kZXJUcmVlX1NP
VVJDRVN9KQogdGFyZ2V0X2xpbmtfbGlicmFyaWVzKER1bXBSZW5kZXJUcmVlICR7RHVtcFJlbmRl
clRyZWVfTElCUkFSSUVTfSkKK2FkZF9kZXBlbmRlbmNpZXMoRHVtcFJlbmRlclRyZWUgRHVtcFJl
bmRlclRyZWVCaW5kaW5ncykKIAogaWYgKEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAg
IGFkZF9saWJyYXJ5KFRlc3ROZXRzY2FwZVBsdWdpbiBTSEFSRUQgJHtUZXN0TmV0c2NhcGVQbHVn
aW5fU09VUkNFU30pCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0NNYWtlTGlz
dHMudHh0IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9DTWFrZUxpc3RzLnR4dAppbmRleCAyN2Vh
MzZjM2JkNDdlZjAyYTY0YTkyN2Y2ODUyMjNkYTM1Yjg0OWZhLi44Yzk4NzY4OGQ0YThjMjdmNDA2
ZjYwMGRjMjVlMGMzYWY4ZDVlZTU2IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0NNYWtlTGlzdHMudHh0CisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvQ01ha2VMaXN0cy50
eHQKQEAgLTk3LDcgKzk3LDcgQEAgc2V0KFdlYktpdFRlc3RSdW5uZXJfSURMX0ZJTEVTCiAgICAg
IiR7V0VCS0lUX1RFU1RSVU5ORVJfVUlTQ1JJUFRDT05URVhUX0RJUn0vQmluZGluZ3MvVUlTY3Jp
cHRDb250cm9sbGVyLmlkbCIKICkKIAotR0VORVJBVEVfQklORElOR1MoCitHRU5FUkFURV9CSU5E
SU5HUyhXZWJLaXRUZXN0UnVubmVySW5qZWN0ZWRCdW5kbGVCaW5kaW5ncwogICAgIE9VVFBVVF9T
T1VSQ0UgV2ViS2l0VGVzdFJ1bm5lckluamVjdGVkQnVuZGxlX1NPVVJDRVMKICAgICBJTlBVVF9G
SUxFUyAke1dlYktpdFRlc3RSdW5uZXJJbmplY3RlZEJ1bmRsZV9JRExfRklMRVN9CiAgICAgQkFT
RV9ESVIgJHtXRUJLSVRfVEVTVFJVTk5FUl9JTkpFQ1RFREJVTkRMRV9ESVJ9L0JpbmRpbmdzCkBA
IC0xMDYsNyArMTA2LDcgQEAgR0VORVJBVEVfQklORElOR1MoCiAgICAgREVTVElOQVRJT04gJHtE
RVJJVkVEX1NPVVJDRVNfRElSfS9JbmplY3RlZEJ1bmRsZQogICAgIEdFTkVSQVRPUiBUZXN0UnVu
bmVyKQogCi1HRU5FUkFURV9CSU5ESU5HUygKK0dFTkVSQVRFX0JJTkRJTkdTKFdlYktpdFRlc3RS
dW5uZXJCaW5kaW5ncwogICAgIE9VVFBVVF9TT1VSQ0UgV2ViS2l0VGVzdFJ1bm5lcl9TT1VSQ0VT
CiAgICAgSU5QVVRfRklMRVMgJHtXZWJLaXRUZXN0UnVubmVyX0lETF9GSUxFU30KICAgICBCQVNF
X0RJUiAke1dFQktJVF9URVNUUlVOTkVSX0lOSkVDVEVEQlVORExFX0RJUn0vQmluZGluZ3MKQEAg
LTEyMiw5ICsxMjIsMTEgQEAgaW5jbHVkZV9kaXJlY3RvcmllcyhTWVNURU0gJHtXZWJLaXRUZXN0
UnVubmVyX1NZU1RFTV9JTkNMVURFX0RJUkVDVE9SSUVTfSkKIAogYWRkX2xpYnJhcnkoVGVzdFJ1
bm5lckluamVjdGVkQnVuZGxlIFNIQVJFRCAke1dlYktpdFRlc3RSdW5uZXJJbmplY3RlZEJ1bmRs
ZV9TT1VSQ0VTfSkKIHRhcmdldF9saW5rX2xpYnJhcmllcyhUZXN0UnVubmVySW5qZWN0ZWRCdW5k
bGUgJHtXZWJLaXRUZXN0UnVubmVyX0xJQlJBUklFU30pCithZGRfZGVwZW5kZW5jaWVzKFRlc3RS
dW5uZXJJbmplY3RlZEJ1bmRsZSBXZWJLaXRUZXN0UnVubmVySW5qZWN0ZWRCdW5kbGVCaW5kaW5n
cykKIAogYWRkX2V4ZWN1dGFibGUoV2ViS2l0VGVzdFJ1bm5lciAke1dlYktpdFRlc3RSdW5uZXJf
U09VUkNFU30pCiB0YXJnZXRfbGlua19saWJyYXJpZXMoV2ViS2l0VGVzdFJ1bm5lciAke1dlYktp
dFRlc3RSdW5uZXJfTElCUkFSSUVTfSkKK2FkZF9kZXBlbmRlbmNpZXMoV2ViS2l0VGVzdFJ1bm5l
ciBXZWJLaXRUZXN0UnVubmVyQmluZGluZ3MpCiAKIGlmIChOT1QgQVBQTEUpCiAgICAgYWRkX2Rl
cGVuZGVuY2llcyhXZWJLaXQyICR7Rm9yd2FyZGluZ0hlYWRlcnNGb3JXZWJLaXRUZXN0UnVubmVy
X05BTUV9KQpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IGUzYzg3M2Zj
NGRmODExMzM2ZjZiZjBkMWQ3OTQwZTY4NDU0ZDZlNGYuLjdlMDJiM2M0ZGMzYzUyMDNkZTliZDk4
NGU4NzkxODE3M2UxNTRmN2YgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cK
QEAgLTEsNSArMSwzMSBAQAogMjAxNi0xMC0wNyAgRnVqaWkgSGlyb25vcmkgIDxIaXJvbm9yaS5G
dWppaUBzb255LmNvbT4KIAorICAgICAgICBbQ01ha2VdIENNYWtlIGRvZXMgbm90IHN1cHBvcnQg
dGhlIGRlcCBmaWxlcyBmb3IgaW1wbGljaXQgZGVwZW5kZW5jeQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYxNDMzCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ3JlYXRlZCBhIFBlcmwgc2NyaXB0IHRvIGdl
bmVyYXRlIGFsbCBJREwgYmluZGluZ3MgZm9yIENNYWtlLgorICAgICAgICBUaGlzIHNjcmlwdCBj
YW4gcmVnZW5lcmF0ZSBvdXRkYXRlZCBiaW5kaW5ncyBieSBiYXNlZCBvbiB0aGUKKyAgICAgICAg
c3VwcGxlbWVudGFsIGRlcGVuZGVuY3kgYW5kIGRlcCBmaWxlcyBjcmVhdGVkIGJ5CisgICAgICAg
ICctLXdyaXRlLWRlcGVuZGVuY2llcycgc3dpdGNoIG9mIGdlbmVyYXRlLWJpbmRpbmdzLnBsLgor
CisgICAgICAgIGFkZF9jdXN0b21fdGFyZ2V0IGlzIHVzZWQgdG8gaW52b2tlIHRoZSBzY3JpcHQg
aW5zdGVhZCBvZgorICAgICAgICBhZGRfY3VzdG9tX2NvbW1hbmQgYmVjYXVzZSBOaW5qYSBkZWxl
dGVzIGFsbCBvdXRwdXQgZmlsZXMgYmVmb3JlCisgICAgICAgIGV4ZWN1dGluZyB0aGUgY29tbWFu
ZCBpbiBjYXNlIG9mIGFkZF9jdXN0b21fY29tbWFuZC4KKworICAgICAgICBVU0VTX1RFUk1JTkFM
IG9wdGlvbiBvZiBhZGRfY3VzdG9tX3RhcmdldCBoYXMgdHdvIGVmZmVjdHM6CisgICAgICAgIDEp
IE5vdCBidWZmZXJpbmcgb3V0cHV0IG9mIHRoZSBjb21tYW5kCisgICAgICAgIDIpIEludm9raW5n
IHRoZSBjb21tYW5kIGluIHRoZSBzcGVjaWFsIE5pbmphIHBvb2wgd2hpY2ggaW5oaWJpdHMgcGFy
YWxsZWwgYnVpbGQKKyAgICAgICAgT25lIG5lZWRzIHRvIHVzZSBDTWFrZSAzLjIgb3IgbGF0ZXIg
dG8gZW5hYmxlIHRoaXMgZmVhdHVyZS4KKworICAgICAgICAqIFNvdXJjZS9jbWFrZS9XZWJLaXRN
YWNyb3MuY21ha2UgKEdFTkVSQVRFX0JJTkRJTkdTKTogSW5jbHVkZWQKKyAgICAgICAgUHJvY2Vz
c29yQ291bnQuICBBZGRlZCBhIG5ldyBhcmd1bWVudCAndGFyZ2V0Jy4gIFVzZQorICAgICAgICBh
ZGRfY3VzdG9tX3RhcmdldCBpbnN0ZWFkIG9mIGFkZF9jdXN0b21fY29tbWFuZC4gIEludm9rZSB0
aGUgbmV3CisgICAgICAgIHNjcmlwdC4KKworMjAxNi0xMC0wNyAgRnVqaWkgSGlyb25vcmkgIDxI
aXJvbm9yaS5GdWppaUBzb255LmNvbT4KKwogICAgICAgICBVc2UgJ3VzZSBsaWIgJEZpbmRCaW46
OkJpbicgdG8gYXBwZW5kIFBlcmwgbW9kdWxlIGluY2x1ZGUgcGF0aAogICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYyMjU2CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>291471</attachid>
            <date>2016-10-13 04:21:18 -0700</date>
            <delta_ts>2016-10-14 00:55:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-161433-20161013201800.patch</filename>
            <type>text/plain</type>
            <size>23962</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA3Mjc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWI5YTc1YzUxYzE1ZWJm
YmM1MjliMWE0NmYzOTQyOGQyNWE5Y2M5NS4uMmE1NDVlOTczOGJlMWFjOTliZjFmYzIyMjNiZTIz
YjJjNWExZmU1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE2LTEwLTEzICBGdWpp
aSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgorCisgICAgICAgIFtDTWFrZV0g
Q01ha2UgZG9lcyBub3Qgc3VwcG9ydCB0aGUgZGVwIGZpbGVzIGZvciBpbXBsaWNpdCBkZXBlbmRl
bmN5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjE0
MzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDcmVh
dGVkIGEgUGVybCBzY3JpcHQgdG8gZ2VuZXJhdGUgYWxsIElETCBiaW5kaW5ncyBmb3IgQ01ha2Uu
CisgICAgICAgIFRoaXMgc2NyaXB0IGNhbiByZWdlbmVyYXRlIG91dGRhdGVkIGJpbmRpbmdzIGJ5
IGJhc2VkIG9uIHRoZQorICAgICAgICBzdXBwbGVtZW50YWwgZGVwZW5kZW5jeSBhbmQgZGVwIGZp
bGVzIGNyZWF0ZWQgYnkKKyAgICAgICAgJy0td3JpdGUtZGVwZW5kZW5jaWVzJyBzd2l0Y2ggb2Yg
Z2VuZXJhdGUtYmluZGluZ3MucGwuCisKKyAgICAgICAgYWRkX2N1c3RvbV90YXJnZXQgaXMgdXNl
ZCB0byBpbnZva2UgdGhlIHNjcmlwdCBpbnN0ZWFkIG9mCisgICAgICAgIGFkZF9jdXN0b21fY29t
bWFuZCBiZWNhdXNlIE5pbmphIGRlbGV0ZXMgYWxsIG91dHB1dCBmaWxlcyBiZWZvcmUKKyAgICAg
ICAgZXhlY3V0aW5nIHRoZSBjb21tYW5kIGluIGNhc2Ugb2YgYWRkX2N1c3RvbV9jb21tYW5kLgor
CisgICAgICAgIFVTRVNfVEVSTUlOQUwgb3B0aW9uIG9mIGFkZF9jdXN0b21fdGFyZ2V0IGhhcyB0
d28gZWZmZWN0czoKKyAgICAgICAgMSkgTm90IGJ1ZmZlcmluZyBvdXRwdXQgb2YgdGhlIGNvbW1h
bmQKKyAgICAgICAgMikgSW52b2tpbmcgdGhlIGNvbW1hbmQgaW4gdGhlIHNwZWNpYWwgTmluamEg
cG9vbCB3aGljaCBpbmhpYml0cyBwYXJhbGxlbCBidWlsZAorICAgICAgICBPbmUgbmVlZHMgdG8g
dXNlIENNYWtlIDMuMiBvciBsYXRlciB0byBlbmFibGUgdGhpcyBmZWF0dXJlLgorCisgICAgICAg
ICogQ01ha2VMaXN0cy50eHQ6IFNwZWNpZmllZCB0YXJnZXQgbmFtZXMgZm9yCisgICAgICAgIEdF
TkVSQVRFX0JJTkRJTkdTLiBBZGRlZCBkZXBlbmRlbmN5IGZvciB0aGUgdGFyZ2V0cy4KKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL2dlbmVyYXRlLWJpbmRpbmdzLWFsbC5wbDogQWRkZWQuCisK
IDIwMTYtMTAtMTIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBb
V2ViIElETF0gRHJvcCBzdXBwb3J0IGZvciBsZWdhY3kgW0NvbnN0cnVjdG9yQ29uZGl0aW9uYWw9
Kl0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggYjI3M2JhYTZiMjkyZGQyMGM0YWRmNDAwNjU0ZTY1
OTQwNGIwZjdjYy4uZGRlNDA4ZDRlOTllNTY2MDI5ZmIzZDU1OTM2MWM3YWM0ZDgyY2QwNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKQEAgLTM2MzcsNyArMzYzNyw3IEBAIGxpc3QoQVBQRU5EIFdlYkNv
cmVfREVSSVZFRF9TT1VSQ0VTICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9YUGF0aEdy
YW1tYXIuCiBzZXQoRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgIkxBTkdVQUdFX0pBVkFTQ1JJ
UFQgJHtGRUFUVVJFX0RFRklORVNfV0lUSF9TUEFDRV9TRVBBUkFUT1J9IikKIGxpc3QoQVBQRU5E
IFdlYkNvcmVUZXN0U3VwcG9ydF9JRExfRklMRVMgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9E
SVJ9L0ludGVybmFsU2V0dGluZ3NHZW5lcmF0ZWQuaWRsKQogCi1HRU5FUkFURV9CSU5ESU5HUygK
K0dFTkVSQVRFX0JJTkRJTkdTKFdlYkNvcmVCaW5kaW5ncwogICAgIE9VVFBVVF9TT1VSQ0UgV2Vi
Q29yZV9ERVJJVkVEX1NPVVJDRVMKICAgICBJTlBVVF9GSUxFUyAke1dlYkNvcmVfSURMX0ZJTEVT
fQogICAgIEJBU0VfRElSICR7V0VCQ09SRV9ESVJ9CkBAIC0zNjUzLDcgKzM2NTMsNyBAQCBHRU5F
UkFURV9CSU5ESU5HUygKICAgICAgICAgLS13b3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0Zp
bGUgJHtXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRX0KICAgICAgICAgLS1kZWRp
Y2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJHtERURJQ0FURURXT1JLRVJH
TE9CQUxTQ09QRV9DT05TVFJVQ1RPUlNfRklMRX0pCiAKLUdFTkVSQVRFX0JJTkRJTkdTKAorR0VO
RVJBVEVfQklORElOR1MoV2ViQ29yZVRlc3RTdXBwb3J0QmluZGluZ3MKICAgICBPVVRQVVRfU09V
UkNFIFdlYkNvcmVUZXN0U3VwcG9ydF9TT1VSQ0VTCiAgICAgSU5QVVRfRklMRVMgJHtXZWJDb3Jl
VGVzdFN1cHBvcnRfSURMX0ZJTEVTfQogICAgIEJBU0VfRElSICR7V0VCQ09SRV9ESVJ9CkBAIC0z
NjYyLDYgKzM2NjIsOSBAQCBHRU5FUkFURV9CSU5ESU5HUygKICAgICBERVNUSU5BVElPTiAke0RF
UklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0KICAgICBHRU5FUkFUT1IgSlMpCiAKKyMgV2ViQ29y
ZVRlc3RTdXBwb3J0QmluZGluZ3MgbmVlZHMgSW50ZXJuYWxTZXR0aW5nc0dlbmVyYXRlZC5pZGwK
K2FkZF9kZXBlbmRlbmNpZXMoV2ViQ29yZVRlc3RTdXBwb3J0QmluZGluZ3MgV2ViQ29yZURlcml2
ZWRTb3VyY2VzKQorCiAjIFdlYkNvcmUgSlMgQnVpbHRpbnMKIAogc2V0KFdlYkNvcmVfQlVJTFRJ
TlNfU09VUkNFUwpAQCAtMzgwNyw3ICszODEwLDcgQEAgZW5kaWYgKCkKICMgZmlsZXMgb24gT1Mg
WC4KIGFkZF9saWJyYXJ5KFdlYkNvcmVEZXJpdmVkU291cmNlcyBTVEFUSUMgJHtXZWJDb3JlX0RF
UklWRURfU09VUkNFU30pCiBzZXRfdGFyZ2V0X3Byb3BlcnRpZXMoV2ViQ29yZURlcml2ZWRTb3Vy
Y2VzIFBST1BFUlRJRVMgT1VUUFVUX05BTUUgV2ViQ29yZURlcml2ZWRTb3VyY2VzJHtERUJVR19T
VUZGSVh9KQotYWRkX2RlcGVuZGVuY2llcyhXZWJDb3JlRGVyaXZlZFNvdXJjZXMgSmF2YVNjcmlw
dENvcmUpCithZGRfZGVwZW5kZW5jaWVzKFdlYkNvcmVEZXJpdmVkU291cmNlcyBKYXZhU2NyaXB0
Q29yZSBXZWJDb3JlQmluZGluZ3MpCiBpZiAoTk9UIFdJTjMyKQogICAgIGxpc3QoQVBQRU5EIFdl
YkNvcmVfTElCUkFSSUVTIFdlYkNvcmVEZXJpdmVkU291cmNlcykKIGVuZGlmICgpCkBAIC0zODM4
LDcgKzM4NDEsNyBAQCBlbmRpZiAoKQogCiBpbmNsdWRlX2RpcmVjdG9yaWVzKCR7V2ViQ29yZVRl
c3RTdXBwb3J0X0lOQ0xVREVfRElSRUNUT1JJRVN9KQogYWRkX2xpYnJhcnkoV2ViQ29yZVRlc3RT
dXBwb3J0ICR7V2ViQ29yZVRlc3RTdXBwb3J0X0xJQlJBUllfVFlQRX0gJHtXZWJDb3JlVGVzdFN1
cHBvcnRfU09VUkNFU30pCi1hZGRfZGVwZW5kZW5jaWVzKFdlYkNvcmVUZXN0U3VwcG9ydCBXZWJD
b3JlKQorYWRkX2RlcGVuZGVuY2llcyhXZWJDb3JlVGVzdFN1cHBvcnQgV2ViQ29yZSBXZWJDb3Jl
VGVzdFN1cHBvcnRCaW5kaW5ncykKIHRhcmdldF9saW5rX2xpYnJhcmllcyhXZWJDb3JlVGVzdFN1
cHBvcnQgJHtXZWJDb3JlVGVzdFN1cHBvcnRfTElCUkFSSUVTfSkKIAogaWYgKFdlYkNvcmVUZXN0
U3VwcG9ydF9PVVRQVVRfTkFNRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvZ2VuZXJhdGUtYmluZGluZ3MtYWxsLnBsIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9nZW5lcmF0ZS1iaW5kaW5ncy1hbGwucGwKbmV3IGZpbGUgbW9kZSAxMDA3NTUK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmIxNzg0NjZm
Njg5ZDNhYzkzN2I2NmRlNWRmM2QyNjFlYWE0NWQzMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUtYmluZGluZ3MtYWxsLnBsCkBAIC0w
LDAgKzEsMjM5IEBACisjIS91c3IvYmluL3BlcmwKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDE2IFNv
bnkgSW50ZXJhY3RpdmUgRW50ZXJ0YWlubWVudCBJbmMuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JyBBTkQgQU5ZCisjIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkKKyMgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OworIyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyMgQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMKKyMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisjCisKK3VzZSBzdHJpY3Q7Cit1c2Ugd2FybmluZ3M7Cit1c2Ug
RmluZEJpbjsKK3VzZSBsaWIgJEZpbmRCaW46OkJpbjsKKwordXNlIEZpbGU6OkJhc2VuYW1lOwor
dXNlIEZpbGU6OlNwZWM7Cit1c2UgRmlsZTo6RmluZDsKK3VzZSBHZXRvcHQ6Okxvbmc7Cit1c2Ug
dGhyZWFkczsKK3VzZSB0aHJlYWRzOjpzaGFyZWQ7Cit1c2UgVGhyZWFkOjpRdWV1ZTsKK3VzZSBp
ZiAkXk8gZXEgJ2N5Z3dpbicsICdXaW4zMjo6Sm9iJzsKKworbXkgJHBlcmwgPSAkXlg7CitteSAk
c2NyaXB0RGlyID0gJEZpbmRCaW46OkJpbjsKK215IEBpZGxEaXJlY3RvcmllczsKK215ICRvdXRw
dXREaXJlY3Rvcnk7CitteSAkaWRsRmlsZXNMaXN0OworbXkgJGdlbmVyYXRvcjsKK215IEBnZW5l
cmF0b3JEZXBlbmRlbmN5OworbXkgJGRlZmluZXM7CitteSAkcHJlcHJvY2Vzc29yOworbXkgJHN1
cHBsZW1lbnRhbERlcGVuZGVuY3lGaWxlOworbXkgQHBwRXh0cmFPdXRwdXQ7CitteSBAcHBFeHRy
YUFyZ3M7CitteSAkbnVtT2ZKb2JzID0gMTsKK215ICRpZGxBdHRyaWJ1dGVzRmlsZTsKKworR2V0
T3B0aW9ucygnaW5jbHVkZT1zQCcgPT4gXEBpZGxEaXJlY3RvcmllcywKKyAgICAgICAgICAgJ291
dHB1dERpcj1zJyA9PiBcJG91dHB1dERpcmVjdG9yeSwKKyAgICAgICAgICAgJ2lkbEZpbGVzTGlz
dD1zJyA9PiBcJGlkbEZpbGVzTGlzdCwKKyAgICAgICAgICAgJ2dlbmVyYXRvcj1zJyA9PiBcJGdl
bmVyYXRvciwKKyAgICAgICAgICAgJ2dlbmVyYXRvckRlcGVuZGVuY3k9c0AnID0+IFxAZ2VuZXJh
dG9yRGVwZW5kZW5jeSwKKyAgICAgICAgICAgJ2RlZmluZXM9cycgPT4gXCRkZWZpbmVzLAorICAg
ICAgICAgICAncHJlcHJvY2Vzc29yPXMnID0+IFwkcHJlcHJvY2Vzc29yLAorICAgICAgICAgICAn
c3VwcGxlbWVudGFsRGVwZW5kZW5jeUZpbGU9cycgPT4gXCRzdXBwbGVtZW50YWxEZXBlbmRlbmN5
RmlsZSwKKyAgICAgICAgICAgJ3BwRXh0cmFPdXRwdXQ9c0AnID0+IFxAcHBFeHRyYU91dHB1dCwK
KyAgICAgICAgICAgJ3BwRXh0cmFBcmdzPXNAJyA9PiBcQHBwRXh0cmFBcmdzLAorICAgICAgICAg
ICAnaWRsQXR0cmlidXRlc0ZpbGU9cycgPT4gXCRpZGxBdHRyaWJ1dGVzRmlsZSwKKyAgICAgICAg
ICAgJ251bU9mSm9icz1pJyA9PiBcJG51bU9mSm9icyk7CisKK215IEBpZGxGaWxlczsKK29wZW4o
bXkgJGZoLCAnPCcsICRpZGxGaWxlc0xpc3QpIG9yIGRpZSAiQ2Fubm90IG9wZW4gJGlkbEZpbGVz
TGlzdCI7CitAaWRsRmlsZXMgPSBtYXAgeyBDeWd3aW5QYXRoSWZOZWVkZWQocy9ccj9cbj8kLy9y
KSB9IDwkZmg+OworY2xvc2UoJGZoKSBvciBkaWU7CisKK215ICVzdXBwbGVtZW50ZWRJZGxGaWxl
czsKK2lmICgkc3VwcGxlbWVudGFsRGVwZW5kZW5jeUZpbGUpIHsKKyAgICBteSBAb3V0cHV0ID0g
KCRzdXBwbGVtZW50YWxEZXBlbmRlbmN5RmlsZSwgQHBwRXh0cmFPdXRwdXQpOworICAgIG15IEBk
ZXBzID0gKEBpZGxGaWxlcywgQGdlbmVyYXRvckRlcGVuZGVuY3kpOworICAgIGlmIChuZWVkc1Vw
ZGF0ZShcQG91dHB1dCwgXEBkZXBzKSkgeworICAgICAgICBteSBAYXJncyA9ICgnLS1kZWZpbmVz
JywgJGRlZmluZXMsCisgICAgICAgICAgICAgICAgICAgICctLWlkbEZpbGVzTGlzdCcsICRpZGxG
aWxlc0xpc3QsCisgICAgICAgICAgICAgICAgICAgICctLXN1cHBsZW1lbnRhbERlcGVuZGVuY3lG
aWxlJywgJHN1cHBsZW1lbnRhbERlcGVuZGVuY3lGaWxlLAorICAgICAgICAgICAgICAgICAgICBA
cHBFeHRyYUFyZ3MpOworICAgICAgICBwcmludCgiUHJlcHJvY2VzcyBJRExcbiIpOworICAgICAg
ICBleGVjdXRlQ29tbWFuZCgkcGVybCwgIiRzY3JpcHREaXIvcHJlcHJvY2Vzcy1pZGxzLnBsIiwg
QGFyZ3MpID09IDAgb3IgZGllOworICAgIH0KKyAgICBvcGVuKG15ICRmaCwgJzwnLCAkc3VwcGxl
bWVudGFsRGVwZW5kZW5jeUZpbGUpIG9yIGRpZSAiQ2Fubm90IG9wZW4gJHN1cHBsZW1lbnRhbERl
cGVuZGVuY3lGaWxlIjsKKyAgICB3aGlsZSAoPCRmaD4pIHsKKyAgICAgICAgbXkgKCRpZGxGaWxl
LCBAZm9sbG93aW5nSWRsRmlsZXMpID0gc3BsaXQoL1xzKy8pOworICAgICAgICAkc3VwcGxlbWVu
dGVkSWRsRmlsZXN7JGlkbEZpbGV9ID0gXEBmb2xsb3dpbmdJZGxGaWxlczsKKyAgICB9CisgICAg
Y2xvc2UoJGZoKSBvciBkaWU7Cit9CisKK215IEBhcmdzID0gKCIkc2NyaXB0RGlyL2dlbmVyYXRl
LWJpbmRpbmdzLnBsIiwKKyAgICAgICAgICAgICctLWRlZmluZXMnLCAkZGVmaW5lcywKKyAgICAg
ICAgICAgICctLWdlbmVyYXRvcicsICRnZW5lcmF0b3IsCisgICAgICAgICAgICAnLS1vdXRwdXRE
aXInLCAkb3V0cHV0RGlyZWN0b3J5LAorICAgICAgICAgICAgJy0tcHJlcHJvY2Vzc29yJywgJHBy
ZXByb2Nlc3NvciwKKyAgICAgICAgICAgICctLWlkbEF0dHJpYnV0ZXNGaWxlJywgJGlkbEF0dHJp
YnV0ZXNGaWxlLAorICAgICAgICAgICAgJy0td3JpdGUtZGVwZW5kZW5jaWVzJyk7CitwdXNoIEBh
cmdzLCBtYXAgeyAoJy0taW5jbHVkZScsICRfKSB9IEBpZGxEaXJlY3RvcmllczsKK3B1c2ggQGFy
Z3MsICctLXN1cHBsZW1lbnRhbERlcGVuZGVuY3lGaWxlJywgJHN1cHBsZW1lbnRhbERlcGVuZGVu
Y3lGaWxlIGlmICRzdXBwbGVtZW50YWxEZXBlbmRlbmN5RmlsZTsKKworbXkgJWRpcmVjdG9yeUNh
Y2hlOworYnVpbGREaXJlY3RvcnlDYWNoZSgpOworCitteSBAaWRsRmlsZXNUb1VwZGF0ZSA9IGdy
ZXAgeworICAgIG15ICgkZmlsZW5hbWUsICRkaXJzLCAkc3VmZml4KSA9IGZpbGVwYXJzZSgkXywg
Jy5pZGwnKTsKKyAgICBteSAkc291cmNlRmlsZSA9IEZpbGU6OlNwZWMtPmNhdGZpbGUoJG91dHB1
dERpcmVjdG9yeSwgIkpTJGZpbGVuYW1lLmNwcCIpOworICAgIG15ICRoZWFkZXJGaWxlID0gRmls
ZTo6U3BlYy0+Y2F0ZmlsZSgkb3V0cHV0RGlyZWN0b3J5LCAiSlMkZmlsZW5hbWUuaCIpOworICAg
IG15ICRkZXBGaWxlID0gRmlsZTo6U3BlYy0+Y2F0ZmlsZSgkb3V0cHV0RGlyZWN0b3J5LCAiSlMk
ZmlsZW5hbWUuZGVwIik7CisgICAgbXkgQG91dHB1dCA9ICgkc291cmNlRmlsZSwgJGhlYWRlckZp
bGUpOworICAgIG15IEBkZXBzID0gKCRfLAorICAgICAgICAgICAgICAgICRpZGxBdHRyaWJ1dGVz
RmlsZSwKKyAgICAgICAgICAgICAgICBAZ2VuZXJhdG9yRGVwZW5kZW5jeSwKKyAgICAgICAgICAg
ICAgICBAeyRzdXBwbGVtZW50ZWRJZGxGaWxlc3skX30gb3IgW119LAorICAgICAgICAgICAgICAg
IGltcGxpY2l0RGVwZW5kZW5jaWVzKCRkZXBGaWxlKSk7CisgICAgbmVlZHNVcGRhdGUoXEBvdXRw
dXQsIFxAZGVwcyk7Cit9IEBpZGxGaWxlczsKK215ICRxdWV1ZSA9IFRocmVhZDo6UXVldWUtPm5l
dyhAaWRsRmlsZXNUb1VwZGF0ZSk7CitteSAkYWJvcnQgOnNoYXJlZCA9IDA7CitteSAkdGVybWlu
YWxXaWR0aCA9IGdldFRlcm1pbmFsV2lkdGgoKTsKK215ICR0b3RhbENvdW50ID0gQGlkbEZpbGVz
VG9VcGRhdGU7CitteSAkY3VycmVudENvdW50IDpzaGFyZWQgPSAwOworCitteSBAdGhyZWFkUG9v
bCA9IG1hcCB7IHRocmVhZHMtPmNyZWF0ZShcJndvcmtlcikgfSAoMSAuLiAkbnVtT2ZKb2JzKTsK
KyRfLT5qb2luIGZvciBAdGhyZWFkUG9vbDsKK2V4aXQgJGFib3J0OworCitzdWIgbmVlZHNVcGRh
dGUKK3sKKyAgICBteSAoJG9iamVjdHMsICRkZXBlbmRzKSA9IEBfOworICAgIG15ICRvbGRlc3RP
YmplY3Q7CisgICAgbXkgJG9sZGVzdE9iamVjdFRpbWU7CisgICAgZm9yIChAJG9iamVjdHMpIHsK
KyAgICAgICAgcmV0dXJuIDEgaWYgIS1mOworICAgICAgICBteSAkbSA9IG10aW1lKCRfKTsKKyAg
ICAgICAgaWYgKCFkZWZpbmVkICRvbGRlc3RPYmplY3RUaW1lIHx8ICRtIDwgJG9sZGVzdE9iamVj
dFRpbWUpIHsKKyAgICAgICAgICAgICRvbGRlc3RPYmplY3QgPSAkXzsKKyAgICAgICAgICAgICRv
bGRlc3RPYmplY3RUaW1lID0gJG07CisgICAgICAgIH0KKyAgICB9CisgICAgZm9yIChAJGRlcGVu
ZHMpIHsKKyAgICAgICAgZGllICJNaXNzaW5nIHJlcXVpcmVkIGRlcGVuZGVuY3k6ICRfIiBpZiAh
LWY7CisgICAgICAgIG15ICRtID0gbXRpbWUoJF8pOworICAgICAgICBpZiAoJG9sZGVzdE9iamVj
dFRpbWUgPCAkbSkgeworICAgICAgICAgICAgIyBwcmludCAiJF8gaXMgbmV3ZXIgdGhhbiAkb2xk
ZXN0T2JqZWN0XG4iOworICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgIH0KKyAgICB9Cisg
ICAgcmV0dXJuIDA7Cit9CisKK3N1YiBtdGltZQoreworICAgIG15ICgkZmlsZSkgPSBAXzsKKyAg
ICByZXR1cm4gKHN0YXQgJGZpbGUpWzldOworfQorCitzdWIgd29ya2VyIHsKKyAgICB3aGlsZSAo
bXkgJGZpbGUgPSAkcXVldWUtPmRlcXVldWVfbmIoKSkgeworICAgICAgICBsYXN0IGlmICRhYm9y
dDsKKyAgICAgICAgZXZhbCB7CisgICAgICAgICAgICAkY3VycmVudENvdW50Kys7CisgICAgICAg
ICAgICBteSAkYmFzZW5hbWUgPSBiYXNlbmFtZSgkZmlsZSk7CisgICAgICAgICAgICBpZiAoJHRl
cm1pbmFsV2lkdGgpIHsKKyAgICAgICAgICAgICAgICBteSAkdyA9ICR0ZXJtaW5hbFdpZHRoIC0g
MTsKKyAgICAgICAgICAgICAgICBwcmludCBzcHJpbnRmKCIlLSouKnNcciIsICR3LCAkdywgIlsk
Y3VycmVudENvdW50LyR0b3RhbENvdW50XSAkYmFzZW5hbWUiKTsKKyAgICAgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICAgICAgcHJpbnQgIlskY3VycmVudENvdW50LyR0b3RhbENvdW50XSAk
YmFzZW5hbWVcbiI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmbHVzaCBTVERPVVQ7Cisg
ICAgICAgICAgICBleGVjdXRlQ29tbWFuZCgkcGVybCwgQGFyZ3MsICRmaWxlKSA9PSAwIG9yIGRp
ZTsKKyAgICAgICAgfTsKKyAgICAgICAgaWYgKCRAKSB7CisgICAgICAgICAgICAkYWJvcnQgPSAx
OworICAgICAgICAgICAgZGllOworICAgICAgICB9CisgICAgfQorfQorCitzdWIgYnVpbGREaXJl
Y3RvcnlDYWNoZQoreworICAgIG15ICR3YW50ZWQgPSBzdWIgeworICAgICAgICAkZGlyZWN0b3J5
Q2FjaGV7JF99ID0gJEZpbGU6OkZpbmQ6Om5hbWU7CisgICAgICAgICRGaWxlOjpGaW5kOjpwcnVu
ZSA9IDEgdW5sZXNzIH4vXC4vOworICAgIH07CisgICAgZmluZCgkd2FudGVkLCBAaWRsRGlyZWN0
b3JpZXMpOworfQorCitzdWIgaW1wbGljaXREZXBlbmRlbmNpZXMKK3sKKyAgICBteSAoJGRlcEZp
bGUpID0gQF87CisgICAgcmV0dXJuICgpIHVubGVzcyAtZiAkZGVwRmlsZTsKKyAgICBvcGVuKG15
ICRmaCwgJzwnLCAkZGVwRmlsZSkgb3IgZGllICJDYW5ub3Qgb3BlbiAkZGVwRmlsZSI7CisgICAg
bXkgJGZpcnN0TGluZSA9IDwkZmg+OworICAgIGNsb3NlKCRmaCkgb3IgZGllOworICAgIG15ICh1
bmRlZiwgJGRlcHMpID0gc3BsaXQoLyA6IC8sICRmaXJzdExpbmUpOworICAgIG15IEBkZXBzID0g
c3BsaXQoL1xzKy8sICRkZXBzKTsKKyAgICByZXR1cm4gbWFwIHsgJGRpcmVjdG9yeUNhY2hleyRf
fSBvciAoKSB9IEBkZXBzOworfQorCitzdWIgZXhlY3V0ZUNvbW1hbmQKK3sKKyAgICBpZiAoJF5P
IGVxICdjeWd3aW4nKSB7CisgICAgICAgICMgVXNlIFdpbjMyIHRvIHdvcmsgYXJvdW5kIEN5Z3dp
biBmb3JrIGZhaWx1cmUKKyAgICAgICAgbXkgQGFyZ3YgPSBxdW90ZUNvbW1hbmQoQF8pOworICAg
ICAgICBteSAkcHJvZ3JhbSA9IEN5Z3dpbjo6cG9zaXhfdG9fd2luX3BhdGgoJF9bMF0pOworICAg
ICAgICAkcHJvZ3JhbSAuPSAnLmV4ZScgaWYgLWYgJHByb2dyYW0gLiAnLmV4ZSc7CisgICAgICAg
IG15ICRqb2IgPSBXaW4zMjo6Sm9iLT5uZXcgb3IgZGllICReRTsKKyAgICAgICAgbXkgJHBpZCA9
ICRqb2ItPnNwYXduKCRwcm9ncmFtLCBqb2luKCcgJywgQGFyZ3YpKSBvciBkaWUgJF5FOworICAg
ICAgICAkam9iLT5ydW4oMCk7CisgICAgICAgIGRpZSAnTm8gc3RhdHVzJyB1bmxlc3MgJGpvYi0+
c3RhdHVzKCktPnskcGlkfTsKKyAgICAgICAgcmV0dXJuICRqb2ItPnN0YXR1cygpLT57JHBpZH17
ZXhpdGNvZGV9OworICAgIH0KKyAgICBpZiAoJF5PIGVxICdNU1dpbjMyJykgeworICAgICAgICBy
ZXR1cm4gc3lzdGVtKHF1b3RlQ29tbWFuZChAXykpOworICAgIH0KKyAgICByZXR1cm4gc3lzdGVt
KEBfKTsKK30KKworc3ViIHF1b3RlQ29tbWFuZAoreworICAgIHJldHVybiBtYXAgeworICAgICAg
ICAnIicgLiBzLyhbXFxcIl0pL1xcJDEvZ3IgLiAnIic7CisgICAgfSBAXzsKK30KKworc3ViIEN5
Z3dpblBhdGhJZk5lZWRlZAoreworICAgIG15ICRwYXRoID0gc2hpZnQ7CisgICAgcmV0dXJuIEN5
Z3dpbjo6d2luX3RvX3Bvc2l4X3BhdGgoJHBhdGgpIGlmICgkXk8gZXEgJ2N5Z3dpbicpOworICAg
IHJldHVybiAkcGF0aDsKK30KKworc3ViIGdldFRlcm1pbmFsV2lkdGgKK3sKKyAgICByZXR1cm4g
MCB1bmxlc3MgLXQ7CisgICAgcmV0dXJuIGBzdHR5IHNpemVgID1+IC8oXGQrKS8gPyAkMSA6IDgw
OworfQpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL1dlYktpdE1hY3Jvcy5jbWFrZSBiL1NvdXJj
ZS9jbWFrZS9XZWJLaXRNYWNyb3MuY21ha2UKaW5kZXggZjI3M2ZhYTNhYTdhYTM5NTA2OTFiOTNk
ZGU5ZmMxNmVkYTgxMWRiYy4uNzk3MjdhMTY1NzEzN2Q5MzhiODc4MzUzMDI0MWZiZmZlMDA1ZDBm
MCAxMDA2NDQKLS0tIGEvU291cmNlL2NtYWtlL1dlYktpdE1hY3Jvcy5jbWFrZQorKysgYi9Tb3Vy
Y2UvY21ha2UvV2ViS2l0TWFjcm9zLmNtYWtlCkBAIC0xLDQgKzEsNiBAQAogaW5jbHVkZShDTWFr
ZVBhcnNlQXJndW1lbnRzKQoraW5jbHVkZShQcm9jZXNzb3JDb3VudCkKK1Byb2Nlc3NvckNvdW50
KFBST0NFU1NPUl9DT1VOVCkKIAogbWFjcm8oV0VCS0lUX0lOQ0xVREVfQ09ORklHX0ZJTEVTX0lG
X0VYSVNUUykKICAgICBzZXQoX2ZpbGUgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L1BsYXRm
b3JtJHtQT1JUfS5jbWFrZSkKQEAgLTQzLDcgKzQ1LDggQEAgbWFjcm8oQUREX1BSRUNPTVBJTEVE
X0hFQURFUiBfaGVhZGVyIF9jcHAgX3NvdXJjZSkKICAgICAjRklYTUU6IEFkZCBzdXBwb3J0IGZv
ciBYY29kZS4KIGVuZG1hY3JvKCkKIAotIyBIZWxwZXIgbWFjcm8gd2hpY2ggd3JhcHMgcHJlcHJv
Y2Vzcy1pZGxzLnBsIGFuZCBnZW5lcmF0ZS1iaW5kaW5ncy5wbCBzY3JpcHRzLgorIyBIZWxwZXIg
bWFjcm8gd2hpY2ggd3JhcHMgZ2VuZXJhdGUtYmluZGluZ3MtYWxsLnBsIHNjcmlwdC4KKyMgICB0
YXJnZXQgaXMgYSBuZXcgdGFyZ2V0IG5hbWUgdG8gYmUgYWRkZWQKICMgICBPVVRQVVRfU09VUkNF
IGlzIGEgbGlzdCBuYW1lIHdoaWNoIHdpbGwgY29udGFpbiBnZW5lcmF0ZWQgc291cmNlcy4oZWcu
IFdlYkNvcmVfU09VUkNFUykKICMgICBJTlBVVF9GSUxFUyBhcmUgSURMIGZpbGVzIHRvIGdlbmVy
YXRlLgogIyAgIEJBU0VfRElSIGlzIGJhc2UgZGlyZWN0b3J5IHdoZXJlIHNjcmlwdCBpcyBjYWxs
ZWQuCkBAIC01NCwxNSArNTcsMTQgQEAgZW5kbWFjcm8oKQogIyAgIFNVUFBMRU1FTlRBTF9ERVBG
SUxFIGlzIGEgdmFsdWUgb2YgLS1zdXBwbGVtZW50YWxEZXBlbmRlbmN5RmlsZS4gKG9wdGlvbmFs
KQogIyAgIFBQX0VYVFJBX09VVFBVVCBpcyBleHRyYSBvdXRwdXRzIG9mIHByZXByb2Nlc3MtaWRs
cy5wbC4gKG9wdGlvbmFsKQogIyAgIFBQX0VYVFJBX0FSR1MgaXMgZXh0cmEgYXJndW1lbnRzIGZv
ciBwcmVwcm9jZXNzLWlkbHMucGwuIChvcHRpb25hbCkKLWZ1bmN0aW9uKEdFTkVSQVRFX0JJTkRJ
TkdTKQorZnVuY3Rpb24oR0VORVJBVEVfQklORElOR1MgdGFyZ2V0KQogICAgIHNldChvcHRpb25z
KQogICAgIHNldChvbmVWYWx1ZUFyZ3MgT1VUUFVUX1NPVVJDRSBCQVNFX0RJUiBGRUFUVVJFUyBE
RVNUSU5BVElPTiBHRU5FUkFUT1IgU1VQUExFTUVOVEFMX0RFUEZJTEUpCiAgICAgc2V0KG11bHRp
VmFsdWVBcmdzIElOUFVUX0ZJTEVTIElETF9JTkNMVURFUyBQUF9FWFRSQV9PVVRQVVQgUFBfRVhU
UkFfQVJHUykKICAgICBjbWFrZV9wYXJzZV9hcmd1bWVudHMoYXJnICIke29wdGlvbnN9IiAiJHtv
bmVWYWx1ZUFyZ3N9IiAiJHttdWx0aVZhbHVlQXJnc30iICR7QVJHTn0pCi0gICAgc2V0KGJpbmRp
bmdfZ2VuZXJhdG9yICR7V0VCQ09SRV9ESVJ9L2JpbmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUtYmlu
ZGluZ3MucGwpCisgICAgc2V0KGJpbmRpbmdfZ2VuZXJhdG9yICR7V0VCQ09SRV9ESVJ9L2JpbmRp
bmdzL3NjcmlwdHMvZ2VuZXJhdGUtYmluZGluZ3MtYWxsLnBsKQogICAgIHNldChpZGxfYXR0cmli
dXRlc19maWxlICR7V0VCQ09SRV9ESVJ9L2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy50
eHQpCi0gICAgc2V0KGlkICR7YXJnX09VVFBVVF9TT1VSQ0V9KQotICAgIHNldChpZGxfZmlsZXNf
bGlzdCAke0NNQUtFX0NVUlJFTlRfQklOQVJZX0RJUn0vaWRsX2ZpbGVzXyR7aWR9LnRtcCkKKyAg
ICBzZXQoaWRsX2ZpbGVzX2xpc3QgJHtDTUFLRV9DVVJSRU5UX0JJTkFSWV9ESVJ9L2lkbF9maWxl
c18ke3RhcmdldH0udG1wKQogICAgIHNldChfc3VwcGxlbWVudGFsX2RlcGVuZGVuY3kpCiAKICAg
ICBzZXQoY29udGVudCkKQEAgLTc0LDU1ICs3Niw2OSBAQCBmdW5jdGlvbihHRU5FUkFURV9CSU5E
SU5HUykKICAgICBlbmRmb3JlYWNoICgpCiAgICAgZmlsZShXUklURSAke2lkbF9maWxlc19saXN0
fSAke2NvbnRlbnR9KQogCisgICAgc2V0KGFyZ3MKKyAgICAgICAgLS1kZWZpbmVzICR7YXJnX0ZF
QVRVUkVTfQorICAgICAgICAtLWdlbmVyYXRvciAke2FyZ19HRU5FUkFUT1J9CisgICAgICAgIC0t
b3V0cHV0RGlyICR7YXJnX0RFU1RJTkFUSU9OfQorICAgICAgICAtLWlkbEZpbGVzTGlzdCAke2lk
bF9maWxlc19saXN0fQorICAgICAgICAtLXByZXByb2Nlc3NvciAke0NPREVfR0VORVJBVE9SX1BS
RVBST0NFU1NPUn0KKyAgICAgICAgLS1pZGxBdHRyaWJ1dGVzRmlsZSAke2lkbF9hdHRyaWJ1dGVz
X2ZpbGV9KQogICAgIGlmIChhcmdfU1VQUExFTUVOVEFMX0RFUEZJTEUpCi0gICAgICAgIHNldChf
c3VwcGxlbWVudGFsX2RlcGVuZGVuY3kgLS1zdXBwbGVtZW50YWxEZXBlbmRlbmN5RmlsZSAke2Fy
Z19TVVBQTEVNRU5UQUxfREVQRklMRX0pCi0KLSAgICAgICAgYWRkX2N1c3RvbV9jb21tYW5kKAot
ICAgICAgICAgICAgT1VUUFVUICR7YXJnX1NVUFBMRU1FTlRBTF9ERVBGSUxFfSAke2FyZ19QUF9F
WFRSQV9PVVRQVVR9Ci0gICAgICAgICAgICBERVBFTkRTICR7V0VCQ09SRV9ESVJ9L2JpbmRpbmdz
L3NjcmlwdHMvcHJlcHJvY2Vzcy1pZGxzLnBsICR7YXJnX0lOUFVUX0ZJTEVTfQotICAgICAgICAg
ICAgQ09NTUFORCAke1BFUkxfRVhFQ1VUQUJMRX0gJHtXRUJDT1JFX0RJUn0vYmluZGluZ3Mvc2Ny
aXB0cy9wcmVwcm9jZXNzLWlkbHMucGwgLS1kZWZpbmVzICR7YXJnX0ZFQVRVUkVTfSAtLWlkbEZp
bGVzTGlzdCAke2lkbF9maWxlc19saXN0fSAtLXN1cHBsZW1lbnRhbERlcGVuZGVuY3lGaWxlICR7
YXJnX1NVUFBMRU1FTlRBTF9ERVBGSUxFfSAke2FyZ19QUF9FWFRSQV9BUkdTfQotICAgICAgICAg
ICAgVkVSQkFUSU0pCisgICAgICAgIGxpc3QoQVBQRU5EIGFyZ3MgLS1zdXBwbGVtZW50YWxEZXBl
bmRlbmN5RmlsZSAke2FyZ19TVVBQTEVNRU5UQUxfREVQRklMRX0pCiAgICAgZW5kaWYgKCkKLQot
ICAgIHNldChpZGxfaW5jbHVkZXMpCi0gICAgZm9yZWFjaCAoZGlyICR7YXJnX0lETF9JTkNMVURF
U30pCi0gICAgICAgIGlmIChJU19BQlNPTFVURSAke2Rpcn0pCi0gICAgICAgICAgICBsaXN0KEFQ
UEVORCBpZGxfaW5jbHVkZXMgLS1pbmNsdWRlPSR7ZGlyfSkKKyAgICBpZiAoUFJPQ0VTU09SX0NP
VU5UKQorICAgICAgICBsaXN0KEFQUEVORCBhcmdzIC0tbnVtT2ZKb2JzICR7UFJPQ0VTU09SX0NP
VU5UfSkKKyAgICBlbmRpZiAoKQorICAgIGZvcmVhY2ggKGkgSU4gTElTVFMgYXJnX0lETF9JTkNM
VURFUykKKyAgICAgICAgaWYgKElTX0FCU09MVVRFICR7aX0pCisgICAgICAgICAgICBsaXN0KEFQ
UEVORCBhcmdzIC0taW5jbHVkZSAke2l9KQogICAgICAgICBlbHNlICgpCi0gICAgICAgICAgICBs
aXN0KEFQUEVORCBpZGxfaW5jbHVkZXMgLS1pbmNsdWRlPSR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0Vf
RElSfS8ke2Rpcn0pCisgICAgICAgICAgICBsaXN0KEFQUEVORCBhcmdzIC0taW5jbHVkZSAke0NN
QUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vJHtpfSkKICAgICAgICAgZW5kaWYgKCkKICAgICBlbmRm
b3JlYWNoICgpCisgICAgZm9yZWFjaCAoaSBJTiBMSVNUUyBhcmdfUFBfRVhUUkFfT1VUUFVUKQor
ICAgICAgICBsaXN0KEFQUEVORCBhcmdzIC0tcHBFeHRyYU91dHB1dCAke2l9KQorICAgIGVuZGZv
cmVhY2ggKCkKKyAgICBmb3JlYWNoIChpIElOIExJU1RTIGFyZ19QUF9FWFRSQV9BUkdTKQorICAg
ICAgICBsaXN0KEFQUEVORCBhcmdzIC0tcHBFeHRyYUFyZ3MgJHtpfSkKKyAgICBlbmRmb3JlYWNo
ICgpCiAKICAgICBzZXQoY29tbW9uX2dlbmVyYXRvcl9kZXBlbmRlbmNpZXMKLSAgICAgICAgJHti
aW5kaW5nX2dlbmVyYXRvcn0KLSAgICAgICAgJHtXRUJDT1JFX0RJUn0vYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9yLnBtCisgICAgICAgICR7V0VCQ09SRV9ESVJ9L2JpbmRpbmdzL3Njcmlw
dHMvZ2VuZXJhdGUtYmluZGluZ3MucGwKICAgICAgICAgJHtTQ1JJUFRTX0JJTkRJTkdTfQotICAg
ICAgICAke2FyZ19TVVBQTEVNRU5UQUxfREVQRklMRX0KLSAgICAgICAgJHtpZGxfYXR0cmlidXRl
c19maWxlfQogICAgICkKLSAgICBsaXN0KEFQUEVORCBjb21tb25fZ2VuZXJhdG9yX2RlcGVuZGVu
Y2llcyAke2FyZ19QUF9FWFRSQV9PVVRQVVR9KQotCiAgICAgaWYgKEVYSVNUUyAke1dFQkNPUkVf
RElSfS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3Ike2FyZ19HRU5FUkFUT1J9LnBtKQog
ICAgICAgICBsaXN0KEFQUEVORCBjb21tb25fZ2VuZXJhdG9yX2RlcGVuZGVuY2llcyAke1dFQkNP
UkVfRElSfS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3Ike2FyZ19HRU5FUkFUT1J9LnBt
KQogICAgIGVuZGlmICgpCiAgICAgaWYgKEVYSVNUUyAke2FyZ19CQVNFX0RJUn0vQ29kZUdlbmVy
YXRvciR7YXJnX0dFTkVSQVRPUn0ucG0pCiAgICAgICAgIGxpc3QoQVBQRU5EIGNvbW1vbl9nZW5l
cmF0b3JfZGVwZW5kZW5jaWVzICR7YXJnX0JBU0VfRElSfS9Db2RlR2VuZXJhdG9yJHthcmdfR0VO
RVJBVE9SfS5wbSkKICAgICBlbmRpZiAoKQorICAgIGZvcmVhY2ggKGkgSU4gTElTVFMgY29tbW9u
X2dlbmVyYXRvcl9kZXBlbmRlbmNpZXMpCisgICAgICAgIGxpc3QoQVBQRU5EIGFyZ3MgLS1nZW5l
cmF0b3JEZXBlbmRlbmN5ICR7aX0pCisgICAgZW5kZm9yZWFjaCAoKQogCiAgICAgc2V0KGdlbl9z
b3VyY2VzKQorICAgIHNldChnZW5faGVhZGVycykKICAgICBmb3JlYWNoIChfZmlsZSAke2FyZ19J
TlBVVF9GSUxFU30pCiAgICAgICAgIGdldF9maWxlbmFtZV9jb21wb25lbnQoX25hbWUgJHtfZmls
ZX0gTkFNRV9XRSkKLQotICAgICAgICBhZGRfY3VzdG9tX2NvbW1hbmQoCi0gICAgICAgICAgICBP
VVRQVVQgJHthcmdfREVTVElOQVRJT059L0pTJHtfbmFtZX0uY3BwICR7YXJnX0RFU1RJTkFUSU9O
fS9KUyR7X25hbWV9LmgKLSAgICAgICAgICAgIE1BSU5fREVQRU5ERU5DWSAke19maWxlfQotICAg
ICAgICAgICAgREVQRU5EUyAke2NvbW1vbl9nZW5lcmF0b3JfZGVwZW5kZW5jaWVzfQotICAgICAg
ICAgICAgQ09NTUFORCAke1BFUkxfRVhFQ1VUQUJMRX0gJHtiaW5kaW5nX2dlbmVyYXRvcn0gLS1k
ZWZpbmVzICR7YXJnX0ZFQVRVUkVTfSAtLWdlbmVyYXRvciAke2FyZ19HRU5FUkFUT1J9ICR7aWRs
X2luY2x1ZGVzfSAtLW91dHB1dERpciAke2FyZ19ERVNUSU5BVElPTn0gLS1wcmVwcm9jZXNzb3Ig
JHtDT0RFX0dFTkVSQVRPUl9QUkVQUk9DRVNTT1J9IC0taWRsQXR0cmlidXRlc0ZpbGUgJHtpZGxf
YXR0cmlidXRlc19maWxlfSAke19zdXBwbGVtZW50YWxfZGVwZW5kZW5jeX0gJHtfZmlsZX0KLSAg
ICAgICAgICAgIFdPUktJTkdfRElSRUNUT1JZICR7YXJnX0JBU0VfRElSfQotICAgICAgICAgICAg
VkVSQkFUSU0pCiAgICAgICAgIGxpc3QoQVBQRU5EIGdlbl9zb3VyY2VzICR7YXJnX0RFU1RJTkFU
SU9OfS9KUyR7X25hbWV9LmNwcCkKKyAgICAgICAgbGlzdChBUFBFTkQgZ2VuX2hlYWRlcnMgJHth
cmdfREVTVElOQVRJT059L0pTJHtfbmFtZX0uaCkKICAgICBlbmRmb3JlYWNoICgpCiAgICAgc2V0
KCR7YXJnX09VVFBVVF9TT1VSQ0V9ICR7JHthcmdfT1VUUFVUX1NPVVJDRX19ICR7Z2VuX3NvdXJj
ZXN9IFBBUkVOVF9TQ09QRSkKKyAgICBzZXQoYWN0X2FyZ3MpCisgICAgaWYgKCR7Q01BS0VfVkVS
U0lPTn0gVkVSU0lPTl9MRVNTIDMuMikKKyAgICAgICAgc2V0X3NvdXJjZV9maWxlc19wcm9wZXJ0
aWVzKCR7Z2VuX3NvdXJjZXN9ICR7Z2VuX2hlYWRlcnN9IFBST1BFUlRJRVMgR0VORVJBVEVEIDEp
CisgICAgZWxzZSAoKQorICAgICAgICBsaXN0KEFQUEVORCBhY3RfYXJncworICAgICAgICAgICAg
QllQUk9EVUNUUyAke2dlbl9zb3VyY2VzfSAke2dlbl9oZWFkZXJzfQorICAgICAgICAgICAgVVNF
U19URVJNSU5BTAorICAgICAgICApCisgICAgZW5kaWYgKCkKKyAgICBhZGRfY3VzdG9tX3Rhcmdl
dCgke3RhcmdldH0KKyAgICAgICAgQ09NTUFORCAke1BFUkxfRVhFQ1VUQUJMRX0gJHtiaW5kaW5n
X2dlbmVyYXRvcn0gJHthcmdzfQorICAgICAgICBXT1JLSU5HX0RJUkVDVE9SWSAke2FyZ19CQVNF
X0RJUn0KKyAgICAgICAgQ09NTUVOVCAiR2VuZXJhdGUgYmluZGluZ3MgKCR7dGFyZ2V0fSkiCisg
ICAgICAgIFZFUkJBVElNICR7YWN0X2FyZ3N9KQogZW5kZnVuY3Rpb24oKQogCiBtYWNybyhHRU5F
UkFURV9GT05UX05BTUVTIF9pbmZpbGUpCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9U
b29scy9DaGFuZ2VMb2cKaW5kZXggZTdjNTMyNmUwOWIzYmNiYzgyNmE2NGI0MDJlY2E2MGU4NmM1
YWJhMS4uNTU3YTZhZDVhM2RjNDBmOTE3NzkzMTRlMDRhZWQ5YjA0NGU0MGJmYSAxMDA2NDQKLS0t
IGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBA
CisyMDE2LTEwLTEzICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgor
CisgICAgICAgIFtDTWFrZV0gQ01ha2UgZG9lcyBub3Qgc3VwcG9ydCB0aGUgZGVwIGZpbGVzIGZv
ciBpbXBsaWNpdCBkZXBlbmRlbmN5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNjE0MzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBDcmVhdGVkIGEgUGVybCBzY3JpcHQgdG8gZ2VuZXJhdGUgYWxsIElETCBi
aW5kaW5ncyBmb3IgQ01ha2UuCisgICAgICAgIFRoaXMgc2NyaXB0IGNhbiByZWdlbmVyYXRlIG91
dGRhdGVkIGJpbmRpbmdzIGJ5IGJhc2VkIG9uIHRoZQorICAgICAgICBzdXBwbGVtZW50YWwgZGVw
ZW5kZW5jeSBhbmQgZGVwIGZpbGVzIGNyZWF0ZWQgYnkKKyAgICAgICAgJy0td3JpdGUtZGVwZW5k
ZW5jaWVzJyBzd2l0Y2ggb2YgZ2VuZXJhdGUtYmluZGluZ3MucGwuCisKKyAgICAgICAgYWRkX2N1
c3RvbV90YXJnZXQgaXMgdXNlZCB0byBpbnZva2UgdGhlIHNjcmlwdCBpbnN0ZWFkIG9mCisgICAg
ICAgIGFkZF9jdXN0b21fY29tbWFuZCBiZWNhdXNlIE5pbmphIGRlbGV0ZXMgYWxsIG91dHB1dCBm
aWxlcyBiZWZvcmUKKyAgICAgICAgZXhlY3V0aW5nIHRoZSBjb21tYW5kIGluIGNhc2Ugb2YgYWRk
X2N1c3RvbV9jb21tYW5kLgorCisgICAgICAgIFVTRVNfVEVSTUlOQUwgb3B0aW9uIG9mIGFkZF9j
dXN0b21fdGFyZ2V0IGhhcyB0d28gZWZmZWN0czoKKyAgICAgICAgMSkgTm90IGJ1ZmZlcmluZyBv
dXRwdXQgb2YgdGhlIGNvbW1hbmQKKyAgICAgICAgMikgSW52b2tpbmcgdGhlIGNvbW1hbmQgaW4g
dGhlIHNwZWNpYWwgTmluamEgcG9vbCB3aGljaCBpbmhpYml0cyBwYXJhbGxlbCBidWlsZAorICAg
ICAgICBPbmUgbmVlZHMgdG8gdXNlIENNYWtlIDMuMiBvciBsYXRlciB0byBlbmFibGUgdGhpcyBm
ZWF0dXJlLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvQ01ha2VMaXN0cy50eHQ6IFNwZWNp
ZmllZCBhIHRhcmdldCBuYW1lIGZvcgorICAgICAgICBHRU5FUkFURV9CSU5ESU5HUy4gQWRkZWQg
ZGVwZW5kZW5jeSBmb3IgdGhlIHRhcmdldC4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0NN
YWtlTGlzdHMudHh0OiBEaXR0by4KKwogMjAxNi0xMC0xMiAgQWxleCBDaHJpc3RlbnNlbiAgPGFj
aHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIEZpeCBvdXQtb2YtYm91bmRzIHJlYWRp
bmcgaW4gVVJMUGFyc2VyIHdoZW4gcGFyc2luZyBpbXByb3Blcmx5IHBlcmNlbnQtZW5jb2RlZCB2
YWx1ZXMKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0NNYWtlTGlzdHMudHh0IGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvQ01ha2VMaXN0cy50eHQKaW5kZXggYmFmN2MxM2M1NzIxYWU2
YzE4YzAzMzdjNDBmODRkYTlkNzFhZWJkZS4uZGM4NDIwZGY4OWY3NzJhOGRjM2U1ODhkNWJhODc3
NDE2MmYyNzViMCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvQ01ha2VMaXN0cy50
eHQKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvQ01ha2VMaXN0cy50eHQKQEAgLTEyMCw3ICsx
MjAsNyBAQCBzZXQoRHVtcFJlbmRlclRyZWVfSURMX0ZJTEVTCiAgICAgIiR7V0VCS0lUX1RFU1RS
VU5ORVJfVUlTQ1JJUFRDT05URVhUX0RJUn0vQmluZGluZ3MvVUlTY3JpcHRDb250cm9sbGVyLmlk
bCIKICkKIAotR0VORVJBVEVfQklORElOR1MoCitHRU5FUkFURV9CSU5ESU5HUyhEdW1wUmVuZGVy
VHJlZUJpbmRpbmdzCiAgICAgT1VUUFVUX1NPVVJDRSBEdW1wUmVuZGVyVHJlZV9TT1VSQ0VTCiAg
ICAgSU5QVVRfRklMRVMgJHtEdW1wUmVuZGVyVHJlZV9JRExfRklMRVN9CiAgICAgQkFTRV9ESVIg
JHtEVU1QX1JFTkRFUl9UUkVFX0JJTkRJTkdTX0RJUn0KQEAgLTEzNSw2ICsxMzUsNyBAQCBpbmNs
dWRlX2RpcmVjdG9yaWVzKCR7RHVtcFJlbmRlclRyZWVfSU5DTFVERV9ESVJFQ1RPUklFU30pCiAK
IGFkZF9leGVjdXRhYmxlKER1bXBSZW5kZXJUcmVlICR7RHVtcFJlbmRlclRyZWVfU09VUkNFU30p
CiB0YXJnZXRfbGlua19saWJyYXJpZXMoRHVtcFJlbmRlclRyZWUgJHtEdW1wUmVuZGVyVHJlZV9M
SUJSQVJJRVN9KQorYWRkX2RlcGVuZGVuY2llcyhEdW1wUmVuZGVyVHJlZSBEdW1wUmVuZGVyVHJl
ZUJpbmRpbmdzKQogCiBpZiAoRU5BQkxFX05FVFNDQVBFX1BMVUdJTl9BUEkpCiAgICAgYWRkX2xp
YnJhcnkoVGVzdE5ldHNjYXBlUGx1Z2luIFNIQVJFRCAke1Rlc3ROZXRzY2FwZVBsdWdpbl9TT1VS
Q0VTfSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvQ01ha2VMaXN0cy50eHQg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0NNYWtlTGlzdHMudHh0CmluZGV4IDI3ZWEzNmMzYmQ0
N2VmMDJhNjRhOTI3ZjY4NTIyM2RhMzViODQ5ZmEuLjhjOTg3Njg4ZDRhOGMyN2Y0MDZmNjAwZGMy
NWUwYzNhZjhkNWVlNTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvQ01ha2VM
aXN0cy50eHQKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9DTWFrZUxpc3RzLnR4dApAQCAt
OTcsNyArOTcsNyBAQCBzZXQoV2ViS2l0VGVzdFJ1bm5lcl9JRExfRklMRVMKICAgICAiJHtXRUJL
SVRfVEVTVFJVTk5FUl9VSVNDUklQVENPTlRFWFRfRElSfS9CaW5kaW5ncy9VSVNjcmlwdENvbnRy
b2xsZXIuaWRsIgogKQogCi1HRU5FUkFURV9CSU5ESU5HUygKK0dFTkVSQVRFX0JJTkRJTkdTKFdl
YktpdFRlc3RSdW5uZXJJbmplY3RlZEJ1bmRsZUJpbmRpbmdzCiAgICAgT1VUUFVUX1NPVVJDRSBX
ZWJLaXRUZXN0UnVubmVySW5qZWN0ZWRCdW5kbGVfU09VUkNFUwogICAgIElOUFVUX0ZJTEVTICR7
V2ViS2l0VGVzdFJ1bm5lckluamVjdGVkQnVuZGxlX0lETF9GSUxFU30KICAgICBCQVNFX0RJUiAk
e1dFQktJVF9URVNUUlVOTkVSX0lOSkVDVEVEQlVORExFX0RJUn0vQmluZGluZ3MKQEAgLTEwNiw3
ICsxMDYsNyBAQCBHRU5FUkFURV9CSU5ESU5HUygKICAgICBERVNUSU5BVElPTiAke0RFUklWRURf
U09VUkNFU19ESVJ9L0luamVjdGVkQnVuZGxlCiAgICAgR0VORVJBVE9SIFRlc3RSdW5uZXIpCiAK
LUdFTkVSQVRFX0JJTkRJTkdTKAorR0VORVJBVEVfQklORElOR1MoV2ViS2l0VGVzdFJ1bm5lckJp
bmRpbmdzCiAgICAgT1VUUFVUX1NPVVJDRSBXZWJLaXRUZXN0UnVubmVyX1NPVVJDRVMKICAgICBJ
TlBVVF9GSUxFUyAke1dlYktpdFRlc3RSdW5uZXJfSURMX0ZJTEVTfQogICAgIEJBU0VfRElSICR7
V0VCS0lUX1RFU1RSVU5ORVJfSU5KRUNURURCVU5ETEVfRElSfS9CaW5kaW5ncwpAQCAtMTIyLDkg
KzEyMiwxMSBAQCBpbmNsdWRlX2RpcmVjdG9yaWVzKFNZU1RFTSAke1dlYktpdFRlc3RSdW5uZXJf
U1lTVEVNX0lOQ0xVREVfRElSRUNUT1JJRVN9KQogCiBhZGRfbGlicmFyeShUZXN0UnVubmVySW5q
ZWN0ZWRCdW5kbGUgU0hBUkVEICR7V2ViS2l0VGVzdFJ1bm5lckluamVjdGVkQnVuZGxlX1NPVVJD
RVN9KQogdGFyZ2V0X2xpbmtfbGlicmFyaWVzKFRlc3RSdW5uZXJJbmplY3RlZEJ1bmRsZSAke1dl
YktpdFRlc3RSdW5uZXJfTElCUkFSSUVTfSkKK2FkZF9kZXBlbmRlbmNpZXMoVGVzdFJ1bm5lcklu
amVjdGVkQnVuZGxlIFdlYktpdFRlc3RSdW5uZXJJbmplY3RlZEJ1bmRsZUJpbmRpbmdzKQogCiBh
ZGRfZXhlY3V0YWJsZShXZWJLaXRUZXN0UnVubmVyICR7V2ViS2l0VGVzdFJ1bm5lcl9TT1VSQ0VT
fSkKIHRhcmdldF9saW5rX2xpYnJhcmllcyhXZWJLaXRUZXN0UnVubmVyICR7V2ViS2l0VGVzdFJ1
bm5lcl9MSUJSQVJJRVN9KQorYWRkX2RlcGVuZGVuY2llcyhXZWJLaXRUZXN0UnVubmVyIFdlYktp
dFRlc3RSdW5uZXJCaW5kaW5ncykKIAogaWYgKE5PVCBBUFBMRSkKICAgICBhZGRfZGVwZW5kZW5j
aWVzKFdlYktpdDIgJHtGb3J3YXJkaW5nSGVhZGVyc0ZvcldlYktpdFRlc3RSdW5uZXJfTkFNRX0p
CmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggMjNiMzcwOTNkYmM0ZTQ1
OWUzMWYwM2JjNTRiOGY1YTliYmFiNzZjNC4uMGVkMzdmNTYxOTdlYjNjM2I0MjBmMGRkY2U3YjFm
YjI2MTliNzQ1NiAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDI5IEBACisyMDE2LTEwLTEzICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNv
bnkuY29tPgorCisgICAgICAgIFtDTWFrZV0gQ01ha2UgZG9lcyBub3Qgc3VwcG9ydCB0aGUgZGVw
IGZpbGVzIGZvciBpbXBsaWNpdCBkZXBlbmRlbmN5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjE0MzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBDcmVhdGVkIGEgUGVybCBzY3JpcHQgdG8gZ2VuZXJhdGUg
YWxsIElETCBiaW5kaW5ncyBmb3IgQ01ha2UuCisgICAgICAgIFRoaXMgc2NyaXB0IGNhbiByZWdl
bmVyYXRlIG91dGRhdGVkIGJpbmRpbmdzIGJ5IGJhc2VkIG9uIHRoZQorICAgICAgICBzdXBwbGVt
ZW50YWwgZGVwZW5kZW5jeSBhbmQgZGVwIGZpbGVzIGNyZWF0ZWQgYnkKKyAgICAgICAgJy0td3Jp
dGUtZGVwZW5kZW5jaWVzJyBzd2l0Y2ggb2YgZ2VuZXJhdGUtYmluZGluZ3MucGwuCisKKyAgICAg
ICAgYWRkX2N1c3RvbV90YXJnZXQgaXMgdXNlZCB0byBpbnZva2UgdGhlIHNjcmlwdCBpbnN0ZWFk
IG9mCisgICAgICAgIGFkZF9jdXN0b21fY29tbWFuZCBiZWNhdXNlIE5pbmphIGRlbGV0ZXMgYWxs
IG91dHB1dCBmaWxlcyBiZWZvcmUKKyAgICAgICAgZXhlY3V0aW5nIHRoZSBjb21tYW5kIGluIGNh
c2Ugb2YgYWRkX2N1c3RvbV9jb21tYW5kLgorCisgICAgICAgIFVTRVNfVEVSTUlOQUwgb3B0aW9u
IG9mIGFkZF9jdXN0b21fdGFyZ2V0IGhhcyB0d28gZWZmZWN0czoKKyAgICAgICAgMSkgTm90IGJ1
ZmZlcmluZyBvdXRwdXQgb2YgdGhlIGNvbW1hbmQKKyAgICAgICAgMikgSW52b2tpbmcgdGhlIGNv
bW1hbmQgaW4gdGhlIHNwZWNpYWwgTmluamEgcG9vbCB3aGljaCBpbmhpYml0cyBwYXJhbGxlbCBi
dWlsZAorICAgICAgICBPbmUgbmVlZHMgdG8gdXNlIENNYWtlIDMuMiBvciBsYXRlciB0byBlbmFi
bGUgdGhpcyBmZWF0dXJlLgorCisgICAgICAgICogU291cmNlL2NtYWtlL1dlYktpdE1hY3Jvcy5j
bWFrZSAoR0VORVJBVEVfQklORElOR1MpOiBJbmNsdWRlZAorICAgICAgICBQcm9jZXNzb3JDb3Vu
dC4gIEFkZGVkIGEgbmV3IGFyZ3VtZW50ICd0YXJnZXQnLiAgVXNlCisgICAgICAgIGFkZF9jdXN0
b21fdGFyZ2V0IGluc3RlYWQgb2YgYWRkX2N1c3RvbV9jb21tYW5kLiAgSW52b2tlIHRoZSBuZXcK
KyAgICAgICAgc2NyaXB0LgorCiAyMDE2LTEwLTEyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CiAKICAgICAgICAgW1dlYiBJRExdIERyb3Agc3VwcG9ydCBmb3IgbGVnYWN5IFtDb25z
dHJ1Y3RvckNvbmRpdGlvbmFsPSpdCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>291573</attachid>
            <date>2016-10-13 23:11:47 -0700</date>
            <delta_ts>2016-10-13 23:12:11 -0700</delta_ts>
            <desc>Minimal test case for Cygwin Perl</desc>
            <filename>bug.pl</filename>
            <type>text/plain</type>
            <size>467</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">dXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdGhyZWFkczsKdXNlIHRocmVhZHM6OnNoYXJl
ZDsKdXNlIFRocmVhZDo6UXVldWU7CgpteSAkcXVldWUgPSBUaHJlYWQ6OlF1ZXVlLT5uZXcoMS4u
MTAwKTsKbXkgJGFib3J0IDpzaGFyZWQgPSAwOwpteSBAdGhyZWFkUG9vbCA9IG1hcCB7IHRocmVh
ZHMtPmNyZWF0ZShcJndvcmtlcikgfSAoMSAuLiA4KTsKJF8tPmpvaW4gZm9yIEB0aHJlYWRQb29s
OwpleGl0ICRhYm9ydDsKCnN1YiB3b3JrZXIgewogICAgd2hpbGUgKG15ICRuID0gJHF1ZXVlLT5k
ZXF1ZXVlX25iKCkpIHsKICAgICAgICBsYXN0IGlmICRhYm9ydDsKICAgICAgICBldmFsIHsKCSAg
ICBzeXN0ZW0oJ2VjaG8nLCAiJG4iKSA9PSAwIG9yIGRpZTsKICAgICAgICB9OwogICAgICAgIGlm
ICgkQCkgewogICAgICAgICAgICAkYWJvcnQgPSAxOwogICAgICAgICAgICBkaWU7CiAgICAgICAg
fQogICAgfTsKfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>291589</attachid>
            <date>2016-10-14 00:55:47 -0700</date>
            <delta_ts>2016-10-16 18:28:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-161433-20161014005229.patch</filename>
            <type>text/plain</type>
            <size>23760</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA3MzIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjY3MTVjNzM0MjVjMTUw
MzEwMjg0MmI5MDkzYzcwYTZkNTg5NTFhMS4uZGRhYWY4NjJiZmM5ZWE1YTZiODI5Y2FmY2FhNWU2
ZDMxMTlkMTNmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE2LTEwLTEzICBGdWpp
aSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgorCisgICAgICAgIFtDTWFrZV0g
Q01ha2UgZG9lcyBub3Qgc3VwcG9ydCB0aGUgZGVwIGZpbGVzIGZvciBpbXBsaWNpdCBkZXBlbmRl
bmN5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjE0
MzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDcmVh
dGVkIGEgUGVybCBzY3JpcHQgdG8gZ2VuZXJhdGUgYWxsIElETCBiaW5kaW5ncyBmb3IgQ01ha2Uu
CisgICAgICAgIFRoaXMgc2NyaXB0IGNhbiByZWdlbmVyYXRlIG91dGRhdGVkIGJpbmRpbmdzIGJ5
IGJhc2VkIG9uIHRoZQorICAgICAgICBzdXBwbGVtZW50YWwgZGVwZW5kZW5jeSBhbmQgZGVwIGZp
bGVzIGNyZWF0ZWQgYnkKKyAgICAgICAgJy0td3JpdGUtZGVwZW5kZW5jaWVzJyBzd2l0Y2ggb2Yg
Z2VuZXJhdGUtYmluZGluZ3MucGwuCisKKyAgICAgICAgYWRkX2N1c3RvbV90YXJnZXQgaXMgdXNl
ZCB0byBpbnZva2UgdGhlIHNjcmlwdCBpbnN0ZWFkIG9mCisgICAgICAgIGFkZF9jdXN0b21fY29t
bWFuZCBiZWNhdXNlIE5pbmphIGRlbGV0ZXMgYWxsIG91dHB1dCBmaWxlcyBiZWZvcmUKKyAgICAg
ICAgZXhlY3V0aW5nIHRoZSBjb21tYW5kIGluIGNhc2Ugb2YgYWRkX2N1c3RvbV9jb21tYW5kLgor
CisgICAgICAgIFVTRVNfVEVSTUlOQUwgb3B0aW9uIG9mIGFkZF9jdXN0b21fdGFyZ2V0IGhhcyB0
d28gZWZmZWN0czoKKyAgICAgICAgMSkgTm90IGJ1ZmZlcmluZyBvdXRwdXQgb2YgdGhlIGNvbW1h
bmQKKyAgICAgICAgMikgSW52b2tpbmcgdGhlIGNvbW1hbmQgaW4gdGhlIHNwZWNpYWwgTmluamEg
cG9vbCB3aGljaCBpbmhpYml0cyBwYXJhbGxlbCBidWlsZAorICAgICAgICBPbmUgbmVlZHMgdG8g
dXNlIENNYWtlIDMuMiBvciBsYXRlciB0byBlbmFibGUgdGhpcyBmZWF0dXJlLgorCisgICAgICAg
ICogQ01ha2VMaXN0cy50eHQ6IFNwZWNpZmllZCB0YXJnZXQgbmFtZXMgZm9yCisgICAgICAgIEdF
TkVSQVRFX0JJTkRJTkdTLiBBZGRlZCBkZXBlbmRlbmN5IGZvciB0aGUgdGFyZ2V0cy4KKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL2dlbmVyYXRlLWJpbmRpbmdzLWFsbC5wbDogQWRkZWQuCisK
IDIwMTYtMTAtMTMgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4K
IAogICAgICAgICBGaXggQVBJIHRlc3QgYWZ0ZXIgcjIwNzMxOC4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQK
aW5kZXggMzYzZTU4MTczODVmMTRkN2I3OWE3MDBhZGU4MmQ5NTA1MzI0YmRjMi4uNDQ3Njg0YmE2
ZWYyYmVkNDAyNjg3MWFlMjgwNTAxNjg3YTU1YTM1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAg
LTM2MzcsNyArMzYzNyw3IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfREVSSVZFRF9TT1VSQ0VTICR7
REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9YUGF0aEdyYW1tYXIuCiBzZXQoRkVBVFVSRV9E
RUZJTkVTX0pBVkFTQ1JJUFQgIkxBTkdVQUdFX0pBVkFTQ1JJUFQgJHtGRUFUVVJFX0RFRklORVNf
V0lUSF9TUEFDRV9TRVBBUkFUT1J9IikKIGxpc3QoQVBQRU5EIFdlYkNvcmVUZXN0U3VwcG9ydF9J
RExfRklMRVMgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9L0ludGVybmFsU2V0dGluZ3NH
ZW5lcmF0ZWQuaWRsKQogCi1HRU5FUkFURV9CSU5ESU5HUygKK0dFTkVSQVRFX0JJTkRJTkdTKFdl
YkNvcmVCaW5kaW5ncwogICAgIE9VVFBVVF9TT1VSQ0UgV2ViQ29yZV9ERVJJVkVEX1NPVVJDRVMK
ICAgICBJTlBVVF9GSUxFUyAke1dlYkNvcmVfSURMX0ZJTEVTfQogICAgIEJBU0VfRElSICR7V0VC
Q09SRV9ESVJ9CkBAIC0zNjUzLDcgKzM2NTMsNyBAQCBHRU5FUkFURV9CSU5ESU5HUygKICAgICAg
ICAgLS13b3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yc0ZpbGUgJHtXT1JLRVJHTE9CQUxTQ09Q
RV9DT05TVFJVQ1RPUlNfRklMRX0KICAgICAgICAgLS1kZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29w
ZUNvbnN0cnVjdG9yc0ZpbGUgJHtERURJQ0FURURXT1JLRVJHTE9CQUxTQ09QRV9DT05TVFJVQ1RP
UlNfRklMRX0pCiAKLUdFTkVSQVRFX0JJTkRJTkdTKAorR0VORVJBVEVfQklORElOR1MoV2ViQ29y
ZVRlc3RTdXBwb3J0QmluZGluZ3MKICAgICBPVVRQVVRfU09VUkNFIFdlYkNvcmVUZXN0U3VwcG9y
dF9TT1VSQ0VTCiAgICAgSU5QVVRfRklMRVMgJHtXZWJDb3JlVGVzdFN1cHBvcnRfSURMX0ZJTEVT
fQogICAgIEJBU0VfRElSICR7V0VCQ09SRV9ESVJ9CkBAIC0zNjYyLDYgKzM2NjIsOSBAQCBHRU5F
UkFURV9CSU5ESU5HUygKICAgICBERVNUSU5BVElPTiAke0RFUklWRURfU09VUkNFU19XRUJDT1JF
X0RJUn0KICAgICBHRU5FUkFUT1IgSlMpCiAKKyMgV2ViQ29yZVRlc3RTdXBwb3J0QmluZGluZ3Mg
bmVlZHMgSW50ZXJuYWxTZXR0aW5nc0dlbmVyYXRlZC5pZGwKK2FkZF9kZXBlbmRlbmNpZXMoV2Vi
Q29yZVRlc3RTdXBwb3J0QmluZGluZ3MgV2ViQ29yZURlcml2ZWRTb3VyY2VzKQorCiAjIFdlYkNv
cmUgSlMgQnVpbHRpbnMKIAogc2V0KFdlYkNvcmVfQlVJTFRJTlNfU09VUkNFUwpAQCAtMzgwNyw3
ICszODEwLDcgQEAgZW5kaWYgKCkKICMgZmlsZXMgb24gT1MgWC4KIGFkZF9saWJyYXJ5KFdlYkNv
cmVEZXJpdmVkU291cmNlcyBTVEFUSUMgJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU30pCiBzZXRf
dGFyZ2V0X3Byb3BlcnRpZXMoV2ViQ29yZURlcml2ZWRTb3VyY2VzIFBST1BFUlRJRVMgT1VUUFVU
X05BTUUgV2ViQ29yZURlcml2ZWRTb3VyY2VzJHtERUJVR19TVUZGSVh9KQotYWRkX2RlcGVuZGVu
Y2llcyhXZWJDb3JlRGVyaXZlZFNvdXJjZXMgSmF2YVNjcmlwdENvcmUpCithZGRfZGVwZW5kZW5j
aWVzKFdlYkNvcmVEZXJpdmVkU291cmNlcyBKYXZhU2NyaXB0Q29yZSBXZWJDb3JlQmluZGluZ3Mp
CiBpZiAoTk9UIFdJTjMyKQogICAgIGxpc3QoQVBQRU5EIFdlYkNvcmVfTElCUkFSSUVTIFdlYkNv
cmVEZXJpdmVkU291cmNlcykKIGVuZGlmICgpCkBAIC0zODM4LDcgKzM4NDEsNyBAQCBlbmRpZiAo
KQogCiBpbmNsdWRlX2RpcmVjdG9yaWVzKCR7V2ViQ29yZVRlc3RTdXBwb3J0X0lOQ0xVREVfRElS
RUNUT1JJRVN9KQogYWRkX2xpYnJhcnkoV2ViQ29yZVRlc3RTdXBwb3J0ICR7V2ViQ29yZVRlc3RT
dXBwb3J0X0xJQlJBUllfVFlQRX0gJHtXZWJDb3JlVGVzdFN1cHBvcnRfU09VUkNFU30pCi1hZGRf
ZGVwZW5kZW5jaWVzKFdlYkNvcmVUZXN0U3VwcG9ydCBXZWJDb3JlKQorYWRkX2RlcGVuZGVuY2ll
cyhXZWJDb3JlVGVzdFN1cHBvcnQgV2ViQ29yZSBXZWJDb3JlVGVzdFN1cHBvcnRCaW5kaW5ncykK
IHRhcmdldF9saW5rX2xpYnJhcmllcyhXZWJDb3JlVGVzdFN1cHBvcnQgJHtXZWJDb3JlVGVzdFN1
cHBvcnRfTElCUkFSSUVTfSkKIAogaWYgKFdlYkNvcmVUZXN0U3VwcG9ydF9PVVRQVVRfTkFNRSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUtYmlu
ZGluZ3MtYWxsLnBsIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9nZW5lcmF0ZS1i
aW5kaW5ncy1hbGwucGwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGI5ODJkYWYzNGMxMjQ1ZjY1OWRjNjQ5MzNjODNh
OGY1OTk4ZjMzNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvZ2VuZXJhdGUtYmluZGluZ3MtYWxsLnBsCkBAIC0wLDAgKzEsMjM3IEBACisjIS91c3Iv
YmluL3BlcmwKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDE2IFNvbnkgSW50ZXJhY3RpdmUgRW50ZXJ0
YWlubWVudCBJbmMuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMg
MS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
IyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisjIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
IElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyMgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMKKyMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworIyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04KKyMgQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisj
CisKK3VzZSBzdHJpY3Q7Cit1c2Ugd2FybmluZ3M7Cit1c2UgRmluZEJpbjsKK3VzZSBsaWIgJEZp
bmRCaW46OkJpbjsKKwordXNlIEZpbGU6OkJhc2VuYW1lOwordXNlIEZpbGU6OlNwZWM7Cit1c2Ug
RmlsZTo6RmluZDsKK3VzZSBHZXRvcHQ6Okxvbmc7Cit1c2UgdGhyZWFkczsKK3VzZSB0aHJlYWRz
OjpzaGFyZWQ7Cit1c2UgVGhyZWFkOjpRdWV1ZTsKKworbXkgJHBlcmwgPSAkXlg7CitteSAkc2Ny
aXB0RGlyID0gJEZpbmRCaW46OkJpbjsKK215IEBpZGxEaXJlY3RvcmllczsKK215ICRvdXRwdXRE
aXJlY3Rvcnk7CitteSAkaWRsRmlsZXNMaXN0OworbXkgJGdlbmVyYXRvcjsKK215IEBnZW5lcmF0
b3JEZXBlbmRlbmN5OworbXkgJGRlZmluZXM7CitteSAkcHJlcHJvY2Vzc29yOworbXkgJHN1cHBs
ZW1lbnRhbERlcGVuZGVuY3lGaWxlOworbXkgQHBwRXh0cmFPdXRwdXQ7CitteSBAcHBFeHRyYUFy
Z3M7CitteSAkbnVtT2ZKb2JzID0gMTsKK215ICRpZGxBdHRyaWJ1dGVzRmlsZTsKKworR2V0T3B0
aW9ucygnaW5jbHVkZT1zQCcgPT4gXEBpZGxEaXJlY3RvcmllcywKKyAgICAgICAgICAgJ291dHB1
dERpcj1zJyA9PiBcJG91dHB1dERpcmVjdG9yeSwKKyAgICAgICAgICAgJ2lkbEZpbGVzTGlzdD1z
JyA9PiBcJGlkbEZpbGVzTGlzdCwKKyAgICAgICAgICAgJ2dlbmVyYXRvcj1zJyA9PiBcJGdlbmVy
YXRvciwKKyAgICAgICAgICAgJ2dlbmVyYXRvckRlcGVuZGVuY3k9c0AnID0+IFxAZ2VuZXJhdG9y
RGVwZW5kZW5jeSwKKyAgICAgICAgICAgJ2RlZmluZXM9cycgPT4gXCRkZWZpbmVzLAorICAgICAg
ICAgICAncHJlcHJvY2Vzc29yPXMnID0+IFwkcHJlcHJvY2Vzc29yLAorICAgICAgICAgICAnc3Vw
cGxlbWVudGFsRGVwZW5kZW5jeUZpbGU9cycgPT4gXCRzdXBwbGVtZW50YWxEZXBlbmRlbmN5Rmls
ZSwKKyAgICAgICAgICAgJ3BwRXh0cmFPdXRwdXQ9c0AnID0+IFxAcHBFeHRyYU91dHB1dCwKKyAg
ICAgICAgICAgJ3BwRXh0cmFBcmdzPXNAJyA9PiBcQHBwRXh0cmFBcmdzLAorICAgICAgICAgICAn
aWRsQXR0cmlidXRlc0ZpbGU9cycgPT4gXCRpZGxBdHRyaWJ1dGVzRmlsZSwKKyAgICAgICAgICAg
J251bU9mSm9icz1pJyA9PiBcJG51bU9mSm9icyk7CisKKyR8ID0gMTsKK215IEBpZGxGaWxlczsK
K29wZW4obXkgJGZoLCAnPCcsICRpZGxGaWxlc0xpc3QpIG9yIGRpZSAiQ2Fubm90IG9wZW4gJGlk
bEZpbGVzTGlzdCI7CitAaWRsRmlsZXMgPSBtYXAgeyBDeWd3aW5QYXRoSWZOZWVkZWQocy9ccj9c
bj8kLy9yKSB9IDwkZmg+OworY2xvc2UoJGZoKSBvciBkaWU7CisKK215ICVzdXBwbGVtZW50ZWRJ
ZGxGaWxlczsKK2lmICgkc3VwcGxlbWVudGFsRGVwZW5kZW5jeUZpbGUpIHsKKyAgICBteSBAb3V0
cHV0ID0gKCRzdXBwbGVtZW50YWxEZXBlbmRlbmN5RmlsZSwgQHBwRXh0cmFPdXRwdXQpOworICAg
IG15IEBkZXBzID0gKEBpZGxGaWxlcywgQGdlbmVyYXRvckRlcGVuZGVuY3kpOworICAgIGlmIChu
ZWVkc1VwZGF0ZShcQG91dHB1dCwgXEBkZXBzKSkgeworICAgICAgICBteSBAYXJncyA9ICgnLS1k
ZWZpbmVzJywgJGRlZmluZXMsCisgICAgICAgICAgICAgICAgICAgICctLWlkbEZpbGVzTGlzdCcs
ICRpZGxGaWxlc0xpc3QsCisgICAgICAgICAgICAgICAgICAgICctLXN1cHBsZW1lbnRhbERlcGVu
ZGVuY3lGaWxlJywgJHN1cHBsZW1lbnRhbERlcGVuZGVuY3lGaWxlLAorICAgICAgICAgICAgICAg
ICAgICBAcHBFeHRyYUFyZ3MpOworICAgICAgICBwcmludCgiUHJlcHJvY2VzcyBJRExcbiIpOwor
ICAgICAgICBleGVjdXRlQ29tbWFuZCgkcGVybCwgIiRzY3JpcHREaXIvcHJlcHJvY2Vzcy1pZGxz
LnBsIiwgQGFyZ3MpID09IDAgb3IgZGllOworICAgIH0KKyAgICBvcGVuKG15ICRmaCwgJzwnLCAk
c3VwcGxlbWVudGFsRGVwZW5kZW5jeUZpbGUpIG9yIGRpZSAiQ2Fubm90IG9wZW4gJHN1cHBsZW1l
bnRhbERlcGVuZGVuY3lGaWxlIjsKKyAgICB3aGlsZSAoPCRmaD4pIHsKKyAgICAgICAgbXkgKCRp
ZGxGaWxlLCBAZm9sbG93aW5nSWRsRmlsZXMpID0gc3BsaXQoL1xzKy8pOworICAgICAgICAkc3Vw
cGxlbWVudGVkSWRsRmlsZXN7JGlkbEZpbGV9ID0gXEBmb2xsb3dpbmdJZGxGaWxlczsKKyAgICB9
CisgICAgY2xvc2UoJGZoKSBvciBkaWU7Cit9CisKK215IEBhcmdzID0gKCIkc2NyaXB0RGlyL2dl
bmVyYXRlLWJpbmRpbmdzLnBsIiwKKyAgICAgICAgICAgICctLWRlZmluZXMnLCAkZGVmaW5lcywK
KyAgICAgICAgICAgICctLWdlbmVyYXRvcicsICRnZW5lcmF0b3IsCisgICAgICAgICAgICAnLS1v
dXRwdXREaXInLCAkb3V0cHV0RGlyZWN0b3J5LAorICAgICAgICAgICAgJy0tcHJlcHJvY2Vzc29y
JywgJHByZXByb2Nlc3NvciwKKyAgICAgICAgICAgICctLWlkbEF0dHJpYnV0ZXNGaWxlJywgJGlk
bEF0dHJpYnV0ZXNGaWxlLAorICAgICAgICAgICAgJy0td3JpdGUtZGVwZW5kZW5jaWVzJyk7Citw
dXNoIEBhcmdzLCBtYXAgeyAoJy0taW5jbHVkZScsICRfKSB9IEBpZGxEaXJlY3RvcmllczsKK3B1
c2ggQGFyZ3MsICctLXN1cHBsZW1lbnRhbERlcGVuZGVuY3lGaWxlJywgJHN1cHBsZW1lbnRhbERl
cGVuZGVuY3lGaWxlIGlmICRzdXBwbGVtZW50YWxEZXBlbmRlbmN5RmlsZTsKKworbXkgJWRpcmVj
dG9yeUNhY2hlOworYnVpbGREaXJlY3RvcnlDYWNoZSgpOworCitteSBAaWRsRmlsZXNUb1VwZGF0
ZSA9IGdyZXAgeworICAgIG15ICgkZmlsZW5hbWUsICRkaXJzLCAkc3VmZml4KSA9IGZpbGVwYXJz
ZSgkXywgJy5pZGwnKTsKKyAgICBteSAkc291cmNlRmlsZSA9IEZpbGU6OlNwZWMtPmNhdGZpbGUo
JG91dHB1dERpcmVjdG9yeSwgIkpTJGZpbGVuYW1lLmNwcCIpOworICAgIG15ICRoZWFkZXJGaWxl
ID0gRmlsZTo6U3BlYy0+Y2F0ZmlsZSgkb3V0cHV0RGlyZWN0b3J5LCAiSlMkZmlsZW5hbWUuaCIp
OworICAgIG15ICRkZXBGaWxlID0gRmlsZTo6U3BlYy0+Y2F0ZmlsZSgkb3V0cHV0RGlyZWN0b3J5
LCAiSlMkZmlsZW5hbWUuZGVwIik7CisgICAgbXkgQG91dHB1dCA9ICgkc291cmNlRmlsZSwgJGhl
YWRlckZpbGUpOworICAgIG15IEBkZXBzID0gKCRfLAorICAgICAgICAgICAgICAgICRpZGxBdHRy
aWJ1dGVzRmlsZSwKKyAgICAgICAgICAgICAgICBAZ2VuZXJhdG9yRGVwZW5kZW5jeSwKKyAgICAg
ICAgICAgICAgICBAeyRzdXBwbGVtZW50ZWRJZGxGaWxlc3skX30gb3IgW119LAorICAgICAgICAg
ICAgICAgIGltcGxpY2l0RGVwZW5kZW5jaWVzKCRkZXBGaWxlKSk7CisgICAgbmVlZHNVcGRhdGUo
XEBvdXRwdXQsIFxAZGVwcyk7Cit9IEBpZGxGaWxlczsKK215ICRxdWV1ZSA9IFRocmVhZDo6UXVl
dWUtPm5ldyhAaWRsRmlsZXNUb1VwZGF0ZSk7CitteSAkYWJvcnQgOnNoYXJlZCA9IDA7CitteSAk
dGVybWluYWxXaWR0aCA9IGdldFRlcm1pbmFsV2lkdGgoKTsKK215ICR0b3RhbENvdW50ID0gQGlk
bEZpbGVzVG9VcGRhdGU7CitteSAkY3VycmVudENvdW50IDpzaGFyZWQgPSAwOworCitteSBAdGhy
ZWFkUG9vbCA9IG1hcCB7IHRocmVhZHMtPmNyZWF0ZShcJndvcmtlcikgfSAoMSAuLiAkbnVtT2ZK
b2JzKTsKKyRfLT5qb2luIGZvciBAdGhyZWFkUG9vbDsKK2V4aXQgJGFib3J0OworCitzdWIgbmVl
ZHNVcGRhdGUKK3sKKyAgICBteSAoJG9iamVjdHMsICRkZXBlbmRzKSA9IEBfOworICAgIG15ICRv
bGRlc3RPYmplY3Q7CisgICAgbXkgJG9sZGVzdE9iamVjdFRpbWU7CisgICAgZm9yIChAJG9iamVj
dHMpIHsKKyAgICAgICAgcmV0dXJuIDEgaWYgIS1mOworICAgICAgICBteSAkbSA9IG10aW1lKCRf
KTsKKyAgICAgICAgaWYgKCFkZWZpbmVkICRvbGRlc3RPYmplY3RUaW1lIHx8ICRtIDwgJG9sZGVz
dE9iamVjdFRpbWUpIHsKKyAgICAgICAgICAgICRvbGRlc3RPYmplY3QgPSAkXzsKKyAgICAgICAg
ICAgICRvbGRlc3RPYmplY3RUaW1lID0gJG07CisgICAgICAgIH0KKyAgICB9CisgICAgZm9yIChA
JGRlcGVuZHMpIHsKKyAgICAgICAgZGllICJNaXNzaW5nIHJlcXVpcmVkIGRlcGVuZGVuY3k6ICRf
IiBpZiAhLWY7CisgICAgICAgIG15ICRtID0gbXRpbWUoJF8pOworICAgICAgICBpZiAoJG9sZGVz
dE9iamVjdFRpbWUgPCAkbSkgeworICAgICAgICAgICAgIyBwcmludCAiJF8gaXMgbmV3ZXIgdGhh
biAkb2xkZXN0T2JqZWN0XG4iOworICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgIH0KKyAg
ICB9CisgICAgcmV0dXJuIDA7Cit9CisKK3N1YiBtdGltZQoreworICAgIG15ICgkZmlsZSkgPSBA
XzsKKyAgICByZXR1cm4gKHN0YXQgJGZpbGUpWzldOworfQorCitzdWIgd29ya2VyIHsKKyAgICB3
aGlsZSAobXkgJGZpbGUgPSAkcXVldWUtPmRlcXVldWVfbmIoKSkgeworICAgICAgICBsYXN0IGlm
ICRhYm9ydDsKKyAgICAgICAgZXZhbCB7CisgICAgICAgICAgICAkY3VycmVudENvdW50Kys7Cisg
ICAgICAgICAgICBteSAkYmFzZW5hbWUgPSBiYXNlbmFtZSgkZmlsZSk7CisgICAgICAgICAgICBp
ZiAoJHRlcm1pbmFsV2lkdGgpIHsKKyAgICAgICAgICAgICAgICBteSAkdyA9ICR0ZXJtaW5hbFdp
ZHRoIC0gMTsKKyAgICAgICAgICAgICAgICBwcmludCBzcHJpbnRmKCIlLSouKnNcciIsICR3LCAk
dywgIlskY3VycmVudENvdW50LyR0b3RhbENvdW50XSAkYmFzZW5hbWUiKTsKKyAgICAgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcHJpbnQgIlskY3VycmVudENvdW50LyR0b3RhbENv
dW50XSAkYmFzZW5hbWVcbiI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBleGVjdXRlQ29t
bWFuZCgkcGVybCwgQGFyZ3MsICRmaWxlKSA9PSAwIG9yIGRpZTsKKyAgICAgICAgfTsKKyAgICAg
ICAgaWYgKCRAKSB7CisgICAgICAgICAgICAkYWJvcnQgPSAxOworICAgICAgICAgICAgZGllOwor
ICAgICAgICB9CisgICAgfQorfQorCitzdWIgYnVpbGREaXJlY3RvcnlDYWNoZQoreworICAgIG15
ICR3YW50ZWQgPSBzdWIgeworICAgICAgICAkZGlyZWN0b3J5Q2FjaGV7JF99ID0gJEZpbGU6OkZp
bmQ6Om5hbWU7CisgICAgICAgICRGaWxlOjpGaW5kOjpwcnVuZSA9IDEgdW5sZXNzIH4vXC4vOwor
ICAgIH07CisgICAgZmluZCgkd2FudGVkLCBAaWRsRGlyZWN0b3JpZXMpOworfQorCitzdWIgaW1w
bGljaXREZXBlbmRlbmNpZXMKK3sKKyAgICBteSAoJGRlcEZpbGUpID0gQF87CisgICAgcmV0dXJu
ICgpIHVubGVzcyAtZiAkZGVwRmlsZTsKKyAgICBvcGVuKG15ICRmaCwgJzwnLCAkZGVwRmlsZSkg
b3IgZGllICJDYW5ub3Qgb3BlbiAkZGVwRmlsZSI7CisgICAgbXkgJGZpcnN0TGluZSA9IDwkZmg+
OworICAgIGNsb3NlKCRmaCkgb3IgZGllOworICAgIG15ICh1bmRlZiwgJGRlcHMpID0gc3BsaXQo
LyA6IC8sICRmaXJzdExpbmUpOworICAgIG15IEBkZXBzID0gc3BsaXQoL1xzKy8sICRkZXBzKTsK
KyAgICByZXR1cm4gbWFwIHsgJGRpcmVjdG9yeUNhY2hleyRffSBvciAoKSB9IEBkZXBzOworfQor
CitzdWIgZXhlY3V0ZUNvbW1hbmQKK3sKKyAgICBpZiAoJF5PIGVxICdjeWd3aW4nKSB7CisgICAg
ICAgICMgJ3N5c3RlbScgb2YgQ3lnd2luIFBlcmwgZG9lc24ndCBzZWVtIHRocmVhZC1zYWZlCisg
ICAgICAgIG15ICRwaWQgPSBmb3JrKCk7CisgICAgICAgIGRlZmluZWQoJHBpZCkgb3IgZGllOwor
ICAgICAgICBpZiAoJHBpZCA9PSAwKSB7CisgICAgICAgICAgICBleGVjKEBfKSBvciBkaWU7Cisg
ICAgICAgIH0KKyAgICAgICAgd2FpdHBpZCgkcGlkLCAwKTsKKyAgICAgICAgcmV0dXJuICQ/Owor
ICAgIH0KKyAgICBpZiAoJF5PIGVxICdNU1dpbjMyJykgeworICAgICAgICByZXR1cm4gc3lzdGVt
KHF1b3RlQ29tbWFuZChAXykpOworICAgIH0KKyAgICByZXR1cm4gc3lzdGVtKEBfKTsKK30KKwor
c3ViIHF1b3RlQ29tbWFuZAoreworICAgIHJldHVybiBtYXAgeworICAgICAgICAnIicgLiBzLyhb
XFxcIl0pL1xcJDEvZ3IgLiAnIic7CisgICAgfSBAXzsKK30KKworc3ViIEN5Z3dpblBhdGhJZk5l
ZWRlZAoreworICAgIG15ICRwYXRoID0gc2hpZnQ7CisgICAgcmV0dXJuIEN5Z3dpbjo6d2luX3Rv
X3Bvc2l4X3BhdGgoJHBhdGgpIGlmICgkXk8gZXEgJ2N5Z3dpbicpOworICAgIHJldHVybiAkcGF0
aDsKK30KKworc3ViIGdldFRlcm1pbmFsV2lkdGgKK3sKKyAgICByZXR1cm4gMCB1bmxlc3MgLXQg
U1RET1VUOworICAgIHJldHVybiBgc3R0eSBzaXplYCA9fiAvXGQrXHMrKFxkKykvID8gJDEgOiA4
MDsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9XZWJLaXRNYWNyb3MuY21ha2UgYi9Tb3Vy
Y2UvY21ha2UvV2ViS2l0TWFjcm9zLmNtYWtlCmluZGV4IDYyZDM0ZGY2OGE1NGZiZGNhMGRkZDkw
ODcxZmQ5NzBmMWQyZmFjMmQuLjc5NzI3YTE2NTcxMzdkOTM4Yjg3ODM1MzAyNDFmYmZmZTAwNWQw
ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9XZWJLaXRNYWNyb3MuY21ha2UKKysrIGIvU291
cmNlL2NtYWtlL1dlYktpdE1hY3Jvcy5jbWFrZQpAQCAtMSw0ICsxLDYgQEAKIGluY2x1ZGUoQ01h
a2VQYXJzZUFyZ3VtZW50cykKK2luY2x1ZGUoUHJvY2Vzc29yQ291bnQpCitQcm9jZXNzb3JDb3Vu
dChQUk9DRVNTT1JfQ09VTlQpCiAKIG1hY3JvKFdFQktJVF9JTkNMVURFX0NPTkZJR19GSUxFU19J
Rl9FWElTVFMpCiAgICAgc2V0KF9maWxlICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9QbGF0
Zm9ybSR7UE9SVH0uY21ha2UpCkBAIC00Myw3ICs0NSw4IEBAIG1hY3JvKEFERF9QUkVDT01QSUxF
RF9IRUFERVIgX2hlYWRlciBfY3BwIF9zb3VyY2UpCiAgICAgI0ZJWE1FOiBBZGQgc3VwcG9ydCBm
b3IgWGNvZGUuCiBlbmRtYWNybygpCiAKLSMgSGVscGVyIG1hY3JvIHdoaWNoIHdyYXBzIHByZXBy
b2Nlc3MtaWRscy5wbCBhbmQgZ2VuZXJhdGUtYmluZGluZ3MucGwgc2NyaXB0cy4KKyMgSGVscGVy
IG1hY3JvIHdoaWNoIHdyYXBzIGdlbmVyYXRlLWJpbmRpbmdzLWFsbC5wbCBzY3JpcHQuCisjICAg
dGFyZ2V0IGlzIGEgbmV3IHRhcmdldCBuYW1lIHRvIGJlIGFkZGVkCiAjICAgT1VUUFVUX1NPVVJD
RSBpcyBhIGxpc3QgbmFtZSB3aGljaCB3aWxsIGNvbnRhaW4gZ2VuZXJhdGVkIHNvdXJjZXMuKGVn
LiBXZWJDb3JlX1NPVVJDRVMpCiAjICAgSU5QVVRfRklMRVMgYXJlIElETCBmaWxlcyB0byBnZW5l
cmF0ZS4KICMgICBCQVNFX0RJUiBpcyBiYXNlIGRpcmVjdG9yeSB3aGVyZSBzY3JpcHQgaXMgY2Fs
bGVkLgpAQCAtNTQsMTUgKzU3LDE0IEBAIGVuZG1hY3JvKCkKICMgICBTVVBQTEVNRU5UQUxfREVQ
RklMRSBpcyBhIHZhbHVlIG9mIC0tc3VwcGxlbWVudGFsRGVwZW5kZW5jeUZpbGUuIChvcHRpb25h
bCkKICMgICBQUF9FWFRSQV9PVVRQVVQgaXMgZXh0cmEgb3V0cHV0cyBvZiBwcmVwcm9jZXNzLWlk
bHMucGwuIChvcHRpb25hbCkKICMgICBQUF9FWFRSQV9BUkdTIGlzIGV4dHJhIGFyZ3VtZW50cyBm
b3IgcHJlcHJvY2Vzcy1pZGxzLnBsLiAob3B0aW9uYWwpCi1mdW5jdGlvbihHRU5FUkFURV9CSU5E
SU5HUykKK2Z1bmN0aW9uKEdFTkVSQVRFX0JJTkRJTkdTIHRhcmdldCkKICAgICBzZXQob3B0aW9u
cykKICAgICBzZXQob25lVmFsdWVBcmdzIE9VVFBVVF9TT1VSQ0UgQkFTRV9ESVIgRkVBVFVSRVMg
REVTVElOQVRJT04gR0VORVJBVE9SIFNVUFBMRU1FTlRBTF9ERVBGSUxFKQogICAgIHNldChtdWx0
aVZhbHVlQXJncyBJTlBVVF9GSUxFUyBJRExfSU5DTFVERVMgUFBfRVhUUkFfT1VUUFVUIFBQX0VY
VFJBX0FSR1MpCiAgICAgY21ha2VfcGFyc2VfYXJndW1lbnRzKGFyZyAiJHtvcHRpb25zfSIgIiR7
b25lVmFsdWVBcmdzfSIgIiR7bXVsdGlWYWx1ZUFyZ3N9IiAke0FSR059KQotICAgIHNldChiaW5k
aW5nX2dlbmVyYXRvciAke1dFQkNPUkVfRElSfS9iaW5kaW5ncy9zY3JpcHRzL2dlbmVyYXRlLWJp
bmRpbmdzLnBsKQorICAgIHNldChiaW5kaW5nX2dlbmVyYXRvciAke1dFQkNPUkVfRElSfS9iaW5k
aW5ncy9zY3JpcHRzL2dlbmVyYXRlLWJpbmRpbmdzLWFsbC5wbCkKICAgICBzZXQoaWRsX2F0dHJp
YnV0ZXNfZmlsZSAke1dFQkNPUkVfRElSfS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMu
dHh0KQotICAgIHNldChpZCAke2FyZ19PVVRQVVRfU09VUkNFfSkKLSAgICBzZXQoaWRsX2ZpbGVz
X2xpc3QgJHtDTUFLRV9DVVJSRU5UX0JJTkFSWV9ESVJ9L2lkbF9maWxlc18ke2lkfS50bXApCisg
ICAgc2V0KGlkbF9maWxlc19saXN0ICR7Q01BS0VfQ1VSUkVOVF9CSU5BUllfRElSfS9pZGxfZmls
ZXNfJHt0YXJnZXR9LnRtcCkKICAgICBzZXQoX3N1cHBsZW1lbnRhbF9kZXBlbmRlbmN5KQogCiAg
ICAgc2V0KGNvbnRlbnQpCkBAIC03NCw1NSArNzYsNjkgQEAgZnVuY3Rpb24oR0VORVJBVEVfQklO
RElOR1MpCiAgICAgZW5kZm9yZWFjaCAoKQogICAgIGZpbGUoV1JJVEUgJHtpZGxfZmlsZXNfbGlz
dH0gJHtjb250ZW50fSkKIAorICAgIHNldChhcmdzCisgICAgICAgIC0tZGVmaW5lcyAke2FyZ19G
RUFUVVJFU30KKyAgICAgICAgLS1nZW5lcmF0b3IgJHthcmdfR0VORVJBVE9SfQorICAgICAgICAt
LW91dHB1dERpciAke2FyZ19ERVNUSU5BVElPTn0KKyAgICAgICAgLS1pZGxGaWxlc0xpc3QgJHtp
ZGxfZmlsZXNfbGlzdH0KKyAgICAgICAgLS1wcmVwcm9jZXNzb3IgJHtDT0RFX0dFTkVSQVRPUl9Q
UkVQUk9DRVNTT1J9CisgICAgICAgIC0taWRsQXR0cmlidXRlc0ZpbGUgJHtpZGxfYXR0cmlidXRl
c19maWxlfSkKICAgICBpZiAoYXJnX1NVUFBMRU1FTlRBTF9ERVBGSUxFKQotICAgICAgICBzZXQo
X3N1cHBsZW1lbnRhbF9kZXBlbmRlbmN5IC0tc3VwcGxlbWVudGFsRGVwZW5kZW5jeUZpbGUgJHth
cmdfU1VQUExFTUVOVEFMX0RFUEZJTEV9KQotCi0gICAgICAgIGFkZF9jdXN0b21fY29tbWFuZCgK
LSAgICAgICAgICAgIE9VVFBVVCAke2FyZ19TVVBQTEVNRU5UQUxfREVQRklMRX0gJHthcmdfUFBf
RVhUUkFfT1VUUFVUfQotICAgICAgICAgICAgREVQRU5EUyAke1dFQkNPUkVfRElSfS9iaW5kaW5n
cy9zY3JpcHRzL3ByZXByb2Nlc3MtaWRscy5wbCAke2FyZ19JTlBVVF9GSUxFU30KLSAgICAgICAg
ICAgIENPTU1BTkQgJHtQRVJMX0VYRUNVVEFCTEV9ICR7V0VCQ09SRV9ESVJ9L2JpbmRpbmdzL3Nj
cmlwdHMvcHJlcHJvY2Vzcy1pZGxzLnBsIC0tZGVmaW5lcyAke2FyZ19GRUFUVVJFU30gLS1pZGxG
aWxlc0xpc3QgJHtpZGxfZmlsZXNfbGlzdH0gLS1zdXBwbGVtZW50YWxEZXBlbmRlbmN5RmlsZSAk
e2FyZ19TVVBQTEVNRU5UQUxfREVQRklMRX0gJHthcmdfUFBfRVhUUkFfQVJHU30KLSAgICAgICAg
ICAgIFZFUkJBVElNKQorICAgICAgICBsaXN0KEFQUEVORCBhcmdzIC0tc3VwcGxlbWVudGFsRGVw
ZW5kZW5jeUZpbGUgJHthcmdfU1VQUExFTUVOVEFMX0RFUEZJTEV9KQogICAgIGVuZGlmICgpCi0K
LSAgICBzZXQoaWRsX2luY2x1ZGVzKQotICAgIGZvcmVhY2ggKGRpciAke2FyZ19JRExfSU5DTFVE
RVN9KQotICAgICAgICBpZiAoSVNfQUJTT0xVVEUgJHtkaXJ9KQotICAgICAgICAgICAgbGlzdChB
UFBFTkQgaWRsX2luY2x1ZGVzIC0taW5jbHVkZT0ke2Rpcn0pCisgICAgaWYgKFBST0NFU1NPUl9D
T1VOVCkKKyAgICAgICAgbGlzdChBUFBFTkQgYXJncyAtLW51bU9mSm9icyAke1BST0NFU1NPUl9D
T1VOVH0pCisgICAgZW5kaWYgKCkKKyAgICBmb3JlYWNoIChpIElOIExJU1RTIGFyZ19JRExfSU5D
TFVERVMpCisgICAgICAgIGlmIChJU19BQlNPTFVURSAke2l9KQorICAgICAgICAgICAgbGlzdChB
UFBFTkQgYXJncyAtLWluY2x1ZGUgJHtpfSkKICAgICAgICAgZWxzZSAoKQotICAgICAgICAgICAg
bGlzdChBUFBFTkQgaWRsX2luY2x1ZGVzIC0taW5jbHVkZT0ke0NNQUtFX0NVUlJFTlRfU09VUkNF
X0RJUn0vJHtkaXJ9KQorICAgICAgICAgICAgbGlzdChBUFBFTkQgYXJncyAtLWluY2x1ZGUgJHtD
TUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9LyR7aX0pCiAgICAgICAgIGVuZGlmICgpCiAgICAgZW5k
Zm9yZWFjaCAoKQorICAgIGZvcmVhY2ggKGkgSU4gTElTVFMgYXJnX1BQX0VYVFJBX09VVFBVVCkK
KyAgICAgICAgbGlzdChBUFBFTkQgYXJncyAtLXBwRXh0cmFPdXRwdXQgJHtpfSkKKyAgICBlbmRm
b3JlYWNoICgpCisgICAgZm9yZWFjaCAoaSBJTiBMSVNUUyBhcmdfUFBfRVhUUkFfQVJHUykKKyAg
ICAgICAgbGlzdChBUFBFTkQgYXJncyAtLXBwRXh0cmFBcmdzICR7aX0pCisgICAgZW5kZm9yZWFj
aCAoKQogCiAgICAgc2V0KGNvbW1vbl9nZW5lcmF0b3JfZGVwZW5kZW5jaWVzCi0gICAgICAgICR7
YmluZGluZ19nZW5lcmF0b3J9Ci0gICAgICAgICR7V0VCQ09SRV9ESVJ9L2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvci5wbQorICAgICAgICAke1dFQkNPUkVfRElSfS9iaW5kaW5ncy9zY3Jp
cHRzL2dlbmVyYXRlLWJpbmRpbmdzLnBsCiAgICAgICAgICR7U0NSSVBUU19CSU5ESU5HU30KLSAg
ICAgICAgJHthcmdfU1VQUExFTUVOVEFMX0RFUEZJTEV9Ci0gICAgICAgICR7aWRsX2F0dHJpYnV0
ZXNfZmlsZX0KICAgICApCi0gICAgbGlzdChBUFBFTkQgY29tbW9uX2dlbmVyYXRvcl9kZXBlbmRl
bmNpZXMgJHthcmdfUFBfRVhUUkFfT1VUUFVUfSkKLQogICAgIGlmIChFWElTVFMgJHtXRUJDT1JF
X0RJUn0vYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yJHthcmdfR0VORVJBVE9SfS5wbSkK
ICAgICAgICAgbGlzdChBUFBFTkQgY29tbW9uX2dlbmVyYXRvcl9kZXBlbmRlbmNpZXMgJHtXRUJD
T1JFX0RJUn0vYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yJHthcmdfR0VORVJBVE9SfS5w
bSkKICAgICBlbmRpZiAoKQogICAgIGlmIChFWElTVFMgJHthcmdfQkFTRV9ESVJ9L0NvZGVHZW5l
cmF0b3Ike2FyZ19HRU5FUkFUT1J9LnBtKQogICAgICAgICBsaXN0KEFQUEVORCBjb21tb25fZ2Vu
ZXJhdG9yX2RlcGVuZGVuY2llcyAke2FyZ19CQVNFX0RJUn0vQ29kZUdlbmVyYXRvciR7YXJnX0dF
TkVSQVRPUn0ucG0pCiAgICAgZW5kaWYgKCkKKyAgICBmb3JlYWNoIChpIElOIExJU1RTIGNvbW1v
bl9nZW5lcmF0b3JfZGVwZW5kZW5jaWVzKQorICAgICAgICBsaXN0KEFQUEVORCBhcmdzIC0tZ2Vu
ZXJhdG9yRGVwZW5kZW5jeSAke2l9KQorICAgIGVuZGZvcmVhY2ggKCkKIAogICAgIHNldChnZW5f
c291cmNlcykKKyAgICBzZXQoZ2VuX2hlYWRlcnMpCiAgICAgZm9yZWFjaCAoX2ZpbGUgJHthcmdf
SU5QVVRfRklMRVN9KQogICAgICAgICBnZXRfZmlsZW5hbWVfY29tcG9uZW50KF9uYW1lICR7X2Zp
bGV9IE5BTUVfV0UpCi0KLSAgICAgICAgYWRkX2N1c3RvbV9jb21tYW5kKAotICAgICAgICAgICAg
T1VUUFVUICR7YXJnX0RFU1RJTkFUSU9OfS9KUyR7X25hbWV9LmNwcCAke2FyZ19ERVNUSU5BVElP
Tn0vSlMke19uYW1lfS5oCi0gICAgICAgICAgICBNQUlOX0RFUEVOREVOQ1kgJHtfZmlsZX0KLSAg
ICAgICAgICAgIERFUEVORFMgJHtjb21tb25fZ2VuZXJhdG9yX2RlcGVuZGVuY2llc30KLSAgICAg
ICAgICAgIENPTU1BTkQgJHtQRVJMX0VYRUNVVEFCTEV9ICR7YmluZGluZ19nZW5lcmF0b3J9IC0t
ZGVmaW5lcyAke2FyZ19GRUFUVVJFU30gLS1nZW5lcmF0b3IgJHthcmdfR0VORVJBVE9SfSAke2lk
bF9pbmNsdWRlc30gLS1vdXRwdXREaXIgJHthcmdfREVTVElOQVRJT059IC0tcHJlcHJvY2Vzc29y
ICIke0NPREVfR0VORVJBVE9SX1BSRVBST0NFU1NPUn0iIC0taWRsQXR0cmlidXRlc0ZpbGUgJHtp
ZGxfYXR0cmlidXRlc19maWxlfSAke19zdXBwbGVtZW50YWxfZGVwZW5kZW5jeX0gJHtfZmlsZX0K
LSAgICAgICAgICAgIFdPUktJTkdfRElSRUNUT1JZICR7YXJnX0JBU0VfRElSfQotICAgICAgICAg
ICAgVkVSQkFUSU0pCiAgICAgICAgIGxpc3QoQVBQRU5EIGdlbl9zb3VyY2VzICR7YXJnX0RFU1RJ
TkFUSU9OfS9KUyR7X25hbWV9LmNwcCkKKyAgICAgICAgbGlzdChBUFBFTkQgZ2VuX2hlYWRlcnMg
JHthcmdfREVTVElOQVRJT059L0pTJHtfbmFtZX0uaCkKICAgICBlbmRmb3JlYWNoICgpCiAgICAg
c2V0KCR7YXJnX09VVFBVVF9TT1VSQ0V9ICR7JHthcmdfT1VUUFVUX1NPVVJDRX19ICR7Z2VuX3Nv
dXJjZXN9IFBBUkVOVF9TQ09QRSkKKyAgICBzZXQoYWN0X2FyZ3MpCisgICAgaWYgKCR7Q01BS0Vf
VkVSU0lPTn0gVkVSU0lPTl9MRVNTIDMuMikKKyAgICAgICAgc2V0X3NvdXJjZV9maWxlc19wcm9w
ZXJ0aWVzKCR7Z2VuX3NvdXJjZXN9ICR7Z2VuX2hlYWRlcnN9IFBST1BFUlRJRVMgR0VORVJBVEVE
IDEpCisgICAgZWxzZSAoKQorICAgICAgICBsaXN0KEFQUEVORCBhY3RfYXJncworICAgICAgICAg
ICAgQllQUk9EVUNUUyAke2dlbl9zb3VyY2VzfSAke2dlbl9oZWFkZXJzfQorICAgICAgICAgICAg
VVNFU19URVJNSU5BTAorICAgICAgICApCisgICAgZW5kaWYgKCkKKyAgICBhZGRfY3VzdG9tX3Rh
cmdldCgke3RhcmdldH0KKyAgICAgICAgQ09NTUFORCAke1BFUkxfRVhFQ1VUQUJMRX0gJHtiaW5k
aW5nX2dlbmVyYXRvcn0gJHthcmdzfQorICAgICAgICBXT1JLSU5HX0RJUkVDVE9SWSAke2FyZ19C
QVNFX0RJUn0KKyAgICAgICAgQ09NTUVOVCAiR2VuZXJhdGUgYmluZGluZ3MgKCR7dGFyZ2V0fSki
CisgICAgICAgIFZFUkJBVElNICR7YWN0X2FyZ3N9KQogZW5kZnVuY3Rpb24oKQogCiBtYWNybyhH
RU5FUkFURV9GT05UX05BTUVTIF9pbmZpbGUpCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYTc1Zjg4MWE5NjQ4M2JhNzAzZDE2YTRlZDJhMGJlZWQw
MjU4YTk5Mi4uMjU5NzBmZWRiMTExMTkzMmYyNTZjYjIxNWRhZTI2NTBhMmI4NzM2MSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4
IEBACisyMDE2LTEwLTEzICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29t
PgorCisgICAgICAgIFtDTWFrZV0gQ01ha2UgZG9lcyBub3Qgc3VwcG9ydCB0aGUgZGVwIGZpbGVz
IGZvciBpbXBsaWNpdCBkZXBlbmRlbmN5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNjE0MzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBDcmVhdGVkIGEgUGVybCBzY3JpcHQgdG8gZ2VuZXJhdGUgYWxsIElE
TCBiaW5kaW5ncyBmb3IgQ01ha2UuCisgICAgICAgIFRoaXMgc2NyaXB0IGNhbiByZWdlbmVyYXRl
IG91dGRhdGVkIGJpbmRpbmdzIGJ5IGJhc2VkIG9uIHRoZQorICAgICAgICBzdXBwbGVtZW50YWwg
ZGVwZW5kZW5jeSBhbmQgZGVwIGZpbGVzIGNyZWF0ZWQgYnkKKyAgICAgICAgJy0td3JpdGUtZGVw
ZW5kZW5jaWVzJyBzd2l0Y2ggb2YgZ2VuZXJhdGUtYmluZGluZ3MucGwuCisKKyAgICAgICAgYWRk
X2N1c3RvbV90YXJnZXQgaXMgdXNlZCB0byBpbnZva2UgdGhlIHNjcmlwdCBpbnN0ZWFkIG9mCisg
ICAgICAgIGFkZF9jdXN0b21fY29tbWFuZCBiZWNhdXNlIE5pbmphIGRlbGV0ZXMgYWxsIG91dHB1
dCBmaWxlcyBiZWZvcmUKKyAgICAgICAgZXhlY3V0aW5nIHRoZSBjb21tYW5kIGluIGNhc2Ugb2Yg
YWRkX2N1c3RvbV9jb21tYW5kLgorCisgICAgICAgIFVTRVNfVEVSTUlOQUwgb3B0aW9uIG9mIGFk
ZF9jdXN0b21fdGFyZ2V0IGhhcyB0d28gZWZmZWN0czoKKyAgICAgICAgMSkgTm90IGJ1ZmZlcmlu
ZyBvdXRwdXQgb2YgdGhlIGNvbW1hbmQKKyAgICAgICAgMikgSW52b2tpbmcgdGhlIGNvbW1hbmQg
aW4gdGhlIHNwZWNpYWwgTmluamEgcG9vbCB3aGljaCBpbmhpYml0cyBwYXJhbGxlbCBidWlsZAor
ICAgICAgICBPbmUgbmVlZHMgdG8gdXNlIENNYWtlIDMuMiBvciBsYXRlciB0byBlbmFibGUgdGhp
cyBmZWF0dXJlLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvQ01ha2VMaXN0cy50eHQ6IFNw
ZWNpZmllZCBhIHRhcmdldCBuYW1lIGZvcgorICAgICAgICBHRU5FUkFURV9CSU5ESU5HUy4gQWRk
ZWQgZGVwZW5kZW5jeSBmb3IgdGhlIHRhcmdldC4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVy
L0NNYWtlTGlzdHMudHh0OiBEaXR0by4KKwogMjAxNi0xMC0xMyAgQWxleCBDaHJpc3RlbnNlbiAg
PGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIEhvc3RzIG9mIFVSTHMgd2l0aCBu
b24tc3BlY2lhbCBzY2hlbWVzIHNob3VsZCBiZSBjYXNlLXNlbnNpdGl2ZSwgYW5kIG5vbi1BU0NJ
SSBjaGFyYWN0ZXJzIGluIHN1Y2ggaG9zdHMgc2hvdWxkIGJlIHB1bnljb2RlLWVuY29kZWQKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0NNYWtlTGlzdHMudHh0IGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvQ01ha2VMaXN0cy50eHQKaW5kZXggYmFmN2MxM2M1NzIxYWU2YzE4YzAzMzdj
NDBmODRkYTlkNzFhZWJkZS4uZGM4NDIwZGY4OWY3NzJhOGRjM2U1ODhkNWJhODc3NDE2MmYyNzVi
MCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvQ01ha2VMaXN0cy50eHQKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvQ01ha2VMaXN0cy50eHQKQEAgLTEyMCw3ICsxMjAsNyBAQCBz
ZXQoRHVtcFJlbmRlclRyZWVfSURMX0ZJTEVTCiAgICAgIiR7V0VCS0lUX1RFU1RSVU5ORVJfVUlT
Q1JJUFRDT05URVhUX0RJUn0vQmluZGluZ3MvVUlTY3JpcHRDb250cm9sbGVyLmlkbCIKICkKIAot
R0VORVJBVEVfQklORElOR1MoCitHRU5FUkFURV9CSU5ESU5HUyhEdW1wUmVuZGVyVHJlZUJpbmRp
bmdzCiAgICAgT1VUUFVUX1NPVVJDRSBEdW1wUmVuZGVyVHJlZV9TT1VSQ0VTCiAgICAgSU5QVVRf
RklMRVMgJHtEdW1wUmVuZGVyVHJlZV9JRExfRklMRVN9CiAgICAgQkFTRV9ESVIgJHtEVU1QX1JF
TkRFUl9UUkVFX0JJTkRJTkdTX0RJUn0KQEAgLTEzNSw2ICsxMzUsNyBAQCBpbmNsdWRlX2RpcmVj
dG9yaWVzKCR7RHVtcFJlbmRlclRyZWVfSU5DTFVERV9ESVJFQ1RPUklFU30pCiAKIGFkZF9leGVj
dXRhYmxlKER1bXBSZW5kZXJUcmVlICR7RHVtcFJlbmRlclRyZWVfU09VUkNFU30pCiB0YXJnZXRf
bGlua19saWJyYXJpZXMoRHVtcFJlbmRlclRyZWUgJHtEdW1wUmVuZGVyVHJlZV9MSUJSQVJJRVN9
KQorYWRkX2RlcGVuZGVuY2llcyhEdW1wUmVuZGVyVHJlZSBEdW1wUmVuZGVyVHJlZUJpbmRpbmdz
KQogCiBpZiAoRU5BQkxFX05FVFNDQVBFX1BMVUdJTl9BUEkpCiAgICAgYWRkX2xpYnJhcnkoVGVz
dE5ldHNjYXBlUGx1Z2luIFNIQVJFRCAke1Rlc3ROZXRzY2FwZVBsdWdpbl9TT1VSQ0VTfSkKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvQ01ha2VMaXN0cy50eHQgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0NNYWtlTGlzdHMudHh0CmluZGV4IDI3ZWEzNmMzYmQ0N2VmMDJhNjRh
OTI3ZjY4NTIyM2RhMzViODQ5ZmEuLjhjOTg3Njg4ZDRhOGMyN2Y0MDZmNjAwZGMyNWUwYzNhZjhk
NWVlNTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvQ01ha2VMaXN0cy50eHQK
KysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9DTWFrZUxpc3RzLnR4dApAQCAtOTcsNyArOTcs
NyBAQCBzZXQoV2ViS2l0VGVzdFJ1bm5lcl9JRExfRklMRVMKICAgICAiJHtXRUJLSVRfVEVTVFJV
Tk5FUl9VSVNDUklQVENPTlRFWFRfRElSfS9CaW5kaW5ncy9VSVNjcmlwdENvbnRyb2xsZXIuaWRs
IgogKQogCi1HRU5FUkFURV9CSU5ESU5HUygKK0dFTkVSQVRFX0JJTkRJTkdTKFdlYktpdFRlc3RS
dW5uZXJJbmplY3RlZEJ1bmRsZUJpbmRpbmdzCiAgICAgT1VUUFVUX1NPVVJDRSBXZWJLaXRUZXN0
UnVubmVySW5qZWN0ZWRCdW5kbGVfU09VUkNFUwogICAgIElOUFVUX0ZJTEVTICR7V2ViS2l0VGVz
dFJ1bm5lckluamVjdGVkQnVuZGxlX0lETF9GSUxFU30KICAgICBCQVNFX0RJUiAke1dFQktJVF9U
RVNUUlVOTkVSX0lOSkVDVEVEQlVORExFX0RJUn0vQmluZGluZ3MKQEAgLTEwNiw3ICsxMDYsNyBA
QCBHRU5FUkFURV9CSU5ESU5HUygKICAgICBERVNUSU5BVElPTiAke0RFUklWRURfU09VUkNFU19E
SVJ9L0luamVjdGVkQnVuZGxlCiAgICAgR0VORVJBVE9SIFRlc3RSdW5uZXIpCiAKLUdFTkVSQVRF
X0JJTkRJTkdTKAorR0VORVJBVEVfQklORElOR1MoV2ViS2l0VGVzdFJ1bm5lckJpbmRpbmdzCiAg
ICAgT1VUUFVUX1NPVVJDRSBXZWJLaXRUZXN0UnVubmVyX1NPVVJDRVMKICAgICBJTlBVVF9GSUxF
UyAke1dlYktpdFRlc3RSdW5uZXJfSURMX0ZJTEVTfQogICAgIEJBU0VfRElSICR7V0VCS0lUX1RF
U1RSVU5ORVJfSU5KRUNURURCVU5ETEVfRElSfS9CaW5kaW5ncwpAQCAtMTIyLDkgKzEyMiwxMSBA
QCBpbmNsdWRlX2RpcmVjdG9yaWVzKFNZU1RFTSAke1dlYktpdFRlc3RSdW5uZXJfU1lTVEVNX0lO
Q0xVREVfRElSRUNUT1JJRVN9KQogCiBhZGRfbGlicmFyeShUZXN0UnVubmVySW5qZWN0ZWRCdW5k
bGUgU0hBUkVEICR7V2ViS2l0VGVzdFJ1bm5lckluamVjdGVkQnVuZGxlX1NPVVJDRVN9KQogdGFy
Z2V0X2xpbmtfbGlicmFyaWVzKFRlc3RSdW5uZXJJbmplY3RlZEJ1bmRsZSAke1dlYktpdFRlc3RS
dW5uZXJfTElCUkFSSUVTfSkKK2FkZF9kZXBlbmRlbmNpZXMoVGVzdFJ1bm5lckluamVjdGVkQnVu
ZGxlIFdlYktpdFRlc3RSdW5uZXJJbmplY3RlZEJ1bmRsZUJpbmRpbmdzKQogCiBhZGRfZXhlY3V0
YWJsZShXZWJLaXRUZXN0UnVubmVyICR7V2ViS2l0VGVzdFJ1bm5lcl9TT1VSQ0VTfSkKIHRhcmdl
dF9saW5rX2xpYnJhcmllcyhXZWJLaXRUZXN0UnVubmVyICR7V2ViS2l0VGVzdFJ1bm5lcl9MSUJS
QVJJRVN9KQorYWRkX2RlcGVuZGVuY2llcyhXZWJLaXRUZXN0UnVubmVyIFdlYktpdFRlc3RSdW5u
ZXJCaW5kaW5ncykKIAogaWYgKE5PVCBBUFBMRSkKICAgICBhZGRfZGVwZW5kZW5jaWVzKFdlYktp
dDIgJHtGb3J3YXJkaW5nSGVhZGVyc0ZvcldlYktpdFRlc3RSdW5uZXJfTkFNRX0pCmRpZmYgLS1n
aXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggNDkxNTU4MzRjNTYxYmJlOTM4MjA2Yjkw
ZmFhYzIwNGU4ZDg5YmE4Zi4uYjYwYzE1MjkyOTY4NGViMWYwOWFiZmI5ZTdkMzExMmU5MzYyZDhi
YyAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBA
CisyMDE2LTEwLTEzICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgor
CisgICAgICAgIFtDTWFrZV0gQ01ha2UgZG9lcyBub3Qgc3VwcG9ydCB0aGUgZGVwIGZpbGVzIGZv
ciBpbXBsaWNpdCBkZXBlbmRlbmN5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNjE0MzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBDcmVhdGVkIGEgUGVybCBzY3JpcHQgdG8gZ2VuZXJhdGUgYWxsIElETCBi
aW5kaW5ncyBmb3IgQ01ha2UuCisgICAgICAgIFRoaXMgc2NyaXB0IGNhbiByZWdlbmVyYXRlIG91
dGRhdGVkIGJpbmRpbmdzIGJ5IGJhc2VkIG9uIHRoZQorICAgICAgICBzdXBwbGVtZW50YWwgZGVw
ZW5kZW5jeSBhbmQgZGVwIGZpbGVzIGNyZWF0ZWQgYnkKKyAgICAgICAgJy0td3JpdGUtZGVwZW5k
ZW5jaWVzJyBzd2l0Y2ggb2YgZ2VuZXJhdGUtYmluZGluZ3MucGwuCisKKyAgICAgICAgYWRkX2N1
c3RvbV90YXJnZXQgaXMgdXNlZCB0byBpbnZva2UgdGhlIHNjcmlwdCBpbnN0ZWFkIG9mCisgICAg
ICAgIGFkZF9jdXN0b21fY29tbWFuZCBiZWNhdXNlIE5pbmphIGRlbGV0ZXMgYWxsIG91dHB1dCBm
aWxlcyBiZWZvcmUKKyAgICAgICAgZXhlY3V0aW5nIHRoZSBjb21tYW5kIGluIGNhc2Ugb2YgYWRk
X2N1c3RvbV9jb21tYW5kLgorCisgICAgICAgIFVTRVNfVEVSTUlOQUwgb3B0aW9uIG9mIGFkZF9j
dXN0b21fdGFyZ2V0IGhhcyB0d28gZWZmZWN0czoKKyAgICAgICAgMSkgTm90IGJ1ZmZlcmluZyBv
dXRwdXQgb2YgdGhlIGNvbW1hbmQKKyAgICAgICAgMikgSW52b2tpbmcgdGhlIGNvbW1hbmQgaW4g
dGhlIHNwZWNpYWwgTmluamEgcG9vbCB3aGljaCBpbmhpYml0cyBwYXJhbGxlbCBidWlsZAorICAg
ICAgICBPbmUgbmVlZHMgdG8gdXNlIENNYWtlIDMuMiBvciBsYXRlciB0byBlbmFibGUgdGhpcyBm
ZWF0dXJlLgorCisgICAgICAgICogU291cmNlL2NtYWtlL1dlYktpdE1hY3Jvcy5jbWFrZSAoR0VO
RVJBVEVfQklORElOR1MpOiBJbmNsdWRlZAorICAgICAgICBQcm9jZXNzb3JDb3VudC4gIEFkZGVk
IGEgbmV3IGFyZ3VtZW50ICd0YXJnZXQnLiAgVXNlCisgICAgICAgIGFkZF9jdXN0b21fdGFyZ2V0
IGluc3RlYWQgb2YgYWRkX2N1c3RvbV9jb21tYW5kLiAgSW52b2tlIHRoZSBuZXcKKyAgICAgICAg
c2NyaXB0LgorCiAyMDE2LTEwLTEzICBCcmlhbiBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgogCiAg
ICAgICAgIFtDTWFrZV0gU3BsaXQgdGhlIGRlZmluaXRpb24gb2YgQ09ERV9HRU5FUkFUT1JfUFJF
UFJPQ0VTU09SIHNvIGl0IGNhbiBiZSB1c2VkIGluIGEgY3VzdG9tIGNvbW1hbmQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>291790</attachid>
            <date>2016-10-16 18:29:01 -0700</date>
            <delta_ts>2016-10-19 20:24:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-161433-20161016182539.patch</filename>
            <type>text/plain</type>
            <size>23720</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA3Mzk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODc1NzYxOWE3MGM0YmMz
OTAwNDIzNGE3Y2RhOGIzNzE4YjQ1MDU4Zi4uMzYzYTM5ZjdjMzljYjdhZjhmZTk5ZjI5MjRjNmZh
OWQwN2ZiZTJlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE2LTEwLTE2ICBGdWpp
aSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgorCisgICAgICAgIFtDTWFrZV0g
Q01ha2UgZG9lcyBub3Qgc3VwcG9ydCB0aGUgZGVwIGZpbGVzIGZvciBpbXBsaWNpdCBkZXBlbmRl
bmN5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjE0
MzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDcmVh
dGVkIGEgUGVybCBzY3JpcHQgdG8gZ2VuZXJhdGUgYWxsIElETCBiaW5kaW5ncyBmb3IgQ01ha2Uu
CisgICAgICAgIFRoaXMgc2NyaXB0IGNhbiByZWdlbmVyYXRlIG91dGRhdGVkIGJpbmRpbmdzIGJ5
IGJhc2VkIG9uIHRoZQorICAgICAgICBzdXBwbGVtZW50YWwgZGVwZW5kZW5jeSBhbmQgZGVwIGZp
bGVzIGNyZWF0ZWQgYnkKKyAgICAgICAgJy0td3JpdGUtZGVwZW5kZW5jaWVzJyBzd2l0Y2ggb2Yg
Z2VuZXJhdGUtYmluZGluZ3MucGwuCisKKyAgICAgICAgYWRkX2N1c3RvbV90YXJnZXQgaXMgdXNl
ZCB0byBpbnZva2UgdGhlIHNjcmlwdCBpbnN0ZWFkIG9mCisgICAgICAgIGFkZF9jdXN0b21fY29t
bWFuZCBiZWNhdXNlIE5pbmphIGRlbGV0ZXMgYWxsIG91dHB1dCBmaWxlcyBiZWZvcmUKKyAgICAg
ICAgZXhlY3V0aW5nIHRoZSBjb21tYW5kIGluIGNhc2Ugb2YgYWRkX2N1c3RvbV9jb21tYW5kLgor
CisgICAgICAgIFVTRVNfVEVSTUlOQUwgb3B0aW9uIG9mIGFkZF9jdXN0b21fdGFyZ2V0IGhhcyB0
d28gZWZmZWN0czoKKyAgICAgICAgMSkgTm90IGJ1ZmZlcmluZyBvdXRwdXQgb2YgdGhlIGNvbW1h
bmQKKyAgICAgICAgMikgSW52b2tpbmcgdGhlIGNvbW1hbmQgaW4gdGhlIHNwZWNpYWwgTmluamEg
cG9vbCB3aGljaCBpbmhpYml0cyBwYXJhbGxlbCBidWlsZAorICAgICAgICBPbmUgbmVlZHMgdG8g
dXNlIENNYWtlIDMuMiBvciBsYXRlciB0byBlbmFibGUgdGhpcyBmZWF0dXJlLgorCisgICAgICAg
ICogQ01ha2VMaXN0cy50eHQ6IFNwZWNpZmllZCB0YXJnZXQgbmFtZXMgZm9yCisgICAgICAgIEdF
TkVSQVRFX0JJTkRJTkdTLiBBZGRlZCBkZXBlbmRlbmN5IGZvciB0aGUgdGFyZ2V0cy4KKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL2dlbmVyYXRlLWJpbmRpbmdzLWFsbC5wbDogQWRkZWQuCisK
IDIwMTYtMTAtMTYgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbTW9kZXJuIE1lZGlhIENvbnRyb2xzXSBTdHlsZXMgZm9yIFN0YXJ0QnV0dG9uIGFyZSBtaXNz
aW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDgzYWFmNTY3NzZlMzI1MWI3ZWRhYmQ1NThmZGU5
YzVjZDBlYjYwMmIuLmRkYWFkNDY5ZWRjMmI5YmJlOTg1ZTM3MGIyZDE2ZDI4YWJhZGUwZmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CkBAIC0zNjM0LDcgKzM2MzQsNyBAQCBsaXN0KEFQUEVORCBXZWJD
b3JlX0RFUklWRURfU09VUkNFUyAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vWFBhdGhH
cmFtbWFyLgogc2V0KEZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICJMQU5HVUFHRV9KQVZBU0NS
SVBUICR7RkVBVFVSRV9ERUZJTkVTX1dJVEhfU1BBQ0VfU0VQQVJBVE9SfSIpCiBsaXN0KEFQUEVO
RCBXZWJDb3JlVGVzdFN1cHBvcnRfSURMX0ZJTEVTICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVf
RElSfS9JbnRlcm5hbFNldHRpbmdzR2VuZXJhdGVkLmlkbCkKIAotR0VORVJBVEVfQklORElOR1Mo
CitHRU5FUkFURV9CSU5ESU5HUyhXZWJDb3JlQmluZGluZ3MKICAgICBPVVRQVVRfU09VUkNFIFdl
YkNvcmVfREVSSVZFRF9TT1VSQ0VTCiAgICAgSU5QVVRfRklMRVMgJHtXZWJDb3JlX0lETF9GSUxF
U30KICAgICBCQVNFX0RJUiAke1dFQkNPUkVfRElSfQpAQCAtMzY1MCw3ICszNjUwLDcgQEAgR0VO
RVJBVEVfQklORElOR1MoCiAgICAgICAgIC0td29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNG
aWxlICR7V09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEV9CiAgICAgICAgIC0tZGVk
aWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICR7REVESUNBVEVEV09SS0VS
R0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEV9KQogCi1HRU5FUkFURV9CSU5ESU5HUygKK0dF
TkVSQVRFX0JJTkRJTkdTKFdlYkNvcmVUZXN0U3VwcG9ydEJpbmRpbmdzCiAgICAgT1VUUFVUX1NP
VVJDRSBXZWJDb3JlVGVzdFN1cHBvcnRfU09VUkNFUwogICAgIElOUFVUX0ZJTEVTICR7V2ViQ29y
ZVRlc3RTdXBwb3J0X0lETF9GSUxFU30KICAgICBCQVNFX0RJUiAke1dFQkNPUkVfRElSfQpAQCAt
MzY1OSw2ICszNjU5LDkgQEAgR0VORVJBVEVfQklORElOR1MoCiAgICAgREVTVElOQVRJT04gJHtE
RVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9CiAgICAgR0VORVJBVE9SIEpTKQogCisjIFdlYkNv
cmVUZXN0U3VwcG9ydEJpbmRpbmdzIG5lZWRzIEludGVybmFsU2V0dGluZ3NHZW5lcmF0ZWQuaWRs
CithZGRfZGVwZW5kZW5jaWVzKFdlYkNvcmVUZXN0U3VwcG9ydEJpbmRpbmdzIFdlYkNvcmVEZXJp
dmVkU291cmNlcykKKwogIyBXZWJDb3JlIEpTIEJ1aWx0aW5zCiAKIHNldChXZWJDb3JlX0JVSUxU
SU5TX1NPVVJDRVMKQEAgLTM4MDQsNyArMzgwNyw3IEBAIGVuZGlmICgpCiAjIGZpbGVzIG9uIE9T
IFguCiBhZGRfbGlicmFyeShXZWJDb3JlRGVyaXZlZFNvdXJjZXMgU1RBVElDICR7V2ViQ29yZV9E
RVJJVkVEX1NPVVJDRVN9KQogc2V0X3RhcmdldF9wcm9wZXJ0aWVzKFdlYkNvcmVEZXJpdmVkU291
cmNlcyBQUk9QRVJUSUVTIE9VVFBVVF9OQU1FIFdlYkNvcmVEZXJpdmVkU291cmNlcyR7REVCVUdf
U1VGRklYfSkKLWFkZF9kZXBlbmRlbmNpZXMoV2ViQ29yZURlcml2ZWRTb3VyY2VzIEphdmFTY3Jp
cHRDb3JlKQorYWRkX2RlcGVuZGVuY2llcyhXZWJDb3JlRGVyaXZlZFNvdXJjZXMgSmF2YVNjcmlw
dENvcmUgV2ViQ29yZUJpbmRpbmdzKQogaWYgKE5PVCBXSU4zMikKICAgICBsaXN0KEFQUEVORCBX
ZWJDb3JlX0xJQlJBUklFUyBXZWJDb3JlRGVyaXZlZFNvdXJjZXMpCiBlbmRpZiAoKQpAQCAtMzgz
NSw3ICszODM4LDcgQEAgZW5kaWYgKCkKIAogaW5jbHVkZV9kaXJlY3Rvcmllcygke1dlYkNvcmVU
ZXN0U3VwcG9ydF9JTkNMVURFX0RJUkVDVE9SSUVTfSkKIGFkZF9saWJyYXJ5KFdlYkNvcmVUZXN0
U3VwcG9ydCAke1dlYkNvcmVUZXN0U3VwcG9ydF9MSUJSQVJZX1RZUEV9ICR7V2ViQ29yZVRlc3RT
dXBwb3J0X1NPVVJDRVN9KQotYWRkX2RlcGVuZGVuY2llcyhXZWJDb3JlVGVzdFN1cHBvcnQgV2Vi
Q29yZSkKK2FkZF9kZXBlbmRlbmNpZXMoV2ViQ29yZVRlc3RTdXBwb3J0IFdlYkNvcmUgV2ViQ29y
ZVRlc3RTdXBwb3J0QmluZGluZ3MpCiB0YXJnZXRfbGlua19saWJyYXJpZXMoV2ViQ29yZVRlc3RT
dXBwb3J0ICR7V2ViQ29yZVRlc3RTdXBwb3J0X0xJQlJBUklFU30pCiAKIGlmIChXZWJDb3JlVGVz
dFN1cHBvcnRfT1VUUFVUX05BTUUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL2dlbmVyYXRlLWJpbmRpbmdzLWFsbC5wbCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvZ2VuZXJhdGUtYmluZGluZ3MtYWxsLnBsCm5ldyBmaWxlIG1vZGUgMTAwNzU1
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBiOTgyZGFm
MzRjMTI0NWY2NTlkYzY0OTMzYzgzYThmNTk5OGYzMzcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL2dlbmVyYXRlLWJpbmRpbmdzLWFsbC5wbApAQCAt
MCwwICsxLDIzNyBAQAorIyEvdXNyL2Jpbi9wZXJsCisjCisjIENvcHlyaWdodCAoQykgMjAxNiBT
b255IEludGVyYWN0aXZlIEVudGVydGFpbm1lbnQgSW5jLgorIworIyBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycgQU5EIEFOWQorIyBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZCisjIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisjIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsKKyMgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisjIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTCisjIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorIworCit1c2Ugc3RyaWN0OwordXNlIHdhcm5pbmdzOwordXNl
IEZpbmRCaW47Cit1c2UgbGliICRGaW5kQmluOjpCaW47CisKK3VzZSBGaWxlOjpCYXNlbmFtZTsK
K3VzZSBGaWxlOjpTcGVjOwordXNlIEZpbGU6OkZpbmQ7Cit1c2UgR2V0b3B0OjpMb25nOwordXNl
IHRocmVhZHM7Cit1c2UgdGhyZWFkczo6c2hhcmVkOwordXNlIFRocmVhZDo6UXVldWU7CisKK215
ICRwZXJsID0gJF5YOworbXkgJHNjcmlwdERpciA9ICRGaW5kQmluOjpCaW47CitteSBAaWRsRGly
ZWN0b3JpZXM7CitteSAkb3V0cHV0RGlyZWN0b3J5OworbXkgJGlkbEZpbGVzTGlzdDsKK215ICRn
ZW5lcmF0b3I7CitteSBAZ2VuZXJhdG9yRGVwZW5kZW5jeTsKK215ICRkZWZpbmVzOworbXkgJHBy
ZXByb2Nlc3NvcjsKK215ICRzdXBwbGVtZW50YWxEZXBlbmRlbmN5RmlsZTsKK215IEBwcEV4dHJh
T3V0cHV0OworbXkgQHBwRXh0cmFBcmdzOworbXkgJG51bU9mSm9icyA9IDE7CitteSAkaWRsQXR0
cmlidXRlc0ZpbGU7CisKK0dldE9wdGlvbnMoJ2luY2x1ZGU9c0AnID0+IFxAaWRsRGlyZWN0b3Jp
ZXMsCisgICAgICAgICAgICdvdXRwdXREaXI9cycgPT4gXCRvdXRwdXREaXJlY3RvcnksCisgICAg
ICAgICAgICdpZGxGaWxlc0xpc3Q9cycgPT4gXCRpZGxGaWxlc0xpc3QsCisgICAgICAgICAgICdn
ZW5lcmF0b3I9cycgPT4gXCRnZW5lcmF0b3IsCisgICAgICAgICAgICdnZW5lcmF0b3JEZXBlbmRl
bmN5PXNAJyA9PiBcQGdlbmVyYXRvckRlcGVuZGVuY3ksCisgICAgICAgICAgICdkZWZpbmVzPXMn
ID0+IFwkZGVmaW5lcywKKyAgICAgICAgICAgJ3ByZXByb2Nlc3Nvcj1zJyA9PiBcJHByZXByb2Nl
c3NvciwKKyAgICAgICAgICAgJ3N1cHBsZW1lbnRhbERlcGVuZGVuY3lGaWxlPXMnID0+IFwkc3Vw
cGxlbWVudGFsRGVwZW5kZW5jeUZpbGUsCisgICAgICAgICAgICdwcEV4dHJhT3V0cHV0PXNAJyA9
PiBcQHBwRXh0cmFPdXRwdXQsCisgICAgICAgICAgICdwcEV4dHJhQXJncz1zQCcgPT4gXEBwcEV4
dHJhQXJncywKKyAgICAgICAgICAgJ2lkbEF0dHJpYnV0ZXNGaWxlPXMnID0+IFwkaWRsQXR0cmli
dXRlc0ZpbGUsCisgICAgICAgICAgICdudW1PZkpvYnM9aScgPT4gXCRudW1PZkpvYnMpOworCisk
fCA9IDE7CitteSBAaWRsRmlsZXM7CitvcGVuKG15ICRmaCwgJzwnLCAkaWRsRmlsZXNMaXN0KSBv
ciBkaWUgIkNhbm5vdCBvcGVuICRpZGxGaWxlc0xpc3QiOworQGlkbEZpbGVzID0gbWFwIHsgQ3ln
d2luUGF0aElmTmVlZGVkKHMvXHI/XG4/JC8vcikgfSA8JGZoPjsKK2Nsb3NlKCRmaCkgb3IgZGll
OworCitteSAlc3VwcGxlbWVudGVkSWRsRmlsZXM7CitpZiAoJHN1cHBsZW1lbnRhbERlcGVuZGVu
Y3lGaWxlKSB7CisgICAgbXkgQG91dHB1dCA9ICgkc3VwcGxlbWVudGFsRGVwZW5kZW5jeUZpbGUs
IEBwcEV4dHJhT3V0cHV0KTsKKyAgICBteSBAZGVwcyA9IChAaWRsRmlsZXMsIEBnZW5lcmF0b3JE
ZXBlbmRlbmN5KTsKKyAgICBpZiAobmVlZHNVcGRhdGUoXEBvdXRwdXQsIFxAZGVwcykpIHsKKyAg
ICAgICAgbXkgQGFyZ3MgPSAoJy0tZGVmaW5lcycsICRkZWZpbmVzLAorICAgICAgICAgICAgICAg
ICAgICAnLS1pZGxGaWxlc0xpc3QnLCAkaWRsRmlsZXNMaXN0LAorICAgICAgICAgICAgICAgICAg
ICAnLS1zdXBwbGVtZW50YWxEZXBlbmRlbmN5RmlsZScsICRzdXBwbGVtZW50YWxEZXBlbmRlbmN5
RmlsZSwKKyAgICAgICAgICAgICAgICAgICAgQHBwRXh0cmFBcmdzKTsKKyAgICAgICAgcHJpbnQo
IlByZXByb2Nlc3MgSURMXG4iKTsKKyAgICAgICAgZXhlY3V0ZUNvbW1hbmQoJHBlcmwsICIkc2Ny
aXB0RGlyL3ByZXByb2Nlc3MtaWRscy5wbCIsIEBhcmdzKSA9PSAwIG9yIGRpZTsKKyAgICB9Cisg
ICAgb3BlbihteSAkZmgsICc8JywgJHN1cHBsZW1lbnRhbERlcGVuZGVuY3lGaWxlKSBvciBkaWUg
IkNhbm5vdCBvcGVuICRzdXBwbGVtZW50YWxEZXBlbmRlbmN5RmlsZSI7CisgICAgd2hpbGUgKDwk
Zmg+KSB7CisgICAgICAgIG15ICgkaWRsRmlsZSwgQGZvbGxvd2luZ0lkbEZpbGVzKSA9IHNwbGl0
KC9ccysvKTsKKyAgICAgICAgJHN1cHBsZW1lbnRlZElkbEZpbGVzeyRpZGxGaWxlfSA9IFxAZm9s
bG93aW5nSWRsRmlsZXM7CisgICAgfQorICAgIGNsb3NlKCRmaCkgb3IgZGllOworfQorCitteSBA
YXJncyA9ICgiJHNjcmlwdERpci9nZW5lcmF0ZS1iaW5kaW5ncy5wbCIsCisgICAgICAgICAgICAn
LS1kZWZpbmVzJywgJGRlZmluZXMsCisgICAgICAgICAgICAnLS1nZW5lcmF0b3InLCAkZ2VuZXJh
dG9yLAorICAgICAgICAgICAgJy0tb3V0cHV0RGlyJywgJG91dHB1dERpcmVjdG9yeSwKKyAgICAg
ICAgICAgICctLXByZXByb2Nlc3NvcicsICRwcmVwcm9jZXNzb3IsCisgICAgICAgICAgICAnLS1p
ZGxBdHRyaWJ1dGVzRmlsZScsICRpZGxBdHRyaWJ1dGVzRmlsZSwKKyAgICAgICAgICAgICctLXdy
aXRlLWRlcGVuZGVuY2llcycpOworcHVzaCBAYXJncywgbWFwIHsgKCctLWluY2x1ZGUnLCAkXykg
fSBAaWRsRGlyZWN0b3JpZXM7CitwdXNoIEBhcmdzLCAnLS1zdXBwbGVtZW50YWxEZXBlbmRlbmN5
RmlsZScsICRzdXBwbGVtZW50YWxEZXBlbmRlbmN5RmlsZSBpZiAkc3VwcGxlbWVudGFsRGVwZW5k
ZW5jeUZpbGU7CisKK215ICVkaXJlY3RvcnlDYWNoZTsKK2J1aWxkRGlyZWN0b3J5Q2FjaGUoKTsK
KworbXkgQGlkbEZpbGVzVG9VcGRhdGUgPSBncmVwIHsKKyAgICBteSAoJGZpbGVuYW1lLCAkZGly
cywgJHN1ZmZpeCkgPSBmaWxlcGFyc2UoJF8sICcuaWRsJyk7CisgICAgbXkgJHNvdXJjZUZpbGUg
PSBGaWxlOjpTcGVjLT5jYXRmaWxlKCRvdXRwdXREaXJlY3RvcnksICJKUyRmaWxlbmFtZS5jcHAi
KTsKKyAgICBteSAkaGVhZGVyRmlsZSA9IEZpbGU6OlNwZWMtPmNhdGZpbGUoJG91dHB1dERpcmVj
dG9yeSwgIkpTJGZpbGVuYW1lLmgiKTsKKyAgICBteSAkZGVwRmlsZSA9IEZpbGU6OlNwZWMtPmNh
dGZpbGUoJG91dHB1dERpcmVjdG9yeSwgIkpTJGZpbGVuYW1lLmRlcCIpOworICAgIG15IEBvdXRw
dXQgPSAoJHNvdXJjZUZpbGUsICRoZWFkZXJGaWxlKTsKKyAgICBteSBAZGVwcyA9ICgkXywKKyAg
ICAgICAgICAgICAgICAkaWRsQXR0cmlidXRlc0ZpbGUsCisgICAgICAgICAgICAgICAgQGdlbmVy
YXRvckRlcGVuZGVuY3ksCisgICAgICAgICAgICAgICAgQHskc3VwcGxlbWVudGVkSWRsRmlsZXN7
JF99IG9yIFtdfSwKKyAgICAgICAgICAgICAgICBpbXBsaWNpdERlcGVuZGVuY2llcygkZGVwRmls
ZSkpOworICAgIG5lZWRzVXBkYXRlKFxAb3V0cHV0LCBcQGRlcHMpOworfSBAaWRsRmlsZXM7Citt
eSAkcXVldWUgPSBUaHJlYWQ6OlF1ZXVlLT5uZXcoQGlkbEZpbGVzVG9VcGRhdGUpOworbXkgJGFi
b3J0IDpzaGFyZWQgPSAwOworbXkgJHRlcm1pbmFsV2lkdGggPSBnZXRUZXJtaW5hbFdpZHRoKCk7
CitteSAkdG90YWxDb3VudCA9IEBpZGxGaWxlc1RvVXBkYXRlOworbXkgJGN1cnJlbnRDb3VudCA6
c2hhcmVkID0gMDsKKworbXkgQHRocmVhZFBvb2wgPSBtYXAgeyB0aHJlYWRzLT5jcmVhdGUoXCZ3
b3JrZXIpIH0gKDEgLi4gJG51bU9mSm9icyk7CiskXy0+am9pbiBmb3IgQHRocmVhZFBvb2w7Citl
eGl0ICRhYm9ydDsKKworc3ViIG5lZWRzVXBkYXRlCit7CisgICAgbXkgKCRvYmplY3RzLCAkZGVw
ZW5kcykgPSBAXzsKKyAgICBteSAkb2xkZXN0T2JqZWN0OworICAgIG15ICRvbGRlc3RPYmplY3RU
aW1lOworICAgIGZvciAoQCRvYmplY3RzKSB7CisgICAgICAgIHJldHVybiAxIGlmICEtZjsKKyAg
ICAgICAgbXkgJG0gPSBtdGltZSgkXyk7CisgICAgICAgIGlmICghZGVmaW5lZCAkb2xkZXN0T2Jq
ZWN0VGltZSB8fCAkbSA8ICRvbGRlc3RPYmplY3RUaW1lKSB7CisgICAgICAgICAgICAkb2xkZXN0
T2JqZWN0ID0gJF87CisgICAgICAgICAgICAkb2xkZXN0T2JqZWN0VGltZSA9ICRtOworICAgICAg
ICB9CisgICAgfQorICAgIGZvciAoQCRkZXBlbmRzKSB7CisgICAgICAgIGRpZSAiTWlzc2luZyBy
ZXF1aXJlZCBkZXBlbmRlbmN5OiAkXyIgaWYgIS1mOworICAgICAgICBteSAkbSA9IG10aW1lKCRf
KTsKKyAgICAgICAgaWYgKCRvbGRlc3RPYmplY3RUaW1lIDwgJG0pIHsKKyAgICAgICAgICAgICMg
cHJpbnQgIiRfIGlzIG5ld2VyIHRoYW4gJG9sZGVzdE9iamVjdFxuIjsKKyAgICAgICAgICAgIHJl
dHVybiAxOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiAwOworfQorCitzdWIgbXRpbWUK
K3sKKyAgICBteSAoJGZpbGUpID0gQF87CisgICAgcmV0dXJuIChzdGF0ICRmaWxlKVs5XTsKK30K
Kworc3ViIHdvcmtlciB7CisgICAgd2hpbGUgKG15ICRmaWxlID0gJHF1ZXVlLT5kZXF1ZXVlX25i
KCkpIHsKKyAgICAgICAgbGFzdCBpZiAkYWJvcnQ7CisgICAgICAgIGV2YWwgeworICAgICAgICAg
ICAgJGN1cnJlbnRDb3VudCsrOworICAgICAgICAgICAgbXkgJGJhc2VuYW1lID0gYmFzZW5hbWUo
JGZpbGUpOworICAgICAgICAgICAgaWYgKCR0ZXJtaW5hbFdpZHRoKSB7CisgICAgICAgICAgICAg
ICAgbXkgJHcgPSAkdGVybWluYWxXaWR0aCAtIDE7CisgICAgICAgICAgICAgICAgcHJpbnQgc3By
aW50ZigiJS0qLipzXHIiLCAkdywgJHcsICJbJGN1cnJlbnRDb3VudC8kdG90YWxDb3VudF0gJGJh
c2VuYW1lIik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHByaW50ICJb
JGN1cnJlbnRDb3VudC8kdG90YWxDb3VudF0gJGJhc2VuYW1lXG4iOworICAgICAgICAgICAgfQor
ICAgICAgICAgICAgZXhlY3V0ZUNvbW1hbmQoJHBlcmwsIEBhcmdzLCAkZmlsZSkgPT0gMCBvciBk
aWU7CisgICAgICAgIH07CisgICAgICAgIGlmICgkQCkgeworICAgICAgICAgICAgJGFib3J0ID0g
MTsKKyAgICAgICAgICAgIGRpZTsKKyAgICAgICAgfQorICAgIH0KK30KKworc3ViIGJ1aWxkRGly
ZWN0b3J5Q2FjaGUKK3sKKyAgICBteSAkd2FudGVkID0gc3ViIHsKKyAgICAgICAgJGRpcmVjdG9y
eUNhY2hleyRffSA9ICRGaWxlOjpGaW5kOjpuYW1lOworICAgICAgICAkRmlsZTo6RmluZDo6cHJ1
bmUgPSAxIHVubGVzcyB+L1wuLzsKKyAgICB9OworICAgIGZpbmQoJHdhbnRlZCwgQGlkbERpcmVj
dG9yaWVzKTsKK30KKworc3ViIGltcGxpY2l0RGVwZW5kZW5jaWVzCit7CisgICAgbXkgKCRkZXBG
aWxlKSA9IEBfOworICAgIHJldHVybiAoKSB1bmxlc3MgLWYgJGRlcEZpbGU7CisgICAgb3Blbiht
eSAkZmgsICc8JywgJGRlcEZpbGUpIG9yIGRpZSAiQ2Fubm90IG9wZW4gJGRlcEZpbGUiOworICAg
IG15ICRmaXJzdExpbmUgPSA8JGZoPjsKKyAgICBjbG9zZSgkZmgpIG9yIGRpZTsKKyAgICBteSAo
dW5kZWYsICRkZXBzKSA9IHNwbGl0KC8gOiAvLCAkZmlyc3RMaW5lKTsKKyAgICBteSBAZGVwcyA9
IHNwbGl0KC9ccysvLCAkZGVwcyk7CisgICAgcmV0dXJuIG1hcCB7ICRkaXJlY3RvcnlDYWNoZXsk
X30gb3IgKCkgfSBAZGVwczsKK30KKworc3ViIGV4ZWN1dGVDb21tYW5kCit7CisgICAgaWYgKCRe
TyBlcSAnY3lnd2luJykgeworICAgICAgICAjICdzeXN0ZW0nIG9mIEN5Z3dpbiBQZXJsIGRvZXNu
J3Qgc2VlbSB0aHJlYWQtc2FmZQorICAgICAgICBteSAkcGlkID0gZm9yaygpOworICAgICAgICBk
ZWZpbmVkKCRwaWQpIG9yIGRpZTsKKyAgICAgICAgaWYgKCRwaWQgPT0gMCkgeworICAgICAgICAg
ICAgZXhlYyhAXykgb3IgZGllOworICAgICAgICB9CisgICAgICAgIHdhaXRwaWQoJHBpZCwgMCk7
CisgICAgICAgIHJldHVybiAkPzsKKyAgICB9CisgICAgaWYgKCReTyBlcSAnTVNXaW4zMicpIHsK
KyAgICAgICAgcmV0dXJuIHN5c3RlbShxdW90ZUNvbW1hbmQoQF8pKTsKKyAgICB9CisgICAgcmV0
dXJuIHN5c3RlbShAXyk7Cit9CisKK3N1YiBxdW90ZUNvbW1hbmQKK3sKKyAgICByZXR1cm4gbWFw
IHsKKyAgICAgICAgJyInIC4gcy8oW1xcXCJdKS9cXCQxL2dyIC4gJyInOworICAgIH0gQF87Cit9
CisKK3N1YiBDeWd3aW5QYXRoSWZOZWVkZWQKK3sKKyAgICBteSAkcGF0aCA9IHNoaWZ0OworICAg
IHJldHVybiBDeWd3aW46Ondpbl90b19wb3NpeF9wYXRoKCRwYXRoKSBpZiAoJF5PIGVxICdjeWd3
aW4nKTsKKyAgICByZXR1cm4gJHBhdGg7Cit9CisKK3N1YiBnZXRUZXJtaW5hbFdpZHRoCit7Cisg
ICAgcmV0dXJuIDAgdW5sZXNzIC10IFNURE9VVDsKKyAgICByZXR1cm4gYHN0dHkgc2l6ZWAgPX4g
L1xkK1xzKyhcZCspLyA/ICQxIDogODA7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvV2Vi
S2l0TWFjcm9zLmNtYWtlIGIvU291cmNlL2NtYWtlL1dlYktpdE1hY3Jvcy5jbWFrZQppbmRleCA2
MmQzNGRmNjhhNTRmYmRjYTBkZGQ5MDg3MWZkOTcwZjFkMmZhYzJkLi4yYzM2ZWUzNzM1Y2MxOGUx
MDcwYWVjMDc3ZTUyMGQ1NjhhMzI5NzdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvV2ViS2l0
TWFjcm9zLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9XZWJLaXRNYWNyb3MuY21ha2UKQEAgLTEs
NCArMSw2IEBACiBpbmNsdWRlKENNYWtlUGFyc2VBcmd1bWVudHMpCitpbmNsdWRlKFByb2Nlc3Nv
ckNvdW50KQorUHJvY2Vzc29yQ291bnQoUFJPQ0VTU09SX0NPVU5UKQogCiBtYWNybyhXRUJLSVRf
SU5DTFVERV9DT05GSUdfRklMRVNfSUZfRVhJU1RTKQogICAgIHNldChfZmlsZSAke0NNQUtFX0NV
UlJFTlRfU09VUkNFX0RJUn0vUGxhdGZvcm0ke1BPUlR9LmNtYWtlKQpAQCAtNDMsNyArNDUsOCBA
QCBtYWNybyhBRERfUFJFQ09NUElMRURfSEVBREVSIF9oZWFkZXIgX2NwcCBfc291cmNlKQogICAg
ICNGSVhNRTogQWRkIHN1cHBvcnQgZm9yIFhjb2RlLgogZW5kbWFjcm8oKQogCi0jIEhlbHBlciBt
YWNybyB3aGljaCB3cmFwcyBwcmVwcm9jZXNzLWlkbHMucGwgYW5kIGdlbmVyYXRlLWJpbmRpbmdz
LnBsIHNjcmlwdHMuCisjIEhlbHBlciBtYWNybyB3aGljaCB3cmFwcyBnZW5lcmF0ZS1iaW5kaW5n
cy1hbGwucGwgc2NyaXB0LgorIyAgIHRhcmdldCBpcyBhIG5ldyB0YXJnZXQgbmFtZSB0byBiZSBh
ZGRlZAogIyAgIE9VVFBVVF9TT1VSQ0UgaXMgYSBsaXN0IG5hbWUgd2hpY2ggd2lsbCBjb250YWlu
IGdlbmVyYXRlZCBzb3VyY2VzLihlZy4gV2ViQ29yZV9TT1VSQ0VTKQogIyAgIElOUFVUX0ZJTEVT
IGFyZSBJREwgZmlsZXMgdG8gZ2VuZXJhdGUuCiAjICAgQkFTRV9ESVIgaXMgYmFzZSBkaXJlY3Rv
cnkgd2hlcmUgc2NyaXB0IGlzIGNhbGxlZC4KQEAgLTU0LDE1ICs1NywxNCBAQCBlbmRtYWNybygp
CiAjICAgU1VQUExFTUVOVEFMX0RFUEZJTEUgaXMgYSB2YWx1ZSBvZiAtLXN1cHBsZW1lbnRhbERl
cGVuZGVuY3lGaWxlLiAob3B0aW9uYWwpCiAjICAgUFBfRVhUUkFfT1VUUFVUIGlzIGV4dHJhIG91
dHB1dHMgb2YgcHJlcHJvY2Vzcy1pZGxzLnBsLiAob3B0aW9uYWwpCiAjICAgUFBfRVhUUkFfQVJH
UyBpcyBleHRyYSBhcmd1bWVudHMgZm9yIHByZXByb2Nlc3MtaWRscy5wbC4gKG9wdGlvbmFsKQot
ZnVuY3Rpb24oR0VORVJBVEVfQklORElOR1MpCitmdW5jdGlvbihHRU5FUkFURV9CSU5ESU5HUyB0
YXJnZXQpCiAgICAgc2V0KG9wdGlvbnMpCiAgICAgc2V0KG9uZVZhbHVlQXJncyBPVVRQVVRfU09V
UkNFIEJBU0VfRElSIEZFQVRVUkVTIERFU1RJTkFUSU9OIEdFTkVSQVRPUiBTVVBQTEVNRU5UQUxf
REVQRklMRSkKICAgICBzZXQobXVsdGlWYWx1ZUFyZ3MgSU5QVVRfRklMRVMgSURMX0lOQ0xVREVT
IFBQX0VYVFJBX09VVFBVVCBQUF9FWFRSQV9BUkdTKQogICAgIGNtYWtlX3BhcnNlX2FyZ3VtZW50
cyhhcmcgIiR7b3B0aW9uc30iICIke29uZVZhbHVlQXJnc30iICIke211bHRpVmFsdWVBcmdzfSIg
JHtBUkdOfSkKLSAgICBzZXQoYmluZGluZ19nZW5lcmF0b3IgJHtXRUJDT1JFX0RJUn0vYmluZGlu
Z3Mvc2NyaXB0cy9nZW5lcmF0ZS1iaW5kaW5ncy5wbCkKKyAgICBzZXQoYmluZGluZ19nZW5lcmF0
b3IgJHtXRUJDT1JFX0RJUn0vYmluZGluZ3Mvc2NyaXB0cy9nZW5lcmF0ZS1iaW5kaW5ncy1hbGwu
cGwpCiAgICAgc2V0KGlkbF9hdHRyaWJ1dGVzX2ZpbGUgJHtXRUJDT1JFX0RJUn0vYmluZGluZ3Mv
c2NyaXB0cy9JRExBdHRyaWJ1dGVzLnR4dCkKLSAgICBzZXQoaWQgJHthcmdfT1VUUFVUX1NPVVJD
RX0pCi0gICAgc2V0KGlkbF9maWxlc19saXN0ICR7Q01BS0VfQ1VSUkVOVF9CSU5BUllfRElSfS9p
ZGxfZmlsZXNfJHtpZH0udG1wKQorICAgIHNldChpZGxfZmlsZXNfbGlzdCAke0NNQUtFX0NVUlJF
TlRfQklOQVJZX0RJUn0vaWRsX2ZpbGVzXyR7dGFyZ2V0fS50bXApCiAgICAgc2V0KF9zdXBwbGVt
ZW50YWxfZGVwZW5kZW5jeSkKIAogICAgIHNldChjb250ZW50KQpAQCAtNzQsNTUgKzc2LDY5IEBA
IGZ1bmN0aW9uKEdFTkVSQVRFX0JJTkRJTkdTKQogICAgIGVuZGZvcmVhY2ggKCkKICAgICBmaWxl
KFdSSVRFICR7aWRsX2ZpbGVzX2xpc3R9ICR7Y29udGVudH0pCiAKKyAgICBzZXQoYXJncworICAg
ICAgICAtLWRlZmluZXMgJHthcmdfRkVBVFVSRVN9CisgICAgICAgIC0tZ2VuZXJhdG9yICR7YXJn
X0dFTkVSQVRPUn0KKyAgICAgICAgLS1vdXRwdXREaXIgJHthcmdfREVTVElOQVRJT059CisgICAg
ICAgIC0taWRsRmlsZXNMaXN0ICR7aWRsX2ZpbGVzX2xpc3R9CisgICAgICAgIC0tcHJlcHJvY2Vz
c29yICIke0NPREVfR0VORVJBVE9SX1BSRVBST0NFU1NPUn0iCisgICAgICAgIC0taWRsQXR0cmli
dXRlc0ZpbGUgJHtpZGxfYXR0cmlidXRlc19maWxlfSkKICAgICBpZiAoYXJnX1NVUFBMRU1FTlRB
TF9ERVBGSUxFKQotICAgICAgICBzZXQoX3N1cHBsZW1lbnRhbF9kZXBlbmRlbmN5IC0tc3VwcGxl
bWVudGFsRGVwZW5kZW5jeUZpbGUgJHthcmdfU1VQUExFTUVOVEFMX0RFUEZJTEV9KQotCi0gICAg
ICAgIGFkZF9jdXN0b21fY29tbWFuZCgKLSAgICAgICAgICAgIE9VVFBVVCAke2FyZ19TVVBQTEVN
RU5UQUxfREVQRklMRX0gJHthcmdfUFBfRVhUUkFfT1VUUFVUfQotICAgICAgICAgICAgREVQRU5E
UyAke1dFQkNPUkVfRElSfS9iaW5kaW5ncy9zY3JpcHRzL3ByZXByb2Nlc3MtaWRscy5wbCAke2Fy
Z19JTlBVVF9GSUxFU30KLSAgICAgICAgICAgIENPTU1BTkQgJHtQRVJMX0VYRUNVVEFCTEV9ICR7
V0VCQ09SRV9ESVJ9L2JpbmRpbmdzL3NjcmlwdHMvcHJlcHJvY2Vzcy1pZGxzLnBsIC0tZGVmaW5l
cyAke2FyZ19GRUFUVVJFU30gLS1pZGxGaWxlc0xpc3QgJHtpZGxfZmlsZXNfbGlzdH0gLS1zdXBw
bGVtZW50YWxEZXBlbmRlbmN5RmlsZSAke2FyZ19TVVBQTEVNRU5UQUxfREVQRklMRX0gJHthcmdf
UFBfRVhUUkFfQVJHU30KLSAgICAgICAgICAgIFZFUkJBVElNKQorICAgICAgICBsaXN0KEFQUEVO
RCBhcmdzIC0tc3VwcGxlbWVudGFsRGVwZW5kZW5jeUZpbGUgJHthcmdfU1VQUExFTUVOVEFMX0RF
UEZJTEV9KQogICAgIGVuZGlmICgpCi0KLSAgICBzZXQoaWRsX2luY2x1ZGVzKQotICAgIGZvcmVh
Y2ggKGRpciAke2FyZ19JRExfSU5DTFVERVN9KQotICAgICAgICBpZiAoSVNfQUJTT0xVVEUgJHtk
aXJ9KQotICAgICAgICAgICAgbGlzdChBUFBFTkQgaWRsX2luY2x1ZGVzIC0taW5jbHVkZT0ke2Rp
cn0pCisgICAgaWYgKFBST0NFU1NPUl9DT1VOVCkKKyAgICAgICAgbGlzdChBUFBFTkQgYXJncyAt
LW51bU9mSm9icyAke1BST0NFU1NPUl9DT1VOVH0pCisgICAgZW5kaWYgKCkKKyAgICBmb3JlYWNo
IChpIElOIExJU1RTIGFyZ19JRExfSU5DTFVERVMpCisgICAgICAgIGlmIChJU19BQlNPTFVURSAk
e2l9KQorICAgICAgICAgICAgbGlzdChBUFBFTkQgYXJncyAtLWluY2x1ZGUgJHtpfSkKICAgICAg
ICAgZWxzZSAoKQotICAgICAgICAgICAgbGlzdChBUFBFTkQgaWRsX2luY2x1ZGVzIC0taW5jbHVk
ZT0ke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vJHtkaXJ9KQorICAgICAgICAgICAgbGlzdChB
UFBFTkQgYXJncyAtLWluY2x1ZGUgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9LyR7aX0pCiAg
ICAgICAgIGVuZGlmICgpCiAgICAgZW5kZm9yZWFjaCAoKQorICAgIGZvcmVhY2ggKGkgSU4gTElT
VFMgYXJnX1BQX0VYVFJBX09VVFBVVCkKKyAgICAgICAgbGlzdChBUFBFTkQgYXJncyAtLXBwRXh0
cmFPdXRwdXQgJHtpfSkKKyAgICBlbmRmb3JlYWNoICgpCisgICAgZm9yZWFjaCAoaSBJTiBMSVNU
UyBhcmdfUFBfRVhUUkFfQVJHUykKKyAgICAgICAgbGlzdChBUFBFTkQgYXJncyAtLXBwRXh0cmFB
cmdzICR7aX0pCisgICAgZW5kZm9yZWFjaCAoKQogCiAgICAgc2V0KGNvbW1vbl9nZW5lcmF0b3Jf
ZGVwZW5kZW5jaWVzCi0gICAgICAgICR7YmluZGluZ19nZW5lcmF0b3J9Ci0gICAgICAgICR7V0VC
Q09SRV9ESVJ9L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvci5wbQorICAgICAgICAke1dF
QkNPUkVfRElSfS9iaW5kaW5ncy9zY3JpcHRzL2dlbmVyYXRlLWJpbmRpbmdzLnBsCiAgICAgICAg
ICR7U0NSSVBUU19CSU5ESU5HU30KLSAgICAgICAgJHthcmdfU1VQUExFTUVOVEFMX0RFUEZJTEV9
Ci0gICAgICAgICR7aWRsX2F0dHJpYnV0ZXNfZmlsZX0KICAgICApCi0gICAgbGlzdChBUFBFTkQg
Y29tbW9uX2dlbmVyYXRvcl9kZXBlbmRlbmNpZXMgJHthcmdfUFBfRVhUUkFfT1VUUFVUfSkKLQog
ICAgIGlmIChFWElTVFMgJHtXRUJDT1JFX0RJUn0vYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9yJHthcmdfR0VORVJBVE9SfS5wbSkKICAgICAgICAgbGlzdChBUFBFTkQgY29tbW9uX2dlbmVy
YXRvcl9kZXBlbmRlbmNpZXMgJHtXRUJDT1JFX0RJUn0vYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9yJHthcmdfR0VORVJBVE9SfS5wbSkKICAgICBlbmRpZiAoKQogICAgIGlmIChFWElTVFMg
JHthcmdfQkFTRV9ESVJ9L0NvZGVHZW5lcmF0b3Ike2FyZ19HRU5FUkFUT1J9LnBtKQogICAgICAg
ICBsaXN0KEFQUEVORCBjb21tb25fZ2VuZXJhdG9yX2RlcGVuZGVuY2llcyAke2FyZ19CQVNFX0RJ
Un0vQ29kZUdlbmVyYXRvciR7YXJnX0dFTkVSQVRPUn0ucG0pCiAgICAgZW5kaWYgKCkKKyAgICBm
b3JlYWNoIChpIElOIExJU1RTIGNvbW1vbl9nZW5lcmF0b3JfZGVwZW5kZW5jaWVzKQorICAgICAg
ICBsaXN0KEFQUEVORCBhcmdzIC0tZ2VuZXJhdG9yRGVwZW5kZW5jeSAke2l9KQorICAgIGVuZGZv
cmVhY2ggKCkKIAogICAgIHNldChnZW5fc291cmNlcykKKyAgICBzZXQoZ2VuX2hlYWRlcnMpCiAg
ICAgZm9yZWFjaCAoX2ZpbGUgJHthcmdfSU5QVVRfRklMRVN9KQogICAgICAgICBnZXRfZmlsZW5h
bWVfY29tcG9uZW50KF9uYW1lICR7X2ZpbGV9IE5BTUVfV0UpCi0KLSAgICAgICAgYWRkX2N1c3Rv
bV9jb21tYW5kKAotICAgICAgICAgICAgT1VUUFVUICR7YXJnX0RFU1RJTkFUSU9OfS9KUyR7X25h
bWV9LmNwcCAke2FyZ19ERVNUSU5BVElPTn0vSlMke19uYW1lfS5oCi0gICAgICAgICAgICBNQUlO
X0RFUEVOREVOQ1kgJHtfZmlsZX0KLSAgICAgICAgICAgIERFUEVORFMgJHtjb21tb25fZ2VuZXJh
dG9yX2RlcGVuZGVuY2llc30KLSAgICAgICAgICAgIENPTU1BTkQgJHtQRVJMX0VYRUNVVEFCTEV9
ICR7YmluZGluZ19nZW5lcmF0b3J9IC0tZGVmaW5lcyAke2FyZ19GRUFUVVJFU30gLS1nZW5lcmF0
b3IgJHthcmdfR0VORVJBVE9SfSAke2lkbF9pbmNsdWRlc30gLS1vdXRwdXREaXIgJHthcmdfREVT
VElOQVRJT059IC0tcHJlcHJvY2Vzc29yICIke0NPREVfR0VORVJBVE9SX1BSRVBST0NFU1NPUn0i
IC0taWRsQXR0cmlidXRlc0ZpbGUgJHtpZGxfYXR0cmlidXRlc19maWxlfSAke19zdXBwbGVtZW50
YWxfZGVwZW5kZW5jeX0gJHtfZmlsZX0KLSAgICAgICAgICAgIFdPUktJTkdfRElSRUNUT1JZICR7
YXJnX0JBU0VfRElSfQotICAgICAgICAgICAgVkVSQkFUSU0pCiAgICAgICAgIGxpc3QoQVBQRU5E
IGdlbl9zb3VyY2VzICR7YXJnX0RFU1RJTkFUSU9OfS9KUyR7X25hbWV9LmNwcCkKKyAgICAgICAg
bGlzdChBUFBFTkQgZ2VuX2hlYWRlcnMgJHthcmdfREVTVElOQVRJT059L0pTJHtfbmFtZX0uaCkK
ICAgICBlbmRmb3JlYWNoICgpCiAgICAgc2V0KCR7YXJnX09VVFBVVF9TT1VSQ0V9ICR7JHthcmdf
T1VUUFVUX1NPVVJDRX19ICR7Z2VuX3NvdXJjZXN9IFBBUkVOVF9TQ09QRSkKKyAgICBzZXQoYWN0
X2FyZ3MpCisgICAgaWYgKCR7Q01BS0VfVkVSU0lPTn0gVkVSU0lPTl9MRVNTIDMuMikKKyAgICAg
ICAgc2V0X3NvdXJjZV9maWxlc19wcm9wZXJ0aWVzKCR7Z2VuX3NvdXJjZXN9ICR7Z2VuX2hlYWRl
cnN9IFBST1BFUlRJRVMgR0VORVJBVEVEIDEpCisgICAgZWxzZSAoKQorICAgICAgICBsaXN0KEFQ
UEVORCBhY3RfYXJncworICAgICAgICAgICAgQllQUk9EVUNUUyAke2dlbl9zb3VyY2VzfSAke2dl
bl9oZWFkZXJzfQorICAgICAgICAgICAgVVNFU19URVJNSU5BTAorICAgICAgICApCisgICAgZW5k
aWYgKCkKKyAgICBhZGRfY3VzdG9tX3RhcmdldCgke3RhcmdldH0KKyAgICAgICAgQ09NTUFORCAk
e1BFUkxfRVhFQ1VUQUJMRX0gJHtiaW5kaW5nX2dlbmVyYXRvcn0gJHthcmdzfQorICAgICAgICBX
T1JLSU5HX0RJUkVDVE9SWSAke2FyZ19CQVNFX0RJUn0KKyAgICAgICAgQ09NTUVOVCAiR2VuZXJh
dGUgYmluZGluZ3MgKCR7dGFyZ2V0fSkiCisgICAgICAgIFZFUkJBVElNICR7YWN0X2FyZ3N9KQog
ZW5kZnVuY3Rpb24oKQogCiBtYWNybyhHRU5FUkFURV9GT05UX05BTUVTIF9pbmZpbGUpCmRpZmYg
LS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNzQ4MGU2MTRm
NTYzNjUzODA2NTk4ZDZiMmI4ZTRkNjAzOTBlYzhiMS4uNjdiMjllMzExNzZmYjQ5YzI2MTlkZjYy
YzI4NGU0ZmY4M2U5ZGEzZSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE2LTEwLTE2ICBGdWppaSBIaXJvbm9yaSAg
PEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgorCisgICAgICAgIFtDTWFrZV0gQ01ha2UgZG9lcyBu
b3Qgc3VwcG9ydCB0aGUgZGVwIGZpbGVzIGZvciBpbXBsaWNpdCBkZXBlbmRlbmN5CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjE0MzMKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDcmVhdGVkIGEgUGVybCBz
Y3JpcHQgdG8gZ2VuZXJhdGUgYWxsIElETCBiaW5kaW5ncyBmb3IgQ01ha2UuCisgICAgICAgIFRo
aXMgc2NyaXB0IGNhbiByZWdlbmVyYXRlIG91dGRhdGVkIGJpbmRpbmdzIGJ5IGJhc2VkIG9uIHRo
ZQorICAgICAgICBzdXBwbGVtZW50YWwgZGVwZW5kZW5jeSBhbmQgZGVwIGZpbGVzIGNyZWF0ZWQg
YnkKKyAgICAgICAgJy0td3JpdGUtZGVwZW5kZW5jaWVzJyBzd2l0Y2ggb2YgZ2VuZXJhdGUtYmlu
ZGluZ3MucGwuCisKKyAgICAgICAgYWRkX2N1c3RvbV90YXJnZXQgaXMgdXNlZCB0byBpbnZva2Ug
dGhlIHNjcmlwdCBpbnN0ZWFkIG9mCisgICAgICAgIGFkZF9jdXN0b21fY29tbWFuZCBiZWNhdXNl
IE5pbmphIGRlbGV0ZXMgYWxsIG91dHB1dCBmaWxlcyBiZWZvcmUKKyAgICAgICAgZXhlY3V0aW5n
IHRoZSBjb21tYW5kIGluIGNhc2Ugb2YgYWRkX2N1c3RvbV9jb21tYW5kLgorCisgICAgICAgIFVT
RVNfVEVSTUlOQUwgb3B0aW9uIG9mIGFkZF9jdXN0b21fdGFyZ2V0IGhhcyB0d28gZWZmZWN0czoK
KyAgICAgICAgMSkgTm90IGJ1ZmZlcmluZyBvdXRwdXQgb2YgdGhlIGNvbW1hbmQKKyAgICAgICAg
MikgSW52b2tpbmcgdGhlIGNvbW1hbmQgaW4gdGhlIHNwZWNpYWwgTmluamEgcG9vbCB3aGljaCBp
bmhpYml0cyBwYXJhbGxlbCBidWlsZAorICAgICAgICBPbmUgbmVlZHMgdG8gdXNlIENNYWtlIDMu
MiBvciBsYXRlciB0byBlbmFibGUgdGhpcyBmZWF0dXJlLgorCisgICAgICAgICogRHVtcFJlbmRl
clRyZWUvQ01ha2VMaXN0cy50eHQ6IFNwZWNpZmllZCBhIHRhcmdldCBuYW1lIGZvcgorICAgICAg
ICBHRU5FUkFURV9CSU5ESU5HUy4gQWRkZWQgZGVwZW5kZW5jeSBmb3IgdGhlIHRhcmdldC4KKyAg
ICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0NNYWtlTGlzdHMudHh0OiBEaXR0by4KKwogMjAxNi0x
MC0xNiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAg
ICAgVW5yZXZpZXdlZC4gRml4IEdUSysgdW5pdCB0ZXN0IC93ZWJraXQyL1dlYktpdFdlYkNvbnRl
eHQvbGFuZ3VhZ2VzIGFmdGVyIHIyMDY5NDkuCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9DTWFrZUxpc3RzLnR4dCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0NNYWtlTGlzdHMudHh0
CmluZGV4IGJhZjdjMTNjNTcyMWFlNmMxOGMwMzM3YzQwZjg0ZGE5ZDcxYWViZGUuLmRjODQyMGRm
ODlmNzcyYThkYzNlNTg4ZDViYTg3NzQxNjJmMjc1YjAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL0NNYWtlTGlzdHMudHh0CisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0NNYWtl
TGlzdHMudHh0CkBAIC0xMjAsNyArMTIwLDcgQEAgc2V0KER1bXBSZW5kZXJUcmVlX0lETF9GSUxF
UwogICAgICIke1dFQktJVF9URVNUUlVOTkVSX1VJU0NSSVBUQ09OVEVYVF9ESVJ9L0JpbmRpbmdz
L1VJU2NyaXB0Q29udHJvbGxlci5pZGwiCiApCiAKLUdFTkVSQVRFX0JJTkRJTkdTKAorR0VORVJB
VEVfQklORElOR1MoRHVtcFJlbmRlclRyZWVCaW5kaW5ncwogICAgIE9VVFBVVF9TT1VSQ0UgRHVt
cFJlbmRlclRyZWVfU09VUkNFUwogICAgIElOUFVUX0ZJTEVTICR7RHVtcFJlbmRlclRyZWVfSURM
X0ZJTEVTfQogICAgIEJBU0VfRElSICR7RFVNUF9SRU5ERVJfVFJFRV9CSU5ESU5HU19ESVJ9CkBA
IC0xMzUsNiArMTM1LDcgQEAgaW5jbHVkZV9kaXJlY3Rvcmllcygke0R1bXBSZW5kZXJUcmVlX0lO
Q0xVREVfRElSRUNUT1JJRVN9KQogCiBhZGRfZXhlY3V0YWJsZShEdW1wUmVuZGVyVHJlZSAke0R1
bXBSZW5kZXJUcmVlX1NPVVJDRVN9KQogdGFyZ2V0X2xpbmtfbGlicmFyaWVzKER1bXBSZW5kZXJU
cmVlICR7RHVtcFJlbmRlclRyZWVfTElCUkFSSUVTfSkKK2FkZF9kZXBlbmRlbmNpZXMoRHVtcFJl
bmRlclRyZWUgRHVtcFJlbmRlclRyZWVCaW5kaW5ncykKIAogaWYgKEVOQUJMRV9ORVRTQ0FQRV9Q
TFVHSU5fQVBJKQogICAgIGFkZF9saWJyYXJ5KFRlc3ROZXRzY2FwZVBsdWdpbiBTSEFSRUQgJHtU
ZXN0TmV0c2NhcGVQbHVnaW5fU09VUkNFU30pCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0NNYWtlTGlzdHMudHh0IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9DTWFrZUxpc3Rz
LnR4dAppbmRleCAyN2VhMzZjM2JkNDdlZjAyYTY0YTkyN2Y2ODUyMjNkYTM1Yjg0OWZhLi44Yzk4
NzY4OGQ0YThjMjdmNDA2ZjYwMGRjMjVlMGMzYWY4ZDVlZTU2IDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0NNYWtlTGlzdHMudHh0CisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvQ01ha2VMaXN0cy50eHQKQEAgLTk3LDcgKzk3LDcgQEAgc2V0KFdlYktpdFRlc3RSdW5uZXJf
SURMX0ZJTEVTCiAgICAgIiR7V0VCS0lUX1RFU1RSVU5ORVJfVUlTQ1JJUFRDT05URVhUX0RJUn0v
QmluZGluZ3MvVUlTY3JpcHRDb250cm9sbGVyLmlkbCIKICkKIAotR0VORVJBVEVfQklORElOR1Mo
CitHRU5FUkFURV9CSU5ESU5HUyhXZWJLaXRUZXN0UnVubmVySW5qZWN0ZWRCdW5kbGVCaW5kaW5n
cwogICAgIE9VVFBVVF9TT1VSQ0UgV2ViS2l0VGVzdFJ1bm5lckluamVjdGVkQnVuZGxlX1NPVVJD
RVMKICAgICBJTlBVVF9GSUxFUyAke1dlYktpdFRlc3RSdW5uZXJJbmplY3RlZEJ1bmRsZV9JRExf
RklMRVN9CiAgICAgQkFTRV9ESVIgJHtXRUJLSVRfVEVTVFJVTk5FUl9JTkpFQ1RFREJVTkRMRV9E
SVJ9L0JpbmRpbmdzCkBAIC0xMDYsNyArMTA2LDcgQEAgR0VORVJBVEVfQklORElOR1MoCiAgICAg
REVTVElOQVRJT04gJHtERVJJVkVEX1NPVVJDRVNfRElSfS9JbmplY3RlZEJ1bmRsZQogICAgIEdF
TkVSQVRPUiBUZXN0UnVubmVyKQogCi1HRU5FUkFURV9CSU5ESU5HUygKK0dFTkVSQVRFX0JJTkRJ
TkdTKFdlYktpdFRlc3RSdW5uZXJCaW5kaW5ncwogICAgIE9VVFBVVF9TT1VSQ0UgV2ViS2l0VGVz
dFJ1bm5lcl9TT1VSQ0VTCiAgICAgSU5QVVRfRklMRVMgJHtXZWJLaXRUZXN0UnVubmVyX0lETF9G
SUxFU30KICAgICBCQVNFX0RJUiAke1dFQktJVF9URVNUUlVOTkVSX0lOSkVDVEVEQlVORExFX0RJ
Un0vQmluZGluZ3MKQEAgLTEyMiw5ICsxMjIsMTEgQEAgaW5jbHVkZV9kaXJlY3RvcmllcyhTWVNU
RU0gJHtXZWJLaXRUZXN0UnVubmVyX1NZU1RFTV9JTkNMVURFX0RJUkVDVE9SSUVTfSkKIAogYWRk
X2xpYnJhcnkoVGVzdFJ1bm5lckluamVjdGVkQnVuZGxlIFNIQVJFRCAke1dlYktpdFRlc3RSdW5u
ZXJJbmplY3RlZEJ1bmRsZV9TT1VSQ0VTfSkKIHRhcmdldF9saW5rX2xpYnJhcmllcyhUZXN0UnVu
bmVySW5qZWN0ZWRCdW5kbGUgJHtXZWJLaXRUZXN0UnVubmVyX0xJQlJBUklFU30pCithZGRfZGVw
ZW5kZW5jaWVzKFRlc3RSdW5uZXJJbmplY3RlZEJ1bmRsZSBXZWJLaXRUZXN0UnVubmVySW5qZWN0
ZWRCdW5kbGVCaW5kaW5ncykKIAogYWRkX2V4ZWN1dGFibGUoV2ViS2l0VGVzdFJ1bm5lciAke1dl
YktpdFRlc3RSdW5uZXJfU09VUkNFU30pCiB0YXJnZXRfbGlua19saWJyYXJpZXMoV2ViS2l0VGVz
dFJ1bm5lciAke1dlYktpdFRlc3RSdW5uZXJfTElCUkFSSUVTfSkKK2FkZF9kZXBlbmRlbmNpZXMo
V2ViS2l0VGVzdFJ1bm5lciBXZWJLaXRUZXN0UnVubmVyQmluZGluZ3MpCiAKIGlmIChOT1QgQVBQ
TEUpCiAgICAgYWRkX2RlcGVuZGVuY2llcyhXZWJLaXQyICR7Rm9yd2FyZGluZ0hlYWRlcnNGb3JX
ZWJLaXRUZXN0UnVubmVyX05BTUV9KQpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9n
CmluZGV4IDczM2E1ZmVhNzY3M2Q0ZDA2ZmJiZDE4YTAxOGU4YjdlMmY1MjcxODAuLjIzZjRmNDdj
ZjJmY2ZmOWIwZTg3M2M0MGJjY2FlMDQ5MDY5Y2U5ZTQgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZwor
KysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxNi0xMC0xNiAgRnVqaWkgSGlyb25v
cmkgIDxIaXJvbm9yaS5GdWppaUBzb255LmNvbT4KKworICAgICAgICBbQ01ha2VdIENNYWtlIGRv
ZXMgbm90IHN1cHBvcnQgdGhlIGRlcCBmaWxlcyBmb3IgaW1wbGljaXQgZGVwZW5kZW5jeQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYxNDMzCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ3JlYXRlZCBhIFBl
cmwgc2NyaXB0IHRvIGdlbmVyYXRlIGFsbCBJREwgYmluZGluZ3MgZm9yIENNYWtlLgorICAgICAg
ICBUaGlzIHNjcmlwdCBjYW4gcmVnZW5lcmF0ZSBvdXRkYXRlZCBiaW5kaW5ncyBieSBiYXNlZCBv
biB0aGUKKyAgICAgICAgc3VwcGxlbWVudGFsIGRlcGVuZGVuY3kgYW5kIGRlcCBmaWxlcyBjcmVh
dGVkIGJ5CisgICAgICAgICctLXdyaXRlLWRlcGVuZGVuY2llcycgc3dpdGNoIG9mIGdlbmVyYXRl
LWJpbmRpbmdzLnBsLgorCisgICAgICAgIGFkZF9jdXN0b21fdGFyZ2V0IGlzIHVzZWQgdG8gaW52
b2tlIHRoZSBzY3JpcHQgaW5zdGVhZCBvZgorICAgICAgICBhZGRfY3VzdG9tX2NvbW1hbmQgYmVj
YXVzZSBOaW5qYSBkZWxldGVzIGFsbCBvdXRwdXQgZmlsZXMgYmVmb3JlCisgICAgICAgIGV4ZWN1
dGluZyB0aGUgY29tbWFuZCBpbiBjYXNlIG9mIGFkZF9jdXN0b21fY29tbWFuZC4KKworICAgICAg
ICBVU0VTX1RFUk1JTkFMIG9wdGlvbiBvZiBhZGRfY3VzdG9tX3RhcmdldCBoYXMgdHdvIGVmZmVj
dHM6CisgICAgICAgIDEpIE5vdCBidWZmZXJpbmcgb3V0cHV0IG9mIHRoZSBjb21tYW5kCisgICAg
ICAgIDIpIEludm9raW5nIHRoZSBjb21tYW5kIGluIHRoZSBzcGVjaWFsIE5pbmphIHBvb2wgd2hp
Y2ggaW5oaWJpdHMgcGFyYWxsZWwgYnVpbGQKKyAgICAgICAgT25lIG5lZWRzIHRvIHVzZSBDTWFr
ZSAzLjIgb3IgbGF0ZXIgdG8gZW5hYmxlIHRoaXMgZmVhdHVyZS4KKworICAgICAgICAqIFNvdXJj
ZS9jbWFrZS9XZWJLaXRNYWNyb3MuY21ha2UgKEdFTkVSQVRFX0JJTkRJTkdTKTogSW5jbHVkZWQK
KyAgICAgICAgUHJvY2Vzc29yQ291bnQuICBBZGRlZCBhIG5ldyBhcmd1bWVudCAndGFyZ2V0Jy4g
IFVzZQorICAgICAgICBhZGRfY3VzdG9tX3RhcmdldCBpbnN0ZWFkIG9mIGFkZF9jdXN0b21fY29t
bWFuZC4gIEludm9rZSB0aGUgbmV3CisgICAgICAgIHNjcmlwdC4KKwogMjAxNi0xMC0xNCAgTWlj
aGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0NNYWtl
XSBQcml2YXRlL3Vuc3VwcG9ydGVkIGJ1aWxkIG9wdGlvbnMgc2hvdWxkIGJlIG1hcmtlZCBhcyBh
ZHZhbmNlZAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>292147</attachid>
            <date>2016-10-19 20:24:48 -0700</date>
            <delta_ts>2016-10-20 07:37:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-161433-20161020122123.patch</filename>
            <type>text/plain</type>
            <size>23675</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA3NTgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzA5Yjg5NDYxNzc5ZWQ3
ODJhZTUwMzYzZmQ3NTgyZTczODZhNTgxMy4uZGViNjg1OGVhZjE5YjdkMGI0N2YwMDk0NmQ0ODM2
ODYzNDcwODNiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE2LTEwLTE5ICBGdWpp
aSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgorCisgICAgICAgIFtDTWFrZV0g
Q01ha2UgZG9lcyBub3Qgc3VwcG9ydCB0aGUgZGVwIGZpbGVzIGZvciBpbXBsaWNpdCBkZXBlbmRl
bmN5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjE0
MzMKKworICAgICAgICBSZXZpZXdlZCBieSBCcmVudCBGdWxnaGFtLgorCisgICAgICAgIENyZWF0
ZWQgYSBQZXJsIHNjcmlwdCB0byBnZW5lcmF0ZSBhbGwgSURMIGJpbmRpbmdzIGZvciBDTWFrZS4K
KyAgICAgICAgVGhpcyBzY3JpcHQgY2FuIHJlZ2VuZXJhdGUgb3V0ZGF0ZWQgYmluZGluZ3MgYnkg
YmFzZWQgb24gdGhlCisgICAgICAgIHN1cHBsZW1lbnRhbCBkZXBlbmRlbmN5IGFuZCBkZXAgZmls
ZXMgY3JlYXRlZCBieQorICAgICAgICAnLS13cml0ZS1kZXBlbmRlbmNpZXMnIHN3aXRjaCBvZiBn
ZW5lcmF0ZS1iaW5kaW5ncy5wbC4KKworICAgICAgICBhZGRfY3VzdG9tX3RhcmdldCBpcyB1c2Vk
IHRvIGludm9rZSB0aGUgc2NyaXB0IGluc3RlYWQgb2YKKyAgICAgICAgYWRkX2N1c3RvbV9jb21t
YW5kIGJlY2F1c2UgTmluamEgZGVsZXRlcyBhbGwgb3V0cHV0IGZpbGVzIGJlZm9yZQorICAgICAg
ICBleGVjdXRpbmcgdGhlIGNvbW1hbmQgaW4gY2FzZSBvZiBhZGRfY3VzdG9tX2NvbW1hbmQuCisK
KyAgICAgICAgVVNFU19URVJNSU5BTCBvcHRpb24gb2YgYWRkX2N1c3RvbV90YXJnZXQgaGFzIHR3
byBlZmZlY3RzOgorICAgICAgICAxKSBOb3QgYnVmZmVyaW5nIG91dHB1dCBvZiB0aGUgY29tbWFu
ZAorICAgICAgICAyKSBJbnZva2luZyB0aGUgY29tbWFuZCBpbiB0aGUgc3BlY2lhbCBOaW5qYSBw
b29sIHdoaWNoIGluaGliaXRzIHBhcmFsbGVsIGJ1aWxkCisgICAgICAgIE9uZSBuZWVkcyB0byB1
c2UgQ01ha2UgMy4yIG9yIGxhdGVyIHRvIGVuYWJsZSB0aGlzIGZlYXR1cmUuCisKKyAgICAgICAg
KiBDTWFrZUxpc3RzLnR4dDogU3BlY2lmaWVkIHRhcmdldCBuYW1lcyBmb3IKKyAgICAgICAgR0VO
RVJBVEVfQklORElOR1MuIEFkZGVkIGRlcGVuZGVuY3kgZm9yIHRoZSB0YXJnZXRzLgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUtYmluZGluZ3MtYWxsLnBsOiBBZGRlZC4KKwog
MjAxNi0xMC0xOSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgog
CiAgICAgICAgIFJlLWVuYWJsZSBVUkxQYXJzZXIgZm9yIG5vbi1TYWZhcmkgQ29jb2EgYXBwcyBh
ZnRlciByMjA3MzIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBi
L1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGM0YTcwMzFiZGRjNWFjNTkwNDAy
ZWZkMzJmNjIxNWVhZjI1OTdmMDIuLjVjZTMyNzdjOGNkZDBmZGZhYTJhYzU1ZDk5ZGRlYjQ4Mjk4
MzI0MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0zNjQxLDcgKzM2NDEsNyBAQCBsaXN0KEFQ
UEVORCBXZWJDb3JlX0RFUklWRURfU09VUkNFUyAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJ
Un0vWFBhdGhHcmFtbWFyLgogc2V0KEZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICJMQU5HVUFH
RV9KQVZBU0NSSVBUICR7RkVBVFVSRV9ERUZJTkVTX1dJVEhfU1BBQ0VfU0VQQVJBVE9SfSIpCiBs
aXN0KEFQUEVORCBXZWJDb3JlVGVzdFN1cHBvcnRfSURMX0ZJTEVTICR7REVSSVZFRF9TT1VSQ0VT
X1dFQkNPUkVfRElSfS9JbnRlcm5hbFNldHRpbmdzR2VuZXJhdGVkLmlkbCkKIAotR0VORVJBVEVf
QklORElOR1MoCitHRU5FUkFURV9CSU5ESU5HUyhXZWJDb3JlQmluZGluZ3MKICAgICBPVVRQVVRf
U09VUkNFIFdlYkNvcmVfREVSSVZFRF9TT1VSQ0VTCiAgICAgSU5QVVRfRklMRVMgJHtXZWJDb3Jl
X0lETF9GSUxFU30KICAgICBCQVNFX0RJUiAke1dFQkNPUkVfRElSfQpAQCAtMzY1Nyw3ICszNjU3
LDcgQEAgR0VORVJBVEVfQklORElOR1MoCiAgICAgICAgIC0td29ya2VyR2xvYmFsU2NvcGVDb25z
dHJ1Y3RvcnNGaWxlICR7V09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEV9CiAgICAg
ICAgIC0tZGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcnNGaWxlICR7REVESUNB
VEVEV09SS0VSR0xPQkFMU0NPUEVfQ09OU1RSVUNUT1JTX0ZJTEV9KQogCi1HRU5FUkFURV9CSU5E
SU5HUygKK0dFTkVSQVRFX0JJTkRJTkdTKFdlYkNvcmVUZXN0U3VwcG9ydEJpbmRpbmdzCiAgICAg
T1VUUFVUX1NPVVJDRSBXZWJDb3JlVGVzdFN1cHBvcnRfU09VUkNFUwogICAgIElOUFVUX0ZJTEVT
ICR7V2ViQ29yZVRlc3RTdXBwb3J0X0lETF9GSUxFU30KICAgICBCQVNFX0RJUiAke1dFQkNPUkVf
RElSfQpAQCAtMzY2Niw2ICszNjY2LDkgQEAgR0VORVJBVEVfQklORElOR1MoCiAgICAgREVTVElO
QVRJT04gJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9CiAgICAgR0VORVJBVE9SIEpTKQog
CisjIFdlYkNvcmVUZXN0U3VwcG9ydEJpbmRpbmdzIG5lZWRzIEludGVybmFsU2V0dGluZ3NHZW5l
cmF0ZWQuaWRsCithZGRfZGVwZW5kZW5jaWVzKFdlYkNvcmVUZXN0U3VwcG9ydEJpbmRpbmdzIFdl
YkNvcmVEZXJpdmVkU291cmNlcykKKwogIyBXZWJDb3JlIEpTIEJ1aWx0aW5zCiAKIHNldChXZWJD
b3JlX0JVSUxUSU5TX1NPVVJDRVMKQEAgLTM4MTEsNyArMzgxNCw3IEBAIGVuZGlmICgpCiAjIGZp
bGVzIG9uIE9TIFguCiBhZGRfbGlicmFyeShXZWJDb3JlRGVyaXZlZFNvdXJjZXMgU1RBVElDICR7
V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVN9KQogc2V0X3RhcmdldF9wcm9wZXJ0aWVzKFdlYkNvcmVE
ZXJpdmVkU291cmNlcyBQUk9QRVJUSUVTIE9VVFBVVF9OQU1FIFdlYkNvcmVEZXJpdmVkU291cmNl
cyR7REVCVUdfU1VGRklYfSkKLWFkZF9kZXBlbmRlbmNpZXMoV2ViQ29yZURlcml2ZWRTb3VyY2Vz
IEphdmFTY3JpcHRDb3JlKQorYWRkX2RlcGVuZGVuY2llcyhXZWJDb3JlRGVyaXZlZFNvdXJjZXMg
SmF2YVNjcmlwdENvcmUgV2ViQ29yZUJpbmRpbmdzKQogaWYgKE5PVCBXSU4zMikKICAgICBsaXN0
KEFQUEVORCBXZWJDb3JlX0xJQlJBUklFUyBXZWJDb3JlRGVyaXZlZFNvdXJjZXMpCiBlbmRpZiAo
KQpAQCAtMzg0Miw3ICszODQ1LDcgQEAgZW5kaWYgKCkKIAogaW5jbHVkZV9kaXJlY3Rvcmllcygk
e1dlYkNvcmVUZXN0U3VwcG9ydF9JTkNMVURFX0RJUkVDVE9SSUVTfSkKIGFkZF9saWJyYXJ5KFdl
YkNvcmVUZXN0U3VwcG9ydCAke1dlYkNvcmVUZXN0U3VwcG9ydF9MSUJSQVJZX1RZUEV9ICR7V2Vi
Q29yZVRlc3RTdXBwb3J0X1NPVVJDRVN9KQotYWRkX2RlcGVuZGVuY2llcyhXZWJDb3JlVGVzdFN1
cHBvcnQgV2ViQ29yZSkKK2FkZF9kZXBlbmRlbmNpZXMoV2ViQ29yZVRlc3RTdXBwb3J0IFdlYkNv
cmUgV2ViQ29yZVRlc3RTdXBwb3J0QmluZGluZ3MpCiB0YXJnZXRfbGlua19saWJyYXJpZXMoV2Vi
Q29yZVRlc3RTdXBwb3J0ICR7V2ViQ29yZVRlc3RTdXBwb3J0X0xJQlJBUklFU30pCiAKIGlmIChX
ZWJDb3JlVGVzdFN1cHBvcnRfT1VUUFVUX05BTUUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL2dlbmVyYXRlLWJpbmRpbmdzLWFsbC5wbCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUtYmluZGluZ3MtYWxsLnBsCm5ldyBmaWxlIG1v
ZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
Ljk3ODg5NzJkODZhNTQ1YTA3ZTQ5NGQyZGViODBmZjdjYjk3NmQ2Y2MKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL2dlbmVyYXRlLWJpbmRpbmdzLWFs
bC5wbApAQCAtMCwwICsxLDIzNiBAQAorIyEvdXNyL2Jpbi9wZXJsCisjCisjIENvcHlyaWdodCAo
QykgMjAxNiBTb255IEludGVyYWN0aXZlIEVudGVydGFpbm1lbnQgSW5jLgorIworIyBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAy
LiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycgQU5EIEFOWQorIyBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUK
KyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisjIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisjIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsKKyMgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisjIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisj
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTCisjIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorIworCit1c2Ugc3RyaWN0OwordXNlIHdhcm5p
bmdzOwordXNlIEZpbmRCaW47Cit1c2UgbGliICRGaW5kQmluOjpCaW47CisKK3VzZSBGaWxlOjpC
YXNlbmFtZTsKK3VzZSBGaWxlOjpTcGVjOwordXNlIEZpbGU6OkZpbmQ7Cit1c2UgR2V0b3B0OjpM
b25nOwordXNlIHRocmVhZHM7Cit1c2UgdGhyZWFkczo6c2hhcmVkOwordXNlIFRocmVhZDo6UXVl
dWU7CisKK215ICRwZXJsID0gJF5YOworbXkgJHNjcmlwdERpciA9ICRGaW5kQmluOjpCaW47Citt
eSBAaWRsRGlyZWN0b3JpZXM7CitteSAkb3V0cHV0RGlyZWN0b3J5OworbXkgJGlkbEZpbGVzTGlz
dDsKK215ICRnZW5lcmF0b3I7CitteSBAZ2VuZXJhdG9yRGVwZW5kZW5jeTsKK215ICRkZWZpbmVz
OworbXkgJHByZXByb2Nlc3NvcjsKK215ICRzdXBwbGVtZW50YWxEZXBlbmRlbmN5RmlsZTsKK215
IEBwcEV4dHJhT3V0cHV0OworbXkgQHBwRXh0cmFBcmdzOworbXkgJG51bU9mSm9icyA9IDE7Citt
eSAkaWRsQXR0cmlidXRlc0ZpbGU7CisKK0dldE9wdGlvbnMoJ2luY2x1ZGU9c0AnID0+IFxAaWRs
RGlyZWN0b3JpZXMsCisgICAgICAgICAgICdvdXRwdXREaXI9cycgPT4gXCRvdXRwdXREaXJlY3Rv
cnksCisgICAgICAgICAgICdpZGxGaWxlc0xpc3Q9cycgPT4gXCRpZGxGaWxlc0xpc3QsCisgICAg
ICAgICAgICdnZW5lcmF0b3I9cycgPT4gXCRnZW5lcmF0b3IsCisgICAgICAgICAgICdnZW5lcmF0
b3JEZXBlbmRlbmN5PXNAJyA9PiBcQGdlbmVyYXRvckRlcGVuZGVuY3ksCisgICAgICAgICAgICdk
ZWZpbmVzPXMnID0+IFwkZGVmaW5lcywKKyAgICAgICAgICAgJ3ByZXByb2Nlc3Nvcj1zJyA9PiBc
JHByZXByb2Nlc3NvciwKKyAgICAgICAgICAgJ3N1cHBsZW1lbnRhbERlcGVuZGVuY3lGaWxlPXMn
ID0+IFwkc3VwcGxlbWVudGFsRGVwZW5kZW5jeUZpbGUsCisgICAgICAgICAgICdwcEV4dHJhT3V0
cHV0PXNAJyA9PiBcQHBwRXh0cmFPdXRwdXQsCisgICAgICAgICAgICdwcEV4dHJhQXJncz1zQCcg
PT4gXEBwcEV4dHJhQXJncywKKyAgICAgICAgICAgJ2lkbEF0dHJpYnV0ZXNGaWxlPXMnID0+IFwk
aWRsQXR0cmlidXRlc0ZpbGUsCisgICAgICAgICAgICdudW1PZkpvYnM9aScgPT4gXCRudW1PZkpv
YnMpOworCiskfCA9IDE7CitteSBAaWRsRmlsZXM7CitvcGVuKG15ICRmaCwgJzwnLCAkaWRsRmls
ZXNMaXN0KSBvciBkaWUgIkNhbm5vdCBvcGVuICRpZGxGaWxlc0xpc3QiOworQGlkbEZpbGVzID0g
bWFwIHsgQ3lnd2luUGF0aElmTmVlZGVkKHMvXHI/XG4/JC8vcikgfSA8JGZoPjsKK2Nsb3NlKCRm
aCkgb3IgZGllOworCitteSAlc3VwcGxlbWVudGVkSWRsRmlsZXM7CitpZiAoJHN1cHBsZW1lbnRh
bERlcGVuZGVuY3lGaWxlKSB7CisgICAgbXkgQG91dHB1dCA9ICgkc3VwcGxlbWVudGFsRGVwZW5k
ZW5jeUZpbGUsIEBwcEV4dHJhT3V0cHV0KTsKKyAgICBteSBAZGVwcyA9IChAaWRsRmlsZXMsIEBn
ZW5lcmF0b3JEZXBlbmRlbmN5KTsKKyAgICBpZiAobmVlZHNVcGRhdGUoXEBvdXRwdXQsIFxAZGVw
cykpIHsKKyAgICAgICAgbXkgQGFyZ3MgPSAoRmlsZTo6U3BlYy0+Y2F0ZmlsZSgkc2NyaXB0RGly
LCAncHJlcHJvY2Vzcy1pZGxzLnBsJyksCisgICAgICAgICAgICAgICAgICAgICctLWRlZmluZXMn
LCAkZGVmaW5lcywKKyAgICAgICAgICAgICAgICAgICAgJy0taWRsRmlsZXNMaXN0JywgJGlkbEZp
bGVzTGlzdCwKKyAgICAgICAgICAgICAgICAgICAgJy0tc3VwcGxlbWVudGFsRGVwZW5kZW5jeUZp
bGUnLCAkc3VwcGxlbWVudGFsRGVwZW5kZW5jeUZpbGUsCisgICAgICAgICAgICAgICAgICAgIEBw
cEV4dHJhQXJncyk7CisgICAgICAgIHByaW50KCJQcmVwcm9jZXNzIElETFxuIik7CisgICAgICAg
IGV4ZWN1dGVDb21tYW5kKCRwZXJsLCBAYXJncykgPT0gMCBvciBkaWU7CisgICAgfQorICAgIG9w
ZW4obXkgJGZoLCAnPCcsICRzdXBwbGVtZW50YWxEZXBlbmRlbmN5RmlsZSkgb3IgZGllICJDYW5u
b3Qgb3BlbiAkc3VwcGxlbWVudGFsRGVwZW5kZW5jeUZpbGUiOworICAgIHdoaWxlICg8JGZoPikg
eworICAgICAgICBteSAoJGlkbEZpbGUsIEBmb2xsb3dpbmdJZGxGaWxlcykgPSBzcGxpdCgvXHMr
Lyk7CisgICAgICAgICRzdXBwbGVtZW50ZWRJZGxGaWxlc3skaWRsRmlsZX0gPSBcQGZvbGxvd2lu
Z0lkbEZpbGVzOworICAgIH0KKyAgICBjbG9zZSgkZmgpIG9yIGRpZTsKK30KKworbXkgQGFyZ3Mg
PSAoRmlsZTo6U3BlYy0+Y2F0ZmlsZSgkc2NyaXB0RGlyLCAnZ2VuZXJhdGUtYmluZGluZ3MucGwn
KSwKKyAgICAgICAgICAgICctLWRlZmluZXMnLCAkZGVmaW5lcywKKyAgICAgICAgICAgICctLWdl
bmVyYXRvcicsICRnZW5lcmF0b3IsCisgICAgICAgICAgICAnLS1vdXRwdXREaXInLCAkb3V0cHV0
RGlyZWN0b3J5LAorICAgICAgICAgICAgJy0tcHJlcHJvY2Vzc29yJywgJHByZXByb2Nlc3NvciwK
KyAgICAgICAgICAgICctLWlkbEF0dHJpYnV0ZXNGaWxlJywgJGlkbEF0dHJpYnV0ZXNGaWxlLAor
ICAgICAgICAgICAgJy0td3JpdGUtZGVwZW5kZW5jaWVzJyk7CitwdXNoIEBhcmdzLCBtYXAgeyAo
Jy0taW5jbHVkZScsICRfKSB9IEBpZGxEaXJlY3RvcmllczsKK3B1c2ggQGFyZ3MsICctLXN1cHBs
ZW1lbnRhbERlcGVuZGVuY3lGaWxlJywgJHN1cHBsZW1lbnRhbERlcGVuZGVuY3lGaWxlIGlmICRz
dXBwbGVtZW50YWxEZXBlbmRlbmN5RmlsZTsKKworbXkgJWRpcmVjdG9yeUNhY2hlOworYnVpbGRE
aXJlY3RvcnlDYWNoZSgpOworCitteSBAaWRsRmlsZXNUb1VwZGF0ZSA9IGdyZXAgeworICAgIG15
ICgkZmlsZW5hbWUsICRkaXJzLCAkc3VmZml4KSA9IGZpbGVwYXJzZSgkXywgJy5pZGwnKTsKKyAg
ICBteSAkc291cmNlRmlsZSA9IEZpbGU6OlNwZWMtPmNhdGZpbGUoJG91dHB1dERpcmVjdG9yeSwg
IkpTJGZpbGVuYW1lLmNwcCIpOworICAgIG15ICRoZWFkZXJGaWxlID0gRmlsZTo6U3BlYy0+Y2F0
ZmlsZSgkb3V0cHV0RGlyZWN0b3J5LCAiSlMkZmlsZW5hbWUuaCIpOworICAgIG15ICRkZXBGaWxl
ID0gRmlsZTo6U3BlYy0+Y2F0ZmlsZSgkb3V0cHV0RGlyZWN0b3J5LCAiSlMkZmlsZW5hbWUuZGVw
Iik7CisgICAgbXkgQG91dHB1dCA9ICgkc291cmNlRmlsZSwgJGhlYWRlckZpbGUpOworICAgIG15
IEBkZXBzID0gKCRfLAorICAgICAgICAgICAgICAgICRpZGxBdHRyaWJ1dGVzRmlsZSwKKyAgICAg
ICAgICAgICAgICBAZ2VuZXJhdG9yRGVwZW5kZW5jeSwKKyAgICAgICAgICAgICAgICBAeyRzdXBw
bGVtZW50ZWRJZGxGaWxlc3skX30gb3IgW119LAorICAgICAgICAgICAgICAgIGltcGxpY2l0RGVw
ZW5kZW5jaWVzKCRkZXBGaWxlKSk7CisgICAgbmVlZHNVcGRhdGUoXEBvdXRwdXQsIFxAZGVwcyk7
Cit9IEBpZGxGaWxlczsKK215ICRxdWV1ZSA9IFRocmVhZDo6UXVldWUtPm5ldyhAaWRsRmlsZXNU
b1VwZGF0ZSk7CitteSAkYWJvcnQgOnNoYXJlZCA9IDA7CitteSAkdGVybWluYWxXaWR0aCA9IGdl
dFRlcm1pbmFsV2lkdGgoKTsKK215ICR0b3RhbENvdW50ID0gQGlkbEZpbGVzVG9VcGRhdGU7Citt
eSAkY3VycmVudENvdW50IDpzaGFyZWQgPSAwOworCitteSBAdGhyZWFkUG9vbCA9IG1hcCB7IHRo
cmVhZHMtPmNyZWF0ZShcJndvcmtlcikgfSAoMSAuLiAkbnVtT2ZKb2JzKTsKKyRfLT5qb2luIGZv
ciBAdGhyZWFkUG9vbDsKK2V4aXQgJGFib3J0OworCitzdWIgbmVlZHNVcGRhdGUKK3sKKyAgICBt
eSAoJG9iamVjdHMsICRkZXBlbmRzKSA9IEBfOworICAgIG15ICRvbGRlc3RPYmplY3RUaW1lOwor
ICAgIGZvciAoQCRvYmplY3RzKSB7CisgICAgICAgIHJldHVybiAxIGlmICEtZjsKKyAgICAgICAg
bXkgJG0gPSBtdGltZSgkXyk7CisgICAgICAgIGlmICghZGVmaW5lZCAkb2xkZXN0T2JqZWN0VGlt
ZSB8fCAkbSA8ICRvbGRlc3RPYmplY3RUaW1lKSB7CisgICAgICAgICAgICAkb2xkZXN0T2JqZWN0
VGltZSA9ICRtOworICAgICAgICB9CisgICAgfQorICAgIGZvciAoQCRkZXBlbmRzKSB7CisgICAg
ICAgIGRpZSAiTWlzc2luZyByZXF1aXJlZCBkZXBlbmRlbmN5OiAkXyIgaWYgIS1mOworICAgICAg
ICBteSAkbSA9IG10aW1lKCRfKTsKKyAgICAgICAgaWYgKCRvbGRlc3RPYmplY3RUaW1lIDwgJG0p
IHsKKyAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiAw
OworfQorCitzdWIgbXRpbWUKK3sKKyAgICBteSAoJGZpbGUpID0gQF87CisgICAgcmV0dXJuIChz
dGF0ICRmaWxlKVs5XTsKK30KKworc3ViIHdvcmtlciB7CisgICAgd2hpbGUgKG15ICRmaWxlID0g
JHF1ZXVlLT5kZXF1ZXVlX25iKCkpIHsKKyAgICAgICAgbGFzdCBpZiAkYWJvcnQ7CisgICAgICAg
IGV2YWwgeworICAgICAgICAgICAgJGN1cnJlbnRDb3VudCsrOworICAgICAgICAgICAgbXkgJGJh
c2VuYW1lID0gYmFzZW5hbWUoJGZpbGUpOworICAgICAgICAgICAgaWYgKCR0ZXJtaW5hbFdpZHRo
KSB7CisgICAgICAgICAgICAgICAgbXkgJHcgPSAkdGVybWluYWxXaWR0aCAtIDE7CisgICAgICAg
ICAgICAgICAgcHJpbnQgc3ByaW50ZigiJS0qLipzXHIiLCAkdywgJHcsICJbJGN1cnJlbnRDb3Vu
dC8kdG90YWxDb3VudF0gJGJhc2VuYW1lIik7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgICAgICAgIHByaW50ICJbJGN1cnJlbnRDb3VudC8kdG90YWxDb3VudF0gJGJhc2VuYW1lXG4i
OworICAgICAgICAgICAgfQorICAgICAgICAgICAgZXhlY3V0ZUNvbW1hbmQoJHBlcmwsIEBhcmdz
LCAkZmlsZSkgPT0gMCBvciBkaWU7CisgICAgICAgIH07CisgICAgICAgIGlmICgkQCkgeworICAg
ICAgICAgICAgJGFib3J0ID0gMTsKKyAgICAgICAgICAgIGRpZTsKKyAgICAgICAgfQorICAgIH0K
K30KKworc3ViIGJ1aWxkRGlyZWN0b3J5Q2FjaGUKK3sKKyAgICBteSAkd2FudGVkID0gc3ViIHsK
KyAgICAgICAgJGRpcmVjdG9yeUNhY2hleyRffSA9ICRGaWxlOjpGaW5kOjpuYW1lOworICAgICAg
ICAkRmlsZTo6RmluZDo6cHJ1bmUgPSAxIHVubGVzcyB+L1wuLzsKKyAgICB9OworICAgIGZpbmQo
JHdhbnRlZCwgQGlkbERpcmVjdG9yaWVzKTsKK30KKworc3ViIGltcGxpY2l0RGVwZW5kZW5jaWVz
Cit7CisgICAgbXkgKCRkZXBGaWxlKSA9IEBfOworICAgIHJldHVybiAoKSB1bmxlc3MgLWYgJGRl
cEZpbGU7CisgICAgb3BlbihteSAkZmgsICc8JywgJGRlcEZpbGUpIG9yIGRpZSAiQ2Fubm90IG9w
ZW4gJGRlcEZpbGUiOworICAgIG15ICRmaXJzdExpbmUgPSA8JGZoPjsKKyAgICBjbG9zZSgkZmgp
IG9yIGRpZTsKKyAgICBteSAodW5kZWYsICRkZXBzKSA9IHNwbGl0KC8gOiAvLCAkZmlyc3RMaW5l
KTsKKyAgICBteSBAZGVwcyA9IHNwbGl0KC9ccysvLCAkZGVwcyk7CisgICAgcmV0dXJuIG1hcCB7
ICRkaXJlY3RvcnlDYWNoZXskX30gb3IgKCkgfSBAZGVwczsKK30KKworc3ViIGV4ZWN1dGVDb21t
YW5kCit7CisgICAgaWYgKCReTyBlcSAnY3lnd2luJykgeworICAgICAgICAjICdzeXN0ZW0nIG9m
IEN5Z3dpbiBQZXJsIGRvZXNuJ3Qgc2VlbSB0aHJlYWQtc2FmZQorICAgICAgICBteSAkcGlkID0g
Zm9yaygpOworICAgICAgICBkZWZpbmVkKCRwaWQpIG9yIGRpZTsKKyAgICAgICAgaWYgKCRwaWQg
PT0gMCkgeworICAgICAgICAgICAgZXhlYyhAXykgb3IgZGllOworICAgICAgICB9CisgICAgICAg
IHdhaXRwaWQoJHBpZCwgMCk7CisgICAgICAgIHJldHVybiAkPzsKKyAgICB9CisgICAgaWYgKCRe
TyBlcSAnTVNXaW4zMicpIHsKKyAgICAgICAgcmV0dXJuIHN5c3RlbShxdW90ZUNvbW1hbmQoQF8p
KTsKKyAgICB9CisgICAgcmV0dXJuIHN5c3RlbShAXyk7Cit9CisKK3N1YiBxdW90ZUNvbW1hbmQK
K3sKKyAgICByZXR1cm4gbWFwIHsKKyAgICAgICAgJyInIC4gcy8oW1xcXCJdKS9cXCQxL2dyIC4g
JyInOworICAgIH0gQF87Cit9CisKK3N1YiBDeWd3aW5QYXRoSWZOZWVkZWQKK3sKKyAgICBteSAk
cGF0aCA9IHNoaWZ0OworICAgIHJldHVybiBDeWd3aW46Ondpbl90b19wb3NpeF9wYXRoKCRwYXRo
KSBpZiAoJF5PIGVxICdjeWd3aW4nKTsKKyAgICByZXR1cm4gJHBhdGg7Cit9CisKK3N1YiBnZXRU
ZXJtaW5hbFdpZHRoCit7CisgICAgcmV0dXJuIDAgdW5sZXNzIC10IFNURE9VVDsKKyAgICByZXR1
cm4gODAgaWYgJF5PIGVxICdNU1dpbjMyJzsKKyAgICByZXR1cm4gYHN0dHkgc2l6ZWAgPX4gL1xk
K1xzKyhcZCspLyA/ICQxIDogODA7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvV2ViS2l0
TWFjcm9zLmNtYWtlIGIvU291cmNlL2NtYWtlL1dlYktpdE1hY3Jvcy5jbWFrZQppbmRleCA2MmQz
NGRmNjhhNTRmYmRjYTBkZGQ5MDg3MWZkOTcwZjFkMmZhYzJkLi4yYzM2ZWUzNzM1Y2MxOGUxMDcw
YWVjMDc3ZTUyMGQ1NjhhMzI5NzdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvV2ViS2l0TWFj
cm9zLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9XZWJLaXRNYWNyb3MuY21ha2UKQEAgLTEsNCAr
MSw2IEBACiBpbmNsdWRlKENNYWtlUGFyc2VBcmd1bWVudHMpCitpbmNsdWRlKFByb2Nlc3NvckNv
dW50KQorUHJvY2Vzc29yQ291bnQoUFJPQ0VTU09SX0NPVU5UKQogCiBtYWNybyhXRUJLSVRfSU5D
TFVERV9DT05GSUdfRklMRVNfSUZfRVhJU1RTKQogICAgIHNldChfZmlsZSAke0NNQUtFX0NVUlJF
TlRfU09VUkNFX0RJUn0vUGxhdGZvcm0ke1BPUlR9LmNtYWtlKQpAQCAtNDMsNyArNDUsOCBAQCBt
YWNybyhBRERfUFJFQ09NUElMRURfSEVBREVSIF9oZWFkZXIgX2NwcCBfc291cmNlKQogICAgICNG
SVhNRTogQWRkIHN1cHBvcnQgZm9yIFhjb2RlLgogZW5kbWFjcm8oKQogCi0jIEhlbHBlciBtYWNy
byB3aGljaCB3cmFwcyBwcmVwcm9jZXNzLWlkbHMucGwgYW5kIGdlbmVyYXRlLWJpbmRpbmdzLnBs
IHNjcmlwdHMuCisjIEhlbHBlciBtYWNybyB3aGljaCB3cmFwcyBnZW5lcmF0ZS1iaW5kaW5ncy1h
bGwucGwgc2NyaXB0LgorIyAgIHRhcmdldCBpcyBhIG5ldyB0YXJnZXQgbmFtZSB0byBiZSBhZGRl
ZAogIyAgIE9VVFBVVF9TT1VSQ0UgaXMgYSBsaXN0IG5hbWUgd2hpY2ggd2lsbCBjb250YWluIGdl
bmVyYXRlZCBzb3VyY2VzLihlZy4gV2ViQ29yZV9TT1VSQ0VTKQogIyAgIElOUFVUX0ZJTEVTIGFy
ZSBJREwgZmlsZXMgdG8gZ2VuZXJhdGUuCiAjICAgQkFTRV9ESVIgaXMgYmFzZSBkaXJlY3Rvcnkg
d2hlcmUgc2NyaXB0IGlzIGNhbGxlZC4KQEAgLTU0LDE1ICs1NywxNCBAQCBlbmRtYWNybygpCiAj
ICAgU1VQUExFTUVOVEFMX0RFUEZJTEUgaXMgYSB2YWx1ZSBvZiAtLXN1cHBsZW1lbnRhbERlcGVu
ZGVuY3lGaWxlLiAob3B0aW9uYWwpCiAjICAgUFBfRVhUUkFfT1VUUFVUIGlzIGV4dHJhIG91dHB1
dHMgb2YgcHJlcHJvY2Vzcy1pZGxzLnBsLiAob3B0aW9uYWwpCiAjICAgUFBfRVhUUkFfQVJHUyBp
cyBleHRyYSBhcmd1bWVudHMgZm9yIHByZXByb2Nlc3MtaWRscy5wbC4gKG9wdGlvbmFsKQotZnVu
Y3Rpb24oR0VORVJBVEVfQklORElOR1MpCitmdW5jdGlvbihHRU5FUkFURV9CSU5ESU5HUyB0YXJn
ZXQpCiAgICAgc2V0KG9wdGlvbnMpCiAgICAgc2V0KG9uZVZhbHVlQXJncyBPVVRQVVRfU09VUkNF
IEJBU0VfRElSIEZFQVRVUkVTIERFU1RJTkFUSU9OIEdFTkVSQVRPUiBTVVBQTEVNRU5UQUxfREVQ
RklMRSkKICAgICBzZXQobXVsdGlWYWx1ZUFyZ3MgSU5QVVRfRklMRVMgSURMX0lOQ0xVREVTIFBQ
X0VYVFJBX09VVFBVVCBQUF9FWFRSQV9BUkdTKQogICAgIGNtYWtlX3BhcnNlX2FyZ3VtZW50cyhh
cmcgIiR7b3B0aW9uc30iICIke29uZVZhbHVlQXJnc30iICIke211bHRpVmFsdWVBcmdzfSIgJHtB
UkdOfSkKLSAgICBzZXQoYmluZGluZ19nZW5lcmF0b3IgJHtXRUJDT1JFX0RJUn0vYmluZGluZ3Mv
c2NyaXB0cy9nZW5lcmF0ZS1iaW5kaW5ncy5wbCkKKyAgICBzZXQoYmluZGluZ19nZW5lcmF0b3Ig
JHtXRUJDT1JFX0RJUn0vYmluZGluZ3Mvc2NyaXB0cy9nZW5lcmF0ZS1iaW5kaW5ncy1hbGwucGwp
CiAgICAgc2V0KGlkbF9hdHRyaWJ1dGVzX2ZpbGUgJHtXRUJDT1JFX0RJUn0vYmluZGluZ3Mvc2Ny
aXB0cy9JRExBdHRyaWJ1dGVzLnR4dCkKLSAgICBzZXQoaWQgJHthcmdfT1VUUFVUX1NPVVJDRX0p
Ci0gICAgc2V0KGlkbF9maWxlc19saXN0ICR7Q01BS0VfQ1VSUkVOVF9CSU5BUllfRElSfS9pZGxf
ZmlsZXNfJHtpZH0udG1wKQorICAgIHNldChpZGxfZmlsZXNfbGlzdCAke0NNQUtFX0NVUlJFTlRf
QklOQVJZX0RJUn0vaWRsX2ZpbGVzXyR7dGFyZ2V0fS50bXApCiAgICAgc2V0KF9zdXBwbGVtZW50
YWxfZGVwZW5kZW5jeSkKIAogICAgIHNldChjb250ZW50KQpAQCAtNzQsNTUgKzc2LDY5IEBAIGZ1
bmN0aW9uKEdFTkVSQVRFX0JJTkRJTkdTKQogICAgIGVuZGZvcmVhY2ggKCkKICAgICBmaWxlKFdS
SVRFICR7aWRsX2ZpbGVzX2xpc3R9ICR7Y29udGVudH0pCiAKKyAgICBzZXQoYXJncworICAgICAg
ICAtLWRlZmluZXMgJHthcmdfRkVBVFVSRVN9CisgICAgICAgIC0tZ2VuZXJhdG9yICR7YXJnX0dF
TkVSQVRPUn0KKyAgICAgICAgLS1vdXRwdXREaXIgJHthcmdfREVTVElOQVRJT059CisgICAgICAg
IC0taWRsRmlsZXNMaXN0ICR7aWRsX2ZpbGVzX2xpc3R9CisgICAgICAgIC0tcHJlcHJvY2Vzc29y
ICIke0NPREVfR0VORVJBVE9SX1BSRVBST0NFU1NPUn0iCisgICAgICAgIC0taWRsQXR0cmlidXRl
c0ZpbGUgJHtpZGxfYXR0cmlidXRlc19maWxlfSkKICAgICBpZiAoYXJnX1NVUFBMRU1FTlRBTF9E
RVBGSUxFKQotICAgICAgICBzZXQoX3N1cHBsZW1lbnRhbF9kZXBlbmRlbmN5IC0tc3VwcGxlbWVu
dGFsRGVwZW5kZW5jeUZpbGUgJHthcmdfU1VQUExFTUVOVEFMX0RFUEZJTEV9KQotCi0gICAgICAg
IGFkZF9jdXN0b21fY29tbWFuZCgKLSAgICAgICAgICAgIE9VVFBVVCAke2FyZ19TVVBQTEVNRU5U
QUxfREVQRklMRX0gJHthcmdfUFBfRVhUUkFfT1VUUFVUfQotICAgICAgICAgICAgREVQRU5EUyAk
e1dFQkNPUkVfRElSfS9iaW5kaW5ncy9zY3JpcHRzL3ByZXByb2Nlc3MtaWRscy5wbCAke2FyZ19J
TlBVVF9GSUxFU30KLSAgICAgICAgICAgIENPTU1BTkQgJHtQRVJMX0VYRUNVVEFCTEV9ICR7V0VC
Q09SRV9ESVJ9L2JpbmRpbmdzL3NjcmlwdHMvcHJlcHJvY2Vzcy1pZGxzLnBsIC0tZGVmaW5lcyAk
e2FyZ19GRUFUVVJFU30gLS1pZGxGaWxlc0xpc3QgJHtpZGxfZmlsZXNfbGlzdH0gLS1zdXBwbGVt
ZW50YWxEZXBlbmRlbmN5RmlsZSAke2FyZ19TVVBQTEVNRU5UQUxfREVQRklMRX0gJHthcmdfUFBf
RVhUUkFfQVJHU30KLSAgICAgICAgICAgIFZFUkJBVElNKQorICAgICAgICBsaXN0KEFQUEVORCBh
cmdzIC0tc3VwcGxlbWVudGFsRGVwZW5kZW5jeUZpbGUgJHthcmdfU1VQUExFTUVOVEFMX0RFUEZJ
TEV9KQogICAgIGVuZGlmICgpCi0KLSAgICBzZXQoaWRsX2luY2x1ZGVzKQotICAgIGZvcmVhY2gg
KGRpciAke2FyZ19JRExfSU5DTFVERVN9KQotICAgICAgICBpZiAoSVNfQUJTT0xVVEUgJHtkaXJ9
KQotICAgICAgICAgICAgbGlzdChBUFBFTkQgaWRsX2luY2x1ZGVzIC0taW5jbHVkZT0ke2Rpcn0p
CisgICAgaWYgKFBST0NFU1NPUl9DT1VOVCkKKyAgICAgICAgbGlzdChBUFBFTkQgYXJncyAtLW51
bU9mSm9icyAke1BST0NFU1NPUl9DT1VOVH0pCisgICAgZW5kaWYgKCkKKyAgICBmb3JlYWNoIChp
IElOIExJU1RTIGFyZ19JRExfSU5DTFVERVMpCisgICAgICAgIGlmIChJU19BQlNPTFVURSAke2l9
KQorICAgICAgICAgICAgbGlzdChBUFBFTkQgYXJncyAtLWluY2x1ZGUgJHtpfSkKICAgICAgICAg
ZWxzZSAoKQotICAgICAgICAgICAgbGlzdChBUFBFTkQgaWRsX2luY2x1ZGVzIC0taW5jbHVkZT0k
e0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vJHtkaXJ9KQorICAgICAgICAgICAgbGlzdChBUFBF
TkQgYXJncyAtLWluY2x1ZGUgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9LyR7aX0pCiAgICAg
ICAgIGVuZGlmICgpCiAgICAgZW5kZm9yZWFjaCAoKQorICAgIGZvcmVhY2ggKGkgSU4gTElTVFMg
YXJnX1BQX0VYVFJBX09VVFBVVCkKKyAgICAgICAgbGlzdChBUFBFTkQgYXJncyAtLXBwRXh0cmFP
dXRwdXQgJHtpfSkKKyAgICBlbmRmb3JlYWNoICgpCisgICAgZm9yZWFjaCAoaSBJTiBMSVNUUyBh
cmdfUFBfRVhUUkFfQVJHUykKKyAgICAgICAgbGlzdChBUFBFTkQgYXJncyAtLXBwRXh0cmFBcmdz
ICR7aX0pCisgICAgZW5kZm9yZWFjaCAoKQogCiAgICAgc2V0KGNvbW1vbl9nZW5lcmF0b3JfZGVw
ZW5kZW5jaWVzCi0gICAgICAgICR7YmluZGluZ19nZW5lcmF0b3J9Ci0gICAgICAgICR7V0VCQ09S
RV9ESVJ9L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvci5wbQorICAgICAgICAke1dFQkNP
UkVfRElSfS9iaW5kaW5ncy9zY3JpcHRzL2dlbmVyYXRlLWJpbmRpbmdzLnBsCiAgICAgICAgICR7
U0NSSVBUU19CSU5ESU5HU30KLSAgICAgICAgJHthcmdfU1VQUExFTUVOVEFMX0RFUEZJTEV9Ci0g
ICAgICAgICR7aWRsX2F0dHJpYnV0ZXNfZmlsZX0KICAgICApCi0gICAgbGlzdChBUFBFTkQgY29t
bW9uX2dlbmVyYXRvcl9kZXBlbmRlbmNpZXMgJHthcmdfUFBfRVhUUkFfT1VUUFVUfSkKLQogICAg
IGlmIChFWElTVFMgJHtXRUJDT1JFX0RJUn0vYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
JHthcmdfR0VORVJBVE9SfS5wbSkKICAgICAgICAgbGlzdChBUFBFTkQgY29tbW9uX2dlbmVyYXRv
cl9kZXBlbmRlbmNpZXMgJHtXRUJDT1JFX0RJUn0vYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9yJHthcmdfR0VORVJBVE9SfS5wbSkKICAgICBlbmRpZiAoKQogICAgIGlmIChFWElTVFMgJHth
cmdfQkFTRV9ESVJ9L0NvZGVHZW5lcmF0b3Ike2FyZ19HRU5FUkFUT1J9LnBtKQogICAgICAgICBs
aXN0KEFQUEVORCBjb21tb25fZ2VuZXJhdG9yX2RlcGVuZGVuY2llcyAke2FyZ19CQVNFX0RJUn0v
Q29kZUdlbmVyYXRvciR7YXJnX0dFTkVSQVRPUn0ucG0pCiAgICAgZW5kaWYgKCkKKyAgICBmb3Jl
YWNoIChpIElOIExJU1RTIGNvbW1vbl9nZW5lcmF0b3JfZGVwZW5kZW5jaWVzKQorICAgICAgICBs
aXN0KEFQUEVORCBhcmdzIC0tZ2VuZXJhdG9yRGVwZW5kZW5jeSAke2l9KQorICAgIGVuZGZvcmVh
Y2ggKCkKIAogICAgIHNldChnZW5fc291cmNlcykKKyAgICBzZXQoZ2VuX2hlYWRlcnMpCiAgICAg
Zm9yZWFjaCAoX2ZpbGUgJHthcmdfSU5QVVRfRklMRVN9KQogICAgICAgICBnZXRfZmlsZW5hbWVf
Y29tcG9uZW50KF9uYW1lICR7X2ZpbGV9IE5BTUVfV0UpCi0KLSAgICAgICAgYWRkX2N1c3RvbV9j
b21tYW5kKAotICAgICAgICAgICAgT1VUUFVUICR7YXJnX0RFU1RJTkFUSU9OfS9KUyR7X25hbWV9
LmNwcCAke2FyZ19ERVNUSU5BVElPTn0vSlMke19uYW1lfS5oCi0gICAgICAgICAgICBNQUlOX0RF
UEVOREVOQ1kgJHtfZmlsZX0KLSAgICAgICAgICAgIERFUEVORFMgJHtjb21tb25fZ2VuZXJhdG9y
X2RlcGVuZGVuY2llc30KLSAgICAgICAgICAgIENPTU1BTkQgJHtQRVJMX0VYRUNVVEFCTEV9ICR7
YmluZGluZ19nZW5lcmF0b3J9IC0tZGVmaW5lcyAke2FyZ19GRUFUVVJFU30gLS1nZW5lcmF0b3Ig
JHthcmdfR0VORVJBVE9SfSAke2lkbF9pbmNsdWRlc30gLS1vdXRwdXREaXIgJHthcmdfREVTVElO
QVRJT059IC0tcHJlcHJvY2Vzc29yICIke0NPREVfR0VORVJBVE9SX1BSRVBST0NFU1NPUn0iIC0t
aWRsQXR0cmlidXRlc0ZpbGUgJHtpZGxfYXR0cmlidXRlc19maWxlfSAke19zdXBwbGVtZW50YWxf
ZGVwZW5kZW5jeX0gJHtfZmlsZX0KLSAgICAgICAgICAgIFdPUktJTkdfRElSRUNUT1JZICR7YXJn
X0JBU0VfRElSfQotICAgICAgICAgICAgVkVSQkFUSU0pCiAgICAgICAgIGxpc3QoQVBQRU5EIGdl
bl9zb3VyY2VzICR7YXJnX0RFU1RJTkFUSU9OfS9KUyR7X25hbWV9LmNwcCkKKyAgICAgICAgbGlz
dChBUFBFTkQgZ2VuX2hlYWRlcnMgJHthcmdfREVTVElOQVRJT059L0pTJHtfbmFtZX0uaCkKICAg
ICBlbmRmb3JlYWNoICgpCiAgICAgc2V0KCR7YXJnX09VVFBVVF9TT1VSQ0V9ICR7JHthcmdfT1VU
UFVUX1NPVVJDRX19ICR7Z2VuX3NvdXJjZXN9IFBBUkVOVF9TQ09QRSkKKyAgICBzZXQoYWN0X2Fy
Z3MpCisgICAgaWYgKCR7Q01BS0VfVkVSU0lPTn0gVkVSU0lPTl9MRVNTIDMuMikKKyAgICAgICAg
c2V0X3NvdXJjZV9maWxlc19wcm9wZXJ0aWVzKCR7Z2VuX3NvdXJjZXN9ICR7Z2VuX2hlYWRlcnN9
IFBST1BFUlRJRVMgR0VORVJBVEVEIDEpCisgICAgZWxzZSAoKQorICAgICAgICBsaXN0KEFQUEVO
RCBhY3RfYXJncworICAgICAgICAgICAgQllQUk9EVUNUUyAke2dlbl9zb3VyY2VzfSAke2dlbl9o
ZWFkZXJzfQorICAgICAgICAgICAgVVNFU19URVJNSU5BTAorICAgICAgICApCisgICAgZW5kaWYg
KCkKKyAgICBhZGRfY3VzdG9tX3RhcmdldCgke3RhcmdldH0KKyAgICAgICAgQ09NTUFORCAke1BF
UkxfRVhFQ1VUQUJMRX0gJHtiaW5kaW5nX2dlbmVyYXRvcn0gJHthcmdzfQorICAgICAgICBXT1JL
SU5HX0RJUkVDVE9SWSAke2FyZ19CQVNFX0RJUn0KKyAgICAgICAgQ09NTUVOVCAiR2VuZXJhdGUg
YmluZGluZ3MgKCR7dGFyZ2V0fSkiCisgICAgICAgIFZFUkJBVElNICR7YWN0X2FyZ3N9KQogZW5k
ZnVuY3Rpb24oKQogCiBtYWNybyhHRU5FUkFURV9GT05UX05BTUVTIF9pbmZpbGUpCmRpZmYgLS1n
aXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNDY5NGUxOGNjYjk5
ODg2ZmE0MDg2ODM0NWMxOGExNTNkYjFhY2M5OS4uMDI1NDhmY2ZmOGNhMzBhNTg3ZWI3MmFiYzll
MTM3NjIzYjg5ZDhiMSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE2LTEwLTE5ICBGdWppaSBIaXJvbm9yaSAgPEhp
cm9ub3JpLkZ1amlpQHNvbnkuY29tPgorCisgICAgICAgIFtDTWFrZV0gQ01ha2UgZG9lcyBub3Qg
c3VwcG9ydCB0aGUgZGVwIGZpbGVzIGZvciBpbXBsaWNpdCBkZXBlbmRlbmN5CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjE0MzMKKworICAgICAgICBS
ZXZpZXdlZCBieSBCcmVudCBGdWxnaGFtLgorCisgICAgICAgIENyZWF0ZWQgYSBQZXJsIHNjcmlw
dCB0byBnZW5lcmF0ZSBhbGwgSURMIGJpbmRpbmdzIGZvciBDTWFrZS4KKyAgICAgICAgVGhpcyBz
Y3JpcHQgY2FuIHJlZ2VuZXJhdGUgb3V0ZGF0ZWQgYmluZGluZ3MgYnkgYmFzZWQgb24gdGhlCisg
ICAgICAgIHN1cHBsZW1lbnRhbCBkZXBlbmRlbmN5IGFuZCBkZXAgZmlsZXMgY3JlYXRlZCBieQor
ICAgICAgICAnLS13cml0ZS1kZXBlbmRlbmNpZXMnIHN3aXRjaCBvZiBnZW5lcmF0ZS1iaW5kaW5n
cy5wbC4KKworICAgICAgICBhZGRfY3VzdG9tX3RhcmdldCBpcyB1c2VkIHRvIGludm9rZSB0aGUg
c2NyaXB0IGluc3RlYWQgb2YKKyAgICAgICAgYWRkX2N1c3RvbV9jb21tYW5kIGJlY2F1c2UgTmlu
amEgZGVsZXRlcyBhbGwgb3V0cHV0IGZpbGVzIGJlZm9yZQorICAgICAgICBleGVjdXRpbmcgdGhl
IGNvbW1hbmQgaW4gY2FzZSBvZiBhZGRfY3VzdG9tX2NvbW1hbmQuCisKKyAgICAgICAgVVNFU19U
RVJNSU5BTCBvcHRpb24gb2YgYWRkX2N1c3RvbV90YXJnZXQgaGFzIHR3byBlZmZlY3RzOgorICAg
ICAgICAxKSBOb3QgYnVmZmVyaW5nIG91dHB1dCBvZiB0aGUgY29tbWFuZAorICAgICAgICAyKSBJ
bnZva2luZyB0aGUgY29tbWFuZCBpbiB0aGUgc3BlY2lhbCBOaW5qYSBwb29sIHdoaWNoIGluaGli
aXRzIHBhcmFsbGVsIGJ1aWxkCisgICAgICAgIE9uZSBuZWVkcyB0byB1c2UgQ01ha2UgMy4yIG9y
IGxhdGVyIHRvIGVuYWJsZSB0aGlzIGZlYXR1cmUuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJl
ZS9DTWFrZUxpc3RzLnR4dDogU3BlY2lmaWVkIGEgdGFyZ2V0IG5hbWUgZm9yCisgICAgICAgIEdF
TkVSQVRFX0JJTkRJTkdTLiBBZGRlZCBkZXBlbmRlbmN5IGZvciB0aGUgdGFyZ2V0LgorICAgICAg
ICAqIFdlYktpdFRlc3RSdW5uZXIvQ01ha2VMaXN0cy50eHQ6IERpdHRvLgorCiAyMDE2LTEwLTE5
ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
UmUtZW5hYmxlIFVSTFBhcnNlciBmb3Igbm9uLVNhZmFyaSBDb2NvYSBhcHBzIGFmdGVyIHIyMDcz
MjEKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0NNYWtlTGlzdHMudHh0IGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvQ01ha2VMaXN0cy50eHQKaW5kZXggYmFmN2MxM2M1NzIxYWU2YzE4
YzAzMzdjNDBmODRkYTlkNzFhZWJkZS4uZGM4NDIwZGY4OWY3NzJhOGRjM2U1ODhkNWJhODc3NDE2
MmYyNzViMCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvQ01ha2VMaXN0cy50eHQK
KysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvQ01ha2VMaXN0cy50eHQKQEAgLTEyMCw3ICsxMjAs
NyBAQCBzZXQoRHVtcFJlbmRlclRyZWVfSURMX0ZJTEVTCiAgICAgIiR7V0VCS0lUX1RFU1RSVU5O
RVJfVUlTQ1JJUFRDT05URVhUX0RJUn0vQmluZGluZ3MvVUlTY3JpcHRDb250cm9sbGVyLmlkbCIK
ICkKIAotR0VORVJBVEVfQklORElOR1MoCitHRU5FUkFURV9CSU5ESU5HUyhEdW1wUmVuZGVyVHJl
ZUJpbmRpbmdzCiAgICAgT1VUUFVUX1NPVVJDRSBEdW1wUmVuZGVyVHJlZV9TT1VSQ0VTCiAgICAg
SU5QVVRfRklMRVMgJHtEdW1wUmVuZGVyVHJlZV9JRExfRklMRVN9CiAgICAgQkFTRV9ESVIgJHtE
VU1QX1JFTkRFUl9UUkVFX0JJTkRJTkdTX0RJUn0KQEAgLTEzNSw2ICsxMzUsNyBAQCBpbmNsdWRl
X2RpcmVjdG9yaWVzKCR7RHVtcFJlbmRlclRyZWVfSU5DTFVERV9ESVJFQ1RPUklFU30pCiAKIGFk
ZF9leGVjdXRhYmxlKER1bXBSZW5kZXJUcmVlICR7RHVtcFJlbmRlclRyZWVfU09VUkNFU30pCiB0
YXJnZXRfbGlua19saWJyYXJpZXMoRHVtcFJlbmRlclRyZWUgJHtEdW1wUmVuZGVyVHJlZV9MSUJS
QVJJRVN9KQorYWRkX2RlcGVuZGVuY2llcyhEdW1wUmVuZGVyVHJlZSBEdW1wUmVuZGVyVHJlZUJp
bmRpbmdzKQogCiBpZiAoRU5BQkxFX05FVFNDQVBFX1BMVUdJTl9BUEkpCiAgICAgYWRkX2xpYnJh
cnkoVGVzdE5ldHNjYXBlUGx1Z2luIFNIQVJFRCAke1Rlc3ROZXRzY2FwZVBsdWdpbl9TT1VSQ0VT
fSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvQ01ha2VMaXN0cy50eHQgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0NNYWtlTGlzdHMudHh0CmluZGV4IDI3ZWEzNmMzYmQ0N2Vm
MDJhNjRhOTI3ZjY4NTIyM2RhMzViODQ5ZmEuLjhjOTg3Njg4ZDRhOGMyN2Y0MDZmNjAwZGMyNWUw
YzNhZjhkNWVlNTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvQ01ha2VMaXN0
cy50eHQKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9DTWFrZUxpc3RzLnR4dApAQCAtOTcs
NyArOTcsNyBAQCBzZXQoV2ViS2l0VGVzdFJ1bm5lcl9JRExfRklMRVMKICAgICAiJHtXRUJLSVRf
VEVTVFJVTk5FUl9VSVNDUklQVENPTlRFWFRfRElSfS9CaW5kaW5ncy9VSVNjcmlwdENvbnRyb2xs
ZXIuaWRsIgogKQogCi1HRU5FUkFURV9CSU5ESU5HUygKK0dFTkVSQVRFX0JJTkRJTkdTKFdlYktp
dFRlc3RSdW5uZXJJbmplY3RlZEJ1bmRsZUJpbmRpbmdzCiAgICAgT1VUUFVUX1NPVVJDRSBXZWJL
aXRUZXN0UnVubmVySW5qZWN0ZWRCdW5kbGVfU09VUkNFUwogICAgIElOUFVUX0ZJTEVTICR7V2Vi
S2l0VGVzdFJ1bm5lckluamVjdGVkQnVuZGxlX0lETF9GSUxFU30KICAgICBCQVNFX0RJUiAke1dF
QktJVF9URVNUUlVOTkVSX0lOSkVDVEVEQlVORExFX0RJUn0vQmluZGluZ3MKQEAgLTEwNiw3ICsx
MDYsNyBAQCBHRU5FUkFURV9CSU5ESU5HUygKICAgICBERVNUSU5BVElPTiAke0RFUklWRURfU09V
UkNFU19ESVJ9L0luamVjdGVkQnVuZGxlCiAgICAgR0VORVJBVE9SIFRlc3RSdW5uZXIpCiAKLUdF
TkVSQVRFX0JJTkRJTkdTKAorR0VORVJBVEVfQklORElOR1MoV2ViS2l0VGVzdFJ1bm5lckJpbmRp
bmdzCiAgICAgT1VUUFVUX1NPVVJDRSBXZWJLaXRUZXN0UnVubmVyX1NPVVJDRVMKICAgICBJTlBV
VF9GSUxFUyAke1dlYktpdFRlc3RSdW5uZXJfSURMX0ZJTEVTfQogICAgIEJBU0VfRElSICR7V0VC
S0lUX1RFU1RSVU5ORVJfSU5KRUNURURCVU5ETEVfRElSfS9CaW5kaW5ncwpAQCAtMTIyLDkgKzEy
MiwxMSBAQCBpbmNsdWRlX2RpcmVjdG9yaWVzKFNZU1RFTSAke1dlYktpdFRlc3RSdW5uZXJfU1lT
VEVNX0lOQ0xVREVfRElSRUNUT1JJRVN9KQogCiBhZGRfbGlicmFyeShUZXN0UnVubmVySW5qZWN0
ZWRCdW5kbGUgU0hBUkVEICR7V2ViS2l0VGVzdFJ1bm5lckluamVjdGVkQnVuZGxlX1NPVVJDRVN9
KQogdGFyZ2V0X2xpbmtfbGlicmFyaWVzKFRlc3RSdW5uZXJJbmplY3RlZEJ1bmRsZSAke1dlYktp
dFRlc3RSdW5uZXJfTElCUkFSSUVTfSkKK2FkZF9kZXBlbmRlbmNpZXMoVGVzdFJ1bm5lckluamVj
dGVkQnVuZGxlIFdlYktpdFRlc3RSdW5uZXJJbmplY3RlZEJ1bmRsZUJpbmRpbmdzKQogCiBhZGRf
ZXhlY3V0YWJsZShXZWJLaXRUZXN0UnVubmVyICR7V2ViS2l0VGVzdFJ1bm5lcl9TT1VSQ0VTfSkK
IHRhcmdldF9saW5rX2xpYnJhcmllcyhXZWJLaXRUZXN0UnVubmVyICR7V2ViS2l0VGVzdFJ1bm5l
cl9MSUJSQVJJRVN9KQorYWRkX2RlcGVuZGVuY2llcyhXZWJLaXRUZXN0UnVubmVyIFdlYktpdFRl
c3RSdW5uZXJCaW5kaW5ncykKIAogaWYgKE5PVCBBUFBMRSkKICAgICBhZGRfZGVwZW5kZW5jaWVz
KFdlYktpdDIgJHtGb3J3YXJkaW5nSGVhZGVyc0ZvcldlYktpdFRlc3RSdW5uZXJfTkFNRX0pCmRp
ZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggOWM2ZWZhNDIwZmE3ZDU4MGUx
ODk2MTk2NDAzNzM2MmY2NzY1YWI1Ni4uM2Q3MDY1MzEwMGZiY2MzZWIyY2EwZTg0ZDYxMGFkZmUx
M2Q5N2IyMyAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDI5IEBACisyMDE2LTEwLTE5ICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnku
Y29tPgorCisgICAgICAgIFtDTWFrZV0gQ01ha2UgZG9lcyBub3Qgc3VwcG9ydCB0aGUgZGVwIGZp
bGVzIGZvciBpbXBsaWNpdCBkZXBlbmRlbmN5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjE0MzMKKworICAgICAgICBSZXZpZXdlZCBieSBCcmVudCBG
dWxnaGFtLgorCisgICAgICAgIENyZWF0ZWQgYSBQZXJsIHNjcmlwdCB0byBnZW5lcmF0ZSBhbGwg
SURMIGJpbmRpbmdzIGZvciBDTWFrZS4KKyAgICAgICAgVGhpcyBzY3JpcHQgY2FuIHJlZ2VuZXJh
dGUgb3V0ZGF0ZWQgYmluZGluZ3MgYnkgYmFzZWQgb24gdGhlCisgICAgICAgIHN1cHBsZW1lbnRh
bCBkZXBlbmRlbmN5IGFuZCBkZXAgZmlsZXMgY3JlYXRlZCBieQorICAgICAgICAnLS13cml0ZS1k
ZXBlbmRlbmNpZXMnIHN3aXRjaCBvZiBnZW5lcmF0ZS1iaW5kaW5ncy5wbC4KKworICAgICAgICBh
ZGRfY3VzdG9tX3RhcmdldCBpcyB1c2VkIHRvIGludm9rZSB0aGUgc2NyaXB0IGluc3RlYWQgb2YK
KyAgICAgICAgYWRkX2N1c3RvbV9jb21tYW5kIGJlY2F1c2UgTmluamEgZGVsZXRlcyBhbGwgb3V0
cHV0IGZpbGVzIGJlZm9yZQorICAgICAgICBleGVjdXRpbmcgdGhlIGNvbW1hbmQgaW4gY2FzZSBv
ZiBhZGRfY3VzdG9tX2NvbW1hbmQuCisKKyAgICAgICAgVVNFU19URVJNSU5BTCBvcHRpb24gb2Yg
YWRkX2N1c3RvbV90YXJnZXQgaGFzIHR3byBlZmZlY3RzOgorICAgICAgICAxKSBOb3QgYnVmZmVy
aW5nIG91dHB1dCBvZiB0aGUgY29tbWFuZAorICAgICAgICAyKSBJbnZva2luZyB0aGUgY29tbWFu
ZCBpbiB0aGUgc3BlY2lhbCBOaW5qYSBwb29sIHdoaWNoIGluaGliaXRzIHBhcmFsbGVsIGJ1aWxk
CisgICAgICAgIE9uZSBuZWVkcyB0byB1c2UgQ01ha2UgMy4yIG9yIGxhdGVyIHRvIGVuYWJsZSB0
aGlzIGZlYXR1cmUuCisKKyAgICAgICAgKiBTb3VyY2UvY21ha2UvV2ViS2l0TWFjcm9zLmNtYWtl
IChHRU5FUkFURV9CSU5ESU5HUyk6IEluY2x1ZGVkCisgICAgICAgIFByb2Nlc3NvckNvdW50LiAg
QWRkZWQgYSBuZXcgYXJndW1lbnQgJ3RhcmdldCcuICBVc2UKKyAgICAgICAgYWRkX2N1c3RvbV90
YXJnZXQgaW5zdGVhZCBvZiBhZGRfY3VzdG9tX2NvbW1hbmQuICBJbnZva2UgdGhlIG5ldworICAg
ICAgICBzY3JpcHQuCisKIDIwMTYtMTAtMTggIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29t
PgogCiAgICAgICAgIFJlbW92ZSBDU1NfU0hBUEVTIGZlYXR1cmUgZGVmaW5pdGlvbi4gVGhpcyBz
aG91bGQgYWx3YXlzIGJlIG9uLgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>