The origin of this puzzle is unknown to me.

An unsolved puzzle consists of a rectangular array of circles. Each circle contains a number, and there are nubs along the sides.

The goal is to fill in lines between the circle clues.

The solved grid must satisfy the following conditions:

Each clue indicates the number of lines connecting the circle to its neighbors.

No two lines can cross.