Using data bindings really seems weird in a non-UI worker.. Gary, what exactly are you using the data bindings for?
My first thought would be to just use events/event handlers. -Sean Thayne On Thu, Mar 13, 2014 at 11:53 AM, Alex Harui <[email protected]> wrote: > Back further in the thread, Gary said he wants to use MXML so he can use > data binding syntax, etc. > > I've posted the beginnings of a possible solution in FLEX-34137. I'm > willing to spend a little time here and there helping to try to make it > work. > > -Alex > > On 3/13/14 10:46 AM, "Sean Thayne" <[email protected]> wrote: > > >Hey Gary, > > > >You should be able to use some flex classes without extending spark > >application. You just can't use mxml. Use ActionScript instead of mxml and > >you should be fine. > > On Mar 13, 2014 10:55 AM, "Gary Yang" <[email protected]> wrote: > > > >> Alex, > >> > >> I am doing both, it is working perfect inside Flash Player!! > >> > >> Please make sure it can be used for mobile too! > >> > >> I do have some ideas on current Flex architecture: > >> https://issues.apache.org/jira/browse/FLEX-34138 > >> > >> I'd like to share and explain more, if you are interested. > >> > >> thanks. > >> > >> -Gary > >> > >> > >> > >> > >> On Thu, Mar 13, 2014 at 12:08 PM, Alex Harui <[email protected]> wrote: > >> > >> > Are you using [RemoteClass] to serialize the data between the worker > >>and > >> > the main app, or are you getting to the network from the worker? > >> > > >> > On 3/13/14 8:56 AM, "Gary Yang" <[email protected]> wrote: > >> > > >> > >I have hundred s , I don't want to do it manual ly > >> > > On Mar 13, 2014 11:54 AM, "Maurice Amsellem" > >> > ><[email protected]> > >> > >wrote: > >> > > > >> > >> You can call registerClassAlias() to register remoteClass manually. > >> > >> > >> > >> Maurice > >> > >> > >> > >> -----Message d'origine----- > >> > >> De : Gary Yang [mailto:[email protected]] > >> > >> Envoyé : jeudi 13 mars 2014 16:30 > >> > >> À : [email protected] > >> > >> Objet : RE: Flex App swf initialization failure when working as an > >> > >>Android > >> > >> worker!!!! > >> > >> > >> > >> I tried, without Application remoteclass meta won't work. > >> > >> On Mar 13, 2014 11:14 AM, "Maurice Amsellem" > >> > >><[email protected]> > >> > >> wrote: > >> > >> > >> > >> > Would it work to extend the app from MovieClip ? > >> > >> > > >> > >> > I have seen that is pure AS projects (games). > >> > >> > > >> > >> > Maurice > >> > >> > > >> > >> > -----Message d'origine----- > >> > >> > De : Alex Harui [mailto:[email protected]] Envoyé : jeudi 13 mars > >> 2014 > >> > >> > 16:06 À : [email protected] Objet : Re: Flex App swf > >> > >> > initialization failure when working as an Android worker!!!! > >> > >> > > >> > >> > Spark Application is not designed to be a Worker. It is > >>designed to > >> > >> > have UI children. > >> > >> > > >> > >> > mx:SimpleApplication has fewer assumptions and might work. > >>Please > >> try > >> > >> it. > >> > >> > > >> > >> > -Alex > >> > >> > > >> > >> > On 3/13/14 7:58 AM, "Gary Yang" <[email protected]> wrote: > >> > >> > > >> > >> > >I am using Spark Application > >> > >> > >On Mar 13, 2014 10:51 AM, "Alex Harui" <[email protected]> > wrote: > >> > >> > > > >> > >> > >> Did you try using mx:SimpleApplication instead of Application? > >> > >> > >> > >> > >> > >> On 3/13/14 6:45 AM, "Gary Yang" <[email protected]> > >>wrote: > >> > >> > >> > >> > >> > >> >I already have it working perfect in Flash Player >=11.5 ! > >>I am > >> > >> > >>excited > >> > >> > >> >about workers in Android and IOS( coming according to > >>roadmap )! > >> > >> > >> > > >> > >> > >> >I am not using any display list features in worker. > >> > >> > >> > > >> > >> > >> >I am building a reactive model with Flex using its binding, > >>meta > >> > >> > >> >tag processing, collection classes, PropertyChangeEvent .... > >> > >> > >> > > >> > >> > >> >The way I see it, Flash/Flex is the only way to build complex > >> > >> > >> >logic in browsers, and that's one of the core values,( the > >>other > >> > >> > >> >one is the > >> > >> > >>unified > >> > >> > >> >API ). > >> > >> > >> > > >> > >> > >> >Please let Flex swf running as a worker on all platform!!! > >> > >> > >> > > >> > >> > >> > > >> > >> > >> >-Gary > >> > >> > >> > > >> > >> > >> > > >> > >> > >> > > >> > >> > >> > > >> > >> > >> > > >> > >> > >> > > >> > >> > >> > > >> > >> > >> >On Wed, Mar 12, 2014 at 10:00 PM, Alex Harui > >><[email protected]> > >> > >> wrote: > >> > >> > >> > > >> > >> > >> >> It would be interesting to see an example of how it could > >> work. > >> > >> > >>There > >> > >> > >> >>is > >> > >> > >> >> the class mx.core.SimpleApplication that you can try to > >>use as > >> > >> > >> >>the > >> > >> > >>base > >> > >> > >> >> for a Worker. If that doesn't work it might be possible to > >> > >> > >> >> create a variant that behaves within the constraints of a > >> > >>Worker. > >> > >> > >> >> > >> > >> > >> >> -Alex > >> > >> > >> >> > >> > >> > >> >> On 3/12/14 2:55 PM, "Sean Thayne" <[email protected]> > wrote: > >> > >> > >> >> > >> > >> > >> >> >Sounds like a very strange way to use workers. > >> > >> > >> >> > > >> > >> > >> >> >-Sean Thayne > >> > >> > >> >> > > >> > >> > >> >> > > >> > >> > >> >> >On Wed, Mar 12, 2014 at 3:18 PM, Alex Harui < > >> [email protected]> > >> > >> > >>wrote: > >> > >> > >> >> > > >> > >> > >> >> >> So really, what you want is to use MXML to define a SWF > >> that > >> > >> > >> >> >> can > >> > >> > >>be > >> > >> > >> >>used > >> > >> > >> >> >> as a Worker, right? > >> > >> > >> >> >> > >> > >> > >> >> >> On 3/12/14 1:23 PM, "Gary Yang" <[email protected] > > > >> > >>wrote: > >> > >> > >> >> >> > >> > >> > >> >> >> >Greg, > >> > >> > >> >> >> > > >> > >> > >> >> >> >I agree with you on the display list thing. > >> > >> > >> >> >> > > >> > >> > >> >> >> >But I am not using any display list features in > >>worker, I > >> am > >> > >> > >>trying > >> > >> > >> >>to > >> > >> > >> >> >> >build a reactive model with Flex's binding, meta tag > >> > >> > >> >> >> >processing, collection classes, PropertyChangeEvent. > >>This > >> > >> > >> >> >> >reactive model will pass > >> > >> > >>changes > >> > >> > >> >>to > >> > >> > >> >> >>the > >> > >> > >> >> >> >main UI thread to drive UI, and user input will be > >>passed > >> > >> > >> >> >> >back to > >> > >> > >> >> >>reactive > >> > >> > >> >> >> >model as a trigger input. > >> > >> > >> >> >> > > >> > >> > >> >> >> >For long run, the best solution would be divide Flex > >>into > >> > >> > >>different > >> > >> > >> >> >> >modules, > >>https://issues.apache.org/jira/browse/FLEX-34138 > >> ; > >> > >> > >> >> >> >But for now, please just make it usable. > >> > >> > >> >> >> > > >> > >> > >> >> >> >Thanks. > >> > >> > >> >> >> > > >> > >> > >> >> >> >Thanks. > >> > >> > >> >> >> > > >> > >> > >> >> >> >-Gary > >> > >> > >> >> >> > > >> > >> > >> >> >> > > >> > >> > >> >> >> > > >> > >> > >> >> >> > > >> > >> > >> >> >> > > >> > >> > >> >> >> > > >> > >> > >> >> >> >On Wed, Mar 12, 2014 at 4:05 PM, Greg Dove > >> > >> > >> >> >> ><[email protected]> > >> > >> > >> >> wrote: > >> > >> > >> >> >> > > >> > >> > >> >> >> >> I can't imagine using a flex application as a > >>worker. I > >> > >> > >> >> >> >> don't > >> > >> > >> >>think > >> > >> > >> >> >> >>Workers > >> > >> > >> >> >> >> can access the main display list/stage, and a flex > >> > >> > >> >> >> >>application > >> > >> > >> >> >>expects > >> > >> > >> >> >> >>to > >> > >> > >> >> >> >> do so. It may be because of this that you are seeing > >>the > >> > >> > >> >> >> >>error > >> > >> > >> >> >>because > >> > >> > >> >> >> >> ContextMenu is not available on Android, and that > >>part > >> is > >> > >> > >>nothing > >> > >> > >> >>to > >> > >> > >> >> >>do > >> > >> > >> >> >> >> with Flex. > >> > >> > >> >> >> >> > >> > >> > >> >> >> >> > >> > >> > >> >> >> >> > >> > >> > >> >> >> >> > >> > >> > >> >> >> > >> > >> > >> >> >> > >> > >> > >> >> > >> > >> > >> >> > >> > >> > >> > >> > >> > >> > >> > http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/f > >> > >> > >>la > >> > >> > >>sh/ > >> > >> > >> >> >> >>ui/ContextMenu.html > >> > >> > >> >> >> >> *AIR profile support:* This feature is not supported > >>on > >> > >> > >> >> >> >>mobile > >> > >> > >> >> >>devices > >> > >> > >> >> >> >>or > >> > >> > >> >> >> >> AIR for TV devices. > >> > >> > >> >> >> >> > >> > >> > >> >> >> >> > >> > >> > >> >> >> >> > >> > >> > >> >> >> >> > >> > >> > >> >> >> >> > >> > >> > >> >> >> >> > >> > >> > >> >> >> >> > >> > >> > >> >> >> >> > >> > >> > >> >> >> >> On Thu, Mar 13, 2014 at 8:14 AM, Gary Yang > >> > >> > >> >><[email protected]> > >> > >> > >> >> >> >>wrote: > >> > >> > >> >> >> >> > >> > >> > >> >> >> >> > You have to support it!!! > >> > >> > >> >> >> >> > > >> > >> > >> >> >> >> > Flex's binding, [remote class], collection data > >>models > >> > >> > >> >> >> >> > are > >> > >> > >> >>critical > >> > >> > >> >> >> >>for > >> > >> > >> >> >> >> > building reacting model which is a key for complex > >> > >> > >>application > >> > >> > >> >>and > >> > >> > >> >> >> >>this > >> > >> > >> >> >> >> is > >> > >> > >> >> >> >> > Flex's core value! > >> > >> > >> >> >> >> > > >> > >> > >> >> >> >> > It's already working for Flash Player in browsers, > >>if > >> > >> > >> >> >> >> > you can > >> > >> > >> >>add a > >> > >> > >> >> >> >>few > >> > >> > >> >> >> >> > lines to make sure > >> > >> > >> >> >> >> > > >> > >> > >> >> >> >> > var defaultMenu:ContextMenu = new ContextMenu(); > >> > >> > >> >> >> >> > > >> > >> > >> >> >> >> > won't kill the initialization process, it will be > >>good > >> > >> > >> >> >> >> > for > >> > >> > >>now!! > >> > >> > >> >> >> >> > > >> > >> > >> >> >> >> > For the future, I would like to recommend to take a > >> look > >> > >> > >> >> >> >> > at > >> > >> > >>Java > >> > >> > >> >> >> >>Spring's > >> > >> > >> >> >> >> > growth. > >> > >> > >> >> >> >> > > >> > >> > >> >> >> >> > Please!! > >> > >> > >> >> >> >> > > >> > >> > >> >> >> >> > > >> > >> > >> >> >> >> > > >> > >> > >> >> >> >> > > >> > >> > >> >> >> >> > On Wed, Mar 12, 2014 at 2:49 PM, Alex Harui > >> > >> > >><[email protected]> > >> > >> > >> >> >>wrote: > >> > >> > >> >> >> >> > > >> > >> > >> >> >> >> > > You're trying to run a Flex SWF as a worker and > >>not > >> > >> > >> >> >> >> > > the > >> > >> > >>main > >> > >> > >> >> >>app? I > >> > >> > >> >> >> >> > doubt > >> > >> > >> >> >> >> > > that is supported. > >> > >> > >> >> >> >> > > > >> > >> > >> >> >> >> > > -Alex > >> > >> > >> >> >> >> > > > >> > >> > >> >> >> >> > > On 3/12/14 8:43 AM, "Gary Yang" > >> > >> > >> >> >> >> > > <[email protected]> > >> > >> > >> >>wrote: > >> > >> > >> >> >> >> > > > >> > >> > >> >> >> >> > > > > https://issues.apache.org/jira/browse/FLEX-34137 > >> > >> > >> >> >> >> > > > > >> > >> > >> >> >> >> > > > > >> > >> > >> >> >> >> > > >On Wed, Mar 12, 2014 at 10:26 AM, Gary Yang > >> > >> > >> >> >> >><[email protected]> > >> > >> > >> >> >> >> > > >wrote: > >> > >> > >> >> >> >> > > > > >> > >> > >> >> >> >> > > >> Error: Error #3731: This feature is not > >>available > >> > >> > >> >> >> >> > > >> within > >> > >> > >> >>this > >> > >> > >> >> >> >> context. > >> > >> > >> >> >> >> > > >> at > >> > >> > >> >> >> >> > > >> > >> > >> > >> >> >> >> > > > >> > >> > >> >> >> >> > > >> > >> > >> >> >> >> > >> > >> > >> >> >> > >> > >> > >> >> > >> > >> > >> > >> > >> > > >> >>>>>>>>>>spark.components::Application/initContextMenu()[/Users/justi > >> > >> > >>>>>>>>>>nm > >> > >> > >>>>>>>>>>cle > >> > >> > >>>>>>>>>>an > >> > >> > >> >>>>>>>>/D > >> > >> > >> >> >>>>>>oc > >> > >> > >> >> >> >>>>um > >> > >> > >> >> >> >> > > > >> > >> > >> >> >> >> > > >> > >> > >> >> >> >> > >> > >> > >> >> >> > >> > >> > >> >> > >> > >> > >> > >> > >> > > >> >>>>>>>>>>ents/ApacheFlex4.12.0/frameworks/projects/spark/src/spark/co > >> > >> > >>>>>>>>>>mp > >> > >> > >>>>>>>>>>one > >> > >> > >>>>>>>>>>nt > >> > >> > >> >>>>>>>>s/ > >> > >> > >> >> >>>>>>Ap > >> > >> > >> >> >> >>>>pl > >> > >> > >> >> >> >> > > >>ication.as:1832] > >> > >> > >> >> >> >> > > >> at > >> > >> > >> >> >> >> > > >> > >> > >> > >> >> >> >> > > > >> > >> > >> >> >> >> > > >> > >> > >> >> >> >> > >> > >> > >> >> >> > >> > >> > >> >> > >> > >> > >> > >> > >> > > >> >>>>>>>>>>spark.components::Application/initialize()[/Users/justinmcle > >> > >> > >>>>>>>>>>an > >> > >> > >>>>>>>>>>/Do > >> > >> > >>>>>>>>>>cu > >> > >> > >> >>>>>>>>me > >> > >> > >> >> >>>>>>nt > >> > >> > >> >> >> >>>>s/ > >> > >> > >> >> >> >> > > > >> > >> > >> >> >> >> > > >> > >> > >> >> >> >> > >> > >> > >> >> >> > >> > >> > >> >> > >> > >> > >> > >> > >> > > >> >>>>>>>>>>ApacheFlex4.12.0/frameworks/projects/spark/src/spark/compone > >> > >> > >>>>>>>>>>nt > >> > >> > >>>>>>>>>>s/A > >> > >> > >>>>>>>>>>pp > >> > >> > >> >>>>>>>>li > >> > >> > >> >> >>>>>>ca > >> > >> > >> >> >> >>>>ti > >> > >> > >> >> >> >> > > >>on.as:1385] > >> > >> > >> >> >> >> > > >> at AppMain/initialize() at > >> > >> > >> >> >> >> > > >> > >> > >> > >> >> >> >> > > > >> > >> > >> >> >> >> > > >> > >> > >> >> >> >> > >> > >> > >> >> >> > >> > >> > >> >> > >> > >> > >> > >> > >> > > >> >>>>>>>>>>mx.managers.systemClasses::ChildManager/childAdded()[/Users/ > >> > >> > >>>>>>>>>>ju > >> > >> > >>>>>>>>>>sti > >> > >> > >>>>>>>>>>nm > >> > >> > >> >>>>>>>>cl > >> > >> > >> >> >>>>>>ea > >> > >> > >> >> >> >>>>n/ > >> > >> > >> >> >> >> > > > >> > >> > >> >> >> >> > > >> > >> > >> >> >> >> > >> > >> > >> >> >> > >> > >> > >> >> > >> > >> > >> > >> > >> > > >> >>>>>>>>>>Documents/ApacheFlex4.12.0/frameworks/projects/framework/src > >> > >> > >>>>>>>>>>/m > >> > >> > >>>>>>>>>>x/m > >> > >> > >>>>>>>>>>an > >> > >> > >> >>>>>>>>ag > >> > >> > >> >> >>>>>>er > >> > >> > >> >> >> >>>>s/ > >> > >> > >> >> >> >> > > >>systemClasses/ChildManager.as:197] > >> > >> > >> >> >> >> > > >> at > >> > >> > >> >> >> >> > > >> > >> > >> > >> >> >> >> > > > >> > >> > >> >> >> >> > > >> > >> > >> >> >> >> > >> > >> > >> >> >> > >> > >> > >> >> > >> > >> > >> > >> > >> > > >> >>>>>>>>>>mx.managers.systemClasses::ChildManager/initializeTopLevelWi > >> > >> > >>>>>>>>>>nd > >> > >> > >>>>>>>>>>ow( > >> > >> > >>>>>>>>>>)[ > >> > >> > >> >>>>>>>>/U > >> > >> > >> >> >>>>>>se > >> > >> > >> >> >> >>>>rs > >> > >> > >> >> >> >> > > > >> > >> > >> >> >> >> > > >> > >> > >> >> >> >> > >> > >> > >> >> >> > >> > >> > >> >> > >> > >> > >> > >> > >> > > >> >>>>>>>>>>/justinmclean/Documents/ApacheFlex4.12.0/frameworks/projects > >> > >> > >>>>>>>>>>/f > >> > >> > >>>>>>>>>>ram > >> > >> > >>>>>>>>>>ew > >> > >> > >> >>>>>>>>or > >> > >> > >> >> >>>>>>k/ > >> > >> > >> >> >> >>>>sr > >> > >> > >> >> >> >> > > > >>>>c/mx/managers/systemClasses/ChildManager.as:367] > >> > >> > >> >> >> >> > > >> at > >> > >> > >> >> >> >> > > >> > >> > >> > >> >> >> >> > > > >> > >> > >> >> >> >> > > >> > >> > >> >> >> >> > >> > >> > >> >> >> > >> > >> > >> >> > >> > >> > >> > >> > >> > > >> >>>>>>>>>>mx.managers::SystemManager/initializeTopLevelWindow()[/Users > >> > >> > >>>>>>>>>>/j > >> > >> > >>>>>>>>>>ust > >> > >> > >>>>>>>>>>in > >> > >> > >> >>>>>>>>mc > >> > >> > >> >> >>>>>>le > >> > >> > >> >> >> >>>>an > >> > >> > >> >> >> >> > > > >> > >> > >> >> >> >> > > >> > >> > >> >> >> >> > >> > >> > >> >> >> > >> > >> > >> >> > >> > >> > >> > >> > >> > > >> >>>>>>>>>>/Documents/ApacheFlex4.12.0/frameworks/projects/framework/sr > >> > >> > >>>>>>>>>>c/ > >> > >> > >>>>>>>>>>mx/ > >> > >> > >>>>>>>>>>ma > >> > >> > >> >>>>>>>>na > >> > >> > >> >> >>>>>>ge > >> > >> > >> >> >> >>>>rs > >> > >> > >> >> >> >> > > >>/SystemManager.as:3065] > >> > >> > >> >> >> >> > > >> at mx.managers::SystemManager/ > >> > >> > >> >> >> >> > > >> > >> > >> > >> >> >> >> > > >> > >> > >> > >> >> >> >> > > > >> > >> > >> >> >> >> > > >> > >> > >> >> >> >> > >> > >> > >> >> >> >> > >> > >> > >> >> >> > >> > >> > >> >> >> > >> > >> > >> >> > >> > >> > >> >> > >> > >> > >> > >> > >> > >> > >> > http://www.adobe.com/2006/flex/mx/internal::kickOff()[/Users/justinm > >> > >> > >>cl > >> > >> > >>ean > >> > >> > >> >> >> >> > > > >> > >> > >> >> >> >> > > >> > >> > >> >> >> >> > >> > >> > >> >> >> > >> > >> > >> >> > >> > >> > >> > >> > >> > > >> >>>>>>>>>>/Documents/ApacheFlex4.12.0/frameworks/projects/framework/sr > >> > >> > >>>>>>>>>>c/ > >> > >> > >>>>>>>>>>mx/ > >> > >> > >>>>>>>>>>ma > >> > >> > >> >>>>>>>>na > >> > >> > >> >> >>>>>>ge > >> > >> > >> >> >> >>>>rs > >> > >> > >> >> >> >> > > >>/SystemManager.as:2851] > >> > >> > >> >> >> >> > > >> at mx.managers::SystemManager/ > >> > >> > >> >> >> >> > > >> > >> > >> > >> >> >> >> > > >> > >> > >> > >> >> >> >> > > > >> > >> > >> >> >> >> > > >> > >> > >> >> >> >> > >> > >> > >> >> >> >> > >> > >> > >> >> >> > >> > >> > >> >> >> > >> > >> > >> >> > >> > >> > >> >> > >> > >> > >> > >> > >> > >> > >> > http://www.adobe.com/2006/flex/mx/internal::preloader_completeHandle > >> > >> > >>r( > >> > >> > >>)[/ > >> > >> > >> >> >> >> > > > >> > >> > >> >> >> >> > > >> > >> > >> >> >> >> > >> > >> > >> >> >> > >> > >> > >> >> > >> > >> > >> > >> > >> > > >> >>>>>>>>>>Users/justinmclean/Documents/ApacheFlex4.12.0/frameworks/pro > >> > >> > >>>>>>>>>>je > >> > >> > >>>>>>>>>>cts > >> > >> > >>>>>>>>>>/f > >> > >> > >> >>>>>>>>ra > >> > >> > >> >> >>>>>>me > >> > >> > >> >> >> >>>>wo > >> > >> > >> >> >> >> > > >>rk/src/mx/managers/SystemManager.as:2731] > >> > >> > >> >> >> >> > > >> at > >> > >> > >>flash.events::EventDispatcher/dispatchEventFunction() > >> > >> > >> >> >> >> > > >> at > >>flash.events::EventDispatcher/dispatchEvent() > >> > >> > >> >> >> >> > > >> at > >> > >> > >> >> >> >> > > >> > >> > >> > >> >> >> >> > > > >> > >> > >> >> >> >> > > >> > >> > >> >> >> >> > >> > >> > >> >> >> > >> > >> > >> >> > >> > >> > >> > >> > >> > > >> >>>>>>>>>>mx.preloaders::Preloader/timerHandler()[/Users/justinmclean/ > >> > >> > >>>>>>>>>>Do > >> > >> > >>>>>>>>>>cum > >> > >> > >>>>>>>>>>en > >> > >> > >> >>>>>>>>ts > >> > >> > >> >> >>>>>>/A > >> > >> > >> >> >> >>>>pa > >> > >> > >> >> >> >> > > > >> > >> > >> >> >> >> > > >> > >> > >> >> >> >> > >> > >> > >> >> >> > >> > >> > >> >> > >> > >> > >> > >> > >> > > >> >>>>>>>>>>cheFlex4.12.0/frameworks/projects/framework/src/mx/preloader > >> > >> > >>>>>>>>>>s/ > >> > >> > >>>>>>>>>>Pre > >> > >> > >>>>>>>>>>lo > >> > >> > >> >>>>>>>>ad > >> > >> > >> >> >>>>>>er > >> > >> > >> >> >> >>>>.a > >> > >> > >> >> >> >> > > >>s:572] > >> > >> > >> >> >> >> > > >> at flash.utils::Timer/_timerDispatch() > >> > >> > >> >> >> >> > > >> at flash.utils::Timer/tick() > >> > >> > >> >> >> >> > > >> > >> > >> > >> >> >> >> > > > >> > >> > >> >> >> >> > > > >> > >> > >> >> >> >> > > >> > >> > >> >> >> >> > >> > >> > >> >> >> > >> > >> > >> >> >> > >> > >> > >> >> > >> > >> > >> >> > >> > >> > >> > >> > >> > >> > >> > >> > > >> > >> > > >> > >> > >> > > >> > > >> > >
