Remove carriage returns.

Also add a presubmit so they don't get added to source code.

Change-Id: I6a85c6a934b1068a63646a0dcc0d3a08baa96ced
Reviewed-on: https://skia-review.googlesource.com/57110
Reviewed-by: Ravi Mistry <rmistry@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
diff --git a/tools/pathops_visualizer.htm b/tools/pathops_visualizer.htm
index 99acb76..fafd281 100644
--- a/tools/pathops_visualizer.htm
+++ b/tools/pathops_visualizer.htm
@@ -1,217 +1,217 @@
 <html>
 <head>
 <div height="0" hidden="true">
-

-Skia UnitTests: --match PathOpsOp$ --resourcePath resources\ SK_DEBUG

-<div id="android1">

-seg=1 {{{-5, 0}, {1075, 0}}}

-seg=2 {{{1075, 0}, {1075, 242}}}

-seg=3 {{{1075, 242}, {-5, 242}}}

-seg=4 {{{-5, 242}, {-5, 0}}}

-op sect

-seg=5 {{{0, 0}, {1080, 0}}}

-seg=6 {{{1080, 0}, {1080, 242}}}

-seg=7 {{{1080, 242}, {0, 242}}}

-seg=8 {{{0, 242}, {0, 0}}}

-debugShowLineIntersection wtTs[0]=0 {{{1075,0}, {1075,242}}} {{1075,0}} wnTs[0]=1 {{{-5,0}, {1075,0}}}

-debugShowLineIntersection wtTs[0]=1 {{{-5,242}, {-5,0}}} {{-5,0}} wnTs[0]=0 {{{-5,0}, {1075,0}}}

-debugShowLineIntersection wtTs[0]=0 {{{1075,242}, {-5,242}}} {{1075,242}} wnTs[0]=1 {{{1075,0}, {1075,242}}}

-debugShowLineIntersection wtTs[0]=0 {{{-5,242}, {-5,0}}} {{-5,242}} wnTs[0]=1 {{{1075,242}, {-5,242}}}

-debugShowLineIntersection wtTs[0]=0 {{{0,0}, {1080,0}}} {{0,0}} wtTs[1]=0.99537037 {{1075,0}} wnTs[0]=0.00462963 {{{-5,0}, {1075,0}}} wnTs[1]=1

-SkOpSegment::addT insert t=0.00462962963 segID=1 spanID=17

-SkOpSegment::addT insert t=0.99537037 segID=5 spanID=18

-debugShowLineIntersection wtTs[0]=1 {{{0,242}, {0,0}}} {{0,0}} wnTs[0]=0.00462963 {{{-5,0}, {1075,0}}}

-debugShowLineIntersection wtTs[0]=0.99537037 {{{0,0}, {1080,0}}} {{1075,0}} wnTs[0]=0 {{{1075,0}, {1075,242}}}

-debugShowLineIntersection wtTs[0]=0.00462962963 {{{1080,242}, {0,242}}} {{1075,242}} wnTs[0]=1 {{{1075,0}, {1075,242}}}

-SkOpSegment::addT insert t=0.00462962963 segID=7 spanID=19

-debugShowLineIntersection wtTs[0]=0.00462962963 {{{1080,242}, {0,242}}} {{1075,242}} wtTs[1]=1 {{0,242}} wnTs[0]=0 {{{1075,242}, {-5,242}}} wnTs[1]=0.99537037

-SkOpSegment::addT insert t=0.99537037 segID=3 spanID=20

-debugShowLineIntersection wtTs[0]=0 {{{0,242}, {0,0}}} {{0,242}} wnTs[0]=0.99537 {{{1075,242}, {-5,242}}}

-debugShowLineIntersection wtTs[0]=0 {{{1080,0}, {1080,242}}} {{1080,0}} wnTs[0]=1 {{{0,0}, {1080,0}}}

-debugShowLineIntersection wtTs[0]=1 {{{0,242}, {0,0}}} {{0,0}} wnTs[0]=0 {{{0,0}, {1080,0}}}

-debugShowLineIntersection wtTs[0]=0 {{{1080,242}, {0,242}}} {{1080,242}} wnTs[0]=1 {{{1080,0}, {1080,242}}}

-debugShowLineIntersection wtTs[0]=0 {{{0,242}, {0,0}}} {{0,242}} wnTs[0]=1 {{{1080,242}, {0,242}}}

-------------------x--x---------------- addExpanded

-00:  seg/base=3/5 seg/base=7/19 MarkCoinStart

-01:  seg/base=3/20 seg/base=7/14 MarkCoinEnd

-02:  seg/base=1/17 seg/base=5/9 MarkCoinStart

-03:  seg/base=1/2 seg/base=5/18 MarkCoinEnd

-SkOpSegment::debugShowActiveSpans id=1 (-5,0 -8.8817842e-16,0) t=0 tEnd=0.00462962963 windSum=? windValue=1

-SkOpSegment::debugShowActiveSpans id=1 (-8.8817842e-16,0 1075,0) t=0.00462962963 tEnd=1 windSum=? windValue=1

-SkOpSegment::debugShowActiveSpans id=2 (1075,0 1075,242) t=0 tEnd=1 windSum=? windValue=1

-SkOpSegment::debugShowActiveSpans id=3 (1075,242 2.22044605e-14,242) t=0 tEnd=0.99537037 windSum=? windValue=1

-SkOpSegment::debugShowActiveSpans id=3 (2.22044605e-14,242 -5,242) t=0.99537037 tEnd=1 windSum=? windValue=1

-SkOpSegment::debugShowActiveSpans id=4 (-5,242 -5,0) t=0 tEnd=1 windSum=? windValue=1

-SkOpSegment::debugShowActiveSpans id=5 (0,0 1075,0) t=0 tEnd=0.99537037 windSum=? windValue=1

-SkOpSegment::debugShowActiveSpans id=5 (1075,0 1080,0) t=0.99537037 tEnd=1 windSum=? windValue=1

-SkOpSegment::debugShowActiveSpans id=6 (1080,0 1080,242) t=0 tEnd=1 windSum=? windValue=1

-SkOpSegment::debugShowActiveSpans id=7 (1080,242 1075,242) t=0 tEnd=0.00462962963 windSum=? windValue=1

-SkOpSegment::debugShowActiveSpans id=7 (1075,242 0,242) t=0.00462962963 tEnd=1 windSum=? windValue=1

-SkOpSegment::debugShowActiveSpans id=8 (0,242 0,0) t=0 tEnd=1 windSum=? windValue=1

-------------------x--x---------------- move_multiples

-00:  seg/base=3/5 seg/base=7/19 MarkCoinStart

-01:  seg/base=3/20 seg/base=7/14 MarkCoinEnd

-02:  seg/base=1/17 seg/base=5/9 MarkCoinStart

-03:  seg/base=1/2 seg/base=5/18 MarkCoinEnd

-------------------x--x---------------- move_nearby

-00:  seg/base=3/5 seg/base=7/19 MarkCoinStart

-01:  seg/base=3/20 seg/base=7/14 MarkCoinEnd

-02:  seg/base=1/17 seg/base=5/9 MarkCoinStart

-03:  seg/base=1/2 seg/base=5/18 MarkCoinEnd

-------------------x--x---------------- correctEnds

-00:  seg/base=3/5 seg/base=7/19 MarkCoinStart

-01:  seg/base=3/20 seg/base=7/14 MarkCoinEnd

-02:  seg/base=1/17 seg/base=5/9 MarkCoinStart

-03:  seg/base=1/2 seg/base=5/18 MarkCoinEnd

-------------------x--x---------------- addEndMovedSpans

-00:  seg/base=3/5 seg/base=7/19 MarkCoinStart

-01:  seg/base=3/20 seg/base=7/14 MarkCoinEnd

-02:  seg/base=1/17 seg/base=5/9 MarkCoinStart

