.alignnone {
    border-bottom-color: currentColor;
    border-bottom-style: none;
    border-bottom-width: 0;
    border-left-color: currentColor;
    border-left-style: none;
    border-left-width: 0;
    border-right-color: currentColor;
    border-right-style: none;
    border-right-width: 0;
    border-top-color: currentColor;
    border-top-style: none;
    border-top-width: 0;
    height: 4em;
    max-width: 100%;
    width: 11.83em
    }
.calibre {
    -ms-text-size-adjust: 100%;
    -webkit-text-size-adjust: 100%;
    font-size: 1em
    }
.calibre1 {
    display: block;
    font-size: 1em;
    margin-bottom: 0;
    margin-left: 5pt;
    margin-right: 5pt;
    margin-top: 0;
    padding-left: 0;
    padding-right: 0
    }
.calibre2 {
    display: block;
    font-family: Noto Serif, serif;
    margin-bottom: 80px
    }
.calibre3 {
    display: block
    }
.calibre4 {
    border-bottom-color: currentColor;
    border-bottom-style: none;
    border-bottom-width: medium;
    border-left-color: currentColor;
    border-left-style: none;
    border-left-width: medium;
    border-right-color: currentColor;
    border-right-style: none;
    border-right-width: medium;
    border-top-color: currentColor;
    border-top-style: none;
    border-top-width: medium;
    display: block;
    margin-bottom: 32px;
    margin-left: 0;
    margin-right: 0;
    margin-top: 0;
    padding-bottom: 0;
    padding-left: 0;
    padding-right: 0;
    padding-top: 0
    }
.calibre5 {
    border-bottom-color: currentColor;
    border-bottom-style: none;
    border-bottom-width: medium;
    border-left-color: currentColor;
    border-left-style: none;
    border-left-width: medium;
    border-right-color: currentColor;
    border-right-style: none;
    border-right-width: medium;
    border-top-color: currentColor;
    border-top-style: none;
    border-top-width: medium;
    display: block;
    margin-bottom: 0;
    margin-left: 0;
    margin-right: 0;
    margin-top: 0;
    padding-bottom: 0;
    padding-left: 0;
    padding-right: 0;
    padding-top: 0
    }
.calibre6 {
    font-style: normal;
    font-weight: bold
    }
.calibre7 {
    -moz-hyphens: auto;
    -webkit-hyphens: auto;
    -webkit-margin-after: 0;
    -webkit-margin-before: 0;
    color: unset;
    display: block;
    font-family: "Noto serif", serif;
    font-size: 1em;
    font-weight: 400;
    hyphens: auto;
    line-height: 1.75;
    margin-bottom: 24px;
    margin-left: 0;
    margin-right: 0;
    margin-top: 0;
    padding-bottom: 0;
    padding-left: 0;
    padding-right: 0;
    padding-top: 0;
    text-align: left;
    text-indent: unset
    }
.calibre8 {
    -moz-hyphens: auto;
    -webkit-hyphens: auto;
    -webkit-margin-after: 0;
    -webkit-margin-before: 0;
    color: unset;
    display: block;
    font-family: "Noto serif", serif;
    font-size: 0.58333em;
    font-weight: 400;
    hyphens: auto;
    line-height: 1.75;
    margin-bottom: 24px;
    margin-left: 0;
    margin-right: 0;
    margin-top: 0;
    padding-bottom: 0;
    padding-left: 0;
    padding-right: 0;
    padding-top: 0;
    text-align: left;
    text-indent: unset
    }
.calibre9 {
    color: #d3002d;
    font-family: "Noto serif", serif;
    font-size: 1em;
    font-weight: normal;
    text-decoration: underline;
    word-break: break-all
    }
.calibre10 {
    border-bottom-color: currentColor;
    border-bottom-style: none;
    border-bottom-width: 0;
    border-left-color: currentColor;
    border-left-style: none;
    border-left-width: 0;
    border-right-color: currentColor;
    border-right-style: none;
    border-right-width: 0;
    border-top-color: currentColor;
    border-top-style: none;
    border-top-width: 0;
    height: 6.75em;
    max-width: 100%;
    width: 30.58em
    }
.calibre11 {
    -webkit-margin-after: 0;
    -webkit-margin-before: 0;
    display: block;
    font-weight: normal;
    line-height: 1.5rem;
    list-style-image: none;
    list-style-position: outside;
    list-style-type: none;
    margin-bottom: 24px;
    margin-left: 24px;
    margin-right: 0;
    margin-top: 24px;
    padding-bottom: 0;
    padding-left: 0;
    padding-right: 0;
    padding-top: 0
    }
