childSizechildPaintTransform overlaySizebuilderopaque_opaque maintainState_maintainStatecanSizeOverlaymounted_overlayEntryStateNotifier addListenerremoveListener_overlay_keyremovemarkNeedsBuild _didUnmount_disposedByOwnerdisposetoStringentry overlayState tickerEnabled createState_theater_sortedTheaterSiblings_add_remove_paintOrderIterable_hitTestOrderIterable_createChildIterable initStatedidUpdateWidgetbuild_markNeedsBuildwrapinitialEntries clipBehaviorofmaybeOf_entries_insertionIndex_debugCanInsertEntryinsert insertAll_debugVerifyInsertPosition rearrange _markDirtydebugIsVisible_didChangeEntryOpacitydebugFillPropertieschild_entry skipCount createElementcreateRenderObjectupdateRenderObject renderObjectinsertRenderObjectChildmoveRenderObjectChilddebugVisitOnstageChildrentheater_childrenInPaintOrder_childrenInHitTestOrdersetupParentDatacomputeDistanceToActualBaselinebaselineForChild layoutChildhitTestChildrenpaint overlayEntrypaintOrderIteratorhitTestOrderIterator(visitOverlayPortalChildrenOnOverlayEntryattach _detachChilddetachredepthChildren_alignmentCache_resolvedAlignment_markNeedResolution textDirection_textDirection _skipCount _clipBehavior_skipMarkNeedsLayout_addDeferredChild_removeDeferredChildmarkNeedsLayout_firstOnstageChild_lastOnstageChildcomputeMinIntrinsicWidthcomputeMaxIntrinsicWidthcomputeMinIntrinsicHeightcomputeMaxIntrinsicHeightcomputeDryBaselinecomputeDryLayout sizedByParent_layingOutSizeDeterminingChild performLayout_findSizeDeterminingChild_clipRectLayer visitChildrenvisitChildrenForSemanticsdescribeApproximatePaintClipdebugDescribeChildren _attachTarget _zOrderIndex _debugLabel _wallTime_nowshowhide isShowingtogglenearestOverlay rootOverlay controlleroverlayChildBuilderoverlayLocation_childModelMayHaveChanged_locationCache_isTheSameLocation _getLocation_setupControllerdidChangeDependenciesactivate _childModel_overlayChildRenderBox_addToChildModel_removeFromChildModel _addChild _removeChild _moveChild _activate _deactivate_debugIsLocationValid#_debugMarkLocationInvalidStackTrace_debugMarkLocationInvalidoverlayEntryWidgetStateupdateShouldNotify_rootRenderTheaterMarkerOf overlayChild _overlayChild_childmountupdate forgetChild deactivateremoveRenderObjectChildchildIdentifiergetLayoutParentstackParentData_layoutSurrogate_childIdentifier needsLayout _needsLayoutdebugLayoutParent_doingLayoutFromTreeWalk _doLayoutFromlayout performResize_debugMutationsLockeddescribeSemanticsConfigurationapplyPaintTransform_deferredLayoutChild layoutInfo _layoutInfo_computeNewLayoutInfolayoutCallback _callbackId_speculativeLayoutErrorMessage_frameCallbackOverlayChildLayoutBuilderOverlayChildLayoutInfo OverlayEntry_OverlayEntryWidget_OverlayEntryWidgetStateOverlay OverlayState_WrappingOverlay_WrappingOverlayState_Theater_TheaterElement_RenderTheaterMixin_TheaterParentData_RenderTheaterOverlayPortalControllerOverlayChildLocation OverlayPortal_OverlayPortalState_OverlayEntryLocation_RenderTheaterMarker_OverlayPortal_OverlayPortalElement_DeferredLayout_RenderDeferredLayoutBox_RenderLayoutSurrogateProxyBox_OverlayChildLayoutBuilder_RenderLayoutBuilderooverlayChildLayoutBuilderWidget BuildContextSizeMatrix4child_info$1$2$3insert insertAllofStack PositionedAnimatedPositioned DraggableStatesetState Listenable WidgetsApp MaterialAppbooldebugMaybeDispatchCreated WidgetBuilder_didChangeEntryOpacity NavigatorRouteFutureBoxConstraintsvalue ValueNotifieroverridevoid VoidCallback addListenerremoveListener GlobalKeymounted_entriesremoveSchedulerBindinginstanceschedulerPhaseSchedulerPhasepersistentCallbacksaddPostFrameCallbackDuration _markDirty debugLabel currentState_markNeedsBuilddisposedebugMaybeDispatchDisposedStringdescribeIdentityStatefulWidgetKey LinkedListcontainsisEmptylast _zOrderIndexpreviousaddFirst insertAfterIterablereversedfirst_overlayChildRenderBoxnext initStatewidgetentry_overlayEntryStateNotifiercontextfindAncestorRenderObjectOfTypedidUpdateWidget overlayState _didUnmount TickerModeenabled tickerEnabledtheateroverlayEntryWidgetStateBuilderbuilder CupertinoAppDirectionality directional MediaQuerysizeOf NavigationBarCliphardEdgekey clipBehaviorListLookupBoundarymaybeOf rootOverlay debugIsHidingAncestorStateOfTypeDiagnosticsNode ErrorSummaryErrorDescriptiondebugRequiredFor runtimeType ErrorHintDiagnosticsPropertystyleDiagnosticsTreeStyle errorPropertydescribeElement FlutterError fromPartstargetRootOverlaycreateDependencyTickerProviderStateMixin protectedinitialEntriesintindexOflength_overlay identicalabovebelowevery newEntriestoListgrowable lastIndexOf listEquals LinkedHashSetclearaddAll removeAlliopaqueadd_key maintainState skipCountchildrenDiagnosticPropertiesBuilderdebugFillPropertiescanSizeOverlaymarkNeedsBuildMultiChildRenderObjectWidget textDirection IntPropertyMultiChildRenderObjectElement renderObject RenderBox IndexedSlotElementinsertRenderObjectChild parentData overlayEntryindexmoveRenderObjectChildElementVisitorskipforEachStackParentDatadouble TextBaselinedebugNeedsLayoutBaselineOffset noBaseline_childrenInPaintOrderminOfgetDistanceToActualBaselineoffsetdy Alignment isPositionedpositionedChildConstraintsgetDryBaselinetopheightbottom getDryLayout alongOffsetOffset_resolvedAlignmentlayoutparentUsesSizezero RenderStacklayoutPositionedChildsizeBoxHitTestResultIterator_childrenInHitTestOrderiteratormoveNextcurrenthitTestpositionaddWithPaintOffsetPaintingContext paintChild ModalRoute_paintOrderIterable_hitTestOrderIterableRenderObjectVisitorContainerRenderObjectMixin TextDirection PipelineOwnerattach firstChildpaintOrderIterator nextSibling RenderObjectdetach(visitOverlayPortalChildrenOnOverlayEntry redepthChildAlignmentDirectionaltopStartresolvemarkNeedsPaintmarkNeedsSemanticsUpdate adoptChild_layoutSurrogatemarkNeedsLayout dropChild childCounttoSkip lastChildgetIntrinsicDimensiongetMinIntrinsicWidthgetMaxIntrinsicWidthgetMinIntrinsicHeightgetMaxIntrinsicHeightbiggestisFinitetightbaselineForChildhitTestOrderIteratorpreviousSibling constraints layoutChild LayerHandle ClipRectLayernonelayer pushClipRectneedsCompositingpaintoldLayerRect antiAliasantiAliasWithSaveLayer EnumPropertytoDiagnosticsNodenameoffstage isNotEmptymessageshowhidekIsWebobjectRuntimeTypeInheritedWidgetThemeDefaultTextStyle TextStyleListView KeepAliveoverlayChildBuilderCompositedTransformFollowerCompositedTransformTargetnearestOverlay Deprecated controlleroverlayLocation _childModel_theater_debugIsLocationValid_debugMarkLocationInvalid _attachTargetStatefulElement debugIsActivedidChangeDependenciesactivate overlayChild SemanticstraversalParentIdentifierchildIdentifierLinkedListEntry_addmarkNeedsCompositingBitsUpdate_sortedTheaterSiblings_remove_addDeferredChildparent_removeDeferredChild_removeFromChildModel StateError StackTrace mustCallSuper shortHashdescribeMissingAncestorexpectedAncestorTypeInheritedElement'getElementForInheritedWidgetOfExactTypedependOnInheritedElement"dependOnInheritedWidgetOfExactTypegetInheritedWidgetOfExactTypevisitAncestorElementselementRenderObjectWidgetRenderObjectElementObjectmount updateChildupdate forgetChildattached_deferredLayoutChildslot _activate _deactivate deactivate _addChild _moveChild _removeChild defaultValueSingleChildRenderObjectWidgetRenderProxyBoxemptygenerateredepthChildren ConstraintsinvokeLayoutCallbackisTightSemanticsConfigurationdescribeSemanticsConfigurationtraversalChildIdentifier BoxParentDatatranslateByDoubledx performLayout_layingOutSizeDeterminingChild _doLayoutFromAbstractLayoutBuilder RenderAbstractLayoutBuilderMixin#RenderObjectWithLayoutCallbackMixinnodeRenderFollowerLayerdescribeForErrordepthhasSizegetTransformTo isIdentity_visibleForOverridinglayoutCallbackrunLayoutCallbackscheduleFrameCallbackscheduleNewFramedebugCannotComputeDryLayoutreason debugDisposedcancelFrameCallbackWithId callbackId ListenableStatefulWidgetStateTickerProviderStateMixinMultiChildRenderObjectWidgetMultiChildRenderObjectElement RenderBoxStackParentDataContainerRenderObjectMixin_RenderTheaterMixinLinkedListEntryInheritedWidgetRenderObjectWidgetRenderObjectElementSingleChildRenderObjectWidgetRenderProxyBoxAbstractLayoutBuilder#RenderObjectWithLayoutCallbackMixin RenderAbstractLayoutBuilderMixinDVI@N/ Odart:collectionlpackage:flutter/foundation.dartpackage:flutter/rendering.dartpackage:flutter/scheduler.dart basic.dartframework.dartlayout_builder.dart<lookup_boundary.dart\ticker_provider.dart'͋4=ہ -Q}Á%BLNik;[{} UWȄ;@ 9;{݆߇;@~̈+0ʈωesxʊiLM=ߎ-2ˏi DIX]ӑU֒&fS͓*Sh~וޖ-|Ԗ '=fkmݗ7ڙ-Ӛ#*{ʛBZ}ЛכѰF4Z`W1oqXC$+No}շڷܸ 8DJ/xպ4M3dszͽCɾоվ׾Nƿ˿Ϳ@@:@@A AGAAAAAAB BB[B|BBBBBBC C0CTCpCCD DDDNDVD[D]DyDDDDDDEEEcEEFF FpFGG&G+GwGHHjHoHHI&I+I{IIIJJRJdJiJJJJJK-K{KL,LLLMMMgMMMN)NSNfNvNNNNO*OkOrOPPDPPPPQ3Q:QQRRR_RRS2SSSZSSSTTT2TNTPTTUUUkUV VXVVWWW2W9WHW{WWWX X[XXXXXYY)YDYaYYYYZZ#ZZZZZ[Z[h[[\\\2\\\]o]}]]^^:^t^^^_3_C_O_Q_______``^`e``````aaa-a4aab b6bFbmbbbbbcc c c4c9cccd%d'd5dBdXdpddddee(eOeVepeeeeeef-fWfxffffg5gDgxgggggh6hWhbhihkhhhi iXiijj/jxjjkkckqkkkllRl`lklrltlllllm@m_mmmn nn%nnnnnno.o5o~ooop9pppqqqXqaqfqhqqqr<rorvrssHszsssssttt/trt{tttttuu uou|uuuvvvvvvw#wZwwwxxxSxxxxxyHyyzz%zpz{{{{W{| | |O|||}})}}}}~ ~~b~j~~~~~~%Ppw09>@WkM &M^ 'HZen.OX]_mz7Pk7Tp{5Xfr{08=?MZ TBD`wyA\o,JOQ^r~V[^` BVo79UWd &X{Lrwy27:<{_Cqvx DUUity{ X]`b!@Br<CHJW9a6@Gjoq+2u,$U&.NSU*Tak Zc/XuC`VD~$8:@13yEHJr)Ai#JLY)Cg<c!.AVz.ZafhuHJj)M\c3MTY[1Tr`ou&Jl)f}FAe2UZ\i&:Ak5<OTV!<|V^cer08=?L &y­UÒÔ@YĊĞı &07Z_anť;@BOơƶ6Jǒ 8`ktȠȧȬȮȻ7bɏɬLpʜKRWYfˊˌ˼ 2Uc̞2[bdͲ7cΟΨίδζ )qϷ3:oЄ^ѻgq҃&+-Ӏӂӏ!<MjԀԥ /6;=J^ՀՖ՛՝ժ 7Q}ךױEqx}،-Irٖٝ٢٤ٱ#]گڴڶ)[]qۋۯ R{ܔܨܱܳ(Gݪݶݿ8jނ8lߡ߱߿.57Vq"*/24W}5k&q$r /3{`pr6zh+@ R@SU)c$SZ)0~ SmI*;rN} "ip(U+0352Zmo1HX[]8'BG1{nEk|7SX=0@EeTC "k~X"p  ? X h       Z     4 9 e u      [     ` Rho R<$ls,Yh(ESg-8:.5'krBI9g)=ln{`7[a?iDw|~ gwe  6 =    !!3!;!q!!!!!!"" ""M"Z""#L#T###$4$a$h$$$$$$% %4%9%;%H%{%%&&T&&&&&&&''/'4'6'C'W''''''(((s((()))A)])b)d)u))** *<*X*]*_*l****++;++++,,*,J,,,,,,,---a-...U.../!/m/q/0 0*0y011b111112+2:2_2r2v233g33344#4%4Z4445/575\5y555556:6h66677F7p7u7w77788>8C8E8|889 9/9496999::a:c:::::;<;n;;;;;<?>E>>?2?|???@S@u@@@@A6A>ACAEAAAB;BhBBBBC CLC`CkCpCrCCD+D.D0DfDDDDDDEENEPE]EEF FFFpFFGG G?GpGGH+H5HGHHII)IsI|IIIIIJJJ7J}JJK3KRKhKqKKKL$L+L-LJLLLM MMMtMMNNN;NNNNOOOuOzO}OOPP(P/PPPQ3QQQQQQQR#R%R2RyR{RRRRS&S]S_SlSSSSTTTTQTtTTU<UAUCUPU{UUV7V<V>VKVpVWW5WSWgWWWWWWX X:XQXXXyXXXXXXXY)YAY_YYZ8ZZZZZZ[[M[[\ \8\\\\\\]]X]q]]^ ^^>^E^J^L^^^__;______````#`s`````a8agaaaaabbsbbcNcVc[c^c`ccdd;dWdrdddddeVe[e]ejeefKf|ffffggLgggggh)hphiiiZiijFjTjXjjk?kkkllQllm mUmmmnnn<nYnnnnnnnno+oUooooooop;p=pJp}ppppqq$qNqlqqqsqqqqqrr rr,r9rUrorrrrrss8sLsSsssssssttttOtQttuukuuvv0vWv~vvvw,wJwTwwx>xHxxy4yyyyzMzzz{ {{{ {"{/{x{{||"|$|1|K|l|q|s||||} }(}7}>}O}t}}}~~4~^~x~~~~~*>IdikxQX]_l"`ehj @BOkU9[jq U!s q W4t x[vL3cg/9W<V"$1d .0=tv9w|~/WYRcpWr)H`p:nb'DIK`m f}B,dRchjw"VSdikx,gqy  .`/// @docImport 'package:flutter/cupertino.dart'; /// @docImport 'package:flutter/material.dart'; /// /// @docImport 'app.dart'; /// @docImport 'drag_target.dart'; /// @docImport 'implicit_animations.dart'; /// @docImport 'media_query.dart'; /// @docImport 'navigator.dart'; /// @docImport 'routes.dart'; /// @docImport 'scroll_view.dart'; /// @docImport 'sliver.dart'; /// @docImport 'text.dart'; Nk;[ѓ œ!@1B /// Creates an overlay entry. /// /// To insert the entry into an [Overlay], first find the overlay using /// [Overlay.of] and then call [OverlayState.insert]. To remove the entry, /// call [remove] on the overlay entry itself./// This entry will include the widget built by this builder in the overlay at /// the entry's position. /// /// To cause this builder to be called again, call [markNeedsBuild] on this /// overlay entry. IDIE/// Whether the content of this [OverlayEntry] can be used to size the /// [Overlay]. /// /// In most situations the overlay sizes itself based on its incoming /// constraints to be as large as possible. However, if that would result in /// an infinite size, it has to rely on one of its children to size itself. In /// this situation, the overlay will consult the topmost non-[Positioned] /// overlay entry that has this property set to true, lay it out with the /// incoming [BoxConstraints] of the overlay, and force all other /// non-[Positioned] overlay entries to have the same size. The [Positioned] /// entries are laid out as usual based on the calculated size of the overlay. /// /// Overlay entries that set this to true must be able to handle unconstrained /// [BoxConstraints]. /// /// Setting this to true has no effect if the overlay entry uses a [Positioned] /// widget to position itself in the overlay.šߡơޡᡔU/// The currently mounted `_OverlayEntryWidgetState` built using this [OverlayEntry].QZs[tuJ VJƩ/// Whether this entry occludes the entire overlay. /// /// If an entry claims to be opaque, then, for efficiency, the overlay will /// skip building entries below that entry unless they have [maintainState] /// set.oo }/// Whether this entry must be included in the tree even if there is a fully /// [opaque] entry above it. /// /// By default, if there is an entirely [opaque] entry over this one, then this /// one will not be included in the widget tree (in particular, stateful widgets /// within the overlay entry will not be instantiated). To ensure that your /// overlay entry is still built even if it is not visible, set [maintainState] /// to true. This is more expensive, so should be done with care. In particular, /// if widgets in an overlay entry with [maintainState] set to true repeatedly /// call [State.setState], the user's battery will be drained unnecessarily. /// /// This is used by the [Navigator] and [Route] objects to ensure that routes /// are kept around even when in the background, so that [Future]s promised /// from subsequent routes will be handled properly when they complete.11ր/// Whether the [OverlayEntry] is currently mounted in the widget tree. /// /// The [OverlayEntry] notifies its listeners when this value changes.Ŗ nn s\\` 퀓y}}t /// Remove this entry from the overlay. /// /// This should only be called once. /// /// This method removes this overlay entry from the overlay immediately. The /// UI will be updated in the same frame if this method is called before the /// overlay rebuild in this frame; otherwise, the UI will be updated in the /// next frame. This means that it is safe to call during builds, but also /// that if you do call this after the overlay rebuild, the UI will not update /// until the next frame (i.e. many milliseconds later)./// Cause this entry to rebuild during the next pipeline flush. /// /// You need to call this function if the output of [builder] has changed.ҩ҄-1/// Discards any resources used by this [OverlayEntry]. /// /// The [remove] method must be called before this method if the /// [OverlayEntry] is inserted into an [Overlay]. /// /// After this is called, the object is not in a usable state and should be /// discarded (calls to [addListener] will throw after the object is disposed). /// However, the listeners registered may not be immediately released until /// the widget built using this [OverlayEntry] is unmounted from the widget /// tree. /// /// This method should only be called by the object's owner.Z[ZZnl//// A place in an [Overlay] that can contain a widget. /// /// Overlay entries are inserted into an [Overlay] using the /// [OverlayState.insert] or [OverlayState.insertAll] functions. To find the /// closest enclosing overlay for a given [BuildContext], use the [Overlay.of] /// function. /// /// An overlay entry can be in at most one overlay at a time. To remove an entry /// from its overlay, call the [remove] function on the overlay entry. /// /// Because an [Overlay] uses a [Stack] layout, overlay entries can use /// [Positioned] and [AnimatedPositioned] to position themselves within the /// overlay. /// /// For example, [Draggable] uses an [OverlayEntry] to show the drag avatar that /// follows the user's finger across the screen after the drag begins. Using the /// overlay to display the drag avatar lets the avatar float over the other /// widgets in the app. As the user's finger moves, draggable calls /// [markNeedsBuild] on the overlay entry to cause it to rebuild. In its build, /// the entry includes a [Positioned] with its top and left property set to /// position the drag avatar near the user's finger. When the drag is over, /// [Draggable] removes the entry from the overlay to remove the drag avatar /// from view. /// /// By default, if there is an entirely [opaque] entry over this one, then this /// one will not be included in the widget tree (in particular, stateful widgets /// within the overlay entry will not be instantiated). To ensure that your /// overlay entry is still built even if it is not visible, set [maintainState] /// to true. This is more expensive, so should be done with care. In particular, /// if widgets in an overlay entry with [maintainState] set to true repeatedly /// call [State.setState], the user's battery will be drained unnecessarily. /// /// [OverlayEntry] is a [Listenable] that notifies when the widget built by /// [builder] is mounted or unmounted, whose exact state can be queried by /// [mounted]. After the owner of the [OverlayEntry] calls [remove] and then /// [dispose], the widget may not be immediately removed from the widget tree. /// As a result listeners of the [OverlayEntry] can get notified for one last /// time after the [dispose] call, when the widget is eventually unmounted. /// /// {@macro flutter.widgets.overlayPortalVsOverlayEntry} /// /// See also: /// /// * [OverlayPortal], an alternative API for inserting widgets into an /// [Overlay] using a builder callback. /// * [Overlay], a stack of entries that can be managed independently. /// * [OverlayState], the current state of an Overlay. /// * [WidgetsApp], a convenience widget that wraps a number of widgets that /// are commonly required for an application. /// * [MaterialApp], a convenience widget that wraps a number of widgets that /// are commonly required for Material Design applications.9LTTgqq333433RYV39VҺٺ㺨ztɻݻuddzZZ~_޷ހLپھپـ@ϿпϿς+BBBBBBBBBBBBBD_D_oDdEN[NbNjNj NpNzNz,NNN!N NNNNNNNNNLLF/// Creates an overlay. /// /// The initial entries will be inserted into the overlay when its associated /// [OverlayState] is initialized. /// /// Rather than creating an overlay, consider using the overlay that is /// created by the [Navigator] in a [WidgetsApp], [CupertinoApp], or a /// [MaterialApp] for the application.SPS/// The entries to include in the overlay initially. /// /// These entries are only used when the [OverlayState] is initialized. If you /// are providing a new [Overlay] description for an overlay that's already in /// the tree, then the new entries are ignored. /// /// To add entries to an [Overlay] that is already in the tree, use /// [Overlay.of] to obtain the [OverlayState] (or assign a [GlobalKey] to the /// [Overlay] widget and obtain the [OverlayState] via /// [GlobalKey.currentState]), and then use [OverlayState.insert] or /// [OverlayState.insertAll]. /// /// To remove an entry from an [Overlay], use [OverlayEntry.remove].T?SyT?X/// {@macro flutter.material.Material.clipBehavior} /// /// Defaults to [Clip.hardEdge].PZPZP_PdPd!PiPPPPxP|P}NN܂PTW/// Wrap the provided `child` in an [Overlay] to allow other visual elements /// (packed in [OverlayEntry]s) to float on top of the child. /// /// This is a convenience method over the regular [Overlay] constructor: It /// creates an [Overlay] and puts the provided `child` in an [OverlayEntry] /// at the bottom of that newly created Overlay.YHYHYUYeYeYjYYYYxTRTRsY?/// The [OverlayState] from the closest instance of [Overlay] that encloses /// the given context within the closest [LookupBoundary], and, in debug mode, /// will throw if one is not found. /// /// In debug mode, if the `debugRequiredFor` argument is provided and an /// overlay isn't found, then this function will throw an exception containing /// the runtime type of the given widget in the error message. The exception /// attempts to explain that the calling [Widget] (the one given by the /// `debugRequiredFor` argument) needs an [Overlay] to be present to function. /// If `debugRequiredFor` is not supplied, then the error message is more /// generic. /// /// Typical usage is as follows: /// /// ```dart /// OverlayState overlay = Overlay.of(context); /// ``` /// /// {@template flutter.widgets.Overlay.of} /// If `rootOverlay` is set to true, the state from the furthest instance of /// this class is given instead. Useful for installing overlay entries above /// all subsequent instances of [Overlay]. /// {@endtemplate} /// /// See also: /// /// * [Overlay.maybeOf] for a similar function that returns null if an /// [Overlay] is not found.aaaaaab__˂aρ/// The [OverlayState] from the closest instance of [Overlay] that encloses /// the given context within the closest [LookupBoundary], if any. /// /// Typical usage is as follows: /// /// ```dart /// OverlayState? overlay = Overlay.maybeOf(context); /// ``` /// /// {@macro flutter.widgets.Overlay.of} /// /// See also: /// /// * [Overlay.of] for a similar function that returns a non-nullable result /// and throws if an [Overlay] is not found.bbbb:bDD՞3L҇/// A stack of entries that can be managed independently. /// /// Overlays let independent child widgets "float" visual elements on top of /// other widgets by inserting them into the overlay's stack. The overlay lets /// each of these widgets manage their participation in the overlay using /// [OverlayEntry] objects. /// /// Although you can create an [Overlay] directly, it's most common to use the /// overlay created by the [Navigator] in a [WidgetsApp], [CupertinoApp] or a /// [MaterialApp]. The navigator uses its overlay to manage the visual /// appearance of its routes. /// /// The [Overlay] widget uses a custom stack implementation, which is very /// similar to the [Stack] widget. The main use case of [Overlay] is related to /// navigation and being able to insert widgets on top of the pages in an app. /// For layout purposes unrelated to navigation, consider using [Stack] instead. /// /// An [Overlay] widget requires a [Directionality] widget to be in scope, so /// that it can resolve direction-sensitive coordinates of any /// [Positioned.directional] children. /// /// For widgets drawn in an [OverlayEntry], do not assume that the size of the /// [Overlay] is the size returned by [MediaQuery.sizeOf]. Nested overlays can /// have different sizes. /// /// {@tool dartpad} /// This example shows how to use the [Overlay] to highlight the [NavigationBar] /// destination. /// /// ** See code in examples/api/lib/widgets/overlay/overlay.0.dart ** /// {@end-tool} /// /// See also: /// /// * [OverlayEntry], the class that is used for describing the overlay entries. /// * [OverlayState], which is used to insert the entries into the overlay. /// * [WidgetsApp], which inserts an [Overlay] widget indirectly via its [Navigator]. /// * [MaterialApp], which inserts an [Overlay] widget indirectly via its [Navigator]. /// * [CupertinoApp], which inserts an [Overlay] widget indirectly via its [Navigator]. /// * [Stack], which allows directly displaying a stack of widgets.d d!ddddc4d d)d*d7d8d)d)qdIdddddddd"deeeeeȉ2epGpGpTp\p\pjpqpqpoodp@%/// Insert the given entry into the overlay. /// /// If `below` is non-null, the entry is inserted just below `below`. /// If `above` is non-null, the entry is inserted just above `above`. /// Otherwise, the entry is inserted on top. /// /// It is an error to specify both `above` and `below`.rrrrrrrrsqjqjr3/// Insert all the entries in the given iterable. /// /// If `below` is non-null, the entries are inserted just below `below`. /// If `above` is non-null, the entries are inserted just above `above`. /// Otherwise, the entries are inserted on top. /// /// It is an error to specify both `above` and `below`.tttttttt"ttt|t{h{h!{{{{{{{xx6{^/// Remove all the entries listed in the given iterable, then reinsert them /// into the overlay in the given order. /// /// Entries mention in `newEntries` but absent from the overlay are inserted /// as if with [insertAll]. /// /// Entries not mentioned in `newEntries` but present in the overlay are /// positioned as a group in the resulting list relative to the entries that /// were moved, as specified by one of `below` or `above`, which, if /// specified, must be one of the entries in `newEntries`: /// /// If `below` is non-null, the group is positioned just below `below`. /// If `above` is non-null, the group is positioned just above `above`. /// Otherwise, the group is left on top, with all the rearranged entries /// below. /// /// It is an error to specify both `above` and `below`.BBKGSEUf`hzs|))ĀSTSSjeÀЂJRZZ_ss!x1k DD+!+F;FYZYYFv&{|{{``/// Special version of a [Stack], that doesn't layout and render the first /// [skipCount] children. /// /// The first [skipCount] children are considered "offstage".}}}'U//9@@Voz{zz}~}}<<"B)c/// A [OverlayPortal] makes its overlay child a render child of an ancestor /// [Overlay]. Currently, to make sure the overlay child is painted after its /// [OverlayPortal], and before the next [OverlayEntry] (which could be /// something that should obstruct the overlay child, such as a [ModalRoute]) /// in the host [Overlay], the paint order of each overlay child is managed by /// the [OverlayEntry] that hosts its [OverlayPortal]. /// /// The following methods are exposed to allow easy access to the overlay /// children's render objects whose order is managed by [overlayEntry], in the /// right order.܆j$--1EE!J=Y]^pvẃF"!˴˓ˎ+˓alzm{|P/NP08t2 ]]X/// {@macro flutter.material.Material.clipBehavior} /// /// Defaults to [Clip.hardEdge].ׁ{XXUg[\[[-q {"" 'ppzNONN` ?#$##A5jkjjC|LLVQ7T ^_^^sp   ghgg{oo vABAAUCCR__lB0ņņŕcdccuDEDDfȰȱȰȰ˾˿˾˾θθqӜӜӬӵӵ ӼӄӅӄӄӖ?@??ZQտտ՟ՠ՟՟`ձ11Evررؾ؁؂؁؁ؔ&٦٧٦٦ ٸڸڹڸڸuJJPBY[[c~r܀_/// Creates an [OverlayPortalController], optionally with a String identifier /// `debugLabel`." "F$%KHINSx/// Whether the associated [OverlayPortal] should build and show its overlay /// child, using its `overlayChildBuilder`.Ղ/// Show the overlay child of the [OverlayPortal] this controller is attached /// to, at the top of the target [Overlay]. /// /// When there are more than one [OverlayPortal]s that target the same /// [Overlay], the overlay child of the last [OverlayPortal] to have called /// [show] appears at the top level, unobstructed. /// /// If [isShowing] is already true, calling this method brings the overlay /// child it controls to the top. /// /// This method should typically not be called while the widget tree is being /// rebuilt.Ă61O/// Hide the [OverlayPortal]'s overlay child. /// /// Once hidden, the overlay child will be removed from the widget tree the /// next time the widget tree rebuilds, and stateful widgets in the overlay /// child may lose states as a result. /// /// This method should typically not be called while the widget tree is being /// rebuilt.$$؀/// Convenience method for toggling the current [isShowing] status. /// /// This method should typically not be called while the widget tree is being /// rebuilt.(rr迂"""$$$${$%_%_%m%=%>%=%=%O&&&&p&'8'9'8'8'J'''''o')f)f)k*{*{**a*b*a*a*u/3i3~33333333 33i3iJ33333*34444A4'04ABvBj/Bv 4r4r44\4\4a666055w67777y7y7~8Y8Y8r8G8G8L9H9H9a9h9h"9~9898`9=;;;;;;;<<= <<߀<@U@U@ZBBBBBCtCuCtCtC,,93/// A location in an [Overlay]. /// /// An [_OverlayEntryLocation] determines the [Overlay] the associated /// [OverlayPortal] should put its overlay child onto, as well as the overlay /// child's paint order in relation to other contents painted on the [Overlay].DnDDDDDD%DDDDDhDhE DE E4E6E4EwEwEERESEREREdF5F5FBFLFLFQFeFFiF2IIIIIIIIIIJ IIIMIMI&M[MMcM.D0D0KD6PPPPPPPPPPPPPQ/QQ QQQ(QQ+Q9Q?QQXQPQ@QSQ[QjQkQQOO/// Creates a widget that renders the given [overlayChild] in the [Overlay] /// specified by `overlayLocation`. /// /// The `overlayLocation` parameter must not be null when [overlayChild] is not /// null.QQQQQBQ+/// A widget below this widget in the tree.RQ,RR'R(R'R'PRHRRRR}R~R}R}gROOhOS(S=S>S>SSS(S(3SSSTSTSaSbSaSa|S T,T,T5T=T=TETTTT+T&U^U^UmUEUFUEUEUWV^V^ VfV@VAV@V@IVRWWWWWWWWXXXX1XZZZZށZ\\\\\\\\\\\___3_?_?_U_c_c_y^^^^&^`B`B`L`S`S`j`````*aa&aaaaaaRRqRccd?d?dOd[d[d`dyd~ddddccdddddddddeeee_e`e_e_:efffff%fffff1fc`c`scfm m#m$m$m)m;m;mCmlm[mnm m smm5mnFn>nFr%rrru ttSt/// Whether this RenderBox's layout method is currently being called by the /// theater or the layoutSurrogate's [performLayout] implementation.||z|u"|zmmFmn n 0np?p@p?p?p_quqvququ,qqqdqtt ttEt'nono nwn[n[n_ nnnnoooooVppppprqr.r/r.r.br@rrrrrrrrrrlru'u'u4uEuE uZuu u{={={I{W{W{\{${%{m{${${6|&|'|&|&I|8|||||mnmmabaaslll).)DEDDcVjΈLzz:4__lFy$I1#IRMRjB.B&'&&F,QրV2322@Dxyxx[[[rbcbbFt  lmllEE L+ €mnmmIIXeer!"!!m6 u!瀃\n/// The [OverlayPortal] renders its overlay child on the closest ancestor /// [Overlay] above the widget tree.qqJ/// The [OverlayPortal] renders its overlay child on the root [Overlay] above /// the widget tree. /// /// In case of multi-view apps, the root [Overlay] refers to the first Overlay /// below the View.55$̀/// The location of the [Overlay] that an [OverlayPortal] renders its overlay /// child on. /// /// This is typically used in [OverlayPortal].E4ׄeBB`=/// The size of [OverlayPortal.child] in its own coordinates.\/// The paint transform of [OverlayPortal.child], in the target [Overlay]'s /// coordinates.==aѰF4Z`W1oqXC$+No}շڷܸ 8DJ/xպ4M3dszͽCɾоվ׾Nƿ˿Ϳ@@:@@A AGAAAAAAB BB[B|BBBBBBC C0CTCpCCD DDDNDVD[D]DyDDDDDDEEEcEEFF FpFGG&G+GwGHHjHoHHI&I+I{IIIJJRJdJiJJJJJK-K{KL,LLLMMMgMMMN)NSNfNvNNNNO*OkOrOPPDPPPPQ3Q:QQRRR_RRS2SSSZSSSTTT2TNTPTTUUUkUV VXVVWWW2W9WHW{WWWX X[XXXXXYY)YDYaYYYYZZ#ZZZZZ[Z[h[[\\\2\\\]o]}]]^^:^t^^^_3_C_O_Q_______``^`e``````aaa-a4aab b6bFbmbbbbbcc c c4c9cccd%d'd5dBdXdpddddee(eOeVepeeeeeef-fWfxffffg5gDgxgggggh6hWhbhihkhhhi iXiijj/jxjjkkckqkkkllRl`lklrltlllllm@m_mmmn nn%nnnnnno.o5o~ooop9pppqqqXqaqfqhqqqr<rorvrssHszsssssttt/trt{tttttuu uou|uuuvvvvvvw#wZwwwxxxSxxxxxyHyyzz%zpz{{{{W{| | |O|||}})}}}}~ ~~b~j~~~~~~%Ppw09>@WkM &M^ 'HZen.OX]_mz7Pk7Tp{5Xfr{08=?MZ TBD`wyA\o,JOQ^r~V[^` BVo79UWd &X{Lrwy27:<{_Cqvx DUUity{ X]`b!@Br<CHJW9a6@Gjoq+2u,$U&.NSU*Tak Zc/XuC`VD~$8:@13yEHJr)Ai#JLY)Cg<c!.AVz.ZafhuHJj)M\c3MTY[1Tr`ou&Jl)f}FAe2UZ\i&:Ak5<OTV!<|V^cer08=?L &y­UÒÔ@YĊĞı &07Z_anť;@BOơƶ6Jǒ 8`ktȠȧȬȮȻ7bɏɬLpʜKRWYfˊˌ˼ 2Uc̞2[bdͲ7cΟΨίδζ )qϷ3:oЄ^ѻgq҃&+-Ӏӂӏ!<MjԀԥ /6;=J^ՀՖ՛՝ժ 7Q}ךױEqx}،-Irٖٝ٢٤ٱ#]گڴڶ)[]qۋۯ R{ܔܨܱܳ(Gݪݶݿ8jނ8lߡ߱߿.57Vq"*/24W}5k&q$r /3{`pr6zh+@ R@SU)c$SZ)0~ SmI*;rN} "ip(U+0352Zmo1HX[]8'BG1{nEk|7SX=0@EeTC "k~X"p  ? X h       Z     4 9 e u      [     ` Rho R<$ls,Yh(ESg-8:.5'krBI9g)=ln{`7[a?iDw|~ gwe  6 =    !!3!;!q!!!!!!"" ""M"Z""#L#T###$4$a$h$$$$$$% %4%9%;%H%{%%&&T&&&&&&&''/'4'6'C'W''''''(((s((()))A)])b)d)u))** *<*X*]*_*l****++;++++,,*,J,,,,,,,---a-...U.../!/m/q/0 0*0y011b111112+2:2_2r2v233g33344#4%4Z4445/575\5y555556:6h66677F7p7u7w77788>8C8E8|889 9/9496999::a:c:::::;<;n;;;;;<?>E>>?2?|???@S@u@@@@A6A>ACAEAAAB;BhBBBBC CLC`CkCpCrCCD+D.D0DfDDDDDDEENEPE]EEF FFFpFFGG G?GpGGH+H5HGHHII)IsI|IIIIIJJJ7J}JJK3KRKhKqKKKL$L+L-LJLLLM MMMtMMNNN;NNNNOOOuOzO}OOPP(P/PPPQ3QQQQQQQR#R%R2RyR{RRRRS&S]S_SlSSSSTTTTQTtTTU<UAUCUPU{UUV7V<V>VKVpVWW5WSWgWWWWWWX X:XQXXXyXXXXXXXY)YAY_YYZ8ZZZZZZ[[M[[\ \8\\\\\\]]X]q]]^ ^^>^E^J^L^^^__;______````#`s`````a8agaaaaabbsbbcNcVc[c^c`ccdd;dWdrdddddeVe[e]ejeefKf|ffffggLgggggh)hphiiiZiijFjTjXjjk?kkkllQllm mUmmmnnn<nYnnnnnnnno+oUooooooop;p=pJp}ppppqq$qNqlqqqsqqqqqrr rr,r9rUrorrrrrss8sLsSsssssssttttOtQttuukuuvv0vWv~vvvw,wJwTwwx>xHxxy4yyyyzMzzz{ {{{ {"{/{x{{||"|$|1|K|l|q|s||||} }(}7}>}O}t}}}~~4~^~x~~~~~*>IdikxQX]_l"`ehj @BOkU9[jq U!s q W4t x[vL3cg/9W<V"$1d .0=tv9w|~/WYRcpWr)H`p:nb'DIK`m f}B,dRchjw"VSdikx,gqy  .`OverlayChildLayoutInfo OverlayEntry_OverlayEntryWidget_OverlayEntryWidgetStateOverlay OverlayState_WrappingOverlay_WrappingOverlayState_Theater_TheaterElement_RenderTheaterMixin_TheaterParentData_RenderTheaterOverlayPortalControllerOverlayChildLocation OverlayPortal_OverlayPortalState_OverlayEntryLocation_RenderTheaterMarker_OverlayPortal_OverlayPortalElement_DeferredLayout_RenderDeferredLayoutBox_RenderLayoutSurrogateProxyBox_OverlayChildLayoutBuilder_RenderLayoutBuilderflutter.widgets.Overlay.ofIf `rootOverlay` is set to true, the state from the furthest instance of this class is given instead. Useful for installing overlay entries above all subsequent instances of [Overlay].+flutter.widgets.overlayPortalVsOverlayEntry.### Differences between [OverlayPortal] and [OverlayEntry] The main difference between [OverlayEntry] and [OverlayPortal] is that [OverlayEntry] builds its widget subtree as a child of the target [Overlay], while [OverlayPortal] uses [OverlayPortal.overlayChildBuilder] to build a child widget of itself. This allows [OverlayPortal]'s overlay child to depend on the same set of [InheritedWidget]s as [OverlayPortal], and it's also guaranteed that the overlay child will not outlive its [OverlayPortal]. On the other hand, [OverlayPortal]'s implementation is more complex. For instance, it does a bit more work than a regular widget during global key reparenting. If the content to be shown on the [Overlay] doesn't benefit from being a part of [OverlayPortal]'s subtree, consider using an [OverlayEntry] instead.#