Gkeys_keys==hashCode_tempHashStore3_tempHashStore4_computeHashCodeignoredlockedunlockedtriggersaccepts isActivatedBydebugDescribeKeys _triggers_checkKeyRequirements _modifiers_unmapSynonymsdebugFillPropertiesvalue valueToStringtriggercontrolshiftaltmetanumLockincludeRepeats_shouldAcceptModifiers_shouldAcceptNumLockserializeForMenu character activatorintentmodal shortcuts _shortcuts_indexShortcuts_indexedShortcuts_indexedShortcutsCache_getCandidates_findhandleKeypressmanagerchild debugLabelincludeSemantics createState_internalManagerdispose initStatedidUpdateWidget_handleOnKeyEventbuildbindings_applyKeyEventBindingregistry replaceAll_notificationScheduled _disposed_registeredShortcutsaddAll_notifyListenersNextFrameofmaybeOf _replaceAll _disposeEntry_debugCheckEntryIsValid_debugCheckForDuplicates_shortcutsChangedupdateShouldNotify_controlSynonyms_shiftSynonyms _altSynonyms _metaSynonymsKeySet LockStateShortcutActivator LogicalKeySetShortcutMapPropertySingleActivatorCharacterActivator_ActivatorIntentPairShortcutManager Shortcuts_ShortcutsStateCallbackShortcutsShortcutRegistryEntryShortcutRegistryShortcutRegistrar_ShortcutRegistrarState_ShortcutRegistrarScope€¸SetLogicalKeyboardKeyexpandSynonymscontrolshiftaltmeta KeyboardKeyMap immutablefromSetHashSetaddintkey2key3key4length isNotEmptycontainsoftoSetoverrideboolObject runtimeType setEquals_keysListIteratoriteratormoveNextcurrenthashCodehashsorthashAllacceptsIntentActionskeyAIterable KeyDownEventHardwareKeyboardlogicalKeysPressedcollapseSynonymsKeyEvent DeprecatedinstanceStringkeysDiagnosticableexpandkey differenceisEmptyKeyRepeatEvent logicalKey controlLeft controlRight shiftLeft shiftRightaltLeftaltRightmetaLeft metaRighttoListasynonymsb debugName compareTomaptoStringjoinvoidDiagnosticPropertiesBuilderdebugFillPropertiesDiagnosticsProperty description shortcutsvalueTextTreeConfigurationkeySetdebugDescribeKeysMenuSerializableShortcutkeyCignored identicallockedunlockednumLock intersectionlockModesEnabledKeyboardLockModeShortcutSerializationmodifier toStringShortMessageProperty FlagPropertyifFalseSnackBar character addListenerremoveListenerChangeNotifier kFlutterMemoryAllocationsEnabledmaybeDispatchObjectCreationKeyEventResultskipRemainingHandlers mapEqualsnotifyListenersforEach activatortriggers putIfAbsenttriggerintentactivatorIntent FocusManager primaryFocushandledDoNothingAction consumesKeyAction protected BuildContextcontext maybeFindinvokeActionIfEnabledenabledtoKeyEventResult invokeResultifTrue defaultValueCallbackActionColumnStatefulWidgetmanagerWidgetStatewidgetdispose initStatedidUpdateWidget FocusNodehandleKeypressFocus debugLabelcanRequestFocus onKeyEventincludeSemanticschild VoidCallbackStatelessWidgetcall skipTraversaleventaddAll _replaceAll mustCallSuper _disposeEntrydebugAssertNotDisposedMapEntryentriesentry replaceAll_SchedulerBindingaddPostFrameCallbackDuration WidgetsApp MaterialApp CupertinoApp"dependOnInheritedWidgetOfExactType FlutterErrorregistryremove containsKeydescribeIdentity tokenEntryshortcutmaybeOfInheritedWidget KeySetDiagnosticableShortcutActivatorDiagnosticsPropertyMenuSerializableShortcutChangeNotifierStatefulWidgetStateStatelessWidgetInheritedWidgetâ‘hŠóØDÁÞl°Öz �Xdart:collection�upackage:flutter/foundation.dart� package:flutter/scheduler.dart�Êpackage:flutter/services.dart�õ actions.dart‚ focus_manager.dart‚+focus_scope.dart‚Gframework.dart‚aplatform_menu_bar.dartÀ§¼Àñó†=€ˆ€§€©€Û� ��-�K�U�W�r�t�Ÿ�É�ò�ô‚ ‚*‚F‚`‚‚‚„‚Ùƒƒƒeƒ˜ƒœ„„„"„t„¦„ª„¬„ò„÷…D…S…X…¨…ø†4†9†H†M†œ†¸†Ä†ë‡*‡1‡x‡‡Êˆˆ1ˆJˆbˆuˆ‡ˆ�ˆªˆ±ˆÊˆâˆõ‰‰‰*‰1‰J‰b‰u‰‡‰�‰ª‰±‰¾‰ÜŠ/Š7Š<Š>ŠuŠ|ŠÁŠÈŠñ‹‹0‹U‹y‹{‹¹‹Þ‹ù‹ûŒŒ,ŒYŒnŒuŒ¹Œ¾ŒÀ� �A�N�„�†�ÅŽ Ž~ޝŽä� �:�<�v���¿�Á�Ù��)�0�2�L�{�“�Õ‘‘‘!‘p‘¤‘ù’’/’I’{’“’¯’ã’ê““.“3“6“8“‚“”“é“õ“÷”3”>”@”~”‹”Ž”�”à”å•2•�•Ò– –j–º–ê–ï—8—=—‹—£—ó˜˜ ˜/˜4˜‡˜»™ ™S™˜™Ýšš*š|šÅšãšå›7›X›_›°›þœNœŸœÂœÉ��i�¸�ø�ÿžPž†ž�žÜŸ-Ÿ~ŸÍŸû 2 4 † Ö ä ë¡/¡�¡Ñ¢ ¢¢b¢°£££!£o£¿£Ö£Ý£î£õ¤D¤�¤È¤Ê¥¥M¥]¥Œ¥È¥Í¦¦Z¦_¦a¦©¦°¦ï§§§§^§c§´¨¨W¨w¨|¨Î©©p©‹©�©¥©ôªªª3ªRªpªuªˆª�ª³ª¸« «««i«¶¬¬¬:¬S¬w¬½¬Ä­­­k­¯­±­ö­ý®B®z®|®‰®Ä®û¯X¯i¯k¯¬°°r°µ°ö°û°ý± ±D±ƒ±˜±Ÿ²²² ²U²r²“²±²Ð²Ö³)³`³›³Æ³ò³þ´7´`´Š´–´Í´ôµµ(µ`µˆµ±µ½µÇµÉµÖµö¶5¶r¶À¶ë·>·‘·½·Ó¸¸¸&¸\¸g¸Í¸Ò¸Ô¸á¹'¹S¹h¹Î¹Ö¹Û¹Þ¹àº5º|º¦ºÿ»R»˜»°»È»û¼¼0¼B¼Z¼a¼c¼p¼­¼¯¼¼½½�½’½•½—½Ö½Û¾¾!¾3¾J¾s¾x¾Ì¿¿p¿u¿µ¿ÿÀ@0À@zÀ@À@ÏÀAÀAÀAmÀA¿ÀAóÀB6ÀB„ÀBÔÀCÀCÀC+ÀC0ÀC|ÀCÃÀD'ÀDxÀDÀDÑÀE!ÀENÀEUÀE¢ÀEòÀF ÀFÀFcÀF±ÀFìÀFóÀG ÀGTÀGdÀGkÀG¿ÀGÒÀGìÀHÀHÀH5ÀHLÀHdÀH‹ÀH¬ÀHüÀIGÀI”ÀIÚÀIêÀJ'ÀJlÀJ²ÀJñÀK4ÀKxÀKµÀKöÀL8ÀLvÀL¸ÀLùÀMÀMÀMVÀMwÀM~ÀM¹ÀMÛÀNÀNÀNOÀNmÀNtÀNÄÀOÀOGÀONÀO_ÀOfÀOµÀOÌÀOÎÀPÀP7ÀP>ÀPŒÀPÛÀQ ÀQÀQ%ÀQ,ÀQwÀQŒÀQŽÀQ×ÀQõÀQüÀRHÀR—ÀRÇÀRÎÀRßÀRæÀS-ÀS@ÀSBÀSŒÀSªÀS±ÀSþÀTMÀT~ÀT…ÀT–ÀT�ÀTæÀTúÀTüÀUMÀUbÀUiÀU¹ÀUþÀVFÀV’ÀV™ÀVªÀV±ÀVÙÀVõÀV÷ÀWAÀWHÀWŒÀWÑÀXÀXBÀX`ÀXbÀXoÀX¾ÀXÀÀYÀYNÀY“ÀYÔÀZÀZÀZÀZSÀZrÀZ”ÀZêÀ[CÀ[KÀ[PÀ[RÀ[_À[™À[ïÀ\À\\À\‚À\‡À\‰À\–À\ÄÀ\ðÀ]À]À]&À]9À]RÀ]ZÀ]_À]aÀ]©À]°À^À^4À^AÀ^aÀ^zÀ^‹À^¶À^×À^ðÀ_ À_(À__À_iÀ_‹À_ŸÀ_ªÀ_¾À_ÃÀ_ÅÀ_ÒÀ`À`DÀ`‡À`œÀ`øÀaÀaÀaÀa ÀaWÀapÀauÀaÄÀbÀb[Àb«ÀbýÀcIÀc`ÀceÀcµÀdÀd,Àd1ÀdFÀd˜Àd¸Àd½ÀeÀe#Àe(ÀeuÀeÃÀfÀf_Àf©ÀfÁÀfÆÀg ÀgVÀg¤ÀgÛÀgàÀh"ÀhmÀh»Ài ÀiÀi^Ài¬ÀiæÀj4Àj€ÀjÎÀjåÀjêÀk9Àk‰ÀkÖÀkãÀk÷ÀküÀl ÀlÀl^ÀlžÀl¸ÀlëÀmÀmOÀmlÀmƒÀmšÀmµÀmÍÀmîÀmõÀm÷ÀnFÀndÀnkÀn½Ào Ào:ÀoAÀo‚Ào‰ÀošÀo¡ÀoçÀoúÀoüÀpLÀpmÀptÀpÄÀqÀqKÀqRÀqcÀqjÀq¹ÀqÐÀqÒÀr"Àr@ÀrGÀr”ÀrãÀsÀsÀs0Às7Às€Às”Às–ÀsÞÀsåÀt)ÀtmÀt´ÀtßÀtýÀtÿÀu1Àu8Àu‰ÀuÛÀv,Àv}Àv’Àv™ÀvªÀv±ÀvïÀw Àw ÀwÀwPÀwRÀw”ÀwÚÀx&ÀxgÀx¨Àx­Àx¯Àx¼ÀxöÀy=ÀyiÀy¼Ày÷ÀyüÀyþÀz Àz+ÀzDÀzUÀz€Àz™ÀzºÀzÕÀzîÀzøÀ{À{.À{9À{MÀ{RÀ{TÀ{aÀ{�À{ïÀ{ôÀ{öÀ|À|IÀ|uÀ|½À|ÒÀ}.À}6À};À}>À}@À}rÀ}®À}ÔÀ}ìÀ}îÀ}ûÀ~AÀ~mÀ~ËÀÀÀÀÀhÀuÀzÀÈÀýÀ€À€QÀ€ŸÀ€ÒÀ�À�6À�KÀ� À�¹À�ÚÀ‚À‚@À‚GÀ‚LÀ‚NÀ‚›À‚åÀ‚ìÀƒ<ÀƒŽÀƒ­Àƒ´ÀƒòÀ„AÀ„|À„�À„²À„´À„ÕÀ„ÜÀ…(À…/À…_À…žÀ…ìÀ†%À†jÀ†…À†«À†ÅÀ†ÌÀ†ÑÀ†ÓÀ‡#À‡OÀ‡VÀ‡ŸÀ‡ÝÀˆ ÀˆpÀˆÃÀ‰'À‰7À‰zÀ‰¶À‰¿À‰ÈÀ‰ÜÀ‰áÀ‰ãÀŠ3ÀŠvÀŠ{ÀŠ}ÀŠÎÀŠÐÀ‹À‹?À‹}À‹¼À‹ÄÀ‹ÉÀ‹ËÀŒÀŒ%ÀŒ,ÀŒvÀŒ±À� À�KÀ�sÀ�|À�ƒÀ�•À�šÀ�œÀ�×À�ÞÀŽ+ÀŽ}ÀŽºÀŽßÀŽæÀ�6À�†À�ÕÀ�À�À�fÀ�³À‘À‘&À‘4À‘}À‘ØÀ’"À’aÀ’¿À’ÁÀ“À“AÀ“SÀ“ŒÀ“ŽÀ“¤À“ãÀ“ìÀ“óÀ”FÀ”KÀ”MÀ”ZÀ” À”ÌÀ•.À•ŽÀ•“À•–À•˜À•ÜÀ•îÀ•óÀ–7À–<À–‹À–ÙÀ–èÀ–íÀ—<À—ŠÀ—ØÀ˜&À˜vÀ˜’À˜—À˜¯À˜üÀ™À™"À™7À™ˆÀ™ÚÀš(ÀšaÀšfÀš¸ÀšÇÀšÌÀ›À›(À›-À›BÀ›“À›âÀœ2Àœ~ÀœŒÀœ‘ÀœâÀ�0À�|À�ÉÀ�ØÀ�ÝÀž(Àž9Àž>ÀžMÀžRÀž£ÀžËÀŸÀŸ*ÀŸqÀŸ»ÀŸåÀ 2À RÀ YÀ ™À  À ÛÀ âÀ óÀ úÀ¡HÀ¡uÀ¡ŠÀ¡šÀ¡ÒÀ¡ìÀ¢À¢%À¢EÀ¢]À¢_À¢¤À¢ÈÀ¢ÏÀ£À£?À£FÀ£À£œÀ£¬À£ØÀ£òÀ¤À¤+À¤eÀ¤gÀ¤­À¤ÐÀ¤×À¥À¥hÀ¥±À¥ìÀ¦À¦À¦HÀ¦–À¦äÀ§À§$À§VÀ§•À§šÀ§œÀ§ÐÀ§ÒÀ¨À¨À¨@À¨WÀ¨YÀ¨›À¨¢À¨ñÀ© À©À©\À©“À©°À©²À©éÀª Àª ÀªÀªPÀªRÀª_Àª¥ÀªÑÀ«4À«IÀ«eÀ«{À«�À«ÚÀ«äÀ«ìÀ«ñÀ«ôÀ«öÀ¬(À¬NÀ¬•À¬—À¬¤À¬¸À¬ÚÀ¬ðÀ¬õÀ¬÷À­À­À­2À­UÀ­‚À­¹À­ÀÀ­ÅÀ­ÇÀ­ÔÀ®À®*À®ZÀ®À®¥À®ÇÀ®×À¯À¯À¯À¯MÀ¯RÀ¯TÀ¯šÀ¯»À¯áÀ¯èÀ°"À°'À°)À°6À°^À°qÀ°’À°±À°×À± À±%À±-À±2À±5À±7À±xÀ±}À±ÁÀ±ÆÀ²À²\À²�À²’À²àÀ³.À³|À³ÌÀ³èÀ³íÀ´À´LÀ´ŒÀ´‘À´åÀ´öÀ´ûÀµIÀµ”ÀµäÀ¶4À¶�À¶ÏÀ¶ôÀ¶ùÀ·À·^À·À·„À·“À·ÚÀ¸+À¸^À¸‘À¸çÀ¸éÀ¹3À¹DÀ¹KÀ¹–À¹çÀº5ÀºƒÀºÌÀºÓÀ»À»fÀ»vÀ»}À»ÏÀ¼!À¼9À¼qÀ¼sÀ¼¤À¼«À¼ÝÀ¼ôÀ¼öÀ½BÀ½“À½­À½úÀ¾:À¾^À¾rÀ¾yÀ¾ŒÀ¾‘À¾“À¾ À¾ÈÀ¾ÛÀ¾úÀ¿À¿LÀ¿…À¿ÜÀÀ ÀÀÀÀŠÀÀ¢ÀÀ¬ÀÀÁÀÀÉÀÀÎÀÀÑÀÀÓÀÁ ÀÁpÀÁŽÀÁ“ÀÁàÀÂÀÂ$ÀÂ^ÀÂ�À‘ÀÂÎÀÂòÀÂôÀÃDÀÃcÀÃjÀúÀÄÀÄÀÄÀÄbÀÄiÀĹÀÄûÀÅKÀÅ”ÀÅÏÀÅ÷ÀÅüÀÅþÀÆ0ÀÆ7ÀÆwÀÆ«ÀƽÀÆÑÀÆôÀÆùÀÆüÀÆþÀÇOÀLjÀÇ�ÀÇÙÀÇÞÀÈ-ÀÈtÀȼÀÉ ÀÉÀÉJÀÉ|ÀÉ”ÀÉÁÀÉúÀÊÀÊÀÊÀÊ0ÀÊKÀÊMÀÊZÀÊnÀÊ„ÀÊ›ÀÊ ÀÊ¢ÀÊóÀËÀËÀËqÀËxÀË¿ÀËñÀÌ+ÀÌTÀ̬ÀÌØÀÌñÀÌùÀÌþÀÍÀÍ[ÀÍ�ÀÍŸÀÍëÀÎÀÎ&ÀÎuÀÎÁÀÎìÀÎóÀÏEÀχÀÏŽÀÏÞÀÐ ÀÐpÀйÀÐÀÀÐÑÀÐØÀÑ,ÀÑdÀÑ´ÀÑìÀÒ4ÀÒnÀÒºÀÓÀÓ,ÀÓUÀÓwÀÓŠÀÓ�ÀÓ‘ÀÓáÀÔ1ÀÔƒÀÔÏÀÔìÀÕÀÕ6ÀÕ{ÀÕ¤ÀÕ¿ÀÕÝÀÕèÀÖ#ÀÖIÀÖPÀÖUÀÖWÀÖ¥ÀÖâÀÖéÀ×7À×`À×gÀ×µÀØÀØ+ÀØ2ÀØCÀØJÀØšÀØÔÀÙ ÀÙBÀÙ‹ÀÙœÀÙ¼ÀÙÙÀÚ#ÀÚ{ÀÚ¥ÀÛÀÛ6ÀÛ[ÀÛtÀÛ€ÀÛ‰ÀÛ�ÀÛ¨ÀÛÉÀÛÎÀÛÐÀÜÀÜIÀÜPÀÜžÀÜ·ÀܾÀÝ ÀÝYÀÝ‚À݉ÀÝšÀÝ¡ÀÝïÀÞ2ÀÞZÀÞ–ÀÞÎÀßÀß8Àß=Àß?ÀߊÀßšÀßóÀà-ÀàZÀà„Àà­ÀàÏÀàÔÀàÖÀá Àá0ÀáeÀá’ÀáÉÀáíÀáôÀáùÀáûÀâ:ÀâoÀâ”Àâ±ÀâíÀã>Àã…Àã‘Àã¡Àã¾ÀãüÀäIÀä™Àä¹ÀäÅÀäÎÀäÕÀäçÀäìÀäîÀåÀåXÀå�ÀåëÀæÀæ`Àæ�Àæ®ÀæûÀç`ÀçnÀçyÀç§Àç°Àç·ÀçÉÀçÎÀçÑÀçÓÀè"ÀèEÀèJÀèšÀèÙÀèÞÀé.ÀéHÀéMÀé’ÀéãÀê5Àê…ÀêªÀê¯ÀêíÀëÀëÀë]Àë›Àë»ÀëíÀìÀì ÀìJÀìˆÀìŠÀì»ÀìÂÀìôÀí Àí ÀíÀíbÀíeÀígÀí©ÀíâÀîÀîÀî'Àî=ÀîUÀîƒÀîˆÀîŠÀî¨ÀîöÀïÀï?ÀïDÀïFÀïSÀïgÀï˜Àï±ÀïÉÀïßÀïäÀïæÀïóÀðÀð@Àð[Àð£Àð«Àð°Àð³ÀðµÀðîÀñ@ÀñBÀñfÀñhÀñuÀñ¿ÀñëÀñðÀñó€œ/// @docImport 'package:flutter/cupertino.dart'; /// @docImport 'package:flutter/material.dart'; /// /// @docImport 'app.dart'; /// @docImport 'basic.dart'; �W�t�Ÿ�É�ô‚ ‚*‚F‚`„¬Žˆ†Ê†Ê�þ/// A set of [KeyboardKey]s that can be used as the keys in a [Map]. /// /// A key set contains the keys that are down simultaneously to represent a /// shortcut. /// /// This is a thin wrapper around a [Set], but changes the equality comparison /// from an identity comparison to a contents comparison so that non-identical /// sets with the same keys in them will compare as equal. /// /// See also: /// /// * [ShortcutManager], which uses [LogicalKeySet] (a [KeySet] subclass) to /// define its key map.†Ñ†Ñ†Ñ†íƒM‡Ì‡Ì‡Ò€Ï/// A constructor for making a [KeySet] of up to four keys. /// /// If you need a set of more than four keys, use [KeySet.fromSet]. /// /// The same [KeyboardKey] may not be appear more than once in the set.‡Ó‡Ö‡Õ‡Ü‡à‡ß‡å‡é‡è‡î‡ò‡ñ ˆ‡úˆˆ ˆ ˆ ˆ ˆ ˆˆˆˆˆŠ@�7ŠóŠùŠú‹Šú€£/// Create a [KeySet] from a set of [KeyboardKey]s. /// /// Do not mutate the `keys` set after passing it to this object. /// /// The `keys` set must not be empty.‹ ‹ ‹ ‹‹‹,‹‹!‹"‹6‹<‹Q‹=‹>‹B‹C‹K‹P‹L‹a‹[‹c‹j‹l‹k‹m‹n‹p‹u‹q‹à‹ñ‹ñ�C>�_�_�C�D�j�z�€�{�Ç7�Þ�Þ�õ�ý�ð�ô�ñ�ö�ù�üŽ":Ž9Ž9 ŽPŽ[ŽKŽOŽLŽQŽTŽWŽZ‹}_‹Æ‹Æ:/// Returns a copy of the [KeyboardKey]s in this [KeySet].‹ý€¿ŒŒŒ Œ#Œ"‹ý‹þŽ€„±Ž‹Ž‹ŽœŽœŽœŽŸ ާަ†¸†¹”�’šš…[/// An interface to define the keyboard key combination to trigger a shortcut. /// /// [ShortcutActivator]s are used by [Shortcuts] widgets, and are mapped to /// [Intent]s, the intended behavior that the key combination should trigger. /// When a [Shortcuts] widget receives a key event, its [ShortcutManager] looks /// up the first matching [ShortcutActivator], and signals the corresponding /// [Intent], which might trigger an action as defined by a hierarchy of /// [Actions] widgets. For a detailed introduction on the mechanism and use of /// the shortcut-action system, see [Actions]. /// /// The matching [ShortcutActivator] is looked up in the following way: /// /// * Find the registered [ShortcutActivator]s whose [triggers] contain the /// incoming event. /// * Of the previous list, finds the first activator whose [accepts] returns /// true in the order of insertion. /// /// See also: /// /// * [SingleActivator], an implementation that represents a single key combined /// with modifiers (control, shift, alt, meta). /// * [CharacterActivator], an implementation that represents key combinations /// that result in the specified character, such as question mark. /// * [LogicalKeySet], an implementation that requires one or more /// [LogicalKeyboardKey]s to be pressed at the same time. Prefer /// [SingleActivator] when possible.š,€µšÍšÍšÞ€”/// Abstract const constructor. This constructor enables subclasses to provide /// const constructors so that they can be used in const expressions.šç…I  „Ó/// An optional property to provide all the keys that might be the final event /// to trigger this shortcut. /// /// For example, for `Ctrl-A`, [LogicalKeyboardKey.keyA] is the only trigger, /// while [LogicalKeyboardKey.control] is not, because the shortcut should /// only work by pressing KeyA *after* Ctrl, but not before. For `Ctrl-A-E`, /// on the other hand, both KeyA and KeyE should be triggers, since either of /// them is allowed to trigger. /// /// If provided, trigger keys can be used as a first-pass filter for incoming /// events in order to optimize lookups, as [Intent]s are stored in a [Map] /// and indexed by trigger keys. It is up to the individual implementers of /// this interface to decide if they ignore triggers or not. /// /// Subclasses should make sure that the return value of this method does not /// change throughout the lifespan of this object. /// /// This method might also return null, which means this activator declares /// all keys as trigger keys. Activators whose [triggers] return null will be /// tested with [accepts] on every event. Since this becomes a linear search, /// and having too many might impact performance, it is preferred to return /// non-null [triggers] whenever possible. 6„�¤–¤–„/// Whether the triggering `event` and the keyboard `state` at the time of the /// event meet required conditions, providing that the event is a triggering /// event. /// /// For example, for `Ctrl-A`, it has to check if the event is a /// [KeyDownEvent], if either side of the Ctrl key is pressed, and none of the /// Shift keys, Alt keys, or Meta keys are pressed; it doesn't have to check /// if KeyA is pressed, since it's already guaranteed. /// /// As a possible performance improvement, implementers of this function are /// encouraged (but not required) to check the [triggers] member, if it is /// non-null, to see if it contains the event's logical key before doing more /// complicated work. /// /// This method must not cause any side effects for the `state`. Typically /// this is only used to query whether [HardwareKeyboard.logicalKeysPressed] /// contains a key. /// /// See also: /// /// * [LogicalKeyboardKey.collapseSynonyms], which helps deciding whether a /// modifier key is pressed when the side variation is not important.¤ž¤¨¤§¤®¤À¤¿¤Ì�‘¥Û¥Û|/// Returns true if the event and current [HardwareKeyboard] state would cause /// this [ShortcutActivator] to be activated.¥é¥ü¥û¦¦¦¥O¥P¥Z¥Ê¥a¥�¦c€©¦ø¦ø€„/// Returns a description of the key set that is short and readable. /// /// Intended to be used in debug mode for logging purposes.§’ɬ¬„Î/// A set of [LogicalKeyboardKey]s that can be used as the keys in a map. /// /// [LogicalKeySet] can be used as a [ShortcutActivator]. It is not recommended /// to use [LogicalKeySet] for a common shortcut such as `Delete` or `Ctrl+C`, /// prefer [SingleActivator] when possible, whose behavior more closely resembles /// that of typical platforms. /// /// When used as a [ShortcutActivator], [LogicalKeySet] will activate the intent /// when all [keys] are pressed, and no others, except that modifier keys are /// considered without considering sides (e.g. control left and control right are /// considered the same). /// /// {@tool dartpad} /// In the following example, the counter is increased when the following key /// sequences are pressed: /// /// * Control left, then C. /// * Control right, then C. /// * C, then Control left. /// /// But not when: /// /// * Control left, then A, then C. /// /// ** See code in examples/api/lib/widgets/shortcuts/logical_key_set.0.dart ** /// {@end-tool} /// /// This is also a thin wrapper around a [Set], but changes the equality /// comparison from an identity comparison to a contents comparison so that /// non-identical sets with the same keys in them will compare as equal.¬y�4­m­m­z€ä/// A constructor for making a [LogicalKeySet] of up to four keys. /// /// If you need a set of more than four keys, use [LogicalKeySet.fromSet]. /// /// The same [LogicalKeyboardKey] may not be appear more than once in the set.­{ ­‚­�­ˆ ­�­Ž­” ­›­š­  ­§­¦­³€Å®D®Q®R®Y®R€‡/// Create a [LogicalKeySet] from a set of [LogicalKeyboardKey]s. /// /// Do not mutate the `keys` set after passing it to this object.®Z ®a®`®h®m®n®u®v®Æ€ ®é®é ®õ¯¯¯¯U¯ ¯T¯^¯_¯d¯e² €Ç²1²1²R²Ò²>²Q²?²Y²k²l²v²ˆ²‰²—²©²ª²µ²Ç²È²Ø‚ì³³E³]µÃ³/³\³0³D³H³[³I³‚³h³z³{³˜³ú³„³—³…³¥³·³¸³Ð³â³ã´´´´´4´’´ ´3´!´A´S´T´j´|´}´´´ž´°´±´Êµ$´¶´É´·´×´é´ê´þµµµGµ0µBµCµ]µ¹µIµ\µJµjµ|µ}µ’µ¤µ¥®~D®¬®¬®~®¯m�Œ¯r¯r¯ˆ¯¡¯ °ÿ�±±±±#±"±)±;±:°ÿ±µËƒµßµßµËµÌ¸Ö�¸è¸è¸ü&¹¹¸Ö¸×¹àƒ³º¬º¬€Â/// A [DiagnosticsProperty] which handles formatting a `Map` /// (the same type as the [Shortcuts.shortcuts] property) so that its /// diagnostic output is human-readable.»�^»š»š»­€’/// Create a diagnostics property for `Map` objects, /// which are the same type as the [Shortcuts.shortcuts] property.»´»Â»Á»Ì*»ò»ñ»ÿ¼¼¼¼"¼!¼4 ¼;¼:¼F¼M¼L¼eF¼•¼•¼e¼f¼±€ß¼Å¼Å¼Ô*¼ì¼ë¼±¼²½—£oÀCÉÀCɆ /// A shortcut key combination of a single key and modifiers. /// /// The [SingleActivator] implements typical shortcuts such as: /// /// * ArrowLeft /// * Shift + Delete /// * Control + Alt + Meta + Shift + A /// /// More specifically, it creates shortcut key combinations that are composed of a /// [trigger] key, and zero, some, or all of the four modifiers (control, shift, /// alt, meta). The shortcut is activated when the following conditions are met: /// /// * The incoming event is a down event for a [trigger] key. /// * If [control] is true, then at least one control key must be held. /// Otherwise, no control keys must be held. /// * Similar conditions apply for the [alt], [shift], and [meta] keys. /// /// This resembles the typical behavior of most operating systems, and handles /// modifier keys differently from [LogicalKeySet] in the following way: /// /// * [SingleActivator]s allow additional non-modifier keys being pressed in /// order to activate the shortcut. For example, pressing key X while holding /// ControlLeft *and key A* will be accepted by /// `SingleActivator(LogicalKeyboardKey.keyX, control: true)`. /// * [SingleActivator]s do not consider modifiers to be a trigger key. For /// example, pressing ControlLeft while holding key X *will not* activate a /// `SingleActivator(LogicalKeyboardKey.keyX, control: true)`. /// /// See also: /// /// * [CharacterActivator], an activator that represents key combinations /// that result in the specified character, such as question mark.ÀD)ˆÙÀGÚÀGÚÀGéƒn/// Triggered when the [trigger] key is pressed while the modifiers are held. /// /// The [trigger] should be the non-modifier key that is pressed after all the /// modifiers, such as [LogicalKeyboardKey.keyC] as in `Ctrl+C`. It must not /// be a modifier key (sided or unsided). /// /// The [control], [shift], [alt], and [meta] flags represent whether the /// respective modifier keys should be held (true) or released (false). They /// default to false. /// /// By default, the activator is checked on all [KeyDownEvent] events for the /// [trigger] key. If [includeRepeats] is false, only [trigger] key events /// which are not [KeyRepeatEvent]s will be considered. /// /// {@tool dartpad} /// In the following example, the shortcut `Control + C` increases the /// counter: /// /// ** See code in examples/api/lib/widgets/shortcuts/single_activator.0.dart ** /// {@end-tool}ÀGð ÀGöÀGõÀHÀH ÀH ÀH ÀH&ÀH%ÀH9ÀH?ÀH>ÀHPÀHVÀHUÀHh ÀHnÀHmÀH�ÀH•ÀH”vÀHÀH-ÀHDÀH\ÀHwÀH€ÀH�ÀH¥ÀIáÀIçÀMÀL´ÀLrÀL4ÀKòÀK±ÀKtÀK0ÀJíÀJ®ÀJhÀJ#ÀIóÀIôÀIýÀJ!ÀIþÀJÀJÀJÀJ4ÀJ5ÀJ>ÀJfÀJ?ÀJHÀJZÀJ[ÀJyÀJzÀJƒÀJ¬ÀJ„ÀJ�ÀJŸÀJ ÀJ¿ÀJÀÀJÉÀJëÀJÊÀJÓÀJåÀJæÀJþÀJÿÀKÀK.ÀK ÀKÀK$ÀK%ÀKAÀKBÀKKÀKrÀKLÀKUÀKgÀKhÀK…ÀK†ÀK�ÀK¯ÀK�ÀK™ÀK«ÀK¬ÀKÂÀKÃÀKÌÀKðÀKÍÀKÖÀKèÀKéÀLÀLÀL ÀL2ÀLÀLÀL)ÀL*ÀLEÀLFÀLOÀLpÀLPÀLYÀLkÀLlÀLƒÀL„ÀL�ÀL²ÀLŽÀL—ÀL©ÀLªÀLÅÀLÆÀLÏÀLõÀLÐÀLÙÀLëÀLìÀM€õÀMöÀMö€Å/// The non-modifier key of the shortcut that is pressed after all modifiers /// to activate the shortcut. /// /// For example, for `Control + C`, [trigger] should be /// [LogicalKeyboardKey.keyC].ÀN�ÅÀOÂÀOÂ�”/// Whether either (or both) control keys should be held for [trigger] to /// activate the shortcut. /// /// It defaults to false, meaning all Control keys must be released when the /// event is received in order to activate the shortcut. If it's true, then /// either or both Control keys must be pressed. /// /// See also: /// /// * [LogicalKeyboardKey.controlLeft], [LogicalKeyboardKey.controlRight].ÀOÐ�¹ÀQ„ÀQ„�Š/// Whether either (or both) shift keys should be held for [trigger] to /// activate the shortcut. /// /// It defaults to false, meaning all Shift keys must be released when the /// event is received in order to activate the shortcut. If it's true, then /// either or both Shift keys must be pressed. /// /// See also: /// /// * [LogicalKeyboardKey.shiftLeft], [LogicalKeyboardKey.shiftRight].ÀQ��­ÀS:ÀS:�€/// Whether either (or both) alt keys should be held for [trigger] to /// activate the shortcut. /// /// It defaults to false, meaning all Alt keys must be released when the /// event is received in order to activate the shortcut. If it's true, then /// either or both Alt keys must be pressed. /// /// See also: /// /// * [LogicalKeyboardKey.altLeft], [LogicalKeyboardKey.altRight].ÀSD�³ÀTóÀTó�…/// Whether either (or both) meta keys should be held for [trigger] to /// activate the shortcut. /// /// It defaults to false, meaning all Meta keys must be released when the /// event is received in order to activate the shortcut. If it's true, then /// either or both Meta keys must be pressed. /// /// See also: /// /// * [LogicalKeyboardKey.metaLeft], [LogicalKeyboardKey.metaRight].ÀTþ�ôÀVëÀVë�»/// Whether the NumLock key state should be checked for [trigger] to activate /// the shortcut. /// /// It defaults to [LockState.ignored], meaning the NumLock state is ignored /// when the event is received in order to activate the shortcut. /// If it's [LockState.locked], then the NumLock key must be locked. /// If it's [LockState.unlocked], then the NumLock key must be unlocked. /// /// See also: /// /// * [LogicalKeyboardKey.numLock].ÀVù�dÀXOÀXO�8/// Whether this activator accepts repeat events of the [trigger] key. /// /// If [includeRepeats] is true, the activator is checked on all /// [KeyDownEvent] or [KeyRepeatEvent]s for the [trigger] key. If /// [includeRepeats] is false, only [trigger] key events which are /// [KeyDownEvent]s will be considered.ÀXdXÀX’ÀX’ÀXdÀXeÀXÂ�VÀXÇÀXÇÀXÞÀX÷ÀXöÀZ�0ÀZ#ÀZ#ÀZ8ÀZJÀZIÀ[T�1À[fÀ[fÀ[nÀ[xÀ[wÀ[~À[�À[�À[TÀ[UÀ\‹€ÒÀ\®À\®À\‹À\ŒÀ]c‚^À^JÀ^J€Æ/// Returns a short and readable description of the key combination. /// /// Intended to be used in debug mode for logging purposes. In release mode, /// [debugDescribeKeys] returns an empty string.À^6À^7À_Ç�<À_ÙÀ_ÙÀ_í&À` À` À_ÇÀ_ÈÀa œ2Àl¤Àl¤‹c/// A shortcut combination that is triggered by a key event that produces a /// specific character. /// /// Keys often produce different characters when combined with modifiers. For /// example, it might be helpful for the user to bring up a help menu by /// pressing the question mark ('?'). However, there is no logical key that /// directly represents a question mark. Although 'Shift+Slash' produces a '?' /// character on a US keyboard, its logical key is still considered a Slash key, /// and hard-coding 'Shift+Slash' in this situation is unfriendly to other /// keyboard layouts. /// /// For example, `CharacterActivator('?')` is triggered when a key combination /// results in a question mark, which is 'Shift+Slash' on a US keyboard, but /// 'Shift+Comma' on a French keyboard. /// /// {@tool dartpad} /// In the following example, when a key combination results in a question mark, /// the [SnackBar] gets shown: /// /// ** See code in examples/api/lib/widgets/shortcuts/character_activator.0.dart ** /// {@end-tool} /// /// The [alt], [control], and [meta] flags represent whether the respective /// modifier keys should be held (true) or released (false). They default to /// false. [CharacterActivator] cannot check shifted keys, since the Shift key /// affects the resulting character, and will accept whether either of the /// Shift keys are pressed or not, as long as the key event produces the /// correct character. /// /// By default, the activator is checked on all [KeyDownEvent] or /// [KeyRepeatEvent]s for the [character] in combination with the requested /// modifier keys. If `includeRepeats` is false, only the [character] events /// with that are [KeyDownEvent]s will be considered. /// /// {@template flutter.widgets.shortcuts.CharacterActivator.alt} /// On macOS and iOS, the [alt] flag indicates that the Option key (⌥) is /// pressed. Because the Option key affects the character generated on these /// platforms, it can be unintuitive to define [CharacterActivator]s for them. /// /// For instance, if you want the shortcut to trigger when Option+s (⌥-s) is /// pressed, and what you intend is to trigger whenever the character 'ß' is /// produced, you would use `CharacterActivator('ß')` or /// `CharacterActivator('ß', alt: true)` instead of `CharacterActivator('s', /// alt: true)`. This is because `CharacterActivator('s', alt: true)` will /// never trigger, since the 's' character can't be produced when the Option /// key is held down. /// /// If what is intended is that the shortcut is triggered when Option+s (⌥-s) /// is pressed, regardless of which character is produced, it is better to use /// [SingleActivator], as in `SingleActivator(LogicalKeyboardKey.keyS, alt: /// true)`. /// {@endtemplate} /// /// See also: /// /// * [SingleActivator], an activator that represents a single key combined /// with modifiers, such as `Ctrl+C` or `Ctrl-Right Arrow`.Àm€âÀmWÀmWÀmiŠuŠ|ŠÁŠÈŠñ‹‹0‹U‹y‹{‹¹‹Þ‹ù‹ûŒŒ,ŒYŒnŒuŒ¹Œ¾ŒÀ� �A�N�„�†�ÅŽ Ž~ޝŽä� �:�<�v���¿�Á�Ù��)�0�2�L�{�“�Õ‘‘‘!‘p‘¤‘ù’’/’I’{’“’¯’ã’ê““.“3“6“8“‚“”“é“õ“÷”3”>”@”~”‹”Ž”�”à”å•2•�•Ò– –j–º–ê–ï—8—=—‹—£—ó˜˜ ˜/˜4˜‡˜»™ ™S™˜™Ýšš*š|šÅšãšå›7›X›_›°›þœNœŸœÂœÉ��i�¸�ø�ÿžPž†ž�žÜŸ-Ÿ~ŸÍŸû 2 4 † Ö ä ë¡/¡�¡Ñ¢ ¢¢b¢°£££!£o£¿£Ö£Ý£î£õ¤D¤�¤È¤Ê¥¥M¥]¥Œ¥È¥Í¦¦Z¦_¦a¦©¦°¦ï§§§§^§c§´¨¨W¨w¨|¨Î©©p©‹©�©¥©ôªªª3ªRªpªuªˆª�ª³ª¸« «««i«¶¬¬¬:¬S¬w¬½¬Ä­­­k­¯­±­ö­ý®B®z®|®‰®Ä®û¯X¯i¯k¯¬°°r°µ°ö°û°ý± ±D±ƒ±˜±Ÿ²²² ²U²r²“²±²Ð²Ö³)³`³›³Æ³ò³þ´7´`´Š´–´Í´ôµµ(µ`µˆµ±µ½µÇµÉµÖµö¶5¶r¶À¶ë·>·‘·½·Ó¸¸¸&¸\¸g¸Í¸Ò¸Ô¸á¹'¹S¹h¹Î¹Ö¹Û¹Þ¹àº5º|º¦ºÿ»R»˜»°»È»û¼¼0¼B¼Z¼a¼c¼p¼­¼¯¼¼½½�½’½•½—½Ö½Û¾¾!¾3¾J¾s¾x¾Ì¿¿p¿u¿µ¿ÿÀ@0À@zÀ@À@ÏÀAÀAÀAmÀA¿ÀAóÀB6ÀB„ÀBÔÀCÀCÀC+ÀC0ÀC|ÀCÃÀD'ÀDxÀDÀDÑÀE!ÀENÀEUÀE¢ÀEòÀF ÀFÀFcÀF±ÀFìÀFóÀG ÀGTÀGdÀGkÀG¿ÀGÒÀGìÀHÀHÀH5ÀHLÀHdÀH‹ÀH¬ÀHüÀIGÀI”ÀIÚÀIêÀJ'ÀJlÀJ²ÀJñÀK4ÀKxÀKµÀKöÀL8ÀLvÀL¸ÀLùÀMÀMÀMVÀMwÀM~ÀM¹ÀMÛÀNÀNÀNOÀNmÀNtÀNÄÀOÀOGÀONÀO_ÀOfÀOµÀOÌÀOÎÀPÀP7ÀP>ÀPŒÀPÛÀQ ÀQÀQ%ÀQ,ÀQwÀQŒÀQŽÀQ×ÀQõÀQüÀRHÀR—ÀRÇÀRÎÀRßÀRæÀS-ÀS@ÀSBÀSŒÀSªÀS±ÀSþÀTMÀT~ÀT…ÀT–ÀT�ÀTæÀTúÀTüÀUMÀUbÀUiÀU¹ÀUþÀVFÀV’ÀV™ÀVªÀV±ÀVÙÀVõÀV÷ÀWAÀWHÀWŒÀWÑÀXÀXBÀX`ÀXbÀXoÀX¾ÀXÀÀYÀYNÀY“ÀYÔÀZÀZÀZÀZSÀZrÀZ”ÀZêÀ[CÀ[KÀ[PÀ[RÀ[_À[™À[ïÀ\À\\À\‚À\‡À\‰À\–À\ÄÀ\ðÀ]À]À]&À]9À]RÀ]ZÀ]_À]aÀ]©À]°À^À^4À^AÀ^aÀ^zÀ^‹À^¶À^×À^ðÀ_ À_(À__À_iÀ_‹À_ŸÀ_ªÀ_¾À_ÃÀ_ÅÀ_ÒÀ`À`DÀ`‡À`œÀ`øÀaÀaÀaÀa ÀaWÀapÀauÀaÄÀbÀb[Àb«ÀbýÀcIÀc`ÀceÀcµÀdÀd,Àd1ÀdFÀd˜Àd¸Àd½ÀeÀe#Àe(ÀeuÀeÃÀfÀf_Àf©ÀfÁÀfÆÀg ÀgVÀg¤ÀgÛÀgàÀh"ÀhmÀh»Ài ÀiÀi^Ài¬ÀiæÀj4Àj€ÀjÎÀjåÀjêÀk9Àk‰ÀkÖÀkãÀk÷ÀküÀl ÀlÀl^ÀlžÀl¸ÀlëÀmÀmOÀmlÀmƒÀmšÀmµÀmÍÀmîÀmõÀm÷ÀnFÀndÀnkÀn½Ào Ào:ÀoAÀo‚Ào‰ÀošÀo¡ÀoçÀoúÀoüÀpLÀpmÀptÀpÄÀqÀqKÀqRÀqcÀqjÀq¹ÀqÐÀqÒÀr"Àr@ÀrGÀr”ÀrãÀsÀsÀs0Às7Às€Às”Às–ÀsÞÀsåÀt)ÀtmÀt´ÀtßÀtýÀtÿÀu1Àu8Àu‰ÀuÛÀv,Àv}Àv’Àv™ÀvªÀv±ÀvïÀw Àw ÀwÀwPÀwRÀw”ÀwÚÀx&ÀxgÀx¨Àx­Àx¯Àx¼ÀxöÀy=ÀyiÀy¼Ày÷ÀyüÀyþÀz Àz+ÀzDÀzUÀz€Àz™ÀzºÀzÕÀzîÀzøÀ{À{.À{9À{MÀ{RÀ{TÀ{aÀ{�À{ïÀ{ôÀ{öÀ|À|IÀ|uÀ|½À|ÒÀ}.À}6À};À}>À}@À}rÀ}®À}ÔÀ}ìÀ}îÀ}ûÀ~AÀ~mÀ~ËÀÀÀÀÀhÀuÀzÀÈÀýÀ€À€QÀ€ŸÀ€ÒÀ�À�6À�KÀ� À�¹À�ÚÀ‚À‚@À‚GÀ‚LÀ‚NÀ‚›À‚åÀ‚ìÀƒ<ÀƒŽÀƒ­Àƒ´ÀƒòÀ„AÀ„|À„�À„²À„´À„ÕÀ„ÜÀ…(À…/À…_À…žÀ…ìÀ†%À†jÀ†…À†«À†ÅÀ†ÌÀ†ÑÀ†ÓÀ‡#À‡OÀ‡VÀ‡ŸÀ‡ÝÀˆ ÀˆpÀˆÃÀ‰'À‰7À‰zÀ‰¶À‰¿À‰ÈÀ‰ÜÀ‰áÀ‰ãÀŠ3ÀŠvÀŠ{ÀŠ}ÀŠÎÀŠÐÀ‹À‹?À‹}À‹¼À‹ÄÀ‹ÉÀ‹ËÀŒÀŒ%ÀŒ,ÀŒvÀŒ±À� À�KÀ�sÀ�|À�ƒÀ�•À�šÀ�œÀ�×À�ÞÀŽ+ÀŽ}ÀŽºÀŽßÀŽæÀ�6À�†À�ÕÀ�À�À�fÀ�³À‘À‘&À‘4À‘}À‘ØÀ’"À’aÀ’¿À’ÁÀ“À“AÀ“SÀ“ŒÀ“ŽÀ“¤À“ãÀ“ìÀ“óÀ”FÀ”KÀ”MÀ”ZÀ” À”ÌÀ•.À•ŽÀ•“À•–À•˜À•ÜÀ•îÀ•óÀ–7À–<À–‹À–ÙÀ–èÀ–íÀ—<À—ŠÀ—ØÀ˜&À˜vÀ˜’À˜—À˜¯À˜üÀ™À™"À™7À™ˆÀ™ÚÀš(ÀšaÀšfÀš¸ÀšÇÀšÌÀ›À›(À›-À›BÀ›“À›âÀœ2Àœ~ÀœŒÀœ‘ÀœâÀ�0À�|À�ÉÀ�ØÀ�ÝÀž(Àž9Àž>ÀžMÀžRÀž£ÀžËÀŸÀŸ*ÀŸqÀŸ»ÀŸåÀ 2À RÀ YÀ ™À  À ÛÀ âÀ óÀ úÀ¡HÀ¡uÀ¡ŠÀ¡šÀ¡ÒÀ¡ìÀ¢À¢%À¢EÀ¢]À¢_À¢¤À¢ÈÀ¢ÏÀ£À£?À£FÀ£À£œÀ£¬À£ØÀ£òÀ¤À¤+À¤eÀ¤gÀ¤­À¤ÐÀ¤×À¥À¥hÀ¥±À¥ìÀ¦À¦À¦HÀ¦–À¦äÀ§À§$À§VÀ§•À§šÀ§œÀ§ÐÀ§ÒÀ¨À¨À¨@À¨WÀ¨YÀ¨›À¨¢À¨ñÀ© À©À©\À©“À©°À©²À©éÀª Àª ÀªÀªPÀªRÀª_Àª¥ÀªÑÀ«4À«IÀ«eÀ«{À«�À«ÚÀ«äÀ«ìÀ«ñÀ«ôÀ«öÀ¬(À¬NÀ¬•À¬—À¬¤À¬¸À¬ÚÀ¬ðÀ¬õÀ¬÷À­À­À­2À­UÀ­‚À­¹À­ÀÀ­ÅÀ­ÇÀ­ÔÀ®À®*À®ZÀ®À®¥À®ÇÀ®×À¯À¯À¯À¯MÀ¯RÀ¯TÀ¯šÀ¯»À¯áÀ¯èÀ°"À°'À°)À°6À°^À°qÀ°’À°±À°×À± À±%À±-À±2À±5À±7À±xÀ±}À±ÁÀ±ÆÀ²À²\À²�À²’À²àÀ³.À³|À³ÌÀ³èÀ³íÀ´À´LÀ´ŒÀ´‘À´åÀ´öÀ´ûÀµIÀµ”ÀµäÀ¶4À¶�À¶ÏÀ¶ôÀ¶ùÀ·À·^À·À·„À·“À·ÚÀ¸+À¸^À¸‘À¸çÀ¸éÀ¹3À¹DÀ¹KÀ¹–À¹çÀº5ÀºƒÀºÌÀºÓÀ»À»fÀ»vÀ»}À»ÏÀ¼!À¼9À¼qÀ¼sÀ¼¤À¼«À¼ÝÀ¼ôÀ¼öÀ½BÀ½“À½­À½úÀ¾:À¾^À¾rÀ¾yÀ¾ŒÀ¾‘À¾“À¾ À¾ÈÀ¾ÛÀ¾úÀ¿À¿LÀ¿…À¿ÜÀÀ ÀÀÀÀŠÀÀ¢ÀÀ¬ÀÀÁÀÀÉÀÀÎÀÀÑÀÀÓÀÁ ÀÁpÀÁŽÀÁ“ÀÁàÀÂÀÂ$ÀÂ^ÀÂ�À‘ÀÂÎÀÂòÀÂôÀÃDÀÃcÀÃjÀúÀÄÀÄÀÄÀÄbÀÄiÀĹÀÄûÀÅKÀÅ”ÀÅÏÀÅ÷ÀÅüÀÅþÀÆ0ÀÆ7ÀÆwÀÆ«ÀƽÀÆÑÀÆôÀÆùÀÆüÀÆþÀÇOÀLjÀÇ�ÀÇÙÀÇÞÀÈ-ÀÈtÀȼÀÉ ÀÉÀÉJÀÉ|ÀÉ”ÀÉÁÀÉúÀÊÀÊÀÊÀÊ0ÀÊKÀÊMÀÊZÀÊnÀÊ„ÀÊ›ÀÊ ÀÊ¢ÀÊóÀËÀËÀËqÀËxÀË¿ÀËñÀÌ+ÀÌTÀ̬ÀÌØÀÌñÀÌùÀÌþÀÍÀÍ[ÀÍ�ÀÍŸÀÍëÀÎÀÎ&ÀÎuÀÎÁÀÎìÀÎóÀÏEÀχÀÏŽÀÏÞÀÐ ÀÐpÀйÀÐÀÀÐÑÀÐØÀÑ,ÀÑdÀÑ´ÀÑìÀÒ4ÀÒnÀÒºÀÓÀÓ,ÀÓUÀÓwÀÓŠÀÓ�ÀÓ‘ÀÓáÀÔ1ÀÔƒÀÔÏÀÔìÀÕÀÕ6ÀÕ{ÀÕ¤ÀÕ¿ÀÕÝÀÕèÀÖ#ÀÖIÀÖPÀÖUÀÖWÀÖ¥ÀÖâÀÖéÀ×7À×`À×gÀ×µÀØÀØ+ÀØ2ÀØCÀØJÀØšÀØÔÀÙ ÀÙBÀÙ‹ÀÙœÀÙ¼ÀÙÙÀÚ#ÀÚ{ÀÚ¥ÀÛÀÛ6ÀÛ[ÀÛtÀÛ€ÀÛ‰ÀÛ�ÀÛ¨ÀÛÉÀÛÎÀÛÐÀÜÀÜIÀÜPÀÜžÀÜ·ÀܾÀÝ ÀÝYÀÝ‚À݉ÀÝšÀÝ¡ÀÝïÀÞ2ÀÞZÀÞ–ÀÞÎÀßÀß8Àß=Àß?ÀߊÀßšÀßóÀà-ÀàZÀà„Àà­ÀàÏÀàÔÀàÖÀá Àá0ÀáeÀá’ÀáÉÀáíÀáôÀáùÀáûÀâ:ÀâoÀâ”Àâ±ÀâíÀã>Àã…Àã‘Àã¡Àã¾ÀãüÀäIÀä™Àä¹ÀäÅÀäÎÀäÕÀäçÀäìÀäîÀåÀåXÀå�ÀåëÀæÀæ`Àæ�Àæ®ÀæûÀç`ÀçnÀçyÀç§Àç°Àç·ÀçÉÀçÎÀçÑÀçÓÀè"ÀèEÀèJÀèšÀèÙÀèÞÀé.ÀéHÀéMÀé’ÀéãÀê5Àê…ÀêªÀê¯ÀêíÀëÀëÀë]Àë›Àë»ÀëíÀìÀì ÀìJÀìˆÀìŠÀì»ÀìÂÀìôÀí Àí ÀíÀíbÀíeÀígÀí©ÀíâÀîÀîÀî'Àî=ÀîUÀîƒÀîˆÀîŠÀî¨ÀîöÀïÀï?ÀïDÀïFÀïSÀïgÀï˜Àï±ÀïÉÀïßÀïäÀïæÀïóÀðÀð@Àð[Àð£Àð«Àð°Àð³ÀðµÀðîÀñ@ÀñBÀñfÀñhÀñuÀñ¿ÀñëÀñðÀñó_controlSynonyms_shiftSynonyms _altSynonyms _metaSynonymsKeySet LockStateShortcutActivator LogicalKeySetShortcutMapPropertySingleActivatorCharacterActivator_ActivatorIntentPairShortcutManager Shortcuts_ShortcutsStateCallbackShortcutsShortcutRegistryEntryShortcutRegistryShortcutRegistrar_ShortcutRegistrarState_ShortcutRegistrarScope0flutter.widgets.shortcuts.CharacterActivator.altƒ{On macOS and iOS, the [alt] flag indicates that the Option key (⌥) is pressed. Because the Option key affects the character generated on these platforms, it can be unintuitive to define [CharacterActivator]s for them. For instance, if you want the shortcut to trigger when Option+s (⌥-s) is pressed, and what you intend is to trigger whenever the character 'ß' is produced, you would use `CharacterActivator('ß')` or `CharacterActivator('ß', alt: true)` instead of `CharacterActivator('s', alt: true)`. This is because `CharacterActivator('s', alt: true)` will never trigger, since the 's' character can't be produced when the Option key is held down. If what is intended is that the shortcut is triggered when Option+s (⌥-s) is pressed, regardless of which character is produced, it is better to use [SingleActivator], as in `SingleActivator(LogicalKeyboardKey.keyS, alt: true)`.#flutter.widgets.shortcuts.shortcuts€°The map of shortcuts that describes the mapping between a key sequence defined by a [ShortcutActivator] and the [Intent] that will be emitted when that key sequence is pressed.õÕ