.calibre12 {
    -moz-hyphens: auto;
    -webkit-hyphens: auto;
    display: list-item;
    font-family: "Noto serif", serif;
    font-size: 1em;
    font-weight: 400;
    hyphens: auto;
    line-height: 1.75;
    list-style-image: none;
    list-style-position: outside;
    list-style-type: disc;
    margin-bottom: 0;
    margin-left: 0;
    margin-right: 0;
    margin-top: 0;
    text-align: left
    }
.calibre13 {
    -moz-hyphens: auto;
    -webkit-hyphens: auto;
    -webkit-margin-after: 0;
    -webkit-margin-before: 0;
    color: unset;
    display: block;
    font-family: "Noto serif", serif;
    font-size: 1em;
    font-weight: 400;
    hyphens: auto;
    line-height: 1.75;
    margin-bottom: 0;
    margin-left: 0;
    margin-right: 0;
    margin-top: 0;
    padding-bottom: 0;
    padding-left: 0;
    padding-right: 0;
    padding-top: 0;
    text-align: left;
    text-indent: unset
    }
.calibre14 {
    font-family: monospace;
    font-size: 0.75em;
    font-weight: normal
    }
.calibre15 {
    font-style: italic
    }
.calibre16 {
    -webkit-margin-after: 0;
    -webkit-margin-before: 0;
    display: block;
    font-weight: normal;
    line-height: 1.5rem;
    list-style-image: none;
    list-style-position: outside;
    list-style-type: none;
    margin-bottom: 0;
    margin-left: 24px;
    margin-right: 0;
    margin-top: 0;
    padding-bottom: 0;
    padding-left: 0;
    padding-right: 0;
    padding-top: 0
    }
.calibre17 {
    border-bottom-color: currentColor;
    border-bottom-style: none;
    border-bottom-width: medium;
    border-left-color: currentColor;
    border-left-style: none;
    border-left-width: medium;
    border-right-color: currentColor;
    border-right-style: none;
    border-right-width: medium;
    border-top-color: currentColor;
    border-top-style: none;
    border-top-width: medium;
    display: block;
    margin-bottom: 0;
    margin-left: 0;
    margin-right: 0;
    margin-top: 5em;
    padding-bottom: 0;
    padding-left: 0;
    padding-right: 0;
    padding-top: 0
    }
.calibre18 {
    -webkit-hyphens: none;
    -webkit-margin-after: 0;
    -webkit-margin-before: 0;
    background-color: #EEF2F6;
    border-left-color: black;
    border-left-style: solid;
    border-left-width: 1px;
    color: #3D3B49;
    display: block;
    font-family: "Consolas", Courier, monospace;
    font-size: 1em;
    font-weight: normal;
    line-height: 1.5;
    margin-bottom: 24px;
    margin-left: 0;
    margin-right: 0;
    margin-top: 24px;
    overflow-x: auto;
    overflow-y: hidden;
    padding-bottom: 0.75em;
    padding-left: 1.5em;
    padding-right: 1.5em;
    padding-top: 0.75em;
    white-space: pre;
    word-break: keep-all;
    word-wrap: initial
    }
.calibre19 {
    border-bottom-color: currentColor;
    border-bottom-style: none;
    border-bottom-width: 0;
    border-left-color: currentColor;
    border-left-style: none;
    border-left-width: 0;
    border-right-color: currentColor;
    border-right-style: none;
    border-right-width: 0;
    border-top-color: currentColor;
    border-top-style: none;
    border-top-width: 0;
    height: 7.67em;
    max-width: 100%;
    width: 26.33em
    }
.calibre20 {
    border-bottom-color: currentColor;
    border-bottom-style: none;
    border-bottom-width: 0;
    border-left-color: currentColor;
    border-left-style: none;
    border-left-width: 0;
    border-right-color: currentColor;
    border-right-style: none;
    border-right-width: 0;
    border-top-color: currentColor;
    border-top-style: none;
    border-top-width: 0;
    height: 21.25em;
    max-width: 100%;
    width: 37.33em
    }
.calibre21 {
    font-family: monospace;
    font-size: 0.77778em;
    font-weight: normal
    }
