Hi Greg,

I haven't looked at how pervasive this change would be.  I'm mainly saying that 
Flex worked with these categories of events and I think Royale can too and 
would eliminate the need for DispatchChangeOnStartup and things like that.

You could be right that the models only need to dispatch selectionChange and 
not "change", as long as the controllers are guaranteed to update the model in 
a way that fires selectionChange.  I have this feeling that in Flex there were 
some backdoors for updating properties without dispatching events and 
dispatching the event "later", but I don't think we've had to write such code 
in Royale and maybe we won't have to or can't because the browser will update 
right away in many cases.  There were somethings you could do in Flash knowing 
that all rendering was deferred to frame updates.  In Royale, with separate 
models, the controller code can't just set the backing variable.

So, if you want to give it a try having only selectionChange as the bindable 
event, go for it.

-Alex

On 12/17/18, 12:35 PM, "Greg Dove" <[email protected]> wrote:

    Thanks Alex.
    
    I only looked in Basic TextInput because I was looking for a simpler
    example of the general case being discussed. That code looks like it might
    need some work on the swf side in any case.
    I was just looking for the 'programmaticChange' vs 'userInitiatedChange'
    differences.
    
    Based on a quick look at the other Basic classes, the conclusions appear
    similar.  They are bindable via 'change'  only.
    And the models all dispatch both selectedIndexChanged and
    selectedItemChanged.
    
    So it seems like you are proposing broad changes for everything, if they
    are to also support binding changes for programmatic changes?
    
    For me, the change in something (or nothing) being 'selected' logically
    occurs as a result of either user change or programmatic change. On that
    basis would it be possible to have the selectionChange as the sole Binding
    event (which occurs from setter induced change and from user induced
    change) and the 'change' event as user-interaction only as the class level
    event type (as it is now)?
    
    I have not thought about this as much as you (Alex and others) have, so
    maybe that last suggestion does not make sense. But I really think that for
    whatever does make sense it would be great to settle on something and get
    it consistent for all components  asap.
    
    
    
    
    On Tue, Dec 18, 2018 at 8:43 AM Alex Harui <[email protected]> wrote:
    
    > Hi Greg,
    >
    > You are correct that there is a pain point around binding overhead and
    > PAYG.  I can't think of a PAYG way of adding the ability to add more
    > binding events via beads that doesn't have too much overhead for folks not
    > interested in those extra events.  Actually, there are some ways that are
    > JS-only like replacing prototype-methods, but I don't think we should rely
    > on mutable class definitions.   In many cases we make trade-offs and Basic
    > ends up being what we think almost all folks "must have".
    >
    > When we first started out I was hoping to reduce binding overhead which is
    > why some of the beads look like they do, but these days I think it is more
    > important to separate interactive events from binding/setup events.  Folks
    > who don't use a particular binding event can always replace the model and
    > top-level component with a version without events they are not interested
    > in, or in the JS output, run a post-process to cull out metadata.  But
    > under the "almost all folks" rule, I think "almost all folks" don't want 
to
    > run interaction handling code at setup time.  Especially if that handling
    > code runs any sort of animation or does any other heavy processing.
    >
    > I could be wrong, but I'm pretty sure that if you just take a <select>
    > element, you can set its initial selection value without it dispatching an
    > event called "change".  Then when a user selects an item you get a 
"change"
    > event.  IMO, this is why "change" should be an interactive event and not a
    > binding event.
    >
    > So these are the reasons I think we should adjust the basic beads to
    > separate interactive events from setup events and why "change" is an
    > interactive event.
    >
    > Now, we could renew the effort to make Basic the truly smallest
    > implementation and move some of this logic to Express, but I keep seeing
    > code creep into Basic to handle situations that almost all folks need.
    >
    > TextInput, on the other hand, has been an exception of sorts in Flex.  The
    > Flash/AIR runtime dispatches "change" on certain kinds of changes.  So
    > early implementations in Royale tried to mimic that behavior for folks
    > coming from Flex.  But maybe we should change that and make Basic 
