Indkomst


Personindkomst


INXPI302_raw <- 
  statgl_url("INXPI302", lang = language) %>% 
  statgl_fetch(
    unit              = 0,
    "place of birth"  = px_all(),
    "income interval" = px_all(),
    time              = px_top(),
    .col_code         = TRUE
  ) %>% 
  as_tibble()

INXPI302 <- 
  INXPI302_raw %>% 
  mutate(
    `place of birth`  = `place of birth` %>% fct_inorder,
    `income interval` = `income interval` %>% fct_inorder
  ) %>% 
  spread(`place of birth`, value) %>% 
  unite(combi, unit, time, sep = ", ") %>%
  mutate_if(is.integer, ~replace(., is.na(.), 0))
  

INXPI302 %>% 
  select(-combi) %>% 
  rename(" " = 1) %>% 
  statgl_table(replace_0s = TRUE) %>% 
  pack_rows(index = INXPI302[["combi"]] %>% table()) %>% 
  row_spec(1, bold = TRUE)
I alt Født i Grønland Født uden for Grønland
Personer i gruppen (antal), 2022
Alle 42.703 38.138 4.565
50.000 kr. eller mindre 5.161 4.504 657
50.001 - 100.000 kr. 4.043 3.910 133
100.001 - 200.000 kr. 10.931 10.515 416
200.001 - 300.000 kr. 7.249 6.771 478
300.001 - 400.000 kr. 5.723 5.112 611
400.001 - 500.000 kr. 4.004 3.416 588
500.001 - 600.000 kr. 2.216 1.728 488
600.001 - 700.000 kr. 1.200 850 350
700.001 - 800.000 kr. 679 453 226
800.001 - 900.000 kr. 382 236 146
900.001 - 1.000.000 kr. 269 170 99
Mere end 1.000.000 kr. 846 473 373


Se Statistikbankens tabel: INXPI302

INXPI501_raw <- 
  statgl_url("INXPI501", lang = language) %>% 
  statgl_fetch(
    unit             = px_all(),
    time             = px_top(),
    "type of income" = px_all(),
    .col_code        = TRUE
  ) %>% 
  as_tibble()

INXPI501 <- 
  INXPI501_raw %>% 
  mutate(
    unit             = unit %>% fct_inorder,
    `type of income` = `type of income` %>% fct_inorder
  ) %>% 
  spread(unit, value)

INXPI501 %>% 
  select(-time) %>% 
  rename(" " = 1) %>% 
  statgl_table() %>% 
  pack_rows(index = INXPI501[["time"]] %>% table())
Nominel indkomst Realindkomst
2022
Indkomst i alt før skat 279.543 234.250
Skattepligtig indkomst 269.246 225.621
Disponibel indkomst 180.011 150.844


Se Statistikbankens tabel: INXPI501

Indkomstulighed
INXIU101_raw <- 
  statgl_url("INXIU101", lang = language) %>%
  statgl_fetch(
    indicator = px_all(),
    time      = px_top(5),
    .col_code = TRUE
  ) %>% 
  as_tibble()

INXIU101 <- 
  INXIU101_raw %>% 
  mutate(
    indicator = indicator %>% fct_inorder,
    time = time %>% fct_inorder %>% fct_rev()
  ) %>% 
  spread(time, value)

INXIU101 %>% 
  rename(" " = 1) %>% 
  statgl_table()
2022 2021 2020 2019 2018
Gini-koefficient 34,5 34,0 34,9 34,6 34,9
S80/20 5,5 5,3 5,5 5,3 5,4
Relativ fattigdom. 40 pct.-grænse 7,6 6,9 7,1 6,4 6,5
Relativ fattigdom. 50 pct.-grænse 12,0 11,6 11,4 10,5 10,5
Relativ fattigdom. 60 pct.-grænse 18,4 17,8 17,9 16,8 16,4


Se Statistikbankens tabel: INXIU101

Skattestatistik
INXSS101_raw <- 
  statgl_url("INXSS101", lang = language) %>%
  statgl_fetch(
    "tax municipality" = px_all(),
    unit               = px_all(),
    time               = px_top(),
    .col_code          = TRUE
  ) %>% 
  as_tibble()