.calibre22 {
    -moz-hyphens: auto;
    -webkit-hyphens: auto;
    -webkit-margin-after: 0;
    -webkit-margin-before: 0;
    color: unset;
    display: block;
    font-family: "Noto serif", serif;
    font-size: 1em;
    font-weight: 400;
    hyphens: auto;
    line-height: 1.75;
    margin-bottom: 24px;
    margin-left: 0;
    margin-right: 0;
    margin-top: 0;
    padding-bottom: 0;
    padding-left: 90px;
    padding-right: 0;
    padding-top: 0;
    text-align: left;
    text-indent: unset
    }
.calibre23 {
    -moz-hyphens: auto;
    -webkit-hyphens: auto;
    -webkit-margin-after: 0;
    -webkit-margin-before: 0;
    color: unset;
    display: block;
    font-family: "Noto serif", serif;
    font-size: 1em;
    font-weight: 400;
    hyphens: auto;
    line-height: 1.75;
    margin-bottom: 24px;
    margin-left: 0;
    margin-right: 0;
    margin-top: 0;
    padding-bottom: 0;
    padding-left: 60px;
    padding-right: 0;
    padding-top: 0;
    text-align: left;
    text-indent: unset
    }
.calibre24 {
    border-bottom-color: currentColor;
    border-bottom-style: none;
    border-bottom-width: 0;
    border-left-color: currentColor;
    border-left-style: none;
    border-left-width: 0;
    border-right-color: currentColor;
    border-right-style: none;
    border-right-width: 0;
    border-top-color: currentColor;
    border-top-style: none;
    border-top-width: 0;
    height: 9.75em;
    max-width: 100%;
    width: 15.42em
    }
.calibre25 {
    border-bottom-color: currentColor;
    border-bottom-style: none;
    border-bottom-width: 0;
    border-left-color: currentColor;
    border-left-style: none;
    border-left-width: 0;
    border-right-color: currentColor;
    border-right-style: none;
    border-right-width: 0;
    border-top-color: currentColor;
    border-top-style: none;
    border-top-width: 0;
    height: 7.92em;
    max-width: 100%;
    width: 28.83em
    }
.calibre26 {
    border-bottom-color: currentColor;
    border-bottom-style: none;
    border-bottom-width: 0;
    border-left-color: currentColor;
    border-left-style: none;
    border-left-width: 0;
    border-right-color: currentColor;
    border-right-style: none;
    border-right-width: 0;
    border-top-color: currentColor;
    border-top-style: none;
    border-top-width: 0;
    height: 11em;
    max-width: 100%;
    width: 21.58em
    }
.calibre27 {
    border-bottom-color: currentColor;
    border-bottom-style: none;
    border-bottom-width: 0;
    border-left-color: currentColor;
    border-left-style: none;
    border-left-width: 0;
    border-right-color: currentColor;
    border-right-style: none;
    border-right-width: 0;
    border-top-color: currentColor;
    border-top-style: none;
    border-top-width: 0;
    height: 19.83em;
    max-width: 100%;
    width: 26em
    }
.calibre28 {
    border-bottom-color: currentColor;
    border-bottom-style: none;
    border-bottom-width: 0;
    border-left-color: currentColor;
    border-left-style: none;
    border-left-width: 0;
    border-right-color: currentColor;
    border-right-style: none;
    border-right-width: 0;
    border-top-color: currentColor;
    border-top-style: none;
    border-top-width: 0;
    height: 46.58em;
    max-width: 100%;
    width: 24.42em
    }
.calibre29 {
    border-bottom-color: currentColor;
    border-bottom-style: none;
    border-bottom-width: 0;
    border-left-color: currentColor;
    border-left-style: none;
    border-left-width: 0;
    border-right-color: currentColor;
    border-right-style: none;
    border-right-width: 0;
    border-top-color: currentColor;
    border-top-style: none;
    border-top-width: 0;
    height: 35.58em;
    max-width: 100%;
    width: 40.58em
    }
.calibre30 {
    border-bottom-color: currentColor;
    border-bottom-style: none;
    border-bottom-width: 0;
    border-left-color: currentColor;
    border-left-style: none;
    border-left-width: 0;
    border-right-color: currentColor;
    border-right-style: none;
    border-right-width: 0;
    border-top-color: currentColor;
    border-top-style: none;
    border-top-width: 0;
    height: 41.08em;
    max-width: 100%;
    width: 21.92em
    }
