WO2018004523A1 - Plc virtual patching and automated distribution of security context - Google Patents
Plc virtual patching and automated distribution of security context Download PDFInfo
- Publication number
- WO2018004523A1 WO2018004523A1 PCT/US2016/039726 US2016039726W WO2018004523A1 WO 2018004523 A1 WO2018004523 A1 WO 2018004523A1 US 2016039726 W US2016039726 W US 2016039726W WO 2018004523 A1 WO2018004523 A1 WO 2018004523A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- virtual
- security
- information
- industrial
- virtual machine
- Prior art date
Links
- 238000009826 distribution Methods 0.000 title description 8
- 238000009776 industrial production Methods 0.000 claims abstract description 11
- 238000001514 detection method Methods 0.000 claims description 39
- 238000000034 method Methods 0.000 claims description 35
- 230000004044 response Effects 0.000 claims description 23
- 238000004519 manufacturing process Methods 0.000 claims description 14
- 230000004048 modification Effects 0.000 claims description 6
- 238000006011 modification reaction Methods 0.000 claims description 6
- 238000004891 communication Methods 0.000 claims description 5
- 230000000875 corresponding Effects 0.000 claims description 5
- 230000000903 blocking Effects 0.000 claims description 2
- 230000006399 behavior Effects 0.000 description 6
- 239000000203 mixture Substances 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 238000004886 process control Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 230000002411 adverse Effects 0.000 description 2
- 238000010192 crystallographic characterization Methods 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000002265 prevention Effects 0.000 description 2
- 230000002633 protecting Effects 0.000 description 2
- RZCIEJXAILMSQK-JXOAFFINSA-N 5-Methyluridine triphosphate Chemical compound data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0naXNvLTg4NTktMSc/Pgo8c3ZnIHZlcnNpb249JzEuMScgYmFzZVByb2ZpbGU9J2Z1bGwnCiAgICAgICAgICAgICAgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJwogICAgICAgICAgICAgICAgICAgICAgeG1sbnM6cmRraXQ9J2h0dHA6Ly93d3cucmRraXQub3JnL3htbCcKICAgICAgICAgICAgICAgICAgICAgIHhtbG5zOnhsaW5rPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJwogICAgICAgICAgICAgICAgICB4bWw6c3BhY2U9J3ByZXNlcnZlJwp3aWR0aD0nMzAwcHgnIGhlaWdodD0nMzAwcHgnIHZpZXdCb3g9JzAgMCAzMDAgMzAwJz4KPCEtLSBFTkQgT0YgSEVBREVSIC0tPgo8cmVjdCBzdHlsZT0nb3BhY2l0eToxLjA7ZmlsbDojRkZGRkZGO3N0cm9rZTpub25lJyB3aWR0aD0nMzAwLjAnIGhlaWdodD0nMzAwLjAnIHg9JzAuMCcgeT0nMC4wJz4gPC9yZWN0Pgo8cGF0aCBjbGFzcz0nYm9uZC0wIGF0b20tMCBhdG9tLTEnIGQ9J00gOTUuNiwxODEuMSBMIDg5LjksMTc2LjEnIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiNFODQyMzU7c3Ryb2tlLXdpZHRoOjIuMHB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTAgYXRvbS0wIGF0b20tMScgZD0nTSA4OS45LDE3Ni4xIEwgODQuMiwxNzEuMicgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6IzNCNDE0MztzdHJva2Utd2lkdGg6Mi4wcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtMCBhdG9tLTAgYXRvbS0xJyBkPSdNIDkyLjQsMTg0LjkgTCA4Ni43LDE3OS45JyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojRTg0MjM1O3N0cm9rZS13aWR0aDoyLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0wIGF0b20tMCBhdG9tLTEnIGQ9J00gODYuNywxNzkuOSBMIDgwLjksMTc0LjknIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiMzQjQxNDM7c3Ryb2tlLXdpZHRoOjIuMHB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTEgYXRvbS0xIGF0b20tMicgZD0nTSA4Mi42LDE3My4xIEwgNzQuOSwxNzUuNycgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6IzNCNDE0MztzdHJva2Utd2lkdGg6Mi4wcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtMSBhdG9tLTEgYXRvbS0yJyBkPSdNIDc0LjksMTc1LjcgTCA2Ny4zLDE3OC4zJyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojNDI4NEY0O3N0cm9rZS13aWR0aDoyLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0yOSBhdG9tLTggYXRvbS0xJyBkPSdNIDg1LjMsMTU5LjEgTCA4My45LDE2Ni4xJyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojNDI4NEY0O3N0cm9rZS13aWR0aDoyLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0yOSBhdG9tLTggYXRvbS0xJyBkPSdNIDgzLjksMTY2LjEgTCA4Mi42LDE3My4xJyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojM0I0MTQzO3N0cm9rZS13aWR0aDoyLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0yIGF0b20tMiBhdG9tLTMnIGQ9J00gNTEuNiwxNzQuOCBMIDQ1LjksMTY5LjgnIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiM0Mjg0RjQ7c3Ryb2tlLXdpZHRoOjIuMHB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTIgYXRvbS0yIGF0b20tMycgZD0nTSA0NS45LDE2OS44IEwgNDAuMiwxNjQuOScgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6IzNCNDE0MztzdHJva2Utd2lkdGg6Mi4wcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtMyBhdG9tLTMgYXRvbS00JyBkPSdNIDM5LjQsMTYyLjUgTCAzMS44LDE2NS4xJyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojM0I0MTQzO3N0cm9rZS13aWR0aDoyLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0zIGF0b20tMyBhdG9tLTQnIGQ9J00gMzEuOCwxNjUuMSBMIDI0LjEsMTY3LjgnIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiNFODQyMzU7c3Ryb2tlLXdpZHRoOjIuMHB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTMgYXRvbS0zIGF0b20tNCcgZD0nTSA0MS4wLDE2Ny4yIEwgMzMuNCwxNjkuOScgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6IzNCNDE0MztzdHJva2Utd2lkdGg6Mi4wcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtMyBhdG9tLTMgYXRvbS00JyBkPSdNIDMzLjQsMTY5LjkgTCAyNS44LDE3Mi41JyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojRTg0MjM1O3N0cm9rZS13aWR0aDoyLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC00IGF0b20tMyBhdG9tLTUnIGQ9J00gNDAuMiwxNjQuOSBMIDQ0LjksMTQwLjQnIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiMzQjQxNDM7c3Ryb2tlLXdpZHRoOjIuMHB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTUgYXRvbS01IGF0b20tNicgZD0nTSA0NC45LDE0MC40IEwgMjYuMSwxMjQuMScgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6IzNCNDE0MztzdHJva2Utd2lkdGg6Mi4wcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtNiBhdG9tLTUgYXRvbS03JyBkPSdNIDQ0LjksMTQwLjQgTCA2OC41LDEzMi4zJyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojM0I0MTQzO3N0cm9rZS13aWR0aDoyLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC02IGF0b20tNSBhdG9tLTcnIGQ9J00gNTAuMSwxNDMuOSBMIDY2LjYsMTM4LjInIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiMzQjQxNDM7c3Ryb2tlLXdpZHRoOjIuMHB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTcgYXRvbS03IGF0b20tOCcgZD0nTSA2OC41LDEzMi4zIEwgNzQuMiwxMzcuMicgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6IzNCNDE0MztzdHJva2Utd2lkdGg6Mi4wcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtNyBhdG9tLTcgYXRvbS04JyBkPSdNIDc0LjIsMTM3LjIgTCA3OS45LDE0Mi4yJyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojNDI4NEY0O3N0cm9rZS13aWR0aDoyLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC04IGF0b20tOSBhdG9tLTgnIGQ9J00gMTEwLjgsMTQwLjQgTCAxMDIuOCwxNDEuOSBMIDEwMy42LDE0NC4yIFonIHN0eWxlPSdmaWxsOiMzQjQxNDM7ZmlsbC1ydWxlOmV2ZW5vZGQ7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOiMzQjQxNDM7c3Ryb2tlLXdpZHRoOjIuMHB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjE7JyAvPgo8cGF0aCBjbGFzcz0nYm9uZC04IGF0b20tOSBhdG9tLTgnIGQ9J00gMTAyLjgsMTQxLjkgTCA5Ni40LDE0OC4xIEwgOTQuOCwxNDMuMyBaJyBzdHlsZT0nZmlsbDojNDI4NEY0O2ZpbGwtcnVsZTpldmVub2RkO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTojNDI4NEY0O3N0cm9rZS13aWR0aDoyLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxOycgLz4KPHBhdGggY2xhc3M9J2JvbmQtOCBhdG9tLTkgYXRvbS04JyBkPSdNIDEwMi44LDE0MS45IEwgMTAzLjYsMTQ0LjIgTCA5Ni40LDE0OC4xIFonIHN0eWxlPSdmaWxsOiM0Mjg0RjQ7ZmlsbC1ydWxlOmV2ZW5vZGQ7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOiM0Mjg0RjQ7c3Ryb2tlLXdpZHRoOjIuMHB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjE7JyAvPgo8cGF0aCBjbGFzcz0nYm9uZC05IGF0b20tOSBhdG9tLTEwJyBkPSdNIDExMC44LDE0MC40IEwgMTE4LjEsMTE2LjYnIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiMzQjQxNDM7c3Ryb2tlLXdpZHRoOjIuMHB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTMwIGF0b20tMjkgYXRvbS05JyBkPSdNIDEyMy42LDE0OS4zIEwgMTE3LjIsMTQ0LjknIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiNFODQyMzU7c3Ryb2tlLXdpZHRoOjIuMHB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTMwIGF0b20tMjkgYXRvbS05JyBkPSdNIDExNy4yLDE0NC45IEwgMTEwLjgsMTQwLjQnIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiMzQjQxNDM7c3Ryb2tlLXdpZHRoOjIuMHB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTEwIGF0b20tMTAgYXRvbS0xMScgZD0nTSAxMTYuMCwxMTIuNCBMIDExNC42LDExMy40JyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojM0I0MTQzO3N0cm9rZS13aWR0aDoxLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0xMCBhdG9tLTEwIGF0b20tMTEnIGQ9J00gMTEzLjgsMTA4LjIgTCAxMTEuMiwxMTAuMicgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6I0U4NDIzNTtzdHJva2Utd2lkdGg6MS4wcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtMTAgYXRvbS0xMCBhdG9tLTExJyBkPSdNIDExMS43LDEwNC4wIEwgMTA3LjcsMTA3LjAnIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiNFODQyMzU7c3Ryb2tlLXdpZHRoOjEuMHB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTExIGF0b20tMTAgYXRvbS0xMicgZD0nTSAxMTguMSwxMTYuNiBMIDE0My4wLDExNi4xJyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojM0I0MTQzO3N0cm9rZS13aWR0aDoyLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0xMiBhdG9tLTEyIGF0b20tMTMnIGQ9J00gMTQ2LjMsMTEyLjkgTCAxNDQuOSwxMTEuOScgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6IzNCNDE0MztzdHJva2Utd2lkdGg6MS4wcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtMTIgYXRvbS0xMiBhdG9tLTEzJyBkPSdNIDE0OS42LDEwOS42IEwgMTQ2LjksMTA3LjcnIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiNFODQyMzU7c3Ryb2tlLXdpZHRoOjEuMHB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTEyIGF0b20tMTIgYXRvbS0xMycgZD0nTSAxNTIuOSwxMDYuNCBMIDE0OC44LDEwMy41JyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojRTg0MjM1O3N0cm9rZS13aWR0aDoxLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0xMyBhdG9tLTEyIGF0b20tMTQnIGQ9J00gMTQzLjAsMTE2LjEgTCAxNTEuMiwxMzkuNycgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6IzNCNDE0MztzdHJva2Utd2lkdGg6Mi4wcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtMTQgYXRvbS0xNCBhdG9tLTE1JyBkPSdNIDE1MS4yLDEzOS43IEwgMTc0LjMsMTQ5LjMgTCAxNzUuNywxNDQuNiBaJyBzdHlsZT0nZmlsbDojM0I0MTQzO2ZpbGwtcnVsZTpldmVub2RkO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTojM0I0MTQzO3N0cm9rZS13aWR0aDoyLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxOycgLz4KPHBhdGggY2xhc3M9J2JvbmQtMjggYXRvbS0xNCBhdG9tLTI5JyBkPSdNIDE1MS4yLDEzOS43IEwgMTQ1LjAsMTQ0LjMnIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiMzQjQxNDM7c3Ryb2tlLXdpZHRoOjIuMHB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTI4IGF0b20tMTQgYXRvbS0yOScgZD0nTSAxNDUuMCwxNDQuMyBMIDEzOC45LDE0OS4wJyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojRTg0MjM1O3N0cm9rZS13aWR0aDoyLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0xNSBhdG9tLTE1IGF0b20tMTYnIGQ9J00gMTc1LjAsMTQ2LjkgTCAxNzYuOCwxNTQuOCcgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6IzNCNDE0MztzdHJva2Utd2lkdGg6Mi4wcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtMTUgYXRvbS0xNSBhdG9tLTE2JyBkPSdNIDE3Ni44LDE1NC44IEwgMTc4LjcsMTYyLjcnIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiNFODQyMzU7c3Ryb2tlLXdpZHRoOjIuMHB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTE2IGF0b20tMTYgYXRvbS0xNycgZD0nTSAxODkuMCwxNzMuOCBMIDE5Mi43LDE3NC45JyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojRTg0MjM1O3N0cm9rZS13aWR0aDoyLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0xNiBhdG9tLTE2IGF0b20tMTcnIGQ9J00gMTkyLjcsMTc0LjkgTCAxOTYuMywxNzYuMCcgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6I0ZGNjBCNztzdHJva2Utd2lkdGg6Mi4wcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtMTcgYXRvbS0xNyBhdG9tLTE4JyBkPSdNIDIwMS4zLDE4OC44IEwgMjAwLjUsMTkxLjUnIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiNGRjYwQjc7c3Ryb2tlLXdpZHRoOjIuMHB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTE3IGF0b20tMTcgYXRvbS0xOCcgZD0nTSAyMDAuNSwxOTEuNSBMIDE5OS43LDE5NC4yJyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojRTg0MjM1O3N0cm9rZS13aWR0aDoyLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0xOCBhdG9tLTE3IGF0b20tMTknIGQ9J00gMjA5LjQsMTcwLjggTCAyMTAuMiwxNjguMicgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6I0ZGNjBCNztzdHJva2Utd2lkdGg6Mi4wcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtMTggYXRvbS0xNyBhdG9tLTE5JyBkPSdNIDIxMC4yLDE2OC4yIEwgMjExLjAsMTY1LjUnIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiNFODQyMzU7c3Ryb2tlLXdpZHRoOjIuMHB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTE4IGF0b20tMTcgYXRvbS0xOScgZD0nTSAyMDQuNiwxNjkuNCBMIDIwNS41LDE2Ni43JyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojRkY2MEI3O3N0cm9rZS13aWR0aDoyLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0xOCBhdG9tLTE3IGF0b20tMTknIGQ9J00gMjA1LjUsMTY2LjcgTCAyMDYuMywxNjQuMScgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6I0U4NDIzNTtzdHJva2Utd2lkdGg6Mi4wcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtMTkgYXRvbS0xNyBhdG9tLTIwJyBkPSdNIDIxMi45LDE4MS4wIEwgMjE2LjUsMTgyLjEnIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiNGRjYwQjc7c3Ryb2tlLXdpZHRoOjIuMHB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTE5IGF0b20tMTcgYXRvbS0yMCcgZD0nTSAyMTYuNSwxODIuMSBMIDIyMC4yLDE4My4yJyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojRTg0MjM1O3N0cm9rZS13aWR0aDoyLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0yMCBhdG9tLTIwIGF0b20tMjEnIGQ9J00gMjM1LjYsMTc4LjkgTCAyMzcuNiwxNzcuMScgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6I0U4NDIzNTtzdHJva2Utd2lkdGg6Mi4wcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtMjAgYXRvbS0yMCBhdG9tLTIxJyBkPSdNIDIzNy42LDE3Ny4xIEwgMjM5LjUsMTc1LjMnIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiNGRjYwQjc7c3Ryb2tlLXdpZHRoOjIuMHB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTIxIGF0b20tMjEgYXRvbS0yMicgZD0nTSAyMzkuNywxNjEuNSBMIDIzOC4wLDE1OS42JyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojRkY2MEI3O3N0cm9rZS13aWR0aDoyLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0yMSBhdG9tLTIxIGF0b20tMjInIGQ9J00gMjM4LjAsMTU5LjYgTCAyMzYuMywxNTcuNycgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6I0U4NDIzNTtzdHJva2Utd2lkdGg6Mi4wcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtMjIgYXRvbS0yMSBhdG9tLTIzJyBkPSdNIDI1MS43LDE3Ny45IEwgMjUzLjUsMTc5LjgnIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiNGRjYwQjc7c3Ryb2tlLXdpZHRoOjIuMHB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTIyIGF0b20tMjEgYXRvbS0yMycgZD0nTSAyNTMuNSwxNzkuOCBMIDI1NS4yLDE4MS42JyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojRTg0MjM1O3N0cm9rZS13aWR0aDoyLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0yMiBhdG9tLTIxIGF0b20tMjMnIGQ9J00gMjU1LjQsMTc0LjUgTCAyNTcuMSwxNzYuNCcgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6I0ZGNjBCNztzdHJva2Utd2lkdGg6Mi4wcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtMjIgYXRvbS0yMSBhdG9tLTIzJyBkPSdNIDI1Ny4xLDE3Ni40IEwgMjU4LjgsMTc4LjInIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiNFODQyMzU7c3Ryb2tlLXdpZHRoOjIuMHB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTIzIGF0b20tMjEgYXRvbS0yNCcgZD0nTSAyNTMuOCwxNjEuOSBMIDI1NS44LDE2MC4xJyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojRkY2MEI3O3N0cm9rZS13aWR0aDoyLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0yMyBhdG9tLTIxIGF0b20tMjQnIGQ9J00gMjU1LjgsMTYwLjEgTCAyNTcuNywxNTguMicgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6I0U4NDIzNTtzdHJva2Utd2lkdGg6Mi4wcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtMjQgYXRvbS0yNCBhdG9tLTI1JyBkPSdNIDI2Mi44LDE0My4yIEwgMjYyLjEsMTQwLjQnIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiNFODQyMzU7c3Ryb2tlLXdpZHRoOjIuMHB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTI0IGF0b20tMjQgYXRvbS0yNScgZD0nTSAyNjIuMSwxNDAuNCBMIDI2MS41LDEzNy43JyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojRkY2MEI3O3N0cm9rZS13aWR0aDoyLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0yNSBhdG9tLTI1IGF0b20tMjYnIGQ9J00gMjUwLjYsMTI5LjQgTCAyNDYuOSwxMzAuMycgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6I0ZGNjBCNztzdHJva2Utd2lkdGg6Mi4wcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtMjUgYXRvbS0yNSBhdG9tLTI2JyBkPSdNIDI0Ni45LDEzMC4zIEwgMjQzLjEsMTMxLjEnIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiNFODQyMzU7c3Ryb2tlLXdpZHRoOjIuMHB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTI2IGF0b20tMjUgYXRvbS0yNycgZD0nTSAyNTcuMSwxMTguOSBMIDI1Ni41LDExNi4yJyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojRkY2MEI3O3N0cm9rZS13aWR0aDoyLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0yNiBhdG9tLTI1IGF0b20tMjcnIGQ9J00gMjU2LjUsMTE2LjIgTCAyNTUuOCwxMTMuNCcgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6I0U4NDIzNTtzdHJva2Utd2lkdGg6Mi4wcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtMjcgYXRvbS0yNSBhdG9tLTI4JyBkPSdNIDI2OC4xLDEyNy45IEwgMjcxLjksMTI3LjAnIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiNGRjYwQjc7c3Ryb2tlLXdpZHRoOjIuMHB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTI3IGF0b20tMjUgYXRvbS0yOCcgZD0nTSAyNzEuOSwxMjcuMCBMIDI3NS43LDEyNi4xJyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojRTg0MjM1O3N0cm9rZS13aWR0aDoyLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0yNyBhdG9tLTI1IGF0b20tMjgnIGQ9J00gMjY3LjAsMTIzLjAgTCAyNzAuOCwxMjIuMScgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6I0ZGNjBCNztzdHJva2Utd2lkdGg6Mi4wcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtMjcgYXRvbS0yNSBhdG9tLTI4JyBkPSdNIDI3MC44LDEyMi4xIEwgMjc0LjYsMTIxLjMnIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiNFODQyMzU7c3Ryb2tlLXdpZHRoOjIuMHB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+Cjx0ZXh0IHg9Jzk4LjQnIHk9JzE5NC40JyBjbGFzcz0nYXRvbS0wJyBzdHlsZT0nZm9udC1zaXplOjlweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjt0ZXh0LWFuY2hvcjpzdGFydDtmaWxsOiNFODQyMzUnID5PPC90ZXh0Pgo8dGV4dCB4PSc1Ni4wJyB5PScxODYuMicgY2xhc3M9J2F0b20tMicgc3R5bGU9J2ZvbnQtc2l6ZTo5cHg7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO2ZvbnQtZmFtaWx5OnNhbnMtc2VyaWY7dGV4dC1hbmNob3I6c3RhcnQ7ZmlsbDojNDI4NEY0JyA+TjwvdGV4dD4KPHRleHQgeD0nNTYuMCcgeT0nMTk1LjAnIGNsYXNzPSdhdG9tLTInIHN0eWxlPSdmb250LXNpemU6OXB4O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtmb250LWZhbWlseTpzYW5zLXNlcmlmO3RleHQtYW5jaG9yOnN0YXJ0O2ZpbGw6IzQyODRGNCcgPkg8L3RleHQ+Cjx0ZXh0IHg9JzEzLjYnIHk9JzE3OC4wJyBjbGFzcz0nYXRvbS00JyBzdHlsZT0nZm9udC1zaXplOjlweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjt0ZXh0LWFuY2hvcjpzdGFydDtmaWxsOiNFODQyMzUnID5PPC90ZXh0Pgo8dGV4dCB4PSc4NC4zJyB5PScxNTMuNicgY2xhc3M9J2F0b20tOCcgc3R5bGU9J2ZvbnQtc2l6ZTo5cHg7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO2ZvbnQtZmFtaWx5OnNhbnMtc2VyaWY7dGV4dC1hbmNob3I6c3RhcnQ7ZmlsbDojNDI4NEY0JyA+TjwvdGV4dD4KPHRleHQgeD0nOTMuNycgeT0nMTAxLjcnIGNsYXNzPSdhdG9tLTExJyBzdHlsZT0nZm9udC1zaXplOjlweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjt0ZXh0LWFuY2hvcjpzdGFydDtmaWxsOiNFODQyMzUnID5IPC90ZXh0Pgo8dGV4dCB4PScxMDAuMScgeT0nMTAxLjcnIGNsYXNzPSdhdG9tLTExJyBzdHlsZT0nZm9udC1zaXplOjlweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjt0ZXh0LWFuY2hvcjpzdGFydDtmaWxsOiNFODQyMzUnID5PPC90ZXh0Pgo8dGV4dCB4PScxNTQuMycgeT0nMTAwLjcnIGNsYXNzPSdhdG9tLTEzJyBzdHlsZT0nZm9udC1zaXplOjlweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjt0ZXh0LWFuY2hvcjpzdGFydDtmaWxsOiNFODQyMzUnID5PPC90ZXh0Pgo8dGV4dCB4PScxNjEuMicgeT0nMTAwLjcnIGNsYXNzPSdhdG9tLTEzJyBzdHlsZT0nZm9udC1zaXplOjlweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjt0ZXh0LWFuY2hvcjpzdGFydDtmaWxsOiNFODQyMzUnID5IPC90ZXh0Pgo8dGV4dCB4PScxNzcuNicgeT0nMTc2LjInIGNsYXNzPSdhdG9tLTE2JyBzdHlsZT0nZm9udC1zaXplOjlweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjt0ZXh0LWFuY2hvcjpzdGFydDtmaWxsOiNFODQyMzUnID5PPC90ZXh0Pgo8dGV4dCB4PScyMDEuNScgeT0nMTgzLjUnIGNsYXNzPSdhdG9tLTE3JyBzdHlsZT0nZm9udC1zaXplOjlweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjt0ZXh0LWFuY2hvcjpzdGFydDtmaWxsOiNGRjYwQjcnID5QPC90ZXh0Pgo8dGV4dCB4PScxOTQuMicgeT0nMjA3LjMnIGNsYXNzPSdhdG9tLTE4JyBzdHlsZT0nZm9udC1zaXplOjlweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjt0ZXh0LWFuY2hvcjpzdGFydDtmaWxsOiNFODQyMzUnID5PPC90ZXh0Pgo8dGV4dCB4PScyMDEuMScgeT0nMjA3LjMnIGNsYXNzPSdhdG9tLTE4JyBzdHlsZT0nZm9udC1zaXplOjlweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjt0ZXh0LWFuY2hvcjpzdGFydDtmaWxsOiNFODQyMzUnID5IPC90ZXh0Pgo8dGV4dCB4PScyMDguNycgeT0nMTU5LjYnIGNsYXNzPSdhdG9tLTE5JyBzdHlsZT0nZm9udC1zaXplOjlweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjt0ZXh0LWFuY2hvcjpzdGFydDtmaWxsOiNFODQyMzUnID5PPC90ZXh0Pgo8dGV4dCB4PScyMjUuMycgeT0nMTkwLjcnIGNsYXNzPSdhdG9tLTIwJyBzdHlsZT0nZm9udC1zaXplOjlweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjt0ZXh0LWFuY2hvcjpzdGFydDtmaWxsOiNFODQyMzUnID5PPC90ZXh0Pgo8dGV4dCB4PScyNDMuNScgeT0nMTczLjcnIGNsYXNzPSdhdG9tLTIxJyBzdHlsZT0nZm9udC1zaXplOjlweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjt0ZXh0LWFuY2hvcjpzdGFydDtmaWxsOiNGRjYwQjcnID5QPC90ZXh0Pgo8dGV4dCB4PScyMjAuMScgeT0nMTU1LjUnIGNsYXNzPSdhdG9tLTIyJyBzdHlsZT0nZm9udC1zaXplOjlweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjt0ZXh0LWFuY2hvcjpzdGFydDtmaWxsOiNFODQyMzUnID5IPC90ZXh0Pgo8dGV4dCB4PScyMjYuNScgeT0nMTU1LjUnIGNsYXNzPSdhdG9tLTIyJyBzdHlsZT0nZm9udC1zaXplOjlweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjt0ZXh0LWFuY2hvcjpzdGFydDtmaWxsOiNFODQyMzUnID5PPC90ZXh0Pgo8dGV4dCB4PScyNjAuNicgeT0nMTkxLjknIGNsYXNzPSdhdG9tLTIzJyBzdHlsZT0nZm9udC1zaXplOjlweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjt0ZXh0LWFuY2hvcjpzdGFydDtmaWxsOiNFODQyMzUnID5PPC90ZXh0Pgo8dGV4dCB4PScyNjEuNycgeT0nMTU2LjcnIGNsYXNzPSdhdG9tLTI0JyBzdHlsZT0nZm9udC1zaXplOjlweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjt0ZXh0LWFuY2hvcjpzdGFydDtmaWxsOiNFODQyMzUnID5PPC90ZXh0Pgo8dGV4dCB4PScyNTYuMScgeT0nMTMyLjQnIGNsYXNzPSdhdG9tLTI1JyBzdHlsZT0nZm9udC1zaXplOjlweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjt0ZXh0LWFuY2hvcjpzdGFydDtmaWxsOiNGRjYwQjcnID5QPC90ZXh0Pgo8dGV4dCB4PScyMjUuNCcgeT0nMTM4LjAnIGNsYXNzPSdhdG9tLTI2JyBzdHlsZT0nZm9udC1zaXplOjlweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjt0ZXh0LWFuY2hvcjpzdGFydDtmaWxsOiNFODQyMzUnID5IPC90ZXh0Pgo8dGV4dCB4PScyMzEuOCcgeT0nMTM4LjAnIGNsYXNzPSdhdG9tLTI2JyBzdHlsZT0nZm9udC1zaXplOjlweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjt0ZXh0LWFuY2hvcjpzdGFydDtmaWxsOiNFODQyMzUnID5PPC90ZXh0Pgo8dGV4dCB4PScyNTAuNScgeT0nMTA4LjEnIGNsYXNzPSdhdG9tLTI3JyBzdHlsZT0nZm9udC1zaXplOjlweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjt0ZXh0LWFuY2hvcjpzdGFydDtmaWxsOiNFODQyMzUnID5PPC90ZXh0Pgo8dGV4dCB4PScyNTcuMycgeT0nMTA4LjEnIGNsYXNzPSdhdG9tLTI3JyBzdHlsZT0nZm9udC1zaXplOjlweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjt0ZXh0LWFuY2hvcjpzdGFydDtmaWxsOiNFODQyMzUnID5IPC90ZXh0Pgo8dGV4dCB4PScyODAuNCcgeT0nMTI2LjgnIGNsYXNzPSdhdG9tLTI4JyBzdHlsZT0nZm9udC1zaXplOjlweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjt0ZXh0LWFuY2hvcjpzdGFydDtmaWxsOiNFODQyMzUnID5PPC90ZXh0Pgo8dGV4dCB4PScxMjguMycgeT0nMTU5LjcnIGNsYXNzPSdhdG9tLTI5JyBzdHlsZT0nZm9udC1zaXplOjlweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjt0ZXh0LWFuY2hvcjpzdGFydDtmaWxsOiNFODQyMzUnID5PPC90ZXh0Pgo8L3N2Zz4K data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0naXNvLTg4NTktMSc/Pgo8c3ZnIHZlcnNpb249JzEuMScgYmFzZVByb2ZpbGU9J2Z1bGwnCiAgICAgICAgICAgICAgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJwogICAgICAgICAgICAgICAgICAgICAgeG1sbnM6cmRraXQ9J2h0dHA6Ly93d3cucmRraXQub3JnL3htbCcKICAgICAgICAgICAgICAgICAgICAgIHhtbG5zOnhsaW5rPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJwogICAgICAgICAgICAgICAgICB4bWw6c3BhY2U9J3ByZXNlcnZlJwp3aWR0aD0nODVweCcgaGVpZ2h0PSc4NXB4JyB2aWV3Qm94PScwIDAgODUgODUnPgo8IS0tIEVORCBPRiBIRUFERVIgLS0+CjxyZWN0IHN0eWxlPSdvcGFjaXR5OjEuMDtmaWxsOiNGRkZGRkY7c3Ryb2tlOm5vbmUnIHdpZHRoPSc4NS4wJyBoZWlnaHQ9Jzg1LjAnIHg9JzAuMCcgeT0nMC4wJz4gPC9yZWN0Pgo8cGF0aCBjbGFzcz0nYm9uZC0wIGF0b20tMCBhdG9tLTEnIGQ9J00gMjcuMCw1MC40IEwgMjUuNCw0OS4wJyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojRTg0MjM1O3N0cm9rZS13aWR0aDoxLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0wIGF0b20tMCBhdG9tLTEnIGQ9J00gMjUuNCw0OS4wIEwgMjMuNyw0Ny42JyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojM0I0MTQzO3N0cm9rZS13aWR0aDoxLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0wIGF0b20tMCBhdG9tLTEnIGQ9J00gMjYuMSw1MS41IEwgMjQuNSw1MC4xJyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojRTg0MjM1O3N0cm9rZS13aWR0aDoxLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0wIGF0b20tMCBhdG9tLTEnIGQ9J00gMjQuNSw1MC4xIEwgMjIuOCw0OC42JyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojM0I0MTQzO3N0cm9rZS13aWR0aDoxLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0xIGF0b20tMSBhdG9tLTInIGQ9J00gMjMuMyw0OC4xIEwgMjEuMCw0OC45JyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojM0I0MTQzO3N0cm9rZS13aWR0aDoxLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0xIGF0b20tMSBhdG9tLTInIGQ9J00gMjEuMCw0OC45IEwgMTguNyw0OS43JyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojNDI4NEY0O3N0cm9rZS13aWR0aDoxLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0yOSBhdG9tLTggYXRvbS0xJyBkPSdNIDI0LjAsNDQuNSBMIDIzLjYsNDYuMycgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6IzQyODRGNDtzdHJva2Utd2lkdGg6MS4wcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtMjkgYXRvbS04IGF0b20tMScgZD0nTSAyMy42LDQ2LjMgTCAyMy4zLDQ4LjEnIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiMzQjQxNDM7c3Ryb2tlLXdpZHRoOjEuMHB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTIgYXRvbS0yIGF0b20tMycgZD0nTSAxNC44LDQ4LjcgTCAxMy4yLDQ3LjMnIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiM0Mjg0RjQ7c3Ryb2tlLXdpZHRoOjEuMHB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTIgYXRvbS0yIGF0b20tMycgZD0nTSAxMy4yLDQ3LjMgTCAxMS41LDQ1LjknIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiMzQjQxNDM7c3Ryb2tlLXdpZHRoOjEuMHB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTMgYXRvbS0zIGF0b20tNCcgZD0nTSAxMS4zLDQ1LjIgTCA5LjAsNDYuMCcgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6IzNCNDE0MztzdHJva2Utd2lkdGg6MS4wcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtMyBhdG9tLTMgYXRvbS00JyBkPSdNIDkuMCw0Ni4wIEwgNi43LDQ2LjgnIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiNFODQyMzU7c3Ryb2tlLXdpZHRoOjEuMHB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTMgYXRvbS0zIGF0b20tNCcgZD0nTSAxMS44LDQ2LjUgTCA5LjUsNDcuMycgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6IzNCNDE0MztzdHJva2Utd2lkdGg6MS4wcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtMyBhdG9tLTMgYXRvbS00JyBkPSdNIDkuNSw0Ny4zIEwgNy4yLDQ4LjEnIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiNFODQyMzU7c3Ryb2tlLXdpZHRoOjEuMHB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTQgYXRvbS0zIGF0b20tNScgZD0nTSAxMS41LDQ1LjkgTCAxMi44LDM5LjEnIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiMzQjQxNDM7c3Ryb2tlLXdpZHRoOjEuMHB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTUgYXRvbS01IGF0b20tNicgZD0nTSAxMi44LDM5LjEgTCA3LjYsMzQuNScgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6IzNCNDE0MztzdHJva2Utd2lkdGg6MS4wcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtNiBhdG9tLTUgYXRvbS03JyBkPSdNIDEyLjgsMzkuMSBMIDE5LjQsMzYuOCcgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6IzNCNDE0MztzdHJva2Utd2lkdGg6MS4wcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtNiBhdG9tLTUgYXRvbS03JyBkPSdNIDE0LjMsNDAuMCBMIDE4LjgsMzguNScgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6IzNCNDE0MztzdHJva2Utd2lkdGg6MS4wcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtNyBhdG9tLTcgYXRvbS04JyBkPSdNIDE5LjQsMzYuOCBMIDIxLjAsMzguMicgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6IzNCNDE0MztzdHJva2Utd2lkdGg6MS4wcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtNyBhdG9tLTcgYXRvbS04JyBkPSdNIDIxLjAsMzguMiBMIDIyLjYsMzkuNicgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6IzQyODRGNDtzdHJva2Utd2lkdGg6MS4wcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtOCBhdG9tLTkgYXRvbS04JyBkPSdNIDMxLjEsMzkuMSBMIDI4LjcsMzkuNSBMIDI5LjAsNDAuMiBaJyBzdHlsZT0nZmlsbDojM0I0MTQzO2ZpbGwtcnVsZTpldmVub2RkO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTojM0I0MTQzO3N0cm9rZS13aWR0aDoxLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxOycgLz4KPHBhdGggY2xhc3M9J2JvbmQtOCBhdG9tLTkgYXRvbS04JyBkPSdNIDI4LjcsMzkuNSBMIDI2LjgsNDEuMyBMIDI2LjMsNDAuMCBaJyBzdHlsZT0nZmlsbDojNDI4NEY0O2ZpbGwtcnVsZTpldmVub2RkO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTojNDI4NEY0O3N0cm9rZS13aWR0aDoxLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxOycgLz4KPHBhdGggY2xhc3M9J2JvbmQtOCBhdG9tLTkgYXRvbS04JyBkPSdNIDI4LjcsMzkuNSBMIDI5LjAsNDAuMiBMIDI2LjgsNDEuMyBaJyBzdHlsZT0nZmlsbDojNDI4NEY0O2ZpbGwtcnVsZTpldmVub2RkO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTojNDI4NEY0O3N0cm9rZS13aWR0aDoxLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxOycgLz4KPHBhdGggY2xhc3M9J2JvbmQtOSBhdG9tLTkgYXRvbS0xMCcgZD0nTSAzMS4xLDM5LjEgTCAzMy4xLDMyLjUnIHN0eWxlPSdmaWxsOm5vbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOiMzQjQxNDM7c3Ryb2tlLXdpZHRoOjEuMHB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjEnIC8+CjxwYXRoIGNsYXNzPSdib25kLTMwIGF0b20tMjkgYXRvbS05JyBkPSdNIDM0LjgsNDEuNyBMIDMzLjAsNDAuNCcgc3R5bGU9J2ZpbGw6bm9uZTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6I0U4NDIzNTtzdHJva2Utd2lkdGg6MS4wcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MScgLz4KPHBhdGggY2xhc3M9J2JvbmQtMzAgYXRvbS0yOSBhdG9tLTknIGQ9J00gMzMuMCw0MC40IEwgMzEuMSwzOS4xJyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojM0I0MTQzO3N0cm9rZS13aWR0aDoxLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0xMCBhdG9tLTEwIGF0b20tMTEnIGQ9J00gMzIuNiwzMS40IEwgMzIuMiwzMS42JyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojM0I0MTQzO3N0cm9rZS13aWR0aDoxLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0xMCBhdG9tLTEwIGF0b20tMTEnIGQ9J00gMzIuMSwzMC4yIEwgMzEuMywzMC44JyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojRTg0MjM1O3N0cm9rZS13aWR0aDoxLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0xMCBhdG9tLTEwIGF0b20tMTEnIGQ9J00gMzEuNSwyOS4xIEwgMzAuNCwzMC4wJyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojRTg0MjM1O3N0cm9rZS13aWR0aDoxLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0xMSBhdG9tLTEwIGF0b20tMTInIGQ9J00gMzMuMSwzMi41IEwgNDAuMSwzMi4zJyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojM0I0MTQzO3N0cm9rZS13aWR0aDoxLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0xMiBhdG9tLTEyIGF0b20tMTMnIGQ9J00gNDAuOSwzMS41IEwgNDAuNSwzMS4zJyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojM0I0MTQzO3N0cm9rZS13aWR0aDoxLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0xMiBhdG9tLTEyIGF0b20tMTMnIGQ9J00gNDEuOCwzMC43IEwgNDEuMCwzMC4yJyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojRTg0MjM1O3N0cm9rZS13aWR0aDoxLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0xMiBhdG9tLTEyIGF0b20tMTMnIGQ9J00gNDIuNiwyOS45IEwgNDEuNSwyOS4xJyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojRTg0MjM1O3N0cm9rZS13aWR0aDoxLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0xMyBhdG9tLTEyIGF0b20tMTQnIGQ9J00gNDAuMSwzMi4zIEwgNDIuMywzOC45JyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojM0I0MTQzO3N0cm9rZS13aWR0aDoxLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0xNCBhdG9tLTE0IGF0b20tMTUnIGQ9J00gNDIuMywzOC45IEwgNDguNyw0MS41IEwgNDkuMSw0MC4yIFonIHN0eWxlPSdmaWxsOiMzQjQxNDM7ZmlsbC1ydWxlOmV2ZW5vZGQ7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOiMzQjQxNDM7c3Ryb2tlLXdpZHRoOjEuMHB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjE7JyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0yOCBhdG9tLTE0IGF0b20tMjknIGQ9J00gNDIuMywzOC45IEwgNDAuNSw0MC4yJyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojM0I0MTQzO3N0cm9rZS13aWR0aDoxLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0yOCBhdG9tLTE0IGF0b20tMjknIGQ9J00gNDAuNSw0MC4yIEwgMzguOCw0MS41JyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojRTg0MjM1O3N0cm9rZS13aWR0aDoxLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0xNSBhdG9tLTE1IGF0b20tMTYnIGQ9J00gNDguOSw0MC45IEwgNDkuNSw0My4zJyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojM0I0MTQzO3N0cm9rZS13aWR0aDoxLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0xNSBhdG9tLTE1IGF0b20tMTYnIGQ9J00gNDkuNSw0My4zIEwgNTAuMCw0NS42JyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojRTg0MjM1O3N0cm9rZS13aWR0aDoxLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0xNiBhdG9tLTE2IGF0b20tMTcnIGQ9J00gNTIuNSw0OC4yIEwgNTMuOCw0OC42JyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojRTg0MjM1O3N0cm9rZS13aWR0aDoxLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0xNiBhdG9tLTE2IGF0b20tMTcnIGQ9J00gNTMuOCw0OC42IEwgNTUuMiw0OS4wJyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojRkY2MEI3O3N0cm9rZS13aWR0aDoxLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0xNyBhdG9tLTE3IGF0b20tMTgnIGQ9J00gNTYuMSw1Mi44IEwgNTUuOSw1My42JyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojRkY2MEI3O3N0cm9rZS13aWR0aDoxLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0xNyBhdG9tLTE3IGF0b20tMTgnIGQ9J00gNTUuOSw1My42IEwgNTUuNyw1NC40JyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojRTg0MjM1O3N0cm9rZS13aWR0aDoxLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0xOCBhdG9tLTE3IGF0b20tMTknIGQ9J00gNTguNCw0Ny45IEwgNTguNiw0Ny4xJyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojRkY2MEI3O3N0cm9rZS13aWR0aDoxLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0xOCBhdG9tLTE3IGF0b20tMTknIGQ9J00gNTguNiw0Ny4xIEwgNTguOCw0Ni4zJyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojRTg0MjM1O3N0cm9rZS13aWR0aDoxLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0xOCBhdG9tLTE3IGF0b20tMTknIGQ9J00gNTcuMSw0Ny41IEwgNTcuMyw0Ni43JyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojRkY2MEI3O3N0cm9rZS13aWR0aDoxLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0xOCBhdG9tLTE3IGF0b20tMTknIGQ9J00gNTcuMyw0Ni43IEwgNTcuNSw0NS45JyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojRTg0MjM1O3N0cm9rZS13aWR0aDoxLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0xOSBhdG9tLTE3IGF0b20tMjAnIGQ9J00gNTkuMSw1MC4yIEwgNjAuNCw1MC42JyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojRkY2MEI3O3N0cm9rZS13aWR0aDoxLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0xOSBhdG9tLTE3IGF0b20tMjAnIGQ9J00gNjAuNCw1MC42IEwgNjEuOCw1MS4xJyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojRTg0MjM1O3N0cm9rZS13aWR0aDoxLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0yMCBhdG9tLTIwIGF0b20tMjEnIGQ9J00gNjUuNyw0OS44IEwgNjYuMyw0OS4zJyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojRTg0MjM1O3N0cm9rZS13aWR0aDoxLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0yMCBhdG9tLTIwIGF0b20tMjEnIGQ9J00gNjYuMyw0OS4zIEwgNjYuOSw0OC43JyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojRkY2MEI3O3N0cm9rZS13aWR0aDoxLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0yMSBhdG9tLTIxIGF0b20tMjInIGQ9J00gNjYuOSw0NC45IEwgNjYuNSw0NC40JyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojRkY2MEI3O3N0cm9rZS13aWR0aDoxLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0yMSBhdG9tLTIxIGF0b20tMjInIGQ9J00gNjYuNSw0NC40IEwgNjYuMCw0My45JyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojRTg0MjM1O3N0cm9rZS13aWR0aDoxLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0yMiBhdG9tLTIxIGF0b20tMjMnIGQ9J00gNzAuMiw0OS41IEwgNzAuNyw1MC4wJyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojRkY2MEI3O3N0cm9rZS13aWR0aDoxLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0yMiBhdG9tLTIxIGF0b20tMjMnIGQ9J00gNzAuNyw1MC4wIEwgNzEuMiw1MC41JyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojRTg0MjM1O3N0cm9rZS13aWR0aDoxLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0yMiBhdG9tLTIxIGF0b20tMjMnIGQ9J00gNzEuMyw0OC42IEwgNzEuNyw0OS4xJyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojRkY2MEI3O3N0cm9rZS13aWR0aDoxLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0yMiBhdG9tLTIxIGF0b20tMjMnIGQ9J00gNzEuNyw0OS4xIEwgNzIuMiw0OS42JyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojRTg0MjM1O3N0cm9rZS13aWR0aDoxLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0yMyBhdG9tLTIxIGF0b20tMjQnIGQ9J00gNzAuOCw0NS4xIEwgNzEuMyw0NC41JyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojRkY2MEI3O3N0cm9rZS13aWR0aDoxLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0yMyBhdG9tLTIxIGF0b20tMjQnIGQ9J00gNzEuMyw0NC41IEwgNzEuOSw0NC4wJyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojRTg0MjM1O3N0cm9rZS13aWR0aDoxLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0yNCBhdG9tLTI0IGF0b20tMjUnIGQ9J00gNzMuNCw0MC4yIEwgNzMuMiwzOS40JyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojRTg0MjM1O3N0cm9rZS13aWR0aDoxLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0yNCBhdG9tLTI0IGF0b20tMjUnIGQ9J00gNzMuMiwzOS40IEwgNzMuMCwzOC42JyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojRkY2MEI3O3N0cm9rZS13aWR0aDoxLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0yNSBhdG9tLTI1IGF0b20tMjYnIGQ9J00gNzAuMywzNS45IEwgNjguOSwzNi4zJyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojRkY2MEI3O3N0cm9rZS13aWR0aDoxLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0yNSBhdG9tLTI1IGF0b20tMjYnIGQ9J00gNjguOSwzNi4zIEwgNjcuNSwzNi42JyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojRTg0MjM1O3N0cm9rZS13aWR0aDoxLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0yNiBhdG9tLTI1IGF0b20tMjcnIGQ9J00gNzEuOCwzMy41IEwgNzEuNiwzMi43JyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojRkY2MEI3O3N0cm9rZS13aWR0aDoxLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0yNiBhdG9tLTI1IGF0b20tMjcnIGQ9J00gNzEuNiwzMi43IEwgNzEuNCwzMS45JyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojRTg0MjM1O3N0cm9rZS13aWR0aDoxLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0yNyBhdG9tLTI1IGF0b20tMjgnIGQ9J00gNzQuNCwzNS43IEwgNzUuOCwzNS4zJyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojRkY2MEI3O3N0cm9rZS13aWR0aDoxLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0yNyBhdG9tLTI1IGF0b20tMjgnIGQ9J00gNzUuOCwzNS4zIEwgNzcuMiwzNS4wJyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojRTg0MjM1O3N0cm9rZS13aWR0aDoxLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0yNyBhdG9tLTI1IGF0b20tMjgnIGQ9J00gNzQuMSwzNC4zIEwgNzUuNSwzNC4wJyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojRkY2MEI3O3N0cm9rZS13aWR0aDoxLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8cGF0aCBjbGFzcz0nYm9uZC0yNyBhdG9tLTI1IGF0b20tMjgnIGQ9J00gNzUuNSwzNC4wIEwgNzYuOSwzMy43JyBzdHlsZT0nZmlsbDpub25lO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTojRTg0MjM1O3N0cm9rZS13aWR0aDoxLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxJyAvPgo8dGV4dCB4PScyNi43JyB5PSc1NS43JyBjbGFzcz0nYXRvbS0wJyBzdHlsZT0nZm9udC1zaXplOjZweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjt0ZXh0LWFuY2hvcjpzdGFydDtmaWxsOiNFODQyMzUnID5PPC90ZXh0Pgo8dGV4dCB4PScxNS4wJyB5PSc1My40JyBjbGFzcz0nYXRvbS0yJyBzdHlsZT0nZm9udC1zaXplOjZweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjt0ZXh0LWFuY2hvcjpzdGFydDtmaWxsOiM0Mjg0RjQnID5OPC90ZXh0Pgo8dGV4dCB4PScxNS4wJyB5PSc1OC43JyBjbGFzcz0nYXRvbS0yJyBzdHlsZT0nZm9udC1zaXplOjZweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjt0ZXh0LWFuY2hvcjpzdGFydDtmaWxsOiM0Mjg0RjQnID5IPC90ZXh0Pgo8dGV4dCB4PSczLjInIHk9JzUxLjEnIGNsYXNzPSdhdG9tLTQnIHN0eWxlPSdmb250LXNpemU6NnB4O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtmb250LWZhbWlseTpzYW5zLXNlcmlmO3RleHQtYW5jaG9yOnN0YXJ0O2ZpbGw6I0U4NDIzNScgPk88L3RleHQ+Cjx0ZXh0IHg9JzIyLjgnIHk9JzQ0LjMnIGNsYXNzPSdhdG9tLTgnIHN0eWxlPSdmb250LXNpemU6NnB4O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtmb250LWZhbWlseTpzYW5zLXNlcmlmO3RleHQtYW5jaG9yOnN0YXJ0O2ZpbGw6IzQyODRGNCcgPk48L3RleHQ+Cjx0ZXh0IHg9JzIzLjMnIHk9JzI5LjknIGNsYXNzPSdhdG9tLTExJyBzdHlsZT0nZm9udC1zaXplOjZweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjt0ZXh0LWFuY2hvcjpzdGFydDtmaWxsOiNFODQyMzUnID5IPC90ZXh0Pgo8dGV4dCB4PScyNy4yJyB5PScyOS45JyBjbGFzcz0nYXRvbS0xMScgc3R5bGU9J2ZvbnQtc2l6ZTo2cHg7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO2ZvbnQtZmFtaWx5OnNhbnMtc2VyaWY7dGV4dC1hbmNob3I6c3RhcnQ7ZmlsbDojRTg0MjM1JyA+TzwvdGV4dD4KPHRleHQgeD0nNDIuMicgeT0nMjkuNycgY2xhc3M9J2F0b20tMTMnIHN0eWxlPSdmb250LXNpemU6NnB4O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtmb250LWZhbWlseTpzYW5zLXNlcmlmO3RleHQtYW5jaG9yOnN0YXJ0O2ZpbGw6I0U4NDIzNScgPk88L3RleHQ+Cjx0ZXh0IHg9JzQ2LjQnIHk9JzI5LjcnIGNsYXNzPSdhdG9tLTEzJyBzdHlsZT0nZm9udC1zaXplOjZweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjt0ZXh0LWFuY2hvcjpzdGFydDtmaWxsOiNFODQyMzUnID5IPC90ZXh0Pgo8dGV4dCB4PSc0OC43JyB5PSc1MC42JyBjbGFzcz0nYXRvbS0xNicgc3R5bGU9J2ZvbnQtc2l6ZTo2cHg7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO2ZvbnQtZmFtaWx5OnNhbnMtc2VyaWY7dGV4dC1hbmNob3I6c3RhcnQ7ZmlsbDojRTg0MjM1JyA+TzwvdGV4dD4KPHRleHQgeD0nNTUuMycgeT0nNTIuNicgY2xhc3M9J2F0b20tMTcnIHN0eWxlPSdmb250LXNpemU6NnB4O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtmb250LWZhbWlseTpzYW5zLXNlcmlmO3RleHQtYW5jaG9yOnN0YXJ0O2ZpbGw6I0ZGNjBCNycgPlA8L3RleHQ+Cjx0ZXh0IHg9JzUzLjMnIHk9JzU5LjInIGNsYXNzPSdhdG9tLTE4JyBzdHlsZT0nZm9udC1zaXplOjZweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjt0ZXh0LWFuY2hvcjpzdGFydDtmaWxsOiNFODQyMzUnID5PPC90ZXh0Pgo8dGV4dCB4PSc1Ny40JyB5PSc1OS4yJyBjbGFzcz0nYXRvbS0xOCcgc3R5bGU9J2ZvbnQtc2l6ZTo2cHg7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO2ZvbnQtZmFtaWx5OnNhbnMtc2VyaWY7dGV4dC1hbmNob3I6c3RhcnQ7ZmlsbDojRTg0MjM1JyA+SDwvdGV4dD4KPHRleHQgeD0nNTcuMycgeT0nNDYuMCcgY2xhc3M9J2F0b20tMTknIHN0eWxlPSdmb250LXNpemU6NnB4O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtmb250LWZhbWlseTpzYW5zLXNlcmlmO3RleHQtYW5jaG9yOnN0YXJ0O2ZpbGw6I0U4NDIzNScgPk88L3RleHQ+Cjx0ZXh0IHg9JzYxLjknIHk9JzU0LjYnIGNsYXNzPSdhdG9tLTIwJyBzdHlsZT0nZm9udC1zaXplOjZweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjt0ZXh0LWFuY2hvcjpzdGFydDtmaWxsOiNFODQyMzUnID5PPC90ZXh0Pgo8dGV4dCB4PSc2Ny4wJyB5PSc0OS45JyBjbGFzcz0nYXRvbS0yMScgc3R5bGU9J2ZvbnQtc2l6ZTo2cHg7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO2ZvbnQtZmFtaWx5OnNhbnMtc2VyaWY7dGV4dC1hbmNob3I6c3RhcnQ7ZmlsbDojRkY2MEI3JyA+UDwvdGV4dD4KPHRleHQgeD0nNTguNCcgeT0nNDQuOScgY2xhc3M9J2F0b20tMjInIHN0eWxlPSdmb250LXNpemU6NnB4O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtmb250LWZhbWlseTpzYW5zLXNlcmlmO3RleHQtYW5jaG9yOnN0YXJ0O2ZpbGw6I0U4NDIzNScgPkg8L3RleHQ+Cjx0ZXh0IHg9JzYyLjMnIHk9JzQ0LjknIGNsYXNzPSdhdG9tLTIyJyBzdHlsZT0nZm9udC1zaXplOjZweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjt0ZXh0LWFuY2hvcjpzdGFydDtmaWxsOiNFODQyMzUnID5PPC90ZXh0Pgo8dGV4dCB4PSc3MS43JyB5PSc1NS4wJyBjbGFzcz0nYXRvbS0yMycgc3R5bGU9J2ZvbnQtc2l6ZTo2cHg7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO2ZvbnQtZmFtaWx5OnNhbnMtc2VyaWY7dGV4dC1hbmNob3I6c3RhcnQ7ZmlsbDojRTg0MjM1JyA+TzwvdGV4dD4KPHRleHQgeD0nNzIuMCcgeT0nNDUuMicgY2xhc3M9J2F0b20tMjQnIHN0eWxlPSdmb250LXNpemU6NnB4O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtmb250LWZhbWlseTpzYW5zLXNlcmlmO3RleHQtYW5jaG9yOnN0YXJ0O2ZpbGw6I0U4NDIzNScgPk88L3RleHQ+Cjx0ZXh0IHg9JzcwLjUnIHk9JzM4LjUnIGNsYXNzPSdhdG9tLTI1JyBzdHlsZT0nZm9udC1zaXplOjZweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjt0ZXh0LWFuY2hvcjpzdGFydDtmaWxsOiNGRjYwQjcnID5QPC90ZXh0Pgo8dGV4dCB4PSc1OS45JyB5PSc0MC4wJyBjbGFzcz0nYXRvbS0yNicgc3R5bGU9J2ZvbnQtc2l6ZTo2cHg7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO2ZvbnQtZmFtaWx5OnNhbnMtc2VyaWY7dGV4dC1hbmNob3I6c3RhcnQ7ZmlsbDojRTg0MjM1JyA+SDwvdGV4dD4KPHRleHQgeD0nNjMuNycgeT0nNDAuMCcgY2xhc3M9J2F0b20tMjYnIHN0eWxlPSdmb250LXNpemU6NnB4O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtmb250LWZhbWlseTpzYW5zLXNlcmlmO3RleHQtYW5jaG9yOnN0YXJ0O2ZpbGw6I0U4NDIzNScgPk88L3RleHQ+Cjx0ZXh0IHg9JzY4LjknIHk9JzMxLjcnIGNsYXNzPSdhdG9tLTI3JyBzdHlsZT0nZm9udC1zaXplOjZweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjt0ZXh0LWFuY2hvcjpzdGFydDtmaWxsOiNFODQyMzUnID5PPC90ZXh0Pgo8dGV4dCB4PSc3My4wJyB5PSczMS43JyBjbGFzcz0nYXRvbS0yNycgc3R5bGU9J2ZvbnQtc2l6ZTo2cHg7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO2ZvbnQtZmFtaWx5OnNhbnMtc2VyaWY7dGV4dC1hbmNob3I6c3RhcnQ7ZmlsbDojRTg0MjM1JyA+SDwvdGV4dD4KPHRleHQgeD0nNzcuMicgeT0nMzYuOScgY2xhc3M9J2F0b20tMjgnIHN0eWxlPSdmb250LXNpemU6NnB4O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtmb250LWZhbWlseTpzYW5zLXNlcmlmO3RleHQtYW5jaG9yOnN0YXJ0O2ZpbGw6I0U4NDIzNScgPk88L3RleHQ+Cjx0ZXh0IHg9JzM1LjAnIHk9JzQ2LjAnIGNsYXNzPSdhdG9tLTI5JyBzdHlsZT0nZm9udC1zaXplOjZweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjt0ZXh0LWFuY2hvcjpzdGFydDtmaWxsOiNFODQyMzUnID5PPC90ZXh0Pgo8L3N2Zz4K O=C1NC(=O)C(C)=CN1[C@H]1[C@H](O)[C@H](O)[C@@H](COP(O)(=O)OP(O)(=O)OP(O)(O)=O)O1 RZCIEJXAILMSQK-JXOAFFINSA-N 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 235000013405 beer Nutrition 0.000 description 1
- 230000003542 behavioural Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000000295 complement Effects 0.000 description 1
- 230000001143 conditioned Effects 0.000 description 1
- 230000003750 conditioning Effects 0.000 description 1
- RYGMFSIKBFXOCR-UHFFFAOYSA-N copper Chemical compound data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0naXNvLTg4NTktMSc/Pgo8c3ZnIHZlcnNpb249JzEuMScgYmFzZVByb2ZpbGU9J2Z1bGwnCiAgICAgICAgICAgICAgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJwogICAgICAgICAgICAgICAgICAgICAgeG1sbnM6cmRraXQ9J2h0dHA6Ly93d3cucmRraXQub3JnL3htbCcKICAgICAgICAgICAgICAgICAgICAgIHhtbG5zOnhsaW5rPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJwogICAgICAgICAgICAgICAgICB4bWw6c3BhY2U9J3ByZXNlcnZlJwp3aWR0aD0nMzAwcHgnIGhlaWdodD0nMzAwcHgnIHZpZXdCb3g9JzAgMCAzMDAgMzAwJz4KPCEtLSBFTkQgT0YgSEVBREVSIC0tPgo8cmVjdCBzdHlsZT0nb3BhY2l0eToxLjA7ZmlsbDojRkZGRkZGO3N0cm9rZTpub25lJyB3aWR0aD0nMzAwLjAnIGhlaWdodD0nMzAwLjAnIHg9JzAuMCcgeT0nMC4wJz4gPC9yZWN0Pgo8dGV4dCB4PScxMzguMCcgeT0nMTcwLjAnIGNsYXNzPSdhdG9tLTAnIHN0eWxlPSdmb250LXNpemU6NDBweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjt0ZXh0LWFuY2hvcjpzdGFydDtmaWxsOiMzQjQxNDMnID5DPC90ZXh0Pgo8dGV4dCB4PScxNjUuNicgeT0nMTcwLjAnIGNsYXNzPSdhdG9tLTAnIHN0eWxlPSdmb250LXNpemU6NDBweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjt0ZXh0LWFuY2hvcjpzdGFydDtmaWxsOiMzQjQxNDMnID51PC90ZXh0Pgo8cGF0aCBkPSdNIDE4OC40LDE1MC4wIEwgMTg4LjQsMTQ5LjggTCAxODguNCwxNDkuNyBMIDE4OC40LDE0OS41IEwgMTg4LjMsMTQ5LjMgTCAxODguMywxNDkuMiBMIDE4OC4yLDE0OS4wIEwgMTg4LjEsMTQ4LjkgTCAxODguMCwxNDguNyBMIDE4Ny45LDE0OC42IEwgMTg3LjcsMTQ4LjUgTCAxODcuNiwxNDguNCBMIDE4Ny41LDE0OC4zIEwgMTg3LjMsMTQ4LjIgTCAxODcuMiwxNDguMSBMIDE4Ny4wLDE0OC4xIEwgMTg2LjgsMTQ4LjAgTCAxODYuNywxNDguMCBMIDE4Ni41LDE0OC4wIEwgMTg2LjMsMTQ4LjAgTCAxODYuMSwxNDguMCBMIDE4Ni4wLDE0OC4xIEwgMTg1LjgsMTQ4LjEgTCAxODUuNiwxNDguMiBMIDE4NS41LDE0OC4yIEwgMTg1LjMsMTQ4LjMgTCAxODUuMiwxNDguNCBMIDE4NS4xLDE0OC41IEwgMTg0LjksMTQ4LjcgTCAxODQuOCwxNDguOCBMIDE4NC43LDE0OC45IEwgMTg0LjcsMTQ5LjEgTCAxODQuNiwxNDkuMiBMIDE4NC41LDE0OS40IEwgMTg0LjUsMTQ5LjYgTCAxODQuNSwxNDkuNyBMIDE4NC40LDE0OS45IEwgMTg0LjQsMTUwLjEgTCAxODQuNSwxNTAuMyBMIDE4NC41LDE1MC40IEwgMTg0LjUsMTUwLjYgTCAxODQuNiwxNTAuOCBMIDE4NC43LDE1MC45IEwgMTg0LjcsMTUxLjEgTCAxODQuOCwxNTEuMiBMIDE4NC45LDE1MS4zIEwgMTg1LjEsMTUxLjUgTCAxODUuMiwxNTEuNiBMIDE4NS4zLDE1MS43IEwgMTg1LjUsMTUxLjggTCAxODUuNiwxNTEuOCBMIDE4NS44LDE1MS45IEwgMTg2LjAsMTUxLjkgTCAxODYuMSwxNTIuMCBMIDE4Ni4zLDE1Mi4wIEwgMTg2LjUsMTUyLjAgTCAxODYuNywxNTIuMCBMIDE4Ni44LDE1Mi4wIEwgMTg3LjAsMTUxLjkgTCAxODcuMiwxNTEuOSBMIDE4Ny4zLDE1MS44IEwgMTg3LjUsMTUxLjcgTCAxODcuNiwxNTEuNiBMIDE4Ny43LDE1MS41IEwgMTg3LjksMTUxLjQgTCAxODguMCwxNTEuMyBMIDE4OC4xLDE1MS4xIEwgMTg4LjIsMTUxLjAgTCAxODguMywxNTAuOCBMIDE4OC4zLDE1MC43IEwgMTg4LjQsMTUwLjUgTCAxODguNCwxNTAuMyBMIDE4OC40LDE1MC4yIEwgMTg4LjQsMTUwLjAgTCAxODYuNCwxNTAuMCBaJyBzdHlsZT0nZmlsbDojMDAwMDAwO2ZpbGwtcnVsZTpldmVub2RkO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDowLjBweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxOycgLz4KPC9zdmc+Cg== data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0naXNvLTg4NTktMSc/Pgo8c3ZnIHZlcnNpb249JzEuMScgYmFzZVByb2ZpbGU9J2Z1bGwnCiAgICAgICAgICAgICAgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJwogICAgICAgICAgICAgICAgICAgICAgeG1sbnM6cmRraXQ9J2h0dHA6Ly93d3cucmRraXQub3JnL3htbCcKICAgICAgICAgICAgICAgICAgICAgIHhtbG5zOnhsaW5rPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJwogICAgICAgICAgICAgICAgICB4bWw6c3BhY2U9J3ByZXNlcnZlJwp3aWR0aD0nODVweCcgaGVpZ2h0PSc4NXB4JyB2aWV3Qm94PScwIDAgODUgODUnPgo8IS0tIEVORCBPRiBIRUFERVIgLS0+CjxyZWN0IHN0eWxlPSdvcGFjaXR5OjEuMDtmaWxsOiNGRkZGRkY7c3Ryb2tlOm5vbmUnIHdpZHRoPSc4NS4wJyBoZWlnaHQ9Jzg1LjAnIHg9JzAuMCcgeT0nMC4wJz4gPC9yZWN0Pgo8dGV4dCB4PSczNS4wJyB5PSc1My42JyBjbGFzcz0nYXRvbS0wJyBzdHlsZT0nZm9udC1zaXplOjIzcHg7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO2ZvbnQtZmFtaWx5OnNhbnMtc2VyaWY7dGV4dC1hbmNob3I6c3RhcnQ7ZmlsbDojM0I0MTQzJyA+QzwvdGV4dD4KPHRleHQgeD0nNTEuMCcgeT0nNTMuNicgY2xhc3M9J2F0b20tMCcgc3R5bGU9J2ZvbnQtc2l6ZToyM3B4O2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtmb250LWZhbWlseTpzYW5zLXNlcmlmO3RleHQtYW5jaG9yOnN0YXJ0O2ZpbGw6IzNCNDE0MycgPnU8L3RleHQ+CjxwYXRoIGQ9J00gNjYuNCw0Mi4wIEwgNjYuNCw0MS45IEwgNjYuNCw0MS44IEwgNjYuNCw0MS43IEwgNjYuMyw0MS42IEwgNjYuMyw0MS41IEwgNjYuMiw0MS40IEwgNjYuMiw0MS4zIEwgNjYuMSw0MS4zIEwgNjYuMSw0MS4yIEwgNjYuMCw0MS4xIEwgNjUuOSw0MS4xIEwgNjUuOCw0MS4wIEwgNjUuNyw0MS4wIEwgNjUuNiw0MC45IEwgNjUuNSw0MC45IEwgNjUuNSw0MC45IEwgNjUuNCw0MC44IEwgNjUuMyw0MC44IEwgNjUuMiw0MC44IEwgNjUuMSw0MC45IEwgNjUuMCw0MC45IEwgNjQuOSw0MC45IEwgNjQuOCw0MC45IEwgNjQuNyw0MS4wIEwgNjQuNiw0MS4wIEwgNjQuNSw0MS4xIEwgNjQuNCw0MS4yIEwgNjQuNCw0MS4yIEwgNjQuMyw0MS4zIEwgNjQuMiw0MS40IEwgNjQuMiw0MS41IEwgNjQuMiw0MS42IEwgNjQuMSw0MS43IEwgNjQuMSw0MS44IEwgNjQuMSw0MS45IEwgNjQuMSw0Mi4wIEwgNjQuMSw0Mi4wIEwgNjQuMSw0Mi4xIEwgNjQuMSw0Mi4yIEwgNjQuMSw0Mi4zIEwgNjQuMiw0Mi40IEwgNjQuMiw0Mi41IEwgNjQuMiw0Mi42IEwgNjQuMyw0Mi43IEwgNjQuNCw0Mi44IEwgNjQuNCw0Mi44IEwgNjQuNSw0Mi45IEwgNjQuNiw0My4wIEwgNjQuNyw0My4wIEwgNjQuOCw0My4xIEwgNjQuOSw0My4xIEwgNjUuMCw0My4xIEwgNjUuMSw0My4xIEwgNjUuMiw0My4yIEwgNjUuMyw0My4yIEwgNjUuNCw0My4yIEwgNjUuNSw0My4xIEwgNjUuNSw0My4xIEwgNjUuNiw0My4xIEwgNjUuNyw0My4wIEwgNjUuOCw0My4wIEwgNjUuOSw0Mi45IEwgNjYuMCw0Mi45IEwgNjYuMSw0Mi44IEwgNjYuMSw0Mi43IEwgNjYuMiw0Mi43IEwgNjYuMiw0Mi42IEwgNjYuMyw0Mi41IEwgNjYuMyw0Mi40IEwgNjYuNCw0Mi4zIEwgNjYuNCw0Mi4yIEwgNjYuNCw0Mi4xIEwgNjYuNCw0Mi4wIEwgNjUuMiw0Mi4wIFonIHN0eWxlPSdmaWxsOiMwMDAwMDA7ZmlsbC1ydWxlOmV2ZW5vZGQ7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjAuMHB4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1vcGFjaXR5OjE7JyAvPgo8L3N2Zz4K [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 230000002596 correlated Effects 0.000 description 1
- 230000001808 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002708 enhancing Effects 0.000 description 1
- 238000000855 fermentation Methods 0.000 description 1
- 230000004151 fermentation Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 230000000977 initiatory Effects 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000003287 optical Effects 0.000 description 1
- 201000008839 post-traumatic stress disease Diseases 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 201000007023 thrombotic thrombocytopenic purpura Diseases 0.000 description 1
- 230000001960 triggered Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/554—Detecting local intrusion or implementing counter-measures involving event detection and direct action
Abstract
A system for virtual patching of security vulnerabilities in an industrial production environment includes an industrial automation device (e.g., a PLC). The industrial automation device comprises an instance of a distributed database spanning a plurality of industrial automation devices and storing one or more virtual patches and an app container comprising a virtual patching engine security application. The app container is configured to collect system information generated by the industrial automation device during operation, and apply the one or more virtual patches to the system information to identify one or more security attacks.
Description
PLC VIRTUAL PATCHING AND
AUTOMATED DISTRIBUTION OF SECURITY CONTEXT
TECHNICAL FIELD
[1] The present invention relates generally to improving the resiliency of control systems, with respect to cyberattacks, with virtual patching and automated distribution of security context information. The disclosed technology may be applied to, for example, various automated production environments where industrial controllers such as programmable logic controllers (PLCs) and distributed control systems (DCS) are used.
BACKGROUND
[2] Security patching is one of the most challenging problems faced by the Industrial
Control Systems (ICS) security community. In order to fix security vulnerability in a given programmable logic controller (PLC), a complete firmware update and a full system reboot is required in most cases. In addition, security patches might introduce new failures and vulnerabilities, which dramatically increases the risk and cost of updating live running production systems.
[3] Traditionally, patch management for industrial control systems has been performed manually in most cases. Additional (external) security controls, as recommended by applicable standards and best practices, deploy measures to offer additional protection to compensate for long patch delays (see International Electrotechnical Commission 62443.02.01 2009) while waiting for patch compatibility testing results from the application vendor. Such measures, however, reside typically outside the PLC and are limited by what can be done at the network level.
SUMMARY
[4] Embodiments of the present invention address and overcome one or more of the above shortcomings and drawbacks, by providing methods, systems, and apparatuses related to virtual patching and automated distribution of security context information for control systems. More specifically, the techniques described herein provide an automated mechanism (a process), architecture and a security application (e.g., an app) for a PLC that allows the deployment of
virtual patches without the need to reload the complete software image/OS. The virtual patch provides protection against potential attackers exploiting the unmitigated vulnerability from the time slot between the vulnerability disclosure and the system upgrade.
[5] According to some embodiments of the present invention, a system for virtual patching of security vulnerabilities in an industrial production environment includes an industrial automation device (e.g., a PLC). The industrial automation device comprises an instance of a distributed database spanning a plurality of industrial automation devices and storing one or more virtual patches and an app container comprising a virtual patching engine security application. The app container is configured to collect system information generated by the industrial automation device during operation, and apply the one or more virtual patches to the system information to identify one or more security attacks. Each virtual patch may describe a distinct attack signature exploitable on the industrial automation device.
[6] The system information used in the aforementioned system may correspond to system calls made by one or more applications executing on the industrial automation device. In some embodiments, the system information comprises one or more of (i) memory blocks where at least one of a read or write operation has been performed; (ii) system configuration changes; and (iii) alarm status changes. Additionally (or Alternatively), the system information may include one or more of (i) processes executing on the industrial automation device; (ii) threads executing on the industrial automation device; (iii) networking connections utilized by the industrial automation device; (iv) file creation information; and (v) file modification information.
[7] In some embodiments of the aforementioned system, the virtual patching engine security application performs symbolic execution of control code executed by the industrial automation device to determine future consequences of running one or more configurations of the industrial automation device in combination with one or more control commands. These future consequences may be identified in the form of indicators of, for example, security violations, system failure, or other undesired states. The virtual patching engine security application may block future execution of the control commands if the indicator of future consequences corresponds to, for example, an unsafe system state or a violation of predetermined safety constraints associated with the industrial production environment.
[8] In some embodiments of the aforementioned system, the instance of the distributed database and the app container are executed in a first virtual machine on the industrial automation device. The industrial automation device may further include a second virtual machine which executes a process image updated according to a scan cycle with automation system production data associated with one or more field devices and a networking component configured to send and receive automation system network data on a plant floor network. In one embodiment, the second virtual machine also executes a real-time database comprising an embedded historian which is configured to store the automation system production data collected via the process image and the automation system network data collected via the networking component. The system information generated by the industrial automation device during operation may then be retrieved by the virtual patching engine security application from the embedded historian.
[9] In some embodiments of the aforementioned system, the virtual patching engine security application is further configured to (i) receive new virtual patches generated by a security operations center and (ii) store the new virtual patches in the distributed database. Additionally, the virtual patching engine security application may be further configured to transmit an indication of the security attacks to the security operations center. In some embodiments, the virtual patching engine security application is further configured to identify one or more control commands associated with the one or more security attacks. In response to identifying one or more security attacks, the virtual patching engine security application determines whether an active response setting is enabled. If the active response setting is not enabled, the control commands are executed and an anomaly is reported to an operator associated with the industrial automation device. On the other hand, if the active response setting is enabled, execution of the control command(s) is blocked.
[10] According to other embodiments of the present invention, a system for virtual patching of security vulnerabilities in an industrial production environment comprises two virtual machines, an internal communication channel configured to facilitate transfer of the system information between the virtual machines, and a hypervisor executing the virtual machines. The first virtual machine in the system executes one or more control programs, while the second
virtual machine executes a virtual patching engine security application (e.g., in an app container as described above). This virtual patching engine security application is configured to collect system information related to the one or more control programs, and apply one or more virtual patches to the system information to identify one or more security attacks. This system information may include, for example, one or more of (i) memory blocks where at least one of a read or write operation has been performed; (ii) system configuration changes; and (iii) alarm status changes; (iv) processes executing on the first virtual machine; (v) threads executing the first virtual machine; (vi) networking connections utilized by the first virtual machine; (vii) file creation information; and/or (viii) file modification information. In some embodiments, the second virtual machine further comprises an instance of a distributed database spanning a plurality of industrial controllers and storing the one or more virtual patches. In some embodiments, the system information is retrieved by the virtual patching engine security application from an embedded historian in the first virtual machine.
[11] According to other embodiments of the present invention, a computer-implemented method for virtual patching of security vulnerabilities in an industrial production environment includes a security operations center computer receiving an indication of security vulnerabilities exploitation methods applicable to industrial control systems and reproducing those security vulnerabilities exploitation methods using a simulated industrial environment. The security operations center computer generates a vulnerability exploitation detection signature corresponding to the security vulnerabilities exploitation methods and identifies users of industrial controllers to which the vulnerability exploitation detection signature is applicable. Then, for each identified user, the security operations center computer (i) generates a virtual patch operable to detect attempted execution of the security vulnerabilities exploitation and (ii) distributes the virtual patch to the identified user.
[12] According to other embodiments of the present invention, a computer-implemented method for virtual patching of security vulnerabilities in an industrial production environment includes a security operations center computer receiving an indication of attack campaigns applicable to industrial control systems and generating an attack detection signature corresponding to the attack campaigns. The method further includes the security operations center computer identifying users of industrial controllers to which the attack detection signature
is applicable. For each identified user, the security operations center computer generates a virtual patch operable to detect the attack detection signature and distributes the virtual patch to the identified user.
[13] Additional features and advantages of the invention will be made apparent from the following detailed description of illustrative embodiments that proceeds with reference to the accompanying drawings.
BRIEF DESCRIPTION OF THE DRAWINGS
[14] The foregoing and other aspects of the present invention are best understood from the following detailed description when read in connection with the accompanying drawings. For the purpose of illustrating the invention, there are shown in the drawings embodiments that are presently preferred, it being understood, however, that the invention is not limited to the specific instrumentalities disclosed. Included in the drawings are the following Figures:
[15] FIG. 1 demonstrates a highly-coupled control-security PLC with a cybersecurity application, according to some embodiments;
[16] FIG. 2 illustrates an architecture of the security anomaly detection and virtual patching, according to some embodiments; and
[17] FIG. 3 illustrates a virtual patching process, according to some embodiments.
DETAILED DESCRIPTION
[18] Systems, methods, and apparatuses are described herein which relate generally to improving the resiliency of control systems, with respect to cyberattacks, with virtual patching and automated distribution of security context information. The virtual patch described herein may be deployed as PLC kernel module application with in-depth low level access to the operating system and memory to detect and, if configured, intercept suspicious activities or configuration commands. Virtual patching for PLCs may be applied to greatly mitigate the problems associated with patching of live production systems, since it allows for the detection of vulnerability exploitation and, in some cases, attack prevention.
[19] PCT Patent Application Serial No. PCT/US2016/28893 filed April 22, 2016 and entitled "Improving Control System Resilience by Highly Coupling Security Functions with Control," which is incorporated herein by reference, describes a security anomaly detection app comprising an intrusion detection scheme based on the knowledge of the process variables (sensors and actuators). The disclosed architecture and application offered local protection for the PLC based on unsupervised machine learning. The systems and methods described herein complement and enhance that architecture and application by providing a mechanism to deploy low footprint attack signatures from a Security Operations Center (SOC) automatically as virtual patches.
[20] FIG. 1 demonstrates a highly-coupled control-security PLC 100 with cybersecurity application, according to some embodiments. This example shows an implementation within a Siemens software environment; however, it should be understood that the general concepts described in FIG. 1 may be extended to equivalent software in other environments as well. The PLC 100 has multiple processor cores which execute a plurality of virtual machines (VM). In some embodiments, each core may be dedicated to a distinct virtual machine. In the example of FIG. 1, one virtual machine 105 is configured to implement Simatic S7 Firmware (FW) and the other virtual machine is 110 configured to implement either Windows or Linux. The Simatic S7 PLC firmware executes one or more control programs for interfacing with field devices in the automation environment. Any application running on VM1 has no adverse impact on control applications running on VM0. Within virtual machine 105, there is a real-time database driven by an embedded historian. It collects all real-time process image data related to the one or more control programs as time series, such as inputs, outputs, memory variables, and commands from one or more human machine interface (HMI) and the manufacturing execution system (MES). PCT Patent Application Serial No. PCT/US2015/64863 filed Dec. 10, 2015 and entitled "Distributed Embedded Data and Knowledge Management System Integrated with PLC Historian," which is incorporated herein by reference, provides examples of techniques for implementing an historian that may be employed with the highly-coupled control-security PLC 100 described herein. In the Windows/Linux virtual machine 110, another real-time database exchanges data with the real-time database (RTDB) hosted in Simatic S7 firmware using an internal communication channel or shared memory (SM).
[21] The "Processing" block in virtual machine 110 is a function block which performs primary data processing, reading/writing/filtering/smoothing primary data in the real-time database. The block of "Context" in virtual machine 110 works as a translator, which translates the meaning of all data into production knowledge, such as translating measurements into temperature (e.g., of a beer fermentation tank). There are multiple applications hosted by an App Container in the virtual machine 110, some of which can be directed at security functionality. For example, Appl could be used for a virtual patching app for cyberattack detection/prevention (as discussed in further detail below) and App2 could be a machine prognostic analysis application. They both need to work based on collected data in the real-time database. In this case, the virtual patching app can be easily added, removed and updated, just as a Windows or Linux application. Methods and systems for implementing apps within app containers in a PLC are described in further detail in U.S. Patent Application No. 15/040,565, filed February 10, 2016 and entitled "Extending a Programmable Logic Controller with Apps," which is incorporated herein by reference.
[22] The term virtual patch, as used herein, refers to an executable algorithm (signature) describing a distinct vulnerability or attack. The virtual patch is created based on one or more of (i) the analysis of the reproduced vulnerability/attack; (ii) the determination of the potential root cause of the PLC vulnerability/attack; (iii) the recorded attack vector that is associated with the root cause of the vulnerability; (iv) the required enabled PLC configuration that allows for the attack vector to operate (e.g., enabled vulnerable services), and (v) other contextual information such as the production process type, controlled variable, connected machinery, etc. Each virtual patch might contain details of the attack as defined by a standardized language such as the Cyber Observable expression (CybOX™) or a derived extended version of it that considers particularities of the control systems. These details may include, for example, file pattern, network packets/flow, user session identifier, system event log, etc. The virtual patch may be described through ontologies that could explain intrusion/cyber security attacks such as fake commands from HMI, tampered data blocks from MES and even denial-of-service (DoS) attacks. The ontology may also include other knowledge, such as adverse impacts lead by cyberattacks, (e.g., degraded performance in terms of production and quality, damage of machines). The intrusion and cybersecurity ontology, as well as additional production process
knowledge, can connect causally between process image data (field data) and other forms of context knowledge in controllers, and enable reasoning about abnormal events.
[23] The deployment of the virtual patching engine on each controller (described in further detail below) enables signature based security intrusion detection based on specific applicable attack scenarios for each case. In some embodiments, only a small subset of relevant signatures is loaded, based on the potential risks of exploitation of each available attack vector, which prevents unnecessary CPU utilization. Each virtual patch contains payloads and instructions that allow a detection engine on a control device (e.g., PLC) to verify continuously for a given combination of system discrete security events (e.g., a configuration change) and suspicious data flow (network or memory) to be inspected. The validation and verification of applicability of the virtual patch for a given PLC/scenario may be performed before its deployment.
[24] FIG. 2 illustrates an architecture 200 of the security anomaly detection and virtual patching, according to some embodiments. This example is conceptually divided by activity into three areas: a Local Plant 205 activity performed by engineers and plant operators, Security Anomaly Detection Functionality implemented on Controllers (or other enabled devices) 215A, 215B, and 215C, and threat management at a SOC 210. The arrows presented in FIG. 2 are presented for illustrative purposes to show some potential ways that information/data may be transferred between devices in the architecture 200; however, it should be understood that these arrows are merely examples of the various information/data transfers that may take place using the architecture 200 and transfers between different pairs of devices may be similarly implemented within the architecture 200.
[25] The Local Plant 205 portion of the workflow comprises Engineers 205A and Plant
Operators 205B. The Engineers 205 A develop and deploy the anomaly detection apps, virtual patching apps, and other security apps to the Controllers 215A, 215B, and 215C. Additionally, the Engineers 205A may configure the Controllers 215A, 215B, and 215C (either via the deployed apps or through other system settings) to specify the level of information exchange between the Controllers 215 A, 215B, and 215C and the SOC 210. Moreover, in some
embodiments, the Engineers 205A may specify how the SOC 210 should react to the certain threat conditions.
[26] The SOC 210 comprises Security /Process Control Specialists 21 OA and an Analytics
Cloud 210B. Security /Process Control Specialists 21 OA provide threat intelligence information to the Analytics Cloud 210B. The Analytics Cloud 210B processes the threat intelligence information with specialized security analytics to identify new attack vectors which can be delivered to the Controllers 215A, 215B, and 215C (as described in further detail below). Additionally, the Analytics Cloud 210B may gather plant security status information (e.g., events, etc.) and share this information with the Security/Process Control Specialists 21 OA to further refine the threat intelligence information.
[27] Once deployed to the Controllers 215A, 215B, and 215C, the anomaly detection app enables security behavior on each device (e.g., security event/log collection). Additionally, in some embodiments, the anomaly detection app gives situational awareness context to the Controller 215A, 215B, and 215C. Each Controller 215A, 215B, and 215C may also provide distributed monitoring enabled by app-to-app communication to increase resiliency. Any attempt to manipulate process control or process view may be detected both locally and via the peers using a distributed database management system (DDMS) spanning the embedded historian included in each Controller 215A, 215B, and 215C.
[28] Additionally, this architecture 200 shown in FIG. 2 may be used for the provisioning of custom security signatures to be deployed as data points for the local database. For example, new (external) attack vectors, correlated with global intelligence, may be custom delivered based on context from the Analytics Cloud 210B included in the SOC 210. Similarly, security anomalies may be broadcasted by the Controller 215A, 215B, and 215C to the SOC 210. Custom signatures and virtual patches can be issued by the SOC 210 and delivered through its Analytics Cloud 210B (optionally, the customer might decide to have its own SOC). For example, in some embodiments, the Analytics Cloud 210B executes one or more applications which correlate external security information (e.g., threat intelligence), product information (e.g., PLC technical features), security vulnerability information and other context relevant information, such as, without limitation, production process data, process configuration, network
topology and security configuration. Based on this information, the Analytics Cloud 21 OB identifies attack vectors applicable to the Controllers 215A, 215B, and 215C. Once these attack vectors have been identified, a virtual patch for detecting the attacks may be generated and deployed to the Controller 215 A, 215B, and 215C, after the security professionals 201 A validate and verify the cyberattack and the virtual patch. This infrastructure might also be used to prevent incidents that happened in the past (for which the attack signature or TTP - Tactics Techniques and Procedures is known) from happening in a similar infrastructure that has the same vulnerabilities.
[29] Each Controller 215A, 215B, and 215C includes a local database of virtual patches within its respective embedded historian that runs as a DDMS. Each of these databases has a dataset referred to herein as a "virtual patch database." Using these databases, attack signatures or data from other connected control devices can be read to confirm that an attack is occurring. For example, by analyzing network connection events from Controllers 215 A and 215B, Controller 215C may be able to confirm a given malicious pattern.
[30] The virtual patch database may be divided in two main instances: real time and postmortem. The real time instance is reduced in size (limited number of virtual patches can be installed) and allows for command interception. Optionally, the intercepted command execution could be confirmed by checking if a symbolic execution of the requested command, given the available input and memory status lead to an unsafe process status. The post mortem does not allow intercepting the control or configuration command, but permits the confirmation of the security compromise to be alerted and additional forensic data to be securely collected.
[31] The App Container of each Controller 215A, 215B, and 215C includes a kernel module security application referred to herein as the "virtual patch engine" (as shown in FIG. 2). This virtual patch engine communicates with the SOC 210 to automatically receive virtual patches and threat intelligence as security feeds. The engine uses this information to execute a detection algorithm which continually scans the virtual patch database in order to identify a matching suspicious security behavior indicative of cyberattack execution. The virtual patch engine may additionally collect system relevant information such as running processes/threads, network connections, file creation/modification and PLC specific information such as read and
written memory blocks, system configuration changes, alarm status change, the scan time, block execution time, etc. The collected information may then be analyzed by the virtual patch engine in order to identify matching ongoing attacks. In some embodiments, the embedded local historian of each Controller 215A, 215B, and 215C also allows for a historical analysis of the recent system changes within a limited time slot. Once an attack has been identified, it can be handled locally by the controller (e.g., blocking network traffic from a particular address). Alternatively (or additionally), a notification about the attack can be sent to the Plant Operator 205B for further escalation or management via security tools.
[32] In some embodiments, the virtual patch engine uses symbolic execution of control code to determine the future consequence of running a given configuration in combination with a given control command/control logic and, if needed (e.g., if it brings the system to an unsafe state or violates safety constraints), blocks it. In some embodiments, the virtual patch engine intercepts all calls attempting to access the PLC application program, as well as I/O and other connected PLC interfaces. The virtual patch engine validates each call before allowing the call to proceed. The detection of the virtual patch engine can optionally be activated by a security anomaly detection app (discussed above) or during an applicable attack campaign.
[33] FIG. 3 illustrates a virtual patching process 300, according to some embodiments.
The process 300 starts as two security-focused apps are installed on the PLC. More specifically, at step 305, an anomaly detection app installed on PLC which enables behavioral intrusion detection and, at step 310, a virtual patching app installed on the PLC which enables signature based detection. These apps may generally be installed in any order, although there may be dependencies between the apps in some embodiments that dictate installation order. Once installed, at step 315, the PLC enters into a continuous monitoring state.
[34] Once an attack is detected, a response operation is performed by the controller.
Different levels of response are possible based on a configuration on the device (e.g., specified within one or more of the apps by an engineer or operator). In the least intrusive response action, the security anomaly is only reported and logs are exported outside the controller. On the other extreme, configuration commands may be rejected and a safe shutdown action might be triggered. As an example, the availability of a running vulnerable HTTPS service enabled by a
Heartbleed Shellshock vulnerable OpenSSL library could be disabled upon the detection of the injection of a network Heartbleed payload. Alternatively, the command could be accepted, but the response avoided. Between the two extremes other response forms may be employed.
[35] In the example of FIG. 3, two possible responses are shown, selected based on whether "active response" is enabled on the controller. The term "active response" refers to a controller setting indicating whether execution should be blocked or not. This setting may be provided, for example, by an engineer or operator of the controller. If active response is enabled, at step 330, execution is blocked or one or more commands may be rejected. Alternatively, if active response is not enabled, at step 335 the configuration/control command is executed and the anomaly is reported (e.g., via the HMI or directly to the plant operator).
[36] Continuing with reference to FIG. 3, at step 340 a new vulnerability is disclosed, either by a device within the automation environment or by an external source. At step 345, the SOC verifies and reproduces the vulnerability. Next, at step 350, the SOC creates a new vulnerability exploitation detection signature which will enable a particular device to identify the vulnerability and attempts to exploit it. Then, at step 325, a virtual patch is created and distributed to each customer that the signature is applicable to (based e.g., on matching firmware version, hardware, and other parameters). At the customer's site, the virtual patch is deployed at step 320 by the automation system. Engineers or operators might decide to use a software interface to approve the patch but, generally, the automation system will deploy the patch automatically once it is selected/confirmed. Once deployed, the engineers or operators may modify the system configuration based on the patch. For example, for a particular vulnerability, the engineer or operator may configure the controller to shut down, either gracefully or immediately upon detection of the relevant vulnerability exploitation signature. It should be noted that steps 320 and 325 can be combined in scenarios where the SOC is tightly integrated with the automation environment or the plant operators/engineers have delegated some responsibilities to the SOC. Thus, the SOC (or some other intermediary group or service) can distribute the virtual patch to the control device(s) directly and configure the corresponding response behavior (e.g., based on preferences provided by the plant's engineers or operators). It should be noted that this mechanism might be used to detect attack methods that do not necessarily depend on the existence of vulnerabilities. For example, these signatures could be
used to detect "brute force" type of attacks or "resource exhaustion." Moreover, in addition to applying payload detection algorithms for disclosed vulnerabilities, attack campaigns could also be detected through the distribution of virtual patches.
[37] In some embodiments, the virtual patch is enabled by the computation of a Boolean algebra for which a true result denotes the positive characterization of the attack (similarly to Security Information and Event Management correlation rules). The following example illustrates this case:
True attack = x Λ (y V (z Λ - (a--- ---4.6) ) ), where x is the matching authentication event, y is the inbound memory block change request, z is the matching outbound command value, and a is the CPU firmware version.
[38] FIG. 3 shows how the system can react to new attack techniques, practices, and procedures as they emerge. At step 355 an attack campaign is detected, for example, by the automation devices, by the plant engineers or operators, or by the SOC itself. Next, at step 360, the SOC investigates accordingly and characterizes the attack. Based on this characterization, the SOC creates an attack detection signature at step 365. Then, the signature is distributed and deployed to each customer to whom it applies in the form of a virtual patch at steps 320 and 325. The manner of distribution and deployment may be implemented in a manner similar to that discussed above with respect to vulnerability detection signatures.
[39] The methods, systems, and apparatuses described herein provide several advantages compared to conventional systems. For example, the virtual patch described herein allows for automated distribution of PLC specific security signatures and offers the potential for protection for the time period between the vulnerability/patch release and the patch installation. Additionally, the techniques described herein may be applied with minimal impact to the PLC hardware, especially in distributed computing environments. For example, distributed idle CPU/memory resources may be employed for distributed anomaly detection and the distributed available storage space can be used for distributed anomaly detection. The use of distributed computing also allows decentralized attack detection, which avoids the single point of failure often present in conventional systems. The generated detection signatures/virtual patches also
allow detection based on input data from multiple dimensions (e.g., network behavior, system behavior, production process behavior), rather than just pure network related data and events. Also, signatures might be created to protect adjacent devices. This approach offers an implementation path for protecting legacy devices.
[40] The processors described herein as used by control devices may include one or more central processing units (CPUs), graphical processing units (GPUs), or any other processor known in the art. More generally, a processor as used herein is a device for executing machine- readable instructions stored on a computer readable medium, for performing tasks and may comprise any one or combination of, hardware and firmware. A processor may also comprise memory storing machine-readable instructions executable for performing tasks. A processor acts upon information by manipulating, analyzing, modifying, converting or transmitting information for use by an executable procedure or an information device, and/or by routing the information to an output device. A processor may use or comprise the capabilities of a computer, controller or microprocessor, for example, and be conditioned using executable instructions to perform special purpose functions not performed by a general purpose computer. A processor may be coupled (electrically and/or as comprising executable components) with any other processor enabling interaction and/or communication there-between. A user interface processor or generator is a known element comprising electronic circuitry or software or a combination of both for generating display images or portions thereof. A user interface comprises one or more display images enabling user interaction with a processor or other device.
[41] Various devices described herein including, without limitation, the control layer devices and related computing infrastructure, may include at least one computer readable medium or memory for holding instructions programmed according to embodiments of the invention and for containing data structures, tables, records, or other data described herein. The term "computer readable medium" as used herein refers to any medium that participates in providing instructions to one or more processors for execution. A computer readable medium may take many forms including, but not limited to, non-transitory, non-volatile media, volatile media, and transmission media. Non-limiting examples of non-volatile media include optical disks, solid state drives, magnetic disks, and magneto-optical disks. Non-limiting examples of volatile media include dynamic memory. Non-limiting examples of transmission media include
coaxial cables, copper wire, and fiber optics, including the wires that make up a system bus. Transmission media may also take the form of acoustic or light waves, such as those generated during radio wave and infrared data communications.
[42] An executable application, as used herein, comprises code or machine readable instructions for conditioning the processor to implement predetermined functions, such as those of an operating system, a context data acquisition system or other information processing system, for example, in response to user command or input. An executable procedure is a segment of code or machine readable instruction, sub-routine, or other distinct section of code or portion of an executable application for performing one or more particular processes. These processes may include receiving input data and/or parameters, performing operations on received input data and/or performing functions in response to received input parameters, and providing resulting output data and/or parameters.
[43] The functions and process steps herein may be performed automatically, wholly or partially in response to user command. An activity (including a step) performed automatically is performed in response to one or more executable instructions or device operation without user direct initiation of the activity.
[44] The system and processes of the figures are not exclusive. Other systems, processes and menus may be derived in accordance with the principles of the invention to accomplish the same objectives. Although this invention has been described with reference to particular embodiments, it is to be understood that the embodiments and variations shown and described herein are for illustration purposes only. Modifications to the current design may be implemented by those skilled in the art, without departing from the scope of the invention. As described herein, the various systems, subsystems, agents, managers and processes can be implemented using hardware components, software components, and/or combinations thereof. No claim element herein is to be construed under the provisions of 35 U.S.C. 112, sixth paragraph, unless the element is expressly recited using the phrase "means for."
Claims
1. A system for virtual patching of security vulnerabilities in an industrial production environment, the system comprising:
an industrial automation device comprising:
an instance of a distributed database spanning a plurality of industrial automation devices and storing one or more virtual patches, and
an app container comprising a virtual patching engine security application configured to:
collect system information generated by the industrial automation device during operation, and
apply the one or more virtual patches to the system information to identify one or more security attacks.
2. The system of claim 1, wherein the one or more virtual patches each describe a distinct attack signature exploitable on the industrial automation device.
3. The system of claim 1, wherein the system information corresponds to system calls made by one or more applications executing on the industrial automation device.
4. The system of claim 1, wherein the system information comprises one or more of (i) memory blocks where at least one of a read or write operation has been performed; (ii) system configuration changes; and (iii) alarm status changes.
5. The system of claim 4, wherein the system information further comprises one or more of (i) processes executing on the industrial automation device; (ii) threads executing on the industrial automation device; (iii) networking connections utilized by the industrial automation
device; (iv) file creation information; and (v) file modification information.
6. The system of claim 1 , wherein the virtual patching engine security application performs symbolic execution of control code executed by the industrial automation device to determine an indicator of future consequences of running one or more configurations of the industrial automation device in combination with one or more control commands.
7. The system of claim 6, wherein the virtual patching engine security application blocks future execution of the one or more control commands if the indicator of future consequences corresponds to (i) an unsafe system state or (ii) a violation of one or more predetermined safety constraints associated with the industrial production environment.
8. The system of claim 1, wherein the instance of the distributed database and the app container are executed in a first virtual machine on the industrial automation device.
9. The system of claim 8, wherein the industrial automation device comprises a second virtual machine executing:
a process image updated according to a scan cycle with automation system production data associated with one or more field devices;
a networking component configured to send and receive automation system network data on a plant floor network.
10. The system of claim 9, wherein the second virtual machine additionally executes a realtime database comprising an embedded historian configured to store the automation system production data collected via the process image and the automation system network data collected via the networking component.
11. The system of claim 10, wherein the system information generated by the industrial automation device during operation is retrieved by the virtual patching engine security application from the embedded historian.
12. The system of claim 1, wherein the virtual patching engine security application is further configured to (i) receive one or more new virtual patches generated by a security operations center and (ii) store the one or more new virtual patches in the distributed database.
13. The system of claim 12, wherein the virtual patching engine security application is further configured to transmit an indication of the one or more security attacks to the security operations center.
14. The system of claim 1, wherein the virtual patching engine security application is further configured to:
identify one or more control commands associated with the one or more security attacks; in response to identifying one or more security attacks, determine whether an active response setting is enabled;
if the active response setting is not enabled, execute the one or more control commands and report an anomaly to an operator associated with the industrial automation device; and
if the active response setting is enabled, blocking execution of the one or more control commands.
15. A system for virtual patching of security vulnerabilities in an industrial production environment, the system comprising:
a first virtual machine executing one or more control programs;
a second virtual machine executing a virtual patching engine security application configured to collect system information related to the one or more control programs, and apply
one or more virtual patches to the system information to identify one or more security attacks; an internal communication channel configured to facilitate transfer of the system information between the first virtual machine and the second virtual machine; and
a hypervisor executing the first virtual machine and the second virtual machine.
16. The system of claim 15, wherein the second virtual machine further comprises:
an instance of a distributed database spanning a plurality of industrial controllers and storing the one or more virtual patches.
17. The system of claim 15, wherein the system information generated by the one or more control programs during operation is retrieved by the virtual patching engine security application from an embedded historian in the first virtual machine.
18. The system of claim 17, wherein the second virtual machine comprises an app container configured to execute a plurality of apps and the virtual patching engine security application is executed in the app container.
19. The system of claim 15, wherein the system information comprises one or more of (i) memory blocks where at least one of a read or write operation has been performed; (ii) system configuration changes; and (iii) alarm status changes.
20. The system of claim 19, wherein the system information further comprises one or more of (i) processes executing on the first virtual machine; (ii) threads executing the first virtual machine; (iii) networking connections utilized by the first virtual machine; (iv) file creation information; and (v) file modification information.
21. A computer-implemented method for virtual patching of security vulnerabilities in an industrial production environment, the method comprising:
receiving, by a security operations center computer, an indication of one or more security vulnerabilities exploitation methods applicable to industrial control systems;
reproducing, by the security operations center computer, the one or more security vulnerabilities exploitation methods using a simulated industrial environment;
generating, by the security operations center computer, a vulnerability exploitation detection signature corresponding to the one or more security vulnerabilities exploitation methods;
identifying, by the security operations center computer, one or more users of industrial controllers to which the vulnerability exploitation detection signature is applicable;
for each identified user, generating a virtual patch operable to detect attempted execution of the one or more security vulnerabilities exploitation and distributing the virtual patch to the identified user.
22. A computer-implemented method for virtual patching of security vulnerabilities in an industrial production environment, the method comprising:
receiving, by a security operations center computer, an indication of one or more attack campaigns applicable to industrial control systems;
generating, by the security operations center computer, an attack detection signature corresponding to the one or more attack campaigns;
identifying, by the security operations center computer, one or more users of industrial controllers to which the attack detection signature is applicable; and
for each identified user, generating a virtual patch operable to detect the attack detection signature and distributing the virtual patch to the identified user.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2016/039726 WO2018004523A1 (en) | 2016-06-28 | 2016-06-28 | Plc virtual patching and automated distribution of security context |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2016/039726 WO2018004523A1 (en) | 2016-06-28 | 2016-06-28 | Plc virtual patching and automated distribution of security context |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2018004523A1 true WO2018004523A1 (en) | 2018-01-04 |
Family
ID=56409210
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2016/039726 WO2018004523A1 (en) | 2016-06-28 | 2016-06-28 | Plc virtual patching and automated distribution of security context |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2018004523A1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110262420A (en) * | 2019-06-18 | 2019-09-20 | 国家计算机网络与信息安全管理中心 | A kind of distributed industrial control network security detection system |
CN111427305A (en) * | 2020-03-29 | 2020-07-17 | 博智安全科技股份有限公司 | Method for Siemens P L C vulnerability mining |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090083204A1 (en) * | 2007-09-26 | 2009-03-26 | Rockwell Automation Technologies, Inc. | Historians embedded in industrial units |
EP2154626A2 (en) * | 2008-08-13 | 2010-02-17 | Fujitsu Ltd. | Anti-virus method, computer, and recording medium |
US20100332889A1 (en) * | 2009-06-25 | 2010-12-30 | Vmware, Inc. | Management of information technology risk using virtual infrastructures |
US8132164B1 (en) * | 2005-08-01 | 2012-03-06 | Mcafee, Inc. | System, method and computer program product for virtual patching |
US20140047107A1 (en) * | 2012-08-09 | 2014-02-13 | Rockwell Automation Technologies, Inc. | Remote industrial monitoring and analytics using a cloud infrastructure |
US20140130033A1 (en) * | 2012-11-06 | 2014-05-08 | General Electric Company | Method and system for use in facilitating patch change management of industrial control systems |
-
2016
- 2016-06-28 WO PCT/US2016/039726 patent/WO2018004523A1/en active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8132164B1 (en) * | 2005-08-01 | 2012-03-06 | Mcafee, Inc. | System, method and computer program product for virtual patching |
US20090083204A1 (en) * | 2007-09-26 | 2009-03-26 | Rockwell Automation Technologies, Inc. | Historians embedded in industrial units |
EP2154626A2 (en) * | 2008-08-13 | 2010-02-17 | Fujitsu Ltd. | Anti-virus method, computer, and recording medium |
US20100332889A1 (en) * | 2009-06-25 | 2010-12-30 | Vmware, Inc. | Management of information technology risk using virtual infrastructures |
US20140047107A1 (en) * | 2012-08-09 | 2014-02-13 | Rockwell Automation Technologies, Inc. | Remote industrial monitoring and analytics using a cloud infrastructure |
US20140130033A1 (en) * | 2012-11-06 | 2014-05-08 | General Electric Company | Method and system for use in facilitating patch change management of industrial control systems |
Non-Patent Citations (1)
Title |
---|
INTERNATIONAL ELECTROTECHNICAL COMMISSION 62443, 2 January 2009 (2009-01-02) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110262420A (en) * | 2019-06-18 | 2019-09-20 | 国家计算机网络与信息安全管理中心 | A kind of distributed industrial control network security detection system |
CN111427305A (en) * | 2020-03-29 | 2020-07-17 | 博智安全科技股份有限公司 | Method for Siemens P L C vulnerability mining |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11022949B2 (en) | PLC virtual patching and automated distribution of security context | |
WO2012173906A2 (en) | Threat level assessment of applications | |
US20070044151A1 (en) | System integrity manager | |
CN111107108B (en) | Method for analyzing network security of industrial control system | |
WO2018004523A1 (en) | Plc virtual patching and automated distribution of security context | |
CN108418697B (en) | Implementation architecture of intelligent safe operation and maintenance service cloud platform | |
CN107852400B (en) | Self-defense intelligent field device and architecture | |
EP3646561B1 (en) | A threat detection system for industrial controllers | |
US8931087B1 (en) | Reconfigurable virtualized remote computer security system | |
US11029662B2 (en) | System and method for enabling data to be transmitted between program modules based on compliance with rules | |
CN113557482A (en) | Controller system | |
Choi et al. | Vendor-independent monitoring on programmable logic controller status for ICS security log management | |
Šurković et al. | Incorporating attacks modeling into safety process | |
EP3109807A1 (en) | Method for assessing safety and security risks of an industrial process | |
RU2724796C1 (en) | System and method of protecting automated systems using gateway | |
Negi et al. | Intrusion Detection & Prevention in Programmable Logic Controllers: A Model-driven Approach | |
RU2746105C2 (en) | System and method of gateway configuration for automated systems protection | |
EP3951520A1 (en) | Control system and setting method | |
EP3361332B1 (en) | System and method of monitoring of the execution system of a programmable logic controller | |
CN111159018B (en) | Software protection extended instruction SGX-based online fuzzy test system and method | |
US20200344249A1 (en) | Automated incident response process and automated actions | |
Dietz et al. | Employing Digital Twins for Security-by-Design System Testing | |
CN114329444A (en) | System safety improving method and device | |
US20190245889A1 (en) | Virtualized network function security wrapping orchestration in the cloud environment | |
Xenofontos | Security Attacks in Programmable Logic Controllers (PLCs) in Industrial Control Systems (ICS) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 16738316 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase in: |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 16738316 Country of ref document: EP Kind code of ref document: A1 |