-03:  seg/base=1/2 seg/base=5/18 MarkCoinEnd

-------------------x--x---------------- expand

-00:  seg/base=3/5 seg/base=7/19 MarkCoinStart

-01:  seg/base=3/20 seg/base=7/14 MarkCoinEnd

-02:  seg/base=1/17 seg/base=5/9 MarkCoinStart

-03:  seg/base=1/2 seg/base=5/18 MarkCoinEnd

-------------------x--x---------------- addExpanded

-00:  seg/base=3/5 seg/base=7/19 MarkCoinStart

-01:  seg/base=3/20 seg/base=7/14 MarkCoinEnd

-02:  seg/base=1/17 seg/base=5/9 MarkCoinStart

-03:  seg/base=1/2 seg/base=5/18 MarkCoinEnd

-------------------x--x---------------- mark

-00:  seg/base=3/5 seg/base=7/19 MarkCoinStart

-01:  seg/base=3/20 seg/base=7/14 MarkCoinEnd

-02:  seg/base=1/17 seg/base=5/9 MarkCoinStart

-03:  seg/base=1/2 seg/base=5/18 MarkCoinEnd

--------------------------------------- missing_coincidence

--------------------------------------- expand

--------------------------------------- expand

--------------------------------------- apply

-SkOpSegment::markDone id=7 (1080,242 0,242) t=0.00462962963 [19] (1075,242) tEnd=1 newWindSum=? newOppSum=? oppSum=? windSum=? windValue=0 oppValue=0

-SkOpSegment::markDone id=5 (0,0 1080,0) t=0 [9] (0,0) tEnd=0.99537037 newWindSum=? newOppSum=? oppSum=? windSum=? windValue=0 oppValue=0

--------------------------------------- findOverlaps

-SkOpSegment::debugShowActiveSpans id=1 (-5,0 -8.8817842e-16,0) t=0 tEnd=0.00462962963 windSum=? windValue=1

-SkOpSegment::debugShowActiveSpans id=1 (-8.8817842e-16,0 1075,0) t=0.00462962963 tEnd=1 windSum=? oppSum=? windValue=1 oppValue=1

-SkOpSegment::debugShowActiveSpans id=2 (1075,0 1075,242) t=0 tEnd=1 windSum=? windValue=1

-SkOpSegment::debugShowActiveSpans id=3 (1075,242 2.22044605e-14,242) t=0 tEnd=0.99537037 windSum=? oppSum=? windValue=1 oppValue=1

-SkOpSegment::debugShowActiveSpans id=3 (2.22044605e-14,242 -5,242) t=0.99537037 tEnd=1 windSum=? windValue=1

-SkOpSegment::debugShowActiveSpans id=4 (-5,242 -5,0) t=0 tEnd=1 windSum=? windValue=1

-SkOpSegment::debugShowActiveSpans id=5 (1075,0 1080,0) t=0.99537037 tEnd=1 windSum=? windValue=1

-SkOpSegment::debugShowActiveSpans id=6 (1080,0 1080,242) t=0 tEnd=1 windSum=? windValue=1

-SkOpSegment::debugShowActiveSpans id=7 (1080,242 1075,242) t=0 tEnd=0.00462962963 windSum=? windValue=1

-SkOpSegment::debugShowActiveSpans id=8 (0,242 0,0) t=0 tEnd=1 windSum=? windValue=1

--------------------------------------- calc_angles

-SkOpSegment::sortAngles [1] tStart=0.00462962963 [17]

-SkOpAngle::after [1/1] 15/15 tStart=0.00462962963 tEnd=0 < [8/12] 23/23 tStart=1 tEnd=0 < [1/2] 31/31 tStart=0.00462962963 tEnd=1  T 4

-SkOpAngle::afterPart {{{0,0}, {-5,0}}} id=1

-SkOpAngle::afterPart {{{0,0}, {0,242}}} id=8

-SkOpAngle::afterPart {{{0,0}, {1075,0}}} id=1

-SkOpSegment::sortAngles [1] tStart=1 [2]

-SkOpAngle::after [1/3] 15/15 tStart=1 tEnd=0.00462962963 < [2/4] 23/23 tStart=0 tEnd=1 < [5/9] 31/31 tStart=0.99537037 tEnd=1  T 4

-SkOpAngle::afterPart {{{1075,0}, {-8.8817842e-16,0}}} id=1

-SkOpAngle::afterPart {{{1075,0}, {1075,242}}} id=2

-SkOpAngle::afterPart {{{1075,0}, {1080,0}}} id=5

-SkOpSegment::sortAngles [2] tStart=0 [3]

-SkOpSegment::sortAngles [2] tStart=1 [4]

-SkOpAngle::after [2/5] 7/7 tStart=1 tEnd=0 < [3/6] 15/15 tStart=0 tEnd=0.99537037 < [7/10] 31/31 tStart=0.00462962963 tEnd=0  T 4

-SkOpAngle::afterPart {{{1075,242}, {1075,0}}} id=2

-SkOpAngle::afterPart {{{1075,242}, {2.22044605e-14,242}}} id=3

-SkOpAngle::afterPart {{{1075,242}, {1080,242}}} id=7

-SkOpSegment::sortAngles [3] tStart=0 [5]

-SkOpSegment::sortAngles [3] tStart=0.99537037 [20]

-SkOpAngle::after [3/7] 31/31 tStart=0.99537037 tEnd=0 < [8/11] 7/7 tStart=0 tEnd=1 < [3/8] 15/15 tStart=0.99537037 tEnd=1  T 4

-SkOpAngle::afterPart {{{0,242}, {1075,242}}} id=3

-SkOpAngle::afterPart {{{0,242}, {0,0}}} id=8

-SkOpAngle::afterPart {{{0,242}, {-5,242}}} id=3

-SkOpSegment::sortAngles [5] tStart=0.99537037 [18]

-SkOpSegment::sortAngles [7] tStart=0.00462962963 [19]

-SkOpSegment::sortAngles [8] tStart=0 [15]

-SkOpSegment::sortAngles [8] tStart=1 [16]

-coinSpan - id=3 t=0 tEnd=0.99537037

-coinSpan + id=7 t=0.00462962963 tEnd=1

-coinSpan - id=1 t=0.00462962963 tEnd=1

-coinSpan + id=5 t=0 tEnd=0.99537037

-SkOpSpan::sortableTop dir=kTop seg=1 t=0.00231481481 pt=(-2.5,0)

-SkOpSpan::sortableTop [0] valid=1 operand=0 span=1 ccw=1 seg=1 {{{-5, 0}, {1075, 0}}} t=0.00231481481 pt=(-2.5,0) slope=(1080,0)

-SkOpSegment::markWinding id=1 (-5,0 1075,0) t=0 [1] (-5,0) tEnd=0.00462962963 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0

-SkOpSegment::markWinding id=1 (-5,0 1075,0) t=0 [1] (-5,0) tEnd=0.00462962963 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0

-SkOpSegment::markWinding id=4 (-5,242 -5,0) t=0 [7] (-5,242) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0

-SkOpSegment::markWinding id=3 (1075,242 -5,242) t=0.99537037 [20] (2.22044605e-14,242) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0

-SkOpSegment::activeOp id=1 t=0.00462962963 tEnd=0 op=sect miFrom=0 miTo=1 suFrom=0 suTo=0 result=0

-SkOpSegment::markDone id=1 (-5,0 1075,0) t=0 [1] (-5,0) tEnd=0.00462962963 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0

-SkOpSegment::markDone id=4 (-5,242 -5,0) t=0 [7] (-5,242) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0

-SkOpSegment::markDone id=3 (1075,242 -5,242) t=0.99537037 [20] (2.22044605e-14,242) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0

-bridgeOp chase.append id=3 windSum=-1

-SkOpSegment::markWinding id=3 (1075,242 -5,242) t=0 [5] (1075,242) tEnd=0.99537037 newWindSum=-1 newOppSum=-1 oppSum=? windSum=? windValue=1 oppValue=1