.calibre31 {
    border-bottom-color: currentColor;
    border-bottom-style: none;
    border-bottom-width: 0;
    border-left-color: currentColor;
    border-left-style: none;
    border-left-width: 0;
    border-right-color: currentColor;
    border-right-style: none;
    border-right-width: 0;
    border-top-color: currentColor;
    border-top-style: none;
    border-top-width: 0;
    height: 33em;
    max-width: 100%;
    width: 40.25em
    }
.calibre32 {
    border-bottom-color: currentColor;
    border-bottom-style: none;
    border-bottom-width: 0;
    border-left-color: currentColor;
    border-left-style: none;
    border-left-width: 0;
    border-right-color: currentColor;
    border-right-style: none;
    border-right-width: 0;
    border-top-color: currentColor;
    border-top-style: none;
    border-top-width: 0;
    height: 15.92em;
    max-width: 100%;
    width: 19.92em
    }
.calibre33 {
    border-bottom-color: currentColor;
    border-bottom-style: none;
    border-bottom-width: 0;
    border-left-color: currentColor;
    border-left-style: none;
    border-left-width: 0;
    border-right-color: currentColor;
    border-right-style: none;
    border-right-width: 0;
    border-top-color: currentColor;
    border-top-style: none;
    border-top-width: 0;
    height: 42.92em;
    max-width: 100%;
    width: 23em
    }
.calibre34 {
    border-bottom-color: currentColor;
    border-bottom-style: none;
    border-bottom-width: 0;
    border-left-color: currentColor;
    border-left-style: none;
    border-left-width: 0;
    border-right-color: currentColor;
    border-right-style: none;
    border-right-width: 0;
    border-top-color: currentColor;
    border-top-style: none;
    border-top-width: 0;
    height: 13.25em;
    max-width: 100%;
    width: 10.75em
    }
.cdpalignleft {
    -webkit-margin-after: 0;
    -webkit-margin-before: 0;
    background-color: inherit;
    display: block;
    line-height: 1.5rem;
    margin-bottom: 0;
    margin-left: 0;
    margin-right: 0;
    margin-top: 0;
    padding-bottom: 0;
    padding-left: 0;
    padding-right: 0;
    padding-top: 0;
    text-align: left;
    width: 100%
    }
.cdpalignleft1 {
    -moz-hyphens: auto;
    -webkit-hyphens: auto;
    -webkit-margin-after: 0;
    -webkit-margin-before: 0;
    color: unset;
    display: block;
    font-family: "Noto serif", serif;
    font-size: 1em;
    font-weight: 400;
    hyphens: auto;
    line-height: 1.75;
    margin-bottom: 24px;
    margin-left: 0;
    margin-right: 0;
    margin-top: 0;
    padding-bottom: 0;
    padding-left: 0;
    padding-right: 0;
    padding-top: 0;
    text-align: left;
    text-indent: unset;
    width: 100%
    }
.chapter {
    -moz-hyphens: auto;
    -webkit-hyphens: auto;
    display: list-item;
    font-family: "Noto serif", serif;
    font-size: 1em;
    font-weight: 400;
    hyphens: auto;
    line-height: 1.75;
    list-style-image: none;
    list-style-position: outside;
    list-style-type: decimal;
    margin-bottom: 0;
    margin-left: 0;
    margin-right: 0;
    margin-top: 0;
    text-align: left
    }
.front-matter {
    -moz-hyphens: auto;
    -webkit-hyphens: auto;
    display: list-item;
    font-family: "Noto serif", serif;
    font-size: 1em;
    font-weight: 400;
    hyphens: auto;
    line-height: 1.75;
    list-style-image: none;
    list-style-position: outside;
    list-style-type: none;
    margin-bottom: 0;
    margin-left: 0;
    margin-right: 0;
    margin-top: 0;
    text-align: left
    }
.header-title {
    background-color: transparent;
    border-bottom-color: currentColor;
    border-bottom-style: none;
    border-bottom-width: medium;
    border-left-color: currentColor;
    border-left-style: none;
    border-left-width: medium;
    border-right-color: currentColor;
    border-right-style: none;
    border-right-width: medium;
    border-top-color: currentColor;
    border-top-style: none;
    border-top-width: medium;
    color: #3d3b49;
    display: block;
    font-family: "Noto Serif", serif;
    font-size: 1.83333em;
    font-style: normal;
    font-weight: 100;
    line-height: 1.5;
    margin-bottom: 32px;
    margin-left: 0;
    margin-right: 0;
    margin-top: 0;
    padding-bottom: 0;
    padding-left: 0;
    padding-right: 0;
    padding-top: 0;
    text-align: left;
    word-wrap: break-word
    }
