PK !Nets/modules.abcUT =*\=*\PANDAs 0 <UNT0 MK8jm$H~fT<$ &h4vpCbF0NfX@(t\(x__@`Hnz*9_N>@aSuflo9l +B T{Kk:+L~>Py_4dG /n|8N_G9!  !K o!=E  !;aZ8"]C!2/dGG!|Y'nL 6  ".h}5!{ ^$ i'!S [}!$ [ :w"m6".# !M0   0 ME G S i !'4hs:kxKly $ { ##### $$)$/$5$:$S$p$$$$$ %/%:%^%e%l%t%%%%%%%%%%%%%%&8&L&R&\&d&j&&&&&&&&&&&&'#')'4'B'G'O'c'j'v''''''''''((2(D(R(^(k({(((()))*)7)b)s)))))))**4*@*G*O*_*l********* ++.+K+R+`+u+++++++++++,,),3,B,L,b,k,z,,,,,,,,,,,---#-)-7-G-U-c-k-r-}----GGGGGGGGHHH*H1H9HLHWH]HxHHHHHHHHHHHH III6I=ICIMIqIIIIIIIIJJ(J@JNJeJlJwJJJJJJKK1KFK\KsKKKKKKKKLLL'L6LBLgLLLLLLLLLLL"M0MZMaMiMMM)Z0VQVrVVtRVVVRW8WZYYWzWWWWWX@XaXXXXZXY'YIZR ZRRSQ:S[S|SSSRiZYST!TBTcTTTTTU)UJUkUUUUU3ROQ-N NOPQpQmOQ OHYNNoPO-OmNOOPNTRNQYQ/QPiY/PVMNMOP=Yd S9Gd!4Gn/G_o"%+/6?LVblqz 6 }  fa'L_ESTypeAnnotation;%{public}s)Ability onBackground/Ability onCreate params#Ability onDestroy)Ability onForeground7Ability onWindowStageCreate9Ability onWindowStageDestroyAppStorage[Failed to load the content. Cause: %{public}s JSONPERMISSIONSeSucceeded in loading the content. Data: %{public}sUIAbility#abilityAccessCtrl codeconsolecontextcreateAtManager errorfileUri hilog info lengthloadContentlogohos.samples.videoplayer/entry/ets/entryability/EntryAbility.#2893179356522050245#ohos.samples.videoplayer/entry/ets/entryability/EntryAbility.#4146934663716738264#ohos.samples.videoplayer/entry/ets/entryability/EntryAbility.EntryAbilitypages/Indexparametersprototype9request Permissions success!5requestPermissionsFromUser_requestPermissionsFromUser call Failed! error: setOrCreatestringifytestTag then3L_ESSlotNumberAnnotation;@}Lohos.samples.videoplayer/entry/ets/entryability/EntryAbility; ."^ -K^:G]GjBD] ]GV^TGd%_an |_{G@\O ]pkgName@entryisCommonjsmoduleRecordIdxtypeFlag#typeSummaryOffset+#2893179356522050245#4funcObjany0newTarget 0thiserr data_entry/src/main/ets/entryability/EntryAbility.ts+#4146934663716738264#EntryAbility4newTarget this argsfunc_main_0%import type AbilityConstant from "@ohos:app.ability.AbilityConstant"; import hilog from "@ohos:hilog"; import UIAbility from "@ohos:app.ability.UIAbility"; import type Want from "@ohos:app.ability.Want"; import type window from "@ohos:window"; import type { Permissions } from "@ohos:abilityAccessCtrl"; import abilityAccessCtrl from "@ohos:abilityAccessCtrl"; const PERMISSIONS: Array = [ 'ohos.permission.READ_IMAGEVIDEO', 'ohos.permission.MEDIA_LOCATION' ]; export default class EntryAbility extends UIAbility { onCreate(want: Want, launchParam: AbilityConstant.LaunchParam) { hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate params' + JSON.stringify(want.parameters)); AppStorage.setOrCreate('fileUri', want.parameters.fileUri); } onDestroy() { hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onDestroy'); } onWindowStageCreate(windowStage: window.WindowStage) { // Main window is created, set main page for this ability hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageCreate'); let atManager: abilityAccessCtrl.AtManager = abilityAccessCtrl.createAtManager(); try { atManager.requestPermissionsFromUser(this.context, PERMISSIONS).then(() => { // this.isShow = true; console.log(`request Permissions success!`); }); } catch (err) { console.log(`requestPermissionsFromUser call Failed! error: ${err.code}`); } ; windowStage.loadContent('pages/Index', (err, data) => { if (err.code) { hilog.error(0x0000, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? ''); return; } hilog.info(0x0000, 'testTag', 'Succeeded in loading the content. Data: %{public}s', JSON.stringify(data) ?? ''); }); } onWindowStageDestroy() { // Main window is destroyed, release UI related resources hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageDestroy'); } onForeground() { // Ability has brought to foreground hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onForeground'); } onBackground() { // Ability has back to background hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onBackground'); } } onBackgroundonCreatelaunchParam wantonDestroyonForeground'onWindowStageCreateatManagerwindowStage)onWindowStageDestroy*       ".M[zZ"(.KdV ..  Kd  V  " ;""""h"s""j" x"#&.D Kd d  + V   ';#O#### ,    J3 ?Jz[M  ""j"  .M JM  M  M M  MM#UIAbility#@ohos:app.ability.UIAbilityU#abilityAccessCtrl#@ohos:abilityAccessCtrl@ohos:hilog7@ohos:app.ability.UIAbility/@ohos:abilityAccessCtrldefault?ohos.permission.READ_IMAGEVIDEO=ohos.permission.MEDIA_LOCATION%#hilog#@ohos:hiloge#AbilityConstant#@ohos:app.ability.AbilityConstantI#Permissions#@ohos:abilityAccessCtrl9#Want#@ohos:app.ability.Want)#window#@ohos:window - #FFFFFF, , height is :, message is , value is :,reason is : 1.0x 100%45%/AUTO_ROTATION_LANDSCAPE7AVPlayer prepare succeeded.MAVPlayer seek succeeded, seek time is ?AVPlayer state released called.=AVPlayer state stopped called.=AVPlayer state unknown called.#AVPlayerConstantsCAVPlayerstate initialized called.AlignmentEAllocateNewElmetIdForNextComponent Black Color Column'DataSharePredicatesEllipsis Error FlexFlexAlignFlexDirectionForEachGet Gray'HarmonyHeiTi-MediumIf Image InitAInvoke avPlayer failed, code is ?Invoke prepare failed, code is %LANDSCAPE_INVERTED ListListItem Logger Math1ObservedPropertySimplePUOrientationPORTRAITPlacementRowSPEED_ARRAY SliderSpaceBetween Stack Start5StartGetAccessRecordingFor-StopGetAccessRecording#SubscriberManager TextTextAlignTextOverflowTop ViewPU%ViewStackProcessor WhiteXComponent)XComponentController__currentTime__fileTitle__isLandscape__isPlaying__isShow__isSpeedShow__speed__totalDurationaboutToAppear!aboutToBeDeleted1aboutToBeDeletedInternal!aboutToDisappearalignContentappContextaspectRatioaudioInterrupteaudioInterrupt success,and InterruptEvent info is:avPlayer#availableBitratesuavailableBitrates success,and availableBitrates length is:backgroundColor bindbindPopupbitrateDoneSbitrateDone success,and bitrate value is:bufferingUpdate]bufferingUpdate success,and infoType value is:builder+callbackBitrateUpdate!callbackComplete'callbackErrorUpdate%callbackTimeUpdate#changeOrientationcompleted-completed state calledcontroller count createcreateAVPlayercurrentTime'dataSharePredicatesdeclareWatch%deepRenderFunction deletedirectiondisplayNamedurationdurationUpdate[durationUpdate success,and durationUpdate is:endOfStream'endOfStream success7error happened,message is : fd://fetchColumns'fetchResult successfileTitlefontColorfontFamilyfontSizefontWeight+forEachUpdateFunctionfunctionget'get mediaList countgetAllObjectsgetAssets3getAssets failed, error: getContextgetCountgetLastWindowgetPause)getPhotoAccessHelpergetPlaygetTimeString-getXComponentSurfaceId heighti id__ idle5ifElseBranchUpdateFunctioninitialRenderinitializedisCreateisLandscapeisLoadingisPlaying isShowisSpeedShow itemitemCreationjustifyContentlayoutWeightloadDocument margin mediamediaListmessage1observeComponentCreation3observeComponentCreation2=ohos.samples.videoplayer/entryohos.samples.videoplayer/entry/ets/pages/Index.#10232874835451060257#fileTitleohos.samples.videoplayer/entry/ets/pages/Index.#10409545268107304429#ohos.samples.videoplayer/entry/ets/pages/Index.#10556851685608633147#ohos.samples.videoplayer/entry/ets/pages/Index.#11377289655464219655#ohos.samples.videoplayer/entry/ets/pages/Index.#11394730587759772057#ohos.samples.videoplayer/entry/ets/pages/Index.#1167940133661328884#ohos.samples.videoplayer/entry/ets/pages/Index.#11765051847434289354#ohos.samples.videoplayer/entry/ets/pages/Index.#11765370167534477634#ohos.samples.videoplayer/entry/ets/pages/Index.#11869815281000264091#ohos.samples.videoplayer/entry/ets/pages/Index.#1243183179625350878#ohos.samples.videoplayer/entry/ets/pages/Index.#12966738289542662530#ohos.samples.videoplayer/entry/ets/pages/Index.#13326884012790229817#ohos.samples.videoplayer/entry/ets/pages/Index.#13380659971774089967#totalDurationohos.samples.videoplayer/entry/ets/pages/Index.#13915328927026728044#speedohos.samples.videoplayer/entry/ets/pages/Index.#14452029061441183578#ohos.samples.videoplayer/entry/ets/pages/Index.#14510335626854651534#ohos.samples.videoplayer/entry/ets/pages/Index.#14690428182870608858#ohos.samples.videoplayer/entry/ets/pages/Index.#14881596419474234995#ohos.samples.videoplayer/entry/ets/pages/Index.#15009999042880939002#ohos.samples.videoplayer/entry/ets/pages/Index.#15132597183710348119#ohos.samples.videoplayer/entry/ets/pages/Index.#15157934948077093478#ohos.samples.videoplayer/entry/ets/pages/Index.#15523492430803882877#ohos.samples.videoplayer/entry/ets/pages/Index.#16375138237865472388#ohos.samples.videoplayer/entry/ets/pages/Index.#16487833984193638652#ohos.samples.videoplayer/entry/ets/pages/Index.#16792019050189417259#ohos.samples.videoplayer/entry/ets/pages/Index.#17161839772449760189#ohos.samples.videoplayer/entry/ets/pages/Index.#17255334538959970273#currentTimeohos.samples.videoplayer/entry/ets/pages/Index.#17901244521052763768#ohos.samples.videoplayer/entry/ets/pages/Index.#18039344659931244648#ohos.samples.videoplayer/entry/ets/pages/Index.#18061088658982323878#ohos.samples.videoplayer/entry/ets/pages/Index.#2009241427622277429#isLandscapeohos.samples.videoplayer/entry/ets/pages/Index.#2032145965516454005#ohos.samples.videoplayer/entry/ets/pages/Index.#2180385972213414390#isPlayingohos.samples.videoplayer/entry/ets/pages/Index.#2727107094932757441#ohos.samples.videoplayer/entry/ets/pages/Index.#2812254083114959751#ohos.samples.videoplayer/entry/ets/pages/Index.#2832878321419213890#ohos.samples.videoplayer/entry/ets/pages/Index.#302617802270502047#ohos.samples.videoplayer/entry/ets/pages/Index.#3364528892194756391#ohos.samples.videoplayer/entry/ets/pages/Index.#3432901468310725962#ohos.samples.videoplayer/entry/ets/pages/Index.#3687518288697855029#ohos.samples.videoplayer/entry/ets/pages/Index.#4383065683668287133#ohos.samples.videoplayer/entry/ets/pages/Index.#4640005821696196215#ohos.samples.videoplayer/entry/ets/pages/Index.#480095866935270894#ohos.samples.videoplayer/entry/ets/pages/Index.#5066498906972591202#isSpeedShowohos.samples.videoplayer/entry/ets/pages/Index.#5485627310852286493#isShowohos.samples.videoplayer/entry/ets/pages/Index.#5864859242260192979#ohos.samples.videoplayer/entry/ets/pages/Index.#6131713727254168434#ohos.samples.videoplayer/entry/ets/pages/Index.#6282047624831008250#ohos.samples.videoplayer/entry/ets/pages/Index.#6315880268092278159#ohos.samples.videoplayer/entry/ets/pages/Index.#7409902127894600065#ohos.samples.videoplayer/entry/ets/pages/Index.#8070233389667328686#ohos.samples.videoplayer/entry/ets/pages/Index.#8351868001181149344#ohos.samples.videoplayer/entry/ets/pages/Index.#8523810283950558347#ohos.samples.videoplayer/entry/ets/pages/Index.#8613592862109507632#ohos.samples.videoplayer/entry/ets/pages/Index.#8667243335731348880#ohos.samples.videoplayer/entry/ets/pages/Index.#8706063491558390840#ohos.samples.videoplayer/entry/ets/pages/Index.#8964954561279517613#ohos.samples.videoplayer/entry/ets/pages/Index.#8993751608336999428#ohos.samples.videoplayer/entry/ets/pages/Index.#9363353698244579634#ohos.samples.videoplayer/entry/ets/pages/Index.#9452186449144011627#ohos.samples.videoplayer/entry/ets/pages/Index.#9633103270677213287#ohos.samples.videoplayer/entry/ets/pages/Index.#9944075165565023534#ohos.samples.videoplayer/entry/ets/pages/Index.#997577948167644582#ohos.samples.videoplayer/entry/ets/pages/Index.AVPlayerConstantsiohos.samples.videoplayer/entry/ets/pages/Index.Indexgohos.samples.videoplayer/entry/ets/pages/Index.Inityohos.samples.videoplayer/entry/ets/pages/Index.aboutToAppearohos.samples.videoplayer/entry/ets/pages/Index.aboutToDisappearohos.samples.videoplayer/entry/ets/pages/Index.changeOrientationuohos.samples.videoplayer/entry/ets/pages/Index.currentTimeohos.samples.videoplayer/entry/ets/pages/Index.deepRenderFunctionqohos.samples.videoplayer/entry/ets/pages/Index.fileTitleohos.samples.videoplayer/entry/ets/pages/Index.forEachItemGenFunctionoohos.samples.videoplayer/entry/ets/pages/Index.getPausemohos.samples.videoplayer/entry/ets/pages/Index.getPlayyohos.samples.videoplayer/entry/ets/pages/Index.initialRenderuohos.samples.videoplayer/entry/ets/pages/Index.isLandscapeqohos.samples.videoplayer/entry/ets/pages/Index.isPlayingkohos.samples.videoplayer/entry/ets/pages/Index.isShowuohos.samples.videoplayer/entry/ets/pages/Index.isSpeedShowwohos.samples.videoplayer/entry/ets/pages/Index.itemCreationwohos.samples.videoplayer/entry/ets/pages/Index.onChangePlaymohos.samples.videoplayer/entry/ets/pages/Index.releaseohos.samples.videoplayer/entry/ets/pages/Index.requestPermissionsFnoohos.samples.videoplayer/entry/ets/pages/Index.rerenderohos.samples.videoplayer/entry/ets/pages/Index.setAVPlayerCallbackohos.samples.videoplayer/entry/ets/pages/Index.setBitrateUpdateCallbackohos.samples.videoplayer/entry/ets/pages/Index.setCompleteCallbackohos.samples.videoplayer/entry/ets/pages/Index.setErrorCallbackyohos.samples.videoplayer/entry/ets/pages/Index.setSourceInfoohos.samples.videoplayer/entry/ets/pages/Index.setStateChangeCallbackwohos.samples.videoplayer/entry/ets/pages/Index.setSurfaceIDohos.samples.videoplayer/entry/ets/pages/Index.setTimeUpdateCallbackiohos.samples.videoplayer/entry/ets/pages/Index.speedsohos.samples.videoplayer/entry/ets/pages/Index.speedPopupyohos.samples.videoplayer/entry/ets/pages/Index.totalDurationononChangeonChangePlayonClick onLoadopacity openoverflowpadding params!paramsGenerator_ pause paused#photoAccessHelperplacement play3play video: surfaceID is:playingpoppredicatesprepareprepared/purgeDependencyOnElmtIdr ratioreleasereleased)requestPermissionsFn5requestPermissionsFn entryrerender reset-rgba(255,255,255,0.90) round seekseekDoneEseekDone success,and seek time is:selectedColorset'setAVPlayerCallback1setBitrateUpdateCallback'setCompleteCallback!setErrorCallback3setInitiallyProvidedValue/setPreferredOrientationsetSourceInfosetSpeed-setStateChangeCallbacksetSurfaceID+setTimeUpdateCallback speedspeedDoneKspeedDone success,and speed value is:speedPopup!startRenderFrame5startRenderFrame success 1-state completed called%state error called#state idle called1state initialized called'state paused called)state playing called+state prepared called+state released called)state stopped calledstateChangeistateChange callback function is triggered,state is: stopstoppedsurfaceIDsurfaceId texttextAligntextOverflowthis.fileUri:timeUpdateGtimeUpdate called: currentTime is :9timeUpdate called: time is :totalDurationtrackColorunkown state :'updateDirtyElements%updateFuncByElmtIduriurl valuevideoSizeChangeKvideoSizeChange success,and width is:volumeChangeQvolumeChange success,and new volume is : width window)xComponentController zIndex标题aLohos.samples.videoplayer/entry/ets/pages/Index;e%>yah;weJU<I-KRIb,HɁHMR_B,H INGu+D|[I-K.IJVjVc_*C{4I?E^u,qK I-KvI)-LȃG{L"+@JU"'hAz,HJSLVpIV؊}(:BC{2(VC{ IIO$[;v)}C{'*Cb|ANIO-IOD^-kI_f/m9'a3;NvGH!NZly[!`\$c$g^+ivc^V}j^g,j^-Vk_-l_'.elI4_S.l"c_Vm_.sm,_/nn``0nm+`0+ozB`0oY`1pIp`72Rp`g2p_`2+q` 3 r` 6Fs a8sGa8t#3a8;t0GJa8t=aaV9tJxa9`uWda:uq~NJU׉/8[8_P[Q!`h[!\`[!`[|"Za[ " b[S$b 9\$Gc1GQ\$oc>,\%Uder\&d'\Ve\#'_e+ ]i'ec#]'/f;]`(ofGS](fp](f](\g]^)gG])g] *bh5^-*hBO-^+Ri\-K_D|h_(JAUkIOIO\%cXI_/&nSI~^;,9jIZ%!_IE^+iiI_/mFI])h(IL8Ei\%cKI?#10232874835451060257#fileTitlenewValueEentry/src/main/ets/pages/Index.ets-#10409545268107304429#-#10556851685608633147#-#11377289655464219655#-#11394730587759772057#+#1167940133661328884# elmtIdisInitialRender-#11765051847434289354#-#11765370167534477634#fd-#11869815281000264091#+#1243183179625350878#seekDoneTime-#12966738289542662530#-#13326884012790229817#G#13380659971774089967#totalDuration7#13915328927026728044#speed-#14452029061441183578#-#14510335626854651534#-#14690428182870608858#-#14881596419474234995#-#15009999042880939002#-#15132597183710348119#-#15157934948077093478#-#15523492430803882877#vol-#16375138237865472388#infoType-#16487833984193638652#-#16792019050189417259#-#17161839772449760189#C#17255334538959970273#currentTime-#17901244521052763768#-#18039344659931244648#-#18061088658982323878#A#2009241427622277429#isLandscape+#2032145965516454005#=#2180385972213414390#isPlaying+#2727107094932757441#bitrateList+#2812254083114959751#+#2832878321419213890#)#302617802270502047#+#3364528892194756391#+#3432901468310725962#+#3687518288697855029#-forEachItemGenFunction+#4383065683668287133#nol+#4640005821696196215#)#480095866935270894#A#5066498906972591202#isSpeedShow7#5485627310852286493#isShow+#5864859242260192979# time+#6131713727254168434#lastWindow+#6282047624831008250#+#6315880268092278159#+#7409902127894600065#+#8070233389667328686#bitrate+#8351868001181149344#bitrates+#8523810283950558347#+#8613592862109507632# reason state+#8667243335731348880#+#8706063491558390840#+#8964954561279517613#+#8993751608336999428#+#9363353698244579634#+#9452186449144011627#+#9633103270677213287#+#9944075165565023534#)#997577948167644582# Index__localStorage parentparamsLambdafetchOptions mediasfetchResult _iteminterface Index_Params { fileTitle?: string; currentTime?: number; totalDuration?: number; isPlaying?: boolean; isLandscape?: boolean; isSpeedShow?: boolean; speed?: string; isShow?: boolean; fileUri?: string | undefined; avPlayer?: media.AVPlayer; surfaceID?: string; count?: number; ratio?: number; isCreate?: boolean; isLoading?: boolean; xComponentController?: XComponentController; callbackComplete?: () => void; callbackTimeUpdate?: (nol: number) => void; callbackBitrateUpdate?: (bitrateList: number[]) => void; callbackErrorUpdate?: (error: string) => void; atManager?; appContext?: common.Context; } import photoAccessHelper from "@ohos:file.photoAccessHelper"; import media from "@ohos:multimedia.media"; import type audio from "@ohos:multimedia.audio"; import window from "@ohos:window"; import Logger from "@bundle:ohos.samples.videoplayer/entry/ets/util/Logger"; import { getTimeString } from "@bundle:ohos.samples.videoplayer/entry/ets/util/TimeTools"; import dataSharePredicates from "@ohos:data.dataSharePredicates"; import type { BusinessError } from "@ohos:base"; import abilityAccessCtrl from "@ohos:abilityAccessCtrl"; import type common from "@ohos:app.ability.common"; interface speedObj { text: string; value: number; } class AVPlayerConstants { // 倍速 static readonly SPEED_ARRAY: speedObj[] = [ { text: '0.75x', value: 0 }, { text: '1.0x', value: 1 }, { text: '1.25x', value: 2 }, { text: '1.75x', value: 3 }, { text: '2.0x', value: 4 } ]; } class Index extends ViewPU { constructor(parent, params, __localStorage, elmtId = -1, paramsLambda = undefined) { super(parent, __localStorage, elmtId); if (typeof paramsLambda === "function") { this.paramsGenerator_ = paramsLambda; } this.__fileTitle = new ObservedPropertySimplePU('标题', this, "fileTitle"); this.__currentTime = new ObservedPropertySimplePU(0, this, "currentTime"); this.__totalDuration = new ObservedPropertySimplePU(0, this, "totalDuration"); this.__isPlaying = new ObservedPropertySimplePU(false, this, "isPlaying"); this.__isLandscape = new ObservedPropertySimplePU(false, this, "isLandscape"); this.__isSpeedShow = new ObservedPropertySimplePU(false, this, "isSpeedShow"); this.__speed = new ObservedPropertySimplePU('1.0x', this, "speed"); this.__isShow = new ObservedPropertySimplePU(false, this, "isShow"); this.fileUri = ''; this.avPlayer = {} as media.AVPlayer; this.surfaceID = ''; this.count = 0; this.ratio = 1.0; this.isCreate = false; this.isLoading = false; this.xComponentController = new XComponentController(); this.callbackComplete = () => { }; this.callbackTimeUpdate = (nol: number) => { }; this.callbackBitrateUpdate = (bitrateList: number[]) => { }; this.callbackErrorUpdate = (error: string) => { }; this.atManager = abilityAccessCtrl.createAtManager(); this.appContext = getContext(this); this.setInitiallyProvidedValue(params); this.declareWatch("isPlaying", this.onChangePlay); this.declareWatch("isLandscape", this.changeOrientation); } setInitiallyProvidedValue(params: Index_Params) { if (params.fileTitle !== undefined) { this.fileTitle = params.fileTitle; } if (params.currentTime !== undefined) { this.currentTime = params.currentTime; } if (params.totalDuration !== undefined) { this.totalDuration = params.totalDuration; } if (params.isPlaying !== undefined) { this.isPlaying = params.isPlaying; } if (params.isLandscape !== undefined) { this.isLandscape = params.isLandscape; } if (params.isSpeedShow !== undefined) { this.isSpeedShow = params.isSpeedShow; } if (params.speed !== undefined) { this.speed = params.speed; } if (params.isShow !== undefined) { this.isShow = params.isShow; } if (params.fileUri !== undefined) { this.fileUri = params.fileUri; } if (params.avPlayer !== undefined) { this.avPlayer = params.avPlayer; } if (params.surfaceID !== undefined) { this.surfaceID = params.surfaceID; } if (params.count !== undefined) { this.count = params.count; } if (params.ratio !== undefined) { this.ratio = params.ratio; } if (params.isCreate !== undefined) { this.isCreate = params.isCreate; } if (params.isLoading !== undefined) { this.isLoading = params.isLoading; } if (params.xComponentController !== undefined) { this.xComponentController = params.xComponentController; } if (params.callbackComplete !== undefined) { this.callbackComplete = params.callbackComplete; } if (params.callbackTimeUpdate !== undefined) { this.callbackTimeUpdate = params.callbackTimeUpdate; } if (params.callbackBitrateUpdate !== undefined) { this.callbackBitrateUpdate = params.callbackBitrateUpdate; } if (params.callbackErrorUpdate !== undefined) { this.callbackErrorUpdate = params.callbackErrorUpdate; } if (params.atManager !== undefined) { this.atManager = params.atManager; } if (params.appContext !== undefined) { this.appContext = params.appContext; } } updateStateVars(params: Index_Params) { } purgeVariableDependenciesOnElmtId(rmElmtId) { this.__fileTitle.purgeDependencyOnElmtId(rmElmtId); this.__currentTime.purgeDependencyOnElmtId(rmElmtId); this.__totalDuration.purgeDependencyOnElmtId(rmElmtId); this.__isPlaying.purgeDependencyOnElmtId(rmElmtId); this.__isLandscape.purgeDependencyOnElmtId(rmElmtId); this.__isSpeedShow.purgeDependencyOnElmtId(rmElmtId); this.__speed.purgeDependencyOnElmtId(rmElmtId); this.__isShow.purgeDependencyOnElmtId(rmElmtId); } aboutToBeDeleted() { this.__fileTitle.aboutToBeDeleted(); this.__currentTime.aboutToBeDeleted(); this.__totalDuration.aboutToBeDeleted(); this.__isPlaying.aboutToBeDeleted(); this.__isLandscape.aboutToBeDeleted(); this.__isSpeedShow.aboutToBeDeleted(); this.__speed.aboutToBeDeleted(); this.__isShow.aboutToBeDeleted(); SubscriberManager.Get().delete(this.id__()); this.aboutToBeDeletedInternal(); } private __fileTitle: ObservedPropertySimplePU; get fileTitle() { return this.__fileTitle.get(); } set fileTitle(newValue: string) { this.__fileTitle.set(newValue); } private __currentTime: ObservedPropertySimplePU; get currentTime() { return this.__currentTime.get(); } set currentTime(newValue: number) { this.__currentTime.set(newValue); } private __totalDuration: ObservedPropertySimplePU; get totalDuration() { return this.__totalDuration.get(); } set totalDuration(newValue: number) { this.__totalDuration.set(newValue); } private __isPlaying: ObservedPropertySimplePU; get isPlaying() { return this.__isPlaying.get(); } set isPlaying(newValue: boolean) { this.__isPlaying.set(newValue); } private __isLandscape: ObservedPropertySimplePU; get isLandscape() { return this.__isLandscape.get(); } set isLandscape(newValue: boolean) { this.__isLandscape.set(newValue); } private __isSpeedShow: ObservedPropertySimplePU; get isSpeedShow() { return this.__isSpeedShow.get(); } set isSpeedShow(newValue: boolean) { this.__isSpeedShow.set(newValue); } private __speed: ObservedPropertySimplePU; get speed() { return this.__speed.get(); } set speed(newValue: string) { this.__speed.set(newValue); } private __isShow: ObservedPropertySimplePU; get isShow() { return this.__isShow.get(); } set isShow(newValue: boolean) { this.__isShow.set(newValue); } private fileUri: string | undefined; private avPlayer: media.AVPlayer; private surfaceID: string; private count: number; private ratio: number; private isCreate: boolean; private isLoading: boolean; private xComponentController: XComponentController; private callbackComplete: () => void; private callbackTimeUpdate: (nol: number) => void; private callbackBitrateUpdate: (bitrateList: number[]) => void; private callbackErrorUpdate: (error: string) => void; private atManager; private appContext: common.Context; async requestPermissionsFn() { Logger.info(`requestPermissionsFn entry`); try { this.atManager.requestPermissionsFromUser(this.appContext, [ 'ohos.permission.READ_IMAGEVIDEO', 'ohos.permission.MEDIA_LOCATION' ]).then(() => { this.isShow = true; Logger.info(`request Permissions success!`); }); } catch (err) { Logger.info(`requestPermissionsFromUser call Failed! error: ${err.code}`); } } async aboutToAppear() { await this.requestPermissionsFn(); this.fileUri = AppStorage.get('fileUri'); console.log("this.fileUri:" + this.fileUri); this.setCompleteCallback(() => { Logger.info('completed state called'); this.isPlaying = !this.isPlaying; }); this.setTimeUpdateCallback((time) => { this.currentTime = time; }); } aboutToDisappear() { this.release(); this.isLandscape = false; } async Init(): Promise { await this.release(); let mediaList: photoAccessHelper.PhotoAsset[] = []; const context = getContext(this); let medias: photoAccessHelper.PhotoAccessHelper = photoAccessHelper.getPhotoAccessHelper(context); let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates(); let fetchOptions: photoAccessHelper.FetchOptions = { fetchColumns: ['duration', 'width', 'height'], predicates: predicates }; try { let fetchResult: photoAccessHelper.FetchResult = await medias.getAssets(fetchOptions); if (fetchResult !== undefined && fetchResult.getCount() > 0) { console.info('fetchResult success'); mediaList = await fetchResult.getAllObjects(); Logger.info('get mediaList count' + fetchResult.getCount()); } } catch (err) { Logger.info(`getAssets failed, error: ${err.code}, ${err.message}`); } for (let i = 0; i < mediaList.length; i++) { if (mediaList[i].uri === this.fileUri) { mediaList[i].open('r').then(async (fd: number) => { this.avPlayer = await media.createAVPlayer(); this.fileTitle = mediaList[i].displayName; this.totalDuration = mediaList[i].get('duration') as number; this.isCreate = true; this.setSourceInfo(); this.setStateChangeCallback(); let width: number = mediaList[i].get('width') as number; let height: number = mediaList[i].get('height') as number; this.ratio = width / height; this.avPlayer.url = 'fd://' + fd; }); } } } async release() { if (this.isCreate) { await this.avPlayer.release(); this.isCreate = false; } } getPlay() { if (this.isCreate) { this.avPlayer.play(); } } getPause() { if (this.isCreate) { this.avPlayer.pause(); } } setSurfaceID(): void { Logger.info('play video: surfaceID is:' + this.surfaceID); this.avPlayer.surfaceId = this.surfaceID; } setCompleteCallback(func: () => void) { this.callbackComplete = func; } setTimeUpdateCallback(func: (nol: number) => void) { this.callbackTimeUpdate = func; } setBitrateUpdateCallback(func: (bitrateList: number[]) => void) { this.callbackBitrateUpdate = func; } setErrorCallback(func: (error: string) => void) { this.callbackErrorUpdate = func; } // 视频信息上报函数 async setSourceInfo(): Promise { // 时间上报函数 this.avPlayer.on('timeUpdate', (time: number) => { Logger.info('timeUpdate called: time is :' + time); Logger.info('timeUpdate called: currentTime is :' + this.avPlayer.currentTime); this.callbackTimeUpdate(time); }); // 音量变化回调函数 this.avPlayer.on('volumeChange', (vol: number) => { Logger.info('volumeChange success,and new volume is :' + vol); }); // 视频播放结束触发回调 this.avPlayer.on('endOfStream', () => { Logger.info('endOfStream success'); }); // seek操作回调函数 this.avPlayer.on('seekDone', (seekDoneTime: number) => { Logger.info('seekDone success,and seek time is:' + seekDoneTime); }); // 视频总时长上报函数 this.avPlayer.on('durationUpdate', (duration: number) => { Logger.info('durationUpdate success,and durationUpdate is:' + duration); }); // 设置倍速播放回调函数 this.avPlayer.on('speedDone', (speed: number) => { Logger.info('speedDone success,and speed value is:' + speed); }); // bitrate设置成功回调函数 this.avPlayer.on('bitrateDone', (bitrate: number) => { Logger.info('bitrateDone success,and bitrate value is:' + bitrate); }); // 缓冲上报回调函数 this.avPlayer.on('bufferingUpdate', (infoType: media.BufferingInfoType, value: number) => { Logger.info('bufferingUpdate success,and infoType value is:' + infoType + ', value is :' + value); }); // 首帧上报回调函数 this.avPlayer.on('startRenderFrame', () => { Logger.info('startRenderFrame success 1'); }); // 视频宽高上报回调函数 this.avPlayer.on('videoSizeChange', (width: number, height: number) => { Logger.info('videoSizeChange success,and width is:' + width + ', height is :' + height); }); // 焦点上报回调函数 this.avPlayer.on('audioInterrupt', (info: audio.InterruptEvent) => { // 触发焦点上报后调用暂停接口暂停播放 Logger.info('audioInterrupt success,and InterruptEvent info is:' + JSON.stringify(info)); }); // HLS上报所有支持的比特率 this.avPlayer.on('availableBitrates', (bitrates: number[]) => { Logger.info('availableBitrates success,and availableBitrates length is:' + bitrates.length); this.callbackBitrateUpdate(bitrates); }); // 设置错误监听 this.avPlayer.on('error', (error) => { Logger.error('error happened,message is :' + error.message); this.callbackErrorUpdate('Error ' + error.code + ' - ' + error.message); }); } // 状态机上报回调函数 async setStateChangeCallback(): Promise { this.avPlayer.on('stateChange', async (state: string, reason: media.StateChangeReason) => { Logger.info('stateChange callback function is triggered,state is:' + state + ',reason is :' + reason); switch (state) { case 'idle': this.release(); Logger.info('state idle called'); break; case 'initialized': this.isLoading = true; Logger.info('state initialized called'); this.setSurfaceID(); this.avPlayer.prepare(); break; case 'prepared': Logger.info('state prepared called'); this.isLoading = true; this.isPlaying = true; this.totalDuration = this.avPlayer.duration; this.getPlay(); break; case 'playing': Logger.info('state playing called'); this.isLoading = false; break; case 'paused': Logger.info('state paused called'); break; case 'completed': Logger.info('state completed called'); this.callbackComplete(); break; case 'stopped': Logger.info('state stopped called'); break; case 'released': Logger.info('state released called'); this.isLoading = false; break; case 'error': Logger.info('state error called'); break; default: Logger.info('unkown state :' + state); break; } }); } setAVPlayerCallback() { this.avPlayer.on('seekDone', (seekDoneTime) => { Logger.info(`AVPlayer seek succeeded, seek time is ${seekDoneTime}`); }); this.avPlayer.on('error', (err) => { Logger.error(`Invoke avPlayer failed, code is ${err.code}, message is ${err.message}`); this.avPlayer.reset(); }); // 状态机变化回调函数 this.avPlayer.on('stateChange', async (state, reason) => { switch (state) { case 'idle': this.avPlayer.release(); break; case 'initialized': Logger.info('AVPlayerstate initialized called.'); this.avPlayer.surfaceId = this.surfaceID; this.avPlayer.prepare().then(() => { Logger.info('AVPlayer prepare succeeded.'); }, (err: BusinessError) => { Logger.error(`Invoke prepare failed, code is ${err.code}, message is ${err.message}`); }); break; case 'prepared': this.avPlayer.play(); break; case 'playing': if (this.count !== 0) { this.avPlayer.seek(this.avPlayer.duration); } else { this.avPlayer.pause(); } this.count++; break; case 'paused': this.avPlayer.play(); break; case 'completed': this.avPlayer.stop(); break; case 'stopped': Logger.info('AVPlayer state stopped called.'); this.avPlayer.reset(); break; case 'released': Logger.info('AVPlayer state released called.'); break; default: Logger.info('AVPlayer state unknown called.'); break; } }); } onChangePlay() { this.isPlaying ? this.getPlay() : this.getPause(); } changeOrientation() { // 获取UIAbility实例的上下文信息 let context = getContext(this); // 调用该接口手动改变设备横竖屏状态(设置全屏模式,先强制横屏,再加上传感器模式) window.getLastWindow(context).then((lastWindow) => { lastWindow.setPreferredOrientation(this.isLandscape ? window.Orientation.LANDSCAPE_INVERTED : window.Orientation.PORTRAIT); lastWindow.setPreferredOrientation(this.isLandscape ? window.Orientation.AUTO_ROTATION_LANDSCAPE : window.Orientation.PORTRAIT); }); } speedPopup(parent = null) { this.observeComponentCreation2((elmtId, isInitialRender) => { List.create({ space: 20 }); List.width(80); List.padding(10); }, List); this.observeComponentCreation2((elmtId, isInitialRender) => { ForEach.create(); const forEachItemGenFunction = _item => { const item = _item; { const itemCreation = (elmtId, isInitialRender) => { ViewStackProcessor.StartGetAccessRecordingFor(elmtId); ListItem.create(deepRenderFunction, true); if (!isInitialRender) { ListItem.pop(); } ViewStackProcessor.StopGetAccessRecording(); }; const deepRenderFunction = (elmtId, isInitialRender) => { itemCreation(elmtId, isInitialRender); this.updateFuncByElmtId.set(elmtId, itemCreation); this.observeComponentCreation2((elmtId, isInitialRender) => { Row.create(); Row.padding({ left: 10 }); Row.width("100%"); Row.height(20); }, Row); this.observeComponentCreation2((elmtId, isInitialRender) => { Text.create(item.text); Text.fontColor('rgba(255,255,255,0.90)'); Text.fontSize(15); Text.onClick(() => { if (this.isCreate) { this.avPlayer.setSpeed(item.value); } this.speed = item.text; this.isSpeedShow = false; }); }, Text); Text.pop(); Row.pop(); ListItem.pop(); }; this.observeComponentCreation(itemCreation); ListItem.pop(); } }; this.forEachUpdateFunction(elmtId, AVPlayerConstants.SPEED_ARRAY, forEachItemGenFunction, (item: speedObj) => JSON.stringify(item), false, false); }, ForEach); ForEach.pop(); List.pop(); } initialRender() { this.observeComponentCreation2((elmtId, isInitialRender) => { Stack.create({ alignContent: Alignment.Top }); Stack.width('100%'); Stack.height(this.isLandscape ? '100%' : '45%'); }, Stack); this.observeComponentCreation2((elmtId, isInitialRender) => { Column.create(); Column.width('100%'); Column.height('100%'); Column.backgroundColor(Color.Black); Column.zIndex(0); }, Column); this.observeComponentCreation2((elmtId, isInitialRender) => { If.create(); if (this.isShow) { this.ifElseBranchUpdateFunction(0, () => { this.observeComponentCreation2((elmtId, isInitialRender) => { XComponent.create({ id: '', type: 'surface', controller: this.xComponentController }, "ohos.samples.videoplayer/entry"); XComponent.width('100%'); XComponent.height('100%'); XComponent.aspectRatio(1920 / 1080); XComponent.onLoad(() => { this.surfaceID = this.xComponentController.getXComponentSurfaceId(); this.Init(); }); }, XComponent); }); } else { this.ifElseBranchUpdateFunction(1, () => { }); } }, If); If.pop(); Column.pop(); this.observeComponentCreation2((elmtId, isInitialRender) => { Flex.create({ direction: FlexDirection.Column, justifyContent: FlexAlign.SpaceBetween }); Flex.width('100%'); Flex.height('100%'); Flex.zIndex(1); }, Flex); this.observeComponentCreation2((elmtId, isInitialRender) => { Text.create(this.fileTitle); Text.textAlign(TextAlign.Start); Text.fontFamily('HarmonyHeiTi-Medium'); Text.textOverflow({ overflow: TextOverflow.Ellipsis }); Text.fontSize(24); Text.fontColor(Color.White); Text.padding(10); Text.width('100%'); }, Text); Text.pop(); this.observeComponentCreation2((elmtId, isInitialRender) => { Row.create(); }, Row); this.observeComponentCreation2((elmtId, isInitialRender) => { // 播放icon Image.create(this.isPlaying ? { "id": 16777225, "type": 20000, params: [], "bundleName": "ohos.samples.videoplayer", "moduleName": "entry" } : { "id": 16777224, "type": 20000, params: [], "bundleName": "ohos.samples.videoplayer", "moduleName": "entry" }); // 播放icon Image.width(24); // 播放icon Image.height(24); // 播放icon Image.margin({ top: 0, bottom: 0, left: 10, right: 10 }); // 播放icon Image.onClick(() => { this.isPlaying = !this.isPlaying; }); }, Image); this.observeComponentCreation2((elmtId, isInitialRender) => { // 时间轴 Row.create(); // 时间轴 Row.layoutWeight(1); // 时间轴 Row.height(25); }, Row); this.observeComponentCreation2((elmtId, isInitialRender) => { Text.create(getTimeString(this.currentTime)); Text.fontSize(16); Text.fontColor('#FFFFFF'); Text.fontWeight(500); Text.opacity(0.6); }, Text); Text.pop(); this.observeComponentCreation2((elmtId, isInitialRender) => { Slider.create({ value: Math.round(this.currentTime / this.totalDuration * 100) }); Slider.selectedColor(Color.White); Slider.layoutWeight(1); Slider.trackColor(Color.Gray); Slider.onChange((value: number) => { if (this.isCreate) { this.currentTime = this.totalDuration * value / 100; this.avPlayer.seek(this.currentTime); } }); }, Slider); this.observeComponentCreation2((elmtId, isInitialRender) => { Text.create(getTimeString(this.totalDuration)); Text.fontSize(16); Text.fontColor('#FFFFFF'); Text.fontWeight(500); Text.opacity(0.6); }, Text); Text.pop(); // 时间轴 Row.pop(); this.observeComponentCreation2((elmtId, isInitialRender) => { // 全屏icon Image.create({ "id": 16777223, "type": 20000, params: [], "bundleName": "ohos.samples.videoplayer", "moduleName": "entry" }); // 全屏icon Image.width(24); // 全屏icon Image.height(24); // 全屏icon Image.margin({ top: 0, bottom: 0, left: 10, right: 10 }); // 全屏icon Image.opacity(this.isLandscape ? 1 : 0.4); // 全屏icon Image.onClick(() => { this.isLandscape = !this.isLandscape; }); }, Image); this.observeComponentCreation2((elmtId, isInitialRender) => { // 倍速icon Text.create(this.speed); // 倍速icon Text.fontColor('rgba(255,255,255,0.90)'); // 倍速icon Text.fontSize(18); // 倍速icon Text.fontFamily('HarmonyHeiTi-Medium'); // 倍速icon Text.margin(15); // 倍速icon Text.onClick(() => { this.isSpeedShow = !this.isSpeedShow; }); // 倍速icon Text.bindPopup(this.isSpeedShow, { builder: { builder: this.speedPopup.bind(this) }, placement: Placement.Top, popupColor: 'rgba(0,0,0,0.6)' }); }, Text); // 倍速icon Text.pop(); Row.pop(); Flex.pop(); Stack.pop(); } rerender() { this.updateDirtyElements(); } } ViewStackProcessor.StartGetAccessRecordingFor(ViewStackProcessor.AllocateNewElmetIdForNextComponent()); loadDocument(new Index(undefined, {})); ViewStackProcessor.StopGetAccessRecording(); CpurgeVariableDependenciesOnElmtIdrmElmtId funcupdateStateVars}[ 9n iw>_~ +Lk9Zy+Gf /Su#Bao!@al>_*K|$Eh'Kn:]|;^}`"'63 V>.6L/L3 87R(y())))@*_*u+,,,---HeJKLiM 9 ,.+?;5> 3405l491 0< r?">y"\&"s"l*"k,k,k-"9H"aM" )LH) NH E    L  NH NH   G*7- E 4*D( xE  *)-#- x x x x xR+H*ZM,E  ,,r-x x"# x xL#LL)$LL*LL1LL8LIY P Z (P >I$E LL&i@"d''''''''R(y())))@*,,HKiM)XI>(_u+~u+_*_*L L+-L-k,,--eJeJ9-Z-yH'2(%HGb,fB,@JINJI I/JS(JuIG)J,# IBXI (  u+ u+e  _* _*  L L  - -  , ,  - -  eJ eJ  - - H ' 2( %+ N H b, B, @JINJII J (J I G )J ,  I =H9X7 #t2 -8 t.:/>3 =k05/I;<$4 >#02e< s8:=P;/< 4,2;79""a!J'n9bsl^  +a9a;  J]|a IaKkaE* h  aya@.7$>|_}-0?NjKo :w [a a)4aaa_aa  aa~a   /afa#aaLaZaaa>aGa.aBaa aa/aaSaua aaaa aa}#Logger#@bundle:ohos.samples.videoplayer/entry/ets/util/LoggerA#common#@ohos:app.ability.common9@ohos:file.photoAccessHelper-@ohos:multimedia.media@ohos:windowm@bundle:ohos.samples.videoplayer/entry/ets/util/Loggers@bundle:ohos.samples.videoplayer/entry/ets/util/TimeTools=@ohos:data.dataSharePredicatespopupColorrgba(0,0,0,0.6)id typebundleName1ohos.samples.videoplayermoduleName entrytop bottom left rightsurface space 0.75x 1.25x 1.75x 2.0x#speedObj#Index_Paramsconstructorg#dataSharePredicates#@ohos:data.dataSharePredicates#getTimeString#@bundle:ohos.samples.videoplayer/entry/ets/util/TimeTools;#media#@ohos:multimedia.media_#photoAccessHelper#@ohos:file.photoAccessHelper3#BusinessError#@ohos:base;#audio#@ohos:multimedia.audio-%{public}s, %{public}s+[Samples_VideoPlayer] debug domain formatkohos.samples.videoplayer/entry/ets/util/Logger.Logger prefix warnaLohos.samples.videoplayer/entry/ets/util/Logger;m$Wu+1X+ W|+ZW+\&V&IWCentry/src/main/ets/util/Logger.ts import hilog from "@ohos:hilog"; class Logger { private domain: number; private prefix: string; private format: string = "%{public}s, %{public}s"; constructor(prefix: string) { this.prefix = prefix; this.domain = 0xFF00; } debug(...args: any[]) { hilog.debug(this.domain, this.prefix, this.format, args); } info(...args: any[]) { hilog.info(this.domain, this.prefix, this.format, args); } warn(...args: any[]) { hilog.warn(this.domain, this.prefix, this.format, args); } error(...args: any[]) { hilog.error(this.domain, this.prefix, this.format, args); } } export default new Logger('[Samples_VideoPlayer]');  _j&;# """ x   <XjXj&_&_& _&_&*default*0: DateMB floorgetDategetFullYeargetHoursgetMinutesgetMonthgetSecondssohos.samples.videoplayer/entry/ets/util/TimeTools.fillNumyohos.samples.videoplayer/entry/ets/util/TimeTools.filterSize{ohos.samples.videoplayer/entry/ets/util/TimeTools.getDateTimeohos.samples.videoplayer/entry/ets/util/TimeTools.getTimeStringtoFixedtoString年日 月gLohos.samples.videoplayer/entry/ets/util/TimeTools;C X X}Y܍ G>Y&k,Z3fillNumnumIentry/src/main/ets/util/TimeTools.tsfilterSizeKEEP_DECIMALS size /* * Copyright (c) 2022-2024 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ export function fillNum(num) { if (num < 10) { return `0${num}`; } return num.toString(); } export function getTimeString(time) { if (time == -1 || time == undefined) { time = 0; } const TIMESTAMP: number = 1000; const TIME_UNIT: number = 60; const MAX_HOURS: number = 24; let hour = Math.floor(time % (TIMESTAMP * TIME_UNIT * TIME_UNIT * MAX_HOURS) / (TIMESTAMP * TIME_UNIT * TIME_UNIT)); let minute = Math.floor(time % (TIMESTAMP * TIME_UNIT * TIME_UNIT) / (TIMESTAMP * TIME_UNIT)); let second = Math.floor(time % (TIMESTAMP * TIME_UNIT) / TIMESTAMP); if (hour > 0) { return `${fillNum(hour)}:${fillNum(minute)}:${fillNum(second)}`; } return `${fillNum(minute)}:${fillNum(second)}`; } export const filterSize = (size: number) => { const KEEP_DECIMALS: number = 2; return `${(size / (1024 * 1024)).toFixed(KEEP_DECIMALS)}MB`; }; export function getDateTime(time: number) { const TIMESTAMP: number = 1000; const EIGHT_HOURS: number = 28800; time = (time + EIGHT_HOURS) * TIMESTAMP; let date = new Date(time); let year = date.getFullYear(); let month = date.getMonth() + 1; let day = date.getDate(); let hours = date.getHours(); let minute = date.getMinutes(); let second = date.getSeconds(); return `${year}年${fillNum(month)}月${fillNum(day)}日 ${fillNum(hours)}:${fillNum(minute)}:${fillNum(second)}`; } getDateTime second minute hoursday date month yearTIMESTAMPEIGHT_HOURSTIME_UNIT hourMAX_HOURS8 k,"!    k,k, x    k, !8I:ISI%_TypeOfInstruction #SlotNumber7'!#5!#7C!#'exportedSymbolTypeso!#}!#!#7!#7!# "#!78"#### #"#:#7H#`#37#7##### #&7#2#@#_#m#7{######7###.7(#6#N#\#t## 7#7##7####7#(#@#X#f###67### #97#a7N#_7#####8#%7F#7T#b#p#l7#X7#7#A7#.# 7P#h##7v###y7##7 #7$#<#T#l##7# 7#07# 7#7##6#N#f#7~#7#[7## 7##7#70#H#74#L#x#########47K#DEEEE`a`B$Qa~ a`Baba>"a > a ? a ` B!a `a` . a a ( Q ` a ( O>M` a `1 e~ a`B aba>"a > a ? a ` B!a `a` . a a ( Q ` a ( O>M` a `1e!DpDD?a`Ba>a`.e<DpDDDaaba``Ba``a``a`d9+DDD)aa`=~ a5&*aa`Ba`|e 4DDD~ a`Baba>"a>a>a `1eDEEEE~ a`Baba>"a >a >a ? a ` B!a `a`Ba` .  a `1 ? a`B a>a`a ` Ba ` Ba `/ e 4DDD~ a`Baba>"a>a>a `1e 4DDD~ a`Baba>"a>a>a `1e (D` =`=D~ a`Baba>"a >a >a `1~ a`Ba`-a`a ` Ba<a ` B a < a `/ a`B#a3%a`.M4a?a`Ba>a `a ` B  a >  a `. `a`Ba>a3$a `/ eS>2 4DDD~ a`Baba>"a>a>a `1e(DDDD`a`Bna`Ba`a`.e?DpDD~ Ua`Ba>a`.<a<a`Ba#QMCe!DDDD? a`B!a`a`.d,DDDD~ Ua`Ba>a` a`.e DDDDD?Ba`Ba`-?Ba`B*a>4a`.? Ba`B a>4a`. ?Ba`Ba?Aa`B@a`.?Ba`B-aba`.e lDDDD~ Ua`Ba>Pa`a`B a>0 a`a`B a> a`. <a`B ~a`Ba`-e DDDDaa `. C*a `.# a< a < a ` 7% a`B'a>a `.) aa` 0C1$dad  =DDDDD~ Ua`Ba>'a `  a >/  a` a`.e,DDDD~ Ua`Ba>a` a`.e$D`DqD<a<a`Ba#QMCe DDDDD?da`Ba~ a<a ` Ba `* a`.? da`B aba`. ?da`Ba>-a`.?da`Baba`.?da`Bac333333?a`.e(DDDD`a`Bta`Ba`a`.e(DDDD`a`Bsa`Ba`a`.e DDDDD?Na`Baaa z`a`.? Na`B *aba`. ?Na`Baba`.?Na`Baa`a`.?Na`Ba<a`B$Q bM c?a`.? Na`B!a3#9a`.$e SDDDD~ Ua`Ba>Qa`a`B a>0 a`a`B a> a`. e BDDDD~ Ua`Ba>}a? a ` B!a`a `. a`.e DDDDD?da`Ba< a`Ba`.?da`Ba>a`. ? da`B aba`.?da`Ba3ia`.e pDDDDD?Ma`Ba`-<a`B$Q%<a`Baba3 Ua `/  M#<a`B aba30a `/ e$D`DqD<a<a`Ba#QMCe,DDDD~ Ua`Ba>)a` a`.e =DDDDD~ Ua`Ba>a `  a >1  a` a`.e aDDDD<a`B$QL<a<a`Ba` abd C<a`B~a`B a<a`B a`.e#DpDD~ Ua`Ba>7a`.e UDDDDD?[a`Ba`-?[a`Baba`.? [a`B aba`. e(DDDD`a`Bma`Ba`a`.eDDDDD?[a`Ba`-eDDEEE?]a`Baa?Va ` Ba <a ` Ba <a ` B  a bd a ` . z%`a`.?]a`Ba?Aa`Bja`.?]a`Baba`.? ]a`B!a?#Aa`B$Ka`.&?(]a`B)a3+Fa`.,e qDDDDD?[a`Ba`-?[a`Baa`a`. ? [a`B *a>4a`.?[a`Baba`.e(DDDD`a`Boa`Ba`a`.e DDDDD?_a`Baa?>a ` Bgzy`a`. ? _a`B *a>4a`.?_a`Ba<a`B$Q>4M>5a`.e(DDDD`a`Bpa`Ba`a`.e DDDDD?ka`Baa<a ` B,z`a>a `/ ? ka`B *a>4a`. ?ka`Ba>4a`.?ka`B{abab8 a`.?ka`Ba3Ya`.e `DDDDD?Sa`Baa`a`.?Sa`B*abPa`. ? Sa`B ab a`.e-DpDD<aC~ Ua`Ba>a`.e qDDDD~ Ua`Ba>a`a`B a`.<a`Ba>Ea `a ` B  a>, a`a`B a`.e(DDD<a`Ba3Qa?ka`/eaDEEEE?Ia`Ba`-3wa<a`Ba`a -a`.?da`Baba`.?da`Bac333333?a`.e;DDD<a<a`B,a`Ba`-C<a`BOa`- e(DDDD`a`Bra`Ba`a`.e(DDDD`a`Bqa`Ba`a`.eD`DqDD<a`Ce DDDD`a`Ba<a`B$Q~ +a`BXa`BRM~ +a`BXa`B Ya`. `a`Ba<a`B$Q~ +a`BXa`B6M~ +a`BXa`BYa`.e,DDDD~ Ua`Ba>a` a`.e DDDDD?da`Ba<a`Ba`.?da`Ba? ea`B `a`. ?da`Ba>La`.?da`Baa?fa ` BDz`a`.?da`B aba`."?$da`B%a?'Aa`B(ja`.*?,da`B-ab a`./?1da`B2*a>4a`.4e4DDDD~ Ua`Ba>8a` a> a`.e,DDDD~ Ua`Ba>a` a`.e JDDDD~ Ua`Ba>a`a`B a`.<a`Ba`a`. eDDEEE?da`Ba<a`Ba`.?da`Ba>a`. ? da`B aba`.?da`Ba>La`.?da`Baba`.?da`Ba3ma`.?!da`B"a<a`B$a&a 'a <a ` B(a ` B*a <a ` ., z. ` z0 ?2Za ` B3gz5 ` a `/7 e DDDDEa`a>'OC>'OW>'P>'P>'PE>'PX>'Pj>'PN<a ` B~a`B a`- N~ Ua`Ba>=a `. <a`B~a<a`BC<a ` B~a ` Ba ` - a`B#a3 Ga 3!>a `/" NA<a ` B$~a`B&a`-(N%<a`B*ab',O2<a ` B-~a`B/a<a ` B1~a ` B3a `.5 M<a ` B7~a`B9a`-;<a`B=a`!?C@`BN<a ` BC~a`BEa`-GN<a ` BI~a`BKa`-MMr~ Ua`BOa>:a `.Q <a ` BS~a`BUa`-WM<~ Ua`BYa>9a `.[ M~ Ua`B]a>;a `._ Mdad DDDDDa~ Ua`Ba>a `  a >2  a` a`.`a>'OM>'Pt>' P>' P>' P1>' PF>' Pl>'P>'PN<a`Ba`-~ Ua`Ba> a `. N<aC~ Ua`Ba> a `. <a`Ba`- <a ` B"~a`B$a`-&N[~ Ua`B(a>a `.* <aC,<aC.<a<a ` B0~a`B2C4<a`B6a`-8N~ Ua`B:a> a `.< <aC>N~ Ua`B@a> a `.B N~ Ua`BDa>a `.F <a`BHa`-JN~ Ua`BLa>a `.N Mj~ Ua`BPa>a `.R <aCTMC~ Ua`BVa> a `.X M&~ Ua`BZa> a ` \ a `.] Mdad #DpDD~ Ua`Ba>a`.eD@DQDbe#DpDD~ Ua`Ba>a`.e`DpDD<a`B$Q,<a`B~a`Ba< a`B%a`.<a< a`B C <aCe tDDDD~ Ua`Ba>a` a`.~ Ua`Ba>a<a ` B~a`B a`. <a`Ba`a`.e DDDDD?Na`Ba<a`B$Qaa z`M a a z `a`. ?Na`B*aba`.?Na`Baba`.?Na`Baa`a`.?Na`B a3"Ca`.#e DDDDD?Fa`Baa?Ha ` BBz? Ga ` B ^z `a`.?Fa`B*a>4a`.?Fa`Ba>4a`.?Fa`B-aba`.e$D`DqD<a<a`Ba#QMCe D@DQDb`dD`=`=EEEEE`a ( Oba ` a`a ( Oa`a `a `a 2 a <` a ` =`a >( O<a `C <a ? Wa >.a <a >a   C n <a ?Wa ba <a >a  Cm <a ?Wa ba <a >a  Ct <a ?Wa a <a >a  Cp <a ?Wa a <a >a  C!o <a ?#Wa a <a >a $ C&r <a ?(Wa >3a <a >a ) C+s <a ?-Wa a <a >a . C0q <a >C2 <a C4~ <a >C6 <a bC8 <a bC: <a C< <a C> <a ?@la A CC, <a 3EgCF <a 3HWCI <a 3KPCL <a 3N?CO <a ~ a ` BQa ` -S CU' <a ?Wa <a ` *X CZz <a ` B\a `a ` .^ <a ` B`a >a <a ` Bba ` /d <a ` Bfa >a <a ` Bha ` /j <dD`=`= a< a ` Ba`- `a `abO` ` aa`=?a< a `* a~ a ` B a`a `. a~ a ` B Caaaa z`z`a`a ` Ba `a ` . `a `a b O` ` a`a ' $`a ` Ba ` - a b! $?"a ` B#a >a ` .% `a ` B'a ` -) `a `a b+ O` ` a < ` a ` =~ Ua ` B,a >a `a ` B.a ` -0 2 a ` .3 MMa~ Ua ` B5a >a `a ` B7 9 a >. : a `a ` B; = a > > a ` .? ba`=< a< a ` BACP< a < a ` 7D a ` BF#aa ` .O a ` BQ#a3S6a `.T <ai`=< a`!Va < ` a ` =`WNHMiidadKD` =` =a<a`Ba`-`a`abO``<a?a`Ba>a`.C ? a`B a>a<a`B a`.<a`Ba31a`.<a`Ba3\a`.dadDDD`a`Bna`Bva`-`a`Bma`Bva`- `a`B ta`Bva`-`a`Bpa`Bva`-`a`Boa`Bva`-`a`Bra`B va`-"`a`B$sa`B&va`-(`a`B*qa`B,va`-.?0ca`B1Ja`-3a`B5a`a`B7a`-9a`.;`a`B=wa`-?e#D`DqD`a`Ba`-`aCe RD` =` =?a<a`*a~ +a`Ba`a `. a`B#a3 ]a`. e DpDD`a`Bma`Ba`-d DDDDD< a`a`a`+<a`B"a`Ba`a< a `/ <a`Ba3 La? [a `/  <a`Ba3Aa?da `/ ?da`Ba`-?[a`Ba`-?Ta`Ba`-!e DpDD`a`Bna`Ba`-dYDDDD`a`= 3a`=3ua`=<a`Ba< a`.?Ta`Ba`- e DDDpa5naa`Ba`a`= < <aaa`ya`y a`y  a`ya`y`C\?ha5oaa`Ba>a a `4va  >a a `4/a  >a a `4ta  >a a `4Ia  >a a `4a  >a a `4;a  >a a `4|a  >a a `4 Oa  >a a `4!{a  >a a `4"Ma  >a a `4#~a  >a a `4$Za  >a a `4%a  >a a `4&<a  >a a `4'}a  >a a `4([a  `4)z*`4,qz-u`4/rz0x`42pz3O`45z6`48yz9`4;xz<`4>z?`4AzB`4DzE`4GzH`4JzK`4MzN`4PzQ`4SzT`4VzW`4YszZ`4\z]`4_zz``4bzc`a?eia`Bfaa?hia`Bi?a`-ka`.m?oa`aaapa`*r?tia`Buba`-we.DpDD`a`B$Q`a`B~a`Ba`-e.DpDD`a`B$Q`a`B~a`Ba`-eD` =` =<a`Ba3Na?_a`/<a`Ba34a? Ba`/ <a`B a3Ba?Ma`/?Ma`Ba`-?Ba`Ba`-<a`Ba3la?Fa`/ <a`B"a3$_a?%da`/&?(da`B)a`-+<a`B-a3/Ja?0[a`/1<a`B3a35ka?6Na`/7<a`B9a3;Ha?<[a`/=<a`B?a3A:a?Bda`/C?Eda`BFa`-H<a`BJa3LKa?M]a`/N<a`BPa3RXa?Sda`/T?Vda`BWa`-Y?[[a`B\a`-^<a`B`a3b=a?cNa`/d<a`Bfa3hca?ida`/j?lda`Bma`-o?q[a`Bra`-t?vFa`Bwa`-y?{_a`B|a`-~e DpDD`a`Boa`Ba`-d DpDD`a`Bpa`Ba`-d DpDD`a`Bqa`Ba`-d DpDD`a`Bra`Ba`-d vDDDDD?ia`Baa`a`.?Ta`Ba< aa `/ `#QM$Q? Ta`B a`- ?ia`Bba`-e9D`DqD`a`B$Q`a`Ba`-M`a`Ba`-eDDDD`a`Bna`Ba`a`.`a`Bma`Ba`a`. `a`B ta`Ba`a`.`a`Bpa`Ba`a`.`a`Boa`Ba`a`.`a`Bra`B a`a`."`a`B$sa`B&a`a`.(`a`B*qa`B,a`a`..e`DpDDa`a`B$QC`a`B~a`Ba`-`a`abO```aC dad R[ D` =` =a~ Ua`Ba>a`.<a`B'a`Ba<a`Bza a a `/  a`B #a3Sa`.M6a~ Ua`Ba>a`a`B a> a`.dad,Ft4D`DqD`a`B!a`-eD` =` =<a`B~a`Ba>a3`a`/<a`B~a`B a>a3 5a`/ <a`B~a`Ba>a3da`/eD`DqDD`a`CeD`DqDD`a`CeD`DqDD`a`CeDpDDD`a`Ba'O`a`a`BC`a`Ba' O`a`a`B C `a`Ba'O`a`a`BC`a`Ba'O`a`a`BC`a`Ba'O`a`a`BC!`a`B#a'%O`a`a`B&C(`a`B*a',O`a`a`B-C/`a`B1a'3O`a`a`B4C6`a`B8a':O`a`a`B;C=`a`B?~a'AO`a`a`BB~CD~`a`BFa'HO`a`a`BICK`a`BMa'OO`a`a`BPCR`a`BTa'VO`a`a`BWCY`a`B[a']O`a`a`B^C``a`Bba'dO`a`a`BeCg`a`Bi,a'kO`a`a`Bl,Cn,`a`Bpa'rO`a`a`BsCu`a`Bwa'yO`a`a`BzC|`a`B~a'O`a`a``a`a'O`a`a``a`'a'O`a`a`''`a`za'O`a`a`zzeD` =` =a<a`B~a`Ba>a3ja`/<a`B~a`B a>(a3 Da`/ <a`B~a`Ba>a3fa`/<a`B~a`Ba>a38a`/<a`B~a`Ba>a3 3a`/!<a`B#~a`B%a>a3'^a`/(<a`B*~a`B,a>a3.aa`//<a`B1~a`B3a>a35Ea`/6<a`B8~a`B:a>a3&a3C7a`/D<a`BF~a`BHa>|a3J@a`/K<a`BM~a`BOa>a3Qba`/R<a`BT~a`BVa>a3XTa`/YdadAD` =` =a<a`B~a`Ba>a3ea`/dad+<MDDD~ Ua`Ba>a`a`B a`.`a`B~a`a`B C eD`DqDD`a`Ce DpDD`a`Bsa`Ba`-d D` =` =D`a(Oa<a`Ba3Ra?Sa`/<a`Ba3 Va? Ia`/ ? Ia`Ba`-?Sa`Ba`-e DpDD`a`Bta`Ba`-d DPDaDrDe0D`DqDD`a>C`a`C`abC`d LDDDDa~ a`Ba`a`Ba`a`Ba`a ` Ba `a `1e LDDDDa~ a`Ba`a`Ba`a`Ba`a ` Ba `a `1e 3DDDpa5aa`Ba`a`a>a|e LDDDDa~ a`Ba`a`Ba`a`Ba`a ` Ba `a `1e LDDDDa~ a`Ba`a`Ba`a`Ba`a ` Ba `a `1e;DpDDD`ab O>a` a> d`a`Ba`-d JDDDDba>a`a ba b  a`Ba`a `. a> d,D@`=`=3|3|3|3|eEEEEba bpa `abp ab a?a`aa`a`Ba`-a `a`B a`- ab a `a`Ba`-a`a`Ba`-a`a`Ba`-a`a`Ba`-a>a` a> a}a` a`*  "a> #a}a`a`*$ &a> 'a}a`a`*( *a> +a}a`a`*, .a> /a}a`a`*0 2a> 3dEEEE`a ba `  #Q `a  $Q baba b<aba?Va ` Ba `abab< ab< ab  a bab< ab<  a ` . a?Va ` Ba `abab< ab< a bab<   a ` . a?Va ` Ba `abab< a b  a ` . a`a b! OT>a }a `a ` *" $ a > % a }a `a ` *& ( a > ) a }a `a ` ** , a > - d>a }a `a ` *. 0 a > 1 a }a `a ` *2 4 a > 5 d           k?          I&%%%%%%&%%&%%&%%#$/`o`w` *`o`x`     &%%%%%%&%%  &%%%&%%'%%'%%4   2      -'& %%%'%%&%%(&%%*4 4  "&%%%&%%'%%4&4           k   <&%%%&%%'%%:%%:%%&4P_ P4*        "&%%%&%%'%%&4"&%%%&%%'%%0&4       k  0     i  /            O&%%%:%%;%%&45 1 ? Q &%% JSS  / "&%%%&%%'%%,&4%%%%'%%&%%%%%%%%%%&%%9    k   $%%%%%%&%%         '%%%%%%&%%Z%%zzf(%%%%%%&%%U%% J     k  k  k  9 %%%&%%%%%%%%%   #               k6%%%%%%&%%&%% <EET``      \    \      \  \      /      /     \     y%%%%%%Y%%ښ%%&%%%%*$%/% )3):)$(2(9()3):)!)! (2( v,          7 %%%%%%&%%Y%%ښ%% BJ\       )%%%%%%&%%%% ?  %%%%%%&%%$ # @ %%%&%%%%%%%%% &       %%%%'%%&%%%%!%%%%'%%&%%%%      l  l  l  l      l  L %%%&%%%%%%%%% B     -1                6%%%%%%&%%&%%%GP%P_k%k% %%%%%%&%%%%6        ,%%%%%%&%%%% O^O     k  k  k  8 %%%&%%%%%%%%%(+*)         8 %%%&%%%%%%%%%  03  03  %%%%%%&%%" ! )%%%%%%&%%%% E           8 %%%%%%%%&%%%% KVg         \  1%%%&%%%%%%%' <'D'' %%%%%%&%%$    l  1 %%%&%%%%%%%%%   %%%%'%%&%%%%  ( %%%&%%%%%%%%%    k       i  m  k  k  k  J %%%&%%%%%%%%% " 5 "J" !         k  k  5 %%%&%%%%%%%%%( &' %%%%'%%&%%%%      k  k      @ %%%&%%%%%%%%% )    ,5 !%%%%'%%&%%%%  !%%%&%%%%%%%@"   m W ~  k  k    k  B %%%&%%%%%%%%%*(*)*/6/*#    k  k  4 %%%&%%%%%%%%%    $    \  "%%%%%%&%%%      k        8%%%%%%&%%%% 9  %0 %=%E % &     "%%%%%%&%% 3 s '            F%%%%%%&%%˾%%%%%% +( '/Nf (!%%%%%%&%%%%3      k  k  k  k  @ %%%&%%%%%%%%% &          \%%%%%%&%%-)%%%%'%%&%%%%%%%%'%%&%%%%    %%%%%%%&%%%%  *        k      9%%%&%%%%%%% / B/j/ / B/o/ +      )%%%&%%%%%%% B ,    k  k  k    k  k  k  k  L %%%&%%%%%%%%%    *      -         /%%%%%%&%%%% ANN .)%%%%%%&%%%% F       k  -%%%%%%&%%%% W  ' /    l  l  l  l  l  n  k     x ]  R %%%&%%%%%%%%%        -$9$-- 0  M  ^  d  m  s  m  m  n  m ?  k  \ { w ~??   \   ??0  k0  k0  k p %%%&%%%%%%%%%\  . #1 '+   W(1          k M  _  p  q  n  m  n  m  n  m   k?  \  k?  k  \  \  \?  k  \?  k?  k?  k0  k  \0  k0    k  %%%&%%%%%%%%% QYj [ %  %%) %    %  3 U(2%%%%%%&%%  %%%%%%&%%&%%%%%%&%%      l   \  '%%%%%%&%%$;$ - 3 3      k    k  5%%%%%%&%%%% 9 @ $ 4            l  l  l  l  O %%%&%%%%%%%%%  *S*     5        k  k  k  @ %%%&%%%%%%%%% % K     6      %%%%%%&%%$ #   %%%&%%'%%7          /        \  ]          \         \         \         \         \         \         \         \  \  \  \  \  \  \  \   \  ]  ]  ]  ]  \    \  k   z   %%%%%%%%%%%%%<0:90=L=& $ $ 8>D!:=C#<?E8?E!:AG!:AG4<B5<B($ "%#%'') 8     k    /    /   / k i ] ,       /      M  k         /                  k     \      h    %%%%%%%%%%%8 #:a: FB ;;; %%a ra[ -F-"4{&%% 4==AMM % ", . i9       \    k  n   -%%%&&  ! # x:    k&%%%&%%'%%';    %%%&%%'%%<     0     #%%%%%! +=%%%&%%'%%     k   z ~     F %%%&%%%%%%%%%%-4< 7{ 7 u >%%%&%%'%%   l  r     k0 %%%&%%%%%%%)/ 2?       M                                                                                                                                       k       \I%% %%%'%%%%&%%' Z(. s.%%X: ~~~~~~~~~~~~~~~~~~~~~~~~~ ~~ ~~~~~~~~~} } }}}}}}} }||||{ z.  " @%%%&%%'%%   %%%&%%'%%    } f ~       ~     { h |                    u%%% '  ' z ' h ' { ' w '  ' s ' y ' z ' s ' z ' q ' kA%%%&%%'%%%%%&%%'%%%%%&%%'%%%%%&%%'%%    k   z   7 %%%&%%%%%%%%%F(<B      "%%%&%%'%% *C    k  k  k  k  k  k  k  A%%%&%%'%%%%135133-.D     $%%%&%%'%%   E    l     v i  /         9%%% 6 G  &%% JSS tF  %%%&%%'%%     |   ~    %%%%"( G%%%%'%%&%%%%%%%%%'%%&%%%%     %%%%'%%&%%%%#    \  ]  \  ]  \  ]  \  ]  \  ]  \  ]  \  ]  \  ]  \  ]  \  ]  \  ]  \  ]  \  ]  \  ]  \  ]  \  ]  \  ]  \  ]  \  l  \  l  \  l  \  %%%&%%'%%%% !  #  % ! !  #  #          !        !  , ( ( $ * & - ) + ' !  "  H        }   }   }   }   }   }   }   }   }   ~   ~    `%%%')(%+&(,-,+." JI     %%%( J      k  &%%%&%%'%%2  " K%%%%'%%&%%%%"   %%%&%%'%%     /  } f ~   +%%%%% '  '+ U,L%%%&%%'%%  !%%%&%%'%%%%*  P 9 a   \  *%%%&%%'%%%%M   /      +%%%&%%'%%'%%   ! . ;N,%%%&%%'%%'%%   ! . ;          8܂L%%%%%'%%L%%&%%  O   /      ,%%%&%%'%%'%%   - :,%%%&%%'%%'%%   - :    \      !  2͓%%%&%%'%%ȓ%% P   /               F͓%%%%%%%%&%%%%%"  - < <Q   2 ͓%%%$ R       /  /       /     /  /    /  /  /  /  /                                        ͓ &%%%%%%%%%%%%%Ƥ%%̤%%Ӥ%%٤%%%%'%%%%)    " "  % %(0(5 59A9H HKSK[ [^f^n nS          >  0  /  /  /                    /                /           /  \                    !               ͓ %%%&%%%%%%%%%%%%٤%%'%%%%   ".":"!F!T`TSlS$0$#<#JIVI$#0#=  #+#336>6FF  !)!1 1Tq\f^b5vP -CDIDATxyp\ŝ?$- CH VH6ne7GmŁ$$E6TͲTb 0a;6^la[u?4Q?Io$VM4{ݯ׿_@)F1߁2 x  Yw!hl o솠u뾆Y4# $ %m<{ORuddbNx8R[O屃yЄHsW$:KPD@ |}PsvԱfnïہ(:H*j}-pԷycZF6&֢8E *ߌ"(J)Oxx <cȿ!(qT \կ?&c4T/'PxD03 OQI`܍.ӋLku^oq=OچԽA fNPT >6Zon,#|"l0w3$@[2hhP; ml>E㢻S<.>q\q, })vuj{/b@P@ٛ5?*ƴFG)L=$7抄*\& a@>%)<1WZeHN 6i[] =P|QX"W-Ȍl@/CCoJűeޭ=K+˄+|&Н ,2>4eB[6R bYN0t`Z6ď_]h^nUsjZJC* \unY%8(&e限2` EvR ¢K9zVm9|GZD`wk̕,ܡ'WqU'?syXBKuv Ku!OM#Eç0|V"O"f ma%*K : 6!}FœK(EÅ5҇tnOr)aP9&E~'L-6!%XB!+!>5)WTxMk̥p)!0K/Oj:4S\亊$ڇ*O`SH# +"ɔh chņT\2"LDAq9ΎTmӅbZ'[)g|Th)P /Q,lY0N(,5Z(6!m w-Հ#гq8JH 2_u{S.e)#܏ X&|mW~R2@EHo+e+ eOQPhtB-@ \ Y= VqBoU&7חNCw U $4hG4gf\Bw"z2)}u 4*CFFtmˆ\ádђ B Kggœ<хc%"=>B]1%(8Z #@s2`Yy\V{S{ڑ2է-eW#dFppp|X9ښ*Q!U:a<3>h+w\#AUKzش JO^oj0#7,vfg;<ٮe$auY3==(D>,jo]&K$VH(E+{*ֵuv}jMqGcւ3%Ǿ6}9fWH}$$cB+Wͤq3>:.=>5wrHՐ,V/5ÿ"N2_&Pq#UCB/Hx7f`p oί,- $1@G AWQpB85B Ek#\(VSԿ9pB.诒>ϳ/i]32!oS7]4AApIuVvqݯ4] EB78јk>32 #}W91!9>=d yڏtl㔁HyLc u<ʡ^iacrznXtz^pXHHow3(\4Nɴ2Jvb _[J EHz~`ۨvš 5B?&`YE$ܧ}=)ͨzO-=)MZ:íUkm4qHnT ZF/tr @/)k:7e`~xP,'6vL!lx4YNl< জnZ~?5B@65+t;]i2<Ȧ>BCqH9\hpq#\e`Hxn| 35oi2+Y6$HXBB|װ`:|t8$6ĞhJ:Ob. #UOFzb<(ش5FߨP@gz~ '5]ҋT*|@?@īRl.81@@D@o+j9{װ#|IRB(PFDXJsM?W|t`b뫊\~l>vtxuO*lGH @JvdQ_b ;Q͕GVǀwga>[΄_/1)o?zz6~}1g8 ن r S}m':e xdc/t,X5N70CCRj#9ڥ0Έb1G]YX~ >"k_`30s&]k)+FW`R׎ٲG@nx#V?Nh.nh<6 nwm0I;C$ [a~(|Кt8d:hkႈG@ /FiГ8c9i"d4 g`-:7L09SpX52pOs oشvO\(VFli>NRz|Ch%Fqgg]RVFزMe@e#d ɦv1c1障Jk 4^εTAk'֫ .l] mw_irMu 9wd prx e[ ^Y{PÛ$uapn$限ճ"2`SV8 {BefE],ܤQ|vK7fJб: f7HDДhQ'FIx`-V.l+.#E8| l3rx!|JfE}ڜ9ՙl҃f Y;9E]g+r̓dDB;~M^T%Rg-;)\B/=V cW xc_>QI߰ 'eUԳ#iK]ʔx!kS.j|p)p٩@)NlJNx}ҙpaSO$y4/eZR5dO,frbٰjvЧT 0;3ipm'5UC^67c0ّhɑfvv^yx20ّh=ᇄc)FK'&ʤ>=(e =e*rVVus\0HHZ S RV+|4>>4ϨwP'x栍BvM "xU:4Y4 reUq8k^<Eo-,Ր[5?qR:fWgn6CT:L>L^pugHwU:9U\{[TG^íy}X_pN׀ۺ_L{F^T4xi=wga6mAN2%:e`lX$~\=ZjsBє7?L?y~r!ܳ hS"aXA)5M}>х?쮟_TiǶ쩏,?yMs PqfDܱ:GW QO6/GgQ.*E$Ĺ{ߗ&⋿x4^EcDd?ҔEu~HD+@y"=n}'<]k)/~ b:H8#u]#dMOͿT4jaE;_?N[t뜩IT=VF+0.}pn*&ǻpjKBY\+g~]sqgWeZ_y}kEA":EO)5l^}>3Szsu,KkzY;s|Xw@=p^X{8gvpMJ~ t4)!-82VR|ԑ§;F8gcIN/+@.S_35Q|;`s`̀   otì#{{vg2UUk0*s#mڊ/ [׌֓y ^g[%25-\pW*)y'«~;@f>y~DfGfiP B | [)Gvk;hT0 9}f)Q@Vₓ p3֦pEFXpϙe>#A`V&4J5A2N Fԅ@to7ٚޙH0e[<k0wSEpI[/jדf r\B%'6:H ̚q):kZ ly-V˳h?TcADʨ7P]qK+^W$!82)!5 tM e [\wh;>NN om?~K<]C$H8Z6\о"|.۳hg=IВ 8Y !0RX^!E_rb|֥»H!w l_f6| sCڏ g6vud~}^x7JBq hmy3iuE%(WԒ u8ʗ2;dհL;rE{7Ix|B6͉k)l(XBDXJ%Bs3Mg$sŻ X\u6 A}Ӫl3Mo`N:"L:`oFnVs5k=e:Ar7568(¶]7`s=8DBmnw46dBJ9 ؄*a -CDIDATxyp\ŝ?$- CH VH6ne7GmŁ$$E6TͲTb 0a;6^la[u?4Q?Io$VM4{ݯ׿_@)F1߁2 x  Yw!hl o솠u뾆Y4# $ %m<{ORuddbNx8R[O屃yЄHsW$:KPD@ |}PsvԱfnïہ(:H*j}-pԷycZF6&֢8E *ߌ"(J)Oxx <cȿ!(qT \կ?&c4T/'PxD03 OQI`܍.ӋLku^oq=OچԽA fNPT >6Zon,#|"l0w3$@[2hhP; ml>E㢻S<.>q\q, })vuj{/b@P@ٛ5?*ƴFG)L=$7抄*\& a@>%)<1WZeHN 6i[] =P|QX"W-Ȍl@/CCoJűeޭ=K+˄+|&Н ,2>4eB[6R bYN0t`Z6ď_]h^nUsjZJC* \unY%8(&e限2` EvR ¢K9zVm9|GZD`wk̕,ܡ'WqU'?syXBKuv Ku!OM#Eç0|V"O"f ma%*K : 6!}FœK(EÅ5҇tnOr)aP9&E~'L-6!%XB!+!>5)WTxMk̥p)!0K/Oj:4S\亊$ڇ*O`SH# +"ɔh chņT\2"LDAq9ΎTmӅbZ'[)g|Th)P /Q,lY0N(,5Z(6!m w-Հ#гq8JH 2_u{S.e)#܏ X&|mW~R2@EHo+e+ eOQPhtB-@ \ Y= VqBoU&7חNCw U $4hG4gf\Bw"z2)}u 4*CFFtmˆ\ádђ B Kggœ<хc%"=>B]1%(8Z #@s2`Yy\V{S{ڑ2է-eW#dFppp|X9ښ*Q!U:a<3>h+w\#AUKzش JO^oj0#7,vfg;<ٮe$auY3==(D>,jo]&K$VH(E+{*ֵuv}jMqGcւ3%Ǿ6}9fWH}$$cB+Wͤq3>:.=>5wrHՐ,V/5ÿ"N2_&Pq#UCB/Hx7f`p oί,- $1@G AWQpB85B Ek#\(VSԿ9pB.诒>ϳ/i]32!oS7]4AApIuVvqݯ4] EB78јk>32 #}W91!9>=d yڏtl㔁HyLc u<ʡ^iacrznXtz^pXHHow3(\4Nɴ2Jvb _[J EHz~`ۨvš 5B?&`YE$ܧ}=)ͨzO-=)MZ:íUkm4qHnT ZF/tr @/)k:7e`~xP,'6vL!lx4YNl< জnZ~?5B@65+t;]i2<Ȧ>BCqH9\hpq#\e`Hxn| 35oi2+Y6$HXBB|װ`:|t8$6ĞhJ:Ob. #UOFzb<(ش5FߨP@gz~ '5]ҋT*|@?@īRl.81@@D@o+j9{װ#|IRB(PFDXJsM?W|t`b뫊\~l>vtxuO*lGH @JvdQ_b ;Q͕GVǀwga>[΄_/1)o?zz6~}1g8 ن r S}m':e xdc/t,X5N70CCRj#9ڥ0Έb1G]YX~ >"k_`30s&]k)+FW`R׎ٲG@nx#V?Nh.nh<6 nwm0I;C$ [a~(|Кt8d:hkႈG@ /FiГ8c9i"d4 g`-:7L09SpX52pOs oشvO\(VFli>NRz|Ch%Fqgg]RVFزMe@e#d ɦv1c1障Jk 4^εTAk'֫ .l] mw_irMu 9wd prx e[ ^Y{PÛ$uapn$限ճ"2`SV8 {BefE],ܤQ|vK7fJб: f7HDДhQ'FIx`-V.l+.#E8| l3rx!|JfE}ڜ9ՙl҃f Y;9E]g+r̓dDB;~M^T%Rg-;)\B/=V cW xc_>QI߰ 'eUԳ#iK]ʔx!kS.j|p)p٩@)NlJNx}ҙpaSO$y4/eZR5dO,frbٰjvЧT 0;3ipm'5UC^67c0ّhɑfvv^yx20ّh=ᇄc)FK'&ʤ>=(e =e*rVVus\0HHZ S RV+|4>>4ϨwP'x栍BvM "xU:4Y4 reUq8k^<Eo-,Ր[5?qR:fWgn6CT:L>L^pugHwU:9U\{[TG^íy}X_pN׀ۺ_L{F^T4xi=wga6mAN2%:e`lX$~\=ZjsBє7?L?y~r!ܳ hS"aXA)5M}>х?쮟_TiǶ쩏,?yMs PqfDܱ:GW QO6/GgQ.*E$Ĺ{ߗ&⋿x4^EcDd?ҔEu~HD+@y"=n}'<]k)/~ b:H8#u]#dMOͿT4jaE;_?N[t뜩IT=VF+0.}pn*&ǻpjKBY\+g~]sqgWeZ_y}kEA":EO)5l^}>3Szsu,KkzY;s|Xw@=p^X{8gvpMJ~ t4)!-82VR|ԑ§;F8gcIN/+@.S_35Q|;`s`̀   otì#{{vg2UUk0*s#mڊ/ [׌֓y ^g[%25-\pW*)y'«~;@f>y~DfGfiP B | [)Gvk;hT0 9}f)Q@Vₓ p3֦pEFXpϙe>#A`V&4J5A2N Fԅ@to7ٚޙH0e[<k0wSEpI[/jדf r\B%'6:H ̚q):kZ ly-V˳h?TcADʨ7P]qK+^W$!82)!5 tM e [\wh;>NN om?~K<]C$H8Z6\о"|.۳hg=IВ 8Y !0RX^!E_rb|֥»H!w l_f6| sCڏ g6vud~}^x7JBq hmy3iuE%(WԒ u8ʗ2;dհL;rE{7Ix|B6͉k)l(XBDXJ%Bs3Mg$sŻ X\u6 A}Ӫl3Mo`N:"L:`oFnVs5k=e:Ar7568(¶]7`s=8DBmnw46dBJ9 ؄*a icon_large PK !NF#resources/base/media/icon_pause.svgUT =*\=*\ icon_pause PK !NG"resources/base/media/icon_play.svgUT =*\=*\ icon_play PK !Nwr& resources/base/profile/main_pages.jsonUT =*\=*\{"src": ["pages/Index"]} `$  +0T[SFT @LH C>w![=&PeW-LJY/Sx,fZ~i6Lxi6cE 9)s1 z?>ozxa2;_ ?h[GwBu[j(J.+vpM,e@P77}ŖR\] ܏l}p6OH7d2d X%-B]$>rFd8> ,QꍀKK  kahYÑ#XJ#U~WPӧ ;=:SdncZZ6 ţ:<Ė[5e+͍_+I̗aĵ@|/\^6G9@mdi'"GZ]|Ѹ&ܷGK&G0xs!Ѕ1:Sq(d9ǂ^fDYƆnޥ後S{:iqj =)uy}`vt~=a觞pYL=Z^w\vw Tlj{ri;3}bQ;;EɦBGu!8U&e @ad2tngm"H75΀6dp^9aIl({4]u}O1ȶTl`^3X' :*5z\-o#iY't0$$o]#R0J?yDuEpv0qOy֧+G0a0e=0 *H=0h1 0 UCN10U  OpenHarmony10U OpenHarmony Team1(0&UOpenHarmony Application Root CA0 210202121532Z 491231121532Z0c1 0 UCN10U  OpenHarmony10U OpenHarmony Team1#0!UOpenHarmony Application CA0v0*H=+"b!ǝ5ʤ_A%'tC'֓ 7~pX~pvR0Wڗ(6P›ј!`+-Uc0a0U#0:|Oј'Zw0U00U0Uۆ" K%{}-G0 *H=h0e0m^8t:h_6}fOHU߉hI1ow:rR&-XŖl;NrapYtg4;.1B0>0k0c1 0 UCN10U  OpenHarmony10U OpenHarmony Team1#0!UOpenHarmony Application CAh0  `Hei0 *H  1  *H 0 *H  1 240722022013Z0/ *H  1" ֶFmYn{7?.n{n 0 *H=H0F!˅%RS;h2h&eEAX!5AWL1uX\f/_O좘Bdf6`1jz :A$]L!O0D&RC$5xs~0D0ɠ80 *H=0h1 0 UCN10U  OpenHarmony10U OpenHarmony Team1(0&UOpenHarmony Application Root CA0 210202121418Z 491231121418Z0h1 0 UCN10U  OpenHarmony10U OpenHarmony Team1(0&UOpenHarmony Application Root CA0v0*H=+"bM6yk J(ocAmK{- vYY[@YGMGpB_T cG ޸_&r )QsYI~7GB0@0U00U0U:|Oј'Zw0 *H=g0d0wZw'1w>X' :*5z\-o#iY't0$$o]#R0J?yDuEpv0qOy֧+G0a0e=0 *H=0h1 0 UCN10U  OpenHarmony10U OpenHarmony Team1(0&UOpenHarmony Application Root CA0 210202121532Z 491231121532Z0c1 0 UCN10U  OpenHarmony10U OpenHarmony Team1#0!UOpenHarmony Application CA0v0*H=+"b!ǝ5ʤ_A%'tC'֓ 7~pX~pvR0Wڗ(6P›ј!`+-Uc0a0U#0:|Oј'Zw0U00U0Uۆ" K%{}-G0 *H=h0e0m^8t:h_6}fOHU߉hI1ow:rR&-XŖl;NrapYtg4;.1A0=0k0c1 0 UCN10U  OpenHarmony10U OpenHarmony Team1#0!UOpenHarmony Application CA7m0  `Hei0 *H  1  *H 0 *H  1 240722022008Z0/ *H  1" ^>n5r?uyґnD&0 *H=G0E!Ǯ߼Wrh^РX*ȊFc j O-%Q LN xwW/Kx 0 *H 01 0  `He0C *H 64( #Tޞ)b>R'/x':}; is030h0 *H=0c1 0 UCN10U  OpenHarmony10U OpenHarmony Team1#0!UOpenHarmony Application CA0 210202121931Z 491231121931Z0h1 0 UCN10U  OpenHarmony10U OpenHarmony Team1(0&UOpenHarmony Application Release0Y0*H=*H=B`B}9EvhQ!^^lNc4'xTSR4Mv٠3[(BR0P0U#0ۆ" K%{}-G0U0UqeqPpq QX0 *H=h0e1Z6Ȼl,K8A@xX' :*5z\-o#iY't0$$o]#R0J?yDuEpv0qOy֧+G0a0e=0 *H=0h1 0 UCN10U  OpenHarmony10U OpenHarmony Team1(0&UOpenHarmony Application Root CA0 210202121532Z 491231121532Z0c1 0 UCN10U  OpenHarmony10U OpenHarmony Team1#0!UOpenHarmony Application CA0v0*H=+"b!ǝ5ʤ_A%'tC'֓ 7~pX~pvR0Wڗ(6P›ј!`+-Uc0a0U#0:|Oј'Zw0U00U0Uۆ" K%{}-G0 *H=h0e0m^8t:h_6}fOHU߉hI1ow:rR&-XŖl;NrapYtg4;.1@0<0k0c1 0 UCN10U  OpenHarmony10U OpenHarmony Team1#0!UOpenHarmony Application CAh0  `Hei0 *H  1  *H 0 *H  1 240722022013Z0/ *H  1" ).33O N v%T̘i0 *H=F0D sGZ v_\|cҧp$ Gh_M_3PK !Nets/modules.abcUT=*\PK !N2bnVnV ets/sourceMaps.mapUT=*\PK !N ,aa nmodule.jsonUT=*\PK !Nk\""  pack.infoUT=*\PK !N"x ^resources.indexUT=*\PK !N.І!resources/base/media/app_icon.pngUT=*\PK !N.ІZ.resources/base/media/icon.pngUT=*\PK !N # *Iresources/base/media/icon_large.svgUT=*\PK !NF#USresources/base/media/icon_pause.svgUT=*\PK !NG"Wresources/base/media/icon_play.svgUT=*\PK !Nwr& [[resources/base/profile/main_pages.jsonUT=*\PK A