This wasn't the type of Python I was expecting...

Draw a python (a one-tile wide path) connecting the given circle in the northwest to the circle in the southeast. The python does not touch itself, not even diagonally. Additional rules apply to each quadrant.

Northwest: Minesweeper Python. Given numbers show how many python cells are located in the eight neighboring cells. (Yes, like in the Windows game.)

Northeast: Graffiti Python. The numbers outside the grid show the lengths of blocks of connected non-python cells in that row or column, in order (top down or left-to-right). If there is more than one non-python block, there must be at least one python cell between them.

Southwest: Arrow Python. The arrows point toward the nearest python cell. In case of a tie, multiple arrows are given.

Southeast: Horse Python. The given numbers show the number of python cells that are a knight's move away from that number, as in chess.

? represents a single number greater than 0. * represents any number of numbers, including none. The python can't go on cells containing numbers, question marks, or arrows. Graffiti Python clues only apply to the northeast quadrant; all other clues apply to the whole grid (e.g. Horse Python clues count cells that are in the Graffiti Python or Arrow Python regions.)