.mce-root {
    -webkit-margin-after: 0;
    -webkit-margin-before: 0;
    background-color: inherit;
    display: block;
    font-size: 0.58333em;
    font-weight: normal;
    line-height: 1.5rem;
    margin-bottom: 0;
    margin-left: 0;
    margin-right: 0;
    margin-top: 0;
    padding-bottom: 0;
    padding-left: 30px;
    padding-right: 0;
    padding-top: 0;
    text-align: center;
    width: 100%
    }
.packt_figref {
    -webkit-margin-after: 0;
    -webkit-margin-before: 0;
    background-color: inherit;
    display: block;
    font-size: 0.58333em;
    font-weight: normal;
    line-height: 1.5rem;
    margin-bottom: 0;
    margin-left: 0;
    margin-right: 0;
    margin-top: 0;
    padding-bottom: 0;
    padding-left: 0;
    padding-right: 0;
    padding-top: 0;
    text-align: center;
    width: 100%
    }
.packt_infobox {
    -webkit-margin-after: 0;
    -webkit-margin-before: 0;
    background-color: inherit;
    background-image: url(images/000008.png);
    background-position: left center;
    background-repeat: no-repeat;
    background-size: 2.5em;
    color: black;
    display: block;
    font-size: 0.75em;
    font-style: italic;
    font-weight: normal;
    line-height: 1.5rem;
    margin-bottom: 0;
    margin-left: 0;
    margin-right: 0;
    margin-top: 0;
    min-height: 2.5em;
    padding-bottom: 0;
    padding-left: 0;
    padding-right: 0;
    padding-top: 0
    }
.packt_quote {
    -webkit-margin-after: 0;
    -webkit-margin-before: 0;
    background-color: inherit;
    color: black;
    display: block;
    font-size: 0.75em;
    font-style: italic;
    font-weight: normal;
    line-height: 1.5rem;
    margin-bottom: 0;
    margin-left: 0;
    margin-right: 0;
    margin-top: 0;
    padding-bottom: 0;
    padding-left: 0;
    padding-right: 0;
    padding-top: 0
    }
.packt_tip {
    -webkit-margin-after: 0;
    -webkit-margin-before: 0;
    background-color: inherit;
    background-image: url(images/000005.png);
    background-position: left center;
    background-repeat: no-repeat;
    background-size: 2.5em;
    color: black;
    display: block;
    font-size: 0.75em;
    font-style: italic;
    font-weight: normal;
    line-height: 1.5rem;
    margin-bottom: 1rem;
    margin-left: 0;
    margin-right: 0;
    margin-top: 1rem;
    min-height: 2.5em;
    padding-bottom: 0;
    padding-left: 6rem;
    padding-right: 0;
    padding-top: 0
    }
.title-page-name {
    -webkit-margin-after: 0;
    -webkit-margin-before: 0;
    background-color: inherit;
    display: block;
    line-height: 1.5rem;
    margin-bottom: 0;
    margin-left: 0;
    margin-right: 0;
    margin-top: 0;
    padding-bottom: 0;
    padding-left: 0;
    padding-right: 0;
    padding-top: 0
    }
.pcalibre:link {
    color: #d3002d;
    font-family: "Noto serif", serif;
    font-size: inherit;
    text-decoration: underline
    }
.pcalibre1:visited {
    color: #d3002d;
    font-family: "Noto serif", serif;
    font-size: inherit;
    text-decoration: underline
    }
.pcalibre2:focus {
    color: #9f0027;
    font-size: inherit;
    text-decoration-line: underline;
    text-decoration-style: solid
    }
.pcalibre4:before {
    background: transparent;
    margin-bottom: 0;
    margin-left: 0;
    margin-right: 0;
    margin-top: 0
    }
.pcalibre5:after {
    background: transparent;
    margin-bottom: 0;
    margin-left: 0;
    margin-right: 0;
    margin-top: 0
    }
.pcalibre3:hover {
    color: #9f0027;
    font-size: inherit;
    text-decoration-line: underline;
    text-decoration-style: solid
    }

@page {
    margin-bottom: 5pt;
    margin-top: 5pt
    }

