資料源

科技新報 TechNews 2019 薪資調查統計 (回應)

清理資料

欄位名稱換成 “time_stamp”, “gender”, “born”, “working”, “city”, “industry”, “ladder”, “degree”, “department”, “title”, “salary”, “bonus”, “package”

看起來會像這樣

不過其實數據本身還有一些需要清洗的地方,例如:


以上問題,進行簡單的資料過濾和分類, 針對「有些人填寫的是 單位而不是 萬元 單位」-> 我將年薪 > 5000萬 或是月薪大於 1000萬當作無效資料(有太多不是只有多加 4 個零)。

算出來的月薪最大值為 80 萬、年薪最大值為 1600 萬,應該還算合理…但大家都這麼會賺? 其實這些很可能都是極端值,或者白話一點,就是極少數的人能達到的境界。 我們來看看整體月薪、年薪的分佈狀況:

我們從數據面來看一下數據的集中、離散程度: 發現整體資料平均落在 7.8 萬,中位數也有 6 萬的水平,且最高又可達到月薪 80 萬的程度,可見韓市長上任,除了勞心勞力希望高雄市民發大財外,同時鄉民也受到韓市長頂上金光感召,欣欣向榮。

   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  0.000   4.600   6.000   7.983   9.000 300.000 

我們再來看一下整體年薪的分佈:

從數據證明,鄉民都是其實並沒有人人年薪三百萬的跡象。

   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
    0.0    70.0    97.8   126.6   150.0  1600.0 

接著我們可以從幾個維度下手,去看一下,性別、學歷、工作時間、產業如何反應薪資。 在此之前,我們還是要將資料做一定程度的清洗和重新貼標:

我們先從最簡單沒有啥爭議的學歷開始好了:

各行各業薪資水平(鄉民的標準)

根據上述的分類用 treemap 呈現結果,方塊大小表樣本數,可發現硬體的樣本數最多,又軟、硬體加起來佔超過 5 成的資料點;顏色的部分表平均月薪,越趨近藍色平均月薪越高,可看到醫療業平均月薪非常高,不過這可能是因為「醫生」拉高整體平均。

為了看更清楚各產業的薪資變異程度,用盒鬚圖呈現,又將各產業與各年資拆分開看,果不其然,醫療業的變異最大,而且隨著年資越深差距越大,變異更大,因為「醫生」一職薪水可以翻倍跳,但其他醫療業如公務員般基本上就是線性成長而已。


到底哪裡是天龍國:新竹市 vs 台北市

每次都被酸台北天龍國,但如果真實以平均年收入來看的話,新竹市(竹科)還是無論在各年資,都屌打台北市啊!


性別差異

另外性別在工作權上是否平等,這個議題也是持續的熱議題(參見:性別差距!世界經濟論壇報告:實現男女「同工同酬」,竟要再等100年) 我們就來看看鄉民的世界是否也是和世界趨勢一致,

先來看看排除產業和年資的影響,整理的性別在收入上的整體表現:

性別要討論的議題和面向可以很多,從數據面來看,排除所有年資、產業的差異而言,確實性別在薪資上確實有顯著的差異(非統計上的檢定)。

有人可能會說,「噢!這有很大的樣本偏誤,鄉民的世界和現實世界不同滴!裡面都是宅男,女性樣本那麼少。」確實有這個可能,而且女性也許因為性別角色,往往放棄工作照顧家裡的起居比例比男性高,所以高年資的女性比例可能很少,那就來驗證一下看看樣本的分佈吧!

若把上圖的男性標籤移掉,更可以明顯看出女性隨著工作年資樣本數遞減;反觀男性在資淺和資深的樣本數比例幾乎一樣,這難道就能說明,男性因為高年資的樣本數比例高,進而導致薪資比被拉高嗎?

那我們就用各個工作經歷的性別平均收入差異,結果….

老實說我也不知道怎麼解釋這個結果了,如果這不是同工不同酬,什麼才是?

性別收入差異一直是長期且無解(或無人去解決,還是根本不需要解決?)的問題,這不只是發生在台灣,各國都一樣。如果大家有任何不同想法都歡迎討論,因為我真心希望我是錯的 orz

