{"id":131,"date":"2010-04-17T23:07:26","date_gmt":"2010-04-18T08:07:26","guid":{"rendered":"\/blog\/?p=131"},"modified":"2023-09-21T09:39:21","modified_gmt":"2023-09-21T00:39:21","slug":"nsis-labels-and-relative-jumps","status":"publish","type":"post","link":"https:\/\/hasu0707.duckdns.org\/blog\/?p=131","title":{"rendered":"NSIS-Labels and Relative Jumps"},"content":{"rendered":"\n<P>1. Label<br \/><br \/>Label\uc758 \uacbd\uc6b0 \uc870\uac74\ubb38\uc5d0 \uc758\ud574\uc11c \uc2e4\ud589\ub418\ub294 \ud750\ub984\uc744 \ubc14\uafc0\ub54c Label\uc774 \ubd99\uc5b4 \uc788\ub294 \uacf3\uc73c\ub85c \ubcf4\ub0bc \uc218 \uc788\ub2e4. \uc8fc\ub85c IfErrors, IfFileExists, StrCmp \ub4f1\uc758 \uba85\ub839\uc5b4\ub97c \uc0ac\uc6a9\ud560\ub54c \ub9ce\uc774 \uc0ac\uc6a9\ud55c\ub2e4. Label\uc758 \uacbd\uc6b0 \uc9c0\uc5ed\uc801\uc73c\ub85c\ub9cc \uc778\uc2dd\ub418\ubbc0\ub85c \uac19\uc740 function\uc774\ub098 section \ub0b4\ubd80\uc5d0\uc11c\ub9cc \uc0ac\uc6a9\ud560 \uc218 \uc788\ub2e4. \ub610\ud55c Label\uc740 -, +, !, $ \ub610\ub294 0-9 \ub85c \uc2dc\uc791\ud560 \uc218\ub294 \uc5c6\ub2e4. Label \uc744 \uc0ac\uc6a9\ud558\ub294 \uac83\uc740 \ub2e4\uc74c\uacfc \uac19\uc774 \ud55c\ub2e4.<br \/><br \/><CODE><\/P>\n<OL>\n<LI style=\"FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace; COLOR: black; FONT-WEIGHT: normal\">\n<DIV style=\"FONT-FAMILY: 'Courier New', Courier, monospace; FONT-WEIGHT: normal\">&nbsp;<\/DIV>\n<LI style=\"FONT-WEIGHT: bold\">\n<DIV style=\"FONT-FAMILY: 'Courier New', Courier, monospace; FONT-WEIGHT: normal\">MyLabel:<\/DIV>\n<LI style=\"FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace; COLOR: black; FONT-WEIGHT: normal\">\n<DIV style=\"FONT-FAMILY: 'Courier New', Courier, monospace; FONT-WEIGHT: normal\">&nbsp;<\/DIV><\/LI><\/OL>\n<P><\/CODE><br \/><br \/><FONT face=\uad74\ub9bc>Label\uc758 \uc774\ub984\uc73c\ub85c \uc2dc\uc791\ud560\ub54c \ub9cc\uc57d '.'\uc73c\ub85c \uc2dc\uc791\ud558\uba74 \uc804\uc5ed\uc801\uc73c\ub85c \ubcfc \uc218 \uc788\ub294 Label\uc774\ub2e4. \uc989 function\/section \ub0b4\ubd80\uc5d0\uc11c \uc678\ubd80\ub85c \ud750\ub984\uc744 \ubc14\uafc0 \uc218 \uc788\ub2e4.<br \/><br \/>2. Relative Jump<br \/><br \/>Relative Jump\ub294 \uc774\ub984\uc774 \ub9d0\ud558\ub294 \uac83\ucc98\ub7fc \ud604\uc7ac \uc704\uce58\ub97c \uae30\uc900\uc73c\ub85c \uba87\ubc88\uc9f8 instruction\uc73c\ub85c \uac08 \uac74\uc9c0\ub97c \uacb0\uc815\ud558\ub294 \uac83\uc774\ub2e4. +1 \uc740 \ubc14\ub85c \ub2e4\uc74c instruction(\uc77c\ubc18\uc801\uc778 \uacbd\uc6b0)\uc744 \uc2e4\ud589\ud558\ub294 \uac83\uc774\uba70, +2\ub294 \ub450 \ubc88\uc9f8 instruction \uc989 \uccab \ubc88\uc9f8 instruction\uc740 \uac74\ub108 \ub744\uace0 \ub450 \ubc88\uc9f8 instruction\uc744 \uc2e4\ud589\ud558\ub294 \uac83\uc774\ub2e4. \uc5ec\uae30\uc11c \ub9d0\ud558\ub294 instruction \uc774\ub77c\ub294 \uac83\uc740 \uc778\uc2a4\ud1a8\ub7ec\uac00 \uc2e4\uc81c\ub85c \uc2e4\ud589\ub420\ub54c \uc2e4\ud589\ub418\ub294 \ubaa8\ub4e0 \uba85\ub839\uc5b4\ub97c \ub9d0\ud558\ub294 \uac83\uc774\ub2e4. MessageBox, Goto, GetDLLVersion, FileRead, SetShellVarContext \ub4f1\uc774 \uc608\uc774\ub2e4. AddSize, Section, SectionGroup, Name, LangString \ub4f1\uc740 \uc778\uc2a4\ud1a8\ub7ec\ub97c \ucef4\ud30c\uc77c \ud560 \ub54c \uc2e4\ud589\ub418\uae30 \ub54c\ubb38\uc5d0 instruction\uc774 \uc544\ub2c8\ub2e4.<br \/><br \/><\/FONT><CODE><\/P>\n<OL>\n<LI style=\"FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace; COLOR: black; FONT-WEIGHT: normal\">\n<DIV style=\"FONT-FAMILY: 'Courier New', Courier, monospace; FONT-WEIGHT: normal\">&nbsp;<\/DIV>\n<LI style=\"FONT-WEIGHT: bold\">\n<DIV style=\"FONT-FAMILY: 'Courier New', Courier, monospace; FONT-WEIGHT: normal\"><SPAN style=\"COLOR: #000099\">Goto<\/SPAN> <SPAN>+2<\/SPAN><\/DIV>\n<LI style=\"FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace; COLOR: black; FONT-WEIGHT: normal\">\n<DIV style=\"FONT-FAMILY: 'Courier New', Courier, monospace; FONT-WEIGHT: normal\"><SPAN style=\"COLOR: #000099\">MessageBox<\/SPAN> <SPAN style=\"COLOR: #ff6600\">MB_OK<\/SPAN> <SPAN style=\"COLOR: #660066\">\"You will never ever see this message box\"<\/SPAN><\/DIV>\n<LI style=\"FONT-WEIGHT: bold\">\n<DIV style=\"FONT-FAMILY: 'Courier New', Courier, monospace; FONT-WEIGHT: normal\"><SPAN style=\"COLOR: #000099\">MessageBox<\/SPAN> <SPAN style=\"COLOR: #ff6600\">MB_OK<\/SPAN> <SPAN style=\"COLOR: #660066\">\"The last message was skipped, this one should be shown.\"<\/SPAN><\/DIV>\n<LI style=\"FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace; COLOR: black; FONT-WEIGHT: normal\">\n<DIV style=\"FONT-FAMILY: 'Courier New', Courier, monospace; FONT-WEIGHT: normal\">&nbsp;<\/DIV><\/LI><\/OL>\n<P><\/CODE><br \/><br \/><FONT face=\uad74\ub9bc>\uc704\uc758 \uacbd\uc6b0 \ub450 \ubc88\uc9f8 MessageBox\ub9cc \uc2e4\ud589\uc774 \ub41c\ub2e4. +2 \uc774\ubbc0\ub85c \uccab \ubc88\uc9f8 instruction(\uccab \ubc88\uc9f8\uc5d0 \uc788\ub294 MessageBox)\uc774 skip\ub418\uace0 \ub450 \ubc88\uc9f8 instruction \uc778 \ub450 \ubc88\uc9f8\uc5d0 \uc788\ub294 MessageBox \uac00 \uc2e4\ud589\uc774 \ub41c\ub2e4.<br \/><br \/><br \/><\/FONT><CODE><\/P>\n<OL>\n<LI style=\"FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace; COLOR: black; FONT-WEIGHT: normal\">\n<DIV style=\"FONT-FAMILY: 'Courier New', Courier, monospace; FONT-WEIGHT: normal\">&nbsp;<\/DIV>\n<LI style=\"FONT-WEIGHT: bold\">\n<DIV style=\"FONT-FAMILY: 'Courier New', Courier, monospace; FONT-WEIGHT: normal\"><SPAN style=\"FONT-STYLE: italic; COLOR: #666666\"># set the name of the installer<\/SPAN><\/DIV>\n<LI style=\"FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace; COLOR: black; FONT-WEIGHT: normal\">\n<DIV style=\"FONT-FAMILY: 'Courier New', Courier, monospace; FONT-WEIGHT: normal\"><SPAN style=\"COLOR: #000066\">outfile<\/SPAN> <SPAN style=\"COLOR: #660066\">\"label_jump.exe\"<\/SPAN><\/DIV>\n<LI style=\"FONT-WEIGHT: bold\">\n<DIV style=\"FONT-FAMILY: 'Courier New', Courier, monospace; FONT-WEIGHT: normal\">&nbsp;<\/DIV>\n<LI style=\"FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace; COLOR: black; FONT-WEIGHT: normal\">\n<DIV style=\"FONT-FAMILY: 'Courier New', Courier, monospace; FONT-WEIGHT: normal\"><SPAN style=\"FONT-STYLE: italic; COLOR: #666666\"># create a default section.<\/SPAN><\/DIV>\n<LI style=\"FONT-WEIGHT: bold\">\n<DIV style=\"FONT-FAMILY: 'Courier New', Courier, monospace; FONT-WEIGHT: normal\"><SPAN style=\"COLOR: #000066\">section<\/SPAN><\/DIV>\n<LI style=\"FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace; COLOR: black; FONT-WEIGHT: normal\">\n<DIV style=\"FONT-FAMILY: 'Courier New', Courier, monospace; FONT-WEIGHT: normal\">&nbsp;<\/DIV>\n<LI style=\"FONT-WEIGHT: bold\">\n<DIV style=\"FONT-FAMILY: 'Courier New', Courier, monospace; FONT-WEIGHT: normal\">&nbsp;<SPAN style=\"COLOR: #000099\">Goto<\/SPAN> <SPAN>+4<\/SPAN><\/DIV>\n<LI style=\"FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace; COLOR: black; FONT-WEIGHT: normal\">\n<DIV style=\"FONT-FAMILY: 'Courier New', Courier, monospace; FONT-WEIGHT: normal\">&nbsp;<SPAN style=\"COLOR: #000099\">MessageBox<\/SPAN> <SPAN style=\"COLOR: #ff6600\">MB_OK<\/SPAN> <SPAN style=\"COLOR: #660066\">\"The following message will be skipped\"<\/SPAN><\/DIV>\n<LI style=\"FONT-WEIGHT: bold\">\n<DIV style=\"FONT-FAMILY: 'Courier New', Courier, monospace; FONT-WEIGHT: normal\">&nbsp;<SPAN style=\"COLOR: #000099\">Goto<\/SPAN> <SPAN>+3<\/SPAN><\/DIV>\n<LI style=\"FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace; COLOR: black; FONT-WEIGHT: normal\">\n<DIV style=\"FONT-FAMILY: 'Courier New', Courier, monospace; FONT-WEIGHT: normal\">&nbsp;<SPAN style=\"COLOR: #000099\">MessageBox<\/SPAN> <SPAN style=\"COLOR: #ff6600\">MB_OK<\/SPAN> <SPAN style=\"COLOR: #660066\">\"You will never ever see this message box\"<\/SPAN><\/DIV>\n<LI style=\"FONT-WEIGHT: bold\">\n<DIV style=\"FONT-FAMILY: 'Courier New', Courier, monospace; FONT-WEIGHT: normal\">&nbsp;<SPAN style=\"COLOR: #000099\">Goto<\/SPAN> <SPAN>-3<\/SPAN><\/DIV>\n<LI style=\"FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace; COLOR: black; FONT-WEIGHT: normal\">\n<DIV style=\"FONT-FAMILY: 'Courier New', Courier, monospace; FONT-WEIGHT: normal\">&nbsp;<SPAN style=\"COLOR: #000099\">MessageBox<\/SPAN> <SPAN style=\"COLOR: #ff6600\">MB_OK<\/SPAN> <SPAN style=\"COLOR: #660066\">\"Done\"<\/SPAN><\/DIV>\n<LI style=\"FONT-WEIGHT: bold\">\n<DIV style=\"FONT-FAMILY: 'Courier New', Courier, monospace; FONT-WEIGHT: normal\">&nbsp;<\/DIV>\n<LI style=\"FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace; COLOR: black; FONT-WEIGHT: normal\">\n<DIV style=\"FONT-FAMILY: 'Courier New', Courier, monospace; FONT-WEIGHT: normal\"><SPAN style=\"COLOR: #000066\">sectionEnd<\/SPAN><\/DIV>\n<LI style=\"FONT-WEIGHT: bold\">\n<DIV style=\"FONT-FAMILY: 'Courier New', Courier, monospace; FONT-WEIGHT: normal\">&nbsp;<\/DIV><\/LI><\/OL>\n<P><\/CODE><br \/><br \/><FONT face=\uad74\ub9bc>\uc704\uc758 \uc608\uc81c\ub97c \uc2e4\ud589\ud558\uba74 \uc5b4\ub5a4 \uba54\uc2dc\uc9c0\uac00 \ub4e4\uc5b4 \uc788\ub294 MessageBox\uac00 \ub098\uc62c\uae4c... <br \/><\/FONT><\/P>\n<DIV style=\"FLOAT: left; MARGIN-RIGHT: 10px\" class=\"imageblock left\"><FONT face=\uad74\ub9bc><IMG style=\"CURSOR: pointer\" onclick=\"popview(this, '90000003_000000000000000DFC0A6E33')\" src=\"http:\/\/www.cipher.pe.kr\/tt\/attach\/1\/1394204211.png\" width=253 height=96><\/FONT><\/DIV>\n<P>\uc67c\ucabd\uc758 MessageBox\uac00 \uc81c\uc77c \uba3c\uc800 \ub098\uc628\ub2e4. \uc65c \uadf8\ub7f0\uc9c0 \uc0dd\uac01\ud574 \ubcf4\uc790. section \ub0b4\ubd80\uc5d0 \uc81c\uc77c \uba3c\uc800 \uc788\ub294 Goto +4\ub97c \ubcf4\uba74 \ub124 \ubc88\uc9f8 instruction\uc744 \uc2e4\ud589\ud558\ub77c\ub294 \uba85\ub839\uc774\ub2e4. \ud604\uc7ac \uc704\uce58\uc5d0\uc11c \ub124 \ubc88\uc9f8 instruction\uc740 Goto -3 \uc774\ub2e4. \uc704\ucabd \ubc29\ud5a5\uc73c\ub85c \uc138 \ubc88\uc9f8 instruction \uc740 \uc67c\ucabd\uc5d0 \ubcf4\uc774\ub294 \uba54\uc2dc\uc9c0 \ubc15\uc2a4\uc774\ub2e4. \uadf8\ub9ac\uace0 \uadf8 \ub2e4\uc74c instruction\uc744 \ubcf4\uba74 Goto +3 \uc774\ubbc0\ub85c \"Done\" \uc774\ub77c\ub294 \ubb38\uc790\uc5f4\uc744 \uac00\uc9c0\ub294 \uba54\uc2dc\uc9c0 \ubc15\uc2a4\ub97c \ucd9c\ub825\ud558\uac8c \ub41c\ub2e4.<br \/><\/P>\n<DIV style=\"FLOAT: left; MARGIN-RIGHT: 10px\" class=\"imageblock left\"><IMG style=\"CURSOR: pointer\" onclick=\"popview(this, '90000003_000000000000000DFC0A6E33')\" src=\"http:\/\/www.cipher.pe.kr\/tt\/attach\/1\/1228686436.png\" width=122 height=96><\/DIV>\n<P>NSIS\uc5d0\ub3c4 \ub9e4\ud06c\ub85c\ub77c\ub294\uac8c \uc788\ub294\ub370, \uc774 \ub9e4\ud06c\ub85c\ub294 relative jump\uac00 \uc2e4\ud589\ub418\uae30 \uc804\uc5d0 \ud655\uc7a5\ub418\ubbc0\ub85c \ub9e4\ud06c\ub85c\ub97c \ud3ec\ud568\ud560 \uacbd\uc6b0\uc5d0\ub294 \uc8fc\uc758\ud574\uc11c \uc0ac\uc6a9\ud574\uc57c \ud55c\ub2e4. \uc544\ub798\uc758 \uc608\uc81c\ub97c \ubcf4\uba74 \ub9e4\ud06c\ub85c \ud655\uc7a5\uc5d0 \uc758\ud574\uc11c \"second macro line\" \uc774\ub77c\ub294 \ubb38\uc790\uc5f4\uc744 \uac00\uc9c0\ub294 MessageBox\uac00 \ub098\uc624\uac8c \ub41c\ub2e4.<br \/><br \/><br \/><br \/><br \/><CODE><\/P>\n<OL>\n<LI style=\"FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace; COLOR: black; FONT-WEIGHT: normal\">\n<DIV style=\"FONT-FAMILY: 'Courier New', Courier, monospace; FONT-WEIGHT: normal\">&nbsp;<\/DIV>\n<LI style=\"FONT-WEIGHT: bold\">\n<DIV style=\"FONT-FAMILY: 'Courier New', Courier, monospace; FONT-WEIGHT: normal\"><SPAN style=\"COLOR: #000066; FONT-WEIGHT: bold\">!macro<\/SPAN> relative_jump_test<\/DIV>\n<LI style=\"FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace; COLOR: black; FONT-WEIGHT: normal\">\n<DIV style=\"FONT-FAMILY: 'Courier New', Courier, monospace; FONT-WEIGHT: normal\"> <\/DIV>\n<LI style=\"FONT-WEIGHT: bold\">\n<DIV style=\"FONT-FAMILY: 'Courier New', Courier, monospace; FONT-WEIGHT: normal\">&nbsp; <SPAN style=\"COLOR: #000099\">MessageBox<\/SPAN> <SPAN style=\"COLOR: #ff6600\">MB_OK<\/SPAN> <SPAN style=\"COLOR: #660066\">\"first macro line\"<\/SPAN><\/DIV>\n<LI style=\"FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace; COLOR: black; FONT-WEIGHT: normal\">\n<DIV style=\"FONT-FAMILY: 'Courier New', Courier, monospace; FONT-WEIGHT: normal\"> <\/DIV>\n<LI style=\"FONT-WEIGHT: bold\">\n<DIV style=\"FONT-FAMILY: 'Courier New', Courier, monospace; FONT-WEIGHT: normal\">&nbsp; <SPAN style=\"COLOR: #000099\">MessageBox<\/SPAN> <SPAN style=\"COLOR: #ff6600\">MB_OK<\/SPAN> <SPAN style=\"COLOR: #660066\">\"second macro line\"<\/SPAN><\/DIV>\n<LI style=\"FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace; COLOR: black; FONT-WEIGHT: normal\">\n<DIV style=\"FONT-FAMILY: 'Courier New', Courier, monospace; FONT-WEIGHT: normal\">&nbsp;<\/DIV>\n<LI style=\"FONT-WEIGHT: bold\">\n<DIV style=\"FONT-FAMILY: 'Courier New', Courier, monospace; FONT-WEIGHT: normal\"><SPAN style=\"COLOR: #000066; FONT-WEIGHT: bold\">!macroend<\/SPAN><\/DIV>\n<LI style=\"FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace; COLOR: black; FONT-WEIGHT: normal\">\n<DIV style=\"FONT-FAMILY: 'Courier New', Courier, monospace; FONT-WEIGHT: normal\">&nbsp;<\/DIV>\n<LI style=\"FONT-WEIGHT: bold\">\n<DIV style=\"FONT-FAMILY: 'Courier New', Courier, monospace; FONT-WEIGHT: normal\">&nbsp;<\/DIV>\n<LI style=\"FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace; COLOR: black; FONT-WEIGHT: normal\">\n<DIV style=\"FONT-FAMILY: 'Courier New', Courier, monospace; FONT-WEIGHT: normal\">&nbsp;<\/DIV>\n<LI style=\"FONT-WEIGHT: bold\">\n<DIV style=\"FONT-FAMILY: 'Courier New', Courier, monospace; FONT-WEIGHT: normal\"><SPAN style=\"COLOR: #000099\">Goto<\/SPAN> <SPAN>+2<\/SPAN><\/DIV>\n<LI style=\"FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace; COLOR: black; FONT-WEIGHT: normal\">\n<DIV style=\"FONT-FAMILY: 'Courier New', Courier, monospace; FONT-WEIGHT: normal\">&nbsp;<\/DIV>\n<LI style=\"FONT-WEIGHT: bold\">\n<DIV style=\"FONT-FAMILY: 'Courier New', Courier, monospace; FONT-WEIGHT: normal\"><SPAN style=\"COLOR: #000066; FONT-WEIGHT: bold\">!insertmacro<\/SPAN> relative_jump_test<\/DIV>\n<LI style=\"FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace; COLOR: black; FONT-WEIGHT: normal\">\n<DIV style=\"FONT-FAMILY: 'Courier New', Courier, monospace; FONT-WEIGHT: normal\">&nbsp;<\/DIV>\n<LI style=\"FONT-WEIGHT: bold\">\n<DIV style=\"FONT-FAMILY: 'Courier New', Courier, monospace; FONT-WEIGHT: normal\">&nbsp; <\/DIV><\/LI><\/OL><\/CODE>\n","protected":false},"excerpt":{"rendered":"<p>1. Label Label\uc758 \uacbd\uc6b0 \uc870\uac74\ubb38\uc5d0 \uc758\ud574\uc11c \uc2e4\ud589\ub418\ub294 \ud750\ub984\uc744 \ubc14\uafc0\ub54c Label\uc774 \ubd99\uc5b4 \uc788\ub294 \uacf3\uc73c\ub85c \ubcf4\ub0bc \uc218 \uc788\ub2e4. \uc8fc\ub85c IfErrors, IfFileExists, StrCmp \ub4f1\uc758 \uba85\ub839\uc5b4\ub97c \uc0ac\uc6a9\ud560\ub54c \ub9ce\uc774 \uc0ac\uc6a9\ud55c\ub2e4. Label\uc758 \uacbd\uc6b0 \uc9c0\uc5ed\uc801\uc73c\ub85c\ub9cc \uc778\uc2dd\ub418\ubbc0\ub85c \uac19\uc740 function\uc774\ub098 section \ub0b4\ubd80\uc5d0\uc11c\ub9cc \uc0ac\uc6a9\ud560 \uc218 \uc788\ub2e4. \ub610\ud55c Label\uc740 -, +, !, $ \ub610\ub294 0-9 \ub85c \uc2dc\uc791\ud560 \uc218\ub294 \uc5c6\ub2e4. Label \uc744 \uc0ac\uc6a9\ud558\ub294 \uac83\uc740 \ub2e4\uc74c\uacfc \uac19\uc774 \ud55c\ub2e4. [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[17],"tags":[],"class_list":["post-131","post","type-post","status-publish","format-standard","hentry","category-development_dev_tools"],"_links":{"self":[{"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/131","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=131"}],"version-history":[{"count":0,"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/131\/revisions"}],"wp:attachment":[{"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=131"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=131"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hasu0707.duckdns.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=131"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}