Another year of great effort at our Suffolk farmland site (led by one
of our groups trainers James Cracknell and his ringers in the area) kept
our numbers up this year, alongside a fair bit of nest box work and
ongoing colour ringing projects in the Norwich area. UEARG goes back
much further, but here’s a look at totals over the last few years:
2023 saw us collect 8684 records of 5736
unique individuals consisting of 4772 birds
ringed, 2892 retraps/controls, and
1003 sightings.
It was a reasonably diverse year with a total of 55 species
recorded, 51 of which were ringed but it was down on recent
years. We have now ringed 104 species since 2015.
Unsurprisingly, Blue Tits romp home and take the top
spot as our most ringed species once again with ease.
Species
|
New
|
Other
|
Retraps
|
Sightings
|
Total
|
Total_2022
|
Blue Tit
|
1465
|
2
|
996
|
0
|
2463
|
2830
|
Great Tit
|
503
|
1
|
516
|
0
|
1020
|
1109
|
Yellowhammer
|
605
|
1
|
262
|
0
|
868
|
947
|
Mute Swan
|
32
|
0
|
17
|
598
|
647
|
612
|
Dunnock
|
189
|
2
|
230
|
0
|
421
|
546
|
Black-headed Gull
|
9
|
0
|
0
|
388
|
397
|
296
|
Greenfinch
|
253
|
0
|
115
|
0
|
368
|
855
|
Goldfinch
|
233
|
0
|
118
|
0
|
351
|
640
|
Blackbird
|
179
|
2
|
121
|
0
|
302
|
439
|
Robin
|
133
|
0
|
160
|
0
|
293
|
377
|
Chaffinch
|
192
|
0
|
60
|
0
|
252
|
395
|
Linnet
|
213
|
0
|
36
|
0
|
249
|
14
|
Long-tailed Tit
|
118
|
0
|
123
|
0
|
241
|
240
|
Reed Bunting
|
87
|
0
|
19
|
0
|
106
|
42
|
Wren
|
72
|
0
|
32
|
0
|
104
|
116
|
Blackcap
|
83
|
0
|
5
|
0
|
88
|
146
|
House Sparrow
|
49
|
0
|
13
|
0
|
62
|
146
|
Starling
|
61
|
0
|
0
|
0
|
61
|
32
|
Chiffchaff
|
43
|
0
|
12
|
0
|
55
|
76
|
Coal Tit
|
20
|
0
|
12
|
0
|
32
|
24
|
Lesser Whitethroat
|
25
|
0
|
3
|
0
|
28
|
15
|
Swift
|
25
|
0
|
1
|
0
|
26
|
2
|
Whitethroat
|
25
|
0
|
1
|
0
|
26
|
21
|
Song Thrush
|
17
|
0
|
7
|
0
|
24
|
8
|
Goldcrest
|
16
|
1
|
7
|
0
|
24
|
30
|
Woodpigeon
|
20
|
0
|
2
|
0
|
22
|
39
|
Great Spotted Woodpecker
|
14
|
0
|
8
|
0
|
22
|
20
|
Swallow
|
18
|
0
|
0
|
0
|
18
|
19
|
Mallard
|
0
|
0
|
0
|
12
|
12
|
28
|
Redwing
|
8
|
0
|
2
|
0
|
10
|
25
|
Mistle Thrush
|
9
|
0
|
0
|
0
|
9
|
0
|
Marsh Tit
|
4
|
0
|
5
|
0
|
9
|
3
|
Treecreeper
|
6
|
0
|
2
|
0
|
8
|
5
|
Lesser Redpoll
|
6
|
0
|
1
|
0
|
7
|
0
|
Barn Owl
|
6
|
0
|
0
|
0
|
6
|
13
|
Nuthatch
|
5
|
0
|
0
|
0
|
5
|
0
|
Tawny Owl
|
4
|
0
|
1
|
0
|
5
|
0
|
Collared Dove
|
3
|
0
|
2
|
0
|
5
|
11
|
Greylag Goose
|
1
|
0
|
0
|
4
|
5
|
65
|
Brambling
|
3
|
0
|
1
|
0
|
4
|
83
|
Rook
|
3
|
1
|
0
|
0
|
4
|
4
|
Kestrel
|
1
|
2
|
1
|
0
|
4
|
9
|
Common Gull
|
2
|
0
|
0
|
1
|
3
|
5
|
Bullfinch
|
2
|
0
|
0
|
0
|
2
|
8
|
Fieldfare
|
2
|
0
|
0
|
0
|
2
|
1
|
Moorhen
|
2
|
0
|
0
|
0
|
2
|
1
|
Carrion Crow
|
1
|
1
|
0
|
0
|
2
|
0
|
Herring Gull
|
1
|
1
|
0
|
0
|
2
|
4
|
Jackdaw
|
0
|
1
|
1
|
0
|
2
|
0
|
Garden Warbler
|
1
|
0
|
0
|
0
|
1
|
0
|
Lesser Black-backed Gull (fuscus)
|
1
|
0
|
0
|
0
|
1
|
0
|
Reed Warbler
|
1
|
0
|
0
|
0
|
1
|
12
|
Siskin
|
1
|
0
|
0
|
0
|
1
|
1
|
Kittiwake
|
0
|
1
|
0
|
0
|
1
|
0
|
Lesser Black-backed Gull
|
0
|
1
|
0
|
0
|
1
|
0
|
Total:
|
4772
|
17
|
2892
|
1003
|
8684
|
10314
|
Ringing sites
This year we had records from about 66 sites, but the vast majority
of records come from Brewery Farm and a handful of other sites. Brewery
Farm is (no surprise) farmland, Charter Wood & UEA Campus are
primarily feeder sites with nestboxes.
Colour Ringing Projects
The group continued with 2 colour-ringing projects this year to
improve on the scientific outputs of our work (Mute Swan and
Black-headed Gull). The most prolific of these projects
continues to be the Norwich Swan Project, which has seen us colour ring
another 33 Mute Swans across Norwich and generate
598 sightings this year. We have also had some success
with Black-headed Gulls this year with 9 colour-ringed,
and 388 sightings. Please keep an eye out for any
colour-ringed birds and report sightings, however menial you think they
may be!
Swan sightings can be reported at: https://stephenvickers.shinyapps.io/swansubapp/
Black-headed Gull, Barnacle Goose, Greylag Goose, Moorhen,
& Coot sightings can be reported at: https://waterbirdcolourmarking.shinyapps.io/sightings2/
2023 Swan movements:
2023 Black-headed Gull movements:
Controls and Recoveries
Birds we encountered have gone, or have come from, a nice spread of
sites this year:
Highlights
- Three Mistle Thrush nests and nine chicks ringed this year was a
great haul, all from Charter Wood
Many thanks to all UEARG members that helped out this year, with
particular thanks to our group leader Professor Iain Barr. Here’s hoping
for a great year of ringing in 2024!
LS0tCnRpdGxlOiAiVUVBUkcgcmluZ2luZyByZXBvcnQgMjAyMyIKYXV0aG9yOiBTdGVwaGVuIFZpY2tlcnMKZGF0ZTogImByIGZvcm1hdChTeXMudGltZSgpLCAnJWQgJUIgJVknKWAiCm91dHB1dDoKICBodG1sX2RvY3VtZW50OgogICAgY29kZV9kb3dubG9hZDogeWVzCiAgICBjb2RlX2ZvbGRpbmc6IGhpZGUKICAgIGRlcHRoOiA0CiAgICBudW1iZXJfc2VjdGlvbnM6IG5vCiAgICB0aGVtZTogY29zbW8KICAgIHRvYzogbm8Kc3VidGl0bGU6IApsaW5rLWNpdGF0aW9uczogeWVzCmFsd2F5c19hbGxvd19odG1sOiB0cnVlCi0tLQoKYGBge3Igc2V0dXAsIGluY2x1ZGUgPSBUUlVFLCBlY2hvPUZBTFNFfQprbml0cjo6b3B0c19jaHVuayRzZXQoCgltZXNzYWdlID0gRkFMU0UsCgl3YXJuaW5nID0gRkFMU0UsCgljYWNoZSA9IFRSVUUsCgl0aWR5ID0gVFJVRSkKYGBgCgpgYGB7ciBldmFsPVRSVUUsIGluY2x1ZGU9VFJVRSwgZWNobz1GQUxTRX0KcGFjbWFuOjpwX2xvYWQodGlkeXIsCiAgICAgICAgICAgICAgIGdncGxvdDIsCiAgICAgICAgICAgICAgIGRwbHlyLAogICAgICAgICAgICAgICBwbHlyLAogICAgICAgICAgICAgICBsdWJyaWRhdGUsCiAgICAgICAgICAgICAgIGZvcm1hdFIsCiAgICAgICAgICAgICAgIHBhbmRlciwKICAgICAgICAgICAgICAgZ2dwdWJyLAogICAgICAgICAgICAgICBrYWJsZUV4dHJhLAogICAgICAgICAgICAgICBzY2ljbywKICAgICAgICAgICAgICAgY293cGxvdCwKICAgICAgICAgICAgICAgc3RyaW5nciwKICAgICAgICAgICAgICAgZ2dzY2kpCm9wdGlvbnMoc2NpcGVuPTk5OTk5OTk5LCBkcGx5ci5zdW1tYXJpc2UuaW5mb3JtID0gRkFMU0UpCmBgYAoKYGBge3IgZWNobz1GQUxTRX0Kc2V0d2QoIn4vRG93bmxvYWRzIikKZGF0YSA8LSByZWFkLmNzdignRGF0YS5jc3YnKSAjIGNoYW5nZSB0byB3aGF0ZXZlciB5b3VyIERlbU9uIG91dHB1dCBmaWxlIGlzIGNhbGxlZApkYXRhJHZpc2l0X2RhdGUgPC0gZG15KGRhdGEkdmlzaXRfZGF0ZSkKZGF0YSRtb250aCA8LSBtb250aChkYXRhJHZpc2l0X2RhdGUpCmRhdGEkeWVhciA8LSB5ZWFyKGRhdGEkdmlzaXRfZGF0ZSkKZGF0YTIgPC0gZGF0YSAlPiUgZmlsdGVyKHllYXIgPT0gMjAyMykgJT4lIG11dGF0ZShyZWNvcmRfdHlwZTIgPSBjYXNlX3doZW4ocmVjb3JkX3R5cGUgPT0gJ04nIH4gJ05ldycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluZGluZ19jb25kaXRpb24gPT0gOCB+ICdSZXRyYXBzJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5kaW5nX2NvbmRpdGlvbiAlaW4lIGMoNzksIDg5KSB+ICdTaWdodGluZ3MnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRSVUUgfiAnT3RoZXInKSkgJT4lIGdyb3VwX2J5KG1vbnRoLCByZWNvcmRfdHlwZTIpICU+JSBkcGx5cjo6c3VtbWFyaXNlKFRvdGFsID0gbigpKSAlPiUgdW5ncm91cCgpICU+JSBjb21wbGV0ZShtb250aCwgcmVjb3JkX3R5cGUyLCBmaWxsPWxpc3QoVG90YWwgPSAwKSkKZGF0YTIkcmVjb3JkX3R5cGUyIDwtIGZhY3RvcihkYXRhMiRyZWNvcmRfdHlwZTIsIGxldmVscyA9IGMoJ090aGVyJywnU2lnaHRpbmdzJywnUmV0cmFwcycsJ05ldycpKQoKYGBgCgpBbm90aGVyIHllYXIgb2YgZ3JlYXQgZWZmb3J0IGF0IG91ciBTdWZmb2xrIGZhcm1sYW5kIHNpdGUgKGxlZCBieSBvbmUgb2Ygb3VyIGdyb3VwcyB0cmFpbmVycyBKYW1lcyBDcmFja25lbGwgYW5kIGhpcyByaW5nZXJzIGluIHRoZSBhcmVhKSBrZXB0IG91ciBudW1iZXJzIHVwIHRoaXMgeWVhciwgYWxvbmdzaWRlIGEgZmFpciBiaXQgb2YgbmVzdCBib3ggd29yayBhbmQgb25nb2luZyBjb2xvdXIgcmluZ2luZyBwcm9qZWN0cyBpbiB0aGUgTm9yd2ljaCBhcmVhLiBVRUFSRyBnb2VzIGJhY2sgbXVjaCBmdXJ0aGVyLCBidXQgaGVyZSdzIGEgbG9vayBhdCB0b3RhbHMgb3ZlciB0aGUgbGFzdCBmZXcgeWVhcnM6CgpgYGB7ciBlY2hvPUZBTFNFfQpkYXRhX3llYXJzIDwtIGRhdGEgJT4lIG11dGF0ZShyZWNvcmRfdHlwZTIgPSBjYXNlX3doZW4ocmVjb3JkX3R5cGUgPT0gJ04nIH4gJ05ldycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluZGluZ19jb25kaXRpb24gPT0gOCB+ICdSZXRyYXBzJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5kaW5nX2NvbmRpdGlvbiAlaW4lIGMoNzksIDg5KSB+ICdTaWdodGluZ3MnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRSVUUgfiAnT3RoZXInKSkgJT4lIGdyb3VwX2J5KHllYXIsIHJlY29yZF90eXBlMikgJT4lIGRwbHlyOjpzdW1tYXJpc2UoVG90YWwgPSBuKCkpICU+JSB1bmdyb3VwKCkgJT4lIGNvbXBsZXRlKHllYXIsIHJlY29yZF90eXBlMiwgZmlsbD1saXN0KFRvdGFsID0gMCkpCmRhdGFfeWVhcnMkcmVjb3JkX3R5cGUyIDwtIGZhY3RvcihkYXRhX3llYXJzJHJlY29yZF90eXBlMiwgbGV2ZWxzID0gYygnT3RoZXInLCdTaWdodGluZ3MnLCdSZXRyYXBzJywnTmV3JykpCgpnZ3Bsb3QoZGF0YV95ZWFycywgYWVzKHg9eWVhciwgeT1Ub3RhbCwgY29sb3VyPXJlY29yZF90eXBlMikpICsKICBnZW9tX2xpbmUoKSArCiAgZ2VvbV9sYWJlbChhZXMobGFiZWw9VG90YWwpLCBzaG93LmxlZ2VuZD1GKSArCiAgI3NjYWxlX3hfY29udGludW91cyhsaW1pdHM9YygxLDEyKSxicmVha3M9c2VxKDEsMTIpLCBsYWJlbHM9YygnSmFuJywgJ0ZlYicsJ01hcicsJ0FwcicsJ01heScsJ0p1bicsJ0p1bCcsJ0F1ZycsJ1NlcCcsJ09jdCcsJ05vdicsJ0RlYycpKSArCiAgdGhlbWVfYncoKSArCiAgc2NhbGVfY29sb3VyX25wZygpICsKICBsYWJzKHRpdGxlID0gJ1VFQVJHIHllYXJseSByaW5naW5nIGVuY291bnRlcnMnKSArCiAgZ3VpZGVzKGNvbG91cj0gZ3VpZGVfbGVnZW5kKG92ZXJyaWRlLmFlcyA9IGxpc3Qoc2l6ZT0yKSkpICsKICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAnYm90dG9tJywgYXhpcy50aXRsZSA9IGVsZW1lbnRfYmxhbmsoKSwgbGVnZW5kLnRpdGxlID0gZWxlbWVudF9ibGFuaygpKQoKYGBgCgoyMDIzIHNhdyB1cyBjb2xsZWN0ICoqYHIgbnJvdyhkYXRhW2RhdGEkeWVhcj09MjAyMyxdKWAgcmVjb3JkcyoqIG9mICoqYHIgbGVuZ3RoKHVuaXF1ZShkYXRhW2RhdGEkeWVhcj09MjAyMyxdJHJpbmdfbm8pKWAgdW5pcXVlIGluZGl2aWR1YWxzKiogY29uc2lzdGluZyBvZiAqKmByIG5yb3coZGF0YVtkYXRhJHJlY29yZF90eXBlID09ICdOJyAmIGRhdGEkeWVhcj09MjAyMyxdKWAgYmlyZHMgcmluZ2VkKiosICoqYHIgbnJvdyhkYXRhW2RhdGEkZmluZGluZ19jb25kaXRpb24gPT0gOCAmIGRhdGEkeWVhciA9PSAyMDIzLF0pYCByZXRyYXBzL2NvbnRyb2xzKiosIGFuZCAqKmByIG5yb3coZGF0YVtkYXRhJGZpbmRpbmdfY29uZGl0aW9uICVpbiUgYyg3OSwgODkpICYgZGF0YSR5ZWFyID09IDIwMjMsXSlgIHNpZ2h0aW5ncyoqLiAKCkl0IHdhcyBhIHJlYXNvbmFibHkgZGl2ZXJzZSB5ZWFyIHdpdGggYSB0b3RhbCBvZiAqKmByIGxlbmd0aCh1bmlxdWUoZGF0YVtkYXRhJHllYXI9PTIwMjMsXSRzcGVjaWVzX25hbWUpKWAgc3BlY2llcyByZWNvcmRlZCoqLCBgciBsZW5ndGgodW5pcXVlKGRhdGFbZGF0YSRyZWNvcmRfdHlwZSA9PSAnTicgJiBkYXRhJHllYXIgPT0yMDIzLF0kc3BlY2llc19uYW1lKSlgIG9mIHdoaWNoIHdlcmUgcmluZ2VkIGJ1dCBpdCB3YXMgZG93biBvbiByZWNlbnQgeWVhcnMuIFdlIGhhdmUgbm93IHJpbmdlZCAqKmByIGxlbmd0aCh1bmlxdWUoZGF0YSRzcGVjaWVzX25hbWUpKWAqKiBzcGVjaWVzIHNpbmNlIDIwMTUuIAoKYGBge3IgZWNobz1GQUxTRX0KZGF0YV9zcGVjcyA8LSBkYXRhLmZyYW1lKFllYXIgPSBzZXEoMjAxNSwgMjAyMywgMSksIFNwZWNpZXMgPSBjKGxlbmd0aCh1bmlxdWUoZGF0YVtkYXRhJHllYXI9PTIwMTUsXSRzcGVjaWVzX25hbWUpKSwKICBsZW5ndGgodW5pcXVlKGRhdGFbZGF0YSR5ZWFyPT0yMDE2LF0kc3BlY2llc19uYW1lKSksCiAgbGVuZ3RoKHVuaXF1ZShkYXRhW2RhdGEkeWVhcj09MjAxNyxdJHNwZWNpZXNfbmFtZSkpLAogIGxlbmd0aCh1bmlxdWUoZGF0YVtkYXRhJHllYXI9PTIwMTgsXSRzcGVjaWVzX25hbWUpKSwKICBsZW5ndGgodW5pcXVlKGRhdGFbZGF0YSR5ZWFyPT0yMDE5LF0kc3BlY2llc19uYW1lKSksCiAgbGVuZ3RoKHVuaXF1ZShkYXRhW2RhdGEkeWVhcj09MjAyMCxdJHNwZWNpZXNfbmFtZSkpLAogIGxlbmd0aCh1bmlxdWUoZGF0YVtkYXRhJHllYXI9PTIwMjEsXSRzcGVjaWVzX25hbWUpKSwKICBsZW5ndGgodW5pcXVlKGRhdGFbZGF0YSR5ZWFyPT0yMDIyLF0kc3BlY2llc19uYW1lKSksCiAgbGVuZ3RoKHVuaXF1ZShkYXRhW2RhdGEkeWVhcj09MjAyMyxdJHNwZWNpZXNfbmFtZSkpKSkKCmdncGxvdChkYXRhX3NwZWNzLCBhZXMoeD1ZZWFyLCB5PVNwZWNpZXMpKSArCiAgZ2VvbV9saW5lKCkgKwogIGdlb21fbGFiZWwoYWVzKGxhYmVsPVNwZWNpZXMpLCBzaG93LmxlZ2VuZD1GKSArCiAgI3NjYWxlX3hfY29udGludW91cyhsaW1pdHM9YygxLDEyKSxicmVha3M9c2VxKDEsMTIpLCBsYWJlbHM9YygnSmFuJywgJ0ZlYicsJ01hcicsJ0FwcicsJ01heScsJ0p1bicsJ0p1bCcsJ0F1ZycsJ1NlcCcsJ09jdCcsJ05vdicsJ0RlYycpKSArCiAgdGhlbWVfYncoKSArCiAgc2NhbGVfY29sb3VyX25wZygpICsKICBsYWJzKHRpdGxlID0gJ1VFQVJHIHllYXJseSBzcGVjaWVzIHRvdGFscycpICsKICBndWlkZXMoY29sb3VyPSBndWlkZV9sZWdlbmQob3ZlcnJpZGUuYWVzID0gbGlzdChzaXplPTIpKSkgKwogIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICdib3R0b20nLCBheGlzLnRpdGxlID0gZWxlbWVudF9ibGFuaygpLCBsZWdlbmQudGl0bGUgPSBlbGVtZW50X2JsYW5rKCkpCgpgYGAKCgpVbnN1cnByaXNpbmdseSwgKipCbHVlIFRpdHMqKiByb21wIGhvbWUgYW5kIHRha2UgdGhlIHRvcCBzcG90IGFzIG91ciBtb3N0IHJpbmdlZCBzcGVjaWVzIG9uY2UgYWdhaW4gd2l0aCBlYXNlLgoKYGBge3IsIGVjaG89RkFMU0UsIGZpZy5hbGlnbj0nY2VudGVyJ30KZ2dwbG90KGRhdGEyLCBhZXMoeD1tb250aCwgeT1Ub3RhbCwgY29sb3VyPXJlY29yZF90eXBlMikpICsKICBnZW9tX2xpbmUoKSArCiAgZ2VvbV9sYWJlbChhZXMobGFiZWw9VG90YWwpLCBzaG93LmxlZ2VuZD1GKSArCiAgc2NhbGVfeF9jb250aW51b3VzKGxpbWl0cz1jKDEsMTIpLGJyZWFrcz1zZXEoMSwxMiksIGxhYmVscz1jKCdKYW4nLCAnRmViJywnTWFyJywnQXByJywnTWF5JywnSnVuJywnSnVsJywnQXVnJywnU2VwJywnT2N0JywnTm92JywnRGVjJykpICsKICB0aGVtZV9idygpICsKICBzY2FsZV9jb2xvdXJfbnBnKCkgKwogIGxhYnModGl0bGUgPSAnMjAyMyBtb250aGx5IHJpbmdpbmcgZW5jb3VudGVycycpICsKICBndWlkZXMoY29sb3VyPSBndWlkZV9sZWdlbmQob3ZlcnJpZGUuYWVzID0gbGlzdChzaXplPTIpKSkgKwogIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICdib3R0b20nLCBheGlzLnRpdGxlID0gZWxlbWVudF9ibGFuaygpLCBsZWdlbmQudGl0bGUgPSBlbGVtZW50X2JsYW5rKCkpCmBgYAoKYGBge3IgZWNobz1GQUxTRX0KY2FwdHVyZXMgPC0gZGF0YSAlPiUgZmlsdGVyKHllYXI9PTIwMjMpICU+JSBtdXRhdGUocmVjb3JkX3R5cGUyID0gY2FzZV93aGVuKHJlY29yZF90eXBlID09ICdOJyB+ICdOZXcnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbmRpbmdfY29uZGl0aW9uID09IDggfiAnUmV0cmFwcycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluZGluZ19jb25kaXRpb24gJWluJSBjKDc5LCA4OSkgfiAnU2lnaHRpbmdzJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUUlVFIH4gJ090aGVyJykpICU+JSBncm91cF9ieShzcGVjaWVzX25hbWUsIHJlY29yZF90eXBlMikgJT4lICAgZHBseXI6OnN1bW1hcmlzZShUb3RhbCA9IG4oKSkgJT4lIHNwcmVhZChyZWNvcmRfdHlwZTIsIFRvdGFsKSAlPiUgbXV0YXRlKFRvdGFsID0gc3VtKE5ldyxSZXRyYXBzLCBTaWdodGluZ3MsIE90aGVyLCBuYS5ybT1UKSkgJT4lIGFycmFuZ2UoLVRvdGFsLCAtTmV3KSAlPiUgdW5ncm91cCgpCm5hbWVzKGNhcHR1cmVzKVsxXSA8LSAnU3BlY2llcycKCmlmKG5yb3coZGF0YVtkYXRhJHllYXI9PTIwMjIsXSkgPiAwKXsKY2FwdHVyZXMyMDIyIDwtIGRhdGEgJT4lIGZpbHRlcih5ZWFyPT0yMDIyKSAlPiUgbXV0YXRlKHJlY29yZF90eXBlMiA9IGNhc2Vfd2hlbihyZWNvcmRfdHlwZSA9PSAnTicgfiAnTmV3JywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5kaW5nX2NvbmRpdGlvbiA9PSA4IH4gJ1JldHJhcHMnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbmRpbmdfY29uZGl0aW9uICVpbiUgYyg3OSwgODkpIH4gJ1NpZ2h0aW5ncycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVFJVRSB+ICdPdGhlcicpKSAlPiUgZ3JvdXBfYnkoc3BlY2llc19uYW1lLCByZWNvcmRfdHlwZTIpICU+JSAgIGRwbHlyOjpzdW1tYXJpc2UoVG90YWwgPSBuKCkpICU+JSBzcHJlYWQocmVjb3JkX3R5cGUyLCBUb3RhbCkgJT4lIG11dGF0ZShUb3RhbF8yMDIyID0gc3VtKE5ldyxSZXRyYXBzLCBTaWdodGluZ3MsIE90aGVyLCBuYS5ybT1UKSkKbmFtZXMoY2FwdHVyZXMyMDIyKVsxXSA8LSAnU3BlY2llcycKY2FwdHVyZXMgPC0gam9pbihjYXB0dXJlcywgY2FwdHVyZXMyMDIyW2MoJ1NwZWNpZXMnLCdUb3RhbF8yMDIyJyldKQp9Cm5ld3MgPC0gY2FwdHVyZXMkTmV3CnJldHJhcHMgPC0gY2FwdHVyZXMkUmV0cmFwcwpzaWdodGluZ3MgPC0gY2FwdHVyZXMkU2lnaHRpbmdzCm90aGVycyA8LSBjYXB0dXJlcyRPdGhlcgp0b3RhbHMgPC0gY2FwdHVyZXMkVG90YWwKCmlmKG5yb3coZGF0YVtkYXRhJHllYXI9PTIwMjIsXSkgPiAwKXsKdG90YWxzMjAyMiA8LSBjYXB0dXJlcyRUb3RhbF8yMDIyCmNhcHR1cmVzIDwtIGNhcHR1cmVzICU+JSBhZGRfcm93KFNwZWNpZXMgPSAnVG90YWw6JywgTmV3ID0gc3VtKG5ld3MsIG5hLnJtPVQpLCBSZXRyYXBzID0gc3VtKHJldHJhcHMsIG5hLnJtPVQpLCBTaWdodGluZ3MgPSBzdW0oc2lnaHRpbmdzLCBuYS5ybT1UKSwgT3RoZXIgPSBzdW0ob3RoZXJzLCBuYS5ybT1UKSwgVG90YWwgPSBzdW0odG90YWxzLCBuYS5ybT1UKSwgVG90YWxfMjAyMiA9IHN1bSh0b3RhbHMyMDIyLCBuYS5ybT1UKSl9ZWxzZXtjYXB0dXJlcyA8LSBjYXB0dXJlcyAlPiUgYWRkX3JvdyhTcGVjaWVzID0gJ1RvdGFsOicsIE5ldyA9IHN1bShuZXdzLCBuYS5ybT1UKSwgUmV0cmFwcyA9IHN1bShyZXRyYXBzLCBuYS5ybT1UKSwgU2lnaHRpbmdzID0gc3VtKHNpZ2h0aW5ncywgbmEucm09VCksIE90aGVyID0gc3VtKG90aGVycywgbmEucm09VCksIFRvdGFsID0gc3VtKHRvdGFscywgbmEucm09VCkpfQoKY2FwdHVyZXNbaXMubmEoY2FwdHVyZXMpXSA8LSAwCgpjYXB0dXJlcyRUb3RhbCA9IGNlbGxfc3BlYyhjYXB0dXJlcyRUb3RhbCwgY29sb3IgPSBpZmVsc2UoY2FwdHVyZXMkVG90YWwgPCBjYXB0dXJlcyRUb3RhbF8yMDIyLCAicmVkIiwgImRhcmtncmVlbiIpKQoKa2JsKGNhcHR1cmVzLCBlc2NhcGUgPSBGLCBkaWdpdHMgPSAwKSAlPiUKICBrYWJsZV9zdHlsaW5nKGJvb3RzdHJhcF9vcHRpb25zID0gYygic3RyaXBlZCIsICJob3ZlciIsImNvbmRlbnNlZCIsInJlc3BvbnNpdmUiKSwgZml4ZWRfdGhlYWQgPSBUKQoKI3RpYmJsZShjYXB0dXJlcykgJT4lIGthYmxlKCJodG1sIikgJT4lCiMgIGthYmxlX3N0eWxpbmcoInN0cmlwZWQiLCBwb3NpdGlvbiA9ICJsZWZ0IikKYGBgCgpgYGB7ciBlY2hvPUZBTFNFfQpkYXRhMyA8LSBkYXRhICU+JSBmaWx0ZXIoeWVhciA9PSAyMDIzKSAlPiUgbXV0YXRlKHJlY29yZF90eXBlMiA9IGNhc2Vfd2hlbihyZWNvcmRfdHlwZSA9PSAnTicgfiAnTmV3JywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWNvcmRfdHlwZSA9PSAnUycgfiAnUmVlbmNvdW50ZXJzJyksIGxvY19pZCA9IGNhc2Vfd2hlbihzdHJfZGV0ZWN0KGxvY19pZCwgJ0NoYXJ0ZXIgV29vZCcpIH4gJ0NoYXJ0ZXIgV29vZCcsCiAgICAgICAgICBzdHJfZGV0ZWN0KGxvY19pZCwgJ0pheScpIH4gJ0NoYXJ0ZXIgV29vZCcsCiAgICAgICAgICBzdHJfZGV0ZWN0KGxvY19pZCwgJ093bCBCb3ggMScpIH4gJ0NoYXJ0ZXIgV29vZCcsCiAgICAgICAgICBzdHJfZGV0ZWN0KGxvY19pZCwgJ1dlYXRoZXJieScpIH4gJ0NoYXJ0ZXIgV29vZCcsCiAgICAgICAgICBzdHJfZGV0ZWN0KGxvY19pZCwgJ1doaWZmbGVyJykgfiAnV2hpZmZsZXIgUm9hZCBJbmR1c3RyaWFsIEVzdGF0ZScsICAgICAgCiAgICAgICAgICBzdHJfZGV0ZWN0KGxvY19pZCwgJ0JSRVcnKSB+ICdCcmV3ZXJ5IEZhcm0nLAogICAgICAgICAgc3RyX2RldGVjdChsb2NfaWQsICdVRUEnKSB+ICdVRUEgY2FtcHVzJywKICAgICAgICAgIHN0cl9kZXRlY3QobG9jX2lkLCAnQkNQJykgfiAnQnJvYWRsYW5kIENvdW50cnkgUGFyaycsCiAgICAgICAgICBzdHJfZGV0ZWN0KGxvY19pZCwgJ0NhcnJvdyBSb2FkJykgfiAnQ2Fycm93IFJvYWQnLAogICAgICAgICAgc3RyX2RldGVjdChsb2NfaWQsICdMaXZlcm1lcmUnKSB+ICdMaXZlcm1lcmUnLAogICAgICAgICAgICAgICAgICAgIFRSVUUgfiBsb2NfaWQpKSAlPiUgZ3JvdXBfYnkobG9jX2lkKSAlPiUgICBkcGx5cjo6c3VtbWFyaXNlKFRvdGFsID0gbigpKQpkYXRhMyA8LSBkYXRhMyAlPiUgYXJyYW5nZSgtVG90YWwpIAoKZGF0YTNfNSA8LSBkYXRhICU+JSBmaWx0ZXIoeWVhciA9PSAyMDIzKSAlPiUgbXV0YXRlKHJlY29yZF90eXBlMiA9IGNhc2Vfd2hlbihyZWNvcmRfdHlwZSA9PSAnTicgfiAnTmV3JywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWNvcmRfdHlwZSA9PSAnUycgfiAnUmVlbmNvdW50ZXJzJyksIGxvY19pZCA9IGNhc2Vfd2hlbihzdHJfZGV0ZWN0KGxvY19pZCwgJ0NoYXJ0ZXIgV29vZCcpIH4gJ0NoYXJ0ZXIgV29vZCcsCiAgICAgICAgICBzdHJfZGV0ZWN0KGxvY19pZCwgJ0pheScpIH4gJ0NoYXJ0ZXIgV29vZCcsCiAgICAgICAgICBzdHJfZGV0ZWN0KGxvY19pZCwgJ093bCBCb3ggMScpIH4gJ0NoYXJ0ZXIgV29vZCcsCiAgICAgICAgICBzdHJfZGV0ZWN0KGxvY19pZCwgJ1dlYXRoZXJieScpIH4gJ0NoYXJ0ZXIgV29vZCcsCiAgICAgICAgICBzdHJfZGV0ZWN0KGxvY19pZCwgJ1doaWZmbGVyJykgfiAnV2hpZmZsZXIgUm9hZCBJbmR1c3RyaWFsIEVzdGF0ZScsICAgICAgCiAgICAgICAgICBzdHJfZGV0ZWN0KGxvY19pZCwgJ0JSRVcnKSB+ICdCcmV3ZXJ5IEZhcm0nLAogICAgICAgICAgc3RyX2RldGVjdChsb2NfaWQsICdVRUEnKSB+ICdVRUEgY2FtcHVzJywKICAgICAgICAgIHN0cl9kZXRlY3QobG9jX2lkLCAnQkNQJykgfiAnQnJvYWRsYW5kIENvdW50cnkgUGFyaycsCiAgICAgICAgICBzdHJfZGV0ZWN0KGxvY19pZCwgJ0NhcnJvdyBSb2FkJykgfiAnQ2Fycm93IFJvYWQnLAogICAgICAgICAgc3RyX2RldGVjdChsb2NfaWQsICdMaXZlcm1lcmUnKSB+ICdMaXZlcm1lcmUnLAogICAgICAgICAgICAgICAgICAgIFRSVUUgfiBsb2NfaWQpKSAlPiUgZ3JvdXBfYnkobG9jX2lkLCByZWNvcmRfdHlwZTIpICU+JSAgIGRwbHlyOjpzdW1tYXJpc2UoVG90YWwgPSBuKCkpCmRhdGEzXzUgPC0gZGF0YTNfNSAlPiUgZmlsdGVyKGxvY19pZCAlaW4lIGRhdGEzW2MoMTo1KSxdJGxvY19pZCkKZGF0YTNfNSRyZWNvcmRfdHlwZTIgPC0gZmFjdG9yKGRhdGEzXzUkcmVjb3JkX3R5cGUyLCBsZXZlbHM9YygnUmVlbmNvdW50ZXJzJywnTmV3JykpCmBgYAoKIyMjIFJpbmdpbmcgc2l0ZXMKClRoaXMgeWVhciB3ZSBoYWQgcmVjb3JkcyBmcm9tIGFib3V0IGByIG5yb3coZGF0YTMpYCBzaXRlcywgYnV0IHRoZSB2YXN0IG1ham9yaXR5IG9mIHJlY29yZHMgY29tZSBmcm9tIEJyZXdlcnkgRmFybSBhbmQgYSBoYW5kZnVsIG9mIG90aGVyIHNpdGVzLiBCcmV3ZXJ5IEZhcm0gaXMgKG5vIHN1cnByaXNlKSBmYXJtbGFuZCwgQ2hhcnRlciBXb29kICYgVUVBIENhbXB1cyBhcmUgcHJpbWFyaWx5IGZlZWRlciBzaXRlcyB3aXRoIG5lc3Rib3hlcy4KCmBgYHtyIGVjaG89RkFMU0UsIGZpZy5hbGlnbj0nY2VudGVyJ30KZ2dwbG90KGRhdGEzXzUsIGFlcyh4PXJlb3JkZXIobG9jX2lkLCAtVG90YWwpLCB5PVRvdGFsLCBmaWxsPXJlY29yZF90eXBlMikpICsKICBnZW9tX2JhcihzdGF0PSdpZGVudGl0eScpICsKICB0aGVtZV9idygpICsKICBzY2FsZV95X2NvbnRpbnVvdXMoYnJlYWtzPXNlcSgwLCA3MDAwLCAxMDAwKSkgKwogIGxhYnMoeT0nUmVjb3JkcycsIHRpdGxlID0gJzIwMjMgdG9wIDUgc2l0ZXMnLCBzdWJ0aXRsZSA9IHBhc3RlMChyb3VuZChzdW0oZGF0YTNfNSRUb3RhbCkvbnJvdyhkYXRhW2RhdGEkeWVhcj09MjAyMyxdKSoxMDAsIDEpLCclIG9mIDIwMjMgcmVjb3JkcycpKSArCiAgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gJ3JpZ2h0JywgYXhpcy50aXRsZS54ID0gZWxlbWVudF9ibGFuaygpLCBsZWdlbmQudGl0bGUgPSBlbGVtZW50X2JsYW5rKCksIGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGFuZ2xlPTkwKSkKYGBgCgojIyMgQ29sb3VyIFJpbmdpbmcgUHJvamVjdHMKClRoZSBncm91cCBjb250aW51ZWQgd2l0aCAyIGNvbG91ci1yaW5naW5nIHByb2plY3RzIHRoaXMgeWVhciB0byBpbXByb3ZlIG9uIHRoZSBzY2llbnRpZmljIG91dHB1dHMgb2Ygb3VyIHdvcmsgKCoqTXV0ZSBTd2FuIGFuZCBCbGFjay1oZWFkZWQgR3VsbCoqKS4gVGhlIG1vc3QgcHJvbGlmaWMgb2YgdGhlc2UgcHJvamVjdHMgY29udGludWVzIHRvIGJlIHRoZSBOb3J3aWNoIFN3YW4gUHJvamVjdCwgd2hpY2ggaGFzIHNlZW4gdXMgY29sb3VyIHJpbmcgYW5vdGhlciAqKjMzKiogTXV0ZSBTd2FucyBhY3Jvc3MgTm9yd2ljaCBhbmQgZ2VuZXJhdGUgKio1OTgqKiBzaWdodGluZ3MgdGhpcyB5ZWFyLiBXZSBoYXZlIGFsc28gaGFkIHNvbWUgc3VjY2VzcyB3aXRoIEJsYWNrLWhlYWRlZCBHdWxscyB0aGlzIHllYXIgd2l0aCAqKjkqKiBjb2xvdXItcmluZ2VkLCBhbmQgKiozODgqKiBzaWdodGluZ3MuIFBsZWFzZSBrZWVwIGFuIGV5ZSBvdXQgZm9yIGFueSBjb2xvdXItcmluZ2VkIGJpcmRzIGFuZCByZXBvcnQgc2lnaHRpbmdzLCBob3dldmVyIG1lbmlhbCB5b3UgdGhpbmsgdGhleSBtYXkgYmUhCgoqKlN3YW4gc2lnaHRpbmdzIGNhbiBiZSByZXBvcnRlZCBhdDoqKiBodHRwczovL3N0ZXBoZW52aWNrZXJzLnNoaW55YXBwcy5pby9zd2Fuc3ViYXBwLwoKKipCbGFjay1oZWFkZWQgR3VsbCwgQmFybmFjbGUgR29vc2UsIEdyZXlsYWcgR29vc2UsIE1vb3JoZW4sICYgQ29vdCBzaWdodGluZ3MgY2FuIGJlIHJlcG9ydGVkIGF0OioqIGh0dHBzOi8vd2F0ZXJiaXJkY29sb3VybWFya2luZy5zaGlueWFwcHMuaW8vc2lnaHRpbmdzMi8KCjIwMjMgU3dhbiBtb3ZlbWVudHM6IAoKMjAyMyBCbGFjay1oZWFkZWQgR3VsbCBtb3ZlbWVudHM6CgojIyMgQ29udHJvbHMgYW5kIFJlY292ZXJpZXMKCkJpcmRzIHdlIGVuY291bnRlcmVkIGhhdmUgZ29uZSwgb3IgaGF2ZSBjb21lIGZyb20sIGEgbmljZSBzcHJlYWQgb2Ygc2l0ZXMgdGhpcyB5ZWFyOgoKIyMjIEhpZ2hsaWdodHMKCiogVGhyZWUgTWlzdGxlIFRocnVzaCBuZXN0cyBhbmQgbmluZSBjaGlja3MgcmluZ2VkIHRoaXMgeWVhciB3YXMgYSBncmVhdCBoYXVsLCBhbGwgZnJvbSBDaGFydGVyIFdvb2QKCk1hbnkgdGhhbmtzIHRvIGFsbCBVRUFSRyBtZW1iZXJzIHRoYXQgaGVscGVkIG91dCB0aGlzIHllYXIsIHdpdGggcGFydGljdWxhciB0aGFua3MgdG8gb3VyIGdyb3VwIGxlYWRlciBQcm9mZXNzb3IgSWFpbiBCYXJyLiBIZXJlJ3MgaG9waW5nIGZvciBhIGdyZWF0IHllYXIgb2YgcmluZ2luZyBpbiAyMDI0IQ==