Attach (recommended) or Link to PDF file here: 
[A Sample PDF Clean 0 degree with all annotations-original-rotated.pdf](https://github.com/mozilla/pdf.js/files/6551789/A.Sample.PDF.Clean.0.degree.with.all.annotations-original-rotated.pdf)

Configuration:
- Web browser and its version: all browsers, tested with Chrome and Firefox latest versions.
- Operating system and its version: tested in Windows 10
- PDF.js version: current (online version)

Steps to reproduce the problem:
1. Visit https://mozilla.github.io/pdf.js/web/viewer.html
2. Upload the file above
3. Notice that several annotations such as arrow, freehand & polyline are missing (compared to Acrobat Reader)
![image](https://user-images.githubusercontent.com/45581023/119781014-11d35d00-befd-11eb-8daa-64f15374cf5b.png)


What is the expected behavior?
- Should display all annotations accordingly to Acrobat Reader

What went wrong? 
- Several annotations are missing such as arrow, freehand & polyline
- Opacity property is not supported and cannot be retrieved via getAnnotations 

buffer.push(
              `${points[0].x} ${points[0].y} m`,
              `${points[1].x} ${points[1].y} l`,
              `${points[3].x} ${points[3].y} l`,
              `${points[2].x} ${points[2].y} l`,
              "f"
            );
            return [points[0].x, points[1].x, points[3].y, points[1].y];
          },
        });
      }
    } else {
      this.data.hasPopup = false;
    }
  }
}
class UnderlineAnnotation extends MarkupAnnotation {
  constructor(parameters) {
    super(parameters);
    this.data.annotationType = AnnotationType.UNDERLINE;
    const quadPoints = (this.data.quadPoints = getQuadPoints(
      parameters.dict,
      null
    ));
    if (quadPoints) {
      if (!this.appearance) {
        /
        const strokeColor = this.color
          ? Array.from(this.color).map(c => c / 255)
          : [0, 0, 0];