9 _formatter_parent_source_chunks_pendingNewlines _pendingSpace_pendingNested_pendingFlushLeft _afterComment_rules_hardSplitRules _lazyRules _openSpans_nesting_blockArgumentNesting_preventSplitNesting pageWidthrulewrite writeNewline writeSpacesplit writeComments_writeCommentTextindentunindent startSpanendSpan startRule _activateRule startLazyRuleendRule forceRulesnestExpressionunneststartSelectionFromEndendSelectionFromEndstartBlockArgumentNestingendBlockArgumentNesting startBlockendBlockend preventSplitendPreventSplit_emitPendingWhitespace_chunkForComment_isGenericMethodComment_needsSpaceBeforeComment_needsSpaceAfterComment_needsBlankLineBeforeComment _writeSplit _writeText _startChunk _divideChunks _canDivide_handleHardSplit _hardenRules_trailingIdentifierChar_javaDocComment _javaDocLine_leadingIndentation ChunkBuilderrRegExp SourceVisitorChunk DartFormatter SourceCodeListintboolRuleOpenSpanNestingBuilder NestingLevel pageWidthlastindentmergeEmptySplitsvoidStringforEachclear commitNestingisDouble flushLeftnestspacedummyisHard SourceCommentfirst linesBeforeilengtheverycommenttype CommentType inlineBlock updateSplit isNotEmptyselectionStarttext selectionEndcontainsfixesStyleFix docCommentschunk firstMatchsplittoList trimRightminisEmptyremoveAt removeLastaddline substringspacesIndentblockunindentcostCostnormalstartSpanrule isHardenedspansoutersplitsOnInnerRulesconstrainWhenSplit expressionnowunneststartSelectionFromEndendSelectionFromEndcurrentNesting LineWriter BlockChunk argumentChunk indentation_childrenhard startRule forceSplitunsplitBlockLength forceRulestraceChunkBuilderloggreen dumpChunks writeLinesisCompilationUnituriselectionLength WhitespacedocendsWith startsWithhasMatchhardennesting appendText LineSplitter preventDivideindexisNestedconstrainedRulesother constrainfullySplitValueø¼Š>Ôƒ·F¦ðÕT·­{ €Ù€ë€îmath€î dart:math€ö chunk.dart� comment_type.dart�'constants.dart�@dart_formatter.dart�^�q�tdebug�t debug.dart�|line_writer.dart�—nesting_builder.dart�¶nesting_level.dart�Órule/rule.dart�ìsource_code.dart‚source_comment.dart‚%style_fix.dart½‚À„zƒÓN€œ€Ø€ô€õ� �&�?�]�{�–�µ�Ò�ë‚‚$‚=‚>‚ˆ‚‚Ã#ƒdƒeƒµƒáƒâ„„C„D„”„â…$…(…y…Å놆"†#†t†¨†Ç†È†ä†å‡‡‡G‡c‡i‡�‡«‡¬‡÷ˆˆˆRˆqˆrˆ¥ˆÇˆÈ‰‰$‰%‰`‰f‰´‰Á‰Ü‰ÝŠ)ŠFŠLŠ›Šé‹6‹~‹ÊŒŒ:Œ;Œ‡Œ¨ŒÇŒÈ� �-�.�G�l�m�°�¶ŽŽ5Ž6ނޥޫŽú�G�•�Ç�Í�þ���e�’�“�µ�Õ�Ö‘‘‘3‘R‘s‘w‘x‘Æ‘ç‘ë‘ì’/’5’ƒ’Ï““f“l“r“Ž“µ“»” ”D”J”•”ã•-•u••ߕå–6–ƒ–®–ì—,—D—E—l—„—…—£—¾——×ê—ð˜:˜�˜‡˜Õ™#™m™|™‘™Ýšš)šDšHšIš‰šŸš¹š½š¾š÷šý›L›—›°›èœ4œ|œ­œÑœí� � �3�O�U�V�§�¼�ð�ñž2ž6ž7ž„ž¹ž¿Ÿ ŸSŸYŸ¦ŸéŸÿ I ” Þ¡¡¡3¡I¡P¡h¡o¡½¢ ¢Q¢”¢¶¢Î¢Ý££>£Z£m£y£ƒ£‹£‘£’£Ó¤¤k¤·¥¥#¥*¥:¥N¥`¥g¥·¥ñ¦"¦H¦d¦j¦k¦º§§S§Ÿ§¦§ß§æ§ó§ú¨¨¨E¨f¨Ÿ¨ï©$©*©+©f©–©·©¸©üª0ªKªšª©ªë«!«p«›«Ì«Ö«å¬¬C¬l¬¸¬Ò­­A­^­‰­Ö­â­ó®$®.®/®€®ˆ®‰®²®³®ß¯-¯5¯6¯`¯ª¯²¯³°°H°^°ƒ°µ°Ä°ë°ì±8±R±]±p±”±¾²²²&².²/²K²a²­²µ²»²¼³ ³-³p³Š³Ž³�³³³¹´´H´„´«´¹´¿´À´æµ µ9µ`µnµtµuµ¥µÕµÖ¶¶N¶u¶v¶­¶Ø· ·(·D·N·V·W·Š·§·ó¸7¸?¸@¸W¸]¸^¸�¸½¹¹¹<¹b¹c¹�¹¡¹¾¹öº'ºLºTºUºkº‹º‘º•º–ºâºè»»>»[»_»`»’»¦»¿»Ã»Ä»é»ï¼1¼^¼’¼–¼—¼¶¼É¼õ¼ö½;½Y½€½�½·½Û¾ ¾*¾c¾i¾m¾n¾‰¾�¾»¾Ü¾ñ¾ò¿@¿n¿•¿­¿®¿Ç¿Ë¿Ì¿îÀ@6À@VÀ@…À@«À@±À@ÇÀ@ËÀ@ÌÀAÀA>ÀADÀA�ÀAÙÀAòÀAøÀB.ÀBSÀBhÀBiÀBƒÀB‡ÀBˆÀB§ÀBºÀBÛÀBúÀCÀC"ÀC(ÀC,ÀC-ÀCxÀC~ÀCÍÀDÀDiÀD¹ÀD¿ÀEÀE[ÀE ÀEËÀEÌÀFÀF8ÀF>ÀF‰ÀF×ÀGÀG8ÀGKÀGLÀGgÀGŽÀG’ÀG“ÀGÏÀGÕÀH&ÀH_ÀHeÀH³ÀHØÀHõÀIÀIÀIÀIFÀIJÀIKÀI™ÀIÕÀIÛÀJ+ÀJcÀJ�ÀJ¯ÀJàÀJäÀJåÀK5ÀKmÀKsÀKÃÀKûÀL%ÀLEÀLFÀL‘ÀL¡ÀLÉÀLúÀMÀMGÀMMÀMQÀMRÀM�ÀM»ÀMàÀNÀNÀNÀNlÀN�ÀN·ÀN»ÀN¼ÀOÀOÀORÀOmÀOµÀPÀPKÀP]ÀPªÀPÎÀQÀQÀQ:ÀQ;ÀQˆÀQ‰ÀQ«ÀQ¬ÀQûÀRKÀRrÀRŽÀR«ÀRÙÀRÚÀRîÀRòÀRóÀSCÀSIÀS•ÀSåÀT,ÀTcÀTiÀT¦ÀTÚÀTïÀTðÀU<ÀUkÀU�ÀUŽÀUØÀVÀV)ÀV?ÀVbÀV�ÀVÊÀVçÀVøÀWÀWÀWNÀW�ÀWíÀX0ÀXMÀX^ÀXhÀXpÀXvÀXwÀXÆÀXöÀYÀY:ÀYMÀYQÀYRÀY ÀYÅÀYÚÀYöÀY÷ÀZ ÀZ ÀZ0ÀZZÀZ~ÀZ‘ÀZ—ÀZ˜ÀZÊÀZÛÀ[$À[%À[>À[XÀ[‚À[°À[ÞÀ[ßÀ\.À\\À\„À\ªÀ\«À\âÀ\èÀ\éÀ] À]&À]\À]„À]¯À]³À]´À]ÌÀ]èÀ]ìÀ]íÀ^À^$À^`À^dÀ^eÀ^ªÀ^°À_À_7À_VÀ_•À_¼À_½À_íÀ_þÀ`À`8À`eÀ`iÀ`jÀ`¨À`®À`úÀaAÀabÀa£ÀaÍÀaóÀaôÀb%ÀbTÀbUÀb”ÀbÊÀcÀcÀc!Àc"ÀcsÀcÂÀdÀd#ÀdAÀd_ÀdžÀdÉÀdÏÀdÐÀe Àe;Àe„Àe—Àe�ÀežÀeêÀf3ÀfQÀfoÀf¨Àf»ÀfÁÀfÂÀfÔÀfØÀfÙÀg)Àg/ÀgzÀg€Àg§ÀgßÀh,Àh0Àh1Àh�ÀhÇÀhÍÀiÀifÀišÀi ÀiîÀjÀjNÀj�Àj¯ÀjõÀkÀk7Àk[Àk\ÀkŒÀkÃÀkÄÀl Àl9ÀlkÀlÀl…Àl†ÀlÒÀm Àm$Àm%ÀmsÀm®ÀmôÀnÀnLÀnMÀnyÀnzÀnÃÀnÿÀoÀoÀoÀoiÀo‹Ào¦Ào¾ÀoÖÀoîÀpÀpÀpÀp Àp]ÀpŽÀp½Àp¾ÀpúÀq!Àq"ÀqdÀq†ÀqÆÀqÇÀqØÀqÜÀqÝÀrÀrÀr7ÀrLÀrgÀr„ÀržÀr¸ÀrßÀrðÀs@Às‘ÀsàÀsüÀtKÀtgÀthÀt¤ÀtºÀtÜÀuÀu6Àu@ÀuHÀuIÀušÀuµÀu¶ÀvÀvÀvRÀv�Àv•Àv–ÀvÉÀvÊÀväÀwÀwÀwÀwÀwcÀw|Àw­ÀwÆÀwãÀxÀxÀxÀx;ÀxAÀxBÀx‰Àx¤Àx¥ÀxÁÀxÅÀxÆÀxðÀy;ÀynÀyoÀyªÀyóÀz Àz Àz+Àz=ÀzAÀzBÀz’ÀzËÀzÑÀ{À{NÀ{gÀ{±À{òÀ|À|À|6À|TÀ|‰À|�À|“À|”À|áÀ}À}/À}WÀ}…À}†À}¦À}ÔÀ}ÕÀ~À~<À~=À~ŒÀ~ÏÀ~úÀ~ûÀ ÀÀÀVÀrÀ’À“ÀàÀ€À€1À€2À€~À€‘À€·À€»À€¼À�À�BÀ�HÀ��À�¥À�ÎÀ�ÏÀ�õÀ‚ À‚ À‚AÀ‚rÀ‚—À‚˜À‚¹À‚ôÀƒÀƒ?ÀƒIÀƒQÀƒWÀƒXÀƒ€Àƒ�Àƒ£Àƒ¤ÀƒðÀ„À„&À„IÀ„fÀ„nÀ„tÀ„xÀ„z €Ø€î€õ� �&�?�]�t�{�–�µ�Ò�ë‚‚$�Ø�ä�å�å�ê�ö�ö �û‘‘ ‘‘,‘$‘.‘/�Ø�Ø€ž‘z‘†‘ˆ‘‰‘‰ ‘Ž‘—‘—‘œ‘¨‘¨ ‘­‘¶‘¶ ‘»‘z‘zp‘‡††††¾†%€ †¾€€/// The builder for the code surrounding the block that this writer is for, or /// `null` if this is writing the top-level code.†Û†Ê†Û†ù†ç†ù‡¨‡•‡€¤‡•€ƒ/// The number of newlines that should be written before the next /// non-whitespace token. /// /// This will always be 0, 1, or 2.ˆ‡þ‡®e‡þH/// Whether a non-breaking space should be written before the next text.ˆjˆYˆWˆY9/// Whether the next chunk should use expression nesting.ˆÀˆ¬ˆtQˆ¬0/// Whether the next chunk should be flush left.‰‰ ˆÊX‰ ;/// Whether the most recently written output was a comment.‰Ø‰Ù‰Ò‰×‰Ó‰É‰'€³‰É€“/// The nested stack of rules that are currently in use. /// /// New chunks are implicitly split by the innermost rule when the chunk is /// ended.Œ6Œ7Œ0Œ5Œ1Œ‰ß‚YŒ‚&/// The set of rules known to contain hard splits that will in turn force /// these rules to harden. /// /// This is accumulated lazily while chunks are being built. Then, once they /// are all done, the rules are all hardened. We do this later because some /// rules may not have all of their constraints fully wired up until after /// the hard split appears. For example, a hard split in a positional /// argument list needs to force the named arguments to split too, but we /// don't create that rule until after the positional arguments are done.ŒÃŒÄŒ½ŒÂŒ¾Œ°Œ=€ˆŒ°h/// The list of rules that are waiting until the next whitespace has been /// written before they start.�)�*��(� �ŒÊa�?/// The nested stack of spans that are currently being written.�Z�h�i�O�0:�O/// The current state.Ž1Ž2Ž#Ž0Ž$Ž �o€ÄŽ €�/// The stack of nesting levels where block arguments may start. /// /// A block argument's contents will nest at the last level in this stack.��Ž8�ä��µ/// The number of calls to [preventSplit()] that have not been ended by a /// call to [endPreventSplit()]. /// /// Splitting is completely disabled inside string interpolation. We do want /// to fix the whitespace inside interpolation, though, so we still format /// them. This tracks whether we're inside an interpolation. We can't use a /// simple bool because interpolation can nest. /// /// When this is non-zero, splits are ignored.�!�!p�oC/// The number of characters of code that can fit in a single line.�•�•?�À/// The current innermost rule.'–»–» ––˖˖Жã‘î‘î…Ó–µ„‘/// Writes [string], the text for a single token, to the output. /// /// By default, this also implicitly adds one level of nesting if we aren't /// currently nested at all. We do this here so that if a comment appears /// after any token within a statement or top-level form and that comment /// leads to splitting, we correctly nest. Even pathological cases like: /// /// /// import // comment /// "this_gets_nested.dart"; /// /// If we didn't do this here, we'd have to call [nestExpression] after the /// first token of practically every grammar production. /// /// If [mergeEmptySplits] is `true`, the default, then any pending split /// information will be combined with a previously created split if no text /// has been written since. This generally comes into play when text is /// written after a comment. The comment may leave some pending split /// information while [SourceVisitor] may have also created a split and we /// want to combine those. /// /// It is only `false` when writing the contents of a multiline string. There, /// we may *want* to have a series of empty chunks because those represent /// empty lines in the multiline string.™˜™˜™�™¯™¯™´™Ç™Ç™Ì™¨™À™Ó—Å—Å‚‚™ƒ�¦/// Writes one or two hard newlines. /// /// Doesn't immediately write them. That way line breaking is correctly /// interleaved with any comments that appear before the next token. /// /// If [isDouble] is `true`, inserts an extra blank line. If [flushLeft] is /// `true`, the next line will start at column 1 and ignore indentation and /// nesting. If [nest] is `true` then the next line will use expression /// nesting.šKšKqš�=/// Writes a space before the subsequent non-whitespace text.›¿›¿›Ä›Ñ›Ñ›Ö›Ë›ÞšÀšÀƒu›¸€ç/// Write a split owned by the current innermost rule. /// /// If [nest] is `false`, ignores any current expression nesting. Otherwise, /// uses the current nesting level. If unsplit, it expands to a space if /// [space] is `true`.    # # ' 9 9  @ž9ž9•TŸð�¡/// Outputs the series of [comments] and associated whitespace that appear /// before [token] (which is not written by this). /// /// The list contains each comment as it appeared in the source between the /// last token written and the next one that's about to be written. /// /// [linesBeforeToken] is the number of lines between the last comment (or /// previous token if there are no comments) and the next token.´´´-´7´7 ´>³‘³‘‡´ p/// Writes the text of [comment]. /// /// If it's a JavaDoc comment that should be fixed to use `///`, fixes it.».». »3º˜º˜€Æ»&€‚/// Creates a new indentation level [spaces] deeper than the current one. /// /// If omitted, [spaces] defaults to [Indent.block].»b»b`»™//// Discards the most recent indentation level.¼C¼C¼G¼N¼R¼S»Æ»Æ€Ï¼8f/// Starts a new span with [cost]. /// /// Each call to this needs a later matching call to [endSpan].¼™¼™�Ó¼½/// Ends the innermost span.¾Í¾Í ¾Ó¾p¾p�Z¾ÂF/// Starts a new [Rule]. /// /// If omitted, defaults to a new [Rule].¿á¿á ¿æ¿Î¿Î€ü¿ÓÀBDÀBD ÀBJÀ@ÎÀ@Î�¸ÀB5�Q/// Starts a new [Rule] that comes into play *after* the next whitespace /// (including comments) is written. /// /// This is used for operators who want to start a rule before the first /// operand but not get forced to split if a comment appears before the /// entire expression. /// /// If [rule] is omitted, defaults to a new [Rule].ÀBŠÀBŠ€¡ÀB®/// Ends the innermost rule.ÀC/ÀC/‚›ÀE§‚^/// Pre-emptively forces all of the current rules to become hard splits. /// /// This is called by [SourceVisitor] when it can determine that a rule will /// will always be split. Turning it (and the surrounding rules) into hard /// splits lets the writer break the output into smaller pieces for the line /// splitter, which helps performance and avoids failing on very large input. /// /// In particular, it's easy for the visitor to know that collections with a /// large number of items must split. Doing that early avoids crashing the /// splitter when it tries to recurse on huge collection literals.ÀGÀG ÀG"ÀG*ÀG* ÀG0ÀEÎÀEÎ�ÃÀG �-/// Begins a new expression nesting level [indent] spaces deeper than the /// current one if it splits. /// /// If [indent] is omitted, defaults to [Indent.expression]. If [now] is /// `true`, commits the nesting change immediately instead of waiting until /// after the next chunk of text is written.ÀHçÀHç ÀHíÀG•ÀG•�´ÀHß�6/// Discards the most recent level of expression nesting. /// /// Expressions that are more nested will get increased indentation when split /// if the previous line has a lower level of nesting. /// /// If [now] is `false`, does not commit the nesting change until after the /// next chunk of text is written.ÀJ€ÀJ€ ÀJ„ÀIMÀIM�–ÀJj� /// Marks the selection starting point as occurring [fromEnd] characters to /// the left of the end of what's currently been written. /// /// It counts backwards from the end because this is called *after* the chunk /// of text containing the selection has been output.ÀLÀL ÀLÀJçÀJç‚iÀL� /// Marks the selection ending point as occurring [fromEnd] characters to the /// left of the end of what's currently been written. /// /// It counts backwards from the end because this is called *after* the chunk /// of text containing the selection has been output.ÀMTÀMT€ÇÀMÂd/// Captures the current nesting level as marking where subsequent block /// arguments should start.ÀNÀN€›ÀNsL/// Releases the last nesting level captured by [startBlockArgumentNesting].ÀOtÀOtÀO{ÀOŠÀOŠÀO�ÀOžÀOžÀO£ÀO˜ÀO«ÀN¾ÀN¾„3ÀOa€�/// Starts a new block chunk and returns the [ChunkBuilder] for it. /// /// Nested blocks are handled using their own independent [LineWriter].ÀT¿ÀT¿ÀTÄÀTÑÀRõÀRõ†[ÀTµ�¢/// Ends this [ChunkBuilder], which must have been created by [startBlock()]. /// /// Forces the chunk that owns the block to split if it can tell that the /// block contents will always split. It does that by looking for hard splits /// in the block that aren't for top level elements in the block. If /// [forceSplit] is `true`, the block always splits. /// /// Returns the previous writer for the surrounding block.ÀYTÀYT„^ÀYÒn/// Finishes writing and returns a [SourceCode] containing the final output /// and updated selection, if any.À]¶À]¶5À]»À]ïÀ]ïtÀ]ôÀ_]À_]À_bÀ_tÀ_tÀ_yÀ_mÀ_ŒÀ^gÀ^g‚À_>€É/// Writes the current pending [Whitespace] to the output, if any. /// /// This should only be called after source lines have been preserved to turn /// any ambiguous whitespace into a concrete choice.Àa|Àa|ÀaŠÀa“Àa“ ÀašÀ`lÀ`l†kÀak€í/// Tries to find an existing chunk to append [comment] to. /// /// If [comment] should be appending to an existing line (in other words, /// should be moved before a split), then this returns that [Chunk]. /// Otherwise, returns `null`.ÀgÆÀgÆÀgÔÀfÛÀfÛ�TÀg®€Ã/// Returns `true` if [comment] appears to be a magic generic method comment. /// /// Those get spaced a little differently to look more like real syntax: /// /// int f/**/(int x) => 3;ÀjÏÀjÏÀjÝÀjæÀjæ ÀjìÀh3Àh3„ðÀj¶‚e/// Returns `true` if a space should be output between the end of the current /// output and the subsequent comment which is about to be written. /// /// This is only called if the comment is trailing text in the unformatted /// source. In most cases, a space will be output to separate the comment /// from what precedes it. This returns false if: /// /// * This comment does begin the line in the output even if it didn't in /// the source. /// * The comment is a block comment immediately following a grouping /// character (`(`, `[`, or `{`). This is to allow `foo(/* comment */)`, /// et. al.ÀmÍÀmÍÀmÛÀmäÀmä ÀmëÀm'Àm'‚÷Àmµ€„/// Returns `true` if a space should be output after the last comment which /// was just written and the token that will be written.ÀpDÀpDÀpRÀp"Àp"�¹Àp'ÀrSÀrSÀrXÀrmÀrmÀrrÀrŠÀrŠÀr˜Àr¤Àr¤Àr©Àr¾Àr¾ÀrÃÀraÀr}Àr±ÀrÖÀqßÀqß…6Àr?S/// Starts a new chunk with the given split information. /// /// Returns the chunk.ÀwŽÀwŽ Àw•ÀwœÀwœ Àw£ÀwÀw�«Àwƒ`/// Writes [text] to either the current chunk or a new one if the current /// chunk is complete.ÀxÚÀxÚÀxçÀx÷Àx÷ÀyÀy Ày ÀyÀy$Ày$Ày)ÀyÀy1ÀxÈÀxÈ�xÀxÎÀzDÀzD‚NÀ{U�/// Pre-processes the chunks after they are done being written by the visitor /// but before they are run through the line splitter. /// /// Marks ranges of chunks that can be line split independently to keep the /// batches we send to [LineSplitter] small.À} À} À}&À|–À|–‚yÀ}u/// Returns true if we can divide the chunks at [index] and line split the /// ones before and after that separately.ÀÀ�§À]B/// Hardens the active rules when a hard split occurs within them.À€¾À€¾ƒ¹À�”€È/// Replaces all of the previously hardened rules with hard splits, along /// with every rule that those constrain to also split. /// /// This should only be called after all chunks have been written.„D„DÀ€5…ñ�¦/// Takes the incremental serialized output of [SourceVisitor]--the source text /// along with any comments and preserved whitespace--and produces a coherent /// tree of [Chunk]s which can then be split into physical lines. /// /// Keeps track of leading indentation, expression nesting, and all of the hairy /// code required to seamlessly integrate existing comments into the pure /// output produced by [SourceVisitor].‚¨‚®‚¿‚¯‚Ž‚>€‚‚ŽI/// Matches if the last character of a string is an identifier character.ƒ;ƒAƒaƒBƒ)‚ÀŸƒ)_/// Matches a JavaDoc-style doc comment that starts with "/**" and ends with /// "*/" or "**/".ƒÊƒÐƒÞƒÑƒ»ƒezƒ»O/// Matches the leading "*" in a line in the middle of a JavaDoc-style comment.„0„6„@„7„ƒâ_„1/// Matches spaces at the beginning of as string.ƒÓN€œ€Ø€ô€õ� �&�?�]�{�–�µ�Ò�ë‚‚$‚=‚>‚ˆ‚‚Ã#ƒdƒeƒµƒáƒâ„„C„D„”„â…$…(…y…Å놆"†#†t†¨†Ç†È†ä†å‡‡‡G‡c‡i‡�‡«‡¬‡÷ˆˆˆRˆqˆrˆ¥ˆÇˆÈ‰‰$‰%‰`‰f‰´‰Á‰Ü‰ÝŠ)ŠFŠLŠ›Šé‹6‹~‹ÊŒŒ:Œ;Œ‡Œ¨ŒÇŒÈ� �-�.�G�l�m�°�¶ŽŽ5Ž6ނޥޫŽú�G�•�Ç�Í�þ���e�’�“�µ�Õ�Ö‘‘‘3‘R‘s‘w‘x‘Æ‘ç‘ë‘ì’/’5’ƒ’Ï““f“l“r“Ž“µ“»” ”D”J”•”ã•-•u••ߕå–6–ƒ–®–ì—,—D—E—l—„—…—£—¾——×ê—ð˜:˜�˜‡˜Õ™#™m™|™‘™Ýšš)šDšHšIš‰šŸš¹š½š¾š÷šý›L›—›°›èœ4œ|œ­œÑœí� � �3�O�U�V�§�¼�ð�ñž2ž6ž7ž„ž¹ž¿Ÿ ŸSŸYŸ¦ŸéŸÿ I ” Þ¡¡¡3¡I¡P¡h¡o¡½¢ ¢Q¢”¢¶¢Î¢Ý££>£Z£m£y£ƒ£‹£‘£’£Ó¤¤k¤·¥¥#¥*¥:¥N¥`¥g¥·¥ñ¦"¦H¦d¦j¦k¦º§§S§Ÿ§¦§ß§æ§ó§ú¨¨¨E¨f¨Ÿ¨ï©$©*©+©f©–©·©¸©üª0ªKªšª©ªë«!«p«›«Ì«Ö«å¬¬C¬l¬¸¬Ò­­A­^­‰­Ö­â­ó®$®.®/®€®ˆ®‰®²®³®ß¯-¯5¯6¯`¯ª¯²¯³°°H°^°ƒ°µ°Ä°ë°ì±8±R±]±p±”±¾²²²&².²/²K²a²­²µ²»²¼³ ³-³p³Š³Ž³�³³³¹´´H´„´«´¹´¿´À´æµ µ9µ`µnµtµuµ¥µÕµÖ¶¶N¶u¶v¶­¶Ø· ·(·D·N·V·W·Š·§·ó¸7¸?¸@¸W¸]¸^¸�¸½¹¹¹<¹b¹c¹�¹¡¹¾¹öº'ºLºTºUºkº‹º‘º•º–ºâºè»»>»[»_»`»’»¦»¿»Ã»Ä»é»ï¼1¼^¼’¼–¼—¼¶¼É¼õ¼ö½;½Y½€½�½·½Û¾ ¾*¾c¾i¾m¾n¾‰¾�¾»¾Ü¾ñ¾ò¿@¿n¿•¿­¿®¿Ç¿Ë¿Ì¿îÀ@6À@VÀ@…À@«À@±À@ÇÀ@ËÀ@ÌÀAÀA>ÀADÀA�ÀAÙÀAòÀAøÀB.ÀBSÀBhÀBiÀBƒÀB‡ÀBˆÀB§ÀBºÀBÛÀBúÀCÀC"ÀC(ÀC,ÀC-ÀCxÀC~ÀCÍÀDÀDiÀD¹ÀD¿ÀEÀE[ÀE ÀEËÀEÌÀFÀF8ÀF>ÀF‰ÀF×ÀGÀG8ÀGKÀGLÀGgÀGŽÀG’ÀG“ÀGÏÀGÕÀH&ÀH_ÀHeÀH³ÀHØÀHõÀIÀIÀIÀIFÀIJÀIKÀI™ÀIÕÀIÛÀJ+ÀJcÀJ�ÀJ¯ÀJàÀJäÀJåÀK5ÀKmÀKsÀKÃÀKûÀL%ÀLEÀLFÀL‘ÀL¡ÀLÉÀLúÀMÀMGÀMMÀMQÀMRÀM�ÀM»ÀMàÀNÀNÀNÀNlÀN�ÀN·ÀN»ÀN¼ÀOÀOÀORÀOmÀOµÀPÀPKÀP]ÀPªÀPÎÀQÀQÀQ:ÀQ;ÀQˆÀQ‰ÀQ«ÀQ¬ÀQûÀRKÀRrÀRŽÀR«ÀRÙÀRÚÀRîÀRòÀRóÀSCÀSIÀS•ÀSåÀT,ÀTcÀTiÀT¦ÀTÚÀTïÀTðÀU<ÀUkÀU�ÀUŽÀUØÀVÀV)ÀV?ÀVbÀV�ÀVÊÀVçÀVøÀWÀWÀWNÀW�ÀWíÀX0ÀXMÀX^ÀXhÀXpÀXvÀXwÀXÆÀXöÀYÀY:ÀYMÀYQÀYRÀY ÀYÅÀYÚÀYöÀY÷ÀZ ÀZ ÀZ0ÀZZÀZ~ÀZ‘ÀZ—ÀZ˜ÀZÊÀZÛÀ[$À[%À[>À[XÀ[‚À[°À[ÞÀ[ßÀ\.À\\À\„À\ªÀ\«À\âÀ\èÀ\éÀ] À]&À]\À]„À]¯À]³À]´À]ÌÀ]èÀ]ìÀ]íÀ^À^$À^`À^dÀ^eÀ^ªÀ^°À_À_7À_VÀ_•À_¼À_½À_íÀ_þÀ`À`8À`eÀ`iÀ`jÀ`¨À`®À`úÀaAÀabÀa£ÀaÍÀaóÀaôÀb%ÀbTÀbUÀb”ÀbÊÀcÀcÀc!Àc"ÀcsÀcÂÀdÀd#ÀdAÀd_ÀdžÀdÉÀdÏÀdÐÀe Àe;Àe„Àe—Àe�ÀežÀeêÀf3ÀfQÀfoÀf¨Àf»ÀfÁÀfÂÀfÔÀfØÀfÙÀg)Àg/ÀgzÀg€Àg§ÀgßÀh,Àh0Àh1Àh�ÀhÇÀhÍÀiÀifÀišÀi ÀiîÀjÀjNÀj�Àj¯ÀjõÀkÀk7Àk[Àk\ÀkŒÀkÃÀkÄÀl Àl9ÀlkÀlÀl…Àl†ÀlÒÀm Àm$Àm%ÀmsÀm®ÀmôÀnÀnLÀnMÀnyÀnzÀnÃÀnÿÀoÀoÀoÀoiÀo‹Ào¦Ào¾ÀoÖÀoîÀpÀpÀpÀp Àp]ÀpŽÀp½Àp¾ÀpúÀq!Àq"ÀqdÀq†ÀqÆÀqÇÀqØÀqÜÀqÝÀrÀrÀr7ÀrLÀrgÀr„ÀržÀr¸ÀrßÀrðÀs@Às‘ÀsàÀsüÀtKÀtgÀthÀt¤ÀtºÀtÜÀuÀu6Àu@ÀuHÀuIÀušÀuµÀu¶ÀvÀvÀvRÀv�Àv•Àv–ÀvÉÀvÊÀväÀwÀwÀwÀwÀwcÀw|Àw­ÀwÆÀwãÀxÀxÀxÀx;ÀxAÀxBÀx‰Àx¤Àx¥ÀxÁÀxÅÀxÆÀxðÀy;ÀynÀyoÀyªÀyóÀz Àz Àz+Àz=ÀzAÀzBÀz’ÀzËÀzÑÀ{À{NÀ{gÀ{±À{òÀ|À|À|6À|TÀ|‰À|�À|“À|”À|áÀ}À}/À}WÀ}…À}†À}¦À}ÔÀ}ÕÀ~À~<À~=À~ŒÀ~ÏÀ~úÀ~ûÀ ÀÀÀVÀrÀ’À“ÀàÀ€À€1À€2À€~À€‘À€·À€»À€¼À�À�BÀ�HÀ��À�¥À�ÎÀ�ÏÀ�õÀ‚ À‚ À‚AÀ‚rÀ‚—À‚˜À‚¹À‚ôÀƒÀƒ?ÀƒIÀƒQÀƒWÀƒXÀƒ€Àƒ�Àƒ£Àƒ¤ÀƒðÀ„À„&À„IÀ„fÀ„nÀ„tÀ„xÀ„z_trailingIdentifierChar_javaDocComment _javaDocLine_leadingIndentation ChunkBuilderïù