### :construction: Experimental DDFun pipeline
🔥 Device tests completed (Failed) on iOS-DDFun on [Azure DevOps](https://dev.azure.com/devdiv/DevDiv/_build/index?buildId=3354895)(iOS-DDFun) 🔥

# Test results

142 tests' device not found, 0 tests passed.


Successfully deployed to following URLs:

* https://emoji-industries-nzhcqjerl.now.sh
* https://emoji.industries
* https://emoji-industries.ianowhite.now.sh
* https://emoji-industries-git-master.ianowhite.now.sh


Successfully deployed to following URLs:

* https://formik-docs-s4926yzk7.now.sh
* https://formik-docs.now.sh
* https://formik-docs.jared.now.sh
* https://formik-docs-git-master.jared.now.sh


Successfully deployed to following URLs:

* https://leebyron-7d7ng7123.now.sh
* https://leebyron.now.sh
* https://lwb.io
* https://leebyron.leebyron.now.sh
* https://leebyron-git-master.leebyron.now.sh


Successfully deployed to following URLs:

* https://gregory-and-cecelia-9h6fti3bx.now.sh
* https://gregory-and-cecelia.now.sh
* https://gregoryandcecelia.com
* https://gregory-and-cecelia.wehmenstein.now.sh
* https://gregory-and-cecelia-git-master.wehmenstein.now.sh


OK, I'll give `{obj,hom}-map` a try in the PR and if it looks horrible we can revert to the convention followed in the rest of the library.

I'll also open an issue in the main repo so we can discuss options for changing the convention throughout the library. (But probably not tonight.)


TeamCity Glyssen / Glyssen pull requests [Build *.*.783.be474c0032748f220d0f7810d958ec8736bc5de6](https://build.palaso.org/viewLog.html?buildId=176672&buildTypeId=Glyssen_GlyssenPullRequests2) outcome was **SUCCESS**
Summary: Tests passed: 2398, ignored: 18 Build time: 00:10:50


Successfully deployed to following URLs:

* https://matchline-rjqekvc6t.now.sh
* https://matchline.now.sh
* https://matchline.nattwasm.now.sh
* https://matchline-git-master.nattwasm.now.sh


Sustainable City/Βιώσιμη πόλη
Αποθετήριο της ομάδας για στην συμμετοχή στον 2o Διαγωνισμό Ρομποτικής Ανοιχτών Τεχνολογιών
Ραλλειόπαιδα

Φέτος, ο Όμιλος Ρομποτικής-STEAM των Ραλλείων Πειραματικών Δημοτικών, συνέχισε για δεύτερη χρονιά τη θεματική Think Green go STEAM σχετικά με το περιβάλλον και με αφορμή την τον 2ο διαγωνισμό ανοιχτών τεχνολογιών εστιάσαμε στην κλιματική αλλαγή. Παρατηρώντας όλα όσα συμβαίνουν γύρω μας στο περιβάλλον, σκεφτήκαμε τι μπορούμε να κάνουμε εμείς για να αποτρέψουμε τις συνέπειες της ανθρώπινης δραστηριότητας στον πλανήτη.
Έτσι αποφασίσαμε να σχεδιάσουμε και να υλοποιήσουμε μια Βιώσιμη Πόλη. Στόχος της "Βιώσιμης Πόλης"είναι να ευαισθητοποιήσει τους μαθητές και το κοινό πάνω στο ζήτημα των Ανανεώσιμων Πηγών ενέργειας και του πως μπορούμε να κάνουμε την πόλη μας πιο βιώσιμη. Έτσι στο πρότζεκτ αυτό θα υλοποιήσουμε μια μακέτα που θα έχει αυτοματισμούς οι οποίοι θα λειτουργούν με ενέργεια που θα παράγεται από ανανεώσιμες πηγές ενώ η κεντρική πλατεία της πόλης μας θα φωτίζεται με την ενέργεια που θα παράγεται από τις ίδιες τις κατασκευές μας.
Με αυτό τον τρόπο, ο ενεργειακός συμψηφισμός στην κατασκευή μας δε θα είναι εικονικός αλλά πραγματικός.
Για τον ενεργειακό συμψηφισμό ανακαλύψαμε ψάχνοντας πληροφορίες για τη Βιώσιμη Πόλη μας, Ανακαλύψαμε ότι υπάρχει στην πραγματικότητα Ευρωπαϊκό πρόγραμμα που συμμετέχουν πόλεις από όλη την Ελλάδα, σχηματίζοντας μια μεγάλη ομάδα, ένα δίκτυο.
Εικονικός ενεργειακός συμψηφισμός είναι η δυνατότητα που έχουν φορείς, όπως για παράδειγμα οι δήμοι, να έχουν εγκαταστάσεις παραγωγής ρεύματος. Πολύ συχνά επιλέγεται να εκμεταλλεύονται τις στέγες των κτιρίων και να τοποθετούν σε αυτά φωτοβολταϊκά πάνελ. Το ρεύμα που παράγεται από τις εγκαταστάσεις αυτές, προωθείται στο δίκτυο ηλεκτρικού ρεύματος, και σε αντάλλαγμα ο φορέας που παράγει το ηλεκτρικό ρεύμα έχει έκπτωση από την εταιρεία παροχής ηλεκτρικού ρεύματος (πχ ΔΕΗ) στην κατανάλωση του ρεύματος ίση με το ρεύμα που έδωσε.
Το ρεύμα που παράγεται δεν μπορεί να χρησιμοποιηθεί από τον ίδιο το φορέα για πρακτικούς και οικονομικούς λόγους. Τα φωτοβολταϊκά πάνελ για παράδειγμα, δεν μπορούν να παράξουν ρεύμα τη νύχτα ή με συννεφιά. Επομένως για να έχει ένα κτίριο αυτάρκεια σε ενέργεια, θα πρέπει να αποθηκεύει την ενέργεια τη στιγμή που την παράγει σε μπαταρίες που είναι μια ακριβή λύση. Επιπλέον για κάτι τέτοιο θα έπρεπε να υπήρχαν και μόνιμοι τεχνικοί σε κάθε κτίριο για να ελέγχουν την εγκατάσταση. Αυτό θα κόστιζε στο δήμο επιπλέον χρήματα.
H μακέτα μας θα είναι κατασκευασμένη ώστε τα φωτοβολταϊκά πάνελ που θα είναι πάνω στα κτίρια να φορτίζουν τις μπαταρίες για να κινείται ένα λεωφορείο που θα κάνει το γύρο της πόλης μας, ενώ με την ενέργεια που αποθηκεύεται από το πάνελ θα φωτίζεται και η αφετηρία του λεωφορείου όταν νυχτώνει.
Επίσης, όταν φυσάει η πλατεία της πόλης θα φωτίζεται με δωρεάν ενέργεια που θα παράγεται από μια ανεμογεννήτρια.
Για την κατασκευή της μακέτας θα χρησιμοποιηθούν ανακυκλωμένα υλικά και επιπλέον

-τρία Φωτοβολταϊκά πάνελ: https://grobotronics.com/solar-panel-1w-125x63mm.html
-δίοδος: https://grobotronics.com/diode-rectifier-1a-1000v-1n4007.html
-τρανσιστορ: https://grobotronics.com/transistor-npn-75v-800ma-2n2222a.html
-αντιστάσεις
-πλακέτα φόρτισης https://grobotronics.com/lithium-battery-charger-and-protection-module-tp4056.html
-δύο μπαταριοθήκες μονές για μπαταρία λιθίου https://grobotronics.com/battery-holder-1x18650-with-wires.html
-δύο επαναφορτιζόμενες μπαταρίες Λιθίου: https://grobotronics.com/ncr18650b-3350mah-panasonic.html
-led
-DC motor:  https://www.cableworks.gr/ilektronika/arduino-and-microcontrollers/motors/dc/jga25-370-12v-dc-motor/
-Λεντοταινία https://grobotronics.com/led-strip-2835-12w-m-ip20-white-cold-8mm-width.html
-Arduino uno,
- κιτ για αυτοκινητάκι με μοτεράκια dc για τις ρόδες,https://grobotronics.com/robot-smart-car-4wd-chassis-26cm.html
-γέφυρα μοτέρ: https://grobotronics.com/dual-motor-driver-module-l298n.html
-καλώδια


This is great! Thank you :)


> closeQuietly ignores nulls

Maybe i was not clear enough:
In the construction
```java
if (pp == null) {
    closeQuietly(pp);
```
the line `closeQuietly(pp);` is redundant, because in this condition branch we already know `pp` is null and will be ignored by `closeQuietly`


Successfully deployed to following URLs:

* https://hime-restaurant-loaqy1o1t.now.sh
* https://hime-restaurant.now.sh
* https://hime-restaurant.iyansr.now.sh
* https://hime-restaurant-git-master.iyansr.now.sh


Thank you for the happy new year wishes :) Likewise!
That's interesting - I did try the Ghostlander yesterday on some GTX1070, but it was slow, compared to the KlausT 8.25. Does it run faster on your GPUs?


I'm of the opinion that this should be changed to either a "Magic class" or an `IntEnum`to allow for cleaner implementation than has happened here. For an example of how it is currently inelegant, see in `save_token`:

```python
    db.execute(
        'INSERT INTO password_tokens (user_id, token, token_type, expires) VALUES (?, ?, ?, ?)',
        (user_id, token, f'{purpose}', expiry)
    )
```

or in `validate_token`:

```python
    if _password_token['token_type'] != f'{purpose}':
        raise TokenInvalidError()
```


Successfully deployed to following URLs:

* https://vr-graph-4pycvd1c9.now.sh
* https://vr-graph.now.sh
* https://vr-graph.marlon360.now.sh
* https://vr-graph-git-master.marlon360.now.sh


> The timestamp desync i have not. If you could provide way to reproduce issue....

I don't remember if it was dynaudnorm (or maybe a similar filter like loudnorm), but the filter assumed that pts is locked to the sample count, which is not necessarily the case in general.

>  There is no point to add static latency report when it can be anything including dynamic at runtime.

The latter sucks big time. Probing such things at runtime which are known statically adds loads of complexity and fragility, for which I will blame libavfilter. Every non-clown audio filtering system can control the latency statically (and can guarantee that it will not deviate from it), because it's extremely important.

Timestamps aren't a good way to do this either, because they can jitter or reset.

>  I do not care for hardware filters, but most of them have it in filter's name.

Guessing it by the filter name, seriously? So libavfilter is still a boiling pot of boiling bovine poop, got it. That you have to put lots of effort into guessing trivial properties that could be trivially exported is surely the worst part of lavfi. Everything gets fragile and complex and shitty because of it. Example: filters break hardware decoding, where it could be trivially disabled or frames could be downloaded to main RAM. what a load of bullshit.


Detected issues for future reference:

* why are element styles, that can be shadow theme modules, instead refactored into global state?
* 1.618 stuff is a legacy invention, no need for it any longer
* styling targets should be classes `.entry-header`, not elements `header`


大牛，请教我爪哇


want to go back here


Successfully deployed to following URLs:

* https://code2go-r38k0r2dy.now.sh
* https://*.code2go.dev
* https://code2go.dev
* https://code2go.medienwerk.now.sh
* https://code2go-git-master.medienwerk.now.sh


```
TravelColorMarker
TravelLengthMarker
TravelSpacesMarker
```


Anyway, if you need a specific behaviour, you can implement your own version of IObjectMappingConvention and register it.
If you choose this option, let me know if you miss any feature on ObjectMapping/MemberMapping setters


Think stars import are always ugly and should be never made ;)


dizibox düzeltildi,
jetfilmizle düzeltildi,
cloudvideo oynatma düzeltildi,
ok.ru oynatma düzeltildi,
vidia.tv oynatma eklendi,
letsupload oynatma eklendi


I'll update


haha actually robot can't turn while strafing sideways 🙃
should be fixed in the next commit


Successfully deployed to following URLs:

* https://animation-test-md6d445ib.now.sh
* https://animation-test.now.sh
* https://animation-test.foxhunt.now.sh
* https://animation-test-git-master.foxhunt.now.sh