LS0tCnRpdGxlOiAi56eR5oqA5paw5aCxIFRlY2hOZXdzIDIwMTkg6Jaq6LOH6Kq/5p+lIgphdXRob3I6IFlEIEh1YW5nCmRhdGU6IDIwMTktMDctMjEKb3V0cHV0OgogIGh0bWxfbm90ZWJvb2s6CiAgICBmaWdfd2lkdGg6IDEwCiAgICB0aGVtZTogcGFwZXIKICBodG1sX2RvY3VtZW50OgogICAgZGZfcHJpbnQ6IHBhZ2VkCiAgICBjb2RlX2ZvbGRpbmc6ICdoaWRlJwotLS0KCjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Cgpib2R5eyAvKiBOb3JtYWwgICovCiAgICAgIGZvbnQtc2l6ZTogMThweDsKICB9Cjwvc3R5bGU+CgpgYGB7ciBzZXR1cCwgaW5jbHVkZT1GQUxTRX0Kcm0obGlzdD1scygpKQpnYygpCmxpYnJhcnkoaHR0cik7bGlicmFyeShkYXRhLnRhYmxlKTtsaWJyYXJ5KGRwbHlyKTtsaWJyYXJ5KGpzb25saXRlKTtsaWJyYXJ5KGdvb2dsZXNoZWV0cyk7bGlicmFyeShEVCk7bGlicmFyeShoaWdoY2hhcnRlcik7bGlicmFyeSh0aWR5cikKYGBgCiMjIyDos4fmlpnmupAKW+enkeaKgOaWsOWgsSBUZWNoTmV3cyAyMDE5IOiWquizh+iqv+afpee1seioiCAo5Zue5oeJKV0oaHR0cHM6Ly9kb2NzLmdvb2dsZS5jb20vc3ByZWFkc2hlZXRzL2QvMTRlT1lKemRqanJ4TXFGaThsZmlOTXRBRk90aHM2bWRSQWtjQUtyTTktRGcvZWRpdCNnaWQ9MTU0NjEyMjkyMikKCgpgYGB7ciwgZWNobz0gRiwgaW5jbHVkZT1GQUxTRSwgZWNobz1GQUxTRX0KIyBkYXRhIHNvdXJjZQpiZSA8LSBnc191cmwoImh0dHBzOi8vZG9jcy5nb29nbGUuY29tL3NwcmVhZHNoZWV0cy9kLzE0ZU9ZSnpkampyeE1xRmk4bGZpTk10QUZPdGhzNm1kUkFrY0FLck05LURnL2VkaXQjZ2lkPTE1NDYxMjI5MjIiLGxvb2t1cCA9IEYsdmlzaWJpbGl0eSA9ICJwcml2YXRlIikKc2hlZXROYW1lIDwtIGdzX3dzX2xzKGJlKVsxXQpkdC5zaGVldCA8LSBhcy5kYXRhLnRhYmxlKGdzX3JlYWQoc3M9YmUsIHdzID0gc2hlZXROYW1lLCBza2lwPTIpKQpgYGAKCiMjIyDmuIXnkIbos4fmlpkK5qyE5L2N5ZCN56ix5o+b5oiQICJ0aW1lX3N0YW1wIiwgImdlbmRlciIsICJib3JuIiwgIndvcmtpbmciLCAiY2l0eSIsICJpbmR1c3RyeSIsICJsYWRkZXIiLCAiZGVncmVlIiwgImRlcGFydG1lbnQiLCAidGl0bGUiLCAic2FsYXJ5IiwgImJvbnVzIiwgInBhY2thZ2UiCmBgYHtyLCBpbmNsdWRlPSBGLCBlY2hvID0gRn0KZHQgPC0gZHQuc2hlZXQgJT4lIGBjb2xuYW1lczwtYChjKCJ0aW1lX3N0YW1wIiwiZ2VuZGVyIiwiYm9ybiIsIndvcmtpbmciLCJjaXR5IiwiaW5kdXN0cnkiLCJsYWRkZXIiLCJkZWdyZWUiLCJkZXBhcnRtZW50IiwidGl0bGUiLCJzYWxhcnkiLCJib251cyIsInBhY2thZ2UiKSkKYGBgCgoK55yL6LW35L6G5pyD5YOP6YCZ5qijCmBgYHtyLCBlY2hvPUYsIGluY2x1ZGU9VCwgY29scy5wcmludD02LHJvd3MucHJpbnQ9Nn0KaGVhZChkdCkKYGBgCgrkuI3pgY7lhbblr6bmlbjmk5rmnKzouqvpgoTmnInkuIDkupvpnIDopoHmuIXmtJfnmoTlnLDmlrnvvIzkvovlpoLvvJoKCiog5pyJ5Lqb5Lq65aGr5a+r55qE5pivIF9f5YWDX18g5Zau5L2N6ICM5LiN5pivIF9f6JCs5YWDX18g5Zau5L2NCiog6KGo5Zau5aGr5a+r6YO95piv6Ieq55Sx5qC85byP77yM5omA5Lul6ZyA6KaB6YeN5paw5qiZ57Gk77yaCiAgICAqICLlpKflrbgi44CBIuWkp+WtuOeVoualrSLlhbblr6bmhI/nvqnkuIrnmobmmK8gX+Wkp+WtuF8gCiAgICAqIOaJgOacieeahOeUoualreWkp+WutumDveS4jeWQjOWvq+azle+8jOaJgOS7pemChOaYr+mcgOimgemHjeaWsOWIhumhngoKKioqCgrku6XkuIrllY/poYzvvIzpgLLooYznsKHllq7nmoTos4fmlpnpgY7mv77lkozliIbpoZ7vvIwK6Yed5bCN44CM5pyJ5Lqb5Lq65aGr5a+r55qE5pivIF9f5YWDX18g5Zau5L2N6ICM5LiN5pivIF9f6JCs5YWDX18g5Zau5L2N44CNLT4g5oiR5bCH5bm06JaqID4gNTAwMOiQrCDmiJbmmK/mnIjolqrlpKfmlrwgMTAwMOiQrOeVtuS9nOeEoeaViOizh+aWme+8iOacieWkquWkmuS4jeaYr+WPquacieWkmuWKoCA0IOWAi+mbtu+8ieOAggoK566X5Ye65L6G55qE5pyI6Jaq5pyA5aSn5YC854K6IDgwIOiQrOOAgeW5tOiWquacgOWkp+WAvOeCuiAxNjAwIOiQrO+8jOaHieipsumChOeul+WQiOeQhi4uLuS9huWkp+WutumDvemAmem6vOacg+izuu+8nwrlhbblr6bpgJnkupvlvojlj6/og73pg73mmK/mpbXnq6/lgLzvvIzmiJbogIXnmb3oqbHkuIDpu57vvIzlsLHmmK/mpbXlsJHmlbjnmoTkurrog73pgZTliLDnmoTlooPnlYzjgIIK5oiR5YCR5L6G55yL55yL5pW06auU5pyI6Jaq44CB5bm06Jaq55qE5YiG5L2I54uA5rOB77yaCgpgYGB7ciwgZWNobyA9IEYsIGluY2x1ZGU9IEZ9CmR0IDwtIGR0ICU+JSBmaWx0ZXIocGFja2FnZSA8IDUwMDAsIHNhbGFyeSA8IDEwMDApCm1heChkdCRzYWxhcnkpCm1heChkdCRwYWNrYWdlKQpgYGAKCmBgYHtyLCBlY2hvID0gRn0KaCA8LSBoY2hhcnQoZHQkc2FsYXJ5LCB0eXBlID0gImFyZWEiLCBjb2xvciA9ICIjMDBDOUFCIiwgbmFtZSA9ICLmlbTpq5Tos4fmlpnmnIjolqrliIbkvYgiKQpoCmBgYAoK5oiR5YCR5b6e5pW45pOa6Z2i5L6G55yL5LiA5LiL5pW45pOa55qE6ZuG5Lit44CB6Zui5pWj56iL5bqm77yaCueZvOePvuaVtOmrlOizh+aWmeW5s+Wdh+iQveWcqCA3Ljgg6JCs77yM5Lit5L2N5pW45Lmf5pyJIDYg6JCs55qE5rC05bmz77yM5LiU5pyA6auY5Y+I5Y+v6YGU5Yiw5pyI6JaqIDgwIOiQrOeahOeoi+W6pu+8jOWPr+imi+mfk+W4gumVt+S4iuS7u++8jOmZpOS6huWLnuW/g+WLnuWKm+W4jOacm+mrmOmbhOW4guawkeeZvOWkp+iyoeWklu+8jOWQjOaZgumEieawkeS5n+WPl+WIsOmfk+W4gumVt+mgguS4iumHkeWFieaEn+WPrO+8jOaso+aso+WQkeamruOAggpgYGB7ciwgZWNobyA9IEZ9CnN1bW1hcnkoZHQkc2FsYXJ5KQpgYGAKCioqKgoK5oiR5YCR5YaN5L6G55yL5LiA5LiL5pW06auU5bm06Jaq55qE5YiG5L2I77yaCmBgYHtyLCBlY2hvID0gRn0KaGNoYXJ0KGR0JHBhY2thZ2UsIHR5cGUgPSAiYXJlYSIsIGNvbG9yID0gIiNGRjk0M0QiLCBuYW1lID0gIuaVtOmrlOizh+aWmeW5tOiWquWIhuS9iCIpCmBgYAoKCuW+nuaVuOaTmuitieaYju+8jOmEieawkemDveaYr+WFtuWvpuS4puaykuacieS6uuS6uuW5tOiWquS4ieeZvuiQrOeahOi3oeixoeOAggpgYGB7ciwgZWNobyA9IEZ9CnN1bW1hcnkoZHQkcGFja2FnZSkKYGBgCgoqKioKCuaOpeiRl+aIkeWAkeWPr+S7peW+nuW5vuWAi+e2reW6puS4i+aJi++8jOWOu+eci+S4gOS4i++8jOaAp+WIpeOAgeWtuOatt+OAgeW3peS9nOaZgumWk+OAgeeUoualreWmguS9leWPjeaHieiWquizh+OAggrlnKjmraTkuYvliY3vvIzmiJHlgJHpgoTmmK/opoHlsIfos4fmlpnlgZrkuIDlrprnqIvluqbnmoTmuIXmtJflkozph43mlrDosrzmqJnvvJoKCuaIkeWAkeWFiOW+nuacgOewoeWWruaykuacieWVpeeIreitsOeahOWtuOatt+mWi+Wni+WlveS6hu+8mgoKKiDlrbjmrbfvvJrlj6ropoHlnKjjgIzmnIDpq5jlrbjmrbfjgI3nmoTmrITkvY3lh7rnj77jgIzljZrlo6vjgI0g6YO95a6a576p54K6Kipf5Y2a5aOrXyoq77ybIOWHuuePvuOAjOeiqeWjq+OAjeWwseWumue+qeeCuioqX+eiqeWjq18qKu+8m+WHuuePvuOAjOWkp+WtuOOAjSDlsLHlrprnvqnngroqKl/lpKflrbhfKirvvJvlh7rnj77jgIzpq5jogbfmiJblsIjnp5HmiJbpq5jkuK3jgI0g5bCx5a6a576p54K6Kipf6auY5Lit6IG3Xyoq77yb6YCZ5qij5YiG6aGe55qE57y66bue5piv5aaC5p6c5a+r44CM5aSn5a246IKE5qWt44CN55CG5oeJ5piv6KKr5YiG5Yiw44CM6auY5Lit44CN5L2G5a+m6Zqb5LiK5pyD6KKr5YiG5Yiw44CM5aSn5a2444CN77yM5YW25LuW55qE5oiR5rKS6IiI6Laj5bCx5pyD6KKr6YGO5r++44CCCgoqIOW3peS9nOaZgumWk++8muOAjOeVoualreW+jOW3peS9nOW5vuW5tOOAjemAmeWAi+ashOS9jeWmguaenOaYryAwLTUg5bm0IOWwseeoseeCuuS7gOm6vOmDveS4jeaHgueEtuW+jOW+kuacieS4gOiCoeWCu+WLgSoqX+iPnOmbnl8qKu+8mzYtMTAg5bm054K65aW95YOP5pyJ6bue5YO55YC877yM5L2G5YW25a+m5Lmf5piv5aW05oCn5aCF5by3ICoqX+iCieeJm18qKu+8mzEwIOW5tOS7peS4iueahOWwseaYr+aJk+a7vuWkmuW5tOWPr+iDveaciem7nuaZuuaFp+WSjOe2k+mpl+WPr+S7peWCs+aJv+S9humrlOWKm+S4jeaYr+W+iOWlveeahCoqX+iAgemmrF8qKuOAggoKKiDnlKLmpa3mr5TovIPpurvnhanvvIzkuIDmqKPnsbPppIrnmb7nqK7kurrvvIzkuIDlgIvnlKLmpa3mnInljYPnqK7lr6vms5XvvIzmiYDku6XpgJnpgormr5TovIPmiYvli5XnmoTmlrnlvI/lsIfmrITkvY3jgIzkvaDnmoTlhazlj7jooYzmpa3liKXjgI3pgLLooYzph43mlrDliIbpoZ7lkozosrzmqJnvvIzlpKfoh7TkuIrliIbmiJDkuobku6XkuIvnlKLmpa0KICAgICsgKipf6Luf6auU5qWtXyoq77ya6IiJ5Yeh4oCc57ay6LevfElUfOi7n+mrlHzos4foqIp85Y2a5byIfEludGVybmV0fOmbu+WVhnzmlrDlibV857ay6YCafOmbsuerr3xJT1R85LqS6IGv57ay4oCdCiAgICArICoqX+ehrOmrlOalrV8qKu+8muiIieWHoeKAnOmbu+WtkHzpgJrkv6F86YCa6KiKfOmbu+iFpnxQQ3zljYrlsI7pq5R85pm254mHfOenkeaKgHzlhYnpm7t86Z+M6auUfGljfOS8uuacjeWZqHzpm7vmqZ9857O757Wx5bugfOmdouadv+KAnQogICAgKyAqKl/mnI3li5nmpa1fKirvvJroiInlh6HigJzml4Xlrr985peF6YGKfOmkkOmjsnzpm7bllK5855m+6LKofHJldGFpbHzkuqTpgJp85aSn55y+6YGL6Ly4fOWupOWFp3zoo53kv6586Zu75L+hfOaWh+aVmXzmlZnogbd85peF6KGMfOacjemjvnzms5Xlvot85pWZ6IKyfOemj+WjvXznlJ/lkb185a245qChfOmhp+WVj3zmqqLpqZd86aOv5bqXfOiIquepunzml4XppKh85Luy5LuLfOaIv+S7suKAnQogICAgKyAqKl/phqvnmYLmpa1fKirvvJroiInlh6HigJzphqvnmYJ86Yar55SffOWBpeW6t3znlJ/mioB86Yar6ZmifOmGq+iXpXzkv53lgaV86Yar5LqLfOiXpXzkuK3phqt86Yar5birfGhlYWx0aGNhcmXigJ0KICAgICsgKipf6KO96YCg5qWtXyoq77ya6IiJ5Yeh4oCd5p2Q5paZfOijvemAoHzpi7zpkLV85qmf5qKwfOWMluW3pXzljJblrbh857Sh57mUfOW7uueviXznjrvnkoN85YKz55SifOmbu+axoHzljbDliLd855Kw5belfOW3peeoi3znn7PljJZ855+z5rK5fOmAoOiIuXzoqK3lgpl85Zyf5pyofOiIqnzog73mupB86Lyq6IOOfOWKoOW3pXzou4p854ef5bu6fOWutumbu3zmtbfpgYt85aGR6IagfOmei+KAnAogICAgKyAqKl/ph5Hono3mpa1fKirvvJroiInlh6HigJzph5Hono185oqV5L+hfOaKlemhp3zpioDooYx85L+d6ZqqfOitieWIuHxiYW5rfOacn+iyqHzmnIPoqIh86KiY5biz4oCdCiAgICArICoqX+WFrOmDqOmWgF8qKu+8muiIieWHoeKAnOaUv+W6nHzlhazlrrbmqZ/pl5x86KGM5pS/fOWFrOWLmeWToXzlhazmlZl85Lit56eR6ZmifOiHquS+huawtHzlhaznh5/igJ0KICAgICsgKipf5aqS6auU5qWtXyoq77ya6IiJ5Yeh4oCc5aqS6auUfOW7o+WRinzlhazpl5x86Zu76KaW5Y+wfOaVuOS9jXzmtLvli5V85YKz5pKt4oCdCiAgICArICoqX+ihjOmKt+alrV8qKu+8muiIieWHoeKAneihjOmKt3xGTUNHfOa2iOiyu+WTgeKAnAogICAgKyAqKl/lhbbku5ZfKirvvJrmnKrliJflnKjkuIrov7DogIUKCgoKYGBge3IsIGVjaG8gPSBGLCBpbmNsdWRlPSBGfQpkdCA8LSBkdCAlPiUgbXV0YXRlKGRlZ3JlZSA9IGlmX2Vsc2UoZ3JlcGwoIuWkp+WtuCIsZGVncmVlKSwi5aSn5a24IixpZl9lbHNlKGdyZXBsKCLnoqnlo6siLGRlZ3JlZSksIueiqeWjqyIsaWZfZWxzZShncmVwbCgi5Y2a5aOrIixkZWdyZWUpLCLljZrlo6siLGlmX2Vsc2UoZ3JlcGwoIumrmOiBt3zlsIjnp5F86auY5LitIixkZWdyZWUpLCLpq5jkuK3ogbciLGRlZ3JlZSkpKSkpCmR0IDwtIGR0ICU+JSBmaWx0ZXIoZGVncmVlICVpbiUgYygi5Y2a5aOrIiwi56Kp5aOrIiwi5aSn5a24Iiwi6auY5Lit6IG3IikpCmR0IDwtIGR0ICU+JSBtdXRhdGUod29ya2luZ19sYWJlbCA9IGlmX2Vsc2UoYmV0d2Vlbih3b3JraW5nLDAsNSksIkp1bmlvciAoMC015bm0IOiPnOmbnikiLGlmX2Vsc2UoYmV0d2Vlbih3b3JraW5nLDYsMTApLCJNaWQgTGV2ZWwgKDYtMTAg5bm06IKJ54mbKSIsIlNlbmlvciAoMTArIOW5tOiAgemmrCkiKSkpCmR0IDwtIGR0ICU+JSBtdXRhdGUoaW5kdXN0cnlfbGFiZWwgPSBpZl9lbHNlKGdyZXBsKCLntrLot698SVR86Luf6auUfOizh+ioinzljZrlvIh8SW50ZXJuZXR86Zu75ZWGfOaWsOWJtXzntrLpgJp86Zuy56uvfGlPVHzkupLoga/ntrIiLGluZHVzdHJ5KSwi6Luf6auU5qWtIixpZl9lbHNlKGdyZXBsKCLpm7vlrZB86YCa5L+hfOmAmuioinzpm7vohaZ8UEN85Y2K5bCO6auUfElDfOaZtueJh3znp5HmioB85YWJ6Zu7fOmfjOmrlHxpY3zkvLrmnI3lmah86Zu75qmffOezu+e1seW7oHzpnaLmnb8iLGluZHVzdHJ5KSwi56Gs6auU5qWtIixpZl9lbHNlKGdyZXBsKCLml4Xlrr985peF6YGKfOmkkOmjsnzpm7bllK5855m+6LKofHJldGFpbHxSZXRhaWx85Lqk6YCafOWkp+ecvumBi+i8uHzlrqTlhad86KOd5L+ufOmbu+S/oXzmlofmlZl85pWZ6IG3fOaXheihjHzmnI3po7585rOV5b6LfOaVmeiCsnznpo/lo71855Sf5ZG9fOWtuOagoXzpoafllY985qqi6amXfOmjr+W6l3zoiKrnqbp85peF6aSofOS7suS7i3zmiL/ku7IiLGluZHVzdHJ5KSwi5pyN5YuZ5qWtIixpZl9lbHNlKGdyZXBsKCLphqvnmYJ86Yar55SffOWBpeW6t3znlJ/mioB86Yar6ZmifOmGq+iXpXzkv53lgaV86Yar5LqLfOiXpXzkuK3phqt86Yar5birfEhlYWx0aGNhcmV8aGVhbHRoY2FyZSIsaW5kdXN0cnkpLCLphqvnmYLmpa0iLGlmX2Vsc2UoZ3JlcGwoIuadkOaWmXzoo73pgKB86Yu86ZC1fOapn+aisHzljJblt6V85YyW5a24fOe0oee5lHzlu7rnr4l8546755KDfOWCs+eUonzpm7vmsaB85Y2w5Yi3fOeSsOW3pXzlt6XnqIt855+z5YyWfOefs+ayuXzpgKDoiLl86Kit5YKZfOWcn+acqHzoiKp86IO95rqQfOi8quiDjnzliqDlt6V86LuKfOeHn+W7unzlrrbpm7t85rW36YGLfOWhkeiGoHzpnosiLGluZHVzdHJ5KSwi6KO96YCg5qWtIixpZl9lbHNlKGdyZXBsKCLph5Hono185oqV5L+hfOaKlemhp3zpioDooYx85L+d6ZqqfOitieWIuHxCYW5rfGJhbmt85pyf6LKofOacg+ioiHzoqJjluLMiLGluZHVzdHJ5KSwi6YeR6J6N5qWtIixpZl9lbHNlKGdyZXBsKCLmlL/lupx85YWs5a625qmf6ZecfOihjOaUv3zlhazli5nlk6F85YWs5pWZfOWkp+WtuHzpq5jkuK185Lit56eR6ZmifOiHquS+huawtHzlhaznh58iLGluZHVzdHJ5KSwi5YWs6YOo6ZaAIixpZl9lbHNlKGdyZXBsKCLlqpLpq5R85buj5ZGKfOWFrOmXnHzpm7voppblj7B85pW45L2NfOa0u+WLlXzlgrPmkq0iLGluZHVzdHJ5KSwi5aqS6auU5qWtIixpZl9lbHNlKGdyZXBsKCLooYzpird8Rk1DR3zmtojosrvlk4EiLGluZHVzdHJ5KSwi6KGM6Yq3Iiwi5YW25LuWIikpKSkpKSkpKSkKYGBgCgoKIyMjIOWQhOihjOWQhOalreiWquizh+awtOW5s++8iOmEieawkeeahOaomea6lu+8iQrmoLnmk5rkuIrov7DnmoTliIbpoZ7nlKggdHJlZW1hcCDlkYjnj77ntZDmnpzvvIzmlrnloYrlpKflsI/ooajmqKPmnKzmlbjvvIzlj6/nmbznj77noazpq5TnmoTmqKPmnKzmlbjmnIDlpJrvvIzlj4jou5/jgIHnoazpq5TliqDotbfkvobkvZTotoXpgY4gNSDmiJDnmoTos4fmlpnpu57vvJvpoY/oibLnmoTpg6jliIbooajlubPlnYfmnIjolqrvvIzotorotqjov5Hol43oibLlubPlnYfmnIjolqrotorpq5jvvIzlj6/nnIvliLDphqvnmYLmpa3lubPlnYfmnIjolqrpnZ7luLjpq5jvvIzkuI3pgY7pgJnlj6/og73mmK/lm6DngrrjgIzphqvnlJ/jgI3mi4npq5jmlbTpq5TlubPlnYfjgIIKYGBge3IsIGVjaG8gPSBGfQppbmR1c3RyeSA8LSBkdCAlPiUKICBncm91cF9ieShpbmR1c3RyeV9sYWJlbCkgJT4lIAogIHN1bW1hcmlzZShtZWFuLnNhbGFyeSA9IG1lYW4oc2FsYXJ5LCBuYS5ybSA9IFQpLCBtZWRpYW4uc2FsYXJ5ID0gbWVkaWFuKHNhbGFyeSwgbmEucm0gPSBUKSwgbWVhbi5wYWNrYWdlID0gbWVhbihwYWNrYWdlLCBuYS5ybSA9IFQpLCBtZWRpYW4ucGFja2FnZSA9IG1lZGlhbihwYWNrYWdlLCBuYS5ybSA9IFQpLGNvdW50ID0gbigpKQoKIyB0cnkzCmxpYnJhcnkoUkNvbG9yQnJld2VyKQpoY3RyZWVtYXAyKGRhdGEgPSBpbmR1c3RyeSwKICAgICAgICAgICBncm91cF92YXJzID0gImluZHVzdHJ5X2xhYmVsIiwKICAgICAgICAgICBzaXplX3ZhciA9ICJjb3VudCIsCiAgICAgICAgICAgY29sb3JfdmFyID0gIm1lYW4uc2FsYXJ5IgogICAgICAgICAgICkgJT4lIAogIGhjX2NvbG9yQXhpcyhtaW5Db2xvciA9IGJyZXdlci5wYWwoNywgIlJkQnUiKVszXSwKICAgICAgICAgICAgICAgbWF4Q29sb3IgPSBicmV3ZXIucGFsKDcsICJSZEJ1IilbNl0pICU+JSAKICBoY190b29sdGlwKHBvaW50Rm9ybWF0ID0gIjxiPntwb2ludC5uYW1lfTwvYj46PGJyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAg5qij5pys5pW4OiB7cG9pbnQudmFsdWU6LC4wZn08YnI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICDlubPlnYfmnIjolqo6IHtwb2ludC5jb2xvclZhbHVlOiwuMGZ9IikKYGBgCgoK54K65LqG55yL5pu05riF5qWa5ZCE55Si5qWt55qE6Jaq6LOH6K6K55Ww56iL5bqm77yM55So55uS6aya5ZyW5ZGI54++57WQ5p6c5aaC5LiL77yaCuWPiOWwh+WQhOeUoualreeahOW5tOizh+WIhuaIkO+8jOaenOS4jeWFtueEtumGq+eZgualreeahOiuiueVsOacgOWkp++8jOiAjOS4lOmaqOiRl+W5tOizh+i2iua3seW3rui3nei2iuWkp++8jOiuiueVsOabtOWkp++8jOWboOeCuuOAjOmGq+eUn+OAjeS4gOiBt+iWquawtOWPr+S7pee/u+WAjei3s++8jOS9huWFtuS7lumGq+eZgualreWmguWFrOWLmeWToeiIrOWfuuacrOS4iuWwseaYr+e3muaAp+aIkOmVt+iAjOW3suOAggpgYGB7ciwgZWNobyA9IEZ9CmluZHVzdHJ5X3dvcmtpbmcgPC0gZHQgJT4lCiAgZ3JvdXBfYnkoaW5kdXN0cnlfbGFiZWwsIHdvcmtpbmdfbGFiZWwpICU+JSAKICBzdW1tYXJpc2UobWVhbi5zYWxhcnkgPSBtZWFuKHNhbGFyeSwgbmEucm0gPSBUKSwgbWVkaWFuLnNhbGFyeSA9IG1lZGlhbihzYWxhcnksIG5hLnJtID0gVCksIG1lYW4ucGFja2FnZSA9IG1lYW4ocGFja2FnZSwgbmEucm0gPSBUKSwgbWVkaWFuLnBhY2thZ2UgPSBtZWRpYW4ocGFja2FnZSwgbmEucm0gPSBUKSxjb3VudCA9IG4oKSkKCmhjYm94cGxvdCh4ID0gZHQkc2FsYXJ5LCB2YXIgPSBkdCRpbmR1c3RyeV9sYWJlbCwgdmFyMiA9IGR0JHdvcmtpbmdfbGFiZWwsCiAgICAgICAgICBvdXRsaWVycyA9IEZBTFNFKSAlPiUgCiAgaGNfY2hhcnQodHlwZSA9ICJjb2x1bW4iKSAjIHRvIHB1dCBib3ggdmVydGljYWwKYGBgCgoqKioKCiMjIyDliLDlupXlk6roo6HmmK/lpKnpvo3lnIvvvJrmlrDnq7nluIIgdnMg5Y+w5YyX5biCCuavj+asoemDveiiq+mFuOWPsOWMl+Wkqem+jeWci++8jOS9huWmguaenOecn+WvpuS7peW5s+Wdh+W5tOaUtuWFpeS+hueci+eahOipse+8jOaWsOerueW4gu+8iOerueenke+8iemChOaYr+eEoeirluWcqOWQhOW5tOizh++8jOmDveWxjOaJk+WPsOWMl+W4guWViu+8gQpgYGB7ciwgZWNobyA9IEZ9CnRpZW5sb25nIDwtIGR0ICU+JQogIGZpbHRlcihjaXR5ICVpbiUgYygi5paw56u55biCIiwi6Ie65YyX5biCIikpICU+JQogIGdyb3VwX2J5KHdvcmtpbmdfbGFiZWwsIGNpdHkpICU+JSAKICBzdW1tYXJpc2UobWVhbi5zYWxhcnkgPSBtZWFuKHNhbGFyeSwgbmEucm0gPSBUKSwgbWVkaWFuLnNhbGFyeSA9IG1lZGlhbihzYWxhcnksIG5hLnJtID0gVCksICLlubPlnYflubTmlLblhaUiID0gbWVhbihwYWNrYWdlLCBuYS5ybSA9IFQpLCBtZWRpYW4ucGFja2FnZSA9IG1lZGlhbihwYWNrYWdlLCBuYS5ybSA9IFQpLGNvdW50ID0gbigpKQpoY2hhcnQodGllbmxvbmcsICJjb2x1bW4iLCBoY2Flcyh4ID0gd29ya2luZ19sYWJlbCwgeSA9IGDlubPlnYflubTmlLblhaVgLCBncm91cCA9IGNpdHkpKQpgYGAKCioqKgoKIyMg5oCn5Yil5beu55WwCuWPpuWkluaAp+WIpeWcqOW3peS9nOasiuS4iuaYr+WQpuW5s+etie+8jOmAmeWAi+itsOmhjOS5n+aYr+aMgee6jOeahOeGseitsOmhjO+8iOWPg+imi++8mlvmgKfliKXlt67ot53vvIHkuJbnlYzntpPmv5/oq5blo4floLHlkYrvvJrlr6bnj77nlLflpbPjgIzlkIzlt6XlkIzphazjgI3vvIznq5/opoHlho3nrYkxMDDlubRdKGh0dHBzOi8vd3d3LnN0b3JtLm1nL2FydGljbGUvNjA1MjQ1P3NyY2lkPTczNzQ2ZjcyNmQyZTZkNjc1ZjMyNjY2MzM4MzQzNDM0MzczMzMyNjQ2MjY1MzEzMzY2XzE1NjM3MDg5NDcp77yJCuaIkeWAkeWwseS+hueci+eci+mEieawkeeahOS4lueVjOaYr+WQpuS5n+aYr+WSjOS4lueVjOi2qOWLouS4gOiHtO+8jAoKCuWFiOS+hueci+eci+aOkumZpOeUoualreWSjOW5tOizh+eahOW9semfv++8jOaVtOeQhueahOaAp+WIpeWcqOaUtuWFpeS4iueahOaVtOmrlOihqOePvu+8mgoKYGBge3IsIGVjaG8gPSBGfQpnZW5kZXJnYXBvdmVyYWxsIDwtIGR0ICU+JSAKICBncm91cF9ieShnZW5kZXIpICU+JSAKICBzdW1tYXJpc2UoIuaciOiWquWdh+aVuCIgPSBtZWFuKHNhbGFyeSwgbmEucm0gPSBUKSwgIuaciOiWquS4reS9jeaVuCIgPSBtZWRpYW4oc2FsYXJ5LCBuYS5ybSA9IFQpLCAi5bm05pS25YWl5Z2H5pW4IiA9IG1lYW4ocGFja2FnZSwgbmEucm0gPSBUKSwgIuW5tOaUtuWFpeS4reS9jeaVuCIgPSBtZWRpYW4ocGFja2FnZSwgbmEucm0gPSBUKSwi5qij5pys5pW4IiA9IG4oKSkKZ2VuZGVyZ2Fwb3ZlcmFsbApgYGAKCgoK5oCn5Yil6KaB6KiO6KuW55qE6K2w6aGM5ZKM6Z2i5ZCR5Y+v5Lul5b6I5aSa77yM5b6e5pW45pOa6Z2i5L6G55yL77yM5o6S6Zmk5omA5pyJ5bm06LOH44CB55Si5qWt55qE5beu55Ww6ICM6KiA77yM56K65a+m5oCn5Yil5Zyo6Jaq6LOH5LiK56K65a+m5pyJ6aGv6JGX55qE5beu55Ww77yI6Z2e57Wx6KiI5LiK55qE5qqi5a6a77yJ44CCCgoK5pyJ5Lq65Y+v6IO95pyD6Kqq77yM44CM5Zmi77yB6YCZ5pyJ5b6I5aSn55qE5qij5pys5YGP6Kqk77yM6YSJ5rCR55qE5LiW55WM5ZKM54++5a+m5LiW55WM5LiN5ZCM5ru077yB6KOh6Z2i6YO95piv5a6F55S377yM5aWz5oCn5qij5pys6YKj6bq85bCR44CC44CN56K65a+m5pyJ6YCZ5YCL5Y+v6IO977yM6ICM5LiU5aWz5oCn5Lmf6Kix5Zug54K65oCn5Yil6KeS6Imy77yM5b6A5b6A5pS+5qOE5bel5L2c54Wn6aGn5a626KOh55qE6LW35bGF5q+U5L6L5q+U55S35oCn6auY77yM5omA5Lul6auY5bm06LOH55qE5aWz5oCn5q+U5L6L5Y+v6IO95b6I5bCR77yM6YKj5bCx5L6G6amX6K2J5LiA5LiL55yL55yL5qij5pys55qE5YiG5L2I5ZCn77yBCgpgYGB7ciwgZWNobyA9IEZ9CmdlbmRlcl93b3JrX2NvdW50IDwtICBkdCAlPiUgCiAgZ3JvdXBfYnkod29ya2luZ19sYWJlbCwgZ2VuZGVyKSAlPiUgCiAgc3VtbWFyaXNlKG1lYW4uc2FsYXJ5ID0gbWVhbihzYWxhcnksIG5hLnJtID0gVCksIG1lZGlhbi5zYWxhcnkgPSBtZWRpYW4oc2FsYXJ5LCBuYS5ybSA9IFQpLCAi5bmz5Z2H5bm05pS25YWlIiA9IG1lYW4ocGFja2FnZSwgbmEucm0gPSBUKSwgbWVkaWFuLnBhY2thZ2UgPSBtZWRpYW4ocGFja2FnZSwgbmEucm0gPSBUKSxjb3VudCA9IG4oKSkKaGNoYXJ0KGdlbmRlcl93b3JrX2NvdW50LCAibGluZSIsIGhjYWVzKHggPSB3b3JraW5nX2xhYmVsLCB5ID0gY291bnQsIGdyb3VwID0gZ2VuZGVyKSkKYGBgCgroi6XmiorkuIrlnJbnmoTnlLfmgKfmqJnnsaTnp7vmjonvvIzmm7Tlj6/ku6XmmI7poa/nnIvlh7rlpbPmgKfpmqjokZflt6XkvZzlubTos4fmqKPmnKzmlbjpgZ7muJvvvJvlj43op4DnlLfmgKflnKjos4fmt7rlkozos4fmt7HnmoTmqKPmnKzmlbjmr5Tkvovlub7kuY7kuIDmqKPvvIzpgJnpm6PpgZPlsLHog73oqqrmmI7vvIznlLfmgKflm6Dngrrpq5jlubTos4fnmoTmqKPmnKzmlbjmr5Tkvovpq5jvvIzpgLLogIzlsI7oh7Tolqros4fmr5Tooqvmi4npq5jll47vvJ8KCumCo+aIkeWAkeWwseeUqOWQhOWAi+W3peS9nOe2k+att+eahOaAp+WIpeW5s+Wdh+aUtuWFpeW3rueVsO+8jOe1kOaenC4uLi4KCmBgYHtyLCBlY2hvID0gRn0KZ2VuZGVyZ2FwIDwtIGR0ICU+JSAKICBncm91cF9ieSh3b3JraW5nX2xhYmVsLCBnZW5kZXIpICU+JSAKICBzdW1tYXJpc2UobWVhbi5zYWxhcnkgPSBtZWFuKHNhbGFyeSwgbmEucm0gPSBUKSwgbWVkaWFuLnNhbGFyeSA9IG1lZGlhbihzYWxhcnksIG5hLnJtID0gVCksICLlubPlnYflubTmlLblhaUiID0gbWVhbihwYWNrYWdlLCBuYS5ybSA9IFQpLCBtZWRpYW4ucGFja2FnZSA9IG1lZGlhbihwYWNrYWdlLCBuYS5ybSA9IFQpLGNvdW50ID0gbigpKQpoY2hhcnQoZ2VuZGVyZ2FwLCAiY29sdW1uIiwgaGNhZXMoeCA9IHdvcmtpbmdfbGFiZWwsIHkgPSBg5bmz5Z2H5bm05pS25YWlYCwgZ3JvdXAgPSBnZW5kZXIpKQpgYGAKCuiAgeWvpuiqquaIkeS5n+S4jeefpemBk+aAjum6vOino+mHi+mAmeWAi+e1kOaenOS6hu+8jOWmguaenOmAmeS4jeaYr+WQjOW3peS4jeWQjOmFrO+8jOS7gOm6vOaJjeaYr++8nwoK5oCn5Yil5pS25YWl5beu55Ww5LiA55u05piv6ZW35pyf5LiU54Sh6Kej77yI5oiW54Sh5Lq65Y676Kej5rG677yM6YKE5piv5qC55pys5LiN6ZyA6KaB6Kej5rG677yf77yJ55qE5ZWP6aGM77yM6YCZ5LiN5Y+q5piv55m855Sf5Zyo5Y+w54Gj77yM5ZCE5ZyL6YO95LiA5qij44CC5aaC5p6c5aSn5a625pyJ5Lu75L2V5LiN5ZCM5oOz5rOV6YO95q2h6L+O6KiO6KuW77yM5Zug54K65oiR55yf5b+D5biM5pyb5oiR5piv6Yyv55qEIG9yegoKPCEtLSDlpoLmnpzlsIfos4fmlpnnmoTmpbXnq6/lgLznlbbnlYzlpJblgLzvvIjpgJnoo6HnmoTnlYzlpJblgLzlj6rmnInpq5jmnIjolqrjgIHpq5jlubTolqrvvInomZXnkIbvvIzmlbTpq5TkvoboqqrmnIjolqrmiJblubTolqrnnIvotbfkvobmr5TovIPopqrmsJHkuIDpu54gLS0+CgpgYGB7ciwgZWNobyA9IEYsIGluY2x1ZGUgPSBGfQpkdC5ib3hwbG90IDwtIGRhdGEudGFibGUoIuaciOiWqiIgPSBkdCRzYWxhcnksICLlubTolqoiID0gZHQkcGFja2FnZSkgJT4lIGdhdGhlcih0eXBlLCB2YWx1ZSkKaGNib3hwbG90KHggPSBkdC5ib3hwbG90JHZhbHVlLCB2YXIgPSBkdC5ib3hwbG90JHR5cGUsCiAgICAgICAgICBuYW1lID0gIuiWquawtOWei+aFiyIsIGNvbG9yID0gIiMyOTgwYjkiLCBvdXRsaWVycyA9IEYpICU+JSAgaGNfY2hhcnQodHlwZSA9ICJjb2x1bW4iKQpgYGAKCg==