<｜begin▁of▁sentence｜>### Instruction:
Given a Cairo context, can you utilize the CairoPolygonDrawer in igraph to draw a square that has vertices at points (100, 100), (500, 100), (500, 500), and (100, 500) and then display the plot?
### Response:
from igraph.drawing import Plot
from igraph.drawing.polygon import CairoPolygonDrawer
import cairo

# Create a new plot with 600x600 pixels
plot = Plot('plot.png', bbox=(600, 600), background='white')

# Get the Cairo context from the plot
ctx = plot.ctx

# Create a polygon drawer and draw a polygon
polygon_drawer = CairoPolygonDrawer(ctx)
polygon_points = [(100, 100), (500, 100), (500, 500), (100, 500)]
polygon_drawer.draw_path(polygon_points)

plot.show()
<|EOT|>