For me it only works if I send a request to get my data where the time is older than today at 12:00 (noon), could you maybe implement a different call (in the repository) and test it out?


Deploy preview for _website_ ready!

Built with commit 1074f1eca9e2bba46071da1ecee02ca1c21c90d6

https://shopware-pwa-5dna7fci3.now.sh


> -2 not in lineage

it should be: https://github.com/LineageOS/android_device_lineage_sepolicy/commit/8ca697b6c2d7145b71cebfc311185d2d14455723


Successfully deployed to following URLs:

* https://dutzigithubio-qn4rlahny.now.sh
* https://dutzi.party
* https://dutzigithubio.dutzi.now.sh
* https://dutzigithubio-git-master.dutzi.now.sh


Successfully deployed to following URLs:

* https://haywards-wedding-website-7wl2gvm8s.now.sh
* https://mrandmrshayward.com
* https://www.mrandmrshayward.com
* https://haywards-wedding-website.mrdl.now.sh
* https://haywards-wedding-website-git-master.mrdl.now.sh


This is the output of:
print(datetime.datetime.now().timestamp())
print(time.time())

1578171744.396848
1578171744.3969028


Successfully deployed to following URLs:

* https://pulse-87denmagi.now.sh
* https://pulsejs.org
* https://pulse.js.org
* https://pulse.pulse-framework.now.sh
* https://pulse-git-master.pulse-framework.now.sh


Successfully deployed to following URLs:

* https://tomato-ia7r3piej.now.sh
* https://tomato.zgreen.now.sh
* https://tomato-git-master.zgreen.now.sh


### TinyCI build failure:
[make -j 3] returned [2]:
```[  1%] Built target json11
[  7%] Built target lua
[  7%] Built target miniz
[ 17%] Built target box2d
[ 44%] Built target sp2freetype
[ 73%] Built target bullet
Scanning dependencies of target ZeroRho
[ 73%] Building CXX object CMakeFiles/ZeroRho.dir/src/player.cpp.o
[ 73%] Building CXX object CMakeFiles/ZeroRho.dir/src/camera.cpp.o
[ 73%] Building CXX object CMakeFiles/ZeroRho.dir/src/main.cpp.o
CMakeFiles/ZeroRho.dir/build.make:110: recipe for target 'CMakeFiles/ZeroRho.dir/src/player.cpp.o' failed
[ 73%] Building CXX object CMakeFiles/ZeroRho.dir/src/script.cpp.o
CMakeFiles/Makefile2:294: recipe for target 'CMakeFiles/ZeroRho.dir/all' failed
Makefile:105: recipe for target 'all' failed

/data/tinyci_build/daid/ZeroRho/src/player.cpp: In member function 'void PlayerShip::explosion()':
/data/tinyci_build/daid/ZeroRho/src/player.cpp:130:11: error: 'class sp::ParticleEmitter::Parameters' has no member named 'acceleration'
         p.acceleration = -p.velocity * 0.3f;
           ^~~~~~~~~~~~
/data/tinyci_build/daid/ZeroRho/src/player.cpp:131:11: error: 'class sp::ParticleEmitter::Parameters' has no member named 'start_size'
         p.start_size = 0.5;
           ^~~~~~~~~~
/data/tinyci_build/daid/ZeroRho/src/player.cpp:132:11: error: 'class sp::ParticleEmitter::Parameters' has no member named 'end_size'; did you mean 'size'?
         p.end_size = 10.0;
           ^~~~~~~~
/data/tinyci_build/daid/ZeroRho/src/player.cpp:133:11: error: 'class sp::ParticleEmitter::Parameters' has no member named 'start_color'
         p.start_color = sp::Color(1,1,1);
           ^~~~~~~~~~~
/data/tinyci_build/daid/ZeroRho/src/player.cpp:134:11: error: 'class sp::ParticleEmitter::Parameters' has no member named 'end_color'; did you mean 'color'?
         p.end_color = sp::Color(1,1,1,0);
           ^~~~~~~~~
/data/tinyci_build/daid/ZeroRho/src/player.cpp:149:11: error: 'class sp::ParticleEmitter::Parameters' has no member named 'acceleration'
         p.acceleration = sp::Vector3f(0, 0, 0);
           ^~~~~~~~~~~~
/data/tinyci_build/daid/ZeroRho/src/player.cpp:150:11: error: 'class sp::ParticleEmitter::Parameters' has no member named 'start_size'
         p.start_size = 1.5;
           ^~~~~~~~~~
/data/tinyci_build/daid/ZeroRho/src/player.cpp:151:11: error: 'class sp::ParticleEmitter::Parameters' has no member named 'end_size'; did you mean 'size'?
         p.end_size = 2.5;
           ^~~~~~~~
/data/tinyci_build/daid/ZeroRho/src/player.cpp:152:11: error: 'class sp::ParticleEmitter::Parameters' has no member named 'start_color'
         p.start_color = sp::Color(1,1,1);
           ^~~~~~~~~~~
/data/tinyci_build/daid/ZeroRho/src/player.cpp:153:11: error: 'class sp::ParticleEmitter::Parameters' has no member named 'end_color'; did you mean 'color'?
         p.end_color = sp::Color(1,0,0,0);
           ^~~~~~~~~
make[2]: *** [CMakeFiles/ZeroRho.dir/src/player.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [CMakeFiles/ZeroRho.dir/all] Error 2
make: *** [all] Error 2
```


Good.