TextInput
    > more consistent with browser behavior.  The emulation components can mimic
    > the old Flex behavior.  So I think using TextInput as precedent is
    > misleading.
    >
    > Thoughts?
    > -Alex
    >
    > On 12/17/18, 10:55 AM, "Greg Dove" <[email protected]> wrote:
    >
    >     Alex, I was giving this some more thought also. I understood that you
    > meant
    >     to add extra events for binding from your previous comments.
    >
    >     But isn't the established pattern to add a bead to listen for the
    >     selectionChange and redispatch it as change?
    >
    >     At least that seems to be the case elsewhere
    >
    >     If I look at the code in Basic TextInput...
    >     it dispatches 'textChange' and 'change' but is only Bindable via
    > 'change'.
    >     There is effort to keep them distinct/separate.
    >     (OT: It looks like the swf side needs some consistency in the html
    > setter
    >     same as the text setter.)
    >
    >     So TextInput appears to have 2 distinct events but only be Bindable
    > for one
    >     ('change'). So I presume that to make that support programmatic
    > changes it
    >     would be by adding a bead to listen to the 'textChange' and redispatch
    > as
    >     'change' ?
    >
    >     Adding extra Bindable events adds weight because it affects binding
    > data,
    >     and creates more runtime support for the same feature in use cases
    > that may
    >     not need it. I don't see how that can be 'PAYG-ised' because binding
    >     support for different event types is either there at compile time or
    > it is
    >     not in the component. So if the above is true for TextInput (at this
    > stage
    >     it's a guess/observation, I did not try this yet), then could it not 
be
    >     similar for selection based components?
    >
    >     To me 'change' seems like something generic and does not sound
    > specific to
    >     being user-initiated change. My understanding is that it just happens
    > to be
    >     that way by default, unless you configure it to include programmatic
    >     changes via bead.
    >     If it is like this for Basic TextInput, why can it not be the same for
    >     other components ? (
    >
    >
    >
    >     On Tue, Dec 18, 2018 at 7:32 AM Alex Harui <[email protected]>
    > wrote:
    >
    >     > I took a quick look at ArrayListSelection.  It could use some
    >     > improvements, such as only dispatching a single selectionChange 
event
    >     > instead of both selectedIndexChange and selectedItemChange.
    >     >
    >     > Some controller should dispatch the "change" event, not the model.
    >     >
    >     > I took a quick look at List.as, (a top level component).  It should
    > have
    >     > bindable metadata that looks like this:
    >     >
    >     >         [Bindable("change")]
    >     >         [Bindable("selectionChange")]
    >     >         public function get selectedIndex():int
    >     >
    >     > Similar for selectedItem.  The [Event] metadata for List is
    > correct,  It
    >     > should only list interactive events like "change" and not bindable
    > events
    >     > like selectionChange.  This usually improves performance by not
    > having the
    >     > UI react to setup.
    >     >
    >     > Once all of those changes are made, we should discuss any remaining
    > issues.
    >     >
    >     > My 2 cents,
    >     > -Alex
    >     >
    >     > On 12/17/18, 10:14 AM, "Piotr Zarzycki" <[email protected]>
    >     > wrote:
    >     >
    >     >     Basic ArrayListSelection model doesn't dispatch that event. I
    > believe
    >     > we
    >     >     don't have to do this or rather do this only if we really need
    > it, for
    >     >     example if someone make programatic change of selectedIndex. -
    > This is
    >     >     general problem how to do that ?
    >     >
    >     >     If I change selectedIndex - my model dispatch
    > selectedInexChanged -
    >     > where
    >     >     should I catch it and dispatch "change" event ? My though are
    > nowhere,
    >     >     unless someone wanted to do that and have a bead.
    >     >
    >     >
    >     >     pon., 17 gru 2018 o 19:08 Alex Harui <[email protected]>
    >     > napisał(a):
    >     >
    >     >     > Hi Piotr,
    >     >     >
    >     >     > I may not be understanding your problem.  Not all models will
    >     > dispatch a
    >     >     > change event, but it is hard to imagine a selection model that
    >     > doesn't.
    >     >     >
    >     >     > -Alex
    >     >     >
    >     >     > On 12/17/18, 9:36 AM, "Piotr Zarzycki" <
    > [email protected]>
    >     > wrote:
    >     >     >
    >     >     >     I will review your email again and see what can I do this.
    >     > However
    >     >     > this one
    >     >     >     is a second problem. First one was about programmatic
    > change
    >     > discover
    >     >     > - If
    >     >     >     you are talking about that - Let me check your earlier
    > emails.
    >     >     >
    >     >     >     Thanks,
    >     >     >     Piotr
    >     >     >
    >     >     >     pon., 17 gru 2018 o 18:30 Alex Harui
    > <[email protected]>
    >     >     > napisał(a):
    >     >     >
    >     >     >     > FWIW, I would much rather see energy spent on trying to
    >     > implement the
    >     >     >     > patterns I suggested earlier, which will hopefully
    > eliminate
    >     > the
    >     >     > need for
    >     >     >     > DispatchChangeOnStartup.
    >     >     >     >
    >     >     >     > My 2 cents,
    >     >     >     > -Alex
    >     >     >     >
    >     >     >     > On 12/17/18, 4:34 AM, "Piotr Zarzycki" <
    >     > [email protected]>
    >     >     > wrote:
    >     >     >     >
    >     >     >     >     Carlos,
    >     >     >     >
    >     >     >     >     I don't understand this sentence -> " If not we can
    > get
    >     > involved
    >     >     > in
    >     >     >     > pursues
    >     >     >     >     problems
    >     >     >     >     that are not real." - What do you mean here ?
    >     >     >     >
    >     >     >     >     Ok I can wait for Alex review.
    >     >     >     >
    >     >     >     >     However your review and look into above problem
    > doesn't
    >     > need
    >     >     > Alex's
    >     >     >     >     attention. This bead (DispatchChangeOnStartup)
    > probably
    >     > won't
    >     >     > work
    >     >     >     > doesn't
    >     >     >     >     matter if we fix programmatic change or not. -
    > Unless I
    >     > bring
    >     >     > back
    >     >     >     >     dispatching "change" event from model - which rather
    > is not
    >     >     >     > recommended in
    >     >     >     >     previous discussion.
    >     >     >     >
    >     >     >     >     Thanks, Piotr
    >     >     >     >
    >     >     >     >     pon., 17 gru 2018 o 13:14 Carlos Rovira <
    >     > [email protected]
    >     >     > >
    >     >     >     >     napisał(a):
    >     >     >     >
    >     >     >     >     > Hi Piotr,
    >     >     >     >     >
    >     >     >     >     > I think we should solve first the programatic
    > change so
    >     > I can
    >     >     > test
    >     >     >     > the
    >     >     >     >     > branch and see regressions. If not we can get
    > involved in
    >     >     > pursues
    >     >     >     > problems
    >     >     >     >     > that are not real. I think Alex missed this
    > discussion.
    >     > I'll
    >     >     > point
    >     >     >     > him in
    >     >     >     >     > this thread to see if he can give his opinion
    > about the
    >     > ways
    >     >     > you
    >     >     >     > proposed
    >     >     >     >     > in the initial thread email.
    >     >     >     >     >
    >     >     >     >     > Thanks!
    >     >     >     >     >
    >     >     >     >     > El lun., 17 dic. 2018 a las 10:57, Piotr Zarzycki
    > (<
    >     >     >     >     > [email protected]>) escribió:
    >     >     >     >     >
    >     >     >     >     > > Hi Carlos,
    >     >     >     >     > >
    >     >     >     >     > > I just noticed that if model do not dispatch
    > change
    >     > event -
    >     >     > your
    >     >     >     > bead
    >     >     >     >     > > DispatchChangeOnStartup won't work because it
    > simply
    >     > based on
    >     >     >     > dispatching
    >     >     >     >     > > "change" event trough model.
    >     >     >     >     > >
    >     >     >     >     > > I'm wondering whether it won't be enough if that
    > bead
    >     > listen
    >     >     > for
    >     >     >     >     > > "beadsAdded" (here I think it should be
    > registered for
    >     >     >     > "initComplete"
    >     >     >     >     > > instead) and dispatch change event once. I made
    > the
    >     > changes
    >     >     > to
    >     >     >     > that bead,
    >     >     >     >     > > but I don't have scenario which you are using 
it.
    >     >     >     >     > >
    >     >     >     >     > >  Will you be able to test my changes on your
    >     > application end
    >     >     > using
    >     >     >     > my
    >     >     >     >     > > branch ? Above changes are not fully related to
    > what
    >     > we are
    >     >     >     > discussing
    >     >     >     >     > > here, so programmatic change still won't work
    > yet.
    >     > Please
    >     >     > review
    >     >     >     > those
    >     >     >     >     > > changes as well [1]
    >     >     >     >     > >
    >     >     >     >     > > Those new changes are just to check whether I
    > won't
    >     > break
    >     >     > any of
    >     >     >     > your
    >     >     >     >     > > functionality on startup. I will move for
    > creating
    >     > bead for
    >     >     >     > discovering
    >     >     >     >     > > programmatic changes, but first would like to
    > know
    >     > whether
    >     >     > till now
    >     >     >     >     > > everything is working fine.
    >     >     >     >     > >
    >     >     >     >     > > [1]
    >     >     >     >     > >
    >     >     >     >     > >
    >     >     >     >     >
    >     >     >     >
    >     >     >
    >     >
    > 
https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fapache%2Froyale-asjs%2Fcommit%2F14f6354e037e5854900ef5620581f6914bd604c4&amp;data=02%7C01%7Caharui%40adobe.com%7C36d3d0b5a2a04dbda1fe08d6645f1dee%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636806757044098722&amp;sdata=63TqFe1D1baSKYc3b9h2hr3ckWveZJjcOVhsynzOVXE%3D&amp;reserved=0
    >     >     >     >     > >
    >     >     >     >     > > Thanks, Piotr
    >     >     >     >     > >
    >     >     >     >     > >
    >     >     >     >     > > pt., 14 gru 2018 o 19:55 Carlos Rovira <
    >     >     > [email protected]>
    >     >     >     >     > > napisał(a):
    >     >     >     >     > >
    >     >     >     >     > > > Hi Piotr,
    >     >     >     >     > > >
    >     >     >     >     > > > after check example code, we have:
    >     >     >     >     > > >
    >     >     >     >     > > > <j:ComboBox id="watchmenComboBox"
    >     >     >     > dataProvider="{listModel.watchmen}">
    >     >     >     >     > > >                             ...
    >     >     >     >     > > > then NS:
    >     >     >     >     > > >
    >     >     >     >     > > > <j:NumericStepper
    >     >     > valueChange="watchmenComboBox.selectedIndex =
    >     >     >     >     > > > event.target.value" minimum="0" maximum="5"/>
    >     >     >     >     > > >
    >     >     >     >     > > > and finally
    >     >     >     >     > > >
    >     >     >     >     > > > <j:Label id="watchmenComboBoxResult" html=
    >     >     >     >     > > >
    > "{describeItem(watchmenComboBox.selectedItem)}"/>
    >     >     >     >     > > >
    >     >     >     >     > > > I think right now works as expected, since the
    >     > change is
    >     >     >     > programatic
    >     >     >     >     > (is
    >     >     >     >     > > > not the user clicking in the combo list and
    > selecting
    >     >     > other item
    >     >     >     >     > > >
    >     >     >     >     > > > So I think a bead should be better in this
    > case, that
    >     >     > takes care
    >     >     >     > of
    >     >     >     >     > this
    >     >     >     >     > > > behavior.
    >     >     >     >     > > >
    >     >     >     >     > > > I'm interested in Alex response about how to
    > handle
    >     > it
    >     >     >     >     > > >
    >     >     >     >     > > > Thanks Piotr for working on this
    >     >     >     >     > > >
    >     >     >     >     > > > Carlos
    >     >     >     >     > > >
    >     >     >     >     > > >
    >     >     >     >     > > >
    >     >     >     >     > > > El vie., 14 dic. 2018 a las 17:02, Piotr
    > Zarzycki (<
    >     >     >     >     > > > [email protected]>) escribió:
    >     >     >     >     > > >
    >     >     >     >     > > > > Hi Carlos,
    >     >     >     >     > > > >
    >     >     >     >     > > > > I have created issue [1] and branch [2] for
    >     > problem with
    >     >     > double
    >     >     >     >     > > dispatch
    >     >     >     >     > > > > "change" event.
    >     >     >     >     > > > > I have pushed changes when I'm removing from
    >     >     >     > ArrayListSelectionModel
    >     >     >     >     > > > > dispatch of change event.
    >     >     >     >     > > > >
    >     >     >     >     > > > > Above action successfully fix however like I
    >     > thought it's
    >     >     >     > introduces
    >     >     >     >     > > > > another one which I would like to discuss
    > how to
    >     > fix. I
    >     >     > have
    >     >     >     > deployed
    >     >     >     >     > > > > temporary Tour De Jewel here [3] in order to
    > show
    >     > you
    >     >     > and to
    >     >     >     > others
    >     >     >     >     > > that
    >     >     >     >     > > > > issue.
    >     >     >     >     > > > >
    >     >     >     >     > > > > *New Issue:*
    >     >     >     >     > > > > When you go to ComboBox and try to change
    >     > selectedIndex
    >     >     > using
    >     >     >     >     > > > > NumericStepper it will successfully change
    >     > selectedItem
    >     >     > in
    >     >     >     > ComboBox.
    >     >     >     >     > > > > Unfortunately label on the right sight of
    > ComboBox
    >     > won't
    >     >     > be
    >     >     >     > updated.
    >     >     >     >     > > > >
    >     >     >     >     > > > > *Question is:*
    >     >     >     >     > > > > How should be implemented discover of
    > programmatic
    >     >     > change of
    >     >     >     >     > > > selectedIndex
    >     >     >     >     > > > > and selectedItem ?
    >     >     >     >     > > > >
    >     >     >     >     > > > > *I see following options:*
    >     >     >     >     > > > > 1) We should listen on events
    >     >     >     >     > selectedIndexChanged/selectedItemChanged
    >     >     >     >     > > > and
    >     >     >     >     > > > > dispatch "change" from components View bead.
    > In
    >     > this way
    >     >     > we
    >     >     >     > have to
    >     >     >     >     > > take
    >     >     >     >     > > > > into account places where "we" as a 
component
    >     > setup those
    >     >     >     > properties
    >     >     >     >     > > > > internally - In that case
    > "selectedIndexChanged"
    >     > and
    >     >     >     >     > > > "selectedItemChanged"
    >     >     >     >     > > > > event shouldn't be dispatch.
    >     >     >     >     > > > >
    >     >     >     >     > > > > 2) Create separate bead which allows 
discover
    >     >     > programmatic
    >     >     >     > change of
    >     >     >     >     > > > > selectedIndex and selectedItem- cause not
    > everyone
    >     >     > wanted to
    >     >     >     > have at
    >     >     >     >     > > all
    >     >     >     >     > > > > programmatic change event in the component -
    >     > probably
    >     >     > most of
    >     >     >     > the
    >     >     >     >     > cases
    >     >     >     >     > > > > will be opposite.
    >     >     >     >     > > > >
    >     >     >     >     > > > > What others think about that ?
    >     >     >     >     > > > >
    >     >     >     >     > > > > [1]
    >     >     >     >
    >     >     >
    >     >
    > 
https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fapache%2Froyale-asjs%2Fissues%2F353&amp;data=02%7C01%7Caharui%40adobe.com%7C36d3d0b5a2a04dbda1fe08d6645f1dee%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636806757044098722&amp;sdata=G8eJrIYW%2BaEIRFcu0dSFbKEcR%2Fy%2BpKlD1YzbMgM3re0%3D&amp;reserved=0
    >     >     >     >     > > > > [2]
    >     >     >     >     > > > >
    >     >     >     >     > > > >
    >     >     >     >     > > >
    >     >     >     >     > >
    >     >     >     >     >
    >     >     >     >
    >     >     >
    >     >
    > 
https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fapache%2Froyale-asjs%2Ftree%2Fbugfix%2Fissue_353_double_dispatch_of_change_event_in_Jewel_List&amp;data=02%7C01%7Caharui%40adobe.com%7C36d3d0b5a2a04dbda1fe08d6645f1dee%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636806757044098722&amp;sdata=X65GmRCgzhAIaW7PO%2BiyQaPvFlREYeFYCcVEGvcM28s%3D&amp;reserved=0
    >     >     >     >     > > > > [3]
    >     >     >     >
    >     >     >
    >     >
    > 
https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Ftranspiledactionscript.com%2Fdev%2Froyale%2F%23&amp;data=02%7C01%7Caharui%40adobe.com%7C36d3d0b5a2a04dbda1fe08d6645f1dee%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636806757044098722&amp;sdata=LRkRN%2BGRgjtdiNTNN9oZY1hZFbOm0IIG%2BiScrnd5GK0%3D&amp;reserved=0
    >     >     >     >     > > > >
    >     >     >     >     > > > > Thanks,
    >     >     >     >     > > > > --
    >     >     >     >     > > > >
    >     >     >     >     > > > > Piotr Zarzycki
    >     >     >     >     > > > >
    >     >     >     >     > > > > Patreon: *
    >     >     >     >
    >     >     >
    >     >
    > 
https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patreon.com%2Fpiotrzarzycki&amp;data=02%7C01%7Caharui%40adobe.com%7C36d3d0b5a2a04dbda1fe08d6645f1dee%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636806757044108732&amp;sdata=yiyoM5h4LpKD2Tkl3P2KXnTN6CnH2eWzzPOgCdD9IB0%3D&amp;reserved=0
    >     >     >     >     > > > > <
    >     >     >     >
    >     >     >
    >     >
    > 
https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patreon.com%2Fpiotrzarzycki&amp;data=02%7C01%7Caharui%40adobe.com%7C36d3d0b5a2a04dbda1fe08d6645f1dee%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636806757044108732&amp;sdata=yiyoM5h4LpKD2Tkl3P2KXnTN6CnH2eWzzPOgCdD9IB0%3D&amp;reserved=0
    >     >     >     > >*
    >     >     >     >     > > > >
    >     >     >     >     > > >
    >     >     >     >     > > >
    >     >     >     >     > > > --
    >     >     >     >     > > > Carlos Rovira
    >     >     >     >     > > >
    >     >     >     >
    >     >     >
    >     >
    > 
https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&amp;data=02%7C01%7Caharui%40adobe.com%7C36d3d0b5a2a04dbda1fe08d6645f1dee%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636806757044108732&amp;sdata=2VTZlF8coTwrP1A93NJ6v0Gx5vmQJAFUsTGGvBpaeDA%3D&amp;reserved=0
    >     >     >     >     > > >
    >     >     >     >     > >
    >     >     >     >     > >
    >     >     >     >     > > --
    >     >     >     >     > >
    >     >     >     >     > > Piotr Zarzycki
    >     >     >     >     > >
    >     >     >     >     > > Patreon: *
    >     >     >     >
    >     >     >
    >     >
    > 
https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patreon.com%2Fpiotrzarzycki&amp;data=02%7C01%7Caharui%40adobe.com%7C36d3d0b5a2a04dbda1fe08d6645f1dee%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636806757044108732&amp;sdata=yiyoM5h4LpKD2Tkl3P2KXnTN6CnH2eWzzPOgCdD9IB0%3D&amp;reserved=0
    >     >     >     >     > > <
    >     >     >     >
    >     >     >
    >     >
    > 
https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patreon.com%2Fpiotrzarzycki&amp;data=02%7C01%7Caharui%40adobe.com%7C36d3d0b5a2a04dbda1fe08d6645f1dee%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636806757044108732&amp;sdata=yiyoM5h4LpKD2Tkl3P2KXnTN6CnH2eWzzPOgCdD9IB0%3D&amp;reserved=0
    >     >     >     > >*
    >     >     >     >     > >
    >     >     >     >     >
    >     >     >     >     >
    >     >     >     >     > --
    >     >     >     >     > Carlos Rovira
    >     >     >     >     >
    >     >     >     >
    >     >     >
    >     >
    > 
https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&amp;data=02%7C01%7Caharui%40adobe.com%7C36d3d0b5a2a04dbda1fe08d6645f1dee%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636806757044108732&amp;sdata=2VTZlF8coTwrP1A93NJ6v0Gx5vmQJAFUsTGGvBpaeDA%3D&amp;reserved=0
    >     >     >     >     >
    >     >     >     >
    >     >     >     >
    >     >     >     >     --
    >     >     >     >
    >     >     >     >     Piotr Zarzycki
    >     >     >     >
    >     >     >     >     Patreon: *
    >     >     >     >
    >     >     >
    >     >
    > 
https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patreon.com%2Fpiotrzarzycki&amp;data=02%7C01%7Caharui%40adobe.com%7C36d3d0b5a2a04dbda1fe08d6645f1dee%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636806757044108732&amp;sdata=yiyoM5h4LpKD2Tkl3P2KXnTN6CnH2eWzzPOgCdD9IB0%3D&amp;reserved=0
    >     >     >     >     <
    >     >     >     >
    >     >     >
    >     >
    > 
https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patreon.com%2Fpiotrzarzycki&amp;data=02%7C01%7Caharui%40adobe.com%7C36d3d0b5a2a04dbda1fe08d6645f1dee%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636806757044108732&amp;sdata=yiyoM5h4LpKD2Tkl3P2KXnTN6CnH2eWzzPOgCdD9IB0%3D&amp;reserved=0
    >     >     >     > >*
    >     >     >     >
    >     >     >     >
    >     >     >     >
    >     >     >
    >     >     >     --
    >     >     >
    >     >     >     Piotr Zarzycki
    >     >     >
    >     >     >     Patreon: *
    >     >     >
    >     >
    > 
https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patreon.com%2Fpiotrzarzycki&amp;data=02%7C01%7Caharui%40adobe.com%7C36d3d0b5a2a04dbda1fe08d6645f1dee%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636806757044108732&amp;sdata=yiyoM5h4LpKD2Tkl3P2KXnTN6CnH2eWzzPOgCdD9IB0%3D&amp;reserved=0
    >     >     >     <
    >     >     >
    >     >
    > 
https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patreon.com%2Fpiotrzarzycki&amp;data=02%7C01%7Caharui%40adobe.com%7C36d3d0b5a2a04dbda1fe08d6645f1dee%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636806757044108732&amp;sdata=yiyoM5h4LpKD2Tkl3P2KXnTN6CnH2eWzzPOgCdD9IB0%3D&amp;reserved=0
    >     >     > >*
    >     >     >
    >     >     >
    >     >     >
    >     >
    >     >     --
    >     >
    >     >     Piotr Zarzycki
    >     >
    >     >     Patreon: *
    >     >
    > 
https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patreon.com%2Fpiotrzarzycki&amp;data=02%7C01%7Caharui%40adobe.com%7C36d3d0b5a2a04dbda1fe08d6645f1dee%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636806757044108732&amp;sdata=yiyoM5h4LpKD2Tkl3P2KXnTN6CnH2eWzzPOgCdD9IB0%3D&amp;reserved=0
    >     >     <
    >     >
    > 
https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patreon.com%2Fpiotrzarzycki&amp;data=02%7C01%7Caharui%40adobe.com%7C36d3d0b5a2a04dbda1fe08d6645f1dee%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636806757044118737&amp;sdata=T9ppp9S1zyhwOul7XszcdSgixIIsAHFTdPJm%2FYvUXa4%3D&amp;reserved=0
    >     > >*
    >     >
    >     >
    >     >
    >
    >
    >
    

Reply via email to