-SkOpSegment::markAngle last segment=3 span=5 windSum=-1 

-SkOpSegment::markWinding id=8 (0,242 0,0) t=0 [15] (0,242) tEnd=1 newWindSum=-1 newOppSum=-1 oppSum=? windSum=? windValue=1 oppValue=0

-SkOpSegment::markAngle last segment=8 span=16 

-SkOpSegment::debugShowActiveSpans id=1 (-8.8817842e-16,0 1075,0) t=0.00462962963 tEnd=1 windSum=? oppSum=? windValue=1 oppValue=1

-SkOpSegment::debugShowActiveSpans id=2 (1075,0 1075,242) t=0 tEnd=1 windSum=? windValue=1

-SkOpSegment::debugShowActiveSpans id=3 (1075,242 2.22044605e-14,242) t=0 tEnd=0.99537037 windSum=-1 oppSum=-1 windValue=1 oppValue=1

-SkOpSegment::debugShowActiveSpans id=5 (1075,0 1080,0) t=0.99537037 tEnd=1 windSum=? windValue=1

-SkOpSegment::debugShowActiveSpans id=6 (1080,0 1080,242) t=0 tEnd=1 windSum=? windValue=1

-SkOpSegment::debugShowActiveSpans id=7 (1080,242 1075,242) t=0 tEnd=0.00462962963 windSum=? windValue=1

-SkOpSegment::debugShowActiveSpans id=8 (0,242 0,0) t=0 tEnd=1 windSum=-1 oppSum=-1 windValue=1 oppValue=0

-SkOpSegment::activeOp id=3 t=0.99537037 tEnd=0 op=sect miFrom=0 miTo=1 suFrom=0 suTo=1 result=1

-SkOpSegment::markWinding id=7 (1080,242 0,242) t=0 [13] (1080,242) tEnd=0.00462962963 newWindSum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0

-SkOpSegment::markWinding id=6 (1080,0 1080,242) t=0 [11] (1080,0) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0

-SkOpSegment::markWinding id=5 (0,0 1080,0) t=0.99537037 [18] (1075,0) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0

-SkOpSegment::markAngle last segment=5 span=18 windSum=-1 

-SkOpSegment::markWinding id=2 (1075,0 1075,242) t=0 [3] (1075,0) tEnd=1 newWindSum=-1 newOppSum=-1 oppSum=? windSum=? windValue=1 oppValue=0

-SkOpSegment::markAngle last segment=2 span=3 windSum=-1 

-SkOpSegment::findNextOp

-SkOpAngle::dumpOne [3/6] next=7/10 sect=15/15  s=0 [5] e=0.99537037 [20] sgn=-1 windVal=1 windSum=-1 oppVal=1 oppSum=-1

-SkOpAngle::dumpOne [7/10] next=2/5 sect=31/31  s=0.00462962963 [19] e=0 [13] sgn=1 windVal=1 windSum=-1 oppVal=0 oppSum=0 operand

-SkOpAngle::dumpOne [2/5] next=3/6 sect=7/7  s=1 [4] e=0 [3] sgn=1 windVal=1 windSum=-1 oppVal=0 oppSum=-1

-SkOpSegment::activeOp id=7 t=0.00462962963 tEnd=0 op=sect miFrom=0 miTo=0 suFrom=0 suTo=1 result=0

-SkOpSegment::markDone id=7 (1080,242 0,242) t=0 [13] (1080,242) tEnd=0.00462962963 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0

-SkOpSegment::markDone id=6 (1080,0 1080,242) t=0 [11] (1080,0) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0

-SkOpSegment::markDone id=5 (0,0 1080,0) t=0.99537037 [18] (1075,0) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0

-SkOpSegment::findNextOp chase.append segment=5 span=18 windSum=-1

-SkOpSegment::activeOp id=2 t=1 tEnd=0 op=sect miFrom=0 miTo=1 suFrom=1 suTo=1 result=1

-SkOpSegment::findNextOp chase.append segment=2 span=3 windSum=-1

-SkOpSegment::markDone id=3 (1075,242 -5,242) t=0 [5] (1075,242) tEnd=0.99537037 newWindSum=-1 newOppSum=-1 oppSum=-1 windSum=-1 windValue=1 oppValue=1

-SkOpSegment::findNextOp from:[3] to:[2] start=90366152 end=90366008

-bridgeOp current id=3 from=(2.22044605e-14,242) to=(1075,242)

-SkOpSegment::markWinding id=1 (-5,0 1075,0) t=0.00462962963 [17] (-8.8817842e-16,0) tEnd=1 newWindSum=-1 newOppSum=-1 oppSum=? windSum=? windValue=1 oppValue=1

-SkOpSegment::markAngle last segment=1 span=17 windSum=-1 

-SkOpSegment::findNextOp

-SkOpAngle::dumpOne [2/4] next=5/9 sect=23/23  s=0 [3] e=1 [4] sgn=-1 windVal=1 windSum=-1 oppVal=0 oppSum=-1

-SkOpAngle::dumpOne [5/9] next=1/3 sect=31/31  s=0.99537037 [18] e=1 [10] sgn=-1 windVal=1 windSum=-1 oppVal=0 oppSum=0 done operand

-SkOpAngle::dumpOne [1/3] next=2/4 sect=15/15  s=1 [2] e=0.00462962963 [17] sgn=1 windVal=1 windSum=-1 oppVal=1 oppSum=-1

-SkOpSegment::activeOp id=5 t=0.99537037 tEnd=1 op=sect miFrom=0 miTo=0 suFrom=1 suTo=0 result=0

-SkOpSegment::activeOp id=1 t=1 tEnd=0.00462962963 op=sect miFrom=0 miTo=1 suFrom=0 suTo=1 result=1

-SkOpSegment::findNextOp chase.append segment=1 span=17 windSum=-1

-SkOpSegment::markDone id=2 (1075,0 1075,242) t=0 [3] (1075,0) tEnd=1 newWindSum=-1 newOppSum=-1 oppSum=-1 windSum=-1 windValue=1 oppValue=0

-SkOpSegment::findNextOp from:[2] to:[1] start=90365736 end=90368360

-bridgeOp current id=2 from=(1075,242) to=(1075,0)

-path.moveTo(2.22044605e-14,242);

-path.lineTo(1075,242);

-SkOpSegment::findNextOp

-SkOpAngle::dumpOne [1/2] next=1/1 sect=31/31  s=0.00462962963 [17] e=1 [2] sgn=-1 windVal=1 windSum=-1 oppVal=1 oppSum=-1

-SkOpAngle::dumpOne [1/1] next=8/12 sect=15/15  s=0.00462962963 [17] e=0 [1] sgn=1 windVal=1 windSum=-1 oppVal=0 oppSum=0 done

-SkOpAngle::dumpOne [8/12] next=1/2 sect=23/23  s=1 [16] e=0 [15] sgn=1 windVal=1 windSum=-1 oppVal=0 oppSum=-1 operand

-SkOpSegment::activeOp id=1 t=0.00462962963 tEnd=0 op=sect miFrom=0 miTo=1 suFrom=0 suTo=0 result=0

-SkOpSegment::activeOp id=8 t=1 tEnd=0 op=sect miFrom=1 miTo=1 suFrom=0 suTo=1 result=1

-SkOpSegment::markDone id=1 (-5,0 1075,0) t=0.00462962963 [17] (-8.8817842e-16,0) tEnd=1 newWindSum=-1 newOppSum=-1 oppSum=-1 windSum=-1 windValue=1 oppValue=1

-SkOpSegment::findNextOp from:[1] to:[8] start=90368192 end=90368048

-bridgeOp current id=1 from=(1075,0) to=(-8.8817842e-16,0)

-path.lineTo(1075,0);

-SkOpSegment::findNextOp