# Specs execution successful
:scroll: [View logs](http://bamboo.comnull)
### Plans updated

Bamboo specs have been successfully imported and the following plans have been updated.

Project | Plan | Build
---|---|---
[Test](http://bamboo.com/browse/TEST) | [Comment test](http://bamboo.com/browse/TEST-CTEST)  | :white_check_mark: [\#1](http://bamboo.com/browse/TEST-CTEST-1)
[New project](http://bamboo.com/browse/NEW) | [Disabled plan](http://bamboo.com/browse/NEW-DISABLED) **disabled** | :white_check_mark: [\#1](http://bamboo.com/browse/NEW-DISABLED-1)

### Deployments updated

Bamboo specs have been successfully imported and the following deployment projects have been updated.

|Deployment project |
----|
[Deployment test](http://bamboo.com/deploy/viewDeploymentProjectVersions.action?id=2162689)|


Excellent solution.


Very good.


Successfully deployed to following URLs:

* https://cosmonauts-world-lp8qz4bwb.now.sh
* https://cosmonauts-world.now.sh
* https://cosmonauts.world
* https://www.cosmonauts.world
* https://cosmonauts-world.lovincyrus.now.sh
* https://cosmonauts-world-git-master.lovincyrus.now.sh


Excellent!


I think this one is without `s` as `addNamespacesToVariable` is for one variable which seem like it is for this case.


Successfully deployed to following URLs:

* https://plyn-kalkulacka-il96bjxgt.now.sh
* https://plyn-kalkulacka.now.sh
* https://plyn-kalkulacka.rostaklein.now.sh
* https://plyn-kalkulacka-git-master.rostaklein.now.sh


handleSubmit adicionado apenas para saber se todas as informações estão sendo passadas com sucesso


Also good to use triangle strip here.


+1 thanks :)


Failed to assign a domain to your deployment due to the following error:

~~~
You are not owner of the domain "thatslofty.com".
~~~

([Learn more](https://zeit.co/paytonbox/portfolio/6oyuq8v50) or [visit](https://portfolio-6oyuq8v50.now.sh) the non-aliased deployment)


Successfully deployed to following URLs:

* https://sugarpatch-tracker-fe-dya3ij34b.now.sh
* https://sugarpatch-tracker-fe.now.sh
* https://sugartracker.now.sh
* https://sugarpatch-tracker-fe.newtypev2.now.sh
* https://sugarpatch-tracker-fe-git-master.newtypev2.now.sh


[![Visit Site](https://raw.githubusercontent.com/pantheon-systems/terminus-build-tools-plugin/master/assets/images/visit-site-36.png)](https://ci-746-cgsiweb.pantheonsite.io/)

Created multidev environment [ci-746](https://dashboard.pantheon.io/sites/806fd996-4d92-45f6-a74e-dc88955a747a#ci-746) for cgsiweb.


I think this is less robust, since the current path is not guaranteed to be the one of the current file


Successfully deployed to following URLs:

* https://portfolio-r8jzntzq0.now.sh
* https://portfolio-kappa-swart.now.sh
* https://paytonbox.com
* https://portfolio.paytonbox.now.sh
* https://portfolio-git-master.paytonbox.now.sh


Successfully deployed to following URLs:

* https://nickdebakey-mr034ni1x.now.sh
* https://nickdebakey.com
* https://nickdebakey.nickdebakey.now.sh
* https://nickdebakey-git-master.nickdebakey.now.sh


You should dump the autoloader in ordet to avoid the explicit include


Successfully deployed to following URLs:

* https://cursed-cat-images-ory5ansa5.now.sh
* https://cursed-cats.now.sh
* https://cursed-cat-images.maficious.now.sh
* https://cursed-cat-images-git-master.maficious.now.sh


Using minidom


Copy of this build can be found at
https://www.mewbuilds.com/build/09f4f436f5cb727495ad05ac5128468434a648d2/index.html
                       https://www.cloudflare-ipfs.com/ipfs/QmWu8mQcGUMw3v8DYQCPwDDmKu12baVHnEjy63ouYLQV2H
                       Virus Total analysis
                       https://www.virustotal.com/file/e5cdc3a249c5d70f612af0582b46fb76c2b0a83cc9326ac82045d6b5856a74ab/analysis/1578082817/


Successfully deployed to following URLs:

* https://zphp-itwkez5u0.now.sh
* https://zphp.brucegne.now.sh
* https://zphp-git-master.brucegne.now.sh


Yeah, I agree. I always get merge errors in `SpellEffects.cpp` when porting. Generally speaking, I think `SpellEffects.cpp` is too big a file, mostly because of script/dummy effects.

I'll start using spell scripts for the three remaining Naxxramas bosses, yes. I did not do it with Maexxna because I worked on this boss for far too long and I wanted to finally get rid of it. I'll move the script effects later.


Deployment failed with the following error:

~~~
You defined 1 build that did not match any source files (please ensure they are NOT defined in .nowignore):
~~~


Successfully deployed to following URLs:

* https://oneglance-fcz37iq5u.now.sh
* https://oneglance.now.sh
* https://oneglance.tobiaserich.now.sh
* https://oneglance-git-master.tobiaserich.now.sh


Successfully deployed to following URLs:

* https://pamahah-myew0f40c.now.sh
* https://pamahah.now.sh
* https://pamahah.josenriagu.now.sh
* https://pamahah-git-master.josenriagu.now.sh


I like it!


- fixed merging of emphases together - for instance, a new emphasis <2,16) can be merged with en existing emphasis <16,30),
- fixed assertion if _CHexaEditor::RepaintData_ called when the hexa-editor doesn't yet have a handle,
- fixed updating of information on dimensions of the hexa-editor ( via _WM\_SIZE_ message).


1. Viết gọn `@php($i=0)`
2. `$i` có thể lấy trong foreach theo 2 cách
 - `@foreach ($productWidgets as $i => $product)`
 - Sử dụng `$loop->index` https://laravel.com/docs/5.8/blade#the-loop-variable


this is the limit


Successfully deployed to following URLs:

* https://voisey-website-7mss0wja1.now.sh
* https://www.voisey.app
* https://voisey-website.voisey1.now.sh
* https://voisey-website-git-master.voisey1.now.sh


simple line with variable creation


Successfully deployed to following URLs:

* https://front-end-pp-2xvnz1gbf.now.sh
* https://front-end-pp.now.sh
* https://front-end-pp.plantpurpose.now.sh
* https://front-end-pp-git-master.plantpurpose.now.sh


Successfully deployed to following URLs:

* https://halloween-2019-8oof8rguy.now.sh
* https://halloween-2019.the-diamondback-lab.now.sh
* https://halloween-2019-git-master.the-diamondback-lab.now.sh


Deploy preview for _website_ ready!

Built with commit fc41271d7363ac36f38588a9739e95b8b4422f3c

https://shopware-pwa-h22379opd.now.sh


I mean #116


# Specs execution successful
:scroll: [View logs](http://bamboo.comnull)
### Plans updated

Bamboo specs have been successfully imported and the following plans have been updated.

Project | Plan | Build
---|---|---
[Test](http://bamboo.com/browse/TEST) | [Comment test](http://bamboo.com/browse/TEST-CTEST)  | :white_check_mark: [\#1](http://bamboo.com/browse/TEST-CTEST-1)
[New project](http://bamboo.com/browse/NEW) | [Disabled plan](http://bamboo.com/browse/NEW-DISABLED) **disabled** | :white_check_mark: [\#1](http://bamboo.com/browse/NEW-DISABLED-1)

### Deployments updated

Bamboo specs have been successfully imported and the following deployment projects have been updated.

|Deployment project |
----|
[Deployment test](http://bamboo.com/deploy/viewDeploymentProjectVersions.action?id=2162689)|


there is a typo with the mapping. I think it should be "/join/{pid}/{gc}"


Successfully deployed to following URLs:

* https://deeps-x-react-azo3cwmrd.now.sh
* https://deeps-x-react.now.sh
* https://deeps-x-react.linengca.now.sh
* https://deeps-x-react-git-master.linengca.now.sh


Very robust solution.


Foram adicionados até agora dois inputs de dados


PGXP apparently requires float type for XY and needs a Z component?


not that it would matter that much since I plan on using stencil only, but it's better to keep the code clean


Successfully deployed to following URLs:

* https://github-vuer-gnct7r28s.now.sh
* https://vuer.now.sh
* https://github-vuer.cadekynaston.now.sh
* https://github-vuer-git-master.cadekynaston.now.sh


I'm not sure != is correct here, I think the 'String.equals' method should be used - or am I missing something?


Successfully deployed to following URLs:

* https://social-network-3dn8fbd7a.now.sh
* https://social-network.marchenkoulya26.now.sh
* https://social-network-git-master.marchenkoulya26.now.sh


Successfully deployed to following URLs:

* https://bulk-mail-ui-bb4avkd29.now.sh
* https://bulk-mail-ui.now.sh
* https://bulkmailui.now.sh
* https://bulk-mail-ui.adventmail.now.sh
* https://bulk-mail-ui-git-master.adventmail.now.sh


You should also use `router-link` in your html instead of your div with `v-on:click=redirect`.
https://router.vuejs.org/api/#router-link


Deployment failed with the following error:

~~~
Your `package.json` file is missing a `build` property inside the `scripts` property.
~~~


Thank you for this. It would be impossible to update those files in the future.


set it to: /data/docker/volumes/teamspeak/ts3server.sqlitedb


Successfully deployed to following URLs:

* https://trezycom-i5i1hb6u4.now.sh
* https://trezy.com
* https://trezy.dev
* https://trezycom.trezy.now.sh
* https://trezycom-git-master.trezy.now.sh


:point_right: click here to view a full list of the events :point_left:


I just updated Gadfly, Cairo etc and I get the following error which I wonder if it might be a result of this recent change?
```
WARNING: Cairo._jl_libpangocairo is deprecated, use Cairo.libpango instead.
  likely near C:\Users\nritchie\.julia\packages\Compose\aVZwV\src\pango.jl:3
WARNING: Cairo._jl_libpango is deprecated, use Cairo.libpango instead.
  likely near C:\Users\nritchie\.julia\packages\Compose\aVZwV\src\pango.jl:4
WARNING: Cairo._jl_libgobject is deprecated, use Cairo.libgobject instead.
  likely near C:\Users\nritchie\.julia\packages\Compose\aVZwV\src\pango.jl:5
┌ Warning: Error requiring Fontconfig from Compose:
│ ccall: could not find function pango_cairo_font_map_new in library libpango-1.0-0.dll
│ Stacktrace:
│  [1] link_fontconfig() at C:\Users\nritchie\.julia\packages\Compose\aVZwV\src\Compose.jl:162
│  [2] top-level scope at C:\Users\nritchie\.julia\packages\Compose\aVZwV\src\Compose.jl:179
│  [3] eval at .\boot.jl:330 [inlined]
│  [4] eval at C:\Users\nritchie\.julia\packages\Compose\aVZwV\src\Compose.jl:1 [inlined]
│  [5] (::Compose.var"#118#124")() at C:\Users\nritchie\.julia\packages\Requires\9Jse8\src\require.jl:67
│  [6] err(::Compose.var"#118#124", ::Module, ::String) at C:\Users\nritchie\.julia\packages\Requires\9Jse8\src\require.jl:38
│  [7] #117 at C:\Users\nritchie\.julia\packages\Requires\9Jse8\src\require.jl:66 [inlined]
│  [8] withpath(::Compose.var"#117#123", ::String) at C:\Users\nritchie\.julia\packages\Requires\9Jse8\src\require.jl:28
│  [9] (::Compose.var"#116#122")() at C:\Users\nritchie\.julia\packages\Requires\9Jse8\src\require.jl:65
│  [10] #invokelatest#1 at .\essentials.jl:709 [inlined]
│  [11] invokelatest at .\essentials.jl:708 [inlined]
│  [12] #3 at C:\Users\nritchie\.julia\packages\Requires\9Jse8\src\require.jl:19 [inlined]
│  [13] iterate at .\generator.jl:47 [inlined]
│  [14] _collect(::Array{Function,1}, ::Base.Generator{Array{Function,1},Requires.var"#3#4"}, ::Base.EltypeUnknown, ::Base.HasShape{1}) at .\array.jl:635
│  [15] map at .\array.jl:564 [inlined]
│  [16] loadpkg(::Base.PkgId) at C:\Users\nritchie\.julia\packages\Requires\9Jse8\src\require.jl:19
│  [17] #invokelatest#1 at .\essentials.jl:709 [inlined]
│  [18] invokelatest at .\essentials.jl:708 [inlined]
│  [19] require(::Base.PkgId) at .\loading.jl:925
│  [20] require(::Module, ::Symbol) at .\loading.jl:917
│  [21] top-level scope at In[1]:3
│  [22] eval at .\boot.jl:330 [inlined]
│  [23] softscope_include_string(::Module, ::String, ::String) at C:\Users\nritchie\.julia\packages\SoftGlobalScope\cSbw5\src\SoftGlobalScope.jl:218
│  [24] execute_request(::ZMQ.Socket, ::IJulia.Msg) at C:\Users\nritchie\.julia\packages\IJulia\F1GUo\src\execute_request.jl:67
│  [25] #invokelatest#1 at .\essentials.jl:709 [inlined]
│  [26] invokelatest at .\essentials.jl:708 [inlined]
│  [27] eventloop(::ZMQ.Socket) at C:\Users\nritchie\.julia\packages\IJulia\F1GUo\src\eventloop.jl:8
│  [28] (::IJulia.var"#15#18")() at .\task.jl:333
└ @ Requires C:\Users\nritchie\.julia\packages\Requires\9Jse8\src\require.jl:40
```

My Project.toml file looks like this.
```
  [1520ce14] AbstractTrees v0.2.1
  [c52e3926] Atom v0.11.3
  [6e4b80f9] BenchmarkTools v0.4.3
  [336ed68f] CSV v0.5.21
  [159f3aea] Cairo v1.0.2
  [324d7699] CategoricalArrays v0.7.5
  [5ae59095] Colors v0.11.1
  [34da2185] Compat v2.2.0
  [3a865a2d] CuArrays v1.6.0
  [9a962f9c] DataAPI v1.1.0
  [a93c6f00] DataFrames v0.20.0
  [1313f7d8] DataFramesMeta v0.5.0
  [31c24e10] Distributions v0.21.9
  [e30172f5] Documenter v0.24.3
  [7a1cc6ca] FFTW v1.2.0
  [5789e2e9] FileIO v1.2.1
  [186bb1d3] Fontconfig v0.3.0
  [38e38edf] GLM v1.3.5
  [c91e804a] Gadfly v1.0.1
  [708ec375] Gumbo v0.5.1
  [cd3eb016] HTTP v0.8.8
  [7073ff75] IJulia v1.20.2
  [6218d12a] ImageMagick v1.1.1
  [916415d5] Images v0.19.3
  [5903a43b] Infiltrator v0.2.0
  [43edad99] InstantiateFromURL v0.3.3
  [a98d9a8b] Interpolations v0.12.5
  [682c06a0] JSON v0.21.0
  [e5e0dc1b] Juno v0.7.2
  [e1d29d7a] Missings v0.4.3
  [5ad8b20f] PhysicalConstants v0.2.0
  [f27b6e38] Polynomials v0.6.0
  [295af30f] Revise v2.5.0
  [90137ffa] StaticArrays v0.12.1
  [2913bbd2] StatsBase v0.32.0
  [a759f4b9] TimerOutputs v0.5.3
  [028f657a] TotalLeastSquares v1.0.0
  [1986cc42] Unitful v0.18.0
  [37e2e46d] LinearAlgebra
  [de0858da] Printf
  [2f01184e] SparseArrays
  [10745b16] Statistics
```


Deployment failed with the following error:

~~~
ENOENT: no such file or directory, stat '/tmp/Ams40dsgnVqf0HAXQJXd4ZPN/repo/api/renderer.js'
~~~


@ZPistovcakova zatial mas **4**
mozes si to ale opravit ten mesiac + nezabudni aj na animaciu lodiek


Message:
 ```7aa6cd97afc2e0bf02f7f67cc525c3c7502bf7596a9a797425f59ae06971b1c4```
 Genesis Address:
 ```19Wt6q5eK3scFcvVTUMkG3gwaCaDughBig```
 Signature:
 ```IIV4fMflbuFaE6/aRmd4er/aXgvCYGFtaZPTQfus6R4ZNAeBha8jmfJabhI5aHYF3dWUwj757pxY6IH1+Sc0en4=```


[![Visit Site](https://raw.githubusercontent.com/pantheon-systems/terminus-build-tools-plugin/master/assets/images/visit-site-36.png)](https://ci-760-cgsiweb.pantheonsite.io/)

Created multidev environment [ci-760](https://dashboard.pantheon.io/sites/806fd996-4d92-45f6-a74e-dc88955a747a#ci-760) for cgsiweb.


Deployment failed with the following error:

~~~
ENOENT: no such file or directory, stat '/tmp/947FzWvRDJKiVCUN1YFGcVzS/repo/api/renderer.js'
~~~


Successfully deployed to following URLs:

* https://design-system-9gtsbb8pe.now.sh
* https://components.undataforum.org
* https://design-system.undataforum.now.sh
* https://design-system-git-master.undataforum.now.sh


[![Visit Site](https://raw.githubusercontent.com/pantheon-systems/terminus-build-tools-plugin/master/assets/images/visit-site-36.png)](https://pr-52-jccweb.pantheonsite.io/)

Created multidev environment [pr-52](https://dashboard.pantheon.io/sites/7c1e5c1e-406f-4fee-97c2-f6886d8aba9b#pr-52) for jccweb.


TeamCity Bvcms / Build [Build 3311](https://builds.tpsdb.com/viewLog.html?buildId=11066&buildTypeId=Bvcms_Build) outcome was **FAILURE**
Summary: Tests failed: 1 (1 new), passed: 209 Build time: 00:25:42
### Failed tests
```
Webapp collection (1): IntegrationTests.Areas.Search.Views.Query.EditConditionTests.FundIds_Should_Appear_In_TopGiver_Search_Condition: OpenQA.Selenium.WebDriverTimeoutException : Timed out after 5 seconds
   at OpenQA.Selenium.Support.UI.DefaultWait`1.ThrowTimeoutException(String exceptionMessage, Exception lastException)
   at OpenQA.Selenium.Support.UI.DefaultWait`1.Until[TResult](Func`2 condition)
   at IntegrationTests.Support.FeatureTestBase.WaitForElement(String css, Int32 maxWaitTimeInSeconds, Boolean visible) in C:\TeamCity\buildAgent\work\de2c4e6ef697cb99\IntegrationTests\Support\FeatureTestBase.cs:line 573
   at IntegrationTests.Areas.Search.Views.Query.EditConditionTests.FundIds_Should_Appear_In_TopGiver_Search_Condition() in C:\TeamCity\buildAgent\work\de2c4e6ef697cb99\IntegrationTests\Areas\Search\Views\Query\EditConditionTests.cs:line 27

```


category값이 바뀔 때마다 뉴스를 새로 불러와야 하므로 useEffect의 두번째 파라미터에 category를 넣는다.

클래스형 컴포넌트의 `componentDidMount`, `componentDidUpdate`에 요청을 하도록 설정해줬던 것을 함수형 컴포넌트를 사용함으로써
- 컴포넌트가 렌더링될 때
- category값이 바뀔 때

GET을 실행할 수 있다.


Updated the following files: data_cleanup.py, user_topic.py, and visualization_result.py, data_analysis.
In data_cleanup was included some code lines that allow removing short words >2
In data_analysis was added code lines to filter polarity score
In user_topic was imported the package LatentDirichletAllocation and CountVectorizer
In visuzalization_result was added the review_polarity_level method


penumbra-integration (mbadams5) - Win64-Windows-10-VisualStudio-16: OK (2598 of 2598 tests passed, 670 test warnings)

Messages:\n
 * 670 tests had: EIO diffs.

![Build Badge](http://img.shields.io/badge/build%20status-passing-green.png) ![Test Badge](http://img.shields.io/badge/tests%20passed-100.0%25-green.png)


Successfully deployed to following URLs:

* https://typescript-fun-6k2o8qvd4.now.sh
* https://typescript-fun.now.sh
* https://typescript.fun
* https://typescript-fun.typescript-fun.now.sh
* https://typescript-fun-git-master.typescript-fun.now.sh


Deployment failed with the following error:

~~~
Cannot mix legacy routes with new keys:
~~~


Deployment failed with the following error:

~~~
Your `package.json` file is missing a `build` property inside the `scripts` property.
~~~


Yep. Luckily that is 0.0001% of systems. Hopefully a better fix is forthcoming. I'm working on it.


OK, patch reverted.


:point_right: click here to view a full list of the events :point_left:


Successfully deployed to following URLs:

* https://recommendo-8qlb00w6k.now.sh
* https://recommendo.now.sh
* https://recommendo.pashatay.now.sh
* https://recommendo-git-master.pashatay.now.sh


Successfully deployed to following URLs:

* https://recommendo-9goy5ikhz.now.sh
* https://recommendo.now.sh
* https://recommendo.pashatay.now.sh
* https://recommendo-git-master.pashatay.now.sh


Something went wrong when running [your job](https://github.com/JuliaLang/julia/commit/18783434e9c0e48152b99d5e3717deb8711f492b#commitcomment-36659046):
```
NanosoldierError: error when preparing/pushing to report repo: MethodError: no method matching uppercasefirst(::Symbol)
Closest candidates are:
  uppercasefirst(!Matched::CategoricalArrays.CategoricalString) at deprecated.jl:65
  uppercasefirst(!Matched::AbstractString) at strings/unicode.jl:589
```
Unfortunately, the logs could not be uploaded.
cc @maleadt


looks good


sout(values [0] + " "+ values[1] + " " + values[2] + " " + values[3] + " " +  values[4]);


Successfully deployed to following URLs:

* https://code2go-54glnwdbt.now.sh
* https://*.code2go.dev
* https://code2go.dev
* https://code2go.medienwerk.now.sh
* https://code2go-git-master.medienwerk.now.sh


Successfully deployed to following URLs:

* https://mind-components-ird4x3w1m.now.sh
* https://mindcomponents.com
* https://mind-components.jcquintas.now.sh
* https://mind-components-git-master.jcquintas.now.sh


Successfully deployed to following URLs:

* https://pamahah-23spjq66o.now.sh
* https://pamahah.now.sh
* https://pamahah.josenriagu.now.sh
* https://pamahah-git-master.josenriagu.now.sh


Successfully deployed to following URLs:

* https://componentry-dot-design-74u4se0ka.now.sh
* https://componentry.design
* https://componentry-dot-design.crystal-ball.now.sh
* https://componentry-dot-design-git-master.crystal-ball.now.sh


Ok. Thanks. Will change.


# Specs execution successful
:scroll: [View logs](http://bamboo.comnull)
### Plans updated

Bamboo specs have been successfully imported and the following plans have been updated.

Project | Plan | Build
---|---|---
[Test](http://bamboo.com/browse/TEST) | [Comment test](http://bamboo.com/browse/TEST-CTEST)  | :white_check_mark: [\#1](http://bamboo.com/browse/TEST-CTEST-1)
[New project](http://bamboo.com/browse/NEW) | [Disabled plan](http://bamboo.com/browse/NEW-DISABLED) **disabled** | :white_check_mark: [\#1](http://bamboo.com/browse/NEW-DISABLED-1)

### Deployments updated

Bamboo specs have been successfully imported and the following deployment projects have been updated.

|Deployment project |
----|
[Deployment test](http://bamboo.com/deploy/viewDeploymentProjectVersions.action?id=2162689)|


No caso input de CPF, foi adicionado uma máscara para que quando o usuário digite a numeração  do documento o mesmo não possa digitar letras apenas números, que a pontuação apareça automaticamente, e que também o usuário não possa digitar mais que 11 dígitos, ambos os validadores estão em './components/utils.js'


How shall this work with multiple threads? @medvednikov?


Successfully deployed to following URLs:

* https://code2go-p72enr85o.now.sh
* https://*.code2go.dev
* https://code2go.dev
* https://code2go.medienwerk.now.sh
* https://code2go-git-master.medienwerk.now.sh


I plan to use it for indexed colors, blending, discard etc. probably I'll split it to some variations.


Successfully deployed to following URLs:

* https://multi-condition-filter-13qeme4cj.now.sh
* https://multi-condition-filter.now.sh
* https://multi-condition-filter.l42.now.sh
* https://multi-condition-filter-git-master.l42.now.sh


I didn't tested it yet on GLES, but should work :)


@TerezaVranova
za kresli ciaru zatial **1-**, mozes si to opravit, nech sa kresli od stlacenia po pustenie, + ciara z 0, 0 tam nema byt

+ treba doplnit aj skicar s vyberom farby, hrubky,....


Revised Create qdrbtcpsjbdcsc-solidity-smart-contract
https://github.com/microftech65/verify-on-etherscan/compare/master...microftech65-patch-1


Deployment failed with the following error:

~~~
You defined 1 build that did not match any source files (please ensure they are NOT defined in .nowignore):
~~~


the `StationType` property already existed in this sample. No need to add a second time. 😉


Successfully deployed to following URLs:

* https://centrobr42-vk-mini-apps-b8ryxbyh6.now.sh
* https://centrobr42-vk-mini-apps.now.sh
* https://centrobr42-vk-mini-apps.alexgorn00.now.sh
* https://centrobr42-vk-mini-apps-git-master.alexgorn00.now.sh


Message:
 ```7aa6cd97afc2e0bf02f7f67cc525c3c7502bf7596a9a797425f59ae06971b1c4```
 Genesis Address:
 ```19Wt6q5eK3scFcvVTUMkG3gwaCaDughBig```
 Signature:
 ```IICT1McN6bcjJUO/gqJ5rWeN/WXXUN8TEm/q8qfsQoKvJJKuaqZpeWWMkkfuv4BIkvgvO7oZ1eenjs0K/oaFZr0=```


Successfully deployed to following URLs:

* https://ripe-components-vue-68emvtvz5.now.sh
* https://ripe-components-vue.platforme.now.sh
* https://ripe-components-vue-git-master.platforme.now.sh


Successfully deployed to following URLs:

* https://bworks-jdcxmlktlk.now.sh
* https://www.b-works.io


this is good but setting the styles from JS is not performant and it's better let CSS to handle these things by its own.


양식 예시

![CoC_Rule](https://user-images.githubusercontent.com/52265130/71728370-3fd77d80-2e80-11ea-8ee7-b4e04ed78c26.png)


Fibonacci series by using function (till nth)


Successfully deployed to following URLs:

* https://hexo-ius5l4se6.now.sh
* https://hexo.applewish9.now.sh
* https://hexo-git-master.applewish9.now.sh


Successfully deployed to following URLs:

* https://pmfe-qfc2bvof4.now.sh
* https://pmfe.now.sh
* https://pmfe.hajindvlp.now.sh
* https://pmfe-git-master.hajindvlp.now.sh


Yes, of course you are right, it was left from some testing.
Thanks for noticing...


Successfully deployed to following URLs:

* https://code2go-6uqnbazu8.now.sh
* https://*.code2go.dev
* https://code2go.dev
* https://code2go.medienwerk.now.sh
* https://code2go-git-master.medienwerk.now.sh


Successfully deployed to following URLs:

* https://centrobr42-vk-mini-apps-cnj517rbt.now.sh
* https://centrobr42-vk-mini-apps.now.sh
* https://centrobr42-vk-mini-apps.alexgorn00.now.sh
* https://centrobr42-vk-mini-apps-git-master.alexgorn00.now.sh


Successfully deployed to following URLs:

* https://spaced-rep-evan-reif-lo7yygv07.now.sh
* https://spaced-rep-evan-reif.now.sh
* https://spaced-rep-evan-reif.reif.now.sh
* https://spaced-rep-evan-reif-git-master.reif.now.sh


Попенко В.Д., доц.каф.АСОІУ НТУУ "КПІ", дисципліна "Проектування інформаційних систем"


Hi! This is the friendly automated conda-forge-webservice.

I updated the Github team because of this commit.

- @vijayvarma392 was added to conda-forge. Welcome to conda-forge!
  Go to https://github.com/orgs/conda-forge/invitation see your invitation.

You should get push access to this feedstock and CI services.

Feel free to join the community [chat room](https://gitter.im/conda-forge/conda-forge.github.io).

NOTE: Please make sure to not push to the repository directly.
      Use branches in your fork for any changes and send a PR.
      More details [here](https://conda-forge.org/docs/maintainer/updating_pkgs.html#forking-and-pull-requests)


Successfully deployed to following URLs:

* https://kauri-serverless-migration-d7f0dbwdy.now.sh
* https://kauri-serverless-migration-omega-ten.now.sh
* https://dev.kauri.io
* https://kauri-serverless-migration.kauri.now.sh
* https://kauri-serverless-migration-git-development.kauri.now.sh


That logic can be pushed into (and combined with, since there are some duplicate checks) PutIfAbsentDecisionMaker.


# Stats from current release

Default Server Mode (Increase detected ⚠)

General Overall increase ⚠

|  | zeit/next.js canary v9.1.6 | zeit/next.js refs/tags/v9.1.7-canary.16 | Change |
| - | - | - | - |
| buildDuration | 13.5s | 13.3s | -174ms |
| nodeModulesSize | 48.6 MB | 48.9 MB | ⚠ +295 kB |

Client Bundles (main, webpack, commons) Overall decrease ✓

|  | zeit/next.js canary v9.1.6 | zeit/next.js refs/tags/v9.1.7-canary.16 | Change |
| - | - | - | - |
| main-HASH.js gzip | 6.49 kB | 6.44 kB | -51 B |
| webpack-HASH.js gzip | 746 B | 746 B | ✓ |
| 4952ddcd88e7..54d3.js gzip | 4.68 kB | 4.68 kB | ✓ |
| commons.HASH.js gzip | 4.06 kB | 4.06 kB | ✓ |
| de003c3a9d30..2235.js gzip | 13.9 kB | 13.8 kB | -25 B |
| framework.HASH.js gzip | 39.5 kB | 39.5 kB | ✓ |
| Overall change | 69.3 kB | 69.2 kB | -76 B |

Client Bundles (main, webpack, commons) Modern Overall increase ⚠

|  | zeit/next.js canary v9.1.6 | zeit/next.js refs/tags/v9.1.7-canary.16 | Change |
| - | - | - | - |
| main-HASH.module.js gzip | 5.41 kB | 5.42 kB | ⚠ +8 B |
| webpack-HASH..dule.js gzip | 746 B | 746 B | ✓ |
| 4952ddcd88e7..dule.js gzip | 5.56 kB | 5.56 kB | ✓ |
| de003c3a9d30..dule.js gzip | 12.5 kB | 12.6 kB | ⚠ +35 B |
| framework.HA..dule.js gzip | 39.4 kB | 39.4 kB | ✓ |
| Overall change | 63.7 kB | 63.7 kB | ⚠ +43 B |

Legacy Client Bundles (polyfills)

|  | zeit/next.js canary v9.1.6 | zeit/next.js refs/tags/v9.1.7-canary.16 | Change |
| - | - | - | - |
| polyfills-HASH.js gzip | 4.76 kB | 4.76 kB | ✓ |
| Overall change | 4.76 kB | 4.76 kB | ✓ |

Client Pages Overall increase ⚠

|  | zeit/next.js canary v9.1.6 | zeit/next.js refs/tags/v9.1.7-canary.16 | Change |
| - | - | - | - |
| _app.js gzip | 1.33 kB | 1.33 kB | ✓ |
| _error.js gzip | 4.07 kB | 4.07 kB | ✓ |
| hooks.js gzip | 779 B | 779 B | ✓ |
| index.js gzip | 222 B | 222 B | ✓ |
| link.js gzip | 2.89 kB | 2.93 kB | ⚠ +37 B |
| routerDirect.js gzip | 283 B | 283 B | ✓ |
| withRouter.js gzip | 282 B | 282 B | ✓ |
| Overall change | 9.86 kB | 9.89 kB | ⚠ +37 B |

Client Pages Modern Overall increase ⚠

|  | zeit/next.js canary v9.1.6 | zeit/next.js refs/tags/v9.1.7-canary.16 | Change |
| - | - | - | - |
| _app.module.js gzip | 757 B | 757 B | ✓ |
| _error.module.js gzip | 3.06 kB | 3.06 kB | ✓ |
| hooks.module.js gzip | 371 B | 371 B | ✓ |
| index.module.js gzip | 212 B | 212 B | ✓ |
| link.module.js gzip | 2.46 kB | 2.49 kB | ⚠ +35 B |
| routerDirect..dule.js gzip | 273 B | 273 B | ✓ |
| withRouter.m..dule.js gzip | 272 B | 272 B | ✓ |
| Overall change | 7.4 kB | 7.43 kB | ⚠ +35 B |

Client Build Manifests

|  | zeit/next.js canary v9.1.6 | zeit/next.js refs/tags/v9.1.7-canary.16 | Change |
| - | - | - | - |
| _buildManifest.js gzip | 61 B | 61 B | ✓ |
| _buildManife..dule.js gzip | 61 B | 61 B | ✓ |
| Overall change | 122 B | 122 B | ✓ |

Rendered Page Sizes Overall decrease ✓

|  | zeit/next.js canary v9.1.6 | zeit/next.js refs/tags/v9.1.7-canary.16 | Change |
| - | - | - | - |
| index.html gzip | 1.04 kB | 1.04 kB | -2 B |
| link.html gzip | 1.05 kB | 1.05 kB | ✓ |
| withRouter.html gzip | 1.03 kB | 1.03 kB | -1 B |
| Overall change | 3.12 kB | 3.12 kB | -3 B |

#### Diffs

Diff for link.js

```diff
@@ -639,19 +639,41 @@
                 this.cleanUpListeners()
               },
             },
+            {
+              key: 'getHref',
+              value: function getHref() {
+                var pathname = window.location.pathname
+
+                var _this$formatUrls2 = this.formatUrls(
+                    this.props.href,
+                    this.props.as
+                  ),
+                  parsedHref = _this$formatUrls2.href
+
+                return (0, _url.resolve)(pathname, parsedHref)
+              },
+            },
             {
               key: 'handleRef',
               value: function handleRef(ref) {
                 var _this2 = this

+                var isPrefetched =
+                  _router['default'].router.pageLoader.prefetched[
+                    this.getHref()
+                  ]
+
                 if (this.p && IntersectionObserver && ref && ref.tagName) {
                   this.cleanUpListeners()
-                  this.cleanUpListeners = listenToIntersections(
-                    ref,
-                    function() {
-                      _this2.prefetch()
-                    }
-                  )
+
+                  if (!isPrefetched) {
+                    this.cleanUpListeners = listenToIntersections(
+                      ref,
+                      function() {
+                        _this2.prefetch()
+                      }
+                    )
+                  }
                 }
               }, // The function is memoized so that no extra lifecycles are needed
               // as per https://reactjs.org/blog/2018/06/07/you-probably-dont-need-derived-state.html
@@ -661,17 +683,7 @@
               value: function prefetch() {
                 if (!this.p || false) return // Prefetch the JSON page if asked (only in the client)

-                var pathname = window.location.pathname
-
-                var _this$formatUrls2 = this.formatUrls(
-                    this.props.href,
-                    this.props.as
-                  ),
-                  parsedHref = _this$formatUrls2.href
-
-                var href = (0, _url.resolve)(pathname, parsedHref)
-
-                _router['default'].prefetch(href)
+                _router['default'].prefetch(this.getHref())
               },
             },
             {
```

Diff for link.module.js

```diff
@@ -490,12 +490,27 @@
           this.cleanUpListeners()
         }

+        getHref() {
+          var { pathname } = window.location
+          var { href: parsedHref } = this.formatUrls(
+            this.props.href,
+            this.props.as
+          )
+          return (0, _url.resolve)(pathname, parsedHref)
+        }
+
         handleRef(ref) {
+          var isPrefetched =
+            _router.default.router.pageLoader.prefetched[this.getHref()]
+
           if (this.p && IntersectionObserver && ref && ref.tagName) {
             this.cleanUpListeners()
-            this.cleanUpListeners = listenToIntersections(ref, () => {
-              this.prefetch()
-            })
+
+            if (!isPrefetched) {
+              this.cleanUpListeners = listenToIntersections(ref, () => {
+                this.prefetch()
+              })
+            }
           }
         } // The function is memoized so that no extra lifecycles are needed
         // as per https://reactjs.org/blog/2018/06/07/you-probably-dont-need-derived-state.html
@@ -503,14 +518,7 @@
         prefetch() {
           if (!this.p || false) return // Prefetch the JSON page if asked (only in the client)

-          var { pathname } = window.location
-          var { href: parsedHref } = this.formatUrls(
-            this.props.href,
-            this.props.as
-          )
-          var href = (0, _url.resolve)(pathname, parsedHref)
-
-          _router.default.prefetch(href)
+          _router.default.prefetch(this.getHref())
         }

         render() {
```

Diff for de003c3a9d30..b0e06633d.js

```diff
@@ -1445,10 +1445,10 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI

       var _slicedToArray = __webpack_require__('8+Nu')

-      var _Promise = __webpack_require__('eVuF')
-
       var _Object$assign = __webpack_require__('Qetd')

+      var _Promise = __webpack_require__('eVuF')
+
       var _classCallCheck = __webpack_require__('/HRN')

       var _createClass = __webpack_require__('WaGi')
@@ -1483,6 +1483,12 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI

       var route_regex_1 = __webpack_require__('YTqd')

+      function addBasePath(path) {
+        // @ts-ignore variable is always a string
+        var p = ''
+        return path.indexOf(p) !== 0 ? p + path : path
+      }
+
       function toRoute(path) {
         return path.replace(/\/$/, '') || '/'
       }
@@ -1503,6 +1509,9 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI

             _classCallCheck(this, Router)

+            // Static Data Cache
+            this.sdc = {}
+
             this.onPopState = function(e) {
               if (!e.state) {
                 // We get state as undefined for two reasons.
@@ -1553,6 +1562,34 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
               }

               _this.replace(url, as, options)
+            }
+
+            this._getStaticData = function(asPath, _cachedData) {
+              var pathname = url_1.parse(asPath).pathname
+              pathname = !pathname || pathname === '/' ? '/index' : pathname
+              return true && (_cachedData = _this.sdc[pathname])
+                ? _Promise.resolve(_cachedData)
+                : fetch(
+                    // @ts-ignore __NEXT_DATA__
+                    '/_next/data/'
+                      .concat(__NEXT_DATA__.buildId)
+                      .concat(pathname, '.json')
+                  )
+                    .then(function(res) {
+                      if (!res.ok) {
+                        throw new Error('Failed to load static props')
+                      }
+
+                      return res.json()
+                    })
+                    .then(function(data) {
+                      _this.sdc[pathname] = data
+                      return data
+                    })
+                    ['catch'](function(err) {
+                      err.code = 'PAGE_LOAD_ERROR'
+                      throw err
+                    })
             } // represents the current component key

             this.route = toRoute(pathname) // set up the component cache (by route keys)
@@ -1731,7 +1768,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                       _this2.asPath = as
                       Router.events.emit('hashChangeStart', as)

-                      _this2.changeState(method, url, as)
+                      _this2.changeState(method, url, addBasePath(as))

                       _this2.scrollToHash(as)

@@ -1807,7 +1844,12 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI

                         Router.events.emit('beforeHistoryChange', as)

-                        _this2.changeState(method, url, as, options)
+                        _this2.changeState(
+                          method,
+                          url,
+                          addBasePath(as),
+                          options
+                        )

                         var hash = window.location.hash.substring(1)

@@ -1895,20 +1937,24 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                         var _require, isValidElementType
                       }

-                      return new _Promise(function(resolve, reject) {
-                        // we provide AppTree later so this needs to be `any`
-                        _this3
-                          .getInitialProps(Component, {
-                            pathname: pathname,
-                            query: query,
-                            asPath: as,
-                          })
-                          .then(function(props) {
-                            routeInfo.props = props
-                            _this3.components[route] = routeInfo
-                            resolve(routeInfo)
-                          }, reject)
-                      })
+                      return _this3
+                        ._getData(function() {
+                          return Component.__NEXT_SPR
+                            ? _this3._getStaticData(as)
+                            : _this3.getInitialProps(
+                                Component, // we provide AppTree later so this needs to be `any`
+                                {
+                                  pathname: pathname,
+                                  query: query,
+                                  asPath: as,
+                                }
+                              )
+                        })
+                        .then(function(props) {
+                          routeInfo.props = props
+                          _this3.components[route] = routeInfo
+                          return routeInfo
+                        })
                     })
                     ['catch'](function(err) {
                       return new _Promise(function(resolve) {
@@ -2079,12 +2125,12 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                       }

                       return
-                    } // Prefetch is not supported in development mode because it would trigger on-demand-entries
-
-                    if (false) {
                     } // @ts-ignore pathname is always defined

-                    var route = toRoute(pathname)
+                    var route = toRoute(pathname) // Prefetch is not supported in development mode because it would trigger on-demand-entries
+
+                    if (false) {
+                    }

                     _this4.pageLoader.prefetch(route).then(resolve, reject)
                   })
@@ -2146,122 +2192,46 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                 },
               },
               {
-                key: 'getInitialProps',
-                value: function getInitialProps(Component, ctx) {
-                  var cancelled,
-                    cancel,
-                    App,
-                    props,
-                    status,
-                    _url_1$parse4,
-                    pathname,
-                    AppTree,
-                    err
-
-                  return _regeneratorRuntime.async(
-                    function getInitialProps$(_context2) {
-                      while (1) {
-                        switch ((_context2.prev = _context2.next)) {
-                          case 0:
-                            cancelled = false
-
-                            cancel = function cancel() {
-                              cancelled = true
-                            }
-
-                            this.clc = cancel
-                            App = this.components['/_app'].Component
+                key: '_getData',
+                value: function _getData(fn) {
+                  var _this5 = this

-                            if (!Component.__NEXT_SPR) {
-                              _context2.next = 12
-                              break
-                            }
-
-                            // pathname should have leading slash
-                            ;(_url_1$parse4 = url_1.parse(
-                              ctx.asPath || ctx.pathname
-                            )),
-                              (pathname = _url_1$parse4.pathname)
-                            pathname =
-                              !pathname || pathname === '/'
-                                ? '/index'
-                                : pathname
-                            _context2.next = 9
-                            return _regeneratorRuntime.awrap(
-                              fetch(
-                                // @ts-ignore __NEXT_DATA__
-                                '/_next/data/'
-                                  .concat(__NEXT_DATA__.buildId)
-                                  .concat(pathname, '.json')
-                              )
-                                .then(function(res) {
-                                  if (!res.ok) {
-                                    status = res.status
-                                    throw new Error(
-                                      'failed to load prerender data'
-                                    )
-                                  }
-
-                                  return res.json()
-                                })
-                                ['catch'](function(err) {
-                                  console.error(
-                                    'Failed to load data',
-                                    status,
-                                    err
-                                  )
-                                  window.location.href = pathname
-                                  return new _Promise(function() {})
-                                })
-                            )
+                  var cancelled = false

-                          case 9:
-                            props = _context2.sent
-                            _context2.next = 17
-                            break
-
-                          case 12:
-                            AppTree = this._wrapApp(App)
-                            ctx.AppTree = AppTree
-                            _context2.next = 16
-                            return _regeneratorRuntime.awrap(
-                              utils_1.loadGetInitialProps(App, {
-                                AppTree: AppTree,
-                                Component: Component,
-                                router: this,
-                                ctx: ctx,
-                              })
-                            )
-
-                          case 16:
-                            props = _context2.sent
+                  var cancel = function cancel() {
+                    cancelled = true
+                  }

-                          case 17:
-                            if (cancel === this.clc) {
-                              this.clc = null
-                            }
+                  this.clc = cancel
+                  return fn().then(function(data) {
+                    if (cancel === _this5.clc) {
+                      _this5.clc = null
+                    }

-                            if (!cancelled) {
-                              _context2.next = 22
-                              break
-                            }
+                    if (cancelled) {
+                      var err = new Error('Loading initial props cancelled')
+                      err.cancelled = true
+                      throw err
+                    }

-                            err = new Error('Loading initial props cancelled')
-                            err.cancelled = true
-                            throw err
+                    return data
+                  })
+                },
+              },
+              {
+                key: 'getInitialProps',
+                value: function getInitialProps(Component, ctx) {
+                  var App = this.components['/_app'].Component

-                          case 22:
-                            return _context2.abrupt('return', props)
+                  var AppTree = this._wrapApp(App)

-                          case 23:
-                          case 'end':
-                            return _context2.stop()
-                        }
-                      }
-                    },
-                    null,
-                    this
-                  )
+                  ctx.AppTree = AppTree
+                  return utils_1.loadGetInitialProps(App, {
+                    AppTree: AppTree,
+                    Component: Component,
+                    router: this,
+                    ctx: ctx,
+                  })
                 },
               },
               {
```

Diff for de003c3a9d30..0f.module.js

```diff
@@ -1785,10 +1785,10 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
     /***/ elyg: /***/ function(module, exports, __webpack_require__) {
       'use strict'

-      var _Promise = __webpack_require__('eVuF')
-
       var _Object$assign = __webpack_require__('Qetd')

+      var _Promise = __webpack_require__('eVuF')
+
       var _Object$defineProperty = __webpack_require__('hfKm')

       var __importDefault =
@@ -1819,6 +1819,12 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI

       var route_regex_1 = __webpack_require__('YTqd')

+      function addBasePath(path) {
+        // @ts-ignore variable is always a string
+        var p = ''
+        return path.indexOf(p) !== 0 ? p + path : path
+      }
+
       function toRoute(path) {
         return path.replace(/\/$/, '') || '/'
       }
@@ -1834,6 +1840,8 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
             err,
             subscription,
           } = _ref
+          // Static Data Cache
+          this.sdc = {}

           this.onPopState = e => {
             if (!e.state) {
@@ -1879,6 +1887,34 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
             }

             this.replace(url, as, options)
+          }
+
+          this._getStaticData = (asPath, _cachedData) => {
+            var pathname = url_1.parse(asPath).pathname
+            pathname = !pathname || pathname === '/' ? '/index' : pathname
+            return true && (_cachedData = this.sdc[pathname])
+              ? _Promise.resolve(_cachedData)
+              : fetch(
+                  // @ts-ignore __NEXT_DATA__
+                  '/_next/data/'
+                    .concat(__NEXT_DATA__.buildId)
+                    .concat(pathname, '.json')
+                )
+                  .then(res => {
+                    if (!res.ok) {
+                      throw new Error('Failed to load static props')
+                    }
+
+                    return res.json()
+                  })
+                  .then(data => {
+                    this.sdc[pathname] = data
+                    return data
+                  })
+                  .catch(err => {
+                    err.code = 'PAGE_LOAD_ERROR'
+                    throw err
+                  })
           } // represents the current component key

           this.route = toRoute(pathname) // set up the component cache (by route keys)
@@ -2039,7 +2075,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
             if (!options._h && this.onlyAHashChange(as)) {
               this.asPath = as
               Router.events.emit('hashChangeStart', as)
-              this.changeState(method, url, as)
+              this.changeState(method, url, addBasePath(as))
               this.scrollToHash(as)
               Router.events.emit('hashChangeComplete', as)
               return resolve(true)
@@ -2104,7 +2140,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                 }

                 Router.events.emit('beforeHistoryChange', as)
-                this.changeState(method, url, as, options)
+                this.changeState(method, url, addBasePath(as), options)
                 var hash = window.location.hash.substring(1)

                 if (false) {
@@ -2189,17 +2225,21 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                 var isValidElementType
               }

-              return new _Promise((resolve, reject) => {
-                // we provide AppTree later so this needs to be `any`
-                this.getInitialProps(Component, {
-                  pathname,
-                  query,
-                  asPath: as,
-                }).then(props => {
-                  routeInfo.props = props
-                  this.components[route] = routeInfo
-                  resolve(routeInfo)
-                }, reject)
+              return this._getData(() =>
+                Component.__NEXT_SPR
+                  ? this._getStaticData(as)
+                  : this.getInitialProps(
+                      Component, // we provide AppTree later so this needs to be `any`
+                      {
+                        pathname,
+                        query,
+                        asPath: as,
+                      }
+                    )
+              ).then(props => {
+                routeInfo.props = props
+                this.components[route] = routeInfo
+                return routeInfo
               })
             })
             .catch(err => {
@@ -2337,12 +2377,13 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
               }

               return
-            } // Prefetch is not supported in development mode because it would trigger on-demand-entries
+            } // @ts-ignore pathname is always defined
+
+            var route = toRoute(pathname) // Prefetch is not supported in development mode because it would trigger on-demand-entries

             if (false) {
-            } // @ts-ignore pathname is always defined
+            }

-            var route = toRoute(pathname)
             this.pageLoader.prefetch(route).then(resolve, reject)
           })
         }
@@ -2371,7 +2412,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
           return Component
         }

-        async getInitialProps(Component, ctx) {
+        _getData(fn) {
           var cancelled = false

           var cancel = () => {
@@ -2379,56 +2420,33 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
           }

           this.clc = cancel
-          var { Component: App } = this.components['/_app']
-          var props
-
-          if (Component.__NEXT_SPR) {
-            var status // pathname should have leading slash
-
-            var { pathname } = url_1.parse(ctx.asPath || ctx.pathname)
-            pathname = !pathname || pathname === '/' ? '/index' : pathname
-            props = await fetch(
-              // @ts-ignore __NEXT_DATA__
-              '/_next/data/'
-                .concat(__NEXT_DATA__.buildId)
-                .concat(pathname, '.json')
-            )
-              .then(res => {
-                if (!res.ok) {
-                  status = res.status
-                  throw new Error('failed to load prerender data')
-                }
+          return fn().then(data => {
+            if (cancel === this.clc) {
+              this.clc = null
+            }

-                return res.json()
-              })
-              .catch(err => {
-                console.error('Failed to load data', status, err)
-                window.location.href = pathname
-                return new _Promise(() => {})
-              })
-          } else {
-            var AppTree = this._wrapApp(App)
+            if (cancelled) {
+              var err = new Error('Loading initial props cancelled')
+              err.cancelled = true
+              throw err
+            }

-            ctx.AppTree = AppTree
-            props = await utils_1.loadGetInitialProps(App, {
-              AppTree,
-              Component,
-              router: this,
-              ctx,
-            })
-          }
+            return data
+          })
+        }

-          if (cancel === this.clc) {
-            this.clc = null
-          }
+        getInitialProps(Component, ctx) {
+          var { Component: App } = this.components['/_app']

-          if (cancelled) {
-            var err = new Error('Loading initial props cancelled')
-            err.cancelled = true
-            throw err
-          }
+          var AppTree = this._wrapApp(App)

-          return props
+          ctx.AppTree = AppTree
+          return utils_1.loadGetInitialProps(App, {
+            AppTree,
+            Component,
+            router: this,
+            ctx,
+          })
         }

         abortComponentLoad(as) {
```

Diff for main-HASH.js

```diff
@@ -479,7 +479,7 @@
         document.getElementById('__NEXT_DATA__').textContent
       )
       window.__NEXT_DATA__ = data
-      var version = '9.1.6'
+      var version = '9.1.7-canary.16'
       exports.version = version
       var props = data.props,
         err = data.err,
@@ -1601,35 +1601,33 @@
       var _promise = _interopRequireDefault(__webpack_require__('eVuF'))

       var _mitt = _interopRequireDefault(__webpack_require__('dZ6Y'))
-      /* global document, window */

-      var prefetchOrPreload = undefined ? 'prefetch' : 'preload'
-
-      function supportsPreload(el) {
+      function hasRel(rel, link) {
         try {
-          return el.relList.supports(prefetchOrPreload)
-        } catch (_unused) {
-          return false
-        }
-      }
-
-      var hasPreload = supportsPreload(document.createElement('link'))
-
-      function preloadLink(url, resourceType) {
-        var link = document.createElement('link')
-        link.rel = prefetchOrPreload
-        link.crossOrigin = 'anonymous'
-        link.href = url
-        link.as = resourceType
-        document.head.appendChild(link)
+          link = document.createElement('link')
+          return link.relList.supports(rel)
+        } catch (_unused) {}
       }

-      function loadStyle(url) {
-        var link = document.createElement('link')
-        link.rel = 'stylesheet'
-        link.crossOrigin = 'anonymous'
-        link.href = url
-        document.head.appendChild(link)
+      var relPrefetch =
+        hasRel('preload') && !hasRel('prefetch') // https://caniuse.com/#feat=link-rel-preload
+          ? // macOS and iOS (Safari does not support prefetch)
+            'preload' // https://caniuse.com/#feat=link-rel-prefetch
+          : // IE 11, Edge 12+, nearly all evergreen
+            'prefetch'
+      var hasNoModule = 'noModule' in document.createElement('script')
+
+      function appendLink(href, rel, as) {
+        return new _promise['default'](function(res, rej, link) {
+          link = document.createElement('link')
+          link.crossOrigin = 'anonymous'
+          link.href = href
+          link.rel = rel
+          if (as) link.as = as
+          link.onload = res
+          link.onerror = rej
+          document.head.appendChild(link)
+        })
       }

       var PageLoader =
@@ -1641,6 +1639,7 @@
             this.buildId = buildId
             this.assetPrefix = assetPrefix
             this.pageCache = {}
+            this.prefetched = {}
             this.pageRegisterEvents = (0, _mitt['default'])()
             this.loadingRoutes = {}

@@ -1749,6 +1748,8 @@
                   }

                   if (!_this3.loadingRoutes[route]) {
+                    _this3.loadingRoutes[route] = true
+
                     if (true) {
                       _this3.getDependencies(route).then(function(deps) {
                         deps.forEach(function(d) {
@@ -1765,13 +1766,14 @@
                               'link[rel=stylesheet][href^="' + d + '"]'
                             )
                           ) {
-                            loadStyle(d) // FIXME: handle failure
+                            appendLink(d, 'stylesheet')['catch'](function() {
+                              // FIXME: handle failure
+                              // Right now, this is needed to prevent an unhandled rejection.
+                            })
                           }
                         })

                         _this3.loadRoute(route)
-
-                        _this3.loadingRoutes[route] = true
                       })
                     } else {
                     }
@@ -1824,7 +1826,7 @@

                 var script = document.createElement('script')

-                if (true && 'noModule' in script) {
+                if (true && hasNoModule) {
                   script.type = 'module' // Only page bundle scripts need to have .module added to url,
                   // dependencies already have it added during build manifest creation

@@ -1887,41 +1889,54 @@
                 return (0, _asyncToGenerator2['default'])(
                   /*#__PURE__*/
                   _regeneratorRuntime.mark(function _callee2() {
-                    var scriptRoute, url, cn
+                    var cn, url, scriptRoute
                     return _regeneratorRuntime.wrap(function _callee2$(
                       _context2
                     ) {
                       while (1) {
                         switch ((_context2.prev = _context2.next)) {
                           case 0:
-                            route = _this2.normalizeRoute(route)
-                            scriptRoute =
-                              (route === '/' ? '/index' : route) + '.js'
+                            if (!(cn = navigator.connection)) {
+                              _context2.next = 3
+                              break
+                            }

-                            if (
-                              true &&
-                              'noModule' in document.createElement('script')
-                            ) {
-                              scriptRoute = scriptRoute.replace(
-                                /\.js$/,
-                                '.module.js'
-                              )
+                            if (!(cn.saveData || /2g/.test(cn.effectiveType))) {
+                              _context2.next = 3
+                              break
                             }

-                            url =
-                              _this2.assetPrefix +
-                              (isDependency
-                                ? route
-                                : '/_next/static/' +
-                                  encodeURIComponent(_this2.buildId) +
-                                  '/pages' +
-                                  encodeURI(scriptRoute)) // n.b. If preload is not supported, we fall back to `loadPage` which has
-                            // its own deduping mechanism.
+                            return _context2.abrupt('return')
+
+                          case 3:
+                            url = _this2.assetPrefix
+
+                            if (isDependency) {
+                              url += route
+                            } else {
+                              route = _this2.normalizeRoute(route)
+                              _this2.prefetched[route] = true
+                              scriptRoute =
+                                (route === '/' ? '/index' : route) + '.js'
+
+                              if (true && hasNoModule) {
+                                scriptRoute = scriptRoute.replace(
+                                  /\.js$/,
+                                  '.module.js'
+                                )
+                              }
+
+                              url +=
+                                '/_next/static/' +
+                                encodeURIComponent(_this2.buildId) +
+                                '/pages' +
+                                encodeURI(scriptRoute)
+                            }

                             if (
                               !document.querySelector(
                                 'link[rel="' +
-                                  prefetchOrPreload +
+                                  relPrefetch +
                                   '"][href^="' +
                                   url +
                                   '"], script[data-next-page="' +
@@ -1929,95 +1944,42 @@
                                   '"]'
                               )
                             ) {
-                              _context2.next = 6
+                              _context2.next = 7
                               break
                             }

                             return _context2.abrupt('return')

-                          case 6:
-                            if (!(cn = navigator.connection)) {
-                              _context2.next = 9
-                              break
-                            }
-
-                            if (
-                              !(
-                                (cn.effectiveType || '').indexOf('2g') !== -1 ||
-                                cn.saveData
-                              )
-                            ) {
-                              _context2.next = 9
-                              break
-                            }
-
-                            return _context2.abrupt('return')
-
-                          case 9:
-                            if (!(true && !isDependency)) {
-                              _context2.next = 15
-                              break
-                            }
-
-                            _context2.next = 13
-                            return _this2.getDependencies(route)
-
-                          case 13:
-                            _context2.t0 = function(url) {
-                              _this2.prefetch(url, true)
-                            }
-
-                            _context2.sent.forEach(_context2.t0)
-
-                          case 15:
-                            if (!hasPreload) {
-                              _context2.next = 18
-                              break
-                            }
-
-                            preloadLink(
-                              url,
-                              url.match(/\.css$/) ? 'style' : 'script'
-                            )
-                            return _context2.abrupt('return')
-
-                          case 18:
-                            if (!isDependency) {
-                              _context2.next = 20
-                              break
-                            }
-
-                            return _context2.abrupt('return')
-
-                          case 20:
-                            if (!(document.readyState === 'complete')) {
-                              _context2.next = 24
-                              break
-                            }
-
+                          case 7:
                             return _context2.abrupt(
                               'return',
-                              _this2.loadPage(route)['catch'](function() {})
-                            )
-
-                          case 24:
-                            return _context2.abrupt(
-                              'return',
-                              new _promise['default'](function(resolve) {
-                                window.addEventListener('load', function() {
-                                  _this2.loadPage(route).then(
-                                    function() {
-                                      return resolve()
-                                    },
-                                    function() {
-                                      return resolve()
-                                    }
-                                  )
-                                })
-                              })
+                              _promise['default']
+                                .all([
+                                  appendLink(
+                                    url,
+                                    relPrefetch,
+                                    url.match(/\.css$/) ? 'style' : 'script'
+                                  ),
+                                  true &&
+                                    !isDependency &&
+                                    _this2
+                                      .getDependencies(route)
+                                      .then(function(urls) {
+                                        return _promise['default'].all(
+                                          urls.map(function(url) {
+                                            return _this2.prefetch(url, true)
+                                          })
+                                        )
+                                      }),
+                                ])
+                                .then(
+                                  // do not return any data
+                                  function() {}, // swallow prefetch errors
+                                  function() {}
+                                )
                             )

-                          case 25:
+                          case 8:
                           case 'end':
                             return _context2.stop()
                         }
```

Diff for main-HASH.module.js

```diff
@@ -361,7 +361,7 @@
         document.getElementById('__NEXT_DATA__').textContent
       )
       window.__NEXT_DATA__ = data
-      var version = '9.1.6'
+      var version = '9.1.7-canary.16'
       exports.version = version
       var {
         props,
@@ -1172,35 +1172,33 @@
       var _promise = _interopRequireDefault(__webpack_require__('eVuF'))

       var _mitt = _interopRequireDefault(__webpack_require__('dZ6Y'))
-      /* global document, window */

-      var prefetchOrPreload = undefined ? 'prefetch' : 'preload'
-
-      function supportsPreload(el) {
+      function hasRel(rel, link) {
         try {
-          return el.relList.supports(prefetchOrPreload)
-        } catch (_unused) {
-          return false
-        }
-      }
-
-      var hasPreload = supportsPreload(document.createElement('link'))
-
-      function preloadLink(url, resourceType) {
-        var link = document.createElement('link')
-        link.rel = prefetchOrPreload
-        link.crossOrigin = 'anonymous'
-        link.href = url
-        link.as = resourceType
-        document.head.appendChild(link)
+          link = document.createElement('link')
+          return link.relList.supports(rel)
+        } catch (_unused) {}
       }

-      function loadStyle(url) {
-        var link = document.createElement('link')
-        link.rel = 'stylesheet'
-        link.crossOrigin = 'anonymous'
-        link.href = url
-        document.head.appendChild(link)
+      var relPrefetch =
+        hasRel('preload') && !hasRel('prefetch') // https://caniuse.com/#feat=link-rel-preload
+          ? // macOS and iOS (Safari does not support prefetch)
+            'preload' // https://caniuse.com/#feat=link-rel-prefetch
+          : // IE 11, Edge 12+, nearly all evergreen
+            'prefetch'
+      var hasNoModule = 'noModule' in document.createElement('script')
+
+      function appendLink(href, rel, as) {
+        return new _promise.default((res, rej, link) => {
+          link = document.createElement('link')
+          link.crossOrigin = 'anonymous'
+          link.href = href
+          link.rel = rel
+          if (as) link.as = as
+          link.onload = res
+          link.onerror = rej
+          document.head.appendChild(link)
+        })
       }

       class PageLoader {
@@ -1208,6 +1206,7 @@
           this.buildId = buildId
           this.assetPrefix = assetPrefix
           this.pageCache = {}
+          this.prefetched = {}
           this.pageRegisterEvents = (0, _mitt.default)()
           this.loadingRoutes = {}

@@ -1290,6 +1289,8 @@
             }

             if (!this.loadingRoutes[route]) {
+              this.loadingRoutes[route] = true
+
               if (true) {
                 this.getDependencies(route).then(deps => {
                   deps.forEach(d => {
@@ -1306,11 +1307,13 @@
                         'link[rel=stylesheet][href^="' + d + '"]'
                       )
                     ) {
-                      loadStyle(d) // FIXME: handle failure
+                      appendLink(d, 'stylesheet').catch(() => {
+                        // FIXME: handle failure
+                        // Right now, this is needed to prevent an unhandled rejection.
+                      })
                     }
                   })
                   this.loadRoute(route)
-                  this.loadingRoutes[route] = true
                 })
               } else {
               }
@@ -1338,7 +1341,7 @@
         loadScript(url, route, isPage) {
           var script = document.createElement('script')

-          if (true && 'noModule' in script) {
+          if (true && hasNoModule) {
             script.type = 'module' // Only page bundle scripts need to have .module added to url,
             // dependencies already have it added during build manifest creation

@@ -1390,27 +1393,39 @@
           var _this2 = this

           return (0, _asyncToGenerator2.default)(function*() {
-            route = _this2.normalizeRoute(route)
-            var scriptRoute = (route === '/' ? '/index' : route) + '.js'
+            // https://github.com/GoogleChromeLabs/quicklink/blob/453a661fa1fa940e2d2e044452398e38c67a98fb/src/index.mjs#L115-L118
+            // License: Apache 2.0
+            var cn

-            if (true && 'noModule' in document.createElement('script')) {
-              scriptRoute = scriptRoute.replace(/\.js$/, '.module.js')
+            if ((cn = navigator.connection)) {
+              // Don't prefetch if using 2G or if Save-Data is enabled.
+              if (cn.saveData || /2g/.test(cn.effectiveType)) return
             }

-            var url =
-              _this2.assetPrefix +
-              (isDependency
-                ? route
-                : '/_next/static/' +
-                  encodeURIComponent(_this2.buildId) +
-                  '/pages' +
-                  encodeURI(scriptRoute)) // n.b. If preload is not supported, we fall back to `loadPage` which has
-            // its own deduping mechanism.
+            var url = _this2.assetPrefix
+
+            if (isDependency) {
+              url += route
+            } else {
+              route = _this2.normalizeRoute(route)
+              _this2.prefetched[route] = true
+              var scriptRoute = (route === '/' ? '/index' : route) + '.js'
+
+              if (true && hasNoModule) {
+                scriptRoute = scriptRoute.replace(/\.js$/, '.module.js')
+              }
+
+              url +=
+                '/_next/static/' +
+                encodeURIComponent(_this2.buildId) +
+                '/pages' +
+                encodeURI(scriptRoute)
+            }

             if (
               document.querySelector(
                 'link[rel="' +
-                  prefetchOrPreload +
+                  relPrefetch +
                   '"][href^="' +
                   url +
                   '"], script[data-next-page="' +
@@ -1419,48 +1434,30 @@
               )
             ) {
               return
-            } // Inspired by quicklink, license: https://github.com/GoogleChromeLabs/quicklink/blob/master/LICENSE
-
-            var cn
-
-            if ((cn = navigator.connection)) {
-              // Don't prefetch if the user is on 2G or if Save-Data is enabled.
-              if (
-                (cn.effectiveType || '').indexOf('2g') !== -1 ||
-                cn.saveData
-              ) {
-                return
-              }
-            }
-
-            if (true && !isDependency) {
-              ;(yield _this2.getDependencies(route)).forEach(url => {
-                _this2.prefetch(url, true)
-              })
-            } // Feature detection is used to see if preload is supported
-            // If not fall back to loading script tags before the page is loaded
-            // https://caniuse.com/#feat=link-rel-preload
-
-            if (hasPreload) {
-              preloadLink(url, url.match(/\.css$/) ? 'style' : 'script')
-              return
-            }
-
-            if (isDependency) {
-              // loadPage will automatically handle depencies, so no need to
-              // preload them manually
-              return
             }

-            if (document.readyState === 'complete') {
-              return _this2.loadPage(route).catch(() => {})
-            } else {
-              return new _promise.default(resolve => {
-                window.addEventListener('load', () => {
-                  _this2.loadPage(route).then(() => resolve(), () => resolve())
-                })
-              })
-            }
+            return _promise.default
+              .all([
+                appendLink(
+                  url,
+                  relPrefetch,
+                  url.match(/\.css$/) ? 'style' : 'script'
+                ),
+                true &&
+                  !isDependency &&
+                  _this2
+                    .getDependencies(route)
+                    .then(urls =>
+                      _promise.default.all(
+                        urls.map(url => _this2.prefetch(url, true))
+                      )
+                    ),
+              ])
+              .then(
+                // do not return any data
+                () => {}, // swallow prefetch errors
+                () => {}
+              )
           })()
         }
       }
```

Diff for index.html

```diff
@@ -27,25 +27,25 @@
     />
     <link
       rel="preload"
-      href="/_next/static/runtime/main-e6c4147e120731ef04d8.module.js"
+      href="/_next/static/chunks/framework.9c9aa574c484a7d0240e.module.js"
       as="script"
       crossorigin="anonymous"
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/framework.9c9aa574c484a7d0240e.module.js"
+      href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.6406830adfd759a39616.module.js"
       as="script"
       crossorigin="anonymous"
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.6406830adfd759a39616.module.js"
+      href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.08c4064758778ec3689a.module.js"
       as="script"
       crossorigin="anonymous"
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6544e81bc61166e45e0f.module.js"
+      href="/_next/static/runtime/main-98b093712605cee25bb7.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -121,55 +121,55 @@
       type="module"
     ></script
     ><script
-      src="/_next/static/runtime/main-8500e7d614d5ca841401.js"
+      src="/_next/static/chunks/framework.4c64484d8a631a55b435.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script
     ><script
-      src="/_next/static/runtime/main-e6c4147e120731ef04d8.module.js"
+      src="/_next/static/chunks/framework.9c9aa574c484a7d0240e.module.js"
       async=""
       crossorigin="anonymous"
       type="module"
     ></script
     ><script
-      src="/_next/static/chunks/framework.4c64484d8a631a55b435.js"
+      src="/_next/static/chunks/commons.5d483f979b96e9afed5a.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script
     ><script
-      src="/_next/static/chunks/framework.9c9aa574c484a7d0240e.module.js"
+      src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.9a0caf742c992a927903.js"
       async=""
       crossorigin="anonymous"
-      type="module"
+      nomodule=""
     ></script
     ><script
-      src="/_next/static/chunks/commons.5d483f979b96e9afed5a.js"
+      src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.6406830adfd759a39616.module.js"
       async=""
       crossorigin="anonymous"
-      nomodule=""
+      type="module"
     ></script
     ><script
-      src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.9a0caf742c992a927903.js"
+      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.a956fdaeb9a5fa7da92f.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script
     ><script
-      src="/_next/static/chunks/4952ddcd88e7185e66c9cf40e2d848b7e27f1574.6406830adfd759a39616.module.js"
+      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.08c4064758778ec3689a.module.js"
       async=""
       crossorigin="anonymous"
       type="module"
     ></script
     ><script
-      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.4c305695c6fb0e06633d.js"
+      src="/_next/static/runtime/main-5da661ac0286ef09b73f.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script
     ><script
-      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6544e81bc61166e45e0f.module.js"
+      src="/_next/static/runtime/main-98b093712605cee25bb7.module.js"
       async=""
       crossorigin="anonymous"
       type="module"
```

Diff for link.html

```diff
@@ -39,13 +39,13 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6544e81bc61166e45e0f.module.js"
+      href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.08c4064758778ec3689a.module.js"
       as="script"
       crossorigin="anonymous"
     />
     <link
       rel="preload"
-      href="/_next/static/runtime/main-e6c4147e120731ef04d8.module.js"
+      href="/_next/static/runtime/main-98b093712605cee25bb7.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -156,25 +156,25 @@
       type="module"
     ></script
     ><script
-      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.4c305695c6fb0e06633d.js"
+      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.a956fdaeb9a5fa7da92f.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script
     ><script
-      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6544e81bc61166e45e0f.module.js"
+      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.08c4064758778ec3689a.module.js"
       async=""
       crossorigin="anonymous"
       type="module"
     ></script
     ><script
-      src="/_next/static/runtime/main-8500e7d614d5ca841401.js"
+      src="/_next/static/runtime/main-5da661ac0286ef09b73f.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script
     ><script
-      src="/_next/static/runtime/main-e6c4147e120731ef04d8.module.js"
+      src="/_next/static/runtime/main-98b093712605cee25bb7.module.js"
       async=""
       crossorigin="anonymous"
       type="module"
```

Diff for withRouter.html

```diff
@@ -39,13 +39,13 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6544e81bc61166e45e0f.module.js"
+      href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.08c4064758778ec3689a.module.js"
       as="script"
       crossorigin="anonymous"
     />
     <link
       rel="preload"
-      href="/_next/static/runtime/main-e6c4147e120731ef04d8.module.js"
+      href="/_next/static/runtime/main-98b093712605cee25bb7.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -151,25 +151,25 @@
       type="module"
     ></script
     ><script
-      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.4c305695c6fb0e06633d.js"
+      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.a956fdaeb9a5fa7da92f.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script
     ><script
-      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.6544e81bc61166e45e0f.module.js"
+      src="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.08c4064758778ec3689a.module.js"
       async=""
       crossorigin="anonymous"
       type="module"
     ></script
     ><script
-      src="/_next/static/runtime/main-8500e7d614d5ca841401.js"
+      src="/_next/static/runtime/main-5da661ac0286ef09b73f.js"
       async=""
       crossorigin="anonymous"
       nomodule=""
     ></script
     ><script
-      src="/_next/static/runtime/main-e6c4147e120731ef04d8.module.js"
+      src="/_next/static/runtime/main-98b093712605cee25bb7.module.js"
       async=""
       crossorigin="anonymous"
       type="module"
```

Serverless Mode (Increase detected ⚠)

General Overall increase ⚠

|  | zeit/next.js canary v9.1.6 | zeit/next.js refs/tags/v9.1.7-canary.16 | Change |
| - | - | - | - |
| buildDuration | 13.3s | 13.6s | ⚠ +333ms |
| nodeModulesSize | 48.6 MB | 48.9 MB | ⚠ +295 kB |

Client Bundles (main, webpack, commons) Overall decrease ✓

|  | zeit/next.js canary v9.1.6 | zeit/next.js refs/tags/v9.1.7-canary.16 | Change |
| - | - | - | - |
| main-HASH.js gzip | 6.49 kB | 6.44 kB | -51 B |
| webpack-HASH.js gzip | 746 B | 746 B | ✓ |
| 4952ddcd88e7..54d3.js gzip | 4.68 kB | 4.68 kB | ✓ |
| commons.HASH.js gzip | 4.06 kB | 4.06 kB | ✓ |
| de003c3a9d30..2235.js gzip | 13.9 kB | N/A | N/A |
| framework.HASH.js gzip | 39.5 kB | 39.5 kB | ✓ |
| de003c3a9d30..6ef5.js gzip | N/A | 13.8 kB | N/A |
| Overall change | 69.3 kB | 69.2 kB | -51 B |

Client Bundles (main, webpack, commons) Modern Overall increase ⚠

|  | zeit/next.js canary v9.1.6 | zeit/next.js refs/tags/v9.1.7-canary.16 | Change |
| - | - | - | - |
| main-HASH.module.js gzip | 5.41 kB | 5.42 kB | ⚠ +8 B |
| webpack-HASH..dule.js gzip | 746 B | 746 B | ✓ |
| 4952ddcd88e7..dule.js gzip | 5.56 kB | 5.56 kB | ✓ |
| de003c3a9d30..dule.js gzip | 12.5 kB | N/A | N/A |
| framework.HA..dule.js gzip | 39.4 kB | 39.4 kB | ✓ |
| de003c3a9d30..dule.js gzip | N/A | 12.6 kB | N/A |
| Overall change | 63.7 kB | 63.7 kB | ⚠ +8 B |

Legacy Client Bundles (polyfills)

|  | zeit/next.js canary v9.1.6 | zeit/next.js refs/tags/v9.1.7-canary.16 | Change |
| - | - | - | - |
| polyfills-HASH.js gzip | 4.76 kB | 4.76 kB | ✓ |
| Overall change | 4.76 kB | 4.76 kB | ✓ |

Client Pages Overall increase ⚠

|  | zeit/next.js canary v9.1.6 | zeit/next.js refs/tags/v9.1.7-canary.16 | Change |
| - | - | - | - |
| _app.js gzip | 1.33 kB | 1.33 kB | ✓ |
| _error.js gzip | 4.07 kB | 4.07 kB | ✓ |
| hooks.js gzip | 779 B | 779 B | ✓ |
| index.js gzip | 222 B | 222 B | ✓ |
| link.js gzip | 2.89 kB | 2.93 kB | ⚠ +37 B |
| routerDirect.js gzip | 283 B | 283 B | ✓ |
| withRouter.js gzip | 282 B | 282 B | ✓ |
| Overall change | 9.86 kB | 9.89 kB | ⚠ +37 B |

Client Pages Modern Overall increase ⚠

|  | zeit/next.js canary v9.1.6 | zeit/next.js refs/tags/v9.1.7-canary.16 | Change |
| - | - | - | - |
| _app.module.js gzip | 757 B | 757 B | ✓ |
| _error.module.js gzip | 3.06 kB | 3.06 kB | ✓ |
| hooks.module.js gzip | 371 B | 371 B | ✓ |
| index.module.js gzip | 212 B | 212 B | ✓ |
| link.module.js gzip | 2.46 kB | 2.49 kB | ⚠ +35 B |
| routerDirect..dule.js gzip | 273 B | 273 B | ✓ |
| withRouter.m..dule.js gzip | 272 B | 272 B | ✓ |
| Overall change | 7.4 kB | 7.43 kB | ⚠ +35 B |

Client Build Manifests

|  | zeit/next.js canary v9.1.6 | zeit/next.js refs/tags/v9.1.7-canary.16 | Change |
| - | - | - | - |
| _buildManifest.js gzip | 61 B | 61 B | ✓ |
| _buildManife..dule.js gzip | 61 B | 61 B | ✓ |
| Overall change | 122 B | 122 B | ✓ |

Serverless bundles Overall increase ⚠

|  | zeit/next.js canary v9.1.6 | zeit/next.js refs/tags/v9.1.7-canary.16 | Change |
| - | - | - | - |
| _error.js gzip | 74.8 kB | 78.9 kB | ⚠ +4.04 kB |
| hooks.html gzip | 1.07 kB | 1.07 kB | -2 B |
| index.js gzip | 75.1 kB | 79.1 kB | ⚠ +4.01 kB |
| link.js gzip | 77.1 kB | 81.3 kB | ⚠ +4.15 kB |
| routerDirect.js gzip | 75.2 kB | 79.2 kB | ⚠ +4.02 kB |
| withRouter.js gzip | 75.3 kB | 79.3 kB | ⚠ +4.03 kB |
| Overall change | 379 kB | 399 kB | ⚠ +20.2 kB |


ok, this one I have already updated, move these variables change to local.conf, please check the updated patchset


Please see https://reviews.llvm.org/D72124