INXSS101 <- 
  INXSS101_raw %>% 
  filter(value != "NA") %>% 
  mutate(
    unit               = unit %>% fct_inorder,
    `tax municipality` = `tax municipality` %>% fct_inorder
  ) %>% 
  spread(unit, value)

INXSS101 %>% 
  select(-time) %>% 
  rename(" " = 1) %>% 
  statgl_table() %>% 
  pack_rows(index = INXSS101[["time"]] %>% table()) %>% 
  row_spec(1, bold = TRUE)
Skattepligtige personer (antal) Samlet skattepligtig indkomst (mio. kr.) Samlet indkomstskat (mio. kr.)
2022
Hele landet 49.382 13.392 4.825
Kommune Kujalleq 5.328 1.180 419
Kommuneqarfik Sermersooq 21.472 6.804 2.493
Qeqqata Kommunia 7.837 1.983 697
Kommune Qeqertalik 5.126 1.082 379
Avannaata Kommunia 9.126 2.049 737
Udenfor kommunal inddeling 502 294 100


Se Statistikbankens tabel: INXSS101


Sidst opdateret: 17. april 2024
LS0tDQpwYXJhbXM6DQogIGxhbmc6ICJkYSINCm91dHB1dDoNCiAgc3RhdGdsOjpzdGF0Z2xfcmVwb3J0Og0KICAgIGNvZGVfZG93bmxvYWQ6IHRydWUNCiAgICBjb2RlX2ZvbGRpbmc6IGhpZGUNCmVkaXRvcl9vcHRpb25zOiANCiAgY2h1bmtfb3V0cHV0X3R5cGU6IGNvbnNvbGUNCi0tLQ0KDQpgYGB7ciBzZXR1cCwgaW5jbHVkZT1GQUxTRX0NCg0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KA0KCWVjaG8gICAgPSBUUlVFLA0KCW1lc3NhZ2UgPSBGQUxTRSwNCgl3YXJuaW5nID0gRkFMU0UsDQoJY2xhc3Mub3V0cHV0ID0gInNjcm9sbC0xMDAiDQopDQoNCmxpYnJhcnkoInRpZHl2ZXJzZSIpDQpsaWJyYXJ5KCJzdGF0Z2wiKQ0KbGlicmFyeSgia2FibGVFeHRyYSIpDQpsaWJyYXJ5KCJsdWJyaWRhdGUiKQ0KbGlicmFyeSgieWFtbCIpDQoNCmxhbmd1YWdlICA8LSBwYXJhbXMkbGFuZw0Kb3B0aW9uICAgIDwtIHBhc3RlMCgiP2xhbmc9IiwgbGFuZ3VhZ2UsICImc2VsZWN0IikNCmxvZ28gICAgICA8LSBwYXN0ZTAoZ2V0d2QoKSwiL2FkZC9sb2dvLmdpZiIpDQp0eHQgICAgICAgPC0gcmVhZF95YW1sKHBhc3RlMChnZXR3ZCgpLCAiL2FkZC90eHQueW1sIiksIGZpbGVFbmNvZGluZyA9ICJJU08tODg1OS0xIikNCnNvdXJjZSAgICA8LSB0eHQkc291cmNlW2xhbmd1YWdlXSAlPiUgdW5saXN0KCkNCg0KeGFyaW5nYW5FeHRyYTo6dXNlX2NsaXBib2FyZCgpDQoNCmBgYA0KDQpgYGB7Y3NzLCBlY2hvID0gRkFMU0V9DQoNCi5hY2NvcmRpb24gew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTE5OTAwOw0KICBjb2xvcjogd2hpdGU7DQogIGN1cnNvcjogcG9pbnRlcjsNCiAgcGFkZGluZzogMThweDsNCiAgd2lkdGg6IDEwMCU7DQogIGJvcmRlcjogbm9uZTsNCiAgYm9yZGVyLXJhZGl1czogNXB4Ow0KICB0ZXh0LWFsaWduOiBsZWZ0Ow0KICBvdXRsaW5lOiBub25lOw0KICBmb250LXNpemU6IDE1cHg7DQogIHRyYW5zaXRpb246IDAuNHM7DQp9DQoNCi5hY3RpdmUsIC5hY2NvcmRpb246aG92ZXIgew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjk3MjQyOw0KfQ0KDQouYWNjb3JkaW9uOmFmdGVyIHsNCiAgY29udGVudDogJ1wwMDJCJzsNCiAgY29sb3I6ICM3Nzc7DQogIGZvbnQtd2VpZ2h0OiBib2xkOw0KICBmbG9hdDogcmlnaHQ7DQogIG1hcmdpbi1sZWZ0OiA1cHg7DQp9DQoNCi5hY3RpdmU6YWZ0ZXIgew0KICBjb250ZW50OiAiXDIyMTIiOw0KfQ0KDQoucGFuZWwgew0KICBwYWRkaW5nOiAwcHggNXB4IDBweCA1cHg7DQogIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOw0KICBtYXgtaGVpZ2h0OiAwOw0KICBvdmVyZmxvdzogaGlkZGVuOw0KICB0cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IDAuMnMgZWFzZS1vdXQ7DQp9DQoNCmRldGFpbHMgew0KICB3aWR0aDogMTAwJTsNCn0NCg0KZGV0YWlscyA+IHN1bW1hcnkgew0KICBwYWRkaW5nOiA0cHggMTJweDsNCiAgd2lkdGg6IDEwMCU7DQogIGJhY2tncm91bmQtY29sb3I6ICMwMDdmOTk7DQogIGJvcmRlcjogc29saWQ7DQogIGJvcmRlci1jb2xvcjogd2hpdGU7DQogIGJvcmRlci1yYWRpdXM6IDVweDsNCiAgY3Vyc29yOiBwb2ludGVyOw0KICBmb250LXNpemU6IDE1cHg7DQogIGNvbG9yOiB3aGl0ZTsNCn0NCg0KZGV0YWlsc1tvcGVuXSA+IHN1bW1hcnkgew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFhNDFhOw0KfQ0KDQoNCi50aXRsZSB7DQogIGNvbG9yOiAjMWI1NDYzOw0KICBmb250LXNpemU6IDM2cHg7DQp9DQoNCg0KLnBlcnNvbmVyIHsNCiAgYm94LXNoYWRvdzogM3B4IDNweCA0cHggYmxhY2s7DQogIGJhY2tncm91bmQ6ICMwMDQ0NTk7DQogIHBhZGRpbmctcmlnaHQ6IDE1cHg7DQogIHBhZGRpbmctbGVmdDogMTZweDsNCiAgcGFkZGluZy10b3A6IDAuMXB4Ow0KICBwYWRkaW5nLWJvdHRvbTogMXB4Ow0KICBmb250LXNpemU6IDExcHg7DQogIGNvbG9yOiB3aGl0ZTsNCiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsNCn0NCg0KLsO4a29ub21pIHsNCiAgYm94LXNoYWRvdzogM3B4IDNweCA0cHggYmxhY2s7DQogIGJhY2tncm91bmQ6ICMwMDdGOTk7DQogIHBhZGRpbmctcmlnaHQ6IDE1cHg7DQogIHBhZGRpbmctbGVmdDogMTZweDsNCiAgcGFkZGluZy10b3A6IDFweDsNCiAgcGFkZGluZy1ib3R0b206IDAuMXB4Ow0KICBmb250LXNpemU6IDExcHg7DQogIGNvbG9yOiB3aGl0ZTsNCiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsNCn0NCg0KLnR2w6ZyZ8OlZW5kZSB7DQogIGJveC1zaGFkb3c6IDNweCAzcHggNHB4IGJsYWNrOw0KICBiYWNrZ3JvdW5kOiAjZmFhNDFhOw0KICBwYWRkaW5nLXJpZ2h0OiAxNXB4Ow0KICBwYWRkaW5nLWxlZnQ6IDE2cHg7DQogIHBhZGRpbmctdG9wOiAwLjFweDsNCiAgcGFkZGluZy1ib3R0b206IDFweDsNCiAgZm9udC1zaXplOiAxMXB4Ow0KICBjb2xvcjogd2hpdGU7DQogIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7DQp9DQoNCi5jb250YWluZXIgew0KICB3aWR0aDogaW5oZXJpdDsNCn0NCg0KLnNjcm9sbC0xMDAgew0KICBtYXgtaGVpZ2h0OiAxMDA7DQogIG92ZXJmbG93LXk6IGF1dG87DQogIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7DQp9DQoNCg0KcHJlIHsNCiAgbWF4LWhlaWdodDogMzAwcHg7DQogIG92ZXJmbG93LXk6IGF1dG87DQp9DQoNCnByZVtjbGFzc10gew0KICBtYXgtaGVpZ2h0OiAzMDBweDsNCn0NCg0KYGBgDQoNCjxicj4NCjxicj4NCg0KPGNlbnRlcj4NCg0KLS0tDQogDQojIFtgciB0eHQkSU4kdGl0bGVbbGFuZ3VhZ2VdYF17LnRpdGxlfQ0KIA0KLS0tDQo8L2NlbnRlcj4NCg0KPGRldGFpbHM+IDxzdW1tYXJ5PiBgciB0eHQkSU4kc3ViMVtsYW5ndWFnZV1gIDwvc3VtbWFyeT4gDQo8YnI+DQogDQoNCjxidXR0b24gY2xhc3M9ImFjY29yZGlvbiI+IGByIHBhc3RlMCgiKipUYWJlbCAxOiAqKiIsIHN0YXRnbF9tZXRhKHN0YXRnbF91cmwoIklOWFBJMzAyIiwgbGFuZyA9IGxhbmd1YWdlKSlbMV0kdGl0bGUpIGAgPC9idXR0b24+IDxkaXYgY2xhc3M9InBhbmVsIj4NCg0KYGBge3IgSU5YUEkzMDJ9DQoNCklOWFBJMzAyX3JhdyA8LSANCiAgc3RhdGdsX3VybCgiSU5YUEkzMDIiLCBsYW5nID0gbGFuZ3VhZ2UpICU+JSANCiAgc3RhdGdsX2ZldGNoKA0KICAgIHVuaXQgICAgICAgICAgICAgID0gMCwNCiAgICAicGxhY2Ugb2YgYmlydGgiICA9IHB4X2FsbCgpLA0KICAgICJpbmNvbWUgaW50ZXJ2YWwiID0gcHhfYWxsKCksDQogICAgdGltZSAgICAgICAgICAgICAgPSBweF90b3AoKSwNCiAgICAuY29sX2NvZGUgICAgICAgICA9IFRSVUUNCiAgKSAlPiUgDQogIGFzX3RpYmJsZSgpDQoNCklOWFBJMzAyIDwtIA0KICBJTlhQSTMwMl9yYXcgJT4lIA0KICBtdXRhdGUoDQogICAgYHBsYWNlIG9mIGJpcnRoYCAgPSBgcGxhY2Ugb2YgYmlydGhgICU+JSBmY3RfaW5vcmRlciwNCiAgICBgaW5jb21lIGludGVydmFsYCA9IGBpbmNvbWUgaW50ZXJ2YWxgICU+JSBmY3RfaW5vcmRlcg0KICApICU+JSANCiAgc3ByZWFkKGBwbGFjZSBvZiBiaXJ0aGAsIHZhbHVlKSAlPiUgDQogIHVuaXRlKGNvbWJpLCB1bml0LCB0aW1lLCBzZXAgPSAiLCAiKSAlPiUNCiAgbXV0YXRlX2lmKGlzLmludGVnZXIsIH5yZXBsYWNlKC4sIGlzLm5hKC4pLCAwKSkNCiAgDQoNCklOWFBJMzAyICU+JSANCiAgc2VsZWN0KC1jb21iaSkgJT4lIA0KICByZW5hbWUoIiAiID0gMSkgJT4lIA0KICBzdGF0Z2xfdGFibGUocmVwbGFjZV8wcyA9IFRSVUUpICU+JSANCiAgcGFja19yb3dzKGluZGV4ID0gSU5YUEkzMDJbWyJjb21iaSJdXSAlPiUgdGFibGUoKSkgJT4lIA0KICByb3dfc3BlYygxLCBib2xkID0gVFJVRSkNCg0KYGBgDQo8YnI+DQpbIVtdKGByIGxvZ29gKXt3aWR0aD00MH1gciBwYXN0ZShzb3VyY2UsICJJTlhQSTMwMiIpYF0oYHIgcGFzdGUwKCJodHRwczovL2Jhbmsuc3RhdC5nbDo0NDMvc3EvN2QyMzUxNTUtZDdhZS00ODRjLTljNWUtZDIwNDg1NDUwN2ZiIiwgb3B0aW9uKWApe3RhcmdldD0iX2JsYW5rIn0NCjwvZGl2PiANCg0KDQoNCg0KDQo8YnV0dG9uIGNsYXNzPSJhY2NvcmRpb24iPiBgciBwYXN0ZTAoIioqVGFiZWwgMjogKioiLCBzdGF0Z2xfbWV0YShzdGF0Z2xfdXJsKCJJTlhQSTUwMSIsIGxhbmcgPSBsYW5ndWFnZSkpWzFdJHRpdGxlKSBgIDwvYnV0dG9uPiA8ZGl2IGNsYXNzPSJwYW5lbCI+DQoNCmBgYHtyIElOWFBJNTAxfQ0KDQpJTlhQSTUwMV9yYXcgPC0gDQogIHN0YXRnbF91cmwoIklOWFBJNTAxIiwgbGFuZyA9IGxhbmd1YWdlKSAlPiUgDQogIHN0YXRnbF9mZXRjaCgNCiAgICB1bml0ICAgICAgICAgICAgID0gcHhfYWxsKCksDQogICAgdGltZSAgICAgICAgICAgICA9IHB4X3RvcCgpLA0KICAgICJ0eXBlIG9mIGluY29tZSIgPSBweF9hbGwoKSwNCiAgICAuY29sX2NvZGUgICAgICAgID0gVFJVRQ0KICApICU+JSANCiAgYXNfdGliYmxlKCkNCg0KSU5YUEk1MDEgPC0gDQogIElOWFBJNTAxX3JhdyAlPiUgDQogIG11dGF0ZSgNCiAgICB1bml0ICAgICAgICAgICAgID0gdW5pdCAlPiUgZmN0X2lub3JkZXIsDQogICAgYHR5cGUgb2YgaW5jb21lYCA9IGB0eXBlIG9mIGluY29tZWAgJT4lIGZjdF9pbm9yZGVyDQogICkgJT4lIA0KICBzcHJlYWQodW5pdCwgdmFsdWUpDQoNCklOWFBJNTAxICU+JSANCiAgc2VsZWN0KC10aW1lKSAlPiUgDQogIHJlbmFtZSgiICIgPSAxKSAlPiUgDQogIHN0YXRnbF90YWJsZSgpICU+JSANCiAgcGFja19yb3dzKGluZGV4ID0gSU5YUEk1MDFbWyJ0aW1lIl1dICU+JSB0YWJsZSgpKQ0KDQpgYGANCjxicj4NClshW10oYHIgbG9nb2Ape3dpZHRoPTQwfWByIHBhc3RlKHNvdXJjZSwgIklOWFBJNTAxIilgXShgciBwYXN0ZTAoImh0dHBzOi8vYmFuay5zdGF0LmdsOjQ0My9zcS9lNDEzYWRkOC0xYzE3LTQ5ZGMtOWQxOS1hMTBjODRlYTQ1YTIiLCBvcHRpb24pYCl7dGFyZ2V0PSJfYmxhbmsifQ0KPC9kaXY+IA0KDQoNCjwvZGV0YWlscz4NCg0KDQoNCjxkZXRhaWxzPiA8c3VtbWFyeT4gYHIgdHh0JElOJHN1YjNbbGFuZ3VhZ2VdYCA8L3N1bW1hcnk+IA0KPGJyPg0KPGJ1dHRvbiBjbGFzcz0iYWNjb3JkaW9uIj4gYHIgcGFzdGUwKCIqKlRhYmVsIDM6ICoqIiwgc3RhdGdsX21ldGEoc3RhdGdsX3VybCgiSU5YSVUxMDEiLCBsYW5nID0gbGFuZ3VhZ2UpKVsxXSR0aXRsZSkgYCA8L2J1dHRvbj4gPGRpdiBjbGFzcz0icGFuZWwiPg0KDQpgYGB7ciBJTlhJVTEwMX0NCg0KSU5YSVUxMDFfcmF3IDwtIA0KICBzdGF0Z2xfdXJsKCJJTlhJVTEwMSIsIGxhbmcgPSBsYW5ndWFnZSkgJT4lDQogIHN0YXRnbF9mZXRjaCgNCiAgICBpbmRpY2F0b3IgPSBweF9hbGwoKSwNCiAgICB0aW1lICAgICAgPSBweF90b3AoNSksDQogICAgLmNvbF9jb2RlID0gVFJVRQ0KICApICU+JSANCiAgYXNfdGliYmxlKCkNCg0KSU5YSVUxMDEgPC0gDQogIElOWElVMTAxX3JhdyAlPiUgDQogIG11dGF0ZSgNCiAgICBpbmRpY2F0b3IgPSBpbmRpY2F0b3IgJT4lIGZjdF9pbm9yZGVyLA0KICAgIHRpbWUgPSB0aW1lICU+JSBmY3RfaW5vcmRlciAlPiUgZmN0X3JldigpDQogICkgJT4lIA0KICBzcHJlYWQodGltZSwgdmFsdWUpDQoNCklOWElVMTAxICU+JSANCiAgcmVuYW1lKCIgIiA9IDEpICU+JSANCiAgc3RhdGdsX3RhYmxlKCkNCg0KYGBgDQo8YnI+DQpbIVtdKGByIGxvZ29gKXt3aWR0aD00MH1gciBwYXN0ZShzb3VyY2UsICJJTlhJVTEwMSIpYF0oYHIgcGFzdGUwKCJodHRwczovL2Jhbmsuc3RhdC5nbDo0NDMvc3EvZWNjMmY2ZTEtMzA2MC00NTk3LWI1NzEtZTU3NDEyOGYxMGU3Iiwgb3B0aW9uKWApe3RhcmdldD0iX2JsYW5rIn0NCjwvZGl2PiANCjwvZGV0YWlscz4gDQoNCjxkZXRhaWxzPiA8c3VtbWFyeT4gYHIgdHh0JElOJHN1YjRbbGFuZ3VhZ2VdYCA8L3N1bW1hcnk+DQo8YnI+DQo8YnV0dG9uIGNsYXNzPSJhY2NvcmRpb24iPiBgciAnKlRhYmVsIDQ6KiB7c3RhdGdsX21ldGEoZ2x1ZTo6Z2x1ZSgiaHR0cHM6Ly9iYW5rLnN0YXQuZ2wvYXBpL3YxL3tsYW5ndWFnZX0vR3JlZW5sYW5kL0lOL0lONTAvSU5YU1MxMDEucHgiKSkgfD4gcGx1Y2soInRpdGxlIil9JyB8PiBnbHVlOjpnbHVlKCkgYCA8L2J1dHRvbj4gPGRpdiBjbGFzcz0icGFuZWwiPg0KDQpgYGB7ciBBUlhMRUQ0fQ0KDQpJTlhTUzEwMV9yYXcgPC0gDQogIHN0YXRnbF91cmwoIklOWFNTMTAxIiwgbGFuZyA9IGxhbmd1YWdlKSAlPiUNCiAgc3RhdGdsX2ZldGNoKA0KICAgICJ0YXggbXVuaWNpcGFsaXR5IiA9IHB4X2FsbCgpLA0KICAgIHVuaXQgICAgICAgICAgICAgICA9IHB4X2FsbCgpLA0KICAgIHRpbWUgICAgICAgICAgICAgICA9IHB4X3RvcCgpLA0KICAgIC5jb2xfY29kZSAgICAgICAgICA9IFRSVUUNCiAgKSAlPiUgDQogIGFzX3RpYmJsZSgpDQoNCklOWFNTMTAxIDwtIA0KICBJTlhTUzEwMV9yYXcgJT4lIA0KICBmaWx0ZXIodmFsdWUgIT0gIk5BIikgJT4lIA0KICBtdXRhdGUoDQogICAgdW5pdCAgICAgICAgICAgICAgID0gdW5pdCAlPiUgZmN0X2lub3JkZXIsDQogICAgYHRheCBtdW5pY2lwYWxpdHlgID0gYHRheCBtdW5pY2lwYWxpdHlgICU+JSBmY3RfaW5vcmRlcg0KICApICU+JSANCiAgc3ByZWFkKHVuaXQsIHZhbHVlKQ0KDQpJTlhTUzEwMSAlPiUgDQogIHNlbGVjdCgtdGltZSkgJT4lIA0KICByZW5hbWUoIiAiID0gMSkgJT4lIA0KICBzdGF0Z2xfdGFibGUoKSAlPiUgDQogIHBhY2tfcm93cyhpbmRleCA9IElOWFNTMTAxW1sidGltZSJdXSAlPiUgdGFibGUoKSkgJT4lIA0KICByb3dfc3BlYygxLCBib2xkID0gVFJVRSkNCg0KYGBgDQo8YnI+DQpbIVtdKGByIGxvZ29gKXt3aWR0aD00MH1gciBwYXN0ZShzb3VyY2UsICJJTlhTUzEwMSIpYF0oYHIgcGFzdGUwKCJodHRwczovL2Jhbmsuc3RhdC5nbDo0NDMvc3EvM2JiM2U1MmMtODExZS00OGIzLTg3YzItZTc1NjA0MTNmYWM0Iiwgb3B0aW9uKWApe3RhcmdldD0iX2JsYW5rIn0NCjwvZGl2PiANCg0KPC9kZXRhaWxzPiANCg0KDQo8aHIgc3R5bGU9ImJvcmRlcjoxcHggcmlkZ2UgbGlnaHRncmF5Ij4gPC9ocj4NCjxjZW50ZXI+IDxzcGFuIHN0eWxlPSdjb2xvcjojRDNEM0QzOyBmb250LXNpemU6OTAlOyc+IGByIHBhc3RlKHR4dCR1cGRhdGVbbGFuZ3VhZ2VdLCBmb3JtYXQoU3lzLkRhdGUoKSwgIiVkLiAlQiAlWSIpKWAgPC9zcGFuPiA8L2NlbnRlcj4NCg0KDQoNCg0KPHNjcmlwdD4NCnZhciBhY2MgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJhY2NvcmRpb24iKTsNCnZhciBpOw0KDQpmb3IgKGkgPSAwOyBpIDwgYWNjLmxlbmd0aDsgaSsrKSB7DQogIGFjY1tpXS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGZ1bmN0aW9uKCkgew0KICAgIHRoaXMuY2xhc3NMaXN0LnRvZ2dsZSgiYWN0aXZlIik7DQogICAgdmFyIHBhbmVsID0gdGhpcy5uZXh0RWxlbWVudFNpYmxpbmc7DQogICAgaWYgKHBhbmVsLnN0eWxlLm1heEhlaWdodCkgew0KICAgICAgcGFuZWwuc3R5bGUubWF4SGVpZ2h0ID0gbnVsbDsNCiAgICB9IGVsc2Ugew0KICAgICAgcGFuZWwuc3R5bGUubWF4SGVpZ2h0ID0gcGFuZWwuc2Nyb2xsSGVpZ2h0ICsgInB4IjsNCiAgICB9IA0KICB9KTsNCn0NCjwvc2NyaXB0Pg0K