-SkOpAngle::dumpOne [8/11] next=3/8 sect=7/7  s=0 [15] e=1 [16] sgn=-1 windVal=1 windSum=-1 oppVal=0 oppSum=-1 operand

-SkOpAngle::dumpOne [3/8] next=3/7 sect=15/15  s=0.99537037 [20] e=1 [6] sgn=-1 windVal=1 windSum=-1 oppVal=0 oppSum=0 done

-SkOpAngle::dumpOne [3/7] next=8/11 sect=31/31  s=0.99537037 [20] e=0 [5] sgn=1 windVal=1 windSum=-1 oppVal=1 oppSum=-1 done

-SkOpSegment::activeOp id=3 t=0.99537037 tEnd=1 op=sect miFrom=1 miTo=0 suFrom=0 suTo=0 result=0

-SkOpSegment::activeOp id=3 t=0.99537037 tEnd=0 op=sect miFrom=0 miTo=1 suFrom=0 suTo=1 result=1

-SkOpSegment::markDone id=8 (0,242 0,0) t=0 [15] (0,242) tEnd=1 newWindSum=-1 newOppSum=-1 oppSum=-1 windSum=-1 windValue=1 oppValue=0

-SkOpSegment::findNextOp from:[8] to:[3] start=90368840 end=90366336

-bridgeOp current id=8 from=(0,0) to=(0,242)

-path.lineTo(-8.8817842e-16,0);

-path.lineTo(0,242);

-path.close();

-</div>

-

