( listenablebuild createStatedebugFillProperties initStatedidUpdateWidgetdispose _handleChangeposition textDirectiontransformHitTestschild onTransform animation alignment filterQualityscale_handleScaleMatrixturns_handleTurnsMatrixaxis sizeFactor axisAlignmentfixedCrossAxisSizeFactoropacityalwaysIncludeSemanticscreateRenderObjectupdateRenderObjectlerprectsize decoration widthFactor heightFactorstyle textAlignsoftWrapoverflowmaxLinesbuilderAnimatedWidget_AnimatedStateDelegatedTransitionBuilderSlideTransitionTransformCallbackMatrixTransitionScaleTransitionRotationTransitionSizeTransitionFadeTransitionSliverFadeTransitionRelativeRectTweenPositionedTransitionRelativePositionedTransitionDecoratedBoxTransitionAlignTransitionDefaultTextStyleTransitionListenableBuilderAnimatedBuilder€” RelativeRect Listenable AnimationChangeNotifier ValueNotifierImplicitlyAnimatedWidgetAnimationControllerAlign DecoratedBoxDefaultTextStyle PositionedOpacityAnimatedModalBarrier ModalBarrierStatefulWidget protectedWidget BuildContextoverrideStatevoidDiagnosticPropertiesBuilderdebugFillPropertiesaddDiagnosticsProperty initStatewidget listenable addListenerdidUpdateWidgetremoveListenerdisposemountedsetStatebuild ModalRoutedelegatedTransitiondoubleboolOffsetCurvedAnimationCurves elasticIn alignment TextDirectionrtlltrvaluedxdyFractionalTranslation translationtransformHitTestschild onTransformMatrix4 animation AlignmentcenterAnimationStatus dismissed completed FilterQuality Transform transform filterQuality isAnimating fastOutSlowIndiagonal3Values elasticOut rotationZpiClipRect Container FlutterLogoScaffoldAnimatedCrossFadeAxisvertical horizontalAlignmentDirectional heightFactormax widthFactorFlow IgnorePointerAnimatedOpacitySingleChildRenderObjectWidgetRenderAnimatedOpacityopacityalwaysIncludeSemantics FlagPropertyifTrueCustomScrollViewSliverFixedExtentList RenderBoxSliverIgnorePointer SliverOpacitysliverRenderSliverAnimatedOpacitylerpTweenbeginendfillStack elasticInOutAnimatedPositionedfromRelativeRectrectRectzeroSizefromSizetoprightbottomleft Decoration decelerateAnimatedContainernewDecorationPosition backgroundDecorationTween BoxDecoration decorationposition AnimatedAlignAlignmentGeometry TextStyleAnimatedDefaultTextStyle TextOverflowclip TextAlignsoftWrapmaxLinesintstyle textAlignoverflowText FocusNodeFocusValueListenableBuilderTransitionBuilderTweenAnimationBuilderbuilderStatefulWidgetStateAnimatedWidgetMatrixTransitionSingleChildRenderObjectWidgetTweenListenableBuilder«l†‡[7•Q‘¡ô®›�ê�û RelativeRect�Âpackage:flutter/rendering.dart��)�,math�, dart:math�6package:flutter/rendering.dart�b basic.dart�xcontainer.dart�’framework.dart�¬ text.dartÀ¨_À¿A„Û=€ˆ€§€©€Ú� ���3�5�_�a�w�‘�«�À�Â�þ‚‚G‚L‚�‚•‚åƒ,ƒWƒ\ƒ®ƒ÷ƒü„„\„”„™„ì„ý……H…w…|…°…µ††C†„†Ì‡‡i‡¹ˆˆHˆ�ˆ•ˆµˆº‰ ‰N‰Ÿ‰ñŠ3Š8Š…Š­Šø‹‹c‹µ‹ûŒŒeŒ­ŒÃ� �K�‚�Ñ�îŽ3ŽƒŽ»�� �9�y�{�¶�½�ó���b� �®�Õ�ב‘‘Y‘[‘h‘®‘Ú’*’/’2’4’j’w’�’¥’Ø’Ý’ß’ì“ “G“}“¸“í“ô“ù“û”””R”h”m”o”‰”ž”­”´”Ç•••"•$•1•q•t•v•½•––b–¯–þ—3—8—‚—¨—¿—ܘ˜-˜L˜b˜j˜l˜´˜¹™ ™T™Œ™‘™áš%šsšÁ›››h›¨œœœ.œ|œˆœ�œáœòœ÷�� �Z�~�Ìžžbž±žáŸŸ0Ÿ@ŸjŸŽŸ§Ÿ¸ŸÝŸß  $ s ¼¡¡I¡K¡•¡œ¡é¢7¢F¢M¢ž¢ì¢ó£D£“£º£¼¤¤ ¤Y¤©¤ø¥?¥`¥b¥“¥š¥Ì¥ä¥æ¥ó¦¦@¦o¦ž¦¥¦È¦ä§§&§.§3§6§8§{§€§Ò¨¨J¨L¨�¨†¨×©©©.©€©­©²ªªªª,ª1ª�ªµªÿ«:«k«�«–«Ö«ò¬¬-¬M¬u¬Ž¬Ÿ¬Å¬Ç­­E­m­o­«­²­ÿ®®W®Y®¢®á®è¯9¯`¯~¯€¯Ó¯Ú°)°{°‚°Ã°ê°ì±±$±V±n±p±}±¥±ó²B²•²Î²å³³2³v³‹³“³˜³›³�³Î³Ó´"´f´Ò´×´ìµ:µFµKµŸµ°µµµÄµÉ¶¶_¶­¶ü·H·b·”···¾·þ¸¸)¸P¸y¸“¸¥¸ç¸é¹$¹Q¹S¹�¹”¹Ùººcºfºhº�º•ºç»(»—»œ»±¼¼¼¼j¼{¼€¼�¼”¼á¼ñ½=½W½Œ½²½Ð½à¾¾0¾J¾\¾ž¾ ¾Þ¿ ¿ ¿J¿Q¿ž¿ÎÀ@.À@1À@3À@nÀ@sÀ@ÄÀAÀAKÀAPÀAŸÀAëÀB9ÀB†ÀB”ÀB™ÀBìÀC0ÀC›ÀC ÀCµÀDÀDDÀD�ÀD†ÀDÙÀDêÀDïÀDþÀEÀEQÀE‰ÀEÚÀEïÀF=ÀF…ÀFÓÀG"ÀGQÀGsÀGzÀGÆÀHÀH)ÀHCÀHSÀHsÀHŸÀH¾ÀHâÀHóÀIHÀIoÀIqÀI¸ÀIÐÀIäÀIæÀJ*ÀJ1ÀJƒÀJÒÀJùÀKÀKPÀKpÀK¸ÀKºÀLÀLÀLÀLpÀLÁÀMÀM0ÀM7ÀM…ÀMŒÀMÞÀMýÀMÿÀNHÀNOÀN�ÀNÐÀN×ÀO&ÀOQÀOSÀO„ÀO‹ÀO½ÀOÕÀO×ÀOäÀP ÀP"ÀP7ÀP[ÀP¤ÀPëÀP÷ÀQÀQoÀQ…ÀQèÀQÿÀR ÀRÀRÀRÀRÀRBÀRGÀR˜ÀRËÀRÐÀSÀSÀSiÀS­ÀS²ÀSÇÀTÀTÀT!ÀTtÀT…ÀTŠÀTžÀT£ÀTîÀU:ÀUŠÀUÔÀUêÀUïÀVAÀV‘ÀVäÀW"ÀW'ÀWwÀWÂÀXÀXbÀX®ÀXíÀXòÀYÀYÀYDÀY“ÀYºÀYýÀZ;ÀZaÀZ{ÀZ‹ÀZ§ÀZÑÀZãÀZêÀZìÀ[)À[0À[}À[ÎÀ\ À\?À\cÀ\eÀ\±À\¸À\ÒÀ\ÙÀ]!À]lÀ]µÀ]ëÀ^À^À^ À^dÀ^ÉÀ^ÎÀ^ÐÀ^ÝÀ_4À_FÀ_aÀ_›À_ À_¢À_¯À_õÀ`!À`rÀ`‡À`œÀ`¿À`çÀaÀaÀa$Àa)Àa,Àa.Àa\ÀaaÀavÀaÃÀaüÀbÀb[ÀblÀbqÀb½Àc Àc-Àc2Àc�Àc¢Àc¶Àc»ÀdÀdXÀd¨ÀdøÀeÀeÀeeÀeµÀe÷ÀfFÀfQÀfVÀf¦ÀföÀgEÀg•ÀgáÀh Àh%Àh4Àh9Àh}Àh·ÀhûÀi!ÀiAÀiQÀimÀi—Ài¬ÀiÊÀiÌÀjÀjÀjdÀjµÀkÀk&ÀkJÀkLÀkœÀk£Àk½ÀkÄÀlÀl`Àl©ÀlßÀmÀmÀmÀm^Àm‡Àm Àm×ÀmßÀmäÀmæÀmóÀnPÀnbÀn}Àn·Àn¼Àn¾ÀnËÀoÀo=ÀoŽÀo£Ào¸ÀoÛÀpÀp.Àp8Àp@ÀpEÀpHÀpJÀp|Àp�ÀpËÀpéÀpîÀq5ÀqlÀq“ÀqšÀqÞÀrÀr8Àr:Àr‰Àr–ÀrÛÀrÞÀràÀsÀslÀs±Às¶ÀsæÀsëÀt>Àt�ÀtòÀt÷Àu Àu_ÀukÀupÀuÉÀuÚÀußÀuîÀuóÀv>ÀvoÀv½Àw ÀwWÀw€ÀwÏÀwóÀx@ÀxPÀxœÀx¶ÀxëÀyÀy9ÀyIÀyuÀy�Ày°Ày²ÀyôÀzBÀzDÀzuÀz|Àz®ÀzÅÀzÇÀzÔÀzüÀ{EÀ{JÀ{MÀ{OÀ{œÀ{âÀ{ùÀ{þÀ|.À|3À|ŽÀ|ÑÀ}KÀ}PÀ}eÀ}ÀÀ}ÌÀ}ÑÀ~3À~DÀ~IÀ~XÀ~]À~«À~óÀBÀfÀ³ÀÃÀ€À€)À€tÀ€�À€ÚÀ� À�À�cÀ�µÀ�ÄÀ�ìÀ�üÀ‚!À‚:À‚TÀ‚uÀ‚wÀ‚¹À‚ÀÀƒÀƒÀƒ.Àƒ5Àƒ…Àƒ¨ÀƒèÀƒêÀ„1À„RÀ„fÀ„hÀ„™À„ À„ÒÀ„éÀ„ëÀ„øÀ… À…xÀ…�À…©À…ÆÀ…åÀ†À†À†À†"À†%À†'À†xÀ†’À†—À†åÀ‡3À‡§À‡¬À‡ÁÀˆÀˆ"Àˆ'ÀˆƒÀˆ”Àˆ™Àˆ¨Àˆ­ÀˆúÀ‰LÀ‰|À‰³ÀŠÀŠÀŠÀŠ-ÀŠ4ÀŠQÀŠsÀŠƒÀŠ¢ÀŠÖÀŠðÀ‹À‹À‹FÀ‹MÀ‹�À‹¹À‹äÀ‹æÀŒ2ÀŒXÀŒZÀŒ‹ÀŒ’ÀŒÄÀŒÛÀŒÝÀŒêÀ�À�lÀ�qÀ�tÀ�vÀ�ÈÀ�ÍÀŽÀŽkÀŽ…ÀŽŠÀŽöÀŽûÀ�À�^À�jÀ�oÀ�ÃÀ�ÔÀ�ÙÀ�èÀ�íÀ�8À�iÀ�·À�ÿÀ‘MÀ‘œÀ‘èÀ’À’MÀ’vÀ’¦À’õÀ“À“À“ À“'À“>À“YÀ“iÀ“ŸÀ“¹À“ÐÀ“èÀ”À”À”JÀ”§À”©À”ðÀ•À•À•YÀ•xÀ•zÀ•«À•²À•äÀ•ûÀ•ýÀ– À–2À–EÀ–hÀ–‰À–¬À–ÁÀ–ÉÀ–ÎÀ–ÑÀ–ÓÀ—(À—AÀ—FÀ—[À—ªÀ—çÀ—ìÀ˜MÀ˜^À˜cÀ˜rÀ˜wÀ˜ÈÀ˜ùÀ™JÀ™gÀ™¢À™ôÀšÀš-Àš=ÀšgÀš�Àš–Àš±ÀšÙÀšíÀ›À›À›QÀ›šÀ›œÀ›ÐÀ›ïÀ›ñÀœ+Àœ2ÀœkÀœƒÀœ…Àœ³ÀœºÀœÚÀœÜÀ�4À�;À�tÀ�ŒÀ�ŽÀ�¿À�ÆÀ�øÀžÀžÀžÀžFÀždÀžÀžœÀž·ÀžÒÀžíÀŸÀŸ ÀŸÀŸÀŸÀŸdÀŸrÀŸwÀŸÇÀ À ZÀ iÀ nÀ ÀÀ¡À¡_À¡±À¡úÀ¡ÿÀ¢À¢_À¢±À£À£ À£aÀ£rÀ£wÀ£ŒÀ£ÕÀ¤'À¤RÀ¤WÀ¤­À¤¾À¤ÃÀ¤åÀ¤êÀ¥7À¥…À¥ÐÀ¦ À¦À¦aÀ¦®À¦øÀ§À§À§gÀ§¶À§ÊÀ§ÏÀ§äÀ¨1À¨À¨ÊÀ©À©aÀ©fÀ©¼À©ÍÀ©ÒÀ©áÀ©æÀª4ÀªrÀªÁÀª÷À«)À«lÀ«‰À«™À«¹À«ÕÀ«æÀ«íÀ«ïÀ¬$À¬+À¬BÀ¬�À¬àÀ¬ýÀ­À­\À­oÀ­vÀ­‡À­ŽÀ­ÙÀ®À®$À®fÀ®À®ŒÀ®¾À®ÀÀ¯À¯ À¯YÀ¯mÀ¯‘À¯“À¯ÅÀ¯ÌÀ°À°0À°2À°?À°�À°„À°†À°½À°ÂÀ±À±aÀ±›À± À±ßÀ±öÀ±ûÀ²?À²DÀ²‘À²ãÀ³3À³rÀ³£À³¨À³ÊÀ³ÏÀ´À´hÀ´´À´øÀ´ýÀµAÀµ“Àµ¸Àµ½À¶À¶RÀ¶fÀ¶kÀ¶€À¶ÍÀ·À·RÀ·WÀ·«À·¼À·ÁÀ·ÐÀ·ÕÀ¸ À¸nÀ¸�À¸ÛÀ¹#À¹VÀ¹zÀ¹�À¹¾À¹ÙÀ¹éÀº Àº*Àº<ÀºbÀºdÀº´Àº»ÀºóÀºúÀ» À»À»bÀ»°À»äÀ¼À¼À¼gÀ¼nÀ¼¥À¼¬À¼½À¼ÄÀ½À½QÀ½WÀ½™À½²À½¿À½ñÀ½óÀ¾5À¾<À¾‹À¾ŸÀ¾¥À¾çÀ¾þÀ¿ À¿>À¿A^/// @docImport 'package:flutter/material.dart'; /// @docImport 'package:flutter/widgets.dart';��-�,�5�a�w�‘�«�Â�ê�û‚�0Ž’Ž’ŒF/// A widget that rebuilds when the given [Listenable] changes value. /// /// {@youtube 560 315 https://www.youtube.com/watch?v=LKKgYpC-EPQ} /// /// [AnimatedWidget] is most commonly used with [Animation] objects, which are /// [Listenable], but it can be used with any [Listenable], including /// [ChangeNotifier] and [ValueNotifier]. /// /// [AnimatedWidget] is most useful for widgets that are otherwise stateless. To /// use [AnimatedWidget], subclass it and implement the build function. /// /// {@tool dartpad} /// This code defines a widget called `Spinner` that spins a green square /// continually. It is built with an [AnimatedWidget]. /// /// ** See code in examples/api/lib/widgets/transitions/animated_widget.0.dart ** /// {@end-tool} /// /// For more complex case involving additional state, consider using /// [AnimatedBuilder] or [ListenableBuilder]. /// /// ## Relationship to [ImplicitlyAnimatedWidget]s /// /// [AnimatedWidget]s (and their subclasses) take an explicit [Listenable] as /// argument, which is usually an [Animation] derived from an /// [AnimationController]. In most cases, the lifecycle of that /// [AnimationController] has to be managed manually by the developer. /// In contrast to that, [ImplicitlyAnimatedWidget]s (and their subclasses) /// automatically manage their own internal [AnimationController] making those /// classes easier to use as no external [Animation] has to be provided by the /// developer. If you only need to set a target value for the animation and /// configure its duration/curve, consider using (a subclass of) /// [ImplicitlyAnimatedWidget]s instead of (a subclass of) this class. /// /// ## Common animated widgets /// /// A number of animated widgets ship with the framework. They are usually named /// `FooTransition`, where `Foo` is the name of the non-animated /// version of that widget. The subclasses of this class should not be confused /// with subclasses of [ImplicitlyAnimatedWidget] (see above), which are usually /// named `AnimatedFoo`. Commonly used animated widgets include: /// /// * [ListenableBuilder], which uses a builder pattern that is useful for /// complex [Listenable] use cases. /// * [AnimatedBuilder], which uses a builder pattern that is useful for /// complex [Animation] use cases. /// * [AlignTransition], which is an animated version of [Align]. /// * [DecoratedBoxTransition], which is an animated version of [DecoratedBox]. /// * [DefaultTextStyleTransition], which is an animated version of /// [DefaultTextStyle]. /// * [PositionedTransition], which is an animated version of [Positioned]. /// * [RelativePositionedTransition], which is an animated version of /// [Positioned]. /// * [RotationTransition], which animates the rotation of a widget. /// * [ScaleTransition], which animates the scale of a widget. /// * [SizeTransition], which animates its own size. /// * [SlideTransition], which animates the position of a widget relative to /// its normal position. /// * [FadeTransition], which is an animated version of [Opacity]. /// * [AnimatedModalBarrier], which is an animated version of [ModalBarrier].޽€º�A�A�Ot/// Creates a widget that rebuilds when the given listenable changes. /// /// The [listenable] argument is required.�Q �X�W�\�k�j�}€“��n/// The [Listenable] to which this widget is listening. /// /// Commonly an [Animation] or a [ChangeNotifier].�€¼�·�·€„/// Override this method to build widgets that depend on the state of the /// listenable (e.g., the current value of the animation).�½�Ë�Ê�¢�£�Ù~‘5‘55/// Subclasses typically do not override this method.‘‘‘]€Ð‘o‘o‘ƒ&‘ ‘Ÿ‘]‘^’4ƒ>’:’:’lo’~’~’l’m’á�’ó’ó“““’á’â“ýn””“ý“þ”q€¯”v”v•&I•:•:•@•N•M•&•'˜lŽÈž·ž·†%/// Animates the position of a widget relative to its normal position. /// /// The translation is expressed as an [Offset] scaled to the child's size. For /// example, an [Offset] with a `dx` of 0.25 will result in a horizontal /// translation of one quarter the width of the child. /// /// By default, the offsets are applied in the coordinate system of the canvas /// (so positive x offsets move the child towards the right). If a /// [textDirection] is provided, then the offsets are applied in the reading /// direction, so in right-to-left text, positive x offsets move towards the /// left, and in left-to-right text, positive x offsets move towards the right. /// /// Here's an illustration of the [SlideTransition] widget, with its [position] /// animated by a [CurvedAnimation] set to [Curves.elasticIn]: /// {@animation 300 378 https://flutter.github.io/assets-for-api-docs/assets/widgets/slide_transition.mp4} /// /// {@tool dartpad} /// The following code implements the [SlideTransition] as seen in the video /// above: /// /// ** See code in examples/api/lib/widgets/transitions/slide_transition.0.dart ** /// {@end-tool} /// /// See also: /// /// * [AlignTransition], an animated version of an [Align] that animates its /// [Align.alignment] property. /// * [PositionedTransition], a widget that animates its child from a start /// position to an end position over the lifetime of the animation. /// * [RelativePositionedTransition], a widget that transitions its child's /// position based on the value of a rectangle relative to a bounding box.žã€øŸŸŸ,0/// Creates a fractional translation transition.Ÿ4 Ÿ;Ÿ:ŸD#Ÿ`Ÿ_ŸnŸtŸsŸ’Ÿ˜Ÿ—Ÿ« Ÿ±Ÿ°Ÿ‡Ÿ¿ŸÄŸÙŸÏŸÅŸÑ¡M‚j£ª£ª‚&/// The direction to use for the x offset described by the [position]. /// /// If [textDirection] is null, the x offset is applied in the coordinate /// system of the canvas (so positive x offsets move the child towards the /// right). /// /// If [textDirection] is [TextDirection.rtl], the x offset is applied in the /// reading direction such that x offsets move the child towards the left. /// /// If [textDirection] is [TextDirection.ltr], the x offset is applied in the /// reading direction such that x offsets move the child towards the right.£¾�Ÿ¥L¥L�p/// Whether hit testing should be affected by the slide animation. /// /// If false, hit testing will proceed as if the child was not translated at /// all. Setting this value to false is useful for fast animations where you /// expect the user to commonly interact with the child widget in its final /// location and you want the user to benefit from "muscle memory".¥d}¥Ü¥Ü`/// The widget below this widget in the tree. /// /// {@macro flutter.widgets.ProxyWidget.child}Ÿá�f¡¡�/// The animation that controls the position of the child. /// /// If the current value of the position animation is `(dx, dy)`, the child /// will be translated horizontally by `width * dx` and vertically by /// `height * dy`, after applying the [textDirection] if available.¥è�I¥ü¥ü¦¦¦¥è¥é¨L‹M«@«@‚Û/// Animates the [Matrix4] of a transformed widget. /// /// The [onTransform] callback computes a [Matrix4] from the animated value, it /// is called every time the [animation] changes its value. /// /// {@tool dartpad} /// The following example implements a [MatrixTransition] with a rotation around /// the Y axis, with a 3D perspective skew. /// /// ** See code in examples/api/lib/widgets/transitions/matrix_transition.0.dart ** /// {@end-tool} /// /// See also: /// /// * [ScaleTransition], which animates the scale of a widget, by providing a /// matrix which scales along the X and Y axis. /// * [RotationTransition], which animates the rotation of a widget, by /// providing a matrix which rotates along the Z axis.«m�V«Þ«Þ«îa/// Creates a matrix transition. /// /// The [alignment] argument defaults to [Alignment.center].«ö «ý«ü¬$¬"¬!¬1¬@¬?¬Q!¬W¬V¬y¬¬~¬’ ¬˜¬— ¬b¬k¬l¬¦¬«¬Á¬¶¬¬¬¸¬É€¡­_­_w/// The callback to compute a [Matrix4] from the [animation]. It's called /// every time [animation] changes its value.®[� ¯r¯r€÷/// The alignment of the origin of the coordinate system in which the /// transform takes place, relative to the size of the box. /// /// For example, to set the origin of the transform to bottom middle, you can /// use an alignment of (0.0, 1.0).¯‚�e°Ú°Ú�0/// The filter quality with which to apply the transform as a bitmap operation. /// /// When the animation is stopped (either in [AnimationStatus.dismissed] or /// [AnimationStatus.completed]), the filter quality argument will be ignored. /// /// {@macro flutter.widgets.Transform.optional.FilterQuality}°î}±f±f`/// The widget below this widget in the tree. /// /// {@macro flutter.widgets.ProxyWidget.child}­q€ä®(®(€”/// The animation that controls the matrix of the child. /// /// The matrix will be computed from the animation with the [onTransform] /// callback.±r‚$±†±†±Œ±š±™±r±s³�†Ç·h·hƒ¯/// Animates the scale of a transformed widget. /// /// Here's an illustration of the [ScaleTransition] widget, with it's [scale] /// animated by a [CurvedAnimation] set to [Curves.fastOutSlowIn]: /// {@animation 300 378 https://flutter.github.io/assets-for-api-docs/assets/widgets/scale_transition.mp4} /// /// {@tool dartpad} /// The following code implements the [ScaleTransition] as seen in the video /// above: /// /// ** See code in examples/api/lib/widgets/transitions/scale_transition.0.dart ** /// {@end-tool} /// /// See also: /// /// * [PositionedTransition], a widget that animates its child from a start /// position to an end position over the lifetime of the animation. /// * [RelativePositionedTransition], a widget that transitions its child's /// position based on the value of a rectangle relative to a bounding box. /// * [SizeTransition], a widget that animates its own size and clips and /// aligns its child.·–�O¸¸¸`/// Creates a scale transition. /// /// The [alignment] argument defaults to [Alignment.center].¸ ¸$¸#¸- ¸I¸H¸T"¸[¸Z¸}¸„¸ƒ¸— ¸ž¸� ¸f¸o¸p¸¬¸±¸ã¸»¸²¸½¸Ï¸Ä¸Ñ¸ëd¹<¹<7/// The animation that controls the scale of the child.¹U� ºº€¡/// The callback that controls the scale of the child. /// /// If the current value of the animation is v, the child will be /// painted v times its normal size.º% º-º,ºh…ǽ]½]‚Û/// Animates the rotation of a widget. /// /// Here's an illustration of the [RotationTransition] widget, with it's [turns] /// animated by a [CurvedAnimation] set to [Curves.elasticOut]: /// {@animation 300 378 https://flutter.github.io/assets-for-api-docs/assets/widgets/rotation_transition.mp4} /// /// {@tool dartpad} /// The following code implements the [RotationTransition] as seen in the video /// above: /// /// ** See code in examples/api/lib/widgets/transitions/rotation_transition.0.dart ** /// {@end-tool} /// /// See also: /// /// * [ScaleTransition], a widget that animates the scale of a transformed /// widget. /// * [SizeTransition], a widget that animates its own size and clips and /// aligns its child.½Ž�½º½º½Ì"/// Creates a rotation transition.½Ô ½Û½Ú½ä ¾½ÿ¾ "¾¾¾4¾;¾:¾N ¾U¾T ¾¾&¾'¾c¾h¾š¾r¾i¾t¾†¾{¾ˆ¾¢g¾ö¾ö:/// The animation that controls the rotation of the child.¿�¿ß¿ß€´/// The callback that controls the rotation of the child. /// /// If the current value of the animation is v, the child will be rotated /// v * 2 * pi radians before being painted.¿ò ¿ú¿ùÀ@3‘äÀG(ÀG(†Ì/// Animates its own size and clips and aligns its child. /// /// [SizeTransition] acts as a [ClipRect] that animates either its width or its /// height, depending upon the value of [axis]. The alignment of the child along /// the [axis] is specified by the [axisAlignment]. /// /// Like most widgets, [SizeTransition] will conform to the constraints it is /// given, so be sure to put it in a context where it can change size. For /// instance, if you place it into a [Container] with a fixed size, then the /// [SizeTransition] will not be able to change size, and will appear to do /// nothing. /// /// Here's an illustration of the [SizeTransition] widget, with it's [sizeFactor] /// animated by a [CurvedAnimation] set to [Curves.fastOutSlowIn]: /// {@animation 300 378 https://flutter.github.io/assets-for-api-docs/assets/widgets/size_transition.mp4} /// /// {@tool dartpad} /// This code defines a widget that uses [SizeTransition] to change the size /// of [FlutterLogo] continually. It is built with a [Scaffold] /// where the internal widget has space to change its size. /// /// ** See code in examples/api/lib/widgets/transitions/size_transition.0.dart ** /// {@end-tool} /// /// See also: /// /// * [AnimatedCrossFade], for a widget that automatically animates between /// the sizes of two children, fading between them. /// * [ScaleTransition], a widget that scales the size of the child instead of /// clipping it. /// * [PositionedTransition], a widget that animates its child from a start /// position to an end position over the lifetime of the animation. /// * [RelativePositionedTransition], a widget that transitions its child's /// position based on the value of a rectangle relative to a bounding box.ÀGS‚ÀH1ÀH1ÀH?€È/// Creates a size transition. /// /// The [axis] argument defaults to [Axis.vertical]. The [axisAlignment] /// defaults to zero, which centers the child along the main axis during the /// transition.ÀHG ÀHNÀHMÀHWÀH]ÀH\ÀHw%ÀH“ÀH’ÀH£ÀH©ÀH¨ÀHÂÀHÈÀHÇÀHæ ÀHìÀHëÀHcÀHgÀHhÀH¸ÀHúÀIÀIDÀI"ÀIÀIÀIÀI>ÀI%ÀIAÀIOÀITÀIkÀI_ÀIUÀIaÀIsnÀIÝÀIÝX/// [Axis.horizontal] if [sizeFactor] modifies the width, otherwise /// [Axis.vertical].ÀK¼‚>ÀMíÀMí‚/// Describes how to align the child along the axis that [sizeFactor] is /// modifying. /// /// A value of -1.0 indicates the top when [axis] is [Axis.vertical], and the /// start when [axis] is [Axis.horizontal]. The start is on the left when the /// text direction in effect is [TextDirection.ltr] and on the right when it /// is [TextDirection.rtl]. /// /// A value of 1.0 indicates the bottom or end, depending upon the [axis]. /// /// A value of 0.0 (the default) indicates the center for either [axis] value.ÀN�MÀO6ÀO6�/// The factor by which to multiply the cross axis size of the child. /// /// If the value of [fixedCrossAxisSizeFactor] is less than one, the child /// will be clipped along the appropriate axis. /// /// If `null` (the default), the cross axis size is as large as the parent.ÀOU}ÀOÍÀOÍ`/// The widget below this widget in the tree. /// /// {@macro flutter.widgets.ProxyWidget.child}ÀIè�ÎÀKˆÀKˆ�q/// The animation that controls the (clipped) size of the child. /// /// The width or height (depending on the [axis] value) of this widget will be /// its intrinsic width or height multiplied by [sizeFactor]'s value at the /// current point in the animation. /// /// If the value of [sizeFactor] is less than one, the child will be clipped /// in the appropriate axis.ÀOÙ‚;ÀOíÀOíÀOóÀPÀPÀOÙÀOÚÀR�ÀZÀZ‡¶/// Animates the opacity of a widget. /// /// For a widget that automatically animates between the sizes of two children, /// fading between them, see [AnimatedCrossFade]. /// /// {@youtube 560 315 https://www.youtube.com/watch?v=rLwWVbv3xDQ} /// /// Here's an illustration of the [FadeTransition] widget, with it's [opacity] /// animated by a [CurvedAnimation] set to [Curves.fastOutSlowIn]: /// /// {@tool dartpad} /// The following code implements the [FadeTransition] using /// the Flutter logo: /// /// ** See code in examples/api/lib/widgets/transitions/fade_transition.0.dart ** /// {@end-tool} /// /// ## Hit testing /// /// Setting the [opacity] to zero does not prevent hit testing from being /// applied to the descendants of the [FadeTransition] widget. This can be /// confusing for the user, who may not see anything, and may believe the area /// of the interface where the [FadeTransition] is hiding a widget to be /// non-interactive. /// /// With certain widgets, such as [Flow], that compute their positions only when /// they are painted, this can actually lead to bugs (from unexpected geometry /// to exceptions), because those widgets are not painted by the [FadeTransition] /// widget at all when the [opacity] animation reaches zero. /// /// To avoid such problems, it is generally a good idea to combine this widget /// with an [IgnorePointer] that one enables when the [opacity] animation /// reaches zero. This prevents interactions with any children in the subtree /// when the [child] is not visible. For performance reasons, when implementing /// this, care should be taken not to rebuild the relevant widget (e.g. by /// calling [State.setState]) except at the transition point. /// /// See also: /// /// * [Opacity], which does not animate changes in opacity. /// * [AnimatedOpacity], which animates changes in opacity without taking an /// explicit [Animation] argument. /// * [SliverFadeTransition], the sliver version of this widget.ÀZ=€«ÀZiÀZiÀZw"/// Creates an opacity transition.ÀZ ÀZ†ÀZ…ÀZ�ÀZžÀZ�ÀZ«#ÀZ±ÀZ°ÀZÕ ÀZÜÀZÛÀZÉÀZî�rÀ\YÀ\Y�@/// The animation that controls the opacity of the child. /// /// If the current value of the opacity animation is v, the child will be /// painted with an opacity of v. For example, if v is 0.5, the child will be /// blended 50% with its background. Similarly, if v is 0.0, the child will be /// completely transparent.À\g�§À]øÀ]ø�m/// Whether the semantic information of the children is always included. /// /// Defaults to false. /// /// When true, regardless of the opacity settings the child semantic /// information is exposed as if the widget were fully visible. This is /// useful in cases where labels may be hidden during animations that /// would otherwise contribute relevant semantics.À^€·À^8À^8À^KÀ^YÀ^XÀ^À^À^Ò€ÌÀ^äÀ^äÀ^÷À_À_À_ "À_$À_#À^ÒÀ^ÓÀ_¤�ƒÀ_¶À_¶À_Ê&À_çÀ_æÀ_¤À_¥Àa.�Àh½Àh½‡`/// Animates the opacity of a sliver widget. /// /// {@tool dartpad} /// Creates a [CustomScrollView] with a [SliverFixedExtentList] that uses a /// [SliverFadeTransition] to fade the list in and out. /// /// ** See code in examples/api/lib/widgets/transitions/sliver_fade_transition.0.dart ** /// {@end-tool} /// /// Here's an illustration of the [FadeTransition] widget, the [RenderBox] /// equivalent widget, with it's [opacity] animated by a [CurvedAnimation] set /// to [Curves.fastOutSlowIn]: /// /// {@animation 300 378 https://flutter.github.io/assets-for-api-docs/assets/widgets/fade_transition.mp4} /// /// ## Hit testing /// /// Setting the [opacity] to zero does not prevent hit testing from being /// applied to the descendants of the [SliverFadeTransition] widget. This can be /// confusing for the user, who may not see anything, and may believe the area /// of the interface where the [SliverFadeTransition] is hiding a widget to be /// non-interactive. /// /// With certain widgets, such as [Flow], that compute their positions only when /// they are painted, this can actually lead to bugs (from unexpected geometry /// to exceptions), because those widgets are not painted by the /// [SliverFadeTransition] widget at all when the [opacity] animation reaches /// zero. /// /// To avoid such problems, it is generally a good idea to combine this widget /// with a [SliverIgnorePointer] that one enables when the [opacity] animation /// reaches zero. This prevents interactions with any children in the subtree /// when the sliver is not visible. For performance reasons, when implementing /// this, care should be taken not to rebuild the relevant widget (e.g. by /// calling [State.setState]) except at the transition point. /// /// See also: /// /// * [SliverOpacity], which does not animate changes in opacity. /// * [FadeTransition], the box version of this widget.Àhý€ËÀi)Ài)Ài="/// Creates an opacity transition.ÀiE ÀiLÀiKÀiUÀidÀicÀiq#ÀiwÀivÀi›Ài¤Ài£Ài�Ài³Ài¸ÀiÆÀi¾Ài¹ÀiÀÀiÎ�yÀk@Àk@�G/// The animation that controls the opacity of the sliver child. /// /// If the current value of the opacity animation is v, the child will be /// painted with an opacity of v. For example, if v is 0.5, the child will be /// blended 50% with its background. Similarly, if v is 0.0, the child will be /// completely transparent.ÀkN�´ÀlìÀlì�z/// Whether the semantic information of the sliver child is always included. /// /// Defaults to false. /// /// When true, regardless of the opacity settings the sliver child's semantic /// information is exposed as if the widget were fully visible. This is /// useful in cases where labels may be hidden during animations that /// would otherwise contribute relevant semantics.Àm €ÙÀm2Àm2ÀmEÀmSÀmRÀm Àm Àmè€ÒÀmúÀmúÀn ÀnÀnÀn#(Àn@Àn?ÀmèÀméÀnÀ�ƒÀnÒÀnÒÀnæ&ÀoÀoÀnÀÀnÁÀpJ‚’Àq;Àq;€ä/// An interpolation between two relative rects. /// /// This class specializes the interpolation of [Tween] to /// use [RelativeRect.lerp]. /// /// See [Tween] for a discussion on how to use interpolation objects.Àqn€ÈÀr Àr Àr€�/// Creates a [RelativeRect] tween. /// /// The [begin] and [end] properties may be null; the null value /// is treated as [RelativeRect.fill].Àr Àr$Àr#Àr* Àr1Àr0Àr<€�Àr¥Àr¥K/// Returns the value this variable has at the given animation clock value.ÀrªÀr²Àr±Àr‹ÀrŒÀràˆkÀx¼Àx¼…¶/// Animated version of [Positioned] which takes a specific /// [Animation] to transition the child's position from a start /// position to an end position over the lifetime of the animation. /// /// Only works if it's the child of a [Stack]. /// /// Here's an illustration of the [PositionedTransition] widget, with it's [rect] /// animated by a [CurvedAnimation] set to [Curves.elasticInOut]: /// {@animation 300 378 https://flutter.github.io/assets-for-api-docs/assets/widgets/positioned_transition.mp4} /// /// {@tool dartpad} /// The following code implements the [PositionedTransition] as seen in the video /// above: /// /// ** See code in examples/api/lib/widgets/transitions/positioned_transition.0.dart ** /// {@end-tool} /// /// See also: /// /// * [AnimatedPositioned], which transitions a child's position without /// taking an explicit [Animation] argument. /// * [RelativePositionedTransition], a widget that transitions its child's /// position based on the value of a rectangle relative to a bounding box. /// * [SlideTransition], a widget that animates the position of a widget /// relative to its normal position. /// * [AlignTransition], an animated version of an [Align] that animates its /// [Align.alignment] property. /// * [ScaleTransition], a widget that animates the scale of a transformed /// widget. /// * [SizeTransition], a widget that animates its own size and clips and /// aligns its child.Àxí€ÁÀy!Ày!Ày5*/// Creates a transition for [Positioned].Ày= ÀyDÀyCÀyM%ÀyoÀynÀyyÀyˆÀy‡Ày–Ày›Ày¬Ày¦ÀyœÀy¨ÀzF|Àz½Àz½`/// The widget below this widget in the tree. /// /// {@macro flutter.widgets.ProxyWidget.child}Ày´€ŒÀzÀz>/// The animation that controls the child's size and position.ÀzÉÀzÝÀzÝÀzãÀzñÀzðÀzÉÀzÊÀ{OŠÔÀ€£À€£…0/// Animated version of [Positioned] which transitions the child's position /// based on the value of [rect] relative to a bounding box with the /// specified [size]. /// /// Only works if it's the child of a [Stack]. /// /// Here's an illustration of the [RelativePositionedTransition] widget, with it's [rect] /// animated by a [CurvedAnimation] set to [Curves.elasticInOut]: /// {@animation 300 378 https://flutter.github.io/assets-for-api-docs/assets/widgets/relative_positioned_transition.mp4} /// /// {@tool dartpad} /// The following code implements the [RelativePositionedTransition] as seen in the video /// above: /// /// ** See code in examples/api/lib/widgets/transitions/relative_positioned_transition.0.dart ** /// {@end-tool} /// /// See also: /// /// * [PositionedTransition], a widget that animates its child from a start /// position to an end position over the lifetime of the animation. /// * [AlignTransition], an animated version of an [Align] that animates its /// [Align.alignment] property. /// * [ScaleTransition], a widget that animates the scale of a transformed /// widget. /// * [SizeTransition], a widget that animates its own size and clips and /// aligns its child. /// * [SlideTransition], a widget that animates the position of a widget /// relative to its normal position.À€Ü�—À�ÌÀ�ÌÀ�è€Ú/// Create an animated version of [Positioned]. /// /// Each frame, the [Positioned] widget will be configured to represent the /// current value of the [rect] argument assuming that the stack has the given /// [size].À�ð À�÷À�öÀ‚À‚À‚À‚%À‚4À‚3À‚>À‚MÀ‚LÀ‚[À‚`À‚qÀ‚kÀ‚aÀ‚mÀƒìwÀ„_À„_a/// The [Positioned] widget's offsets are relative to a box of this /// size whose origin is 0,0.À„j|À„áÀ„á`/// The widget below this widget in the tree. /// /// {@macro flutter.widgets.ProxyWidget.child}À‚y�mÀƒ¿Àƒ¿�/// The animation that controls the child's size and position. /// /// If the animation returns a null [Rect], the rect is assumed to be [Rect.zero]. /// /// See also: /// /// * [size], which gets the size of the box that the [Positioned] widget's /// offsets are relative to.À„í�3À…À…À…À…À…À„íÀ„îÀ†'‡KÀ‰‚À‰‚ƒA/// Animated version of a [DecoratedBox] that animates the different properties /// of its [Decoration]. /// /// Here's an illustration of the [DecoratedBoxTransition] widget, with it's /// [decoration] animated by a [CurvedAnimation] set to [Curves.decelerate]: /// {@animation 300 378 https://flutter.github.io/assets-for-api-docs/assets/widgets/decorated_box_transition.mp4} /// /// {@tool dartpad} /// The following code implements the [DecoratedBoxTransition] as seen in the video /// above: /// /// ** See code in examples/api/lib/widgets/transitions/decorated_box_transition.0.dart ** /// {@end-tool} /// /// See also: /// /// * [DecoratedBox], which also draws a [Decoration] but is not animated. /// * [AnimatedContainer], a more full-featured container that also animates on /// decoration using an internal animation.À‰µ�`ÀŠYÀŠYÀŠo€‹/// Creates an animated [DecoratedBox] whose [Decoration] animation updates /// the widget. /// /// See also: /// /// * [DecoratedBox.new]ÀŠw ÀŠ~ÀŠ}ÀЇÀŠ–ÀŠ•ÀЦ-ÀЬÀŠ«ÀŠÚÀŠéÀŠè ÀжÀŠÈÀŠÉÀŠ÷ÀŠüÀ‹À‹ÀŠýÀ‹ À‹€ÆÀ‹×À‹×€“/// Animation of the decoration to paint. /// /// Can be created using a [DecorationTween] interpolating typically between /// two [BoxDecoration].À‹èmÀŒMÀŒMH/// Whether to paint the box decoration behind or in front of the child.ÀŒ\|ÀŒÓÀŒÓ`/// The widget below this widget in the tree. /// /// {@macro flutter.widgets.ProxyWidget.child}ÀŒß€�ÀŒóÀŒóÀŒùÀ�À�ÀŒßÀŒàÀ�v‰YÀ’|À’|„ä/// Animated version of an [Align] that animates its [Align.alignment] property. /// /// Here's an illustration of the [DecoratedBoxTransition] widget, with it's /// [DecoratedBoxTransition.decoration] animated by a [CurvedAnimation] set to /// [Curves.decelerate]: /// /// {@animation 300 378 https://flutter.github.io/assets-for-api-docs/assets/widgets/align_transition.mp4} /// /// {@tool dartpad} /// The following code implements the [AlignTransition] as seen in the video /// above: /// /// ** See code in examples/api/lib/widgets/transitions/align_transition.0.dart ** /// {@end-tool} /// /// See also: /// /// * [AnimatedAlign], which animates changes to the [alignment] without /// taking an explicit [Animation] argument. /// * [PositionedTransition], a widget that animates its child from a start /// position to an end position over the lifetime of the animation. /// * [RelativePositionedTransition], a widget that transitions its child's /// position based on the value of a rectangle relative to a bounding box. /// * [SizeTransition], a widget that animates its own size and clips and /// aligns its child. /// * [SlideTransition], a widget that animates the position of a widget /// relative to its normal position.À’¨�dÀ“FÀ“FÀ“U€…/// Creates an animated [Align] whose [AlignmentGeometry] animation updates /// the widget. /// /// See also: /// /// * [Align.new].À“] À“dÀ“cÀ“m/À“”À““À“£À“²À“±À“½À“ÃÀ“ÂÀ“ÔÀ“ÚÀ“ÙÀ“ïÀ“ôÀ” À“ÿÀ“õÀ”À”«`À•À•C/// If non-null, the child's width factor, see [Align.widthFactor].À•cÀ•iÀ•iE/// If non-null, the child's height factor, see [Align.heightFactor].À•||À•óÀ•ó`/// The widget below this widget in the tree. /// /// {@macro flutter.widgets.ProxyWidget.child}À”€“À”mÀ”m6/// The animation that controls the child's alignment.À•ÿ€ÍÀ–À–À–À–'À–&À•ÿÀ–À–Óˆ=À™mÀ™m‚ƒ/// Animated version of a [DefaultTextStyle] that animates the different properties /// of its [TextStyle]. /// /// {@tool dartpad} /// The following code implements the [DefaultTextStyleTransition] that shows /// a transition between thick blue font and thin red font. /// /// ** See code in examples/api/lib/widgets/transitions/default_text_style_transition.0.dart ** /// {@end-tool} /// /// See also: /// /// * [AnimatedDefaultTextStyle], which animates changes in text style without /// taking an explicit [Animation] argument. /// * [DefaultTextStyle], which also defines a [TextStyle] for its descendants /// but is not animated.À™¤�iÀšÀšÀš)^/// Creates an animated [DefaultTextStyle] whose [TextStyle] animation updates /// the widget.Àš1 Àš8Àš7ÀšA#Àš`Àš_ÀškÀšzÀšyÀš…Àš‹ÀšŠÀššÀš ÀšŸÀšµ!Àš»ÀšºÀšÝ ÀšãÀšâ ÀšªÀšÅÀšÑÀšÒÀšôÀšùÀ› À›ÀšúÀ›À›žNÀ›ãÀ›ã0/// How the text should be aligned horizontally.À›ó€�ÀœxÀœxp/// Whether the text should break at soft line breaks. /// /// See [DefaultTextStyle.softWrap] for more details.Àœ‡PÀœÏÀœÏ./// How visual overflow should be handled. ///ÀœÞ€«À��À��€Ž/// An optional maximum number of lines for the text to span, wrapping if necessary. /// /// See [DefaultTextStyle.maxLines] for more details.À��|ÀžÀž`/// The widget below this widget in the tree. /// /// {@macro flutter.widgets.ProxyWidget.child}À›€…À›lÀ›lÀt�ÀtòÀt÷Àu Àu_ÀukÀupÀuÉÀuÚÀußÀuîÀuóÀv>ÀvoÀv½Àw ÀwWÀw€ÀwÏÀwóÀx@ÀxPÀxœÀx¶ÀxëÀyÀy9ÀyIÀyuÀy�Ày°Ày²ÀyôÀzBÀzDÀzuÀz|Àz®ÀzÅÀzÇÀzÔÀzüÀ{EÀ{JÀ{MÀ{OÀ{œÀ{âÀ{ùÀ{þÀ|.À|3À|ŽÀ|ÑÀ}KÀ}PÀ}eÀ}ÀÀ}ÌÀ}ÑÀ~3À~DÀ~IÀ~XÀ~]À~«À~óÀBÀfÀ³ÀÃÀ€À€)À€tÀ€�À€ÚÀ� À�À�cÀ�µÀ�ÄÀ�ìÀ�üÀ‚!À‚:À‚TÀ‚uÀ‚wÀ‚¹À‚ÀÀƒÀƒÀƒ.Àƒ5Àƒ…Àƒ¨ÀƒèÀƒêÀ„1À„RÀ„fÀ„hÀ„™À„ À„ÒÀ„éÀ„ëÀ„øÀ… À…xÀ…�À…©À…ÆÀ…åÀ†À†À†À†"À†%À†'À†xÀ†’À†—À†åÀ‡3À‡§À‡¬À‡ÁÀˆÀˆ"Àˆ'ÀˆƒÀˆ”Àˆ™Àˆ¨Àˆ­ÀˆúÀ‰LÀ‰|À‰³ÀŠÀŠÀŠÀŠ-ÀŠ4ÀŠQÀŠsÀŠƒÀŠ¢ÀŠÖÀŠðÀ‹À‹À‹FÀ‹MÀ‹�À‹¹À‹äÀ‹æÀŒ2ÀŒXÀŒZÀŒ‹ÀŒ’ÀŒÄÀŒÛÀŒÝÀŒêÀ�À�lÀ�qÀ�tÀ�vÀ�ÈÀ�ÍÀŽÀŽkÀŽ…ÀŽŠÀŽöÀŽûÀ�À�^À�jÀ�oÀ�ÃÀ�ÔÀ�ÙÀ�èÀ�íÀ�8À�iÀ�·À�ÿÀ‘MÀ‘œÀ‘èÀ’À’MÀ’vÀ’¦À’õÀ“À“À“ À“'À“>À“YÀ“iÀ“ŸÀ“¹À“ÐÀ“èÀ”À”À”JÀ”§À”©À”ðÀ•À•À•YÀ•xÀ•zÀ•«À•²À•äÀ•ûÀ•ýÀ– À–2À–EÀ–hÀ–‰À–¬À–ÁÀ–ÉÀ–ÎÀ–ÑÀ–ÓÀ—(À—AÀ—FÀ—[À—ªÀ—çÀ—ìÀ˜MÀ˜^À˜cÀ˜rÀ˜wÀ˜ÈÀ˜ùÀ™JÀ™gÀ™¢À™ôÀšÀš-Àš=ÀšgÀš�Àš–Àš±ÀšÙÀšíÀ›À›À›QÀ›šÀ›œÀ›ÐÀ›ïÀ›ñÀœ+Àœ2ÀœkÀœƒÀœ…Àœ³ÀœºÀœÚÀœÜÀ�4À�;À�tÀ�ŒÀ�ŽÀ�¿À�ÆÀ�øÀžÀžÀžÀžFÀždÀžÀžœÀž·ÀžÒÀžíÀŸÀŸ ÀŸÀŸÀŸÀŸdÀŸrÀŸwÀŸÇÀ À ZÀ iÀ nÀ ÀÀ¡À¡_À¡±À¡úÀ¡ÿÀ¢À¢_À¢±À£À£ À£aÀ£rÀ£wÀ£ŒÀ£ÕÀ¤'À¤RÀ¤WÀ¤­À¤¾À¤ÃÀ¤åÀ¤êÀ¥7À¥…À¥ÐÀ¦ À¦À¦aÀ¦®À¦øÀ§À§À§gÀ§¶À§ÊÀ§ÏÀ§äÀ¨1À¨À¨ÊÀ©À©aÀ©fÀ©¼À©ÍÀ©ÒÀ©áÀ©æÀª4ÀªrÀªÁÀª÷À«)À«lÀ«‰À«™À«¹À«ÕÀ«æÀ«íÀ«ïÀ¬$À¬+À¬BÀ¬�À¬àÀ¬ýÀ­À­\À­oÀ­vÀ­‡À­ŽÀ­ÙÀ®À®$À®fÀ®À®ŒÀ®¾À®ÀÀ¯À¯ À¯YÀ¯mÀ¯‘À¯“À¯ÅÀ¯ÌÀ°À°0À°2À°?À°�À°„À°†À°½À°ÂÀ±À±aÀ±›À± À±ßÀ±öÀ±ûÀ²?À²DÀ²‘À²ãÀ³3À³rÀ³£À³¨À³ÊÀ³ÏÀ´À´hÀ´´À´øÀ´ýÀµAÀµ“Àµ¸Àµ½À¶À¶RÀ¶fÀ¶kÀ¶€À¶ÍÀ·À·RÀ·WÀ·«À·¼À·ÁÀ·ÐÀ·ÕÀ¸ À¸nÀ¸�À¸ÛÀ¹#À¹VÀ¹zÀ¹�À¹¾À¹ÙÀ¹éÀº Àº*Àº<ÀºbÀºdÀº´Àº»ÀºóÀºúÀ» À»À»bÀ»°À»äÀ¼À¼À¼gÀ¼nÀ¼¥À¼¬À¼½À¼ÄÀ½À½QÀ½WÀ½™À½²À½¿À½ñÀ½óÀ¾5À¾<À¾‹À¾ŸÀ¾¥À¾çÀ¾þÀ¿ À¿>À¿AAnimatedWidget_AnimatedStateSlideTransitionMatrixTransitionScaleTransitionRotationTransitionSizeTransitionFadeTransitionSliverFadeTransitionRelativeRectTweenPositionedTransitionRelativePositionedTransitionDecoratedBoxTransitionAlignTransitionDefaultTextStyleTransitionListenableBuilderAnimatedBuilder;flutter.widgets.transitions.ListenableBuilder.optimizations‚IIf the [builder] function contains a subtree that does not depend on the [listenable], it is more efficient to build that subtree once instead of rebuilding it on every change of the [listenable]. Performance is therefore improved by specifying any widgets that don't need to change using the prebuilt [child] attribute. The [ListenableBuilder] passes this [child] back to the [builder] callback so that it can be incorporated into the build. Using this pre-built [child] is entirely optional, but can improve performance significantly in some cases and is therefore a good practice.9flutter.widgets.transitions.AnimatedBuilder.optimizations‚If the [builder] function contains a subtree that does not depend on the animation passed to the constructor, it's more efficient to build that subtree once instead of rebuilding it on every animation tick. If a pre-built subtree is passed as the [child] parameter, the [AnimatedBuilder] will pass it back to the [builder] function so that it can be incorporated into the build. Using this pre-built child is entirely optional, but can improve performance significantly in some cases and is therefore a good practice.´’