<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
    <url>
        
        <loc>https://maskray.me/blog/</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2009-11-14-dotemacs</loc>
        <lastmod>2009-11-14</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2009-11-23-noip-2004-cryptarithmetic</loc>
        <lastmod>2009-11-23</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2009-11-23-sudoku-with-dancing-links-and-algorithm-x</loc>
        <lastmod>2009-11-23</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2009-12-19-extended-weighing-pool-balls-puzzle</loc>
        <lastmod>2009-12-19</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2010-01-01-tic-tac-toe-with-gtk</loc>
        <lastmod>2010-01-01</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2010-01-02-reversi-with-gtk</loc>
        <lastmod>2010-01-02</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2010-01-10-hanoi-related-problems</loc>
        <lastmod>2010-01-10</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2010-01-15-maze-generator-with-pygtk</loc>
        <lastmod>2010-01-15</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2010-01-22-usaco-jan10-gold-solutions</loc>
        <lastmod>2010-01-22</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2010-02-11-algorithm-contest-test-data-checker</loc>
        <lastmod>2010-02-11</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2010-03-13-xv-olimpiada-informatyczna-etap-1-klo</loc>
        <lastmod>2010-03-13</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2010-04-17-zju-1638-greedy-island</loc>
        <lastmod>2010-04-17</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2010-04-30-awesome-3-debian-menu</loc>
        <lastmod>2010-04-30</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2010-05-24-genkernel-in-gentoo</loc>
        <lastmod>2010-05-24</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2011-07-10-expect-connect-wireless</loc>
        <lastmod>2011-07-10</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2011-07-12-blogging-with-makefile</loc>
        <lastmod>2011-07-12</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2011-07-19-blogging-with-makefile-2</loc>
        <lastmod>2011-07-19</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2011-07-20-read-feeds-with-rss2email</loc>
        <lastmod>2011-07-20</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2011-07-31-get-ssh-password-and-login</loc>
        <lastmod>2011-07-31</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2011-08-11-generate-dependency-in-makefile</loc>
        <lastmod>2011-08-11</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2011-08-12-udev-automount-usb</loc>
        <lastmod>2011-08-12</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2011-08-13-parse-csv-in-perl</loc>
        <lastmod>2011-08-13</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2011-08-16-break-out-of-chroot</loc>
        <lastmod>2011-08-16</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2011-09-28-splay-tree-in-haskell</loc>
        <lastmod>2011-09-28</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2011-11-30-xmonad-config</loc>
        <lastmod>2011-11-30</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2011-12-18-eight-puzzle</loc>
        <lastmod>2011-12-18</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2011-12-24-net-lesson</loc>
        <lastmod>2011-12-24</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2012-01-08-ranking-suffixes</loc>
        <lastmod>2012-01-08</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2012-01-11-tiling-window-manager-application-and-design</loc>
        <lastmod>2012-01-11</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2012-01-19-rush-hour</loc>
        <lastmod>2012-01-19</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2012-02-11-haskell-learning-note</loc>
        <lastmod>2012-02-11</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2012-02-25-introduction-to-makefile</loc>
        <lastmod>2012-02-25</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2012-03-14-xbindkeys-key-sequence</loc>
        <lastmod>2012-03-14</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2012-04-07-sqrt-in-gcc</loc>
        <lastmod>2012-04-07</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2012-06-02-emulate-vim-in-emacs</loc>
        <lastmod>2012-06-02</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2012-06-30-eight-languages-in-eighty-minutes</loc>
        <lastmod>2012-06-30</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2012-07-21-design-thinking-of-eight-programming-languages</loc>
        <lastmod>2012-07-21</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2012-07-25-svt13117ecs-gentoo</loc>
        <lastmod>2012-07-25</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2012-09-10-parallel-n-body</loc>
        <lastmod>2012-09-10</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2012-10-01-force-directed-drawing-fruchterman-reingold</loc>
        <lastmod>2012-10-01</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2012-10-01-transfer-to-maskray-me</loc>
        <lastmod>2012-10-01</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2012-10-06-word-extractor</loc>
        <lastmod>2012-10-06</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2012-11-02-perfect-maze-generation</loc>
        <lastmod>2012-11-02</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2012-11-05-regex-engine</loc>
        <lastmod>2012-11-05</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2012-11-13-personal-mail-system</loc>
        <lastmod>2012-11-13</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2012-11-14-build-static-website-with-docpad</loc>
        <lastmod>2012-11-14</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2012-11-18-ai9</loc>
        <lastmod>2012-11-18</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2012-11-21-tuna-npm-mirror</loc>
        <lastmod>2012-11-21</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2012-11-25-ructfe-2012</loc>
        <lastmod>2012-11-25</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2012-12-09-alternative-build-system</loc>
        <lastmod>2012-12-09</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2012-12-26-python-is-ugly</loc>
        <lastmod>2012-12-26</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2013-02-10-bk-tree</loc>
        <lastmod>2013-02-10</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2013-02-21-double-array-trie-pac</loc>
        <lastmod>2013-02-21</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2013-02-24-a-pretty-printer-library-in-haskell</loc>
        <lastmod>2013-02-24</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2013-05-10-suffix-automaton</loc>
        <lastmod>2013-05-10</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2013-05-26-secuinside-ctf-quals-2013</loc>
        <lastmod>2013-05-26</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2013-07-16-ouroboros-program</loc>
        <lastmod>2013-07-16</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2013-07-25-debug-hacks</loc>
        <lastmod>2013-07-25</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2013-07-26-ids-ips-with-suricata</loc>
        <lastmod>2013-07-26</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2013-07-27-adolescent-developer-conference-2013</loc>
        <lastmod>2013-07-27</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2013-08-05-defcon-21-my-struggle</loc>
        <lastmod>2013-08-05</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2013-08-06-defcon-21-ctf</loc>
        <lastmod>2013-08-06</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2013-08-11-overthewire-natas-wargame</loc>
        <lastmod>2013-08-11</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2013-08-15-interesting-bits-of-email-culture</loc>
        <lastmod>2013-08-15</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2013-08-19-popular-posts-with-google-analytics-api</loc>
        <lastmod>2013-08-19</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2013-08-23-hdu-acm</loc>
        <lastmod>2013-08-23</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2013-08-27-josephus-problem-two-log-n-solutions</loc>
        <lastmod>2013-08-27</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2013-11-30-dlink-backdoor</loc>
        <lastmod>2013-11-30</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2013-12-02-redtigers-hackit-wargame</loc>
        <lastmod>2013-12-02</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2013-12-23-student-festival-1001-puzzle-elf</loc>
        <lastmod>2013-12-23</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2013-12-31-summary</loc>
        <lastmod>2013-12-31</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2014-05-05-bctf-workgroup</loc>
        <lastmod>2014-05-05</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2014-06-08-ko-aluru-suffix-array-construction</loc>
        <lastmod>2014-06-08</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2014-06-29-leetcode-solutions</loc>
        <lastmod>2014-06-29</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2014-06-30-isc14</loc>
        <lastmod>2014-06-30</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2014-08-11-defcon-22-ctf</loc>
        <lastmod>2014-08-11</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2014-08-19-trendmicro-codinsanity-2014</loc>
        <lastmod>2014-08-19</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2014-08-31-binary-tree-traversal</loc>
        <lastmod>2014-08-31</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2014-10-14-wechat-export</loc>
        <lastmod>2014-10-14</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2014-11-06-hackerrank-fp-compilers</loc>
        <lastmod>2014-11-06</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2014-11-24-jsxajs-workgroup</loc>
        <lastmod>2014-11-24</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2014-12-24-caml-compiler-abstract-machine</loc>
        <lastmod>2014-12-24</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2014-12-24-caml-compiler-compiling</loc>
        <lastmod>2014-12-24</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2014-12-24-caml-compiler-data-representation</loc>
        <lastmod>2014-12-24</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2014-12-24-caml-compiler-design</loc>
        <lastmod>2014-12-24</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2014-12-24-caml-compiler-garbage-collection</loc>
        <lastmod>2014-12-24</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2014-12-24-caml-compiler-others</loc>
        <lastmod>2014-12-24</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2014-12-24-caml-compiler-overview</loc>
        <lastmod>2014-12-24</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2014-12-27-js-of-ocaml-and-emscripten</loc>
        <lastmod>2014-12-27</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2014-12-31-summary</loc>
        <lastmod>2014-12-31</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2015-03-14-debug-hacks-2</loc>
        <lastmod>2015-03-14</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2015-03-23-bctf-2015-camlmaze</loc>
        <lastmod>2015-03-23</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2015-03-26-elf-hacks</loc>
        <lastmod>2015-03-26</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2015-03-27-leetcode-best-time-to-buy-and-sell-stock-iv</loc>
        <lastmod>2015-03-27</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2015-05-02-jq-internals-bytecode</loc>
        <lastmod>2015-05-02</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2015-06-16-morris-post-order-traversal</loc>
        <lastmod>2015-06-16</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2015-06-30-bmc-firmware-reverse-enginnering</loc>
        <lastmod>2015-06-30</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2015-08-12-defcon-23-ctf</loc>
        <lastmod>2015-08-12</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2015-09-08-j-programming-language</loc>
        <lastmod>2015-09-08</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2015-09-18-conversion-to-emacs</loc>
        <lastmod>2015-09-18</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2015-09-29-specify-dynamic-linker-to-use-higher-version-gcc</loc>
        <lastmod>2015-09-29</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2015-10-06-nginx-accept-language-zhs-zht</loc>
        <lastmod>2015-10-06</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2015-10-07-asc14-to-isc15-curtain-call-of-my-cluster-competition</loc>
        <lastmod>2015-10-07</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2015-10-16-leetcode-expression-add-operators</loc>
        <lastmod>2015-10-16</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2015-12-31-strongswan</loc>
        <lastmod>2015-12-31</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2016-02-12-gmail-offlineimap-xoauth2</loc>
        <lastmod>2016-02-12</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2016-02-21-wechatircd</loc>
        <lastmod>2016-02-21</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2016-03-13-terminal-emulator-fullwidth-color-emoji</loc>
        <lastmod>2016-03-13</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2016-03-21-bctf-2016-hsab-and-betafour</loc>
        <lastmod>2016-03-21</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2016-03-22-terminal-emulator-fullwidth-backspace</loc>
        <lastmod>2016-03-22</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2016-04-11-webqqircd</loc>
        <lastmod>2016-04-11</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2016-05-07-telegramircd</loc>
        <lastmod>2016-05-07</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2016-06-11-yanshi-automaton-generator</loc>
        <lastmod>2016-06-11</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2016-07-06-wechatircd-webqqircd-without-scanning-qrcode-daily</loc>
        <lastmod>2016-07-06</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2016-08-13-weechat-rules-all</loc>
        <lastmod>2016-08-13</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2016-08-26-defcon-24-ctf</loc>
        <lastmod>2016-08-26</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2016-09-24-cgc-defcon-ctf-presentation</loc>
        <lastmod>2016-09-24</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2016-10-03-discrete-fourier-transform</loc>
        <lastmod>2016-10-03</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2016-12-10-buffalo-wzr-600dhp-openwrt-comcast-ipv6</loc>
        <lastmod>2016-12-10</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2016-12-10-situation</loc>
        <lastmod>2016-12-10</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2017-02-19-how-i-use-wechat-recent-updates-of-wechatircd</loc>
        <lastmod>2017-02-19</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2017-07-01-emacs-helm-kythe-and-haskell-xrefs</loc>
        <lastmod>2017-07-01</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2017-08-01-defcon-25-ctf</loc>
        <lastmod>2017-08-01</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2017-09-09-r2con-r2clemency</loc>
        <lastmod>2017-09-09</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2017-12-03-c++-language-server-cquery</loc>
        <lastmod>2017-12-03</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2017-12-25-cquery-updates-and-libclang-one-byte-patch</loc>
        <lastmod>2017-12-25</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2018-01-14-cquery-usr-and-hierarchical-diff</loc>
        <lastmod>2018-01-14</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2018-04-01-c++-language-server-ccls</loc>
        <lastmod>2018-04-01</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2018-07-31-real-world-ctf-2018-ccls-fringe</loc>
        <lastmod>2018-07-31</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2018-08-13-defcon-26-ctf</loc>
        <lastmod>2018-08-13</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2018-09-03-ccls-navigate-and-index-multiversion</loc>
        <lastmod>2018-09-03</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2018-09-09-ccls-update</loc>
        <lastmod>2018-09-09</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2018-12-09-real-world-ctf-2018-rwext5</loc>
        <lastmod>2018-12-09</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2018-12-25-ccls-release</loc>
        <lastmod>2018-12-25</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2019-04-01-ccls-one-year</loc>
        <lastmod>2019-04-01</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2019-12-31-summary</loc>
        <lastmod>2019-12-31</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2020-12-31-summary</loc>
        <lastmod>2020-12-31</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2021-04-11-segment-tree</loc>
        <lastmod>2021-04-11</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2021-09-05-build-glibc-with-lld</loc>
        <lastmod>2021-09-05</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2021-09-26-competitive-programming-in-nim</loc>
        <lastmod>2021-09-26</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2021-10-10-when-can-glibc-be-built-with-clang</loc>
        <lastmod>2021-10-10</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2021-12-31-summary</loc>
        <lastmod>2021-12-31</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2022-12-26-kth-element-in-a-subarray</loc>
        <lastmod>2022-12-26</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2022-12-31-summary</loc>
        <lastmod>2022-12-31</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2023-12-31-summary</loc>
        <lastmod>2023-12-31</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2024-03-17-c++-exit-time-destructors</loc>
        <lastmod>2024-03-17</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2024-04-23-when-qoi-meets-xz</loc>
        <lastmod>2024-04-23</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2024-10-20-ccls-and-lsp-semantic-tokens</loc>
        <lastmod>2024-10-20</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2024-11-02-tinkering-with-neovim</loc>
        <lastmod>2024-11-02</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2024-12-25-exporting-tweets</loc>
        <lastmod>2024-12-25</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2024-12-31-summary</loc>
        <lastmod>2024-12-31</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2025-02-17-migrating-comments-to-giscus</loc>
        <lastmod>2025-02-17</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2025-07-13-gcc-miscompiles-llvm</loc>
        <lastmod>2025-07-13</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2025-08-31-benchmarking-compression-programs</loc>
        <lastmod>2025-08-31</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2025-12-07-sacramento-travelogue</loc>
        <lastmod>2025-12-07</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2025-12-14-weak-avl-tree</loc>
        <lastmod>2025-12-14</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2025-12-31-summary</loc>
        <lastmod>2025-12-31</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2026-01-22-maintaining-shadow-branches-for-github-prs</loc>
        <lastmod>2026-01-22</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2026-04-12-recent-lld-elf-performance-improvements</loc>
        <lastmod>2026-04-12</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/2026-06-07-recent-llvm-hash-table-improvements</loc>
        <lastmod>2026-06-07</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/a-compact-relocation-format-for-elf</loc>
        <lastmod>2024-03-09</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/a-compact-section-header-table-for-elf</loc>
        <lastmod>2024-03-31</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/a-deep-dive-into-clang-source-file-compilation</loc>
        <lastmod>2023-09-24</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/a-deep-dive-into-smallvector-push-back</loc>
        <lastmod>2026-06-27</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/about</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/address-sanitizer-global-variable-instrumentation</loc>
        <lastmod>2023-10-15</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/algorithm/hackerrank/ad-infinitum-17.html</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/algorithm/hackerrank/week-of-code-28.html</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/algorithm/noip/2016.html</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/all-about-common-symbols</loc>
        <lastmod>2022-02-06</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/all-about-global-offset-table</loc>
        <lastmod>2021-08-29</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/all-about-leak-sanitizer</loc>
        <lastmod>2023-02-12</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/all-about-procedure-linkage-table</loc>
        <lastmod>2021-09-19</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/all-about-sanitizer-interceptors</loc>
        <lastmod>2023-01-08</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/all-about-symbol-versioning</loc>
        <lastmod>2020-11-26</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/all-about-thread-local-storage</loc>
        <lastmod>2021-02-14</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/all-about-undefined-behavior-sanitizer</loc>
        <lastmod>2023-01-29</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/analysis-and-introspection-options-in-linkers</loc>
        <lastmod>2022-02-27</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/archives-and-start-lib</loc>
        <lastmod>2022-01-16</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/archives</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/assemblers</loc>
        <lastmod>2023-05-08</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/bit-field-layout</loc>
        <lastmod>2026-02-22</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/block-frequency</loc>
        <lastmod>2026-08-23</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/c++-exception-handling-abi</loc>
        <lastmod>2020-12-12</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/c++-standard-library-abi-compatibility</loc>
        <lastmod>2023-06-25</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/c-minifier-with-clang</loc>
        <lastmod>2022-10-09</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/c-standard-library-headers-in-c++</loc>
        <lastmod>2022-05-15</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/call-relocation-types</loc>
        <lastmod>2026-02-16</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/clang-format-and-single-line-statements</loc>
        <lastmod>2024-12-01</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/clang-o0-output-branch-displacement-and-size-increase</loc>
        <lastmod>2024-04-27</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/clang-wunused-command-line-argument</loc>
        <lastmod>2023-08-25</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/clangir-and-the-cost-of-mlir</loc>
        <lastmod>2026-10-11</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/comdat-and-section-group</loc>
        <lastmod>2021-07-25</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/compiler-driver-and-cross-compilation</loc>
        <lastmod>2021-03-28</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/compiler-output-files</loc>
        <lastmod>2023-04-25</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/compiling-c++-with-clang-api</loc>
        <lastmod>2025-03-09</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/compressed-arbitrary-sections</loc>
        <lastmod>2023-07-07</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/compressed-debug-sections</loc>
        <lastmod>2022-01-23</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/control-flow-integrity</loc>
        <lastmod>2022-12-18</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/copy-relocations-canonical-plt-entries-and-protected</loc>
        <lastmod>2021-01-09</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/dependency-related-linker-options</loc>
        <lastmod>2021-06-13</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/distribution-of-debug-information</loc>
        <lastmod>2022-10-30</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/dominator-tree</loc>
        <lastmod>2020-12-11</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/dso-undef-and-non-exported-definition</loc>
        <lastmod>2023-10-31</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/dwarf-in-reproducible-builds</loc>
        <lastmod>2022-08-14</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/elf-hash-function</loc>
        <lastmod>2023-04-12</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/elf-interposition-and-bsymbolic</loc>
        <lastmod>2021-05-16</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/estimating-branch-probabilities</loc>
        <lastmod>2026-08-09</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/evolution-of-elf-object-file-format</loc>
        <lastmod>2024-05-26</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/explain-gnu-linker-options</loc>
        <lastmod>2020-11-15</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/exploring-gnu-extensions-in-linux-kernel</loc>
        <lastmod>2024-05-12</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/exploring-object-file-formats</loc>
        <lastmod>2024-01-14</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/exploring-the-section-layout-in-linker-output</loc>
        <lastmod>2023-12-17</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/extract-archive-member-to-satisfy-dso-undef</loc>
        <lastmod>2021-08-15</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/feeds</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/feeds/2012.html</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/feeds/2013.html</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/feeds/2014.html</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/feeds/2015.html</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/feeds/2016.html</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/feeds/2017.html</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/feeds/2018.html</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/feeds/2019.html</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/feeds/2020.html</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/feeds/2021.html</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/feeds/2022.html</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/feeds/2023.html</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/feeds/2024.html</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/feeds/2025.html</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/feeds/2026.html</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/fighting-hyrums-law-in-llvm</loc>
        <lastmod>2026-05-10</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/fno-semantic-interposition</loc>
        <lastmod>2021-05-09</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/fortify-source</loc>
        <lastmod>2022-11-06</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/fpatchable-function-entry</loc>
        <lastmod>2020-02-01</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/freebsd-src-browsing-on-linux-and-my-rtld-contribution</loc>
        <lastmod>2021-08-22</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/function-multi-versioning</loc>
        <lastmod>2023-02-05</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/gcov-and-llvm</loc>
        <lastmod>2020-09-27</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/glibc-and-dt-gnu-hash</loc>
        <lastmod>2022-08-21</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/glibc</loc>
        <lastmod>2022-05-29</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/gnu-indirect-function</loc>
        <lastmod>2021-01-18</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/gnu-toolchain</loc>
        <lastmod>2021-01-24</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/init-ctors-init-array</loc>
        <lastmod>2021-11-07</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/integrated-assembler-improvements-in-llvm-19</loc>
        <lastmod>2024-06-30</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/intra-call-and-libc-symbol-renaming</loc>
        <lastmod>2020-10-15</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/irreducible-loops</loc>
        <lastmod>2026-07-12</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/keeping-pace-with-llvm-compatibility-strategies</loc>
        <lastmod>2024-11-10</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/layering-check-with-clang</loc>
        <lastmod>2022-09-25</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/light-elf-exploring-potential-size-reduction</loc>
        <lastmod>2024-04-01</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/linker-compatibility-and-the-user-agent-problem</loc>
        <lastmod>2024-07-07</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/linker-garbage-collection</loc>
        <lastmod>2021-02-28</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/linker-io-tricks-and-their-downsides</loc>
        <lastmod>2026-09-20</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/linker-notes-on-aarch32</loc>
        <lastmod>2023-04-23</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/linker-notes-on-aarch64</loc>
        <lastmod>2023-03-05</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/linker-notes-on-pe-coff</loc>
        <lastmod>2023-12-03</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/linker-notes-on-power-isa</loc>
        <lastmod>2023-02-26</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/linker-notes-on-x86</loc>
        <lastmod>2023-02-19</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/lld-14-elf-changes</loc>
        <lastmod>2022-02-20</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/lld-15-elf-changes</loc>
        <lastmod>2022-09-05</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/lld-16-elf-changes</loc>
        <lastmod>2023-03-19</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/lld-17-elf-changes</loc>
        <lastmod>2023-07-30</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/lld-18-elf-changes</loc>
        <lastmod>2024-02-18</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/lld-19-elf-changes</loc>
        <lastmod>2024-08-04</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/lld-20-elf-changes</loc>
        <lastmod>2025-02-02</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/lld-21-elf-changes</loc>
        <lastmod>2025-09-07</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/lld-22-elf-changes</loc>
        <lastmod>2026-02-01</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/lld-23-elf-changes</loc>
        <lastmod>2026-09-12</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/lld-and-gnu-linker-incompatibilities</loc>
        <lastmod>2020-12-19</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/lld-musl-powerpc64</loc>
        <lastmod>2022-11-05</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/llvm-command-line-processing</loc>
        <lastmod>2020-10-03</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/llvm-integrated-assembler-engineering-better-fragments</loc>
        <lastmod>2025-07-27</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/llvm-integrated-assembler-improving-expressions-and-relocations</loc>
        <lastmod>2025-05-26</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/llvm-integrated-assembler-improving-mcexpr-mcvalue</loc>
        <lastmod>2025-04-06</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/llvm-integrated-assembler-improving-sections-and-symbols</loc>
        <lastmod>2025-08-17</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/long-branches-in-compilers-assemblers-and-linkers</loc>
        <lastmod>2026-01-25</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/mapping-symbols-rethinking-for-efficiency</loc>
        <lastmod>2024-07-21</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/march-mcpu-mtune</loc>
        <lastmod>2022-08-28</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/mc-dc-and-compiler-implementations</loc>
        <lastmod>2024-01-28</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/metadata-sections-comdat-and-shf-link-order</loc>
        <lastmod>2021-01-31</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/mmu-less-systems-and-fdpic</loc>
        <lastmod>2024-02-20</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/my-involvement-with-llvm-17</loc>
        <lastmod>2023-08-20</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/my-involvement-with-llvm-18</loc>
        <lastmod>2024-02-25</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/my-involvement-with-llvm-19</loc>
        <lastmod>2024-08-18</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/natural-loops</loc>
        <lastmod>2025-01-20</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/odr-violation-detection</loc>
        <lastmod>2022-11-13</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/optimizing-llvm-bump-allocator</loc>
        <lastmod>2026-06-28</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/page/10</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/page/11</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/page/12</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/page/13</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/page/14</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/page/15</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/page/16</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/page/17</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/page/18</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/page/19</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/page/2</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/page/20</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/page/21</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/page/22</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/page/23</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/page/24</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/page/25</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/page/26</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/page/27</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/page/28</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/page/29</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/page/3</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/page/30</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/page/4</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/page/5</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/page/6</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/page/7</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/page/8</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/page/9</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/pi-static-and-hidden-in-glibc-rtld</loc>
        <lastmod>2022-04-24</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/port-llvm-xray-to-apple-systems</loc>
        <lastmod>2023-06-18</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/portfolio/ai9</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/portfolio/bctf</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/portfolio/brainfuck</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/portfolio/courses/2012-spr-object-oriented-programming</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/portfolio/courses/2012-sum-parallel-programming</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/portfolio/courses/2013-aut-database-management-system</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/portfolio/courses/2013-aut-network</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/portfolio/courses/2013-spr-artificial-intelligence</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/portfolio/courses/2013-spr-computer-graphics</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/portfolio/courses/2013-sum-assembly</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/portfolio/courses/2014-spr-computer-architecture</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/portfolio/courses/2014-spr-database-special-topic-training</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/portfolio/defcon-ctf</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/portfolio/flockly</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/portfolio/force-directed</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/portfolio/gba-gameshark2-decoder</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/portfolio/gitw</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/portfolio/gobang</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/portfolio/grade-manager</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/portfolio/greedy-snake</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/portfolio/hython</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/portfolio/isc-15</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/portfolio/kongming-chess</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/portfolio/llvm</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/portfolio/molecular-weight-calculator</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/portfolio/regex</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/portfolio/reversi</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/portfolio/shining-soul-2-reworker</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/portfolio/sokoban</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/precompiled-headers</loc>
        <lastmod>2023-07-16</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/presentations</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/presentations/2021-05-last-alliance-of-elf-and-men/elf.html</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/presentations/2021-06-static-initialization-order-fiasco-and-elf/slides.html</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/presentations/2021-09-recent-blog-posts/slides.html</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/presentations/2021-10-fun-with-elf-dynamic-loaders/slides.html</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/presentations/2021-12-implement-an-elf-linker/slides.html</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/raw-symbol-names-in-inline-assembly</loc>
        <lastmod>2024-01-30</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/reflections-on-llvm-switch-to-github-pull-requests</loc>
        <lastmod>2023-09-09</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/relative-relocations-and-relr</loc>
        <lastmod>2021-10-31</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/relocatable-linking</loc>
        <lastmod>2022-11-21</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/relocation-generation-in-assemblers</loc>
        <lastmod>2025-03-16</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/relocation-overflow-and-code-models</loc>
        <lastmod>2023-05-14</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/remarks-on-sframe</loc>
        <lastmod>2025-09-28</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/removing-global-state-from-lld</loc>
        <lastmod>2024-11-17</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/reviews.llvm.org-became-read-only-archive</loc>
        <lastmod>2023-12-30</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/riscv-linker-relaxation-in-lld</loc>
        <lastmod>2022-07-10</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/riscv-tlsdesc-works</loc>
        <lastmod>2024-01-23</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/sections-and-overwrite-sections</loc>
        <lastmod>2021-07-04</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/simplifying-disassembly-with-llvm-tools</loc>
        <lastmod>2024-12-22</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/skipping-boring-functions-in-debuggers</loc>
        <lastmod>2024-12-30</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/stack-unwinding</loc>
        <lastmod>2020-11-08</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/stack-walking-space-and-time-trade-offs</loc>
        <lastmod>2025-10-26</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/symbol-processing</loc>
        <lastmod>2021-06-20</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/adc</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/adc/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/ai9</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/ai9/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/algorithm</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/algorithm/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/algorithm/page/2</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/algorithm/page/3</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/algorithm/page/4</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/arm</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/arm/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/asc</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/asc/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/assembler</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/assembler/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/assembler/page/2</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/automaton</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/automaton/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/awesome</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/awesome/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/bctf</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/bctf/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/binary</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/binary/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/binutils</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/binutils/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/binutils/page/2</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/binutils/page/3</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/binutils/page/4</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/bmc</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/bmc/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/build-system</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/build-system/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/c</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/c/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/ccls</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/ccls/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/cgc</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/cgc/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/chroot</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/chroot/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/clang-format</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/clang-format/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/clang</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/clang/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/clang/page/2</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/codegen</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/codegen/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/codinsanity</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/codinsanity/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/coffee-script</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/coffee-script/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/compiler</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/compiler/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/compression</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/compression/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/computer-security</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/computer-security/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/contest</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/contest/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/contest/page/2</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/cpp</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/cpp/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/csv</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/csv/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/ctf</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/ctf/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/ctf/page/2</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/data-structure</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/data-structure/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/data-structures</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/data-structures/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/debug</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/debug/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/defcon</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/defcon/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/desktop</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/desktop/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/docker</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/docker/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/elf</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/elf/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/emacs</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/emacs/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/emacs/page/2</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/email</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/email/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/emoji</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/emoji/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/emscripten</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/emscripten/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/event</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/event/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/expect</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/expect/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/ext4</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/ext4/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/fdpic</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/fdpic/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/feeds</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/feeds/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/firmware</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/firmware/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/floating-point</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/floating-point/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/forensics</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/forensics/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/fp</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/fp/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/freebsd</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/freebsd/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/game</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/game/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/gcc</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/gcc/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/gcc/page/2</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/gcc/page/3</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/gdb</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/gdb/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/gentoo</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/gentoo/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/git</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/git/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/github</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/github/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/glibc</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/glibc/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/glibc/page/2</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/graph-drawing</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/graph-drawing/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/graph</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/graph/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/gtk</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/gtk/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/hacker-culture</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/hacker-culture/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/hackerrank</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/hackerrank/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/hanoi</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/hanoi/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/haskell</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/haskell/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/haskell/page/2</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/hpc</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/hpc/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/image</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/image/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/inotify</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/inotify/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/ipsec</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/ipsec/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/irc</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/irc/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/isc</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/isc/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/j</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/j/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/javascript</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/javascript/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/josephus-problem</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/josephus-problem/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/jq</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/jq/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/kernel</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/kernel/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/kythe</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/kythe/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/ld</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/ld/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/leetcode</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/leetcode/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/libunwind</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/libunwind/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/linker</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/linker/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/linker/page/2</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/linker/page/3</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/linker/page/4</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/linker/page/5</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/linker/page/6</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/linker/page/7</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/linux</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/linux/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/lld</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/lld/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/lldb</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/lldb/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/llvm</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/llvm/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/llvm/page/10</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/llvm/page/2</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/llvm/page/3</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/llvm/page/4</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/llvm/page/5</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/llvm/page/6</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/llvm/page/7</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/llvm/page/8</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/llvm/page/9</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/lsp</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/lsp/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/m68k</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/m68k/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/makefile</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/makefile/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/math</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/math/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/maze</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/maze/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/mirror</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/mirror/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/ml</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/ml/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/musl</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/musl/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/mutt</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/mutt/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/n-body</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/n-body/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/neovim</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/neovim/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/network</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/network/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/nginx</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/nginx/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/nim</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/nim/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/nlp</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/nlp/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/node-js</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/node-js/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/noip</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/noip/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/notmuch</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/notmuch/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/npm</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/npm/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/ocaml</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/ocaml/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/offlineimap</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/offlineimap/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/oi</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/oi/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/oj</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/oj/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/openwrt</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/openwrt/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/parallel</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/parallel/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/parser-generator</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/parser-generator/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/performance</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/performance/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/perl</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/perl/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/powerpc</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/powerpc/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/presentation</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/presentation/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/puzzle</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/puzzle/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/python</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/python/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/qq</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/qq/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/radare2</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/radare2/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/regex</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/regex/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/regular-expression</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/regular-expression/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/release</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/release/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/reverse-engineering</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/reverse-engineering/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/review</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/review/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/riscv</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/riscv/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/router</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/router/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/rtld</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/rtld/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/ruby</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/ruby/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/ructfe</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/ructfe/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/s390x</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/s390x/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/sanitizer</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/sanitizer/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/scheme</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/scheme/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/search</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/search/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/security</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/security/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/security/page/2</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/sframe</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/sframe/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/shell</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/shell/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/ssh</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/ssh/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/stringology</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/stringology/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/student-festival-puzzle</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/student-festival-puzzle/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/suffix-array</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/suffix-array/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/suffix-automaton</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/suffix-automaton/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/summary</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/summary/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/suricata</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/suricata/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/telegram</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/telegram/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/telegramircd</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/telegramircd/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/terminal</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/terminal/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/tls</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/tls/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/travel</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/travel/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/traversal</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/traversal/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/tree</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/tree/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/trendmicro</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/trendmicro/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/udev</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/udev/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/unicode</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/unicode/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/unix</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/unix/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/usb</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/usb/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/vim</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/vim/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/vpn</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/vpn/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/vte</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/vte/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/wargame</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/wargame/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/web-analytics</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/web-analytics/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/webqqircd</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/webqqircd/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/website</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/website/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/wechat</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/wechat/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/wechatircd</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/wechatircd/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/window-manager</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/window-manager/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/windows</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/windows/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/x86</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/x86/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/xbindkeys</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/xbindkeys/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/xmonad</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/xmonad/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/xz</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/xz/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/yanshi</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/tags/yanshi/page/1</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/the-dark-side-of-riscv-linker-relaxation</loc>
        <lastmod>2021-03-14</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/til</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/toolchain-notes-on-mips</loc>
        <lastmod>2023-09-04</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/toolchain-notes-on-z-architecture</loc>
        <lastmod>2024-02-11</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/toolchain-testing</loc>
        <lastmod>2021-08-08</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/understanding-alignment-from-source-to-object-file</loc>
        <lastmod>2025-08-24</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/understanding-and-improving-clang-ftime-report</loc>
        <lastmod>2025-01-12</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/understanding-orphan-sections</loc>
        <lastmod>2024-06-02</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/unwinding-through-signal-handler</loc>
        <lastmod>2022-04-10</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/weak-symbol</loc>
        <lastmod>2021-04-25</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/who-pays-for-clang</loc>
        <lastmod>2026-10-12</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/why-isnt-ld.lld-faster</loc>
        <lastmod>2021-12-19</lastmod>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/zh/all-about-symbol-versioning.html</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/zh/c++-exception-handling-abi.html</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/zh/explain-gnu-linker-options.html</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/zh/fpatchable-function-entry.html</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/zh/llvm-command-line-processing.html</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/zh/stack-unwinding.html</loc>
    </url>
    <url>
        
        <loc>https://maskray.me/blog/zstd-compressed-debug-sections</loc>
        <lastmod>2022-09-09</lastmod>
    </url>
</urlset>