+
+Skia UnitTests: --match PathOpsOp$ --resourcePath resources\ SK_DEBUG
+<div id="android1">
+seg=1 {{{-5, 0}, {1075, 0}}}
+seg=2 {{{1075, 0}, {1075, 242}}}
+seg=3 {{{1075, 242}, {-5, 242}}}
+seg=4 {{{-5, 242}, {-5, 0}}}
+op sect
+seg=5 {{{0, 0}, {1080, 0}}}
+seg=6 {{{1080, 0}, {1080, 242}}}
+seg=7 {{{1080, 242}, {0, 242}}}
+seg=8 {{{0, 242}, {0, 0}}}
+debugShowLineIntersection wtTs[0]=0 {{{1075,0}, {1075,242}}} {{1075,0}} wnTs[0]=1 {{{-5,0}, {1075,0}}}
+debugShowLineIntersection wtTs[0]=1 {{{-5,242}, {-5,0}}} {{-5,0}} wnTs[0]=0 {{{-5,0}, {1075,0}}}
+debugShowLineIntersection wtTs[0]=0 {{{1075,242}, {-5,242}}} {{1075,242}} wnTs[0]=1 {{{1075,0}, {1075,242}}}
+debugShowLineIntersection wtTs[0]=0 {{{-5,242}, {-5,0}}} {{-5,242}} wnTs[0]=1 {{{1075,242}, {-5,242}}}
+debugShowLineIntersection wtTs[0]=0 {{{0,0}, {1080,0}}} {{0,0}} wtTs[1]=0.99537037 {{1075,0}} wnTs[0]=0.00462963 {{{-5,0}, {1075,0}}} wnTs[1]=1
+SkOpSegment::addT insert t=0.00462962963 segID=1 spanID=17
+SkOpSegment::addT insert t=0.99537037 segID=5 spanID=18
+debugShowLineIntersection wtTs[0]=1 {{{0,242}, {0,0}}} {{0,0}} wnTs[0]=0.00462963 {{{-5,0}, {1075,0}}}
+debugShowLineIntersection wtTs[0]=0.99537037 {{{0,0}, {1080,0}}} {{1075,0}} wnTs[0]=0 {{{1075,0}, {1075,242}}}
+debugShowLineIntersection wtTs[0]=0.00462962963 {{{1080,242}, {0,242}}} {{1075,242}} wnTs[0]=1 {{{1075,0}, {1075,242}}}
+SkOpSegment::addT insert t=0.00462962963 segID=7 spanID=19
+debugShowLineIntersection wtTs[0]=0.00462962963 {{{1080,242}, {0,242}}} {{1075,242}} wtTs[1]=1 {{0,242}} wnTs[0]=0 {{{1075,242}, {-5,242}}} wnTs[1]=0.99537037
+SkOpSegment::addT insert t=0.99537037 segID=3 spanID=20
+debugShowLineIntersection wtTs[0]=0 {{{0,242}, {0,0}}} {{0,242}} wnTs[0]=0.99537 {{{1075,242}, {-5,242}}}
+debugShowLineIntersection wtTs[0]=0 {{{1080,0}, {1080,242}}} {{1080,0}} wnTs[0]=1 {{{0,0}, {1080,0}}}
+debugShowLineIntersection wtTs[0]=1 {{{0,242}, {0,0}}} {{0,0}} wnTs[0]=0 {{{0,0}, {1080,0}}}
+debugShowLineIntersection wtTs[0]=0 {{{1080,242}, {0,242}}} {{1080,242}} wnTs[0]=1 {{{1080,0}, {1080,242}}}
+debugShowLineIntersection wtTs[0]=0 {{{0,242}, {0,0}}} {{0,242}} wnTs[0]=1 {{{1080,242}, {0,242}}}
+------------------x--x---------------- addExpanded
+00:  seg/base=3/5 seg/base=7/19 MarkCoinStart
+01:  seg/base=3/20 seg/base=7/14 MarkCoinEnd
+02:  seg/base=1/17 seg/base=5/9 MarkCoinStart
+03:  seg/base=1/2 seg/base=5/18 MarkCoinEnd
+SkOpSegment::debugShowActiveSpans id=1 (-5,0 -8.8817842e-16,0) t=0 tEnd=0.00462962963 windSum=? windValue=1
+SkOpSegment::debugShowActiveSpans id=1 (-8.8817842e-16,0 1075,0) t=0.00462962963 tEnd=1 windSum=? windValue=1
+SkOpSegment::debugShowActiveSpans id=2 (1075,0 1075,242) t=0 tEnd=1 windSum=? windValue=1
+SkOpSegment::debugShowActiveSpans id=3 (1075,242 2.22044605e-14,242) t=0 tEnd=0.99537037 windSum=? windValue=1
+SkOpSegment::debugShowActiveSpans id=3 (2.22044605e-14,242 -5,242) t=0.99537037 tEnd=1 windSum=? windValue=1
+SkOpSegment::debugShowActiveSpans id=4 (-5,242 -5,0) t=0 tEnd=1 windSum=? windValue=1
+SkOpSegment::debugShowActiveSpans id=5 (0,0 1075,0) t=0 tEnd=0.99537037 windSum=? windValue=1
+SkOpSegment::debugShowActiveSpans id=5 (1075,0 1080,0) t=0.99537037 tEnd=1 windSum=? windValue=1
+SkOpSegment::debugShowActiveSpans id=6 (1080,0 1080,242) t=0 tEnd=1 windSum=? windValue=1
+SkOpSegment::debugShowActiveSpans id=7 (1080,242 1075,242) t=0 tEnd=0.00462962963 windSum=? windValue=1
+SkOpSegment::debugShowActiveSpans id=7 (1075,242 0,242) t=0.00462962963 tEnd=1 windSum=? windValue=1
+SkOpSegment::debugShowActiveSpans id=8 (0,242 0,0) t=0 tEnd=1 windSum=? windValue=1
+------------------x--x---------------- move_multiples
+00:  seg/base=3/5 seg/base=7/19 MarkCoinStart
+01:  seg/base=3/20 seg/base=7/14 MarkCoinEnd
+02:  seg/base=1/17 seg/base=5/9 MarkCoinStart
+03:  seg/base=1/2 seg/base=5/18 MarkCoinEnd
+------------------x--x---------------- move_nearby
+00:  seg/base=3/5 seg/base=7/19 MarkCoinStart
+01:  seg/base=3/20 seg/base=7/14 MarkCoinEnd
+02:  seg/base=1/17 seg/base=5/9 MarkCoinStart
+03:  seg/base=1/2 seg/base=5/18 MarkCoinEnd
+------------------x--x---------------- correctEnds
+00:  seg/base=3/5 seg/base=7/19 MarkCoinStart
+01:  seg/base=3/20 seg/base=7/14 MarkCoinEnd
+02:  seg/base=1/17 seg/base=5/9 MarkCoinStart
+03:  seg/base=1/2 seg/base=5/18 MarkCoinEnd
+------------------x--x---------------- addEndMovedSpans
+00:  seg/base=3/5 seg/base=7/19 MarkCoinStart
+01:  seg/base=3/20 seg/base=7/14 MarkCoinEnd
+02:  seg/base=1/17 seg/base=5/9 MarkCoinStart
+03:  seg/base=1/2 seg/base=5/18 MarkCoinEnd
+------------------x--x---------------- expand
+00:  seg/base=3/5 seg/base=7/19 MarkCoinStart
+01:  seg/base=3/20 seg/base=7/14 MarkCoinEnd
+02:  seg/base=1/17 seg/base=5/9 MarkCoinStart
+03:  seg/base=1/2 seg/base=5/18 MarkCoinEnd
+------------------x--x---------------- addExpanded
+00:  seg/base=3/5 seg/base=7/19 MarkCoinStart
+01:  seg/base=3/20 seg/base=7/14 MarkCoinEnd
+02:  seg/base=1/17 seg/base=5/9 MarkCoinStart
+03:  seg/base=1/2 seg/base=5/18 MarkCoinEnd
+------------------x--x---------------- mark
+00:  seg/base=3/5 seg/base=7/19 MarkCoinStart
+01:  seg/base=3/20 seg/base=7/14 MarkCoinEnd
+02:  seg/base=1/17 seg/base=5/9 MarkCoinStart
+03:  seg/base=1/2 seg/base=5/18 MarkCoinEnd
+-------------------------------------- missing_coincidence
+-------------------------------------- expand
+-------------------------------------- expand
+-------------------------------------- apply
+SkOpSegment::markDone id=7 (1080,242 0,242) t=0.00462962963 [19] (1075,242) tEnd=1 newWindSum=? newOppSum=? oppSum=? windSum=? windValue=0 oppValue=0
+SkOpSegment::markDone id=5 (0,0 1080,0) t=0 [9] (0,0) tEnd=0.99537037 newWindSum=? newOppSum=? oppSum=? windSum=? windValue=0 oppValue=0
+-------------------------------------- findOverlaps
+SkOpSegment::debugShowActiveSpans id=1 (-5,0 -8.8817842e-16,0) t=0 tEnd=0.00462962963 windSum=? windValue=1
+SkOpSegment::debugShowActiveSpans id=1 (-8.8817842e-16,0 1075,0) t=0.00462962963 tEnd=1 windSum=? oppSum=? windValue=1 oppValue=1
+SkOpSegment::debugShowActiveSpans id=2 (1075,0 1075,242) t=0 tEnd=1 windSum=? windValue=1
+SkOpSegment::debugShowActiveSpans id=3 (1075,242 2.22044605e-14,242) t=0 tEnd=0.99537037 windSum=? oppSum=? windValue=1 oppValue=1
+SkOpSegment::debugShowActiveSpans id=3 (2.22044605e-14,242 -5,242) t=0.99537037 tEnd=1 windSum=? windValue=1
+SkOpSegment::debugShowActiveSpans id=4 (-5,242 -5,0) t=0 tEnd=1 windSum=? windValue=1
+SkOpSegment::debugShowActiveSpans id=5 (1075,0 1080,0) t=0.99537037 tEnd=1 windSum=? windValue=1
+SkOpSegment::debugShowActiveSpans id=6 (1080,0 1080,242) t=0 tEnd=1 windSum=? windValue=1
+SkOpSegment::debugShowActiveSpans id=7 (1080,242 1075,242) t=0 tEnd=0.00462962963 windSum=? windValue=1
+SkOpSegment::debugShowActiveSpans id=8 (0,242 0,0) t=0 tEnd=1 windSum=? windValue=1
+-------------------------------------- calc_angles
+SkOpSegment::sortAngles [1] tStart=0.00462962963 [17]
+SkOpAngle::after [1/1] 15/15 tStart=0.00462962963 tEnd=0 < [8/12] 23/23 tStart=1 tEnd=0 < [1/2] 31/31 tStart=0.00462962963 tEnd=1  T 4
+SkOpAngle::afterPart {{{0,0}, {-5,0}}} id=1
+SkOpAngle::afterPart {{{0,0}, {0,242}}} id=8
+SkOpAngle::afterPart {{{0,0}, {1075,0}}} id=1
+SkOpSegment::sortAngles [1] tStart=1 [2]
+SkOpAngle::after [1/3] 15/15 tStart=1 tEnd=0.00462962963 < [2/4] 23/23 tStart=0 tEnd=1 < [5/9] 31/31 tStart=0.99537037 tEnd=1  T 4
+SkOpAngle::afterPart {{{1075,0}, {-8.8817842e-16,0}}} id=1
+SkOpAngle::afterPart {{{1075,0}, {1075,242}}} id=2
+SkOpAngle::afterPart {{{1075,0}, {1080,0}}} id=5
+SkOpSegment::sortAngles [2] tStart=0 [3]
+SkOpSegment::sortAngles [2] tStart=1 [4]
+SkOpAngle::after [2/5] 7/7 tStart=1 tEnd=0 < [3/6] 15/15 tStart=0 tEnd=0.99537037 < [7/10] 31/31 tStart=0.00462962963 tEnd=0  T 4
+SkOpAngle::afterPart {{{1075,242}, {1075,0}}} id=2
+SkOpAngle::afterPart {{{1075,242}, {2.22044605e-14,242}}} id=3
+SkOpAngle::afterPart {{{1075,242}, {1080,242}}} id=7
+SkOpSegment::sortAngles [3] tStart=0 [5]
+SkOpSegment::sortAngles [3] tStart=0.99537037 [20]
+SkOpAngle::after [3/7] 31/31 tStart=0.99537037 tEnd=0 < [8/11] 7/7 tStart=0 tEnd=1 < [3/8] 15/15 tStart=0.99537037 tEnd=1  T 4
+SkOpAngle::afterPart {{{0,242}, {1075,242}}} id=3
+SkOpAngle::afterPart {{{0,242}, {0,0}}} id=8
+SkOpAngle::afterPart {{{0,242}, {-5,242}}} id=3
+SkOpSegment::sortAngles [5] tStart=0.99537037 [18]
+SkOpSegment::sortAngles [7] tStart=0.00462962963 [19]
+SkOpSegment::sortAngles [8] tStart=0 [15]
+SkOpSegment::sortAngles [8] tStart=1 [16]
+coinSpan - id=3 t=0 tEnd=0.99537037
+coinSpan + id=7 t=0.00462962963 tEnd=1
+coinSpan - id=1 t=0.00462962963 tEnd=1
+coinSpan + id=5 t=0 tEnd=0.99537037
+SkOpSpan::sortableTop dir=kTop seg=1 t=0.00231481481 pt=(-2.5,0)
+SkOpSpan::sortableTop [0] valid=1 operand=0 span=1 ccw=1 seg=1 {{{-5, 0}, {1075, 0}}} t=0.00231481481 pt=(-2.5,0) slope=(1080,0)
+SkOpSegment::markWinding id=1 (-5,0 1075,0) t=0 [1] (-5,0) tEnd=0.00462962963 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0
+SkOpSegment::markWinding id=1 (-5,0 1075,0) t=0 [1] (-5,0) tEnd=0.00462962963 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0
+SkOpSegment::markWinding id=4 (-5,242 -5,0) t=0 [7] (-5,242) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0
+SkOpSegment::markWinding id=3 (1075,242 -5,242) t=0.99537037 [20] (2.22044605e-14,242) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0
+SkOpSegment::activeOp id=1 t=0.00462962963 tEnd=0 op=sect miFrom=0 miTo=1 suFrom=0 suTo=0 result=0
+SkOpSegment::markDone id=1 (-5,0 1075,0) t=0 [1] (-5,0) tEnd=0.00462962963 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0
+SkOpSegment::markDone id=4 (-5,242 -5,0) t=0 [7] (-5,242) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0
+SkOpSegment::markDone id=3 (1075,242 -5,242) t=0.99537037 [20] (2.22044605e-14,242) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0
+bridgeOp chase.append id=3 windSum=-1
+SkOpSegment::markWinding id=3 (1075,242 -5,242) t=0 [5] (1075,242) tEnd=0.99537037 newWindSum=-1 newOppSum=-1 oppSum=? windSum=? windValue=1 oppValue=1
+SkOpSegment::markAngle last segment=3 span=5 windSum=-1 
+SkOpSegment::markWinding id=8 (0,242 0,0) t=0 [15] (0,242) tEnd=1 newWindSum=-1 newOppSum=-1 oppSum=? windSum=? windValue=1 oppValue=0
+SkOpSegment::markAngle last segment=8 span=16 
+SkOpSegment::debugShowActiveSpans id=1 (-8.8817842e-16,0 1075,0) t=0.00462962963 tEnd=1 windSum=? oppSum=? windValue=1 oppValue=1
+SkOpSegment::debugShowActiveSpans id=2 (1075,0 1075,242) t=0 tEnd=1 windSum=? windValue=1
+SkOpSegment::debugShowActiveSpans id=3 (1075,242 2.22044605e-14,242) t=0 tEnd=0.99537037 windSum=-1 oppSum=-1 windValue=1 oppValue=1
+SkOpSegment::debugShowActiveSpans id=5 (1075,0 1080,0) t=0.99537037 tEnd=1 windSum=? windValue=1
+SkOpSegment::debugShowActiveSpans id=6 (1080,0 1080,242) t=0 tEnd=1 windSum=? windValue=1
+SkOpSegment::debugShowActiveSpans id=7 (1080,242 1075,242) t=0 tEnd=0.00462962963 windSum=? windValue=1
+SkOpSegment::debugShowActiveSpans id=8 (0,242 0,0) t=0 tEnd=1 windSum=-1 oppSum=-1 windValue=1 oppValue=0
+SkOpSegment::activeOp id=3 t=0.99537037 tEnd=0 op=sect miFrom=0 miTo=1 suFrom=0 suTo=1 result=1
+SkOpSegment::markWinding id=7 (1080,242 0,242) t=0 [13] (1080,242) tEnd=0.00462962963 newWindSum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0
+SkOpSegment::markWinding id=6 (1080,0 1080,242) t=0 [11] (1080,0) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0
+SkOpSegment::markWinding id=5 (0,0 1080,0) t=0.99537037 [18] (1075,0) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=? windSum=? windValue=1 oppValue=0
+SkOpSegment::markAngle last segment=5 span=18 windSum=-1 
+SkOpSegment::markWinding id=2 (1075,0 1075,242) t=0 [3] (1075,0) tEnd=1 newWindSum=-1 newOppSum=-1 oppSum=? windSum=? windValue=1 oppValue=0
+SkOpSegment::markAngle last segment=2 span=3 windSum=-1 
+SkOpSegment::findNextOp
+SkOpAngle::dumpOne [3/6] next=7/10 sect=15/15  s=0 [5] e=0.99537037 [20] sgn=-1 windVal=1 windSum=-1 oppVal=1 oppSum=-1
+SkOpAngle::dumpOne [7/10] next=2/5 sect=31/31  s=0.00462962963 [19] e=0 [13] sgn=1 windVal=1 windSum=-1 oppVal=0 oppSum=0 operand
+SkOpAngle::dumpOne [2/5] next=3/6 sect=7/7  s=1 [4] e=0 [3] sgn=1 windVal=1 windSum=-1 oppVal=0 oppSum=-1
+SkOpSegment::activeOp id=7 t=0.00462962963 tEnd=0 op=sect miFrom=0 miTo=0 suFrom=0 suTo=1 result=0
+SkOpSegment::markDone id=7 (1080,242 0,242) t=0 [13] (1080,242) tEnd=0.00462962963 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0
+SkOpSegment::markDone id=6 (1080,0 1080,242) t=0 [11] (1080,0) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0
+SkOpSegment::markDone id=5 (0,0 1080,0) t=0.99537037 [18] (1075,0) tEnd=1 newWindSum=-1 newOppSum=0 oppSum=0 windSum=-1 windValue=1 oppValue=0
+SkOpSegment::findNextOp chase.append segment=5 span=18 windSum=-1
+SkOpSegment::activeOp id=2 t=1 tEnd=0 op=sect miFrom=0 miTo=1 suFrom=1 suTo=1 result=1
+SkOpSegment::findNextOp chase.append segment=2 span=3 windSum=-1
+SkOpSegment::markDone id=3 (1075,242 -5,242) t=0 [5] (1075,242) tEnd=0.99537037 newWindSum=-1 newOppSum=-1 oppSum=-1 windSum=-1 windValue=1 oppValue=1
+SkOpSegment::findNextOp from:[3] to:[2] start=90366152 end=90366008
+bridgeOp current id=3 from=(2.22044605e-14,242) to=(1075,242)
+SkOpSegment::markWinding id=1 (-5,0 1075,0) t=0.00462962963 [17] (-8.8817842e-16,0) tEnd=1 newWindSum=-1 newOppSum=-1 oppSum=? windSum=? windValue=1 oppValue=1
+SkOpSegment::markAngle last segment=1 span=17 windSum=-1 
+SkOpSegment::findNextOp
+SkOpAngle::dumpOne [2/4] next=5/9 sect=23/23  s=0 [3] e=1 [4] sgn=-1 windVal=1 windSum=-1 oppVal=0 oppSum=-1
+SkOpAngle::dumpOne [5/9] next=1/3 sect=31/31  s=0.99537037 [18] e=1 [10] sgn=-1 windVal=1 windSum=-1 oppVal=0 oppSum=0 done operand
+SkOpAngle::dumpOne [1/3] next=2/4 sect=15/15  s=1 [2] e=0.00462962963 [17] sgn=1 windVal=1 windSum=-1 oppVal=1 oppSum=-1
+SkOpSegment::activeOp id=5 t=0.99537037 tEnd=1 op=sect miFrom=0 miTo=0 suFrom=1 suTo=0 result=0
+SkOpSegment::activeOp id=1 t=1 tEnd=0.00462962963 op=sect miFrom=0 miTo=1 suFrom=0 suTo=1 result=1
+SkOpSegment::findNextOp chase.append segment=1 span=17 windSum=-1
+SkOpSegment::markDone id=2 (1075,0 1075,242) t=0 [3] (1075,0) tEnd=1 newWindSum=-1 newOppSum=-1 oppSum=-1 windSum=-1 windValue=1 oppValue=0
+SkOpSegment::findNextOp from:[2] to:[1] start=90365736 end=90368360
+bridgeOp current id=2 from=(1075,242) to=(1075,0)
+path.moveTo(2.22044605e-14,242);
+path.lineTo(1075,242);
+SkOpSegment::findNextOp
+SkOpAngle::dumpOne [1/2] next=1/1 sect=31/31  s=0.00462962963 [17] e=1 [2] sgn=-1 windVal=1 windSum=-1 oppVal=1 oppSum=-1
+SkOpAngle::dumpOne [1/1] next=8/12 sect=15/15  s=0.00462962963 [17] e=0 [1] sgn=1 windVal=1 windSum=-1 oppVal=0 oppSum=0 done
+SkOpAngle::dumpOne [8/12] next=1/2 sect=23/23  s=1 [16] e=0 [15] sgn=1 windVal=1 windSum=-1 oppVal=0 oppSum=-1 operand
+SkOpSegment::activeOp id=1 t=0.00462962963 tEnd=0 op=sect miFrom=0 miTo=1 suFrom=0 suTo=0 result=0
+SkOpSegment::activeOp id=8 t=1 tEnd=0 op=sect miFrom=1 miTo=1 suFrom=0 suTo=1 result=1
+SkOpSegment::markDone id=1 (-5,0 1075,0) t=0.00462962963 [17] (-8.8817842e-16,0) tEnd=1 newWindSum=-1 newOppSum=-1 oppSum=-1 windSum=-1 windValue=1 oppValue=1
+SkOpSegment::findNextOp from:[1] to:[8] start=90368192 end=90368048
+bridgeOp current id=1 from=(1075,0) to=(-8.8817842e-16,0)
+path.lineTo(1075,0);
+SkOpSegment::findNextOp
+SkOpAngle::dumpOne [8/11] next=3/8 sect=7/7  s=0 [15] e=1 [16] sgn=-1 windVal=1 windSum=-1 oppVal=0 oppSum=-1 operand
+SkOpAngle::dumpOne [3/8] next=3/7 sect=15/15  s=0.99537037 [20] e=1 [6] sgn=-1 windVal=1 windSum=-1 oppVal=0 oppSum=0 done
+SkOpAngle::dumpOne [3/7] next=8/11 sect=31/31  s=0.99537037 [20] e=0 [5] sgn=1 windVal=1 windSum=-1 oppVal=1 oppSum=-1 done
+SkOpSegment::activeOp id=3 t=0.99537037 tEnd=1 op=sect miFrom=1 miTo=0 suFrom=0 suTo=0 result=0
+SkOpSegment::activeOp id=3 t=0.99537037 tEnd=0 op=sect miFrom=0 miTo=1 suFrom=0 suTo=1 result=1
+SkOpSegment::markDone id=8 (0,242 0,0) t=0 [15] (0,242) tEnd=1 newWindSum=-1 newOppSum=-1 oppSum=-1 windSum=-1 windValue=1 oppValue=0
+SkOpSegment::findNextOp from:[8] to:[3] start=90368840 end=90366336
+bridgeOp current id=8 from=(0,0) to=(0,242)
+path.lineTo(-8.8817842e-16,0);
+path.lineTo(0,242);
+path.close();
+</div>
+
 </div>
 
 <script type="text/javascript">
