-
-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Populate destination_of
on anchors during framing
#1533
Conversation
Signed-off-by: Juan Cruz Viotti <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Benchmark (linux/llvm)
Benchmark suite | Current: 5c47e95 | Previous: 4b026b7 | Ratio |
---|---|---|---|
Regex_Lower_S_Or_Upper_S_Asterisk |
2.1846833127785845 ns/iter |
2.222788402169206 ns/iter |
0.98 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
2.176972189167793 ns/iter |
2.2176768709160557 ns/iter |
0.98 |
Regex_Period_Asterisk |
2.181702085357973 ns/iter |
2.2065054561804742 ns/iter |
0.99 |
Regex_Group_Period_Asterisk_Group |
2.1825363850033512 ns/iter |
2.210463537976165 ns/iter |
0.99 |
Regex_Period_Plus |
2.7962875728152903 ns/iter |
2.797731876534637 ns/iter |
1.00 |
Regex_Period |
2.795978020479519 ns/iter |
2.797893250488835 ns/iter |
1.00 |
Regex_Caret_Period_Plus_Dollar |
2.796792308912819 ns/iter |
2.797193913865494 ns/iter |
1.00 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
2.796900896264365 ns/iter |
2.7966760823893524 ns/iter |
1.00 |
Regex_Caret_Period_Asterisk_Dollar |
3.417604954528654 ns/iter |
3.4192609925358073 ns/iter |
1.00 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
2.1846927714943623 ns/iter |
3.5223985406317078 ns/iter |
0.62 |
Regex_Caret_X_Hyphen |
12.53893187518594 ns/iter |
13.0773553625254 ns/iter |
0.96 |
Regex_Period_Md_Dollar |
81.4146938919688 ns/iter |
81.56812455899757 ns/iter |
1.00 |
Regex_Caret_Slash_Period_Asterisk |
5.9122841881746115 ns/iter |
6.843356361306217 ns/iter |
0.86 |
Regex_Caret_Period_Range_Dollar |
4.040098742305921 ns/iter |
4.041941153129352 ns/iter |
1.00 |
Regex_Nested_Backtrack |
507.35857171687354 ns/iter |
529.0190368323296 ns/iter |
0.96 |
JSON_Array_Of_Objects_Unique |
403.7191168190237 ns/iter |
405.65168190913556 ns/iter |
1.00 |
JSON_Parse_1 |
30582.084290184765 ns/iter |
30904.776652427394 ns/iter |
0.99 |
JSON_Fast_Hash_Helm_Chart_Lock |
59.380735410999776 ns/iter |
59.402063943194754 ns/iter |
1.00 |
JSON_Equality_Helm_Chart_Lock |
156.67434478151145 ns/iter |
159.52438817491864 ns/iter |
0.98 |
JSON_String_Equal/10 |
7.207524421580254 ns/iter |
7.4692832535485865 ns/iter |
0.96 |
JSON_String_Equal/100 |
7.7775530217982345 ns/iter |
8.104764503111815 ns/iter |
0.96 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
0.9345085630834079 ns/iter |
0.9347051353702299 ns/iter |
1.00 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
10.255942165808227 ns/iter |
10.25625858382381 ns/iter |
1.00 |
JSON_String_Fast_Hash/10 |
2.4904255679029847 ns/iter |
2.490716585950608 ns/iter |
1.00 |
JSON_String_Fast_Hash/100 |
2.487971644805545 ns/iter |
2.4934733865534895 ns/iter |
1.00 |
JSON_String_Key_Hash/10 |
2.1838798126482137 ns/iter |
2.179913866916078 ns/iter |
1.00 |
JSON_String_Key_Hash/100 |
1.867304771352099 ns/iter |
1.8676324967798472 ns/iter |
1.00 |
JSON_Object_Defines_Miss_Same_Length |
3.7375165457459265 ns/iter |
3.7551846143722343 ns/iter |
1.00 |
JSON_Object_Defines_Miss_Too_Small |
3.798331456258417 ns/iter |
3.738326661409161 ns/iter |
1.02 |
JSON_Object_Defines_Miss_Too_Large |
3.741319494969003 ns/iter |
3.737355053203133 ns/iter |
1.00 |
Pointer_Object_Traverse |
45.75577072883932 ns/iter |
44.55798511615263 ns/iter |
1.03 |
Pointer_Object_Try_Traverse |
52.267478580827785 ns/iter |
52.29926717495882 ns/iter |
1.00 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
354.21542830187116 ns/iter |
293.7171716365594 ns/iter |
1.21 |
This comment was automatically generated by workflow using github-action-benchmark.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Benchmark (macos/llvm)
Benchmark suite | Current: 5c47e95 | Previous: 4b026b7 | Ratio |
---|---|---|---|
Regex_Lower_S_Or_Upper_S_Asterisk |
1.6022307539442309 ns/iter |
1.985349499529561 ns/iter |
0.81 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
1.5858811452930301 ns/iter |
1.811678852869516 ns/iter |
0.88 |
Regex_Period_Asterisk |
1.6940621433522565 ns/iter |
1.7257157404407508 ns/iter |
0.98 |
Regex_Group_Period_Asterisk_Group |
1.8149931270261281 ns/iter |
1.6658261144786268 ns/iter |
1.09 |
Regex_Period_Plus |
2.217589090986069 ns/iter |
2.2652845851152508 ns/iter |
0.98 |
Regex_Period |
2.204788501212075 ns/iter |
2.1292336706052652 ns/iter |
1.04 |
Regex_Caret_Period_Plus_Dollar |
2.1653734128084543 ns/iter |
2.1661711187116235 ns/iter |
1.00 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
2.030204325628182 ns/iter |
2.0326733743965226 ns/iter |
1.00 |
Regex_Caret_Period_Asterisk_Dollar |
1.74350546439206 ns/iter |
1.7845566251781042 ns/iter |
0.98 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
1.6441077666921586 ns/iter |
1.824899380111216 ns/iter |
0.90 |
Regex_Caret_X_Hyphen |
7.12675823863798 ns/iter |
7.22916732196243 ns/iter |
0.99 |
Regex_Period_Md_Dollar |
75.34551637121264 ns/iter |
75.62538607165713 ns/iter |
1.00 |
Regex_Caret_Slash_Period_Asterisk |
5.777677491721987 ns/iter |
5.538574976963155 ns/iter |
1.04 |
Regex_Caret_Period_Range_Dollar |
2.345868056633249 ns/iter |
2.4698903226143445 ns/iter |
0.95 |
Regex_Nested_Backtrack |
766.5856047682047 ns/iter |
808.9981154799099 ns/iter |
0.95 |
JSON_Array_Of_Objects_Unique |
349.2285194808523 ns/iter |
368.9346281917627 ns/iter |
0.95 |
JSON_Parse_1 |
21357.674341799717 ns/iter |
25951.22109060703 ns/iter |
0.82 |
JSON_Fast_Hash_Helm_Chart_Lock |
48.14509350364519 ns/iter |
53.02368370063349 ns/iter |
0.91 |
JSON_Equality_Helm_Chart_Lock |
118.98707920501444 ns/iter |
130.67747310954508 ns/iter |
0.91 |
JSON_String_Equal/10 |
7.626901144535604 ns/iter |
8.288491709582896 ns/iter |
0.92 |
JSON_String_Equal/100 |
6.088158831880153 ns/iter |
6.858007687561453 ns/iter |
0.89 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
0.322567346882953 ns/iter |
0.3405593280763802 ns/iter |
0.95 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
2.960993347435447 ns/iter |
3.2393923601950823 ns/iter |
0.91 |
JSON_String_Fast_Hash/10 |
1.5830271463199501 ns/iter |
1.727138228085507 ns/iter |
0.92 |
JSON_String_Fast_Hash/100 |
1.9085038615492025 ns/iter |
2.100116266903786 ns/iter |
0.91 |
JSON_String_Key_Hash/10 |
1.3313839312734266 ns/iter |
1.3111221334624312 ns/iter |
1.02 |
JSON_String_Key_Hash/100 |
1.3757030495821825 ns/iter |
1.3393560008296201 ns/iter |
1.03 |
JSON_Object_Defines_Miss_Same_Length |
2.237717790108957 ns/iter |
2.8133340779122755 ns/iter |
0.80 |
JSON_Object_Defines_Miss_Too_Small |
2.2074391520252727 ns/iter |
2.4896693926807467 ns/iter |
0.89 |
JSON_Object_Defines_Miss_Too_Large |
2.2090560786361912 ns/iter |
2.369271141465392 ns/iter |
0.93 |
Pointer_Object_Traverse |
17.65839732784968 ns/iter |
18.552999844602322 ns/iter |
0.95 |
Pointer_Object_Try_Traverse |
22.577548495424463 ns/iter |
23.421029650801213 ns/iter |
0.96 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
201.6732760186506 ns/iter |
190.71428059126686 ns/iter |
1.06 |
This comment was automatically generated by workflow using github-action-benchmark.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Benchmark (windows/msvc)
Benchmark suite | Current: 5c47e95 | Previous: 4b026b7 | Ratio |
---|---|---|---|
Regex_Lower_S_Or_Upper_S_Asterisk |
7.03812834821349 ns/iter |
6.9208053571421555 ns/iter |
1.02 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
6.938026785712839 ns/iter |
7.1969040178565535 ns/iter |
0.96 |
Regex_Period_Asterisk |
6.979458705357797 ns/iter |
6.963270089284737 ns/iter |
1.00 |
Regex_Group_Period_Asterisk_Group |
6.8492544642850826 ns/iter |
7.0281986607133105 ns/iter |
0.97 |
Regex_Period_Plus |
7.235233896271512 ns/iter |
7.592340401786198 ns/iter |
0.95 |
Regex_Period |
7.215187500000704 ns/iter |
7.15855133928451 ns/iter |
1.01 |
Regex_Caret_Period_Plus_Dollar |
7.3065481816694815 ns/iter |
7.43856250000111 ns/iter |
0.98 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
7.355613839286385 ns/iter |
7.267129464284697 ns/iter |
1.01 |
Regex_Caret_Period_Asterisk_Dollar |
6.841620535715164 ns/iter |
6.836167410715989 ns/iter |
1.00 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
7.259315848214344 ns/iter |
7.098546874999555 ns/iter |
1.02 |
Regex_Caret_X_Hyphen |
11.809073214286466 ns/iter |
14.267527168449337 ns/iter |
0.83 |
Regex_Period_Md_Dollar |
150.25598214286617 ns/iter |
150.22352678570883 ns/iter |
1.00 |
Regex_Caret_Slash_Period_Asterisk |
10.409484328528357 ns/iter |
11.48743214285527 ns/iter |
0.91 |
Regex_Caret_Period_Range_Dollar |
7.834188616071864 ns/iter |
7.557827644831478 ns/iter |
1.04 |
Regex_Nested_Backtrack |
614.2669642857511 ns/iter |
605.2748214285332 ns/iter |
1.01 |
JSON_Array_Of_Objects_Unique |
490.98079999998845 ns/iter |
492.5240000000031 ns/iter |
1.00 |
JSON_Parse_1 |
80002.59809828697 ns/iter |
80199.49776785853 ns/iter |
1.00 |
JSON_Fast_Hash_Helm_Chart_Lock |
62.68843749999016 ns/iter |
64.70213392857107 ns/iter |
0.97 |
JSON_Equality_Helm_Chart_Lock |
187.91101677780358 ns/iter |
184.90611472376514 ns/iter |
1.02 |
JSON_String_Equal/10 |
9.059560673841034 ns/iter |
9.123423173554265 ns/iter |
0.99 |
JSON_String_Equal/100 |
9.91045977718469 ns/iter |
9.914437455738977 ns/iter |
1.00 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
2.1681749999999056 ns/iter |
2.1640687499996147 ns/iter |
1.00 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
14.59764811653262 ns/iter |
14.687901496926134 ns/iter |
0.99 |
JSON_String_Fast_Hash/10 |
4.031001703626216 ns/iter |
4.11671229726898 ns/iter |
0.98 |
JSON_String_Fast_Hash/100 |
4.070127060839918 ns/iter |
4.084698087651086 ns/iter |
1.00 |
JSON_String_Key_Hash/10 |
7.921029017856946 ns/iter |
7.835654429302585 ns/iter |
1.01 |
JSON_String_Key_Hash/100 |
4.020392775036236 ns/iter |
4.0291410786235 ns/iter |
1.00 |
JSON_Object_Defines_Miss_Same_Length |
3.7175126719336076 ns/iter |
3.71702410050568 ns/iter |
1.00 |
JSON_Object_Defines_Miss_Too_Small |
4.983905999999934 ns/iter |
4.952966964286328 ns/iter |
1.01 |
JSON_Object_Defines_Miss_Too_Large |
3.6202120369064734 ns/iter |
3.404670395705816 ns/iter |
1.06 |
Pointer_Object_Traverse |
49.619750000010754 ns/iter |
48.977674672023205 ns/iter |
1.01 |
Pointer_Object_Try_Traverse |
67.6234196428587 ns/iter |
67.56592633929058 ns/iter |
1.00 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
180.65669513325867 ns/iter |
160.73004647750395 ns/iter |
1.12 |
This comment was automatically generated by workflow using github-action-benchmark.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Benchmark (linux/gcc)
Benchmark suite | Current: 5c47e95 | Previous: 4b026b7 | Ratio |
---|---|---|---|
Pointer_Object_Traverse |
45.44264921500981 ns/iter |
47.78099339184986 ns/iter |
0.95 |
Pointer_Object_Try_Traverse |
26.121422212967982 ns/iter |
26.13699763273692 ns/iter |
1.00 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
145.07111770218972 ns/iter |
145.923579909213 ns/iter |
0.99 |
JSON_Array_Of_Objects_Unique |
411.6820070166104 ns/iter |
410.82650518251563 ns/iter |
1.00 |
JSON_Parse_1 |
33472.09648072679 ns/iter |
33199.54636153428 ns/iter |
1.01 |
JSON_Fast_Hash_Helm_Chart_Lock |
62.85716687691292 ns/iter |
68.97062393152628 ns/iter |
0.91 |
JSON_Equality_Helm_Chart_Lock |
149.27970844595376 ns/iter |
149.07136401007836 ns/iter |
1.00 |
JSON_String_Equal/10 |
6.344272683392001 ns/iter |
6.350384651816174 ns/iter |
1.00 |
JSON_String_Equal/100 |
6.971953390861023 ns/iter |
6.9666799850306305 ns/iter |
1.00 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
0.9349533792971766 ns/iter |
0.951996442071387 ns/iter |
0.98 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
14.28569585520373 ns/iter |
14.286306648241132 ns/iter |
1.00 |
JSON_String_Fast_Hash/10 |
0.9336746114529694 ns/iter |
0.9324230894587451 ns/iter |
1.00 |
JSON_String_Fast_Hash/100 |
0.9340856905400167 ns/iter |
0.9325476645910382 ns/iter |
1.00 |
JSON_String_Key_Hash/10 |
1.6725631117529343 ns/iter |
1.6718350254418997 ns/iter |
1.00 |
JSON_String_Key_Hash/100 |
1.9849913746576857 ns/iter |
1.983204057906851 ns/iter |
1.00 |
JSON_Object_Defines_Miss_Same_Length |
2.4896247204383926 ns/iter |
2.4862601639605426 ns/iter |
1.00 |
JSON_Object_Defines_Miss_Too_Small |
2.4905612212416615 ns/iter |
2.4899786389342706 ns/iter |
1.00 |
JSON_Object_Defines_Miss_Too_Large |
3.1107934582389563 ns/iter |
3.1082090059138063 ns/iter |
1.00 |
Regex_Lower_S_Or_Upper_S_Asterisk |
3.4303370091186483 ns/iter |
3.4287714629347823 ns/iter |
1.00 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
3.422036235464117 ns/iter |
3.4205785703139573 ns/iter |
1.00 |
Regex_Period_Asterisk |
3.4220433020441354 ns/iter |
3.4247394444151995 ns/iter |
1.00 |
Regex_Group_Period_Asterisk_Group |
3.4226146949181193 ns/iter |
3.423587439875204 ns/iter |
1.00 |
Regex_Period_Plus |
3.7278121244022686 ns/iter |
3.7286738532589867 ns/iter |
1.00 |
Regex_Period |
3.7305411700901434 ns/iter |
3.41816305168842 ns/iter |
1.09 |
Regex_Caret_Period_Plus_Dollar |
3.7328418297465866 ns/iter |
3.435397720192614 ns/iter |
1.09 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
3.7365963465510412 ns/iter |
3.4179775481444707 ns/iter |
1.09 |
Regex_Caret_Period_Asterisk_Dollar |
4.667313560840235 ns/iter |
3.7301792883399374 ns/iter |
1.25 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
4.669841167199503 ns/iter |
3.7371304751930925 ns/iter |
1.25 |
Regex_Caret_X_Hyphen |
12.451256372853928 ns/iter |
12.433884944422347 ns/iter |
1.00 |
Regex_Period_Md_Dollar |
89.50147148268493 ns/iter |
89.41446193250121 ns/iter |
1.00 |
Regex_Caret_Slash_Period_Asterisk |
8.079249172167506 ns/iter |
7.148986729682512 ns/iter |
1.13 |
Regex_Caret_Period_Range_Dollar |
4.661592406176585 ns/iter |
4.661175898617215 ns/iter |
1.00 |
Regex_Nested_Backtrack |
820.429778597079 ns/iter |
852.4421904330886 ns/iter |
0.96 |
This comment was automatically generated by workflow using github-action-benchmark.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Benchmark (macos/gcc)
Benchmark suite | Current: 5c47e95 | Previous: 4b026b7 | Ratio |
---|---|---|---|
Regex_Lower_S_Or_Upper_S_Asterisk |
1.9840003014381338 ns/iter |
2.319692072528449 ns/iter |
0.86 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
2.0252854186732683 ns/iter |
2.533958447722276 ns/iter |
0.80 |
Regex_Period_Asterisk |
2.0988867245755385 ns/iter |
2.690569674150589 ns/iter |
0.78 |
Regex_Group_Period_Asterisk_Group |
1.9758723107455303 ns/iter |
2.45096369266332 ns/iter |
0.81 |
Regex_Period_Plus |
1.637717125265521 ns/iter |
1.6829619375607714 ns/iter |
0.97 |
Regex_Period |
1.6743565909249367 ns/iter |
1.7265151845952647 ns/iter |
0.97 |
Regex_Caret_Period_Plus_Dollar |
1.727165062629354 ns/iter |
1.8026630460916915 ns/iter |
0.96 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
1.6323930975014738 ns/iter |
1.7250833911967816 ns/iter |
0.95 |
Regex_Caret_Period_Asterisk_Dollar |
1.9511212314059914 ns/iter |
2.093530769112362 ns/iter |
0.93 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
2.042970836977134 ns/iter |
2.036923206689505 ns/iter |
1.00 |
Regex_Caret_X_Hyphen |
6.352420960045629 ns/iter |
6.2944705693556084 ns/iter |
1.01 |
Regex_Period_Md_Dollar |
72.87519949084405 ns/iter |
77.50079226166017 ns/iter |
0.94 |
Regex_Caret_Slash_Period_Asterisk |
4.64303546903493 ns/iter |
4.785489311839859 ns/iter |
0.97 |
Regex_Caret_Period_Range_Dollar |
2.07199036177668 ns/iter |
2.043330489295202 ns/iter |
1.01 |
Regex_Nested_Backtrack |
926.8733071104737 ns/iter |
891.6035690143506 ns/iter |
1.04 |
JSON_Array_Of_Objects_Unique |
224.056571043161 ns/iter |
233.86050200766073 ns/iter |
0.96 |
JSON_Parse_1 |
25749.538055501438 ns/iter |
26489.718593676927 ns/iter |
0.97 |
JSON_Fast_Hash_Helm_Chart_Lock |
25.653744310163802 ns/iter |
26.79354578966225 ns/iter |
0.96 |
JSON_Equality_Helm_Chart_Lock |
125.86253786107068 ns/iter |
125.65379927671022 ns/iter |
1.00 |
JSON_String_Equal/10 |
5.927356449113166 ns/iter |
5.872528496121688 ns/iter |
1.01 |
JSON_String_Equal/100 |
5.551993202293945 ns/iter |
5.66320582866014 ns/iter |
0.98 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
0.8077277539497187 ns/iter |
0.816754460694354 ns/iter |
0.99 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
3.6842389470556647 ns/iter |
3.789327569244791 ns/iter |
0.97 |
JSON_String_Fast_Hash/10 |
1.9702885936574817 ns/iter |
2.099829671304583 ns/iter |
0.94 |
JSON_String_Fast_Hash/100 |
1.9508783958846014 ns/iter |
2.0905706893916673 ns/iter |
0.93 |
JSON_String_Key_Hash/10 |
1.4705230006742096 ns/iter |
1.5691811033972098 ns/iter |
0.94 |
JSON_String_Key_Hash/100 |
2.027409666173502 ns/iter |
2.2194229638530847 ns/iter |
0.91 |
JSON_Object_Defines_Miss_Same_Length |
1.7874086198665486 ns/iter |
2.213699616241128 ns/iter |
0.81 |
JSON_Object_Defines_Miss_Too_Small |
1.9967653226981577 ns/iter |
2.448740801301952 ns/iter |
0.82 |
JSON_Object_Defines_Miss_Too_Large |
1.7432112388525198 ns/iter |
1.9507890319392747 ns/iter |
0.89 |
Pointer_Object_Traverse |
54.162867386977396 ns/iter |
57.89207987852541 ns/iter |
0.94 |
Pointer_Object_Try_Traverse |
37.933518005562036 ns/iter |
39.89779058235405 ns/iter |
0.95 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
169.68285926049245 ns/iter |
192.61640651783296 ns/iter |
0.88 |
This comment was automatically generated by workflow using github-action-benchmark.
Signed-off-by: Juan Cruz Viotti [email protected]