@@ -2226,9 +2226,9 @@
     return dxy;
 }
 
-function dpt_at_t(curve, t) {

+function dpt_at_t(curve, t) {
     var type = PATH_LINE + (curve.length / 2 - 2);
-    return dxy_at_t(curve, type, t);

+    return dxy_at_t(curve, type, t);
 }
 
 function drawLabel(num, px, py) {
@@ -2346,11 +2346,11 @@
     return a * curve[1] + b * curve[3] + c * curve[5] + d * curve[7];
 }
 
-function pt_at_t(curve, t) {

-    var pt = {};

-    pt.x = x_at_t(curve, t);

-    pt.y = y_at_t(curve, t);

-    return pt;

+function pt_at_t(curve, t) {
+    var pt = {};
+    pt.x = x_at_t(curve, t);
+    pt.y = y_at_t(curve, t);
+    return pt;
 }
 
 function drawOrder(curve, t, label) {
@@ -2377,59 +2377,59 @@
     ctx.font = "normal 10px Arial";
 }
 
-function drawVisibleOrder(curve, label) {

-    var s = pt_at_t(curve, 0);

-    var e = pt_at_t(curve, 1);

-    var sOn = ptOnScreen(s);

-    var eOn = ptOnScreen(e);

-    var defaultT = 0.85;

-    if (sOn && eOn)

-        return drawOrder(curve, defaultT, label);

-    if (sOn || eOn) {

-        if (eOn) {

-            defaultT = 1 - defaultT;

-        }

-        var step = sOn ? -defaultT / 2 : (1 - defaultT) / 2;

-        var t = defaultT;

-        var tries = 16;

-        do {

-            var mid = pt_at_t(curve, t);

-            if (ptOnScreen(mid))

-                return drawOrder(curve, t, label);

-            t += step;

-            step /= 2;

-        } while (--tries > 0);

-        drawOrder(curve, defaultT, label);

-    }

-    // scattershot until we find a visible point

-    var denom = 2;  // visit odd number num / denom to hit unique pts

-    var tries = 6; // tries 1/2, 1/4, 3/4, 1/8, 3/8, 5/8, 7/8, 1/16 ...

-    do {

-        for (var numer = 1; numer < denom; numer += 2) {

-            var t = numer / denom + 0.1;

-            if (t >= 1) {

-                break;

-            }

-            var mid = pt_at_t(curve, t);

-            if (ptOnScreen(mid))

-                return drawOrder(curve, t, label);

-        }

-        denom *= 2;

-    } while (--tries > 0);

-    drawOrder(curve, defaultT, label);

+function drawVisibleOrder(curve, label) {
+    var s = pt_at_t(curve, 0);
+    var e = pt_at_t(curve, 1);
+    var sOn = ptOnScreen(s);
+    var eOn = ptOnScreen(e);
+    var defaultT = 0.85;
+    if (sOn && eOn)
+        return drawOrder(curve, defaultT, label);
+    if (sOn || eOn) {
+        if (eOn) {
+            defaultT = 1 - defaultT;
+        }
+        var step = sOn ? -defaultT / 2 : (1 - defaultT) / 2;
+        var t = defaultT;
+        var tries = 16;
+        do {
+            var mid = pt_at_t(curve, t);
+            if (ptOnScreen(mid))
+                return drawOrder(curve, t, label);
+            t += step;
+            step /= 2;
+        } while (--tries > 0);
+        drawOrder(curve, defaultT, label);
+    }
+    // scattershot until we find a visible point
+    var denom = 2;  // visit odd number num / denom to hit unique pts
+    var tries = 6; // tries 1/2, 1/4, 3/4, 1/8, 3/8, 5/8, 7/8, 1/16 ...
+    do {
+        for (var numer = 1; numer < denom; numer += 2) {
+            var t = numer / denom + 0.1;
+            if (t >= 1) {
+                break;
+            }
+            var mid = pt_at_t(curve, t);
+            if (ptOnScreen(mid))
+                return drawOrder(curve, t, label);
+        }
+        denom *= 2;
+    } while (--tries > 0);
+    drawOrder(curve, defaultT, label);
 }
 
-function set_length(pt, newLen) {

-    var len = Math.sqrt(pt.x * pt.x + pt.y * pt.y);

-    var scale = newLen / len;

-    var newPt = { x: pt.x * scale, y: pt.y * scale };

-    return newPt;

+function set_length(pt, newLen) {
+    var len = Math.sqrt(pt.x * pt.x + pt.y * pt.y);
+    var scale = newLen / len;
+    var newPt = { x: pt.x * scale, y: pt.y * scale };
+    return newPt;
 }
 
-function drawDirection(curve, t) {

+function drawDirection(curve, t) {
     var d = dpt_at_t(curve, t);
     d = set_length(d, 16);
-    var pt = localToGlobal(pt_at_t(curve, t));

+    var pt = localToGlobal(pt_at_t(curve, t));
     ctx.beginPath();
     ctx.moveTo(pt.x - d.y, pt.y + d.x);
     ctx.lineTo(pt.x + d.x, pt.y + d.y);
@@ -2438,47 +2438,47 @@
     ctx.stroke();
 }
 
-function drawVisibleDirection(curve) {

-    var s = pt_at_t(curve, 0);

-    var e = pt_at_t(curve, 1);

-    var sOn = ptOnScreen(s);

-    var eOn = ptOnScreen(e);

-    var defaultT = 0.65;

-    if (sOn && eOn) {

-        return drawDirection(curve, defaultT);

-    }

-    if (sOn || eOn) {

-        if (eOn) {

-            defaultT = 1 - defaultT;

-        }

-        var step = sOn ? -defaultT / 2 : (1 - defaultT) / 2;

-        var t = defaultT;

-        var tries = 16;

-        do {

-            var mid = pt_at_t(curve, t);

-            if (ptOnScreen(mid))

-                return drawDirection(curve, t);

-            t += step;

-            step /= 2;

-        } while (--tries > 0);

-        drawDirection(curve, defaultT);

-    }

-    // scattershot until we find a visible point

-    var denom = 2;  // visit odd number num / denom to hit unique pts

-    var tries = 6; // tries 1/2, 1/4, 3/4, 1/8, 3/8, 5/8, 7/8, 1/16 ...

-    do {

-        for (var numer = 1; numer < denom; numer += 2) {

-            var t = numer / denom + 0.1;

-            if (t >= 1) {

-                break;

-            }

-            var mid = pt_at_t(curve, t);

-            if (ptOnScreen(mid))

-                return drawDirection(curve, t);

-        }

-        denom *= 2;

-    } while (--tries > 0);

-    drawDirection(curve, defaultT);

+function drawVisibleDirection(curve) {
+    var s = pt_at_t(curve, 0);
+    var e = pt_at_t(curve, 1);
+    var sOn = ptOnScreen(s);
+    var eOn = ptOnScreen(e);
+    var defaultT = 0.65;
+    if (sOn && eOn) {
+        return drawDirection(curve, defaultT);
+    }
+    if (sOn || eOn) {
+        if (eOn) {
+            defaultT = 1 - defaultT;
+        }
+        var step = sOn ? -defaultT / 2 : (1 - defaultT) / 2;
+        var t = defaultT;
+        var tries = 16;
+        do {
+            var mid = pt_at_t(curve, t);
+            if (ptOnScreen(mid))
+                return drawDirection(curve, t);
+            t += step;
+            step /= 2;
+        } while (--tries > 0);
+        drawDirection(curve, defaultT);
+    }
+    // scattershot until we find a visible point
+    var denom = 2;  // visit odd number num / denom to hit unique pts
+    var tries = 6; // tries 1/2, 1/4, 3/4, 1/8, 3/8, 5/8, 7/8, 1/16 ...
+    do {
+        for (var numer = 1; numer < denom; numer += 2) {
+            var t = numer / denom + 0.1;
+            if (t >= 1) {
+                break;
+            }
+            var mid = pt_at_t(curve, t);
+            if (ptOnScreen(mid))
+                return drawDirection(curve, t);
+        }
+        denom *= 2;
+    } while (--tries > 0);
+    drawDirection(curve, defaultT);
 }
 
 function drawID(curve, t, id) {
@@ -2489,53 +2489,53 @@
     draw_id_at(id, _px, _py);
 }
 
-function localToGlobal(local) {

-    var global = {};

-    global.x = (local.x - srcLeft) * scale;

-    global.y = (local.y - srcTop) * scale;

-    return global;

+function localToGlobal(local) {
+    var global = {};
+    global.x = (local.x - srcLeft) * scale;
+    global.y = (local.y - srcTop) * scale;
+    return global;
 }
 
-function ptOnScreen(local) {

-    var pt = localToGlobal(local);

-    return 10 <= pt.x && pt.x <= screenWidth - 10

-        && 10 <= pt.y && pt.y <= screenHeight - 10;

+function ptOnScreen(local) {
+    var pt = localToGlobal(local);
+    return 10 <= pt.x && pt.x <= screenWidth - 10
+        && 10 <= pt.y && pt.y <= screenHeight - 10;
 }
 
-function drawVisibleID(curve, defaultT, id) {

-    // determine if either or both ends are visible

-    var s = pt_at_t(curve, 0);

-    var e = pt_at_t(curve, 1);

-    var sOn = ptOnScreen(s);

-    var eOn = ptOnScreen(e);

-    if (sOn && eOn)

-        return drawID(curve, defaultT, id);

-    if (sOn || eOn) {

-        var step = sOn ? -defaultT / 2 : (1 - defaultT) / 2;

-        var t = defaultT;

-        var tries = 16;

-        do {

-            var mid = pt_at_t(curve, t);

-            if (ptOnScreen(mid))

-                return drawID(curve, t, id);

-            t += step;

-            step /= 2;

-        } while (--tries > 0);

-        drawID(curve, defaultT, id);

-    }

-    // scattershot until we find a visible point

-    var denom = 2;  // visit odd number num / denom to hit unique pts

-    var tries = 6; // tries 1/2, 1/4, 3/4, 1/8, 3/8, 5/8, 7/8, 1/16 ...

-    do {

-        for (var numer = 1; numer < denom; numer += 2) {

-            var t = numer / denom;

-            var mid = pt_at_t(curve, t);

-            if (ptOnScreen(mid))

-                return drawID(curve, t, id);

-        }

-        denom *= 2;

-    } while (--tries > 0);

-    drawID(curve, defaultT, id);

+function drawVisibleID(curve, defaultT, id) {
+    // determine if either or both ends are visible
+    var s = pt_at_t(curve, 0);
+    var e = pt_at_t(curve, 1);
+    var sOn = ptOnScreen(s);
+    var eOn = ptOnScreen(e);
+    if (sOn && eOn)
+        return drawID(curve, defaultT, id);
+    if (sOn || eOn) {
+        var step = sOn ? -defaultT / 2 : (1 - defaultT) / 2;
+        var t = defaultT;
+        var tries = 16;
+        do {
+            var mid = pt_at_t(curve, t);
+            if (ptOnScreen(mid))
+                return drawID(curve, t, id);
+            t += step;
+            step /= 2;
+        } while (--tries > 0);
+        drawID(curve, defaultT, id);
+    }
+    // scattershot until we find a visible point
+    var denom = 2;  // visit odd number num / denom to hit unique pts
+    var tries = 6; // tries 1/2, 1/4, 3/4, 1/8, 3/8, 5/8, 7/8, 1/16 ...
+    do {
+        for (var numer = 1; numer < denom; numer += 2) {
+            var t = numer / denom;
+            var mid = pt_at_t(curve, t);
+            if (ptOnScreen(mid))
+                return drawID(curve, t, id);
+        }
+        denom *= 2;
+    } while (--tries > 0);
+    drawID(curve, defaultT, id);
 }
 
 function draw_id_at(id, _px, _py) {
@@ -2613,8 +2613,8 @@
             drawVisibleID(curve, 0.5, id);
         }
     }
-    if (draw_direction) {

-        drawVisibleDirection(curve);

+    if (draw_direction) {
+        drawVisibleDirection(curve);
     }
     if (type == PATH_LINE) {
         return;
@@ -3205,10 +3205,10 @@
                         drawVisibleOrder(leftCurve, 'L');
                         drawVisibleOrder(rightCurve, 'R');
                     }
-                    if (draw_id) {

-                        drawVisibleID(leftCurve, 0.5, frags[0]);

-                        drawVisibleID(midCurve, 0.5, frags[6]);

-                        drawVisibleID(rightCurve, 0.5, frags[12]);

+                    if (draw_id) {
+                        drawVisibleID(leftCurve, 0.5, frags[0]);
+                        drawVisibleID(midCurve, 0.5, frags[6]);
+                        drawVisibleID(rightCurve, 0.5, frags[12]);
                     }
                     break;
                 case REC_TYPE_AFTERPART:
@@ -3245,8 +3245,8 @@
                             throw "stop execution";
                     }
                     drawCurve(curve);
-                    if (draw_id) {

-                        drawVisibleID(curve, 0.5, id);

+                    if (draw_id) {
+                        drawVisibleID(curve, 0.5, id);
                     }
                     ++afterIndex;
                     break;